随机排序数据块包络的磁带格式的制作方法

文档序号:6745708阅读:177来源:国知局
专利名称:随机排序数据块包络的磁带格式的制作方法
技术领域
本发明一般涉及磁带存储,更具体地涉及将数据写在磁带上的一种方法。
常规的磁带存储设备采用常规的写后读磁头、以数据块的形式在磁带上存储数据。常规磁带介质块布局要求在磁带存储介质上良好的布序化和顺序块排列。
这样的常规磁带介质块布局存在两种不良的特征。首先,要求数据块有序性的常规写后读配置当出现写错误而需要块重写时将导致存储量的丢失。其次,如果出现读/写通道问题或局部介质异常,现有的磁带介质块布局不容易允许继续写入。
本发明的目的是克服或至少是减少上述一个或多个问题的影响。具体来说,本发明提供了一种写数据的方法,这种方法采用由一个或多个数据实体组成的数据包的形式将数据写在磁带存储介质上。每个数据实体包括数据块和错误纠正代码(ECC)块。组成数据包的数据实体的数据块和ECC块可以采用任何次序存储。这样的块存储布局基本上解决了由于数据和ECC块的重写而出现的存储量丢失问题。尽管出现读/写通道问题和/或局部介质异常,但通过将块转移到其它好的通道或离开异常的介质,这种块存储布局也允许数据和ECC块继续写入。因此,本发明有效地提高了磁带存储量和总体的可靠性。
根据本发明的一个方面,提供了一种采用数据块的形式将数据写到磁带存储介质上的方法,在这种方法中,从某个数据源中接收数据,所接收的数据被格式化为数据和ECC块,然后建立包括数据块和ECC块的数据实体,接着定义包括一个或多个数据实体的数据包,并将数据包以顺序的方式写到磁带存储介质上。数据包中的数据和ECC块可随意放置,而不要求在磁带介质上顺序排列。


