(57)【要約】【課題】  テープ記憶フォーマットにおけるヘッダをより効果的に保護するための装置及び方法を提供する。【解決手段】  テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法は、行及び列に編成されたデータの配列を受け取ることを含む。配列は、配列の中のデータの各行について１つ又は複数のヘッダを含むように拡張される。本方法は、配列の中のデータについて２次元の誤り訂正符号（ＥＣＣ）による保護を与え、配列の中のヘッダについて１次元のＥＣＣによる保護を与える。対応する装置もまた、本明細書に開示される。【選択図】      図６
2013525933.tif 000002
【特許請求の範囲】
【請求項１】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、
行及び列に編成されたデータ配列を提供することと、
前記列について列ＥＣＣパリティを計算することと、
前記列ＥＣＣパリティを含むように前記列を拡張することと、
前記列が拡張されたデータ配列の各行にヘッダを付加することと、
前記結合された行及びヘッダについて行ＥＣＣパリティを計算することと、
前記行ＥＣＣパリティを含むように前記行を拡張することと、
を含む方法。
【請求項２】
前記データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である、請求項１に記載の方法。
【請求項３】
前記列ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記行ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項１から請求項３までのいずれかに記載の方法。
【請求項５】
前記行は、Ｌ個のインターリーブされたデータ・ワードを含む、前記請求項のいずれかに記載の方法。
【請求項６】
前記Ｌは、２及び４の一方に等しい、請求項５に記載の方法。
【請求項７】
前記行ＥＣＣパリティを含むように前記行を拡張することは、前記ヘッダを付加する前の前記行について計算された行ＥＣＣパリティを更新することを含む、前記請求項のいずれかに記載の方法。
【請求項８】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、
行及び列に編成されたデータ配列を受け取る入力と、
前記列について列ＥＣＣパリティを計算し、前記列ＥＣＣパリティを含むように前記列を拡張する、列誤り訂正符号（ＥＣＣ）符号器と、
前記データ配列の各行にヘッダを付加するマルチプレクサと、
前記結合された行及びヘッダについて行ＥＣＣパリティを計算し、前記行ＥＣＣパリティを含むように前記行を拡張する、行ＥＣＣ符号器と、
を備える装置。
【請求項９】
前記データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である、請求項８に記載の装置。
【請求項１０】
前記列ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項８又は請求項９に記載の装置。
【請求項１１】
前記行ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項８から請求項１０までのいずれかに記載の装置。
【請求項１２】
前記行は、Ｌ個のインターリーブされたデータ・ワードを含む、請求項８から請求項１１までのいずれかに記載の装置。
【請求項１３】
前記Ｌは、２及び４の一方に等しい、請求項１２に記載の装置。
【請求項１４】
前記行ＥＣＣ符号器は、前記ヘッダを付加する前の前記行について計算された行ＥＣＣパリティを更新するように構成された、請求項８から請求項１３までのいずれかに記載の装置。
【請求項１５】
コンピュータ・システムにロードされ、そこで実行されるときに、前記コンピュータ・システムに、請求項１から請求項７までのいずれかに記載の方法の全てのステップを実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ・ドライブに関し、より具体的には、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置及び方法に関する。
【背景技術】
【０００２】
現在のＬＴＯ及びエンタープライズ・レベルのテープ・ドライブのような、一部のテープ・ドライブでは、可変長ブロックのデータが、ホスト・インターフェイスから受け取られ、データ・セットとして知られる固定ユニットに変換される。これらのデータ・セットは、典型的には、サブ・データ・セット（ＳＤＳ）として知られる、より小さい固定ユニットに分解される。次いで、サブ・データ・セットに含まれるデータを保護するために、ユニットとしてのこれらのサブ・データ・セットに対して誤り訂正符号化が行われる。
【０００３】
ＳＤＳの中のデータを保護するために、従来のテープ・ドライブは、サブ・データ・セットを行及び列で構成される２次元の配列に編成することができる。２次元の配列の各行は、複数（例えば、２又は４）個のインターリーブされたデータ・ワードで構成することができる。次いで、配列に含まれるデータを保護するために、配列の各行及び配列の各列について誤り訂正符号を生成することができる。これによって、行及び列の両方について保護されるため、本質的に配列の中のデータについて２次元の保護が与えられる。誤り訂正符号は、生成されると、磁気テープ媒体上に最終的に記憶するために配列に付加することができる。
【０００４】
誤り訂正符号が配列に付加されると、１つ又は複数のヘッダを生成して配列の各行に付加することができる。これらのヘッダは、一般的には、配列の中のデータ・ワードに関連するアドレス指定情報及びメタ・データを格納する。これらのヘッダは、巡回冗長検査（ＣＲＣ）といった誤り検出符号を含むことができるが、典型的には誤り訂正符号によって保護されない。ヘッダの中に誤り訂正符号を生成して格納することによって、ヘッダのサイズが増大し、記憶フォーマットの効率が望ましくないほど低下することがある。
【０００５】
テープ記憶媒体の線記録密度が増え続けるにつれて、テープに格納されたデータ及びヘッダの誤り率も増えることが予想される。データにおける誤りは、配列に付加された誤り訂正符号を用いて訂正することができる。しかし、ヘッダにおける誤りは、ヘッダが誤り訂正符号よって保護されていないことがあるため、さらに問題となる。ヘッダが破損して修復できない場合には、そのヘッダによって参照されるデータの全部又は一部が失われることがある。トラック進行方向（along-track）及びトラック横断方向（across-track）の補間を用いてヘッダの誤りを検出及び訂正するための従来の技術は、高い線密度及びトラック密度のテープにおいてテープ・ヘッダを保護するのには十分ではない。さらに、トラック進行方向及びトラック横断方向の補間を可能にするフォーマットは、read-while-write（書き込み中同時読み取り）動作の際に誤りが検出されたデータを書き直すための柔軟性に制限がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上を鑑みると、必要とされるのは、現在又は将来のテープ記憶フォーマットにおけるヘッダをより効果的に保護するための装置及び方法である。より具体的には、書き換えの柔軟性の制限を招くことなくデータ及びヘッダの両方に十分な保護を与える、データ及びヘッダについての誤り訂正符号を生成する装置及び方法が必要とされる。そのような装置及び方法は、記憶フォーマットの効率を保ちながら、こうした保護を理想的に提供することになる。
【課題を解決するための手段】
【０００７】
したがって、本発明は、第１の態様において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、行及び列に編成されたデータ配列を提供することと、列について列ＥＣＣパリティを計算することと、列ＥＣＣパリティを含むように列を拡張することと、列が拡張されたデータ配列の各行にヘッダを付加することと、結合された行及びヘッダについて行ＥＣＣパリティを計算することと、行ＥＣＣパリティを含むように行を拡張することと、を含む方法を提供する。
【０００８】
好ましくは、データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である。好ましくは、列ＥＣＣパリティは、リード・ソロモン・パリティを含む。好ましくは、行ＥＣＣパリティは、リード・ソロモン・パリティを含む。好ましくは、行は、Ｌ個のインターリーブされたデータ・ワードを含む。好ましくは、Ｌは、２及び４の一方に等しい。好ましくは、行ＥＣＣパリティを含むように行を拡張することは、ヘッダを付加する前の行について計算された行ＥＣＣパリティを更新することを含む。
【０００９】
第２の態様において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、行及び列に編成されたデータ配列を受け取る入力と、列について列ＥＣＣパリティを計算し、列ＥＣＣパリティを含むように列を拡張する、列誤り訂正符号（ＥＣＣ）符号器と、データ配列の各行にヘッダを付加するマルチプレクサと、結合された行及びヘッダについて行ＥＣＣパリティを計算し、行ＥＣＣパリティを含むように行を拡張する、行ＥＣＣ符号器と、を備える装置が提供される。
【００１０】
好ましくは、データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である。好ましくは、列ＥＣＣパリティは、リード・ソロモン・パリティを含む。好ましくは、行ＥＣＣパリティは、リード・ソロモン・パリティを含む。好ましくは、行は、Ｌ個のインターリーブされたデータ・ワードを含む。好ましくは、Ｌは、２及び４の一方に等しい。好ましくは、行ＥＣＣ符号器は、ヘッダを付加する前の行について計算された行ＥＣＣパリティを更新するように構成される。
【００１１】
好ましくは、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、行及び列に編成されたデータの配列を受け取ることと、配列の中のデータの各行についてヘッダを含むように配列を拡張することと、配列の中のデータについて２次元の誤り訂正符号（ＥＣＣ）による保護を与えることと、配列の中のヘッダについて１次元のＥＣＣによる保護を与えることと、を含む方法を提供することができる。
【００１２】
好ましくは、データの配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である。好ましくは、データについて２次元の誤り訂正符号（ＥＣＣ）による保護を与えることは、データの行及び列の両方についてＥＣＣパリティを提供することを含む。好ましくは、ＥＣＣパリティは、リード・ソロモン・パリティを含む。好ましくは、配列の中のヘッダについて１次元のＥＣＣによる保護を与えることは、ヘッダの行及び列の一方についてＥＣＣパリティを提供することを含む。好ましくは、ＥＣＣパリティは、リード・ソロモン・パリティを含む。
【００１３】
さらに好ましくは、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、行及び列に編成されたデータの配列を受け取る入力と、配列の中のデータの各行についてヘッダを含むように配列を拡張するマルチプレクサと、配列の中のデータについて２次元の誤り訂正符号（ＥＣＣ）による保護と配列の中のヘッダについて１次元のＥＣＣによる保護とを与える少なくとも１つの符号器と、を備える装置を提供することができる。
【００１４】
好ましくは、データの配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である。好ましくは、少なくとも１つの符号器は、データの行及び列の両方についてＥＣＣパリティを提供する。好ましくは、少なくとも１つの符号器は、ヘッダの行及び列の一方についてＥＣＣパリティを提供する。
【００１５】
第３の態様において、コンピュータ・システムにロードされ、そこで実行されるときに、コンピュータ・システムに、第１の態様に係る方法の全てのステップを実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムを提供する。
【００１６】
上述のことに合致するように、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法が本明細書において開示される。１つの実施形態においては、そのような方法は、行及び列に編成されたデータ配列を提供することを含む。次いで、本方法は、列について列ＥＣＣパリティを生成し、その列ＥＣＣパリティをデータ配列に付加する。次いで、本方法は、１つ又は複数のヘッダを、列が拡張されたデータ配列の各行に付加する。次いで、本方法は、結合された行及びヘッダについて行ＥＣＣパリティを生成し、その行ＥＣＣパリティを含むようにデータ配列を拡張する。対応する装置もまた、本明細書に開示される。
【００１７】
本発明の別の実施形態において、テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法は、行及び列に編成されたデータの配列を受け取ることを含む。配列は、配列の中のデータの各行について１つ又は複数のヘッダを含むように拡張される。本方法は、配列の中のデータについて２次元の誤り訂正符号（ＥＣＣ）による保護と、配列の中のヘッダについて１次元のＥＣＣによる保護とを与える。対応する装置もまた、本明細書に開示される。
【図面の簡単な説明】
【００１８】
【図１】サブ・データ・セットから得られるデータ配列を保護するＥＣＣパリティを生成するための１つの従来技術の方法を示す高次ブロック図である。
【図２】図１の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図３】図１の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図４】データ配列に付加されたヘッダについてＥＣＣパリティを生成し、格納するための１つの従来技術の方法を示す高次ブロック図である。
【図５】種々の従来技術のテープ・ドライブにおけるデータの流れを示す高次ブロック図である。
【図６】データ及びヘッダの保護を統合するように構成されたテープ・ドライブにおけるデータの流れの１つの実施形態を示す高次ブロック図である。
【図７】データ及びヘッダの両方を保護するＥＣＣパリティを生成するための方法の１つの実施形態を示す高次ブロック図である。
【図８】図７の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に格納されるかを示す図である。
【図９】データ及びヘッダの両方を保護するＥＣＣパリティを生成するための方法の代替的な実施形態を示す高次ブロック図である。
【図１０】図９の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図１１】図９の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図１２】データ及びヘッダの両方を保護するＥＣＣパリティを生成するための方法の更に別の実施形態を示す高次ブロック図である。
【図１３】図１２の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図１４】図１２の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す図である。
【図１５】結合されたＳＤＳデータ及びヘッダについて行ＥＣＣパリティを計算するための符号器回路の１つの実施形態を示す高次ブロック図である。
【発明を実施するための形態】
【００１９】
ここで、本発明の好ましい実施形態を、添付の図面を参照して、例示のみの目的で説明する。
【００２０】
ここで図中に一般的に記載され、図示されるような本発明の構成要素は、広範な様々に異なる構成で配置され、設計することが可能であることは、容易に理解されるであろう。したがって、図面に表されるような本発明の実施形態の以下のより詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、単に、本発明による現時点で企図される実施形態の特定の例を表したものに過ぎない。以下、説明する実施形態は、図面を参照することで最も良く理解され、図面全体を通じて同様の部分は同様の符号で指示される。
【００２１】
当業者には理解されるように、本発明は、装置、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。さらに、本発明は、ハードウェアの実施形態、ハードウェアを動作させるように構成されたソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの要素とハードウェアの要素とを組み合わせた実施形態の形態をとることができる。これらの実施形態の各々は、１つ又は複数のモジュール又はブロックとして表現することができる。さらに、本発明は、内部に格納されたコンピュータ使用可能プログラム・コードを有する表現のいずれかの有形媒体として具体化された、コンピュータ可読ストレージ媒体の形態をとることができる。
【００２２】
１つ又は複数のコンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体の任意の組み合わせを、コンピュータ・プログラム製品を格納するために用いることができる。コンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置又はデバイスとすることができるが、これらに限定されるものではない。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、以下のもの、即ち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤＲＯＭ）、光記憶装置、又は磁気記憶装置が挙げられる。本明細書の文脈において、コンピュータ使用可能ストレージ媒体又はコンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はそれらとの関連で使用するためのプログラムを収容し、格納し又は搬送することが可能な、任意の媒体とすることができる。
【００２３】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、ＳｍａｌｌＴａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。本発明を実装するためのコンピュータ・プログラム・コードは、アセンブリ言語のような低級プログラミング言語で記述することもできる。
【００２４】
本発明は、以下において、本発明の実施形態による方法、装置、システム、及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明することができる。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令又はコードによって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する手段を作り出すようにすることができる。
【００２５】
コンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置を特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、そのコンピュータ可読ストレージ媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令手段を含む製品を製造するようにすることもできる。コンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置上にロードして、コンピュータ又は他のプログラム可能データ処理装置上で実行される一連の動作ステップによりコンピュータ実施のプロセスを生成し、その結果、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するプロセスをもたらすようにすることもできる。
【００２６】
図１を参照すると、データ配列即ちサブ・データ・セット（ＳＤＳ）について、ＥＣＣパリティを生成する１つの従来技術の方法が示される。図２及び図３は、図１の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列に付加されるかを示す。図１に示されるように、ＥＣＣ符号器１００が、行及び列を含む配列１０２に編成されたＳＤＳに作用する。ＳＤＳの中のデータ１０２を保護するために、ＥＣＣ符号器１００は、図２に示されるように、配列１０２の各行についてＥＣＣパリティ１０４を生成し、そのＥＣＣパリティ１０４を配列１０２に付加する。同様に、ＥＣＣ符号器１００は、行ＥＣＣパリティ１０４の各列を含む配列１０２の各列についてＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０６を配列１０２に付加する。第１のステップで行ＥＣＣパリティ１０４を生成し、第２のステップで列ＥＣＣパリティ１０６を生成するか、第１のステップで列ＥＣＣパリティ１０６を生成し、第２のステップで行ＥＣＣパリティ１０４を生成するかにかかわらず、符号化されたデータ配列が同じになることは、当業者には周知である。
【００２７】
ＥＣＣパリティ１０４及び１０６が生成され、配列１０２に付加されると、マルチプレクサ１１０が、１つ又は複数のヘッダ１０８を、拡張されたＳＤＳ配列１０２の各行に付加する。これらのヘッダ１０８は、配列１０２（列ＥＣＣパリティ１０６及び行ＥＣＣパリティ１０４を含む）の各行に関連するアドレス指定情報及び他のメタ・データを含む。これらのヘッダ１０８は、巡回冗長検査（ＣＲＣ）のような誤り検出符号を含むことができるが、典型的には誤り訂正符号によって保護されない。誤り検出符号は、ヘッダ１０８における誤りを検出するために用いることができるが、誤りを訂正するためには十分ではない。ヘッダ１０８が破損して修復できない場合には、そのヘッダ１０８によって参照されるデータ１０２（列ＥＣＣパリティ１０６及び行ＥＣＣパリティ１０４を含む）の全部又は一部が失われることがある。
【００２８】
図４を参照すると、データ配列１０２（列ＥＣＣパリティ１０６及び行ＥＣＣパリティ１０４を含む）に付加されたヘッダ１０８についてＥＣＣパリティを生成して格納する１つの従来技術の方法が示される。この例では、上述のように、ＥＣＣ符号器１００がＥＣＣパリティを生成してデータ配列１０２に付加する。しかし、別個のＥＣＣ符号器２００がヘッダ１０８について別個のＥＣＣパリティを生成して、そのＥＣＣパリティをヘッダ１０８に付加する。次いで、ヘッダ１０８及びＥＣＣパリティは、データ配列１０２（列ＥＣＣパリティ１０６及び行ＥＣＣパリティ１０４を含む）の行に付加することができる。誤り訂正符号を生成してヘッダ１０８に格納することは、効果的ではあるが、ヘッダ１０８のサイズを著しく増大させ、記憶フォーマットの効率を望ましくないほど低下させることがある。
【００２９】
図５を参照すると、種々の従来技術のテープ・ドライブにおけるデータの流れ３００を示す高次ブロック図が示される。図示されるように、ＣＲＣモジュール３０２が、可変長のデータのブロックをホスト・デバイスから受け取る。ＣＲＣモジュール３０２は、これらのブロックにＣＲＣ情報を加えることができる。次いで、圧縮モジュール３０４がブロックを圧縮することができ、暗号化モジュール３０６が必要に応じてブロックを暗号化することができる。次いで、データのブロックは、サブ・データ・セットに分解され、ＥＣＣ符号器１００に渡すことができる。ＥＣＣ符号器１００は、データ配列１０２の各行及びデータ配列１０２の各列について、ＥＣＣパリティ１０４及びＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０４及びＥＣＣパリティ１０６を配列１０２に付加することができる。
【００３０】
ＥＣＣパリティ１０４及びＥＣＣパリティ１０６が配列１０２に付加されると、マルチプレクサ１１０が、ヘッダ１０８をデータ配列１０２（列ＥＣＣパリティ１０６及び行ＥＣＣパリティ１０４を含む）の行に付加することができる。ヘッダ１０８は、ＣＲＣのような誤り検出符号を含むことができる。次いで、テープ・レイアウト・モジュール３０８が、データ配列１０２、ＥＣＣパリティ１０４、ＥＣＣパリティ１０６、及びヘッダ１０８を、磁気テープ上に、異なるトラックに渡って異なる順序で割り当てることができる。次いで、そのデータの並びは、データに対して追加のシグナル処理を行うランダマイザ３１０で処理することができる。次いで、ラン・レングス符号器３１２が、情報のスペクトルを磁気記録により適したものとなるように変形することができる。次いで、マルチプレクサ３１４が、その情報に、可変周波数発振器（ＶＦＯ）又は同期文字等のような同期情報を多重化して、読み出すときに同期を取ることが可能となるようにすることができる。次いで、結果として得られるデータは、書き込みドライバ（図示せず）に送ることができ、書き込みドライバは、記録ヘッド・エレメントに電流を流して磁束を発生させ、それによって磁気記録媒体にデータを書き込むようにすることができる。一般的に、マルチプレクサ１１０より右側にある各ブロック又はモジュールは、データが磁気記録により適したものとなるように、データをさまざまに変形させるものである。
【００３１】
図６を参照すると、データ及びヘッダの保護を統合するデータの流れ４００を示す高次ブロック図が示される。図示されるように、ＣＲＣモジュール３０２がホスト・デバイスから可変長のブロックを受け取って、ＣＲＣ情報をこれらのブロックに加える。圧縮モジュール３０４がブロックを圧縮することができ、暗号化モジュール３０６が必要に応じてブロックを暗号化することができる。次いで、データのブロックは、サブ・データ・セットに分解され、列ＥＣＣ符号器１１２に渡すことができる。次いで、列ＥＣＣ符号器１１２は、データ配列１０２の各列についてＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０６を配列１０２に付加することができる。
【００３２】
列ＥＣＣパリティ１０６が生成され、配列１０２に付加されると、マルチプレクサ１１０が、ヘッダ１０８を配列１０２の行に付加する。次いで、拡張された配列１０２は、配列１０２の各列について行ＥＣＣパリティを生成する行ＥＣＣ符号器１１４に渡すことができる。列ＥＣＣ符号器１１２及び行ＥＣＣ符号器１１４の機能及び利点については、図７及び図８との関連でより詳細に説明する。データ１０２及びヘッダ１０８についてＥＣＣパリティ情報が生成されると、テープ・レイアウト・モジュール３０８、ランダマイザ３１０、ラン・レングス符号器３１２、及びマルチプレクサ３１４が、ＥＣＣ符号化されたデータが磁気記録により適したものとなるように、ＥＣＣ符号化されたデータを前述の方法で変形させることができる。
【００３３】
図７を参照すると、ＳＤＳデータ１０２及びヘッダ１０８の両方を保護するためのＥＣＣパリティを生成する方法の１つの実施形態が示される。図８は、図７の方法を用いてどのようにＥＣＣパリティ情報が生成され、ＳＤＳデータ配列１０２に付加されるかを示す。前述した通り、列ＥＣＣ符号器１１２は、データ配列１０２を受け取ると、図８に示されるように、配列１０２の各列についてＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０６を配列１０２に付加する。次いで、マルチプレクサ１１０は、ヘッダ１０８を配列１０２（列ＥＣＣパリティ１０６を含む）の行に付加する。ヘッダ１０８の位置は任意であり、これは、ヘッダ１０８を、各行の先頭に、各行の末尾に、各行にインターリーブして、等のように配置することができることを意味する。
【００３４】
次いで、拡張された配列１０２（即ち、ＳＤＳデータ１０２、ヘッダ１０８、及び列ＥＣＣパリティ１０６）は、行ＥＣＣ符号器１１４に渡すことができ、行ＥＣＣ符号器１１４は、（ＳＤＳデータ１０２、列ＥＣＣパリティ１０６、及びヘッダ１０８を含む）各行についてＥＣＣパリティ１０４を生成し、そのＥＣＣパリティ１０４を拡張された配列１０２に付加することができる。したがって、行ＥＣＣ符号器１１４は、結合されたＳＤＳデータ１０２、列ＥＣＣパリティ１０６及びヘッダ１０８について、行ＥＣＣパリティ１０４を生成する。これによって、本質的に、ＳＤＳデータ１０２について２次元の保護が与えられ（即ち、行ＥＣＣパリティ１０４及び列ＥＣＣパリティ１０６の両方を与えることによって）、同時に、（行ＥＣＣパリティ１０４のみを与えることによって）ヘッダ１０８について１次元の保護が与えられる。この技術は、フォーマットの効率を保ちつつ、ヘッダ１０８についての十分な保護をもたらす。
【００３５】
例えば、ＳＤＳデータ１０２及びヘッダ１０８が上述の方法で保護されていると仮定する。ＳＤＳデータ１０２、行ＥＣＣパリティ１０４、列ＥＣＣパリティ１０６、及びヘッダ１０８がテープに書き込まれ、read-while-writeの過程でヘッダ１０８に誤りが検出された場合には、データ１０２及びヘッダ１０８は、磁気媒体に再書込みされることがある。しかし、ヘッダ１０８は、その中に含まれるアドレス指定及びメタ・データを更新するために、再書込みの実施に先立って変更されることが必要な場合がある。他方、データ１０２は、変更されないままの場合がある。ヘッダ１０８は、１次元のＥＣＣパリティで保護されている（即ち、行ＥＣＣパリティ１０４によって保護されている）ため、行ＥＣＣパリティ１０４及び列ＥＣＣパリティ１０６の両方を再計算する必要性（これは、集中的な計算を要し、フォーマットの効率を著しく低下させる可能性がある）とは対照的に、更新されたヘッダ１０８について行ＥＣＣパリティ１０４を再計算するだけで十分である。さらに、ヘッダ１０８が変化した行について行ＥＣＣパリティ１０４を再計算するだけで十分である。したがって、１次元のＥＣＣ保護でヘッダ１０８を保護することによって、フォーマットの効率を依然として保ちながら、ヘッダ１０８の適切な保護がもたらされる。
【００３６】
幾つかの実施形態においては、ＳＤＳ配列１０２の各行がインターリーブされたデータ・ワードで構成できることに留意すべきである。例として、ＳＤＳ配列１０２の各列は、各々が２３４バイトである４つのインターリーブされたデータ・ワードを含み、各行が９３６バイトの長さのものとすることができる。データ・ワードは、バイトごとに、又は他の適切な基準で、インターリーブすることができる。同様に、行ＥＣＣパリティ１０４及び行に関連するヘッダ１０８もまた、インターリーブすることができる。例えば、各々が３バイトである４つのインターリーブされたヘッダ１０８（行のデータ・ワードごとに１つ）を配列１０２の各行に関連付けて、ヘッダ１０８の各行を１２バイトの長さとすることができる。ヘッダ１０８は、バイトごとに、又は他の適切な基準で、インターリーブすることができる。同様に、各々が１２バイトである４つのインターリーブされた行ＥＣＣパリティ符号１０４（行のデータ・ワードごとに１つ）を配列１０２の各行に関連付けて、ＥＣＣパリティ符号１０４の各行を４８バイトの長さとすることができる。行ＥＣＣパリティ符号１０４は、バイトごとに、又は他の適切な基準で、インターリーブすることができる。以上で与えられた数値を用いれば、各行（ヘッダ１０８、ＳＤＳデータ１０２、及び行ＥＣＣパリティ１０４を含む）は、９９６バイトの長さとなる。これらの数値は、例示のみの目的で与えられたものであり、これに限定することを意図するものではない。また、全ての実施形態において、必ずしもインターリーブを用いる必要はない。
【００３７】
本発明者は、上で与えられた数値（即ち、各データ・ワードについて２３４バイト、各ヘッダ１０８について３バイト、及び、各行ＥＣＣパリティ１０４について１２バイト）を用いて、結合されたヘッダ１０８及びデータ・ワード１０２のうちの５バイトまでは、１２バイトの行ＥＣＣパリティ１０４を用いて訂正することができることを見出した。さらに、１２バイトの行ＥＣＣパリティ１０４を用いて、ヘッダ１０８の３バイトの全てを訂正することができる。データがインターリーブされている場合には、訂正失敗の確率を減らすために誤り訂正能力のうち１バイトの余力が用いられると仮定すると、１２個までの連続するインターリーブしたバイトを訂正することができる。要するに、ヘッダ及びデータの保護を統合することは、ヘッダ１０８及びデータ１０２をＥＣＣパリティで独立して保護することよりも著しく効率的である。
【００３８】
図９を参照すると、ＳＤＳデータ１０２及びヘッダ１０８の両方を保護するためのＥＣＣパリティを生成する１つの代替的な実施形態が示される。図１０及び図１１は、図９の方法を用いてどのようにＥＣＣパリティ情報が生成され、データ配列１０２に付加されるかを示す。この実施形態では、ＳＤＳ配列１０２を受け取ると、行ＥＣＣ符号器１１４が、図１０に示されるように、ＳＤＳデータ１０２について行ＥＣＣパリティ１０４を生成し、それを配列１０２に付加する。次いで、列ＥＣＣ符号器１１２が、図１０に更に示されるように、ＳＤＳ配列１０２（行ＥＣＣパリティ１０４を含む）の各列についてＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０６を配列１０２に付加する。次いで、マルチプレクサ１１０は、図１１に示されるように、ヘッダ１０８を行に付加することができる。次いで、拡張された配列１０２（即ち、ＳＤＳデータ１０２、ヘッダ１０８、及び列ＥＣＣパリティ１０６）は、この時点ではヘッダ１０８を含んでいる各行について行ＥＣＣパリティ１０４を更新するために、同一の又は異なる行ＥＣＣ符号器１１６に渡すことができる。このように、ＳＤＳデータ１０２について２次元のＥＣＣ保護を与えることができ、ヘッダ１０８について１次元のＥＣＣ保護を与えることができる。この技術を用いることの１つの潜在的な利点は、図１の方法を実装するために用いられるような従来のＥＣＣ符号化ハードウェアをより容易に使用できることである。
【００３９】
図１２を参照すると、ＳＤＳデータ１０２及びヘッダ１０８の両方を保護するためのＥＣＣパリティを生成する方法の更に別の実施形態が示される。図１３及び図１４は、図１２の方法を用いてどのようにＥＣＣパリティ情報が生成され、ＳＤＳ配列１０２に付加されるかを示す。この実施形態では、サブ・データ・セット１０２を受け取ると、列ＥＣＣ符号器１１２が、図１３に示されるように、ＳＤＳ配列１０２の各列についてＥＣＣパリティ１０６を生成し、そのＥＣＣパリティ１０６を配列１０２に付加する。次いで、行ＥＣＣ符号器１１４が、図１３に更に示されるように、ＳＤＳ配列１０２（及び、列ＥＣＣパリティ１０６）について行ＥＣＣパリティ１０４を生成し、その行ＥＣＣパリティ１０４を配列１０２に付加する。次いで、マルチプレクサ１１０が、図１４に示されるように、ヘッダ１０８を行に付加することができる。次いで、拡張された配列１０２（即ち、ＳＤＳデータ１０２、ヘッダ１０８、及び列ＥＣＣパリティ１０６）は、この時点ではヘッダ１０８を含んでいる各行について行ＥＣＣパリティ１０４を更新するために、同一の行ＥＣＣ符号器１１６又は異なる行ＥＣＣ符号器１１６のいずれかに渡すことができる。このように、ＳＤＳデータ１０２について２次元のＥＣＣ保護を与えることができ、ヘッダ１０８について１次元のＥＣＣ保護を与えることができる。
【００４０】
図１５を参照すると、結合されたＳＤＳデータ１０２及びヘッダ１０８について行ＥＣＣパリティ１０４を計算するための符号器回路８００の１つの実施形態が示される。より具体的には、符号器回路８００は、結合されたＳＤＳデータ１０２及びヘッダ１０８についてリード・ソロモンＥＣＣパリティ１０４を計算するように構成される。図示されるように、符号器回路８００は、この例においては１２個のレジスタ８０２（Ｒ０、Ｒ１、…、Ｒ１１として示される）である多数のレジスタ８０２を含み、レジスタの各々は、１バイトのデータのようなシンボルを格納する。レジスタ８０２は、フィードバックを伴って連続的に接続される。符号器回路８００は、図示されるような方法で、レジスタ８０２と情報をやりとりする１１個の乗算器８０４（各々は、αのｎ乗として表現されている）を更に含む。乗算器８０４の各々は、入力値にある定数αｎを乗算する。その積は、レジスタの値と加算され、次のレジスタに格納される。
【００４１】
図示された実施例において、回路８００は、２３４バイトのデータ・ワード及び３バイトのヘッダ１０８について１２バイトのリード・ソロモン・パリティ１０４を生成するものと仮定する。リード・ソロモン・パリティ１０４を生成するために、レジスタ８０２の値は、初めに０に設定される。次いで、データ・ワード及びヘッダのバイトは、入力線８０６を通して１バイトごとに順番に符号器回路８００に送られる。全てのバイトが入力線８０６に送られると、レジスタ８０２は、１２バイトのリード・ソロモン・パリティ１０４を格納することになる。（図９及び図１２との関連で説明したように）ＳＤＳ配列１０２の行がヘッダ１０８を伴って更新されたときなどに、リード・ソロモン・パリティ１０４を更新するために、以前のリード・ソロモン・パリティ１０４がレジスタ８０２に単にロードされる。次いで、新たに加えられたヘッダ１０８のバイトは、入力線８０６を通して１バイトごとに順番に符号器回路８００に送られる。ヘッダ１０８の全てのバイト又はヘッダ１０８の一部（例えば、１２バイトのヘッダの中の３バイト）が入力線８０６に送られると、レジスタ８０２は、更新された１２バイトのリード・ソロモン・パリティ１０４を格納することになる。同様の符号化機構を用いて、符号化されたＳＤＳの行における他のインターリーブに関連したリード・ソロモン・パリティを更新することができる。
【００４２】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ使用可能媒体の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、１つ又は複数の特定の論理機能を実行するための１つ又は複数の実行可能命令を含むモジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装においては、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われる場合があることにも留意すべきである。例えば、連続して示された２つのブロックが、関与する機能に応じて、実際には実質的に同時に実行されることもあり、これらのブロックが、ときには逆の順序で実行されることもある。また、ブロック図及び／又はフローチャート図の各ブロック、並びに、ブロック図及び／又はフローチャート図のブロックの組み合わせは、特定の機能又は動作を実行する専用ハードウェアをベースとするシステム、又は、専用ハードウェアとコンピュータ命令との組み合わせによって、実装できることにも留意されたい。
【符号の説明】
【００４３】
１００、２００：ＥＣＣ符号器
１０２：ＳＤＳの中のデータ
１０４：行ＥＣＣパリティ
１０６：列ＥＣＣパリティ
１０８：ヘッダ
１１０、３１４：マルチプレクサ
１１２：列ＥＣＣ符号器
１１４、１１６：行ＥＣＣ符号器
３００、４００：データの流れ
３０２：ＣＲＣモジュール
３０４：圧縮モジュール
３０６：暗号化モジュール
３０８：テープ・レイアウト・モジュール
３１０：ランダマイザ
３１２：ラン・レングス符号器
８００：符号器回路
８０２：レジスタ
８０４：乗算器
８０６：入力線
【図１】
2013525933.tif 000003
【図２】
2013525933.tif 000004
【図３】
2013525933.tif 000005
【図４】
2013525933.tif 000006
【図５】
2013525933.tif 000007
【図６】
2013525933.tif 000008
【図７】
2013525933.tif 000009
【図８】
2013525933.tif 000010
【図９】
2013525933.tif 000011
【図１０】
2013525933.tif 000012
【図１１】
2013525933.tif 000013
【図１２】
2013525933.tif 000014
【図１３】
2013525933.tif 000015
【図１４】
2013525933.tif 000016
【図１５】
2013525933.tif 000017
2013525933.tif 000018
2013525933.tif 000019
2013525933.tif 000020
2013525933.tif 000021
2013525933.tif 000022
2013525933.tif 000023
2013525933.tif 000024
2013525933.tif 000025
2013525933.tif 000026
2013525933.tif 000027
2013525933.tif 000028
2013525933.tif 000029
2013525933.tif 000030
2013525933.tif 000031
2013525933.tif 000032
【手続補正書】
【提出日】平成24年10月10日(2012.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための方法であって、
行及び列に編成されたデータ配列を提供することと、
前記列について列ＥＣＣパリティを計算することと、
前記列ＥＣＣパリティを含むように前記列を拡張することと、
前記列が拡張されたデータ配列の各行にヘッダを付加することと、
前記結合された行及びヘッダについて行ＥＣＣパリティを計算することと、
前記行ＥＣＣパリティを含むように前記行を拡張することと、
を含む方法。
【請求項２】
前記データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である、請求項１に記載の方法。
【請求項３】
前記列ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記行ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項１から請求項３までのいずれかに記載の方法。
【請求項５】
前記行は、Ｌ個のインターリーブされたデータ・ワードを含む、前記請求項のいずれかに記載の方法。
【請求項６】
前記Ｌは、２及び４の一方に等しい、請求項５に記載の方法。
【請求項７】
前記行ＥＣＣパリティを含むように前記行を拡張することは、前記ヘッダを付加する前の前記行について計算された行ＥＣＣパリティを更新することを含む、前記請求項のいずれかに記載の方法。
【請求項８】
テープ・ドライブにおいてデータ及びヘッダの保護を統合するための装置であって、
行及び列に編成されたデータ配列を受け取る入力と、
前記列について列ＥＣＣパリティを計算し、前記列ＥＣＣパリティを含むように前記列を拡張する、列誤り訂正符号（ＥＣＣ）符号器と、
前記データ配列の各行にヘッダを付加するマルチプレクサと、
前記結合された行及びヘッダについて行ＥＣＣパリティを計算し、前記行ＥＣＣパリティを含むように前記行を拡張する、行ＥＣＣ符号器と、
を備える装置。
【請求項９】
前記データ配列は、配列の形式に編成されたサブ・データ・セット（ＳＤＳ）である、請求項８に記載の装置。
【請求項１０】
前記列ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項８又は請求項９に記載の装置。
【請求項１１】
前記行ＥＣＣパリティは、リード・ソロモン・パリティを含む、請求項８から請求項１０までのいずれかに記載の装置。
【請求項１２】
前記行は、Ｌ個のインターリーブされたデータ・ワードを含む、請求項８から請求項１１までのいずれかに記載の装置。
【請求項１３】
前記Ｌは、２及び４の一方に等しい、請求項１２に記載の装置。
【請求項１４】
前記行ＥＣＣ符号器は、前記ヘッダを付加する前の前記行について計算された行ＥＣＣパリティを更新するように構成された、請求項８から請求項１３までのいずれかに記載の装置。
【請求項１５】
請求項１から請求項７のいずれか１項に記載の全てのステップをコンピュータに実行させるコンピュータ・プログラム。
【国際調査報告】
2013525933.tif 000033
2013525933.tif 000034