(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5753576
(24)【登録日】2015年5月29日
(45)【発行日】2015年7月22日
(54)【発明の名称】テープ・ドライブのためのデータ及びヘッダの保護を統合する方法、装置、及びプログラム
(51)【国際特許分類】
G11B 20/18 20060101AFI20150702BHJP
G11B 20/10 20060101ALI20150702BHJP
G11B 20/12 20060101ALI20150702BHJP
【FI】
G11B20/18 512C
G11B20/10 301Z
G11B20/18 520C
G11B20/18 532E
G11B20/18 536B
G11B20/18 572G
G11B20/18 572B
G11B20/18 576C
G11B20/12
【請求項の数】13
【全頁数】15
(21)【出願番号】特願2013-503108(P2013-503108)
(86)(22)【出願日】2011年4月7日
(65)【公表番号】特表2013-525933(P2013-525933A)
(43)【公表日】2013年6月20日
(86)【国際出願番号】EP2011055392
(87)【国際公開番号】WO2011124630
(87)【国際公開日】20111013
【審査請求日】2014年1月14日
(31)【優先権主張番号】12/757,882
(32)【優先日】2010年4月9日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】サイデシアン、ロイ、ダロン
(72)【発明者】
【氏名】松尾 久人
(72)【発明者】
【氏名】ミッテルホルツァー、トーマス
(72)【発明者】
【氏名】大谷 健治
(72)【発明者】
【氏名】シーガー、ポール
(72)【発明者】
【氏名】田中 啓介
【審査官】
堀 洋介
(56)【参考文献】
【文献】
特開2001−216740(JP,A)
【文献】
特開2000−067529(JP,A)
【文献】
特開昭61−005477(JP,A)
【文献】
国際公開第2008/116725(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11B 20/18
G11B 20/10
G11B 20/12
(57)【特許請求の範囲】
【請求項1】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、
行及び列に編成されたデータ配列を提供することと、
前記列について列ECCパリティを計算することと、
前記列ECCパリティを含むように前記列を拡張することと、
前記列が拡張されたデータ配列の各行にヘッダを付加することと、
前記結合された行及びヘッダについて行ECCパリティを計算することと、
前記行ECCパリティを含むように前記行を拡張することとを含み、
前記行ECCパリティを含むように前記行を拡張することは、前記ヘッダを付加する前の前記行について計算された行ECCパリティを更新することを含む、方法。
【請求項2】
前記データ配列は、配列の形式に編成されたサブ・データ・セット(SDS)である、請求項1に記載の方法。
【請求項3】
前記列ECCパリティは、リード・ソロモン・パリティを含む、請求項1又は請求項2に記載の方法。
【請求項4】
前記行ECCパリティは、リード・ソロモン・パリティを含む、請求項1から請求項3までのいずれかに記載の方法。
【請求項5】
前記行は、L個のインターリーブされたデータ・ワードを含む、請求項1から請求項4のいずれかに記載の方法。
【請求項6】
前記Lは、2及び4の一方に等しい、請求項5に記載の方法。
【請求項7】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、
行及び列に編成されたデータ配列を受け取る入力と、
前記列について列ECCパリティを計算し、前記列ECCパリティを含むように前記列を拡張する、列誤り訂正符号(ECC)符号器と、
前記データ配列の各行にヘッダを付加するマルチプレクサと、
前記結合された行及びヘッダについて行ECCパリティを計算し、前記行ECCパリティを含むように前記行を拡張する、行ECC符号器とを備え、
前記行ECC符号器は、前記ヘッダを付加する前の前記行について計算された行ECCパリティを更新するように構成された、装置。
【請求項8】
前記データ配列は、配列の形式に編成されたサブ・データ・セット(SDS)である、請求項7に記載の装置。
【請求項9】
前記列ECCパリティは、リード・ソロモン・パリティを含む、請求項7又は請求項8に記載の装置。
【請求項10】
前記行ECCパリティは、リード・ソロモン・パリティを含む、請求項7から請求項9までのいずれかに記載の装置。
【請求項11】
前記行は、L個のインターリーブされたデータ・ワードを含む、請求項7から請求項10までのいずれかに記載の装置。
【請求項12】
前記Lは、2及び4の一方に等しい、請求項11に記載の装置。
【請求項13】
請求項1から請求項6のいずれか1項に記載の全てのステップをコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テープ・ドライブに関し、より具体的には、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置及び方法に関する。
【背景技術】
【0002】
現在のLTO及びエンタープライズ・レベルのテープ・ドライブのような、一部のテープ・ドライブでは、可変長ブロックのデータが、ホスト・インターフェイスから受け取られ、データ・セットとして知られる固定ユニットに変換される。これらのデータ・セットは、典型的には、サブ・データ・セット(SDS)として知られる、より小さい固定ユニットに分解される。次いで、サブ・データ・セットに含まれるデータを保護するために、ユニットとしてのこれらのサブ・データ・セットに対して誤り訂正符号化が行われる。
【0003】
SDSの中のデータを保護するために、従来のテープ・ドライブは、サブ・データ・セットを行及び列で構成される2次元の配列に編成することができる。2次元の配列の各行は、複数(例えば、2又は4)個のインターリーブされたデータ・ワードで構成することができる。次いで、配列に含まれるデータを保護するために、配列の各行及び配列の各列について誤り訂正符号を生成することができる。これによって、行及び列の両方について保護されるため、本質的に配列の中のデータについて2次元の保護が与えられる。誤り訂正符号は、生成されると、磁気テープ媒体上に最終的に記憶するために配列に付加することができる。
【0004】
誤り訂正符号が配列に付加されると、1つ又は複数のヘッダを生成して配列の各行に付加することができる。これらのヘッダは、一般的には、配列の中のデータ・ワードに関連するアドレス指定情報及びメタ・データを格納する。これらのヘッダは、巡回冗長検査(CRC)といった誤り検出符号を含むことができるが、典型的には誤り訂正符号によって保護されない。ヘッダの中に誤り訂正符号を生成して格納することによって、ヘッダのサイズが増大し、記憶フォーマットの効率が望ましくないほど低下することがある。
【0005】
テープ記憶媒体の線記録密度が増え続けるにつれて、テープに格納されたデータ及びヘッダの誤り率も増えることが予想される。データにおける誤りは、配列に付加された誤り訂正符号を用いて訂正することができる。しかし、ヘッダにおける誤りは、ヘッダが誤り訂正符号よって保護されていないことがあるため、さらに問題となる。ヘッダが破損して修復できない場合には、そのヘッダによって参照されるデータの全部又は一部が失われることがある。トラック進行方向(along-track)及びトラック横断方向(across-track)の補間を用いてヘッダの誤りを検出及び訂正するための従来の技術は、高い線密度及びトラック密度のテープにおいてテープ・ヘッダを保護するのには十分ではない。さらに、トラック進行方向及びトラック横断方向の補間を可能にするフォーマットは、read-while-write(書き込み中同時読み取り)動作の際に誤りが検出されたデータを書き直すための柔軟性に制限がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
以上を鑑みると、必要とされるのは、現在又は将来のテープ記憶フォーマットにおけるヘッダをより効果的に保護するための装置及び方法である。より具体的には、書き換えの柔軟性の制限を招くことなくデータ及びヘッダの両方に十分な保護を与える、データ及びヘッダについての誤り訂正符号を生成する装置及び方法が必要とされる。そのような装置及び方法は、記憶フォーマットの効率を保ちながら、こうした保護を理想的に提供することになる。
【課題を解決するための手段】
【0007】
したがって、本発明は、第1の態様において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、行及び列に編成されたデータ配列を提供することと、列について列ECCパリティを計算することと、列ECCパリティを含むように列を拡張することと、列が拡張されたデータ配列の各行にヘッダを付加することと、結合された行及びヘッダについて行ECCパリティを計算することと、行ECCパリティを含むように行を拡張することと、を含む方法を提供する。
【0008】
好ましくは、データ配列は、配列の形式に編成されたサブ・データ・セット(SDS)である。好ましくは、列ECCパリティは、リード・ソロモン・パリティを含む。好ましくは、行ECCパリティは、リード・ソロモン・パリティを含む。好ましくは、行は、L個のインターリーブされたデータ・ワードを含む。好ましくは、Lは、2及び4の一方に等しい。好ましくは、行ECCパリティを含むように行を拡張することは、ヘッダを付加する前の行について計算された行ECCパリティを更新することを含む。
【0009】
第2の態様において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、行及び列に編成されたデータ配列を受け取る入力と、列について列ECCパリティを計算し、列ECCパリティを含むように列を拡張する、列誤り訂正符号(ECC)符号器と、データ配列の各行にヘッダを付加するマルチプレクサと、結合された行及びヘッダについて行ECCパリティを計算し、行ECCパリティを含むように行を拡張する、行ECC符号器と、を備える装置が提供される。
【0010】
好ましくは、データ配列は、配列の形式に編成されたサブ・データ・セット(SDS)である。好ましくは、列ECCパリティは、リード・ソロモン・パリティを含む。好ましくは、行ECCパリティは、リード・ソロモン・パリティを含む。好ましくは、行は、L個のインターリーブされたデータ・ワードを含む。好ましくは、Lは、2及び4の一方に等しい。好ましくは、行ECC符号器は、ヘッダを付加する前の行について計算された行ECCパリティを更新するように構成される。
【0011】
好ましくは、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、行及び列に編成されたデータの配列を受け取ることと、配列の中のデータの各行についてヘッダを含むように配列を拡張することと、配列の中のデータについて2次元の誤り訂正符号(ECC)による保護を与えることと、配列の中のヘッダについて1次元のECCによる保護を与えることと、を含む方法を提供することができる。
【0012】
好ましくは、データの配列は、配列の形式に編成されたサブ・データ・セット(SDS)である。好ましくは、データについて2次元の誤り訂正符号(ECC)による保護を与えることは、データの行及び列の両方についてECCパリティを提供することを含む。好ましくは、ECCパリティは、リード・ソロモン・パリティを含む。好ましくは、配列の中のヘッダについて1次元のECCによる保護を与えることは、ヘッダの行及び列の一方についてECCパリティを提供することを含む。好ましくは、ECCパリティは、リード・ソロモン・パリティを含む。
【0013】
さらに好ましくは、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、行及び列に編成されたデータの配列を受け取る入力と、配列の中のデータの各行についてヘッダを含むように配列を拡張するマルチプレクサと、配列の中のデータについて2次元の誤り訂正符号(ECC)による保護と配列の中のヘッダについて1次元のECCによる保護とを与える少なくとも1つの符号器と、を備える装置を提供することができる。
【0014】
好ましくは、データの配列は、配列の形式に編成されたサブ・データ・セット(SDS)である。好ましくは、少なくとも1つの符号器は、データの行及び列の両方についてECCパリティを提供する。好ましくは、少なくとも1つの符号器は、ヘッダの行及び列の一方についてECCパリティを提供する。
【0015】
第3の態様において、コンピュータ・システムにロードされ、そこで実行されるときに、コンピュータ・システムに、第1の態様に係る方法の全てのステップを実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムを提供する。
【0016】
上述のことに合致するように、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法が本明細書において開示される。1つの実施形態においては、そのような方法は、行及び列に編成されたデータ配列を提供することを含む。次いで、本方法は、列について列ECCパリティを生成し、その列ECCパリティをデータ配列に付加する。次いで、本方法は、1つ又は複数のヘッダを、列が拡張されたデータ配列の各行に付加する。次いで、本方法は、結合された行及びヘッダについて行ECCパリティを生成し、その行ECCパリティを含むようにデータ配列を拡張する。対応する装置もまた、本明細書に開示される。
【0017】
本発明の別の実施形態において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法は、行及び列に編成されたデータの配列を受け取ることを含む。配列は、配列の中のデータの各行について1つ又は複数のヘッダを含むように拡張される。本方法は、配列の中のデータについて2次元の誤り訂正符号(ECC)による保護と、配列の中のヘッダについて1次元のECCによる保護とを与える。対応する装置もまた、本明細書に開示される。
【図面の簡単な説明】
【0018】
【
図1】サブ・データ・セットから得られるデータ配列を保護するECCパリティを生成するための1つの従来技術の方法を示す高次ブロック図である。
【
図2】
図1の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図3】
図1の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図4】データ配列に付加されたヘッダについてECCパリティを生成し、格納するための1つの従来技術の方法を示す高次ブロック図である。
【
図5】種々の従来技術のテープ・ドライブにおけるデータの流れを示す高次ブロック図である。
【
図6】データ及びヘッダの保護を統合するように構成されたテープ・ドライブにおけるデータの流れの1つの実施形態を示す高次ブロック図である。
【
図7】データ及びヘッダの両方を保護するECCパリティを生成するための方法の1つの実施形態を示す高次ブロック図である。
【
図8】
図7の方法を用いてどのようにECCパリティ情報が生成され、データ配列に格納されるかを示す図である。
【
図9】データ及びヘッダの両方を保護するECCパリティを生成するための方法の代替的な実施形態を示す高次ブロック図である。
【
図10】
図9の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図11】
図9の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図12】データ及びヘッダの両方を保護するECCパリティを生成するための方法の更に別の実施形態を示す高次ブロック図である。
【
図13】
図12の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図14】
図12の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す図である。
【
図15】結合されたSDSデータ及びヘッダについて行ECCパリティを計算するための符号器回路の1つの実施形態を示す高次ブロック図である。
【発明を実施するための形態】
【0019】
ここで、本発明の好ましい実施形態を、添付の図面を参照して、例示のみの目的で説明する。
【0020】
ここで図中に一般的に記載され、図示されるような本発明の構成要素は、広範な様々に異なる構成で配置され、設計することが可能であることは、容易に理解されるであろう。したがって、図面に表されるような本発明の実施形態の以下のより詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、単に、本発明による現時点で企図される実施形態の特定の例を表したものに過ぎない。以下、説明する実施形態は、図面を参照することで最も良く理解され、図面全体を通じて同様の部分は同様の符号で指示される。
【0021】
当業者には理解されるように、本発明は、装置、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。さらに、本発明は、ハードウェアの実施形態、ハードウェアを動作させるように構成されたソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの要素とハードウェアの要素とを組み合わせた実施形態の形態をとることができる。これらの実施形態の各々は、1つ又は複数のモジュール又はブロックとして表現することができる。さらに、本発明は、内部に格納されたコンピュータ使用可能プログラム・コードを有する表現のいずれかの有形媒体として具体化された、コンピュータ可読ストレージ媒体の形態をとることができる。
【0022】
1つ又は複数のコンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体の任意の組み合わせを、コンピュータ・プログラム製品を格納するために用いることができる。コンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置又はデバイスとすることができるが、これらに限定されるものではない。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)として、以下のもの、即ち、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(CDROM)、光記憶装置、又は磁気記憶装置が挙げられる。本明細書の文脈において、コンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はそれらとの関連で使用するためのプログラムを収容し、格納し又は搬送することが可能な、任意の媒体とすることができる。
【0023】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java、SmallTalk、C++等のようなオブジェクト指向型プログラミング言語、及び、「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。本発明を実装するためのコンピュータ・プログラム・コードは、アセンブリ言語のような低級プログラミング言語で記述することもできる。
【0024】
本発明は、以下において、本発明の実施形態による方法、装置、システム、及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明することができる。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令又はコードによって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることができる。
【0025】
コンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置を特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、そのコンピュータ可読ストレージ媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令手段を含む製品を製造するようにすることもできる。コンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置上にロードして、コンピュータ又は他のプログラム可能データ処理装置上で実行される一連の動作ステップによりコンピュータ実施のプロセスを生成し、その結果、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するプロセスをもたらすようにすることもできる。
【0026】
図1を参照すると、データ配列即ちサブ・データ・セット(SDS)について、ECCパリティを生成する1つの従来技術の方法が示される。
図2及び
図3は、
図1の方法を用いてどのようにECCパリティ情報が生成され、データ配列に付加されるかを示す。
図1に示されるように、ECC符号器100が、行及び列を含む配列102に編成されたSDSに作用する。SDSの中のデータ102を保護するために、ECC符号器100は、
図2に示されるように、配列102の各行についてECCパリティ104を生成し、そのECCパリティ104を配列102に付加する。同様に、ECC符号器100は、行ECCパリティ104の各列を含む配列102の各列についてECCパリティ106を生成し、そのECCパリティ106を配列102に付加する。第1のステップで行ECCパリティ104を生成し、第2のステップで列ECCパリティ106を生成するか、第1のステップで列ECCパリティ106を生成し、第2のステップで行ECCパリティ104を生成するかにかかわらず、符号化されたデータ配列が同じになることは、当業者には周知である。
【0027】
ECCパリティ104及び106が生成され、配列102に付加されると、マルチプレクサ110が、1つ又は複数のヘッダ108を、拡張されたSDS配列102の各行に付加する。これらのヘッダ108は、配列102(列ECCパリティ106及び行ECCパリティ104を含む)の各行に関連するアドレス指定情報及び他のメタ・データを含む。これらのヘッダ108は、巡回冗長検査(CRC)のような誤り検出符号を含むことができるが、典型的には誤り訂正符号によって保護されない。誤り検出符号は、ヘッダ108における誤りを検出するために用いることができるが、誤りを訂正するためには十分ではない。ヘッダ108が破損して修復できない場合には、そのヘッダ108によって参照されるデータ102(列ECCパリティ106及び行ECCパリティ104を含む)の全部又は一部が失われることがある。
【0028】
図4を参照すると、データ配列102(列ECCパリティ106及び行ECCパリティ104を含む)に付加されたヘッダ108についてECCパリティを生成して格納する1つの従来技術の方法が示される。この例では、上述のように、ECC符号器100がECCパリティを生成してデータ配列102に付加する。しかし、別個のECC符号器200がヘッダ108について別個のECCパリティを生成して、そのECCパリティをヘッダ108に付加する。次いで、ヘッダ108及びECCパリティは、データ配列102(列ECCパリティ106及び行ECCパリティ104を含む)の行に付加することができる。誤り訂正符号を生成してヘッダ108に格納することは、効果的ではあるが、ヘッダ108のサイズを著しく増大させ、記憶フォーマットの効率を望ましくないほど低下させることがある。
【0029】
図5を参照すると、種々の従来技術のテープ・ドライブにおけるデータの流れ300を示す高次ブロック図が示される。図示されるように、CRCモジュール302が、可変長のデータのブロックをホスト・デバイスから受け取る。CRCモジュール302は、これらのブロックにCRC情報を加えることができる。次いで、圧縮モジュール304がブロックを圧縮することができ、暗号化モジュール306が必要に応じてブロックを暗号化することができる。次いで、データのブロックは、サブ・データ・セットに分解され、ECC符号器100に渡すことができる。ECC符号器100は、データ配列102の各行及びデータ配列102の各列について、ECCパリティ104及びECCパリティ106を生成し、そのECCパリティ104及びECCパリティ106を配列102に付加することができる。
【0030】
ECCパリティ104及びECCパリティ106が配列102に付加されると、マルチプレクサ110が、ヘッダ108をデータ配列102(列ECCパリティ106及び行ECCパリティ104を含む)の行に付加することができる。ヘッダ108は、CRCのような誤り検出符号を含むことができる。次いで、テープ・レイアウト・モジュール308が、データ配列102、ECCパリティ104、ECCパリティ106、及びヘッダ108を、磁気テープ上に、異なるトラックに渡って異なる順序で割り当てることができる。次いで、そのデータの並びは、データに対して追加のシグナル処理を行うランダマイザ310で処理することができる。次いで、ラン・レングス符号器312が、情報のスペクトルを磁気記録により適したものとなるように変形することができる。次いで、マルチプレクサ314が、その情報に、可変周波数発振器(VFO)又は同期文字等のような同期情報を多重化して、読み出すときに同期を取ることが可能となるようにすることができる。次いで、結果として得られるデータは、書き込みドライバ(図示せず)に送ることができ、書き込みドライバは、記録ヘッド・エレメントに電流を流して磁束を発生させ、それによって磁気記録媒体にデータを書き込むようにすることができる。一般的に、マルチプレクサ110より右側にある各ブロック又はモジュールは、データが磁気記録により適したものとなるように、データをさまざまに変形させるものである。
【0031】
図6を参照すると、データ及びヘッダの保護を統合するデータの流れ400を示す高次ブロック図が示される。図示されるように、CRCモジュール302がホスト・デバイスから可変長のブロックを受け取って、CRC情報をこれらのブロックに加える。圧縮モジュール304がブロックを圧縮することができ、暗号化モジュール306が必要に応じてブロックを暗号化することができる。次いで、データのブロックは、サブ・データ・セットに分解され、列ECC符号器112に渡すことができる。次いで、列ECC符号器112は、データ配列102の各列についてECCパリティ106を生成し、そのECCパリティ106を配列102に付加することができる。
【0032】
列ECCパリティ106が生成され、配列102に付加されると、マルチプレクサ110が、ヘッダ108を配列102の行に付加する。次いで、拡張された配列102は、配列102の各列について行ECCパリティを生成する行ECC符号器114に渡すことができる。列ECC符号器112及び行ECC符号器114の機能及び利点については、
図7及び
図8との関連でより詳細に説明する。データ102及びヘッダ108についてECCパリティ情報が生成されると、テープ・レイアウト・モジュール308、ランダマイザ310、ラン・レングス符号器312、及びマルチプレクサ314が、ECC符号化されたデータが磁気記録により適したものとなるように、ECC符号化されたデータを前述の方法で変形させることができる。
【0033】
図7を参照すると、SDSデータ102及びヘッダ108の両方を保護するためのECCパリティを生成する方法の1つの実施形態が示される。
図8は、
図7の方法を用いてどのようにECCパリティ情報が生成され、SDSデータ配列102に付加されるかを示す。前述した通り、列ECC符号器112は、データ配列102を受け取ると、
図8に示されるように、配列102の各列についてECCパリティ106を生成し、そのECCパリティ106を配列102に付加する。次いで、マルチプレクサ110は、ヘッダ108を配列102(列ECCパリティ106を含む)の行に付加する。ヘッダ108の位置は任意であり、これは、ヘッダ108を、各行の先頭に、各行の末尾に、各行にインターリーブして、等のように配置することができることを意味する。
【0034】
次いで、拡張された配列102(即ち、SDSデータ102、ヘッダ108、及び列ECCパリティ106)は、行ECC符号器114に渡すことができ、行ECC符号器114は、(SDSデータ102、列ECCパリティ106、及びヘッダ108を含む)各行についてECCパリティ104を生成し、そのECCパリティ104を拡張された配列102に付加することができる。したがって、行ECC符号器114は、結合されたSDSデータ102、列ECCパリティ106及びヘッダ108について、行ECCパリティ104を生成する。これによって、本質的に、SDSデータ102について2次元の保護が与えられ(即ち、行ECCパリティ104及び列ECCパリティ106の両方を与えることによって)、同時に、(行ECCパリティ104のみを与えることによって)ヘッダ108について1次元の保護が与えられる。この技術は、フォーマットの効率を保ちつつ、ヘッダ108についての十分な保護をもたらす。
【0035】
例えば、SDSデータ102及びヘッダ108が上述の方法で保護されていると仮定する。SDSデータ102、行ECCパリティ104、列ECCパリティ106、及びヘッダ108がテープに書き込まれ、read-while-writeの過程でヘッダ108に誤りが検出された場合には、データ102及びヘッダ108は、磁気媒体に再書込みされることがある。しかし、ヘッダ108は、その中に含まれるアドレス指定及びメタ・データを更新するために、再書込みの実施に先立って変更されることが必要な場合がある。他方、データ102は、変更されないままの場合がある。ヘッダ108は、1次元のECCパリティで保護されている(即ち、行ECCパリティ104によって保護されている)ため、行ECCパリティ104及び列ECCパリティ106の両方を再計算する必要性(これは、集中的な計算を要し、フォーマットの効率を著しく低下させる可能性がある)とは対照的に、更新されたヘッダ108について行ECCパリティ104を再計算するだけで十分である。さらに、ヘッダ108が変化した行について行ECCパリティ104を再計算するだけで十分である。したがって、1次元のECC保護でヘッダ108を保護することによって、フォーマットの効率を依然として保ちながら、ヘッダ108の適切な保護がもたらされる。
【0036】
幾つかの実施形態においては、SDS配列102の各行がインターリーブされたデータ・ワードで構成できることに留意すべきである。例として、SDS配列102の各列は、各々が234バイトである4つのインターリーブされたデータ・ワードを含み、各行が936バイトの長さのものとすることができる。データ・ワードは、バイトごとに、又は他の適切な基準で、インターリーブすることができる。同様に、行ECCパリティ104及び行に関連するヘッダ108もまた、インターリーブすることができる。例えば、各々が3バイトである4つのインターリーブされたヘッダ108(行のデータ・ワードごとに1つ)を配列102の各行に関連付けて、ヘッダ108の各行を12バイトの長さとすることができる。ヘッダ108は、バイトごとに、又は他の適切な基準で、インターリーブすることができる。同様に、各々が12バイトである4つのインターリーブされた行ECCパリティ符号104(行のデータ・ワードごとに1つ)を配列102の各行に関連付けて、ECCパリティ符号104の各行を48バイトの長さとすることができる。行ECCパリティ符号104は、バイトごとに、又は他の適切な基準で、インターリーブすることができる。以上で与えられた数値を用いれば、各行(ヘッダ108、SDSデータ102、及び行ECCパリティ104を含む)は、996バイトの長さとなる。これらの数値は、例示のみの目的で与えられたものであり、これに限定することを意図するものではない。また、全ての実施形態において、必ずしもインターリーブを用いる必要はない。
【0037】
本発明者は、上で与えられた数値(即ち、各データ・ワードについて234バイト、各ヘッダ108について3バイト、及び、各行ECCパリティ104について12バイト)を用いて、結合されたヘッダ108及びデータ・ワード102のうちの5バイトまでは、12バイトの行ECCパリティ104を用いて訂正することができることを見出した。さらに、12バイトの行ECCパリティ104を用いて、ヘッダ108の3バイトの全てを訂正することができる。データがインターリーブされている場合には、訂正失敗の確率を減らすために誤り訂正能力のうち1バイトの余力が用いられると仮定すると、12個までの連続するインターリーブしたバイトを訂正することができる。要するに、ヘッダ及びデータの保護を統合することは、ヘッダ108及びデータ102をECCパリティで独立して保護することよりも著しく効率的である。
【0038】
図9を参照すると、SDSデータ102及びヘッダ108の両方を保護するためのECCパリティを生成する1つの代替的な実施形態が示される。
図10及び
図11は、
図9の方法を用いてどのようにECCパリティ情報が生成され、データ配列102に付加されるかを示す。この実施形態では、SDS配列102を受け取ると、行ECC符号器114が、
図10に示されるように、SDSデータ102について行ECCパリティ104を生成し、それを配列102に付加する。次いで、列ECC符号器112が、
図10に更に示されるように、SDS配列102(行ECCパリティ104を含む)の各列についてECCパリティ106を生成し、そのECCパリティ106を配列102に付加する。次いで、マルチプレクサ110は、
図11に示されるように、ヘッダ108を行に付加することができる。次いで、拡張された配列102(即ち、SDSデータ102、ヘッダ108、及び列ECCパリティ106)は、この時点ではヘッダ108を含んでいる各行について行ECCパリティ104を更新するために、同一の又は異なる行ECC符号器116に渡すことができる。このように、SDSデータ102について2次元のECC保護を与えることができ、ヘッダ108について1次元のECC保護を与えることができる。この技術を用いることの1つの潜在的な利点は、
図1の方法を実装するために用いられるような従来のECC符号化ハードウェアをより容易に使用できることである。
【0039】
図12を参照すると、SDSデータ102及びヘッダ108の両方を保護するためのECCパリティを生成する方法の更に別の実施形態が示される。
図13及び
図14は、
図12の方法を用いてどのようにECCパリティ情報が生成され、SDS配列102に付加されるかを示す。この実施形態では、サブ・データ・セット102を受け取ると、列ECC符号器112が、
図13に示されるように、SDS配列102の各列についてECCパリティ106を生成し、そのECCパリティ106を配列102に付加する。次いで、行ECC符号器114が、
図13に更に示されるように、SDS配列102(及び、列ECCパリティ106)について行ECCパリティ104を生成し、その行ECCパリティ104を配列102に付加する。次いで、マルチプレクサ110が、
図14に示されるように、ヘッダ108を行に付加することができる。次いで、拡張された配列102(即ち、SDSデータ102、ヘッダ108、及び列ECCパリティ106)は、この時点ではヘッダ108を含んでいる各行について行ECCパリティ104を更新するために、同一の行ECC符号器116又は異なる行ECC符号器116のいずれかに渡すことができる。このように、SDSデータ102について2次元のECC保護を与えることができ、ヘッダ108について1次元のECC保護を与えることができる。
【0040】
図15を参照すると、結合されたSDSデータ102及びヘッダ108について行ECCパリティ104を計算するための符号器回路800の1つの実施形態が示される。より具体的には、符号器回路800は、結合されたSDSデータ102及びヘッダ108についてリード・ソロモンECCパリティ104を計算するように構成される。図示されるように、符号器回路800は、この例においては12個のレジスタ802(R0、R1、…、R11として示される)である多数のレジスタ802を含み、レジスタの各々は、1バイトのデータのようなシンボルを格納する。レジスタ802は、フィードバックを伴って連続的に接続される。符号器回路800は、図示されるような方法で、レジスタ802と情報をやりとりする11個の乗算器804(各々は、αのn乗として表現されている)を更に含む。乗算器804の各々は、入力値にある定数α
nを乗算する。その積は、レジスタの値と加算され、次のレジスタに格納される。
【0041】
図示された実施例において、回路800は、234バイトのデータ・ワード及び3バイトのヘッダ108について12バイトのリード・ソロモン・パリティ104を生成するものと仮定する。リード・ソロモン・パリティ104を生成するために、レジスタ802の値は、初めに0に設定される。次いで、データ・ワード及びヘッダのバイトは、入力線806を通して1バイトごとに順番に符号器回路800に送られる。全てのバイトが入力線806に送られると、レジスタ802は、12バイトのリード・ソロモン・パリティ104を格納することになる。(
図9及び
図12との関連で説明したように)SDS配列102の行がヘッダ108を伴って更新されたときなどに、リード・ソロモン・パリティ104を更新するために、以前のリード・ソロモン・パリティ104がレジスタ802に単にロードされる。次いで、新たに加えられたヘッダ108のバイトは、入力線806を通して1バイトごとに順番に符号器回路800に送られる。ヘッダ108の全てのバイト又はヘッダ108の一部(例えば、12バイトのヘッダの中の3バイト)が入力線806に送られると、レジスタ802は、更新された12バイトのリード・ソロモン・パリティ104を格納することになる。同様の符号化機構を用いて、符号化されたSDSの行における他のインターリーブに関連したリード・ソロモン・パリティを更新することができる。
【0042】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ使用可能媒体の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、1つ又は複数の特定の論理機能を実行するための1つ又は複数の実行可能命令を含むモジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装においては、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われる場合があることにも留意すべきである。例えば、連続して示された2つのブロックが、関与する機能に応じて、実際には実質的に同時に実行されることもあり、これらのブロックが、ときには逆の順序で実行されることもある。また、ブロック図及び/又はフローチャート図の各ブロック、並びに、ブロック図及び/又はフローチャート図のブロックの組み合わせは、特定の機能又は動作を実行する専用ハードウェアをベースとするシステム、又は、専用ハードウェアとコンピュータ命令との組み合わせによって、実装できることにも留意されたい。
【符号の説明】
【0043】
100、200:ECC符号器
102:SDSの中のデータ
104:行ECCパリティ
106:列ECCパリティ
108:ヘッダ
110、314:マルチプレクサ
112:列ECC符号器
114、116:行ECC符号器
300、400:データの流れ
302:CRCモジュール
304:圧縮モジュール
306:暗号化モジュール
308:テープ・レイアウト・モジュール
310:ランダマイザ
312:ラン・レングス符号器
800:符号器回路
802:レジスタ
804:乗算器
806:入力線