图1为通过系统总线连接磁带装置的主机示意图。
图2表示由一个或多个数据块组成的数据包在磁带存储介质上的顺序。
图3表示在数据包中的块转移。
图4表示包络闭合。
下面给出本发明的解释性实施例的描述,列出在解释性方法中执行的各种操作,并采用下面的解释性注释进行注解。这些描述来自申请书中的某些权利要求,当然,这些权利要求不打算也不应该被认为局限于所描述的解释性实施例。带括号的数字对应下面的注释,而不带括号的引用号对应附图中的标识数字。
应该这样理解,所描述的具体执行过程作为权利要求的说明,但并不是要限制权利说明的范围。目的是为了说明问题,而不是描述执行过程的所有常规特征。当然,应该知道,在任何这类实际实施方案的开发过程中,必须做出大量的具体实施决策来实现开发者的具体目标,例如和系统及业务有关约束的适应性,而这些目标对于不同的执行过程来说是大不一样的。而且还应该认识到,这样一种开发努力可能是复杂的和费时的,但应该做为那些得利于本发明的技术人员的一项常规的工程任务。
解释性方法图1至图4表示一种解释性方法〔1〕的环境,利用通过系统总线115〔5〕连接磁带机110〔4〕的主机105〔3〕将数据写到磁带存储介质100〔2〕上。这种解释性方法通常包括(a)从某个数据源中接收数据〔6〕;(b)将该数据格式化为数据块〔7〕和被称为ECC块〔8〕的错误纠正代码块;(c)建立至少一个数据实体,每个数据实体包括数据块和ECC块〔9〕;(d)定义至少一个数据包〔10〕,每个数据包至少由一个数据实体〔11〕组成;并且(e)将该数据包顺序地写〔12〕到磁带存储介质上〔13〕。
参考图3,将数据包顺序地写到磁带存储介质上的这种解释性方法能提供在单个数据包中的纠错功能,包括(1)在预先被写在某个特定通道上的数据或ECC块中检测〔14〕错误;并且(2)将出错的数据或ECC块重写到下一个循环相邻的通道上〔15〕。
参考图4,将数据包顺序地写到磁带存储介质上的解释性方法在包络闭合期间也可以提供纠错功能,包括(1)通过写数据和/或ECC块〔16〕初始化下一个数据包;(2)在预先被写在前一个数据包〔17〕中的某个特定的通道上的数据或ECC块中检测错误;(3)清除被写在下一个数据包中的块〔18〕;并且(4)将出错的数据或ECC块重写入前面的数据包〔19〕。
解释性方法的注解〔1〕该方法有利于增加磁带或其它类似存储介质的存储量,允许更多的数据被存在给定量的磁带上。一般来说,这是通过减少由于出现在将数据编码存储在磁带上的过程中的错误而造成的存储空间丢失来实现的。此外,即使是在局部介质异常(例如污染)或数据通道故障(例如,由于磁带头损坏,读写电路问题)的情况下,该方法也允许继续记录数据。
〔2〕在该解释性实施例中,磁带存储介质为具有通道0,1,2和3的一种四通道磁带100。当然,任何带有任意数目的读写通道的磁性的或非磁性的存储介质(例如光带)都可以被使用,只要这种介质在写后读错误检测时是连续的。
〔3〕在该解释性实施例中,主机105包括主存储器120、CPU125和磁盘驱动器130。CPU125可以是某种通用的可编程计算机或一般熟悉这种技术的人员所认识的任何一种市场上能得到的微处理机。CPU125从主存储器120和/或磁盘驱动器130中检索数据,以便通过系统总线115传送给磁带机110。CPU125通过系统总线115发送和接收这些数据的这类操作和程序设计技巧对于熟悉这一技术的人员来说都应该是很熟悉的。
〔4〕在该解释性实施例中,磁带机110包括磁带控制器135和常规的写后读磁头140。磁带控制器135可有包括缓冲区145、微处理机150和程序存储器155。可以对微处理机150程序设计,利用工业标准程序设计语言,例如汇编语言、Pascal语言、fortran语言和C++语言,实现该解释性实施例的方法。程序设计也可以采用其它的常规程序存储装置进行编码,例如PROM、EEPROM或快闪存储器。磁带机110利用常规的伺服循环控制方式来控制写后读磁头140。更一般地,存储介质可以是具有写后读有力的任何顺序存储介质。因此,该方法可以被调整到包括这样的存储介质,例如,光带存储器,这里用模拟光学元件替换“磁带机”,以容纳这些为熟悉这一技术的人员所了解的这些存储介质。此外,磁带机110所提供的控制功能也可以由磁带机100中的微处理机的软件提供,或者由某种程序化的逻辑矩阵或其它为熟悉这一技术的人员所了解的类似硬件扩充或替换。
〔5〕在该解释性实施例中,系统总线115可以包括任何数目的工业标准串行或并行通信总线。
〔6〕在解释性实施例中,数据源将是主存储器120、CPU125或磁盘驱动器130。其它为熟悉这一技术的人员所了解的数据源也可以被利用。
来自主机105的数据被驻留在微处理机150中的软件顺序地分解为统一固定尺寸的数据块。在该解释性实施例中,16个这样被顺序接收的数据块被组合在一起并生成4个ECC块。这种生成是在将任何数据块写到磁带之前实现的。所生成的20个块被称为一个实体。如图2所示,包括16个数据块(标号1-16)和4个ECC块(标号17-20)的一个实体被顺序地包装入第一个数据包205,而另一个包括16个数据块(标号1-16)和4个ECC块(标号17-20)的实体非顺序地被包装入第二个顺序定位的数据包210。虽然该解释性实施例只表示了该包络中的单个实体,但一个包络能包括任意数目的实体,只受某个具体实施范围最大值的限制。实体总是存在单个包络中,而不能在多个包络之间断开或分段。数据包205和210可包含任意数目的实体,数据包中的实体块可随意地定位在该数据包中(即块的顺序不被要求,并且某个特定数据包中的多个实体的块可随意混合)。
本方法的一个显著优点是在将数据块写到磁带100上之前建立ECC块。这所造成的影响是,允许采用基本上任意的次序将数据块和ECC块写到磁带介质100。这对现有技术是一个很大的改进,在现有的技术中,要求ECC块必须在数据块写入之后才能被写到磁带介质上。此外,现有技术要求数据块和ECC块顺序地并且以正确的次序写入。现有技术的顺序性和有序需求导致当块错误出现时丢失数据容量,因为最初已经被顺序写入的块被要求按最初的次序顺序地写入。反之,本方法允许以任何次序写入块。
〔7〕数据块的一种格式是用在现有产品中的格式的一种,例如DLT-2000,由Quantum公司制造并在1994年12月出版的209号ECMA标准中进一步描述。所选择的特定平台驱动的其它类型的数据块格式也可以使用,因为这是为熟悉这一技术的人员所了解的。
〔8〕由Weng等人于1992年4月21日发表的美国专利号5107506中所发明的一种用于ECC块的格式,在这里加入该发明供引用。为熟悉这一技术的人员所了解的其它类型的ECC格式也可以使用。
〔9〕在解释性实施例中,16个数据块和4个ECC块被用在每个实体中。更一般地,可以采用任意数目和任意组合的数据和ECC块,取决于所选的特定纠错算法。
〔10〕包络中的块由控制域标记,标识包含这些块的特定数据包。这样,数据包可顺序排列,而其中的块可以按照任何所需的方式排列(例如,顺序的,随机的,有序的,混乱的或某些其它的伪序排列)。
〔11〕数据包可包括一到任意数目的实体。在解释性实施例中,数据实体包括基本上统一尺寸的数据块和ECC块。更一般地,数据实体可以不包括ECC块,也可以用非统一尺寸的块。
〔12〕数据包采用顺序的次序写到磁带介质上,而数据包中的块则可以采用任何次序。被定义的包络中的任何实体的块可以任何次序写到磁带100,并且可以在该包络中随意重复。
被写后读电路检测到的任何块的错误将被移到下一个循环相邻通道。在下一个包络被开始之前,被定义包络中的所有块全部被写到介质上(没有错误)。连续包络之间的边界被称为包络闭合(envelope closure)。在包括闭合期间,被检测的错误将导致目前正从下一包络中被写入磁带100的任何块被删除(“K位化”),由此保持包络之间的顺序性。
写逻辑负责实施块布局以及管理包络闭合的规则。同时还负责做出关于块移动和错误管理的探试性决定。读操作负责在被指定包络中的块传送回主机105之前对这些块重新排列。
〔13〕该解释性实施例中的存储介质为具有读写通道0、1、2和3的一种四通道磁带100。术语“写到”磁带当然应该被理解为软带基片上的某些物质选择性地被磁化。
〔14〕常规的写后读操作提供了在前面被写入块中检测错误的功能。在图3所示的解释性实施例中,数据包305包含带有错误的块5*。块5*中的错误是在顺序的常规写后读操作期间被检测到的。
〔15〕重新将块5*写到下一个循环相邻通道上意味着将该块再写到另一个相邻的通道上。在该解释性实施例中,块5*最初被写到通道0,接着被顺序地重新写到循环相邻通道1。注意,数据包305的最后块数20被写到所有的4个通道上以完成数据包305。虽然没有明确要求,但对于4通道的读写磁头来说,为了方便,实际上将任何遗留的数据写到所有的4通道位置以完成数据包。
〔16〕图4说明包络闭合期间的错误纠正。包括块1-20的第一个数据包305最初被写到磁带介质100。接着通过写块1-4而开始第二个数据包310。
〔17〕在写入第二个数据包310的块1-4期间,常规的写后读操作在块19*中检测到一个错误。
〔18〕第二个数据包310标号为1-4的开头几个块通过“K位化”(K-bitted)而被删除。对某个块的K位化需要用到控制域中的一个控制位,标识所有的块为坏块,由此指示随后的读操作忽略这些块。要求“清除”第二数据包310的初始块,是因为,数据包中的块可能采用任意次序,而第二个数据包310中的块必须跟在第一个数据包305中的块后面。因此,第一数据包305必须在第二数据包310开始之前完成。
〔19〕接着,通过再次写入坏块19*,完成第一个数据包305。注意,对于包络闭合期间纠错的情况,重写可以是对任意通道(即不要求通道的是循环相邻的)。一旦经重写块19而完成第一数据包305后,通过写块1-4可以再开始第二数据包310。
该解释性方法及其许多变化的方案提供了优于用在块布局中的现有技术的几个显著优点(1)在包络中检测到的错误导致出错的块被重写,但并不删除或重写其它的块。因此,这种解释性方法能有效地提高容量。
(2)在包络边界上检测到的错误导致某些容量丢失。但这些错误只包括实际中遇到的所有错误很少的百分比。
(3)块转移允许在出现暂时读写通道问题或局部介质被污染时仍能继续写磁带存储介质。因此大大地减少了致命写错误的总体可能性。
(4)该体系结构基本上与通道的数目无关,并且能方便地用于未来的产品。
(5)该结构封装了包络及其相关控制的所有知识和维护,因此只需用单个软件模块来负责块的布局。较高层的软件,总线处理程序、服务程序和主机程序,都不需要块布局的内在知识,完全与之无关。整个模式是高度可移植的并且能用于未来的设计方案。
用到该发明的技术人员应该认识到,在不脱离上述的发明概念的情况下,能从说明的实例中得出许多不同的方案。
权利要求
1.将数据写入具有一个或多个通道的磁带存储介质上的一种方法,包括(a)从某个数据源中接收所述的数据;(b)将所述数据格式化为数据块和错误纠正代码块;(c)建立数据实体,每个数据实体包括数据块和错误纠正代码块;(d)定义数据包,每个所述的数据包包含至少一个所述的数据实体;并且(e)将所述的数据包顺序地写到所述的磁带存储介质上。
2.权利要求1的方法,其中所述的数据块和所述的错误纠正代码块在所述的数据包中顺序排列。
3.权利要求1的方法,其中所述的数据块和所述的错误纠正代码块在所述的数据包中按非顺序方式排列。
4.权利要求1的方法,其中所述的数据块和所述的错误纠正代码块具有基本一致的大小。
5.权利要求1的方法,其中,所述的数据块和所述错误纠正代码块在大小上不一致。
6.权利要求1的方法,其中,将所述数据包顺序地写到所述磁带存储介质的过程包括(1)在先前写入所述磁带存储介质的某个被指定通道上的数据块或错误纠正代码块中检测到一个错误;并且(2)将所述有错的数据块或错误纠正块重新写入磁带存储介质的某个循环相邻的通道上。
7.权利要求1的方法,其中,将所述数据包顺序地写入到所述磁带存储介质的过程包括(1)通过将数据和/或错误纠正代码块写到所述的磁带存储介质上对所述磁带存储介质上的下一个数据包初始化;(2)在预先被写在前一个数据包中的某个指定的通道上的数据块或错误纠正代码块中检测到一个错误;(3)删除被写在所述下一个数据包中的所述数据块和/或错误纠正代码块;并且(4)将出错的所述数据或错误纠正代码块重新写入所述的前一个数据包。
8.权利要求7的方法,其中,消除所述的块包括K位化(K-bitting)所述的块。
9.将数据写入到具有一个或多个通道的存储介质上的一种方法,包括(a)从某个数据源中接收所述的数据;(b)将所述数据格式化为块;(c)建立至少一个数据实体,每个数据实体包括一个或多个所述的块;(d)定义数据包,每个所述的数据包至少包含一个所述的数据实体;并且(e)将所述的数据包写入到所述的存储介质。
10.权利要求9的方法,其中,所述的块包括数据块和错误纠正代码块。
11.权利要求9的方法,其中,所述的块具有基本一致的大小。
12.权利要求9的方法,其中,所述的块在大小上不一致。
13.权利要求9的方法,其中,将所述数据包写到所述的存储介质包括将所述的数据包顺序地写到所述的存储介质。
14.权利要求9的方法,其中所述的存储介质包括磁带存储介质。
15.权利要求9的方法,其中将所述数据包写到所述存储介质上的过程包括(1)在预先被写在存储介质的某个被指定通道上的块中检测错误;(2)将出错的所述块重新写到所述存储介质的某个循环相邻通道上。
16.权利要求9的方法,其中,将所述包络写到所述存储介质的过程包括(1)通过将块写到所述存储介质对所述存储介质上的下一个数据包初始化;(2)在预先被写在前一个数据包中的某个指定的通道上的块中检测到一个错误;(3)删除最初被写在所述的下一数据包中的所述块;并且(4)将出错的所述块重写入所述的前一个数据包。
17.权利要求16的方法,其中,删除所述的块包括K位化(K-bitting)所述的块。
18.以块的形式将数据写到包括一个或多个通道的存储介质上的一种装置,包括(a)写后读记录装置,用于顺序地读写所述的存储介质;以及(b)连接所述写后读记录装置的控制器,所述的控制器用于从某个数据源中接收数据;将所述数据格式化为块;建立至少一个数据实体,每个数据实体包括至少一个或多个所述的块;定义数据包,每个所述的数据包包含至少一个所述的数据实体;并且使所述的写后读记录装置将所述的数据包顺序地写到所述的存储介质。
19.权利要求18的装置,其中,所述的块包括数据块和错误纠正代码块。
20.权利要求18的装置,其中所述的块在大小上基本一致。
21.权利要求18的装置,其中,所述的块大小不一致。
22.权利要求18的装置,其中,所述的控制器用于使所述的写后读记录装置将所述数据包顺序地写到所述的存储介质上。
23.权利要求18的装置,其中,所述写后读记录装置包括磁带写后读记录磁头。
24.权利要求18的装置,其中,所述控制器用于(1)在预先被写到存储介质的某个指定通道上的块中检测出一个错误;并且(2)使所述的写后读记录装置将所述的出错块重写到所述存储介质的循环相邻的通道。
25.权利要求18的装置,其中,所述的控制器用于(1)通过使所述写后读记录装置将块写到所述的存储介质,初始化所述存储介质上的下一个数据包;(2)在预先被写到前一个数据包中的某个指定的通道上的块中检测错误;(3)删除最初被写到所述的下一个数据包中的所述块;并且(4)使所述的写后读记录装置将所述的出错块重写入所述的前一个数据包。
26.权利要求25的装置,其中,所述的控制器适用于通过K位化(K-bitting)所述的块来删除所述的块。
27.权利要求18的装置,其中,所述的控制器包括程序化的微处理机。
28.权利要求18的装置,其中,所述的控制器包括逻辑矩阵。
全文摘要
本发明公开了采用数据块和错误纠正代码法的形式将数据写到磁带存储介质上的一种方法。从某个数据源中接收数据并将其格式化为数据和错误纠正代码块。从数据和错误纠正代码块中建立数据实体。数据包被定义为包含一个或多个这样的数据实体。数据包被顺序地写到磁带介质上。数据包中的数据和错误纠正块可以按任何次序排列,而不考虑物理通道或位置。
文档编号G11B5/008GK1164739SQ9710202
公开日1997年11月12日 申请日期1997年1月10日 优先权日1996年1月11日
发明者劳伦斯·卡帕兰 申请人:昆腾公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1