具体实施方式
首先,应用本发明的盘式记录介质的格式系统将被描述。参考图1,将图示整个记录介质的格式。记录介质,即,盘,被划分成具有可变长度的多个分配盘区。每个分配盘区是由具有一个固定的长度的多个块组成的。每块是由一预定数量的物理扇区组成的。
图2图示锚描述符。参考图2,盘上设有四个锚描述符。每个锚描述符具有其上所记录的用于卷管理的管理信息区域的位置。在用于卷管理的管理信息区域中的卷结构描述符包括物理卷信息,分区信息,逻辑卷信息和分区图。
卷结构描述符具有一逻辑卷作为其中描述的用户区域。逻辑卷示于图3中。参考图3,文件系统描述符被安排在逻辑卷中。MIA(管理信息区域)设置在逻辑卷的顶端和尾端的附近。每个MIA包括文件表,分配盘区表,分配策略表,缺陷信息表,以及扩展的属性表。分配盘区的长度在分配策略记录中被描述,这些记录形成分配策略表。
在数据记录在盘上之前,用户设置要记录在盘上的文件的数据的分配盘区的长度。这使得,例如,AV数据可以一个较大长度的分配盘区的格式记录,而PC数据以另一个较小长度的分配盘区的格式记录。由于AV数据在大多数情况下是连续的数据,因此在分配盘区的长度较长处,数据能以较高效率记录和再现。
图4图示设置分配盘区的长度的过程。参考图4,在步骤S11中,将在下文参考图19描述的驱动单元7将分配盘区的设置长度相应的分配策略记录记录到包括在MIAs中的分配策略表中。多个分配策略记录能被写入分配策略表。图5显示用于用户设置分配盘区长度的屏幕的例子。对于分配盘区的长度,一任意长度比如4M字节或者更多,64K字节,或者2K字节,能有选择地被设置。在这个实例中,多个不同长度能被设置。该盘仅仅允许以一个指定的格式记录,该格式的分配盘区的长度是以这种方式事先设置的。
在分配盘区的长度被设置并且记录在盘上之后,当数据记录在盘上时,处理以图6的流程中所示的方式进行。参考图6,首先在步骤S21中,用户将选择其后要记录的数据的分配盘区的长度。图7显示用来选择分配盘区的长度的屏幕的例子。对于这样的长度,只有事先设置到该盘的值被显示。用户将手工地操作显示在屏幕上的钮,以选择与钮相应的分配盘区的长度。通过在要记录AV数据时为分配盘区指定一个比要记录PC数据时更大的长度,允许以较高效率进行数据的记录。通过指定分配盘区长度,设在分配策略表中的分配策略记录被指定。在指定完成之后,在步骤S22中驱动单元7把输入数据记录在盘上。在数据记录完成之后,在步骤23中,驱动单元7将文件的分配盘区的长度相应的号记录到盘上。参考图19将在下文描述的文件管理单元6知道与分配盘区的长度相应的号,并且此后能利用分配策略记录相应之一的内容。
当在下文参考图19描述的系统控制单元5能区别是AV数据要被记录还是PC数据将要被记录时,上述在步骤S21中的处理可以被完成,而无须从用户接收输入。
文件以上述的这样一种方式记录在盘上。
现在,描述卷的构造。盘区用来表示与记录在各MIA中的描述符中的MIB(管理信息块)对齐的区域,将在下文描述。盘区以在下面的表1中所示的这样一种形式被记录。
表1
盘区
RBP |
长度 |
名字 |
内容 |
02 |
22 |
离描述符顶端的偏差(MIB的号)长度(MIB的号) |
Uint16Uint16 |
离描述符(RBP 0)顶端的偏差指定从顶端MIB至描述符的区域的偏差(MIB号)。长度(RBP 2)指定该区域的量级(MIB号)。
PDL项(原始缺陷表项)用来记录一个物理扇区的一个物理扇区尺寸,在缺陷管理中对物理扇区进行跳过(slipping)。PDL项以下面的表2中所表明的形式记录。
表2
PDL项目
RBP |
长度 |
名字 |
内容 |
0 |
4 |
缺陷扇区的物理扇区号 |
Uint32 |
缺陷部分(RBP 0)的物理扇区号指定进行了跳过的物理扇区的物理扇区区号。
SDL项目(次要的缺陷表项目)用来记录在缺陷管理中进行了线性替换的物理扇区的物理扇区号,以及将要用作为该物理扇区的替代的另一个物理扇区的扇区号。SDL项目以下面表3中所表示的形式被记录。
表3
SDI项目
RBP |
长度 |
名字 |
内容 |
04 |
44 |
缺陷扇区的物理扇区号备用扇区的物理扇区号 |
Uint32Uint32 |
在上面表3的缺陷扇区的物理扇区号指定进行了线性替换的一个物理扇区的物理扇区号。备用扇区(RBP 4)的物理扇区号指定用于线性替换中的替代物理扇区的物理扇区号。
锚点表示卷结构分析的起点。在这些锚点中,锚描述符被记录。形成锚点的一个物理扇区的物理扇区号未被规定。
然而,在VDR中,下列规定将被利用。具体地,在ROM(只读存储)盘或者RAM(随机存取存储)盘的情况下,Ch,20h,LPSN(最后物理扇区号)-20h,LPSN-Ch(具有后缀h的任何值表示它是十六进制数)被确定为锚点。在部分ROM盘的情况下,Ch,20h,在ROM和RAM区域中的LPSN-20h和LPSN-Ch被确定为锚点。在这个实例中,当记录有适当的信息在RAM区域的锚点时,该信息被使用,但是当没有记录适当信息时,ROM区域的信息将被使用。
锚描述符被记录在一个物理扇区中,它作为一个锚点,以字节位置0开始。锚描述符的量级相等于或者比物理扇区尺寸更小。进一步,从描述符的最后字节的下一字节到物理扇区的最后字节的区域被保留用于将来可能的扩展,并且#00被设置到该区域中的所有字节。锚描述符其中记录了:一个主要MIA区域的定义以及保留的MIA区域的定义,各自的MIA图的位置等等。
有关一卷的各种的信息片记录在用于卷管理的管理信息区域(MIA)中。为了确保可靠性,具有相同内容的信息的两个MIA在物理卷上不同的位置被记录,并且分别地被称作为主要MIA和保留MIA。在每一MIA中的一个物理扇区称为管理信息块(MIB),而且距MIA的顶端MIB的物理扇区的物理扇区号的偏差被称为管理信息块号(MIB号)。为了指定MIB,其MIB号被利用。每一MIA是由下列组成的:因为缺陷等等而不能被使用的MIB;未用过的MIB;和用来记录主要MIA的MIA映像(主要MIA的MIA映像)的记录数据、保留MIA的MIA图(保留的MIA的MIA映像)、卷结构描述符。介质信息描述符、驱动信息描述符和扩展数据描述符的MIB。
MIA中的MIB用于什么样的目的被记录在MIA映像中。主要MIA和保留MIA的开始位置和大小以及在MIA中的MIA映像(Map)的位置由锚描述符定义。上述的数据可以记录在单一MIB中或者多个MIB中。其中,在该数据被记录在多个MIB中时,各MIB以什么次序链接被记录在MIA映像中的映像项目字字段中。当数据在MIB的中间结尾时,#00被设置到那些字节,起点是该数据结尾的下一字节,而结尾是该MIB的最后字节。
其后,描述分区。在卷结构描述符中由分区信息定义的数据存储区域称为分区。一物理卷能划分成多个分区。用于在物理卷中规定分区的号称为分区号。分区号是整数,从0开始逐个单调增加。在相同的分区中的物理扇区具有相等的物理扇区大小。
分区被定义为在卷结构描述符中的分区信息的表。分区信息用在分区的顶端的物理扇区的物理扇区号和属于该分区的物理扇区的数目来定义分区。至少一个或多个分区在物理卷中被定义。分区号以分区信息在卷结构描述符中被记录的次序确定。分区的分区号如此定义:第一个分区信息是0,而第二个分区的信息是1。按这种方式,分区号一个一个地增加,并且第n个分区号是n-1。
其后,描述逻辑卷。逻辑卷表示定义为在卷结构描述符的逻辑卷信息中的分区集合的数据存储区域。逻辑卷的区域由以逻辑卷信息的分区图的描述次序所链接的分区区域形成。分区映像指定属于具有若干组卷标识符的逻辑卷的分区,这种卷标识符唯一地定义物理卷的物理卷和分区号。逻辑卷可以是由多个分区组成的,这些分区属于不同的物理卷,或者一个单一分区可以属于多个逻辑卷。
逻辑卷被处理为一个单一区域,而与分区或者物理扇区之间的断点无关,同时它的内容以逻辑扇区的单元被读取和写入。当逻辑卷的大小不是逻辑扇区尺寸的倍数时,在最后一个物理扇区出现的部分区域被保留用于未来的扩展,不使用。卷结构描述符描述在物理卷中所包括的分区的信息的定义,逻辑卷等等的定义。为了定义跨多个物理卷的逻辑卷,该逻辑卷信息在那一物理卷的卷结构描述符中被描述,其中分区号0的分区务必被定义。
应当注意,为了确保可靠性,物理卷信息可以在物理卷的卷结构描述符中被描述,分区号不为0的其它一些分区属于该物理卷。卷结构描述符记录在MIA中。
其后,描述缺陷管理。通过跳过和线性替换能地每一个分区进行缺陷管理。是否应该为每一个分区进行缺陷管理是由卷结构描述符的分区信息指定的。用于跳过和线性替换的替代数据区域称为备用区域。在属于与要进行缺陷管理的分区相同的逻辑卷的分区中,一定要确保一个或更多备用区域。进一步,当线性替换将要进行时,分区区域的最后一部分用作为一个备用区域。
当进行跳过时,在分区区域的最后一部分保留的备用区域的顶端部分用作为一个备用区域。另一方面,对于替代品数据区域,在要进行线性替换时,不同于那个在包括缺陷扇区的分区中的备用区域的一个备用区域只可以在下列情况中使用,即当它属于相同逻辑卷并且属于相同的物理卷之时。
关于跳过和线性替换的信息在卷结构描述符的缺陷表信息中被记录。关于跳过的信息在主缺陷表中被记录,而关于线性替换的信息在次缺陷表中被记录。
介质信息描述符,它是将要记录关于介质的信息的区域,用来记录与存储区相关的信息。驱动信息描述符是将要记录关于驱动器(用于记录和重放数据的装置)的信息的区域。在利用一种固定的驱动器的情况,各种各样的信息片在驱动器信息描述符中被记录。
扩展数据描述符用来记录不能在物理卷信息中充分记录的扩展信息、分区信息、以及逻辑卷信息。
现在,描述卷数据结构。锚描述符具有比物理扇区大小更小的大小,并且以下面表4中表明的格式被记录。
表4
锚描述符
BP |
长度 |
名称 |
内容 |
0812162024262828+2x128+2x1+2x228+4x1+2x2 |
84444222x12x22x12x2 |
特征标记主MIA的开始物理扇区号在主MIA中的物理扇区的数量保留MIA的开始物理扇区号在保留MIA中的物理扇区的数量在主MIA中的MIA映像的MIB的数量(=x1)在保留MIA中的MIA映像的MIB的数量(=x2)在主MIA中的主MIA的MIA映像的MIB数量在主MIA中的保留MIA的MIA映像的MIB数量在保留MIA中的主MIA的MIA映像的MIB数量在保留MIA中的保留MIA的MIA映像的MIB数量 |
特征标记Uint32Uint32Uint32Uint32Uint16Uint16Uint16Uint16Uint16Uint16 |
特征标记的数据类型字段(BP 0)在其中被设置为16。主要MIA(BP 8)的开始物理扇区号表示在主要MIA顶端的物理扇区的物理扇区号。主要MIA(BP 12)中的物理区数表示主要MIA的物理扇区的数目。保留MIA(BP 16)的物理扇区号表示保留MIA的顶端的物理扇区的物理扇区号。保留MIA(BP 20)中的物理扇区数表示保留MIA的物理扇区的数目。在主要MIA(BP 24)中的MIA映像的MIB的数目表示MIA映像大小(MIB数)。在保留MIA(BP 26)中的主要映像的MIB的MIA号表示保留MIA的量级(MIB数)。在主要MIA(BP 28)中的主要MIA的MIA映像的MIB号表示主要MIA中的MIB,其中记录主要MIA的MIA映像。形成MIA映像的各MIBs的MIB号按顺序设置。
在主要MIA(BP 28+2x1)中的保留MIA的MI A映像的MIB号表示主要MIA中的各MIB,其中记录了保留MIA的MIA映像。形成MIA映像的各MIB的MIB号按顺序设置。在保留MIA(BP 28+2x1+2x2)中的主要MIA的MIA映像的MIB号表示保留MIA中的MIB,其中记录了主要MIA的MIA映像。形成MIA映像的各MIB的MIB号按顺序设置。在保留MIA(BP 28+4x1+2x2)中的保留MIA的MIA映像的MIB号表示保留MIA中的各MIB,其中记录了保留MIA的MIA映像。形成MIA映像的各MIB的MIB号按顺序设置。
MIA映像用来表明各MIB使用中的状态。MIA映像表明用于记录各种各样的数据的MIB,由于缺陷等等不能被使用的MIB,以及不被使用的MIB的位置。MIA映像以在下面表5中所表明的这样一种形式被记录。
表5
MIA映像
BP |
长度 |
名字 |
内容 |
08101214162820 |
82222222x1 |
特征标记MIA映像的位置卷结构描述符的位置介质信息描述符的位置驱动器信息描述符的位置扩展数据描述符的位置映像项的数量(=x1)映像项 |
特征标记Uint16Uint16Uint16Uint16Uint16Uint16字节 |
特征标记的数据类型字段(BP 0)这里设置为2。MIA映像(BP 8)的位置表示顶端MIB的MIB号:在MIA映像中,卷结构描述符(BP 10)的位置表示卷结构描述符的顶端MIB的MIB号。介质信息描述符(BP 12)的位置表示介质信息描述符的顶端MIB的MIB号。驱动器信息描述符(BP 14)的位置表示驱动器信息描述符的顶端MIB的MIB号。
扩展数据描述符(BP 16)的位置表示扩展数据描述符的顶端MIB的MIB号。映像项(BP 18)的数目表示以BP 20开端的映像项的项的数目。该数相等于在MIA中涉及的MIBs的数目,并且等于或小于#FFF0。映像项目(BP 20)表示MIB的使用状态。一个映像项是由单元16组成的,同时第一映像项相应于第一MIB,第二个映像项目相应于第二MIB,...,以及第n个映像项目相应于第n个MIB。下面的表6表明各映像项的值。
表6
MIA映像项
值 |
含义 |
#0000-#FFFF#FFF0#FFF1#FFF2-#FFFE#FFFF |
下一个MIB号不能使用的MIB未用的MIB保留的数据结构的最后MIB |
图8是图示卷结构描述符的结构的示意图。参考图8,@APS表示与物理扇区的对齐,而其数据表示与一个物理扇区的对齐。基于这样的对齐,#00被放入从要紧接在前面记录的数据所实际记录的位置的下一个字节到该扇区的结尾的区域。
卷结构描述符首标头依据下面的表7被记录。
表7
卷结构描述首标
BP |
长度 |
名称 |
内容 |
08101216202428 |
82244444 |
特征标记描述符大小保留的到物理卷信息的偏差(=48)到分区信息的偏差(=416)到备用区域信息的偏差到逻辑卷信息的偏差到缺陷表信息的偏差 |
特征标记Uint16#00字节Uint32Uint32Uint32Uint32Uint32 |
在特征标记数据类型字段(BP 0)中,设置17。描述符尺寸(BP 8)表示卷结构描述符的量级(MIB的数目)。该保留的部分(BP 10)被保留以便未来的扩展并且将#00设置到其中所有的字节。到物理卷信息(RPB 12)的偏置表示从卷结构描述符的顶端字节的物理卷信息的偏置(字节数),并且在这里设置为48。到分区信息(RBP 16)的偏置表示从卷结构描述符的顶端字节的分区信息的偏置(字节数),并且在这里设置为416。到备用区域信息(RBP20)的偏置表示从卷结构描述符的顶端字节的备用区域信息的偏置(字节数)。到逻辑卷信息(RBP 24)的偏置表示从卷结构描述符的顶端字节的逻辑卷信息的偏置(字节数)。到缺陷表信息(RBP 28)的偏置表示从卷结构描述符的顶端字节的缺陷表信息的偏置(字节数)。
物理卷信息必须依据下面的表8被记录。
表8
物理卷信息
RBP |
长度 |
名字 |
内容 |
024260280286292294296298300302304 |
222256206622222264 |
字符组物理卷名称大小物理卷名称物理卷名称标识符创建时间修改时间分区数量(=Np)备用区域数量(=Ns)有缺陷管理的分区的数量(=Nadump)逻辑卷的数量(=Nv)保留的扩展数据标识符扩展数据 |
字符组Uint16字节字节时间标记时间标记Uint16Uint16Uint16Uint16#00字节Uint16字节字节 |
字符组(RBP 0)表示在物理卷名字字段中所记录的物理卷的名字的字符码。物理卷名字大小(RBP 2)表示在物理卷名字字段中所记录的物理卷的名字的量级(字节数)。物理卷名(RBP 4)表示物理卷的名称。物理卷标识符(RBP260)表示用以唯一地说明用于实际使用的物理卷的字节串。创立时间(RBP280)表示物理卷的卷结构首次被定义的日期与时间。修正时间(RBP 286)表示物理卷的卷结构被修改的最近的日期与时间。分区号(RBP 292)表示在物理卷中所包括的分区数,并且等于分区信息的片号。
备用区域号(RBP 294)表示在物理卷中所包括的备用区域的号,并且等于备用区域信息的片号。具有缺陷管理的分区号(RBP 296)表示那些在缺陷管理将要进行的物理卷中所包括的分区的号,并且等于缺陷表的号。逻辑卷的号(RBP 298)表示在物理卷中所包括的分区的逻辑卷的号,并且等于物理卷信息的片号。保留的(RBP 300)是为未来的扩展而保留的并且将#00设置到其中的所有字节。扩展数据标识符(RBP 302)指定说明在扩展数据区域中所记录的扩展数据的ID。扩展数据(RBP 304)是为未来的扩展而保存的,并且将#00设置到其中所有的字节。
分区信息必须以下面的表9中所表明的形式被记录。
表9
分区信息
RBP |
长度 |
名字 |
内容 |
048121617182024283032 |
4444112442264 |
开始物理扇区号物理扇区的数量可用扇区的数量物理扇区尺寸(=PSS)存取类型有用信息保留的首要缺陷表的位置次要缺陷表的位置保留的扩展数据标识符扩展数据 |
Uint32Uint16Uint16Uint16Uint8Uint8#00字节盘区盘区#00字节Uint16#00字节 |
开始物理扇区号(RBP 0)指定在形成分区的区域中的顶端物理扇区的物理扇区号。物理扇区数(RBP 4)指定形成分区的区域的物理扇区的数目。可用扇区数(RBP 8)指定在形成能被利用的分区的区域中的那些物理扇区的总数,并且等于在从分区的整个区域除去备用区域的区域中的那些物理扇区的号,所说备用区域包括在该分区的区域中。物理扇区尺寸(RBP 12)指定形成分区的区域的物理扇区的量级(字节的数)。存取类型(RBP 16)指定分区的记录特征的状态。下面的表10表明存取类型的内容。
表10
存取类型
值 |
名字 |
含义 |
0123-15 |
只读一次写入可重写的保留的 |
在该分区中用户不能写入任何数据在该分区中用户只能一次写入数据在该分区中用户能多次写入数据为将来的使用而保留的 |
有用信息(RBP 17)指定分区的使用状态。下面的表11表明使用信息的内容。
表11
有用信息
位 |
含义 |
0123-7 |
使用(1:使用,0:未使用)缺陷管理:滑动(1:开,0:关)缺陷管理:线性替换(1:开,0:关)保留的 |
保留的(RBP 18)是为未来的扩展而保存的,并且#00被设置到其中所有的字节。首要缺陷表(RBP 20)的位置在其字段中存储有关当跳过的缺陷管理要对该分区进行之时记录首要缺陷表的位置的信息,但是当跳过的缺陷管理未进行之时把#00设置到其中所有字节。当对该分区通过线性替换而进行缺陷管理时,次要的缺陷表(RBP 24)的位置在其字段中存储与记录次要的缺陷表的位置有关的信息,但是当用线性替换的缺陷管理不进行时,把#00设置到其中所有的字节。保留的(RPB 28)是为未来的扩展而保留的,并且将#00设置到其中所有的字节。扩展数据标识符(RBP 30)指定用于说明在扩展数据字段或扩展数据区域中所记录的扩展数据的标识符。扩展数据(RBP 32)是为未来的扩展而保存的并且将#00设置到其中所有的字节。
备用区域信息以下面的表12中所表明的形式被记录。
表12
备用区域信息
RBP |
长度 |
名字 |
内容 |
048 |
448 |
开始物理扇区号物理扇区的数量保留的 |
Uint16Uint16#00字节 |
开始物理扇区号(RBP 0)指定备用区域的顶端物理扇区的物理扇区号。物理扇区数(RBP 4)指定物理扇区的数目,这些扇区形成备用区域。保留的(RBP 8)是为未来的扩展而保存的并且将#00设置到其中所有的字节。
逻辑卷信息头是以下面的表13中所表明的形式被记录的。
表13
逻辑卷信息标题
RBP |
长度 |
名称 |
内容 |
024260262264266268272288302304 |
22256222241614264 |
字符组物理卷名称尺寸物理卷名称引导区指示符文件系统指示符逻辑扇区尺寸分区数量(=Npv)保留的逻辑卷内容使用保留的扩展数据标识符扩展数据 |
字符组Uint16字节Uint16Uint16Uint16Uint16#00字节字节#00字节Uint16#00字节 |
字符组(RBP 0)指定在逻辑卷名字字段中所记录的逻辑卷的名字的字符码。逻辑卷名字大小(RBP 2)指定在逻辑卷名字字段中指定的逻辑卷的名字的量级(字节数),引导指示符(RBP 260)从逻辑卷中指定与开始有关的信息。引导指定符的内容在下面的表14中被表明。物理卷不应该包括两个或者更多的逻辑卷,其引导指示符是激活的,而且其顶端分区是在该物理卷中的。
表14
引导指示符
值 |
名字 |
内容 |
00h80h |
未激活激活 |
物理卷不从该逻辑卷设置计算机的引导区物理卷从该逻辑卷设置计算机的引导区 |
文件系统指示符(RBP 262)指定用于逻辑卷的文件系统。文件系统指示符的内容在下面的表15中被表明。
表15
文件系统指示符
值 |
名字 |
内容 |
00h01h04h05h06h07h08hF0h |
未知的12比特FAT16比特FAT16比特FAT,扩展16比特FAT,扩展,64KB/族(claster)HPFS32比特FATKIFS |
该逻辑卷是未知的该逻辑卷用12比特FAT格式化该逻辑卷用16比特FAT格式化该逻辑卷用16比特FAT格式化并定义一个扩展分区该逻辑卷用16比特FAT格式化并定义一个扩展的分区,用64KB/族该逻辑卷用HPFS格式化该逻辑卷用32比特FAT格式化该逻辑卷用KIFS格式化 |
逻辑扇区尺寸(RBP 264)指定逻辑卷的逻辑扇区的量级(字节数)。分区数(RBP 266)指定分区的数目,这些分区形成逻辑卷,并且等于分区映像的号。保留的(RBP 268)是为未来的扩展而保留的并且将#00设置到其中所有的字节。逻辑卷内容使用(RBP 272)是使用逻辑卷可以被文件系统自由使用的区域。保留的(RBP 288)是为未来的扩展而保留的并且将#00设置到其中所有的字节。扩展数据标识符(RBP 302)指定为说明在扩展数据区域中所记录的扩展数据的标识符。扩展数据(RBP 304)是为未来的扩展而保留的并且将#00设置到其中所有的字节。
分区图以在下面的表16中所表明的形式被记录。
表16
分区映像
RBP |
长度 |
名字 |
内容 |
02022 |
2022 |
卷标识符分区数保留的 |
字节Uint16#00字节 |
卷标识符(RBP 0)指定在物理卷信息中所记录的物理卷标识符,形成逻辑分区的分区属于该物理卷。分区数(RBP 20)指定这些分区的分区数目,这些分区形成逻辑卷。保留的(RBP 22)是为未来的扩展而保留的并且将#00设置到其中所有的字节。
缺陷表信息头以在下面的表17中所表明的形式被记录。
表17
缺陷表信息标题
RBP |
长度 |
名字 |
内容 |
024 |
2212 |
MIB首要缺陷表的数量MIB次要缺陷表的数量保留的 |
Uint16Uint16#00字节 |
首要缺陷表的MIB数(RBP 0)指定用来记录首要缺陷表的MIB的数目。次要的缺陷表的MIB数(RBP 2)指定用来记录次要的缺陷表的MIB的数目。保留的是为未来的扩展而保存的,并且#00被设置到其中所有的字节。
首要的缺陷表/次要的缺陷表以在下面的表18中所表明的形式被记录。
表18
首要缺陷表/次要缺陷表
RBP |
长度 |
名字 |
内容 |
081012 |
8224 |
特征标记分区号项目的数量(=Npd)保留的 |
特征标记Uint16Uint16#00字节 |
特征标记的数据类型的字段(BP 0)在这里对于首要的缺陷表其中被设置为18,但是对于次要的缺陷表在这里被设置为19。分区号(BP 8)指定使用了缺陷表的分区的分区号。项目号(BP 10)指定缺陷表项目的项目号。保留的(RBP 12)是为未来的扩展而保留的,并且将#00设置到其中所有的字节。缺陷表项目(RBP 16),对于首要的缺陷表,具有在其中记录的首要的缺陷表项目,但是,对于次要的缺陷表,该次要的缺陷表项目记录在其中。在两种情况中的缺陷表项目以单个项目的缺陷扇区字段的物理扇区号的值的上升的次序被记录。
介质信息描述符的结构在图9中被图示。
参考图9,介质信息描述符标题以在下面的表19中所表明的形式被记录。
表19
介质信息描述符标题
RBP |
长度 |
名字 |
内容 |
0810161820222432343628 |
8262222822210 |
特征标记描述符尺寸保留的盘数量每盘的面数每面的层数每层的存储区(zone)数量(=Nz)保留的磁道柱面数磁头数(每个磁道柱面的轨迹数)每个轨迹的扇区数保留的 |
特征标记Uint16#00字节Uint16Uint16Uint16Uint16#00字节Uint16Uint16Uint16#00字节 |
特征标记(BP 0)的数据类型字段其中被设置为20。描述符尺寸(BP 8)指定介质信息描述符的量级(MIB数)。保留的(BP 10)是为未来的扩展而保留的并且将#00设置到其中所有的字节。盘数(BP 16)指定盘的数量。每盘的面数(BP 18)指定每盘的面数。每面的层数(BP 20)指定每面层数。每层存储区(BP 22)指定每层存储区的数目。保留的(BP 24)是为未来的扩展而保留的并且将#00设置到其中所有的字节。柱面数(BP 32)指定柱面的数量。首标数量(每个柱面轨迹数)(BP 34)指定首标的数量(每柱面轨迹的数量)。每个轨迹(BP 36)扇区数指定每轨迹扇区的数量。保留的(BP 38)是为未来的扩展而保留的并且将#00设置到其中所有的字节。
存储区信息以在下面的表20中所表明的形式被记录。
表20
存储区信息
RBP |
长度 |
名字 |
内容 |
048 |
448 |
开始物理扇区号物理扇区的数量保留的 |
Uint16Uint16#00字节 |
开始物理扇区号(RBP 0)指定该存储区的顶端物理扇区的物理扇区号。物理扇区数(RBP 4)指定组成该存储区的物理扇区的数量。保留的是为未来的扩展而保留的并且将#00设置到其中所有的字节。
驱动器信息描述符的结构在图10中被图示。
参考图10,驱动器信息描述符标题以在下面的表21中所表明的形式被记录。
表21
驱动器信息描述首标
RBP |
长度 |
名称 |
内容 |
081011 |
8215 |
特征标记描述符尺寸策略类型保留的 |
特征标记Uint16Uint8#00字节 |
特征标记的数据类型字段(BP 0)其中被设置为21。描述符尺寸(BP 8)指定驱动器信息描述符的量级(MIB号)。策略类型(BP 10)指定策略类型。保留的是为未来的扩展而保留的并且将#00设置到其中所有的字节。
扩展数据描述符的结构在图11中被图示。参考图11,@APS表示与物理扇区的对齐,并且表明有关的数据必须与物理扇区对齐。进一步,以最后数据的下一字节开端且以扇区的结尾而结束的区域,其中设置有#00。
扩展数据描述符标题以在下面的表22中所表明的形式被记录。
表22
RBP |
长度 |
名字 |
内容 |
0810162020+4Np |
82624Np4Nv |
特征标记描述符尺寸保留的物理卷扩展数据的位置分区扩展数据的位置逻辑卷扩展数据的位置 |
特征标记Uint16#00字节盘区盘区盘区 |
特征标记的数据类型字段(BP 0)设置有22在其中。描述符尺寸(BP 8)指定扩展数据描述符的量级(MIB数)。保留的是为未来的扩展而保留的并且将#00设置到其中所有的字节。物理卷的扩展数据的位置(BP 16)指定与物理卷有关的扩展数据被记录的位置。分区的扩展数据的位置(BP 20)指定与分区的扩展数据被记录的位置。逻辑卷(BP 20+4Np)的扩展数据的位置指定与逻辑卷有关的扩展数据被记录的位置。
其后,介质交换的层级将被描述。介质交换的级别0有下列限制。具体地,一逻辑卷是由分区组成的,这些分区属于相同的物理卷。其中多个分区被定义在相同的物理卷中,分区的区域不能相互重叠。组成逻辑卷的分区的所有物理扇区具有相等的物理扇区尺寸。逻辑扇区尺寸是物理扇区尺寸的若干倍,或者相反,物理扇区尺寸是逻辑扇区尺寸的若干倍。分区的量级是逻辑扇区尺寸和物理扇区尺寸的较大者的值的若干倍。要进行缺陷管理的分区一定保证其中有一个或更多备用区域。由线性替换进行的缺陷管理利用在该分区中所保证的备用区域或者多个区域作为替代数据区域。
介质交换的级别1没有任何限制。
其后,描述卷结构的例子。下面的表23图示了FAT,ISO 9660(采用Joliet),ISO/IEC1346,VDR的KIFS的混合盘的卷结构的例子的表。
标记◆表示不能再排列的位置固定信息。
表23卷结构(FAT,9660,13346,KIFS混杂)的例子
PSN(hax) |
描述符 |
内容 |
0 |
[FAT]分区表 |
◆[FAT]分区表 |
- |
- |
- |
c |
[KIPF]锚描述符 |
◆[KIFS]锚 |
- |
- |
- |
10 |
[9660]首要卷描述符 |
[9660/13346/KIFS]卷识别序列 |
11 |
[9660]首要卷描述符(保留的) |
12 |
[9660]备用卷描述符(用于Joliet) |
13 |
[9660]卷描述组终止符 |
14 |
[13346]开始扩展的区域描述符 |
15 |
[13346]NSR描述符 |
16 |
[13346]终止扩展区域描述符 |
17 |
[13346]开始扩展的区域描述符 |
18 |
[KIFS]KIFS描述符 |
19 |
[13346]终端扩展区域描述符 |
- |
- |
- |
30 |
[13346]首要卷描述符 |
[13346]主要卷描述符序列盘区 |
31 |
[13346]实施使用卷描述符 |
32 |
[13346]分区描述符 |
33 |
[13346]逻辑卷描述符 |
34 |
[13346]未分配的空间描述符 |
35 |
[13346]终止描述符 |
- |
- |
- |
40 |
[13346]首要卷描述符 |
[13346]保留卷描述符序列盘区 |
41 |
[13346]实施使用卷描述符 |
42 |
[13346]分区描述符 |
43 |
[13346]逻辑卷描述符 | |
44 |
[13346]未分配的空间描述符 |
- |
- |
- |
80 |
[KIFS]主要MIA的MIA映像 |
[KIFS]主MIA |
81 |
[KIFS]保留MIA的MIA映像 |
82 |
[KIFS]卷结构描述符 | |
83 |
[KIFS]首要缺陷表 |
84 |
[KIFS]次要缺陷表 |
85 |
[KIFS]介质信息描述符 |
86 |
[KIFS]驱动器信息描述符 |
87 |
[KIFS]扩展数据描述符 |
88 |
[KIFS]扩展数据 |
- |
- |
- |
C0 |
[KIFS]保留MIA的MIA映像 |
[KIFS]保留MIA |
C1 |
[KIFS]主要MIA的MIA映像 |
C2 |
[KIFS]卷结构描述符 |
C3 |
[KIFS]首要缺陷表 |
C4 |
[KIFS]次要缺陷表 |
C5 |
[KIFS]缺陷扇区 |
C6 |
[KIFS]介质信息描述符 |
C7 |
[KIFS]驱动器信息描述符 |
C8 |
[KIFS]扩展数据描述符 |
C9 |
[KIFS]扩展数据 |
- |
- |
- |
100 |
[13346]锚卷描述符指针 |
◆[13346]锚 |
- |
- | |
150 |
[KIFS]逻辑卷 |
- |
- |
LPSN-150 |
- |
- |
- |
- |
- |
LPSN-100 |
[13346]锚卷描述符指针 |
◆[13346]锚 |
- |
- |
- |
LPSN-20 |
[13346]锚描述符 |
◆[KIFS]锚 |
- |
- |
- |
LPSN-C |
[13346]锚描述符 |
◆[KIFS]锚 |
- |
- |
- |
LPSN |
[13346]锚卷描述符指针 |
◆[13346]锚 |
其后,被构筑在逻辑卷上的AV文件系统将被描述。逻辑扇区号是被应用来识别一个逻辑扇区的号。逻辑卷是由具有相等尺寸并且具有从0开始上升次序的连续逻辑扇区号的逻辑扇区组成的整体。
用于文件系统管理的管理信息区域(MIA)是包括用于存储AV文件系统的各种控制信息的逻辑卷的多个连续的逻辑扇区的区域。管理信息块(MIB)是在MIA中的逻辑扇区。管理信息块号(MIB号)具有的值等于管理信息块的逻辑扇区号与MIA的顶端管理信息块的逻辑扇区号的差值。
下面,描述整个AV文件系统。将在下文描述的AV文件系统描述符在一个逻辑扇区中被记录,并且指定在逻辑卷上的主要MIA和保留的MIA的位置和量级以及在主要MIA和保留MIA上的MIA映像的位置。AV文件系统描述符的位置以从下面的表24所示的这样一种方式设置在上文描述的逻辑卷信息标题的逻辑卷内容使用(BP 284)字段中。
表24
逻辑卷内容使用字段
RBP |
长度 |
名字 |
内容 |
048 |
448 |
主要AV文件系统描述符位置保留AV文件系统描述符位置保留的 |
Uint32Uint32#00字节 |
主要AV文件系统描述符位置(RBP 0)指定AV文件系统描述符的逻辑扇区号。保留的AV文件系统描述符位置(RBP 4)指定位于与由主要AV文件系统描述符位置指定的不同的位置处的AV文件系统描述符的逻辑扇区号。如果仅仅一个AV文件系统描述符出现在逻辑卷中,那么#FFFFFFFF被放置在保留AV文件系统描述符位置中。保留的(RBP 8)是为未来的扩展而被保存的,并且其中被设置为#00。
AV文件系统的各种管理信息在用于文件系统管理的管理信息区域(MIA)中被记录。为了保证可靠性,具有相同内容的管理信息的两个MIA在逻辑卷上不同的位置被记录,并且分别称为主要MIA和保留MIA。主要MIA和保留MIA的位置和量级和在MIA中的MIA映像的位置由AV文件系统描述符定义。在MIA中的一个逻辑扇区称为管理信息块(MIB),并且从MIA的顶端MIB的管理信息块(MIB)的逻辑扇区号的偏差称为管理信息块号(MIB号)。
为了指定MIB,使用MIB号。每个MIA是由于缺陷等等不能被利用的MIB、未使用的MIB、用于存储MIA映像的MIB、文件表、分配盘区表、分配策略表,缺陷信息表(任选)和扩展属性表(任选)结构,它们是数据结构,使用每个MIA中的每个MIB的目的被记录在MIA映像中。各种数据结构存储在一个MIB或者多个MIB中。其中,在数据结构记录在多个MIB中情况下,这些MIB应该被连接的次序被记录在MIA映像中的映像项目字段中。如果数据结构在MIB中间结尾,那么将#00设在从该数据的结尾下一字节开始到该MIB的最后字节结束的MIB的字节中。
在AV文件系统中,文件和目录将用下文描述的文件表管理。文件表的结构按照文件表结构类型而确定,它是文件表首标中的参数。在文件表结构类型0中,文件表是由文件表首标与一个或更多文件记录组成的。文件记录是一个固定长度的数据区域,并且由用于识别文件记录的字段、用于指定文件记录类型的字段、用于指定产生和修改日期和时间的字段、用于指定数据的位置和量级的字段、用于指定属性的字段、称为母链接的用于指定双亲文件记录的字段、称为下一个链接的用于指定兄弟文件记录的字段、称为子链接的用于指定子文件记录的字段、以及用于指定扩展属性记录链的字段组成的。称为文件记录号的号加到文件记录,而且母链接、平级链接或者子链接利用这样的文件记录号被指定。
在文件表结构类型0中,构成了诸如图12中所示的一种树结构。其中文件表的第一文件记录起根的作用。参照图12,每个圆圈表示一个文件记录,根的文件记录称为根文件记录。不带有所指向的数据的每个文件称为目录,而带有数据的每个文件称为文件。不仅目录而且文件都可以具有一种子文件记录。则介绍的该层次结构是通过设置图13所示的子链路,平级链路(next links)以及母链路来完成的。
由平级链路构成的一种文件记录表称为文件记录链并且不能包括两个或更多的具有相同文件类型的文件。副文件是一种文件,并且代表由母文件记录引用的那部分数据,好像它是一个独立的文件似的。其中把数据值10放置在属性域(field)的数据位置类型中的文件记录称为一个副文件。
在AV文件系统中,数据的管理是在被称为分配盘区(Allocation Extent)的一逻辑卷上按连续的区域的单元的形式来进行的。该分配盘区以一逻辑扇区的一个任意字节偏置开始,而以逻辑扇区的另外任意字节偏置结束,或者包括连续零或者更多逻辑扇区或者多个扇区,并且由跟在该逻辑扇区或者多个扇区后的另一逻辑扇区的任意字节偏置结束。分配盘区“t”的起始点、结束点、属性以及等等被记录在分配盘区表中分配盘区记录中。
在分配盘区表中记录了与在逻辑卷上的所有分配盘区相对应的分配盘区记录。每个分配盘区记录具有一个指示下一个分配盘区记录的字段,并且可以用该字段产生包括多个分配盘区记录的一个列表。这种列表称做分配盘区记录链。通常,文件数据被作为与一个分配扇区记录链相对应的一个分配扇区的序列组处理。
由在一个分配盘区表中的那些不使用的分配盘区记录(其分配盘区记录状态是00的那些记录)所构成的一个列表被称为空白分配盘的区记录链,并且能简单地从分配盘区表中找到。同时,由下述的分配盘区组成的列表被称为缺陷分配盘区记录链,这些分配盘区记录的每一个都不被建议再利用,因为它包括相应分配盘区中的缺陷(即分配盘区记录状态为10值的那些记录)。
由分配策略来确定在一个逻辑卷中的哪个位置上放置一个分配盘区。分配策略表能够在其上寄存多个分配策略,并且针对每个文件使用不同的分配策略在一逻辑卷中安排一分配盘区。在分配策略表中一个分配策略记录中记录了由每个分配策略所管理的区域的范围或者被分配策略表所使用的参数。在文件表结构类型0中,分配策略是针对每个文件记录来确定的并被记录在文件记录的数据位置字段中。由于当进行分配盘区的操作时引用该数据位置字段,因此一个相应的分配策略被再调用。
定义了两种分配策略类型:分配策略类型0和分配策略类型1。分配策略类型0是一种适于间断地处理诸如索引数据这样的相当小尺寸的文件的类型,而分配策略类型1是一种适于连续地读或写MPEG或诸如此类的数据的类型。
缺陷信息表是一种记录在逻辑卷中缺陷扇区的逻辑扇区数目的表,并且可用于对有缺陷扇区的管理。
扩展的属性表能用来保持在MIA中的一个文件或目录的扩展属性。该扩展属性表是由扩展属性表首标以及一个或更多扩展属性表记录构成的。扩展属性记录是一种固定长度的记录,它针对一链路具有一字段,并且能够生成一种扩展属性记录链,它是多个扩展属性记录的列表。
在将由AV文件系统使用的数据结构的顶端,设置了特征标记。该特征标记是按照如下表25所示的这样一种方式记录的。
表25特征标记
RBP |
长度 |
名称 |
内容 |
0456 |
4112 |
标识版本数据类型保留 |
字节=“AVFS”Uint8=1Uint8#00字节 |
根据ISO/IEC 046,在标识(RBP0)中设置了一段字符串“AVFS”。版本(RBP4)指定版本号,并且在其上设置1。数据类型(RBP 5)指定数据结构的类型。根据数据结构的类型,在数据类型中放置下表26中所示的其中一个数值。
表26
数据类型
数值 |
解释 |
012345678-255 |
保留AV文件系统描述符MIA映像文件表分配盘区表分配策略表缺陷信息表扩展属性表保留 |
保留(RBP 6)是留给未来的盘区并在其上设置#00。特征标记是用来在挤压恢复(crush recovery)过程中识别数据结构的。
AV文件系统描述符是按如下表27所示的这样一种方式来记录的。
表27
AV文件系统描述符
BP |
长度 |
名称 |
内容 |
08121618202428303232+2X1 |
8442244222X12X1 |
特征标记主MIA的位置保留MIA的位置主MIA的长度保留MIA的长度建立时间修改时间在主MIA中MIA映像扇区的数(=X1)在保留MIA中MIA映像扇区的数(=X2)在主MIA中MIA映像扇区在保留MIA中MIA映像扇区 |
特征标记Uint32Uint32Uint16Uint16时间标记时间标记Uint16Uint16字节字节 |
在特征标记的数据类型字段中设置1。主MIA(BP 8)的位置指示MIA的开始逻辑扇区的扇区号。保留MIA的位置(BP 12)表示保留MIA的开始逻辑扇区的扇区号。主MIA的长度(BP 16)表示以逻辑扇区号形式的主MIA的大小。保留MIA的长度(BP 18)表示在逻辑扇区号的形成中保留MIA的大小。建立时间(BP 20)存储当生成AV文件系统描述符时的数据和时间。修改时间(BP 24)表示当更改AV文件系统描述符时的日期和时间。在主MIA中MIA映像扇区数(BP 28)表示在主MIA映像扇区(BP 32)中所述的MIB号码的数目。
在保留MIA中MIA映像扇区的号(BP 30)表示在保留MIA映像扇区(BP 32+2x1)中所述的MIB号码的数目。主MIA中的MIA映像扇区(BP 32)表示在主MIA中形成MIA映像的MIBs,并且形成MIA映像的各MIB的MIB号在主MIA的MIA扇区中依次序设置。保留MIA中的MIA映像扇区表示形成保留MIA中MIA映像的MIBs,并且在保留MIA中在MIA映像扇区中按顺序设置形成MIA映像的各MIB的MIB号。
MIA映像用来指示在MIAs中MIBs的使用情况,MIA映像指示在MIAs中各种各样数据结构的位置、由于缺陷而不能使用的MIBs以及未用的MIBs。MIA映像是按如下表28所示的这样一种方式记录的。
表28
MIA映像
BP |
长度 |
名称 |
内容 |
081012141618202224 |
8222222222X1 |
特征标记MIA映像的位置分配策略表的位置文件表的位置分配盘区表的位置缺陷列表的位置扩展属性描述符的位置保留映像项目号(=X1)映像项目 |
特征标记Uint16Uint16Uint16Uint16Uint16Uint16字节单元16字节 |
特征标记(BP 0)的数据类型字段设置成2。MIA映像的位置(BP 8)表示在MIA中MIA映像的顶部MIB的MIB号。分配策略表的位置(BP 10)表示在MIA中分配策略表的顶部MIB的MIB号。文件表的位置(BP 12)表示在MIA中文件表的顶部MIB的MIB号。
分配盘区表的位置(BP 14)表示在MIA中分配盘区表的顶部MIB的MIB号。缺陷列表的位置(BP 16)表示在MIA中缺陷列表的顶部MIB的MIB号。如果在MIA中没有缺陷列表,则在缺陷列表的位置上放置#FFFF。扩展属性描述符的位置(BP 18)表示在MIA中扩展属性描述符的顶部MIB的MIB号。如果在MIA中没有扩展属性描述符,则在扩展属性描述符的位置上放置#FFFF。保留(BP 20)留作未来的扩展并在这里设置为#00。
映像项目数(BP 22)表示映像项目以BP 24开始的项目数。项目数等于在MIA中存在的MIBs的数目并且等于或小于#FFF0。映像项目(BP 24)表示在MIA中MIBs的使用情况。一个映像项目由Uint16构成,以及第一映像项目对应MIA的第一MIB、第二映像项目对应第二MIB、...
映像项目的数值具有如下表29所示的这样的意思。
表29
映像项目数值
数值 |
解释 |
#0000-#FFFF#FFF0#FFF1#FFF2-#FFFF#FFFF |
下一个MIB号未用的MIB未用的MIB保留数据结构的最后一个MIB |
如果数值结构具有等于或小于逻辑扇区尺寸的大小,并被存储在一个MIB中,则把#FFFF放置在与该MIB相对应的映像项目中。在记录多个MIBs的数据结构时,在与非最后一个MIB的每个MIB相应的映像项目中,放置下一个MIB的MIB号,而在与最后一个MIB相应的映像项目中放置#FFFF。任何一个其映像项目有数值#FFF1的MIB表示该块未用并且数据结构需要新的MIB时该块是可以使用的。任何一个其映像项目为数值#FFF0的MIB,表示该块不适合使用(因为它是一个缺陷扇区或诸如此类)。
如图14所示文件表是由一个文件表首标和文件表数据构成的。文件表数据的结构取决于文件表首标的文件表结构类型。
文件表标题是按如下表30所示的这样方式记录的。
表30
文件表标题
BP |
长度 |
名称 |
内容 |
081214 |
84218 |
特征标记文件表数据的长度文件表结构类型文件表结构类型相关信息 |
特征标记Uint32Uint16字节 |
特征标记(BP 0)的数据类型字段设置为3。文件表数据的长度(BP 8)表示以字节号形式的文件表数据的长度。文件表结构类型(BP 12)定义文件表数据的结构。文件表结构类型相关信息(BP 14)设为针对每个文件表结构类型所确定信息。
在文件表结构类型是0的情况下,如图15所示,文件表是由文件表首标以及一个或更多文件记录构成。文件记录具有从0开始的递增顺序的连续号码,并且这样号码被称为文件记录号码。通过在下一个链接字段中设置下一个记录的文件记录号,生成文件记录的列表,并且该列表称为文件记录链。在文件表中所有的不用来构成文件记录链的那些文件记录被称做空白文件记录链。
在文件表结构类型是0的情况下,文件表标题必须按如下表31所示的这样的方式来记录。
表31
文件表首标
BP |
长度 |
名称 |
内容 |
0812141618 |
8422214 |
特征标记文件表数据的长度文件表结构类型文件记录数第一空白文件记录保留 |
特征标记Uint32Uint16(=0)Uint16Uint16#00字节 |
在特征标记(BP 0)的数据类型字段中设置3。文件表数据的长度(BP 8)设置成一个数目,该数目是通过用文件记录的长度与文件记录的号(BP 14)相乘得出的。在文件表结构类型(BP 12)中设置0。文件记录的号(BP 14)表示构成文件表的文件记录的数量。文件记录号具有等于或大于1但等于或小于#FFF0的一个数值。第一空白文件记录(BP 14)表示空白文件记录链的第一元素并且在文件表中不包括任何空白的文件记录的情况下在它这里设置#FFFF。保留(BP 18)留做未来扩展并在其上设置#00。
文件记录必须按如下表32所示的这样方式来记录。
表32
文件结构类型0的文件记录
RBP |
长度 |
名称 |
内容 |
024 |
224 |
文件ID文件类型属性 |
Uint16Uint16Uint32 |
812162432343638 |
44882222 |
建立时间修改时间数据长度数据位置子链路平级链路母链路扩展属性记录号 |
时间标记时间标记Uint64字节Uint16Uint16Uint16Uint16 |
文件ID(RBP 0)表示用来识别在文件记录链中具有相同文件类型的一个文件记录的数。文件类型(RBP 2)表示用于指示文件记录类型的数。属性(RBP 4)表示文件记录的属性或者文件记录所引用的数据。建立时间(RBP 8)表示产生文件记录日期和时间。修改时间(RBP 12)表示修改文件记录的时间和日期或者文件记录将涉及的数据。数据长度(RBP 16)表示以在字节为单元将由数据位置(RBP 24)引用的数据的长度,并且在不存在所涉及的数据的情况下在它这里设置0。数据位置(RBP 24)表示将由文件记录引用的数据的位置。字段的解释随属性(RBP 4)的数据位置类型(位1-2)的内容而改变。子链路(RBP 32)表示子文件记录的文件记录号,并且在不存在这样文件记录的情况下,在子链路中放置#FFFF。下一链路(RBP 34)表示构成文件记录链的下一文件记录的文件记录号,并且在文件记录是该文件链的最后一个时,在下一链路中放置#FFFF。
母链路(RBP 36)表示母文件记录的文件记录号,并且在该文件记录是根文件记录的情况下,该文件记录本身的文件记录号。即,0,被放置在母链路中。扩展属性记录号(RBP 38)表示文件记录所使用的扩展属性记录链的顶部扩展属性记录的数,并且在引用该扩展属性记录的情况下,在扩展属性记录号中放置#FFFF。
属性字段是按如下表33所示的这样方式来记录的。
表33
有效(位0)代表文件记录是否有效,并且在是0的情况下,这表示文件记录是不用的以及文件记录是包含在空白文件记录链中的。在该有效是1的情况下,这表示文件记录是使用的并且从根文件记录经子链路以及平级链路可以得到该文件记录。数据位置类型(位0-1)表示数据位置(RBP 24)的格式。在数据位置类型是00的情况下,这表示数据位置没有要引用的内容(在文件记录是目录的地方设置数据00)。在数据位置类型是01的情况下,数据位置表示下表34所示的一种格式,它包括分配盘区记录链的顶部分配盘区记录的号以及分配策略号。在数据位置类型是10的情况下,这表示该文件记录是一个子文件,并且该数据位置是用Uint64来表示做为母文件距由数据位置所指的数据的顶部的一个偏置。数据位置类型11用来留给未来扩展使用。
表34
类型01的数据位置文件
RBP |
长度 |
名称 |
内容 |
024 |
224 |
保留分配策略号第一分配盘区记录号 |
##00字节Uint16Uint32 |
保护(位3)表示文件记录受到保护。排序(位4)表示该文件记录所属于的文件记录链以文件类型的递增顺序排序并且在相同文件类型中,以文件ID的递增顺序排序。保留(位5-31)留做未来扩展之用。
如图16所示分配盘区表的结构是由一个分配盘表首标以及一个分配盘区记录或者一些记录构成的。分配盘区记录是由0开始以递增的顺序连续地编号的。这些号码被叫做分配盘区号。通过把下一记录的分配盘区记录号设置至下一分配盘区记录字段,产生了这些分配区记录的一个列表。这个列表被叫做分配盘区记录链。
分配盘区表标题是按如下表35所示的这样方式来记录的。
表35
分配盘区表标题
BP |
长度 |
名称 |
内容 |
0 |
8 |
特征标记 |
特征标记 |
8121620 |
4444 |
分配盘区记录的号第一空白分配盘区的记录第一缺陷分配盘区保留 |
Uint32Uint32Uint32#00字节 |
在特征标记(BP 0)的数据类型字段中设置4。分配盘区记录的号(BP 8)表示在分配盘区表中的分配盘区记录的号。第一空白分配盘区记录(BP 12)表示空白分配盘区记录链的第一单元。
当分配盘区表没有空白分配盘区记录时,就在这个字段中放置#FFFFFFFF。第一缺陷分配盘区记录(BP 16)表示有缺陷的分配盘区记录链的第一单元。当在分配盘区表中不包含缺陷分配盘区记录时,就在这个字段中放置#FFFFFFFF。保留(BP 20)留做未来扩展之用并在它这里设置#00。
分配盘区记录代表分配盘区的开始位置、结束位置以及属性和形成分配盘区记录链的下一分配盘区记录的位置。分配盘区记录是按如下表36所示的这样的方式来记录的。
表36
RBP |
长度 |
名称 |
内容 |
045681214162024 |
4112422448 |
开始逻辑扇区号分配策略号保留开始偏置结束逻辑扇区号保留结束偏置属性下一分配盘区记录分配盘区的长度 |
Uint32Uint8Uint8Uint16Uint32Uint16Uint16Uint32Uint32Uint64 |
开始逻辑扇区号(RBP 0)表示包含分配盘区的开始字节的逻辑扇区,并在它这里放置逻辑扇区号。分配策略号(RBP 4)表示安排分配盘区记录所根据的分配策略。保留(RBP 5)留做未来扩展之用并且在它这里设置#00。开始偏置(RBP 6)表示从包括分配盘区的开始字节的逻辑扇区的顶部字节至该开始字节的字节偏差,并且如果该开始位置等于逻辑扇区的顶部字节,则这里就放置0。
结束逻辑扇区号(RBP 8)表示包括分配盘区的最后字节的逻辑扇区的逻辑扇区号。保留(RBP 12)留做未来扩展之用并在它这里设置#00。结束偏差(RBP 14)表示从包括分配盘区的结束字节的逻辑扇区的顶部字节至该结束字节的偏差,并且如果该结束字节等于逻辑扇区的顶部字节,则这里就放置0。由属性所指示的数据是按如下表37所示的这样意思来标识的。
表37
在分配盘区记录状态(位0-1)是01的地方,这种分配盘区记录指示一种有效分配盘区并允许正常读出。在这些位是11的地方,这种分配盘区记录指示一种有效分配盘区,但是指示有这样的可能性,即由于出现缺陷扇区或者诸如此类而不允许正常读出。在这些位是00的地方,这指示目前不能用该分配盘区记录并且该分配盘区记录可用来安排一个新的分配盘区。在这些位是10的地方,这指示由分配盘区记录所指的分配盘区不仅根本不被引用,而且由于包括了一个缺陷扇区因此不适合用它来安排一个新的分配盘区。保留(位2-31)留做未来扩展之用并且在它这里置0。
下一分配盘区记录(RBP 20)指定构成分配盘区记录链的下一分配盘区记录的号。在分配盘区记录是该分配盘区记录链的最后一个单元的情况下,在该下一分配盘区记录中放置#FFFFFFFF。分配盘区的长度(RBP 24)表明由分配盘区记录以字节数目形式所表明的分配盘区的长度。从开始逻辑扇区号(RBP 0)、开始偏差(RBP 6)、结尾逻辑扇区号(RBP 8)结尾偏差(RBP 14)计算所确定的字节数目等于放置在分配盘区的长度的字段中的字节数目。
分配策略表指定由AV文件系统在逻辑卷中用来安排数据的所有分配策略。如图17所示的分配策略表包括分配策略表首标和分配策略记录或者多个记录。
参照图17,分配策略表标题是以下表38所示的这样方式来记录的。
表38
分配策略表标题
BP |
长度 |
名称 |
内容 |
0810 |
826 |
特征标记分配策略记录号保留 |
特征标记Uint16#00字节 |
在特征标记(BP 0)中置5。分配策略记录的号(BP 8)指定在分配策略表中分配策略记录的号。保留(RBP 10)为未来的扩展而保留并在它这里放置#00。
所有分配策略记录是用来指定所有分配策略的。分配策略记录是以如下表39所示的这样方式来记录的。
表39
分配策略记录
RBP |
长度 |
名称 |
内容 |
02458 |
2213X1 |
分配策略记录的长度分配策略类型分配策略号保留分配策略类型相关数据 |
Uint16Uint16Uint8#00字节字节 |
分配策略记录的长度(RBP 0)指定以字节数的形式的分配策略记录长度。该长度是8的倍数。分配策略类型(RBP 2)指定分配策略记录的类型。分配策略号(RBP 4)指定该分配策略记录哪个编号的记录是在分配策略表中,并且如果分配策略记录是第一记录,则把0放在分配策略号中。保留(RBP5)为未来的扩展而保留并在它这里放置#00。分配策略类型相关数据(RBP 8)把为每个分配策略类型所确定的内容放在它这里。
在分配策略类型0中,会遇到下列条件。首先,分配盘区一定被安排在由分配策略记录的开始逻辑扇区号(RBP 8)与结尾逻辑扇区号(RBP 12)所定义的一个区域中。其次,在逻辑扇区的部分被分配至某分配盘区的情况下,该逻辑扇区的任何字节就都不属于其它分配盘区了。第三,分配盘区的顶端与逻辑扇区的顶端相重合。分配策略类型0的分配策略记录是以如下表40的这样方式来记录的。
表40
分配策略类型0的分配策略记录
RBP |
长度 |
名称 |
内容 |
0245812 |
221344 |
分配策略记录的长度分配策略类型分配策略号保留开始逻辑扇区号结尾逻辑扇区号 |
Uint16(=16)Uint16(=0)Uint18#00字节Uint3Uint32 |
在分配策略记录的长度(RBP 0)中置16。在分配策略类型(RBP 2)中置0。分配策略号(RBP 4)指定分配策略记录哪个编号的记录是在分配策略表中并且如果该分配策略记录是第一记录时,则在分配策略号中置0。保留(RBP5)为未来的扩展而保留的并且在它这里置#00。开始逻辑扇区号(RBP 8)指定安排该分配盘区的顶端逻辑扇区号。结尾逻辑扇区号(RBP 12)指定安排该分配盘区的区域的最后逻辑扇区号。
分配策略类型1的分配策略记录是以如下表41所示的这样方式来记录的。
表41
分配策略类型1的分配策略记录
RBP |
长度 |
名称 |
内容 |
024581016 |
22132616X1 |
分配策略记录的长度分配策略类型分配策略号保留存储区的号(=X1)保留存储区信息记录 |
Uint16Uint16(=1)Uint8#00字节Uint16#00字节 |
分配策略记录的长度(RBP 0)具有分配策略记录的长度,即,在这里设置16+16X1。在分配策略类型(RBP 2)中置1。分配策略号(RBP 4)指定分配策略记录哪个编号的记录是在分配策略表中,并且如果分配策略记录是第一记录,则在分配策略号中置0。保留(RBP 5)为未来的扩展而保留。存储区的号(RBP 8)指定在分配策略记录中存储区信息记录的号。保留(RBP 10)为未来的扩展而保留并在这里置#00。存储区信息记录(RBP 16)在这里放置了由存储区的号(RBP 8)所指定的存储区信息记录的号。存储区信息记录是以下表42所示的方式来记录的。
表42
存储区(zone)信息记录
RBP |
长度 |
名称 |
内容 |
04812 |
4444 |
开始逻辑扇区号结束逻辑扇区号分配单元的长度保留 |
Uint32Uint32Uint32#00字节 |
开始逻辑扇区号(RBP 0)指定该存储区的开始逻辑扇区号。结束逻辑扇区号(RBP 4)指定该存储区的结束逻辑扇区号。分配单元的长度(RBP 8)指定要安排进该存储区的一个分配单元。保留(RBP 12)为未来的扩展而保存的并在这里放置#00。
缺陷信息表用来在逻辑卷中记录缺陷扇区的逻辑扇区号。缺陷信息表是以如下表43所示的这样方式来记录的。
表43
缺陷信息表
BP |
长度 |
名称 |
内容 |
081216 |
8444X1 |
特征标记缺陷扇区的数目(=X1)保留缺陷扇区地址 |
特征标记单元32#00字节字节 |
在特征标记(RP 0)的数据类型字段中置6。缺陷扇区的数目(BP 8)指定由(BP 16)开始的整个缺陷扇区地址的数目。保留(BP 12)是为未来的扩展而保留的并在这里置#00。缺陷扇区地址(BP 16)指定在逻辑卷中有缺陷的缺陷扇区的逻辑扇区号。一个项目是由单元32构成的,并且在缺陷扇区地址中所记录的逻辑扇区号的值是以一种递增顺序存储的。
如图18所示扩展属性表是由扩展属性表首标以及扩展属性记录或多个记录构成的。在扩展属性表中的扩展属性记录是由0开始以递增的顺序来编号的,并且该码被称为扩展属性记录号。扩展属性记录的列表是通过把下一记录放到下一扩展属性记录字段中来产生的并称为扩展属性记录链。在扩展属性表中不用的那些扩展属性记录形成了称做空白扩展属性记录链的一个列表。
扩展属性表首标是以如下表44所示的方式来记录的。
表44
扩展属性表首标
BP |
长度 |
名称 |
内容 |
081012 |
8224 |
特征标记扩展属性记录的号第一空白扩展属性记录保留 |
特征标记Uint16Uint16#00字节 |
特征标记(BP 0)的数据类型字段中设置7。扩展属性记录的号(BP 8)指定在扩展属性表中扩展属性记录的号并且等于或小于#FFF0。第一空白扩展属性记录(BP 10)指定空白扩展属性记录链的第一单元,并且在该扩展属性表不包括空白扩展属性记录的情况下,把#FFFF置在该第一空白扩展属性记录中。保留(BP 12)是为未来扩展而保留的并在这里置#00。
扩展属性记录是以下表45所示的方式来记录的。
表45
扩展属性记录
RBP |
长度 |
名称 |
内容 |
02 |
230 |
下一扩展策略记录扩展属性信息 |
Uint16字节 |
下一扩展属性记录(RBP 0)指定构成扩展属性记录链的下一扩展属性记录的号。在扩展属性记录是最后扩展属性记录的情况下,在下一扩展属性记录中置#FFFF。
大多数现存文件系统是在这样的假设下设计的,即假设介质的缺陷扇区处理是在位于该文件系统之下的一个层中进行的(例如,在一个驱动器中的替换处理)。在这些文件系统中,不能鉴别有缺陷的扇区在哪里,并且尽管在文件系统试图存取介质的无缺陷部分的情况下,数据能够以驱动器的原始传输速率被存取,在文件系统试图存取已经执行了替换处理的该介质的一部分的情况下,数据只能够以更加低于驱动器的原始传输速率被存取。
如上所述的这样的构造对于常规计算机应用来说是没有问题的,因为,尽管要求提高平均存取时间,但不要求单个存取时间的估算。不过,在音频和视频应用时,如果在一段固定的时间内没有提供固定数量的数据,则就不能正确地记录或再现声音或图像。并且,因此这就要求文件系统能够对原始数据存取所需的时间进行估算。
因此,本文件系统介绍不必在一个较低层进行缺陷扇区处理的设想并且使得精确地估算文件系统存取数据所需的时间成为可能。另外,在本文件系统中,准备了用于缺陷扇区处理的字段或者标记,这在常规文件系统中还没使用过,因此,可以利用该字段或者标记来进行缺陷扇区的处理。这里,描述利用本文件系统所准备的功能来进行缺陷扇区处理的一个例子。
通常,在下列情况之一检测到一个缺陷扇区。首先,在写入期间产生了一个误差,并检测到一个缺陷扇区。其次,尽管正常地完成了写入的操作,但是当写入后立即读取该写入的部分时检测到一个误差。第三,尽管正常地完成了写入操作之后立即进行了写入和读出的操作,但是当间隔一段时间后进行读出时检测到一个误差。
在第一或第二种情况下,通过写入后立即进行读出,以及通过进行一种进一步确认的操作确认数据已经被正确地写入,就能够检测到误差并通过写入来进行处理。该操作被称为写和核对。
在第三种情况下,误差是由于光盘上的灰尘或者损坏所带来的错误引起的。对于这种情况,没有完全有效的措施。不过,通过采用多次写入能够大大地减少数据丢失的可能性。本文件系统原则上采用两种技术以进行缺陷扇区的管理,即写和核对以及多次写入。
卷结构是由这些构成的:卷结构描述符、介质信息描述符、驱动器信息描述符以及扩展数据描述符。按下列方式对如此信息的缺陷扇区进行处理。
卷结构描述符,介质信息描述符、驱动器信息描述符以及扩展数据描述符是由每个MIA管理的。通过在记录时一定进行写和核对MIA能够确定地记录一个非缺陷扇区。另外,考虑到缺陷,这有可能是在记录之后发生的,两个MIA是一种交叠的关系被记录在不同的位置上,并且,用于管理在MIAs中使用的情况的两个IMIA映像以交叠的关系记录在不同位置上。
另外,在由该卷管理系统定义的一种逻辑卷中,针对构成该逻辑卷的分区,通过跳过或者线性替换,能够进行缺陷管理。
缺陷扇区是由AV文件系统按下列方式来处理的。具体来说,当AV文件系统执行写入AV文件系统描述符时,它执行写和核对操作以确认已经正确地完成了写入操作。如果AV文件系统在写入过程中发生了失败,则它把AV文件系统描述符写在不同位置上并重写这些逻辑卷内容使用字段的内容。另外,AV文件系统在两个不同位置上写入两个AV文件系统描述符以保证高可靠度。
当AV文件系统执行写入MIA中的扇区时,它执行写和核对操作以进一步确认已经准确地完成了写入操作。如果在写入过程中AV文件系统失败了,则它把#FFF0写入MIA映像之一的整个字段中,并对其它MIA的扇区执行相同操作顺序。另外,AV文件系统在逻辑卷的两个不同位置上写入MIA,以确保高可靠度。
AV文件系统在操作过程中所检测到的每个缺陷扇区,被寄存到缺陷信息表中,因此以后就不再使用它们了。
对于记录在分配盘区的数据,有时会发生从一个为了传输速率的需要不能进行写和核对操作,并且只能执行写操作。在任何情况下,当检测到一个缺陷扇区时,AV文件系统把该部分确定为一个独立分配盘区并且把10放入相同的分配盘区记录的分配盘区记录状态中;因此该分配盘区就可以被放入缺陷分配盘区记录链上。如果在读出操作中在一个分配盘区检测到一个缺陷扇区。则AV文件系统把11放入分配盘区记录链上。当执行分配盘区的释放时,检测到缺陷扇区,并且该缺陷扇区部分做为一个其分配盘区记录状态是10的分配盘区,被寄存到缺陷分配盘区记录链上。
图19示出本发明所适用的一种记录和/或再现装置的构造。通常以1表示该记录和/或再现装置,并且这样地构造它,以便当把光盘8装入其中时,它或者可以把从外部加入的(个人计算机)PC数据和把视频信号和音频信号记录到光盘8上,或者读出光盘8上所记的信号并把该信号输出。
用户输入/输出部分2包括键盘11和液晶显示单元(LCD)12。键盘11产生与用户对键盘操作相对应的一个信号并把该信号送到系统控制单元5。根据从系统控制单元5送来的信号,LCD 12显示记录和/或再现装置1的状态与在记录和/或再现装置1上所装载的光盘8相关的信息等等。
AV输入/输出部分3包括一对编码器/解码器13和14以及多路复用器/解复用器15,它们响应从系统控制单元5送到这里的信号的控制。另外,AV输入/输出部分3把代表每个编码器/解码器13和14以及多路复用器/解复用器15的一个信号送至该系统控制单元5。
在记录过程中编码器/解码器13,压缩(编码)由外部送来的视频信号,并且输出与视频信号相对应的一种预置的系统的视频数据至多路复用器/解复用器15。但是在再现过程中,编码器/解码器13解压缩(解码)多路复用器/解复用器15送来的该预置的系统的视频数据并输出该解压缩的(解码的)视频数据。在记录过程中,编码器/解码器14压缩(编码)从外部送来的音频信号并输出与音频信号相对应的一种预定的系统的音频数据至多路复用器/解复用器15。但是在再现过程中,编码器/解码器14解压缩(解码)由多路复用器/解复用器15送来的预定的系统的音频数据并输出该已解压缩(解码)的音频数据至外部。
在记录过程中,多路复用器/解复用器15复用由编码器/解码器13和14分别送来的预定系统的视频数据和音频数据,并将多路复用的数据送到驱动器单元7。另一方面,在再现过程中,多路复用器/解复用器15解复用由驱动器单元7送来的已复用的视频数据和音频数据并输出该视频数据至编码器/解码器13以及输出音频数据至编码器/解码器14。
PC数据输入/输出单元4包括接口16,并且根据由系统控制单元5送来的信号,控制该接口16,由此把代表接口16的状态的信号输出至系统控制单元5。接口16接收由外部个人计算机(未示出)等送来的一种预定形式的PC数据做为输入,把该PC数据转换成驱动器单元7能读的数据,并把该数据输出至该驱动器单元7。另外,接口16按照一种预置形式把由驱动器7送来的数据输出至外部个人计算机等等。
系统控制单元5,根据用户输入/输出部分2、AV输入/输出部分3、PC数据输入/输出单元4以及文件管理单元6的状态,控制用户输入/输出部分2、AV输入/输出部分3、PC数据输入/输出单元4和文件管理单元6。
文件管理单元6,响应来自系统控制单元5的信号,控制驱动器单元7,并把与驱动器单元7的状态相对应的信号送至系统控制单元5。
驱动器单元7操作缓冲器17、ECC电路18、调制/解调电路19以及拾取器20,并且响应来自文件管理单元6的一些信号来操作这些电路以便把信号记录到光盘8上或者从光盘8上读出信号。
缓冲器17暂时存储由AV输入/输出部分3送来的或者由PC数据输入/输出单元4送来的数据,并以这样一种可以不中断的方式输出该数据至ECC(纠错码)电路18。另外,缓冲器17暂时存储由ECC电路18送来的数据并以这样一种方式即可以不中断地把该数据送至AV输入/输出单元3或者PC数据输入/输出单元。
ECC电路18把从缓冲器17送来的数据加上纠错码把所得数据送至调制/解调电路19。另外,ECC电路18根据纠错码对由调制/解调电路19送来的数据进行纠错并输出所得的数据至缓冲器17。
调制/解调电路19把由ECC电路18送来的数据调制成一种预定的系统的数据并把得出的数据输出至拾取器20。另外,调制/解调电路19根据该预定系统解调由拾取器20送来的数据并输出该解调的数据至ECC电路18。
根据由调制/解调电路19送来的数据,拾取器20把数据记录到记录和/或再现装置1上所载的光盘8上。另外,拾取器20读取在光盘8上所记录的数据并把读出的数据输出至调制/解调电路19。
图20A至20B图示在缓冲器17中所记录的数据的量与在再现过程中把该数据写入缓冲器17的速率之间的关系。按这样一种方式把从缓冲器17输出的数据的读出速率Rout控制为高于一个预置值的一个固定值上,以使从编码器/解码器13和14的信号的输出不会中断。当读在其上记录了一种预定文件的光盘8的这些扇区时,送至缓冲器17的数据的数据写速率呈现如图20B所示的一种固定值Rin。同时,当拾取器20在光盘8的轨迹间移动时或者当拾取器20等待光盘8的旋转直至一个预定扇区到达可以由拾取器20读盘的位置上时(图20B的一段时间Ts),数据写速率呈现0。
因此,当写入缓冲器17的数据写速率是0时,由于在缓冲器17中所记录的数据以读出速率Rout只读出,因此如图20A所示数据的数量突然下降。根据固定值Rin以及数据读出速率Rout,来确定能够存入缓冲器17的数据的数量,按照这样一种方式使得数据的读出不会中断。
图21示出在光盘8上所记录的一个文件的构造。这些块是通过用相等大小来划分整个盘得出的并且这些块在物理上彼此连续。另外,在每个块中,以速率Rin来实现数据的传送。在一个或多个块上记录一个文件的数据。因此,这些块被划分成记录了部分文件或整个文件的那些块以及未记录任何文件的数据的那些块。在一个块中所记录的一个文件的数据量小于该块的大小的情况下,紧接该文件之前的块满满地记录了数据。
图22A至22D,示出文件的构造以及缓冲器17中所存的数据量。图22A示出块中所记录的文件。块31满满地记录了文件的数据。接着块31的另一块32部分地记录了该文件的数据。还有一块33满满地记录了另一个文件的数据,接着块33的另一块34部分地记录了该文件的数据。
图22B示出当读出图22A中所示这些块时,进入缓冲器17的写速率。当读出块31时,由于它是物理地连续的,因此进入缓冲器17的写速率是一个固定值Rin。类似地,当读出块32时,当读出块33时,以及当读出块34时,进入缓冲器17的写速率是一个固定值Rin。
当结束从块31的读出操作后进行块32的读出时,块31与块32不必物理地相互连续,并且如果它们不相互连续,则拾取器20等待光盘8的旋转同时它在光盘的轨迹间移动或者直到一块预定扇区进入到它能够由拾取器20读的位置上。因此,出现了一段间隔Ts1,在此时期进入缓冲器17的写速率降至0。类似地,当在块32的读了之后进行块33的读出时,出现另一个间隔Ts2,在此时间段中进入缓冲器17的写速率降至0,并且当在完成块33的读出之后进行块34的读出时,出现一个间隔Ts3,在此时间段中进入缓冲器17的写速率降至0。
图22C示出从缓冲器17读出的数据读出速率。数据读出速率通常呈现固定值Rout。图22D示出缓冲器17中所存的数据量。与图20A相类似,缓冲器17的数据量是以与写速率Rin与读出速率Rout之差相对应的速率增长的,并且当进入缓冲器17的数据写速率呈现0时,由于仅仅进行从缓冲器17的读出,在缓冲器17中所记录的数据量突然降低,尤其是当读出其上仅仅部分地记录了文件的数据的块32或者块34之后数据写速率成为0时,在缓冲器17中所记录的数据量以一个高速率降低,并且因此,为了防止可能的下溢,缓冲器17必须具有高于一个预定水平的存储容量。
图23示出在光盘8上所记录的一个文件的构形的另外一个例子。在图23所示的构造中,一定用超过一半而非整个块来记录一个文件的一部分或者整个的数据。
图24A至24D示出在以图23所示的这样的方式来构筑该文件时缓冲器17的数据量的变化。图24A示出块中所记录的文件,在图24A中,一个文件被记录在块51至54的每个中的大半块上。
图24B示出当读出图24A所示的块时进入缓冲器17的写速率。当将要读出块51时,由于块51是物理连续的因此进入缓冲器17的写速率是固定速率Rin。类似的,当读出块52时,当读块53时以及当读出块54时,进入缓冲器17的写速率是固定值Rin。
当结束块51的读出之后进行块52的读出时,如果它们物理地彼此分开时,则出现一个间隔Ts4,在此期间进入缓冲器17的写速率降至0,类似地,当结束块52的读出之后进行块53的读出时,出现一个间隔Ts5,在此期间进入缓冲器17的写速率降至0,以及当结束块53的读出进行块54的读出时,出现一个间隔Ts6,以此期间进入缓冲器17的写速率降至0。
图24C示出从缓冲器17的数据读出速率。该数据读出速率总是固定值Rout。图24D示出在缓冲器17中所存数据量的变化。当进入缓冲器17的数据写速率降至0时,在缓冲器17中所存的数据量突然下降。当与图22D中所示的缓冲器所存的数据量相比时,由于在每个块51、52、53和54中的每一个存有超过该固定量(1/2)的数据,因此在缓冲器17中所存数据量接近0的可能性低于22D所示的情况。
图25A和25B示出通过文件管理单元6把一个文件放入块的记录处理过程。描述如图25A所示的一种情况的处理过程。其中文件的数据被记录至块71至73并且小于块74的一半的数据量的文件75被最新记录至块74。如图25B所示,在块73中所存的文件划分为前半部分81和另外后半部分82,前半部分81占据块73的一半,后部分82被移至块74的顶部。文件75记录在块74的跟着的后半部分82上。
如上所述,任何记录了部分或整个一个文件的块具有超过该块一半的该文件。
上述处理过程可以按如图26的流程图中所示的方式来总结。参照图26,在步骤S31,文件管理单元6鉴别将要记录至特定块的数据量是否小于块的一半。如果将要记录的数据量的小于块的一半,则控制前进到步骤S32,在此把刚好在前于该特定块的一个块的后半的数据的分开并记录至该特定块,然后在步骤S33处,文件管理单元6把其数量小于一块的一半的数据接着记录至该特定块。
然后,在步骤S34,文件管理单元6判断是否已经记录了所有数据。然后,如果判断出还没记录所有数据,则控制返回步骤S31以重复上述处理过程。
如果在步骤31判断将要记录的数据量不小于一块的一半,则控制前进到步骤S35,在这里文件管理单元6判断将要记录的数据量是否小于一块。如果将要记录的数据量不小于一块,则控制前进至步骤S36,在这里文件管理单元6记录一个块的数据,然后控制前进到步骤S34。
如果在步骤S35中判断出将要记录的数据量小于一块,则控制前进至步骤S37,在这里文件管理单元6把该数据记录至一块,然后,控制前进至步骤S34。
如果在步骤S34判断出已经记录了所有数据,则处理过程结束。
图27A和27B示出划分一个记录至块的处理过程。描述如图27A所示的这样的处理,即当一个文件记录至块91至93,并且这个文件被划分成从块91的开始点至块92的分隔点(该点位于块92的一半的前侧)的一个文件和从块92的该分隔点至块93的末端点的另一个文件的时候。如图27B所示,从开始点至分隔点领先于块92的部分95的块91的数据被一分为两部分,并且它们中的后半部分94被移至块92。接着移至块92的后半部分94存储块92的前部分95。另一方面,从分隔点至终点的块92的部分96被存入一个新块101。
图28A和28B示出一个文件的划分处理过程的另外一个例子。描述当在分隔点处划分块111至114中所记录的单个文件时的处理过程,该分隔点位于块112的一半位置的前面。
如图28B所示,如果块111具有足以允许记录块112的从它的开始点至该分隔点一个部分115的区域的话,则接着已记录在块111的文件记录块115。从分隔点至数据的末端的块112的部分116移至以块112的开始点为开始的位置。在块113的整个范围中记录的块113的数据被分为两部分,并且它俩中的前半部分117移至块112并接着块112的部分116被记录。块113的另外的后半部分118移至以块113的开始点为开始位置。
图29A和29B示出划分在块中记录的文件的处理过程的再一例子。描述在如图29A所示的当在一个给出的分隔点处划分块121至123中所记录的单一文件时的处理情况,该给出的分隔点是块122的中点。如图29B所示,从该分隔点至数据的末端的块122的部分124被存在一个新块131的顶端。在块123的整个范围中所记录的块123的文件分为两部分,它俩之一的前半部分125接着部分124存入块131,而另外的后半部分126移至块123的顶端。
如上所述,即使划分了一个文件,任何块都记录有超过其块的一半部分的文件。
在图27A和27B中所示的划分文件的处理情况中,其中从开始点至块的分隔点的数据的量级小于块的大小,而分隔点往后的数据的大小等于或大于一个块的一半的量级,这在图30的流程图中示出。参照图30,首先在步骤S41处,文件管理单元6把具有分隔点的块的位于该分隔点之后的那部分的数据移至新块。在步骤S42处,文件管理单元6把恰好在具有分隔点的另外一块之前的预定的数据移至以具有分隔点的块的开始点开始的位置,并移动具有分隔点的块的其范围从开始点至该分隔点的数据至接着这样移动的预定数据的位置。
图28A和28B所示的划分一个文件的处理过程,其中恰好在具有分隔点的块的前部的一个空白部分大于从开始点至分隔点的该具有分隔点的块的数据的量级,而该分隔点之后的数据的量级小于一个块的一半的量级,这在图31中示出。参照图31,首先在步骤S51,文件管理单元6把从开始点至分隔点的具有分隔点的块的数据移至恰好在具有分隔点的块的那个块的空白部分。在步骤S52中,文件管理单元6把恰好接着具有分隔点的块的预定的数据移至具有分隔点的块的数据之后的位置。
图29A和29B中所示的划分文件的处理过程其中一块从开始点至分隔点的数据的量级等于或大于一个块的量级的一半,而该分隔点之后的数据的量级小于一个块的量级的一半,这在图32的流程图中示出。参照图32,文件管理单元6在步骤S61处把分隔点之后的数据移至一个新块,在步骤S62,文件管理单元6把紧跟着具有分隔点的块的另一块的预定的数据移至该新块的数据之后的位置。
根据一块从开始点至分隔点的数据的量级是否等于或大于一个块的量级的一半来执行上述的处理过程的同时,还可以根据这样的数据的量级是否等于或大于(n-1)/n(n=2,3,4,5,...)来执行上述的处理过程。
图33A和33B示出在三个连续的块的空白区域的总和等于或大于一个块的区域的情况下,对这些块的空白区域进行压缩的处理情况。如图33A所示,块141至块143的空白区域的总和等于或大于一个块的区域。块142中所存的数据分成部分144和余下部分145,该部分144具有等于块141的空白区域的量级的量级。
如图33B所示,块142的部分144移至块141的空白区域。块142的部分145移至块142的顶端,块143的数据146移至块142并接着部分145被存储。块143变成了空白。
以这种方式,能够使块141和142的空白区域最小化而且使块143空白。
如图34的流程图中所示能够概括上述的处理情况。参照图34,文件管理单元6在步骤S71处判断三个块的空白区域的总和是否等于或大于一个块的区域。如果判断出这些三个块的空白区域的总和等于或大于一个的区域,则控制前进至步骤S72,其中等于顶端块的空白区域的数量的数据被从中间块移至该顶端块的空白区域。然后在步骤S73,文件管理单元6把最后块的数据移至得到的中间块的空白区域中,然后结束处理过程。
如果在步骤S71处判断出三个块的空白区域不等于或者大于一个块的区域,则结束处理过程。
如上所述,记录有部分或整个文件的任何块记录了超过块的一半或更多的数据,并且分散了其写速率降至0的间隔。因此,即使缓冲器17的能力是小的,其输出也不会中断。
应该注意到,用于为用户提供能实现如这里描述的这样的处理过程的一种计算机程序的该提供介质可以是:一种记录介质诸如磁盘、CD-ROM或者一种固态存储器或者一种通信介质诸如网络或者一个卫星。