专利名称:半导体存储设备和伪sram的利记博彩app
技术领域:
本发明涉及半导体存储设备和伪SRAM,尤其是涉及具有用于计算ECC(纠错码)位的ECC计算电路的半导体存储设备和伪SRAM。
背景技术:
现有技术中,支持ECC(纠错码)功能的ECC存储器是已知的。ECC存储器能够指出出现错误的一部分(位)以校正错误并且简单地检测存储器错误。以下将用于ECC检验的信息称为“ECC位”。
基于汉明(Hamming)码确定ECC位的数量。当数据总线宽度是N位时,通过计算以2为底数N的对数并且将结果加到2上来确定位的数量。例如,假设数据总线宽度是64位,则8位作为ECC位是必需的。结果,假设数据总线宽度是64位,则对于256位的数据来说,总共32位(=8×4)的ECC位是必需的。
日本未审专利公开11-102326公开了如何减少ECC位的数量。根据日本未审专利公开11-102326公开的半导体存储设备,使用进行突发传输的所有数据来计算ECC位。例如,当数据总线宽度为64位并且突发长度(burst length)是4时,为256位数据计算一个ECC位值。在该情况中,必需的ECC位数是9位。也就是说,能够将ECC位数保持较低。
上述相关技术包括以下问题。也就是,虽然用于计算ECC位所必需的数据位的数量例如是256位,但仅写入小于256位(例如1字节)的数据,以至于不能够计算ECC位。在执行突发写的情况中出现同样的问题,并且屏蔽了突发传输数据。
发明内容
根据本发明的一方面的半导体存储设备,包括存储单元阵列;存储ECC位的ECC单元;以及计算ECC位的ECC计算电路,其将第一ECC位计算为用于第一数据的ECC位,该第一数据至少包括一个写数据和存储单元阵列中读取的部分读取数据。从而,能够减少ECC位的总数量。特别地,当写数据少于用于计算ECC位所必需的位的数量时,能够计算其总数量减少的ECC位。
根据本发明的另一方面的半导体存储设备包括存储单元阵列;存储ECC位的ECC单元;错误检测/校正电路,用于使用存储单元阵列的读取数据来检测和校正存储单元阵列的错误以输出校正过的数据;以及ECC产生电路,用于使用写入存储单元阵列的写数据和存储单元阵列的读取数据以产生第一ECC位,使用错误检测/校正电路输出的校正过的数据产生第二ECC位,以及基于错误检测/校正电路对存储单元阵列的错误检测结果将第一ECC位和第二ECC位中的一个存储到ECC单元。从而,能够减少ECC位的总数量。特别地,当写数据少于用于计算ECC位所必需的位的数量时,能够计算其总数量减少的ECC位。此外,能够减少用于确定ECC位所必需的时间段以提高操作速度。
根据本发明的半导体存储设备,能够减少ECC位的总数量。特别地,即使写数据少于用于计算ECC位所必需的数据位的数量,也能够计算其总数量减少的ECC位。
结合附图而进行的随后描述将使得本发明上述和其他目标、优点和特征变得更加清楚,其中图1示出了根据本发明的半导体存储设备的配置和操作的方块图;
图2说明了突发写操作期间的ECC电路中所执行的处理;图3示出了根据本发明第一实施例的半导体存储设备的配置和操作的方块图;图4示出了根据本发明第一实施例的半导体存储设备的配置和操作的方块图;图5说明了根据本发明第一实施例的ECC电路中所执行的处理;图6示出了根据本发明第一实施例的半导体存储设备的配置和操作的方块图;图7示出了根据本发明第二实施例的半导体存储设备的配置和操作的方块图;图8说明了根据本发明第二实施例的ECC电路中所执行的处理;图9示出了根据本发明第二实施例的半导体存储设备的配置和操作的方块图;图10示出了根据本发明第二实施例的半导体存储设备的配置和操作的方块图;图11是根据本发明第二实施例的半导体存储设备的操作概况的说明性流程图;图12是根据本发明第二实施例的半导体存储设备的操作概况的说明性方块图;图13示出了根据本发明第二实施例的半导体存储设备的操作实例的时序图;图14A示出了根据本发明第二实施例的半导体存储设备的操作实例的时序图;和图14B示出了根据本发明第二实施例的半导体存储设备的另一操作实例的时序图。
优选实施例的描述现在在此参考说明性实施例来描述发明。本领域的技术人员将能理解,使用本发明的教导而能够实现许多可选的实施例并且本发明并非限于为解释性目的而说明的实施例。
以下参考附图来描述根据本发明的半导体存储设备。
图1示出了根据本发明第一实施例的半导体存储设备的配置和操作的方块图。半导体存储设备1包括存储单元阵列10和用于对存储单元阵列10进行写/读数据的R/W放大器30。存储单元阵列10包括在适当位置上排列的多个存储单元。存储单元阵列10的每一存储单元由用于对相应于数据的电荷进行存储的电容器和晶体管组成。也就是说,诸如DRAM和伪SRAM那样的被刷新的存储器用作为半导体存储设备1。另外,半导体存储设备1支持“突发功能”。
在半导体存储设备1中,用于保持电容器中的电荷的时间段称为“保持时间”。如果由于退化而缩短了给定存储单元的保持时间,则在刷新操作之前,存储单元中存储的数据可能丢失。为了处理所述错误,根据本发明的半导体存储设备1具有ECC功能。具体而言,如图1所示,半导体存储设备1包括用于存储ECC位的ECC单元(ECC单元阵列)20和ECC电路50。ECC电路50具有计算ECC位的功能和检测/校正存储错误的功能。ECC电路50经由R/W放大器30而连接到存储单元阵列10并且经由R/W放大器40而连接到ECC单元20。
ECC电路50包括错误检测/校正电路60和ECC计算电路70。错误检测/校正电路60接收从存储单元阵列10读取的读取数据和与所述读取数据相关联的ECC单元20中存储的ECC位。然后,错误检测/校正电路60使用ECC位检测读取数据中的错误。当检测到错误时,错误检测/校正电路60校正读取数据。ECC计算电路70计算相对于预定数量个位的写数据的ECC位。也就是说,ECC计算电路70是一种产生ECC位的ECC产生电路。将计算出的数量个ECC位存储在与写数据相关联的ECC单元20中。
在本发明中,ECC电路50基于一些段来处理数据。也就是说,ECC计算电路70基于一些数据段来计算ECC位。错误检查/校正电路60基于一些数据段来检测错误。假设数据总线宽度例如是64位,ECC计算电路70基于256位数据来计算ECC位。下文中将用于计算ECC位所必需的数据位的数量称为“必需的位数”。在突发传输中,通过“数据总线宽度”×突发长度来表示必需的位数。
下文中,更加详细地描述根据本发明的半导体存储设备1的操作。在以下的实例中,数据总线宽度是64位,并且突发长度为4。另外,必需的位数是256。
突发写操作如图1所示,四个64位写数据DWa-DWd被提供到R/W放大器30。也就是说,连续的第一至第四写数据DWa-DWd经由数据总线(未示出)串行传输加载到R/W放大器30。每一写数据DWa-DWd对应于一个访问地址。与第一写数据DWa相对应的第一访问地址是外部提供的外部地址。另一方面,与第二至第四写数据DWb-DWd相对应的地址是内部产生的内部地址。相对于外部地址而产生内部地址。第一至第四写数据DWa-DWd分别被写到存储单元阵列10的块(存储单元组)10a至10d。
图2说明了突发写操作期间的ECC电路50中所执行的处理。第一至第四写数据DWa-DWd也被加载到ECC计算电路70。ECC计算电路70将第一至第四写数据DWa-DWd整合成为“ECC计算数据DECC”。ECC计算数据DECC的位数是必需的位数,也就是256位。ECC计算电路70使用ECC计算数据DECC以将ECC位计算为9位。在该方式中,与计算每一个写数据的ECC位的情况相比较,能够减少ECC位总体数量。ECC计算电路70输出表示计算出的ECC位的ECC数据DE。
256位的写数据DWa-DWd被分别写到块10a-10d。同时,9位的ECC数据DE被写到ECC单元20。与ECC数据DE相关联地存储写数据DWa-DWd。
突发读取操作如图1所示,第一至第四读取数据DRa-DRd分别从存储单元阵列的块10a-10d中读取,并且被传输到R/W放大器30。与第一读取数据DRa相对应的第一地址是一种外部提供的外部地址。另一方面,与第二至第四读取数据DRb-DRd相对应的地址是内部产生的内部数据。内部地址是相对于外部地址而产生的。从ECC单元20的与外部地址相对应的给定单元中读取与读取数据DRa-DRd相对应的ECC数据DE,并且将其传输到R/W放大器40。将读取数据DRa-DRd和ECC数据DE传输到错误检测/校正电路60。
错误检测/校正电路60基于9位的ECC位检测256位读取数据DRa-DRd的错误。当检测到错误时,错误检测/校正电路60基于ECC位来校正错误。通过串行传输将被校正的读取数据DRa-DRd传输到数据总线。
部分突发写操作根据本发明的半导体存储设备1不仅支持上述的操作,而且支持用于小于必需的位数的数据的数据写操作。在以下情况中执行数据写操作,该情况例如为256位突发数据中的与192位相对应的数据被屏蔽。以下详细描述所述部分突发写操作。随后的实例示出了仅将作为一个(64位)写数据的第一写数据DWa写到块10a的情况。
第一实施例在部分突发写操作中,当确定了写地址时,首先执行“假读取操作”。图3示出了根据本发明第一实施例的假读取操作。在该实施例中,写地址是写入了第一写数据DWa的第一地址。当指定第一地址时,与第一地址相对应的块10a-10d所存储的数据被读取并且被传输到R/W放大器30。从块10a-10d中读取的数据分别被称为假读取数据DDRa-DDRd。从对应于ECC单元20的第一地址的给定单元中读取对应于假读取数据DDRa-DDRd的ECC数据DE并且将其传输到R/W放大器40。假读取数据DDRa-DDRd和ECC数据DE被传输到错误检测/校正电路60。
图4说明了根据该实施例的部分突发写操作中的以下处理。错误检测/校正电路60基于ECC位检测256位假读取数据DDRa-DDRd的错误,所述ECC位是9位。当检测到错误时,错误检测/校正电路60基于ECC位校正所述错误。所以,使用假读取数据DDRa-DDRd而产生校正过的数据(正确数据)DCa-DCd。当没有检测到错误时,将假读取数据DDRa-DDRd直接用作为校正过的数据(正确数据)DCa-DCd。将校正过的数据DCa-DCd输出到R/W放大器30和ECC计算电路70。此外,经由数据总线将第一写数据DWa发送到R/W放大器30和ECC计算电路70。不发送第二至第四写数据DWb-DWd。
图5说明了根据该实施例的ECC电路所执行的操作。ECC计算电路70从错误检测/校正电路60接收校正过的DCa-DCd并且从存储器外部接收第一写数据DWa。用第一写数据DWa替换校正过的数据DCa。如图5所示,根据该实施例,使用第一写数据DWa和第二至第四校正过的数据DCb-DCd以产生ECC计算数据DECC。ECC计算数据DECC的位数是必需的位数,也就是256位。ECC计算电路70使用ECC计算数据DECC以将ECC位计算为9位。ECC计算电路70输出表示计算出的ECC位的ECC数据DE。
图6说明了根据该实施例的部分突发写操作中的以下处理。R/W放大器30将第一写数据DWa写入到块10a。此外,如果在假读取数据DDRa-DDRd的任意一个假读取数据中检测到错误,则R/W放大器30将校正过的数据DCb-DCd写到块10b-10d。R/W放大器30可以将第一写数据DWa和校正过的数据DCb-DCd写入到块10a-10d而不管是否检测到错误。同时,R/W放大器40将9位的ECC数据DE写入到ECC单元20。在此,被写入到存储单元阵列10的数据与被写入到ECC单元20的数据相关。
如上所述,根据第一实施例,通过假读取操作能够执行部分突发写操作。也就是说,被写入到存储单元阵列10的数据小于必需的位数,能够计算其总数量减少的ECC位。
第二实施例同样在本发明的第二实施例中,一旦确定写地址就执行“假读取操作”。图7示出了根据第二实施例的假读取操作。在该实施例中,写地址是写入了第一写数据Dwa的第一地址。当指定第一地址时,从对应于第一地址的块10a-10d中读取假读取数据DDRa-DDRd并且将其传输到R/W放大器30。此外,从ECC单元20的对应于第一地址的给定单元中读取与假读取数据DDRa-DDRd相对应的ECC数据DE。经由R/W放大器40以将ECC数据DE传输到错误检测/校正电路60。如图7所示,根据该实施例,在假读取操作期间,不仅将假读取数据DDRa-DDRd传输到错误检测/校正电路60而且将其传输到ECC计算电路70。
此外,第一写数据DWa经由数据总线而被输入到R/W放大器30和ECC计算电路70。不输入第二至第四写数据DWa-DWd。
图8说明了根据该实施例的ECC电路50所执行的处理。错误检测/校正电路60使用ECC位以启动用于假读取数据DDRa-DDRd的错误检测处理。ECC计算电路70与错误检测处理并行地启动用于ECC位的计算处理。具体地说,ECC计算电路70从存储器外部接收第一写数据DWa并且从存储单元阵列10接收假读取数据DDRa-DDRd。由第一写数据DWa替换假读取数据DDRa-DDRd。如图8所示,根据该实施例,第一写数据DWa和第二至第四假读取数据DDRb-DDRd用于产生第一ECC计算数据DECC1。第一ECC计算数据DECC1的位数是必需的位数,也就是256位。ECC计算电路70使用第一ECC计算数据DECC以能够将第一ECC位(第一ECC代码)计算为9位。
如上所述,根据本发明,错误检测处理和ECC计算(第一ECC计算)并行执行。基于错误检测/校正电路60是否检测到错误而导致随后的操作不同。
图9说明了当没有检测到错误时的下一处理。如果没有检测到错误,则错误检测/校正电路60仅仅将通过信号(pass signal)输出到ECC计算电路70。通过信号是一种表示没有检测到错误的控制信号。响应通过信号80,ECC计算电路70将表示计算出的第一ECC位的第一ECC数据DE1发送到R/W放大器40。然后,R/W放大器30将第一写数据DWa写入到第一块10a。同时,R/W放大器40将9位的第一ECC数据DE1写入到ECC单元20。在此,写入到存储单元阵列10的数据与写入到ECC单元20的第一ECC数据DE1相关联。
图10说明了当检测到错误时候的下一处理。当检测到错误时,错误检测/校正电路60基于ECC位校正错误。所以,假读取数据DDRa-DDRd用于产生校正过的数据(正确数据)DCa-DCd。错误检测/校正电路60将校正过的数据DCa-DCd输出到R/W放大器30。另外,错误检测/校正电路60将校正过的数据DCa-DCd和故障信号90一起输出到ECC计算电路70。故障信号90是一种表示检测到错误的控制信号。
接收到故障信号90,ECC计算电路70就执行第二ECC计算处理。第二ECC计算处理是与图5的处理相同。也就是,第一写数据DWa和第二至第四校正过的数据DCb-DCd用于产生第二ECC计算数据DECC2。第二ECC计算数据DECC2的位数是必需的位数,也就是256位。ECC计算电路70能够使用第二ECC计算数据DECC2以将第二ECC位(第二ECC代码)计算为9位。ECC计算电路70输出表示计算出的第二ECC位的第二ECC数据DE2。在此之后,与图6的处理相同,写数据(DWa和DCb-DCd)被写入存储单元阵列10,并且将第二ECC数据DE2写入到ECC单元20。写入存储单元阵列10的数据与写入ECC单元20的第二ECC数据DE2相关联。ECC计算电路70基于错误检测/校正电路60对存储单元阵列10的错误检测结果将第一ECC位和第二ECC位中的一个存储到ECC单元20。
以下描述该实施例的操作流程。图11和12示出了根据该实施例的操作概况的流程图和方块图。参考图11的流程图和图12的全图,以时间序列描述该实施例的操作。
步骤S1写入到与第一地址相对应的单元的外部数据DWa经由部分数据总线DB而被输入到写放大器30-2和ECC计算电路70。然后,读取放大器30-1对对应于存储单元阵列10的第一地址的单元数据进行假读取以将获取的假读取数据DDRa-DDRd输出到错误检测/校正电路60和ECC计算电路70。同样,通过ECC单元读取放大器40-1读取与第一地址相对应的ECC单元20中的数据以作为ECC数据DE并且将其发送到错误检测/校正电路60。不可能确保在该点上假读取数据DDRa-DDRd是正确的。然而,ECC计算电路70的第一ECC产生电路使用未校正的单元数据(DDRa-DDRd)和外部提供的数据DWa以准备“第一ECC代码”(第一ECC位)。
步骤S2错误检测/校正电路60执行用于假读取数据DDRa-DDRd的错误检测。也就是,基于输入数据DDRa-DDRd和ECC数据DE来确定假读取数据DDRa-DDRd是否正确。将表示确定结果的确定信号PF(通过信号80和故障信号90)发送到ECC计算电路70的开关电路73。
如果确定信号PF表示假读取数据是正确的,则开关电路73设置上述的“第一ECC代码”为有效。然后,执行步骤S4。
步骤S1的处理和步骤S2的处理可以并行执行。在该情况中,第一时间段处理步骤S1和第二时间段处理步骤S2部分重叠。因此,在假读取操作过程中没有检测到错误的情况中,也就是,在很多情况中,能够减少用于确定ECC位所必需的时间段。
步骤S3另一方面,如果确定的信号PF表示假读取数据不正确,则开关电路73将上述“第一ECC代码”设置为无效(步骤S3-1)。错误检测/校正电路60校正假读取数据DDRa-DDRd的错误以发送校正过的数据DCa-DCd到ECC计算电路70(步骤S3-2)。ECC计算电路70的第二ECC产生电路72基于校正的数据DCa-DCd和外部提供的数据DWa产生“第二ECC代码(第二ECC位)”。此后,执行步骤S4。
在检测到错误的情况中,可将校正过的数据DCa-DCd写入在存储单元阵列中检测到错误的区域(块10a-10d)。
经由ECC写放大器40-2将产生的第一ECC代码或第二ECC代码写入到ECC单元20(步骤S4)。此后,写放大器30-2将外部数据DWa写入到存储单元阵列10(步骤S5)。
在该方式中,如从说明图12的处理的图11的流程图所明显看出的那样,当在假读取数据中检测到错误时,与没有检测到错误的情况相比,额外需要步骤S3-1至S3-3的处理。从而增加了处理时间。相反地,如果没有检测到错误,则所述附加的流程是不必要的,因此节省了处理时间。
在图12的说明性实例中,第一ECC代码产生电路71和第二ECC代码产生电路相分离,但是可以在单个电路的同一时间序列中产生第一ECC代码和第二ECC代码。
根据该实施例的半导体存储设备1产生以下有益效果。也就是,如第一实施例那样,通过假读取操作来实现部分突发写操作。也就是,即使写入到存储单元阵列10的数据小于必需的位数,也能够计算其总位数减少的ECC位。
此外,该实施例获得了一个附加的有益效果,即处理速度增加。这是因为错误检测/校正电路60或ECC计算电路70由多级逻辑电路组成,并且需要花费很多时间来执行“错误检测处理”或“ECC计算处理”。在此,根据第一实施例,通过错误检测处理来产生校正过的数据DC,在此之后基于校正过的数据DC执行ECC计算处理。然而,在实际的操作中,出现错误的概率是非常低的,以致于不使用校正过的数据DC。所以,根据该实施例,直接将假读取数据DDR输入到ECC计算电路70而不通过错误检测/校正电路60。然后,与错误检测处理同步,基于假读取数据DDR来执行第一ECC计算处理。在没有检测到错误的情况中,也就是在很多情况下,可以采用第一ECC计算处理所获得的第一ECC数据DE1。仅当检测到错误的时候,执行第二ECC计算处理。如上所述,根据该实施例,能够减少用于确定ECC位所必需的时间段(参见图11)。与第一实施例相比较,第二实施例具有如下效果,即增加了整体处理速度和操作速度。
如果检测到错误,并且,该错误与写入第一写数据DWa的块相对应,则错误检测/校正电路60可输出通过信号80以代替故障信号90。在该情况下,执行图9的处理而不是图10的处理以将第一ECC数据DE1写入到ECC单元20。新近将数据DWa写入到检测到错误的区域(块10a),以致于错误被校正。在该情况中,也能够获得增加处理速度和操作速度的效果。
图13示出了根据本发明第二实施例的半导体存储设备1的操作实例的时序图。图13说明了时钟信号CLK、控制信号/ADV(地址数据有效)、芯片选择信号/CE、写使能信号/WE、以及字线信号(CASE-A和CASE-B)。CASE-A对应于错误检测/校正电路60检测到没有错误的情况,并且CASE-B对应于错误检测/校正电路60检测到错误的情况。
在说明性的实例中,基于周期来执行存储单元阵列10的读/写操作。如图13所示,第一周期对应于从时间t10到t20的时间段。第二周期对应于从时间t20到t30的时间段。第三周期对应于从时间t30开始的时间段。在每一周期中,单独定义刷新操作时间段和读/写操作时间段。例如,在第一周期中,刷新操作时间段是从时间t10到t11,在该期间允许刷新操作。读/写操作时间段是从时间t11到t20。
当检测到没有错误时,执行以下的操作。也就是,在时间t11将写使能信号/WE设置为低以开始提供写数据。在此之后,执行上述的部分突发写操作。在CASE-A中,部分突发写操作(假读取处理、第一ECC计算处理、和写处理)从时间t12持续到t20。设置所述的写时间段T1以短于从时间t12直到下一周期(第二周期)的刷新操作的时间段twrp。这样在检测到没有错误的情况下防止了部分突发写操作和刷新操作之间的重叠。
在从时间t20到t21的第二周期期间,将控制信号/ADV设置为低。在该时间段中,执行刷新操作以响应来自于内部刷新计时器的指令。之后,在从t21到t30的时间段期间执行随后的写操作。
如果检测到错误(CASE-B),则执行随后的操作。在时间t11将写使能信号/WE设置为低以开始提供写数据。在此之后,执行上述的部分突发写操作。在CASE-B中,部分突发写操作(假读取处理、第一ECC计算处理、第二ECC计算处理和写处理)从时间t12持续到写时间段T2结束。在该情况下,执行第二ECC计算处理和第一ECC计算处理,写时间段T2比写时间段T1或时间段twrp长。也就是,在时间上偏移第一周期的写操作以与第二周期重叠所以,在第二周期中,在控制下“抑制”刷新操作。在第二周期之后第三周期(时间t30至t31)执行刷新操作。
如上所述,根据该实施例,当在给定周期中检测到错误时,不是在随后的周期中执行刷新操作,而是在随后周期之后的周期中执行刷新操作。
在第一周期中,即使检测到给定的访问地址的故障,也决不会在第二周期在同一访问地址中检测到故障。这是因为,如果给定的存储单元恶化以减少其保持时间,那样一旦访问存储单元也很可能出现故障,尽管被恶化,但是存储单元阵列确保保持时间例如为大约100ms,并且一个周期例如为大约30到100ns。也就是,其间存在数量级的差异。当在第一周期在存储单元中检测到故障时,由于ECC功能而校正读取数据,并且新近写入校正过的数据。将校正过的数据保持在存储单元以达到至少大约100ms。因此,在第二周期中,访问同一存储单元,检测到没有故障。在第二周期中决不会检测到故障,因此在第三周期能够执行刷新操作。从而,能够迟早可靠地执行刷新操作。
基于写时间段确定周期长度。写时间段越短,周期长度就越短。在图13的说明性实例中,写时间段T2对应于第一实施例的操作。也就是,在第一实施例中,基于写时间段T2来设置周期长度。另一方面,在该实施例中,能够基于写时间段T2来设置周期长度。即使检测到故障,也不出现如上所述的问题。根据该实施例,能够设置周期以短于第一实施例的周期。因此实现了高速存储器。
除了图13的系统之外,本领域中使用“等待指令WAIT”以执行刷新操作的系统(就绪/占线系统)是已知的。具体而言,当刷新操作是必需的时候,存储器向CPU发布等待指令WAIT。响应该等待指令WAIT,CPU停止相应于几个时钟脉冲的时间段的数据输入/输出。在所述时间段期间执行存储器的刷新操作。该系统适用于根据该实施例的半导体存储设备1。
图14A和14B示出了根据本发明第二实施例的半导体存储设备1的另一操作实例的时序图。图14A和14B说明了时钟信号CLK、字线信号(CASE-A和CASE-B)、以及等待指令WAIT(WAIT-A和WAIT-B)。图14A对应于错误检测/校正电路60没有检测到错误的情况,并且图14B对应于错误检测/校正电路60检测到错误的情况。此外,在一个周期中,仅设置读/写操作时间段,而不指定刷新操作时间段。
如图14A所示,如果检测到没有错误,则重复正常的操作。也就是,在第一周期(时间t1-t2)中,执行预定的部分突发写操作。与图13的情况相似,这次写时间段是T1。在第二周期(时间t2-t3)中,执行另一写操作。在第二周期之后,响应内部刷新计时器的请求而发送等待指令WAIT。从而执行刷新操作。在刷新操作之后,在第三周期(t4-t5)执行又一写操作。
另一方面,如果检测到错误,执行图14B的操作。例如,在第一周期(时间t1-t2),执行预定的部分突发写操作并且检测到故障。在该情况中写时间段是T2。基于写时间段T1来设置一个周期,以致于预定的部分突发写操作在时间t2之后结束。所以,如果检测到故障,指示存储器以在第一周期之后发布等待指令WAIT。因此在第一周期的结束时间t2起的预定期间之后开始第二周期。呈现给CPU的是存储器执行刷新操作。然而,在实际中,执行扩展的部分突发写操作。
在第二周期(时间t3-t4)中,执行正常的操作。然后,在第二周期之后再一次发布等待指令WAIT。所以,执行刷新操作。在刷新操作之后,在第三周期(时间t5-t6)执行另一写操作。
这样,根据该发明,当在第一周期中检测到故障时,在第一周期之后发布第一等待指令WAIT。在第一周期之后的第二周期之后发布第二等待指令WAIT。根据第一等待指令WAIT,写时间段被扩展。根据第二等待指令,刷新操作被扩展。呈现给CPU的是存储器在每一情况中都执行刷新操作。这样,使用已知的等待指令,以致于以隐藏的方式将本发明的ECC功能提供给半导体存储设备。
如上所述,根据本发明的半导体存储设备1,即使写数据少于必需的位数,也能够计算其总数量减少的ECC位。此外,根据本发明的半导体存储设备,能够减少用于确定ECC位所必需的时间段。从而,操作速度增加。
很明显本发明并非限于上述实施例,并且可以在不脱离发明范围和精神的情况下进行修改和改变。
权利要求
1.一种半导体存储设备,包括存储单元阵列;存储ECC位的ECC单元;以及计算ECC位的ECC计算电路,其将第一ECC位计算为用于第一数据的ECC位,该第一数据至少包括一个写数据和从存储单元阵列中读取的部分读取数据。
2.根据权利要求1的半导体存储设备,进一步包括错误检测/校正电路,其中将读取数据输入到错误检测/校正电路和ECC计算电路,并且错误检测/校正电路基于从ECC单元读取的ECC位来检测输入的读取数据的错误。
3.根据权利要求2的半导体存储设备,其中如果错误检测/校正电路没有检测到错误,则ECC计算电路将第一ECC位存储到ECC单元。
4.根据权利要求3的半导体存储设备,其中ECC计算电路与使用错误检测/校正电路以执行错误检测处理并行地执行第一ECC位的计算处理。
5.根据权利要求2的半导体存储设备,其中如果错误检测/校正电路检测到错误,并且该检测到的错误是写数据被写入的区域中的错误,则ECC计算电路将第一ECC位输出到ECC单元。
6.根据权利要求2的半导体存储设备,其中如果错误检测/校正电路检测到错误,则错误检测/校正电路使用ECC位来校正读取数据以产生校正过的数据,并且ECC计算电路将第二ECC位计算为用于第二数据的ECC位,所述第二数据包括所述写数据和部分校正过的数据。
7.根据权利要求6的半导体存储设备,其中存储单元阵列包括需要进行刷新的存储单元,如果错误检测/校正电路在第一周期中检测到错误,则在第一周期之后的第二周期中不执行刷新操作。
8.根据权利要求7的半导体存储设备,其中在第二周期之后的第三周期中执行刷新操作。
9.根据权利要求6的半导体存储设备,其中存储单元阵列包括需要进行刷新的存储单元,通过向CPU发布等待指令来执行刷新操作,并且如果错误检测/校正电路在第一周期中检测到错误,则刚好在第一周期之后发布等待指令。
10.根据权利要求9的半导体存储设备,其中刚好在第一周期之后的第二周期之后再一次发布等待指令。
11.根据权利要求1的半导体存储设备,其中,至少一个写数据是在突发模式中写入到存储单元阵列中的预定访问地址的数据,并且读取数据被存储到与预定访问地址相关联的地址。
12.一种包括根据权利要求1的半导体存储设备的伪SRAM。
13.一种半导体存储设备,包括存储单元阵列;存储ECC位的ECC单元;错误检测/校正电路,用于使用来自存储单元阵列的读取数据来检测和校正存储单元阵列的错误以输出校正过的数据;以及ECC产生电路,用于使用写入存储单元阵列的写数据和来自存储单元阵列的读取数据来产生第一ECC位,使用从错误检测/校正电路输出的校正过的数据来产生第二ECC位,以及基于错误检测/校正电路对存储单元阵列的错误检测结果将第一ECC位和第二ECC位中的一个存储到ECC单元。
14.根据权利要求13的半导体存储设备,其中如果错误检测/校正电路没有检测到错误,则ECC产生电路将第一ECC位存储到ECC单元。
15.根据权利要求14的半导体存储设备,其中ECC产生电路与使用错误检测/校正电路以执行错误检测处理并行地执行第一ECC位的计算处理。
16.根据权利要求13的半导体存储设备,其中如果错误检测/校正电路检测到错误,并且该检测到的错误是写数据被写入的区域中的错误,则ECC产生电路将第一ECC位输出到ECC单元。
17.根据权利要求13的半导体存储设备,其中,至少一个写数据是在突发模式中写入到存储单元阵列中的预定访问地址的数据,并且读取数据被存储到与预定访问地址相关联的地址。
18.一种包括根据权利要求13的半导体存储设备的伪SRAM。
19.根据权利要求13的半导体存储设备,其中并行地执行在ECC计算电路中产生第一ECC位和在错误检测/校正电路中检测错误。
20.根据权利要求19的半导体存储设备,其中ECC产生电路在检测/校正电路检测到错误的情况中将第一ECC位设置为无效,错误检测/校正电路使用读取数据和ECC单元存储的ECC位来产生校正过的数据,ECC产生电路使用写数据和部分校正过的数据来产生第二ECC位。
全文摘要
提供一种能够减少ECC位数的半导体存储设备。根据发明的实施例的半导体存储设备包括存储单元阵列;存储ECC位的ECC单元;以及计算ECC位的ECC计算电路,其将第一ECC位计算为用于第一数据的ECC位,该第一数据至少包括一个写数据和存储单元阵列中读取的部分读取数据。
文档编号G06F11/10GK1821971SQ200610005750
公开日2006年8月23日 申请日期2006年1月6日 优先权日2005年1月7日
发明者高桥弘行, 日比野健次, 松原宏行 申请人:恩益禧电子股份有限公司