CN101647004B - 存储器阵列错误校正设备、系统和方法 - Google Patents
存储器阵列错误校正设备、系统和方法 Download PDFInfo
- Publication number
- CN101647004B CN101647004B CN2008800087582A CN200880008758A CN101647004B CN 101647004 B CN101647004 B CN 101647004B CN 2008800087582 A CN2008800087582 A CN 2008800087582A CN 200880008758 A CN200880008758 A CN 200880008758A CN 101647004 B CN101647004 B CN 101647004B
- Authority
- CN
- China
- Prior art keywords
- data
- memory array
- read
- error
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1056—Updating check bits on partial write, i.e. read/modify/write
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
各种实施例包含操作以延长读取、修改和写入存储在存储器阵列中或正被提供到存储器阵列的数据的过程而不中断待写入到所述存储器阵列中的连续数据流的设备、方法和系统。实施例可包含设备,所述设备包括存储器阵列和耦合到所述存储器阵列的错误码模块,所述错误码模块具有数据缓冲器,所述数据缓冲器具有可操作以在对应的多个连续时钟循环上接收待写入到所述存储器阵列的多个数据突发的多个数据突发寄存器。所述错误码模块可操作以在不长于所述多个连续时钟循环中的两个连续循环的周期的时间周期内对所述多个数据突发中的每一者执行读取/修改/写入过程。
Description
相关申请案
本专利申请案主张2007年2月12日申请的第11/705,190号美国申请案的优先权权益,所述美国申请案以引用的方式并入本文中。
技术领域
本文描述的各种实施例大体上涉及存储器装置,包含具有与存储在动态随机存取存储器(DRAM)中的数据相关联的错误校正码(ECC)的存储器装置。
背景技术
半导体存储器装置是其中可存储信息且需要时可从其收回信息的集成电路。每一存储器装置由多个存储器单元建成,其中每一存储器单元具有存储至少一个二进制位数据的容量。基本上,单元位于字线与位线(例如,视为阵列的行和列)的相交处。单元可将单个数据位存储为逻辑“1”或逻辑“0”,且有时可被个别存取或寻址。单元有时可使用两个多位数字来寻址。当使用此方案时,第一多位数字或行地址可识别存储器单元所位于的存储器阵列的行。第二多位数字或列地址可识别所需存储器单元所位于的存储器阵列的列。每一行地址/列地址组合可对应于单个存储器单元。
从存储器阵列收回数据可能不会在每种情况下均完美地实现。因此,可使用错误检测和校正方案来增强存储器阵列数据存储可靠性。然而,大多数错误校正方案可能在电路占用面积和/或操作速度方面损害阵列的总体操作。因此,需要用于错误检测/校正的改进的机制。
发明内容
各种实施例包含操作以延长读取、修改和写入存储在存储器阵列中或正被提供到存储器阵列的数据的过程而不中断待写入到所述存储器阵列中的连续数据流的设备、方法和系统。实施例可包含设备,所述设备包括存储器阵列和耦合到所述存储器阵列的错误码模块,所述错误码模块具有数据缓冲器,所述数据缓冲器具有可操作以在对应的多个连续时钟循环上接收待写入到所述存储器阵列的多个数据突发的多个数据突发寄存器。所述错误码模块可操作以在不长于所述多个连续时钟循环中的两个连续循环的周期的时间周期内对所述多个数据突发中的每一者执行读取/修改/写入过程。
附图说明
图1是现有技术DRAM存储器单元;
图2是现有技术简化存储器阵列结构的示意图;
图3是根据本发明的各种实施例的系统的功能框图;
图4是根据本发明的各种实施例的设备;
图5是包含根据本发明的各种实施例的波形的时序图;以及
图6是说明根据本发明的各种实施例的若干方法的流程图。
具体实施方式
本发明描述可用于延长读取、修改和写入存储器阵列中的数据的过程而不中断待接收并写入到所述存储器阵列中的大体上连续的数据流的设备、方法和系统。如下文所陈述,此类存储器阵列可形成许多不同类型的市售存储器装置的一部分。
如下文更详细揭示,在各种实施例中,与存储器操作相关联的列循环分为两半。列循环是指一操作,包含(但不限于)与特定地址相关联的写入操作。
列是指耦合到特定字线的存储器单元的群组,所述存储器单元是在与字线相关联的地址以及耦合到字线的个别存储器单元或存储器单元的群组通过将地址应用于存储器阵列的列选择输入而选择时被选择。
列循环可包含从存储器阵列内的一个或多个存储器单元位置读取或写入到所述一个或多个存储器单元位置。单元通过将地址应用于含有存储器单元的存储器装置而被选择。列循环可分为包含读取的第一半和包含写入的第二半。在各种实施例中,这两半由与存储器阵列中的另一地址有关的列循环的另一部分间隔开。列循环如此分为两半且通过来自不同地址的列循环的插入或交错部分将两半间隔开允许在与存储器阵列中的不同地址有关的列循环正发生的时间期间针对分裂的列循环数据发生错误校正和检查位再生。
有效地,使用此方案,在三个列循环期间延长与数据以及和数据及第一存储器地址相关联的检查位有关的读取、修改和写入操作。为了使此操作不延误正常列存取性能,一个列循环可在非ECC设计将在执行正常写入或读取时使用的时间的一半或小于一半时间内执行。
可根据多种操作类型来构造现代存储器装置,例如DRAM、静态随机存取存储器(SRAM)、视频随机存取存储器(VRAM)、可擦除可编程只读存储器(EPROM)、电可擦除且可编程只读存储器(EEPROMS)、动态电可更改可编程只读存储器(DEAPROM)、快闪存储器和其它半导体存储器装置。
每种类型的存储器装置具有指示这些各种类型的存储器装置如何操作的特定特性。举例来说,动态随机存取存储器分类为易失性存储器装置,因为DRAM在移除电源时失去其所存储的数据。另外,DRAM结构上较简单,因为仅需要一个晶体管和电容器来在DRAM存储器装置中存储每一位。然而,因为电容器不是理想的装置且容易泄漏,所以DRAM存储器要求周期性地刷新电容器电荷。专用于刷新操作的额外开销在许多情况下是可接受的,因为DRAM存储器提供非常高的密度。
将下文描述的本发明的实施例描述为应用于DRAM存储器结构。然而,所属领域的技术人员将容易认识到,可以广泛种类的存储器类型来实践本发明的各种实施例,包含上文指出的那些类型中的每一者(例如,SRAM、VRAM等)。将DRAM存储器设计用作论述的基础只是借助简化说明而非限制。
DRAM存储器单元中的电荷用于表示存储在存储器单元中的值和(因此)数据。在一时间周期内,DRAM存储器单元中的电荷将泄漏掉,且存储器内容可能丢失。因此,周期性地“刷新”DRAM,因此其将不会丢失存储在存储器中的数据。
在刷新DRAM存储器时,使用一过程,其循环穿过存储器单元并将每一存储器单元恢复到代表存储在存储器单元中的数据位的值的电荷。可针对此刷新过程采用各种方案,包含将存储器阵列划分为块,其中所述块中的每一者在不同时间刷新。在其它方案中,可同时刷新整个存储器阵列。在其中将存储器划分为在不同时间刷新的块的方案中,对哪些块已被刷新以及块被刷新后过了多长时间进行跟踪。这是因为存储器单元中维持的电荷的泄漏以某一速率发生,所述速率可视存储器单元的不同而不同。在某一时间周期之后,存储器单元中的一者或一者以上中已发生的泄漏量可使得存储器单元中的电荷量现在表示与原始状态不同的状态。换句话说,数据位由于泄漏已改变状态,数据丢失,且至少数据的存储在存储器中的所述部分被损坏。
由于存储器单元内的不同位以不同速率泄漏,所以所有单元通常在少于存储器阵列中的最差情况位的时间内刷新,所述最差情况位由将在最少量的时间内泄漏电荷并改变状态的存储器单元表示。因为刷新过程每次执行时均消耗功率,所以刷新过程执行得越频繁,存储器装置将消耗的总功率就越多。因此,如果以少于存储器单元中的最差情况位的时间间隔执行刷新操作,那么与超过最差情况存储器单元由于泄漏而改变状态所用的时间的刷新时间间隔相比,将发生存储器装置的总功率消耗的增加。
另外,在正执行刷新的时间期间,不能执行从存储器读取和写入到存储器(或至少到存储器的正被刷新的特定块)。因此,存储器(或至少其被正被刷新的部分)不可用于读取或写入操作。DRAM存储器的刷新表示用于从DRAM存储器读取和写入到DRAM存储器的损失的时间,且因此对存储器装置强加总体性能损失。越不经常执行刷新,刷新要求对存储器装置强加的性能损失就越少。
在各种实施例中,可使用错误校正码来检测由于泄漏造成的数据损坏。当呈现数据以供存储到存储器阵列中时,基于待存储的数据中存在的值产生错误校正码。所属领域的技术人员已知各种类型的错误校正码。
一种类型的错误校正码称为汉明码,其可针对多个数据位产生,且可稍后指示数据位中的一者是否已改变。汉明码具有能够识别多个数据位中的数据位中的哪一者已改变的额外优点。因此,使用汉明码允许校正给定位群组内的已改变的特定位,从而允许在损坏之前将给定位群组(具有单个经改变位)恢复为数据的原始状态。
形成用于特定多个数据位的汉明码所需的位的数目取决于多个数据位中的个别位的数目。使用汉明码作为错误校正码,可将存储器装置组织成许多种数据配置,包括以下数据配置:
8个数据位和4个检查位
16个数据位和5个检查位
32个数据位和6个检查位。
使用16个数据位和5个检查位配置作为实例,可针对包含不多于16个数据位的每一数据位群组产生包含5个检查位的汉明码,且因此为这多个数据位中的每一者提供错误校正码。错误校正码可连同16个数据位一起作为额外位存储在存储器阵列中,总共21个位。在一些实施例中,5个检查位可存储在接下来5个存储器单元中与存储器阵列中的16个数据位相同的存储器位置处。在一些实施例中,5个检查位可连同其它数据的其它错误校正码一起存储在存储器阵列的与存储器阵列的存储所述数据的区域分离的部分中。在各种实施例中,针对错误校正码产生单独的地址,且使所述单独的地址与存储和错误校正码相关联的数据的地址相关联。
数据和相关联检查位的这些配置允许对存在数据位中的一个位的缺陷的情况进行检测和校正。用于上文描述的这些数据配置中的每一者的阵列额外开销对于8个数据位加4个检查位配置来说大约为50%,对于16个数据位加5个检查位配置大约为31%,且对于32个数据位加6个检查位配置大约为19%。关于存储器装置的任何应用中可使用哪一数据配置的确定取决于各种因素,例如裸片占用面积地点损失、功率损失和速度损失(例如,经由用于执行校正的逻辑进行读取或写入)。
在各种实施例中,在不超过64毫秒的时间间隔内执行刷新循环。在此类实施例中,存储器的每一位需要在从位上次被刷新起不超过64毫秒内被刷新。一般来说,以64毫秒的刷新循环间隔,刷新循环间隔可小于用于存储器阵列中的由于泄漏将改变的存储器单元的最差情况时间的时间中的任一者。因此,在大多数情况下,错误校正码检测和改变损坏的数据可能极少有作用或没有作用。
然而,对于存储器(例如,一千兆字节存储器)中包含的大量位,存储器单元的仅一小部分将实际上具有泄漏速率,从而使得存储在存储器单元处的数据的状态的改变在64毫秒的给定刷新循环间隔内发生。一千兆字节存储器中的存储器单元中的每一者将电荷泄漏到存储在存储器单元中的值将改变状态的点所用的实际时间的分布可由包含尾部(tail)的分布表示。分布的尾部可接近处于64毫秒或大于64毫秒的时间周期而开始。然而,处于刚好超过64毫秒与高达128毫秒的时间周期之间的时间周期的分布中包含的总位的部分可能是存储器阵列中存储器单元的总数目的较小百分比。在各种实施例中,64毫秒与高达128毫秒之间的存储器分布的尾部中包含的存储器单元的数目可小于存储器阵列中包含的总存储器单元的1%。
另外,可分组在一起且存储为与相同错误校正码相关联的数据位且正经历存储有所述数目的数据位的所述数据群组内的将由于泄漏而在小于128毫秒刷新时间间隔内改变状态的两个或两个以上存储器单元(例如,两个或两个以上损坏的单元)的数据位的数目比上文描述的单个位错误率的1%数值小一个或一个以上量值。
在较小数据群组(例如,8数据位群组加4个检查位)中,所述特定群组中具有两个不良数据位的概率小于较大数据群组(例如,包含16个数据位的群组)中具有两个不良数据位的概率。类似地,单个数据群组中具有两个不良位的概率在16位数据群组中比将在更大数据群组中(例如,在32位数据群组中)小。在各种实施例中,具有4个检查位的8数据位群组的刷新时间可高达且包含700毫秒刷新循环时间间隔,且对于具有6个检查位的32数据位群组,可使用600毫秒刷新循环时间间隔。
在各种实施例中,存储器阵列中存储错误校正码的位置的刷新时间间隔可小于用作用于刷新存储器阵列中存储数据位的位置的刷新时间间隔的刷新时间间隔。在一些实施例中,存储器阵列中存储错误校正码的存储器单元可使用64毫秒时间间隔来刷新,而存储器阵列中存储数据位的存储器单元可以长于64毫秒的时间间隔来刷新。
通过使用汉明码或与存储在存储器阵列中的数据相关联的其它错误校正码,可增加刷新时间间隔。在这些实施例中,添加的检查位所强加的面积损失由刷新循环时间的延长所允许的功率节省抵消。延长的刷新时间间隔使为维持存储器中的数据而执行的刷新循环的数目减小,且因此使存储器装置功率消耗减少。另外,因为期间发生刷新循环的时间是不可用于存储器的读取和写入操作的时间,所以不太频繁地需要执行刷新操作留下更多总体时间可用于从存储器进行的读取操作和对存储器进行的写入操作,从而使存储器装置的总体性能改进。
影响存储器装置的总体性能的另一因素是存储器装置操作的时钟速率。在许多情况下,较快时钟速率允许比使用较慢时钟速率时更快地执行从存储器进行的读取操作和对存储器进行的写入操作。然而,某些过程,包含涉及产生用于待写入到存储器的数据的错误校正码的操作和涉及掩蔽待写入到存储器阵列的数据的操作,可减缓总体存储器操作速度。一种替代方案可以是减慢时钟速率,使得列循环时间足够慢以允许执行额外操作,包含错误校正码产生。然而,减慢时钟速率可能会使执行从存储器进行的读取操作和对存储器进行的写入操作所需的总时间增加,且因此使存储器装置的总体性能和速度降低。
本文描述的实施例提供可准许包含对于数据位群组的错误校正码产生和数据掩蔽或此两者的操作以与用于不包含这些额外过程的读取和写入操作的时钟速率一样快的时钟速率执行的系统、设备和方法。
实施例可包含双速率存储器装置,其是在控制数据传递的时钟脉冲的上升沿和下降沿两者上均吸收数据的存储器装置。在包含双速率存储器装置的各种实施例中,在时钟脉冲的上升沿上吸收的数据被写入到存储器装置中包含的存储器阵列的一个部分,且在时钟脉冲的下降沿上吸收的数据被写入到存储器阵列的不同部分。在各种实施例中,在时钟脉冲的上升沿以及下降沿两者上吸收的数据存储到一个或一个以上缓冲器中,且接着同时写入到存储器阵列。
实施例可包含单速率存储器装置。单速率存储器装置在时钟脉冲的上升沿或下降沿但非此两者上吸收数据。
在各种实施例中,接收数据以用于以每数据位群组5纳秒的速率写入到存储器阵列。
图1是概括地以20示意说明的现有技术DRAM存储器单元或存储器位。存储器单元20包括存取晶体管22和电容器24。存储器单元20能够以电容器24上存储的电荷的形式保持二进制信息。晶体管22作为耦合在电容器24与数字线26之间的开关操作。电容器24包含在大约为以Vcc/2处或电池板电压偏置的共同节点。控制晶体管22的开关动作的栅极耦合到字线28。逻辑1二进制值与电容器24上的正Vcc/2电荷一起存储在存储器单元20中。逻辑0二进制值与电容器24上的负Vcc/2电荷一起存储在存储器单元20中。因此,表示晶体管22与电容器24之间的连接的节点30当逻辑1值存储在存储器单元20中时处于大约等于Vcc的电位,且当逻辑0值存储在存储器单元20中时处于大约0或接地电平电位。
DRAM中的存储器阵列通过将大量存储器单元20平铺(tiling)到如现有技术图2中示意说明的存储器阵列结构32中而形成。在存储器阵列结构32中,沿给定数字线(D0、D1、D2或D3)的存储器单元不共享共同字线(WL0、WL1、WL2或WL3),且沿共同字线的存储器单元不共享共同数字线。图2中的存储器阵列结构32的简化图仅出于说明性目的以展示在容易按比例缩放的阵列结构中可如何采用一个晶体管/一个电容器的存储器单元。尽管DRAM存储器单元和存储器阵列的设计可能看似简单,但其实际设计和实施方案非常复杂。
图3是根据本发明的各种实施例的系统300的功能框图。在一些实施例中,系统100可包括个人数字助理330、相机102或蜂窝式电话134。在各种实施例中,相机102可以是数码相机。
系统300包含存储器装置(例如DRAM 301)的主要组件。系统300可包含耦合到DRAM 301的处理器326。在各种实施例中,系统300包含显示器350,其在一些实施例中可耦合到处理器326。对图3的存储器装置的描述已出于说明并入有本发明的DRAM存储器装置的目的而简化,且不希望其是对存储器装置的所有特征的完整描述。如上所述,其它存储器装置结构可容易地替代DRAM 301。
在地址线302上提供到DRAM 301的地址信息,在数据线304上提供数据信息,且在导向控制逻辑306的多个控制线305上提供控制输入。在一些实施例中,在数据掩码输入328上提供与数据信息相关联的数据掩蔽信息。
DRAM 301包含存储器阵列310,存储器阵列310又包括可寻址存储器单元的行和列。一行中的每一存储器单元耦合到共同字线,如由线WL1-WLn 315说明。另外,一列中的每一存储器单元耦合到共同位线,如由线BL1-BLn 317说明。存储器阵列310中的每一单元包含存储电容器和存取晶体管,且可包含若干存储器子阵列。
DRAM 301可经由地址线302和数据线304以及数据掩码输入328耦合到(例如)处理器326。替代地,DRAM 301可耦合到DRAM控制器、微控制器、芯片组或其它电子系统。处理器326还将若干控制信号经由控制线305提供到DRAM 301,所述控制信号包含(但不限于)行和列地址选通信号RAS(条)和CAS(条)、写入启用信号WE(条)、输出启用信号OE(条)、时钟信号307以及其它控制信号。在各种实施例中,处理器326包含提供时钟信号307的时钟电路303。在图3中,“条”表示和这些信号的标记(例如,OE、WE)上的线指示低逻辑电平等同于“接通”状态。实施例不限于使用“条”信号指示接通状态,且可使用任何类型信号(包含(但不限于)“条”信号的反转形式)来代替如图3所示的信号。
行地址缓冲器312和行解码器314从由(例如)处理器326在地址线302上提供的行地址信号接收并解码行地址。每一行地址对应于存储器阵列310中的一行单元。行解码器314包含字线驱动器、地址解码器树和电路,所述电路变换从行地址缓冲器312接收的给定行地址,并经由字线驱动器选择性地激活存储器阵列310的适当字线。
列地址缓冲器316和列解码器318接收并解码由处理器326在地址线302上提供的列地址信号。每一列地址对应于存储器阵列310中的一列单元。列解码器318耦合到读出放大器320。在各种实施例中,列解码器318经由多个列选择线319耦合到读出放大器320。读出放大器320耦合到存储器阵列310的位线。
读出放大器320耦合到错误码模块340。在各种实施例中,错误码模块340经由连接330将数据提供到读出放大器320,并经由连接332从读出放大器320接收数据。错误码模块340耦合到地址线302且耦合到数据线304。在一些实施例中,错误码模块340耦合到数据掩码输入328。在写入操作期间,数据线304将数据提供到错误码模块340。读出放大器320从错误码模块340接收数据,并将数据作为单元的电容器上的电荷存储在存储器阵列310中在地址线302上指定的地址处。
在DRAM读取操作期间,DRAM 301将数据从存储器阵列310传递到处理器326。用于经存取单元的互补位线在预充电操作期间相对于平衡电路和参考电压源提供的参考电压平衡。存储在经存取单元中的电荷接着与相关联位线共享。读出放大器320中包含的读出放大器检测并放大互补位线之间的电压差。读出放大器将经放大电压传递到错误码模块340。
控制逻辑306可用于控制DRAM 301的许多可用功能。另外,如所属领域的技术人员已知,本文未详细描述的各种控制电路和信号可经启始并使DRAM 301操作同步。如上所述,已出于说明本发明的各种实施例的目的简化了对DRAM 301的描述,且不希望所述描述是对DRAM的所有特征的完整描述。类似地,本文对其它存储器结构的任何提及是用于注明其作为DRAM 301的替代物的用途,且所属领域的一般技术人员将了解这些替代结构的标准操作特征。
位线BL1-BLn用于向存储器阵列310内的存储器单元写入数据以及从所述存储器单元读取数据。字线WL1-WLn用于存取待写入或读取的存储器单元行。行解码器314和列解码器318响应于在写入和读取操作期间从处理器326在地址线302上提供的地址信号而可选择地存取存储器单元。
在操作中,DRAM 301在错误码模块340处接收特定存储器单元的地址。举例来说,处理器326可向地址缓冲器312和316提供存储器阵列310内的特定单元的地址。行地址缓冲器312向行解码器314识别(例如)用于适当存储器单元的字线WL1。行解码器314选择性地激活字线WL1以激活连接到字线WL1的每一存储器单元的存取晶体管。列地址缓冲器316向列解码器318识别(例如)用于适当存储器单元的位线BL1。列解码器318出于读取或写入目的将特定读出放大器选择性地连接到I/O(输入/输出)位线。
在各种实施例中,多个单元,例如耦合到特定字线和多个位线(例如,位线BL1-BLn)的单元,将包含在地址线302上接收的地址中。多个位中的位的数目不限于位的任何特定数目,且可包含(例如)8位、16位或32位。在各种实施例中,在数据线304上提供的且与在地址线302上提供的地址相关联的数据可包含与当提供数据位时由在地址线302上提供的地址所寻址的存储器单元的数目相同数目的位。
在各种实施例中,所提供的地址将选择比与所提供的地址相关联的数据中提供的数据位的数目大的数目的存储器单元。在这些情况下,额外数目的选定的存储器单元可寻址存储器阵列310中错误校正码(包含一个或一个以上位,且与存储或待存储在存储器阵列310中的数据相关联)所位于的存储器单元。
在各种实施例中,在数据掩码输入328上将一组数据掩码提供到错误码模块340。所述组数据掩码可与在数据线304上提供的数据相关联,其中在数据线304上提供的且与所述组数据掩码相关联的数据是待写入到存储器阵列310的数据。
图4说明包含错误码模块340的设备400。在各种实施例中,错误码模块340包含数据缓冲器402、错误码计算单元430和数据组合器434。数据缓冲器402可通过连接432耦合到错误码计算单元430。在各种实施例中,数据缓冲器402可包含多个数据缓冲器和寄存器,包含(但不限于):读取数据寄存器410、经修改数据寄存器412、错误校正码寄存器414、读取错误校正码寄存器416、输入数据缓冲器418和输出数据缓冲器420。这些寄存器和缓冲器不限于任何特定类型的寄存器或任何特定类型的缓冲器,或限于任何特定长度或数目的位。实施例不限于对于数据缓冲器402中包含的寄存器和缓冲器中的任一者具有特定寄存器或缓冲器大小,且可包含具有不同大小的寄存器和缓冲器。
在各种实施例中,错误码模块340包含时钟产生电路403。在一些实施例中,时钟产生电路403接收时钟信号(例如,时钟信号307)并产生一个或一个以上额外时钟信号。在一些实施例中,时钟产生电路403产生约为所接收时钟信号307的循环速率的两倍的时钟信号。在各种实施例中,如本文进一步详细描述,时钟产生电路403提供用于操作列循环的时钟信号。各种实施例包含耦合到处理器且可操作以产生多个连续时钟循环的时钟电路,以及耦合到时钟电路且耦合到错误码模块的半循环时钟产生电路,所述半循环时钟产生电路可操作以以约为时钟电路的速率的两倍的速率产生多个连续时钟循环。
数据缓冲器402可经由连接436耦合到数据组合器434。在各种实施例中,错误码模块340耦合到地址线302、数据线304和数据掩码输入328。
在数据缓冲器402内,存储在数据缓冲器402中包含的寄存器或缓冲器中的任一者中的内容可在数据缓冲器402中包含的任何其它寄存器或缓冲器之间、在数据缓冲器402内部或在数据缓冲器402外部传递。在各种实施例中,例如输入数据缓冲器418和输出数据缓冲器420等缓冲器包含输入缓冲器和驱动器电路,以提供接收数据并将数据发送至到数据缓冲器402的一个或一个以上连接(包含(但不限于)地址线302、数据线304、数据掩码输入328)的能力。
在各种实施例中,数据缓冲器402内的寄存器包含电路以允许寄存器从数据缓冲器402耦合到的任何存储器阵列(例如,存储器阵列440)接收数据并将数据提供到所述任何存储器阵列。
在各种实施例中,错误码模块340耦合到全局读取I/O 452和全局写入I/O 450。全局读取I/O 452和全局写入I/O 450不限于任何特定类型的I/O,且可包含可用于连接到错误码模块340的任何I/O。在各种实施例中,全局读取I/O 452和全局写入I/O 450将错误码模块340耦合到多个局部I/O 446(a-n)。局部I/O 446(a-n)表示多个局部I/O。局部I/O 446(a-n)可包含任何数目的局部I/O。局部I/O 446(a-n)中的每一者可包含多个个别信号线。局部I/O 446(a-n)不限于使局部I/O 446(a-n)中包含的每一局部I/O具有相同数目的个别信号线。
在一些实施例中,局部I/O 446(a-n)中的一者或一者以上包含读取接口447。读取接口447包含用于将特定局部I/O 446(a-n)中的局部I/O信号线耦合到全局读取I/O 452线的接口。读取接口447在图4中展示为447(a)和447(n),其中字母表示是指示其中包含特定读取接口447的特定局部I/O 446(a-n)的字母表示的匹配。在一些实施例中,局部I/O446(a-n)中的一者或一者以上包含写入接口448。写入接口448包含用于将特定局部I/O446(a-n)中的局部I/O信号线耦合到全局写入I/O 450线的接口。写入接口448在图4中展示为448(a)和448(n),其中字母表示是指示其中包含特定写入接口448的特定局部I/O446(a-n)的字母表示的匹配。
在各种实施例中,读出放大器444包含将局部I/O 446(a-n)耦合到存储器阵列440的多个读出放大器。在各种实施例中,ECC码扇区442可包含在存储器阵列中,且经由读出放大器444耦合到局部I/O 446(a-n)中的一者或一者以上。在各种实施例中,与存储在存储器阵列中的至少一条数据相关联的错误校正码可存储在ECC码扇区442中。在各种实施例中,与存储在存储器阵列440中的数据相关联的一个或一个以上错误校正码可与存储在存储器阵列440中的数据中的每一者一起包含在存储器阵列440中。在各种实施例中,这一个或一个以上错误校正码存储在存储器阵列440的ECC码扇区442中。
在各种实施例中,存储器阵列440可耦合到字线WL1-WLN 315。在各种实施例中,读出放大器444可耦合到列选择线319。在一些实施例中,字线WL1-WLN 315和列选择线319可用于控制从存储器阵列440读取数据和向存储器阵列440写入数据。在各种实施例中,读取和写入包含从存储器阵列读取和向存储器阵列写入一个或一个以上错误校正码。在各种实施例中,错误码模块340可通过在地址线302上提供地址、通过在数据线304上提供数据或此两者来控制存储器阵列440的读取和写入操作。
在操作中,错误码模块340可接收数据线304上的数据,即待写入到存储器阵列440中的数据。在地址线302上接收所接收数据将被存储到的地址。可在数据掩码输入328上接收与所接收数据相关联的一个或一个以上数据掩码设置。数据掩码设置可包含与所接收数据的多个部分中的每一者相关联的指示,数据掩码设置为所接收数据的多个部分中的每一者指示是否已设置所接收数据的所述特定部分的掩码。
举例来说,在数据线304上接收的数据可包含32位的数据,且可在数据掩码输入328上接收4个数据掩码输入,其中数据掩码输入中的每一者指示针对32位的一个特定字节(8位)的数据掩码设置。实施例不限于任何特定数目的数据位,且不限于针对输入数据中包含的任何给定数目的位的任何特定数目的数据掩码输入。掩码位视需要可表示数据位、字节、字、双字和数据的其它分区。
返回图4,在各种实施例中,所接收数据可存储在输入数据缓冲器418中。在各种实施例中,所接收数据将在存储器阵列440中写入的地址也可存储在输入数据缓冲器418中。基于所接收地址,错误码模块340可从存储器阵列将当前存储在所接收地址处的数据读取到读取数据寄存器410中。所存储数据的读取可在全局读取I/O 452线上以及在与读出放大器和通过所接收地址选择的存储器阵列440相关联的局部I/O 446线上发生。在一些实施例中,与所读取数据一起存储的错误校正码也将被读取并存储在读取数据寄存器410中。在包含单独错误码扇区(例如,ECC码扇区442)的实施例中,与从存储器阵列440读取的数据相关联的错误校正码将从错误码扇区读取且可存储在读取数据寄存器410中。
在各种实施例中,在接收存储在读取数据寄存器410处的数据和错误校正码之后,错误码计算单元430可将所读取数据与和所读取数据相关联的所读取错误校正码进行比较,且将确定数据中是否已发生错误。如果已发生错误且可基于错误校正码校正所述错误,那么错误码计算单元430将把表示经校正的所读取数据的一组正确的数据位提供到读取数据寄存器410。
在各种实施例中,可在数据线304上接收待存储到存储器阵列440中的第二组数据位,包含第二组数据位将被存储到的在地址线302上接收的地址处的地址。另外,可在数据掩码输入328上接收一组数据掩码输入,所述组数据掩码输入包含针对所接收的第二组数据位的数据掩码设置。所接收的第二组数据位连同相关联地址和相关联数据掩码输入可存储在输入数据缓冲器418中。存储所接收的第二组数据位连同相关联地址和相关联数据掩码输入可存储到输入数据缓冲器418中,而不会移除或影响已存储在输入数据缓冲器418中的任何数据。
在各种实施例中,在接收第二数据的时间期间,但在将第二数据写入到存储器阵列之前,可对第一组所接收数据执行读取/修改/写入过程。在各种实施例中,对当前存储在存储器阵列440中的处于与第二所接收数据相关联的地址处的数据的读取也可在正对第一组所接收数据位执行读取/修改/写入过程的时间期间执行,如下文更详细描述。
在各种实施例中,读取/修改/写入过程包含数据组合器434,其将存储在读取数据寄存器410中的与所接收的用于写入第一所接收数据位的地址相关联的数据与存储在输入数据缓冲器418中的与所接收的第一组数据位相关联的数据组合。如先前所描述,来自读取数据寄存器410的与所接收的第一组数据位的地址相关联的所存储数据可能已使用所存储的错误校正码校正所存储数据。数据组合器434可基于与所接收的第一组数据位相关联的数据掩码设置将来自读取数据寄存器410的所存储数据与来自输入数据缓冲器418的所存储数据组合。数据掩码设置可包含所存储的所接收的第一组数据位的多个部分中的每一者的状态,所述状态指示实际上写入到存储器阵列440的所述组数据位是否将在每一部分中包含在第一组数据位中接收的数据位或已存储在存储器阵列440中的数据位。
举例来说,存储在输入数据缓冲器418中的所接收组的数据位可总共包含32个位,其中包含表示总共32个位中的8个位的四个部分。数据掩码输入可包含4个位,4个位中的每一者与32个位中的8位部分中的特定一者相关联。4位数据掩码输入中的每一者包含关于总共32个位中与特定数据掩码输入相关联的特定8位部分是否将被掩蔽的指示。指示不限于任何特定类型的指示。在各种实施例中,指示是二进制值,例如二进制1或二进制0,其中指示的值确定总共32个位中的特定8位部分是否将被掩蔽。在各种实施例中,数据掩码输入上的1指示已为总共32个位中的特定部分设置一掩码,且数据掩码输入上的0指示尚未为总共32个位中的特定部分设置掩码。其它组合是可能的。
在各种实施例中,为多个数据位中的特定部分设置掩码的指示意味着代替于使用在多个数据位中接收的数据位的一部分来写入到存储器阵列,已存储在存储器阵列中的数据位的所述部分将针对多个数据位的写入到所接收地址的所述部分而重写到存储器阵列中。对于多个数据位的数据掩码输入针对其包含指示所述多个数据位的所述部分将不被掩蔽的值的部分,针对所述多个数据位的所述部分写入到存储器阵列的数据位将包含在所接收组数据位中接收的数据位。
在各种实施例中,例如上文包含总共32个数据位和针对总共数据位的四个8位部分的数据掩码输入的实例,所述操作称为“字节-写入”,因为总共数据位中包含的待写入到存储器阵列中的给定地址的一个或一个以上字节可以逐字节为基础掩蔽。应了解,待写入到存储器阵列的数据的掩蔽不限于将特定数目的位掩蔽到总共位中的给定部分。事实上,掩蔽可包含掩蔽总共位中的任何数目的位,包含(但不限于)以逐个别位为基础掩蔽总共数目的位中的每一者。
再次参看图4和读取/修改/写入操作,数据组合器434基于与第一组数据位相关联的数据掩码输入的状态完成对第一组数据位的修改。经修改的第一组数据位包含所接收的第一组数据位,其可与存储在读取数据寄存器410中的第一组数据位的一个或一个以上部分(如针对第一所接收组的数据位的所接收数据掩码输入所规定)组合,所述掩蔽如上文所描述而实行。
经修改的第一组数据位可存储在经修改数据寄存器412中。在经修改第一组数据位已产生之后,错误码计算单元430可产生与经修改的第一组数据位相关联的错误校正码,所产生的错误校正码基于如经修改的第一组数据位中提供的数据位。在一些实施例中,与经修改的第一组数据位相关联的所产生的错误校正码可存储在错误校正码寄存器414中。在一些实施例中,与经修改的第一组数据位相关联的所产生的错误校正码可添加到经修改的第一组数据位中包含的数据位,从而形成包含经修改的第一组数据位和针对经修改的第一组数据位的相关联错误校正码的多个数据位。在各种实施例中,包含经修改的第一组数据位和针对经修改的第一组数据位的相关联错误校正码的这多个数据位可存储在经修改数据寄存器412中。
一旦经修改的第一组数据位和针对经修改的第一组数据位的相关联错误校正码已产生,经修改的第一组数据位和相关联错误校正码就可被写入到存储器阵列440。在各种实施例中,经修改的第一组数据位和相关联错误校正码由错误码模块340连同所提供的经修改的第一组数据位将在存储器阵列440内被写入的相关联地址一起提供到全局写入I/O 450。在其中相关联错误校正码将被写入到存储器阵列的不同部分(例如,ECC码扇区442)的各种实施例中,相关联错误校正码将被写入的地址也可由错误码模块340提供到全局写入I/O 450。
在各种实施例中,全局写入I/O 450可将待写入到存储器阵列440的第一组数据位和相关联错误校正码提供到一个或一个以上局部I/O 446(a-n)。在各种实施例中,全局写入I/O 450可将第一组数据位提供到一个或一个以上写入接口448(a-n)以便将第一组数据位写入到存储器阵列440。在各种实施例中,全局写入I/O 450将把相关联错误校正码提供到与曾用于写入第一组数据位不同的一组写入接口448(a-n),且所述组不同的写入接口448(a-n)可用于将相关联错误校正码写入到存储器阵列440。在各种实施例中,用于写入操作的局部I/O 446(a-n)由耦合到存储器阵列440中的由错误码模块340在写入操作中提供的地址所寻址的位置的特定局部I/O 446(a-n)确定。
应了解,各种实施例可能不包含全局读取I/O 452和全局写入I/O 450,其中局部I/O446(a-n)可直接耦合到错误码模块340。在一些实施例中,局部I/O 446(a-n)可直接从错误码模块340接收经修改组的数据位和相关联错误校正码。在各种实施例中,与经修改组的数据位相关联的地址确定局部I/O 446(a-n)中的哪一者可用于执行经修改组的数据位和相关联错误校正码的写入操作。
在各种实施例中,可在执行经修改的第一组数据位(和针对经修改的第一组数据位的相关联错误校正码)的写入之前执行针对所接收的第二组数据位的读取/修改/写入过程中的读取部分。
通过执行针对所接收的第一组数据位的读取/修改/写入操作中的读取部分,且接着在执行针对所接收的第一组数据位的写入操作之前执行针对所接收的第二组数据位的读取/修改/写入操作中的读取部分,可提供额外时间用于在将所得的经修改的第一组位写入到存储器阵列之前对所接收的第一组数据位执行所述程序中的修改部分。
因此,通过使与第一组数据位相关联的读取/修改/写入操作和与第二组所接收数据位相关联的读取/修改/写入操作交错,可接收数据位的速率可增加,同时仍提供足够的时间周期来通过读取/修改/写入过程处理所接收数据组中的每一者。在各种实施例中,此读取/修改/写入过程包含读取已存储在相关联地址处的数据,对照与所读取数据相关联的所存储错误校正码检查所读取数据,以及如果必要,基于与所读取数据相关联的所存储错误校正码来校正所读取数据。在各种实施例中,读取/修改/写入过程包含基于作为与所接收数据位相关联的数据掩码输入而接收的一个或一个以上状态值来修改所读取数据位。在各种实施例中,读取/修改/写入过程包含基于由于数据掩蔽而产生的经修改组的数据位产生错误校正码。
在各种实施例中,从存储器阵列440读取与所接收的第二组数据位相关联的所存储数据之后可进行将经修改的第一组数据位写入到存储器阵列440的写入操作,从存储器阵列440读取与所接收的第三组数据位相关联的第三组所存储数据位,且接着将与所接收的第二组数据位相关联的经修改组的数据位写入到存储器阵列440,如参看图5进一步描述。在各种实施例中,在执行读取与所接收的第二组数据相关联的所存储数据之后的某一时间针对所接收的第二组数据执行修改和错误校正码产生过程,同时执行经修改的第一组数据位的写入操作,且同时还执行存储在存储器阵列中的与第三组数据相关联的数据的读取操作。此与不同组的所接收数据有关的操作交错可针对任何数目组的所接收数据重复。
通过使读取/修改/写入操作交错,例如设备400等设备(包含错误码模块340)提供以快速速率接收待写入到存储器阵列的数据组的能力,同时仍对所读取数据、对所产生数据或此两者执行错误校正,以及执行数据掩蔽操作,如本文所描述。
图5是根据本发明的实施例的波形500的时序图。波形500可包含在如图3所示的系统中。波形500可包含在如图4所示的设备中。如图5所示的波形500包含时钟信号502、WE(条)(例如,WE)信号504、数据信号506、地址信号508和数据掩码输入信号510。如图5所示的波形500包含列选择信号520、局部I/O(LI/O)信号522、全局读取I/O(GRI/O)信号524和全局写入I/O(GWI/O)信号526。
在各种实施例中,时钟信号502可包含如图3所示的时钟信号307。在各种实施例中,时钟信号307可由时钟产生电路303提供。在各种实施例中,WE(条)信号504可类似于如图3所示的WE(条)信号或与其相同。在各种实施例中,数据信号506可经由如图3和图4所示的数据线304提供到错误码模块340。在各种实施例中,地址信号508可经由如图3和图4所示的地址线302提供到错误码模块340,数据掩码输入信号510可经由如图3和图4所示的数据掩码输入328提供,且列选择信号520可经由如图3和图4所示的列选择线319提供。在各种实施例中,LI/O信号522可在如图4所示的局部I/O 446(a-n)中的一者或一者以上上提供,GRI/O信号524可在如图4所示的全局读取I/O 452上提供,且GWI/O信号526可在如图4所示的全局写入I/O 450上提供。
再次参看图5,展示时间周期(a)、(b)、(c)、(d)、(e)、(f)、(g)、(h)、(i)、(j)、(k)、(l)、(m)、(n)、(o)和(p)。这些时间周期(a)到(p)中的每一者大约在时钟信号502的变换的时间发生。时钟信号502不限于任何特定循环时间,且因此时间周期(a)到(p)之间的时间不限于任何特定时间量。
在各种实施例中,所接收且待写入到存储器阵列中的数据可称为数据突发。数据突发可指在特定时间到达错误码模块的数据,例如但不限于D0。数据突发可包含数据和与数据相关联的地址。在一些实施例中,与数据突发相关联的地址可包含与和数据相关联的错误校正码可存储的位置相关联的地址。在一些实施例中,数据突发可包含数据掩码输入。
大约在时间周期(a)处,发生时钟信号502的变换,同时对WE(条)信号504进行脉冲。在各种实施例中,信号的此组合指示数据待写入到存储器阵列中。大约在时间周期(a)处,在数据信号506上提供表示为“D0”的数据,在地址信号508上提供与“D0”相关联的地址“ADD0”,且在数据掩码输入信号510上提供与“D0”相关联的数据掩码输入“MASK0”。ADD0与D0相关联,因为ADD0包含数据D0将被存储到的地址。在一些实施例中,ADD0可包含针对D0的错误校正码将被存储的地址。在各种实施例中,ADD0可包含选择存储器阵列的与已存储在存储器阵列中由ADD0中包含的ADD0的数据部分寻址的位置处的数据相关联的错误校正码所位于的存储器阵列部分的地址。
大约在时间周期(b)处,发生时钟信号502的变换,同时数据信号506提供数据“D1”,且地址信号508提供与数据D1相关联的地址“ADD1”,且数据掩码输入信号510提供与数据D1相关联的数据掩码输入“MASK1”。这些信号中的任一者视需要可能在或可能不在此时间周期(b)处提供。
在各种实施例中,数据D0和D1、地址A0和A1以及数据掩码输入MASK0和MASK1可存储在输入数据缓冲器中,包含(但不限于)如图4所示的输入数据缓冲器418。在各种实施例中,波形500可在双数据速率装置中操作,如先前所描述,且因此数据D0和D1在时钟信号502的连续变换上被提供,且一起被处理。实施例不限于双数据速率装置,且在一些实施例中,如下文针对D0和D1数据所述,数据以逐单个数据为基础提供且以个别为基础处理。
大约在时间周期(c)处,发生时钟信号502的变换,同时数据信号506提供数据“D2”,且地址信号508提供与数据D2相关联的地址“ADD2”,且数据掩码输入信号510提供与数据D2相关联的数据掩码输入“MASK1”。这些信号中的任一者视需要可能在或可能不在此时间周期(c)处提供。
同样大约在时间周期(c)处,列选择信号520提供一信号以启始从存储器阵列读取当前存储在存储器阵列中处于ADD0和ADD1中包含的地址的数据部分处的数据。在其中ADD0和ADD1包含指示存储器阵列中与ADD0和ADD1的数据部分中包含的数据位置相关联的错误校正码所存储的位置的额外地址的一些实施例中,这些错误校正码也将通过列选择信号520所提供的地址读取。
在各种实施例中,在列选择信号520上提供的信号可施加到存储器阵列,从而导致从由ADD0和ADD1地址指示的存储器位置读取数据。在各种实施例中,此所读取数据可由LI/O信号522大约在时间周期(c)处提供。此在LI/O信号522上展示为“DR.0,1”,大约在时间周期(c)开始。在包含全局读取I/O线的实施例中,所读取数据可大约在时间周期(c)处由LI/O信号522提供到GRI/O信号524,如在GRI/O信号524上展示为“DR.0,1”,其大约在时间周期(c)开始。在各种实施例中,全局读取I/O线选通到局部I/O线,使得在LI/O信号522上提供的任何信号均在GRI/O信号524上可用,并减去选通电路中存在的任何延迟,如所属领域的一般技术人员将了解。
在各种实施例中,读取存储器阵列中存储的由所寻址的ADD0和ADD1指示的数据(大约在时间周期(c)处开始,且包含时间周期(c)与(d)之间的时间),表示对数据D0和D1执行的读取/修改/写入过程中的读取部分。在各种实施例中,在已读取数据之后开始的时间周期期间,且直到大约时间周期(f),可对数据D0和D1执行读取/修改/写入过程中的修改部分。修改部分可包含上文相对于错误码模块描述的提供待写入到存储器阵列中的数据的过程中的任一者,包含(但不限于)对初始从存储器阵列读取的数据执行错误校正,使用数据掩码输入将所接收数据与所读取数据组合,以及为所接收数据或为所接收数据与所读取数据的组合产生错误校正码。
如图5所示,且如上所述,大约在时间周期(c)处,分别在数据信号506、地址信号508和数据掩码输入信号510上提供额外数据、地址信息和数据掩码(包含数据D2、相关联地址ADD2和相关联数据掩码输入MASK2)。大约在时间周期(d)处,分别在数据信号506、地址信号508和数据掩码输入信号510上提供额外数据、地址信息和数据掩码(包含数据D3、相关联地址ADD3和相关联数据掩码输入MASK3)。在各种实施例中,数据D2和D3的处理可以类似于上文相对于数据D0和D1描述的方式一起进行。
可在正执行针对数据D0和D1描述的读取和修改过程的同时接收与数据D2和D3有关的额外数据、地址信息和数据掩码。在各种实施例中,数据D2和D3连同相关联地址ADD2和ADD3以及相关联数据掩码输入MASK2和MASK3一起可存储在输入数据缓冲器中,包含(但不限于)错误码模块340的输入数据缓冲器418。
如图5所示,大约在时间周期(e)处,已接收到数据D2和D3以及针对D2和D3的相关联地址和数据掩码输入,且列选择信号520提供“读取2,3”信号。读取2,3信号导致从存储器阵列读取存储在ADD2和ADD3处的数据。所述数据可经由LI/O信号522提供,如针对大约在时间周期(e)处开始的LI/O信号522所展示。读取ADD2和ADD3处的数据可在发生相对于数据D0和D1的修改过程的同时且在与D0和D1相关联的所得数据已写入到存储器阵列之前发生。因此,接收额外数据D2和D3,且在将与D0和D1数据相关联的数据写入到存储器阵列之前对额外数据D2和D3执行包含读取/修改/写入过程中的读取部分的初始处理。
在各种实施例中,大约在时间周期(e)处,分别在数据信号506、地址信号508和数据掩码输入信号510上提供额外数据、地址和数据掩码(包含数据D4、相关联地址ADD4和相关联数据掩码输入MASK4)。数据D4、地址ADD4和数据掩码输入MASK4可存储在输入数据缓冲器中,包含(但不限于)错误码模块340的输入数据缓冲器418。
返回图5,大约在时间周期(f)处,已完成与数据D0和D1有关的读取/修改/写入过程中的读取和修改部分,且待在地址ADD0和ADD1处写入到存储器阵列的数据使用“写入0,1”信号在列选择信号520上提供到存储器阵列。在各种实施例中,待在地址ADD0和ADD1处写入到存储器阵列的数据在LI/O信号522上作为“DW 0,1”信号提供,大约在时间周期(f)处开始。在各种实施例中,DW 0,1信号可由GWI/O信号526提供到LI/O信号522,如展示在GWI/O信号526上大约在时间周期(f)处开始。
在各种实施例中,在涉及与D0和D1相关联的数据正写入到存储器阵列的写入操作的时间期间,也可执行与D2和D3数据相关联的读取/修改/写入过程中的修改部分。
大约在时间周期(f)处,提供数据D5和相关联地址ADD5以及相关联数据掩码输入MASK5。
大约在时间周期(g)处,列选择线提供“读取4,5”信号,从而致使读取存储在存储器阵列的ADD4和ADD5处的数据。如图5所示,此与ADD4和ADD5相关联的读取在将与数据D0和D1相关联的数据写入到存储器阵列之后且在与数据D2和D3相关联的读取之后的时钟信号502的仅一半循环的时间周期期间发生。因此,大约在时间周期(g)处,在与数据D2和D3相关联的数据的读取已发生且与D2和D3相关联的数据的修改可能正发生的同时、且在与数据D2和D3相关联的数据的写入已发生之前,与D4和D5相关联的数据的读取正开始。
大约在时间周期(h)处,已完成与数据D2和D3有关的读取/修改/写入过程中的读取和修改部分,且待在地址ADD2和ADD3处写入到存储器阵列的数据使用“写入2,3”信号在列选择信号520上被提供到存储器阵列。在各种实施例中,待在地址ADD2和ADD3处写入到存储器阵列的数据在LI/O信号522上作为“DW 2,3”信号提供,大约在时间周期(h)处开始。在各种实施例中,DW 2,3信号可由GWI/O信号526提供到LI/O信号522,如展示在GWI/O信号526上大约在时间周期(h)处开始。
如图5所示,在与ADD2和ADD3相关联的所存储数据大约在时间周期(e)处开始被读取的时间与当待存储在ADD2和ADD3处的数据大约在时间周期(h)处开始被写入到存储器阵列的时间之间,已发生两个其它列循环操作,包含大约在时间周期(f)处开始的写入0,1操作和大约在时间周期(g)处开始的读取4,5操作。
如图5所示,额外数据(例如,数据D6和D7)连同额外相关联地址和相关联数据掩码输入一起可以上文相对于数据D0和D1以及D2和D3以及数据D4和D5描述的交错方式接收并处理。
如从图5中以及从上文提供的描述中应了解,可在时钟信号(例如,时钟信号502)的每一变换上大体上无中断地且在对所接收数据中的每一者执行读取/修改/写入过程的同时接收数据,即使当读取/修改/写入过程要求超过时钟信号的单个循环的时间周期(两个变换)的时间周期时也是如此。通过将每一条所接收数据的读取/修改/写入过程划分为第一读取半部和第二写入半部,且通过使第一读取半部和第二写入半部与来自另一条所接收数据的至少一读取半部或来自另一条所接收数据的至少一写入半部或来自一个或一个以上其它数据的读取半部和写入半部两者交错,可以用于不包含错误校正码的简单读取或写入操作或数据掩蔽操作或此两者的时钟速率在不中断接收数据的速率的情况下完成读取/修改/写入过程。这部分地通过以时钟信号的循环速率的至少两倍的速率操作列选择信号,且通过执行与针对其它所接收数据的读取/修改/写入程序交错的针对任一条数据的读取/修改/写入操作来实现。
如图5所示,针对从存储器阵列读取和写入到存储器阵列的数据的数据传递可使用LI/O信号522进行。在一些实施例中,针对存储器阵列读取的数据可使用GRI/O信号524来传递。在一些实施例中,写入到存储器阵列的数据可使用GWI/O信号526来传递。
如图5所示,大约在时间周期(l)处,涉及与数据D6和D7相关联的数据的对存储器阵列的最后数据写入开始。在大约时间周期(m)处的一半时钟循环内,接收读取请求,其中数据可待从存储器读取并被作为来自存储器阵列的输出而提供。
图6是说明根据本发明的各种实施例的若干方法的流程图。
方法600可包含在框610处,在对应的多个连续时钟循环上,接收待写入到存储器阵列的多个数据突发。
在一些实施例中,接收多个数据突发可包含在多个连续时钟循环变换中的第一时钟循环变换之后接收第一多个数据位,所述第一多个数据位将写入到存储在存储器阵列中的第一地址处的数据位群组的至少一个部分。
在一些实施例中,接收多个数据突发可包含在多个连续时钟循环变换中的第二时钟循环变换之后接收第二多个数据位,所述第二多个数据位将写入到存储在存储器阵列中的第二地址处的数据位群组的至少一个部分。
在一些实施例中,接收第二多个数据位包含:在第二时钟循环变换之后且在多个连续时钟循环变换中的第四时钟循环变换之前,在第二地址处读取所存储数据位的第二群组以产生读取数据位的第二群组,通过将第二多个数据位与读取数据位的第二群组组合而产生写入数据位的第二群组,产生针对写入数据位的第二群组的第二错误校正码,以及将写入数据位的第二群组写入到第二地址。
方法600可包含在框620处针对多个数据突发中的每一者执行读取/修改/写入过程,其可包含在不长于对应的多个连续时钟循环中的两个循环的周期的时间周期内执行读取/修改/写入过程。
在一些实施例中,执行读取/修改/写入过程包含确定存储器阵列中正处理的特定数据突发将被写入到的地址,以及从所述地址读取多个所存储数据位。
在一些实施例中,执行读取/修改/写入过程包含接收与正处理的特定数据突发相关联的数据掩码,以及通过将来自多个所存储数据位中已针对其设置数据掩码的任何位和来自正处理的特定数据突发中未针对其设置数据掩码的任何位包含在经修改的多个数据位中来提供所述经修改的多个数据位。
在一些实施例中,执行读取/修改/写入过程包含为经修改的多个数据位产生错误校正码。在一些实施例中,执行读取/修改/写入过程包含将经修改的多个数据位写入到存储器阵列中的地址,以及将错误校正码写入到存储器阵列。在一些实施例中,将错误校正码写入到存储器阵列包含将错误校正码写入到存储器阵列中的地址。在一些实施例中,将错误校正码写入到存储器阵列包含将错误校正码写入到存储器阵列中的不同地址。
在一些实施例中,执行读取/修改/写入过程包含在第一时钟循环变换之后且在多个连续时钟循环变换中的第三时钟循环变换之前:在第一地址处读取所存储数据位的第一群组以产生读取数据位的第一群组,通过将第一多个数据位与读取数据位的第一群组组合产生写入数据位的第一群组,产生针对写入数据位的第一群组的第一错误校正码,以及将写入数据位的第一群组写入到第一地址。
在各种实施例中,在第一地址处读取可包含在存储器阵列的多个地址线上提供第一地址,以及将在多个局部输入/输出线上提供的数据存储在第一地址处。在各种实施例中,存储数据可包含将存储在第一地址处的数据从局部输入/输出线选通到多个全局输入/输出线。
在各种实施例中,产生写入数据位的第一群组可包含接收写入数据位的第一群组,大约在写入数据位的第一群组写入到动态随机存取存储器阵列的时间接收表示写入数据位的第一写入群组的状态的错误码,以及基于表示写入数据位的第一群组的状态的错误码确定写入数据位的第一群组中包含的位中的任一者是否包含错误。各种实施例可包含校正写入数据位的第一群组中包含的多个数据位中的任一者中的错误。
在各种实施例中,产生写入数据位的第一群组可包含:接收一个或一个以上掩蔽输入,每一掩蔽输入与读取数据位的第一群组的选定部分相关联;以及通过将数据位的第一读取群组中一个或一个以上掩蔽输入针对其指示掩蔽状态已设置的选定部分中的每一者包含在写入数据位的第一群组中来掩蔽写入数据位的第一群组。各种实施例可包含使写入数据位的第一群组中具有第一多个数据位中一个或一个以上掩蔽输入针对其指示掩蔽状态未设置的选定部分中的每一者。
在各种实施例中,产生第一错误码可包含基于写入数据位的第一群组产生汉明码。在各种实施例中,写入写入数据位的第一群组可包含将表示针对写入数据位的第一群组所产生的第一错误码的多个错误码位写入到第一地址。在各种实施例中,写入数据位的第一写入群组可包含将第一错误码写入到与第一地址相关联的第一错误校正码地址,其中第一错误校正码地址是与第一地址不同的地址。
在各种实施例中,执行读取/修改/写入过程可包含在第一时钟循环期间提供第一数据突发,且在第二且连续的时钟循环期间提供第二数据突发,以及在不长于由第一时钟循环和第二时钟循环界定的间隔的时间周期内:在局部输入/输出处提供与耦合到存储器单元的阵列的字线和第一多个列选择线相关联的第一多个数据位,将第一多个数据位从局部输入/输出选通到全局读取输入/输出,在将第一多个数据位选通到全局读取输入/输出之后从局部输入/输出清除第一多个数据位,在局部输入/输出处提供与耦合到存储器单元的阵列的字线和第二多个列选择线相关联的第二多个数据位,将第二多个数据位从局部输入/输出选通到全局读取输入/输出,在将第二多个数据位选通到全局读取输入/输出之后从局部输入/输出清除第二多个数据位,将包含与第一多个写入数据位相关联的多个错误校正码位的第一多个写入数据位提供到全局写入输入/输出,在从局部输入/输出清除第二多个数据位之后将包含错误码位的第一多个写入数据位经由局部输入/输出写入到与字线和第一多个列选择线相关联的存储器单元的阵列。
各种实施例可包含具有第一时钟循环变换和第二时钟循环变换的第一时钟循环。提供第一多个数据位、选通第一多个数据位和清除第一多个数据位可在第一时钟循环变换与第二时钟循环变换之间的时间周期期间发生。
各种实施例可包含具有第三时钟循环变换和第四时钟循环变换的第二时钟循环。提供第二多个数据位、选通第二多个数据位和清除第二多个数据位可在第三时钟循环变换与第四时钟循环变换之间的时间周期期间发生。
在一些实施例中,写入第一多个写入数据位可包含在第四时钟循环变换与第二时钟循环变换的结束之间的时间周期期间:将第一多个写入数据位和错误校正码位从全局写入输入/输出选通到局部输入/输出,将第一多个数据位和错误校正码位从局部输入/输出写入到存储器单元的阵列,以及从局部输入/输出清除第一多个数据位和错误校正码位。
本发明的实施例不限于各种寄存器被写入时所用的任何特定样式或次序。应了解,如(例如)由控制器204中包含的以及如供应外部信号的装置(例如,但不限于处理器102)中包含的指令所确定的写入到寄存器的其它样式可用于写入到本发明的各种实施例中包含的寄存器。
应了解,以上描述希望为说明性而不是限制性的。举例来说,上文描述的实施例(和/或其各方面)可彼此组合使用。所属领域的技术人员在审阅以上描述后将了解许多其它实施例。因此,本发明的范围应参考所附权利要求书连同此权利要求书有权享有的等效物的完整范围一起确定。在所附权利要求书中,术语“包含”和“在其中”用作相应术语“包括”和“其中”的通俗英语等效词。并且,在所附权利要求书中,术语“包含”和“包括”为开放式的,即包含除在一权利要求中在此术语后列举的元件以外的元件的系统、装置、物件或过程仍被认为属于所述权利要求的范围。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且不希望对其对象强加数值要求。
提供说明书摘要是为了符合37C.F.R.§1.72(b),其要求有一份将使读者能快速确认技术揭示内容的性质的摘要。所述摘要是在其将不用于解释或限制权利要求书的范围或含义的理解的基础上提交的。另外,在以上具体实施方式中,各种特征可分组在一起以使本发明简化。此揭示方法不应解释为反映所主张的实施例要求比每一权利要求中明确陈述的多的特征的意图。事实上,如所附权利要求书所反映,发明标的物可在于少于单个所揭示实施例的所有特征的特征中。因此,所附权利要求书在此并入到具体实施方式中,其中每一权利要求独立地作为单独的实施例。
总结
本文已描述各种实施例作为用于实现相对于存储器装置的内部读取/修改/写入过程(包含错误校正码和/或掩蔽操作)的机制。所述过程可使用耦合到存储器阵列的错误校正模块在内部实行。在各种实施例中,存储器装置包含DRAM,且通过使用错误校正码,可延长刷新时间间隔,借此改进存储器装置的总体性能。在各种实施例中,写入操作可包含数据掩蔽,使得读取/修改/写入过程仍可以一时钟速率执行,其中标准读取/修改/写入过程可能不能在所述时钟速率的单个列循环内执行。
Claims (15)
1.一种存储器阵列错误校正设备,其包括:
存储器阵列;以及
错误码模块,其耦合到所述存储器阵列且包含数据缓冲器,所述数据缓冲器具有可操作以在对应的多个连续时钟循环上接收待写入到所述存储器阵列的多个数据突发的多个数据寄存器,所述错误码模块可操作以在不长于所述多个连续时钟循环中的两个连续循环的周期的时间周期内对所述多个数据突发中的每一者执行读取/修改/写入过程;
其中所述错误码模块进一步可操作以使读取/修改/写入过程的操作交错进行,从而读取和写入操作不会同时进行。
2.根据权利要求1所述的设备,其中所述错误码模块包括数据组合器,所述数据组合器耦合到所述数据缓冲器且可操作以针对所述多个数据突发中的每一者产生经修改数据突发。
3.根据权利要求2所述的设备,其中所述错误码模块包括读取数据寄存器,所述读取数据寄存器耦合到所述存储器阵列且耦合到所述数据组合器,所述读取数据寄存器可操作以接收存储在所述存储器阵列中所述多个数据突发中的一者待写入到的地址处的多个数据位,且可操作以在与所述多个数据突发中的所述一者被提供到所述数据组合器大约同时将所述多个数据位提供到所述数据组合器。
4.根据权利要求2所述的设备,其包括至少一个数据掩码输入,所述数据掩码输入耦合到所述数据组合器,且可操作以将针对所述多个数据突发中的每一者的数据掩码设置提供到所述数据组合器。
5.根据权利要求2所述的设备,其包括经修改数据寄存器,所述经修改数据寄存器耦合到所述数据组合器,且可操作以存储所述经修改数据突发。
6.根据权利要求1所述的设备,其包括错误码计算单元,所述错误码计算单元耦合到读取数据寄存器且耦合到读取错误码寄存器,所述错误码计算单元可操作以基于从所述存储器阵列读取并存储在所述读取错误码寄存器中的错误校正码而确定从所述存储器阵列读取并存储在所述读取数据寄存器中的多个位中的位是否需要校正,且可操作以将包含任何经校正位的所述多个位提供到经校正数据寄存器。
7.一种存储器阵列错误校正方法,其包括:
在对应的多个连续时钟循环上,接收待写入到存储器阵列的多个数据突发;以及
在不长于所述对应的多个连续时钟循环中的两个循环的周期的时间周期内针对所述多个数据突发中的每一者执行读取/修改/写入过程;
其中所述读取/修改/写入过程中的每一者包括读取操作、修改操作和写入操作,且读取操作和写入操作不会同时进行。
8.根据权利要求7所述的方法,其中针对所述多个数据突发中的每一者执行所述读取/修改/写入过程包含:
确定正被处理的特定数据突发待写入到的所述存储器阵列中的地址;以及
从所述地址读取多个所存储数据位。
9.根据权利要求8所述的方法,其中针对所述多个数据突发中的每一者执行所述读取/修改/写入过程包含:
接收与所述正被处理的特定数据突发相关联的数据掩码;以及
通过将来自所述多个所存储数据位中的已针对其设置所述数据掩码的任何位以及来自所述正被处理的特定数据突发中的未针对其设置所述数据掩码的任何位包含在经修改的多个数据位中来提供所述经修改的多个数据位。
10.根据权利要求9所述的方法,其中针对所述多个数据突发中的每一者执行所述读取/修改/写入过程包含:
针对所述经修改的多个数据位产生错误校正码。
11.根据权利要求10所述的方法,其中针对所述多个数据突发中的每一者执行所述读取/修改/写入过程包含:
将所述经修改的多个数据位写入到所述存储器阵列中的所述地址;以及
将所述错误校正码写入到所述存储器阵列。
12.一种存储器阵列错误校正系统,其包括:
处理器,其耦合到存储器阵列,所述处理器可操作以在对应的多个连续时钟循环上提供待写入到所述存储器阵列的多个数据突发,以及针对所述多个数据突发中的每一者的数据掩码;以及
错误码模块,其耦合到所述处理器且耦合到所述存储器阵列,所述错误码模块可操作以接收所述多个数据突发,且可操作以在不长于所述多个连续时钟循环中的两个循环的周期的时间周期内针对所述多个数据突发中的每一者执行读取/修改/写入过程;
其中所述错误码模块进一步可操作以使读取/修改/写入过程的操作交错进行,从而读取和写入操作不会同时进行。
13.根据权利要求12所述的系统,其中所述错误码模块包含:
多个数据掩码输入,其耦合到数据组合器,所述多个数据掩码输入可操作以接收针对所述多个数据突发中的每一者的所述数据掩码,所述数据组合器可操作以个别地接收所述多个数据突发中的每一者,且可操作以修改所述多个数据突发中的每一者以基于针对所述多个数据突发中的每一者的所述数据掩码产生经修改数据突发。
14.根据权利要求13所述的系统,其中所述错误码模块包含:
错误码计算单元,其耦合到所述数据组合器,所述错误码计算单元可操作以接收所述经修改数据突发,且可操作以基于所述经修改数据突发提供错误校正码。
15.根据权利要求12所述的系统,其中所述错误码模块包含数据组合器,所述数据组合器耦合到数据突发寄存器且耦合到读取数据寄存器,所述数据突发寄存器可操作以接收所述多个数据突发,且所述读取数据寄存器耦合到所述存储器阵列且可操作以接收存储在所述存储器阵列中所述多个数据突发中的选定一者待写入到的地址处的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/705,190 US7945840B2 (en) | 2007-02-12 | 2007-02-12 | Memory array error correction apparatus, systems, and methods |
US11/705,190 | 2007-02-12 | ||
PCT/US2008/001775 WO2008100462A2 (en) | 2007-02-12 | 2008-02-11 | Memory array error correction apparatus, systems, and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101647004A CN101647004A (zh) | 2010-02-10 |
CN101647004B true CN101647004B (zh) | 2013-07-24 |
Family
ID=39686893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800087582A Active CN101647004B (zh) | 2007-02-12 | 2008-02-11 | 存储器阵列错误校正设备、系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7945840B2 (zh) |
KR (1) | KR101089409B1 (zh) |
CN (1) | CN101647004B (zh) |
TW (1) | TWI384355B (zh) |
WO (1) | WO2008100462A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9679664B2 (en) | 2012-02-11 | 2017-06-13 | Samsung Electronics Co., Ltd. | Method and system for providing a smart memory architecture |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US8169233B2 (en) | 2009-06-09 | 2012-05-01 | Google Inc. | Programming of DIMM termination resistance values |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US8386722B1 (en) * | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
GB2444663B (en) * | 2005-09-02 | 2011-12-07 | Metaram Inc | Methods and apparatus of stacking drams |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US7945840B2 (en) | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
KR100855979B1 (ko) * | 2007-02-13 | 2008-09-02 | 삼성전자주식회사 | 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법 |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
US9594679B2 (en) * | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
US9489326B1 (en) * | 2009-03-09 | 2016-11-08 | Cypress Semiconductor Corporation | Multi-port integrated circuit devices and methods |
JP5595514B2 (ja) | 2009-11-20 | 2014-09-24 | ラムバス・インコーポレーテッド | Dramエラー訂正用のビット交換技術 |
US8311754B2 (en) * | 2009-12-10 | 2012-11-13 | Home Comfort Zones | Power monitoring and analysis system for identifying and tracking individual electrical devices |
US8397005B2 (en) * | 2010-03-16 | 2013-03-12 | St-Ericsson Sa | Masked register write method and apparatus |
KR101212759B1 (ko) * | 2010-10-29 | 2012-12-14 | 에스케이하이닉스 주식회사 | 데이터 오류 검사 기능을 이용한 데이터 전송 방법, 데이터 오류 검사 기능을 이용한 반도체 메모리 및 메모리 시스템 |
US8644104B2 (en) | 2011-01-14 | 2014-02-04 | Rambus Inc. | Memory system components that support error detection and correction |
US8560925B2 (en) * | 2011-04-05 | 2013-10-15 | Denso International America, Inc. | System and method for handling bad bit errors |
JP2013031151A (ja) * | 2011-06-20 | 2013-02-07 | Renesas Electronics Corp | 暗号通信システムおよび暗号通信方法 |
KR101882681B1 (ko) * | 2011-10-27 | 2018-07-31 | 삼성전자 주식회사 | 메모리 장치 및 그 구동 방법 |
US20130159812A1 (en) * | 2011-12-16 | 2013-06-20 | Advanced Micro Devices, Inc. | Memory architecture for read-modify-write operations |
CN103247347B (zh) * | 2012-02-11 | 2017-07-25 | 三星电子株式会社 | 提供智能存储器架构的方法和系统 |
US9037949B1 (en) | 2012-06-21 | 2015-05-19 | Rambus Inc. | Error correction in a memory device |
US9411678B1 (en) | 2012-08-01 | 2016-08-09 | Rambus Inc. | DRAM retention monitoring method for dynamic error correction |
KR101944793B1 (ko) * | 2012-09-04 | 2019-02-08 | 삼성전자주식회사 | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 |
KR102002925B1 (ko) * | 2012-11-01 | 2019-07-23 | 삼성전자주식회사 | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 |
US9734921B2 (en) | 2012-11-06 | 2017-08-15 | Rambus Inc. | Memory repair using external tags |
US9311181B2 (en) | 2012-11-15 | 2016-04-12 | Samsung Electronics Co., Ltd. | Memory controller changing partial data in memory device and method for changing partial data thereof |
US9196347B2 (en) | 2013-03-14 | 2015-11-24 | International Business Machines Corporation | DRAM controller for variable refresh operation timing |
US9588840B2 (en) | 2013-04-18 | 2017-03-07 | Samsung Electronics Co., Ltd. | Memory devices that perform masked write operations and methods of operating the same |
TWI502601B (zh) * | 2013-04-24 | 2015-10-01 | Ind Tech Res Inst | 混合式錯誤修復方法及其記憶體裝置 |
US9280418B2 (en) * | 2013-08-01 | 2016-03-08 | Integrated Silicon Solution, Inc. | Memory device implementing reduced ECC overhead |
KR102122932B1 (ko) * | 2013-08-08 | 2020-06-15 | 삼성전기주식회사 | 적층 세라믹 커패시터 및 적층 세라믹 커패시터 실장 기판 |
WO2015048037A1 (en) | 2013-09-24 | 2015-04-02 | Rambus Inc. | Memory component having internal read-modify-write operation |
CN103500107B (zh) * | 2013-09-29 | 2017-05-17 | 中国船舶重工集团公司第七0九研究所 | 一种cpu的硬件优化方法 |
US9583219B2 (en) * | 2014-09-27 | 2017-02-28 | Qualcomm Incorporated | Method and apparatus for in-system repair of memory in burst refresh |
WO2016095191A1 (en) * | 2014-12-19 | 2016-06-23 | Micron Technology, Inc. | Apparatuses and methods for pipelining memory operations with error correction coding |
US10061645B2 (en) | 2015-06-30 | 2018-08-28 | Qualcomm Incorporated | Memory array and link error correction in a low power memory sub-system |
US20170126249A1 (en) * | 2015-10-30 | 2017-05-04 | Intel Corporation | Temperature dependent multiple mode error correction |
US10140175B2 (en) * | 2015-11-20 | 2018-11-27 | Qualcomm Incorporated | Protecting an ECC location when transmitting correction data across a memory link |
US9952925B2 (en) * | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US11481126B2 (en) * | 2016-05-24 | 2022-10-25 | Micron Technology, Inc. | Memory device error based adaptive refresh rate systems and methods |
GB2550929A (en) * | 2016-05-31 | 2017-12-06 | Advanced Risc Mach Ltd | An apparatus and method for generating an error code for a block comprising a plurality of data bits and a plurality of address bits |
KR102638790B1 (ko) | 2016-09-13 | 2024-02-21 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
US10120749B2 (en) * | 2016-09-30 | 2018-11-06 | Intel Corporation | Extended application of error checking and correction code in memory |
US10503435B2 (en) * | 2016-12-01 | 2019-12-10 | Qualcomm Incorporated | Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems |
US10068636B2 (en) * | 2016-12-30 | 2018-09-04 | Intel Corporation | Apparatuses and methods for accessing and scheduling between a plurality of row buffers |
US10572344B2 (en) | 2017-04-27 | 2020-02-25 | Texas Instruments Incorporated | Accessing error statistics from DRAM memories having integrated error correction |
KR102388803B1 (ko) * | 2017-11-02 | 2022-04-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
KR102456582B1 (ko) * | 2017-12-19 | 2022-10-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN112204664B (zh) * | 2018-05-29 | 2024-04-02 | 美光科技公司 | 用于设置用于改进时钟工作循环的工作循环调整器的设备及方法 |
US10769013B1 (en) * | 2018-06-11 | 2020-09-08 | Cadence Design Systems, Inc. | Caching error checking data for memory having inline storage configurations |
US10642684B1 (en) | 2018-06-28 | 2020-05-05 | Cadence Design Systems, Inc. | Memory command interleaving |
US10963329B2 (en) * | 2018-10-17 | 2021-03-30 | Omnivision Technologies, Inc. | Universal register read back |
US10715127B2 (en) | 2018-11-21 | 2020-07-14 | Micron Technology, Inc. | Apparatuses and methods for using look-ahead duty cycle correction to determine duty cycle adjustment values while a semiconductor device remains in operation |
US11869972B2 (en) | 2018-11-26 | 2024-01-09 | Etron Technology, Inc. | Reduced-form-factor transistor with self-aligned terminals and adjustable on/off-currents and manufacture method thereof |
CN117457634A (zh) | 2018-12-10 | 2024-01-26 | 钰创科技股份有限公司 | 统一集成电路系统 |
US11616128B2 (en) | 2019-04-19 | 2023-03-28 | Etron Technology, Inc. | Transistor structure with reduced leakage current and adjustable on/off current |
DE112019007379T5 (de) * | 2019-05-31 | 2022-02-17 | Micron Technology, Inc. | Flash-speicher-architektur, die redundanz der verbindungsverbindung implementiert |
US11269720B2 (en) | 2019-08-11 | 2022-03-08 | Winbond Electronics Corp. | Memory storage apparatus and data access method |
KR20210023317A (ko) | 2019-08-22 | 2021-03-04 | 에스케이하이닉스 주식회사 | 반도체장치 |
KR20210122455A (ko) * | 2020-04-01 | 2021-10-12 | 삼성전자주식회사 | 반도체 메모리 장치 |
US11379306B1 (en) * | 2021-07-29 | 2022-07-05 | Bae Systems Information And Electronic System Integration Inc. | Method for radiation hardening synchronous DRAM |
CN114760011B (zh) * | 2021-10-15 | 2023-10-20 | 苏州纳芯微电子股份有限公司 | 单通道通信编码方法、解码方法、编码电路及解码电路 |
US11798617B2 (en) | 2022-03-23 | 2023-10-24 | Changxin Memory Technologies, Inc. | Method and apparatus for determining sense boundary of sense amplifier, medium, and device |
CN116844618A (zh) * | 2022-03-23 | 2023-10-03 | 长鑫存储技术有限公司 | 存储器测试方法及装置、介质及设备 |
US11978504B2 (en) | 2022-03-23 | 2024-05-07 | Changxin Memory Technologies, Inc. | Method and apparatus for determining sense boundary of sense amplifier, medium, and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590304A (en) * | 1994-06-13 | 1996-12-31 | Covex Computer Corporation | Circuits, systems and methods for preventing queue overflow in data processing systems |
CN1242088A (zh) * | 1996-10-25 | 2000-01-19 | 英特尔公司 | 利用错误定位码校正一个多级单元存储器的方法和装置 |
CN1529852A (zh) * | 2001-04-24 | 2004-09-15 | 皇家菲利浦电子有限公司 | 用于闪速存储器允许可更改位的改进的错误修正模式 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2289779B (en) | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US5974514A (en) * | 1996-11-12 | 1999-10-26 | Hewlett-Packard | Controlling SDRAM memory by using truncated burst read-modify-write memory operations |
US5974320A (en) * | 1997-05-21 | 1999-10-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Providing a neighborhood zone within a mobile telecommunications network |
US5878059A (en) | 1997-09-24 | 1999-03-02 | Emc Corporation | Method and apparatus for pipelining an error detection algorithm on an n-bit word stored in memory |
KR100266748B1 (ko) * | 1997-12-31 | 2000-10-02 | 윤종용 | 반도체 메모리 장치 및 그 장치의 에러 정정 방법 |
US7308621B2 (en) * | 2002-04-30 | 2007-12-11 | International Business Machines Corporation | Testing of ECC memories |
US7143332B1 (en) * | 2003-12-16 | 2006-11-28 | Xilinx, Inc. | Methods and structures for providing programmable width and error correction in memory arrays in programmable logic devices |
JP4703220B2 (ja) | 2005-03-04 | 2011-06-15 | 株式会社東芝 | 半導体記憶装置 |
JP2007242162A (ja) * | 2006-03-09 | 2007-09-20 | Toshiba Corp | 半導体記憶装置 |
US7584336B2 (en) * | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US7945840B2 (en) | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
-
2007
- 2007-02-12 US US11/705,190 patent/US7945840B2/en active Active
-
2008
- 2008-02-11 CN CN2008800087582A patent/CN101647004B/zh active Active
- 2008-02-11 WO PCT/US2008/001775 patent/WO2008100462A2/en active Application Filing
- 2008-02-11 KR KR1020097018940A patent/KR101089409B1/ko active IP Right Grant
- 2008-02-12 TW TW097104981A patent/TWI384355B/zh active
-
2011
- 2011-04-13 US US13/086,137 patent/US8181086B2/en active Active
-
2012
- 2012-05-09 US US13/467,699 patent/US8397129B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590304A (en) * | 1994-06-13 | 1996-12-31 | Covex Computer Corporation | Circuits, systems and methods for preventing queue overflow in data processing systems |
CN1242088A (zh) * | 1996-10-25 | 2000-01-19 | 英特尔公司 | 利用错误定位码校正一个多级单元存储器的方法和装置 |
CN1529852A (zh) * | 2001-04-24 | 2004-09-15 | 皇家菲利浦电子有限公司 | 用于闪速存储器允许可更改位的改进的错误修正模式 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9679664B2 (en) | 2012-02-11 | 2017-06-13 | Samsung Electronics Co., Ltd. | Method and system for providing a smart memory architecture |
Also Published As
Publication number | Publication date |
---|---|
US7945840B2 (en) | 2011-05-17 |
CN101647004A (zh) | 2010-02-10 |
WO2008100462A2 (en) | 2008-08-21 |
KR20090119899A (ko) | 2009-11-20 |
US20120221916A1 (en) | 2012-08-30 |
US20110191655A1 (en) | 2011-08-04 |
US8397129B2 (en) | 2013-03-12 |
TW200849000A (en) | 2008-12-16 |
WO2008100462A3 (en) | 2008-11-27 |
KR101089409B1 (ko) | 2011-12-07 |
US8181086B2 (en) | 2012-05-15 |
TWI384355B (zh) | 2013-02-01 |
US20080195894A1 (en) | 2008-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101647004B (zh) | 存储器阵列错误校正设备、系统和方法 | |
US20190259449A1 (en) | Method and apparatus for precharge and refresh control | |
US7254075B2 (en) | Integrated circuit memory system having dynamic memory bank count and page size | |
US7272070B2 (en) | Memory access using multiple activated memory cell rows | |
US8060705B2 (en) | Method and apparatus for using a variable page length in a memory | |
CN102473453B (zh) | 半导体存储装置 | |
JP2007109366A (ja) | 半導体記憶装置 | |
US20210349839A1 (en) | Multi-ported nonvolatile memory device with bank allocation and related systems and methods | |
US7440352B2 (en) | Semiconductor memory device capable of selectively refreshing word lines | |
US20240248796A1 (en) | Apparatuses, systems, and methods for per row error scrub information | |
CN106653093B (zh) | 半导体器件及其驱动方法 | |
CN116959547A (zh) | 用于每行错误擦除信息寄存器的设备、系统和方法 | |
US5802586A (en) | Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor | |
US11551775B2 (en) | Semiconductor memory devices and memory systems including the same | |
US8929155B2 (en) | Semiconductor memory device and method of operating the same | |
CN113314177A (zh) | 用于锁存器复位逻辑的设备、系统及方法 | |
US20080298153A1 (en) | Semiconductor memory device | |
US20070237021A1 (en) | Memory with clocked sense amplifier | |
CN114944186A (zh) | 用于多泵错误校正的设备、系统和方法 | |
US6958949B2 (en) | Decoding structure for a memory device with a control code | |
KR100857428B1 (ko) | 반도체 메모리 장치의 워드 라인 선택회로 및 방법 | |
KR100892729B1 (ko) | 반도체 집적 회로 및 그의 리프레시 방법 | |
US20050219923A1 (en) | EEPROM and method of testing same | |
CN118588148A (zh) | 用于具有不同级别的错误校正码(ecc)能力的读取命令的设备及方法 | |
JPH03286493A (ja) | 同期型記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |