CN101258473B - 直接数据文件存储存储器中的数据合并和垃圾收集 - Google Patents

直接数据文件存储存储器中的数据合并和垃圾收集 Download PDF

Info

Publication number
CN101258473B
CN101258473B CN2006800284045A CN200680028404A CN101258473B CN 101258473 B CN101258473 B CN 101258473B CN 2006800284045 A CN2006800284045 A CN 2006800284045A CN 200680028404 A CN200680028404 A CN 200680028404A CN 101258473 B CN101258473 B CN 101258473B
Authority
CN
China
Prior art keywords
file
data
block
fit
programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2006800284045A
Other languages
English (en)
Other versions
CN101258473A (zh
Inventor
艾伦·W·辛克莱
巴里·赖特
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 CN101258473A publication Critical patent/CN101258473A/zh
Application granted granted Critical
Publication of CN101258473B publication Critical patent/CN101258473B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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

Abstract

在不使用存储器的任何中间逻辑地址或虚拟地址空间的情况下,用每一文件的唯一识别和数据在所述文件内的偏移量将主机系统数据文件直接写入到大型擦除区块快闪存储器系统。通过所述存储器系统的控制器而不是通过主机将所述文件存储在所述存储器中哪个位置的目录信息维持在所述存储器系统内。

Description

直接数据文件存储存储器中的数据合并和垃圾收集
技术领域
本申请案大体上涉及例如半导体快闪存储器等可重新编程的非易失性存储器系统的操作,其中包含管理主机装置与存储器系统之间的接口,且更具体地说,涉及有效地使用数据文件接口而不是常见的大容量存储器逻辑地址空间(LBA)接口。 
背景技术
本文中描述在待决的第11/060,174号、第11/060,248号和第11/060,249号美国专利申请案中描述的快闪存储器的各种操作方面的发展,所述申请案全部在2005年2月16日以Alan W.Sinclair一人或其与Peter J.Smith两人名义申请(下文中称为“现有申请案”)。 
进一步的发展在Alan W.Sinclair和Barry Wright的相关美国专利申请案中描述,即第11/382,224号和第11/382,232号非临时申请案以及第60/746,740号和第60/746,742号临时申请案,所述申请案全部在2006年5月8日申请;以及题为“Indexing Of File DataIn Reprogrammable Non-Volatile Memories That Directly Store Data Files”、“Reprogrammable Non-Volatile Memory Systems With Indexing of Directly Stored DataFiles”、“Methods of Managing Blocks in Nonvolatile Memory”和“Nonvolatile MemoryWith Block Management”的非临时申请案,所述申请案全部在2006年7月21日申请。 
本文中引用的所有专利、专利申请案、文章及其它出版物、文献以及资料出于所有目的在此以引用的方式全文并入本文中。就任何并入的出版物、文献或资料中的任一者与本申请案之间在术语定义或使用方面的任何不一致或冲突而言,应以本申请案的为主。 
发明内容
本文中将数据合并与垃圾收集区别对待,且至少部分地通过不同的算法来实施所述两种处理。当文件或存储器区块中含有废弃数据时,利用垃圾收集操作来将所述文件或区块的有效数据移动到一个或一个以上其它区块。这种操作将有效数据聚集到数目较少的区块中,因而一旦擦除原始来源区块便释放了废弃数据所占据的容量。在数据合并中,将一个部分填充区块(例如通常因写入新文件而产生)的有效数据与另一部分填充区块的有效数据组合。作为数据来源的原始区块中的一者或两者现在含有废弃的重复数据, 于是将其调度以进行垃圾收集。虽然提供多个队列以用于调度各个垃圾收集操作以恢复由废弃数据占据的存储器存储容量,但优选地在未调度任何垃圾收集且以其它方式满足了合并条件时发生数据合并。 
不是在关闭新近写入的文件之后立刻调度对所述文件的数据合并,而是将新近写入的文件的数据维持在其从主机接收之后被编程到的原始区块中。这最常见的是包含由新数据部分填充的区块。由于常见的是用会形成废弃数据的方式删除或更新数据文件,所以在关闭文件之后尽可能长期地拖延对部分填充区块的数据合并。可在不需要重新定位任何数据的情况下将所述文件删除。因此,如果在此种合并变得必要之前删除或更新文件,那么会避免合并。当存储器变满时此种合并可能变得必要,以使得具有足够的擦除区块用于对新数据进行进一步编程。但是因为基于文件的存储器不保持已经被主机删除的数据文件,所以与使用逻辑接口的情况相反,存储器将通常具有充分数目的擦除区块,即使合并被延迟也是如此。因此节省了省略的合并所花费的时间,且因而改进了存储器的性能。 
在直接文件存储中存在下述的若干其它发展,可概述如下: 
1.一旦关闭文件,不将其添加到文件垃圾收集队列,除非其含有废弃数据。 
2.对文件的垃圾收集不会产生含有来自另一文件的数据的共用区块。将文件的必须在垃圾收集期间复制的数据编程到所述文件的当前编程区块。编程区块在垃圾收集结束时保持部分编程。 
3.当因区块中的文件群组由于删除文件而变得废弃而必须从共用区块中重新定位数据时,将剩余的有效数据重新定位到编程区块的可用空间中。 
4.避免移动直接写入到编程区块的全部或一部分中的主机数据。 
5.在文件的垃圾收集期间,将数据重新定位到文件的编程区块。没有专门的中间复制区块。 
6.用完整的数据扇区在存储器系统控制器缓冲存储器与存储器单元阵列之间转移数据。这允许在编程期间产生ECC且在数据读取期间检验ECC。 
7.将共用区块中的数据群组或文件群组的开头与元页的开头对准。可因此将芯片上复本用于区块合并。编程区块中的数据群组与物理结构之间没有特定对准关系。 
8.快闪存储器内的交换区块用来针对不活动的打开文件(也就是说,当最近写入命令涉及到不同文件时)对保持在非易失性控制器缓冲存储器中的数据进行安全复制。其还可用作虚拟缓冲器结构的一部分,以便通过在二者之间使用交换操作来允许可用的缓 冲存储器容量支持较多打开文件。 
9.当因为FIT文件的当前范围溢出而将所述FIT文件移动到另一FIT范围时,更新目录中的文件数据指针以便反映新的FIT范围。 
10.当FIT更新区块中的一个FIT范围的数据量超过阈值时,将所述范围的FIT更新区块中的数据与所述范围的FIT区块中的数据合并。这允许将新文件的数据合并到FIT区块。 
11.在对FIT更新区块进行压缩期间,如果存在充分的已擦除空间,那么将关闭的文件的FIT文件重新定位到其范围的FIT区块。否则,将其重新定位到压缩的FIT更新区块。 
12.主机可使用写入_指针和读取_指针命令来控制一个组中的所有文件而使其具有相等大小(与元区块的大小相同),且可使用关闭和闲置命令来致使所述组中的文件在文件关闭之后立刻被合并到单个元区块中。 
13.所述主机命令集包含针对指定文件ID的读取和写入命令,其中包含针对写入_指针和读取_指针的值的伙伴命令,所述伙伴命令提供拟开始所命令的数据写入或读取的存储器地址。 
附图说明
包含以下列举的图式作为本申请案的一部分,且在以下描述中参看所述图式: 
图1-1:具有直接数据文件平台的存储卡; 
图1-2:直接数据文件平台组成部分; 
图2-1:文件命令; 
图2-2:数据命令; 
图2-3:信息命令; 
图2-4:流命令; 
图2-5:状态命令; 
图2-6:装置命令; 
图3-1:普通文件的格式; 
图3-2:共用文件的格式; 
图3-3:已编辑的普通文件的格式; 
图3-4:已编辑的共用文件的格式; 
图4-1:用于装置操作的流程图; 
图5-1:用于编程文件数据的流程图; 
图6-1:用于读取文件数据的流程图; 
图7-1:用于删除文件的流程图; 
图8-1:用于前台垃圾收集的交错操作; 
图8-2:用于垃圾收集的自适应调度的操作原理; 
图8-3:用于垃圾收集选择的流程图; 
图8-4(包括图8-4A到8-4B):用于文件垃圾收集的流程图; 
图8-5(包括图8-5A到8-5B):用于共用区块垃圾收集的流程图; 
图8-6(包括图8-6A到8-6B):用于区块合并的流程图; 
图8-7A到8-7D:共用区块垃圾收集实例,其展示四个时序阶段; 
图9-1:连续的主机数据编程; 
图9-2:中断的主机数据编程; 
图9-3:缓冲器清洗编程; 
图9-4:缓冲器换出编程; 
图9-5:缓冲器清洗之后的主机数据编程; 
图9-6:换入数据读取; 
图9-7:缓冲器换入之后的主机数据编程; 
图9-8:对缓冲器的对准的数据读取; 
图9-9:从缓冲器的对准的数据编程; 
图9-10:对缓冲器的非对准的数据读取; 
图9-11:从缓冲器的非对准的数据编程; 
图9-12:对缓冲器的非对准且非循序的数据读取; 
图9-13:从缓冲器的非对准且非循序的数据编程; 
图10-1:文件索引; 
图10-2:文件索引结构; 
图10-3:目录区块格式; 
图10-4:文件索引表(FIT)逻辑结构; 
图10-5:FIT页格式; 
图10-6:物理FIT区块; 
图10-7:FIT文件更新操作的实例; 
图11-1:区块状态图; 
图12-1:控制区块格式; 
图12-2:常用区块日志格式;以及 
图13-1(包括图13-1A到13-1B):与静态文件一起使用的命令集(在应当连在一起的部分A和B中)。 
具体实施方式
1.直接数据文件平台
1.1概述 
在图1-1中说明具有直接数据文件平台的存储卡。直接数据文件平台是用文件形式组织的数据存储装置,其中通过文件名和文件偏移地址来识别数据。其充当存储卡中的存储平台,所述平台可并入除数据存储之外的功能。通过外部文件接口通道在平台中存取文件数据。 
存储装置没有逻辑地址。针对每一文件存在独立的地址空间,且存储器管理算法根据数据的文件结构来组织数据存储。与将常规的文件系统与常规的逻辑分区存储器管理集成的文件存储装置的操作特性相比,在直接数据文件平台中采用的数据存储组织会产生操作特性的显著改进。 
1.2平台组成部分 
直接数据文件平台具有以下组成部分,其如图1-2所示那样以功能性层构造: 
直接数据文件接口:文件API,其提供来自所述卡中的其它功能区块对通过文件名和文件偏移地址识别的数据的存取。 
文件到快闪映射算法:用于消除文件分裂并提供最大性能和耐久性的以文件形式组织的数据存储的方案。 
编程文件数据:根据文件到快闪映射算法来编程文件数据。 
读取文件数据:从快闪存储器中读取由文件偏移地址指定的数据。 
删除文件:识别含有已删除文件的数据的区块,并将所述区块添加到垃圾收集队列。 
垃圾收集:经执行以恢复废弃数据所占据的存储器容量的操作。这些可能需要将有效数据复制到另一位置,以便擦除区块。 
文件索引:文件索引允许按偏移地址次序识别文件的有效数据群组的位置。 
数据缓冲与编程:对于拟编程的数据使用缓冲存储器,以及对编程区块中的文件数据进行编程的序列。 
擦除区块管理:对于装置中可供分配以用于存储文件数据或控制信息的擦除区块集 
区块状态管理:用于存储文件数据的区块可被分类成的八种状态之间的转变。 
控制数据结构:存储在专用于所述用途的快闪区块中的控制数据结构。 
2.直接数据文件接口
直接数据文件接口是对直接数据文件平台的API,其形成用于并入有快闪大容量数据存储设备的装置内的快闪存储器管理的后端系统。 
2.1命令集 
以下部分定义用以支持与多种来源的基于文件的介接的一般命令集。用六种类别定义命令。 
1.文件命令 
2.数据命令 
3.文件信息命令 
4.流命令(只用于建模) 
5.状态命令 
6.装置命令 
2.1.1文件命令(见图2-1) 
文件是装置内通过文件ID独立识别的对象。文件可包括由主机创建的一组数据,或者可能没有任何数据,在此情况下,其代表目录或文件夹。 
2.1.1.1创建 
创建命令在装置中的目录内创建通过<文件ID>识别的条目。如果省略<文件ID>参数,那么装置向文件指派可用值并将所述值返回到主机。这是创建文件的正常方法。 
主机可替代地向文件指派<文件ID>值。如果文件ID的特定值指示主机接口协议内的特定类型的文件,那么可使用这种方法。举例来说,主机可向根目录指派特定的文件ID。 
2.1.1.2打开 
这个命令启用对<文件ID>指定的文件执行后续的数据命令。如果文件不存在,那么返回错误消息。将所述文件的写入_指针设置到文件末尾,且将所述文件的读取_指针设置到文件开头。将文件_信息的信息_写入_指针设置到文件_信息末尾,且将所述文件的信息_读取_指针设置到文件_信息开头。存在可同时打开的文件的最大数目。如果超过这个数目,那么不执行所述命令,且返回错误消息。举例来说,同时打开的文件的最大数 目可以是8。 
只有在接收到后续写入、插入或移除命令之后,才使得装置内用于写入到指定文件的资源可用。 
2.1.1.3关闭 
这个命令停用对指定文件的后续数据命令的执行。所述文件的写入_指针、读取_指针、信息_写入_指针和信息_读取_指针值变得无效。 
2.1.1.4删除 
删除命令指示应当删除<文件ID>指定的文件的目录、文件索引表和信息表条目。可擦除所述文件的数据。随后可能不存取已删除的文件。 
2.1.1.5擦除 
擦除命令指示应当删除<文件ID>指定的文件的目录、文件索引表和信息表条目。必须在可执行任何其它命令之前擦除文件数据。随后可能不存取已擦除的文件。 
2.1.1.6列举_文件 
在接收到列举_文件命令之后,可按照数字次序将目录中的所有文件的文件ID值从装置中流出。当到达最后文件时终止文件ID流动,且可由主机借助于状态命令来识别这个条件。通过接收到其它任何命令来终止列举_文件命令。 
2.1.2数据命令(见图2-2) 
使用数据命令来起始对指定文件的数据输入和输出操作,并定义文件内的偏移地址值。指定的文件必须已经被主机打开。如果不是这样的话,那么返回错误。<文件ID>是在文件最后被打开时返回到主机的文件句柄。 
2.1.2.1写入 
在接收到写入命令之后流到装置的数据复写在由写入_指针的当前值定义的偏移地址处的指定文件中。使用写入命令来写入文件的新数据、将数据附加到文件和更新文件内的数据。通过接收到其它任何命令来终止写入命令。 
2.1.2.2插入 
将在接收到插入命令之后流到装置的数据插入在写入_指针的当前值定义的偏移地址处的指定文件中。文件大小增加了插入数据的长度。通过接收到其它任何命令来终止插入命令。 
2.1.2.3移除 
移除命令从写入_指针的当前值定义的偏移地址处的指定文件中删除<长度>定义的 循序数据。文件大小减少了<长度>。 
2.1.2.4读取 
可在接收到读取命令之后从装置中流出由读取_指针的当前值定义的偏移地址处的指定文件中的数据。 
当达到文件结尾时终止数据流动,且可由主机借助于状态命令来识别这个条件。通过接收到其它任何命令来终止读取命令。 
2.1.2.5保存_缓冲器 
指定文件的包含在装置缓冲器中但尚未编程到快闪存储器的数据保存在快闪存储器中的临时位置处。 
当接收到后续写入或插入命令时将数据复原到缓冲器,并将其同与命令有关的数据一起编程到快闪。 
2.1.2.6写入_指针 
写入_指针命令将指定文件的写入_指针设置到指定的偏移地址。当在写入或插入命令之后将数据流到装置时,装置使写入_指针递增。 
2.1.2.7读取_指针 
读取_指针命令将指定文件的读取_指针设置到指定的偏移地址。当在读取命令之后从装置中流出数据时,装置使读取_指针递增。 
2.1.3信息命令(见图2-3) 
文件_信息是主机产生的与文件相关联的信息。文件_信息的性质和内容由主机确定,且其不由装置解译。使用信息命令来起始对指定文件的文件_信息输入和输出操作,并定义文件_信息内的偏移地址值。 
2.1.3.1写入_信息 
在接收到写入_信息命令之后流到装置的文件_信息复写由信息_写入_指针的当前值定义的偏移地址处的指定文件的文件_信息。指定文件的文件_信息的内容和长度由主机确定。通过接收到其它任何命令来终止写入_信息命令。 
2.1.3.2读取_信息 
可在接收到读取_信息命令之后从装置中流出信息_读取_指针的当前值定义的偏移地址处的指定文件的文件_信息。当达到文件_信息的末尾时终止文件_信息流动,且可由主机借助于状态命令来识别这个条件。通过接收到其它任何命令来终止读取_信息命令。 
2.1.3.3信息_写入_指针 
信息_写入_指针命令将指定文件的信息_写入_指针设置到指定偏移地址。当在写入_信息命令之后将文件_信息流到装置时,装置使信息_写入_指针递增。 
2.1.3.4信息_读取_指针 
信息_读取_指针命令将指定文件的信息_读取_指针设置到指定的偏移地址。当在读取_信息命令之后从装置中流出文件_信息时,装置使信息_读取_指针递增。 
2.1.4流命令(见图2-4) 
流命令只与直接数据文件平台的行为建模一起使用。其用途是结合数据命令模拟去往和来自主机的流动数据。 
2.1.4.1流 
流命令模拟由<长度>定义的应由主机传递到平台或从平台传递的不间断的数据流。当向缓冲存储器添加数据或从中移除数据时,通过平台的模型将表示流的剩余长度的变量递减。 
2.1.4.2暂停 
暂停命令插入长度为<时间>的延迟,所述延迟在执行命令列表中的正在控制直接数据文件模型的操作的随后命令之前插入。<时间>以微秒定义。 
2.1.5状态命令(见图2-6) 
状态命令控制装置的状态。 
2.1.5.1闲置 
闲置命令指示主机正在将直接数据文件装置置于闲置状态,在此期间,装置可执行内部内务处理操作。主机将不会在闲置状态下故意从装置中移除电力。不论装置是否忙于内部操作,均可通过由主机传输其它任何命令来结束闲置状态。一旦接收到此其它命令,装置中的任何正在进行的内部操作均必须暂停或在指定时间内终止。此时间的一个实例是10毫秒或更短。 
2.1.5.2待命 
待命命令指示主机正在将直接数据文件装置置于待命状态,在此期间,装置可以不执行内部内务处理操作。主机将不会在待命状态下故意从装置中移除电力。可通过由主机传输其它任何命令来结束待命状态。 
2.1.5.3关机 
关机命令指示当装置接下来不处于繁忙状态时,将通过主机从装置中移除电力。装置响应于关机命令而关闭所有打开的文件。 
2.1.6装置命令(见图2-6) 
装置命令允许主机询问装置。 
2.1.6.1容量 
响应于容量命令,装置报告存储在装置中的文件数据的容量以及可用于新文件数据的容量。 
2.1.6.2状态 
响应于状态命令,装置报告其当前状态。 
状态包含三种类型的繁忙状态: 
1.装置忙于执行用于写入或读取数据的前台操作。 
2.装置忙于执行在装置处于闲置状态时起始的后台操作。 
3.缓冲存储器繁忙,且不可供主机用于写入或读取数据。 
2.1.7命令参数 
以下参数与下文定义的命令一起使用。 
2.1.7.1文件ID 
这是用来识别装置的目录内的文件的文件识别符。 
2.1.7.2偏移量 
偏移量是文件或文件_信息内的相对于所述文件或文件_信息开头的以字节计的逻辑地址。 
2.1.7.3长度 
这是文件的一连串具有循序偏移地址的数据的以字节计的长度。 
2.1.7.4时间 
这是以微秒计的时间。 
3.文件到快闪映射算法
由直接数据文件平台采用的文件到快闪映射算法是一种用于文件组织的数据存储设备的新机制,所述机制经定义以在主机经由基于文件的接口执行文件数据写入和文件删除操作时提供最大系统性能和最大存储器耐久性。所述映射算法已经设计以将快闪存储器中的区块之间的文件数据复制减到最少。通过以下方式来实现这点:以实现含有一个以上文件的数据的区块的最低发生几率的方式将文件数据映射到快闪区块。 
3.1文件到快闪映射原理 
3.1.1文件 
文件是主机创建和维持的一组数据。数据由主机通过文件名来识别,且可通过其偏移位置从文件开始处存取。文件偏移地址可通过主机设置,且可通过装置作为写入指针来递增。 
3.1.2物理存储器结构 
直接数据文件平台在固定大小的元区块中存储文件的所有数据。组成元区块的快闪擦除区块的实际数目(即擦除区块并行度)可在产品之间有所不同。在整个本说明书中,术语“区块”始终用于指示“元区块”。 
使用术语“元页”来指示具有元区块的完整并行度的页。元页是最大的编程单位。 
使用术语“页”来指示存储器的平面内的页,也就是说,快闪擦除区块内的页。页是最小的编程单位。 
使用术语“扇区”来指示与ECC相关联的存储数据的单位。扇区是向快闪存储器传递数据或从中传递数据的最小单位。 
在文件的偏移地址与物理快闪存储器结构之间并未维持任何指定的对准。 
3.1.3数据群组 
数据群组是在文件内具有连续偏移地址的一组文件数据,其在单个存储器区块中以连续的物理地址编程。文件通常将被编程为多个数据群组。数据群组可具有介于一个字节到一个区块之间的任何长度。每一数据群组编程有一个标头,所述标头中含有文件识别符信息以用于交叉参考用途。文件的数据根据其包括的数据群组来在物理存储器中索引。文件索引表提供文件的每一数据群组的文件偏移地址和物理地址信息。 
3.1.4编程区块 
文件必须由主机打开以允许编程文件数据。每一打开的文件具有分派为编程区块的专用区块,且所述文件的数据在由编程区块内的编程指针定义的位置处编程。当文件由主机打开时,文件的编程区块被打开(如果不是已经存在一个编程区块的话)。将编程指针设置到编程区块的开始处。如果对于由主机打开的文件已经存在一个编程区块,那么其继续用于编程所述文件的数据。 
将文件数据以其从主机处接收的次序编程在编程区块中,不论其在文件内的偏移地址如何或所述偏移地址的数据先前是否已被编程。当编程区块变满时,其称为文件区块,且来自擦除区块集区的擦除区块作为新的编程区块打开。在存储文件的数据的区块之间没有任何物理地址关系。 
3.1.5共用区块 
共用区块中含有一个以上文件的数据群组。如果同一文件的多个数据群组存在于共用区块中,那么其被连续定位且所述连续单位称为文件群组。只在区块合并操作或共用区块垃圾收集操作期间将数据编程到共用区块。 
共用区块内的各个数据群组或文件群组的开头必须与元页的开头对准。 
文件群组内的数据群组不具有插入空间。此类数据群组之间的边界可发生在页内。文件应当仅在单个共用区块中具有数据(见8.3.4,其是这种情况的例外)。 
3.2文件类型 
3.2.1  普通文件 
普通文件包括任何数目的完整文件区块和一个部分编程的编程区块。可通过通常以循序的偏移地址次序编程来自主机的文件的数据或通过对已编辑文件的垃圾收集来创建普通文件。图3-1中展示实例性普通文件。普通文件可以是打开的文件或关闭的文件。 
可在编程区块中的编程指针处编程文件的其它数据。如果主机将文件删除,那么可立刻将含有其数据的区块擦除,而无需将数据从此类区块复制到快闪存储器中的另一位置。因此,普通文件格式是非常高效的,且存在尽可能长久地以这种格式保持文件的优点。 
3.2.2共用文件 
共用文件包括任何数目的完整文件区块和一个共用区块,所述共用区块含有所述文件的数据连同其它无关文件的数据。图3-2中展示多个实例。共用文件可在垃圾收集操作期间从普通文件中创建或者通过合并编程区块来创建。 
共用文件一般是关闭的文件,且不具有相关联的写入指针。如果主机打开共用文件,那么编程区块被打开,且将编程指针设置到编程区块的开始处。如果主机将文件删除,那么其文件区块可立刻被擦除,但必须在擦除共用区块之前在垃圾收集操作中将无关文件的数据从共用区块复制到快闪存储器中的另一位置。 
3.2.3  已编辑的普通文件 
普通文件可在任何时间由主机编辑,主机写入文件的先前编程的偏移地址的更新数据。图3-3中给出多个实例。用正常方式在编程区块中的编程指针处编程此种更新数据,且所得的已编辑普通文件将在一个或一个以上废弃的文件区块或在编程区块本身中含有废弃数据。 
可在文件的垃圾收集操作中,将已编辑的普通文件复原成普通文件。在此垃圾收集期间,将任何有效文件数据从每一废弃的文件区块复制到文件的编程指针,并擦除所得 的完全废弃的区块。如果可能的话,直到文件已被主机关闭之后才执行垃圾收集。 
3.2.4已编辑的共用文件 
打开的共用文件可在任何时间由主机编辑,所述主机写入所述文件的先前编程的偏移地址的更新数据。图3-4中展示多个实例。用正常方式在编程区块中的编程指针处编程此种更新数据,且所得的已编辑共用文件将在一个或一个以上废弃的文件区块中、在共用区块中或在编程区块本身中含有废弃数据。 
可在文件的垃圾收集操作中将已编辑的共用文件复原成普通文件格式。在此垃圾收集期间,将任何有效的文件数据从每一废弃的文件区块和共用区块复制到所述文件的编程指针。擦除所得的完全废弃的文件区块,且记录废弃的共用区块以进行单独的后续垃圾收集操作。 
3.3垃圾收集和区块合并
3.3.1垃圾收集 
执行垃圾收集操作,以便恢复废弃数据所占据的存储器容量。这些可能导致必须将有效数据复制到另一位置以便擦除区块。垃圾收集无需响应于废弃数据的创建而立刻执行。将待决的垃圾收集操作记录在垃圾收集队列中,且随后根据调度算法以最优速率执行。 
直接数据文件平台支持可由主机命令起始的后台垃圾收集操作。这允许主机向装置分派静止时间以进行内部内务处理操作,所述操作将在主机随后写入文件时实现更高性能。 
如果主机不使充分的后台时间可用,那么装置作为前台操作执行垃圾收集。垃圾收集操作的突发与编程来自主机的文件数据的突发交错。可自适应地控制交错工作循环,以便将垃圾收集率维持在最小,同时确保不积累积压工作。 
3.3.2区块合并 
装置中的每一普通文件包含不完全填充的编程区块,且可将大量擦除容量锁定在此类编程区块中。共用区块还可含有擦除容量。因此实施合并关闭文件的编程区块和共用区块的持续进行的过程,以便控制锁定的擦除容量。将区块合并作为垃圾收集功能的一部分处理,且通过相同的调度算法对其进行管理。 
通过以下方式将编程区块或共用区块中的数据与一个或一个以上无关文件的数据合并:从另一共用区块或编程区块复制此种无关数据。如果原始区块是编程区块,那么其变成共用区块。优选的是将编程区块与废弃的共用区块合并,而不是与另一编程区块合 并。废弃的共用区块中含有废弃数据,且因此不可避免地必须将有效数据从所述区块重新定位到另一位置。然而,编程区块不含有废弃数据,且将数据从所述区块复制到另一位置是一项不理想的额外开销。 
3.3.3均衡状态 
当文件数据占据了较高百分比的装置容量时,主机必须对文件执行删除操作,以便创建用于写入新文件的容量。在此状态下,装置中的大多数文件将具有共用文件格式,因为在普通文件格式的文件的编程区块中将存在很少的容量可供擦除空间使用。 
删除共用文件需要在垃圾收集期间将无关文件的有效数据从其共用区块中重新定位。此类文件群组的数据最常见的是被重新定位到关闭文件的一个或一个以上编程区块中的可用容量。在用于最近由主机写入接着又关闭的文件的编程区块中的可用未使用容量与因文件被主机删除而从共用区块中重新定位文件数据所需的容量之间经常存在均衡。这种一般的均衡状态减少了从编程区块重新定位文件数据的需要,并且有助于文件到快闪映射算法的效率。 
4.装置操作
4.1装置操作的执行 
通过主机供应的命令流来确定装置的操作序列。当接收到主机命令时,中断当前装置操作,且以正常方式解译命令。特定命令将导致执行如下四个主要装置操作之一: 
1.数据读取; 
2.数据编程; 
3.文件删除;或 
4.垃圾收集。 
装置操作继续进行,直到达到以下条件之一: 
1.操作完成; 
2.接收到另一主机命令;或 
3.在前台垃圾收集模式下达到交错突发的末尾。 
如果将优先级垃圾收集操作排队以供执行,那么在解译任何新命令之前完成这些操作。 
展示装置操作的总体流程图见图4-1。 
5.编程文件数据
5.1编程文件数据的原理 
当文件的数据遵照来自主机的写入或插入命令而从主机流到装置时,将所述数据编程到快闪存储器。当已经在缓冲存储器中积累了充分数据以用于下一编程操作时,将其编程在文件的编程区块中。见第9章中对此操作的描述。 
当编程区块变满时,将其规定为文件区块,且将来自擦除区块集区的擦除区块分派为编程区块。此外,更新共用区块和废弃区块的文件索引表和垃圾收集队列。 
文件数据编程程序根据垃圾收集调度算法(见部分8.4)所建立的交错参数N1起始前台垃圾收集的突发。每当在快闪存储器中起始元页编程操作时,将交错编程计数器递增,且当这个计数器超过值N1时起始前台模式的垃圾收集操作。 
文件数据编程以一个元页为单位继续进行,直到主机传输另一命令为止。 
说明编程文件数据的流程图见图5-1。 
6.读取文件数据
6.1读取文件数据的原理 
响应于来自主机的读取命令,从快闪存储器读取从由读取_指针指定的地址处开始的文件偏移地址的数据,并将其循序返回到主机,直到达到文件末尾为止。读取文件索引表(FIT),且评估文件的FIT条目以识别对应于读取_指针的位置。随后的FIT条目指定文件的数据群组的位置。 
以一个元页为单位读取文件数据,直到达到文件末尾为止,或者直到主机传输另一命令为止。 
图6-1中给出读取文件数据的实例性过程。 
7.删除文件
7.1删除文件的原理 
响应于来自主机的对文件的删除命令,识别含有所述文件的数据的区块并将其添加到垃圾收集队列,以用于随后的垃圾收集操作。删除文件的程序不会起始这些垃圾收集操作,且因此不会立刻擦除文件的数据。 
首先评估文件的FIT条目,以便识别可能含有所述文件的数据的共用区块。此后,以偏移地址次序评估文件的FIT条目,并将数据群组位于其中的数据区块添加到共用区块队列或废弃区块队列,以用于随后的垃圾收集。接着更新文件目录和文件索引表,以移除所述文件的条目。 
7.2擦除文件 
响应于来自主机的对文件的擦除命令,应当遵循与用于删除命令相同的程序,但是 其中将含有文件的数据的区块添加到优先级共用区块队列和优先级废弃区块队列,以用于垃圾收集。 
接着,主要装置操作序列确保在执行其它任何主机命令之前执行这些区块的垃圾收集操作。这确保立刻擦除由擦除命令识别的文件数据。 
文件删除过程的流程图见图7-1。 
8.垃圾收集
8.1垃圾收集的原理 
垃圾收集是必须执行以恢复由废弃文件数据占据的快闪存储器容量的操作。垃圾收集可能因删除文件或因编辑文件数据而成为必要的。 
区块合并是一种形式的垃圾收集,执行所述形式的垃圾收集以恢复未由文件数据完全填充的区块中的擦除容量,以便允许将其用于存储无关文件。可对普通文件中的编程区块执行合并以将其转换成共用区块,或者对共用区块执行合并以减少其数目。 
垃圾收集和区块合并的过程按照文件到快闪映射算法的规定,将有效文件数据从来源快闪区块重新定位到一个或一个以上目的地区块,以便允许擦除来源区块。 
不立刻执行待决的垃圾收集操作,而是根据分阶段执行的调度算法执行。在装置操作期间不时地将需要垃圾收集的对象的条目添加到三个垃圾收集队列。针对文件、废弃区块和共用区块存在单独队列。从所述队列中选择对象以用于以预定义的优先级次序进行下一垃圾收集操作。如果队列为空,那么可执行区块合并。 
可用两种方式调度垃圾收集操作。当主机不在对装置进行读取或写入存取时,主机可起始后台操作,且装置连续执行后台操作,直到主机进行另一存取为止。当装置正被主机存取时,装置可调度前台操作,且以与从主机接收的文件数据的编程操作突发交错的突发形式执行前台操作。可用自适应的方式控制交错突发的长度,以便将垃圾收集速率始终维持在所需的最小值。 
8.2垃圾收集队列 
垃圾收集队列含有对其存在待决的垃圾收集操作的对象的条目。三个队列每一者分别含有用于废弃区块的条目、用于共用区块的条目和用于文件的条目。给予两个额外队列高于这三个队列的优先级,并且所述两个额外队列分别含有用于废弃区块的条目和用于共用区块的条目。将所述五个垃圾收集队列存储在快闪存储器中的控制区块中的控制日志中。 
8.2.1优先级废弃区块队列 
这个队列含有已经因为来自主机的擦除命令而变得完全废弃的区块的条目。其是最高优先级垃圾收集队列。必须在从主机处接受其它任何命令之前或在对来自其它任何队列的对象起始垃圾收集操作之前完成对所述队列中识别的所有区块的垃圾收集操作。 
8.2.2优先级共用区块队列 
这个队列含有已经因为来自主机的擦除命令而变得部分废弃的共用区块的条目。其是第二高优先级垃圾收集队列。必须在从主机处接受其它任何命令或在对来自较低优先级队列的对象起始垃圾收集操作之前完成对所述队列中识别的所有共用区块的垃圾收集操作。 
8.2.3废弃区块队列 
这个队列含有因为来自主机的删除命令或因为对文件数据的编辑而变得完全废弃的区块的条目。其是第三高优先级垃圾收集队列。应当在对来自较低优先级队列的对象起始操作之前完成对所述队列中识别的所有区块的垃圾收集操作。 
8.2.4共用区块队列 
这个队列含有已经因为来自主机的删除命令或因为对文件数据的编辑而变得部分废弃的共用区块的条目。其是第四高优先级垃圾收集队列。应当在对来自较低优先级队列的对象起始操作之前完成对所述队列中识别的所有区块的垃圾收集操作。 
8.2.5文件队列 
这个队列含有因为对文件数据的编辑而具有废弃数据的文件的条目。其是最低优先级垃圾收集队列。当主机将文件关闭时,除非文件是普通文件,否则将其条目添加到文件队列。因此,在主机关闭文件时有必要对文件的FIT条目执行分析,以便确定文件是普通文件还是已编辑文件(普通的或共用的)。 
这个分析的程序如下: 
1.以偏移地址次序评估相关FIT文件中的FIT条目。 
2.确定数据群组和数据群组标头的累积容量。 
3.确定由文件数据占据的物理容量。这是除了含有文件数据的编程区块之外的区块数目加上编程区块中的已使用容量。 
4.如果数据群组容量超过物理容量的X%,那么确定文件是普通文件。X值的实例是98%。X%小于100%,以允许因缓冲器清洗操作引起的未编程空间在普通文件中保持。 
8.3垃圾收集操作 
8.3.1废弃区块 
废弃区块只含有废弃数据且可被擦除,而无需将数据重新定位到另一区块。 
8.3.2共用区块 
共用区块是来源区块,且含有一个或一个以上文件的一个或一个以上部分或完全废弃的数据群组。必须将有效数据从这个来源区块重新定位到一个或一个以上目的地区块。 
以完整文件群组为单位重新定位数据,其中文件群组包括共用区块内的同一文件的一个或一个以上数据群组。将每一文件群组完整地重新定位到目的地区块,但可将不同的文件群组重新定位到不同区块。 
共用区块是目的地区块的优选选择,如果没有合适的共用区块可用的话则后接编程区块,如果没有合适的编程区块可用的话则后接擦除区块。 
垃圾收集操作可继续进行,直到发生以下条件之一为止:操作完成;主机发送命令;或在前台模式下达到交错突发的末尾。 
图8-5中展示共用区块垃圾收集操作的流程图。 
8.3.3文件垃圾收集 
执行文件垃圾收集,以便恢复所述文件的废弃数据所占据的容量。其将处于已编辑的普通文件状态或已编辑的共用文件状态下的文件复原成普通文件状态。第一步骤是对其FIT文件中的FIT条目执行分析,以识别其数据群组必须在垃圾收集期间被复制的废弃文件区块和共用区块。这个分析的程序如下: 
1.以偏移地址次序评估相关FIT文件中的FIT条目。 
2.构造数据群组列表以将数据群组与物理区块联系起来。从这个列表中排除编程区块中的数据群组。 
3.确定列表中提及的每一区块中由数据群组和数据群组标头占据的物理容量。 
4.如果数据群组容量超过区块容量的X%,那么确定所述区块是文件区块。X值的实例是98%。X%小于100%,以允许因缓冲器清洗操作引起的未编程空间在文件区块中保持。 
5.将被确定为文件区块的区块中的数据群组从以上构造的数据群组列表中移除。 
修订的数据群组列表中提及的数据群组包含在废弃文件区块或共用区块中,且在文件垃圾收集操作期间被复制到编程区块。可能因为文件垃圾收集操作而修改文件的数据群组结构,也就是说,可能通过区块边界将重新定位的数据群组一分为二,或者可将其与邻近的数据群组归并。将所述文件的编程区块用作目的地区块。当这个区块填满时,打开另一编程区块。 
垃圾收集操作可继续进行,直到发生以下条件之一为止:操作完成;主机发送命令;或在前台模式下达到交错突发的末尾。 
在图8-4中展示文件垃圾收集操作的流程图。 
8.3.4区块合并 
执行区块合并以恢复已经被不完全编程的编程区块和共用区块中的擦除容量,并使得所述容量可用于存储其它文件的数据。 
将用于合并的来源区块选作编程区块日志或共用区块日志中具有最低编程容量的区块,以允许在尽可能最少的数据重新定位之后擦除所述区块。以完整文件群组为单位重新定位数据,其中文件群组包括编程区块或共用区块内的同一文件的一个或一个以上数据群组。将每一文件群组完整地重新定位到目的地区块,但可将不同的文件群组重新定位到不同区块。 
共用区块是目的地区块的优选选择,如果没有合适的共用区块可用的话则后接编程区块。在没有目的地区块可用的稀有情况下,可将文件群组进行分裂以将其重新定位到一个以上目的地区块。 
区块合并操作可继续进行,直到发生以下条件之一为止:操作完成;主机发送命令;或在前台模式下达到交错突发的末尾。 
图8-6中展示区块合并操作的流程图。 
8.4垃圾收集操作的调度 
在主机装置正在存取卡的时期期间,优选地将垃圾收集作为后台任务执行。在直接数据文件平台中支持由主机起始的后台垃圾收集。 
然而,也可能有必要在主机正向装置写入数据时将垃圾收集作为前台任务来执行。在这个模式下,完整的垃圾收集操作不需要作为单个事件来完成。垃圾收集的突发可与编程来自主机的数据的突发交错,以使得可在多个单独阶段中完成垃圾收集操作,且对于主机对装置的可用性的中断有限。 
8.4.1后台操作 
当主机向装置发送闲置命令时起始后台垃圾收集。这指示主机将不会故意从装置移除电力,且不会立刻意图存取装置。然而,主机可在任何时间通过传输另一命令来结束闲置状态。 
在所述闲置状态下,装置执行连续的垃圾收集操作,直到发生以下条件之一为止:主机传输另一命令;或所有垃圾收集队列为空且不可能有任何区块合并操作。 
8.4.2交错操作 
通过用于编程文件数据的直接数据文件过程来起始交错的垃圾收集操作。图8-1中说明交错操作。在主机接口活动且对快闪存储器进行N1个编程操作的主机数据写入阶段之后,装置切换到垃圾收集阶段。在这个阶段中,执行一个或一个以上垃圾收集操作中的一部分,直到完成对快闪存储器的N2个编程操作为止。 
可在垃圾收集阶段末尾暂停正在进行的垃圾收集操作,且在下一个此种阶段中重新开始垃圾收集操作。通过自适应调度算法确定N1和N2的值。 
8.4.3自适应调度 
使用自适应调度方法来控制主机数据编程和垃圾收集的交错突发的相对长度,以使得可将垃圾收集操作对主机数据写入操作的中断保持到最小值。在还确保不积累可能导致随后性能降低的待决垃圾收集的积压工作的同时实现这一点。 
8.4.3.1操作原理 
在任何时间,装置状态均包括由先前写入的主机数据占据的容量、擦除区块集区中的区块中的擦除容量和可供垃圾收集操作写入其它主机数据使用的可恢复容量。此可恢复容量可能在编程区块、共用区块或与先前写入的主机数据共享的废弃文件区块中,或者在完全废弃的区块中。图8-2中展示这些类型的容量利用。 
垃圾收集的自适应调度控制编程递增主机数据和重新定位先前写入的主机数据的交错率,使得所述比率可在其间所有可恢复容量均可供主机数据使用的自适应时期中保持恒定。如果主机删除文件(这将先前写入的主机数据转换成可恢复容量),那么相应地改变交错率且开始新的自适应时期。 
可如下确定最佳交错率: 
如果 
擦除区块集区中的擦除区块的数目=erased_blocks; 
编程区块和共用区块的组合数目=data_blocks; 
编程区块和共用区块中的有效数据页的总数=data_pages; 
废弃区块的数目=obsolete_blocks;且 
区块中的页的数目=pages_per_block, 
那么 
可通过垃圾收集创建的擦除区块的数目表达为data_blocks-(data_pages/pages_per_block); 
垃圾收集之后的擦除区块的总数表达为erased_blocks+obsolete_blocks+data_blocks-(data_pages/pages_per_block); 
可写入的递增数据元页的数目表达为pages_per_block.*(erased_blocks+obsolete_blocks+data_blocks)-data_pages。 
如果 
假设有效数据在所有编程区块和共用区块中均匀分布(这是个悲观的假设,因为将具有低数据页计数的区块选作用于区块合并操作的来源区块) 
那么 
垃圾收集期间重新定位的元页的数目表达为data_pages*(data_blocks-data_pages/pages_per_block)/data_blocks。 
最佳交错率N1∶N2是可写入的递增数据元页的数目与在垃圾收集期间必须重新定位的元页的数目的比率。因此, 
N1∶N2=(pages_per_block*(erased_blocks+obsolete_blocks+data_blocks)-data_pages)/(data_pages*(data_blocks-data_pages/pages_per_block)/data_blocks) 
请注意,尚未在自适应调度算法中包含废弃文件区块中的废弃容量的恢复。此容量只是由编辑文件产生的,且不常发生。如果在废弃文件区块中存在相当大容量,那么以自适应方式确定的交错率可能不是最佳的,但是切换到具有最小比率的操作(在8.4.3.2中描述)将确保对此类区块的高效垃圾收集。 
8.4.3.2交错控制 
在三个区段中定义交错率N1∶N2,如下。 
1)最大值:设置交错率的最大限度,以便确保永远不会完全抑制垃圾收集。此最大限度的实例是10∶1。 
2)自适应:在自适应区段中,将交错率控制为对于共用区块和废弃区块的待决垃圾收集以及编程区块和共用区块的合并来说为最佳的。其通过以下关系式定义: 
N1∶N2=(pages_per_block*(erased_blocks+obsolete_blocks+data_blocks)-data_pages)/(data_pages*(data_blocks-data_pages/pages_per_block)/data_blocks), 
其中N1和N2定义为页编程操作的数目。 
定义N2的值,其代表垃圾收集突发的优选持续时间。这个值的实例是16。 
3)最小值:如果擦除区块集区中的区块数目在所定义的最小值以下,那么不是以自适应方式定义交错率,而是将其设置成固定的最小限度。这个最小限度的实例是1∶10。 
8.4.3.3控制参数 
以下参数维持在快闪存储器中的控制区块中的控制日志中,以用于控制自适应调度: 
擦除区块计数:维持擦除区块集区中的区块数目的计数。当向擦除区块集区添加区块或从中移除区块时更新这个计数。 
编程与共用区块计数:维持编程区块与共用区块的组合数目的计数。共用区块可含有废弃数据。当向编程区块日志和共用区块目志添加区块或从中移除区块时更新所述计数。 
编程与共用区块页计数:维持编程区块和共用区块中的有效数据页的数目的计数。当向编程区块日志和共用区块日志添加区块或从中移除区块时更新所述计数。 
废弃区块计数:维持等待垃圾收集的完全废弃区块的数目的计数。当向废弃区块垃圾收集队列添加区块或从中移除区块时更新所述计数。 
8.5垃圾收集的流程图 
在图8-3中给出用于选择若干特定垃圾收集操作之一的特定算法的流程图。图8-4是用于图8-3的“文件垃圾收集”方框的流程图。用于图8-3的“共用区块垃圾收集”方框的流程图是图8-5的主题。通过图8-6的流程图展示图8-3的“区块合并”功能。 
图8-7A到图8-7D四个图展示可由图8-5的过程产生的共用方块的实例性垃圾收集。图8-7A展示初始条件,而图8-7B到图8-7C说明垃圾收集过程中的三个步骤。箭头展示将有效数据从废弃区块传递到不满的文件区块中,于是这些目的地文件区块变成共用区块。 
9.数据缓冲与编程
本部分中描述的数据缓冲和编程方法限于使用与当前产品中采用的相同的快闪接口和错误校正码(ECC)结构。如果将来引入新的快闪接口和ECC结构,那么可采用替代的最优方法。 
9.1数据缓冲器 
缓冲存储器存在于控制器中的SRAM(现有申请案的RAM 31)中,以用于临时存储正在编程到快闪存储器或从中读取的数据。使用缓冲存储器中的分派区域来积累文件的充分数据,以允许在单个操作中将完整元页编程到快闪存储器中。缓冲存储器中的文件的数据的偏移地址不重要。缓冲存储器可存储多个文件的数据。 
为了允许将主机的写入和读取操作两者管线化,具有两个元页的容量的缓冲存储器空间应当可用于正被缓冲的每一文件。缓冲存储器包括一组扇区缓冲器。可分派各个扇区缓冲器以用于临时存储单个文件的数据,且当已经将数据传递到其最终目的地时将所 述扇区缓冲器解除指派。通过扇区缓冲器编号0到N-1来识别扇区缓冲器。扇区缓冲器的数目(N)的实例是64。 
按扇区缓冲器的扇区缓冲器编号的次序循环分派可用的扇区缓冲器。每一扇区缓冲器具有文件标签以及定义其中所含有的数据开头和末尾的两个相关联指针。还记录扇区缓冲器中的数据内的文件偏移地址范围。扇区缓冲器以及与其相关联的控制信息两者均只存在于控制器中的易失性存储器内。 
9.2数据编程 
9.2.1元页 
元页是快闪存储器中的最大编程单位。应当在可能时以元页为单位编程数据,以便实现最大性能。 
9.2.2页 
页是元页的子集,并且是快闪存储器中的最小编程单位。 
9.2.3扇区 
扇区是页的子集,并且是控制器与快闪存储器之间的最小数据传递单位。扇区通常包括512个字节的文件数据。由控制器针对每一扇区产生ECC(例如通过现有申请案的图2的控制器ECC电路33),并且将所述ECC传递到附加于扇区末尾的快闪。当从快闪中读取数据时,必须将所述数据以多个完整扇区的形式传递到控制器,以便允许检验ECC。 
9.3缓冲器清洗 
文件的数据一般在扇区缓冲器中积累,直到有充分的数据可用于在快闪存储器中编程完整的元页为止。当主机停止流动文件的数据时,一个或一个以上扇区缓冲器保持有元页的一部分的文件数据。这个数据保持在缓冲存储器中,以便允许主机写入所述文件的其它数据。然而,在特定情形下,必须在一种称为缓冲器清洗的操作中将缓冲存储器中的数据提交给快闪存储器。缓冲器清洗操作导致将保持在扇区缓冲器中的文件的所有数据编程在元页内的一个或一个以上页中。 
在以下两种情况下执行缓冲器清洗操作: 
1)主机关闭文件,或 
2)主机接收到关机命令。 
如果已经将主机关闭的文件的数据换出到交换区块,那么应当将所述数据复原到缓冲存储器,且应当执行缓冲器清洗。应当将电源移除后在装置初始化期间处于交换区块 中的数据复原到缓冲存储器,且应当执行缓冲器清洗。 
9.4缓冲器交换 
缓冲器交换是这样一种操作:其中将一个或一个以上扇区缓冲器中的文件的数据编程在称为交换区块的临时位置中,以便随后在主机继续写入所述文件的数据时复原到缓冲存储器。 
9.4.1交换区块的格式 
交换区块是存储已经从扇区缓冲器中换出的文件的数据的专用区块。将文件的数据连续存储在交换区块中专用于所述文件的一个或一个以上页中。当随后将数据换入回到缓冲存储器时,所述数据在交换区块中变成废弃的。 
当交换区块变满时,将交换区块内的有效数据以压缩形式写入到擦除区块,所述擦除区块于是变成交换区块。这种压缩形式允许不同文件的数据存在于同一页内。优选地只存在单个交换区块。 
9.4.2对存储在交换区块中的数据进行索引 
将交换区块索引维持在快闪存储器中,其中针对交换区块中的每一文件含有先前针对缓冲存储器中的文件而记录的信息的复本(见9.1)。 
9.4.3将数据移动到交换区块(换出) 
在没有充分的扇区缓冲器可用于分派到已经被主机打开的文件或者分派到因来自主机的对文件的写入命令而必须从交换区块中换入的文件时,发生换出操作。选定用于换出的文件应当是在缓冲存储器中存在相应缓冲器的文件中最早写入的文件。 
视情况而定,为了在未调度的电源移除的情况下改进数据安全性,可针对缓冲存储器中与来自主机的最近写入命令无关的任何文件执行换出。在此情况下,所述文件的数据可保留在缓冲存储器中,且如果尚未移除电源的话,则不需要进行后续的换入操作。 
9.4.4从交换区块中复原数据(换入) 
将文件的完整数据从交换区块读取到一个或一个以上扇区缓冲器。文件数据无需具有与其换出之前完全相同的与扇区缓冲器的对准。由于压缩了缓冲区块,所以对准可能已经发生变化。交换区块中的文件的数据变成废弃的。 
9.5编程来自主机的文件数据 
本部分中给出的实例涉及每个元页具有两个页且每个页具有两个扇区的快闪存储器配置。 
9.5.1编程来自主机的连续数据 
文件的数据从主机中流出且在连续分派的扇区缓冲器中积累。当充分的扇区缓冲器已经被填满时,将其数据与每一扇区的ECC一起传递到快闪存储器,且将文件的编程区块中的目的地元页编程。图9-1中展示连续主机数据编程的实例。 
9.5.2编程来自主机的中断数据 
文件的数据从主机中流出且在连续分派的扇区缓冲器中积累。图9-2展示已经被中断的主机数据编程的实例。在数据区段2A之后中断流,同时执行不同文件的写入操作。当接收到针对所述文件的另一写入命令时,在与以前一样的扇区缓冲器中积累从主机流出的数据,其中从数据区段2B处开始。当已经有充分的扇区缓冲器被填满时,将其数据连同每一扇区的ECC一起传递到快闪存储器,且编程文件的编程区块中的目的地元页。 
9.5.3编程正从缓冲器中清洗的数据 
从主机流出文件数据,并将其积累在连续分派的扇区缓冲器中。然而,不存在充分的数据以编程在完整元页中。在图9-3中给出实例。将数据区段1和2A连同填补区段2B并连同每一扇区的ECC一起传递到快闪存储器,且对文件的编程区块中的目的地页进行编程。 
9.5.4编程正从缓冲器换出的数据 
这个操作与用于缓冲器清洗编程的操作相同,区别只是目的地页是交换区块中的而不是文件的编程区块中的下一可用页。图9-4对此进行说明。 
9.5.5  编程在从缓冲器中清洗之后来自主机的数据 
与从缓冲存储器中清洗的数据分离地编程在文件的缓冲器清洗操作之后由主机供应的文件数据。编程因此必须从文件的编程区块中的下一可用页开始。积累足以完成当前元页的数据,且将其与ECC一起传递并编程,如针对图9-5中的扇区3和4所示那样。 
9.5.6编程在换入到缓冲器之后来自主机的数据 
当接收到已经从缓冲存储器中换出的文件的其它数据时,将其积累在缓冲存储器中分派的扇区缓冲器中。还将换出数据从交换区块复原到缓冲存储器。当已经积累了充分的数据时,在单个操作中编程整个元页。 
如图9-6中所说明,从交换区块中读取数据区段1和2A连同填补区段2B,并在两个扇区缓冲器中复原。在所述两个扇区上检验ECC。 
如图9-7的实例中所示,在缓冲器扇区中积累来自主机的文件数据。将数据区段1、2A/2B、3A/3B和4A/4B连同每一扇区的ECC一起传递到快闪存储器,并将其编程为扇区1、2、3和4。 
9.6编程从快闪中复制的数据 
9.6.1从对准的元页中复制数据 
当拟复制到完整目的地元页的数据占据了单个完整的来源元页时,将来源元页和目的地元页称为对准的,如图9-8中说明的。将数据扇区1、2、3和4从来源元页读取到四个扇区缓冲器,且在每一扇区上检验ECC。 
9.6.1.1从缓冲器中写回 
将数据从所述四个扇区缓冲器编程到目的地元页,如图9-9所示。针对扇区1、2、3和4产生和存储ECC。 
9.6.1.2芯片上复制 
当拟复制的数据的元页对准与在来源和目的地元页中相同时,可使用快闪芯片内的芯片上复制来提高复制操作的速度。如果ECC检验未显示任何错误,那么将数据编程到目的地元页。 
9.6.1.3共用区块内的元页对准 
应当迫使共用区块内的每一文件群组的开头与元页的开头对准。编程区块中的数据群组也与区块中的第一元页的开头对准。因此,共用区块的所有数据复制操作(例如将编程区块合并到共用区块,并将文件群组从一个共用区块复制到编程区块或另一共用区块)将与对准的元页之间的数据复制一起操作。当将数据复制到共用区块或从共用区块中复制数据时应使用快闪芯片内的芯片上复制以便提高复制操作的速度。 
9.6.2从未对准的循序元页中复制数据 
当拟复制到完整目的地元页的数据虽然连续但占据了两个循序来源元页时,将来源和目的地元页称为未对准。图9-10中展示读取来源元页的实例。将数据扇区1A/1B、2和3从第一来源元页读取到三个扇区缓冲器,且将数据扇区4和5A/5B从第二来源元页读取到另外两个扇区缓冲器。在每一扇区上检验ECC。 
将数据部分1A/1B、2A/2B、3A/3B和4A/4B从扇区缓冲器编程到目的地元页中的扇区1、2、3和4,如图9-11所示。针对扇区1、2、3和4产生和存储ECC。 
当正被复制的元页数据是一长串连续数据中的一部分时,可将所述复本部分地管线化。将数据以完整元页的形式从来源位置读取到缓冲存储器。必须读取N+1个来源元页,以便编程N个目的地元页。 
9.6.3从未对准的非循序元页中复制数据 
当拟复制到完整目的地元页的数据不连续并且占据两个或两个以上非循序的来源元 页时,将来源和目的地元页称为未对准且非循序。这种情况代表将文件内的两个或两个以上非连续数据群组中的一部分复制到单个目的地元页。如图9-12所示,将数据扇区1A/1B、2和3A/3B从第一来源元页读取到三个扇区缓冲器,且将数据扇区4A/4B和5A/5B从第二来源元页读取到另外两个扇区缓冲器。在每一扇区上检验ECC。 
接着将数据部分1A/1B、2A/2B、3A/3B和4A/4B从扇区缓冲器编程到目的地元页中的扇区1、2、3和4,如图9-13所示。针对扇区1、2、3和4产生和存储ECC。 
10.文件索引
10.1文件索引的原理 
图10-1中大体上展示文件索引。将文件的数据存储为一组数据群组,其中每一数据群组在文件偏移地址空间和物理地址空间两者中跨越一连串连续地址。文件的所述组内的数据群组无需彼此具有任何特定的物理地址关系。文件索引表(FIT)允许以偏移地址次序识别文件的有效数据群组的位置。通过文件数据指针识别文件的一组FIT条目。 
将主机产生的与文件相关联的信息作为文件_信息存储在信息表(IT)中。文件_信息的性质和内容由主机确定,且其不由装置解译。文件_信息可包含文件的文件名、父目录、子目录、属性、权利信息和文件关联。IT中的文件的文件_信息通过文件信息指针识别。 
目录含有装置中的每个有效文件的文件数据指针和文件信息指针。文件的这些目录条目通过文件ID来识别,所述文件ID是数字值。 
10.2文件索引结构 
图10-2展示文件索引结构的实例。 
10.3目录 
10.3.1文件ID 
文件ID是直接数据文件平台内的文件的数字识别符。其由直接数据文件平台响应于创建命令而分派,或者可通过创建命令指定为参数。 
当由装置分派文件ID值时,使用指向目录中的条目的循环指针来定位下一个可用文件ID。当文件被删除或擦除时,将文件的文件ID识别的目录条目标记为可用的。 
文件ID值定义目录中的条目,所述条目含有文件的文件数据指针和文件信息指针的字段。 
通过针对文件ID分派的位的数目来确定可存储在装置中的文件的最大数目。 
10.3.2文件数据指针 
文件数据指针是在控制日志内指向FIT区块列表中的文件条目的逻辑指针,且可能也是指向FIT更新区块列表中的文件条目的逻辑指针。 
文件数据指针具有两个字段: 
1)FIT范围,和 
2)FIT文件编号。 
即使当文件具有零长度时也存在针对所述文件的文件数据指针。 
10.3.2.1FIT范围 
FIT范围是FIT的子集。每一FIT范围映射到单独的物理FIT区块。FIT范围可含有一个FIT文件到最大数目的FIT文件,所述最大数目例如可为512。 
10.3.2.2FIT文件编号 
FIT文件编号是用来在FIT内识别FIT文件的逻辑编号。 
10.3.3文件信息指针 
文件信息指针是在控制日志内指向信息区块列表中的文件条目的逻辑指针,且可能也是指向信息更新区块列表中的文件条目的逻辑指针。 
文件信息指针具有两个字段: 
1)信息范围;和 
2)信息编号。 
10.3.3.1信息范围 
信息范围是信息表的子集。每一信息范围映射到单独的物理信息区块。信息范围可含有一组文件_信息到最大数目的组的文件_信息,所述最大数目例如可为512。 
10.3.3.2信息编号 
信息编号是用来在信息区块中识别一组文件_信息的逻辑编号。 
10.3.4目录结构 
目录存储在专用于所述用途的快闪区块中。图10-3展示实例性目录区块格式。所述目录被构造成一组页,在每一页内针对具有连续文件ID值的文件存在一组条目。这组条目称为目录范围。 
通过在由控制指针定义的下一擦除页位置处写入目录页的修订版本来更新目录。如果必要的话,可通过将多个页编程到元页中的不同页来同时更新所述多个页。 
通过目录区块中的最后写入页中的范围指针来识别目录范围的当前页位置。 
10.4区块列表 
文件索引表和信息表两者均包括一系列逻辑范围,其中范围与物理快闪区块具有相关性。在控制日志中维持区块列表以便记录文件数据指针或文件信息指针中定义的范围与物理区块之间的相关性,以及文件数据指针或文件信息指针中定义的逻辑编号与文件索引表和信息表内的物理区块中使用的逻辑编号之间的相关性。 
10.4.1FIT区块列表 
FIT区块列表是控制日志中的为文件的FIT中的条目分派FIT文件指针的列表。FIT文件指针含有分派到文件数据指针中定义的范围的物理快闪区块的地址,以及在文件数据指针中定义的同一FIT文件编号。FIT区块列表中的条目含有单个字段——区块物理地址。 
FIT更新区块列表是控制日志中的为FIT中正被更新的文件条目分派FIT文件指针的列表。FIT文件指针含有当前分派为FIT更新区块条目的物理快闪区块的地址,以及FIT更新区块中分派给正被更新的FIT文件的FIT更新文件编号。FIT更新区块列表中的条目含有三个字段: 
1)FIT范围, 
2)FIT文件编号,和 
3)FIT更新文件编号。 
当应当从FIT区块列表中确定对应于文件数据指针的FIT文件指针时,搜索FIT更新区块以确定是否存在与文件数据指针有关的条目。如果不存在,那么FIT区块列表中的与文件数据指针有关的条目是有效的。 
10.4.2信息区块列表 
将主机写入的文件_信息直接存储在信息表中,所述信息表通过文件信息指针来识别。存在信息区块列表以向信息表中的文件_信息分派信息指针。用于这些信息区块列表的索引机制与针对FIT区块列表描述的机制完全相似。 
信息区块列表中的条目含有单个字段——区块物理地址。 
信息更新区块列表中的条目含有三个字段: 
1)信息范围, 
2)信息编号,和 
3)更新信息编号。 
10.5  文件索引表 
文件索引表(FIT)包括一串FIT条目,其中每一FIT条目识别文件偏移地址和在数 据群组的快闪存储器中的物理位置。FIT含有存储在装置中的文件的所有有效数据群组的条目。不通过FIT来索引废弃的数据群组。图10-4中给出实例性FIT逻辑结构。 
将文件中的数据群组的一组FIT条目以文件偏移地址次序维持为连续条目。所述组条目称为FIT文件。将FIT维持为一系列FIT范围,且每一FIT范围与物理快闪区块具有相关性。FIT范围的数目将根据装置中的数据群组的数目而变化。在装置操作期间将创建新的FIT范围和消除FIT范围。使用FIT区块列表来根据文件数据指针创建FIT文件指针,可通过所述FIT文件指针来识别FIT中的位置。 
10.5.1FIT文件 
FIT文件是文件内的数据群组的一组连续FIT条目。所述组中的条目以文件偏移地址排序。FIT文件中的FIT条目是连续的,且包含在单个FIT范围内或者从一个FIT范围溢出到下一个连续的FIT范围。 
10.5.2FIT标头 
FIT文件中的第一条目是FIT标头。其具有三个字段: 
1)文件ID, 
2)编程区块,和 
3)编程指针。 
FIT标头具有等于FIT条目的整数的固定长度。这个数目可能是1。 
10.5.2.1文件ID 
文件ID识别目录中的文件的条目。 
10.5.2.2编程区块 
每当将FIT文件的更新版本写入到FIT中时,将文件的编程区块的当前物理地址记录在FIT标头中。这用来在主机重新打开文件时定位文件的编程区块。其还可用来验证FIT文件与所述文件的编程区块之间的对应性,所述文件已经被选定进行编程区块合并。 
10.5.2.3编程指针 
每当将FIT文件的更新版本写入在FIT中时,将文件的编程区块内的编程指针的当前值记录在FIT标头中。这用来在主机重新打开文件时或者在编程区块已经被选定进行编程区块合并时定义文件的编程区块内用于编程数据的位置。 
10.5.3FIT条目 
FIT条目指定数据群组。其具有四个字段: 
1)偏移地址, 
2)长度, 
3)指针,和 
4)EOF旗标。 
10.5.3.1偏移地址 
偏移地址是文件内与数据群组的第一字节有关的以字节计的偏移量。 
10.5.3.2长度 
其定义数据群组内的文件数据的以字节计的长度。完整数据群组的长度比这个值长出数据群组标头的长度。 
10.5.3.3指针 
其是指向数据群组的开头在快闪区块中的位置的指针。所述指针具有两个字段: 
1)区块地址,其定义含有所述数据群组的物理区块,和 
2)字节地址,其定义数据群组的开头在区块内的字节偏移量。这个地址含有数据群组标头。 
10.5.3.4EOF旗标 
EOF旗标是识别数据群组作为文件末尾的单个位。 
10.5.4FIT区块格式 
FIT范围映射到单个物理区块,其称为FIT区块。将这些区块中的更新版本的数据编程在共用更新区块中,其称为FIT更新区块。以一个页为单位更新数据。如果必要的话,可并行地更新元页内的多个页。 
10.5.4.1间接寻址 
通过FIT文件指针识别FIT文件。这个指针内的FIT文件编号字段是逻辑指针,其在FIT文件的数据在用于索引的物理结构内移动时保持恒定。物理页结构内的指针字段提供逻辑到物理指针转译。 
10.5.4.2页格式 
FIT区块和FIT更新区块中采用的页格式相同。 
将页再分为两个区域,第一区域用于FIT条目,且第二区域用于文件指针。图10-5中给出实例。 
第一区域含有多个FIT条目,其每一者指定数据群组或含有FIT文件的FIT标头。FIT页中的FIT条目的数目的实例是512。通过一组连续FIT条目来指定FIT文件,所述组FIT条目在一个FIT页内或者与两个或两个以上FIT页重叠。通过第二区域中的文件 指针来识别FIT文件的含有FIT标头的第一条目。 
第二区域只在最近编程的FIT页中含有有效文件指针。所有其它页中的第二区域是废弃的,且未使用。文件指针区域针对FIT区块中可能含有的每一FIT文件含有一个条目,也就是说,文件指针条目的数目等于FIT区块中可能存在的FIT文件的最大数目。根据FIT文件数目循序存储文件指针条目。第N个文件指针条目含有指向FIT区块内的FIT文件N的指针。其具有两个字段: 
1)页编号,其指定FIT区块内的物理页,和 
2)条目编号,其指定物理页内的FIT条目。 
文件指针条目提供用于将FIT区块内的逻辑FIT文件编号转译成区块内的物理位置的机制。当编程每个FIT页时更新整组文件指针,但是所述整组文件指针只在最近编程的页中有效。当在FIT更新区块中更新FIT文件时,其在FIT区块或FIT更新区块中的先前位置变成废弃的,且不再被文件指针参考。 
10.5.5FIT更新区块 
在所有FIT区块间共享的单个FIT更新区块中对FIT区块中的FIT文件作出改变。图10-6中展示物理FIT区块的实例。 
文件数据指针是指向FIT文件的逻辑指针。其FIT范围字段用来寻址FIT区块列表以识别映射到这个FIT范围的FIT区块的物理区块地址。接着,FIT文件指针的FIT文件编号字段为FIT区块中的目标FIT文件选择正确的文件指针。 
文件数据指针的FIT范围字段和FIT文件编号字段两者均用来寻址FIT更新区块列表,以识别目标FIT文件是否已经被更新。如果在这个列表中找到条目,那么其提供FIT更新区块的物理区块地址以及FIT文件的更新版本的更新区块内的FIT文件编号。这可能与用于FIT区块中的FIT文件的FIT文件编号不同。FIT更新区块含有FIT文件的有效版本,且FIT区块中的版本是废弃的。 
10.5.6更新操作 
只在合并操作期间编程FIT区块。这导致FIT文件在区块内紧密压缩。当修改、添加或移除FIT条目时或者在压缩操作期间,更新FIT更新区块。图10-7展示对FIT文件的更新操作的实例。 
由于合并操作的缘故,FIT文件在FIT区块中紧密压缩。FIT区块可能不是被完全填满,因为其内可存在的FIT文件具有最大数目。FIT文件可从一个页溢出到下一页。当更新FIT区块中的FIT文件或将其在FIT更新区块中复写时,所述FIT文件变成废弃的。 
当更新FIT文件时,将其完全复写在FIT更新区块中的下一可用页中。更新FIT文件可能由改变现有FIT条目的内容或改变FIT条目的数目组成。FIT文件可从一个页溢出到下一页。FIT更新区块内的FIT文件无需均与同一FIT范围有关。 
10.5.7创建FIT范围 
当必须创建新的FIT范围以便适应FIT文件的额外存储空间时,不立刻创建FIT区块。首先将这个范围内的新数据写入到FIT更新区块。随后当针对所述范围执行合并操作时创建FIT区块。 
10.5.8压缩与合并 
10.5.8.1压缩目录更新区块或FIT更新区块 
当FIT更新区块变得填满时,可将其有效FIT文件数据以压缩形式编程到擦除区块,所述擦除区块于是变成更新区块。如果更新只涉及到几个文件,那么可能只有少到一页压缩有效数据要编程。 
如果拟在压缩操作中重新定位的FIT文件涉及关闭文件,且所述范围的FIT区块含有充分的未编程页,那么可将FIT文件重新定位到FIT区块,而不是重新定位到压缩的更新区块。 
10.5.8.2  合并目录区块或FIT区块 
当更新FIT条目时,FIT区块中的原始FIT文件变成废弃的。此类FIT区块应当周期性地经受垃圾收集,以便恢复废弃空间。借助于合并操作来实现这一点。此外,可能已经在一个范围内创建了新文件,且所述新文件可能在更新区块中具有条目,但是可能在FIT区块中不存在相应的废弃条目。应当周期性地将此类FIT文件重新定位到FIT区块。 
可对于相关范围将更新区块中的FIT文件合并到FIT区块中,且因此从更新区块中消除所述FIT文件,而其它FIT文件保留在更新区块中。 
如果FIT文件中的FIT条目的数目已经在更新过程期间增加,且无法将FIT范围的有效数据合并到单个擦除区块中,那么可将原先指派给所述FIT范围的一些FIT文件指派给另一FIT范围,且可在单独操作中在两个区块中执行合并。在FIT文件的此种重新指派的情况下,必须对目录中的文件数据指针进行更新以反映新FIT范围。 
当FIT更新区块中的一个范围的有效数据的容量达到所定义的阈值时,应当执行针对所述范围的合并操作。这个阈值的实例是50%。 
对于涉及到仍然打开且主机可能继续存取的文件的活动FIT文件,应当优先于合并 而执行压缩。 
10.6信息表 
信息表使用与部分10.5中针对文件索引表所定义的相同的结构、索引机制和更新技术。然而,文件的文件_信息包括不在直接数据文件平台内解译的单串信息。 
10.7数据群组 
数据群组是一组具有文件的连续偏移地址的文件数据,其在单个存储器区块中的连续物理地址处编程。文件通常将被编程为多个数据群组。数据群组可具有介于一个字节与一个区块之间的任何长度。 
10.7.1数据群组标头 
每一数据群组均编程有标头,所述标头含有文件识别符信息以用于交叉参考目的。标头含有包括数据群组的文件的FIT文件指针。 
11.区块状态管理
11.1区块状态 
可将存储文件数据的区块分类成以下八种状态,如图11-1的状态图所示。 
11.1.1擦除区块 
擦除区块在擦除区块集区中具有擦除状态。从这个状态的可能转变如下: 
(a)擦除区块到编程区块 
当从主机供应单个文件的数据或者当在文件的垃圾收集期间复制所述文件的数据时,将所述数据编程到擦除区块。 
11.1.2编程区块 
编程区块中部分地编程有单个文件的有效数据,且含有一些擦除容量。所述文件可能是打开或关闭的。当主机供应文件的其它数据或者当在文件的垃圾收集期间复制所述文件的其它数据时,应当将所述数据编程到所述区块。 
从这个状态的可能转变如下: 
(b)编程区块到编程区块 
当从主机供应单个文件的数据时或者当在文件的垃圾收集期间复制所述文件的数据时,将所述数据编程到所述文件的编程区块。 
(c)编程区块到文件区块 
编程来自主机的单个文件的数据,以便填充所述文件的编程区块。 
(f)编程区块到废弃区块 
由于在垃圾收集期间将有效数据复制到另一区块或者由于主机删除文件的全部或一部分,所以编程区块中的文件的所有数据变成废弃的。 
(h)编程区块到废弃编程区块 
由于主机将数据的更新版本写入到编程区块或者由于主机删除文件的一部分,所以同一编程区块中的数据的一部分变成废弃的。 
(1)编程区块到共用区块 
在文件或共用区块的垃圾收集期间或者在编程区块合并期间,将所述文件的剩余数据编程到不同关闭文件的编程区块。 
11.1.3文件区块 
文件区块完全由单个文件的有效数据填充。 
从这个状态的可能转变如下: 
(d)文件区块到废弃的文件区块 
由于主机将数据的更新版本编程在文件的编程区块中,所以文件区块中的数据的一部分变成废弃的。 
(g)文件区块到废弃区块(g) 
由于主机将区块中的数据的更新版本编程在文件的编程区块中或者由于主机删除文件的全部或一部分,所以文件区块中的所有数据变成废弃的。 
11.1.4废弃的文件区块 
废弃的文件区块中填充有单个文件的有效数据与废弃数据的任意组合。 
从这个状态的可能转变如下: 
(e)废弃的文件区块到废弃区块(e) 
由于主机将区块中的有效数据的更新版本编程在文件的编程区块中、由于在垃圾收集期间将有效数据复制到另一区块或者由于主机删除文件的全部或一部分,所以废弃的文件区块中的所有数据变成废弃的。 
11.1.5废弃的编程区块 
废弃的编程区块中部分地编程有单个文件的有效数据与废弃数据的任意组合,且含有一些擦除容量。当主机供应文件的其它数据时,应当将所述数据编程到区块。然而,在垃圾收集期间,不应当将文件的数据复制到区块,且应当打开新的编程区块。 
从这个状态的可能转变如下: 
(i)废弃的编程区块到废弃的编程区块 
当从主机供应单个文件的数据时,将所述数据编程到所述文件的废弃编程区块。 
(j)废弃的编程区块到废弃区块 
由于在垃圾收集期间将有效数据复制到另一区块或者由于主机删除文件的全部或一部分,所以废弃的编程区块中的文件的所有数据变成废弃的。 
(k)废弃的编程区块到废弃的文件区块 
当从主机供应单个文件的数据时,将所述数据编程以填充所述文件的废弃的编程区块。 
11.1.6共用区块 
共用区块中编程有两个或两个以上文件的有效数据,且通常含有一些擦除容量。可在编程区块的垃圾收集或合并期间将任何文件的剩余数据编程到共用区块。 
从这个状态的可能转变如下: 
(m)共用区块到共用区块 
在文件或共用区块的垃圾收集期间或者在编程区块的合并期间,将文件的剩余数据编程到共用区块。 
(n)共用区块到废弃的共用区块 
由于主机将数据的更新版本编程在文件的编程区块中、由于在文件的垃圾收集期间将数据复制到另一区块或者由于主机删除文件的全部或一部分,所以共用区块中的一个文件的数据的一部分或全部变成废弃的。 
11.1.7废弃的共用区块 
废弃的共用区块中编程有两个或两个以上文件的有效数据与废弃数据的任意组合,且通常含有一些擦除容量。不应将其它数据编程到区块。 
从这个状态的可能转变如下: 
(o)废弃的共用区块到废弃区块 
由于主机将一个文件的数据的更新版本编程在文件的编程区块中、由于在文件的垃圾收集期间将一个文件的数据复制到另一区块或者由于主机删除一个文件的全部或一部分,所以废弃的共用区块中的所有文件的数据变成废弃的。 
11.1.8废弃区块 
废弃区块只含有废弃数据,但尚未被擦除。 
从这个状态的可能转变如下: 
(p)废弃区块到擦除区块(p) 
在垃圾收集期间擦除废弃区块,并将其添加回到擦除区块集区。 
12.擦除区块管理
12.1元区块链接 
将擦除区块链接到元区块中的方法与针对早先的第3代LBA系统定义的相比没有变化。 
12.2擦除区块集区 
擦除区块集区是装置中的可供分派以用于存储文件数据或控制信息的擦除区块的集区。集区中的每一擦除区块是元区块,且所有元区块具有相同的固定并行度。 
将集区中的擦除区块记录为控制区块中的擦除区块日志中的条目。根据区块的擦除次序将条目在日志中排序。将用于分派的擦除区块选为日志顶部处的条目。当擦除区块时将条目添加到日志尾部。 
13.控制数据结构
将控制数据结构存储在专用于所述用途的快闪区块中。如下定义三类区块: 
1)文件目录区块, 
2)文件索引表区块,和 
3)控制区块。 
13.1文件目录区块 
先前已经描述了文件目录区块的结构。 
13.2文件索引表区块 
先前已经描述了文件索引表的结构。 
13.3控制区块 
控制区块将控制信息存储在四个独立的日志中。针对每一日志分派单独的页。如果有必要的话,可将此延伸为每一日志多个页。图13-1中展示控制日志的实例性格式。 
通过在控制指针定义的下一擦除页位置处写入完整日志的修订版本来更新日志。如果有必要的话,可通过将多个日志编程到元页中的不同页来同时更新所述多个日志。通过控制区块中的最后写入的页中的日志指针来识别所述四个日志中每一者的有效版本的页位置。 
13.3.1共用区块日志 
共用区块日志记录关于装置中存在的每个共用区块的信息。将共用区块日志中的日志条目细分成两个区域,第一区域用于区块条目且第二条目用于数据群组条目,如图13-2 中说明的。每一区块条目记录共用区块的物理位置。条目具有固定大小,且在共用区块日志中存在固定数目。每一条目具有以下字段: 
1)区块物理地址; 
2)指向共用区块中用于编程的下一可用页的指针, 
3)指向区块的数据群组条目中的第一条目的指针,和 
4)数据群组条目的数目。 
数据群组条目记录关于共用区块中的数据群组的信息。一组连续数据群组条目定义共用区块中的所有数据群组。在共用区块中存在可变数目的数据群组。每一条目优选地具有以下字段: 
1)共用区块内的字节地址,和 
2)FIT文件指针。 
13.3.2编程区块日志 
编程区块日志记录关于装置中存在的用于关闭文件的每个编程区块的信息。针对每一编程区块存在一个条目,且条目具有以下字段: 
1)区块物理地址, 
2)指向编程区块中用于编程的下一可用页的指针,和 
3)FIT文件指针。 
13.3.3擦除区块日志 
擦除区块日志记录装置中存在的每个擦除区块的身份。针对每一擦除区块存在一个条目。根据区块的擦除次序将条目在日志中排序。将用于分派的擦除区块选作日志顶部处的条目。当擦除区块时,将条目添加到日志的尾部。条目具有单个字段:区块物理地址。 
13.3.4控制日志 
控制日志在以下字段中记录各种控制信息: 
13.3.4.1打开文件列表 
这个字段含有关于当前打开文件中每一者的信息,如下: 
1)路径名, 
2)文件名, 
3)FIT文件指针,和 
4)编程区块物理地址。 
编程区块日志中不包含打开文件的编程区块。 
13.3.4.2共用区块计数 
这个字段含有共用区块日志中记录的共用区块的总数。 
13.3.4.3编程区块计数 
这个字段含有编程区块日志中记录的编程区块的总数。当向编程区块日志添加区块或从中移除区块时更新所述计数。 
13.3.4.4擦除区块计数 
这个字段含有擦除区块日志中记录的擦除区块的总数。当向擦除区块日志添加区块或从中移除区块时更新所述计数。 
13.3.4.5编程/共用区块页计数 
这个字段含有编程区块和共用区块中的有效数据页的数目的计数。当向编程区块日志和共用区块日志添加区块或从中移除区块时更新所述计数。 
13.3.4.6废弃区块计数 
这个字段含有等待垃圾收集的完全废弃区块的数目的计数。当向废弃区块垃圾收集队列添加区块或从中移除区块时更新所述计数。 
13.3.4.7FIT区块列表 
这个字段含有用于将FIT范围映射到FIT区块的信息。其含有定义每一FIT范围的FIT区块物理地址的条目。 
13.3.4.8FIT更新区块列表 
这个字段含有用于将FIT范围和FIT文件编号映射到FIT更新文件编号的信息。其含有针对存在于更新区块中的每一有效FIT文件的条目。条目具有以下三个字段: 
1)FIT范围, 
2)FIT文件编号,和 
3)FIT更新文件编号。 
13.3.4.9目录区块列表 
这个字段含有用于将目录范围映射到目录区块的信息。其含有定义每一目录范围的目录区块物理地址的条目。 
13.3.4.10目录更新区块列表 
这个字段含有用于将目录范围和子目录编号映射到更新子目录编号的信息。其含有针对于存在于更新区块中的每一有效子目录的条目。条目具有以下三个字段: 
1)目录范围, 
2)子目录编号,和 
3)更新子目录编号。 
13.3.4.11缓冲器交换区块索引 
这个字段含有交换区块中的有效数据群组的索引。每一数据群组的索引含有以下字段: 
1)FIT文件指针, 
2)交换区块内的字节地址,和 
3)长度。 
13.3.4.12优先级废弃区块队列 
这个字段含有用于垃圾收集的优先级废弃区块队列中所有区块的区块地址。 
13.3.4.13优先级共用区块队列 
这个字段含有用于垃圾收集的优先级共用区块队列中所有区块的区块地址。 
13.3.4.14废弃区块队列 
这个字段含有用于垃圾收集的废弃区块队列中所有区块的区块地址。 
13.3.4.15共用区块队列 
这个字段含有用于垃圾收集的共用区块队列中所有区块的区块地址。 
13.3.4.16文件队列 
这个字段含有用于垃圾收集的文件队列中所有文件的FIT文件指针。 
14.静态文件
14.1静态文件 
有些主机可能通过创建一组具有相同大小的文件并在所述组中的文件内周期性地更新数据来在直接数据文件装置中存储数据。将作为此组的一部分的文件称为静态文件。主机可能在存储卡外部,或者可能是存储卡内的执行卡上应用程序的处理器。 
在与本申请案同时申请的Sergey Anatolievich Gorobets的题为“Interfacing systemsOperating Through A Logical Address Space and on a Direct Data File Basis”的专利申请案中描述了静态文件使用的实例性应用。在所述申请案中,通过存储器控制器将主机的逻辑地址空间划分成此类静态文件。 
直接数据文件装置以与针对其它任何文件的方式完全相同的方式管理静态文件的存储。然而,主机可以用静态文件优化装置的行为和性能的方式在直接数据文件命令集中 使用命令。 
14.1.1静态文件分区 
将静态文件作为一个组存储在装置中的专用分区中。分区中的所有静态文件具有相同的文件大小。 
14.1.2静态文件大小 
主机通过写入到文件的偏移地址范围来定义文件大小。静态文件的大小等于元区块的大小。 
主机管理写入_指针和读取_指针代表的文件偏移值,以便将其维持在始终对静态文件允许的值的范围内。 
14.1.3删除静态文件 
与直接数据文件装置中的其它文件不同,主机不在正常操作期间删除静态文件。静态文件由主机创建,接着在装置中连续存在。在任何时间写入到文件的数据均复写现有的文件数据。 
然而,主机始终有能力(例如)在主机重新格式化装置或减少装置中的静态文件分区大小的操作期间删除静态文件。 
14.2与静态文件一起使用的命令集 
图14-1给出用于与静态文件一起使用的命令集,在图2-1到2-6中展示了其中的一个子集,所述命令集支持静态文件所需的所有操作。 
14.3创建静态文件 
通过使用来自主机的创建命令在装置中创建静态文件。主机通常将指定其希望用来识别文件的文件ID。 
主机可追踪其已经在装置中创建了哪些文件,或者其可响应于在主机已经试图打开其文件ID在装置中尚不存在的文件之后来自装置的错误消息而创建文件。 
14.4打开静态文件 
主机通过使用文件的文件ID作为参数发送打开命令来打开静态文件。 
主机可用以下方式与装置中的所述组静态文件一起操作:其控制装置中同时打开的文件数目或在装置中同时打开的具有由主机定义的特定类型的文件的数目。主机可因此在打开另一静态文件之前关闭一个或一个以上静态文件。 
14.5对静态文件的写入 
当首次写入静态文件时,其占据装置中的单个完整的文件区块,因为主机将文件大 小定义为恰好等于快闪存储器中的元区块的大小。因此,文件的偏移地址范围恰好等于快闪存储器中的元区块的大小。 
对静态文件的随后写入导致在这个偏移地址范围内更新数据。主机通过借助于写入_指针命令控制文件的写入_指针值来控制正在更新数据的文件偏移地址。主机不允许写入_指针值超过与静态文件大小有关的偏移地址范围的末尾。类似地,主机将读取_指针值限制在这个范围内。 
当在已经打开文件之后更新静态文件中的现有数据时,打开向其编程更新数据的编程区块。文件区块中具有相应偏移地址的数据变成废弃的。如果更新了完整的静态文件,那么编程区块中的所有数据有效,且编程区块变成所述文件的文件区块。文件的先前文件区块中的所有数据已经变成废弃的,且将区块添加到废弃区块垃圾收集队列。如果针对文件接收到其它更新数据,那么将擦除区块指派为编程区块。 
如果静态文件的编程区块变满,但其不含有文件的所有有效数据,那么所述编程区块中的一些数据废弃,因为已经对同一偏移地址进行了多次更新。在此情况下,编程区块无法变成文件区块,且当接收到文件的其它数据时,不打开另一空编程区块。分派擦除区块,向其复制来自所述编程区块的有效数据(所述编程区块是压缩的),于是这个部分填充区块变成文件的编程区块。文件的先前编程区块中的所有数据现在是废弃的,且将所述区块添加到废弃区块垃圾收集队列。 
请注意,主机可通过如以下部分14.6中描述那样关闭文件来强制合并文件区块与编程区块,其中所述区块每一者均含有所述文件的一些有效数据。主机可选择在部分废弃的编程区块变满时临时关闭文件,而不是在接收到文件的其它数据时允许直接数据文件装置压缩编程区块。 
14.6关闭静态文件 
主机通过使用静态文件的文件ID作为参数发送关闭命令来关闭所述文件。 
如果文件的数据中只有一部分已经被更新,那么静态文件的关闭导致将文件放置到文件垃圾收集队列中。这允许如以下部分14.7中描述那样对文件进行后续垃圾收集操作。然而,也可如部分14.7中描述那样,主机可强制立刻对文件进行垃圾收集操作。 
14.7静态文件的垃圾收集 
已经在更新有条目处于文件垃圾收集队列中的静态文件中的一部分数据之后关闭了所述静态文件。所述文件的文件区块中含有一些有效数据和一些废弃数据,且编程区块含有一些有效数据,可能含有一些废弃数据,且可能含有一些擦除容量。 
文件垃圾收集操作将文件的所有有效数据合并到单个区块。如果编程区块不含有任何废弃数据,那么将有效数据从文件区块复制到编程区块,且擦除文件区块。如果编程区块含有废弃数据,那么将来自文件区块和编程区块两者的所有有效数据复制到擦除区块,且擦除文件区块和编程区块两者。 
当条目达到队列的顶部时,在垃圾收集调度算法确定的时间执行文件垃圾收集。然而,主机可在关闭文件时强制对文件立刻执行垃圾收集操作。主机通过在对文件的关闭命令之后立刻发送闲置命令来进行此操作,这导致装置连续执行垃圾收集或区块合并操作,直到接收到另一命令为止。主机在发送另一命令之前监视装置的内部繁忙状态,直到其检测到装置不再忙于执行内部操作为止。通过这种机制,主机可确保在关闭文件之后立刻对文件的文件区块和编程区块进行合并。 
根据以上描述的实例性存储器系统的概述
直接数据文件平台 
直接数据文件平台充当用于管理快闪存储器中的数据存储的通用后端系统。 
直接数据文件接口是支持多个数据来源的内部文件存储接口。 
具有对没有预定义长度的文件数据的随机读取/写入存取的文件存取接口。 
具有对有预定义长度的完整文件对象的传递的对象接口。 
与并入有文件系统的常规主机的LBA接口。将逻辑区块存储为逻辑文件。 
具有对文件内的数据的随机存取的嵌入式应用程序。 
直接数据文件存储是在逐文件基础上组织数据存储的后端系统。 
对存储装置没有逻辑地址空间。 
没有文件系统。 
直接数据文件与现有系统
直接数据文件平台提供优于现有系统的益处: 
高数据写入速度: 
消除了由于文件分裂引起的逐渐性能降低; 
当在后台操作中擦除主机所删除的文件时,可提高峰值数据写入速度。 
数据写入速度的一致性: 
当在后台或在与写入主机数据交错的突发中执行垃圾收集时,可改进用于流动数据的持续写入速度。 
益处是由于直接数据文件平台中所使用的算法的特性引起的: 
有限的文件分裂 
有限的文件和区块合并 
真实的文件删除 
最佳的文件数据索引 
高效的垃圾收集 
直接数据文件接口-理想的特征
直接数据文件接口应当独立于主机中的操作系统: 
在平坦的分级结构中管理具有数字识别符的文件; 
可存储与文件相关联的数据,以便允许在高于接口的级别处构造和维持分级目录。 
直接数据文件接口优选地支持各种格式的文件数据传递: 
大小未定义且可向其流动数据的文件; 
在被写入之前大小已被定义的文件; 
大小固定且永久存在的文件。 
直接数据文件接口-实施方案
文件内的数据具有随机写入和读取存取,其粒度为一个字节。 
可将数据附加、复写或插入在文件的现有数据内。 
将正被写入或读取的文件数据流动到装置或从中流出,其没有预定义长度。 
通过接收到另一命令来终止当前操作。 
打开文件以供写入数据,且在文件结束时或者当文件不活动时关闭文件。 
装置为主机所指定的文件返回文件句柄。 
支持但不维持分级目录。 
可存储文件的相关联信息。 
可通过主机起始其中装置可在后台执行内部操作的状态。 
直接数据文件接口-命令集
文件命令: 
用于控制文件对象的命令, 
创建、打开、关闭、删除、擦除、列举_文件。 
数据命令: 
用于写入和读取文件数据的命令, 
写入、插入、移除、读取、保存_缓冲器、写入_指针、读取_指针。 
信息命令: 
用于写入和读取与文件相关联的信息的命令, 
写入_信息、读取_信息、信息_写入_指针、信息_读取_指针。 
状态命令: 
用于控制装置状态的命令, 
闲置、待命、关机。 
装置命令: 
用于询问装置的命令, 
容量、状态。 
文件到快闪映射算法
数据结构: 
文件 
数据群组 
区块类型: 
编程区块 
文件区块 
共用区块 
文件类型: 
普通文件 
共用文件 
已编辑文件 
存储器恢复: 
垃圾收集 
区块合并 
文件到快闪映射算法-数据结构
文件: 
文件是一组由主机创建和维持的数据; 
主机可以是外部主机或者可以是存储卡内的应用程序; 
通过主机创建的文件名或通过直接数据文件平台创建的文件句柄来识别文件; 
通过文件偏移地址来识别文件内的数据; 
不同文件的偏移地址组充当装置内的独立逻辑地址空间。对于装置本身没有逻辑地址空间。 
数据群组: 
数据群组是单个文件的在文件内具有连续偏移地址的一组数据; 
数据群组存储在单个区块中的连续物理地址处; 
数据群组可具有介于一个字节与一个区块之间的任何长度; 
数据群组是用于将逻辑文件地址映射到物理快闪地址的基本单位。 
文件到快闪映射算法-区块类型
编程区块: 
将主机写入的所有数据编程在编程区块中; 
编程区块专用于单个文件的数据; 
编程区块中的文件数据的文件偏移地址可具有任何次序,且编程区块可含有文件的多个数据群组; 
针对每一打开文件和针对未指定数目的关闭文件存在单独的编程区块。 
文件区块: 
当已经编程了编程区块的最后位置时,所述编程区块变成文件区块。 
共用区块: 
共用区块含有一个以上文件的数据群组; 
通过在共用区块的垃圾收集期间或在区块合并操作期间将无关文件的数据群组编程到编程区块来创建共用区块; 
可在另一共用区块的垃圾收集期间或在区块合并操作期间将数据群组写入到共用区块。 
文件到快闪映射算法-文件类型
普通文件(见图3-1): 
普通文件包括任何数目的完整文件区块和一个部分写入的编程区块。 
可将普通文件删除,而无需在其擦除之前从任何区块重新定位数据。 
共用文件(见图3-2): 
共用文件包括任何数目的完整文件区块和一个共用区块,所述共用区块含有所述文件的数据连同其它无关文件的数据。 
在删除文件之后必须只对共用区块执行垃圾收集操作。 
已编辑文件(见图3-3和图3-4) 
由于现有偏移地址处的数据已经被复写,所以已编辑文件在其一个或一个以上区块中含有废弃数据。 
可通过文件垃圾收集操作来恢复废弃数据所占据的存储器容量。 
文件垃圾收集操作将已编辑文件复原成普通文件格式。 
文件到快闪映射算法-存储器恢复
垃圾收集: 
执行垃圾收集操作以恢复废弃数据所占据的存储器容量。 
将待决操作记录在垃圾收集队列中,并随后根据调度算法以最佳速率执行所述待决操作。 
可通过主机命令来起始垃圾收集,并在主机接口静止时在后台执行垃圾收集。在接收到其它任何主机命令后,暂停操作。 
也可作为前台操作在与主机数据写入操作交错的突发中执行垃圾收集。 
区块合并: 
可实施持续进行的区块合并过程,以便恢复编程区块和共用区块中锁定的擦除容量。 
只有在编程区块中的文件数据容量与共用区块中的删除文件的废弃数据容量的分布不平衡时才有必要。 
合并多个编程或共用区块中的数据以允许擦除一个或一个以上区块。 
编程文件数据
当由文件句柄识别的文件的数据遵循写入或插入命令从主机中流出时,将所述数据编程到快闪存储器。 
通过写入指针来定义数据的初始文件偏移地址,所述写入指针的值可由主机设置。 
当已经在缓冲存储器中积累了充分的数据时,在文件的编程区块中编程元页。 
当编程区块变得填满时,将其规定为文件区块,且将擦除区块分派为文件的新编程区块。 
每当编程区块变得填满时或者每当接收到另一主机命令时,在快闪存储器中更新数据群组索引结构。 
文件数据编程程序以自适应调度算法确定的主机数据流间隔来起始前台垃圾收集突发。 
当接收到另一主机命令时,退出文件数据编程程序。 
读取文件数据
遵循读取命令从快闪存储器中读取由文件句柄识别的文件的数据,并将其流动到主机。 
通过读取指针来识别数据的初始文件偏移地址,所述读取指针的值可由主机来设置。 
以一个元页为单位读取文件数据,直到达到文件末尾为止或直到接收到另一主机命令为止。 
以文件偏移地址次序将数据传递到主机。 
通过文件索引结构来定义拟针对文件读取的数据群组的位置。 
当接收到另一主机命令时,退出文件数据读取程序。 
删除文件
响应于对文件的删除命令,识别含有所述文件的数据的区块,并将其添加到垃圾收集队列以进行后续的垃圾收集操作。 
更新文件目录和文件索引表,以移除文件的条目。 
删除文件的程序并不起始垃圾收集操作,且不立刻擦除文件的数据。 
响应于对文件的擦除命令,遵循与删除命令相同的程序,但在执行其它任何主机命令之前起始并完成垃圾收集操作。 
垃圾收集
垃圾收集是用以恢复废弃数据所占据的快闪容量的操作。 
在装置操作期间不时地将对象添加到3个垃圾收集队列,以定义后续的垃圾收集操作: 
废弃区块队列-当区块由于更新文件数据或删除文件而变得完全废弃时,将其添加到这个队列。 
共用区块队列-当区块中的含有多个文件的数据的一部分中的数据由于文件数据更新、删除文件或对文件的垃圾收集而变成废弃的时,将其添加到这个队列。 
文件队列-当文件被主机关闭时,将其添加到这个队列。可针对优先级垃圾收集规定对象。 
可用两种方式调度垃圾收集操作: 
主机可在其不在对装置进行读取或写入存取时起始后台操作。 
直接数据文件平台可在其不正被主机存取时起始前台操作。 
垃圾收集-调度
通过主机起始后台垃圾收集。主机经由直接数据文件接口处的特定命令来起始闲置状态,在所述闲置状态中准许装置执行内部操作。在闲置状态持续的同时,对来自垃圾收集队列的对象的垃圾收集继续进行。当从主机接收到任何命令时暂停垃圾收集。主机可视情况监视装置的繁忙状态,以允许垃圾收集操作在发送下一命令之前完成。 
当主机尚未起始后台操作时,由直接数据文件平台起始前台垃圾收集。根据自适应算法来调度垃圾收集。当前垃圾收集操作的编程和擦除操作的突发与从主机接收到的文件数据的编程操作的突发交错。可以自适应方式控制突发的长度,以便定义交错垃圾收集的工作循环。 
垃圾收集-自适应调度(见图8-2)
快闪存储器通常具有用于写入其它主机数据所需的包含在编程区块、共用区块和废弃文件区块中的可恢复容量。 
自适应垃圾收集控制编程其它主机数据与重新定位先前写入的主机数据的交错率。通过将可恢复容量转换成擦除容量而使得所述容量可供新的主机数据使用。垃圾收集速率在自适应期间中保持恒定。 
垃圾收集-操作优先级
从具有以下优先级次序的垃圾收集队列中选择经调度垃圾收集的操作: 
1.废弃区块优先级垃圾收集: 
选择因文件擦除命令而创建的废弃区块的下一条目。 
2.共用区块优先级垃圾收集: 
选择因文件擦除命令而创建的部分废弃共用区块的下一条目。 
3.废弃区块垃圾收集: 
选择废弃区块的下一条目。 
4.共用区块垃圾收集: 
选择部分废弃共用区块的下一条目。 
5.文件垃圾收集: 
选择部分废弃文件的下一条目。 
6.区块合并: 
当垃圾收集队列中不存在条目时,针对区块合并操作选择来源区块和目的地区块。 
垃圾收集-共用区块垃圾收集
有效文件在编程区块或共用区块中含有一些数据。 
当删除文件时,任何含有所述文件的废弃数据的共用区块均经历共用区块垃圾收集操作。 
将无关文件的数据群组重新定位到另一共用区块或编程区块(见图8-7A到图8-7D)。 
在共用区块垃圾收集操作期间,将有效文件群组从来源共用区块重新定位到一个或一个以上选定的目的地区块。 
针对每一文件群组单独选择目的地区块。 
用于选择目的地区块的优先级如下: 
1.具有作为拟重新定位的来源文件群组的最佳匹配的可用擦除容量的共用区块; 
2.具有作为拟重新定位的来源文件群组的最佳匹配的可用擦除容量的编程区块;和 
3.擦除区块,其接着被规定为编程区块。 
垃圾收集-文件垃圾收集
可在已经关闭文件之后执行文件垃圾收集,以恢复文件的废弃数据所占据的容量。这只有在所述文件的数据已经在编辑期间被复写的情况下才是必要的。 
将已编辑普通文件状态或已编辑共用文件状态下的文件复原成普通文件状态(含有单个编程区块且不含有共用区块)。 
通过将有效数据群组从含有废弃数据的区块复制到文件的编程区块来执行文件垃圾收集。 
遵循初始编程指针从偏移地址开始以循序次序复制数据群组,且在文件末尾处绕回。 
垃圾收集-区块合并
在区块合并操作期间,将有效文件群组从选定来源区块重新定位到一个或一个以上选定的目的地区块。 
将来源区块选作具有最低数据容量的共用区块或编程区块。 
针对每一文件群组单独选择目的地区块。 
用于选择目的地区块的优先级如下: 
1.具有拟重新定位的来源文件群组的最佳匹配的可用擦除容量的共用区块。 
2.具有拟重新定位的来源文件群组的最佳匹配的可用擦除容量的编程区块。 
3.具有最高可用擦除容量的编程区块或共用区块,向其写入文件群组的一部分。在此情形下,可准许文件与其它无关文件共享两个区块。 
4.具有来源文件群组的剩余部分的最佳匹配的可用擦除容量的第二编程区块或共用区块,向其写入文件群组的剩余部分。 
5.随后规定为编程区块的擦除区块,向其写入文件群组的剩余部分。 
文件索引(见图10-1)
通过在主机创建文件时由直接数据文件装置分派的文件ID来识别文件。 
平坦目录针对每一文件ID指定文件数据指针和文件信息指针。 
文件数据指针识别文件索引表中的一组条目,其中每一条目指定所述组所涉及的用于文件的数据群组。 
文件信息指针识别信息表中的一串文件信息: 
文件_信息由主机写入且不由直接数据文件装置解译。 
文件_信息可包含文件的文件名、父目录、子目录、属性、权利信息和文件关联。 
文件索引-索引结构
见图10-2 
文件索引-文件索引表(FIT)-见图10-4
FIT含有快闪存储器中的所有用于文件的有效数据群组的条目。不通过FIT来索引废弃的数据群组。 
将FIT划分成多个逻辑范围,其中每一者映射到物理区块。 
FIT文件是文件的一组具有文件偏移地址次序的连续条目。 
通过FIT文件指针来识别FIT文件,所述FIT文件指针定义物理区块和逻辑文件编号。 
文件索引-更新文件索引(见图10-6和图10-7)
针对文件索引表和信息表使用相同结构。 
使用区块列表将逻辑文件数据指针与物理FIT区块或FIT更新区块内的FTI文件联系起来。 
FIT文件以压缩格式存储在FIT区块中。 
FIT文件的更新版本存储在共享FIT更新区块中,其中页中具有单个FIT文件。 
不时地执行FIT更新区块的压缩和FIT区块中的FIT文件合并。 
文件索引-索引页格式(见图10-5)
针对FIT区块、FIT更新区块、信息区块和信息更新区块使用相同结构。以一个页为单位编程信息。 
将页细分为两个区域,用于FIT条目和文件指针。 
文件指针将一个范围内的逻辑文件编号转译成相应FIT文件的开头的页编号和条目 编号。 
FIT文件包括物理上连续的FIT条目。 
数据缓冲和编程
在一组扇区缓冲器中缓冲由主机写入或正在快闪存储器内重新定位的数据。 
数据群组边界的分辨率是一个字节,但将数据以一个扇区的倍数传递到快闪和从快闪中传递出来,以用于ECC产生和检验。 
在可能的情况下,以元页为单位在快闪中编程来自缓冲器的数据。 
当关闭文件或关机正在迫近时,缓冲器清洗操作只编程页的一部分。文件索引技术允许页的未编程部分持续。 
缓冲器换出操作允许将缓冲器中的文件数据临时存储在共用交换区块中,以用于管理缓冲器空间和缓冲器中的数据备份。 
将编程区块或共用区块中的文件群组的开头与元页的开头对准。 
可针对快闪中的大多数数据重新定位使用芯片上复制。 
区块状态管理
直接数据文件系统维持与数据存储相关联的的八种区块状态(见图11-1)。 
擦除区块管理
直接数据文件在固定大小的元区块中存储文件的所有数据和所有控制信息。(术语“区块”通常用来表示“元区块”。) 
将擦除区块链接到区块中的方法与以下待决美国专利申请案中描述的在具有逻辑地址空间(LBA)接口的系统中使用的方法相同:2003年12月30日申请的题为“Managementof Non-Volatile Memory Systems Having Large Erase Blocks”的第10/749,831号;2003年12月30日申请的题为“Non-Volatile Memory and Method with Block Management System”的第10/750,155号;2004年8月13日申请的题为“Non-Volatile Memory and Method withMemory Planes Alignment”的第10/917,888号;2004年8月13日申请的第10/917,867号;2004年8月13日申请的题为“Non-Volatile Memory and Method with Phased ProgramFailure Handling”的第10/917,889号;2004年8月13日申请的题为“Non-Volatile Memoryand Method with Control Data Management”的第10/917,725号;2005年7月27日申请的题为“Non-Volatile Memory and Method with Multi-Stream Update Tracking”的第11/192,200号;2005年7月27日申请的题为“Non-Volatile Memory and Method withImproved Indexing for Scratch Pad and Update Blocks”的第11/192,386号;以及2005年7 月27日申请的题为“Non-Volatile Memory and Method with Multi-Stream Updating”的第11/191,686号。 
可供分派以用于存储数据或控制信息的擦除区块保持在擦除区块集区中。 
将擦除区块记录为擦除区块日志中的条目。 
将用于分派的擦除区块选为日志项部处的条目。 
当擦除区块时,将条目添加在日志尾部处。 
控制数据结构
将控制数据结构存储在专用控制区块中。 
将控制信息存储在四个独立日志中。每一日志占据控制区块中的一个或一个以上页。通过最后写入的页中的日志指针来追踪有效的日志页。 
共用区块日志含有快闪存储器中存在的所有共用区块的条目,按其含有的可用擦除容量排序。 
编程区块日志含有快闪存储器中存在的所有编程区块的条目,按其含有的可用擦除容量排序。 
擦除区块日志含有快闪存储器中存在的所有擦除区块的条目,按其擦除顺序排序。 
控制日志含有控制参数、计数和列表的预定义字段。 
通过在控制区块中的下一擦除页位置处写入完整日志的修订版本来更新日志。 

Claims (16)

1. 一种用于可重新编程的非易失性存储器系统的操作方法,所述存储器系统具有多个在将数据写入其中之前被分别擦除的存储器单元区块,且其以最小数目的准备好在其中存储数据的擦除区块的库存进行操作,所述方法包括:
接收通过唯一文件识别符和文件内的偏移量来逻辑寻址的数据;
将第一文件的所接收数据存储为所述擦除区块中的一者或一者以上内的页,所述页只部分填充所述擦除区块中的一者,进而在所述部分填充区块内留下擦除数据存储容量;以及
推迟将来自所述部分填充区块的有效数据与第二文件的有效数据合并到所述擦除区块的另一者中,直到至少认定所述数目的擦除区块的库存不足以维持所述最小数目为止。
2. 根据权利要求1所述的方法,其另外包括:响应于对提供另一擦除区块的需要,将来自所述第一文件和第二文件的有效数据合并到所述擦除区块的另一者中,且此后擦除至少所述部分填充区块,借此以将另一擦除区块添加到所述库存。
3. 根据权利要求1所述的方法,其另外包括:响应于接收到用以删除所述第一文件的命令,将所述第一文件在至少所述部分填充区块中的所有所述数据标记为废弃的,进而消除来自所述第一文件的在至少所述部分填充区块中的任何有效数据,借此不必对所述第一文件的在所述部分填充区块中的数据进行合并。
4. 根据权利要求1所述的方法,其另外包括:维持多个识别组成所述第一文件的可变量数据群组的记录,其中所述各个群组具有数据在所述群组内的连续逻辑偏移地址和连续物理地址两者。
5. 一种可重新编程的非易失性存储器系统的操作方法,所述存储器系统具有多个在将数据写入其中之前被分别擦除的存储器单元区块,且其接收具有唯一文件识别符的逻辑地址和各个文件内的偏移量的数据,其中:
不时地将来自第一群组的部分编程有两个或两个以上文件的数据的两个或两个以上区块的有效数据合并到另一区块中;
不时地对含有来自第二群组的还含有废弃数据的区块的有效数据的一个或一个以上区块进行垃圾收集;
一次只执行所述数据合并或垃圾收集中的一者;且
将优先级给予垃圾收集而不是数据合并。
6. 一种可重新编程的非易失性存储器系统的操作方法,所述存储器系统具有多个在将数据写入其中之前被分别擦除的存储器单元区块,且其接收具有唯一文件识别符的逻辑地址和各个文件内的偏移量的数据,其中:
以至少第一文件的数据可只部分填充第一区块且进而在所述第一区块中留下擦除存储容量的方式,将各个文件的所接收数据编程到一个或一个以上擦除区块中;
对所述存储器系统内的数据的后续操作导致第二文件的存储在第二区块中的至少一些数据变成废弃的;
响应于所述第二文件的在所述第二区块中的至少一些所述数据变成废弃的,将所述第二区块中的任何剩余有效数据复制到第三区块中;
响应于所述第一区块具有擦除存储容量,将有效数据从所述第一区块复制到第四区块中;且
将优先级给予上述将有效数据从所述第二区块复制到所述第三区块中,而不是上述将有效数据从所述第一区块复制到所述第四区块中。
7. 根据权利要求6所述的方法,其中所述第三或第四区块中的至少一者是向其中写入所述复制数据的擦除区块。
8. 根据权利要求6所述的方法,其中所述第三或第四区块中的至少一者在所述复制数据被写入其中的时候含有第三文件的数据。
9. 根据权利要求6所述的方法,另外其中维持多个识别组成所述各个文件的可变量数据群组的记录,其中所述群组分别具有数据在所述群组内的连续逻辑偏移地址和连续物理地址两者。
10. 一种可重新编程的非易失性存储器系统,其具有多个在将数据写入其中之前被分别擦除的存储器单元区块,其中:
维持最小数目的准备好在其中存储数据的擦除区块的库存;
通过将第一文件的所接收数据存储为所述擦除区块中的一者或一者以上内的页而将通过唯一文件识别符和文件内的偏移量在逻辑上寻址的文件的数据存储在所述存储器区块中,其中所述页只部分填充所述擦除区块中的一者,进而在所述部分填充区块内留下擦除数据存储容量;且
推迟将来自所述部分填充区块的有效数据与第二文件的有效数据合并到所述擦除区块的另一者中,直到至少认定所述数目的擦除区块的库存不足以维持所述最小数目为止。
11. 根据权利要求10所述的存储器系统,进一步其中响应于对提供另一擦除区块的需要,将来自所述第一文件和第二文件的有效数据合并到所述擦除区块的另一者中,且此后擦除至少所述部分填充区块,进而将另一擦除区块添加到所述库存。
12. 根据权利要求10所述的存储器系统,进一步其中响应于接收到用以删除所述第一文件的命令,将所述第一文件的在至少所述部分填充区块中的所有所述数据标记为废弃的,进而消除来自所述第一文件的在至少所述部分填充区块中的任何有效数据,借此不必对所述第一文件的在所述部分填充区块中的数据进行合并。
13. 一种可重新编程的非易失性存储器系统,其具有多个在将数据写入其中之前被分别擦除的存储器单元区块,其中:
接受具有唯一文件识别符的逻辑地址和各个文件内的偏移量的数据;
不时地将来自第一群组的部分编程有两个或两个以上文件的数据的两个或两个以上区块的有效数据合并到另一区块中;
不时地对含有来自第二群组的还含有废弃数据的区块的有效数据的一个或一个以上区块进行垃圾收集;
一次只执行所述数据合并或垃圾收集中的一者;且
将优先级给予垃圾收集而不是数据合并。
14. 一种可重新编程的非易失性存储器系统,其具有多个在将数据写入其中之前被分别擦除的存储器单元区块,其中:
接受具有唯一文件识别符的逻辑地址和各个文件内的偏移量的数据;
以至少第一文件的数据可只部分填充第一区块且进而在所述第一区块中留下擦除存储容量的方式,将各个文件的所接收数据编程到一个或一个以上擦除区块中;
对所述存储器系统内的数据的后续操作导致第二文件的存储在第二区块中的至少一些数据变成废弃的;
响应于所述第二文件的在所述第二区块中的至少一些所述数据变成废弃的,将所述第二区块中的任何剩余有效数据复制到第三区块中;
响应于所述第一区块具有擦除存储容量,将有效数据从所述第一区块复制到第四区块中;且
将优先级给予上述将有效数据从所述第二区块复制到所述第三区块中,而不是上述将有效数据从所述第一区块复制到所述第四区块中。
15. 根据权利要求14所述的存储器系统,其中在所述第三或第四区块中的至少一者是擦除区块时将所述复制数据写入到所述第三或第四区块中的所述至少一者中。
16. 根据权利要求14所述的存储器系统,其中在所述复制数据被写入其中的时候,第三文件的数据包含在所述第三或第四区块中的至少一者中。
CN2006800284045A 2005-08-03 2006-08-01 直接数据文件存储存储器中的数据合并和垃圾收集 Expired - Fee Related CN101258473B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70538805P 2005-08-03 2005-08-03
US60/705,388 2005-08-03
PCT/US2006/030242 WO2007019220A2 (en) 2005-08-03 2006-08-01 Data consolidation and garbage collection in direct data file storage memories

Publications (2)

Publication Number Publication Date
CN101258473A CN101258473A (zh) 2008-09-03
CN101258473B true CN101258473B (zh) 2012-05-30

Family

ID=37402587

Family Applications (7)

Application Number Title Priority Date Filing Date
CN2006800360852A Active CN101278267B (zh) 2005-08-03 2006-08-01 具有经调度回收操作的非易失性存储器
CN2006800284045A Expired - Fee Related CN101258473B (zh) 2005-08-03 2006-08-01 直接数据文件存储存储器中的数据合并和垃圾收集
CN2006800348564A Active CN101288045B (zh) 2005-08-03 2006-08-01 增强型主机接口
CN2006800281668A Expired - Fee Related CN101233480B (zh) 2005-08-03 2006-08-01 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统
CNA2006800283184A Pending CN101233499A (zh) 2005-08-03 2006-08-01 回收快闪存储器系统中的数据存储容量
CN200680028197.3A Expired - Fee Related CN101233498B (zh) 2005-08-03 2006-08-01 快闪存储器中利用直接数据文件存储的数据操作
CN200680028003XA Expired - Fee Related CN101233479B (zh) 2005-08-03 2006-08-01 直接存储数据文件的存储器区块的管理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2006800360852A Active CN101278267B (zh) 2005-08-03 2006-08-01 具有经调度回收操作的非易失性存储器

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN2006800348564A Active CN101288045B (zh) 2005-08-03 2006-08-01 增强型主机接口
CN2006800281668A Expired - Fee Related CN101233480B (zh) 2005-08-03 2006-08-01 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统
CNA2006800283184A Pending CN101233499A (zh) 2005-08-03 2006-08-01 回收快闪存储器系统中的数据存储容量
CN200680028197.3A Expired - Fee Related CN101233498B (zh) 2005-08-03 2006-08-01 快闪存储器中利用直接数据文件存储的数据操作
CN200680028003XA Expired - Fee Related CN101233479B (zh) 2005-08-03 2006-08-01 直接存储数据文件的存储器区块的管理

Country Status (7)

Country Link
US (12) US7409489B2 (zh)
EP (2) EP1920337A2 (zh)
JP (2) JP4537482B2 (zh)
KR (2) KR20080038364A (zh)
CN (7) CN101278267B (zh)
TW (6) TWI421684B (zh)
WO (2) WO2007019174A2 (zh)

Families Citing this family (531)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7934064B1 (en) * 2004-12-21 2011-04-26 Acronis Inc. System and method for consolidation of backups
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
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
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
JP2006350476A (ja) * 2005-06-13 2006-12-28 Sony Computer Entertainment Inc コンテンツ配信装置およびシステム
US8321953B2 (en) * 2005-07-14 2012-11-27 Imation Corp. Secure storage device with offline code entry
US8438647B2 (en) * 2005-07-14 2013-05-07 Imation Corp. Recovery of encrypted data from a secure storage device
US8015606B1 (en) 2005-07-14 2011-09-06 Ironkey, Inc. Storage device with website trust indication
US8335920B2 (en) * 2005-07-14 2012-12-18 Imation Corp. Recovery of data access for a locked secure storage device
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
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
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
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
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US20070116023A1 (en) * 2005-11-23 2007-05-24 Broadcom Corporation Method and apparatus for dynamically configuring a generic processing module
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US20070136553A1 (en) * 2005-12-13 2007-06-14 Sinclair Alan W Logically-addressed file storage systems
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US8639873B1 (en) 2005-12-22 2014-01-28 Imation Corp. Detachable storage device with RAM cache
US8266378B1 (en) 2005-12-22 2012-09-11 Imation Corp. Storage device with accessible partitions
US7818726B2 (en) * 2006-01-25 2010-10-19 Microsoft Corporation Script-based object adaptation
US7454587B1 (en) * 2006-02-06 2008-11-18 Xilinx, Inc. Method and apparatus for memory management in an integrated circuit
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
US20070233752A1 (en) * 2006-03-30 2007-10-04 Kiran Bangalore Method and apparatus to reclaim nonvolatile memory space
US7469329B2 (en) 2006-03-30 2008-12-23 International Business Machines Corporation Methods for dynamically resizing memory pools
JP4135747B2 (ja) * 2006-04-06 2008-08-20 ソニー株式会社 データ処理装置及びフラッシュメモリへのアクセス方法
US8176249B2 (en) * 2006-05-21 2012-05-08 Amiram Grynberg Methods for embedding session secrets, within application instances
DE102006025133A1 (de) * 2006-05-30 2007-12-06 Infineon Technologies Ag Speicher- und Speicherkommunikationssystem
US20070300031A1 (en) * 2006-06-22 2007-12-27 Ironkey, Inc. Memory data shredder
US8429242B1 (en) * 2006-06-26 2013-04-23 Emc Corporation Methods and apparatus for providing content
JP2008009803A (ja) * 2006-06-30 2008-01-17 Sony Corp 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体
US20080010323A1 (en) * 2006-07-06 2008-01-10 An Chen Computer Co., Ltd. Method for duplicating data
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
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
US8949555B1 (en) * 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
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
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
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
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
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
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
US8209605B2 (en) * 2006-12-13 2012-06-26 Pado Metaware Ab Method and system for facilitating the examination of documents
EP1939751A1 (en) * 2006-12-22 2008-07-02 Telefonaktiebolaget LM Ericsson (publ) Storing compressed data
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
KR101464199B1 (ko) 2006-12-26 2014-11-21 샌디스크 테크놀로지스, 인코포레이티드 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US20080177782A1 (en) * 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
KR100825802B1 (ko) * 2007-02-13 2008-04-29 삼성전자주식회사 기입 데이터의 논리적 페이지보다 이전 논리적 페이지들을가지는 데이터들을 데이터 블록으로부터 복사하는 불휘발성메모리 장치의 데이터 기입 방법
US7639540B2 (en) * 2007-02-16 2009-12-29 Mosaid Technologies Incorporated Non-volatile semiconductor memory having multiple external power supplies
KR100875294B1 (ko) * 2007-03-16 2008-12-23 삼성전자주식회사 프로그래밍시 블럭단위의 상태 레지스터를 확인하는 플래시메모리와 그 방법
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
US20080235480A1 (en) * 2007-03-21 2008-09-25 Shai Traister Systems for storing memory operations in a queue
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
DE102007015535A1 (de) * 2007-03-30 2008-10-02 Siemens Ag Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
US8768898B1 (en) * 2007-04-26 2014-07-01 Netapp, Inc. Performing direct data manipulation on a storage device
US9785549B2 (en) 2007-04-27 2017-10-10 Microsoft Technology Licensing, Llc Managing object lifetime for native/managed peers
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
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
US7882301B2 (en) 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
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
US8041847B1 (en) 2007-05-10 2011-10-18 Marvell International Ltd. Periodic and conditional execution of DMA operations
US8010507B2 (en) * 2007-05-24 2011-08-30 Pado Metaware Ab Method and system for harmonization of variants of a sequential file
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
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
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
WO2009001514A1 (ja) * 2007-06-22 2008-12-31 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
TWI369633B (en) * 2007-06-27 2012-08-01 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
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
US20090006506A1 (en) * 2007-06-28 2009-01-01 Nokia Corportion Method and system for garbage collection of native resources
US7822791B2 (en) * 2007-06-28 2010-10-26 Intel Corporation Method and apparatus for flash memory reclaim
US8201188B2 (en) * 2007-09-20 2012-06-12 Microsoft Corporation Device-hosted services over media transfer protocol
US7805632B1 (en) * 2007-09-24 2010-09-28 Net App, Inc. Storage system and method for rapidly recovering from a system failure
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
US8316277B2 (en) 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
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
EP2240867A4 (en) * 2007-12-13 2011-02-09 Redknee Inc METHOD AND SYSTEM FOR STORAGE
US9032154B2 (en) * 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
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
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US20090228716A1 (en) * 2008-02-08 2009-09-10 Pado Metawsre Ab Method and system for distributed coordination of access to digital files
US9060046B2 (en) * 2008-02-18 2015-06-16 Google Technology Holdings LLC Method and apparatus for transferring media data between devices
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
TWI385520B (zh) * 2008-02-29 2013-02-11 Via Tech Inc 儲存單元管理方法及系統
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
JP4675985B2 (ja) 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
WO2009109877A1 (en) * 2008-03-04 2009-09-11 Nxp B.V. Mobile communication device and method for implementing mifare memory multiple sectors mechanisms
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP2009230205A (ja) * 2008-03-19 2009-10-08 Toshiba Corp メモリシステム
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
WO2009137371A2 (en) * 2008-05-02 2009-11-12 Ironkey, Inc. Enterprise device recovery
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
RU2488888C2 (ru) 2008-06-24 2013-07-27 Эн-Экс-П Б.В. Способ доступа к приложениям в защищенной мобильной среде
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20090327581A1 (en) * 2008-06-30 2009-12-31 Coulson Richard L Nand memory
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
US8281062B2 (en) * 2008-08-27 2012-10-02 Sandisk Il Ltd. Portable storage device supporting file segmentation and multiple transfer rates
TWI399651B (zh) * 2008-09-12 2013-06-21 Communication protocol method and system for input / output device
US20100070544A1 (en) * 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US7953774B2 (en) * 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
CN101685381B (zh) 2008-09-26 2013-07-24 美光科技公司 固态大容量存储装置的数据串流
US8205203B2 (en) * 2008-10-16 2012-06-19 International Business Machines Corporation Scheduling for real-time garbage collection
US8429658B2 (en) * 2008-10-16 2013-04-23 International Business Machines Corporation Lock deferral for real-time garbage collection
CN101727398B (zh) * 2008-10-31 2012-07-11 西安奇维测控科技有限公司 经信息序列化实现闪存控制器管理数据存储与还原的方法
JP5364340B2 (ja) * 2008-11-07 2013-12-11 株式会社ケーヒン バックアップ方法及び装置並びに車両用電子制御装置
US8341311B1 (en) 2008-11-18 2012-12-25 Entorian Technologies, Inc System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface
KR101469771B1 (ko) * 2008-12-03 2014-12-08 삼성전자주식회사 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법
US8849856B2 (en) * 2008-12-16 2014-09-30 Sandisk Il Ltd. Discardable files
US20120173593A1 (en) * 2008-12-16 2012-07-05 Fabrice Jogand-Coulomb System and Method for Managing Discardable Objects
US9104686B2 (en) * 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
JP5268617B2 (ja) * 2008-12-17 2013-08-21 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びコンピュータプログラム
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8327040B2 (en) 2009-01-26 2012-12-04 Micron Technology, Inc. Host controller
US8386723B2 (en) * 2009-02-11 2013-02-26 Sandisk Il Ltd. System and method of host request mapping
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US9098396B2 (en) * 2009-02-13 2015-08-04 Sandisk Il Ltd. Enhancement of efficiency in power failure handling in flash memory
KR20100094241A (ko) * 2009-02-18 2010-08-26 삼성전자주식회사 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US20100228906A1 (en) * 2009-03-06 2010-09-09 Arunprasad Ramiya Mothilal Managing Data in a Non-Volatile Memory System
WO2010103760A1 (ja) * 2009-03-13 2010-09-16 パナソニック株式会社 アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
EP2425324A1 (en) 2009-04-27 2012-03-07 Kamlesh Gandhi Description
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8504759B2 (en) * 2009-05-26 2013-08-06 Micron Technology, Inc. Method and devices for controlling power loss
TWI455133B (zh) * 2009-05-26 2014-10-01 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
DE112009004900T5 (de) * 2009-06-10 2012-08-16 Micron Technology, Inc. Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
CN102576330B (zh) 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
JP5254141B2 (ja) * 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
CN102473188B (zh) * 2009-07-27 2015-02-11 国际商业机器公司 用于转换存储的逻辑数据对象的方法和系统
US8745365B2 (en) * 2009-08-06 2014-06-03 Imation Corp. Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system
US8683088B2 (en) * 2009-08-06 2014-03-25 Imation Corp. Peripheral device data integrity
US9772791B2 (en) * 2009-08-27 2017-09-26 International Business Machines Corporation Dispersed storage processing unit and methods with geographical diversity for use in a dispersed storage system
WO2011031796A2 (en) 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
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
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8234250B1 (en) * 2009-09-17 2012-07-31 Netapp. Inc. Processing data of a file using multiple threads during a deduplication gathering phase
TWI506422B (zh) * 2009-09-23 2015-11-01 Silicon Motion Inc 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器
US8364929B2 (en) * 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8745353B2 (en) * 2009-10-23 2014-06-03 Seagate Technology Llc Block boundary resolution for mismatched logical and physical block sizes
US8635422B1 (en) * 2009-10-29 2014-01-21 Symantec Corporation Systems and methods for reclaiming storage space from deleted volumes on thin-provisioned disks
US8140740B2 (en) * 2009-10-29 2012-03-20 Hewlett-Packard Development Company, L.P. Data defragmentation of solid-state memory
US8549223B1 (en) 2009-10-29 2013-10-01 Symantec Corporation Systems and methods for reclaiming storage space on striped volumes
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
JP5593682B2 (ja) * 2009-11-17 2014-09-24 セイコーエプソン株式会社 プリンター、プリンターの制御方法、及び、プログラム
TWI423024B (zh) * 2009-11-23 2014-01-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及其控制器與儲存系統
DE112010004667T5 (de) * 2009-12-03 2013-01-17 Hitachi, Ltd. Speichervorrichtung und Speichersteuerung
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
CN101799820B (zh) * 2010-02-08 2013-03-20 深圳市同洲电子股份有限公司 闪存、文件系统挂载方法及装置、数据管理方法及装置
JP2011192260A (ja) * 2010-02-16 2011-09-29 Toshiba Corp 半導体記憶装置
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
JP2011209973A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム
US10013252B2 (en) * 2010-04-16 2018-07-03 Oracle International Corporation Software development compliance system
US8782327B1 (en) * 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
TW201140315A (en) * 2010-05-11 2011-11-16 Jmicron Technology Corp Method for estimating capacity usage status of storage unit, and associated memory device and controller thereof
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8683148B2 (en) * 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8369156B2 (en) 2010-07-13 2013-02-05 Sandisk Technologies Inc. Fast random access to non-volatile storage
CN101901263A (zh) * 2010-07-22 2010-12-01 华为终端有限公司 文件系统的访问方法及装置
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. 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
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
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
JP5569936B2 (ja) * 2010-08-11 2014-08-13 国立大学法人 東京大学 制御装置およびデータ記憶装置
US8468007B1 (en) * 2010-08-13 2013-06-18 Google Inc. Emulating a peripheral mass storage device with a portable device
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
CN102455973A (zh) * 2010-10-19 2012-05-16 厦门华侨电子股份有限公司 一种利用Flash芯片剩余空间设置数据区擦写数据的方法
CN102004697B (zh) * 2010-10-21 2012-09-19 北京握奇数据系统有限公司 一种Flash的回收方法和装置
CN102467522B (zh) * 2010-11-10 2013-09-11 中兴通讯股份有限公司 一种基于nand闪存的文件系统的自编程方法及装置
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
KR20120088454A (ko) * 2011-01-31 2012-08-08 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for 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
US9575842B2 (en) * 2011-02-24 2017-02-21 Ca, Inc. Multiplex backup using next relative addressing
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8621328B2 (en) 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance
US8972696B2 (en) 2011-03-07 2015-03-03 Microsoft Technology Licensing, Llc Pagefile reservations
FR2965079A1 (fr) * 2011-03-15 2012-03-23 Continental Automotive France Procede de gestion d'une memoire non volatile
US8661221B2 (en) * 2011-03-16 2014-02-25 International Business Machines Corporation Leasing fragmented storage between processes
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
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
US9311229B2 (en) * 2011-03-29 2016-04-12 Blackberry Limited System and method for managing flash memory
CN102736985B (zh) * 2011-03-30 2015-10-14 群联电子股份有限公司 数据合并方法、控制器与储存装置
US9009438B2 (en) 2011-06-01 2015-04-14 International Business Machines Corporation Space reclamation in multi-layered and thin provisioned storage systems
US9449692B2 (en) 2011-08-03 2016-09-20 Micron Technology, Inc. Functional data programming and reading in a memory
JP4988054B2 (ja) * 2011-08-12 2012-08-01 株式会社東芝 メモリシステム
CN102508784B (zh) * 2011-11-02 2015-01-07 杭州海康威视数字技术股份有限公司 视频监控设备中闪存卡的数据存储方法及其系统
KR101298191B1 (ko) 2011-11-04 2013-08-20 에스케이하이닉스 주식회사 반도체 메모리 장치, 이를 위한 연속 프로그램 제어 회로 및 프로그램 방법
US8832411B2 (en) * 2011-12-14 2014-09-09 Microsoft Corporation Working set swapping using a sequentially ordered swap file
US9274945B2 (en) * 2011-12-15 2016-03-01 International Business Machines Corporation Processing unit reclaiming requests in a solid state memory device
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
KR20130075018A (ko) * 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
WO2013098463A1 (en) 2011-12-29 2013-07-04 Nokia Corporation Method for erasing data entity in memory module
KR20130078973A (ko) * 2012-01-02 2013-07-10 삼성전자주식회사 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8868978B2 (en) 2012-02-14 2014-10-21 International Business Machines Corporation Reclaiming discarded solid state devices
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
DE102012006046A1 (de) * 2012-03-27 2013-10-02 Heidelberger Druckmaschinen Ag Adaptives Remote-Service-Protokoll
WO2013162531A1 (en) * 2012-04-25 2013-10-31 Hewlett-Packard Development Company L.P. Dynamic memory allocation
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
TWI477966B (zh) * 2012-05-31 2015-03-21 Silicon Motion Inc 資料儲存裝置與快閃記憶體操作方法
US9846641B2 (en) 2012-06-18 2017-12-19 International Business Machines Corporation Variability aware wear leveling
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US9201784B2 (en) * 2012-09-07 2015-12-01 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
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
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US9411718B2 (en) * 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
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
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
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
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
JP5619198B2 (ja) * 2013-02-04 2014-11-05 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
US9361040B1 (en) * 2013-02-27 2016-06-07 Marvell International Ltd. Systems and methods for data storage management
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US8656255B1 (en) * 2013-03-15 2014-02-18 Avalanche Technology, Inc. Method for reducing effective raw bit error rate in multi-level cell NAND flash memory
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
US10417123B1 (en) * 2013-05-16 2019-09-17 Western Digital Technologies, Inc. Systems and methods for improving garbage collection and wear leveling performance in data storage systems
CN103268291B (zh) * 2013-05-23 2016-02-24 清华大学 在闪存存储系统中延迟持久化索引元数据的方法
US9256371B2 (en) 2013-05-28 2016-02-09 Globalfoundries Inc. Implementing reinforcement learning based flash control
US9349450B2 (en) 2013-06-10 2016-05-24 Micron Technology, Inc. Memory devices and memory operational methods including single erase operation of conductive bridge memory cells
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
US9690837B1 (en) * 2013-06-28 2017-06-27 EMC IP Holding Company LLC Techniques for preserving redundant copies of metadata in a data storage system employing de-duplication
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US9477484B2 (en) 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9639463B1 (en) * 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
JP6271939B2 (ja) * 2013-10-11 2018-01-31 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US9569447B2 (en) * 2013-11-08 2017-02-14 Texas Instruments Incorporated File access method and system thereof
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
CN104699688A (zh) * 2013-12-04 2015-06-10 杭州鹰湾科技有限公司 一种搜索文件的方法和电子设备
KR20150068747A (ko) 2013-12-12 2015-06-22 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
CN104731710B (zh) * 2013-12-18 2018-06-29 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器储存装置
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
CA2881206A1 (en) * 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US11537290B2 (en) 2014-03-20 2022-12-27 International Business Machines Corporation Managing high performance storage systems with hybrid storage technologies
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
KR102164617B1 (ko) 2014-03-24 2020-10-12 삼성전자주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9996303B2 (en) * 2014-05-08 2018-06-12 Kabushiki Kaisha Toshiba Hybrid-HDD that gives up old NAND data at the last moment
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
KR102148389B1 (ko) 2014-06-11 2020-08-27 삼성전자주식회사 오버 라이트 동작을 갖는 메모리 시스템 및 그에 따른 동작 제어방법
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
TWI554944B (zh) * 2014-06-20 2016-10-21 慧榮科技股份有限公司 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
US9710326B2 (en) 2014-07-28 2017-07-18 SK Hynix Inc. Encoder by-pass with scrambler
TWI524180B (zh) * 2014-08-15 2016-03-01 財團法人資訊工業策進會 位元組定址儲存系統
US9600409B2 (en) * 2014-08-29 2017-03-21 EMC IP Holding Company LLC Method and system for garbage collection in a storage system based on longevity of stored data
US9652382B1 (en) * 2014-09-04 2017-05-16 Sk Hynix Memory Solutions Inc. Look-ahead garbage collection for NAND flash based storage
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
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
US9658966B2 (en) 2014-11-24 2017-05-23 Sandisk Technologies Llc Systems and methods of write cache flushing
US20160188495A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Event triggered erasure for data security
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
KR102277521B1 (ko) 2015-01-23 2021-07-16 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
CN105988935B (zh) * 2015-02-04 2019-04-23 群联电子股份有限公司 智能卡管理方法、存储器存储装置及存储器控制电路单元
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
JP2016170583A (ja) * 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
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
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
US9811462B2 (en) 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
KR102402783B1 (ko) * 2015-05-11 2022-05-27 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
US10248418B2 (en) 2015-06-30 2019-04-02 International Business Machines Corporation Cleared memory indicator
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
CN106325764B (zh) * 2015-07-08 2021-02-26 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
JP2016026345A (ja) * 2015-09-03 2016-02-12 マイクロン テクノロジー, インク. メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止
US10268400B2 (en) * 2015-09-03 2019-04-23 Sandisk Technologies Llc System and method for file detection and usage during compaction
KR102387956B1 (ko) 2015-09-09 2022-04-19 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US11188229B2 (en) * 2015-09-25 2021-11-30 Hitachi Vantara Llc Adaptive storage reclamation
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
US10102119B2 (en) * 2015-10-30 2018-10-16 Sandisk Technologies Llc Garbage collection based on queued and/or selected write commands
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
KR102468992B1 (ko) * 2015-11-06 2022-11-22 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US10303371B2 (en) 2015-12-02 2019-05-28 Toshiba Memory Corporation Data storage device that stabilizes write latency
TWI609323B (zh) * 2016-01-29 2017-12-21 捷鼎國際股份有限公司 資料儲存方法及其系統
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10739996B1 (en) 2016-07-18 2020-08-11 Seagate Technology Llc Enhanced garbage collection
US10481830B2 (en) * 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
KR102618699B1 (ko) 2016-09-28 2024-01-02 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
KR20180053027A (ko) 2016-11-11 2018-05-21 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10255179B2 (en) * 2016-12-30 2019-04-09 Western Digital Technologies, Inc. Garbage collection read throttling
CN106598508A (zh) * 2016-12-30 2017-04-26 郑州云海信息技术有限公司 一种固态硬盘及其写入仲裁方法、系统
US10838634B1 (en) * 2016-12-30 2020-11-17 EMC IP Holding Company LLC Managing storage capacity in version families having both writable and read-only data objects
CN108509349B (zh) * 2017-02-27 2022-10-14 得一微电子股份有限公司 一种nand flash的数据源区块回收方法及固态硬盘
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
CN108572887A (zh) * 2017-03-14 2018-09-25 上海骐宏电驱动科技有限公司 数据检验校正方法
CN107015764B (zh) * 2017-03-17 2020-03-27 深圳市江波龙电子股份有限公司 Nand flash的数据处理方法、装置和一种Nand flash
US11893265B2 (en) * 2017-05-02 2024-02-06 Google Llc Garbage collection for data storage
US10521106B2 (en) 2017-06-27 2019-12-31 International Business Machines Corporation Smart element filtering method via gestures
US10379765B2 (en) * 2017-06-27 2019-08-13 Western Digital Technologies, Inc. Geometry-aware command scheduling
KR102430791B1 (ko) * 2017-07-19 2022-08-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN107678684B (zh) * 2017-08-22 2020-11-10 深圳市硅格半导体有限公司 存储器的无效数据清除方法、装置和存储器
US11100996B2 (en) 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
WO2019071620A1 (zh) * 2017-10-09 2019-04-18 华为技术有限公司 一种垃圾数据清理方法及设备
KR20190052368A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108021630B (zh) * 2017-11-21 2021-03-30 深圳市雷鸟网络传媒有限公司 垃圾文件清理方法、智能终端及计算机可读存储介质
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
US10642602B2 (en) * 2017-12-12 2020-05-05 Nxp Usa, Inc. NVM architecture with OTA support
US11099760B2 (en) * 2017-12-14 2021-08-24 Intel Corporation Background data refresh using a system timestamp in storage devices
TWI644207B (zh) * 2017-12-29 2018-12-11 國科美國研究實驗室 Method for garbage collection of data storage device
CN114089916B (zh) * 2018-01-12 2022-12-20 珠海极海半导体有限公司 数据采集系统和温湿度传感器系统
CN110109868B (zh) * 2018-01-18 2023-07-18 伊姆西Ip控股有限责任公司 用于索引文件的方法、装置和计算机程序产品
JP6443571B1 (ja) * 2018-02-02 2018-12-26 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
KR20190102790A (ko) * 2018-02-27 2019-09-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템
US10884916B2 (en) * 2018-03-29 2021-01-05 Intel Corporation Non-volatile file update media
CN108536614A (zh) * 2018-03-30 2018-09-14 天津麒麟信息技术有限公司 一种Flash直接随机写实现方法、装置及存储介质
KR20190120966A (ko) * 2018-04-17 2019-10-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102603916B1 (ko) * 2018-04-25 2023-11-21 삼성전자주식회사 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치
US11301376B2 (en) 2018-06-11 2022-04-12 Seagate Technology Llc Data storage device with wear range optimization
CN115509961A (zh) * 2018-06-25 2022-12-23 慧荣科技股份有限公司 实体存储对照表产生装置及方法
KR20200016075A (ko) * 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US10891224B2 (en) 2018-09-06 2021-01-12 Micron Technology, Inc. Maintaining data consistency in a memory sub system that uses hybrid wear leveling operations
TWI703438B (zh) 2018-09-11 2020-09-01 慧榮科技股份有限公司 映射表更新方法
US11175802B2 (en) * 2018-09-21 2021-11-16 Sap Se Configuration object deletion manager
EP3644189B1 (en) * 2018-10-25 2020-12-23 Samsung Electronics Co., Ltd. Storage device, method and non-volatile memory device performing garbage collection using estimated number of valid pages
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
CN112997162A (zh) * 2018-11-20 2021-06-18 华为技术有限公司 一种删除内存中索引项的方法、装置
KR20200067035A (ko) * 2018-12-03 2020-06-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20200073017A (ko) * 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 저장 장치와, 그것의 동작 방법
CN113196258A (zh) * 2018-12-19 2021-07-30 索尼集团公司 信息处理装置、信息处理方法和信息处理程序
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
US11288185B2 (en) 2019-01-03 2022-03-29 Silicon Motion, Inc. Method and computer program product for performing data writes into a flash memory
TWI739075B (zh) * 2019-01-03 2021-09-11 慧榮科技股份有限公司 閃存的資料寫入方法及電腦程式產品
US10976950B1 (en) * 2019-01-15 2021-04-13 Twitter, Inc. Distributed dataset modification, retention, and replication
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US11327809B2 (en) 2019-06-19 2022-05-10 International Business Machines Corporation Virtual machine memory removal increment selection
US11508021B2 (en) * 2019-07-22 2022-11-22 Vmware, Inc. Processes and systems that determine sustainability of a virtual infrastructure of a distributed computing system
EP3993273A4 (en) * 2019-07-22 2022-07-27 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA COMPRESSION IN A STORAGE SYSTEM, DEVICE AND READABLE STORAGE MEDIUM
KR20210012329A (ko) * 2019-07-24 2021-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI688956B (zh) * 2019-08-28 2020-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN112486404A (zh) * 2019-09-12 2021-03-12 伊姆西Ip控股有限责任公司 用于管理存储块的方法、设备和计算机程序产品
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
KR20210044564A (ko) 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11762569B2 (en) * 2019-10-29 2023-09-19 International Business Machines Corporation Workload based relief valve activation for hybrid controller architectures
KR20210051873A (ko) * 2019-10-31 2021-05-10 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템
CN111049729A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种持久化消息传输方法与装置
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
JP2021099642A (ja) * 2019-12-20 2021-07-01 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
KR20210100265A (ko) 2020-02-06 2021-08-17 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US11748277B2 (en) 2020-03-05 2023-09-05 Seagate Technology, Llc Client input/output (I/O) access rate variation compensation
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
CN113495681A (zh) * 2020-04-07 2021-10-12 杭州萤石软件有限公司 一种nand flash文件数据存取方法、装置及存储介质
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11567665B2 (en) * 2020-08-31 2023-01-31 Micron Technology, Inc. Data dispersion-based memory management
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
KR20220048864A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
KR20220060385A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11494111B2 (en) * 2020-12-17 2022-11-08 Micron Technology, Inc. Data operation based on valid memory unit count
US11556270B2 (en) * 2021-01-07 2023-01-17 EMC IP Holding Company LLC Leveraging garbage collection for raid transformation
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US20220222008A1 (en) * 2021-01-14 2022-07-14 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
CN114780014A (zh) * 2021-01-22 2022-07-22 伊姆西Ip控股有限责任公司 管理元数据存储单元的方法、电子设备和计算机程序产品
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
US20220291858A1 (en) * 2021-03-15 2022-09-15 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11775197B2 (en) * 2021-03-25 2023-10-03 Kyocera Document Solutions Inc. Single command for reading then clearing dynamic random access memory
US11740828B2 (en) * 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11740821B2 (en) * 2021-04-12 2023-08-29 EMC IP Holding Company LLC Cost-aware garbage collection for cloud storage
US11500578B2 (en) * 2021-04-19 2022-11-15 Micron Technology, Inc. Memory access threshold based memory management
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11513720B1 (en) * 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
US11543993B1 (en) * 2021-06-17 2023-01-03 Western Digital Technologies, Inc. Fast garbage collection in zoned namespaces SSDs
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11733893B2 (en) * 2021-07-28 2023-08-22 International Business Machines Corporation Management of flash storage media
US11907564B2 (en) * 2021-08-03 2024-02-20 Yadro International Ltd. Method of and system for initiating garbage collection requests
US11922047B2 (en) * 2021-09-16 2024-03-05 EMC IP Holding Company LLC Using RPO as an optimization target for DataDomain garbage collection
JP2023044330A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよび制御方法
US11847334B2 (en) * 2021-09-23 2023-12-19 EMC IP Holding Company LLC Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments
US20230195351A1 (en) * 2021-12-17 2023-06-22 Samsung Electronics Co., Ltd. Automatic deletion in a persistent storage device
US11822813B2 (en) 2021-12-28 2023-11-21 Samsung Electronics Co., Ltd. Storage device, operation method of storage device, and storage system using the same
US20230280926A1 (en) * 2022-03-03 2023-09-07 Western Digital Technologies, Inc. Data Relocation With Protection For Open Relocation Destination Blocks
US11886735B2 (en) * 2022-03-22 2024-01-30 Micron Technology, Inc. Data movement based on address table activity
US20230393976A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks
US20240012579A1 (en) * 2022-07-06 2024-01-11 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for data placement in a storage device
US20240053911A1 (en) * 2022-08-12 2024-02-15 Micron Technology, Inc. Assigning blocks of memory systems
CN115292247B (zh) * 2022-09-28 2022-12-06 北京鼎轩科技有限责任公司 一种文件读取方法、装置、电子设备和存储介质
CN116610596B (zh) * 2023-07-19 2023-10-03 合肥康芯威存储技术有限公司 一种存储器件及其数据处理方法
CN116610597B (zh) * 2023-07-20 2023-10-17 合肥康芯威存储技术有限公司 一种存储器件及其垃圾回收的控制方法

