CN113687979A - 采用错误计数器和内部地址生成的管芯上ecc - Google Patents
采用错误计数器和内部地址生成的管芯上ecc Download PDFInfo
- Publication number
- CN113687979A CN113687979A CN202111168284.1A CN202111168284A CN113687979A CN 113687979 A CN113687979 A CN 113687979A CN 202111168284 A CN202111168284 A CN 202111168284A CN 113687979 A CN113687979 A CN 113687979A
- Authority
- CN
- China
- Prior art keywords
- error
- memory
- ecc
- errors
- memory device
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 204
- 238000012937 correction Methods 0.000 claims abstract description 61
- 238000001514 detection method Methods 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 34
- 238000004519 manufacturing process Methods 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 27
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000010348 incorporation Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56008—Error analysis, representation of errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及采用错误计数器和内部地址生成的管芯上ECC,以及涉及一种存储器子***实现管理错误纠正信息。存储器装置对存储器位置的范围内部执行错误检测,并且对所检测的各错误使内部计数递增。存储器装置包括ECC逻辑,以生成指示内部计数与对存储器装置预设的错误的基准数量之间的差的错误结果。存储器装置能够向***的关联主机提供错误结果,以便仅暴露所累加的错误数量,而没有从结合到***中之前暴露内部错误。能够使存储器装置能够生成内部地址,以运行从存储器控制器所接收的命令。能够使存储器装置能够在经过在其中对错误计数的存储区的第一遍之后重置计数器。
Description
本申请为分案申请,其母案的发明名称为“采用错误计数器和内部地址生成的管芯上ECC”,申请日为2016年5月27日,申请号为201680024940.1。
相关用例
本申请是基于2015年5月31日提交的美国临时专利申请No. 62/168,828的非临时专利申请。本申请要求那个临时申请的优先权益。通过引用将临时申请结合于此。
技术领域
本发明的实施例一般涉及存储器装置,以及更特定来说涉及提供选择性内部错误纠正信息的存储器。
著作权声明/许可
本专利文档的公开的部分可包含受到著作权保护的资料。著作权所有者不反对任何人复制本专利文档或专利公开,因为它出现在专利和商标局专利文件或记录中,但在其他方面仍保留所有著作权权利。著作权声明适用于如下及其附图中所述的所有数据以及以下所述的任何软件:著作权©2015,Intel Corporation,著作权所有,不得翻印。
背景技术
计算装置使用存储器装置来存储供处理器运行其操作的数据和代码。随着存储器装置的大小的减小和密度的增加,它们在处理期间遭遇更多错误、被称作产率问题。因此,存储器装置甚至采用现代处理技术也遭遇增加的比特故障。要减轻比特故障,现代存储器装置提供内部错误纠正机制、例如ECC (错误纠正码)。存储器装置内部生成ECC数据,并且在存储器装置内部使用ECC数据。存储器装置内的内部错误纠正能够作为对***配置成在存储器装置与存储器控制器之间的数据交换中使用的无论什么全***错误纠正或错误减轻的补充。
由存储器装置所纠正的SBE (单比特错误)对存储器控制器或主机***看来好像不存在错误。因此,如果附加错误在制造之后在存储器装置中累加,则存储器装置将继续执行ECC,并且存储器装置增加的故障数量可能不是主机***可见的。存储器装置传统上会需要识别与内部错误纠正有关的信息,以提供与错误累加有关的信息。但是,暴露错误纠正信息能够提供与过程和制造有关的专有信息、例如内部错误信息或者与内部错误纠正有关的细节。当前没有在无需暴露与内部错误纠正有关的信息的情况下揭示与存储器装置内的错误累加有关的信息的机制。
发明内容
按照本发明第一方面的一种同步动态随机存取存储器(SDRAM)装置,包括:
存储器阵列;以及
错误检查和纠正(ECC)电路,用于对存储器阵列的多行执行ECC操作,所述ECC电路包括计数器,用于响应于在多行中的任何行中检测到错误而累加要递增的错误计数,其中ECC电路用于作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差来生成错误结果。
按照本发明第二方面的一种具有存储器装置的***,包括:
存储器控制器;以及
并行耦合的多个同步动态随机存取存储器(SDRAM)装置,其中SDRAM装置包括:
存储器阵列;以及
错误检查和纠正(ECC)电路,用于对所述存储器阵列的多行执行ECC操作,所述ECC电路包括计数器,用于响应于在多行中的任何行中检测到错误而累加要递增的错误计数,其中所述ECC电路用于作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差而生成错误结果;
其中所述SDRAM装置独立于基于由所述存储器控制器提供的校验位的错误纠正而对数据提供内部错误纠正。
按照本发明第三方面的一种用于管理存储器中的错误纠正信息的方法,包括:
利用同步动态随机存取存储器(SDRAM)装置内的ECC电路对存储器阵列的多行发起错误检查和纠正(ECC)操作;
响应于在多行中的任何行中检测到错误而累加要递增的错误计数;以及
作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差而生成错误结果。
附图说明
以下描述包括对具有以本发明的实施例的实现的举例的方式所给出的说明的附图的论述。附图应当被理解为以举例的方式而不是以限制的方式。如本文所使用的,对一个或多个“实施例”的引用要被理解为描述本发明的至少一个实现中所包括的特定特征、结构和/或特性。因此,本文中出现的诸如“在一个实施例中”或者“在备选实施例中”之类的短语描述本发明的各种实施例和实现,并且不一定全部指的是同一实施例。但是,它们也不一定相互排斥。
图1是具有存储器装置(其能够暴露供外部存储器控制器来使用的内部错误纠正比特)的***的实施例的框图。
图2是具有存储器装置(其能够暴露供外部存储器控制器来使用的内部错误纠正比特)的***的实施例的框图。
图3是其中存储器装置生成用于运行所接收命令的内部地址的***的实施例的框图。
图4是用于管理内部ECC信息、包括生成内部地址的过程的实施例的流程图。
图5是其中能够实现生成内部地址的存储器装置的计算***的实施例的框图。
图6是其中能够实现生成内部地址的存储器装置的移动装置的实施例的框图。
下面是某些细节和实现的描述,其中包括附图的描述,附图可描绘以下所述的实施例的一些或全部,以及论述本文所呈现的发明概念的其他潜在的实施例或实现。
具体实施方式
如本文所述,存储器子***实现管理错误纠正信息。存储器装置对存储器位置的范围内部执行错误纠正,并且对所检测的各错误使内部计数递增。存储器装置包括ECC逻辑,以生成指示内部计数与对存储器装置预设的错误的基准数量之间的差的错误结果。存储器装置能够向***的关联主机提供错误结果,以便仅暴露所累加的错误数量,而没有从结合到***中之前暴露内部错误。在一个实施例中,存储器装置能够生成内部地址,以运行从存储器控制器所接收的命令。在一个实施例中,存储器装置能够在经过在其中对错误计数的存储区的第一遍之后重置计数器。
在一个实施例中,存储器装置生成内部地址,以运行从存储器控制器所接收的命令。存储器装置执行错误纠正,以纠正所访问数据中的单比特错误(SBE),并且生成指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数。存储器装置向存储器控制器提供错误计数,以便仅暴露制造之后所累加的SBE的数量。在一个实施例中,存储器装置能够在经过在其中对错误计数的存储区的第一遍之后重置计数器。
对存储器装置的引用能够适用于不同存储器类型以及特定来说适用于具有体组架构的任何存储器。存储器装置一般指的是易失性存储器技术。易失性存储器是其状态(以及因此其上所存储的数据)在对装置中断电力时是不确定的存储器。非易失性存储器指的是其状态即使在对装置中断电力时也是确定的存储器。动态易失性存储器要求刷新装置中所存储数据以保持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或者一些变体、例如同步DRAM(SDRAM)。如本文所述的存储器子***可与多种存储器技术兼容,例如DDR4 (DDR版本4,由JEDEC于2012年9月所发布的初始规范)、LPDDR4 (低功率双倍数据传输率(LPDDR)版本4,JESD209-4,由JEDEC于2014年8月最初发布)、WIO2 (宽I/O 2(WideIO2),JESD229-2,由JEDEC于2014年8月最初发布)、HBM (高带宽存储器DRAM,JESD235,由JEDEC于2013年10月最初发布)、DDR5 (DDR版本5,当前由JEDEC正讨论)、HBM2(HBM版本2,当前由JEDEC正讨论)和/或其他以及基于这类规范的衍生或扩展的技术。
用于诸如WIO2和LPDDR4之类的技术的DRAM装置的当前设计是内部包括额外比特来存储错误纠正数据(例如ECC (错误纠正码)信息)。对内部ECC,DRAM使用单错误纠正(SEC)(其每128数据比特利用8个专用ECC比特)内部检测和纠正单比特错误(SBE)。外部数据传递大小和内部预取大小在LPDDR4和WIO2的情况下均为128比特。但是对内部ECC,这些设计传统上缺乏跟踪DRAM中的错误累加的方法,这使装置易于累加错误,直到错误的数量压倒管芯上或内部ECC纠正SBE的能力。如果过多错误累加,则装置会将具有未纠正错误的数据传给存储器控制器,从而引起故障。
如果DRAM没有执行内部错误纠正,则***可以能够执行***级错误纠正,但是DRAM内的所有错误则将是可见的。暴露与所有错误有关的信息会暴露内部错误信息,这能够揭示存储器装置制造商专有的并且一般被认为不期望在行业内共享的信息。如本文所述,***能够提供相对错误计数以指示自将存储器装置装运或者部署于***中以来已经累加多少错误。如本文所述的相对错误能够指示超过错误的基准数量已经累加多少错误。存储器装置的错误的基准数量是在制造测试期间所检测的错误的数量。错误的累加能够如通过与基准数量相比对错误总数进行计数来确定。但是要注意,甚至在制造期间所检测的内部错误也能够是专有信息,装置制造商能够内部配置这种数量,并且将存储器装置配置成仅暴露所累加的差。
通常,在正常操作期间,为内部ECC所实现的DDR4 DRAM装置不发信号通知关于已经纠正单比特错误。在一个实施例中,在制造期间,装置上的单比特错误的总数永久地被存储在存储器装置中。例如,错误的数量能够被存储在错误阈值寄存器中。所存储的错误阈值计数表示制造测试期间所检测的单比特错误的总数。在一个实施例中,错误阈值寄存器不是用户和/或主机***直接可读的。在一个实施例中,存储器装置包括对SBE进行计数的错误计数器连同将错误计数器的结果与错误阈值寄存器进行比较的比较器。
在一个实施例中,存储器装置包括地址生成器,以生成用于所接收命令的内部地址。因此,存储器装置能够控制要访问存储器装置的哪些位置以及什么时间访问。存储器装置然后能够内部管理错误检测,并且相对于错误的基准数量对错误的数量进行计数。内部生成地址能够使存储器装置能够内部重置错误累加计数器,并且防止内部错误计数继续增加。在经过存储器空间的第一遍之后没有重置计数器的情况下,用户能够潜在地运行错误测试两次(其中错误继续累加),并且然后简单地将错误的数量分成两半,以暴露与内部错误和内部错误纠正有关的信息。通过重置计数器,每次运行错误测试时,将揭示错误的相同数量,甚至当连续运行时。
在一个实施例中,在重置期间清除错误计数器。在一个实施例中,错误计数器通过设置模式寄存器比特(例如MRx 比特 A[y])来启用,并且最初被清除。一旦被启用,计数器能够对检测单比特错误的每一个读取递增。通过仅允许DRAM生成读取阵列的地址来允许经过阵列的一个单遍。一旦经过所有存储器位置的单遍完成,则在一个实施例中,控制逻辑读取相对错误计数结果,并且重置计数器。在一个实施例中,相对错误计数能够被存储在多功能寄存器中,其然后能够由主机(例如存储器控制器)来读出。例如存储器装置能够将相对错误计数存储在多功能寄存器(例如MPR3、页面3寄存器)中。在一个实施例中,寄存器或其他存储位置包括表示自启用寄存器以来所检测的错误的数量与所存储错误计数之间的差的计数。在一个实施例中,除了报告所累加错误之外,存储器装置还能够报告包含错误的最高数量的一行或多行的地址。在一个实施例中,存储器装置能够报告多少错误被包含在具有错误的最高数量的行中。在一个实施例中,管芯上或DRAM内部计数器能够生成用于经过存储器资源或存储器装置阵列的读错误遍的内部地址。在经过阵列的读错误遍的开始,能够清除相对错误计数结果寄存器。在经过阵列的一遍之后,相对计数能够从DRAM读出。在一个实施例中,如果尝试第二遍,则在第二遍开始之前清除错误结果寄存器。
图1是具有存储器装置(其能够暴露供外部存储器控制器使用的内部错误纠正比特)的***的实施例的框图。***100包括计算装置中的存储器子***的元件。主机110表示主机计算平台,其运行操作***(OS)和应用。OS和应用运行引起存储器存取的操作。主机110包括处理器或处理单元,其能够是单核或多核处理器。***100能够被实现为SOC或者采用独立组件来实现。当多个存储器装置120被包括在***100中时,各存储器装置能够与主机或者与其他存储器装置分开地独自管理其内部ECC。
存储器控制器112表示控制逻辑,其响应(一个或多个)处理器对操作的运行而生成存储器存取命令。在一个实施例中,***100包括多个存储器控制器。在一个实施例中,***100每通道包括一个或多个存储器控制器,其中通道进行耦合以访问多个存储器装置。各通道是到存储器的单独访问路径,因此多个不同存储器存取能够在不同通道上并行发生。在一个实施例中,存储器控制器112是主机110的组成部分、例如在与主机处理器相同的管芯或封装空间上所实现的逻辑。因此,存储器控制器能够被实现为与主机处理器相同的管芯的组成部分,或者在芯片(SoC)配置上被耦合到***中的主机处理器。
存储器装置120表示***100的存储器资源,并且能够是例如DRAM装置。存储器装置120各包括多个存储器阵列122。存储器阵列122表示其中存储器装置120存储数据比特的逻辑。存储器装置120包括I/O逻辑126,其表示使存储器装置能够耦合到存储器控制器112的互连逻辑。I/O逻辑126能够包括命令/地址总线(通常称作C/A总线、CMD/ADDR总线或ADD/CMD总线)。I/O逻辑126还能够包括数据总线和其他信号线。I/O逻辑126能够包括信号线、连接器、驱动器、收发器、端接控制和/或实现存储器控制器与存储器装置之间的通信的其他逻辑。
在一个实施例中,存储器装置120包括ECC 124,其表示实现内部错误纠正的逻辑和存储器。因此,ECC 124表示存储器装置120生成并且使用内部错误纠正比特的能力。在一个实施例中,ECC 124是存储器装置120(未具体示出)内的内部控制器的组成部分。这种内部控制器控制存储器装置的操作、例如命令的接收和处理以及命令的运行,包括控制运行命令并且响应来自(存储器装置外部的)存储器控制器的请求而返回数据的操作的定时。在一个实施例中,ECC 124能够完全或部分被实现为与内部控制器分开的电路。在一个实施例中,ECC 124使存储器装置120能够执行地址的范围中的各存储器位置的读取并且检测和纠正SBE,以及对所纠正的每个SBE使错误计数递增。
在一个实施例中,存储器控制器112生成对ECC计数的命令或请求,以确定来自存储器装置120的所累加错误。为了描述中的清楚起见,考虑ECC 124处理这种请求,并且能够生成计数以响应这种请求。ECC 124能够使存储器响应从存储器控制器所接收的错误测试命令而执行检测错误的一系列操作。例如,ECC 124能够包括或者有权访问计数器,所述计数器被递增以跟踪所读取存储器位置中的所检测错误。如本文所述,存储器装置120能够生成经过存储器空间的存储器位置或者针对错误待测试的存储器地址位置的范围的序列运行。
在一个实施例中,ECC 124确定存储器空间中的错误的数量,并且生成所纠正错误的计数。在一个实施例中,ECC 124通过计算所检测错误的数量与部署前对存储器装置预设的错误的已知数量之间的差来生成相对错误计数。例如,预设的错误能够是在制造测试期间所生成的阈值或基准数量,以检测制造时在装置中存在的错误的数量。在一个实施例中,ECC 124包括或者有权访问比较器逻辑,所述比较器逻辑能够基于阈值来计算差。
在一个实施例中,当ECC 124接收执行错误测试的连续命令时,它将确定什么时候已经测试存储器阵列的整个存储器空间,并且能够重置错误计数。因此,每次执行错误检查时,ECC 124能够重新开始错误计数,以及所生成的计数与指示装置的错误的阈值或基准数量的预设数量之间的差也将每次重新开始。在一个实施例中,当存储器子***被重置时,ECC 124还能够响应开始条件而重置错误计数。
图2是具有存储器装置(其能够暴露供外部存储器控制器使用的内部错误纠正比特)的***的实施例的框图。***200是图1的***100的实施例的一个示例。***200图示响应从存储器控制器210所接收的命令而生成用于内部操作的地址的存储器装置220内的地址生成逻辑240。存储器装置220和存储器控制器210经由装置之间的I/O接口(未具体示出)进行通信。
地址生成240能够包括地址计数器,其由存储器装置220内的内部控制器(未具体示出)用来确定哪一个地址空间以对操作进行寻址、例如读取以检测错误。传统上,存储器控制器生成用于ECC测试的地址,以及存储器装置简单地运行在存储器控制器所指示的地址所提供的命令。但是,通过存储器装置220内的地址生成240,存储器控制器能够简单地生成用于ECC测试的命令或请求,并且允许存储器装置本身内部生成地址。地址生成240能够包括跟踪被测试地址的机制(例如计数器)。因此,存储器装置本身能够管理错误纠正测试。
存储器装置220包括数据存储装置222,其表示存储器装置220中的存储空间,其中存储器装置写入从存储器控制器210所接收的数据,并且访问所存储数据以发送给存储器控制器210。在一个实施例中,存储器装置220包括ECC逻辑230。ECC逻辑230表示存储器装置用来计算错误纠正的逻辑。例如,ECC逻辑230能够使存储器装置220能够检测和纠正从被测地址的范围之内的存储器位置所取的用于数据的SBE。ECC逻辑230能够表示存储器装置内控制从在存储器装置220内部到在存储器控制器210外部的错误纠正的应用。ECC逻辑230能够至少部分在处理器装置内例如通过存储器装置220的内部控制器来实现。在一个实施例中,ECC逻辑230完全或部分在与内部控制器分开的电路内被实现。
在一个实施例中,ECC控制逻辑230包括或使用存储器220中所存储的信息。更具体来说,ECC控制逻辑230能够使用阈值232,其表示存储器装置220的错误的基准数量。在一个实施例中,BIOS (基本输入/输出***)或其他逻辑能够确定错误的基准数量,并且写入该数量供存储器装置220中的寄存器或其他存储位置内的永久存储。通过使用阈值232,ECC控制逻辑230能够生成指示所累加错误的数量的错误输出,而没有暴露基准数量。例如,错误输出能够指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量。
在一个实施例中,ECC控制逻辑230包括或使用计数器234,其是指示多少错误存在(例如,多少SBE被检测和纠正)于数据存储装置222中的计数器。计数器234能够由ECC控制逻辑230在经过数据存储空间的每遍来重置,以确定多少错误存在。因此,计数器234能够针对所检测的各错误累加计数,但是一旦已经检查整个存储空间则将不会继续累加错误。在一个实施例中,再次检查存储空间将使ECC控制逻辑230确定地址生成器240已经达到存储空间的最大地址,并且因而将响应检测到计数器已经翻转而重置计数器234。当地址生成器240完成所有地址并且返回到开始地址时,计数器翻转。
在一个实施例中,ECC控制逻辑230能够生成错误输出,所述错误输出包括具有所累加错误的最高数量的行的指示。因此,在一个实施例中,ECC控制逻辑230以每行为基础来累加错误,并且识别具有错误的最高数量的行。例如,计数器234能够包括多个计数器。计数器234能够包括用于每行的计数器,其全部能够被合计以得到所检测错误的总数。计数器234能够包括累加所有行的所有错误的全局计数器以及在每行结束时被重置的行计数器。这种独自行计数能够与最高行计数进行比较,并且如果计数超过当前最高计数,则新计数能够被存储在存储位置中,并且还能够存储该行的地址。在一个实施例中,如果计数与最高计数相同,则将不改变计数,但是将存储多个行地址。在向存储器控制器210提供错误结果时,ECC控制逻辑230能够报告所累加错误的总数以及具有最高错误计数的行的指示。报告具有最高错误计数的行能够包括报告行的计数以及具有最高计数的一行或多行的地址。在一个实施例中,报告具有最高错误计数的行包括报告行地址而不是错误数量的计数。
在一个实施例中,存储器装置220包括寄存器224,其表示其中ECC控制逻辑230能够存储错误计数和/或错误报告数据的一个或多个存储位置或寄存器。例如,ECC控制逻辑230能够在寄存器224中记录超过存储器装置220的阈值的所累加错误的总数。在一个实施例中,寄存器224包括模式寄存器或者多功能寄存器或其他存储位置。在一个实施例中,寄存器224能够包括或指向存储指示具有错误的最高数量的一行或多行的行地址信息的其他存储位置。在一个实施例中,寄存器224表示存储器控制器210可访问的存储器装置220内的存储装置,其使存储器控制器210能够访问报告数据。在一个实施例中,存储器装置220向存储器控制器210发送报告数据。
在一个实施例中,存储器控制器210包括ECC 212,其表示供在***200中的***级使用的ECC逻辑。将会理解,ECC控制逻辑230是被耦合到存储器控制器210的各存储器装置内的逻辑,其ECC 212表示对于从各存储器装置所接收的数据执行ECC的存储器控制器210内的逻辑。通过对数据执行ECC操作并且然后将数据传递给存储器控制器,ECC控制逻辑230的操作结果能够对存储器控制器210是透明的。在一个实施例中,ECC 212是存储器控制器210的电路内所包括的逻辑。在一个实施例中,ECC 212是存储器控制器电路外部的逻辑,其是存储器控制器可访问的,并且能够执行与***200内的ECC相关的一个或多个操作。例如,在一个实施例中,ECC 212能够包括被耦合到存储器控制器210的处理器或SoC中的ECC电路。
但是,存储器控制器210还能够提供用于***200的ECC,其不仅基于来自存储器装置220的数据,而且还基于来自多个所连接存储器装置的数据。因此,不仅如本文所述来自存储器装置220的错误计数能够提供与存储器装置本身的使用寿命有关的信息,而且它还能够作为存储器控制器210的元数据用于***级ECC实现而进行操作。通过了解来自存储器装置级的所纠正错误,存储器控制器能够调整其错误纠正操作。
图3是其中存储器装置生成用于运行所接收命令的内部地址的***的实施例的框图。***300是按照***100和/或***200的ECC控制逻辑的一个实施例。将会理解,***300能够是***的逻辑的组成部分,并且能够包括附加逻辑(未具体示出)。例如,***300能够表示具体用于暴露超过阈值的错误的逻辑,而没有具体图示被用来执行错误检测或者接收和处理命令的逻辑。
在一个实施例中,ECC控制逻辑接收发起ECC测试的命令。在一个实施例中,ECC控制逻辑是存储器装置内的管芯上控制器的组成部分。控制器控制存储器装置的操作,包括生成内部命令和/或控制信号,以引起运行存储器装置所接收的命令所需的操作。控制逻辑能够生成开始时重置信号,并且将该信号传给存储器装置内部的行-列地址生成器310。开始能够是装置被加电和初始化的任何时间以及主机计算机***配置成执行ECC测试以确定所累加错误的数量的任何时间。开始时重置信号能够是指示是否重置计数器的二元(真/假)信号。
在一个实施例中,管芯上控制器能够生成递增信号。递增信号能够向后一操作发信号通知关于操作的递增。在一个实施例中,管芯上控制器提供作为对地址生成器310的输入的递增信号。地址翻转检测器320能够确定什么时候计数器的递增使计数器在初始地址重新开始。地址翻转检测器320能够生成指示翻转的输出。在一个实施例中,输出是指示翻转条件的二元(真/假)信号。
在一个实施例中,地址翻转检测器320向XOR逻辑330提供其输出。在一个实施例中,ECC控制逻辑还提供作为对XOR逻辑330的输入的开始时重置信号。XOR逻辑330能够对两个输入信号执行XOR(“异或”)操作,并且在任一个条件为真时输出二元输出。在一个实施例中,如果任一个条件为真,则***300重置错误计数器340。因此,作为示例考虑下列条件:其中如果初始化***,则重置计数器;或者如果内部地址生成器的地址翻转以在初始地址再次开始,则重置计数器。
除了重置操作之外,错误计数器340能够接收作为输入的错误检测信号。错误检测逻辑(未具体示出)检测存储器位置中的错误,并且能够生成指示错误的二元信号。在一个实施例中,错误计数器340接收错误指示信号,并且每次检测到错误时使错误计数递增。因此,错误计数器340能够累加错误,以及***300能够在开始时重置和地址翻转的条件时重置错误计数。
错误阈值350表示对其中结合***300的存储器装置所预计的错误的阈值数量或基准数量。错误阈值350能够通过制造测试来设置,并且在存储器装置的使用寿命期间不发生变化。比较器360能够确定错误阈值350与错误计数器340之间的差。超过错误阈值350的错误计数器340中的计数被提供给结果寄存器370。将会理解,通过仅存储错误阈值350与错误计数器340之间的差,***能够仅报告所累加错误,而没有暴露与内部错误有关的信息。在一个实施例中,结果寄存器370是主机***可用于读取的,以确定在存储器装置的使用寿命中所累加的错误的数量,不包括装置的制造时存在的错误的数量。
在一个实施例中,除了结果寄存器370之外或者作为结果寄存器370的组成部分,***300还包括指示具有错误的最高数量的数据的一行或多行的存储装置。在一个实施例中,***300存储一行或多行的地址信息,并且向关联存储器控制器报告地址。在一个实施例中,如果确定某一行具有错误的最高数量或者等于错误的最高数量,则地址生成器310记录该行的地址。
图4是用于管理内部ECC信息、包括生成内部地址的过程的实施例的流程图。过程400使存储器装置内部的ECC逻辑能够管理内部ECC信息,所述内部ECC信息能够有选择地被暴露于关联存储器控制器/主机。制造商制造存储器装置(402),并且对装置执行制造测试(404)。在一个实施例中,测试包括采用内部ECC来确定新装置中存在的错误的数量的测试,并且能够在装置被部署或结合于计算装置时对其配置内部错误纠正。制造商能够存储作为存储器装置的阈值或基准数量的错误的数量(408)。制造商能够将该数量存储在存储器装置内的寄存器或其他存储器或存储位置中。存储器装置将使用阈值数量作为用于确定多少错误在存储器装置的使用寿命中进行累加的基准。将会理解,各存储器装置能够具有基于对装置的单独测试的不同阈值。
在一个实施例中,阈值适用于将被测试的存储器位置的范围。在一个实施例中,存储器位置的范围是用于存储器装置的整个可用地址空间。在一个实施例中,存储器位置的范围是用于存储器装置的可用地址空间的子集。在一个实施例中,在存储器装置被结合到***中时的操作期间,存储器装置接收访问命令(410)。在一个实施例中,这种命令能够包括对地址空间的范围(例如全部存储器地址空间或者存储器地址空间的子集)执行错误测试的命令。在一个实施例中,响应该命令和/或响应发起错误检测测试,存储器装置重置生成内部地址的地址计数器,并且重置错误计数(412)。通过在开始错误检测测试之前重置错误计数,如果要求存储器测试被执行多次,则存储器装置能够防止双重计数错误。
在一个实施例中,存储器装置生成用于被执行以运行(一个或多个)所请求命令的操作的内部地址(414)。在一个实施例中,存储器装置确定内部所生成的地址翻转是否已经发生(416)。在一个实施例中,响应地址翻转(416的“是”分支),存储器装置能够重置错误计数(418)。如果地址翻转尚未发生(416的“否”分支),则地址先前在错误计数的当前循环期间尚未针对错误而被检查。通过内部生成地址并且检测翻转,存储器装置能够防止对存储器位置的相同错误两次计数,并且提供错误的更准确计数。因此,地址翻转检测能够在每次测试所选存储器地址空间时发生。
在一个实施例中,存储器装置内的内部ECC逻辑响应(一个或多个)所请求命令而识别和纠正SBE(420)。在一个实施例中,所请求命令是错误测试命令,其触发存储器装置以依次经过存储器位置的所识别范围或者经过全部存储器位置。在一个实施例中,错误测试命令由存储器装置来控制,并且存储器装置读取存储器位置的范围之内的各存储器位置。在读取位置的内容时,存储器装置能够对内容执行ECC,并且使用已知技术来执行SBE纠正。
在一个实施例中,错误的检测以每行为基础来跟踪,以确定存储器装置内具有错误的最高数量的一行或多行。这种每行错误跟踪能够通过使用多个计数器以跟踪总错误和每行的错误来实现。在一个实施例中,除了存储总所累加错误之外,还存储每行错误的最高数量。例如,能够存储错误的最高数量,并且然后测试或后续行能够引起当前行的错误与所存储最高计数的比较。在一个实施例中,还存储被检测为具有错误的最高数量的一行或多行的地址信息。如果当前行的错误计数等于最高计数,则能够存储当前行的地址信息。如果当前行的错误计数高于所存储最高计数,则能够改写该计数,并且任何地址信息也能够通过当前行的地址信息来替代。在经过地址的范围中的所有行之后,计数应当包括每行错误的最高数量的计数,并且能够包括计数所应用于的一行或多行的地址信息。
ECC逻辑能够在每次执行测试时累加错误的总数。在存储器装置的使用期限中,错误的数量可能随着装置老化而增加。在一个实施例中,如果尚未达到待测试范围中的最后一个地址(422的“否”分支),则存储器装置能够使地址递增,并且对另一个存储器位置重复进行测试。在一个实施例中,如果已经达到待测试范围中的最后一个地址(422的“是”分支),则ECC逻辑将操作测试期间所纠正或检测的SBE的数量与所存储阈值(其指示从制造时存在的数量或者存储器装置结合到***中之前存在的错误的数量)进行比较(424)。ECC逻辑能够存储当前所检测的错误与阈值数量之间的差(426)。所存储差能够称作错误结果、错误计数或错误报告。
在一个实施例中,存储器装置的ECC逻辑在主机可访问的寄存器中存储错误结果。例如,存储器装置能够将错误结果存储到模式寄存器、多功能寄存器或者其他寄存器或存储位置,其能够由主机的存储器控制器或可比逻辑来访问。如果计数中存在差,则存储器装置已经形成更多错误,并且如果错误的数量变得过大,则能够通知主机***。例如,存储器装置能够在主机装置可访问的寄存器或其他存储器位置中存储该差。在一个实施例中,存储器装置能够配置成周期地向主机提供该数量。尽管共享与在存储器装置的使用寿命中累加错误有关的信息,但是因为存储器装置控制地址生成和用于错误检测的计数器,所以它能够揭示自制造以来所累加的错误,而没有揭示总错误信息。在一个实施例中,存储器装置的ECC逻辑还报告具有错误的最高数量的行的地址信息和/或具有错误的最高数量的行的错误的计数。
在一个实施例中,例如当经过存储器位置的范围之内的所有地址的循环或传递已经完成时,存储器装置记录对存储器位置的范围的测试的完成已经发生。在一个实施例中,***在存储器子***的开始或发起时重置所检测错误的计数。在一个实施例中,待重置错误的计数是错误的内部计数,其与错误的阈值或基准数量进行比较。在一个实施例中,错误的计数是能够从存储结果的寄存器或存储器位置来重置的错误结果。
图5是其中能够实现生成内部地址的存储器装置的计算***的实施例的框图。***500表示按照本文所述的任何实施例的计算装置,并且能够是膝上型计算机、台式计算机、服务器、游戏或娱乐控制***、扫描仪、复印机、打印机、路由或交换装置或者其他电子装置。***500包括处理器520,其为***500提供指令的处理、操作管理和运行。处理器520能够包括任何类型的微处理器、中央处理单元(CPU)、处理核心或者其他处理硬件,以便为***500提供处理。处理器520控制***500的整体操作,并且能够是或者包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑装置(PLD)等或者这类装置的组合。
存储器子***530表示***500的主存储器,并且为将要由处理器520所运行的代码或者将要在运行例程中所使用的数据值提供暂时存储。存储器子***530能够包括一个或多个存储器装置,例如只读存储器(ROM)、闪速存储器、一个或多个种类的随机存取存储器(RAM)或其他存储器装置或者这类装置的组合。除了其他以外,存储器子***530还存储和托管操作***(OS)536,以提供软件平台供***500中的指令的执行。另外,其他指令538被存储并且从存储器子***530来运行,以提供***500的逻辑和处理。OS 536和指令538由处理器520来运行。存储器子***530包括存储器装置532,其中它存储数据、指令、程序或其他项。在一个实施例中,存储器子***包括存储器控制器534,其是生成命令并且向存储器装置532发出命令的存储器控制器。将会理解,存储器控制器534能够是处理器520的物理部分。
处理器520和存储器子***530被耦合到总线/总线***510。总线510是一种抽象,其表示通过适当桥接器、适配器和/或控制器所连接的任一个或多个独立物理总线、通信线路/接口和/或点对点连接。因此,总线510能够包括例如***总线、外设组件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机***接口(SCSI)总线、通用串行总线(USB)、或者电气和电子工程师协会(IEEE)标准1394总线(通常称作“火线”)中的一个或多个。总线510的总线还能够对应于网络接口550中的接口。
***500还包括一个或多个输入/输出(I/O)接口540、网络接口550、一个或多个内部大容量存储装置560以及被耦合到总线510的***接口570。I/O接口540能够包括一个或多个接口组件,用户经过其与***500进行交互(例如视频、音频和/或字母数字接口)。网络接口550为***500提供通过一个或多个网络与远程装置(例如服务器、其他计算装置)进行通信的能力。网络接口550能够包括以太网适配器、无线互连组件、USB(通用串行总线)或者其他基于有线或无线标准的或者专有接口。
存储装置560能够是或者包括用于按照非易失性的方式来存储大量数据的任何常规介质,例如一个或多个基于磁、固态或光的磁盘或光盘或者组合。存储装置560按照永久状态(即,尽管对***500的电力中断,也保留值)来保存代码或指令和数据562。存储装置560能够一般被认为是“存储器”,但是存储器530是运行或操作存储器,以向处理器520提供指令。虽然存储装置560是非易失性的,但是存储器530能够包括易失性存储器(即,如果对***500中断电力,则数据的值或状态是不确定的)。
***接口570能够包括以上没有具体提及的任何硬件接口。外设一般指的是相关地连接到***500的装置。相关连接是一种连接,其中***500提供软件和/或硬件平台,操作运行于所述平台上,并且用户与所述平台进行交互。
在一个实施例中,存储器子***530包括内部ECC逻辑580,其表示按照本文所述的任何实施例来管理用于存储器532的内部ECC的逻辑。在一个实施例中,内部ECC 580生成用于进行经过读取的一遍以执行错误测试的地址。内部ECC 580能够生成指示自制造装置以来已经累加多少错误的相对计数。因此,能够暴露错误的数量,以示出自制造装置以来已经形成多少错误。在一个实施例中,内部ECC 580能够包括重置内部计数器(其提供错误累加信息)的逻辑。
图6是其中能够实现生成内部地址的存储器装置的移动装置的实施例的框图。装置600表示移动计算装置,例如计算平板、移动电话或智能电话、无线使能电子阅读器,可佩戴计算装置或其他移动装置。将会理解,一般示出组件的某些,但是在装置600中并非示出这种装置的所有组件。
装置600包括处理器610,其执行装置600的主要处理操作。处理器610能够包括一个或多个物理装置,例如微处理器、应用处理器、微控制器、可编程逻辑装置或者其他处理部件。由处理器610所执行的处理操作包括操作平台或操作***(其上运行应用和/或装置功能)的运行。处理操作包括与和人类用户或者和其他装置的I/O(输入/输出)相关的操作、与电力管理相关的操作和/或与将装置600连接到另一个装置相关的操作。处理操作还能够包括与音频I/O和/或显示I/O相关的操作。
在一个实施例中,装置600包括音频子***620,其表示与向计算装置提供音频功能所关联的硬件(例如音频硬件和音频电路)和软件(例如驱动程序、编解码器)组件。音频功能能够包括扬声器和/或耳机输出以及麦克风输入。用于这类功能的装置能够被集成到装置600中或者被连接到装置600。在一个实施例中,用户通过提供音频命令(其由处理器610来接收和处理)来与装置600进行交互。
显示子***630表示提供视觉和/或触觉显示以供用户与计算装置进行交互的硬件(例如显示装置)和软件(例如驱动程序)组件。显示子***630包括显示接口632,其包括被用来向用户提供显示的特定屏幕或硬件装置。在一个实施例中,显示接口632包括与处理器610分开的、执行与显示相关的至少一些处理的逻辑。在一个实施例中,显示子***630包括触摸屏幕装置,其向用户提供输出和输入两者。在一个实施例中,显示子***630包括高清晰度(HD)显示器,其向用户提供输出。高清晰度能指具有大约100 PPI(每英寸像素)或更大的像素密度的显示器,并且能够包括诸如全HD(例如1080p)、视网膜显示器、4K(超高清晰度或UHD)等的格式。
I/O控制器640表示与和用户的交互相关的硬件装置和软件组件。I/O控制器640能够进行操作以管理作为音频子***620和/或显示子***630的组成部分的硬件。另外,I/O控制器640图示用于连接到装置600的附加装置的连接点,用户通过所述连接点可与***进行交互。例如,能够被附连到装置600的装置可包括麦克风装置、扬声器或立体声***、视频***或其他显示装置、键盘或小键盘装置或者其他I/O装置,供与诸如读卡器或其他装置之类的特定应用配合使用。
如上所提及,I/O控制器640能够与音频子***620和/或显示子***630进行交互。例如,经过麦克风或其他音频装置的输入能够为装置600的一个或多个应用或功能提供输入或命令。另外,能够提供音频输出,作为对显示输出的替代或补充。在另一个示例中,如果显示子***包括触摸屏幕,则显示装置还充当输入装置,其能够至少部分由I/O控制器640来管理。装置600上还能够存在附加按钮或开关,以提供由I/O控制器640所管理的I/O功能。
在一个实施例中,I/O控制器640管理装置,例如加速计、照相装置、光传感器或其他环境传感器、陀螺仪、全球定位***(GPS)或者能够被包括在装置600中的其他硬件。输入能够是直接用户交互的一部分,以及向***提供环境输入以影响其操作(例如对噪声的滤波、对亮度检测调整显示、对照相装置应用闪光或者其他特征)。在一个实施例中,装置600包括电力管理650,其管理电池电力使用、电池的充电以及与省电操作相关的特征。
存储器子***660包括用于存储装置600中的信息的(一个或多个)存储器装置662。存储器子***660能够包括非易失性(如果中断对存储器装置的电力状态不会改变)和/或易失性(如果中断到存储器装置的电力状态是不确定的)存储器装置。存储器660能够存储应用数据、用户数据、音乐、照片、文档或其他数据以及与***600的应用和功能的运行相关的***数据(无论是长期的还是暂时的)。在一个实施例中,存储器子***660包括存储器控制器664(其也能够被认为是***600的控制的组成部分,并且能够潜在地被认为是处理器610的组成部分)。存储器控制器664包括生成命令并且向存储器装置662发出命令的调度器。
连接性670包括硬件装置(例如无线和/或有线连接器和通信硬件)和软件组件(例如驱动程序、协议栈),以便使装置600能够与外部装置进行通信。外部装置可能是独立装置(例如其他计算装置、无线接入点或基站)以及外设(例如耳机、打印机或其他装置)。
连接性670能够包括多个不同类型的连接性。概括来说,装置600被图示为具有蜂窝连接性672和无线连接性674。蜂窝连接性672一般指的是由无线运营商所提供、例如经由GSM(全球移动通信***)或者变化或衍生、CDMA(码分多址)或者变化或衍生、TDM(时分复用)或者变化或衍生、LTE(长期演进—又称作“4G”)或者其他蜂窝服务标准所提供的蜂窝网络连接性。无线连接性674指的是不是蜂窝的无线连接性,并且能够包括个人区域网络(例如蓝牙)、局域网(例如WiFi)和/或广域网(例如WiMax)或者其他无线通信。无线通信指的是通过使用经过非固体介质的调制电磁辐射来传递数据。有线通信经过固体通信介质进行。
***连接680包括硬件接口和连接器以及软件组件(例如驱动程序、协议栈),以进行***连接。将会理解,装置600能够是其他计算装置的***装置(“至”682)以及具有与其连接的***装置(“自”684)。装置600通常具有“对接”连接器,以便连接到其他计算装置,用于诸如管理(例如下载和/或上传、变更、同步)装置600上的内容之类的用途。另外,对接连接器能够允许装置600连接到某些外设,所述外设允许装置600控制例如向视听或其他***的内容输出。
除了专有对接连接器或其他专有连接硬件之外,装置600还能够经由通用或者基于标准的连接器来进行***连接680。通用类型能够包括通用串行总线(USB)连接器(其能够包括多个不同硬件接口的任一个)、包括MiniDisplayPort(MDP)的DisplayPort、高清晰度多媒体接口(HDMI)、火线或其他类型。
在一个实施例中,存储器子***660包括内部ECC逻辑690,其指的是按照本文所述的任何实施例来管理用于存储器662的内部ECC的逻辑。在一个实施例中,内部ECC 690生成用于进行经过读取的一遍以执行错误测试的地址。内部ECC 690能够生成指示自制造装置以来已经累加多少错误的相对计数。因此,能够暴露错误的数量,以示出自制造装置以来已经形成多少错误。在一个实施例中,内部ECC 690能够包括重置内部计数器(其提供错误累加信息)的逻辑。
在一个方面,一种用于管理存储器中的错误纠正信息的方法包括:在存储器装置内对存储器位置的范围内部执行错误检测;对所检测的各错误使内部计数递增;生成指示内部计数与对存储器装置预设的错误的基准数量之间的差的错误结果,预设基于在结合到***中之前对存储器装置所检测的错误的数量;以及向***的关联主机提供错误结果,以便仅暴露存储器装置结合到***中之后所累加的错误的数量。
在一个实施例中,执行错误检测包括响应从主机所接收的错误测试命令而执行检测错误的一系列操作。在一个实施例中,对存储器位置的范围执行错误检测包括对整个存储器装置执行错误检测。在一个实施例中,执行错误检测还包括在存储器装置中对存储器位置的范围内部生成地址。在一个实施例中,对所检测的各错误使内部计数递增还包括对存储器位置的范围中所执行的每个单比特错误(SBE)检测和纠正使计数递增。在一个实施例中,错误的基准数量包括对存储器装置的制造测试期间所检测的错误的数量。在一个实施例中,提供错误结果还包括在寄存器中存储错误结果以供主机来访问。在一个实施例中,提供错误结果还包括指示具有错误的最高数量的行。在一个实施例中,指示具有错误的最高数量的行包括报告行的地址以及行中的错误的数量。在一个实施例中,还包括在存储器位置的范围完成时重置内部计数。
在一个方面,一种具有内部错误纠正的存储器装置包括:在存储器装置内部的错误检测逻辑,对存储器位置的范围执行内部错误检测;计数器,对所检测的各错误使内部计数递增;比较器逻辑,生成指示内部计数与对存储器装置预设的错误的基准数量之间的差的错误结果,预设基于在结合到***中之前对存储器装置所检测的错误的数量;以及寄存器,存储错误报告,以供关联主机来访问,而没有暴露基准数量。
在一个实施例中,执行内部错误检测的错误检测逻辑能够响应从关联主机所接收的错误测试命令而执行检测错误的一系列操作。在一个实施例中,执行对存储器位置的范围的内部错误检测的错误检测逻辑能够执行对整个存储器装置的错误检测。在一个实施例中,执行内部错误检测的错误检测逻辑能够对存储器位置的范围内部生成存储器装置内的地址。在一个实施例中,使内部错误计数递增的计数器包括能够对存储器位置的范围中所执行的每个单比特错误(SBE)检测和纠正使内部计数递增的计数器。在一个实施例中,错误的基准数量包括对存储器装置的制造测试期间所检测的错误的数量。在一个实施例中,计数器还能够在存储器位置的范围完成时重置内部计数。在一个实施例中,还包括识别具有错误的最高数量的行的错误检测逻辑以及存储具有错误的最高数量的行的指示的存储装置。在一个实施例中,该指示包括行的地址以及行中的错误的数量。在一个实施例中,存储装置包括寄存器。
在一个方面,一种***包括:存储器控制器,耦合到存储器装置,存储器控制器能够对所耦合存储器装置生成错误检测命令;存储器装置,耦合到存储器控制器,存储装置包括输入/输出(I/O)逻辑,接收来自存储器控制器的命令;ECC (错误纠正码)逻辑,能够在存储器装置内内部执行ECC,以纠正从存储器位置的范围所取的数据中所检测的单比特错误(SBE),生成指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数,并且向存储器控制器提供错误计数,而没有暴露基准数量。
其中存储器装置是按照以上所阐述存储器装置的方面的任何实施例的存储器装置的***。在一个方面,一种设备包括执行运行用于按照方法的方面的任何实施例来管理错误纠正信息的方法的操作的部件。在一个方面,一种制造产品包括其上存储有内容的计算机可读存储介质,其在访问时引起运行用于按照方法的方面的任何实施例来管理错误纠正信息的方法的操作的执行。
在一个方面,一种用于管理存储器中的错误纠正信息的第二方法包括:响应来自关联存储器控制器的读访问请求而取存储器装置中的数据;执行存储器装置中的内部错误纠正,以纠正所取数据中所检测的单比特错误(SBE);基于制造测试来生成指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数;以及向存储器控制器提供错误计数,以便仅暴露制造之后所累加的SBE的数量。
在一个实施例中,读访问请求是存储器控制器所生成的错误检测测试例程的组成部分。在一个实施例中,执行内部错误纠正还包括内部生成存储器装置内的地址,以用于取数据。在一个实施例中,提供错误计数包括在寄存器中存储错误计数以供存储器控制器访问。在一个实施例中,还包括在存储器位置的范围的完成时重置错误计数。在一个实施例中,还包括在存储器装置的发起时重置错误计数。在一个实施例中,还包括:识别具有SBE的最高数量的行;以及提供具有SBE的最高数量的行的指示。在一个实施例中,该指示包括行的地址以及行中的错误的数量。
在一个方面,一种具有内部错误纠正的存储器装置包括:存储器装置内部的逻辑,响应来自关联存储器控制器的读访问请求而取数据,并且执行内部错误纠正,以纠正所取数据中所检测的单比特错误(SBE);计数器,基于制造测试使指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数递增;以及向存储器控制器提供错误计数、以便仅暴露制造之后所累加的SBE的数量的逻辑。
第二存储器装置还包括用于按照第二方法的方面的任何实施例的用于运行的特征。在一个方面,一种设备包括执行运行用于按照第二方法的方面的任何实施例来管理错误纠正信息的方法的操作的部件。在一个方面,一种制造产品包括其上存储有内容的计算机可读存储介质,其在访问时引起运行用于按照第二方法的方面的任何实施例来管理错误纠正信息的方法的操作的执行。
在一个方面,一种用于管理存储器中的错误纠正信息的第三方法包括:在存储器装置从关联存储器控制器接收命令;随存储器装置内部生成地址,以执行运行命令的操作;执行存储器装置中的内部错误纠正,以纠正所取数据中所检测的单比特错误(SBE);基于制造测试来生成指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数;以及向存储器控制器提供错误计数,以便仅暴露制造之后所累加的SBE的数量。
在一个实施例中,执行错误检测包括响应从主机所接收的错误测试命令而执行检测错误的一系列操作。在一个实施例中,对存储器位置的范围执行错误检测包括对整个存储器装置执行错误检测。在一个实施例中,执行错误检测还包括在存储器装置中对存储器位置的范围内部生成地址。在一个实施例中,生成错误计数包括对存储器位置的范围中所执行的超过基准的每个单比特错误(SBE)检测和纠正使计数递增。在一个实施例中,生成错误计数还包括对所执行的每个SBE检测和纠正使计数递增,将计数与基准进行比较,并且仅存储超过基准的SBE的数量。在一个实施例中,错误的基准数量包括对存储器装置的制造测试期间所检测的错误的数量。在一个实施例中,提供错误计数还包括在寄存器中存储错误计数以供主机访问。在一个实施例中,还包括在存储器位置的范围的完成时重置错误计数。在一个实施例中,还包括:识别具有SBE的最高数量的行;以及提供具有SBE的最高数量的行的指示。在一个实施例中,该指示包括行的地址以及行中的错误的数量。
在一个方面,一种具有内部错误纠正的存储器装置包括:存储器装置内部的逻辑,从关联存储器控制器接收命令,随存储器装置内部生成地址,以执行运行命令的操作,并且执行内部错误纠正,以纠正所取数据中所检测的单比特错误(SBE);计数器,基于制造测试来生成指示超过对存储器装置预设的SBE的基准数量的所纠正SBE的数量的错误计数;以及向存储器控制器提供错误计数、以便仅暴露制造之后所累加的SBE的数量的逻辑。
第三存储器装置还包括用于按照第三方法的方面的任何实施例的运行的特征。在一个方面,一种设备包括执行运行用于按照第三方法的方面的任何实施例来管理错误纠正信息的方法的操作的部件。在一个方面,一种制造产品包括其上存储有内容的计算机可读存储介质,其在访问时引起运行用于按照第三方法的方面的任何实施例来管理错误纠正信息的方法的操作的执行。
本文所图示的流程图提供各种过程动作的序列的示例。流程图能够指示要通过软件或固件例程所运行的操作以及物理操作。在一个实施例中,流程图能够图示有限状态机(FSM)(其能够通在硬件和/或软件中来实现)的状态。虽然以特定序列或顺序被示出,但是除非另加说明,否则动作的顺序能够被修改。因此,所图示实施例应当仅被理解为示例,并且过程能够按照不同顺序来执行,以及一些动作能够并行来执行。另外,在各种实施例中,能够省略一个或多个动作;因此,并非在每一个实施例中都要求全部动作。其他过程流程是可能的。
就本文描述各种操作或功能的程度来说,它们能够被描述或定义为软件代码、指令、配置和/或数据。内容能够是直接可执行的(“对象”或“可执行”形式)源代码或者差代码(“增量”或“补丁”代码)。本文所述实施例的软件内容能够经由其上存储有内容的制造产品或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质能够使机器执行所述的功能或操作,并且包括存储采取机器(例如计算装置、电子***等)可访问形式的信息的任何机制,例如可记录/不可记录介质(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器装置等)。通信接口包括与硬连线、无线、光等介质的任一个进行接口以便与另一个装置进行通信的任何机制,例如存储器总线接口、处理器总线接口、因特网连接、磁盘控制器等。能够通过提供配置参数和/或发送信号以准备通信接口来提供描述软件内容的数据信号,来配置通信接口。通信接口能够经由被发送给通信接口的一个或多个命令或信号来访问。
本文所述的各种组件能够是用于执行所述操作或功能的部件。本文所述的各组件包括软件、硬件或者这些的组合。组件能够被实现为软件模块、硬件模块、专用硬件(例如专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路***等。
除了本文所述的内容之外,能够对本发明的所公开实施例和实现进行各种修改,而没有背离它们的范围。因此,本文中的说明和示例应当被解释为是说明性而不是限制性的。本发明的范围应当仅参照以下权利要求书来衡量。
Claims (24)
1.一种随机存取存储器(RAM)装置,包括:
存储器阵列;以及
错误检查和纠正(ECC)模块,用于对存储器阵列的多行执行ECC操作,所述ECC模块包括用于累加错误计数的计数器,所述错误计数要响应于在多行中的任何行中检测到错误而被递增,其中ECC模块用于作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差来生成错误结果。
2.根据权利要求1所述的RAM装置,其中所述ECC模块用于响应于由所述RAM装置发起错误检测测试而执行所述ECC操作。
3.根据权利要求1所述的RAM装置,其中所述ECC模块用于在有界地址空间内对所述存储器阵列的所述多行执行ECC操作。
4.根据权利要求1所述的RAM装置,其中所述ECC模块用于对所述存储器阵列的所有行执行ECC操作。
5.根据权利要求1所述的RAM装置,其中所述ECC模块用于内部生成针对所述存储器阵列的所述多行的地址信息。
6.根据权利要求5所述的RAM装置,其中所述ECC模块用于响应于检测到向先前测试的地址的地址翻转而自动重置所述累加的错误计数。
7.根据权利要求1所述的RAM装置,其中所述ECC模块进一步包括用于存储所述错误结果以指示自部署到***中以来的错误的数目的寄存器。
8.根据权利要求7所述的RAM装置,其中所述寄存器包括可由关联的存储器控制器访问的寄存器。
9.根据权利要求1所述的RAM装置,其中所述错误的基准数目包括在所述RAM装置的制造测试期间所检测到的错误的数目。
10.根据权利要求1所述的RAM装置,其中所述RAM装置包括易失性动态随机存取存储器(DRAM)装置。
11.根据权利要求1所述的RAM装置,其中所述RAM装置包括非易失性RAM装置。
12.一种***,包括:
存储器控制器;以及
并行耦合的多个随机存取存储器(RAM)装置,其中RAM装置包括:
存储器阵列;以及
错误检查和纠正(ECC)模块,用于对所述存储器阵列的多行执行ECC操作,所述ECC模块包括用于累加错误计数的计数器,所述错误计数要响应于在多行中的任何行中检测到错误而被递增,其中所述ECC模块用于作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差而生成错误结果;
其中所述RAM装置独立于基于由所述存储器控制器提供的校验位的错误纠正而对数据提供内部错误纠正。
13.根据权利要求12所述的***,其中所述ECC模块用于响应于由所述RAM装置发起错误检测测试而执行所述ECC操作。
14.根据权利要求12所述的***,其中所述ECC模块用于内部生成针对所述存储器阵列的所述多行的地址信息。
15.根据权利要求14所述的***,其中所述ECC模块用于响应于检测到向先前测试的地址的地址翻转而自动重置所述累加的错误计数。
16.根据权利要求12所述的***,其中所述ECC模块进一步包括用于存储所述错误结果以指示自部署到***中以来的错误的数目的寄存器。
17.根据权利要求16所述的***,其中所述寄存器包括可由关联的存储器控制器访问的寄存器。
18.根据权利要求12所述的***,其中所述RAM装置包括易失性动态随机存取存储器(DRAM)装置。
19.根据权利要求12所述的***,其中所述RAM装置包括非易失性RAM装置。
20.根据权利要求12所述的***,进一步包括以下中的一项或多项:
通信地耦合到所述存储器控制器的至少一个处理器;
通信地耦合到至少一个处理器的显示器;或者
通信地耦合到至少一个处理器的网络接口。
21.一种用于管理存储器中的错误纠正信息的方法,包括:
利用同步动态随机存取存储器(SDRAM)装置内的ECC模块对存储器阵列的多行发起错误检查和纠正(ECC)操作;
响应于在多行中的任何行中检测到错误而累加要递增的错误计数;以及
作为累加的错误计数与要在递增错误结果之前达到的非零错误阈值之间的差而生成错误结果。
22.根据权利要求21所述的方法,进一步包括:
内部生成针对所述存储器阵列的所述多行地址的信息。
23.根据权利要求22所述的方法,进一步包括:
响应于检测到向先前测试的地址的地址翻转而自动重置所述累加的错误计数。
24.根据权利要求21所述的方法,进一步包括将所述错误结果存储在寄存器中以指示自部署到***中以来的错误的数目。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562168828P | 2015-05-31 | 2015-05-31 | |
US62/168828 | 2015-05-31 | ||
US14/865956 | 2015-09-25 | ||
US14/865,956 US9740558B2 (en) | 2015-05-31 | 2015-09-25 | On-die ECC with error counter and internal address generation |
CN201680024940.1A CN107567645B (zh) | 2015-05-31 | 2016-05-27 | 采用错误计数器和内部地址生成的管芯上ecc |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680024940.1A Division CN107567645B (zh) | 2015-05-31 | 2016-05-27 | 采用错误计数器和内部地址生成的管芯上ecc |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113687979A true CN113687979A (zh) | 2021-11-23 |
Family
ID=57398804
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111168284.1A Pending CN113687979A (zh) | 2015-05-31 | 2016-05-27 | 采用错误计数器和内部地址生成的管芯上ecc |
CN201680024940.1A Active CN107567645B (zh) | 2015-05-31 | 2016-05-27 | 采用错误计数器和内部地址生成的管芯上ecc |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680024940.1A Active CN107567645B (zh) | 2015-05-31 | 2016-05-27 | 采用错误计数器和内部地址生成的管芯上ecc |
Country Status (5)
Country | Link |
---|---|
US (2) | US9740558B2 (zh) |
EP (2) | EP3304309B1 (zh) |
CN (2) | CN113687979A (zh) |
TW (1) | TWI718140B (zh) |
WO (1) | WO2016196378A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535804B2 (en) * | 2012-05-21 | 2017-01-03 | Cray Inc. | Resiliency to memory failures in computer systems |
KR20180027656A (ko) * | 2016-09-05 | 2018-03-15 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
KR102362229B1 (ko) | 2017-08-10 | 2022-02-11 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서 |
CN108062204A (zh) * | 2018-01-12 | 2018-05-22 | 江苏华存电子科技有限公司 | 一种强化数据可靠度的***和方法 |
CN108847267B (zh) * | 2018-05-23 | 2022-04-08 | 置富科技(深圳)股份有限公司 | 一种基于错误模式的闪存寿命测试方法 |
US11074126B2 (en) * | 2018-07-12 | 2021-07-27 | Micron Technology, Inc. | Methods for error count reporting with scaled error count information, and memory devices employing the same |
US10636476B2 (en) | 2018-11-01 | 2020-04-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
US11138064B2 (en) * | 2018-12-13 | 2021-10-05 | Micron Technology, Inc. | Dynamic control of error management and signaling |
WO2020173807A1 (en) * | 2019-02-25 | 2020-09-03 | Ams Ag | Host communication circuit, client communication circuit, communication system, sound reproducing device and communication method |
US10936209B2 (en) * | 2019-06-06 | 2021-03-02 | Micron Technology, Inc. | Memory error indicator for high-reliability applications |
US11169730B2 (en) * | 2019-06-06 | 2021-11-09 | Micron Technology, Inc. | Scrub rate control for a memory device |
CN110377357B (zh) * | 2019-06-26 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种服务器中dimm的配置方法、***及装置 |
KR20210081534A (ko) | 2019-12-24 | 2021-07-02 | 삼성전자주식회사 | 반도체 메모리 장치 및 메모리 시스템 |
CN111638994B (zh) * | 2020-06-01 | 2021-05-04 | 长江存储科技有限责任公司 | 一种闪存存储器及其错误比特计数检测方法和*** |
US11342041B2 (en) * | 2020-08-26 | 2022-05-24 | Micron Technology, Inc. | Apparatuses, systems, and methods for probabilistic data structures for error tracking |
WO2022043727A1 (en) * | 2020-08-31 | 2022-03-03 | Micron Technology, Inc. | Methods and systems for improving read and write of memory cells |
US11646751B2 (en) * | 2021-06-15 | 2023-05-09 | Micron Technology, Inc. | Apparatuses, systems, and methods for identifying multi-bit errors |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020033559A (ko) * | 2000-10-31 | 2002-05-07 | 마리 오 휴버 | 메모리 테스터 결과 분석 방법 |
CN103098029A (zh) * | 2010-07-13 | 2013-05-08 | 桑迪士克科技股份有限公司 | 后台存储器***接口的动态优化 |
CN104572517A (zh) * | 2013-10-24 | 2015-04-29 | 国际商业机器公司 | 提供被请求数据的方法、控制器以及计算机*** |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307356A (en) | 1990-04-16 | 1994-04-26 | International Business Machines Corporation | Interlocked on-chip ECC system |
US5633767A (en) | 1995-06-06 | 1997-05-27 | International Business Machines Corporation | Adaptive and in-situ load/unload damage estimation and compensation |
EP0862762B1 (en) | 1996-08-16 | 2002-10-09 | Tokyo Electron Device Limited | Semiconductor memory device having error detection and correction |
US6052818A (en) | 1998-02-27 | 2000-04-18 | International Business Machines Corporation | Method and apparatus for ECC bus protection in a computer system with non-parity memory |
US6487685B1 (en) | 1999-09-30 | 2002-11-26 | Silicon Graphics, Inc. | System and method for minimizing error correction code bits in variable sized data formats |
US6256757B1 (en) * | 2000-01-24 | 2001-07-03 | Credence Systems Corporation | Apparatus for testing memories with redundant storage elements |
DE10017543A1 (de) | 2000-04-08 | 2001-10-11 | Bosch Gmbh Robert | Verfahren zur Fehlererkennung und Fehlerheilung |
US6785856B1 (en) * | 2000-12-07 | 2004-08-31 | Advanced Micro Devices, Inc. | Internal self-test circuit for a memory array |
US6957378B2 (en) | 2001-06-04 | 2005-10-18 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
US7003698B2 (en) | 2002-06-29 | 2006-02-21 | Intel Corporation | Method and apparatus for transport of debug events between computer system components |
US7096407B2 (en) | 2003-02-18 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Technique for implementing chipkill in a memory system |
US7234099B2 (en) | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US7370260B2 (en) | 2003-12-16 | 2008-05-06 | Freescale Semiconductor, Inc. | MRAM having error correction code circuitry and method therefor |
US7376887B2 (en) | 2003-12-22 | 2008-05-20 | International Business Machines Corporation | Method for fast ECC memory testing by software including ECC check byte |
JP2005310313A (ja) * | 2004-04-23 | 2005-11-04 | Toshiba Corp | 半導体記憶装置 |
KR100734262B1 (ko) * | 2004-12-07 | 2007-07-02 | 삼성전자주식회사 | 광 저장 매체의 최적화된 결함 처리를 위한 결함 판단 장치 |
US7650558B2 (en) | 2005-08-16 | 2010-01-19 | Intel Corporation | Systems, methods, and apparatuses for using the same memory type for both error check and non-error check memory systems |
US7227797B2 (en) * | 2005-08-30 | 2007-06-05 | Hewlett-Packard Development Company, L.P. | Hierarchical memory correction system and method |
US8245109B2 (en) | 2006-03-31 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Error checking and correction (ECC) system and method |
US7971124B2 (en) * | 2007-06-01 | 2011-06-28 | International Business Machines Corporation | Apparatus and method for distinguishing single bit errors in memory modules |
US20090132876A1 (en) | 2007-11-19 | 2009-05-21 | Ronald Ernest Freking | Maintaining Error Statistics Concurrently Across Multiple Memory Ranks |
US8161356B2 (en) | 2008-03-28 | 2012-04-17 | Intel Corporation | Systems, methods, and apparatuses to save memory self-refresh power |
JP2010123156A (ja) | 2008-11-17 | 2010-06-03 | Elpida Memory Inc | 半導体記憶装置及びその制御方法 |
KR101001446B1 (ko) * | 2008-12-24 | 2010-12-14 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
KR20100102925A (ko) | 2009-03-12 | 2010-09-27 | 삼성전자주식회사 | 리드 리클레임 신호를 발생하는 불휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 |
US8230305B2 (en) | 2009-04-02 | 2012-07-24 | Micron Technology, Inc. | Extended single-bit error correction and multiple-bit error detection |
US9170879B2 (en) | 2009-06-24 | 2015-10-27 | Headway Technologies, Inc. | Method and apparatus for scrubbing accumulated data errors from a memory system |
US8261136B2 (en) * | 2009-06-29 | 2012-09-04 | Sandisk Technologies Inc. | Method and device for selectively refreshing a region of a memory of a data storage device |
US8495467B1 (en) | 2009-06-30 | 2013-07-23 | Micron Technology, Inc. | Switchable on-die memory error correcting engine |
US8464125B2 (en) | 2009-12-10 | 2013-06-11 | Intel Corporation | Instruction-set architecture for programmable cyclic redundancy check (CRC) computations |
US8230255B2 (en) | 2009-12-15 | 2012-07-24 | International Business Machines Corporation | Blocking write acces to memory modules of a solid state drive |
US8219851B2 (en) * | 2009-12-29 | 2012-07-10 | Intel Corporation | System RAS protection for UMA style memory |
US8640005B2 (en) | 2010-05-21 | 2014-01-28 | Intel Corporation | Method and apparatus for using cache memory in a system that supports a low power state |
JP2012050008A (ja) | 2010-08-30 | 2012-03-08 | Toshiba Corp | 誤り検出訂正方法および半導体メモリ装置 |
US8914687B2 (en) | 2011-04-15 | 2014-12-16 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ECC logic en embedded memory |
US8645811B2 (en) | 2011-10-27 | 2014-02-04 | Dell Products L.P. | System and method for selective error checking |
US8892986B2 (en) | 2012-03-08 | 2014-11-18 | Micron Technology, Inc. | Apparatuses and methods for combining error coding and modulation schemes |
KR101938210B1 (ko) * | 2012-04-18 | 2019-01-15 | 삼성전자주식회사 | 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US9037949B1 (en) | 2012-06-21 | 2015-05-19 | Rambus Inc. | Error correction in a memory device |
US9009566B2 (en) * | 2012-09-12 | 2015-04-14 | Macronix International Co., Ltd. | Outputting information of ECC corrected bits |
KR102002925B1 (ko) | 2012-11-01 | 2019-07-23 | 삼성전자주식회사 | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 |
US9070479B2 (en) | 2013-01-21 | 2015-06-30 | Sandisk Technologies Inc. | Systems and methods of updating read voltages |
US9318182B2 (en) * | 2013-01-30 | 2016-04-19 | Intel Corporation | Apparatus, method and system to determine memory access command timing based on error detection |
JP2014157391A (ja) * | 2013-02-14 | 2014-08-28 | Sony Corp | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
US8996953B2 (en) | 2013-03-01 | 2015-03-31 | International Business Machines Corporation | Self monitoring and self repairing ECC |
US9032264B2 (en) * | 2013-03-21 | 2015-05-12 | Kabushiki Kaisha Toshiba | Test method for nonvolatile memory |
KR20150020385A (ko) | 2013-08-13 | 2015-02-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
US20150067437A1 (en) | 2013-08-30 | 2015-03-05 | Kuljit S. Bains | Apparatus, method and system for reporting dynamic random access memory error information |
US9826638B2 (en) | 2013-10-15 | 2017-11-21 | Rambus Inc. | Load reduced memory module |
US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
US9495232B2 (en) | 2014-03-28 | 2016-11-15 | Intel IP Corporation | Error correcting (ECC) memory compatibility |
US20150331732A1 (en) | 2014-05-13 | 2015-11-19 | Rambus Inc. | Memory device having storage for an error code correction event count |
US9367392B2 (en) | 2014-08-01 | 2016-06-14 | Winbond Electronics Corporation | NAND flash memory having internal ECC processing and method of operation thereof |
US9766972B2 (en) * | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
KR102204391B1 (ko) | 2014-08-18 | 2021-01-18 | 삼성전자주식회사 | 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치 |
US9606851B2 (en) * | 2015-02-02 | 2017-03-28 | International Business Machines Corporation | Error monitoring of a memory device containing embedded error correction |
US9940457B2 (en) | 2015-02-13 | 2018-04-10 | International Business Machines Corporation | Detecting a cryogenic attack on a memory device with embedded error correction |
US9811420B2 (en) | 2015-03-27 | 2017-11-07 | Intel Corporation | Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC) |
US9691505B2 (en) | 2015-03-27 | 2017-06-27 | Intel Corporation | Dynamic application of error correction code (ECC) based on error type |
-
2015
- 2015-09-25 US US14/865,956 patent/US9740558B2/en active Active
-
2016
- 2016-04-14 TW TW105111646A patent/TWI718140B/zh active
- 2016-05-27 CN CN202111168284.1A patent/CN113687979A/zh active Pending
- 2016-05-27 CN CN201680024940.1A patent/CN107567645B/zh active Active
- 2016-05-27 EP EP16804173.9A patent/EP3304309B1/en active Active
- 2016-05-27 WO PCT/US2016/034849 patent/WO2016196378A1/en unknown
- 2016-05-27 EP EP20166515.5A patent/EP3712893A1/en active Pending
-
2017
- 2017-08-20 US US15/681,387 patent/US10949296B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020033559A (ko) * | 2000-10-31 | 2002-05-07 | 마리 오 휴버 | 메모리 테스터 결과 분석 방법 |
CN103098029A (zh) * | 2010-07-13 | 2013-05-08 | 桑迪士克科技股份有限公司 | 后台存储器***接口的动态优化 |
CN104572517A (zh) * | 2013-10-24 | 2015-04-29 | 国际商业机器公司 | 提供被请求数据的方法、控制器以及计算机*** |
Non-Patent Citations (1)
Title |
---|
SCHECHTER S: "Use ECP, not ECC, for hard failures in resistive memories", 《ACM SIGARCH COMPUTER ARCHITECTURE NEWS》, 31 December 2010 (2010-12-31), pages 141 - 152 * |
Also Published As
Publication number | Publication date |
---|---|
CN107567645A (zh) | 2018-01-09 |
EP3304309A4 (en) | 2019-01-09 |
US20160350180A1 (en) | 2016-12-01 |
EP3304309B1 (en) | 2020-06-24 |
US10949296B2 (en) | 2021-03-16 |
TWI718140B (zh) | 2021-02-11 |
EP3304309A1 (en) | 2018-04-11 |
EP3712893A1 (en) | 2020-09-23 |
US20170344424A1 (en) | 2017-11-30 |
CN107567645B (zh) | 2021-10-29 |
WO2016196378A1 (en) | 2016-12-08 |
TW201710894A (zh) | 2017-03-16 |
US9740558B2 (en) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107567645B (zh) | 采用错误计数器和内部地址生成的管芯上ecc | |
CN107430538B (zh) | 基于错误类型的ecc的动态应用 | |
US10496473B2 (en) | Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC) | |
US10552285B2 (en) | Impedance compensation based on detecting sensor data | |
US9904591B2 (en) | Device, system and method to restrict access to data error information | |
EP3198440B1 (en) | Exchanging ecc metadata between memory and host system | |
US20150067437A1 (en) | Apparatus, method and system for reporting dynamic random access memory error information | |
EP3132449B1 (en) | Method, apparatus and system for handling data error events with memory controller | |
US8806285B2 (en) | Dynamically allocatable memory error mitigation | |
US9196384B2 (en) | Memory subsystem performance based on in-system weak bit detection | |
US9704563B2 (en) | Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory | |
US10461804B2 (en) | Elimination of crosstalk effects in non-volatile storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |