CN101944067B - 存储数据的方法和存储器系统 - Google Patents

存储数据的方法和存储器系统 Download PDF

Info

Publication number
CN101944067B
CN101944067B CN2010101710781A CN201010171078A CN101944067B CN 101944067 B CN101944067 B CN 101944067B CN 2010101710781 A CN2010101710781 A CN 2010101710781A CN 201010171078 A CN201010171078 A CN 201010171078A CN 101944067 B CN101944067 B CN 101944067B
Authority
CN
China
Prior art keywords
vector
virtual
memory
reads
writing
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.)
Expired - Fee Related
Application number
CN2010101710781A
Other languages
English (en)
Other versions
CN101944067A (zh
Inventor
I·M·埃尔法德尔
M·M·弗兰瑟斯奇尼
A·雅格莫汉
L·A·拉斯特拉斯-蒙塔诺
M·沙尔玛
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 CN101944067A publication Critical patent/CN101944067A/zh
Application granted granted Critical
Publication of CN101944067B publication Critical patent/CN101944067B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及存储数据的方法和存储器系统。具体地,提供了在异构存储元件中的增加的容量,包括一种用于存储数据的方法,其包括向存储器进行写入的写入过程以及从存储器进行读取的读取过程。存储器中的存储器单元的物理特性支持不同的数据水平集合。写入过程在向存储器写入时将不同的数据水平集合纳入考虑。读取过程首先获得存储器中的数据,并随后确定如何解释该数据。

Description

存储数据的方法和存储器系统
技术领域
本发明总体上涉及计算机存储器,并且更具体地涉及增加异构存储元件的存储容量。
背景技术
术语“异构存储元件”表示具有不同物理特性的各个存储器元件,其中不同的物理特性影响该元件可存储的信息的类型和数量。由此,取决于其特定的物理特性,每个元件可以存储不同类型和数量的信息。具有异构存储元件的存储器系统的一个示例是相变存储器(PCM)系统,其中对于不同的PCM单元,可以设置的阻抗值的范围是不同的。在PCM中,每个单元支持不同范围的阻抗水平,这影响该单元所能支持的水平范围(数据量)和绝对水平值(数据类型)二者。一般来说,元件的异构性会在将信息存储到存储器方面以及从存储器获取信息方面引起错误。具体而言,在向存储器写入数据时,写入者可能不再尝试将信息存储在无法支持该信息的单元中。
一种用于降低异构存储元件环境中的错误的方法是找到所有存储器元件的共同物理特性的范围,继而存储信息,使得可以在该共同物理特性范围内获取该信息。作为一个示例,在PCM存储单元中,可能存在可以跨所有PCM存储器元件来设置的阻抗值的范围。继而,仅使用该共同阻抗值范围来存储信息。另一方法是将不可写单元值视作错误,并且使用纠错码(ECC)来修正数据。这两种方法的不足之处在于,其可能导致存储容量的损失。
另一种用于降低异构存储元件环境中错误的方法是假设存储器块或者个体存储器元件为有缺陷的或者为无缺陷的,继而在数据读取和/或写入期间试图规避有缺陷的块或者元件。这些方法的缺点在于这些方法假设块或者个体元件只能处于两个状态之一,因此这些方法不是针对一般的异构性而设计的。
发明内容
一个示例性实施方式是一种用于存储数据的方法,包括向存储器进行写入的写入过程以及从存储器进行读取的读取过程。存储器中存储器单元的物理特性支持不同的数据水平(data level)集合。写入过程在向存储器写入时将不同的数据水平集合纳入考虑。读取过程首先获得存储器中的数据,并随后确定如何解释该数据。
另一实施方式是用于从存储器进行读取的方法。该方法包括从一组存储器单元接收读取字,其中该存储器单元的物理特性支持不同的数据水平集合。将读取字分割为两个或者更多虚拟读取向量。对于每个虚拟读取向量,标识在生成该虚拟读取向量时曾使用的码本,并且生成部分读取数据向量。该生成包括将该虚拟读取向量与表示码本的矩阵相乘。将部分读取数据向量合并成读取消息,并且输出该读取消息。
又一示例性实施方式是一种存储器系统,其包括存储器、测试器和编码器。存储器包括一组存储器单元,其中存储器单元的物理特性支持不同的数据水平集合。测试器确定存储器单元的物理特性。编码器与存储器和测试器连接,并且使用至少一个码本。编码器接收将要写入该组存储器单元的写入消息,并且响应于物理特性来标识与该组存储器单元相关联的虚拟存储器。对于每个虚拟存储器,生成描述该虚拟存储器中的虚拟单元的约束向量。约束向量的生成响应于物理存储器单元的物理特性,响应于先前生成的约束向量,以及响应于先前生成的虚拟写入向量。而且,针对每个虚拟存储器,计算虚拟写入向量。该计算响应于码本、约束向量和写入消息。将虚拟写入向量合并成写入字,并且将写入字输出到该组存储器单元。
另一示例性实施方式是一种用于对异构存储器进行写入的方法。该方法包括:接收写入消息以及与一组存储器单元相对应的写入地址,其中至少两个存储器单元支持不同的数据水平;确定存储器单元的物理特性;以及响应于该物理特性来标识与该组存储器单元相关联的虚拟存储器。针对每个虚拟存储器执行以下动作:生成描述该虚拟存储器中的虚拟单元的约束向量,该生成响应于物理存储器单元的物理特性、响应于先前生成的约束向量以及响应于先前生成的虚拟写入向量;以及响应于约束向量和写入数据来计算虚拟写入向量,该计算包括逐位、按序地将写入数据写入虚拟存储器中,跳过由约束向量指示的、已知为固定在特定值的位置。将虚拟写入向量合并成写入字,并且将写入字输出到该组存储器单元。
又一示例性实施方式是一种用于从异构存储器进行读取的方法。该方法包括:从一组存储器单元接收读取字,其中至少两个存储器单元支持不同的数据水平;确定存储器单元的物理特性;响应于该物理特性来标识与该组存储器单元相关联的虚拟存储器;以及将读取字分割为多个虚拟读取向量,该分割响应于虚拟存储器。对于每个虚拟读取向量,执行以下动作:生成描述虚拟存储器中的虚拟单元的约束向量,该生成响应于物理存储器单元的物理特性、响应于先前生成的约束、以及响应于先前生成的部分读取向量;以及响应于约束向量和虚拟读取向量来生成部分读取数据向量,该生成包括逐位、按序地读取虚拟写入向量,并且丢弃由约束向量指示的、已知为固定的位。将部分读取数据向量合并成读取消息,并且输出该读取消息。
附加的特征和优点通过本实施方式的技术来实现。其他实施方式和方面在此进行描述,并认为其是要求保护的发明的一部分。为了更好地理解本发明的优点和特征,将参考描述和附图。
附图说明
在说明书随附的权利要求书中,具体指出并清楚地要求保护被认为是本发明的主题。通过以下详细描述并结合附图,本发明的上述以及其他特征和优点将是易见的,其中:
图1示出了可由一个示例性实施方式实现的用于写入数据的过程;
图2示出了可由一个示例性实施方式实现的用于读取数据的过程;
图3示出了可由一个示例性实施方式实现的用于在异构存储器中存储数据的系统的框图;
图4示出了可由一个示例性实施方式实现的用于在相变存储器(PCM)中存储数据的系统的框图;
图5示出了可由一个示例性实施方式实现的用于在PCM中写入数据的系统的框图;
图6示出了可由一个示例性实施方式实现的用于从PCM存储器中读取数据的系统的框图;
图7示出了可由一个示例性实施方式实现的异构存储器到多个虚拟二进制存储器的概念性分解;
图8示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟二进制存储器集合的等效约束的概念性分解;
图9示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟二进制存储器集合的等效约束的概念性分解;
图10示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟非二进制存储器集合的等效约束的概念性分解;
图11示出了可由一个示例性实施方式实现的二进制写入字计算器和二进制字解码器的框图;
图12示出了可由一个示例性实施方式实现的字写入器的框图;
图13示出了可由一个示例性实施方式实现的PCM数据二进制化器的框图;
图14示出了可由一个示例性实施方式实现的二进制存储器约束计算器的框图;
图15示出了可由一个示例性实施方式实现的用于计算二进制约束的过程;
图16示出了可由一个示例性实施方式实现的使用随机二进制以及低密度奇偶校验(LDPC)码和高斯消元的二进制写入字计算器的框图;
图17示出了可由一个示例性实施方式实现的使用卢比变换(LT)码和剥离(peeling)的二进制写入字计算器、以及使用线性规划的非二进制写入字计算器;
图18示出了可由一个示例性实施方式实现的使用级联码的写入字计算器的框图;
图19示出了可由一个示例性实施方式实现的一个过程,其中写入过程编码器尝试预定义矩阵序列来找到如下矩阵,该矩阵生成对消息进行编码并且满足异构存储器约束的码字;
图20示出了可由一个示例性实施方式实现的一个过程,其中写入过程编码器使用伪随机函数生成器和码矩阵,以便生成图19中所绘的预定义矩阵序列;
图21示出了可由一个示例性实施方式实现的用于在读取和写入过程二者都可以测量每个单元所支持的阻抗水平时在PCM存储器中存储数据的系统的框图;
图22示出了可由一个示例性实施方式实现的用于在读取和写入过程二者都可以测量每个单元所支持的阻抗水平时向PCM存储器写入数据的系统的框图;
图23示出了可由一个示例性实施方式实现的用于在读取和写入过程二者都可以测量每个单元所支持的阻抗水平时从PCM存储器读取数据的系统的框图;
图24示出了可由一个示例性实施方式实现的用于在带噪声的异构存储器中存储数据的二进制字计算器和二进制字解码器;
图25示出了可由一个示例性实施方式实现的异构多维存储器约束到等效一维约束的转换;以及
图26示出了可由一个示例性实施方式实现的从多维存储器约束获得的等效一维约束到对虚拟二进制存储器集合的等效约束的分解。
具体实施方式
本发明的示例性实施方式通过在写入数据之前和/或读取数据之后测量每个存储器元件的相关物理特性以及通过使用编码技术来利用该知识,来增加具有异构元件的存储器的存储容量。在示例性实施方式中,存储器由相变存储器(PCM)单元构成,并且写入过程通过在写入之前应用RESET(重置)和SET(置位)脉冲来测量每个单元的阻抗范围。接下来,对可以存储在每个单元上的阻抗水平进行量化,将量化索引转换为二进制,并且使用可以在每个单元上存储数据而不会违反单元阻抗限制的二进制码集合。在另一示例性实施方式中,读取过程在读取之后额外通过应用RESET和SET脉冲测量每个单元的物理特性并继而重写原始数据。所测量的物理特性继而由读取过程用来辅助对由编码器写入的数据进行解码。
一个示例性实施方式包括PCM,并且假设所有PCM具有共同的最大(RESET)阻抗水平和可变的最小(SET)水平。在此实施方式中,写入过程包括步骤:使用适当的编程脉冲将一组单元中的每个单元编程为其SET水平,以及测量SET阻抗水平。基于此信息,使用适当的码将待写入数据变换为与单元阻抗范围相兼容的阻抗水平集合。在另一示例性实施方式中,每个PCM单元的最大阻抗水平和最小阻抗水平二者都是可变的。写入过程包括步骤:使用适当的编程脉冲将一组单元中的每个单元编程为其SET和RESET水平,以及测量SET和RESET阻抗水平。基于此信息,使用适当的码将待写入的数据变换为与单元阻抗范围相兼容的阻抗水平集合。
在一个示例性实施方式中,变换步骤如下执行。首先将阻抗水平转换为二进制值。每个位面(bitplane)用来存储不同的数据消息。对于给定的位面,通过由读取过程和写入过程共享的二进制矩阵(“H”)的辅助来生成将要写入存储器的二进制字。特别地,找到二进制向量“c”,使得Hc等于待存储的二进制消息,并且使得c满足由存储器单元异构性所施加的二进制约束集合。将该二进制向量写入到该位面。读取过程通过计算Hc来重建消息。
在另一示例性实施方式中,实现阻抗水平向二进制值的转换,使得每个单元对于给定的水平具有不同的二进制化。这有助于跨位面的编码率的均衡,从而降低系统中要求的二进制矩阵(H)的数目,这继而可以降低存储/硬件复杂性。在另一示例性实施方式中,通过表示为整数的阻抗水平的二进制化的固定置换(permutation),来实现阻抗水平向二进制值的转换。在另一示例性实施方式中,通过由读取过程和写入过程共享的非二进制矩阵H的辅助来生成待编码的数据,来执行上述变换步骤。特别地,找到向量c,使得Hc等于待存储的非二进制消息,并且使得c满足由存储器异构性所施加的约束集合。将向量c写入该存储器。读取过程通过计算Hc来重建消息。
在此使用的术语“数据水平”表示与单元的物理特性值的预先指定范围相对应(或者“由其表示”)的特定数据值。为了支持给定的数据水平,可以将单元的物理特性设置为取对应于该数据水平的范围内的值。在使用PCM的异构示例中,取得阻抗的物理特性,0-10欧姆的单元阻抗可以对应于数据值=1,10-20欧姆的单元阻抗可以对应于数据值=2,以此类推。由此,如果可将单元的阻抗置为0-10欧姆范围内,则该单元支持数据水平1。
图1示出了可由一个示例性实施方式实现的用于写入数据的过程。在框102,接收(例如,接收到编码器中)写入数据(也称为写入消息)以及对应于一组异构存储器单元的地址。在框104,标识与该组存储器单元相关联的虚拟存储器,并且将写入数据分割为多个部分写入数据向量,其中每一个向量与一个虚拟存储器相关联。虚拟存储器的数目取决于该组存储器单元的物理特性。例如,PCM单元的物理特性可以包括阻抗水平。如果阻抗水平可以具有最多4个值,则虚拟存储器的数目为2(也即,2的2次幂是4,因此2位可以支持4个值)。备选地,如果阻抗水平可以具有5到8个值,则虚拟存储器的数目为3(也即,2的3次幂是8,因此3位可以支持8个值)。
在图1中的框106,针对步骤104中标识的每个虚拟存储器执行一个过程。生成描述虚拟存储器中的虚拟单元的约束向量。用于生成约束向量的输入是存储器单元的物理特性,针对该组存储器单元(例如,针对其他虚拟存储器)的任何先前生成的约束向量,以及针对该组存储器单元的任何先前生成的虚拟写入向量。由此,写入过程感知到存储器单元的物理特性。接下来,基于该约束向量的内容以及基于该组存储器单元中的存储器单元的数目来选择码本。在备选示例性实施方式中,码本是固定的并且对于读取和写入过程二者都是先验已知的,在这种情况下,不需要选择步骤。码本可以指定线性码和非线性码二者。基于码本、约束向量和写入数据来计算用于虚拟存储器的虚拟写入向量。在码本非固定的情况下,存储与码本相关联的标识符,从而可以在读取该组存储器单元时使用该标识符。码索引可以称为元数据。类似地,码本也可以称为元数据。元数据可以存储于各种位置,包括但不限于:以可靠的方式存储在不同的非异构存储器中或者异构存储器中,诸如存储在存储器的特定的预先测试过的区域中,或者通过使用仅向所有单元都支持的水平进行写入的方案来存储。如果码本是固定的,则无需存储元数据。在框108,将虚拟写入向量合并成写入字。在框110,将写入字输出到将要被写入的该组存储器单元。
图2示出了可由一个示例性实施方式实现的用于读取数据的过程。在此示例中,假设读取过程所使用的解码器不知道(也即,不了解)该组异构存储器单元的物理特性。解码器知道该物理特性的范围(例如,阻抗水平在0到4之间)并且知道对该组的最后写入过程期间所使用的码本。在框202,从一组异构存储器单元读取数据(也即,“读取字”)。在框204,基于物理值的范围将读取字分割为虚拟读取向量。例如,如果该范围涵盖4个值,则将读取字分割为2个虚拟读取向量。在框206,针对每个虚拟读取向量执行处理。首先,接收码本标识符(例如,从存储位置接收,备选地,其可以是固定的或者预先指定的码本)。码本标识符标识在向存储器写入数据时由编码器使用的码本。接下来,通过使用所标识的码本来生成部分读取数据向量。在一个示例性实施方式中,码本是线性码,并且通过将虚拟读取向量与代表所标识码本的矩阵相乘来生成部分读取数据向量。在框208,将部分读取数据向量合并成读取数据(也称为读取消息)。在框210,输出读取数据(例如,输出给读取请求者)。
图3示出了可由一个示例性实施方式实现的用于在异构存储器中存储数据的系统的框图。图3中所绘的系统包括:异构存储器302,其包括多组存储器单元;测试器304,用于确定存储器单元的物理特性;编码器306,用于接收写入数据以及生成写入字以便存储在存储器单元中;以及解码器308,用于从存储器接收读取字以及生成读取数据。诸如参考图1描述的示例性写入过程312使用测试器304、编码器306以及由写入过程312和读取过程314二者使用的共享码310(例如,码本标识符和码本)。诸如参考图2描述的示例性读取过程314使用解码器308和共享码310。
图4示出了可由一个示例性实施方式实现的用于在相变存储器(PCM)中存储数据的系统的框图。图4中所绘的系统包括:异构PCM存储器402,其包括多组存储器单元;阻抗范围测试器404,用于确定与存储器单元相关联的阻抗水平(也即,此例中的物理特性是阻抗水平);编码器406,用于接收写入数据以及生成PCM写入字以便存储在存储器单元中;以及解码器408,用于从PCM存储器402接收PCM读取字以及生成读取数据。对PCM存储器的示例性写入过程412使用阻抗范围测试器404、编码器406以及由写入过程412和读取过程414二者使用的共享码410。对PCM存储器402的示例性读取过程414使用解码器408和共享码410。在另一实施方式中,可以利用阻抗测试器来替换阻抗范围测试器,所述阻抗测试器在阻抗水平集合是不连续集的情况下,确定每个集合所支持的阻抗水平集合。
在一个备选实施方式中,存储器是闪存,并且存储器单元是闪存单元。在此实施方式中,用来存储信息的物理特性是浮栅(floatinggate)电荷。闪存中的异构性源自闪存单元的电荷存储特性的变化。
图5示出了可由一个示例性实施方式实现的用于在PCM存储器402中存储数据的系统的框图。图5描绘了可由示例性实施方式实现的示例性编码器406的更为详细的视图。示例性编码器406包括:二进制存储器约束计算器502、码选择器506、二进制写入字计算器508、数据二进制化器510以及PCM字写入器504。数据二进制化器510接收写入数据并将其分割为多个部分写入数据向量,其中的每一个部分写入数据向量与一个虚拟存储器相关联。在一个示例性实施方式中,写入数据是二进制的,并且数据二进制化器将其分割为多个二进制向量,其中第i个二进制向量中的位的数目是通过确定可被写入第i个虚拟存储器中的位的数目来确定的。这是根据由二进制存储器约束计算器502所计算的存储器约束来计算的。
在另一示例性实施方式中,写入数据是非二进制的,并且数据二进制化器510将其转换为二进制的,继而将其划分为多个二进制向量。在图5所示的实施方式中,将虚拟存储器表示为虚拟存储器向量。在一个示例性实施方式中,虚拟存储器的数目取决于由阻抗范围测试器404所测量的PCM单元中的可能阻抗值的数目。二进制存储器约束计算器502接收该组存储器单元中每个单元的所支持阻抗水平。基于阻抗水平范围,二进制存储器约束计算器502标识与虚拟存储器相关联的约束。码选择器506基于该组中的存储器单元的数目以及针对虚拟存储器的约束来为每个虚拟存储器选择码本。在一个备选实施方式中,码本是固定的并且对于读取和写入过程二者都是先验已知的,因此不需要码选择器。二进制写入字计算器508计算虚拟写入向量。在一个示例性实施方式中,码本是向虚拟写入向量指派校正子(syndrome)的线性码,并且针对给定的部分写入数据向量的虚拟写入向量是通过计算以下向量来计算得到的,该向量与针对虚拟存储器而生成的约束向量相符、并且其校正子等于部分写入向量。由此,通过在考虑针对虚拟存储器的约束下求解方程Hc=m中的c来计算虚拟写入向量;其中H是与针对虚拟存储器的选定线性码对应的码矩阵,“m”是与虚拟存储器对应的部分写入数据向量,而乘积Hc是与c对应的校正子。一般而言,方程Hc=m中的c具有多个可能解,每个可能解均是部分写入向量m的一个表示;期望的表示是满足虚拟存储器约束的解向量c。PCM字写入器504将虚拟写入向量合并成将要写入PCM存储器402的写入字。
图6示出了可由一个示例性实施方式实现的用于从PCM存储器402读取数据的系统的框图。图6描绘了可由实施方式实现的示例性解码器408的较为详细的视图。示例性解码器408包括PCM字读取器602、数据二进制化器604、二进制字解码器606和读取数据生成器608。PCM字读取器602读取由读地址指定的一组单元中的每个单元。数据二进制化器604接收读取字,基于可能阻抗值的范围将读取字分为多个虚拟读取向量。将每个虚拟读取向量发送至独立的二进制字解码器606。二进制字解码器606具有对在将该读取字写入PCM 402时使用的码本的索引或者其他标识符的访问权。在线性码的情况下,二进制字解码器606将与所标识码本相对应的码矩阵乘以虚拟读取向量的内容,以创建部分读取数据向量。读取数据生成器608将部分读取数据向量合并成读取数据。继而输出读取数据(例如,向数据请求者输出)。
图7示出了可由一个示例性实施方式实现的异构存储器到多个虚拟二进制存储器的概念性分解。图7所绘的示例包括存储器块702,其具有5个异构存储器单元。存储器单元的阻抗范围水平具有4个值(0、1、2、3),并且因此阻抗范围的物理特性可以在两个位面704中表示。单元阻抗水平的二进制化中的每个位面对应于虚拟存储器(也称为“二进制存储器”)之一。图7描绘了二进制存储器1708和二进制存储器2 710。原始存储器块702的异构性以对虚拟存储器单元的约束的形式来表现本身;具体地,单元3和单元4不能存储水平“10”和“11”,由此在二进制存储器2 710中,相应的位置固定为“0”;也即,其值不能变为“1”。在一个示例性实施方式中,对虚拟存储器的约束表示为约束向量。例如,针对二进制存储器2 710的约束向量可以表示为BP2:b=(3,4),v=(0,0)。
图8示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟二进制存储器集合的等效约束的概念性分解。图8类似于图7:存在存储器块802,并且其需要两个位面804来描述存储器块802的物理特性。在此示例中,单元2和单元5不能存储水平“11”,因此如果二进制存储器1 808中的单元2和/或单元5是“1”,则二进制存储器2 810中的相应单元固定为“0”。此示例说明:针对二进制存储器2 810的约束可以取决于存储在二进制存储器1 808中的二进制数据。
图9示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟二进制存储器集合的等效约束的概念性分解。图9与图7和图8类似:存在存储器块902,并且其需要两个位面904来描述存储器块902的物理特性。在此示例中,如果位面1 908中的单元5等于“1”,则位面2 910中的单元5固定在“0”。而且,如果位面1 908中的单元5等于“0”,则位面2 910中的单元5固定为“1”。
针对其来计算这种约束的虚拟存储器可以是非二进制的,可以证明例如非二进制的虚拟存储器有利于降低需要计算的虚拟写入向量的数目。图10示出了可由一个示例性实施方式实现的异构存储器约束到对虚拟三进制存储器集合的等效约束的概念性分解。图10所绘的示例包括存储器块1002,其具有5个异构存储器单元。存储器单元的阻抗范围水平具有9个值(0、1、2、3、4、5、6、7、8和9),因此阻抗范围的物理特性可以在两个三进制符号面(symbol-plane)1004中表示。每个三进制符号面对应于虚拟存储器(也称为“三进制存储器”)之一。图10描绘了三进制存储器1 1008和三进制存储器2 1010。原始存储器块1002的异构性以关于虚拟存储器单元的约束的形式来表现本身;例如,单元5不能支持大于水平1(三进制中的“01”)的任何水平,因此三进制存储器1 1008中的相应虚拟单元被约束为小于2,并且三进制存储器2 1010中的相应单元固定为0。类似地,三进制存储器2 1010中的虚拟单元2固定为0,因为单元2无法支持大于水平2(三进制中的“02”)的任何水平。作为另一示例,单元3仅支持水平“00”、“01”、“02”、“10”和“11”。由此,如果将要写入三进制存储器1 1008的位置3的符号是“0”或者“1”,则三进制存储器2 1010中的虚拟单元3被约束为“0”或“1”;否则其固定为“0”。
图11示出了可由一个示例性实施方式实现的二进制写入字计算器1106和二进制字解码器1110的框图。写入过程生成针对第i个虚拟存储器的写入数据c,其也称为虚拟写入向量。写入过程包括二进制存储器约束计算器1102、码选择器1104和二进制写入字计算器1106。二进制存储器约束计算器1102从测试器接收物理特性以及与先前写入的虚拟存储器相对应的虚拟写入向量,并生成描述针对位面之一的固定位置和固定值的约束向量。将约束向量输入码选择器1104,其基于约束向量的内容以及该组存储器单元中的存储器单元的数目来选择码本(在本例中,由二进制码矩阵表示)。此外,码选择器1104将约束向量传递至二进制字写入计算器1106。二进制写入字计算器1106被输入码矩阵H、包括b和v的约束向量、以及写入数据m,以计算虚拟写入向量c。通过在满足由约束向量指定的约束的同时求解Hc=m中的“c”来计算虚拟写入向量c。将虚拟写入向量输入PCM字写入器,以便将针对该组的虚拟写入向量合并成写入字。此外,将该虚拟写入向量输入二进制存储器约束计算器1102,以用于获得针对下一虚拟存储器的约束向量。
如图11所绘的示例性实施方式中所描述的,读取过程使用数据二进制化器1108和二进制字解码器1110。在数据二进制化器1108处接收来自PCM字读取器的读取字。数据二进制化器将读取字分割为多个虚拟读取向量。将虚拟读取向量之一随同先前将该数据写入该存储器块时所使用的码本一起输入到二进制字解码器1110。通过将虚拟读取向量与码本相乘来生成部分读取数据向量(也称作二进制消息)。将部分读取数据向量发送至读取字生成器,其将来自存储器块中每个虚拟存储器的部分读取数据向量合并成读取数据。
图11所绘示例可以一般化为使用非二进制存储器约束和码矩阵的情况。
图12示出了可由一个示例性实施方式实现的字写入器(诸如PCM字写入器504)的框图。PCM字写入器504将虚拟写入向量(c1…ci…cB)合并成将要写入PCM存储器402的写入字(W1…WK)。“K”是一组存储器单元中的单元数目,而“B”是该组存储器单元中的虚拟存储器数目。图12描绘了确定写入字内容的示例方式,也可以实现合并虚拟写入向量以创建写入字的其他方式。注意,生成虚拟写入向量的方式(具体地,其与虚拟存储器约束的相符性)确保了写入字中的每个符号是其将被写入的单元所支持的水平。这确保了向异构存储器进行正确写入。
图13示出了可由一个实施方式实现的PCM数据二进制化器(诸如数据二进制化器604)的框图。PCM字读取器602从PCM存储器接收读取存储器读取地址处的读取字(W1…WK),并将读取字分割为多个虚拟读取向量(c1…ci…cB)。图13描绘了确定写入字的内容的示例方式,也可以实现执行分割的其他方式。
图14示出了可由一个示例性实施方式实现的二进制存储器约束计算器(诸如二进制存储器约束计算器502)的框图。图14示出了针对与单元“i ”相对应的“B”个虚拟存储器的约束(固定位和值)的约束的计算。由阻抗范围测试器404测量的阻抗范围用来确定单元“i”所支持的整数值阻抗水平索引的集合。基于该集合以及在虚拟存储器1到k-1中的位置“i”写入的位,可以确定二进制存储器“k”中的位置“i”是否是固定的(以及如果是,固定值是什么)。
图15示出了可由图14所绘框图来实现的用于计算二进制约束的过程。在图15所绘的示例中,单元“i ”可以支持由索引1、2、3、4和5表示的阻抗水平。该信息被输入到二进制化器1502,其创建与单元水平索引相对应的二进制化索引。因为PCM存储器中存在5个或者更多阻抗水平,因此存在至少三个虚拟存储器(也称为二进制存储器)。图15示出了如何计算与三个虚拟存储器的每一个中的位置“i”相对应的存储器约束。将二进制化的索引输入到二进制存储器1约束计算器1504,其确定二进制化索引的最低有效位中包含什么值。在此示例中,其包括“0”和“1”二者,因此二进制存储器1中的位置“i”是非固定的。
在框1506,将值“0”写入二进制存储器1中的位“i”。该写入的输入包括与二进制存储器1相关联的约束向量,该约束指定二进制存储器1中的位“i”是非固定的,因此可以写入任何值。过程继续到二进制存储器2约束计算器1508,其中输入包括写入二进制存储器1中的位“i”的数据值。假设“0”被写入二进制存储器1中的位“i”,计算其余的兼容水平。如二进制存储器2约束计算器1508中所绘,其余兼容水平是(010和100),因为“0”位于最低有效位中(也即,二进制存储器1中)。二进制存储器2约束计算器确定:二进制存储器2位置中的“i”是非固定的。
在框1510,使用来自二进制存储器2约束计算器1508的约束向量作为输入,将值“1”写入二进制存储器2中的位“i”。接下来,处理继续到二进制存储器3约束计算器1512,其中输入包括写入到二进制存储器1和2中的位“i”的数据值。假设在二进制存储器1中的位“i”写入了“0”并在二进制存储器2中的位“i”写入了“1”,计算其余兼容水平。如二进制存储器3约束计算器1512中所绘,其余兼容水平是(010)。二进制存储器3约束计算器1512确定二进制存储器3中的位置“i”固定为“0”。该约束信息被输入到二进制存储器3字写入过程。
在一个实施方式中,为了计算虚拟写入向量,需要求解方程Hc=m,使得c满足特定地固定位置约束。这可以通过多种方法来实现,包括文献中已知的多个方法。在一个示例性实施方式中,通过计算非正则低密度奇偶校验(LDPC)的奇偶校验矩阵来计算矩阵H,并且写入过程使用高斯消元来计算向量。在另一示例性实施方式中,通过计算从有限字母表均匀取得的随机矩阵来计算矩阵H,并且写入过程使用高斯消元来计算向量。在另一示例性实施方式中,通过计算卢比变换(LT)码的生成器矩阵的转置来计算矩阵H,并且写入过程使用剥离来计算虚拟写入向量“c ”。在另一实施方式中,矩阵H表示卷积码,并且编码算法使用基于栅格(trellis)的代价最小化来计算虚拟写入向量“c ”,其中与每个栅格路径相关联的代价是每个单元的阻抗水平和将写入该单元的值的函数。在另一实施方式中,通过计算诸如BCH或者Reed-Solomon码的代数码的生成器矩阵或者奇偶校验矩阵来计算矩阵H。在另一示例性实施方式中,写入过程求解线性规划以找到向量c,该向量c满足由虚拟存储器中的每个存储器单元的可采取的阻抗值的范围施加的、对每个分量ci值的线性约束,使得矩阵H与c的乘积是将要编码的写入向量m。
图16示出了可由一个示例性实施方式实现的使用随机二进制和LDPC码以及高斯消元的二进制写入字计算器的框图。术语“第i个二进制存储器”表示虚拟存储器之一。第i个虚拟存储器中的固定位置表示为b,其具有相应值v。所使用的码本称作H。第i个二进制消息“m”涉及将要写入第i个虚拟存储器的那部分写入数据。
图17示出了可由一个示例性实施方式实现的使用卢比变换(LT)码和剥离的二进制写入字计算器以及使用线程规划的非二进制写入字计算器的框图。
在一个示例性实施方式中,如下计算满足虚拟存储器约束的虚拟写入向量c。对于每个虚拟存储器,写入过程和读取过程共享生成器矩阵G和奇偶校验矩阵H,使得GHT=0。首先,找到向量u,使得Hu=m。接下来,找到向量v,使得向量Gv+m满足虚拟存储器约束(其中“+”表示模2加)。继而根据c=Gv+m计算c。在该示例性实施方式中,通过从所设计的概率分布选择列的权重来构建矩阵G,使得可以使用剥离算法来计算向量v。在另一示例性实施方式中,矩阵G是代数码的生成器矩阵或者奇偶校验矩阵。
一般而言,对于选定的码矩阵、向量m和给定约束,方程Hc=m不可解的概率存在非零情况。图18示出了可由一个实施方式实现以降低此概率的使用级联码的写入字计算器的框图。在此示例性实施方式中,对于每个虚拟存储器,计算在写入过程和读取过程间共享的两个二进制矩阵H1和H2。对于给定的虚拟存储器,写入过程找到这样的向量c1和c2,其使得H1c1=c2并且H2c2等于将要存储在存储器中的消息。将字c1写入存储器。读取过程通过计算H2H1c1来重建消息。这种级联编码可以用来降低无法找到满足存储器约束并且可从其恢复消息的适当虚拟写入向量c的概率。
在一个备选示例性实施方式中,写入过程和读取过程共享多个H矩阵及其预定的顺序次序。如果写入过程所使用的第一H矩阵无法得到与存储器异构性相符的向量c,则写入过程利用第二H矩阵重试。这继续进行,直到计算出与存储器异构性相符的向量c。写入成功的步骤的索引成为要存储的元数据的一部分。
图19示出了可由一个示例性实施方式实现的一个过程,其中写入过程编码器尝试预定义矩阵序列来找到以下矩阵,该矩阵生成对消息进行编码并且满足异构存储器约束的码字。用来创建c的矩阵索引是元数据,可以如前所述那样对其存储。读取过程解码器具有对相同序列矩阵的访问权,并且使用元数据码索引来确定使用哪个矩阵用于解码。
使用可以具有较大数目的条目的多个码矩阵对于空间或者时间复杂性而言可能是不利的。这可以通过以下方式来解决:通过对单个矩阵应用一系列函数(其可以是伪随机的)来生成多个矩阵。图20示出了可由一个示例性实施方式实现的过程,其中写入过程编码器使用伪随机函数生成器和码矩阵来生成图19所绘的预定义矩阵序列。解码器共享相同的伪随机生成器。可以使用的函数的示例是置换H的列的函数。由此,每个函数对应于H的列的不同的伪随机列置换。在此实施方式中,写入过程和读取过程共享H矩阵,并且共享H矩阵的列置换的伪随机或预定顺序次序。写入过程最初使用通过H矩阵的第一列置换生成的矩阵。如果这得到了与存储器异构性不相符的向量c,则写入过程利用通过H矩阵的第二列置换生成的矩阵来重写数据。这继续进行,直到计算出与存储器异构性相符的向量c。写入成功的步骤的索引称为要存储的元数据的一部分。
在一个示例性实施方式中,每个存储器单元支持相同数目的阻抗水平(假定为n),但是阻抗水平的范围随单元而变化。在这种情况下,写入过程通过计算单元i所支持的水平1使得1模n=d,来编码单元i中的数据值d(0<=d<=n-1)。将该水平写入该单元。读取过程将数据值重构为d=1模n。
在一个示例性实施方式中,读取过程还可以通过执行破坏性读取来确定单元的状态。这包括步骤:在读取数据之后,使用适当的编程脉冲将一组单元中的每个单元编程至其SET和RESET水平,以及测量SET和RESET阻抗水平。此后将数据重写回单元中。在一个实施方式中,写入过程使用阻抗水平的二进制分解,以便按照与单元异构性相符的方式将数据写入存储器单元。读取过程使用其关于单元状态的知识来正确地解释所写入的数据。
图21示出了可由一个示例性实施方式实现的用于当读取和写入过程二者都可以测量每个单元所支持的阻抗水平时在PCM存储器中存储数据的系统的框图。图21中所绘的系统包括:异构PCM存储器2102,其包括:多组存储器单元;阻抗范围测试器2104,用于在向存储器2102进行写入时确定阻抗水平;编码器2106,用于接收写入数据以及生成PCM写入字以存储在存储器2102中;解码器2112,用于从PCM存储器2102接收PCM读取字以及生成读取数据;以及阻抗范围测试器2110,用于在读取时确定阻抗范围。对PCM存储器的示例性写入过程2108使用阻抗范围测试器2104和编码器2106。对PCM存储器2102的示例性读取过程2114使用解码器2112和阻抗范围测试器2110。在一个示例性实施方式中,阻抗范围测试器2104和2110是合并的。
图22示出了用于当读取和写入过程二者都可以测试每个单元所支持的阻抗水平时向PCM存储器2102写入数据的系统的框图。图22示出了可由一个示例性实施方式实现的编码器2106的较为详细的视图。示例性编码器2106包括:二进制存储器约束计算器2202、写入消息位块2204、数据二进制化器2208以及PCM字写入器2206。可由图22的系统实现的一个示例性写入过程包括:接收写入数据以及与一组异构存储器单元相对应的写入地址。确定存储器单元的物理特性。将写入数据分割为多个部分写入数据向量,其中的每一个部分写入数据向量与一个虚拟存储器相关联。这可以基于针对每个虚拟存储器而标识的存储器约束来完成。针对每个虚拟存储器执行以下步骤:生成描述虚拟存储器中的存储器单元的约束向量(例如,由二进制存储器约束计算器2202来执行),该生成响应于存储器单元的物理特性、响应于针对一组存储器单元的任何先前生成的约束向量、以及响应于针对该组存储器单元的任何先前生成的虚拟写入向量;以及响应于约束向量和部分写入数据来计算虚拟写入向量(例如,由写入消息位块2204来执行)。通过简单地将部分写入数据的位按顺序写入虚拟存储器、跳过固定为某值的每个虚拟存储器单元,来生成虚拟写入向量。PCM字写入器2206将虚拟写入向量合并成写入字,该写入字被输出到该组存储器单元。
图23示出了可由一个示例性实施方式实现的用于在读取和写入过程二者都可以测量每个单元所支持的阻抗水平时从PCM存储器2102读取数据的系统的框图。图23示出了可由一个示例性实施方式实现的示例性解码器2112的较为详细的视图。示例性解码器2112包括:PCM字读取器/重写器2306、数据二进制化器2304、二进制存储器约束计算器2302、读取消息位块2308以及读取数据生成器2310。可由图23的系统实现的一个示例性读取过程包括:从一组存储器单元接收读取字(例如,由PCM字读取器/重写器2306来执行),以及确定存储器单元的物理特性(例如,由阻抗范围测试器2110来执行)。基于物理属性将读取字分割为多个虚拟读取向量(例如,由二进制存储器约束计算器2302来执行)。针对每个虚拟存储器执行以下步骤:生成描述虚拟存储器中的存储器单元的约束向量,该生成响应于存储器单元的物理特性、响应于针对该组存储器单元的任何先前生成的约束向量以及响应于针对该组存储器单元的任何先前生成的虚拟读取向量;以及响应于约束向量来生成部分读取数据向量(例如,由读取消息位块2308来执行)。该部分读取向量是通过简单地从虚拟存储器按序读取位并且丢弃从每个虚拟存储器单元读取的固定为某值的位来生成的。部分读取数据向量由读取数据生成器2310合并成读取数据,并且该读取数据被输出。
在一个示例性实施方式中,每个单元具有水平的子集,其可以被写入,但是在写入时间和功率方面的代价增加。在一个示例性实施方式中,写入过程执行图1中描述的方法,但是如果得到的向量c与其他水平不相符,则使用加强的代价水平。在另一示例性实施方式中,写入过程针对给定的代价约束来计算进行写入的最优水平集合,并继而使用图1的方法来将数据写入这些水平。在这两个实施方式中,读取过程使用图2的方法。
在一个示例性实施方式中,除了异构之外,单元水平还是有噪声的。如本领域中已知的,噪声表示存储器的物理特性随时间的改变。写入过程可以如图1中所述采用二进制虚拟存储器集合来执行单元水平的二进制化。随后,写入过程使用嵌套码来向每个虚拟存储器进行写入。在一个示例性实施方式中,写入和读取过程共享矩阵H1和H,使得HT=[H1T|H2T]。这里,HT表示矩阵H的转置。写入过程计算向量c,使得H2c是待存储的消息、c满足存储器的异构性并且H1c为0。给定噪声向量c’,读取过程计算向量c,使得c接近c’(例如在汉明距离方面)并且H1c=0。继而读取过程将消息重建为H2c。矩阵H1和H2可以是这样的:H是用于诸如BCH或者Reed-Solomon码之类的代数码的生成器矩阵或者奇偶校验矩阵。
图24示出了可由一个示例性实施方式实现的用于在噪声异构存储器中存储数据的二进制字计算器和二进制字解码器。图24所绘的解码器使用矩阵H1来执行错误修正并获取c。继而,根据m=H2c计算消息m。
在一个示例性实施方式中,写入过程生成的要存储在存储器中的元数据包括关于矩阵H的部分信息。作为一个示例,写入过程可以选择使用多个可能的H矩阵之一,并且部分信息包含这样的数据,该数据允许读取过程辨别写入过程使用了哪个H矩阵。作为另一示例,部分信息包含这样的数据,该数据允许接收者重建由写入过程使用的H矩阵,其中H矩阵是由读取和写入过程二者伪随机生成的。
在一个示例性实施方式中,用来存储信息的物理特性是多维的。在一个示例性实施方式中,使用多个电压测量来读取存储在PCM存储器元件中的信息,并且元件阻抗对于不同电压是不同的。跨多个电压信号的合并单元响应形成一个多维值,其被用来存储信息。存储器是异构的,这是因为:每个维度中的每个单元所支持的值范围对于不同单元来说是不同的。图25和图26示出了可以如何将异构多维存储器约束分解为对虚拟二进制存储器集合的等效一维约束的示例性实施方式。在此示例中,在图25中示出了一个具有5个单元的存储器块2502,其中表征每个单元的阻抗值是二维的。单元1在第一维中支持3个水平,并且在第二维中支持1个水平。单元2在第一维中支持1个水平,并且在第二维中支持2个水平。单元3在第一维中支持2个水平,并且在第二维中支持2个水平。单元4在第一维中支持4个水平,并且在第二维中支持2个水平。单元5在第一维中支持4个水平,并且在第二维中支持1个水平。可以通过选择覆盖所有2D值的任何二维值排序,来将多维值的整个范围转换为等效的一维范围。示例性排序在表2504中示出。继而每个单元支持来自等效的1D水平范围的水平集合。表2506示出了当转换为表2504中描述的1D值时,异构存储器块2502的每个单元所支持的水平。应当注意,一个集合所支持的1D水平集合可以是非连续的或者连续的。例如,单元1支持1D水平0、2和4,其是非连续的水平集合。在图26中,示出了如何将这一具有多维值的异构存储器分解为虚拟二进制存储器,该分解是利用对这些虚拟存储器的虚拟单元的已计算出的约束进行的。由于存在总计8个1D水平,因此需要3个二进制存储器。二进制存储器12602中的虚拟单元1和5被约束为固定为0。二进制存储器22604中的虚拟单元2被约束为固定为0;二进制存储器2中的其他单元不受约束。在二进制存储器32606中,虚拟单元1、2和3具有各种约束。一旦已经计算出这些约束,则使用先前描述的技术在该存储器中有效地存储信息。
在一个示例性实施方式中,关于单元物理特性的信息仅部分可获得。例如,如果只有所有单元的子集的物理特性可获得,则情况可能如此。在这种情况下,使用上文描述的技术,使得被写入存储器的数据向量满足从已知的部分单元信息导出的约束。
在一个示例性实施方式中,由存储器单元异构性施加的约束集合的表现形式是对可以存储在给定单元中或者给定单元的给定位面中的字母(二进制或非二进制)的限制,并且该限制跨不同的单元以及跨不同的位面而变化。
当存储器元件使用不同于阻抗的物理特性来存储信息、并且所述物理特性展现出跨不同存储器元件的变化性时,也可以使用上文描述的技术。这些技术还可以用来提高存储器芯片的产率,因为其允许在具有某些或者全部异构单元的存储器中的有效数据存储。在原来的(naive)系统中,可能需要丢弃具有的不支持特定的预先指定的存储器水平范围的单元超过特定比例的任何存储器芯片。这可能压低产率。反之,使用在此描述的技术,不支持预先指定的存储器水平范围的单元仍然可以用来存储信息。由此,需要丢弃的芯片很少,从而提高产率。
技术效果和益处包括以下能力:在具有影响每个单元可存储的数据类型和数据量的任何类型的异构性所表征的元件的任何存储器中存储信息。与试图在部分损坏的存储器中存储数据的先前方法相比,这提供了增强的灵活性。示例性实施方式通过增加可存储的信息量而允许非常有效的存储器存储。示例性实施方式还可以用来提高存储器产率,这是通过允许在具有展示出不完美的可变物理特性的单元的存储器上进行有效数据存储、而不是丢弃这种芯片而得到的。
在此使用的术语是仅仅出于描述特定实施方式的目的,而并非意在限制本发明。在此使用的单数形式“一个”、“一种”、“该”同样意在包括复数形式,除非上下文另行明确指明。还将理解,当说明书中使用术语“包括”和/或“包含”时,其指定所记载特征、整数、步骤、操作、元件和/或组件的存在,但是并不排除一个或多个其他特征、整数、步骤、操作、元件组件和/或其群组的存在或增加。
所附权利要求书中所有装置或方法加功能元素的相应结构、材料、动作和等效项意在包括如特别要求保护的、与其他要求保护的元件相结合来执行所述功能的任何结构、材料或者动作。出于说明和描述的目的,已经给出了对本发明的描述,但在并非意在穷举或者将本发明限于所公开的形式。在不脱离本发明范围和精神的情况下,多种修改和变形对于本领域普通技术人员而言是显而易见的。选择和描述实施方式是为了最好地阐释本发明的原理以及可实践应用,并使本领域的其他普通技术人员能够理解本发明,以用于适合预期特定用途的、具有各种修改的各种实施方式。
在此描绘的流程图仅仅是一个示例。在不脱离本发明精神的情况下,可以对该图或步骤(或操作)进行各种变形。例如,可以按照不同的顺序来执行步骤,并且可以添加、删除或者修改步骤。所有这些变形都认为是所要求保护的发明的部分。
如上所述,本发明的实施方式可以通过计算机实现的过程以及用于实践这些过程的装置的形式来具体化。本发明的实施方式还可以通过包含在有形介质中具体化的指令的计算机程序代码的形式来具体化,其中有形介质诸如软盘、CD-ROM、硬盘驱动器或者任何其他计算机可读存储介质,其中当计算机程序代码被载入计算机并由计算机执行时,该计算机变为用于实践本发明的装置。本发明还可以通过计算机程序代码的形式来具体化,该计算机程序代码例如存储在存储介质中、被载入计算机和/或由计算机来执行或者通过某些传输媒介(诸如通过电线路或线缆、通过光纤或者经由电磁辐射)来传输,其中当计算机程序代码被载入计算机并由计算机执行时,该计算机变为用于实践本发明的装置。当在通用微处理器上实现时,计算机程序代码段配置该微处理器来创建特定的逻辑电路。
尽管已经描述了本发明的优选实施方式,应该理解的是,本领域技术人员目前和将来都可以进行落入所附权利要求范围内的各种改进和增强。这些权利要求应当被认为维持对前面描述的本发明的适当保护。

Claims (23)

1.一种用于存储数据的方法,所述方法包括:
向存储器进行写入的写入过程,其中所述存储器中存储器单元的物理特性支持不同的数据水平集合,以及所述写入过程在向所述存储器写入时将所述不同的数据水平集合纳入考虑;以及
从所述存储器进行读取的读取过程,所述读取过程首先获得所述存储器中的数据,并随后确定如何解释所述存储器中的数据;其中所述写入过程使用至少一个第一码本,并且包括:
接收将要写入所述存储器中的一组存储器单元的写入消息;
确定所述组中的存储器单元的物理特性;
响应于所述组中的存储器单元的物理特性,标识与所述一组存储器单元相关联的虚拟存储器;
针对所述虚拟存储器中的每个虚拟存储器,执行:
生成描述所述虚拟存储器中的虚拟单元的约束向量,所述生成响应于所述组中的存储器单元的所述物理特性、响应于先前生成的约束向量以及响应于先前生成的虚拟写入向量;以及
响应于所述至少一个第一码本、所述生成的描述所述虚拟存储器中的虚拟单元的约束向量以及所述写入消息,计算虚拟写入向量;
将所述虚拟写入向量合并成写入字;以及
将所述写入字输出到所述一组存储器单元。
2.根据权利要求1所述的方法,其中所述执行进一步包括:基于所述生成的描述所述虚拟存储器中的虚拟单元的约束向量的内容以及基于所述一组存储器单元中的存储器单元的数目,从多个码本中选择一个码本;以及存储码本标识符以标识用来计算所述虚拟写入向量的码本。
3.根据权利要求1所述的方法,其中所述生成的描述所述虚拟存储器中的虚拟单元的约束向量描述所述虚拟单元的位置和所支持的水平。
4.根据权利要求1所述的方法,其中所述写入消息被分割为多个部分写入向量,每个部分写入向量对应于一个虚拟存储器,码本是向虚拟写入向量指派校正子的线性码,并且所述计算包括计算如下虚拟写入向量,所述虚拟写入向量与针对所述虚拟存储器而生成的约束向量相符,并且所述虚拟写入向量的校正子是与所述虚拟存储器相对应的部分写入向量。
5.根据权利要求1所述的方法,其中所述计算包括以下一个或多个:高斯消元、剥离以及基于栅格的解码,并且码本由以下一个或多个来定义:随机二进制矩阵、二进制低密度奇偶校验(LDPC)校验矩阵、二进制卢比变换(LT)矩阵、代数码以及卷积码。
6.根据权利要求1所述的方法,其中所述一组存储器单元是相变存储器(PCM),并且所述组中的存储器单元的物理特性包括每个存储器单元的阻抗水平范围。
7.根据权利要求1所述的方法,其中所述一组存储器单元是PCM,所述组中的存储器单元的物理特性包括每个存储器单元的阻抗水平范围,所述生成的描述所述虚拟存储器中的虚拟单元的约束向量描述所述虚拟存储器中的所述虚拟单元的位置和所支持的水平,并且所述写入字包括将要写入每个PCM存储器单元的阻抗水平。
8.根据权利要求1所述的方法,其中码本由矩阵来表示,并且使用线性规划来计算所述虚拟写入向量。
9.根据权利要求1所述的方法,其中码本由级联码来表示。
10.根据权利要求1所述的方法,其中所述一组存储器单元是闪存,并且所述组中的存储器单元的物理特性包括每个存储器单元的阈值电压特性。
11.根据权利要求1所述的方法,其中所述计算的步骤可能失败,并且其中所述虚拟写入向量通过以下计算:应用一个或多个码本,直到找到一个使得所述计算不失败的码本为止。
12.根据权利要求1所述的方法,其中所述存储器单元受到噪声影响,并且所述计算包括选择所述虚拟写入向量,使得所述虚拟写入向量还属于第二码本。
13.根据权利要求1所述的方法,其中所述组中的存储器单元的物理特性包括多维水平,并且其中所述写入过程进一步包括:通过使用覆盖所有多维水平的排序,将所述多维水平转换为一维水平。
14.一种用于从存储器进行读取的方法,所述方法包括:
从一组存储器单元接收读取字,其中所述组中的存储器单元的物理特性支持不同的数据水平集合;
将所述读取字分割为多个虚拟读取向量;
针对所述虚拟读取向量中的每个虚拟读取向量,执行:
标识曾用于生成所述虚拟读取向量的码本;以及
生成部分读取数据向量,所述生成包括将所述虚拟读取向量与表示所述码本的矩阵相乘;
将所述部分读取数据向量合并成读取消息;以及
输出所述读取消息。
15.根据权利要求14所述的方法,其中所述一组存储器单元是相变存储器(PCM),并且所述物理特性包括每个存储器单元的阻抗水平范围。
16.根据权利要求14所述的方法,其中所述存储器单元是有噪声的,并且所述执行包括标识供所述生成用来补偿所述噪声的第二码本。
17.一种存储器系统,包括:
存储器,其包括一组存储器单元,其中所述存储器单元的物理特性支持不同的数据水平;
测试器,其确定所述存储器单元的物理特性;
编码器,其与所述存储器和所述测试器连接,并且使用至少一个码本:
接收将要写入所述一组存储器单元的写入消息;
响应于所述物理特性来标识与所述一组存储器单元相关联的虚拟存储器;
针对所述虚拟存储器中的每个虚拟存储器,所述编码器执行:
生成描述所述虚拟存储器中的虚拟单元的约束向量,所述生成响应于物理存储器单元的所述物理特性、响应于先前生成的约束向量以及响应于先前生成的虚拟写入向量;以及
响应于所述至少一个码本、所述生成的描述所述虚拟存储器中的虚拟单元的约束向量和所述写入消息,计算虚拟写入向量;
将所述虚拟写入向量合并成写入字;以及
将所述写入字输出到所述一组存储器单元。
18.根据权利要求17所述的系统,进一步包括存储位置,其中针对所述虚拟存储器中的每个虚拟存储器的所述执行进一步包括:
基于所述生成的描述所述虚拟存储器中的虚拟单元的约束向量的内容以及基于所述一组存储器单元中的存储器单元的数目,从多个码本中选择所述至少一个码本;以及
在所述存储位置中存储码本标识符,以标识用来计算所述虚拟写入向量的所述至少一个码本。
19.根据权利要求17所述的系统,进一步包括:
连接至所述存储器的解码器:
从所述存储器中的第二组存储器单元接收读取字;
将所述读取字分割为多个虚拟读取向量;
对于每个所述虚拟读取向量,所述解码器执行:
标识曾用于生成所述虚拟读取向量的码本;以及
生成部分读取数据向量,所述生成包括将所述虚拟读取向量与表示已标识的码本的矩阵相乘;
将所述部分读取数据向量合并成读取消息;以及
输出所述读取消息。
20.一种用于对异构存储器进行写入的方法,所述方法包括:
接收写入消息以及与一组存储器单元相对应的写入地址,其中至少两个存储器单元支持不同的数据水平;
确定所述存储器单元的物理特性;
响应于所述物理特性,标识与所述一组存储器单元相关联的虚拟存储器;
对于所述虚拟存储器中的每个虚拟存储器,执行:
生成描述所述虚拟存储器中的虚拟单元的约束向量,所述生成响应于物理存储器单元的所述物理特性、响应于先前生成的约束向量以及响应于先前生成的虚拟写入向量;以及
响应于所述生成的描述所述虚拟存储器中的虚拟单元的约束向量和所述写入消息来计算虚拟写入向量,所述计算包括逐位、按序地将所述写入消息写入所述虚拟存储器,跳过由所述生成的描述所述虚拟存储器中的虚拟单元的约束向量指示的、已知为固定在特定值的位置;
将所述虚拟写入向量合并成写入字;以及
将所述写入字输出到所述一组存储器单元。
21.根据权利要求20所述的方法,其中所述一组存储器单元是PCM,并且所述物理特性包括每个存储器单元的阻抗水平范围。
22.一种用于从异构存储器进行读取的方法,所述方法包括:
从一组存储器单元接收读取字,所述存储器单元中的至少两个存储器单元支持不同的数据水平;
确定所述存储器单元的物理特性;
响应于所述物理特性,标识与所述一组存储器单元相关联的虚拟存储器;
响应于所述虚拟存储器,将所述读取字分割为多个虚拟读取向量;
对于所述虚拟读取向量中的每个虚拟读取向量,执行:
生成描述所述虚拟存储器中的虚拟单元的约束向量,所述生成响应于物理存储器单元的所述物理特性、响应于先前生成的约束向量以及响应于先前生成的部分读取向量;以及
响应于所述生成的描述所述虚拟存储器中的虚拟单元的约束向量和所述虚拟读取向量来生成部分读取数据向量,所述生成包括逐位、按序地读取所述虚拟读取向量,并且丢弃由所述生成的描述所述虚拟存储器中的虚拟单元的约束向量指示的、已知为固定的位;
将所述部分读取数据向量合并成读取消息;以及
输出所述读取消息。
23.根据权利要求22所述的方法,其中所述一组存储器单元是PCM,并且所述物理特性包括每个存储器单元的阻抗水平范围。
CN2010101710781A 2009-04-30 2010-04-28 存储数据的方法和存储器系统 Expired - Fee Related CN101944067B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/433,157 US8331168B2 (en) 2009-04-30 2009-04-30 Increased capacity heterogeneous storage elements
US12/433,157 2009-04-30

Publications (2)

Publication Number Publication Date
CN101944067A CN101944067A (zh) 2011-01-12
CN101944067B true CN101944067B (zh) 2013-04-24

Family

ID=43030244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101710781A Expired - Fee Related CN101944067B (zh) 2009-04-30 2010-04-28 存储数据的方法和存储器系统

Country Status (4)

Country Link
US (3) US8331168B2 (zh)
JP (1) JP5464703B2 (zh)
KR (1) KR101264476B1 (zh)
CN (1) CN101944067B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5556189B2 (ja) * 2010-01-20 2014-07-23 ソニー株式会社 記憶装置およびデータの書込み方法
US8352839B2 (en) * 2010-06-11 2013-01-08 International Business Machines Corporation Encoding data into constrained memory
US9128869B2 (en) * 2011-09-29 2015-09-08 Micron Technology, Inc. Systems and methods involving managing a problematic memory cell
US8887025B2 (en) 2011-11-16 2014-11-11 HGST Netherlands B.V. Techniques for storing data in stuck memory cells
KR101835605B1 (ko) 2011-11-24 2018-03-08 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법
US8732560B2 (en) * 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
CN102902629B (zh) * 2012-06-20 2016-06-22 华为技术有限公司 存储空间映射方法及装置
US9274884B2 (en) 2012-10-10 2016-03-01 HGST Netherlands B.V. Encoding and decoding data to accommodate memory cells having stuck-at faults
US9070483B2 (en) 2012-10-10 2015-06-30 HGST Netherlands B.V. Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults
US8943388B2 (en) * 2012-12-12 2015-01-27 HGST Netherlands B.V. Techniques for encoding and decoding using a combinatorial number system
US8812934B2 (en) 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
US9324438B2 (en) 2013-08-05 2016-04-26 Jonker Llc Method of operating incrementally programmable non-volatile memory
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
KR102204394B1 (ko) * 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
KR102098247B1 (ko) * 2013-11-25 2020-04-08 삼성전자 주식회사 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
US11783898B2 (en) 2014-09-18 2023-10-10 Jonker Llc Ephemeral storage elements, circuits, and systems
US10839086B2 (en) 2014-09-30 2020-11-17 Jonker Llc Method of operating ephemeral peripheral device
US10061738B2 (en) 2014-09-30 2018-08-28 Jonker Llc Ephemeral peripheral device
US10115467B2 (en) 2014-09-30 2018-10-30 Jonker Llc One time accessible (OTA) non-volatile memory
CN108345428B (zh) * 2017-01-22 2021-08-31 厦门旌存半导体技术有限公司 控制密集型控制系统及其方法
US10355712B2 (en) * 2017-03-31 2019-07-16 Sandisk Technologies Llc Use of multiple codebooks for programming data in different memory areas of a storage device
US10230395B2 (en) * 2017-03-31 2019-03-12 Sandisk Technologies Llc Determining codebooks for different memory areas of a storage device
US10236909B2 (en) * 2017-03-31 2019-03-19 Sandisk Technologies Llc Bit-order modification for different memory areas of a storage device
US10567116B2 (en) * 2017-05-12 2020-02-18 Mediatek Inc. Wireless communication using codebooks from a QC-LDPC code for shorter processing latency and improved decoder throughput efficiency
CN108958801B (zh) 2017-10-30 2021-06-25 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行向量最大值指令的方法
US11990137B2 (en) 2018-09-13 2024-05-21 Shanghai Cambricon Information Technology Co., Ltd. Image retouching method and terminal device
CN109658867A (zh) * 2018-12-10 2019-04-19 北京欧徕德微电子技术有限公司 数据读写方法及其装置
CN109841242A (zh) * 2019-01-08 2019-06-04 华中科技大学 一种基于相变存储器实现二进制并行加法的方法及系统
US20200364047A1 (en) * 2019-05-16 2020-11-19 Facebook, Inc. High throughput neural network operations using inter-layer memory layout transformation
CN111862885B (zh) * 2020-07-23 2021-12-24 大连集思特科技有限公司 一种内封ic的双向数据传输led控制方法、系统及存储介质
CN112817538B (zh) * 2021-02-22 2022-08-30 腾讯科技(深圳)有限公司 数据处理的方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905070A (zh) * 2005-07-28 2007-01-31 三星电子株式会社 能够存储多比特数据和单比特数据的闪存设备
CN101211252A (zh) * 2006-12-26 2008-07-02 劲永国际股份有限公司 存储器储存装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51138335A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Control system for control memory
JPS61214299A (ja) * 1985-03-20 1986-09-24 Toshiba Corp 読出し専用メモリ
US5596522A (en) * 1991-01-18 1997-01-21 Energy Conversion Devices, Inc. Homogeneous compositions of microcrystalline semiconductor material, semiconductor devices and directly overwritable memory elements fabricated therefrom, and arrays fabricated from the memory elements
US5278793A (en) * 1992-02-25 1994-01-11 Yeh Tsuei Chi Memory defect masking device
US5572470A (en) * 1995-05-10 1996-11-05 Sgs-Thomson Microelectronics, Inc. Apparatus and method for mapping a redundant memory column to a defective memory column
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5933852A (en) * 1996-11-07 1999-08-03 Micron Electronics, Inc. System and method for accelerated remapping of defective memory locations
US6473332B1 (en) * 2001-04-04 2002-10-29 The University Of Houston System Electrically variable multi-state resistance computing
JP2003022687A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
JP2003022693A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体メモリ
US6809362B2 (en) * 2002-02-20 2004-10-26 Micron Technology, Inc. Multiple data state memory cell
US6831856B2 (en) 2002-09-23 2004-12-14 Ovonyx, Inc. Method of data storage using only amorphous phase of electrically programmable phase-change memory element
JP4187197B2 (ja) * 2002-11-07 2008-11-26 シャープ株式会社 半導体メモリ装置の制御方法
JP4205938B2 (ja) * 2002-12-05 2009-01-07 シャープ株式会社 不揮発性メモリ装置
US6839275B2 (en) * 2003-06-04 2005-01-04 Hewlett-Packard Development Company, L.P. Memory system having control circuit configured to receive data, provide encoded received data to match a fault pattern in the array of memory cells
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
US7453715B2 (en) * 2005-03-30 2008-11-18 Ovonyx, Inc. Reading a phase change memory
EP2249351B1 (en) * 2005-06-03 2013-05-01 STMicroelectronics Srl Method for multilevel programming of phase change memory cells using a percolation algorithm
JP2006351061A (ja) * 2005-06-14 2006-12-28 Matsushita Electric Ind Co Ltd メモリ回路
KR100855467B1 (ko) * 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
JP2008108297A (ja) * 2006-10-23 2008-05-08 Toshiba Corp 不揮発性半導体記憶装置
JP2008299918A (ja) * 2007-05-29 2008-12-11 Toshiba Microelectronics Corp 不揮発性半導体記憶装置及びその不良ブロック置き換え方法
KR101308549B1 (ko) * 2007-07-12 2013-09-13 삼성전자주식회사 멀티-레벨 상변환 메모리 장치 및 그것의 쓰기 방법
KR101261008B1 (ko) * 2007-08-14 2013-05-06 삼성전자주식회사 3-레벨 비휘발성 메모리 셀을 포함하는 비휘발성 메모리장치의 구동 방법 및 그 방법을 사용하는 비휘발성 메모리장치
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
JP2009129477A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置
US8203872B2 (en) * 2008-02-26 2012-06-19 Ovonyx, Inc. Method and apparatus for accessing a multi-mode programmable resistance memory
US8131979B2 (en) * 2008-08-15 2012-03-06 Apple Inc. Check-hazard instructions for processing vectors
US8089805B2 (en) * 2008-11-20 2012-01-03 Micron Technology, Inc. Two-part programming methods and memories
US8839076B2 (en) * 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905070A (zh) * 2005-07-28 2007-01-31 三星电子株式会社 能够存储多比特数据和单比特数据的闪存设备
CN101211252A (zh) * 2006-12-26 2008-07-02 劲永国际股份有限公司 存储器储存装置

Also Published As

Publication number Publication date
US20120290778A1 (en) 2012-11-15
KR101264476B1 (ko) 2013-05-14
CN101944067A (zh) 2011-01-12
KR20100119502A (ko) 2010-11-09
US8488397B2 (en) 2013-07-16
US8553474B2 (en) 2013-10-08
JP5464703B2 (ja) 2014-04-09
US20120287714A1 (en) 2012-11-15
US8331168B2 (en) 2012-12-11
US20100277989A1 (en) 2010-11-04
JP2010262730A (ja) 2010-11-18

Similar Documents

Publication Publication Date Title
CN101944067B (zh) 存储数据的方法和存储器系统
US9734012B2 (en) Data encoding in solid-state storage devices
CN102823141B (zh) 用于固态存储器件的两级bch码
CN101685672B (zh) 在多级单元闪存装置中使用的最低有效位页恢复方法
KR101438072B1 (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
KR101428891B1 (ko) 아날로그 메모리 셀들에서의 최적화된 임계치 검색
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
US8635508B2 (en) Systems and methods for performing concatenated error correction
Wu Low complexity codes for writing a write-once memory twice
US20110078541A1 (en) Storage device and data process method
EP2533450B1 (en) Method and device for data check processing
CN106664098A (zh) 用于将二进制映射到三进制及其反转的装置和方法
CN115858235B (zh) 循环冗余检验处理方法及装置、电路、电子设备和介质
US20130124940A1 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
CN109935263A (zh) 非易失性存储器的编译码方法及存储系统
CN103151078B (zh) 一种存储器检错纠错码生成方法
Zhu et al. Exploring node repair locality in fractional repetition codes
US9350390B2 (en) Encoder, decoder and semiconductor device including the same
Buzaglo et al. Systematic codes for rank modulation
CN116662063B (zh) 一种闪存的纠错配置方法、纠错方法、系统、设备及介质
CN108170554A (zh) 一种nand的数据编码方法和装置
CN115833848A (zh) 译码确定方法、装置、电子设备及存储介质
WO2014102800A1 (en) Method and device for reliable storage in nor flash memory

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: 20171128

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: 20171128

Address after: American New York

Patentee after: Core USA second LLC

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20210428

CF01 Termination of patent right due to non-payment of annual fee