Family Cites Families (212)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US614509A (en) * 1898-11-22 Hose-coupling
US5774A (en) * 1848-09-19 Steam-hammer
US676632A (en) * 1901-01-30 1901-06-18 Frederick G Rogers Boiler.
US4369754A (en) * 1980-11-04 1983-01-25 Bob Lofman Vacuum responsive injection system for engines
US4800520A (en) * 1985-10-29 1989-01-24 Kabushiki Kaisha Toshiba Portable electronic device with garbage collection function
US4802117A (en) * 1985-12-16 1989-01-31 Pitney Bowes Inc. Method of preserving data storage in a postal meter
US4864511A (en) 1987-01-27 1989-09-05 Storage Technology Corporation Automated cartridge system
GB2204973A (en) 1987-05-19 1988-11-23 Gen Electric Co Plc Data processing system
JP3015377B2 (ja) * 1988-08-26 2000-03-06 株式会社東芝 Icカード
EP1031992B1 (en) * 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
US5388086A (en) * 1989-06-13 1995-02-07 Kabushiki Kaisha Toshiba Electro-magnetic actuator for driving an objective lens
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
JP2839060B2 (ja) 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5628014A (en) 1992-03-20 1997-05-06 Paranode, Inc. Methods and apparatus for node caching at the file level
JP3017892B2 (ja) * 1992-09-30 2000-03-13 株式会社東芝 ファイル管理装置
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5479633A (en) 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5454103A (en) * 1993-02-01 1995-09-26 Lsc, Inc. Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5619690A (en) * 1993-06-21 1997-04-08 Hitachi, Ltd. Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5640529A (en) 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US7137011B1 (en) 1993-09-01 2006-11-14 Sandisk Corporation Removable mother/daughter peripheral card
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5553261A (en) 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
ATE149709T1 (de) * 1994-09-30 1997-03-15 Sel Alcatel Ag Verfahren zur speicherverwaltung eines flash- speichers
JP2669365B2 (ja) * 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
US5568423A (en) 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
GB2291990A (en) 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
FR2740237B1 (fr) 1995-10-18 1997-11-14 Schlumberger Ind Sa Composant electronique a memoire synchronisee
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5875477A (en) * 1995-12-22 1999-02-23 Intel Corporation Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
US5799168A (en) * 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US5867341A (en) 1996-01-30 1999-02-02 Seagate Technology, Inc. Disc drive system using multiple pairs of embedded servo bursts
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
GB9606927D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
JPH09319645A (ja) 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5996047A (en) 1996-07-01 1999-11-30 Sun Microsystems, Inc. Method and apparatus for caching file control information corresponding to a second file block in a first file block
FR2752072B1 (fr) * 1996-08-01 1999-01-29 Solaic Sa Carte a circuit integre comportant des fichiers classes selon une arborescence
US5761536A (en) * 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
DE19633648A1 (de) * 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät
JPH1069420A (ja) * 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US5907854A (en) * 1996-09-27 1999-05-25 Alcatel Usa Sourcing, L.P. Flash memory file system for writing data files without rewriting an entire volume
US6681239B1 (en) 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US6182188B1 (en) 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
FR2759795B1 (fr) * 1997-02-14 1999-05-07 Francois Charles Oberthur Fidu Procede de stockage de donnees dans une memoire reinscriptible de carte a puce
US5966047A (en) 1997-03-27 1999-10-12 Motorola, Inc. Programmable analog array and method
US6088759A (en) * 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JPH10326227A (ja) 1997-05-23 1998-12-08 Nec Corp フラッシュメモリを記憶媒体とする記憶装置の管理方式
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US5928347A (en) * 1997-11-18 1999-07-27 Shuttle Technology Group Ltd. Universal memory card interface apparatus
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6493811B1 (en) 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
DE19980546B4 (de) * 1998-03-02 2011-01-27 Lexar Media, Inc., Fremont Flash-Speicherkarte mit erweiterter Betriebsmodus-Erkennung und benutzerfreundlichem Schnittstellensystem
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6151666A (en) * 1998-05-27 2000-11-21 Storage Technology Corporation Method for reclaiming fragmented space on a physical data storage cartridge
US6901457B1 (en) * 1998-11-04 2005-05-31 Sandisk Corporation Multiple mode communications system
US6490649B2 (en) * 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
JP2000148546A (ja) * 1998-11-10 2000-05-30 Nec Corp データ入出力装置およびデータ入出力方法、並びに記録媒体
US6256690B1 (en) * 1999-01-15 2001-07-03 Todd Carper System and method for facilitating multiple applications on a smart card
US6480935B1 (en) * 1999-01-15 2002-11-12 Todd Carper Smart card memory management system and method
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
JP2000227871A (ja) 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
WO2000050997A1 (fr) * 1999-02-22 2000-08-31 Hitachi, Ltd. Carte memoire, procede d'affectation d'adresse logique, et procede d'ecriture de donnees
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4779183B2 (ja) * 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
GB9907280D0 (en) 1999-03-31 1999-05-26 Philips Electronics Nv A method of scheduling garbage collection
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6467015B1 (en) 1999-04-15 2002-10-15 Dell Products, L.P. High speed bus interface for non-volatile integrated circuit memory supporting continuous transfer
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
JP3524428B2 (ja) 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6547150B1 (en) * 1999-05-11 2003-04-15 Microsoft Corporation Smart card application development system and method
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
EP1100001B1 (en) 1999-10-25 2003-08-13 Sun Microsystems, Inc. Storage system supporting file-level and block-level accesses
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
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3726663B2 (ja) * 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
US6865650B1 (en) 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US7039727B2 (en) 2000-10-17 2006-05-02 Microsoft Corporation System and method for controlling mass storage class digital imaging devices
US6834331B1 (en) 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US20020112116A1 (en) 2000-11-17 2002-08-15 Nelson Mark Edward Methods, systems, and computer program products for storing data in collections of tagged data pieces
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
KR100365725B1 (ko) * 2000-12-27 2002-12-26 한국전자통신연구원 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6591358B2 (en) 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
JP2002251310A (ja) 2001-02-21 2002-09-06 Ricoh Co Ltd フラッシュメモリのファイルシステム作成方式
US6571326B2 (en) * 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US7656426B2 (en) * 2001-04-06 2010-02-02 Sony Corporation Digital camera and data transfer method from a record medium
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
JP2002333384A (ja) * 2001-05-10 2002-11-22 Fujikura Ltd 定偏波光ファイバの偏波面の角度ずれ推定方法及び定偏波光ファイバの接続方法
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US20020188592A1 (en) * 2001-06-11 2002-12-12 Storage Technology Corporation Outboard data storage management system and method
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
JP4812192B2 (ja) * 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6823417B2 (en) 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP3641230B2 (ja) * 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6668336B2 (en) * 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
US20040049627A1 (en) * 2001-11-09 2004-03-11 Flex-P Industries Method and system for controlling compact flash memory
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
JP2003208352A (ja) 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
JP2003215495A (ja) 2002-01-28 2003-07-30 Fuji Photo Optical Co Ltd プロジェクタ用光学系およびこれを用いたプロジェクタ装置
US6771536B2 (en) * 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
DE60210416T2 (de) * 2002-02-28 2006-09-07 Matsushita Electric Industrial Co., Ltd., Kadoma Speicherkarte
JP4206688B2 (ja) 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US6766432B2 (en) * 2002-05-24 2004-07-20 Sun Microsystems, Inc. Memory management system supporting object deletion in non-volatile memory
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
JP4059711B2 (ja) 2002-06-04 2008-03-12 株式会社日立グローバルストレージテクノロジーズ 多重書き込み型記憶装置
US6865659B2 (en) * 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
US7035949B2 (en) * 2002-07-29 2006-04-25 M-System Flash Dist Pioneers Ltd. Multipurpose processor, system and method
DE10234971B4 (de) 2002-07-31 2006-08-10 Giesecke & Devrient Gmbh Verfahren und Datenträger zum Erzeugen und Korrigieren von Programmcode
US6979481B2 (en) * 2002-08-19 2005-12-27 Mohawk Paper Mills, Inc. Microporous photo glossy inkjet recording media
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7093071B2 (en) 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7254668B1 (en) 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a 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
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
CN1732535B (zh) 2002-10-30 2010-04-28 松下电器产业株式会社 记录方法和记录装置
CN1260642C (zh) * 2002-11-18 2006-06-21 深圳市朗科科技有限公司 一种向移动存储装置发送命令和数据的方法
EP1435576B1 (en) * 2003-01-03 2013-03-20 Austria Card Plastikkarten und Ausweissysteme GmbH Method and apparatus for block-oriented memory management provided in smart card controllers
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
CN1689116A (zh) 2003-02-28 2005-10-26 富士通株式会社 闪存以及存储器控制方法
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
JP4245959B2 (ja) 2003-04-09 2009-04-02 日本電信電話株式会社 Icカードにおけるメモリ管理方法、及びicカード
US6865122B2 (en) * 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US7437557B2 (en) * 2003-06-03 2008-10-14 Lg Electronics Inc. Garbage collection system and method for a mobile communication terminal
JPWO2005001701A1 (ja) * 2003-06-27 2006-08-10 松下電器産業株式会社 スレイブ装置、通信設定方法
JP4318075B2 (ja) * 2003-08-29 2009-08-19 富士フイルム株式会社 Usbファンクション装置
TWI240863B (en) * 2003-09-05 2005-10-01 Megawin Technology Co Ltd Method for efficiently controlling flash memory read/write
JP2005122439A (ja) 2003-10-16 2005-05-12 Sharp Corp デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR20070007264A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법
US20050144363A1 (en) 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7519639B2 (en) 2004-01-05 2009-04-14 International Business Machines Corporation Method and apparatus for dynamic incremental defragmentation of memory
US20060004950A1 (en) * 2004-06-30 2006-01-05 Jeffrey Wang Flash memory file system having reduced headers
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
KR100631765B1 (ko) 2004-10-18 2006-10-09 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US20060101084A1 (en) * 2004-10-25 2006-05-11 International Business Machines Corporation Policy based data migration in a hierarchical data storage system
US7287145B1 (en) * 2004-12-13 2007-10-23 Nvidia Corporation System, apparatus and method for reclaiming memory holes in memory composed of identically-sized memory devices
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
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
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
KR100706242B1 (ko) 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US20080162782A1 (en) 2005-06-15 2008-07-03 Nagarajan Suresh Using Transacted Writes and Caching Mechanism to Improve Write Performance in Multi-Level Cell Flash Memory
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
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
EP1920335B1 (en) 2005-08-03 2011-05-11 SanDisk Corporation Reclaiming data storage capacity in flash memory systems
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
JP4977703B2 (ja) 2005-08-03 2012-07-18 サンディスク コーポレイション 予定再生操作を伴う不揮発性メモリ
WO2007019197A2 (en) 2005-08-03 2007-02-15 Sandisk Corporation Management of memory blocks that directly store data files
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
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
US20070136553A1 (en) 2005-12-13 2007-06-14 Sinclair Alan W Logically-addressed file storage systems
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7747837B2 (en) * 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7426606B2 (en) 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
KR100806343B1 (ko) 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface

Also Published As

Publication number Publication date
JP4537481B2 (ja) 2010-09-01
EP1920336A2 (en) 2008-05-14
TW200805134A (en) 2008-01-16
CN101278267B (zh) 2012-08-22
KR20080038363A (ko) 2008-05-06
US20070033377A1 (en) 2007-02-08
CN101278267A (zh) 2008-10-01
US7409489B2 (en) 2008-08-05
US8291151B2 (en) 2012-10-16
CN101233480A (zh) 2008-07-30
US7562181B2 (en) 2009-07-14
CN101288045B (zh) 2012-08-29
WO2007019174A2 (en) 2007-02-15
WO2007019220A3 (en) 2007-06-07
JP4537482B2 (ja) 2010-09-01
US20070033378A1 (en) 2007-02-08
KR101377147B1 (ko) 2014-03-24
WO2007019220A2 (en) 2007-02-15
TW200731065A (en) 2007-08-16
US8055832B2 (en) 2011-11-08
US20070033325A1 (en) 2007-02-08
US20070033327A1 (en) 2007-02-08
TW200745930A (en) 2007-12-16
CN101233499A (zh) 2008-07-30
US7590794B2 (en) 2009-09-15
CN101258473A (zh) 2008-09-03
US7984084B2 (en) 2011-07-19
US20070033328A1 (en) 2007-02-08
TW200745929A (en) 2007-12-16
CN101233479A (zh) 2008-07-30
TW200728977A (en) 2007-08-01
US7450420B2 (en) 2008-11-11
CN101233498B (zh) 2014-03-12
US20070186032A1 (en) 2007-08-09
US20070033329A1 (en) 2007-02-08
EP1920337A2 (en) 2008-05-14
US7590795B2 (en) 2009-09-15
US20070033324A1 (en) 2007-02-08
CN101233498A (zh) 2008-07-30
US20070033376A1 (en) 2007-02-08
CN101233480B (zh) 2012-08-29
US7581057B2 (en) 2009-08-25
JP2009503738A (ja) 2009-01-29
JP2009503746A (ja) 2009-01-29
US7558905B2 (en) 2009-07-07
TWI421684B (zh) 2014-01-01
WO2007019174A3 (en) 2007-07-19
KR20080038364A (ko) 2008-05-06
US20070033330A1 (en) 2007-02-08
US20070033326A1 (en) 2007-02-08
TW200741526A (en) 2007-11-01
CN101233479B (zh) 2012-09-05
US20070030734A1 (en) 2007-02-08
CN101288045A (zh) 2008-10-15
US7610437B2 (en) 2009-10-27

