CN107068194A - 一种应用在eeprom上的错误纠正编码及相应的eeprom - Google Patents
一种应用在eeprom上的错误纠正编码及相应的eeprom Download PDFInfo
- Publication number
- CN107068194A CN107068194A CN201710261392.0A CN201710261392A CN107068194A CN 107068194 A CN107068194 A CN 107068194A CN 201710261392 A CN201710261392 A CN 201710261392A CN 107068194 A CN107068194 A CN 107068194A
- Authority
- CN
- China
- Prior art keywords
- data
- ecc
- eeprom
- module
- error correction
- 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
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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
一种应用在EEPROM上的错误纠正编码,所述EEPROM包含总线接口模块、时序控制模块、EEPROM存储模块、写数据总线以及读数据总线,所述错误纠正编码包含:ECC编码模块,其位于所述写数据总线上并受所述时序控制模块控制,写入数据时,其预先读取由ECC纠错模块送来的经纠错后的相应存储字的有效数据后,用来自所述写数据总线的写数据更新该相应存储字中的对应有效数据位,并对该更新后的有效数据进行编码得到新的冗余校验数据,更新后的新的存储字存入到所述EEPROM存储模块中;ECC纠错模块,其位于读数据总线上,读出数据时,其根据读取的EEPROM存储模块中相应存储字中的原始有效数据和冗余校验数据对该原始有效数据进行纠正并将纠正后的有效数据传送给用户。
Description
技术领域
本发明涉及编码技术领域,具体涉及一种应用在EEPROM上的能够实现动态开关以及自检功能的错误纠正编码及相应的EEPROM。
背景技术
在EEPROM(Electrically Erasable Programmable Read-Only Memory电可擦可编程只读存储器)存储器阵列的任意一个EEPROM存储单元随着编程次数的增加,存在与编程次数对应的损坏的概率;在一定的制造工艺下,该损坏概率的曲线保持一定,很难增加。
但是在EEPROM的部分应用场合下,对数据可靠性要求很高,并期望在更多的EEPROM的编程次数的情况下,依然保持EERPOM存储器芯片可以使用。这个期望的可靠性往往超过EEPROM存储模块在当前制造工艺下损坏概率。因此,市场上需要更高可靠性的EEPROM存储器芯片,并原意为此能够接受成本的一定程度提高。
发明内容
本发明的目的在于提供一种应用在EEPROM上的错误纠正编码及相应的EEPROM,实现在数据写入读出的过程中对数据的错误纠正,并以能够接受的冗余存储器的成本,大大提高EEPROM芯片的可靠性;并且在用户层面不需要增加接口协议,在出厂测试层面提供所有EEPROM阵列的测试功能和ECC错误纠正编码的测试功能;通过包含丰富的自检功能的ECC(Error Correction Code错误纠正编码)算法,完成单独对ECC编码模块以及ECC解码模块进行测试;支持手动关闭整个ECC纠错编码功能,将EEPROM上的冗余位交由用户控制;用户在此基础上,除了可以实现自己的纠错编码算法,以达到更高的纠错性能外,还可以在不包含纠错编码算法的情况下,增加芯片用户可控制的总存储容量。
为了达到上述目的,本发明通过以下技术方案实现:
一种应用在EEPROM上的错误纠正编码,所述EEPROM包含总线接口模块、时序控制模块以及EEPROM存储模块,所述的EEPROM存储模块通过总线接口模块与用户进行通信,总线接口模块分别通过写数据总线以及读数据总线与EEPROM存储模块进行数据传输,其特征是,所述的错误纠正编码用于纠正所述EEPROM存储模块的存储字中的任意一位,所述EEPROM存储模块的存储字由有效数据和冗余校验数据构成,所述的错误纠正编码包含:
ECC编码模块,其位于所述写数据总线上并受所述时序控制模块控制,写入数据时,其预先读取由ECC纠错模块送来的经纠错后的相应存储字的有效数据后,用来自所述写数据总线的写数据更新该相应存储字中的对应有效数据位,并对该更新后的有效数据进行编码得到新的冗余校验数据,将更新后的新存储字存入到所述EEPROM存储模块中;
ECC纠错模块,其位于读数据总线上,读出数据时,其根据读取的EEPROM存储模块中相应存储字中的原始有效数据和冗余校验数据对该原始有效数据进行纠正并将纠正后的有效数据传送给用户。
上述的应用在EEPROM上的错误纠正编码,其中,还包含:
ECC编码使能,设置在写数据总线上,并位于ECC编码模块与EEPROM存储模块之间;
ECC纠错使能,设置在读数据总线上,并位于ECC纠错模块与总线接口模块之间;
所述ECC编码使能和ECC纠错使能可各自由用户通过所述总线接口模块进行打开与关闭;
当ECC编码使能和ECC纠错使能均关闭时,用户通过总线接口模块直接读取和编程EEPROM存储模块;
当ECC编码使能和ECC纠错使能均打开时,ECC编码模块和ECC纠错模块处于常规编码纠错工作状态。
上述的应用在EEPROM上的错误纠正编码,其中:
所述的错误纠正编码还包含:
自检模块,当编码使能打开、纠错使能关闭时,通过该自检模块定位ECC编码模块或ECC纠错模块的问题;
所述的纠错模块还包含:
快速自检单元,用于将原始数据由所述写数据总线送入EEC编码模块后直接送到ECC纠错模块中以获得纠错结果,并将该纠错结果和该原始数据进行对比,以判断EEC编码模块与ECC纠错模块的整体配合运行是否正常。
上述的应用在EEPROM上的错误纠正编码,其中:
所述读数据总线是38位宽度;
所述写数据总线是38位宽度;
所述EEPROM存储模块包含:写缓冲区寄存器以及存储器阵列,时序控制模块分别控制该存储器阵列以及写缓冲区寄存器;
其中,所述存储器阵列包含622592个基本存储单元,分成512页,且每页分成32个存储字;每个存储字由38位构成;每个存储字的38位中32位是所述的有效数据,6位是所述的冗余校验数据;所述写缓冲区寄存器由1216个锁存器组成。
上述的应用在EEPROM上的错误纠正编码,其中:
所述总线接口模块通过IIC或SPI总线与用户进行通信。
上述的应用在EEPROM上的错误纠正编码,其中:
所述的ECC编码模块包含数据缓冲器以及ECC编码逻辑;
所述数据缓冲器用于在所述时序控制模块的写缓冲器时序控制信号有效时,预先读取由ECC纠错模块送来的经纠错后的相应存储字中的有效数据,并将来自所述写数据总线的写数据更新到该经纠错后的有效数据中的对应位以得到更新后的有效数据;
所述ECC编码逻辑用于对从数据缓冲器中输出的更新后的有效数据进行编码得到新的冗余校验数据;新的有效数据与新的冗余校验数据共同组成新的存储字后更新到所述EEPROM存储模块中。
上述的应用在EEPROM上的错误纠正编码,其中,所述的ECC纠错模块包含:
校正逻辑,用于根据从EEPROM存储模块中读出的原始存储字中的原始有效数据和原始冗余校正数据进行校正,得到校正数据;
译码逻辑,用于对校正数据进行译码后获得校正后的存储字;
纠错逻辑,用于将原始存储字中的有效数据和冗余校验数据与校正后的存储字中的校正后有效数据和校正后冗余校验数据进行纠错找到对应的出错位并纠正,得到纠正后的存储字。
上述的应用在EEPROM上的错误纠正编码,其中:
所述的ECC编码模块以及ECC纠错模块均为组合逻辑实现。
一种具有编码纠错功能的EEPROM,其特征是:包含所述的错误纠正编码。
本发明与现有技术相比具有以下优点:
1.引入ECC功能,集成在EEPROM存储器芯片上;使用当前EEPROM存储模块的制造工艺,采用存储单元分组,并且每组包含有效存储和冗余存储,构成一组存储字,使得整个EEPROM存储器阵列由存储字构成;当某组存储字内有存储单元损坏,只要损坏的存储单元不超过ECC能够纠错的位数时,ECC能够正确判断错误并纠正出现错误的位;这样,引入ECC功能后,虽然存储单元的损坏概率没有改变,但以存储字为一组单位的数据出现损坏的概率远低于存储单元的损坏概率,从而提供了整个EEPROM芯片的可靠性;
2.对于市场能够接受的38位存储字的EEPROM存储芯片,能够实现检查并纠正一位错误的存储单元,达到成本与可靠性较为合适的折中,实现在成本有限增加的条件下提高EEPROM存储芯片较优的可靠性;
3.对于有纠错性能要求的用户,实现在适当增加冗余存储单元的基础上,手动关闭ECC纠错编码使能,开放冗余位的编程功能,以满足用户需求。
附图说明
图1为本发明的实施例中一应用了错误纠正编码的EEPROM的芯片结构示意图;
图2为本发明的实施例中EEPROM存储模块的结构示意图;
图3为本发明的实施例中ECC编码模块的结构示意图;
图4为本发明的实施例中ECC编码模块中ECC编码逻辑的结构示意图;
图5为本发明的实施例中ECC纠错模块的结构示意图;
图6为本发明的实施例中ECC纠错模块中校正逻辑的结构示意图;
图7为本发明的实施例中使用的参考校验矩阵;
图8为本发明的实施例中ECC编码逻辑中使用的生成矩阵;
图9为本发明的实施例中校正逻辑中使用的校正矩阵;
图10为本发明的实施例中纠错逻辑和译码逻辑所使用的纠错译码的查找表;
图11为本发明的实施例中增加了虚拟列向量的生成矩阵;
图12为本发明的实施例中增加了虚拟列向量的校正矩阵;
图13为本发明的实施例中增加了虚拟查找行的纠错逻辑和译码逻辑所使用的纠错译码的查找表。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
本发明提出了一种应用在EEPROM上的错误纠正编码(ECC: Error CorrectionCode),所述的错误纠正编码用于纠正所述EEPROM存储模块的存储字中的任意一位。所述EEPROM包含总线接口模块100、时序控制模块200以及EEPROM存储模块300,所述的EEPROM存储模块300通过总线接口模块100与用户进行通信,总线接口模块100分别通过写数据总线230以及读数据总线240与EEPROM存储模块300进行数据传输;如图2所示,所述EEPROM存储模块具体包含:写缓冲区寄存器302以及存储器阵列301,时序控制模块200分别控制该存储器阵列301以及写缓冲区寄存器302;所述的时序控制模块200通常由读EEPROM阵列信号发生器、写缓冲器的预读EEPROM阵列信号发生器、写缓冲器的信号发生器、EEPROM阵列的编程信号发生器构成,该时序控制模块200通过字地址总线210将字地址送给存储器阵列301以及写缓冲区寄存器302,时序控制模块200还用于将写缓冲区控制信号220送给存储器阵列301以及写缓冲区寄存器302,以及将读控制信号221、编程控制信号组222送给EEPROM存储模块300。
使用当前EEPROM存储单元的制造工艺,采用存储单元分组,并且每组包含有效存储和冗余存储,构成一组存储字,使得整个EEPROM存储阵列由存储字构成。当某组存储字内有存储单元损坏,只要损坏的存储单元不超过ECC能够纠错的位数时,ECC能够正确判断错误并纠正出现错误的位。这样,引入ECC功能后,虽然存储单元的损坏概率没有改变,但以存储字为一组单位的数据出现损坏的概率远低于存储单元的损坏概率,从而可以提供整个EEPROM芯片的可靠性。
基于上述,如图1所示,本发明中,所述EEPROM存储模块中存储器阵列301的存储字由有效数据和冗余校验数据构成;所述的错误纠正编码包含:
ECC编码模块410,其位于所述写数据总线230上并受所述时序控制模块200控制,写入数据时,其预先读取由ECC纠错模块420送来的经纠错后的相应存储字的有效数据后,用来自所述写数据总线230的写数据更新该相应存储字中的对应有效数据位,并对该更新后的有效数据进行编码得到新的冗余校验数据,将更新后的新存储字存入到所述EEPROM存储模块300中;
ECC纠错模块420,其位于读数据总线240上,读出数据时,其根据读取的EEPROM存储模块300中相应存储字中的原始有效数据和冗余校验数据对该原始有效数据进行纠正并将纠正后的有效数据传送给用户。
错误纠正编码分为读过程中的对最多一位故障位的纠错和写缓冲器过程中的产生冗余编码。纠错和编码的核心是向量与矩阵的模二乘法运算。该模二乘法运算在ASIC设计中简化为多级异或门的组合逻辑,具体将在后文中进行进一步实现方案的说明。
为了进一步满足用户在存储器测试、纠错能力等方面的要求,可外加可配置的纠错编码开关,具体的所述EEPROM上的错误纠正编码还包含:ECC编码使能440,设置在写数据总线230上,并位于ECC编码模块410与EEPROM存储模块300之间;ECC纠错使能430,设置在读数据总线240上,并位于ECC纠错模块420与总线接口模块100之间;所述ECC编码使能440和ECC纠错使能430可各自由用户通过所述总线接口模块100进行打开与关闭;当ECC编码使能440和ECC纠错使能430均关闭时,用户通过总线接口模块100直接读取和编程EEPROM存储模块300;当ECC编码使能440和ECC纠错使能430均打开时,ECC编码模块410和ECC纠错模块420处于常规编码纠错工作状态。
在本发明的一实施例中,所述的错误纠正编码还包含:自检模块,当编码使能440打开、纠错使能430关闭时,通过该自检模块定位ECC编码模块410或ECC纠错模块420的问题。所述的纠错模块420还包含:快速自检单元,用于将原始数据由所述写数据总线230送入EEC编码模块410后直接送到ECC纠错模块420中以获得纠错结果,并将该纠错结果和该原始数据进行对比,以判断EEC编码模块410与ECC纠错模块420的整体配合运行是否正常。
由于纠正错误位数越多则要求更多的增加冗余存储单元;存储字的分组越小意味着组内可靠性越高,但同样有效数据容量的芯片也意味着冗余存储单元越多。需要综合考虑成本与可靠性,希望成本增加有限但可靠性提高的较优。对于市场能够接受的EEPROM存储芯片,一般选择每32位有效存储单元增加6位冗余存储单元,实现一组38位的存储字中,能够检查并纠正一位错误的存储单元,达到成本与可靠性较为合适的折中,而对于有纠错性能要求的用户,也可以在适当增加冗余存储单元的基础上,手动关闭ECC纠错编码使能,开放冗余位的编程功能,以满足用户需求。为了实现以可接受的冗余存储器成本,达到大大提高EERPOM可靠性的目标,较佳的,本发明的一实施例中,所述读数据总线240是38位宽度;所述写数据总线230是38位宽度;其中,所述存储器阵列301包含622592个基本存储单元,分成512页,且每页(Page)分成32个存储字;每个存储字由38位构成;每个存储字(Word)的38位中32位是所述的有效数据,6位是所述的冗余校验数据;所述写缓冲区寄存器302由1216个锁存器组成;写缓冲区寄存器302内部包含1216个基本锁存器单元,该1216个基本锁存器单元分成32个字,每字由38个位构成;每次写缓冲区控制信号220有效时更新写缓冲区寄存器230的一个字;每次编程操作时将1216个存储的内容编程到存储器阵列301的一页的1216个存储单元中。基于本发明,EEPROM存储阵列301按38位存储单元构成一组存储字,任意一组存储字的38位中的任意一位出现错误时,错误纠正编码能够发现该位的错误,将该存储字的38位恢复为正确的数据。在读取EEPROM存储阵列时,以字(Word)为单位读取;写EEPROM的页缓冲器时,以字(Word)为单位更新页缓冲器;编程时,以页为单位进行编程,编程的最小单位是页内的字(Word)。
一实施例中,所述的总线接口模块100通过IIC或SPI总线与用户进行通信,在增加ECC功能后,SPI或者IIC用户总线以字节(8位)进行的EERPOM的访问,转换为对EEPROM存储字的访问。对用户使用上无差别,但为了达到最佳的存储器的编程次数,最后让存储字的各位达到编程均衡,建议用户以地址对齐到字、以4字节为单位进行EEPROM的编程操作。在一般的EEPROM读操作过程中,用户可能仅仅需要读出单个字节的数据,假设EEPROM的接口也是单字节8位的接口或者1位的接口,那么EEPROM在读取数据的时候,则需要将用户发送过来的EEPROM地址全部收取完毕之后才能开始从EEPROM中加载出数据,然后通过IIC或者SPI总线传送给用户。针对IIC总线,从收完所有地址到给用户发送数据,中间会有一个ACK周期用于缓冲,而且IIC总线的最高数据率仅仅为1MHz。而对于SPI总线,其最高频率为20MHz,周期50ns,从收完地址到数据发送,只有半个周期,即25ns。如果我们再加入ECC纠错解码模块占用的时间,这个时间还会减少,在这个短的时间内EEPROM想读出正确的数据交给用户是非常困难的。结合所设计的32位数据,起到的好处就是EEPROM可以在收到倒数第二位地址的时候就开始读取数据,然后逻辑会选择用户需要的字节通过总线传送出去,这样,中间就可以多出一个地址周期用于数据的读取,最后一位地址并不影响EEPROM数据的读取,给EEPROM数据读取留出了足够的余量。其次,通过一次读取4个字节的数据,如果用户在连续读取数据的时候,如果是已经从EEPROM中读出过的字节,则不必再读取EEPROM,这个也降低了EEPROM得操作频率。在同一时刻总线接口模块100只能支持一种总线接口,在普通用户使用情况下,IIC或者SPI总线的字节访问与EEPROM的字的32位有效数据的对应;而在内部支持的测试模式下总线的字节8位可以访问到在用户模式不可见的6位冗余数据,即可以访问到EEPROM存储模块300的38位总线。
所述的ECC编码模块以及ECC纠错模块均为组合逻辑实现,仅存在组合逻辑延迟,具体如下:
如图3所示,所述的ECC编码模块410包含数据缓冲器411以及ECC编码逻辑412;具体的,写缓冲器时序控制223将操作为预先读取和数据更新两个阶段;所述数据缓冲器411用于在所述时序控制模块200的写缓冲器时序控制信号223有效时,预先读取由ECC纠错模块420送来的经纠错后的相应存储字38位中的32位有效数据,并将来自所述写数据总线230的8位写数据更新到该经纠错后的32位有效数据中的对应的字节的8位以得到更新后的32位有效数据;在数据更新阶段,所述ECC编码逻辑412用于对从数据缓冲器411中输出的更新后的32位有效数据进行编码得到新的6位冗余校验数据;新的32位有效数据与新的6位冗余校验数据共同组成新的38位存储字后更新到所述EEPROM存储模块300中。在现有技术中,不包含错误纠正编码的存储器中,不需要将EEPROM的数据进行预读取,而是直接将用户需要写入的字节数据写入EEPROM即可。而本发明中,正常的写入流程是用户写入数据,然后进行编码后将编码后的数据和6位冗余校验位一起写入EEPROM。因为数据是按照32位编码,加上6位的ECC冗余校验位,假设在用户只更新1个字节数据的时候,如果不进行预读取,将原来已经写入EEPROM的数据先读取出来,则本次的写数据则可能会覆盖周围的字节(因为一次是写入38位),最终导致不期望出现数据误写。ECC编码逻辑412是根据ECC算法原理的基础上采用VERILOG纯组合逻辑实现,不需要时钟信号的支持,其实施方案将在后文中具体说明。ECC编码逻辑412如图6所示,包含第一模二矩阵乘法逻辑,该第一模二矩阵乘法逻辑的矩阵为第一生成矩阵600如图8所示。
所述的ECC纠错模块420包含:校正逻辑421,用于根据从EEPROM存储模块300中读出的原始存储字中的原始32位有效数据和原始6位冗余校正数据进行校正,得到6位校正数据,校正逻辑421包含第二模二矩阵乘法逻辑,该第二模二矩阵乘法逻辑的第一校正矩阵610如图9所示,第二模二矩阵乘法逻辑是输入带错的38位原始存储字数据与第一校正矩阵610的相乘后对2取模;译码逻辑422,用于对校正数据进行译码后获得校正后的存储字;纠错逻辑423,用于将原始存储字中的32位有效数据和6位冗余校验数据与校正后的存储字中的校正后32位有效数据和校正后6位冗余校验数据进行纠错(做对应位的逻辑异或后)找到对应的出错位并纠正,得到纠正后的存储字。如图10所示,译码逻辑422是根据第一纠错译码查找表620而编写的逻辑,根据这个逻辑,可以将带有1位错误的数据进行纠正,并送出,最后发送给用户。值得注意的是,上述提到的各数据在算法中都以向量称呼。
所述的第一生成矩阵600和第一校正矩阵610,都来源于如图7所示的参考校正矩阵611,参考校正矩阵611的列向量为除全0外的所有的两两不同的二进制向量,二进制向量按1的数目进行组合分为C(6,1)、C(6,2)、C(6,3)、C(6,4)、C(6,5)、C(6,6)这5部分;第一生成矩阵600为选择第一参考校正矩阵611的列向量的C(6,2)的全部、和C(6,3)中删除3组列向量;删除的3组列向量满足生成矩阵600的每行1的总数目相差最多为1;第一校正矩阵610增加第一参考校正矩阵611行向量的C(6,1)的全部、与第一生成矩阵600一起构成6X38的矩阵。
所述的译码查找表620一共39行;首行输入和输出均为0向量表示本次无需纠错;其余38行表示发现并希望纠正对应的错误位;其余38行的数据来源:输出为单位矩阵E(38X38),输入为矩阵S(38X6),S=E(38X38)*H'(6*38),这里*表示矩阵乘法并对2取模,'表示矩阵转置。
如图11~13所示,由于EEPROM的制造工艺,使得出厂时或者擦除时,EEPROM存储单元默认为1;则38位的一组存储字在出厂或擦除时为38'b111111_11111111_11111111_11111111_11111111;本发明的一实施例中,为了让全1的38位EEPROM存储字也被认为是正确的ECC编码,不会出现误纠错,即实现EEPROM出厂时或者擦除时为全1的38位存储字,通过如下方案来实现:将第一生成矩阵600修订为第二生成矩阵700,如图11所示,同时,将第一校正矩阵610修订为第二校正矩阵710,将第一译码查找表620修订为第二译码查找表720,目标是使38位字38'b111111_11111111_11111111_11111111_11111111是ECC编码的字;第二生成矩阵700是在第一生成矩阵600上增加两个虚拟列向量701;第二校正矩阵710是在第一校正矩阵610上增加两个虚拟列向量701;第二译码查找表720在第一译码查找表620后增加两行虚拟查找行721。进一步的,为了优化电路,节省资源,两个虚拟列向量701中第一个列向量为所述的载第一生成矩阵600选择第一参考校正矩阵611时删除的3组列向量中的一个,并且确保另两个删除列向量和为(1 1 1 1 1 1);第二个列向量为如权利要求11所述的C(6,6)向量,即(1 1 1 1 1 1)。实施时,在第一模二矩阵乘法逻辑和第二模二矩阵乘法逻辑中,对两个虚拟列向量701的处理办法是设输入向量增加两个虚拟输入2'b11后再做矩阵乘法;模二矩阵乘法运算优化为纯组合逻辑的异或门运算。在ECC编码逻辑412以及ECC纠错模块420中,在电路实现上由于增加的2位是固定2'b11,表现的结果仅仅是输出6位中有3位取反。并且在ECC纠错模块420中,由于查找表的最后两位始终假设生成ECC编码时输入为2'b11,在ECC纠错时这两位始终假设为2'b11即没有出错,所以始终不会出现使用纠错译码查找表720的最后两个虚拟查找行721的情况。
综上所述,本发明实施例的错误纠正编码实现之后,对EEPROM存储阵列的任意一组存储字的38个存储单元,无论是32位有效数据还是6位ECC冗余数据,只要该存储字的出现不超过1位存储单元的错误,ECC逻辑都能纠正该错误位。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (9)
1.一种应用在EEPROM上的错误纠正编码,所述EEPROM包含总线接口模块、时序控制模块以及EEPROM存储模块,所述的EEPROM存储模块通过总线接口模块与用户进行通信,总线接口模块分别通过写数据总线以及读数据总线与EEPROM存储模块进行数据传输,其特征在于,所述的错误纠正编码用于纠正所述EEPROM存储模块的存储字中的任意一位,所述EEPROM存储模块的存储字由有效数据和冗余校验数据构成,所述的错误纠正编码包含:
ECC编码模块,其位于所述写数据总线上并受所述时序控制模块控制,写入数据时,其预先读取由ECC纠错模块送来的经纠错后的相应存储字的有效数据后,用来自所述写数据总线的写数据更新该相应存储字中的对应有效数据位,并对该更新后的有效数据进行编码得到新的冗余校验数据,将更新后的新存储字存入到所述EEPROM存储模块中;
ECC纠错模块,其位于读数据总线上,读出数据时,其根据读取的EEPROM存储模块中相应存储字中的原始有效数据和冗余校验数据对该原始有效数据进行纠正并将纠正后的有效数据传送给用户。
2.如权利要求1所述的应用在EEPROM上的错误纠正编码,其特征在于,还包含:
ECC编码使能,设置在写数据总线上,并位于ECC编码模块与EEPROM存储模块之间;
ECC纠错使能,设置在读数据总线上,并位于ECC纠错模块与总线接口模块之间;
所述ECC编码使能和ECC纠错使能可各自由用户通过所述总线接口模块进行打开与关闭;
当ECC编码使能和ECC纠错使能均关闭时,用户通过总线接口模块直接读取和编程EEPROM存储模块;
当ECC编码使能和ECC纠错使能均打开时,ECC编码模块和ECC纠错模块处于常规编码纠错工作状态。
3.如权利要求2所述的应用在EEPROM上的错误纠正编码,其特征在于:
所述的错误纠正编码还包含:
自检模块,当编码使能打开、纠错使能关闭时,通过该自检模块定位ECC编码模块或ECC纠错模块的问题;
所述的纠错模块还包含:
快速自检单元,用于将原始数据由所述写数据总线送入EEC编码模块后直接送到ECC纠错模块中以获得纠错结果,并将该纠错结果和该原始数据进行对比,以判断EEC编码模块与ECC纠错模块的整体配合运行是否正常。
4.如权利要求1所述的应用在EEPROM上的错误纠正编码,其特征在于:
所述读数据总线是38位宽度;
所述写数据总线是38位宽度;
所述EEPROM存储模块包含:写缓冲区寄存器以及存储器阵列,时序控制模块分别控制该存储器阵列以及写缓冲区寄存器;
其中,所述存储器阵列包含622592个基本存储单元,分成512页,且每页分成32个存储字;每个存储字由38位构成;每个存储字的38位中32位是所述的有效数据,6位是所述的冗余校验数据;所述写缓冲区寄存器由1216个锁存器组成。
5.如权利要求1所述的应用在EEPROM上的错误纠正编码,其特征在于:
所述总线接口模块通过IIC或SPI总线与用户进行通信。
6.如权利要求1所述的应用在EEPROM上的错误纠正编码,其特征在于:
所述的ECC编码模块包含数据缓冲器以及ECC编码逻辑;
所述数据缓冲器用于在所述时序控制模块的写缓冲器时序控制信号有效时,预先读取由ECC纠错模块送来的经纠错后的相应存储字中的有效数据,并将来自所述写数据总线的写数据更新到该经纠错后的有效数据中的对应位以得到更新后的有效数据;
所述ECC编码逻辑用于对从数据缓冲器中输出的更新后的有效数据进行编码得到新的冗余校验数据;新的有效数据与新的冗余校验数据共同组成新的存储字后更新到所述EEPROM存储模块中。
7.如权利要求6所述的应用在EEPROM上的错误纠正编码,其特征在于,所述的ECC纠错模块包含:
校正逻辑,用于根据从EEPROM存储模块中读出的原始存储字中的原始有效数据和原始冗余校正数据进行校正,得到校正数据;
译码逻辑,用于对校正数据进行译码后获得校正后的存储字;
纠错逻辑,用于将原始存储字中的有效数据和冗余校验数据与校正后的存储字中的校正后有效数据和校正后冗余校验数据进行纠错找到对应的出错位并纠正,得到纠正后的存储字。
8.如权利要求7所述的应用在EEPROM上的错误纠正编码,其特征在于:
所述的ECC编码模块以及ECC纠错模块均为组合逻辑实现。
9.一种具有编码纠错功能的EEPROM,其特征在于:包含如权利要求1~8中任意一项所述的错误纠正编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261392.0A CN107068194A (zh) | 2017-04-20 | 2017-04-20 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261392.0A CN107068194A (zh) | 2017-04-20 | 2017-04-20 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107068194A true CN107068194A (zh) | 2017-08-18 |
Family
ID=59600886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710261392.0A Pending CN107068194A (zh) | 2017-04-20 | 2017-04-20 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107068194A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109665A (zh) * | 2018-01-12 | 2018-06-01 | 成都信息工程大学 | 一种存储器操作方法 |
CN110222006A (zh) * | 2019-05-15 | 2019-09-10 | 杭州电子科技大学 | 基于rram的处理器架构及控制方法 |
CN111326207A (zh) * | 2018-12-17 | 2020-06-23 | Arm 有限公司 | 存储器测试技术 |
CN111323149A (zh) * | 2020-03-13 | 2020-06-23 | 上海申矽凌微电子科技有限公司 | 含纠正otp错误功能的温度传感器装置及otp错误的纠正方法 |
CN111984457A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
CN113076219A (zh) * | 2021-04-27 | 2021-07-06 | 中国人民解放军国防科技大学 | 一种高能效的片上存储器错误检测与纠错电路及实现方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
WO2022041962A1 (zh) * | 2020-08-27 | 2022-03-03 | 长鑫存储技术有限公司 | 数据传输电路和存储器 |
CN114203250A (zh) * | 2021-12-14 | 2022-03-18 | 北京得瑞领新科技有限公司 | 固态存储器的数据存储方法、数据读取方法及固态存储器 |
CN114356647A (zh) * | 2022-03-18 | 2022-04-15 | 天津德科智控股份有限公司 | 一种eps***数据编码及存储方法 |
CN115561622A (zh) * | 2022-10-14 | 2023-01-03 | 安测半导体技术(江苏)有限公司 | 一种芯片测试中写入唯一id的方法及*** |
WO2023202592A1 (zh) * | 2022-04-19 | 2023-10-26 | 华为技术有限公司 | 数据写入方法以及处理*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309421A (ja) * | 1988-03-17 | 1989-12-13 | Fujitsu Ltd | 誤り訂正方式 |
CN103824599A (zh) * | 2012-11-15 | 2014-05-28 | 三星电子株式会社 | 改变存储器装置中的部分数据的存储器控制器及其方法 |
CN104835534A (zh) * | 2014-02-10 | 2015-08-12 | 爱思开海力士有限公司 | 半导体存储装置及其操作方法 |
CN105340022A (zh) * | 2013-06-24 | 2016-02-17 | 美光科技公司 | 用于校正数据错误的电路、设备及方法 |
-
2017
- 2017-04-20 CN CN201710261392.0A patent/CN107068194A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309421A (ja) * | 1988-03-17 | 1989-12-13 | Fujitsu Ltd | 誤り訂正方式 |
CN103824599A (zh) * | 2012-11-15 | 2014-05-28 | 三星电子株式会社 | 改变存储器装置中的部分数据的存储器控制器及其方法 |
CN105340022A (zh) * | 2013-06-24 | 2016-02-17 | 美光科技公司 | 用于校正数据错误的电路、设备及方法 |
CN104835534A (zh) * | 2014-02-10 | 2015-08-12 | 爱思开海力士有限公司 | 半导体存储装置及其操作方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109665A (zh) * | 2018-01-12 | 2018-06-01 | 成都信息工程大学 | 一种存储器操作方法 |
CN111326207A (zh) * | 2018-12-17 | 2020-06-23 | Arm 有限公司 | 存储器测试技术 |
CN110222006A (zh) * | 2019-05-15 | 2019-09-10 | 杭州电子科技大学 | 基于rram的处理器架构及控制方法 |
CN110222006B (zh) * | 2019-05-15 | 2023-10-20 | 杭州电子科技大学 | 基于rram的处理器架构及控制方法 |
CN111984457A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
WO2020233203A1 (zh) * | 2019-05-23 | 2020-11-26 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
US11914895B2 (en) | 2019-05-23 | 2024-02-27 | Huawei Technologies Co. Ltd. | Method for updating stored information and apparatus |
CN111323149A (zh) * | 2020-03-13 | 2020-06-23 | 上海申矽凌微电子科技有限公司 | 含纠正otp错误功能的温度传感器装置及otp错误的纠正方法 |
WO2022041962A1 (zh) * | 2020-08-27 | 2022-03-03 | 长鑫存储技术有限公司 | 数据传输电路和存储器 |
US11687402B2 (en) | 2020-08-27 | 2023-06-27 | Changxin Memory Technologies, Inc. | Data transmission circuit and memory |
CN113076219B (zh) * | 2021-04-27 | 2022-07-12 | 中国人民解放军国防科技大学 | 一种高能效的片上存储器错误检测与纠错电路及实现方法 |
CN113076219A (zh) * | 2021-04-27 | 2021-07-06 | 中国人民解放军国防科技大学 | 一种高能效的片上存储器错误检测与纠错电路及实现方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN114203250A (zh) * | 2021-12-14 | 2022-03-18 | 北京得瑞领新科技有限公司 | 固态存储器的数据存储方法、数据读取方法及固态存储器 |
CN114356647A (zh) * | 2022-03-18 | 2022-04-15 | 天津德科智控股份有限公司 | 一种eps***数据编码及存储方法 |
WO2023202592A1 (zh) * | 2022-04-19 | 2023-10-26 | 华为技术有限公司 | 数据写入方法以及处理*** |
CN115561622A (zh) * | 2022-10-14 | 2023-01-03 | 安测半导体技术(江苏)有限公司 | 一种芯片测试中写入唯一id的方法及*** |
CN115561622B (zh) * | 2022-10-14 | 2023-10-03 | 安测半导体技术(江苏)有限公司 | 一种芯片测试中写入唯一id的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107068194A (zh) | 一种应用在eeprom上的错误纠正编码及相应的eeprom | |
KR100827662B1 (ko) | 반도체 메모리 장치 및 이 장치의 데이터 오류 검출 및정정 방법 | |
US9098430B2 (en) | Composite semiconductor memory device with error correction | |
US7228468B2 (en) | Method and apparatus of build-in self-diagnosis and repair in a memory with syndrome identification | |
CN102197436B (zh) | 用于多电平单元存储器的数据路径,用于存储的方法及用于利用存储器阵列的方法 | |
US7301832B2 (en) | Compact column redundancy CAM architecture for concurrent read and write operations in multi-segment memory arrays | |
US8130545B2 (en) | Nonvolatile semiconductor storage device | |
US20070300130A1 (en) | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices | |
US20070271494A1 (en) | Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices | |
CN103886916B (zh) | 输入位宽可伸缩的编码/编解码存储*** | |
US20060259729A1 (en) | Semiconductor memory device, a sector-address conversion circuit, an address-conversion method, and operation method of the semiconductor memory device | |
US8650465B2 (en) | Efficient storage of error correction information in DRAM | |
CN106664098A (zh) | 用于将二进制映射到三进制及其反转的装置和方法 | |
CN101395583B (zh) | 具有存储着包含附加数据在内的页面的存储矩阵的电子电路 | |
US10275306B1 (en) | System and method for memory control having adaptively split addressing of error-protected data words in memory transactions for inline storage configurations | |
CN101587744B (zh) | 一种大规模flash存储阵列的多层次数据冗余方法 | |
US9026747B2 (en) | Memory device with a logical-to-physical bank mapping cache | |
CN207611609U (zh) | 一种存储器电路 | |
CN105161137B (zh) | 一种MLC架构中Nand Flash控制器电路实现装置 | |
WO2021056804A1 (zh) | 存储器及其寻址方法 | |
CN207742939U (zh) | 一种用于MLC NAND Flash存储器的嵌入ECC读取电路装置 | |
US10303543B1 (en) | System and method for memory control having address integrity protection for error-protected data words of memory transactions | |
CN103177771B (zh) | 可修复的多层存储器芯片堆迭及其修复方法 | |
CN110111826A (zh) | 一种航天器使用sram型fpga双口ram抗单粒子翻转加固装置 | |
CN107993687A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201203 No. 12, Lane 647, Songtao Road, China (Shanghai) Free Trade Pilot Area, Pudong New Area, Shanghai Applicant after: Juchen Semiconductor Co., Ltd. Address before: 201203 No. 12, Lane 647, Songtao Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai Applicant before: Giantec Semiconductor Inc. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170818 |