以下の説明は、本発明の一般的な原理を示すことを目的としており、本明細書で特許請求される本発明の概念を限定するものではない。さらに、本明細書に記述された特定の機能は、様々な可能な組み合わせおよび変更のそれぞれに関して説明された他の機能と組み合わせて使用することができる。
本明細書で特に別段で規定されない限り、すべての用語は、その最も広い可能な解釈が、本明細書から暗示される意味、ならびに当業者によって理解されている意味、または辞書、協定などに定義された意味あるいはその両方を含め、与えられる。
本明細書および添付の特許請求の範囲では、単数形「1つの(a)」、「1つの(an)」および「その(the)」は、特にことわらない限り、複数の指示対象を含むことにも留意されなければならない。用語の「含む(comprises)」または「含んでいる(comprising)」あるいはその両方は、本明細書で用いられる場合、述べられた特徴、完全体、ステップ、操作、要素、または構成要素あるいはその組み合わせの存在を明示するが、1つまたは複数の他の特徴、完全体、ステップ、操作、要素、構成要素、またはこれらの群あるいはその組み合わせの存在または追加を排除しないことをさらに理解されたい。本明細書では用語の「約」は、当業者には理解されるはずであるように、用語の「約」が前に付いた値を、用語の「約」が前に付いたその値にかなり近い任意の値と共に示す。特に他に示されていない場合、用語の「約」は、「約」が前に付いた値±10%の値を表す。たとえば「約10」は、9.0を含めてそれから11.0までのすべての値を示す。
以下の説明では、より効率的な書き換えをすることが可能なより大きい符号語サイズを利用する、順次データ記憶媒体へのデータ書き換えのためのシステム、方法、およびコンピュータ・プログラム製品のいくつかの好ましい実施形態を開示する。
1つの一般的な実施形態では、システムが、少なくともM個に達する複数の書き込み変換器と、少なくともM個に達する複数の読み出し変換器とを有する磁気ヘッドを含み、各読み出し変換器は、順次アクセス媒体からデータを、対応する書き込み変換器によって書き込まれた後に読み出すように構成されている。システムはまた、コントローラと、コントローラと一体化された、またはコントローラによって実行可能な、あるいはその両方である論理回路とを含む。論理回路は、複数のM個の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むように構成される。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブまたは非インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。各符号語は、シンボルごとに少なくとも8ビットのサイズを有する所定の数のシンボルを含む。論理回路はまた、複数のM個の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別するように構成され、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。加えて、論理回路は、誤りのある符号化データ・ブロックを書き換えるために、特定の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの所定のサブセットから選択するように構成され、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットはD1+D2+1の論理トラックを含み、0<D1+D2<M/4である。論理回路はまた、第1の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックの第1のものを、順次アクセス媒体の書き換え領域内の特定の論理トラックに書き換えるように構成され、特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。
別の一般的な実施形態では、1つの方法が、磁気ヘッドの複数の少なくともM個の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むことを含む。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブまたは非インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。各符号語は、シンボルごとに少なくとも8ビットのサイズを有する所定の数のシンボルを含む。この方法はまた、磁気ヘッドの複数の少なくともM個の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別することを含み、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。加えて、この方法は、誤りのある符号化データ・ブロックを書き換えるために、特定の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの所定のサブセットから選択することを含み、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットはD1+D2+1の論理トラックを含み、0<D1+D2<M/4である。さらに、この方法は、第1の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックの第1のものを、順次アクセス媒体の書き換え領域内の特定の論理トラックに書き換えることを含む。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。
別の一般的な実施形態によれば、コンピュータ・プログラム製品が、プログラム命令が埋め込まれたコンピュータ可読記憶媒体を含む。具現化されたプログラム命令は、プロセッサが、プロセッサによって磁気ヘッドの複数の少なくともM個の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むように、プロセッサによって実行可能である。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブまたは非インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。各符号語は、シンボルごとに少なくとも8ビットのサイズを有する所定の数のシンボルを含む。具現化されたプログラム命令はまた、プロセッサが、プロセッサによって磁気ヘッドの複数の少なくともM個の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別するようにプロセッサによって実行可能であり、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。加えて、具現化されたプログラム命令は、プロセッサが、プロセッサによって、誤りのある符号化データ・ブロックを書き換えるために、特定の論理トラックを順次アクセス媒体の書き換え領域内の論理トラックの所定のサブセットから選択するようにプロセッサによって実行可能であり、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットはD1+D2+1の論理トラックを含み、0<D1+D2<M/4である。さらに、具現化されたプログラム命令は、プロセッサが、プロセッサによって、第1の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックの第1のものを、順次アクセス媒体の書き換え領域内の特定の論理トラックに書き換えるようにプロセッサによって実行可能である。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。
別の一般的な実施形態では、1つの方法が、磁気ヘッドの複数の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むことを含み、データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。また、各符号語は、所定の数のシンボルを含む。この方法はまた、磁気ヘッドの複数の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別することを含み、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。また、この方法は、順次アクセス媒体から読み出されたデータ・セットを復号して、誤りのある1つまたは複数の符号化データ・ブロックを決定することを含み、符号化データ・ブロックが、符号化データ・ブロックが復号された後の閾数の誤りの検出に応じて、誤りがあると決定される。加えて、この方法は、誤りのある1つまたは複数の符号化データ・ブロックを書き換えるために、1つまたは複数の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの1つまたは複数の固有の所定のサブセットから選択することを含み、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットのそれぞれは、3つの論理トラックを含む。さらに、この方法は、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックを、順次アクセス媒体の書き換え領域内の1つまたは複数の論理トラックに書き換えることを含む。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられ、各符号化データ・ブロックが、ガロア体GF(1024)にわたり2つのシンボル・インターリーブされたリードソロモンRS(384,364)C1符号語として順次アクセス媒体に書き込まれる。
さらに別の一般的な実施形態では、1つの方法が、磁気ヘッドの複数の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むことを含み、データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。また、各符号語は、所定の数のシンボルを含む。この方法はまた、磁気ヘッドの複数の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別することを含み、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。また、この方法は、順次アクセス媒体から読み出されたデータ・セットを復号して、誤りのある1つまたは複数の符号化データ・ブロックを決定することを含み、符号化データ・ブロックが、符号化データ・ブロックが復号された後の閾数の誤りの検出に応じて、誤りがあると決定される。加えて、この方法は、誤りのある1つまたは複数の符号化データ・ブロックを書き換えるために、1つまたは複数の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの1つまたは複数の固有の所定のサブセットから選択することを含み、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットのそれぞれは、5つの論理トラックを含む。さらに、この方法は、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックを、順次アクセス媒体の書き換え領域内の1つまたは複数の論理トラックに書き換えることを含む。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられ、各符号化データ・ブロックが、ガロア体GF(1024)にわたりリードソロモンRS(768,728)C1符号語として順次アクセス媒体に書き込まれる。
ここで図1を参照すると、一実施形態によるネットワーク記憶システム10の概略図が示されている。ネットワーク記憶システム10は、適切な記憶システムの1つの例にすぎず、本明細書に記載の本発明の実施形態の使用または機能の範囲に関して、いかなる限定も示唆するものではない。それとは関係なく、ネットワーク記憶システム10は実現することができ、かつ/または上記の機能のいずれも実行することができる。
ネットワーク記憶システム10にはコンピュータ・システム/サーバ12があり、これは、他の多数の汎用または専用のコンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム/サーバ12と共に使用するのに適していることがある、よく知られているコンピューティング・システム、環境、または構成あるいはその組み合わせの例としては、それだけには限らないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムおよびデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられる。
コンピュータ・システム/サーバ12は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象的なデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、論理回路、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされている遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実践することができる。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む局所と遠隔両方のコンピュータ・システム記憶媒体に設置することができる。
図1に示されるように、ネットワーク記憶システム10内のコンピュータ・システム/サーバ12が、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ12の構成要素には、それだけには限らないが、1つまたは複数の処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム構成要素を処理ユニット16に結合するバス18とが含まれ得る。
バス18は、メモリ・バスまたはメモリ・コントローラと、周辺バスと、アクセラレイテッド・グラフィックス・ポートと、様々なバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスとを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション(VESA)ローカル・バス、および周辺構成要素相互接続(PCI)バスが含まれる。
コンピュータ・システム/サーバ12は通常、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な、任意の入手可能な媒体とすることができ、これには揮発性媒体と不揮発性媒体、および取り外し可能媒体と固定型可能媒体の両方が含まれる。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの揮発性メモリの形のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ12はさらに、他の取り外し可能/固定型、揮発性/不揮発性のコンピュータ・システム記憶媒体を含み得る。単に例として、記憶システム34は、HDDで動作させることができる、図示されていないが通常は「ハード・ディスク」と呼ばれる、固定型不揮発性磁気媒体との間で読み出しおよび書き込みをするために設けられることがある。図示されていないが、取り外し可能な不揮発性磁気ディスク(たとえば、「フロッピーディスク」)との間で読み出しおよび書き込みをするための磁気ディスクドライブと、CD−ROM、DVD−ROMまたは他の光学媒体などの、取り外し可能な不揮発性光学ディスクとの間で読み出しまたは書き込みをするための光ディスクドライブとが設けられることがある。このような場合、それぞれのディスクドライブは、1つまたは複数のデータ媒体インターフェースによってバス18に接続することができる。以下でさらに描写および説明されるように、メモリ28は、本明細書に記載の実施形態の機能を実行するように構成されているプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、例として、それだけではないが、メモリ28に、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、記憶することができる。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組み合わせのそれぞれは、ネットワーキング環境の一実施態様を含み得る。プログラム・モジュール42は一般に、本明細書に記載された本発明の実施形態の機能または手法あるいはその両方を実行する。
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などの1つもしくは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話できるようにする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティング・デバイスと通信できるようにするあらゆるデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはこれらの組み合わせと通信することもできる。このような通信は、入出力(I/O)インターフェース22を介して行われ得る。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般広域ネットワーク(WAN)、または公衆ネットワーク(たとえばインターネット)あるいはこれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他の構成要素と通信する。図示されていないが、他のハードウェアまたはソフトウェアの、あるいはその両方の構成要素が、コンピュータ・システム/サーバ12と組み合わせて使用できることを理解されたい。例としては、それだけには限らないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、独立ディスクの冗長アレイ(RAID)システム、テープ・ドライブ、およびデータ・アーカイバル記憶システムなどが挙げられる。
図2は、本発明の文脈において使用することができる、テープベースのデータ記憶システムの簡略化テープ・ドライブ100を示す。図2にはテープ・ドライブの1つの特定の実施態様が示されているが、本明細書に記載の実施形態は、任意のタイプのテープ・ドライブ・システムの文脈において実現できることに留意されたい。
図示のように、テープ供給カートリッジ120および巻き取りリール121は、テープ122を支持するために設けられる。リールのうちの1つまたは複数は、取り外し可能なカートリッジの一部を形成することができ、必ずしもテープ・ドライブ100の一部というわけではない。図2に示されたものなどのテープ・ドライブはさらに、テープ供給カートリッジ120および巻き取りリール121を駆動してテープ122を任意のタイプのテープ・ヘッド126の上で移動させる、駆動モータを含み得る。このようなヘッドには、リーダの、ライタの、または両方のアレイが含まれ得る。
案内125は、テープ・ヘッド126をまたいでテープ122を案内する。次いで、このようなテープ・ヘッド126は、ケーブル130を介してコントローラ128に結合される。コントローラ128は、テープ・ドライブ100のいずれのサブシステムも制御するための、プロセッサもしくは任意の論理回路またはその両方であるか、あるいはこれらを含み得る。たとえば、コントローラ128は通常、サーボ追尾、データ書き込み、データ読み出しなどのヘッド機能を制御する。コントローラ128は、少なくとも1つのサーボ・チャネル、および少なくとも1つのデータ・チャネルを含むことができ、それらのそれぞれが、テープ122との間で書き込みまたは読み出しあるいはその両方が行われるべき情報を処理または記憶する、あるいはその両方をするように構成されたデータ・フロー処理論理回路を含む。コントローラ128は、当技術分野で知られている論理回路、ならびに本明細書で開示されている任意の論理回路のもとで動作することができ、したがって、様々な実施形態で本明細書に含まれるテープ・ドライブについての説明のうちのいずれかに対するプロセッサと考えることができる。コントローラ128は、任意の知られているタイプのメモリ136に結合することができ、このメモリは、コントローラ128によって実行可能な命令を記憶することができる。さらに、コントローラ128は、本明細書に提示された手法の一部もしくは全部を実行または制御するように構成することができ、またはプログラム可能とすることができ、あるいはその両方とすることができる。したがって、コントローラ128は、1つまたは複数のチップ、モジュール、またはブロックあるいはその組み合わせの中にプログラムされた論理回路と、ソフトウェア、ファームウェア、または1つもしくは複数のプロセッサに使用可能である他の命令、あるいはその組み合わせなどと、これらの組み合わせとによって、様々な動作を実行するように構成されるものと考えられてもよい。
ケーブル130は、データをヘッド126へ送出してテープ122に記録されるようにするための、またヘッド126によってテープ122から読み出されたデータを受け取るための読み出し/書き込み回路を含み得る。アクチュエータ132は、テープ122に対してヘッド126の位置を制御する。
インターフェース134はまた、当業者には理解されるように、データを送受信するテープ・ドライブ100とホスト(内部または外部)との間の通信のために、またテープ・ドライブ100の動作を制御しテープ・ドライブ100の状態をホストに伝えるために設けられることもある。
図3は、一実施形態による例示的なテープ・カートリッジ150を示す。このようなテープ・カートリッジ150は、図2に示されたようなシステムで使用することができる。図示のように、テープ・カートリッジ150は、ハウジング152、ハウジング152内のテープ122、およびハウジング152に結合された不揮発性メモリ156を含む。いくつかの手法では、図3に示されるように、不揮発性メモリ156がハウジング152の内側に埋め込まれることがある。さらなる手法では、不揮発性メモリ156は、ハウジング152を修正しなくてもハウジング152の内側または外側に取り付けられることがある。たとえば、不揮発性メモリは、粘着剤付きのラベル54に埋め込むことができる。1つの好ましい実施形態では、不揮発性メモリ156は、テープ・カートリッジ150の内側または外側に埋め込まれるか結合されるフラッシュ・メモリ・デバイス、ROMデバイスなどでよい。不揮発性メモリは、テープ・ドライブおよびテープ操作ソフトウェア(ドライブ・ソフトウェア)、または他のデバイスあるいはその両方によってアクセス可能である。
図4は、M個の書き込みチャネルを介してM個のトラックが同時に書き込まれるテープ・ドライブにおける概念的なデータ・フロー300を詳細な形で示す。データ・フロー300はホストデータを、一実施形態によれば、巡回冗長検査(CRC)誤り検出エンコーダ302、圧縮モジュール304、任意選択の暗号化モジュール306、誤り訂正符号(ECC)エンコーダ308(C1/C2またはC2/C1として配置された、C1エンコーダおよびC2エンコーダを含む)、およびテープ配置モジュール310に通すことを含む。ヘッダ挿入モジュール312は、図示のように配置されて、テープ配置モジュール310に送出することができ、あるいは、一実施形態では、ECCエンコーダ308に送出するように配置され、それによって、ヘッダがいくらかのECC符号化を受けることを可能にすることができる。テープ配置モジュール310はデータを、テープ媒体のトラックに書き込むための各チャネル1、...、Mへの個々のデータ送出に分割する。データ・フロー300はまた、同時書き込みトラック1、...、Mごとに、データのスクランブリング(データ・ランダム化)314、...、316、変調符号化318、...、320、同期挿入326、...、328、および多重化322、...、324も含む。
以下の説明では、説明を簡単にするために、これらの動作のほとんどが図示されない。しかし、本明細書の説明のいずれも、本明細書を読めば当業者には理解されるように、図示されていない付加的な動作を含み得る。同時に書き込むことができるトラックの数は、使用されるテープ・ドライブによって決まり、Mの値は1から64以上にまで及ぶ。
テープに書き込まれるデータと関連付けられた5種類のオーバヘッド、すなわち、ECCエンコーダにおける誤り訂正符号化308、変調符号化318、・・・、320、ヘッダの挿入312、同期パターンの挿入326、...、328、および記録時再生に続くデータの書き換え、がある。書き換えオーバヘッドを除くオーバヘッドのこれらの基本的形により、約79%のフォーマット効率が達成され、たとえば、テープに記憶された100ビットごとから79ビットのデータだけが、ECCエンコーダ308の入力に供給されるデータであるユーザ・データに対応する。さらに、典型的な磁気テープでは、データを書き換えるために約3%のスペースを確保している。
図5は、一実施形態による、データをサブ・データ・セット(SDS)に編成するために使用できる論理データ・アレイ400を示す。図示のように、データ・アレイは、複数の行402および列404を含む。データ・アレイ400の各行402は、複数のC1符号語を含む符号語インターリーブ(CWI)である。CWIは、4つのインターリーブされた符号語を含む場合にはCWI−4と呼ばれる。SDSのデータは、C1行パリティ(データ・アレイ400を生成するために後で変調されるので図示せず)を生成するための各行402にわたるC1符号化と、C2列パリティ408を生成するための各列404にわたるC2符号化とによって保護される。
図示のように、各行402のヘッダ406は、ヘッダ406に相当するC1パリティ(行402のデータについてのみ計算されている)を修正してC1’パリティ410を生成することによって、C1符号化方式を使用して符号化することができる。この実施形態では、ヘッダ406が1レベルECC(C1’パリティ410だけ)によって保護されるのに対し、データは2レベルECC(C1’パリティ410およびC2パリティ408)によって保護される。
各データ・セットは多数のサブ・データ・セットを含み、各サブ・データ・セットは論理2次元アレイによって表すことができる。各データ・セットが多数のSDSを含み、列符号化SDSの各行(一般にはCWI)がヘッダを割り当てられるので、通常は数百のヘッダが単一のデータ・セットに割り当てられる。
現在使用されているリニア・テープ・ドライブは、書き込みと読み出しを磁気テープ媒体へ、または磁気テープ媒体から、あるいはその両方で、32トラックまで同時にする。積符号のC1行符号語が、バイト・インターリーブされた方法で磁気テープ媒体の個々のトラックに書き込まれる。
図5は、積符号語に適用される12バイトのパリティを用いた例示的な(240,228)C1符号を示す。本明細書を読めば当業者には理解されるように、別のC1符号が、論理データ・アレイ400を構築する際に本明細書に記載の様々な実施形態と組み合わせて使用されてもよい。
次に、図6を参照すると、一実施形態による書き換え方式が示されている。この書き換え方式500では、書き込まれるデータ・セット502に応じて、記録時再生中に検出された、誤りのあるすべてのデータパケット504(ヘッダ付きCWIまたはヘッダ付き符号化データ・ブロック)が大プール506に集められ、データ・セットの末端の書き換え領域508で書き換えられる。この書き換え方式500では書き換え効率が向上し、したがって、テープ上の書き換え領域508のサイズが従来の書き換え方式と比較して低減する。
図7を参照すると、一実施形態によるシステム600が示されている。システム600は、複数の書き込み変換器604および複数の読み出し変換器606を含む、少なくとも1つの磁気ヘッド602を含み、各読み出し変換器606は、対応する書き込み変換器604からダウンテープ方向に配置されている。各読み出し変換器606は、磁気テープ媒体608の1つのトラックから他の読み出し変換器606と同時にデータを読み出し、それによって、複数のトラック610が磁気テープ媒体608から同時に読み出されることを可能にするように構成されている。同時に読み出されることが可能なトラック610の数は、磁気ヘッド602の読み出し変換器606の数と等しい。当然ながら、いくつかの読み出し変換器606は、磁気ヘッド位置合わせのためのサーボ・トラックを読み出すために、または他の目的のために、あるいはその両方のために構成することができるが、これらの説明のために、読み出し変換器606はそれぞれ、磁気テープ媒体608からデータを読み出すことができると仮定されている。
システム600はまた、ハードウェア処理回路612と、ハードウェア処理回路612と一体化された、またはハードウェア処理回路612によって実行可能な、あるいはその両方である論理回路とを含む。ハードウェア処理回路612は、中央処理ユニット(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの、ハードウェア処理ユニットもしくは回路またはその両方、これらの組み合わせ、あるいは当技術分野で知られている任意の他の適切な任意のコンピューティング・デバイスまたは処理デバイスでよい。論理回路は、ソフトウェア、ハードウェア、またはこれらの何らかの組み合わせで実現することができる。一実施形態では、論理回路は、処理回路612が、複数のM個の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むように構成される。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブまたは非インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。各符号語は、シンボルごとに少なくとも8ビットのサイズを有する所定の数のシンボルを含む。論理回路はまた、処理回路612が、複数のM個の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別するように構成され、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。加えて、論理回路は、処理回路612が、誤りのある符号化データ・ブロックを書き換えるために、特定の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの所定のサブセットから選択するように構成され、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットはD1+D2+1の論理トラックを含み、0<D1+D2<M/4である。論理回路はまた、処理回路612が、第1の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックの第1のものを、順次アクセス媒体の書き換え領域内の特定の論理トラックに書き換えるように構成され、特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。
別の実施形態では、論理回路は、処理回路612が、磁気ヘッドの複数の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むように構成され、データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。また、各符号語は、所定の数のシンボルを含む。論理回路はまた、処理回路612が、磁気ヘッドの複数の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別するように構成され、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。また、論理回路は、処理回路612が、順次アクセス媒体から読み出されたデータ・セットを復号して、誤りのある1つまたは複数の符号化データ・ブロックを決定するように構成され、符号化データ・ブロックが、符号化データ・ブロックが復号された後の閾数の誤りの検出に応じて、誤りがあると決定される。加えて、論理回路は、処理回路612が、誤りのある1つまたは複数の符号化データ・ブロックを書き換えるために、1つまたは複数の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの1つまたは複数の固有の所定のサブセットから選択するように構成され、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットのそれぞれは、3つの論理トラックを含む。さらに、論理回路は、処理回路612が、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックを、順次アクセス媒体の書き換え領域内の1つまたは複数の論理トラックに書き換えるように構成される。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられ、各符号化データ・ブロックが、ガロア体GF(1024)にわたり2つのシンボル・インターリーブされたリードソロモンRS(384,364)C1符号語として順次アクセス媒体に書き込まれる。
さらに別の一般的な実施形態では、論理回路は、処理回路612が、磁気ヘッドの複数の書き込み変換器を使用して、データ・セットを順次アクセス媒体に書き込むように構成され、データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、インターリーブ配置の符号語を含む複数の符号化データ・ブロックを含む。また、各符号語は、所定の数のシンボルを含む。論理回路はまた、処理回路612が、磁気ヘッドの複数の読み出し変換器を使用して、データ・セットを、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出して、誤りのある1つまたは複数の符号化データ・ブロックを識別するように構成され、誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。また、論理回路は、処理回路612が、順次アクセス媒体から読み出されたデータ・セットを復号して、誤りのある1つまたは複数の符号化データ・ブロックを決定するように構成され、符号化データ・ブロックが、符号化データ・ブロックが復号された後の閾数の誤りの検出に応じて、誤りがあると決定される。加えて、論理回路は、処理回路612が、誤りのある1つまたは複数の符号化データ・ブロックを書き換えるために、1つまたは複数の論理トラックを、順次アクセス媒体の書き換え領域内の論理トラックの1つまたは複数の固有の所定のサブセットから選択するように構成され、書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている。論理トラックの所定のサブセットのそれぞれは、3つの論理トラックを含む。さらに、論理回路は、処理回路612が、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックを、順次アクセス媒体の書き換え領域内の1つまたは複数の論理トラックに書き換えるように構成される。特定のサブ・データ・セットからの誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられ、各符号化データ・ブロックが、ガロア体GF(1024)にわたりインターリーブされたリードソロモンRS(768,728)C1符号語として順次アクセス媒体に書き込まれる。
従来の書き換え戦略と組み合わせて使用される現在実施のC1符号では、順次アクセス媒体に記憶されるデータの信号対雑音比(SNR)を低減させると、使用されるC1符号と書き換え方式の組み合わせに起因する高いC1誤り率の故に過度の書き換えが記録時再生処理中に行われるので、ユーザ・データのために使用可能な記憶容量が失われることになる(誤り検出/訂正アルゴリズム、書き換えなどのためのオーバヘッドとして使い尽くされるデータとは異なり)。
したがって、順次アクセス媒体からのデータを記憶/検索するために反復符号化を使用することから得られるすべての潜在的な利点を利用するための改善が、書き換え戦略に必要とされている。具体的には、約1%の書き換え率が達成されるシンボル誤り率を約一桁引き上げることによって、データ・チャネルをより低いSNRで動作させることが望ましい。言い換えると、約1%の書き換え率に対応するC1デコーダ入力におけるシンボル誤り率が1×10−3〜1×10−2の範囲内にあることが望ましい。さらに、現在CWIで利用されている符号語は、誤り訂正能力が比較的小さい。これらの符号語は、1符号語当たり5〜6バイトの誤りデータを訂正するようにしか構成されていない。これにより、閾値は最大で6バイトまでしか選択することができないので、書き換え誤り閾値を選択する自由度が制限される。現在、4つ以上の誤りを含む、C1符号語を用いたCWIが書き換えられる。書き換え誤り閾値を非常に大きい範囲の数値から選択できることは有益であろう。また、データ・セットごとに書き換えられるCWIセットの数を最小限にすることによって、書き換え効率を高めることも望ましい。
次に、図8を参照すると、一実施形態による誤りモデル700が示されている。この誤りモデル700は、誤り伝播を明らかにする簡単な2状態ギルバート・バースト誤りモデルに依拠している。2進ビット誤り値(e)は、誤りの存在を示し、すなわち、e=0(誤りなし)またはe=1(誤り)のどちらかである。誤りモデル700には2つの状態、すなわち、良(G)702(e=0、状態Gにある確率がg)と、不良(B)704(e=1、状態Bにある確率がb)とがある。各状態遷移706、708、710、712は、一対の値(すなわち、誤り値、状態遷移確率)で標示されている。状態B 704は、状態G 702から遷移706(e=1、状態遷移がある確率が1−g)を経由し、定常状態遷移710(e=1、確率がb)を経由して状態B 704のとどまることによって、到達可能である。状態G 702は、状態B 704から遷移708(e=0、状態遷移がある確率が1−b)を経由し、定常状態遷移712(e=0、確率がg)を経由して状態G 702のとどまることによって、到達可能である。この誤りモデル700は、リードソロモン(RS)デコーダ入力における相関ビット誤りを記述するのに使用することができる。1つの手法では、RSデコーダ入力における相関ビット誤りは、2つのパラメータだけで、すなわち、RSデコーダ入力における生ビット誤り確率を表すpbと、状態Bにとどまる確率を表すb(たとえば、1つのデコーダ構成によれば、b=15/16=93.75%)とによって、決定することができる。
pbおよびbの関数としての、状態G 702にとどまる確率(g)は、g=(1−pb)+pb(b−pb)/(1−pb)となる。したがって、状態G 702にある定常状態確率は(1−b)/(2−b−g)であるのに対し、状態B 704にある定常状態確率は(1−g)/(2−b−g)となる。
図9を参照すると、一実施形態による独立ビット誤りモデル800が示されている。この誤りモデル800は、RSデコーダ入力における独立ビット誤りをもたらす付加白色ガウス雑音(AWGN)の非常に簡単な1状態ビット誤りモデルである。この誤りモデル800では、ただ1つの状態802が2つの遷移804、806と共にある。第1の遷移804は誤りなしを示している(e=0、1−pbの状態遷移確率を有する)のに対し、第2の遷移806は誤りを示す(e=1、pbの状態遷移確率を有する)。2進ビット誤り値(e)は、2つの値のうちの1つ、e=0(誤りなしを示す)またはe=1(誤りを示す)どちらかを有し得る。一実施形態によれば、この誤りモデル800は、RSデコーダ入力における生ビット誤り確率を表すただ1つのパラメータpbによって決定される。
図10を参照すると、一実施形態による符号語オブジェクト900の簡略ブロック図が示されている。符号語オブジェクト900は、2つのヘッダ付きCWI902、904を含むが、2つのヘッダ付きCWIを有することには、多く有することも少なく有することもあるので、限定されない。各ヘッダ付きCWI902、904は、それだけには限らないが、ヘッダ906と、1つまたは複数のシンボル・インターリーブされた符号語を一緒に含むCWI908とを含む。
各ヘッダ906は、一実施形態では12バイトのサイズを有するが、本明細書では詳細に説明しない他の実施形態では、もっと長いことも短いこともある。たとえば、ヘッダ906は、6バイト、8バイト、10バイト、14バイト、16バイトなどであり得る。加えて、各CWI908は、一実施形態では960バイトのサイズを有するが、本明細書では詳細に説明しない他の実施形態では、もっと大きいことも小さいこともある。たとえば、CWI908は、984バイト、998バイト、1024バイト、1472バイト、1920バイトなどであり得る。
以下の表1は、3つの異なる実施形態による符号語オブジェクト900に含まれるCWI 908のサイズを示す。各体系は、C1符号がRS(N、K)として表されているリードソロモン(RS)符号を利用し、GF(Q)で表された所定の数のシンボルのガロア体(GF)にわたり生成される。
第1の実施形態では、各CWIは長さが7680ビットであり、データを符号化するために使用されるRS符号は、GF(256)にわたりRS(240,228)であり、1符号語当たり6つの誤りシンボルを訂正する能力が得られる。さらに、インターリーブ深さは4であり、各CWIに4つの符号語が含まれることになり(たとえば、CWI−4)、シンボルを使用する各符号語が8ビットのシンボル・サイズを有する。第2の実施形態では、各CWIは長さが7680ビットであり、データを符号化するために使用されるRS符号は、GF(1024)にわたりRS(384,364)であり、1符号語当たり10個の誤りシンボルを訂正する能力が得られる。さらに、インターリーブ深さは2であり、各CWIに2つの符号語が含まれることになり(たとえば、CWI−2)、シンボルを使用する各符号語が10ビットのシンボル・サイズを有する。第3の実施形態では、各CWIは長さが7680ビットであり、データを符号化するために使用されるRS符号は、GF(1024)にわたりRS(768,728)であり、1符号語当たり20個の誤りシンボルを訂正する能力が得られる。さらに、インターリーブ深さは1あり、各CWIに1つの符号語が含まれることになり(たとえば、CWI−1)、シンボルを使用する各符号語が10ビットのシンボル・サイズを有する。CWI−1、CWI−2およびCWI−4は、インターリーブ配置の符号語(たとえば、CWI−2およびCWI−4)または非インターリーブ配置の符号語(CWI−1)を含む符号化データ・ブロック(EDB)の例である。
これら3つの実施形態は、図11、図12、図13、および図14のグラフに示されるように、それぞれが提供する利点を従来の符号化/復号方式と比べて示すための予測モデルを使用して調べられた。
図11に示されるように、C1デコーダ入力においてb=15/16であるギルバート・バースト誤りモデルを使用して、符号化データ・ブロック書き換えの確率が、C1デコーダ入力におけるシンボル誤り率に対してグラフ化されている。このグラフに表された各シナリオでは、誤り訂正閾値として、特定の符号の最大誤り訂正能力以下に設定された書き換え閾値を仮定している。第1の実施形態では最大誤り訂正能力が6であり、第2の実施形態では最大誤り訂正能力が10であり、第3の実施形態では最大誤り訂正能力が20であることに留意されたい。書き換え閾値は、データが書き換えられるかどうかを指示し、データが書き換えられる前に符号語の中で許容される誤りの数を示し、たとえばデータが、書き換え閾値E以上の符号語の誤りの数に応じて書き換えられる。
図11のグラフでは、上の方の線1002は、N=240であるRS C1符号と、E=4の書き換え閾値と、I=4のインターリーブ深さとを使用する第1の実施形態を表す。中間の線1004は、N=384であるRS符号と、E=8の書き換え閾値と、I=2のインターリーブ深さとを使用する第2の実施形態を表す。下の線1006は、N=768であるRS符号と、E=18の書き換え閾値と、I=1のインターリーブ深さとを使用する第3の実施形態を表す。
図11のグラフで分かるように、どの特定のEDR書き換え率でも、より優れた動作(より大きいシンボル誤り率)が第3の実施形態で達成されており、第2の実施形態の動作が後に続き、次に第1の実施形態が続く。これは、書き換え目的のために、より優れた動作が、C1デコーダの入力でのより大きいシンボル誤り率において同じ書き換え率(y軸に示される)になることによって示されるからである。C1デコーダの入力でのシンボル誤り率がより大きいことは、より低いSNR値で動作するということである。したがって、第3の実施形態は、記憶デバイスが書き換え率を一定に保ちながら最も低いSNRで動作することを可能にする。
ここで図12を参照すると、C1デコーダ入力においてb=15/16であるギルバート・バースト誤りモデルを使用して、1データ・セット(DS)当たりの書き換え符号化データ・ブロック・セットの平均数が、C1デコーダ入力におけるシンボル誤り率に対してグラフ化されている。図12のグラフでは、上の方の線1008は、N=240であるRS符号と、E=4の書き換え閾値と、I=4のインターリーブ深さとを使用して、第1の実施形態を表す。中間の線1010は、N=384であるRS符号と、E=8の書き換え閾値と、I=2のインターリーブ深さとを使用して、第2の実施形態を表す。下の線1012は、N=768であるRS符号と、E=18の書き換え閾値と、I=1のインターリーブ深さとを使用して、第3の実施形態を表す。y軸は、DS中の書き換え符号化データ・ブロック・セットの平均数を示し、101が約5%の書き換え率を表し、100が約0.5%の書き換え率を表す。書き換え率がより小さいと、より優れた動作がこの方式から得られる。
図12のグラフで分かるように、どの特定のシンボル誤り率でも、より優れた動作(より小さい書き換え率)が第3の実施形態で達成されており、第2の実施形態の動作が後に続き、次に第1の実施形態が続く。
図13に示されるように、C1デコーダ入力において独立シンボル誤りモデルを使用して、符号化データ・ブロック書き換えの確率が、C1デコーダ入力におけるシンボル誤り率に対してグラフ化されている。上の方の線1102は、N=240であるRS符号、E=4の書き換え閾値、およびI=4のインターリーブ深さを使用する第1の実施形態を表す。中間の線1104は、N=384であるRS符号と、E=8の書き換え閾値と、I=2のインターリーブ深さとを使用する第2の実施形態を表す。下の線1106は、N=768であるRS符号と、E=18の書き換え閾値と、I=1のインターリーブ深さとを使用する第3の実施形態を表す。
図13のグラフで分かるように、どの特定の符号語書き換え率でも、より優れた動作(より大きいシンボル誤り率)が第3の実施形態で達成されており、第2の実施形態の動作が後に続き、次に第1の実施形態が続く。
ここで図14を参照すると、C1デコーダ入力において独立シンボル誤りモデルを使用して、1DS当たりの書き換え符号化データ・ブロック・セットの平均数が、シンボル誤り率に対してグラフ化されている。図14のグラフでは、上の方の線1108は、N=240であるRS符号と、E=4の書き換え閾値と、I=4のインターリーブ深さとを使用して、第1の実施形態を表す。中間の線1110は、N=384であるRS符号と、E=8の書き換え閾値と、I=2のインターリーブ深さとを使用して、第2の実施形態を表す。下の線1112は、N=768であるRS符号と、E=18の書き換え閾値と、I=1のインターリーブ深さとを使用して、第3の実施形態を表す。y軸は、1DS当たりの書き換え符号化データ・ブロック・セットの平均数を示し、101が約5%の書き換え率を表し、100が約0.5%の書き換え率を表す。書き換え率がより小さいと、より優れた動作がこの方式から得られる。
図14のグラフで分かるように、どの特定のシンボル誤り率でも、より優れた動作(より小さい書き換え率)が第3の実施形態で再び達成されており、第2の実施形態の動作が後に続き、次に第1の実施形態が続く。
図15を参照すると、一例による例示的なフレキシブル書き換え表が示されている。このフレキシブル書き換え表は、以下のパラメータを用いて、すなわちM=32、S=64、R=15、D1=1、D2=1、および合計3つになる書き換え用の論理トラックのサブセットを用いて確立されている。これらのパラメータで、Mはチャネルの総数を示し、SはDS中のサブ・データ・セットの総数を示し、Rは書き換え表の回転パラメータであり、D1+D2+1は論理トラックのサブセットのサイズを示す。当然ながら、同様のフレキシブル書き換え表は、当業者には本明細書を読めば理解されるように、様々な実施形態として本明細書に記載されているシステムおよび方法で実現できる、パラメータの任意の組み合わせを使用して確立することができる。フレキシブル書き換え表は、特定の符号化データ・ブロック(EDB)セットc、および書き換え領域内で書き換えられるべき特定のトラックtについて、どのEDBからEDBセットcと論理トラックtの特定の組み合わせに書き換えることができるかを示す。たとえば、EDBセット1および論理トラック1では、1つの符号化データ・ブロックをサブ・データ・セット34、35、36、37、38、または39のうちの1つだけから書き換えることができる。別の例では、EDBセット3および論理トラック5について、1つの符号化データ・ブロックをサブ・データ・セット46、47、48、49、50、または51のうちの1つだけから書き換えることができる。さらに別の例では、EDBセット2および論理トラック30について、1つの符号化データ・ブロックをサブ・データ・セット62、63、0、1、2、または3のうちの1つだけから書き換えることができる。
フレキシブル書き換え表は、1つの書き換え方式に対しデータを書き換えさせることができる、使用可能な論理トラックを生成するために利用することができる。このように、どの論理トラックでデータを書き換えることができるかを示すフレキシブル書き換え表は、特定のEDBセットからのどれか特定のEDBについてデータを書き換えることができる論理トラックのサブセットを決定するために調べられることがある。
図16〜22の説明では、以下の定義が適用される。順次アクセス媒体は、複数の物理トラックを含む。媒体上の物理トラックとは異なり、論理トラックは、媒体に記憶されるときにデータがどのように分割されるかを示し、各論理トラックはiとして表され、0<i<M−1である。Mは、データを書き込むシステムのチャネルの数、またはテープ・ドライブ、光学ドライブなどのシステムによって同時に書き込まれる順次アクセス媒体の物理トラックの数を表す。論理トラックiは媒体の物理トラックにマッピングされ、一般に論理トラックよりも多くの物理トラックがあるので、多数の論理トラックのセットが媒体の複数の物理トラック全体にわたってマッピングされることになる。
次に図16を参照すると、一実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1300が示されている。方法1300は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図16で詳細に説明されるものよりも多いまたは少ない動作が方法1300には含まれ得る。大文字で表されているパラメータは、方法1300の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1300のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1300は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1300の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図16に示されるように、方法1300は動作1302から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Eは通常、記憶デバイスのファームウェアによって固定され事前設定される。一実施形態では、Eは、書き換え領域が所望の大きさよりも増大しないように、特定の順次アクセス媒体に書き込まれてから記録時再生処理中に読み出されるCWIに生じる誤りの、増加または減少する数に応じて選択することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1304で、データが順次アクセス媒体に書き込まれる。一実施形態では、データは、RS(N,K)によって符号化されたp番のSDSからCWIに編成され、このCWIは、GF(Q)にわたりI個のシンボル・インターリーブされたC1符号語を含む。
pの値は、分析されているサブ・データ・セットの範囲にわたって、0≦p<Sの範囲の任意の値を取ることができる。様々な実施形態では、Iは、1、2、4などに設定することができるが、当業者には理解されるように、インターリーブされた符号語の任意の適切な数に設定することができる。
ガロア体(GF)は、任意の適切な数のシンボルQを有し得る。第1の実施形態では、Qは256に設定され、第2および第3の実施形態では、Qは1024に設定されるが、512、2056、4128などの、当技術分野で知られている任意の値を有し得る。
第1の実施形態によれば、Nは240に設定され、第2の実施形態では、Nは384に設定され、第3の実施形態では、Nは768に設定される。さらに、Nは、当技術分野で知られている任意の適切な値を取り得る。
第1の実施形態では、Kは228に設定され、第2の実施形態では、Kは364に設定され、第3の実施形態では、Kは728に設定される。さらに、Kは、当技術分野で知られている任意の適切な値を取り得る。
動作1306で、書き込まれたばかりのCWIは、記録時再生処理で読み出される。動作1308で、CWIの全符号語が復号されて、符号化されていたC1符号語が決定される。
動作1310で、CWI中のどれかのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIの少なくとも1つのC1符号語を復号できないことに応じて、方法1300は動作1316へジャンプし、さもなければ、p番のSDSからのCWIの全C1符号語を成功裏に復号したことに応じて、方法1300は動作1312へ進む。
動作1312で、どれかの単一の復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りを含むC1符号語がないことに応じて、方法1300は動作1314へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1300は動作1316へ進む。
動作1314で、C1符号語ごとにあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1316で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−D1)mod M、およびb=(floor(p/2)+R*c+D2)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり0≦c、D1は非負定数(たとえば、0、1、2など)、D2は非負定数(たとえば、0、1、2など)であり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。一実施形態では、D1+D2>0である。
動作1318で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1300は動作1320へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1300は動作1322へ進む。
動作1320で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1322で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。
次に図17を参照すると、第1の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1400が示されている。方法1400は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図17で詳細に説明されるものよりも多いまたは少ない動作が方法1400には含まれ得る。大文字で表されているパラメータは、方法1400の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1400のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1400は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1400の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図17に示されるように、方法1400は動作1402から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1404で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(240,228)によって符号化され、CWIは、GF(256)にわたり4つのシンボル・インターリーブされたC1符号語を含む。
動作1406で、書き込まれたばかりのCWIは、GF(256)のシンボルにより記録時再生処理で読み出される。動作1408で、CWIの全符号語が復号されて、符号化されていたC1符号語が決定される。
動作1410で、p番のSDSからのCWI中のどれかのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIの少なくとも1つのC1符号語を復号できないことに応じて、方法1400は動作1416へジャンプし、さもなければ、p番のSDSからのCWIの全C1符号語を成功裏に復号したことに応じて、方法1400は動作1412へ進む。
動作1412で、どれかの単一の復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りを含むC1符号語がないことに応じて、方法1400は動作1414へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1400は動作1416へ進む。
動作1414で、C1符号語ごとにあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1416で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−1)mod M、およびb=(floor(p/2)+R*c+1)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも1つだけ多い、および1つだけ少ない論理トラックが含まれる。
動作1418で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックにtわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1400は動作1420へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1400は動作1422へ進む。
動作1420で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1422で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。
次に図18を参照すると、第2の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1500が示されている。方法1500は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図18で詳細に説明されるものよりも多いまたは少ない動作が方法1500には含まれ得る。大文字で表されているパラメータは、方法1500の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1500のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1500は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1500の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図18に示されるように、方法1500は動作1502から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1504で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(384,364)によって符号化され、CWIは、GF(1024)にわたり2つのシンボル・インターリーブされたC1符号語を含む。
動作1506で、書き込まれたばかりのCWIは、GF(1024)のシンボルにより記録時再生処理で読み出される。動作1508で、CWIの全符号語が復号されて、符号化されていたC1符号語が決定される。
動作1510で、p番のSDSからの現在のCWI中のどれかのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIの少なくとも1つのC1符号語を復号できないことに応じて、方法1500は動作1516へジャンプし、さもなければ、p番のSDSからのCWIの全C1符号語を成功裏に復号したことに応じて、方法1500は動作1512へ進む。
動作1512で、どれかの単一の復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りを含むC1符号語がないことに応じて、方法1500は動作1514へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1500は動作1516へ進む。
動作1514で、C1符号語ごとにあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1516で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−1)mod M、およびb=(floor(p/2)+R*c+1)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも1つだけ多い、および1つだけ少ない論理トラックが含まれる。
動作1518で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1500は動作1520へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1500は動作1522へ進む。
動作1520で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1522で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。
次に図19を参照すると、第3の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1600が示されている。方法1600は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図19で詳細に説明されるものよりも多いまたは少ない動作が方法1600には含まれ得る。大文字で表されているパラメータは、方法1600の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1600のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1600は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1600の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図19に示されるように、方法1600は動作1602から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1604で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(768,728)によって符号化され、CWIは、GF(1024)にわたり1つのC1符号語を含み、したがって、実際には多数の符号語の符号語インターリーブではなく、代わりにただ1つの符号語になる。
動作1606で、書き込まれたばかりのCWIは、GF(1024)のシンボルにより記録時再生処理で読み出される。動作1608で、CWIの符号語が復号されて、符号化されていたC1符号語が決定される。
動作1610で、p番のSDSからの現在のCWIのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIのC1符号語を復号できないことに応じて、方法1600は動作1616へジャンプし、さもなければ、p番のSDSからのCWIのC1符号語を成功裏に復号したことに応じて、方法1600は動作1612へ進む。
動作1612で、復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りをC1符号語が含まないことに応じて、方法1600は動作1614へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1600は動作1616へ進む。
動作1614で、C1符号語にあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1616で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−1)mod M、およびb=(floor(p/2)+R*c+1)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも1つだけ多い、および1つだけ少ない論理トラックが含まれる。
動作1618で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1600は動作1620へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1600は動作1622へ進む。
動作1620で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1622で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)である。
次に図20を参照すると、第4の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1700が示されている。方法1700は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図20で詳細に説明されるものよりも多いまたは少ない動作が方法1700には含まれ得る。大文字で表されているパラメータは、方法1700の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1700のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1700は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1700の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図20に示されるように、方法1700は動作1702から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1704で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(240,228)によって符号化され、CWIは、GF(256)にわたり4つのシンボル・インターリーブされたC1符号語を含む。
動作1706で、書き込まれたばかりのCWIは、GF(256)のシンボルにより記録時再生処理で読み出される。動作1708で、CWIの全符号語が復号されて、符号化されていたC1符号語が決定される。
動作1710で、p番のSDSからのCWI中のどれかのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIの少なくとも1つのC1符号語を復号できないことに応じて、方法1700は動作1716へジャンプし、さもなければ、p番のSDSからのCWIの全C1符号語を成功裏に復号したことに応じて、方法1700は動作1712へ進む。
動作1712で、どれかの単一の復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りを含むC1符号語がないことに応じて、方法1700は動作1714へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1700は動作1716へ進む。
動作1714で、C1符号語ごとにあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1716で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−2)mod M、およびb=(floor(p/2)+R*c+2)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも2つだけ多い、および2つだけ少ない論理トラックが含まれる。
動作1718で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1700は動作1720へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1700は動作1722へ進む。
動作1720で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1722で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)である。
次に図21を参照すると、第5の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1800が示されている。方法1800は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図21で詳細に説明されるものよりも多いまたは少ない動作が方法1800には含まれ得る。大文字で表されているパラメータは、方法1800の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1800のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1800は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1800の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図21に示されるように、方法1800は動作1802から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1804で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(384,364)によって符号化され、CWIは、GF(1024)にわたり2つのシンボル・インターリーブされたC1符号語を含む。
動作1806で、書き込まれたばかりのCWIは、GF(1024)のシンボルにより記録時再生処理で読み出される。動作1808で、CWIの全符号語が復号されて、符号化されていたC1符号語が決定される。
動作1810で、p番のSDSからの現在のCWI中のどれかのC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIの少なくとも1つのC1符号語を復号できないことに応じて、方法1800は動作1816へジャンプし、さもなければ、p番のSDSからのCWIの全C1符号語を成功裏に復号したことに応じて、方法1800は動作1812へ進む。
動作1812で、どれかの単一の復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りを含むC1符号語がないことに応じて、方法1800は動作1814へ移動し、さもなければ、少なくとも1つのC1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1800は動作1816へ進む。
動作1814で、C1符号語ごとにあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1816で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−2)mod M、およびb=(floor(p/2)+R*c+2)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも2つだけ多い、および2つだけ少ない論理トラックが含まれる。
動作1818で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1800は動作1820へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1800は動作1822へ進む。
動作1820で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1822で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)でる。
次に図22を参照すると、第6の実施形態による、順次アクセス媒体にデータを書き込み、読み出すための方法1900が示されている。方法1900は、様々な実施形態で、とりわけ図1〜10に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図22で詳細に説明されるものよりも多いまたは少ない動作が方法1900には含まれ得る。大文字で表されているパラメータは、方法1900の計算全体を通じての定数であり、小文字表記のパラメータは変数である。
方法1900のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法1900は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法1900の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図22に示されるように、方法1900は動作1902から開始することができ、4つのパラメータ値E、R、M、およびSが、ユーザの選好、望ましい結果、順次アクセス媒体を動作させるドライブの仕様、または順次アクセス媒体自体あるいはこれらの組み合わせに応じて、設定される。Eは、書き換えのための誤り閾値を表すために使用され、CWIの書き換えを起動するCWI中の誤りの数に応じて設定することができる。様々な手法では、Eは1から、1符号語当たりの訂正可能な誤りの最大数までの範囲内に設定することができる。Rは、書き換えのための回転パラメータを表すために使用され、この回転パラメータは、書き換え中に順次アクセス媒体のトラックにデータがどのように書き換えられるかを示し、当業者には理解されるものである。様々な手法では、RはMの値に等しい範囲、たとえば、R∈{0,1,2,...,31|M=32}に設定することができる。Mは、チャネルの数を表すために使用され、使用されるドライブに依拠する。Sは、分析されているサンプル・データ・セット中のサブ・データ・セットの数を示し、データがどのように媒体に記憶されるかということに基づく。一実施形態では、S=2*Mである。
動作1904で、SDS pの現在のCWIは順次アクセス媒体に書き込まれる。この実施形態では、SDS pからの現在のCWIはRS(768,728)によって符号化され、CWIは、GF(1024)にわたり1つのC1符号語を含む。
動作1906で、書き込まれたばかりのCWIは、GF(1024)のシンボルにより記録時再生処理で読み出される。動作1908で、CWIの符号語が復号されて、符号化されていたC1符号語が決定される。
動作1910で、p番のSDSからの現在のCWI中のC1符号語が復号できなかったかどうかが決定される。p番のSDSからのCWIのC1符号語を復号できないことに応じて、方法1900は動作1916へジャンプし、さもなければ、p番のSDSからのCWIのC1符号語を成功裏に復号したことに応じて、方法1900は動作1912へ進む。
動作1912で、復号C1符号語中のシンボル誤りの数が、書き換え誤り閾値E以上(たとえば、C1符号語の誤り数≧E)であるかどうかが決定される。少なくともE個のシンボル誤りをC1符号語が含まないことに応じて、方法1900は動作1914へ移動し、さもなければ、C1符号語が少なくともE個のシンボル誤りを含むことに応じて、方法1900は動作1916へ進む。
動作1914で、C1符号語にあるシンボル誤りがE個未満であることの結果として、CWIは成功裏に書き込まれたこと、および有利と考えられる書き換えがないことが決定される。
動作1916で、第1の境界aおよび第2の境界bの、2つの境界が計算される。一実施形態では、a=(floor(p/2)+R*C−2)mod M、およびb=(floor(p/2)+R*c+2)mod Mであり、ここで、cは現在の書き換えCWIセットの数であり、0≦cであり、a<bまたはa>bのいずれか(循環状況の場合)、すなわちa≠bである。これにより、p番のSDSからの現在のCWIが、ある範囲の論理トラックで書き換えられることが可能になり、この範囲には、現在の論理トラックよりも2つだけ多い、および2つだけ少ない論理トラックが含まれる。
動作1918で、書き換えCWIセットcの論理トラックtが書き換えのために使用可能かどうかが決定され、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)であり、0≦t<Mである。現在のSDS pの別のCWIがすでに、書き換えCWIセットc中で特定のトラックtに、(a<bならば、a≦t≦b)または(b<aならば、t≧aまたはt≦b)に対するすべてのそのようなトラックtにわたって、書き換えられるようにスケジュールされているという決定に応じて、論理トラックが書き換えのために使用可能ではない。
書き換えのために使用可能である現在の書き換えCWIセットcに論理トラックがないことに応じて、方法1900は動作1920へ移動し、さもなければ、書き換えのために書き換えCWIセットcで使用可能である論理トラックtに応じて、方法1900は動作1922へ進む。
動作1920で、現在のCWIは、書き換えCWIセットc+nのトラックに書き換えられる。ただしn>0である。言い換えると、現在のCWIは、現在の書き換えCWIセットcを書き換えるために使用されている書き換え領域の部分の次の書き換え領域の部分で書き換えられる。
動作1922で、現在のCWIが書き換えCWIセットcのトラックtで書き換えられ、ここで、(a<bならば、a≦t≦b)および(b<aならば、t≧aまたはt≦b)である。
次に図23を参照すると、一実施形態による、順次アクセス媒体からの不使用トラック、または記憶デバイスの不使用チャネルあるいはその両方を検出する方法2000が示されている。方法2000は、様々な実施形態で、とりわけ図1〜22に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図23で詳細に説明されるものよりも多いまたは少ない動作が方法2000には含まれ得る。
方法2000のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法2000は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法2000の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図23に示されるように、方法2000は動作2002から開始することができ、ここでデータ・セットが、記憶デバイス(テープ・ドライブ、光学ドライブなど)の磁気ヘッドの複数の書き込み変換器を使用して順次アクセス媒体に書き込まれる。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含む。サブ・データ・セットのそれぞれは複数の符号化データ・ブロックを含み、各符号化データ・ブロックは、インターリーブまたは非インターリーブ配置の符号語を有する。各符号語は、所定の数のシンボルを含み、各符号はサイズが、8ビット、10ビット、12ビットなどを含め、8ビット以上である。データは、本明細書の様々な実施形態で説明されている、RS符号などの符号化方式もしくはアルゴリズム、または当技術分野で知られている何か他の符号化方式によって符号化される。
一実施形態によれば、符号化データ・ブロックの符号語のシンボルのそれぞれは、サイズが10ビットである。
一実施形態では、データ・セットは、32チャネル・システムの場合は64個のサブ・データ・セットを含み得る。各符号化データ・ブロックは、順次アクセス媒体との間で記録され読み出される、CWI−4、CWI−2、CWI−1などの最小量のデータを含み得る。たとえば、各サブ・データ・セットは、4つの積符号語を含むことがあり、各行のサブ・データ・セットはCWI−4になる。他の例では、各サブ・データ・セットは、2つの積符号語を含むことがあり、各行のサブ・データ・セットはCWI−2になり、あるいは1つの積符号語を含むことがあり、各行のサブ・データ・セットはCWI−1になる。
一実施形態によれば、データ・セットを順次アクセス媒体に書き込むために使用される複数の書き込み変換器は、少なくともM個に達することがあり、このMは、同時に書き込まれるトラックまたはチャネルの数である。当然ながら、磁気ヘッドは、様々な手法において、M個よりも多い書き込み変換器を備えることがある。1つのこのような手法では、磁気ヘッドは、媒体走行の順方向にデータを書き込むための、M個に等しいいくつかの書き込み変換器と、媒体走行の逆方向にデータを書き込むための、M個に等しいいくつかの追加の書き込み変換器とを含むことがある。
動作2004では、データ・セットは、磁気ヘッドの複数の読み出し変換器を使用して、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出されて、誤りのある1つまたは複数の符号化データ・ブロックが識別される。誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。即時読み出しが意味するのは、最初に順次アクセス媒体に書き込まれた符号化データが、順次アクセス媒体の配置および記憶デバイスの設計に基づいて(たとえば、読み出し変換器および書き込み変換器が磁気ヘッド上に物理的に設置されている場合、読み出し速度および書き込み速度など)、読み出されることが物理的に可能になるとすぐに、記録時再生処理で読み出されることである。
誤りのある符号語、したがって、誤りのある符号語を含む、誤りのある符号化データ・ブロックは、順次アクセス媒体からデータ・セットを記録時再生処理で読み出した後にデータ・セット(または、その何らかの、符号化データ・ブロックなどのサブセット)を復号することにより決定される、符号化データ・ブロックに含まれる誤りの数に基づいて決定される。本明細書でさらに詳細に説明するように、符号語または符号化データ・ブロック中の閾値以上の誤りの数に応じて、その符号語または符号化データ・ブロックには誤りがあると決定され、この決定により、その符号化データ・ブロック、データ・セットのすべて、またはそのいくらか小さいサブセットの、順次アクセス媒体の書き換え領域への書き換えが起動される。
各読み出し変換器は、対応する書き込み変換器によって順次アクセス媒体に書き込まれた後に、記録時再生処理で順次アクセス媒体からデータを読み出すように構成される。コントローラと、コントローラと一体化された、またはコントローラによって実行可能な、あるいはその両方である論理回路とがまた、磁気ヘッドの動作と、磁気ヘッドを横切る順次アクセス媒体の動きとを制御するために含まれる。各読み出し変換器は、記憶されたばかりのデータの記録時再生処理を可能にするために媒体の1つのトラックにデータを記憶するように構成された、対応する書き込み変換器と位置合わせされる。言い換えると、読み出し変換器の出力は、記録時再生中に生成される。
一実施形態によれば、データ・セットを順次アクセス媒体に書き込まれた直後に読み出すために使用される複数の読み出し変換器は、少なくともM個に達することがあり、このMは、記録時再生処理中に同時に書き込まれるトラックまたはチャネルの数である。当然ながら、磁気ヘッドは、様々な手法において、M個よりも多い読み出し変換器を備えることがある。1つのこのような手法では、磁気ヘッドは、媒体走行の順方向に書き込まれたデータを読み出すための、M個に等しいいくつかの読み出し変換器と、媒体の移動を案内するサーボ・トラック/チャネルを読み出すためのいくつかの追加の読み出し変換器とを含むことがある。
動作2006では、特定の論理トラックが、順次アクセス媒体の書き換え領域内論理トラックの所定のサブセットから選択される。この特定のトラックは、誤りのある1つまたは複数の符号化データ・ブロックを識別することに応じて、データ・セットのサブセット(たとえば、誤りのある少なくとも1つの符号化データ・ブロック)を書き換えるために使用される。
論理トラックの所定のサブセットは、D1+D2+1論理トラックを含み、0<D1+D2<M/4である。D1は、負でない少なくともゼロに等しい整数値であり、D2は、負でない少なくともゼロに等しい整数値であり、D1+D2>0である。前述のように、Mは、データ・セットを順次アクセス媒体のM個のトラックに同時に書き込むために使用される書き込み変換器の数である。したがって、論理トラックのサブセットは、同時に書き込まれる媒体のトラックの数Mの4分の1よりも少ないトラックを含む。
フレキシブル書き換え表は、書き換えられたデータを有し得る論理トラックの所定のサブセットを、記憶デバイスおよび順次アクセス媒体の特定のパラメータ、たとえば、M、S、R、D1、D2などを考慮に入れて、決定するために利用することができる。
いくつかの実施形態によれば、書き換え領域内の論理トラックの所定のサブセットは、2つの論理トラック、3つの論理トラック、4つの論理トラック、5つの論理トラック、またはもっと多くの論理トラックを含み得る。
この論理トラックの所定のサブセットは、書き換えデータが、従来の書き換え方式によって書き換え領域に書き換えられるように本来設定されるはずの基本論理トラックを、この書き換え領域の基本論理トラックの先行または後続の追加トラックと共に含むように選択される。
一実施形態では、これらの追加トラックは基本論理トラックと連続しており、たとえば、1、2、3(3つの論理トラックのサブセットの場合)、31、32、33、34、35(32チャネル・アーキテクチャの5つの論理トラックのサブセットの場合)、62、63、0(3つの論理トラックのサブセットの場合)、62、63、0、1、2(循環シナリオを考慮に入れた32チャネル・アーキテクチャの5つの論理トラックのサブセットの場合)、などとなる。
書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている(媒体の順方向移動の方向に)。
所定のサブセット内のどの論理トラックを選択すべきかという選択は、本明細書でさらに詳細に説明するように、1つまたは複数の考慮すべき事項に基づき得る。一実施形態では、論理トラックの選択は、同じサブ・データ・セットの別の符号化データ・ブロック(CWIまたは他のいくらかの量のデータなど)がすでに、所定のサブセットの特定の論理トラックに書き換えられるようにスケジュールされているかどうかに基づく。そうであれば、別の所定のサブセットから別の論理トラックが、循環状態が存在する場合に留意して、現在の符号化データ・ブロックを書き換えるために選択される。さらに、論理トラックの所定のサブセットが連続しており、たとえば、トラック29〜31、トラック0〜2、トラック31、0、1、または何か他の可能な、データを書き換えるために使用可能な論理トラックの全部の所定のサブセットにわたる、連続した論理トラックの組み合わせとなる。
動作2008では、誤りのある1つまたは複数の符号化データ・ブロックまたは符号語あるいはその両方を識別することに応じて、第1の符号化データ・ブロック・セット内の、誤りのある1つまたは複数の符号化データ・ブロックの第1のものが、書き換え領域内の特定の論理トラックに書き換えられる。このようにして、データ・セットの誤った部分(データ・セットのいずれかの部分または全部を含み得る)が順次アクセス媒体に書き換えられて、第1の書き込み中に検出された誤りが訂正される。さらに、1つまたは複数の符号化データ・ブロック・セットが書き換え領域内の別の論理トラックに書き換えられるとき、記録時再生処理が実行され、これにより、さらなる誤りのある符号化データ・ブロックまたは符号語あるいはその両方を検出し、1つまたは複数の符号化データ・ブロック・セットの一部または全部の別の書き換えを起動することができる。
一実施形態によれば、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックが、ガロア体GF(254)にわたり4つのシンボル・インターリーブされたRS(240,228)C1符号語として順次アクセス媒体の書き換え領域に、たとえば、CWI−4と呼ばれる、8ビット・シンボルを符号語ごとに用いて、書き換えられ得る。加えて、最初に順次アクセス媒体に書き換えられたデータ・セットはまた、CWI−4のセットとしても書き換えられ得る。
別の実施形態では、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックが、ガロア体GF(1024)にわたり2つのシンボル・インターリーブされたRS(383,364)C1符号語として順次アクセス媒体の書き換え領域に、たとえば、本明細書でCWI−2と呼ばれる、10ビット・シンボルを符号語ごとに用いて、書き換えられ得る。加えて、最初に順次アクセス媒体に書き換えられたデータ・セットはまた、CWI−2のセットとしても書き換えられ得る。
別の実施形態によれば、1つまたは複数の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックが、ガロア体GF(1024)にわたり1つのRS(768,728)C1符号語として順次アクセス媒体の書き換え領域に、たとえば、本明細書でCWI−1と呼ばれる、10ビット・シンボルを符号語に用いて、書き換えられ得る。加えて、最初に順次アクセス媒体に書き換えられたデータ・セットはまた、CWI−1のセットとしても書き換えられ得る。
一実施形態によれば、方法2000は、順次アクセス媒体の書き換え領域内の論理トラックの所定のサブセットから第2の論理トラックを選択し、次に、第3、第4などの論理トラックを、誤りのある符号化データ・ブロックのすべてがその書き換えられるための適切な論理トラックを有するまで選択することを含み得る。次に、第1の符号化データ・ブロック・セット内の誤りのある1つまたは複数の符号化データ・ブロックの第2のものは、誤りのある1つまたは複数の符号化データ・ブロックの第1のものが、誤りのある1つまたは複数のデータ・ブロックの第2のものと異なるサブ・データ・セットからのものであることに応じて、第2の論理トラックに書き換えられる。誤りのある1つまたは複数の符号化データ・ブロックの第1のものが、誤りのある1つまたは複数のデータ・ブロックの第2のものと異なるサブ・データ・セットからのものではない場合には、誤りのある1つまたは複数のデータ・ブロックの第2のものは、書き換え領域内の別の符号化データ・ブロックに書き換えられる。この手順は、誤りのある符号化データ・ブロックのすべてが書き換え領域で書き換えられるまで繰り返される。
次に図24を参照すると、一実施形態による、順次アクセス媒体の不使用トラック、または記憶デバイスの不使用チャネルあるいはその両方を検出する方法2100が示されている。方法2100は、様々な実施形態で、とりわけ図1〜22に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図24で詳細に説明されるものよりも多いまたは少ない動作が方法2100には含まれ得る。
方法2100のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法2100は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法2100の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図24に示されるように、方法2100は動作2102から開始することができ、ここでデータ・セットが、記憶デバイスの磁気ヘッドの複数の書き込み変換器を使用して順次アクセス媒体に書き込まれる。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含み、各サブ・データ・セットは、それぞれが符号語をインターリーブ配置で有する複数の符号化データ・ブロックを含む。各符号語は、所定の数のシンボルを含む。各シンボルは、サイズが10ビットである。データは、GF(1024)にわたり2つのシンボル・インターリーブされたRS(384,364)C1符号語、たとえば、1サブ・データ・セット当たり2つのCWI−2として符号化される。
動作2104では、データ・セットは、磁気ヘッドの複数の読み出し変換器を使用して、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出されて、誤りのある1つまたは複数の符号化データ・ブロックが識別される。誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含み、この誤りのある符号語は、符号化データ・ブロックの復号中に検出可能である。即時読み出しが意味するのは、最初に順次アクセス媒体に書き込まれたデータ・セットが、順次アクセス媒体の配置およびシステムの設計に基づいて(たとえば、読み出し変換器および書き込み変換器が磁気ヘッド上に物理的に設置されている場合、読み出し速度および書き込み速度など)、読み出されることが物理的に可能になるとすぐに、記録時再生処理で読み出されることである。
誤りのある符号語は、符号化データ・ブロックを順次アクセス媒体から記録時再生処理で読み出した後に復号することにより決定される、符号語に含まれる誤りの数に基づいて決定される。本明細書でさらに詳細に説明するように、符号語中の閾値以上の誤りの数に応じて、その符号語には誤りがあると決定され(したがって、その符号語を含む符号化データ・ブロックには誤りがある)、この決定により、その符号化データ・ブロック(または、書き換え方式に応じて適切な、データ・セットのいくらか小さいサブセットもしくは大きい部分)の、順次アクセス媒体の書き換え領域への書き換えが起動される。
各読み出し変換器は、対応する書き込み変換器によって順次アクセス媒体に書き込まれた後に、記録時再生処理で順次アクセス媒体からデータを読み出すように構成される。コントローラと、コントローラと一体化された、またはコントローラによって実行可能な、あるいはその両方である論理回路とがまた、磁気ヘッドの動作と、磁気ヘッドを横切る順次アクセス媒体の動きとを制御するために含まれる。各読み出し変換器は、記憶されたばかりのデータの記録時再生処理を可能にするために1つのトラックにデータを記憶するように構成された、対応する書き込み変換器と位置合わせされる。言い換えると、読み出し変換器の出力は、記録時再生中に生成される。
動作2106で、順次アクセス媒体から読み出されたデータ・セットが復号されて、誤りのある1つまたは複数の符号化データ・ブロックが決定される。この実施形態では、符号化データ・ブロックまたは符号語あるいはその両方が、その中での閾数(たとえば、ゼロよりは大きいが使用される符号化方式に基づく訂正可能な誤りの最大数未満であるように設定される閾値)の誤りの検出に応じて誤りがあると決定される。この例では、1符号語当たり10個の誤りまで訂正できるRS(384,364)符号をGF(1024)にわたり使用して、閾値を符号語ごとに1から10までの範囲に設定することができる。符号化データ・ブロック内の誤りのある符号語が検出されると、その符号化データ・ブロックに誤りがあると決定されることになり、その書き換えが結果としてスケジュールされる。
動作2108で、1つまたは複数の論理トラックが、順次アクセス媒体の書き換え領域内の3つの論理トラックの、1つまたは複数の固有の所定のサブセット内から選択される。これらの特定のトラックは、誤りのある1つまたは複数の符号化データ・ブロックを識別することに応じて誤りのある符号化データ・ブロックを書き換えるために使用される。3つの論理トラックの固有の所定のサブセットが意味するのは、論理トラックのそれぞれのサブセットが、SDS数と符号化データ・ブロック・セット数のどの特定の組み合わせでも3つの論理トラックの他のどのサブセットとも異なる3つの論理トラックを含むという点で、異なるということである。当然ながら、いくつかの論理トラックが多数のサブセットに現れることがある。たとえば、トラック5が、トラックの3つのサブセット、すなわち、3、4、5;4、5、6;5、6、7に現れることがある。しかし、論理トラック5を含む論理トラックのこれらのサブセットのそれぞれが、互いに固有である。
フレキシブル書き換え表は、書き換えられたデータを有し得る3つの論理トラックの所定のサブセットを、記憶デバイスおよび順次アクセス媒体の特定のパラメータ、たとえば、M、S、R、D1、D2などを考慮に入れて、決定するために利用することができる。
論理トラックのサブセットのそれぞれは、誤りのある符号化データ・ブロックが、従来の書き換え方式によって書き換え領域に書き換えられるように本来設定されるはずの基本論理トラックを、この書き換え領域の基本論理トラックの先行または後続の追加トラックと共に含むように選択される。
書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている(媒体の順方向移動の方向に)
論理トラックの所定のサブセットのうちの1つの中のどの論理トラックを選択すべきかという選択は、本明細書でさらに詳細に説明するように、1つまたは複数の考慮すべき事項に基づき得る。一実施形態では、論理トラックの選択は、同じサブ・データ・セットの別の符号化データ・ブロック(CWIまたは他のいくらかの量のデータなど)がすでに、論理トラックの所定のサブセットの特定の論理トラックに書き換えられるようにスケジュールされているかどうかに基づく。そうであれば、論理トラックの別のサブセットから別の論理トラックが、循環状態が存在する場合に留意して、現在の符号化データ・ブロックを書き換えるために選択される。さらに、一実施形態では、論理トラックのサブセットが連続しており、たとえば、トラック29〜31、トラック0〜2、トラック31、0、1、または何か他の可能な、論理トラックの全部のセットにわたる連続した3つの論理トラックの組み合わせとなる。
動作2110では、誤りのある1つまたは複数の符号化データ・ブロックまたは符号語あるいはその両方を識別することに応じて、誤りのある1つまたは複数の符号語を含む、誤りのある1つまたは複数の符号化データ・ブロックが、書き換え領域内の1つまたは複数の論理トラックに書き換えられる。このようにして、データ・セットの誤りのある部分(データ・セットのいずれかの部分または全部を含み得る)が順次アクセス媒体に書き換えられて、第1の書き込み中に検出された誤りが訂正される。さらに、誤りのある1つまたは複数の符号化データ・ブロックが書き換えられるとき、記録時再生処理が実行され、これにより、さらなる誤りのある符号化データ・ブロックまたは符号語あるいはその両方を検出し、誤りのある1つまたは複数の符号化データ・ブロック・セットの一部または全部の別の書き換えを起動することができる。
この実施形態では、特定のサブ・データ・セットからの、誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。特定のサブ・データ・セットからの、誤りがある別の符号化データ・ブロックを書き換えるために、書き換え領域内の別の符号化データ・ブロック・セットが使用される。
次に図25を参照すると、一実施形態による、順次アクセス媒体の不使用トラック、または記憶デバイスの不使用チャネルあるいはその両方を検出する方法2200が示されている。方法2200は、様々な実施形態で、とりわけ図1〜22に図示された環境のいずれかにおいて、本発明によって実行することができる。当然ながら、本明細書を読めば当業者には理解されるように、図25で詳細に説明されるものよりも多いまたは少ない動作が方法2200には含まれ得る。
方法2200のステップのそれぞれは、動作環境の任意の適切な構成要素によって実行することができる。たとえば、様々な実施形態では、方法2200は、コントローラ、プロセッサ、テープ・ドライブ、光学ドライブ、または1つもしくは複数のプロセッサを有する何か他のデバイスによって、部分的にも全体的にも実行することができる。プロセッサ(たとえば処理回路、チップ、または、ハードウェアもしくはソフトウェアまたはその両方として実装されるモジュールあるいはこれらの組み合わせであり、好ましくは少なくとも1つのハードウェア構成要素を有する)は、方法2200の1つまたは複数のステップを実行するための任意のデバイスで利用することができる。例示的なプロセッサとしては、それだけには限らないが、CPU、ASIC、FPGAなど、これらの組み合わせ、または当技術分野で知られている他の適切な任意のコンピューティング・デバイスが挙げられる。
図25に示されるように、方法2200は動作2202から開始することができ、ここでデータ・セットが、記憶デバイスの磁気ヘッドの複数の書き込み変換器を使用して順次アクセス媒体に書き込まれる。データ・セットは、いくつかの固定サイズのサブ・データ・セットを含む。サブ・データ・セットのそれぞれは複数の符号化データ・ブロックを含み、各符号化データ・ブロックは、非インターリーブ配置の符号語を有する。各符号語は、所定の数のシンボルを含み、各シンボルはサイズが10ビットである。データは、GF(1024)にわたり1つのRS(768,728)C1符号語、たとえば、1サブ・データ・セット当たり1つのCWI−1として符号化される。
動作2204では、データ・セットは、磁気ヘッドの複数の読み出し変換器を使用して、記録時再生処理で順次アクセス媒体に書き込まれた直後に読み出されて、誤りのある1つまたは複数の符号化データ・ブロックが識別される。誤りのある1つまたは複数の符号化データ・ブロックのそれぞれは、誤りのある少なくとも1つの符号語を含む。即時読み出しが意味するのは、最初に順次アクセス媒体に書き込まれたデータ・セットが、順次アクセス媒体の配置および記憶デバイスの設計に基づいて(たとえば、読み出し変換器および書き込み変換器が磁気ヘッド上に物理的に設置されている場合、読み出し速度および書き込み速度など)、読み出されることが物理的に可能になるとすぐに、記録時再生処理で読み出されることである。
誤りのある符号語、したがって、誤りのある符号語を含む誤りのある符号化データ・ブロックは、データ・セットまたはその一部分を順次アクセス媒体から記録時再生処理で読み出した後に復号することにより決定される、符号語に含まれる誤りの数に基づいて決定される。本明細書でさらに詳細に説明するように、符号語または符号化データ・ブロック中の閾値以上の誤りの数に応じて、その符号語または符号化データ・ブロックには誤りがあると決定され、この決定により、その符号化データ・ブロック(または、データ・セットのいくらか小さいサブセットもしくは大きい部分)の、順次アクセス媒体の書き換え領域への書き換えが起動される。
各読み出し変換器は、対応する書き込み変換器によって順次アクセス媒体に書き込まれた後に、記録時再生処理で順次アクセス媒体からデータを読み出すように構成される。コントローラと、コントローラと一体化された、またはコントローラによって実行可能な、あるいはその両方である論理回路とがまた、磁気ヘッドの動作と、磁気ヘッドを横切る順次アクセス媒体の動きとを制御するために含まれる。各読み出し変換器は、記憶されたばかりのデータの記録時再生処理を可能にするために媒体の1つのトラックにデータを記憶するように構成された、対応する書き込み変換器と位置合わせされる。言い換えると、読み出し変換器の出力は、記録時再生中に生成される。
動作2206で、順次アクセス媒体から読み出されたデータ・セットを復号されて、誤りのある1つまたは複数の符号語または符号化データ・ブロックあるいはその両方が決定される。この実施形態では、符号化データ・ブロックまたは符号語あるいはその両方が、その中での閾数(たとえば、ゼロよりは大きいが使用される符号化方式に基づく訂正可能な誤りの最大数未満であるように設定される閾値)の誤りの検出に応じて誤りがあると決定される。この例では、1符号語当たり20個の誤りまで訂正できるRS(768,728)符号をGF(1024)にわたり使用して、閾値を符号語ごとに1から20までの範囲に設定することができる。符号化データ・ブロック内の誤りのある符号語が検出されると、その符号化データ・ブロックに誤りがあると決定されることになり、その書き換えが結果としてスケジュールされる。
動作2208で、1つまたは複数の論理トラックが、順次アクセス媒体の書き換え領域内の5つの論理トラックの、1つまたは複数の固有の所定のサブセット内から選択される。これらの特定のトラックは、誤りのある1つまたは複数の符号化データ・ブロックを識別することに応じて誤りのある符号化データ・ブロックを書き換えるために使用される。5つの論理トラックの固有の所定のサブセットが意味するのは、論理トラックのそれぞれのサブセットが、SDS数と符号化データ・ブロック・セット数のどの特定の組み合わせでも5つの論理トラックの他のどのサブセットとも異なる5つの論理トラックを含むという点で、異なるということである。当然ながら、いくつかの論理トラックが多数のサブセットに現れることがある。たとえば、トラック5が、トラックの5つのサブセット、すなわち、1、2、3、4、5;2、3、4、5、6;4、5、6、7、8;5、6、7、8、9に現れることがある。しかし、論理トラック5を含む論理トラックのこれらのサブセットのそれぞれが、互いに固有である。
フレキシブル書き換え表は、書き換えられたデータを有し得る5つの論理トラックの所定のサブセットを、記憶デバイスおよび順次アクセス媒体の特定のパラメータ、たとえば、M、S、R、D1、D2などを考慮に入れて、決定するために利用することができる。
論理トラックのサブセットのそれぞれは、誤りのある符号化データ・ブロックが、従来の書き換え方式によって書き換え領域に書き換えられるように本来設定されるはずの基本論理トラックを、この書き換え領域の基本論理トラックの先行または後続の追加トラックと共に含むように選択される。
書き換え領域は、順次アクセス媒体に最初に書き込まれるデータ・セットの位置の次に配置されている(媒体の順方向移動の方向に)。
論理トラックの所定のサブセットのうちの1つの中のどの論理トラックを選択すべきかという選択は、本明細書でさらに詳細に説明するように、1つまたは複数の考慮すべき事項に基づき得る。一実施形態では、論理トラックの選択は、同じサブ・データ・セットの別の符号化データ・ブロック(CWIまたは他のいくらかの量のデータなど)がすでに、論理トラックの所定のサブセットの特定の論理トラックに書き換えられるようにスケジュールされているかどうかに基づく。そうであれば、論理トラックの別の所定のサブセットから別の論理トラックが、循環状態が存在する場合に留意して、現在の符号化データ・ブロックを書き換えるために選択される。さらに、論理トラックのサブセットが連続しており、たとえば、トラック29〜33、トラック0〜4、トラック31、0、1、2、3、または何か他の可能な、論理トラックの全部のセットにわたる連続した5つの論理トラックの組み合わせとなる。
動作2210では、誤りのある1つまたは複数の符号化データ・ブロックまたは符号語あるいはその両方を識別することに応じて、誤りのある1つまたは複数の符号語を含む、誤りのある1つまたは複数の符号化データ・ブロックが、書き換え領域内の1つまたは複数の論理トラックに書き換えられる。このようにして、データ・セットの誤りのある部分(データ・セットのいずれかの部分または全部を含み得る)が順次アクセス媒体に書き換えられて、第1の書き込み中に検出された誤りが訂正される。さらに、誤りのある1つまたは複数の符号化データ・ブロックが書き換えられるとき、記録時再生処理が実行され、これにより、さらなる誤りのある符号化データ・ブロックまたは符号語あるいはその両方を検出し、誤りのある1つまたは複数の符号化データ・ブロック・セットの一部または全部の別の書き換えを起動することができる。
この実施形態では、特定のサブ・データ・セットからの、誤りのあるただ1つの符号化データ・ブロックが、書き換え領域内の単一の符号化データ・ブロック・セットで書き換えられる。特定のサブ・データ・セットからの、誤りがある別の符号化データ・ブロックを書き換えるために、書き換え領域内の別の符号化データ・ブロック・セットが使用される。
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせであり得る。コンピュータ・プログラム製品には、プロセッサに本発明の諸態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体が含まれ得る。
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それだけには限らないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組み合わせでよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録された溝の形の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組み合わせが含まれる。本明細書で使用されるように、コンピュータ可読記憶媒体は、それ自体で、電波または他の自由伝搬する電磁波、導波管または他の伝送媒体を伝播する電磁波(たとえば、光ファイバ・ケーブルを進む光パルス)、または電線を通して伝送される電気信号などの、一過性の信号であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイス/処理デバイスに、またはネットワーク(たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組み合わせ)を介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを含み得る。各コンピューティング・デバイス/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング・デバイス/処理デバイスの中のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または1つもしくは複数のプログラム言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードのいずれかとすることができ、このプログラム言語には、Smalltalk、C++などのオブジェクト指向プログラム言語、および「C」プログラム言語または同様のプログラム言語などの従来の手続き型プログラム言語が含まれる。コンピュー可読プログラム命令は、ユーザのコンピュータ上で全部を、ユーザのコンピュータ上で一部を、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で一部を、かつリモート・コンピュータ上で一部を、またはリモート・コンピュータもしくはサーバ上で全部を実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータと接続することができ、あるいは、この接続を外部のコンピュータと行うことができる(たとえば、インターネット・サービス・プロバイダを用いてインターネット経由で)。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
本発明の諸態様が、本発明の実施形態による、流れ図または方法、装置(システム)、およびコンピュータ・プログラム製品のブロック図あるいはその両方に関して本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることを理解されたい。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内で指定された機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに供給して1つの機械を生み出すことができる。コンピュータ、プログラム可能データ処理装置、または特定の方法で機能する他のデバイスあるいはその組み合わせに指示できる、これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内で指定された機能/動作の態様を実施する命令を含む製品を備えるように、コンピュータ可読記憶媒体に記憶することもできる。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロック内で指定された機能/動作を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、一連の動作ステップをコンピュータ、他のプログラム可能装置または他のデバイス上で、コンピュータで実施される処理が生じるように実行させることができる。
図の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の実現可能な実施態様のアーキテクチャ、機能および動作を示す。この関連で、流れ図またはブロック図の各ブロックは、命令のモジュール、セグメントまたは一部分を表すことができ、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む。いくつかの代替実施態様では、ブロック内に示された機能は、図に示された順序から外れて行われることがある。たとえば、連続して示された2つのブロックが、実際には、実質的に同時に実行されることがあり、あるいは場合によってブロックが、含まれる機能に応じて逆の順序で実行されることがある。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェアによるシステムによって実現できることもまた留意されたい。
さらに、様々な実施形態によるシステムが、プロセッサと一体化された、またはプロセッサによって実行可能な、あるいはその両方であるプロセッサおよび論理回路を含むことができ、この論理回路は、本明細書に挙げた処理ステップの1つまたは複数を実行するように構成されている。一体化された、が意味するのは、プロセッサに論理回路が、ASIC、FPGAなどのハードウェア論理回路として埋め込まれているということである。プロセッサによって実行可能な、が意味するのは、論理回路が、ハードウェア論理回路、ファームウェアなどのソフトウェア論理、オペレーティング・システムの一部、アプリケーション・プログラムの一部などである、あるいは、プロセッサによってアクセス可能であり、かつプロセッサによって実行されると何らかの機能をプロセッサが行うように構成されている、ハードウェア論理回路とソフトウェア論理の何らかの組み合わせである、ということである。ソフトウェア論理は、当技術分野で知られている任意のメモリ・タイプの、局所または遠隔あるいはその両方のメモリに記憶することができる。当技術分野で知られている、ソフトウェア・プロセッサ・モジュール、またはASIC、FPGA、CPU、集積回路(IC)、グラフィック処理ユニット(GPI)などのハードウェア・プロセッサ、あるいはその両方などの、任意のプロセッサが使用され得る。
上記のシステムまたは方法あるいはその両方の様々な特徴がどのようにも組み合わされて、上に提示された説明から複数の組み合わせを作り出せ得ることが明らかであろう。
本発明の実施形態が、サービスをオン・デマンドで提供するために顧客の利益になるように配備されるサービスの形で実現され得ることがさらに理解されよう。
様々な実施形態について上述したが、これらは例として提示されたにすぎず、限定するものではないことを理解されたい。したがって、好ましい実施形態の広がりおよび範囲は、上述の例示的な実施形態のいずれによっても限定されるべきではなく、添付の特許請求の範囲およびその等価物によってのみ定義されるべきである。