用于管理存储装置中的分区的方法和系统的制作方法

文档序号:6567993阅读:222来源:国知局
专利名称:用于管理存储装置中的分区的方法和系统的制作方法
技术领域
本发明大体上涉及存储器存储装置,且更明确地说,涉及管理存储装置中的分区。
技术背景常规计算机系统通常包含若干功能组件。这些组件可包含中央处理单元(CPU)、主 存储器、输入/输出("I/O")装置和大容量存储装置。在常规系统中,主存储器经由系统 总线或本地存储器总线耦合到CPU。主存储器用于提供对在执行时间存储在主存储器中 的数据和/或程序信息的CPU存取。通常,主存储器由随机存取存储器(RAM)电路组 成。具有CPU和主存储器的计算机系统常被称为主机系统。大容量存储装置通常用于保存数据。 一般来说,存储在大容量存储装置中的程序在 由CPU执行之前被复制到主存储器。常见的大容量存储装置包含软盘、硬盘、光盘和磁 带驱动器。另外,可使用快闪存储器来为主机系统提供非易失性存储。主机系统经由接口与快闪存储器(在整个本说明书中,还可互换地称为"快闪装置"、 "快闪"或"快闪卡")介接。快闪存储器通常包含用于存储信息的非易失性存储器单元 阵列。快闪存储器系统最常以存储卡或快闪驱动器的形式提供,所述存储卡或快闪驱动 器可移除地与多种主机(例如个人计算机、相机或类似物)连接,但还可嵌入在此类主 机系统内。快闪存储器控制器通常控制存储器阵列的操作。存储器控制器包含微处理器、某一 非易失性只读存储器("ROM")、易失性随机存取存储器("RAM")和一个或一个以上 特殊电路,例如错误校正码电路("ECC"),其在数据穿过存储器控制器时,从所述数据 计算ECC。在早一代的商业快闪存储器系统中,将矩形存储器单元阵列分成大量的单元组,每 个单元组存储标准磁盘驱动器扇区的数据量,即512个字节。额外数据量(例如16个字 节)也通常包含在每个组中,以存储错误校正码(ECC)和可能其它与用户数据且/或与 存储有其的存储器单元组相关的开销数据。每个这种组中的存储器单元是可一起擦除的
最小数目的存储器单元。S卩,擦除单位实际上是存储一个数据扇区和其所包含的任何开 销数据的存储器单元的数目。这种类型的存储器系统的实例在第5,602,987号和第 6,426,893号美国专利中描述。快闪存储器的特征是在用数据对存储器单元进行重新编程 之前,需要擦除所述存储器单元。当经由逻辑接口将数据写入到快闪存储器时,主机通常将唯一逻辑地址分派给存储 器系统的连续虚拟地址空间内的扇区、群集或其它数据单位。主机通常维护文件系统, 并将文件数据分配给逻辑群集,其中群集大小通常是固定的。将快闪装置分成多个逻辑 扇区,且主机对由多个逻辑扇区组成的群集内的空间进行分配。群集是逻辑地址的细分, 且将群集映射表示为文件分配表("FAT")。 FAT通常存储在存储装置本身上。与磁盘操作系统(DOS)类似,主机将数据写入到存储器系统的逻辑地址空间内的 地址,且从所述地址读取数据。存储器系统内的控制器将从主机接收到的逻辑地址转换 成存储器阵列内的物理地址,其中数据实际被存储,且接着跟踪这些地址转换。通常,存储器装置(例如,快闪存储器)由主机系统进行分区。通常,两个分区共 享一个驱动器,且每个分区的大小由主机系统设置。如果在任一给定时间一个分区变满 且其它分区尚有更多空间,那么对分派给每个分区的空间量进行重新分配是有用的。在 常规系统中,主机通过将驱动器重新格式化来执行此功能。此过程涉及在重新格式化之 前复制所有来自所述驱动器的数据,且接着将空间重新分配给每个分区。此过程烦琐且 耗时,且因此是不合需要的。因此,需要一种有效地管理分区以最佳使用存储器存储空间的方法和系统。 发明内容在本发明的一个方面,提供一种大容量存储存储器系统。所述系统包含可重新编 程的非易失性存储器单元,所述存储器单元布置在多个存储器单元区块中,其可一起擦 除,且一起连接在多个串联串中,以界定用于存储数据的存储器单元行,其中将所述存 储器单元分成至少两个存储器分区,且每个存储器分区都具有系统区和数据区;以及控制器,其包含微处理器,所述微处理器适合于经由逻辑接口从主机系统接收数据;其中 所述控制器通过使用映射表,将存储器空间从具有未用存储空间的第二存储器分区重新 分配给已满或已达到阈值的第一存储器分区,其中所述映射表针对系统区和数据区使用 虚拟区块地址,使得系统区和数据区看似邻接主机系统;以及真实逻辑区块地址,其将虚拟区块地址映射到实际逻辑区块地址。在本发明的另一方面,大容量存储存储器系统包含具有微处理器的控制器,所述 微处理器适合于经由逻辑接口从主机系统接收数据;第一存储器分区,其具有系统区和 数据区;以及第二存储器分区,其具有系统区和数据区;其中所述控制器通过针对系统 区和数据区使用虚拟区块地址,使得系统区和数据区看似邻接主机系统,来将存储器空 间从具有未用存储空间的第二存储器分区重新分配给已满或已达到阈值的第一存储器分 区。在又一方面,提供一种用于在具有系统区和数据区的第一存储器分区与具有系统区 和数据区的第二存储器分区之间动态地重新分配数据存储空间的方法。所述方法包含 确定所述第一存储器分区是否己满和/或已达到阈值;确定所述第二存储器分区是否具有 可分配给己满和/或已达到阈值的第一存储器分区的未占用存储空间;以及将某一未占用 空间从所述第二存储器分区分派到所述第一存储器分区,其中存储器控制器分派所述未 占用空间。已经提供了此简要发明内容,使得可快速理解本发明的性质。参考结合附图的本发 明的优选实施例的以下具体实施方式
,可获得对本发明的更完整的理解。


现将参考优选实施例的图式描述本发明的前述特征和其它特征。在图式中,相同组 件具有相同参考标号。所说明的实施例意在说明,而不是限制本发明。图式包含以下图 图1A展示使用快闪装置的主机系统的框图; 图1B展示图1A的主机系统的结构;图1C展示根据本发明一个方面而使用的快闪装置的存储器控制器的框图; 图1D展示快闪存储器系统的示范性物理存储器组织; 图1E展示图1D的物理存储器的一部分的展开图;图1F展示主机与可重新编程的存储器系统之间的常规逻辑地址接口; 图2A展示说明存储装置中的两个存储器分区的框图;图2B展示图2A中所示的一个分区的系统区布局的框图;图2C展示根据本发明一个方面的经重新分配的存储器分区的主机系统的视图;图2D展示根据本发明一个方面的经重新分配的存储器分区的实际布局;图3展示根据本发明一个方面的用于重新分配大容量存储装置中的存储器空间的全过程流程图;图4A到图4F展示根据本发明一个方面的存储器分区重新分配的实例。
具体实施方式
为了有助于理解优选实施例,将描述主机系统/快闪装置的一般结构和操作。接着, 将参考一般结构来描述优选实施例的具体结构和操作。 主机系统
图1A展示可利用本发明的通用计算机系统(主机系统)100。系统100的组件包含 计算机160,各种输入/输出("I/O")装置,例如鼠标170、键盘165、监视器120和打 印机125。
图1B展示计算机系统100的抽象表示。组件130意在表示多个输入装置,例如允许 用户与计算机系统100交互的鼠标和键盘。类似地,输出135表示一个或一个以上输出 装置,例如监视器120和打印机125。
计算机系统100包含连接到系统总线155的中央处理单元("CPU")(或微处理器) 175。主存储器145 (例如,随机存取主存储器("RAM"))也耦合到系统总线155,并向 CPU 175提供对存储器存储装置的存取。当执行程序指令时,CPU 175将那些过程步骤 存储在RAM 145中,并执行来自RAM 145的存储的过程步骤。
提供只读存储器("ROM")(未图示)以存储不变的指令序列,例如启动指令序列或 基本输入/输出操作系统(BIOS)序列。
大容量存储装置150允许计算机系统100永久地存储数据。大容量存储装置150可 以是快闪存储器装置、硬盘驱动器或另一种类型的媒体存储装置。下文对本发明的适应 性方面的描述是基于快闪存储器装置的,但可应用于其它类型的存储器装置。大容量存 储装置150还被称为快闪装置150。
当前存在许多商业上可用的不同快闪装置(或快闪存储卡),实例是致密快闪卡(CF), 多媒体卡(MMC)、安全数字(SD)卡、miniSD卡、记忆棒、智能媒体卡和TransFlash 卡。尽管这些卡中的每一者具有根据其标准化规格的唯一机械和/或电接口,包含在每一 者中的快闪存储器非常类似。这些卡都可从本申请案的受让人SanDisk公司购得。SanDisk 还在其Cmzer商标下提供一系列快闪驱动器,所述快闪驱动器是具有通用串行总线(USB) 插头的小型封装中的手持式存储器系统,所述通用串行总线插头用于通过插入到主机的 USB插座中而与主机连接。这些存储卡和快闪驱动器中的每一者包含控制器,所述控制 器与主机和主机内的快闪存储器的控制操作介接。
上文所述的非易失性存储卡和快闪驱动器在商业上可以512兆字节(MB)、 1千兆 字节(GB)、 2GB和4GB的数据存储容量得到,且可变得更高。
使用此类存储卡和快闪驱动器的主机系统有许多且是各种各样的。它们包含个人计
算机(PC)、膝上型和其它便携式计算机、蜂窝式电话、个人数字助理(PDA)、数字相 机、数字摄影机和便携式音频播放器。主机通常包含用于一种或一种以上的存储卡或快 闪装置的内建插座,但其中一些需要在其中插入存储卡的适配器。
存储器单元阵列的"与非"结构在当前是优选的,但其它结构(例如"或非")也可 代替地使用。可参考第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 号美国专利申请公开案来获得"与非"快闪存储器和其作为存储器系统的一部分的操作 的实例。
快闪装置150包含存储器控制器模块(还可被称为"存储器系统控制器"或"存储 器控制器"或"控制器")和固态存储器模块。图1C展示控制器模块150A的内部结构 的框图。控制器150A经由逻辑接口或另一外围总线(未图示)或经由系统总线155与主 机系统100介接。控制器模块150A包含微控制器150C,其经由接口逻辑150E与各个其 它组件介接。存储器150D存储固件和软件指令,其由微控制器150C用来控制快闪装置 150的操作。存储器150D可以是易失性可重新编程随机存取存储器("RAM")、不可重 新编程的非易失性存储器("ROM")、 一次可编程存储器或可重新编程的快闪电可擦除且 可编程的只读存储器("EEPROM")。
主机接口 150G与主机系统100介接,而快闪接口 150F与存储器模块150B介接。
图1D在概念上说明用作下文的进一步描述内容中的实例的快闪存储器单元阵列 (150B)的组织。存储器单元的四个平面或子阵列131-134可以在单个集成的存储器单元 芯片上、在两个芯片上(每个芯片上有所述平面中的两者)或在四个单独的芯片上。具 体布置对下文的论述内容来说并不重要。当然,其它数目的平面,例如1、 2、 8、 16或 更多可存在于系统中。将所述平面个别地分成多个存储器单元区块,其在图1D中由位于 相应平面131-134中的矩形(例如区块137、 138、 139和140A)展示。每个平面内可存 在数十个或数百个区块。
存储器单元区块是擦除单位,可一起物理地擦除的最小数目的存储器单元。然而, 对于增加的并行度,所述区块可以更大的元区块单位操作。将来自每个平面的一个区块 在逻辑上链接在一起以形成元区块。展示四个区块137-140A以形成一个元区块141。元 区块内的所有单元通常一起擦除。用于形成元区块的区块不需要限于其各自平面内的相 同相对位置,如由区块145-148组成的第二元区块143中所示。
尽管通常优选使元区块在所有平面上延伸,但为了获得较高的系统性能,可用在不
同平面内动态地形成一个、两个或三个区块中的任一者或所有的元区块的能力来操作存 储器系统。这允许元区块的大小与可用于一个编程操作中的存储中的数据的量更紧密地 配合。
出于操作目的,又将个别区块分成存储器单元页,如图1E中所说明。举例来说,区 块131-134中的每一者的存储器单元每一者被分成八个页P0-P7。或者,每个区块内可存 在16个、32个或更多存储器单元页。页是区块内的数据编程和读取的单位,含有一次 编程的最小量的数据。
在"与非"结构中, 一个页由一个区块内沿一个字线的存储器单元组成。然而,为
了增加存储器系统操作并行度,两个或两个区块内的此类页在逻辑上可链接成元页。图 1E中说明元页151;元页151由来自四个区块131-134中的每一者的一个物理页组成。 举例来说,元页151包含四个区块的每一者中的页P2,但元页的页在区块的每一者内不 一定具有相同的相对位置。
图1F说明逻辑接口在主机与大容量存储器系统之间的使用。主机处理由主机所执行 的应用软件或固件程序产生或使用的数据文件。字处理数据文件是一个实例,且计算机 辅助设计(CAD)软件的绘图文件是另一实例,其主要存在于例如PC、膝上型计算机和 类似物的普通计算机主机中。PDF格式的文档也是此类文件。数码视频相机针对存储在 存储卡上的每个图片产生一个数据文件。蜂窝式电话利用来自内部存储卡上的文件(例 如电话号码簿)的数据。PDA存储并使用若干不同文件,例如地址文件、日历文件和类 似文件。在任一此类应用中,存储卡还可含有操作主机的软件。
连续逻辑地址空间161足够大以为可能存储在存储器系统中的所有数据提供地址。 通常,将主机地址空间分成数据群集的递增。每个群集可在给定主机系统中设计成含有 若干数据扇区,大约在4个扇区与64个扇区之间是典型的。标准扇区含有512个字节的 数据。
图1F的实例中展示已经形成了三个数据文件1、 2和3。在主机系统上运行的应用 程序将每个文件形成为一组有序数据,并通过唯一名称或其它参考来识别其。尚未分配 给其它文件的足够可用的逻辑地址空间由主机分派给文件1。图1展示为已经分派了连 续范围的可用逻辑地址。通常还可出于具体目的而分配地址范围,例如一个特定范围针 对操作软件的主机,接着,避免所述地址范围用于存储数据,即使这些地址在主机将逻 辑地址指派给所述数据时尚未被利用。
当稍后由主机产生文件2时,主机类似地在逻辑地址空间161内分派两个不同的连
续地址范围,如图1F中所示。文件无需分派有连续的逻辑地址,而是可以是己经分配给 其它文件的地址范围内的地址段。此实例接着展示由主机产生的又一文件3分配有先前 未分配给文件1和2以及其它数据的主机地址空间的其它部分。
主机通过维护文件分配表(FAT)来跟踪存储器逻辑地址空间,其中所述文件分配表 维护主机分派给各个主机文件的逻辑地址。FAT表通常存储在非易失性存储器中,而且 存储在主机存储器中,且在存储新文件、删除其它文件、修改文件等时由主机频繁地更 新。举例来说,当删除主机文件时,主机通过更新FAT表来解除对先前分配给被删除的 文件的逻辑地址的分配,以展示它们现在可用以与其它数据文件一起使用。
主机不关心存储器系统控制器选择用来存储文件的物理位置。典型的主机仅知道其 逻辑地址空间和其已经分配给其各个文件的逻辑地址。另一方面,通过典型的主机/卡接 口,存储器系统仅知道逻辑地址空间的数据已经写入到其的部分,但不知道分配给具体 主机文件的逻辑地址或甚至主机文件的数目。存储器系统控制器150A将由主机为数据的 存储或检索而提供的逻辑地址转换成存储主机数据的快闪存储器单元阵列内的唯一物理 地址。区块163表示这些逻辑到物理地址转换的工作表,其由存储器系统控制器150A维 护。
存储器系统控制器150A经编程以便以将系统的性能维持在高等级的方式,将数据文 件存储在存储器阵列165的区块和元区块内。在此说明中使用四个平面或子阵列。在由 来自每个平面的区块形成的整个元区块上,优选以最大并行度来编程和读取数据。至少 一个元区块167通常被分配为用于存储由存储器控制器使用的操作固件和数据的保留区 块。可分配另一元区块169或多个元区块以存储主机操作软件、主机FAT表和类似物。 物理存储空间的大部分仍用于存储数据文件。
然而,存储器系统控制器150A不知道接收到的数据如何已通过主机在其各个文件对 象之中分配。所有存储器控制器150A通常通过与主机的交互而知道由主机写入到具体逻 辑地址的数据存储在如由控制器的逻辑到物理地址表163维护的对应物理地址中。
在典型的存储器系统中,与将所述量的数据存储在地址空间161内所必需的存储容 量相比,提供数个额外区块的存储容量。可将这些额外区块中的一个或一个以上提供为 冗余区块,以代替可能在存储器的寿命期间变得有缺陷的其它区块。个别元区块内所含 有的区块的逻辑分组通常可出于各种原因而改变,所述原因包含冗余区块代替最初分派 给元区块的有缺陷的区块。 一个或一个以上额外区块(例如元区块171)通常维护在擦 除区块库中。 当主机将数据写入到存储器系统时,控制器150A将主机所分派的逻辑地址转换成擦 除区块库中的元区块内的物理地址。不用来将数据存储在逻辑地址空间161内的其它元 区块接着被擦除,且表示为擦除库区块,以供在随后的数据写入操作期间使用。存储器分区图2A展示存储器存储装置150通常如何被分区的实例。存储装置150包含两个分区, 分区1和分区2。分区1包含系统区201和数据区202。分区2也具有其自身的系统区 203和数据区204。尽管图2A中仅展示两个分区,且下文的重新分配技术是基于此实例 的,但本发明的适应性方面不限于任何特定数目的存储器分区。图2B展示分区1 (其类似于分区2)的框图。如图2B中所示,系统区201具有各 种区段,例如主引导记录("MBR")区205、分区引导记录("PBR")区206、 FAT 1区 207、 FAT 2区208和根目录区209。MBR区205存储整个分区信息,且如果媒体是可引导装置,那么MBR205包含从 MBR区205跳转到PBR区206的指令。MBR区205还包含隐藏区,其是MBR区205 与PBR区206之间的保留空间。PBR区206包含分区(在此实例中是分区l)的分区/引导信息。举例来说,PBR区 206包含以下信息FAT的类型(例如,12/16/32个位);标签(即,驱动器的名称),驱 动器的大小;群集大小(即,每分配单元的扇区数目);FAT区的数目(图2B中所示的 2个FAT区,FAT 1和FAT 2)和每FAT的扇区数目。FAT区(207和208)含有每个文件的群集信息。举例来说,对于FAT 12,区207 和208中的每个条目含有12个位,且总共存在4096个条目。群集0和1经保留以用于 0XFFFFF8 (针对媒体类型)和群集的末尾。使用特定群集(例如,群集40S7)来指示坏 群集。对于FAT16,每个条目含有16个位,且对于FAT32,每个条目含有32个位。根目录209含有每个文件的条目。每个目录条目包含用于文件名称或目录的某一数 目的字节(例如,8个字节);用于扩展部分的若干字节(例如,3个字节),用于文件属 性的若干字节(例如,l个字节)(例如,如果文件是只读、隐藏、系统文件、巻标、目 录或修改);指示形成文件的时间和日期的若干字节;用于开始群集的某一数目的字节(例 如2个);以及指示文件长度的某一数目的字节(例如4个)。用于开始群集的所述数目的字节指向FAT中的第一群集,且最后的群集可由OxFFF、 OxFFFF或OXffffff指示。为了将文件名称写入在目录中,主机系统找出FAT l区207中的空余群集空间,且
将数据写入在数据区202。接着,更新FAT 1和FAT 2条目两者。目录条目(即,日期/ 时间/开始群集/文件长度)也被更新。在本发明的一个方面,当一个分区变满或达到某一阈值,且其它分区具有未占用空 间时,存储器控制器150A重新分配分区空间。因此, 一个分区的大小增加,而另一个分 区的大小减小。阈值可由存储器控制器150A编程。使用映射方案(本文称为"虚拟映射") 来跟踪群集在两个分区中的使用,如下文所述。这整个过程实际上由存储器控制器150A 执行。主机系统不必须复制所有的数据和将存储装置重新格式化。图2C展示经重新分配的分区l和分区2的布局,如其向主机系统呈现的那样。分区 1的系统区201A包含重新分配之后的经更新的群集和分区信息。原始分区区202已满或 已达到阈值大小,其中不再有数据写入其中。将新的数据区202A从分区2分配到分区1。 减小的分区2具有系统区203A和新的减小的数据区204A。现将详细描述用于重新分配 所述分区的过程。图2D展示在存储器控制器150A已经执行了重新分配之后分区1和2的实际布局。 分区2系统区203A是区202A被分配给分区A之后的经调整的区。分区2具有展示为 204B和204C的数据区,其等于数据区204A,如图2C中所示。图3展示根据本发明一个方面的用于重新分配分区大小的高级流程图。当快闪装置 150被初始化时,所述过程在步骤S300中开始。在步骤S302中,控制器150A确定分区是否已满。当分区不再能存储更多的数据或 所述分区已经达到某一可编程阈值时,可认为所述分区已满。如果分区不满,那么控制 器150A等待,直到分区满了为止。如果分区已满(例如,图2A中的分区1),那么在步骤S304中,控制器150A确定 是否可从另一分区(例如,分区2)得到未占用空间。如果不可得到未占用空间,那么 过程返回到步骤S302。如果未占用空间可用,那么在步骤S306中,将某一量的所述未占用空间(例如,202A) 分配到所述已满分区。在重新分配之后,在步骤S308中调整两个分区的FAT条目,如 下文详细描述。还在步骤S310中调整目录条目,下文也对其进行详细描述,且过程在步 骤S312中结束。值得注意的是,尽管上文的过程流基于检测"已满分区"的存储器控制器150A而描 述了存储器分区重新分配,但本发明不仅仅限于所述情况。举例来说,主机可将特定命 令(例如,"对驱动器进行重新分区")发送到控制器150A,以对存储器装置进行重新分
区,且控制器接着执行前面的过程步骤来重新分配存储器空间。图4A到图4F说明前面的用于在至少两个存储器分区之间重新分配存储器空间的过 程步骤。值得注意的是,图4A到图4F中所使用的各个值仅出于说明目的而简单地用作 实例,且不希望限制本发明的适应性方面。图4A到图4F中的实例假定快闪装置150中的群集大小是32千字节(KB),因此 120兆字节(MB)快闪装置具有4096个群集。每个系统区(201和203)使用6个群集, 且每个分区具有2042个群集的数据区。每个群集可被称为区块,即一个区块大小等于群 集大小。图4A展示初始分区状态(如图2A中所示)的表。每个分区具有用于系统区的6个 区块,和用于数据区的2042个区块。对于分区1,系统区201分派有区块编号0-5,且数据区202被分派有区块编号6-2047。 当文件系统写入到分区1的第一数据群集时,其将写入操作发送到逻辑区块地址192 (其 中192=6*32),即区块6。对于分区2,系统区203分派有区块2048-2053,且数据区204分派有区块编号 2054-4095。图4B展示在行400中具有虚拟区块编号且在行401中具有真实区块编号的映射表 400A的实例。列条目402-409不言而喻的,且为系统区、所使用的数据区和未占用数据 区提供虚拟和真实逻辑区块编号。在初始阶段(图2A和图4A),虚拟区块编号和真实逻辑区块编号是相同且连续的。 如图4B中所示,列402-409中的所有条目对于虚拟和真实逻辑区块编号两者来说是相同 的。图4C展示经更新的映射表400B。行400中展示主机系统视图(图2C),且行401 中展示真实的逻辑存储器空间视图(图2D)。系统区条目(列410中所示)对于行400和401中的分区1是相同的。列411展示 分区1已满,即所有区块6-2047都被使用。分区2具有一些未占用区块(如图4B中的 3001-4000所示),且将那些未占用区块中的500个区块分配给分区1。基于虚拟区块编 号,主机将用于分区1的这500个区块看作从2048到2547,如行400和列414中所示。 因此,对于主机系统来说,分区1从区块0延伸到区块2547。在图2D中所示的真实逻 辑存储器空间中,用于分区1的500个区块位于区块编号3001和3500处(如行401和 列414中所示,图4C)。 关于分区2,主机将用于分区区的系统区看作是邻接的,即从2548到2553 (行400 和列412中所示),实际上,系统区是从2048到2053 (参看行401和列412)。列413中展示用于分区2中所使用的空间的数据区块。此处再次,虚拟区块编号是 2554-3500,而真实区块编号是从2054-3000 (行401和列413中所示)。行400和401以 及列415和416的条目是相同的。如前面的实例所示,主机不复制用于重新分配分区空间的数据。通过使用和更新映 射表400A,将未用空间重新分配给己满存储器分区。基于前面的实例(图4A到图4C),分区1的FAT表不变。对于分区2, FAT条目经 调整以容纳分派给分区1的区。参看图2D中的实例,分区2的数据区B (展示为204C) 将使其条目减少分派给分区1的数据区。举例来说,如果新的数据区202A中有FAT的 500个条目,那么如果数据区B在分区2的数据区A (展示为204B)以下,用于分区2 的数据区B (展示为204C)中的每个文件名称条目的开始群集将调整500。图4D说明具有表格式的前述实例。分区B (如图2D中的204B所示)的数据区A 具有1000个条目。区202A具有500个条目,且区204C具有500个条目。在一个实施方案中,快闪装置150的每个分区都向主机公布其自身具有可用于所述 分区的某一容量。举例来说,如果快闪装置150是4GB,那么每个分区公布其自身为2GB。 因此,希望具有可用于每个分区的足够FAT区,使得其可容纳整个快闪装置空间。此额 外FAT表空间允许分区增长。因此,在存储器控制器150A下,FAT 1区207和FAT2区 208足够大以含有整个快闪存储器装置容量的FAT条目。图4E展示一个表,其中列417展示分区映射的主机/用户的视图,且列418展示实 际/真实分区映射。如列418下所示,真实分区映射包含用于FAT区扩展部分的保留区 207A。此区足够大,使得FAT1和FAT2中的FAT条目可容纳整个存储装置。当分区扩 展(例如,前述实例中的分区l)时,使用保留区207A来提供用于所述扩展部分的额外 空间。当分区区由存储器控制器150A重新分配时,调整FAT区以容纳分区大小的变化。除FAT条目/区之外,当分区空间由存储器控制器150A重新分配时,目录区中的文 件名称条目也经调整(步骤S310,图3)。基于前述实例(图4A到图4C),分区1的文 件名称条目不变。对于分区2,文件名称条目的开始群集经调整以容纳分派给分区1的 区。参看图2D中的实例,分区2的数据区B (展示为204C)将使其条目减少分派给分 区1的数据区。举例来说,如果新的数据区202A中存在FAT的500个条目,那么如果
数据区B在分区2的数据区A(展示为204B)以下,用于分区2的数据区B(展示为204C) 中的每个文件名称条目的开始群集将调整500。图4F说明具有表格式的前述实例。分区B (如图2D中的204B所示)的数据区A 具有1000个条目。区202A具有500个条目,且区204C具有500个条目。用于新的分区区2的每个文件名称条目的开始群集(=n)如果超过区块1000而定 位,那么调整500。因此,如果n^lO(K),那么n'(经调整的文件名称条目)等于n-500。 对包含区204B和204C中的那些条目的所有条目执行此调整。如果文件名称条目展示其 为目录或子目录,那么目录(或子目录)条目也经调整。在本发明的一个方面,在不在烦琐耗时的操作中复制所有数据的情况下,分区区由 存储器装置控制器重新分配/调整。主机系统不必须执行复制/重新格式化驱动器以便重新 分配分区存储空间的耗时过程。尽管已经参考具体实施例描述了本发明,但这些实施例仅仅是说明性而不是限制性 的。举例来说,尽管前述说明是基于快闪存储器装置,但它们同样可应用于其它类型的 存储器装置,例如硬盘。根据此揭示内容和所附权利要求书,将明白本发明的许多其它 应用和实施例。
权利要求
1.一种大容量存储存储器系统,其包括可重新编程的非易失性存储器单元,所述存储器单元被布置在多个存储器单元区块中,其可一起擦除且一起连接在多个串联串中,以界定用于存储数据的存储器单元行,其中将所述存储器单元分成至少两个存储器分区,且每个存储器分区具有系统区和数据区;以及控制器,其包含适合于经由逻辑接口从主机系统接收数据的微处理器;其中所述控制器通过使用映射表,将存储器空间从具有未用空间的第二存储器分区重新分配给已满或已达到阈值的第一存储器分区,其中所述映射表使用所述系统区和所述数据区的虚拟区块地址,使得所述系统区和所述数据区看似邻接所述主机系统;以及真实逻辑区块地址,其将所述虚拟区块地址映射到实际逻辑区块地址。
2. 根据权利要求l所述的大容量存储系统,其中所述第一存储器分区和所述第二存储 器分区的每个系统区都包含用于存储文件分配表("FAT")的空间,其中所述FAT 区基于是将数据空间添加到分区还是从分区减去数据空间而扩展或收縮。
3. 根据权利要求2所述的大容量存储系统,其中第一存储器分区和第二存储器分区的 所述FAT区足够大以容纳所述整个大容量存储系统的FAT条目。
4. 根据权利要求1所述的大容量存储系统,其中当所述大容量存储系统被初始化时, 虚拟地址和真实逻辑地址对于所述第一存储器分区和所述第二存储器分区是相同 的。
5. 根据权利要求l所述的大容量存储系统,其中当空余存储器空间从所述第二存储器 分区分配到所述第一存储器分区时,调整存储器分区的FAT条目。
6. 根据权利要求1所述的大容量存储系统,其中当空余存储器空间从所述第二存储器 分区分配到所述第一存储器分区时,调整目录中的文件名称条目。
7. 根据权利要求l所述的大容量存储系统,其中所述大容量存储系统是快闪装置。
8. —种大容量存储存储器系统,其包括控制器,其包含适合于经由逻辑接口从主机系统接收数据的微处理器; 第一存储器分区,其具有系统区和数据区;以及第二存储器分区,其具有系统区和数据区;其中所述控制器通过使用所述系统区 和所述数据区的虚拟区块地址使得所述系统区和所述数据区看似邻接所述主机系 统,来将存储器空间从具有未用存储空间的所述第二存储器分区重新分配到已满或
9. 根据权利要求8所述的大容量存储系统,其中所述第一存储器分区和所述第二存储 器分区的每个系统区包含用于存储文件分配表("FAT")的空间,其中所述FAT区 基于是将数据区添加到分区还是从分区减去数据区而扩展或收縮。
10. 根据权利要求9所述的大容量存储系统,其中所述第一存储器分区和所述第二存储 器分区的所述FAT区足够大以容纳所述整个大容量存储系统的FAT条目。
11. 根据权利要求8所述的大容量存储系统,其中当所述大容量存储系统被初始化时, 虚拟地址和真实逻辑地址对于所述第一存储器分区和所述第二存储器分区是相同 的。
12. 根据权利要求8所述的大容量存储系统,其中当空余存储器空间从所述第二存储器 分区分配到所述第一存储器分区时,调整存储器分区的FAT条目。
13. 根据权利要求8所述的大容量存储系统,其中当空余存储器空间从所述第二存储器 分区分配到所述第一存储器分区时,调整目录中的文件名称条目。
14. 根据权利要求8所述的大容量存储系统,其中所述大容量存储系统是快闪装置。
15. 根据权利要求8所述的大容量存储系统,其中所述大容量存储系统是硬盘。
16. —种用于在大容量存储系统的具有系统区和数据区的第一存储器分区与具有系统 区和数据区的第二存储器分区之间动态地重新分配数据存储空间的方法,其包括确定所述第一存储器分区是否已满和/或已达到阈值;确定所述第二存储器分区是否具有可分配给所述已满和/或己达到阈值的第一存 储器分区的未占用空间;以及将一些未占用空间从所述第二存储器分区分派到所述第一存储器分区,其中存储 器控制器分派所述未占用空间。
17. 根据权利要求16所述的方法,其中所述大容量存储系统包含可重新编程的非易失 性存储器单元,所述存储器单元布置在多个存储器单元区块中,其可一起擦除且一 起连接在多个串联串中,以界定用于存储数据的存储器单元行;且所述存储器控制 器包含适合于经由逻辑接口从主机系统接收数据的微处理器;且所述控制器使用映 射表,所述映射表具有用于所述系统区和所述数据区的虚拟区块地址,使得所述系 统区和所述数据区看似邻接所述主机系统。
18. 根据权利要求16所述的方法,其中所述第一存储器分区和所述第二存储器分区的 每个系统区包含用于存储文件分配表("FAT")的空间,其中所述FAT区基于是将 数据空间添加到分区还是从分区减去数据空间而扩展或收縮。
19. 根据权利要求18所述的方法,其中所述第一存储器分区和所述第二存储器分区的 所述FAT区足够大以容纳所述整个大容量存储系统的FAT条目。
20. 根据权利要求16所述的方法,其中当所述大容量存储系统被初始化时,虚拟地址 和真实逻辑地址对于所述第一存储器分区和所述第二存储器分区是相同的。
21. 根据权利要求16所述的方法,其中当空余存储器空间从一个存储器分区分配到另 一存储器分区时,调整存储器分区的FAT条目。
22. 根据权利要求16所述的方法,其中当空余存储器空间从所述第二存储器分区分配 到所述第一存储器分区时,调整目录中的文件名称条目。
23. 根据权利要求16所述的方法,其中所述大容量存储系统是快闪装置。
24. 根据权利要求16所述的方法,其中所述大容量存储系统是磁性硬盘。
25. 根据权利要求16所述的方法,其中所述存储器控制在接收到来自主机系统的命令 之后重新分配分区空间。
全文摘要
本发明提供一种用于重新分配存储器分区空间的大容量存储存储器系统和方法。所述存储系统包含存储器控制器,其具有微处理器,所述微处理器适合于经由逻辑接口从主机系统接收数据;第一存储器分区,其具有系统区和数据区;以及第二存储器分区,其具有系统区和数据区;其中所述存储器控制器通过使用所述系统区和所述数据区的虚拟区块地址使得所述系统区和所述数据区看似邻接所述主机系统,来将存储器空间从所述第二存储器分区重新分配到已满或已经达到阈值的所述第一存储器分区。
文档编号G06F3/06GK101213510SQ200680023595
公开日2008年7月2日 申请日期2006年6月28日 优先权日2005年6月29日
发明者保罗·麦卡沃伊, 巴赫曼·卡瓦米, 法施德·萨伯特-沙吉, 罗伯特·C·张, 迈克尔·霍尔茨曼 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1