CN101213510B - 用于管理存储装置中的分区的方法和系统 - Google Patents

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

Info

Publication number
CN101213510B
CN101213510B CN2006800235956A CN200680023595A CN101213510B CN 101213510 B CN101213510 B CN 101213510B CN 2006800235956 A CN2006800235956 A CN 2006800235956A CN 200680023595 A CN200680023595 A CN 200680023595A CN 101213510 B CN101213510 B CN 101213510B
Authority
CN
China
Prior art keywords
memory
subregion
memory subregion
storage space
storage device
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.)
Active
Application number
CN2006800235956A
Other languages
English (en)
Other versions
CN101213510A (zh
Inventor
罗伯特·C·张
迈克尔·霍尔茨曼
法施德·萨伯特-沙吉
保罗·麦卡沃伊
巴赫曼·卡瓦米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101213510A publication Critical patent/CN101213510A/zh
Application granted granted Critical
Publication of CN101213510B publication Critical patent/CN101213510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种用于重新分配存储器分区空间的大容量存储存储器系统和方法。所述存储系统包含:存储器控制器,其具有微处理器,所述微处理器适合于经由逻辑接口从主机系统接收数据;第一存储器分区,其具有系统区和数据区;以及第二存储器分区,其具有系统区和数据区;其中所述存储器控制器通过使用所述系统区和所述数据区的虚拟区块地址使得所述系统区和所述数据区看似邻接所述主机系统,来将存储器空间从所述第二存储器分区重新分配到已满或已经达到阈值的所述第一存储器分区。

Description

用于管理存储装置中的分区的方法和系统
相关申请案的交叉参考
技术领域
本发明大体上涉及存储器存储装置,且更明确地说,涉及管理存储装置中的分区。
背景技术
常规计算机系统通常包含若干功能组件。这些组件可包含中央处理单元(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的主机系统的结构;
图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还在其Cruzer商标下提供一系列快闪驱动器,所述快闪驱动器是具有通用串行总线(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包含分区(在此实例中是分区1)的分区/引导信息。举例来说,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(针对媒体类型)和群集的末尾。使用特定群集(例如,群集4087)来指示坏群集。对于FAT 16,每个条目含有16个位,且对于FAT 32,每个条目含有32个位。
根目录209含有每个文件的条目。每个目录条目包含用于文件名称或目录的某一数目的字节(例如,8个字节);用于扩展部分的若干字节(例如,3个字节),用于文件属性的若干字节(例如,1个字节)(例如,如果文件是只读、隐藏、系统文件、卷标、目录或修改);指示形成文件的时间和日期的若干字节;用于开始群集的某一数目的字节(例如2个);以及指示文件长度的某一数目的字节(例如4个)。
用于开始群集的所述数目的字节指向FAT中的第一群集,且最后的群集可由OxFFF、OxFFFF或OXffffff指示。
为了将文件名称写入在目录中,主机系统找出FAT 1区207中的空余群集空间,且将数据写入在数据区202。接着,更新FAT 1和FAT 2条目两者。目录条目(即,日期/时间/开始群集/文件长度)也被更新。
在本发明的一个方面,当一个分区变满或达到某一阈值,且其它分区具有未占用空间时,存储器控制器150A重新分配分区空间。因此,一个分区的大小增加,而另一个分区的大小减小。阈值可由存储器控制器150A编程。使用映射方案(本文称为“虚拟映射”)来跟踪群集在两个分区中的使用,如下文所述。这整个过程实际上由存储器控制器150A执行。主机系统不必须复制所有的数据和将存储装置重新格式化。
图2C展示经重新分配的分区1和分区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和FAT 2区208足够大以含有整个快闪存储器装置容量的FAT条目。
图4E展示一个表,其中列417展示分区映射的主机/用户的视图,且列418展示实际/真实分区映射。如列418下所示,真实分区映射包含用于FAT区扩展部分的保留区207A。此区足够大,使得FAT 1和FAT 2中的FAT条目可容纳整个存储装置。当分区扩展(例如,前述实例中的分区1)时,使用保留区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>=1000,那么n′(经调整的文件名称条目)等于n-500。对包含区204B和204C中的那些条目的所有条目执行此调整。如果文件名称条目展示其为目录或子目录,那么目录(或子目录)条目也经调整。
在本发明的一个方面,在不在烦琐耗时的操作中复制所有数据的情况下,分区区由存储器装置控制器重新分配/调整。主机系统不必须执行复制/重新格式化驱动器以便重新分配分区存储空间的耗时过程。
尽管已经参考具体实施例描述了本发明,但这些实施例仅仅是说明性而不是限制性的。举例来说,尽管前述说明是基于快闪存储器装置,但它们同样可应用于其它类型的存储器装置,例如硬盘。根据此揭示内容和所附权利要求书,将明白本发明的许多其它应用和实施例。

Claims (27)

1.一种大容量存储装置,其包括:
可重新编程的非易失性存储器单元,所述存储器单元被布置在多个存储器单元区块中,其可一起擦除且一起连接在多个串联的串中,以界定用于存储数据的存储器单元行,其中将所述存储器单元分成包含第一存储器分区和第二存储器分区的至少两个存储器分区,其中所述第一存储器分区具有第一系统区和第一数据区且所述第二存储器分区具有第二系统区和第二数据区;以及
存储器控制器,其经耦合以存取所述可重新编程的非易失性存储器单元且其适合于经由逻辑接口从外部主机系统接收数据;
其中所述存储器控制器适合于通过使用映射表将存储器存储空间从具有未用存储空间的所述第一存储器分区重新分配给已满或已达到阈值的所述第二存储器分区,其中所述映射表包含所述第一存储器分区的第一虚拟区块地址和所述第二存储器分区的第二虚拟区块地址,其中从所述第一数据区中重新分配给所述第二数据区的存储器存储空间对所述外部主机系统而言看似邻接于所述第一系统区。
2.根据权利要求1所述的大容量存储装置,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表的存储空间,且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表的存储空间,其中用于存储所述第一文件分配表的所述存储空间基于是将数据存储空间添加到所述第一存储器分区还是从所述第一存储器分区减去数据存储空间而扩展或收缩,用于存储所述第二文件分配表的所述存储空间基于是将数据存储空间添加到所述第二存储器分区还是从所述第二存储器分区减去数据存储空间而扩展或收缩。
3.根据权利要求1所述的大容量存储装置,其中当所述第二存储器分区已满或已达到阈值时,所述存储器控制器将所述第一存储器分区中的存储器存储空间重新分配给所述第二存储器分区。
4.根据权利要求1所述的大容量存储装置,其中所述映射表进一步包含所述第一存储器分区的第一逻辑区块地址和所述第二存储器分区的第二逻辑区块地址,其中所述映射表将所述第一虚拟区块地址映射到所述第一逻辑区块地址,其中在将所述存储器存储空间从所述第一存储器分区重新分配给所述第二存储器分区之前,所述第一存储器分区的所述第一虚拟区块地址和所述第一逻辑区块地址是相同的,且在将所述存储器存储空间从所述第一存储器分区重新分配给所述第二存储器分区之后,所述第一存储器分区的所述第一虚拟区块地址和所述第一逻辑区块地址是不同的。
5.根据权利要求1所述的大容量存储装置,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表条目的存储空间,且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表条目的存储空间,其中当空余存储器空间从所述第一存储器分区分配到所述第二存储器分区时,调整所述第一存储器分区的所述第一文件分配表条目和所述第二存储器分区的所述第二文件分配表条目。
6.根据权利要求1所述的大容量存储装置,其中当空余存储器空间从所述第一存储器分区分配到所述第二存储器分区时,调整所述第一存储器分区的第一目录中的第一文件名称条目和所述第二存储器分区的第二目录中的第二文件名称条目。
7.根据权利要求1所述的大容量存储装置,其中所述大容量存储装置是快闪装置。
8.根据权利要求1所述的大容量存储装置,其中所述大容量存储装置是非易失性存储器存储装置。
9.一种大容量存储装置,其包括:
非易失性存储器单元,其布置在多个存储器单元区块中,所述多个存储器单元区块一起连接在多个串联的串中,以界定用于存储数据的存储器单元行,其中所述存储器单元被分为具有第一系统区和第一数据区的第一存储器分区和具有第二系统区和第二数据区的第二存储器分区;以及
存储器控制器,其包含在所述大容量存储装置中且耦合的存取所述非易失性存储器单元,所述存储器控制器适合于经由逻辑接口从外部主机装置接收数据;
其中通过使用映射表将存储器存储空间从具有未用存储空间的所述第一存储器分区重新分配给已满或已达到阈值的所述第二存储器分区,其中所述映射表包含所述第一存储器分区的第一逻辑区块地址及第一虚拟区块地址和所述第二存储器分区的第二逻辑区块地址及第二虚拟区块地址,其中从所述第一数据区中重新分配给所述第二数据区的所述存储器存储空间对所述外部主机装置而言看似邻接于所述第一系统区。
10.根据权利要求9所述的大容量存储装置,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表的存储空间,且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表的存储空间,其中用于存储所述第一文件分配表的所述存储空间基于是将数据存储空间添加到所述第一存储器分区还是从所述第一存储器分区减去数据存储空间而扩展或收缩,用于存储所述第二文件分配表的所述存储空间基于是将数据存储空间添加到所述第二存储器分区还是从所述第二存储器分区减去数据存储空间而扩展或收缩。
11.根据权利要求9所述的大容量存储装置,其中当所述第二存储器分区已满或已达到阈值时,所述存储器控制器将所述第一存储器分区中的存储器存储空间重新分配给所述第二存储器分区。
12.根据权利要求9所述的大容量存储装置,其中当所述大容量存储装置被初始化时,所述第一虚拟区块地址与所述第一逻辑区块地址相同,且所述第二虚拟区块地址与所述第二逻辑区块地址相同。
13.根据权利要求9所述的大容量存储装置,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表条目的存储空间,且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表条目的存储空间,其中当空余存储器空间从所述第一存储器分区分配到所述第二存储器分区时,调整所述第一存储器分区的所述第一文件分配表条目和所述第二存储器分区的所述第二文件分配表条目。
14.根据权利要求9所述的大容量存储装置,其中当空余存储器空间从所述第一存储器分区分配到所述第二存储器分区时,调整所述第一存储器分区的第一目录中的第一文件名称条目和所述第二存储器分区的第二目录中的第二文件名称条目。
15.根据权利要求9所述的大容量存储装置,其中所述大容量存储装置是快闪装置。
16.根据权利要求9所述的大容量存储装置,其中所述大容量存储装置是硬盘。
17.根据权利要求9所述的大容量存储装置,其中所述大容量存储装置是非易失性存储器存储装置。
18.一种用于在大容量存储装置的第一存储器分区与第二存储器分区之间动态地重新分配数据存储空间的方法,其中所述第一存储器分区具有第一系统区和第一数据区且所述第二存储器分区具有第二系统区和第二数据区,所述方法包括:
确定所述第二存储器分区是否已满或已达到阈值;
确定所述第一存储器分区是否具有可分配给所述已满或已达到阈值的第二存储器分区的未用存储空间;以及
将未用存储空间从所述第一存储器分区分派到所述第二存储器分区,其中包含在所述大容量存储装置中的存储器控制器分派所述未用存储空间,所述存储器控制器适合于经由逻辑接口从外部主机系统接收数据;
其中所述存储器控制器适合于通过使用映射表将所述第一存储器分区中的存储器存储空间重新分配给所述第二存储器分区,其中所述映射表包含所述第一存储器分区的第一虚拟区块地址和所述第二存储器分区的第二虚拟区块地址,其中从所述第一数据区中重新分配给所述第二数据区的存储器存储空间对所述外部主机系统而言看似邻接于所述第一系统区。
19.根据权利要求18所述的方法,其中所述大容量存储装置包含可重新编程的非易失性存储器单元,所述存储器单元布置在多个存储器单元区块中,其可一起擦除且一起连接在多个串联的串中,以界定用于存储数据的存储器单元行;其中所述存储器控制器适合于经由逻辑接口从主机系统接收数据。
20.根据权利要求18所述的方法,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表的存储空间且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表的存储空间,其中用于存储所述第一文件分配表的所述存储空间基于是将数据空间添加到所述第一存储器分区还是从所述第一存储器分区减去数据空间而扩展或收缩,用于存储所述第二文件分配表的所述存储空间基于是将数据空间添加到所述第二存储器分区还是从所述第二存储器分区减去数据空间而扩展或收缩。
21.根据权利要求18所述的方法,其中当所述大容量存储装置被初始化时,所述第一存储器分区和所述第二存储器分区的虚拟区块地址与所述第一存储器分区和所述第二存储器分区的逻辑区块地址相同。
22.根据权利要求18所述的方法,其中所述第一存储器分区的所述第一系统区包含用于存储第一文件分配表条目的存储空间,且所述第二存储器分区的所述第二系统区包含用于存储第二文件分配表条目的存储空间,其中当空余存储器空间从一个存储器分区分配到另一存储器分区时,调整所述第一存储器分区的所述第一文件分配表条目和所述第二存储器分区的所述第二文件分配表条目。
23.根据权利要求18所述的方法,其中当空余存储器空间从所述第一存储器分区分配到所述第二存储器分区时,调整所述第一存储器分区的第一目录中的第一文件名称条目和所述第二存储器分区的第二目录中的第二文件名称条目。
24.根据权利要求18所述的方法,其中所述大容量存储装置是快闪装置。
25.根据权利要求18所述的方法,其中所述大容量存储装置是磁性硬盘。
26.根据权利要求18所述的方法,其中所述存储器控制器在接收到来自外部主机系统的命令之后重新分配所述数据存储空间。
27.根据权利要求18所述的方法,其中所述大容量存储装置是非易失性存储器存储装置。
CN2006800235956A 2005-06-29 2006-06-28 用于管理存储装置中的分区的方法和系统 Active CN101213510B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/170,221 US7457910B2 (en) 2005-06-29 2005-06-29 Method and system for managing partitions in a storage device
US11/170,221 2005-06-29
PCT/US2006/025467 WO2007002866A2 (en) 2005-06-29 2006-06-28 Method and system for managing partitions in a storage device

Publications (2)

Publication Number Publication Date
CN101213510A CN101213510A (zh) 2008-07-02
CN101213510B true CN101213510B (zh) 2012-05-23

Family

ID=37101969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800235956A Active CN101213510B (zh) 2005-06-29 2006-06-28 用于管理存储装置中的分区的方法和系统

Country Status (7)

Country Link
US (2) US7457910B2 (zh)
EP (3) EP2270643A1 (zh)
JP (2) JP5143730B2 (zh)
KR (1) KR20080025178A (zh)
CN (1) CN101213510B (zh)
TW (1) TWI315032B (zh)
WO (1) WO2007002866A2 (zh)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814047B2 (en) * 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US7747580B2 (en) 2003-08-25 2010-06-29 Oracle International Corporation Direct loading of opaque types
JP4428200B2 (ja) * 2004-11-01 2010-03-10 ソニー株式会社 情報記録装置および方法、プログラム格納媒体、並びにプログラム
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US7933928B2 (en) * 2005-12-22 2011-04-26 Oracle International Corporation Method and mechanism for loading XML documents into memory
KR100714709B1 (ko) * 2006-01-11 2007-05-04 삼성전자주식회사 숨김 영역 관리 장치 및 방법
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US20080082725A1 (en) * 2006-09-28 2008-04-03 Reuven Elhamias End of Life Recovery and Resizing of Memory Cards
US7596656B2 (en) * 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
US7933935B2 (en) 2006-10-16 2011-04-26 Oracle International Corporation Efficient partitioning technique while managing large XML documents
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US7917479B2 (en) 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
US8429352B2 (en) 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US9693106B2 (en) * 2007-07-26 2017-06-27 The Directv Group, Inc. Method and system for preordering content in a user device associated with a content processing system
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US8286883B2 (en) 2007-11-12 2012-10-16 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
US8162227B2 (en) * 2007-11-12 2012-04-24 Micron Technology, Inc. Intelligent controller system and method for smart card memory modules
US8307131B2 (en) * 2007-11-12 2012-11-06 Gemalto Sa System and method for drive resizing and partition size exchange between a flash memory controller and a smart card
US8898477B2 (en) * 2007-11-12 2014-11-25 Gemalto Inc. System and method for secure firmware update of a secure token having a flash memory controller and a smart card
US8156322B2 (en) 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
US8819675B2 (en) * 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
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
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
US9098506B2 (en) * 2008-01-02 2015-08-04 Sandisk Il, Ltd. Data indexing by local storage device
US8370402B2 (en) * 2008-01-02 2013-02-05 Sandisk Il Ltd Dual representation of stored digital content
US8583878B2 (en) * 2008-01-02 2013-11-12 Sandisk Il Ltd. Storage device having direct user access
JPWO2009096180A1 (ja) * 2008-01-30 2011-05-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
CN101515254B (zh) * 2008-02-18 2010-12-08 鸿富锦精密工业(深圳)有限公司 存储空间管理系统和方法
US8271751B2 (en) 2008-04-24 2012-09-18 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
US8429196B2 (en) 2008-06-06 2013-04-23 Oracle International Corporation Fast extraction of scalar values from binary encoded XML
US8065304B2 (en) * 2008-06-11 2011-11-22 International Business Machines Corporation Using asymmetric memory
US20100122039A1 (en) * 2008-11-11 2010-05-13 Ravi Ranjan Kumar Memory Systems and Accessing Methods
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
JP5218024B2 (ja) * 2008-12-22 2013-06-26 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム
KR101618634B1 (ko) * 2009-01-07 2016-05-09 삼성전자주식회사 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US7974190B2 (en) * 2009-02-12 2011-07-05 Micrel, Inc. Dynamic queue memory allocation with flow control
US8370645B2 (en) 2009-03-03 2013-02-05 Micron Technology, Inc. Protection of security parameters in storage devices
CN101908009B (zh) * 2009-06-08 2014-02-19 鸿富锦精密工业(深圳)有限公司 文件备份与使用方法
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
CN102598019B (zh) 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
TWI395102B (zh) * 2009-10-02 2013-05-01 Via Tech Inc 資料儲存裝置與方法
CN101662706B (zh) * 2009-10-20 2013-03-20 国家电网公司 一种业务存储方法和模块
US8391302B1 (en) * 2009-12-03 2013-03-05 Integrated Device Technology, Inc. High-performance ingress buffer for a packet switch
CN101808123B (zh) * 2010-03-09 2013-04-17 浪潮(北京)电子信息产业有限公司 在存储系统中访问存储资源的方法和装置
CN101868049B (zh) * 2010-06-03 2013-12-04 华为终端有限公司 主机与无线上网模块的通信方法和主机通信模块
CN101938848B (zh) * 2010-06-03 2013-01-02 华为终端有限公司 主机设备无线上网方法及系统
EP2566289B1 (en) 2010-04-23 2017-09-20 Huawei Device Co., Ltd. Wireless Internet access module and method for synchronizing data
US9883242B1 (en) * 2010-05-19 2018-01-30 The Directv Group, Inc. Method and system for controlling a storage location of content in a user device
US9456247B1 (en) 2010-05-19 2016-09-27 The Directv Group, Inc. Method and system for changing communication parameters of a content delivery system based on feedback from user devices
BR112012029178A2 (pt) 2010-05-19 2018-05-15 Directv Group Inc método e sistema para construir uma fila de lista de procura para um usuário em um sistema de distribuição de conteúdo
US20120017052A1 (en) * 2010-07-19 2012-01-19 Sauber William F Information Handling System Universal Memory Wear Leveling System and Method
TWI420305B (zh) * 2010-10-08 2013-12-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9268646B1 (en) * 2010-12-21 2016-02-23 Western Digital Technologies, Inc. System and method for optimized management of operation data in a solid-state memory
CN102541744B (zh) * 2010-12-24 2015-12-02 安凯(广州)微电子技术有限公司 一种移动存储设备的分区方法及系统
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
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) * 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9361044B2 (en) 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
FR2979443B1 (fr) * 2011-08-30 2013-09-27 Maxim Integrated Products Microcontroleur securise a base de mode
US8856440B2 (en) 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US9529547B2 (en) * 2011-10-21 2016-12-27 Freescale Semiconductor, Inc. Memory device and method for organizing a homogeneous memory
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
TWI489272B (zh) * 2012-04-03 2015-06-21 Phison Electronics Corp 保護資料的方法、記憶體控制器與記憶體儲存裝置
CN103377149B (zh) * 2012-04-16 2016-05-11 群联电子股份有限公司 保护数据的方法、存储器控制器与存储器储存装置
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
CN102789425B (zh) * 2012-07-17 2016-01-20 上海金智晟东电力科技有限公司 基于flash存储介质的文件读写方法
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10057726B2 (en) * 2012-10-02 2018-08-21 Razer (Asia-Pacific) Pte. Ltd. Managing user data on an electronic device
US9507750B2 (en) 2012-10-12 2016-11-29 A9.Com, Inc. Dynamic search partitioning
US9235377B2 (en) * 2013-03-12 2016-01-12 Invensense, Inc. Multiple, per sensor configurable FIFOs in a single static random access memory (SRAM) structure
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
CN104238953A (zh) * 2013-06-13 2014-12-24 中兴通讯股份有限公司 直接表的存储方法和装置
KR20140145879A (ko) * 2013-06-14 2014-12-24 삼성전자주식회사 가상 블록 디바이스로 파일 시스템을 마운트하는 전자 장치 및 방법
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
KR102088403B1 (ko) 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
JP6135506B2 (ja) * 2013-12-27 2017-05-31 ブラザー工業株式会社 シート処理装置
KR20150138528A (ko) * 2014-05-29 2015-12-10 삼성전자주식회사 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법
US9846567B2 (en) * 2014-06-16 2017-12-19 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
US10667008B1 (en) 2014-12-18 2020-05-26 The Directv Group, Inc. Method and system for setting and receiving user notifications for content available far in the future
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9952808B2 (en) 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation
JP6601077B2 (ja) * 2015-09-10 2019-11-06 富士通株式会社 情報処理装置、ログ記録方法及びログ記録プログラム
JP6380320B2 (ja) * 2015-09-29 2018-08-29 京セラドキュメントソリューションズ株式会社 電子機器、情報処理方法及びプログラム
US10348567B2 (en) * 2015-10-15 2019-07-09 Microsoft Technology Licensing, Llc Mapping user identifiers between different device ecosystems
US10210298B2 (en) * 2015-11-24 2019-02-19 Altera Corporation Embedded memory blocks with adjustable memory boundaries
EP3408623A4 (en) * 2016-01-22 2020-01-15 Illinois Tool Works, Inc. SYSTEMS AND METHODS FOR DYNAMICALLY CONFIGURING STORED DATA VALUES ON A MASS FLOW REGULATOR
US10261707B1 (en) * 2016-03-24 2019-04-16 Marvell International Ltd. Decoder memory sharing
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10567460B2 (en) * 2016-06-09 2020-02-18 Apple Inc. Managing data using a time-based directory structure
JP6783645B2 (ja) * 2016-12-21 2020-11-11 キオクシア株式会社 メモリシステムおよび制御方法
US20180292991A1 (en) * 2017-04-11 2018-10-11 Micron Technology, Inc. Memory protocol with programmable buffer and cache size
KR20190006680A (ko) * 2017-07-11 2019-01-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN109697016B (zh) * 2017-10-20 2022-02-15 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
US10908832B2 (en) 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN109815711B (zh) * 2018-12-21 2020-12-25 航天信息股份有限公司 一种存储设备、数据存储方法和数据读取方法
US10977174B2 (en) * 2018-12-31 2021-04-13 Micron Technology, Inc. Using a common pool of blocks for user data and a system data structure
CN111274160A (zh) * 2020-01-22 2020-06-12 维沃移动通信有限公司 数据存储方法、电子设备及介质
US11436153B2 (en) * 2020-05-26 2022-09-06 Western Digital Technologies, Inc. Moving change log tables to align to zones
US20220019370A1 (en) * 2020-07-16 2022-01-20 Micron Technology, Inc. Partial zone memory unit handling in a zoned namespace of a memory device
US11537293B2 (en) * 2021-02-18 2022-12-27 Western Digital Technologies, Inc. Wear leveling methods for zoned namespace solid state drive
CN114237514A (zh) * 2021-12-24 2022-03-25 深圳市宝佳乐电子科技有限公司 区块管理方法、存储器控制器和存储器存储装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE36989E (en) 1979-10-18 2000-12-12 Storage Technology Corporation Virtual storage system and method
EP0935255A2 (en) 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
US5193184A (en) 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5253344A (en) 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system
JPH0581091A (ja) * 1991-09-19 1993-04-02 Fuji Xerox Co Ltd データ処理装置
CA2100540A1 (en) 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5706472A (en) * 1995-02-23 1998-01-06 Powerquest Corporation Method for manipulating disk partitions
US5675769A (en) * 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
JPH08314773A (ja) * 1995-05-15 1996-11-29 Nec Corp 記憶装置の分割領域再配置システム
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
WO1999057641A1 (en) 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
JP3613052B2 (ja) * 1999-02-09 2005-01-26 日本電気株式会社 オペレーティングシステムを記録したコンピュータ読み取り可能な記録媒体
US6609187B1 (en) 1999-07-06 2003-08-19 Dell Products L.P. Method and apparatus for supporting resizing of file system partitions
JP3863330B2 (ja) 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
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
US7089391B2 (en) * 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
JP2002222061A (ja) * 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
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
JP2003085014A (ja) * 2001-09-12 2003-03-20 Toshiba Corp ネットワークシステムのボリューム管理方法及び計算機
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
US6771536B2 (en) 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
US6694419B1 (en) 2002-04-12 2004-02-17 Barsa Consulting Group, Llc Method and system for automatically measuring partition memory needs in a partitioned computer system
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
US6851030B2 (en) 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US6912625B2 (en) 2003-01-09 2005-06-28 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems
JP4559359B2 (ja) * 2003-02-20 2010-10-06 パナソニック株式会社 情報記録媒体及びその領域管理方法
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
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
US7496493B1 (en) * 2004-11-09 2009-02-24 Western Digital Technologies, Inc. External memory device to provide disk device and optical functionality
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling

Also Published As

Publication number Publication date
KR20080025178A (ko) 2008-03-19
WO2007002866A2 (en) 2007-01-04
JP2008545202A (ja) 2008-12-11
JP2013012212A (ja) 2013-01-17
CN101213510A (zh) 2008-07-02
EP1896931A2 (en) 2008-03-12
US20070002612A1 (en) 2007-01-04
US7853772B2 (en) 2010-12-14
TW200712878A (en) 2007-04-01
EP2270643A1 (en) 2011-01-05
WO2007002866A3 (en) 2007-05-10
US20090043984A1 (en) 2009-02-12
US7457910B2 (en) 2008-11-25
JP5143730B2 (ja) 2013-02-13
TWI315032B (en) 2009-09-21
EP2159681A2 (en) 2010-03-03
EP2159681A3 (en) 2010-12-01

Similar Documents

Publication Publication Date Title
CN101213510B (zh) 用于管理存储装置中的分区的方法和系统
US10126959B2 (en) 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
US7627733B2 (en) Method and system for dual mode access for storage devices
US8209516B2 (en) Method and system for dual mode access for storage devices
US7480766B2 (en) Interfacing systems operating through a logical address space and on a direct data file basis
US7793068B2 (en) Dual mode access for non-volatile storage devices
US7769978B2 (en) Method and system for accessing non-volatile storage devices
KR101464199B1 (ko) 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
CN102200946B (zh) 资料存取方法、记忆体控制器与储存系统
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け

Legal Events

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

Owner name: SANDISK TECHNOLOGIES, INC.

Free format text: FORMER OWNER: SANDISK CORPORATION

Effective date: 20121218

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

Effective date of registration: 20121218

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.