CN1914689A - 具有区块管理系统的非易失性存储器和方法 - Google Patents

具有区块管理系统的非易失性存储器和方法 Download PDF

Info

Publication number
CN1914689A
CN1914689A CNA2004800415625A CN200480041562A CN1914689A CN 1914689 A CN1914689 A CN 1914689A CN A2004800415625 A CNA2004800415625 A CN A2004800415625A CN 200480041562 A CN200480041562 A CN 200480041562A CN 1914689 A CN1914689 A CN 1914689A
Authority
CN
China
Prior art keywords
block
sector
logical group
order
nonvolatile memory
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.)
Pending
Application number
CNA2004800415625A
Other languages
English (en)
Inventor
艾伦·戴维·贝内特
艾伦·道格拉斯·布赖斯
瑟吉·戈罗别茨
艾伦·韦尔什·辛克莱
彼得·约翰·史密斯
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 Corp
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 CN1914689A publication Critical patent/CN1914689A/zh
Pending 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
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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
    • G11C16/10Programming or data input circuits
    • 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
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • 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
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Abstract

本发明揭示一种非易失性存储器系统,其被组织成由复数个物理存储器位置所组成的复数个物理群组。每一物理群组(元区块)均可作为一个单元擦除,且可用于存储一逻辑数据群组。存储器管理系统允许通过配置一专用于记录所述逻辑群组的所述更新数据的元区块来更新一逻辑数据群组。所述更新元区块按照所接收的次序来记录更新数据,且对所述记录是按照原来所存储的正确逻辑次序(循序)或未按照原来所存储的正确逻辑次序(混乱)未有限制。最终,所述更新元区块对进一步的记录关闭。将进行数项处理中的一项,但最终都会以正确的次序产生一取代所述原始元区块的完全填充的元区块而结束。在所述混乱情况中,以有利于频繁更新的方式将目录数据保存在所述非易失性存储器中。所述系统支持同时被更新的多重逻辑群组。

Description

