CN1902599B - 将数据更新到非易失性存储器系统和操作该系统的方法 - Google Patents

将数据更新到非易失性存储器系统和操作该系统的方法 Download PDF

Info

Publication number
CN1902599B
CN1902599B CN2004800392981A CN200480039298A CN1902599B CN 1902599 B CN1902599 B CN 1902599B CN 2004800392981 A CN2004800392981 A CN 2004800392981A CN 200480039298 A CN200480039298 A CN 200480039298A CN 1902599 B CN1902599 B CN 1902599B
Authority
CN
China
Prior art keywords
block
data
page
data unit
address
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
CN2004800392981A
Other languages
English (en)
Other versions
CN1902599A (zh
Inventor
凯文·M·康利
卡洛斯·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.)
SanDisk Technologies LLC
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 CN1902599A publication Critical patent/CN1902599A/zh
Application granted granted Critical
Publication of CN1902599B publication Critical patent/CN1902599B/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

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

Abstract

本发明揭示一种非易失性存储器系统,其为一类具有多个一起擦除并且可从每区块大量页面的单位中的一擦除状态编程的存储器单元区块的非易失性存储器系统。如果将要更新一区块的仅几个页面的数据,则将所述更新页面写入另一为此目的而提供的区块中。以一不必对应其原始地址偏移的顺序将来自多个区块的更新页面编程至所述另一区块中。接着在一后来时间组合有效的原始和更新数据,当如此进行组合时不会影响所述存储器的性能。然而,如果要更新一区块的大量页面的数据,则将所述更新页面写入一未用擦除区块中,并且还将未改变页面写入所述相同未用区块中。通过不同地处理几个页面的更新,在进行较小更新时会改进存储器性能。存储器控制器可响应所述存储器系统的主机的使用率动态地建立并操作这些其它区块。

Description