Similar Documents

Publication Publication Date Title
CN101258473B (zh) 直接数据文件存储存储器中的数据合并和垃圾收集
CN101147119B (zh) 快闪存储器中的直接数据文件存储实施技术
CN101147133B (zh) 可再编程非易失性存储器系统的方法及存储器系统
CN100524209C (zh) 在非易失性存储器阵列中更新数据的方法
CN101164037B (zh) 闪速存储器中的直接数据文件存储
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
CN101124555B (zh) 具有多流更新的非易失性存储器和方法
CN102768644B (zh) 闪存系统及其闪存无效数据页信息的管理方法与回收方法
CN100485681C (zh) 智能卡存储系统及该系统中文件创建管理的方法
US20080109589A1 (en) Nonvolatile Storage Device And Data Write Method
CN102696010A (zh) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
CN101606133A (zh) 具有连续逻辑地址空间接口的直接数据文件系统的使用
CN101916290B (zh) 内存数据库的管理方法和装置
CN102779095A (zh) 闪存装置、存储器控制装置、存储器控制方法及存储系统
CN103279366A (zh) 固态硬盘及掉电后基于固态硬盘快速开机的方法
CN101661431B (zh) 用于快闪存储器的区块管理方法、快闪储存系统及控制器
CN101460932A (zh) 用于嵌入式设备远程解碎片化的设备
CN101364438B (zh) 提高与非门阵列闪存的存取装置与方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20121219

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

Effective date of registration: 20121219

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

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

Granted publication date: 20120530

Termination date: 20130801