CN101238431A - 大容量数据存储系统 - Google Patents
大容量数据存储系统 Download PDFInfo
- Publication number
- CN101238431A CN101238431A CNA2006800285349A CN200680028534A CN101238431A CN 101238431 A CN101238431 A CN 101238431A CN A2006800285349 A CNA2006800285349 A CN A2006800285349A CN 200680028534 A CN200680028534 A CN 200680028534A CN 101238431 A CN101238431 A CN 101238431A
- Authority
- CN
- China
- Prior art keywords
- storage device
- mass storage
- data
- file
- volatile mass
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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
-
- 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/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
Abstract
本发明提供用于在主机系统与数据存储系统之间传送数据的系统和方法。所述系统包含接口,所述接口使用基于文件的协议来在所述数据存储系统与所述主机系统之间传送数据,其中所述数据存储系统包含第一大容量存储装置和第二大容量存储装置;其中所述第一大容量存储装置是固态非易失性存储器装置且所述第二大容量存储装置是非固态存储器装置。所述第一大容量存储装置是以逐文件为基础存储数据的操作为主存储装置的快闪存储器装置。所述第二大容量存储装置是操作为次级存储装置且存储经由逻辑接口接收的数据的磁盘驱动器。
Description
相关申请案的交叉参考
本申请案涉及以下共同待决专利申请案:
序列号:10/772,855;2005年2月4日申请;代理人案号SDK01P018;题为“Dual MediaStorage Device”,发明人为Alan W.Sinclair;
序列号:10/772,789;2005年2月4日申请;代理人案号SDK1P019;题为“Mass StorageAccelerator”,发明人为Alan W.Sinclair;以及
序列号:11/060,249;2005年2月16日申请;代理人案号SDK0380.US0,题为“DirectData File Storage in Flash Memories”,发明人为Alan W.Sinclair和Peter J.Smith;
序列号:11/060,174;2005年2月16日申请;代理人案号SDK0380.US1,题为“DirectData File Programming and Deletion in Flash Memories”,发明人为Alan W.Sinclair和PeterJ.Smith;
序列号:11/060,248,2005年2月16日申请;代理人案号SDK0380.US2,题为“DirectData File Storage Implementation Techniques in Flash Memories”,发明人为Alan W.Sinclair和Peter J.Smith;以及
由Alan W.Sinclair和Barry Wright与本申请案同时申请且题为“Direct Data FileStorage in Flash Memories”的临时专利申请案(以上申请案在下文中统称为“直接数据文件存储申请案”),以上专利申请案以全文引用的方式并入本文中。
技术领域
本发明大体涉及存储装置,且更特定来说涉及使用直接数据文件存储接口的双媒体存储装置。
背景技术
常规计算机系统通常包含若干功能组件。这些组件可包含中央处理单元(CPU)、主存储器、输入/输出(“I/O”)装置以及大容量存储装置。在常规系统中,主存储器经由系统总线或局部存储器总线耦合到CPU。主存储器用于向CPU提供在执行时间对存储在主存储器中的数据和/或程序信息的存取。通常,主存储器包含随机存取存储器(RAM)电路。具有CPU和主存储器的计算机系统常称为主机系统。
大容量存储装置通常用于保持数据。通常,在由CPU执行之前将存储在大容量存储装置中的程序复制到主存储器。常见的大容量存储装置包含软磁盘、硬磁盘、光盘和磁带驱动器。
另外,快闪存储器可用于提供非易失性存储。主机系统经由接口与快闪存储器(也可称为“快闪装置”、“快闪存储器”或“快闪卡”,在本说明书中可互换使用)介接。快闪存储器通常包含用于存储信息的非易失性存储器单元阵列。
最常见以与例如个人计算机、相机等多种主机可移除地连接的存储器卡或快闪驱动器的形式提供快闪存储器系统,但其也可嵌入在此类主机系统内。
快闪存储器控制器通常控制存储器阵列的操作。存储器控制器包含微处理器、某种非易失性只读存储器(“ROM”)、易失性随机存取存储器(“RAM”)和一个或一个以上特殊电路,例如在数据通过存储器控制器时从数据计算ECC的错误校正码电路(“ECC”)。
在早一代商业快闪存储器系统中,将矩形存储器单元阵列划分为大量单元群组,每一者存储标准磁盘驱动器扇区的数据量,即512字节。每个群组中还通常包含例如16个字节的额外数据量,以存储错误校正码(ECC)和可能的与用户数据和/或其中存储用户数据的存储器单元群组相关的其它开销数据。每个此群组中的存储器单元是可共同擦除的最小数目的存储器单元。也就是说,擦除单位有效地是存储一个数据扇区和所包含的任何开销数据的大量存储器单元。此类型的存储器系统的实例描述于第5,602,987号和第6,426,893号美国专利中。需要在用数据对其再编程之前擦除存储器单元是快闪存储器的特性。
在常规系统中,主机维持文件系统并向逻辑群集分配文件数据,其中群集大小通常是固定的。将快闪装置划分为多个逻辑扇区且主机分配由多个逻辑扇区组成的群集内的空间。群集是逻辑地址的细分,且群集图表示为文件分配表(“FAT”)。FAT通常存储在存储装置本身上。
在常规系统中,当向存储器写入数据时,主机通常向存储器系统的连续虚拟地址空间内的扇区、群集或其它数据单位指派唯一的逻辑地址。类似于磁盘操作系统(DOS),主机向存储器系统的逻辑地址空间内的地址写入数据以及从其读取数据。存储器系统内的控制器将从主机接收的逻辑地址转译为实际存储数据的存储器阵列内的物理地址,且接着跟踪这些地址转译。存储器系统的数据存储容量至少与在为存储器系统界定的整个逻辑地址空间上可寻址的数据量一样大。
发明人先前已使用了将单独装置(即,大容量存储和快闪存储器)合并到单个大容量存储系统中的概念,如上述共同待决专利申请案中所揭示。这些集成装置在使用逻辑接口在主机与合并的存储系统之间传送数据的情况下操作。
现在正在开发其它文件存储系统(或格式)以使得主机不必执行文件到逻辑地址的映射。
因此,需要一种方法和系统,其允许主机系统有效地从使用非传统文件存储格式的快闪存储器系统和仍基于使用逻辑接口的常规逻辑地址空间/格式的大容量存储装置读取数据,以及向以上两者写入数据。
发明内容
在本发明的一方面中,提供一种用于在主机系统与数据存储系统之间传送数据的系统。所述系统包含接口,所述接口使用基于文件的协议来在所述数据存储系统与所述主机系统之间传送数据,其中所述数据存储系统包含第一大容量存储装置和第二大容量存储装置;其中所述第一大容量存储装置是固态非易失性存储器装置且所述第二大容量存储装置是非固态存储器装置。
所述第一大容量存储装置是以逐文件为基础存储数据的操作为主存储装置的快闪存储器装置。所述第二大容量存储装置是操作为次级存储装置且存储经由逻辑接口接收的数据的磁盘驱动器。
在本发明的另一方面中,提供一种用于在主机系统与数据存储系统之间传送数据的系统。所述系统包含接口,所述接口使用基于文件的协议来在所述数据存储系统与所述主机系统之间传送数据,其中所述数据存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置;且所述第一非易失性大容量存储装置以第一格式存储数据,且所述第二非易失性大容量存储装置以第二格式存储数据。
在本发明的又一方面中,提供一种数据存储系统。所述数据存储系统包含:第一非易失性大容量存储装置,其经由使用基于文件的协议的接口与主机系统介接;以及第二非易失性大容量存储装置;其中所述第二非易失性大容量存储装置与所述第一非易失性大容量存储装置介接,且来自所述主机系统的数据可存储在所述第一非易失性大容量存储装置和/或所述第二非易失性大容量存储装置中。
在本发明的另一方面中,提供一种数据存储系统。所述数据存储系统包含第一非易失性大容量存储装置,其经由基于文件的协议与主机系统介接;其中所述第一非易失性大容量存储装置包含磁盘驱动器以与第二非易失性大容量存储装置介接,且来自所述主机系统的文件数据可存储在所述第一非易失性大容量存储装置和/或第二非易失性大容量存储装置中。
在本发明的又一方面中,提供一种用于将由主机系统发送的数据写入大容量存储系统的方法。所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置。所述方法包含:通过唯一文件识别符和个别文件内的偏移量来识别个别数据文件,其中所述主机系统产生所述唯一文件识别符和所述偏移量,并将所述文件识别符和所述偏移量发送到所述大容量存储系统;以及如果在所述第一非易失性存储装置中空间可用,那么将所述数据存储在所述第一非易失性大容量存储装置中,且如果在所述第一非易失性大容量存储装置中用于所述文件的存储空间不可用,那么调度复制操作以将数据从所述第一非易失性大容量存储装置传送到所述第二非易失性大容量存储装置。
在本发明的另一方面中,提供一种用于从大容量存储系统读取数据的方法。所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置。所述方法包含:接收个别唯一文件识别符和文件的偏移量,其中主机系统产生所述唯一文件识别符和偏移量,并将所述文件识别符和偏移量发送到所述大容量存储系统以用于将从所述大容量存储系统读取的数据;确定所述文件是位于所述第一非易失性大容量存储装置中还是所述第二非易失性大容量存储装置中;以及如果所述文件位于所述第一非易失性大容量存储装置中,那么从所述第一非易失性大容量存储装置存取数据。
在本发明的又一方面中,提供一种用于将由主机系统发送的数据写入大容量存储系统的方法,其中所述大容量存储系统具有第一非易失性大容量存储装置和第二非易失性大容量存储装置。所述方法包含:通过唯一文件识别符和个别文件内的偏移量来识别个别数据文件,其中所述主机系统产生所述唯一文件识别符和所述偏移量,并将所述文件识别符和偏移量发送到所述大容量存储系统;如果在所述第一非易失性大容量存储装置中空间可用,那么将所述文件数据写入所述第一非易失性大容量存储装置;确定是否应将所述文件数据分段;以及将文件段复制到所述第二非易失性大容量存储装置。
在本发明的又一方面中,提供一种用于将由主机系统发送的数据写入大容量存储系统的方法,其中所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置。所述方法包含:从主机系统接收写入命令;如果在所述第一非易失性大容量存储装置中空间可用,那么将写入命令发送到所述第一非易失性大容量存储装置以用于写入第一文件段;将写入命令发送到所述第二非易失性大容量存储装置以用于写入第二文件段;在所述第二非易失性大容量存储装置准备好存储所述第二文件段时,将所述第一文件段存储在所述第一非易失性大容量存储装置中;以及将第二文件段存储在所述第二非易失性大容量存储装置中。
已提供此简要发明内容以使得可快速理解本发明的性质。通过参看下文结合附图对本发明优选实施例的详细描述可获得对本发明的更完全的理解。
附图说明
现将参看优选实施例的图式描述本发明的上述特征和其它特征。在图中,相同组件具有相同参考标号。希望所说明的实施例用以说明而不是限制本发明。图式包含以下各图:
图1A展示使用快闪装置的主机系统的框图;
图1B展示图1A的主机系统的结构;
图2A展示根据本发明一方面的虚拟存储装置的框图;
图2B展示根据本发明一个方面使用的快闪装置的存储器控制器的框图;
图2C展示用于快闪存储器系统的物理存储器组织的实例;
图2D展示图2C的物理存储器的一部分的展开图;
图2E展示图2C和2D的物理存储器的一部分的进一步展开图;
图2F展示主机与可再编程存储器系统之间的常规逻辑地址接口;
图2G展示根据本发明一方面的主机与可再编程存储器系统之间的直接数据文件存储接口;
图2H以不同于图2F的方式展示主机与可再编程存储器系统之间的常规逻辑地址接口;
图2L以不同于图2G的方式展示根据本发明一方面的主机与可再编程存储器系统之间的直接数据文件存储接口;
图2M展示存储器系统实例的功能分级;
图2N展示根据本发明一方面的虚拟存储装置的详细框图;
图2P展示根据本发明一方面的具有使用图2N的虚拟存储装置执行的各种操作列表的表;
图2Q展示根据本发明一方面的对文件进行分段的实例;
图2R展示根据本发明一方面的用于对文件进行分段的表的实例;
图2S展示根据本发明一方面的具有与文件引导器模块介接的文件定位器的存储系统的又一框图;
图2T展示根据本发明一方面的文件定位器表的框图;
图3展示根据本发明一方面的使用虚拟存储装置的总过程流程图;
图4展示根据本发明一方面的使用虚拟存储装置的写入过程的流程图;
图5展示根据本发明一方面的使用虚拟存储装置的读取过程的流程图;
图6展示根据本发明一方面的使用虚拟存储装置的复制过程的流程图;
图7展示根据本发明一方面的由虚拟存储装置维持的复制日志;
图8A和8B展示根据本发明一方面的用于写入文件段的过程流程图;以及
图9展示根据本发明一方面的用于读取经分段文件的流程图。
具体实施方式
为了便于理解优选实施例,将描述主机系统/快闪装置的一般结构和操作。接着将参考一般结构描述优选实施例的特定结构和操作。
主机系统:
图1A展示可利用本发明的通用计算机系统(主机系统)100。系统100的组件包含计算机160、各种输入/输出(“I/O”)装置,例如鼠标170、键盘165、监视器120和打印机125。
图1B展示计算机系统100的抽象表示。希望组件130表示允许用户与计算机系统100交互的多个输入装置,例如鼠标和键盘。类似地,输出135表示一个或一个以上输出装置,例如监视器120和打印机125。
计算机系统100包含连接到系统总线155的中央处理单元(“CPU”)(或微处理器)175。主存储器145(例如,随机存取主存储器(“RAM”))也耦合到系统总线155并向CPU175提供对存储器存储装置的存取。当执行程序指令时,CPU175将那些过程步骤存储在RAM145中并在RAM145外部执行存储的过程步骤。
提供只读存储器(“ROM”)(未图示)以存储不变的指令序列,例如启动指令序列或基本输入/输出操作系统(BIOS)序列。
大容量存储装置150允许计算机系统100永久保持大量数据。下文详细描述大容量存储装置150。
大容量存储系统:
图2A展示大容量存储系统(也可称为虚拟快闪存储装置或虚拟存储装置)150的框图。大容量存储系统150经由文件接口通道103与主机系统100介接。文件接口103通过使用基于文件的协议便利了在大容量存储装置150组件与主机系统100之间的数据/命令传送,如下文所述。
大容量存储装置150是虚拟快闪文件存储装置,其使用直接数据文件快闪装置(或固态非易失性存储器装置)116(如图2N中116所示)作为主存储装置以及高容量磁盘(或任何其它非固态存储器装置,例如磁带驱动器)110作为次级存储装置。数据以逐文件为基础存储在快闪装置116中。
次级存储装置110包含磁盘控制器111A和存储器存储装置111B。磁盘控制器111A便利了主存储装置116与次级存储装置110之间的数据传送。值得注意的是,次级存储装置110可以是非固态存储器装置,例如硬盘、磁带驱动器等。
在实际上结合快闪装置116使用磁盘110时,大容量存储装置150向用户表现为快闪存储装置。
值得注意的是,主存储装置116可以是主机系统100的一体部分,而作为传统硬盘操作的次级存储装置110可在主机系统100的外部。此外,主存储装置116和次级存储装置110可使用类似或不同格式存储数据。
快闪装置116(或主存储装置116,在本说明书中可互换使用)包含控制器模块116A(也可称为“存储器系统控制器”或“存储器控制器”或“控制器”)和固态存储器模块116B。控制器116A经由文件接口103或另一外围总线(未图示)或经由系统总线155与主机系统100介接。
目前存在许多不同的市售的快闪装置(或快闪存储器卡),实例是紧致快闪存储器(CF)、多媒体卡(MMC)、安全数字(SD)、小型SD、记忆棒、智能媒体和TransFlash卡。尽管这些卡中的每一者均具有根据其标准化规范的独特的机械和/或电气接口,但每一者中包含的快闪存储器是非常相似的。这些卡可从本申请案的受让人SanDisk公司购得。SanDisk还提供以Cruzer为商标的快闪驱动器线,其为小封装的手持存储器系统,所述系统具有用于通过插入主机的通用串行总线(USB)插座而与主机连接的USB插头。这些存储器卡和快闪驱动器中的每一者均包含与主机介接并控制其内快闪存储器的操作的控制器。
使用这些存储器卡和快闪驱动器的主机系统有许多且各式各样。它们包含个人计算机(PC)、膝上型和其它便携式计算机、蜂窝式电话、个人数字助理(PDA)、数字静态相机、数字电影相机和便携式音频播放器。主机通常包含用于一种或一种以上类型的存储器卡或快闪驱动器的内置插座,但其中一些需要能插入存储器卡的适配器。
与次级存储装置110相比,主存储装置116是紧致的且具有对冲击和振动的较高抵抗力,因为其可在没有移动部件的情况下操作,不同于使用各种移动部件的次级存储装置110。
主存储装置116还具有比次级存储装置110快的搜寻时间,即,与主机可从/向次级存储装置110读取和写入数据的速度相比,主机可较快地向/从主存储装置116写入和读取数据。主存储装置116通常具有比次级存储装置110少的存储容量。大容量存储系统150有利地提供较快的直接数据文件快闪存储装置和高容量存储装置两者,下文中详细描述。
目前优选存储器单元阵列116B的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号美国专利申请公开案。
图2B展示控制器模块116A的内部结构的框图。控制器模块116A包含微控制器116C,其经由接口逻辑116E与各种其它组件介接。存储器116D存储由微控制器116C用以控制快闪装置116的操作的固件和软件指令。存储器116D可为易失性可再编程随机存取存储器(“RAM”)、不可再编程的非易失性存储器(“ROM”)、一次可编程存储器或可再编程快闪电可擦除和可编程只读存储器(“EEPROM”)。
主机接口116G与主机系统100介接(经由文件接口103),而快闪接口116F与存储器模块116B介接。
图2C概念性说明用作下文进一步描述中的实例的快闪存储器单元阵列(116B)的组织。存储器单元的四个平面或子阵列131-134可在单个集成存储器单元芯片上、在两个芯片上(每个芯片上两个平面)或在四个单独芯片上。具体布置对下文的论述来说不重要。当然,在系统中可存在其它数目的平面,例如1、2、8、16或更多。将平面个别地划分为图2C中用矩形展示的存储器单元区块,例如位于各自平面131-134中的区块137、138、139和140A。每个平面中可存在数十个或数百个区块。
存储器单元区块是擦除的单位,是物理上可共同擦除的最小数目的存储器单元。然而为了增加的并行性,以较大的元区块为单位来操作区块。将来自每个平面的一个区块逻辑上链接在一起以形成元区块。展示四个区块137-140A形成一个元区块141。元区块内的所有单元通常共同擦除。用于形成元区块的区块无需限于其各自平面内的相同的相对位置,如由区块145-148组成的第二元区块143中所示。
尽管通常优选在所有平面上延伸元区块以获得高系统性能,但可以在不同平面中动态形成具有一个、两个或三个区块中的任一种或全部的元区块的能力来操作存储器系统。
这允许元区块的大小较接近地与一次编程操作中可用于存储的数据量匹配。
为了操作目的,又将个别区块划分为存储器单元页,如图2D说明。例如区块131-134中每一者的存储器单元各划分为八个页P0-P7。或者,每个区块内可存在16个、32个或更多存储器单元页。页是在区块内数据编程和读取的单位,含有一次编程的最小数据量。
在NAND结构中,页由沿着区块内字线的存储器单元形成。然而为了增加存储器系统操作并行性,可将两个或两个以上区块内的所述页逻辑上链接成元页。图2D中说明元页151,其由来自四个区块131-134中每一者的一个物理页形成。元页151例如包含所述四个区块中每一者中的页P2,但元页的页无需在区块的每一者内一定具有相同的相对位置。
尽管优选在所有四个平面上并行编程和读取最大数据量以获得高系统性能,但也可操作存储器系统以在不同平面中的单独区块中形成具有一个、两个或三个页中的任一种或全部的元页。这允许编程和读取操作适应性地与可方便地并行处理的数据量匹配,且减少了元页的一部分保持未以数据编程的发生。
由多个平面的物理页形成的元页(如图2D说明)含有沿着那些多个平面的字线行的存储器单元。并非同时对一个字线行中的所有单元编程,而是较常见以两个或两个以上交错群组对其交替编程,每个群组存储一个数据页(在单个区块中)或一个数据元页(在多个区块上)。通过每次对交替的存储器单元进行编程,无需对每个位线均提供包含数据寄存器和读出放大器的外围电路单位,而是在邻近的位线之间时间共享。这节省了外围电路所需的衬底空间量,且允许以沿着行而增加的密度来封装存储器单元。另外,优选对沿着行的每个单元同时编程,以便最大化自给定存储器系统可用的并行性。
图2E展示页或元页数据的两个扇区153和155的逻辑数据页。每个扇区通常含有所存储的用户或系统数据的512个字节的部分157以及用于涉及部分157中的数据或涉及其中存储有数据的物理页或区块的开销数据的另一数目的字节159。开销数据的字节数通常为16个字节,从而对于扇区153和155中每一者为总共528个字节。开销部分159可含有在编程期间从数据部分157计算出的ECC、其逻辑地址、区块已擦除和再编程次数的经历计数、一个或一个以上控制旗标、操作电压电平和/或类似物,加上从此开销数据159计算出的ECC。或者,开销数据159或其一部分可存储在其它区块中的不同页中。
随着存储器的并行性增加,元区块的数据存储容量增加且数据页和元页的大小也因此增加。数据页接着可含有两个以上数据扇区。由于数据页中的两个扇区且每个元页两个数据页,所以一个元页中存在四个扇区。每个元页因此存储2048个字节的数据。这是高度的并行性,且可甚至在行中存储器单元数目增加时进一步增加。出于此原因,延伸快闪存储器的宽度以便增加页和元页中的数据量。
上文识别的物理上较小的可再编程非易失性存储器卡和快闪驱动器是市售的,其具有512兆字节(MB)、千兆字节(GB)、2GB和4GB的数据存储容量,且可能更高。
图2F说明主机与大容量存储器系统之间的最常见的接口。主机处理由主机执行的应用程序软件或固件程序产生或使用的数据文件。字处理数据文件是一个实例,且计算机辅助设计(CAD)软件的绘图文件是另一实例,主要存在于例如PC、膝上型计算机等一般计算机主机中。pdf格式的文档也是这种文件。数码相机为存储在存储器卡上的每幅图产生一个数据文件(静止和/或视频)。蜂窝式电话利用来自内部存储器卡上的文件的数据,例如电话簿。PDA存储并使用若干不同的文件,例如地址文件、日历文件等。在任何这种应用中,存储器卡还可含有操作主机的软件。
图2F说明主机与存储器系统之间的常用逻辑接口。连续的逻辑地址空间161足够大以为可存储在存储器系统中的所有数据提供地址。通常将主机地址空间划分为数据群集的增量。每个群集在给定主机系统中可经设计为含有许多数据扇区,在有些地方在4与64个扇区之间是典型的。标准扇区含有512个字节的数据。
在图2F的实例中展示三个文件1、2和3已产生。在主机系统上运行的应用程序产生每个文件作为有序的数据集,并通过唯一的名称或其它参考对其进行识别。尚未分配给其它文件的足够可用的逻辑地址空间由主机指派给文件1。文件1展示为已被指派有邻接的可用逻辑地址范围。还通常为特定目的分配地址范围,例如针对主机操作软件的特定范围,接着为存储数据而避开这些特定范围,即使在主机向数据指派逻辑地址时仍未利用这些地址。
当主机稍后产生文件2时,主机类似地指派逻辑地址空间161内的两个不同的邻接地址范围,如图2F所示。文件无需被指派邻接的逻辑地址,而是可为已分配给其它文件的地址范围之间的地址段。这个实例接着展示由主机产生的又一个文件3被分配有主机地址空间的其它先前未分配给文件1和2以及其它数据的部分。
主机通过维持文件分配表(FAT)来跟踪存储器逻辑地址空间,所述FAT中维持主机向各个主机文件指派的逻辑地址。FAT表通常存储在非易失性存储器中以及主机存储器中,且在存储新文件、删除其它文件、修改文件等时由主机频繁更新。例如当删除主机文件时,主机接着通过更新FAT表来对先前分配给经删除文件的逻辑地址解除分配,以显示这些逻辑地址现可用于其它数据文件。
主机并不关心其中存储器系统控制器选择存储文件的物理位置。典型主机仅知道其逻辑地址空间以及其已分配给其各个文件的逻辑地址。另一方面,通过典型主机/卡接口,存储器系统仅知道逻辑地址空间的已写入数据的部分,但不知道分配给特定主机文件的逻辑地址,或甚至不知道主机文件的数目。存储器系统控制器116A将由主机为数据的存储或检索而提供的逻辑地址转换为其中存储有主机数据的快闪存储器单元阵列内的唯一物理地址。区块163表示这些逻辑到物理地址转换的工作表,其由存储器系统控制器116A维持。
存储器系统控制器116A经编程为以将系统性能维持在高水平的方式将数据文件存储在存储器阵列165的区块和元区块内。在此说明中使用四个平面或子阵列。在由来自每个平面的区块形成的整个元区块上优选以系统允许的最大程度的并行性编程和读取数据。至少一个元区块167通常经分配作为用于存储由存储器控制器使用的操作固件和数据的保留区块。可分配另一元区块169或多个元区块以用于存储主机操作软件、主机FAT表等。保留物理存储空间的大部分以用于存储数据文件。
然而存储器系统控制器116A不知道主机如何在其各个文件对象之间分配所接收的数据。存储器控制器116A从与主机交互作用中通常知道的全部内容就是由主机写入到特定逻辑地址的数据存储在由控制器的逻辑到物理地址表163维持的相应物理地址中。
在典型的存储器系统中,提供比存储地址空间161内的数据量所必需的存储容量多的存储容量的若干额外区块。可提供这些额外区块中的一者或一者以上作为用于代替在存储器使用寿命期间可能变为有缺陷的其它区块的冗余区块。个别元区块内含有的区块的逻辑分组通常可因为各种原因而改变,包含冗余区块对原始指派给元区块的有缺陷区块的代替。例如元区块171的一个或一个以上额外区块通常维持在经擦除的区块池(blockpool)中。
当主机向存储器系统写入数据时,控制器116A将由主机指派的逻辑地址转换为经擦除区块池中元区块内的物理地址。未用于将数据存储在逻辑地址空间161内的其它元区块接着经擦除并指定作为经擦除的池区块以供在后续数据写入操作期间使用。
在原始存储的数据变过时时由新数据频繁覆写存储在特定主机逻辑地址的数据。作为响应,存储器系统控制器116A将新数据写入经擦除的区块,并接着针对那些逻辑地址改变逻辑到物理地址表以识别存储那些逻辑地址处数据的新的物理区块。接着擦除含有那些逻辑地址处原始数据的区块并使其可用于新数据的存储。如果在写入开始时在来自擦除区块池的预擦除区块中没有足够的存储容量,那么这种擦除常常必须在当前数据写入操作可完成之前发生。这可能不利地影响系统数据编程速度。存储器控制器116A通常了解到仅在主机向其相同逻辑地址写入新数据时由主机使给定逻辑地址处的数据变过时。因此许多存储器区块可能存储此类无效数据历时一定时间。
区块和元区块的大小逐渐增加,以便有效地使用集成电路存储器芯片的面积。这导致较大比例的个别数据写入存储的数据量小于元区块的存储容量,且在许多情况下甚至小于区块的存储容量。由于存储器系统控制器116A通常将新数据引导到经擦除的池元区块,因此这可导致元区块的若干部分不被填充。如果新数据是对存储在另一元区块中的某个数据的更新,那么还期望以逻辑地址次序将其余有效的数据元页从具有与新数据元页的逻辑地址邻接的逻辑地址的所述另一元区块复制到新的元区块中。老的元区块可保持其它有效的数据元页。这随着时间过去而导致个别元区块的某些元页的数据变为过时且无效,并由写入到不同元区块的具有相同逻辑地址的新数据所替换。
为了维持足够的物理存储器空间来在整个逻辑地址空间161上存储数据,对此数据进行周期性压缩或合并(垃圾收集)。还希望以与其实际一样多的逻辑地址的相同次序维持元区块内的数据扇区,因为这使得读取邻接逻辑地址中的数据更为有效。因此通常以此额外目的来执行数据压缩和垃圾收集。在接收部分区块数据更新时对存储器进行管理的一些方面以及元区块的使用描述于第6,763,424号美国专利中。
直接数据文件存储系统:
图2G展示由快闪装置116用于“直接数据文件”存储或“直接文件存储”(“DFS”)方法/系统的布局,所述DFS方法/系统揭示于2005年2月16日申请、代理人案号为SDK0380.US0的第11/060,249号共同待决专利申请案以及上文引用的直接数据文件存储申请案。
在DFS装置中,主机系统100如上述专利申请案所述以逐文件为基础(即,使用基于文件的协议)存取数据,也就是说,通过主机逻辑使用唯一文件识别符(“文件ID”或任何其它唯一参考)和文件内的偏移地址来识别数据。不为装置界定任何逻辑地址空间。主机系统100不向逻辑群集分配文件数据,且文件的目录/索引表信息由快闪装置116产生。
主机通过唯一的文件ID(或其它唯一参考)和文件内数据单位(例如字节)的偏移地址来寻址每个文件。此文件地址直接给予存储器系统控制器116A,存储器系统控制器116A接着保持其自身的每个主机文件的数据物理存储的地点的表。
图2G中说明此基于文件的接口,其应与图2F的逻辑地址接口进行比较。将文件1、2和3中每一者的识别以及图2G的文件内数据的偏移量直接传递到存储器控制器。此逻辑地址信息接着由存储器控制器功能173转译为存储器165的元区块和元页的物理地址。
图2L也说明基于文件的接口,其应与图2H的逻辑地址接口进行比较。图2H的逻辑地址空间和主机维持的FAT表在图2L中不存在。而是,通过文件号和文件内数据的偏移量来将由主机产生的数据文件识别到存储器系统。存储器系统接着将文件直接映射到存储器单元阵列的物理区块。
参看图2M,说明本文描述的示范性大容量存储系统的功能层。“直接数据文件存储后端系统”(或直接文件存储后端系统)108通过“直接数据文件接口”(或直接文件接口)107和“基于文件的前端系统”115在基于文件的接口通道上与主机系统通信。例如通过文件名来唯一识别每个主机文件。通过对文件唯一的线性地址空间内的偏移地址来识别文件内的数据。
虚拟快闪存储装置150:
图2N展示与具有主存储装置116(类似于图2A的主存储装置116)和次级存储装置110的虚拟快闪存储装置150介接的主机系统100。
在主机100中操作的主机应用程序101经由主机文件驱动程序102介接以从/向虚拟快闪存储装置150读取和/或写入数据。主机文件驱动程序102提供主机地址,其中通过唯一文件ID(或其它唯一参考)和文件内数据单位(例如字节)的偏移地址识别每个文件。
虚拟快闪存储装置150执行并充当直接数据文件存储装置,同时提供磁盘的容量。
将写入虚拟存储装置150的文件引导到主存储装置116并使其可用于后续的读取和/或写入存取。从虚拟存储装置150读取的文件是从其在主存储装置116中的当前位置读取,或从次级存储装置110直接读取并复制到主存储装置116以用于后续存取。
在主存储装置116中可保持最大数目的文件。以最不新近的存取为基础将文件的当前位置从主存储装置116移动到次级存储装置110。
可通过将初始存取引导到存储在主存储装置116中文件的第一区块并接着在初始搜寻时间之后切换到次级存储装置110,来从次级存储装置110有效读取文件。
主存储装置116也可代替次级存储装置110存储应用程序文件104。应用程序文件104由CPU 145从主存储装置116复制,并接着在主存储器145外执行。由于与次级存储装置110相比可快速存取主存储装置116,因此应用程序文件104的总执行时间减少。
上述共同待决专利申请案中已描述了主存储装置116中的直接数据文件存储装置组件,例如基于文件的前端系统115、直接数据文件接口107以及直接数据文件后端系统108。
文件引导器模块106管理文件进入和退出主存储装置116和次级存储装置110的传送,如下文详细描述。可根据共同待决申请案中描述的垃圾收集操作来执行移动文件数据的操作,进而可基于改进效率和总性能而作为后台任务复制数据或作为前台任务交错存取数据。
文件引导器106可存取缓冲器105(或存储器105),缓冲器105可用于临时存储在主机100与虚拟存储装置150之间传送的数据。
主存储装置116包含磁盘文件系统113和磁盘驱动器112,磁盘驱动器112允许主存储装置116经由逻辑接口111C与常规磁盘110介接。磁盘文件系统113和磁盘驱动器112将直接数据文件接口107处的数据文件映射到由磁盘110使用的常规逻辑地址空间,以允许主存储装置116与次级存储装置110之间的文件数据传送。
值得注意的是,磁盘文件系统113和磁盘驱动器112也可用于执行后台操作,例如存储在磁盘111上的文件的碎片整理。
文件引导器106使用下文详细描述的文件定位器表106A(图2S和2T所示)来识别文件数据所位于的存储装置(即,主和/或次级存储装置)。文件定位器表可存储在快闪存储器116B中,且表的全部或一部分的复本也可高速缓存在存储器116D中。
图2S展示具有与文件引导器106介接的文件定位器表106A的大容量存储系统150(类似于图2N所示的系统)的框图。图2S还展示经由文件接口103从主机100接收的文件数据路径(识别为103A)、经由逻辑接口111C的LBA数据路径103B以及在文件引导器106与直接数据文件接口(或直接文件接口)107之间流动的控制信息103C。
图2T展示文件定位器表106A条目。文件定位器表106A针对存储在存储系统150中的每个文件含有一个条目(列106B下)。每个条目记录存储在主存储装置116中的具有连续文件偏移地址的数据的运行的开始和结束地址(列106C);以及存储在次级存储装置110中的具有连续文件偏移地址的数据的运行的开始和结束地址(列106D)。文件的有效数据可存在于一个或两个存储装置中。
当将数据写入存储装置、在存储装置之间复制或从存储装置删除时更新文件定位器表106A。文件定位器表106A仅识别文件内具有特定偏移地址的数据所位于的存储装置。其不识别存储装置内数据所位于的物理位置。这是通过所述两个存储装置内的正常文件目录和文件编索引结构完成的。
大容量存储系统150具有若干优点。举例来说,在本发明的一个方面中,可使次级存储装置110处于可用或不可用状态。不可用状态可表示装置物理上不可用或存储器控制器无法存取装置,直到装置变为可用为止。
主存储装置116总是在可用状态中,且因此可由存储器控制器116A存取。当次级存储装置110处于可用状态时,那么文件引导器106可存取主存储装置116和次级存储装置110两者。
当文件接口通道103从主机系统接收数据时,控制器116A可将数据写入主存储装置116或次级存储装置110。如果数据首先写入到主存储装置116A,那么作为后台操作将其复制到次级存储装置110。
控制器116A基于优化存储空间使用并允许主机尽可能快地完成写入操作来选择适当的存储装置。由于主存储装置116A与次级存储装置110相比具有较低的搜寻时间;因此将有利的是首先写入到主存储装置116A并接着复制到次级存储装置110。
在另一方面中,虚拟快闪存储装置150提供快速系统引导和快速应用程序启动。在主机系统的引导过程期间主机系统所需的信息(例如,操作系统和配置文件)可以逐文件为基础存储在主存储装置116中。在此情形中,主存储装置116操作为读取高速缓冲存储器,且其快速随机读取存取特性实现快得多的系统存取和启动。
可识别用于引导过程的信息并使其安全,使得其不被覆写。此初始信息可从次级存储装置110复制或存储在主存储装置116中。可以相同方式处理应用程序软件文件(展示为104),使得主机系统可快速起动应用程序。
虚拟存储装置150也可操作为低功率存储装置。通常,次级存储装置110比基于快闪存储器的主存储装置116消耗更多的功率。主存储器存储装置116可通过维持主存储装置116中新近存取的信息的复本以及新近写入信息的复本而用作读取/高速缓存装置。这将允许虚拟文件存储装置150借助于主存储装置116中的高速缓冲存储器命中来快速响应主机请求。控制器116A接着可使次级存储装置110自旋减慢以减少功率消耗。这在例如膝上型计算机、笔记本计算机等便携式应用中尤其有利。
虚拟文件存储装置150还操作为耐冲击存储装置。当装置正在具有高机械冲击风险的环境中使用时,控制器116A可使次级存储装置110自旋减慢。可对控制器116A固件进行编程,使得在很可能是这种环境时其使次级存储装置110自旋减慢。操作为读取/写入高速缓冲存储器的主存储装置116向主机系统提供主机起作用所需要的信息。
一旦次级存储装置110变为可用,那么数据就在主存储装置116与次级存储装置110之间同步。对于便携式装置,一旦将装置放置在扩展坞(docking station)中,次级存储装置110就变为可用。在另一方面中,可使用运动检测电路来确定系统是否不再处于易受冲击的环境中。而且,用户可手动改变设置,使得次级存储装置110可在任何给定时间可用。在另一实例中,通过将系统插入电源出口可向控制器116A发信号以启动次级存储装置110。
具有其主存储装置116和次级存储装置110的虚拟快闪存储装置150提供具有可容易存取的短期备份的可靠存储装置。主存储装置116可操作为写入高速缓冲存储器,并甚至在信息传送到次级存储装置110之后保持信息。如果信息维持尽可能长的时间,且仅在需要空间时被覆写,那么写入高速缓冲存储器提供新近写入信息的复本。这在次级存储装置110由于磁盘故障而毁坏并丢失数据的情况下提供了保障。
主存储装置116在从次级存储装置110读取的数据被复制并存储在主存储装置116中时操作为读取高速缓冲存储器。复制的数据存储在快闪存储器116B中并由文件引导器106控制。值得注意的是可选择性复制从次级存储装置110读取的数据。这可以是基于用以读取数据的频率、性质(即,正读取的文件的类型和大小),或任何其它标准。可对控制器116A固件进行编程以配置主存储装置116基于此标准而操作为读取高速缓冲存储器。
如早先陈述,主存储装置116也可操作为写入高速缓冲存储器。当主机系统100经由文件接口通道103发送数据时,文件引导器106可将数据完全或部分存储在快闪存储器116B中,并接着在虚拟存储装置150未被使用时将数据复制到次级存储装置110。在主存储装置116中将被复制的数据量将取决于文件的大小以及给定时间处主存储装置116中可用的自由空间量。这允许主机系统快速写入,因为主存储装置116具有较快的存取时间。
在本发明的又一方面中,存储器控制器116A将从主机接收的文件分为两个或两个以上段。一个段存储在主存储装置116中且另一段存储在次级存储装置110中。存储在主存储装置116中的段包含用于文件的足够信息,使得在主机请求文件时可容易地定位文件。当主机希望读取整个文件时,其可快速存取存储在主存储装置116中的第一段,同时从次级存储装置110获得第二段。
图2Q说明上述概念。响应于写入命令经由文件接口103从主机接收文件“F”。存储器控制器116A初始将整个文件写入主存储装置116。在主机写入操作完成之后,存储器控制器116A将文件数据分为两个部分F1和F2。值得注意的是,存储器控制器116A可在正接收数据时实时地将文件分为多个段,而不是首先进行等待以将数据复制到主存储装置116。
F1存储在主存储装置116中,且F2复制到次级存储装置110。通常,复制操作作为后台操作来进行。
段F1和F2的大小取决于分别存取次级存储装置110和主存储装置116的搜寻时间、文件的总大小以及可用以将数据传送到主机的速率。存储器控制器116A对文件进行分割以确保向主机的数据传送是有效的且存储器空间使用是最优的。
当主机希望读取文件F时,其将首先存取存储在主存储装置116中的段F1。由于主存储装置116具有较快的存取时间,因此主机可以较快速率存取F1。在F1正被传送到主机时,控制器116A从具有较慢搜寻时间的次级存储装置110获得段F2。因此,当F1传送完成时,已经获得F2并准备好传送。这改进了从虚拟存储装置150进行读取操作的总效率。
文件定位器106A跟踪文件段F1和F2存储的位置(图2T和图2R所示的部分表)。图2R的部分表展示段的顶层位置(例如,存储在主存储装置116中的段1(即,F1)和存储在次级存储装置110中的段2)。为了传送文件数据,文件引导器106存取文件定位器106A以确定特定段所处的位置。
在本发明的又一方面中,高速缓存文件而不是高速缓存逻辑区块地址提供了优于现有技术系统的优点。在先前的双存储媒体系统中,主机在快闪装置与硬磁盘之间具有逻辑接口。通过逻辑地址识别传送到/自主机的数据,且对逻辑地址而不是对文件进行高速缓存。没有任何方式来确保文件的逻辑地址的整个范围在适当的时间位于正确的装置中。
举例来说,系统可能希望确保当硬磁盘(次级存储装置)断电时或当磁盘移除(例如在未对接的便携式设备中)时.exe文件存储在快闪装置中。在先前的系统中,这是通过将.ext文件的逻辑地址高速缓存在快闪存储器中并接着将其锁定在快闪装置中来实现的。当先前从磁盘存取逻辑地址时执行高速缓存。然而,不能保证逻辑地址表示整个.exe文件。其可能仅用于应用程序内当便携式设备对接且磁盘可用时使用的功能。在未对接模式中使用的其它功能可能完全没有被高速缓存。
大容量存储系统150通过高速缓存完整文件而不是逻辑地址范围来解决上述缺点。这确保了整个.exe文件(如先前实例中讨论)高速缓存在主存储装置116中可用于快速存取。
过程流程:
在本发明的一个方面中,主存储装置116中的文件引导器106执行下文概述的且接着相对于图3-6和8A/8B-9中说明的过程流程图详细描述的各种操作。
当打开新文件用于写入时,其在主存储装置116内打开。大容量存储系统150表现为直接数据文件装置以用于写入、更新和读取此文件内的数据。
当打开现有文件用于写入时,其也在主存储装置116中打开。如果当前版本驻存在次级存储装置110中,那么将其复制到主存储装置116。这是作为后台操作执行的,但也可以低工作周期与读取或写入主存储装置116中的其它数据交错进行。再次,大容量存储系统150表现为直接数据文件装置以用于写入、更新和读取此文件内的数据。
当打开现有文件用于读取时,将文件的最近版本从其在主存储装置116或次级存储装置110中的位置打开。如果从次级存储装置110读取文件,那么将其复制到主存储装置116。文件优选在从次级存储装置110读取的同时进行复制,但其可作为单独的后台操作复制或作为低工作周期操作与读取或写入主存储装置中的其它数据交错进行。
当关闭文件时,可将其从主存储装置116复制到次级存储装置110。这通常是以最不新近使用为基础完成的,同时在主存储装置116中保持最大数目的文件。这种复制可作为优先的后台操作来执行,同时最有效的当前文件版本保留在主存储装置116中,直到文件被删除为止。
一些文件可锁定到主存储装置116,且因此总是从主存储装置116读取。举例来说,总是从主存储装置116读取与操作系统和应用程序104相关联的文件。为了安全起见,还将主存储装置116中的一些文件复制到次级存储装置110中作为备份。
当将文件的有效版本指派给次级存储装置110时,那么所述文件的初始数据区块可保持在主存储装置116中。
当读取其当前版本在次级存储装置110中的文件时,可从主存储装置116读取其第一数据区块,同时次级存储装置110执行对后续数据的搜寻。这提供了对所存储文件数据的较快存取。
当打开文件用于供某一类卡上应用程序(104)读取时,从次级存储装置110向主存储装置116复制文件可能被抑制。这允许例如病毒检查程序的应用程序对次级存储装置110中的大量文件直接操作。
值得注意的是,当主机接口不活动时,通过连续传送数据单位来复制文件,直到在主机接口处接收到命令或所有挂起的文件都被复制为止。
当主机接口活动时,通过使从/向主机接口写入/读取数据单位和在缓冲器(105,图2N)与不活动的存储装置之间复制数据单位交错进行来复制文件。将数据从/向主机接口写入/读取到/自主存储装置或次级存储装置的操作可以所述两个存储装置中的操作较大程度地同时进行的方式与向/从另一存储装置复制数据的操作交错进行。
数据单位可为任意方便的单位。例如,其可为包括512个字节的数据扇区,其为次级存储装置110中可寻址的最小数据单位。其也可为数据页,其为快闪存储器116B中可编程的最小数据单位。一页可包括1、2、4、8或更多扇区。其也可为数据元页,其为快闪存储器116B中可编程的最大数据单位。元页可包括1、2、4、8或更多页。其也可为大于元页的数据单位。在一个存储装置中写入/读取的数据单位可具有与在另一存储装置中写入/读取的数据单位不同的大小。
详细参看过程流程图,图3展示根据本发明一个方面的用于在主机系统100与虚拟存储装置150之间传送数据的可执行过程步骤的总过程流程图。详细参看图3,过程开始于步骤S300。在步骤S302中,控制器116A确定是否已接收到写入文件的命令。如果是,那么过程移动到图4中描述的步骤S306。
如果不存在写入命令,那么在步骤S304中,控制器116A确定是否已接收到针对文件读取操作的命令。如果接收到读取命令,那么过程移动到下文相对于图5描述的步骤S308。
如果在步骤S304中未接收到读取命令,那么在步骤S310中,控制器116A确定文件复制日志是否含有任何条目。如果是,那么过程移动到下文在图6中描述的步骤S312。如果不存在条目,那么过程回到步骤S302。
文件写入过程流程:
图4展示根据本发明一方面的用于向虚拟存储装置写入数据的可执行过程步骤的过程流程图。文件写入过程开始于步骤S306,如图3所示。
在步骤400中,控制器116A确定目标文件是否已打开。如果文件未打开,那么在步骤S402中,在主存储装置116中打开目标文件。使用基于文件的接口打开文件。
在步骤S404中,读取文件定位器106A。文件定位器106A用于将文件位置识别为存储在主存储装置116或次级存储装置110中。
在读取文件位置信息之后,在步骤S406中,控制器116A确定文件的当前版本是否存储在次级存储装置110中。如果文件位于次级存储装置110中,那么向由主存储装置116维持的复制曰志700(图7所示)添加一个条目。复制日志可存储在存储器116D中,且含有需要执行的各个复制操作的列表。复制日志针对需要被复制的每个文件具有一个条目。其还包含识别文件可能位于的位置(例如,主存储装置116或次级存储装置110)的条目。复制日志还包含识别目的地(即,文件被复制到的位置,即,主存储装置116、次级存储装置110或缓冲器105)的条目。
如果文件的当前版本没有存储在次级存储装置110中,那么过程移动到步骤S410。在步骤S410中,将写入命令发送到直接数据文件后端系统108。
在步骤S412中,文件引导器412确定空间是否可用于写入数据。由于数据是作为单个单位写入的,因此使用低阈值来确定空间是否可用于写入数据。阈值经设定以界定仅少量数据单位仍可写入到主存储装置116的容量,但在所述点应开始从主存储装置116向次级存储装置110的文件复制操作,以在主存储装置116中产生更多可用空间。如果没有空间可用,那么在步骤S414中,选择一个文件用于从主存储装置116进行复制。
如果在步骤S412中空间可用,那么在步骤S416中,文件引导器106确定来自主机系统100的数据是否可用。如果主机数据不可用,那么过程移动到步骤S422。
如果数据可用,那么在步骤S418中,文件引导器106确定主存储装置116是否已请求数据。如果是,那么将数据单位传送到主存储装置116。如果主存储装置116尚未请求数据,那么过程移动到步骤S422。
在步骤S422中,文件引导器106确定用以复制文件的条目是否存在于复制日志700中。如果是,那么在步骤S424中复制用于文件的一个或一个以上数据单位。如果条目不存在,那么在步骤S426中,文件引导器106确定是否已接收到另一命令。如果没有接收到其它命令,那么过程返回到步骤S412。如果接收到另一命令,那么在步骤S428中,更新文件定位器以反映主存储装置116或次级存储装置110中文件的当前位置。随后,在步骤S430中,过程返回步骤S302。
图8A展示其中存储器控制器116A对传入文件分段以使得一个段可存储在主存储装置116中且另一段可存储在次级存储装置110中的过程流程图。详细参看图8,在步骤S800中,存储器控制器116A从主机系统接收写入命令。
在步骤S802中,存储器控制器116A将文件写入主存储装置116中。在写入文件之后,在步骤S804中,存储器控制器116A确定文件是否可分段(或是否应分段)。如果文件无法/不应当分段,那么过程返回到步骤S800(在步骤S806中)。
如果文件被分段,那么在步骤S808中,存储器控制器116A确定文件段(F1和F2,图2Q),且在步骤S810中将文件段复制到次级存储装置110。复制操作作为后台操作进行,如下文相对于图6所述。
图8B展示根据本发明一方面的用于处理文件分段的又一流程图。过程开始于步骤S812,且在步骤S814中,接收针对来自主机系统100的文件(“F”)的写入命令。
在步骤S816中,存储器控制器116A(经由文件引导器106)确定主存储装置116中是否存在空间(类似于步骤S412,图4)。如果在主存储装置116中空间可用,那么在步骤S818中,将写入命令发送到主存储装置116以写入文件段(例如,F1、文件标头)。在步骤S820中,文件引导器106将写入命令发送到次级存储装置110以写入文件段F2。值得注意的是,步骤S818和S820可在步骤S816之后同时发生。
在步骤S822中,将文件段F1的至少一个数据单位发送到主存储装置116。值得注意的是,在于步骤S822中写入任一数据单位之前发送步骤S820中的写入命令。这允许次级存储装置110在数据单位正写入主存储装置116时经历其搜寻时间。这加速了总写入过程。
在步骤S824中,将段F2的数据发送到次级存储装置110,且过程结束于步骤S830。
如果在步骤S816中,主存储装置116中空间不可用,那么在步骤S826中,将写入命令发送到次级存储装置110,且在步骤S828中,将文件的数据发送到次级存储装置110。
文件读取过程:
图5展示根据本发明一方面的用于文件读取过程的过程流程图。文件读取过程开始于图3的步骤S308。在步骤S500中,文件引导器106读取文件定位器106A。
在步骤S502中,文件引导器106确定文件是否存在于主存储装置116中。如果是,那么在步骤S504中,将读取命令发送到主存储装置110。如果文件没有位于主存储装置110中,那么在步骤S512中,记录当前文件以用于从次级存储装置110复制,且在步骤S514中,将读取命令发送到次级存储装置110,且过程移动到步骤S506。
在步骤S506中,文件引导器106确定是否可从选定的存储装置(即,主存储装置116或次级存储装置110)获得数据。如果是,那么在步骤S508中,从选定存储装置传送数据。如果数据不可用,那么过程移动到步骤S516,其中文件引导器106确定是否存在文件复制日志条目。如果条目存在,那么在步骤S518中,复制文件的一个或一个以上数据单位。如果条目不存在,那么在步骤S510中,文件引导器106确定是否已接收到另一命令。如果没有接收到另一命令,那么过程返回到步骤S506,否则,在步骤S520中,过程移动到步骤S302(图3)。
图9展示根据本发明一方面的如上文相对于图8A和8B所述用于读取已存储在两个(或两个以上段)中的文件的过程流程图。详细参看图9,过程开始于步骤S900,且在步骤S902中,从主机系统100接收针对文件(“F”)的读取命令。
在步骤S904中,文件引导器106确定请求的文件(“F”)是否被分段。如果文件未被分段,那么在步骤S914中,基于文件所存储的位置将针对文件的读取命令发送到主存储装置116/次级存储装置110。在步骤S916中,从主存储装置116或次级存储装置110接收文件的数据,且过程结束。
如果文件被分段,那么在步骤S906中,文件引导器106向主存储装置116的存储器控制器116A发送针对段F1的读取命令。在步骤S908中,文件引导器106还向次级存储装置110发送针对段F2的读取命令。
在步骤S910中,从主存储装置116接收段F1的数据。值得注意的是,在从主存储装置116接收数据同时,次级存储装置110正在结束其搜寻时间以传递段F2的数据。这改进了读取过程的总效率。
在步骤S912中,从次级存储装置110接收段F2的数据,且过程结束。
文件复制操作:
图6展示根据本发明一方面的用于复制数据的流程图。流程图将执行图3的过程步骤S312。
详细参看图6,在步骤S600中,文件引导器106确定主机接口是否不活动,即,是否存在来自主机100的传送数据的有效命令。如果存在有效命令,那么过程移动到步骤S622,如下所述。
如果主机接口不活动,那么在步骤S602中,文件引导器106确定从主存储装置116的文件复制操作是否挂起,即,复制操作是否在进程中或正等待进行。如果文件复制操作挂起,那么在步骤S604中,将文件的至少一个数据单位从主存储装置116复制到次级存储装置110,且过程移动到步骤S606,如下所述。
如果在步骤S602中文件复制操作未挂起,那么在步骤S612中,文件引导器106确定是否挂起从次级存储装置110的文件复制操作。如果操作挂起,那么在步骤S614中,将至少一个数据单位从次级存储装置110传送到主存储装置116,且过程移动到步骤S606。
如果从次级存储装置110的文件复制操作未挂起,那么在步骤S616中,文件引导器106确定是否挂起从缓冲器105的文件复制操作。如果挂起从缓冲器105的文件复制操作,那么在步骤S618中,将至少一个数据单位从缓冲器105传送到主存储装置116或次级存储装置110,且过程移动到步骤S606。如果文件复制操作未挂起中,那么在步骤S620中,过程返回到步骤S302。
在步骤S606中,文件引导器106确定是否已接收到另一复制命令。如果未接收到另一命令,那么过程返回到步骤S602。如果已接收到命令,那么在步骤S608中,更新文件定位器106A以反映文件的当前位置,且过程返回到步骤S302(在步骤S610中)。
详细参看步骤S622,文件定位器106确定主存储器116是否活动。如果是,那么在步骤S624中,文件引导器106确定在缓冲器105与次级存储装置110之间是否挂起文件复制操作。如果文件操作挂起,那么在步骤S626中,在缓冲器105与次级存储装置110之间传送至少一个数据单位。如果在步骤S624中文件操作未挂起,那么在步骤S634中,过程返回到步骤S302。
如果在步骤S622中主存储装置116不活动,那么在步骤S628中,文件引导器106确定次级存储装置110是否活动。如果次级存储装置110不活动,那么在步骤S634中,过程返回到步骤S302。
如果次级存储装置110活动,那么在步骤S630中,文件引导器106确定在缓冲器105与主存储装置116之间是否挂起文件复制操作。如果文件操作挂起,那么在步骤S632中,在缓冲器105与主存储装置116之间传送至少一个数据单位。
如果在步骤S630中文件复制操作未挂起,那么过程移动到步骤S634。
上述文件复制操作在主机100不活动时传送数据单位。操作是在后台与从主机110到虚拟存储装置150的写入操作交错进行的。可通过改变被复制的数据单位的大小来改变交错的比率(即,从主机110写入的写入数据量与复制的数据量)。数据单位的大小经选择以优化性能。
操作列表:
图2P展示提供文件引导器106进行的数据传送操作列表的表1。
操作201是优选的从主机100到主存储装置116的文件写入操作。操作202是从主机100到次级存储装置110的写入操作。如果在主存储装置116中可用空间不足够,那么可使用此操作。
操作203是当文件的当前版本驻存在主存储装置116中时从主存储装置116到主机100的文件读取操作。操作204用于从次级存储装置110读取文件数据。
操作205是文件复制操作。在此操作期间,从主存储装置116向次级存储装置110复制文件数据。操作205优选在主机接口103不活动时执行。
操作206也是文件复制操作。在此操作期间,从次级存储装置110向主存储装置116复制文件数据。操作206也优选在接口103不活动时执行。
操作207-210是使用缓冲器105进行的,且可与从主机100到/自次级存储装置100和/或主机100到/自主存储装置116的数据传送同时发生。操作207是文件复制操作,其中从快闪存储器116B向缓冲器105复制文件数据。操作208是文件复制操作,其中从缓冲器105向主存储装置116复制文件数据。
执行操作209以用于从次级存储装置110向缓冲器105复制文件数据。执行操作210以用于从缓冲器105向次级存储装置110复制文件数据。
在本发明的一方面中,虚拟存储装置150提供具有直接数据文件快闪存储器系统和常规磁盘的大容量存储系统。这对主机系统提供了对直接数据文件系统快闪存储装置的存取以及对传统磁盘的存取。
尽管已参考特定实施例描述本发明,但这些实施例只是说明性的且不是限制性的。根据本发明和所附权利要求书将了解本发明的许多其它应用和实施例。
Claims (73)
1.一种数据存储系统,其包括:
第一非易失性大容量存储装置,其经由使用基于文件的协议的接口与主机系统介接;以及
第二非易失性大容量存储装置;其中所述第二非易失性大容量存储装置与所述第一非易失性大容量存储装置介接,且来自所述主机系统的数据可存储在所述第一非易失性大容量存储装置和/或所述第二非易失性大容量存储装置中。
2.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置包含磁盘文件系统以将数据文件映射到所述第二非易失性大容量存储装置的逻辑地址空间,其允许所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间的数据传送。
3.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
4.根据权利要求1所述的数据存储系统,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
5.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置中的接口与以逐文件为基础从快闪存储器存取数据的直接数据文件接口介接。
6.根据权利要求5所述的数据存储系统,其中所述接口使用基于文件的格式从所述快闪存储器向所述主机系统传送数据。
7.根据权利要求5所述的数据存储系统,其中所述接口与所述直接数据文件接口介接以向所述第二非易失性大容量存储装置传送数据和从所述第二非易失性大容量存储装置传送数据,其中所述直接数据文件接口与磁盘文件系统和磁盘驱动器介接以经由逻辑接口从所述第二非易失性大容量存储装置发送和/或接收数据。
8.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置的存取时间和存储容量相比具有较快的存取时间和较小的存储容量,且如果所述第二非易失性大容量存储装置处于不可用状态,那么可从所述第一非易失性大容量存储装置存取数据,或当所述第二非易失性大容量存储装置处于可用状态时可从所述第一非易失性大容量存储装置和所述第二非易失性大容量存储装置两者存取数据。
9.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置用于保存从所述主机系统接收的文件的第一段,且所述第二非易失性大容量存储装置用于存储从所述主机系统接收的所述文件的第二段。
10.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置操作为用于从所述第二非易失性大容量存储装置读取数据的高速缓冲存储器。
11.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置操作为用于写入所述第二非易失性大容量存储装置的数据的写入高速缓冲存储器。
12.根据权利要求1所述的数据存储系统,其中所述数据存储系统的存储器控制器确定应将从所述主机系统接收的文件数据存储在何处。
13.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置充当用于写入所述第二非易失性大容量存储装置的数据的临时备用装置。
14.根据权利要求1所述的数据存储系统,其中所述第一非易失性大容量存储装置存储从所述第一非易失性大容量存储装置复制且由所述主机系统执行的可执行应用程序文件。
15.根据权利要求1所述的数据存储系统,其中在不活动时期期间,在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间作为后台操作复制数据。
16.根据权利要求15所述的数据存储系统,其中使用缓冲器在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间传送数据。
17.一种数据存储系统,其包括:
第一非易失性大容量存储装置,其经由基于文件的协议与主机系统介接;其中所述第一非易失性大容量存储装置包含磁盘驱动器以与第二非易失性大容量存储装置介接,且来自所述主机系统的文件数据可存储在所述第一非易失性大容量存储装置和/或第二非易失性大容量存储装置中。
18.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置包含将数据文件映射到所述第二非易失性大容量存储装置的逻辑地址空间的磁盘文件系统,其允许所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间的数据传送。
19.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
20.根据权利要求17所述的数据存储系统,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
21.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置的存取时间和存储容量相比具有较快的存取时间和较小的存储容量,且如果所述第二非易失性大容量存储装置处于不可用状态,那么可从所述第一非易失性大容量存储装置存取数据,或当所述第二非易失性大容量存储装置处于可用状态时可从所述第一非易失性大容量存储装置和所述第二非易失性大容量存储装置两者存取数据。
22.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置用于保存从所述主机系统接收的文件的第一段,且所述第二非易失性大容量存储装置用于存储从所述主机系统接收的所述文件的第二段。
23.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置操作为用于从所述第二非易失性大容量存储装置读取数据的高速缓冲存储器。
24.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置操作为用于写入所述第二非易失性大容量存储装置的数据的写入高速缓冲存储器。
25.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置充当用于写入所述第二非易失性大容量存储装置的数据的临时备用装置。
26.根据权利要求17所述的数据存储系统,其中所述第一非易失性大容量存储装置存储从所述第一非易失性大容量存储装置复制且由所述主机系统执行的可执行应用程序文件。
27.根据权利要求17所述的数据存储系统,其中在不活动时期期间,在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间作为后台操作复制数据,且其中可使用缓冲器在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间传送数据。
28.一种用于将由主机系统发送的数据写入大容量存储系统的方法,其中所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置,所述方法包括:
通过唯一文件识别符和个别文件内的偏移量来识别个别数据文件,其中所述主机系统产生所述唯一文件识别符和所述偏移量,并将所述文件识别符和偏移量发送到所述大容量存储系统;以及
如果在所述第一非易失性存储装置中空间可用,那么将所述数据存储在所述第一非易失性大容量存储装置中,且如果在所述第一非易失性大容量存储装置中用于所述文件的存储空间不可用,那么调度复制操作以将数据从所述第一非易失性大容量存储装置传送到所述第二非易失性大容量存储装置。
29.根据权利要求28所述的方法,其中所述大容量存储系统确定是否应将数据存储在所述第一非易失性大容量存储装置和/或所述第二非易失性大容量存储装置中。
30.根据权利要求29所述的方法,其中将所述主机系统发送的文件分段,以使得第一段存储在所述第一非易失性大容量存储装置中且第二段存储在所述第二非易失性大容量存储装置中。
31.根据权利要求28所述的方法,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
32.根据权利要求28所述的方法,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
33.一种用于从大容量存储系统读取数据的方法,其中所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置,所述方法包括:
接收个别唯一文件识别符和文件的偏移量,其中主机系统产生所述唯一文件识别符和偏移量,并将所述文件识别符和偏移量发送到所述大容量存储系统以用于将从所述大容量存储系统读取的数据;
确定所述文件是位于所述第一非易失性大容量存储装置中还是所述第二非易失性大容量存储装置中;以及
如果所述文件位于所述第一非易失性大容量存储装置中,那么从所述第一非易失性大容量存储装置存取数据。
34.根据权利要求33所述的方法,其中如果所述请求的文件的第一段存储在所述第一非易失性大容量存储装置中且第二段存储在所述第二非易失性大容量存储装置中,那么在从所述第二非易失性大容量存储装置存取所述第二段同时将所述第一段传送到所述主机系统。
35.根据权利要求33所述的方法,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
36.根据权利要求33所述的方法,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
37.一种用于将由主机系统发送的数据写入大容量存储系统的方法,其中所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置,所述方法包括:
通过唯一文件识别符和个别文件内的偏移量来识别个别数据文件,其中所述主机系统产生所述唯一文件识别符和所述偏移量,并将所述文件识别符和偏移量发送到所述大容量存储系统;
如果在所述第一非易失性大容量存储装置中空间可用,那么将所述文件数据写入所述第一非易失性大容量存储装置;
确定是否应将所述文件数据分段;以及
将文件段复制到所述第二非易失性大容量存储装置。
38.根据权利要求37所述的方法,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
39.根据权利要求37所述的方法,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
40.一种用于将由主机系统发送的数据写入大容量存储系统的方法,其中所述大容量存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置,所述方法包括:
从主机系统接收写入命令;
如果在所述第一非易失性大容量存储装置中空间可用,那么将写入命令发送到所
述第一非易失性大容量存储装置以用于写入第一文件段;
将写入命令发送到所述第二非易失性大容量存储装置以用于写入第二文件段;
在所述第二非易失性大容量存储装置准备好存储所述第二文件段时,将所述第一文件段存储在所述第一非易失性大容量存储装置中;以及
将第二文件段存储在所述第二非易失性大容量存储装置中。
41.根据权利要求40所述的方法,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
42.根据权利要求40所述的方法,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
43.根据权利要求40所述的方法,其中如果在所述第一非易失性大容量存储装置中空间不可用,那么将文件数据存储在所述第二非易失性大容量存储装置中。
44.一种用于在主机系统与数据存储系统之间传送数据的系统,其包括:
接口,其使用基于文件的协议来在所述数据存储系统与所述主机系统之间传送数据,其中所述数据存储系统包含第一非易失性大容量存储装置和第二非易失性大容量存储装置;且所述第一非易失性大容量存储装置以第一格式存储数据,且所述第二非易失性大容量存储装置以第二格式存储数据。
45.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置包含磁盘文件系统以将数据文件映射到所述第二非易失性大容量存储装置的逻辑地址空间,其允许所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间的数据传送。
46.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置是操作为主存储装置的固态存储器。
47.根据权利要求44所述的系统,其中所述第二非易失性大容量存储装置是操作为次级存储装置的硬磁盘。
48.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置的存取时间和存储容量相比具有较快的存取时间和较小的存储容量,且如果所述第二非易失性大容量存储装置处于不可用状态,那么可从所述第一非易失性大容量存储装置存取数据,或当所述第二非易失性大容量存储装置处于可用状态时可从所述第一非易失性大容量存储装置和所述第二非易失性大容量存储装置两者存取数据。
49.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置用于保存从所述主机系统接收的文件的第一段,且所述第二非易失性大容量存储装置用于存储从所述主机系统接收的所述文件的第二段。
50.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置操作为用于从所述第二非易失性大容量存储装置读取数据的高速缓冲存储器。
51.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置操作为用于写入所述第二非易失性大容量存储装置的数据的写入高速缓冲存储器。
52.根据权利要求44所述的系统,其中所述数据存储系统的存储器控制器确定应将从所述主机系统接收的文件数据存储在何处。
53.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置充当用于写入所述第二非易失性大容量存储装置的数据的临时备用装置。
54.根据权利要求44所述的系统,其中所述第一非易失性大容量存储装置存储从所述第一非易失性大容量存储装置复制且由所述主机系统执行的可执行应用程序文件。
55.根据权利要求44所述的系统,其中在不活动时期期间,在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间作为后台操作复制数据。
56.根据权利要求55所述的系统,其中使用缓冲器在所述第一非易失性大容量存储装置与所述第二非易失性大容量存储装置之间传送数据。
57.一种用于在主机系统与数据存储系统之间传送数据的系统,其包括:
接口,其使用基于文件的协议来在所述数据存储系统与所述主机系统之间传送数据,其中所述数据存储系统包含第一大容量存储装置和第二大容量存储装置;其中所述第一大容量存储装置是固态非易失性存储器装置且所述第二大容量存储装置是非固态存储器装置。
58.根据权利要求57所述的系统,其中所述第一大容量存储装置是操作为主存储装置的快闪存储器装置。
59.根据权利要求57所述的系统,其中所述第二大容量存储装置是操作为次级存储装置的磁盘驱动器。
60.根据权利要求57所述的系统,其中所述第一大容量存储装置以逐文件为基础存储数据。
61.根据权利要求57所述的系统,其中所述第二大容量存储装置存储经由逻辑接口接收的数据。
62.根据权利要求57所述的系统,其中所述第一大容量存储装置和所述第二存储装置使用不同的格式存储数据。
63.根据权利要求57所述的系统,其中所述第一大容量存储装置和所述第二存储装置使用类似的格式存储数据。
64.根据权利要求57所述的系统,其中所述第一大容量存储装置包含磁盘文件系统以将数据文件映射到所述第二大容量存储装置的逻辑地址空间,其允许所述第一大容量存储装置与所述第二大容量存储装置之间的数据传送。
65.根据权利要求57所述的系统,其中所述第一大容量存储装置与所述第二大容量存储装置的存取时间和存储容量相比具有较快的存取时间和较小的存储容量,且如果所述第二大容量存储装置处于不可用状态,那么可从所述第一大容量存储装置存取数据,或当所述第二大容量存储装置处于可用状态时可从所述第一大容量存储装置和所述第二大容量存储装置两者存取数据。
66.根据权利要求57所述的系统,其中所述第一大容量存储装置用于保存从所述主机系统接收的文件的第一段,且所述第二非大容量存储装置用于存储从所述主机系统接收的所述文件的第二段。
67.根据权利要求57所述的系统,其中所述第一大容量存储装置操作为用于从所述第二大容量存储装置读取数据的高速缓冲存储器。
68.根据权利要求57所述的系统,其中所述第一大容量存储装置操作为用于写入所述第二大容量存储装置的数据的写入高速缓冲存储器。
69.根据权利要求57所述的系统,其中所述数据存储系统的存储器控制器确定应将从所述主机系统接收的文件数据存储在何处。
70.根据权利要求57所述的系统,其中所述第一大容量存储装置充当用于写入所述第二大容量存储装置的数据的临时备用装置。
71.根据权利要求57所述的系统,其中所述第一大容量存储装置存储从所述第一大容量存储装置复制且由所述主机系统执行的可执行应用程序文件。
72.根据权利要求57所述的系统,其中在不活动时期期间,在所述第一大容量存储装置与所述第二大容量存储装置之间作为后台操作复制数据。
73.根据权利要求72所述的系统,其中使用缓冲器在所述第一大容量存储装置与所述第二大容量存储装置之间传送数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/196,826 | 2005-08-03 | ||
US11/196,826 US9104315B2 (en) | 2005-02-04 | 2005-08-03 | 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 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101238431A true CN101238431A (zh) | 2008-08-06 |
Family
ID=37307174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800285349A Pending CN101238431A (zh) | 2005-08-03 | 2006-07-27 | 大容量数据存储系统 |
Country Status (7)
Country | Link |
---|---|
US (3) | US9104315B2 (zh) |
EP (1) | EP1920317B1 (zh) |
JP (1) | JP5236469B2 (zh) |
KR (1) | KR101449543B1 (zh) |
CN (1) | CN101238431A (zh) |
TW (1) | TWI352901B (zh) |
WO (1) | WO2007019076A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105856A (zh) * | 2008-08-27 | 2011-06-22 | 桑迪士克以色列有限公司 | 具有加快的访问速度的便携式存储设备 |
CN102117184A (zh) * | 2010-01-05 | 2011-07-06 | 联想(北京)有限公司 | 用于多存储器的控制器、终端设备及其启动和访问方法 |
CN102298506A (zh) * | 2010-06-24 | 2011-12-28 | 国际商业机器公司 | 存储系统和用于实现存储系统的方法 |
CN102707902A (zh) * | 2012-04-27 | 2012-10-03 | 苏州瀚瑞微电子有限公司 | 一种移动存储系统及其存储方法 |
CN104714892A (zh) * | 2013-12-12 | 2015-06-17 | 慧荣科技股份有限公司 | 数据存取命令执行方法以及使用该方法的快闪存储器装置 |
US9471240B2 (en) | 2010-06-24 | 2016-10-18 | International Business Machines Corporation | Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk |
CN107577612A (zh) * | 2013-01-09 | 2018-01-12 | 索尼移动通信株式会社 | 具有嵌入式大容量存储装置的移动装置中的数据存储 |
CN109144409A (zh) * | 2018-07-11 | 2019-01-04 | 华为技术有限公司 | 数据处理方法及装置、存储介质、数据系统 |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US7634585B2 (en) * | 2005-11-04 | 2009-12-15 | Sandisk Corporation | In-line cache using nonvolatile memory between host and disk device |
US20070106842A1 (en) * | 2005-11-04 | 2007-05-10 | Conley Kevin M | Enhanced first level storage caching methods using nonvolatile memory |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
SG135082A1 (en) * | 2006-02-27 | 2007-09-28 | Gueh How Kiap | Method and apparatus for removable, ide-ata or scsi flash memory based data storage in a portable computer device |
US9052826B2 (en) * | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
US20090132621A1 (en) * | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
US7870128B2 (en) * | 2006-07-28 | 2011-01-11 | Diskeeper Corporation | Assigning data for storage based on speed with which data may be retrieved |
JP4799310B2 (ja) * | 2006-07-31 | 2011-10-26 | 株式会社東芝 | 磁気ディスク装置およびその制御方法 |
JP2008090626A (ja) * | 2006-10-02 | 2008-04-17 | Sony Corp | 転送装置、転送システム、プログラムおよび転送方法 |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
DE102006051136A1 (de) * | 2006-10-30 | 2008-05-08 | Qimonda Ag | Speichermodul-System, Adapter-Karte, und Verfahren zum Betreiben eines Speichermodul-Systems |
US8286156B2 (en) * | 2006-11-07 | 2012-10-09 | Sandisk Technologies Inc. | Methods and apparatus for performing resilient firmware upgrades to a functioning memory |
US20080109647A1 (en) * | 2006-11-07 | 2008-05-08 | Lee Merrill Gavens | Memory controllers for performing resilient firmware upgrades to a functioning memory |
US20080140724A1 (en) | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
KR20080072202A (ko) * | 2007-02-01 | 2008-08-06 | 삼성전자주식회사 | 데이터 처리 방법 및 데이터 처리 장치 |
US9207876B2 (en) | 2007-04-19 | 2015-12-08 | Microsoft Technology Licensing, Llc | Remove-on-delete technologies for solid state drive optimization |
DE102007018769A1 (de) * | 2007-04-20 | 2008-10-23 | Giesecke & Devrient Gmbh | Zugriff auf den Massenspeicher eines portalen Datenträgers |
US8397011B2 (en) * | 2007-10-05 | 2013-03-12 | Joseph Ashwood | Scalable mass data storage device |
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 |
JP4471007B2 (ja) * | 2008-02-05 | 2010-06-02 | ソニー株式会社 | 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体 |
US8499132B1 (en) * | 2008-02-12 | 2013-07-30 | Netapp, Inc. | Software module for using flash memory as a secondary permanent storage device |
JP4691122B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
JP2009223355A (ja) * | 2008-03-13 | 2009-10-01 | Hitachi Software Eng Co Ltd | ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム |
KR101008576B1 (ko) * | 2008-05-07 | 2011-01-17 | 주식회사 셀픽 | 자체카피 기능이 구비된 솔리드 스테이트 디스크 |
KR101465099B1 (ko) * | 2008-09-11 | 2014-11-25 | 시게이트 테크놀로지 엘엘씨 | 특정 조건을 갖는 파일을 신속하게 판독할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체 |
KR20100041313A (ko) * | 2008-10-14 | 2010-04-22 | 삼성전자주식회사 | 데이터 저장 방법, 데이터 저장 장치 및 그 시스템 |
US8291181B2 (en) | 2008-10-28 | 2012-10-16 | Micron Technology, Inc. | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation |
EP2346233A4 (en) * | 2008-11-03 | 2013-04-24 | Zte Corp | METHOD AND SYSTEM FOR GIVING A MEMORY PLACE OF A MOBILE DEVICE |
US8825940B1 (en) | 2008-12-02 | 2014-09-02 | Siliconsystems, Inc. | Architecture for optimizing execution of storage access commands |
US8880776B2 (en) * | 2008-12-16 | 2014-11-04 | Sandisk Il Ltd. | Data access at a storage device using cluster information |
US9176859B2 (en) * | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
TWI476609B (zh) * | 2009-01-16 | 2015-03-11 | Alibaba Group Holding Ltd | Data Processing Method and System of Large Data Quantity |
US10079048B2 (en) * | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
CN102696010B (zh) | 2009-09-08 | 2016-03-23 | 才智知识产权控股公司(2) | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
CN102598019B (zh) * | 2009-09-09 | 2015-08-19 | 才智知识产权控股公司(2) | 用于分配存储的设备、系统和方法 |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
EP2476039B1 (en) | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
JP2011095916A (ja) * | 2009-10-28 | 2011-05-12 | Canon Inc | 電子機器 |
USRE49818E1 (en) | 2010-05-13 | 2024-01-30 | Kioxia Corporation | Information processing method in a multi-level hierarchical memory system |
JP4988008B2 (ja) | 2010-05-13 | 2012-08-01 | 株式会社東芝 | 情報処理装置およびドライバ |
JP4988007B2 (ja) | 2010-05-13 | 2012-08-01 | 株式会社東芝 | 情報処理装置およびドライバ |
US8380949B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Managing write operations to an extent of tracks migrated between storage devices |
US8572457B2 (en) * | 2010-05-28 | 2013-10-29 | Seagate Technology Llc | Outer code protection for solid state memory devices |
TWI494935B (zh) * | 2010-07-12 | 2015-08-01 | Taiwan Secom Co Ltd | 具有高信賴度資料與資料流處理裝置 |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
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 |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US10114746B2 (en) * | 2010-10-14 | 2018-10-30 | Micron Technology, Inc. | Nonvolatile storage using low latency and high latency memory |
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 |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
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 |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
WO2012129191A2 (en) | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US20130067289A1 (en) * | 2011-09-14 | 2013-03-14 | Ariel Maislos | Efficient non-volatile read cache for storage system |
KR101341615B1 (ko) * | 2011-11-24 | 2013-12-13 | 성균관대학교산학협력단 | 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법 |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
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 |
US9558112B1 (en) * | 2012-05-08 | 2017-01-31 | Google Inc. | Data management in a data storage device |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
JP6011153B2 (ja) * | 2012-08-22 | 2016-10-19 | 富士通株式会社 | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US9569113B2 (en) * | 2012-10-11 | 2017-02-14 | SK Hynix Inc. | Data storage device and operating method thereof |
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 |
US9116774B2 (en) | 2013-05-14 | 2015-08-25 | Sandisk Technologies Inc. | Firmware updates for multiple product configurations |
JP2014235677A (ja) | 2013-06-05 | 2014-12-15 | 株式会社東芝 | データ記憶装置およびデータ記憶制御方法 |
US9535630B1 (en) * | 2013-06-27 | 2017-01-03 | EMC IP Holding Company LLC | Leveraging array operations at virtualized storage processor level |
CN104281549B (zh) * | 2013-07-08 | 2017-07-21 | 联想(北京)有限公司 | 一种ums中调整写缓冲区的方法及装置 |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
CN103984657B (zh) * | 2013-09-26 | 2017-05-10 | 威盛电子股份有限公司 | 接口控制器、外接式电子装置及其控制方法 |
KR20150037364A (ko) * | 2013-09-30 | 2015-04-08 | 삼성전자주식회사 | 캐시 마이그레이션 관리 방법 및 이를 적용한 호스트 시스템 |
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 |
US9559725B1 (en) | 2013-10-23 | 2017-01-31 | Seagate Technology Llc | Multi-strength reed-solomon outer code protection |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
CN105450704A (zh) * | 2014-08-28 | 2016-03-30 | 北京兆易创新科技股份有限公司 | 一种用于闪存的网络存储设备及其处理方法 |
WO2016118627A1 (en) | 2015-01-20 | 2016-07-28 | Ultrata Llc | Managing meta-data in an object memory fabric |
EP4012548A1 (en) * | 2015-01-20 | 2022-06-15 | Ultrata LLC | Object memory data flow instruction execution |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9971542B2 (en) | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
US10698628B2 (en) | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
CA3006773A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc | Memory fabric software implementation |
CN108885607B (zh) | 2015-12-08 | 2022-04-12 | 乌尔特拉塔有限责任公司 | 使用容错对象的存储器结构操作和一致性 |
US10235063B2 (en) | 2015-12-08 | 2019-03-19 | Ultrata, Llc | Memory fabric operations and coherency using fault tolerant objects |
CN105718530B (zh) * | 2016-01-15 | 2020-02-04 | 上海磁宇信息科技有限公司 | 文件存储系统及其文件存储控制方法 |
US10162561B2 (en) | 2016-03-21 | 2018-12-25 | Apple Inc. | Managing backup of logical-to-physical translation information to control boot-time and write amplification |
US10073644B2 (en) * | 2016-03-21 | 2018-09-11 | Toshiba Memory Corporation | Electronic apparatus including memory modules that can operate in either memory mode or storage mode |
US20180088657A1 (en) * | 2016-09-26 | 2018-03-29 | Lenovo (Singapore) Pte. Ltd. | Power saving for multimedia server storage |
KR20180130140A (ko) | 2017-05-29 | 2018-12-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 방법 |
JP7000712B2 (ja) * | 2017-06-21 | 2022-01-19 | 日本電気株式会社 | データ転送装置およびデータ転送方法 |
US11249919B2 (en) | 2018-07-31 | 2022-02-15 | SK Hynix Inc. | Apparatus and method for managing meta data for engagement of plural memory system to store data |
US11442628B2 (en) | 2018-07-31 | 2022-09-13 | SK Hynix Inc. | Apparatus and method for engaging a plurality of memory systems with each other |
CN110780810B (zh) | 2018-07-31 | 2023-06-27 | 爱思开海力士有限公司 | 用于彼此接合多个存储器系统以存储数据的设备和方法 |
KR20200016074A (ko) | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그의 동작 방법 |
KR20200019420A (ko) | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 입력데이터를 분산저장하기 위한 메모리 시스템 및 데이터 처리 시스템 |
DE102018121885A1 (de) * | 2018-09-07 | 2020-03-12 | Phoenix Contact Gmbh & Co. Kg | Elektronisches Gerät zum Einsatz in einem Automatisierungssystem sowie ein Automatisierungssystem |
KR20200034360A (ko) | 2018-09-21 | 2020-03-31 | 에스케이하이닉스 주식회사 | 내부채널을 통해 서로 간에 연결된 다수의 메모리 시스템을 포함하는 데이터 처리 시스템 |
JP7039632B2 (ja) * | 2020-01-24 | 2022-03-22 | 株式会社Kokusai Electric | 基板処理装置、基板処理方法およびプログラム |
TWI780521B (zh) * | 2020-11-24 | 2022-10-11 | 大陸商合肥沛睿微電子股份有限公司 | 電子裝置及空間複用方法 |
CN115086168B (zh) * | 2022-08-19 | 2022-11-22 | 北京全路通信信号研究设计院集团有限公司 | 一种车载设备通信参数更新存储方法、系统 |
Family Cites Families (219)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4896262A (en) * | 1984-02-24 | 1990-01-23 | Kabushiki Kaisha Meidensha | Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory |
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 |
US4761737A (en) | 1986-01-16 | 1988-08-02 | International Business Machines Corporation | Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system |
JP2685173B2 (ja) | 1986-05-31 | 1997-12-03 | キヤノン株式会社 | メモリ書き込み制御方法 |
JP3015377B2 (ja) | 1988-08-26 | 2000-03-06 | 株式会社東芝 | Icカード |
DE69033438T2 (de) * | 1989-04-13 | 2000-07-06 | Sandisk Corp | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
GB2251324B (en) | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
US5778418A (en) | 1991-09-27 | 1998-07-07 | Sandisk Corporation | Mass computer storage system having both solid state and rotating disk types of 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 | フラッシュ・メモリ使用方法 |
US5628014A (en) * | 1992-03-20 | 1997-05-06 | Paranode, Inc. | Methods and apparatus for node caching at the file level |
US5420998A (en) | 1992-04-10 | 1995-05-30 | Fujitsu Limited | Dual memory disk drive |
JPH0778766B2 (ja) | 1992-09-25 | 1995-08-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 |
JP3017892B2 (ja) * | 1992-09-30 | 2000-03-13 | 株式会社東芝 | ファイル管理装置 |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
JPH06266596A (ja) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | フラッシュメモリファイル記憶装置および情報処理装置 |
JPH06282386A (ja) * | 1993-03-25 | 1994-10-07 | Toshiba Corp | ディスク記憶装置 |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
US6078520A (en) * | 1993-04-08 | 2000-06-20 | Hitachi, Ltd. | Flash memory control method and information processing system therewith |
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 |
US5636355A (en) * | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
KR0169267B1 (ko) | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
JPH086854A (ja) | 1993-12-23 | 1996-01-12 | Unisys Corp | アウトボードファイルキャッシュ外部処理コンプレックス |
US5542066A (en) | 1993-12-23 | 1996-07-30 | International Business Machines Corporation | Destaging modified data blocks from cache memory |
US6125578A (en) | 1994-05-03 | 2000-10-03 | Southpac Trust International, Inc. | Floral sleeve having expandable sidewalls |
US6341293B1 (en) * | 1994-07-13 | 2002-01-22 | Object Technology Licensing Corp | Real-time computer “garbage collector” |
JPH0883148A (ja) | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
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 |
JP2669365B2 (ja) | 1994-11-24 | 1997-10-27 | 日本電気株式会社 | 書換え可能なromファイル装置 |
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
US5708846A (en) * | 1995-02-24 | 1998-01-13 | Intel Corporation | System for retrieving initial data sequence corresponding to next data sequence while locating next data sequence when branch point is reached during current data sequence |
US6728851B1 (en) * | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
GB2291990A (en) | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Flash-memory management system |
GB2291991A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
US5933847A (en) | 1995-09-28 | 1999-08-03 | Canon Kabushiki Kaisha | Selecting erase method based on type of power supply for flash EEPROM |
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
US5987478A (en) | 1995-10-31 | 1999-11-16 | Intel Corporation | Virtual small block file manager for flash memory array |
US5799168A (en) | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
US5754888A (en) * | 1996-01-18 | 1998-05-19 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment |
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 |
US5848420A (en) | 1996-06-14 | 1998-12-08 | Eastman Kodak Company | System and method for accessing data of a digital camera from a personal computer |
US5978893A (en) | 1996-06-19 | 1999-11-02 | Apple Computer, Inc. | Method and system for memory management |
GB9613088D0 (en) | 1996-06-21 | 1996-08-28 | Memory Corp Plc | Memory device |
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 |
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 | 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法 |
US5798968A (en) | 1996-09-24 | 1998-08-25 | Sandisk Corporation | Plane decode/virtual sector architecture |
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 |
US5890192A (en) * | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5953538A (en) | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
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 |
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 |
NO973993L (no) * | 1997-09-01 | 1999-03-02 | Opticom As | Leseminne og leseminneinnretninger |
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 |
JPH11161527A (ja) | 1997-11-28 | 1999-06-18 | Toshiba Corp | データ記憶システム |
US6424486B2 (en) | 1997-12-17 | 2002-07-23 | Texas Instruments Incorporated | Method and apparatus for positioning a read/write head of a hard disk drive |
US6493811B1 (en) | 1998-01-26 | 2002-12-10 | Computer Associated Think, Inc. | Intelligent controller accessed through addressable virtual space |
US6466973B2 (en) | 1998-03-06 | 2002-10-15 | Adaptec, Inc. | Method and system for managing storage devices over a network |
US6467022B1 (en) | 1998-04-16 | 2002-10-15 | International Business Machines Corporation | Extending adapter memory with solid state disks in JBOD and RAID environments |
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 |
US6286056B1 (en) | 1998-06-26 | 2001-09-04 | Seagate Technology Llc | Data storage device with small computer system interface providing persistent reservations |
US6223271B1 (en) * | 1998-07-15 | 2001-04-24 | Compaq Computer Corp. | System and method for detecting system memory size using ROM based paging tables |
JP3500972B2 (ja) | 1998-07-24 | 2004-02-23 | 日本電気株式会社 | ディスク共有型クラスタシステムにおける論理ファイル管理システム |
US6438642B1 (en) | 1999-05-18 | 2002-08-20 | Kom Networks Inc. | File-based virtual storage file system, method and computer program product for automated file management on multiple file system storage devices |
JP2000148546A (ja) | 1998-11-10 | 2000-05-30 | Nec Corp | データ入出力装置およびデータ入出力方法、並びに記録媒体 |
US6490649B2 (en) | 1998-11-10 | 2002-12-03 | Lexar Media, Inc. | Memory device |
US6408357B1 (en) | 1999-01-15 | 2002-06-18 | Western Digital Technologies, Inc. | Disk drive having a cache portion for storing write data segments of a predetermined length |
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 |
US6370614B1 (en) * | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
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 |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
KR100704998B1 (ko) * | 1999-02-26 | 2007-04-09 | 소니 가부시끼 가이샤 | 기록방법, 관리방법 및 기록장치 |
JP4779183B2 (ja) | 1999-03-26 | 2011-09-28 | ソニー株式会社 | 再生装置および再生方法 |
US6427186B1 (en) | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
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 |
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 |
US6504846B1 (en) * | 1999-05-21 | 2003-01-07 | Advanced Micro Devices, Inc. | Method and apparatus for reclaiming buffers using a single buffer bit |
US6486883B1 (en) | 1999-06-18 | 2002-11-26 | Phoenix Technologies, Ltd. | Apparatus and method for updating images stored in non-volatile memory |
US6389433B1 (en) * | 1999-07-16 | 2002-05-14 | Microsoft Corporation | Method and system for automatically merging files into a single instance store |
CN1227591C (zh) | 1999-07-28 | 2005-11-16 | 索尼公司 | 记录系统、数据记录设备、存储设备和数据记录方法 |
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 |
US6804730B1 (en) | 1999-11-17 | 2004-10-12 | Tokyo Electron Device Limited | Access control device, access control method, recording medium, and computer data signal for controlling allowance of access to storage area using certification data |
US6424975B1 (en) | 2000-01-07 | 2002-07-23 | Trg Products, Inc. | FAT file system in palm OS computer |
US20010047473A1 (en) | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
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 |
US7155559B1 (en) | 2000-08-25 | 2006-12-26 | Lexar Media, Inc. | Flash memory architecture with separate storage of overhead and user data |
US20020078002A1 (en) | 2000-08-25 | 2002-06-20 | Bottomley Thomas Mark Walter | Memory garbage collection method and apparatus |
JP3726663B2 (ja) | 2000-09-07 | 2005-12-14 | 日産自動車株式会社 | 電子制御装置の制御データ記憶装置 |
US20030120858A1 (en) | 2000-09-15 | 2003-06-26 | Matrix Semiconductor, Inc. | Memory devices and methods for use therewith |
US6865650B1 (en) | 2000-09-29 | 2005-03-08 | Emc Corporation | System and method for hierarchical data storage |
US6834331B1 (en) | 2000-10-24 | 2004-12-21 | Starfish Software, Inc. | System and method for improving flash memory data integrity |
US6629809B2 (en) * | 2000-11-08 | 2003-10-07 | Termax Corporation | Sheet metal fastener with multiple engagement |
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 |
US7084738B2 (en) | 2000-12-11 | 2006-08-01 | Asap Automation, Llc | Inventory system with image display |
JP4523150B2 (ja) * | 2000-12-27 | 2010-08-11 | レノボ シンガポール プライヴェート リミテッド | データサーバシステム、コンピュータ装置、記憶媒体 |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP3631463B2 (ja) | 2001-12-27 | 2005-03-23 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6631453B1 (en) | 2001-02-14 | 2003-10-07 | Zecurity | Secure data storage device |
JP2002251310A (ja) | 2001-02-21 | 2002-09-06 | Ricoh Co Ltd | フラッシュメモリのファイルシステム作成方式 |
JPWO2002071269A1 (ja) * | 2001-03-02 | 2004-07-02 | 日本精工株式会社 | インターネットによる特許または実用新案の情報検索管理システム |
US6631456B2 (en) | 2001-03-06 | 2003-10-07 | Lance Leighnor | Hypercache RAM based disk emulation and method |
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 |
JP4632574B2 (ja) | 2001-05-25 | 2011-02-16 | 株式会社日立製作所 | 記憶装置およびファイルデータのバックアップ方法およびファイルデータのコピー方法 |
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 |
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 |
US6842843B1 (en) * | 2001-06-29 | 2005-01-11 | Emc Corporation | Digital data storage subsystem including arrangement for increasing cache memory addressability |
GB0116116D0 (en) * | 2001-06-30 | 2001-08-22 | Koninkl Philips Electronics Nv | Receiver apparatus and method |
JP2003114817A (ja) * | 2001-08-03 | 2003-04-18 | Toshiba Corp | 情報記憶媒体及び情報記録方法 |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US6625081B2 (en) | 2001-08-13 | 2003-09-23 | Micron Technology, Inc. | Synchronous flash memory with virtual segment architecture |
US6456528B1 (en) | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US7251747B1 (en) | 2001-09-20 | 2007-07-31 | Ncr Corp. | Method and system for transferring data using a volatile data transfer mechanism such as a pipe |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
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 | 株式会社東芝 | メモリカードを制御するための装置および方法 |
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 |
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 |
AU2003213113A1 (en) * | 2002-02-21 | 2003-09-09 | Precise Software Solutions, Inc. | System and method for analyzing input/output activity on local attached storage |
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 |
JP2003316713A (ja) | 2002-04-26 | 2003-11-07 | Hitachi Ltd | 記憶装置システム |
JP2004046817A (ja) * | 2002-05-23 | 2004-02-12 | Ricoh Co Ltd | プログラム、記憶媒体、データ管理装置及びデータ管理システム |
US6766432B2 (en) | 2002-05-24 | 2004-07-20 | Sun Microsystems, Inc. | Memory management system supporting object deletion in non-volatile memory |
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 | 삼성전자주식회사 | 플래쉬 메모리용 파일 시스템 |
US6804749B2 (en) * | 2002-06-18 | 2004-10-12 | Topseed Technology Corp. | Wireless portable adaptive electronic device capable of receiving signals |
US20060143365A1 (en) | 2002-06-19 | 2006-06-29 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
KR100499686B1 (ko) * | 2002-07-23 | 2005-07-07 | 주식회사 디지털웨이 | 메모리 확장 가능한 휴대용 플래쉬 메모리 장치 |
JP2004062328A (ja) * | 2002-07-25 | 2004-02-26 | Renesas Technology Corp | Nand型フラッシュメモリを搭載したフラッシュストレージメディア |
US7035949B2 (en) * | 2002-07-29 | 2006-04-25 | M-System Flash Dist Pioneers Ltd. | Multipurpose processor, system and method |
DE10234971B4 (de) | 2002-07-31 | 2006-08-10 | Giesecke & Devrient Gmbh | Verfahren und Datenträger zum Erzeugen und Korrigieren von Programmcode |
US20040028066A1 (en) * | 2002-08-06 | 2004-02-12 | Chris Quanbeck | Receiver architectures with dynamic symbol memory allocation and methods therefor |
US7263108B2 (en) | 2002-08-06 | 2007-08-28 | Netxen, Inc. | Dual-mode network storage systems and methods |
US7249352B2 (en) * | 2002-08-22 | 2007-07-24 | International Business Machines Corporation | Apparatus and method for removing elements from a linked list |
US6646948B1 (en) * | 2002-08-29 | 2003-11-11 | Motorola, Inc. | Data storage system utilizing a non-volatile IC based memory for reduction of data retrieval time |
US6970969B2 (en) * | 2002-08-29 | 2005-11-29 | Micron Technology, Inc. | Multiple segment data object management |
US6895486B2 (en) * | 2002-08-29 | 2005-05-17 | Micron Technology, Inc. | Linear object management for a range of flash memory |
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 |
US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical 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 |
US7254668B1 (en) | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
CN1260642C (zh) | 2002-11-18 | 2006-06-21 | 深圳市朗科科技有限公司 | 一种向移动存储装置发送命令和数据的方法 |
JP4252301B2 (ja) * | 2002-12-26 | 2009-04-08 | 株式会社日立製作所 | 記憶システム及びそのデータバックアップ方法 |
US7433712B2 (en) | 2003-02-06 | 2008-10-07 | Modu Ltd. | Multi-access solid state memory devices and a telephone utilizing such |
US8041878B2 (en) | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
US6865122B2 (en) | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
JP2004318940A (ja) | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | 記憶装置 |
CN1774761B (zh) * | 2003-04-14 | 2011-11-09 | 皇家飞利浦电子股份有限公司 | 用于从记录载体读取或者向其写入的驱动设备和方法 |
JP4131514B2 (ja) * | 2003-04-21 | 2008-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークシステム、サーバ、データ処理方法及びプログラム |
US7437557B2 (en) | 2003-06-03 | 2008-10-14 | Lg Electronics Inc. | Garbage collection system and method for a mobile communication terminal |
US6906961B2 (en) * | 2003-06-24 | 2005-06-14 | Micron Technology, Inc. | Erase block data splitting |
US6865113B2 (en) | 2003-07-23 | 2005-03-08 | Catalyst Semiconductor, Inc. | System and method for programming non-volatile memory |
US7454443B2 (en) * | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
JP2005122439A (ja) | 2003-10-16 | 2005-05-12 | Sharp Corp | デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法 |
US20050125600A1 (en) | 2003-12-04 | 2005-06-09 | Ehrlich Richard M. | Method for storing HDD critical data in flash |
US20050125603A1 (en) | 2003-12-04 | 2005-06-09 | Ehrlich Richard M. | Method for rapid availability of critical data through re-allocation |
US20050125602A1 (en) | 2003-12-04 | 2005-06-09 | Ehrlich Richard M. | HDD with storage of critical data in FLASH |
US7433993B2 (en) | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
KR20060134011A (ko) | 2003-12-30 | 2006-12-27 | 쌘디스크 코포레이션 | 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법 |
US7383375B2 (en) | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US20050144363A1 (en) | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
WO2005066793A2 (en) | 2003-12-30 | 2005-07-21 | Sandisk Corporation | Non-volatile memory and method with non-sequential update block management |
US8504798B2 (en) | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7127549B2 (en) | 2004-02-04 | 2006-10-24 | Sandisk Corporation | Disk acceleration using first and second storage devices |
US7136973B2 (en) | 2004-02-04 | 2006-11-14 | Sandisk Corporation | Dual media storage device |
JP4753868B2 (ja) * | 2004-03-23 | 2011-08-24 | パナソニック株式会社 | 記録装置、ホスト装置、ドライブ装置、記録方法、指示方法、プログラム、集積回路、再生装置、再生方法および追記型記録媒体 |
JP2005293478A (ja) * | 2004-04-05 | 2005-10-20 | Hitachi Ltd | 記憶制御システム、記憶制御システムに備えられるチャネル制御装置、データ転送装置 |
US20060004951A1 (en) * | 2004-06-30 | 2006-01-05 | Rudelic John C | Method and apparatus to alter code in a memory |
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 |
US20060047880A1 (en) * | 2004-08-27 | 2006-03-02 | Imation Corp. | Memory device with HUB capability |
US7184264B2 (en) * | 2004-09-23 | 2007-02-27 | Imation Corp. | Connectable memory devices to provide expandable memory |
US7412560B2 (en) | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US20060161724A1 (en) | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
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 |
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 |
US7454673B2 (en) * | 2005-07-15 | 2008-11-18 | Kyocera Wireless Corp. | Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7627733B2 (en) | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
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 |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
WO2007079358A2 (en) | 2005-12-21 | 2007-07-12 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
-
2005
- 2005-08-03 US US11/196,826 patent/US9104315B2/en active Active
-
2006
- 2006-07-27 KR KR1020087005263A patent/KR101449543B1/ko active IP Right Grant
- 2006-07-27 JP JP2008525047A patent/JP5236469B2/ja not_active Expired - Fee Related
- 2006-07-27 CN CNA2006800285349A patent/CN101238431A/zh active Pending
- 2006-07-27 WO PCT/US2006/029307 patent/WO2007019076A2/en active Application Filing
- 2006-07-27 EP EP06788726.5A patent/EP1920317B1/en active Active
- 2006-08-02 TW TW095128234A patent/TWI352901B/zh not_active IP Right Cessation
-
2015
- 2015-07-31 US US14/815,891 patent/US10126959B2/en active Active
- 2015-07-31 US US14/815,886 patent/US10055147B2/en active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105856A (zh) * | 2008-08-27 | 2011-06-22 | 桑迪士克以色列有限公司 | 具有加快的访问速度的便携式存储设备 |
CN102105856B (zh) * | 2008-08-27 | 2015-09-09 | 桑迪士克以色列有限公司 | 具有加快的访问速度的便携式存储设备 |
CN102117184A (zh) * | 2010-01-05 | 2011-07-06 | 联想(北京)有限公司 | 用于多存储器的控制器、终端设备及其启动和访问方法 |
US9513808B2 (en) | 2010-01-05 | 2016-12-06 | Beijing Lenovo Software Ltd. | Controller used for multi-storages, terminal device and start-up and access method thereof |
US9471240B2 (en) | 2010-06-24 | 2016-10-18 | International Business Machines Corporation | Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk |
CN102298506A (zh) * | 2010-06-24 | 2011-12-28 | 国际商业机器公司 | 存储系统和用于实现存储系统的方法 |
CN102298506B (zh) * | 2010-06-24 | 2014-12-03 | 国际商业机器公司 | 存储系统和用于实现存储系统的方法 |
CN102707902A (zh) * | 2012-04-27 | 2012-10-03 | 苏州瀚瑞微电子有限公司 | 一种移动存储系统及其存储方法 |
CN107577612A (zh) * | 2013-01-09 | 2018-01-12 | 索尼移动通信株式会社 | 具有嵌入式大容量存储装置的移动装置中的数据存储 |
CN107577612B (zh) * | 2013-01-09 | 2021-04-16 | 索尼公司 | 移动装置和将数据存储在移动装置中的方法 |
CN104714892A (zh) * | 2013-12-12 | 2015-06-17 | 慧荣科技股份有限公司 | 数据存取命令执行方法以及使用该方法的快闪存储器装置 |
US9959232B2 (en) | 2013-12-12 | 2018-05-01 | Silicon Motion, Inc. | Methods for executing data access commands and flash memory devices using the same |
CN109144409A (zh) * | 2018-07-11 | 2019-01-04 | 华为技术有限公司 | 数据处理方法及装置、存储介质、数据系统 |
Also Published As
Publication number | Publication date |
---|---|
US10126959B2 (en) | 2018-11-13 |
EP1920317B1 (en) | 2016-04-20 |
US20150363135A1 (en) | 2015-12-17 |
KR20080046648A (ko) | 2008-05-27 |
TW200723000A (en) | 2007-06-16 |
US20150363131A1 (en) | 2015-12-17 |
KR101449543B1 (ko) | 2014-10-13 |
WO2007019076A2 (en) | 2007-02-15 |
US9104315B2 (en) | 2015-08-11 |
EP1920317A2 (en) | 2008-05-14 |
WO2007019076A3 (en) | 2007-05-03 |
US10055147B2 (en) | 2018-08-21 |
US20070033362A1 (en) | 2007-02-08 |
JP2009503731A (ja) | 2009-01-29 |
JP5236469B2 (ja) | 2013-07-17 |
TWI352901B (en) | 2011-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101238431A (zh) | 大容量数据存储系统 | |
CN101233481B (zh) | 通过逻辑地址空间且以直接数据文件为基础操作的介接系统 | |
US7669003B2 (en) | Reprogrammable non-volatile memory systems with indexing of directly stored data files | |
US7949845B2 (en) | Indexing of file data in reprogrammable non-volatile memories that directly store data files | |
JP5178514B2 (ja) | 記憶装置用デュアルモードアクセスのための方法およびシステム | |
TWI400608B (zh) | 在一主機系統與一可重新程式化的非揮發性大量儲存系統之間傳輸資料之方法、在一快閃記憶體系統中之控制器之操作方法以及大量儲存記憶體系統 | |
US8626987B2 (en) | Flash memory system and defragmentation method | |
US8762627B2 (en) | Memory logical defragmentation during garbage collection | |
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
TWI421684B (zh) | 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 | |
US8713283B2 (en) | Method of interfacing a host operating through a logical address space with a direct file storage medium | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件系统的使用 | |
KR101464199B1 (ko) | 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법 | |
KR101378031B1 (ko) | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 | |
JP2009503735A (ja) | フラッシュメモリシステムのデータ記憶容量の解放 | |
KR101055324B1 (ko) | 강화된 호스트 인터페이스 | |
US20080307156A1 (en) | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け | |
KR20090108695A (ko) | 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |