CN116935940A - 纠错码验证 - Google Patents
纠错码验证 Download PDFInfo
- Publication number
- CN116935940A CN116935940A CN202310424219.3A CN202310424219A CN116935940A CN 116935940 A CN116935940 A CN 116935940A CN 202310424219 A CN202310424219 A CN 202310424219A CN 116935940 A CN116935940 A CN 116935940A
- Authority
- CN
- China
- Prior art keywords
- ecc
- data
- memory
- bus
- circuit
- 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
- 238000012937 correction Methods 0.000 title claims abstract description 11
- 238000012795 verification Methods 0.000 title abstract description 9
- 238000001514 detection method Methods 0.000 claims description 69
- 230000004044 response Effects 0.000 claims description 41
- 230000002093 peripheral effect Effects 0.000 claims description 34
- 230000003068 static effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000003999 initiator Substances 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- 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
- 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/1044—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 with specific ECC/EDC distribution
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本公开涉及纠错码验证。一种存储器装置,包括:存储器阵列,包括用于存储存储器数据的存储器单元,纠错码(ECC)电路,被配置以产生ECC数据并使用所述ECC数据来检测所述存储器数据中的错误;和ECC电路检查器。ECC电路检查器被配置为用检查ECC数据替换ECC数据,当所述替换的检查ECC数据被应用到所述ECC电路时,将所述ECC线路的输出与预期输出进行比较,和当所述比较指示所述ECC电路中的错误时,生成警报。
Description
背景技术
错误检测用于通信技术和存储器技术中,以发现错误的数据变化。错误数据检测有许多不同的方法。一种方法是在装置中包括纠错码(ECC)以检测和校正错误。另一种方法是循环冗余检查,其计算循环冗余码(CRC)以检测数据中的错误。通信技术和存储器技术正被包括在需要高度安全的嵌入式系统中,例如用于汽车应用的嵌入式系统。为了实现高水平的安全性,可能需要验证错误检测本身是否正确工作。
发明内容
本文档一般涉及嵌入式计算系统,尤其涉及通过验证错误检测算法是否正确工作来验证此类系统中的错误检测的技术。
存储器装置的示例包括存储器阵列,包括用于存储存储器数据的存储器单元;纠错码(ECC)电路,被配置以产生ECC数据并使用所述ECC数据来检测所述存储器数据中的错误;以及ECC电路检查器。所述ECC电路检查器被配置为用检查ECC数据替换ECC数据,当所述替换的检查ECC数据被应用到所述ECC电路时,将所述ECC线路的输出与预期输出进行比较,和当所述比较指示所述ECC电路中的错误时,生成警报。
计算系统的外围装置的示例包括总线接口和总线ECC电路检查器。总线接口被配置为通过总线与一个或多个单独装置进行数据通信。所述一个或多个单独装置包括ECC电路,所述ECC电路被配置为生成ECC数据并使用所述ECC数据来检测经由所述总线通信的数据中的数据错误。所述总线ECC电路检查器被配置为在所述总线上强制产生错误,并将一个或多个单独装置对强制总线错误的响应与预期响应进行比较,和当所述比较指示所述ECC电路中的错误时,生成警报。
计算系统的示例包括主机装置、系统总线和存储器装置。存储器装置包括总线接口,存储器阵列,包括用于存储经由所述总线从所述主机装置接收的存储器数据的存储器单元,错误检测电路,被配置以产生错误检测数据并使用所述错误检测数据来检测所述存储器数据中的错误和存储器错误检测电路检查器。存储器错误检测电路检查器被配置为用所述检查错误检测数据代替所述错误检测数据,当所述替换的检查错误检测数据被应用到所述错误检测电路时,将所述错误检测电路的输出与预期输出进行比较,和当所述比较指示所述错误检测电路中的错误时,生成警报。
本部分旨在提供本专利申请的主题的概述。其并非旨在提供对本发明的排他性或详尽的解释。包括详细描述是为了提供关于本专利申请的进一步信息。
附图说明
在不一定按比例绘制的附图中,相似的数字可以在不同的视图中描述相似的部件。具有不同字母后缀的相似数字可以表示相似组件的不同实例。附图以示例的方式但不以限制的方式概括地示出了本文件中讨论的各种实施例。
图1是计算系统的示例的框图。
图2是FLASH存储器装置的示例的框图。
图3是计算系统的另一示例的框图。
图4是具有ECC电路检查的FLASH存储器装置的示例的框图。
图5是用于图3的计算系统的存储器地址空间的图示。
图6是存储器纠错码电路检查器的示例的功能框图。
图7是计算系统的另一示例的框图。
图8是总线ECC电路检查器的示例的功能框图。
图9是总线ECC电路检查器的另一示例的功能框图。
图10是验证计算系统的错误检测电路的方法的示例的流程图。
具体实施方式
图1是计算系统100的示例的框图。该系统可以是分布式的,也可以是集中式的。计算系统100包括主机装置102(例如,中央处理单元或CPU)、FLASH存储器装置104和两个静态随机存取存储器(SRAM)装置106。在变型中,计算系统可以包括其他类型的非易失性存储器(例如,硬盘驱动器(HDD)存储器、融合存储器和只读存储器)和其他类型的易失性存储(例如,静态动态随机存取存储器(SDRAM)和存储寄存器)。主机装置102经由总线108(例如,高带宽总线)与存储器装置通信。计算系统100还可以包括一个或多个外围装置,例如直接存储器访问(DMA)装置110。其他外围装置包括通信(Comms)装置112、模数转换器(ADC)114、数模转换器(DAC)116和通用输入输出(GPIO)装置118,它们经由第二总线120(例如,低能量、低速总线)进行通信。计算系统还可以包括桥接装置122以桥接两条总线之间的数据通信。
每个存储器装置包括包含存储器单元的存储器阵列。FLASH存储器装置104包含至少一个FLASH存储器阵列,且SRAM装置106每一者包含至少一个SRAM阵列。存储器装置包括ECC电路124,用于在写入存储器装置的存储器阵列和从存储器装置的存储阵列读取的数据中进行错误检测。ECC包括用于对数据位进行编码的算法,使得可以检测并可校正数据中的错误。ECC技术通常涉及计算ECC并将其附加到原始数据,以及将ECC与原始数据一起存储或与原始数据相关联。存储器装置对存储的ECC进行解码,并使用它来检测和校正从存储器阵列读取的数据中的错误。
图2是图1的FLASH存储器装置104的示例的框图。FLASH存储器装置104包括嵌入式FLASH(eFLASH)阵列230,该嵌入式FLASH阵列230包含eFLASH存储器单元。FLASH存储器装置104包括ECC编码电路232和ECC解码电路234。ECC电路检测向存储器阵列写入和读取数据时的错误。在总线接口236上接收数据,并且使用ECC编码电路232生成8位ECC。原始数据加上ECC码被存储在eFLASH阵列230中。当从eFLASH阵列230读取数据时,ECC解码电路234对8位ECC码进行解码,以检测读取的数据中是否存在错误。
通常,ECC算法用于检测一位或两位错误并校正一位错误。增加ECC以校正多于一位或两位或检测多于两位或三位变得过大,或者可能需要大量的时间来计算。或者,存储器装置可以包括CRC电路以检测数据中的错误。尽管CRC算法不能纠正错误,但在大量内存中,它们可以检测到比ECC更多的错误,但它们可能需要时间来计算需要读取的内存位置。
嵌入式计算机系统正被包括在需要高安全水平的应用中,例如汽车、船舶和工业机器人应用。如果错误检测电路本身存在问题,则在制造时可以检测到,但在所实现的系统中可能无法检测到。缺陷错误检测电路可能没有检测到它想要检测的错误。为了提高安全性,可以将用于验证错误检测或验证错误检测的正确操作的电路添加到嵌入式计算机系统100。
图3是计算系统300的另一示例的框图。计算系统300包括FLASH存储器装置304和SRAM存储器装置306。存储器装置与图1的示例的不同之处在于,FLASH和SRAM存储器装置包括ECC电路检查器340,ECC电路检查器包括用于验证ECC编码电路和ECC解码电路中的一个或两个的操作的ECC检查电路。
图4是具有ECC电路检查的FLASH存储器装置304的示例的框图。FLASH存储器装置304包括包含eFLASH存储单元的eFLASH阵列230、ECC编码电路232和ECC解码电路234。FLASH存储器装置304还包括ECC电路检查器340。在一个示例中,ECC电路检查器340可以用检查ECC数据替换从存储器数据生成的实际ECC数据。ECC电路检查器340将ECC电路的结果输出与当替代的检查ECC数据被施加到ECC电路时的预期输出进行比较。例如,被替换的检查ECC数据可以是意图引起已知错误的数据。如果检测到问题(例如,错误没有发生,或者意外错误发生),则ECC电路检查器340生成ECC电路中存在错误的警报。此警报可能是发送到主机装置的错误消息,也可能是使用状态行指示的错误。
存储器装置的ECC电路检查增加了ECC编码电路232和ECC电路检查器340之间的数据路径342、ECC电路检查器340和ECC解码电路234之间的数据路径344、以及总线接口236和ECC电路验证器340之间的数据路径346。在一个示例中,为了检查ECC电路,ECC电路检查器340可以使用数据路径344应用替换的检查ECC数据,并且将存储器数据或替换的存储器数据应用到ECC解码电路234。ECC电路检查器340将ECC解码电路234的输出与预期输出进行比较。如果出现预期结果,则ECC解码电路234可以不做任何事情或者可以记录该结果。如果出现意外结果,ECC解码电路234可以向主机装置发送警报或记录错误。
在另一示例中,ECC电路检查器340可以将检查ECC数据与存储器数据一起存储,而不是实际为存储器数据生成的ECC数据。取代的检查ECC数据被提供有响应于读取操作的存储器数据,而不是所生成的ECC数据。ECC电路检查器340将ECC解码电路234的用于读取操作的输出与预期输出(例如,预期误差)进行比较。在另一示例中,ECC电路检查器340可以用检查存储器数据替换或改变实际存储器数据,并且使用从原始存储器数据生成的ECC数据。在另一示例中,ECC电路检查器340可以用检查数据替换存储器数据和为存储器数据生成的ECC数据。
ECC电路检查器340可以使用存储器映射来访问用于ECC验证操作的检查ECC数据和检查存储器数据中的一个或两个。图5是用于图3的示例计算系统300的存储器地址空间550的图示。存储器地址空间550包括eFLASH存储器230。eFLASH存储器230的存储器空间包括ECC电路检查器340的存储器映射地址范围552。可以使用数据346上的地址来访问存储器映射的地址范围552。在一些示例中,当断言控制信号以启动ECC检查操作时,可以通过转换写入或读取地址来访问存储器映射地址范围552。可以响应于读取操作从存储器阵列的存储器地址映射部分检索检查ECC数据,并且ECC电路检查器可以用检查ECC数据代替为读取操作的存储器数据生成的ECC数据。存储器的存储器映射部分可以包含预计算的或其他预定的值,这些值可以用作ECC数据和存储器数据中的一个或两个,其在数学上验证ECC逻辑电路的功能。
图6是存储器ECC电路检查器340的示例的功能框图。ECC电路检查器340与ECC编码电路232、ECC解码电路234和存储器230接口。存储器可以是eFLASH存储器(例如,图3的FLASH存储器装置304的)或SRAM存储器(例如图3的SRAM存储器装置306)。
图6的框图示出了操作ECC数据和存储器数据以验证存储器装置的ECC电路的多种方法。ECC电路检查器340可以包括用于存储ECC检查数据的数据存储寄存器654。ECC检查数据可以由制造商设置或编程,或者可以由用户编程。ECC电路检查器340可以包括多路复用器电路656,以在将存储在存储器230中的实际ECC数据提供给ECC解码电路或替换来自数据存储寄存器654的ECC检查数据之间进行选择。多路复用器电路656还可以用于用存储在数据存储寄存器654中的模拟存储器数据来替换来自存储器230的存储器数据。替换的ECC数据或存储器数据可以提供预定的ECC错误,以查看ECC解码是否检测到并可能纠正错误,或者数据可以模拟ECC编码电路232中的故障,以查看问题是否被ECC电路检测到。
可替换地或附加地,对于数据存储寄存器,ECC电路检查器340可以包括位翻转逻辑电路658、660。位翻转逻辑电路658可以翻转存储在数据存储寄存器654中的ECC数据的至少一位以生成检查ECC数据,并将生成的检查ECC数据提供给ECC解码电路,而不是用于存储器数据的ECC数据。如果数据存储寄存器654存储存储器数据,则位翻转逻辑电路658可以翻转存储在数据存储寄存器654中的存储器数据的至少一位。位翻转逻辑电路660可以翻转存储在存储器230中的ECC数据的至少一位以生成检查ECC数据。位翻转逻辑电路660还可以翻转存储在存储器230中的存储器数据的至少一位。经改变的ECC数据和经改变的存储器数据中的一个或两者被提供给ECC解码电路234以验证ECC解码电路234的操作。
在一些示例中,ECC电路检查器340包括数据生成逻辑电路662。数据生成逻辑电路662可以生成ECC检查数据和模拟存储器数据中的一个或两个作为检查数据。所生成的数据可以用于验证ECC解码电路234。在一些示例中,位翻转逻辑电路658可以用于翻转由数据生成逻辑电路662生成的数据的至少一个位。
在一些示例中,ECC电路检查器340可以包括存储器映射寄存器664。存储器映射寄存器664提供不同的方式以使ECC电路检查器340破坏ECC数据或存储器数据。例如,将地址写入寄存器“byte_addr[n:0]”会导致ECC电路检查器340中断该地址处的数据。寄存器“bit_sel[2:0]”、“bit_sel[7:0]”和“byte rep[7:0]“可用于指定数据。写入寄存器“rand_addr[n:0]”会中断随机地址,每次访问时数据都在“rand_byte[7:0]”中。寄存器“addr_map_1berr[n:0]”和“addr_map_2berr[n[0]”可用于指定要中断的地址范围。
在一些示例中,ECC电路检查器340包括ECC错误检测检查(ECC_E/D+CHK)模块666。ECC_E/D+CHK模块666可以包括用于执行所描述的功能的逻辑电路。在某些示例中,ECC_E/D+CHK模块666可以包括用于执行所描述的功能的处理器(例如,微处理器)。ECC_E/D+CHK模块666可以通过从存储器数据再生ECC码并比较传入ECC码和再生的ECC码的奇偶性来验证ECC编码电路232的操作。ECC电路检查器340可以在奇偶检查不匹配时生成警报。在一些示例中,ECC_E/D+CHK模块666可以通过对ECC编码电路232生成的ECC码进行解码并检查ECC解码电路234的解码结果来验证存储器装置的ECC电路的操作。如果ECC解码结果不相同,则ECC电路检查器340可以生成警报。
在一些示例中,ECC电路检查器340响应于来自诸如主机装置之类的单独装置的命令而被激活。例如,主机装置包括用于启动ECC电路的操作的验证的软件或固件。在一些示例中,分离装置使用写入操作来写入数据存储寄存器654或存储器映射寄存器664,以验证ECC电路的操作。在一些示例中,ECC电路检查器340重复地启动ECC电路的验证。ECC电路检查器340可以包括有限状态机(FSM)668。FSM 668包括逻辑电路以循环地执行ECC检查操作,例如通过使用数据存储寄存器654、存储器映射寄存器664、位翻转逻辑电路658和ECC_E/D+CHK模块666中的一个或多个。FSM 668可以被设计为根据时间表或者当已经执行了预定数量的存储器操作时启动ECC检查操作。
应当注意,ECC电路检查器340可能导致ECC验证操作中的预期错误。如果出现预期错误,则ECC电路检查器340可以不返回状态,或者ECC电路检查器340将错误状态返回到主机装置。如果错误是从ECC电路的验证中预期的,则主机装置可以什么也不做。如果在预期出现错误时没有返回错误,则主机装置可以生成警报或记录事件。
ECC电路检查器340可以执行自检以验证其自身的操作。在一些示例中,ECC电路检查器340包括自检(self-chk)模块670,自检模块670将测试数据672馈送到ECC_E/D+chk模块666以验证ECC_E/D+chk模块666的正确操作。测试数据672可以被写入一个或多个寄存器(例如,由用户),或者可以被硬编码(例如,在制造时)。
图7是计算系统700的另一示例的框图。计算系统700包括FLASH存储器装置704和SRAM存储器装置706。存储器装置与图3的示例的存储器装置的不同之处在于,FLASH和SRAM存储器装置包括总线ECC电路774,其使用ECC来检测在第一总线108和第二总线120上传输的数据中的错误。ECC总线电路将ECC数据添加到装置放置在总线上的数据和地址中的一个或两个,并且解码ECC数据以检测装置经由总线接收的数据和寻址中的一个中或两个中的错误。在一些示例中,数据分组经由总线在装置之间进行通信,并且ECC数据被附加到分组的有效载荷。
计算系统700还包括外围装置DMA装置710、通信装置712、ADC 714、DAC 716、GPIO装置718和桥接装置722。外围装置与图3的外围装置的不同之处还在于外围装置包括总线ECC电路774。主机装置702还包括总线ECC电路774,用于检测经由总线通信的信息中的错误。对于需要高安全级别的系统,可能希望验证计算系统700的存储器装置和外围装置的总线ECC电路的操作。
计算系统700包括外围装置,该外围装置是总线ECC电路检查器776。图7的示例示出了连接到两条总线中的每一条的总线ECC电路检查器776,但是计算系统700可以在总线中的任一条上仅包括一个总线ECC电路验证器。总线ECC电路检查器776是在总线上强制错误并将一个或多个其他装置对强制总线错误的响应与预期响应(例如,预期错误响应)进行比较的子系统。总线ECC电路检查器776可以作为目标外围装置操作,该目标外围装置响应于来自计算机系统的其他装置的读取和写入请求以检查这些装置的总线ECC电路774。可替换地或附加地,总线ECC电路检查器776可以作为启动器外围装置操作,该启动器外围装置向其他装置发起读取和写入请求以检查这些装置的总线ECC电路774。
图8是总线ECC电路检查器876的示例的功能框图。总线ECC电路检查器876可以用作图7中的总线ECC电路验证器776。总线ECC电路检查器876被示为连接到较高带宽总线108,但是总线ECC电路验证器876可以连接到较低带宽总线120。总线ECC电路检查器876是目标外围装置。总线ECC电路检查器876包括数据存储寄存器854,数据存储寄存器可以被写入计算系统700的其他装置和从计算系统700中读取。数据存储寄存器854具有可由计算机系统的装置访问的地址或地址范围。
总线ECC电路检查器876包括启动对写入请求的响应的逻辑电路。逻辑电路可以被包括在FSM 868中或者被包括在ECC_E/D+CHK模块866中。响应于写入请求,总线ECC电路检查器876断言该请求的错误状态878,例如,如果写入请求的ECC数据指示包括在响应中的写入数据和写入地址中的一个或两个中的错误,则会产生错误状态。错误状态可以在随机选择的写入请求上随机返回。在变型中,总线ECC电路检查器876可以破坏输入的写入数据或ECC数据以迫使错误。
ECC_E/D+CHK模块866可以验证写入请求的ECC数据是正确的,无论是否返回错误。在一些示例中,总线ECC电路检查器876包括ECC解码电路以解码在写入请求中接收的ECC数据,并且ECC_E/D+CHK模块866使用解码的ECC数据来检查写入请求中的错误。在一些示例中,总线ECC电路检查器876包括ECC编码电路832。总线ECC电路检查器876在写入数据和写入地址中的一个或两个上生成其自己的ECC数据,并将生成的ECC数据与接收的ECC数据进行比较(例如,通过比较两组ECC数据的奇偶性)。检测到的错误可以由总线ECC电路检查器876记录。
总线ECC电路检查器876的逻辑电路也启动对读取请求的响应。读取请求是针对存储在数据存储寄存器854中的数据的。总线ECC电路检查器876在对读取请求的响应中强制产生错误。在一些示例中,ECC编码电路832将ECC数据添加到对读取请求的响应。总线ECC电路检查器876可以包括位翻转逻辑电路858,用于翻转读取数据和ECC数据中的一个或两个中的位以强制ECC错误。在一些示例中,总线ECC电路检查器876包括输出用于读取请求响应的读取数据的数据生成逻辑电路862。
总线ECC电路检查器876可以包括一个或多个自检模块870,自检模块870将测试数据872馈送到ECC_E/D+CHK模块866和ECC编码电路832中的一个或两个以验证ECC_E/D+CHK模块866的正确操作和ECC编码电路832。测试数据872可以被写入一个或多个寄存器中,或者可以被硬编码。在一些示例中,总线ECC电路检查器876包括存储器映射寄存器864。存储器映射寄存器864提供不同的方式来指定要破坏的数据的地址。例如,“byte-addr[n:0]”寄存器可以用于指定要损坏的特定地址。“rand_-addr[n:0]”寄存器可用于随机选择一个地址以破坏每次访问。“tgt_addr_start[n:0]”和“tgt_ddr_end[n:0]“寄存器可用于指定要损坏的地址范围。
图9是总线ECC电路检查器976的另一示例的功能框图。总线ECC电路检查器976可以用作图7中的总线ECC电路验证器776。总线ECC电路检查器976作为启动器外围装置操作,该启动器外围装置向计算系统的其他装置发起读取和写入请求以检查这些装置的总线ECC电路774。总线ECC电路检查器976包括启动对计算系统700的主机装置、存储器装置或外围装置中的任何一个的写请求的逻辑电路。逻辑电路可以被包括在FSM 968中或者被包括在ECC_E/D+CHK模块966中。
写入请求包括写入地址、写入数据和ECC数据。用于请求的写入数据和写入地址中的一个或两个可以存储在数据存储寄存器954中,或者用于写入请求的写数据可以使用数据生成逻辑电路962来生成。总线ECC电路检查器976可以包括ECC编码电路932以生成用于写入请求的ECC数据。总线ECC电路检查器976迫使写入数据、写入地址和ECC数据中的一个或多个发生错误。总线ECC电路检查器976可以包括位翻转逻辑电路958,用于翻转写入数据、写入地址和ECC数据中的至少一个的位以强制执行错误。
总线ECC电路检查器976将写入请求的返回状态与期望的返回状态进行比较。例如,如果总线ECC电路检查器976迫使写入请求中出现错误,则总线错误电路将返回的状态与预期的错误状态进行比较。错误状态可以包括错误信息,例如错误的位数、包含错误的字节等。
总线ECC电路检查器976的逻辑电路还启动向计算系统700的主机装置、存储器装置或外围装置中的任何一个发送读取请求。总线ECC电路检查器976包括ECC解码电路,该ECC解码电路检查在读取请求中接收的ECC数据的错误。总线ECC电路检查器976可以根据编程到总线ECC电路验证器976中的时间表,向预定装置重复发送读取请求。在一些示例中,读取请求是针对先前由总线ECC电路检查器976使用写入请求写入到单独装置的数据。ECC_E/D+CHK模块966可以将读取的数据与包含在数据存储寄存器954中的数据进行比较。
ECC_E/D+CHK模块966可以存储由ECC编码电路932生成的ECC奇偶检查位,并且可以在奇偶检查不匹配时生成警报。总线ECC电路检查器976可以包括一个或多个自检模块972,其将测试数据970馈送到ECC_E/D+CHK模块966和ECC编码电路932中的一个或两个,以验证ECC_E/D+CHK模块966和ECC编码电路932的正确操作。测试数据970可以被写入一个或多个寄存器中,或者可以被硬编码。
在一些示例中,ECC电路检查器340可以包括存储器映射寄存器964。寄存器“tgt_addr”和“tgt_burstcnt[n:0]”可以由用户写入,以创建由总线ECC电路检查器976执行的目标总线访问命令。寄存器“tgt_wr1rd0”可用于将该命令指定为写入或读取,或者该命令可自动执行写入,然后由总线ECC电路检查器976读取。
本文描述了包括ECC以检测和校正存储器操作和总线操作中的错误的几个系统和装置。在变型中,系统和装置包括CRC检测电路以检测存储器操作和总线操作中的错误。使用CRC保护数据无法纠正错误,但CRC能够检测到比ECC更多的错误。使用哪种方法可以由计算系统的应用的要求来确定。
图10是通过验证错误检测电路正常工作并且没有错过错误检测(假阴性)或没有检测到无效错误(假阳性)来验证计算系统的错误检测电路的方法1000的示例的流程图。该计算系统包括至少一个主机装置、一个或多个存储器装置以及一个或更多个外围装置。计算系统可以是分布式的,并且装置可以通过在一个或多个通信总线上发送数据分组来进行通信。该系统的装置包括总线错误检测电路,用于检测通过一条或多条总线通信的信息中的错误。错误检测可以使用ECC或CRC。至少一个外围装置包括总线检测总线错误检测电路检查器。
在方框1005,总线错误检测电路检查器在通信总线上强制执行错误。总线检测总线错误检测电路检查器可以响应于其经由总线接收的通信而强制错误(即,总线检测总线故障检测电路检查器是总线通信目标装置),或者总线检测总线错误检测电路检查器可启动有意包括一个或多个错误的总线通信(即,总线检测总线错误检测电路检查器是总线通信启动器装置)。通过总线通信的写入请求或读取请求可能会导致错误。
在方框1010,总线检测总线错误检测电路检查器将至少一个单独装置对强制执行错误的响应与对错误的预期响应进行比较。例如,总线检测总线错误检测电路检查器可以发送写入请求,该写入请求包括用于检查接收装置的ECC检测电路的操作的数据。总线检测总线错误检测电路检查器确认接收装置发送正确的错误状态作为响应。在另一个例子中,总线检测总线错误检测电路检查器对从另一个装置接收的通信断言错误状态,即使该通信是无错误的。总线检测总线错误检测电路检查器确认发送装置重试通信。
在方框1015,当比较指示另一系统装置的总线错误检测电路中的错误时,总线检测总线错误检测线路检查器生成警报。警报可以是发送到主机装置的消息、断言的错误信号,或者警报可以是检测电路记录的错误发生的条目。
所描述的系统、装置和方法的几个示例提供了用于验证错误检测电路正在工作的技术。这些技术可以用于分布式计算系统的通信基础设施中。系统的测试装置可以在系统的一条或多条总线上发送验证数据包,这些数据包包含验证错误检测电路功能的预计算值。因为验证是以系统上数据通信的速度进行的,所以验证可以非常快,并且可以同时验证系统的多个端点。
附加说明和方面
第一方面(方面1)包括主题(诸如存储器装置),该主题包括:存储器阵列,包括用于存储存储器数据的存储器单元;纠错码(ECC)电路,被配置以产生ECC数据并使用所述ECC数据来检测所述存储器数据中的错误;以及ECC电路检查器。所述ECC电路检查器被配置为用检查ECC数据替换ECC数据;当所述替换的检查ECC数据被应用到所述ECC电路时,将所述ECC线路的输出与预期输出进行比较;和当所述比较指示所述ECC电路中的错误时,生成警报。
在方面2中,方面1的主题可选地包括ECC电路,该ECC电路包括被配置为使用ECC数据检测存储器数据中的错误的ECC解码电路。所述ECC电路检查器被配置为将所述替换的检查ECC数据和所述存储器数据应用于所述ECC解码电路,并且将所述ECC解码电路的输出与所述ECC解码电路的预期输出进行比较。
在方面3中,方面1和2中的一个或两个的主题可选地包括ECC编码电路,该ECC编码电路被配置为生成用于存储器数据的ECC数据。所述ECC电路检查器被配置为将所述检查ECC数据替换为针对所述存储器数据生成的ECC数据,并且响应于读取操作而用所述存储器数据而不是所生成的ECC数据来提供所述检查ECC数据。
在方面4中,方面1-3的一个或任意组合的主题可选地包括ECC电路检查器,被配置为响应于读取操作,从所述存储器阵列的存储器地址映射部分检索所述检查ECC数据,和用检查ECC数据代替为读取操作的存储器数据生成的ECC数据。
在方面5中,方面1-4的一个或任意组合的主题可选地包括ECC电路,该ECC电路包括被配置为使用ECC数据检测存储器数据中的错误的ECC解码电路。ECC电路检查器被配置为翻转ECC数据的至少一位以生成检查ECC数据,并将生成的检查ECC数据提供给ECC解码电路而不是用于存储器数据的ECC数据。
在方面6中,方面1-5的一个或任意组合的主题可选地包括ECC电路,该ECC电路包括被配置为生成存储器数据的ECC数据的ECC编码电路。所述ECC电路检查器被配置为翻转所生成的ECC数据的至少一位以生成所述检查ECC数据。
在方面7中,方面1-6中的一个或任意组合的主题可选地包括ECC电路检查器,该ECC电路检查器包括多路复用器电路,该多路复用器被配置为响应于对存储器装置的读取请求,用检查ECC数据代替读取请求的存储器数据的ECC数据。
在方面8中,方面1-7中的一个或任意组合的主题可选地包括ECC电路检查器,所述ECC电路检查器被配置为响应于从单独装置接收的命令,用所述检查ECC数据代替所述ECC数据。
在方面9中,方面1-8中的一个或任意组合的主题可选地包括:所述ECC电路检查器包括有限状态机,所述有限状态机被配置为用所述检查ECC数据反复替换所述ECC数据,并将所述ECC电路的输出与预期输出进行比较。
在方面10中,方面1-9中的一个或任意组合的主题可选地包括:所述存储器单元包括非易失性存储器单元。
在方面11中,方面1-10中的一个或任意组合的主题可选地包括:所述存储器单元包括静态随机存取存储器(SRAM)单元、静态动态随机存取存储器单元(SDRAM)单元和存储器寄存器单元中的一个或多个。
方面12可以包括主题(例如计算系统外围装置),或者可以可选地与方面1-11的一个或任意组合组合以包括这样的主题,包括:总线接口,所述总线接口被配置为经由所述总线与一个或多个单独装置进行数据通信,其中所述一个或多个单独装置包括纠错码(ECC)电路,被配置为生成ECC数据并使用ECC数据来检测经由总线通信的数据中的数据错误,总线ECC电路检查器,被配置为在所述总线上强制产生错误,并将一个或多个单独装置对强制总线错误的响应与预期响应进行比较,和当所述比较指示所述ECC电路中的错误时,生成警报。
在方面13中,方面12的主题可选地包括:总线ECC电路检查器,被配置为响应于所述外围装置接收到的写入请求,强制执行错误状态。
在方面14中,方面12和13中的一个或两个的主题可选地包括:总线ECC电路检查器,被配置为响应于由所述外围装置接收的读取请求,在放置在所述总线上的读取数据中强制执行错误。
在方面15中,方面12-14中的一个或任意组合的主题可选地包括:所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查在所述写入请求中接收的ECC数据。
在方面16中,方面12-15中的一个或任意组合的主题可选地包括:逻辑电路,被配置以启动经由所述总线向所述一个或一个以上单独装置发送写入请求,和总线ECC电路检查器,被配置为强制执行包括在所述写入请求中的写入数据和写入地址中的一个或两者中的错误,并且将所述写入请求的返回状态与期望的返回状态进行比较。
在方面17中,方面12-16中的一个或任意组合的主题可选地包括:逻辑电路,被配置以启动经由所述总线向所述一个或多个单独装置发送读取请求;和所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查响应于所述读取请求而接收的ECC数据。
在方面18中,方面12-17中的一个或任意组合的主题可选地包括:逻辑电路,被配置为启动经由所述总线向所述一个或多个单独装置中的单独装置发送写入请求,其中所述写入请求包括写入地址和写入数据;和向所述单独装置启动读取请求,其中所述读取请求的读取地址是所述写入请求的写入地址。所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查响应于所述读取请求而返回的ECC数据。
方面19包括主题(或者可以可选地与示例1-18中的一个或任意组合组合以包括这样的主题,包括主机装置、系统总线和存储器装置。存储器装置包括总线接口,存储器阵列,包括用于存储经由所述总线从所述主机装置接收的存储器数据的存储器单元,错误检测电路,被配置以产生错误检测数据并使用所述错误检测数据来检测所述存储器数据中的错误和存储器错误检测电路检查器。存储器错误检测电路检查器被配置为用所述检查错误检测数据代替所述错误检测数据,当所述替换的检查错误检测数据被应用到所述错误检测电路时,将所述错误检测电路的输出与预期输出进行比较,和当所述比较指示所述错误检测电路中的错误时,生成警报。
在方面20中,方面19的主题可选地包括外围装置,包括总线接口,所述总线接口被配置为经由所述总线与所述主机装置和所述存储器装置通信数据。所述主机装置和所述存储器装置还包括总线错误检测电路,用于检测总线错误。述外围装置包括总线错误检测电路检查器,所述总线错误检测线路检查器被配置为在总线上强制执行错误,并将所述主机装置和存储器装置中的一个或两个对强制执行的总线错误的响应与预期响应进行比较;和当所述比较指示所述主机装置和所述存储器装置中的一个或两个的所述总线错误检测电路中的错误时,产生警报。
非限制性方面可以以任何排列或组合进行组合。上述详细描述包括对附图的参考,附图构成详细描述的一部分。附图以图解的方式示出了可以实践本发明的具体实施例。这些实施例在本文中也被称为“实例”。本文件中提及的所有出版物、专利和专利文件通过引用整体并入本文,如同通过引用单独并入一样。如果本文件与通过引用并入的文件之间的用法不一致,则并入的引用中的用法应被视为对本文件的用法的补充;对于不可调和的不一致,以本文档中的用法为准。
在本文件中,术语“一个”或“一种”在专利文件中很常见,包括一个或多个,独立于“至少一个”或“一个或更多”的任何其他实例或用法,除非另有说明,否则“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”。在所附权利要求中,术语“包括”和“其”被用作各自术语“包含”和“其中”的简明英语等价物。此外,在以下权利要求中的术语“包括”和“包含”是开放式的,即系统、装置、物品,包括除了在权利要求中的这样的术语之后列出的那些元素之外的元素的方法或过程仍然被认为落入该权利要求的范围内。此外,在以下权利要求中,术语“第一”、“第二”和“第三”等仅用作标签,并不旨在对其对象施加数字要求。本文描述的方法示例可以是至少部分地由机器或计算机实现的。
上面的描述旨在是说明性的,而不是限制性的。例如,上述实例(或其一个或多个方面)可以彼此组合使用。可以使用其他实施例,例如由本领域普通技术人员在回顾以上描述时使用。提供摘要是为了符合《美国联邦法规》第37卷第1.72(b)条的规定,使读者能够快速确定技术披露的性质。提交本文件时有一项谅解,即本文件不用于解释或限制权利要求的范围或含义。此外,在上述详细描述中,可以将各种特征分组在一起以简化本公开。这不应被解释为意图使无人认领的公开特征对任何权利要求都是必不可少的。相反,本发明的主题可以在于特定公开的实施例的少于所有的特征。因此,以下权利要求在此并入详细说明书,其中每个权利要求独立地作为单独的实施例。本发明的范围应参考所附权利要求以及这些权利要求所享有的等同物的全部范围来确定。
Claims (20)
1.一种存储器装置,包括:
存储器阵列,包括用于存储存储器数据的存储器单元;
纠错码(ECC)电路,被配置以产生ECC数据并使用所述ECC数据来检测所述存储器数据中的错误;和
ECC电路检查器,所述ECC电路检查器被配置为:
用检查ECC数据替换ECC数据;
当所述替换的检查ECC数据被应用到所述ECC电路时,将所述ECC线路的输出与预期输出进行比较;和
当所述比较指示所述ECC电路中的错误时,生成警报。
2.根据权利要求1所述的存储器装置,
其中所述ECC电路包括ECC解码电路,所述ECC解码电路被配置为使用所述ECC数据来检测所述存储器数据中的错误;和
其中所述ECC电路检查器被配置为将所述替换的检查ECC数据和所述存储器数据应用于所述ECC解码电路,并且将所述ECC解码电路的输出与所述ECC解码电路的预期输出进行比较。
3.根据权利要求1所述的存储器装置,
其中所述ECC电路包括ECC编码电路,所述ECC编码电路被配置为生成用于所述存储器数据的ECC数据;和
其中所述ECC电路检查器被配置为将所述检查ECC数据替换为针对所述存储器数据生成的ECC数据,并且响应于读取操作而用所述存储器数据而不是所生成的ECC数据来提供所述检查ECC数据。
4.根据权利要求1所述的存储器装置,其中所述ECC电路检查器被配置为:
响应于读取操作,从所述存储器阵列的存储器地址映射部分检索所述检查ECC数据;和
用检查ECC数据代替为读取操作的存储器数据生成的ECC数据。
5.根据权利要求1所述的存储器装置,
其中所述ECC电路包括ECC解码电路,所述ECC解码电路被配置为使用所述ECC数据来检测所述存储器数据中的错误;和
其中ECC电路检查器被配置为翻转ECC数据的至少一位以生成所述检查ECC数据,并将生成的检查ECC数据提供给ECC解码电路而不是用于存储器数据的ECC数据。
6.根据权利要求1所述的存储器装置,
其中所述ECC电路包括ECC编码电路,所述ECC编码电路被配置为生成用于所述存储器数据的ECC数据;和
其中所述ECC电路检查器被配置为翻转所生成的ECC数据的至少一位以生成所述检查ECC数据。
7.根据权利要求1所述的存储器装置,其中所述ECC电路检查器包括复用器电路,所述复用器电路被配置为响应于对所述存储器装置的读取请求,用检查ECC数据代替所述读取请求的存储器数据的ECC数据。
8.根据权利要求1所述的存储器装置,其中所述ECC电路检查器被配置为响应于从单独装置接收的命令,用所述检查ECC数据代替所述ECC数据。
9.根据权利要求1所述的存储器装置,其中所述ECC电路检查器包括有限状态机,所述有限状态机被配置为用所述检查ECC数据反复替换所述ECC数据,并将所述ECC电路的输出与预期输出进行比较。
10.根据权利要求1所述的存储器装置,其中所述存储器单元包括非易失性存储器单元。
11.根据权利要求1所述的存储器装置,其中所述存储器单元包括静态随机存取存储器(SRAM)单元、静态动态随机存取存储器单元(SDRAM)单元和存储器寄存器单元中的一个或多个。
12.一种用于连接到计算系统的总线的计算系统外围装置,该外围装置包括:
总线接口,所述总线接口被配置为经由所述总线与一个或多个单独装置进行数据通信,其中所述一个或多个单独装置包括纠错码(ECC)电路,被配置为生成ECC数据并使用ECC数据来检测经由总线通信的数据中的数据错误;和
总线ECC电路检查器,被配置为:
在所述总线上强制产生错误,并将一个或多个单独装置对强制总线错误的响应与预期响应进行比较;和
当所述比较指示所述ECC电路中的错误时,生成警报。
13.根据权利要求12所述的外围装置,其中所述总线ECC电路检查器被配置为响应于所述外围装置接收到的写入请求,强制执行错误状态。
14.根据权利要求12所述的外围装置,其中所述总线ECC电路检查器被配置为响应于由所述外围装置接收的读取请求,在放置在所述总线上的读取数据中强制执行错误。
15.根据权利要求12所述的外围装置,其中所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查在所述写入请求中接收的ECC数据。
16.根据权利要求12所述的外围装置,包括:
逻辑电路,被配置以启动经由所述总线向所述一个或一个以上单独装置发送写入请求;和
其中所述总线ECC电路检查器被配置为强制执行包括在所述写入请求中的写入数据和写入地址中的一个或两者中的错误,并且将所述写入请求的返回状态与期望的返回状态进行比较。
17.根据权利要求12所述的外围装置,包括:
逻辑电路,被配置以启动经由所述总线向所述一个或多个单独装置发送读取请求;和
其中所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查响应于所述读取请求而接收的ECC数据。
18.根据权利要求12所述的外围装置,包括:
逻辑电路,被配置为:
启动经由所述总线向所述一个或多个单独装置中的单独装置发送写入请求,其中所述写入请求包括写入地址和写入数据;和
向所述单独装置启动读取请求,其中所述读取请求的读取地址是所述写入请求的写入地址;
其中所述总线ECC电路检查器包括ECC解码电路,所述ECC解码电路被配置为检查响应于所述读取请求而返回的ECC数据。
19.一种计算系统,包括:
主机装置;
系统总线;和
存储器装置,包括:
总线接口;
存储器阵列,包括用于存储经由所述总线从所述主机装置接收的存储器数据的存储器单元;
错误检测电路,被配置以产生错误检测数据并使用所述错误检测数据来检测所述存储器数据中的错误;和
存储器错误检测电路检查器,被配置为:
用所述检查错误检测数据代替所述错误检测数据;
当所述替换的检查错误检测数据被应用到所述错误检测电路时,将所述错误检测电路的输出与预期输出进行比较;和
当所述比较指示所述错误检测电路中的错误时,生成警报。
20.根据权利要求19所述的计算系统,包括:
外围装置,包括总线接口,所述总线接口被配置为经由所述总线与所述主机装置和所述存储器装置通信数据;
其中所述主机装置和所述存储器装置还包括总线错误检测电路,用于检测总线错误;和
其中所述外围装置包括总线错误检测电路检查器,所述总线错误检测线路检查器被配置为:
在总线上强制执行错误,并将所述主机装置和存储器装置中的一个或两个对强制执行的总线错误的响应与预期响应进行比较;和
当所述比较指示所述主机装置和所述存储器装置中的一个或两个的所述总线错误检测电路中的错误时,产生警报。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/726,123 US11940872B2 (en) | 2022-04-21 | 2022-04-21 | Error correction code validation |
US17/726,123 | 2022-04-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116935940A true CN116935940A (zh) | 2023-10-24 |
Family
ID=86052207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310424219.3A Pending CN116935940A (zh) | 2022-04-21 | 2023-04-20 | 纠错码验证 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11940872B2 (zh) |
EP (1) | EP4266178A1 (zh) |
CN (1) | CN116935940A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11940872B2 (en) | 2022-04-21 | 2024-03-26 | Analog Devices International Unlimited Company | Error correction code validation |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5502732A (en) * | 1993-09-20 | 1996-03-26 | International Business Machines Corporation | Method for testing ECC logic |
US5691994A (en) | 1995-05-08 | 1997-11-25 | Western Digital Corporation | Disk drive with fast error correction validation |
US5991911A (en) | 1997-11-14 | 1999-11-23 | Cirrus Logic, Inc. | Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device |
US6052815A (en) | 1997-11-14 | 2000-04-18 | Cirrus Logic, Inc. | ECC system for generating a CRC syndrome over randomized data in a computer storage device |
JP2002517060A (ja) | 1998-05-27 | 2002-06-11 | クロジック コーポレーション | エラー比較システム |
US6092231A (en) | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US6223309B1 (en) | 1998-10-02 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for ECC logic test |
US20040225944A1 (en) | 2003-05-09 | 2004-11-11 | Brueggen Christopher M. | Systems and methods for processing an error correction code word for storage in memory components |
US7149947B1 (en) | 2003-09-04 | 2006-12-12 | Emc Corporation | Method of and system for validating an error correction code and parity information associated with a data word |
US7203890B1 (en) | 2004-06-16 | 2007-04-10 | Azul Systems, Inc. | Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits |
US8301938B2 (en) | 2005-03-21 | 2012-10-30 | Hewlett-Packard Development Company, L.P. | Managing memory health |
US7984359B2 (en) | 2006-05-01 | 2011-07-19 | Seagate Technology, Llc | Correction of data errors in a memory buffer |
US7647539B2 (en) | 2007-07-18 | 2010-01-12 | International Business Machines Corporation | System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation |
US8621137B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
KR20110050404A (ko) * | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US8468417B2 (en) | 2009-02-18 | 2013-06-18 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
KR20110073932A (ko) | 2009-12-24 | 2011-06-30 | 주식회사 하이닉스반도체 | Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8914687B2 (en) * | 2011-04-15 | 2014-12-16 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ECC logic en embedded memory |
US9009562B2 (en) * | 2013-01-30 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Providing memory protection using a modified error correction code |
US9654251B1 (en) | 2015-12-03 | 2017-05-16 | Qualcomm Incorporated | Joint crosstalk-avoidance and error-correction coding for parallel data busses |
US10108512B2 (en) * | 2016-04-01 | 2018-10-23 | Intel Corporation | Validation of memory on-die error correction code |
US10042700B2 (en) | 2016-05-28 | 2018-08-07 | Advanced Micro Devices, Inc. | Integral post package repair |
US10389379B2 (en) | 2017-05-12 | 2019-08-20 | Qualcomm Incorporated | Error correcting code testing |
DE102018122826A1 (de) | 2017-09-21 | 2019-03-21 | Samsung Electronics Co., Ltd. | Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür |
US20190114220A1 (en) | 2017-10-12 | 2019-04-18 | Cnex Labs, Inc. | Method and apparatus for enhancing data integrity using dual error detection and repair protection for ssd |
US10625752B2 (en) | 2017-12-12 | 2020-04-21 | Qualcomm Incorporated | System and method for online functional testing for error-correcting code function |
CN108665940B (zh) | 2018-05-14 | 2020-09-04 | 联芸科技(杭州)有限公司 | Ecc编码电路、解码电路以及存储器控制器 |
US10706950B1 (en) | 2018-06-19 | 2020-07-07 | Cadence Design Systems, Inc. | Testing for memory error correction code logic |
US11061767B2 (en) | 2019-01-09 | 2021-07-13 | Synopsys, Inc. | Post-ECC CRC for DDR CRC retry performance improvement |
US11069421B1 (en) * | 2020-06-16 | 2021-07-20 | Nxp Usa, Inc. | Circuitry for checking operation of error correction code (ECC) circuitry |
US11573853B2 (en) * | 2021-03-31 | 2023-02-07 | Advanced Micro Devices, Inc. | Error checking data used in offloaded operations |
US11940872B2 (en) | 2022-04-21 | 2024-03-26 | Analog Devices International Unlimited Company | Error correction code validation |
-
2022
- 2022-04-21 US US17/726,123 patent/US11940872B2/en active Active
-
2023
- 2023-04-17 EP EP23168346.7A patent/EP4266178A1/en active Pending
- 2023-04-20 CN CN202310424219.3A patent/CN116935940A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11940872B2 (en) | 2022-04-21 | 2024-03-26 | Analog Devices International Unlimited Company | Error correction code validation |
Also Published As
Publication number | Publication date |
---|---|
US11940872B2 (en) | 2024-03-26 |
US20230342242A1 (en) | 2023-10-26 |
EP4266178A1 (en) | 2023-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152249B2 (en) | Data memory device and controller with interface error detection and handling logic | |
CN110914807B (zh) | 事务标识同步 | |
US6044483A (en) | Error propagation operating mode for error correcting code retrofit apparatus | |
US4964130A (en) | System for determining status of errors in a memory subsystem | |
CN107943609B (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
US4964129A (en) | Memory controller with error logging | |
KR101536853B1 (ko) | 데이터 무결성을 제공하기 위한 방법 및 장치 | |
US6397357B1 (en) | Method of testing detection and correction capabilities of ECC memory controller | |
CN111130689B (zh) | 传送数据和数据校验字段的系统和方法 | |
US10884848B2 (en) | Memory device, memory system including the same and operation method of the memory system | |
US7587658B1 (en) | ECC encoding for uncorrectable errors | |
EP0381885B1 (en) | Method for identifying bad data | |
US20010056564A1 (en) | Technique for correcting single-bit errors and detecting paired double-bit errors | |
EP3483732B1 (en) | Redundant storage of error correction code (ecc) checkbits for validating proper operation of a static random access memory (sram) | |
US20120239996A1 (en) | Memory controller, information processing apparatus and method of controlling memory controller | |
EP1984822A2 (en) | Memory transaction replay mechanism | |
US20160364289A1 (en) | End-to-End Error Detection and Correction | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
EP4266178A1 (en) | Error correction code validation | |
US11768731B2 (en) | System and method for transparent register data error detection and correction via a communication bus | |
CN112068985A (zh) | 带编程指令识别的norflash存储器ecc检纠错方法及系统 | |
US11775387B2 (en) | Cyclic redundancy check (CRC) retry for memory systems in compute express link (CXL) devices | |
CN116483614A (zh) | 用于计算快速链路(cxl)装置中的存储器系统的循环冗余校验(crc)重试 | |
KR20230131028A (ko) | 에러정정동작을 수행하는 메모리컨트롤러 및 메모리시스템 | |
KR20230131029A (ko) | 반도체장치 및 반도체시스템 |
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 |