CN101876947A - 用于存储数据的方法及其*** - Google Patents

用于存储数据的方法及其*** Download PDF

Info

Publication number
CN101876947A
CN101876947A CN2010101693292A CN201010169329A CN101876947A CN 101876947 A CN101876947 A CN 101876947A CN 2010101693292 A CN2010101693292 A CN 2010101693292A CN 201010169329 A CN201010169329 A CN 201010169329A CN 101876947 A CN101876947 A CN 101876947A
Authority
CN
China
Prior art keywords
data
code word
ecc
metadata
write
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
CN2010101693292A
Other languages
English (en)
Other versions
CN101876947B (zh
Inventor
M·弗朗斯奇尼
A·贾格默汉
J·P·卡里蒂斯
L·A·拉斯特拉斯-蒙塔诺
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101876947A publication Critical patent/CN101876947A/zh
Application granted granted Critical
Publication of CN101876947B publication Critical patent/CN101876947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

自适应耐久性编码包括一种用于存储数据的方法,该方法包括接收写入数据和写入地址。将压缩算法应用于写入数据以生成压缩的数据。将耐久性码应用于压缩的数据以生成码字。响应于通过对写入数据应用压缩而节约的空间量,选择和应用所述耐久性码。将所述码字写入到所述写入地址。

Description

用于存储数据的方法及其***
技术领域
本发明通常涉及计算机存储器,并且更具体地,涉及非易失性存储器的自适应耐久性编码(adaptive endurance coding)。
背景技术
相变存储器(PCM)和闪速存储器是具有有限耐久性(又称“有限寿命”)的非易失性存储器的示例。在经历许多个写循环(对于PCM是重置(RESET)循环,对于闪速存储器是编程/擦除循环)之后,存储器单元损耗并且不再能够可靠地存储信息,在此意义上该存储器具有有限的耐久性。
可以利用一种被称为耐久性编码的技术来延长有限寿命存储器的寿命,其中将若干码型(pattern)写入存储器以使得减少单元磨损。当前的耐久性编码方案的缺点在于,它们引起了数据扩展并且未描绘出用于使耐久性编码的参数适合于数据可压缩性和存储器页面长度(pagelength)的任何机制。这意味着,对于每个数据字不得不使用不同的页面长度,或者不得不牺牲耐久性的增加。
其他相关的实现方案包括用于在一次写入和高效写入存储器上的写入的方法,其允许在存储器的每次写入中和/或存储器的寿命内存储增加的数据量。再次的,这些方法的缺点在于,它们不允许针对不同的数据自适应地选择耐久性码。
发明内容
一个示例性实施例是一种用于存储数据的方法,该方法包括接收写入数据和写入地址。将压缩算法应用于写入数据以生成压缩的数据。将耐久性码应用于压缩的数据以生成码字。响应于通过对写入数据应用压缩而节约的空间量,选择和应用耐久性码。将该码字写入到写入地址。
另一实施例是一种包括接收器的***,该接收器接收写入数据和写入地址。该***还包括数据压缩器,其将压缩算法应用于写入数据以生成压缩的数据。该***进一步包括耐久性编码器,其将耐久性码应用于压缩的数据,其中响应于通过对写入数据应用压缩而节约的空间量,选择和应用耐久性码。来自耐久性编码器的输出是码字。该***进一步包括存储器写入器,其将该码字写入到写入地址。
一个另外的示例性实施例是一种用于存取存储器的方法,该方法包括从存储器地址取得(retrieve)码字。用元数据矩阵乘以该码字以恢复用于该码字的元数据。所述元数据包括数据位置规范。响应于所述元数据来识别码字中的数据,并输出所述数据作为读取数据。
又一示例性实施例是一种包括存储器读取器的***,该存储器读取器从存储器地址取得码字。该***还包括元数据计算器,其将元数据矩阵乘以码字以恢复用于码字的元数据,其中所述元数据包括数据位置规范。该***进一步包括:元数据解释器,其响应于所述元数据来识别码字中的数据;以及发送器,其输出所述数据作为读取数据。
通过本实施例的技术可以认识到另外的特征和优点。在此还描述了其他实施例和方面,并且将其视为本发明的一部分。为了更好地理解具有这些优点和特征的本发明,请参照以下描述和附图。
附图说明
在本申请文件的结尾处,在权利要求中具体地指出了并且清楚地要求保护被视为本发明的主题内容。根据下面结合附图的详细描述,本发明的前述和其他特征以及优点是清楚的,在附图中:
图1示出了可以通过示例性实施例实现的用于写入数据的过程;
图2示出了可以通过示例性实施例实现的用于写入数据的存储器控制器的框图;
图3示出了可以通过示例性实施例实现的纠错编码器的框图;
图4示出了可以通过示例性实施例实现的用于读取数据的过程;
图5示出了可以通过示例性实施例实现的用于读取数据的存储器控制器的框图;
图6示出了可被实现为针对地址按逐次写入来改变ECC的校验位置的示例性实施例;
图7示出了可以通过示例性实施例实现的用于写入数据的***的框图;
图8示出了可以通过示例性实施例实现的编码器;
图9示出了可以通过示例性实施例实现的用于读取数据的***的框图;
图10示出了可以通过示例性实施例实现的读取过程;
图11示出了可以通过示例性实施例实现的用于执行联合压缩和扩展的过程;以及
图12示出了可以通过示例性实施例实现的联合压缩和耐久性编码。
具体实施方式
本发明的一个示例性实施例包括一种用于有限寿命存储器的自适应耐久性编码***和方法,其中待写入到存储器中的数据被转换为使对存储器单元的损耗减少的形式,并且因此延长了存储器寿命。在示例性实施例中,写入的数据是对于错误可复原的(即,即使在存储之后所存储的信息中存在错误的情况中,仍可以恢复数据)。
一个示例性实施例包括一种以增强的耐久性将数据写入到非易失性存储器器件上的***和方法。通过使耐久性编码参数适合于数据属性和诸如存储器页面大小的存储器参数的方式,结合耐久性编码和错误复原,利用无损数据压缩。因此,如果待写入数据是高度可压缩的,则可以实现高的耐久性增益(gain)。可替选地,如果数据并非是高度可压缩的,则选择耐久性码以便于确保编码的数据将适合存储器页面。因此,示例性实施例在确保所生成的数据将总是适合在给定的存储器页面内的同时,允许获得耐久性编码的最大利益。这显著地简化了存储器簿记(memory bookkeeping),并因此,改进了存储器存取性能。再者,示例性实施例在确保可以正确地从存储器恢复数据的同时,以保持耐久性增益的方式整合了错误复原。
图1示出了可以通过示例性实施例实现的使用自适应耐久性编码来写入数据的过程。在框102中,(例如,在存储器控制器处)接收写入数据和写入地址。在示例性实施例中,写入地址是页面地址并且写入数据是数据页面(例如,4K比特)。在框104中,写入数据被压缩以生成压缩的数据。然后在框106中将耐久性码应用于压缩的数据,以生成压缩的耐久性编码了的数据。所应用的耐久性码是基于压缩的数据和目标存储器器件的特性而选择的。在框108中选择写入数据、压缩的数据和压缩的耐久性编码了的数据中的一个,并且在框110中对所选择的数据进行ECC编码以生成码字。在框112中,在写入地址处将该码字写入存储器。
图2示出了可以通过示例性实施例实现的用于写入数据的存储器控制器的框图。图2中示出的存储器控制器202将数据压缩和耐久性编码组合以便于通过增强存储器耐久性的方式写入非易失性存储器。图2中示出的示例性存储器控制器202包括随机存取存储器(RAM)中的码表(code table),该码表在此处被称为RAM码表204,该码表存储关于(例如,存储器器件上)非易失性存储器206中存储的每个数据单元的耐久性码/压缩状态信息。图2中示出的示例性RAM码表204中的状态信息包括:(1)页面状态是未编码的(U)、压缩的(C)、还是压缩且耐久性编码的(E)的指示;(2)指示哪个可用纠错码集合已被用于对当前页面数据进行编码的ECC码索引;以及(3)指示哪个耐久性码(如果有的话)已被用于对页面数据进行编码的耐久性码索引。RAM码表204中存储的信息在此处被称为“元数据”。
图2中示出的到存储器控制器202的输入包括待写入的页面的地址以及待写入到页面的数据。在示例性实施例中,经由位于存储器控制器202(或者其他位置)上的接收器来接收输入。接收器可以通过多种方式来实现,包括用于接收输入和/或输入所位于的存储位置(例如,寄存器)的硬件。页面地址用于对RAM码表204进行索引以便于取得耐久性编码状态信息。页面数据(在此处也被称为写入数据)被输入到数据压缩器208,该数据压缩器208应用无损数据压缩算法以压缩写入数据。可以实现的无损数据压缩算法的示例包括,但不限于:算术编码、Huffman编码、Lempel-Ziv编码和BWT编码。此外,如果已知写入数据的特性(诸如统计信息)是先验的或者是可预测的,则可以应用任何利用该知识的专用无损编码算法以便于更有效地压缩数据。
数据压缩器208输出的压缩字被输入到耐久性编码器210。耐久性编码器210使用压缩字的特定特性,并且可能使用关于待使用的纠错码(ECC)和先前的页面内容的信息,以便于从多个耐久性码中选择一个耐久性码。在示例性实施例中,非易失性存储器206是诸如二进制NAND闪存的“一次写入”存储器,并且耐久性编码器210是两电平单发有界加权二进制编码器(two-level one-shot bounded weight binarycoder)。即,耐久性编码器210假设写入是到已擦除页面的,并且产生具有少于固定数量的未擦除符号(symbol)的输出字。在该情况中,耐久性编码器210基于压缩的数据字的长度选择有界权重约束,以便于在确保耐久性编码字将适合存储器206的固定页面长度的同时获得最大的耐久性增益。因此,如果原始数据是高度可压缩的,并且压缩字长度是小的,则可以获得小的有界权重约束以获得高的耐久性增益。可替选地,如果页面并非是高度可压缩的,则可以使用大的有界权重约束来确保耐久性编码字将适合存储器页面。再者,耐久性编码器210可以在选择要实施的有界权重的同时,利用ECC码率(code rate)的知识;这可以用于例如,保证写入到存储器206中的错误编码字将满足给定的权重约束。
在替选实施例中,非易失性存储器206是诸如多级相变存储器的“可重写的”存储器,并且耐久性编码器210使用多级瀑布码。耐久性编码器选择的瀑布码是如数据压缩器208的输出所指示的数据的可压缩性的函数。耐久性编码器还可以利用本领域中已知的其他码,诸如用于一次写入和高效写入的存储器的码,其中基于数据压缩器208的输出来选择多个码中的一个码用于耐久性编码。
一旦选择了耐久性码,则使用该码产生与数据压缩器208产生的压缩字对应的输出码字。在另一示例性实施例中,存储器206是一次写入或可重写的存储器(诸如PCM),并且耐久性编码器210另外使用存储器206的先前的页面内容的知识以便于选择耐久性码以及生成输出码字。该先前内容通过存储器读取过程218读取,并且耐久性编码器使用过程218的输出,以便于生成耐久性编码了的码字。所使用的耐久性码的索引被输入到RAM码表204。
如图2中所示,耐久性编码器210的输出、数据压缩器208的输出和原始写入数据被输入到数据选择器212。数据选择器212基于例如,字的长度和通过压缩和耐久性编码获得的增益,来决定将这三个数据中的哪个数据写入到存储器206中。在替选的示例性实施例中,由数据压缩器208和耐久性编码器210顺次做出该决定而不需要数据选择器212。例如,如果数据压缩器208的输出与输入字一般长或者长于输入字,则数据压缩器208简单地将输入字输出到耐久性编码器210。相似地,如果耐久性编码器210产生的字过长以至于不适合页面或者具有其他不合需要的特性,则耐久性编码器210简单地将压缩的/原始的写入数据字直接输出到纠错编码器214。在这两个实施例中,页面的编码状态被发送到RAM码表204用于存储。数据选择器212的输出随后被发送到纠错编码器214,该纠错编码器214选择多个ECC中的一个ECC用于对数据编码。
图3示出了可以通过示例性实施例实现的纠错编码器214的框图。如图3中所示,首先使用***ECC编码器302,利用***码对输入数据编码。***ECC编码器302的输出随后被输入到索引排序器(indexed permuter)304以使用多个预定排序中的一个对编码的数据排序。所选择的排序基于RAM码表204中存储的ECC码索引。在替选的示例性实施例中,可以使用多个***码,以使得输入数据被包含在所生成的码字中并且奇偶符号位置随变化的码索引而变化。使用这些示例性实施例中的任一实施例的优点在于,由奇偶比特引起的损耗散布跨越若干单元位置,由此使损耗平均,并且改进了存储器耐久性。将所使用的ECC码的索引发送到RAM码表204用于存储,同时将码字发送到存储器写入过程以写入存储器206(例如,存储器器件)。
在示例性实施例中,纠错编码器214使用的ECC的码率取决于如数据压缩器208的输出所指示的数据的可压缩性。在示例性实施例中,总是使用最小(或缺省)纠错能力(例如,如通过ECC奇偶比特的数量测量的)。当压缩的数据的长度低于预先限定的阈值时,增加ECC奇偶比特的数量以便于提供更大的纠错能力。因此,在该实施例中,耐久性码和ECC码的选择是基于数据的可压缩性进行的。如前文所述,利用待使用的ECC码的知识来进行耐久性编码器210对耐久性码的选择。这确保了编码器214生成的码字具有正确的长度以便被写入存储器中。在替选实施例中,多个ECC保护等级是可能的(包括无保护),并且基于压缩的数据的长度与多个阈值的比较来选择适当的等级。
再次参照图2,纠错编码器214生成的码字被发送到存储器写入过程216以便写入存储器206。在示例性实施例中,存储器206使得存储器写入过程216具有一个或更多个可编程参数,该可编程参数允许使存储器写入过程216改变诸如写入速度、写入功率、写入损耗等属性。例如,存储器206可以是在每次单元写入时使用多次叠代的PCM,并且叠代的次数是可编程的;其中使用的叠代的次数越多,则写入过程的准确性越高,但是功率支出和写入延时也更高。作为另一示例,存储器206可以是闪速存储器,其中浮栅电压电平的设置是可编程的。在该情况中可以通过使电平间隔得更靠近在一起来减小写入速度、写入功率和写入损耗,但这是以因浮栅电荷扰动引起的错误概率增加为代价的。在该实施例中,由纠错编码器214基于如数据压缩器208的输出所指示的数据的可压缩性选择纠错能力,并且基于所使用的纠错能力选择写入过程参数。因此,例如,如果数据是高度可压缩的,则可以使用高的纠错能力,这允许选择选择写入参数以便于减小写入功率,减小写入延时和/或减小写入损耗,但这是以写入准确性为代价的;较高的纠错能力确保了减小的写入准确性足够用于可靠的数据存储。
图2中示出的RAM码表204允许快速地存取用于耐久性编码工作所需的信息。为了确保RAM码表204中的信息不丢失(例如,由于断电),RAM码表204被周期性地写回到非易失性存储器206(或者一些其他存储器)。在该过程中,由纠错编码器/解码器222对RAM码表204中的信息进行ECC编码用于保护,并且随后通过写入过程220将RAM码表204中的信息写入非易失性存储器206。在断电的情况中,可以通过读取过程220和从纠错解码器222从存储器重新加载RAM码表204。在替选的示例性实施例中,RAM码表204用作关于状态信息的高速缓存,并且在任何给定的时间仅关于非易失性存储器页面的子集的信息被存储在RAM码表204中。在存取页面时,页面的信息被转移到RAM码表204中,并且当对于给定的时间周期页面未被使用时,信息被转移出RAM码表204。在示例性实施例中本领域中已知的其他高速缓存技术可用于将信息转移到RAM码表204中和转移出RAM码表204。在另一实施例中,RAM码表204(可以用作或者可以不用做高速缓存)存储在第二非易失性存储器器件上,该第二非易失性存储器器件具有比其上存储数据的非易失性存储器器件更高的耐久性。
应当注意,基于压缩的数据字的特性来选择耐久性码是有利的,其有利之处在于,它确保了耐久性的增益可以适合于页面压缩并且因此可以获得耐久性编码的最大利益。同时,它确保了所生成的数据将总是适合在给定的存储器页面内,而无需对存储器页面长度进行任何改变,这极大地简化了存储器簿记,并且因此,改进了存储器存取性能。
图4示出了可以通过示例性实施例实现的用于使用自适应耐久性编码来读取数据的过程。在框402中,(例如,在存储器控制器处)接收读取地址,并且在框404中,从存储器206取得在该读取地址处存储的码字。在框406中向该码字应用ECC解码器。在框408中,取得和/或得到与读取地址所引用的页面(或其他存储器单元)对应的元数据。元数据描述存储器页面中存储的数据的状态。在示例性实施例中,该状态是未编码的、压缩的、或者压缩且耐久性编码的。此外,元数据可以描述用于存储器页面中的数据的耐久性编码和ECC编码。如果页面状态是未经编码的,则在框410中输出ECC解码的数据作为读取数据。如果页面状态是压缩的,则在框410中对ECC解码的数据解压缩,并且将其输出作为读取数据。如果页面状态是压缩且耐久性编码的,则在框410中通过耐久性码解码器发送ECC解码的数据,并且随后将其解压缩并输出作为读取数据。
图5示出了可以通过示例性实施例实现的用于读取数据的存储器控制器的框图。对于给定的读取地址,如果需要,RAM码表204被加载有适当的页面状态信息(例如,元数据)。在示例性实施例中,这是通过读取过程514和纠错解码器512来进行的。然后通过存储器读取过程504从存储器206读取数据。从存储器206读取的码字被输入到纠错解码器506,该纠错解码器506使用对应于ECC码索引的解码过程,该ECC码索引对应于RAM码表204中的页面地址(即,读取地址)。依赖于页面状态(E/C/U),纠错解码器506的输出被适当地路由。如果该状态是U(未编码的),则存储器控制器502直接输出纠错解码器506的输出以作为读取数据。如果页面状态是C(压缩的),则纠错解码器506的输出被路由至数据解压缩器508,并且存储器控制器502输出解压缩的输出以作为读取数据。最后,如果页面的读取状态是E(耐久性编码的),则数据被路由至耐久性解码器510,随后被路由至数据解压缩器508,并且然后由存储器控制器502最终输出作为读取数据。在示例性实施例中,通过位于存储器控制器502(或其他位置)上的发送器执行上述的输出。发送器可以通过多种方式实现,包括用于传送输出以及存储所述输出的存储位置或寄存器的硬件。
应当注意,图2和图5中示出的所有或一部分元件可以位于另一物理位置,诸如但不限于另一存储器元件(诸如,存储器模块或存储器集线器(memory hub))。
上述示例性实施例使用存储器控制器可存取的表,即RAM码表204,其描述了页面状态(E/C/U)以及用于正确解释从页面读取的信息所需的其他信息。这些信息和可用于该任务的任何其他信息在此处被称为“元数据”。在一些情况中,期望通过如下方式实现实施例,即不需要使用该控制器表,并且作为替换,直接将元数据与数据一起存储在存储器206中。原因在于,控制器表有时实现起来是昂贵的。关于这一思想的直接的实现方案的主要困难在于,存储元数据的物理存储器通常经受与其余的数据位置所经受的相同的损耗和错误机制,并且因此元数据不能全然不变地(verbatim)存储在存储器206的固定位置中。原则上,对于元数据而言,也需要耐久性编码和纠错编码,引起了循环问题(circular problem)。
下面描述可通过示例性实施例实现的对该问题的解决方案。通过向量m表示元数据,并且通过向量v表示将写入存储器中的码字。将由读取和写入过程共享的两个预先指定的矩阵定义为H和M,其中H是***纠错码的奇偶校验矩阵(此处也称为“奇偶矩阵”),而M在此处也称为“元数据矩阵”)。基本的思想是不在任何预先指定的位置存储元数据m,而是计算码字v,以使得可以通过将矩阵M与向量v相乘来恢复元数据。***ECC确保可以从存储器正确地恢复v。在示例性实施例中,另外的要求是,当特定地址被多次写入时,应轮换(rotate)***ECC的校验位置(也被称为“附加比特”);这确保不同的存储器单元均匀地损耗。
图6示出了可被实现为对地址(例如,页面)按逐次写入来使ECC的校验位置变化的示例性实施例。如图6中所示,用于对地址的第一次写入602的码字中的ECC比特(或校验位置)位于码字的最初三个比特中。用于对该地址的第二次写入604的码字中的ECC比特位于码字的第二至第四比特,并且用于对地址的第三次写入606的码字中的ECC比特位于码字的最末三个比特中。因此,码字中的ECC比特的位置是变化的。
图7示出了可以通过示例性实施例实现的用于写入数据的***的框图,该***不使用码表来存储元数据。未压缩的数据被馈送到压缩器702,该压缩器702产生压缩的数据和指示数据是被压缩还是被扩展以及压缩或扩展到何种程度的压缩参数。压缩的数据和参数被传递到耐久性码编码器704,该耐久性码编码器704使用待写入存储器的码型来选择对压缩的数据进行编码的方法,该方法被选择为产生最小的成本。可选地该步骤取决于目标存储器地址中当前写入的数据。换言之,成本可以仅取决于将写入的数据码型,或者可以取决于将写入的数据码型和当前写入的数据码型两者。
接着,利用数据选择器706,决定将数据存储为未压缩的、压缩的、还是压缩且耐久性编码的。此外,计算描述该决定以及所使用的耐久性编码(如果有的话)的类型的元数据。该步骤的结果是将存储在存储器中的经处理的数据符号以及元数据。
元数据和经处理的数据符号被传递到ECC编码器708,该ECC编码器708生成用于外部传递到ECC功能的给定位置集合的校验符号。如前面描述的,每次地址被写入时,用于特定存储器地址的给定位置集合轮换。由ECC编码器708生成校验符号确保了:校验符号被选择为使得所得到的码字v在与矩阵M相乘时,导致了所期望的元数据m。ECC编码的结果(即码字v)被输出到存储器。
图8示出了可以通过示例性实施例实现的ECC编码器708。矩阵H和M是预先固定的,并且矩阵H是***ECC的奇偶校验矩阵。第一公式802定义了来自ECC编码器708的一般期望:需要计算使得Hv=0的码字向量v,并且因此v是由奇偶校验矩阵H所定义的线性码的码字,并且Mv=m,从而可以通过乘法Mv从v恢复元数据m。关于ECC编码器708的其他要求是,码字v具有位于外部指定的符号位置中的由向量c表示的校验符号;因此其具有在剩余位置中的由向量d表示的给定的经处理的数据符号。在一个示例中,位置集合是码字中的连续符号集合,其开始位置是可选择的。
如图8中所见,经处理的数据符号d和校验符号c被组装(assemble)以形成码字v。该组装取决于校验符号的期望位置。图8的框806中给出了三个示例:在一个示例中校验符号位于码字的起点,在另一个实施例中校验符号开始于码字的第二符号,并且在第三实施例中校验符号位于码字的末尾。
上述图8中还包括公式804,编码器可以利用该公式804计算校验符号。这些公式取决于:矩阵B0、B1、…、Bi,期望的元数据m,和期望的经处理的数据符号d。对于每个可能的校验位置存在一个这样的矩阵。
通过处理预先指定的矩阵H和M可以得到矩阵B0、B1、…、Bi。在示例性实施例中,所述处理如下:得到使得
Figure GSA00000098447800121
的矩阵A0,其中I表示单位矩阵。左乘(pre-multiplication)的结果的其他部分是B0,即对于校验符号将被设置在码字v的起点时的期望的矩阵。相似的过程产生B1(已示出)、B2(未示出)等。通常,可以通过将矩阵Ai确定为使得当Ai乘以矩阵
Figure GSA00000098447800122
时,结果矩阵包含按列对应于期望的数据-符号位置的单位矩阵,来计算每个Bi。应当注意,在实际的实现方案中,并不必然需要具有专用于所有B0、B1、B2等的电路。例如,如果H是循环码的奇偶校验矩阵,则可以通过用对角矩阵左乘B0,从B0计算Bi。H所定义的纠错码的符号可以来自任何伽罗华域(GaloisField),包括GF(2p),其中p是任何期望的扩展域度。
一旦计算了Ai,则将校验比特计算为
Figure GSA00000098447800123
并且通过以使校验比特和数据符号位于如图8中的公式806所示的期望位置的方式组装向量c和d来计算码字。在需要时,码字v具有使公式802成立的属性。
图9示出了可以通过示例性实施例实现的用于读取数据的***的框图。写入存储器的原始码字由向量v表示,在该示例中,错误向量e破坏了向量v,使得在读取时接收到的字是v+e。这被输入到ECC解码器902。ECC解码器902尝试找到使得H(v+e)=He的错误码型e。如果ECC解码器902成功(假设未发生误纠正),则其通过从v+e和e计算v,找到了v。ECC解码器902还产生描述不可纠正错误状态、可纠正错误状态等等的纠错码标志。解码结果v被传递到计算元数据框904,其计算元数据向量m=Hv。元数据计算的结果m被传递到元数据解释器框906,其解释元数据以便于恢复耐久性码和压缩参数,以及经处理的数据符号的位置。在示例性实施例中,耐久性码参数包括使用什么耐久性码(如果存在的话)对数据编码的描述。在示例性实施例中,压缩参数包括数据是否被压缩的描述。连同关于处理的数据符号的位置的信息一起从v恢复经处理的数据符号。然后将结果馈送到耐久性码解码器908,并且然后馈送到解压缩器910,产生期望的数据。
在不使用码表存储元数据的用于写入无错误存储器的***的示例性实施例中,对写入编码器的输入包括:待存储在存储器中的数据、待写入存储器中的码字内数据的期望位置(其可以被包括在元数据中并且在此处被称为“数据位置规范”)以及包括压缩和耐久性码参数的附加元数据。编码器的输出是由按照符合数据位置规范的方式布置的数据和附加符号组成的码字向量,即其中数据符号位于期望的符号位置的码字。写入编码器找到满足位置规范的码字,使得在用预先指定的矩阵M与码字相乘时,结果是元数据。
在用于读取通过前述写入编码器实施例写入的数据的***的示例性实施例中,对读取解码器的输入包括从存储器接收到的码字。读取解码器的输出是存储在存储器中的数据和(可选的)元数据。读取解码器将矩阵M乘以接收到的码字以恢复元数据,并且从元数据恢复码字内的数据的位置和附加比特。读取解码器返回(或输出)数据,并且如果需要,返回(或输出)元数据。
在不使用码表存储元数据的用于写入有错误存储器的***的示例性实施例中对写入编码器的输入包括:待存储在存储器中的数据、待写入存储器的码字内数据的期望位置以及包括压缩和耐久性码参数的附加元数据。编码器的输出是包含按照符合位置规范的方式布置的数据和附加符号的码字向量,即其中数据符号位于期望的符号位置的码字,其中附加比特包括预先指定的ECC的奇偶比特。写入编码器找到满足位置规范的码字,使得当用预先指定的矩阵M与码字相乘时,结果是元数据,并且使得当用ECC的奇偶校验矩阵H与码字相乘时,结果是已知的值,诸如0。
在用于读取通过前述写入编码器实施例写入的数据的***的示例性实施例中,对读取解码器的输入包括从存储器接收到的错误码字。读取解码器的输出是存储在存储器中的数据和(可选的)元数据。解码器应用具有奇偶校验矩阵H的预先固定的ECC以纠正接收到的码字中的错误。如果该纠正成功,则解码器将矩阵M乘以经纠正的码字以恢复元数据,并且从元数据恢复码字内的数据的位置和附加比特。解码器返回(或输出)数据,并且如果需要,返回(或输出)元数据。
在不使用码表存储元数据的用于写入有错误的存储器的***的示例性实施例中,对写入编码器的输入包括:待存储在存储器中的数据、待写入存储器的码字内数据的期望位置(其可以包括在元数据中)、待使用的ECC符号(或比特)的可变数量(具有从多种可能性中选择的ECC符号的数量)、以及包括压缩和耐久性码参数的附加元数据。编码器的输出是由按照符合位置规范的方式布置的数据和附加符号组成的码字向量,即其中数据符号位于期望的符号位置的码字,其中附加比特包括来自基于所需ECC比特的数量而选择的ECC的奇偶比特。写入编码器找到满足位置规范的码字,使得当用预先指定的矩阵M与码字相乘时,结果是元数据,并且使得当用所选择的ECC的奇偶校验矩阵H与码字相乘时,结果是已知的值,诸如0。
在用于读取通过前述写入编码器实施例写入的数据的***的示例性实施例中,对读取解码器的输入包括从存储器接收到的错误码字。读取解码器的输出是存储在存储器中的数据和(可选的)元数据。对于可变ECC比特的每个可能的数量,解码器尝试应用对应的奇偶校验矩阵以纠正错误。如果恰好存在导致成功纠正的一个奇偶校验矩阵,则解码器将矩阵M乘以经纠正的码字以恢复元数据,并且从元数据恢复码字内的数据的位置和附加比特。它返回(或输出)数据,并且如果需要,返回(或输出)元数据。
替选的示例性实施例包括一种用于获得相似结果而无需添加描述应用于所存储的内容的耐久性编码和压缩技术的扩展元数据的方法。在图10中示出的实施例中,通过分析所存储的内容获得所使用的特定的耐久性码。写入过程1000如下。N个比特的数据序列1002将被写入K>=N个单元。数据被压缩以获得具有C个信息符号的压缩序列1004。两个阈值1006和1008,即c1和c2,被分别固定为c1<c2<N。如果C>c2,则数据被原样地写入,使用1填充(pad)K-N个单元以形成K个扩展比特的序列1010,可选地,对序列进行加扰。在示例性实施例中,当写入的内容是未编码的时候,写入可选标志比特1012。如果C<=c1,则使用第一码(即,码1)执行耐久性编码。在示例性实施例中,码1是具***字长度K的有界权重码,其0的数量在z00与z01之间,z00和z01被选择为使得可能的有界权重码字的总数量大于或等于2c1。在示例性实施例中,码1是具***字长度K的恒定权重码,其0的数量z0为使得可能的恒定权重码字的总数量大于或等于2c1。在示例性实施例中,如果c1<C<=c2,则使用第二码(即,码2)执行耐久性编码。在示例性实施例中,码2是具***字长度K的有界权重码,其0的数量被包括在z10与z11之间,z10和z11为使得可能的有界权重码字的总数量大于或等于2c2。在示例性实施例中,码2是具***字长度K的恒定权重码,其0的数量z1为使得可能的恒定权重码字的总数量大于或等于2c2
在图10中,示出了读取过程1020的示例性实施例。读取并分析存储器内容以便于识别其所属的耐久性码。在示例性实施例中,该分析包括对存储器内容中的0的数量计数并且选择与所计数的0的数量匹配的唯一耐久性码。如果码字未与可能的给定码族中的任何耐久性码匹配,则认为是未编码的内容(可能被加扰)。在任一情况中,如果存在并设定了通知未编码的内容的存在的附加标志,则任何是未编码的内容。在该分析识别到码并且未设定未编码标志的情况中,使用所识别的码对内容解码。本领域的技术人员将认识到,本发明不限于恒定或有界权重码,以及相似的实施例可以使用在可用的耐久性编码码族中选择的不同数量的可能的码,对于该码族可以通过检查码字唯一地识别每个码。在示例性实施例中,K=N。
图11中示出的另一示例性实施例包括根据如下标准执行联合压缩和扩展,以高效地将N个数据比特编码为K个单元。在框1102中,所有数据比特序列从最高概率到最低概率被列出和排序(sort)。在框1104中,所有长度为K的码字从最小成本到最大成本排序,其中码字的成本与写入该码字相关联的对耐久性的影响成正比。在框1106中,通过使数据序列的排序列表的第一元素(即,最可能的N数据比特序列)与码字的排序列表的第一元素(即,具有最小的对耐久性的影响的码字)关联,然后使数据序列的排序列表的第二元素与码字的排序列表的第二元素关联,如此这般,建立表示从数据比特序列到码字的单射(injective)关系的表。在对应的编码过程中,接收待存储的信息序列,查阅表以找到待写入的对应的码字。在对应的解码过程中,从存储器取得码字,并且扫描表直至找到码字。解码的输出是与接收的码字相关的信息数据。在示例性实施例中,总的标准是使最大可能的序列与最小成本的码字关联。
图12示出了可以通过示例性实施例实现的示例。如图12中所示,a、b、c、d是在与其各自的概率相同的行中示出的数据消息(可以是N=2并且a=00,b=01,c=10和d=11)。假设写入“0”具有等于1的成本并且写入“1”具有等于0的成本,分别建立两个码,即K=2和K=3。按照降低的概率对消息排序,并且按照增加的成本对对应的码字排序(对于K=2,是0、1、1、2,并且对于K=3,是0、1、1、1)。对于码K=2的平均成本是0.3125(每个单元),而对于K=3是0.1667(每个单元)。直接写入映射a=00,b=01,c=10和d=11具有0.6785的关联成本(每个单元)。
此处描述的示例性实施例不仅适用于在非易失性存储器器件的页面中编码的信息,而且还适用于在多个非易失性存储器器件的页面中编码的信息,该多个非易失性存储器器件作为递送作为单个外部请求的结果的数据的单个逻辑实体工作。不论是一个设备还是递送数据的多个设备,可以通过仅存取页面分部(page subsection)而得到数据。在多个设备的情况中,每个设备存取具有公共页面地址的公共页面分部。
技术效果和益处包括执行自适应耐久性编码的能力。如此处描述的,待写入存储器的数据被转换为使对存储器单元的损耗减小的形式并且因此延长存储器寿命。此外,如此处描述的写入的数据可以对于错误是更加可复原的(例如,即使在存储的信息中存在错误的情况下仍可以恢复数据)。
此处使用的术语仅用于描述特定实施例的目的而并不意图限制本发明。除非上下文清楚地指示其他含义,否则如此处使用的单数形式“一”以及“该”也意图包括复数形式。将进一步理解,本说明书中使用的术语“包括”指明了所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但是并不排除存在或添加一个或更多个其他特征、整体、步骤、操作、元件部件和/或它们的组。
与所附权利要求中的所有装置或步骤加功能要素对应的结构、材料、动作和等同物意图为包括用于与特别要求保护的其他要求保护的元素组合而执行所述功能的任何结构、材料或动作。本发明的描述已被呈现用于说明和描述的目的,但是并不意图为穷举性的或者使本发明限于所公开的形式。许多修改和变化对于本领域的普通技术人员将是清楚的,而不偏离本发明的范围和精神。已选择并描述实施例,以最佳地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明以用于具有多种修改的多种实施例,如适用于所期望的特定用途。
此处示出的流程图仅是一个示例。存在针对此处描述的该流程图或步骤(或操作)的许多变化而不偏离本发明的精神。例如,步骤可以以不同的顺序执行或者可以添加、删除或修改步骤。所有这些变化应被视为要求保护的本发明的一部分。
如上文描述的,本发明的实施例可以具体化为计算机实现的过程和用于实践这些过程的装置的形式。本发明的实施例也可以具体化为计算机程序代码的形式,其包含在诸如软盘、CD-ROM、硬盘驱动器或者任何其他计算机可读存储介质的有形介质中具体化的指令,其中,当计算机程序代码被加载到计算机中并且由计算机执行时,计算机成为用于实践本发明的装置。本发明还可以被具体化为计算机程序代码的形式,而不管该计算机程序代码是例如存储在存储介质中,加载到计算机中和/或由计算机执行,或者在某种传送介质上传送,诸如在电线或线缆上传送,通过光纤传送,或者经由电磁辐射传送,其中,当计算机程序代码被加载到计算机中并且由计算机执行时,计算机成为用于实践本发明的装置。当在通用微处理器上实现时,计算机程序代码片段对微处理器进行配置以建立特定的逻辑电路。
尽管已描述了本发明的优选实施例,但是将理解,本领域的技术人员在现在或将来可以在所附权利要求的范围内进行多种改进和增强。这些权利要求应被解释为保持对首次描述的本发明的适当的保护。

