用于将数据写入多磁道数据磁带的方法和相关设备、装置

申请号 CN200980153162.6 申请日 2009-11-25 公开(公告)号 CN102272841B 公开(公告)日 2014-11-12
申请人 国际商业机器公司; 发明人 T·米特尔霍尔泽; R·D·希德希亚恩; E·埃莱夫特里乌; 田中启介; 松尾久人; P·西格;
摘要 为了将数据写入多磁道磁带,接收所接收的数据集并将其分割成未编码的子数据集,每个未编码的子数据集包括具有K2个行和K1个列的数组。对于每个未编码的子数据集,针对每个行生成N1-K1个C1奇偶校验字节,针对每个列生成N2-K2个C2奇偶校验字节。所述C1和C2奇偶校验字节分别被附加到所述行和列的末端,以分别形成编码后的C1和C2代码字。每个数据集的所有C1代码字被赋予特定的代码字标头以形成多个部分代码字对象(PCO)。根据所述标头内的信息将每个PCO映射到逻辑数据磁道。在每个逻辑数据磁道上,合并相邻PCO以形成CO,所述CO被调制编码并被映射成同步后的CO。然后将T个同步后的CO同时写入数据磁带,其中T是数据磁带上的并发活动磁道的数量。
权利要求

1.一种用于将数据写入多磁道数据磁带的方法,包括:
接收用户数据符号流,所述流包括至少一个数据集;
将每个数据集分割成多个未编码的子数据集,个数记为S,每个子数据集包括具有K2个行和K1个列的数组;
对于每个未编码的子数据集:
针对子数据集的每个行生成N1-K1个C1奇偶校验字节并将所述C1奇偶校验字节附加到该行的末端以形成具有长度N1的编码后的C1代码字;以及
针对所述子数据集的每个列生成N2-K2个C2奇偶校验字节并将所述C2奇偶校验字节附加到该列的末端以形成具有长度N2的编码后的C2代码字,由此生成具有N2个C1代码字的编码后的子数据集;
从S个编码后的子数据集形成S×N2个部分代码字对象PCO,每个PCO包括标头和C1代码字;
根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道;
在每个逻辑数据磁道上,合并相邻PCO以形成代码字对象CO,每个CO包括至少两个相邻PCO;
对所述CO进行调制编码并添加同步模式以获得T个同步后的CO,其中T是所述数据磁带上的并发活动磁道的数量;
将T个同步后的CO同时写入所述数据磁带;以及
在重写期间,PCO被重写。
2.如权利要求1中所述的方法,其中映射每个PCO包括根据公式t=
mod(7floor(f(m)/S)+g(m),T)向每个具有代码字交错CWI索引为m的PCO分配逻辑磁道号t,其中f(m)=m并且g(m)=m,或者f(m)=m并且g(m)=floor(m/2),floor(x)表示实数x的整数部分,并且mod(a,T)表示a除以T后的余数,其中所述余数在范围0,1,…,T-1内。
3.如权利要求2中所述的方法,还包括将具有CWI索引为m的PCO写入所述磁带的floor(m/T)位置处。
4.如权利要求2中所述的方法,将每个PCO映射到逻辑数据磁道由m=mod(i,2)+2T floor(i/2)+2mod(t-7mod(floor(i/2),T),T)来表征,其中PCO集索引i=floor(m/T)。
5.如权利要求1中所述的方法,其中T=16、N2=96且S=32,并且其中进一步映射每个PCO包括根据t=mod{2floor(m/2)+6floor(m/32)+mod[floor(m/16),2)]+mod[floor(m/256),2]-2mod[floor(m/256),2]×mod[floor(m/16),2],16}来将PCO从代码字交错CWI索引m映射到磁道号。
6.如权利要求5中所述的方法,将每个PCO映射到逻辑数据磁道由m=32floor(i/2)+mod(i,2)+2mod[5floor(i/2)+floor(t/2),8]+16mod[mod(t,2)+mod(floor(i/16),2),2]来表征,其中PCO集索引i=floor(m/T)。
7.一种用于将数据写入多磁道数据磁带的设备,包括:
主机接口,其能够操作接收用户数据符号流,所述流包括至少一个数据集;
分割模,其能够操作以将所述数据集分割成多个未编码的子数据集,个数记为S,每个子数据集包括具有K2个行和K1个列的数组;
对于每个未编码的子数据集,还包括:
C1编码器,其能够操作以针对子数据集的每个行生成N1-K1个C1奇偶校验字节并将所述C1奇偶校验字节附加到该行的末端以形成具有长度N1的编码后的C1代码字;
C2编码器,其能够操作以针对所述子数据集的每个列生成N2-K2个C2奇偶校验字节并将所述C2奇偶校验字节附加到该列的末端以形成具有长度N2的编码后的C2代码字,由此生成具有N2个C1代码字的编码后的子数据集;
部分代码字对象PCO格式化器,其能够操作以从S个编码后的子数据集形成S×N2个PCO,每个PCO包括标头和C1代码字;
PCO交错器,其能够操作以根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道;
代码字对象格式化器,其能够操作以在每个逻辑数据磁道上,合并相邻PCO以形成代码字对象CO,每个CO包括至少两个相邻PCO;
调制编码器,其能够操作对所述CO进行调制编码并添加同步模式以获得T个同步后的CO,其中T是所述数据磁带上的并发活动磁道的数量;以及
写入通道,其能够操作将T个同步后的CO同时写入所述数据磁带;
其中,在重写期间,所述写入通道对PCO重写。
8.如权利要求7中所述的设备,其中所述PCO交错器能够操作以通过根据公式t=mod(7floor(f(m)/S)+g(m),T)向每个具有代码字交错CWI索引为m的PCO分配逻辑磁道号t来将每个PCO映射到逻辑数据磁道,其中f(m)=m并且g(m)=m或者f(m)=m并且g(m)=floor(m/2),floor(x)表示实数x的整数部分,并且mod(a,T)表示a除以T后的余数,其中所述余数在范围0,1,…,T-1内。
9.如权利要求8中所述的设备,其中所述写入通道通过将具有CWI索引为m的PCO写入所述磁带的floor(m/T)位置处而将T个同步后的CO同时写入所述磁带。
10.如权利要求7中所述的设备,其中T=16、N2=96且S=32,并且其中进一步地,所述PCO交错器通过根据t=mod{2floor(m/2)+6floor(m/32)+mod[floor(m/16),2)]+mod[floor(m/256),2]-2mod[floor(m/256),2]×mod[floor(m/16),2],16}将PCO从代码字交错CWI索引m映射到磁道号来映射每个PCO。
11.如权利要求10中所述的设备,其中所述PCO交错器将每个PCO映射到逻辑数据磁道由m=32floor(i/2)+mod(i,2)+2mod[5floor(i/2)+floor(t/2),8]+16mod[mod(t,2)+mod(floor(i/16),2),2]来表征,其中PCO集索引i=floor(m/T)。
12.一种用于对包括数据集的用户数据符号流进行编码的装置,包括:
分割模块,其能够操作以将所述数据集分割成多个未编码的子数据集,个数记为S,每个子数据集包括具有K2个行和K1个列的数组;
对于每个未编码的子数据集,还包括:
C1编码器,其能够操作以针对子数据集的每个行生成N1-K1个C1奇偶校验字节并将所述C1奇偶校验字节附加到该行的末端以形成具有长度N1的编码后的C1代码字;
C2编码器,其能够操作以针对所述子数据集的每个列生成N2-K2个C2奇偶校验字节并将所述C2奇偶校验字节附加到该列的末端以形成具有长度N2的编码后的C2代码字,由此生成具有N2个C1代码字的编码后的子数据集;
部分代码字对象PCO格式化器,其能够操作以从S个编码后的子数据集形成S×N2个PCO,每个PCO包括标头和C1代码字;
PCO交错器,其能够操作以根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道;
代码字对象格式化器,其能够操作以在每个逻辑数据磁道上,合并相邻PCO以形成代码字对象CO,每个CO包括至少两个相邻PCO;以及
调制编码器,其能够操作对所述CO进行调制编码并添加同步模式以获得T个同步后的CO,其中T是所述数据磁带上的并发活动磁道的数量;以及
写入通道,其能够操作将T个同步后的CO同时写入所述数据磁带;
其中,在重写期间,所述写入通道对PCO重写。
13.如权利要求12中所述的装置,其中所述PCO交错器能够操作以通过根据公式t=mod(7floor(f(m)/S)+g(m),T)向每个具有代码字交错CWI索引为m的PCO分配逻辑磁道号t来将每个PCO映射到逻辑数据磁道,其中f(m)=m并且g(m)=m,或者f(m)=m并且g(m)=floor(m/2),floor(x)表示实数x的整数部分,并且mod(a,T)表示a除以T后的余数,其中所述余数在范围0,1,…,T-1内。
14.如权利要求13中所述的装置,其中所述写入通道通过将具有CWI索引为m的PCO写入所述磁带的floor(m/T)位置处而将T个同步后的CO同时写入所述磁带。
15.如权利要求12中所述的装置,其中T=16、N2=96且S=32,并且其中进一步地,所述PCO交错器通过根据t=mod{2floor(m/2)+6floor(m/32)+mod[floor(m/16),2)]+mod[floor(m/256),2]-2mod[floor(m/256),2]×mod[floor(m/16),2],16}将PCO从代码字交错CWI索引m映射到磁道号来映射每个PCO。
16.如权利要求15中所述的装置,其中所述PCO交错器将每个PCO映射到逻辑数据磁道由m=32floor(i/2)+mod(i,2)+2mod[5floor(i/2)+floor(t/2),8]+16mod[mod(t,2)+mod(floor(i/16),2),2]来表征,其中PCO集索引i=floor(m/T)。

说明书全文

用于将数据写入多磁道数据磁带的方法和相关设备、装置

技术领域

[0001] 本发明一般地涉及格式化要记录到磁带上的数据,具体地说,涉及可调整的ECC格式化和交错过程,以便适合每个磁头具有8的倍数个转换器/传感器以便同时对8的倍数个磁道进行读取和写入的磁带驱动器

背景技术

[0002] 第3和4代线性磁带开放协议(LTO)格式使用基于2维产品代码的纠错码(ECC)。C1代码沿2维度组的行排列。它是长度为240的偶数/奇数交错里德-所罗(RS)代码,产生长度为480的行。C2代码沿数组的列排列。它是长度为64并且维度为54的RS代码。
代码字是大小为64×480的2维度组,并且它们在LTO标准中被称为子数据集。预期未来一代驱动器将同时在超过16个的磁道上进行写入。但是,所有当前各代的LTO格式(第1代至第4代)都基于上述C编码方案,此方案及其关联的交错无法适应未来的磁带驱动器系统,这些系统将支持每个磁头具有16、24、32或48(或8的其他倍数)个转换器/传感器的磁头以便分别读取/写入16、24、32或48(或8的其他倍数)个并发磁道。此外,预期未来各代驱动器将使用具有这样的行的更长子数据集:所述行包括长度为960的4路代码字交错(CWI-4)而不是2路偶数/奇数代码字交错(CWI-2)(被称为LTO格式(第1代至第4代)的代码字对)。在第1代至第4代LTO中,这些CWI-2被赋予代码字对标头并被分组成各对以形成代码字对象(CO)。当发生写入失败时,全部CO被重写。如果将相同的CO重写策略应用于包括CWI-4的子数据集行,则存在效率损失,因为每个CO的两个CWI-4通常只有一个存在故障,而另一个CWI-4不需要被重写。由于CWI-4的长度是CWI-2的长度的两倍,因此前者情况中的效率损失大约是后者情况中的效率损失的两倍。