具有区块管理系统的 非易失性存储器和方法
技术领域
本发明一般涉及一种非易失性半导体存储器,且明确地说,本发明涉及具有存储器区块管理系统的非易失性半导体存储器。
背景技术
能够非易失性存储电荷的固态存储器(特别是采用被包装为小形状因数卡的EEPROM和快闪EEPROM的形式)近些年来已成为各种移动式和手提式装置(尤其是信息家电和消费性电子产品)中选用的存储器。与同为固态存储器的RAM(随机存取存储器)不同的是,快闪存储器为非易失性的,且即使关闭电源后仍可保留其已存储的数据。另外,与ROM(只读存储器)不同的是,快闪存储器可与光盘存储装置类似地来进行重写。尽管成本较高,但快闪存储器已越来越多地被用于大量存储应用中。常用的大量存储(以旋转磁性媒体为主,例如硬盘和软盘)并不适用于移动式和手持式环境中。此是因为磁盘驱动器体积趋于庞大,容易产生机械故障,而且具有高延迟和高电源需求。这些不合需要的属性使得基于光盘的存储无法用于大部分的移动式和便携式应用中。另一方面,快闪存储器(嵌入式和抽取式卡的形式)由于其尺寸小、功耗低、速度快和可靠性高的特征而非常适用于移动式和手提式环境中。
快闪EEPROM与EEPROM(电可擦除可编程只读存储器)的类似之处在于其为可被擦除的非易失性存储器,并且将新数据写入或“编程”到其存储单元中。两者均在场效应晶体管结构中利用位于半导体衬底中介于源极区与漏极区之间的通道区上的浮动(未连接的)导电栅极。接着在浮动栅极上提供一控制栅极。晶体管的阈值电压特征受控于保留在浮动栅极上的电荷量。也就是说,对于浮动栅极上既定的电荷电平而言,必须在晶体管被“开启”前施加对应的(阈值)电压到控制栅极,以在其源极区与漏极区之间产生导通。明确地说,例如快闪EEPROM的快闪存储器允许同时擦除全部的存储单元区块。
浮动栅极能够保留某个范围的电荷,且因此可被编程为阈值电压窗口内任意的阈值电压电平。阈值电压窗口的大小由装置的最小阈值电平和最大阈值电平来界定,而所述阈值电平对应于可被编程于浮动栅极上的电荷范围。阈值窗口通常取决于存储器装置的特征、操作条件和历史数据。原则上,窗口内的每一不同的、可解析的阈值电压电平范围均可用于指明所述单元一明确的存储器状态。
通常用以下两种机制中的一种将用作存储单元的晶体管编程到一“经编程”状态。在“热电子注入”中,被施加到漏极的高电压使衬底通道区上的电子加速。同时,被施加到控制栅极的高电压经由一薄的栅极电介质将热电子拉到浮动栅极之上。在“隧穿注入”中,相对于所述衬底施加一高电压给控制栅极。以此方式,从所述衬底将电子拉到中间的浮动栅极。虽然术语“编程”过去是用于描述通过将电子注入到存储单元的初始被擦除的电荷存储单位中以便改变存储器状态,但现在将其与例如“写入”或“记录”的更常见术语互换使用。
可用以下几种机制来擦除存储器装置。对于EEPROM而言,可通过相对于控制栅极施加一高电压给所述衬底,以便在浮动栅极中诱发出电子使其隧穿一薄氧化物而进入衬底通道区(即,Fowler-Nordheim隧穿效应),来电擦除一存储单元。通常地,EEPROM可以逐个字节的方式来擦除。对于快闪EEPROM而言,可每次将存储器全部电擦除或每次电擦除一个或一个以上最小可擦除区块,其中最小可擦除区块可能由一个或一个以上扇区组成,且每一扇区均可存储512个字节以上的数据。
存储器装置通常包含可安装于卡上的一个或一个以上存储器芯片。每一存储器芯片均包含一受到外围电路(例如解码器和擦除电路、写入电路以及读取电路)支持的存储单元阵列。更复杂的存储器装置还搭配一执行智能的且更高水平的存储器操作与对接的控制器。
现今已有许多商业上成功的非易失性固态存储器装置。这些存储器装置可能为快闪EEPROM,或可采用其它类型的非易失性存储单元。快闪存储器与系统和其制造方法的实例揭示于美国第5,070,032号、第5,095,344号、第5,315,541号、第5,343,063号和第5,661,053号、第5,313,421号和第6,222,762号专利中。明确地说,具有NAND串结构的快闪存储器装置描述于美国第5,570,315号、第5,903,495号、第6,046,935号专利中。另外,还可用具有用于存储电荷的电介质层的存储单元来制造非易失性存储器装置。其使用电介质层来取代前面所述的导电浮动栅极元件。这些利用电介质存储元件的存储器装置已描述于Eitan等人于2000年11月在IEEE Electron Device Letters第21卷第11期第543-545页发表的“NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell”中。一ONO电介质层延伸穿过源极与漏极扩散区之间的通道。一个数据位的电荷在靠近漏极的电介质层中被局部化,而另一数据位的电荷在靠近源极的电介质层中被局部化。举例而言,美国第5,768,192号和第6,011,725号专利揭示一种在两层二氧化硅层之间夹放一捕获电介质的非易失性存储单元。通过分开读取电介质内空间分离的电荷存储区域的二元状态来实施多状态的数据存储。
为改善读取和编程性能,可并行读取或编程一阵列中多个电荷存储元件或存储器晶体管。因此,可同时读取或编程一由复数个存储器元件组成的“页”。在现有存储器结构中,一行通常含有数个交错页或其可能构成一页。一页中的所有存储器元件将被同时读取或编程。
在快闪存储器系统中,擦除操作所花费的时间可能为读取和编程操作的倍数长度。因此,希望具有非常大的擦除区块。以此方式,将擦除时间分摊到大量的存储单元聚合体中。
快闪存储器的特性判定必须将数据写入一已擦除的存储器位置中。如果要更新来自主机的特定逻辑地址的数据,那么一种方式为在相同的物理存储器位置中重写所述更新数据。也就是说,逻辑到物理地址映射并未改变。然而,此意谓着整个擦除区块会含有必须首先被擦除然后再以已更新数据进行重写的物理位置。此更新方法效率低,因为其需要擦除并重写整个擦除区块,如果待更新的数据仅占据擦除区块的一小部分效率尤其低。其还将会导致更频繁的擦除循环使用所述存储器区块,就此类型存储器装置的有限耐用性而言此为不合需要的。
管理快闪存储器系统的另一问题为必须处理系统控制与目录数据。在各项存储器操作过程期间产生并访问所述数据。因此,其有效的处理和便捷的访问将直接影响性能。希望将此类型的数据保存在快闪存储器中,因为快闪存储器为很好的存储器且为非易失性。然而,如果使用介于控制器与快闪存储器之间的中间文件管理系统,那么无法直接访问所述数据。另外,系统控制与目录数据倾向于非常有源且会被碎离,其并不利于存储在具有大持讯区块擦除的系统中。按照惯例,此类型的数据会被设置在控制器RAM中,从而允许所述控制器来直接访问。在供电给存储器装置后,一初始化程序使快闪存储器能够被扫描,以便编辑必要的系统控制与目录信息,用以将其置于控制器RAM中。此程序花费时间且需要控制器RAM容量,因而必须进一步提高快闪存储器容量。
US 6,567,307揭示一种在大型擦除区块中处理扇区更新的方法,其包括将更新数据记录于用作便笺式存储器(scratch pad)的多个擦除区块中,并最终在按照逻辑上循序的次序将其重新排列之后合并各个区块中的有效扇区并重写所述扇区。以此方式,混乱在每次轻微更新时擦除并重写一区块。
WO 03/027828和WO 00/49488均揭示一种在大型擦除区块中处理更新的存储器系统,其包括将逻辑扇区地址分割成复数个区段。保留一小型的逻辑地址范围区段以供有源系统控制数据使用,所述区段与供用户数据使用的另一区段分离。以此方式,在其自己的区段中更改系统控制数据将不会与另一区段中的关联数据相互作用。更新为逻辑扇区级的操作,且有一写入指标指向某一待被写入的区块中的对应的物理扇区。所述映射信息在RAM中被缓冲,且最终被存储于主存储器中的扇区配置表中。一逻辑扇区的最新版本将舍弃现有区块中已经变成部分过时的所有先前版本。其执行废弃项目收集以保持可接收数目的部分过时区块。
现有技术的系统趋于将更新数据分布在许多区块中,或者更新数据可能会使许多现有区块变成部分过时。其结果通常为必须针对所述部分过时的区块进行大量的废弃项目收集,其效率低且会造成存储器提早老化。另外,相较于非循序更新,并没有任何系统性且有效的方式来处理循序更新。
因此,通常需要高容量且高性能的非易失性存储器。明确地说,需要一种能够在大型区块中进行存储器操作且没有前述问题的高容量非易失性存储器。
发明内容
一种非易失性存储器系统被组织成由复数个物理存储器位置所组成的复数个物理群组。每一物理群组(元区块)均可作为一个单元擦除,并可用于存储一数据逻辑群组。一存储器管理系统允许通过配置一专用于记录所述逻辑群组的所述更新数据的元区块来更新一逻辑群组。所述更新元区块按照收到的次序来记录更新数据,且并未限制所述记录是(循序)否(混乱)具有如原来被存储般正确的逻辑循序。最终,所述更新元区块对进一步的记录关闭。将进行数项处理中的一项,但最终都会以正确的次序产生一用来取代所述原始元区块的完全填充的元区块而结束。在所述混乱情况中,以有利于频繁更新的方式将目录数据保存在所述非易失性存储器中。所述系统支持同时被更新的多重逻辑群组。
本发明的一个特征允许以逐个逻辑群组的方式来更新数据。因此,当要更新一逻辑群组时,逻辑单位的分布(以及更新过时的存储器单位的分散)被限制于某个范围中。当所述逻辑群组正常地被包含于一物理区块中时尤为如此。
在所述逻辑群组的更新期间,通常需要分配一或两个区块来缓冲已更新的逻辑单位。因此,仅需要在相当少数的区块中执行废弃项目收集。可用合并法或压缩法来执行一混乱区块的废弃项目收集。
相较于所述循序区块,所述更新处理的经济性在所述更新区块的一般处理中更加明显,使得无需为混乱(非循序)更新分配任何额外的区块。所有的更新区块均被配置为循序的更新区块,且任何的更新区块均可被改变为一混乱的更新区块。实际上,可任意地将一更新区块从循序式改变为混乱式。
有效地使用系统资源允许使用更新多个逻辑群组。此进一步提高效率并降低额外开销。
从本发明的优选实施例的以下描述中将了解本发明的额外特征和优点,应配合附图来参考所述描述。
附图说明
图1示意性说明适于实施本发明的存储器系统的主硬件组件。
图2说明根据本发明一优选实施例的存储器,其被组织成复数个物理扇区群组(或元区块)并由控制器的存储器管理器来管理。
图3A(i)-3A(iii)根据本发明一优选实施例示意性说明逻辑群组与元区块之间的映射。
图3B示意性说明复数个逻辑群组与复数个元区块之间的映射。
图4说明物理存储器中元区块与各结构的对准。
图5A说明连接不同平面的最小擦除单位所构成的元区块。
图5B说明一个实施例,其中从每一平面中选出一个最小擦除单位(MEU)以连接成一元区块。
图5C说明另一实施例,其中从每一平面中选出一个以上MEU以连接成一元区块。
图6为元区块管理系统被建构于控制器和快闪存储器中时的示意性方框图。
图7A说明以循序次序被写入一循序更新区块的一逻辑群组中的复数个扇区的实例。
图7B说明以混乱次序被写入一混乱更新区块的一逻辑群组中的复数个扇区的实例。
图8说明进行两次具有不连续逻辑地址的单独主机写入操作而以循序次序被写入一循序更新区块的一逻辑群组中的复数个扇区的实例。
图9为根据本发明一通用实施例说明由更新区块管理器用于更新逻辑数据群组的处理的流程图。
图10为根据本发明一优选实施例说明由更新区块管理器用于更新逻辑数据群组的处理的流程图。
图11A为更详细地说明关闭图10中所示的混乱更新区块的合并处理的流程图。
图11B为更详细地说明关闭图10中所示的混乱更新区块的压缩处理的流程。
图12A说明一逻辑群组的所有可能状态,以及在各种操作下所述状态之间可能的转变。
图12B为列出一逻辑群组的可能状态的表格。
图13A说明一元区块的所有可能状态,以及在各种操作下所述状态之间可能的转变。一元区块为一对应于一逻辑群组的物理群组。
图13B为列出一元区块的可能状态的表格。
图14(A)-14(J)为展示对逻辑群组的状态以及物理元区块所进行的各项操作的效果的状态图。
图15说明用于追踪已开放和已关闭的更新区块和已擦除区块以进行配置的配置区块列表(ABL)的结构的优选实施例。
图16A说明混乱区块索引(CBI)扇区的数据字段。
图16B说明被记录于专用元区块中的混乱区块索引(CBI)扇区的实例。
图16C为说明访问正在进行混乱更新的给定逻辑群组的一逻辑扇区的数据的流程图。
图16D为根据一替代实施例说明访问正在进行混乱更新的给定逻辑群组的一逻辑扇区的数据的流程图,其中逻辑群组已被分割成复数个子群组。
图16E说明在将每一逻辑群组分割成多个子群组的实施例中的混乱区块索引(CBI)扇区的实例和其功能。
图17A说明群组地址表(GAT)扇区的数据字段。
图17B说明被记录于一GAT区块中的群组地址表(GAT)扇区的实例。
图18为说明针对使用和循环使用已擦除区块而言,控制与目录信息的分布和流动的示意性方框图。
图19为展示逻辑到物理地址转换的处理的流程图。
图20说明在存储器管理操作过程中对控制数据结构所执行的操作的分级。
具体实施方式
图1示意性说明适于实施本发明的存储器系统的主硬件组件。存储器系统20通常经由一主机接口配合主机10进行操作。存储器系统通常呈存储器卡或嵌入式存储器系统的形式。存储器系统20包括一存储器200,所述存储器200的操作由一控制器100来控制。存储器200由分布于一个或一个以上集成电路芯片中的一个或一个以上非易失性存储器单元阵列组成。控制器100包括一接口110、一处理器120、一可选协处理器121、ROM 122(只读存储器)、RAM 130(随机存取存储器)及可视情况编程的非易失性存储器124。接口110具有一个用于将控制器对接到主机的组件,以及用于对接到存储器200的另一组件。存储于非易失性ROM 122和/或可选非易失性存储器124中的固件提供处理器120实施控制器100的功能所要的编码。误差校正码可由处理器120或可选协处理器121来处理。在一替代实施例中,控制器100由一状态机(未图示)来实施。在另一实施例中,在主机中实施控制器100。
逻辑与物理区块结构
图2说明根据本发明优选实施例的存储器,所述存储器被组织成复数个物理扇区群组(或元区块)并由控制器的存储器管理器来管理。存储器200被组织成复数个元区块,其中每一元区块为一群组可一起擦除的物理扇区S0、...、SN-1
当在文件系统或操作系统下运行应用程序时,主机10访问存储器200。通常,主机系统以逻辑扇区为单位来访问数据,举例而言,其中每一扇区可能含有512个字节的数据。另外,主机通常以逻辑群集为单位来读取或写入存储器系统,每一逻辑群集由一个或一个以上逻辑扇区组成。在某些主机系统中,可能存在可选主机端存储器管理器,以在所述主机处执行较低级存储器管理。在读取或写入操作期间的大部分情况中,主机10基本上发出一命令到主机系统20,用于读取或写入含有一串具有连续地址的逻辑数据扇区的程序段(segment)。
存储器端存储器管理器建构于存储器系统20的控制器100中,用以管理在快闪存储器200的复数个元区块中存储与检索主机逻辑扇区的数据。在优选实施例中,存储器管理器含有许多用于管理元区块的擦除操作、读取操作和写入操作的软件模块。存储器管理器还在快闪存储器200和控制器RAM 130中保存与其操作相关联的系统控制和目录数据。
图3A(i)-3A(iii)根据本发明一优选实施例示意性说明逻辑群组与元区块之间的映射。物理存储器的元区块具有N个物理扇区,其用于存储一逻辑群组的N个逻辑扇区数据。图3A(i)展示来自逻辑群组LGi的数据,其中所述逻辑扇区呈现连续的逻辑次序0、1、...、N-1。图3A(ii)展示正以相同的逻辑次序被存储于元区块中的相同数据。当以此方式存储时,所述元区块便为所述的“循序式”。一般而言,元区块可能具有以不同次序存储的数据,在此情况中,所述元区块则为所谓的“非循序式”或“混乱式”。
在一逻辑群组的最低地址与其所映射到的元区块的逻辑地址之间可能会有偏移。在此情况中,逻辑扇区地址在所述元区块内以环状的方式从逻辑群组的底部反卷绕到顶部。举例而言,在图3A(iii)中,元区块在其开始在逻辑扇区k的数据的第一位置中进行存储。当到达最后的逻辑扇区N-1时,其回绕到扇区0,并最终将与逻辑扇区k-1相关联的数据存储于其最后的物理扇区中。在优选实施例中,使用一页标签来识别任何偏移,例如识别存储于元区块的第一物理扇区中的数据的开始逻辑扇区地址。当两个区块仅相差一个页标签时,我们将认为所述两个区块是以类似的次序来存储其逻辑扇区。
图3B示意性说明复数个逻辑群组与复数个元区块之间的映射。每一逻辑群组均映射到一唯一的元区块,除了其中的数据当前正在被更新的少数逻辑群组以外。在一逻辑群组已被更新之后,其可能被映射到不同的元区块。所述映射信息被保存在一组逻辑到物理目录中,稍后将更详细描述。
还可设计其它类型的逻辑群组到元区块映射。举例而言,由Alan Sinclair于与本发明同一天申请的共同待决及且共同拥有的美国专利申请案,标题为“AdaptiveMetablocks”之中揭示具有可变大小的元区块。所述共同待决的申请案的全部揭示内容以引用的方式并入本文中。
本发明的一个特征为所述系统配合一单一逻辑分割进行操作,且存储器系统的整个逻辑地址范围中的逻辑扇区群组均被相等地来处理。举例而言,含有系统数据的扇区和含有用户数据的扇区可分布在逻辑地址空间中的任意处。
与现有技术的系统不同的是,并没有任何特殊的系统扇区分割或分区(即,文件配置表、目录或子目录有关的扇区),用以在逻辑地址空间中定位可能含有频繁且小尺寸更新的数据的扇区。相反,本发明的更新逻辑扇区群组的方案将有效地处理系统扇区以及文件数据特有的访问图案。
图4说明物理存储器中元区块与各结构的对准。快闪存储器包含复数个存储器单元区块,所述存储器单元均可作为一个单元一起擦除。这些擦除区块为快闪存储器的最小的擦除单位,或为存储器的最小可擦除单位(MEU)。所述最小擦除单位为存储器的硬件设计参数,不过,在支持多重MEU擦除的某些存储器系统中,可能配置含有一个以上MEU的“超级MEU”。对于快闪EEPROM而言,MEU可能含有一个扇区,但优选包括多个扇区。在所示实例中,其具有M个扇区。在优选实施例中,每一扇区可存储512个字节数据,且具有用户数据部分,以及用于存储系统或额外开销数据(overheaddata)的标头部分。如果元区块由P个MEU构成且每一MEU含有M个扇区,那么每一元区块将具有N=P*M个扇区。
在系统级,元区块代表一群组存储器位置,例如可一起擦除的复数个扇区。快闪存储器的物理地址空间可视为一组元区块,其中每一个元区块为最小的擦除单位。在本说明书中,术语“元区块”和“区块”同义,其用于定义在系统级处媒体管理的最小擦除单位,且术语“最小擦除单位”或MEU则用于表示快闪存储器的最小擦除单位。
连接复数个最小擦除单位(MEU)以形成一元区块
为最大化编程速度和擦除速度,可利用并行度(parallelism)尽可能地将位于多个MEU中的多个信息页排列成会被并行编程,且将多个MEU排列成会被并行擦除。
在快闪存储器中,页为可在单一操作中一起被编程的复数个存储器单元的集合。一页可包含一个或一个以上扇区。另外,一存储器阵列可被分割成一个以上平面,其中一平面内每次仅有一个MEU会被编程或擦除。最后,所述平面可能分布于一个或一个以上存储器芯片之中。
在快闪存储器中,所述MEU可能包含一个或一个以上页。快闪存储器芯片内的复数个MEU可被组织于复数个平面内。因为可同时编程或擦除来自每一平面中的一个MEU,所以从每一平面中选出一个MEU有利于形成一多重MEU元区块(参见下文图5B)。
图5A说明连接不同平面的最小擦除单位所构成的元区块。每一元区块(例如MB0、MB1、…)均由来自存储器系统的不同平面的复数个MEU所构成,其中所述不同平面可能分布于一个或一个以上芯片中。图2中所示的元区块连接管理器170针对每一元区块管理MEU的连接。每一元区块均在初始的格式化过程期间进行配置,且在系统的整个寿命期间保持其构成MEU,除非所述MEU中的一者受损。
图5B说明一个实施例,其中从每一平面中选出一个最小擦除单位(MEU)以连接成一元区块。
图5C说明另一实施例,其中从每一平面中选出一个以上MEU以连接成一元区块。在另一实施例中,可从每一平面中选出一个以上MEU以形成一超级MEU。举例而言,一超级MEU可能由两个MEU所形成。在此情况中,其可能需要一次以上通过以进行读取或写入操作。
由Carlos Gonzales等人于与本发明同一天申请的共同待决且共同拥有的美国专利申请案,标题为“Adaptive Deterministic Grouping of Blocks into Multi-Block Structures”之中也揭示将复数个MEU连接和再连接成元区块。所述共同待决的申请案的全部揭示内容以引用的方式并入本文中。
元区块管理
图6为元区块管理系统被建构于控制器和快闪存储器中时的示意性方框图。所述元区块管理系统包含建构于控制器100中的各种功能模块,并将各种控制数据(包括目录数据)保留在分级地分布于快闪存储器200和控制器RAM 130中的表格和列表中。建构于控制器100中的功能模块包括一接口模块110、一逻辑到物理地址转换模块140、一更新区块管理模块150、一擦除区块管理模块160和一元区块连接管理器170。
接口110使元区块管理系统与主机系统对接。逻辑到物理地址转换模块140将来自主机的逻辑地址映射到物理存储器地址。更新区块管理模块150在供给定逻辑数据群组使用的存储器中管理数据更新操作。擦除区块管理器160管理元区块的擦除操作,并管理其配置以存储新信息。元区块连接管理器170管理复数个扇区的最小可擦除区块的子群组的连接,以构成一给定的元区块。这些模块将在其个别的章节中作详细描述。
在操作期间,元区块管理系统产生并配合控制数据(例如地址、控制与状态信息)来工作。因为大部分控制数据倾向于为频繁改变的小尺寸数据,所以其并不容易存储且很难有效地保留在具有大区块结构的快闪存储器中。采用分级且分布式方案将较静态的控制数据存储于非易失性快闪存储器中,同时将数量较少变化较大的控制数据置于控制器RAM中,以供更有效地更新与访问。如果电源关闭或故障,那么所述方案允许通过在非易失性存储器中扫描小型的控制数据组而在非易失性控制器RAM中快速地重建控制数据。因为本发明限制与一给定逻辑数据群组的可能活动相关联的区块数,所以此作法是可能的。以此方式,可约束扫描。此外,控制数据中需要持久的部分存储于可逐个扇区进行更新的非易失性元区块中,每次更新会产生一新扇区,所述新扇区被记录以取代先前的扇区。针对控制数据采用扇区索引方案以追踪元区块中逐个扇区的更新。
非易失性快闪存储器200存储非常静态的庞大控制数据。其包括群组地址表(GAT)210、混乱区块索引(CBI)220、已擦除区块列表(EBL)230和MAP 240。GAT 210追踪逻辑扇区群组与其对应的元区块之间的映射。除非更新,否则所述映射不会改变。CBI 220追踪更新期间逻辑上非循序扇区的映射。EBL 230追踪已被擦除的元区块集区。MAP 240为一位图,其展示快闪存储器中所有元区块的擦除状态。
易失性控制器RAM 130存储频繁改变且被访问的一小部分控制数据。其包含一配置区块列表(ABL)134和一已清除区块列表(CBL)136。ABL 134追踪元区块的配置,用于记录更新数据,而CBL 136则追踪已被解除配置且被擦除的元区块。在优选实施例中,RAM 130起供存储于快闪存储器200中的控制数据使用的高速缓冲存储器的作用。
更新区块管理器
更新区块管理器150(图示于图2中)处理逻辑群组的更新。根据本发明的一个方面,每一经过的更新的逻辑扇区群组均配置一用于记录更新数据的专用更新元区块。在优选实施例中,逻辑群组的一个或一个以上扇区的任何程序段将被记录于更新区块中。更新区块可设法以循序次序或非循序(也称为混乱)次序接收已更新的数据。混乱更新区块可在逻辑群组内以任意次序来更新扇区数据,且具有任意重复的个别扇区。明确地说,循序更新区块可变为无需更新区块,而不需要再配置任何的数据扇区。混乱数据更新不需要任何预定的区块配置;可在任何逻辑地址处自动进行非循序写入。因此,与现有技术系统不同的是,不必特别处理逻辑群组的各个更新程序段究竟是逻辑循序次序还是非循序次序。通用的更新区块将简单地用于以主机所要求的次序来记录各个程序段。举例而言,即使主机系统数据或系统控制数据倾向于以混乱方式进行更新,仍然不需要以不同于具有主机用户数据的区域的方式来处理对应于主机系统数据的逻辑地址空间的区域。
一完整逻辑扇区群组的数据优选以逻辑上循序次序存储于单一元区块中。以此方式,可预定义指向所存储的逻辑扇区的索引。当元区块以预定义的次序存储一给定逻辑群组的所有扇区时,其被称为“完全一致”。就更新区块而言,当其最后以逻辑上循序次序补满更新数据后,接着所述更新区块将变成一已更新的完整元区块,其易于取代原始元区块。另一方面,如果所述更新区块以逻辑上不同于完全一致区块的循序来补满更新数据,那么所述更新区块为一非循序或混乱更新区块,且必须进一步处理失序的程序段,以使最后以与完全一致区块相同的次序来存储逻辑群组的更新数据。在优选情况中,在单一元区块中其处于逻辑上循序次序。进一步的处理包括将更新区块中的已更新扇区和原始区块中的未改变扇区合并到另一更新元区块中。接着,已合并的更新区块将处于逻辑上循序次序,且可用于取代原始区块。在某些预定条件下,在合并处理之前进行一个或一个以上压缩处理。所述压缩处理仅将混乱更新区块的扇区重新记录到一取代的混乱更新区块中,同时对同一逻辑扇区进行后续更新以删除已经过时的任何备份逻辑扇区。
所述更新方案允许同时允许多个更新线程,直到预定义的最大值为止。每一线程均为一逻辑群组,其使用其专用更新元区块来进行更新。
循序数据更新
当首先更新属于一逻辑群组的数据时,配置一元区块,且所述元区块专用作供逻辑群组的更新数据使用的更新区块。当从主机接收到一命令时,配置所述更新区块,用以写入逻辑群组的一个或一个以上扇区的程序段,其中有一现有元区块已完全一致地存储其所有的扇区。对于第一次主机写入操作而言,将一第一数据程序段记录于更新区块中。因为每次主机写入均为具有连续逻辑地址的一个或一个以上扇区的程序段,所以本质上所述第一次更新必定为循序的。在随后的主机写入中,按照接收自主机的次序将相同逻辑群组内的复数个更新程序段记录于所述更新区块中。一区块继续被安排成一循序更新区块,而相关逻辑群组内由主机更新的扇区仍保持逻辑上循序状态。此逻辑群组中已更新的所有扇区均被写入到此循序的更新区块中,直到所述区块被关闭或被转换成混乱更新区块为止。
图7A说明进行两次单独的主机写入操作而以循序次序被写入一循序更新区块的一逻辑群组中的复数个扇区的实例,同时所述逻辑群组的原始区块中的对应扇区变为过时。在主机写入操作#1中,正在更新逻辑扇区LS5-LS8中的数据。已更新的数据LS5′-LS8′被记录于新配置的专用更新区块中。
为方便起见,逻辑群组中待更新的第一扇区被记录在始于第一物理扇区位置处的专用更新区块中。一般而言,待更新的第一逻辑扇区并不必为所述群组的逻辑第一扇区,且所述逻辑群组的起点与所述更新区块的起点之间可能会有偏移。此偏移称为页标签,如前面配合图3A所描述。随后的扇区以逻辑上循序次序进行更新。当写入逻辑群组的最后一扇区后,群组地址回绕,并对所述群组的第一扇区继续进行写入序列。
在主机写入操作#2中,正在更新逻辑扇区LS9-LS12中的数据的程序段。已更新的数据LS9′-LS12′被记录于直接跟在上次写入结束处后面的位置中的专用更新区块中。可发现,两次主机写入的方式是以逻辑上循序次序(即,LS5′-LS12′)将更新数据记录在更新区块中。所述更新区块被视为一循序更新区块,因为其已按照逻辑上循序次序被填补。记录于所述更新区块中的更新资料舍弃原始区块中对应的数据。
混乱数据更新
当相关逻辑群组内由主机更新的任何扇区逻辑上为非循序时,对现有的循序更新区块开始混乱更新区块管理。混乱更新区块为一数据更新区块形式,其中可以任何次序来更新一相关逻辑群组内的逻辑扇区且具有任何重复数。当主机以逻辑非循序的方式将一扇区写入被更新的逻辑群组内的先前已被写入的扇区中时,将一循序更新区块转换成一混乱更新区块。此逻辑群组中随后被更新的所有扇区被写入所述混乱更新区块中下一个可用的扇区位置中,而不管其逻辑扇区地址位于所述群组内何处。
图7B说明作为五次单独主机写入操作的结果而以混乱次序被写入一混乱更新区块的一逻辑群组中的多个扇区的实例,同时所述逻辑群组的原始区块中已被取代的扇区以及所述混乱更新区块中已备份的扇区变为过时。在主机写入操作#1中,更新存储于一原始元区块中的一给定逻辑群组的逻辑扇区LS10-LS11。已更新的逻辑扇区LS10′-LS11′存储于新配置的更新区块中。此时,所述更新区块为一循序更新区块。在主机写入操作#2中,将逻辑扇区LS5-LS6更新为逻辑扇区LS5′-LS6′,并将其记录于所述更新区块中紧跟在上次写入面的位置中。此操作将更新区块从循序更新区块转换成一混乱更新区块。在主机写入操作#3中,再度更新逻辑扇区LS10,并将其作为LS10″记录于所述更新区块的下一个位置中。此时,更新区块中的LS10″取代先前记录中的LS10′,接着便取代原始区块中的LS10。在主机写入操作#4中,再度更新逻辑扇区LS10中的数据,并将其作为LS10″记录于更新区块的下一个位置中。因此,LS10为目前最新且对于逻辑扇区LS10是唯一有效的数据。在主机写入操作#5中,更新逻辑扇区LS30中的数据,并将其作为LS30′记录于更新区块中。因此,所述实例说明可以任何次序以及任何重复数将一逻辑群组内的扇区写入一混乱更新区块中。
强制循序更新
图8说明作为两次具有不连续逻辑地址的单独主机写入操作的结果而以循序次序被写入一循序更新区块的一逻辑群组中的多个扇区的实例。在主机写入#1中,逻辑扇区LS5-LS8中的更新数据作为LS5′-LS8′被记录于一专用更新区块中。在主机写入#2中,逻辑扇区LS14-LS16中的更新数据作为LS14′-LS16′被记录于上次写入面的更新区块中。然而,在LS8与LS14之间有地址跳跃,而且主机写入#2通常会使更新区块变成非循序。因为地址跳跃并不大,所以一个选项为在执行主机写入#2之前首先从原始区块将中间扇区的数据复制到更新区块来执行填补操作(#2A)。以此方式,可保留所述更新区块的循序性质。
图9为根据本发明一通用实施例说明由更新区块管理器用于更新逻辑数据群组的处理的流程图。所述更新处理包含以下步骤:
步骤260:存储器被组织成复数个区块,每一区块均被分割成可一起擦除的复数个存储器单位,每一存储器单位用于存储一逻辑数据单位。
步骤262:数据被分割成复数个逻辑群组,每一逻辑群组均被分割成复数个逻辑单位。
步骤264:在标准情况中,根据第一种规定的次序,优选以逻辑上循序次序,将一逻辑群组的所有逻辑单位存储于一原始区块的存储器单位中。以此方式,可知道用于访问所述区块中所述个别逻辑单位的索引。
步骤270:对于一给定的逻辑数据群组(例如,LGx)而言,要求更新LGx内的一逻辑单位。(逻辑单位更新作为一实例给出。一般而言,所述更新将为LGx内一个或一个以上连续逻辑单位的程序段。)
步骤272:所要求的更新逻辑单位将被存储于一第二区块中,所述第二区块专门用于记录LGx的更新。记录次序依照第二次序,通常为要求所述更新的次序。本发明的一个特征允许在初始时将一更新区块设置成通用以按照逻辑上循序或混乱的次序来记录数据。所以,取决于第二次序,第二区块可为循序区块或混乱区块。
步骤274:第二区块继续如步骤270的处理循环般地要求记录逻辑单位。当出现预定的关闭条件时,第二区块将关闭以接收另外的更新。在所述情况中,所述处理进入步骤276。
步骤276:确定已关闭的第二区块是否以与原始区块类似的次序来记录其更新逻辑单位。当两个区块记录逻辑单位仅相差一页标签时,所述两个区块被认为具有类似的次序,如配合图3A中所描述。如果所述两个区块具有类似次序,那么所述处理进入步骤280,否则需要在步骤290中执行某种废弃项目收集(garbage collection)。
步骤280:因为第二区块具有与第一区块相同的次序,所以其用于取代原始的第一区块。接着所述更新处理在步骤299处结束。
步骤290:从第二区块(更新区块)和第一区块(原始区块)中搜集所述给定逻辑群组的每一逻辑单位的最新版本。接着,将所述给定逻辑群组的已合并的逻辑单位以与第一区块类似的次序写入一第三区块中。
步骤292:因为第三区块(已合并的区块)具有与第一区块类似的次序,所以其用于取代原始的第一区块。接着所述更新处理在步骤299处结束。
步骤299:当封闭处理产生一完全一致的更新区块时,其成为所述给定逻辑群组的新标准区块。将终止所述逻辑群组的更新线程。
图10为根据本发明一优选实施例说明由更新区块管理器用于更新逻辑数据群组的处理的流程图。所述更新处理包含以下步骤:
步骤310:对于一给定的逻辑数据群组(例如,LGx)而言,要求更新LGx内的一逻辑扇区。(扇区更新作为一实例给出。一般而言,所述更新将为LGx内一个或一个以上连续逻辑扇区的程序段。)
步骤312:如果尚未存在专用于LGx的更新区块,那么进入步骤410以开始针对所述逻辑群组执行新更新线程。此步骤将通过配置专用于记录逻辑群组的更新数据的更新区块而完成。如果已经有一更新区块开放,那么进入步骤314以开始将所述更新扇区记录于所述更新区块中。
步骤314:如果当前的更新区块已经混乱(即,非循序),那么径行进入步骤510以将所要求的更新扇区记录于所述混乱更新区块中。如果当前的更新区块为循序的,那么进入步骤316以处理一循序更新区块。
步骤316:本发明的一个特征允许在初始时将一更新区块设置成通用以按照逻辑上循序或混乱的次序来记录数据。然而,因为所述逻辑群组最终将其数据以逻辑上循序次序存储于一元区块中,所以需要尽可能保持所述更新区块的循序状态。接着,当关闭一更新区块以不再进行进一步更新时,因为不需要进行废弃项目收集,所以将需要较少处理。
因此,确定所要求的更新是否将遵照所述更新区块当前的循序次序。如果所述更新循序地遵照,那么进入步骤510以执行循序更新,且所述更新区块将保持循序状态。另一方面,如果所述更新未循序地遵照(混乱更新),那么在不发生其它动作的情况下,其将使所述循序更新区块转换成一混乱更新区块。
在一个实施例中,不会采取任何更多动作来挽救此情况,且所述处理直接进入步骤370,此处允许进行所述更新以将所述更新区块转换成混乱更新区块。
可选强制循序处理
在另一实施例中,尽可能依照即将进行的混乱更新来视情况执行一强制循序处理步骤320,以保留循序更新区块。存在两种情况,其两者均需要从原始区块中复制丢失的扇区,以维持记录于所述更新区块中的逻辑扇区的循序次序。第一种情况为所述更新产生一短距地址跳跃。第二种情况为提早封闭一更新区块以保持其循序状态。所述强制循序处理步骤320包含以下子步骤:
步骤330:如果所述更新产生一不大于预定量CB的逻辑地址跳跃,那么所述处理进入步骤350中的强制循序更新处理,否则所述处理进入步骤340以考虑其是否具有强制循序关闭的资格。
步骤340:如果未被填充的物理扇区的数目超过预定的设计参数CC(其标准值为更新区块的大小的一半),那么所述更新区块很少被用到且将不会被提早关闭。所述处理进入步骤370且所述更新区块将变成混乱的。另一方面,如果所述更新区块被充分填充,那么其被认为已被充分利用,且因此直接进入步骤360以便强制循序封闭。
步骤350:强制循序更新允许当前的循序更新区块保持循序状态,只要所述地址跳跃不超过预定量CB即可。基本上,拷贝更新区块的关联原始区块中的扇区来填补所述地址跳跃所跨越的间隙。因此,在进入步骤510之前将利用中间地址中的数据来填补循序更新区块,以循序地记录当前的更新。
步骤360:如果当前的循序更新区块已充分被填充,那么强制循序封闭允许关闭当前的循序更新区块,而不是通过即将进行的混乱更新将其转换成一混乱更新区块。混乱或非循序更新被定义成一具有未被上述地址跳跃例外涵盖的正向地址转变、反向地址转变或地址重复使用的更新。为防止一循序更新区块被一混乱更新转换,可通过复制更新区块的关联原始部份过时区块中的扇区来填充更新区块中未被写入的扇区位置。接着,所述原始区块便完全过时并且可被擦除。现在,当前的更新区块具有满载的逻辑扇区集,且接着被封闭形成一完全一致的元区块,用以取代原始元区块。接着所述处理进入步骤430,以在正确的位置中配置一新的更新区块,用以接受步骤310中首先要求的即将进行的扇区更新的记录。
转换成混乱更新区块
步骤370:当即将进行的更新并非循序次序且视情况并不符合强制循序条件,当所述处理进入步骤510时,可通过允许将即将进行的更新扇区(具有非循序的地址)记录于更新区块中,来将所述循序更新区块转换成一混乱更新区块。如果存在最大数目的混乱更新区块,那么必需在允许进行转换之前关闭最近最少被访问的混乱更新区块,从而防止超过最大数目的混乱更新区块。识别最近最少被访问的混乱更新区块的方式与步骤420中所述的一般情况相同,只不过仅限于混乱更新区块。此时可通过如步骤550所述进行合并来实现关闭混乱更新区块。
在系统条件限制下配置新的更新区块
步骤410:将一擦除元区块配置为一更新区块的处理始于确定是否超过预定系统限制。归因于有限的资源,所述存储器管理系统通常允许同时存在预定的最大更新区块数目CA。此限制为循序更新区块与混乱更新区块的总和,且为一设计参数。在一优选实施例中,举例而言,所述限制为最大8个更新区块。另外,归因于对系统资源需求较高,可同时开放的混乱更新区块的最大数目同样会有对应的预定限制(例如,4个)。
因此,当已经配置CA个更新区块时,那么只有在关闭现有已配置的更新区块之后才可能满足下次配置的要求。所述处理进入步骤420。当开放更新区块的数目小于CA时,所述处理直接进入步骤430。
步骤420:如果超过最大更新区块数目CA,那么关闭最近最少被访问的更新区块,并执行废弃项目收集。最近最少被存取的更新区块被识别为与最近最少被访问的逻辑区块相关联的更新区块。出于确定最近最少被访问的区块的目的,访问包括写入和视情况读取逻辑扇区。依照访问次序来保存开放更新区块的列表;初始时,给定没有任何访问次序。当更新区块为循序的时,更新区块的关闭遵照与步骤360和步骤530中所述处理类似的处理;当更新区块为混乱的时,则遵照与步骤540所述处理类似的处理。所述关闭产生空间以供在步骤430中配置新的更新区块。
步骤430:通过配置一新的元区块作为所述给定逻辑群组LGx专用的更新区块来满足配置要求。接着所述处理进入步骤510。
将更新数据记录于更新区块中
步骤510:将所要求的更新扇区记录到更新区块中下一个可用物理位置中。接着,所述处理进入步骤520,以确定所述更新区块是否可以封闭。
更新区块封闭
步骤520:如果所述更新区块仍具有空间以接受额外更新,那么进入步骤570。否则进入步骤522以封闭所述更新区块。当当前所要求的写入试图写入的逻辑扇区多于区块所拥有的空间时,有两种可能的实施方式来填充一更新区块。在第一种实施方式中,将写入要求分成两部分,其中第一部分一直写到所述区块的最后物理扇区为止。接着关闭所述区块,且写入的第二部分将被视为下一个要求的写入。在另一种实施方式中,保留所要求的写入,而所述区块填补其剩余的扇区然后关闭。所要求的写入将被视为下一个要求的写入。
步骤522:如果更新区块为循序的,那么进入步骤530以进行循序关闭。如果更新区块为混乱的,那么进行步骤540以进行混乱关闭。
循序更新区块封闭
步骤530:因为更新区块为循序的且被完全填充,所以其中所存储的逻辑群组为完全一致的。所述元区块为完全一致的且取代原始元区块。此时,原始区块完全过时且可被擦除。接着,所述处理进入步骤570,结束所述给定逻辑群组的更新线程。
混乱更新区块封闭
步骤540:因为更新区块被非循序地填充,且可能多次更新部分的逻辑扇区,所以执行废弃项目收集以挽救其中的有效数据。混乱更新区块将被压缩或合并。在步骤542中将确定要执行哪一处理。
步骤542:执行压缩或合并将取决于更新区块的老化情形。如果一逻辑扇区被多次更新,那么其逻辑地址会高度老化。在更新区块中将记录相同逻辑扇区的多重版本,但只有最后被记录的版本是所述逻辑扇区的有效版本。在含有具有多重版本的逻辑扇区的更新区块中,不同逻辑扇区的数目将远少于逻辑群组的数目。
在优选实施例中,当更新区块中不同逻辑扇区的数目超过预定的设计参数CD(其标准值为一逻辑群组的大小的一半)时,封闭处理将在步骤550中执行合并,否则所述处理将在步骤560中执行压缩。
步骤550:如果混乱更新区块将被合并,那么可用含有经合并的数据的新标准元区块来取代原始区块和更新区块。合并后,更新线程将在步骤570中结束。
步骤560:如果混乱更新区块将被压缩,那么其将被带有经压缩的数据的新更新区块所取代。压缩后,经压缩的更新区块的处理将在步骤570中结束。或者,可延迟到更新区块再次被写入才进行压缩,从而可去除压缩后跟着进行合并而没有中间更新的可能性。当步骤502中出现下一个要求在LGx中进行更新时,那么可使用新更新区块来进一步更新所述给定的逻辑区块。
步骤570:当封闭处理产生一完全一致的更新区块时,其变为所述给定的逻辑群组的新标准区块。逻辑群组的更新线程将终止。当封闭处理产生一新更新区块以取代现有更新区块时,将使用所述新更新区块来记录针对所述给定的逻辑群组所要求的下次更新。当一更新区块未被封闭时,所述处理将在步骤310中出现下一个要求在LGx中进行更新时继续。
从上述的处理可以看出,当关闭一混乱更新区块时,其中所记录的更新数据被进一步处理。明确地说,其有效数据会经过废弃项目收集处理,可能是进行压缩处理而被收集到另一混乱区块中,或是与其关联原始区块进行合并处理以形成新的标准循序区块。
图11A为更详细地说明关闭图10中所示的混乱更新区块的合并处理的流程图。混乱更新区块合并为在封闭更新区块时(例如当更新区块因其最后的物理扇区位置被写入而全部填满时)所执行的两种可能处理中的一者。当被写入所述区块中的不同逻辑扇区的数目超过预定的设计参数CD时选择合并。图10中所示的合并处理步骤550包含以下子步骤:
步骤551:当要关闭一混乱更新区块时,配置一取代它的新元区块。
步骤552:在所述混乱更新区块和其关联原始区块之中搜集每一逻辑扇区的最新版本,忽略所有过时的扇区。
步骤554:以逻辑上循序的次序将已搜集到的有效扇区记录于新元区块中以形成一完全一致的区块,即,形成一具有按照循序次序被记录的一逻辑群组的所有逻辑扇区的区块。
步骤556:以新的完全一致的区块来取代原始区块。
步骤558:擦除已封闭的更新区块和原始区块。
图11B为更详细地说明关闭图10中所示的混乱更新区块的压缩处理的流程图。当被写入所述区块中的不同逻辑扇区的数目低于预定的设计参数CD时选择压缩。图10中所示的压缩处理步骤560包含以下子步骤:
步骤561:当要压缩一混乱更新区块时,配置一取代它的新元区块。
步骤562:在待压缩的现有混乱更新区块中搜集每一逻辑扇区的最新版本。
步骤564:将已搜集到的扇区记录于新更新区块中以形成一具有经压缩的扇区的新更新区块。
步骤566:利用所述具有经压缩的扇区的新更新区块来取代现有更新区块。
步骤568:擦除已封闭的更新区块。
逻辑与元区块状态
图12A说明一逻辑群组的所有可能状态,以及在各种操作下所述状态之间可能的转变。
图12B为列出一逻辑群组的可能状态的表格。所述逻辑群组状态的定义如下:
1.完全一致:所述逻辑群组中的所有逻辑扇区已按照逻辑上循序的次序被写入单一元区块中,其可能使用页标签回绕方式。
2.未被写入:所述逻辑群组中没有任何逻辑扇区已被写入。所述逻辑群组在一群组地址表中被标记为未被写入且没有任何已配置的元区块。其响应针对此群组内每个扇区的主机读取而送回一预定义的数据图案。
3.循序更新:所述逻辑群组内部分扇区已按照逻辑上循序的次序被写入一元区块中,其可能使用页标签,使得其取代来自所述群组的任何先前的完全一致状态的对应逻辑扇区。
4.混乱更新:所述逻辑群组内部分扇区已按照逻辑上非循序的次序被写入一元区块中,其可能会使用页标签,使得其取代来自所述群组的任何先前的完全一致状态的对应逻辑扇区。所述群组内的一扇区可能被写入一次以上,其最新的版本取代所有先前的版本。
图13A说明一元区块的所有可能状态,以及在各种操作下所述状态间可能的转变。
图13B为列出一元区块的可能状态的表格。所述元区块状态的定义如下:
1.已擦除:所述元区块中的所有扇区均已被擦除。
2.循序更新:所述元区块已被部分写入,其扇区呈逻辑上循序的次序,其可能使用页标签。所有扇区均属于相同的逻辑群组。
3.混乱更新:所述元区块已被部分或完全写入,其扇区呈逻辑上非循序的次序。任何扇区均可被写入一次以上。所有扇区均属于相同的逻辑群组。
4.完全一致:所述元区块已按照逻辑上循序的次序被完全写入,其可能使用页标签。
5.原始:所述元区块为先前完全一致的元区块,但至少一个扇区已经因主机数据更新而变为过时。
图14(A)-14(J)为展示对逻辑群组的状态以及物理元区块所进行的各项操作的效果的状态图。
图14(A)展示对应于第一次写入操作的逻辑群组和元区块转变的状态图。主机以逻辑上循序的次序将一先前未被写入的逻辑群组的一个或一个以上扇区写入一新配置的已擦除元区块中。所述逻辑群组与所述元区块进入循序更新状态中。
图14(B)展示对应于第一次完全一致操作的逻辑群组和元区块转变的状态图。一先前未被写入的循序更新逻辑群组在所有扇区均被主机循序写入时变为完全一致。如果所述卡通过用预定义的数据图案来填充剩余的未被写入扇区以填满所述群组,那么也可能发生转变。所述元区块变为完全一致。
图14(C)展示对应于第一次混乱操作的逻辑群组和元区块转变的状态图。一先前未被写入的循序更新逻辑群组在至少一个扇区已被主机非循序写入时变为混乱。
图14(D)展示对应于第一次压缩操作的逻辑群组和元区块转变的状态图。一先前未被写入的混乱更新逻辑群组内的所有有效扇区均从旧的区块被复制到一新的混乱元区块,接着擦除所述旧的区块。
图14(E)展示对应于第一次合并操作的逻辑群组和元区块转变的状态图。一先前未被写入的混乱更新逻辑群组内的所有有效扇区均从旧的混乱区块中被移出,以按照逻辑上循序的次序来填充一新配置的已擦除区块。未被主机写入的扇区用预定义的数据图案来填充。接着擦除旧的混乱区块。
图14(F)展示对应于一循序写入操作的逻辑群组和元区块转变的状态图。主机以逻辑上循序的次序将一完全一致的逻辑群组的一个或一个以上扇区写入一新配置的已擦除元区块中。所述逻辑群组和所述元区块进入循序更新状态中。所述先前完全一致的元区块变为一原始元区块。
图14(G)展示对应于一循序填充操作的逻辑群组和元区块转变的状态图。一循序更新逻辑群组在其所有扇区均被主机循序写入时变为完全一致。在用来自原始区块的有效扇区填充循序更新逻辑群组以使其变成完全一致时的废弃项目收集期间也会发生此转变,其后擦除原始区块。
图14(H)展示对应于一非循序写入操作的逻辑群组和元区块转变的状态图。一循序更新逻辑群组在至少一个扇区被主机非循序写入时变为混乱。所述非循序扇区写入会使得更新区块或对应的原始区块中的有效扇区变为过时。
图14(I)展示对应于一压缩操作的逻辑群组和元区块转变的状态图。一混乱更新逻辑群组内的所有有效扇区均从旧的区块被复制到一新的混乱元区块中,接着擦除所述旧的区块。所述原始区块未受到影响。
图14(J)展示对应于一合并操作的逻辑群组和元区块转变的状态图。一混乱更新逻辑群组内的所有有效扇区均从旧的混乱区块和原始区块被复制,以按照逻辑上循序的次序来填充一新配置的已擦除区块。接着擦除旧的混乱区块和原始区块。
更新区块追踪和管理
图15说明用于追踪已开放和已关闭的更新区块和已擦除区块以进行配置的配置区块列表(ABL)的结构的优选实施例。所述配置区块列表(ABL)610保留于控制器RAM130中,以允许管理已擦除区块的配置、管理已配置的更新区块、管理关联区块和控制结构,并启用正确的逻辑到物理地址转换。在优选实施例中,所述ABL包括一份已擦除区块的列表、一份开放更新区块列表614和一份已关闭更新区块列表616。
开放更新区块列表614为ABL中具有开放更新区块属性的区块登录项的集合。所述开放更新区块列表针对当前开放的每一数据更新区块均具有一个登录项。每一登录项保留以下信息:LG为当前更新元区块专用的逻辑群组地址。循序/混乱为一状态,其指示所述更新区块所填充的究竟是循序的还是混乱的更新数据。MB为更新区块的元区块地址。页标签为被记录在更新区块的第一物理地址处的起始逻辑扇区。已写入的扇区数指示当前已被写入更新区块中的扇区数目。MB0为关联原始区块的元区块地址。页标签0为关联原始区块的页标签。
已关闭更新区块列表616为配置区块列表(ABL)的子集。其为ABL中具有已关闭更新区块属性的区块登录项的集合。所述已关闭更新区块列表针对已关闭的每一数据更新区块均具有一个登录项,但其登录项并未在一逻辑到主物理目录中被更新。每一登录项保留以下信息:LG为当前更新区块专用的逻辑群组地址。MB为更新区块的元区块地址。页标签为被记录在更新区块的第一物理位置处的起始逻辑扇区。MB0为关联原始区块的元区块地址。
混乱区块索引
循序更新区块以逻辑上循序的次序来存储数据,因此可轻易地找出所述区块中的任何逻辑扇区。混乱更新区块以失序的方式来存储其逻辑扇区,且可能存储一逻辑扇区的多重更新代。此处必须保存额外的信息,以便追踪每一有效逻辑扇区在混乱更新区块中的所在位置。
在优选实施例中,混乱区块索引数据结构允许追踪和快速访问混乱区块中的所有有效扇区。混乱区块索引独立地管理小型的逻辑地址空间区域,并且有效地处理系统数据和用户数据热区。索引数据结构基本上可将索引信息保存在具有不频繁更新要求的快闪存储器中,使得不会严重影响性能。另一方面,混乱区块中最近被写入的扇区的列表保留在控制器RAM中的混乱扇区列表中。另外,来自快闪存储器的索引信息的高速缓存保留在控制器RAM中,以便最小化供地址转换用的快闪扇区访问次数。每一混乱区块的索引均被存储于快闪存储器的混乱区块索引(CBI)扇区中。
图16A说明混乱区块索引(CBI)扇区的数据字段。混乱区块索引扇区(CBI扇区)含有针对逻辑群组中被映射到混乱更新区块的每一扇区的索引,其定义逻辑群组的每一扇区在混乱更新区块或其关联原始区块内的位置。CBI扇区包括:一混乱区块索引字段,其用于追踪混乱区块内的有效扇区;一混乱区块信息字段,其用于追踪混乱区块的地址参数;和一扇区索引字段,其用于追踪存储CBI扇区的元区块(CBI区块)内的有效CBI扇区。
图16B说明被记录于专用元区块中的混乱区块索引(CBI)扇区的实例。所述专用元区块将被称为CBI区块620。当更新一CBI扇区时,其被写入CBI区块620中的下一个可用物理扇区位置中。因此在所述CBI区块中可能存在一CBI扇区的多重拷贝,其中只有最后被写入的拷贝有效。举例而言,逻辑群组LG1的CBI扇区已被更新三次,其中最新的版本为有效的版本。CBI区块中的每一有效扇区的位置可用所述区块中最后被写入的CBI扇区中的索引集来识别。在此实例中,所述区块中最后被写入的CBI扇区为LG136的CBI扇区,且其索引集为取代所有先前索引集的有效索引集。当CBI区块最终完全充满CBI扇区后,通过将所有有效扇区重新写入一新的区块位置而在一控制写入操作期间压缩所述区块。接着擦除所述满载的区块。
CBI扇区内的混乱区块索引字段含有针对逻辑群组或子群组内被映射到混乱更新区块的每一逻辑扇区的索引登录项。每一索引登录项表示混乱更新区块内对应逻辑扇区的有效数据所在的偏移。预留的索引值指示在混乱更新区块中不存在所述逻辑扇区的任何有效数据,而关联原始区块中的对应扇区有效。部分混乱区块索引字段登录项的高速缓存保留在控制器RAM中。
CBI扇区内的混乱区块信息字段含有针对存在于系统中的每一混乱更新区块的一个登录项,其记录所述区块的地址参数信息。此字段中的信息仅在CBI区块中最后被写入的扇区中有效。此信息还存在于RAM的数据结构中。
每一混乱更新区块的登录项均包括三个地址参数。第一个参数为与混乱更新区块相关联的逻辑群组的逻辑地址(或逻辑群组号码)。第二个参数为混乱更新区块的元区块地址。第三个参数为混乱更新区块中最后被写入的扇区的物理地址偏移。偏移信息设定初始化期间混乱更新区块的扫描起始点,用以在RAM中重建数据结构。
扇区索引字段含有针对CBI区块中每一有效CBI扇区的登录项。其定义CBI区块内与每一容许的混乱更新区块有关的最近被写入的CBI扇区所在的偏移。索引中一偏移的预留值指示不存在容许的混乱更新区块。
图16C为说明访问正在进行混乱更新的给定逻辑群组的一逻辑扇区的数据的流程图。在更新处理期间,更新数据被记录于混乱更新区块中,而未改变的数据仍存在于与逻辑群组相关联的原始元区块中。在混乱更新下访问逻辑群组的一逻辑扇区的处理如下:
步骤650:开始找出一给定逻辑群组的一给定逻辑扇区。
步骤652:在CBI区块中找出最后被写入的CBI扇区。
步骤654:通过查找最后被写入的CBI扇区的混乱区块信息字段来找出与给定逻辑群组相关联的混乱更新区块或原始区块。此步骤可在步骤662之前的任何时间处执行。
步骤658:如果最后被写入的CBI扇区与给定的逻辑群组有关,那么便找出CBI扇区。进入步骤662,否则进入步骤660。
步骤660:通过查找最后被写入的CBI扇区的扇区索引字段来找出给定逻辑群组的CBI扇区。
步骤662:通过查找已找到的CBI扇区的混乱区块索引字段以在混乱区块或原始区块中找出给定的逻辑扇区。
图16D为根据一替代实施例说明访问正在进行混乱更新的给定逻辑群组的一逻辑扇区的数据的流程图,其中逻辑群组已被分割成复数个子群组。CBI扇区的有限容量仅能追踪一预定最大的逻辑扇区数目。当逻辑群组的逻辑扇区多于单一CBI扇区所能处理者时,逻辑群组被分割成多个子群组,每一子群组均分配一CBI扇区。在一个实例中,每一CBI扇区具有足够容量来追踪由256个扇区以及多达8个混乱更新区块所组成的逻辑群组。如果逻辑群组的大小超过256个扇区,那么逻辑群组内存在一单独的CBI扇区供每一256扇区子群组来使用。在一逻辑群组内所存在的CBI扇区可供多达8个子群组使用,支持多达2048扇区大小的逻辑群组。
在优选实施例中,采用间接索引方案来帮助管理所述索引。所述扇区索引的每一登录项均具有直接和间接字段。
直接扇区索引定义CBI扇区内与特定混乱更新区块有关的所有可能CBI扇区所在的偏移。此字段中的信息仅在与特定混乱更新区块有关的最后被写入的CBI扇区中有效。索引中一偏移的预留值指示不存在所述CBI扇区,因为与混乱更新区块有关的对应逻辑子群组不存在,或因为已配置更新区块而尚未被更新。
间接扇区索引定义CBI扇区内与每一容许的混乱更新区块有关的最近被写入的CBI扇区所在的偏移。所述索引中一偏移的预留值指示不存在容许的混乱更新区块。
图16D展示在混乱更新下访问逻辑群组的一逻辑扇区的处理,其步骤如下:
步骤670:将每一逻辑群组分割成多个子群组并分配一CBI扇区给每一子群组。
步骤680:开始找出一给定逻辑群组的一给定子群组的一给定逻辑扇区。
步骤682:在CBI区块中找出最后被写入的CBI扇区。
步骤684:通过查找最后被写入的CBI扇区的混乱区块信息字段来找出与给定子群组相关联的混乱更新区块或原始区块。此步骤可在步骤696之前的任何时间处执行。
步骤686:如果最后被写入的CBI扇区与给定逻辑群组有关,那么进入步骤691。否则进入步骤690。
步骤690:通过查找最后被写入的CBI扇区的间接扇区索引字段来找出给定逻辑群组的多重CBI扇区中最后被写入的CBI扇区。
步骤691:已找出与给定逻辑群组的子群组中的一个子群组相关联的至少一CBI扇区。继续。
步骤692:如果所找到的CBI扇区与给定的子群组有关,那么找出给定子群组的CBI扇区。进入步骤696。否则进入步骤694。
步骤694:通过查找当前所找到的CBI扇区的直接扇区索引字段来找出给定子群组的CBI扇区。
步骤696:通过查找给定子群组的CBI扇区的混乱区块索引字段以在混乱区块或原始区块中找出给定逻辑扇区。
图16E说明在将每一逻辑群组分割成多个子群组的实施例中的混乱区块索引(CBI)扇区的实例和其功能。逻辑群组700初始时将其完整的数据存储于原始元区块702中。接着,逻辑群组进行更新,其配置一专用混乱更新区块704。在当前实例中,逻辑群组700被分割成复数个子群组(例如子群组A、B、C、D),每一子群组均具有256个扇区。
为在子群组B中找出第i个扇区,首先找出CBI扇区620中最后被写入的CBI扇区。最后被写入的CBI扇区的混乱区块信息字段提供地址以找出给定逻辑群组的混乱更新区块704。同时,其提供被写入混乱区块中的最后一扇区的位置。此信息在扫描索引和重建索引时有用。
如果最后被写入的CBI扇区是给定逻辑群组的四个CBI扇区中的一个CBI扇区,那么将进一步确定其是否确实为含有第i个逻辑扇区的给定子群组B中的CBI扇区。如果是,那么CBI扇区的混乱区块索引将指向元区块位置,用以存储第i个逻辑扇区的数据。扇区位置可能位于混乱更新区块704或原始区块702中。
如果最后被写入的CBI扇区是给定逻辑群组的四个CBI扇区中的一个CBI扇区但并非确实为子群组B所有,那么查找其直接扇区索引以找出子群组B的CBI扇区。一旦找出此确实的CBI扇区之后,便查找其混乱区块索引以在混乱更新区块704和原始区块702中找出第i个逻辑扇区。
如果最后被写入的CBI扇区并不是给定逻辑群组的四个CBI扇区中的任何一个,那么查找其间接扇区索引以找出四个CBI扇区中的一个CBI扇区。在图16E所示的实例中,找出子群组C的CBI扇区。接着,查找子群组C的此CBI扇区的直接扇区索引以找出子群组B的确实的CBI扇区。所述实例展示出,当查找其混乱区块索引时,发现第i个逻辑扇区并未改变且其有效数据将位于原始区块中。
类似考虑可应用于找出给定逻辑群组的子群组C中的第j个逻辑扇区。所述实例展示出最后被写入的CBI扇区并不是给定逻辑群组的四个CBI扇区中的任何一个。其间接扇区索引指向给定逻辑群组的四个CBI扇区中的一个CBI扇区。被指到的四个CBI扇区中最后被写入者同样确实为子群组C的CBI扇区。当查找其混乱更新索引时,发现到第j个逻辑扇区位于混乱更新区块704中的指定位置处。
在所述系统中,每一混乱更新区块均有一份混乱扇区列表存在于控制器RAM中。每份列表均含有一份自一相关CBI扇区在快闪存储器中最后被更新以来被写入混乱更新区块中的扇区的记录。用于一特定混乱更新区块的逻辑扇区地址的数目(其可能保留于一混乱扇区列表中)为一设计参数,其标准值为8个到16个。所述列表的最佳大小取决于其对混乱数据写入操作的额外开销的影响与初始化期间扇区扫描时间之间的取舍结果。
在系统初始化期间,必要时扫描每一混乱更新区块,以识别自其关联CBI扇区其中之一的前次更新以来被写入的有效扇区。在控制器RAM中为每一混乱更新区块构造一份混乱扇区列表。仅需要从最后被写入的CBI扇区中其混乱区块信息字段中所定义的最后扇区地址扫描每一区块。
当配置一混乱更新区块时,写入一CBI扇区,以对应於所有已更新的逻辑子群组。混乱更新区块的逻辑与物理地址均被写入所述扇区中一可用混乱区块信息字段中,而混乱区块索引字段中无登录项。在控制器RAM中开放一份混乱扇区列表。
当关闭一混乱更新区块时,写入一CBI扇区,其中从所述扇区中的混乱区块信息字段中去除所述区块的逻辑与物理地址。RAM中的对应混乱扇区列表变为不使用。
控制器RAM中的对应混乱扇区列表经过修改以包括被写入混乱更新区块的扇区的记录。当控制器RAM中的混乱扇区列表没有任何可用空间来记录被写入一混乱更新区块的其它扇区时,写入与所述列表中的扇区有关的逻辑子群组的已更新CBI扇区,并清除所述列表。
当CBI区块620满载时,将有效的CBI扇区复制到所配置的已擦除区块,并擦除先前的CBI区块。
地址表
图2中所示的逻辑到物理地址转换模块140负责使主机的逻辑地址与快闪存储器中对应的物理地址产生联系。逻辑群组与物理群组(元区块)之间的映射被存储在分布于非易失性快闪存储器200和易失性但比较迅速的RAM 130(参见图1)中的表格集和复数份列表中。地址表被保存于快闪存储器中,其含有存储器系统中每个逻辑群组的元区块地址。此外,最近被写入的扇区的逻辑到物理地址记录被暂时保留在RAM中。这些易失性存储器可在开机后初始化所述系统时从快闪存储器中的区块列表和数据扇区标头中重新构造。因此,不需要频繁地更新快闪存储器中的地址表,从而使控制数据的额外开销写入操作的百分比低。
逻辑群组的地址记录的分级包括开放更新区块列表、RAM中的已关闭更新区块列表和保存在快闪存储器中的群组地址表(GAT)。
开放更新区块列表为一份位于控制器RAM中由复数个数据更新区块组成的列表,其为当前开放用来写入已更新扇区数据。当关闭一区块时,所述区块的登录项被移至已关闭更新区块列表中。已关闭更新区块列表为一份位于控制器RAM中由已被关闭的复数个数据更新区块所组成的列表。在控制写入操作期间,所述列表中登录项所组成的子集被移至群组地址表中的一扇区中。
群组地址表(GAT)为一份由存储器系统中主机数据的所有逻辑群组的元区块地址所组成的列表。GAT针对每一逻辑群组均含有一登录项,其依照逻辑地址循序排列。GAT中的第n个登录项含有地址n的逻辑群组的元区块地址。在优选实施例中,其为一份位于快闪存储器中的表格,其包含一组扇区(称为GAT扇区),其中登录项定义存储器系统中每一逻辑群组的元区块地址。GAT扇区位于快闪存储器中一个或一个以上专用控制区块(称为GAT区块)中。
图17A说明群组地址表(GAT)扇区的数据字段。举例而言,GAT扇区可能具有足够容量以容纳一组128个连续逻辑群组的GAT登录项。每一GAT扇区均包括两个组成部分,即:一组GAT登录项,其供某一范围内每一逻辑群组的元区块地址使用;和一GAT扇区索引。第一组成部分含有用于找出与逻辑地址相关联的元区块的信息。第二组成部分含有用于找出GAT区块内所有有效GAT扇区的信息。每一GAT登录项均具有三个字段,即:元区块号码;页标签,如先前配合图3A(iii)所定义;和旗标,其指示元区块是否已被重新连接。GAT扇区索引列出GAT区块中有效GAT扇区的位置。此索引位于每个GAT扇区中,但被下次写入GAT区块中的GAT扇区的版本取代。因此,只有最后被写入的GAT扇区中的版本有效。
图17B说明被记录于一个或一个以上GAT区块中的群组地址表(GAT)扇区的实例。GAT区块为专用于记录GAT扇区的元区块。当更新GAT扇区时,其被写入GAT区块720中的下一个可用物理扇区位置中。因此,在GAT区块中可能存在GAT扇区的多重拷贝,其中只有最后被写入的拷贝有效。举例而言,GAT扇区45已被更新至少两次,最新的版本为有效版本。GAT区块中每一有效扇区的位置可用所述区块中最后被写入的GAT扇区中的一索引集来识别。在此实例中,所述区块中最后被写入的GAT扇区为GAT扇区56,而其索引集为取代所有先前索引集的有效索引集。当GAT区块最后完全充满GAT扇区后,可通过将所有有效扇区重新写入一新的区块位置以在控制写入操作期间来压缩所述区块。接着可擦除所述满载的区块。
如前所述,GAT区块含有逻辑地址空间区域中一逻辑连续群组集的登录项。GAT区块内的GAT扇区各含有供128个连续逻辑群组使用的逻辑到物理映射信息。用于存储GAT区块所扩及的地址范围内所有逻辑群组的登录项所需要的GAT扇区数目仅占去区块中总扇区位置的一部分。因此,可通过将一GAT扇区写入区块中下一个可用的扇区位置处来更新所述GAT扇区。所有有效GAT扇区的索引和其在GAT区块中的位置均被保存在最近被写入的GAT扇区中的一索引字段中。GAT区块的总扇区中被有效GAT扇区占去的部分为一系统设计参数,其通常为25%。然而,每一GAT区块最多有64个有效的GAT扇区。在具有大逻辑容量的系统中,可能需要将GAT扇区存储于一个以上的GAT扇区中。在此情况中,每一GAT区块均与一固定范围的逻辑群组相关联。
GAT更新作为控制写入操作的一部分来执行,当ABL用完配置用的区块时触发所述GAT更新(参见图18)。所述更新与ABL填充操作和CBL净空操作同时执行。在GAT更新操作期间,一个GAT扇区利用来自己关闭更新区块列表中对应登录项的信息来更新登录项。当更新一GAT登录项后,从已关闭更新区块列表(CUBL)中去除任何对应的登录项。举例而言,可基于已关闭更新区块列表中的第一登录项来选择待更新的GAT扇区。经更新的扇区被写入GAT区块中下一个可用的扇区位置中。
当没有任何扇区位置可供一已更新的GAT扇区使用时,在控制写入操作期间发生GAT重写操作。一新的GAT区块被配置,并按照循序次序从满载的GAT区块中复制由GAT索引所定义的有效GAT扇区。接着擦除满载的GAT区块。
GAT高速缓存位于控制器RAM 130中,其为GAT扇区中128个登录项的子部分中复数个登录项的拷贝。GAT高速缓存登录项的数目为一系统设计参数,标准值为32个。每次从一GAT扇区读取一登录项时,便为相关扇区子部分产生一GAT高速缓存。可保存多个GAT高速缓存。所述数目为一设计参数,标准值为4个。可在最近最少被使用的基础上用不同扇区子部分的登录项来重写一GAT高速缓存。
已擦除元区块管理
图2中所示的擦除区块管理器160使用一组列表来保存目录和系统控制信息,用以管理擦除区块。这些列表分布于控制器RAM 130和快闪存储器200中。当必须配置一已擦除元区块来存储用户数据或存储系统控制数据结构时,在保留于控制器RAM中的配置区块列表(ABL)(参见图15)中选择下一个可用的元区块号码。类似地,当一元区块在其已退役后被擦除时,其号码被加进同样保留于控制器RAM中的已清除区块列表(CBL)中。非常静态的目录和系统控制数据被存储于快闪存储器中。这些包括已擦除区块列表,以及列出快闪存储器中所有元区块的已擦除状态的位图(MAP)。所述已擦除区块列表和MAP被存储于个别的扇区中,并被记录到专用元区块(称为MAP元区块)中。这些列表分布于控制器RAM和快闪存储器中,其提供已擦除区块记录的分级,以有效地管理已擦除元区块的使用情形。
图18为说明针对使用和循环使用已擦除区块而言,控制与目录信息的分布和流动的示意性方框图。控制与目录数据保存于复数个列表中,所述列表则保留于控制器RAM130中,或保留于驻存在快闪存储器200中的MAP区块750中。
在优选实施例中,控制器RAM 130保留配置区块列表(ABL)610和已清除区块列表(CBL)740。如先前配合图15所述,配置区块列表(ABL)追踪最近被配置用于存储用户数据或存储系统控制数据结构的元区块。当需要配置一新的已擦除元区块时,在配置区块列表(ABL)中选择下一个可用的元区块号码。类似地,所述已擦除区块列表(CBL)用于追踪已被解除配置并擦除的更新元区块。ABL和CBL均保留于控制器RAM130(参见图1)中,以在追踪非常有源的更新区块时可快速访问且容易操纵。
配置区块列表(ABL)追踪一已擦除的元区块集区并将所述已擦除元区块配置成一更新区块。因此,可由一属性来描述的这些元区块中的每一者均指明其究竟是ABL即将进行的配置中的已擦除区块、开放的更新区块还是已关闭的更新区块。图18展示ABL含有已擦除ABL列表612、开放更新区块列表614和已关闭更新区块列表616。此外,与开放更新区块列表614相关联的为关联原始区块列表615。类似地,与已关闭更新区块列表相关联的为关联的已擦除原始区块列表617。如先前图15中所示,这些关联的列表分别为开放更新区块列表614和已关闭更新区块列表616的子集。已擦除ABL区块列表612、开放更新区块列表614和已关闭更新区块列表616全部为配置区块列表(ABL)610的子集,每一者中的登录项各具有对应的属性。
MAP区块750为快闪存储器200中专用于存储擦除管理记录的元区块。MAP区块存储一时间连续的复数个MAP区块扇区,每一MAP扇区均为一擦除区块管理(EBM)扇区760或一MAP扇区780。当已擦除区块已配置殆尽且在一元区块退役时循环使用时,关联的控制与目录数据优选地被包含于逻辑扇区中,所述逻辑扇区可在MAP区块中进行更新,其每一更新数据实例被记录到一新的区块扇区中。在MAP区块750中可能存在复数个EBM扇区760和复数个MAP扇区780的多重拷贝,其中只有最新的版本有效。指向所述有效MAP扇区的位置的索引被包含于EMB区块的一个字段中。在控制写入操作期间,有效的EMB扇区必定最后才被写入MAP区块中。当MAP区块750满载时,可通过将所有有效扇区重写到一新的区块位置以在控制写入操作期间将其压缩。接着擦除满载的区块。
每一EBM扇区760均含有复数份已擦除区块列表(EBL)770,所述列表为由已擦除区块群的子集的地址所组成的列表。已擦除区块列表(EBL)770可起一缓冲器的作用,其中含有已擦除元区块号码,从中可定期地取用元区块号码来重新填充ABL,并可定期地将元区块号码加入其中以重新净空CBL。EBL 770可用作缓冲器,用于作为可用区块缓冲器(ABB)772、已擦除区块缓冲器(EBB)774和已清除区块缓冲器(CBB)776。
可用区块缓冲器(ABB)722含有位于ABL 610中紧跟在前次ABL填充操作后的登录项所组成的拷贝。实际上,其为某次ABL填充操作之后ABL的备份拷贝。
已擦除区块缓冲器(EBB)774含有复数个已擦除区块地址,所述地址先前已从MAP扇区780或从CBB列表776(下文描述)传送,并且其可在ABL填充操作期间传送给ABL 610。
已清除区块缓冲器(CBB)776含有已擦除区块的地址,所述地址已在CBL净空操作期间从CBL 740传送,并且随后将被传送给MAP扇区780或EBB列表774。
所述MAP扇区780中的每一者均含有被称为MAP的位图结构。MAP针对快闪存储器中的每一元区块使用一个位来表示每一区块的擦除状态。对应于EBM扇区中的ABL、CBL或已擦除区块列表中所列的区块地址的位均不会在MAP中被设定为已擦除状态。
不含有有效数据结构且未被指定为MAP内的一已擦除区块、已擦除区块列表、ABL或CBL的任何区块均不被区块配置算法使用,且因此不可访问用于存储主机或控制数据结构。此方式提供一种简单的机制,用以从可访问的快闪存储器地址空间中排除具有缺陷位置的区块。
图18中所示的分级可有效地管理已擦除区块记录,并对存储于控制器的RAM中的区块地址列表提供完整的安全性。可不频繁地在这些区块位置列表与一个或一个以上MAP扇区780之间交换已擦除的区块登录项。可在电源关闭之后系统初始化期间,经由存储于快闪存储器中复数个扇区中的已擦除区块列表和地址转换表中的信息,并有限地扫描快闪存储器中少量被参照的数据区块,来重新构造这些列表。
用于更新已擦除元区块记录的分级所采用的算法可以下面的次序来配置已擦除区块:将来自MAP区块750的区块突发在地址次序中交错来自CBL 740的区块地址突发,其反映区块被主机更新的次序。对大部分元区块大小和系统存储器容量而言,单一MAP扇区可针对系统中的所有元区块提供一位图。在此情况中,已擦除区块必定以与被记录于此MAP扇区中相同的地址次序来配置使用。
擦除区块管理操作
如前所述,ABL 610列表具有可被配置使用的已擦除元区块以及最近被配置为数据更新区块的元区块的地址登录项。ABL中的实际区块地址数目介于最大上限与最小下限之间,上下限两者均为系统设计变量。制造期间被格式化的ABL登录项数目为卡类型和容量的函数。此外,ABL中的登录项数目在接近系统的寿命终点时可能会减少,因为可用的已擦除区块的数目会因为其寿命期间区块发生故障而减少。举例而言,在填充操作后,ABL中的登录项可能指明可供以下用途使用的区块。部分被写入的数据更新区块的登录项为每一区块一个登录项,其不超过同时开放的更新区块最大值的系统限制。有一到二十个登录项供可配置为数据更新区块的已擦除区块使用。四个登录项供可配置为控制区块的已擦除区块使用。
ABL填充操作
当ABL 610经过配置而耗尽时,其将需要进行再填充。填充ABL的一项操作发生于控制写入操作期间。当必须配置一区块,但ABL所含的已擦除区块登录项却不足以配置为一数据更新区块或特定其它的控制数据更新区块时,触发此项操作。在控制写入期间,ABL填充操作与GAT更新操作同时进行。
在一ABL填充操作期间会发生以下动作:
1.保留具有当前数据更新区块的属性的ABL登录项。
2.保留具有已关闭数据更新区块的属性的ABL登录项,除非所述区块的一登录项正在同时进行的GAT更新操作中被写入,在此情况中则从ABL中去除所述登录项。
3.保留未被配置的已擦除区块的ABL登录项。
4.对ABL进行压缩,以去除因登录项移除所产生的间隙,从而保持登录项的次序。
5.通过附加来自EBB列表中下一个可用的登录项来完全填充ABL。
6.用ABL中当前的登录项来重写ABB列表。
CBL净空操作
CBL为由控制器RAM中已擦除的区块地址所组成的列表,已擦除区块登录项的数目限制与ABL相同。净空CBL的一项操作发生于控制写入操作期间。因此,其与ABL填充操作/GAT更新操作、或CBI区块写入操作同时进行。在一CBL净空操作中,登录项从CBL 740中被去除并写入CBB列表776中。
MAP交换操作
当EBB列表774已净空时,在控制写入操作期间可能在MAP扇区780与EBM扇区760中的擦除区块信息之间定期进行MAP交换操作。如果系统中所有已擦除元区块均被记录于EBM扇区760中,那么不存在任何MAP扇区780,且不执行任何MAP交换。在MAP交换操作期间,用于将已擦除区块馈送给EBB 774的MAP扇区被视为来源MAP扇区782。相反地,用于从CBB 776接收已擦除区块的MAP扇区则被视为目的地MAP扇区784。如果仅存在一个MAP扇区,那么其可同时起来源与目的地MAP扇区的作用,其定义如下。
在一MAP交换期间执行以下动作。
1.基于递增的指标来选择一来源MAP扇区。
2.基于不在来源MAP扇区中的第一CBB登录项中的区块地址来选择一目的地MAP扇区。
3.如CBB中相关登录项所定义,更新目的地MAP扇区,并从CBB中去除所述登录项。
4.将已更新的目的地MAP扇区写入MAP区块中,除非不存在单独的来源MAP扇区。
5.如CBB中相关登录项所定义,更新来源MAP扇区,并从CBB中移除所述登录项。
6.将CBB中剩余的登录项附加到EBB中。
7.用来源MAP扇区所定义的已擦除区块地址尽可能地填充所述EBB。
8.将已更新的来源MAP扇区写入MAP区块中。
9.将一已更新的EBM扇区写入MAP区块中。
列表管理
图18展示控制与目录信息在各种列表之间的分布和流动。为方便起见,将图18中用以在所述列表的元件之间移动登录项的操作或改变登录项的属性的操作标示成下面的[A]到[O]。
[A]当一已擦除区块被配置为一更新区块供主机数据使用时,其位于ABL中的登录项的属性从已擦除ABL区块变成开放更新区块。
[B]当一已擦除区块被配置为一控制区块时,其位于ABL中的登录项被去除。
[C]当产生一具有开放更新区块属性的ABL登录项时,将一关联原始区块字段加入登录项中,以记录待更新的逻辑群组的原始元区块地址。此信息从GAT获得。
[D]当关闭一更新区块时,其位于ABL中的登录项的属性从开放更新区块变成已关闭更新区块。
[E]当关闭一更新区块时,擦除其关联原始区块,且其位于ABL中的登录项中的关联原始区块字段的属性变成已擦除原始区块。
[F]在一ABL填充操作期间,在相同控制写入操作期间在GAT中地址更新的任何已关闭更新区块均从ABL中去除其登录项。
[G]在一ABL填充操作期间,当从ABL中去除一已关闭更新区块的登录项时,将其关联的已擦除原始区块的登录项移到CBL中。
[H]当擦除一控制区块时,将其登录项加入CBL中。
[I]当在一ABL填充操作期间,已擦除的区块登录项从EBB列表中被移到ABL,并且被赋予已擦除ABL区块的属性。
[J]在一ABL填充操作期间修改所有相关ABL登录项之后,ABL中的区块地址取代ABB列表中的区块地址。
[K]在控制写入期间与一ABL填充操作同时地将CBL中已擦除区块的登录项移到CBB列表中。
[L]在一MAP交换操作期间,所有相关登录项均从CBB列表移到MAP目的地扇区。
[M]在一MAP交换操作期间,所有相关登录项均从CBB列表移到MAP来源扇区。
[N]在[L]和[M]之后,在一MAP交换操作期间,所有剩余的登录项均从CBB列表移到EBB列表。
[O]在[N]之后,在一MAP交换操作期间,如果可能,除[M]中被移动的登录项以外的登录项均从MAP来源扇区中被移动以填充EBB列表。
逻辑到物理地址转换
为在快闪存储器中找出一逻辑扇区的物理位置,图2中所示的逻辑到物理地址转换模块140执行逻辑到物理地址转换。除了最近被更新的那些逻辑群组以外,可使用驻存在快闪存储器200中的群组地址表(GAT)或控制器RAM 130中的GAT高速缓存来执行大部分转换。对最近被更新的逻辑群组进行地址转换将需要查找主要驻存在控制器RAM 130中的更新区块的地址列表。因此,针对一逻辑扇区地址所进行的逻辑到物理地址转换的处理取决于与扇区所在的逻辑群组相关联的区块的类型。区块的类型如下:完全一致区块、循序数据更新区块、混乱数据更新区块、已关闭数据更新区块。
图19为展示逻辑到物理地址转换的处理的流程图。基本上,可通过首先使用逻辑扇区地址查找各个更新目录(例如开放更新区块列表和关闭更新区块列表)而找出对应的元区块和物理扇区。如果关联的元区块并不是更新处理的一部分,那么由GAT提供目录信息。逻辑到物理地址转换包括以下步骤:
步骤800:提供一逻辑扇区地址。
步骤810:在控制器RAM中的开放更新区块列表614(参见图15和18)中查找所提供的逻辑地址。如果查找失败,那么进入步骤820,否则进入步骤830。
步骤820:在已关闭更新区块列表616中查找所提供的逻辑地址。如果查找失败,那么所提供的逻辑地址并非为任何更新处理的一部分;进入步骤870,进行GAT地址转换。否则进入步骤860,进行已关闭更新区块地址转换。
步骤830:如果含有所提供的逻辑地址的更新区块为循序的,那么进入步骤840,进行循序更新区块地址转换。否则进入步骤850,进行混乱更新区块地址转换。
步骤840:使用循序更新区块地址转换来获得元区块地址。进入步骤880。
步骤850:使用混乱更新区块地址转换来获得元区块地址。进入步骤880。
步骤860:使用已关闭更新区块地址转换来获得元区块地址。进入步骤880。
步骤870:使用群组地址表(GAT)转换来获得元区块地址。进入步骤880。
步骤880:将元区块地址转换为物理地址。所述转换方法取决于元区块是否已被重新连接。
步骤890:已获得物理扇区地址。
各种地址转换处理详细描述如下:
循序更新区块地址转换(步骤840)
从开放更新区块列表614(图15和18)中的信息可直接完成与循序更新区块相关联的逻辑群组中的目标逻辑扇区地址的地址转换,如下所示:
1.从列表中“页标签”和“已写入的扇区数”字段中确定目标逻辑扇区究竟位于更新区块中还是位于其关联原始区块中。
2.从列表中读取适于目标逻辑扇区的元区块地址。
3.从适当的“页标签”字段中确定元区块内的扇区地址。
混乱更新区块地址转换(步骤850)
与混乱更新区块相关联的逻辑群组中的目标逻辑扇区地址的地址转换序列如下。
1.如果从RAM中的混乱扇区列表中确定所述扇区为最近被写入的扇区,那么从其在此列表中的位置可直接完成地址转换。
2.CBI区块中最近被写入的扇区在其混乱区块数据字段中含有与目标逻辑扇区地址有关的混乱更新区块的物理地址。其还在其间接扇区索引字段中含有与此混乱更新区块有关的最后被写入的CBI扇区的CBI区块内的偏移(参见图16A-16E)。
3.这些字段中的信息被高速缓存于RAM中,而不需要在随后的地址转换期间读取扇区。
4.读取在步骤3处由间接扇区索引字段识别的CBI扇区。
5.将最近被访问的混乱更新子群组的直接扇区索引字段高速缓存于RAM中,而不需要执行步骤4处的读取以重复访问相同的混乱更新区块。
6.在步骤4或步骤5处所读取的直接扇区索引字段接着可识别与含有目标逻辑扇区地址的逻辑子群组有关的CBI扇区。
7.从在步骤6中所识别的CBI扇区中读取目标逻辑扇区地址的混乱区块索引登录项。
8.最近被读取的混乱区块索引字段可高速缓存于控制器RAM中,而不需要执行步骤4和步骤7处的读取以重复访问相同的逻辑子群组。
9.混乱区块索引登录项在混乱更新区块或关联的原始区块中定义目标逻辑扇区的位置。如果目标逻辑扇区的有效拷贝位于原始区块中,那么使用原始元区块和页标签信息来找出所述有效拷贝。
已关闭更新区块地址转换(步骤860)
从已关闭区块更新列表(参见图18)中的信息可直接完成与已关闭更新区块相关联的逻辑群组中的目标逻辑扇区地址的地址转换,如下所示。
1.从列表中读取被分配给目标逻辑群组的元区块地址。
2.从列表的“页标签”字段中确定元区块内的扇区地址。
GAT地址转换(步骤870)
如果一逻辑群组未被开放区块更新列表或已关闭区块更新列表参照,那么其在GAT中的登录项有效。被GAT参照的逻辑群组中的目标逻辑扇区地址的地址转换序列如下。
1.估算RAM中可用的GAT高速缓存的范围,用以确定目标逻辑群组的一登录项是否被包含于一GAT高速缓存中。
2.如果在步骤1中发现目标逻辑群组,那么GAT高速缓存含有完全的群组地址信息,其包括元区块地址和页标签,允许进行目标逻辑扇区地址的转换。
3.如果目标地址并不位于GAT高速缓存中,那么必须读取目标GAT区块的GAT索引,以识别与目标逻辑群组地址有关的GAT扇区的位置。
4.将最后被访问的GAT区块的GAT索引保留于控制器RAM中,并可进行访问而不需要从快闪存储器中读取一扇区。
5.将由每个GAT区块的元区块地址和被写入每一GAT区块中的扇区数所组成的列表保留在控制器RAM中。如果步骤4处无法访问必要的GAT索引,那么因此立刻从快闪存储器中读取。
6.从步骤4或步骤6处所获得的GAT索引所定义的GAT区块中的扇区位置中读取与目标逻辑群组地址有关的GAT扇区。使用含有目标登录项的扇区的子部分来更新一GAT高速缓存。
7.从目标GAT登录项内的元区块地址字段和“页标签”字段中获得目标扇区地址。
元区块到物理地址转换(步骤880)
如果与元区块地址相关联的旗标指示所述元区块已被重新连接,那么从BLM区块读取相关的LT扇区,以确定目标扇区地址的擦除区块地址。否则,从元区块地址直接确定擦除区块地址。
控制数据管理
图20说明在存储器管理操作过程中对控制数据结构所执行的操作的分级。数据更新管理操作作用于驻存在RAM中的各个列表上。控制写入操作作用于快闪存储器中各个控制数据扇区和专用区块上,而且还与RAM中的列表交换数据。
数据更新管理操作在RAM中针对ABL、CBL和混乱扇区列表来执行。当一已擦除区块被配置为一更新区块或控制区块时,或是关闭一更新区块时,更新ABL。当擦除一控制区块时,或时将一已关闭的更新区块的一个登录项写入GAT中时,更新CBL。当一扇区被写入一混乱更新区块中时,更新所述更新混乱扇区列表。
控制写入操作使得来自RAM中的控制数据结构的信息被写入快闪存储器中的控制数据结构中,必要时随之更新快闪存储器和RAM中的其它支持的控制数据结构。当ABL不含待被配置为更新区块的已擦除区块的任何其它登录项时,或是重写CBI区块时,触发所述操作。
在优选实施例中,ABL填充操作、CBL净空操作和EBM扇区更新操作均在每个控制写入操作期间执行。当含有EBM扇区的MAP区块变为满载时,将有效EBM和MAP扇区复制到已配置的已擦除区块中,并擦除先前的MAP区块。
在每个控制写入操作期间写入一个GAT扇区,并进而修改已关闭的更新区块列表。当GAT区块变为满载时,执行GAT重写操作。
如前所述,经过几次混乱扇区写入操作之后,写入一CBI扇区。当CBI区块变为满载时,将有效CBI扇区复制到已配置的已擦除区块中,并擦除先前的CBI区块。
如前所述,当EBM扇区中的EBB列表中没有任何其它已擦除区块登录项时,执行MAP交换操作。
MAP地址(MAPA)扇区(其记录MAP区块的当前地址)在MAP区块被重写的每一情形下被写入一专用的MAPA区块中。当MAPA区块变为满载时,将有效MAPA扇区复制到已配置的已擦除区块中,并擦除先前的MAPA区块。
引导(Boot)扇区在MAPA区块被重写的每一情形下被写入一当前的引导区块中。当引导区块变为满载时,将有效的引导扇区从引导区块的当前版本中复制到备份版本,接着所述备份版本变为当前版本。先前的当前版本被擦除并变为备份版本,且有效的引导扇区被写回其中。
尽管已关于特定实施例描述本发明的各个方面,但应了解本发明受到随附权利要求书的完整范畴的保护。

Claims (32)

1.一种在被组织成复数个区块的非易失性存储器中用于存储并更新数据的方法,每一区块均为可一起擦除的复数个存储器单位,每一存储器单位均用于存储一逻辑数据单位,所述方法包含:
将数据组织成复数个逻辑群组,每一逻辑群组均被分割成复数个数据逻辑单位;
每一逻辑单位均可存储于一区块的一存储器单位中;
根据一第一次序将一给定逻辑群组的所有逻辑单位存储于一第一区块的多个存储器单位中;
根据一第二次序将所述给定逻辑群组的一连串已更新的逻辑单位存储在专用于所述给定逻辑群组的一第二区块的多个存储器单位中,直到对存储进一步的更新关闭所述第二区块的一预定关闭条件出现为止;和
响应所述第二区块被关闭而进行以下任一项操作:
当所述第二与第一次序类似时,用所述第二区块来取代所述第一区块,或者
当所述第二与第一次序不类似时,用一第三区块来取代所述第一区块,所述第三区块已根据所述第一次序与搜集自所述第一和第二区块的所述给定逻辑群组中的每一逻辑单位的一最新版本进行合并。
2.根据权利要求1所述的方法,其进一步包含:
响应所述第二区块被关闭且所述第二区块含有少于一预定数目的不同逻辑单位,将来自所述第二区块的每一逻辑单位的一最新版本压缩至一第四区块;和
用所述第四区块取代所述第二区块以作为用于存储所述给定逻辑群组的更新的一专用区块。
3.根据权利要求2所述的方法,其中不同逻辑单位的所述预定数目为所述给定逻辑群组中逻辑单位数目的一半。
4.根据权利要求1所述的方法,其中所述关闭的预定条件为当所述第二区块满载时。
5.根据权利要求1所述的方法,其中所述关闭的预定条件为:所述第二区块到目前为止一直按照一与所述第一次序类似的次序存储所述一连串更新但所述一连串更新中的所述当前更新除外,且所述第二区块至少被填充一半。
6.根据权利要求5所述的方法,其中所述第二区块通过根据所述第一次序与已搜集自所述第一和第二区块的所述给定逻辑群组中的每一逻辑单位的一最新版本进行合并而关闭。
7.根据权利要求1所述的方法,其中:
当所述将一连串已更新逻辑单位存储至所述第二区块到目前为止一直按照一与所述第一次序类似的次序来存储,但由所述一连串更新中所述当前更新中的一地址跳跃所跨越的一间隙除外,其进一步包括:
在存储所述一连串更新中的所述当前更新以前,用由从所述第一区块复制的所述地址跳跃所跨越的多个逻辑单位来填充所述间隙。
8.根据权利要求1所述的方法,其中:
当所述将一连串已更新逻辑单位存储至所述第二区块到目前为止一直按照一与所述第一次序类似的次序来存储但所述一连串更新中的所述当前更新除外时,其进一步包括:
根据所述第二次序来保存存储于所述第二区块中的多个已更新逻辑单位的一索引。
9.根据权利要求8所述的方法,其中所述索引保存于所述非易失性存储器中。
10.根据权利要求1所述的方法,其中所述给定逻辑群组为同时被所述方法更新的多个逻辑群组中的一个。
11.根据权利要求1所述的方法,其中所述非易失性存储器具有多个浮动栅存储单元。
12.根据权利要求1所述的方法,其中所述非易失性存储器为快闪EEPROM。
13.根据权利要求1所述的方法,其中所述非易失性存储器为NROM。
14.根据权利要求1所述的方法,其中所述非易失性存储器为一存储器卡。
15.根据权利要求1到14中任一权利要求所述的方法,其中所述非易失性存储器具有各存储一位数据的多个存储单元。
16.根据权利要求1到14中任一权利要求所述的方法,其中所述非易失性存储器具有各存储一位以上数据的多个存储单元。
17.一种非易失性存储器,其包含:
一被组织成复数个区块的存储器,每一区块均为可一起擦除的复数个存储器单位,每一存储器单位均用于存储一数据逻辑单位;
一控制器,其用于控制所述区块的操作;
所述控制器根据一第一次序将其一给定逻辑群组的所有逻辑单位存储于一第一区块的多个存储器单位中;
所述控制器根据一第二次序将所述给定逻辑群组的一连串已更新逻辑单位存储在专用于所述给定逻辑群组的一第二区块的多个存储器单位中,直到关闭所述第二区块以存储进一步的更新的一预定关闭条件出现为止;和
所述控制器响应所述第二区块被关闭而进行以下任一项操作:
当所述第二与第一次序类似时,用所述第二区块来取代所述第一区块,或者
当所述第二与第一次序不类似时,用一第三区块来取代所述第一区块,所述第三区块中已由所述控制器根据所述第一次序存储有已搜集自所述第一和第二区块的所述给定逻辑群组的每一逻辑单位的一最新版本。
18.根据权利要求17所述的非易失性存储器,其进一步包含:
响应所述第二区块被关闭且所述第二区块含有少于一预定数目的不同逻辑单位,所述控制器将来自所述第二区块的每一逻辑单位的一最新版本存储至一第四区块;和
用所述第四区块取代所述第二区块以作为用于存储所述给定逻辑群组的更新的专用区块。
19.根据权利要求18所述的非易失性存储器,其中不同逻辑单位的所述预定数目为所述给定逻辑群组中的逻辑单位数目的一半。
20.根据权利要求17所述的非易失性存储器,其中所述关闭的预定条件为当所述第二区块满载时。
21.根据权利要求17所述的非易失性存储器,其中所述关闭的预定条件为:所述第二区块到目前为止一直按照一与所述第一次序类似的次序来存储所述一连串更新但所述一连串更新中的所述当前更新除外,且所述第二区块至少被填充一半。
22.根据权利要求21所述的非易失性存储器,其中所述第二区块通过根据所述第一次序与已搜集自所述第一与第二区块的所述给定逻辑群组的每一逻辑单位的一最新版本进行合并而关闭。
23.根据权利要求17所述的非易失性存储器,其中:
当所述将一连串已更新逻辑单位存储至所述第二区块到目前为止一直按照一与所述第一次序类似的次序来存储但由所述一连串更新中所述当前更新中一地址跳跃所跨越的一间隙除外时,其进一步包括:
在存储所述一连串更新中的所述当前更新之前,用由从所述第一区块复制的所述地址跳跃所跨越的多个逻辑单位来填充所述间隙。
24.根据权利要求17所述的非易失性存储器,其中:
当所述将一连串已更新逻辑单位存储至所述第二区块到目前为止一直按照一与所述第一次序类似的次序来存储但所述一连串更新中的所述当前更新除外时,其进一步包括:
根据所述第二次序来保存存储于所述第二区块中的多个已更新逻辑单位的一索引。
25.根据权利要求24所述的非易失性存储器,其中所述索引保存于所述非易失性存储器中。
26.根据权利要求17所述的非易失性存储器,其中所述给定逻辑群组为同时被所述方法更新的多个逻辑群组中的一个。
27.根据权利要求17所述的非易失性存储器,其中所述非易失性存储器具有多个浮动栅存储单元。
28.根据权利要求17所述的非易失性存储器,其中所述非易失性存储器为快闪EEPROM。
29.根据权利要求17所述的非易失性存储器,其中所述非易失性存储器为NROM。
30.根据权利要求17所述的非易失性存储器,其中所述非易失性存储器为一存储器卡。
31.根据权利要求17到30中任一权利要求所述的非易失性存储器,其中所述非易失性存储器具有各存储一位数据的多个存储单元。
32.根据权利要求17到30中任一权利要求所述的非易失性存储器,其中所述非易失性存储器具有各存储一位以上数据的多个存储单元。
CNA2004800415625A 2003-12-30 2004-12-21 具有区块管理系统的非易失性存储器和方法 Pending CN1914689A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/750,155 US7139864B2 (en) 2003-12-30 2003-12-30 Non-volatile memory and method with block management system
US10/750,155 2003-12-30

Publications (1)

Publication Number Publication Date
CN1914689A true CN1914689A (zh) 2007-02-14

Family

ID=34701161

Family Applications (5)

Application Number Title Priority Date Filing Date
CNA2004800415625A Pending CN1914689A (zh) 2003-12-30 2004-12-21 具有区块管理系统的非易失性存储器和方法
CNB2004800421293A Active CN100435115C (zh) 2003-12-30 2004-12-21 具有非循序更新区块管理的非易失性存储器及方法
CNB2004800421382A Active CN100435116C (zh) 2003-12-30 2004-12-21 具有存储器平面对准的非易失性存储器及方法
CNA2004800421363A Pending CN1922580A (zh) 2003-12-30 2004-12-22 具有阶段性编程失败处置的非易失性存储器和方法
CNA2004800419683A Pending CN1973334A (zh) 2003-12-30 2004-12-22 具有控制数据管理的非易失性存储器和方法

Family Applications After (4)

Application Number Title Priority Date Filing Date
CNB2004800421293A Active CN100435115C (zh) 2003-12-30 2004-12-21 具有非循序更新区块管理的非易失性存储器及方法
CNB2004800421382A Active CN100435116C (zh) 2003-12-30 2004-12-21 具有存储器平面对准的非易失性存储器及方法
CNA2004800421363A Pending CN1922580A (zh) 2003-12-30 2004-12-22 具有阶段性编程失败处置的非易失性存储器和方法
CNA2004800419683A Pending CN1973334A (zh) 2003-12-30 2004-12-22 具有控制数据管理的非易失性存储器和方法

Country Status (9)

Country Link
US (10) US7139864B2 (zh)
EP (2) EP2293196B1 (zh)
JP (5) JP4938460B2 (zh)
KR (1) KR101012274B1 (zh)
CN (5) CN1914689A (zh)
AT (3) ATE498893T1 (zh)
DE (3) DE602004031461D1 (zh)
TW (1) TWI272483B (zh)
WO (1) WO2005066972A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054533A (zh) * 2009-10-27 2011-05-11 西部数据技术公司 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
CN102193869A (zh) * 2010-03-01 2011-09-21 群联电子股份有限公司 存储器管理与写入方法及其存储器控制器与储存系统
US8417909B2 (en) 2009-12-30 2013-04-09 Phison Electronics Corp. Block management and data writing method, and flash memory storage system and controller using the same
CN102122233B (zh) * 2010-01-08 2013-04-10 群联电子股份有限公司 区块管理与数据写入方法、闪存储存系统与控制器
CN103839578A (zh) * 2012-11-27 2014-06-04 李欣 一种提高基于nand的固态存储器数据保持时间的方法
CN104246725A (zh) * 2012-04-25 2014-12-24 索尼公司 用于顺序写入的非易失性存储器设备
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
CN106354663A (zh) * 2015-07-15 2017-01-25 爱思开海力士有限公司 存储系统和存储系统的操作方法
CN106716361A (zh) * 2014-09-26 2017-05-24 微软技术许可有限责任公司 用于运行时例程冗余跟踪的编译器高速缓存
CN108038063A (zh) * 2012-02-17 2018-05-15 赛普拉斯半导体公司 改善冗余载入效率
CN108701087A (zh) * 2016-04-01 2018-10-23 英特尔公司 用于处理到存储器装置中的物理块的块群组的顺序写入的方法和设备
CN109901788A (zh) * 2017-12-08 2019-06-18 旺宏电子股份有限公司 存储器控制器、存储器系统及控制方法
CN109947660A (zh) * 2017-12-21 2019-06-28 光宝电子(广州)有限公司 固态储存装置及其相关计算机系统

Families Citing this family (569)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US7299316B2 (en) * 2004-02-26 2007-11-20 Super Talent Electronics, Inc. Memory flash card reader employing an indexing scheme
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
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
US8019789B2 (en) * 2001-07-03 2011-09-13 Research In Motion Limited System and method of object-oriented persistence
EP1593065B1 (en) * 2003-02-12 2006-06-14 Research In Motion Limited Methods,mobile devices and computer-readable mediums for managing data
US20040192132A1 (en) * 2003-03-20 2004-09-30 Fay Ralph Michael Fungi resistant asphalt and asphalt sheet materials
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
DE10349595B3 (de) * 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
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
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144396A1 (en) * 2003-12-31 2005-06-30 Eschmann Michael K. Coalescing disk write back requests
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
KR100541642B1 (ko) * 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP2005301591A (ja) * 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
HUP0400808A2 (hu) * 2004-04-19 2005-11-28 Dr.Kozéky László Géza Fémgőz ívű plazmafáklya és annak alkalmazása a metallurgiában, a plazmaenergiás pirolízisben és vitrifikációban, és más anyagátalakító eljárásokban
US7225291B2 (en) * 2004-04-19 2007-05-29 Phison Electronics Corp. Storage controlling and judging method of flash memory
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
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
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques 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
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
JP4738038B2 (ja) * 2005-03-25 2011-08-03 株式会社東芝 メモリカード
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
DE102005022019A1 (de) * 2005-05-12 2007-02-01 Giesecke & Devrient Gmbh Sichere Verarbeitung von Daten
WO2006126445A1 (ja) * 2005-05-23 2006-11-30 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) * 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US20070055793A1 (en) * 2005-08-03 2007-03-08 Wellsyn Technology, Inc. System of managing peripheral interfaces in IPMI architecture and method thereof
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
KR101272642B1 (ko) * 2005-08-03 2013-06-10 쌘디스크 코포레이션 플래시 메모리시스템 내의 데이터 저장 용량의 리클레이밍
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
DE602006019263D1 (de) * 2005-08-03 2011-02-10 Sandisk Corp Nichtflüchtiger speicher mit blockverwaltung
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
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
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US20070084375A1 (en) * 2005-08-10 2007-04-19 Smith Kyle S High density cartridge and method for reloading
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
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
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
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
JP4633802B2 (ja) * 2005-12-09 2011-02-16 パナソニック株式会社 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7376034B2 (en) * 2005-12-15 2008-05-20 Stec, Inc. Parallel data storage system
US7644251B2 (en) 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
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
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing 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
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
WO2007073536A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
WO2007073538A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with data alignment in a directly mapped file storage system
US7245556B1 (en) * 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7609564B2 (en) * 2005-12-31 2009-10-27 Intel Corporation Systems and techniques for non-volatile memory buffering
KR100703807B1 (ko) * 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
JP2007233838A (ja) * 2006-03-02 2007-09-13 Toshiba Corp メモリシステムの制御方法
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
JP4171749B2 (ja) * 2006-04-17 2008-10-29 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
US20080022265A1 (en) * 2006-06-30 2008-01-24 Morris Robert P Methods, systems, and computer program products for generating and using object modules
US20080005528A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
JP4956068B2 (ja) * 2006-06-30 2012-06-20 株式会社東芝 半導体記憶装置およびその制御方法
US20080127220A1 (en) * 2006-06-30 2008-05-29 Robert Paul Morris Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080005727A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity
US20080005728A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US7783956B2 (en) * 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US7466600B2 (en) 2006-08-03 2008-12-16 Micron Technology, Inc. System and method for initiating a bad block disable process in a non-volatile memory
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US20080040544A1 (en) * 2006-08-08 2008-02-14 Jason Caulkins Computer System For Reading And Writing Data
US7366017B2 (en) * 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
WO2008033952A2 (en) * 2006-09-15 2008-03-20 Sandisk Corporation Non-volatile memory and method for class-based update block replacement rules
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
US7774392B2 (en) * 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
TWI376600B (en) * 2006-09-28 2012-11-11 Sandisk Corp Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7441071B2 (en) 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
TWI346286B (en) * 2006-09-29 2011-08-01 Sandisk Corp Method and non-volatile memory storage system for phased garbage collection
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
JP4609406B2 (ja) * 2006-10-12 2011-01-12 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
WO2008045839A1 (en) * 2006-10-12 2008-04-17 Sandisk Corporation Non-volatile memory with worst-case control data management and methods therefor
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
US20080120604A1 (en) * 2006-11-20 2008-05-22 Morris Robert P Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation
US8495292B2 (en) * 2006-12-06 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for an in-server storage area network
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
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
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
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
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
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8510533B2 (en) 2006-12-27 2013-08-13 Intel Corporation Method of managing data on a non-volatile memory
WO2008082950A1 (en) * 2006-12-28 2008-07-10 Sandisk Corporation System for block relinking
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
TWI338856B (en) * 2007-03-09 2011-03-11 Ite Tech Inc A flash memory storing device and a data storing method thereof
US8275953B2 (en) * 2007-03-19 2012-09-25 Sandisk Technologies Inc. Methods for forcing an update block to remain sequential
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
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
US20080235464A1 (en) * 2007-03-19 2008-09-25 Shai Traister System for conversion of update blocks based on comparison with a threshold size
US20080235465A1 (en) * 2007-03-19 2008-09-25 Bum Suck So Systems for conversion of update blocks based on association with host file management data structures
KR20080085574A (ko) * 2007-03-20 2008-09-24 삼성전자주식회사 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법
US7991942B2 (en) 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
US8041883B2 (en) * 2007-05-09 2011-10-18 Stmicroelectronics S.R.L. Restoring storage devices based on flash memories and related circuit, system, and method
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
WO2008147752A1 (en) * 2007-05-24 2008-12-04 Sandisk Corporation Managing housekeeping operations in flash memory
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
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
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
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
JP4444314B2 (ja) * 2007-07-13 2010-03-31 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み制御方法
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
KR100922389B1 (ko) * 2007-07-04 2009-10-19 삼성전자주식회사 플래시 메모리를 위한 색인 스킴
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
KR101348364B1 (ko) 2007-08-23 2014-01-07 삼성전자주식회사 메모리 셀의 이진 신호 판정 방법 및 장치
US20090055574A1 (en) * 2007-08-25 2009-02-26 Bei-Chuan Chen NAND Flash Memory Device And Related Method Thereof
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US7818493B2 (en) * 2007-09-07 2010-10-19 Sandisk Corporation Adaptive block list management
KR20090026941A (ko) * 2007-09-11 2009-03-16 삼성전자주식회사 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
US7719890B2 (en) 2007-09-12 2010-05-18 Sandisk Corporation Data protection for write abort
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
KR101464338B1 (ko) 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
JP4829202B2 (ja) * 2007-11-02 2011-12-07 株式会社日立製作所 記憶装置及びメモリ制御方法
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
JP4417994B2 (ja) * 2007-11-26 2010-02-17 株式会社東芝 素材データ記録装置及び、素材データ記録方法
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7953919B2 (en) * 2007-12-21 2011-05-31 Spansion Llc Physical block addressing of electronic memory devices
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
JP2009157515A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 半導体メモリコントローラおよび半導体メモリ
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
JP4471007B2 (ja) * 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
CN101364444B (zh) 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
JP2009199199A (ja) * 2008-02-20 2009-09-03 Hitachi Ltd ストレージシステム及びそのデータライト方法
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
US20090249021A1 (en) * 2008-03-26 2009-10-01 Morris Robert P Method And Systems For Invoking An Advice Operation Associated With A Joinpoint
JP4164118B1 (ja) * 2008-03-26 2008-10-08 眞澄 鈴木 フラッシュメモリを用いた記憶装置
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
TWI377580B (en) * 2008-04-03 2012-11-21 Wistron Corp Method and related device for data storage in an electronic device
US8266366B2 (en) 2008-04-11 2012-09-11 SanDisk Technologies, Inc. Memory device operable in read-only and write-once, read-many (WORM) modes of operation
US8028123B2 (en) * 2008-04-15 2011-09-27 SMART Modular Technologies (AZ) , Inc. Circular wear leveling
US8185778B2 (en) * 2008-04-15 2012-05-22 SMART Storage Systems, Inc. Flash management using separate metadata storage
US8180954B2 (en) * 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
WO2009129340A2 (en) * 2008-04-15 2009-10-22 Adtron, Inc. Flash memory management
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. Partial scrambling to reduce correlation
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US20090320012A1 (en) * 2008-06-04 2009-12-24 Mediatek Inc. Secure booting for updating firmware over the air
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8516203B2 (en) * 2008-08-13 2013-08-20 Sandisk Technologies Inc. Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
US8103631B2 (en) * 2008-11-19 2012-01-24 Sandisk Il Ltd Merging files on storage and retrieve
KR101469771B1 (ko) * 2008-12-03 2014-12-08 삼성전자주식회사 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법
US8200922B2 (en) * 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
KR101760144B1 (ko) 2009-01-05 2017-07-31 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 및 기록 캐시를 분할하는 방법
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8250333B2 (en) * 2009-01-05 2012-08-21 Sandisk Technologies Inc. Mapping address table maintenance in a memory device
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8645749B2 (en) * 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR101565975B1 (ko) * 2009-02-27 2015-11-04 삼성전자주식회사 인덱스를 저장하는 플래시 메모리를 포함하는 사용자 장치 및 그것의 인덱스 액세스 방법
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
TWI417884B (zh) * 2009-04-23 2013-12-01 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8296503B2 (en) * 2009-05-26 2012-10-23 Mediatek Inc. Data updating and recovering methods for a non-volatile memory array
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
KR101324688B1 (ko) 2009-06-12 2013-11-04 바이올린 메모리 인코포레이티드 영구 가비지 컬렉션을 갖는 메모리 시스템
US20100318584A1 (en) * 2009-06-13 2010-12-16 Microsoft Corporation Distributed Cache Availability During Garbage Collection
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
TWI386802B (zh) * 2009-07-03 2013-02-21 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
JP5347779B2 (ja) * 2009-07-07 2013-11-20 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
US9104629B2 (en) * 2009-07-09 2015-08-11 International Business Machines Corporation Autonomic reclamation processing on sequential storage media
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8429436B2 (en) 2009-09-09 2013-04-23 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
EP2476079A4 (en) 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8255655B2 (en) 2009-10-02 2012-08-28 Sandisk Technologies Inc. Authentication and securing of write-once, read-many (WORM) memory devices
US8195909B2 (en) * 2009-10-05 2012-06-05 Seagate Technology Llc Data management in a data storage system
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
CN101794254B (zh) * 2009-11-25 2012-07-04 深圳市硅格半导体有限公司 Nand flash的数据处理方法
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
FR2954572B1 (fr) * 2009-12-23 2020-04-17 Thales Procede de gestion de donnees tournantes.
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
CN101799788B (zh) * 2010-03-23 2014-06-11 中兴通讯股份有限公司 一种分级管理存储资源的方法及系统
US8812816B2 (en) * 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US20110268265A1 (en) * 2010-04-30 2011-11-03 Lathrop Alexander M Disk media security system and method
IT1399916B1 (it) * 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato
US9563397B1 (en) 2010-05-05 2017-02-07 Western Digital Technologies, Inc. Disk drive using non-volatile cache when garbage collecting log structured writes
CN102243611B (zh) * 2010-05-11 2015-06-17 深圳市朗科科技股份有限公司 数据存储方法和系统
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8381018B2 (en) 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8554741B1 (en) 2010-06-16 2013-10-08 Western Digital Technologies, Inc. Timeline application for log structured storage devices
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8639692B2 (en) * 2010-06-28 2014-01-28 Alcatel Lucent High-dimensional stratified sampling
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
KR101077901B1 (ko) * 2010-07-12 2011-10-31 (주)이더블유비엠코리아 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US9146875B1 (en) 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8601310B2 (en) * 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
US8683295B1 (en) 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
KR20120029239A (ko) * 2010-09-16 2012-03-26 삼성전자주식회사 Pram을 이용하는 데이터 기록 시스템 및 그 방법
US8578340B1 (en) 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
TWI435216B (zh) 2010-09-27 2014-04-21 Silicon Motion Inc 用來進行超區塊管理之方法以及記憶裝置及控制器
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
US8670205B1 (en) 2010-09-29 2014-03-11 Western Digital Technologies, Inc. Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8850161B2 (en) * 2010-10-13 2014-09-30 Riverbed Technology, Inc. Method of improving performance of a data storage device
US8429343B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US8427771B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors
US8612798B1 (en) 2010-10-21 2013-12-17 Western Digital Technologies, Inc. Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US8560759B1 (en) 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
TWI463495B (zh) * 2010-12-10 2014-12-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
EP2652623B1 (en) 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
TWI514136B (zh) * 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US9021215B2 (en) 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
US9361044B2 (en) * 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
KR20120124285A (ko) * 2011-05-03 2012-11-13 삼성전자주식회사 배드 블록 관리를 위한 방법 및 메모리 시스템
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US20120297121A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
CN103688246A (zh) * 2011-05-17 2014-03-26 桑迪士克科技股份有限公司 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法
TWI447579B (zh) * 2011-05-18 2014-08-01 Phison Electronics Corp 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
US8825944B2 (en) 2011-05-23 2014-09-02 International Business Machines Corporation Populating strides of tracks to demote from a first cache to a second cache
JP2012248109A (ja) * 2011-05-30 2012-12-13 Toshiba Corp マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US8589762B2 (en) * 2011-07-05 2013-11-19 International Business Machines Corporation Adaptive multi-bit error correction in endurance limited memories
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
CN102929884B (zh) * 2011-08-10 2016-05-04 阿里巴巴集团控股有限公司 一种收缩虚拟磁盘镜像文件的方法及装置
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US8630056B1 (en) 2011-09-12 2014-01-14 Western Digital Technologies, Inc. Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory
CN102508788B (zh) * 2011-09-28 2014-12-10 华为数字技术(成都)有限公司 Ssd及ssd垃圾回收方法和装置
US8909889B1 (en) 2011-10-10 2014-12-09 Western Digital Technologies, Inc. Method and apparatus for servicing host commands by a disk drive
FR2982406A1 (fr) * 2011-11-07 2013-05-10 St Microelectronics Rousset Memoire securisee qui evite la degradation de donnees
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8977804B1 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Varying data redundancy in storage systems
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US8904091B1 (en) 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
US8825953B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache
US8966178B2 (en) * 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US9021201B2 (en) 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8825957B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US20130205066A1 (en) * 2012-02-03 2013-08-08 Sandisk Technologies Inc. Enhanced write abort management in flash memory
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8706847B2 (en) 2012-02-09 2014-04-22 International Business Machines Corporation Initiating a collective operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9213632B1 (en) 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
JP2014044490A (ja) * 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
WO2014039923A1 (en) * 2012-09-06 2014-03-13 Pi-Coral, Inc. Storage translation layer
CN102883207B (zh) * 2012-09-13 2016-11-23 深圳创维数字技术有限公司 一种数据处理的方法及数字电视终端
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
TW201413450A (zh) * 2012-09-25 2014-04-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
CN102929579A (zh) * 2012-10-16 2013-02-13 国电南京自动化股份有限公司 一种效率提高的内存复制方法
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
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
KR101993626B1 (ko) * 2012-12-11 2019-06-28 삼성전자 주식회사 특수 기능 레지스터를 포함하는 시스템 온 칩 및 그 동작 방법
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US9842660B1 (en) 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8972776B2 (en) * 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
US9384839B2 (en) 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9189389B2 (en) 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US8996796B1 (en) 2013-03-15 2015-03-31 Virident Systems Inc. Small block write operations in non-volatile memory systems
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US10482009B1 (en) 2013-03-15 2019-11-19 Google Llc Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
EP2979269A4 (en) 2013-03-27 2016-11-16 Hewlett Packard Entpr Dev Lp NON-VOLATILE MEMORY BASED SYNCHRONOUS LOGIC
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
EP3005190A1 (en) * 2013-05-31 2016-04-13 Koninklijke Philips N.V. System and method for automatically downloading data such as sleep study data
KR20140142035A (ko) * 2013-06-03 2014-12-11 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작방법
US9361236B2 (en) 2013-06-18 2016-06-07 Arm Limited Handling write requests for a data array
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
WO2014209984A1 (en) * 2013-06-25 2014-12-31 Marvell World Trade Ltd. Adaptive cache memory controller
US9455048B2 (en) 2013-06-28 2016-09-27 Sandisk Technologies Llc NAND flash word line management using multiple fragment pools
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US10007428B2 (en) 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9684686B1 (en) * 2013-09-04 2017-06-20 Amazon Technologies, Inc. Database system recovery using non-volatile system memory
US20150092488A1 (en) * 2013-09-27 2015-04-02 Yogesh Wakchaure Flash memory system endurance improvement using temperature based nand settings
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
IN2013CH05362A (zh) * 2013-11-21 2015-05-29 Sandisk Technologies Inc
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
US9466383B2 (en) * 2013-12-30 2016-10-11 Sandisk Technologies Llc Non-volatile memory and method with adaptive logical groups
KR102181210B1 (ko) 2014-01-10 2020-11-23 삼성전자주식회사 저장 장치의 데이터 처리 방법 및 저장 장치
JP6100927B2 (ja) * 2014-02-05 2017-03-22 株式会社日立製作所 情報処理装置
US9927998B2 (en) * 2014-02-05 2018-03-27 Tidal Systems, Inc. Flash memory compression
KR102225989B1 (ko) * 2014-03-04 2021-03-10 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
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
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9575661B2 (en) 2014-08-19 2017-02-21 Samsung Electronics Co., Ltd. Nonvolatile memory systems configured to use deduplication and methods of controlling the same
US9626289B2 (en) * 2014-08-28 2017-04-18 Sandisk Technologies Llc Metalblock relinking to physical blocks of semiconductor memory in adaptive wear leveling based on health
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9542286B2 (en) * 2014-09-30 2017-01-10 Sandisk Technologies Llc Failure logging mechanism to reduce garbage collection time in partially reused bad blocks
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
TWI604307B (zh) 2014-10-31 2017-11-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
KR20160072706A (ko) * 2014-12-15 2016-06-23 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
WO2016115737A1 (en) * 2015-01-23 2016-07-28 Hewlett-Packard Development Company, L.P. Aligned variable reclamation
KR102275710B1 (ko) * 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
CN105183545A (zh) * 2015-07-23 2015-12-23 柳州易旺科技有限公司 一种大数据信息压缩方法
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
US9891833B2 (en) * 2015-10-22 2018-02-13 HoneycombData Inc. Eliminating garbage collection in nand flash devices
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
CN105302501B (zh) * 2015-11-27 2018-09-14 浙江宇视科技有限公司 一种磁盘扇区的控制方法和装置
US9983829B2 (en) * 2016-01-13 2018-05-29 Sandisk Technologies Llc Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes
US9837161B2 (en) 2016-03-09 2017-12-05 Nxp Usa, Inc. Split-gate memory having sector retirement with reduced current and method therefor
US10223004B2 (en) 2016-04-07 2019-03-05 International Business Machines Corporation Parallel read and writes in 3D flash memory
US9875034B2 (en) 2016-04-07 2018-01-23 International Business Machines Corporation Delaying programming requests in flash memory
JP6407485B2 (ja) * 2016-04-21 2018-10-17 富士通フロンテック株式会社 書込制御プログラム、書込制御装置および書込制御方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
CN106328059B (zh) * 2016-09-07 2017-10-27 京东方科技集团股份有限公司 用于电学补偿的存储器中数据更新的方法和装置
FR3055992A1 (fr) * 2016-09-09 2018-03-16 Proton World International N.V. Gestion d'index dans une memoire flash
CN107870727B (zh) * 2016-09-23 2021-01-01 伊姆西Ip控股有限责任公司 用于存储数据的方法和设备
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10268389B2 (en) * 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
IT201700020134A1 (it) * 2017-02-22 2018-08-22 St Microelectronics Srl Procedimento per gestire memorie a semiconduttore, interfaccia, memoria e dispositivo corrispondenti
US10079612B1 (en) 2017-03-15 2018-09-18 Alibaba Group Holding Limited Distributed erasure coding pool deployed in hyperscale infrastructure
KR102299186B1 (ko) * 2017-03-21 2021-09-08 마이크론 테크놀로지, 인크. 자동화된 동적 워드 라인 시작 전압을 위한 장치 및 방법
JP2018160156A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステム
TWI629590B (zh) * 2017-04-14 2018-07-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US10922287B2 (en) * 2017-05-24 2021-02-16 Cisco Technology, Inc. Intelligent layout of composite data structures in tiered storage
US10678768B2 (en) * 2017-06-30 2020-06-09 Intel Corporation Logical band-based key-value storage structure
US10476879B2 (en) * 2017-07-26 2019-11-12 International Business Machines Corporation Blockchain authentication via hard/soft token verification
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
FR3072476A1 (fr) 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
TWI651650B (zh) * 2018-02-05 2019-02-21 大陸商深圳大心電子科技有限公司 記憶體管理方法及使用所述方法的儲存控制器
CN108763101B (zh) * 2018-05-30 2021-11-09 郑州云海信息技术有限公司 一种数据的搬运方法及系统
US11545221B2 (en) 2018-06-29 2023-01-03 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10978156B2 (en) * 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10628076B1 (en) * 2018-10-01 2020-04-21 Micron Technology, Inc. Data erasure in memory sub-systems
US10852965B2 (en) * 2018-10-30 2020-12-01 EMC IP Holding Company LLC Write folding mechanism using reusable shared striping in a storage system
CN110022299A (zh) * 2019-03-06 2019-07-16 浙江天脉领域科技有限公司 一种超大规模分布式网络计算的方法
CN109995610A (zh) * 2019-03-06 2019-07-09 浙江天脉领域科技有限公司 一种模拟生物神经形态的对等网络底层通信系统
JP2022522437A (ja) 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US10854311B1 (en) * 2019-08-28 2020-12-01 Micron Technology, Inc. Data redirection upon failure of a program operation
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
US11294827B2 (en) * 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11762569B2 (en) * 2019-10-29 2023-09-19 International Business Machines Corporation Workload based relief valve activation for hybrid controller architectures
US11216364B2 (en) * 2020-02-18 2022-01-04 Micron Technology, Inc. Sequential read optimization in a memory sub-system that programs sequentially
KR20210109593A (ko) * 2020-02-20 2021-09-06 양쯔 메모리 테크놀로지스 씨오., 엘티디. 다중 평면 메모리 소자를 프로그래밍하는 방법
US11287989B2 (en) 2020-03-24 2022-03-29 Western Digital Technologies, Inc. Dynamic allocation of sub blocks
US11137920B1 (en) * 2020-04-30 2021-10-05 Micron Technology, Inc. Storing zones in a zone namespace on separate planes of a multi-plane memory device
US11436153B2 (en) * 2020-05-26 2022-09-06 Western Digital Technologies, Inc. Moving change log tables to align to zones
US11152071B1 (en) * 2020-05-27 2021-10-19 Western Digital Technologies, Inc. Erase operation reattempt to recover misidentified bad blocks resulting from consecutive erase failures
US11467744B2 (en) 2020-05-27 2022-10-11 Western Digital Technologies, Inc. System to identify aggressor blocks causing back to back erase failure
US11663068B2 (en) * 2020-06-29 2023-05-30 Western Digital Technologies, Inc. Write abort error detection in multi-pass programming
TWI747349B (zh) * 2020-06-30 2021-11-21 大陸商合肥沛睿微電子股份有限公司 儲存裝置之低級格式化方法
TWI775268B (zh) * 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11922011B2 (en) 2021-09-01 2024-03-05 Micron Technology, Inc. Virtual management unit scheme for two-pass programming in a memory sub-system
FR3129763A1 (fr) * 2021-12-01 2023-06-02 Stmicroelectronics (Rousset) Sas Systeme sur puce comportant une memoire non volatile
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement
US20240061786A1 (en) * 2022-08-22 2024-02-22 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for accessing data in versions of memory pages

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
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
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
JPH0546494A (ja) 1991-08-19 1993-02-26 Toshiba Corp メモリチエツク方式
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
JP3122222B2 (ja) 1992-05-08 2001-01-09 株式会社東芝 メモリカード装置
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
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 フラッシュメモリファイル記憶装置および情報処理装置
US5367484A (en) * 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5473765A (en) * 1994-01-24 1995-12-05 3Com Corporation Apparatus for using flash memory as a floppy disk emulator in a computer system
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
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
US5797033A (en) 1995-03-31 1998-08-18 Cirrus Logic, Inc. Direct memory access for storing and retrieving data based on packet size
JP3153730B2 (ja) * 1995-05-16 2001-04-09 株式会社東芝 不揮発性半導体記憶装置
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
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
JP3707854B2 (ja) 1996-03-01 2005-10-19 株式会社東芝 キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US6900193B1 (en) 1996-05-01 2005-05-31 The United States Of America As Represented By The Department Of Health And Human Services Structural modification of 19-norprogesterone I: 17-α-substituted-11-β-substituted-4-aryl and 21-substituted 19-norpregnadienedione as new antiprogestational agents
US6477627B1 (en) * 1996-05-31 2002-11-05 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
JPH1027444A (ja) * 1996-07-10 1998-01-27 Fujitsu Ltd ディスク装置のポジション感度調整方法
US5768192A (en) * 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JP3919261B2 (ja) * 1996-07-31 2007-05-23 キヤノン株式会社 メモリ制御装置およびメモリアクセス方法
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
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
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6157991A (en) * 1998-04-01 2000-12-05 Emc Corporation Method and apparatus for asynchronously updating a mirror of a source device
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6826651B2 (en) * 1998-05-29 2004-11-30 International Business Machines Corporation State-based allocation and replacement for improved hit ratio in directory caches
US6185663B1 (en) * 1998-06-15 2001-02-06 Compaq Computer Corporation Computer method and apparatus for file system block allocation with multiple redo
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
JP4689137B2 (ja) * 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6141249A (en) 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6544844B2 (en) * 1999-10-08 2003-04-08 Macronix International Co., Ltd. Method for forming a flash memory cell having contoured floating gate surface
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
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
US6598174B1 (en) 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
WO2001086513A2 (en) 2000-05-11 2001-11-15 Quickturn Design Systems, Inc. Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
US6697957B1 (en) * 2000-05-11 2004-02-24 Quickturn Design Systems, Inc. Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
US6571261B1 (en) * 2000-07-13 2003-05-27 International Business Machines Corporation Defragmentation utility for a shared disk parallel file system across a storage area network
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3699890B2 (ja) 2000-08-30 2005-09-28 シャープ株式会社 不揮発性半導体記憶装置
JP4184586B2 (ja) 2000-09-28 2008-11-19 株式会社東芝 半導体記憶装置
JP2002133878A (ja) 2000-10-23 2002-05-10 Hitachi Ltd 不揮発性記憶回路および半導体集積回路
DE10165027C5 (de) * 2000-10-27 2019-10-02 Nsk Ltd. Wälzlager und Spindelvorrichtung für Werkzeugmaschine
US6587372B2 (en) * 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6728849B2 (en) 2001-12-14 2004-04-27 Hitachi, Ltd. Remote storage system and method
JP3828376B2 (ja) 2001-05-07 2006-10-04 株式会社東芝 記憶システム
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
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
US7356641B2 (en) 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
TW506123B (en) * 2001-10-24 2002-10-11 Macronix Int Co Ltd Multi-level NROM memory cell and its operating method
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US7199905B2 (en) * 2001-12-04 2007-04-03 Xerox Corporation Systems and methods for halftoning multiple color separation layers by interlayer error diffusion
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US6820180B2 (en) * 2002-04-04 2004-11-16 International Business Machines Corporation Apparatus and method of cascading backup logical volume mirrors
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7047377B2 (en) 2002-08-20 2006-05-16 Gruintine Pueche, Inc. System and method for conducting an auction-based ranking of search results on a computer network
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US7346740B2 (en) 2002-11-01 2008-03-18 Seagate Technology Llc Transferring speculative data in lieu of requested data in a data transfer operation
JP4200362B2 (ja) 2003-02-20 2008-12-24 ソニー株式会社 記録媒体の記録制御方法、記録制御装置および電子機器
DE10349595B3 (de) 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
WO2005066793A2 (en) 2003-12-30 2005-07-21 Sandisk Corporation Non-volatile memory and method with non-sequential update block management
KR20060121270A (ko) 2003-12-30 2006-11-28 쌘디스크 코포레이션 페이즈된 프로그램 실패 핸들링을 구비한 비휘발성 메모리 및 방법
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
US20050144363A1 (en) 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
KR20060134011A (ko) 2003-12-30 2006-12-27 쌘디스크 코포레이션 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법
WO2005066970A2 (en) 2003-12-30 2005-07-21 Sandisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
CN102054533A (zh) * 2009-10-27 2011-05-11 西部数据技术公司 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
CN102054533B (zh) * 2009-10-27 2015-12-09 西部数据技术公司 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
US8417909B2 (en) 2009-12-30 2013-04-09 Phison Electronics Corp. Block management and data writing method, and flash memory storage system and controller using the same
CN102122233B (zh) * 2010-01-08 2013-04-10 群联电子股份有限公司 区块管理与数据写入方法、闪存储存系统与控制器
CN102193869A (zh) * 2010-03-01 2011-09-21 群联电子股份有限公司 存储器管理与写入方法及其存储器控制器与储存系统
CN102193869B (zh) * 2010-03-01 2015-05-20 群联电子股份有限公司 存储器管理与写入方法及其存储器控制器与储存系统
CN108038063B (zh) * 2012-02-17 2022-01-07 赛普拉斯半导体公司 改善冗余载入效率
CN108038063A (zh) * 2012-02-17 2018-05-15 赛普拉斯半导体公司 改善冗余载入效率
US11455112B2 (en) 2012-04-25 2022-09-27 Sony Group Corporation Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method
CN104246725A (zh) * 2012-04-25 2014-12-24 索尼公司 用于顺序写入的非易失性存储器设备
CN104246725B (zh) * 2012-04-25 2018-02-16 索尼公司 用于顺序写入的非易失性存储器设备
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
CN103839578B (zh) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 一种提高基于nand的固态存储器数据保持时间的方法
CN103839578A (zh) * 2012-11-27 2014-06-04 李欣 一种提高基于nand的固态存储器数据保持时间的方法
CN106716361A (zh) * 2014-09-26 2017-05-24 微软技术许可有限责任公司 用于运行时例程冗余跟踪的编译器高速缓存
CN106716361B (zh) * 2014-09-26 2019-10-29 微软技术许可有限责任公司 用于运行时例程冗余跟踪的编译器高速缓存
CN106354663B (zh) * 2015-07-15 2020-08-07 爱思开海力士有限公司 存储系统和存储系统的操作方法
CN106354663A (zh) * 2015-07-15 2017-01-25 爱思开海力士有限公司 存储系统和存储系统的操作方法
CN108701087A (zh) * 2016-04-01 2018-10-23 英特尔公司 用于处理到存储器装置中的物理块的块群组的顺序写入的方法和设备
CN108701087B (zh) * 2016-04-01 2024-01-26 英特尔公司 用于处理到存储器装置中的物理块的块群组的顺序写入的方法和设备
CN109901788A (zh) * 2017-12-08 2019-06-18 旺宏电子股份有限公司 存储器控制器、存储器系统及控制方法
CN109901788B (zh) * 2017-12-08 2023-08-11 旺宏电子股份有限公司 存储器控制器、存储器系统及控制方法
CN109947660A (zh) * 2017-12-21 2019-06-28 光宝电子(广州)有限公司 固态储存装置及其相关计算机系统
CN109947660B (zh) * 2017-12-21 2023-03-14 建兴储存科技(广州)有限公司 固态储存装置及其相关计算机系统

