用于把数据写到磁带的方法及带驱动器系统的制作方法
【专利摘要】在一种实施例中,带驱动器系统包括用于把数据写到磁带的写通道,该写通道利用速率-(232/234)反向级联调制码。写通道包括适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个数据集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子数据集的逻辑器、适于利用调制码编码每个C2编码的子数据集的逻辑器、适于利用C1编码来编码每个调制后的子数据集的逻辑器,及适于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器。根据各种其它实施例,描述了利用速率-(232/234)反向级联调制码把数据写到磁带的其它系统与方法。
【专利说明】用于把数据写到磁带的方法及带驱动器系统
【技术领域】
[0001]本发明涉及磁带数据存储格式,而且更具体地说,涉及利用带低密度奇偶校验(LDPC)码的反向级联调制码在磁带上存储数据。
【背景技术】
[0002]根据信息存储行业联盟在2008年9月制定的“国际磁带存储路线图”,已经计划盒式磁带的容量将以41.42%的年复合增长率每两年翻一倍。随着容量的增加,几乎带式记录系统的所有领域将都得到改进,以便容纳附加的存储。例如,对记录介质、读/写头、记录通道和伺服技术及总体的数据格式都将有可能进行改进。
[0003]例如,在当前这一代的IBM3592和线性磁带开放(LTO)带驱动器中,数据由被称为Cl和C2的两个正交的Reed-Solomon纠错码保护。写格式化器接收未编码的数据并且根据Cl和C2编码算法添加附加的奇偶字节。一旦添加了 Cl和C2奇偶字节,数据就被速率32/33运行长度受限的调制码处理。
[0004]在调制编码之后,数据准备好写到磁带。关于这种体系结构的问题是当数据写到磁带上时调制码插入到纠错码(ECC)与数据之间。在读的一侧,当代的纠错方法,例如LDPC码或者软Reed-Solomon检测器,需要从数据检测器接收到的信息包括关联的同步数据样本。这些数据检测器被称为“软检测器”。不可能利用当前的数据结构执行软件测。这是因为来自数据检测器的数据首先被调制解码器处理,然后才被Cl码处理。相对于被检测位的任何通道信息都被简单地输出位的调制解码器除去了。因而,软检测器不能与当前的数据格式体系结构一起使用。相应地,有一种减轻这个问题的数据格式体系结构将是有利的。
【发明内容】
[0005]在一种实施例中,一种带驱动器系统包括用于把数据写到磁带的写通道,该写通道利用速率-(232/234)反向级联调制码。写通道包括适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个数据集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子数据集的逻辑器、适于利用调制码来编码每个C2编码的子数据集的逻辑器、适于利用Cl编码来编码每个调制后的子数据集的逻辑器,及适于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器。
[0006]在另一种实施例中,一种利用速率-(232/234)反向级联调制码把数据写到磁带的方法包括接收包括一个或多个数据集的数据流、把每个数据集分成多个子数据集、利用C2编码来编码每个子数据集、利用调制码来编码每个C2编码的子数据集、利用Cl编码来编码每个调制后的子数据集,及同时把编码调制后的子数据集写到磁带的数据轨道。
[0007]在还有另一种实施例中,一种适于利用速率-(232/234)反向级联调制码把数据写到磁带的带驱动器系统包括:适于接收包括一个或多个数据集的数据流;适于把每个数据集分成六十四个子数据集的逻辑器,每个子数据集都组织成大小为77,112字节的84X918字节矩阵的逻辑器;适于通过向每个子数据集的矩阵的每个84字节的列添加十二字节的(96,84,13)Reed-Solomon C2纠错码(ECC)利用C2编码来编码每个子数据集,从而创建大小为88,128字节的96X918字节矩阵的逻辑器;适于通过向每个C2编码的子数据集的96X918字节矩阵的每一行添加10字节的头给每个C2编码的子数据集加头(headerize),从而创建大小为89,088字节的96X928字节矩阵的逻辑器;适于随机化每个加头子数据集的96X928字节矩阵的每一行(CW-4),创建随机化的96X928字节矩阵的逻辑器;适于通过借助于扩展每个CW-4的长度八个字节向每个随机化的96X928字节矩阵应用(234,232)调制码利用调制码来编码每个C2编码的子数据集,以便创建大小为89,856字节的96X936字节矩阵的逻辑器;适于通过对每个调制编码后的子数据集应用(1992,1872)低密度奇偶校验(LDPC)码利用Cl编码来编码每个调制后的子数据集以便创建大小为95,616字节的96X996字节矩阵的逻辑器,其中应用(1992,1872)LDPC码是通过把四个LDPC码字级联到每个CW-4进行的;及适于通过写32个其中指定了 CW-4的集合同时把调制编码后的子数据集写到磁带的数据轨道的逻辑器。
[0008]这些实施例中的任何一个都可以在例如带驱动器系统的磁性数据存储系统中实现,其中带驱动器系统可以包括磁头、用于在磁头之上传递磁性介质(例如,记录带)的驱动机构和电耦合到磁头的控制器。
[0009]从以下具体描述,本发明的其它方面与实施例将变得显而易见,当联系附图考虑时,所述描述通过例子说明了本发明的原理。
【专利附图】
【附图说明】
[0010]图1根据一种实施例说明了基于带的数据存储系统的简化带驱动器。
[0011]图2根据一种实施例示出了低密度奇偶校验(LDPC)写格式体系结构的框图。
[0012]图3根据一种实施例示出了用于产生纠错码(ECC)字节的发生器电路。
[0013]图4根据一种实施例示出了用于产生循环冗余校验(CRC)字节的发生器电路。
[0014]图5根据一种实施例示出了随机发生器电路。
[0015]图6A-6F根据一种实施例示出了利用H-矩阵创建奇偶校验位的例子。
[0016]图7A示出了根据一种实施例的输入接口和状态计数器。
[0017]图7B根据一种实施例示出了调制编码器。
[0018]图8根据一种实施例不出了一种方法的流程图。
【具体实施方式】
[0019]进行以下描述是为了说明本发明的通用原理而不是要限制在此所保护的发明性概念。另外,在此所述的特定特征可以与其它所述特征以各种可能排列组合中的每一种结
合使用。
[0020]除非在此另外具体定义,否则所有术语都要赋予其最广泛可能的解释,包括从本说明书暗示的意义及本领域技术人员理解的意义和/或字典、论文等中所定义的意义。
[0021]还应当指出,如在本说明书和所附权利要求中所使用的,除非另外指定,否则单数形式“一”、“一个”和“这个”包括复数的所指对象。
[0022]根据一种实施例,磁带可以采用一种数据格式,其中有效的反向级联调制码插入Reed-Solomon C2纠错码(ECC)和低密度奇偶校验(LDPC)码Cl之间。[0023]在一种通用实施例中,一种带驱动器系统包括用于把数据写到磁带的写通道,该写通道利用速率-(232/234)反向级联调制码。写通道包括适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个数据集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子数据集的逻辑器、适于利用调制码来编码每个C2编码的子数据集的逻辑器、适于利用Cl编码来编码每个调制后的子数据集的逻辑器,及适于同时把编码后的调制子数据集写到磁带的数据轨道的逻辑器。
[0024]在另一种通用实施例中,一种利用速率-(232/234)反向级联调制码把数据写到磁带的方法包括接收包括一个或多个数据集的数据流、把每个数据集分成多个子数据集、利用C2编码来编码每个子数据集、利用调制码编码每个C2编码的子数据集、利用Cl编码来编码每个调制后的子数据集,及同时把编码后的调制子数据集写到磁带的数据轨道。
[0025]在还有另一种通用实施例中,一种适于利用速率-(232/234)反向级联调制码把数据写到磁带的带驱动器系统包括:适于接收包括一个或多个数据集的数据流的逻辑器;适于把每个数据集分成六十四个子数据集的逻辑器,每个子数据集都组织成大小为77,112字节的84X918字节矩阵;适于通过向每个子数据集的矩阵的每个84字节的列添加十二字节的(96,84,13) Reed-Solomon C2纠错码(ECC)利用C2编码来编码每个子数据集,从而创建大小为88,128字节的96X918字节矩阵的逻辑器;适于通过向每个C2编码的子数据集的96X918字节矩阵的每一行添加10字节的头给每个C2编码的子数据集加头,从而创建大小为89,088字节的96X928字节矩阵的逻辑器;适于随机化每个加头子数据集的96 X 928字节矩阵的每一行(CW-4),创建随机化的96 X 928字节矩阵的逻辑器;适于通过借助于扩展每个CW-4的长度八个字节向每个随机化的96X928字节矩阵应用(234,232)调制码,利用调制码来编码每个C2编码的子数据集,以便创建大小为89,856字节的96X936字节矩阵的逻辑器;适于通过对每个调制编码后的子数据集应用(1992,1872)低密度奇偶校验(LDPC)码利用Cl编码来编码每个调制后的子数据集以便创建大小为95,616字节的96X996字节矩阵的逻辑器,其中应用(1992,1872)LDPC码是通过把四个LDPC码字级联到每个CW-4进行的;及适于通过写32个其中指定了 CW-4的集合同时把调制编码后的子数据集写到磁带的数据轨道的逻辑器。
[0026]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、驻留软件、微代码等),或者硬件和软件方面结合的实施例,这里可以统称为“逻辑器”、“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各方方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0027]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者非易失的计算机可读存储介质。非易失的计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的非易失的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0028]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序,例如具有一个或者多个电线、光纤等的电连接。
[0029]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0030]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0031]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0032]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0033]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0034]图1说明了可以根据各种实施例采用的、基于带的数据存储系统的简化带驱动器100。虽然在图1中示出了带驱动器的一种具体实现,但是应当指出,在此所述的实施例可以在任何类型的带驱动器系统的背景下实现。
[0035]如图所示,提供了带供应盒120和收带盘121,以便支撑带122。一个或多个收带盘可以构成可拆卸磁带盒的一部分而且不一定是系统100的一部分。带驱动器,例如图1中所说明的那种,还可以包括驱动器电机,以便驱动带供应盒120和收带盘121在任何类型的带头126之上移动带122。驱动器电机可以被认为是用于在磁头126之上传递磁带122的驱动机构。[0036]导向装置125弓丨导带122跨过带头126。这种带头126又经电缆130耦合到控制器组件128。控制器128—般包括伺服通道并控制头的功能,例如轨道跟踪、写、读等。电缆130可以包括读/写电路,以便把数据发送到头126,从而把数据记录到带122上,并且接收由头126从带122读取的数据。致动器132确定头126相对于带122的位置。
[0037]还可以提供用于带驱动器100与主机(一体化的或者外部的)之间通信的接口,以便发送和接收数据并且用于控制带驱动器100的操作和把带驱动器100的状态传送到主机,所有这些都将是本领域技术人员所理解的。
[0038]根据一种实施例,有效速率-232/234反向级联调制码可以插入到Reed-SolomonC2 ECC与LDPC Cl码之间。这种体系结构的一些优点可以包括更有效的调制码,例如速率-232/234 (99%有效)调制码对速率32/33 (97%有效)调制码;C1编码/解码可以利用比当前所使用的Reed-Solomon码更加强大的LDPC码;数据检测/解码可以利用检测器中的迭代和解码器中的迭代来执行,使得可以启用软检测;而且用于数据编码/解码的数据结构和数据流可以类似于现有的用于3592数据体系结构的数据结构和数据流。
[0039]以下描述是对于用于32-轨道磁带驱动器的基于LDPC的纠错系统。当然,在此所述的系统及关联的方法可以利用比32条轨道更多或更少的轨道,例如16轨道、8轨道、64轨道等,在带驱动器中实现。根据各种例子,描述了一种可供选择的基于LDPC的纠错系统并且与常规使用的系统形成对比。在这些例子中进行了一些假设,具体而言是使用(234, 232)反向级联调制码和使用(1992,1872) LDPC码。应当指出,这样做仅仅是把例子放在一种背景下并且为了帮助读者。此外,根据各种实施例,反向级联调制码可以用作全反向码或者部分反向码。应当理解,在本发明过多可能实施例的各种排列组合中,可以使用各种类型的纠错码。
[0040]现在参考图2,根据一种实施例示出了写格式体系结构200的框图。流过这个框图的过程是从左往右。
[0041]如在此所使用的,子数据集是ECC算法处理的基本数据单元。根据一种实施例,特定于32-轨道的磁带格式,子数据集包括组织成84X918字节矩阵的77,112个字节。64个子数据集可以从每个数据集或文件构造。
[0042]根据一种实施例,第一子数据集可以通过把第一数据集字节放到该子数据集的第O行、第O列中并且如表I中所示出的那样继续来填充,其中标准的数字代表数据集的字节。后续的子数据集可以按类似的方式按顺序填充,直到所有的数据集都被处理。
[0043]
【权利要求】
1.一种带驱动器系统,包括 写通道,用于把数据写到磁带,该写通道利用速率-(232/234)反向级联调制码,其中该写通道包括: 适于接收包括一个或多个数据集的数据流的逻辑器; 适于把每个数据集分成多个子数据集的逻辑器; 适于利用C2编码来编码每个子数据集的逻辑器; 适于利用调制码来编码每个C2编码的子数据集的逻辑器; 适于利用Cl编码来编码每个调制后的子数据集的逻辑器;及 适于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器。
2.如权利要求1所述的带驱动器系统,其中适于把每个数据集分成多个子数据集的逻辑器包括从每个数据集创建六十四个子数据集,每个子数据集组织成大小为77,112字节的84X918字节矩阵。
3.如权利要求2所述的带驱动器系统,其中适于利用C2编码来编码每个子数据集的逻辑器向每个子数据集的矩阵的每个84字节的列添加十二字节的C2纠错码(ECC),从而创建大小为88,128字节的96 X 918字节矩阵,其中C2编码包括(96,84,13) Reed-Solomon ECC0
4.如权利要求3所述的带驱动器系统,还包括:适于通过向每个C2编码的子数据集的96X918字节矩阵的每一行添加10字节的头给每个子数据集加头,从而为每个加头的子数据集创建大小为89,088字节的96X928字节矩阵的逻辑器。
5.如权利要求4所述的带驱动器系统,还包括:适于随机化每个加头子数据集的96X928字节矩阵的每一行( CW-4),从而创建随机化的96X928字节矩阵的逻辑器。
6.如权利要求5所述的带驱动器系统,其中适于利用调制码来编码每个C2编码的子数据集的逻辑器包括通过扩展每个CW-4的长度八个字节对每个随机化的96X928字节矩阵应用(234,232)调制码,从而创建大小为89,856字节的96X936字节矩阵。
7.如权利要求6所述的带驱动器系统,其中Cl编码包括(1992,1872)低密度奇偶校验(LDPC)码,而且其中适于利用Cl编码来编码每个调制后的子数据集的逻辑器包括通过把四个LDPC码字级联到每个CW-4对每个子数据集应用(1992,1872) LDPC码,从而创建大小为95,616字节的96X996字节矩阵。
8.如权利要求7所述的带驱动器系统,其中适于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器包括把32个其中指定了 CW-4的集合同时写到磁带。
9.一种利用速率-(232/234)反向级联调制码把数据写到磁带的方法,该方法包括: 接收包括一个或多个数据集的数据流; 把每个数据集分成多个子数据集; 利用C2编码来编码每个子数据集; 利用调制码来编码每个C2编码的子数据集; 利用Cl编码来编码每个调制后的子数据集 '及 同时把编码调制后的子数据集写到磁带的数据轨道。
10.如权利要求9所述的方法,其中把每个数据集分成多个子数据集包括从每个数据集创建六十四个子数据集,每个子数据集组织成大小为77,112字节的84X918字节矩阵。
11.如权利要求10所述的方法,其中利用C2编码来编码每个子数据集向每个子数据集的矩阵的每个84字节的列添加十二字节的C2纠错码(ECC),从而创建大小为88,128字节的 96X918 字节矩阵,其中 C2 编码包括(96,84,13)Reed-Solomon ECC。
12.如权利要求11所述的方法,还包括通过向每个C2编码的子数据集的96X918字节矩阵的每一行添加10字节的头给每个子数据集加头,从而为每个加头的子数据集创建大小为89,088字节的96X928字节矩阵。
13.如权利要求12所述的方法,还包括随机化每个加头子数据集的96X928字节矩阵的每一行(CW-4),从而创建随机化的96X928字节矩阵。
14.如权利要求13所述的方法,其中利用调制码来编码每个C2编码的子数据集包括通过扩展每个CW-4的长度八个字节对每个随机化的96X928字节矩阵应用(234,232)调制码,从而创建大小为89,856字节的96X936字节矩阵。
15.如权利要求14所述的方法,其中Cl编码包括(1992,1872)低密度奇偶校验(LDPC)码,而且其中利用Cl编码来编码每个调制后的子数据集包括通过把四个LDPC码字级联到每个CW-4对每个子数据集应用(1992,1872)LDPC码,从而创建大小为95,616字节的96X996字节矩阵。
16.如权利要求15所述的方法,其中同时把编码调制后的子数据集写到磁带的数据轨道包括把32个其中指定了 CW-4的集合同时写到磁带。
17.—种适于利用速率-(232/234)反向级联调制码把数据写到磁带的带驱动器系统,该系统包括: 适于接收包括一个或多个数据集的数据流的逻辑器; 适于把每个数据集分成六十四个子数据集的逻辑器,每个子数据集都组织成大小为77,112字节的84X918字节矩阵; 适于通过向每个子数据集的矩阵的每个84字节的列添加十二字节的(96,84,13)Reed-Solomon C2纠错码(ECC)利用C2编码来编码每个子数据集,从而创建大小为88,128字节的96X918字节矩阵的逻辑器; 适于通过向每个C2编码的子数据集的96X918字节矩阵的每一行添加10字节的头给每个C2编码的子数据集加头,从而创建大小为89,088字节的96X928字节矩阵的逻辑器;适于随机化每个加头子数据集的96X928字节矩阵的每一行(CW-4),创建随机化的96X928字节矩阵的逻辑器; 适于通过借助于扩展每个CW-4的长度八个字节来向每个随机化的96X928字节矩阵应用(234,232)调制码,利用调制码来编码每个C2编码的子数据集,以便创建大小为89,856字节的96X936字节矩阵的逻辑器; 适于通过借助于把四个低密度奇偶校验(LDPC)码级联到每个CW-4对每个调制编码后的子数据集应用(1992,1872) LDPC码,利用Cl编码来编码每个调制后的子数据集,以便创建大小为95,616字节的96X996字节矩阵的逻辑器;及 适于通过写32个其中指定了 CW-4的集合同时把调制编码后的子数据集写到磁带的数据轨道的逻辑器。
18.如权利要求17所述的带驱动器系统,还包括: 磁头,用于把数据写到磁带; 驱动机构,用于在磁头之上传递磁带 '及控制器 ,电賴合到磁头。
【文档编号】G11B15/18GK103455282SQ201310203913
【公开日】2013年12月18日 申请日期:2013年5月29日 优先权日:2012年5月29日
【发明者】R·D·塞德斯亚恩, R·A·胡特金斯, T·米特尔洛尔泽, S·奥尔瑟 申请人:国际商业机器公司