Claims (20)

1.一种用于存储数据的方法,包括:
接收写入数据和写入地址;
将压缩算法应用于所述写入数据以生成压缩的数据;
将耐久性码应用于所述压缩的数据,响应于通过对所述写入数据应用压缩而节约的空间量选择和应用所述耐久性码,所述应用耐久性码产生了码字;以及
将所述码字写入所述写入地址。
2.如权利要求1所述的方法,进一步包括:在写入所述码字之前向所述码字添加错误码纠正ECC比特。
3.如权利要求2所述的方法,其中,添加到所述码字的ECC比特的数量是响应于通过对所述写入数据应用压缩而节约的空间量。
4.如权利要求2所述的方法,其中,添加到所述码字的ECC比特的数量包括ECC比特的缺省数量和响应于通过对所述写入数据应用压缩而节约的空间量的ECC比特的可变数量。
5.如权利要求2所述的方法,其中,所述码字中的所述ECC比特的位置变化。
6.如权利要求2所述的方法,其中,所述写入被编程为使得在将所述码字写入所述写入地址时,实现增加写入速度、降低功率电平和降低损耗水平中的至少之一,所述编程响应于添加到所述码字的ECC比特的数量。
7.如权利要求1所述的方法,进一步包括:生成用于所述写入地址的元数据,读取操作利用所述元数据来对写入所述写入地址的所述码字解码。
8.如权利要求7所述的方法,进一步包括:将所述元数据存储在表中。
9.如权利要求1所述的方法,进一步包括:
读取所述码字;
执行所述码字的分析;
响应于所述分析识别所述耐久性码;
利用对于所识别的耐久性码的解码器对所述码字解码;以及
对解码的码字解压缩以生成所述写入数据。
10.如权利要求1所述的方法,其中,使用单个编码功能联合执行应用所述压缩和应用所述耐久性编码。
11.一种***,包括:
接收器,接收写入数据和写入地址;
数据压缩器,将压缩算法应用于所述写入数据以生成压缩的数据;
耐久性编码器,将耐久性码应用于所述压缩的数据,响应于通过对所述写入数据应用压缩而节约的空间量选择和应用所述耐久性码,所述应用耐久性码产生码字;以及
存储器写入器,将所述码字写入所述写入地址。
12.如权利要求11所述的***,进一步包括:纠错编码器,在所述存储器写入器写入所述码字之前向所述码字添加错误码纠正ECC比特。
13.如权利要求12所述的***,其中,所述码字中的所述ECC比特的位置变化。
14.一种用于存取存储器的方法,所述方法包括:
从存储器地址取得码字;
用元数据矩阵乘以所述码字以恢复用于所述码字的元数据,所述元数据包括数据位置规范;
响应于所述元数据来识别所述码字中的数据;以及
输出所述数据作为读取数据。
15.如权利要求14的方法,其中,所述码字进一步包括ECC比特,以及所述方法进一步包括:在执行所述乘法之前向所述码字应用ECC解码器,所述ECC解码器被设计来实现由对应于所述码字中的ECC比特数量的奇偶矩阵所指定的ECC码。
16.如权利要求15的方法,其中,所述码字中的ECC比特的数量是可变的。
17.如权利要求14的方法,其中,所述码字进一步包括可变且未知的数量的ECC比特,以及所述方法进一步包括:将一个或更多个ECC解码器应用于所述码字以定位与所述码字中的ECC比特的数量对应的ECC解码器。
18.如权利要求14的方法,进一步包括:
生成所述码字,所述生成包括:
接收所述数据和所述元数据;以及
根据所述元数据中的所述数据位置规范将所述数据设置在所述码字中,以及使得所述元数据矩阵乘以所述码字等于所述元数据;以及
将所述码字写入所述存储器地址。
19.一种***,包括:
存储器读取器,从存储器地址取得码字;
元数据计算器,用元数据矩阵乘以所述码字以恢复用于所述码字的元数据,所述元数据包括数据位置规范;
元数据解释器,响应于所述元数据来识别所述码字中的数据;以及
发送器,其输出所述数据作为读取数据。
20.如权利要求19所述的***,其中所述码字进一步包括ECC比特,以及所述***进一步包括ECC解码器,在执行所述乘法之前其向所述码字应用ECC码,所述ECC码被设计来实现由对应于所述码字中的ECC比特数量的奇偶矩阵所指定的ECC码。
CN2010101693292A 2009-04-30 2010-04-21 用于存储数据的方法及其*** Active CN101876947B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/433,669 2009-04-30
US12/433,669 US8341501B2 (en) 2009-04-30 2009-04-30 Adaptive endurance coding of non-volatile memories

