CN101233499A - 回收快闪存储器系统中的数据存储容量 - Google Patents
回收快闪存储器系统中的数据存储容量 Download PDFInfo
- Publication number
- CN101233499A CN101233499A CNA2006800283184A CN200680028318A CN101233499A CN 101233499 A CN101233499 A CN 101233499A CN A2006800283184 A CNA2006800283184 A CN A2006800283184A CN 200680028318 A CN200680028318 A CN 200680028318A CN 101233499 A CN101233499 A CN 101233499A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- file
- tabulation
- valid data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Abstract
用每个文件的唯一标识和所述文件内的数据偏移量将主机系统数据文件直接写入到大型擦除区块快闪存储器系统,而无需使用所述存储器的任何中间逻辑地址或虚拟地址空间。通过所述存储器系统的控制器而不是通过主机将关于所述文件存储在所述存储器中的哪个位置的目录信息保存在所述存储器系统内。选择一种类型的存储器区块以接收文件的额外数据,所述类型取决于所述文件的数据已经被写入其中的区块的类型。通过以含有最少量的有效数据的区块开始依次选择区块的过程,来选择含有数据的区块以用于从其中回收任何未经使用的容量。
Description
技术领域
本申请案涉及例如半导体快闪存储器的可重新编程的非易失性存储器系统的操作,且更具体地说,涉及主机装置与存储器之间的接口的管理。
背景技术
对通过主机系统、存储器系统和其它电子系统的外部接口通信的数据进行寻址主要有两种技术。在其中的一种技术中,将系统产生或接收到的数据文件的地址映射到针对所述系统建立的连续逻辑地址空间的不同范围中。地址空间的广度通常足以覆盖系统能够处置的整个地址范围。在一个实例中,磁盘存储驱动器通过此逻辑地址空间与计算机或其它主机系统通信。此地址空间具有足以寻址磁盘驱动器的整个数据存储容量的广度。在所述两种技术中的第二种技术中,唯一地识别电子系统产生或接收到的数据文件,且通过所述文件内的偏移量来逻辑地寻址其数据。一种形式的这种寻址方法在计算机或其它主机系统与被称为“智能卡”的可移除存储卡之间使用。智能卡通常由消费者用来进行识别、银行业务、销售点购买、ATM接入和类似活动。
在早一代的商用快闪存储器系统中,将矩形存储器单元阵列分成大量单元群组,每个单元群组存储标准磁盘驱动器扇区的数据量,即512字节。额外量的数据(例如16个字节)通常也包含在每个群组中,以存储误差校正码(ECC)以及可能其它与用户数据且/或与里面存储有相关联的用户数据的存储器单元群组有关的额外开销数据。每个此群组中的存储器单元是可一起擦除的最小数目的存储器单元。即,擦除单位实际上是存储一个数据扇区和所包含的任何额外开销数据的若干存储器单元。这种类型的存储器系统的实例在第5,602,987号和第6,426,893号美国专利中描述。在使存储器单元重新编程有数据之前对其进行擦除是快闪存储器的特征。
快闪存储器系统最常见的是以可移除地与多种主机(例如个人计算机、相机或类似物)连接的存储卡或快闪驱动器的形式提供,但也可嵌入在此类主机系统内。当将数据写入到存储器时,主机通常将唯一逻辑地址指派给扇区、群集或存储器系统的连续虚拟地址空间内的其它数据单位。与磁盘操作系统(DOS)类似,主机将数据写入到存储器系统的逻辑地址空间内的地址并从所述地址读取数据。存储器系统内的控制器将从主机接收到的逻辑地址转换成实际存储数据的存储器阵列内的物理地址,且所述控制器接着记住这些地址转换。存储器系统的数据存储容量至少与可在针对存储器系统界定的整个逻辑地址空间上寻址的数据的量一样大。
在后面几代快闪存储器系统中,擦除单位的大小增加到足以存储多个数据扇区的存储器单元的区块。即使与存储器系统连接的主机系统可以最小单位(例如扇区)编程和读取数据,但大量扇区存储在快闪存储器的单个擦除单位内。以下情况是常见的:当主机更新或替换逻辑数据扇区时,区块内的一些数据扇区变成废弃的。由于在区块中所存储的任何数据可被重写之前,必须擦除整个区块,所以新的或经更新的数据通常存储在已经被擦除且具有用于所述数据的剩余容量的另一区块中。这个过程留下具有废弃数据的原先区块,所述废弃数据占用存储器内的宝贵空间。但如果所述区块中还有任何有效数据留在里面,那么就不能擦除所述区块。
因此,为了更好地利用存储器的存储容量,常见的是通过将有效部分区块量的数据复制到经擦除的区块中来对其进行合并或收集,使得从中复制这些数据的区块接着可被擦除,且其整个存储容量可再用。还希望复制所述数据,以便以其逻辑地址的次序对区块内的数据扇区进行分组,因为这会提高读取所述数据和将所读取的数据传递到主机的速度。
如果此数据复制发生得太频繁,那么存储器系统的操作性能可能降级。这尤其会影响存储器系统的操作,其中存储器的存储容量几乎与可由主机通过系统的逻辑地址空间寻址的数据的量没有差别(典型情况)。在这种情况下,在可执行主机编程命令之前,可能需要数据合并或收集。于是编程时间因而增加。
在相继几代存储器系统中,区块的大小已经逐渐增加,以便增加可以存储在给定半导体区域中的数据位的数目。存储256个数据扇区和更多扇区的区块正变得越来越常见。另外,不同阵列或子阵列的两个、四个或更多区块通常逻辑上一起连接成元区块,以便提高数据编程和读取中的并行度。伴随此类大容量操作单位而来的是对其进行高效操作的难题。
用于此类存储器系统的常见主机接口是与通常与磁盘驱动器一起使用的接口类似的逻辑地址接口。存储器连接到的主机所产生的文件被指派有所述接口的逻辑地址空间内的唯一地址。存储器系统接着通常在逻辑地址空间与存储器的物理区块或元区块之间映射数据。存储器系统记住逻辑地址空间如何映射到物理存储器中,但主机不知道这个。主机记住其数据文件在逻辑地址空间内的地址,但存储器系统在不知道此映射的情况下操作。
发明内容
已经开发了很多技术,其在各种程度上克服了高效地操作此类大型擦除区块快闪存储器系统中所遇到的问题。另一方面,本发明是基于基本变化的,即通过改变存储器与主机系统之间的数据传递接口。不是通过使用虚拟地址空间内的逻辑地址来在它们之间传送数据,而是数据文件通过主机所指派的文件名来识别,且其由所述文件内的偏移地址存取。接着,存储器系统知道每个扇区或其它数据单位所属的主机文件。本文论述的文件单位是(例如)通过具有循序偏移地址而排序的一组数据,且所述组数据由在主机计算系统中操作的应用程序创建并唯一地识别。
这并不被大多数当前商用存储器系统所使用,因为主机现在在不识别文件的情况下,通过一组共用逻辑地址来在所有文件内向存储器系统识别数据。通过由文件对象而不是使用逻辑地址来识别主机数据,存储器系统控制器可以用减少对此频繁数据合并和垃圾收集的需要的方式存储数据。数据复制操作的频率和所复制数据的量因此显著减少,从而提高了存储器系统的数据编程和读取性能。另外,存储器系统控制器保存主机文件存储在其中的存储器区块的目录和索引表信息。于是,主机没有必要保存当前对管理逻辑地址接口来说必要的文件分配表(FAT)。
区块回收操作包含垃圾收集和数据合并,其中,一般来说,将未充分利用的区块的有效数据一起聚集在其它区块中,且接着擦除未充分利用的区块,并使其可用于接受新的数据。根据本发明的一方面,基于区块的内容来选择待回收的存储器单元的区块。在利用逻辑地址接口的存储器系统中,通常不基于物理区块的内容,而是响应于主机关闭映射到物理区块中的逻辑数据区块,来回收存储器单元的区块。通过在所述选择标准中包含区块内容,使得存储器系统的更高效的操作成为可能。
在特定实施例中,基于包含在里面的有效数据的量来选择部分填充有有效数据的区块以用于回收操作。具有最少量的有效数据的区块可被最高效地回收,因为要复制到另一区块的数据较少。由于复制数据会从其它存储器操作(例如数据编程或读取)中夺取相当大量的时间,所以(例如)选择具有最少量的有效数据的区块以用于回收意味着可在对系统性能产生最少负面影响的情况下,使此区块可用于新数据的存储。由于含有少量有效数据的一些区块还含有在不必回收所述区块的情况下即可将数据写入其中的一些经擦除容量,所以一些实施例包含当选择待回收的区块时,考虑区块中的经擦除容量的量。如果两个区块中存储的有效数据的量相同,但(例如)一个区块具有一些经擦除容量而另一区块不具有,那么首先回收不具有经擦除容量的区块,因为得到的会更多。具有经擦除容量的区块具有新数据的存储的当前值,所述值视可写入其中的数据的量而定,而不具有经擦除容量的区块并非如此。
本发明的其它方面、优势、特征和细节包含在以下对本发明的示范性实例的描述内容中,所述描述内容应结合附图来理解。
本文所参考的所有专利、专利申请案、文章、其它出版物、文献等等之类出于所有目的全文以引用的方式并入本文中。如果所并入的任何出版物、文献等等之类与本申请案之间在术语的定义或用法方面存在任何不一致性或冲突,则应以本申请案的定义或用法为准。
附图说明
图1示意性地说明如当前所实施的主机和所连接的非易失性存储器系统;
图2是用作图1的非易失性存储器的示范性快闪存储器系统的方框图;
图3是可在图2的系统中使用的存储器单元阵列的代表性电路图;
图4说明图2的系统的示范性物理存储器组织;
图5展示图4的物理存储器的一部分的展开图;
图6展示图4和图5的物理存储器的一部分的进一步展开图;
图7说明主机与可重新编程的存储器系统之间的常见现有技术逻辑地址接口;
图8以与图7不同的方式说明主机与可重新编程的存储器系统之间的常见现有技术逻辑地址接口;
图9说明根据本发明的主机与可重新编程的存储器系统之间的直接文件存储接口;
图10以与图9不同的方式说明根据本发明的主机与可重新编程的存储器系统之间的直接文件存储接口;
图11是与直接数据文件存储接口一起操作的存储器系统的功能方框图;
图12说明直接数据文件存储器的操作循环;
图13A到图13D展示将文件的数据直接写入到存储器中的四个不同实例;
图14A到图14E展示在各种允许的区块类型的组合中存储的数据文件的实例;
图15是存储着个别文件的数据的区块类型所允许的文件状态的列表;
图16是展示图15中所列出的文件状态之间所允许的初级转变的状态图;
图17是描述图16的状态图中所说明的初级文件状态转变的表;
图18是展示图15中所列出的文件状态之间的结果次级转变的状态图;
图19是描述图18的状态图中所说明的次级文件状态转变的表;
图20是列出在图15到图20的条件下被分配为活动区块的区块类型的一览表;
图21A到图21D展示区块回收操作的实例;
图22是概括地说明回收操作的流程图;
图23说明典型部分存储器单元区块中所存储的数据的类型;
图24提供实行图22的流程图的步骤中的一者的特定实施例的细节;
图25提供执行图22的流程图的同一步骤的替代实施例的细节;以及
图26是界定放置在又一实施例的两个区块列表上的区块类型的表。
具体实施方式
快闪存储器系统一般说明
相对于图1到图8描述常见快闪存储器系统和与主机装置的典型操作。在此类系统中,可实施本发明的各个方面。图1的主机系统1将数据存储在快闪存储器2中,并从快闪存储器2检索数据。尽管快闪存储器可嵌入在主机内,但将存储器2说明为呈现更为普遍的通过机械和电连接器的配合部分3和4可移除地连接到主机的卡的形式。目前有许多不同的商业上可购得的快闪存储卡,实例是那些以CompactFlash(CF)、MultiMediaCard(MMC)、Secure Digital(SD)、miniSD、microSD、Memory Stick、SmartMedia和TransFlash的商标出售的存储卡。尽管这些卡具有根据其标准化规格的唯一机械和/或电接口,但每个卡中所包含的快闪存储器是非常相似的。这些卡都可从本申请案的受让人SanDisk公司购得。SanDisk还在其Cruzer商标下提供一系列快闪驱动器,其为呈小型封装形式的手持式存储器系统,所述系统具有用于通过插入到主机的USB插口中而与主机连接的通用串行总线(USB)插头。这些存储卡和快闪驱动器中的每一者均包含控制器,所述控制器与主机介接,并控制它们内的快闪存储器的操作。
使用此类存储卡和快闪驱动器的主机系统有许多且是各式各样的。它们包含个人计算机(PC)、膝上型和其它便携式计算机、蜂窝式电话、个人数字助理(PDA)、数字照相机、数字摄影机和便携式音频播放器。主机通常包含内建式插口以供一种或一种以上类型的存储卡或快闪驱动器使用,但有些需要存储卡插入到其中的适配器。存储器系统通常含有其自己的存储器控制器和驱动器,但也存在一些只有存储器的系统,其改为由所述存储器连接到的主机所执行的软件来控制。在含有控制器的一些存储器系统(尤其是那些嵌入在主机内的存储器系统)中,存储器、控制器和驱动器通常形成于单个集成电路芯片上。
就存储器2涉及到的范围而言,图1的主机系统1可被视为具有两个主要部分,由电路和软件的组合构成。所述两个主要部分是应用程序部分5和与存储器2介接的驱动器部分6。举例来说,在个人计算机中,应用程序部分5可包含运行文字处理、图形、控制或其它普及应用软件的处理器。在摄像机、蜂窝式电话或其它主要专用于执行单组功能的主机系统中,应用程序部分5包含操作摄像机以拍摄并存储图片、操作蜂窝式电话以发出和接收呼叫等等的软件。
图1的存储器系统2包含快闪存储器7和电路8,所述两者都与卡所连接到的主机介接,以用于来回传递数据并控制存储器7。控制器8通常在数据编程和读取期间在主机1所使用的数据的逻辑地址与存储器7的物理地址之间转换。
参看图2,描述可用作图1的非易失性存储器2的典型快闪存储器系统的电路。通常在通过系统总线13与一个或一个以上集成电路存储器芯片并联连接的单个集成电路芯片11上实施系统控制器,图2中展示单个此类存储器芯片15。所说明的特定总线13包含单独一组导线17用来运载数据、一组导线19用于存储器地址以及一组导线21用于控制与状态信号。或者,单组导线可在这三个功能之间时间共享。另外,可使用系统总线的其它配置,例如2004年8月9日申请的第10/915,039号美国专利申请案(现第2006/0031593 A1号公开案)中所描述的环形总线。
典型的控制器芯片11具有其自己的内部总线23,所述内部总线23通过接口电路25与系统总线13介接。通常连接到总线的主要功能是处理器27(例如微处理器或微控制器);只读存储器(ROM)29,其含有用以初始化(“引导”)系统的代码;只读存储器(RAM)31,其主要用于缓冲正在存储器与主机之间传递的数据;以及电路33,其计算并检查经过存储器与主机之间的控制器的数据的误差校正码(ECC)。控制器总线23通过电路35与主机系统介接,在图2的系统包含在存储卡内的情况下,这是通过卡的作为连接器4的一部分的外部触点37来完成的。时钟39与控制器11的其它组件中的每一者连接并由其利用。
存储器芯片15以及与系统总线13连接的任何其它芯片通常含有组织成多个子阵列或平面的存储器单元阵列,为了简单起见,说明两个此类平面41和43,但可改为使用更多(例如四个或八个)此类平面。或者,芯片15的存储器单元阵列可不分成平面。然而,当这样分时,每个平面具有其自己的列控制电路45和47,其可很大程度上独立于彼此而操作。电路45和47从系统总线13的地址部分19接收其相应存储器单元阵列的地址,并对所述地址进行解码以寻址相应位线49和51中的特定一者或一者以上。通过行控制电路55响应于在地址总线19上接收到的地址而寻址字线53。源极电压控制电路57和59也与相应的平面连接,p阱电压控制电路61和63也是如此。如果存储器芯片15具有单个存储器单元阵列,且如果系统中存在两个或两个以上此类芯片,那么每个芯片的阵列可以与上文所述的多平面芯片内的一个平面或子阵列类似的方式操作。
数据通过与系统总线13的数据部分17连接的相应数据输入/输出电路65和67转移到平面41和43中且从平面41和43中转移出来。电路65和67用于通过线69和71将数据编程到存储器单元中和从其相应平面的存储器单元中读取数据两者,所述线69和71通过相应的列控制电路45和47连接到平面。
尽管控制器11控制存储器芯片15的操作以编程数据、读取数据、擦除和办理各种内务处理事项,但每个存储器芯片还含有一些控制电路,所述控制电路执行来自控制器11的命令以执行此类功能。接口电路73连接到系统总线13的控制与状态部分21。将来自控制器的命令提供到状态机75,状态机75接着提供其它电路的特定控制,以便执行这些命令。控制线77到81使状态机75与这些其它电路连接,如图2中所示。来自状态机75的状态信息通过线83传送到接口73,以便通过总线部分21传输到控制器11。
存储器单元阵列41和43的NAND结构当前是优选的,但是也可改为使用其它结构(例如NOR)。NAND快闪存储器及其作为存储器系统的一部分的操作的实例可通过参考第5,570,315号、第5,774,397号、第6,046,935号、第6,373,746号、第6,456,528号、第6,522,580号、第6,771,536号和第6,781,877号美国专利以及第2003/0147278号美国专利申请公开案获得。
图3的电路图说明示范性NAND阵列,其为图2的存储器系统的存储器单元阵列41的一部分。提供大量全局位线,为了阐释的简单性,图2中仅展示四个此类线91到94。许多串联连接的存储器单元串97到104连接在这些位线中的一者与参考电位之间。使用存储器单元串99作为代表,多个电荷存储存储器单元107到110在所述串的任一端处与选择晶体管111和112串联连接。当串的选择晶体管变得具有传导性时,所述串连接在其位线与参考电位之间。接着,一次对所述串内的一个存储器单元进行编程或读取。
图3的字线115到118个别地延伸越过许多存储器单元串中的每一者中的一个存储器单元的电荷存储元件,且栅极119和120控制所述串的每个端处的选择晶体管的状态。使共享共用字线和控制栅极线115到120的存储器单元串形成一起擦除的存储器单元区块123。此单元块含有一次可物理擦除的最小数目的单元。一次对沿字线115到118中的一者的一行存储器单元进行编程。通常,以指定次序对NAND阵列的行进行编程,在此情况下,开始于沿最接近于连接到接地或另一共用电位的串的端部的字线118的行。接下来对沿字线117的那行存储器单元进行编程,以此类推,贯穿区块123。最后对沿字线115的行进行编程。
第二区块125是类似的,其存储器单元串连接到与第一区块123中的串相同的全局位线,但具有不同组的字线和控制栅极线。通过行控制电路55将字线和控制栅极线驱动到其合适的操作电压。如果系统中存在一个以上平面或子阵列,例如图2的平面1和2,那么一个存储器结构使用在它们之间延伸的共用字线。或者,可能存在两个以上共享共用字线的平面或子阵列。在其它存储器结构中,分别驱动个别平面或子阵列的字线。
如上文参考的NAND专利和公开申请案中的几者中所述,存储器系统可经操作以在每个电荷存储元件或区域中存储两个以上可检测电荷电平,从而在每一者中存储一个以上数据位。存储器单元的电荷存储元件最通常是导电性浮动栅极,但可替代地是非导电性介电电荷俘获材料,如第2003/0109093号美国专利申请公开案中所述。
图4在概念上说明用作下文进一步描述内容中的实例的快闪存储器单元阵列7(图1)的组织。存储器单元的四个平面或子阵列131到134可位于单个集成存储器单元芯片上、位于两个芯片(每个芯片上有所述平面中的两者)或位于四个单独芯片上。特定布置对下文的论述内容并不重要。当然,系统中可能存在其它数目的平面,例如1个、2个、8个、16个或更多。通过矩形将所述平面个别地分成图4中所示的存储器单元区块,例如位于相应平面131到134内的区块137、138、139和140。每个平面内可能存在数十个或数百个区块。如上文所提及,存储器单元区块是擦除单位,即可一起物理擦除的最小数目的存储器单元。然而,为了获得增加的并行性,以较大的元区块单位来操作所述区块。来自每个平面的一个区块逻辑上连接在一起以形成元区块。展示四个区块137到140形成一个元区块141。元区块内的所有单元通常一起擦除。用于形成元区块的区块无需限于其相应平面内的相同相对位置,如由区块145到148组成的第二元区块143中所示。尽管通常优选使元区块延伸越过所有平面,但为了获得较高系统性能,可用动态地形成位于不同平面内的一个、两个或三个区块中的任何一者或所有的元区块的能力来操作存储器系统。这允许元区块的大小与一个编程操作中可用于存储的数据的量更紧密地匹配。
出于操作目的,个别区块又分成存储器单元页,如图5中所说明。举例来说,区块131到134中的每一者的存储器单元每一者被分成八个页P0到P7。或者,每个区块内可存在16个、32个或更多个存储器单元页。页是区块内的含有一次所编程的最小量的数据的数据编程和读取单位。在图3的NAND结构中,页由区块内的沿字线的存储器单元形成。然而,为了增加存储器系统操作并行性,两个或两个以上区块内的此类页可逻辑上连接成元页。图5中说明元页151,其由来自四个区块131到134中的每一者的一个物理页形成。举例来说,元页151包含四个区块中的每一者中的页P2,但元页的页不一定需要在区块的每一者内具有同一相对位置。
尽管优选越过所有四个平面并行编程和读取最大量的数据,但为了获得较高系统性能,存储器系统也可经操作以形成不同平面内的单独区块中的一个、两个或三个页中的任何一者或所有的元页。这允许编程和读取操作适应性地与可方便地并行处置的数据的量匹配,且减少元页的一部分保持未编程有数据的机会。
如图5中所说明,由多个平面的物理页形成的元页沿那多个平面的字线行含有存储器单元。不是同时编程一个字线行中的所有单元,而是更通常在两个或两个以上交错的群组中交替地对它们进行编程,每个群组存储一个数据页(在单个区块中)或一个数据元页(越过多个区块)。通过一次对交替的存储器单元进行编程,无需为每个位线提供包括数据寄存器和读出放大器的外围电路单元,而是在邻近位线之间对其进行时间共享。这节约了外围电路所需的衬底空间的量,且允许存储器单元沿行以增加的密度堆积。否则,优选沿行同时编程每一单元,以便使可从给定存储器系统得到的并行性最大。
参看图3,通过沿NAND串的至少一个端提供两行选择晶体管(未图示)而不是所示的单个行,来最方便地实现沿行同时将数据编程到每隔一个存储器单元中。一个行的选择晶体管接着响应于一个控制信号将区块内的每隔一个串连接到其相应的位线,且另一行的选择晶体管响应于另一控制信号将介入的每隔一个串连接到其相应的位线。因此,将两个数据页写入到每个存储器单元行中。
按照惯例,每个逻辑页中的数据的量通常是一个或一个以上数据扇区的整数数目,每个扇区含有512个字节的数据。图6展示页或元页的两个数据扇区153和155的逻辑数据页。每个扇区通常含有:部分157,其具有正被存储的512个字节的用户或系统数据;和另一数目的字节159,其用于与部分157中的数据有关或与其存储在里面的物理页或区块有关的额外开销数据。额外开销数据的字节数目通常是16个字节,使得扇区153和155中的每一者总共具有528个字节。额外开销部分159可含有在编程期间从数据部分157计算出的ECC、其逻辑地址、区块已经被擦除和重新编程的次数的经历计数、一个或一个以上控制旗标、操作电压电平和/或类似物,加上从此类额外开销数据159计算出的ECC。或者,额外开销数据159或其一部分可存储在其它区块中的不同页中。
随着存储器的并行性增加,元区块的数据存储容量增加,且因此数据页和元页的大小也增加。数据页于是可含有两个以上数据扇区。在一个数据页中具有两个扇区且每个元页具有两个数据页的情况下,一个元页中存在四个扇区。因此,每个元页存储2048个字节的数据。这是高度的并行性,且可能随着行中的存储器单元的数目增加而更进一步增加。为此,快闪存储器的宽度延伸,以便增加页和元页中的数据的量。
上文指出的物理上较小的可重新编程的非易失性存储卡和快闪驱动器商业上可以512兆字节(MB)、1千兆字节(GB)、2GB和4GB的数据存储容量购得,且可变得更高。图7说明主机与此大容量存储器系统之间的最常见的接口。主机处理由主机执行的应用软件或固件程序所产生或使用的数据文件。文字处理数据文件是一个实例,且计算机辅助设计(CAD)软件的绘图文件是另一个实例,主要用于例如PC、膝上型计算机和类似物的通用计算机主机中。pdf格式的文档也是这样的文件。静止数字视频摄像机针对每个图片产生一个存储在存储卡上的数据文件。蜂窝式电话利用来自内部存储卡上的文件(例如电话号码簿)的数据。PDA存储并使用若干不同文件,例如地址文件、日历文件和类似文件。在任一此类应用中,存储卡还可含有操作主机的软件。
图7中说明主机与存储器系统之间的常见逻辑接口。连续的逻辑地址空间161足够大以便为可存储在存储器系统中的所有数据提供地址。通常将主机地址空间分成数据群集的增量。每个群集可在给定主机系统中设计成含有若干数据扇区,大约在4到64个扇区是典型的。标准扇区含有512个字节的数据。
图7的实例中展示已经创建了三个文件1、2和3。在主机系统上运行的应用程序创建每个文件作为一组有序数据,并通过唯一名称或其它参考对其进行识别。尚未分配给其它文件的足够可用的逻辑地址空间由主机指派给文件1。文件1被展示为已经被分配有连续范围的可用逻辑地址。地址的范围通常还出于特定目的而分配,例如特定范围用于主机操作软件,所述地址接着避免用于存储数据,即使在主机将逻辑地址指派给数据时这些地址尚未被利用也是如此。
当主机稍后创建文件2时,主机类似地在逻辑地址空间161内指派两个不同范围的连续地址,如图7中所示。文件无需被指派有连续的逻辑地址,而是可为已经分配给其它文件的地址范围之间的地址片段。此实例接着展示主机所创建的又一文件3被分配有主机地址空间的先前未分配给文件1和2和其它数据的其它部分。
主机通过保存文件分配表(FAT)来记住存储器逻辑地址空间,其中由主机通过转换160指派给各个主机文件的逻辑地址被保存。随着新文件被存储、其它文件被删除、文件被修改等等,FAT表由主机频繁地更新。FAT表通常存储在主机存储器中,FAT表的备份也存储在非易失性存储器中并被不时地更新。正如任何其它数据文件一样,通常通过逻辑地址空间在非易失性存储器中存取所述备份。当主机文件被删除时,主机接着通过更新FAT表来解除分配先前分配给被删除文件的逻辑地址,以展示它们现在可用于与其它数据文件一起使用。
主机不关心存储器系统控制器选择用来存储文件的物理位置。典型的主机仅知道其逻辑地址空间和其已经分配给其各个文件的逻辑地址。另一方面,存储器系统通过典型的主机/卡接口,仅知道逻辑地址空间的数据已经被写入到的部分,但不知道分配给特定主机文件的逻辑地址,乃至不知道主机文件的数目。存储器系统控制器将主机所提供的用于存储或检索数据的逻辑地址转换成存储有主机数据的快闪存储器单元阵列内的唯一物理地址。区块163表示这些逻辑到物理地址转换的工作表,其由存储器系统控制器保存。
存储器系统控制器经编程以便以使系统的性能维持在高等级的方式将数据文件存储在存储器阵列165的区块和元区块内。在此说明中使用四个平面或子阵列。优选越过由来自所述平面中的每一者的区块形成的整个元区块,以系统允许的最大并行度对数据进行编程和读取。通常将至少一个元区块167分配为用于存储操作固件和存储器控制器所使用的数据的保留区块。可分配另一元区块169或多个元区块用于存储主机操作软件、主机FAT表等等。物理存储空间的大部分留下用于存储数据文件。然而,存储器控制器不知道接收到的数据如何已经由主机在其各个文件对象之间分配。存储器控制器通常从与主机的交互中知道的只是由主机写入到特定逻辑地址的数据存储在如由控制器的逻辑到物理地址表163保存的对应物理地址中。
在典型的存储器系统中,提供比必需的多几个的额外区块的存储容量,以存储地址空间161。内的数据的量。可提供这些额外区块中的一者或一者以上作为冗余区块,用于代替在存 -储器的使用寿命期间可能变得有缺陷的其它区块。包含在个别元区块内的区块的逻辑分组通常可出于各种原因而改变,所述原因包含冗余区块替代原本指定给元区块的有缺陷区块。一个或一个以上额外区块(例如元区块171)通常保存在擦除区块集区中。当主机将数据写入到存储器系统时,控制器将由主机指派的逻辑地址转换成擦除区块集区中的元区块内的物理地址。其它没有被用于将数据存储在逻辑地址空间161内的元区块接着被擦除,且被规定为擦除集区区块,以供在随后的数据写入操作期间使用。在优选形式中,将逻辑地址空间分成多个逻辑群组,每个逻辑群组含有等于物理存储器元区块的存储容量的数据量,因此允许所述逻辑群组一对一地映射到所述元区块中。
当原先存储的数据变得废弃时,存储在特定主机逻辑地址处的数据由新数据频繁地重写。作为响应,存储器系统控制器将新数据写入擦除的区块中,且接着针对那些逻辑地址改变逻辑到物理地址表,以识别那些逻辑地址处的数据所存储到的新的物理区块。接着擦除含有那些逻辑地址处的原先数据的区块,并使其可用于存储新的数据。如果在写入开始时,来自擦除区块集区的经预擦除的区块中没有足够的存储容量,那么此类擦除通常必须在当前数据写入操作可完成之前发生。这可能不利地影响系统数据编程速度。存储器控制器通常仅在主机将新数据写入到其给定逻辑地址时才了解到主机已经使同一逻辑地址处的数据变得废弃。因此,存储器的许多区块可能暂时存储此类无效数据。
区块和元区块的大小逐渐增加,以便高效地使用集成电路存储器芯片的面积。这导致较大比例的个别数据写入存储小于元区块的存储容量(且在许多情况下,甚至小于区块的存储容量)的数据量。由于存储器系统控制器通常将新数据引导到擦除集区元区块,所以这可能导致元区块的多个部分变得未填满。如果新数据是存储在另一元区块中的某数据的更新,那么来自所述另一元区块的具有与新数据元页的那些逻辑地址邻接的逻辑地址的剩余有效数据元页也合意地以逻辑地址次序复制到新的元区块中。旧的元区块可保留其它有效数据元页。随着时间的过去,这导致个别元区块的某些元页的数据变得废弃和无效,且由被写入到不同元区块的具有同一逻辑地址的新数据代替。
为了保存足够的物理存储器空间以在整个逻辑地址空间161上存储数据,周期性地对此类数据进行压缩或合并(垃圾收集)。尽可能地将数据扇区以与其逻辑地址相同的次序保存在元区块内也是合乎要求的,因为这使得以连续逻辑地址读取数据更高效。因此,通常为了此额外目标而执行数据压缩和垃圾收集。第6,763,424号美国专利中描述当接收部分区块数据更新时管理存储器的一些方面以及元区块的使用。
数据压缩通常涉及从元区块读取所有有效数据元页,和将所述元页写入到新的元区块,在所述过程中忽略具有无效数据的元页。具有有效数据的元页还优选以与存储在其中的数据的逻辑地址次序匹配的物理地址次序布置。新的元区块中被占据的元页的数目将小于旧的元区块中被占据的元页的数目,因为含有无效数据的元页没有被复制到新的元区块。接着擦除旧的区块,并使其可用于存储新的数据。通过合并获得的额外元页容量可接着用于存储其它数据。
在垃圾收集期间,从两个或两个以上元区块收集具有邻接或几乎邻接的逻辑地址的有效数据的元页,并将其重写到另一元区块中,通常是擦除区块集区中的一个元区块。当所有的有效数据元页都从原先的两个或两个以上元区块复制出来时,可擦除所述元区块以供将来使用。
数据合并和垃圾收集会花费时间,且可能影响存储器系统的性能,尤其是在数据合并或垃圾收集需要在可执行来自主机的命令之前发生时。此类操作通常由存储器系统控制器调度以尽可能在后台发生,但执行这些操作的需要可能导致控制器不得不给主机忙碌状态信号,直到这个操作完成为止。主机命令的执行可延迟的实例是擦除区块集区中没有足够的预擦除元区块用来存储主机想要写入到存储器中的所有数据,且首先需要数据合并或垃圾收集来清除一个或一个以上有效数据的元区块,所述元区块接着可被擦除。因此,注意力已经被引导到管理对存储器的控制,以便使此类中断减到最小。在以下美国专利申请案中描述许多此类技术:2003年12月30日申请的题为“Management ofNon-Volatile Memory Systems Having Large Erase Blocks”的第10/749,831号美国专利申请案,现在的第2005/0144358 A1号公开案;2003年12月30日申请的题为“Non-VolatileMemory and Method with Block Management System”的第10/750,155号美国专利申请案;2004年8月13日申请的题为“Non-Volatile Memory and Method with Memory PlanesAlignment”的第10/917,888号美国专利申请案,现在是第2005/0141313 A1号公开案;2004年8月13日申请的第10/917,867号美国专利申请案,现在是第2005/0141312A1号公开案;2004年8月13日申请的题为“Non-Volatile Memory and Method with PhasedProgram Failure Handling”的第10/917,889号美国专利申请案,现在是第2005/0166087 A1号公开案;2004年8月13日申请的题为“Non-Volatile Memory and Method with ControlData Management”的第10/917,725号美国专利申请案,现在是第2005/0144365 A1号公开案;2005年7月27日申请的题为“Non-Volatile Memory and Method with Multi-StreamUpdate Tracking”的第11/192,220号美国专利申请案;2005年7月27日申请的题为“Non-Volatile Memory and Method with Improved Indexing for Scratch Pad and UpdateBlocks”的第11/192,386号美国专利申请案;以及2005年7月27日申请的题为“Non-Volatile Memory and Method with Multi-Stream Updating”的第11/191,686号美国专利申请案。
高效地控制具有非常大的擦除区块的存储器阵列的操作的一个难题是使给定写入操作期间存储的数据扇区的数目与存储器的区块的容量和边界匹配并对准。一种手段是配置元区块,所述元区块用于以少于最大数目的区块存储来自主机的新数据,所述数目的区块是存储少于填充整个元区块的量的数量的数据所必需的。2003年12月30申请的题为“Adaptive Metablocks”的第10/749,189号美国专利申请案(现在是第2005/0144357 A1号公开案)中描述适应性元区块的使用。2004年5月7日申请的第10/841,118号专利申请案(现在是第2005/0144363 A1号公开案)以及2004年12月16日申请的题为“Data RunProgramming”的第11/016,271号专利申请案(现在是第2005/0144367 A1号公开案)中描述数据区块之间的边界与元区块之间的物理边界的配合。
存储器控制器还可使用来自FAT表(其由主机存储在非易失性存储器中)的数据,以更高效地操作存储器系统。一种此类使用是通过解除分配其逻辑地址来了解数据何时已经由主机识别为废弃的。知道这一点将允许存储器控制器在其会正常地通过主机将新数据写入到那些逻辑地址而了解它之前调度含有此类无效数据的区块的擦除。2004年7月21日申请的题为“Method and Apparatus for Maintaining Data on Non-Volatile MemorySystems”的第10/897,049号美国专利申请案(现在是第2006/0020744 A1号公开案)中描述这种情况。其它技术包含监视将新数据写入到存储器的主机模式,以便推导出给定写入操作是单个文件还是(如果有多个文件)文件之间的边界所在之处。2004年12月23日申请的题为“FAT Analysis for Optimized Sequential Cluster Management”的第11/022,369号美国专利申请案(现在是第2006/0020745 A1号公开案)描述这种类型的技术的使用。
为了高效地操作存储器系统,对控制器来说合乎需要的是尽可能多地知道由主机指派给其个别文件的数据的逻辑地址。数据文件接着可由控制器存储在单个元区块或元区块群组内,而不是当不知道文件边界时分散在更大数目的元区块之间。结果是数据合并和垃圾收集操作的数目和复杂性减小。因此,存储器系统的性能改进。但如上文所述,当主机/存储器接口包含逻辑地址空间161(图7)时,存储器控制器难以知道关于主机数据文件结构的较多信息。
参看图8,以不同的方式来说明图7中已经展示的典型逻辑地址主机/存储器接口。主机向主机产生的数据文件分配逻辑地址。存储器系统于是看到这些逻辑地址,并将其映射到实际存储数据的存储器单元的区块的物理地址中。
基于文件的存储器接口与操作
主机与用于存储大量数据的存储器系统之间的一种不同类型的接口不使用逻辑地址空间。主机改为通过唯一文件ID(或其它唯一参考)和所述文件内的数据单位(例如字节)的偏移地址在逻辑上寻址每个文件。此文件地址是直接给存储器系统控制器的,存储器系统控制器接着保存其自己的关于每个主机文件的数据物理上存储在何处的表。可用如上文相对于图2到图6所述的同一存储器系统来实施这种新的接口。与上文所述内容的主要不同之处是存储器系统与主机系统通信的方式。
图9中说明这种基于文件的接口,其应与图7的逻辑地址接口相比较。文件1、2和3中的每一者的识别以及图9的文件内的数据的偏移量被直接传递到存储器控制器。此逻辑地址信息接着由存储器控制器功能173转换成存储器165的元区块和元页的物理地址。文件目录记住每个所存储的扇区、页或其它文件数据单位所属的主机文件。
图10还说明基于文件的接口,其应与图8的逻辑地址接口相比较。图8的逻辑地址空间和主机保存的FAT表在图10中不存在。而是通过文件编号和所述文件内的数据的偏移量向存储器系统识别由主机产生的数据文件。存储器系统控制器接着直接将所述文件映射到存储器单元阵列的物理区块,并保存里面存储有主机文件的存储器区块的文件目录和索引表信息。于是,主机没有必要保存当前对管理逻辑地址接口来说是必需的文件分配表(FAT)。
图11是直接数据文件系统的主要功能的概括方框图,所述功能由其处理器且由控制器的其它电路执行的存储器系统固件实行。图11提供了可在其中考虑下文描述的特定存储器操作的总体框架。基于文件的接口601层在存储器系统与外部主机系统或正在同一存储卡或快闪驱动器上执行的主机应用程序之间传递命令和数据,以实现存储器系统的三个主要功能,即写入文件、删除文件和读取文件。数据存储在快闪存储器阵列603中。
文件区块管理功能605根据借以识别数据的文件来组织数据在快闪存储器中的存储,并使存储用于一个以上文件的数据的区块的出现减到最少。存储器603的存储器单元的物理区块是数据管理的基本单位。
通过功能607将数据组织成元页,以写入到存储器603中,使得个别元页含有特定文件内的邻接逻辑偏移地址范围的数据。功能609控制对存储器603的存取以读取存储在其中的数据。当由主机命令时,删除文件的数据致使功能611更新功能613所保存的文件索引信息和功能615中的区块列表。
文件数据索引613通过唯一文件识别符和所述文件内的数据的偏移地址将存储在存储器603中的个别文件编入索引。每个文件的数据被存储为一组具有邻接逻辑偏移地址的数据群组。文件目录识别个别文件在多组数据群组条目的文件索引表(FIT)中的位置。被擦除的(部分地编程有文件数据或含有文件数据以及废弃数据)的区块的身份由区块列表功能615保存。
上文所述的垃圾收集和数据合并功能的主要目的是回收未经使用的存储器空间,以用于存储额外数据。在垃圾收集中,将源区块的有效数据从也含有废弃数据的区块复制到具有至少一些经擦除空间的一个或一个以上目的地区块中。这将有效数据收集到数目较少的区块中,从而一旦原先源区块被擦除,便释放由废弃数据占用的容量。在数据合并中,一个部分填充的区块(其因此也含有经擦除但未经使用的空间)的有效数据与另一部分填充的区块的有效数据进行组合。部分填充的区块最常见是由写入已关闭但其最后一个擦除区块仅部分地填充的新文件引起的。一旦数据被合并,接着擦除含有刚被复制的数据(其于是是复制数据)的源区块,并使其可用于存储新数据。
垃圾收集和数据合并两者在本文可一起作为区块回收来处置。功能617通过控制有效文件数据从具有未经编程的元页或含有废弃数据的物理区块复制到其它区块来回收区块。这允许原先区块被擦除,以回收其所含有的未经使用的空间,并使此空间可用于存储新的文件数据。功能619根据可回收容量的量和经擦除区块的数目,适应性地控制区块回收操作的发生和持续时间。以维持存储器系统的良好的总体性能的方式,以相对于新文件数据的写入速率的最佳速率执行区块回收。
在图11的功能图中,转换层621和接口层623在文件接口601之上,文件接口601与快闪存储器的后端系统介接,并控制其操作。在此实例中,接口层623具有根据三个不同协议中的一者,用主机或以其它方式将数据传送到存储器系统外部的能力。文件接口625是本文主要描述的文件接口,其中个别文件的数据由唯一文件识别符和所述文件内的逻辑偏移地址识别。对象接口627的主要用途是在电子装置之间传递数据文件,其中文件的大小通常是已知的。现存的用于接口627的协议包含来自微软公司的媒体传送协议(MTP)和图片传递协议(PTP)。此实例中还包含向后兼容逻辑(LBA)接口629。以快闪存储卡当前所使用的协议,通过接口629传递数据,这与磁盘驱动器系统的情况类似,其中主机将数据寻址到存储器系统的已界定的逻辑地址空间。
转换层621包含协议适配器631、633和635,其用于将相应接口协议625、627和629的协议转换成文件接口601的共用协议。命令、数据格式等等通过转换层在不同协议之间转换。LBA协议适配器635另外将存储器系统的逻辑地址空间分成静态文件。这些文件接着由文件接口601以与通过接口625和627传送的不同文件相同的方式进行处置。可参考2005年8月3日申请的发明人为S.A.Gorobets的第11/196,869号美国专利申请案获得LBA协议适配器635的功能的细节。在2005年12月21日申请的发明人为Alan Sinclair的第11/316,577号美国专利申请案中给出转换和接口层621和623的更多信息。
当新的数据文件被编程到存储器中时,数据被写入到存储器单元的经擦除区块中,从所述区块中的第一物理位置开始,并依次循序地进行完所述区块的位置。数据以从主机接收到的次序被编程,不管所述数据在文件内的偏移量的次序如何。编程继续进行,直到所述文件的所有数据都已经写入到存储器中为止。如果文件中的数据的量超过单个存储器区块的容量,那么当第一区块满时,编程在第二经擦除区块中继续进行。以从第一位置开始的次序,以与第一存储器区块相同的方式对第二存储器区块进行编程,直到文件的所有数据都被存储或第二区块满为止。可以文件的任何剩余数据对第三或额外区块进行编程。存储单个文件的数据的多个区块或元区块无需是物理上或逻辑上邻接的。为了便于阐释,除非另外规定,否则希望本文所使用的术语“区块”指代擦除区块单位或多区块“元区块”,视特定系统中是否使用元区块而定。
图12的状态图说明图11中所示的存储器操作的总体运行。个别存储器区块可被视为处于三个状态中的一者。这些是:经擦除区块641、区块643,其存储有效文件数据而不具有可回收容量;区块645,其可含有一些有效文件数据,但还具有来自未经编程的经擦除页和/或存储在其中的废弃(无效)数据的可回收容量。数据通过功能647写入到经擦除存储器区块,从而形成类别643或645中的区块,视所得的经编程区块是否保留任何可回收容量而定。当文件被删除(如由功能649所指示)时,含有文件的数据的区块643转换成具有可回收容量的区块645。区块645的未经使用的存储容量由功能651回收,这导致将这些区块返回到新的数据可写入到的经擦除区块641的状态。
参看图13A,说明将数据文件写入到存储器系统。在此实例中,数据文件181大于存储器系统的一个区块或元区块183的存储容量,其被展示为在垂直实线之间延伸。数据文件181的一部分184因此也被写入到第二区块185中。将这些存储器单元区块展示为物理上邻接,但它们无需如此。来自文件181的数据以与其从主机被串流的方式相同的方式被写入,直到文件的所有数据都已经写入到存储器中为止。在图13A的实例中,数据181是文件的初始数据。
存储器系统管理和记住所存储数据的优选方式是使用可变大小的数据群组。即,将文件的数据存储为多个数据群组,所述数据群组可以界定的次序链接在一起以形成完整的文件。然而,优选的是,存储器系统控制器通过使用文件索引表(FIT)来保存数据群组在文件内的次序。当来自主机的数据流被写入时,只要文件数据的逻辑偏移地址中或数据将存储在其中的物理空间中存在不连续性,就开始新的数据群组。此物理不连续性的实例是当文件的数据填充一个区块并开始被写入到另一区块中的时候。这在图13A中说明,其中第一数据群组填充第一区块183,文件的剩余部分184存储在第二区块185中,作为第二数据群组。第一数据群组可由(F0,D0)表示,其中FO是数据文件的开头的逻辑偏移量,且DO是存储器内文件开始的物理位置。第二数据群组表示为(F1,D1),其中F1是存储在第二区块185的开头处的数据的逻辑文件偏移,且D1是所述数据所存储的物理位置。
通过主机-存储器接口传递的数据的量可用若干数据字节、若干数据扇区或以某一其它颗粒度来表达。在通过当前逻辑地址接口与大容量存储器系统通信时,主机最常用字节颗粒度来界定其文件的数据,但接着将字节分组成每者具有512个字节的扇区,或分组成每者具有多个扇区的群集。这样做通常是为了简化存储器系统的操作。尽管本文所述的基于文件的主机-存储器接口可使用某一其它数据单位,但原先主机文件字节颗粒度通常是优选的。即,数据偏移量、长度及类似物优选用字节(数据的最小合理单位)而不是用扇区、群集或类似物来表达。这允许用本文所述的技术更高效地使用快闪存储器存储设备的容量。
以图13A中所说明的方式写入到存储器中的新文件接着在FIT中以所述次序表示为数据群组的索引条目(F0,D0)、(F1,D1)的序列。即,只要主机系统想要存取特定文件,主机就将其文件ID或其它标识发送到存储器系统,存储器系统接着存取其FIT以识别组成所述文件的数据群组。为了方便存储器系统的操作,个别数据群组的长度<长度>也可包含在其个别条目中。在使用时,存储器控制器计算并存储数据群组的长度。
只要主机以打开状态保存图13A的文件,物理写入指针P就也优选被保存,以界定用于针对所述文件写入从主机接收到的任何进一步数据的位置。在物理存储器中的文件的结尾处写入用于所述文件的任何新的数据,而不管所述新数据在文件内的逻辑位置如何。存储器系统允许多个文件同时保持打开,例如4个或5个此类文件,并保存所述文件中的每一者的写入指针P。不同文件的写入指针指向不同存储器区块中的位置。如果当存储器系统对打开文件的数目的限制已经存在时主机系统想要打开新的文件,那么首先关闭打开的文件中的一者,且接着打开新的文件。
图13B说明通过主机将数据附加到图13A的先前写入但仍打开的文件的结尾。展示数据187由主机系统添加到文件的结尾,其还在所述文件的数据的结尾处写入第二区块185中。所附加的数据变成数据群组(F1,D1)的一部分,所述数据群组因此现在含有更多数据,因为现存数据群组184与所附加数据189之间不存在逻辑或物理地址不连续性。因此,完整的文件在FIT中仍表示为索引条目(F0,D0)、(F1,D1)的序列。指针P的地址也改变成所存储的附加数据的结尾的地址。
图13C中展示将数据区块191插入到图13A的先前写入的文件中的实例。尽管主机正将数据191插入到文件中,但存储器系统将所插入的数据附加在先前写入的文件数据的结尾处的位置193处。当数据被插入到打开文件中时,没有必要以其逻辑次序来重写文件的数据,尽管这可以稍后在主机关闭所述文件之后在后台进行。由于插入的数据完全存储在第二存储器区块185内,所以如果形成单个新群组(F1,D3)。但进行此插入导致图13A的先前数据群组(F0,D0)被分成两个群组,一个(F0,D0)在插入之前,且一个(F2,D1)在插入之后。这是因为每当存在数据的逻辑不连续性时就需要形成新的数据群组,所述不连续性例如在插入的开头F1处且在插入的结尾F2处发生。群组(F3,D2)是物理地址D2为第二区块185的开头的结果。群组(F1,D3)和(F3,D2)即使存储在同一存储器区块中也是分别保存,因为存储在所述群组中的数据的偏移量中存在不连续性。具有插入的原先文件于是在存储器系统FIT中由数据群组索引条目(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)以所述次序表示。从图13A、图13B和图13C的实例应注意,可在不使存储器中的任何数据废弃的情况下,写入新的或现存文件的新数据。
作为图13C中所说明的将数据插入到现存文件中的替代方案,只要数据已经插入,主机就可将文件作为单独文件重写到存储器中。接着,存储器系统可将此单独文件视为新的文件。旧的文件接着被主机删除,且存储器系统可通过回收旧文件存储在其中的空间来作出响应,所述旧文件的数据现在是废弃的。
图13D说明另一实例,其中原先以图13A中所示方式写入的数据的某一部分被更新。展示数据文件的一部分195被更新。不是用所述更新重写存储器系统中的整个文件,而是将文件的经更新部分197附加到先前写入的数据。先前写入的数据的部分199现在是废弃的。在更新之后,文件在存储器系统FIT中由数据群组索引条目(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)以所述次序表示。图13A的所述单个数据群组(F0,D0)再次被分成图13D中的片段,在经更新部分之前的一个片段、经更新部分以及在经更新部分之后的一个片段。回收由废弃数据占用的空间199是合乎需要的,但优选稍后完成此步骤,而不是作为将文件数据写入到存储器中的过程的一部分。此回收通常将导致被存储的特定文件的数据的更少数目的数据群组。
在根据前面的描述内容的文件创建或修改之后,优选将每个文件的数据的偏移量维持为以正确的逻辑次序连续。因此,举例来说,作为将数据插入到文件中的操作的一部分,由主机提供的插入的数据的偏移量从紧接在所述插入物之前的偏移量开始是连续的,且在所述插入物之后的已经在文件中的数据递增所插入数据的量。更新现存文件最常见的是导致现存文件的给定地址范围内的数据由类似量的经更新数据代替,因此文件的其它数据的偏移量通常不需要被代替。
将注意,上文相对于图13所描述的所有数据分配和索引功能都由存储器系统的控制器执行。连同适当的命令一起,主机仅传送正被发送到存储器系统的文件ID和文件内的数据的偏移量。存储器系统完成剩余的工作。
以刚才描述的方式直接将文件数据从主机写入到快闪存储器的优势在于这样存储的数据的颗粒度或分辨率可维持成与主机的相同。举例来说,如果主机应用程序写入具有1字节颗粒度的文件数据,那么所述数据可也以1字节颗粒度写入到快闪存储器中。接着以字节数目来测量数据在个别数据群组内的量和位置。即,可在主机应用程序文件内分别寻址的同一数据偏移单位在存储在快闪存储器中时也可在所述文件内分别寻址。接着,区块内的同一文件的数据群组之间的任何边界在索引表中被指定为最近字节或其它主机偏移量单位。类似地,区块内的不同文件的数据群组之间的边界以主机偏移量的单位界定。
对于较大区块存储器,本文使用术语“扇区”以表示ECC与之相关联的存储数据的单位。扇区也是转移到快闪存储器和从快闪存储器转移的数据的最小单位。使用“页”来表示区块内的存储器单元的单位,且“页”是最小编程单位。使用术语“元页”来表示具有元区块的完整并行性的页。元页是最大编程单位。
文件区块管理
现将描述图11的文件到区块映射功能605的实例。当将来自外部主机或来自内部主机处理,或从存储器中的某一其它位置复制(作为数据回收操作的一部分)的数据写入存储器系统时,根据特定过程选择用于存储所述数据的目的地区块。在此过程中,基于存储在区块中的文件数据的结构,来辨别某些类型的区块。接着,存储在存储器系统中的每个文件被注释为处于若干状态中的一者,每个文件状态由里面存储有所述文件的数据的区块的数目和类型来界定。当要为文件写入数据时,其当前状态和所允许的从一个状态到另一状态的转变被控制以限制含有特定文件的数据(且还含有一个或一个以上其它文件的数据)的区块的数目。这促进存储器区块的高效利用,并减少了稍后的对在整个存储器中维持足够的经擦除区块以用于接受新的或经复制的数据来说必要的回收操作的频率。
在此实例中辨别的含有文件数据的区块的类型如下:
“文件区块”,其已经完全编程,且含有单个文件的有效数据。所述区块还可含有一些废弃数据。
“编程区块”,其已经部分编程,且含有仅单个文件的有效数据。一些经擦除容量保留在所述区块中。所述区块还可含有一些废弃数据。
“共用区块”,其已经部分编程,且含有两个或两个以上文件的有效数据。一些经擦除容量保留。所述区块还可含有一些废弃数据。
“满共用区块”,其已经完全编程,且含有两个或两个以上文件的有效数据。所述区块还可含有一些废弃数据。
“满编程区块”,其为已经变满的编程区块在其含有文件的最新近写入的数据且还具有一些废弃数据,且针对所述文件而存在的偏移地址的范围可由单个区块容纳时的转变表示。如果待针对所述文件写入的下一数据超出单个区块可容纳的偏移地址范围,那么满编程区块接着变成被指定为文件区块。满编程区块等效于现存逻辑区块地址(LBA)系统的满混乱区块,因为文件的某些逻辑偏移量多次写入区块中,一次是指定有效数据,且至少另一次是为了指定废弃数据。
另一种类型的区块是“经擦除区块”,其中区块的总容量未经编程,且可用于接受数据。当存储器充满或几乎充满数据时,通常通过连续回收正被使用的区块内存在的未经使用的容量来维持指定最小数目的经擦除区块的集区。
“分形区块”是涉及编程区块、共用区块或满共用区块的统称术语。文件的分形区块含有所述文件的有效数据,以及未经编程的存储器容量、其它文件的有效数据或两者。本文所述的技术的主要目的是通过管理被指定为接收文件的数据的活动区块的类型来使存储器系统中的分形区块的数目减到最小。这减少了保存指定最小数目的经擦除区块所必需的垃圾收集和数据合并(区块回收操作)的情况。因为内部复制数据以回收先前编程的区块中的未经使用的容量的片段所花费的时间较少,所以数据可写入到存储器的速率于是就增加。
本文还使用额外术语来共同描述其它类型的区块:
“部分区块”,其含有一些未经编程的容量,一个或一个以上文件的有效数据,且可含有一些废弃数据。编程区块和共用区块是部分区块的实例。
“废弃区块”是含有一些废弃数据的文件区块或满共用区块。废弃区块不含有任何经擦除容量,且含有有效数据和废弃数据两者。
“无效区块”不含有有效数据。无效区块含有至少一些废弃数据,且可含有经擦除容量,但不含有任何有效数据。
图14A到图14E说明使用上文所列出的类型的区块的一些实例。在图14A中,文件A的数据具有填满的区块661和663,以及部分填充的第三区块665。在此实例的每个区块中,从左向右写入数据,首先填充区块661,接着填充区块663且其后写入到区块665的一部分中。区块665的剩余部分是可存储额外数据的未经编程的经擦除容量。区块661和663是文件区块(根据上文所列出的定义),且区块665是编程区块。任何新的数据将写入到区块665中,在编程指针P处开始。指针P随着数据被写入到区块而从左向右移动,以总是指向区块中的下一可用存储位置。此指针为保留未经编程的经擦除容量的个别区块(不管是当前活动的与否)而保存,使得待写入到区块的任何其它数据的物理地址总是已知的。
图14B的实例展示文件A被存储在文件区块662和满编程区块667中。根据上文针对满编程区块给出的定义,区块667含有文件A的最新近写入的数据、一些废弃数据且没有未经使用的容量。还是根据所述定义,存储在两个区块662和667中的文件A的数据的总量等于一个区块的存储容量。在编程指针P所示的区块667的结尾处写入文件A的最后的数据。接收到的文件A的任何进一步数据将被编程到另一区块中。所述区块可以是区块667中的文件A的数据被收集到其中的另一区块,因为由废弃数据占用的空间将被回收。或者,可将额外数据写入到完全擦除的区块中。在任一种情况下,指针P移动到新区块且位于文件A的额外数据的开始位置处。区块667于是变成文件区块。区块667因此是暂时的,因为其仅在正如图14B中所示的状态的时间内存在。就在所述区块完全充满文件A的数据前,所述区块是编程区块,且文件A的任何新数据被写入之后,所述区块立即变成文件区块。
图14C的实例包含区块669,其为共用区块,因为其含有另一文件B的数据以及当前文件A的数据,加上一些未经编程的容量。在展示有编程指针P的位置开始,在文件A的结尾处将新数据写入到区块669中。区块669是文件A的活动区块。其还可以是文件B的活动区块,在这种情况下,可在编程指针P处写入文件A或B中的任一者的额外数据。或者,单独区块(未图示)可以是文件B的活动区块。
文件的数据可直接写入到已经含有另一文件的数据的部分区块的经擦除容量中,而不是写入到经擦除区块中,以便以此形式较好地利用未经编程的容量。这在文件数据的已知数量小于待写入的满区块的容量时尤其有用。搜索现存的部分区块以找到适合待写入的数据的已知量的经擦除容量的量。将数据的页(或元页,如果使用元区块的话)的数目与部分区块中未经编程的经擦除容量的页的数目进行比较。当以此方式对编程区块的未经使用的经擦除空间进行编程时,所述区块被转换成共用区块。
在图14D中,文件A存储在文件区块661、区块671的一部分和区块673的一部分中。区块671是满共用区块,因为其充满两个文件A和B的数据。区块673是编程区块,与图14A的区块665类似。区块673是文件的活动区块,且指针P指向额外数据将首先写入到的区块673内的未经使用的容量的位置。
在图14E的实例中,文件A写入到满共用区块671和共用区块675的一部分中。区块675含有第三文件C的数据。指针P指向额外数据将写入到的活动区块675的未经使用的部分中的第一位置。
尽管图14A到图14E的实例展示存储在多个区块中的文件A的数据,以便说明几个不同类型的区块,但在许多情况下,文件可足够小以存储在更少数目的区块中,甚至单个区块中。本文所述的技术也可应用于此类小文件。而且,较大的文件可占用三个以上区块中的页。
将注意,区块665、667、669、671、673和675是分形区块。希望使任何一个文件的数据所占用的分形区块的数目减到最小,因为它们的存在增加了需要回收它们中的未经使用的容量的可能性,且因此不利地影响了系统性能。未经使用的经擦除容量存在于部分区块665、669、673和675中,但将新数据从主机直接写入到此空间可能不是高效的,除非文件的未写入数据的数量已知且所述已知量与这些区块中的一者的未经使用的容量匹配。最常见的情况是,用于特定文件的来自主机的数据的量不是已知的,所以这些位的容量不容易被填满。因此,在回收操作期间,数据可能需要从另一区块移动到未经使用的空间中,以便高效地利用存储器容量。区块669、671和675含有一个以上文件的数据,这意味着当所述文件中的一者被删除或其存储在共用区块中的数据变成废弃时,将可能进行数据回收以回收由废弃数据占用的区块的容量。
因此,为了减少耗费时间的数据回收操作的数目,允许特定文件的数据在任一时刻仅存储在一个、两个或某一其它数目的分形区块中。在本文所描述的特定实例中,任何一个文件的数据可存储在两个或更少(但不会更多)分形区块中。这样限定指定新的活动区块来存储文件的数据的过程。将一组允许的文件状态中的一者指派给通过里面存储有每个文件的数据的区块的类型界定的所述文件。当新的活动区块需要被指派以用于接收特定文件的数据时,例如当现存区块变满时,这样指定的区块的类型取决于文件的状态且(在许多情况下)还取决于其它因素。
图15的表中在本文所述的存储器操作概念的特定实施方案中,用分形区块和里面存储有文件的数据的满编程区块的类型和组合,来给出十个允许的文件状态0到9的定义。允许的文件状态中的每一者允许数据存储在不多于两个的分形区块或仅一个满编程区块中。可与文件相关联的文件区块的数目没有限制。这些文件状态用于在文件数据由存储器从主机接收时且在数据在回收操作期间重新定位在存储器内时,为所述文件数据的存储选择活动区块。在文件索引表(FIT)613(图11)中(例如在所述文件的FIT记录的标头中)监视并记录存储在存储器系统中的每个文件的状态,以及其它信息。只要状态转变发生,FIT条目就更新以记录新的文件状态。
图15中所界定的文件状态0到9之间的所引起的主要转变由图16的状态图说明,且在图17的表中描述。这三个图提供存储器系统的优选操作的细节,且被相信足以独立地完成这项工作。然而,现在将另外描述此操作的某些方面。
如图15的表中所示,指定文件处于状态0,因为没有数据存储在分形区块中。仅另一类型的区块是文件区块,所以所述文件具有仅写入到一个或一个以上文件区块的数据,这最可能是临时情况,因为数据的量与区块容量之间需要精确性,或者所述文件不具有存储在任何区块中的数据。后一种情况在存储器系统第一次接收到新文件的信息但尚未写入所述文件的任何数据时发生。在任一种情况下,活动区块需要被指定以接收数据。当具有未知长度的数据从主机被提供时,经擦除区块被指定为活动区块。一旦数据写入到所述经擦除区块中,文件就从状态0转变到状态2(见图16),因为此区块已经变成活动编程区块。
但当在文件状态0下,且从主机接收到的新文件的数据具有小于区块的存储容量的已知长度时,如果一个部分区块可用且具有足够的经擦除容量以用于存储已知量的数据,那么将所述部分区块指定为活动区块。文件那时已经从状态0转变到状态3(见图16)。此部分区块可能是编程区块或共用区块。在已知数据长度与可用部分区块的剩余存储容量之间实现可能的最好配合。如果没有具有用于已知量的数据的足够容量的部分区块,那么将数据写入到经擦除区块,从而导致文件改为从状态0转变到状态2。
状态2下的文件的特征在于:分配编程区块来接收所述文件的额外数据。但如果所述文件足够大,那么所述区块最终将变满,且那么需要指定另一活动区块。如果满区块(现为文件区块)不含有废弃数据,那么文件返回到状态0,其中不指定活动区块。接着将经擦除区块或部分区块指定为新的活动区块,视待存储的额外数据的量而定,如上文所论述。但如果满区块含有废弃数据,且文件的最大偏移量小于可由单个区块容纳的偏移地址的范围,那么根据上文给出的定义,所述区块是满编程区块。于是,优选的情况是,通过将区块的有效数据复制到经擦除区块来压缩所述区块,且原先区块被擦除。于是所得区块含有此有效数据和经擦除容量,其为部分区块。此新的部分区块接着成为活动编程区块。文件的状态那时已经从状态2转变到状态1,且接着回到状态2(见图16)。但如果在状态1时,接收到偏移地址超过单个区块可容纳的地址范围的文件的数据,那么满编程区块变成文件区块。所述文件那时已经转变到状态0。
作为部分区块,当文件处于状态2时存在的活动编程区块在回收操作期间可被选择为来自源区块的另一文件的已知量的数据的目的地区块。编程区块的身份保存在部分区块的列表上,其包含所述列表上的区块中的每一者中的可用经擦除容量。待从源区块复制的数据的量配合于列表上的部分区块的经擦除容量。如果在回收操作期间,将当前文件的编程区块选择为另一文件的数据的目的地区块,那么在所述另一文件的数据被复制到其经擦除容量中之后,编程区块变成当前文件的活动共用区块。所述文件那时已经从状态2转变到状态3(见图15和图16)。
另外,当文件处于状态2时,存在一种可能性:写入到文件的编程区块中的数据可能被复制到作为存储另一文件的数据的部分区块的另一区块中(作为回收编程区块的操作的一部分)。在这种情形下,回收操作的目的地区块变成活动共用区块。文件已经从状态2转变到状态4。文件的进一步数据现写入到所述共用区块中,所述共用区块为文件的活动区块。
当状态2下的文件的活动共用区块变满时,其被指定为满共用区块。接着,所述区块包含在最多两个分形区块中,即满共用区块和编程区块。由于可能不分配另一个分形区块以接收所述文件的数据,所以可将所述文件的数据从编程区块复制到经擦除区块中,且此新的区块接着被指定为所述文件的活动编程区块。此类文件数据复制作为文件状态转变的一部分在本文称为“数据转变”,且在图16和图17中这样注释。文件那时已经从状态4转变到状态8。
在状态转变可被视为完成之前,任一数据转变均作为单个操作完成。这意味着如果文件需要可将数据写入其中的活动区块,那么存储器不能执行其它操作,直到数据转变的数据复制部分完成为止。此数据复制因此通常不随时间而与其它存储器操作交错。
从文件状态4转变到状态3发生在其编程区块被指定为回收区块时。作为回收操作的一部分,编程区块中的文件的数据移动到共用区块,其后共用区块变成所述文件的活动区块。另外,一旦状态4下的文件的活动共用区块变满,那么文件存储在两个分形区块中。不能将另一区块分配为活动区块,直到所述分形区块中的一者被去除为止。因此作为从状态4转变到状态7的一部分,编程区块中的数据移动(数据转变)到部分区块的经擦除容量,从而去除分形编程区块。接着,所得共用区块变成文件的活动区块。
当在状态3下时,文件的数据写入到活动共用区块中。如果文件的数据在回收操作期间从活动共用区块移动到部分区块的经擦除容量,那么目的地部分区块变成文件的进一步数据写入到其的活动共用区块。文件那时已经从状态3转变到状态6。但如果待从源编程区块移动的数据的量不能很好地配合部分区块列表上的部分区块的容量,那么共用区块中的文件数据从所述区块移动到经擦除区块,且所述经擦除区块变成文件的活动编程区块。文件那时已经从状态3转变到状态2。在此状态转变的过程中,活动区块的分配包含进行从原先共用区块到新的经擦除区块的数据转变,所述新的经擦除区块接着变成文件的活动编程区块。
文件处于状态3下时的另一可能性是:文件的数据写入到的活动共用区块变满。文件那时不具有可写入进一步数据的活动区块,且已经转变到状态5。此状态在操作方面与文件状态0的类似之处在于不存在文件的活动区块,但不同之处在于当文件处于状态5时,文件的数据包含在满共用区块中。当处于状态0时,不存在含有文件的数据的分形区块。状态0和状态5两者通常是临时状态,一写入文件的额外数据,就从所述状态发生转变。
当处于状态5时,到达其它文件状态的可能转变与文件处于状态0时的转变类似,只是当处于状态5时,文件的一些数据存储在共用区块中,且当处于状态0时,情况并非如此。如果文件的额外数据的量是未知的,那么为所述数据分配经擦除区块,从而创建活动编程区块并使文件转变到状态8。如果数据的量是已知的,那么在可进行良好的大小配合时,将所述数据写入到部分区块的剩余容量中,从而导致部分区块变成活动共用区块,且文件从状态5转变到状态7。文件状态8类似于状态2,区别只是当处于状态8时,文件的数据存储在满共用区块中,且当处于文件状态2时,不存在此区块。文件状态7类似地与文件状态3有关。
当处于文件状态6且活动共用区块充满数据时,那么将文件存储在满共用区块和共用区块中。由于此实施例中两个分形区块的限制已经达到,所以不能将另一区块分配为编程区块或某一其它分形区块。因此,需要发生数据转变。来自共用区块中的一者的文件的数据移动到部分区块中(文件转变到状态7),所述区块接着变成文件的活动共用区块,或者如果所述数据不能与部分区块的经擦除容量合适地配合,那么数据移动到经擦除区块中(文件转变到状态8)。
当处于文件状态7时,活动共用区块可能变满。接着文件存储在两个满共用区块中,转变到状态9。
同样当文件处于状态7时,可将共用区块指定为回收区块,所以文件的数据接着需要重新定位。接着发生数据转变。如果文件的数据从共用区块移动到经擦除区块,所述经擦除区块其后变成活动编程区块,那么到达文件状态8的转变已经发生。如果文件的数据改为移动到部分区块中,那么部分区块接着变成共用区块,且文件状态保持7。
文件状态9是稳定状态,因为文件可保持具有两个满共用区块持续一段时间,在这段时间期间,没有额外数据写入到文件。但当文件处于所述状态时,不指定任何活动区块。由于存在两个分形区块的限制,因此必需在额外数据可写入到文件之前作出数据转变。在一种情况下,两个满共用区块中的一者中的文件的所有数据可移动到经擦除区块,且此区块接着变成用于写入文件的新数据的活动编程区块。文件那时已经从状态9转变到状态8。但如果所述两个满共用区块中的一者中的文件的数据的量加上文件的额外数据的总和小于区块的容量,那么在部分区块中寻找足够的经擦除空间。如果找到,那么来自所述满共用区块中的一者的文件的数据移动到所述部分区块中,且所述部分区块接着变成用于写入文件的额外数据的活动共用区块。这导致从状态9到状态7的转变。
当处于文件状态8时,文件的数据写入到活动编程区块,而文件的其它数据保持存储在满共用区块中。当编程区块变满时,其变成文件区块,且不再有文件的活动区块。状态8接着转变到状态5,其中进一步文件转变将经擦除区块或部分区块分配为新的活动区块,如上文所述。
但当处于状态8且文件的活动编程区块被选为回收操作的目的地区块时,文件状态直接转变到状态7(在第一种情况下)。这创建正在活动以接收文件的新数据的共用区块。或者,如果当处于状态8时,文件的活动编程区块被指定为回收操作的源区块,那么文件的数据移动到部分区块中,所述部分区块接着变成用于写入文件的额外数据的活动共用区块。文件状态也已经从状态8转变到状态7(在第二种情况下)。
除了图16和图17中所说明的初级文件状态转变之外,还发生一组次级文件转变。图18和图19中展示这些转变。当存储在含有所关心的当前文件的数据的分形区块中的一个文件的所有数据都变成废弃时,所述当前文件的这些次级转变发生。所述废弃数据可以是当前文件的或某一其它文件的。由于文件由主机删除、先前针对文件写入的数据由主机更新或文件的数据在回收操作期间被重新定位的缘故,数据可能变成废弃。举例来说,在文件被更新的过程中,存储在共用区块中的文件的所有数据在都由写入到另一区块中的新数据更新时变得废弃。在回收操作的实例中,如果共用区块中的文件的数据(其不属于所关心的当前文件)被复制到另一区块中,那么其使共用区块中的另一文件的数据废弃。
在这些情况下,使数据变得废弃导致里面存储有废弃数据的区块的类型改变,从而导致文件的状态改变。当文件的数据需要新的活动区块时,用相对于图16和图17所述的方式但基于新的文件状态来对其进行选择。
图18的转变和图19中对发生的特定转变的识别提供对所述转变的全面描述。将注意,这些转变趋向于减少含有文件的数据的分形区块的数目,因此简化文件状态。这些转变趋向于致使文件的状态向不具有分形区块的状态0移动。
文件状态的信息用于确定在待针对文件而编程数据且当前针对所述文件不存在活动区块时被分配为所述文件的活动区块的区块的类型。图20的表在右边的列中总结了在中间列中所陈述的条件下,处于状态0到9中的任何一者的文件的活动区块的分配。以所示次序选择区块的类型。通过“最配合部分区块”表示具有已知量的数据可高效地利用的经擦除容量的量的部分区块。如果不存在合适的部分区块,那么最常见的是选择经擦除区块。但如果不能针对处于状态2或状态3中的任一者的文件识别最配合部分区块,那么分配“最大部分区块”,其为不具有足够的经擦除容量来保存待写入的整个量的数据的区块,但其是可保存最大量的所述数据的区块。所述文件接着改变其状态,且新的状态控制区块的选择以接收不配合到最大部分区块中的剩余量的数据。但如果由于数据的量和部分区块中的可用容量的缘故,使用最大部分区块使数据可能将在两个以上区块上展开,那么将经擦除区块分配为活动区块。
在图2中所示的示范性存储器系统中,上文所述的操作可由控制器11的处理器27通过执行存储的固件来实行。
回收区块容量
如上文所述,区块管理的一部分包含回收区块中的未经使用的容量以用于存储新的数据。当存储在存储器系统中的数据的量远小于其容量时,这没有特别的关系,但存储器系统优选被设计成如同其充满数据那样操作。这意味着,对于仅含有废弃数据的区块以及含有有效数据但也具有一些废弃数据和/或未经写入的经擦除页的其它区块,可用回收此未经使用的容量的方式对其进行处理。目的是为了尽可能完全地利用存储器系统的存储容量,而同时使对系统的性能的不利影响减到最小。在图11的总体系统操作图中,区块的回收被注释为617。
将指定用于回收操作的区块(源区块)中的任何有效数据复制到具有足够经擦除容量以存储所述有效数据的一个或一个以上区块(目的地区块)中。根据上文所述的区块管理技术来选择目的地区块。将存储在源区块中的每个文件的数据复制到基于文件的状态和其它因素而选择的一种类型的区块,如上文所述。图21A到图21D中给出作为回收操作的一部分的不同类型的文件之间的数据复制的实例。
在图21A中,作为实例,说明对两个部分区块681和683的回收操作。区块681是里面存储有文件A的有效数据同时还含有未存储有数据的经擦除容量的编程区块。视文件A的状态而定,一个可能的回收操作是将区块681的文件A的数据复制到已经包含不同文件B的数据的另一部分区块685的可用经擦除容量中,因此使其成为共用区块。接着,区块681中的数据群组不再在FIT中参考到,且将所述区块注释为废弃。当存储在区块681中时,文件A具有状态2、4或8(见图15)中的包含编程区块的一者。数据接着可移动到另一分形区块,而所述文件保持写入到最多两个分形区块。在复制到区块685之后,文件A已经转变到状态3、4、6或7中的包含存储在共用区块中的文件的数据的一者,这视里面存储有文件的其他数据的区块的类型而定。
图21A的区块683是通过将其存储的文件C和D的数据复制到含有文件E的数据的编程区块687(其于是变成共用区块)的经擦除容量中而回收的共用区块。区块683中的文件C和D的数据接着废弃,所述区块本身也废弃。文件C和D中的每一者的状态未改变,因为数据已经从一个共用区块移动到另一个共用区块。然而,文件E的状态已经从2改变到3,或从8改变到7。或者,文件C和D中的每一者的数据可从不同区块向彼此移动,且无需必然被复制到共用区块的可用空间。所述文件的状态接着可能转变到其它状态。
图21B中说明对示范性区块689和691的回收操作。这些区块中的每一者是废弃区块,因为其充满数据(有效的和废弃的)。区块689是含有文件F的数据的文件区块,其一部分是废弃的,且其余部分是有效的。这可能(例如)在文件F的更新期间发生,其中在具有与文件的现存数据相同的逻辑偏移量的文件结尾处物理地写入新数据,且所述现存数据接着变成废弃。在此实例中,将文件F的数据复制到含有文件G的数据的编程区块693的经擦除容量中,导致区块693的类型改变成共用区块。或者,文件F的有效数据可写入到经擦除区块,这接着将导致所述区块成为编程区块。
图21B的区块691是含有文件H的无效数据和文件I的有效数据的满共用区块。在此实例中,文件I的有效数据从区块691复制到经擦除区块695。区块695接着变成编程区块。或者,如果可找到良好配合,那么文件I的数据可写入到含有另一文件的数据的部分区块。目的地区块将视回收操作时文件I的状态而定。
由于图21A和图21B中所示的回收操作的四个特定实例中的每一者,存储在两个部分区块中的数据组合到一个区块中,从而使所述两个区块中的另一个区块仅具有废弃数据。它们于是为无效区块。如图21C中所说明,接着通过擦除所述区块来回收原先区块681、683、689和691中的每一者的整个空间。经擦除区块是回收无效区块的结果。
图21D展示里面存储有文件J的数据的文件区块697的实例。当文件J被主机删除时,区块697中且可能还在其它区块中的文件J的数据变得废弃。区块697接着变成无效。回收无效区块为系统经擦除区块集区提供经擦除区块。
从存储器中删除文件通常还导致一个或一个以上分形区块(例如共用区块或满共用区块)中的文件的数据变成废弃。接着,所述区块经受回收操作,因为另一文件的剩余有效数据将小于区块的存储容量,且可能是较小的量。
图22的流程图概括地展示回收操作。如步骤701所指示,视特定实施例而定,针对部分、废弃和无效区块保存一个或一个以上列表。可将所述列表保持为区块列表615(图11)的一部分。根据一种存储器操作技术,在启动存储器系统时(例如当第一次施加功率时)建立此区块列表。此列表可包含一次启用一个回收区块的选择的区块的其它信息,例如每个区块中的有效数据的量和每个区块中的经擦除存储器的量。通常用所述区块的页或元页(如果使用元区块的话)的数目来测量这些数量。优选的替代技术是将这些列表保存在非易失性存储器中,并且只要其状态改变就添加或更新所述列表中的区块的条目。通过此技术,就没有必要在初始化存储器系统时扫描区块并建立列表。作为在列表上保存所有部分、废弃和无效区块的替代方案,仅包含具有在某个设置的阈值量之下的较小量的有效数据的那些区块,因为选定回收区块的一个特征在于:其具有较少或不具有需要被复制的有效数据。许多回收操作中必需的将数据从一个区块复制到另一区块要花费相当量的时间,所以通常首先对具有较少量的待复制数据的那些区块执行这个复制操作。
此类区块的列表随着数据被写入、更新、移动、删除等等而不断地改变。导致区块将其类型改变成部分、废弃和无效且从部分、废弃和无效改变的变化导致图22的步骤701所保存的列表改变。个别地存储在此类区块中的有效数据的量的变化和经擦除容量的量的变化也在区块列表615(图11)中注释。
在步骤703中,优选从经更新列表上的区块中识别出单个回收区块以作为按顺序下一个要回收的区块。如果是部分或废弃区块,那么其为待复制到被称为目的地区块的另一区块中的有效数据的来源。下文描述几种可用于选择源区块的特定技术。
下一步骤705接着考虑到需要响应于主机的命令而执行的存储器操作,而确定当前执行回收操作是否合适。如果主机已经向存储器系统发送了闲置命令,或指示将存在主机不会期望存储器系统执行特定操作的某一时间段的某类似物,那么存储器系统在前台随意实行额外开销操作,包含回收操作。即使存储器系统忙于响应于主机命令而将数据写入到存储器或从存储器读取数据,回收操作(尤其是其数据复制)也可与数据写入和读取操作交错进行。2005年10月25日申请的Alan Sinclair的第11/259,423号和2005年12月19日申请的Alan Bennett等人的第11/312,985号美国专利申请案中描述此类交错。
如果步骤705确定可实行回收操作,那么过程视所识别的回收区块是否含有有效数据而不同,且如果含有,那么视其是否含有一个以上文件的有效数据而不同。如果是部分区块或废弃区块,那么根据定义其将含有有效数据,且如果是共用区块或满共用区块,那么其将含有两个或两个以上文件的有效数据。步骤707确定回收区块中是否存在有效数据。如果存在必须移动的有效数据,那么在下一步骤709中,识别单个文件的数据,且识别目的地区块以接收所述数据。通过上文相对于图15到图17所述的过程来识别目的地区块,以便保存存储在两个或更少分形区块(在此实例中)中的有效数据所属的文件的所有数据。接着开始将一个文件的有效数据从源回收区块复制到目的地区块,如步骤711所指示。在复制这些数据之后,过程返回到步骤707以确定另一文件的数据是否保留。如果是,那么针对额外数据重复步骤709和711的过程。独立于对不同文件的数据的早先选择而选择目的地区块。这继续进行,直到在步骤707中确定源区块中不再有待移动的数据为止,在所述情况下,源区块可通过步骤713擦除。接着,可将此区块放置到经擦除区块集区中,以用于存储新的数据。
返回到步骤707,如果源区块不含有有效数据(这是针对无效区块的情况),那么没有待移动的有效数据。源区块仅需要被擦除。因此,在这种情况下,过程绕过步骤709和711,如图22中所示。
在图22的过程的第一实施例中,步骤701保存部分、废弃和无效区块的单个列表。在列表上的各个条目中包含区块中的有效数据的量。在步骤703中,从所述列表选择的作为回收区块的区块是具有最少有效数据的区块。如果列表上存在一个无效区块,那么将首先选择所述区块,因为其不具有有效数据。如果列表上存在许多无效区块,那么选择已经在那里最长时间的一个区块。如果列表上没有无效区块,那么将具有最少量的有效数据的区块选择为回收区块。通过选择列表上的所有区块中的具有最少量的有效数据的区块,回收操作于是与要将更多有效数据从一个区块复制到另一个区块时相比花费更少的时间。因此,存储器系统的其它操作(例如将数据写入到存储器和从存储器读取数据的速度)保持在高速率。在较少以存储器性能为代价的情况下获得新擦除的区块。
图22的用于基于单个列表上的分形区块中的有效数据的量而选择源区块的过程的此第一实施例具有实施起来相对较简单的优势。然而,可通过还考虑部分区块的值来改进此过程。部分区块具有可将数据写入其中的经擦除容量,而废弃区块和无效区块都不含有任何经擦除容量。在废弃区块可用于存储新数据之前,任何有效数据必须从它们中移出并移动到另一区块中,使得它们可接着被擦除,且可用于存储新的数据。但部分区块在不必忍受回收操作的额外开销的情况下具有可将数据写入其中的经擦除容量。举例来说,当部分区块还含有大量可将数据写入到其中的经擦除容量时,只因为所述部分区块含有最少量的有效数据就将其回收可能不是有益的。
因此,在图22的过程的其它实施例中,基于存在于部分区块中的有效数据的量和经擦除容量的量两者,将部分区块选择为回收源区块的候选区块。图23中展示部分区块中的数据的成分。区块(可能是元区块)具有某一数目的一个或一个以上含有有效数据的页(可能是元页)和一个或一个以上被擦除且可将数据写入到其中的其它页。部分区块还可含有一个或一个以上含有废弃数据的其它页,如图23的实例中所示。
在图22的过程的这些其它实施例中,部分区块优选由步骤701保存在与废弃和无效区块的列表独立的列表中。当部分区块具有较少经擦除容量(这意味着它们在其目前状态下不是非常有用)和较少量的需要移动的有效数据时,所述部分区块朝其列表的顶部移动,以用于回收操作。此类区块将主要含有废弃数据。相反地,具有大量经擦除容量(意味着它们潜在地可用于存储数据)和大量待移动有效数据的部分区块将最不可能被识别为回收区块的候选区块。回收具有经擦除容量的部分区块不会向存储器系统添加与回收废弃区块相同量的存储容量。无效区块对回收来说显然是最有吸引力的区块,因为它们不具有有益的经擦除容量,且不具有需要被复制的有效数据。
在图22的回收区块识别步骤703的第二实施例中,步骤701保存三个单独列表,一个列表用于部分、废弃和无效区块中的一者。如果存在无效区块,那么从无效区块列表中选择回收区块,直到所述列表上不再有区块为止。列出无效区块没有特定的次序,只是可能是以先入先出(FIFO)的次序,使得已经在列表上最长时间的无效区块最先被选择。接下来,如果不存在无效区块,那么从废弃区块列表中选择所述列表上的所有区块中具有最少量的有效数据的区块。
如果无效或废弃列表上都没有区块,那么在步骤703中,将部分区块列表上的区块选为回收区块。尽管可将部分区块选为具有最少量有效数据的区块,但优选以认识到其经擦除容量的益处的方式对部分区块进行分级。为此目的,可针对每个部分区块计算“回收增益”,如下:
其中S是用区块的存储页的数据的总数表示的区块大小,E是可将数据写入到其中的经擦除容量的页的数目,且V是含有需要移动到另一区块的有效数据的页的数目。包含常数k以对区块的经擦除容量的正效应进行加权,但可设置为1。随着kE的值增加,所得回收增益降低。随着V的值上升,回收增益也下降。在步骤703中选择具有最高回收增益值的部分区块作为回收区块。可替代地使用其它数学表达式来用E和V界定回收增益,其平衡了含有有效数据对系统操作的不利与具有经擦除容量的益处。每当区块有变化时,例如每当将数据写入到其经擦除容量中时,可计算回收增益,并将其存储为由文件目录或FIT保存的信息的一部分。
图25中说明此第二实施例,其展示从单独的部分、废弃和无效区块列表(如通过图22的步骤701保存)选择回收区块(图22的步骤703)的方法。步骤721首先确定无效区块列表上是否列出了区块。如果存在多个此类区块,那么通过步骤723将已经在所述列表上最长时间的区块选择为回收区块。如果无效区块列表上不存在区块,那么通过步骤725确定废弃区块列表上是否存在条目。如果是,那么在废弃区块列表上有一个以上区块的情况下,通过步骤727选择具有最少量的有效数据的区块作为回收区块。如果步骤725确定废弃区块列表上没有条目,那么在步骤729中查阅部分区块列表。当部分区块列表上存在一个以上区块时,选择具有最高回收增益的一个区块作为回收区块。回收增益(例如)通过使用上文的等式(1)来考虑区块中的有效数据的量和经擦除容量。如果部分区块列表上无任何内容,那么通过返回到步骤721使过程重复,直到所述列表中的一者上出现区块为止。在选择回收区块之后,处理进行到图22的步骤705。
图24的流程图展示第三实施例。图22的步骤703的执行也由步骤741开始,所述步骤741在通过图22的步骤701保存的无效区块列表上寻找条目。如果无效区块列表上存在一个以上条目,那么通过图25的步骤743将时间最长的区块选为回收区块。如果无效区块列表上没有条目,那么下一步骤745确定废弃区块列表上是否存在条目。如果是,那么随后的步骤与图24的实施例的不同之处在于:如果部分区块列表上也存在至少一个条目,那么确定最好是从废弃区块列表还是从部分区块列表选择回收区块。
步骤747识别废弃区块列表上含有最少量的有效数据的区块。接着通过步骤749确定部分区块列表上是否存在至少一个区块,且如果是,那么在步骤751中识别具有最少量的有效数据的区块。接着,下一步骤753在从废弃区块列表识别的一个区块与在部分区块列表上识别的一个区块之间作出选择。为此目的,针对在步骤751中从部分区块列表中识别的区块,计算数量(V+kE),V、E和k项与上文所使用的相同。将此数量与步骤747中从废弃区块列表中识别的区块中的有效数据的量V进行比较。如果部分区块的(V+kE)数量大于废弃区块的V,那么在步骤755中,将所述废弃区块选为回收区块。但如果废弃区块的V大于所识别的部分区块的(V+kE)数量,那么在步骤757中将所述部分区块选为回收区块。
通过在将所识别的部分区块的经擦除容量数量kE与仅所识别的废弃区块的有效数据V进行比较之前,将所述kE添加到其有效数据V,所述过程偏向于选择废弃区块。与所识别的废弃区块具有相同量的有效数据的所识别的部分区块将保留,因为其仍具有将数据存储在其经擦除容量中的潜在用途。事实上,有效数据的量比废弃区块的有效数据的量小kE量的部分区块将保留。
返回到图25的步骤745,如果废弃区块列表上没有条目,那么在步骤759中确定部分区块列表上是否列出了区块。如果没有,那么过程返回到步骤741,以重复直到所述三个列表中的一者上放置有区块为止。如果列出了多个部分区块,那么在步骤761中,选择具有最少量有效数据的区块作为回收区块。或者,通过使用如第二实施例(图24)的相对于步骤731描述的回收增益来选择部分区块。
第三实施例可替代地仅利用两个列表。第一列表是含有具有废弃数据且不具有经擦除存储器容量的区块的条目的废弃区块列表。不是使用如图25中所示的单独的无效区块列表,而是将无效和废弃区块两者放置在单个“废弃”区块列表上。所述区块可视情况含有有效数据。所述列表中的每个条目具有含有界定与其有关的区块中的有效数据的量的值的字段。根据这些字段中的值来对列表中的条目进行排序。因此,将含有废弃数据且不含有有效数据的区块(无效区块)在此第一列表的顶部处分组在一起。
第三实施例的此替代方案中的第二列表是部分区块列表,其含有具有一些经擦除存储器容量的区块的条目。所述区块可视情况含有有效数据。所述列表中的每个条目具有含有界定与其有关的区块中的有效数据的量的值的字段。根据这些字段中的值对列表中的条目进行排序。可通过图25的步骤753的技术,从第一或第二列表的顶部(具有最少量的无效数据的区块)选择区块。
图26的表陈述放置在部分和废弃区块列表上以用于根据第三实施例的此修改而进行回收操作的区块的类型的细节。为了放置在部分区块列表上,区块含有有效数据和经擦除容量两者。区块中是否存在任何废弃数据是无关紧要的。为了放置在废弃区块列表上,区块含有废弃数据以及有效数据或经擦除容量但不是两者。
在图2中所示的示范性存储器系统中,可由控制器11的处理器27通过执行存储的固件来实行上文相对于图22、图24和图25所述的过程。
总结
尽管已经相对于本发明的示范性实施例描述了本发明的各个方面,但将了解,本发明有权在所附权利要求书的整个范围内受到保护。
Claims (19)
1.一种操作非易失性存储器系统的方法,所述存储器系统具有分组成存储器单元区块的数据存储单元,所述区块在重新编程之前被擦除,所述方法包括:
保存包含区块的至少一个列表,所述区块个别地含有小于所述区块的数据存储容量的某一量的有效数据,
基于以下标准从所述至少一个列表中选择区块:所述区块中的有效数据相对于所述至少一个列表上的其它区块中的有效数据的量的量,
将所述有效数据从所述选定区块复制到另一区块中,以及
其后擦除所述选定区块,借此所述经擦除的选定区块变成可用于存储其它数据。
2.根据权利要求1所述的方法,其中选择区块包含:仅基于所述区块中的有效数据相对于所述至少一个列表上的其它区块中的有效数据的量的量,来从所述列表中选择所述区块。
3.根据权利要求1所述的方法,其中选择区块包含:从所述至少一个列表中选择其中相对于所述列表上的其它区块中的有效数据的量具有最少量的有效数据的区块。
4.根据权利要求1所述的方法,其中从所述至少一个列表中选择区块另外包含:基于所述区块中的经擦除存储容量相对于所述至少一个列表上的其它区块中的经擦除存储容量的量的量,来从所述至少一个列表中选择所述区块。
5.一种操作非易失性存储器系统的方法,所述存储器系统具有分组成存储器单元区块的存储单元,所述区块在重新编程之前被擦除,所述方法包括:
保存包含区块的至少一个列表,所述区块个别地含有某一量的有效数据加上废弃数据或一些经擦除的数据存储容量或两者,
通过考虑所述至少一个列表上的所述区块的有效数据和所述经擦除存储容量的相对量,来从所述至少一个列表中选择区块,以及
将所述有效数据从所述选定区块复制到另一区块中,且
其后擦除所述选定区块,借此所述经擦除区块变成可用于存储其它数据。
6.根据权利要求5所述的方法,其中从所述至少一个列表中选择所述区块包含:权衡相对于所述至少一个列表上的其它区块具有较低量的有效数据的选定区块的益处与相对于所述至少一个列表上的其它区块具有较高量的经擦除存储容量的选定区块的益处。
7.一种操作非易失性存储器系统的方法,所述存储器系统具有分组成存储器单元区块的存储单元,所述区块在重新编程之前被擦除,所述方法包括:
保存任何区块的第一列表,所述区块个别地含有某一量的有效数据加上废弃数据,但不具有经擦除的数据存储容量,
确定所述第一列表上是否存在一个或一个以上区块,如果是,那么基于所述第一列表上的所述区块中的有效数据的量,从所述列表中识别第一区块,
保存任何区块的第二列表,所述区块个别地含有某一量的有效数据加上一些经擦除的数据存储容量,
确定所述第二列表上是否存在一个或一个以上区块,且如果是,那么基于所述列表上的所述区块中的有效数据的量和经擦除的存储容量的量两者,来从所述第二列表中识别第二区块,
基于从回收所述区块到操作所述存储器系统的值,选择所述第一区块或第二区块,以及
将所述有效数据从所述选定区块复制到另一区块中,以及
其后擦除所述选定区块,借此所述选定的第一或第二区块已经被回收作为可用于存储其它数据的经擦除区块。
8.一种操作非易失性存储器系统的方法,所述存储器系统具有分组成存储器单元区块的存储单元,所述区块在重新编程之前被擦除,所述方法包括:
保存包含任何区块的第一列表,所述区块个别地含有某一量的有效数据加上废弃数据,但不具有经擦除的数据存储容量,
确定所述第一列表上是否存在一个或一个以上区块,如果是,那么从所述第一列表中识别所述列表上的所述区块中具有最少量的有效数据的第一区块,
保存包含任何区块的第二列表,所述区块个别地含有某一量的有效数据加上一些经擦除的数据存储容量,
确定所述第二列表上是否存在一个或一个以上区块,且如果是,那么从所述第二列表中识别所述列表上的所述区块中具有最少量的有效数据的第二区块,
在针对所述第二区块中的经擦除的数据存储容量的量调整所述第二区块中的有效数据的量之后,基于所述第一或第二区块中包含的有效数据的量,来选择所述第一或第二区块,以及
将所述有效数据从所述选定区块复制到另一区块中,以及
其后擦除所述选定区块,借此所述选定的第一或第二区块已经变成可用于存储其它数据的经擦除区块。
9.一种操作非易失性存储器系统的方法,所述存储器系统具有分组成存储器单元区块的存储单元,所述区块在重新编程之前被擦除,所述方法包括:
基于所述区块中的至少一些区块的内容,选择用于回收操作的区块,以及
其后通过将所述选定区块的有效数据复制到另一区块中且接着擦除所述选定区块,来回收所述选定区块。
10.根据权利要求9所述的方法,其中选择用于回收操作的区块包含基于所述区块中至少一些个别地包含某一数量的有效数据的区块的内容来进行所述选择。
11.根据权利要求10所述的方法,其中选择用于回收操作的区块另外包含:基于所述区块中至少一些个别地包含所述个别区块中剩余的用于存储数据的某一量的经擦除容量的区块的内容来进行所述选择。
12.根据权利要求11所述的方法,其中选择用于回收操作的区块另外包含:基于所述区块中至少一些个别地不包含废弃数据的区块的内容来进行所述选择。
13.根据权利要求9所述的方法,其中选择用于回收操作的区块包含:基于所述区块中至少一些个别地包含所述个别区块中剩余的用于存储数据的某一量的经擦除容量的区块的内容来进行所述选择。
14.根据权利要求9所述的方法,其中选择用于回收操作的区块包含:基于所述区块中至少一些个别地不包含废弃数据的区块的内容来进行所述选择。
15.一种可重新编程的非易失性存储器系统,其包括:
非易失性存储器单元区块,其特征是在将数据重写到其中之前被擦除,以及
控制器,其在功能上与所述存储器单元区块连接,且所述控制器操作以基于存储在所述区块中的至少多个区块中的有效数据的相对量,来选择存储容量的一部分未由有效数据占用的区块进行回收以用于存储有效数据,且接着致使所述选定区块的所述有效数据复制到另一区块。
16.根据权利要求15所述的存储器系统,其中所述控制器进一步操作以从所述存储器系统区块中的至少多个区块中选择含有最少量的有效数据的区块进行回收。
17.根据权利要求15所述的存储器系统,其中所述控制器进一步操作以基于所述区块中的至少多个区块中个别地剩余的供数据存储在其中的经擦除容量的量,来选择区块进行回收。
18.根据权利要求17所述的存储器系统,其中所述控制器进一步操作以从所述区块中的至少多个不含有废弃数据的区块中选择区块进行回收。
19.一种可编程的非易失性存储器系统,其包括:
非易失性存储器单元阵列,其组织成可同时擦除的存储器单元区块,以及控制器,其可操作地与所述存储器阵列连接,所述控制器操作以:
保存包含任何区块的第一列表,所述区块个别地含有某一量的有效数据加上废弃数据但不具有经擦除的数据存储容量,
确定所述第一列表上是否存在一个或一个以上区块,如果是,那么从所述第一列表中识别所述列表上的所述区块中具有最少量的有效数据的第一区块,
保存包含任何区块的第二列表,所述区块个别地含有某一量的有效数据加上一些经擦除的数据存储容量,
确定所述第二列表上是否存在一个或一个以上区块,如果是,那么从所述第二列表中识别所述列表上的所述区块中具有最少量的有效数据的第二区块,
在针对所述第二区块中的经擦除的数据存储容量的量调整所述第二区块中的有效数据的量之后,基于所述第一或第二区块中包含的有效数据的量,来选择所述第一或第二区块,以及
将所述有效数据从所述选定区块复制到另一区块中,以及
其后擦除所述选定区块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70538805P | 2005-08-03 | 2005-08-03 | |
US60/705,388 | 2005-08-03 | ||
US11/382,235 | 2006-05-08 | ||
US11/382,232 | 2006-05-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101233499A true CN101233499A (zh) | 2008-07-30 |
Family
ID=37402587
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800284045A Expired - Fee Related CN101258473B (zh) | 2005-08-03 | 2006-08-01 | 直接数据文件存储存储器中的数据合并和垃圾收集 |
CNA2006800283184A Pending CN101233499A (zh) | 2005-08-03 | 2006-08-01 | 回收快闪存储器系统中的数据存储容量 |
CN2006800348564A Active CN101288045B (zh) | 2005-08-03 | 2006-08-01 | 增强型主机接口 |
CN200680028003XA Expired - Fee Related CN101233479B (zh) | 2005-08-03 | 2006-08-01 | 直接存储数据文件的存储器区块的管理 |
CN2006800281668A Expired - Fee Related CN101233480B (zh) | 2005-08-03 | 2006-08-01 | 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统 |
CN200680028197.3A Expired - Fee Related CN101233498B (zh) | 2005-08-03 | 2006-08-01 | 快闪存储器中利用直接数据文件存储的数据操作 |
CN2006800360852A Active CN101278267B (zh) | 2005-08-03 | 2006-08-01 | 具有经调度回收操作的非易失性存储器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800284045A Expired - Fee Related CN101258473B (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 | 增强型主机接口 |
CN200680028003XA Expired - Fee Related CN101233479B (zh) | 2005-08-03 | 2006-08-01 | 直接存储数据文件的存储器区块的管理 |
CN2006800281668A Expired - Fee Related CN101233480B (zh) | 2005-08-03 | 2006-08-01 | 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统 |
CN200680028197.3A Expired - Fee Related CN101233498B (zh) | 2005-08-03 | 2006-08-01 | 快闪存储器中利用直接数据文件存储的数据操作 |
CN2006800360852A Active CN101278267B (zh) | 2005-08-03 | 2006-08-01 | 具有经调度回收操作的非易失性存储器 |
Country Status (7)
Country | Link |
---|---|
US (12) | US7409489B2 (zh) |
EP (2) | EP1920336A2 (zh) |
JP (2) | JP4537482B2 (zh) |
KR (2) | KR20080038364A (zh) |
CN (7) | CN101258473B (zh) |
TW (6) | TW200805134A (zh) |
WO (2) | WO2007019220A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004697A (zh) * | 2010-10-21 | 2011-04-06 | 北京握奇数据系统有限公司 | 一种Flash的回收方法和装置 |
CN102736985A (zh) * | 2011-03-30 | 2012-10-17 | 群联电子股份有限公司 | 数据合并方法、控制器与储存装置 |
CN106325764A (zh) * | 2015-07-08 | 2017-01-11 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN108509349A (zh) * | 2017-02-27 | 2018-09-07 | 立而鼎科技(深圳)有限公司 | 一种nand flash的数据源区块回收方法及固态硬盘 |
CN110196816A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 控制器、其操作方法以及包括控制器的存储器系统 |
Families Citing this family (531)
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 |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
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 |
US7877539B2 (en) | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US9384818B2 (en) | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
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 |
US8335920B2 (en) * | 2005-07-14 | 2012-12-18 | Imation Corp. | Recovery of data access for a locked secure storage device |
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 |
US8505075B2 (en) * | 2005-07-14 | 2013-08-06 | Marble Security, Inc. | Enterprise device recovery |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
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 |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
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 |
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 |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in 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 |
US7877540B2 (en) | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US20070136553A1 (en) * | 2005-12-13 | 2007-06-14 | Sinclair Alan W | Logically-addressed file storage systems |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing 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 |
US7444461B2 (en) * | 2006-08-04 | 2008-10-28 | Sandisk Corporation | Methods for phased garbage collection |
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
KR100758301B1 (ko) * | 2006-08-04 | 2007-09-12 | 삼성전자주식회사 | 메모리 카드 및 그것의 데이터 저장 방법 |
US8949555B1 (en) | 2007-08-30 | 2015-02-03 | Virident Systems, Inc. | Methods for sustained read and write performance with non-volatile memory |
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 |
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 |
US7464216B2 (en) * | 2006-09-29 | 2008-12-09 | Sandisk Corporation | Method for phased garbage collection with state indicators |
US7444463B2 (en) * | 2006-09-29 | 2008-10-28 | Sandisk Corporation | System for phased garbage collection with state indicators |
KR100849221B1 (ko) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
WO2008057557A2 (en) * | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
KR20090087119A (ko) | 2006-12-06 | 2009-08-14 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법 |
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 |
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 |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
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 |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8578127B2 (en) * | 2009-09-09 | 2013-11-05 | Fusion-Io, Inc. | Apparatus, system, and method for allocating storage |
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 |
US7917686B2 (en) | 2006-12-26 | 2011-03-29 | Sandisk Corporation | Host system with direct data file interface configurability |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
EP2097825B1 (en) | 2006-12-26 | 2013-09-04 | SanDisk Technologies Inc. | Use of a direct data file system with a continuous logical address space interface |
US8209461B2 (en) | 2006-12-26 | 2012-06-26 | Sandisk Technologies Inc. | Configuration of host LBA interface with flash memory |
US8166267B2 (en) * | 2006-12-26 | 2012-04-24 | Sandisk Technologies Inc. | Managing a LBA interface in a direct data file memory system |
US7739444B2 (en) | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
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 |
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 |
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 |
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 |
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 |
US7991942B2 (en) | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
US8041883B2 (en) | 2007-05-09 | 2011-10-18 | Stmicroelectronics S.R.L. | Restoring storage devices based on flash memories and related circuit, system, and method |
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 |
US20080282024A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Management of erase operations 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 |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
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 |
US20100180072A1 (en) * | 2007-06-22 | 2010-07-15 | Shigekazu Kogita | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program |
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 |
TWI369633B (en) * | 2007-06-27 | 2012-08-01 | Sandisk Corp | Phased garbage collection and house keeping 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 |
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 |
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 |
US9032154B2 (en) * | 2007-12-13 | 2015-05-12 | Sandisk Technologies Inc. | Integration of secure data transfer applications for generic IO devices |
EP2240867A4 (en) * | 2007-12-13 | 2011-02-09 | Redknee Inc | METHOD AND SYSTEM FOR STORAGE |
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 |
US8245101B2 (en) | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
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 | メモリシステム |
CN101965560A (zh) * | 2008-03-04 | 2011-02-02 | Nxp股份有限公司 | 用于实现mifare存储器多扇区机制的移动通信设备和方法 |
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 |
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 | 美光科技公司 | 固态大容量存储装置的数据串流 |
US8429658B2 (en) * | 2008-10-16 | 2013-04-23 | International Business Machines Corporation | Lock deferral for real-time garbage collection |
US8205203B2 (en) * | 2008-10-16 | 2012-06-19 | International Business Machines Corporation | Scheduling 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 |
US9098396B2 (en) * | 2009-02-13 | 2015-08-04 | Sandisk Il Ltd. | Enhancement of efficiency in power failure handling in flash memory |
US20100235605A1 (en) * | 2009-02-13 | 2010-09-16 | Nir Perry | Enhancement of storage life expectancy by bad block management |
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 |
JP5485163B2 (ja) * | 2009-03-13 | 2014-05-07 | パナソニック株式会社 | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
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 |
US8671258B2 (en) | 2009-03-27 | 2014-03-11 | Lsi Corporation | Storage system logical block address de-allocation management |
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 |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
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 |
JP5254141B2 (ja) * | 2009-07-14 | 2013-08-07 | 富士通株式会社 | アーカイブ装置、データ格納プログラムおよびデータ格納方法 |
EP2460104A4 (en) | 2009-07-27 | 2016-10-05 | Ibm | METHOD AND SYSTEM FOR TRANSFORMING LOGICAL DATA OBJECTS FOR STORAGE USE |
US8683088B2 (en) * | 2009-08-06 | 2014-03-25 | Imation Corp. | Peripheral device data integrity |
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 |
US9690513B2 (en) * | 2009-08-27 | 2017-06-27 | International Business Machines Corporation | Dispersed storage processing unit and methods with operating system diversity for use in a dispersed storage system |
EP2476055B1 (en) | 2009-09-08 | 2020-01-22 | SanDisk Technologies LLC | Apparatus, system, and method for caching data on a solid-state storage device |
KR101689420B1 (ko) | 2009-09-09 | 2016-12-23 | 샌디스크 테크놀로지스 엘엘씨 | 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법 |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
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 | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 |
US8745353B2 (en) * | 2009-10-23 | 2014-06-03 | Seagate Technology Llc | Block boundary resolution for mismatched logical and physical block sizes |
US8364929B2 (en) * | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
US8140740B2 (en) * | 2009-10-29 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Data defragmentation of solid-state memory |
US8635422B1 (en) * | 2009-10-29 | 2014-01-21 | Symantec Corporation | Systems and methods for reclaiming storage space from deleted volumes on thin-provisioned disks |
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 |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US20110153912A1 (en) * | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
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 | 华为终端有限公司 | 文件系统的访问方法及装置 |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and 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 |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
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芯片剩余空间设置数据区擦写数据的方法 |
CN102467522B (zh) * | 2010-11-10 | 2013-09-11 | 中兴通讯股份有限公司 | 一种基于nand闪存的文件系统的自编程方法及装置 |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing 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 |
WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit 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 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム並びに記憶媒体 |
KR20120088454A (ko) * | 2011-01-31 | 2012-08-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
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 |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
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 |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US9311229B2 (en) * | 2011-03-29 | 2016-04-12 | Blackberry Limited | System and method for managing flash memory |
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 |
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 |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
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 |
JP2015507798A (ja) | 2011-12-29 | 2015-03-12 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | メモリ・モジュールにおいてデータ・エンティティを消去するための方法 |
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 |
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 |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
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 |
US20150127916A1 (en) * | 2012-04-25 | 2015-05-07 | 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 |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel 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 |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer 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 |
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 |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
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 |
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 |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9632926B1 (en) * | 2013-05-16 | 2017-04-25 | Western Digital Technologies, Inc. | Memory unit assignment and selection for internal memory operations 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 |
US9619155B2 (en) | 2014-02-07 | 2017-04-11 | Coho Data Inc. | Methods, systems and devices relating to data storage interfaces for managing data 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 |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
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 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
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 |
US9875053B2 (en) | 2015-06-05 | 2018-01-23 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
US10289327B2 (en) * | 2015-06-05 | 2019-05-14 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
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 |
US10884945B2 (en) | 2015-06-30 | 2021-01-05 | International Business Machines Corporation | Memory state indicator check operations |
CN106326136A (zh) * | 2015-07-02 | 2017-01-11 | 广明光电股份有限公司 | 固态硬盘搜集垃圾区块的方法 |
US10268400B2 (en) * | 2015-09-03 | 2019-04-23 | Sandisk Technologies Llc | System and method for file detection and usage during compaction |
JP2016026345A (ja) * | 2015-09-03 | 2016-02-12 | マイクロン テクノロジー, インク. | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 |
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 |
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 |
US10102119B2 (en) * | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
US10133490B2 (en) * | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
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 |
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 |
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 |
US10379765B2 (en) * | 2017-06-27 | 2019-08-13 | Western Digital Technologies, Inc. | Geometry-aware command scheduling |
US10521106B2 (en) | 2017-06-27 | 2019-12-31 | International Business Machines Corporation | Smart element filtering method via gestures |
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 |
US11126546B2 (en) * | 2017-10-09 | 2021-09-21 | Huawei Technologies Co., Ltd. | Garbage data scrubbing method, and device |
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 |
CN114035749B (zh) * | 2018-01-12 | 2023-02-28 | 珠海极海半导体有限公司 | 电子设备和Flash存储器 |
CN110109868B (zh) * | 2018-01-18 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 用于索引文件的方法、装置和计算机程序产品 |
JP6443571B1 (ja) * | 2018-02-02 | 2018-12-26 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
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 |
CN110633225B (zh) | 2018-06-25 | 2022-11-15 | 慧荣科技股份有限公司 | 实体存储对照表产生装置及方法 |
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 |
KR102645142B1 (ko) * | 2018-10-25 | 2024-03-07 | 삼성전자주식회사 | 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들 |
TWI709042B (zh) * | 2018-11-08 | 2020-11-01 | 慧榮科技股份有限公司 | 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統 |
EP3866016A4 (en) * | 2018-11-20 | 2021-11-10 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR DELETING INDEX ENTRY IN MEMORY |
KR20200067035A (ko) * | 2018-12-03 | 2020-06-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200073017A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치와, 그것의 동작 방법 |
US20220114147A1 (en) * | 2018-12-19 | 2022-04-14 | Sony Group Corporation | Information processing apparatus, information processing method, and information processing program |
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 |
CN112544038A (zh) * | 2019-07-22 | 2021-03-23 | 华为技术有限公司 | 存储系统数据压缩的方法、装置、设备及可读存储介质 |
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 |
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控股有限责任公司 | 用于管理存储块的方法、设备和计算机程序产品 |
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 |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
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文件数据存取方法、装置及存储介质 |
US11599546B2 (en) | 2020-05-01 | 2023-03-07 | EMC IP Holding Company LLC | Stream browser for data streams |
US11604759B2 (en) | 2020-05-01 | 2023-03-14 | EMC IP Holding Company LLC | Retention management 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 |
US11954537B2 (en) | 2021-04-22 | 2024-04-09 | EMC IP Holding Company LLC | Information-unit based scaling of an ordered event stream |
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 |
US11941297B2 (en) | 2022-04-11 | 2024-03-26 | Netapp, Inc. | Garbage collection and bin synchronization for distributed storage architecture |
US11934656B2 (en) * | 2022-04-11 | 2024-03-19 | Netapp, Inc. | Garbage collection and bin synchronization for distributed storage architecture |
US11947452B2 (en) * | 2022-06-01 | 2024-04-02 | 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 | 北京鼎轩科技有限责任公司 | 一种文件读取方法、装置、电子设备和存储介质 |
US11960742B1 (en) * | 2022-10-14 | 2024-04-16 | Oracle International Corporation | High-performance, block-level fail atomicity on byte-level non-volatile media |
CN116610596B (zh) * | 2023-07-19 | 2023-10-03 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
CN116610597B (zh) * | 2023-07-20 | 2023-10-17 | 合肥康芯威存储技术有限公司 | 一种存储器件及其垃圾回收的控制方法 |
CN117632039A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (212)
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カード |
EP0392895B1 (en) * | 1989-04-13 | 1995-12-13 | Sundisk 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 | 株式会社東芝 | ファイル管理装置 |
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 |
JP3641280B2 (ja) * | 1992-10-30 | 2005-04-20 | インテル・コーポレーション | フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 |
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 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
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 |
US5754817A (en) * | 1994-09-29 | 1998-05-19 | Intel Corporation | Execution in place of a file stored non-contiguously in a non-volatile memory |
ES2101584T3 (es) * | 1994-09-30 | 1997-07-01 | Sel Alcatel Ag | Metodo de gestion de una memoria instantanea. |
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 |
GB2291991A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
GB2291990A (en) | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Flash-memory management system |
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 |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision 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 |
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 |
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 |
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 |
WO1999045460A2 (en) * | 1998-03-02 | 1999-09-10 | Lexar Media, Inc. | Flash memory card with enhanced operating mode detection and user-friendly interfacing system |
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 | ソニー株式会社 | 再生装置および再生方法 |
GB9907280D0 (en) | 1999-03-31 | 1999-05-26 | Philips Electronics Nv | A method of scheduling garbage collection |
US6401160B1 (en) * | 1999-03-31 | 2002-06-04 | Intel Corporation | Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory |
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 | 株式会社東芝 | 不揮発性半導体メモリ |
ATE247296T1 (de) | 1999-10-25 | 2003-08-15 | Sun Microsystems Inc | Speichersystem mit unterstützung von dateistufenzugriffen und blockstufenzugriffen |
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 |
US6883114B2 (en) * | 2001-11-08 | 2005-04-19 | M-Systems Flash Disk Pioneers Ltd. | Block device driver enabling a ruggedized file system |
US6668336B2 (en) * | 2001-11-08 | 2003-12-23 | M-Systems Flash Disk Pioneers Ltd. | Ruggedized block device driver |
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 |
EP1355268B1 (en) * | 2002-02-28 | 2006-04-05 | Matsushita Electric Industrial Co., Ltd. | Memory card |
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 | 주식회사 하이닉스반도체 | 고속 데이터 억세스를 위한 디램 |
TWI246064B (en) * | 2002-07-29 | 2005-12-21 | Milsys Ltd | Data storage and processing device, electronic appliance, electronic system and method of operating an appliance that responds to a plurality of commands |
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 |
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US7103732B1 (en) * | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
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 |
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 |
WO2004077447A1 (ja) * | 2003-02-28 | 2004-09-10 | Fujitsu Limited | フラッシュメモリ及びメモリ制御方法 |
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 |
WO2005001701A1 (ja) | 2003-06-27 | 2005-01-06 | Matsushita Electric Industrial Co., Ltd. | スレイブ装置、通信設定方法 |
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 |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
WO2005066793A2 (en) * | 2003-12-30 | 2005-07-21 | Sandisk Corporation | Non-volatile memory and method with non-sequential update block management |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
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 |
US7395384B2 (en) * | 2004-07-21 | 2008-07-01 | Sandisk Corproation | Method and apparatus for maintaining data on non-volatile memory systems |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
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 |
US7315916B2 (en) | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | 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 |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored 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 |
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 |
US7627733B2 (en) | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
JP2009503743A (ja) | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | データファイルを直接記憶するメモリブロックの管理 |
EP1910928A2 (en) | 2005-08-03 | 2008-04-16 | SanDisk Corporation | Non-volatile memory with scheduled reclaim operations |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
WO2007019155A1 (en) | 2005-08-03 | 2007-02-15 | Sandisk Corporation | Reclaiming data storage capacity in flash memory systems |
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 |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US20070136553A1 (en) * | 2005-12-13 | 2007-06-14 | Sinclair Alan W | Logically-addressed file storage systems |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7747837B2 (en) * | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
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 |
-
2005
- 2005-10-25 US US11/259,423 patent/US7409489B2/en active Active
- 2005-10-25 US US11/259,439 patent/US7984084B2/en active Active
- 2005-12-21 US US11/316,577 patent/US20070033326A1/en not_active Abandoned
- 2005-12-21 US US11/316,578 patent/US8291151B2/en active Active
-
2006
- 2006-05-08 US US11/382,228 patent/US7581057B2/en active Active
- 2006-05-08 US US11/382,232 patent/US7450420B2/en active Active
- 2006-05-08 US US11/382,224 patent/US8055832B2/en active Active
- 2006-05-08 US US11/382,235 patent/US7558905B2/en active Active
- 2006-08-01 EP EP06789194A patent/EP1920336A2/en not_active Withdrawn
- 2006-08-01 CN CN2006800284045A patent/CN101258473B/zh not_active Expired - Fee Related
- 2006-08-01 JP JP2008525181A patent/JP4537482B2/ja not_active Expired - Fee Related
- 2006-08-01 CN CNA2006800283184A patent/CN101233499A/zh active Pending
- 2006-08-01 CN CN2006800348564A patent/CN101288045B/zh active Active
- 2006-08-01 CN CN200680028003XA patent/CN101233479B/zh not_active Expired - Fee Related
- 2006-08-01 KR KR1020087004671A patent/KR20080038364A/ko not_active Application Discontinuation
- 2006-08-01 CN CN2006800281668A patent/CN101233480B/zh not_active Expired - Fee Related
- 2006-08-01 WO PCT/US2006/030242 patent/WO2007019220A2/en active Application Filing
- 2006-08-01 CN CN200680028197.3A patent/CN101233498B/zh not_active Expired - Fee Related
- 2006-08-01 EP EP06789293A patent/EP1920337A2/en not_active Withdrawn
- 2006-08-01 CN CN2006800360852A patent/CN101278267B/zh active Active
- 2006-08-01 WO PCT/US2006/030093 patent/WO2007019174A2/en active Application Filing
- 2006-08-01 JP JP2008525155A patent/JP4537481B2/ja not_active Expired - Fee Related
- 2006-08-02 US US11/461,997 patent/US7610437B2/en active Active
- 2006-08-02 US US11/462,007 patent/US7590794B2/en active Active
- 2006-08-02 US US11/462,013 patent/US7590795B2/en active Active
- 2006-08-02 US US11/462,001 patent/US7562181B2/en active Active
- 2006-08-03 TW TW095128507A patent/TW200805134A/zh unknown
- 2006-08-03 TW TW095128512A patent/TW200745929A/zh unknown
- 2006-08-03 TW TW095128497A patent/TW200741526A/zh unknown
- 2006-08-03 TW TW095128517A patent/TW200745930A/zh unknown
- 2006-08-03 TW TW095128508A patent/TW200731065A/zh unknown
- 2006-08-03 TW TW095128505A patent/TWI421684B/zh not_active IP Right Cessation
-
2008
- 2008-02-27 KR KR1020087004662A patent/KR101377147B1/ko not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004697A (zh) * | 2010-10-21 | 2011-04-06 | 北京握奇数据系统有限公司 | 一种Flash的回收方法和装置 |
CN102004697B (zh) * | 2010-10-21 | 2012-09-19 | 北京握奇数据系统有限公司 | 一种Flash的回收方法和装置 |
CN102736985A (zh) * | 2011-03-30 | 2012-10-17 | 群联电子股份有限公司 | 数据合并方法、控制器与储存装置 |
CN106325764A (zh) * | 2015-07-08 | 2017-01-11 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN108509349A (zh) * | 2017-02-27 | 2018-09-07 | 立而鼎科技(深圳)有限公司 | 一种nand flash的数据源区块回收方法及固态硬盘 |
CN110196816A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 控制器、其操作方法以及包括控制器的存储器系统 |
CN110196816B (zh) * | 2018-02-27 | 2023-06-13 | 爱思开海力士有限公司 | 控制器、其操作方法以及包括控制器的存储器系统 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101233479B (zh) | 直接存储数据文件的存储器区块的管理 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件系统的使用 | |
CN101147119B (zh) | 快闪存储器中的直接数据文件存储实施技术 | |
CN101233481B (zh) | 通过逻辑地址空间且以直接数据文件为基础操作的介接系统 | |
EP1920335B1 (en) | Reclaiming data storage capacity in flash memory systems | |
CN101147133B (zh) | 可再编程非易失性存储器系统的方法及存储器系统 | |
CN101164037B (zh) | 闪速存储器中的直接数据文件存储 | |
CN102831071B (zh) | 用于存储器装置的存储地址重新映射的方法和系统 | |
CN101263462B (zh) | 具有区块管理的非易失性存储器 | |
CN101253468A (zh) | 用于存储装置的双模式存取的方法和系统 | |
WO2007076378A2 (en) | Dual mode access for non-volatile storage devices | |
KR101378031B1 (ko) | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 | |
KR101464199B1 (ko) | 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법 | |
TWI336856B (en) | Method and system of logically-addressed file storage | |
WO2007079358A2 (en) | Method and system for accessing non-volatile storage devices | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け | |
KR20090108695A (ko) | 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20080730 |