CN115019862A - 静态随机存取存储器的纠错电路的验证方法 - Google Patents

静态随机存取存储器的纠错电路的验证方法 Download PDF

Info

Publication number
CN115019862A
CN115019862A CN202110241055.1A CN202110241055A CN115019862A CN 115019862 A CN115019862 A CN 115019862A CN 202110241055 A CN202110241055 A CN 202110241055A CN 115019862 A CN115019862 A CN 115019862A
Authority
CN
China
Prior art keywords
data
buried
error
target area
bit
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
Application number
CN202110241055.1A
Other languages
English (en)
Inventor
杨志强
蔡佳佳
陈彬
邱栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202110241055.1A priority Critical patent/CN115019862A/zh
Priority to TW110109638A priority patent/TWI750061B/zh
Priority to US17/336,818 priority patent/US11579969B2/en
Publication of CN115019862A publication Critical patent/CN115019862A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2215Detection 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种静态随机存取存储器的纠错(ECC)电路的验证方法包括将原始数据通过纠错编码程序以输出第一数据;依据埋错遮罩获得第二数据;将第一数据与第二数据进行位运算,得到第三数据;将第三数据写入至静态存储器中的测试目标区以成为第四数据;从测试目标区读取第四数据;将第四数据输入纠错译码程序以输出第五数据及错误信息;根据第五数据、原始数据、错误信息与第二数据,获得验证结果。

Description

静态随机存取存储器的纠错电路的验证方法
技术领域
一种验证数据的处理方法与电子装置,特别涉及一种SRAM的纠错电路(ECC)验证方法。
背景技术
随着集成电路制程的快速发展,集成电路可以在相同单位面积中容纳更多的电子组件。静态随机存取存储器(Static Random-Access Memory,SRAM)也是相同的。高容量的SRAM在单位面积中具有更多数量的储存组件,也就是储存组件的密度更高,当写入某一储存组件时,其相邻储存组件易受到该写入的电力或磁力的影响,使得该相邻储存组件所储存的数据易发生错误。
一般而言,SRAM中发生位错误可以通过一错误检查和纠正(Error Checking andCorrecting,ECC)机制进行数据的校验。由于SRAM的储存组件密度增加,也连带的位错误的机率变高,这也使得ECC机制的正常运作显得更重要。
发明内容
有鉴于此,依据一些实施例,本发明提供一种验证SRAM与ECC错误的处理方法,用于验证SRAM中是否存在位错误的位置与ECC电路是否正确运作。
在一些实施例中,验证SRAM与ECC错误的处理方法包括以下步骤将原始数据通过纠错编码程序以输出第一数据;将原始数据通过纠错编码程序以输出第一数据;依据埋错遮罩获得第二数据;将第一数据与第二数据进行位运算,得到第三数据;将第三数据写入至静态存储器中的测试目标区以成为第四数据;从测试目标区读取第四数据;将第四数据输入纠错译码程序以输出第五数据及错误信息;根据第五数据、原始数据、错误信息与第二数据,获得验证结果。通过此实施例可以指定SRAM中的特定区域或所有区域的位错误检查,并且确认ECC电路的纠正功能是否正常运行。
在一些实施例中,将原始数据通过纠错编码程序以输出第一数据的步骤包括:将具有原始位长度的原始数据调制为具有运算位长度的第一数据。
在一些实施例中,依据埋错遮罩获得第二数据的步骤包括:依据运算位长度设定埋错遮罩的位长度;在埋错遮罩中选择至少一埋错位;将错误数据写入至少一埋错位以获得第二数据。
在一些实施例中,依据埋错遮罩获得第二数据的步骤还包括:重复在埋错遮罩中选择其他位作为至少一埋错位,直至埋错遮罩的特定位均曾被选择。
在一些实施例中,重复在埋错遮罩中选择其他位作为至少一埋错位的步骤包括:随机选取埋错遮罩中未曾被选过的其他位来获得新的至少一埋错位。
在一些实施例中,将第三数据写入静态存储器中的测试目标区以成为第四数据的步骤包括:从测试目标区中选择地址区段,地址区段的位长度相同于第三数据的位长度;将第三数据写入地址区段以成为第四数据。
在一些实施例中,将第三数据写入静态存储器中的测试目标区以成为第四数据的步骤包括:获得静态存储器的起始地址与结束地址;将起始地址至结束地址做为测试目标区,测试目标区的位长度大于或等于第三数据的位长度。
在一些实施例中,将第三数据写入静态存储器中的测试目标区以成为第四数据的步骤还包括:从测试目标区中选择地址区段,地址区段的位长度相同于第三数据的位长度;将第三数据写入地址区段以成为第四数据。
在一些实施例中,将第三数据写入地址区段以成为第四数据的步骤包括:重复在测试目标区中选择其他位置的另一地址区段,直至测试目标区的特定地址均曾被选择。
在一些实施例中,重复在测试目标区中选择其他位置的另一地址区段的步骤包括:以地址区段为起点并偏移第二递增距离来获得另一地址区段。
在一些实施例中,重复在测试目标区中选择其他位置的另一地址区段的步骤包括:随机选取测试目标区中未曾被选过的其他地址来获得另一地址区段。。
在一些实施例中,位运算选自互斥运算或异互斥运算。
依据一些实施例,静态随机存取存储器纠错电路的验证方法可对指定区域或所有区域进行位错误的检查,也对ECC电路的纠错电路是否正确运作也进行相应的确认。在一些实施例中,本验证方法可以同步或批次检查,相对于传统的分时检查而言,本方法可以节省检查时间与节约设置硬件成本。
附图说明
为让本申请的上述和其他目的、特征、优点与实施例能够更明显易懂,所附附图的说明如下:
图1为本发明的一实施例的系统架构示意图;
图2A为一实施例静态随机存取存储器的纠错电路的验证方法流程示意图;
图2B为一实施例的各数据的生成示意图;
图3为一实施例的埋错遮罩与埋错位的示意图;
图4为一实施例的获得第二数据的流程示意图;
图5A为一实施例的选择埋错位的运作流程示意图;
图5B为一实施例的不同设置回合的单一埋错位与位移处理的示意图;
图5C为一实施例的不同设置回合的多个埋错位与位移处理的示意图;
图5D为一实施例的选择新位置的埋错比特流程示意图;
图6A为一实施例的选择测试目标区的流程示意图;
图6B为一实施例的测试目标区与起始地址的示意图;
图6C为一实施例的选择测试目标区的流程示意图;
图7A为一实施例的选择地址区段流程示意图;
图7B为一实施例的不同运作回合的地址区段的示意图;
图8A为一实施例的运作回合与设置回合的地址区段与埋错位的示意图;
图8B为一实施例的运作回合与另一设置回合的地址区段与埋错位的示意图;
图8C为一实施例的运作回合与另一设置回合的地址区段与埋错位的示意图;
图8D为一实施例的另一运作回合与设置回合的地址区段与埋错位的示意图;
图8E为一实施例的另一运作回合与另一设置回合的地址区段与埋错位的示意图;
图8F为一实施例的另一运作回合与另一设置回合的地址区段与埋错位的示意图。
具体实施方式
在本文中所使用的用词“耦接”也可指“电性耦接”,且用词“连接”也可指“电性连接”。“耦接”及“连接”也可指二个或多个组件相互配合或相互互动。
请参考图1所示,其为本发明的一实施例的系统架构示意图。此实施例的静态随机存取存储器100包括存储单元110、纠错码电路120(Error Checking and Correcting,以下简称ECC电路120)与检查电路130。静态随机存取存储器100(或存储单元110)除了可以由外部设备进行验证外,也可以由静态随机存取存储器100自身进行验证。存储单元110为单一存储器颗粒或多个存储器颗粒的集合的总称。存储单元110的储存空间是根据存储器颗粒的数量所决定。存储单元110具有一存储器空间111(memory space)。在存储器空间111中包括一测试目标区112,测试目标区112用于被检验所属的存储单元110中是否存在位错误。测试目标区112的选定方式将于后文另述。
ECC电路120耦接于存储单元110。ECC电路120用以接收一原始数据并输出第一数据。一般而言,ECC算法可大致分为分组码(block code)和卷积码(convolution code)的纠错算法。分组码的ECC算法包括格雷码(Gray code)、BCH码(Bose–Chaudhuri–Hocquenghemcodes),多维奇偶校验码(Multidimensional parity-check code)和汉明码(hammingcode)等,但不以此为限。卷积码包括维特比算法(Viterbi algorithm)。ECC电路120可选用分组码或卷积码的ECC纠错算法。ECC电路120可用以执行纠错编码程序与纠错译码程序。所述的纠错编码程序与纠错译码程序除了可选自前述的ECC算法,也可以选用其他能实现检测错误与纠正错误的算法。纠错编码程序121与纠错译码程序122两者一般采用相同的ECC纠错算法。
检查电路130耦接于存储单元110与ECC电路120。当静态随机存取存储器100于测试模式下,检查电路130可以对存储单元110进行位错误的验证以及ECC电路120运作的验证。检查电路130可根据原始数据对存储单元110与ECC电路120进行相关验证的处理,请配合图2A与图2B阅读,其分别为根据一实施例的SRAM纠错电路的验证方法流程示意图与验证方法流程中的各数据生成的示意图。SRAM纠错电路的验证方法的流程包括以下步骤:
步骤S210:将原始数据通过纠错编码程序以输出第一数据;
步骤S220:依据埋错遮罩,获得第二数据;
步骤S230:将第一数据与第二数据进行位运算,得到第三数据;
步骤S240:将第三数据写入至存储单元中的测试目标区;
步骤S250:从测试目标区读取第四数据;
步骤S260:将第四数据通过纠错译码程序用以输出第五数据及错误信息;以及
步骤S270:根据第五数据、原始数据、错误信息与第二数据,获得验证结果。
首先,检查电路130判断静态随机存取存储器100是否处于测试模式。若静态随机存取存储器100处于测试模式,检查电路130将生成一原始数据。检查电路130可以通过随机演算的方式产生一组原始数据。所述随机算法的种类可以是但不限定为蒙特卡罗方法(Monte Carlo method)、线性同余法(linear congruential generator,LCG)或平方取中法(Middle-square method)等。一般而言,原始数据的位长度可以不设限,但至少大于两位。检查电路130将原始数据发送至ECC电路120,使ECC电路120可将原始数据输入纠错编码程序121,以输出第一数据,请配合图2B所示。
第一数据的位长度为运算位长度。一般而言,运算位长度可以等同于原始数据的原始位长度。但在一些实施例中,ECC电路120可以根据纠错编码程序121的需求将原始数据进行长度的调制。纠错编码程序121会将原始数据的原始位长度调制为第一数据的运算位长度。在图2B中,虚线文字框代表目标物输入后所执行的动作/程序。
举例来说,若原始数据的原始位长度为8位,且其内容为“1010 1010”。当原始数据被输入纠错编码程序121后,纠错编码程序121可输出13位长度(即运算位长度)的第一数据“01011 1010 1010”。
接着,检查电路130依据埋错遮罩113(mask)获得第二数据。埋错遮罩113的长度对应于运算位长度,请配合图3所示。以前段中所述的运算位长度为例,埋错遮罩113对应于13位的长度。图3所示的埋错遮罩113是由“0”、“1”所组成,其中“0”表示不写入数据的位位置,“1”代表可写入数据的位位置,又称为埋错位114。埋错位114的数量大于或等于一个。图3中是以灰色虚线框标示埋错位114。检查电路130可以将任一数据与埋错遮罩113进行位运算,藉以得到第二数据。或者,检查电路130可以将一个错误数据写入埋错位114后,直接将修改过的埋错遮罩113视为第二数据。或可将多个错误数据各别写入至对应的埋错位,使修改过的埋错遮罩113视为第二数据。在这种情况下,检查电路130另记录埋错位114位于第二数据中的位置。
一般而言,埋错遮罩113可以包括至少一个埋错位114,且多个埋错位114可不必然相邻。在此实施例中先以ECC电路120的单一次检查作为说明。在其他实施例中,在不同检查回合中,可以调整埋错位114的位置,而多回合的动作方式将于后文另述。
检查电路130将第一数据与第二数据进行位运算(bit operation),得到第三数据。在一些实施例中,所述位运算选自互斥或运算(Exclusive-OR,简称XOR)。以前例延续说明,若第一数据为“01011 1010 1010”、第二数据为“00000 0000 0001”。检查电路130将第一数据与第二数据进行XOR运算得到的第三数据为“01011 1010 1011”。检查电路130将第三数据写入存储单元110的测试目标区112中。为区分写入测试目标区112前后的数据,第三数据被写入测试目标区112后称为第四数据,请配合图2B所示。
检查电路130读取测试目标区112的第四数据。检查电路130驱动ECC电路120对第四数据进行纠错译码程序122,用于输出第五数据与错误信息。其中,错误信息包括“单位错误”与“多位错误”。检查电路130根据第五数据、原始数据、错误信息与第二数据,获得验证结果。验证结果除了记录ECC电路120的运作是否正常,验证结果更可包括ECC纠错结果与位计错结果。检查电路130可以根据第五数据与原始数据得到ECC纠错结果。检查电路130根据错误信息与第二数据得到位计错结果。
前例中的埋错遮罩113为“00000 0000 0001”,因此检查电路130将会于埋错位114的位置写入错误数据,藉以产生第二数据“00000 0000 0001”。若写入测试目标区112的第三数据为“01011 1010 1011”,从测试目标区112读取出的第四数据为“01011 1010 1011”。ECC电路120对第四数据进行纠错译码程序122,并得到第五数据“1010 1010”与错误信息(例如,单位错误或多位错误)。在一些实施例中,单位错误的信息和多位错误的信息可藉由下列方式表示:(1)以独立的2个位来表示,其中的1位用以表示单位错误信息,例如以此位的值为0表示无单位错误,以1表示有单位错误;另外的1位用以表示多位错误,例如以此位的值为0表示无多位错误,以1表示有多位错误。或者(2)以关联的2个位来表示,例如以此两位的值为00表示无位错误,以01表示有单位错误,以11表示有多位错误,但不以此为限。
检查电路130比对第五数据与原始数据,并得到ECC纠错结果。若第五数据与原始数据相同,则ECC纠错结果为“纠错正确”,表示ECC电路120用以校正位的功能正常。检查电路130比对第二数据与错误信息,得到位计错结果。由于埋错遮罩113中仅加入一个错误数据,因此检查电路130可以检测出至少一个错误。此时若位计错结果为“单位错误”,表示ECC电路120对错误位的检查功能为正常。因此验证结果可记载为“ECC电路120运作正常”。而且测试目标区112中的其他位置的位也都可正常存取。
此外,若位计错结果为“单位错误”且第五数据与原始数据相异,表示ECC电路120发生异常。检查电路130将输出“ECC电路120运作异常”的验证结果。
若是位计错结果为“多位错误”时,则代表ECC电路120运作异常或测试目标区112中存在其他的位错误(因为埋错遮罩113仅加入一个错误数据)。因此在“多位错误”的情况下,无论第五数据与原始数据是否相同,检查电路130都会输出“ECC电路120运作异常”的验证结果。
在一些实施例中,检查电路130可以根据埋错遮罩113的位长度与设置回合调整埋错位114的位置。请配合图4,其为根据一些实施例的获得第二数据的流程示意图,其的流程更包括以下步骤:
步骤S221:依据运算位长度设定埋错遮罩的位长度;
步骤S222:在埋错遮罩中选择至少一埋错位;
步骤S223:将错误数据写入至少一埋错位,获得第二数据;以及
步骤S224:重复在埋错遮罩中选择其他位作为至少一埋错位,直至埋错遮罩的特定位均曾被选择。
首先,检查电路130根据第一数据的运算位长度决定埋错遮罩113的位长度,使得第一数据与埋错遮罩113的位长度一致。换言的,第一数据与第二数据的位长度也是一致。检查电路130在埋错遮罩113中选择至少一个位长度的埋错位114。因此将每一次设置埋错位114称为一个设置回合。每一次设置回合过后,检查电路130可以生成一组新的第二数据。换言的,检查电路130根据设置回合的次数可以生成相应数量的第二数据。
举例来说,若埋错遮罩113为13位长度,检查电路130选择1个位为埋错位114。因此,检查电路130将执行13回合的埋错位114的设置,并得到13组的第二数据(包括前述图3实施例中的第二数据)。检查电路130根据所得到的该些第二数据,进而产生相应的第三数据。
在一些实施例中,检查电路130可以通过以下方式选择埋错位114以获得第二数据,请参考图5A所示。图5A为根据一实施例的选择埋错位的运作流程示意图,其包括以下步骤:
步骤S511:选择埋错位的位移方向;
步骤S512:检查电路以至少一埋错位为起点并偏移第一递增距离,获得新的至少一埋错位;以及
步骤S513:重复埋错位的偏移,直至埋错遮罩中的特定位置皆至少作为一次埋错位为止。
检查电路130选择埋错位114的位移方向,位移方向可包括左位移(left shift)或右位移(right shift)。当设置回合结束后,检查电路130将已当前的埋错位114为起点,并移动第一递增距离。而移动第一递增距离后所得到的位位置,即是新的埋错位114的位置。检查电路130于次一设置回合时,检查电路130将会以新的埋错位114进行前述验证。基本上,第一递增距离的最小移动距离为1个位。
请参考图5B所示,其为一实施例的不同设置回合的单一埋错位与位移处理的示意图。若埋错位114的数量为1个,且第一递增距离为1位,位移方向为右位移(以黑色箭头表示)。在图5B上方为设置回合(X)时的埋错遮罩113与埋错位114的位置,在图5B下方为设置回合(X+1)时的埋错遮罩113与埋错位114的位置,其中X表示回合数。当前述的埋错遮罩中的特定位置为埋错遮罩113中的所有位置时,检查电路130将会重复埋错位114的右位移,直至埋错位114移位遍历(traversal)过埋错遮罩113中所有位为止(即埋错遮罩113中的所有位皆至少作为一次埋错位114)。若埋错位114在偏移过程中抵达埋错遮罩113的边界(例如第13位右侧边界)时,埋错位114会由埋错遮罩113的另一侧边界(例如第1位左侧边界)移入埋错遮罩113中,使得埋错位114在埋错遮罩113中形成循环的移动。
同理,对于埋错位114的左位移也是相同的处理,则不再赘述。在一些实施例中,对于多个埋错位114而言,位移的方式为不重复位位置为原则。换言的,设置回合(Y)与设置回合(Y+1)的埋错位114可完全不重复位置,请参考图5C所示,其中Y表示为设置回合的回合数。检查电路130除了可以将埋错遮罩113本身作为第二数据,也可以将埋错遮罩113与其他数据异互斥运算后得到第二数据。为能方便说明,下文直接将埋错遮罩113视为第二数据。
在一些实施例中,检查电路130也可以通过以下方式选择新的埋错位114的位置以获得第二数据,请参考图5D所示。根据一些实施例选择新位置的埋错位114的流程包括以下步骤:
步骤S521:检查电路随机选取埋错遮罩中未曾被选过的其他位来获得新的至少一埋错位;以及
步骤S522:重复埋错位的随机选取,直至埋错遮罩中的特定位置皆至少作为一次埋错位为止。
检查电路130通过随机选取的算法,从埋错遮罩113中选取埋错位114。检查电路130从埋错遮罩113中未曾作为埋错位114的位中随机选取出。检查电路130可以于设置回合结束时,检查电路130从剩余的位中随机抽取任一位为埋错位114的新位置。当次一设置回合开始时,检查电路130将以新的埋错位114进行验证。当前述的埋错遮罩113中的特定位置为埋错遮罩113中的所有位置时,检查电路130会记录每一设置回合所设置的埋错位114与位置,直至埋错遮罩113中的所有位皆至少作为一次埋错位114为止。检查电路130也可以于新的设置回合初始时,检查电路130从剩余的位中以随机选取新的埋错位114。
在一些实施例中,检查电路130可以通过以下方式选择存储单元110中的测试目标区112。请参考图6A与图6B所示,分别为根据一实施例选择测试目标区的流程示意图与测试目标区与起始地址的示意图。根据一实施例选择测试目标区112的流程包括以下步骤:
步骤S611:从存储单元中选择存储器地址;以及
步骤S612:以存储器地址为测试目标区的起始地址,测试目标区的位长度相同于第三数据的位长度。
检查电路130在存储单元110中以随机选取的方式选择任一存储器地址,并根据埋错遮罩113的位长度与所选存储器地址得到测试目标区112。在图6B中以深灰色区块为测试目标区112,箭头表示测试目标区112的存储器地址的起始地址。检查电路130对测试目标区112进行ECC电路120与相关的验证处理。举例来说,埋错遮罩113若为13位长度。当检查电路130选择存储器位置“0X0010F000”时,则测试目标区112的范围则为“0X0010F000”~“0X0010F00D”。
在一些实施例中,检查电路130可以选择不同范围的测试目标区112。请参考图6C,其为此一实施例的选择测试目标区的流程示意图。根据一实施例选择测试目标区112的流程包括以下步骤:
步骤S621:检查电路获得存储单元的起始地址与结束地址;以及
步骤S622:根据起始地址至结束地址的空间设定为测试目标区。
检查电路130从存储单元110中选取起始地址与结束地址,并将起始地址与结束地址之间的存储器区段视为测试目标区112。而测试目标区112的长度取决于埋错遮罩113的位长度。换言的,测试目标区112的长度大于埋错遮罩113的位长度。检查电路130可将测试目标区112设定为受测存储单元110的全部存储器空间111。
在一些实施例中,第三数据被写入的测试目标区112当中的位置。在检查电路130决定测试目标区112的范围后,检查电路130在测试目标区112选择一地址区段115。地址区段115的位长度等同于运算位长度(亦同第三数据的长度)。检查电路130将第三数据写入所选出的地址区段115中,使第三数据以成为第四数据。
在一些实施例中,检查电路130在不同运作回合中可以选择不同位置的地址区段115。所述的运作回合为检查电路130验证每一个地址区段115的过程。检查电路130在另一运作回合中,检查电路130会从测试目标区112中选择另一位置的地址区段115。检查电路130会重复在测试目标区112中选择其他位置的另一地址区段115,直至写入过测试目标区112的特定位置(例如,所有位置)为止。
在一些实施例中,检查电路130可以通过以下的方式从测试目标区112中选择地址区段115,请配合图7A。图7A为一实施例的选择地址区段流程示意图。根据一实施例选择地址区段115的流程包括以下步骤:
步骤S711:选择地址区段的位移方向;以及
步骤S712:以地址区段为起点并偏移第二递增距离来获得另一地址区段;以及
步骤S713:重复在测试目标区中选择其他位置的另一地址区段,直至写入过测试目标区的特定位置为止。
检查电路130选择地址区段115的位移方向,位移方向包括左位移或右位移。在运作回合结束前,检查电路130会以当前的地址区段115为起点,并根据位移方向偏移第二递增距离,用于获得另一地址区段115。第二递增距离是根据地址区段115的位长度所决定,以使前、后回合的地址区段115不会重迭。在次一运作回合开始时,检查电路130根据新的地址区段115进行新一运作回合的写入处理。
请参考图7B所示,在图7B上方为运作回合(Y),图7B下方为运作回合(Y+1),用于表示前后的运作回合。测试目标区112是以左上至右下的斜线区块,地址区段115是以右上至左下的斜线区块,黑色实心箭头方向表示位移方向。若检查电路130选择左位移,且第二递增距离为1个运算位长度。在运作回合(Y+1)中,检查电路130将地址区段115往左移动,如图7B中的白色箭头所示。检查电路130重复地址区段115位移的处理,直至遍历过测试目标区112的所有位置为止。
在一些实施例中,检查电路130以随机选取的方式选出新的地址区段115。基本上,检查电路130从测试目标区112且未曾被选过的存储器位置中选出新的地址区段115。于每一次运作回合后,检查电路130都会记录已选过的地址区段115。检查电路130重复地址区段115随机选取,直至遍历过测试目标区112的所有位置为止。
检查电路130可以通过不同的运作回合与设置回合形成巢状循环(Nested loop)的方式,检查电路130可以对测试目标区112与地址区段115进行各位的验证。请参考图8A~图8F所示,在图8A~图8F中为SRAM的存储器空间111,测试目标区112是以左上至右下的斜线区块为例,地址区段115是以右上至左下的斜线区块为例,而网纹区块为埋错位114。一般而言,地址区段115所写入的数值是第三数据,而非埋错遮罩113本身,但为能清楚说明运作顺序,在此将包括埋错位114的埋错遮罩113的数值作为第三数据的示例来解释。
在图8A上方表格记录检查电路130的运作回合(A)与设置回合(B)的当前回合数。为清楚表示各运作回合与设置回合的运作以下定义Ax为运作回合且x为运作回合的回合数,By为设置回合且y为设置回合的回合数。以图8A为例,检查电路130对运作回合(A1)与设置回合(B1)进行检查。并且为简化说明,下文中所述及的回合(Ax,By)亦即表示对应运作回合与设置回合的总称。
在设置回合(B1)中,埋错位114的初始位置为地址区段115的低位区(littleendian),且两埋错位114之间间隔一位。而图8A中的黑色箭头表示埋错位114的左偏移方向,且第一递增距离为1位。意即埋错位114由低位区往高位区(big endian)移动。检查电路130于设置回合(B1)中,输出该回合(A1,B1)对应的验证结果。
图8B为设置回合(B2)时,埋错位114为于地址区段115中的新位置。检查电路130于设置回合(B2)中,输出该回合(A1,B2)对应的验证结果。检查电路130于地址区段115中重复埋错位114的偏移与设置,并得到每一设置回合(By)的验证结果。假设设置回合By的回合总量为m,运作回合Ay的回合总量为n。图8C的检查电路130经过m次的设置回合后,埋错位114将会遍历于地址区段115中所有位置。
图8D与图8E分别为地址区段115于运作回合(A2)中不同埋错位114的位置示意图。在回合(A2,B1)中,地址区段115会左偏移一个运算位长度(即前述的第二递增距离),埋错位114会被设置于地址区段115的低位区。在回合(A2,B2)中,埋错位114会被左偏移第一递增距离,如图8E所示。检查电路130重复埋错位114的偏移处理,直至遍历地址区段115中所有位为止,并将地址区段115偏移至次一位置。在回合(A2,Bm)结束后,检查电路130将地址区段115左偏移至下一个位置。
请参考图8F所示,其为在运作回合(An)且设置回合(Bm)的地址区段115与埋错位114的位置示意图。检查电路130于完成运作回合(An)与设置回合(Bm)时,检查电路130可以得到测试目标区112中每一位与ECC电路120的验证结果(其数量为m*n)。因此检查电路130可以根据验证结果确认SRAM的位错误位置与ECC电路120是否能正确运作。
本发明的验证SRAM与ECC错误的处理方法、静态随机存取存储器可以针对静态随机存取存储器的指定区域或所有区域进行位错误的检查,并同时也对ECC电路的纠正是否正确运作也进行相应的确认。由于本发明的验证SRAM与ECC错误的处理方法可以同步且批次检查,相对于传统的分时检查本发明更可以节省检查时间与节约设置硬件成本。
附图标记说明:
100:静态随机存取存储器
110:存储单元
111:存储器空间
112:测试目标区
113:埋错遮罩
114:埋错位
115:地址区段
120:ECC电路
121:纠错编码程序
122:纠错译码程序
130:检查电路
S210~S270:步骤流程
S221~S223:步骤流程
S511~S513:步骤流程
S521~S522:步骤流程
S611~S612:步骤流程
S621~S622:步骤流程
S711~S713:步骤流程。

Claims (10)

1.一种静态随机存取存储器的纠错电路的验证方法,包括:
将一原始数据通过一纠错编码程序以输出一第一数据;
依据一埋错遮罩获得一第二数据;
将所述第一数据与所述第二数据进行一位运算,得到一第三数据;
将所述第三数据写入至一静态存储器中的一测试目标区以成为一第四数据;
从所述测试目标区读取所述第四数据;
将所述第四数据输入一纠错译码程序以输出一第五数据及一错误信息;以及
根据所述第五数据、所述原始数据、所述错误信息与所述第二数据,获得一验证结果。
2.根据权利要求1所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,将所述原始数据通过所述纠错编码程序以输出所述第一数据的步骤包括:将具有一原始位长度的所述原始数据调制为具有一运算位长度的所述第一数据。
3.根据权利要求2所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,依据所述埋错遮罩获得所述第二数据的步骤包括:
依据所述运算位长度设定所述埋错遮罩的一位长度;
在所述埋错遮罩中选择至少一埋错位;以及
将一错误数据写入所述至少一埋错位以获得所述第二数据。
4.根据权利要求3所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,依据所述埋错遮罩获得所述第二数据的步骤还包括:
重复在所述埋错遮罩中选择其他位作为所述至少一埋错位,直至所述埋错遮罩的特定位均曾被选择。
5.根据权利要求4所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,重复在所述埋错遮罩中选择其他位作为所述至少一埋错位的步骤包括:
以所述至少一埋错位为起点并偏移一第一递增距离,获得新的所述至少一埋错位。
6.根据权利要求4所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,重复在所述埋错遮罩中选择其他位作为所述至少一埋错位的步骤包括:随机选取所述埋错遮罩中未曾被选过的其他位来获得新的所述至少一埋错位。
7.根据权利要求3、4、5或6所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,将所述第三数据写入所述静态存储器中的所述测试目标区以成为所述第四数据的步骤包括:
从所述静态存储器中选择一存储器地址;以及
以所述存储器地址为所述测试目标区的一起始地址,所述测试目标区的位长度相同于所述第三数据的位长度。
8.根据权利要求7所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,将所述第三数据写入所述静态存储器中的所述测试目标区以成为所述第四数据的步骤还包括:
从所述测试目标区中选择一地址区段,所述地址区段的位长度相同于所述第三数据的所述位长度;以及
将所述第三数据写入所述地址区段以成为所述第四数据。
9.根据权利要求3、4、5或6所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,将所述第三数据写入所述静态存储器中的所述测试目标区以成为所述第四数据的步骤还包括:
获得所述静态存储器的一起始地址与一结束地址;以及
将所述起始地址至所述结束地址做为所述测试目标区,所述测试目标区的位长度大于或等于所述第三数据的位长度。
10.根据权利要求8所述的静态随机存取存储器的纠错电路的验证方法,其特征在于,将所述第三数据写入所述静态存储器中的所述测试目标区以成为所述第四数据的步骤还包括:
重复在所述测试目标区中选择其他位置的另一地址区段,直至所述测试目标区的特定地址均曾被选择。
CN202110241055.1A 2021-03-04 2021-03-04 静态随机存取存储器的纠错电路的验证方法 Pending CN115019862A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110241055.1A CN115019862A (zh) 2021-03-04 2021-03-04 静态随机存取存储器的纠错电路的验证方法
TW110109638A TWI750061B (zh) 2021-03-04 2021-03-17 靜態隨機存取記憶體之糾錯電路的驗證方法
US17/336,818 US11579969B2 (en) 2021-03-04 2021-06-02 Verifying method for ECC circuit of SRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110241055.1A CN115019862A (zh) 2021-03-04 2021-03-04 静态随机存取存储器的纠错电路的验证方法

Publications (1)

Publication Number Publication Date
CN115019862A true CN115019862A (zh) 2022-09-06

Family

ID=80681171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110241055.1A Pending CN115019862A (zh) 2021-03-04 2021-03-04 静态随机存取存储器的纠错电路的验证方法

Country Status (3)

Country Link
US (1) US11579969B2 (zh)
CN (1) CN115019862A (zh)
TW (1) TWI750061B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240070014A1 (en) * 2022-08-26 2024-02-29 Micron Technology, Inc. Commands for testing error correction in a memory device

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875195A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and apparatus for error injection techniques
US6519718B1 (en) * 2000-02-18 2003-02-11 International Business Machines Corporation Method and apparatus implementing error injection for PCI bridges
US6983414B1 (en) * 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
JP3914839B2 (ja) * 2002-07-11 2007-05-16 エルピーダメモリ株式会社 半導体記憶装置
US7310574B2 (en) * 2002-11-28 2007-12-18 Stmicroelectronics S.R.L. Electronic architecture of an automatic system for driving an internal combustion engine
US7669095B2 (en) * 2006-02-01 2010-02-23 International Business Machines Corporation Methods and apparatus for error injection
US7500170B2 (en) * 2006-08-14 2009-03-03 Motorola, Inc. Method and apparatus for error detection in a data block
JP5214422B2 (ja) * 2008-02-15 2013-06-19 株式会社東芝 データ記憶システム
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US8271932B2 (en) * 2010-06-24 2012-09-18 International Business Machines Corporation Hierarchical error injection for complex RAIM/ECC design
JP2014531681A (ja) * 2011-09-29 2014-11-27 インテル・コーポレーション メモリにエラーを注入する方法および装置
US20160343453A1 (en) * 2013-06-07 2016-11-24 Intel Corporation Method and apparatus for injecting errors into memory
JP2015056061A (ja) * 2013-09-12 2015-03-23 株式会社東芝 擬似故障発生装置
US9384019B2 (en) * 2014-03-25 2016-07-05 International Business Machines Corporation Dynamic code injection
US10248521B2 (en) 2015-04-02 2019-04-02 Microchip Technology Incorporated Run time ECC error injection scheme for hardware validation
US10223197B2 (en) * 2015-08-06 2019-03-05 Nxp B.V. Integrated circuit device and method for applying error correction to SRAM memory
US10140175B2 (en) * 2015-11-20 2018-11-27 Qualcomm Incorporated Protecting an ECC location when transmitting correction data across a memory link
US10388392B2 (en) * 2017-04-08 2019-08-20 Texas Instruments Incorporated Safe execution in place (XIP) from flash memory
US10096354B1 (en) * 2017-09-06 2018-10-09 Ambiq Micro, Inc. SRAM with error correction in retention mode
US10528422B2 (en) * 2017-11-13 2020-01-07 Stmicroelectronics International N.V. Redundant storage of error correction code (ECC) checkbits for validating proper operation of a static random access memory (SRAM)
CN111104246B (zh) 2019-11-25 2023-08-29 深圳忆联信息系统有限公司 提升dram的错误检测与纠错的验证效率的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
TW202236292A (zh) 2022-09-16
US11579969B2 (en) 2023-02-14
US20220283897A1 (en) 2022-09-08
TWI750061B (zh) 2021-12-11

