CN101799785A - 信息处理设备、信息处理方法和程序 - Google Patents
信息处理设备、信息处理方法和程序 Download PDFInfo
- Publication number
- CN101799785A CN101799785A CN201010117009A CN201010117009A CN101799785A CN 101799785 A CN101799785 A CN 101799785A CN 201010117009 A CN201010117009 A CN 201010117009A CN 201010117009 A CN201010117009 A CN 201010117009A CN 101799785 A CN101799785 A CN 101799785A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- bunch
- memory storage
- read
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
公开了信息处理设备、信息处理方法和程序。所述信息处理设备包括:控制器,其通过将用于读取记录到数据可记录介质的数据的请求输出到具有所述介质的存储装置来读取数据。所述控制器通过使用与记录至所述介质的数据对应的文件系统管理信息,生成并向所述存储装置输出如下这样的位映射数据:该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。
Description
技术领域
本发明涉及信息处理设备、信息处理方法和其程序。更具体而言,本发明涉及执行处理以读取例如记录在存储装置中的数据的信息处理设备、信息处理方法和程序。
背景技术
近来,存储装置用作诸如个人计算机(PC)、相机和PDA之类的设备的数据存储部件。存储装置经由诸如USB(通用串行总线)或SATA(串行ATA)之类的接口(I/F)而连接至PC、相机、PDA或类似的主机,并且利用主机传输数据。
例如,当主机从存储装置读取数据时,按照主机和存储装置之间的标准(如ATAPI(ATA附加分组接口)或SCSI(小型计算机系统接口))所规定的那样来使用Read(读取)命令。
在下文中,将使用SCSI标准的READ(10)命令的示例性情况描述为现有技术中主机和存储装置之间的典型数据传输处理的一个示例。图1图示SCSI标准的SBC-2(SCSI块命令-2)中的READ(10)命令的格式。如图1中所示,READ(10)命令具有由字节0到9组成的10字节结构。
第0字节是操作码字段,第2到第5字节是逻辑块地址字段(在下文中也称为LBA字段),并且第7到第8字节是传输长度字段。这里,从描述中省略了与本发明无关的字段。
操作码字段表示命令的标识符。在本示例中,操作码是28h,其指示当前命令是READ(10)。LBA字段存储主机所请求的数据的起始的逻辑块地址(LBA)。存储装置读取由命令所指定的逻辑块地址(LBA)以及其后序列地址上的数据,并且将数据连续传输至主机。传输长度字段存储主机所请求的数据的总传输长度。READ(10)中传输长度的单元是逻辑块。例如,如果一个块是512字节,那么单个单元变为512字节,乘以512字节的传输长度产生以字节为单元的数据传输长度。
当主机请求存储装置使用READ(10)命令读取数据时,主机首先存储READ(10)命令内的操作码、逻辑块地址(LBA)和传输长度的各个参数,然后将命令传输至存储装置。一旦接收到发送自主机的命令,存储装置通过参考该命令的操作码字段来确定当前命令是READ(10)命令。接下来,存储装置以从LBA字段所指示的逻辑块地址开始的地址次序,依次读取数据,并将数据发送给主机。存储装置发送具有传输长度字段所指示的长度的数据,然后终止数据传输。以上由此概述了关于READ(10)命令的数据传输方法。
同时,主机所请求的数据可能分散在存储装置的各逻辑块地址(LBA)当中。现在参考图2,将通过示例来描述代表性文件系统FAT(文件分配表)的情况下的数据存储示例。图2图示了所存储的数据与已根据存储装置管理的存储器所设置的逻辑块地址之间的关系。
如图2所示,在FAT文件系统中,单个文件可能分散在多个逻辑块地址当中,并且可能不能以顺序的逻辑块地址的方式来排列数据。在图2所示的示例中,构成文件A的实际数据分散在区域1、2和3当中。该状态称作文件碎片。用于文件B的实际数据存储在区域4中。
另外,当主机请求存储装置读取多个文件时,所请求的数据可能分散在不同的逻辑块地址当中,并且可能不能以顺序的逻辑块地址的方式排列数据。在这些情况下,主机通过针对与所分散的数据对应的每一逻辑块地址将各个读取命令发送至存储装置,来获取所期望的数据。
在存储装置上以分散的方式存储数据导致主机和存储装置之间的数据传输速度的降低。现在将参考图3描述上述的原因。图3图示主机从存储装置读取数据的情况下的序列。
图3所示的序列图图示读取文件A的情况下的处理序列,其中所述文件A被划分和记录至图2所示的区域1到3。首先,在步骤S11,主机将读取命令发送至存储装置,请求读取图2所示的区域1。一旦接收到该命令,在步骤S12,存储装置从LBA(逻辑块地址)字段获取主机所请求的逻辑块地址,并且开始读取逻辑块地址所指定的数据(或换言之,区域1中的数据)。随后,在步骤S13,存储装置将从区域1读取的数据连续地传输至主机。
在完全接收了所请求的区域1中的数据之后,在步骤S14,主机将读取命令发送给存储装置,请求读取下一区域2。一旦接收到该命令,在步骤S15,存储装置开始读取区域2中的数据,并且在步骤S16,将从区域2读取的数据连续地传输至主机。
此外,在完全接收了所请求的区域2中的数据之后,在步骤S17,主机将读取命令发送给存储装置,请求读取下一区域3。一旦接收到该命令,在步骤S18,存储装置开始读取区域3中的数据,并且在步骤S19,将从区域3读取的数据连续地传输至主机。
以此方式,针对构成整个存储区域中的一部分(其存储待读取的文件)的多个分散区域中的每一分散区域,由主机生成并发送利用对应于各个存储区域的逻辑块地址所设置的单独的读取命令。存储装置同样地针对来自主机的多个命令中的每一个命令,从各个区域中读取数据,并且以所读取的数据来连续地应答主机。在此情况下,在对于给定读取命令的最后数据传送的结束与下一读取命令的到达之间的时间期间,存储装置不执行任何处理。换言之,产生了浪费时间。图3所示的时段A和B对应于这样的浪费时间。
此外,一旦从主机接收到下一读取命令,存储装置首先获知主机所请求的逻辑块地址,且仅在此时才实际开始读取介质。为此,在刚接收到命令后,数据未返回到主机。这成为数据传输速度降低的另一原因。
进而,针对每一分散的逻辑块地址发送单独的读取命令这一事实意味着:针对每一发送的命令而在存储装置中重复用于接收命令并分析其内容的处理。这种处理花费时间。另外,例如在管理常规命令的交换的网络传输层中也进行用于通告存储装置的状态的数据传输,诸如对于USB仅大容量传输(bulk-only transport)。此处理成为数据传输速度降低的另一原因。
现在将描述公开了针对以上所给出的数据传输速率降低的对策的现有技术。首先,日本待审专利申请公开No.2006-277737公开了利用FAT(文件分配表)文件系统中的文件管理信息的配置。该文件管理信息中所说明的是关于记录了构成单个文件的数据的逻辑块地址(LBA)的簇链(cluster chain)信息。所公开的配置利用了该信息。
换言之,通过参考文件管理信息中的LBA簇链信息,存储装置的控制器预先获取与已经以分散方式记录的文件的多个单独的分散位置对应的逻辑块地址。应用该所获取的信息,控制器预测在上一次从主机接收到读取命令中的逻辑地址之后,主机要请求的数据的逻辑块地址。通过该处理,进行了高效的读取操作。
然而,该方法的问题在于:没有办法保证存储装置中预测的地址是正确的地址。换言之,主机可能突然开始读取分离的文件,在这种情况下,不使用存储装置中预测的地址。当以此方式预测失败时,中断由存储装置对于介质的读取,并且在正确的逻辑块地址上重新开始介质读取。由此存在的问题在于:当出现上述情况时,显著地延迟了(而非改善了)直到主机的数据获取为止的时间。
另外,由于日本待审专利申请公开No.2006-277737中给出的用于预测逻辑块地址的方法包括:根据与文件系统管理信息中分散的逻辑地址有关的汇聚信息(convergence)进行预测,因此,存在的缺陷在于:该方法对于针对多个文件的读取命令来说并不是高效的。
同时,日本待审专利申请公开No.2006-210226公开了利用扩展读取命令的方法,其中,在单个命令的CDB(命令描述块)内指定多个逻辑块地址和传输长度。通过这么做,仅用一个命令发送了伪多个读取命令(pseudo-plurality of Read commands)。
利用该方法,存储装置能够预先批量获知与主机请求的数据对应的多个逻辑块地址。然而,当实施方案遵循早先给出的代表性命令标准(如ATAPI和SCSI)或者各种传输层协议中的任何一个协议时,同时可指定的逻辑块地址的数目和传输长度受到限制。例如,在USB仅大容量传输中,最大的命令长度是16字节。如果不遵循这些标准,那么实施方案变为独立的标准。由于主机的装置驱动层是独立实施的,因此上述方法的缺陷在于:在主机应用开发中折衷了通用性。
此外,日本待审专利申请公开No.2008-210226中的配置的缺陷还在于该方法包括:当存在以一个命令发送的大量逻辑块地址(LBA)和数据传输长度时,保证用于将命令数据保存在存储装置中的大量存储器。例如,发送了10000个逻辑块地址和数据传输长度且单个LBA为8字节的架构包括:保证用于在存储装置中接收和存储80000字节的存储区域。这对于常规的嵌入式装置来说是不现实的。结果,在发送上述扩展读取命令之前将其划分若干次。因此,上述方法存在的缺陷在于:降低所发出命令的数量的优点仅仅是弱高效的。
发明内容
考虑到通过上述示例所述的问题,期望提供在主机和存储装置之间实现更高效数据传输的信息处理设备、信息处理方法和程序。
根据本发明第一实施例的信息处理设备包括:控制器,其被配置为通过将用于读取记录到数据可记录介质的数据的请求输出到具有所述数据可记录介质的存储装置来读取数据。所述控制器使用与记录至所述介质的数据对应的文件系统管理信息,生成并向所述存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。
在本发明的另一实施例中,所述控制器使用所述文件系统管理信息生成:关于被记录文件的第一簇编号列表,其是为记录至所述介质的所有文件记录了起始数据的第一簇编号的列表;以及关于被读取文件的第一簇编号列表,其是为计划要读取的所选文件记录了起始数据的第一簇编号的列表。所述控制器通过将关于被记录文件的所述第一簇编号列表中的每一项和关于被读取文件的所述第一簇编号列表中的那些进行交叉校验,来生成所述位映射数据。
在本发明的另一实施例中,所述控制器通过设置关于位映射数据的首标信息,生成传送数据并将其输出至所述存储装置,所述首标信息包含用于确定所述位映射数据的有效性的信息。
在本发明的另一实施例中,通过应用以FAT(文件分配表)形式的文件系统管理信息以及目录项,所述控制器生成位映射数据。
在本发明的另一实施例中,所述控制器执行将用于读取数据的单个命令发送给所述存储装置的处理,由此所述控制器从所述存储装置中获取关于由所述位映射数据标识的一个或多个文件的被读取数据。
根据本发明另一实施例的存储装置包括:介质,在其上记录数据;以及控制器,其被配置为关于所述介质写入或读取数据。所述控制器从主机接收位映射数据,该位映射数据使得所述控制器能够在记录了所述主机请求的被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。所述控制器通过应用接收到的位映射数据和文件系统管理信息来分析记录了所述被读取文件的簇,来读取文件。
根据本发明另一实施例的信息处理系统包括:主机,其被配置为使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;以及存储装置,其被配置为从所述主机接收位映射数据,并且通过应用接收到的位映射数据和文件系统管理信息来分析记录了所述被读取文件的簇,来读取文件。
根据本发明另一实施例的信息处理方法是在处理信息设备中执行的,且包括以下步骤:使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;将用于读取记录至所述介质的数据的请求输出至所述存储装置;以及从所述存储装置依次接收关于由所述位映射数据标识的被读取文件的所有数据。
根据本发明另一实施例的程序使得在信息处理设备中执行信息处理,其包含以下步骤:使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;将用于读取记录至所述介质的数据的请求输出至所述存储装置;以及从所述存储装置依次接收关于由所述位映射数据标识的被读取文件的所有数据。
应该理解,例如,可以将根据本发明实施例的程序提供给能够执行各种程序代码的信息处理设备或计算机系统,可通过提供计算机可读格式的程序的存储介质或通信介质来提供该程序。通过这么做,在信息处理设备或计算机系统上实现了根据所述程序的处理。
当结合附图阅读示例性实施例的以下详细描述时,本发明的进一步特征和优点将变得显而易见。在本说明书中,系统指代多个设备的逻辑组件,而不限于容纳于单个物理单元中的各个设备。
根据本发明的实施例,主机利用与存储装置的介质中记录的数据对应的文件系统管理信息。利用该信息,主机创建并向存储装置输出如下这样的位映射数据:其位映射数据使得所述存储装置能够在记录了读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。存储装置分析位映射数据,确定所请求的文件和对应的簇,从介质读取构成文件的数据,并且将读取数据提供给主机。这种配置使得可以在主机不重复发送命令的情况下读取和传输多个文件。
附图说明
图1是说明SCSI标准的SBC-2(SCSI块命令-2)中的READ(10)命令的格式的图;
图2是说明使用FAT(文件分配表)文件系统情况下的数据存储示例的图;
图3是说明在现有技术的数据读取处理中主机和存储装置之间的数据处理序列的图;
图4是说明作为根据本发明实施例的信息处理设备的示例而在此给出的数码相机的示例性配置的图。
图5A是说明根据FAT16格式化的数据结构的图;
图5B是说明根据FAT32格式化的数据结构的图;
图6A是说明主引导记录(MBR)的数据结构的图;
图6B是说明分区表的数据结构的图;
图7是说明目录项的信息结构的图;
图8是说明典型文件分配表(FAT)的示例性数据结构的图;
图9是说明将文件写入至存储装置的介质的示例的图;
图10是说明被记录文件的第一簇编号列表的示例性数据结构的图;
图11是说明被读取文件的第一簇编号列表的示例性数据结构的图;
图12是说明位映射数据的示例性数据结构的图;
图13是说明存储位映射数据的位映射数据传送数据的示例性数据结构的图;
图14是说明由主机执行的处理序列的流程图;
图15是说明由存储装置执行的处理序列的流程图;以及
图16是说明在主机和存储装置之间执行的通信处理顺序的顺序图。
具体实施方式
在下文中,将参考附图详细描述根据本发明实施例的信息处理设备、信息处理方法和程序。
在下文中,将依次描述关于本发明实施例的下列主题。
(1)作为根据本发明实施例的信息处理设备的示例而给出的数码相机的示例性配置
(2)文件系统管理信息的概述
(3)本发明实施例中用于数据传输的信息(诸如,位映像数据)的描述
(4)主机和存储装置执行的处理序列
(1)作为根据本发明实施例的信息处理设备的示例而给出的数码相机的示例性配置
根据本发明实施例的信息处理设备关于存储装置读取和写入数据,并且其可以是(例如)数码相机、PC或PDA。首先将参考图4描述数码相机的示例性配置。这里将数码相机作为根据本发明实施例的信息处理设备的示例给出。
如图4所示,根据本发明实施例的信息处理设备(即,数码相机)100包括相机单元110、相机DSP(数字信号处理器)120、接口(I/F)140和控制器150。另外,信息处理设备100配备有用户接口160、LCD(液晶显示器)控制器170、对应于显示器和取景器的LCD 181和182、外部接口(外部I/F)190和内部存储器195。存储装置(如存储卡)145也经由接口140连接,并且用作所拍摄图像的存储部件。
如图4所示,相机单元110配备有光学块111、CCD(电荷耦合器件)112、预处理器电路113、光学块驱动器114、CCD驱动器115和定时发生器电路116。这里,光学块111包括诸如对焦、快门和光圈机构之类的元件。
控制器150是由经由系统总线155连接的CPU(中央处理单元)151、闪速ROM(只读存储器)153和时钟电路154组成的微处理器。控制器150控制设备的各种组件。闪速ROM 153存储诸如由CPU 151执行的各种程序之类的信息以及用于处理的数据。时钟电路154能够提供当前日期、工作日和时间,同时还提供诸如拍摄日期和时间之类的信息。
内部存储器195由RAM(随机存取存储器)实现,并且其用作应用于所拍摄图像数据的列表显示的图像数据的存储区域。
在拍摄图像的时候,光学块驱动器114响应于来自控制器150的控制而进行工作,并且生成使得光学块111进行工作的驱动信号。将该信号提供给光学块111,并且使得光学块111进行工作。响应于来自光学块驱动器114的驱动信号来控制光学块111的对焦、快门和光圈机构,使得光学块111获取被提供至CCD 112的被摄体图像。
CCD 112将来自光学块111的图像进行光电转换并且进行输出。响应于来自CCD驱动器115的驱动信号进行工作的CCD 112从光学块111获取被摄体图像,并且基于来自控制器150所控制的定时发生器电路116的定时信号,CCD 112将所获取的被摄体图像(即,图像信息)作为电信号提供给预处理器电路113。
这里,定时发生器电路116响应于来自控制器150的控制,形成以预定定时提供的定时信号。另外,基于来自定时发生器电路116的定时信号,CCD驱动器115形成提供给CCD 112的驱动信号。
预处理器电路113使所提供的电信号中的图像信息经历:CDS(相关双采样)处理,以保持良好的S/N比;AGC(自动增益控制)处理,以控制增益;以及A/D(模拟/数字)转换,以创建数字信号形式的图像数据。
将预处理器电路113中被表示为数字信号的图像数据提供给DSP 120。DSP 120关于所提供的图像数据执行各种相机信号处理,诸如,AF(自动对焦)、AE(自动曝光)和AWB(自动白平衡)。然后将根据这些各种调节得到的图像数据按照预定的压缩格式进行压缩,经由系统总线155和I/F 140将其提供给存储装置145,并且将其作为文件记录在存储设备145中。存储装置145包括记录介质(如闪存、光学介质或硬盘),同时还包括控制器,该控制器解译(interpret)来自(主机)控制器150的命令,并且控制将数据记录到介质或者从介质读取数据。
响应于经由用户接口160接收到的用户输入而读出在存储装置145中记录的图像数据。用户接口160由诸如触摸板或控制键之类的元件组成。经由I/F 140从存储装置145输出所读取的图像数据,并经由(主机)控制器150将其提供至DSP 120。
DSP 120对读取自存储装置145并经由I/F 140提供的压缩图像数据进行解压缩。然后经由系统总线155将解压缩的图像数据提供给LCD控制器170。LCD控制器170根据所提供的图像数据,创建要提供给LCD 181和182的图像信号。通过这么做,将基于存储装置145中记录的图像数据的图像显示在LCD 181和182的显示屏幕上。
另外,图4所示的信息处理设备(即,相机)可以经由(例如)外部I/F 190而连接至外部个人计算机。然后,信息处理设备100可以从个人计算机接收图像数据,并且将该图像数据记录至信息处理设备100中所加载的存储装置145。可替代地,可以将加载到信息处理设备的存储装置145中所记录的图像数据提供给外部个人计算机。
另外,通过将通信模块连接至外部I/F 190,信息处理设备可以连接至网络(如,因特网),经由网络获取各种图像数据或其它信息,并且将这些信息记录至加载在其中的存储装置145。可替代地,可以经由网络将加载到信息处理设备的存储装置145中所记录的数据传送给目标接收方。
对于已经经由外部个人计算机或网络获取并记录至存储装置的图像数据或其它信息来说,还可以对其进行读取、回放以及将其显示在LCD 181和182上,以便于用户浏览。
这里,可以将I/F 190其提供为有线接口(如IEEE(电气和电子工程协会)1394或USB(通用串行总线)),或者提供为以光或无线电波实现的无线接口。换言之,I/F 190可以是有线或无线接口。
在图4所示的数码相机100中,作为(主机)控制器150基于通过拍摄(即,图像获取)或音频拾取所获得的数据进行的处理的结果,可以生成AV文件。然后,可以将由此生成的AV文件输出并记录到存储装置145内的介质。存储装置145内的介质例如可以是HDD、各种光盘介质中的一种或者半导体存储装置。主机150和存储装置145经由I/F 140执行数据传输,结果,读取并记录了数据。如之前所述,存储装置145包括控制器(尽管未在附图中示出)。存储装置145中的控制器对来自控制器150的命令进行解译,并且基于此解译后的命令,执行数据的读取和写入。
根据信息处理设备使用的文件系统所规定的格式来管理存储装置145内的介质中存储的文件。在下文描述的实施例中,取出记录至存储装置145的数据,以便使用FAT文件系统进行管理。
(2)文件系统管理信息的概述
现在将描述文件系统管理信息。当读取记录至存储装置的介质的数据时,根据本发明实施例的信息处理设备的主机使用与记录至介质的数据对应的文件系统管理信息,以便生成位映射数据。然后,使用位映射数据来读取数据。位映射数据使得存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。稍后将给出关于位映射数据的更多细节。
在下文中,将描述用于生成位映射数据的文件系统管理信息。文件系统管理信息是用于记录至介质的数据的管理信息。还将文件系统管理信息记录至介质的局部区域。文件系统管理信息可以包括诸如FAT(文件分配表)和目录项之类的信息。
例如,在数码相机、PC或其它信息处理设备中,可以将信息记录至诸如闪存、光盘或硬盘之类的介质中。在这些情况下,关于被记录数据文件的管理信息(如FAT(文件分配表))进行处理。
FAT包含若干版本,诸如FAT 16和FAT 32。这些文件系统管理记录至介质(即,信息记录介质)的每一数据文件的记录位置信息、簇链信息和类似信息。例如,Microsoft Extensible Firmware Initiative FAT 32文件系统规范中描述了FAT 16和FAT 32的细节。
现在将参考图5A和图5B,描述根据FAT 16和FAT 32而格式化的数据结构。图5A图示了根据FAT 16的格式,而图5B图示了根据FAT 32的格式。
如图5A所示,在FAT 16的数据结构中,开始于第一扇区(LBA=0),记录主引导记录(MBR)和分区引导记录(PBR),其后依次是文件分配表1(FAT1)、文件分配表2(FAT2)和目录项。此后将多个簇设置为数据区域。
如图5B所示,在FAT 32的数据结构中,开始于第一扇区(LBA=0),记录主引导记录(MBR)、分区引导记录(PBR)和文件系统信息(FSinfo),其后依次是文件分配表1(FAT1)和文件分配表2(FAT2)。此后将多个簇设置为数据区域。
如图6A所示,主引导记录(MBR)为每一分区保存引导信息和分区信息(或换言之,含有起始地址和大小信息的分区表)。在图5A和5B所示的FAT16和FAT32数据结构中,通过示例仅示出了单个分区,但可以通过将介质细分为多个分区来管理硬盘或其它记录介质。在这种情况下,如图6A所示,将分区表设置为含有多个分区中的每一分区的起始地址和大小信息。
在引导时,首先从MBR的引导码区域中读取引导码(即,程序)。如此读取的MBR引导码参考紧接在图6A所示的引导码之后形成的分区表区域中的分区表,并且读取目标分区的引导扇区信息。通过该引导扇区码(即,程序),开启了OS(操作系统)。
文件系统被配置为使得可以设置多个分区表(如四个)。如之前所述,每一分区表保存指示各个分区区域的位置(即,起始地址)和大小(即,分区大小)的信息,所述各个分区区域例如是通过将硬盘的可记录区域进行细分而形成的。在每一分区表之后的两个字节(0E,0F)中,分配了用于该分区表的签名。
图6B图示了16字节(128位)分区表的数据结构。从第0字节到第7字节的8个字节区域是在指定CHS格式的地址时使用的信息存储区域。从第8字节到第15字节的8个字节区域是在指定LBA格式的地址时使用的信息存储区域。
在CHS格式中,一组三个参数(柱面、磁头和扇区)用于指定记录介质(即,硬盘)上的地址(即,位置)。在LBA格式中,为硬盘的可记录区域上的每一个可存取单元块(如单个扇区)分配块地址(即,逻辑地址)。块地址例如可以是从0开始的规则的编号序列。通过指定这种编号,指定了硬盘的可记录区域上的地址(即,位置)。
如图6B中所示,以CHS格式存取时使用的信息存储区域包括下列部分。第0字节是用于活动标志信息(下文中将其简称为标志信息)的存储区域。从第1字节到第3字节的三个字节区域是用于以CHS格式存取时使用的起始扇区信息的存储区域。第4字节是用于分区类型信息(下文中将其简称为类型信息)的存储区域。从第5字节到第7字节的3个字节区域是用于以CHS格式存取时使用的结束扇区信息的存储区域。
同样如图6B所示,以LBA格式存取时使用的信息存储区域包括下列部分。从第8字节到第11字节的4个字节区域是用于LBA格式中使用的起始扇区信息的存储区域。从第12字节到第15字节的4个字节区域是用于LBA格式中使用的分区大小的存储区域。
CHS格式直接使用硬盘的物理架构,并且软件处理由于具有用于指定地址的三个参数(柱面、磁头和扇区)而变得复杂。相比之下,在LBA格式中,使用单个参数(块地址)来指定地址。为此,在存取时指定地址非常简单。从而,LBA已成为流行的硬盘寻址方案,并且存在越来越大数量的能够以LBA格式指定地址的其它记录介质,例如,诸如已广泛用作可拆卸介质的各种存储卡。
对于记录至信息记录介质的每一文件,设置文件管理信息(如,文件名和记录日期)。图7图示了目录项的信息结构,该目录项包含为每一文件创建的文件管理信息,并存储在为每一分区提供的目录中。当在分区内创建文件时,该目录项是根据所创建的文件而在目录中创建的文件管理信息。目录项管理与所创建文件有关的详细信息。
如图7所示,表示对应于各个文件的文件管理信息的目录项配备有下列字段:名称(即,文件名)字段、扩展字段、属性字段、保留字段、创建(时间)字段、创建(日期)字段、存取(日期)字段、关于指定第一簇编号(高)的信息的字段、修改(时间)字段、修改(日期)字段、关于指定第一簇编号(低)的信息的字段以及文件大小字段。上述字段中的每一个管理对应的信息,或换言之,文件名、扩展、属性、创建时间、创建日期、修改日期、第一簇编号(高)、修改时间、修改日期、第一簇编号(低)以及文件大小。通过使用该目录项中的信息,可以管理文件名所指定的文件,并且可以确定诸如下列这样的信息:(1)文件具有什么属性;(2)第一簇在什么地方;(3)文件为多大;(4)文件何时创建;(5)上次存取文件的时间;(6)文件中的数据何时被修改。
第一簇编号是用于以簇为单位指定文件的记录数据开始的分区中的数据区域的存储区域。换种方式来说,如果已经以簇为单位将分区的数据区域进行细分,那么第一簇编号指示存储区域的序列中的哪个存储区域对应于文件的记录数据的起始。此外,在本示例中,如图7所示,通过将第一簇编号划分为2字节高编号和2字节低编号来对第一簇编号进行管理。
如图5A和5B所示,簇是指在用于以FAT管理数据的数据区域中包括的最小单元。簇是多个扇区的组,并且对于单个文件来说其为记录的最小单元。单个簇是n个扇区的集合(在硬盘的情况下,扇区大小为512字节),其中,n为1,2,4,...,64或128。由于扇区是硬盘的最小单元,所以扇区对于用作管理文件的单元来说太小,且因此使用了含有多个扇区的单元区域(即,簇)。通过这么做,简化了文件管理。簇的实际大小在FAT 16的情况下为32千字节,而在FAT 32的情况下为4千字节。
在图5A和5B所示的FAT数据结构中,参考图6A所述的主引导记录(MBR)之后是含有关于分区而设置的引导码的分区引导记录。其后,存储文件分配表1(FAT1)和文件分配表2(FAT 2)。
文件分配表2(FAT 2)用作存储文件分配表1(FAT1)的备份。换言之,文件分配表2(FAT2)存储文件分配表1(FAT1)中数据的副本。
现在将参考图8,描述典型的文件分配表(FAT)的示例性数据结构。文件分配表(FAT)是管理记录至介质(即,信息记录介质)的每一数据文件的记录位置信息和簇链信息的表。
如之前所述,将构成每一个数据文件的数据记录至跨越一个或多个簇分散的信息记录介质中。文件分配表(FAT)存储簇链信息,该信息指示存储构成每一文件的数据的簇的簇编号。
图8所述的FAT已被分割为两个段。双线所指示的项目是索引,其中数据项指示下列簇编号:
[0x00000000]到[0x0000000F];
[0x00000010]到[0x0000001F];
[0x00000020]到[0x0000002F];以及
[0x00000030]到[0x0000003F]。虽然从图8所示的表中省略了,但是上面所示的前缀[0x]指示将随后八位从0~F的数字值所示的簇编号表示为十六进制。
在存储文件构成数据(file-constitut ing data)的一部分的每一簇编号的位置上,记录了存储文件构成数据的下一部分的簇编号。在最后的簇编号的位置上,记录了码[0x0FFFFFFF],其表示EOF(文件的结束)。如参考图7所述那样,将第一簇编号记录在每一文件的目录项中。
例如,假设将下列第一簇编号记录在各个文件的目录项中。
第一个文件:0x00000007
第二个文件:0x0000000A
第三个文件:0x0000001B
第四个文件:0x0000002C
由于第一个文件的第一簇编号是[0x00000007],因此首先读取具有簇编号[0x00000007]的簇,并且获得第一个文件的起始数据。可以基于图8所示FAT中的簇编号[0x00000007]的位置上记录的信息,来确定记录构成第一个文件的数据的下一部分的簇编号。在图8所示的FAT中簇编号[0x00000007]的位置上,记录了簇编号[0x00000008]。因此,确定[0x00000008]是记录构成第一个文件的数据的下一部分的簇编号,并且从具有簇编号[0x00000008]的簇中读取数据。
此外,记录构成第一个文件的数据的下一部分的簇编号本身被记录在图8所示的FAT中的簇编号[0x00000008]的位置上。在图8所示的FAT中的簇编号[0x 00000008]的位置上,记录了簇编号[0x00000009]。由此确定[0x00000009]是记录构成第一个文件的数据的下一部分的簇编号,并且从具有簇编号[0x00000009]的簇中读取数据。随后,当参考FAT中的簇编号[0x00000009]的位置上记录的信息以便获取记录文件构成数据的下一部分的簇编号时,发现与EOF(文件的结束)对应的代码[0x0FFFFFFF]被记录在其之中,由此确定不再有数据存在。
结果,确定第一个文件存储在由簇编号[0x00000007]、[0x00000008]和[0x00000009](以该次序)指定的簇中。
类似地确定第2个、第3个和第4个文件存储在由下列簇编号指定的簇中:
对于第2个文件,依次为[0x0000000A],[0x0000001F],[0x00000025],[0x00000031]和[0x00000030];
对于第3个文件,依次为[0x0000001B],[0x00000011],[0x00000012],[0x00000013],[0x00000014]和[0x00000003];以及
对于第4个文件,依次为[0x0000002C],[0x0000002D],[0x0000002E],[0x0000002F],[0x00000038],[0x00000039],[0x0000003A]和[0x0000003B]。
由此,可以从上述簇中获取各个文件的数据。
注意,图8所示的FAT是对应于FAT 32的数据示例。在FAT 32中,对应于EOF(文件的结束)的代码是[0x0FFFFFFF],而在FAT 16中,对应于EOF(文件的结束)的代码是[0xFFFF]。通过检测对应于EOF(文件的结束)的代码,可以确定文件构成数据已经结束。
以此方式,记录至介质的每一文件具有三个要素:
(a)目录项、保存信息(如文件名)、创建的日期和时间、以及文件大小;
(b)FAT,保存簇链信息;以及
(c)数据(即,实际的文件自身),以簇为单元记录。将这些要素记录至介质(如闪存或硬盘)。基于表示文件系统管理信息的目录项以及FAT,确定构成每一文件的簇,并且从其读取数据。应该理解,将上述三个要素记录至介质。
(3)本发明实施例中用于数据传输的信息(如,位映射数据)的描述
现在将描述本发明实施例中用于数据传输的信息(如,位映射数据)。
在下文描述的实施例中,将主机使用的作为读取命令的命令取为SCSI标准的READ(10)命令(下文中将其称为READ命令)。该命令的格式如之前参考图1所述的那样。将主机要读取的存储装置上的被记录文件取为碎片数据,并将其排列在介质上,如通过图9中的示例所示。
图9示出了存在于介质上的各个簇中的碎片文件的文件名。多个文件A、B、C等分散记录在各簇当中。斜体粗框文件名的簇编号(如簇5,9,11,12,...和64)表示各文件的第一簇。由于FAT文件系统的规范,构成碎片文件的数据的各簇当中的第一簇编号不限于具有最小值的簇编号,替代地,任何值都是可以的。
同时,图9中灰色所示的簇表示要由主机读取的文件(即,文件C、F、H、E、J和N)。在将READ命令发送至存储装置之前,主机创建用于指示随后要读取的文件的位映射数据。下文中将描述上述方法。
首先,主机使用READ命令来读取存储装置的介质上的整个FAT区域。通过分析每一FAT项,主机获取所有文件的第一簇编号。如在FAT规范中所述那样,FAT区域形成由与介质上的所有簇单独对应的各FAT项的集合所组成的表。通过将下一序列中的下一簇编号存储在每一FAT项中,可以将文件管理为簇单元的序列。
从而,通过分析存在于FAT区域中的所有簇链,主机能够获知存在于存储装置上的所有文件的第一簇编号。这里假设该处理产生16个第一簇编号的提取,如通过图10中的示例所示的那样。对于随后的处理,这些编号例如可以以升序排列。这里将如图10所示的以升序排列的列表称为被记录文件的第一簇编号列表。
在图10所示的被记录文件的第一簇编号列表中,设置了各个簇编号5,9,11,12等。这些簇编号对应于图9中斜体和粗框所示文件的各个第一簇编号。更具体而言,簇编号是图10右侧所示的文件B到Q的第一簇。
换言之,图10所示的被记录文件的第一簇编号列表的第一项[5]是文件B的第一簇编号。第二项[9]是文件C的第一簇编号。以此方式,图10所示的被记录文件的第一簇编号列表是记录至介质的各个文件的各自第一簇编号的、以升序排列的列表。
然而,关于图10所示的被记录文件的第一簇编号列表仅仅是这样的数据阵列:该数据阵列表示关于记录至介质的多个文件的每一簇链的第一簇编号,而不包含表示哪些特定簇编号对应于哪些文件的信息。图10右侧所示的文件名只是为了说明而给出的。由于主机从存储装置获取的数据仅仅是图10左侧所示的被记录文件的第一簇编号列表,因此,主机仅获取表示关于记录至介质的多个文件的每一簇链的第一簇编号的信息。未获取表示哪些特定簇编号对应于哪些文件的信息。
由于主机将读取关于从记录至存储装置的介质的数个文件当中选择的文件的子集的数据,因此主机随后从存储装置中获取被读取文件(即,要读取的文件)的第一簇编号。将第一簇编号存储在各个文件的目录项中,由此主机能够通过使用READ命令读取目录项来获取被读取文件的第一簇编号。
主机读取文件的这种处理类似于现有技术的数据传输处理。通过示例假设主机利用该处理要读取的文件是图11所示的六个文件(C、F、H、E、J和N),并且假设发现与各个文件对应的第一簇编号为图11所列出的那些。这里,将图11所示的列表称作被读取文件的第一簇编号列表。
然后,主机关于之前获取的、图10所示的被记录文件的第一簇编号列表,创建位映射数据。换言之,创建这样的位映射数据:其中,单个位与记录至介质的所有文件的第一簇编号的上升列表的各个项中设置的每一簇编号相关联。
按照如下那样设置被记录文件的第一簇编号列表的项中包含的每一簇编号的各个位。对于与要由主机随后读取的文件的第一簇编号对应的位来说,值为[1],而对于与其它文件的第一簇编号对应的位来说,值为[0]。换言之,位与每个第一簇编号关联,其中,在要由主机读取的文件和其它文件之间区分位值。应该理解,也可以将[1]和[0]的设置进行颠倒,并且如果这些值使得能够在要由主机读取的文件和其它文件之间进行区分,那么可以使用任何位值。
现在将参考图10所示的被记录文件的第一簇编号列表以及图11所示的被读取文件的第一簇编号列表来描述该处理。首先,图10所示的被记录文件的第一簇编号列表中的第一簇编号5与图11所示的被读取文件的第一簇编号列表中的任何第一簇编码都不匹配,因此其在位映射数据中的位取为[0]。
接下来,图10所示的被记录文件的第一簇编号列表中的第一簇编号9与图11所示的被读取文件的第一簇编号列表中的文件C的第一簇编号匹配,因此其在位映射数据中的位取为[1]。以此方式,单个位与图10所示的被记录文件的第一簇编号列表中的所有第一簇编号都关联,并且创建了位映射数据。例如,可以创建图12右侧所示那样的位映射数据。
主机还生成位映射数据传送数据,其中,为创建的位映射数据设置首标或类似信息。例如,可以生成图13所示的位映射数据传送数据(即,页面)。图13中的字节3及其后的区域是用于存储位映射数据200的位映射区域。该位映射数据与图12右侧所示的位映射数据一致。字节3中从位0至位7所表示的值对应于图12右侧所示的位映射数据的顶部起的第一至第八位值。字节4中从位0至位7所表示的值对应于图12右侧所示的位映射数据中的第九至第十六位值。
在图13所示的位映射数据传送数据中从字节0到字节2的区域是首标信息存储区域。字节0包含指示当前信息(页面)是位映射数据传送数据的码信息。字节1表示信息(页面)的数据长度。字节2表示由存储在信息(页面)中的位映射数据所指定的文件的有效性。
例如,字节2中最后一位的[1]值指示在字节3及其后中存储的位映射数据有效,而字节2中最后一位的[0]值指示位映射数据无效。
主机生成图13所示的位映射数据传送数据,并且输出至存储装置。随后,主机将READ命令输出至存储装置。
在已经从主机接收到位映射数据传输数据的情况下,存储装置使用预先从主机接收到的位映射数据传送数据作为基础,来用于选择要由期望随后从主机接收的READ命令所请求读取的文件。
在位映射数据传送数据中存储的位映射数据之后(如图12右侧所示的),存储装置选择各被读取文件并开始读取。随后,存储装置响应于从主机接收到READ命令,将被读取文件发送到主机。
由主机所创建的位映射数据具有对于与所有文件的第一簇编号对应的每一FAT项,以[0]或[1]值分别分配的位。这些位值是确定主机是否将请求数据读取的数据。由此上面描述了位映射数据的生成。
(4)主机和存储装置执行的处理序列
现在将参考图14到图16,描述主机和存储装置执行的处理序列。
首先,将参考图14所示的流程图,描述主机侧的处理序列。这里,主机将用于读取记录至数据可记录介质的数据的请求输出至具有这种介质的存储装置。由此主机与进行数据读取的控制器等同。图14所示的流程是由信息处理设备的(主机)控制器执行的处理序列。使用与记录至介质的数据对应的文件系统管理信息,(主机)控制器进行用于生成如下位映射数据的处理,该位映射数据使得能够从记录了未读取文件的起始数据的第一簇编号中区分记录了被读取文件的起始数据的第一簇编号。然后将生成的位映射数据输出至存储装置。换言之,生成了图13所示的位映射数据传送数据,并将其发送给存储装置。此外,主机通过将用于数据读取的命令(即,READ命令)发送给存储装置,从存储装置获取被读取文件。
现在将描述图14所示的流程图的每一步骤。首先,在步骤S101,主机获取文件系统管理信息(如FAT和目录项)。可以将该信息记录至(例如)存储装置所管理的介质,并且经由存储装置对其进行获取。
接下来,在步骤S102,主机分析在步骤S101获取的文件系统管理信息,获取记录至介质的各文件的第一簇编号,并且为被记录文件创建第一簇编号。例如,创建的列表可以是参考图10所述的被记录文件的第一簇编号列表。
接下来,在步骤S103,主机根据基于(例如)用户指定信息的被读取文件指定信息,为被读取文件创建第一簇编码列表。例如,创建的列表可以是参考图11所述的被读取文件的第一簇编号列表。
接下来,在步骤S104,主机使用被记录文件的第一簇编号列表和被读取文件的第一簇编号列表作为基础来创建位映射数据,然后将位映射数据发送给存储装置。
创建位映射数据以使得存储装置能够在如下的情况之间进行区分:图10所示的被记录文件的第一簇编号列表中的第一簇编号与图11所示的被读取文件的第一簇编号列表中设置的第一簇编号相匹配的情况,以及各第一簇编号不匹配的情况。例如,可以创建图12右侧所示的位映射数据。然后,主机生成图13所示的位映射数据传送数据,其中,为上面的位映射数据定义了首标信息。然后,主机将位映射数据传送数据发送给存储装置。
这里,主机可以使用任意的方法将位映射数据发送给存储装置,但是如果要使用SCSI命令,那么例如可以使用模式选择(Mode Select)命令。在SCSI标准的模式选择命令中,定义称作模式页面(Mode Page)的数据区域来用于存储各种信息,并且存储装置能够具有厂商自由定义的模式页面。因此,可以通过将位映射数据分配给一个这样的模式页面而将位映射数据发送给存储装置。例如,通过以此方式发送模式选择命令,主机能够将位映射数据发送给存储装置。
接下来,在步骤S105,主机将通过图1中的示例所示的那样的READ命令发送给存储装置。接下来,在步骤S106,依次从存储装置接收被读取文件。
在该处理中,存储装置能够基于从主机接收到的位映射数据,获取多个被读取文件的第一簇编号。为此,对于主机来说,变得可以通过仅发送用于数据读取的一个命令(即,READ命令)而从存储装置获取多个文件。
现在将参考图15所示的流程图,描述已经从主机接收到位映射数据的存储装置一侧的处理。
存储装置包括:介质,在其上记录了数据;以及控制器,其用于将数据记录至介质或从介质读取数据。控制器从主机接收位映射数据,该位映射数据使得存储装置能够在记录了被读取文件的起始数据的第一簇编号与记录了未读取文件的起始数据的第一簇编号之间进行区分。通过应用接收到的位映射数据和文件系统管理信息,控制器分析记录了被读取文件的簇并且从其之中读取文件。通过存储装置的控制器来执行图15所示的流程。现在将详细描述图15所示流程的每一步骤中的处理。
一旦从主机接收到具有图13所示结构的位映射数据传送数据,存储装置首先在步骤S201校验是否将字节2中位0的位值设置为用于指示位映射数据有效的值。例如,如果位值为[1],则存储装置可以确定位映射数据有效。如果该值例如为[0],并且存储装置确定位映射数据无效,那么处理终止,而不用进一步处理。
如果在步骤S201确定位映射数据有效,那么处理前进到步骤S202。在步骤S202,获取并分析具有图13所示结构的位映射数据传送数据中所存储的位映射数据。更具体而言,依次校验字节3和其后的位映射数据中的值是0还是1。首先,确定图13所示的字节3的8位数据中的值,从LSB开始并进行到MSB。
如果位值指示其簇编号记录在被读取文件的第一簇编号列表中(例如,如果位值为[1]),那么进行步骤S205的处理。另一方面,如果位值指示其簇编号未记录在被读取文件的第一簇编号列表中(例如,如果位值为[0]),那么处理前进到步骤S204,为检验设置下一位,并且重复步骤S203的位值确定处理。
以此方式,仅在位值指示其簇编号记录在被读取文件的第一簇编号列表中的情况下进行步骤S205的处理。在步骤S206,如果确定已经处理了整个位映射数据,那么处理终止。
在步骤S203,如果位值指示其簇编号记录在被读取文件的第一簇编号列表中,那么在步骤S205,基于当前位检索位置,为对应于位位置的文件计算第一簇编号。
现在将详细描述步骤S205的处理。首先,存储装置从LSB(将字节3的位0取为LSB)进行递增计数,以计算具有位值[1]的当前检索位的序数位置(ordinal position)。根据之前所述的示例性位映射数据生成方法,该计算值对应于从图10所示的被记录文件的第一簇编号列表的顶部起计数的项编号。
接下来,基于介质中存储的FAT,存储装置获取记录至介质的所有文件的第一簇编号。这等同于获取图10所示的被记录文件的第一簇编号列表。由于存储装置可以从介质获取FAT,因此可容易地获取所有文件的第一簇编号。对于存储器或其它部件中的存储来说,也可以预先获取这样的信息。
接下来,存储装置通过应用FAT或其它文件系统管理信息并且从位映射数据中设置有1值的位所对应的第一簇编号开始,遍历(traverse)簇链。通过这么做,存储装置获取存储文件构成数据的链式簇编号。由于可以使用规定的算法来计算簇编号和逻辑块地址两者,因此存储装置能够获得要发送给主机的数据的逻辑块地址和传输长度。
通过使用该簇链,存储装置能够获取用于读取构成单个文件的数据的簇编号。然后,所获取的簇编号用于依次读取文件构成数据并将其发送至主机。这里,可以将数据发送给主机的定时设置为从主机接收到用于数据读取的命令(即,READ命令)之后。
在步骤S205的处理之后,处理前进到步骤S206,并且确定位映射数据中的当前位检索位置是否为位映射数据中的最后的位。换言之,确定是否还有任何未处理的位。如果没有未处理的位,那么处理终止。如果存在未处理的位,那么处理前进到步骤S204,位检索位置在未处理的位的方向上移动一位,并且重复步骤S203和其后的处理。
最后,如果在步骤S206确定已经处理了整个位映射数据,那么处理终止。
如果该处理序列被跟随,那么存储装置在从主机接收到位映射数据时能够获知主机正试图读取的数据的逻辑块地址和数据传输长度。从而,在接收到位映射数据之后,存储装置能够在从主机接收到READ命令之前,预先开始读取介质。
图16图示了主机和存储装置之间的通信顺序。图16图示了当主机将位映射数据(见图13)发送给存储装置时开始的顺序。现在将描述该序列图。
在图16的步骤S301,主机将位映射数据发送给存储装置。在具有参考图13所述的结构的位映射数据传送数据中存储和发送这样的位映射数据。
一旦从主机接收到位映射数据,在步骤S302,存储装置按照图15中的流程图开始处理。更具体而言,首先校验是否将具有参考图13所述的结构的位映射数据传送数据的字节2中的位0的位值设置为指示位映射数据有效的值。
如果确定位映射数据有效,那么获取位映射数据,依次校验位值是0还是1,并且获取对应于1位的簇编号。另外,通过应用FAT来遍历簇链,获取存储相关文件的簇的位置,并且开始文件读取处理(S303)。
随后,在步骤S304,主机将READ命令发送给存储装置。
在步骤S305,响应于从主机接收到READ命令,存储装置将读取数据依次发送给主机。以连续的序列发送由位映射数据指定的所有被读取文件。
如图16中所示,在已经发送了位映射数据之后,主机发出单个READ命令,以便开始实际的数据传输。由于没有使用此时的READ命令的LBA字段中的逻辑块地址,因此,例如,可以将其值设置为0。此外,可以将READ命令中传输长度字段的值预先设置为由主机预先发送的位映射数据指定的所有文件的总数据传输长度。一旦接收到READ命令,存储装置就分析位映射数据,并且基于从其获得的逻辑块地址和数据传输长度,依次从介质读取数据并且将数据发送给主机。一旦已经传输了所有文件的数据,则终止处理。
在图16中,将从主机发送位映射数据的处理和发送READ命令的处理示出为单独的处理。然而,也可以将发送位映射数据的处理和发送READ命令的处理组合并作为单个数据传送处理执行。
同时,在存储装置执行的处理中,用于根据位映射数据计算相关文件的逻辑块地址和数据传输长度的处理可以在接收到位映射数据时完全进行,或者可以在实际的数据传输期间依次进行。如果存在许多文件要传输,那么对应地使用大量的存储器来存储逻辑块地址和数据传输长度。为此,后一方法在没有足够存储器的时候是有效的。
另外,在主机使用根据本发明实施例的数据传输方法来依次读取新文件的情况下,主机可以创建用于指定新文件的位映射数据,将该位映射数据发送给存储装置,并且通过READ命令来读取文件。
在主机使用现有技术的数据传输方法来依次读取新文件的情况下,主机可以将位映射数据发送给存储装置,附加用于指示位映射数据中的文件指定无效的信息。因此,关于之前的示例,可以通过将字节2中的位值(即,位映射数据传送数据的首标信息)设置为指示位映射数据无效的值来发送位映射数据。
如上面所述,即使在多个文件的情况下,或者文件在存储装置所管理的介质上分散的逻辑块地址当中成为碎片的情况下,根据本发明实施例的数据传输处理也使得主机能够读取期望的数据,而不重复地发送READ命令。
换言之,将位映射数据发送给存储装置,所述位映射数据是能够指定数个文件的信息。基于这样的位映射数据,存储装置能够获取多个文件的第一簇编号,且由此能够仅用一个READ命令来读取和传输分散在数个簇之间的多个文件。
以此方式,存储装置能够在从主机接收到READ命令之前,基于从主机接收到的位映射数据而从介质读取数据。结果,与现有技术的数据传输方法的数据传输速率相比,可以增大数据传输速率。
另外,由于主机可以发出单个READ命令,而不是对于每一分散的逻辑块地址发出一个命令,因此,还将用于分析命令和发送与该命令相关联的状态数据的处理降低至仅针对单个命令的负荷。结果,与现有技术的数据传输方法的数据传输速率相比,可以增大数据传输速率。
在根据本发明实施例的数据传输方法中,将指定主机试图读取的文件的信息取为位映射数据,其中,在通知存储装置时使用的数据中的信息量为每个文件1位。从而,可以使得关于该通知的数据传输量非常小。结果,与现有技术的数据传输方法的数据传输速率相比,可以增大数据传输速率。进而,通过上述,可以将与主机试图读取的文件有关的信息存储在存储装置中的较小存储区域中。换言之,与现有技术的数据传输方法使用的存储器资源相比,可以降低存储器资源,并且可以降低系统的大小和成本。
另外,可以在不脱离至此用于主机和存储装置之间的数据传输的命令标准的情况下,来执行根据本发明实施例的数据传输处理。从而,可以省略用于执行本发明的实施例的独立装置驱动器的开发,并且可以使用现有的装置驱动器。从而,根据本发明的实施例具有对于系统开发者来说易于进行开发的优点。此外,可以忽略用户替换装置驱动器的努力,并且可以通过简单、低成本的系统来实现根据本发明实施例的高效数据传输。
由此上面参考特定示例性示例详细描述了本发明。然而,应该理解,如显而易见的那样,本领域技术人员可以在不脱离本发明的精神和范围的情况下,对实施例进行修改或替换。换言之,已经通过示例描述了本发明,其不应该被解释为限制性的。应结合所附权利要求来确定本发明的范围。
另外,可以通过硬件、软件或软硬件两者的组合配置来执行本说明书中所述的一系列处理。在通过软件来执行的情况下,可以在专用硬件中内置的计算机的存储器内安装和执行用以说明处理序列的程序。可替代地,可以在能够执行各种处理的通用计算机上安装和执行程序。例如,可以预先将程序记录至记录介质,然后将其安装至计算机。另外,可以经由网络(如LAN(局域网)或因特网)来接收程序,然后将其安装至记录介质(如内部硬盘)。
同样应该理解,本说明书中所述的各种处理不受限为以按照这里所述的时间顺序来执行,而是取决于执行处理的设备的处理能力或其它因素,也可以并行或单独执行。另外,在本说明书中,系统指代多个设备的逻辑组件,且不限于容纳于单个物理单元中的各个设备。
本申请包括与2009年2月9日向日本专利局提交的日本优先权专利申请JP 2009-027565中公开的主题有关的主题,其全部内容通过引用的方式合并于此
本领域技术人员应该理解,取决于设计要求和其它因素,可以出现各种修改、组合、部分组合和变更,只要其在所附权利要求或其等价物的范围内即可。
Claims (9)
1.一种信息处理设备,包括:
控制器,其被配置为:通过将用于读取记录到数据可记录介质的数据的请求输出到具有所述数据可记录介质的存储装置,来读取数据;
其中,所述控制器使用与记录至所述介质的数据对应的文件系统管理信息,生成并向所述存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分。
2.如权利要求1所述的信息处理设备,其中
所述控制器使用所述文件系统管理信息生成:
关于被记录文件的第一簇编号列表,其是为记录至所述介质的所有文件记录了起始数据的第一簇编号的列表,以及
关于被读取文件的第一簇编号列表,其是为计划要读取的所选文件记录了起始数据的第一簇编号的列表,
并且其中,所述控制器通过将关于被记录文件的所述第一簇编号列表中的每一项与关于被读取文件的所述第一簇编号列表中的那些进行交叉校验,来生成所述位映射数据。
3.如权利要求1所述的信息处理设备,其中
所述控制器通过设置关于位映射数据的首标信息,生成传送数据并将其输出至所述存储装置,所述首标信息包含用于确定所述位映射数据的有效性的信息。
4.如权利要求1所述的信息处理设备,其中
通过应用以文件分配表FAT形式的文件系统管理信息以及目录项,所述控制器生成所述位映射数据。
5.如权利要求1至4中任意一个所述的信息处理设备,其中
通过执行用于将读取数据的单个命令发送给所述存储装置的处理,所述控制器从所述存储装置获取关于由所述位映射数据标识的一个或多个文件的被读取数据。
6.一种存储装置,包含:
介质,在其上记录数据;以及
控制器,其被配置为:关于所述介质写入或读取数据;
其中,所述控制器从主机接收位映射数据,该位映射数据使得所述控制器能够在记录了所述主机请求的被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分,以及
所述控制器通过应用接收到的位映射数据和文件系统管理信息来分析记录了所述被读取文件的簇,来读取文件。
7.一种信息处理系统,包含:
主机,其被配置为:使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;以及
存储装置,其被配置为:从所述主机接收位映射数据,并且通过应用接收到的位映射数据和文件系统管理信息来分析记录了所述被读取文件的簇,来读取文件。
8.一种在信息处理设备中执行的信息处理方法,包含以下步骤:
使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;
将用于读取记录至所述介质的数据的请求输出至所述存储装置;以及
从所述存储装置依次接收关于由所述位映射数据标识的被读取文件的所有数据。
9.一种使得在信息处理设备中执行信息处理的程序,包含以下步骤:
使用与记录至介质的数据对应的文件系统管理信息,由此生成并向存储装置输出位映射数据,该位映射数据使得所述存储装置能够在记录了被读取文件的起始数据的第一簇编号和记录了未读取文件的起始数据的第一簇编号之间进行区分;
将用于读取记录至所述介质的数据的请求输出至所述存储装置;以及
从所述存储装置依次接收关于由所述位映射数据标识的被读取文件的所有数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009027565A JP4816740B2 (ja) | 2009-02-09 | 2009-02-09 | 情報処理装置、および情報処理方法、並びにプログラム |
JP027565/09 | 2009-02-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101799785A true CN101799785A (zh) | 2010-08-11 |
CN101799785B CN101799785B (zh) | 2013-09-18 |
Family
ID=42148128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101170092A Expired - Fee Related CN101799785B (zh) | 2009-02-09 | 2010-02-09 | 信息处理设备、信息处理方法和程序 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8250087B2 (zh) |
EP (1) | EP2216712A3 (zh) |
JP (1) | JP4816740B2 (zh) |
CN (1) | CN101799785B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083552A (zh) * | 2013-02-01 | 2019-08-02 | 辛博立科伊奥公司 | 存储数据的减少冗余 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9870232B2 (en) * | 2012-05-29 | 2018-01-16 | Fujitsu Limited | Extensible method and system for storage metadata |
JP2022047854A (ja) | 2020-09-14 | 2022-03-25 | キオクシア株式会社 | メモリシステム |
CN113704339A (zh) * | 2021-08-30 | 2021-11-26 | 平安普惠企业管理有限公司 | 已读信息状态的记录、装置、设备及存储介质 |
US20230342049A1 (en) * | 2022-04-21 | 2023-10-26 | Micron Technology, Inc. | Reading a master boot record for a namespace using a regular read operation |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05113922A (ja) * | 1991-10-22 | 1993-05-07 | Matsushita Electric Ind Co Ltd | データ記憶装置 |
JPH0635780A (ja) * | 1992-07-17 | 1994-02-10 | Olympus Optical Co Ltd | 大容量記憶装置のファイル管理方法 |
US5504889A (en) | 1993-12-28 | 1996-04-02 | Microsoft Corporation | Method and system for monitoring file attributes using bitmaps to determine group membership of files and to determine which files have been processed |
US5715455A (en) * | 1995-05-18 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for storing file allocation table efficiently in memory |
US6141656A (en) | 1997-02-28 | 2000-10-31 | Oracle Corporation | Query processing using compressed bitmaps |
JPH10293714A (ja) * | 1997-04-17 | 1998-11-04 | Taisei Corp | データ保護装置 |
JP2000020365A (ja) * | 1998-07-07 | 2000-01-21 | Matsushita Electric Ind Co Ltd | データ処理装置、及びそのファイル管理方法 |
JP4281185B2 (ja) * | 1999-03-25 | 2009-06-17 | ソニー株式会社 | 編集装置および方法 |
JP3524428B2 (ja) * | 1999-04-20 | 2004-05-10 | 東京エレクトロンデバイス株式会社 | 記憶装置、記憶システム、メモリ管理方法及び記録媒体 |
JP4452363B2 (ja) * | 2000-02-23 | 2010-04-21 | 富士通株式会社 | ファイルシステム |
EP1229434A3 (en) | 2001-01-31 | 2009-09-09 | Hewlett-Packard Company, A Delaware Corporation | File sort for backup |
US6510505B1 (en) * | 2001-05-09 | 2003-01-21 | International Business Machines Corporation | System and method for allocating storage space using bit-parallel search of bitmap |
AU2003201838A1 (en) * | 2002-04-01 | 2003-10-23 | Sony Corporation | Reproducing method, reproducing apparatus, and data accessing method |
KR100484147B1 (ko) * | 2002-07-26 | 2005-04-18 | 삼성전자주식회사 | 플래시 메모리 관리 방법 |
JP2004185214A (ja) | 2002-12-02 | 2004-07-02 | Renesas Technology Corp | ファイル管理装置 |
JP4211563B2 (ja) * | 2003-10-14 | 2009-01-21 | パナソニック株式会社 | 再生記録装置 |
JP4347707B2 (ja) * | 2004-01-09 | 2009-10-21 | パナソニック株式会社 | 情報記録媒体のフォーマット方法および情報記録媒体 |
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
JP4591096B2 (ja) * | 2005-01-27 | 2010-12-01 | 富士ゼロックス株式会社 | 画像ファイル転送装置および画像ファイル転送プログラムならびに画像読取装置 |
JP2006277737A (ja) | 2005-03-03 | 2006-10-12 | Matsushita Electric Ind Co Ltd | アドレス予測機能をもつ不揮発性記憶装置 |
JP2007059004A (ja) * | 2005-08-25 | 2007-03-08 | Sony Corp | 情報処理装置および方法、プログラム並びに記録媒体 |
US7350049B1 (en) * | 2005-09-13 | 2008-03-25 | Vimicro Corporation | Method and apparatus for managing access to a file allocation table |
JP4859837B2 (ja) * | 2005-09-22 | 2012-01-25 | パナソニック株式会社 | 情報記録媒体アクセス装置、及びデータ記録方法 |
JP2007122221A (ja) * | 2005-10-26 | 2007-05-17 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
CN1790340A (zh) * | 2005-12-31 | 2006-06-21 | 北京中星微电子有限公司 | 文件分配表访问装置、芯片及访问方法 |
JP4802791B2 (ja) * | 2006-03-20 | 2011-10-26 | ソニー株式会社 | データ記憶装置及びデータアクセス方法 |
US7752412B2 (en) * | 2006-09-29 | 2010-07-06 | Sandisk Corporation | Methods of managing file allocation table information |
US7681008B2 (en) * | 2006-09-29 | 2010-03-16 | Sandisk Corporation | Systems for managing file allocation table information |
US7885932B2 (en) * | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US7613738B2 (en) * | 2007-01-16 | 2009-11-03 | Microsoft Corporation | FAT directory structure for use in transaction safe file system |
JP2008210226A (ja) | 2007-02-27 | 2008-09-11 | Oki Electric Ind Co Ltd | ホストとusbストレージデバイス間のデータ転送方法 |
JP2009027565A (ja) | 2007-07-20 | 2009-02-05 | National Institute Of Information & Communication Technology | 匿名資格認証方法 |
JP2008305546A (ja) * | 2008-08-06 | 2008-12-18 | Sony Corp | 情報記録再生装置および方法、プログラム格納媒体、並びにプログラム |
-
2009
- 2009-02-09 JP JP2009027565A patent/JP4816740B2/ja not_active Expired - Fee Related
-
2010
- 2010-02-02 US US12/658,073 patent/US8250087B2/en not_active Expired - Fee Related
- 2010-02-02 EP EP10152366A patent/EP2216712A3/en not_active Withdrawn
- 2010-02-09 CN CN2010101170092A patent/CN101799785B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083552A (zh) * | 2013-02-01 | 2019-08-02 | 辛博立科伊奥公司 | 存储数据的减少冗余 |
Also Published As
Publication number | Publication date |
---|---|
EP2216712A2 (en) | 2010-08-11 |
JP4816740B2 (ja) | 2011-11-16 |
EP2216712A3 (en) | 2011-06-29 |
JP2010182254A (ja) | 2010-08-19 |
US8250087B2 (en) | 2012-08-21 |
US20100205145A1 (en) | 2010-08-12 |
CN101799785B (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
JP5603997B2 (ja) | ストレージ装置及びデータ制御方法 | |
JP5129156B2 (ja) | アクセス装置、および、ライトワンス記録システム | |
EP2393009B1 (en) | Storage system | |
US20060253620A1 (en) | Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area | |
TWI668626B (zh) | 自主空間壓縮之儲存裝置以及方法 | |
CN102436420A (zh) | 使用辅助存储器的低ram空间、高吞吐量的持久键值存储 | |
CN1992055B (zh) | 信息处理装置和信息处理方法 | |
CN101799785B (zh) | 信息处理设备、信息处理方法和程序 | |
EP2176800A1 (en) | Coded removable storage device allowing change detection | |
JP2009530702A (ja) | データ記憶管理方法およびデバイス | |
US11163442B2 (en) | Self-formatting data storage device | |
CN104160397A (zh) | 位置独立文件 | |
KR20110099095A (ko) | 파일 시스템을 필터링하는 디바이스 및 방법 | |
US7375742B2 (en) | Digital information input apparatus | |
CN113791735A (zh) | 视频数据存储方法、装置、计算机设备及存储介质 | |
CN102654870A (zh) | 一种基于fat32文件系统格式下的数据保护方法 | |
EP2393010A1 (en) | Storage system | |
CN1702761A (zh) | 记录设备及记录方法 | |
US20070150527A1 (en) | File transfer system, file storage apparatus, method for storing file, and program | |
JP6307962B2 (ja) | 情報処理システム、情報処理方法、及び、情報処理プログラム | |
US20120151005A1 (en) | Image file download method | |
US8706695B1 (en) | Reducing head and tail duplication in stored data | |
US20210278813A1 (en) | Device control apparatus, device apparatus, control method, program, and device control system |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20150209 |
|
EXPY | Termination of patent right or utility model |