CN101427323B - 读取非易失性计算机存储器的系统和方法 - Google Patents

读取非易失性计算机存储器的系统和方法 Download PDF

Info

Publication number
CN101427323B
CN101427323B CN2005800175679A CN200580017567A CN101427323B CN 101427323 B CN101427323 B CN 101427323B CN 2005800175679 A CN2005800175679 A CN 2005800175679A CN 200580017567 A CN200580017567 A CN 200580017567A CN 101427323 B CN101427323 B CN 101427323B
Authority
CN
China
Prior art keywords
data
redundant memory
memory
memory area
redundant
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
CN2005800175679A
Other languages
English (en)
Other versions
CN101427323A (zh
Inventor
D·C·贝克
G·D·阿博特
J·泽维
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.)
SigmaTel LLC
Original Assignee
SigmaTel LLC
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 SigmaTel LLC filed Critical SigmaTel LLC
Publication of CN101427323A publication Critical patent/CN101427323A/zh
Application granted granted Critical
Publication of CN101427323B publication Critical patent/CN101427323B/zh
Expired - Fee Related 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

本公开涉及一种读取非易失性计算机存储器的一部分的方法,该方法包括读取非易失性计算机存储器的数据扇区的冗余存储区的第一部分。冗余存储区的第一部分包括与数据扇区相关联的数据。冗余存储区的第一部分包括循环冗余校验码。

Description

读取非易失性计算机存储器的系统和方法
技术领域
本公开一般涉及用于读取非易失性计算机存储器的系统和方法。
背景技术
用户对像个人数字助理(PDA)、MP3播放器、便携式存储系统、增强型手机(cell phone)系统、以及照相机这样一类的便携式设备的需求日益增加。传统的非易失性储存器存储系统(例如软磁盘、硬盘驱动器、以及光驱动)一般不适合在便携式设备中使用,原因在于它们遭受机械故障、超重、大尺寸以及高能量消耗。结果,便携式设备的制造致力于固态存储系统,例如闪存以及电可擦除可编程只读存储器(EEPROM)。
在固态存储设备(例如闪存)上对数据的存取以及存储利用虚拟化的地址。固态存储设备易于随着使用而耗损,并且同样,固态存储设备内部的扇区可能失去存储无误差数据的能力。为了减少固态存储设备耗损的问题,微控制器通常会平衡存储器扇区之间的使用。例如,当数据被提供给闪存设备时,该数据可以被存储在第一扇区,并且当数据被更新时,微控制器可以将数据存储在第二扇区,从而减少了第一扇区的耗损。因此,数据块的物理位置可能变化。为了促进这种平衡且为了寻址变化的物理地址,微控制器通常生成一种列表,该列表被用来把由计算系统使用的基于位置的地址转换为闪存设备内部所使用的虚拟地址。通过这种方式,系统可以利用基于相同位置的地址来寻址一组数据,同时微控制器可以根据平衡协议将该信息存储在闪存的变化扇区内或者闪存内部的不同地址上。当扇区在闪存设备内部是坏的时,微控制器可以生成坏数据扇区的映射以阻止数据存储在这种坏数据扇区内。
典型地通过读取数据扇区和校验系统数据内特定的代码值来进行坏扇区的编目以及扇区映射的生成。一般,与数据扇区的所有数据有关的ECC被包含在用于纠正和校验数据中的噪声的数据扇区内。例如,当存储数据时基于数据来计算ECC并随数据一起存储。当存取数据时,从数据中计算新的ECC并与随数据一起被存储的ECC进行比较。如果新的ECC和所存储的ECC之间存在差别,则数据很可能被破坏并且扇区可能是坏的。在许多例子中,ECC可以被用来在传输给随后的存储系统或处理器之前纠正数据。
这种检错、纠错、以及坏数据块的编目对于多级单元闪存变得愈发重要。多级单元(MLC)闪存比传统的单级单元闪存具有更大的存储密度。但是,多级单元闪存典型地具有更高的差错率且可能耗损更快。同样,纠错以及扇区编目对于非易失性固态存储设备而言越来越有用。
但是,读取数据、计算ECC以及纠正受破坏的数据的过程是漫长的过程。同样,执行任务(例如映射数据扇区)消耗系统资源。在一个例子中,映射任务可能降低所连接的存储器总线的性能。同样,需要用于读取非易失性存储器的改进的系统和方法。
附图说明
图1是示出示例性存储系统的框图。
图2是示出示例性存储器的框图。
图3、4和5是示出象在图1中所示的存储系统这样一类存储系统使用的示例性方法的流程图。
具体实施方式
在特定的实施例中,本公开涉及具有处理器和非易失性存储设备的存储系统。非易失性存储设备被配置用于存储具有数据扇区或页面的数据块。数据的每个扇区或页面都包括用户数据区和冗余存储区。每个冗余存储区都包括具有循环冗余校验码(CRC)的第一部分以及具有纠错码(ECC)的第二部分。当生成闪存映射时,系统可以读取每个冗余存储区的第一部分并利用有关的循环冗余校验码(CRC)来校验差错。如果发现冗余部分的数据出错,系统可以利用在冗余存储区或整个数据扇区上所存储的ECC码来执行数据纠正。
例如,冗余存储区的第一部分可以包括系统数据和对数据块编目有用的数据,例如一个或多个重写标记、逻辑地址数据、格式预定数据、安全码、数据管理标记、以及识别扇区内数据类别的标记。在一个示范性实施例中,系统扫描所有块内的所有数据扇区或特定扇区的第一部分来校验块/扇区状态以建立好的或坏的扇区或块的列表。在另一例子中,系统扫描一组用于逻辑地址信息的扇区来建立逻辑到物理的地址映射。在另一的例子中,系统扫描扇区来搜索特定的标记。在另一例子中,系统在允许扇区被复制到另一个存储器(即,副本保护)之前校验安全码。例如,CRC代码可以与第一部分一起被包括以有助于测试第一部分来确定标记或数据中是否具有差错或噪声。
在一示范性实施例中,本公开涉及一种读取非易失性计算机存储器的一部分的方法,其包括读取与非易失性计算机存储器的数据扇区相关联的冗余存储区的第一部分。冗余存储区的第一部分包括与数据扇区相关联的数据。冗余存储区的第一部分包括循环冗余校验码。
在另一示范性实施例中,本公开涉及一种读取非易失性计算机存储器的方法。该方法包括读取非易失性计算机存储器的第一数据扇区的第一冗余存储区的第一部分,以及读取第二冗余存储区的第一部分。该第一冗余存储区包括与第一数据扇区相关联的数据。该第一冗余存储区的第一部分包括与第一冗余存储区的第一部分相关联的第一循环冗余校验码。该方法也包括读取非易失性计算机存储器的第二数据扇区的第二冗余存储区的第一部分。该第二冗余存储区包括与第二数据扇区相关联的数据。该第二冗余存储区的第一部分包括第二循环冗余校验码。
在另一示范性实施例中,本公开涉及一种非易失性计算机存储设备,其包括具有第一用户数据和第一冗余存储器的第一存储元件。该第一冗余存储器包括第一部分和第二部分。该第一冗余存储器的第一部分包括第一循环冗余校验码,且该第一冗余存储器的第二部分包括第一纠错码。该非易失性计算机存储设备也包括具有第二用户数据和第二冗余存储器的第二存储元件。该第二冗余存储器包括第一部分和第二部分。该第二冗余存储器的第一部分包括第二循环冗余校验码,且该第二冗余存储器的第二部分包括第二纠错码。
在另一示范性实施例中,本公开涉及一种具有处理器、可存取处理器的动态存储器和可存取处理器的非易失性存储器的系统。该非易失性存储器包括具有第一用户数据和第一冗余存储器的第一存储元件。该第一冗余存储器包括第一部分和第二部分。该第一冗余存储器的第一部分包括第一循环冗余校验码,且该第一冗余存储器的第二部分包括第一纠错码。该非易失性存储器也包括具有第二用户数据和第二冗余存储器的第二存储元件。该第二冗余存储器包括第一部分和第二部分。该第二冗余存储器的第一部分包括第二循环冗余校验码,且该第二冗余存储器的第二部分包括第二纠错码。
图1示出了示范性的存储系统100。该示范性的存储系统100包括处理器102和非易失性存储设备106(例如闪存)。闪存的示范性实施例包括单级单元闪存以及多级单元闪存。处理器102可以被连接到动态存储器,例如随机存取存储器(RAM)104,其可以存储闪存映射140、坏块数据150、CRC估计程序160、以及可选地存储ECC程序。闪存映射140、坏块数据150、和CRC估计程序160可以被存储在RAM 104中或可以合并到处理器102中。
存储设备106被配置用于存储数据块,所述数据块包括页面或扇区,例如示出的扇区108、110和112。数据的每个扇区(例如108、110和112)都具有用户数据区(120、124和128)以及冗余存储区(122、126和130)。在一个示范性实施例中,用户数据区(120、124和128)包括用户数据并且冗余存储区(122、126和130)包括系统数据。当处理器102正生成闪存映射140时,处理器可以存取冗余存储器的第一部分并且利用CRC估计程序160来确定冗余存储器的第一部分内部是否存在差错。如果不存在差错,处理器可以继续估计存储器随后的块。如果存在差错,处理器可以存取冗余存储器的包括ECC代码的第二部分,并执行ECC校验,或者在冗余存储器或整个数据扇区上执行纠错。
在一个示范性实施例中,动态存储器包括指令和逻辑来执行CRC和ECC操作,并且执行用于映射以及对存储块进行编目的映射和编目操作。例如,动态存储器可以包括逻辑以及可由处理器操作的指令来执行CRC操作,比较ECC代码,或利用ECC码执行纠错。在另一个例子中,系统可以存储识别所使用的块的数据,例如地址换算表。在另一个例子中,动态存储器包括可由处理器执行的映射程序逻辑来产生表示非易失性存储器的区域的映射的数据。响应于读取第一冗余存储区的第一部分而不是读取数据扇区来产生该映射。
图2描述了一种示范性存储设备,其包含非易失性存储器的数据的两种代表性的扇区或页面。数据的第一扇区包括第一用户数据区120和冗余存储区122。冗余存储区122被进一步分成第一部分202和第二部分204。第一部分202包括第一CRC代码220和其他的冗余数据222。第二部分204包括第一纠错码(ECC)224。类似地,第二扇区包括第二用户数据区124和第二冗余存储区126。第二冗余存储区126被进一步分成第一部分212和第二部分214。第一部分212包括第二CRC代码230和其他的冗余数据232。第二部分214可以包括纠错码(ECC)206和其他的冗余数据234。通常,其他的冗余数据区(222,232,和234)可以包括系统数据和对编目数据块有用的数据,例如重写标记、逻辑地址数据、格式预定数据、安全码、数据管理标记、以及识别扇区中数据类别的标记。在一个示范性实施例中,重写标记包括指示块状态、页面状态、和更新状态的标记。在一个特定的实施例中,CRC代码220和230与重写标记并且尤其与块状态、页面状态、以及更新状态标记有关。例如,CRC代码(220和230)可以被用来校验重写标记、诸如块状态、页面状态、以及更新状态标记中的噪声或差错。
当估计扇区差错时,系统可以读取冗余存储器的第一部分,例如第一部分202。系统可以估计与第一部分202有关的第一CRC代码220来确定是否存在差错。一检测到差错,系统就可以存取第一冗余存储器122的第二部分204来获得第一纠错码(ECC)224并在包括第一用户数据区120的整个数据块上执行ECC操作,例如ECC校验或纠错。
为了生成存储设备的映射,系统可以读取非易失性存储器的被选部分。在一个示范性实施例中,存储设备是闪存设备,例如多级单元闪存设备。图3是说明用于读取非易失性存储器的被选部分的示范性方法的流程图。方法300包括读取非易失性计算机存储器的页面或扇区的冗余存储区的第一部分,如步骤302所示。第一部分可以包括与非易失性计算机存储器内部的数据扇区相关联的数据,例如系统数据。冗余存储区的第一部分可以包括循环冗余校验码(CRC)代码。在特定的实施例中,冗余区为16字节且冗余存储区的第一部分为7字节。在另一个示范性实施例中,用户数据区为2048字节,冗余区为64字节,以及冗余区的第一部分为28字节。冗余区也可以包括具有纠错码(ECC)的第二部分。如步骤304所示,例如通过估计与第一部分的数据有关的循环冗余校验(CRC)代码,系统确定是否检测到存储器差错。
在另一示范性实施例中,系统可以响应于检测存储器差错来执行纠错例行程序。例如,如步骤306所示,存储设备可以读取整个数据扇区,如步骤308所示,产生纠错码用于和所存储的与冗余数据的部分有关的纠错码进行比较或者在整个数据扇区上执行ECC纠正。可选地,ECC操作可以在冗余存储区上被执行。通常,用来读取冗余区的第一部分和校验CRC的时间比读取和执行整个数据扇区的ECC操作的时间要少的多。
作为这些操作的结果,系统可以产生存储器扇区布局表,如步骤310所示。存储器扇区布局表可以被存储在微处理器中或随机存取存储器(RAM)设备中。可选地,这些操作可以被用来校验安全码的值,识别具有特定标签(例如识别在扇区中所存储的数据类型的标签)的扇区,或者产生坏的或好的数据扇区或块的映射。
在一个示范性实施例中,非易失性存储器包括多个页面。在一个例子中,每个页面都包括用户数据区和冗余存储区。例如,多个页面中的第一个包括第一用户数据区和第一冗余存储区,并且多个页面中的第二个包括第二用户数据区和第二冗余存储区。在一个特定的实施例中,第一冗余存储区和第二冗余存储区包括系统数据,并且第一用户数据区和第二用户数据区包括用户数据。
如图4所示的方法包括读取非易失性计算机存储器的第一数据扇区的第一冗余存储区的第一部分,以及读取非易失性计算机存储器的第二数据扇区的第二冗余存储区的第一部分。第一冗余存储区包括与非易失性存储器内部的第一数据扇区相关联的系统数据并且第二冗余存储区包括与非易失性存储器内部的第二数据扇区相关联的系统数据。第一冗余存储区的第一部分包括与第一冗余存储区的第一部分相关联的第一循环冗余校验(CRC)码。第二冗余存储区的第一部分包括与第二冗余存储区的第一部分相关联的第二循环冗余校验码。在一个示范性实施例中,第一冗余存储区的第一部分以及第二冗余存储区的第二部分可以进一步包括逻辑地址数据、格式预定数据、和数据管理标记。
系统可以读取第一冗余存储区的第一部分,如图4的步骤402所示,并确定存储器是否有差错,如步骤404所示。例如,系统可以估计第一CRC代码来确定第一冗余存储区的第一部分是否有差错。另外,系统可以读取第二冗余存储区的第一部分,如步骤406所示,确定在第二冗余存储区中是否检测到存储器差错,如步骤408所示。
图5描述了示出用于读取非易失性存储器的附加方法的流程图。方法500包括读取非易失性计算机存储器的扇区或页面的冗余存储区的第一部分,如步骤502所示。该冗余存储区与非易失性计算机存储器内部的扇区相关联。冗余存储区的第一部分包括与冗余存储区第一部分相关联的第一纠错码(ECC),且第二部分包括与数据扇区相关联的第二纠错码(ECC)。在一个特定的实施例中,冗余存储区的第一部分包括重写标记,例如块状态、页面状态和更新状态标记。该第一ECC可被用来检测差错和噪声以及纠正重写标记中的差错和噪声。在另一个示范性实施例中,冗余存储区的第一部分包括一个或多个重写标记、管理标记、逻辑地址信息、安全码和识别扇区内数据类别的标签。第一ECC可被用来检测和纠正第一部分中的差错。
该方法进一步包括利用第一纠错码来执行检差或纠错,如步骤504所示。例如检错可以利用第一ECC在冗余存储区或其部分区域(例如在第一部分)上执行。当检测到差错状况,该第一ECC可以被用来纠正冗余存储区,或者在冗余存储区的第二部分中所存储的第二ECC被用于在数据扇区上执行检错和/或纠错,如步骤506所示。
上述主题应被认为是示范性的,而非限制性的,并且所附的权利要求旨在覆盖所有落入本发明的真实范围的这种修改、改进、及其他实施例。因此,在化法律所允许的最大程度上,本发明的范围应当由接下来的权利要求书及其等同物所允许的最宽解释来确定,并不受到前述详细说明的约束或限制。

Claims (25)

1.读取非易失性计算机存储器的一部分的方法,该方法包括:
读取非易失性计算机存储器的数据扇区的冗余存储区的第一部分,所述冗余存储区的第一部分包括与数据扇区相关联的数据;
其中,冗余存储区的第一部分包括循环冗余校验码;
估计循环冗余校验码以关于所述第一部分来检测存储器差错,其中所述循环冗余校验码校验所述冗余存储区中的重写标记,以及其中所述重写标记包括块状态标记、页面状态标记、和更新状态标记;
响应于检测到存储器差错,读取所述冗余存储区的第二部分;以及
其中所述非易失性计算机存储器包括多级单元闪存设备。
2.如权利要求1的方法,其中所述冗余存储区的第二部分包含纠错码。
3.如权利要求2的方法,进一步包括在检测存储器差错之后读取数据扇区并且响应于检测到存储器差错来执行纠错例行程序。
4.如权利要求3的方法,进一步包括在执行纠错例行程序之前从冗余存储区的第二部分读取纠错码。
5.如权利要求1的方法,进一步包括基于冗余存储区的第一部分内部所包含的所述数据来产生存储器扇区布局表。
6.如权利要求1的方法,进一步包括基于冗余存储区的第一部分内部所包含的所述数据来建立坏扇区映射。
7.如权利要求1的方法,进一步包括基于冗余存储区的第一部分内部所包含的所述数据来识别在扇区中所存储的数据类型。
8.如权利要求1的方法,进一步包括基于冗余存储区的第一部分内部所包含的所述数据来校验安全码的值。
9.如权利要求1的方法,其中冗余存储区的第一部分包括从由重写标记、逻辑地址数据、格式预定数据、安全码、数据管理标记以及识别扇区内数据类别的标签组成的组中所选择的数据。
10.如权利要求1的方法,其中所述冗余存储区为16字节,并且其中冗余存储区的第一部分为7字节。
11.如权利要求1的方法,其中所述冗余存储区为64字节,并且其中冗余存储区的第一部分为28字节。
12.如权利要求3的方法,其中用来读取冗余存储区的第一部分和估计循环冗余校验码的时间小于读取数据扇区和利用纠错码来执行纠错码操作的时间。
13.读取非易失性计算机存储器的方法,该方法包括:
读取非易失性计算机存储器的第一数据扇区的第一冗余存储区的第一部分,第一冗余存储区包括与第一数据扇区相关联的数据,第一冗余存储区的第一部分包括与第一冗余存储区的第一部分相关联的第一循环冗余校验码;
估计所述第一循环冗余校验码,以确定所述第一冗余存储区的第一部分中的重写标记中是否存在差错或噪声,其中所述重写标记包括块状态标记、页面状态标记、和更新状态标记;
读取非易失性计算机存储器的第二数据扇区的第二冗余存储区的第一部分,第二冗余存储区包括与第二数据扇区相关联的数据,第二冗余存储区的第一部分包括第二循环冗余校验码;以及
其中所述非易失性计算机存储器包括多级单元闪存设备。
14.如权利要求13的方法,其中第一冗余存储区包括第一冗余存储区的第二部分中所存储的第一纠错码,并且其中第二冗余存储区包括第二冗余存储区的第二部分中所存储的第二纠错码。
15.如权利要求14的方法,进一步包括估计第一循环冗余校验码来关于第一冗余存储区的第一部分确定是否检测到存储器差错,以及估计第二循环冗余校验码来关于第二冗余存储区的第一部分确定是否检测到存储器差错。
16.如权利要求13的方法,其中与第一数据扇区相关联的数据以及与第二数据扇区相关联的数据包括从由逻辑地址数据、格式预定数据、和数据管理标记组成的组中所选择的数据。
17.如权利要求13的方法,其中非易失性存储器包括多个块,多个块中的第一个包括第一数据扇区并且多个块中第二个包括第二数据扇区。
18.如权利要求13的方法,其中第一冗余存储区和第二冗余存储区包括系统数据,并且其中第一数据扇区和第二数据扇区进一步包括用户数据。
19.一种非易失性计算机存储设备包括:
多级单元闪存设备,其包括:
具有第一用户数据和第一冗余存储器的第一存储元件,第一冗余存储器包括第一部分和第二部分,第一冗余存储器的第一部分包括第一循环冗余校验码且第一冗余存储器的第二部分包括第一纠错码,其中所述第一循环冗余校验码与存储在第一冗余存储器的第一部分中的数据的检错相关联,其中所述第一循环冗余校验码被配置为检查所述第一冗余存储器的第一部分中的重写标记,以及其中所述重写标记包括块状态标记、页面状态标记、和更新状态标记;
具有第二用户数据和第二冗余存储器的第二存储元件,第二冗余存储器包括第一部分和第二部分,第二冗余存储器的第一部分包括第二循环冗余校验码且第二冗余存储器的第二部分包括第二纠错码。
20.如权利要求19的非易失性计算机存储设备,其中第二循环冗余校验码与第二冗余存储器的第一部分内所存储的数据的检错相关联。
21.如权利要求19的非易失性计算机存储设备,其中第一纠错码与在第一用户数据内以及第一冗余存储器内所存储的数据的纠错相关联。
22.一种具有非易失性存储器的系统,包括;
处理器;
可由处理器存取的动态存储器;以及
可由处理器存取的非易失性存储器,所述非易失性存储器包括多级单元闪存设备,所述非易失性存储器包括:
具有第一用户数据和第一冗余存储器的第一存储元件,第一冗余存储器包括第一部分和第二部分,第一冗余存储器的第一部分包括第一循环冗余校验码且第一冗余存储器的第二部分包括第一纠错码,其中所述第一循环冗余校验码能够校验所述第一冗余存储器的第一部分中的重写标记,以及其中所述重写标记包括块状态标记、页面状态标记、和更新状态标记;以及
具有第二用户数据和第二冗余存储器的第二存储元件,第二冗余存储器包括第一部分和第二部分,第二冗余存储器的第一部分包括第二循环冗余校验码且第二冗余存储器的第二部分包括第二纠错码。
23.如权利要求22的系统,其中动态存储器包括表示非易失性存储器的区域的映射的数据,非易失性存储器的区域包括第一存储元件和第二存储元件。
24.如权利要求22的系统,其中动态存储器包括可由处理器执行来估计第一循环冗余校验码以检测第一存储元件内部的差错的程序逻辑模块,并且其中动态存储器进一步包括可由处理器执行来利用第一纠错码纠正第一存储元件内部的差错的程序逻辑模块。
25.如权利要求23的系统,其中动态存储器包括可由处理器执行的映射程序逻辑模块,用于产生表示非易失性存储器的区域的映射的数据,并且其中响应于读取第一冗余存储器的第一部分以及响应于读取第二冗余存储器的第一部分、而不读取第一用户数据以及不读取第二用户数据来产生映射。
CN2005800175679A 2004-11-04 2005-09-20 读取非易失性计算机存储器的系统和方法 Expired - Fee Related CN101427323B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/981,086 2004-11-04
US10/981,086 US7409623B2 (en) 2004-11-04 2004-11-04 System and method of reading non-volatile computer memory
PCT/US2005/033571 WO2006052321A2 (en) 2004-11-04 2005-09-20 System and method of reading non-volatile computer memory

