CN113380303A - 内存存储装置及数据访问方法 - Google Patents

内存存储装置及数据访问方法 Download PDF

Info

Publication number
CN113380303A
CN113380303A CN202010161867.0A CN202010161867A CN113380303A CN 113380303 A CN113380303 A CN 113380303A CN 202010161867 A CN202010161867 A CN 202010161867A CN 113380303 A CN113380303 A CN 113380303A
Authority
CN
China
Prior art keywords
bits
data
polarity
written
error
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
CN202010161867.0A
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.)
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
Priority to CN202010161867.0A priority Critical patent/CN113380303A/zh
Publication of CN113380303A publication Critical patent/CN113380303A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/26Sensing or reading circuits; Data output 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
    • 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

Abstract

本发明提供一种内存存储装置,包括内存存储阵列以及内存控制器。内存存储阵列用于存储数据。内存控制器耦接至内存存储阵列。内存控制器用于将欲写入的数据写入内存存储阵列。欲写入的数据包括多个数据位及翻转位。并且,内存控制器对欲写入的数据进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。内存控制器依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性。另外,一种数据访问方法亦被提出。

Description

内存存储装置及数据访问方法
技术领域
本发明涉及电子装置及操作方法,且确切地说涉及一种内存存储装置及数据访问方法。
背景技术
一般来说,可根据错误校正码(error correcting code,ECC)将欲写入到非易失性或易失性内存(non-volatile or volatile memory)的数据编码成码字(code word)。也可通过对应的译码程序来处理从内存读取的码字以还原所述数据。码字通常是数据本身与根据以下产生的校验位(parity bits)的组合:博斯-乔杜里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、汉明码(hamming code)、具有额外奇偶校验的汉明码(SECDED)、里德-索罗门(Reed-Solomon)码、萧氏(Hsiao)码、或连氏(Lien)码等。
然而,错误校正码引擎的校正能力愈强(即可校正错误位的数量愈多),就必须要愈多的校验位。校验位的数量愈多就会增加所述数据的位开支(overhead)。
发明内容
本发明提供一种内存存储装置及数据访问方法,可增加对数据中的错误位的校正能力。
本发明的内存存储装置包括内存存储阵列以及内存控制器。内存存储阵列用于存储数据。内存控制器耦接至内存存储阵列。内存控制器用于将欲写入的数据写入内存存储阵列。欲写入的数据包括多个数据位及翻转位(flip bit)。并且,内存控制器对欲写入的数据进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。内存控制器依据错误位的数量来决定是否将数据位及翻转位的极性倒置(invert),并且记录翻转位的极性(parity)。
本发明的内存存储装置的数据访问方法,包括:对欲写入的数据进行验证操作,以判断多个数据位是否包括错误位并且记录错误位的信息,其中欲写入的数据包括数据位及一翻转位,以及错误位的信息包括错误位的数量;依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性;以及将欲写入的数据写入内存存储阵列。
附图说明
包含附图以提供对本发明的进一步理解,且附图并入在本说明书中并且构成本说明书的一部分。附图说明本发明的实施例,并且与描述一起用于解释本发明的原理。
图1示出本发明一实施例的内存存储装置的概要示意图。
图2示出本发明一实施例的数据访问方法的步骤流程图。
图3示出本发明另一实施例的内存存储装置的概要示意图。
图4示出本发明一实施例的数据写入方法的步骤流程图。
图5示出本发明一实施例的数据读取方法的步骤流程图。
附图标号说明
100、300:内存存储装置;
110:内存控制器;
120:内存存储阵列;
200:欲写入的数据;
230:输入缓冲器;
240:缓存器;
250:错误校正码引擎;
S100、S110、S120、S200、S210、S220、S230、S240、S300、S310、S320、S330、S340、S350、S360:方法步骤。
具体实施方式
以下提出多个实施例来说明本发明,然而本发明不仅限于所例示的多个实施例。又实施例之间也允许有适当的结合。
图1示出本发明一实施例的内存存储装置的概要示意图。请参考图1,本发明一实施例的内存存储装置100包括内存控制器110及内存存储阵列120。内存存储阵列120用于存储数据。内存控制器110耦接至内存存储阵列120。内存控制器110用于对内存存储阵列120执行写入操作、读取操作及验证操作等类似的操作。
在本实施例中,欲写入的数据200包括多个数据位及至少一个翻转位(flip bit)。内存控制器110用于将欲写入的数据200写入内存存储阵列120。内存控制器110对欲写入的数据200进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。内存控制器110依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且依据记录翻转位的极性。接着,内存控制器110将欲写入的数据200写入内存存储阵列120。在本实施例中,内存存储阵列120中所存储的数据(已写入数据)的数据位及翻转位的极性可能经过倒置或未经过倒置。
在本实施例中,内存控制器110可以为具运算能力的处理器。或者,内存控制器110可以是通过硬件描述语言(Hardware Description Language,HDL)或是其他任意本领域技术人员所熟知的数字电路的设计方式来进行设计,并通过现场可程序逻辑门阵列(FieldProgrammable Gate Array,FPGA)、复杂可程序逻辑装置(Complex Programmable LogicDevice,CPLD)或是特殊应用集成电路(Application-specific Integrated Circuit,ASIC)的方式来实现的硬件电路。在本实施例中,内存存储阵列120的硬件结构及实施方式可以由本技术领域的技术获得足够的教导、建议与实施说明,因此不再重复说明。
图2示出本发明一实施例的数据访问方法的步骤流程图。本实施例的数据访问方法至少适用于图1的内存存储装置100,本发明并不加以限制。请参考图1及图2,在步骤S100中,内存控制器110对欲写入的数据200进行验证操作,以判断欲写入的数据200的数据位是否包括错误位并且记录该错误位的信息。在步骤S110中,内存控制器110依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性。在步骤S120中,内存控制器110将欲写入的数据200写入内存存储阵列120而成为已写入的数据。
图3示出本发明另一实施例的内存存储装置的概要示意图。请参考图1及图3,本实施例的内存存储装置200类似于图1的内存存储装置100,惟两者之间主要的差异例如在于,内存存储装置200还包括输入缓冲器230、缓存器240、错误校正码引擎250。
在本实施例中,输入缓冲器230用于存储欲写入的数据200。在内存控制器110对内存存储阵列120进行读取操作时,错误校正码引擎250用于对所读取的数据进行错误校正程序。在本实施例中,错误校正码引擎250的校正能力为n个位,其中n为自然数。在一实施例中,n例如为1~3。缓存器240用于存储错误位的信息。内存控制器110将错误位的信息记录在缓存器240中。缓存器240例如是易失性缓存器/缓冲器(volatile register/buffer),本发明并不加以限制。在本实施例中,输入缓冲器230、缓存器240、错误校正码引擎250的实施方式可以由本技术领域的公知常识获得足够的教导、建议与实施说明,因此不再重复说明。
图4示出本发明一实施例的数据写入方法的步骤流程图。本实施例的数据写入方法至少适用于图3的内存存储装置300,本发明并不加以限制。下表1是欲写入的数据200的码字的实施范例,惟本发明不限于此。
表1
Figure BDA0002406084510000041
在本实施例中,欲写入的数据200包括32位的信息位(message bits)、18位的校验位及1位的翻转位,即共51个位的码字,其数量及极性仅用于例示说明,本发明不加以限制。在上表1中,第1行(line)表示欲写入的数据200;第2行表示欲写入的数据200的错误位的信息,错误位的信息包括错误位的数量、位置及极性;第3行表示欲写入的数据200的部分位被倒置;第4行表示欲读取的数据的全部位被倒置。
请参考图3及图4,在步骤S200中,内存控制器110要对欲写入的数据200进行写入操作,欲写入的数据200如表1中的第1行所例示。在本实施例中,在欲写入的数据200输入内存存储装置200之后,例如先存储在输入缓冲器230以待内存控制器110进行验证操作。在步骤S210中,内存控制器110对欲写入的数据200进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。在本实施例中,内存控制器110将错误位的信息记录在缓存器240中。错误位的信息包括错误位的数量、位置及极性。在此例中,错误位的数量为6,位置及极性如表1中的第2行所例示。
在本实施例中,错误校正码引擎250的校正能力为3个位。在步骤S220中,内存控制器110判断错误位的数量是否大于错误校正码引擎250的校正能力。也就是说,内存控制器110判断错误位的数量是否大于3。在本实施例中,错误位的数量为6。内存控制器110判断错误位的数量是大于3,并且执行步骤S230,以将数据位及翻转位的极性倒置,如表1中的第3行所例示,并且,内存控制器110记录翻转位的极性为0(第一极性)。因此,内存控制器110会依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性。
在本实施例中,内存控制器110是将翻转位及部分的数据位的极性倒置。举例而言,在步骤S230中,内存控制器110保持错误位的极性为0,并且将错误位写入内存存储阵列120。于此同时,内存控制器110将翻转位及错误位以外的其余数据位的极性倒置,例如从极性1倒置为极性0,接着将被倒置的数据位及翻转位写入内存存储阵列120中,如表1中的第3行所例示。在本实施例中,在表1的第1、2行中,翻转位原来的极性为1,且在步骤S230中被倒置,因此,内存控制器110将翻转位的极性记录为0。
另一方面,当错误位的数量不大于3时,内存控制器110执行步骤S240,将欲写入的数据200直接写入内存存储阵列120而不将数据位及翻转位的极性倒置。并且,内存控制器110将翻转位的极性记录为1(第二极性),其中第二极性与第一极性不相同。在表1的第1、2行中,翻转位原来的极性为1,且在步骤S240中没有被倒置,因此,内存控制器110将翻转位的极性记录为1。第一极性、第二极性为0或1不用于限定本发明。
图5示出本发明一实施例的数据读取方法的步骤流程图。本实施例的数据读取方法至少适用于图3的内存存储装置300,本发明并不加以限制。请参考图3及图5,在步骤S300中,内存控制器110对内存存储阵列120进行读取操作。在步骤S310中,内存控制器110判断已写入的数据的翻转位的极性,并且依据判断结果来决定是否将已写入的数据的全部的数据位的极性倒置,并且读取极性已倒置的数据。
举例而言,当内存控制器110判断翻转位的极性是0(第一极性)时,内存控制器110执行步骤S320,将已写入的数据的全部的数据位的极性倒置,如表1中的第4行所例示,并且读取极性已倒置的数据。也就是说,当翻转位的极性记录为0时,表示内存控制器110在进行读取操作时,会将全部的数据位的极性倒置,且读取存储在内存存储阵列120中的数据(已写入的数据)。因此,即使当错误位的数量大于3时,错误位也可被校正。
反之,当内存控制器110判断翻转位的极性是1(第二极性)时,内存控制器110执行步骤S330,不将已写入的数据的数据位的极性倒置,而是直接读取内存存储阵列120中所存储的已写入的数据。也就是说,当翻转位的极性记录为1时,表示内存控制器110在进行读取操作时,不会将数据位的极性倒置,而是直接读取存储在内存存储阵列120中的数据。因此,当错误位的数量不大于3时,错误位可由错误校正码引擎250来校正。
接着,错误校正码引擎250接收从内存存储阵列120中所读取的数据(已读取的数据),其极性可能经过倒置或未经过倒置。在步骤S340中,错误校正码引擎250判断已读取的数据的错误位的数量是否大于n,在此例中,n例如为3。当已读取的数据的错误位的数量大于n时,在步骤S350中,内存控制器110判断已读取的数据为失效(fail)。反之,当已读取的数据的错误位的数量不大于n时,在步骤S360中,错误校正码引擎250对已读取的数据进行错误校正程序,且内存控制器110判断经错误校正程序处理的已读取的数据为通过(pass)。
总结来说,在本发明的实施例中,内存存储装置包括输入缓冲器,可用来存储欲写入的数据。欲写入的数据包括至少一个翻转位,用来作为指示位(indicator bit),以指示内存控制器在进行数据读取操作时是否要将数据倒置,再读取数据。内存存储装置包括缓存器,可用来记录对数据进行验证操作之后所获得的错误位的信息,其包括错误位的数量、位置及极性。若错误位的数量不大于错误校正码引擎的校正能力,内存控制器直接将欲写入的数据写入内存存储阵列而不将其极性倒置,并且记录对应的翻转位的极性。若错误位的数量大于错误校正码引擎的校正能力,内存控制器将部分欲写入的数据的极性倒置,并且保留错误位的极性不变,再将数据写入内存存储阵列,并且记录对应的翻转位的极性。接着,在内存控制器要读取数据时,再依据翻转位的极性来决定要不要翻转数据后再读取。利用上述数据访问方法,本发明实施例的内存存储装置可增加对数据中的错误位的校正能力。
本领域的技术人员将可以理解的是,在不脱离本发明的范围或精神的情况下,可以对本发明的结构进行各种修改和变化。鉴于前文,希望本发明涵盖对本发明的修改和变化,条件是所述修改和变化落在所附权利要求及其等效物的范围内。

Claims (14)

1.一种内存存储装置,包括:
内存存储阵列,用于存储数据;以及
内存控制器,耦接至所述内存存储阵列,用于将欲写入的数据写入所述内存存储阵列,其中所述欲写入的数据包括多个数据位及翻转位,并且所述内存控制器对所述欲写入的数据进行验证操作,以判断所述数据位是否包括错误位并且记录所述错误位的信息,
其中所述内存控制器依据所述错误位的数量来决定是否将所述数据位及所述翻转位的极性倒置,并且记录所述翻转位的极性。
2.根据权利要求1所述的内存存储装置,还包括缓存器,用于存储所述错误位的信息,其中所述内存控制器将所述错误位的信息记录在所述缓存器中。
3.根据权利要求1所述的内存存储装置,还包括错误校正码引擎,所述错误校正码引擎的校正能力为n个位,且所述内存控制器判断所述错误位的数量是否大于n,其中n为自然数。
4.根据权利要求3所述的内存存储装置,其中当所述错误位的数量大于n时,所述内存控制器将所述数据位及所述翻转位的极性倒置,并且将所述翻转位的极性记录为第一极性。
5.根据权利要求4所述的内存存储装置,其中当所述错误位的数量大于n时,所述内存控制器保持所述错误位的极性,并且将所述错误位写入所述内存存储阵列,以及所述内存控制器将所述错误位以外的其余所述数据位及所述翻转位的极性倒置,并且将被倒置的其余所述数据位及所述翻转位写入所述内存存储阵列。
6.根据权利要求4所述的内存存储装置,其中当所述错误位的数量不大于n时,所述内存控制器将所述欲写入的数据写入所述内存存储阵列而不将所述数据位及所述翻转位的极性倒置,并且所述内存控制器将所述翻转位的极性记录为第二极性,其中所述第二极性与所述第一极性不相同。
7.根据权利要求1所述的内存存储装置,其中所述内存控制器将所述欲写入的数据写入所述内存存储阵列,以及当所述内存控制器要读取已写入的数据时,所述内存控制器判断所述已写入的数据的所述翻转位的极性,并且依据判断结果来决定是否将已写入的数据的全部的数据位的极性倒置,并且读取极性已倒置的数据。
8.根据权利要求7所述的内存存储装置,还包括错误校正码引擎,所述错误校正码引擎的校正能力为n个位,
所述内存控制器读取所述已写入的数据,且所述错误校正码引擎判断已读取的数据的错误位的数量是否大于n,其中n为自然数,
其中当所述已读取的数据的错误位的数量大于n时,所述内存控制器判断所述已读取的数据为失效;以及
当所述已读取的数据的错误位的数量不大于n时,所述错误校正码引擎对所述已读取的数据进行错误校正程序,且所述内存控制器判断经所述错误校正程序处理的所述已读取的数据为通过。
9.一种内存存储装置的数据访问方法,包括:
对欲写入的数据进行验证操作,以判断多个数据位是否包括错误位并且记录所述错误位的信息,其中所述欲写入的数据包括所述数据位及翻转位,以及所述错误位的信息包括所述错误位的数量;
依据所述错误位的数量来决定是否将所述数据位及所述翻转位的极性倒置,并且记录所述翻转位的极性;以及
将所述欲写入的数据写入所述内存存储阵列。
10.根据权利要求9所述的数据访问方法,还包括:
判断所述错误位的数量是否大于n,且所述内存存储装置的错误校正码引擎的校正能力为n个位,其中n为自然数。
11.根据权利要求10所述的数据访问方法,其中当所述错误位的数量大于n时,
在依据所述错误位的数量来决定是否将所述数据位及所述翻转位的极性倒置,并且记录所述翻转位对应的极性的步骤中,将所述数据位的极性倒置,并且将所述翻转位的极性记录为第一极性。
12.根据权利要求11所述的数据访问方法,其中当所述错误位的数量大于n时,将所述数据位的极性倒置的步骤包括:
保持所述错误位的极性,并且将所述错误位写入所述内存存储阵列;以及
将所述错误位以外的其余所述数据位及所述翻转位的极性倒置,并且将被倒置的其余所述数据位及所述翻转位写入所述内存存储阵列。
13.根据权利要求11所述的数据访问方法,其中当所述错误位的数量不大于n时,
在依据所述错误位的数量来决定是否将所述数据位及所述翻转位的极性倒置,并且记录所述翻转位对应的极性的步骤中,将所述欲写入的数据写入所述内存存储阵列而不将所述数据位及所述翻转位的极性倒置,并且将所述翻转位的极性记录为第二极性,其中所述第二极性与所述第一极性不相同。
14.根据权利要求9所述的数据访问方法,还包括:
当要读取已写入的数据时,判断所述翻转位的极性并且依据判断结果来决定是否将已写入的数据的全部的数据位的极性倒置,并且读取极性已倒置的数据。
CN202010161867.0A 2020-03-10 2020-03-10 内存存储装置及数据访问方法 Pending CN113380303A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010161867.0A CN113380303A (zh) 2020-03-10 2020-03-10 内存存储装置及数据访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010161867.0A CN113380303A (zh) 2020-03-10 2020-03-10 内存存储装置及数据访问方法

Publications (1)

Publication Number Publication Date
CN113380303A true CN113380303A (zh) 2021-09-10

Family

ID=77568688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010161867.0A Pending CN113380303A (zh) 2020-03-10 2020-03-10 内存存储装置及数据访问方法

Country Status (1)

Country Link
CN (1) CN113380303A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023197935A1 (zh) * 2022-04-12 2023-10-19 华为技术有限公司 存储数据的方法、读取数据的方法和相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201101319A (en) * 2009-06-29 2011-01-01 A Data Technology Co Ltd An electronic memory device and correction operation method thereof
US9619327B2 (en) * 2015-06-30 2017-04-11 SK Hynix Inc. Flash memory system and operating method thereof
CN107077430A (zh) * 2014-10-24 2017-08-18 索尼公司 存储器控制器、存储器系统以及存储器控制器控制方法
CN110377453A (zh) * 2018-04-12 2019-10-25 三星电子株式会社 半导体存储器装置和包括半导体存储器装置的存储器系统
US20200059252A1 (en) * 2018-08-17 2020-02-20 Micron Technology, Inc. Enhanced bit flipping scheme

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201101319A (en) * 2009-06-29 2011-01-01 A Data Technology Co Ltd An electronic memory device and correction operation method thereof
CN107077430A (zh) * 2014-10-24 2017-08-18 索尼公司 存储器控制器、存储器系统以及存储器控制器控制方法
US9619327B2 (en) * 2015-06-30 2017-04-11 SK Hynix Inc. Flash memory system and operating method thereof
CN110377453A (zh) * 2018-04-12 2019-10-25 三星电子株式会社 半导体存储器装置和包括半导体存储器装置的存储器系统
US20200059252A1 (en) * 2018-08-17 2020-02-20 Micron Technology, Inc. Enhanced bit flipping scheme

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023197935A1 (zh) * 2022-04-12 2023-10-19 华为技术有限公司 存储数据的方法、读取数据的方法和相关设备

Similar Documents

Publication Publication Date Title
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
KR101576102B1 (ko) 플래시 메모리의 블록으로부터 데이터를 판독하는 방법 및 관련 메모리 장치
US4817095A (en) Byte write error code method and apparatus
US8122303B2 (en) Data structure for flash memory and data reading/writing method thereof
US20080282128A1 (en) Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US8010875B2 (en) Error correcting code with chip kill capability and power saving enhancement
US7076723B2 (en) Error correction codes
US8225175B2 (en) Two-plane error correction method for a memory device and the memory device thereof
KR20160024966A (ko) 데이터 에러 교정용 회로, 장치, 및 방법
US6408417B1 (en) Method and apparatus for correcting soft errors in digital data
US7587658B1 (en) ECC encoding for uncorrectable errors
JP2019057752A (ja) メモリシステム
US10162702B2 (en) Segmented error coding for block-based memory
US9690649B2 (en) Memory device error history bit
US20170091024A1 (en) Joint decoding of rewriting nvm error sectors
CN113380303A (zh) 内存存储装置及数据访问方法
US11175988B2 (en) Memory storage device and data access method
TWI719850B (zh) 記憶體儲存裝置及資料存取方法
CN111240584B (zh) 存储器的控制方法及非暂态电脑可读媒体
EP0533608A2 (en) Method and apparatus for ensuring the recoverability of vital data in a data processing system
US7904789B1 (en) Techniques for detecting and correcting errors in a memory device
TWI708256B (zh) 記憶體裝置、記憶體控制器及其資料存取方法
US11088711B2 (en) Memory apparatus and data accessing method thereof
JPS6125177B2 (zh)
JPS6327940A (ja) 記憶制御装置

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