Similar Documents

Publication Publication Date Title
US10521292B2 (en) Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information
US6233717B1 (en) Multi-bit memory device having error check and correction circuit and method for checking and correcting data errors therein
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
KR102154789B1 (ko) 선택적 이진 및 비-이진 디코딩을 이용한 플래시 메모리에서의 검출 및 디코딩
US20130145235A1 (en) Detection and decoding in flash memories with selective binary and non-binary decoding
CN105340022A (zh) 用于校正数据错误的电路、设备及方法
US20170269995A1 (en) Method for decoding bits in a solid state drive, and related solid state drive
KR20220104031A (ko) 오류 정정 시스템
US10514980B2 (en) Encoding method and memory storage apparatus using the same
Ghosh et al. Reducing power consumption in memory ECC checkers
CN115019862A (zh) 静态随机存取存储器的纠错电路的验证方法
CN115705265A (zh) 存储器设备及其操作方法
US20230368860A1 (en) Memory and operation method of memory
US20220368351A1 (en) Memory and operation method of memory
CN110716824A (zh) 编码方法及使用所述编码方法的存储器存储装置
CN110825553A (zh) 针对存储器件的存储系统以及存储系统的操作方法
US8443250B2 (en) Systems and methods for error correction using irregular low density parity check codes
CN106708649B (zh) 解码方法、存储器储存装置及存储器控制电路单元
CN115910183A (zh) 测试方法及测试系统
CN112133362A (zh) 存储器存储装置及其存储器测试方法
CN114765054A (zh) 纠错系统
EP3977622A1 (en) Error detection and correction with integrity checking
US11563450B1 (en) System and method for high reliability fast RAID decoding for NAND flash memories
CN114765055B (zh) 纠错系统
CN113805815B (zh) 一种用于闪存的数据恢复方法、装置及系统

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