首页> 中国专利> 用于把数据写到磁带的方法及带驱动器系统

用于把数据写到磁带的方法及带驱动器系统

摘要

在一种实施例中,带驱动器系统包括用于把数据写到磁带的写通道,该写通道利用速率-(232/234)反向级联调制码。写通道包括适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个数据集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子数据集的逻辑器、适于利用调制码编码每个C2编码的子数据集的逻辑器、适于利用C1编码来编码每个调制后的子数据集的逻辑器,及适于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器。根据各种其它实施例,描述了利用速率-(232/234)反向级联调制码把数据写到磁带的其它系统与方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-11

    专利权的转移 IPC(主分类):G06F 3/06 专利号:ZL2013102039139 登记生效日:20230801 变更事项:专利权人 变更前权利人:北京翩若惊鸿科技有限公司 变更后权利人:北京字跳网络技术有限公司 变更事项:地址 变更前权利人:100085 北京市海淀区信息路甲28号13层B座13D-3-3 变更后权利人:100190 北京市海淀区紫金数码园4号楼2层0207

    专利申请权、专利权的转移

  • 2023-05-26

    专利权的转移 IPC(主分类):G06F 3/06 专利号:ZL2013102039139 登记生效日:20230512 变更事项:专利权人 变更前权利人:阿威曼有限公司 变更后权利人:北京翩若惊鸿科技有限公司 变更事项:地址 变更前权利人:开曼群岛大开曼岛 变更后权利人:北京市海淀区信息路甲28号13层B座13D-3-3

    专利申请权、专利权的转移

  • 2016-04-13

    授权

    授权

  • 2014-01-15

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20130529

    实质审查的生效

  • 2013-12-18

    公开

    公开

说明书

技术领域

本发明涉及磁带数据存储格式,而且更具体地说,涉及利用带低 密度奇偶校验(LDPC)码的反向级联调制码在磁带上存储数据。

背景技术

根据信息存储行业联盟在2008年9月制定的“国际磁带存储路线 图”,已经计划盒式磁带的容量将以41.42%的年复合增长率每两年翻 一倍。随着容量的增加,几乎带式记录系统的所有领域将都得到改 进,以便容纳附加的存储。例如,对记录介质、读/写头、记录通道 和伺服技术及总体的数据格式都将有可能进行改进。

例如,在当前这一代的IBM3592和线性磁带开放(LTO)带驱 动器中,数据由被称为C1和C2的两个正交的Reed-Solomon纠错 码保护。写格式化器接收未编码的数据并且根据C1和C2编码算法 添加附加的奇偶字节。一旦添加了C1和C2奇偶字节,数据就被速 率32/33运行长度受限的调制码处理。

在调制编码之后,数据准备好写到磁带。关于这种体系结构的问 题是当数据写到磁带上时调制码插入到纠错码(ECC)与数据之 间。在读的一侧,当代的纠错方法,例如LDPC码或者软Reed- Solomon检测器,需要从数据检测器接收到的信息包括关联的同步数 据样本。这些数据检测器被称为“软检测器”。不可能利用当前的数据 结构执行软件测。这是因为来自数据检测器的数据首先被调制解码器 处理,然后才被C1码处理。相对于被检测位的任何通道信息都被简 单地输出位的调制解码器除去了。因而,软检测器不能与当前的数据 格式体系结构一起使用。相应地,有一种减轻这个问题的数据格式体 系结构将是有利的。

发明内容

在一种实施例中,一种带驱动器系统包括用于把数据写到磁带的 写通道,该写通道利用速率-(232/234)反向级联调制码。写通道包括 适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个数据 集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子数据 集的逻辑器、适于利用调制码来编码每个C2编码的子数据集的逻辑 器、适于利用C1编码来编码每个调制后的子数据集的逻辑器,及适 于同时把编码调制后的子数据集写到磁带的数据轨道的逻辑器。

在另一种实施例中,一种利用速率-(232/234)反向级联调制码把 数据写到磁带的方法包括接收包括一个或多个数据集的数据流、把每 个数据集分成多个子数据集、利用C2编码来编码每个子数据集、利 用调制码来编码每个C2编码的子数据集、利用C1编码来编码每个 调制后的子数据集,及同时把编码调制后的子数据集写到磁带的数据 轨道。

在还有另一种实施例中,一种适于利用速率-(232/234)反向级联 调制码把数据写到磁带的带驱动器系统包括:适于接收包括一个或多 个数据集的数据流;适于把每个数据集分成六十四个子数据集的逻辑 器,每个子数据集都组织成大小为77,112字节的84×918字节矩阵的 逻辑器;适于通过向每个子数据集的矩阵的每个84字节的列添加十 二字节的(96,84,13)Reed-Solomon C2纠错码(ECC)利用C2编码来 编码每个子数据集,从而创建大小为88,128字节的96×918字节矩阵 的逻辑器;适于通过向每个C2编码的子数据集的96×918字节矩阵 的每一行添加10字节的头给每个C2编码的子数据集加头 (headerize),从而创建大小为89,088字节的96×928字节矩阵的逻 辑器;适于随机化每个加头子数据集的96×928字节矩阵的每一行 (CW-4),创建随机化的96×928字节矩阵的逻辑器;适于通过借 助于扩展每个CW-4的长度八个字节向每个随机化的96×928字节矩 阵应用(234,232)调制码利用调制码来编码每个C2编码的子数据 集,以便创建大小为89,856字节的96×936字节矩阵的逻辑器;适于 通过对每个调制编码后的子数据集应用(1992,1872)低密度奇偶校验 (LDPC)码利用C1编码来编码每个调制后的子数据集以便创建大 小为95,616字节的96×996字节矩阵的逻辑器,其中应用(1992, 1872)LDPC码是通过把四个LDPC码字级联到每个CW-4进行 的;及适于通过写32个其中指定了CW-4的集合同时把调制编码后 的子数据集写到磁带的数据轨道的逻辑器。

这些实施例中的任何一个都可以在例如带驱动器系统的磁性数据 存储系统中实现,其中带驱动器系统可以包括磁头、用于在磁头之上 传递磁性介质(例如,记录带)的驱动机构和电耦合到磁头的控制 器。

从以下具体描述,本发明的其它方面与实施例将变得显而易见, 当联系附图考虑时,所述描述通过例子说明了本发明的原理。

附图说明

图1根据一种实施例说明了基于带的数据存储系统的简化带驱动 器。

图2根据一种实施例示出了低密度奇偶校验(LDPC)写格式体 系结构的框图。

图3根据一种实施例示出了用于产生纠错码(ECC)字节的发 生器电路。

图4根据一种实施例示出了用于产生循环冗余校验(CRC)字 节的发生器电路。

图5根据一种实施例示出了随机发生器电路。

图6A-6F根据一种实施例示出了利用H-矩阵创建奇偶校验位的 例子。

图7A示出了根据一种实施例的输入接口和状态计数器。

图7B根据一种实施例示出了调制编码器。

图8根据一种实施例示出了一种方法的流程图。

具体实施方式

进行以下描述是为了说明本发明的通用原理而不是要限制在此所 保护的发明性概念。另外,在此所述的特定特征可以与其它所述特征 以各种可能排列组合中的每一种结合使用。

除非在此另外具体定义,否则所有术语都要赋予其最广泛可能的 解释,包括从本说明书暗示的意义及本领域技术人员理解的意义和/ 或字典、论文等中所定义的意义。

还应当指出,如在本说明书和所附权利要求中所使用的,除非另 外指定,否则单数形式“一”、“一个”和“这个”包括复数的所指对象。

根据一种实施例,磁带可以采用一种数据格式,其中有效的反向 级联调制码插入Reed-Solomon C2纠错码(ECC)和低密度奇偶校 验(LDPC)码C1之间。

在一种通用实施例中,一种带驱动器系统包括用于把数据写到磁 带的写通道,该写通道利用速率-(232/234)反向级联调制码。写通道 包括适于接收包括一个或多个数据集的数据流的逻辑器、适于把每个 数据集分成多个子数据集的逻辑器、适于利用C2编码来编码每个子 数据集的逻辑器、适于利用调制码来编码每个C2编码的子数据集的 逻辑器、适于利用C1编码来编码每个调制后的子数据集的逻辑器, 及适于同时把编码后的调制子数据集写到磁带的数据轨道的逻辑器。

在另一种通用实施例中,一种利用速率-(232/234)反向级联调制 码把数据写到磁带的方法包括接收包括一个或多个数据集的数据流、 把每个数据集分成多个子数据集、利用C2编码来编码每个子数据 集、利用调制码编码每个C2编码的子数据集、利用C1编码来编码 每个调制后的子数据集,及同时把编码后的调制子数据集写到磁带的 数据轨道。

在还有另一种通用实施例中,一种适于利用速率-(232/234)反向 级联调制码把数据写到磁带的带驱动器系统包括:适于接收包括一个 或多个数据集的数据流的逻辑器;适于把每个数据集分成六十四个子 数据集的逻辑器,每个子数据集都组织成大小为77,112字节的 84×918字节矩阵;适于通过向每个子数据集的矩阵的每个84字节的 列添加十二字节的(96,84,13)Reed-Solomon C2纠错码(ECC)利用 C2编码来编码每个子数据集,从而创建大小为88,128字节的96×918 字节矩阵的逻辑器;适于通过向每个C2编码的子数据集的96×918 字节矩阵的每一行添加10字节的头给每个C2编码的子数据集加 头,从而创建大小为89,088字节的96×928字节矩阵的逻辑器;适于 随机化每个加头子数据集的96×928字节矩阵的每一行(CW-4), 创建随机化的96×928字节矩阵的逻辑器;适于通过借助于扩展每个 CW-4的长度八个字节向每个随机化的96×928字节矩阵应用(234, 232)调制码,利用调制码来编码每个C2编码的子数据集,以便创 建大小为89,856字节的96×936字节矩阵的逻辑器;适于通过对每个 调制编码后的子数据集应用(1992,1872)低密度奇偶校验(LDPC)码 利用C1编码来编码每个调制后的子数据集以便创建大小为95,616字 节的96×996字节矩阵的逻辑器,其中应用(1992,1872)LDPC码 是通过把四个LDPC码字级联到每个CW-4进行的;及适于通过写 32个其中指定了CW-4的集合同时把调制编码后的子数据集写到磁 带的数据轨道的逻辑器。