将数据更新到非易失性存储器系统和操作该系统的方法
技术领域
本发明大体涉及半导体非易失性存储器系统(例如,快闪存储器)的操作,且更明确地说,涉及所述具有很大可擦除存储器单元区块且存取用以编程并读取数据的更小单位中的区块的存储器系统的操作。 
背景技术
存在许多如今使用的商业成功的非易失性存储器产品,尤其是以较小形状因数卡的形式,其使用形成于一个或一个以上集成电路芯片上的快闪EEPROM(电可擦除和可编程只读存储器)单元的阵列。通常但不必在分离集成电路芯片上的存储器控制器,与所述卡可移除式与其连接的主机接合(interface)并且控制所述卡内的存储器阵列的操作。此类控制器通常包含微处理器、某非易失性只读存储器(ROM)、易失性随机存取存储器(RAM)与一个或一个以上特殊电路,例如当数据于数据的编程和读取期间通过控制器时计算自数据的错误校正码(ECC)的特殊电路。某些商用卡为CompactFlashTM(CF)卡、多媒体卡(MMC)、安全数字(SD)卡、智能媒体卡、个人标签(P-Tag)与存储器棒卡。主机包含个人计算机、笔记本计算机、个人数字助理(PDA)、各种数据通信装置、数码相机、蜂窝式电话、可携式音频播放器、汽车音响系统和相似类型的装备。除存储卡实施方案以外,此类型的存储器另外可嵌入各类型的主机系统中。 
二种一般存储器单元阵列架构具有商业应用,即NOR与NAND。在典型NOR阵列中,存储器单元连接于在列方向上延伸的邻近位线源极扩散与漏极扩散之间,控制栅极连接至沿单元的行延伸的字线。存储器单元包含至少一个存储元件,其定位在源极与漏极之间的单元通道区域的至少一部分上。存储元件上的电荷的编程电平因此控制单元的操作特征,其接着可通过施加适当的电压于定址存储器单元而加以读取。此类单元的实例、其在存储器系统中的使用和制造此类单元的方法提供在美国专利第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053与6,222,762号中。 
NAND阵列利用二个以上的存储器单元(例如16或32)的序列串,其与个别位线与参考电位之间的一个或一个以上选择晶体管连接,以形成单元的列。字线跨越大量所述列内的单元而延伸。通过引起串中的其余单元难以开启,使得流经串的电流取决于存储在定址单元中的电荷的电平,在编程期间读取并验证列内的个别单元。在美国专利第5,570,315、5,774,397、6,046,935与6,522,580号中可找到NAND架构阵列的实例和其作为存储器系统的一部分的操作。 
以上参考专利中所说明的当前快闪EEPROM阵列的电荷存储元件为最普通的导电浮动栅极,通常由导电掺杂的多晶硅材料所形成。可用于快闪EEPROM系统的存储器单元的替代类型,利用非导电介电材料而代替导电浮动栅极,以采用非易失性方式存储电荷。由氧化硅、氮化硅与氧化硅(ONO)形成的三个介电层,夹在导电控制栅极与存储器单元通道上的半导电衬底表面之间。通过将自单元通道的电子注入氮化物中而编程单元,其中电子被捕获并存储在有限区域中,而且通过将热空穴注入氮化物中而加以擦除。使用介电存储元件的数个特定单元结构和阵列由Harari等人说明于美国专利申请公告案第2003/0109093号中。 
如在大多数集成电路应用中一样,快闪EEPROM存储器单元阵列中还存在实施某集成电路功能所需要的收缩硅衬底区域的压力。不断需要增加可以存储在硅衬底的给定区域中的数字数据的数量,以便增加给定尺寸存储卡和其它类型的封包的存储容量,或增加容量并减小尺寸。增加数据的存储密度的一个方法是每存储器单元和/或每存储单位或元件存储一个以上的数据位。完成此是通过将存储元件的电荷电平电压范围视窗划分为二种以上的状态。四种此类状态的使用使各单元可存储二个数据位,八种状态存储每存储元件三个数据位,以此类推。存储单元的电荷电平可控制其存储器单元的阈值电压(共同参考为VT),其用作读取单元的存储状态的偏压。将阈值电压视窗共同划分为许多范围,一个范围用于存储器单元的二个或多个存储状态的各状态。所述范围由防护频带所分离,所述频带个别地包含用以读取个别单元的存储状态的标称感测参考电平。 
采用浮动栅极和其操作的多状态快闪EEPROM结构说明于美国专利第5,043,940与5,172,338号中,并且用于采用上述美国专利申请案第10/280,352号中的介电浮动栅极的结构。采用美国专利第5,930,167与6,456,528号中所说明的方式,还可因各种原因而在二种状态(二进制)中操作多状态存储器单元阵列的选择部分。 
将典型快闪EEPROM阵列的存储器单元划分为一起擦除的单元的离散区块。也就是说,区块为擦除单位,即最小数量的同时可擦除的单元。各区块通常存储一个或一个以上数据页面,所述页面为最小编程和读取单位,虽然在不同子阵列或平面中可并行编程或读取一个以上的页面。各页面通常存储一个或一个以上数据区段,由主机系统定义区段的尺寸。示范性区段包含遵循采用磁盘驱动器建立的标准的用户数据的512个字节,加上关于用户数据和/或其中存储数据的区块的开销信息的某数量的字节。此类存储器通常采用各区块内的16、32或更多页面所配置,并且各页面存储数据的一或仅几个主机 区段。 
为了在将用户数据编程于存储器阵列中并从存储器阵列读取用户数据期间增加并行的程度,通常将阵列划分为共同称为平面的子阵列,其包含其自己的数据寄存器和其它电路以允许并行操作,使得可同时将数据区段编程于数个或所有平面的各平面,或者从各平面读取所述数据区段。可将单一集成电路上的阵列物理划分为若干平面,或可由分离的一个或一个以上集成电路芯片而形成各平面。此类存储器实施方案的实例说明于美国专利第5,798,968与5,890,192号中。 
为了进一步有效率地管理存储器,可将区块接在一起以形成虚拟区块或元区块(metablock)。也就是说,将各元区块定义成包含自数个或所有平面的各平面的一个区块。元区块的使用说明于美国专利申请公告案第2002-0099904号中。由主机逻辑区块地址将元区块识别为用以编程并读取数据的目的地。同样地,一起擦除元区块的所有区块。采用此类大型区块和/或元区块操作的存储器系统中的控制器执行许多功能,包含从主机接收的逻辑区块地址(LBA)与存储器单元阵列内的物理区块号(PBN)之间的转换。还可使用逻辑区块号(LBN)的中间数量,一个LBN通常指定一定范围的LBA,其包含等于元区块的一个或一个以上存储器阵列区块的存储容量的数据的数量。通常由区块地址内的偏移而识别区块内的个别页面。地址转换通常涉及到使用逻辑区块号(LBN)和逻辑页面。 
在理想情况下,通过将更新数据写入未指定擦除区块内的各页面而一起更新区块的所有页面中的数据,并且接着采用新地址而更新逻辑至物理区块号表格。原始区块接着可得到擦除并放置在擦除区块集区中以备将来使用。然而,更典型的是必须更新存储在少于给定区块内的所有页面的许多页面中的数据。存储在给定区块的其余页面中的数据保持不变。此出现的机率在每区块存储的数据的页面数较高的系统中较高。现在用以完成此类部分区块更新的一项技术将要更新的页面数据写入擦除区块的对应数量的页面中,并接着将自原始区块的未改变页面复制到新区块的页面中。原始区块接着可得到擦除并加入擦除区块集区。随着时间,作为重新写入并更新的主机数据文件的结果,许多区块可以以下列情况而告终:其相对少数页面包含有效数据,而其余页面包含不再为当前数据的数据。为了能够有效率地使用阵列的数据存储容量,有效数据的逻辑相关数据页面是有时从多个区块当中的片断收集在一起,并且一起合并至较少量的区块中。此程序通常命名为术语「垃圾收集」。 
另一技术同样地将更新页面写入不同于包含原始数据的区块的区块,但消除将其它数据页面复制到新区块中的需要,所述消除是通过适当地标记数据来区分更新数据与由相同逻辑地址所识别的替代数据。此为上述美国公布的申请案第2002-0099904号所说明 的主题。接着当读取数据时,将从新区块的页面所读取的更新数据与从保持为当前区块的原始区块的页面所读取的未改变数据组合,而忽视无效替代数据。 
存储器系统控制器优选能通过其结构和控制固件而引起数据得到编程,并在由主机施加于其上的各种条件下得到读取。在一个极端,可以采用高速率而接收音频、视频或其它流动数据,并且要求存储器系统实时存储数据。在另一极端,主机可引起存储器系统偶尔一次编程数据的一个区段,或一起编程具有非序列逻辑地址的数个单一数据区段。也可以频繁地更新相同数据区段。此类单一区段编程可以出现在(例如)写入或更新存储于阵列中的文件配置表格(FAT)时。此类对大型擦除区块存储器进行的操作所呈现的问题是:需要频繁的垃圾收集以便有效率地利用存储器的存储容量。控制器需要暂停其主要将数据传入存储器并从存储器传出数据的功能,以便执行垃圾收集,因而不利地影响系统性能。 
发明内容
因此,维持至少二个不同的机制以依据从主机所接收的写入指令的特征而编程数据,以便增加存储器系统的总性能。一般而言,以采用任一类型的操作而最佳化存储器系统性能的方法,不同于序列定址数据的存储而处理非序列定址数据的存储。 
在示范性实施方案中,不同于编程相对于个别逻辑区块或元区块的存储容量而较大的大量数据单位的主机指令,操纵编程数据的单一主机单位(host unit)(区段为共同实例)的主机指令,所述单位即具有序列逻辑地址的少量单位或具有非序列逻辑地址的数据的单位。将单一少量序列数据单位或非序列数据单位写入第一类型的指定逻辑区块或元区块,而将大量序列数据单位写入第二类型的指定逻辑区块或元区块。第一类型的指定区块或元区块(本文中参考为E1)接收在逻辑地址的较大范围内扩展的数据的更新,而第二类型的指定区块或元区块(本文中参考为E2)接收存储在限于单一区块的逻辑地址的范围内的数据的更新。此外,如果单一或非序列数据单位比具有周围逻辑地址的其它数据单位得到更频繁地更新,则可将更新存储在第一类型的指定逻辑区块或元区块中,所述区块专用于所述单位(本文中参考为dE1)的逻辑地址范围。 
采用所述指定区块的主要结果减少在更新可存储在区块中的较少数据时当前会变得有必要的数据合并的数量。更新数据不必在单一物理区块中与相同逻辑区块的未改变数据立即重新组合,从而改进系统性能。可延迟此类重新组合,直至其较少干扰存储器系统的获得与数据的存储。此外,优选动态形成各指定区块,以适应所接收的编程指令,从而调适存储器系统用于大范围各种数据存储应用中的高性能操作。 
本发明的另外方面、特征与优点包含在以下示范性具体实施例的说明中,所述说明应结合附图加以阅读。因此本文参考的所有专利、专利申请案、文章公告与其它文件是因所有目的而全部以此引用的方式并入本文中。 
现有大型区块管理技术说明 
图1显示典型快闪存储器装置的内部架构。主要特征包含接合外部控制器的输入/输出(I/O)总线411和控制信号412,采用指令、地址与状况信号的寄存器而控制内部存储器操作的存储器控制电路450。包含快闪EEPROM单元的一个或一个以上阵列400,各阵列具有其自己的行解码器(XDEC)401与列解码器(YDEC)402、读出放大器(senseamplifier)与程序控制电路(SA/PROG)454和数据寄存器404的一群组。目前,存储器单元通常包含一个或一个以上导电浮动栅极作为存储元件,但是可改为使用其它长期电子电荷存储元件,包含电荷捕获电介质。存储器单元阵列可采用定义用于各存储元件的二个电荷电平加以操作,从而采用各元件存储一个数据位。或者,可将二种以上的存储状态定义用于各存储元件,在此情况下将一个以上的数据位存储于各存储元件中。 
如果需要,则提供复数个阵列400,各阵列具有其相关联的X解码器、Y解码器、程序/验证电路、数据寄存器和类似物,例如由美国专利第5,890,192号所讲述,发布日期为1999年3月30日,并转让给Sandisk Corporation公司,即本发明的受让人,所述专利全部以此引用的方式并入本文中。相关存储器系统特征说明于共同待决的专利申请案第09/505,555号中,由Kevin Conley等人于2000年2月17日提出申请,所述申请案全文以此引用的方式清楚地并入本文中。 
外部接口I/O总线411与控制信号412可以包含以下: 
CS-芯片选择用以启动快闪存储器接口。 
RS-读取选通用以指示I/O总线是用以传输自存储器阵列的数据。 
WS-写入选通用以指示I/O总线是用以传输至存储器阵列的数据。 
AS-地址选通指示I/O总线是用以传输地址信息。 
AD[7:0]-地址/数据总线此I/O总线用以传输控制器与存储器控制450的快闪存储器指令、地址与数据寄存器之间的数据。 
此接口仅提供作为实例,因为可以改为使用其它提供相同功能的信号配置。图1显示仅一个具有其相关组件的快闪存储器阵列400,但是多个此类阵列可以存在于单一快闪存储器芯片上,所述阵列共享共同的接口与存储器控制电路,但是具有分离的XDEC、YDEC、SA/PROG与DATA REG电路,以便允许在各阵列当中进行并行读取和编程操作。 
在经由数据寄存器404的存储器阵列与经由耦合至I/O总线AD[7:0]411的数据寄 存器的外部控制器之间传输数据。数据寄存器404还耦合读出放大器/编程电路454。耦合至各读出放大器/编程电路元件的数据寄存器的元件的数量可取决于存储在存储器单元的各存储元件中的位的数量。以一种普通形式,快闪EEPROM单元各包含一个或一个以上浮动栅极作为电荷存储元件。如果存储器单元是在多状态模式中操作,则各电荷存储元件可存储复数个位,例如2或4个位。或者,存储器单元可在二进制模式中操作,以每存储元件存储一个数据位。 
行解码器401解码用于阵列400的行地址,以便选择要存取的物理页面。行解码器401经由内部行地址线路419从存储器控制逻辑450接收行地址。列解码器402经由内部列地址线路429从存储器控制逻辑450接收列地址。 
图2显示典型非易失性数据存储系统的架构,在此情况下一个系统使用快闪存储器单元作为存储媒体。以一种形式将此系统包封在具有沿一侧延伸的电性连接器的可移除卡内,以在被插入主机的插座时提供主机接口。或者,图2的系统可以永久性安装嵌入电路的形式或其它形式而得以嵌入主机系统中。所述系统利用单一控制器301,其执行高电平主机和存储器控制功能。快闪存储器媒体由一个或一个以上快闪存储器装置所组成,各类此装置通常形成于其自己的集成电路芯片上。系统控制器与快闪存储器由总线302所连接,所述总线302使控制器301可载入指令、地址,并传输数据至快闪存储器阵列而且从所述阵列载入数据。控制器301与主机系统(图中未显示)接合,用户数据即采用所述主机系统而传输至快闪存储器阵列并从所述阵列传输。在将图2的系统包含在卡中的情况下,主机接口包含卡和主机设备上的匹配插头与插座组合件(图中未显示)。控制器301从主机接收指令,以读取或写入在特定逻辑地址开始的用户数据的一个或一个以上区段。此地址可能会或可能不会与存储器单元的物理区块的边界对准。 
通常将快闪存储器阵列400划分为二或多个子阵列(本文中称为平面),图3说明二个此类平面400a与400b。大量平面(例如四或八个平面)可另外包含在存储器阵列400中。为了便于说明,各平面显示出具有16个物理区块0至15,而实际平面将通常包含更多的区块。区块包含最少量可一次擦除的存储器单元,即擦除单位。各个平面分别具有其自己的数据寄存器404a与404b,和编程电路454a与454b。此允许同时将数据编程至平面400a与400b的各平面的存储器单元区块中。各个平面可稍微独立于另一平面而操作为子阵列。 
为了便于说明,图4显示图3的区块的一包含数据的十六页面0至15的区块,因为各区块很可能包含更多页面。一页面包含在一次编程操作中可一起编程的最少量存储器单元,即可编程单位。各页面依次存储自主机的一个或一个以上数据区段,通常将由 存储器控制器所产生的某开销(overhead)数据加入所述主机。存储在一页面中的数据区段的一实例在图5中显示成包含用户数据441,其从主机加上开销数据443所获得,所述开销数据443包含用户数据441和/或其中存储数据区段的物理区块的信息。区段中的用户数据441的数量可以方便为数据的512字节。此存储单位在以下情况下尤其有用:将存储器系统用于以数据区段的单位将数据传输至存储器并从存储器传输数据的主机,其包含大多数个人计算机。对于用户数据的512字节的各字节而言,开销数据可以约为16字节。 
如果采用二进制状态操作存储器系统,其中将一个数据位存储在各存储器单元存储元件中,则一个用户数据区段加上开销数据会占用528个存储器单元。如果在四种状态中操作存储器单元,从而每单元存储二个数据位,则需要许多单元的仅一半来存储单一数据区段,或相同数量的单元可以存储二个数据区段,例如在各单元存储自二个数据区段的各数据区段的一个位情况下。采用每存储元件较大数量的状态进行操作会进一步增加阵列的数据存储密度。 
如以上所说明,在某些具有划分为多页面的较大容量存储器单元区块的现有技术系统中,未更新的区块中的页面的数据需要从原始区块复制到新区块,其还包含已由主机所写入的新更新数据。此技术说明于图6中,其中显示图3的平面之一的各区块中的二个,例如平面0的区块3与13。通过所示的更新数据的四页面而更新原始区块3的页面7至10内的数据。将新数据写入未用擦除区块13的对应页面7至10中。接着将自原始区块3中的页面0至6和11至15的未改变用户数据复制至新区块13的对应页面中。优选在编程操作的单一序列中编程新区块13的所有页面。在完全编程区块13的后,擦除原始区块3并将其放置在擦除区块集区中以备后来使用。区块3与13之间的数据的复制,其涉及到读取自原始区块中的一或多页面的数据并随后编程相同数据至最新指定区块中的页面,会不利地影响存储器阵列的写入性能与可用寿命。 
参考图7A与7B,部分表格显示在刚针对图6所说明的更新数据之前(图7A)和之后(图7B),将逻辑区块映射为原始物理区块3与新物理区块13。数据更新之前,在此实例中原始区块3存储PBN3的对应页面0至15中的LBN3的页面0至15。在依据图6的数据更新之后,新区块13存储PBN13的个别页面0至15中的LBN13的页面0至15。在图7B中地址转换表格显示为已采用此方式加以更新。接着将从主机接收的从LBN3读取数据的请求引导至物理区块13(PBN13),而非原始物理区块3(PBN3)。 
可将各页面中的数据的LBN存储为所述页面中的开销数据,如在某些商业快闪存储器产品中所做。控制器接着采用从物理页面与所述页面的PBN所读取的LBN字段, 建立以图7A与7B所示的表格的形式的表格。可将表格存储在控制器的易失性存储器中以便于存取,虽然任何一次仅需要存储用于整个系统的完整表格的一部分。正好在涉及到包含在表格部分中的区块的读取或编程操作的前,可形成表格的一部分。 
在不同于针对图6所说明而操作的其它现有技术系统中,旧/新旗标包含作为采用各页面中的用户数据所存储的开销,以便区分包含新数据的页面与包含替代数据的页面。仅将新数据写入新近指定的区块。不需要将未更新的原始区块的页面中的数据复制至新区块中。一个逻辑区块的数据接着在二个物理区块之间分裂,并且部分加以复写。此需要使更多的存储器区块可用于具有给定存储器容量的系统。其还需要使用存储器,其允许将旗标写入旧页面,而不必首先擦除所述页面。 
通常将各种旗标存储作为与其它相关联开销数据(例如LBN与ECC字段)相同的物理页面中的开销。因此,编程其中已替代数据的页面中的旧/新旗标需要支持多编程周期的页面。也就是说,存储器阵列必须具有其个别页面可在擦除之间的至少二个级中加以编程的能力。此外,区块必须支持以下能力:当已编程具有较高偏移或地址的区块中的其它页面时,编程一页面。然而,某些快闪存储器的限制,通过规定仅可采用物理序列方式来编程区块中的页面而防止此类旗标的使用。此外,在此类快闪存储器中,所述页面支持一定数量的编程周期,而且在某些情况下不允许额外编程已编程页面。存在许多不同类型的快闪EEPROM,各类型展现其自己的限制,其必须在周围作业以操作形成于集成电路区域的少量区域上的高性能存储器系统。 
所需要的是根据主机使用数据图案而最佳地管理数据的机制。 
附图说明
图1为具有存储器单元阵列、控制逻辑与数据和地址寄存器的典型现有快闪EEPROM存储器装置的方框图; 
图2说明利用具有系统控制器的图1的数个存储器装置的架构; 
图3示意性地说明二个平面中的区块的配置,作为图1的存储器阵列的实例; 
图4显示存储多页面0至15的图3的一个区块的实例; 
图5为存储在图3与4的区块的页面中的数据区段的表示; 
图6说明更新少于多页面区块的所有页面中的数据的现有程序; 
图7A与7B为分别用于图6的原始区块与新区块的对应逻辑与物理页面地址的表格; 
图8说明图3的阵列的一个平面内的合并区块E1与E2的指定的一个实例; 
图9提供采用图8的合并区块E1来更新另一区块的几页面中的数据的实例; 
图10显示存储在图9的一页面中的数据区段内的数据字段的实例; 
图11A与11B说明合并采用图8的区块E2而非区块E1的给定数据区块的更新数据页面的序列操作的一个实例; 
图12A、12B与12C说明合并采用图8的区块E1和E2两者的给定数据区块的更新数据页面的序列操作的一个实例; 
图13A、13B与13C说明更新采用图8的区块E1和E2两者的给定区块的数据的几页面的序列操作的另一实例; 
图14说明图3的阵列的单位内的合并区块E1与E2的指定的另一实例; 
图15A与15B说明更新采用图14的区块E1和E2两者的给定区块的数据的几页面的序列操作的一实例; 
图16说明存储元区块中的数据的存储器架构的类型中的区块E1与E2的使用; 
图17显示将E1区块作为元区块的图16的存储器架构的修改; 
图18提供将逻辑地址映射为E1、dE1(专用E1)与E2区块的集的实例; 
图19为显示操作图1至5的存储器系统以回应采用合并区块E1、dE1与E2的主机写入指令的流程图;和 
图20为显示图18的程序中所采取的步骤以配置E1、dE1与E2区块的任一区块的流程图。 
具体实施方式
快闪EEPROM系统的发展趋势是在很大程度上增加存储器单元的数量,因此增加个别区块中所存储的数据的数量,以便减小制造集成存储器电路芯片的成本。期望约为数据的512或1024区段(各具有528字节)的区块尺寸,因此具有用户和开销数据的个别容量270,336或540,672字节。如果将仅一个区段包含在一页面中,则存在相同的页面数,但是还趋向于增加通过在各页面中包含二个或可能多个数据区段而编程为一次编程操作的一部分的数据的数量,在此情况下会减小存储给定数量的数据区段的区块中的页面数。但是不管任何特定实施方案的细节,随着个别区块的数据存储容量的增加,以上说明用以更新区块中的数据的一部分的现有技术会增加对存储器性能和/或容量利用的不利影响。 
可以看出,如果更新区块的大约528页面的仅几页面中的数据,则针对图6所说明的现有技术根据将其余未改变页面从旧区块复制至新区块(通常一次复制一页面)所需要 的时间的数量而具有显著增加的开销。虽然此可以为如今用于实时数据存储应用的更小区块尺寸的问题,但是其会随区块的尺寸的增加而变得更糟。此外如果使用在原始区块中对旧数据页面加标签的替代技术,则将更新数据的很少页面写入另一具有新区块中的其余页面保持未用的机率的大型区块中。 
因此,依据本发明的一方面,提供至少一个区块于存储器的各平面中,以接收平面中的某些或所有其它区块的数据的此类少量的更新。在图8所说明的存储器平面中,本文中将区块10的一种类型如此指定、识别为E1区块。还存在指定用于进行不同操作的各存储器平面的区块的至少一种类型(参考为E2区块),如下文所说明。平面中未用区块的任一区块均可指定为E1或E2区块,而且此指定有时可以在存储器的操作期间加以改变。E1或E2区块的指定取决于主机的编程图案。 
参考图9,其说明E1区块的使用。在此实例中,更新区块3的页面7至10中的数据,如先前针对图6所说明的实例中一样。但是并非将更新数据写入新区块内的页面的相同范围,其被写入任何方便未用擦除页面(通常为按顺序的下页面)中的E1区块。在图9中,E1区块显示成在其页面0至2中存储自逻辑区块7的三页面的更新数据,而在其页面3与4中存储自逻辑区块2的更新数据。存储自逻辑区块3的更新数据的当前页面7至10的最方便位置分别是在下页面5至8(按顺序的下四页面)中。E1区块的其余擦除页面9至15可用以存储自其它区块的页面的更新数据。 
于此实例中在存储更新数据时,区块3的页面7至10中的原始数据会变为陈旧数据。因此当读取区块3的数据时,存储器系统控制器还需要识别自区块E1的更新页面7至10,并且使用其数据代替原始区块中的页面7至10的数据。为此目的,将地址映射维持在控制器的快速易失性存储器中。在采用系统的至少一部分中的页面的开销数据,或非易失性存储器中的其它存储数据(包含E1区块中的数据)而初始化系统之后,可获得用于地址映射的数据。此数据包含共同包含为各页面的开销数据的一部分的各页面的LBN。因为所述页面未约束成以E1区块中的任何特定顺序而加以写入,所以各数据页面的开销还优选包含具在区块内的逻辑页面偏移。接着采用在E1区块中改变的任何数据页面的开销字段而更新地址映射的数据。 
迄今已假定在E1区块中仅存在任一给定页面的一次更新。此可能出现在某些应用中但不出现在其它应用中。例如在图9的实例中,原始区块3的页面8可加以第二次更新,并且此第二次更新也存储在可用擦除页面的另一页面中的相同E1区块中。当读取存储在区块3中的数据时,控制器还读取自E1区块内的各页面的标题(开销数据)的数据,其自维持在控制器存储器中的表格或自页面本身。E1区块内的编程页面的标题每次在相 同方向读取,例如从其在图9的实例中的最高编程页面8至页面0。在其中序列地写入页面的存储器的类型中遇到的复写更新页面的情况下,控制器了解在相反序列中首先读取的是最当前的,并且随后忽视E1区块中具有相同LBN与页面偏移的所有其它页面。还可以在初始化存储器以维持完整的映射期间读取E1区块内的各页面的标题。 
作为识别具有相同LBN与页面偏移的二个页面的最当前页面的更一般替代方法,各页面的开销可另外包含其编程时间的指示,所述时问至少相对于编程具有相同逻辑地址的其它页面的时间。当从存储器的一特定区块读取数据时,此使得控制器可判定指定给相同逻辑地址的数据页面的相对使用年限。此技术允许在允许此技术的存储器系统中以任一顺序将更新页面写入E1区块中。还可使得更易于操作一在单一平面中具有一个以上E1区块的存储器系统。区分旧数据与当前数据的此方法更全面地说明在上述美国专利申请公告案第2002-0099904号中。 
存在数个可将时间戳记记录在个别页面中的方法。当编程其相关联页面的数据时,最直接的方法是记录系统中的实时时钟的输出。具有相同逻辑地址的后来编程的页面则具有后来记录的时间。但是当此类实时时钟不可用于系统时,可使用其它技术。一项特定技术是存储模N计数器的输出作为时间戳记。计数器的范围应比预期采用相同逻辑页面数所存储的页面数多一。例如,当更新图9的原始区块3中一特定页面的数据时,控制器首先读取存储在其数据得到更新的页面的开销中的计数、将所述计数增加某一数量(例如1)并接着将增加的计数写入将要存储在E1区块中的新更新页面中。如果此计数包含在维持于控制器存储器中的表格中,则控制器从所述表格读取所述计数。否则,控制器从所更新的页面的标题读取计数。计数器在达到计数N之后会滚动至0。使具有相同LBN的区块的数量少于N,以便确保在存储计数的数值中存在中断点。此使系统计数器可检测其中一具有低计数值的LBN比具有较高计数值的LBN更新近的情况。 
控制器在被要求读取数据时可轻易地区分新页面数据与替代页面数据,所述区分是通过比较具有相同LBA与页面偏移的页面的开销中的时间戳记计数。为了回应读取数据文件的最新近版本的需要,接着将自识别的新页面的数据与尚未更新的原始页面装配成数据文件的最新近版本。 
图10显示存储在图9的个别页面中的数据的单一区段的结构的一实例。最大部分为用户数据45。还将采用用户数据所计算的错误校正码(ECC)47存储在所述页面中。还将包含存储LBN与页面标签(逻辑页面偏移)的字段41的开销数据49、时间戳记43与视需要采用开销数据所计算的ECC 50存储在所述页面中。通过具有涵盖与用户数据ECC 47分离的开销数据的ECC 50,开销49可与用户数据加以分离地读取并且评估为有 效开销,而无需传输存储在所述页面中的所有数据。然而或者在开销数据49的分离读取并非频繁事件的情况下,可由单一ECC涵盖所述页面中的所有数据以便减小一页面中的ECC的位的总数。作为采用ECC的另一方法,可以改为使用其它已知的冗余技术。保持相同数据页面的多个版本的磁轨的技术的另外说明包含在上述美国专利申请公告案第2002-0099904号中。 
当由(例如)单一主机指令所更新的页面的数量与个别区块中的页面的总数相比为较小时,将E1区块用于更新。当更新区块的页面的足够大的比例时,则更有效率的是改为采用针对图6所说明的现有技术,其中更新页面与未改变页面是采用所维持的其原始页面顺序而加以直接写入新区块。由控制器选择一个或另一个程序,取决于一次所更新的区块的页面的比例和/或绝对数量,和可能取决于发生更新时存储器的操作的其它因素。另一此类因素可以为当不方便合并新区块13(其可指定为E2区块)中的页面时,在此情况下将更新数据暂时存储在区块E1中。 
作为调用二种更新技术之间的决策准则的更新页面的最佳比例或数量,可以在采用不同方法所构造和/或操作的存储器系统之间不同。但是具有固定准则为实施的最大便利。例如,如果所更新的页面的数量少于区块中的页面的总数的50%,但是更新至少一页面,则使用图9的新技术。如果所述比例等于或大于50%,但是至少一页面未被更新,则使用图6的现有技术或某类似技术。决策数量可以(例如)在某些系统中高达75%,或在其它系统中低如25%。用以选择决策数量的准则可以为(例如)最佳化存储器系统的性能(例如操纵编程操作的速度)的准则。所述数量可以存储为系统参数,以便其可在用于系统最佳化的产品配置期间加以修改。还可将一算法包含在控制器操作中,以根据包含垃圾收集活动的当前主机操作的历史而更新并最佳化决策数量。 
一旦由控制器进行决策以将输入数据引导至E1区块,则在将一或多页面写入E1区块中以较好地得以引导至E2区块之后,可检测编程操作的性质。一示范性情形为当发现序列写入指令在单一区块写入序列页面(一次写入一或几页面)时。在将几个此类页面写入E1区块之后,可以由控制器注意此点,其后停止进一步写入E1区块,而将其余序列写入引导至E2区块。接着将已写入E1区块的页面传输至E2区块。此程序可减小作为此编程操作的结果而必须合并区块E1的页面的机率。或者,在序列页面写入在擦除E1区块开始的情况下,可将所述区块转换为E2区块。 
图11A显示当所更新的页面的数量高于预定决策电平时,E2区块13(图8)的使用。在此情形下,不使用E1区块10。确切地说,作为一实例,将存储在原始区块3中的页面P2至P11的更新数据直接写入先前已擦除的E2区块13的相同页面P1至P11中。接 着将未改变的原始区块3的其余页面P1、P2和P12至P15的数据区段复制到相同页面数中的E2区块13。在将一个以上的数据区段存储在一页面中的大多数情况下,优选同时复制一页面的所有数据区段。由图11B所指示的下一步骤是擦除原始区块3并且将其指定为用于将来操作的新E2区块。更新图7A与7B所说明的类型的转换表格以显示用于相同LBN的改变的PBN。 
如以上所说明,优选将一个区块的数据的更新页面存储在具有与原始区块相同偏移的E2区块的页面中。然而作为适合于某些应用的替代实例,系统控制器可以存储E2区块中的页面而不考虑其在原始区块中的偏移。在此替代实例中,所述页面可以从E2区块的页面P0开始按顺序加以存储。此采用E1区块的一个特征,所述区块不同于普通区块但是将仍不允许数据的任一页面的一个以上的复制存储在E2区块中。当使用E2区块的此替代类型时,数据合并可能会更复杂,因为E2区块的次序颠倒的页面将传输至具有其原始区块的页面偏移的另一区块的页面中,以便将所述更新页面与原始区块的未改变页面组合。 
为了能够限制留出作为E1区块的系统中的区块的数量,需要有效率地使用所述区块以便存在足够数量的可用以满足较少部分区块更新的预期要求的擦除的E1区块页面。因此,间歇合并发生于存储在主要物理区块与E1区块中的逻辑区块的数据的页面。此自属于所述逻辑区块的E1区块移除至少某些更新数据页面,从而使所述页面可用于将来使用。将其合并成单一物理区块。 
此类擦除合并操作(垃圾收集)的一实例提供在图12A、12B与12C的时间序列方框图中。在所述图式的各图式中,顶部图表示图8的存储器阵列平面的区块3的页面的使用,其最初(图12A)为特定逻辑区块的主要区块存储数据。然而已更新自区块3的页面P7至P10的数据,并且已将数据的所述页面存储在指定E1区块10的页面P5至P10中(图12A的中间图)。区块3的其余页面P0至P6和P11至P15包含有效数据。E1区块10的其它页面P0至P4包含自不同于图8的区块3的一区块的更新数据。 
作为释放E1区块的页面的某些的擦除合并操作的第一步骤,将自区块10的四页面P5至P8的数据复制至指定E2区块13的页面P7至P10中(图12A的底部图)。已较早地擦除区块13。现在将所述数据存储在区块13的各页面中,在更新其数据的前所述页面具有与其最初在区块3中样的地址偏移。下步骤是接着将自区块3的有效数据页面P0至P6和P11至P15复制至E2区块13的页面中,如图12B所示。区块13接着包含自原始区块3的数据的所有页面,在单一物理区块13中更新其页面P6至P10中的数据。区块3接着被擦除(图12B)并指定为用于图8的存储器平面的新E2区块。可并行执 行所述步骤的许多步骤。 
虽然E1区块10的页面P5至P8中的数据不再是必要的(图12B),但是E1区块的页面P0至P4中的数据仍有效,其为另一物理区块的更新数据。接着将所述数据复制至擦除区块3的页面P0至P4中,如图12C所示。接着由控制器将区块3重新指定为E1区块,从而留下擦除页面P5至P15以备将来使用,从而采用与以上说明相同的方式而暂时存储更新数据的页面。接着由控制器将区块10擦除并指定为E2区块。作为程序的一部分,已删除数据的旧替代页面。 
存在数个触发事件,其可由存储器系统控制器用以启动以上针对图12A至12C所说明的擦除合并操作。最普通的事件是当在指定为E1区块的区块此刻使其页面的某比例充满更新数据页面时。某数量的擦除页面需要在E1区块中保持可用,所述数量取决于许多因素,例如将各E1区块用于更新的区块的数量。对E1区块最有利的是合并具有E1区块中最陈旧数据页面的区块。接着单一擦除合并操作会清除自E1区块的最大数量的不必要页面。存在其它准则,其也可用以选择具有要合并的区块E1中的数据页面的区块,例如检测区块E1中此类区块的数据页面的数据中的错误。此可最小化区块E1页面中的任一随后错误的出现将淹没其ECC的机会。 
可用以触发图12A至12C的擦除合并的另一事件可以为当存储器的性能因指定E1区块中的不够空间而变退化时。当更新区块的某数量的页面,并且在E1区块中存在太少的擦除页面来存储所更新的页面的数量时,控制器优选将更新页面写入E2或另一擦除区块,其具有与所更新的原始数据页面相同的页面偏移。此必定会出现,即使所更新的页面的数量少于通常要求用于E1区块的预定数量。接着将有效或非陈旧数据页面从原始区块复制至相同E2或其它擦除区块中,以将用于逻辑区块的所有当前数据组合至单一物理区块中。与如果可以使用指定E1区块相比,此将花费更多的时间并因此会不利地影响系统性能。因此,在检测此已发生预定次数之后,执行图12A至12C的合并操作以便释放E1区块中的更多页面。否则,会失去具有且采用E1区块的全部优点。预定次数可以为预设定参数或可由存储器控制器加以适应性地最佳化。 
此外,当需要刷新在E1区块中具有更新的数据页面的区块时,如果此数据刷新为存储器的操作的一部分,则其刷新可以包含图12A至12C的擦除合并操作。其也可作为其它开销操作的一部分包含在内,因为通常可在所述时间有效地进行此操作。此外,作为另一触发事件,当控制器并未另外被占用或计划被占用长达一足以执行合并操作的时间时,可进行擦除合并。可适于上述因素的任一个、数个或全部来启动图12A至12C的擦除合并操作。此外,虽然已将擦除合并操作说明成合并用于单一区块的数据页面, 但是可对二个或多个区块重复所述程序以便释放E1区块中的甚至更多的页面。此外,可将所述数据页面与元区块的区块合并。当在一足以进行涉及E1区块的多个擦除合并操作的时间内未要求控制器执行其它功能时,即方便地完成此操作。 
针对图12A至12C所说明的合并操作采用E1区块中的可用擦除页面,因为一次更新的页面的数量少于目前数量,例如E1区块中的页面数量的一半,即可设定成采用区块E1的准则之一。如果更新多于所述页面数量,则将更新的数据直接写入E2区块,如先前针对图11A至11B所说明。不同的合并操作发生在以下情况下:一次更新的逻辑区块的页面数量超过预定数量,而且不存在用以采用区块E1的其它已建立准则,但是其中先前已将逻辑区块的一个或一个以上更新页面写入E1区块中。在此情况下,将更新的区块直接写入E2区块。针对图13A至13C说明了处理此情形的存储器系统控制器的一操作。 
在图13A的实例中,一次将更新存储在区块3中的数据页面P2至P11(顶部图)。先前已更新了数据页面P12至P13,将更新的数据存储在图8的存储器平面的指定E1区块10的页面P5至P6中(图13A的中间图)。作为更新数据页面P2至P11的第一步骤,将更新数据直接写入指定E2区块13的对应页面P2至P11中(图13A的底部图)。先前更新的页面P12至P13也从其在E1区块的页面P5至P6中的位置被复制到E2区块的页面P12至P13中。 
图13B中说明的下一步骤引起区块3的页面P1至P2和P14至P15中的未改变数据得以复制到区块13的对应页面位置中。区块13接着存储当前更新数据的所有页面。接着将区块3擦除并指定为E2区块。接着将存储在E1区块10的有效数据页面P1至P5中的自不同于区块13的某区块的其余更新数据复制到区块3的对应页面中,如图13C所指示。接着将区块3指定为E1区块。区块10接着得以擦除并变为E2区块用于需要使用所述区块的任何将来操作。已在程序中删除数据的所有旧替代页面。 
优选启动由图13A至13C所说明的擦除合并操作,以回应写入E2区块的更新数据页面(图13A)。所述回应可以是立即的,以便即刻释放E2区块以将来用于存储器平面内,或者可以在某延迟之后启动合并。允许一或几个进一步的编程周期发生在写入E2区块中的更新数据页面之后的延迟,允许对最初存储在物理区块3中的逻辑区块的数据的任何进一步的更新包含在合并操作中。此节省必须针对相同数据区块在接近连续中执行此类合并两次。 
如针对图12A至12C和13A至13C所说明,涉及到E1区块的擦除合并操作可一般应用于存储器系统,其用于个别计算机、计算机服务器、个人数字助理、音响与视频处 理装置和类似物。在所述应用的许多应用中,在频繁间隔中一次更新存储器的一或几个区块的一或几个数据页面。一实例为许多计算机系统的文件配置表格(FAT)、共同组件的维持。通常将FAT存储在存储器的单一平面的仅一个或几个区块中。每次由主机将数据写入存储器时,均通常更新存储FAT表格的一部分的至少一页面,并且作为各擦除合并操作的一部分,而且无论何时改变主机指定逻辑区块对由控制器所指定的物理存储器区块的配置。频繁数据更新的另一实例是将开销数据维持为存储器操作的一部分。例如,在另一区块中将关于各存储器区块的使用或特征的某信息保持在一起。随着存储器的使用,接近连续地更新此数据。 
对于其中发生显著数量的数据的此类频繁更新(每次少量更新)的系统而言,通过指定一个以上的E1区块用于经历所述频繁更新的存储器的区域来改进存储器系统的性能。对于主机主要存储的LBA的范围或仅此类频繁更新数据而言,E1区块或元区块甚至可以专用于仅所述区块。当所获得的改进性能值必须从一般服务移除一个或一个以上额外区块以便作为额外或专用E1(dE1)区块的成本时进行此。此通常为存储FAT表格、区块开销数据和类似物的区块的情况。额外或专用E1区块的指定可以导致必须执行图12A至12C的擦除合并操作所采用的频率的实质减小。 
图14说明在不同于图8的时间的实时时间,一个存储器平面中的区块的配置。除由存储器控制器指定为用于存储器平面的一般E1区块的区块10以外,将区块2指定为用于仅自区块1的更新的dE1区块。无论何时更新映射至区块1的LBN的页面的数据,并且存在用于写入区块E1(而非区块E2)的条件,均将更新数据页面写入dE1区块2的可用擦除页面中。接收更新数据的dE1区块2内的页面将为,需要以此类序列将页面写入其个别区块中的类型的存储器中按顺序的下一页面。同样地,将区块4指定为专用以接收映射至区块3的LBN的更新数据,并且区块6为专用于区块5的LBN的dE1区块。平面内三个专用E1区块的使用仅为所说明的原理的一个特定实例。可在某些应用中提供仅一个dE1区块,或可如此指定平面中达一半的区块。将区块13指定为E2区块,例如图14的平面。 
专用E1区块的继续使用当然会引起其最终变得完全编程。在E1区块变得完全编程之前,可以多次重新写入E1区块所专用于的数据区块的某些页面。在此实例中,将各页面写入E1区块的下一可用擦除页面中,并且将其在原始数据区块内的页面偏移存储为用于区块的开销数据的一部分。在任一专用E1区块变得完全编程前不久或在此时,合并操作会发生以重新写入数据区块,从而包含自其E1区块的最当前页面和任何未改变数据页面。图15A与15B提供此点的一实例。 
图15A说明将自图14的区块3和其E1区块4的数据页面合并至E2区块13中。在此实例中,未改变页面P0至P1、P5至P9和P13至P14的数据。在此实例中,已更新其余页面P2至P4和P10至P12与P15,将最新近更新页面存储在个别页面P7、P2、P11、P13、P10、P8与P12中的dE1区块4中。在此说明性实例中已开始合并程序,因为除最高二页面P14与P15以外,已编程dE1区块4的所有页面,dE1区块几乎已用完空间。接着通过编程操作,将原始数据区块3中的未改变页面和dE1区块4中的最新近更新页面装配为E2区块13。将各此类页面写入具有页面的物理偏移的E2区块页面中。也就是说,虽然更新页面是以其得到更新的顺序而暂时存储在dE1区块中,而非在其个别物理页面位置,但是自原始数据区块3的页面的最新近更新被复制到具有对应于其定址偏移的位置的E2区块13的页面中。如图15B所示,接着擦除区块3与4,一个区块被指定为专用于新数据区块13的E1区块,而另一区块变为用于存储器平面的E2区块。 
然而,不需要E2区块13中的数据页面具有与得到更新或复制的页面相同的地址偏移。其保持在相同的相对顺序则足够。例如,可将第一数据页面P0存储在图15A的E2区块13中于自左侧的第三物理页面而非最左物理页面中。其余数据页面接着以其逻辑地址的顺序而固定在区块13内,从而采用存储在E2区块13的最左二页面中的最后页面P14与P15而围绕。当利用此类页面偏移时,用户数据开销的页面标签41(图10)可用以保持E2区块内的数据页面的偏移的磁轨。 
图14的存储器平面中的额外E1区块的指定与使用可编程至存储器系统控制器固件中,以出现在以下情况下:需要将额外E1区块专用于采用复数个但是少于映射至成平面的所有LBN而操作。选择成具有个别相关联E1区块的LBN为期望主机频繁地更新其数据的LBN。或者,控制器固件可以动态地指定dE1区块,其分别与仅一个另一LBN相关联以回应存储器所实际使用的方法。例如,当数据由主机在每主机指令仅一个区段或少于正常数量的区段的形式写入LBN时,所述LBN可以指定为其自己的dE1区块。此外,可将dE1区块指定为其中继续地过多写入数据的那些LBN。dE1区块的使用可减小一般平面区块E1以外的数据页面的频繁合并。 
作为于存在对dE1区块的需要的情况下的另一实例,与通过其它区块相比,通过特定数据区块的图12A至12C的合并程序的更高使用,会引起平面的未用区块被指定为专用于采用频繁更新数据的LBN操作的E1区块。为了最佳化性能,优选将区块dE1专用于得到频繁合并的区块。控制器同件判定何时应将E1区块专用于作为dE1区块的给定LBN的程序的一实例是维持以下计数:(1)用以将引起写入的给定区块写入E1区块的主机指令的数量,(2)将操作写入给定区块的总数和/或(3)具有写入E1区块的相同逻辑地址 的区段的数量。当所述计数的比率超过预定数值时,则建立专用区块dE1。图15A与15B的合并操作接着保持E1区块与包含此类数据的各逻辑区块相关联。 
作为动态地建立dE1区块的另一实例,可编程存储器控制器以区分数据的频繁更新类型与数据的不频繁更新类型,并且将此类数据引导至适当区块。例如,存储器控制器可以辨别:何时由主机采用个别指令传送数据的单一区段,用于频繁更新的FAT表格的典型输入,与采用单一指令传送数据的多个区段的主机相比,未如此频繁地加以更新的典型用户数据。当接收数据的单一区段时,接着将其映射成dE1区块所专用于的物理区块。当多个数据区段由存储器系统接收为一单位时,其传送至与其它数据区块共享E1区块的数据区块。此非专用E1区块包含自多个LBN的数据。 
本发明的技术还可应用于具有一个或多个平面的存储器架构,将所述平面划分为各区域,但是所述区域的使用对实施本发明来说不是必要的。在多个平面的情况下,个别区域跨越平面而延伸。可以使用或可以不使用元区块。图16示意性地显示定义跨越多个平面的逻辑区域的存储器系统的一实例。尽管显示四个平面0至3,但或多或少的平面可包含在存储器系统中。各平面包含大量区块,其一部分由图16中的矩形所指示。各区块包含许多数据页面,其指示为用于区块61之一,如以上说明用于其它存储器系统。此处的差异在于进一步将平面划分为若干区域,其中各区域包含自所述平面的二个或多个平面的各平面的给定数量的区块。例如,参考图16,区域0包含许多自平面0至4的各平面的区块,区域1包含自所述平面的各平面的区块的另一群组,以此类推。区域内的各平面中的区块通常占用物理区块地址的相同接近集,但是此并不需要。将主机逻辑地址的截然不同的范围映射成各区域。 
图16的存储器系统的操作的单位优选为元区块。在此实例中,元区块包含自逻辑上连接在一起的各平面的一个区块以形成元区块。在此情况下,将各元区块形成于单一区域内。例如,一个元区块显示在图16中于区域1内,其由区块63、64、65与66所形成。元区块的特征操作包含同时擦除元区块内的所有区块,并且同时编程而且读取自元区块的各区块的一或多页面。此增加的并行性会在很大程度上增加存储器系统的性能。各元区块内的个别区块的识别项可加以维持为系统内任一方便位置中的固定或动态连接列表、阵列表格和类似物。通常而言,与各页面的用户数据存储在一起的开销数据将包含足以识别平面的逻辑和/或物理地址、页面驻留于其中的区域和区块、和区块内的页面的偏移。接着通过读取页面开销数据的所述地址字段的控制器,在控制器的存储器内建立地址映射。通常先于引导至存储器的部分的编程、读取或擦除操作,做到此点以用于存储器的部分。在未将系统划分为区域的情况下,个别元区块可以采用多个平面的 整个可用物理地址空间中的区块而加以形成。 
各区域内的一个或一个以上区块可配置用作用于区域中其它区块的区块E1与区块E2。在图16所说明的实例中,区域1有一个区块E1。当写入操作满足用于区块E1的准则时,接着将写入区域1内的各元区块的任一元区块的数据的部分区块引导至区块69。通常需要将一个以上的区块E1用于各区域,取决于区域的尺寸。事实上,一个或一个以上元区块可配置在用于E1功能的各区域中,如图17所说明,其中区块E1a、E1b、E1c与E1d,即自平面0至3的各平面的一个区块,形成区域1内的元区块。在图16或17的任一情况下,将一个或一个以上元区块E2配置用于各区域。或者,可以在系统中的某处提供元区块的集区以为用于所有区域的E1与E2区块功能服务,例如在单一区域中收集所述区域。元区块E1还可专用于单一另一接收频繁写入的元区块。事实上,可以另外采用元区块E1而实施用于单一区块E1的以上说明,例如图12与13的合并。区块单位的尺寸不会改变基本程序。将元区块用于E2通常优于单一区块,但是将单一区块用于E1可能会因效率而优于元区块。应注意当整个阵列包含仅一个区域时,也可应用涉及到多个区域阵列的单一区域中的元区块的使用的说明。 
在用以接收逻辑区块地址的离散范围内的更新数据页面的物理区块E1、dE1与E2的典型配置中,将许多此类区块配置用于接近逻辑区块地址的二个或多个非重叠集的各集,例如通常发生在系统使其区块或元区块组织成以上说明的区域。接着采用逻辑区块地址的各集将相同规则最方便地应用为何时和如何使用其分配E1、dE1与E2区块或元区块。 
然而物理E1、dE1与E2区块的任一个或全部的使用不必遵循此类约束。例如,对于逻辑区块地址的一个范围而言,何时和如何使用所述特殊区块的规则可以不同于另一范围。此允许将数据的不同典型主机使用图案或类型的辨别存储在主机逻辑地址的不同范围内。此外,E1、dE1与E2区块的特定集所专用于的逻辑区块地址的范围不必完全接近。甚至可使逻辑区块地址的一个范围与另一范围重叠,将采用E1、dE1与E2区块的规则专用于不同的各重叠范围。在此后者情况下,对于物理E1、dE1与E2区块的二个或多个集之一中的存储而言,通过具有重叠范围内的逻辑区块地址的数据的主机进行编程是合格的,取决于由主机操作满足何规则集。优选设定规则以便对于E1、dE1与E2区块的可能集的仅一个集中的存储而言,重叠逻辑地址范围中的任一个编程操作是合格的。 
图18显示将物理E1、dE1与E2区块指定为逻辑区块地址的实例。在具有所说明的序列逻辑地址的四个逻辑区块LBN{x}至LBN{x+3}当中,LBN{x}、LNB{x+1}与 LBN{x+2}共享共同E1区块,其用以存储满足用于E1区块的准则的更新数据,同时其分别映射为分离E2区块,以存储满足用于E2区块的准则的更新数据。指定成采用特定E1与E2区块的逻辑区块地址的范围可以相同、因某重叠而不同或相互排斥。存储器接着可适合于主机使用。例如,在接收频繁单一数据区段更新的逻辑地址范围的情况下,其可映射成E1或dE1区块而非E2区块,因为一次更新足够的数据以使E2区块有用是不太可能的。 
当进一步更新一部分时,将存储在E2区块中的数据存储在指定用于相同数据逻辑地址的E1区块中。当然,具有指定用于E2区块的逻辑地址的更新数据可以存储在E1区块中,而不必首先存储E2区块内的所述逻辑地址的数据。用以存储更新数据的E1或E2区块的选择取决于以上说明的准则。 
图19的流程图显示快闪存储器系统的示范性操作,所述系统以动态地回应主机操作的图案以最佳化存储器系统的性能的方式,利用以上说明的区块E1、dE1与E2。程序始于每次存储器系统从与其连接的主机系统接收写入指令,如101所指示。写入指令包含数据的LBN、要写入的数据的区段的数量和类似物。LBN将引起数据映射为存储器平面的区块或映射为跨越多个平面而延伸的元区块,取决于所编程的特定存储器阵列的结构与操作。第一步骤103检查与接收LBN相关联的现有E2区块或元区块是否具有空位用于所编程的数据区段的数量。如果是,则下一步骤105判定当前写入操作的数据区段是否为具有序列地址的先前写入操作的继续。如果是,则将数据编程至现有E2区块中,如步骤107所指示。 
但是如果在步骤105中判定新写入并非为区段的先前序列区段的继续,则在步骤109中判定逻辑区段地址的间隙是否涉及到较少数量的区段,例如一或仅几个。如果少于区段的某预置数量,则按顺序将所述未改变数据区段复制到E2区块中,如步骤111所指示,并且按步骤107将新数据区段写入E2区块中。因为较小数量的区段的间隙,所以此将未改变数据的几个区段复制到现有E2区块中可能会最佳,而非将随后的写入处理为与先前写入完全断开。 
但是如果逻辑地址间隙大于预置数量的区段,则下一步骤113考虑是否应建立新E2区块用于包含待定写入操作的LBN范围。所考虑的统计可包含存储或新近写入交易的分析,或可以简单如判定当前写入操作的区段的数量是否大于固定或动态判定的阈值数量。此阈值数量可以(例如)少于存储在区块中的数据区段的数量,但是多于区块容量的一半或四分之三。如果从定义的统计判定要建立新E2区块,则在步骤115中进行建立,并且接着在步骤107中将待定写入的数据编程至新E2区块中。以下针对图20的流程图 说明用以配置新E2区块的程序。 
此说明基于步骤103中所进行的判定:在现有E2区块中存在空位用于待定写入操作的数据区段的数量。然而如果没有足够的空位,则处理会跳至步骤113以判定是否应建立新E2区块。 
如果在步骤113中判定不应建立新E2区块用于待定写入操作的数据,则其很可能是因为区段的数量少于(或等于)步骤113中所用的预置阈值数量,因而更适当地写入E1区块。因此在下一步骤117,判定是否存在现有dE1区块用于当前数据区段驻留于其中的LBA范围。如果是,则在步骤119中将所述数据区段编程至所述dE1区块中。但是如果否,则在步骤121中判定是否应建立新dE1区块。此判定可基于存储的逻辑或物理操作的分析,可或基于瞬时操作。所考虑的统计可包含垃圾收集操作的出现、建立的E1区块的数量或给定LBA范围内的非序列单一区段写入操作的数量。当某区块中的数据的更新的数量与频率远高于系统中的区块的典型多数时,将dE1区块专用于所述某区块。如果结果配置dE1区块,则根据图20的流程图而在步骤123中进行此配置。 
但是如果在现有dE1区块中没有空位,并且判定不配置另一区块,则在步骤125中寻求与待定写入操作的LBA相关联的现有E1区块中的空位。E1区块可个别地限于存储LBA的特定范围的数据区段以便使其易于管理,例如提供一个区段于各平面中,如以上所说明。或者,E1区块可以存储具有自阵列内任一处的LBA的数据。如果存在用于数据的足够空间,则在下一步骤127中将数据写入与数据的LBA相关联的E1区块中。 
另一方面,如果与数据的LBA相关联的E1区块没有空位,则在另一E1区块中寻求空间,如步骤129所指示。如果存在此类空间,则做出决策是否将由另一E1区块所操纵的LBA的范围扩大成包含当前数据的LBA。取决于主机的使用图案,可较佳地存储具有系统中的E1区块的数个或全部的任一个中的任何LBA的数据,或将各E1区块严格地限制为LBA的集范围。如果判定将数据写入另一E1区块,则在步骤127中进行此写入。然而如果判定不将数据写入另一E1区块,则按步骤131配置新E1区块,并且在步骤127中将数据写入所述新区块中。 
图20的流程图显示用以在步骤115、123或131的任一步骤中配置新区块的例行程序。如果在最初步骤133中判定存储器区块可用于擦除和未用区块的集区,则在步骤135中将此类区块指定为E2、dE1或E1区块,取决于执行图19的个别步骤115、123或131的哪个步骤。然而如果此类区块不可用,则解除配置现有E1、dE1或E2区块并重新指定新区块。图20的其余步骤决定为此目的而解除配置的是否为E1、dE1或E2区块。应用于此实例的原理是解除配置最少使用且有用的区块。 
如果当图19的处理是在步骤131中时建立新E1区块,则在图20的步骤139中判定是否已存在最大数量的E1区块。此数量可加以设定,或优选发生变化以便最佳化区块的所述类型的所有三种类型的使用。所指定的E1、dE1与E2区块的总数一般受提供在系统中超过回应其完全逻辑地址空间所需要的额外区块的数量的限制。如果判定已建立最大数量的E1区块,则下一步骤141解除配置现有E1区块,并且在步骤135中将此区块指定为新E1区块。然而如果在步骤139中判定尚未建立最大数量的E1区块,则在后来步骤中决定是否因新E1区块而解除配置dE1区块或E2区块。新E1区块可限制用于LBA的规定范围或可涵盖整个存储器阵列。 
如果建立(图19的步骤123)新dE1区块替代E1区块,如步骤143所判定,则在步骤145所解决的问题为是否已存在最大允许数量的dE1区块。如果是,则在步骤147中解除配置所述区块之一,并且在步骤135中将其指定为新dE1区块。如果否,则到达步骤149,其中将使用图案统计用以判定是否应解除配置现有dE1区块。统计可包含测量现有dE1区块是否是陈旧的。 
当既未建立新dE1区块也未建立新E1区块时,从步骤143到达步骤149,而且当尚未建立最大数量的E1区块时,也从步骤139到达步骤149。如果在步骤149中判定解除配置dE1区块,则在步骤147中进行此解除配置,并且在步骤135中将所述区块重新配置为所建立的新E1或dE1区块之一。如果不解除配置现有dE1区块,则到达步骤151,其中解除配置E2区块,随后将所述区块指定为新E1或dE1区块。当指为dE1区块时,可为其指定LBN范围,其超过单一另一物理区块的范围。 
虽然已针对各示范性实施例而说明本发明,但是应了解本发明被赋予所附权利要求书的全部范畴内的保护。 

