CN108231097A - 利用用于存储在磁带上的数据的横向编码的逻辑格式 - Google Patents

利用用于存储在磁带上的数据的横向编码的逻辑格式 Download PDF

Info

Publication number
CN108231097A
CN108231097A CN201711215775.0A CN201711215775A CN108231097A CN 108231097 A CN108231097 A CN 108231097A CN 201711215775 A CN201711215775 A CN 201711215775A CN 108231097 A CN108231097 A CN 108231097A
Authority
CN
China
Prior art keywords
code words
tape
written
data
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711215775.0A
Other languages
English (en)
Other versions
CN108231097B (zh
Inventor
R·D·西德西延
S·弗尔
E·S·盖尔
M·A·兰兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN108231097A publication Critical patent/CN108231097A/zh
Application granted granted Critical
Publication of CN108231097B publication Critical patent/CN108231097B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1201Formatting, e.g. arrangement of data block or words on the record carriers on tapes
    • G11B20/1207Formatting, e.g. arrangement of data block or words on the record carriers on tapes with transverse tracks only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B2020/1476Synchronisation patterns; Coping with defects thereof
    • G11B2020/148Synchronisation patterns; Coping with defects thereof using error detecting or error correcting codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

在一个实施例中,一种方法包括接收数据以使用带驱动器存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字(相对伸展是指当被写入时在磁带介质上所占据的空间)。该方法还包括使用带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。

Description

利用用于存储在磁带上的数据的横向编码的逻辑格式
技术领域
本发明涉及用于磁带上的数据存储的逻辑格式,并且更具体地涉及利用横向编码的逻辑格式。
背景技术
线性带开放(LTO)和企业带驱动器中的纠错编码(ECC)用于确保ECC编码器的输出处的字节误差率(BER)小于大约1x10-19,尽管检测器的输出处的BER可能为1x10-3左右。另外,ECC能够校正磁带上的大空间误差。特别地,ECC能够校正由于介质缺陷而引起的一些大的突发误差。其还能够校正大宽度的横向带条带中的所有误差,这些误差可能由于在从带盒的一卷到另一卷的带传送期间的瞬间速度变化而发生。最后,ECC能够校正由于例如带驱动器的磁带头中的临时或永久丧失功能的读取器元件而引起的大量失效轨道。现代带驱动器能够校正M/8个失效轨道,其中M是被同时写入到磁带上并且从磁带上被读取的轨道的总数目。
在带存储中,相对长(大约1kB)的纵向交织的纠错码字被写入在磁带的轨道上,相对长的纵向交织的纠错码字通常被称为包括来自四个不同的乘积码字的四个字节交织行码字的码字交织(CWI-4)。在通过数字前端功能和检测来执行单个轮次的当前接收器架构中,对于用于驱动决策导向的数字前端功能的经解码的比特而言,与读取码字相关联的解码延迟是非常大的。明显地,决策导向的循环中的大的延迟是不期望的并且因此应当被避免。这种方案将会使得难管理的量的延迟引入到当前带驱动器读取架构中的读取和解码过程。在解码器与数字前端功能之间迭代的接收器架构中,在当前带ECC架构中的经解码的比特用于在第二和随后的迭代期间驱动决策导向的数字前端功能时,用于存储模数(A/D)转换器的输出处的采样的缓冲大小是很大的。另外,当前带驱动器中的这些纵向码字的纠错能力是相对弱的。
发明内容
在一个实施例中,一种带驱动器包括:多个写入头元件、处理电路以及逻辑,该逻辑与处理电路集成、由处理电路可运行、或者与处理电路集成并且由处理电路可运行。该逻辑被配置为使得处理电路接收数据以使用多个写入头元件存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字。该逻辑还被配置为使得处理电路使用多个写入头元件中的、能够将数据同时写入到带轨道的第一数目的写入头元件,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
在另一实施例中,一种方法包括接收数据以使用带驱动器存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个WS码字正交地放置的多个NS码字。该方法还包括使用带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
在另一实施例中,一种计算机程序产品包括具有实现在其中的程序指令的计算机可读存储介质。所实现的程序指令由处理电路可运行以使得处理电路:由处理电路接收数据以使用带驱动器存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个WS码字正交地放置的多个NS码字。所实现的程序指令还由处理电路可运行以使得处理电路:由处理电路使用带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
本发明的其他方面和实施例将从以下详细描述变得显而易见,当结合附图进行时,以下详细描述通过举例方式说明了本发明的原理。
附图说明
图1图示了根据一个实施例的网络存储系统。
图2A示出了根据一个实施例的带驱动器。
图2B示出了根据一个实施例的可以与图2A的带驱动器一起使用的带盒。
图3图示了根据一个实施例的带驱动器中的概念上的数据流。
图4示出了使用二维逻辑阵列的简化数据编码。
图5示出了根据一个实施例的乘积码字与子数据集之间的关系。
图6示出了根据一个实施例的带布局。
图7示出了根据现有技术的用于存储到磁带的逻辑数据格式。
图8示出了根据一个实施例的用于存储到磁带的逻辑数据格式。
图9示出了根据一个实施例的带驱动器写入通道的块图。
图10示出了根据一个实施例的沿着磁带的M个轨道的数据的分布。
图11示出了根据另一实施例的沿着磁带的M个轨道的数据的分布。
图12示出了根据又一实施例的沿着磁带的M个轨道的数据的分布。
图13示出了根据一个实施例的方法的流程图。
具体实现方式
以下描述是出于说明本发明的总体原理的目的而做出的并且不旨在限制本文所要求保护的发明概念。另外,在各种可能的组合和排列中的每一种中,本文所描述的特定特征能够与其他描述的特征组合地使用。
除非本文中另外特别地限定,否则所有术语要被给予它们最宽泛的可能解读,包括从说明书暗示的含义、以及本领域技术人员理解的和/或如词典、论文等中定义的含义。
还必须指出,如本说明书和所附权利要求书中使用的,除非另外规定,否则单数形式的“一”、“一种”和“所述”包括复数指示物。还将理解,当在本说明书中被使用时,术语“包括”和/或“包含”指定所陈述的特征、整数、步骤、操作、元素和/或部件的存在,但是不排除一个多个其他特征、整数、步骤、操作、元素、部件和/或其组的存在或增加。如本领域技术人员将理解的,如本文所使用的术语“大约”指示在前面跟有术语“大约”的值以及适度地接近在前面跟有术语“大约”的值的任何值。在不另外指示时,术语“大约”表示在前面跟有术语“大约”的值为该值的±10%。例如,“大约10”指示从9.0至11.0的所有值,并且包括9.0和11.0。
由于与当前带驱动器编码方案相关联的限制,因此,在不要求大的解码延迟和大的缓冲大小的情况下,提供高数据完整性和强大突发纠错能力结合实现性能改善的用于磁带的新的逻辑格式将是有益的。
以下描述公开了被配置为利用用于将数据存储在磁带上的逻辑格式的系统、方法和计算机程序产品的若干优选实施例,该逻辑格式使用改善的延迟编码。
一个实施例基于将数据集(DS)中的数据字编码为预定数目(P)的二维(2D)乘积码字并且将2D乘积码字的列写为来自2D乘积码字的、跨磁带的预定数目(M)的轨道的多个窄伸展码字(超薄,例如,在纵向带空间上等于或小于大约1.2微米)。2D乘积码字的行中的符号沿着磁带的一个轨道被均匀地散布(逻辑上分离)在多个宽伸展码字(超宽,例如,在纵向带空间上等于或大于大约80mm)内。该方式的一些好处包括在对窄伸展码字进行解码的过程期间的低延迟、以及由于使用低延迟解码比特来驱动决策导向的数字前端功能(在由于使用的编码的长度而不降低突发纠错性能的情况下)的改善的误差率性能。存在允许接收器以比用于带驱动器中的读取通道的当前操作信噪比(SNR)更小大约2至3dB的SNR进行操作的可能。
沿着磁带的轨道和跨过磁带的轨道二者空间分布并且还具有沿着轨道的很窄伸展的纠错码字被写入在磁带上,例如,沿着磁带的很小纵向长度,诸如大约1.2微米或更小,假设每英寸500千比特(kbpi)的线性密度和窄伸展(例如,(96,84)里德-索罗门(RS)或类似的)码被用于对数据进行编码。磁带布局中的具有小的纵向长度的空间分布编码、交织连接编码以及深度交织的组合得到强大的编码数据格式。被写入在磁带上的空间分布的码字能够假定各种形状和样式,诸如在一个方式中为锯齿样式。在该实施例中,当与迭代的纠错解码结合使用时,具有小的解码延迟和小的缓冲大小的进一步性能改善是可能的,小的解码延迟和小的缓冲大小二者都相对于当前格式、结构和性能度量具有优点。
在一个普通实施例中,一种带驱动器包括:多个写入头元件、处理电路以及逻辑,该逻辑与处理电路集成、由处理电路可运行、或者与处理电路集成并且由处理电路可运行。该逻辑被配置为使得处理电路接收数据以使用多个写入头元件存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字。该逻辑还被配置为使得处理电路使用多个写入头元件中的、能够将数据同时写入到带轨道的第一数目的写入头元件,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
在另一普通实施例中,一种方法包括接收数据以使用带驱动器存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个WS码字正交地放置的多个NS码字。该方法还包括使用带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
在又一普通实施例中,一种计算机程序产品包括具有实现在其中的程序指令的计算机可读存储介质。所实现的程序指令由处理电路可运行以使得处理电路:由处理电路接收数据以使用带驱动器存储到磁带介质,数据被组织成预定数目的二维阵列,每个二维阵列包括与多个WS码字正交地放置的多个NS码字。所实现的程序指令还由处理电路可运行以使得处理电路:由处理电路使用带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上。在开始写入来自第一二维阵列的第二NS码字之前,来自第一二维阵列的第一NS码字被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
现在参考图1,其中根据一个实施例示出了网络存储系统10的一个例子。网络存储系统10仅仅是适合的存储系统的一个示例,不应对本发明实施例的功能和使用范围磁带来任何限制。总之,网络存储系统10能够被用来实现和/或执行以上所述的任何功能。
网络存储系统10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,网络存储系统10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16、系统存储器28、连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些架构包括但不限于工业标准架构(ISA)总线、微通道架构(MAC)总线、增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动”,其可以在HDD中运行)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器,以及对可移动带盒(可移动磁带读写盒具有存储在其中的磁带介质)读写的带驱动器等。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、独立磁盘冗余阵列(RAID)系统、带驱动器以及数据备份存储系统等。
图2A图示了基于带的数据存储系统的简化带驱动器100,其可以被用在本发明的上下文中。尽管在图2A中示出了带驱动器的一个特定实现方式,但是应当注意本文所描述的实施例可以被实现在任何类型的带驱动器系统的上下文中。
如所示出的,带供应盒120和收带卷121被提供以支撑带122。卷中的一个或多个卷可以形成可移除盒的一部分并且不必要是带驱动器100的一部分。带驱动器(诸如图2A中所图示的带驱动器)还可以包括用于驱动带供应盒120和收带卷121以在任何类型的带头126上移动带122的(一个或多个)驱动器电机。这种头可以包括读取器、写入器、或二者的阵列。
导引125引导带122跨过带头126。这种带头126进而经由线缆130耦合到控制器128。控制器128可以是或者包括用于控制带驱动器100的任何子系统的处理器和/或任何逻辑。例如,控制器128通常控制头功能,例如伺服跟随、数据写入、数据读取,等等。控制器128可以包括至少一个伺服通道和至少一个数据通道,其中每个通道包括被配置为处理和/或存储要被写入到带122和/或从带122被读取的信息的数据流处理逻辑。在各个实施例中,控制器128可以在本领域中已知的逻辑以及本文所公开的任何逻辑下进行操作,并且因此可以被认为是用于本文所包括的带驱动器的描述中的任何的处理器。控制器128可以耦合到任何已知类型的存储器136,其可以存储由控制器128可运行的指令。此外,控制器128可以被配置为和/或可编程为执行或控制本文所呈现的方法中的一些或全部。因此,控制器128可以被认为被配置为通过以下来执行各种操作:被编程到一个或多个芯片、模块和/或块中的逻辑;对一个或多个处理器可用的软件、固件和/或其他指令等、以及其组合。
线缆130可以包括用于将数据传输到头126以被记录在带122上并且用于接收由头126从带122读取的数据的读取/写入电路。致动器132控制头126相对于带122的位置。
如本领域技术人员将全部理解的,接口134还可以被提供用于在带驱动器100与(内部或外部)主机之间的通信以发送和接收数据,并且用于控制带驱动器100的操作并将带驱动器100的状态传达给主机。
图2B图示了根据一个实施例的示例性带盒150。这种带盒150可以与诸如图2A中示出的系统一起使用。如所示出的,带盒150包括壳体152、壳体152中的带122、以及耦合到壳体152的非易失性存储器156。在一些方式中,如图2B中所示出的,非易失性存储器156可以嵌入在壳体152内部。在更多的方式中,非易失性存储器156可以附接到壳体152的内部或外部,而不需要对壳体152进行修改。例如,非易失性存储器可以通过不干胶标签154被嵌入。在一个优选实施例中,非易失性存储器156可以是嵌入到带盒150的内部或外部或者耦合到带盒150的内部或外部的闪速存储器设备、ROM设备等。非易失性存储器由带驱动器和带操作软件(驱动器软件)和/或其他设备可访问。
现在参考图3,示出了根据一个实施例的用于利用M个同时写入轨道来对带驱动器中的主数据进行编码的数据流300。如所示出的,数据流300包括以下的操作:循环冗余校验(CRC)编码器302、压缩模块304、可选的加密模块306、一个或多个纠错码(ECC)编码器模块308、用于将头部312添加到被编码的数据的多路复用器310、带布局添加模块314、用于每个带通道1至M中的数据随机化的随机化器316、用于每个带通道1至M的调制编码器318、以及用于插入针对每个带通道1至M中的同步模式320的多路复用器322。
通常,在企业级带驱动器中存在32个通道,并且因此M=32,但是任何数目的通道可以被包括在带驱动器中。其他数目的通道也是可能的,包括8个通道、16个通道、64个通道,等等。CWI-4集合包括固定数目M的并发写入的CWI-4,固定数目等于写入器中的通道的数目。
在被写入到带的数据中,通常存在五种不同类型的开销。这些类型的开销包括:ECC,其使用一个或多个ECC编码器308而被应用;调制编码,其使用一个或多个调制编码器318而被应用;头部312的插入;同步模式320的插入;以及在读同时写过程之后重写数据以确保首次写入的数据的数据完整性。由于除了重写之外的开销的这些来源,常见的带驱动器的格式效率为大约79%,也即,被写入到带上的每100比特从用户数据的仅79比特被产生,并且开销比特的增加的冗余度为21比特。在该本上下文中的用户数据是在ECC编码器308的输入处接收到的主数据。另外,磁带存储空间的大约3%被保留用于重写数据。
ECC可以基于乘积码字而被应用到数据。如图4中所示出的,数据可以被布置成二维数据阵列402。数据阵列402被示出为6x8阵列,但是可以取决于存储约束、处理功率、误差率性能要求以及其他有形因素而使用任何可设想到的大小的数据阵列。然而,为了本讨论中的简单性,示出了6x8数据阵列402。
在第一实施例中,可以首先对行进行编码。例如,6比特的奇偶校验可以被添加到每行,得到6x14行编码阵列408中的每行中的C1码字。每个C1码字使用[14,8,7]的C1码而被编码。然后,列可以通过将4比特的奇偶校验添加到每列而被编码,得到10x14编码阵列410中的每行中的C2码字(以及每行的C1码字)。每个C2码字使用[10,6,5]的C2码而被编码。
在第二实施例中,可以首先对列进行编码。例如,4比特的奇偶校验可以被添加到每列,得到10x8列编码阵列404中的每列中的C2码字。每个C2码字使用[10,6,5]的C2码而被编码。然后,行可以通过将6比特的奇偶校验添加到每列而被编码,得到10x14编码阵列406中的每行中的C1码字(以及每列的C2码字)。每个C1码字使用[14,8,7]的C1码而被编码。无论是首先对行进行编码还是首先对列进行编码,所得到的10x14阵列406、410是相同的并且被认为是[140,48,35]的乘积码字。
在更真实的示例中,C1码可以是[240,230,11]的RS码,C2码可以是[192,168,25]的RS码,但是无论是使用C1码还是C2码,乘积码字中的每行是C1码字,并且乘积码字中的每列是C2码字。乘积码的距离是它的分量C1码和C2码的距离的乘积。另外,在编码之前或之后,头部可以被添加到阵列的每行以形成加头的行。
在又一实施例中,两个或更多个乘积码字可以被组合成更大的二维阵列,被称为子数据集(SDS)。在一个实施例中,四个乘积码字可以被列交织在一起以形成SDS,其中四个乘积码字的所有四个第一列是SDS中的列一至列四,四个乘积码字的所有四个第二列是SDS中的列五至列八,等等。SDS的行被称为码字交织(CWI),并且由于四个C1码字被交织在一起,其特别地被称为CWI-4。以这种方式,四个乘积码字被交织成SDS,其中头部添加到SDS的每行。然后,使用可用于将通常属于M个不同的SDS的M个分组写入到带的多个(M个)带通道,来将SDS的每行写入磁带作为数据的分组。
由带驱动器接收到的用于写入到磁带的每个数据集在被写入之前被处理。数据集可以被拆分成多个SDS,每个SDS被组织成二维数据符号阵列,例如图4中所示出的那样。10x14阵列406、410中的每行包括一个或多个C1码字,而10x14阵列406、410中的每列包括一个或多个C2码字。在线性带开放(LTO)中,每个编码的SDS包括行中的两个(用于生成LTO 1-LTO 4)或四个(LTO 5-LTO 7)C1码字。然而,来自一个至八个或更多个C1码字的任何可以被包括在阵列的每行中。通常,数百或甚至数千个头部被分配给单个数据集,这是因为每个数据集包括多个SDS,并且列编码的SDS的每行被分配头部(每行一个头部)。每个头部可以包括在一对一的基础上与列编码的SDS的行相关联的12字节,或者更多或者更少。
如行编码的阵列408中所示出的,当C1编码在C2编码之前进行时,C2列奇偶校验沿着408的每行的整个长度而延伸在10x14阵列410的C2列奇偶校验部分中。C1行奇偶校验被放置在每行的结尾处、在10x14阵列410的C2列奇偶校验区域的外部。然而,C1码字仍然甚至跨过C2列奇偶校验区域而存在。这是乘积码构建的属性,其中C1延伸和C2延伸的顺序可以被交换,而不对乘积码字具有影响,也即,所有行来自一个码并且所有列来自另一码,而与C1延伸和C2延伸的顺序无关。因此,C2列奇偶校验区域的最后列可以被解读为C1奇偶校验或C2奇偶校验。
根据一个实施例,在每行包括被交织成行的整体的四个码字(被称为CWI-4)的情况下,每个C1码字可以具有230字节的数据,其中附加的C1奇偶校验添加附加的10字节。由于在本实施例中四个C1码字在每行中被交织,因而每行(行是一个CWI-4)具有4x230字节+4x10字节=960字节。另外,在本实施例中,在每个SDS阵列中可以存在96行,在其他实施例中或者更多或更少。
另外,在一个方式中,头部可以为12字节长。这使得SDS二维阵列的总大小为(960+12)*96=93,312字节,其中没有针对头部的ECC编码。
另外,在一个方式中,C1码可以包括在伽罗瓦域GF(256)上的RS(240,230,11)码,并且C2码可以包括在GF(256)上的RS(96,84,13)码。
在更多方式中,CWI-4(984字节,每个码字为246字节)和头部(12字节)的长度可以为996字节。在另一方式中,CWI-4和头部的长度可以为1000字节、1004字节、或适合于以期望的保护水平对CWI-4和头部信息进行编码的某个其他值。
由于数据被存储到磁带,多个CWI-4跨磁带通道被分散,其中被并发地写入到带的CWI-4的每个集合被称为CWI-4集合。当磁带具有32个轨道时,带驱动器具有32个带通道,CWI-4集合包括32个加头的CWI-4,每个来自不同的SDS。此外,当C1码是[240,230,11]的RS码并且C2码是[192,168,25]的RS码时,每个数据集将存在384个CWI-4集合。在该实施例中,来自各种不同的SDS的单个CWI-4被并发地写入,由此在影响在给定时间被写入的所有数据的读取或写入误差(例如偏斜误差等)的情况下提升数据保护。
另外,当数据被确定为在读同时写过程期间被不恰当地写入时,其将被重新写入到带的、位于带上的数据集的第一写入区域之后的重写区段。
在对两个加头的CWI-4(2个分组)进行调制编码之后,通过在分组之间插入同步模式并且将同步化的码字对象(SCO)写入到带的轨道上来形成SCO。当磁带具有32个轨道时,在SCO集合中存在32个SCO。当写入被中断时,针对其所有SCO集合尚未被成功记录并且读同时写处理之后随后被验证的任何数据集被认为是中断的数据集。因此,数据集的写入粒度是单个SCO集合。当通过数据集分离器(DSS)序列写入到磁带时,每个数据集分离,并且两个不同的可变频率振荡器(VFO)序列用于获取定时,其中VFO1为445比特长,并且VFO2为197比特长。这些同步模式还被存储到带。较长的VFO1模式被写入在数据集中的第一SCO集合之前并且在最末SCO集合之后,而较短的VFO2模式被写入在数据集中的任意两个SCO集合之间。
现在参考图5,示出了根据一个实施例的在乘积码字与SDS之间的关系。如所示出的,SDS 510包括被交织在一起并且被布置成二维阵列的经编码的数据的多个加头的行。SDS 510的每行(行514)包括头部512和来自逐列交织的多个乘积码字(PCW)中的每个乘积码字的符号。在本示例中,四个PCW被包括在SDS 510中:PCW 502、PCW 504、PCW 506以及PCW508。然而,如本领域技术人员在阅读本说明书时将显而易见的,任何数目的PCW可以被包括在SDS中,诸如2、6、8、10、16,等等。每个PCW被示出为经编码的符号的二维阵列,其中每个PCW的大小基于任何数目的因素(诸如可用的处理、过去使用的大小、向后兼容性、方便性,等等)而被确定。
在进一步的方式中,SDS 510的每行中的头部512可以具有任何长度,例如4字节、6字节、8字节、12字节、16字节,等等。另外,取决于对于SDS 510期望保护的量,头部512可以被编码或者不被编码。在其他方式中,对于SDS 510的行中的一行或多行可以不包括头部512。
还要指出,SDS 510的每行(例如行514)是可以有利地表示用于将SDS存储到磁带的分组的数据单元。因此,当数据分组从磁带被读取时,每个分组可以表示SDS的行。在一个实施例中,每个分组具有大约1kB:4*240B(每个PCW的行的大小)+12B(头部的大小)的大小。当(192,168)的C2码用于对数据进行编码时,每个SDS 510存在192个分组,并且对于32通道带驱动器,64个SDS被包括在每个数据集中,其大小大约为12MB。
现在参考图6,示出了根据一个实施例的针对里德索罗门(RS)C2码的数据集布局600。数据集布局600是针对RS(192,168)的C2码的,但是任何适当的码可以与本文所描述的实施例一起使用,诸如RS(96,84)等。如所示出的,对于RS(192,168),数据集602大小为12MB,带上的数据集长度604为146mm,每个子数据集606具有四个交织的码字(CWI-4)608的192个集合,码字对象610包括具有来自具有两个头部612的两个连续的子数据集606的相同数目(r)的两个CWI-4,并且被映射到32个逻辑轨道614上的每个数据集602存在6144个码字对象610,使得CWI-4之间的距离是大的,其中SDS#x,(x=0,1,2,...,63)中的每个CWI-4608与SDS#x中的所有其他CWI-4 608分离大约1mm,这允许对四个失效轨道和18mm条带误差616的校正。
例如,如图6中所示出的,在数据集布局600内,存在子数据集#0、子数据集#1、...、以及子数据集#63的总计6144个码字对象610。此外,在一个方式中,被写入到带的数据集的宽度618为大约2.6mm,其中带的总宽度为大约12.7mm。
参考图7,示出了根据现有技术的用于磁带702上的数据存储的逻辑格式700。如所示出的,2D逻辑数据阵列704跨过磁带702的、占据磁带702上的横向范围和纵向范围的轨道而被存储。对于该示例,沿着磁带702的带驱动器能够提供同时要被写入和被读取的32个轨道,M=32。
假设50nm比特长度对应于大约500kbpi的线性密度,2D逻辑数据阵列704在横向方向706上占据大约2.6mm并且在纵向方向708上占据大约80mm。此外,数据被布置在2D逻辑数据阵列704内作为C1码字(例如C1码字710)和C2码字,其大概等于2D逻辑数据阵列704的大小,如本领域技术人员所理解的。2D逻辑数据阵列704内的每个C1码字710是交织在CWI-4内的一维(1D)介质伸展(MS)码字,并且在纵向方向708上沿着磁带702的单个轨道占据大约400微米的空间。附加地,在该示例中,在2D逻辑数据阵列704内,每个C2码字为2D宽伸展(WS)码字并且在纵向方向708上沿着磁带702占据完整80mm的空间并且在横向方向706上跨磁带702占据完整2.6mm的空间。此外,C2码字的符号大致均匀地被伸展在图7中的2D逻辑数据阵列704之上,这类似于在图6的底部的、经编码的数据集布局600中的方形,其中由在纵向方向上沿着带并且在横向方向上跨过带的矩形框来指示边界。
2D逻辑数据阵列704可以沿着磁带702被写入在数据轨道中,其中多于一个数据带被呈现在磁带702上并且能够具有存储在其中的更多的数据。在另一方式中,如本领域技术人员在阅读本说明书时将理解的,M个轨道的特定子集中的不同集合可以同时使用来自带驱动器的M个写入头元件中的一个或多个子集跨过磁带702上的一个或多个数据带而被同时写入。例如,两个数据带可以使用针对两个数据带中的每个数据带的M/2个写入头元件来同时被写入,四个数据带使用针对四个数据带中的每个数据带的M/4个写入头元件,等等。
此外,编码可以由RS码执行,例如,用于C1编码的RS(N1,K1)可以具有N1=246和K1=234,这使得RS(246,234)码用于对C1码字进行编码,用于C2编码的RS(N2,K2)可以具有N2=96和K2=84,这使得RS(96,84)码用于对C2码字进行编码。这得到数据集内的P=256个乘积码字(每个占据96字节x246字节)。
如从该方案所明显的,C2码强于C1码,这是因为C2码能够校正来自96个符号组中的6个符号(针对C2的可校正符号的#=T2=(N2-K2)/2=(96-84)/2=12/2=6),得到6.25%的码强度(C2码长度=T2/N2=6/96=1/16=0.0625)。相反,C1码能够校正来自246个符号组中的6个符号(针对C1的可校正符号的#=T1=(N1-K1)/2=(246-234)/2=12/2=6),得到2.44%的码强度(C1码长度=T1/N1=6/246=1/41=0.0243902439)。
再次参考图7,由于用于存储数据集的逻辑格式700,在C2码字中的任何C2码字从磁带702在整体上被读取之前,C1码字710中的至少一些C1码字将从磁带702在整体上被读取。但是,由于C1码弱于C2码,并且因为C1码字710仍然沿着磁带702介质伸展,因此,由于将被引入到读取通道中的延迟量,这不可用于在数字前端功能中的软决策或硬决策。
现在参考图8,示出了根据一个实施例的用于磁带802上的数据存储的逻辑格式800。如所示出的,2D逻辑数据阵列804跨过磁带802的、占据磁带802上的横向范围和纵向范围的轨道而被存储。针对该示例,沿着磁带802的带驱动器能够提供要被同时写入和读取的32个轨道,M=32。
假设50nm比特长度对应于大约500kbpi的线性密度,2D逻辑数据阵列804在横向方向806上占据大约2.6mm并且在纵向方向808上占据大约80mm。此外,数据被布置在2D逻辑数据阵列804内作为NS码字812和WS码字810。2D逻辑数据阵列804内的每个NS码字812是(可能与其他NS码字交织的)1D或2D的NS码字,并且在纵向方向808上沿着磁带802的多个轨道(高达M个轨道,由此在横向方向上占据完整的2.6mm)占据少至1.2微米的空间。附加地,在2D逻辑数据阵列804内,每个WS码字为1D的WS码字并且在纵向方向808上沿着磁带802的单个轨道占据完整的80mm的空间。
编码可以由RS码执行,例如,用于宽伸展(WS)编码的RS(Nw,Kw)可以具有Nw=246和Kw=234,使得RS(246,234)码用于对WS码字进行编码,用于窄伸展(NS)编码的RS(Nn,Kn)可以具有Nn=96和Kn=84,使得RS(96,84)码用于对NS码字进行编码。这得到数据集内的P=256个乘积码字(每个占据96字x246字节)。
如从该方案显而易见的,NS码强于WS码,这是因为NS码能够校正来自96个符号组的6个符号,得到6.25%的码强度。相反,WS码能够校正来自246个符号组的6个符号,得到2.44%的码强度。
使用该方案,在WS码字810中的任何WS码字从磁带802在整体上被读取之前,NS码字812中的至少一些NS码字将从磁带802在整体上被读取。此外,由于NS码强于WS码,并且因为NS码字在沿着磁带802的非常紧凑的纵向长度上是窄伸展的,因此,NS码字当从磁带802被读取时,可以用于带驱动器的读取通道的数字前端功能中的软决策或硬决策。
为了比较起见,在图7中所描述的并且在当前磁带格式化中常见的现有技术逻辑格式700中,包括N1字节的1D MS行码字被写入在带轨道上,而包括N2字节的2D WS列码字被写入在M个带轨道上。在图8中描述的逻辑格式800中,根据一个实施例,包括Nw字节的1D的WS行码字被写入在带轨道上,而包括Nn字节的2D窄伸展列码字被写入在M个带轨道上。由NS码字在纵向方向上占据的磁带的长度的量比由MS码字占据的长度的少大约333倍。另外,由MS码字在纵向方向上占据的磁带的长度的量比由WS码字占据的长度的少大约200倍。
参考图9,示出了根据一个实施例的带驱动器写入通道900的块图。在一个实施例中,该带驱动器写入通道900可以用于根据图8中所描述的逻辑格式来将数据存储到磁带。再次参考图9,带驱动器写入通道900包括WS编码器902、可选的WS块交织器904、NS编码器906、可选的NS块交织器908以及通道交织器910。
到WS编码器902的输入是具有被组织成Kw字节行的P(KnxKw)个符号的数据。也即,到WS编码器902的数据输入被组织成具有Kn行和Kw列的2D阵列。在该示例中,P是具有P(KnxKw)个符号的数据集中的乘积码字的数目。
WS编码器902被配置为使用比率Kw/Nw编码方案进行操作,以对具有P(KnxKw)个符号的数据进行编码并且获得具有P(KnxNw)个符号的数据,其中Nw是大于Kw的列数目,例如,Nw>Kw
WS块交织器904被配置为对具有P(KnxNw)个符号的数据进行交织,以获得具有KnxPNw个符号的数据。WS块交织器904操作为PNw列交织器。
NS编码器906被配置为使用比率Kn/Nn编码方案进行操作,以对具有KnxPNw个符号的数据进行编码并且获得具有NnxPNw个符号的数据。Nn是大于Kn的行的数目,Nn>Kn
NS块交织器908被配置为对具有NnxPNw个符号的数据进行交织,以获得具有(PNw/J)(NnxJ)个符号的数据。NS块交织器908操作为J列交织器。
这些块的顺序可以以任何期望的顺序进行交换:WS编码器902、可选的WS块交织器904、NS编码器906以及可选的NS块交织器908。例如,在一个备选实施例中,NS编码器906和可选的NS块交织器908可以被放置在WS编码器902和可选的WS块交织器904之前。
通道交织器910被配置为对具有(PNw/J)(NnxJ)个符号的数据进行交织,以获得具有(PNw/J)(Mx(Nn/M)J)个符号的数据,使得其适合于写入到磁带的M个轨道。其后,使用带驱动器的M个通道来将具有(PNw/J)(M×(Nn/M)J)个符号的数据写入到磁带。在本说明书中,M是J的整数倍,并且Nn是M的整数倍。
在一个实施例中,NS码是(Nn,Kn)线性块码,例如RS码、低密度奇偶校验(LDPC)码,等等,并且NS编码器906可以是系统化的。在一个实施例中,WS码是(Nw,Kw)线性块码,例如,RS码、LPDC码,等等,并且WS编码器902可以是系统化的。这得到(KnKw)/(NnNw)的总码率。
WS块交织器904对每行执行深度P符号交织(P等于数据集中的乘积码字的数目),并且逐列地输出Kn字节,其中对于具有大约6MB的大小的数据集而言P=256,Nw=246,并且Nn=96。此外,NS块交织器908被配置为将每第i行循环移动(i-1)个移位,从而以逐列的方式输出Nn字节。
在一个实施例中,WS块交织器904可以沿着磁带的M个轨道分布数据的符号,如图10中所示出的。图10中的表格的条目由对应于表格的行k中的第j个WS码字的第i个码符号的(i,j)k表示,其中i是1与Nw之间的整数,并且j是1与P之间的整数,以及k是1与Kn之间的整数。假设在伽罗瓦域GF(2m)上定义WS码字,图10中的表格的条目通常是m比特符号。请注意,m可以是任何正整数,诸如1、4、8,等等。
在另一实施例中,再次参考图9,NS块交织器908可以沿着磁带的M个轨道分布数据的符号,如图11中所示出的,其可以被称为锯齿模式,这是因为NS码字沿着轨道向下对角地分布。图11中的具有Nn行和J列的表格的NnJ个条目由对应于第j个NS码字的第i个码符号的(i)j来表示,其中i是1与Nn之间的整数,并且j是1与J之间的整数。假设在伽罗瓦域GF(2m)上定义NS码字,图11中的表格的条目通常是m比特符号。请注意,m可以是任何正整数,诸如1、4、6、8、12,等等。
在又一实施例中,再次参考图9,通道交织器910可以沿着磁带的M个轨道分布数据的符号,如图12中所示出的。图12中的具有M行和(Nn/M)J列的表格的NnJ个条目也由对应于第j个NS码字的第i个码符号的(i)j表示,其中i是1与Nn之间的整数,并且j是1与J之间的整数。假设在伽罗瓦域GF(2m)上定义NS码字,图12中的表格的条目通常是m比特符号。请注意,m可以是任何正整数。
可以预期,在特定实施例中,图10-12中所描述的分布模式联合地用于将数据存储到磁带的M个轨道。
现在参考图13,示出了根据一个实施例的用于将数据存储在磁带介质上的方法1300的流程图。在各个实施例中,根据本发明的方法1300可以在图1-12中所描述的环境中的任何环境以及其他环境中被执行。当然,如本领域技术人员在阅读本说明书时将理解的,比图13中所具体描述的操作更多或更少的操作可以被包括在方法1300中。此外,操作的顺序可以从图13中所示出的顺序进行改变。
在一个方式中,磁带介质可以是如本领域中已知的任何合适的磁性数据存储带,例如LTO带格式、企业带格式,等等。在其他实施例中,虽然贯穿说明书描述了磁带,但是如本领域技术人员将理解的,其他数据存储介质可以用于数据存储。
方法1300的步骤中的每个步骤可以由操作环境的任何适当的部件来执行。例如,在各种非限制性实施例中,方法1300可以部分地或全部地由可以嵌入在系统中和/或在系统内操作的带驱动器、光驱动器、处理器(例如CPU、ASIC、FPGA等)等来执行。
如图13中所示出的,方法1300可以以操作1302开始,其中接收数据以使用多个写入头元件存储到磁带介质。
数据被组织成预定数目(P)的二维阵列,每个二维阵列包括与多个WS码字正交地放置的多个NS码字。在各种方式中,WS码字可以是2D阵列的行,而NS码字是2D阵列的列,反之亦然。
在操作1304中,使用多个写入头元件中的、能够将数据同时写入到带轨道的第一数目的写入头元件,来将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道(M)上。
通过连续地被写入,意味着乘积码字中的每个NS码字在来自同一乘积码字的另一NS码字开始被写入到磁带之前被完全写入到磁带。此外,NS码字跨过能够同时被写入和被读取的多个轨道被写入。通常,不是磁带的所有轨道都在该写入过程中被使用,这是因为每个磁带具有数千个轨道,并且仅其一部分能够由带驱动器同时写入。
另外,来自第一二维阵列(例如乘积码字)的第一NS码字在开始写入来自第一二维阵列的第二NS码字之前被完全地写入到磁带介质。此外,利用比多个WS码字更强的编码来保护多个NS码字。
在一个实施例中,更强的编码基于与WS码字中的误差符号的可校正百分比相比更高的NS码字中的误差符号的可校正百分比。
在另一实施例中,更强的编码基于T2/N2大于T1/N1。在该等式中,T1等于floor(P1/2),N1等于WS码字的长度,P1是WS码字奇偶校验长度并且等于WS码字长度减去WS数据字长度(N1-W1)。此外,T2等于floor(P2/2),N2等于NS码字的长度,P2是NS码字奇偶校验长度并且等于NS码字长度减去NS数据字长度(N2-W2)。
例如,当RS(Nw,Kw)码被用于WS码字时,Nw=246和Kw=234得到RS(246,234)码,WS码能够校正来自246符号组的6个符号(针对WS的可校正符号的#=Tw=(Nw-Kw)/2=(246-234)/2=12/2=6),得到大约2.44%的码强度(WS码强度=Tw/Nw=6/246=1/41=0.0243902439)。在另一示例中,当RS(Nn,Kn)码被用于NS码字时,Nn=96和Kn=84得到RS(96,84)码,NS码能够校正来自96符号组的6个符号(针对NS的可校正符号的#=Tn=(Nn-Kn)/2=(96-84)/2=12/2=6),得到大约6.25%的码强度(NS码强度=Tn/Nn=6/96=1/16=0.0625)。能够校正恢复的符号的6.25%强于能够校正恢复的符号的2.44%。
另外,在一个实施例中,每个NS码字的多于一个符号可以被写入到磁带介质的多个轨道中的每个轨道。此外,根据一个实施例,与在被写入到磁带介质之后的NS码字相比,在被写入到磁带介质之后的WS码字在磁带介质上在纵向方向上占据至少(N1-1)倍的距离。
方法1300还可以包括:在一个方式中,使用两个里德索罗门(RS)码来对数据集进行编码,以产生表示该数据集的、预定数目的二维阵列内的彼此正交地放置的多个NS码字和多个WS码字。此外,如先前所描述的,每个NS码字包括数据集的不同部分以及从数据集的不同部分产生的奇偶校验。
根据另一实施例,方法1300可以包括:在将NS码字中的每个NS码字连续地写入到磁带介质的多个轨道上之前,使用NS块交织器来将预定数目的NS码字字节交织在一起,以形成经字节交织的NS码字(在一个方式中,NS码符号和WS码符号可以是8比特的符号,但是不要求如此,并且可以大于或小于8比特)。在该方式中,沿着磁带介质的多个轨道中的每个轨道的、由经字节交织的NS码字占据的字节的数目可以是由单个NS码字占据的字节的数目乘以对应于字节交织在一起的NS码字的预定数目的J的倍数。此外,字节交织在一起的NS码字的预定数目J可以选自从2至8的包含性范围(例如,范围包括2、3、4、...、8)。
在另一实施例中,多个NS码字可以沿着磁带介质的、等于带驱动器被配置为同时写入的轨道的最大数目的数目的轨道进行写入。在这些示例中,可以被同时写入的轨道的最大数目由M表示,并且因此在该实施例中,多个NS码字沿着磁带介质的M个轨道被写入。
图13中示出的方法1300的步骤中的每个步骤可以由操作环境的任何适当的部件来执行。例如,在各个实施例中,方法1300可以部分地或全部地由处理电路、控制器、带驱动器、或者具有在其中的一个或多个处理器的某种其他设备来执行。处理电路(例如一个或多个处理器、一个或多个芯片和/或采用硬件和/或软件(其之间具有连接)实现的并且优选地具有至少一个硬件部件的一个或多个模块)可以被利用在任何设备中以执行方法1300的一个或多个步骤。说明性处理电路包括但不限于CPU、微处理器、ASIC、FPGA等、其组合、或本领域中已知的任何其他适当的计算设备。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(媒介),其上载有用于使处理器实现本发明的方面的计算机可读程序指令。
计算机可读存储介质能够是能够保留并存储用于由指令执行设备使用的指令的有形设备。计算机可读存储介质可以例如是但不限于,电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述中的任何适当组合。计算机可读存储介质的更具体示例的非穷举式列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字多用盘(DVD)、记忆棒、软盘、机械编码设备(诸如具有记录在其上的指令的槽中的穿孔卡或凸起结构)、以及前述的任何适当组合。如本文中所使用的,计算机可读存储介质不应被解释为暂态信号本身,暂态信号例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆传递的光脉冲)、或通过电线传输的电信号。
本文所描述的计算机可读程序指令能够从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输线缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机、和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并将计算机可读程序指令转发以用于存储在相应的计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任何组合编写的源代码或目标代码,所述一种或多种编程语言包括面向对象编程语言(诸如Smalltalk、C++等)和传统过程式编程语言(诸如“C”编程语言或类似的编程语言)。计算机可读程序指令可以全部地运行在用户的计算机上、部分地运行在用户的计算机上、作为独立软件包运行、部分地运行在用户的计算机上并且部分地运行在远程计算机上、或全部地运行在远程计算机或服务器上。在后一种情形下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以(例如,通过使用因特网服务提供商的因特网)对外部计算机进行连接。在一些实施例中,包括电子电路(例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用用于使电子电路个性化的计算机可读程序指令的状态信息来运行计算机可读程序指令,以便执行本发明的方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或块图来描述本发明的方面。将理解的是,流程图和/或块图的每个块以及流程图和/或块图中的块的组合能够通过计算机可读程序指令而被实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,使得经由计算机或其他可编程数据处理装置的处理器运行的指令创建用于实现流程图和/或块图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,其能够引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有被存储在其中的指令的计算机可读存储介质包括制品,制品包括实现流程图和/或块图的一个或多个块中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被下载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤被执行在计算机、其他可编程数据处理装置或其他设备上以产生计算机实现的过程,使得运行在计算机、其他可编程数据处理装置或其他设备上的指令实现流程图和/或块图的一个或多个块中指定的功能/动作。
附图中的流程图和块图图示了根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这一点上,流程图或块图中的每个块可以表示包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令的指令的模块、段或一部分。在一些备选实现方式中,块中指出的功能可以不以附图中指出的顺序发生。例如,连续示出的两个块实际上可以基本上同时地被运行,或各块可以有时以相反的顺序被运行,这取决于所涉及的功能。还将注意,块图和/或流程示图中的每个块以及块图和/或流程示图中的块的组合能够通过基于专用硬件的系统来实施,基于专用硬件的系统执行指定功能或动作或执行专用硬件和计算机指令的组合。
此外,根据各个实施例的系统可以包括处理器和与处理器集成和/或由处理器可运行的逻辑,该逻辑被配置为执行本文所记载的过程步骤中的一个或多个过程步骤。通过与处理器集成,意味着处理器具有嵌入到其中的逻辑作为硬件逻辑,例如ASIC、FPGA,等等。通过由处理器可运行,这意味着逻辑是硬件逻辑、软件逻辑(例如固件)、操作系统的一部分、应用程序的一部分等、或者由处理器可访问,并且被配置为在由处理器运行时使得处理器执行特定功能的硬件和软件逻辑的特定组合。如本领域中已知的,软件逻辑可以被存储在任何存储器类型的本地和/或远程存储器上。本领域中已知的任何处理器可以被使用,例如软件处理器模块和/或硬件处理器,例如ASIC、FPGA、CPU、集成电路(IC)、图形处理单元(GPU),等等。
将清楚的是,前述系统和/或方法的各个特征可以以任何方式被组合,从而创建来自以上呈现的描述的多个组合。
还将认识到,本发明的实施例可以以代表客户部署的服务的形式被提供以按需提供服务。
本文在各个实施例中所描述的用于到磁带的数据存储的逻辑格式基于以下:将数据集中的数据字编码为P个2D乘积码字(2D阵列),并且将2D乘积码字的列编写为跨过M个轨道的窄伸展2D(或可能1D)编码阵列,并且将数据集内的2D乘积码字(2D阵列)的行中的符号沿着单个轨道(或者可能沿着各个轨道,而没有同时将来自同一行的数据写入在任何两个轨道上)均匀地分布。由于使用低延迟窄伸展解码符号来驱动决策导向的数字前端功能(诸如定时恢复(单个轮次))或者执行迭代检测和定时恢复(多个轮次),误差率性能相对于现有技术得到了改善。
尽管以上已经描述了各个实施例,但是应当理解,它们仅仅通过举例而非限制的方式被呈现。因此,优选实施例的宽度和范围不应当由上述示例性实施例中的任何实施例而限制,而是应当仅仅根据所附权利要求及它们的等效方案来限定。

Claims (20)

1.一种带驱动器,包括:
多个写入头元件;
处理电路;以及
逻辑,其与所述处理电路集成、由所述处理电路可运行、或者与所述处理电路集成并且由所述处理电路可运行,所述逻辑被配置为使得所述处理电路:
接收数据以使用所述多个写入头元件存储到磁带介质,所述数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字;以及
使用所述多个写入头元件中的、能够将数据同时写入到带轨道的第一数目的写入头元件,来将所述NS码字中的每个NS码字连续地写入到所述磁带介质的多个轨道上,其中来自第一二维阵列的第一NS码字在开始写入来自所述第一二维阵列的第二NS码字之前被完全地写入到所述磁带介质,
其中所述多个NS码字利用比所述多个WS码字更强的编码被保护。
2.根据权利要求1所述的带驱动器,其中所述更强的编码基于与WS码字中的误差符号的可校正百分比相比更高的NS码字中的误差符号的可校正百分比。
3.根据权利要求1所述的带驱动器,其中所述更强的编码基于T2/N2大于T1/N1,其中T1等于floor(P1/2),floor(P1/2)表示对(P1/2)向下取整,N1等于WS码字的长度,P1是WS码字奇偶校验长度并且等于所述WS码字长度减去WS数据字长度,并且其中T2等于floor(P2/2),N2等于NS码字的长度,P2是NS码字奇偶校验长度并且等于所述NS码字长度减去NS数据字长度。
4.根据权利要求3所述的带驱动器,其中每个NS码字的多于一个符号被写入到所述磁带介质的所述多个轨道中的每个轨道,并且其中与在被写入到所述磁带介质之后的NS码字相比,在被写入到所述磁带介质之后的WS码字在所述磁带介质上在纵向方向上占据至少(N1-1)倍的距离。
5.根据权利要求1所述的带驱动器,其中所述逻辑还使得所述处理电路:
使用两个里德索罗门(RS)码来对数据集进行编码,以产生表示所述数据集的、所述预定数目的二维阵列内的彼此正交地放置的所述多个NS码字和所述多个WS码字,
其中每个NS码字包括所述数据集的不同部分以及从所述数据集的所述不同部分产生的奇偶校验。
6.根据权利要求1所述的带驱动器,其中所述逻辑还使得所述处理电路:
在将所述NS码字中的每个NS码字连续地写入到所述磁带介质的所述多个轨道上之前,使用NS块交织器来将预定数目的NS码字字节交织在一起以形成经字节交织的NS码字,
其中沿着所述磁带介质的所述多个轨道中的每个轨道的、由所述经字节交织的NS码字占据的字节的数目是由单个NS码字占据的字节的数目乘以经字节交织在一起的NS码字的所述预定数目的倍数,并且
其中经字节交织在一起的NS码字的所述预定数目处于从2至8的包含性范围内。
7.一种方法,包括:
接收数据以使用带驱动器存储到磁带介质,所述数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字;以及
使用所述带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将所述NS码字中的每个NS码字连续地写入到所述磁带介质的多个轨道上,其中来自第一二维阵列的第一NS码字在开始写入来自所述第一二维阵列的第二NS码字之前被完全地写入到所述磁带介质,
其中所述多个NS码字利用比所述多个WS码字更强的编码被保护。
8.根据权利要求7所述的方法,其中所述更强的编码基于与WS码字中的误差符号的可校正百分比相比更高的NS码字中的误差符号的可校正百分比。
9.根据权利要求7所述的方法,其中所述更强的编码基于T2/N2大于T1/N1,其中T1等于floor(P1/2),N1等于WS码字的长度,P1是WS码字奇偶校验长度并且等于所述WS码字长度减去WS数据字长度,并且其中T2等于floor(P2/2),N2等于NS码字的长度,P2是NS码字奇偶校验长度并且等于所述NS码字长度减去NS数据字长度。
10.根据权利要求9所述的方法,其中每个NS码字的多于一个符号被写入到所述磁带介质的所述多个轨道中的每个轨道,并且其中与在被写入到所述磁带介质之后的NS码字相比,在被写入到所述磁带介质之后的WS码字在所述磁带介质上在纵向方向上占据至少(N1-1)倍的距离。
11.根据权利要求7所述的方法,还包括:
使用两个里德索罗门(RS)码来对数据集进行编码,以产生表示所述数据集的、所述预定数目的二维阵列内的彼此正交地放置的所述多个NS码字和所述多个WS码字,其中每个NS码字包括所述数据集的不同部分以及从所述数据集的所述不同部分产生的奇偶校验。
12.根据权利要求7所述的方法,还包括:
在将所述NS码字中的每个NS码字连续地写入到所述磁带介质的所述多个轨道上之前,使用NS块交织器来将预定数目的NS码字字节交织在一起以形成经字节交织的NS码字,其中沿着所述磁带介质的所述多个轨道中的每个轨道的、由所述经字节交织的NS码字占据的字节的数目是由单个NS码字占据的字节的数目乘以经字节交织在一起的NS码字的所述预定数目的倍数,并且其中经字节交织在一起的NS码字的所述预定数目处于从2至8的包含性范围内。
13.根据权利要求7所述的方法,其中所述多个NS码字沿着所述磁带介质的、等于所述带驱动器被配置为同时写入的轨道的最大数目的数目的轨道被写入。
14.一种计算机程序产品,所述计算机程序产品包括具有实现在其中的程序指令的计算机可读存储介质,所实现的所述程序指令由处理电路可运行以使得所述处理电路:
由所述处理电路接收数据以使用带驱动器存储到磁带介质,所述数据被组织成预定数目的二维阵列,每个二维阵列包括与多个宽伸展(WS)码字正交地放置的多个窄伸展(NS)码字;以及
由所述处理电路使用所述带驱动器的、能够将数据同时写入到带轨道的第一数目的通道,来将所述NS码字中的每个NS码字连续地写入到所述磁带介质的多个轨道上,其中来自第一二维阵列的第一NS码字在开始写入来自所述第一二维阵列的第二NS码字之前被完全地写入到所述磁带介质,
其中所述多个NS码字利用比所述多个WS码字更强的编码被保护。
15.根据权利要求14所述的计算机程序产品,其中所述更强的编码基于与WS码字中的误差符号的可校正百分比相比更高的NS码字中的误差符号的可校正百分比。
16.根据权利要求14所述的计算机程序产品,其中所述更强的编码基于T2/N2大于T1/N1,其中T1等于floor(P1/2),N1等于WS码字的长度,P1是WS码字奇偶校验长度并且等于所述WS码字长度减去WS数据字长度,并且其中T2等于floor(P2/2),N2等于NS码字的长度,P2是NS码字奇偶校验长度并且等于所述NS码字长度减去NS数据字长度。
17.根据权利要求16所述的计算机程序产品,其中每个NS码字的多于一个符号被写入到所述磁带介质的所述多个轨道中的每个轨道,并且其中与在被写入到所述磁带介质之后的NS码字相比,在被写入到所述磁带介质之后的WS码字在所述磁带介质上在纵向方向上占据至少(N1-1)倍的距离。
18.根据权利要求14所述的计算机程序产品,其中所实现的所述程序指令还由所述处理电路可运行以使得所述处理电路:
由所述处理电路使用两个里德索罗门(RS)码来对数据集进行编码,以产生表示所述数据集的、所述预定数目的二维阵列内的彼此正交地放置的所述多个NS码字和所述多个WS码字,其中每个NS码字包括所述数据集的不同部分以及从所述数据集的所述不同部分产生的奇偶校验。
19.根据权利要求14所述的计算机程序产品,其中所实现的所述程序指令还由所述处理电路可运行以使得所述处理电路:
由所述处理电路在将所述NS码字中的每个NS码字连续地写入到所述磁带介质的所述多个轨道上之前,使用NS块交织器来将预定数目的NS码字字节交织在一起以形成经字节交织的NS码字,
其中沿着所述磁带介质的所述多个轨道中的每个轨道的、由所述经字节交织的NS码字占据的字节的数目是由单个NS码字占据的字节的数目乘以经字节交织在一起的NS码字的所述预定数目的倍数,并且
其中经字节交织在一起的NS码字的所述预定数目处于从2至8的包含性范围内。
20.根据权利要求14所述的计算机程序产品,其中所述多个NS码字沿着所述磁带介质的、等于所述带驱动器被配置为同时写入的轨道的最大数目的数目的轨道被写入。
CN201711215775.0A 2016-12-15 2017-11-28 一种存储数据的方法和装置 Active CN108231097B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/380,983 2016-12-15
US15/380,983 US10379756B2 (en) 2016-12-15 2016-12-15 Logical format utilizing lateral encoding of data for storage on magnetic tape

Publications (2)

Publication Number Publication Date
CN108231097A true CN108231097A (zh) 2018-06-29
CN108231097B CN108231097B (zh) 2020-03-20

Family

ID=62251141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711215775.0A Active CN108231097B (zh) 2016-12-15 2017-11-28 一种存储数据的方法和装置

Country Status (3)

Country Link
US (2) US10379756B2 (zh)
CN (1) CN108231097B (zh)
DE (1) DE102017129990A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120599B2 (en) 2016-12-15 2018-11-06 International Business Machines Corporation Low latency lateral decoding of data for retrieval from magnetic tape
US10379756B2 (en) 2016-12-15 2019-08-13 International Business Machines Corporation Logical format utilizing lateral encoding of data for storage on magnetic tape
US10418062B2 (en) * 2017-12-19 2019-09-17 International Business Machines Corporation Efficient rewrite using larger codeword sizes
US10339971B1 (en) * 2017-12-19 2019-07-02 International Business Machines Corporation Sequential data storage with rewrite using dead-track detection

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1053508A (zh) * 1990-01-18 1991-07-31 菲利浦光灯制造公司 多道存储媒体的双向存储、译码、重放装置及其所用单式媒体
CN1732533A (zh) * 2002-12-30 2006-02-08 皇家飞利浦电子股份有限公司 编码系统
CN1791906A (zh) * 2003-05-20 2006-06-21 三星电子株式会社 纠错编码方法以及使用该编码方法记录数据的设备和方法
CN101091214A (zh) * 2004-12-28 2007-12-19 国际商业机器公司 信息记录装置、其数据流控制器及其数据流的控制方法
US20140108881A1 (en) * 2012-10-16 2014-04-17 International Business Machines Corporation Block-interleaved and error correction code (ecc)-encoded sub data set (sds) format
CN106020716A (zh) * 2015-03-31 2016-10-12 国际商业机器公司 利用可变长度报头写入数据的系统和方法
US20160329914A1 (en) * 2015-05-04 2016-11-10 International Business Machines Corporation Decoding data stored with three orthogonal codewords

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3735979A1 (de) 1986-10-24 1988-04-28 Mitsubishi Electric Corp Pcm-signalwiedergabevorrichtung mit fehler/loeschkorrekturschaltung
GB2284495B (en) * 1993-05-28 1998-04-08 Sony Corp Error correction processing method and apparatus for digital data
EP0913826A1 (en) 1997-10-31 1999-05-06 Hewlett-Packard Company Scratch protection in tape data storage system
JP2004295958A (ja) 2003-03-26 2004-10-21 Sharp Corp データ記録再生方法、データ記録再生装置、データ記録再生プログラム及びプログラム記録媒体
EP1659696B1 (en) 2003-08-28 2012-03-21 Sony Corporation Trellis decoding of run-length limited codes having a code table of variable input length
JP2007087530A (ja) 2005-09-22 2007-04-05 Rohm Co Ltd 信号復号方法、信号復号装置および信号記憶システム
US7957490B2 (en) 2006-09-21 2011-06-07 Limberg Allen Leroy Insertion of repetitive PN sequences into DTV data fields
US7965462B2 (en) 2009-01-09 2011-06-21 International Business Machines Corporation Storing partial data sets to magnetic tape
WO2010126494A1 (en) 2009-04-29 2010-11-04 Hewlett-Packard Development Company, L.P. Arrangement and processing of longitudinal position information on a data storage medium
US8902929B2 (en) 2009-06-26 2014-12-02 Hewlett-Packard Developent Company, L.P. Approximate enumerative coding method and apparatus
US10379756B2 (en) 2016-12-15 2019-08-13 International Business Machines Corporation Logical format utilizing lateral encoding of data for storage on magnetic tape
US10120599B2 (en) 2016-12-15 2018-11-06 International Business Machines Corporation Low latency lateral decoding of data for retrieval from magnetic tape

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1053508A (zh) * 1990-01-18 1991-07-31 菲利浦光灯制造公司 多道存储媒体的双向存储、译码、重放装置及其所用单式媒体
CN1732533A (zh) * 2002-12-30 2006-02-08 皇家飞利浦电子股份有限公司 编码系统
CN1791906A (zh) * 2003-05-20 2006-06-21 三星电子株式会社 纠错编码方法以及使用该编码方法记录数据的设备和方法
CN101091214A (zh) * 2004-12-28 2007-12-19 国际商业机器公司 信息记录装置、其数据流控制器及其数据流的控制方法
US20140108881A1 (en) * 2012-10-16 2014-04-17 International Business Machines Corporation Block-interleaved and error correction code (ecc)-encoded sub data set (sds) format
CN106020716A (zh) * 2015-03-31 2016-10-12 国际商业机器公司 利用可变长度报头写入数据的系统和方法
US20160329914A1 (en) * 2015-05-04 2016-11-10 International Business Machines Corporation Decoding data stored with three orthogonal codewords

Also Published As

Publication number Publication date
US10824346B2 (en) 2020-11-03
DE102017129990A1 (de) 2018-06-21
US10379756B2 (en) 2019-08-13
CN108231097B (zh) 2020-03-20
US20180173439A1 (en) 2018-06-21
US20190258413A1 (en) 2019-08-22

Similar Documents

Publication Publication Date Title
CN108231097A (zh) 利用用于存储在磁带上的数据的横向编码的逻辑格式
US5592497A (en) Multitrack record carrier having digital data reversibly stored thereon as error protected product codewords
JP4397456B2 (ja) データ記憶装置における書込み時読取り方法
KR101369621B1 (ko) 다중 트랙 데이터 테이프에 데이터를 기록하기 위한 방법, 데이터 저장 테이프 디바이스, 컴퓨터 판독가능 매체, 사용자 데이터 심볼의 스트림을 인코딩하기 위한 장치, 및 컴퓨팅 기반구조를 전개하기 위한 방법
US8856618B2 (en) Scalable repair block error correction for sequential multiple data blocks in a magnetic data storage device
JP6979129B2 (ja) 順次記憶媒体へのデータ・オブジェクト書き換えのためのシステム、方法およびコンピュータ・プログラム
US8144414B2 (en) Data interleaving in tape drives
US8495470B2 (en) Efficient rewrite technique for tape drives
KR101507639B1 (ko) 에러 검출시 마그네틱 데이터 테이프로의 코드워드 오브젝트 재기록
US9601160B2 (en) Efficient multichannel data format using variable-length headers
CN100444271C (zh) 产生用于纠错的错误标记的装置和方法
US9612905B2 (en) Encoding and writing of data on multitrack tape
US10152375B2 (en) Error protection of data stored using variable-length headers
CN101849361A (zh) 调制编码及解码
KR101120780B1 (ko) 기록 쓰기 경로를 위한 리버스 연결 인코딩 시스템과 매체 상에 기록하기 위한 데이터를 인코딩하는 방법과 컴퓨터 판독가능한 기록 매체
US10120599B2 (en) Low latency lateral decoding of data for retrieval from magnetic tape
US9712188B2 (en) Decoding data stored with three orthogonal codewords
CN103562995A (zh) 减轻虚假vfo检测的轨道相关数据随机化

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant