CN1499532A - 非易失性存储器系统内纠错码的混合实现 - Google Patents

非易失性存储器系统内纠错码的混合实现 Download PDF

Info

Publication number
CN1499532A
CN1499532A CNA2003101046432A CN200310104643A CN1499532A CN 1499532 A CN1499532 A CN 1499532A CN A2003101046432 A CNA2003101046432 A CN A2003101046432A CN 200310104643 A CN200310104643 A CN 200310104643A CN 1499532 A CN1499532 A CN 1499532A
Authority
CN
China
Prior art keywords
algorithm
data
designator
piece
encoded
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
CNA2003101046432A
Other languages
English (en)
Other versions
CN1499532B (zh
Inventor
张钦泽
B·卡瓦米
��ء�ɳϣ
F·萨比特—沙希
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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32825088&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1499532(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN1499532A publication Critical patent/CN1499532A/zh
Application granted granted Critical
Publication of CN1499532B publication Critical patent/CN1499532B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Abstract

公开了用不同纠错码算法对非易失性存储器内块的内容进行编码和解码的方法和装置。按照本发明一方面,一种用于在非易失性存储器内存储数据的方法包括识别数据要被存储于其中的第一块、以及获得与第一块相关的指示符。然后可能作出关于该指示符是否指明数据要用第一算法来编码的判决。当确定数据要用第一算法来编码时,用第一算法对数据进行编码,用第一算法编码的数据在该点后被写入第一块。

Description

说明书 非易失性存储器系统内纠错码的混合实现
本发明要求美国临时专利申请号60/421911的优先权,后者于2002年10月28日提交,通过引用被完全结合于此。
对相关申请的交叉引用
本发明关于共同待批的美国专利申请号10/281739、10/281823、10/2817824、10/281631、10/281855、10/281762、10/281696、10/281626和10/281804,以及共同待批的美国临时专利申请号60/421910、60/421725、60/421965、60/421166和60/421746,它们都于2002年10月28日提交,都通过引用被完全结合于此。
(1)技术领域
本发明一般涉及大量数字数据存储系统,尤其涉及能使算法动态切换的方法和装置,其中算法用于对要被写入非易失性存储器的块中的数据进行编码。
(2)背景技术
诸如闪存存储系统等非易失性存储器系统的使用日益增加,这是由于这种存储器系统的小型物理尺寸以及对非易失性存储器重复再次编程的能力。闪存存储系统的小型物理尺寸便于使用设备内日益普及的这种存储系统。使用闪存存储系统的设备包括、但不限于:数码相机、数码摄像机、数字音乐播放器、手持个人电脑、以及全球定位设备。对闪存存储系统内包括的非易失性存储器重复再次编程的能力使闪存存储系统能被使用和重复使用。
通常,闪存存储系统可能包括闪存卡和闪存芯片装置。闪存芯片装置一般包括闪存组件和控制器组件。一般而言,可能安排闪存芯片装置装配在嵌入式系统内。这种部件或主机系统的制造商一般要求组件形式的闪存、以及其它组件,然后把闪存及其它组件装配到主机系统内。
通常,为了确保存储在闪存物理块内数据的准确性,可能使用纠错码(ECC)算法或检错及纠错码算法来对数据进行编码以用于存储,并且对已存储的数据进行解码。一般而言,ECC算法用专用电路或软件对数据进行编码和解码。许多ECC算法或方法可能添加一或多个一致校验位,用于既检测和纠正与已存储数据相关的差错。
对用于存储的数据进行编码和解码的某些ECC算法称为1位ECC算法和2位ECC算法。1位ECC算法能够表示一组符号,使得如果表示内容内有一比特不正确,如被翻转,则符号仍能被正确地识别,而如果两比特不正确,如被翻转,则符号还是能被纠正。2位ECC算法能够显示一组符号,使得如果显示内容的两比特被翻转或不正确,则这两比特会被纠正,而如果多于两比特被翻转,则仍能正确地识别符号。
通常,2位ECC算法的使用可能优于1位ECC算法,这是由于2位ECC算法可能检测多于两个错误比特并纠正两比特,而1位ECC仅能检测两个错误比特并纠正一比特。然而,虽然2位ECC算法提供了对已存储数据增加了的纠错能力,然而它的实现一般涉及更多计算,并因此比1位ECC算法的实现涉及更多计算开销。当要求更多计算开销时,非易失性存储器可能消耗更多功率,如电池功率。因此,存储器系统的总性能可能被折衷,尤其因为已被擦除相对少次数的块中所存储的数据的完整性一般相对较高。
为了减少与实现2位ECC算法相关的计算和功率要求,某些系统可能使用1位ECC算法来对数据进行编码和解码。然而,1位ECC算法通常比2位ECC算法不准确。而且,对于数据在其使用寿命结束附近存入其中的块而言,存储在这种块内的数据更可能包含差错。这样,当使用1位ECC算法对存储在已被擦除相对多次数的块内的数据进行编码并对这种数据进行解码时,数据完整性可能被损害,并且可能损害与这些块相关的性能。
因此,需要一种方法和装置,它能改进已被擦除相对多次数的块的性能,而不要求在对存储在已被擦除相对少次数的块内的数据编码和解码时相对高的计算开销和性能恶化。即,所需要的是一种方法和装置,它允许用不同的ECC算法对块的内容进行编码,而ECC算法可能根据块已被擦除的次数来选择。
(3)发明内容
本发明涉及用不同的纠错码算法对非易失性存储器内块的内容进行编码和解码的系统和方法。按照本发明一方面,用于在非易失性存储器内存储数据的一种方法包括识别数据要被存储其中的第一块、并且获得与第一块相关的指示符。然后作出关于该指示符是否指明了数据要用第一算法来编码的判决。当确定数据要用第一算法来编码时,用第一算法对数据进行编码,用第一算法编码的数据在该点后被写入第一块。
在一实施例中,该方法还包括在确定不用第一算法对数据编码时用第二算法对数据进行编码,并且把用第二算法编码的数据写入第一块。在这种实施例中,第一算法可能是1位纠错码(ECC)算法,而第二算法可能是2位ECC算法。
通过允许根据块与块的不同而用不同的ECC算法对存储在非易失性存储器系统的块内的数据进行编码,存储器系统内的某些块可能用1位ECC算法来编码,而其它块可能用2位ECC算法来编码。1位ECC算法(即较低计算强度的算法)用于对要被存储到尚未经过相对多次擦除操作的块中的数据进行编码,而2位ECC算法(即较高计算强度的算法)用于对要被存储到已经过相对多次擦除操作的块中的数据进行编码。由于2位ECC算法一般比1位ECC算法能更准确地对数据进行编码和解码,因此用2位ECC算法对要被存储到接近于其可用性尽头的块中的数据进行编码能使与块相关的性能得到改进。当块未在其可用性尽头时未使用1位ECC算法时,存储并从这种块中读取数据所需的计算次数可能减少,从而能够改进读和写过程的总速度并且降低与存储器系统相关的功率要求。
按照本发明另一方面,在存储器系统的非易失性存储器内读取数据的一种方法包括识别要从中读取数据的第一块、获得与第一块相关的指示符、以及确定指示符何时指明已经用第一算法对存储在第一块中的数据进行编码。该方法还包括在确定已经用第一算法对数据进行编码时用第一算法对数据进行解码。在一实施例中,该方法还包括在确定尚未用第一算法对数据进行编码时用第二算法对数据进行解码。
在另一实施例中,指示符用于指明块在何时为回收块。当块为回收块时,指示符还用于指明已经用第二算法对数据进行编码。在还有一实施例中,指示符用于指明块已被擦除的次数。在这种实施例中,确定指示符何时指明已经用第一算法对数据进行编码可能还包括:确定指示符何时低于一阈值。当指示符低于阈值时,意味着已经用第一算法对数据进行编码。
按照本发明还有一方面,存储器系统包括非易失性存储器,它包括第一块和第二块。第一块包括用第一算法编码的第一组内容,而第二块包括用第二算法编码的第二组内容。非易失性存储器还包括数据结构,如擦除计数块,它用于指示已经用第一算法对第一组内容进行编码并且已经用第二算法对第二组内容进行编码。存储器系统还包括用于存取数据结构的编码装置。这种编码装置包括:确定已经用第一算法对第一组内容进行编码的编码装置;以及确定已经用第二算法对第二组内容进行编码的编码装置。
从阅读下面详细描述并研究附图各图,本发明的这些及其它优点将变得更显而易见。
(4)附图说明
通过结合附图参考下列描述可以最好地理解本发明,附图中:
图1a是包括非易失性存储器的通用主机系统的图解表示。
图1b是存储器装置的图解表示,如图1a的存储器装置120。
图1c是包括嵌入式非易失性存储器的主机系统的图解表示。
图2a是说明了按照本发明实施例或用1位或用2位ECC把用户数据写入块中的方法流程图。
图2b是说明了按照本发明实施例从系统内块中读取内容的方法流程图,其中或用1位ECC算法或用2位ECC算法对内容进行编码。
图3是说明按照本发明实施例初始化存储器系统的方法流程图,其中用混合ECC实现对块内容进行编码。
图4a是按照本发明实施例再生不可用块的过程的图解框图表示。
图4b是按照本发明实施例的一部分擦除计数块的图解表示。
图5a是按照本发明实施例说明向系统内块中写入的方法流程图,其中可能有回收块,并且可能或用1位ECC算法或用2位ECC算法对数据进行编码。
图5b是按照本发明实施例说明从块中读取内容的方法流程图,其中块可能是回收块并且可能带有或用1位ECC算法或用2位ECC算法编码的内容。
图6是按照本发明实施例说明用包括回收块的混合ECC实现初始化存储器系统的方法流程图。
图7是按照本发明实施例的系统结构的图解框图表示。
(5)具体实施方式
诸如1位ECC算法或2位ECC算法这样的纠错码(ECC)通常用于对要被存储到非易失性存储器的物理块内的数据进行编码,并且对已存储数据进行解码。ECC算法的使用一般能够改进物理块内存储的数据准确性。较高计算强度的2位ECC算法的使用可能由于较低计算强度的1位ECC算法,由于2位ECC算法能比1位ECC算法纠正更多的差错比特。然而,虽然2位ECC算法提供了增加的纠错能力,然而就计算次数和功率要求而言,它的实现比1位ECC算法昂贵。
在许多情况下,当要存储数据的块比较新并因此未遭受较多擦除周期时,1位ECC算法可能足以确保大量数据的完整性。这样,2位ECC算法的实现可能不必要。然而,随着块渐渐变老并且遭受了相对多次擦除周期后,1位ECC算法可能不足以确保期望级别的数据完整性,而2位ECC算法的使用可能大大改进了数据的完整性。
混合ECC实现能够用ECC算法对要动态切换的数据进行编码和解码。特别是在一实施例中,已经历了相对少擦除周期的块中所存储的数据可能用较低计算强度且较不准确的算法来编码,如1位ECC算法,而已经历了相对多次擦除周期的块中所存储的数据可能用较高计算强度且较准确的算法来编码,如2位ECC算法。通过动态地确定何时用如2位ECC算法而非“缺省”算法(如,如1位ECC算法这样的较不准确的算法)这样的较准确算法对数据进行编码,为对存储在特定块内的数据进行编码所选的算法可能根据特定块的特性而选择,而在较准确的算法会提供实质好处时它可能被有效地使用。例如,如果块接近于其计划使用寿命的尽头,则用2位ECC算法对要被存储到该块中的数据进行编码可能改进存储在块内的数据的准确性和完整性,并且可能还允许潜在地延长块的使用寿命。而且,通过用较低计算强度的算法对要被存储到不接近于其使用寿命尽头的块中的数据进行编码,可能降低总存储器系统的功率要求,从而改进总存储器系统的耐久性。
在一实施例中,阈值擦除计数或阈值擦除周期数可能被用作指示符,指明是用较低计算强度且较不准确的ECC算法还是用较高计算强度且较准确的ECC算法对要被写入块中的数据进行编码。当块所经历的擦除周期次数的比较指明块所经历的擦除周期大于阈值次数时,则可能使用较准确的ECC算法,因为块可能被视作接近于其使用寿命的尽头。
闪存系统,尤其是可能使用允许用不同ECC算法对系统内的块编码的混合ECC实现的非易失性存储器装置,一般包括闪存,如NAND或MLC NAND、卡和芯片组。一般而言,闪存系统与主机系统结合使用,使得主机系统可能把数据接入闪存系统或从中读取数据。然而,某些闪存系统包括嵌入式闪存和软件,它在主机上执行,实质上充当嵌入式闪存的控制器,下面将参考图1进行讨论。参考图1a,将讨论包括如小型闪存卡等非易失性存储器装置的通用主机系统。主机或计算机系统100一般包括系统总线104,它允许微处理器108、随机存取存储器(RAM)112和输入/输出电路116进行通信。应该理解,主机系统100可能一般包括其它组件,如显示装置和网络装置,它们未为了说明目的而示出。
通常,主机系统100也许能够捕捉信息,包括但不限于:静态图像信息、音频信息和视频图像信息。这种信息可能实时地被捕捉,并可能以无线方式被发射到主机系统100。虽然主机系统100可能实质上是任何系统,然而主机系统100一般是诸如数码相机、摄像机、蜂窝通信装置、音频播放器或视频播放器这样的系统。然而应该理解,主机系统100一般实质上是存储数据或信息并且检取数据或信息的任何系统。
主机系统100可能是或仅捕捉数据、或仅检取数据的系统。即,在一实施例中,主机系统100可能是存储数据的专用系统,或主机系统100可能是读取数据的专用系统。通过示例,主机系统100可能是存储器记录器,它仅用于写入或存储数据。或者,主机系统100可能是诸如MP3播放器这样的装置,它一般用于读取或检取数据,而不捕捉数据。
在一实施例中,非易失性存储器装置120是可移动的非易失性存储器装置,它用于与总线104接口以存储信息。任选的接口块130可能允许非易失性存储器装置120间接地与总线104相接。如本领域技术人员所能理解的,现行的输入/输出电路块116用来减少总线104上的负载。非易失性存储器装置120包括非易失性存储器124和任选的存储器控制系统128。在一实施例中,非易失性存储器装置20可能在单芯片或一个晶片上实现。非易失性存储装置20可能在多芯片模块上实现或者可能形成芯片组的多个离散组件可能在一起被用作非易失性存储器装置120。下面将参考图1b更详细的描述非易失性存储器装置120的一实施例。
非易失性存储器124,例如像NAND闪存或MLC NAND闪存这样的闪存,用于存储数据,使得可能根据需要被访问并读取数据。存储在非易失性存储器124内的数据也可能被适当擦除,尽管应该理解,非易失性存储器124内的某些数据可能是不可擦除的。存储数据、读取数据以及擦除数据的过程一般有存储器控制系统128所控制,或者当没有存储器控制系统128时由微处理器108所执行的软件来控制。可能管理非易失性存储器124的操作,使得非易失性存储器124的寿命实质上通过基本上使非易失性存储器124的扇区相等地损耗而最大化。
非易失性存储器装置120已经被描述为包括任选的存储器控制系统128,即控制器。通常,非易失性存储器装置120可能为非易失性存储器124和存储器控制系统128包括独立的芯片,即,控制器、功能。通过示例,虽然非易失性存储器装置包括但不限于PC卡、小型闪存卡、多媒体卡,且安全数字卡包括可以在独立芯片上实现的控制器,然而其它非易失性存储器装置可能不包括在独立芯片上实现的控制器。在非易失性存储器装置120不包括独立存储器和控制器芯片的实施例中,存储器和控制器功能可能被集成到单一芯片上,这是本领域技术人员所能理解的。或者,可能由微处理器108提供存储器控制系统128的功能,例如在上述非易失性存储器装置120不包括存储器控制器128的实施例中。
参考图1b,将按照本发明实施例更详细地讨论非易失性存储器装置120。如上所述,非易失性存储器装置120包括非易失性存储器124并可能包括存储器控制系统128。存储器124和控制系统128(即控制器)可能是非易失性存储器装置120的主要组件,尽管当存储器124是诸如嵌入式MLC NAND存储器这样的嵌入式NAND装置时,例如,非易失性存储器装置120可能不包括控制系统128。存储器124可能是在半导体衬底上形成的存储器单元阵,其中通过把两个或多个电荷电平之一存储在存储器单元的单独存储元件上而把一个或多个数据比特存储在单独的存储器单元中。非易失性快闪电气可擦除可编程只读存储器(EEPROM)是这种系统的通用存储器类型的一例。
当存在时,控制系统128在总线15上与用存储器系统存储数据的主机计算机或其它系统进行通信。总线15一般是图1a的总线104的一部分。控制系统128还控制存储器124的操作,存储器124可能包括存储器单元阵11,用于写入由主机所提供的数据、读取由主机所请求的数据、并且执行工作中存储器124内的各种内务处理功能。控制系统128一般包括通用微处理器,它具有相关的非易失性软件存储器、各种逻辑电路、等等。通常还包括一个或多个状态机,用于控制特定例程的性能。
存储器单元阵11一般由控制系统128或微处理器108通过地址解码器17来定址。为了把数据编程到由控制系统128定址的一组存储器单元中,或从中读取数据、或擦除它们,解码器17把正确的电压应用于阵11的门和位线。附加电路19包括编程驱动器,它控制应用于阵元件的电压,阵元件取决于被编程到已定址单元组内的数据。电路19还包括传感放大器以及从已定址存储器单元组中读取数据所必须的其它电路。要被编程到阵11中的数据、或者最近从阵11中读取的数据,一般存储在控制系统128内的缓冲存储器21中。控制系统128通常还包含各种寄存器,用于暂时存储命令和状态数据等。
阵11被分成大量的块O-N存储器单元。通常对于快闪EEPROM系统而言,块一般是擦除的最小单元。即,每块都包含一起被擦除的最小量存储器单元。每块一般都被分成许多页面。本领域的技术人员可以理解,一页面可能是编程的最小单元。即,基本编程操作把数据写入最少一页存储单元中,或从中读取数据。数据的一个或多个扇区一般存储在每一页面内。如图1b所示,一个扇区包括用户数据和开销数据。开销数据一般包括已经从扇区的用户数据中计算出的ECC。控制系统128的一部分23在数据被编程到阵11中时计算ECC,而且还检查从阵11中读取数据时的ECG。或者,ECC被存储在与它们所属的用户数据不同的页面、或不同的块内。
用户数据的扇区一般为512字节,对应于磁盘驱动器内扇区的尺寸。开销数据(即冗余数据)一般为附加的16字节。数据的一扇区最常被包括在每一页面内,但可能由两个或多个扇区形成一页面。任意数量的页面可能形成一块。通过示例,可能由八页到512、1024或更多页形成一块。选择块的数量为存储器系统提供期望的数据存储容量。阵11一般被分成几个子阵(未示出),每个都包含一定比例的块,它们彼此稍微独立地工作,以便增加执行各种存储器操作时的平行程度。多个子阵的使用示例已在美国专利号5890192中描述,该专利通过引用被结合于此。
在一实施例中,诸如MLC NAND存储器这样的非易失性存储器被嵌入一系统,如,主机系统。图1c是包括嵌入式非易失性存储器的主机系统的图解表示。主机或计算机系统150一般包括系统总线154,它允许微处理器158、RAM 162和输入/输出电路166与主机系统150的其它组件(未示出)一起通信。如闪存这样的非易失性存储器174使信息能被存储在主机系统150中。可能在非易失性存储器174和总线154间提供接口180以允许从非易失性存储器174中读取信息并将其写入其中。
非易失性存储器174可能由微处理器158管理,后者有效地执行用于控制非易失性存储器174的软件或固件中的任一或两者。即,微处理器158可能充当运行编码装置(即,软件编码装置或固件编码装置)的控制器,这些编码装置能够控制非易失性存储器174。下面将描述的这种编码装置也许能定址非易失性存储器174内的物理块,并且能把信息存储的物理块中,或从中读取以及擦除信息。
在使用混合ECC实现的存储器系统中,在数据可能被写入块内之前,一般获得与块相关的数据并对其研究以确定适当的ECC算法,用来对要被写入块内的数据进行编码。参考图2a,将按照本发明实施例描述或用1位或用2位ECC把用户数据写入块内的步骤。写入数据的过程200在步骤204开始,其中识别要被写入的块。该块可能是未使用的块,如从备用块池中获得的块,或该快可能是当前在使用中并且用于接收附加内容的块。一旦识别了该块,就在步骤208中从擦除计数块中读取块的擦除计数。如待批美国专利申请号10/281626中所述的擦除计数块是存储在非易失性存储器中的数据结构,它包含实质上与非易失性存储器内所有可用块相关的擦除计数。擦除计数一般指明了给定块已被擦除的次数,因而提供了对块寿命的指示。
在读取了块的擦除计数之后,在步骤212中确定该擦除计数是否低于阈值擦除计数。阈值擦除计数可能是由非易失性存储器系统的用户所指定的擦除计数,或者该阈值擦除计数可能是一系统参数。阈值擦除计数的值可能广泛地改变。通过示例,在块已被擦除10000次后不再能使用的实施例中,阈值擦除计数可能被设为约9500和约9800间的一值。更明确地说,阈值擦除计数可能被设为比用于确定块寿命的擦除计数低约二个百分点到约五个百分点间的一值。
如果在步骤212中确定块的擦除计数低于阈值擦除计数,则指明了要被存储的块中的内容(如用户数据)要用1位ECC算法来编码。因而,在步骤224中,用1位ECG算法对要被存储到块中的内容进行编码。一旦内容已被编码,则已编码内容在步骤228中被写入块中,并且完成把内容写入块中的过程。
返回步骤212,如果确定擦除计数不低于阈值擦除计数,则指明了块正接近于其使用寿命尽头。这样,在步骤216中用2位ECC算法对要被存储到块中的数据进行编码。在块内容已被编码后,在步骤220中,已编码内容被写入块中,并且完成把内容写入块中的过程。
当存储器系统内块的内容(即,物理块)可能或用1位或用2位ECC算法来编码时,在内容被准确地解码之前,作出关于使用哪个ECC算法对内容进行编码的判决。换言之,读取块内容的过程一般包括识别内容使用1位ECC算法还是用2位ECC算法来编码的。图2b是说明按照本发明实施例从系统内的块中读取内容的方法流程图,其中内容可能或用1位ECC算法或用2位ECC算法来编码。从块中读取内容的过程240从步骤244开始,其中识别要被读取的块。该块一般可以从当前在使用中(即,当前用于存储信息)的块池中获得。在识别了该块之后,在步骤248中在擦除计数块内识别对应于该块的表项。一般而言,擦除计数块内块的表项包括块的擦除计数。
在步骤252中,确定块的擦除计数是否低于擦除计数阈值,即确定要用1位ECC算法还是2位ECC算法对块内容进行编码的阈值。如果确定块的擦除计数低于该阈值,则在步骤256中用1位ECC算法对块内数据进行解码。一旦用1位ECC算法对数据进行解码,就完成了从块中读取内容的过程。或者,如果在步骤252中确定擦除计数不低于阈值,则指明了数据使用2位ECC算法编码的。因而,在步骤260中,块内的数据用2位ECC算法来解码。在数据已解码之后,完成从块中读取数据的过程。
在存储器系统的操作过程期间,为了延长存储器系统的非易失性存储器的寿命,可能识别静态块,即极少被更新或被擦除的块。这种静态块可能被标识为不可能被更新,因而,这种静态块的内容可能被复制到具有相对高擦除计数的块中。通过把静态块的内容复制到具有相对高擦除计数的块中,可能有效地重复利用静态块。而且,把静态块的内容存储到具有相对高擦除计数的块中可能证明是对具有相对高擦除计数的块的有效使用,这是由于内容不可能被更新或被擦除,从而延长了具有相对高擦除计数的块的寿命。静态块与具有相对高擦除计数的块的交换在待批美国专利申请号10/281739中已作讨论。
通常,可能在初始化存储器系统时进行静态块与具有相对高擦除次数的块的交换,例如当存储器系统在已经被断电后又被接通时。参考图3,将按照本发明实施例描述存储器系统的初始化过程,其中可能或用1位ECC算法或用2位ECC算法对块的内容进行编码。初始化存储器系统的过程300包括在步骤304中识别静态块。识别静态块可能一般包括识别实际上目前未被有效使用的块。一旦识别了静态块,就在步骤308中识别具有相对高擦除计数的未使用块。一般而言,识别具有相对高擦除计数的未使用块包括识别一组未使用块,它们具有与存储器系统的非易失性存储器相关的所有未使用块的最高擦除计数。
在识别了具有相对高擦除计数的未使用块之后,在步骤312中确定与非易失性存储器的块相关的平均擦除计数是否大于擦除计数阈值。平均擦除计数指明了非易失性存储器内未使用块已被擦除的平均次数,它在待批美国专利申请号10/281823中已作讨论。如果确定平均擦除计数不大于擦除计数阈值,则指明了可能用1位ECC算法对静态块的内容编码,用于存储到具有相对高擦除计数的未使用块中。这样,过程进行到步骤328,其中静态块的内容被解码。应该理解,与从静态块的解码和读取相关的步骤可能是上面参考图2b描述的步骤。
在对静态块的内容进行解码后,已解码内容在步骤332中用1位ECC算法来编码。然后在步骤336中,已编码内容被复制或被存储到具有相对高擦除计数的未使用块中,并且完成初始化存储器系统的过程。
返回步骤312,如果确定平均擦除计数大于擦除计数阈值,则指明了具有相对高擦除计数的未使用块都可能具有大于擦除计数阈值的擦除计数。这样,过程从步骤312进行到步骤316,在步骤316中,静态块的内容根据需要或用1位ECC算法或用2位ECC算法来解码。一旦静态块的内容被解码,则在步骤320中用2位ECC算法对内容进行编码。在内容被编码之后,内容在步骤324中被复制或被存储到具有相对高擦除计数的块中,并且完成初始化存储器系统的过程。
在本发明一实施例中,可能使用回收块。即先前被视作不可用块的块可能在严格测试过程后被回收使用,特别是在备用、可使用块的池不足够的情况下。对被标识为不可用块的管理以及对被标识为不可用块的回收在待批美国临时专利申请号60/421965中已作讨论。严格测试过程可能包括:通过用2位ECC算法把测试内容写入块并且用2位ECC算法从块中读出测试内容,从而测试已被标识为具有增长缺陷的块,即以前可用但不再被视为可用的块。如果被标识为具有增长缺陷的块通过严格的测试过程,则该块可能再次被视为可用。然而,如果这种块被使用,则它们一般被用2位ECC算法来读写,以改进块内所存储的内容的完整性。
图4a是按照本发明实施例回收不可用块的过程的图解框图表示。当企图回收至少某些不可用块406时,用测试器410对被标识为不可用的块406的组和池402进行测试。不可用块406可能在擦除计数块内被标识为不可用。一般而言,像块406c这样具有工厂缺陷的块未被测试用于可能的回收,由于这种块一般是不可回收的。这种块,如块406c,通常被制造商标识为不可用,并可能还包括经历过失败回收过程的块。
像块406a、406b这样具有增长缺陷的块可能经历由测试器410的测试,以确定是否至少某些这种块是可用的。如图所示,块406a被回收为块406a’。通过把块406a回收为块406a’,在所述实施例中指明了块406a’已经通过了使用2位ECC算法的编码和解码测试。
一旦已经回收了块,该块就在擦除计数块内被标识为已被回收。图4b是按照本发明实施例的一部分擦除计数块的图解表示。擦除计数块440包括表项442、444、446,它们对应于非易失性存储器内的不同物理块。在所述实施例中,尽管每个表项442、444、446内的字节数大约为三,然而与每个表项442、444、446相关的字节数可能改变。
如图所示,与表项442相关的最高有效位被设为“0”以指明块442是可用的。与表项442相关的最低有效位是与表项442相关的块的擦除计数。因此,与表项442相关的块被标识为可用,并且具有擦除计数200。一般而言,HEX值可能用于指明擦除计数,尽管为了讨论简便,用字符来示出擦除计数。应该理解,表项442内的比特一般以各种不同方式被组织,即,可能设定除最高有效位之外的一比特以指明与表项442相关的块是可用的,并且可能把除最低有效位之外的一比特设为块的擦除计数。
表项444内的最高有效位识别了对应于已被回收的表项444的块。表项444的最低有效位识别相应的块具有擦除计数9870。
如前所述,当用回收块来存储数据时,存储在回收块内的数据一般用2位ECC算法来编码以确保数据的完整性,无论回收块的擦除计数是否高于擦除计数阈值。因而,当块要被写入可能有回收块的系统中或从中被读取时,回收块被标识。接着参考图5a,将按照本发明实施例描述向系统内的块写入的一种方法,系统中可能有回收块,且数据可能或用1位ECC算法或用2位ECC算法来编码。写入数据的过程500在步骤504开始,其中标识了要被写入的块。在步骤508中从擦除计数块中读取对应于所述块的表项。一般而言,该表项包括块的擦除计数以及对块是否已被回收的指示。
一旦在步骤508中读取了对应于块的表项,就在步骤512中确定该块是否是一回收块。如果确定该块是一回收块,则在步骤516中用2位ECC算法对要被写入或存储在块中的内容进行编码。在内容被编码之后,已编码内容在步骤520中被写入块中,并且完成把内容写入块中的过程。
返回步骤512,如果确定块不是回收块,则流程移动到步骤524,在其中确定块的擦除计数是否低于阈值擦除计数,其中块的擦除计数可能在步骤508中从擦除计数块中读取。当确定块的擦除计数不低于阈值擦除计数时,就指明了要用2位ECC算法对要被存储到在步骤504中被标识的块中的内容进行编码。这样,流程从步骤524移至步骤516,在步骤516中用2位ECC算法对内容进行编码。
或者,如果在步骤524中确定擦除计数不低于阈值擦除计数,则在步骤528中,要被写入被标识块的内容用1位ECC算法来编码。然后,已编码内容在步骤532中被存储到或被写入块中,并且完成把内容写入块中的过程。
图5b说明按照本发明实施例从块中读取内容的方法流程图,块可能是回收块并可能具有用1位ECC算法或2位ECC算法编码的内容。读取过程550从步骤554开始,其中标识具有要读取内容的块。然后,在步骤558中在擦除计数块内标识对应于该块的表项。该表项一般包括对块是否是回收块的指示,以及该块的擦除计数。
在标识了对应于该块的表项之后,在步骤562中确定该块是否是回收块。一般而言,这种判决可能通过研究在步骤558中标识或从擦除计数块内读取的表项而作出。如果确定块是回收块,则在步骤574中,存储在块中的内容用2位ECC算法来解码。一旦内容被解码,就完成了从块中读取数据或内容的过程。
或者,如果在步骤562中确定块不是回收块,则在步骤566中确定块的擦除计数是否低于阈值擦除计数。如果确定块的擦除计数不低于阈值,则指明内容用2位ECC算法来编码。这样,在步骤574中用2位ECC算法对数据进行解码。相反,如果确定块的擦除计数低于阈值,则在步骤570中用1位ECC算法对数据进行解码。在数据被解码之后,完成从块中读取数据或内容的过程。
通常,允许静态块交换并包括可能回收的块的系统初始化过程与允许静态块交换但不考虑回收块的系统初始化过程不同。参考图6,将按照本发明实施例描述用包括回收块的混合ECC实现初始化存储器系统的方法。初始化过程600从步骤604开始,其中标识静态块。一旦静态块被标识,则在步骤608中标识具有相对高擦除计数的未使用块。具有相对高擦除计数的未使用块一般用于与静态块交换,使的静态块可以被回收或再次利用,而静态块的内容被存储到具有相对高擦除计数的未使用块中。
在步骤612中确定可能从擦除计数块中获得的与存储器系统相关的平均擦除计数是否大于擦除计数阈值。如果确定平均擦除计数大于阈值擦除计数,则在步骤616中标识是回收块的任何静态块。这种标识可能或通过研究与静态块相关的冗余区域、或通过研究擦除计数块内的相关表项而作出。
在已被回收的静态块被标识之后,在步骤620中用2位ECC算法对回收块的内容进行解码。然后,在步骤624中,剩余静态块的内容被适当解码。即,其擦除计数比阈值擦除计数低的剩余静态块的内容用1位ECC算法来解码,而其擦除计数比阈值擦除计数高的剩余静态块的内容用2位ECC算法来解码。一旦静态块的所有内容都被解码,则在步骤628中用2位ECC算法对内容进行编码,且已编码内容在步骤632中被存储到或被复制到具有相对高擦除计数的块中。在把已编码内容复制到块中之后,完成系统初始化过程。
返回步骤612以及对平均擦除计数是否大于阈值擦除计数的判决,当确定平均擦除计数不大于阈值擦除计数时,则指明了具有相对高擦除计数的未使用块可能具有比阈值擦除计数低的擦除计数。这样,流程从步骤612移至步骤636,在步骤636中标识是回收块的未使用块。即,标识了先前回收的具有相对高擦除计数的未使用块。一旦标识了先前回收的具有相对高擦除计数的未使用块,则在步骤640中标识是回收块的任何静态块。
流程从步骤640进行到步骤644,在步骤644中用2位ECC算法对回收静态块的内容进行解码。在回收静态块的内容被解码之后,在步骤648中对剩余静态块的内容适当解码。一般而言,某些静态块可能用1位ECC算法来解码,而其它静态块可能用2位ECC算法来解码。在对剩余静态块的内容进行解码之后,在步骤652中用2位ECC算法对要被存储到回收未使用块中的任何内容进行编码。在步骤656中,用1位ECC算法对要被存储到先前未回收的未使用块中的内容进行编码。一旦实质上所有内容都已被编码,已编码内容就在步骤660中被复制到具有相对高擦除计数的它们所倾向的未使用块中,并且完成初始化过程。
通常,以软件(如,程序编码装置)或固件形式把与实现混合ECC实现相关的功能提供给主机系统,主机系统包括非易失性存储器或非易失性存储器组件。图7示出与提供给主机系统的软件或固件相关的适当系统结构的一实施例。系统结构700一般包括各种模块,它们可能包括但不限于:应用程序接口模块704、系统管理器模块708、数据管理器模块712、数据完整性管理器716、以及设备管理器和接口模块720。通常,系统结构700可能用可由处理器(如,图1a的处理器108)存取的软件编码装置或固件来实现。
通常,应用程序接口模块704可能用于与像闪存(未示出)、尤其是媒质这样的非易失性存储器进行通信,从而在初始化、或系统格式化、请求期间初始化媒质。应用程序接口模块704可能从与媒质相关的扇区、簇或页面中读取以及向其中写入。一般而言,除了与媒质通信之外,应用程序接口704还与系统管理器模块708和数据管理器模块712通信。
系统管理器模块708包括系统初始化子模块724、擦除计数块管理子模块726、以及功率管理块子模块730。系统初始化子模块724一般用于允许处理初始化请求、且一般与擦除计数块管理子模块726进行通信。系统初始化模块724还用于解决一到多的逻辑到物理的块分配。
擦除计数块管理子模块726包括对被存储块的擦除计数的功能、以及用单独擦除计数计算并更新平均擦除计数的功能。换言之,擦除计数块管理子模块726有效地允许对擦除计数分类并允许保持平均擦除计数。而且,在一实施例中,擦除计数块管理子模块726还在总系统的初始化请求期间实质上同步擦除计数块内实质上所有块的擦除计数。虽然擦除计数块管理子模块726可能用于把平均擦除计数存储在擦除计数块内,然而应该理解,也可以使用功率管理块子模块730来存储平均擦除计数。
除了与应用程序接口模块704通信之外,系统管理器模块708还与数据管理器模块712以及设备管理器和接口模块720进行通信。数据管理器模块712与系统管理器模块708和应用程序接口模块704两者通信,它可能包括提供扇区映射的功能,这能有效地把逻辑扇区转化成物理扇区。即,数据管理器模块712用于把逻辑块映射到物理块中。数据管理器模块712可能还包括与操作系统和文件系统接口层相关的功能,并且能够管理块内的组,正如待批美国专利申请号10/281855中所述的,该申请通过引用被完全结合于此。在一实施例中,数据管理器模块712可能用于允许实质上失序的写过程的发生。
设备管理器和接口模块720与系统管理器模块708、数据管理器712和数据完整性管理器716进行通信,它一般提供闪存接口,并且包括与硬件抽象相关的功能,如I/O接口。数据完整性模块716提供的功能之一为ECC处理。
尽管仅描述了本发明的少量实施例,然而应该理解,本发明可能包含在许多其它特定形式中,而不背离本发明的精神和范围。通过示例,已经描述了1位ECC算法适用于对具有比擦除计数阈值低的擦除计数的块的内容进行编码,已经描述了2位ECC算法适用于对具有比擦除计数阈值高的擦除计数的块的内容进行编码。然而应该理解,在某些实施例中,可能用2位ECC算法对具有比擦除计数阈值低的擦除计数的块的内容进行编码,而可能用比2位ECC算法具有更高准确性的算法,如3位ECC算法,对具有比擦除计数阈值高的擦除计数的块的内容进行编码。
此外,虽然所述的ECC算法一般是1位ECC算法或2位ECC算法,然而这些ECC算法也可以分别用1码元ECC算法或2码元ECC算法来取代。而且,实际所使用的ECC算法可能广泛地改变。适当的ECC算法可能包括、但不限于:Reed-Solomon算法、汉明码算法、以及二进制汉明码算法。例如,在一实施例中,适当的1位ECC算法可能是汉明码算法,而适当的2位ECC算法可能是Reed-Solomon算法。
与本发明各方法相关的步骤可能广泛地改变。通常,步骤可能被添加、移去、重新排列或改变,而不背离本发明的精神或范围。例如,包括混合ECC实现的初始化存储器系统的过程可能包括擦除静态块。此外,对于可能用回收块来存储数据的实施例而言,在确定块已被回收之前,可能首先确定考虑中的块的擦除计数是否超出擦除计数阈值。因此,当前的示例应被视作说明性的而非限制性的,且本发明不限于这里给出的细节,而可能在所附权利要求的范围内被修改。

Claims (45)

1.一种在存储器系统的非易失性存储器内存储数据的方法,该方法包括:
识别数据要被存储其中的第一块;
获得与第一块相关的指示符;
确定指示符何时指明要用第一算法对数据进行编码;
当确定要用第一算法对数据进行编码时,用第一算法对数据进行编码;以及
把用第一算法编码的数据写入第一块。
2.如权利要求1所述的方法,其特征在于还包括:
当确定数据未用第一算法来编码时,用第二算法对数据进行编码;以及
把用第二算法编码的数据写入第一块。
3.如权利要求2所述的方法,其特征在于,所述第一算法是1位纠错码(ECC)算法,而第二算法是2位ECC算法。
4.如权利要求2所述的方法,其特征在于,所述指示符用于指示块何时为回收块,其中当块为回收块时,指示符还用于指明要用第二算法对数据进行编码。
5.如权利要求2所述的方法,其特征在于,所述指示符用于指明块已被擦除的次数。
6.如权利要求5所述的方法,其特征在于,确定指示符何时指明要用第一算法对数据进行编码包括:
确定指示符何时低于一阈值,其中当指示符低于阈值时,要用第一算法对数据进行编码。
7.如权利要求2所述的方法,其特征在于,所述指示符用于指明非易失性存储器内的块已被擦除的大致平均次数。
8.如权利要求2所述的方法,其特征在于,所述指示符被存储在数据结构中,该数据结构大致与第一块分开,而获得与块相关的指示符包括从数据结构中获得指示符。
9.如权利要求1所述的方法,其特征在于,所述非易失性存储器是闪存。
10.如权利要求9所述的方法,其特征在于,所述闪存是NAND闪存和MLC NAND闪存之一。
11.一种在存储器系统的非易失性存储器内读取数据的方法,该方法包括:
识别要从中读取数据的第一块;
获得与第一块相关的指示符;
确定指示符何时指明存储器第一块内的数据已经用第一算法来编码;以及
当确定数据已经用第一算法来编码时用第一算法对数据进行解码。
12.如权利要求11所述的方法,其特征在于还包括:
当确定数据尚未用第一算法来编码时用第二算法对数据进行解码。
13.如权利要求12所述的方法,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
14.如权利要求12所述的方法,其特征在于,所述指示符用于指示块何时为回收块,其中当块为回收块时,指示符还用于指明已经用第二算法对数据进行编码。
15.如权利要求12所述的方法,其特征在于,所述指示符用于指明块已被擦除的次数。
16.如权利要求15所述的方法,其特征在于,确定指示符何时指明已用第一算法对数据进行编码包括:
确定指示符何时低于一阈值,其中当指示符低于阈值时,已经用第一算法对数据进行编码。
17.如权利要求12所述的方法,其特征在于,所述指示符用于指明非易失性存储器内的块已被擦除的大致平均次数。
18.如权利要求12所述的方法,其特征在于,所述指示符被存储在数据结构中,该数据结构大致与第一块分开,而获得与块相关的指示符包括从数据结构中获得指示符。
19.如权利要求11所述的方法,其特征在于,所述非易失性存储器是闪存。
20.如权利要求19所述的方法,其特征在于,所述闪存是NAND闪存和MLC NAND闪存之一。
21.一种存储器系统,包括:
包括多个块的非易失性存储器,所述多个块包括第一块;
用于识别数据要被存储其中的第一块的编码装置;
用于获得与第一块相关的指示符的编码装置;
用于确定指示符何时指明要用第一算法对数据进行编码的编码装置;
用于在确定要用第一算法对数据进行编码时用第一算法对数据编码的编码装置;
把用第一算法编码的数据写入第一块的编码装置;以及
存储编码装置的存储器区域。
22.如权利要求21所述的存储器系统,其特征在于还包括:
当确定数据不要用第一算法来编码时用第二算法对数据进行编码的编码装置;以及
把用第二算法编码的数据写入第一块的编码装置。
23.如权利要求22所述的存储器系统,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
24.如权利要求22所述的存储器系统,其特征在于,所述指示符用于指示块何时为回收块,其中当块为回收块时,指示符还用于指明要用第二算法对数据进行编码。
25.如权利要求22所述的存储器系统,其特征在于,所述指示符用于指明块已被擦除的次数。
26.如权利要求25所述的存储器系统,其特征在于,确定指示符何时指明要用第一算法对数据进行编码包括:
确定指示符何时低于一阈值,其中当指示符低于阈值时,要用第一算法对数据进行编码。
27.如权利要求21所述的存储器系统,其特征在于,所述闪存是NAND闪存和MLC NAND闪存之一。
28.一种存储器系统,包括:
包括多个块的非易失性存储器,所述多个块包括第一块,所述第一块包括数据;
用于识别第一块的编码装置;
用于获得与第一块相关的指示符的编码装置;
用于确定指示符何时指明已经用第一算法对数据进行编码的编码装置;
用于在确定已经用第一算法对数据进行编码时用第一算法对数据解码的编码装置;以及
存储编码装置的存储器区域。
29.如权利要求28所述的存储器系统,其特征在于还包括:
当确定数据尚未用第一算法来编码时用第二算法对数据进行解码的编码装置。
30.如权利要求29所述的存储器系统,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
31.如权利要求29所述的存储器系统,其特征在于,所述指示符用于指示块何时为回收块,其中当块为回收块时,指示符还用于指明已经用第二算法对数据进行编码。
32.如权利要求29所述的存储器系统,其特征在于,所述指示符用于指明块已被擦除的次数。
33.如权利要求32所述的存储器系统,其特征在于,确定指示符何时指明已经用第一算法对数据进行编码包括:
确定指示符何时低于一阈值,其中当指示符低于阈值时,已经用第一算法对数据进行编码。
34.如权利要求28所述的存储器系统,其特征在于,所述非易失性存储器是NAND闪存和MLC NAND闪存之一。
35.一种存储器系统,包括:
包括多个块的非易失性存储器,所述块包括第一块和第二块,第一块包括用第一算法编码的第一组内容,第二块包括用第二算法编码的第二组内容,其中非易失性存储器还包括一数据结构,它用于指明第一组内容用第一算法来编码而第二组内容用第二算法来编码;
用于存取数据结构的编码装置,其中用于存取数据结构的编码装置包括:确定用第一算法编码第一组内容的编码装置;以及确定用第二算法编码第二组内容的编码装置;以及
存储编码装置的存储器区域。
36.如权利要求35所述的存储器系统,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
37.如权利要求36所述的存储器系统,其特征在于,所述非易失性存储器是NAND闪存和MLC NAND闪存之一。
38.一种存储器系统,包括:
非易失性存储器,包括数据要存储其中的第一块;
用于识别第一块的装置;
用于获得与第一块相关的指示符的装置;
用于确定指示符何时指明要用第一算法对数据进行编码的装置;以及
用于在确定要用第一算法对数据进行编码时用第一算法对数据编码的装置。
39.如权利要求38所述的存储器系统,其特征在于还包括:
在确定不要用第一算法对数据进行编码时用第二算法对数据编码的装置;以及
把用第二算法编码的数据写入第一块的装置。
40.如权利要求39所述的存储器系统,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
41.如权利要求38所述的存储器系统,其特征在于,所述非易失性存储器是NAND闪存和MLC NAND闪存之一。
42.一种存储器系统,包括:
非易失性存储器,包括要从中读取数据的第一块;
用于识别第一块的装置;
用于获得与第一块相关的指示符的装置;
用于确定指示符何时指明已经用第一算法对存储在第一块内的数据进行编码的装置;以及
用于在确定已经用第一算法对数据进行编码时用第一算法对数据解码的装置。
43.如权利要求42所述的存储器系统,其特征在于还包括:
在确定尚未用第一算法对数据进行编码时用第二算法对数据进行解码的装置。
44.如权利要求43所述的存储器系统,其特征在于,所述第一算法是1位ECC算法,而第二算法是2位ECC算法。
45.如权利要求38所述的存储器系统,其特征在于,所述非易失性存储器是NAND闪存和MLC NAND闪存之一。
CN2003101046432A 2002-10-28 2003-10-28 非易失性存储器系统内纠错码的混合实现 Expired - Fee Related CN1499532B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US42191102P 2002-10-28 2002-10-28
US60/421911 2002-10-28
US60/421,911 2002-10-28

Publications (2)

Publication Number Publication Date
CN1499532A true CN1499532A (zh) 2004-05-26
CN1499532B CN1499532B (zh) 2011-05-18

Family

ID=32825088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2003101046432A Expired - Fee Related CN1499532B (zh) 2002-10-28 2003-10-28 非易失性存储器系统内纠错码的混合实现

Country Status (7)

Country Link
US (1) US8412879B2 (zh)
EP (1) EP1424631B1 (zh)
JP (1) JP4429685B2 (zh)
KR (1) KR101017443B1 (zh)
CN (1) CN1499532B (zh)
AT (1) ATE320041T1 (zh)
DE (1) DE60303895T2 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100370395C (zh) * 2004-07-07 2008-02-20 精工爱普生株式会社 信息处理装置、存储器管理程序及存储器管理方法
CN102099793A (zh) * 2008-06-24 2011-06-15 桑迪士克以色列有限公司 根据固态存储器的擦除计数进行误差校正的方法和装置
CN102142282A (zh) * 2011-02-21 2011-08-03 北京理工大学 一种NAND Flash存储芯片ECC校验算法的识别方法
CN102289394A (zh) * 2010-04-28 2011-12-21 国立大学法人东京大学 数据输入输出控制装置及半导体存储装置系统
CN101405811B (zh) * 2006-01-20 2012-01-04 马维尔国际贸易有限公司 具有编码和信号处理的闪存
CN102934093A (zh) * 2010-06-29 2013-02-13 英特尔公司 用于改进固态驱动器的性能和/或可靠性的方法和系统
CN103077096A (zh) * 2012-12-31 2013-05-01 记忆科技(深圳)有限公司 数据纠错系统、固态硬盘及数据纠错方法
CN101779194B (zh) * 2007-07-09 2013-06-05 美光科技公司 用于存储器的错误校正
CN101794623B (zh) * 2009-06-01 2013-11-06 深圳市朗科科技股份有限公司 存储设备的纠错装置及方法
CN104111893A (zh) * 2013-06-21 2014-10-22 芜湖美的厨卫电器制造有限公司 数据的存储方法
CN107924704A (zh) * 2015-09-22 2018-04-17 桑迪士克科技有限责任公司 3d nand存储器的自适应操作

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
KR20070007265A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
CN101031971A (zh) * 2004-08-02 2007-09-05 皇家飞利浦电子股份有限公司 数据存储和重放设备
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
JP4842719B2 (ja) * 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
CN101601094B (zh) 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
JP4925301B2 (ja) * 2007-02-07 2012-04-25 株式会社メガチップス 半導体メモリシステム
CN101715595A (zh) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
KR101413736B1 (ko) 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009063450A2 (en) * 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US20090125790A1 (en) * 2007-11-13 2009-05-14 Mcm Portfolio Llc Method and Apparatus of Automatically Selecting Error Correction Algorithms by a NAND Flash Controller
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
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
JP2008217811A (ja) * 2008-04-03 2008-09-18 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
US20090287969A1 (en) * 2008-05-13 2009-11-19 Bpm Microsystems Electronic apparatus and bit error rate tolerance method for programming non-volatile memory devices
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8213229B2 (en) * 2008-08-22 2012-07-03 HGST Netherlands, B.V. Error control in a flash memory device
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
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. 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
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for 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
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
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
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US20130047056A1 (en) * 2009-05-05 2013-02-21 Lite-On It Corporation Flash memory device with rectifiable redundancy and method of controlling the same
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8566689B2 (en) * 2009-10-22 2013-10-22 Microsoft Corporation Data integrity units in nonvolatile memory
US8301987B2 (en) * 2009-10-29 2012-10-30 Sandisk Il Ltd. System and method of decoding data with reduced power consumption
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
FR2961613B1 (fr) * 2010-06-18 2012-07-27 Commissariat Energie Atomique Procede de protection memoire configurable contre les erreurs permanentes et transitoires et dispositif apparente
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
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines 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
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
WO2012020278A1 (en) 2010-08-13 2012-02-16 Sandisk Il Ltd. Data coding using divisions of memory cell states
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
US20140136927A1 (en) * 2010-10-27 2014-05-15 Lsi Corporation Adaptive ecc techniques for flash memory based data storage
JP5468184B2 (ja) 2010-10-29 2014-04-09 エンパイア テクノロジー ディベロップメント エルエルシー ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化
JP5720210B2 (ja) 2010-12-02 2015-05-20 富士通株式会社 アクセス制御装置、誤り訂正制御方法およびストレージ装置
KR20120064462A (ko) 2010-12-09 2012-06-19 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US8661221B2 (en) * 2011-03-16 2014-02-25 International Business Machines Corporation Leasing fragmented storage between processes
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US8910017B2 (en) 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
KR102049281B1 (ko) 2012-10-23 2019-11-27 삼성전자주식회사 불휘발성 메모리 및 컨트롤러를 포함하는 메모리 시스템, 그리고 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
WO2014109756A1 (en) 2013-01-11 2014-07-17 Empire Technology Development Llc Page allocation for flash memories
US8891296B2 (en) 2013-02-27 2014-11-18 Empire Technology Development Llc Linear Programming based decoding for memory devices
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
JP5733766B2 (ja) * 2013-11-07 2015-06-10 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
WO2015088552A1 (en) 2013-12-13 2015-06-18 Empire Technology Development Llc Low-complexity flash memory data-encoding techniques using simplified belief propagation
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US10691531B2 (en) * 2014-12-04 2020-06-23 Western Digital Technologies, Inc. Systems and methods for multi-zone data tiering for endurance extension in solid state drives
CN105988887A (zh) * 2015-01-31 2016-10-05 深圳市硅格半导体有限公司 存储卡数据处理系统及方法
JP6657634B2 (ja) * 2015-07-24 2020-03-04 ソニー株式会社 符号化装置、メモリシステム、通信システムおよび符号化方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
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
US11762735B2 (en) 2021-10-01 2023-09-19 Western Digital Technologies, Inc. Interleaved ECC coding for key-value data storage devices
US11934264B2 (en) 2021-11-22 2024-03-19 Western Digital Technologies, Inc. ECC parity biasing for Key-Value data storage devices
CN117762819A (zh) * 2022-09-19 2024-03-26 慧荣科技股份有限公司 存取快闪存储器模块的方法与相关的快闪存储器控制器及记忆装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4785452A (en) * 1986-04-25 1988-11-15 International Business Machines Corporation Error detection using variable field parity checking
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5228046A (en) * 1989-03-10 1993-07-13 International Business Machines Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
US5222109A (en) * 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
JPH06187248A (ja) 1992-12-16 1994-07-08 Nec Corp データエラー検出訂正制御回路
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5754565A (en) * 1996-10-15 1998-05-19 Quantum Corporation Reconstruction of syndromes for bi-level on-the-fly error correction in disk drive systems
US5905858A (en) * 1996-11-01 1999-05-18 Micron Electronics, Inc. System for method memory error handling
US6311290B1 (en) * 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5961660A (en) * 1997-03-03 1999-10-05 International Business Machines Corporation Method and apparatus for optimizing ECC memory performance
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH1173797A (ja) 1997-08-27 1999-03-16 Sony Corp 記憶装置
JP3998307B2 (ja) * 1997-12-25 2007-10-24 富士通株式会社 磁気ディスク装置及び磁気ディスク装置のエラー訂正方法
US6182239B1 (en) * 1998-02-06 2001-01-30 Stmicroelectronics, Inc. Fault-tolerant codes for multi-level memories
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
JP3421581B2 (ja) 1998-06-29 2003-06-30 株式会社日立製作所 不揮発性半導体メモリを用いた記憶装置
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
AU7313600A (en) 1999-09-17 2001-04-24 Hitachi Limited Storage where the number of error corrections is recorded
US6487685B1 (en) * 1999-09-30 2002-11-26 Silicon Graphics, Inc. System and method for minimizing error correction code bits in variable sized data formats
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6747827B1 (en) * 2000-03-27 2004-06-08 Texas Instruments Incorporated Error correction codes applied variably by disk zone, track, sector, or content
US20010042230A1 (en) * 2000-05-10 2001-11-15 Seagate Technology Llc Sector validation for use in ECC engine validation
JP2002091831A (ja) 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
US6941505B2 (en) * 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US6970890B1 (en) * 2000-12-20 2005-11-29 Bitmicro Networks, Inc. Method and apparatus for data recovery
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100370395C (zh) * 2004-07-07 2008-02-20 精工爱普生株式会社 信息处理装置、存储器管理程序及存储器管理方法
CN101405811B (zh) * 2006-01-20 2012-01-04 马维尔国际贸易有限公司 具有编码和信号处理的闪存
CN101779194B (zh) * 2007-07-09 2013-06-05 美光科技公司 用于存储器的错误校正
CN102099793A (zh) * 2008-06-24 2011-06-15 桑迪士克以色列有限公司 根据固态存储器的擦除计数进行误差校正的方法和装置
CN102099793B (zh) * 2008-06-24 2013-10-16 桑迪士克以色列有限公司 根据固态存储器的擦除计数进行误差校正的方法和装置
CN101794623B (zh) * 2009-06-01 2013-11-06 深圳市朗科科技股份有限公司 存储设备的纠错装置及方法
CN102289394B (zh) * 2010-04-28 2015-05-06 国立大学法人东京大学 数据输入输出控制装置及半导体存储装置系统
CN102289394A (zh) * 2010-04-28 2011-12-21 国立大学法人东京大学 数据输入输出控制装置及半导体存储装置系统
CN102934093A (zh) * 2010-06-29 2013-02-13 英特尔公司 用于改进固态驱动器的性能和/或可靠性的方法和系统
CN102934093B (zh) * 2010-06-29 2015-11-25 英特尔公司 用于改进固态驱动器的性能和/或可靠性的方法和系统
US9317362B2 (en) 2010-06-29 2016-04-19 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
CN102142282B (zh) * 2011-02-21 2012-10-24 北京理工大学 一种NANDFlash存储芯片ECC校验算法的识别方法
CN102142282A (zh) * 2011-02-21 2011-08-03 北京理工大学 一种NAND Flash存储芯片ECC校验算法的识别方法
CN103077096A (zh) * 2012-12-31 2013-05-01 记忆科技(深圳)有限公司 数据纠错系统、固态硬盘及数据纠错方法
CN104111893A (zh) * 2013-06-21 2014-10-22 芜湖美的厨卫电器制造有限公司 数据的存储方法
CN107924704A (zh) * 2015-09-22 2018-04-17 桑迪士克科技有限责任公司 3d nand存储器的自适应操作
CN107924704B (zh) * 2015-09-22 2020-02-07 桑迪士克科技有限责任公司 3d nand存储器的自适应操作

Also Published As

Publication number Publication date
JP4429685B2 (ja) 2010-03-10
CN1499532B (zh) 2011-05-18
KR101017443B1 (ko) 2011-02-25
US20040083333A1 (en) 2004-04-29
JP2004164634A (ja) 2004-06-10
DE60303895T2 (de) 2006-10-05
EP1424631A1 (en) 2004-06-02
DE60303895D1 (de) 2006-05-04
KR20040038711A (ko) 2004-05-08
EP1424631B1 (en) 2006-03-08
US8412879B2 (en) 2013-04-02
ATE320041T1 (de) 2006-03-15

Similar Documents

Publication Publication Date Title
CN1499532B (zh) 非易失性存储器系统内纠错码的混合实现
CN106681931B (zh) 数据储存设备及其操作方法
US7287118B2 (en) Maintaining an average erase count in a non-volatile storage system
US7032087B1 (en) Erase count differential table within a non-volatile memory system
US7559004B1 (en) Dynamic redundant area configuration in a non-volatile memory system
US7188228B1 (en) Hybrid mapping implementation within a non-volatile memory system
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
CN1512511A (zh) 非易失存储器系统中不可用块的管理
US9141476B2 (en) Method of storing system data, and memory controller and memory storage apparatus using the same
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
CN106484307B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
US9304907B2 (en) Data management method, memory control circuit unit and memory storage apparatus
US20120317346A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN103914391B (zh) 数据读取方法、存储器控制器与存储器存储装置
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN110471612B (zh) 存储器管理方法以及存储控制器
US10824340B2 (en) Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus
US20200327069A1 (en) Data storage device and operation method thereof, controller using the same
US20210333999A1 (en) Data storage device, operation method thereof and storage system having the same
CN112698784B (zh) 存储器系统
CN113094306A (zh) 有效数据管理方法、存储器存储装置及存储器控制器
CN103488579A (zh) 存储器管理方法、存储器控制器与存储器储存装置
CN114974387B (zh) 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘
CN103853666A (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
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120416

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120416

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SANDISK TECHNOLOGIES, INC.

CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American Texas

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.

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

Granted publication date: 20110518

Termination date: 20201028