CN100538659C - 非易失性存储器系统内有效允许失序写处理的方法和装置 - Google Patents

非易失性存储器系统内有效允许失序写处理的方法和装置 Download PDF

Info

Publication number
CN100538659C
CN100538659C CNB2003101046428A CN200310104642A CN100538659C CN 100538659 C CN100538659 C CN 100538659C CN B2003101046428 A CNB2003101046428 A CN B2003101046428A CN 200310104642 A CN200310104642 A CN 200310104642A CN 100538659 C CN100538659 C CN 100538659C
Authority
CN
China
Prior art keywords
programming unit
unit
lpage
content
logical
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
CNB2003101046428A
Other languages
English (en)
Other versions
CN1499530A (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
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN1499530A publication Critical patent/CN1499530A/zh
Application granted granted Critical
Publication of CN100538659C publication Critical patent/CN100538659C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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

Abstract

揭示了用于允许将内容有效率地存储在非易失性存储器的物理块中的方法和装置。根据本发明的一个方面,一种用于执行具有一个存储单元的非易失性存储器系统中的写操作的方法包括:将第一套内容写入该存储单元的第一个物理子单元,并且,在第一套内容写入于第一个物理子单元之后,将第二套内容写入该存储单元的第二个物理子单元。第一个物理子单元按顺序在该存储单元中的第二个物理子单元之前。第一套内容与逻辑单元的第二个逻辑子单元是相关的,第二套内容与逻辑单元的第一个逻辑子单元是相关的,第一个逻辑子单元按顺序在逻辑单元中的第二个逻辑子单元之前。

Description

非易失性存储器系统内有效允许失序写处理的方法和装置
本发明申请于2002年10月28日入档的第60/421,725号美国临时专利的优先权,该专利全文引用于此作参考。
相关申请的交叉参考
本发明涉及号码为10/281,739、10/281,823、10/281,670、10/281,824、10/281,631、10/281,855、10/281,762、10/281,696、10/281,626和10/281,804的待批美国专利申请,以及号码为60/421,910、60/421,965、60/422,166、60/421,746和60/421,911的待批美国临时专利申请,每个专利申请都于2002年10月28日申请,它们各自以全文引用于此作参考。
发明背景
1.发明领域
本发明通常涉及大规模数字数据存储系统。更具体地说,本发明涉及允许块的各页实质上被有效、失序地写入的系统和方法。
2.相关技术的描述
由于非易失性存储器系统的物理尺寸小以及非易失性存储器具有反复被重新编程的能力,因此,这种存储器系统(例如,快闪记忆存储系统)的使用正在日益增长。快闪记忆存储系统的物理尺寸小有利于促进日益流行的设备中的这种存储系统的运用。使用快闪记忆存储系统的设备包括(但不局限于)数字照相机、数字可携式摄像机、数字音乐播放机、手持个人计算机和全球定位设备。在快闪记忆存储系统中所包括的可反复重新编程的非易失存储器的能力可使快闪记忆存储系统予以使用和再使用。
一般而言,快闪记忆存储系统可以包括快闪存储卡和快闪存储器芯片组。快闪存储器芯片组通常包括快闪存储器部件和控制器部件。通常,可以将快闪存储器芯片组安排成装配到嵌入式系统中。这种装配件或主机系统的制造商通常取用部件形式的快闪存储器以及其他部件,然后将该快闪存储器和其他部件装配到主机系统中。
在使整个快闪存储器系统符合高性能标准的过程中,有效率地使用快闪存储器的能力是至关重要的。一般而言,快闪存储器的低效率使用可能会导致频繁的擦除操作和频繁的写操作,这些操作可能会大大减缓整个快闪存储器系统的操作。例如,如图1所示,物理块100可以包括跟逻辑块(未示出)的第三页和第三页至最后一页相关的内容104。当接收与逻辑块(未示出)有关的更新110(与逻辑块的第四页相关的)时,虽然物理块100内有可用的空间,但是,更新110可能不存储到物理块100中,这是因为页“N-2”112a已被写入,并且更新110将被作为页“3”112b。也就是说,当物理块100的后面的页(例如,页“N-2”112a)已被写入时,物理块100的前面的页(例如,页“3”112b)可能未被写入。
若允许将更新110写入物理块100,则通常将会导致失序违规(例如,写入违规)。在包括NAND快闪存储器(例如,MLC NAND快闪存储器)的一些快闪存储器系统中,不允许失序写入和局部写入。因此,一旦页“N-2”112a中存在内容104b,通常不可能将更新110写入页“3”112b。
为了容纳更新110,通常可获得新的物理块120。然后,将内容104a、更新110和内容104b写入新的物理块120。一旦新的物理块120被写入,就可以擦除物理块100的内容。当不断地进行与逻辑块(未示出)的第四页有关的更新时,获得新的物理块、写入新的物理块和擦除老的物理块的重复过程可能会是必要的。结果,实质上,只有包含“N”页的每个物理块的三页可以被写入,而许多页(即N-3页)则实质上仍然是空的。实际上浪费每个物理块中的N-3页,同时通常需要较多数量的写处理和擦除处理,这可能会导致整个快闪存储器系统无效率地工作。允许物理块(例如,物理块100)的各页被写入,以便可以更有效率地使用存储器资源,这样,可以使整个快闪存储器系统(例如,MLC NAND快闪存储器系统)的性能加以改善。
所以,需要一种系统和方法,使非易失存储器系统中的存储器资源更有效率地使用。尤其是,需要一种系统和方法,可有效地使存储器系统(例如,MLCNAND快闪存储器系统)中的物理块的物理页实质上被失序地写入。
发明概述
本发明涉及可将内容有效率地存储在物理块中的一种系统和方法。根据本发明的一个方面,一种非易失存储器系统中进行写操作的方法,此系统具有包括将第一套内容写入该存储单元的第一个物理子单元;并且,在将第一套内容写入第一个物理子单元之后,将第二套内容写入该存储单元的第二个物理子单元的1个存储单元。存储单元中第一个物理子单元按顺序在第二个物理子单元之前。第一套内容是与逻辑单元的第二个逻辑子单元相关的,第二套内容是与按顺序在该逻辑单元中的第二个逻辑子单元之前的逻辑单元的第一个逻辑子单元相关的。
在一个实施例中,存储单元是物理块,逻辑单元是逻辑块,第一个物理子单元是第一物理页,第二个物理子单元是第二物理页,第一个逻辑子单元是第一逻辑页,第二个逻辑子单元是第二逻辑页。在另一个实施例中,存储单元可能是MLC NAND存储器的一部分。
虽然实际的物理页按序写入,但是,虑及存入跟按顺序在逻辑页(与其相关的内容已被写入物理块)之前的逻辑页相关的内容的物理块,允许从内容的角度、按失序方法将物理块有效地写入。通过无序地将逻辑块的内容有效地写入物理块,可以更有效率地使用物理块,体现在:可以减少所需的写操作和擦除操作的数量。例如,当将要发生实质上失序的写操作时,为块内的各页分组,以便可以用获得物理块内的一个组来代替获得新的物理块,从而允许改善与写入页相关的总效率。
根据本发明的另一个方面,用于将与逻辑块有关的内容提供给属于存储器系统的非易失性存储器的一部分的物理块的方法包括:获得与逻辑块的第一个逻辑组的第一逻辑页相关的第一套内容,并且将第一套内容存储在物理块中。将第一套内容存储在物理块中包括:将第一套内容存储在物理块的第一个物理组的第一物理页中,并且将指示符存储在第一个物理组中,第一个物理组将第一套内容识别为与第一个逻辑组相关。
在一个实施例中,第一个物理组包括在第一个物理组的开端处有起始物理页的多个物理页;将指示符存储在第一个物理组中包括:将指示符存储在该起始物理页中。在另一个实施例中,该方法也包括:获得与逻辑块相关的第二套内容;并且,当第二套内容与第一个逻辑组的第二逻辑页相关并且第一个逻辑组的第二逻辑页按顺序在第一个逻辑组内的第一逻辑页之后时,将第二套内容存储在第一个物理组中。
通过阅读以下详细的描述并研究各幅附图,本发明的这些和其他的优点将会一目了然。
附图简述
通过参考以下的描述并结合附图,可以最佳程度地理解本发明。在这些附图中:
图1图示将要写入至第二个物理块的具有第一套内容和更新的第一个物理块。
图2a图示包括一个非易失存储器的一般主机系统。
图2b图示存储设备(例如,图2a中的存储设备120)。
图2c图示包括一个嵌入式非易失性存储器的主机系统。
图3图示根据本发明的一个实施例的、被分割成各个组的物理块,这些组允许更新大体上以失序地写入。
图4a图示根据本发明的一个实施例的、包括逻辑组的逻辑块和包括物理组的物理块。
图4b图示根据本发明的一个实施例的、与普通逻辑块(例如,图4a中的逻辑块400)有关的较老的物理块和“更新”物理块(例如,图4a中的物理块420)。
图4c图示根据本发明的一个实施例的、包括与原始物理块和“更新”逻辑块(例如,图4b中的原始物理块460和“更新”物理块420)相关的内容的物理块。
图5是根据本发明的一个实施例的工序流程图,展示了与一种方法有关的一些步骤,这种方法执行可以被认为是失序写处理的写处理。
图6是根据本发明的一个实施例的系统结构的框图表示。
实施例的详细描述
若需要一些非易失存储器系统(例如,将要顺次被写入的MLC NAND存储器系统)中的页,则可能经常会导致用于更新与逻辑块有关的内容的操作(包括较多数量的写操作和擦除操作)。例如,当不断地更新与逻辑块的特定逻辑页有关的内容时,可能会发生较多数量的写操作和擦除操作。这种更新可能经常会要求获得不同的物理块,并且需要合并物理块的内容,并(因此)进行写入和擦除。由于写操作和擦除操作通常很耗时,因此,许多写操作和擦除操作可能会对非易失性存储器系统的性能产生不利的影响。
通过减少存储或重写更新页所需要的管理开销的总数和时间,可以允许总系统(例如,具有嵌入式非易失性存储芯片(例如,MLC NAND存储芯片)的总主机系统)更有效率地进行工作。通过将块内的页面分成各个组,可有效地在全部块中的有关块的各页实质上以失序地写入。第10/281,855号待批美国专利申请中一般描述了块内各页的分组,该美国专利申请全文引入于此作参考。通过为块内的各页分组,以便可以用获得物理块内的一个组来代替新的物理块,从而当该物理块内至少有一个可用的组时,将页写入该物理块,通常可以提高与写入页有关的总效率。另外,虽然物理块的每个组内的各页实质上顺次写入,但是,在物理块方面,这些页的内容可以有效地失序地写入。尤其是,与逻辑块有关的页可写入至物理块,以便在与该逻辑块的第二逻辑页有关的内容(按顺序在第一逻辑页之后)写入于该物理块后,与该逻辑块的第一逻辑页相关的内容可写入该物理块。但是,在与逻辑块的第二页相关的内容写入至其中的物理块中的那页后,与逻辑块的第一页相关的内容按序地写入此物理块中的那页。
得益于块内各组(有效地使与逻辑块相关的更新实质上按失序的方式写入)的运用的快闪存储器系统或(更通常的情况是)非易失性存储设备通常包括快闪存储器(例如,NAND或MLC NAND)、卡和芯片组。通常,结合主机系统来使用快闪存储器系统,以便该主机系统可以将数据写入这些快闪存储器系统或从这些快闪存储器系统读取数据。但是,一些快闪存储器系统包括嵌入式快闪存储器和在主机上执行以便实质上用作该嵌入式快闪存储器的控制器的软件,以下将根据图2c对这进行讨论。参照图2a来描述包括非易失性存储设备(例如,CompactFlash存储卡)的一般主机系统。主机或计算机系统100通常包括使微处理器108、随机存取存储器(RAM)112和输入/输出电路116进行通信的系统总线104。应该理解,主机系统100通常可以包括没有被示出用于说明的其他部件(例如,显示设备和网络设备)。
一般而言,主机系统100可能能够捕获信息,该信息包括(但不局限于)静态图像信息、音频信息和视频图像信息。可以实时捕获这类信息,并可以用无线方式将其传送到主机系统100。主机系统100实质上可以是任何系统,但主机系统100通常是诸如数字照相机、摄像机、蜂窝状通信设备、音频播放机或视频播放机的系统。但是,应该理解,主机系统100实质上通常是可以存储数据或信息并检索数据或信息的任何系统。
主机系统100也可以是只捕获数据或只检索数据的系统。也就是说,在一个实施例中,主机系统100可以是存储数据的专用系统,或者,主机系统100可以是读取数据的专用系统。举例而言,主机系统100可以是被安排成只写入或存储数据的存储写程序。或者,主机系统100可以是诸如MP3播放机的设备,它通常被安排成读取或检索数据,而不捕获数据。
将非易失性存储设备120(在一个实施例中,它是可移动的非易失性存储设备)安排成与总线104接口,以存储信息。任选的接口块130可以允许非易失性存储设备120间接地与总线104接口。精通该技术领域的人将会理解:当输入/输出电路块116存在时,它可用于减少总线104上的负载。非易失性存储设备120包括非易失性存储器124和任选的存储器控制系统128。在一个实施例中,可以在单一芯片或管芯上实行非易失性存储设备120。另种方法是,可以在多芯片模块上或在多个离散部件(它们可以构成芯片组,并可以一起用作为非易失性存储设备120)上实行非易失性存储设备120。以下将根据图2b来更加详细地描述非易失性存储设备120的一个实施例。
安排非易失性存储器124(例如,诸如NAND快闪存储器或MLC NAND快闪存储器的快闪存储器)存储数据,以便可以按需要来存取和读取数据。虽然应该了解,非易失性存储器124中的某些数据可能不可擦除,但是,可以适当地擦除非易失性存储器124中所存储的数据。存储数据、读取数据和擦除数据的过程通常由存储器控制系统128来进行控制,或者,当存储器控制系统128不存在时,这些过程由微处理器108所执行的软件来控制。可以对非易失性存储器124的操作进行管理,以便通过基本上使非易失性存储器124的各个部分的磨损程度基本相等,实质上把非易失性存储器124的寿命增加到最大限度。
通常将非易失性存储设备120描述成包括任选的存储器控制系统128(即控制器)。非易失性存储设备120经常可以包括具有非易失性存储器124和存储器控制系统128,即控制器的功能的分开的芯片。举例而言,包括(但不局限于)PC卡、CompactFlash卡、“多媒体”卡和安全数字卡的非易失性存储设备包含可以在分开的芯片上加以实行的控制器,其他非易失性存储设备可能不包括在分开的芯片上加以实行的控制器。在非易失性存储设备120不包括分开的存储器和控制器芯片的实施例中,可以将存储器和控制器功能并入单一芯片,精通该技术领域的人将会理解这一点。另种方法是,如上所述,例如,如在非易失性存储设备120不包括存储控制器128的实施例中,存储器控制系统128的功能可以由微处理器108来提供。
参照图2b,将根据本发明的一个实施例来更加详细地描述非易失性存储设备120。如上所述,非易失性存储设备120包括非易失性存储器124,并可以包括存储器控制系统128。虽然当存储器124是嵌入式NAND设备(例如,嵌入式MLC NAND存储器)时,如,非易失性存储设备120可能不包括控制系统128,但是,存储器124和控制系统128或控制器可能是非易失性存储设备120的主要部件。存储器124可能是在半导体衬底上一排存储单元上形成,其中,通过将两个或多个电平的电荷之一存储在这些存储单元的单独的存储元件上,可以将一个或多个位的数据存储在单独的存储单元中。非易失性快闪电可擦除可编程的只读存储器(EEPROM)是这种系统的一种普通类型的存储器的一个例子。
当控制系统128存在时,它在总线15上与主机计算机或正在使用存储器系统来存储数据的其他系统进行通信。总线15通常是图2a中的总线104的一部分。控制系统128也控制存储器124(可以包括存储单元阵列11)的工作,以写入主机所提供的数据,读取主机所要求的数据,并执行操作存储器124中的各种内务处理功能。控制系统128通常包括一个通用微处理器,该微处理器具有相关非易失性软件存储器、各种逻辑电路和类似的部件。也经常包括一个或多个状态机,用于控制特殊的例行程序的性能。
存储单元阵列11通常通过地址解码器17由控制系统128或微处理器108来进行寻址。解码器17将正确的电压施加到阵列11的门和位线,以便将数据编程到正在由控制系统128寻址的一组存储单元,从其中读取数据,或对其实行擦除。附加电路19包括对被施加到该阵列的元件的电压进行控制的编程驱动器,这些电压取决于正在被编程到一组被寻址的单元中的数据。电路19也包括读出放大器和从一组被寻址的存储单元读取数据所必要的其他电路。将要被编程到阵列11中的数据或最近从阵列11读取的数据通常被存储在控制系统128内的缓冲存储器21中。控制系统128通常也包含用于临时存储命令、状况数据和类似内容的各种寄存器。
将阵列11划分为大量的BLOCKS O-N(块O-N)存储单元。块通常是最小的擦除单元,这对于快闪EEPROM系统而言很普通。也就是说,每个块包含一起被擦除的最少数量的存储单元。每个块通常被划分为许多页。精通该技术领域的人将会理解,页可能是最小的编程单元。也就是说,基本编程操作至少将数据写入一页存储单元或从其中读取数据。通常将一个或多个扇区的数据存储在每页内。如图2b所示,一个扇区包括用户数据和管理开销数据。管理开销数据通常包括已从该扇区的用户数据中加以计算的纠错码(ECC)。当数据正在被编程到阵列11中时,控制系统128的部分23计算ECC;当数据正在从阵列11被读取时,该部分也检验ECC。另种方法是,将这些ECC存储在不同于它们所属的用户数据的页或块中。
一个扇区的用户数据通常是512个字节,这对应于磁盘驱动器中的扇区的大小。管理开销数据或冗余数据通常是额外的16个字节。最通常的情况是,一个扇区的数据被包括在每页中;而两个或多个扇区则可以构成一页。任何数量的页一般都可以构成块。举例而言,可以用8页至512页、1024页或更多的页来构成块。选择块数,以便为存储器系统提供所需的数据存储容量。阵列11通常被划分为一些子阵列(未示出),每个子阵列包含这些块的一定比例的部分,它们彼此独立操作,以便提高各种存储器操作的执行过程中的平行程度。美国专利5,890,192号中描述了多个子阵列的运用的一个例子,该美国专利全文引用于此作参考。
在一个实施例中,将非易失性存储器(例如,MLC NAND存储器)嵌入于系统(例如,主机系统)。图2c图示包括一个嵌入式非易失性存储器的主机系统。主机或计算机系统150通常包括系统总线154,系统总线154可使主机系统150的其他部件(未示出)之中的微处理器158、RAM 162和输入/输出电路166进行通信。非易失性存储器174(例如,快闪存储器)可使信息被存储在主机系统150内。可以在非易失性存储器174与总线154之间提供接口180,以允许从非易失性存储器174读取信息并将信息写入非易失性存储器174。
非易失性存储器174可以由微处理器158来管理,微处理器158有效地执行被安排控制非易失性存储器174的软件和固件或这两者之一。也就是说,微处理器158可以运行允许控制非易失性存储器174的编码设备(即软件编码设备或固件编码设备)。这种编码设备以下将加以描述,可以对非易失性存储器174中的物理块寻址,并可使信息存入这些物理块、从这些物理块读取并从这些物理块中擦除。
图3图示根据本发明的一个实施例的、被分割成各个组的物理块,这些组允许更新实质上以失序地写入。物理块300通常可以包括任何数量的页304。如所示的内容,物理块300包括16页304,划分为四组308。因此,可以认为每组308始于来自先前组308的四页304的位移分支处。但是,应该理解,页304的总数、组308的数量和每组308中的页304的数量可能会根据包括(但不局限于)特定存储器系统的各种要求)的各种因素而发生很大变化。
物理块300可能是“更新”物理块,它被安排成包含与逻辑块(未示出)相关的更新内容(有效地取代该逻辑块的较老的内容)。如所示的内容,块300内的第一个组308a的页304a包括与逻辑块(未示出)(与块300有关)的第一页相关的内容312。当内容312写入至页304a时,页304a的数据区和管理开销或冗余区实质上被同时写入。第一个组308a也包括第四页304d,第四页304d包括与逻辑块(未示出)的第四页相关的内容314。
虽然包括在第一个组308a中的页304b、304c实质上是空的,但是,当进一步的更新内容将要被存储在块300中时,这类内容可能不存入页304b、304c。组308内的页304通常只能按序写入,以便一旦较高的页304已被写入,就没有较低的或先前的页304可写入。举例而言,当与对应于块300块的逻辑块(未示出)的第三页相关的内容316将要写入至块300时,内容316将写入于包括在下一个可用的组308(即组308b)中的第三页304g。第二组308b的第三页304g是与块300相关的第七个整页。
当与逻辑块(未示出)的第一页有关的内容312将要由更新内容312’取代时,虽然第二组308b的页304e、304f、304h实质上是空的,但是,更新内容312’可能不写入于第二组308b。相反,更新内容312’被写入第三组308c的第一页304i,这是与块300相关的第九个整页。通常,可以获得新的可用的组308,实质上供随时使用。如果更新内容将要写入于当前组308,则将会发生关于当前组308的局部写入违规或失序违规。应该理解,在更新内容312’写入于第三组308c的第一页304i之前,第二组308b的第四页304h可以被写入,但基本上只具有与逻辑块(未示出)的第四页相关的内容。
一旦更新内容312’写入于第三组308c的第一页304i,那么,如果与逻辑块(未示出)的第三页相关的更新内容316’将要被写入,则更新内容316’可写入于第三组308c内的合适的页,即第三组308c的第三页304k。应该理解,在更新内容316’写入之后,实质上只有与内容314(被写入页304d)相关的更新内容可以被写入组308c。其他内容或更新内容通常写入于第四组308d。例如,当内容318(与逻辑块(未示出)的第二页相关)将写入时,内容318储存于第四组308d的第二页204n。
当内容写入于物理块300时,根据页的顺序,内容按“向下”的方向来写入。但是,当从物理块300读取内容时,按“向上”的方向来读取内容,以便可以读取与任何给出的逻辑页相关的最新近内容,并且可以有效地忽略或不顾与该给出的逻辑页相关的过时的或被取代的内容。换言之,通常在物理块300的开端处开始执行写处理,而通常在物理块300的末端处开始执行读处理。
当与逻辑块(未示出)的各页相关的内容写入于组308时,基本上按失序的方式将该逻辑块的这些页有效地写入于物理块300。也就是说,如果在没有组308的情况下有效地“观察”物理块300,那么,与逻辑块(未示出)的各页相关的内容似乎在物理块300内基本上以失序方式写入,例如,在与逻辑块的第四页相关的内容314写入之后,与逻辑块的第三页相关的内容316才写入。但是,内容实质上在每组308内是按序地写入。实质上在每组308内将内容按序地写入(例如,在第三组308c内),然后,在物理块300方面,内容实质上可有效地失序地写入。
一般而言,逻辑块的页可以被划分为各个逻辑组。通过将逻辑块的页划分或分类成各个逻辑组,可使存储于与该逻辑块相关的物理块的各个物理组中的内容更容易地加以识别。参照图4a,将根据本发明的一个实施例来描述包括各个逻辑组的逻辑块和包括各个物理组的物理块。逻辑块400(包括被分成各个逻辑组408的逻辑页404)与物理块420有相。物理块420(包括被分成各个物理组428的页424)与逻辑块400相关,体现在:安排物理块420包含与逻辑块400相关的内容(例如,新的或更新过的内容)。照此,物理块420可以认为是“更新”物理块,与逻辑块400相关的更新内容可以贮存于该“更新”物理块。
逻辑块400和物理块420通常可以分别包括任何数量的页404、424。页404、424的数量可能取决于包括块400、420的主机系统非易失性存储器系统的各种要求。如所示的内容,虽然页数可能有很大变化,但是,逻辑块400包括32页404,物理块420包括32页424。例如,块400、420可以包括8页、16页、64页、128页或256页。同样,虽然每组408包括8页404,每组428包括8页424,但是,一组中的页数也可能会根据主机系统的要求而发生很大变化。
通常,每个逻辑组408由逻辑组标识符来加以识别,例如,第一个逻辑组408a可识别为“LG1”,而第二个逻辑组408b识别为“LG2”。在一个实施例中,每个逻辑组标识符可能是独特地识别逻辑块400内的逻辑组408的一个位或一系列位。当与逻辑页404相关的内容被存入于物理组428时,这些内容通常与逻辑组标识符(识别这些内容与哪个逻辑组相关)一起加以存储。如所示的内容,当与第一个逻辑组408a的第一页404a相关的更新内容430将要写入于块420并且所有物理组428a都可用时,更新内容430与逻辑组标识符432(将物理页428a的内容识别为与第一个逻辑组408a相关)一起写入于第一个物理组428a的第一页424a。虽然逻辑组标识符432实质上可以被写入物理组428(例如,第一个物理组428a)内的任何页424,但是,通常将逻辑组标识符432写入于物理组428的第一页424(例如,第一个物理组428a的第一页424a)的冗余或管理开销区。
一旦第一个物理组428a与第一个逻辑组408a相关(例如,使用逻辑组标识符432),第一个物理组428a内的页424通常就可以只包含与第一个逻辑组408a内的页404相关的内容。也就是说,在所描述的实施例中,每个物理组428包含与单一逻辑组408相关的内容。在第一个物理组428a是与第一个逻辑组408a有相之后,与第一个逻辑组408a相关的更新过的或新的内容(与按序或根据数字在第一个逻辑页404a“之后”的逻辑页404有相)可以写入或存入于第一个物理组428a内的页424。举例而言,与第八个逻辑页404b相关的更新内容434可以存入于物理页424c。
当与逻辑组408a的第七个逻辑页(未示出)相关的新的或更新过的内容436将要写入于物理块420时,由于这类内容436可能不写入于第一个物理组428a,因此,内容436可写入可用的物理组428(例如,第二个物理组428b)中的合适的页424e。如所示的内容,逻辑组标识符438(将第二个物理组428b的内容识别为与第一个逻辑组408a相关)写入于第二个物理组428b,例如,写入物理组428b的第一物理页424d。然后,如果与第八个逻辑页404b相关的较新的更新内容440将要被写入,则可以将较新的更新内容440写入与第二个物理组428b相关的第八物理页424f。
如果在内容440写入于第二个物理组428b之后将要发生与逻辑块400相关的后续更新,则将这些新的更新内容写入于下一个可用的物理组428。例如,如果新的或更新过的内容422、444、446(分别与第三个逻辑组408c的第二至第四逻辑页404相关)将要写入于物理块420,则将内容422、444、446写入于第三个物理组428c。尤其是,内容422写入于第三个物理组428c的第二页424h,内容444写入于第三个物理组428c的第三页424i,内容446写入于第三个物理组428c的第四页424j。为了容易地将第三个物理组428c识别为与第三个逻辑组408c相关,可将识别第三个逻辑组408c的逻辑组标识符448存入第三个物理组428c,例如,存入与第三个物理组428c的第一物理页424g相关的管理开销区。
为了避免局部写入违规或失序违规,当将要对与逻辑组408a相关的内容进行额外更新时,可将这类更新内容写入第四个物理组428d,即使第三个物理组428c内可能有额外的可用页(例如,页424k),也是如此。如所示的内容,第四个物理组428d包括逻辑组标识符450,逻辑组标识符450将第一个逻辑组408a识别为与第四个物理组428d相关。与逻辑页404a相关的更新内容452存入于物理组428d的第一页4241,而与第一个逻辑组408a的第五逻辑页(未示出)相关的内容454在存储更新内容452之后的某个时刻写入于第四个物理组428d的第五页454p。最后,可以将更新内容456(与逻辑页404b相关)写入第四个物理组428d的第八物理页424s。
一旦物理块420内没有可用的合适的物理组428以便容纳与逻辑块400相关的更新,那么,在一个实施例中,物理块420的内容可以与跟逻辑块相关的“原始”物理块的内容合并,例如,合并成新的物理块,以下将根据图4b和4c来讨论这一点。也就是说,由于逻辑块400通常具有一个以上相关的物理块,因此,可以转化这些物理块(包括物理块420)。在物理块420的内容被合并或转化为一个新的物理块之后,可以获得另一个新的物理块,用作适合存储与逻辑块400相关的更新内容的“更新”物理块。
转化与普通逻辑块相关的物理块通常包括:确定这些物理块中的哪个物理块曾经与逻辑块有更新近的关联,因此,包含与普通逻辑块(例如,逻辑块400)相关的更新近的内容。可以使用更新索引(在第10/281,762号待批美国专利申请中有所描述,该美国专利全文引入于此作参考)来确定多个物理块中的哪个物理块与逻辑块有更新近的关联。通常,当逻辑块具有一个以上相关的物理块并且实质上必须识别将会与该逻辑块相关的一个物理块时,可以从这些物理块中获得更新索引,因为更新索引被安排成:通过来自两个物理块的更新索引的比较,将会识别这两个物理块中的哪个物理块包含与逻辑块相关的更当前的内容。
可以安排更新索引(可以存储于与物理块相关的至少一个管理开销或冗余区中)指出:涉及拷贝或合并处理的两个物理块中的哪个物理块是较老的物理块,以及,这两个物理块中的哪个物理块是较新的物理块或“更新”物理块。例如,可以设置新的物理块的更新索引,以便那个更新索引的值比老的物理块的更新索引高。因此,当检验这些物理块的更新索引以便确定哪个物理块是“更新”物理块时,可以确定:具有较高的更新索引的物理块是“更新”物理块。
图4b图示根据本发明的一个实施例的、与普通逻辑块(例如,图4a中的逻辑块400)相关的较老的物理块和“更新”物理块(例如,图4a中的物理块420)。当物理块420无法接受与图4a中的逻辑块400相关的任何更多的更新时,物理块420的内容实质上可以与物理块460的内容462合并,物理块460可能是与逻辑块400相关的原始物理块。也就是说,可以有效地比较物理块460的内容462和物理块420的内容,以便识别与图4a中的逻辑块400相关的最新近的内容或数据。通常,与图4a中的逻辑块400相关的最新近的更新内容将位于物理块420中。但是,将从物理块460中获得与图4a中的逻辑块400相关的最新近的内容;这些内容从写入于物理块460之后还没有更新。
虽然在一些情况下可以将与图4a中的逻辑块400相关的最新近的内容存入于物理块420,但是,通常将与逻辑块400相关的最新近的内容存入于新近获得的物理块(例如,图4c中的块480)。在涉及物理块420、460的拷贝或合并处理期间,可以在每个块420、460的末端处开始执行读处理。举例而言,可以首先读取块420的页424s。当图4c中的块480用与图4a中的逻辑块400相关的最新近的内容所写入时,块480可以在开端处开始予以写入。
为了确定块420、460中的哪个块是较老的块以及块420、460中的哪个块是包含更新内容的“更新”块,可以比较更新索引470,这些更新索引被存储在与每个块420、460相关的管理开销区中。由于更新索引470指出块420、460中的哪个块较新,因此,当更新索引470b指出块420与图4a中的逻辑块400有更新近的相关时,确定块420是“更新”块。另种方法是,当更新索引470a指出块460与图4a中的逻辑块400有更新近的相关时,确定块460是“更新”块。在所描述的实施例中,由于块420是“更新块”,因此,安排更新索引470b指出:块420有效地比块460更加新。
当读取块420的内容时,可以确定:块420内的哪些内容预期取代块420内的其他内容。举例而言,当读取内容456时,可以确定:内容456实质上取代与图4a中的逻辑块400的第八逻辑页404b相关的任何其他内容。另外,可以使用块420内所存储的逻辑组指示符来促进确定图4a中的哪些逻辑页404与特定组428的内容相关。
如图4c所示,在转化物理块420、460以便识别与图4a中的逻辑块400相关的最新近或当前的内容之后,可以将最新近的内容写入于物理块480。如所示的内容,先前在图4b的物理块460中并且还没有被图4b中的物理块420的任何内容所取代的原始内容462包括在物理块480中,作为物理块420的最高程度的更新内容,即内容452、454、440、456、442、444、446。除了包含与图4a中的逻辑块400相关的最新近的内容以外,物理块480也可以包含一个更新索引,该更新索引实质上可以存储在物理块480内的任何页的管理开销或冗余区中。
当实质上没有更多的更新写入于物理块420时,或当物理块420无法容纳进一步的更新时,通常可以加装物理块480,例如,可以转化图4b中的物理块420、460。当因为进一步的更新不可能存入于图4b中的物理块420,当加装物理块480时,一旦加装物理块480,就可以获得一个新的“更新”物理块。在一个实施例中,可以设置这个新的“更新”物理块中的更新索引,以指出:与物理块480相比,新的“更新”物理块有与图4a中的逻辑块400的更加新近的相关。
参照图5,将根据本发明的一个实施例来描述与执行写处理的一种方法相关的一些步骤,该写处理可认为是失序写处理。在步骤504中开始将一个或多个更新写入于物理块的过程500,其中,获得与当前逻辑块相关的更新。当主机系统提供与该当前逻辑块相关的新的或改变的数据时,可以获得这个更新。一旦获得这个更新,就可以在步骤508中确定:这个更新可以写入于其中的“更新”物理块内是否具有合适的物理组。如上所述,“更新”物理块可以是这样一种物理块,该物理块被安排成包含与当前逻辑块相关的更新过的或新的信息,并且实质上被划分为由物理组号码来识别的各个组,每一个组可以对应于当前逻辑块的一个逻辑组。
当确定有一个可用的或合适的组时,指出:要么当前组(即将要写入于的最新近的那个组)具有更新的空间,要么有一个可以写入于的新的组。相应地,工序流程进行到步骤512,其中,更新写入于“更新”物理块中的合适的那个组。通常,除了将更新写入那个合适的组以外,识别与更新相关的逻辑组的标识符也写入于那个合适的组。
一旦更新写入于合适的组,就可在步骤516中确定是否具有更多与当前逻辑块相关的更新。如果确定具有更多与当前逻辑块相关的更新,那么,工序流程返回到步骤504,其中,获得与当前逻辑块相关的下一个更新。另种方法是,如果确定没有更多与当前逻辑块相关的更新,那么,当前物理块的内容(例如,包含“原始”内容的物理块的内容,在曾经有效地处理与当前逻辑块相关的更新之前,该“原始”内容是与当前逻辑块相关)可以在步骤520中适当地与“更新”物理块的内容合并。在一个实施例中,这两个物理块的内容可以合并成一个新的当前物理块。在合并或转化当前物理块和“更新”物理块的内容之后,完成写入一个或多个更新的过程。
返回到步骤508,如果确定与当前逻辑块相关的当前更新可写入于其中的“更新”物理块内没有可用的组,那么,工序流程进行到其中获得新的当前物理块的步骤524。尤其是,在所描述的实施例中,与当前逻辑块相关的当前物理块的内容和“更新”物理块的内容适当地合并或转化成单一物理块。一旦该单一物理块(是与当前逻辑块相关的新的当前物理块)用与当前逻辑块相关的最新近的信息而予以写入,就在步骤528中获得新的“更新”物理块,与当前逻辑块相关的更新可以存入于这个新的“更新”物理块。在一个实施例中,获得这个新的“更新”物理块可以包括:将与这个新的“更新”物理块相关的更新索引根据当前物理块中的更新索引的值设置为一个合适的值。
在获得新的“更新”物理块之后,可以在步骤532中将与当前逻辑块相关的当前更新写入于新的“更新”物理块内的第一个组。通常,更新与识别跟该更新相关的当前逻辑块中的逻辑组的标识符一起写入于第一个物理组。然后,工序流程进行到步骤516,其中,确定是否具有更多与当前逻辑块相关的更新。
一般而言,软件中提供与执行、维修和利用电源管理块相关的功能性(例如,作为程序编码设备或包括非易失性存储器或非易失性存储部件的主机系统的固件)。图6中示出与该软件或固件有关的合适的系统结构的一个实施例,为主机系统提供该系统结构,以允许执行、维修和使用电源管理块。系统结构700通常包括各种模块,这些模块可以包括(但不局限于)应用程序接口模块704、系统管理器模块708、数据管理器模块712、数据完整性管理器716,以及设备管理器和接口模块720。一般而言,可以使用由处理器(例如,图2a中的处理器108)所存取的软件编码设备或固件,来执行系统结构700。
一般而言,可以安排应用程序接口模块704与非易失性存储器(例如,快闪存储器(未示出))进行通信,或者,更通常的情况是与媒体进行通信,以便在初始化或系统格式化、请求的过程中对该媒体进行初始化。应用程序接口模块704也可以从与该相关的扇区、簇或页读取,并对其写入。通常,除了与媒体进行通信以外,应用程序接口模块704也跟系统管理器模块708和数据管理器模块712进行通信。
系统管理器模块708包括系统初始化子模块724、擦除计数块管理子模块726和电源管理块子模块730。系统初始化子模块724通常被安排成对初始化请求加以处理,并且,它通常与擦除计数块管理子模块726进行通信。擦除计数块管理子模块726包括促使擦除计数块予以存储的功能性,以及使用单独的擦除计数来促使计算并更新平均擦除计数的功能性。系统初始化模块724安排成转化“一对许多”的逻辑-物理块指派,并且(因此)可以利用更新索引。
除了与应用程序接口模块704进行通信以外,系统管理器模块708也与数据管理器模块712以及设备管理器和接口模块720进行通信。数据管理器模块712(既与系统管理器模块708进行通信,又与应用程序接口模块704进行通信)可以包括提供扇区变换(有效地将逻辑扇区转变成物理扇区)的功能性。也就是说,安排数据管理器模块712将逻辑块为物理块。数据管理器模块712也可以包括与操作系统和文件系统中间层相关的功能性,并且对块内的各组加以管理,待批美国专利申请10/281,855号中对此有所描述,该美国专利申请全文引入于此作参考。在一个实施例中,可以安排数据管理器模块712允许发生实质上失序的写处理。
设备管理器和接口模块720(与系统管理器模块708、数据管理器712和数据完整性管理器716进行通信)通常提供一个快闪存储器接口,并且包括与硬件抽象层(例如,I/0接口)相关的功能性。在其他功能之中,数据完整性管理器模块716提供ECC处理。
虽然只描述了本发明的一些实施例,但是,应该了解,在不脱离本发明的精神或范围的前提下,本发明可以在许多其他的特殊形式中得到具体表现。举例而言,允许发生实质上失序的写入的组的运用通常被描述成与NAND存储器(例如,MLC NAND存储器)是相关的。但是,一般而言,至于实质上任何合适的存储器或存储系统,可以执行涉及将块划分为各个组的实质上失序的写入。
已将更新索引描述成适合用于允许转化“更新”物理块和当前物理块。但是,应该理解,可以使用实质上任何合适的方法(例如,不涉及使用更新索引的方法)来允许转化多个物理块。
与本发明的各种方法有关的步骤可能会发生很大变化。一般而言,在不脱离本发明的精神或范围的前提下,可以增加、取消、重新安排和更改步骤。例如,当与逻辑块内的特定逻辑组相关的更新将要被写入于“更新”物理块内的一个合适的物理组并且那个更新是将要写入于该物理组的第一个更新时,写入该更新可以包括:将标识符写入物理组,该标识符将标识与逻辑组相关的物理组。这种指示符可以写入于物理组的实质上任何一页,同时,这种指示符经常写入于第一页,即物理组的起始页。应该理解,可以在写入更新之前写入指示符,或者,可以实质上在更新的同时(例如,当更新写入于物理组的第一页时)写入指示符。所以,目前的这些例子可认为是说明性的,而不是限制性的;并且,本发明不局限于这里所提供的细节,而可以在所附的如权利要求书的范围内加以修改。

Claims (9)

1.一种用于执行非易失性存储器系统中的写操作的方法,该非易失性存储器系统包括一个具有多个擦除单元的MLC NAND非易失性存储器,每一擦除单元包括以一顺序布置的多个编程单元,每一编程单元包括多个非易失性存储单位,其中第一逻辑块可映射到一个或一个以上擦除单元,且包含以一顺序布置的多个逻辑页,所述方法包括:
将与所述第一逻辑块相关联的数据写入到原始擦除单元,其中所述第一逻辑块映射到所述原始擦除单元,使得与所述逻辑页相关联的数据顺序写入到所述原始擦除单元中对应的编程单元;
将第一更新擦除单元中的所述编程单元分组为多个编程单元的分组,以一顺序布置在每一分组中的所述编程单元包括第一编程单元、第二编程单元和第三编程单元;
将更新的第一逻辑页的内容写入到在所述第一更新擦除单元的编程单元的第一分组中的所述第一编程单元;
将更新的第三逻辑页的内容写入到编程单元的所述第一分组的所述第三编程单元,所述第三逻辑页在逻辑页的顺序中较后于所述第一逻辑页,且所述第三编程单元在所述第一分组的编程单元的顺序中较后于所述第一编程单元和所述第二编程单元;
接收所述第一逻辑块的更新的第二逻辑页的内容,所述第二逻辑页在逻辑页的顺序中较前于所述第三逻辑页;
确定所述第一更新擦除单元中的编程单元的所述分组之一是否可用于写入;
响应于所述第一更新擦除单元中的编程单元的分组可用,将所述第二逻辑页的更新的内容写入到所述第一更新擦除单元的编程单元的可用分组中的编程单元中;且
响应于所述第一更新擦除单元中的编程单元的所述分组都不可用,将存储在所述原始擦除单元中的与所述第一逻辑块相关联的内容和存储在所述第一更新擦除单元中的所述第一逻辑块的更新的内容合并到第二更新擦除单元中。
2.如权利要求1所述的方法,其中写入所述第二逻辑页的更新的内容进一步包括:
在写入所述第二逻辑页的更新的内容之后,将第四逻辑页的更新的内容写入到所述可用分组的编程单元中,所述第四逻辑页在逻辑页中的顺序较后于所述第二逻辑页。
3.如权利要求1所述的方法,其中每一所述擦除单元都是物理块;且其中每一所述编程单元都是物理页。
4.如权利要求3所述的方法,其特征在于,所述第一个逻辑页包括在所述第一逻辑块中的第一逻辑分组中,且所述第四逻辑页包含在所述第一逻辑块中的第二逻辑分组中;
且其中所述方法进一步包括:
将第一个指示符写入编程单元的所述第一分组,所述第一个指示符将编程单元的所述第一分组识别为是与所述第一逻辑分组相关的;及
将第二个指示符写入编程单元的所述可用分组,所述第二个指示符将编程单元的所述可用分组识别为是与所述第二逻辑分组相关的。
5.如权利要求1所述的方法,其中写入所述第二逻辑页的更新的内容的步骤将所述内容写入到所述第一更新擦除单元的编程单元的所述可用分组中的第二编程单元中,所述第二编程单元在编程单元中的顺序较后于所述可用分组中的第一编程单元,且在编程单元的顺序中较前于所述可用分组中的第三编程单元。
6.一非易失性存储器系统,其包括:
具有多个擦除单元的MLC NAND非易失性存储器,每一擦除单元包含以一顺序布置的多个编程单元,每一编程单元包含多个非易失性存储器单位,
映射构件,其用于将多个逻辑块的每一者映射到对应的擦除单元,每一逻辑块包含多个逻辑页;和
控制构件,其用于根据所述擦除单元中的编程单元的分组来控制将内容写入所述非易失性存储器,依顺序布置在每一分组中的所述编程单元包括第一编程单元、第二编程单元和第三编程单元,所述控制构件根据下列步骤顺序操作:
将与第一逻辑块相关联的数据写入到原始擦除单元,其中所述第一逻辑块映射到所述原始擦除单元,使得与所述逻辑页相关联的数据顺序写入到所述原始擦除单元中对应的编程单元;
将第一逻辑页的内容写入到第一更新擦除单元的编程单元的第一分组中的所述第一编程单元中;
接着将更新的第三逻辑页的内容写入到编程单元的所述第一分组的所述第三编程单元,所述第三逻辑页在逻辑页中的顺序较后于所述第一逻辑页,且所述第三编程单元在编程单元中的顺序较后于所述第一编程单元和所述第二编程单元;且
接收所述第一逻辑块的更新的第二逻辑页的内容,所述第二逻辑页在逻辑页中的顺序较前于所述第三逻辑页;
确定所述第一更新擦除单元中的编程单元的所述分组之一是否可用于写入;
响应于所述第一更新擦除单元中的编程单元的分组可用,将所述第二逻辑页的更新的内容写入到所述第一更新擦除单元的编程单元的可用分组中的编程单元中;且
响应于所述第一更新擦除单元中的编程单元的所述分组都不可用,将存储在所述原始擦除单元中的与所述第一逻辑块相关联的内容和存储在所述第一更新擦除单元中的所述第一逻辑块的更新的内容合并到第二更新擦除单元中。
7.如权利要求6所述的非易失性存储器系统,其中所述控制构件包括:
用于执行所述顺序操作的编码装置;和
处理器,其用于存储并执行所述编码装置。
8.如权利要求7所述的非易失性存储器系统,其中每一所述擦除单元都是物理块;
其中每一所述编程单元都是物理页。
9.如权利要求6所述的非易失性存储器系统,其中写入所述第二逻辑页的更新的内容的操作将所述内容写入到所述第一更新擦除单元的编程单元的所述可用分组中的第二编程单元,所述第二编程单元在编程单元中的顺序较后于所述可用分组中的第一编程单元,且所述第二编程单元在编程单元中的顺序较前于所述可用分组中的第三编程单元。
CNB2003101046428A 2002-10-28 2003-10-28 非易失性存储器系统内有效允许失序写处理的方法和装置 Expired - Fee Related CN100538659C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42172502P 2002-10-28 2002-10-28
US60/421,725 2002-10-28

Publications (2)

Publication Number Publication Date
CN1499530A CN1499530A (zh) 2004-05-26
CN100538659C true CN100538659C (zh) 2009-09-09

Family

ID=32094172

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101046428A Expired - Fee Related CN100538659C (zh) 2002-10-28 2003-10-28 非易失性存储器系统内有效允许失序写处理的方法和装置

Country Status (5)

Country Link
US (1) US7526599B2 (zh)
EP (1) EP1416386A3 (zh)
JP (1) JP4424965B2 (zh)
KR (1) KR100977899B1 (zh)
CN (1) CN100538659C (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
TWI232466B (en) * 2003-10-28 2005-05-11 Prolific Technology Inc Method for updating data of non-volatile memory
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
EP2977906A1 (en) * 2004-04-28 2016-01-27 Panasonic Corporation Nonvolatile storage device and data write method
TWI254205B (en) * 2004-11-01 2006-05-01 Benq Corp Bidirectional data storing method
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
JP2009503743A (ja) * 2005-08-03 2009-01-29 サンディスク コーポレイション データファイルを直接記憶するメモリブロックの管理
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
JP4661497B2 (ja) * 2005-09-27 2011-03-30 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
TW200732913A (en) * 2006-02-24 2007-09-01 Benq Corp Memory allocation method and system
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
ATE440322T1 (de) * 2006-06-29 2009-09-15 Incard Sa Komprimierungsverfahren zur verwaltung der speicherung von persistenten daten eines nichtflüchtigen speichers in einen sicherungspuffer
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) * 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
JP5083757B2 (ja) * 2007-04-19 2012-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
KR101270685B1 (ko) * 2007-08-24 2013-06-03 삼성전자주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
JP4210318B1 (ja) * 2007-11-28 2009-01-14 株式会社京都ソフトウェアリサーチ データ格納システムおよびデータ格納プログラム
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8688896B2 (en) * 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8266325B2 (en) 2010-02-05 2012-09-11 International Business Machines Corporation Compression on thin provisioned volumes using extent based mapping
US8880783B2 (en) * 2011-07-05 2014-11-04 Kandou Labs SA Differential vector storage for non-volatile memory
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
CN103577330B (zh) * 2012-07-27 2018-09-11 中兴通讯股份有限公司 一种内容存储方法及装置
US9268682B2 (en) * 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US20140281194A1 (en) 2013-03-15 2014-09-18 Seagate Technology Llc Dynamically-sizeable granule storage
WO2015016926A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Versioned memory implementation
US9645924B2 (en) 2013-12-16 2017-05-09 International Business Machines Corporation Garbage collection scaling
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9778864B2 (en) * 2015-03-10 2017-10-03 SK Hynix Inc. Data storage device using non-sequential segment access and operating method thereof
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US11294827B2 (en) 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
DE69034227T2 (de) * 1989-04-13 2007-05-03 Sandisk Corp., Sunnyvale EEprom-System mit 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
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5488711A (en) * 1993-04-01 1996-01-30 Microchip Technology Incorporated Serial EEPROM device and associated method for reducing data load time using a page mode write cache
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5930815A (en) 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
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
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
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
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
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
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
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 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
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
JP2002175211A (ja) * 2000-12-07 2002-06-21 Sharp Corp データ管理システムおよびデータ管理方法
US6970890B1 (en) * 2000-12-20 2005-11-29 Bitmicro Networks, Inc. Method and apparatus for data recovery

Also Published As

Publication number Publication date
JP2004164633A (ja) 2004-06-10
JP4424965B2 (ja) 2010-03-03
KR100977899B1 (ko) 2010-08-24
EP1416386A3 (en) 2006-10-25
US7526599B2 (en) 2009-04-28
KR20040038706A (ko) 2004-05-08
CN1499530A (zh) 2004-05-26
EP1416386A2 (en) 2004-05-06
US20040103241A1 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
CN100538659C (zh) 非易失性存储器系统内有效允许失序写处理的方法和装置
US7890732B2 (en) Memory card and semiconductor device
CN100487672C (zh) 用于分割一逻辑块的方法及设备
EP1576478B1 (en) Method and apparatus for grouping pages within a block
JP4750766B2 (ja) 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作
CN101233480B (zh) 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统
CN102831071B (zh) 用于存储器装置的存储地址重新映射的方法和系统
US7814262B2 (en) Memory system storing transformed units of data in fixed sized storage blocks
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
CN102203873A (zh) 重编程页而不向存储器设备重输数据的页缓冲器编程命令和方法
TW200535608A (en) Adaptive mode switching of flash memory address mapping based on host usage characteristics
WO2000002126A1 (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
CN102483685B (zh) 具有附属文件系统的多堆非易失性存储器系统
KR20020092261A (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
US7234036B1 (en) Method and apparatus for resolving physical blocks associated with a common logical block
CN101030172A (zh) 用于编程与非闪存和存储系统的方法
WO2004040454A2 (en) Method and apparatus for performing multi-page write operations in a non-volatile memory system

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

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

Effective date of registration: 20120427

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

Granted publication date: 20090909

Termination date: 20201028

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