したがって本出願人は、データ・ストレージに関する改良型の変調コーディング技法が依然として求められていると考える。
したがって、本発明の第1の態様によれば、入力ビット・シーケンスの一部またはすべてに変調コーディングを適用するステップと、変調コーディングが適用された後、入力ビット・シーケンスの1つまたは複数の選択された部分をプレコーディングするステップと、を有する、入力ビット・シーケンスのエンコーディング方法が提供される。
本発明の第2の態様によれば、入力ビット・シーケンスの一部またはすべてに変調コーディングを適用するための手段と、変調コーディングが適用された後、入力ビット・シーケンスの1つまたは複数の選択された部分をプレコーディングするための手段と、を有する、入力ビット・シーケンスをエンコーディングするための装置が提供される。
本発明の第3の態様によれば、変調エンコーダから受信したデータ・ビットにプレコーディングを適用するためのプレコーダが提供され、当該プレコーダは、変調エンコードから受信したデータ・ビットを選択的にプレコーディングするための手段を有する。
本出願人は、エンコードされることになるビット・シーケンスに対してより選択的にプレコーディングを使用することが可能であるため、入力ビット・シーケンス全体をプレコーディングする必要なしに、プレコーディングの使用が保持できることを理解している。したがって、入力ビット・シーケンスの選択された部分のみにプレコーディングを適用することができる。これにより、適用されるプレコーディングの量(したがって、プレコーディングが原因のエラー伝搬のリスク)は減少するが、プレコーディングの使用がまったくなくなるわけではない。したがって本発明は、すべての入力ストリームに対してプレコーディングを使用する(「グローバル」プレコーディング)か、またはプレコーディングをまったく使用しない(プレコーダなし)、従来技術のシステムに比べて、選択的または「ローカル」なプレコーディングを効果的に使用するものである。
一般に、あるシーケンスの1つまたは複数の選択部分をプレコーディングするということは、このシーケンスのすべての部分ではなく、1つまたは複数の選択部分をプレコーディングするものと解釈される。この解釈は、以下で説明する、対応する逆のプロセスおよび装置にも適用可能である。
プレコーディングされる入力ビット・シーケンスの一部または複数部分は、所望に応じて選択することができる。特に好ましい実施形態では、変調コーディングが適用された入力ビット・シーケンスの部分がプレコーディングされる。これは、前述のように、プレコーディングの利点が変調コーディング・プロセスを支援するという点であることから、有利である。したがって、変調コーディングされた入力ビット・シーケンスの部分をプレコーディングすることによって、最も有用に適用される場所で本発明の選択的プレコーディングが使用される。好ましくは、プレコーディングは、変調コーディングが適用されたビット・シーケンスのすべての部分に適用される。最も好ましくは、プレコーディングは、変調コーディングが適用されたビット・シーケンスの部分にのみ適用される。
したがって、変調コーディングが入力ビット・シーケンスの部分にのみ適用される(すなわち、変調コーディングの後、ビット・シーケンスにはいくつかの変調コーディング済みビットと、変調コーディングされていない(すなわち、変調コーディングの変更を経験していない)いくつかのビットとが含まれるような)システムでは、たとえば、参照によりその全文が本明細書に組み込まれた、米国特許第5604497号および第5784010号に記載されているように、プレコーディングは、好ましくは変調コーディング済みビットにのみ適用され、コーディングされていないビットには適用されない。言い換えれば、特に好ましい実施形態では、プレコーディングの適用を規定する基準は、変調エンコーダの出力時に、(最も好ましくは)エンコーディングされたビットがプレコーディングされ、コーディングされていないビット(すなわち、変調エンコーダによって変更されていないビット)はプレコーディングされずに、ビットがエンコーディングされるか否かである。これにより、データが読み出された場合に、非変調コーディング済みビットに対して逆プレコーディングを実行する必要がなくなるため、エラー伝搬が減少し、エラー・レート性能が向上する。したがって、本発明の好ましい配置構成は、(所与のビット・シーケンスまたはブロック、たとえばコードワード内で)、ランダム・データまたは変調コーディング済みデータのいずれで動作するかに応じてオンおよびオフされる、プレコーダである。
こうした配置構成は、新しく、かつそれ自体で有利であると考えられる。したがって、本発明の第4の態様によれば、入力ビット・シーケンスの選択された一部または複数部分に変調コーディングを適用するステップと、変調コーディングされていないいかなるデータ・ビットもプレコーディングせずに、変調コーディングによってエンコーディングされたデータ・ビットにプレコーディングを適用するステップと、を有する、ビット・シーケンスをエンコーディングする方法が提供される。
本発明の第5の態様によれば、入力ビット・シーケンスの選択された一部または複数部分に変調コーディングを適用するための手段と、変調コーディングされていないいかなるデータ・ビットもプレコーディングせずに、変調コーディングによってエンコーディングされたデータ・ビットにプレコーディングを適用するための手段と、を有する、ビット・シーケンスをエンコーディングするための装置が提供される。
本発明の第6の態様によれば、変調エンコーダから受信したデータ・ビットにプレコーディングを適用するためのプレコーダが提供され、当該プレコーダは、変調エンコーダによって変調コーディングされた受信したデータ・ビットであるか否かに基づいて、変調エンコードから受信したデータ・ビットを選択的にプレコーディングするための手段を有する。
あるシーケンスの1つまたは複数の選択部分を変調コーディングするということは、このシーケンスのすべての部分ではなく、1つまたは複数の選択部分を変調コーディングするものと解釈される。この解釈は、以下で説明する、対応する逆のプロセスおよび装置にも適用可能である。
プレコーディングは、既存の1/(1オープラスD)または1/(1オープラスD2)プレコーディング・スキームを使用するなどの、任意の好適な方式で実施可能である。当業者であれば理解されるように、使用する実際のプレコーディング・スキームは、たとえば、使用されている変調コーディング技法に応じて決定することができる。通常、プレコーダは、メモリを有する線形回路としてインプリメントされることになる。
本発明で使用される変調コーディングは、こうした、すなわち入力データに制約を課すコーディングの任意の好適な形とすることができる。したがって、たとえば既知の(d,k)、(G,I)、およびMTR(j,k)コードを使用することができる。変調コーディングは、入力ビット・シーケンス内のすべてのビットに、または入力ビット・シーケンス内の選択されたビット(すなわち部分、たとえばバイト)のみに、適用可能である(たとえば米国特許第5604497号および第5784010号に記載)。特定の好ましい実施形態では、変調コーディングは、入力ビット・シーケンスの選択された部分(たとえば、ブロックまたはコードワード)のみに適用される。
変調エンコーディングの出力は、たとえば線形様式の変調エンコーダからの出力である場合、選択的プレコーディング・ステージに提供可能である。しかしながら、特に好ましい実施形態では、データ・シーケンス内の変調エンコーディング・ステージから出力されるビットの位置が変更される。最も好ましくは、変調コーディング済みビットは、最も好ましくはそれらをデータ・シーケンスの所与のブロック内でより等しい間隔を置いて配置するために、(たとえば、ビットの変調コーディング済みグループ間のビット・シーケンス内の最大ギャップを、変調コーディング済みビットが再分散されなかった場合よりも小さくするように(あるいは、たとえばギャップをより等しくするように、またはその両方のために))、データ・シーケンスを介して分散される。
したがって、好ましい実施形態では、プレコーディングが適用される前に、変調コーディング・ステージからの出力は順序変更(permute)される(すなわち、ビットの順序が混ぜ合わされ、入力データ・シーケンス内のビット位置が交換される)。こうした順序変更は、たとえば、オリジナルの入力データ・シーケンス内で隣接するビットまたはビットのブロックを、等しい間隔を置いて配置するように構成することができる。
プレコーディングに先立って、変調コーディング済みデータ・ビットを分散または順序変更することの利点は、こうした分散(たとえば順序変更)がさらにタイミング回復要件などを支援することがわかっていることである。したがって、たとえば入力ビット・シーケンスの選択部分のみが変調コーディングされる配置構成の場合、本発明の特に好ましい実施形態では、ビット・シーケンスの変調コーディング済み部分は複数の(より小さい)部片に分散され、その後これらの部片は、たとえば、それらを間隔を置いて離して配置するか、あるいは再配列する、またはその両方のように、すなわち、コーディング済みデータの「部片」が、変調コーディング・ステップ後に同じく出力される未コーディング(未変調コーディング)ビット間で分散されるように、ビット・シーケンス内の位置に移動される。その後プレコーディング・ステージでは、好ましくは、変調コーディング済みビットを「順序変更済み」ビット・シーケンスで選択的にプレコーディングする。
さらに本出願人は、変調エンコーディングの後プレコーディングに先立ってデータ・シーケンスで出力されるビットの位置を移動(変更)することにより、(ビット分散パターンの適切な選択により)、たとえば、変調コーディング済みデータ・シーケンスの所与の部分をデータ・シーケンス内の特定の所望の場所に配置することが可能になると理解している。特に、たとえば変調コーディング済みビットを、たとえば使用されているエラー訂正コーディングおよび変調コーディング・スキームに関係なく、プレコーダによって認められるのと同じビット・シーケンス内の位置に効果的に配置することができる。
したがって、たとえば適切な変調コーディング済みビットの分散または順序変更スキームを使用することにより、同じ、未変更の、いわゆる「内部チャネル」(すなわちプレコーダ、書き込み/読み取りステージ、検出器、および逆プレコーダ)配置構成を、異なる外部エラー訂正コーディング・プロセスで使用する(すなわち、異なる外部エラー訂正コーディング・プロセスで動作可能にするために「内部チャネル」を変更する必要がないように)ことができる。したがって、たとえばリード・ソロモン・コーディングが使用される場合、前述のような「順序変更」を使用することにより、同じ「内部チャネル」(および変調コーディング・スキーム)を異なるリード・ソロモン・コード・シンボル・サイズに使用できるようになる。
これは、現在の外部リード・ソロモン・エラー訂正コードが通常は8ビット・シンボルに基づくものであるが、(約0.3dBの性能利得を提供するように)10ビットのリード・ソロモン・シンボルの使用への移動があるため、特に有利である。したがって、8ビットまたは10ビットのいずれかのリード・ソロモン・コードで動作可能なシステムを提供することが望ましい。本発明は、同じ「内部チャネル」を2つの異なるリード・ソロモン・シンボル・サイズで使用できるようにする、変調コーディングの出力の「順序変更」によって、これを容易にする。
データ・ストレージ・システム内で変調エンコーダの出力を再配列または順序変更することはすでに知られている可能性があるが、本出願人は、採用されることになる「外部」またはエラー訂正コードに関連してこうした再配列または順序変更を実行するという観念が、新しい、それ自体で有利なものである可能性がある、と考える。したがって、本発明の第7の態様によれば、データ・シーケンスをエラー訂正コーディングするステップと、エラー訂正コーディング済みデータ・シーケンスのすべてまたは一部を変調エンコーディングするステップと、変調エンコーディング・ステップの後に、データ・シーケンスのエラー訂正コーディングに使用されるエラー訂正コードに基づいてデータ・シーケンス内の変調コーディング済みビット位置を変更するステップと、を有する、ストレージ用にデータ・シーケンスをエンコーディングする方法が提供される。
本発明の第8の態様によれば、データ・シーケンスをエラー訂正コーディングするための手段と、エラー訂正コーディング済みデータ・シーケンスのすべてまたは一部を変調エンコーディングするための手段と、変調エンコーディング・ステップの後に、データ・シーケンスのエラー訂正コーディングに使用されるエラー訂正コードに基づいてデータ・シーケンス内の変調コーディング済みビット位置を変更するための手段と、を有する、ストレージ用にデータ・シーケンスをエンコーディングするための装置が提供される。
本発明の第9の態様によれば、データ・シーケンスをエラー訂正コーディングするステップと、エラー訂正コーディング済みデータ・シーケンスのすべてまたは一部を変調エンコーディングするステップと、変調エンコーディング・ステップの後に、データ・シーケンスのプレコーディングに使用されるプレコーディングに基づいてデータ・シーケンス内の変調コーディング済みビット位置を変更するステップと、を有する、ストレージ用にデータ・シーケンスをエンコーディングする方法が提供される。
本発明の第10の態様によれば、データ・シーケンスをエラー訂正コーディングするための手段と、エラー訂正コーディング済みデータ・シーケンスのすべてまたは一部を変調エンコーディングするための手段と、変調エンコーディング・ステップの後に、データ・シーケンスのプレコーディングに使用されるプレコーディングに基づいてデータ・シーケンス内の変調コーディング済みビット位置を変更するための手段と、を有する、ストレージ用にデータ・シーケンスをエンコーディングするための装置が提供される。
本発明のこれらの態様では、変調コーディング済みビット・シーケンスは、エラー訂正コーディング・スキーム(たとえば、リード・ソロモン・コーディング・シンボル・サイズ)、または使用される「内部チャネル」(たとえばプレコーディング・スキーム)に従って選択される、(順序変更)スキームを使用して、変調コーディング・ステージ後に再配列(順序変更)される。(当業者であれば理解されるように、変調コーディング・スキームも、通常、データ・シーケンスをエラー訂正コーディングする際に使用されるエラー訂正コードに基づいて選択される。)
本発明のこれらの態様および実施形態は、本明細書に記載された発明の好ましい特徴およびオプションの特徴のうち、任意の1つまたは複数あるいはすべてを含むことができる。したがって好ましくは、たとえば、「順序変更」が実行された後のデータの選択的またはローカルなプレコーディングの他のステップを含む。所望であれば、プレコーダなしのシステムでこの技法を使用することも可能である。
本発明は、変調コーディングおよび選択的プレコーディングのステップに加えて、たとえば、変調コーディングに先立ってエラー訂正コーディング(リード・ソロモン・コードなど)を適用すること、および、ローカル・プレコーディング・ステップの後に(すなわち、データがストレージ・メディアに書き込まれる直前に)データ・ビットをパリティ・コーディングすることなど、データをストレージ用にコーディングする際に通常採用される任意の1つまたは複数の他のプロセスを含むことができる。
本発明は、ストレージ・メディアからデータを読み取り、その後、オリジナル・ユーザ・データを復元するためにコーディングを除去する、逆プロセスにも適用可能である。したがってこうしたプロセスでは、逆プレコーディングは、データの格納時にプレコーディングが適用された場合にのみ適用されることになる。
したがって、本発明の第11の態様によれば、読み取ったビット・シーケンスの1つまたは複数の選択部分を逆プレコーディングするステップと、逆プレコーディングが適用された後に、読み取ったビット・シーケンスの一部またはすべてに変調デコーディングを適用するステップとを有する、ストレージ・メディアから読み取ったビット・シーケンスをデコーディングする方法が提供される。
本発明の第12の態様によれば、読み取ったビット・シーケンスの1つまたは複数の選択部分を逆プレコーディングするための手段と、逆プレコーディングが適用された後に、読み取ったビット・シーケンスの一部またはすべてに変調デコーディングを適用するための手段とを有する、ストレージ・メディアから読み取ったビット・シーケンスをデコーディングするための装置が提供される。
本発明の第13の態様によれば、ストレージ・メディアから読み取ったデータ・ビットに逆プレコーディングを適用するための逆プレコーダが提供され、当該逆プレコーダは、ストレージ・メディアから読み取ったデータ・ビットを選択的に逆プレコーディングするための手段を有する。
本発明の第14の態様によれば、変調コーディングされていないいかなるデータ・ビットも逆プレコーディングしないが、変調コーディングによってエンコーディングされた読み取ったデータ・ビットに逆プレコーディングを適用するステップと、変調エンコーディングされた読み取ったデータ・ビット・シーケンスの一部または複数部分に変調デコーディングを適用するステップとを有する、ストレージ・メディアから読み取ったビット・シーケンスをデコーディングする方法が提供される。
本発明の第15の態様によれば、変調コーディングされていないいかなるデータ・ビットも逆プレコーディングしないが、変調コーディングによってエンコーディングされた読み取ったデータ・ビットに逆プレコーディングを適用するための手段と、変調エンコーディングされた読み取ったデータ・ビット・シーケンスの一部または複数部分に変調デコーディングを適用するための手段とを有する、ストレージ・メディアから読み取ったビット・シーケンスをデコーディングするための装置が提供される。
本発明の第16の態様によれば、ストレージ・メディアから読み取ったデータ・ビットに逆プレコーディングを適用するための逆プレコーダが提供され、当該逆プレコーダは、読み取ったデータ・ビットが変調エンコーダによって変調コーディングされているか否かに基づいて、ストレージ・メディアから読み取ったデータ・ビットを選択的に逆プレコーディングするための手段を有する。
本発明の第17の態様によれば、読み取ったデータ・シーケンス内のビットの位置を変更するステップと、再配列されたデータ・シーケンスのすべてまたは一部を変調デコーディングするステップと、変調デコーディング・ステップ後にデータ・シーケンスをエラー訂正デコーディングするステップとを有し、読み取ったデータ・シーケンス内のビット位置の変更は、データ・シーケンスをエラー訂正コーディングする際に使用されるエラー訂正コーディングに基づくものである、ストレージ・メディアから読み取ったデータ・シーケンスをデコーディングする方法が提供される。
本発明の第18の態様によれば、読み取ったデータ・シーケンス内のビットの位置を変更するための手段と、再配列されたデータ・シーケンスのすべてまたは一部を変調デコーディングするための手段と、変調デコーディング・ステップ後にデータ・シーケンスをエラー訂正デコーディングするための手段とを有し、読み取ったデータ・シーケンス内のビット位置の変更は、データ・シーケンスをエラー訂正コーディングする際に使用されるエラー訂正コーディングに基づくものである、ストレージ・メディアから読み取ったデータ・シーケンスをデコーディングするための装置が提供される。
本発明の第19の態様によれば、読み取ったデータ・シーケンス内のビットの位置を変更するステップと、再配列されたデータ・シーケンスのすべてまたは一部を変調デコーディングするステップと、変調デコーディング・ステップ後にデータ・シーケンスをエラー訂正デコーディングするステップとを有し、読み取ったデータ・シーケンス内のビット位置の変更は、データ・シーケンスを逆プレコーディングする際に使用される逆プレコーディングに基づくものである、ストレージ・メディアから読み取ったデータ・シーケンスをデコーディングする方法が提供される。
本発明の第20の態様によれば、読み取ったデータ・シーケンス内のビットの位置を変更するための手段と、再配列されたデータ・シーケンスのすべてまたは一部を変調デコーディングするための手段と、変調デコーディング・ステップ後にデータ・シーケンスをエラー訂正デコーディングするための手段とを有し、読み取ったデータ・シーケンス内のビット位置の変更は、データ・シーケンスを逆プレコーディングする際に使用される逆プレコーディングに基づくものである、ストレージ・メディアから読み取ったデータ・シーケンスをデコーディングするための装置が提供される。
当業者であれば理解されるように、本発明のこれらの態様および実施形態は、本発明の前述の好ましい特徴およびオプションの特徴のうち、任意の1つまたは複数あるいはすべてを適宜(たとえば、エンコーディング・プロセスでのそれらの適用に対する適切な「逆」形式で)含むことができる。
本発明は、一般に、ストレージ・デバイスおよびシステムならびにソフトウェアと、データ・レコーディング方法およびコードに適用可能である。これは、特に磁気テープ・ドライブなどの磁気ストレージ・システムおよびハード・ディスク・ドライブに適用可能であるが、これに限るものではない。また、たとえば光データ・ストレージ・システムでも使用可能である。したがって、サーバ、デスクトップ、および移動ドライブで、特定の適用例を見出すことになろう。
本発明は、任意の適切なデータ・ストレージ・システムにおいて、および当該システムに対して、使用可能である。当業者であれば理解されるように、こうした用途において、本発明の好ましい諸実施形態では、少なくとも格納するために入力されたユーザ・データは、通常第一に、何らかの方法で圧縮またはソース・コーディングされ、次いで、その後適用される何らかの形のエラー訂正コーディング(リード・ソロモン・コーディングなど)で通常のサイズの部分またはコードワードに分割されることになる。次のステージは、エラー訂正コーディング済みビット・シーケンスのすべてまたは一部に、変調(制約付き)コーディングを適用することである。その後、所望であれば(前述のように)ビット・シーケンスを順序変更することが可能であり、その後、ビット・シーケンスの選択された部分(好ましくは、変調コーディングされた部分のみ)に「ローカル」プレコーディングが適用されることになる。最後に、ストレージ用にデータがストレージ・メディアに書き込まれる前に、わずかな数のパリティ・ビットを追加することができる。(当業者であれば理解されるように、所望であれば上記ステップの順序は変更可能である(さらに、1つまたは複数のステップは省略可能である)。たとえば、一部のシステムでは、エラー訂正コーディング・ステージに先立って、何らかの形の変調コーディングを適用することが知られている。)ストレージ・メディアからデータを読み取り、オリジナル・ユーザ・データを復元することが、逆プロセスである。
本発明は、本発明に従って作成および格納されたデータ・シーケンスにも及ぶ。したがって、本発明の第21の態様によれば、データ・シーケンスの1つまたは複数の部分が変調コーディング済みであり、データ・シーケンスの1つまたは複数であるがすべてではない部分がプレコーディングされた、エラー訂正コーディング済みデータ・シーケンスが提供される。
ここでも、このデータ・シーケンスは、本明細書で論じる発明の好ましい特徴およびオプションの特徴のうち、任意の1つまたは複数あるいはすべてを含む。したがって、たとえば好ましくは、1つまたは複数のパリティ・ビットをさらに含み、好ましくは、データ・シーケンスを介して変調コーディング済みの一部または複数部分が順序変更される(すなわち、その後データ・シーケンス内で分けられるより小さな部片に分割される)。
本発明は、本発明の任意の上記装置および方法を含むかまたは使用する、あるいは本発明に従ってデータ・シーケンスを格納する、またはその両方の、データ・ストレージ・システムにも及ぶ。
本発明に従った方法は、少なくとも部分的にソフトウェア、たとえばコンピュータ・プログラムを使用してインプリメントすることができる。したがって、他の態様から見れば、本発明は、データ処理手段上にインストールされた場合に特に前述の方法を実施するように適合されたコンピュータ・ソフトウェア、ならびに、プログラム要素がデータ処理手段上で実行された場合に前述の方法を実行するためのコンピュータ・ソフトウェア・コード部分を有するコンピュータ・プログラム要素を、提供することがわかるであろう。本発明は、データのエンコーディングあるいはデコーディングまたはその両方のシステム、ないしはデータ処理手段を有するデータ・ストレージ・システムを動作させるために使用される場合に、当該データ処理手段と共に、当該システムに本発明の方法の諸ステップを実施させる、こうしたソフトウェアを有する、コンピュータ・ソフトウェア・キャリアにも及ぶ。こうしたコンピュータ・ソフトウェア・キャリアは、ROMチップ、CD ROM、またはディスクなどの物理ストレージ・メディアとするか、あるいは、電線を介した電子信号、光信号、または衛星などへの無線信号、その他などの信号とすることができる。
さらに、コンピュータ・ソフトウェアが本発明の方法のすべてのステップを必ずしも実施する必要がないこと、したがってさらに広義な態様から、本発明がコンピュータ・ソフトウェアおよび前述の諸方法の諸ステップのうちの少なくとも1つを実施するためにコンピュータ・ソフトウェア・キャリア上にインストールされたこうしたソフトウェアを提供することを理解されよう。
したがって本発明は、コンピュータ・システムと共に使用するコンピュータ・プログラムとして好適に具体化することができる。こうしたインプリメンテーションは、たとえばディスケット、CD−ROM、ROM、またはハード・ディスクといったコンピュータ読み取り可能メディアなどの、有形メディア上に固定されるか、ないしは、光またはアナログ通信回線を含むがこれらに限定されることのない有形メディアを介して、あるいは、マイクロ波、赤外線、または他の伝送技法を含むがこれらに限定されることのない無線技法を使用して無形に、モデムまたは他のインターフェース・デバイスを通してコンピュータ・システムに伝送可能な、一連のコンピュータ読み取り可能命令を有することができる。この一連のコンピュータ読み取り可能命令は、本明細書で前述した機能のすべてまたは一部を具体化する。
当業者であれば、こうしたコンピュータ読み取り可能命令が、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するために、いくつかのプログラミング言語で作成可能であることを理解されるであろう。さらにこうした命令は、半導体、磁気、または光を含むがこれらに限定されることのない現在または将来の任意のメモリ技術を使用して格納するか、あるいは、光、赤外線、またはマイクロ波を含むがこれらに限定されることのない現在または将来の任意の通信技術を使用して伝送することができる。こうしたコンピュータ・プログラムは、たとえばソフトウェア・パッケージなどの印刷文書または電子文書を添付した、コンピュータ・システムのたとえばシステムROMまたは固定ディスク上に事前ローディングされた、あるいは、たとえばインターネットまたはワールド・ワイド・ウェブなどのネットワークを介してサーバまたは電子掲示板から配布された、取り外し可能メディアとして配布可能であることが企図される。
次に、本発明のいくつかの好ましい実施形態について、単なる例として添付の図面を参照しながら説明する。
図1は、本発明が適用可能なタイプのデータ・ストレージ・システムを示す概略図である。このデータ・ストレージ・システムは、レコーディング・チャネル3のストレージ・メディア4(たとえば、ハード・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスクなどとすることができる)に書き込まれる入力書き込みデータをエンコーディングするためのエンコーダ・サブシステム1と、読み取りデータを生成する(オリジナルのユーザ書き込みデータを複製するものとする)ためにレコーディング・チャネル3から検出された信号をデコーディングするためのデコーダ・サブシステム2とを有する。このデータ・ストレージ・システムは、所望に応じてインプリメント可能である。たとえば、エンコーダ・サブシステム1およびデコーダ・サブシステム2は、単一の特定用途向け集積回路(ASIC)としてインプリメント可能である。
図2は、本発明に従った図1に示されたタイプのデータ・ストレージ・システムの好ましい実施形態を示す概略図である。図2に示された実施形態では、エンコーダ・サブシステム1は、エラー訂正コード・エンコーダ11(この例ではリード・ソロモン(RS)エンコーダの形式)、変調エンコーダ12、およびプレコーダ13を有する。同様に、デコーダ・サブシステム2は、検出器14、逆プレコーダ15、チャネル・デコーダ16、およびエラー訂正コード・デコーダ17(相応して、リード・ソロモン(RS)デコーダの形式)を有する。
この実施形態では、エラー訂正エンコーダ11は、エラー訂正コードを着信ユーザ・ビット・ストリームに適用し、たとえば、この着信ユーザ・ビット・ストリームを8ビット・バイトなどのシンボル・シーケンスに変換する。この実施形態では、リード・ソロモン・エラー訂正コードが使用されるが、他のエラー訂正コードも可能である。
変調エンコーダ12は、いわゆる変調または制約付きコーディングをエラー訂正コーディング済みビット・ストリームに適用する。この変調エンコーディングは、たとえば(d,k)、(G,I)、またはMTR(j,k)コーディングを有することができる。以下でより詳しく説明するように、この実施形態での変調コーディングは、ビット・ストリームの選択された部分にのみ適用される。
プレコーダ13は、いわゆるプレコーディングを変調エンコーディング済みビット・ストリームに適用する。こうしたプレコーディングは、変調エンコーダ12の出力における遷移を、レコーディング・チャネル3内でのレコーディングに好適なレベルに変換する。前述のようにおよび以下でより詳しく論じるように、このプレコーディングはビット・ストリームの選択された部分にのみ適用される。プレコーディングは、たとえば1/(1オープラスD)または1/(1オープラスD2)プレコーディングを有することができる。
本発明のこれらの実施形態では、以下でより詳細に説明するように、変調エンコーダ12の後、プレコーダ13によってプレコーディングが適用される前にビット・シーケンスが順序変更される、さらなる順序変更ステップがある。(これは図2に示されていない。)1つまたは複数のパリティ・ビットを、ストレージ・メディア4に書き込まれる前にビット・シーケンスに追加することも好ましい(これも図2には示されていない)。
デコーダ・サブシステム2は、逆の様式で動作する。したがって、検出器14が格納されたデータをレコーディング・チャネル3から受け取り、逆プレコーダ15がプレコーディングを除去し、その後ビット・ストリームの順序変更が逆転され(図示せず)、変調デコーダ16が変調コーディングを除去して、その後エラー訂正コード・デコーダ17によって出力ユーザ・ビット・ストリームに変換されるシンボルを提供する。
図2に示されたようなシステムでは、プレコーダ13と検出器14との間に概略的に示されている「チャネル」3は、たとえば、書き込み事前補償(precompensation)、磁気ストレージ・デバイスなどへの書き込み処理、ストレージ・デバイスからの(磁気)信号読み取り、読み取り信号の様々な増幅およびフィルタリング・ステージ、アナログ−デジタル変換、等化、およびデジタル・フィルタリングなどを含む、信号処理機能の諸ステップまたはチェーンを効果的に含む。その後検出器14は、逆プレコーダ15に提供するために、チャネル3への入力時に現れるそのビットの最良推定値を(すなわち、チャネル3の効果を「取り消し」て、プレコーダ13の出力を再生成するために)生成しようと試みる。
図3は、本発明の好ましい実施形態の変調コーディング、順序変更、および選択的(ローカル)プレコーディングのステップを示す概略図である。図3に示されるように、例示的な初期の96ビット・データ・ブロック(すでにエラー訂正コーディング済み)が、最初にレート8/9変調エンコーディングされる。この変調エンコーディングは、図3に示されるように、96ビット・ブロック内の2バイト(8ビット部分)にのみ適用される。初期のデータ・ブロック内の残りのビットは、変調コーディング・ステップ後も変更されないままである。
その後、順序変更ステップがあり、変調エンコーディング済みデータ部分(ここでは9ビット長さ)および変調コーディングされていないビット・シーケンスの隣接部分が、より小さな部分に分割され、その後、図3に示されるようにビット・ブロック全体にわたって分離および分散される。この実施形態では、順序変更は図に示されるように3つのより小さなデータ部分を使用してこれらを移動および再配列するが、もちろん他の配置構成も可能である。
この順序変更ステップは、特に、システムのタイミング・ループに関するコーディング済みデータのラン・レングス制約を適合させるために使用される。とりわけ図3からわかるように、順序変更ステップの後、変調コーディング済みビットは分割され、ビット・シーケンス内でより均等に広がる(分散される)。変調コーディング済みビットは「制約付き」であるため、これらビットの再分散は、コーディング済みビットの部分間での未コーディング(したがって制約なし)・ビットの広がりが(順序変更なしの場合よりも)小さいこと、すなわち、制約付きビットがビット・シーケンス全体にわたってより均等に分散されることを意味する。これによって、タイミング回復が支援される。
順序変更ステップを使用して、プレコーディング・ステージで見られるように、変調コーディング済みビットをデータ・シーケンス内の所望のポイントに配置することもできる。これは特に、たとえば異なる所与のエラー訂正コーディングおよび変調コーディング・スキームが、ビット・シーケンス内の異なる位置に変調コーディング済みビットを生成する場合、使用されているエラー訂正コーディングおよび変調コーディング・スキームに関係なく、図3に示されたような順序変更を使用して、プレコーディング・ステージで見られるようにビット・シーケンス内の同じ位置に変調コーディング済みビットを常に配置できることを意味する。これにより、たとえば同じプレコーダなどを、異なるエラー訂正コーディングおよび変調コーディング・スキームで使用できるようになる。
データ・シーケンスが順序変更された後、図3に示されるように、データ・ブロックの選択された部分のみに(および特に、(現在順序変更された)変調エンコーディング済みビットを含むデータ・ブロックの部分に)プレコーディングが適用される。前述のように、この選択的プレコーディングは、エラーの伝搬を減少させるのに役立つ。図3に示されるように、初期の96ビット・エラー訂正コーディング済みコードワードからストレージ用の102ビット・コードワードを提供するために、最終的には4パリティ・ビットが生成される。
次に、本発明に従って動作する好適なデータ・エンコーディングおよびデコーディング・スキームのいくつかの好ましい実施形態について、図4から図35を参照しながら説明する。これらの諸実施形態は、8ビットまたは10ビットのエラー訂正コード(リード・ソロモン・コード)と共に使用し、変調コーディング用に同じレート8/9変調コードを使用するように設計される(以下でより詳細に説明する)。
以下の諸実施形態では、以下の論理規約が使用されることになる。すべての2進数あるいはビット・グループまたはバイト・グループの場合、最下位ビット(LSB)は常に「指標0」であり、最上位ビット(MSB)まで指標が増加していく。MSBは常に左に表示され、LSBは常に右側に表示される。データがストレージ・メディアに書き込まれる場合、情報(バイト、ワード、ブロック)は第1にMSBに送られる。データがストレージ・メディアから読み取られる場合、情報(バイト、ワード、ブロック)は第1にMSBから受け取られる。
アレイa[m:0]は要素a(m)、a(m−1)、・・・a(0)からなり、ここでa(m)は最古(the least recent)ビットであり、a(0)は最新ビットである。時間が増加するほど、指標が減少することに留意されたい。演算子「&」、「オープラス」は、それぞれブール演算「and」、「xor」を表すために使用される。たとえばこれらの実施形態では、ローカル・プレコーディング演算(1/(1オープラスD
2)プレコーディング)は、式
によって指定され、上式でc(i)はプレコーダの入力でのビットであり、d(i)はプレコーダの出力でのビットであり、m(i)は指標iでのマスキング・ビットである。言い換えれば、m(i)=0の場合d(i)=c(i)(プレコーディングなし)であり、m(i)=1の場合d(i)=c(i)オープラスd(i+2)(プレコーディング)である。
同様に、ローカル逆プレコーディング演算は、式
によって指定され、上式でg(i)は逆プレコーダの入力でのビットであり、h(i)は逆プレコーダの出力でのビットであり、m(i)は指標iでのマスキング・ビットである。言い換えれば、m(i)=0の場合h(i)=g(i)(逆プレコーディングなし)であり、m(i)=1の場合h(i)=g(i)オープラスg(i+2)(逆プレコーディング)である。
以下の諸実施形態では、コード・レート96/100および96/102が8ビット・エラー訂正コードに使用され、コード・レート96/100および96/102が10ビット・エラー訂正コードに使用される。表1は、これらの新しいコードのプロパティをリスト表示したものである。
この表では、「レート」はコーディング・レートであり、「パリティ」はパリティ・ビットの数であり、「ECC」はリード・ソロモン・エラー訂正コード・シンボル・サイズであり、「k」、「j」、および「I」は変調コードによって課せられた制約であって、ここで「k+1」はチャネル入力での最大ラン・レングスであり、「j」はチャネル入力での連続遷移の最大数であり、「I」は変調コーディングの出力での奇数または偶数のビット位置(どちらか大きい方)における連続ゼロの最大数である。
表1のコードはレート8/9変調コードに基づくものである。表2は、この変調コードに関する8ビット・ワードから9ビット・ワードへのマッピングを示す。
このコードに関連付けられたエンコーダおよびデコーダは、それぞれブロック・エンコーダおよびブロック・デコーダである。レート8/9コードに関するブロック・エンコーダおよびデコーダは、表2を使用して設計することができる。したがって、たとえば表2内の256の正しい9ビット出力ワードすべてを8ビット入力バイトに割り当てなければならず、表2には現れていない残りの256の正しくない9ビット出力ワードは、常に全ゼロ・バイト、または、好ましくはデコーダをインプリメントするためのブール論理が最小化されるように選択された256バイト・セットの、いずれかにマッピングされる。
図4は、8ビット・エラー訂正コードに関するレート96/100エンコーダの形の本発明の第1の実施形態を示す。変調エンコーディング・ステージへの入力、a[95:0]は、12の8ビット・バイト、B11、B10、・・・、B0を有する、エラー訂正コーディング済みデータ・ブロック30からなる。図4に示されるように、変調エンコーディング・ステージ31では、表2に示されたレート8/9変調コードを使用して、バイトB8およびB2がそれぞれ9ビット・コードワードにマッピング(変調コーディング)される。データ・ブロック内の残りのバイトは、変調コーディング・ステージによって変更されずに残る。
このように変調エンコーディングされたビット・ブロック32は、その後、図4に示されるように順序変更される(ステップ33)。順序変更前のエンコーディング済み信号はb[97:0]で示され、順序変更後のエンコーディング済み信号35はc[97:0]で示される。
順序変更後、ビット・ブロックの選択部分にプレコーディングが適用される(ステップ36)。プレコーディングは、前述のようにプレコーディングされることになるビットを示すために「マスク」を使用することで決定される。この実施形態では、ローカル・プレコーディングを実行するために必要なマスキング・ビットm(i)、0≦i≦97は、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0によって与えられる。ローカル・プレコーディング後のエンコーディング済み信号37は、d[97:0]で示される。最終的に、生成プログラム多項式1+x2を使用して2つのパリティ・ビットが算出され、ビット・ブロックに挿入される(ステップ38)。結果として生じる変調/パリティ・コードワード39はe[99:0]であり、これがストレージ・メディアに書き込まれることになる。
図5は、エンコーディング済みデータを回復するために使用可能な、対応するレート96/100デコーダを示す図である。デコーダの入力50、f[99:0]は、パリティ・ビットの除去(ステップ51)後、g[97:0]にマッピングされる。「完全な」システムでは、入力f[99:0]はe[99:0](すなわち、コーディング・プロセスの出力)と同じになるが、典型的には、たとえば読み出されたデータ内のエラーにより、同じにならない場合がある。
その後、プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦97を使用して、アレイh[97:0]を取得するために、ローカル逆プレコーディングが実行され(ステップ53)、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後データ・ブロックが逆順序変更(ステップ55)され、その後アレイi[97:0]が取得される。
次に、コードワードi[97:0]のうちの適切な2バイトが表2のレート8/9コードを使用して変調デコーディングされ(ステップ57)、エラー訂正デコーディング・ステージへの入力(図示せず)のために、アレイj[95:0]となるレート96/100デコーダの出力58が与えられる。
16状態の時変化検出器格子のインプリメンテーションに関連する、格納されたデータ・コードワードe[99:0]中の制約は、位置51でj=2、位置77、74、28、および25でj=3、位置51および2でk=2、位置77、74、28、および25でk=3である。
図6は、8ビット・エラー訂正コードに関するレート96/102エンコーダの形の他の好ましい実施形態を示す。このエンコーダは、2つではなく4つのパリティ・ビットが使用されることを除いて、基本的には図4に示されたものと同じである。
したがって、エラー訂正コーディング後のエンコーダの入力、a[95:0]は、ここでも12個の8ビット・バイト、B11、B10、・・・、B0からなる。ここでもバイトB8およびB2は、表2のレート8/9変調コードを使用して、9ビット・コードワードにマッピングするために変調コーディングされる。残りのバイトは変更されないままである。このようにエンコーディングされた信号b[97:0]は、その後、信号c[97:0]を得るために図6に示されるように順序変更される。
順序変更された信号は、その後、マスキング・ビットm(i)、0≦i≦97を使用して選択的プレコーディングされ、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、ここでもd[97:0]で示される。最終的に、生成プログラム多項式1+x+x4を使用して4つのパリティ・ビットが算出され、挿入される。ストレージ・メディア上に格納するための、結果として生じる変調/パリティ・コードワード39はe[101:0]である。
図7は、対応するレート96/102デコーダを示す。ここでもプロセスは、除去する必要のあるパリティ・ビットの数を除いて、本質的に図5に示されたものと同じである。
したがって、ストレージ・メディアから読み取られたデコーダの入力f[101:0]は、パリティ・ビットを除去することによってg[97:0]にマッピングされる。その後、アレイh[97:0]を取得するために、ローカル逆プレコーディングが実行される。プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦97が使用され、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[97:0]を得るために逆順序変更が適用される。最終的に、適切なバイトにレート8/9デコーディングが適用され、エラー訂正デコーディング・ステージに提供するためのレート96/102デコーダの出力(アレイj[95:0])が与えられる。
16状態の時変化検出器格子のインプリメンテーションに関連する、この実施形態の格納されたデータ・コードワードe[101:0]中の制約は、位置53および4でj=2、位置79、76、30、および27でj=3、位置53および4でk=2、位置79、76、30、および27でk=3である。
図8から図12は、10ビット・エラー訂正コードに関するレート96/100の形の本発明の他の実施形態の5つの位相を示す。
レート96/100を使用して10ビット・エラー訂正コードをインプリメントする場合、(適宜10で割り切れる480/500エンコーディングのブロック全体を得るために)エンコーディングの5つの連続する「位相」をインプリメントする必要があり、その後、そのエンコーディング「位相」が順に連続して反復される(すなわち、第1の96ビットが位相「0」エンコーディングされ、次の96ビットが位相「1」エンコーディングされ、次の96ビットが位相「2」エンコーディングされ、次の96ビットが位相「3」エンコーディングされ、次の96ビットが位相「4」エンコーディングされ、次の96ビットが位相「0」エンコーディングされ、次の96ビットが位相「1」エンコーディングされる、という具合である)。
本実施形態では、各位相におけるエンコーダの入力は、非整数の10ビット・バイトに対応する、エラー訂正コーディング済みデータ・ブロックa[95:0]である。各位相において、表2のレート8/9変調コードを使用して、2つの10ビット・バイトを11ビット・コードワードにマッピングするために、変調コーディングが適用される。(ここでも、残りのバイトは変更されずに変調エンコーディング・ステージを通過する。)
このようにエンコーディングされた信号b[97:0]は、その後、図に示されるように各位相において順序変更され、順序変更済みデータ・ブロックc[97:0]が与えられる。順序変更された信号は、その後、マスキング・ビットm(i)、0≦i≦97を使用して選択的にプレコーディングされ、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディングの後のエンコーディング済み信号は、ここでもd[97:0]で示される。最終的に生成プログラム多項式1+x2を使用して2つのパリティ・ビットが算出され、挿入される。結果として生じるストレージ用の変調/パリティ・コードワードはe[99:0]である。
図13から図17は、対応するレート96/100デコーダの5つの位相を示す。各位相において、デコーダの入力f[99:0]は、パリティ・ビットを除去することによってg[97:0]にマッピングされる。その後、アレイh[97:0]を取得するために、プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦97を使用して、ローカル逆プレコーディングが実行され、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[97:0]を得るために逆順序変更が適用される。最終的に、適切な11ビット・コードワードにレート8/9デコーディングが適用され、レート96/100デコーダの出力、アレイj[95:0]が与えられる。
16状態の時変化検出器格子のインプリメンテーションに関連する、格納されたデータ・コードワードe[99:0]中の制約は、位置51および2でj=2、位置77、74、28、および25でj=3、位置51および2でk=2、位置77、74、28、および25でk=3である。
図18から図22は、10ビット・エラー訂正コードに関するレート96/102の形の本発明の他の実施形態の5つの位相を示す。各位相におけるエンコーダの入力は、ここでも、非整数の10ビット・バイトに対応する、エラー訂正コーディング済みデータ・ブロックa[95:0]である。各位相において、表2のレート8/9変調コードを使用して、2つの10ビット・バイトを11ビット・コードワードにマッピングするためにのみ、変調コーディングが適用される。
このようにエンコーディングされた信号b[97:0]は、その後、図に示されるように順序変更され、順序変更済みデータ・ブロックc[97:0]が与えられる。順序変更された信号は、その後、マスキング・ビットm(i)、0≦i≦97を使用して選択的にプレコーディングされ、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディングの後のエンコーディング済み信号は、ここでもd[97:0]で示される。最終的に生成プログラム多項式1+x+x4を使用して4つのパリティ・ビットが算出され、挿入される。結果として生じるストレージ用の変調/パリティ・コードワードはe[101:0]である。
図23から図27は、対応するレート96/102デコーダの5つの位相を示す。各位相において、デコーダの入力f[101:0]は、前述のようにパリティ・ビットを除去することによってg[97:0]にマッピングされる。その後、アレイh[97:0]を取得するために、プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦97を使用して、ローカル逆プレコーディングが実行され、i=77、76、75、74、73、72、51、50、49、28、27、26、25、24、23、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[97:0]を得るために逆順序変更が適用される。最終的に、適切な2つの11ビット・コードワードにレート8/9デコーディングが適用され、レート96/102デコーダの出力、アレイj[95:0]が与えられる。
16状態の時変化検出器格子のインプリメンテーションに関連する、この実施形態における格納されたコードワードe[101:0]中の制約は、位置53および4でj=2、位置79、76、30、および27でj=3、位置53および4でk=2、位置79、76、30、および27でk=3である。
次に、本発明に従って動作する、好適なデータのエンコーディングおよびデコーディング・スキームのいくつかのより好適な実施形態について、図28から図31を参照しながら説明する。これらの実施形態では、10ビット・エラー訂正コード(リード・ソロモン・コード)に関する100/104および100/106のコード・レートを使用する。これらは、変調コーディング用に、前述の諸実施形態の場合と同じレート8/9変調コードを使用する(すなわち、表2に示された変調コード)。
表3は、これらの新しいコードのプロパティを列挙したものである(表1と同じ規約を使用)。
図28は、10ビット・エラー訂正コードに関するレート100/104エンコーダを示す。
エンコーダの入力、a[99:0]は、10個の10ビット・バイト、B9、・・・、B0からなる。バイトB7およびB2は、表2のレート8/9変調コードを使用して11ビット・コードワードにマッピングするために変調コーディングされる。残りのバイトは変更されないままである。このようにエンコーディングされた信号、b[101:0]は、その後図28に示されるように順序変更され、信号c[101:0]が与えられる。
順序変更された信号は、その後マスキング・ビットm(i)、0≦i≦101を使用して選択的にプレコーディングされ、i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0の場合m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、d[101:0]で示される。最終的に、生成プログラム多項式1+x2を使用して2つのパリティ・ビットが算出され、挿入される。結果として生じる変調/パリティ・コードワードはe[103:0]である。
図29は、対応するレート100/104デコーダを示す。デコーダの入力f[103:0]は、パリティ・ビットを除去することによってg[101:0]にマッピングされる。その後、アレイh[101:0]を取得するために、ローカル逆プレコーディングが実行される。プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦101が使用され、i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[101:0]を得るために逆順序変更が適用される。最終的に、適切なバイトにレート8/9デコーディングが適用され、アレイj[99:0]となるレート100/104デコーダの出力が与えられる。
16状態の時変化検出器格子のインプリメンテーションに関連する、データ・コードワードe[103:0]中の制約は、位置53および2でj=2、位置81、78、30、および27でj=3、位置53および2でk=2、位置81、78、30、および27でk=3である。
図30は、10ビット・エラー訂正コードに関するレート100/106エンコーダの形の他の好ましい実施形態を示す。エンコーダの入力、a[99:0]は、10個の10ビット・バイト、B9、・・・、B0からなる。バイトB7およびB2は、表2のレート8/9変調コードを使用して11ビット・コードワードにマッピングするために変調コーディングされる。残りのバイトは変更されないままである。このようにエンコーディングされた信号、b[101:0]は、その後図30に示されるように順序変更され、信号c[101:0]が与えられる。
順序変更された信号は、その後マスキング・ビットm(i)、0≦i≦101を使用して選択的にプレコーディングされ、i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0の場合m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、d[101:0]で示される。最終的に、生成プログラム多項式1+x+x4を使用して4つのパリティ・ビットが算出され、挿入される。結果として生じる変調/パリティ・コードワードはe[105:0]である。
図31は、対応するレート100/106デコーダを示す。デコーダの入力f[105:0]は、パリティ・ビットを除去することによってg[101:0]にマッピングされる。その後、アレイh[101:0]を取得するために、ローカル逆プレコーディングが実行される。プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦101が使用され、i=81、80、79、78、77、76、53、52、51、30、29、28、27、26、25、2、1、0の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[101:0]を得るために逆順序変更が適用される。最終的に、適切なバイトにレート8/9デコーディングが適用され、アレイj[99:0]となるレート100/106デコーダの出力が与えられる。16状態の時変化検出器格子のインプリメンテーションに関連する、データ・コードワードe[105:0]中の制約は、位置55および4でj=2、位置83、80、32、および29でj=3、位置55および4でk=2、位置83、80、32、および29でk=3である。
本発明に従って動作する、好適なデータのエンコーディングおよびデコーディング・スキームの他の好適な実施形態が、図32から図35に示されている。これらの実施形態は、8ビットまたは10ビットのエラー訂正コード(リード・ソロモン・コード)で使用するように設計されており、変調コーディング用に、前述の諸実施形態と同じレート8/9変調コードを使用する(すなわち、表2に示された変調コード)。
以下の諸実施形態では、8ビット・エラー訂正コード用にコード・レート64/66が使用され、10ビット・エラー訂正コード用にコード・レート60/62が使用される。表4は、これらの新しいコードのプロパティを列挙したものである(表1と同じ規約を使用)。
これら(および他の)実施形態では、オンザフライでエラーおよび消去(error−and−erasure)デコーディングを実行するリード・ソロモン・デコーダとともに、変調デコーダ入力時に正しくないコードワードを検出するフラグも使用することができる。これにより、セクタ・エラー・レート性能を向上させることができる。
図32は、8ビット・エラー訂正コードに関するレート64/66エンコーダの形の実施形態を示す。変調コーディング・ステージへの入力、a[63:0]は、8個のエラー訂正コーディング済み8ビット・バイト、B7、B6、・・・、B0からなる。図32に示されるように、バイトB5は、表2のレート8/9変調コードを使用して9ビット・コードワードにマッピングされる。変調コーディング・ステージ後、残りのバイトは変更されないままである。
その後、図32に示されるように、ビット・シーケンスは順序変更される。順序変更前のエンコーディング済み信号はb[64:0]で示され、順序変更後のエンコーディング済み信号はc[64:0]で示される。その後、マスキング・ビットm(i)、0≦i≦64で示される「マスク」を使用して、選択的プレコーディングが実行され、i=44、43、42、41、40、39、10、9、8の場合m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、d[64:0]で示される。最終的に、生成プログラム多項式1+xを使用して1つのパリティ・ビットが算出され、ビット・ブロックに挿入される。ストレージ・メディアに書き込まれることになる、結果として生じる変調/パリティ・コードワードはe[65:0]である。
図33は、対応するレート64/66デコーダを示す。デコーダの入力f[65:0]は、パリティ・ビットを除去した後、g[64:0]にマッピングされる。その後、アレイh[64:0]を取得するために、プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦64を使用して、ローカル逆プレコーディングが実行され、i=44、43、42、41、40、39、10、9、8の場合、m(i)=1、その他の場所ではm(i)=0である。その後データ・ブロックは逆順序変更され、その後アレイi[64:0]が得られる。その後、コードワードi[64:0]の適切なバイトが表2のレート8/9コードを使用して変調デコーディングされ、エラー訂正デコーディング・ステージ(図示せず)への入力のためのアレイj[63:0]となるレート64/66デコーダの出力が与えられる。16状態の時変化検出器格子のインプリメンテーションに関連する、データ・コードワードe[65:0]中の制約は、位置9でj=2、位置43および40でj=3、位置9でk=2、位置43および40でk=3である。
図34は、10ビット・エラー訂正コードに関するレート60/62エンコーダの形の他の好ましい実施形態を示す。エンコーダの入力、a[59:0]は、6個の10ビット・バイト、B5、・・・、B0からなる。バイトB3は、表2のレート8/9変調コードを使用して11ビット・コードワードにマッピングされる。残りのバイトは変更されないままである。このようにエンコーディングされた信号、b[60:0]は、その後図34に示されるように順序変更され、信号c[60:0]が与えられる。
順序変更された信号は、その後マスキング・ビットm(i)、0≦i≦60を使用して選択的にプレコーディングされ、i=40、39、38、37、36、35、8、7、6の場合m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、d[60:0]で示される。最終的に、生成プログラム多項式1+xを使用して1つのパリティ・ビットが算出され、挿入される。結果として生じる変調/パリティ・コードワードはe[61:0]である。
図35は、対応するレート60/62デコーダを示す。デコーダの入力f[61:0]は、パリティ・ビットを除去することによってg[60:0]にマッピングされる。その後、アレイh[60:0]を取得するために、ローカル逆プレコーディングが実行される。プレコーディングの場合と同じマスキング・ビットm(i)、0≦i≦60が使用され、i=40、39、38、37、36、35、8、7、6の場合、m(i)=1、その他の場所ではm(i)=0である。その後、アレイi[60:0]を得るために逆順序変更が適用される。最終的に、適切なバイトにレート8/9デコーディングが適用され、アレイj[59:0]となるレート60/62デコーダの出力が与えられる。16状態の時変化検出器格子のインプリメンテーションに関連する、データ・コードワードe[61:0]中の制約は、位置7でj=2、位置39および36でj=3、位置7でk=2、位置39および36でk=3である。
図36から図39は、本発明の他の好ましい実施形態を示す。この実施形態では、前の諸実施形態の場合と同じ論理規約が使用される。しかしながら、以下で詳細に説明するように、この実施形態は1/(1オープラスD)プレコーディングを使用するため、この実施形態ではローカル・プレコーディング演算は、式
によって指定され、上式で、b(i)はプレコーダの入力でのビットであり、c(i)はプレコーダの出力でのビットであり、m(i)は指標iでのマスキング・ビットである。言い換えれば、m(i)=0の場合c(i)=b(i)(プレコーディングなし)であり、m(i)=1の場合c(i)=b(i)オープラスc(i+1)(プレコーディング)である。
同様に、ローカル逆プレコーディング演算は、式
によって指定され、上式でf(i)は逆プレコーダの入力でのビットであり、g(i)は逆プレコーダの出力でのビットであり、m(i)は指標iでのマスキング・ビットである。言い換えれば、m(i)=0の場合g(i)=f(i)(逆プレコーディングなし)であり、m(i)=1の場合g(i)=f(i)オープラスf(i+1)(逆プレコーディング)である。
この実施形態は、10ビット・エラー訂正コードと共に使用するための3ビット・パリティを備えたレート100/108コードである。これは、参照によりその全文が本明細書に組み込まれた出願人の米国特許第6557124号に記載された、レート16/17変調コードを使用する。レート16/17変調コードは、タイプ+−+のエラー・イベント(主に電子ノイズによって破壊されると同時に高正規化線形密度を有する磁気レコーディング・チャネル内で、支配的なエラー・イベントである)のうち約半分を除去することがわかっている、強力なMTRコードである。さらに、このレート16/17変調コードは、43.32%の平均遷移密度を有する。この特性は、データ依存型メディア・ノイズが多い磁気レコーディング・チャネル内で有用である。このレート16/17の強力なMTRコードに関連付けられたエンコーダおよびデコーダが、前述のように、それぞれブロック・エンコーダおよびブロック・デコーダである。
前述のように、本実施形態で使用されるレート16/17変調コードは、書き込みパス内の1/(1オープラスD)プレコーダおよび読み取りパス内の(1オープラスD)逆プレコーダと共に使用されるように設計される。(これは、書き込みパス内で1/(1オープラスD2)プレコーダおよび読み取りパス内で(1オープラスD2)逆プレコーダを使用する、レート8/9変調コードを使用する上記諸実施形態とは対照的である。)
表5は、本実施形態の3ビット・パリティを備えるレート100/108コードのプロパティと、図30の8/9変調コードおよび4ビット・パリティを使用するレート100/106コードとを比較するものである。
表5では、「ATD」は平均遷移密度であり、残りの用語は表1と同じである。基準となるレート100/106の4ビット・パリティ・コードと比べた場合、本実施形態の3ビット・パリティを備えたレート100/108コードは、より良好なk制約、より良好なI制約、およびより低い平均遷移密度(ATD)を有することがわかる。
図37は、本発明の10ビット・エラー訂正コードに関するレート100/108ブロック・エンコーダを概略的に示す。図36は、以下でより詳細に論じるように、本実施形態のレート100/108ブロック・エンコーダのレート20/21ベースの変調構造を示す、エンコーダの等価表現である。
エラー訂正コーディング後のエンコーダの入力、a[99:0]は、10個の10ビット・バイト、B9、・・・、B0からなる。隣接バイトの5つのペア、B9/B8、B7/B6、B5/B4、B3/B2、およびB1/B0が、5つの21ビット・コードワードにマッピングされる。図36および図37に示されるように、これは、前述のレート16/17変調コードを適切なビットに適用すること(図37)によって実行され、前述のレート16/17変調コードを使用してインプリメントされる図36に示されるようなレート20/21ブロック・エンコーダのセットを使用する変調コーディングの適用とみなすことができるが、各21ビット・コードワードのうち左側2つのビットおよび右側2つのビットは未コーディングのままである。
エンコーディング済み信号はb[104:0]で示される。その後、選択的プレコーディングは、マスキング・ビットm(i)、0≦i≦104を使用して適用され、i=102、101、100、99、98、97、96、95、94、93、92、91、90、89、88、87、86、81、80、79、78、77、76、75、74、73、72、71、70、69、68、67、66、65、60、59、58、57、56、55、54、53、52、51、50、49、48、47、46、45、44、39、38、37、36、35、34、33、32、31、30、29、28、27、26、25、24、23、18、17、16、15、14、13、12、11、10、9、8、7、6、5、4、3、2の場合、m(i)=1、その他の場所ではm(i)=0である。このローカル・プレコーディング後のエンコーディング済み信号は、c[104:0]で示される。最終的に、生成プログラム多項式1+x+x3を使用して3つのパリティ・ビットが算出され、コードワードの終わりに挿入される。結果として生じる変調/パリティ・コードワードはd[107:0]である。この実施形態では(前述の諸実施形態とは異なり)、データ・コードワードの順序変更がないことに留意されたい。
図39は、10ビット・エラー訂正コードに関する対応するレート100/108ブロック・デコーダを概略的に示す。図38は、レート100/108ブロック・デコーダのレート20/21ベースの変調構造を示す、デコーダの等価表現である。
デコーダe[107:0]の入力は、3つのパリティ・ビットを除去することによってf[104:0]にマッピングされる。その後、アレイg[104:0]を取得するために、プレコーディングに使用されたものと同じマスキング・ビットm(i)、0≦i≦104を使用してローカル逆プレコーディングが実行され、i=102、101、100、99、98、97、96、95、94、93、92、91、90、89、88、87、86、81、80、79、78、77、76、75、74、73、72、71、70、69、68、67、66、65、60、59、58、57、56、55、54、53、52、51、50、49、48、47、46、45、44、39、38、37、36、35、34、33、32、31、30、29、28、27、26、25、24、23、18、17、16、15、14、13、12、11、10、9、8、7、6、5、4、3、2の場合、m(i)=1、その他の場所ではm(i)=0である。
最終的に、アレイh[99:0]となるレート100/108デコーダの出力を得るために、適切なバイトのレート16/17デコーディングが実行される。(ここでも、図38に示されるように、この演算は、レート16/17変調コードを使用してインプリメントされ、いくつかのビットは未変更のままである、レート20/21ブロック・デコーダのセットの演算とみなすことができる。)
16状態の時変化検出器格子およびポストプロセッサにおけるMTRチェッキングのインプリメンテーションに関連する、この実施形態のデータ・コードワードd[107:0]中の制約は、103、89、82、68、61、47、40、26、19、5の10個の位置でj=2であり、102、101、100、99、98、97、96、94、93、92、91、90、88、81、80、79、78、77、76、75、73、72、71、70、69、67、60、59、58、57、56、55、54、52、51、50、49、48、46、39、38、37、36、35、34、33、31、30、29、28、27、25、18、17、16、15、14、13、12、10、9、8、7、6、4の65個の位置でj=3である。
上記から明らかなように、本発明は、少なくともその好ましい諸実施形態では、ローカル(選択済み)プレコーディングおよび逆プレコーディングを使用してエラー伝搬を減少させ、それによってエラー・レート性能を向上させる。入力データの一部(すなわち、プレコーディングされていない入力データの一部またはいくつかの部分)を逆プレコーディングする必要をなくすことにより、プレコーディングによって生じるエラー伝搬を減少させることができる。さらに順序変更を使用して、タイミング回復要件に合致させ、たとえば8ビットまたは10ビット・シンボルに基づくリード・ソロモン・コードと共に使用するための変調コードのよりフレキシブルな設計を容易にすることができる。
好ましい諸実施形態では、前述の利点に加えて、エンコーダ/デコーダのインプリメンテーションを簡略化する、単一のレート8/9変調コードに基づく8ビットおよび10ビットのリード・ソロモン・シンボル・サイズ用の特定コードが記載されている。
本発明に関する上記記述は、例示および説明の目的で提示したものである。本発明を網羅すること、または開示された精密な形式に限定することは意図しておらず、上記教示に照らせば、他の修正形態および変形形態が可能である。開示された諸実施形態は、本発明の原理およびその実用的な応用例を最も良く説明するために、選択および記述されたものであり、それによって、他の同業者が企図された特定の用途に好適な様々な実施形態および様々な修正形態で本発明を最善な形で利用できるようにするためのものである。添付の特許請求の範囲は、従来技術によって限定された場合を除き、本発明の他の代替実施形態を含むように解釈されることが意図される。