Also Published As

Publication number Publication date
US20050141313A1 (en) 2005-06-30
DE602004019571D1 (de) 2009-04-02
US20050144360A1 (en) 2005-06-30
US20090019218A1 (en) 2009-01-15
US20110219174A1 (en) 2011-09-08
JP2007517333A (ja) 2007-06-28
US7139864B2 (en) 2006-11-21
DE602004028174D1 (de) 2010-08-26
JP4933269B2 (ja) 2012-05-16
JP4898457B2 (ja) 2012-03-14
US20090037651A1 (en) 2009-02-05
JP5617079B2 (ja) 2014-11-05
CN1922586A (zh) 2007-02-28
EP1704571B1 (en) 2011-02-16
US8621177B2 (en) 2013-12-31
KR20060130085A (ko) 2006-12-18
TWI272483B (en) 2007-02-01
US20090019217A1 (en) 2009-01-15
CN1973334A (zh) 2007-05-30
EP2293196A1 (en) 2011-03-09
CN1922585A (zh) 2007-02-28
ATE474269T1 (de) 2010-07-15
WO2005066972A1 (en) 2005-07-21
ATE498893T1 (de) 2011-03-15
US7913061B2 (en) 2011-03-22
CN1922580A (zh) 2007-02-28
CN100435116C (zh) 2008-11-19
KR101012274B1 (ko) 2011-02-07
EP2293196B1 (en) 2018-06-27
JP4938460B2 (ja) 2012-05-23
US20050141312A1 (en) 2005-06-30
CN100435115C (zh) 2008-11-19
US8103841B2 (en) 2012-01-24
JP2011253557A (ja) 2011-12-15
US20120017038A1 (en) 2012-01-19
US8239643B2 (en) 2012-08-07
TW200534092A (en) 2005-10-16
US20050166087A1 (en) 2005-07-28
DE602004031461D1 (de) 2011-03-31
JP2007522542A (ja) 2007-08-09
US8051257B2 (en) 2011-11-01
JP2007517335A (ja) 2007-06-28
US7945759B2 (en) 2011-05-17
US20050144365A1 (en) 2005-06-30
EP1704571A1 (en) 2006-09-27
JP4851344B2 (ja) 2012-01-11
JP2007520804A (ja) 2007-07-26
ATE423380T1 (de) 2009-03-15

