CN104636079A - 文件存取方法及其系统 - Google Patents
文件存取方法及其系统 Download PDFInfo
- Publication number
- CN104636079A CN104636079A CN201410641772.3A CN201410641772A CN104636079A CN 104636079 A CN104636079 A CN 104636079A CN 201410641772 A CN201410641772 A CN 201410641772A CN 104636079 A CN104636079 A CN 104636079A
- Authority
- CN
- China
- Prior art keywords
- trooping
- address
- file
- troop
- fat
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种文件存取方法及其系统。本发明揭示用于存取存储于存储装置中的文件的数个系统及方法。在实施例中,所述方法包含存取与所述存储装置相关联的计算机文件系统中的文件分配表FAT(402)。所述FAT包含对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址(402)。读取一群集地址以识别下一群集的位置(404)。读取所述群集地址中的一或多个位以确定指示对来自所述多个群集当中的一组相连群集的分配的签名值的存在(404)。如果存在所述签名值,那么基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的数目(406)。基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集(408)。
Description
技术领域
本发明一股来说涉及文件从存储装置的存取的领域。
背景技术
例如膝上型计算机、智能电话、平板计算机等等的电子装置包含用于数据存储目的的内建存储媒体。此类存储媒体的实例可包含硬盘驱动器、只读存储器(ROM)、随机存取存储器(RAM)等等。对存储媒体内的存储空间的分配在电子装置中通常使用计算机文件系统(例如文件分配表(FAT)文件系统)来管理。FAT文件系统作为存储媒体的内容的目录而维持文件分配表(在本文中还称为“FAT”)。存储媒体中的每一存储位置(举例来说,存储空间的块或群集)与FAT中的对应条目相关联。
在文件写入操作期间,基于存储空间的可用性而依序或以随机方式将若干群集分配到文件。因此,文件与指示包含对应于文件的内容的群集数目的若干FAT条目相关联。在文件读取操作期间,与文件的开始群集相关联的FAT条目依据由FAT文件系统维持的另一文件目录而定位。与文件的开始群集相关联的FAT条目识别文件的第二群集的群集数目。第二群集的FAT条目识别文件的第三群集的群集数目,以此类推等等。因此,为存取存储于存储媒体中的文件,FAT文件系统读取FAT条目(不管是否相连地分配群集)以便识别与文件相关联的群集。作为在由FAT文件系统从存储媒体读取FAT条目与读取群集之间的反复来回切换的结果,文件读取性能被降级。
标题为“可扩展文件系统中的相连文件分配(Contiguous file allocation in anextensible file system)”且于2009年2月20日提出申请的美国专利申请案第12/389,391号提出用于可扩展文件系统(exFAT)的流目录的使用。流扩展目录条目包含一股次级旗标以指示与文件相关联的群集在存储媒体上是逻辑上或物理上相连的。此方案改进文件读取性能。标题为“提供文件的相连存储的接口技术(Interface techniques providingcontiguous storage for files)”且于2009年11月4日提出申请的美国专利申请案第12/612,178号提出exFAT文件系统中的目录结构的使用。标题为“使用名称散列的快速文件名查找(Quick filename lookup using name hash)”且于2009年2月20日提出申请的美国专利第8,321,439号提出exFAT文件系统中的流扩展目录的使用。然而,这些参考文献中所提出的技术不适用于FAT文件系统,因为流扩展目录条目不是FAT文件系统兼容的因此,流扩展目录条目损坏FAT文件系统,且因此此方法仅限于exFAT文件系统。
发明内容
提供此发明内容以按简化形式引入下文在具体实施方式中进一步描述的概念的选择。此发明内容并不打算识别所主张标的物的关键特征或基本特征,也不打算用作辅助判定所主张标的物的范围。
揭示用于存取存储于存储装置中的文件的各种方法、系统及计算机可读媒体。在实施例中,揭示一种文件存取方法。所述文件存取方法包含存取与存储装置相关联的计算机文件系统中的文件分配表(FAT)。所述FAT包含对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址。读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置。通过多个位而配置所述群集地址。读取来自所述多个位当中的一或多个位以确定签名值的存在。所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配。基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目。基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目。基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
在实施例中,所述计算机文件系统是FAT32文件系统,且来自所述多个群集地址当中的每一群集地址包含32个位。在实施例中,基于由来自配置所述群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定所述签名值的所述存在。在实施例中,连续群集地址的所述预定数目为四个,且与四个连续群集地址中的每一者相关联的所述四个最高有效位被连结起来以产生指示分配到所述文件的相连群集的所述数目的16位值。在实施例中,连续群集地址的所述预定数目为七个,且与七个连续群集地址中的每一者相关联的所述四个最高有效位被连结起来以产生指示分配到所述文件的相连群集的所述数目的28位值。在实施例中,从所述FAT读取一或多个群集地址以便识别在所述组相连群集后面的群集。针对对所述一或多个群集地址的每一读取而确定所述签名值的存在以便识别对来自分配到所述文件的所述多个群集中的其余群集当中的另一组相连群集的分配。
在实施例中,揭示一种文件存取系统。所述文件存取系统包含存储装置及处理模块。所述存储装置经配置以存储多个文件。所述处理模块与所述存储装置以通信方式相关联。所述处理模块经配置以通过存取与所述存储装置相关联的计算机文件系统中的文件分配表(FAT)而存取来自所述多个文件当中的一文件。所述FAT包含对应于分配到存储于所述存储装置中的所述文件的多个群集的多个群集地址。所述处理模块经配置以读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置。通过多个位而配置所述群集地址。读取来自多个位当中的一或多个位以确定签名值的存在。所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配。所述处理模块进一步经配置以基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目。基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目。所述处理模块进一步经配置以基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
另外,在实施例中,揭示一种非暂时性计算机可读媒体,其存储在执行时致使计算机执行文件存取方法的一组指令。在实施例中,所述文件存取方法包含存取与存储装置相关联的计算机文件系统中的文件分配表(FAT)。所述FAT包含对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址。读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置。通过多个位而配置所述群集地址。读取来自多个位当中的一或多个位以确定签名值的存在。所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配。基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目。基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目。基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
在以下图式及详细说明中提供其它方面及实例实施例。
附图说明
图1是根据实例情景的与存储装置相关联的实例文件分配表(FAT)文件系统架构的框图;
图2是根据实施例的实例文件存取系统的简化框图;
图3A图解说明根据实例实施例的用于计算分配到文件的相连群集的数目的16位值从FAT中的FAT条目的实例产生;
图3B图解说明根据实例实施例的用于计算分配到文件的两组相连群集中的每一者中的群集的数目的两个16位值从FAT中的FAT条目的实例产生;
图4图解说明根据实例实施例的用于存取存储于存储装置中的文件的实例方法的流程图;
图5图解说明根据另一实例实施例的用于存取存储于存储装置中的文件的实例方法的流程图;且
图6是根据实施例的经配置以促进存储于存储装置中的文件的存取的实例集成电路的框图。
此说明中所提及的图式不应理解为是按比例绘制,除非明确注明,且此些图式本质上仅是实例。
具体实施方式
依据实例情景,通常使用计算机文件系统(例如文件分配表(FAT)文件系统)来管理对存储媒体中的存储空间的分配。FAT文件系统作为存储媒体的内容的目录而维持文件分配表(在本文中还称为FAT)。存储媒体中的每一存储位置(举例来说,存储空间的块或群集)与FAT中的对应条目相关联。参考图1阐释实例FAT文件系统架构。
图1是根据实例情景的与存储装置相关联的实例FAT文件系统架构100的框图。在实例情景中,存储装置包含于电子装置内。在实施例中,存储装置在电子装置外部且经配置以由电子装置远程地存取。存储装置的实例包含但不限于:机械存储装置(例如硬盘驱动器)及各种形式的非易失性存储器装置(举例来说,只读存储器(ROM)、电可擦除可编程ROM(EEPROM))及易失性存储器装置(举例来说,随机存取存储器(RAM)、双倍数据速率同步RAM(DDR SRAM))。在电子装置中可采用FAT文件系统架构100来管理对与存储装置相关联的存储空间的分配。FAT文件系统架构100可与微软的Windows操作系统及电子装置中所采用的此类类似操作系统兼容。电子装置的实例可包含:(1)计算装置,例如个人计算机(PC)、膝上型计算机、平板PC等等;(2)多媒体装置,例如智能电话、游戏控制台等等;及(3)消费型电子装置,如机顶盒、数码相机、摄录像机等等。在实例情景中,FAT文件系统架构100是具有用于寻址存储装置中的存储位置(举例来说,群集)的32位寻址方案的FAT32文件系统架构。
FAT文件系统架构100描绘用于存储装置的逻辑存储结构102。逻辑存储结构102描绘基本输入输出系统(BIOS)参数块(BPB)104、所保留扇区106、文件分配表_1 108、文件分配表_2 110及群集块112。BPB 104还称为引导扇区或卷引导记录。BPB 104包含引导程序连同卷描述信息。所保留扇区106包含作为所保留扇区的FAT卷的一或多个扇区或第一扇区。在一个实例情景中,逻辑存储结构102的所保留扇区106可包含BPB104及BPB 104的备份副本。文件分配表_1 108提供与存储装置相关联的群集的映射。文件分配表_2 110是文件分配表_1 108的备份副本。群集块112包含多个群集,例如群集114(描绘为图1中的群集0x0)、群集116(描绘为图1中的群集0x1)直到群集118(描绘为群集图1中的0xN)。所述群集经配置以存储对应于存储于存储装置中的一或多个文件的数据。
来自群集块112中的若干群集当中的每一群集由文件分配表_1 108(下文中称为FAT 108)中的条目表示。图1的插入视图中描绘FAT 108的简化结构。FAT 108包含具有对应FAT条目的多个索引。更明确地说,索引安置于标示为“FAT条目索引”120的列中,且对应FAT条目安置于标示为“FAT条目值”122的毗连列中。FAT 108中的每一条目与群集块112内的一群集对应(或映射到群集块112内的一群集)。举例来说,FAT条目124与存储装置的群集0x0(举例来说,群集114)相关联,如由包含值0x0的FAT条目索引126所指示。下一FAT条目(举例来说,FAT条目128)与存储装置的下一群集(举例来说,群集0x1(或群集116))相关联,如由包含值0x1的FAT条目索引130所指示,FAT条目132与群集0x2相关联,如由包含值0x2的FAT条目索引134所指示,以此类推等等,直到遇到与最后群集118(举例来说,群集0xN)相关联的最后FAT条目136为止,如由包含值0xN的FAT条目索引138所指示。因此,每一FAT条目包含FAT条目索引及FAT条目值。
在实例情景中,每一FAT条目(例如FAT条目124、128、132或136中的任一者)包含表示存储装置上的另一物理群集的群集地址(举例来说,文件的下一群集的位置)。在实例情景中,FAT条目可包含指示对应群集为文件的结束群集的文件标记的结束。在实例情景中,FAT条目可对应于指示所表示群集为空(举例来说,表示未分配存储装置中的对应群集)的零值。因此,对于存储于存储装置上的文件的特定群集,其群集数目(其中其存储于存储装置上)充当对FAT 108的索引,且存储于此FAT条目处的值包含表示其中文件的下一群集存储于存储装置上的群集地址。
在实施例中,FAT文件系统架构100可进一步包含目录(图1中未展示),举例来说,包含32字节条目的目录,所述目录包含对应于存储于存储装置中的文件的文件属性信息。举例来说,32字节目录包含文件名、关于将文件保存到存储装置的最后实例的信息、识别文件的第一群集的群集数目等等。
在文件写入操作期间,取决于存储空间的可用性,可依序或以随机方式分配若干群集。因此,文件与指示包含对应于文件的内容的群集的若干FAT条目相关联。在文件读取操作期间,与文件的开始群集相关联的FAT条目依据由FAT文件系统维持的目录而定位。与文件的开始群集相关联的FAT条目识别文件的第二群集的群集数目。第二群集的FAT条目识别文件的第三群集的群集数目,以此类推等等。因此,对于存取存储于存储媒体中的文件,FAT文件系统读取FAT条目(不管是否相连地分配群集)以识别与文件相关联的群集。作为在由FAT文件系统从存储媒体读取FAT条目与读取群集之间的反复来回切换的结果,文件读取性能被降级。然而,本发明技术的各种实施例提供能够克服这些及其它障碍并提供额外益处的用于存取存储于存储装置中的文件的方法、系统及计算机可读媒体。
图2是根据实施例的实例文件存取系统200的简化框图。在实施例中,文件存取系统200(下文中称为系统200)可包含于电子装置(例如参考图1所阐释的电子装置)内。在图2中,系统200描绘为包含存储装置202及处理模块204。存储装置202及处理模块204彼此经由总线206以通信方式相关联。总线206的实例可包含但不限于数据总线、控制总线等等。举例来说,总线206可为串行总线、单向总线或双向总线。在实施例中,系统200的各种组件(例如存储装置202、处理模块204及总线206)可实施为硬件、软件、固件或其任何组合。
在图2中,使用计算机文件系统(例如参考图1中的FAT文件系统架构100所阐释的FAT文件系统)来分配与存储装置202相关联的存储空间(举例来说,多个群集)。在实例实施例中,计算机文件系统为FAT32文件系统。在实施例中,与存储装置202相关联的群集存储例如文本内容、图像内容、音频/视频内容或其任何组合的内容。在图2中,存储装置202描绘为存储多个文件,例如FILE1.txt 208及FILE2.txt 210。应理解,来自存储装置202中的群集当中的多个群集可分配到来自多个文件当中的每一文件。存储装置202进一步经配置以包含FAT 212,FAT 212包含维持分配到存储于存储装置202中的各种文件的群集数目的记录的多个FAT条目。存储装置202的实例包含但不限于随机存取存储器(RAM)、同步动态RAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)等等。
在实施例中,处理模块204经配置以存取来自存储于存储装置202中的多个文件当中的一文件。在实施例中,处理模块204可体现为多核处理器、单核处理器或一或多个多核处理器及一或多个单核处理器的组合。举例来说,处理模块204可体现为各种处理装置中的一或多者,例如协处理器、微处理器、控制器、数字信号处理器(DSP)、具有或不具有伴随DSP的处理电路或包含集成电路的各种其它处理装置,举例来说,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器单元(MCU)、硬件加速器、专用计算机芯片或类似物。在实施例中,处理模块204可经配置以执行硬译码功能性。在实施例中,处理模块204可体现为软件指令的执行器,其中指令可特别地配置处理模块204以在执行指令时执行本文中所描述的算法及/或操作。处理模块204可尤其包含时钟、算术逻辑单元(ALU)及经配置以支持处理模块204的操作的逻辑门。在实施例中,处理模块204可为高级精简指令集计算机(RISC)机器(ARM)处理器。
在实施例中,处理模块204经配置以识别对应于来自与文件相关联的多个群集当中的开始群集的FAT条目。下文中参考FILE1.txt 208(下文中称为文件208)阐释对文件的存取。注意,尽管本文中使用包含文本内容的文件208的实例来阐释对文件的存取,但对文件的存取可不限于仅包含文本内容的文件,且可以类似方式存取包含任何内容类型(例如图形内容、音频内容、视频内容或其任何组合)的文件。基于对应于存储于存储装置202中的文件208的文件属性信息而识别开始群集。如参考图1所阐释,存储装置202包含目录,所述目录包含对应于存储于存储装置202中的每一文件的文件属性信息,例如文件名、文件的开始群集等等。处理模块204经配置以存取对应于存储于存储装置202中的目录中的文件208的目录条目且识别文件208的开始群集。处理模块204进一步经配置以识别FAT 212中的对应于文件208的开始群集的FAT条目。更明确地说,处理模块204经配置以识别来自与对应于存储装置202的计算机文件系统(例如FAT文件系统)相关联的FAT 212中的多个FAT条目当中的所述FAT条目。如参考图1所阐释,与每一群集相关联的群集数目符合与群集相关联的FAT条目索引。因此,通过识别对应于文件208的开始群集,基于与开始群集相关联的群集数目而确定FAT条目索引。可基于所识别FAT条目索引而识别FAT条目。如参考图1所阐释,所识别FAT条目包含群集地址。包含于FAT条目中的群集地址包含多个位。在实施例中,对于FAT32文件系统,包含于每一FAT条目中的群集地址经配置以包含32个位。与文件的开始群集相关联的FAT条目中的群集地址识别文件的第二群集的群集数目。第二群集的FAT条目中的群集地址识别文件的第三群集的群集数目,以此类推等等。因此,对于存取存储于存储媒体中的文件,读取FAT条目以识别与文件208相关联的群集。
在实施例中,处理模块204经配置以读取群集地址以识别来自分配到存储装置202中的文件208的多个群集当中的下一群集的位置。在实施例中,读取来自配置群集地址的多个位当中的一或多个位以确定群集地址中所包含的签名值的存在。所述签名值的存在指示对来自分配到文件208的多个群集当中的一组相连群集的分配。
在实施例中,基于由来自配置群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定签名值的存在。举例来说,在FAT32文件系统中,利用来自每一FAT条目中的群集地址的32个位当中的28个位来表示对应于文件208的下一群集的地址。其余四个最高有效位保留于FAT32文件系统架构中。在实施例中,利用群集地址中的所保留最高有效位来包含指示分配到文件208的相连群集的存在的签名值。更明确地说,所保留最高有效位经配置以形成表示非零值的预先指定的位配置,举例来说,如0001或1111的任一位配置,所述非零值可表示指示文件208与相连群集相关联的签名值的存在。
在实施例中,签名值指示文件208以相连群集而创建或附加有相连群集。举例来说,在用于将文件208写入到存储装置202的初始文件写入操作期间,文件208可不以相连群集进行分配(举例来说,以非相连群集进行分配)。在此情景中,在文件208的FAT条目的群集地址中不存在签名值且基于存取对应于非相连群集的FAT条目而读取与文件208相关联的非相连群集。然而,可在稍后时刻及在用于将修改并入到文件208的后续写入操作期间附加或修改文件208,文件208可以相连群集进行分配。此时,签名值包含于来自多个群集地址当中的适当群集地址内以反映对应于后续/其余群集地址的群集中的至少一些群集是相连群集。
在实施例中,处理模块204经配置以基于存在签名值的确定而计算分配到文件208的相连群集的数目。在实施例中,基于在所述群集地址(举例来说,其中确定存在签名值的群集地址)之后的连续群集地址的预定数目而计算分配到文件208的相连群集的数目。在实例情景中,如果确定签名值存在于指示对来自在群集地址3后面的其余群集当中的一组相连群集的分配的群集地址3(举例来说,群集地址0x3)中,那么基于在群集地址3之后的连续群集地址(举例来说,群集地址4、5、6等等)的预定数目而确定所述组相连群集中的群集的数目。在实施例中,在群集地址之后的连续群集的预定数目为四个。因此,基于在所述群集地址之后的四个群集地址而计算相连群集的数目。
在实施例中,处理模块204经配置以将与四个群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到文件208的相连群集的数目的16位值。参考以下说明性实例进一步阐释16位值的产生:
如果文件208的群集地址表示为“S”,那么读取群集地址S以确定签名值的存在。更明确地说,读取群集地址S中的四个最高有效位以确定签名值的存在,如上文所阐释。如果确定存在签名值,那么基于在群集地址S之后的群集地址(举例来说,群集地址“S+1”、“S+2”、“S+3”及“S+4”)而确定与文件208相关联的相连群集的数目。如果A表示由群集地址“S+1”的四个最高有效位配置的值,B表示由群集地址“S+2”的四个最高有效位配置的值,C表示由群集地址“S+3”的四个最高有效位配置的值,且D表示由群集地址“S+4”的四个最高有效位配置的值,那么通过如以下方程式(1)中所描绘来将D、C、B及A连结起来而产生由“L”表示的16位值:
L=0xDCBA 方程式(1)
所述16位值“L”对应于分配到文件208的相连群集的数目。举例来说,如果16位值“L”对应于数目1000,那么文件208以在对应于群集地址S的群集后面的1000个相连群集进行分配。因此,基于相连群集的所计算数目而确定与分配到文件208的相连群集相关联的结束群集以用于促进对分配到文件208的相连群集的读取。举例来说,如果‘L’表示相连群集的数目且‘SC’表示对应于包含签名值的群集地址S的群集数目索引,那么如以下方程式(2)中所描绘而确定对应于结束群集的群集数目索引‘EC’:
EC=L+SC 方程式(2)
举例来说,在上述情景中,如果存储装置202的第三群集(举例来说,方程式(2)中的‘SC')对应于文件208的群集地址S且如果确定文件208以1000个相连群集(举例来说,方程式(2)中的‘L’)进行分配,那么确定结束群集为存储装置202中的第1003群集(举例来说,方程式(2)中的‘EC')。因此,处理模块204在不存取FAT 212的情况下相连地读取所述群集直到群集1003为止。
在实施例中,如果16位值对应于预定位值,那么确定来自与文件相关联的多个群集当中的所有其余群集将为相连。举例来说,如果16位值对应于零或任何此类预定义值,那么确定分配到文件208的所有群集是相连的。参考图3A进一步阐释16位值的产生及相连群集的数目的计算。
在实施例中,取决于容纳系统200的电子装置的要求,16位值计算为呈大端格式的L=0xABCD。在实施例中,如果存储装置202经配置以促进大于216的相连群集的包含,那么FAT 212经配置以利用七个连续群集地址来导出28位值。更明确地说,在实例情景中在用于计算相连群集的数目的所述群集地址之后的连续群集地址的预定数目为七个。因此,将与七个连续群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到文件的相连群集的数目的28位值。
在实施例中,处理模块204经配置以基于相连群集的所计算数目而从存储装置202读取分配到文件208的相连群集。如上文所阐释,16位值(或28位值)指示相连群集的数目。相连群集的结束群集基于相连群集的所计算数目而确定且处理模块204经配置以读取相连群集直到遇到结束群集为止。处理模块204经配置以在不参考FAT 212的情况下读取相连群集,借此通过减少读取FAT 212与来自多个群集当中的相关联群集之间的来回切换而改进文件读取性能。以此方式读取群集对于能够一次读取安置于多个群集上的大量数据的文件读取机械布置是尤其有用的(举例来说,在其中存储装置202体现为硬盘驱动器的实例中,对群集的读取可与磁盘片的旋转对准以一次捕获大量数据)。在来回切换以读取FAT条目可实质上使文件读取性能降级的情况下,文件读取性能的改进对于大文件(如多媒体文件(举例来说,视频文件))可是尤其重要的。
在实施例中,处理模块204进一步经配置以从FAT 212读取用于识别在所述组相连群集后面的群集的一或多个群集地址。处理模块204针对对一或多个群集地址的每一读取而确定签名值的存在以便识别对来自分配到文件的多个群集中的其余群集当中的另一组相连群集的分配。举例来说,如果确定所述组相连群集最高扩展到群集数目1003,且文件208具有扩展超过1003的群集,那么处理模块204通过从FAT 212读取对应群集地址而读取以下非相连群集。在读取非相连群集的群集地址时,处理模块204经配置以确定群集地址中的任一者的签名值的存在。如上文所阐释,处理模块204查核由来自配置群集地址的32个位当中的四个最高有效位形成的预先指定的位配置的存在以确定签名值的存在。如果确定签名值存在于所述群集地址中的任一者中,那么确定文件208以另一组相连群集进行分配。处理模块204通过配置16位值(或28位值)而确定另一组相连群集中的相连群集的数目,如上文所阐释。处理模块204接着在不需要参考FAT 212的情况下读取另一组相连群集,借此改进文件读取性能。参考图3B阐释对两组相连群集的分配。
在实施例中,处理模块204经配置以确定是否修改与文件208相关联的多个群集。更明确地说,在对多个群集到文件208的初始分配之后,处理模块204监视对文件208的任何修改。在实施例中,如果确定修改分配到文件208的多个群集,那么处理模块204经配置以更新一或多个签名值及相连群集的对应数目。
如所阐释,系统200可包含于电子装置中,例如移动电话、智能电话、平板PC、膝上型计算机等等。系统200可包含用于执行本文中未描绘的各种功能的组件。举例来说,系统200可另外包含若干组件,例如输入单元(例如,触摸屏面板或键盘/小键盘)、视频显示单元(例如,液晶显示器(LCD)、阴极射线管(CRT)等等)、光标控制装置(例如,鼠标)、驱动单元(例如,磁盘驱动器)、信号产生单元(例如,扬声器)及/或网络接口单元。驱动单元包含其上存储有体现本文中所描述的方法及/或功能中的一或多者的一或多个组指令(例如,软件)的机器可读媒体。在实施例中,软件完全或部分地驻存于存储装置202内及/或在通过系统200的其执行期间驻存于处理模块204内,使得处理模块204及存储装置202还构成机器可读媒体。软件可进一步经由网络接口单元在网络上进行发射及/或接收。
举例来说,术语“机器可读媒体”可解释为包含存储一或多个组指令的单个媒体及/或多个媒体(例如,集中式及/或分布式数据库及/或相关联高速缓冲存储器及服务器)。此外,术语“机器可读媒体”可解释为包含能够储存、编码或携载供由系统200执行且致使系统200执行各种实施例的方法中的任何一或多者的一组指令的任何媒体。此外,术语“机器可读媒体”可解释为包含但不应限于固态存储器、光学及磁性媒体及载波信号。尽管有前述内容,但注意,本发明技术不限于“机器可读媒体”的任何特定定义。
图3A图解说明根据实例实施例的用于计算分配到文件208的相连群集的数目的16位值从图2的FAT 212中的FAT条目的实例产生。如参考图2所阐释,FAT 212对应于与存储装置202相关联的FAT文件系统。FAT 212包含具有对应FAT条目的多个索引。更明确地说,索引安置于标示为“FAT条目索引”320的列中,且对应FAT条目安置于标示为“FAT条目值”322的毗连列中。FAT 212中的每一fat条目索引与存储装置202的群集对应(或映射到存储装置202的群集)。举例来说,FAT条目索引0x5对应于存储装置202上的群集5。每一FAT条目值包含针对文件中的下一群集的群集地址。在FAT32文件系统中,每一FAT条目值具有32个位的大小,举例来说,FAT条目索引4与0x20000006的FAT条目值(或群集地址)相关联。如参考图2所阐释,在FAT32文件系统中,利用来自群集地址的32个位当中的28个位来参考文件的下一群集且保留(举例来说,未使用)4个最高有效位。
在图3A中,假设图2的处理模块204识别文件(例如文件208)的开始群集为3。因此,识别具有对应于开始群集3的值‘0x3’的FAT条目索引324。对应于FAT条目索引324的FAT条目值326包含群集地址‘0xE0000004’。读取群集地址‘0xE0000004’的最高有效位以确定签名值的存在。群集地址‘0xE0000004’中的四个最高有效位包含非零值(举例来说,“E”)且因此确定签名值存在于对应于开始群集的FAT条目值326中。FAT条目值326中的签名值的确定表示对相连群集到文件208的分配。
在确定签名值的存在后,即刻读取FAT条目值326中的在所述群集地址之后的群集地址中的四个最高有效位。举例来说,在图3A中,在包含签名值的群集地址之后的四个连续群集地址与分别具有值0x4、0x5、0x6及0x7的FAT条目索引328、330、332及334相关联。对应于FAT条目索引328、330、332及334的FAT条目为分别具有群集地址‘0x20000006’、‘0x10000007’、‘0x00000008’及‘1x00000009’的FAT条目值336、338、340及342。FAT条目值336、338、340及342(举例来说,值2、1、0及1)中的四个群集地址中的每一者的四个最高有效位被连结起来以产生由虚线框344描绘的16位十六进制值0x1012。因此,分配到文件的相连群集的数目经计算为0x1012=4114。基于相连群集的所计算数目而确定结束群集索引,如参考方程式(2)所阐释。举例来说,在图3A中,确定签名值存在于第3群集(或FAT条目索引3)中且进一步确定4114个相连群集分配到文件208,此时结束群集索引如方程式(2)所阐释而经计算为等于:3+4114=4117(如在插入视图中由将结束群集计算描绘为0x3+0x1012=0x1015=4117的虚线框346所图解说明)。确定具有十六进制值0x1015的FAT条目索引348为相连群集的结束群集的FAT条目索引,且因此处理模块204在不存取FAT 212的情况下读取4114个相连群集,借此改进文件读取性能。应理解,本文中出于实例目的而描绘文件的开始群集中的签名值的存在,且所述签名值可包含于任何群集地址中以指示与后续群集相关联的群集是相连群集。如参考图2所阐释,文件208可以一组以上相连群集进行分配。参考图3B阐释对两组相连群集的分配。
图3B图解说明根据实例实施例的用于计算分配到文件208的两组相连群集中的每一者中的群集的数目的两个16位值从图2的FAT 212中的FAT条目的实例产生。图3B中的FAT 212描绘为图3A中所描绘的FAT 212的实例扩展。在图3B中,假设文件208以两组相连群集进行分配,且因此FAT 212中的对应于文件208的FAT条目包含两个签名值以指示两组相连群集的存在。FAT条目值326中的群集地址中的第一签名值的确定连同由以虚线框344描绘的16位值表示的第一16位值的计算一起可如参考图3A所阐释而执行。由FAT条目索引348表示的第一组相连群集的结束群集(举例来说,群集0x1015)依据16位值(如图3B中的插入视图中的虚线框346中所图解说明)而确定,且因此在不参考FAT 212的情况下从存储装置202读取第一组相连群集。
对应于FAT条目索引348的FAT条目值350包含指示分配到文件208的下一群集数目的群集地址0x00001018。如从图3B中的FAT 212中的FAT条目可见,下一群集0x1018是非相连地分配的且更明确地说,不接续群集0x1015。在读取第一组相连群集直到遇到群集0x1015后,处理模块204即刻读取包含于FAT条目值350中的群集地址以识别分配到文件208的下一群集。处理模块204接着读取FAT条目索引352(举例来说,0x1018)及对应于FAT条目索引352的FAT条目值354以识别分配到文件208的下一群集。处理模块204读取群集地址0 x E0001019中的四个MSB位以确定签名值的存在。在确定所述群集地址中的四个MSB位中的预先指定的位配置(举例来说,非零值0 xE)的存在后,处理模块204即刻确定文件208以另一组相连群集进行分配。在确定签名值的存在后,读取在FAT条目值354中的群集地址之后的群集地址中的四个最高有效位。举例来说,在FAT条目值354的群集地址之后的四个连续群集地址与分别具有值0x1019、0x101A、0x101B及0x101C的FAT条目索引356、360、364及368相关联。对应于FAT条目索引356、360、364及368的FAT条目值为分别具有群集地址‘0xF000101A’、‘0x0000101B’、‘0x0000101C’及‘1x0000101D’的358、362、366及370。FAT条目值358、362、366及370(举例来说,值F、0、0及0)中的四个群集地址中的每一者的四个最高有效位被连结起来以产生由虚线框372描绘的16位十六进制值0x000F。如参考图2及3A所阐释,16位值对应于分配到文件208的相连群集的数目。因此,分配到文件208的相连群集的数目经计算为0x000F=15。结束群集索引如方程式(2)中所阐释基于相连群集的所计算数目而确定为0x1018+0x000F,如图3B中的虚线框374中所图解说明。举例来说,具有值0x1027的FAT条目索引376经确定为相连群集的结束群集的FAT条目索引,且因此处理模块204在不存取FAT 212的情况下读取15个相连群集,借此改进文件读取性能。
注意,尽管参考图3A及3B中的16位值阐释对相连群集的分配的指示,但如果存储装置202经配置以促进大于216的相连群集的包含,那么FAT 212经配置以利用七个连续群集地址来导出28位值。更明确地说,用于计算相连群集的数目的在包含签名值的群集地址之后的连续群集地址的预定数目为七个。因此,与七个连续群集地址中的每一者相关联的四个最高有效位被连结起来以产生指示分配到文件的相连群集的数目的28位值。处理模块204接着在不存取FAT 212的情况下读取相连群集,借此改进文件读取性能。参考图4阐释用于存取存储于存储装置中的文件的方法。
图4图解说明根据实例实施例的用于从存储装置(举例来说,存储装置202)存取文件(举例来说,图2的文件208)的实例方法400的流程图。举例来说,流程图中所描绘的方法400可由参考图2所阐释的系统200执行。举例来说,流程图的操作及流程图中的操作的组合可由硬件、固件、处理器、电路及/或与包含一或多个计算机程序指令的软件的执行相关联的不同装置实施。本文中借助于系统200来描述方法400的操作。然而,方法的操作可通过使用除系统200以外的系统而描述及/或实践。方法400以操作402开始。
在操作402处,存取(举例来说,由图2的处理模块204)与存储装置相关联的计算机文件系统中的FAT。所述FAT包含对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址。在实施例中,识别(举例来说,由图2的处理模块204)对应于来自与所述文件相关联的多个群集当中的开始群集的FAT条目。在实施例中,基于对应于存储于存储装置中的文件的文件属性信息而识别开始群集。如参考图1所阐释,存储装置包含对应于存储于存储装置中的每一文件的目录,所述目录包含文件属性信息,例如文件名、文件的开始群集等等。对应于存储于存储装置中的目录中的文件的目录条目经存取以识别文件的开始群集。接着在FAT中识别对应于文件的开始群集的FAT条目。更明确地说,可从与计算机文件系统(例如FAT文件系统)相关联的FAT中的多个FAT条目当中识别所述FAT条目。如参考图1所阐释,与每一群集相关联的群集数目符合与所述群集相关联的FAT条目索引。因此,通过识别对应于文件的开始群集,基于与开始群集相关联的群集数目而确定FAT条目索引。基于所识别FAT条目索引而识别FAT条目。此外,如参考图1所阐释,所识别FAT条目包含群集地址。包含于FAT条目中的群集地址包含多个位。在实施例中,对于FAT32文件系统,包含于每一FAT条目中的群集地址经配置以包含32个位。与文件的开始群集相关联的FAT条目中的群集地址识别文件的第二群集的群集数目。第二群集的FAT条目中的群集地址识别文件的第三群集的群集数目,以此类推等等。因此,对于存取存储于存储媒体中的文件,读取FAT条目以识别与文件相关联的群集。
在操作404处,读取(举例来说,由处理模块204)来自多个群集地址当中的一群集地址以识别来自多个群集当中的下一群集的位置。通过多个位而配置所述群集地址。在实施例中,读取来自所述多个位当中的一或多个位以确定签名值的存在。所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配。
在实施例中,基于由来自配置所述群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定所述签名值的所述存在。举例来说,在FAT32文件系统中,利用来自每一FAT条目中的群集地址的32个位当中的28个位来表示对应于文件的下一群集的地址。在FAT32文件系统实施方案中保留其余四个最高有效位。在实施例中,利用群集地址中的所保留最高有效位来包含指示分配到文件的相连群集的存在的签名值。更明确地说,所保留最高有效位经配置以形成表示非零值的预先指定的位配置,举例来说,如0001或1111任一位配置,所述非零值表示指示文件与相连群集相关联的签名值的存在。
在操作406处,基于签名值存在于群集地址中的确定而计算(举例来说,由处理模块204)所述组相连群集中的相连群集的数目。在实施例中,基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目。在实施例中,基于在所述群集地址(举例来说,其中确定存在签名值的群集地址)之后的连续群集地址的预定数目而计算分配到文件的相连群集的数目。在实例情景中,如果确定签名值存在于指示对来自在群集地址3后面的其余群集当中的一组相连群集的分配的群集地址3(举例来说,群集地址0x3)中,那么基于在群集地址3之后的连续群集地址(举例来说,群集地址4、5、6等等)的预定数目而确定所述组相连群集中的群集的数目。在实施例中,在开始群集之后的连续群集的预定数目为四个。因此,基于在所述群集地址之后的四个群集地址而计算相连群集的数目。
在实施例中,与四个群集地址中的每一者相关联的四个最高有效位被连结起来(举例来说,由处理模块204)以产生指示分配到文件的相连群集的数目的16位值。在实施例中,取决于系统要求,可以大端格式计算16位值。在实施例中,如果存储装置经配置以促进大于216的相连群集的包含,那么FAT经配置以利用七个连续群集地址来导出28位值。更明确地说,用于计算相连群集的数目的在所述群集地址之后的连续群集地址的预定数目为七个。因此,与七个连续群集地址中的每一者相关联的四个最高有效位被连结起来以产生指示分配到文件的相连群集的数目的28位值。16位值(或28位值)的确定及用于确定相连群集的数目的计算可如参考图2、3A及3B所阐释而执行,且本文中为简洁起见,不再阐释。
在操作408处,基于相连群集的所计算数目而从存储装置读取(举例来说,由处理模块204)所述组相连群集。如上文所阐释,16位值(或28位值)指示相连群集的数目。基于相连群集的所计算数目而确定相连群集的结束群集,且读取相连群集直到遇到结束群集为止。在此情景中,在不参考FAT的情况下读取相连群集,借此通过减少在读取FAT与来自多个群集当中的相关联群集之间的来回切换而改进文件读取性能。参考图5阐释存取存储于存储装置中的文件的另一方法。
图5图解说明根据实例实施例的存取存储于存储装置中的文件的实例方法500的流程图。所述流程图中所描绘的方法500可由(举例来说)参考图2所阐释的系统200执行。流程图的操作及流程图中的操作的组合可由(举例来说)硬件、固件、处理器、电路及/或与包含一或多个计算机程序指令的软件的执行相关联的不同装置实施。本文中借助于系统200而描述方法500的操作。然而,方法500的操作可通过使用除系统200以外的系统而描述及/或实践。方法500在操作502处开始。
在操作502处,存取(举例来说,由图2的处理模块204)与存储装置相关联的计算机文件系统中的FAT。所述FAT包含对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址。在操作504处,读取(举例来说,由处理模块204)来自多个群集地址当中的一群集地址以识别来自多个群集当中的下一群集的位置。通过多个位而配置所述群集地址。在实施例中,读取来自所述多个位当中的一或多个位以确定签名值的存在。所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配。操作502及504如参考图4中的方法400的操作402及404所阐释而执行,且本文中为简洁起见,不再阐释。
在操作506处,确定签名值是否存在于一或多个位中。在实施例中,一或多个位对应于来自与群集地址相关联的多个位当中的最高有效位。在实施例中,基于由来自配置群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定签名值的存在。举例来说,符合FAT32文件系统的群集地址中的所保留最高有效位经配置以形成表示非零值的预先指定的位配置,举例来说,如0001或1111的任一位配置,所述非零值表示指示文件与相连群集相关联的签名值的存在。
如果在操作506处,确定签名值存在于一或多个位中,那么在操作508处,通过将在所述群集地址之后的四个连续群集地址中的每一者中的四个最高有效位连结起来而产生指示分配到文件的所述组相连群集中的相连群集的数目的16位值。16位值的产生可如参考图2、3A及3B所阐释而执行。应理解,本文中出于图解目的而提及16位值的产生,且代替如参考图2、3A及3B所阐释的16位值,还可产生28位值。在操作510处,基于依据所产生16位值的相连群集的所确定数目而从存储装置读取分配到文件的所述组相连群集。
在操作512处,确定是否读取来自与文件相关联的多个群集当中的所有群集。更明确地说,在操作512处,在读取分配到文件的相连群集之后,确定与文件相关联的任何群集是否仍未读取。如果确定来自所述多个群集当中存在未读取群集,那么在操作516处,从FAT读取(举例来说,由处理模块204)对应于文件的下一群集地址的一或多个位。在于516处读取下一群集地址的一或多个位后,在操作506处,即刻确定签名值是否存在于一或多个位中。如果确定存在签名值,那么重复操作508、510、512及516。如果在操作506处,确定不存在签名值,那么在操作518处,读取对应于下一群集地址的下一群集。在读取下一群集后,执行操作512以查核是否读取来自多个群集当中的所有群集。重复操作506到518直到从存储装置读取对应于文件的所有群集为止。如果在操作512处,确定读取来自多个群集当中的所有群集,那么推断从存储装置的文件存取将在操作514处完成。
图6是根据实施例的实例集成电路602的框图。在实施例中,图2的系统200至少部分地以集成电路602的形式体现。集成电路602包含收发器模块604、存储模块606、处理模块608及显示模块610。收发器模块604、存储模块606、处理模块608及显示模块610使用数据路径612彼此以通信方式相关联或耦合。因此,注意,下文结合集成电路602所描述的组件中的至少一些组件可是任选的,且因此在实例实施例中,与结合图6的实例实施例所描述的组件相比,集成电路602包含较多组件、较少组件或不同组件。在实施例中,集成电路602可包含仅存储模块606及处理模块608。
收发器模块604经配置以用于接收例如文本内容、图形内容、音频/可视内容等等的内容的内容资源614通信。内容资源614的实例包含但不限于:(1)远程多媒体系统;(2)媒体捕获装置,举例来说,例如相机、摄录像机等等;及(3)多媒体存储装置,举例来说,例如磁带、磁盘、计算机可读媒体等等。在实施例中,收发器模块604可包含天线及/或网络连接器,所述天线及/或网络连接器经配置以与有线网络(举例来说,局域网络(LAN))及无线网络(举例来说,蜂窝式网络)或其组合(举例来说,因特网)耦合或者连接到有线网络(举例来说,局域网络(LAN))及无线网络(举例来说,蜂窝式网络)或其组合(举例来说,因特网)。
存储模块606经配置以存储例如文本内容、图形内容、音频/可视内容等等的文件内容。在实施例中,存储模块606实质上类似于图2的系统200的存储装置202。存储模块606经配置以执行如图2中参考存储装置202所论述的功能,本文中为简洁起见,不再重复所述功能。存储模块606的实例包含但不限于RAM、双端口RAM、SDRAM、DDR SDRAM等等。
处理模块608经配置以促进对存储于存储模块606中的文件的存取。在实施例中,处理模块608经配置以促进对文件的存取并将所存取文件提供到显示模块610以用于显示目的。在实施例中,处理模块608实质上类似于图2的系统200的处理模块204。处理模块608经配置以执行如图2中所论述的功能,本文中为简洁起见,不再重复所述功能。
显示模块610经配置以促进所存取文件在显示器616上的显示。举例来说,响应于使用用户接口(图6中未展示)所接收的用户输入而促进显示器616。显示器616的实例包含液晶显示器(LCD)面板、等离子显示面板、场发射显示器等等。
在实施例中,集成电路602是应用处理器芯片。在实施例中,集成电路602是嵌入多媒体系统内的特定或共享处理器芯片的一部分。多媒体系统的实例包含但不限于:(1)多媒体装置,举例来说,例如蜂窝式电话、数字摄像机及数字摄录像机;(2)数据处理装置,举例来说,例如个人计算机、膝上型计算机及个人数字助理。
在不以任何方式限制下文出现的权利要求书的范围、解释或应用的情况下,本文中所揭示的实例实施例中的一或多者的优点包含在不需要参考FAT条目进行来回切换的情况下通过促进对分配到文件的相连群集的读取而改进文件读取性能。此对于能够一次读取安置于多个群集上的大量数据的文件读取机械布置可是尤其有用的(举例来说,在其中存储装置202体现为硬盘驱动器的实例中,对群集的读取可与磁盘片的旋转对准以一次捕获大量数据)。在来回切换以读取FAT条目可实质上使文件读取性能降级的情况下,文件读取性能的改进对于大文件(如多媒体文件(举例来说,视频文件))可是尤其重要的。尽管微软的ExFat文件系统利用流扩展目录条目用于相连群集读取,然而,此些机构仅限于ExFAT文件系统且不适用于FAT文件系统,例如FAT32文件系统。此外,利用流扩展目录条目的机构对于仅相连地读取在初始文件写入操作期间相连地写入且此后未修改的那些文件可是有用的。更明确地说,此些机构对于在初始文件写入操作之后附加的文件显现为无用的。因此,然而,本发明技术的各种实施例提供能够在消除复杂性的同时克服这些及其它障碍并提供额外益处(例如针对FAT文件系统(例如FAT32文件系统)的经改进文件读取性能)的用于存取存储于存储装置中的文件的方法、系统及计算机可读媒体。
注意,本文中在图1到6中参考FAT文件系统(例如FAT32文件系统)阐释对分配到文件的相连群集的读取,其中利用群集地址中的所保留四个最高有效位来存储指示文件中的相连群集的存在的签名值。应理解,最高有效四个位的此用途限于FAT32文件系统。在其中分别使用FAT条目的完整12个位及16个位来表示文件/目录的群集数目的FAT12及FAT16文件系统中,可使用文件/目录的32个字节目录条目结构的“DIR_NTRes”字段(经保留供由WindowsTM NT使用)来指示相连群集分配。注意,尽管FAT规格指示此字段是保留的且推荐此字段中的值0,但Windows NT、XP及此类操作系统的较高版本使用此字段来维持在显示“短文件名”(SFN)时英语字母的大小写敏感性及在搜索SFN时的大小写不敏感性。如果SFN的名称部分的全部8个字符呈小写字母,那么DIR_NTRes字段的第4个位将设定为值1。类似地,如果SFN的扩展部分的全部3个字符是小写字母,那么DIR_NTRes字段的第5个位将设定为1。文件/目录的32个字节目录条目的DIR_NTRes字段的除第4个位及第5个位以外的位可用于指示对到文件的相连群集分配的分配。DIR_NTRes的除第4个位及第5个位以外的位的使用也适用于FAT32文件系统。文件/目录的32个字节目录条目结构中的字段“DIR_FstClusHI”(举例来说,文件/目录的第一群集数目的高字组)的最高有效4个位还可用于指示对到FAT12、FAT16及FAT32文件系统中的文件的相连群集分配的分配。只要文件的所有群集以一个相连系列进行分配,用于指示相连群集分配的32字节目录条目结构的字段“DIR_NTRes”及“DIR_FstClusHI”的位的使用便可高效地起作用。如果存在分配到单个文件的相连群集的多个不连贯群组,那么FAT条目的最高有效4个位的使用指示针对每个群集群组的相连群集的数目。
尽管已参考特定实例实施例描述了本发明技术,但注意,在不背离本发明技术的宽广精神及范围的情况下可对这些实施例做出各种修改及改变。举例来说,可使用硬件电路(举例来说,基于互补金属氧化物半导体(CMOS)的逻辑电路)、固件、软件及/或硬件、固件及/或软件(举例来说,体现于机器可读媒体中)的任何组合来启用及操作本文中所描述的各种装置、模块、分析器、产生器等。举例来说,可使用晶体管、逻辑门及电路(举例来说,专用集成电路(ASIC)电路及/或呈数字信号处理器(DSP)电路)来体现各种电结构及方法。
明确地说,可使用软件及/或使用晶体管、逻辑门及电路(举例来说,例如ASIC电路的集成电路电路)来启用系统200、存储装置202及处理模块204。本发明的各种实施例可包含存储或以其它方式体现于计算机可读媒体上的一或多个计算机程序,其中计算机程序经配置以致使处理器或计算机执行一或多个操作。以计算机程序或类似语言存储、体现或编码的计算机可读媒体可体现为存储经配置以致使处理器或计算机执行一或多个操作的一或多个软件程序的有形数据存储装置。举例来说,此些操作可为本文中所描述的步骤或操作中的任一者。在一些实施例中,计算机程序可使用任何类型的非暂时性计算机可读媒体来存储且提供到计算机。非暂时性计算机可读媒体包含任何类型的有形存储媒体。非暂时性计算机可读媒体的实例包含磁性存储媒体(例如软盘、磁带、硬盘驱动器等)、光学磁性存储媒体(例如磁光盘)、CD-ROM(光盘只读存储器)、CD-R(可录光盘)、CD-R/W(可重写光盘)、DVD(数字通用光盘)、BD(蓝光(注册商标)光盘)及半导体存储器(例如掩模型ROM、PROM(可编程ROM)、EPROM(可擦除PROM)、快闪ROM、RAM(随机存取存储器)等)。另外,有形数据存储装置可体现为一或多个易失性存储器装置、一或多个非易失性存储器装置及/或一或多个易失性存储器装置及非易失性存储器装置的组合。在一些实施例中,计算机程序可使用任何类型的暂时性计算机可读媒体提供到计算机。暂时性计算机可读媒体的实例包含电信号、光学信号及电磁波。暂时性计算机可读媒体可经由有线通信线路(例如电线及光纤)或无线通信线路将程序提供到计算机。
同样,在不背离本发明技术的范围的情况下,各种实施例中所描述及所图解说明为离散或单独的技术、装置、子系统及方法可与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此直接耦合或通信的其它项可经由某一接口或装置而耦合,使得所述项可不再视为彼此直接耦合,但仍可彼此间接耦合及通信,无论是以电方式、以机械方式或以其它方式。在不背离本发明技术的精神及范围的情况下可做出所属领域的技术人员在学习本文中所揭示的实例实施例后可发现的改变、替代及更改的其它实例。
应注意,本说明书通篇中所提及的特征、优点或类似语言并不暗示所有特征及优点应在或在任一单个实施例中。而是,应将提及所述特征及优点的语言理解为意指结合实施例所描述的特定特征、优点或特性可包括于本发明技术的至少一个实施例中。因此,在本说明书通篇中对所述特征及优点的论述以及类似语言可(但未必)是指同一实施例。
如上文所论述的本发明的各种实施例可借助呈不同次序的步骤及/或操作及/或借助呈不同于所揭示的那些配置的配置的硬件元件而实践。因此,尽管所述技术已基于这些实例实施例而描述,但注意,某些修改、变化及替代构造可显而易见且恰好在所述技术的精神及范围内。尽管本文中以结构特征及/或方法动作特有的语言描述本发明技术的各种实例实施例,但所附权利要求书中所定义的标的物未必限于上文所描述的特定特征或动作。而是,上文所描述的特定特征及动作是作为实施权利要求书的实例形式而揭示。
Claims (20)
1.一种文件存取方法,其包括:
存取与存储装置相关联的计算机文件系统中的文件分配表FAT,所述FAT包括对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址;
读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置,通过多个位而配置所述群集地址,其中读取来自所述多个位当中的一或多个位以确定签名值的存在,且所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配;
基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目,基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目;以及
基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
2.根据权利要求1所述的方法,其中所述计算机文件系统是FAT32文件系统,且其中来自所述多个群集地址当中的每一群集地址包括32个位。
3.根据权利要求2所述的方法,其中基于由来自配置所述群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定所述签名值的所述存在。
4.根据权利要求1所述的方法,其中连续群集地址的所述预定数目为四个,且其中基于在所述群集地址之后的四个群集地址而计算相连群集的所述数目。
5.根据权利要求4所述的方法,其进一步包括:将与所述四个群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到所述文件的相连群集的所述数目的16位值。
6.根据权利要求1所述的方法,其中连续群集地址的所述预定数目为七个,且其中基于在所述群集地址之后的七个群集地址而计算相连群集的所述数目。
7.根据权利要求6所述的方法,其进一步包括:将与所述七个连续群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到所述文件的相连群集的所述数目的28位值。
8.根据权利要求1所述的方法,其进一步包括:基于相连群集的所述所计算数目而确定与所述组相连群集相关联的结束群集以便促进对分配到所述文件的所述相连群集的读取。
9.根据权利要求1所述的方法,其进一步包括:从所述FAT读取一或多个群集地址以用于识别在所述组相连群集后面的群集,其中针对对所述一或多个群集地址的每一读取而确定所述签名值的存在以便识别对来自分配到所述文件的所述多个群集中的其余群集当中的另一组相连群集的分配。
10.根据权利要求9所述的方法,其进一步包括:
确定是否修改分配到所述文件的所述多个群集;以及
如果确定修改分配到所述文件的所述多个群集,那么更新一或多个签名值及相连群集的对应数目。
11.一种文件存取系统,其包括:
存储装置,其经配置以存储多个文件;以及
处理模块,其与所述存储装置以通信方式相关联,所述处理模块经配置以通过以下方式存取来自所述多个文件当中的一文件:
存取与所述存储装置相关联的计算机文件系统中的文件分配表FAT,所述FAT包括对应于分配到存储于所述存储装置中的所述文件的多个群集的多个群集地址;
读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置,通过多个位而配置所述群集地址,其中读取来自所述多个位当中的一或多个位以确定签名值的存在,且所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配;
基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目,基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目;以及
基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
12.根据权利要求11所述的系统,其中所述计算机文件系统是FAT32文件系统,且其中来自所述多个群集地址当中的每一群集地址包括32个位。
13.根据权利要求12所述的系统,其中所述签名值的所述存在是基于由来自配置所述群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定。
14.根据权利要求11所述的系统,其中连续群集地址的所述预定数目为四个,且其中所述处理模块进一步经配置以将与所述四个连续群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到所述文件的相连群集的所述数目的16位值。
15.根据权利要求11所述的系统,其中连续群集地址的所述预定数目为七个,且其中所述处理模块进一步经配置以将与所述七个连续群集地址中的每一者相关联的四个最高有效位连结起来以产生指示分配到所述文件的相连群集的所述数目的28位值。
16.一种非暂时性计算机可读媒体,其存储在执行时致使计算机执行文件存取方法的一组指令,所述方法包括:
存取与存储装置相关联的计算机文件系统中的文件分配表FAT,所述FAT包括对应于分配到存储于所述存储装置中的文件的多个群集的多个群集地址;
读取来自所述多个群集地址当中的一群集地址以识别来自所述多个群集当中的下一群集的位置,通过多个位而配置所述群集地址,其中读取来自所述多个位当中的一或多个位以确定签名值的存在,且所述签名值的所述存在指示对来自所述多个群集当中的一组相连群集的分配;
基于所述签名值存在于所述群集地址中的所述确定而计算所述组相连群集中的相连群集的数目,基于在所述群集地址之后的连续群集地址的预定数目而计算相连群集的所述数目;以及
基于相连群集的所述所计算数目而从所述存储装置读取所述组相连群集。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述计算机文件系统是FAT32文件系统,且其中来自所述多个群集地址当中的每一群集地址包括32个位。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述签名值的所述存在是基于由来自配置所述群集地址的32个位当中的四个最高有效位形成的预先指定的位配置而确定。
19.根据权利要求16所述的非暂时性计算机可读媒体,其中连续群集地址的所述预定数目为四个,且其中与所述四个连续群集地址中的每一者相关联的四个最高有效位被连结起来以产生指示分配到所述文件的相连群集的所述数目的16位值。
20.根据权利要求16所述的非暂时性计算机可读媒体,其中连续群集地址的所述预定数目为七个,且其中与所述七个连续群集地址中的每一者相关联的四个最高有效位被连结起来以产生指示分配到所述文件的相连群集的所述数目的28位值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910556434.2A CN110334057B (zh) | 2013-11-08 | 2014-11-06 | 文件存取方法及其系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/075,757 US9569447B2 (en) | 2013-11-08 | 2013-11-08 | File access method and system thereof |
US14/075,757 | 2013-11-08 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910556434.2A Division CN110334057B (zh) | 2013-11-08 | 2014-11-06 | 文件存取方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636079A true CN104636079A (zh) | 2015-05-20 |
CN104636079B CN104636079B (zh) | 2019-07-19 |
Family
ID=53044741
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910556434.2A Active CN110334057B (zh) | 2013-11-08 | 2014-11-06 | 文件存取方法及其系统 |
CN201410641772.3A Active CN104636079B (zh) | 2013-11-08 | 2014-11-06 | 文件存取方法及其系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910556434.2A Active CN110334057B (zh) | 2013-11-08 | 2014-11-06 | 文件存取方法及其系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9569447B2 (zh) |
CN (2) | CN110334057B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967265A (zh) * | 2016-10-18 | 2018-04-27 | 华为技术有限公司 | 文件的访问方法、数据服务器和文件访问系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144515B2 (en) * | 2019-05-30 | 2021-10-12 | Microsoft Technology Licensing, Llc | Efficient clustered persistence |
US11216417B2 (en) * | 2019-12-09 | 2022-01-04 | Open Text Holdings, Inc. | Systems and methods for scaling beyond maximum number of unique object identifiers in single content repository |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715455A (en) * | 1995-05-18 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for storing file allocation table efficiently in memory |
CN101027651A (zh) * | 2004-07-21 | 2007-08-29 | 桑迪士克股份有限公司 | 最佳顺序性簇管理的fat分析 |
US7350049B1 (en) * | 2005-09-13 | 2008-03-25 | Vimicro Corporation | Method and apparatus for managing access to a file allocation table |
CN100517268C (zh) * | 2004-04-20 | 2009-07-22 | 松下电器产业株式会社 | 非易失性存储系统、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法 |
US20130179626A1 (en) * | 2012-01-06 | 2013-07-11 | Phison Electronics Corp. | Data processing method, memory controller and memory storage apparatus |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100877448B1 (ko) * | 2004-04-20 | 2009-01-09 | 파나소닉 주식회사 | 비휘발성 기억 시스템 |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7478217B2 (en) * | 2006-04-07 | 2009-01-13 | Mediatek Inc. | Method of storing both large and small files in a data storage device and data storage device thereof |
US9021229B2 (en) * | 2010-04-14 | 2015-04-28 | International Business Machines Corporation | Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity |
CN102025503B (zh) * | 2010-11-04 | 2014-04-16 | 曙光云计算技术有限公司 | 一种集群环境下数据安全实现方法和一种高安全性的集群 |
US8954656B2 (en) * | 2012-12-20 | 2015-02-10 | Sandisk Technologies Inc. | Method and system for reducing mapping table size in a storage device |
-
2013
- 2013-11-08 US US14/075,757 patent/US9569447B2/en active Active
-
2014
- 2014-11-06 CN CN201910556434.2A patent/CN110334057B/zh active Active
- 2014-11-06 CN CN201410641772.3A patent/CN104636079B/zh active Active
-
2017
- 2017-01-23 US US15/413,048 patent/US9817837B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715455A (en) * | 1995-05-18 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for storing file allocation table efficiently in memory |
CN100517268C (zh) * | 2004-04-20 | 2009-07-22 | 松下电器产业株式会社 | 非易失性存储系统、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法 |
CN101027651A (zh) * | 2004-07-21 | 2007-08-29 | 桑迪士克股份有限公司 | 最佳顺序性簇管理的fat分析 |
US7350049B1 (en) * | 2005-09-13 | 2008-03-25 | Vimicro Corporation | Method and apparatus for managing access to a file allocation table |
US20130179626A1 (en) * | 2012-01-06 | 2013-07-11 | Phison Electronics Corp. | Data processing method, memory controller and memory storage apparatus |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967265A (zh) * | 2016-10-18 | 2018-04-27 | 华为技术有限公司 | 文件的访问方法、数据服务器和文件访问系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150134711A1 (en) | 2015-05-14 |
CN110334057A (zh) | 2019-10-15 |
US9569447B2 (en) | 2017-02-14 |
CN104636079B (zh) | 2019-07-19 |
US20170132240A1 (en) | 2017-05-11 |
US9817837B2 (en) | 2017-11-14 |
CN110334057B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947489B2 (en) | Creating snapshots of a storage volume in a distributed storage system | |
USRE49875E1 (en) | Memory system having high data transfer efficiency and host controller | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US8838875B2 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US20130060999A1 (en) | System and method for increasing read and write speeds of hybrid storage unit | |
JP2018518733A (ja) | ファイル操作方法及び装置 | |
JP2013137771A (ja) | データ利用についてのマウント時間の調停 | |
CN111737221B (zh) | 集群文件系统的数据读写方法、装置及设备和存储介质 | |
TWI710905B (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
KR20150057068A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN108664577B (zh) | 一种基于flash空闲区的文件管理方法及系统 | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN104636079A (zh) | 文件存取方法及其系统 | |
CN107430546B (zh) | 一种文件更新方法及存储设备 | |
CN113835639A (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
US20190073270A1 (en) | Creating Snapshots Of A Storage Volume In A Distributed Storage System | |
KR20190117294A (ko) | 전자 장치 및 그의 제어방법 | |
US9535796B2 (en) | Method, apparatus and computer for data operation | |
US8977814B1 (en) | Information lifecycle management for binding content | |
US20100274828A1 (en) | Electronic Device, Storage Area Allocation Method for File System, and Computer Product | |
US11221985B2 (en) | Metadata space efficient snapshot operation in page storage | |
CN109684334A (zh) | 键值对存储系统的数据存储方法、装置、设备和存储介质 | |
US10572382B2 (en) | Method of operating data storage device and method of operating data processing system including the same | |
US20110106861A1 (en) | Interface Techniques Providing Contiguous Storage For Files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |