存储器及其1位读取错误检测方法

文档序号:6779238阅读:173来源:国知局

专利名称::存储器及其1位读取错误检测方法
技术领域
:本发明涉及一种存储器及其l位读取错误检测方法,特别是涉及一种具有简单硬件架构及节省存储器空间的存储器及其1位读取错误检测方法。
背景技术
:存储器是应用于现今的多种数据储存的用途。其中,确保储存于存储器中的数据的完整性是存储器设计上很重要的一环,传统上通常使用错误修正码(ErrorCorrectionCode,ECC)来实现此项要求。错误修正码为一种能够检测并修正1位错误(lbiterror)的数据完整性检测方法。请参照图1A,其示出了传统存储器1位读取错误检测方法的流程图。首先,于步骤100中,接收2M立大小的至少一笔数据片段(datafragment),n为大于或等于0的整数。接着,于步骤110中,依据此2"位大小的至少一笔数据片段产生一2n位大小的错误修正码(errorcorrectioncode),此错误修正码是由错误修正检测算法(ECCAlgor他m)所产生,其中,为了避免1位错误发生在错误修正码,故错误修正码包括了错误修正同位位(ECCparitybit)及其补码。此,晉误修正码属于此至少一笔数据片段的管理位(overheadbits)。然后,于步骤120中,将至少一笔数据片段及错误修正码写入于存储器的中。之后,于步骤130中,从存储器读取至少一笔数据片段为至少一笔读取数据片段。接着,于步骤140中,依据至少一笔读取数据片段产生一新错误修正码,此新错误修正码亦由错误修正检测算法所产生。然后,于步骤150中,依据错误修正码及新错误修正码判断至少一笔读取数据片段是否相同于至少一笔数据片^:。步骤150实质上是依据错误修正检测算法,将错误修正码及新错误修正码进行一异或(exclusiveor)的动作,若结果为0,则至少一笔读取数据片段相同于至少一笔数据片段。若至少一笔读取数据片段相同于至少一笔数据片段,则于步骤160中,存储器判断读取操作为正确,存储器输出此至少一笔读取数据片段。若至少一笔读取数据片段相异于至少一笔数据片段,则于步骤170中,若存储器判断读取操作具有l位错误,则利用新错误修正码将至少一笔读取数据片段修正为至少一笔数据片段,并输出至少一笔读取数据片段。请参照图IB,其示出了错误修正检测算法的示意图。于图1B中,至少一笔数据片段的大小为8位(D0D7)为例说明。至少一笔数据片段依据错误修正检测算法产生6位大小的错误修正码,包括错误修正同位位P1、P2及P4,以及其补码P1'、P2,及P4'。同理,至少一笔读取数据片段亦产生6位大小的新错误修正码。其中,错误修正同位位P1、P2及P4,以及错误修正同位位的补码P1'、P2,及P4,的公式如下所述,代表"异或"。P4=D7D6D5D4(公式1)P2=D7D6D3@D2(公式2)PI=D7@D5D3D1(公式3)P4,=D3@D2@D1@D0(公式4)P2,=D5D4@D1@D0(公式5)PI'=D6D4@D2D0(公式6)于步骤170中,若存储器判断读取操作具有1位错误,亦即至少一笔数据片段的错误修正码与至少一笔读取数据片段的新错误修正码进行异或的动作的结果不全为0。异或的结果是至少一笔读取数据片段的错误位置。将错误的位反相,修正此错误。上述的传统存储器读取错误检测方法中,错误修正检测算法(ECCAlgorithm)虽然能够检测并修正1位错误,但对于存储器的1位读取错误检测而言,2n位大小的错误修正码将使得管理位占据太多的存储器空间,并使得存储器的硬件架构无法简化。
发明内容本发明是有关于一种存储器及其1位读取错误检测方法,利用较简单的l位读取错误检测方法,使得存储器具有简单硬件架构,并节省存储器空间。根据本发明,提出一种存储器1位读取错误检测方法,包括,首先,接收至少一笔数据片段,至少一笔数据片段的大小为2"位,n为大于或等于O的整数。接着,依据至少一笔数据片段产生错误修正码、同位检查码及数据码,数据码是相对应于错误修正码。另外,将至少一笔数据片段、错误修正码、同位检查码及数据码写入于存储器。然后,从存储器读取至少一笔数据片段为至少一笔读取数据片段,至少一笔读取数据片段的大小为2n位。接着,依据至少一笔读取数据片段产生新错误修正码、新同位检查码及新数据码,新数据码相对应于新错误修正码。另外,依据错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码,判断至少一笔读取数据片段相对于至少一笔数据片段是否具有l位错误。之后,若至少一笔读取数据片段相对于至少一笔数据片段不具有1位错误,则喻出至少一笔读取数据片段。根据本发明,提出一种存储器,包括存储单元阵列以及错误修正电路。存储单元阵列接收并储存至少一笔数据片段,存储器从存储单元阵列读取至少一笔数据片段为至少一笔读取数据片段,至少一笔数据片段及至少一笔读取数据片段的大小为2"位,n为大于或等于O的整数.错误修正电路依据至少一笔数据片段产生错误修正码、同位检查码及数据码,数据码相对应于错误修正码,且依据至少一笔读取数据片段产生新错误修正码、新同位检查码及新数据码,新数据码相对应于新错误修正码。其中,存储器利用错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码,判断至少一笔读取数据片段相对于至少一笔数据片段是否具有1位错误。为使本发明的上述内容能更明显易懂,下文特举一较佳实施例,并结合附图详细说明如下。图1A示出传统存储器1位读取错误检测方法的流程图。图1B示出错误修正检测算法的示意图。图2示出依照本发明较佳实施例的存储器1位读取错误检测方法的流程图。图3示出依照本发明较佳实施例的存储器的方块图。附图符号说明300:存储器310:存储单元阵列320:错误修正电路具体实施例方式本发明为一种存储器及其1位读取错误检测方法,利用仅具有错误修正同位位(ECCparitybit)或其补码之一的错误修正码、1位大小的同位检查码以及1位大小的数据码,以较简单的1位读取错误检测方法来检测存储器所储存的数据是否具有l位错误,使得存储器具有简单硬件架构,并节省存储器空间。请参照图2,其示出了依照本发明较佳实施例的存储器1位读取错误检测方法的流程图。此存储器1位读取错误检测方法应用于一存储器。首先,于步骤200中,接收至少一笔数据片段,此至少一笔数据片段的大小为2n位,n为大于或等于0的整数。然后,于步骤210中,依据至少一笔数据片段产生一错误修正码、一同位检查码及一数据码,数据码相对应于错误修正码。错误修正码由错误修正检测算法(ECCAlgorithm)所产生,但此错误修正码仅为错误修正同位位(ECCparitybit)或其补码之一,其大小为n位。接下来以至少一笔数据片段的大小为8位(D0D7)为例做说明。其中,错误修正同位位E1、E2及E4、错误修正同位位的补码El'、E2,及E4,的公式如下所述,代表"异或"。E4=D7D6D5D4(公式7)E2=D7@D6D3D2C公式8)El=D7D5D3@D1(公式9)E4'=D3@D2@D1DO(公式10)E2,=D5D4@D1DO(公式11)El,=D6D4@D2D0(公式12)同位检查码(paritycode)是由将至少一笔数据片段的所有位进行一异或(exclusiveor)的动作而产生,亦即当至少一笔数据片段具有偶数个1时,同位检查码为0,当至少一笔数据片段具有奇数个1时,同位检查码为1。同位检查码P或P,的公式如下所述。P(^P,)=D7D6@D5D4D3D2D1DO(公式13)此外,利用相对应于错误修正码的数据码来确保存储器1位读取错误检测方法的检测完整性。当错误修正码为错误修正同位位时,则数据码为至少一笔数据片段的最低位。当错误修正码为错误修正同位位的补码时,则数据码为至少一笔数据片段的最高位。数据码D或D'的公式如下所述。D=D0(公式14)D,-D7(公式15)于步骤220中,将至少一笔数据片段、错误修正码、同位检查码及数据码写入于一存储器。其中,错误修正码、同位检查码及数据码做为至少一笔数据片段的管理位(overheadbit)而被写入存储器。然后,于步骤230中,从存储器读取至少一笔数据片段为至少一笔读取数据片段,此至少一笔读取数据片段的大小亦为2"位。于步骤240中,依据至少一笔读取数据片段产生一新错误修正码、一新同位检查码及一新数据码,新数据码相对应于新错误修正码。新错误修正码亦由错误修正检测算法所产生,其大小亦为n位。当错误修正码为错误修正同位位时,新错误修正码亦为错误同位位。当错误修正码为错误修正同位位的补码时,新错误修正码亦为错误修正同位位的补码。新同位检查码(paritycode)是由将至少一笔读取数据片段的所有位进行一异或(exclusiveor)的动作而产生。此外,当新错误修正码为错误修正同位位时,则新数据码为至少一笔读取数据片段的最低位。当新错误修正码为错误修正同位位的补码时,则数据码为至少一笔读取数据片段的最高位。于步骤250中,依据错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码,判断至少一笔读取数据片段相对于至少一笔数据片段是否具有l位错误。之后,于步骤260中,若至少一笔读取数据片段相对于至少一笔数据片段不具有l位错误,则输出至少一笔读取数据片段。于步骤250中,实质上是将错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码分别进行异或的动作来判断至少一笔读取数据片段是否具有1位错误。请参照表l,其为依照本发明较佳实施例的存储器1位读取错误检测方法的查询表。<table>tableseeoriginaldocumentpage9</column></row><table>1_l1_I.X表1上述的表1中,"E"为错误修正码及新错误修正码进行异或动作之后的结果,"P,,为同位检查码及新同位检查码进行异或动作之后的结果,"D"为数据码及新数据码进行异或动作之后的结果,"X"代表不用在意(don,tcare),'T,代表至少一笔读取数据具有1位错误,"O"代表至少一笔读取数据片段不具有1位错误。当(E,P,D)为(O,0,X)时,即代表依据错误修正码及新错误修正码判断至少一笔读取数据片段不具有1位错误,且依据同位检查码及新同位检查码判断至少一笔读取数据片段不具有l位错误,于是至少一笔读取数据片段是相同于至少一笔数据片段。此时,若D为1,则表示数据码及新数据码产生错误。当(E,P)为(O,l)时,即代表依据错误修正码及新错误修正码判断至少一笔读取数据片段不具有l位错误,但依据同位检查码及新同位检查码判断至少一笔读取数据片段具有1位错误,此时,则检视数据码及新数据码以进行更进一步的判断。当(E,P,D)为(O,1,l)时,即表示依据数据码及新数据码判断至少一笔读取数据片段具有1位错误,则修正此l位错误,此l位错误为数据码及新数据码所相对应的位。当(E,P,D)为(O,1,O)时,即表示依据数据码及新数据码判断至少一笔读取数据片段不具有l位错误,亦即发生错误者为同位检查码及新同位检查码。当(E,P,D)为(l,0,X)时,即代表依据错误修正码及新错误修正码判断至少一笔读取数据片段具有l位错误,但依据同位检查码及新同位检查码判断至少一笔读取数据片段不具有l位错误,于此情况下,产生错误者为错误修正码及新错误修正码,至少一笔读取数据片段相对于至少一笔数据片段不具有1位错误。当(E,P,D)为(l,1,X)时,即代表依据错误修正码及新错误修正码判断至少一笔读取数据片段具有l位错误,且依据同位检查码及新同位检查码判断至少一笔读取数据片段具有1位错误,于此情况下,至少一笔读取数据片段具有l位错误,于是,依据错误修正码及新错误修正码,利用错误修正检测算法修正至少一笔读取数据片段所具有的1位错误。举至少一笔数据片段为(00101011),而至少一笔读取数据片段为(00101010)为例做说明。依照上述的存储器1位读取错误检测方法,至少一笔数据片段的错误修正码为(P4P2P1"(111),同位检查码为0,数据码为1。至少一笔读取数据片段的新错误修正码为(P4P2Pl)=(lll),新同位检查码为1,新数据码为0。故可以得到(E,P,D)为(O,1,1),即得知至少一笔读取数据片段的最低位具有1位错误。于是修正至少一笔读取数据片段为(00101011)。请参照图3,其示出乃依照本发明较佳实施例的存储器的方块图。存储器300包括存储单元阵列310以及错误修正电路320。存储单元阵列310用以接收并储存至少一笔数据片段Data,存储器300从存储单元阵列310读取至少一笔数据片段Data为至少一笔读取数据片段DataR,至少一笔数据片段Data及至少一笔读取数据片段DataR的大小为2"立,n为大于或等于0的整数。错误修正电路320依据至少一笔数据片段Data产生一错误修正码、一同位检查码及一数据码,数据码相对应于错误修正码,且依据至少一笔读取数据片段DataR产生一新错误修正码、一新同位检查码及一新数据码,新数据码相对应于新错误修正码。其中,错误修正码及新错误修正码为错误修正同位位或其补码之一,错误修正码及新错误修正码大小为n位,同位检查码及新同位检查码的大小为l位,数据码及新数据码的大小为1位。其中,当错误修正码及新错误修正码为错误修正同位位时,数据码为至少一笔数据片段的最低位,新数据码为至少一笔读取数据片段的最低位。当错误修正码及新错误修正码为错误修正同位位的补码时,数据码为至少一笔数据片段的最高位,新数据码为至少一笔读取数据片段的最高位。存储器300利用错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码,判断至少一笔读取数据片段相对于至少一笔数据片段是否具有1位错误。此外,存储器300所应用的1位读取错误检测方法,已详述于本发明上述实施例所披露的存储器1位读取错误检测方法,故于此不再重述。本发明上述实施例所披露的存储器及其l位读取错误检测方法,利用仅具有错误修正同位位(ECCparitybit)或其补码之一的错误修正码、1位大小的同位检查码以及1位大小的数据码,以较简单的l位读取错误检测方法来检测存储器所储存的数据是否具有1位错误。对于2"位大小的至少一笔数据片段而言,相较于传统存储器1位读取错误测方法所需要的2n位大小的管理位,本发明所披露的存储器1位读取错误检测方法仅需要n+2位大小的管理位,大幅节省存储器空间,同时更使得存储器能具有较简单的硬件架构。此外,传统亦应用汉明码来确保数据的完整性。汉明码是于至少一笔数据片段的特定位置上附加检查位。例如当至少一笔数据片段的大小为n位时,则依循下列的公式7附加k个检查位于2G、21、22...及2卜'位,k为正整数。2k^n+k+l(公式7)其中,检查位及其相对应的位的'T,的个数必须为偶数个。利用检查位来检测并修正至少一笔数据片段的l位错误。然而,由于存储器中的位是彼此相邻,而汉明码须于特定位置附加检查位,故汉明码不适用于存储器。综上所述,虽然本发明已以一较佳实施例披露如上,然其并非用以限定本发明。本发明所属
技术领域
的技术人员,在不脱离本发明的精神和范围的前途下可作各种的更动与润饰。因此,本发明的保护范围以本发明的权利要求为准。权利要求1.一种存储器1位读取错误检测方法,包括接收至少一笔数据片段,该至少一笔数据片段的大小为2n位,n为大于或等于0的整数;依据该至少一笔数据片段产生一错误修正码、一同位检查码及一数据码,该数据码相对应于该错误修正码;将该至少一笔数据片段、该错误修正码、该同位检查码及该数据码写入于一存储器;从该存储器读取该至少一笔数据片段为至少一笔读取数据片段,该至少一笔读取数据片段的大小为2n位;依据该至少一笔读取数据片段产生一新错误修正码、一新同位检查码及一新数据码,该新数据码相对应于该新错误修正码;依据该错误修正码及该新错误修正码、该同位检查码及该新同位检查码,以及该数据码及该新数据码,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误;以及若该至少一笔读取数据片段相对于该至少一笔数据片段不具有1位错误,则输出该至少一笔读取数据片段。2.如权利要求1所述的存储器1位读取错误检测方法,其中,当该错误修正码及该新错误修正码为错误修正同位位时,该数据码为该至少一笔数据片段的最低位,该新数据码为该至少一笔读取数据片段的最低位。3.如权利要求1所述的存储器1位读取错误检测方法,其中,当该错误修正码及该新错误修正码为错误修正同位位的补码时,该数据码为该至少一笔数据片段的最高位,该新数据码为该至少一笔读取数据片段的最高位。4.如权利要求1所述的存储器1位读取错误检测方法,其中,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误的步骤还包括当依据该错误修正码及该新错误修正码判断该至少一笔读取数据片段具有1位错误,且依据该同位检查码及该新同位检查码判断该至少一笔读取数据片段具有1位错误,则依据该错误修正码及该新错误修正码修正该1位错误。5.如权利要求1所述的存储器1位读取错误4全测方法,其中,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误的步骤还包括当依据该错误修正码及该新错误修正码判断该至少一笔读取数据片段具有l位错误,但依据该同位检查码及该新同位检查码判断该至少一笔读取数据片段不具有l位错误,则该错误修正码及该新错误修正码产生错误,该至少一笔读取数据片段相对于该至少一笔数据片段不具有1位错误。6.如权利要求1所述的存储器1位读取错误检测方法,其中,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误的步骤还包括当依据该错误修正码及该新错误修正码判断该至少一笔读取数据片段不具有l位错误,但依据该同位检查码及该新同位检查码判断该至少一笔读取数据片段具有l位错误,则检视该数据码及该新数据码,当依据该数据码及该新数据码判断该至少一笔读取数据片段具有1位错误,则修正该1位错误。7.如权利要求1所述的存储器1位读取错误检测方法,其中,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误的步骤还包括当依据该错误修正码及该新错误修正码判断该至少一笔读取数据片段不具有l位错误,且依据该数据码及该新数据码判断该至少一笔读取数据片段不具有l位错误,但依据该同位检查码及该新同位检查码判断该至少一笔读取数据片段具有l位错误,则该同位检查码及该新同位检查码产生错误,该至少一笔读取数据片段相对于该至少一笔数据片段不具有1位错误。8.如权利要求1所述的存储器1位读取错误检测方法,其中,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误的步骤还包括当依据该错误修正码及该新错误修正码判断该至少一笔读取数据片段不具有l位错误,且依据该同位检查码及该新同位检查码判断该至少一笔读取数据片段不具有l位错误,但依据该数据码及该新数椐码判断该至少一笔读取数据片段具有l位错误,则该数据码及该新数据码产生错误,该至少一笔读取数据片段相对于该至少一笔数据片段不具有1位错误。9.一种存储器,包括一存储单元阵列,用以接收并储存至少一笔数据片段,该存储器从该存储单元阵列读取该至少一笔数据片段为至少一笔读取数据片段,该至少一笔数据片段及该至少一笔读取数据片段的大小为2M立,n为大于或等于0的整数;以及一错误修正电路,依据该至少一笔数据片段产生一错误修正码、一同位检查码及一数据码,该数据码相对应于该错误修正码,且依据该至少一笔读取数据片段产生一新错误修正码、一新同位检查码及一新数据码,该新数据码相对应于该新错误修正码;其中,该存储器利用该错误修正码及该新错误修正码、该同位检查码及该新同位检查码,以及该数据码及该新数据码,判断该至少一笔读取数据片段相对于该至少一笔数据片段是否具有1位错误。10.如权利要求9所述的存储器,其中,当该错误修正码及该新错误修正码为错误修正同位位时,该数据码为该至少一笔数据片段的最低位,该新数据码为该至少一笔读取数据片段的最低位。11.如权利要求9所述的存储器,其中,当该错误修正码及该新错误修正码为错误修正同位位的补码时,该数据码为该至少一笔数据片段的最高位,该新数据码为该至少一笔读取数据片段的最高位。全文摘要一种存储器1位读取错误检测方法。首先,接收2<sup>n</sup>位大小的至少一笔数据片段。接着,依据至少一笔数据片段产生错误修正码、同位检查码及数据码,并写入于存储器。然后,从存储器读取至少一笔数据片段为至少一笔读取数据片段。接着,依据至少一笔读取数据片段产生新错误修正码、新同位检查码及新数据码。另外,依据错误修正码及新错误修正码、同位检查码及新同位检查码,以及数据码及新数据码,判断至少一笔读取数据片段相对于至少一笔数据片段是否具有1位错误。之后,若至少一笔读取数据片段不具有1位错误,则输出至少一笔读取数据片段。文档编号G11C29/44GK101373641SQ20071014682公开日2009年2月25日申请日期2007年8月24日优先权日2007年8月24日发明者廖惇雨,黄世昌申请人:旺宏电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1