首页 / 大容量数据存储系统

大容量数据存储系统无效专利 发明

技术内容

技术领域 本发明大体涉及存储装置,且更特定来说涉及使用直接数据文件存储接口的双媒体 存储装置。 背景技术 常规计算机系统通常包含若干功能组件。这些组件可包含中央处理单元(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的一个或一个以上额外区块通常维持在经擦除的区块池(block pool)中。 当主机向存储器系统写入数据时,控制器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提供具有直接数据文件快闪存储器系统和 常规磁盘的大容量存储系统。这对主机系统提供了对直接数据文件系统快闪存储装置的 存取以及对传统磁盘的存取。 尽管已参考特定实施例描述本发明,但这些实施例只是说明性的且不是限制性的。 根据本发明和所附权利要求书将了解本发明的许多其它应用和实施例。 相关申请案的交叉参考 本申请案涉及以下共同待决专利申请案: 序列号:10/772,855;2005年2月4日申请;代理人案号SDK01P018;题为“Dual Media Storage Device”,发明人为Alan W.Sinclair; 序列号:10/772,789;2005年2月4日申请;代理人案号SDK1P019;题为“Mass Storage Accelerator”,发明人为Alan W.Sinclair;以及 序列号:11/060,249;2005年2月16日申请;代理人案号SDK0380.US0,题为“Direct Data File Storage in Flash Memories”,发明人为Alan W.Sinclair和Peter J.Smith; 序列号:11/060,174;2005年2月16日申请;代理人案号SDK0380.US1,题为“Direct Data File Programming and Deletion in Flash Memories”,发明人为Alan W.Sinclair和Peter J.Smith; 序列号:11/060,248,2005年2月16日申请;代理人案号SDK0380.US2,题为“Direct Data File Storage Implementation Techniques in Flash Memories”,发明人为Alan W.Sinclair 和Peter J.Smith;以及 由Alan W.Sinclair和Barry Wright与本申请案同时申请且题为“Direct Data File Storage in Flash Memories”的临时专利申请案(以上申请案在下文中统称为“直接数据 文件存储申请案”),以上专利申请案以全文引用的方式并入本文中。