CN103824599B - 改变存储器装置中的部分数据的存储器控制器及其方法 - Google Patents

改变存储器装置中的部分数据的存储器控制器及其方法 Download PDF

Info

Publication number
CN103824599B
CN103824599B CN201310575217.0A CN201310575217A CN103824599B CN 103824599 B CN103824599 B CN 103824599B CN 201310575217 A CN201310575217 A CN 201310575217A CN 103824599 B CN103824599 B CN 103824599B
Authority
CN
China
Prior art keywords
data
parity
new
partial
memory device
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
CN201310575217.0A
Other languages
English (en)
Other versions
CN103824599A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020120129548A external-priority patent/KR102002044B1/ko
Priority claimed from KR1020120129549A external-priority patent/KR102041874B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN103824599A publication Critical patent/CN103824599A/zh
Application granted granted Critical
Publication of CN103824599B publication Critical patent/CN103824599B/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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2942Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits

Landscapes

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

Abstract

公开了存储器控制器的部分数据改变方法、用于在存储器装置的部分数据被改变时生成新奇偶性的存储器控制器、存储器系统、以及操作存储器控制器以更新奇偶性信息的方法。一种存储器控制器的部分数据改变方法包括:从主机接收改变部分数据的请求;计算从所述主机提供的新数据与所述旧数据之间的数据差异;利用所述数据差异和从所述存储器装置读取的旧奇偶性来计算新奇偶性;以及将所述新数据和所述新奇偶性存储在所述存储器装置处。

Description