发明内容

[0003] 本发明提供了用于将数据写入多磁道磁带的方法、装置和计算机程序产品。在一个实施例中,一种方法包括接收包含数据集的用户数据符号流并将所述数据集分割成多个(S个)未编码的子数据集,每个子数据集包括具有K2个行和K1个列的数组。对于每个未编码的子数据集,针对子数据集的每个行生成N1-K1个C1奇偶校验字节,这些字节被附加到该行的末端以形成具有长度N1的编码后的C1代码字。类似地,对于每个未编码的子数据集,针对所述子数据集的每个列生成N2-K2个C2奇偶校验字节,这些字节被附加到该列的末端以形成具有长度N2的编码后的C2代码字,由此生成具有N2个C1代码字的编码后的子数据集。每个数据集的所有S×N2个C1代码字被赋予特定的代码字标头以形成多个(S×N2个)部分代码字对象(PCO)。根据每个PCO的标头内的信息,将该PCO映射到逻辑数据磁道。在每个逻辑数据磁道上,相邻PCO被合并以形成CO,每个CO包括至少两个相邻PCO。每个CO被调制编码,并通过添加各种同步模式而被映射成同步后的CO。T个同步后的CO然后被同时写入磁带,其中T等于磁带上的并发活动磁道的数量。
[0004] 在另一个实施例中,一种数据存储磁带设备包括:主机接口,通过该主机接口接收包括数据集的用户数据符号流;以及分割模,其可操作以将所述数据集分割成多个(S个)未编码的子数据集,每个子数据集包括具有K2个行和K1个列的数组。C1编码器可操作以针对子数据集的每个行生成N1-K1个C1奇偶校验字节并将所述C1奇偶校验字节附加到该行的末端以形成具有长度N1的编码后的C1代码字,C2编码器可操作以针对所述子数据集的每个列生成N2-K2个C2奇偶校验字节并将所述C2奇偶校验字节附加到该列的末端以形成具有长度N2的编码后的C2代码字,由此生成具有N2个C1代码字的编码后的子数据集。部分代码字对象格式化器可操作以从S个编码后的子数据集形成多个(S×N2个)部分代码字 对象(PCO),每个PCO包括标头和C1代码字。部分代码字对象交错器可操作以根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道。代码字对象格式化器可操作以在每个逻辑数据磁道上将相邻PCO合并成CO,每个CO包括至少两个相邻PCO。调制编码器可操作以将所述CO编码成同步后的CO,所述同步后的CO除了调制编码后的CO之外还包含各种同步模式。写入通道包括写入磁头并可操作以将T个同步后的CO同时写入磁带,其中T等于所述磁带上的并发活动磁道的数量。附图说明
[0005] 图1是可用于实现本发明的磁带驱动器的方块图;
[0006] 图2是包括交错C1和C2ECC的编码后的子数据集的示意表示;
[0007] 图3是通用化用于从用户数据符号流形成数据集布局的第4代LTO标准的组件的方块图;
[0008] 图4A和4B分别是未编码和编码后的子数据集的示意表示;
[0009] 图5是可与本发明一起使用的[96,84,13]-RS码的C2编码器的逻辑图;
[0010] 图6示出了第4代LTO数据格式的代码字对象(CO);
[0011] 图7示出了基于CO交错的沿记录介质的16个磁道分布子数据集的实例;
[0012] 图8示出了本发明的PCO;
[0013] 图9是用于从用户数据符号流形成数据集布局的本发明的组件的方块图;
[0014] 图10示出了本发明的备选CO;
[0015] 图11示出了基于PCO交错的沿记录介质的16个磁道分布子数据集的实例;
[0016] 图12示出了第4代LTO数据格式的同步后的CO;
[0017] 图13示出了本发明的备选同步后的CO;以及
[0018] 图14是示出PCO、CO和同步后的CO的编码过程和生成的流程图

具体实施方式

[0019] 将本说明书中描述的某些功能单元标记为模块,以便更具体地强调它们的实现无关性。例如,模块可以被实现为包括定制VLSI电路或门阵列、诸如逻辑芯片、晶体管或其他分离组件之类的现用半导体硬件电路。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件之类的可编程硬件器件中实现。模块还可以在软件中实现,以便由各种类型的处理器执行。例如,标识的可执行代码模块可以包括一个或多个物理或逻辑的计算机指令块,所述块可以例如组织为对象、过程或功能。可执行代码模块可以是单个指令或多个指令,并且甚至可以分布在数个不同的代码段上、多个不同的程序中,以及跨多个存储设备。
[0020] 此外,本发明的所述功能、结构或特性可以以任何适当的方式组合在一个或多个实施例中。在以下说明中,提供了大量特定的详细信息,如编程、软件模块、硬件模块、硬件电路等的实例,以便彻底理解本发明的实施例。但是,相关领域的技术人员将认识到,可以在没有一个或多个特定细节的情况下实现本发明,或者可以通过其他方法、组件等实现本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作以避免使本发明的各方面变得模糊不清。
[0021] 图1是其中可结合本发明的数据磁带驱动器100的高级方块图。要记录的数据通过主机接口102从主机(未示出)传输到驱动器100。数据在C1编码器104中经历第一次编码并被传送到DRAM缓冲器控制器106。C1编码后的数据在C2编码器108中经历第二次编码并被存储在DRAM缓冲器110中。数据随后被存储在SRAM缓冲器112中并在格式化器114中被格式化。格式化后的数据先后被发送到写入通道和写入磁头118,写入磁头118将数据记录到磁带120上。
[0022] 从磁带120读回数据时,读取磁头122检测数据并将其传送到读取通道。数据然后在反格式化器126中被处理,并且CO在检验器128中被检验。数据然后被解码并被发送到发出请求的主机。
[0023] 线性磁带开放协议(LTO)格式基于数据集(写入磁带的最小单位)和子数据集的概念。数据集包含两种类型的数据:用户数据和有关数据集的管理信息,后者在数据集信息表(DSIT)中。所有数据由纠错码(ECC)保护以最小化由于错误或缺陷导致的数据丢失。数据集包括多个子数据集,每个子数据集包含在行中排列的数据。子数据集行可以包含用户数据或包含DSIT。如图2中所示,每个行包括两个交错字节序列。单独针对每个行的偶数字节和奇数字节计算第一级ECC(C1ECC)。得到的C1ECC偶数和奇数奇偶校验字节也以交错方式被附加到对应的行。ECC保护的行是代码字对(CWP)。偶数字节形成偶数C1代码字而奇数字节形成奇数C1代码字。针对每个列计算第二级ECC(C2ECC)并将得到的C2ECC奇偶校验字节附加到对应的列。ECC保护的列是C2代码字。
[0024] 当由C1和C2ECC如此保护时,子数据集是写入磁带的最小ECC保护的单位。每个子数据集相对于ECC而言都是独立的;即,一个子数据集中的错误仅影响该子数据集。任何ECC算法的功能取决于奇偶校验字节数并根据其纠正能进行声明。对于针对C1代码字计算的给定数量的N1-K1个C1奇偶校验字节,最多可以在该代码字的两个交错的每一个中纠正floor((N1-K1)/4)个错误,其中floor(x)表示实数x的整数部分。而且,对于针对C2代码字计算的给定数量的N2-K2个C2奇偶校验字节,最多可以在该C2代码字中纠正floor((N2-K2)/2)个错误或N2-K2个疑符(erasure)。
[0025] 将理解的是,同一子数据集中的多个错误会完全超过C1或C2纠正功能的能力,以致于在读取数据时发生错误。错误可能由非常小的事件(例如小颗粒或小的介质缺陷)导致。错误还可能由较大的事件(例如划痕、跟踪错误或机械原因)导致。
[0026] 为了减小单个较大错误将影响单个子数据集中的多个代码字的可能性,一些写入方法在磁带表面的横向和纵向将来自每个子数据集的代码字尽可能远离地放置。因此,在超出ECC纠正能力之前,单个错误将只影响来自同一子数据集的多个代码字。来自同一子数据集的代码字的空间分 隔会降低险并针对多磁道记录格式采用以下方式实现。对于同时记录的一组磁道的每个磁道,通过将来自一个子数据集的代码字对与来自不同子数据集的代码字对相组合来形成代码字四元组(CQ)。得到的CQ被写入多个记录磁道中的一个上。同样地,通过组合代码字对针对所有剩余磁道形成CQ,所有代码字对均来自不同子数据集。同时写入的一组CQ被称为CQ集。
[0027] 如图3的方块图中所示,通过在数据集分割模块302中分割用户数据符号流而形成指定固定大小的数据集。该数据集被进一步划分为S个未编码的子数据集。子数据集结构与基于C1/C2产品代码的ECC模块304匹配。未编码的子数据集包括大小为K2×K1的2维字节数组,其中K1和K2分别是C1和C2代码的维度(图4A)。C1编码器306对行进行操作并将奇偶校验字节添加在每个行中。C2编码器308对C1编码后的列进行操作并将奇偶校验附加在每个列中。得到的C1/C2编码后的子数据集是N2×N1字节数组,其中N1和N2分别是C1和C2代码的长度(图4B)。
[0028] C2编码器308的编码可以由线性反馈移位寄存器(LFSR)500执行,如图5中所示,线性反馈移位寄存器500的反馈系数由[96,84,13]-RS码的生成多项式给出。LFSR 500的初始状态为全零状态。借助对通过LFSR的所有系统K2=84个数据字节进行计时并读出寄存器R0至R11来获得RS代码字的N2-K2=12个奇偶校验字节。
[0029] 在第3和4代LTO中,S=64个子数据集(或代码字)形成数据集(DS),C1代码具有长度N1=480并且C2代码具有长度N2=64。DS内的C1代码字完全由子数据集(SDS)编号(在范围0至S-1中)和子数据集(代码字数组)内的行数确定。在第3和4代LTO中,此分配被称为代码字对指定。它由以下表达式确定:
[0030] C1-codeword_number=SDS_number+64×row_number, (1)
[0031] 其中SDS_number=0,1,2,...,S-1且row_number=0,1,...,63。对于第3和4代LTO,C1-codeword_number索引采取0至4095的值。
[0032] 如图6中所示的结构600是代码字对象(CO)结构并反映包括C1代 码字和关联标头的基本单元的组织。
[0033] 从ECC模块304,CO格式化器310形成CO,所述CO包括两个10字节标头602、604以及每个DS的S×N2=4096个C1代码字中的两个C1代码字606、608。因此,存在S×N2/2=2048个CO,编号从0至2047。具有索引CO_number的CO结构600包含具有按如下方式相关的索引C1-codeword_number的两个C1代码字。第一和第二个C1代码字的索引C1-codeword_number_0和C1-codeword_number_1分别由以下表达式给出:
[0034] C1-codeword_number_0=2×CO_number (2)
[0035] C1-codeword_number_1=2×CO_number+1 (3)
[0036] 因此,CO中的两个C1代码字从具有连续SDS_number索引的两个SDS中获得。
[0037] CO以多批T个CO的形式被同时写入磁带,其中T是并发活动磁道的数量。CO交错器312为DS的每个CO分配范围在0,1,...,T-1中的逻辑磁道号t。因此,DS的S×N2/2个CO根据其连续CO_number索引被分组成多批T个CO,然后这些批被写入T个活动磁道。由此,每个批的一个CO以一对一方式被写入T个磁道中的一个,这由CO交错器312确定。
[0038] 通过根据以下公式为每个具有索引n=CO_number的CO分配逻辑磁道号t来确定CO交错器
[0039] t=mod(7floor(2n/S)+n,T) (4)
[0040] 其中floor(x)表示实数x的整数部分,mod(a,T)表示除以T后的余数,其中余数在范围0,1,...,T-1中。
[0041] 在图7中,通过沿T=16个逻辑磁道显示数据集布局,针对具有S=32个SDS的DS示出了基于以上公式(4)的CO交错的结果。96个正方形对应于具有SDS_number 0和1的SDS的96个CO。将指出的是,沿磁带的交错器粒度为CO,即,x轴以CO长度来衡量。
由于T=16个磁道被同时写入,因此CO_number=n的CO将在距离DS开始的位置j=floor(n/T)处。
[0042] 因为考虑到重写,希望具有比CO更小的重写单位。为此,定义了部分代码字对象(PCO),如图8中所示,以便包括CWI和CWI标头,CWI标头包含由公式(4)指定的对应CWI_number(在图中为4)。
[0043] 图9示出了具有PCO交错的写入路径中的数据流。与图3中示出的数据流一样,通过在数据集分割模块902中分割用户数据符号流形成指定固定大小的数据集。该数据集被进一步划分为S个未编码的子数据集。子数据集结构与基于C1/C2产品代码的ECC模块904匹配。C1编码器906对行进行操作并将奇偶校验字节添加在每个行中,C2编码器908对C1编码后的列进行操作并将奇偶校验附加在每个列中以生成C1/C2编码后的子数据集。
[0044] 从ECC模块904,PCO格式化器910形成PCO。图8中所示的PCO包括12字节CWI标头和960字节CWI。
[0045] 由于每个数据集具有S×N2个CWI,因此每个数据集也具有S×N2个PCO。根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道。
[0046] PCO交错器912对PCO进行操作并将它们映射到T个并发逻辑磁道。在每个逻辑数据磁道上,在CO格式化器914中合并相邻PCO以形成CO,每个CO包括至少两个相邻PCO。因此,PCO交错器912在CO格式化器914之前操作,CO格式化器914将沿同一磁道的相邻PCO对分组成CO(参见图10)。
[0047] 通过根据以下公式为每个具有索引m=CWI_number的PCO分配逻辑磁道号t来确定PCO交错器912:
[0048] t=mod(7floor(m/S)+m,T) (5)。
[0049] 通过使用以下具有预定义函数f(.)和g(.)的公式获得更通用的PCO交错器:
[0050] t=mod(7floor(f(m)/S)+g(m),T) (6)。
[0051] 公式(5)是(6)的特例,其中f(m)=m并且g(m)=m。另一个有趣的通用公式实例为:
[0052] t=mod(7floor(m/S)+floor(m/2),T) (7)。
[0053] 将指出的是,通过使用CWI索引m=CWI_number与(2)和(3)中给出的CO索引n=CO_number的关系从(4)中获得(7)。
[0054] 在图11中,通过沿T=16个逻辑磁道显示数据集布局,针对具有S=32个SDS的DS示出了基于(7)的PCO交错的结果。具有SDS_number 0的SDS的N2=96个PCO由点表示,而SDS 1的96个PCO由十字标记。图11中由点和十字表示的连续PCO对应于图7中由正方形表示的CO。这说明了CO交错器(4)和PCO交错器(7)的等效性。在图11中,沿磁带的交错器粒度为PCO,即,x轴以PCO长度来衡量。由于T=16个磁道被同时写入,因此CWI_number=m的PCO将在距离DS开始的位置i=floor(m/T)处。细致了两倍的交错器粒度具有的优点是在重写期间,PCO而不是CO被重写,这允许将由于重写导致的丢失减少大约两倍。
[0055] 如从数据集布局中显而易见的,存在T个被同时写入T个逻辑磁道的PCO。每个此类具有T个PCO的集合被称为PCO集。每个数据集具有S×N2个PCO,因此具有S×N2/T个PCO集。数据集布局中的所有PCO集从0标记到S×N2/T-1。每个CWI_number m确定PCO集索引i=floor(m/T)。相反,每个CWI_number m由磁道号t和PCO集索引i=floor(m/T)唯一地确定。这种“反向映射”是用于表征PCO交错的等效方法。具体地说,(7)的反向映射由以下公式给出:
[0056] m=mod(i,2)+2T floor(i/2)+2mod(t-7mod(floor(i/2),T),T) (8)。
[0057] CO交错器的粒度不同于PCO交错器的粒度;前者基于CO_number n的自然排序,而后者基于CWI_number m的自然排序。CO格式化器提供了CO_number与CWI_number之间的链接。但是,CO格式化器的关系式(2)和(3)不符合CO_number和CWI_number的自然排序,例如根据CO_number排序,具有索引0和1的连续CWI不被同时写入磁带。首先,具有索引0的CWI与具有CWI_number 2、4、...、2T-2的T-1个CWI被同时写入;然后,具有索引1的CWI与具有CWI_number 3、5、...、2T-1的T-1个CWI被同时写入。因此,为生成DS布局,CO_number n的连续顺序的进行与CWI_number m的连续顺序的进行不同。为了克服这 种差异并且为了获得完全相同的DS布局,可以将固定置换(permutation)p应用于包含所有CWI索引的集合,即,应用于集合{0,1,...,S×N2-1},这将实现所需的重新排序。具体地说,此置换由以下公式给出:
[0058] p(m)=2T floor(m/(2T))+T mod(m,2)+floor(mod(m,2T)/2) (9)。
[0059] 其中mod(a,b)表示a除以b后的余数。因此,当使用CWI_number m作为DS布局的参考时,需要结合重新排序置换,并且通用PCO交错器公式(6)中的两个函数为f(m)=p(m)和g(m)=floor(p(m)/2)。这表明通用化的CWI交错器可以生成与基于(4)的CO交错器相同的数据集布局。
[0060] 以上PCO交错器的设计基于(5)或(7)。通过修改这些等式,可以获得备选的PCO交错器。以下针对T=16个磁道、C2长度N2=96以及每个数据集S=32个子数据集提供了此类备选PCO交错器的描述。从CWI_number m到磁道号的“直接映射”由t=mod{2floor(m/2)+6floor(m/32)+mod[floor(m/16),2]+mod[floor(m/256),2]-2mod[floor(m/256),2]×mod[floor(m/16),2],16} (10)
[0061] 以及i=floor(m/T)给出的PCO集分配来定义。为每个PCO集索引i和逻辑磁道t分配CWI_number m的反向交错映射由m=32floor(i/2)+mod(i,2)+2mod[5floor(i/2)+floor(t/2),8]+16mod[mod(t,2)+mod(floor(i/16),2),2] (11)给出。
[0062] 此映射在表1中示出。阴影单元对应于子数据集号0的PCO。从表1,PCO对如何被图9中所示的CO格式化器914分组成CO是显而易见的。即,对于固定逻辑磁道号t,具有PCO索引2i和2i+1的两个PCO被组合成CO并按此顺序被写入磁带。例如,具有CWI索引(16,17)和(58,59)的两个PCO对被分组成两个连续CO,然后被写入逻辑磁道t=1。
[0063] 具有备选方法来执行将PCO对分组成CO。例如,每个CO内的PCO对可以被交换,因此具有奇数PCO索引2i+1的PCO在具有偶数PCO索引2i的那些PCO之前被写入。此外,此类交换可以是PCO索引i的函数,例如,如果PCO索引i在范围{32,33,...,63}、{96,97,...,127}和{160,161,...,191}中,则CO内的所有PCO被交换。此类特定交换规则可以容易地被结 合到反向交错器映射中。例如,通过使用项mod(mod(i,2)+mod(floor(i/32),
2),2)替换(11)右侧的项mod(i,2)而获得先前的PCO索引相关的交换。因此,获得了修改后的CWI_Number分配表。此修改后的表与表1的不同之处在于,交换具有在范围{32,
33,...,63}、{96,97,...,127}和{160,161,...,191}中的PCO索引i的所有PCO对。
[0064] 表1
[0065] 具有T=16个磁道、C2长度N2=96以及S=32个子数据集的备选PCO交错器的CWI_Number分配
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073] 在分别由图9和图3示出PCO交错或CO交错之后并在将CO写入磁带之前,CO被调制编码并通过插入VFO、转发、重新同步以及反向同步字段而被变换成同步后的代码字对象(SCO)结构(参见图12和13)。在第4代LTO中,标头以及被称为代码字对的CWI-2通过速率为16/17的RLL编码器,从而分别产生长度为85和4080的RLL编码后的位序列。更广泛地说,可以针对标头部分使用速率为RH的RLL编码器并针对CWI使用速率为R的RLL编码器来对CO结构进行调制编码。对于基于CWI-4 的CO结构,得到的SCO结构在图13中示出,其中VFO、转发同步、重新同步以及反向同步字段分别具有某一适当的长度LVFO、LFS、LRS以及LFS。
[0074] 在此描述的交错方案旨在提供稳健性以免出现失效磁道以及提供增强的稳健性以免出现条带错误(即,跨所有磁道的错误)。避免出现条带错误的ECC/CO交错方案或ECC/PCO交错方案的稳健性取决于三个因素:(i)C2代码的参数[N2,K2,dmin]、(ii)由每个数据集(DS)内的子数据集(SDS)数量S给出的交错深度,以及(iii)并行通道(磁道)的数量T。
[0075] 如果出现条带错误,则解码器将按如下方式操作。C1解码器检测到多个子数据集中的某些行不可纠正,并将这些行的疑符标志提供给C2解码器。C2解码器执行疑符解码,并在每个子数据集中最多可以纠正N2-K2-M个疑符而同时保持M个字节的裕度以避免错误纠正。如果条带错误沿磁带扩展不超过(S/2)×(N2-K2-M)/T个SCO,则受错误影响的CO不超过(S/2)×(N2-K2-M)个,并且这些错误的CO通过反向CO交错映射均匀地分布在受影响DS的S/2个子数据集对上。在PCO交错的情况下,(S/2)×(N2-K2-M)个错误CO对应于S×(N2-K2-M)个PCO,这些PCO通过反向PCO交错映射均匀地分布在S个子数据集上。因此,在这两种情况下,每个子数据集将最多包含N2-K2-M个可以被纠正的清除行(erased row),因此就SCO单位而言,最大条带错误长度(MSEL)由以下公式给出:
[0076] MSEL=S×(N2-K2-M)/(2T) (12)
[0077] 要指出的是,MSEL沿磁带的绝对长度[以毫米为单位]取决于SCO的长度[以毫米为单位]。
[0078] 可以以类似方式获得没有通道错误时可以容许的最大失效磁道数(MNDT)。具体地说,可以使用公式MNDT=floor((N2-K2)/(N2/T))(13)
[0079] 计算最大失效磁道数。
[0080] 就MSEL和MNDT属性而言,CO交错器(4)和基于(5)或(7)的PCO交错器是等效的。因此,下表II-III对于CO交错和PCO交错都有 效。
[0081] 基于同步后的代码字四元组(SCQ)(其是第4代LTO的SCO结构),表2显示了有关最大条带错误长度和失效磁道支持的C2代码设计和属性的特定配置。在表2中,假设疑符纠正裕度为M=2。与第4代LTO中的C2代码比较时,N2>64的所有C2代码的格式效率(FE)提高了3.7%(参见表2中的第一行)。应强调的是,在所有这些情况下,结果都适用于CO交错公式(4)或PCO交错公式(5)或(7)。
[0082] 表2
[0083] 基于CWI-2的SCO结构的特定C2代码配置
[0084]
[0085] 在表3中,针对T=16个并行磁道和基于CWI-4的SCO结构的两个C2代码实施例总结了结果。将指出的是,C2代码长度为96的方案ECC-1可以使用PCO交错器(5)或(7)实现或通过应用表1中指定的备选PCO交错器实现。得到的三个交错器达到相同的MSEL和MNDT。CWI-4的 长度[以毫秒为单位]大约是CWI-2的长度的两倍。因此,最大条带错误长度在表2中为20个SCQ相当于在表3中为10个SCO。
[0086] 表3
[0087] 基于CWI-4的SCO结构和T=16个磁道的建议C2代码配置
[0088]
[0089] 图14的流程图概述了上述过程。从主机接收用户数据符号流,所述流包括至少一个数据集(步骤1400)。每个数据集被分割为多个(S个)未编码的子数据集,每个子数据集包括具有K2个行和K1个列的数组(步骤1402)。然后对每个未编码的子数据集进行编码(步骤1404)。对于每个未编码的子数据集的每个行,生成N1-K1个C1奇偶校验字节(步骤1406),并将这些字节附加到行的末端以形成具有长度N1的编码后的C1代码字(步骤1408)。此外,对于每个未编码的子数据集的每个列,生成N2-K2个C2奇偶校验字节(步骤1410),并将这些字节附加到列的末端以形成具有长度N2的编码后的C2代码字(步骤1412)。因此,生成具有N2个C1代码字的编码后的子数据集。
[0090] 对所有S个未编码的子数据集进行编码之后,从编码后的子数据集形成多个(S×N2个)部分代码字对象(PCO),每个PCO包括标头和C1代码字(步骤1414)。然后根据每个PCO的标头内的信息将该PCO映射到逻辑数据磁道(步骤1416),并且在每个逻辑数据磁道上,合并相邻PCO以形成代码字对象(CO),每个CO包括至少两个相邻PCO(步骤1418)。对所述CO进行调制编码(步骤1420)并添加VFO和同步模式以获得T个同步后的CO,其中T是数据磁带上的并发活动磁道的数量(步骤1422)。然后将T个同步后的CO同时写入数据磁带(步骤1424)。
[0091] 对于每个数据集的相同C2代码和相同数量S的SDS,在此描述的PCO交错方案与CO交错提供相同的MSEL和MNDT属性。因此,两种方案具有相同的稳健性以免出现条带错误和失效磁道。基于PCO的方案的一个优点是在重写的情况下,重写对象(是PCO而不是CO)的粒度更小。
[0092] 重要的是指出,尽管在完整功能数据处理系统的上下文中对本发明进行了描述,但是本领域中的技术人员将理解,可以以计算机可读指令介质的形式以及各种形式来分发本发明的过程,并且无论实际用于执行分发的信号承载介质的特定类型为何,本发明都适用。计算机可读存储介质的实例包括诸如软盘硬盘驱动器、RAM和CD-ROM之类的可记录型介质。
[0093] 出于示例和说明目的给出了对本发明的描述,但是所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变型都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。此外,虽然以上针对方法和系统进行了描述,但是还可以通过包含用于将数据写入多磁道数据磁带介质的指令的计算机程序产品或用于部署计算基础设施的方法(包括将计算机可读代码集成到计算系统以便将数据写入多磁道数据磁带介质)来满足本领域的需要。
QQ群二维码
意见反馈