Publications (2)

Publication Number Publication Date
CN101427323A CN101427323A (zh) 2009-05-06
CN101427323B true CN101427323B (zh) 2012-04-25

Family

ID=35395191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800175679A Expired - Fee Related CN101427323B (zh) 2004-11-04 2005-09-20 读取非易失性计算机存储器的系统和方法

Country Status (6)

Country Link
US (1) US7409623B2 (zh)
KR (1) KR100873943B1 (zh)
CN (1) CN101427323B (zh)
GB (1) GB2419979B (zh)
TW (1) TWI296412B (zh)
WO (1) WO2006052321A2 (zh)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006209928A (ja) * 2005-01-31 2006-08-10 Sony Corp 光ディスク製造方法及び装置、光ディスク、並びに、光ディスク再生方法及び装置
DE102005016801B4 (de) * 2005-04-12 2018-04-26 Robert Bosch Gmbh Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
JP4734033B2 (ja) * 2005-05-30 2011-07-27 株式会社東芝 記憶装置
JP2007034858A (ja) * 2005-07-29 2007-02-08 Kyocera Mita Corp データバックアップ方法及びメモリ装置
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
US20070089023A1 (en) * 2005-09-30 2007-04-19 Sigmatel, Inc. System and method for system resource access
US7469368B2 (en) * 2005-11-29 2008-12-23 Broadcom Corporation Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101375955B1 (ko) 2006-05-12 2014-03-18 애플 인크. 메모리 디바이스 내의 왜곡 추정 및 상쇄
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US7774684B2 (en) * 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
DE102006040644A1 (de) * 2006-08-30 2008-03-13 Robert Bosch Gmbh Korrekturverfahren für einen neu-programmierbaren Mikroprozessor
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100766042B1 (ko) * 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
KR100926475B1 (ko) 2006-12-11 2009-11-12 삼성전자주식회사 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7895502B2 (en) * 2007-01-04 2011-02-22 International Business Machines Corporation Error control coding methods for memories with subline accesses
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
TWI332611B (en) * 2007-05-24 2010-11-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
JP2008310896A (ja) * 2007-06-15 2008-12-25 Spansion Llc 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
FR2933791B1 (fr) * 2008-07-08 2010-09-24 Trusted Logic Procede de verification de l'integralite d'une memoire eeprom
DE102009031310B4 (de) 2008-07-24 2019-12-19 Atmel Corp. Speichersystem, Leseverstärker, Verwendung und Verfahren zur Fehlerdetektion mittels Parity-Bits eines Blockcodes
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8423837B2 (en) * 2009-02-13 2013-04-16 Texas Instruments Incorporated High reliability and low power redundancy for memory
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8316173B2 (en) * 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
JP2010282369A (ja) * 2009-06-03 2010-12-16 Toshiba Corp メモリシステム
CN101908376B (zh) * 2009-06-04 2014-05-21 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
TWI500036B (zh) * 2009-06-17 2015-09-11 A Data Technology Co Ltd 非揮發性儲存裝置及其控制方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8369166B2 (en) * 2009-07-27 2013-02-05 Sidense Corp. Redundancy system for non-volatile memory
US9123429B2 (en) 2009-07-27 2015-09-01 Sidense Corp. Redundancy system for non-volatile memory
US8495465B1 (en) * 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
KR101139187B1 (ko) * 2009-12-28 2012-04-26 (주)인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
KR101654807B1 (ko) 2010-05-07 2016-09-07 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR20120126389A (ko) * 2011-05-11 2012-11-21 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온칩 버퍼 프로그램 방법
JP5764392B2 (ja) * 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
US8874935B2 (en) * 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
TWI473103B (zh) * 2011-09-14 2015-02-11 威剛科技股份有限公司 快閃記憶體儲存裝置及其不良儲存區域的判定方法
US8875003B1 (en) * 2011-12-22 2014-10-28 Landis+Gyr Technologies, Llc Interleaved data communications via power line
CN102541676B (zh) * 2011-12-22 2014-03-05 福建新大陆通信科技股份有限公司 一种nand flash的状态检测及映射方法
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
CN102708927A (zh) * 2012-05-09 2012-10-03 上海宏力半导体制造有限公司 提高存储器可靠性的方法以及闪存操作方法
US8910017B2 (en) * 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
US9021334B2 (en) * 2013-05-01 2015-04-28 Apple Inc. Calculation of analog memory cell readout parameters using code words stored over multiple memory dies
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US10248497B2 (en) * 2014-10-22 2019-04-02 Advanced Micro Devices, Inc. Error detection and correction utilizing locally stored parity information
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
CN104407928A (zh) * 2014-11-18 2015-03-11 杭州华为企业通信技术有限公司 一种数据传输方法及装置
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
TWI571742B (zh) * 2015-10-07 2017-02-21 慧榮科技股份有限公司 資料儲存裝置及資料維護方法
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
CN109410870A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 时序控制电路、数据读取方法及显示装置
CN109410869A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 一种数据的读取方法、读取装置及显示装置
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120826A1 (en) * 2001-02-23 2002-08-29 Siva Venkatraman Method and apparatus for reconfigurable memory
US20040193786A1 (en) * 2002-08-29 2004-09-30 Yoshihisa Inagaki Semiconductor memory device and method for writing data into flash memory

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324120B2 (en) * 1990-04-18 2001-11-27 Rambus Inc. Memory device having a variable data output length
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US6781895B1 (en) 1991-12-19 2004-08-24 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and memory system using the same
US5740395A (en) 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
JPH0713705A (ja) * 1993-06-16 1995-01-17 Hitachi Ltd ディスク装置
US5875477A (en) * 1995-12-22 1999-02-23 Intel Corporation Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5653833A (en) * 1996-07-25 1997-08-05 Memtec America Corporation Method for integrally joining preformed thermoplastic core elements especially adapted for the continuous manufacture of melt-blown filter cartridges
US5754566A (en) * 1996-09-06 1998-05-19 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using interleaving
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US6237124B1 (en) 1998-03-16 2001-05-22 Actel Corporation Methods for errors checking the configuration SRAM and user assignable SRAM data in a field programmable gate array
US6397273B2 (en) * 1998-12-18 2002-05-28 Emc Corporation System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
US6487631B2 (en) * 1999-02-02 2002-11-26 Qlogic Corporation Circuit and method for monitoring sector transfers to and from storage medium
US6601140B1 (en) * 1999-04-07 2003-07-29 Sony Corporation Memory unit, data processing unit, and data processing method using memory unit type
US6820203B1 (en) * 1999-04-07 2004-11-16 Sony Corporation Security unit for use in memory card
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
JP2001175490A (ja) 1999-12-21 2001-06-29 Nec Corp データ転送方式
JP2004501466A (ja) 2000-06-22 2004-01-15 マイクロチップ テクノロジー インコーポレイテッド 埋込みcrcを用いてeepromデータをチェックする方法
JP4707803B2 (ja) * 2000-07-10 2011-06-22 エルピーダメモリ株式会社 エラーレート判定方法と半導体集積回路装置
US7617352B2 (en) * 2000-12-27 2009-11-10 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
US7162668B2 (en) * 2001-04-19 2007-01-09 Micron Technology, Inc. Memory with element redundancy
ITTO20010529A1 (it) * 2001-06-01 2002-12-01 St Microelectronics Srl Metodo di controllo dell'errore in celle di memoria multilivello con numero di bit memorizzati configurabile.
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
US7047381B2 (en) * 2002-07-19 2006-05-16 Broadcom Corporation System and method for providing one-time programmable memory with fault tolerance
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7191382B2 (en) * 2003-06-02 2007-03-13 Fujitsu Limited Methods and apparatus for correcting data and error detection codes on the fly
US20050038954A1 (en) * 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7356755B2 (en) * 2003-10-16 2008-04-08 Intel Corporation Error correction for multi-level cell memory with overwrite capability
JP2007511982A (ja) * 2003-11-19 2007-05-10 ハネウェル・インターナショナル・インコーポレーテッド 隠しデータをチェックすることを用いたメッセージ・エラーの確認

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120826A1 (en) * 2001-02-23 2002-08-29 Siva Venkatraman Method and apparatus for reconfigurable memory
US20040193786A1 (en) * 2002-08-29 2004-09-30 Yoshihisa Inagaki Semiconductor memory device and method for writing data into flash memory