改变存储器装置中的部分数据的存储器控制器及其方法
相关申请信息
本申请要求2012年11月15日在韩国知识产权局递交的第10-2012-0129548和10-2012-0129549号韩国专利申请的优先权,特此通过引用将每个所述韩国专利申请的全部内容并入。
技术领域
这里描述的发明构思涉及半导体存储器系统,更具体而言涉及能够改变存储器装置中的部分数据的存储器控制器及其部分数据改变方法。
背景技术
半导体存储器装置是利用诸如硅(Si)、锗(Ge)、砷化镓(GaAs)、磷化铟(InP)等等之类的半导体制造的存储器装置。半导体存储器装置被分类为易失性存储器装置和非易失性存储器装置。
当数据被存储在存储器装置处并且存储的数据被从存储器装置中读取时,可能发生差错。各种差错校正码可用来检测和校正这种差错。差错校正码可包括RS(Reed-Solomon,里德-所罗门)码、BCH(Bose-Chaudhuri-Hocquenghem,博斯-乔达利-奥昆冈)码、LDPC(Low Density Parity Check,低密度奇偶校验)码,等等。
当数据被存储在存储器装置处时,用于差错校正的奇偶性比特可与数据一起被存储在存储器装置处。在存储于存储器装置处的数据被部分改变的情况下,与奇偶性比特一起存储的所有数据可被读出以生成新的奇偶性比特。这可意味着数据读取时间和功率消耗的增加。
发明内容
发明构思的一个示例性实施例涉及一种存储器控制器的部分数据改变方法,其包括从主机接收改变部分数据的请求。在一个实施例中,该方法包括:利用差错检测码检测从存储器装置读取的部分数据的差错;并且如果从存储器装置读取的部分数据没有差错,则计算从主机提供的新数据Dnew与从存储器装置读取的部分数据Dold(以下称为旧数据)之间的数据差异Ddif,利用数据差异和从存储器装置读取的旧奇偶性Pold来计算新奇偶性Pnew,并且将新数据和新奇偶性存储在存储器装置处。
在一个实施例中,该部分数据改变方法还包括:当旧数据有差错时从存储器装置读取整体数据;以及利用差错校正码来校正旧数据的差错。在校正了旧数据的差错之后,计算从主机提供的新数据与经差错校正的旧数据之间的差异并利用数据差异Ddif和从存储器装置读取的旧奇偶性Pold来计算新奇偶性Pnew
在一个实施例中,该数据改变方法还包括:执行如下的部分数据编码操作:把要存储在存储器装置处的整体数据划分成多个部分数据,生成用于每个部分数据的差错检测码的奇偶性,并且生成部分编码数据;以及在部分数据编码操作之后执行如下的整体数据编码操作:生成用于部分编码数据的整体的差错校正码的奇偶性。
在一个实施例中,该部分数据改变方法还包括:执行生成用于要存储在存储器装置处的整体数据的差错校正码的奇偶性的整体数据编码操作;以及在执行整体数据编码操作之后,把要存储在存储器装置处的整体数据划分成多个部分数据;并且生成用于整体数据的差错检测码的奇偶性。在部分数据编码操作中,生成关于在整体数据编码操作中生成的整体数据的经编码奇偶性。
发明构思的一个实施例涉及一种存储器控制器的部分数据改变方法,其包括:从主机接收改变部分数据的请求;利用差错校正码检测从存储器装置读取的部分数据的差错;以及如果从存储器装置读取的部分数据有差错,则校正部分数据的差错,计算从主机提供的新数据Dnew与经差错校正的部分数据Dold(以下称为旧数据)之间的数据差异Ddif,并且利用数据差异Ddif和从存储器装置读取的旧奇偶性Pold来计算新奇偶性Pnew
在一个实施例中,该部分数据改变方法还包括:执行如下的部分数据编码操作:把要存储在存储器装置处的整体数据划分成多个部分数据,生成用于每个部分数据的差错校正码的奇偶性,并且生成部分编码数据;以及在部分数据编码操作之后执行如下的整体数据编码操作:生成用于部分编码数据的整体的差错校正码的奇偶性。
在一个实施例中,该部分数据改变方法还包括:执行生成用于要存储在存储器装置处的整体数据的差错校正码的奇偶性的整体数据编码操作;以及在执行整体数据编码操作之后,把要存储在存储器装置处的整体数据划分成多个部分数据并且生成用于整体数据的差错校正码的奇偶性。在部分数据编码操作中,生成关于在整体数据编码操作中生成的整体数据的经编码奇偶性。
在一个实施例中,该部分数据改变方法还包括:如果从存储器装置读取的部分数据没有差错,则计算从主机提供的新数据Dnew与从存储器装置读取的部分数据Dold之间的数据差异Ddif并且利用数据差异和从存储器装置读取的旧奇偶性Pold来计算新奇偶性Pnew
根据发明构思的至少一个示例性实施例,在存储在存储器装置处的数据的一部分被改变的情况下,可利用被改变的部分数据、无需未经修改的数据来生成新奇偶性。由于新奇偶性是仅利用被改变的数据来生成的,所以数据读取时间和功率消耗可得以减少。另外,如果要改变的部分数据有差错,则可通过提早检测并校正差错来防止新奇偶性的差错。
发明构思的一实施例涉及一种操作存储器控制器以更新奇偶性信息的方法。在一个实施例中,该方法包括:确定第一奇偶性,该第一奇偶性是与存储在存储器装置中的第一数据的全体相对应的奇偶性,该第一数据包括第一部分和第二部分;接收以新数据替换第一部分的请求;基于新数据和第一部分生成数据差异值;通过基于数据差异和第一奇偶性计算第一数据的新奇偶性来更新第一奇偶性;以及通过将新数据和新奇偶性存储在存储器装置处来以新数据替换第一数据中的第一部分。
可在不使用第二部分的情况下计算数据差异和新奇偶性,并且新奇偶性对应于包括新数据和第二部分在内的第一数据的全体。
第一部分可包括第一数据的连续比特,第二部分可包括第一数据的连续比特,并且第一部分和第二部分可不彼此重叠。
发明构思的一实施例涉及一种存储器控制器的部分数据改变方法,包括:从主机接收改变部分数据的请求;计算从所述主机提供的新数据与旧数据之间的数据差异,所述旧数据是从存储器装置读取的部分数据;利用所述数据差异和从所述存储器装置读取的旧奇偶性来计算新奇偶性;以及将所述新数据和所述新奇偶性存储在所述存储器装置处。
发明构思的一实施例涉及一种用于在存储器装置的部分数据被改变时生成新奇偶性的存储器控制器,包括:数据位置识别器,被配置为识别被改变的部分数据的位置;数据差异计算器,被配置为从所述数据位置识别器接收被改变的部分数据的位置信息,并且计算从主机输入的新数据与从所述存储器装置输入的旧数据之间的数据差异;以及奇偶性计算器,被配置为利用存储在所述存储器装置处的旧奇偶性和所述数据差异来计算新奇偶性。
发明构思的一实施例涉及一种存储器系统,包括:存储器装置,被配置为存储数据和奇偶性;主机,被配置为提供用于改变存储在所述存储器装置处的部分数据的新数据和位置信息;以及存储器控制器,被配置为从所述主机接收所述新数据和位置信息,计算从所述主机提供的新数据与从所述存储器装置输入的旧数据之间的数据差异,并且利用存储在所述存储器装置处的旧奇偶性和所述数据差异来生成新奇偶性。
附图说明
通过参考附图详细描述示例性实施例,示例性实施例的上述和其他特征和优点将变得更加清楚。附图意在描绘示例性实施例,而不应当被解释为限制权利要求的预期范围。除非明确注明,否则附图不应被认为是按比例绘制的。
图1是示意性示出根据发明构思的实施例的存储器系统的方框图;
图2是示意性示出图1的存储器装置的方框图;
图3和图4是示意性示出根据发明构思的实施例的存储单元阵列的电路图;
图5是示意性示出图1中所示的存储器控制器的方框图;
图6是示意性示出图5的新奇偶性生成器的方框图;
图7至图11是用于描述图6的新奇偶性生成器的操作的表格和方框图;
图12是示出根据发明构思的实施例的存储器系统的新奇偶性生成方法的流程图;
图13是示出奇偶校验矩阵的示例的表格;
图14是示出图13的奇偶校验矩阵中的第一字节数据被改变的情况的表格;
图15是示出每个片段地执行关于图13的奇偶校验矩阵的新奇偶性生成操作的示例的表格;
图16和图17是示出用于部分数据的差错检测或校正的数据结构的表格;
图18和图19是示出部分数据编码和整体数据编码的顺序的概念图;
图20和图21是示出执行根据发明构思的实施例的存储器系统的差错检测或校正操作的部分数据改变方法的流程图;
图22是示意性示出图1的存储器系统的应用的方框图;
图23是示意性示出根据发明构思的实施例的存储器系统所实现的存储卡的方框图;
图24是示意性示出根据发明构思的实施例的存储器系统所实现的固态驱动器的方框图;并且
图25是示意性示出根据发明构思的实施例的存储器系统所被应用到的计算系统的方框图。
具体实施方式
将参考附图详细描述实施例。然而,发明构思可以以各种不同形式来体现,而不应当被解释为仅局限于所例示的实施例。更确切地说,这些实施例是作为示例来提供的,以使得本公开将会透彻且完整,并且将把发明构思充分地传达给本领域技术人员。因此,对于发明构思的一些实施例,不描述已知的过程、元件和技术。除非另有注明,否则相似的标号在各幅附图和说明书各处表示相似的元件,从而将不重复描述。在附图中,为了清晰起见,层和区域的大小和相对大小可被夸大。
要理解,虽然在这里可使用术语“第一”、“第二”、“第三”等等来描述各种元件、组件、区域、层和/或片段,但这些元件、组件、区域、层和/或片段不应受这些术语所限。这些术语只是用于将一个元件、组件、区域、层或片段与另一元件、组件、区域、层或片段相区分。从而,以下描述的第一元件、组件、区域、层或片段可被称为第二元件、组件、区域、层或片段,而不脱离发明构思的教导。
空间相关术语,例如“在…下面”、“在…下方”、“下”、“在…正下方”、“在…上方”、“上”等等,在这里为了容易描述起见可用来描述如图中所示的一个元件或特征与另(一个或多个)元件或(一个或多个)特征的关系。要理解,除了图中所示的方位以外,空间相关术语还意在涵盖装置在使用或操作中的不同方位。例如,如果图中的装置被翻过来,那么被描述为在其他元件或特征的“下方”、“下面”或“正下方”的元件的方位于是将在其他元件或特征的“上方”。从而,示范性术语“在…下方”和“在…正下方”可涵盖在上方和在下方这两个方位。装置可处在其他方位(旋转90度或在其他方位)并且这里使用的空间相关描述可被相应地解释。此外,还要理解,当一层被称为在两层“之间”时,其可以是这两层之间的唯一层,或者也可能存在一个或多个居间层。
这里使用的术语只是为了描述特定实施例,而不意在限制发明构思。这里使用的单数形式的“一”和“该”意在也包括复数形式,除非上下文另有明确指示。还要理解,术语“包括”当在本说明书中使用时指明了所记述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。这里使用的术语“和/或”包括列出的相关联项目中的一个或多个的任何和全部组合。另外,术语“示范性”意在指示例或图示。
要理解,当一元件或层被称为“在另一元件或层上”、“连接到另一元件或层”、“耦合到另一元件或层”或者“与另一元件或层相邻”时,其可直接在该另一元件或层上、直接连接到该另一元件或层、直接耦合到该另一元件或层、或者与该另一元件或层直接相邻,或者可存在居间的元件或层。相反,当一元件被称为“直接在另一元件或层上”、“直接连接到另一元件或层”、“直接耦合到另一元件或层”或“与另一元件或层紧邻”时,则没有居间的元件或层存在。
还应注意,在一些替换实现方式中,所记载的功能/动作可不按图中记载的顺序发生。例如,取决于所涉及的功能/动作,接连示出的两幅图可实际基本同时执行,或者有时可按相反顺序执行。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本发明构思所属的技术领域的普通技术人员通常理解的含义相同的含义。还要理解,术语,例如常用的辞典中定义的那些术语,应当被解释为具有与其在相关技术和/或本说明书的上下文中的含义一致的含义,而不会被以理想化的或过度正式的意义来解释,除非这里明确地这样定义。
I.包括差错校正码(ECC,Error Correction Code)编码器的存储器系统
图1是示意性示出根据发明构思的实施例的存储器系统的方框图。参考图1,存储器系统1000可以包括存储器装置1100、存储器控制器1200和主机1300。
存储器装置1100可包括易失性存储器装置和非易失性存储器装置。易失性存储器装置可以是在掉电时丢失其中存储的数据的存储器装置。易失性存储器装置可包括SRAM、DRAM,等等。非易失性存储器装置可以是即使在掉电时也保持其中存储的数据的存储器装置。非易失性存储器装置可包括ROM(Read Only Memory,只读存储器)、PROM(ProgrammableROM,可编程ROM)、EPROM(Electrically Programmable ROM,电可编程ROM)、EEPROM(Electrically Erasable and Programmable ROM,电可擦除可编程ROM)、快闪存储器装置、PRAM(Phase-change RAM,相变RAM)、MRAM(Magnetic RAM,磁RAM)、RRAM(ResistiveRAM、电阻式RAM)、FRAM(Ferroelectric RAM、铁电RAM),等等。存储器装置1100可使用各种方法来在操作中生成比特差错时进行差错校正。
存储器控制器1200可连接在存储器装置1100和主机1300之间。存储器控制器1200可响应于主机1300的请求而访问存储器装置1100。存储器控制器1200可从主机1300接收数据以生成经编码数据DATA_C。存储器控制器1200可向存储器装置1100提供命令CMD、地址ADDR、经编码数据DATA_C和控制信号CTRL。
存储器控制器1200可从存储器装置1100接收经编码数据DATA_C,并且可对经编码数据DATA_C进行解码以恢复原始数据。存储器控制器1200可将恢复的数据发送到主机1300。
存储器控制器1200可包括ECC编码器1270。ECC编码器1270可对要提供给存储器装置1100的数据执行ECC编码以生成添加了奇偶性的经编码数据DATA_C。ECC编码器1270可利用奇偶性来校正差错。
ECC编码器1270可利用LDPC(low density parity check,低密度奇偶校验)码、BCH(Bose-Chaudhuri-Hocquenghem,博斯-乔达利-奥昆冈)码、turbo码、RS(Reed-Solomon,里德-所罗门)码、卷积码、RSC(Recursive Systematic Code,递归系统码)或者诸如TCM(Trellis-Coded Modulation,网格编码调制)、BCM(Block Coded Modulation,块编码调制)之类的编码调制等等,来校正差错。
当存储在存储器装置1100处的数据被部分改变时,ECC编码器1270可利用部分改变的数据来生成新奇偶性。根据发明构思的实施例的存储器系统1000在生成新奇偶性时可不使用未改变的数据,从而数据读取时间和功率消耗减少了。
图2是示意性示出图1的存储器装置1100的方框图。参考图2,存储器装置1100可包括存储单元阵列1110、地址译码器1120、数据输入/输出电路1130和控制逻辑1140。
存储单元阵列1110可通过字线WL与地址译码器1120相连接并通过位线BL与数据输入/输出电路1130相连接。存储单元阵列1110可包括多个存储单元。在行方向上排列的存储单元可与字线相连接。在列方向上排列的存储单元可与位线相连接。每个存储单元可存储一个或多个数据比特。
地址译码器1120可通过字线WL与存储单元阵列1110相连接。地址译码器1120可从存储器控制器1200(参考图1)接收地址ADDR。地址ADDR可包括行地址和列地址。地址译码器1120可利用行地址选择一条或多条字线,并且可将列地址CA传送到数据输入/输出电路1130。
数据输入/输出电路1130可通过位线BL与存储单元阵列1110相连接,并且可与存储器控制器1200交换经编码数据DATA_C。数据输入/输出电路1130可响应于控制逻辑1140的控制而操作。数据输入/输出电路1130可响应于来自地址译码器1120的列地址CA来选择一条或多条位线。
数据输入/输出电路1130可从外部装置(例如,存储器控制器1200)接收经编码数据DATA_C以将经编码数据DATA_C提供给存储单元阵列1110。数据输入/输出电路1130可从存储单元阵列1110中读取经编码数据DATA_C以将读取的数据DATA_C输出到存储器控制器1200。
控制逻辑1140可与地址译码器1120和数据输入/输出电路1130相连接。控制逻辑1140可响应于来自存储器控制器1200的命令CMD和控制信号CTRL来控制存储器装置1100的整体操作(例如,读取操作、写入操作,等等)。
图3和图4是示意性示出根据发明构思的实施例的存储单元阵列的电路图。图3示出了NAND快闪存储器的示例,并且图4示出了STT-MRAM(Spin Transfer Torque Magneto-resistive Random Access Memory,自旋转移力矩磁电阻随机访问存储器)的示例。
参考图3,存储单元阵列1110a可包括多个快闪存储单元。沿着行方向设置的存储单元MC1至MCm可分别与字线WL1至WLm相连接。同一行中的存储单元可与同一字线相连接。沿着列方向设置的存储单元MC1至MCm可分别与位线BL1至BLn相连接。同一列中的存储单元可与同一位线相连接。
串选择晶体管SST可分别与位线BL1至BLn和存储单元MCm相连接。串选择晶体管SST可与串选择线SSL相连接。地选择晶体管GST可分别与存储单元MC1和公共源极线CSL相连接。地选择晶体管GST可与地选择线GSL相连接。
参考图4,存储单元阵列1110b可包括多条字线WL1至WLm、多条位线BL1至BLn以及布置在字线WL1至WLm和位线BL1至BLn的交叉处的多个存储单元。
在存储单元由STT-MRAM单元形成的情况下,其可包括单元晶体管和具有磁性材料的磁隧道结(magnetic tunnel junction,MTJ)元件。可利用诸如使用相变材料的PRAM、使用比如复合金属氧化物之类的可变电阻材料的RRAM等等之类的电阻性元件来替换MTJ元件。
返回图1,根据发明构思的实施例的存储器系统1000可被配置成使得存储器控制器1200包括ECC编码器1270。当存储在存储器装置1100处的数据被部分改变时,根据发明构思的示例性实施例的ECC编码器1270可利用部分改变的数据生成新奇偶性。由于新奇偶性是利用部分改变的数据生成的,所以数据读取时间和功率消耗可得以减少。
II.关于部分改变数据的新奇偶性生成方法
图5是示意性示出图1中所示的存储器控制器1200的方框图。参考图5,存储器控制器1200可包括系统总线1210、控制单元1220、RAM 1230、主机接口1240、存储器接口1250以及ECC编码器1270。
系统总线1210可用作存储器控制器1200的内部通道。控制单元1220可控制存储器控制器1200的整体操作。RAM 1230可用作控制单元1220的工作存储器、高速缓存存储器和缓冲存储器中的至少一者。
主机接口1240可根据特定的通信标准与主机1300(参考图1)通信。在示例性实施例中,存储器控制器1200可利用诸如USB(Universal Serial Bus,通用串行总线)、PCI(peripheral component interconnection,外围组件互连)、PCI-E(PCI-express,快速PCI)、ATA(Advanced Technology Attachment,高级技术配件)、串行ATA、并行ATA、SCSI(small computer system interface,小型计算机系统接口)、ESDI(enhanced small diskinterface,增强型小型盘接口)、IDE(Integrated Drive Electronics,集成驱动电子)和火线(Firewire)之类的各种通信标准中的至少一种与主机1300通信。
存储器接口1250可与存储器装置1100(参考图1)相接口。例如,存储器接口1250可包括NAND快闪接口、MRAM接口等等。
ECC编码器1270可对来自主机1300的数据执行ECC编码以向存储器装置1100提供经编码数据DATA_C和奇偶性。这里,经编码数据DATA_C也可被称为ECC数据。假定要存储在存储器装置1100处的数据是D1、D2、D3和D4,则可按以下式1来计算奇偶性。
P1=D1+D2+D3+D4 (1)
在式1中,加法可以是XOR(异或)运算或mod2(模2)运算。或者,加法可以是与非二进制码或非线性码相对应的运算。
这里使用的比特加法或减法的运算都可由XOR运算来实现。
ECC编码器1270可包括新奇偶性生成器1260。当存储在存储器装置1100处的数据的一部分被改变时,ECC编码器1270中的新奇偶性生成器1260可利用改变的部分数据来生成新奇偶性。新奇偶性生成器1260可被放置在ECC编码器1270的外部。
图6是示意性示出图5的新奇偶性生成器的方框图。参考图6,新奇偶性生成器1260可包括数据位置识别器1261、数据差异计算器1262以及奇偶性计算器1263。
数据位置识别器1261可识别从主机1300输入的新数据Dnew的位置,并可以将位置信号LOC提供给数据差异计算器1262和奇偶性计算器1263。这里,新数据的位置可意指在存储器装置1100处存储的数据之中要用新数据来改变的数据的位置。
例如,假定奇偶性P是利用四个数据D1、D2、D3和D4生成的。作为示例,此时,数据D1至D4可分别位于位置d1至d4处。在利用新数据改变D1和D2的情况下,新数据的位置可以是d1和d2。在以下描述中,位置d1处的旧数据可被称为D1old,并且新数据可被称为D1new。如果位置d1处的旧数据D1old被以新数据D1new改变,则数据位置识别器1261可提供指示d1的位置信号LOC。
数据差异计算器1262可从数据位置识别器1261接收关于新数据的位置信号LOC,并且可计算来自主机1300的新数据Dnew与存储在存储器装置1100处的旧数据Dold之间的差异。数据差异计算器1262可向奇偶性计算器1263提供新数据Dnew与旧数据Dold之间的数据差异Ddif
奇偶性计算器1263可接收关于新数据的位置信号LOC,并且可利用来自数据差异计算器1262的数据差异Ddif和存储在存储器装置1100处的旧奇偶性Pold来计算新奇偶性Pnew。将参考图10和图11来更充分地描述奇偶性计算器1263的操作。
新奇偶性生成器1260的结构和操作原理可基于以下数学原理。假定数据D1old、D2old、D3old、D4old和奇偶性Pold被存储在存储器装置1100处。
利用式1,旧奇偶性Pold可由Pold=D1old+D2old+D3old+D4old表达。
这里,如果D1old和D2old被D1new和D2new所替换,则旧奇偶性Pold可被改变。如果存储在存储器装置1100处的数据的一部分被改变,则传统的存储器系统可从存储器装置1100中读取所有数据D1old、D2old、D3old、D4old,改变数据,并计算新奇偶性Pnew
利用式1,新奇偶性Pnew可由Pnew=D1new+D2new+D3old+D4old表达。
新奇偶性Pnew减去旧奇偶性Pold可等于(D1new+D2new+D3old+D4old)-(D1old+D2old+D3old+D4old)。
于是,新奇偶性Pnew可由下式表达:
Pnew=Pold+(D1new+D2new+D3old+D4old)-(D1old+D2old+D3old+D4old)
Pnew=Pold+(D1new+D2new)-(D1old+D2old)
Pnew=Pold+(D1new-D1old)+(D2new-D2old)
从上式可理解,在算术运算期间,未改变的数据D3old和D4old可被去除。这可意味着当存储在存储器装置1100处的数据被部分改变时,未改变的数据对于为数据D1-D4确定新奇偶性而言是不必要的。
传统的存储器系统可读取包括未改变的数据D3old和D4old在内的所有数据来计算新奇偶性。虽然ECC数据的大小较大并且要改变的数据的大小较小,但传统的存储器系统可读取所有数据来生成新奇偶性。因此,可能需要很多的数据读取时间和很多的功率。
如果存储在存储器装置1100处的数据被部分改变,则根据发明构思的实施例的存储器系统1000可在不读出所有数据的情况下通过图6的新奇偶性生成器1260利用部分改变的数据来生成新奇偶性。从而,可减少数据读取时间和功率消耗。
下面,将参考图7和图11来更充分地描述图6的新奇偶性生成器的操作。
参考图7,假定四个旧数据Dold和一个旧奇偶性P被存储在存储器装置1100处。位置d1至d4处的旧数据Dold可以是0、0、1和1。也就是说,D1old是0,D2old是0,D3old是1,并且D4old是1。从而Pold(=D1old+D2old+D3old+D4old)按照XOR运算可为0。
假定旧数据D1old和D2old被以新数据D1new和D2new改变。如图7中所示,D1new可为0,并且D2new可为1。图6的新奇偶性生成器1260可在没有未经修改的数据D3old和D4old的情况下生成新奇偶性Pnew。下面,将描述在没有未经修改的数据D3old和D4old的情况下获得新奇偶性Pnew的方法。
图8是示意性示出图6的数据差异计算器的方框图。参考图8,数据差异计算器1262可接收关于新数据的位置信号LOC以计算新数据Dnew与旧数据Dold之间的差异。可按以下式2来计算数据差异Ddif
Ddif=Dnew-Dold=XOR(Dold,Dnew) (2)
在式(2)中,减法可以是XOR运算或者mod2运算。或者,减法可以是与非二进制码或非线性码相对应的运算。
数据差异计算器1262可接收位置信号d1以计算新数据D1new与旧数据D1old之间的差异D1dif。然后,数据差异计算器1262可接收位置信号d2以计算新数据D2new与旧数据D2old之间的差异D2dif。这里,数据差异D1dif可意指位于位置d1处的新数据D1new与旧数据D1old之间的差异。或者,数据差异计算器1262可接收位置信号d1和d2以同时计算数据差异D1dif和D2dif。数据差异D1dif和D2dif可被提供给奇偶性计算器1263。
图9是用于描述图8的数据差异计算器的操作的表格。如上所述,假定旧数据D1old和D2old被以新数据D1new和D2new来改变。由于数据D1new和D1old为0,因此式2的数据差异D1dif可为0。由于数据D2old为0并且D2new为1,因此数据差异D2dif可为1。
图10是示意性示出图6的奇偶性计算器的方框图。参考图10,奇偶性计算器1263可接收关于新数据的位置信号LOC以利用来自数据差异计算器1262的数据差异Ddif和存储在存储器装置1100处的旧奇偶性Pold来计算新奇偶性Pnew。新奇偶性Pnew可按以下式3来计算。
Pnew=Pold+Ddif (3)
在上述示例中,Ddif可以是D1dif和D2dif的加和。D1dif可以是D1new与D1old之间的差异,并且D2dif可以是D2new与D2old之间的差异。也就是说,式3可由Pnew=Pold+D1dif+D2dif=Pold+(D1new-D1old)+(D2new-D2old)来表达。
图11是用于描述图10的奇偶性计算器的操作的表格。如利用图9的示例所计算的,如果D1dif为0并且D2dif为1,则总数据差异Ddif可为1。由于Pold为0并且Ddif为1,因此新奇偶性Pnew可为1。
参考式3,新奇偶性Pnew可由旧奇偶性Pold和被改变数据差异Ddif的函数来表达。这里,用于获得新奇偶性Pnew的函数可不与未经修改的数据(例如,D3old和D4old)相关联。这可扩展到非二进制码或非线性码。
由于根据发明构思的实施例的存储器系统仅利用被改变的数据来计算新奇偶性,因此数据读取时间和功率消耗可得以减少。尤其,根据发明构思的实施例的存储器系统对改变少量数据的情况可能是有利的。
图12是示出根据发明构思的实施例的存储器系统的新奇偶性生成方法的流程图。
在操作S110中,存储器控制器1200(参考图1)可从存储器装置1100(参考图1)读取旧数据Dold和旧奇偶性Pold。在操作S120中,存储器控制器1200可从主机1300(参考图1)接收新数据Dnew。在操作S130中,存储器控制器1200可计算旧数据Dold与新数据Dnew之间的差异Ddif。在操作S140中,存储器控制器1200可利用旧奇偶性Pold和差异Ddif来计算新奇偶性Pnew
图13是示出奇偶校验矩阵的示例的表格。参考图13,存储在存储器装置1100(参考图1)处的数据的码长度可为72并且其数据长度可为64。图13示出了数据位置d0-d63,它们可分别对应于数据D0-D63。在图13中,示出了(72,64)单差错校正-双差错检测(singleerror correction-double error detection,SEC-DED)的奇偶校验矩阵的示例。这里,单差错校正-双差错检测可意指校正一个差错以及检测两个差错。
在图13中,行可由奇偶校验式来表达。可通过将一行中与1相对应的位置处的码比特相加来生成奇偶性。例如,第一行R1的奇偶性P0可由以下式4来计算。
P0=D0+D1+D2+…+D56+D57+D58 (4)
第二行R2至第八行R8的奇偶性P1至P7可按与式4相同的方式来计算。以下的表1可示出行R1至R8的奇偶性。
[表1]
P0 D0+D1+D2+D3+…+D53+D56+D57+D58
P1 D0+D1+D2+D8+…+D58+D59+D60+D61
P2 D3+D4+D5+D8+…+D51+D59+D62+D63
P3 D3+D6+D7+D11+…+D47+D48+D51+D59
P4 D3+D11+D14+D15+…+D52+D55+D56+D59
P5 D0+D3+D11+D19+…+D54+D57+D60+D63
P6 D1+D4+D7+D8+…+D55+D57+D60+D61
P7 D2+D5+D6+D9+…+D60+D61+D62+D63
根据发明构思的实施例的存储器系统1000(参考图1)可生成关于多行的新奇偶性。如图13中所示,关于第一行R1至第八行R8的新奇偶性可被生成为具有预定的大小。在此情况下,如上所述,如果数据被部分改变,则可利用被部分改变的数据而不是所有数据来生成新奇偶性。
图14是示出图13的奇偶校验矩阵中的第一字节数据被改变的情况的表格。在图14中,未经修改的数据,也就是未用于计算新奇偶性的数据,可由X来标记。
如果存储在存储器装置1100处的数据中的第一字节数据被改变,则传统的存储器系统可读取图13的所有数据来生成新奇偶性。然而,根据发明构思的实施例的存储器系统1000可读取第一个1字节数据和1字节奇偶性来生成新奇偶性。也就是说,参考式3,发明构思的存储器系统1000可计算新数据Dnew的一字节与旧数据Dold的一字节之间的差异,并且可利用差异Ddif和旧奇偶性Pold来生成新奇偶性Pnew。由于新奇偶性是只利用被改变的数据来计算的,所以数据读取时间和功率消耗可得以减少。
如图14中所示,如果利用存储器装置1100的部分数据(例如,第一个1字节数据)来计算新奇偶性,则可按各种方法来执行ECC编码。例如,可仅利用经修改的数据来执行ECC编码。也就是说,可利用被改变的数据的差异Ddif和旧奇偶性Pold来计算新奇偶性Pnew。或者,存储在存储器装置1100处的数据可被划分成具有预定大小的片段,并且新奇偶性生成操作可分别针对片段来执行。
图15是示出每个片段地执行关于图13的奇偶校验矩阵的新奇偶性生成操作的示例的表格。为了每个片段地执行新奇偶性生成操作,ECC编码器1270可包括与片段相对应的新奇偶性生成器。
在数据的第一片段被改变的情况下,新奇偶性P0new可由下式表达:
P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif
这里,D1dif可以是(D1new-D1old)。每个片段的新奇偶性生成器可根据上述式子P0new来设计。如图15中所示,如果每个片段的奇偶性生成操作是按字节执行的,则ECC编码器1270可执行字节掩蔽(byte-masking)操作。
如上所述,由于新奇偶性是仅利用被改变的数据来生成的,所以数据读取时间和功率消耗可得以减少。另外,可每个片段地执行新奇偶性生成操作。尤其,根据发明构思的实施例的存储器系统对于按小单位改变数据的情况可能是有利的。
III.包括差错检测和校正的部分数据改变方法
返回式4,如果数据的第一片段被改变,则新奇偶性P0new可由下式表达:
P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif
如果要改变的数据的第一片段有差错,则新奇偶性P0new可能也是有差错的。
在要改变的数据有差错情况下,可通过提早检测和校正差错来防止新奇偶性的差错。下面,每个片段中的数据可被称为部分数据。
图16和图17是示出用于部分数据的差错检测或校正的数据结构的表格。图16是用于部分数据的差错检测的数据结构。图17是用于部分数据的差错校正的数据结构。
参考图16,整体数据可被划分成n个部分数据。在数据编码操作中,可生成用于每个部分数据的差错检测的奇偶性和用于整体数据的差错校正的奇偶性。参考图17,可生成用于每个部分数据的差错校正的奇偶性和用于整体数据的差错校正的奇偶性。
图18和图19是示出部分数据编码和整体数据编码的顺序的概念图。图18示出了首先执行部分数据编码,然后执行整体数据编码的方法。
参考图18,整体数据110可被划分成n个部分数据片段Partial DATA1至PartialDATAn(n是自然数)。可针对每个部分数据执行部分数据编码操作。这里,用于差错检测或校正的奇偶性可在部分数据编码操作中生成。
由n个部分数据片段Partial DATA1至Partial DATAn形成的整体数据110可通过用于EDC(Error Detection code,差错检测码)或ECC的部分数据编码操作变成部分编码整体数据120。部分编码整体数据120可由n个部分编码数据Partial Encoded DATA1~DATAn形成,其中每个部分编码数据包括部分数据和奇偶性。
例如,第一部分数据Partial DATA1可通过用于EDC或ECC的部分数据编码操作变成第一部分编码数据Partial Encoded DATA1。第一部分编码数据Partial Encoded DATA1可由第一部分数据Partial DATA1和第一奇偶性P1形成。类似地,第n部分编码数据PartialEncoded DATAn可由第n部分数据Partial DATAn和第n奇偶性Pn形成。
部分编码整体数据120可通过用于ECC的整体数据编码操作变成最终编码数据130。最终编码数据130可由部分编码整体数据131和奇偶性132形成。这里,奇偶性132可以是关于部分编码整体数据131的奇偶性。
图19示出了执行整体数据编码,然后执行部分数据编码的方法。参考图19,整体数据210可通过用于ECC的整体数据编码操作变成完全编码数据220。
完全编码数据220可由整体数据221和整体数据221的奇偶性222形成。在图19中,虚线211和221可指示在划分成部分数据片段之前的整体数据。奇偶性222可用于校正整体数据的差错。
参考图19,整体数据221可被划分成第一至第n部分数据片段PartialDATA1至Partial DATAn。可针对每个部分数据执行用于EDC或ECC的部分数据编码操作。这里,用于差错检测或校正的奇偶性可在部分数据编码操作中生成。
由n个部分数据Partial DATA1至Partial DATAn形成的整体数据221可通过用于EDC或ECC的部分数据编码操作变成部分编码数据。例如,第一部分数据Partial DATA1可变成第一部分编码数据Partial Encoded DATA1 231。第一部分编码数据Partial EncodedDATA1231可由第一部分数据Partial DATA1和第一奇偶性P1形成。
整体数据的奇偶性222可通过用于EDC或ECC的部分数据编码操作变成经编码的奇偶性。这里,经编码奇偶性232可通过对整体数据的奇偶性222编码来生成。
图20和图21是示出执行根据发明构思的实施例的存储器系统的差错检测或校正操作的部分数据改变方法的流程图。图20示出了用于EDC的部分数据编码操作。图21示出了用于ECC的部分数据编码操作。
参考图20,在操作S210中,主机1300(参考图1)可在存储器控制器1200(参考图1)处请求部分数据的改变。
在操作S220中,存储器控制器1200可利用针对从存储器装置1100(参考图1)读取的部分数据的EDC来校验差错。这里,从存储器装置1100读取的部分数据可以是旧数据Dold。旧数据Dold和用于EDC的旧奇偶性Pold可被存储在存储器装置1100处。
在操作S230中,存储器控制器1200可确定从存储器装置1100读取的部分数据是否有差错。如果有,则该方法进行到操作S240,在该操作中整体数据被读取。在操作S245中,可利用用于整体数据的ECC来校正数据差错。
在在操作S240中未检测到差错或者在操作S245中校正了差错的情况下,在操作S250中,存储器控制器1200可读取部分数据来生成新奇偶性Pnew。也就是说,如参考图12所述,可利用新数据Dnew与旧数据Dold之间的数据差异Ddif和旧奇偶性Pold来生成新奇偶性。
在操作S260中,新部分数据和新奇偶性Pnew可被存储在存储器装置1100处。
参考图21,在操作S310中,可请求部分数据的改变。
在操作S320中,可利用针对从存储器装置1100读取的部分数据的ECC来校验差错。旧数据Dold和用于ECC的旧奇偶性Pold可被存储在存储器装置1100处。
在操作S330中,存储器控制器1200可确定从存储器装置1100读取的部分数据是否有差错。如果有,则该方法进行到操作S340,在该操作中存储器控制器1200利用针对部分数据的ECC来校正数据差错。
在在操作S330中未检测到差错或者在操作S340中校正了差错的情况下,在操作S350中,存储器控制器1200可读取部分数据来生成新奇偶性Pnew。在操作S360中,新部分数据和新奇偶性Pnew可被存储在存储器装置1100处。
如上所述,由于新奇偶性是仅利用被改变的数据来生成的,所以数据读取时间和功率消耗可得以减少。在示例性实施例中,可以每个片段地执行新奇偶性生成操作。如果要改变的部分数据有差错,则可通过提早检测和校正差错来防止新奇偶性的差错。
IV.应用
图22是示意性示出图1的存储器系统的应用的方框图。参考图22,存储器系统2000可包括存储器装置2100和存储器控制器2200,存储器装置2100和存储器控制器2200根据至少一个示例性实施例可分别具有以上针对存储器装置1100和存储器控制器1200描述的结构和操作。
存储器装置2100可包括多个存储器芯片。存储器芯片可被划分成多个群组。每个群组中的存储器芯片可被配置为经由共同的通道与存储器控制器2200通信。在图22中,示出了多个存储器芯片经由多个通道CH1至CHk与存储器控制器2200通信的示例。
图23是示意性示出根据发明构思的实施例的存储器系统所实现的存储卡的方框图。参考图23,存储卡3000可包括存储器装置3100、存储器控制器3200和连接器3300。根据至少一个示例性实施例,存储器装置3100和存储器控制器3200可具有以上分别针对存储器装置1100和存储器控制器1200描述的结构和操作。
连接器3300可将存储卡3000与主机电气连接。存储卡3000可包括诸如PC卡(PCMCIA:personal computer memory card international association,个人计算机存储卡国际协会)、小型闪存(compact flash,CF)卡、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、通用快闪存储装置(universalflash storage device,UFS)等等之类的存储卡。
图24是示意性示出根据发明构思的实施例的存储器系统所实现的固态驱动器的方框图。参考图24,固态驱动器4000可包括多个存储器装置4100、存储器控制器4200和连接器4300。连接器4300可将固态驱动器4000与主机电气连接。根据至少一个示例性实施例,每个存储器装置4100可具有以上针对存储器装置1100描述的结构和操作,并且控制器4200可具有以上针对存储器控制器1200描述的结构和操作。
图25是示意性示出根据发明构思的实施例的存储器系统所被应用到的计算系统的方框图。参考图25,计算系统5000可包括总线5100、处理器5200、存储器系统5300、调制解调器5400和用户接口5500。
总线5100可在计算系统5000的组件之间提供通道。处理器5200可控制计算系统5000的整体操作,并且可执行逻辑运算。存储器系统5300可包括根据发明构思的实施例的存储器系统1000或2000。
存储器系统5300可用作计算系统5000的工作存储器或存储设备。工作存储器可以是用于由处理器5200控制计算系统5000的存储空间。存储设备可以是用于由计算系统5000长期保存数据的存储空间。
当存储器系统5300被用作工作存储器时,计算系统5000还可包括单独的存储设备。当存储器系统5300被用作存储设备时,计算系统5000还可包括单独的工作存储器。调制解调器5400可以以有线或无线方式与外部装置通信。
根据至少一个示例性实施例,存储器系统5300可包括具有以上针对存储器装置1100描述的结构和操作的存储器装置,并且存储器系统5300可包括具有以上针对存储器控制器1200描述的结构和操作的存储器控制器。
用户接口5500可包括用户输入接口,例如相机、键盘、鼠标、麦克风、触摸面板、触摸板、按钮、传感器,等等。用户接口5500还可包括用户输出接口,例如显示器、扬声器、斜坡、马达,等等。
计算系统5000可以是诸如智能电话、智能平板等等之类的移动多媒体装置或者诸如笔记本计算机、智能电视、计算机、智能监视器等等之类的多媒体装置。
虽然以上已参考示范性实施例描述了发明构思,但对于本领域技术人员来说很明显的是,在不脱离本发明的精神和范围的情况下可进行各种改变和修改。因此,应当理解,上述实施例不是限制性的,而是例示性的。

Claims (27)

1.一种存储器控制器的部分数据改变方法,包括:
从主机接收改变部分数据的请求;
计算从所述主机提供的新数据与旧数据之间的数据差异,所述旧数据是从存储器装置读取的部分数据;
利用所述数据差异和从所述存储器装置读取的旧奇偶性来计算新奇偶性,所述旧奇偶性是与所述旧数据相对应的奇偶性,所述新奇偶性是与所述新数据相对应的奇偶性;以及
将所述新数据和所述新奇偶性存储在所述存储器装置处。
2.如权利要求1所述的部分数据改变方法,还包括:
检测旧数据的差错;
当所述旧数据有差错时从所述存储器装置读取整体数据;以及
利用差错校正码来校正所述旧数据的差错,并且
其中,利用差错检测码来检测旧数据的差错,并且如果所述旧数据没有差错则执行计算数据差异。
3.如权利要求2所述的部分数据改变方法,其中,在校正所述旧数据的差错之后,计算从所述主机提供的新数据与经差错校正的旧数据之间的差异,并利用所述数据差异和从所述存储器装置读取的旧奇偶性来计算新奇偶性。
4.如权利要求3所述的部分数据改变方法,还包括:
执行部分数据编码操作,该部分数据编码操作包括:把要存储在所述存储器装置处的整体数据划分成多个部分数据,生成用于每个部分数据的差错检测码的奇偶性,以及生成部分编码数据。
5.如权利要求4所述的部分数据改变方法,还包括:
在所述部分数据编码操作之后执行整体数据编码操作,该整体数据编码操作包括生成用于与所述多个部分数据相对应的所有部分编码数据的差错校正码的奇偶性。
6.如权利要求2所述的部分数据改变方法,还包括:
执行整体数据编码操作,该整体数据编码操作包括生成用于要存储在所述存储器装置处的整体数据的差错校正码的奇偶性。
7.如权利要求6所述的部分数据改变方法,还包括:
在执行所述整体数据编码操作之后,将所述整体数据划分成多个部分数据,所述整体数据是要存储在所述存储器装置处的数据;以及
生成用于所述整体数据的差错检测码的奇偶性。
8.如权利要求7所述的部分数据改变方法,还包括:
执行部分数据编码操作,该部分数据编码操作包括:生成所述多个部分数据中的每一个的差错检测码的奇偶性,以及生成部分编码数据。
9.如权利要求8所述的部分数据改变方法,其中,在所述部分数据编码操作中,生成关于在所述整体数据编码操作中生成的整体数据的经编码奇偶性。
10.如权利要求1所述的部分数据改变方法,还包括:
检测旧数据的差错;
如果所述旧数据有差错,则校正所述旧数据的差错,并且
其中,利用差错校正码来检测旧数据的差错,并且执行计算从所述主机提供的新数据与经差错校正的旧数据之间的数据差异。
11.如权利要求10所述的部分数据改变方法,还包括:
执行部分数据编码操作,该部分数据编码操作包括:把要存储在所述存储器装置处的整体数据划分成多个部分数据,生成用于所述多个部分数据中的每一个的差错校正码的奇偶性,以及生成部分编码数据;以及
在所述部分数据编码操作之后执行整体数据编码操作,该整体数据编码操作包括生成用于与所述多个部分数据相对应的所有部分编码数据的差错校正码的奇偶性。
12.如权利要求10所述的部分数据改变方法,还包括:
执行整体数据编码操作,该整体数据编码操作包括生成用于要存储在所述存储器装置处的整体数据的差错校正码的奇偶性;以及
在执行所述整体数据编码操作之后,将所述整体数据划分成多个部分数据并且生成用于所述整体数据的差错校正码的奇偶性。
13.如权利要求12所述的部分数据改变方法,还包括:
执行部分数据编码操作,该部分数据编码操作包括生成所述多个部分数据中的每一个的差错校正码的奇偶性并且生成部分编码数据。
14.如权利要求13所述的部分数据改变方法,其中,在所述部分数据编码操作中,生成关于在所述整体数据编码操作中生成的整体数据的经编码奇偶性。
15.如权利要求10所述的部分数据改变方法,还包括:
如果从所述存储器装置读取的部分数据没有差错,则计算从所述主机提供的新数据与所述旧数据之间的数据差异,并且利用所述数据差异和从所述存储器装置读取的旧奇偶性来计算新奇偶性。
16.如权利要求1-15中任意一项所述的部分数据改变方法,其中,所述存储器装置是易失性存储器装置。
17.如权利要求1-15中任意一项所述的部分数据改变方法,其中,所述存储器装置是非易失性存储器装置。
18.一种用于在存储器装置的部分数据被改变时生成新奇偶性的存储器控制器,包括:
数据位置识别器,被配置为识别被改变的部分数据的位置;
数据差异计算器,被配置为从所述数据位置识别器接收被改变的部分数据的位置信息,并且计算从主机输入的新数据与从所述存储器装置输入的旧数据之间的数据差异;以及
奇偶性计算器,被配置为利用存储在所述存储器装置处的旧奇偶性和所述数据差异来计算新奇偶性,所述旧奇偶性是与所述旧数据相对应的奇偶性,所述新奇偶性是与所述新数据相对应的奇偶性。
19.如权利要求18所述的存储器控制器,其中,所述数据位置识别器、所述数据差异计算器和所述奇偶性计算器被包括在新奇偶性生成器中。
20.如权利要求18所述的存储器控制器,其中,所述数据差异计算器被配置为将被改变的部分数据划分成多个片段并且针对每个片段计算新数据与旧数据之间的数据差异。
21.如权利要求18所述的存储器控制器,其中,所述数据差异计算器被配置为利用XOR运算来计算所述新数据与所述旧数据之间的数据差异。
22.一种存储器系统,包括:
存储器装置,被配置为存储数据和奇偶性;
主机,被配置为提供用于改变存储在所述存储器装置处的部分数据的新数据和位置信息;以及
存储器控制器,被配置为从所述主机接收所述新数据和位置信息,计算从所述主机提供的新数据与从所述存储器装置输入的旧数据之间的数据差异,并且利用存储在所述存储器装置处的旧奇偶性和所述数据差异来生成新奇偶性,所述旧奇偶性是与所述旧数据相对应的奇偶性,所述新奇偶性是与所述新数据相对应的奇偶性。
23.如权利要求22所述的存储器系统,其中,所述存储器控制器包括:
数据位置识别器,被配置为识别被改变的部分数据的位置;
数据差异计算器,被配置为从所述数据位置识别器接收被改变的部分数据的位置信息并且计算所述新数据与所述旧数据之间的所述数据差异;以及
奇偶性计算器,被配置为利用所述旧奇偶性和所述数据差异来计算所述新奇偶性。
24.如权利要求22所述的存储器系统,其中,所述数据差异计算器被配置为将被改变的部分数据划分成多个片段并且针对每个片段计算新数据与旧数据之间的数据差异。
25.一种操作存储器控制器以更新奇偶性信息的方法,该方法包括:
在所述存储器控制器处确定第一奇偶性,所述第一奇偶性是与存储在存储器装置中的第一数据的全体相对应的奇偶性,所述第一数据包括第一部分和第二部分;
接收以新数据替换所述第一部分的请求;
在所述存储器控制器处基于所述新数据和所述第一部分生成数据差异值;
通过在所述存储器控制器处基于所述数据差异和所述第一奇偶性生成所述第一数据的新奇偶性来更新所述第一奇偶性;以及
通过将所述新数据和所述新奇偶性存储在所述存储器装置处来以所述新数据替换所述第一数据中的所述第一部分。
26.如权利要求25所述的方法,其中,所述存储器控制器在不使用所述第二部分的情况下执行生成所述数据差异和生成所述新奇偶性的操作,并且所述新奇偶性对应于包括所述新数据和所述第二部分在内的所述第一数据的全体。
27.如权利要求25所述的方法,其中,所述第一部分包括所述第一数据的连续比特,所述第二部分包括所述第一数据的连续比特,并且所述第一部分和第二部分不彼此重叠。
CN201310575217.0A 2012-11-15 2013-11-15 改变存储器装置中的部分数据的存储器控制器及其方法 Active CN103824599B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020120129548A KR102002044B1 (ko) 2012-11-15 2012-11-15 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템
KR10-2012-0129548 2012-11-15
KR10-2012-0129549 2012-11-15
KR1020120129549A KR102041874B1 (ko) 2012-11-15 2012-11-15 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법

Publications (2)

Publication Number Publication Date
CN103824599A CN103824599A (zh) 2014-05-28
CN103824599B true CN103824599B (zh) 2018-06-05

Family

ID=50555968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310575217.0A Active CN103824599B (zh) 2012-11-15 2013-11-15 改变存储器装置中的部分数据的存储器控制器及其方法

Country Status (5)

Country Link
US (1) US9311181B2 (zh)
JP (1) JP2014099174A (zh)
CN (1) CN103824599B (zh)
DE (1) DE102013112195A1 (zh)
TW (1) TWI627535B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6414497B2 (ja) * 2015-03-25 2018-10-31 アイシン・エィ・ダブリュ株式会社 メモリコントローラ
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
DE102015104841B4 (de) * 2015-03-30 2024-08-14 Infineon Technologies Ag Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
CN107068194A (zh) * 2017-04-20 2017-08-18 聚辰半导体(上海)有限公司 一种应用在eeprom上的错误纠正编码及相应的eeprom
US10585749B2 (en) * 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding
KR20190031787A (ko) 2017-09-18 2019-03-27 삼성전자주식회사 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1776637A (zh) * 2004-11-19 2006-05-24 国际商业机器公司 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统
CN101073066A (zh) * 2003-12-29 2007-11-14 英特尔公司 生成奇偶数据的方法、系统和程序
CN102063266A (zh) * 2009-11-18 2011-05-18 联发科技股份有限公司 非易失存储器控制器与用于将当前数据写入非易失存储器的方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06342405A (ja) 1993-06-01 1994-12-13 Nec Corp ファイル・システム
JP3270959B2 (ja) 1993-10-05 2002-04-02 株式会社日立製作所 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
JPH11212877A (ja) 1998-01-28 1999-08-06 Nec Kofu Ltd 記憶装置
KR100300175B1 (ko) 1998-09-17 2001-10-27 서평원 인쇄회로기판에다운로드하는방법
JP2000259496A (ja) 1999-03-08 2000-09-22 Nec Kofu Ltd 記憶装置
JP2001337759A (ja) 2000-05-24 2001-12-07 Fuji Xerox Co Ltd ディスクアレイ装置
JP4877894B2 (ja) * 2001-07-04 2012-02-15 ルネサスエレクトロニクス株式会社 半導体装置
KR100423812B1 (ko) 2001-12-20 2004-03-22 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
US7100097B2 (en) 2002-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. Detection of bit errors in maskable content addressable memories
JP4336168B2 (ja) 2003-09-08 2009-09-30 株式会社ルネサステクノロジ Ecc機能付き半導体記憶装置
US7191379B2 (en) 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
KR100634414B1 (ko) 2004-09-06 2006-10-16 삼성전자주식회사 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법
JP4643334B2 (ja) * 2005-03-31 2011-03-02 富士通セミコンダクター株式会社 半導体記憶装置
US7467335B2 (en) 2005-07-01 2008-12-16 Alcatel-Lucent Usa Inc. Method and apparatus for synchronizing data channels using an alternating parity deskew channel
TWI309768B (en) * 2005-09-06 2009-05-11 Realtek Semiconductor Corp Error correction apparatus capable of raising memory bandwidth utilization efficiency and related method thereof
US7954034B1 (en) * 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
JP4469783B2 (ja) * 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
US7945840B2 (en) 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
KR100855979B1 (ko) 2007-02-13 2008-09-02 삼성전자주식회사 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
US8799743B2 (en) * 2008-10-28 2014-08-05 Micron Technology, Inc. Error correction in multiple semiconductor memory units
JP2010123156A (ja) 2008-11-17 2010-06-03 Elpida Memory Inc 半導体記憶装置及びその制御方法
KR101079367B1 (ko) 2010-01-13 2011-11-02 성균관대학교산학협력단 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
JP4940322B2 (ja) 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
JP2011198272A (ja) * 2010-03-23 2011-10-06 Toshiba Corp 半導体記憶装置および半導体記憶装置の制御方法
JP2012022422A (ja) 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置
US9058288B2 (en) * 2011-04-03 2015-06-16 Apple Inc. Redundant storage in non-volatile memory by storing redundancy information in volatile memory
KR20120129549A (ko) 2011-05-20 2012-11-28 송권호 향기가 배출되는 의자
KR101249956B1 (ko) 2011-05-20 2013-04-03 한밭대학교 산학협력단 세탁물 건조장치 및 건조방법
US9444496B2 (en) * 2012-04-04 2016-09-13 University Of Southern California Correctable parity protected memory
WO2013160970A1 (en) * 2012-04-27 2013-10-31 Hitachi, Ltd. Storage system and storage control apparatus
US9619318B2 (en) * 2013-02-22 2017-04-11 Intel Deutschland Gmbh Memory circuits, method for accessing a memory and method for repairing a memory
US9148176B2 (en) * 2013-06-24 2015-09-29 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101073066A (zh) * 2003-12-29 2007-11-14 英特尔公司 生成奇偶数据的方法、系统和程序
CN1776637A (zh) * 2004-11-19 2006-05-24 国际商业机器公司 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统
CN102063266A (zh) * 2009-11-18 2011-05-18 联发科技股份有限公司 非易失存储器控制器与用于将当前数据写入非易失存储器的方法

Also Published As

Publication number Publication date
CN103824599A (zh) 2014-05-28
TW201432458A (zh) 2014-08-16
DE102013112195A1 (de) 2014-05-15
US20140136920A1 (en) 2014-05-15
TWI627535B (zh) 2018-06-21
US9311181B2 (en) 2016-04-12
JP2014099174A (ja) 2014-05-29

Similar Documents

Publication Publication Date Title
CN103824599B (zh) 改变存储器装置中的部分数据的存储器控制器及其方法
CN108062258B (zh) 用于错误恢复的循环交错的xor阵列
US10388400B2 (en) Generalized product codes for flash storage
CN110399311A (zh) 存储器系统及该存储器系统的操作方法
CN108022611A (zh) 存储系统及其操作方法
CN110322920A (zh) 控制器及控制器的操作方法
CN108388525A (zh) 存储器系统及其操作方法
CN105718383A (zh) 存储系统及其操作方法
CN108932203A (zh) 数据处理系统和数据处理方法
CN110531922A (zh) 存储器系统、控制器及其操作方法
US11182243B2 (en) Memory system with adaptive information propagation and method of operating such memory
CN107807887A (zh) 存储器系统及其操作方法
CN108363547A (zh) 控制器及其操作方法
US11036579B2 (en) Decoder for memory system and method thereof
CN109213435A (zh) 存储器系统以及存储器系统的操作方法
US10348335B2 (en) Miscorrection avoidance for turbo product codes
CN108108122A (zh) 控制器和存储器系统及其操作方法
CN110032330A (zh) 存储器系统及其操作方法
CN109254722A (zh) 控制器及其操作方法
CN108877869A (zh) 控制器及其操作方法
US11062758B2 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
KR102041874B1 (ko) 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법
US11115062B2 (en) Memory system with adaptive threshold decoding and method of operating such memory system
US10141072B2 (en) Efficient encoder based on modified RU algorithm
CN109426450A (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
GR01 Patent grant
GR01 Patent grant