直接海量存储设备文件索引的制作方法

文档序号:6478086阅读:203来源:国知局
专利名称:直接海量存储设备文件索引的制作方法
直接海量存储设备文件索引 背景 对海量存储容量的用户需求持续增长,尤其是对存储大音频、视频、图像、以及多 媒体文件的用户需求。此容量需求影响了硬盘和诸如CD(压縮盘)和DVD(数字多功能盘) 等可移动介质的设计和开发。存储技术进一步演化以满足对越来越大的容量和更灵活的能 力的用户需求。此类技术的示例包括压縮和便携海量存储设备。海量存储设备是一类用于 将数据存储在巻中的设备,可使用运行在例如诸如通用串行总线("USB")或IEEE-1394(电 气和电子工程师协会)等高速外部总线上的数据传输协议来与其它设备和资源共享巻。
虽然某些海量设备将固态存储器用作存储介质,较大容量的便携海量存储设备通 常使用小尺寸硬盘驱动器,通常可通过USB或IEEE-1394数据电缆本身而不使用单独的电 源线来向该硬盘驱动器供电。这些基于盘的海量存储设备可因此使用紧凑形状因数为用户 提供即插即用的便利,同时提供用于包括例如图片和音乐库的多媒体的非常大量存储。
海量存储设备通常以文件的形式来存储数据,文件是使用文件系统来组织的。 FAT(文件分配表)文件系统是用于基于盘的海量存储设备的一个常用的文件系统。FAT文 件系统源自1970年代晚期和1980年代早期,且是为微软MS-DOS操作系统支持的文件系 统。其最初被开发为适用于大小少于500K(千字节)的软盘驱动器的简单文件系统。随 着时间流逝,其被增强以支持越来越大的介质。当前,存在三种FAT文件系统类型FAT12、 FAT16、以及FAT32。这些FAT子类型中的基本差别以及这些名称的原因是盘上的实际FAT 结构中的条目以比特为单位的大小。在FAT12 FAT条目中存在12比特,在FAT16 FAT条目 中存在16比特,且在FAT32 FAT条目中存在32比特。 FAT文件系统特征在于文件分配表("FAT"),它是真实驻留在巻的保留部分中的 表。为保护该巻,保存FAT的两个副本以防一个被损坏。还将FAT表和根目录存储在固定 位置以便可正确地定位系统的引导文件。 虽然FAT文件系统在许多应用程序中执行良好,但是它具有某些固有限制。具体
而言,对FAT目录结构不存在组织,且文件和目录被写入到盘上最先空出的位置。结果,用
于文件和目录的簇可随机分布在盘上在逻辑上彼此不接近的位置中。访问数据以枚举巻的
内容的文件索引可能是不合需要的费时的,因为随着硬盘驱动器读/写头读取相关簇,硬
盘驱动器读写头必须不断来回移动到盘上的不同磁道并从盘上的不同磁道移动。 提供本背景来介绍以下概述和详细描述的简要上下文。本背景不旨在帮助确定所
要求保护的主题的范围,也不旨在被看作将所要求保护的主题限于解决以上所提出的问题
或缺点中的任一个或全部的实现。 概述 用于枚举存储在基于外部硬盘驱动器的海量存储设备上的诸如包括音乐的媒体 内容等数据的安排由媒体内容处理系统提供,该系统实现直接海量存储设备文件索引进 程。该文件索引进程被配置成寻找海量存储设备上的所有文件和目录,并通读文件中包含 关于文件的元数据(诸如专辑名、艺术家名字、流派、音轨标题、音轨号等)的那些部分。
媒体内容处理系统的使用通过最小化海量存储设备的硬盘驱动器中的读/写头在读取来自盘的数据时的物理移动的量来减少文件枚举时间。通过以顺序方式从硬盘读取 目录和文件数据的簇而不是通过随机执行此类读取操作来实现此运动最小化。媒体内容处 理系统将其必须处理的簇的位置的磁道保留在工作列表(即,请求队列)中。通过选择与 硬盘驱动器读/写头的当前物理位置下一最接近的簇来处理请求队列中的项目。如果需要 其它簇来处理项目,则这些簇被添加到请求队列并在之后被处理,例如在直接海量存储索 引进程的后续迭代中被处理。 提供本发明内容是为了以简化的形式介绍将在以下具体实施方式
中进一步描述 的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。
附图描述

图1是示出使用被分成磁道、扇区、以及簇的低层格式化的说明性硬盘的简化图;
图2示出其中以随机次序访问硬盘上的簇的簇读取操作的说明性序列;
图3示出其中使用位于车辆上的媒体内容处理系统来枚举被包含在海量存储设 备上的文件和目录的说明性环境; 图4示出用于图3中示出的媒体内容处理系统的分层体系结构; 图5是用于处理被包含在海量存储设备上的文件和目录的说明性方法的流程以及 图6示出其中顺序访问硬盘上的簇的簇读取操作的说明性序列。
各附图中的相同的附图标记指示相同的元素。
详细描述 图1是示出使用被分成磁道105、扇区112、以及簇115以支持FAT文件系统的低 层格式化的说明性硬盘100的简化图。海量存储设备("MSD")中的硬盘驱动器可使用以 堆叠配置安排的多个硬盘(或"盘片")。如图1所示,按同心圆配置磁道105且每一磁道 105包括多个扇区112。使用多条磁道105,其中数量取决于使用硬盘100来实现的存储巻 的大小。每一扇区有512字节。 簇115包括数量范围从2到128个扇区的集合。簇大小随着硬盘100的大小而增 加,因为FAT受限于其可跟踪的簇的数量。因此,通过增加每个簇的扇区的数量来在FAT中 支持较大的巻。 一个簇是由对硬盘100的任何读或写操作使用的最小空间。虽然簇115在 图1中被示为是邻接的,但是与给定文件或目录相关联的簇不需要邻接地位于硬盘100上。
硬盘100的各部分被分配用于FAT文件系统引导扇区、一个或多个FAT表、巻的根 目录、以及用于文件和目录的数据区域。在创建文件时,在FAT表中创建一条目且建立包含 数据的第一簇数量。此FAT表中的条目或者指示这是该文件的最后一个簇,或指向下一簇。 如果文件或目录的大小大于簇大小,则分配多个簇。 图2是示出在枚举文件和目录时发生的簇读取操作的说明性序列200的图示。在 序列200中,使用现有的FAT文件枚举方法来以随机次序在硬盘IOO(图1)上访问簇。在 此示例中,将若干目录(名为目录1、目录2以及目录3)、以及若干文件存储在硬盘100上。 这些文件是根据作为用于音乐的通用标准的MP3 (运动图像专家组、MPEG-1、音频层-3)编 码的音乐文件。目录1包括具有足够跨两个簇的大小的文件1. mp3,也包括被存储在单个簇 中的文件2.mp3。根目录包括将在盘上存储在三个簇中的文件1.mp3。
因为文件和目录在硬盘100上被写入到第一可用簇,所以按如图2所示的随机方 式来访问存储这样的文件和目录的簇。在使用FAT32文件系统来扫描硬盘100以例如枚举 其内容时,查阅该盘上的引导扇区来定位如标号210-1所示的根目录。硬盘驱动器的读/ 写头随后移动到根目录中标识的位置以访问目录l,如参考标号210-2所示。读/写头随后 前进至在目录1中标识的位置以访问用于存储音乐文件文件1.mp3的第一簇的簇210-3。
为定位文件1. mp3的下一部分,读/写头移动以查阅硬盘100上的FAT表,并随后 移动到所标识的簇以访问如图所示的210-4。查阅目录条目和/或FAT表并随后移动到所 标识的簇的过程重复以访问剩余目录、子目录、以及文件,该重复继续直到枚举了硬盘驱动 器上的所有内容。因为硬盘驱动器的读/写头必须不断地在驱动器的盘片上移动以到达 FAT表的位置,并到达存储文件和目录的簇,所以在使用当前FAT文件系统方法进行巻的内 容的枚举期间会发生大量延迟。 图3示出其中使用采用本发明的直接MSD文件索引的媒体内容处理系统来枚举包 含在MSD 310上的文件和目录的说明性环境300。在此示例中,环境300是其中用户采用 MSD 310来存储媒体内容的汽车环境,媒体内容包括用户期望通过位于车辆321中的声音/ 娱乐系统316和扬声器319呈现(即,播放)的音乐。然而,要强调的是,环境300仅是说 明性的,且本发明的直接MSD文件索引不限于汽车应用或音乐文件。还可以构想,直接MSD 文件索引的好处可应用于在各种不同应用和实现中使用FAT文件系统存储在MSD上的任何 类型的内容(例如,诸如照片和视频等数据和其它媒体内容)。 在此示例中,MSD 310是被配置成紧凑和便携且还被安排作FAT32文件系统下的 巻的常规的基于硬盘驱动器的设备。使用携带遵从USB 2. 0的信号的USB电缆325将MSD 310耦合到车辆321中的声音/娱乐系统316,尽管在替换实现中,还可利用包括例如使用 无线或光学基础结构的那些其它数据传输总线和协议。 媒体内容处理系统332也可用于环境300中。在此示例中,媒体内容处理系统332 是车辆321中的离散系统,且通常位于仪表板或控制台区域后面,然而如具体实现的情形 所指示地,还可利用其它位置。媒体内容处理系统332被配置成可通过接口 (未示出)连 接到声音/娱乐系统316,或其可任选地在某些应用中按照常见包装或形状因素与由声音/ 娱乐系统316提供的功能集成。媒体内容处理系统332在图4中详细示出并在以下附图文 字中描述。 如图4所示,媒体处理系统332包括分层体系结构,该分层体系结构包括媒体播放 器406、媒体核心411、以及文件索引处理层415。在此说明性示例中,通过展示包括存储在 MSD 310上的诸如音乐等媒体内容的数据的文件索引来安排媒体播放器406提供用户界面 ("UI")功能。因此,例如,在用户将MSD 310插入到声音/娱乐系统316中时,媒体播放 器406用于在屏幕或其它UI设备上显示的索引列表中按索引列表提供MSD 310上的音乐 的枚举,用户可从索引列表中浏览并选择要播放的项目。 安排媒体核心411解析从在文件索引处理层415中操作的进程接收到的文件和/ 或目录数据,从而如参考标号418和422分别所示地通过回调和返回消息来执行文件枚举。 可任选地安排媒体核心411提供其它特征和功能,包括例如媒体内容解码、呈现、以及某些 实现中的回放控制。 文件索引处理层415包括直接MSD文件索引进程430,其如图所示地与媒体核心411交互,且还与FAT表高速缓存432和请求队列435交互。在此说明性示例中,如参考标 号437所示,直接MSD文件索引进程430还被配置成从MSD 310中读取使用USB协议发送 的数据。 只要从硬盘100 (图1)读取FAT表数据,就使用FAT表高速缓存432来高速缓存 FAT表数据。由于感兴趣的数据的下一所需FAT表查询将被包括在任何最近读取的FAT表 数据中的可能性,执行该高速缓存。高速缓存此类数据可减少读/写头必须移回以查阅硬 盘上的FAT表的需求,这可有利地减少文件枚举中的延迟。 FAT表高速缓存432和请求队列435在系统存储器439 (例如,易失性随机存取存 储器或"RAM")中实现。FAT表高速缓存432与直接MSD文件索引进程430之间的交互包括 如参考标号440所示地高速缓存FAT表数据,以及如参考标号442所示地从高速缓存读取 FAT表数据。请求队列435与直接MSD文件索引进程430之间的交互包括如参考标号445 所示地将请求项目保存在队列中,以及如参考标号448所示地从队列中读取请求项目。直 接MSD文件索引进程430的操作在图5中的流程图中示出并在附图文字中描述。
图5是由媒体内容处理系统332执行以处理包含在海量存储设备310上的文件和 目录的说明性方法500的流程图。在框505,该方法在根目录处开始。在框512,在目录(例 如,硬盘100上的根目录或目录)中读取条目以标识文件或子目录。 在框516,直接MSD文件索引进程430向调用者(即,媒体核心411)通知从框512 处的方法步骤查明的新数据。控制传递到判定框520,其中调用者决定其是否对新数据感兴 趣。例如,文件扩展名可以是说明性环境300中使用的特定类型,如MP3、 WMA( Windows Media Audio, Windows⑧媒体音频)、或WAV(波形音频格式)文件。在此情况下随后,不 会对与非音频格式或文件扩展名相关联的数据感兴趣。 调用者可能对数据不感兴趣的另一示例是其中已经定位了足够的文件部分以标 识感兴趣的具体元数据,将使用该元数据来枚举所存储的内容并创建文件索引。通常,且在 此说明性示例中,感兴趣的元数据涉及音乐且包括专辑名、艺术家名、流派、音轨(例如,歌 曲)标题、音轨号等。因此,如果已经定位了所有元数据,则即使在一项目是之前被标识为 感兴趣的文件的逻辑部分时,调用者也将不需要继续该项目。虽然文件的此类逻辑部分会 是回放内容所需的,但是它们不是枚举目的所需的且可因此被跳过。 如果调用者对该数据感兴趣,则控制传递到判定框523,其中直接MSD文件索引进 程430确定是否读取了整个目录或文件。如果未读取,则如框526所示,在请求队列435中 保存或更新一项目。如果调用者不对该数据感兴趣,则控制传递到框530,且项目不被添加, 或者从请求队列中被移除。 控制从框526或框530传递到判定框534,其中直接MSD文件索引进程430确定在 请求队列435中是否存在任何项目。如果是,则控制传递到判定框538,其中直接MSD文件 索引进程430确定请求队列435中的项目的数量是否少于低水位(即,下限)。如果是,则 在判定框542,如果在请求队列435中存在任何目录项目,则控制返回到框512,其中读取与 请求队列435中的该目录项目相关联的下一子目录或文件。使用低水位来将请求队列435 中的项目的设定最小数量指定在对处理队列项目是高效的数量之上。 如果在请求队列435中不存在目录项目,则控制传递到框545,其中读取与请求队 列435中的该文件项目相关联的下一数据簇。
7
如果项目的数量不低于低水位,则控制传递到框547。如果请求队列435中的项目 的数量大于高水位(即,上限),则控制传递到框550。如果在请求队列435中不存在文件 项目,则控制返回到框512,其中读取与请求队列435中的该目录项目相关联的下一子目录 或文件。 如果在请求队列435中存在文件项目,则控制传递到框545,其中读取与请求队列 435中的该文件项目相关联的下一数据簇。如果请求队列435中的项目的数量小于高水位, 则控制传递到框552,其中请求队列435中拥有下一最接近簇的文件项目被找到。在判定框 554,如果请求队列435中的项目是文件,则控制传递到框545,其中读取与请求队列435中 的该文件项目相关联的下一数据簇。如果该下一项目不是文件(即,它是目录),则控制返 回到框512,其中读取与请求队列435中的该目录项目相关联的下一子目录或文件。可取决
于具体实现的需求将高水位配置成不同值,且通常将根据诸如系统存储器等可用资源来确 定高水位的大小。 连续迭代上述方法,直到在框534在请求队列435中不再存在剩余项目时,该方法 在框560结束。 图6示出其中使用图5中示出且在附图文字中描述的方法顺序访问硬盘100 (图 1)上的簇的簇读取操作的说明性序列600。这些簇与如图2所示的相同目录和文件相关联。 如图6所示,顺序地读取簇以最小化硬盘100上的读/写头的移动,这有利地减少了文件索 引中的延迟。 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权 利要求书中定义的主题不必限于上述特定特征或动作。相反,上述具体特征和动作是作为 实现权利要求的示例形式公开的。
权利要求
一种可由媒体内容处理系统(332)执行以枚举存储在使用FAT格式化的MSD卷(310)上的媒体内容的方法,所述方法包括以下步骤在存储器(439)中实现请求队列(435)以供由运行在媒体内容处理系统(332)上的文件索引进程(430)使用;读取(512)包含所述媒体内容的目录或文件数据的簇,执行所述读取以使得簇从MSD卷中被顺序地读取;通过以下步骤来跟踪所述簇的位置(a)将请求项目与所述簇相关联、(b)将所述请求项目保存(526)在所述请求队列(435)中、(c)将所述请求项目与所述请求队列的长度的上限(547)进行比较,所述上限指示包含与给定目录或文件相关联的元数据的所有簇已经被读取、以及(d)将所述请求项目与所述请求队列的长度的下限(538)进行比较,所述下限指示并非所有包含与给定目录或文件相关联的元数据的簇已经被读取;以及迭代地执行对来自MSD卷(310)的簇的读取和跟踪直到达到所述上限,且随后解析所述目录或数据以生成所述媒体内容的文件索引。
2. 如权利要求l所述的方法,其特征在于,包括将FAT表(432)高速缓存在所述存储器 (439)并从所述被高速缓存的FAT表中读取数据的步骤。
3. 如权利要求1所述的方法,其特征在于,所述元数据与音频文件相关联并包括专辑 名、艺术家名字、流派、音轨标题、或音轨号之一。
4. 一种包含指令的计算机可读介质,所述指令在由设置在电子设备中的一个或多个处 理器执行时执行一种用于创建存储在MSD巻(310)上的数据的文件索引的方法,所述方法 包括以下步骤通过文件扩展名标识存储在所述MSD巻(310)上的可索引文件(512) 使用通过所述MSD巻(310)的多个轮次以顺序方式从所述MSD巻(310)中迭代地访问与所标识的文件相关联的簇(545);检查簇(520)以确定所述簇是否包含为所标识的文件在所述文件索引中创建条目的足够的元数据;如果所述簇包含足够的元数据,则从所述簇传递用于所标识的文件的可解析数据以供 包括在所述文件索引中;如果所述簇不包含足够的元数据,则将所述簇的工作项目存储在所述设备的系统存储 器中的队列(526)中以指示需要一个或多个额外簇以允许传递用于所标识的文件的可解 析数据;以及使用所述可解析数据来生成所述文件索引。
5. 如权利要求4所述的计算机可读介质,其特征在于,所述文件扩展名与音频文件相 关联。
6. —种用于处理存储在使用FAT格式化的巻(310)上的内容的系统,其包括 支持用于高速缓存FAT表数据、且用于对与所述巻上的文件或目录的部分相关联的请求项目排队的索引进程的文件索引处理层(415),所述排队的请求项目用于高速缓存用于 生成所述经处理的内容的文件索引的数据;有效耦合到所述媒体处理层(415)并被安排接收来自所述文件索引处理层(415)的回 调通知(418)的媒体核心层(411),由所述文件索引处理层向在媒体核心层(411)中操作的调用者标识目录数据或文件数据;有效耦合到所述文件索引处理层(415)以实现FAT表高速缓存(432)并实现被安排成 对所述请求项目排队的请求项目队列(435)的存储器(439);以及用于读取存储在所述巻(310)上的内容(437)的接口。
7. 如权利要求6所述的系统,其特征在于,所述接口包括从USB或IEEE-1394中之一中 选择的高速数据接口。
8. 如权利要求6所述的系统,其特征在于,所述接口使用从无线基础结构或光学基础 结构中之一选择的通信基础结构。
9. 如权利要求6所述的系统,其特征在于,所述媒体核心层(411)还被安排成呈现从所 述巻(310)读取的内容。
10. 如权利要求6所述的系统,其特征在于,还包括被安排成展示可向最终用户显示所 述文件索引的用户界面的媒体播放器层(406)。
11. 如权利要求10所述的系统,其特征在于,媒体播放器层(406)还被安排成展示所述 最终用户可通过其选择所述文件索引中的项目的用户界面。
12. 如权利要求6所述的系统,其特征在于,还包括用于提供可在车辆环境中使用的娱 乐子系统的音频和视频处理的功能。
13. 如权利要求6所述的系统,其特征在于,所述巻(310)在MSD中实现。
14. 如权利要求13所述的系统,其特征在于,所述MSD是硬盘驱动器型的MSD。
15. 如权利要求6所述的系统,其特征在于,迭代地执行用于对请求项目排队的过程直 到从所述巻(310)中读取了所有内容。
16. 如权利要求6所述的系统,其特征在于,以将队列长度维持在上限与下限之间的方 式来执行用于对请求项目排队的过程。
17. 如权利要求6所述的系统,其特征在于,存储在所述巻(310)上的内容是媒体内容。
18. 如权利要求17所述的系统,其特征在于,对文件的处理在与所述媒体内容相关联 的预先确定的元数据的定位时终止。
19. 如权利要求18所述的系统,其特征在于,从音轨标题、音轨号、艺术家名字、专辑 名、或流派中之一选择所述元数据。
20. 如权利要求6所述的系统,其特征在于,所述巻(301)上的文件或目录的部分按簇 存储在所述巻(310)上。
全文摘要
用于枚举存储在基于外部硬盘驱动器的海量存储设备上的诸如包括音乐的媒体内容等数据的安排由媒体内容处理系统提供,该系统实现直接海量存储设备文件索引进程。该文件索引进程被配置成寻找海量存储设备上的所有文件和目录,并通读文件中包含关于文件的元数据(诸如专辑名、艺术家名字、流派、音轨标题、音轨号等)的那些部分。媒体内容处理系统的使用通过最小化海量存储设备所使用的硬盘驱动器中的读/写头的物理移动的量来减少文件枚举时间。通过在硬盘上以顺序方式读取目录和文件数据的簇而不是通过随机执行此类读取操作来达成此运动最小化。
文档编号G06F12/00GK101779244SQ200880103480
公开日2010年7月14日 申请日期2008年8月20日 优先权日2007年8月24日
发明者C·亨德里克森, J·怀特霍恩, Y·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1