Claims (15)

1.一种将数据更新到一非易失性存储器系统中的方法,所述非易失性存储器系统为一类具有多个可同时擦除并且个别地存储一给定数量的主机数据单位的存储器单元的区块的非易失性存储器系统,所述更新是用一个或一个以上的数据单位来代替在现有区块中的相同逻辑地址的对应的数据单位,所述方法包括:
当多个数据单位各自具有少于所述给定数量的一给定比例的序列逻辑地址时,通过将其数据写入一第一指定区块中,响应多个后续主机指令以写入所述多个数据单位,更新地址映射以提供在所述第一指定区块中的数据单位的目录,和
当多个数据单位具有等于或超过所述给定数量的所述给定比例的序列逻辑地址时,通过将其数据与来自所述现有区块的未更新的任意数据单位一起写入所述第一指定区块之外的一区块中,响应主机指令以写入所述多个数据单位。
2.如权利要求1的所述方法,其中最初包含:
确定所述后续主机指令是否包含多个数据单位,所述数据单位具有少于所述给定数量的所述给定比例的序列逻辑地址。
3.如权利要求1所述的方法,其中所述存储器单元被组织成多个子阵列,并且所述存储器单元的区块包含二个或二个以上所述子阵列的存储器单元。
4.如权利要求1所述的方法,其中所述给定比例设定在所述给定数量的25%-75%范围内。
5.如权利要求2所述的方法,其中所述给定比例设定在所述给定数量的25%-75%范围内。
6.一种将数据更新到一非易失性存储器系统中的方法,所述非易失性存储器系统为一类具有多个可同时擦除并且个别地存储一给定数量的主机数据单位的存储器单元的区块的非易失性存储器系统,所述更新是用一个或一个以上的数据单位来代替在现有区块中的相同逻辑地址的对应的数据单位,所述方法包括:
专用所述区块的至少一第一区块来存储具有少于所述给定数量的一给定分数的序列逻辑地址的多个数据单位,
响应多个主机指令以通过以下方法来将数据单位单独地写入到存储器系统中:确定具有序列逻辑地址的多个数据单位是否少于所述给定分数,且如果是,将所述数据写入到所述第一区块,更新地址映射以提供在所述第一区块中的数据单位的目录,以及
响应主机指令以通过将所述数据与来自所述现有区块的未更新的任意数据单位一起写入所述第一区块之外的一区块中而写入具有等于或超过所述给定数量的所述给定分数的多个序列逻辑地址的数据单位。
7.如权利要求6所述的方法,其中所述存储器单元被组织为多个子阵列且所述存储器单元的区块包含具有两个或两个以上的所述子阵列的存储器单元。
8.如权利要求6所述的方法,其中所述分数设定为在所述给定数量的25%-75%范围内。
9.一种操作一非易失性存储器系统的方法,所述方法包括响应于从一主机接收的指令和由逻辑地址寻址的数据单位以单独地更新所述存储器系统中接收的所述数据单位的方法,所述存储器系统具有分组为区块的存储器单元,所述区块可同时擦除且单独地将一给定数量的数据单位存储在各自的物理地址,接收的所述数据单位的所述逻辑地址在所述存储器系统中被映射到接收的所述数据单位所存储的对应物理地址中,所述更新是用一个或一个以上的数据单位来代替在现有区块中的相同逻辑地址的对应的数据单位,所述方法包括:
分配所述区块的一第一区块以存储具有少于所述给定数量的一分数的多个序列逻辑地址的数据单位,
分配所述区块的一第二区块以存储具有等于或超过所述给定数量的所述分数的多个序列逻辑地址的数据单位,
响应于接收到写入具有少于所述分数的多个序列逻辑地址的数据的指令,确定所述第一区块是否具有足够的擦除容量以存储所接收的数据,且如果有,则将所接收的数据写入到所述第一区块的序列物理地址中,更新地址映射以提供在所述第一区块中的数据单位的目录,以及
响应于接收到写入具有等于或超过所述分数的多个序列逻辑地址的数据的指令,确定所述第二区块是否具有擦除容量以存储所述数据,且如果有,将所述数据与来自所述现有区块的未更新的任意数据单位一起写入到所述第二区块的序列物理地址。
10.如权利要求9所述的方法,其进一步包括:
响应于接收到写入具有少于所述分数的多个序列逻辑地址的数据的所述指令,如果所述第一区块不具有足够的擦除容量以存储所述接收的数据,则分配所述区块的一第三区块以存储具有少于所述给定数量的一分数的多个序列逻辑地址的数据单位,且接着将所述接收的数据写入到所述第三区块的序列物理地址中,以及
响应于接收到写入具有等于或超过所述分数的多个序列逻辑地址的数据的所述指令,如果所述第二区块不具有足够擦除容量以存储所述接收的数据,则分配所述区块的一第四区块以存储具有等于或超过所述给定数量的所述分数的多个序列逻辑地址的数据单位,且接着将所述接收的数据写入到所述第四区块的序列物理地址中。
11.如权利要求10所述的方法,其中所述分数设定在所述给定数量的25%-75%的范围内。
12.如权利要求9所述的方法,其中所述存储器单元被组织成多个子阵列,且所述存储器单元的所述区块包含具有两个或两个以上所述子阵列的存储器单元。
13.如权利要求9所述的方法,其中所述分数设定在所述给定数量的25%-75%的范围内。
14.一种将数据更新到一非易失性存储器系统的方法,所述存储器系统的类型为具有可同时擦除且单独存储一给定数量的主机数据单位的存储器单元的区块,所述更新是用一个或一个以上的数据单位来代替在现有区块中的相同逻辑地址的对应的数据单位,所述方法包括:
指定所述区块的至少一第一区块来存储根据多个写入指令的各自的指令由所述存储器系统接收的多个数据单位,所述数据单位具有少于所述给定数量的一给定分数的序列逻辑地址,
响应于由所述存储器系统接收多个指令通过下面的步骤单独地针对各自的指令将一个或一个以上的数据单位写入其中,
(a)确定所述指令是否指明写入具有少于所述给定分数的序列逻辑地址的多个数据单位,以及
(b)确定所述第一区块是否具有足够的擦除容量来存储由所述指令提供的多个数据单位,其中
当上述条件(a)和(b)两者都确定为存在时,则在那之后将所述数据单位写入到所述第一区块,更新地址映射以提供在所述第一区块中的数据单位的目录,但是
当上述条件(a)或(b)确定为不存在时,则将所述数据单位与来自所述现有区块的未更新的任意数据单位一起写入到所述第一区块之外的区块之一中去。
15.如权利要求14所述的方法,其中所述给定分数在所述给定数量的25%-75%的范围内。
CN2004800392981A 2003-12-30 2004-12-15 将数据更新到非易失性存储器系统和操作该系统的方法 Expired - Fee Related CN1902599B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/749,831 2003-12-30
US10/749,831 US8504798B2 (en) 2003-12-30 2003-12-30 Management of non-volatile memory systems having large erase blocks
PCT/US2004/042644 WO2005066790A1 (en) 2003-12-30 2004-12-15 Management of non-volatile memory systems having large erase blocks

Publications (2)

Publication Number Publication Date
CN1902599A CN1902599A (zh) 2007-01-24
CN1902599B true CN1902599B (zh) 2011-12-21

Family

ID=34701110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800392981A Expired - Fee Related CN1902599B (zh) 2003-12-30 2004-12-15 将数据更新到非易失性存储器系统和操作该系统的方法

Country Status (7)

Country Link
US (3) US8504798B2 (zh)
EP (1) EP1700219B1 (zh)
JP (1) JP4933267B2 (zh)
KR (1) KR101118507B1 (zh)
CN (1) CN1902599B (zh)
TW (1) TWI287191B (zh)
WO (1) WO2005066790A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI676103B (zh) * 2018-06-19 2019-11-01 旺宏電子股份有限公司 記憶系統

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
TWI232466B (en) * 2003-10-28 2005-05-11 Prolific Technology Inc Method for updating data of non-volatile memory
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8607016B2 (en) 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
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
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
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
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US20070084375A1 (en) * 2005-08-10 2007-04-19 Smith Kyle S High density cartridge and method for reloading
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
ATE467893T1 (de) * 2005-11-22 2010-05-15 Sandisk Corp Verfahren und speichersystem für legacy-hosts
US7739472B2 (en) * 2005-11-22 2010-06-15 Sandisk Corporation Memory system for legacy hosts
US7747927B2 (en) * 2005-11-22 2010-06-29 Sandisk Corporation Method for adapting a memory system to operate with a legacy host originally designed to operate with a different memory system
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
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
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US7913003B2 (en) * 2006-02-24 2011-03-22 Intel Corporation Reclaim algorithm for fast edits in a nonvolatile file system
JP4898252B2 (ja) * 2006-03-15 2012-03-14 パナソニック株式会社 不揮発性記憶装置及びそのデータ管理方法
US7979624B2 (en) * 2006-03-31 2011-07-12 Intel Corporation Techniques to truncate data files in nonvolatile memory
JP2007280108A (ja) * 2006-04-07 2007-10-25 Sony Corp 記憶媒体制御装置、記憶媒体制御方法、プログラム
KR100784007B1 (ko) * 2006-10-31 2007-12-10 주식회사 하이닉스반도체 비휘발성 메모리 장치 및 그 소거 방법
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR100881669B1 (ko) * 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
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
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7904670B2 (en) * 2007-03-19 2011-03-08 Sandisk Corporation Methods for conversion of update blocks based on comparison with a threshold size
US8341375B2 (en) * 2007-03-19 2012-12-25 Sandisk Technologies Inc. Methods for conversion of update blocks based on association with host file management data structures
US8275953B2 (en) * 2007-03-19 2012-09-25 Sandisk Technologies Inc. Methods for forcing an update block to remain sequential
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US8621138B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
JP4519923B2 (ja) * 2008-02-29 2010-08-04 株式会社東芝 メモリシステム
WO2010027983A1 (en) * 2008-09-03 2010-03-11 Marvell World Trade Ltd. Progamming data into a multi-plane flash memory
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
US9141475B2 (en) * 2008-11-23 2015-09-22 Sandisk Technologies Methods for tag-grouping of blocks in storage devices
JP5400875B2 (ja) * 2009-05-21 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
CN102237130B (zh) * 2010-04-20 2014-01-29 深圳市江波龙电子有限公司 一种寻找多层单元闪存中最低有效位页的方法及系统
US8543757B2 (en) * 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8819503B2 (en) * 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
KR20120029239A (ko) * 2010-09-16 2012-03-26 삼성전자주식회사 Pram을 이용하는 데이터 기록 시스템 및 그 방법
EP2434389B1 (en) 2010-09-24 2019-01-23 BlackBerry Limited Portable electronic device and method of controlling same
GB2497383A (en) 2010-09-24 2013-06-12 Qnx Software Systems Ltd Alert display on a portable electronic device
GB2496803A (en) * 2010-09-24 2013-05-22 Research In Motion Ltd Transitional view on a portable electronic device
CN102446071B (zh) * 2010-09-30 2014-10-08 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
TWI463495B (zh) * 2010-12-10 2014-12-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
JP2012141946A (ja) * 2010-12-16 2012-07-26 Toshiba Corp 半導体記憶装置
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8856470B2 (en) * 2011-01-25 2014-10-07 International Business Machines Corporation Data integrity protection in storage volumes
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
EP2715510B1 (en) * 2011-05-24 2018-05-02 Marvell World Trade Ltd. Method for storage devices to achieve low write amplification with low over provision
WO2013012436A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Reset vectors for boot instructions
KR101824068B1 (ko) * 2011-07-28 2018-03-15 삼성전자주식회사 메모리 컨트롤러 구동방법, 및 메모리 컨트롤러를 포함하는 메모리 시스템, 메모리 카드 및 휴대용 전자장치
JP5697796B2 (ja) * 2011-08-29 2015-04-08 株式会社日立製作所 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置
US9069657B2 (en) * 2011-12-12 2015-06-30 Apple Inc. LBA bitmap usage
JP5907739B2 (ja) * 2012-01-26 2016-04-26 株式会社日立製作所 不揮発性記憶装置
US9195586B2 (en) 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
TWI456391B (zh) * 2012-03-14 2014-10-11 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103324580B (zh) * 2012-03-23 2016-03-16 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
TWI605458B (zh) 2012-04-25 2017-11-11 Sony Corp Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
US9128822B2 (en) 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI479313B (zh) * 2012-07-11 2015-04-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103577344B (zh) * 2012-07-20 2017-03-01 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
WO2014035377A1 (en) * 2012-08-28 2014-03-06 Hewlett-Packard Development Company, L.P. High performance persistent memory
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
KR20140056657A (ko) 2012-10-30 2014-05-12 삼성전자주식회사 메인 메모리를 구비한 컴퓨터 시스템 및 그것의 제어 방법
TWI501249B (zh) * 2012-11-14 2015-09-21 Winbond Electronics Corp 晶片上之反及閘快閃記憶體及其損壞區塊管理方法
CN103871447B (zh) * 2012-12-14 2017-03-01 华邦电子股份有限公司 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9324450B2 (en) 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
KR102147988B1 (ko) 2013-04-09 2020-08-26 삼성전자주식회사 불휘발성 저장 장치 및 그것의 데이터 저장 방법
US9349450B2 (en) * 2013-06-10 2016-05-24 Micron Technology, Inc. Memory devices and memory operational methods including single erase operation of conductive bridge memory cells
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US9483397B2 (en) * 2013-07-16 2016-11-01 Intel Corporation Erase management in memory systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9501400B2 (en) 2013-11-13 2016-11-22 Sandisk Technologies Llc Identification and operation of sub-prime blocks in nonvolatile memory
KR101821439B1 (ko) * 2013-11-15 2018-03-08 엘에스산전 주식회사 한류기
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9218891B2 (en) 2013-11-27 2015-12-22 Silicon Motion, Inc. Data storage device and flash memory control method
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9329992B2 (en) 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
KR102182368B1 (ko) * 2013-12-19 2020-11-24 에스케이하이닉스 주식회사 어드레스 검출회로 및 이를 포함하는 메모리
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
KR20150116352A (ko) 2014-04-07 2015-10-15 삼성전자주식회사 메모리 제어 방법 및 시스템
US9582205B2 (en) * 2014-04-17 2017-02-28 Sandisk Technologies Llc Protection scheme with dual programming of a memory system
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9442798B2 (en) 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US10331551B2 (en) 2014-12-29 2019-06-25 Toshiba Memory Corporation Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection
TWI557744B (zh) * 2015-01-27 2016-11-11 緯創資通股份有限公司 資料儲存方法及嵌入式系統
TWI571881B (zh) * 2015-10-23 2017-02-21 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
JP6448570B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
KR102452994B1 (ko) * 2016-09-06 2022-10-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
CN106448735B (zh) * 2016-09-13 2019-09-13 天津大学 用于大容量非易失性存储器的数据快速擦除方法
TWI653533B (zh) * 2017-03-07 2019-03-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10565115B2 (en) 2017-03-30 2020-02-18 Western Digital Technologies, Inc. Calculating the optimal number of LBNS to prefetch per CPU
CN108710579A (zh) * 2018-04-27 2018-10-26 江苏华存电子科技有限公司 一种超过寻址空间大容量的管理方法
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
CN109062822B (zh) * 2018-07-18 2021-09-07 北京世纪东方通讯设备有限公司 一种机车无线通信数据的存储方法及装置
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
US10665303B1 (en) * 2019-05-10 2020-05-26 Macronix International Co., Ltd. Erasing blocks with few programmed pages
US10990316B2 (en) * 2019-06-28 2021-04-27 Western Digital Technologies, Inc. Log-based storage for different data types in non-volatile memory
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11294827B2 (en) * 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11194515B2 (en) * 2019-09-16 2021-12-07 Macronix International Co., Ltd. Memory system, method of operating memory, and non-transitory computer readable storage medium
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11042307B1 (en) * 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
TWI727842B (zh) * 2020-02-20 2021-05-11 大陸商長江存儲科技有限責任公司 存儲器件及其編程方法
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
CN114171092A (zh) 2020-04-23 2022-03-11 长江存储科技有限责任公司 存储器件及其编程方法
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11894060B2 (en) 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability
TWI808010B (zh) * 2022-09-26 2023-07-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3502001C1 (de) 1985-01-22 1986-07-17 HFH Herbst Förder- und Hebetechnik, 3300 Braunschweig Knickgelenktes,allradgetriebenes Stapelfahrzeug
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) * 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
JP2618149B2 (ja) * 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5687345A (en) * 1992-03-17 1997-11-11 Hitachi, Ltd. Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
US5341489A (en) * 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
JP3299564B2 (ja) * 1992-05-11 2002-07-08 松下電器産業株式会社 メモリ装置
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
US5341330A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JPH08263361A (ja) * 1995-03-23 1996-10-11 Mitsubishi Electric Corp フラッシュメモリカード
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
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
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
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
FR2742893B1 (fr) 1995-12-20 1998-01-16 Schlumberger Ind Sa Procede d'inscription d'une donnee dans une memoire reinscriptible
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
JP3489708B2 (ja) * 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
JPH10177797A (ja) * 1996-12-17 1998-06-30 Toshiba Corp 半導体記憶装置
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
JP3119214B2 (ja) * 1997-09-30 2000-12-18 ソニー株式会社 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
JP2000122923A (ja) 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
JP4046877B2 (ja) * 1998-12-14 2008-02-13 株式会社ルネサステクノロジ 一括消去型不揮発性メモリおよび携帯電話
JP2000181784A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 書き換え可能な不揮発性記憶装置
US6150838A (en) 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
JP2000285017A (ja) 1999-03-31 2000-10-13 Seiko Epson Corp 記憶装置
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
WO2001008015A1 (fr) 1999-07-28 2001-02-01 Sony Corporation Systeme d'enregistrement, dispositif d'enregistrement de donnees, dispositif a memoire et procede d'enregistrement de donnees
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
US6775423B2 (en) * 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
WO2002035548A2 (en) * 2000-10-26 2002-05-02 Matsushita Electric Industrial Co., Ltd. Storing device, storing control method and program
JP3992960B2 (ja) 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
US7020739B2 (en) * 2000-12-06 2006-03-28 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
IT1315566B1 (it) 2000-12-12 2003-02-18 Federico Renier Metodo per la certificazione dell'invio,della ricezione edell'autenticita' di documenti elettronici ed unita' di rete
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP3967121B2 (ja) 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US7328301B2 (en) * 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US7107388B2 (en) * 2003-04-25 2006-09-12 Intel Corporation Method for read once memory
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI676103B (zh) * 2018-06-19 2019-11-01 旺宏電子股份有限公司 記憶系統
US10956318B2 (en) 2018-06-19 2021-03-23 Macronix International Co., Ltd. Overlapping ranges of pages in memory systems

Also Published As

Publication number Publication date
JP2007517319A (ja) 2007-06-28
US8117380B2 (en) 2012-02-14
US20050144358A1 (en) 2005-06-30
EP1700219B1 (en) 2014-04-02
JP4933267B2 (ja) 2012-05-16
US20130339585A1 (en) 2013-12-19
WO2005066790A1 (en) 2005-07-21
CN1902599A (zh) 2007-01-24
TWI287191B (en) 2007-09-21
TW200601040A (en) 2006-01-01
KR20060130081A (ko) 2006-12-18
US20090216938A1 (en) 2009-08-27
EP1700219A1 (en) 2006-09-13
KR101118507B1 (ko) 2012-03-12
US8745322B2 (en) 2014-06-03
US8504798B2 (en) 2013-08-06

Similar Documents

Publication Publication Date Title
CN1902599B (zh) 将数据更新到非易失性存储器系统和操作该系统的方法
CN101124555B (zh) 具有多流更新的非易失性存储器和方法
CN102831070B (zh) 用于存储器装置的存储地址重新映射的方法和系统
CN1918552B (zh) 基于主机使用特性的快闪存储器地址映射的适应性模式切换
CN101645044B (zh) 一种操作可擦除且可再编程的非易失性存储器系统的方法
CN101099125B (zh) 群集的自动对准方法和存储器系统
CN100524209C (zh) 在非易失性存储器阵列中更新数据的方法
EP2112599B1 (en) Scheduling of housekeeping operations in flash memory systems
JP4750766B2 (ja) 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作
CN100435115C (zh) 具有非循序更新区块管理的非易失性存储器及方法
CN100487672C (zh) 用于分割一逻辑块的方法及设备
CN101263462B (zh) 具有区块管理的非易失性存储器
CN101894077A (zh) 一种数据存储方法及系统
CN103038753B (zh) 用基于日志的缓冲向基于nand存储块的文件系统写入的方法
CN102479154A (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 TECHNOLOGIES, INC.

Free format text: FORMER OWNER: SANDISK CORPORATION

Effective date: 20120913

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

Effective date of registration: 20120913

Address after: Texas, USA

Patentee after: Sandy Technology Corp.

Address before: California, USA

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: Texas, USA

Patentee after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Patentee before: Sandy Technology Corp.

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

Granted publication date: 20111221

Termination date: 20211215

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