CN101930402B - 具有检错/纠错电路的非挥发存储器及其读写方法 - Google Patents

具有检错/纠错电路的非挥发存储器及其读写方法 Download PDF

Info

Publication number
CN101930402B
CN101930402B CN200910087519A CN200910087519A CN101930402B CN 101930402 B CN101930402 B CN 101930402B CN 200910087519 A CN200910087519 A CN 200910087519A CN 200910087519 A CN200910087519 A CN 200910087519A CN 101930402 B CN101930402 B CN 101930402B
Authority
CN
China
Prior art keywords
data
error detection
correction
write
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910087519A
Other languages
English (en)
Other versions
CN101930402A (zh
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.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
GigaDevice Semiconductor Beijing Inc
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 GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN200910087519A priority Critical patent/CN101930402B/zh
Publication of CN101930402A publication Critical patent/CN101930402A/zh
Application granted granted Critical
Publication of CN101930402B publication Critical patent/CN101930402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种具有ECC电路的非挥发存储器及其读写方法,该存储器的外部接口以字节为单位进行数据传输,在存储器内部以ECC码字为单位进行读写。其中写入数据的方法包括:获得外部输入数据的首地址及末地址并缓存外部输入数据;若外部输入数据所在的ECC数据组有部分字节不需要被替换,则从非挥发存储器的存储阵列中获得该不需要被替换的字节即回写数据并缓存;将外部输入数据,或者外部输入数据及回写数据,组成新的ECC数据组,为新的ECC数据组生成对应的校验位;将新的ECC数据组及对应的校验位写入到存储阵列。本发明在数据写入时只对对应的ECC码字进行擦除操作,本发明提高了存储的灵活性以及存储空间的利用效率。

Description

具有检错/纠错电路的非挥发存储器及其读写方法
技术领域
发明涉及非挥发存储器,尤其涉及具有检错/纠错(Error Checking andCorrecting,ECC)电路的非挥发存储器及其读写方法。
背景技术
随着集成电路的飞速发展,半导体存储器的集成度越来越高,容量也越来越大。随之而来的问题是半导体存储器的可靠性和成品率面临严重的挑战,比如信噪比随着集成度的增加而减小,存储节点电荷量的降低使得存储单位更容易受宇宙射线的影响,深亚微米技术下的工艺偏差和材料缺陷导致存储器成品率的降低等。
纠错码是一种不但可以检测错误而且可以定位错误位置并进而纠正错误的一类编码,是半导体存储器中一种重要的容错技术。汉明码是一种常用的纠错码,由于其简单、易于实现等特点,在存储器中得以广泛应用。
根据汉明码的理论,汉明码中校验位的个数需满足如下关系:
2k≥m+k+1          (式1)
其中:
k为校验位个数;
m为数据位个数。
由上述式1可以看出,数据位越多则校验位所占的比例越低,也就是说采用ECC电路的面积开销越小。比如,1个字节(byte)的数据位需要4比特的校验位,存储阵列的面积开销是50%;4个字节的数据位则需要6个比特的校验位,存储阵列的面积开销是18.8%。
对于外部接口是以字节为单位进行数据传输的具有ECC电路的非挥发存储器,现有技术中为了能够解决减少存储器面积开销的问题,普遍采用多字节数据位的ECC码字,使校验位能够占用较少的比例。但是在实现本发明的过程中,发明人发现存储器内部进行读写时,现有技术采用的是多字节数据位的ECC码字,尤其是在向内部存储阵列写入新的数据时,是以较大的空间单位如页(Page,128KB)来操作的,如果输入数据量不满一页(这种情形目前是非常常见的),则会增加写入时间,大大降低了存储灵活性,十分浪费写操作的空间,而且操作过程中不必要的擦除/编程操作会大大降低EEPROM的使用寿命。
发明内容
本发明所要解决的技术问题是在于需要提供一种具有检错/纠错电路的非挥发存储器以及该存储器的读写方法,存储器内部以ECC码字为单位进行读写操作。
为了解决上述技术问题,本发明首先提供了一种从具有检错/纠错电路的非挥发存储器读取数据的方法,以检错/纠错码字为单位,从所述非挥发存储器的存储阵列中读取数据;所述检错/纠错码字,包括若干检错/纠错数据组,以及与所述若干检错/纠错数据组相对应的校验位,一个检错/纠错数据组包含有至少两个字节。
优选地,获取所要读取的数据所在检错/纠错码字,利用其中的校验位对其中的检错/纠错数据组进行检错/纠错处理,然后以字节为单位进行输出。
优选地,所述非挥发存储器的外部接口以字节为单位进行数据传输。
为了解决上述技术问题,本发明还提供了一种向具有检错/纠错电路的非挥发存储器连续写入数据的方法,该方法包括:
获得外部输入数据的首地址及末地址;
根据所述首地址及末地址缓存所述外部输入数据;
若所述外部输入数据所在的检错/纠错数据组有部分字节不需要被替换,则从所述非挥发存储器的存储阵列中获得该不需要被替换的字节即回写数据并缓存;检错/纠错数据组包含有至少两个字节;
将所述外部输入数据,或者所述外部输入数据及回写数据,组成新的检错/纠错数据组,为所述新的检错/纠错数据组生成对应的校验位;
将所述新的检错/纠错数据组及对应的校验位写入到所述存储阵列。
优选地,所述外部输入数据,以字节为单位进行输入。
优选地,获得所述外部输入数据在所述非挥发存储器中的首地址后,根据所述首地址为所述外部输入数据连续分配存储地址,一直分配到所述末地址为止。
优选地,从所述存储阵列中获得所述回写数据的步骤,包括以检错/纠错码字为单位,读取所述首地址和/或末地址的数据所在的检错/纠错码字,从中获得所述回写数据;所述检错/纠错码字,包括若干检错/纠错数据组,以及与所述若干检错/纠错数据组相对应的校验位。
为了解决上述技术问题,本发明还提供了一种具有检错/纠错电路的非挥发存储器,包括存储阵列、写入状态机、缓冲器及检错/纠错电路,其中:
所述存储阵列,用于读操作时完成以检错/纠错码字为单位的数据输出,写操作时完成以检错/纠错码字为单位的数据连续写入;
所述写入状态机,用于接收读操作指令或写操作指令;
根据所述读操作指令,以检错/纠错码字为单位,从所述存储阵列中读取数据;所述检错/纠错码字,包括若干检错/纠错数据组以及与所述若干检错/纠错数据组相对应的校验位,一个检错/纠错数据组包含有至少两个字节;
根据所述写操作指令,获得外部输入数据的首地址及末地址,并根据所述首地址及末地址缓存所述外部输入数据;判断所述外部输入数据所在的检错/纠错数据组是否有部分字节不需要被替换,是则从所述存储阵列中获得该不需要被替换的字节即回写数据,将所述外部输入数据,或者所述外部输入数据及回写数据存入所述缓冲器;
所述检错/纠错电路,用于对从所述存储阵列中读取数据进行检错/纠错,为所述缓冲器中由所述外部输入数据,或者所述外部输入数据及回写数据组成的新的检错/纠错数据组产生校验位。
优选地,所述非挥发存储器的外部接口以字节为单位进行数据的输入或输出。
优选地,写入状态机获得所述外部输入数据在所述非挥发存储器中的首地址后,根据所述首地址为所述外部输入数据连续分配存储地址,一直分配到末地址为止。
优选地,所述不需要被替换的字节,以ECC码字为单位从所述存储阵列中读取,并以字节为单位获得所述回写数据。
优选地,所述非挥发存储器还包括:
输入单元,用于以字节为单位存储数据,包括二选一多路选择器;
输出单元,用于以字节为单位输出数据,包括多路选择器;
所述写入状态机,根据所述读操作指令向所述输出单元发送输出选通信号,指示所述输出单元对所述检错/纠错码字中的检错/纠错数据组按字节输出;根据所述写操作指令向所述输入单元发送输入选通信号,指示所述输入单元将所述外部输入数据,或者所述外部输入数据及回写数据存入所述缓冲器。
优选地,所述写入状态机通过一控制信号的不同逻辑值,来指示所述检错/纠错电路对从所述存储阵列中读取的数据进行检错/纠错,或者为所述新的检错/纠错数据组产生校验位。
与现有技术相比,本发明中对于外部接口是以字节为单位进行数据传输的具有ECC电路的非挥发存储器,实现了以ECC码字为单位从存储阵列中读数据或者向存储阵列中写数据,在有效减少校验位占用存储器容量的比例、节省存储器阵列中校验位的面积开销的同时,数据写入时不需要为每个字节都标示标志位,只对对应的ECC码字进行擦除操作,提高了存储的灵活性以及存储空间的利用效率,加快了数据写操作的速度,同时减少了以页为单位执行读写操作对存储器的使用寿命的影响。
附图说明
图1为本发明非挥发存储器一实施例的组成示意图。
图2为读数据操作实施例中数据位置示意图。
图3为读数据操作实施例的流程示意图。
图4为写数据操作实施例中数据位置示意图。
图5为写数据操作实施例的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
图1为本发明非挥发存储器一实施例的组成示意图,该非挥发存储器的外部接口以字节为单位传输数据。在本实施例中,ECC码字为38位(bit),包括ECC数据组(ECC data set)和校验位,其中ECC数据组为32位,校验位为6位。以8位为1个字节(byte),ECC数据组共有4个字节(至少两个字节)。以下如未特别声明,本申请下述各实施例中1个ECC数据组包含4个字节,1字节包含8位。
如图1所示,该存储器实施例主要包括存储阵列(Memory Array)110、写入状态机(Write State Machine,WSM)120、行地址译码器125、列地址译码器及灵敏放大器126、ECC电路130、缓冲器140、锁存器(Latch)150、输出单元160及输入单元170,其中:
存储阵列110,与行地址译码器125及列地址译码器及灵敏放大器126相连,用于存储数据;读操作时,以ECC码字为单位向列地址译码器及灵敏放大器126输出数据;写操作时,接收列地址译码器及灵敏放大器126发送过来的ECC数据组及与该ECC数据组对应的校验位并存储;
写入状态机120,与行地址译码器125、列地址译码器及灵敏放大器126、ECC电路130、输出单元160及输入单元170相连,用于控制存储器读写的所有时序;在读数据操作时,根据读操作指令向行地址译码器125及列地址译码器及灵敏放大器126分别发送用于定位所述目标数据所在ECC码字地址的行地址信号和列地址信号,向ECC电路130发送一用于对ECC数据组进行检错/纠错指示的检错/纠错信号,向输出单元160发送一用于在ECC数据组中进行字节定位的输出选通信号,该输出选通信号包含有字节定位信息;
在写数据操作时,根据写操作指令获得待写入数据的首地址并记录,根据该首地址为后续输入数据分配地址并记录;检测并判断首地址的数据所在的ECC数据组是否有部分字节需要被替换,如果是则从存储阵列110中读出该需要被替换的部分字节所在的ECC码字;如果是整个ECC数据组中的字节都需要被替换,则不必读出该ECC数据组所在的ECC码字;在收到外部控制输入的停止写入的信息时,获得待写入数据的末地址并记录;检测并判断末地址的数据所在的ECC数据组是否有部分字节需要被替换,如果是则从存储阵列110中读出该需要被替换的部分字节所在的ECC码字;根据写操作指令向输入单元170发送一用于外部输入数据或回写数据写入缓冲器140中的输入选通信号,其中该外部输入数据为外部输入的待写入数据,以字节为单位,该回写数据为从存储阵列110中读出并回写到存储阵列110中的待写入数据,也以字节为单位;前述的首地址的数据为外部输入数据;其中该输入选通信号,用于控制该输入单元170向缓冲器140中输入外部输入数据,或者外部输入数据及回写数据;还向ECC电路130发送一用于为ECC数据组产生校验位的校验位产生信号;
行地址译码器125,与存储阵列110及写入状态机120相连,用于从存储阵列110中取数据时确认数据地址(包括读数据操作时从存储阵列110中取数据的情形,以及写数据操作时从存储阵列110中取数据的情形),接收写入状态机120发送的行地址信号,对该行地址信号进行译码,获得含有数据地址的行地址信息,并将该行地址信息发送给存储阵列110;
列地址译码器及灵敏放大器126,与存储阵列110、写入状态机120、ECC电路130及缓冲器140相连,接收写入状态机120所发送的列地址信号,写数据操作时,接收从缓冲器140中发送过来的ECC数据组及与该ECC数据组对应的校验位,然后发送到存储阵列110中存储;
ECC电路130,与写入状态机120、列地址译码器及灵敏放大器126、缓冲器140及锁存器150相连,用于在读数据操作时,接收列地址译码器及灵敏放大器126发送的ECC码字,并根据该写入状态机120发送的该检错/纠错信号,利用ECC码字中的校验位对ECC码字中的ECC数据组进行检错/纠错,获得校验后的正确的ECC数据组(以下简称为检错/纠错后的ECC数据组),将该检错/纠错后的ECC数据组发送至锁存器150;还用于在写数据操作时,根据写入状态机120发送的该校验位产生信号,为缓冲器140中存储的ECC数据组产生校验位;在本实施例中,检错/纠错信号与校验位产生信号是用同一控制信号的不同逻辑值来表示的;
缓冲器140,与列地址译码器及灵敏放大器126、ECC电路130及输入单元170相连,用于缓存通过输入单元170所输入的外部输入数据,或者外部输入数据及回写数据,在所输入的数据组成一ECC数据组后,存储ECC电路130为该ECC数据组所生成的校验位,并将该ECC数据组及对应的校验位通过列地址译码器及灵敏放大器126写入存储阵列110;在本实施例中,缓冲器140的存储容量,与存储阵列110中的页的大小相等;
锁存器150,与ECC电路130及输出单元160相连,用于存储经过ECC电路130进行检错/纠错后的ECC数据组;
输出单元160,与写入状态机120、锁存器150及输入单元170相连,用于根据写入状态机120发送的输出选通信号,将锁存器150中所保存的ECC数据组按字节输出,在本实施例中,一个ECC数据组包含四个字节,因此该输出单元160为一四选一多路选择器,以将锁存器150中的数据按每次一字节选择输出;输出选通信号采用2bits地址信号,典型地,选取表示最低两位地址的地址信号A[1:0];在其他实施例中,如果一个ECC数据组包括其他数量的字节数目,则可以选用相应的多路选择器,比如一个ECC数据组包含8个字节,此时就可以选用八选一多路选择器作为该输出单元160;总之,输出单元160选用多路选择器时,该选用的多路选择器的类型,根据一次所能输出的数据长度占锁存器中ECC数据组的比例来确定;
输入单元170,与写入状态机120、缓冲器140及输出单元160相连,用于接收外部输入数据,或者外部输入数据及输出单元160输出的回写数据,并在写入状态机120发送的输入选通信号作用下,将该外部输入数据,或者外部输入数据及回写数据以字节为单位发送到缓冲器140中;本实施例中,通过该输入单元170所输入的数据包含两种,一种是外部输入的外部输入数据,另一种是从存储阵列110中读取并经输出单元160输出的回写数据,因此该输入单元170为一二选一多路选择器。
需要说明的是,写操作过程中之所以要回写数据,是因为存储器的外部接口是以字节为单位进行读写操作的,而存储器内部是以ECC码字为单位进行读写操作的,当一个字节的数据写入存储器时,其对应的ECC码字就需要重新写入存储阵列110中;为了保证在ECC码字中不需要被替换的数据(即前述的回写数据)与进行替换的数据(即前述的外部输入数据)进行重组后获得的新的ECC码字是准确的,所以向存储阵列110中写入数据时先经过检错/纠错处理,保证了写入的ECC码字准确无误。
如图1所示,缓冲器140包括数据缓冲器(Data Buffer)142和校验位缓冲器(Check bit Buffer)144,其中:
数据缓冲器142,与列地址译码器及灵敏放大器126、ECC电路130及输入单元170相连,用于存储通过输入单元170所输入的数据(外部输入数据,或者外部输入数据及回写数据),在本实施例中,所存储的数据用于组成包含4个8bits的ECC数据组,也即一个ECC数据组共32位;
校验位缓冲器144,与列地址译码器及灵敏放大器126及ECC电路130相连,用于存储ECC电路130为数据缓冲器142中所存储的ECC数据组所生成的校验位,由于32位数据需要6位校验位,因此在本实施例中,该校验位为6位。
以下通过一个读数据操作实施例和一个写数据操作实施例,来进一步详细说明图1所示非挥发存储器实施例的特点。
(一)读数据操作实施例
读数据时,以ECC码字为单位从存储阵列中读取数据,其中该ECC码字包括ECC数据组(ECC data set)和校验位。本实施例欲要读出存储阵列第M个ECC码字中ECC数据组的第三个字节data1,即图2所示的带阴影的字节。图3为读数据操作实施例的流程示意图,结合图1所示非挥发存储器实施例以及图2所示数据位置示意,该读数据操作实施例主要包括如下步骤:
步骤S310,根据读操作指令,写入状态机120向行地址译码器125及列地址译码器及灵敏放大器126分别发送用于定位所要读取的数据所在的ECC码字的行地址信号和列地址信号,向ECC电路130发送一用于对ECC数据组进行检错/纠错指示的检错/纠错信号,还向输出单元160发送一用于从ECC数据组中定位目标数据data1的输出选通信号;
步骤S320,行地址译码器125及列地址译码器及灵敏放大器126分别对该行地址信号和列地址信号进行译码,分别获得目标数据data1所在ECC码字的行地址信息和列地址信息,并将该行地址信息和列地址信息发送给存储阵列110;
步骤S330,存储阵列110收到行地址译码器125及列地址译码器及灵敏放大器126发送的该行地址信息和列地址信息后,根据该些地址信息(即该行地址信息及列地址信息),将含有该目标数据data1的该第M个ECC码字经列地址译码器及灵敏放大器126发送给ECC电路130,其中该第M个ECC码字包含ECC数据组和校验位,待输出数据data1包含在该ECC数据组中;
在本读数据实施例中,是要读出1字节(8bits)的数据,则从存储阵列110中读出的ECC码字为38位(bit);该38位的ECC码字中包含32位的ECC数据组(一个ECC数据组包含四个8bits的字节)和6位的校验位,该待输出的1字节的目标数据data1,包含在该32位的ECC数据组中;
步骤S340,ECC电路130接收到该第M个ECC码字后,根据写入状态机125发送的该检错/纠错信号,利用该第M个ECC码字中的校验位对该第M个ECC码字中的ECC数据组进行检错/纠错,获得检错/纠错后的ECC数据组;
步骤S350,ECC电路130将该检错/纠错后的ECC数据组发送至锁存器150;
步骤S360,输出单元160根据该输出选通信号,从锁存器150所存储的该检错/纠错后的ECC数据组中获得目标数据data1并输出;
由于一个ECC数据组包含四个8bits的字节,因此该输出单元160为一四选一多路选择器,以将锁存器150中的数据按每次一字节选择输出,输出选通信号采用2bits地址信号,典型地,选取最低两位地址A[1:0]。
在本读数据操作的实施例中,写入状态机120向该行地址译码器125及列地址译码器及灵敏放大器126发送地址信号,向该ECC电路130发送该检错/纠错信号,以及向该四选一多路选择器发送的该输出选通信号的时序,是由写入状态机120控制的,而且没有严格的限制,也即前述步骤S310与后续步骤并不存在严格的先后顺序。比如在其他的读操作实施例中,写入状态机120向该ECC电路130发送该检错/纠错信号,可以是在前述步骤S320中该ECC电路130接收到该ECC码字之后;又如写入状态机120向该四选一多路选择器发送的该输出选通信号,可以是在前述步骤S340中该ECC电路进行检错/纠错之后,或者前述步骤S350中该ECC电路将该检错/纠错后的ECC数据组发送至该锁存器150之后。
4字节的ECC数据组一次输出1字节,将2位地址作为4选1的输出选通信号,该2位地址为输出数据首地址的低两位,由于是连续操作,因此后续数据的地址根据该首地址累加1获得。
以上是以欲要读出的数据为一个字节为例来说明的。如果欲要读出的数据是包含在一个ECC码字中的两个、三个或者四个字节,则写入状态机120向四选一多路选择器发送的输出选通信号分别包含该两个、三个或者四个字节的地址信息。
如果欲要读出的数据包含在多个ECC码字中,则在读操作时,每次读出一个ECC码字,然后从该ECC码字中依次读出各字节的数据。通过读取该多个ECC码字,最后获得该包含在多个ECC码字中的欲要读出的数据。
(二)写数据操作实施例
在本实施例中,输入单元170为一二选一多路选择器,要写入的从外部输入的外部输入数据为9字节共72bits,欲要从存储阵列110第N个ECC码字的ECC数据组第二个字节开始写入,结束于第N+2个ECC码字的ECC数据组第二个字节。当然,一次输入的外部输入数据,不能超过数据缓冲器142的容量。图4所示的带阴影的字节为待写入的字节,且每字节数据位对应的ECC数据组是固定的。图5为写数据操作实施例的流程示意图,结合图1所示非挥发存储器实施例以及图4所示的数据位置示意,该写数据操作主要包括如下步骤:
步骤S510,根据写操作指令,写入状态机120获得外部输入数据在非挥发存储器中的首地址并记录;
在本实施例中,该外部输入数据的首地址为存储阵列110中第N个ECC码字的ECC数据组第二个字节的地址;
步骤S520,根据该首地址,写入状态机120为后续的外部输入数据分配在非挥发存储器中的存储地址并记录;
在本实施例中,该分配的存储地址为从该首地址开始的连续9个字节的地址;
步骤S530,写入状态机120在收到外部控制输入的停止写入的信息时,获得外部输入数据在非挥发存储器中的末地址并记录;也即为外部输入数据分配存储地址时,该存储地址一直分配到所获得的末地址为止;
步骤S540,将该9个字节的外部输入数据按照各自的地址,缓存到数据缓冲器142中;
步骤S542,根据外部输入数据的首地址和末地址,判断出需要从存储阵列110中读取回写数据;
在本实施例中,由于外部输入数据的首地址,是第N个ECC码字中ECC数据组的第二个字节的位置,为了保证写入的准确性,需要将该第N个ECC码字中ECC数据组的第一个字节读取出来并进行回写;由于外部输入数据的末地址,是第N+2个ECC码字中ECC数据组的第二个字节,需要将该第N+2个ECC码字中ECC数据组的第三、第四个字节读取出来并进行回写;
步骤S544,从存储阵列110中读出该第N个ECC码字,获得其ECC数据组中的第一个字节,缓存到数据缓冲器142中,地址位于外部输入数据首地址前;
步骤S546,从存储阵列110中读出该第N+2个ECC码字,获得其ECC数据组中的第三、第四个字节,缓存到数据缓冲器142中,地址位于外部输入数据末地址后;
如此一来,数据缓冲器142中存储了三个ECC数据组;
步骤S550,ECC电路分别为数据缓冲器142中存储的三个新的ECC数据组生成各自对应的校验位,然后将所生成的校验位发送到校验位缓冲器144缓存;
步骤S560,将该三个新字节与各自对应的校验位,一次一个码字(一个ECC数据组及对应的校验位)地发送到存储阵列110,按照对应的地址进行存储。
上述步骤S542,由于是从存储阵列110第N个ECC码字的ECC数据组第二个字节开始写入,并且结束于第N+2个ECC码字的ECC数据组第二个字节,因此需要将该第N个ECC码字的ECC数据组第一个字节,以及该第N+2个ECC码字的ECC数据组第三、第四个字节读出并回写到数据缓冲器142。上述步骤S544和步骤S546中的读数据操作,请参照图3所示读数据操作实施例,此处不再赘述。回写时是把输出单元160输出的字节发送到输入单元170,由输入单元170发送到缓冲器142。
本写数据操作实施例中,该新的第N个ECC码字的ECC数据组中,第一个字节为从存储阵列110中读出并回写的字节,后三个字节为外部输入数据中顺序排列的第一、第二及第三个字节;该新的第N+1个ECC码字的ECC数据组,顺序排列外部输入数据的第四至第七个字节;该新的第N+2个ECC码字的ECC数据组第一及第二个字节,分别为外部输入数据的第八和第九个字节,后两个字节,为从存储阵列110中读出并回写的字节。
需要说明的是,上述写数据操作实施例中,为外部输入数据分配存储地址时是以连续加1的方式进行分配的,实际上还可以采用记录等方式为外部输入数据分配存储地址。另外,上述写数据操作实施例是以连续写入(即在存储阵列中外部输入数据的存储地址是连续的)的方式进行说明的,对于不连续写入(即在存储阵列中外部输入数据的存储地址是不连续的)的外部输入数据,可以将其视作若干连续写入的数据段,从而采用上述写操作实施例的步骤完成写入。
现有技术中对待写入的整页数据的每个字节,都需要采用标志位来标示地址。在本发明中,采用首位地址确定后根据该首位地址连续数据的方法,不需要为每个字节都标示标志位。相比现有技术而言,本发明中最多需要两次标示地址信息(首地址及末地址)即可。
由图5所示写操作实施例可知,在写操作过程中,输入单元170在将外部输入数据写入数据缓冲器142之后,写入状态机120还需要判断是否需要从存储阵列110中读出数据以进行回写。
接收外部输入数据时,获得外部输入数据的首地址并记录,并根据首地址为外部输入数据分配地址。收到外部控制输入的停止写入的信息时,获得外部输入数据的末地址并记录。
根据该首地址寻址定位该首地址数据所在的ECC数据组,根据该末地址寻址定位该末地址数据所在的ECC数据组;然后分别判断该首地址数据所在的ECC数据组是不是有部分字节不需要被替换,以及该末地址数据所在的ECC数据组是不是有部分字节不需要被替换。
如果该首地址数据所在的ECC数据组和/或该末地址数据所在的ECC数据组,有部分字节不需要被替换,则通过行地址译码器125、列地址译码器及灵敏放大器126及ECC电路130等,将ECC数据组中不需要被替换的字节通过输出单元160,发送到输入单元170。输入单元170在输入选通信号的作用下,接收输出单元160所发送的回写数据并发送到数据缓冲器142存储。如果是整个ECC数据组的全部字节均需要被替换,则无需从存储阵列110中读出数据。
在数据缓冲器142存储了全部需要写入到存储阵列110中的数据(包括外部输入数据,如果有回写数据的话还包括回写数据)后,向ECC电路130发送校验位产生信号。ECC电路130根据该校验位产生信号,为数据缓冲器142中存储的每个ECC数据组分别生成校验位并发送到校验位缓冲器144中存储,然后将各ECC数据组及对应的校验位经列地址译码器及灵敏放大器126发送到存储阵列110。在发往存储阵列110时,可以将ECC数据组及对应的校验位发送给存储阵列110中存储,一次写入一个ECC码字。
在图5所示的写数据操作实施例中,数据缓冲器142中存储的是第N、第N+1及第N+2个ECC码字中的ECC数据组,相应的,校验位缓冲器144中分别存储该第N、第N+1及第N+2个ECC码字中的ECC数据组的校验位,其中,每个ECC数据组为32位,对应的校验位为6位。
上述该写操作实施例,实现了将存储阵列中第N个ECC码字ECC数据组第二个字节开始,至第N+2个ECC码字ECC数据组第二个字节结束的共9个字节,替换为新输入的外部输入数据。
在执行写数据的过程中,二选一多路选择器一次只向数据缓冲器142发送1字节的数据,无论是从外部输入的外部输入数据,还是从存储阵列中读出的回写数据与外部输入数据的组合。在上述写操作实施例中,由于一个ECC数据组包含4个字节,因此对于一个ECC数据组而言,该二选一多路选择器向数据缓冲器142发送回写数据的次数最多为三次。
需要说明的是,本发明上述各实施例,是以一个ECC码字包含4个字节、一字节为8bits为例进行说明的,并不构成对ECC码字或者字节的限制,一个ECC码字具体包含多少字节、或者一个字节包含多少bits,本发明并没有限定。
本发明的技术方案,以远小于页的ECC码字为单位,完成数据的读写。本发明技术方案适用于外部接口以字节为单位进行数据传输的非挥发存储器,尤其是EEPROM。采用若干字节的数据位和对应的校验位组成一个ECC码字,并且以ECC码字为单位进行读写,降低了ECC电路的面积开销。存储器可以按地址连续地读取数据或写入数据,只需输入读写对应的指令以及操作的起始地址即可,存储器内部会自动执行连续的操作而不必重新输入指令和地址,因为后续地址自动产生,因此接口可以非常简单。当存储器随机输入一个字节的数据时,存储器内部只需要将该字节对应的ECC码字进行重新写入即可,与现有技术以页为单位读取或写入数据相比,有效延长了存储器的使用寿命。而且,在一次数据写入过程中,最多只需两次从存储阵列中读出若干个字节长度的ECC码字,与现有技术相比,也降低了数据写入时的时间和功耗。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (11)

1.一种从具有检错/纠错电路的非挥发存储器读取数据的方法,其特征在于,以检错/纠错码字为单位,从所述非挥发存储器的存储阵列中读取数据,获取所要读取的数据所在的检错/纠错码字,利用检错/纠错码字中的校验位对检错/纠错码字中的检错/纠错数据组进行检错/纠错处理,获得检错/纠错后的检错/纠错数据组,从所述检错/纠错后的检错/纠错数据组中获得所要读取的数据并以字节为单位进行输出;其中,所述检错/纠错码字,包括若干检错/纠错数据组以及与所述若干检错/纠错数据组相对应的校验位,一个检错/纠错数据组包含有至少两个字节。
2.一种向具有检错/纠错电路的非挥发存储器连续写入数据的方法,其特征在于,该方法包括:
获得外部输入数据的首地址及末地址;
根据所述首地址及末地址缓存所述外部输入数据;
若所述外部输入数据所在的检错/纠错数据组有部分字节不需要被替换,则从所述非挥发存储器的存储阵列中获得该不需要被替换的字节即回写数据并缓存;检错/纠错数据组包含有至少两个字节;
将所述外部输入数据,或者所述外部输入数据及回写数据,组成新的检错/纠错数据组,为所述新的检错/纠错数据组生成对应的校验位;
将所述新的检错/纠错数据组及对应的校验位写入到所述存储阵列。
3.如权利要求2所述的方法,其特征在于,所述外部输入数据,以字节为单位进行输入。
4.如权利要求2所述的方法,其特征在于,获得所述外部输入数据在所述非挥发存储器中的首地址后,根据所述首地址为所述外部输入数据连续分配存储地址,一直分配到所述末地址为止。
5.如权利要求2所述的方法,其特征在于,从所述存储阵列中获得所述回写数据的步骤,包括以检错/纠错码字为单位,读取所述首地址和/或末 地址的数据所在的检错/纠错码字,从中获得所述回写数据;所述检错/纠错码字,包括若干检错/纠错数据组,以及与所述若干检错/纠错数据组相对应的校验位。
6.一种具有检错/纠错电路的非挥发存储器,包括存储阵列、写入状态机、缓冲器及检错/纠错电路,其特征在于:
所述存储阵列,用于读操作时完成以检错/纠错码字为单位的数据输出,写操作时完成以检错/纠错码字为单位的数据连续写入;
所述写入状态机,用于接收读操作指令或写操作指令;
根据所述读操作指令,以检错/纠错码字为单位,从所述存储阵列中读取数据;所述检错/纠错码字,包括若干检错/纠错数据组以及与所述若干检错/纠错数据组相对应的校验位,一个检错/纠错数据组包含有至少两个字节;
根据所述写操作指令,获得外部输入数据的首地址及末地址,并根据所述首地址及末地址缓存所述外部输入数据;判断所述外部输入数据所在的检错/纠错数据组是否有部分字节不需要被替换,是则从所述存储阵列中获得该不需要被替换的字节即回写数据,将所述外部输入数据,或者所述外部输入数据及回写数据存入所述缓冲器;
所述检错/纠错电路,用于对从所述存储阵列中读取数据进行检错/纠错,为所述缓冲器中由所述外部输入数据,或者所述外部输入数据及回写数据组成的新的检错/纠错数据组产生校验位。
7.如权利要求6所述的非挥发存储器,其特征在于,所述非挥发存储器的外部接口以字节为单位进行数据的输入或输出。
8.如权利要求6所述的非挥发存储器,其特征在于,写入状态机获得所述外部输入数据在所述非挥发存储器中的首地址后,根据所述首地址为所述外部输入数据连续分配存储地址,一直分配到末地址为止。
9.如权利要求6所述的非挥发存储器,其特征在于,所述不需要被替换的字节,以ECC码字为单位从所述存储阵列中读取,并以字节为单位获得所述回写数据。 
10.如权利要求6所述的非挥发存储器,其特征在于,所述非挥发存储器还包括:
输入单元,用于以字节为单位存储数据,包括二选一多路选择器;
输出单元,用于以字节为单位输出数据,包括多路选择器;
所述写入状态机,根据所述读操作指令向所述输出单元发送输出选通信号,指示所述输出单元对所述检错/纠错码字中的检错/纠错数据组按字节输出;根据所述写操作指令向所述输入单元发送输入选通信号,指示所述输入单元将所述外部输入数据,或者所述外部输入数据及回写数据存入所述缓冲器。
11.如权利要求6所述的非挥发存储器,其特征在于,所述写入状态机通过一控制信号的不同逻辑值,来指示所述检错/纠错电路对从所述存储阵列中读取的数据进行检错/纠错,或者为所述新的检错/纠错数据组产生校验位。 
CN200910087519A 2009-06-23 2009-06-23 具有检错/纠错电路的非挥发存储器及其读写方法 Active CN101930402B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910087519A CN101930402B (zh) 2009-06-23 2009-06-23 具有检错/纠错电路的非挥发存储器及其读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910087519A CN101930402B (zh) 2009-06-23 2009-06-23 具有检错/纠错电路的非挥发存储器及其读写方法

Publications (2)

Publication Number Publication Date
CN101930402A CN101930402A (zh) 2010-12-29
CN101930402B true CN101930402B (zh) 2012-10-24

Family

ID=43369593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910087519A Active CN101930402B (zh) 2009-06-23 2009-06-23 具有检错/纠错电路的非挥发存储器及其读写方法

Country Status (1)

Country Link
CN (1) CN101930402B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631669B (zh) * 2013-12-03 2016-06-22 中国科学院微电子研究所 一种纠错sram的回写方法
FR3065303B1 (fr) * 2017-04-12 2019-06-07 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans un dispositif de memoire non volatile et dispositif de memoire non volatile correspondant
CN110660422A (zh) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 一种配合纠错磁性随机存储器使用的缓存系统
CN112530509A (zh) * 2018-12-26 2021-03-19 上海忆芯实业有限公司 为存储设备提供ecc的方法、ecc模块及存储设备
CN110442044A (zh) * 2019-08-19 2019-11-12 哈尔滨工业大学 一种用于飞行器制导控制算法验证的半实物仿真平台
CN114826283A (zh) * 2021-01-27 2022-07-29 华为技术有限公司 译码方法、装置、设备以及计算机可读存储介质
CN114237972A (zh) * 2021-12-13 2022-03-25 合肥芯荣微电子有限公司 一种用于总线传输的端到端ecc保护装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604703A (en) * 1994-10-24 1997-02-18 Nec Corporation Semiconductor memory device with error check-correction function permitting reduced read-out time
CN101202107A (zh) * 2006-09-13 2008-06-18 意法半导体股份有限公司 具有非易失性地存储冗余数据的保留区域的与非闪存器件
CN101281788A (zh) * 2007-04-06 2008-10-08 群联电子股份有限公司 闪存系统及其控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604703A (en) * 1994-10-24 1997-02-18 Nec Corporation Semiconductor memory device with error check-correction function permitting reduced read-out time
CN101202107A (zh) * 2006-09-13 2008-06-18 意法半导体股份有限公司 具有非易失性地存储冗余数据的保留区域的与非闪存器件
CN101281788A (zh) * 2007-04-06 2008-10-08 群联电子股份有限公司 闪存系统及其控制方法

Also Published As

Publication number Publication date
CN101930402A (zh) 2010-12-29

Similar Documents

Publication Publication Date Title
US11775178B2 (en) Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
CN101930402B (zh) 具有检错/纠错电路的非挥发存储器及其读写方法
US8898374B2 (en) Flash memory device and method for managing flash memory device
CN102339641B (zh) 检错/纠错校验模块及该模块读写数据的方法
CN101079322B (zh) 多位存储装置和存储系统
CN102132354B (zh) 闪存中的数据的快速低功率读取
US11133067B2 (en) Multi-phased programming with balanced gray coding
CN101930799B (zh) 具有检错/纠错电路的非挥发存储器及其读写数据的方法
US11282564B1 (en) Selective wordline scans based on a data state metric
US10832784B2 (en) Pre-program read to counter wordline failures
US7684239B2 (en) Flash memory device for over-sampling read and interfacing method thereof
US9507710B2 (en) Command execution using existing address information
US20220027096A1 (en) Background operation selection based on host idle time
US11119692B2 (en) Storage device having wide input/output and method of operating the same
US9159430B2 (en) Method for block-erasing a page-erasable EEPROM-type memory
US9672147B2 (en) Memory controller, method of operating memory controller, and system comprising memory controller
CN106356096B (zh) 非易失性存储器擦写控制方法及电路
CN114063916B (zh) 一种nand存储器及其数据转存和读取方法
US11720681B2 (en) Firmware execution profiling and verification
KR20110001581A (ko) 불휘발성 메모리 장치의 카피백 동작 방법
KR20100133611A (ko) 불휘발성 메모리 장치
TW201535380A (zh) 半導體記憶裝置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100083 Beijing City, Haidian District Xueyuan Road No. 30, large industrial building A12

Applicant after: GIGADEVICE SEMICONDUCTOR Inc.

Address before: 100084 room A300, research building, Tsinghua Science and Technology Park, Beijing

Applicant before: GigaDevice Semiconductor Inc.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: BEIJING XINJI JIAYI, MICROELECTRONIC SCIENCE + TECH. CO., LTD. TO: GIGADEVICE SEMICONDUCTOR INC.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: BEIJING GIGADEVICE SEMICONDUCTOR CO., LTD.

Free format text: FORMER NAME: BEIJING GIGADEVICE SEMICONDUCTOR INC.

CP01 Change in the name or title of a patent holder

Address after: 100083 Beijing City, Haidian District Xueyuan Road No. 30, large industrial building A12

Patentee after: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

Address before: 100083 Beijing City, Haidian District Xueyuan Road No. 30, large industrial building A12

Patentee before: GigaDevice Semiconductor Inc.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: Floor A12, Tiangong Building, University of Science and Technology, No. 30 Xueyuan Road, Haidian District, Beijing 100083

Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.