本发明涉及数字信号记录设备,具体说,就是那些用于存储相对大量的小记录的设备,其中,这些小的记录之间通常用记录间隙或者同步信号分隔开並且这些记录是可变长度的。 Milligan等的美国4,393,445号专利;Milligan等的美国4,435,762号专利;Cole等的美国4,603,382号专利;Bauer等的美国4,423,480号专利和Fry等的美国4,403,286号专利给出了一种很好地使用了本发明的磁带子系统,並给出了启动和控制这种磁带子系统的读出和记录操作的方法。
数字信号记录装置(如附接到主处理机上的记录设备)将记录以单个的可寻址单元记录在磁带子系统上。这种可寻址单元是一种记录在磁带上的信号块,就如前面所述文献内所描写的那样。磁带上的每一个这种块被所谓块间隙(IBG)隔开,块间隙可以是磁带上被抹去的部分、单音或者可以标明IBG存在的其它专用符号。一般来说,这种IBG是相当长总,比如,大于0.1厘米。当记录含有大量的小块记录时,IBG就占据磁带的相当大一部分而减小了其存贮容量。人们期望提供一种记录这种小记录的更有效的方法、装置和格式,对于那些变长的或者开始接收时不知道其长度的记录尤其如此。这就是说,每一文件中地记录长度是由主处理机决定的,这些文件中可能包含许多记录。一个文件中的所有记录通常具有同样的长度,比如973个字节,在同一磁带所记录的其它文件里,记录长度可能不同,比如3300字节,对此没有限制。而在又一个文件里,一个记录可以是64000字节。需要提供一个增强的记录格式,其无需主处理机的软件干予。也希望提供不同长度的若干记录,能被录入同一磁带而无需主处理机干予,並在录入磁带后,能忠实地重现这些组合的记录。
类似的问题也出现在采用固定块长结构的磁盘和光盘上。在这种结构中,每一磁道被分割成等大小的许多扇区,每一扇区可以贮存预定数量的字节,比如2048字节。在这种磁道上记录大量小的记录,比如每一个333字节的记录就需要2024字节的盘空间来存放。这就是说每一扇区有1600多个字节的空间被浪费了。同样,在没有可识别的扇区的计数或数据(CKD)*格式中,以此格式录入的每个小记录被块间隙用前述磁带上同样的原理分隔开,就象相关文献内所描述的那样。所以。本发明也可以如磁带上同样的方式用于这种盘或其它记录装置上。
所谓包通信系统是把多个包组合成一个信号传输块。所有包都具有固定长度,即,不能是本发明所考虑的可变长度。这种包系统常常用于在同一通讯信道上插入多个通讯消息。所有这些的目的就是要利用上述穿插的包分派制度,在一个信道上得到有序的数据流。这种包通讯系统的例子见Braff等的美国专利4,644,533;Fernow等的美国专利4,475,192。
Yamauchi的美国专利4,800,550给出了一种具有多种格式的记录和恢复系统的光盘。其格式的差别在于同步信号间的间隔不同。如已知道的,该专利在单一录入盘上提供两种不同的扇区长度,这种盘不存在发明背景中所列的问题。
本发明的一个观点是,就录入的记录长度来说,若该长度小于某一预定值,则把多个这种记录组合成一个信号块並记录在存贮介质上。在读出或检测这些录入的块时,就检测记录在该块开头处的一专用识别号(ID)(作为一种标头(header),它可以是一个块内某记录的一个包的标头),它指示该块中是否有一个以上的记录、这些记录的大小以及其它控制信息。本发明的一个特有形式是,给每一块指定一个序号;当多个记录被录入同一块时,存贮介质内的每一个记录都指定一个序号,给块指定一个块号,它表示录入该块的第一个记录。块内的每个记录构成一个“包”。组合在给定块内的记录的大小可以各不相同。
通过下面结合附图对本发明更具体的详细说明,就可以明白本发明的以上所述以及其它目的、特性和优点。
图1所示说明了先前文献(比如前面所列的参考文献美国专利号4,463,286所述系统)所用的一种块格式。
图2是在图1所述程式中加入了本发明的主张的图示说明。
图3图示说明了当应用本发明时,在图1所示格式的数据部分中包号和记录号的约定。
图4图示说明了使用图1格式但加入了本发明以使其能在一种存贮装置中采用多种不同的数据格式的磁带。
图5图示说明了与图2所述格式联合应用的自动块表ABT的简略形式。
图6是一种简化的机器工作流图,它说明了利用本发明的自动分组(autoblocking)概念把信号录入存贮介质的过程。
图7是利用本发明的格式从存贮介质上读出数据操作的工作流程图。
现在具体看这些图,各图中,同样的号表示同样的结构和操作。图1给出了现有的磁带上的数据块,其两头有一对块间隙(IBG)10和11。块12在其面向磁带开头的一端,其第九或十八磁道有一组时钟同步信号13。同步部分13之后是贮存的数据记录14。块尾15包括物理参照号16(PHY REF)、标志区F17和块识别标记(块ID)18。物理参照号16指示其沿磁带长度的通用物理位置,而块识别标记18是前面所列参考文献所述的分配给每一磁带记录的每一块的序号。
块控制段20包括填充字节21(它使块12的长度是与其格式相兼容的某一字节数的整数倍)、残余计数区22(它指示填充字节21的数目)和块CRC(它用以检验块12数据的正确与否)。当然记录14也包括其自己的检错的纠错冗余码。后同步信号组24结束该数据块。同步信号13和24是对称的,这使记录可被正读和反读,即可从磁带的开头读出或者向磁带的开头读出。
图2说明了本发明的实施例中实际生成的记录14的格式安排。每一块可被分为多个包PKT30-34,每包有一个记录。包计数(PKT CNT)35指示一块内包的数目。字节计数区36指示主机所提供的记录原始长度的和。该实施例中推荐的块长是约64KB(千字节)。根据放到特定包中记录的大小不同,一个块内的包数差别很大,以便容纳长度可变的记录。所有包都具有同样的格式。最接近磁带开头的包的部分是记录识别标记(ID)40,它指示贮存在该包内的该记录的序号(或串号)。相对位置区41指出贮存在该包内的记录46的最后一个字节的位置。该块内下一包(比如包31)的字节地址分别由其相对位置值区41和区43表示的尾长来表示。以这种方式,一块内的包30-34的每一个都可以用字节地址区並从字节相对位置寻址来定位和描述。记住:这种字节寻址从同步区13的结尾开始直到记录区14的结尾。区PF42是包标志区,它含有关于当前包的信息。比如,PF区42内的标志可以指示该包是不是该记录的包块内的最后一包,若一个块内只有一包,当然,其PF区42内应有最后包指示。包标志区42可以指示关于记录区46的格式信息,它可以使贮存的记录使用各自的不同的数据表示方案。具体说,PF区42标记现行包以及现行包中数据的格式。这种标识可使每一包数据使用与其它数据包所用格式不同的它自己的特定格式。尾部长度区43中的值表示由区47到48组成的尾部部分中的字节数。包的尾部长度区43处于数据包的台头部分,它包括区40-45,它们在缓冲区处理时可以容易地找到下一后续包的台头。在填充区44中写入预定数目的零字节以使在BUF CRC区45中缓冲的CRC字节是该台头部分的最后两个字节。在区45中的该CRC字节只对由区40-45组成的台头部分内包含的数据进行错误监督。台头之后是记录区46中的真实数据。结尾部分包括填充区47,其后面是缓冲CRC区(BUF CRC)48,填充区47由可变数目的字节组成。填充区47中的填充字节的数目应使缓冲的CRC区48总是录入的一固定长度(32字节)的数据页面(也称为缓冲页面)的最后两个字节。有关上述一个块的约定,请注意先前的记录格式並不包含这种32字节的缓冲页面或数据页面。关于上面所述的块方案,请注意以前的记录格式不包括32字节缓冲或数据页面。由于人为的原因,实施例中所述的包长是32字节的整数倍。缓冲CRC区48也是包30的最后部分。紧接区48的是数据包31的记录标识区49的第一个字节。所有包的识别都是通过上述41区的相对位置值和43区所示的尾部长度来实现的。由于每一包都有关于下一包位置的信息,所以每一数据块12中的包的长度可以是变化的。也应明白记录部分14的检错和纠错系统没有在图2中给出,但是,如所周知,它是在离开缓冲区之后和录入磁带之前被自动插入和抹除的,並且在数据被作为已纠错数据放到缓冲器之前它已被抹除了。
按照本发明的一种情形,块识别标记18也用作格式改变标记(FCM)。在图1所示的格式例子中,块12具有一多字节的记录14。当从块12读出时,控制部件(见所列参考文献)首先分析块ID18。当该块ID18的信号码型如同先箭的技术一样给出了一个序号时,则该记录14是用户数据。另一方面,可以使用独特的信号码型不是用来指示序列块的编号而是把块ID作为贮存介质上信息格式改变的指示器。两种这类改变的例子是从图1所示的先前技术的格式变为图2-4所示的本发明的格式,以及从图2-4所示的格式变回到先前的格式。该格式改变标记(FCM)只需表征新格式,这样在记录介质内就可以使用多重格式。FCM允许在一文件内改变记录的格式(TM磁带标记表示文件的头和尾)。因为数值和控制码型的选择是任意的。所以没有给FCM码型的例子,选任何码型都足以实现本发明。
由于FCM的格式可以是唯一的,比如磁带标记,本实施例所用的格式类似于图1所述的格式,並且当从壁2-4所示的包格式读出时,其格式的安排使FCM容易被识别。同步区13和24限定了块12内的FCM数据的边界。也使用块尾15和块控制部分20。标志区F17指明该块是一FCM块。当区F17是“00”,表示使用图1的格式:若F是“01”,表示使用图2-4的包格式,而“11”表示是-FCM。
构成块ID18的序列号的序号的范围从0到3FFEFF(十六进数字),而诸如FCM的格式标记的指示器的范围从3FFFOO到3FFFFF(十六进),以指示最多256种不同的格式或其它标记。一FCM不仅可由标志区指示来表示,並且也由赋给块ID号的值来指示。
对于指示FCM的方法没有限制,单音、磁带标记以及其它方式都可用以指示后面的格式;为灵活起见,从所示格式指示中得到並作为一单独信号块的该FCM可以使用其它码型以作其它用途。利用Bauer等的微处理器,使所述的结构安排能方便地分析FCM这种很短的信号块,而不需要专用电路来检测FCM。
图3说明了用于本发明的块和记录的编号方法。这种编号从磁带的开头起,向着磁带尾部该编号依次增加,每个记录赋以一个编号。所示的位于IBG10和11之间的第一块12有4个记录RD0到RD3,分别指定为编号55-58。区59的块号是块0,它相应于图1的块ID区18。IBG11到IBG68之间的信号块也有四个记录65,它们单独被编号为4到7。区66的块号是4,相应于该块内编号最小的记录。同样,IBG68和71之间的块内的记录70的块号是8,它也是该块内编号最小的记录。由于不同文件之间的记录的大小是变化的,这些块内的记录号也将变化,它表示的后续的块号也将改变,比如,它们将不是0、4和8,而可能是0、5和10等。用这种方法,哪些记录在哪些块内将很容易识别。块ID序号可以通过把包计数值加到其第一包30的ID值上来检查,这两个值应该相等。
图4说明了同一种存贮介质或磁带上的许多不同的格式。磁带开头处是磁带标签75,它可以包含关于记录在磁带上的信号的控制信息。一般来说,磁带标签75将按老格式写入,这种格式的每一信号存贮块包含一个记录。已知的磁带标记76把磁带标签75和其它记录的数据分隔开。第一磁带区77开始贮存相对小的记录,它引起后面所述的一组机器操作。包格式用于图2和图3所述的小记录或短记录。区77的末尾由FCM78指示。在区79,记录按先前的格式以每信号块一个记录录入。区79的后面是FCM80。FCM80后面可有几种格式变化,其中一些采用包格式,所有格式选择最好由记录长度和根据程序控制而定,例如,主处理机用“方式设置”命令来选择录入时所用的格式。
尽管最好是采用FCM来指示格式的变化,但也可以用抹除隙(ERG)来指示格式的改变。即使在一给定文件内有多种不同的记录长度,也可以采用这两种格式。文件84包括的81内记录的是包格式的信息,以PKT表示。抹除隙ERG82(一般是4毫米或更长的磁带上被抹去的部分,比如,IBG加2毫米就表示包格式81的结束,以及ERG82之后的另一格式的开始。正如出现的那样,每信号块一个记录的老格式被记录在文件84的83部分。当磁带开头不用磁带标记76或磁带标签75表示时,系统也知道磁带的开头,因为磁带盘已加载到磁带驱动轮上(未画出)。比如,磁带的开头也可以利用磁带上的透明部分用光学方法来检测。也可以用其它机械检测标记。反绕操作的结束也可用于指示磁带的开头部分。
图5是自动分组表(autoblocking table)ABT90的简化图。对于每一正在进行的自动分织(成块)操作(它是用前述参考文献所示的接在一个控制部件上的16个记录装置来实现的),在自动分组表中都有一个登录项。这16个记录装置中可以有几个同时记录数据。ABT90的信息内容只在读或写一个数据块的期间存在。区91指示自动分组功能是否开启。若自动分组开启,则区92表示该自动分组操作的记录计数的进程。其它区将包括图2所示的记录大小、填充区的大小以及记录头和尾的值。指针系统用以指示记录被放在数据缓冲区(未画出)的什么地方,比方说,缓冲区的一部分将保留作为录入一块数据的装配区。若要录入块12,並且块0具有第一相对位置,块1具有第二相对位置,余类推,全部格式如图2所示,而其在缓冲区或数据贮存装置内的操作已为大家熟知,因此不作说明。
所列参考文献给出了本发明推荐使用的硬件环境,这里对本发明的实施例作一说明。Bauer等的美国专利4,423,480给出了磁带存贮子系统的总构成。多个应用主机通过一组通道适配器对两个控制部件进行操作。每一控制部件具有一数据缓冲器,以暂时贮存从主机向各种装置(如磁带部件)传送的数据。后面所述的图6和图7的机器操作主要是对Bauer等的专利中所述的缓冲器的操作,就是说,磁带部件收到的来自主机的要记录到磁带上的数据被分析並被选择地重新分组成图2到图4所示的信号块。与此类似,当要从磁带驱动器读出数据並把它传到主机时,就对这些数据块分析:识别属于该主机的记录,並单独送到该主机。如上所述,字节相对位置寻址用以对信号块内的记录的识别。大家已熟知这种空间加相对位置寻址方式,因此不作详细说明。Milligan等的专利4,393,445给出了图1所示先前格式中的块ID,比如登录到区18中的号数的分配方法。下述全部机器操作都是微程序控制的,就如在参考文献中所述的微处理机中所用的一样。
从主机收到的数据是否要使用本发明的自动分组特性取决于“方式设置”命令,这种命令已用于设置子系统的工作方式。根据本发明,已经对该方式设置命令进行了扩充,使它可命令控制部件允许或不允许自动分组。当允许自动分组时,就把图5中的ABT90中的比特91置成有效状态。设备O到设备F(上述Bauer等的专利)的每一个都有一个登录项90,这样,每一设备的操作方式可以用主处理机来选择。当把虚拟地址加入设备O到设备F时,则ABT中登录项的号就增加,以便每一虚拟地址都有一个登录项90来控制自动分组。
上述方式设置命令最好只放在使主机与记录装置间的记录数据传输开始的同一命令串内。根据方式的不同,方式设置命令可以放在比数据记录命令串较早执行的命令串内。命令串是一熟知的词,並在Bauer等的专利及其它文献中作过简要说明。在我它操作方式中,方式设置命令只用在数据传输开始的命令串内。在该命令串结束时,自动分组方式在控制部件内自动复位,或者由主处理机发出一第二方式设置命令使自动分组操作无效,即,使方式设置命令所指定的设备的比特91复位。上电复位也使自动分组比特91复位。按照本发明的推荐实施例中任意的协议,若在写数据传输的命令串内没收到方式设置命令,则控制部件就把该命令串所寻址的设备的比特91复位。显然,设置成自动分组方式可以根据记录的长度来决定是否采用自动分组操作。
把比特91置成有效状态(也称为自动分组方式)就是数据可按图2到图4所示的包格式写入。为使数据整齐划一,如块12等所示的数据块用图1到图4所示的块间隙IBG隔离开。
诸如以每块一个记录的格式写入的磁带标签75等任何磁带标题,最好能使被标定的存贮装置在录入数据之前就能指出其所用的是每块一记录格式还是自动分组格式。它也是指示存贮介质的券序号的方便位置和格式。这种磁带标签75可以指出存贮介质具有多种记录格式。在所述实施例中,这种指示不可用于控制存贮介质的读回。在本实施例中,TM76以图4所述的格式录入。当然,文件标签的前面可以有指示包格式的FCM。为读出数据,在磁带的开头,格式的约定是未知的;第一块读出后,才能确定其格式。记住:FCM可插入到存贮数据的块之间;在这一例子中,有一种已知的现行格式,而FCM就按这种格式写入。因此,TM76、FCM78或80,或者ERG81总是写在有不同格式的存贮介质上的相邻信号块之间,也就是说。在不同格式之间总提供有逻辑分隔符,所以,读出控制部件总要留心地注视格式的变化。
在读出期间,不必采用方式设置命令。控制部件分析记录的数据以了解记录数据的格式。任何非顺序的磁带短动,比如反绕、磁带装入、空进(一种既不读出数据又不录入数据的磁带运动)、或者记录定位(见Milligan等的描述)都使控制部件的操作复原到未知格式的状态,因此,所遇到的第一个磁带标记TM、ERG或者磁带开头都要求控制部件去分析其稍后读出的信号以确定它采用的是什么格式。FCM告诉控制部件其后面所用的格式。同样,每一逻辑分隔符,磁带标记和ERG都告诉控制部件:程式处于未知状态。
一般来说,在记录期间若给定了自动分组格式,收到的来自主处理机的记录被收集到控制部件缓存内直到达到某一最小块长,比如32千字节(KB)为止。注意包内和块内的标头字节和尾部字节都包括在该32KB的限额内。因此,无论何时调用该包的自动分组系统,块12通常要比32KB长。最好把小于32KB的若干记录汇集成超过32KB,使其最大块长为64KB左右。对大于32KB而小于100KB的记录,自动分组格式的每一块内只写一个记录。超过100KB的记录最好以图1所示的格式记录在存贮介质内。自动分组的结果就是使存贮介质上的所有数据块的长度大于64KB,从而把块间隙IBG的数目降到存贮介质的微不足道的部分。
为实现这种自动分组算法,如后面所述,在控制单元的缓存内为每个利用后面所述的机器操作,建立的块留出32字节的空的缓冲存贮空间。一旦数据信号块被建立在该缓存内,其包尾填充47和缓冲区CRC48就被填写完成,並且包标题的40到45的32字节空间也填写完成。包将以上述方式建立,直到不超过100KB的最大分组长度要求。在这里,像图1的块尾15和块控制的一样,也将建立包计数区35。块一旦建立,就可开始向磁带的数据传输,就象现用技术那样录入磁带。由于控制部件中缓冲存贮区的容量有限,随着将被在一个信号传输序列里记录到存贮介质上的块数量的急速增加许多这样构成的块将被存贮起来。
在录入或写入过程中,无论何时,只要控制部件中的缓冲器太满以致不能接收来自信息源及主处理机来的其它数据的时候,控制部件就会发出“通道命令重试”(CCR),该命令会暂时停止数据传输直到缓冲存贮空间又可使用为止。当控制部件向提供数据的主处理机发出“设备结束”(DE)时,就是告诉主处理机可以恢复数据信号的传输。控制部件中的缓冲存贮器是分段的,以便给各个记录设备O到设备F以有效的方式提供服务。当某一缓存段满时,其它段可以按Cole等的专利4,603,382所述的那样来分配。因为在录入的数据传输完成之后才写包的标题,它允许以高的数据划一性实现全部上述操作。
有几种准则可用来结束从多个记录到多个包30-34的某一信号块12的建立。最常用的是把另一记录加入该块后使之超过了64KB的块长门限值。若在建立某信号块期间,收到的是一磁带运动命令而不是写命令,这是指示控制部件:该写操作或许将停止。这时,其自动分组操作也被停止。这类磁带运动命令的典型例子是读出、反读、反绕、反绕卸载、抹除带隙、写磁带标记或者写正向或反向空白块、正向或反向空进、同步、确定块的位置以及数据加密抹除。另一个不自动分组的原则是收到一“使磁带处于立即写方式”命令。该命令指示控制部件把从主处理机送来的数据直接写到磁带上而不放在该控制部件的缓存内。收到这种立即方式命令使得控制部件完成现正建立的信号块而后把该数据录入到磁带上而不理会其块长限制。所有这些命令都是现有技术中所用的。另一停止自动分组操作的准则是接收到前述方式设置命令且该命令指示不采用自动分组方式。在这种场合,接着按上述立即方式来操作。另一个清除自动分组操作的准则是存贮介质的运动(比如磁带)当记录装置走到磁带末端(EOT)的时候。这种情况下,任何未完成自动分组的信号块应被完成,並且用上述通道适配器通过外设通道,把这一部件意外(异常)状态或中断送到主处理机。磁带结束就意味着在装上新磁带之前任何信号都不能录入再一结束自动分组操作的准则是块ID区18的模数将要被超过。块ID的模数可以作为磁带的逻辑EOT标志,它表明此后的任何信号都将写不到磁带上了。还有一个准则是设备故障。最后一个准则是收到主处理机来的选择复位或者系统复位信号。在后两种情况下,任何未完成的自动分组的块将继续完成並写到磁带上。其它准则也可用来完成现行的分组操作而后结束自动分组方式。
图6是说明本发明的简化的程序控制的机器操作流程图。该机器操作流图表示了可实现本发明的Bauer等的控制部件所完成的操作。在步骤100处收到一写命令,並把数据送到缓冲存贮器。应注意,对该机器操作流图,该写命令是其命令串中的任何一个写命令,而几个写命令可以在缓存中插入几个记录以等待图6的自动分组操作。步骤100也表示开始把下一记录纳入现行块的自动分组操作。这就是说,可能已执行过一条造成自动分组操作的写命令。只有当前述方式设置命令已把相应的比特91置成有效状态时,该前述操作才会发生也就是相应于被收到的写命令所寻址的设备的位91。如果其进程区92的一比特置1,就如比特91所规定的那样,表示自动分组操作已经发生,则对任何写命令都进行自动分组操作。在步骤101若控制部件判定对一个块的自动分组操作正在进行,则对一要建立的新块(非现行块)来说,将在103处判断其第一个记录是否超过100KB。若不超过,则在104步骤开始登录自动分组表ABT90,它包括现行块正被建立的指示器、该块内的现行记录数、字节累计值等。然后在105处,该自动分组的第一个记录被变换成一包30(图2),该包被贮存在缓存内,以等待建块工作的完成。然后,执行下述机器步骤114及后面的步骤,在处理下一记录之前,先考查记录是否应加入到该正建立的块内。
若发现第一个记录超过100KB,则在步骤110就只把一个记录录入一块内。这里有两种可能的路径。可以继续图2的自动分组格式。最好建立并录入格式改变标记FCM以表明下一个记录是图1所示的格式,则该大记录按图1的格式记录在存贮介质上。若判定下一记录小于100KB,就自动地恢复到自动分组操作。从步骤110,完成步骤114及以后的操作。若下一收到的记录要建立一大于100KB的块,则该块由后面所述的结束步骤112、113来结束录入,而后面接收的记录用于开始一个新的分组。若判定记录大小不会使分组超过100KB,则该寻址部件的进程区92的自动分组比特仍应处于有效状态。在机器步骤104,若自动分组操作处理接收的记录是第一记录,则应该用一个块的自动分组指示和该要处理成该块一包的记录的字节数来更新ABT90。在机器步骤105,将该记录变成一个包而变成该包的一部分,这种变换是一种建立包标头和包尾的操作,对熟悉这方面技术的人来说,把信号处理成一已知格式是很容易的,因此这里不作详细说明。
把收到的记录建成如图2所示的包之后,就在机器步骤114检查是否出现了某一特定条件。这种特定条件是指收到了非顺序的命令(如前面所述的反绕-从主处理机来的结束录入操作的指示)或者表明自动分组应结束的其它条件。如果收到了这种条件,就在116以最后收到的记录结束分组,而不管正建立的块的长度还小于100KB。步骤116把该块记录到存贮介质上。然后转到其它程序,它不属于现在讨论的范围。通常不会遇到特定条件,所以就在步骤117判定在步骤103处分析是不是还有“被剩下”的记录,也就是说(它的加入)这会使块长超过100KB的上限。若是,则在步骤102和104开始一个新块。应注意分组是这样完成的,它执行步骤102到105而不需从主处理机接收其它记录(未画出)。如果没有“剩下的”记录,就在机器步骤118检查缓冲存贮器(见所述的参考文献)是否满了。若已满,下一个收到的命令是通道命令退出(CCR)。注意,这一步骤对多个记录在缓存内排队等待自动分组时特别有用。如果缓存不满,自动分组操作就在步骤100接收下个待处理的记录。在机器步骤101,若要建立分组操作,则机器操作就转到步骤106,以判断在步骤100接收的记录是否会造成块长超过100KB。若不超过,就在步骤108把该记录建成图2所示的一包加入现行块。其后重复机器步骤114到118的操作。
若在机器步骤106时判定:把刚接收的记录插入现行块将会超过100KB的限制,那就执行步骤112及113结束建块並把该块写入到存贮介质上。在步骤112,建立块尾,块被排队以写入贮存介质,或者被直接录入,如所周知,这是设计的考虑並与系统设计有关。在机器步骤113,修改自动分组表90使其指示没有现正建立的块,所以剩下的记录将成为下一建立的块的第一个记录。从机器步骤113开始,将重复上述步骤114到118。
在读出包格式的信号时,如图7所示,自动分组所建立的是:包含区40到45的包标头,它包含有在整个信号块被读出磁带之前,控制部件开始从控制部件缓冲区向主处理机传送数据所必需的信息,这是由于数据的划一性造成的。控制部件在读出操作时假定格式是未知的,即,下一被读出的块可能是图1所示的格式。这是任何非顺序的磁带运动,如上述的反绕等动作之后都会出现的情况。一旦任一块被读出並且确认了它的包格式,则控制部件将假定全部后续块都是该包格式,直到从贮存介质上读出一逻辑分隔符-如磁带标记TM,格式改变标记FCM或抹除隙ERG-为止。在包格式中,其标志区F17内有一包格式标志被置成有效状态,因此,控制部件在第一块的末尾被读出时就能确定被读出的信号是包括式或者是图1所示的格式。为了把一个块14拆卸成包30到34,控制部件要检测块开头处的32个字节的包标头,即包30的区40到45。该包标头内包含的信息指出了第一包(它包含的是该信号块的第一个记录)的起始地址和结束地址。这时,就知道了每一个包以及各个包内实际记录的位置。这样,在整个信号块从存贮介质读出之前就可把记录的数据传送给主处理机。这些包被顺序拆开,这些记录被传走,直到块内的所有包被读出並拆开为止。在读出方式中,根据缓冲区的大小,可能缓冲存贮几个信号块。並且,当把这些信号块从磁带或存贮介质读入缓存区时,就用块尾内块ID18的块识别标记来检查其顺序(见Milligan等的专利4,393,445)。在包格式下,块识别区的值的顺序是跳跃的,如图3所示。其认证是在前一块ID值上加上包计数35的值来确定下一信号块的块ID区的值。当这些记录被送到主处理机时,则记录的ID被块ID取代,这样,主处理机看到的是顺序连续的块ID,主处理机才相信它是块ID。並且,如图3所示,块内的第一个记录的ID必须具有块ID同样的值。
图7是从磁带上读出一块信号的机器操作的简化流程图。在机器步骤130,一块信号从磁带上读出。在步骤131,分析该读出的信号块以确定其是不是格式改变标记FCM。若不是,就在步骤132检查该块是否遇到ERG或TM,也就是说其后续块的格式是未知的。若没有遇到,就继续现行方式的读操作。在机器步骤133,检查现行的方式,看其进程区92内其格式是否已知。若已知,则在机器步骤134检查该块内的标志17是否置成ABT的91所指示的现行格式。若现行方式是每块一个记录,则在机器步骤122对下一记录按每块一个记录的方式读出。若块内的标志格式指示与该指示的格式匹配,则在机器步骤135按前述的或者按图2所述的包格式或者按图1所述的格式对该读出的块进行处理。而后,下一块在机器步骤130读出。若在步骤133时,格式为未知,比如被一TM或ERG置成未知格式状态,则在机器步骤137检查格式标志区17以确定其格式。在一种实施方案中,读出的块是按其在缓冲存贮区同样的方式来处理的。在另一实施方案中,该块的一部分数据已被送到主处理机並且这些数据可能有差错。为了纠正该差错,在机器步骤140,从主处理机(它命令从磁带读出该块)收到的读命令是通道命令退出(CCR),它使主处理机放弃已收到的该块数据,並再发出该读命令以使记录系统再从磁带上读出该块。磁带就运动到重读该块的位置进行第二次读取。然后,在机器步骤141,ABT90内的格式指示就置成与该读标志区17一样。尽管在一个具体实施例中机器的操作流图是直接转到机器步骤130的,但其它的机器功能可以在等待读出命令重新发出后才转到130。在处理该读出块的第一个所述实施例中,可以彻执步骤144。以把或者是图1所示的格式或者图2所示格式的块内数据送到主处理机。
若在机器步骤132检测到一TM或者ERG,就在步骤146把ABT内的91的格式指示置成未知状态。下一块(假定它不是FCM)的读出将使得在步骤133检测出未知格式,並且将引起上述的格式识别过程。
当在131步骤识别出是FCM,就在步骤150判定后面的格式是包格式还是图1所示的格式。ABT内91的格式指示器应置成相应状态。若指示为包格式,下一块应按步骤151所示的包格式来读出,151步骤也把ABT的格式指示器置成包格式。同样地,若读出的FCM指示出是非包格式,即是说,它是图1所示的格式,则在步骤152就把ABT格式指示器置成图1的格式,並以该格式读出下一块。机器步骤151及152,机器步骤130重复执行。在某些实施方案中,从存贮介质读出的块在缓存内排队並等待这里所述的读回处理。另一方面,若现行方式是自动分组方式即包格式,则在步骤124,控制部件将按上述的自动分组方式读出磁带。
当块长超过预定大小时,磁带记录系统最好采用如Milligan等在美国专利4,435,762中所述的同步方式。这种方式最好用于超过100KB的记录。Milligan等指出:控制部件必须能检测启动同步方式的长记录,也就是说,这种记录必须被发送两次以便建立同步方式。因此,即使将可变长度记录结合到多个包中,以使用维持记录系统所有其它灵活性不变的方式来记录单一信号分组,也是如此。当以反方向从存贮介质读出包格式时,在把数据送到主机之前必须把整个块送到缓冲存贮区内,这样才可以从头到尾把记录拆开。这一要求可能会影响其性能。这一性能限制可用每一包尾的47和48之间加入一相对位置区47A来克服,它指出了包标题的位置,因而可使控制部件从反方向来处理块内的记录。
尽管本发明已经参照推荐实施例具体说明过了,但都知道对于熟悉这方面技术的人员来说,可以对其作形式上或细节上的各种改变,而仍然不违背本发明的精神和范围。