Similar Documents

Publication Publication Date Title
CN1914689A (zh) 具有区块管理系统的非易失性存储器和方法
CN100350393C (zh) 半导体存储装置
CN1159718C (zh) 信息记录方法及信息记录/再现系统
CN1717662A (zh) 存储器模块、存储器系统和信息仪器
CN1223003C (zh) 非易失性半导体存储器
CN1498367A (zh) 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法
CN1297933C (zh) 执行合并处理和注册/删除处理的全文搜索装置
CN1296833C (zh) 用于存储器管理的设备和方法
CN1270270C (zh) 接近通信系统、接近通信方法、数据管理装置、数据管理方法、记录介质和计算机程序
CN1873605A (zh) 存储系统以及结构变更方法
CN1922571A (zh) 数据运行编程
CN1299177C (zh) 数据管理装置、计算机系统及数据处理方法
CN1866399A (zh) 存储器控制器、非易失性存储器、非易失性存储系统和数据写入方法
CN1866223A (zh) 存储模块、存储系统、以及信息设备
CN1505153A (zh) 半导体存储装置
CN1975931A (zh) 非易失性半导体存储器件
CN1805049A (zh) 一种嵌入式系统中非易失性存储器的数据存取方法
CN1643600A (zh) 允许更新缺陷列表的信息记录介质、记录装置、再现装置、记录方法和再现方法
CN1482619A (zh) 使用动态随机存取存储器和闪存的系统和方法
CN1913037A (zh) 数据记录装置
CN1677570A (zh) 写入多值数据的非易失性半导体存储装置
CN1652089A (zh) 重映射闪速存储器的方法
CN1991798A (zh) 半导体存储装置
CN1942869A (zh) 组合存储器装置、数据写入方法和程序
CN1417687A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication