CN109427401A - 编码方法和使用此方法的存储器存储装置 - Google Patents

编码方法和使用此方法的存储器存储装置 Download PDF

Info

Publication number
CN109427401A
CN109427401A CN201810920952.3A CN201810920952A CN109427401A CN 109427401 A CN109427401 A CN 109427401A CN 201810920952 A CN201810920952 A CN 201810920952A CN 109427401 A CN109427401 A CN 109427401A
Authority
CN
China
Prior art keywords
data
code
code word
memory storage
storage apparatus
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.)
Granted
Application number
CN201810920952.3A
Other languages
English (en)
Other versions
CN109427401B (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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics 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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN109427401A publication Critical patent/CN109427401A/zh
Application granted granted Critical
Publication of CN109427401B publication Critical patent/CN109427401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明提供一种编码方法和使用此方法的存储器存储装置,用于采用连氏错误校正码设计的存储器存储装置,此存储器存储装置包括使用连氏码的错误校正码编码器。所述编码方法包括:接收第一数据或作为第一数据的1补数的第二数据;并且通过错误校正码编码器,基于连氏码执行编码操作。编码操作包括:当所接收到的是第一数据,根据第一数据产生第一码字;以及当所接收到的是第二数据,根据第二数据产生作为第一码字的1补数的第二码字。此外,一种使用此基于连氏码的编码方法的存储器存储装置也被提出。

Description

编码方法和使用此方法的存储器存储装置
技术领域
本发明涉及一种存储器存储装置,尤其涉及一种编码方法和使用此方法的存储器存储装置。
背景技术
一般来说,要写入可复写式非易失性存储器的数据可以根据错误校正码(errorcorrecting code,ECC)被编码成码字。从可复写式非易失性存储器读取的码字也可以通过相应的解码过程来处理以恢复成原始的数据。码字通常是数据本身和根据BCH码(Bose-Chaudhuri-Hocquenghem code)、汉明码、具有附加奇偶校验的汉明码(SECDED)、里德-所罗门码(Reed-Solomon code)、或萧氏码(Hsiao code)等所产生的奇偶校验数据的组合。
为了确认非易失性存储器的可靠性或耐久性,测试工程师必须反复循环(cycle)非易失性存储器的每一个存储单元,例如循环地将全1数据和全0数据写入每一个存储单元。有鉴于此,提供一种机制能够在采用错误校正码方法的非易失性存储器上方便地执行这种测试程序有其必要性。
发明内容
因此,本发明提供一种编码方法和使用此编码方法的存储器存储装置。通过所采用的编码方法,一个码字的1补数可以轻易地从同一个使用连氏码的错误校正码编码器来获得,且是作为另一个码字。据此,使用所提供的编码方法的存储器存储装置可以方便地被测试和循环(cycled)。
本发明的实施例提供一种编码方法,用于采用连氏错误校正码设计(scheme)的存储器存储装置的编码方法。存储器存储装置包括使用连氏码的错误校正码编码器。所述编码方法包括:接收第一数据或是作为第一数据的1补数的第二数据;以及基于连氏码,通过错误校正码编码器执行编码操作。所述编码操作包括:当所接收到的是第一数据,根据第一数据产生第一码字;以及当所接收到的是第二数据,根据第二数据产生第二码字,且第二码字为第一码字的1补数。
在本发明的实施例提供了一种存储器存储装置,采用连氏错误校正码设计。所述存储器存储装置包括连接接口、存储器阵列、和存储器控制电路。连接接口用以耦接于主机系统。存储器控制电路耦接于连接接口和存储器阵列,并且用以接收第一数据或作为第一数据的1补数的第二数据。回应于所接收的第一数据或第二数据,存储器控制电路基于连氏码执行编码操作,并且此编码操作包括:当存储器控制电路接收到第一数据,根据第一数据产生第一码字;以及当存储器控制电路接收到第二数据,根据第二数据产生第二码字,且第二码字为第一码字的1补数。
基于上述,通过采用本发明提供的编码方法和存储器存储装置,能够很容易地基于连氏码来产生码字和其1补数。因此,可以容易地循环存储器存储装置的存储单元,并且可以方便地测试存储器存储装置的耐久性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明一实施例的存储器存储装置的方块图;
图2为根据本发明一实施例的连氏码的编码方法的流程图;
图3为根据本发明一实施例的从汉明(38,32,3)改良的连氏码的编码方法的示意图;
图4为根据本发明一实施例的从汉明SECDED改良的连氏码的编码方法的示意图;
图5为根据本发明另一实施例的从BCH(44,32,5)改良的连氏码的编码方法的示意图;
图6为根据本发明另一实施例的从BCH(50,32,7)改良的连氏码的编码方法的示意图。
附图标记说明
100:存储器存储装置;
110:连接接口;
130:存储器控制电路;
131:错误校正码编码器
150:存储器阵列;
S210~S250:编码方法的步骤。
具体实施方式
本发明的较佳实施例将配合附图来详细描述。附图和说明书中会尽可能使用相同的标号来表示相同或相似的部件。
请参照图1,在一实施例中,连接接口110可以与存储器控制电路130封装在单一芯片中或设置在具有存储器控制电路130的芯片之外。
存储器控制电路130耦接于连接接口110和存储器阵列150,并且用以执行以硬件或固体方式来实作的多个逻辑门或控制命令,并根据主机系统的命令在存储器阵列150中执行诸如写入、读取、或删除数据的操作。在一实施例中,存储器存储装置100是采用连氏错误校正码设计的可复写式非易失性存储器,其中存储器控制电路130还包括使用连氏码的错误校正码编码器131,用以对通过连接接口110所接收的数据进行编码以产生码字并将其存储到存储器阵列150中,无论所接收的数据是用来被写入存储器阵列150或用来删除存储器阵列150。连氏码的特征在于,使用连氏码产生的码字的1补数仍然是使用连氏码产生的另一个码字。
存储器阵列150耦接于包括多个存储单元(例如,可复写式非易失性存储单元)的存储器控制电路130。在一实施例中,主机系统向存储器存储装置100传递写入命令以写入数据于其中。回应于写入命令,存储器控制电路130接着将数据编码成与数据相对应的码字,并将所述码字存储在存储器阵列150中。
图2是根据本发明一实施例所示出的连氏码的编码方法的流程图。连氏码的编码方法可以由图1实施例的存储器存储装置100来执行。因此,本实施例的编码方式将参照上述的存储器存储装置100来进行说明。
请参照图2,存储器控制电路130接收一笔数据(即,第一数据)或此笔数据的1补数(即,第二数据)(S210)。回应于所接收到的数据,存储器控制电路130的错误校正码编码器131基于连氏码对所接收的数据执行编码操作。详细来说,当存储器控制电路130接收到的是第一数据时(S220),错误校正码编码器131根据第一数据产生码字(即,第一码字)(S240),并且当存储器控制电路130接收到的是第二数据时(S230),错误校正码编码器131根据第二数据产生另一码字(即,第二码字),其为第一码字的1补数(S250)。
具体而言,错误校正码编码器131可以基于连氏码来计算第一数据的第一奇偶校验数据,并且在步骤S240中结合第一奇偶校验数据和第一数据以产生第一码字。另一方面,错误校正码编码器131可以基于连氏码来计算第二数据的第二奇偶校验数据,并且在步骤S250中结合第二奇偶校验数据和第二数据以产生第二码字。
在一实施例中,错误校正码编码器131接收全0模式的第一数据(例如,00000…),由错误校正码编码器131计算的第一数据的第一奇偶校验数据也是全0模式,并且由错误校正码编码器131产生的第一码字也是全0模式。另一方面,在本实施例中,一旦错误校正码编码器131接收到全1模式的第二数据(例如,11111…),由错误校正码编码器131计算出的第二数据的第二奇偶校验数据将为全1模式,并且由同一错误校正码编码器131产生的第二码字也将为全1模式。
特别是,测试工程师可以使用采用连氏码的编码方法的错误校正码编码器131来轻易地循环存储器阵列150。例如,测试工程师可以通过连接接口110循环地写入全0模式和全1模式的数据,而全0模式和全1模式的码字可因此被循环地产生并被写入存储器阵列150的存储单元。因此,被写入的存储单元在每一个循环周期中可以被翻转两次。此外,使用连氏码的错误校正码编码器131所产生的全1模式的码字,可以轻易地以覆写方式删除存储在存储器阵列150中的码字或与码字有相同长度的数据。
在另一实施例中,错误校正码编码器131接收棋盘模式的第一数据(例如,101010...),并且错误校正码编码器131计算出第一数据的第一奇偶校验数据。一旦错误校正码编码器131接收到反向棋盘模式(例如,010101...)中的第二数据,则错误校正码编码器131所计算出的第二数据的第二奇偶校验数据将为第一奇偶校验数据的1补数。
特别是,本发明的实施例中错误校正码编码器131所产生的码字的1补数,是可以从错误校正码编码器131产生的另一个码字。然而,错误校正码编码器131所应用的详细公式或算法并不在本发明的实施例中加以限制。以下将示例性的以数个实施例来描述所提供的连氏码的编码方法。
请参照图3,基于从汉明(38,32,3)改良的连氏码,错误校正码编码器131将32比特数据OD编码为38比特码字CW,并且6×32矩阵Mp是用于计算32比特数据OD的6比特奇偶校验数据PD。具体地说,32比特数据OD可以表示为具有32个元素m1至m32的一个单行向量,然后以矩阵Mp乘之,以获得具有6个元素p1至p6的一个单行向量,其中每一个元素代表6比特奇偶校验数据PD的一个比特。接着,错误校正码编码器131将32比特数据OD和6比特奇偶校验数据PD混合以产生38比特码字CW。
在图3的一实施例中,32位数据OD为全0模式(即,第一数据),并且6比特奇偶校验数据PD可以根据以下方程式(1)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6皆为0。接着,错误校正码编码器131将六个元素p1至p6插入到32比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第八、第十五、和第二十五比特。据此,错误校正码编码器131根据全0模式的数据产生的码字CW将为0000000000 0000000000 000000000000000000。
在图3的一实施例中,32比特数据OD为全1模式,并且6比特奇偶校验数据PD可以根据以下方程式(2)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6皆为1。接着,错误校正码编码器131将六个元素p1至p6插入到32比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第八、第十五、和第二十五比特。因此,错误校正码编码器131根据全1模式的数据产生的码字CW将为1111111111 1111111111 111111111111111111。
在图3的一实施例中,32比特数据OD为棋盘模式,并且6比特奇偶校验数据PD可以根据以下方程式(3)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6为111110。接着,错误校正码编码器131将六个元素p1至p6插入到32比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第八、第十五、和第二十五比特。因此,错误校正码编码器131根据棋盘模式的数据产生的码字CW将为1111010110 1010110101 010100101010101010。
在图3的一实施例中32比特数据OD处于反棋盘模式中,并且6比特奇偶校验数据PD可以根据以下方程式(4)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6为000001。接着,错误校正码编码器131将六个元素p1至p6插入到32比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第八、第十五、和第二十五比特。因此,错误校正码编码器131根据反棋盘模式的数据产生的码字CW将为0000101001 0101001010 101011010101010101。
根据以上几个实施例可知,当两数据是彼此的1补数时,由错误校正码编码器131根据两数据分别产生的两个码字也将是彼此的1补数。换句话说,错误校正码编码器131的码字的1补数也是同一错误校正码编码器131的码字。
请参照图4,基于从汉明SECDED所改良的连氏码,错误校正码编码器131将16比特数据OD编码为22比特码字CW,并且6×16矩阵Mp是用于计算16比特数据OD的6比特奇偶校验数据PD。具体而言,16比特数据OD表示为具有16个元素m1至m16的一个单行向量,然后以矩阵Mp乘之,以获得具有6个元素p1至p6的一个单行向量,其中每一个元素代表6比特奇偶校验数据PD的一个比特。然后,错误校正码编码器131将16比特数据OD和6比特奇偶校验数据PD混合以产生22比特码字CW。
在图4的一实施例中,16比特数据OD为全0模式(即,第一数据),并且6比特奇偶校验数据PD可以根据以下方程式(5)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6皆为0。接着,错误校正码编码器131将六个元素p1至p6插入到16比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第七、第十四、和第二十二比特。据此,错误校正码编码器131根据全0模式的数据产生的码字CW将为0000000000 0000000000 00。
在图4的一实施例中,16比特数据OD为全1模式,并且6比特奇偶校验数据PD可以根据以下方程式(6)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6皆为1。然后,错误校正码编码器131将六个元素p1至p6插入到16比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第七、第十四、和第二十二比特。据此,错误校正码编码器131根据全1模式的数据产生的码字CW将为1111111111 1111111111 11。
在图4的一实施例中,16比特数据OD为棋盘模式,并且6比特奇偶校验数据PD可以根据以下方程式(7)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6为101110。接着,错误校正码编码器131将六个元素p1至p6插入到32比特数据中以产生码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第七、第十四、和第二十二比特。因此,错误校正码编码器131根据棋盘模式的数据产生的码字CW将为1011011010 1011010101 00。
在图4的一实施例中,16比特数据OD为反棋盘模式,并且6比特奇偶校验数据PD可以根据以下方程式(8)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的六个元素p1至p6为010001。接着,错误校正码编码器131将六个元素p1至p6插入到16比特数据中以产生代码字CW,使得元素p1至p6分别为码字CW的第一、第二、第四、第七、第十四、和第二十二比特。因此,错误校正码编码器131根据反棋盘模式的数据产生的码字CW将为0100100101 0100101010 11。
根据以上几个实施例可知,当两数据是彼此的1补数时,由错误校正码编码器131根据两数据分别产生的两个码字也将是彼此的1补数。换句话说,错误校正码编码器131的码字的1补数也是同一错误校正码编码器131的码字。
请参照图5,基于BCH(44,32,5)所改良的连氏码,错误校正码编码器131将32比特数据OD编码为44比特码字CW,并且12×39矩阵Mp是用于计算32比特数据OD的12比特奇偶校验数据PD。具体而言,首先通过将7比特的“0”插入到32比特数据OD中来将32比特数据OD扩展为39比特数据MD,以产生第二、第六、第九、第十一、第十四、第十九、和第二十一比特是被插入的“0”的39比特数据MD。如图5所示,39比特数据MD可以表示为具有39个元素m1至m32和七个0的一个单行向量,其中32个元素m1至m32代表数据OD的32个比特。接着将39比特数据MD以矩阵Mp乘之,以获得具有12个元素p1至p12的一个单行向量,其中每一个元素代表12比特奇偶校验数据PD的一个比特。随后,错误校正码编码器131将32比特数据OD附加到12比特奇偶校验数据PD,以产生44比特码字CW。
在图5的一实施例中,32比特数据OD为全0模式,并且被修改为同样是全0模式的39比特数据MD。12比特奇偶校验数据PD可以根据以下方程式(9)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十二个元素p1至p12皆为0。接着,错误校正码编码器131将32比特数据OD附加到12比特奇偶校验数据PD,以产生44比特码字CW。因此,错误校正码编码器131根据全0模式的数据产生的码字CW将为0000000000 00000000000000000000 0000000000 0000。
在图5的一实施例中,32比特数据OD为全1模式,并且被修改为10111011010110111101 0111111111 111111111的39比特数据MD。12比特奇偶校验数据PD可以根据以下方程式(10)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十二个元素p1至p12皆为1。接着,错误校正码编码器131将32比特数据OD附加到12比特奇偶校验数据PD,以产生44比特码字CW。因此,错误校正码编码器131根据全1模式的数据产生的码字CW将为1111111111 11111111111111111111 1111111111 1111。
在图5的一实施例中,32比特数据OD为棋盘模式,并且被修改为10010010010010010100 0101010101 010101010的39比特数据MD。12比特奇偶校验数据PD可以根据以下方程式(11)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十二个元素p1至p12为111100110010。接着,错误校正码编码器131将32比特数据OD附加到12比特奇偶校验数据PD,以产生44比特码字CW。因此,错误校正码编码器131根据棋盘模式的数据产生的码字CW将为1111001100 1010101010 1010101010 1010101010 1010。
在图5的一实施例中,32比特数据OD为反棋盘模式,并且被修改为00101001000100101001 0010101010 101010101的39比特数据MD。12比特奇偶校验数据PD可以根据以下方程式(12)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十二个元素p1至p12为000011001101。接着,错误校正码编码器131将32比特数据OD附加到12比特奇偶校验数据PD,以产生44比特码字CW。因此,错误校正码编码器131根据反棋盘模式的数据产生的码字CW将为0000110011 0101010101 0101010101 0101010101 0101。
就像使用图3和图4的实施例中说明的连氏码的编码方法来进行编码,当两个数据是彼此的1补数时,由错误校正码编码器131根据两数据分别产生的两个码字也将是彼此的1补数。换句话说,错误校正码编码器131的码字的1补数也是同一错误校正码编码器131的码字。
请参照图6,基于BCH(50,32,7)所改良的连氏码,错误校正码编码器131将32比特数据OD编码为50比特码字CW,并且18×40矩阵Mp是用于计算32比特数据OD的18比特奇偶校验数据PD。具体而言,首先通过将8比特的“0”插入到32比特数据OD中来将32比特数据OD扩展为40比特数据MD,以产生第八、第十、第十四、第十五、第十六、第二十三、第二十八、和第三十比特是被插入的“0”的40比特数据MD。如图6所示,40比特数据MD可以表示为具有40个元素m1至m32和八个0的一个单行向量,其中32个元素m1至m32代表数据OD的32个比特。接着将40比特数据MD以矩阵Mp乘之,以获得具有18个元素p1至p18的一个单行向量,其中每一个元素代表18比特奇偶校验数据PD的一个比特。随后,错误校正码编码器131将32比特数据OD附加到18比特奇偶校验数据PD,以产生50比特码字CW。
在图6的一实施例中,32比特数据OD为全0模式,并且被修改为同样是全0模式的40比特数据MD。18比特奇偶校验数据PD可以根据以下方程式(13)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十八个元素p1至p18皆为0。接着,错误校正码编码器131将32比特数据OD附加到18比特奇偶校验数据PD,以产生50比特码字CW。因此,错误校正码编码器131根据全0模式的数据产生的码字CW将为0000000000 00000000000000000000 0000000000 0000000000。
在图6的一实施例中,32比特数据OD为全1模式,并且被修改为11111110101110001111 1101111010 1111111111的40比特数据MD。18比特奇偶校验数据PD可以根据以下方程式(14)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十八个元素p1至p18皆为1。接着,错误校正码编码器131将32比特数据OD附加到18比特奇偶校验数据PD,以产生50比特码字CW。因此,错误校正码编码器131根据全1模式的数据产生的码字CW将为1111111111 11111111111111111111 1111111111 1111111111。
在图6的一实施例中,32比特数据OD为棋盘模式,并以被修改为10101010001010000101 0100101000 1010101010的40比特数据MD。18比特奇偶校验数据PD可以根据以下方程式(15)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十八个元素p1至p18为010011110011111100。接着,错误校正码编码器131将32比特数据OD附加到18比特奇偶校验数据PD,以产生50比特码字CW。因此,错误校正码编码器131根据棋盘模式的数据产生的码字CW将为0100111100 1111110010 1010101010 1010101010 1010101010。
在图6的一实施例中,32比特数据OD为反棋盘模式,并且被修改为01010100100100001010 1001010010 0101010101的40比特数据MD。18比特奇偶校验数据PD可以根据以下方程式(16)计算:
在二进位矩阵乘法之后,奇偶校验数据PD的十八个元素p1至p18为101100001100000011。接着,错误校正码编码器131将32比特数据OD附加到18比特奇偶校验数据PD,以产生50比特码字CW。因此,错误校正码编码器131根据反棋盘模式的数据产生的码字CW将为1011000011 0000001101 0101010101 0101010101 0101010101。
就像使用图3到图5的实施例中说明的连氏码的编码方法来进行编码,当两数据是彼此的1补数时,由错误校正码编码器131根据两数据分别产生的两个码字也将是彼此的1补数。换句话说,错误校正码编码器131的码字的1补数也是同一错误校正码编码器131的码字。
应当注意的是,上述连氏码的编码方法不仅是针对上述的特定输入数据,所有的数据都适于连氏码的编码方法。所属领域技术人员可将任意的32比特数据及其1补数输入如上述实施例所介绍的使用连氏码的错误校正码编码器131(例如,使用矩阵Mp)中,而互为1补数的两个码字会因连氏码的编码方法而分别产生。
应当注意的是,错误校正码编码器131所采用的编码方法的编码公式或算法并不限于图3至图6的示范性实施例所介绍的编码公式或算法。例如,连氏码的编码公式或算法可以基于任一BCH码、汉明码、具有附加奇偶校验的汉明码(SECDED),里德-所罗门码、或萧氏码等,且并不限于此。参照现有技术中的常识,可以获得上述步骤及其实施例足够的教导、建议和实施说明,在此就不再赘述。
在本发明的一实施例中,主机系统可以发出将第一数据写入存储器阵列150的写入命令,并且存储器控制电路130可以通过连接接口110接收第一数据。回应于此写入命令,存储器控制电路130可以基于前面所介绍的连氏码来执行编码操作,根据第一数据产生第一码字,并将所产生的第一码字写入存储器阵列150中。在此实施例中,主机系统可以发出另一个写入命令,将作为第一数据的1补数的第二数据写入存储器阵列150,并且存储器控制电路130可以通过连接接口110接收第二数据。回应于所接收的写入命令,存储器控制电路130可以基于前面所介绍的连氏码来执行编码操作,根据第二数据产生第二码字,并且将所产生的第二码字写入存储器阵列150中,其中所产生的第二码字会是第一码字的1补数。
在此实施例中,主机系统还可以发出将第三数据写入存储器阵列150的写入命令,并且存储器控制电路130可以通过连接接口110接收第三数据。回应于此写入命令,存储器控制电路130可以执行之前面所介绍的连氏码的编码操作,根据第三数据产生第三码字,并将所产生的第三码字写入存储器阵列150中。在此实施例中,主机系统可以更发出另一写入命令,将作为第三数据的1补数的第四数据写入存储器阵列150,并且存储器控制电路130可以通过连接接口110接收第四数据。回应于所接收的写入命令,存储器控制电路130可以根据前面介绍的连氏码执行编码操作,根据第四数据产生第四码字,并且将所产生的第四码字写入存储器阵列150中。其中,第一、第二、第三、和第四数据彼此并不相同,且所产生的第四码字会是第三码字的1补数。
综上所述,通过本发明所提供的编码方法和存储器存储装置,使用连氏码的错误校正码编码器产生的码字的1补数也是此使用连氏码的错误校正码编码器的另一个码字,因此通过使用连氏码可以容易生成一对的码字和此码字的1补数。从而,可以容易地循环存储器存储装置的存储单元,并且可以很方便地测试存储器存储装置的耐久性。

Claims (16)

1.一种编码方法,用于采用连氏错误校正码设计的存储器存储装置,所述编码方法包括:
接收第一数据或第二数据,其中所述第二数据是所述第一数据的1补数;以及
通过错误校正码编码器,基于连氏码执行编码操作,其中所述存储器存储装置包括使用所述连氏码的所述错误校正码编码器,其中所述编码操作包括:
当所接收的是所述第一数据,根据所述第一数据产生第一码字;以及
当所接收的是所述第二数据,根据所述第二数据产生第二码字,其中所述第二码字是所述第一码字的1补数。
2.根据权利要求1所述的编码方法,其中根据所述第一数据产生所述第一码字包括:
通过所述错误校正码编码器,依据所述连氏码计算所述第一数据的第一奇偶校验数据;以及
结合所述第一奇偶校验数据和所述第一数据以产生所述第一码字,其中根据所述第二数据产生所述第二码字包括:
通过所述错误校正码编码器,依据所述连氏码计算所述第二数据的第二奇偶校验数据;以及
结合所述第二奇偶校验数据和所述第二数据以产生所述第二码字。
3.根据权利要求2所述的编码方法,其中各所述第一数据以及所述第一奇偶校验数据为全0模式,并且各所述第二数据以及所述第二奇偶校验数据为全1模式。
4.根据权利要求2所述的编码方法,其中各所述第一数据以及所述第一奇偶校验数据为棋盘模式,并且各所述第二数据以及所述第二奇偶校验数据为反棋盘模式。
5.根据权利要求1所述的编码方法,还包括:
接收第三数据或第四数据,其中所述第四数据是所述第三数据的1补数,其中所述第一数据、所述第二数据、所述第三数据、以及所述第四数据彼此互相不同;
回应于所接收的所述第三数据或所述第四数据,通过使用所述连氏码的所述错误校正码编码器执行所述编码操作,其中所述编码操作还包括:
当所接收的是所述第三数据,根据所述第三数据产生第三码字;以及
当所接收的是所述第四数据,根据所述第四数据产生第四码字,其中所述第四码字是所述第三码字的1补数。
6.根据权利要求1所述的编码方法,还包括:
将所产生的所述第一码字或所述第二码字写入所述存储器存储装置的存储器阵列。
7.根据权利要求1所述的编码方法,其中由所述连氏码所生成的码字的1补数是由所述连氏码生成的另一码字。
8.一种存储器存储装置,采用使用连氏码的连氏错误校正码设计,所述存储器存储装置包括:
连接接口,用以耦接于主机系统;
存储器阵列;以及
存储器控制电路,耦接于所述连接接口以及所述存储器阵列,其中所述存储器控制电路用以接收第一数据或第二数据,其中所述第二数据是所述第一数据的1补数,
其中回应于所接收的所述第一数据或所述第二数据,所述存储器控制电路基于所述连氏码执行编码操作,其中所述编码操作包括:
当所述存储器控制电路接收到所述第一数据,根据所述第一数据产生第一码字;以及
当所述存储器控制电路接收到所述第二数据,根据所述第二数据产生第二码字,其中所述第二码字是所述第一码字的1补数。
9.根据权利要求8所述的存储器存储装置,其中所述第一码字包括所述第一数据和第一奇偶校验数据,所述第二码字包括所述第二数据和第二奇偶校验数据,并且所述第二奇偶校验数据是所述第一奇偶校验数据的1补数。
10.根据权利要求9所述的存储器存储装置,其中各所述第一数据和所述第一奇偶校验数据为全0模式,并且各所述第二数据和所述第二奇偶校验数据为全1模式。
11.根据权利要求9所述的存储器存储装置,其中各所述第一数据和所述第一奇偶校验数据为棋盘模式,并且各所述第二数据和所述第二奇偶校验数据为反棋盘模式。
12.根据权利要求8所述的存储器存储装置,其中所述存储器控制电路更用以接收第三数据或第四数据,其中所述第四数据是所述第三数据的1补数,其中所述第一数据、所述第二数据、所述第三数据、和所述第四数据彼此互相不同,
其中回应于所接收的所述第三数据或所述第四数据,所述存储器控制电路基于连氏码进行所述编码操作,其中所述编码操作还包括:
当所述存储器控制电路接收到所述第三数据,根据所述第三数据产生第三码字;以及
当所述存储器控制电路接收到所述第四数据,根据所述第四数据产生第四码字,其中所述第四码字是所述第三码字的1补数。
13.根据权利要求8所述的存储器存储装置,其中所述存储器控制电路更将所产生的第一码字或第二码字写入所述存储器阵列。
14.根据权利要求8所述的存储器存储装置,其中所述存储器控制电路包括使用所述连氏码的错误校正码编码器。
15.根据权利要求8所述的存储器存储装置,其中所述存储器存储装置是可复写式非易失性存储器。
16.根据权利要求8所述的存储器存储装置,其中由所述连氏码生成的码字的1补数是由所述连氏码产生的另一代码字。
CN201810920952.3A 2017-08-29 2018-08-14 编码方法和使用此方法的存储器存储装置 Active CN109427401B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/688,865 2017-08-29
US15/688,865 US10372535B2 (en) 2017-08-29 2017-08-29 Encoding method and a memory storage apparatus using the same

Publications (2)

Publication Number Publication Date
CN109427401A true CN109427401A (zh) 2019-03-05
CN109427401B CN109427401B (zh) 2023-08-29

Family

ID=65434226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810920952.3A Active CN109427401B (zh) 2017-08-29 2018-08-14 编码方法和使用此方法的存储器存储装置

Country Status (3)

Country Link
US (1) US10372535B2 (zh)
CN (1) CN109427401B (zh)
TW (1) TWI664637B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540866A (zh) * 2019-09-20 2021-03-23 华邦电子股份有限公司 存储器装置及其数据存取方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210138241A (ko) * 2020-05-12 2021-11-19 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
US11416419B2 (en) * 2020-12-21 2022-08-16 Advanced Micro Devices, Inc. Method and apparatus for protecting a memory from a write attack

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219807B1 (en) * 1997-11-14 2001-04-17 Nec Corporation Semiconductor memory device having an ECC circuit
US20040128436A1 (en) * 2002-12-30 2004-07-01 Alon Regev Priority resolver and "near match" detection circuit
CN1612119A (zh) * 2003-10-29 2005-05-04 鸿富锦精密工业(深圳)有限公司 固态存储器的安全存储系统及方法
US20070277066A1 (en) * 2006-05-23 2007-11-29 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
CN101771525A (zh) * 2010-01-01 2010-07-07 江苏华丽网络工程有限公司 高速数字通信线路误码检测装置和方法
CN104246898A (zh) * 2012-05-31 2014-12-24 惠普发展公司,有限责任合伙企业 局部错误检测和全局错误纠正

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145977B2 (en) 2007-10-15 2012-03-27 Joseph Schweiray Lee Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
US8543891B2 (en) 2011-09-21 2013-09-24 Apple Inc. Power-optimized decoding of linear codes
US8902672B2 (en) * 2013-01-01 2014-12-02 Memoir Systems, Inc. Methods and apparatus for designing and constructing multi-port memory circuits
US9582354B2 (en) 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219807B1 (en) * 1997-11-14 2001-04-17 Nec Corporation Semiconductor memory device having an ECC circuit
US20040128436A1 (en) * 2002-12-30 2004-07-01 Alon Regev Priority resolver and "near match" detection circuit
CN1612119A (zh) * 2003-10-29 2005-05-04 鸿富锦精密工业(深圳)有限公司 固态存储器的安全存储系统及方法
US20070277066A1 (en) * 2006-05-23 2007-11-29 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
CN101771525A (zh) * 2010-01-01 2010-07-07 江苏华丽网络工程有限公司 高速数字通信线路误码检测装置和方法
CN104246898A (zh) * 2012-05-31 2014-12-24 惠普发展公司,有限责任合伙企业 局部错误检测和全局错误纠正

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540866A (zh) * 2019-09-20 2021-03-23 华邦电子股份有限公司 存储器装置及其数据存取方法
CN112540866B (zh) * 2019-09-20 2024-01-23 华邦电子股份有限公司 存储器装置及其数据存取方法

Also Published As

Publication number Publication date
CN109427401B (zh) 2023-08-29
US10372535B2 (en) 2019-08-06
TW201913687A (zh) 2019-04-01
TWI664637B (zh) 2019-07-01
US20190065307A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
TWI517173B (zh) 更新可靠度資料之設備及方法
KR101645906B1 (ko) 계층적 반복 에러 교정을 위한 종료 기준
US9070453B2 (en) Multiple programming of flash memory without erase
KR101027202B1 (ko) 작은 데이터 구조의 ecc 보호 장치, 방법 및 시스템
CN102110481A (zh) 具有ecc电路的半导体存储系统及其控制方法
TW201626224A (zh) 使用來自多個儲存單元與一同位儲存單元的可靠性資訊以針對該等儲存單元中的一錯誤者恢復資料的技術
TW201722090A (zh) 用於nand快閃記憶體的渦輪乘積碼
CN104115126A (zh) 使用代数码的多阶段ecc编码
CN103839594A (zh) 固态储存装置及其联合编解码方法
CN109427401A (zh) 编码方法和使用此方法的存储器存储装置
CN104393878A (zh) 用于纠正在编码比特序列中的至少单比特错误的设备和方法
CN103325425B (zh) 存储器控制器
CN103283149B (zh) 用于处理数据元素序列的装置和方法
CN108268338B (zh) 逐渐缩减大小的可变节点存储器
US10191801B2 (en) Error correction code management of write-once memory codes
CN109785895B (zh) 纠正NAND Flash中多比特错误的ECC装置和方法
US10514980B2 (en) Encoding method and memory storage apparatus using the same
CN110716824B (zh) 编码方法及使用所述编码方法的存储器存储装置
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
US10693498B2 (en) Parity check matrix generator, operating method thereof and error correction circuit using parity check matrix generated by the same
CN105304143A (zh) 解码方法、存储器控制电路单元及存储器存储装置
JP2020046823A (ja) メモリシステム
CN106708649B (zh) 解码方法、存储器储存装置及存储器控制电路单元
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same
Gregori et al. Construction of polyvalent error control codes for multilevel memories

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
GR01 Patent grant
GR01 Patent grant