Also Published As

Publication number Publication date
US7409623B2 (en) 2008-08-05
KR20060051898A (ko) 2006-05-19
TWI296412B (en) 2008-05-01
WO2006052321A3 (en) 2009-04-30
GB2419979B (en) 2008-08-27
GB2419979A (en) 2006-05-10
KR100873943B1 (ko) 2008-12-12
US20060107130A1 (en) 2006-05-18
GB0520105D0 (en) 2005-11-09
TW200629283A (en) 2006-08-16
WO2006052321A2 (en) 2006-05-18
CN101427323A (zh) 2009-05-06

Similar Documents

Publication Publication Date Title
CN101427323B (zh) 读取非易失性计算机存储器的系统和方法
CN103119569B (zh) 基于存储条的非易失性多级存储器操作
CN107743617B (zh) 存储器中的带区映射
US8041883B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
US8010876B2 (en) Method of facilitating reliable access of flash memory
CN101576853B (zh) 数据存取方法、使用此方法的控制器与存储系统
WO2009117251A1 (en) Optimizing storage of common patterns in flash memory
CN101848000A (zh) 解码方法、编码方法及启动控制系统
JP2014515536A (ja) データ完全性を与えるための装置および方法
CN102077176A (zh) 存储器系统的回拷优化
JP2014515537A (ja) データ完全性を与えるための装置および方法
US20120265921A1 (en) Boot data storage schemes for electronic devices
JP2012063882A (ja) 記憶装置、電子機器及び誤りデータの訂正方法
CN101901169B (zh) 扫描装置及方法
TW201243856A (en) Methods, devices, and systems for data sensing
CN101567220B (zh) 闪存的损坏区块辨识方法、储存系统及其控制器
CN107423158B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN103530198B (zh) 数据储存装置与闪存操作方法
TW201217968A (en) Data writing method, memory controller and memory storage apparatus
US20080072119A1 (en) Allowable bit errors per sector in memory devices
CN103631670A (zh) 存储器储存装置、存储器控制器与数据处理方法
CN106227625A (zh) 一种因掉电而损坏的闪存数据的恢复方法及系统
TWI616807B (zh) 資料寫入方法以及儲存控制器
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
TWI464585B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120425

Termination date: 20140920

EXPY Termination of patent right or utility model