Publications (2)

Publication Number Publication Date
CN101876947A true CN101876947A (zh) 2010-11-03
CN101876947B CN101876947B (zh) 2012-05-23

Family

ID=43019506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101693292A Active CN101876947B (zh) 2009-04-30 2010-04-21 用于存储数据的方法及其***

Country Status (4)

Country Link
US (2) US8341501B2 (zh)
JP (2) JP5567378B2 (zh)
KR (1) KR20100119492A (zh)
CN (1) CN101876947B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591737A (zh) * 2011-01-13 2012-07-18 群联电子股份有限公司 数据写入与读取方法、存储器控制器与存储器储存装置
CN102890969A (zh) * 2011-07-20 2013-01-23 群联电子股份有限公司 数据处理方法、存储器控制器及存储器储存装置
CN102915261A (zh) * 2012-09-04 2013-02-06 邹粤林 提高闪存芯片存储单元利用率的方法、装置和***
TWI459396B (zh) * 2010-12-30 2014-11-01 Phison Electronics Corp 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
CN104620322A (zh) * 2012-08-03 2015-05-13 美光科技公司 处于邻近数据状态之间的谷值中的存储器单元状态
CN104885085A (zh) * 2012-11-28 2015-09-02 高通股份有限公司 跨电源域的数据传输
CN105095014A (zh) * 2015-07-01 2015-11-25 清华大学 基于错误纠正编码数据结构的数据隐藏方法
CN105653391A (zh) * 2014-11-13 2016-06-08 群联电子股份有限公司 数据存取方法、存储器控制电路单元及存储器储存装置
WO2016107272A1 (zh) * 2014-12-29 2016-07-07 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
CN106201763A (zh) * 2015-05-22 2016-12-07 德克萨斯仪器股份有限公司 双模式纠错码/可写入一次存储器编解码器
CN108694125A (zh) * 2017-03-30 2018-10-23 西部数据技术公司 在多处理器环境中在多个任务当中分配共享的存储器
CN109697025A (zh) * 2017-10-20 2019-04-30 株式会社日立制作所 存储装置、数据管理方法和数据管理程序的存储介质
CN110879807A (zh) * 2018-09-06 2020-03-13 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
CN110941566A (zh) * 2018-09-21 2020-03-31 爱思开海力士有限公司 数据存储装置及其操作方法
CN111638994A (zh) * 2020-06-01 2020-09-08 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和***
CN112309473A (zh) * 2019-07-24 2021-02-02 三星电子株式会社 执行数据的状态整形的存储设备

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560918B1 (en) * 2009-04-21 2013-10-15 Marvell International Ltd. Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US8122190B1 (en) * 2009-05-29 2012-02-21 Itt Manufacturing Enterprises, Inc. Method and system for reconfigurable memory-based permutation implementation
US8539224B2 (en) * 2009-11-05 2013-09-17 International Business Machines Corporation Obscuring form data through obfuscation
US8453040B2 (en) * 2009-11-05 2013-05-28 International Business Machines Corporation Obscuring information in messages using compression with site-specific prebuilt dictionary
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8495464B2 (en) * 2010-06-28 2013-07-23 Intel Corporation Reliability support in memory systems without error correcting code support
US8533550B2 (en) 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8407560B2 (en) * 2010-07-14 2013-03-26 Hewlett-Packard Development Company, L.P. Systems and methods for encoding information for storage in an electronic memory and for decoding encoded information retrieved from an electronic memory
CN103069399B (zh) 2010-09-06 2015-07-29 三菱电机株式会社 存储器控制装置及存储器控制方法
WO2012039002A1 (en) * 2010-09-21 2012-03-29 Hitachi, Ltd. Semiconductor storage device and data control method thereof
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US8892809B2 (en) 2010-10-25 2014-11-18 Marvell World Trade Ltd. Data compression and encoding in a memory system
US9563501B2 (en) * 2010-11-30 2017-02-07 Micron Technology, Inc. Preserving data integrity in a memory system
EP2498187A1 (en) * 2011-03-04 2012-09-12 Nxp B.V. A multiprocessor arrangement having shared memory, and a method of communication between processors in a multiprocessor arrangement
US8732538B2 (en) * 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
US9176670B2 (en) * 2011-04-26 2015-11-03 Taejin Info Tech Co., Ltd. System architecture based on asymmetric raid storage
US9069703B2 (en) * 2011-04-29 2015-06-30 Seagate Technology Llc Encrypted-transport solid-state disk controller
WO2012168960A1 (en) 2011-06-07 2012-12-13 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
TWI467590B (zh) * 2011-07-11 2015-01-01 Phison Electronics Corp 資料處理方法、記憶體控制器及記憶體儲存裝置
US8495285B2 (en) * 2011-08-31 2013-07-23 Micron Technology, Inc. Apparatuses and methods of operating for memory endurance
US8666068B2 (en) 2011-10-20 2014-03-04 Sandisk Technologies Inc. Method for scrambling shaped data
US8799559B2 (en) 2011-10-24 2014-08-05 Sandisk Technologies Inc. Endurance enhancement coding of compressible data in flash memories
JP5728370B2 (ja) * 2011-11-21 2015-06-03 株式会社東芝 半導体記憶装置およびその駆動方法
US9037779B2 (en) * 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling
US9146855B2 (en) * 2012-01-09 2015-09-29 Dell Products Lp Systems and methods for tracking and managing non-volatile memory wear
KR101888074B1 (ko) * 2012-01-09 2018-08-13 삼성전자주식회사 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
US9246511B2 (en) * 2012-03-20 2016-01-26 Sandisk Technologies Inc. Method and apparatus to process data based upon estimated compressibility of the data
US9251060B2 (en) * 2012-03-29 2016-02-02 Intel Corporation Compression-enabled blending of data in non-volatile memory
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
US9176902B1 (en) * 2012-06-27 2015-11-03 Emc Corporation Data migration techniques
US9032159B2 (en) * 2012-06-27 2015-05-12 Via Technologies, Inc. Data prefetcher with complex stride predictor
US20150178193A1 (en) * 2012-07-11 2015-06-25 Industry-University Cooperation Foundation, Hanyang University Apparatus and method for managing flash memory by means of writing data pattern recognition
TWI521528B (zh) * 2012-08-08 2016-02-11 群聯電子股份有限公司 記憶體儲存裝置、其記憶體控制器與資料處理方法
US8898539B2 (en) * 2012-09-12 2014-11-25 Lsi Corporation Correcting errors in miscorrected codewords using list decoding
US20140089761A1 (en) * 2012-09-24 2014-03-27 Zion Kwok Method, apparatus and system for providing error correction information
US9071269B2 (en) * 2012-10-01 2015-06-30 Sandisk Technologies Inc. Encoding data for storage in a data storage device
KR102081980B1 (ko) 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
TW201416849A (zh) * 2012-10-30 2014-05-01 Jmicron Technology Corp 錯誤檢查及校正方法以及相關錯誤檢查及校正電路
CN103810054A (zh) * 2012-11-14 2014-05-21 智微科技股份有限公司 错误检查及校正方法以及相关错误检查及校正电路
US9047975B2 (en) * 2012-11-28 2015-06-02 Adesto Technologies Corporation Coding techniques for reducing write cycles for memory
KR101361670B1 (ko) 2012-12-11 2014-02-12 충남대학교산학협력단 프로그램 정적 분석을 통한 플래시 메모리의 랜덤 쓰기 연산의 속도 향상 방법
US8854079B2 (en) * 2013-01-30 2014-10-07 Texas Instruments Incorporated Error detection in nonvolatile logic arrays using parity
US9201662B2 (en) * 2013-03-29 2015-12-01 Dell Products, Lp System and method for pre-operating system memory map management to minimize operating system failures
JP6129635B2 (ja) * 2013-04-30 2017-05-17 サイプレス セミコンダクター コーポレーション 制御方法、制御プログラム、および制御装置
US9229640B2 (en) 2013-11-15 2016-01-05 Microsoft Technology Licensing, Llc Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table
KR102078853B1 (ko) * 2013-11-27 2020-02-18 삼성전자 주식회사 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법
US9998149B2 (en) 2014-01-31 2018-06-12 Hewlett Packard Enterprise Development Lp Constant hamming weight coding
US9391646B2 (en) * 2014-03-25 2016-07-12 Samsung Electronics Co., Ltd. Joint source-channel encoding and decoding for compressed and uncompressed data
KR20160141771A (ko) * 2014-04-01 2016-12-09 래티스세미컨덕터코퍼레이션 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US9710326B2 (en) * 2014-07-28 2017-07-18 SK Hynix Inc. Encoder by-pass with scrambler
CN106156169B (zh) * 2015-04-16 2019-12-06 深圳市腾讯计算机***有限公司 离散数据的处理方法和装置
CN106201325B (zh) * 2015-04-29 2019-04-23 群联电子股份有限公司 数据存取方法、存储器控制电路单元与存储器存储装置
US9792053B2 (en) * 2015-04-30 2017-10-17 Toshiba Memory Corporation Controller for nonvolatile semiconductor memory
US9331712B1 (en) * 2015-05-11 2016-05-03 Qualcomm Incorporated Compressed caching in a virtual memory system
JP6346123B2 (ja) * 2015-05-25 2018-06-20 東芝メモリ株式会社 コントローラ、制御方法
US10705909B2 (en) * 2015-06-25 2020-07-07 International Business Machines Corporation File level defined de-clustered redundant array of independent storage devices solution
JP2017027388A (ja) * 2015-07-23 2017-02-02 株式会社東芝 メモリシステムおよび不揮発性メモリの制御方法
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US9865338B2 (en) 2015-09-02 2018-01-09 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory by converting write data written to a page
US10033411B2 (en) * 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10089241B2 (en) 2016-03-10 2018-10-02 Toshiba Memory Corporation Memory system
US10216575B2 (en) 2016-03-17 2019-02-26 Sandisk Technologies Llc Data coding
KR20180086816A (ko) * 2017-01-23 2018-08-01 에스케이하이닉스 주식회사 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법
DE102017201506A1 (de) * 2017-01-31 2018-08-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur verlustfreien Kompression eines Datenstromes
CN111868697A (zh) * 2017-12-12 2020-10-30 华为技术有限公司 存储级存储***的磨损均衡方案及其实现方式
US10789130B1 (en) * 2018-03-09 2020-09-29 Toshiba Memory Corporation Capacitor energy management for unexpected power loss in datacenter SSD devices
JP6960877B2 (ja) 2018-03-22 2021-11-05 キオクシア株式会社 メモリシステム
DE102018124296B4 (de) 2018-10-02 2024-06-20 Infineon Technologies Ag Kompensation von lesefehlern
JP6649452B2 (ja) * 2018-10-22 2020-02-19 キオクシア株式会社 メモリシステムおよび不揮発性メモリの制御方法
DE102018132503B4 (de) 2018-12-17 2020-09-17 Infineon Technologies Ag Detektion von Codewörtern
US11029872B2 (en) 2018-12-18 2021-06-08 Western Digital Technologies, Inc. Non-volatile storage system with data shaping memory partitions
US10963342B2 (en) 2019-02-01 2021-03-30 Micron Technology, Inc. Metadata-assisted encoding and decoding for a memory sub-system
DE102019107139A1 (de) * 2019-03-20 2020-09-24 Infineon Technologies Ag Transformation von aus einem speicher gelesenen binären signalen
US11288009B2 (en) * 2019-07-10 2022-03-29 Micron Technology, Inc. Read sample offset bit determination using most probably decoder logic in a memory sub-system
DE102020100541A1 (de) 2020-01-13 2021-07-15 Infineon Technologies Ag Bestimmung eines resultierenden datenworts beim zugriff auf einen speicher
US11580315B2 (en) 2020-02-10 2023-02-14 Nxp B.V. Agile time-continuous memory operation for a radio frequency identification transponder
US11321167B2 (en) 2020-05-09 2022-05-03 Western Digital Technologies, Inc. Adaptive folding for integrated memory assembly
US11301321B2 (en) 2020-05-28 2022-04-12 Western Digital Technologies, Inc. Data shaping for integrated memory assembly
US11170870B1 (en) 2020-05-28 2021-11-09 Western Digital Technologies, Inc. On-chip-copy for integrated memory assembly
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US11392327B2 (en) 2020-09-09 2022-07-19 Western Digital Technologies, Inc. Local data compaction for integrated memory assembly
CN112118246B (zh) * 2020-09-11 2022-04-19 北京微密科技发展有限公司 基于融合内存的区块链可信存储执行硬件环境
DE102020211842A1 (de) 2020-09-22 2022-03-24 Infineon Technologies Ag Speichervorrichtungen und Verfahren zum Betreiben derselben
US11650932B2 (en) 2020-10-25 2023-05-16 Western Digital Technologies, Inc. Integrated non-volatile memory assembly with address translation
US11481154B2 (en) 2021-01-15 2022-10-25 Sandisk Technologies Llc Non-volatile memory with memory array between circuits
JP2022147380A (ja) 2021-03-23 2022-10-06 キオクシア株式会社 メモリコントローラおよびメモリシステム
US11636912B2 (en) * 2021-04-06 2023-04-25 Samsung Electronics Co., Ltd. ECC buffer reduction in a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124378A (zh) * 1994-04-19 1996-06-12 株式会社日立制作所 数字处理器
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US747909A (en) * 1903-02-24 1903-12-22 Henry Ford Motor-vehicle.
EP0108053A1 (en) 1982-04-30 1984-05-16 Massachusetts Institute Of Technology Method and apparatus for reusing non-erasable memory media
JPH0745085A (ja) * 1993-07-30 1995-02-14 Tec Corp データ書込装置及びデータ読取装置
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
RU2182722C2 (ru) 1995-11-10 2002-05-20 Сони Корпорейшн Устройство и способ обработки информации
JPH113594A (ja) * 1997-06-12 1999-01-06 Hitachi Ltd 不揮発性メモリおよびデータ書込み、読出し方法
JPH11283396A (ja) * 1998-03-27 1999-10-15 Sony Corp メモリ装置
US6157570A (en) 1999-02-04 2000-12-05 Tower Semiconductor Ltd. Program/erase endurance of EEPROM memory cells
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6532121B1 (en) * 1999-10-25 2003-03-11 Hewlett-Packard Company Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
US20080256352A1 (en) 2000-01-06 2008-10-16 Super Talent Electronics, Inc. Methods and systems of booting of an intelligent non-volatile memory microcontroller from various sources
US6662263B1 (en) 2000-03-03 2003-12-09 Multi Level Memory Technology Sectorless flash memory architecture
JP2004507855A (ja) * 2000-05-10 2004-03-11 シーゲイト テクノロジー エルエルシー 組込みサーボ・ディスク・ドライブにおける書込みエラー補償テーブルの圧縮および記憶
US6640319B1 (en) 2000-08-29 2003-10-28 Maxtor Corporation Mis-synchronization detection system
JP2002091831A (ja) * 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
EP1346370B1 (en) 2000-12-15 2005-08-17 Koninklijke Philips Electronics N.V. Data processing device with a memory location in which data is stored according to a wom code
US7062602B1 (en) 2001-04-09 2006-06-13 Matrix Semiconductor, Inc. Method for reading data in a write-once memory device using a write-many file system
US6996660B1 (en) 2001-04-09 2006-02-07 Matrix Semiconductor, Inc. Memory device and method for storing and reading data in a write-once memory array
US6584034B1 (en) 2001-04-23 2003-06-24 Aplus Flash Technology Inc. Flash memory array structure suitable for multiple simultaneous operations
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
TW543037B (en) 2001-08-15 2003-07-21 Numa Technology Inc Embedded memory structure and its accessing method
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US6970969B2 (en) 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US6794997B2 (en) 2003-02-18 2004-09-21 Sun Microsystems, Inc. Extending non-volatile memory endurance using data encoding
JP4550439B2 (ja) 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
EP1640873A4 (en) 2003-06-27 2008-03-05 Fujitsu Ltd STORAGE CAPABILITY MANAGEMENT METHOD, ASSOCIATED SERVER, AND RECORDING MEDIUM
JP4220319B2 (ja) 2003-07-04 2009-02-04 株式会社東芝 不揮発性半導体記憶装置およびそのサブブロック消去方法
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP2005190288A (ja) 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7398348B2 (en) 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US7457909B2 (en) 2005-01-14 2008-11-25 Angelo Di Sena Controlling operation of flash memories
US20060282610A1 (en) 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
GB2428496A (en) 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
DE602005012625D1 (de) 2005-07-22 2009-03-19 Hynix Semiconductor Inc Verfahren zum Zugreifen auf eine nichtflüchtige Mehrpegelspeichervorrichtung vom Typ FLASH NAND
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7409524B2 (en) 2005-08-17 2008-08-05 Hewlett-Packard Development Company, L.P. System and method for responding to TLB misses
JP2007094639A (ja) * 2005-09-28 2007-04-12 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
DE602005019069D1 (de) 2005-11-18 2010-03-11 St Microelectronics Srl Zugriffsverfahren beim Lesen, Schreiben und Löschen eines nicht flüchtigen NAND Speichers
US7245556B1 (en) 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US20070150644A1 (en) 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7594087B2 (en) 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7694102B2 (en) 2006-03-30 2010-04-06 International Business Machines Corporation Systems and methods for self-tuning memory
DE602007010439D1 (de) 2006-03-31 2010-12-23 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
KR101185617B1 (ko) 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US8050086B2 (en) 2006-05-12 2011-11-01 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US7511646B2 (en) 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
KR100764052B1 (ko) 2006-08-03 2007-10-08 삼성전자주식회사 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법
MX2009001345A (es) 2006-08-05 2009-07-17 Benhov Gmbh Llc Elemento y metodo de almacenamiento de estado solido.
JP2007104708A (ja) * 2006-11-27 2007-04-19 Renesas Technology Corp データ処理方法
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
CN100468576C (zh) * 2007-05-30 2009-03-11 忆正存储技术(深圳)有限公司 闪存数据读写处理方法
US8125619B2 (en) 2007-07-25 2012-02-28 Eminent Electronic Technology Corp. Integrated ambient light sensor and distance sensor
US20090055605A1 (en) 2007-08-20 2009-02-26 Zining Wu Method and system for object-oriented data storage
US7697325B2 (en) 2007-09-24 2010-04-13 Sandisk Corporation Non-volatile memory cell endurance using data encoding
US20090150595A1 (en) 2007-10-24 2009-06-11 Avi Lavan Balanced programming rate for memory cells
JP5142685B2 (ja) 2007-11-29 2013-02-13 株式会社東芝 メモリシステム
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR101102505B1 (ko) * 2008-07-23 2012-01-04 주식회사 하이닉스반도체 비휘발성 메모리 장치의 프로그램 방법
US8347023B2 (en) * 2008-10-06 2013-01-01 Marvell World Trade Ltd. Compression based wear leveling for non-volatile memory
US9461763B2 (en) 2008-11-28 2016-10-04 Computer Performance, Inc. Method and apparatus for reformatting and retiming digital telecommunications data for reliable retransmission via USB
US20110238903A1 (en) 2008-12-10 2011-09-29 Amir Ban Method and device of managing a reduced wear memory
US8756365B2 (en) * 2009-02-12 2014-06-17 Ramot At Tel Aviv University Ltd. Apparatus and method for enhancing flash endurance by encoding data
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US8307261B2 (en) 2009-05-04 2012-11-06 National Tsing Hua University Non-volatile memory management method
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
US8176234B2 (en) 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US9070453B2 (en) 2010-04-15 2015-06-30 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US8392807B2 (en) 2010-07-23 2013-03-05 Sandisk Technologies Inc. System and method of distributive ECC processing
US8769374B2 (en) * 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124378A (zh) * 1994-04-19 1996-06-12 株式会社日立制作所 数字处理器
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI459396B (zh) * 2010-12-30 2014-11-01 Phison Electronics Corp 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
US9336081B2 (en) 2010-12-30 2016-05-10 Phison Electronics Corp. Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
CN102591737A (zh) * 2011-01-13 2012-07-18 群联电子股份有限公司 数据写入与读取方法、存储器控制器与存储器储存装置
CN102591737B (zh) * 2011-01-13 2015-04-22 群联电子股份有限公司 数据写入与读取方法、存储器控制器与存储器储存装置
CN102890969B (zh) * 2011-07-20 2015-06-10 群联电子股份有限公司 数据处理方法、存储器控制器及存储器储存装置
CN102890969A (zh) * 2011-07-20 2013-01-23 群联电子股份有限公司 数据处理方法、存储器控制器及存储器储存装置
US11450382B2 (en) 2012-08-03 2022-09-20 Micron Technology, Inc. Memory cell state in a valley between adjacent data states
CN104620322A (zh) * 2012-08-03 2015-05-13 美光科技公司 处于邻近数据状态之间的谷值中的存储器单元状态
CN104620322B (zh) * 2012-08-03 2017-11-10 美光科技公司 处于邻近数据状态之间的谷值中的存储器单元状态
US9990988B2 (en) 2012-08-03 2018-06-05 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US10811090B2 (en) 2012-08-03 2020-10-20 Micron Technology, Inc. Memory cell state in a valley between adjacent data states
CN102915261A (zh) * 2012-09-04 2013-02-06 邹粤林 提高闪存芯片存储单元利用率的方法、装置和***
CN104885085A (zh) * 2012-11-28 2015-09-02 高通股份有限公司 跨电源域的数据传输
CN104885085B (zh) * 2012-11-28 2021-08-27 高通股份有限公司 跨电源域的数据传输
CN105653391A (zh) * 2014-11-13 2016-06-08 群联电子股份有限公司 数据存取方法、存储器控制电路单元及存储器储存装置
CN105653391B (zh) * 2014-11-13 2018-11-02 群联电子股份有限公司 数据存取方法、存储器控制电路单元及存储器储存装置
US10572340B2 (en) 2014-12-29 2020-02-25 Huawei Technologies Co., Ltd. Solid state disk storage device and method for accessing data in solid state disk storage device
WO2016107272A1 (zh) * 2014-12-29 2016-07-07 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
CN106201763B (zh) * 2015-05-22 2021-03-05 德克萨斯仪器股份有限公司 双模式纠错码/可写入一次存储器编解码器
CN106201763A (zh) * 2015-05-22 2016-12-07 德克萨斯仪器股份有限公司 双模式纠错码/可写入一次存储器编解码器
CN105095014A (zh) * 2015-07-01 2015-11-25 清华大学 基于错误纠正编码数据结构的数据隐藏方法
CN108694125A (zh) * 2017-03-30 2018-10-23 西部数据技术公司 在多处理器环境中在多个任务当中分配共享的存储器
CN108694125B (zh) * 2017-03-30 2022-06-28 西部数据技术公司 在多处理器环境中在多个任务当中分配共享的存储器
CN109697025A (zh) * 2017-10-20 2019-04-30 株式会社日立制作所 存储装置、数据管理方法和数据管理程序的存储介质
CN109697025B (zh) * 2017-10-20 2022-04-29 株式会社日立制作所 存储装置、数据管理方法和存储介质
CN110879807A (zh) * 2018-09-06 2020-03-13 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
CN110879807B (zh) * 2018-09-06 2023-07-21 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
CN110941566A (zh) * 2018-09-21 2020-03-31 爱思开海力士有限公司 数据存储装置及其操作方法
CN110941566B (zh) * 2018-09-21 2023-03-28 爱思开海力士有限公司 数据存储装置及其操作方法
CN112309473A (zh) * 2019-07-24 2021-02-02 三星电子株式会社 执行数据的状态整形的存储设备
CN112309473B (zh) * 2019-07-24 2024-06-28 三星电子株式会社 执行数据的状态整形的存储设备
CN111638994B (zh) * 2020-06-01 2021-05-04 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和***
CN111638994A (zh) * 2020-06-01 2020-09-08 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和***

Also Published As

Publication number Publication date
US20120290898A1 (en) 2012-11-15
US8341501B2 (en) 2012-12-25
KR20100119492A (ko) 2010-11-09
JP5567378B2 (ja) 2014-08-06
US8499221B2 (en) 2013-07-30
JP2014170578A (ja) 2014-09-18
JP5764235B2 (ja) 2015-08-19
JP2010262640A (ja) 2010-11-18
CN101876947B (zh) 2012-05-23
US20100281340A1 (en) 2010-11-04

Similar Documents

Publication Publication Date Title
CN101876947B (zh) 用于存储数据的方法及其***
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
JP5698260B2 (ja) メモリ装置における制御データの誤り訂正システムおよび方法
KR101686980B1 (ko) 비휘발성 메모리 내의 데이터 저장 방법
US8359516B2 (en) Systems and methods for error correction and decoding on multi-level physical media
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
CN101923902B (zh) 与带纠错的多级编码相关的方法、***和装置
US9761325B1 (en) Memory system
CN103931127A (zh) 用于将定形数据加扰的方法
CN112486725B (zh) 一种对压缩数据进行纠错编码的方法和装置
US20140095768A1 (en) Encoding data for storage in a data storage device
Sharon et al. Coding scheme for optimizing random I/O performance
CN113223601A (zh) 一次写入型存储器码的纠错码管理的电路、***和方法
US11977771B2 (en) Memory device and memory system
WO2000010251A1 (en) A binary counter and method for counting to extend lifetime of storage cells
CN105938728B (zh) 用于近似平衡码的编码器和解码器设计
CN109857340B (zh) Nor flash中文件的存储和读取方法、装置及存储介质
KR20010031095A (ko) 저장 셀의 라이프타임을 연장시키는 2진 카운터 및 카운팅방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171113

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171113

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right