所属技术领域的技术人员知道,本发明的各个方面可以实现为系 统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现 为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固 件、驻留软件、微代码等),或者硬件和软件方面结合的实施例,这 里可以统称为“逻辑器”、“电路”、“模块”或“系统”。此外,在一些实 施例中,本发明的各方方面还可以实现为在一个或多个计算机可读介 质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读 的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读 介质可以是计算机可读信号介质或者非易失的计算机可读存储介质。 非易失的计算机可读存储介质例如可以是——但不限于——电、磁、 光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的 组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括: 便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器 (ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁 盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任 意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或 存储程序的非易失的有形介质,该程序可以被指令执行系统、装置或 者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传 播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据 信号可以采用多种形式,包括——但不限于——电磁信号、光信号或 上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读 存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、 传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合 使用的程序,例如具有一个或者多个电线、光纤等的电连接。

计算机可读介质上包含的程序代码可以用任何适当的介质传输, 包括——但不限于——无线、电线、光缆、RF等等,或者上述的任 意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明 操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计 语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计 语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在 用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软 件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全 在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计 算机可以通过任意种类的网络——包括局域网(LAN)或广域网 (WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如 利用因特网服务提供商来通过因特网连接)。

下面将参照本发明实施例的方法、装置(系统)和计算机程序产 品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每 个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序 指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机 或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计 算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实 现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指 令使得计算机、其它可编程数据处理装置或者其它设备以特定方式工 作,从而,存储在计算机可读介质中的指令就产生包括实现流程图和 /或框图中的一个或多个方框中规定的功能/动作的指令的制造品 (article of manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装 置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它 设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计 算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图 中的一个或多个方框中规定的功能/动作的过程。

图1说明了可以根据各种实施例采用的、基于带的数据存储系统 的简化带驱动器100。虽然在图1中示出了带驱动器的一种具体实 现,但是应当指出,在此所述的实施例可以在任何类型的带驱动器系 统的背景下实现。

如图所示,提供了带供应盒120和收带盘121,以便支撑带 122。一个或多个收带盘可以构成可拆卸磁带盒的一部分而且不一定 是系统100的一部分。带驱动器,例如图1中所说明的那种,还可以 包括驱动器电机,以便驱动带供应盒120和收带盘121在任何类型的 带头126之上移动带122。驱动器电机可以被认为是用于在磁头126 之上传递磁带122的驱动机构。

导向装置125引导带122跨过带头126。这种带头126又经电缆 130耦合到控制器组件128。控制器128一般包括伺服通道并控制头 的功能,例如轨道跟踪、写、读等。电缆130可以包括读/写电路, 以便把数据发送到头126,从而把数据记录到带122上,并且接收由 头126从带122读取的数据。致动器132确定头126相对于带122的 位置。

还可以提供用于带驱动器100与主机(一体化的或者外部的)之 间通信的接口,以便发送和接收数据并且用于控制带驱动器100的操 作和把带驱动器100的状态传送到主机,所有这些都将是本领域技术 人员所理解的。

根据一种实施例,有效速率-232/234反向级联调制码可以插入到 Reed-Solomon C2 ECC与LDPC C1码之间。这种体系结构的一些优 点可以包括更有效的调制码,例如速率-232/234(99%有效)调制码 对速率32/33(97%有效)调制码;C1编码/解码可以利用比当前所 使用的Reed-Solomon码更加强大的LDPC码;数据检测/解码可以 利用检测器中的迭代和解码器中的迭代来执行,使得可以启用软检 测;而且用于数据编码/解码的数据结构和数据流可以类似于现有的 用于3592数据体系结构的数据结构和数据流。

以下描述是对于用于32-轨道磁带驱动器的基于LDPC的纠错系 统。当然,在此所述的系统及关联的方法可以利用比32条轨道更多 或更少的轨道,例如16轨道、8轨道、64轨道等,在带驱动器中实 现。根据各种例子,描述了一种可供选择的基于LDPC的纠错系统 并且与常规使用的系统形成对比。在这些例子中进行了一些假设,具 体而言是使用(234,232)反向级联调制码和使用(1992,1872) LDPC码。应当指出,这样做仅仅是把例子放在一种背景下并且为了 帮助读者。此外,根据各种实施例,反向级联调制码可以用作全反向 码或者部分反向码。应当理解,在本发明过多可能实施例的各种排列 组合中,可以使用各种类型的纠错码。

现在参考图2,根据一种实施例示出了写格式体系结构200的框 图。流过这个框图的过程是从左往右。

如在此所使用的,子数据集是ECC算法处理的基本数据单元。 根据一种实施例,特定于32-轨道的磁带格式,子数据集包括组织成 84×918字节矩阵的77,112个字节。64个子数据集可以从每个数据集 或文件构造。

根据一种实施例,第一子数据集可以通过把第一数据集字节放到 该子数据集的第0行、第0列中并且如表1中所示出的那样继续来填 充,其中标准的数字代表数据集的字节。后续的子数据集可以按类似 的方式按顺序填充,直到所有的数据集都被处理。

表1:子数据集

然后,根据一种实施例,利用C2编码处理每个子数据集,如图 2中的方框202中所示。C2编码的子数据集可以是通过C2 ECC算 法处理子数据集的结果。根据一种实施例,该处理可以给子数据集的 每个84字节的列添加12字节的C2 ECC,如表2中所示。

表2:C2编码的子数据集

根据一种实施例,(96,84,13)Reed-Solomon码可以应用到子数据 集的每个84字节的列,产生每列12个C2 ECC字节。结果产生的 88,128字节的96×918矩阵可以被称为C2编码的子数据集。

在一种方法中,GF(256)中的计算可以由等式1定义。

P(x)=x8+x4+x3+x2+1    等式1

在一种方法中,GF(256)中的本原元α可以由等式2表示。

α=(0 0 0 0 0 0 1 0)    等式2

在一种方法中,发生器多项式可以由等式3和4表示。

G(x)=(x+α122)(x+α123)(x+α124)(x+α125)(x+α126)(x+α127)(x+ α128)(x+α129)(x+α130)(x+α131)(x+α132)(x+α133)    等式3

G(x)=Πj=122133(x+αj)

=x12+α224x11+α32x10+α209x9+α99x8+α32x7+α80x6+α32x5+α99x4

+α209x3+α32x2+α224x1+1等式4

如图3中所示,根据一种实施例,ECC字节可以通过处理必需 的字节通过发生器电路300来产生。根据一种方法,在开始处理之 前,发生器电路的寄存器,R0、R1、…、R11可以设置成(00)。 根据一种方法,寄存器R0、R1、…、R11可以是八位宽。数据字节 可以顺序地馈送到编码器中。在处理过必需的字节之后,R11的内容 可以设置成ECC11,R10的内容可以设置成ECC10,R9的内容可 以设置成ECC9,等等。当这些ECC字节附加到数据字节和/或放到 一个字段中时,ECC11可以是附加的第一个字节,其后是ECC10、 ECC9,等等。

再次参考图2,加头的子数据集可以是把10字节的头级联到C2 编码的子数据集的每一行的结果,如图2中示为插入头模块212,然 后在带布局中实现。根据一种实施例,该处理可以把10字节的头加 到子数据集的每个918字节行的开始,如表3中所示。结果产生的加 头的子数据集可以是89,088字节的96×928矩阵。

表3:加头的子数据集

加头的子数据集的每一行都可以通过图2中的随机发生器204、 调制编码器206,然后是C1编码208(优选地是LDPC编制码), 然后格式特征可以插入到模块210中。行元素是用于处理的基本单元 并且在这里被称为CW-4(在LDPC C1 ECC的讨论之后,这种标识 符将变得更加显然)。

如本领域技术人员在阅读所给出的描述时将理解的,调制编码器 206可以根据在此所述的或者别的各种实施例来实现。调制编码器 206的一种实施例在图7A-7B中描述,稍后更具体地描述。

此外,调制编码器可以根据PRML(G,I,M)码来操作,这在于 2009年11月10日发布的美国专利号7,616,134中进行描述,该专利 在此全部引入作为参考。

再次参考图2,在一种方法中,C1编码208可以是LDPC编 码,而且由调制编码器206使用的调制码可以是反向级联码。格式特 征210是添加到数据的状态或硬特征,以便使得更容易识别磁带上的 位置。这些格式特征可以包括,但不限于,DSS、锁定PLL的变频 振荡器(VFO)字段和同步字符等,其中DSS是一个“1”后面跟着 11个“0”的周期12的周期性模式。

一旦在模块206中添加了调制码,子数据集就在模块208中利用 C1码编码,在一种方法中,C1码是LDPC码。相应地,在部分反 向级联中,数据流是利用C2编码器,然后利用调制码,然后利用 C1编码器来编码的。

根据一种方法,10字节的CW-4头可以加到每个CW-4的前面 而且可以包括如表3中所示的信息。这种信息可以包括CW-4标识 符、写通和用于ECC的头奇偶。

字节位置 字节中的长度 字段的名称 0 4 CW-4标识符 4 4 写通 8 2 头奇偶

表4:CW-4头

根据一种方法,表5示出了CW-4标识符。在一种方法中,字节 0的位7可以是缓行标志(AF)。如果指定的CW-4是缓行指定的 CW-4的话,AF可以设置成一,而如果指定的CW-4是数据指定的 CW-4的话,AF可以设置成零。

表5:CW-4标识符

在一种方法中,字节0的位6可以是相邻包裹切换(AWT)。 AWT可以设置成包裹号的第二个最低有效位,例如,对于包裹1和 1是零,对于包裹2和3是一。在一种方法中,字节0的位5-0可以 是数据集ID片段。数据集ID片段可以包括数据集号的六个最低有 效位。在一种方法中,字节1和字节2的位7-5可以包括11位的绝 对码字对象集序列号(ACN)。字节2的位4-0和字节3可以基于所 指定的CW-4是否是缓行指定的CW-4来指定,根据一种方法,如果 是缓行指定的CW-4,这些位就可以全都设置成零,如果不是缓行指 定的CW-4,这些位可以设置成CW-4指定的13位值。

对于每个码字对象集,ACN可以设置在0到2047之间。在一种 方法中,这个数字可以比带上紧接在其前面所写的码字对象集的 ACN大一,或者如果之前所写的ACN是2047,这个数字可以是 零。在一种实施例中,ACN可以在码字对象集中的全部CW-4头中 都相同。而且,根据一种优选实施例,写到包裹上的第一个码字对象 集的ACN可以是零。

在一种实施例中,当附加到磁带时,写到附加点的第一个码字对 象集的ACN可以在1到256之间,比在该附加点之前写到数据集中 的最后一个码字对象集大mod(2048)。

写通标识符字段可以识别要在其上写数据集的写通。根据一种实 施例,除了中断的数据集之后,对于CW-4所属的数据集,这个字段 的内容可以与数据集标识表(DSIT)中的带写通值相同。

头奇偶可以是GF(256)之上的Reed-Solomon码,或者本领域中 已知的任何其它合适的码。在一种方法中,GF(256)中的计算可以由 等式5来定义。

P(x)=x8+x4+x3+x2+1    等式5

在一种方法中,GF(256)中的本原元α可以根据等式6设置。

α=(0 0 0 0 0 0 1 0)    等式6

在一种方法中,发生器多项式可以根据等式7来设置。

G(x)=(x+α127)(x+α128)=x2152x+1    等式7

现在参考图4,循环冗余校验(CRC)字节可以通过处理必需的 字节通过发生器电路400来生成,其中发生器电路400的寄存器 R0、R1可以在开始处理之前设置成(00)。在一种实施例中,寄存 器R0和R1可以是8位宽。数据字节可以顺序地馈送到编码器中。 在一种方法中,在处理过必需的字节之后,R1的内容可以是 CRC1,而R0的内容可以是CRC0。在优选实施例中,CRC1可以 是头中的第一个字节,而CRC0可以是头中的第二个字节。

在一种实施例中,来自加头的子数据的每个CW-4都可以通过图 2中的随机发生器204,由此创建随机化的子数据集。包括随机发生 器是因为在有些情况下重复的模式会在带驱动器中造成问题。随机发 生器确保位不会重复太长,从而确保在带驱动器中就此而言将没有问 题。

该处理将不向加头的子数据集添加任何附加的字节。根据一种实 施例,结果产生的随机化的子数据集可以是89,088字节的96×928矩 阵,如表6中所示。

表6:随机化的子数据集

在一种方法中,随机化算法可以在每个CW-4头的开始预设,或 者可以根据本领域中已知的某种其它理论基础来设置。图5示出了根 据一种实施例的随机化偏移寄存器500。对于CW-4头和数据的每个 字节,首先输入最高有效位,例如位7。然后,输入每个相继的位。 逻辑运算符是异或。这个运算的结果是随机化的位流,如图5中所 示。

来自随机化的子数据集的每个CW-4都通过编码器,如图2中的 调制模块206。在一种方法中,对于(234,232)调制码,编码器可以是 满足约束(G=12,I=6,M=22)。根据一种实施例,这把每个CW-4 的长度从928字节扩展成936字节。因而,根据一种方法,调制后的 子数据集可以是89,856字节的96×936矩阵。调制编码器的二进制输 出被称为调制编码位。

然后,来自调制后的子数据集的每个CW-4都通过用于 (1992,1872)LDPC码的编码器,例如图2中所示的LDPC编码模块 208。每个LDPC码字有234个信息字节,而且C1子数据集的每个 CW-4可以包括四个LDPC码字。由于在LDPC编码之前已经添加 了调制码,因此四个LDPC码字可以级联,形成CW-4(应当指出, 在常规的驱动器中,C1码字是交织的)。在一种方法中,记录在带 上的调制后的和C1编码后的序列所满足的约束可以是(G=14, I=7,M=24)。C1编码把调制后的子数据集的每个CW-4的长度从 936字节扩展成996字节。因而,C1子数据集可以是95,616字节的 96×996字节矩阵。

到LDPC编码器208的输入可以是从调制编码器206输出的 位。这些位可以在234位的块中出现。八块调制编码的数据位可以级 联,形成到LDPC编码器208的输入。作为到LDPC编码器208的 输入的每一块234字节(1872位)可以被称为调制编码的块。

在优选实施例中,C1码可以是一般由H-矩阵描述的LDPC码。 以下,用于LDPC编码器的符号表示的简单例子看起来是小的H-矩 阵,它可以放大成任何尺寸的LDPC编码方案,如本领域技术人员 将理解的。用于LDPC码的H-矩阵是1和0输入的稀疏二进制矩 阵。以下所示出的例子H-矩阵是对于MxN奇偶校验矩阵,其中 M=9(校验节点)而且N=12(符号节点)。对于这个例子,每个校 验节点有四个1和八个0输入—即,该矩阵的2/3是用0输入填充 的。

H=001001110000110010000001000100001110010001100100101000010010000110001001100110100000000001010011011000001100

例子H-矩阵

根据一种实施例,这个例子H-矩阵可以由以下所示的连接矩阵 来表示。在这个连接矩阵中,每个校验节点在从索引0开始的左列中 列出(H-矩阵的顶行)。H-矩阵的校验节点内每个1输入的位置在 该连接矩阵对应的行中给出,同样是以处于左列的位索引0开始。

校验节点连接矩阵的简单例子

根据一种实施例,用于LDPC码的系统H-矩阵可以具有120个 校验节点(M=120)和1992个符号节点(N=1992)。这产生了120 个奇偶位,这些奇偶位通常可以级联到调制编码块的末端。但是,由 于数据已经调制编码了,因此这是不可接受的。在1872位调制编码 块的末端有120个奇偶位会破坏调制码的属性,如在常规领域中所进 行的。为了避免这个问题,奇偶位在调制编码的位内部散布。这稍微 减弱了调制码的属性,但调制码的总体属性仍然强壮。利用以下表7 中所示的奇偶插入方案,原始的调制约束(G=12,I=6,M=22)被 减弱成(G=14,I=7,M=24)。

当然,根据用户需求、设计标准、带容量等,任何数量的校验节 点和符号节点都可以使用。

代替级联,LDPC奇偶位可以插入到调制编码的位当中。在一种 实施例中,编码过程以通过添加120位把调制编码块从1872位扩展 成1992位开始。这120位最初被设置成“0”而且在30个调制编码位 的组之间按对在调制编码块中散布。LDPC编码器取得这个输入并且 计算奇偶位,填充在最初设置成“0”的120个位位置中。

根据一种实施例,在表7中示出了输入码字的创建及随后利用奇 偶校验位填充以便创建LDPC码字。

表7:LDPC奇偶位的插入

在创建奇偶校验位的位置并用0输入填充之后,通过使用H-矩 阵创建奇偶校验位,其例子在图6A-6F中示出(其中-1指示无连 接),图6A-6C用于校验节点连接矩阵的左部分,而图6D-6F用于 校验节点连接矩阵的右部分。该过程通过计算校验节点119开始,其 中校验节点119放在LDPC码字的位30上。接下来,计算校验节点 118并放在位31。这个过程继续,直到所有的奇偶校验位都计算出来 并放到LDPC码字中。

ECC编码的数据集可以包括6,119,424个字节,具有六十四个 96×996字节的C1编码子数据集。每个C1编码的子数据集的每一行 都可以是996字节的C1编码CE-4。因而,根据一种实施例,每个 ECC编码的数据集可以有6,144个C1编码的CW-4。

表8示出了在一个例子中用于这6,144个CW-4的指定如何可以 从六十四个C1子数据集分配及C1子数据集中的行号。

表8:CW-4指定

所指定的CW-4可以同时写到磁带上三十二个指定的CW-4的集 合中,由此形成CW-4集,其中32是同时处于活动的轨道个数。当 然,磁带上可以存在更多或者更少的轨道,在这种情况下,在此所述 的数字可以相应地更改,如本领域技术人员通过读所给出的描述将理 解的。每个集合的一个指定的CW-4可以写到32条轨道中的每一 条。轨道可以编号为从0到31,其中逻辑轨道0至31以数字递增的 次序对应于定义成处于当前包裹中的物理轨道。逻辑轨道0可以对应 于集合中最低编号的物理轨道。逻辑轨道31可以对应于集合中最高 编号的物理轨道。CW-4集可以编号为0到191。在一种方法中,码 字对象集(CO集)包括两个CW-4集。

在一种方法中,CW-4集和所指定的CW-4分配到的轨道号可以 根据表9和表10来定义。应当指出,双倍轮廓的单元指示来自子数 据集0和1的C1码字符号的位置。这说明了其中C1码字跨所有轨 道散布的途径。在一种方法中,CO集中CW-4集的排序是周期性反 向的。见CW-4集64/65、128/129等。

应当指出,在CW集合号i和轨道号t的输入是由等式8给出 的。

CWI_table(i,t)=floor(i/2)*64+mod(mod(i,2)+mod(floor(i/96),2),2) +mod(floor(i/2)*(-15)+t,32)*2    等式8

表9:CW-4到逻辑轨道的分配

表10:CW-4到逻辑轨道的分配

在一种实施例中,调制编码器206可以根据图7A-7B来操作, 生成(234,232)反向级联调制码的偶数和奇数次交织。在这种实施例 中,调制编码器是能够处理连续的数据流的串联设计。对于这种设 计,在一种方法中,接收116个输入位并且以偶数/奇数交织生成117 个输出位。在每次交织中,116个输入位的流在117个时钟循环中被 处理。

现在参考图7A,根据一种实施例示出了输入接口706和状态计 数器704。示出了四个输出、一个输入偏移寄存器-ENCSR (11:0)、一个状态计数器输出-SYSCNT(6:0)、一个起始位- STARTZ和一个到调制编码器的选通输入-STATE IN。输入数据 (DATA IN)是唯一示出的输入。

输入数据(DATA IN)可以被带到输入接口706中,同时系统 计数器(SYSCNT(6:0))处于计数=0x00。随着系统计数器704向上 计数,数据偏移到偏移寄存器(Reg)中。当计数器到达0xB(十进 制的11)时,偏移寄存器数据锁存到调制编码器状态机中(具有 0x50的附加偏移)。这个输入偏移只是数据的串行流化所需要的-有 可能结合这个逻辑与调制编码器状态机。

在一种方法中,系统计数器-SYSCNT(6:0)704用于控制调制编 码器状态机。计数器在0x00开始并且开始递增,直到它到达0x74 (十进制的116)。当计数器到达0xB(十进制的11)时,调制编码 器状态机利用来自偏移寄存器的数据初始化。在计数0x74(十进制 的116)和计数0x0至0xA,到调制编码器的输入被选通(设置成 零),而且最后剩下的编码数据都从调制编码器中清洗出去。

在一种方法中,起始位-STARTZ保持调制编码器状态机和调 制后的数据输出位设置成零,直到系统计数器递增至0xB。

在一种方法中,当系统计数器704是计数0x74(十进制的116) 和计数0x0至0xA时,到调制编码器的输入设置成零。这使得调制 编码器状态机能够在处理输入数据与从状态机清洗剩余的编码数据位 之间无缝切换。

根据一种实施例,在图7B中示出了调制编码器702。调制编码 器702的主要部件是调制编码器状态机–ENCSTATE(12:0)、两个 查找表-W和VW,及编码后的输出数据位-SERDATA。

调制编码器状态机保留在0x0000,直到在系统计数器等于0xB 时起始位被启用。类似地,输出位也保留在零。

当系统计数器到达0xB(十进制的11)时,调制编码器状态机 加载来自输入偏移寄存器的数据(具有0x50的附加偏移)。在每个 时钟之后,调制编码器的输出都用二来乘,把选通的输入位加到该输 出(这是偏移寄存器的操作,其中编码器状态机的状态向上偏移而且 输入数据偏移到最低有效位)。

这种偏移寄存器操作的输出与VW表的输出进行比较。如果结 果大于或者等于VW,则W值加到该结果并且锁存到编码器状态机 中。如果结果小于VW,则该结果直接加载到偏移寄存器状态机中。

在一种实施例中,这两个查找表,W和VW,可以具有以下特 性:

W[0]=0x02C0;     VW[0]=0x1D44;

W[1]=0x02A0;     VW[1]=0x1D68;

W[2]=0x0280;     VW[2]=0x1D90;

W[3]=0x0260;     VW[3]=0x1DC0;

W[4]=0x0240;     VW[4]=0x1E00;

W[5]=0x0200;     VW[5]=0x1E00;

W[6]=0x0200;     VW[6]=0x1E00;

W[7]=0x0200;     VW[7]=0x1E00;

W[8]=0x0000;     VW[8]=0x2000;

W[9]=0x0000;     VW[9]=0x2000;

W[10]=0x0000;    VW[10]=0x2000;

W[11]=0x0000;    VW[11]=0x2000;

W[12]=0x0EA0;    VW[12]=0x1162;

W[13]=0x0E90;    VW[13]=0x1172;

W[14]=0x0E70;    VW[14]=0x1192;

W[15]=0x0E60;    VW[15]=0x11A2;

W[16]=0x0E40;    VW[16]=0x11C2;

W[17]=0x0E30;    VW[17]=0x11D2;

W[18]=0x0E10;    VW[18]=0x11F2;

W[19]=0x0E00;    VW[19]=0x1202;

W[20]=0x0DE0;    VW[20]=0x1222;

W[21]=0x0DD0;    VW[21]=0x1232;

W[22]=0x0DB0;    VW[22]=0x1252;

W[23]=0x0DA0;    VW[23]=0x1262;

W[24]=0x0D80;    VW[24]=0x1282;

W[25]=0x0D70;    VW[25]=0x1292;

W[26]=0x0D50;    VW[26]=0x12B2;

W[27]=0x0D40;    VW[27]=0x12C2;

W[28]=0x0D20;    VW[28]=0x12E2;

W[29]=0x0D10;    VW[29]=0x12F2;

W[30]=0x0CF0;    VW[30]=0x1312;

W[31]=0x0CE0;    VW[31]=0x1322;

W[32]=0x0CC0;    VW[32]=0x1342;

W[33]=0x0CB0;    VW[33]=0x1352;

W[34]=0x0C90;    VW[34]=0x1372;

W[35]=0x0C80;    VW[35]=0x1382;

W[36]=0x0C60;    VW[36]=0x13A2;

W[37]=0x0C50;    VW[37]=0x13B2;

W[38]=0x0C30;    VW[38]=0x13D2;

W[39]=0x0C20;    VW[39]=0x13E2;

W[40]=0x0C00;    VW[40]=0x1402;

W[41]=0x0BE0;    VW[41]=0x1422;

W[42]=0x0BD0;    VW[42]=0x1432;

W[43]=0x0BB0;    VW[43]=0x1452;

W[44]=0x0B90;    VW[44]=0x1472;

W[45]=0x0B80;    VW[45]=0x1482;

W[46]=0x0B60;    VW[46]=0x14A2;

W[47]=0x0B40;    VW[47]=0x14C2;

W[48]=0x0B30;    VW[48]=0x14D2;

W[49]=0x0B10;    VW[49]=0x14F2;

W[50]=0x0AF0;    VW[50]=0x1512;

W[51]=0x0AE0;    VW[51]=0x1522;

W[52]=0x0AC0;    VW[52]=0x1542;

W[53]=0x0AA0;    VW[53]=0x1562;

W[54]=0x0A80;    VW[54]=0x1582;

W[55]=0x0A70;    VW[55]=0x1592;

W[56]=0x0A50;    VW[56]=0x15B2;

W[57]=0x0A30;    VW[57]=0x15D2;

W[58]=0x0A10;    VW[58]=0x15F2;

W[59]=0x0A00;    VW[59]=0x1602;

W[60]=0x09E0;    VW[60]=0x1622;

W[61]=0x09C0;    VW[61]=0x1642;

W[62]=0x09A0;    VW[62]=0x1662;

W[63]=0x0980;    VW[63]=0x1682;

W[64]=0x0960;    VW[64]=0x16A2;

W[65]=0x0940;    VW[65]=0x16C2;

W[66]=0x0920;    VW[66]=0x16E2;

W[67]=0x0900;    VW[67]=0x1702;

W[68]=0x08E0;    VW[68]=0x1722;

W[69]=0x08C0;    VW[69]=0x1742;

W[70]=0x08A0;    VW[70]=0x1762;

W[71]=0x0880;    VW[71]=0x1782;

W[72]=0x0860;    VW[72]=0x17A2;

W[73]=0x0840;    VW[73]=0x17C2;

W[74]=0x0820;    VW[74]=0x17E2;

W[75]=0x0800;    VW[75]=0x1802;

W[76]=0x07E0;    VW[76]=0x1822;

W[77]=0x07C0;    VW[77]=0x1842;

W[78]=0x07A0;    VW[78]=0x1862;

W[79]=0x0780;    VW[79]=0x1882;

W[80]=0x0760;    VW[80]=0x18A2;

W[81]=0x0740;    VW[81]=0x18C2;

W[82]=0x0720;    VW[82]=0x18E2;

W[83]=0x0700;    VW[83]=0x1902;

W[84]=0x06E0;    VW[84]=0x1922;

W[85]=0x06C0;    VW[85]=0x1942;

W[86]=0x06A0;    VW[86]=0x1962;

W[87]=0x0680;    VW[87]=0x1982;

W[88]=0x0660;    VW[88]=0x19A2;

W[89]=0x0640;    VW[89]=0x19C2;

W[90]=0x0620;    VW[90]=0x19E2;

W[91]=0x0600;    VW[91]=0x1A02;

W[92]=0x05E0;    VW[92]=0x1A22;

W[93]=0x05C0;    VW[93]=0x1A42;

W[94]=0x05A0;    VW[94]=0x1A62;

W[95]=0x0580;    VW[95]=0x1A82;

W[96]=0x0560;    VW[96]=0x1AA2;

W[97]=0x0540;    VW[97]=0x1AC2;

W[98]=0x0520;    VW[98]=0x1AE2;

W[99]=0x0500;    VW[99]=0x1B02;

W[100]=0x04E0;   VW[100]=0x1B22;

W[101]=0x04C0;   VW[101]=0x1B42;

W[102]=0x04A0;   VW[102]=0x1B62;

W[103]=0x0480;   VW[103]=0x1B82;

W[104]=0x0460;   VW[104]=0x1BA2;

W[105]=0x0440;   VW[105]=0x1BC2;

W[106]=0x0420;   VW[106]=0x1BE2;

W[107]=0x0400;   VW[107]=0x1C02;

W[108]=0x03E0;   VW[108]=0x1C22;

W[109]=0x03C0;   VW[109]=0x1C42;

W[110]=0x03A0;   VW[110]=0x1C62;

W[111]=0x0380;   VW[111]=0x1C82;

W[112]=0x0360;   VW[112]=0x1CA2;

W[113]=0x0340;   VW[113]=0x1CC2;

W[114]=0x0320;   VW[114]=0x1CE2;

W[115]=0x0300;   VW[115]=0x1D02;

W[116]=0x02E0;   VW[116]=0x1D22;

查找表W           查找表VW

根据一种实施例,调制编码器可以具有以下C代码模拟,等 等:

现在参考图8,根据一种实施例示出了利用速率-(232/234)反向级 联调制码把数据写到磁带的方法800。作为一种选项,所给出的方法 800可以在图1-7B的功能性与体系结构的背景下实现。但是,方法 800可以在任何期望的环境中执行。应当指出,根据各种实施例,以 上提到的定义可以在所给出的描述中应用,而且方法800可以包括比 在此所述的那些更多或更少的操作。

在操作802中,接收包括一个或多个数据集的数据流。根据用户 的期望或者根据对数据流所合适的,方法800可以按流的方式或者按 批执行。

在操作804中,每个数据集都分离成多个子数据集。在一种实施 例中,每个数据集都可以分离成六十四个子数据集,每个子数据集组 织成大小为77,112字节的84×918字节矩阵。

在操作806中,每个子数据集利用C2编码代码来编码。在一种 方法中,利用C2编码的编码可以包括向每个子数据集的矩阵的每个 84字节的列添加十二字节的C2 ECC,从而产生大小为88,128字节 的96×918字节矩阵。在一种实施例中,C2编码可以包括 (96,84,13)Reed-Solomon ECC或者本领域中已知的某种其它ECC。

在可选操作808中,给每个子数据集加头。这个操作被描述为是 可选的,因为除了给它们当中的每一个加头,可能还有识别子数据集 的其它途径。如本领域中已知的,识别子数据集的任何其它方法都可 以使用。根据一种方法,加头可以包括向每个C2编码的子数据集的 96×918字节矩阵的每一行添加10字节的头,从而为每个加头的子数 据集创建大小为89,088字节的96×928字节矩阵。

在可选操作810中,随机化子数据集。这个操作被描述为可选 的,因为可能还存在确保子数据集在被调制编码器编码之前包括基本 上随机数据的其它途径。如本领域中已知的,确保数据集基本上随机 的任何其它方法都可以使用,例如,通过用户数据的压缩和加密。在 一种实施例中,每个加头子数据集的96×928字节矩阵的每一行 (CW-4)都可以被随机化,以便创建随机化的96×928字节的矩 阵。

在操作812中,每个C2编码的子数据集都利用调制码来编码。 在一种实施例中,调制编制码可以包括通过扩展每个CW-4的长度八 个字节对每个随机化的96×928字节矩阵应用(234,232)调制码,从而 创建大小为89,856字节的96×936字节矩阵。

在操作814中,每个调制后的子数据集都利用C1编码来编码。 根据一种实施例,C1编码可以包括通过给每个CW-4添加四个 LDPC码字对每个子数据集应用(1992,1872)LDPC码,从而创建大小 为95,616字节的96×996字节矩阵。

在操作816中,编码调制后的子数据集同时写到磁带的数据轨 道。在一种实施例中,同时写可以包括把32个其中指定了CW-4的 集合同时写到磁带。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、 方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点 上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的 一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现 规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现 中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。 例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以 按相反的顺序执行,这依赖所涉及的功能而定。也要注意的是,框图 和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合, 可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者 可以用专用硬件与计算机指令的组合来实现。

以上已经描述了各种实施例,但是应当理解,它们仅仅是作为例 子给出的,而不是限制。因而,本发明实施例的广度和范围不应当受 上述任何示例性实施例的限制,而只应当根据以下权利要求及其等价 物来定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号