JP5055578B2 - ホログラフィック記憶のための連結コード - Google Patents

ホログラフィック記憶のための連結コード Download PDF

Info

Publication number
JP5055578B2
JP5055578B2 JP2007334466A JP2007334466A JP5055578B2 JP 5055578 B2 JP5055578 B2 JP 5055578B2 JP 2007334466 A JP2007334466 A JP 2007334466A JP 2007334466 A JP2007334466 A JP 2007334466A JP 5055578 B2 JP5055578 B2 JP 5055578B2
Authority
JP
Japan
Prior art keywords
code
data storage
storage channel
user information
outer bch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007334466A
Other languages
English (en)
Other versions
JP2008176911A (ja
Inventor
ヴァーニカ ネデルジャコ
バード グレゴリー
ロウ セオ−ハウ
サン リングヤン
ウー ジニング
Original Assignee
マーベル インターナショナル リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マーベル インターナショナル リミテッド filed Critical マーベル インターナショナル リミテッド
Publication of JP2008176911A publication Critical patent/JP2008176911A/ja
Application granted granted Critical
Publication of JP5055578B2 publication Critical patent/JP5055578B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

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

Description

本発明は大まかに言って、データ記憶チャネル上にデータを読み書きするのに利用されるエラー訂正コードを設計するシステムおよび方法に関する。特に、本発明の実施形態は、ホログラフィックデータ記憶チャネルのための高性能の連結コードを構築するシステムおよび方法に関する。
デジタルデータ記憶容量に対する要求が高まるにつれ、データ記憶システムは、正確に、確実に、且つ迅速にデータを記憶、取得し続けねばならない。データ記憶の正確さ、確実さ、および処理量は、任意の数のエラー源により減少する場合がある。例えば、データ記憶チャネル内に存在するノイズあるいは干渉、データ記憶媒体内の欠陥、および符号間干渉が、データ読み書きエラーを生じる場合がある。幾らかの通信あるいはデータ記憶チャネルは、データ記憶チャネルに対して書き込まれる、あるいはデータ記憶チャネルから読み取られる特定のデータ符号に依存するエラーも被りやすい。つまり、平均値および分散などの、データ符号に対応する信号を破損させるノイズの統計値は、異なる、あるいは非対称である。必然的に、データ記憶システムにこのようなチャネルを利用して記憶されるデータは、書き込まれたデータの歪曲版ということになる。
データ記憶システムはしばしば、データ記憶の正確さ、確実さ、および処理量を増すためにエラー訂正コードを利用する。エラー訂正コードはこれらの改善を、しばしばデータ書き込みプロセス中に、送信機においてデータを一式のデータ符号にエンコードすることにより達成している。このエンコードプロセスにより余剰が与えられ、データ記憶媒体に書き込まれるデータブロック長がしばしば元々送信されたデータの量より長くなるようになっている。デコードは、データをデータ記憶媒体から読み取った後で、効率的なデコードアルゴリズムを利用することで行われてよい。このデコードアルゴリズムは、フィールド・プログラマブル・ゲート・アレイ(FPGA)あるいは特定用途向け集積回路(ASIC)のようなデータプロセシング回路に実施されてよい。
エラーを起こしやすいデータ記憶システムの一つに、ホログラフィックデータ記憶システムがあり、これはホログラフィックディスクをデータ記憶媒体として利用して、データをホログラフィックデータ記憶チャネルを介して送信する。あるホログラフィックデータ記憶システムにおいては、データは約百万(あるいはそれ以上)ビットの列状、あるいはページ状に配置されている。ページはその後チャプタに組織化されてよく、チャプタは本に組織化されてよい。一冊の本当たり320ページまでの高いデータ記憶密度が達成されている。これらページは同一の三次元ディスクスペース内に記憶され、各ページは次ページから極僅かな角度(例えば、.067度のオフセット)でオフセットされている。加えて、高い記憶密度を達成すべく、本と本との間のスペースは最小限であってよい(例えば、700マイクロメータの本スペースが達成されている)。さらには、ホログラフィックデータ記憶チャネルはしばしば非対称チャネルである。
これらおよび他のホログラフィックデータ記憶システムの特徴により、システムのビット誤り率(BER)および/またはセクタ誤り率(SER)を最小限にして、システムのコーディング利得を最大限にすべく強力なエラー訂正コードが必要とされている。BERは、不正確にデコードされたデータビットの数の、送信された全データビット数に対する比率である。同様にSERは、不正確にデコードされたセクタ/ブロックの数の、送信された全セクタ/ブロック数に対する比率である。最後に、信号/ノイズの比率は、データをホログラフィックデータ記憶チャネルのようなチャネル上に送信する際の信号電力/ノイズ電力の比率である。ホログラフィック記憶チャネルには厳格なシステム要件があるので、大きなSNR利得を達成する非常に強力なエラー訂正コードが必要である。
特に長いコードを利用せずに、より高い性能の順方向誤り訂正コードを達成する一方法には、連結コードと称されるコード族を利用する方法がある。例えば、図1は、連結コードを利用してユーザ情報をエンコード・デコードするシステム100を示す。単一の連結コードが二つのコード((n,k)コードCおよび(n,k)コードC)から形成されている。他の連結コード実施例においては二を超えるコードを利用することもできる。二つのエラー訂正コードを連結することには、典型的に内側エンコーダあるいはデコーダ、および外側エンコーダあるいはデコーダが利用される。「内側」「外側」という用語は、共通チャネルと比較した際の送信システム内のエンコーダ/デコーダの物理位置のことを言う。システム100の例に示すように、内側エンコーダ104および内側デコーダ108はチャネル106により近く配置され、外側エンコーダ102および外側デコーダ110は内側エンコーダ104および内側デコーダ108それぞれの外側に配置される。
システム100は連結エンコーダ102、104を含み、外側エンコーダ102は(n,k)コードを持ち、(n,k)コードを持つ内側エンコーダ104に連結される。エンコーダ104の出力はチャネル106に記憶あるいは書き込まれる。記憶データは連結されたデコーダ108、110を含む受信機により受信されてよい。内側デコーダ108はコード(n,k)をデコードしてよく、外側デコーダ110はコード(n,k)をデコードしてよい。
図1は、連結コードと共に利用される典型的なエンコードプロセスを示す。このエンコードプロセスは典型的に二つのステップからなる。第一に、バイナリユーザ情報データがkユーザ情報ディジットのブロックにそれぞれ解析される。これらkビットはその後Cの規則に則りエンコードされ、nビットのコードワードが形成される。第二に、nビットのコードワードが分類分けされ(またおそらくはインターリーブされ)、その後kビットのブロックに解析される。そして、kビットの各ブロックがCのコードワードにエンコードされ、これにより、Cのコードワード列が生じる。これらのディジットはその後、一度に一コードワードずつ、連続してチャネル106へ送信されてよい。
デコードプロセスはさらに一般的に二つのステップで行われる。各Cコードワードが到着する毎に、先ず内側コードのデコードアルゴリズムを利用してデコードが行われ、その後チェックディジット(あるいはパリティビット)が除去される。これらビットはその後C外側コードのデコードアルゴリズムを利用してデコードされ、最終的に訂正されたユーザ情報が生じる。システム100の例は1レベルの連結を示しているが、多レベルの連結を利用してもよい。多レベルの連結では、幾らかのコードを利用して多数の連結コードが形成されてよい。これらコードはその後組み合わせられ、一つの全体連結コードが形成されてよい。
ホログラフィックデータ記憶システムの正確さ、確実さは、SNRが低い場合に被害を被るので、特定のデータ記憶チャネル上に実施された際にSNRを顕著に向上させる、効率的な連結コードを構築することには継続的に関心がある。
本発明の原理に則り、連結コードを構成するシステムおよび方法が提供される。概して、システムおよび方法はこの構成を、付随するデコーダに実施した場合に連結コードの望ましい性能、処理量、およびメモリ利用に関するパラメータを考慮に入れた一連のプロセシングステップにより実現する。概して、デコーダは一部には、フィールド・プログラマブル・ゲート・アレイ(FPGA)あるいは特定用途向け集積回路(ASIC)の資源あるいはメモリの一部に実施される。
具体的には、外側Bose、Chaudhuri、およびHocquenghem(BCH)エンコーダが、ユーザ情報をエンコードしBCHコードワードを出力するよう構成される。低密度パリティチェック(LDPC)あるいはターボエンコーダなどの、内側反復エンコーダがBCHエンコーダの出力に反応し、生じるコードワードを出力し、これらコードワードがその後ホログラフィックデータ記憶チャネルなどのチャネルに書き込まれる。チャネル上のエンコードされた情報をデコードすべく、LDPCあるいはターボデコーダなどの内側反復デコーダが、エンコードされた情報を受信する。BCHデコーダは内側反復デコーダの出力に反応して、デコードされた、訂正済みユーザ情報を出力する。
幾らかの実施形態においては、外側コード(例えば、BCHコード)がTエラーまでを除去するよう設計されてよい。故に、外側BCHコードの訂正力TBCHは、推定された、あるいは予測された欠陥の大きさによって選択されてよい。外側BCHデコーダはコードワードレベルで操作してよく、各コードワードは典型的に、ホログラフィック記憶チャネルの一ページからのインターリーブされたビットを含んでよい。幾らかの実施形態においては、外側BCHエンコーダは、それに加えて、あるいはその代りに、このページレベルで操作してよい。
外側BCHコードの訂正力が選択された後、内側コードレートが、全体システムコードレート要件に基づき選択されてよい。この全体システムコードレート要件は、少なくとも部分的に、必要なあるいは望ましいSNRコーディング利得に基づいてよい。例えば、内側コードレートは以下の数式に則って選択されてよい。
Figure 0005055578
ここで、Rinnerは内側コードのコードレートであり、Rは全体システムコードレートであり、RBCHは外側BCHコードのコードレートである。
内側コードレートが全体システムコードレート要件に則り選択された後、反復的にデコード可能な内側コードが任意の内側コードレートについて設定されてよい。最後に、外側BCHコードが任意の外側コードレート(つまり、訂正力TBCH)について設計されてよい。
幾らかの実施形態においては、一以上の内側コードおよび外側コードが、訂正力あるいはコードレートが必要なチャネル条件に則り設定できるように(例えば、任意の欠陥条件について)、プログラム可能であってよい。ECCプロセッサあるいはソフトウェアのサブルーチンは、内側コード、外側コード、あるいは内側コードおよび外側コードの両方の訂正力あるいはコードレートを設定してよい。プログラム可能な入力信号がさらにフィールド・プログラマブル・ゲート・アレイ(FPGA)あるいは特定用途向け集積回路(ASIC)上に提供されてよい。プログラム可能な入力信号が、望ましい訂正力あるいはコードレートをプログラムするのに利用されてよい。任意のこれらコードの訂正力あるいはコードレートは、可変(時変的な)欠陥条件に適合するように動的に設定あるいは調節されて、より堅牢な連結コード実施例を生じてよい。
幾らかの実施形態においては、準巡回パリティ検査行列のマザー行列表示が特定のLDPC内側コードについて構築される。マザー行列内の、行の数Mはその後、幾らかの数の行減らされ、余分なビットを外側コード(例えばBCHコード)に利用してよい。これにより、より高い外側コード(例えばBCHコード)訂正力が可能となる。内側LDPCコード用の任意の残りの情報ビットが幾らかの既知のパターンに設定されてよい(例えば、残りのビットはゼロビットで埋められてよい)。幾らかの実施形態においては、内側コードレートに対して外側コードレートにおいてさらにより高い柔軟性を達成すべく、マザー行列の行の一箇所のみが利用されてよい。マザー行列の行の一箇所のみを利用することで、実施の複雑性は増すかもしれないが、より幅広いコーディングレートのスペクトルが可能となる。
別のプログラム可能なコードは、各々のコードがMの異なる値と同じサーキュラントサイズ(circulant size)Sとを持つ、一式の記憶された内側コードを利用する(例えば一式の記憶されたLDPCコード)。その後、一式のコード内の内側コードの一つは、チャネル条件、チャネル検知器性能、および/または望ましいセクタ誤り率(SER)に基づきプログラム可能に選択されてよい。上記の実施形態同様、外側エンコーダの出力は、内側エンコードステップの前に、既知の値(例えばゼロ埋め込みが利用されてよい)で埋められてよい。
上記又は他の本発明の効果は以下の詳細な説明を、付随図面と共に考慮することで明らかとなろう。図面においては同様の参照記号は同様の部材を表しており、図面は以下のようである。
本発明の一実施形態による、連結エンコードおよびデコード列の例を示す。
本発明の一実施形態による、非対称ガウスチャネルの一式の信号統計値の例を示す。
本発明の一実施形態による、ホログラフィック記憶チャネルからインターリーブされたコードワードを生成するシステムの例を示す。
本発明の一実施形態による、欠陥ラインがLDPCコードの一例に対して及ぼす影響の例を示す。
本発明の一実施形態による、連結エンコードおよびデコードシステムの例を示す。
本発明の一実施形態による、内側コードおよび外側コードを設計するプロセスの例である。
開示技術を利用できるハードディスクドライブの一例のブロック図を示す。
開示技術を利用できるデジタル多用途ディスクの一例のブロック図を示す。
開示技術を利用できる高品位テレビの例のブロック図を示す。
開示技術を利用できる車両の例のブロック図である。
開示技術を利用できる携帯電話(cell phone)の例のブロック図を示す。
開示技術を利用できるセットトップボックスの例のブロック図を示す。
開示技術を利用できるメディアプレーヤの例のブロック図を示す。
本発明のシステムおよび方法は、概して、データの通信および/または記憶に伴うエラー訂正および/または検知に関する。概して、以下でさらに詳述するように、このような通信あるいはデータ記憶は、チャネル上で起こり、チャネルとは、データ搬送信号の通信および/または記憶される媒体、および物理的に該媒体に影響することのあるイベントのことを言う。チャネルの様々な局面により、そこで通信、あるいはそこに記憶されているデータが壊れることがあり、通信あるいは記憶に続いて復帰されるデータは意図した値とは異なっている場合がある。このような差異がエラーと称される。
通信および/またはデータ記憶チャネルの中には、送信中のデータ符号に依存するエラーに曝されるものもある。つまり、データ符号に対応する信号を破壊するノイズの平均値あるいは分散などの統計値は異なる、ということである。そのようなチャネルの例が、信号統計値が図2に図示されているチャネルである。
図2は非対称ガウスチャネルの非対称信号統計値を持つノイズコンポーネントの一式の例を示す。グラフ200は、y軸201のチャネルの確率密度関数の値、およびx軸202の確率密度関数への入力値を示す。ビット「0」に対応するノイズコンポーネントの信号統計値は第1確率密度関数210として示されている。第1確率密度関数210はガウス型であり、平均値μ0211および分散σ0 とを持つ。ビット「1」に対応するノイズコンポーネントの信号統計値は第2確率密度関数220として示されている。第2確率密度関数220はガウス型であり、平均値μ1221および分散σ1 とを持つ。図2では、μ0はμ1と等しくなく、σ0 はσ1 と等しくないことに注意されたい。
様々な実施形態においては、グラフ200に示す非対称チャネル統計値は、1、2、3、4、5、8、10、15、20、30、40、50、75、100を含む任意の数の確率密度関数210、220、あるいは同様の数のデータ符号を持つノイズコンポーネントに対応する、100を超える確率密度関数を含むことができる。加えて確率密度関数は、均一の確率変数、指数の確率変数、幾何学の確率変数、ポアソン確率変数、あるいはランダムプロセスをあらわす任意のこの種の適切な確率関数の値をあらわしてよい。
グラフ200に示す非対称信号統計値は、データ通信チャネル、磁気記憶チャネル、ホログラフィック記憶チャネル、あるいは任意のこの種のチャネルの信号統計値であってよい。ここに記載するシステムおよび方法は、汎用の非対称チャネルに適用できるが、特にホログラフィック記憶チャネルに適用できる。ホログラフィック記憶システムにおいては、データは百万(あるいはそれ以上)ビットの列状、あるいはページ状に配置されてよい。ページはチャプタに組織化されてよく、チャプタは本に組織化されてよく、本は巻に組織化されてよい。ホログラフィック記憶システムのホログラフィック記憶チャネルから任意の巻に書かれたデータを読み出すには、レーザビームをホログラムから偏向させて、原記憶データの歪曲版である3‐Dの画像を生成する。この3−D画像はその後、ホログラフィック記憶システムのホログラフィック記憶チャネルからデータを並列に読み出す変更器に投影される。このデータの並列読み出しにより、ホログラフィック記憶チャネルのデータ転送レートが速くなる。
先に述べたように、ホログラフィック記憶システムは典型的にページのデータを記憶する。図3のシステム300に示すように、データはページ301、303、305上に、あるいはそれらに亘り記憶されてよい。単一ページのSNRは通常、ページ全体に亘り均一であることはない。例えば、ホログラフィック記憶チャネルの特性によると、ページ301の周囲に沿って記憶されたデータは、該ページの中央領域に記憶されたデータよりもSNRが低い。という訳で、ページ301は幾らかの異なるSNR値を呈する。図3の一般化された例に示すように、ページ301は三つの異なるSNR値(SNR、SNR、SNR)を呈する。SNRは典型的に一ページに亘り均一であることはないので、コードワード309をデコード目的で生成すべく、ページ301に記憶されたデータが典型的にインターリーブ器307によりインターリーブされる。インターリーブは、コードワード309のSNRを一様にする一助となるであろう。サンプルのコードワード311は、ページ301のインターリーブされた部分から形成されたコードワードを示す。
先に述べたように、ホログラフィック記憶システムには幾らかの潜在的エラー源がある。ガウス型ノイズ、一ページにわたる非均一SNRという問題に加えて、ホログラフィックチャネルおよび/またはチャネル検知器は時折エラーあるいは欠陥ビットをも導入することがある。例えば、一ページ内の全ライン(あるいはストリップ)は不正確に読み書きされることがある。この全体ストリップあるいはラインは欠陥ビットを含むことがある。図4のシステム400が示すように、ページ402は、欠陥ライン404などの、少なくとも一つの欠陥ラインを含むことがある。欠陥ライン404はエンコード/デコードの前にインターリーブされてよいので、欠陥ライン404内のビットは複数の異なるコードワードに広がることがある。
例えば、図4の右側に示すLDPCコードの包括的二部グラフ(タナーグラフとしても知られている)表示が示すように、変数ノード406のような幾らかの変数ノードは、欠陥ライン404からのビットを含んでよい。これら欠陥ビットは順列ブロック408により利用され、チェックノード410のようなチェックノードに接続してよい。加えて、欠陥ライン404からのビットを異なるコードワードにインターリーブしてよい。LDPCあるいはターボコードなどのインターリーブコードは、これら種類の欠陥の影響を非常に受けやすい。
インターリーブアルゴリズム(例えば、BCJRあるいはSOVAなどの、信念伝播あるいは一般的にはソフトインプット/ソフトアウトプットアルゴリズム)は、検知決定を下す際にソフト情報を利用することがある。故に、これら種類のアルゴリズムは特に、欠陥入力対数尤度比率(入力LLRs)の被害を受けやすく、特に、大きな規模の欠陥入力LLRsの影響を受けやすい。例えば、ビットiのLLRは、以下の数式により得ることができる。
Figure 0005055578
ここで、検知信号yが与えられた場合、P(b=0)はビットiが「0」の確率であり、P(b=1)は、ビットiが「1」の確率である。検知LLR値について最大(あるいは大きな)LLR振幅を仮定すると、LDPCコード(あるいは他の反復コード)のホログラフィックチャネル上の性能は、多数の欠陥LLRにより大きな被害を被る。
しかし、これらチャネルに(特にホログラフィック記憶チャネル上に)連結コードを利用すると、広いSNR範囲においてエラー比率が低く改善された性能を呈すことになる。図5のシステム500に示すように、BCHコードを外側コードとして利用でき、反復的にデコード可能なコード(LDPCコードあるいはターボコードのような)を内側コードとして利用する場合に、連結コードを利用することができる。ユーザ情報502は先ずBCHエンコーダ504によりエンコードされてよい。BCHコードワード506はBCHエンコーダ504により出力されてよい。BCHエンコーダ504はさらに、BCHコードの様々な特性を設定すべく、プログラム可能な入力503のような一以上のユーザプログラム可能な入力を受け取ってよい。例えば、以下でさらに詳細に記載するように、ユーザはBCHコードのBCH訂正力TBCHを設定してよい。プログラム可能な入力503はさらに、一つの特定BCHコードを、それぞれ異なる比率および/または性能特性を持つ一式の入手可能なBCHコードから選択するのに利用されてもよい。幾らかの実施形態においては、プログラム可能な入力503は、TBCHパラメタ値を動的に調節する、および/または、望ましいBCHコードをリアルタイムに選択するECCプロセッサあるいはソフトウェアサブルーチンに連結される。
BCHコードワード506はその後、反復エンコーダ508によりエンコードされてよい。たとえば、反復エンコーダ508はLDPCエンコーダ、ターボエンコーダ、あるいは、反復的にデコード可能なコード用の他の任意のエンコーダを含んでよい。幾らかの実施形態においては、反復エンコーダ508は、各モードのエンコードに異なる種類のコードが利用される、複数の異なるモードで操作するよう構成される。例えば、プログラム可能な入力507は利用するコード種別を選択してよい。以下でさらに詳述するように、プログラム可能な入力507はさらに、一つの特定LDPCコードを、それぞれ異なる比率および/または性能特性を持つ一式の入手可能なLDPCコードから選択するのに利用されてもよい。幾らかの実施形態においては、プログラム可能な入力507は、望ましいLDPCコードを、リアルタイムに、可変チャネルエラー統計値に基づき、動的に選択する、ECCプロセッサあるいはソフトウェアサブルーチンに連結される。結果生じるコードワード510はその後、チャネル512へ記憶、あるいはチャネル512を介して通信されてよい。チャネル512は、磁気記憶チャネル、光学式記憶チャネル、ホログラフィック記憶チャネル、あるいは他の任意の適切な種類のチャネル、といった任意のデータ通信(あるいは記憶)チャネルを含んでよい。チャネル512でエンコードされた情報をデコードすべく、受け取られた波形514がチャネル512から読み出される。受け取られた波形514は先ず反復デコーダ516によりデコードされてよい。BCHデコーダ518はその後、反復デコーダ516の出力に反応してもよい。最後に、BCHデコーダ518は訂正済・デコード済ユーザ情報520を出力することができる。
外側BCHコードは、Tエラーまでが除去されるよう、選択されてよい。つまり、BCHコードの訂正力TBCHは、内側反復デコーダ(つまり、反復デコーダ516)の後の全て(あるいは殆どの)エラーを除去するよう選択されてよい。先に述べたように、デコードプロセスでソフト情報を利用する反復デコーダ516は、しばしばLLRsが欠陥ライン404にあるビットの幾らかで失敗することがある(図4)。ハード情報を利用するBCHデコーダ518は、反復デコーダ516の出力の残りのエラーを訂正するよう設計される。
幾らかの実施形態においては、外側BCHコードはコードワードレベルで操作してよい(ここで、各コードワードは典型的に単一ページからインターリーブされたビットを複数含む)。他の実施形態においては、BCHエンコード/デコードはページレベルで操作するよう多重化されてよい。いずれの実施例においても、連結コードは、反復的にデコード可能なコードのみを利用するときよりも、よりよい性能(つまり、より低いエラー比率)をもたらす。
図6は通信チャネルあるいは記憶チャネル(例えばホログラフィック記憶チャネル)上でユーザ情報をエンコードおよびデコードするための連結コードを構築するプロセス600の例を示す。ステップ602において、外側BCHコード訂正力TBCHが、予測された欠陥の大きさに基づき選択されてよい。例えば、内側反復エンコーダ/デコーダからの出力エラーの数は、ある対象SNRで実験的に決定されてよい。この決定は、システムあるいはチャネル内で予測された(あるいは推定された)ノイズベル、あるいは特定のチャネルの、既知の(あるいは推定された)エラー統計値に基づいてもよい。幾らかの実施形態においては、以下でさらに詳述するように、TBCHの値はプログラム可能な入力であってもよい。
ステップ604において、内側コードレートが、全体システムコードレート要件に基づき選択されてよい。全体システムコードレート要件は、少なくとも一部には、必要な、あるいは望ましいSNRコーディング利得に基づいてよい。例えば、内側コードレートは、いくらかの実施形態においてはEQ1によって算出されてよい。外側BCHコード訂正力がステップ602で選択され、内側コードレートがステップ604で選択された後、内側コードおよび外側コードがステップ606および608でそれぞれ設計されてもよい。幾らかの実施形態においては、ステップ606、608は、両方のコードの訂正統計値を考慮に入れ、単一のジョイント実施ステップに組み合わせられてよい。ステップ606で設計される内側コードは、LDPCあるいはターボコードなどの、任意の反復的にデコード可能なコードであってよい。例えば内側コードは、ここにその全体を参照として組み込む同一出願人による2007年8月17日提出の米国特許出願シリアル番号11/893,936に記載の方法およびシステムにより構築あるいは設計されるLDPCコードであってよい。
実際には、プロセス600が示す一以上のステップは他のステップと組み合わせられてよく、任意の順序で行われてよく、並列に行われてよく(例えば、同時に、あるいは略同時に)、あるいは除去されてもよい。
幾らかの実施形態においては、内側コード、外側コード、あるいは内側コードと外側コード両方は、少なくとも部分的にユーザプログラム可能であってよい。例えば、幾らかの実施形態においては、準巡回パリティ検査行列のマザー行列表示が特定のLDPC内側コードについて構築されてよい。マザー行列内の、行の数Mはその後、幾らかの数の行減らされ、余分なビットを外側コード(例えばBCHコード)に利用してよい。これにより、より高い外側コード(例えばBCHコード)訂正力が可能となる。内側LDPCコード用の任意の残りの情報ビットが幾らかの既知のパターンに設定されてよい(例えば、残りのビットはゼロビットで埋められてよい)。幾らかの実施形態においては、内側コードレートに対する外側コードレートにおいてさらにより高い柔軟性を達成すべく、マザー行列の行の一箇所のみが利用されてよい。マザー行列の行の一箇所のみを利用することで、実施の複雑性は増すかもしれないが、より幅広いコーディングレートのスペクトルが可能となる。
ユーザは、一以上のプログラム可能な入力503および507を利用することで、Mパラメタおよび/または望ましいBCH訂正電量を選択してよい(図5)。例えば、BCH訂正力TBCH=34を示すよう、ユーザは、ある所定の値に対してプログラム可能な入力503(図5)を設定してよい。プログラム可能な入力503(図5)を、ある他の所定の値に設定することで任意の適切な訂正力が選択されてよい。
一例としては、一実施形態において、マザー行列に32行および64列の準巡回LDPCコードを利用してよい。マザー行列内の行数Mを減らすことで、LDPCコードのより高いコードレートが達成され、故にさらに高いBCH訂正力が可能となる。一例としては、512というサーキュラントサイズSで、もしMの値が32から31へ減らされると、512の余剰ビットが外側BCHコードにより利用されることがある。BCHコードの訂正力はその後、例えば、m=15でTBCH=34に設定することができる。残りのビット(例えば、上記の例においては512‐(34X15)、あるいは2ビット)を、任意の既知のパターンに設定することができる。例えば、残りのビットはゼロビットで埋められてよい。より複雑な実施例においては、マザー行列の一行の一部を利用してよい。これにより、コーディングレートおよび訂正力のより幅広い範囲が可能となる。
別のプログラム可能なアプローチでは、各コードが異なるMの値、および同じサーキュラントサイズSを持つ、一式の一より大きい内側(例えばLDPC)コードが利用される。そして、コード一式の内側コードの一つが、チャネル条件、チャネル検知器性能、および/または望ましいセクタ誤り率(SER)に基づき、プログラム可能に選択されてよい。上記の実施形態同様、外側エンコーダの出力は、内側デコードステップの前に、既知の値(例えば、ゼロパッドを利用してもよい)で埋められてよい。ユーザは、一以上のプログラム可能な入力503、507を利用して、コード一式から望ましいLDPCコードを選択してもよい(図5)。
一例としては、マザー行列(N=128)の256および128列のサーキュラントサイズSを利用することで、全体ブロック長が、128x256、あるいは32Kビットで与えられてもよい。一式のLDPCコードは異なる比率割り当てで設計されてよい。その後、全体システムコードレート要件(例えばR=1/2)を維持しながら、異なるBCH訂正力が支援されてもよい。正確なコードレートは、ゼロビットなどの、一以上の既知のビットパターンを挿入することで達成されてよい。下記の表1は、BCH訂正力TBCHに対応する幾らかの例示的なLDPCコードレートRLDPC、および全体システムコードレート要件(下記の図1に示す例ではR=1/2)を達成するのに埋められるべきビット数を示す。ECCプロセッサあるいはソフトウェアルーチンは、例えばチャネル条件および/またはチャネル検知器性能に基づき、適切なLDPCコードを選択してよい。
Figure 0005055578
図7A−図7Gを参照すると、本発明の様々な例示的実施例が示されている。
図7Aを参照すると、本発明はハードディスクドライブ700に実施することができる。本発明は、図7Aでは概して702で表される信号プロセシングおよび/または制御回路のいずれかあるいは両方を実施してよい。幾らかの実施例においては、HDD700の信号プロセシングおよび/または制御回路702および/または他の回路(不図示)は、データをプロセスしてよく、コーディングを行ってよく、および/または暗号化してよく、計算してよく、および/または磁気記憶媒体706に出力される、および/または磁気記憶媒体706から受信されるデータをフォーマットしてよい。
HDD700は、コンピュータ、携帯型情報機器などのモバイルコンピューティングデバイス、携帯電話(cellular phone)、メディアあるいはMP3プレーヤなどのホストデバイス(不図示)、あるいは他のデバイスと、一以上の有線あるいは無線の通信リンク708を介して通信してもよい。HDD700は、ランダムアクセスメモリ(RAM)、フラッシュメモリなどの低遅延不揮発性メモリ、読出し専用記憶素子(ROM)および/または他の適切な電子データ記憶装置などのメモリ709に接続されてもよい。
図7Bを参照すると、本発明はデジタル多用途ディスク(DVD)ドライブ710に実施することもできる。本発明は、図7Bでは概して712で表される信号プロセシングおよび/または制御回路、および/またはDVDドライブ710の大量データ記憶装置を実施してもよい。DVD710の信号プロセシングおよび/または制御回路712および/または他の回路(不図示)は、データをプロセスしてよく、コーディングを行ってよく、および/または暗号化してよく、計算してよく、および/または光学式記憶媒体716から読み取られるデータを、および/または光学式記憶媒体716に書き込まれるデータをフォーマットしてよい。幾らかの実施例においては、DVD710の信号プロセシングおよび/または制御回路712および/または他の回路(不図示)はさらに、エンコードおよび/またはデコードおよび/またはDVDドライブに関連する任意の他の信号プロセシング機能を行うこともできる。
DVDドライブ710はコンピュータ、テレビ、あるいは他のデバイスなどの出力デバイス(不図示)と、一以上の有線あるいは無線通信リンク717を介して通信してもよい。DVD710は、不揮発式にデータを記憶する大量データ記憶装置718と通信することもできる。大量データ記憶装置718はハードディスクドライブ(HDD)を含むことができる。HDDは図7Aに示す構成を持ってもよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。DVD710はRAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ719に接続されてもよい。
図7Cを参照すると、本発明は高品位テレビ(HDTV)720に実施することもできる。本発明は図7Cでは概して722で表される信号プロセシングおよび/または制御回路のいずれかあるいは両方、WLANインタフェース、および/またはHDTV720の大量データ記憶装置を実施してもよい。HDTV720はHDTV入力信号を、有線あるいは無線の形式で受信して、ディスプレイ726向けにHDTV出力信号を生成する。幾らかの実施例においては、HDTV720の信号プロセシング回路および/または制御回路722および/または他の回路(不図示)は、データプロセス、コーディングおよび/または暗号化、計算、データフォーマット、および/または任意の他の種類の必要であってよいHDTVプロセシングを行ってよい。
HDTV720は、データを不揮発式に記憶する、例えばハードディスクドライブHDDおよび/またはDVDである、光学式および/または磁気記憶デバイスのような、大量データ記憶装置727と通信してよい。少なくとも一つのHDDが図7Aに示すような構成を持ってよく、および/または少なくとも一つのDVDが図7Bに示す構成をもってよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。HDTV720はRAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ728に接続されてもよい。HDTV720はさらに、WLANとの接続をWLANネットワークインタフェース729を介して支援してもよい。
図7Dを参照すると、本発明は車両730、WLANインタフェース、および/または車両制御システムの大量データ記憶装置の制御システムを実施する。幾らかの実施形態においては、本発明は、温度センサ、圧力センサ、回転センサ、気流センサなどの一以上のセンサ、および/または任意の他の適切なセンサから入力を受け取り、および/または、エンジン操作パラメタ、送信操作パラメタなどの一以上の出力制御信号、および/または他の制御信号を生成する。
本発明はさらに、車両730の他の制御システム740に実施されてもよい。制御システム740は同様に、入力センサ742からの信号を受け取り、および/または制御信号を一以上の出力デバイス744に出力してもよい。幾らかの実施形態においては、制御システム740はアンチロック・ブレーキ・システム(ABS)、ナビゲーションシステム、テレマティックスシステム、車両テレマティックスシステム、車線逸脱システム、車間距離適応走行制御システム、ステレオ、DVD、コンパクトディスクなどの車両娯楽システムなどの一部であってよい。さらなるほかの実施例が考えられる。
パワートレイン制御システム732は、データを不揮発式に記憶する大量データ記憶装置746と通信してよい。大量データ記憶装置746は、例えばハードディスクドライブHDDおよび/またはDVDなどの光学式および/または磁気記憶デバイスを含んでよい。少なくとも一つのHDDが図7Aに示すような構成を持ってよく、および/または少なくとも一つのDVDが図7Bに示す構成をもってよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。パワートレイン制御システム732は、RAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ747に接続されてもよい。パワートレイン制御システム732はさらに、WLANとの接続をWLANネットワークインタフェース748を介して支援してもよい。制御システム740はさらに大量データ記憶装置、メモリ、および/またはWLANインタフェース(全て不図示)を含んでよい。
図7Eを参照すると、本発明は、携帯アンテナ751(cellular antenna)を含むことのできる携帯電話(cellular phone)750に実施することができる。本発明は、図7Eでは概して752で表される信号プロセシングおよび/または制御回路のいずれかあるいは両方、WLANインタフェース、および/または携帯電話750の大量データ記憶装置を実施してよい。幾らかの実施例においては、携帯電話750はマイクロフォン756、スピーカおよび/または音声出力ジャックなどの音声出力758、ディスプレイ760および/またはキーパッド、ポインティングデバイス、音声駆動および/または他の入力デバイスなどの入力デバイス762を含む。携帯電話750の信号プロセシングおよび/または制御回路752および/または他の回路(不図示)は、データをプロセスしてよく、コーディングを行ってよく、および/または暗号化してよく、計算してよく、データをフォーマットしてよく、および/または他の携帯電話機能を行ってよい。
携帯電話750は、例えばハードディスクドライブHDDおよび/またはDVDなどの光学式および/または磁気記憶デバイスなどの、データを不揮発式に記憶する大量データ記憶装置764と通信してよい。少なくとも一つのHDDが図7Aに示すような構成を持ってよく、および/または少なくとも一つのDVDが図7Bに示す構成をもってよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。携帯電話750はRAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ766に接続されてもよい。携帯電話750はさらに、WLANとの接続をWLANネットワークインタフェース768を介して支援してもよい。
図7Fを参照すると、本発明はセットトップボックス780に実施することができる。本発明は図7Fでは概して784で表される信号プロセシングおよび/または制御回路のいずれかあるいは両方、WLANインタフェース、および/またはセットトップボックス780の大量データ記憶装置を実施してもよい。セットトップボックス780は、ブロードバンド源などの源から信号を受信し、テレビおよび/またはモニタおよび/または他のビデオおよび/または音声出力デバイスなどのディスプレイ788に適した標準および/または高品位音声/ビデオ信号を出力する。セットトップボックス780の信号プロセシング回路および/または制御回路784および/または他の回路(不図示)は、データプロセス、コーディングおよび/または暗号化、計算、データフォーマット、および/または任意の他のセットトップボックス機能を行ってよい。
セットトップボックス780は、データを不揮発式に記憶する大量データ記憶装置790と通信してよい。大量データ記憶装置790は例えばハードディスクドライブHDDおよび/またはDVDである、光学式および/または磁気記憶デバイスを含んでよい。少なくとも一つのHDDが図7Aに示すような構成を持ってよく、および/または少なくとも一つのDVDが図7Bに示す構成をもってよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。セットトップボックス780は、RAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ794に接続されてもよい。セットトップボックス780はさらに、WLANとの接続をWLANネットワークインタフェース796を介して支援してもよい。
図7Gを参照すると、本発明はメディアプレーヤ800に実施することができる。本発明は、図7Gでは概して804で表される信号プロセシングおよび/または制御回路のいずれかあるいは両方、WLANインタフェース、および/またはメディアプレーヤ800の大量データ記憶装置を実施してよい。幾らかの実施例においては、メディアプレーヤ800は、ディスプレイ807、および/または、キーパッド、タッチパッドなどのユーザ入力808を含む。幾らかの実施例においては、メディアプレーヤ800は、典型的にメニュー、ドロップダウンメニュー、アイコン、および/またはポイントアンドクリックインタフェースをディスプレイ807および/またはユーザ入力808を介して利用する、グラフィカルユーザインタフェース(GUI)を利用してよい。メディアプレーヤ800はさらに、スピーカおよび/または音声出力ジャックなどの音声出力809を含む。メディアプレーヤ800の信号プロセシングおよび/または制御回路804および/または他の回路(不図示)は、データをプロセスしてよく、コーディングを行ってよく、および/または暗号化してよく、計算してよく、データをフォーマットしてよく、および/または任意の他のメディアプレーヤ機能を行ってよい。
メディアプレーヤ800は、圧縮音声および/またはビデオコンテンツなどのデータを不揮発式に記憶する大量データ記憶装置810と通信してよい。幾らかの実施例においては、圧縮音声ファイルは、MP3形式あるいは他の適切な圧縮音声および/またはビデオ形式に準拠するファイルを含む。大量データ記憶装置は、例えばハードディスクドライブHDDおよび/またはDVDなどの、光学式および/または磁気記憶デバイスを含んでよい。少なくとも一つのHDDが図7Aに示すような構成を持ってよく、および/または少なくとも一つのDVDが図7Bに示す構成をもってよい。HDDは、直径が約1.8"より小さい一以上のプラッタを含むミニHDDであってもよい。メディアプレーヤ800はRAM、ROM、フラッシュメモリなどの低遅延不揮発性メモリ、および/または他の適切な電子データ記憶装置などのメモリ814に接続されてもよい。メディアプレーヤ800はさらに、WLANとの接続をWLANネットワークインタフェース816を介して支援してもよい。さらに他の実施例が、上述されたものに加えて考えられる。
前述したのは、ホログラフィック記憶用に連結コードを提供するシステムおよび方法である。関連技術の当業者であれば、本発明が、記載の実施形態とは異なるものによっても実施できることが理解されよう。というのも記載の実施形態は例示目的で記載されたものであり、限定的なものではないからである。本発明は添付の請求項によってのみ限定を受ける。

Claims (22)

  1. データ記憶チャネル上に一の連結コードを実施する方法であって、
    外側BCHコードに対して訂正力を選択することと、
    全体システムコードレート要件に少なくとも部分的に基づいて、反復的にデコード可能な内側コードに対して内側コードレートを選択することと、
    前記内側コードレートに対して、行列表示を持ち前記反復的にデコード可能な内側コードを設計することと、
    前記訂正力に対して前記外側BCHコードを設計することと、
    前記反復的にデコード可能な内側コードの前記行列表示から1以上のビットを前記外側BCHコードに対して割り当てることにより、前記外部BCHコードに対する前記訂正力を動的に増やすことと、
    ユーザ情報を、前記外側BCHコードと前記反復的にデコード可能な内側コードとでエンコードすることと、
    前記エンコードされたユーザ情報を前記データ記憶チャネルに記憶することと、を含む方法。
  2. 前記外側BCHコードに対して前記訂正力を選択することは、
    前記訂正力を示す少なくとも一つのユーザプログラム可能な入力を受信することを含む、請求項1に記載の方法。
  3. 予期される内側コードエラー比率に基づき、前記訂正力を動的に調節することをさらに含む、請求項2に記載の方法。
  4. 前記反復的にデコード可能な内側コードは、LDPCコードおよびターボコードからなる群から選択される、請求項1から3のいずれか一項に記載の方法。
  5. 前記データ記憶チャネルは、ホログラフィックデータ記憶チャネルを含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記ホログラフィックデータ記憶チャネルに記憶された前記エンコードされたユーザ情報をインターリーブすることと、
    前記インターリーブおよびエンコードされたユーザ情報から、複数のコードワードを生成することと、を含む、請求項5に記載の方法。
  7. 前記エンコードされたユーザ情報をインターリーブすることは、
    前記ホログラフィックデータ記憶チャネルの一を超えるページに亘り記憶されるエンコードされたユーザ情報をインターリーブすることを含む、請求項6に記載の方法。
  8. 前記反復的にデコード可能な内側コードはLDPCコードを含み、前記方法は、
    前記LDPCコードに対して準巡回パリティ検査行列のマザー行列表示を構築することと、
    前記マザー行列表示の行数を減らすことと、
    をさらに含み、
    前記外部BCHコードに対する前記訂正力を動的に増やすことは、一定の全体システムコードレートを維持しながら、前記外側BCHコードに対する前記訂正力を増やすことを含む、請求項1から7のいずれか一項に記載の方法。
  9. 前記反復的にデコード可能な内側コードは少なくとも二つの異なるLDPCコードを含む、請求項1から8のいずれか一項に記載の方法。
  10. 前記少なくとも二つの異なるLDPCコードに対して少なくとも二つの準巡回パリティ検査行列の少なくとも二つのマザー行列表示を構築することと、
    前記少なくとも二つの異なるLDPCコードの一つを選択するユーザプログラム可能な入力を受け取ることとをさらに含み、
    前記少なくとも二つの異なるLDPCコードは同じサーキュラントサイズSに関連付けられており、前記少なくとも二つのマザー行列表示は異なる数の行を持つ、請求項9に記載の方法。
  11. 前記データ記憶チャネルに関連するエラー統計値に少なくとも部分的に基づき、前記少なくとも二つの異なるLDPCコードのうちの一つを動的に選択することをさらに含む、請求項10に記載の方法。
  12. 連結コードを実施するシステムであって、
    訂正力と関連する外側BCHコードと、
    少なくとも部分的に全体システムコードレート要件に基づく内側コードレートおよび行列表示に関連する反復的にデコード可能な内側コードと、
    前記外側BCHコードと前記反復的にデコード可能な内側コードとを利用してユーザ情報をエンコードする、エンコーダと、
    前記エンコードされたユーザ情報を記憶するデータ記憶チャネルと、を含み、
    前記エンコーダは、前記反復的にデコード可能な内側コードの行列表示から1以上のビットを前記外側BCHコードに対して割り当てることにより、前記外側BCHコードの訂正力を動的に増やすことを行う
    システム。
  13. 前記外側BCHコードの前記訂正力は、前記訂正力を示す少なくとも一つのユーザプログラム可能な入力に基づき選択される、請求項12に記載のシステム。
  14. 前記エンコーダは予期される内側コードエラー比率に基づき、前記訂正力を動的に調節するよう構成された、請求項13に記載のシステム。
  15. 前記反復的にデコード可能な内側コードは、LDPCコードおよびターボコードからなる群から選択される、請求項12から14のいずれか一項に記載のシステム。
  16. 前記データ記憶チャネルは、ホログラフィックデータ記憶チャネルを含む、請求項12から15のいずれか一項に記載のシステム。
  17. 前記ホログラフィックデータ記憶チャネルに記憶された前記エンコードされたユーザ情報をインターリーブするよう構成されたインターリーブ器をさらに含み、
    前記エンコーダは、前記インターリーブおよびエンコードされたユーザ情報から、複数のコードワードを生成する、請求項16に記載のシステム。
  18. 前記インターリーブ器は、前記ホログラフィックデータ記憶チャネルの一を超えるページに亘り記憶されるエンコードされたユーザ情報をインターリーブするよう構成された、請求項17に記載のシステム。
  19. 前記反復的にデコード可能な内側コードはLDPCコードを含み、前記エンコーダは、
    前記LDPCコードに対して準巡回パリティ検査行列のマザー行列表示を構築することと、
    前記マザー行列表示の行数を減らすことと、
    一定の全体システムコードレートを維持しながら、前記外側BCHコードに対する前記訂正力を動的に増やすこととを行うよう構成された、請求項12から18のいずれか一項に記載のシステム。
  20. 前記反復的にデコード可能な内側コードは少なくとも二つの異なるLDPCコードを含む、請求項12から19のいずれか一項に記載のシステム。
  21. 前記エンコーダは、
    前記少なくとも二つの異なるLDPCコードに対して少なくとも二つの準巡回パリティ検査行列の少なくとも二つのマザー行列表示を構築することと、
    前記少なくとも二つの異なるLDPCコードの一つを選択するユーザプログラム可能な入力を受け取ることとをさらに行うよう構成され、
    前記少なくとも二つの異なるLDPCコードは同じサーキュラントサイズSに関連付けられており、前記少なくとも二つのマザー行列表示は異なる数の行を持つ、請求項20に記載のシステム。
  22. 前記エンコーダは、
    前記データ記憶チャネルに関連するエラー統計値に少なくとも部分的に基づき、前記少なくとも二つの異なるLDPCコードのうちの一つを動的に選択するよう構成された、請求項21に記載のシステム。
JP2007334466A 2006-12-29 2007-12-26 ホログラフィック記憶のための連結コード Expired - Fee Related JP5055578B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US88276206P 2006-12-29 2006-12-29
US60/882,762 2006-12-29
US11/955,005 2007-12-12
US11/955,005 US8583981B2 (en) 2006-12-29 2007-12-12 Concatenated codes for holographic storage

Publications (2)

Publication Number Publication Date
JP2008176911A JP2008176911A (ja) 2008-07-31
JP5055578B2 true JP5055578B2 (ja) 2012-10-24

Family

ID=39585797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007334466A Expired - Fee Related JP5055578B2 (ja) 2006-12-29 2007-12-26 ホログラフィック記憶のための連結コード

Country Status (2)

Country Link
US (1) US8583981B2 (ja)
JP (1) JP5055578B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190976B1 (en) 2006-08-07 2012-05-29 Marvell International Ltd. High-speed interface for holographic storage read channel
US8095846B2 (en) 2007-06-08 2012-01-10 Cortina Systems, Inc. Data coding apparatus and methods
US8392786B2 (en) * 2008-05-07 2013-03-05 Broadcom Corporation LDPC coding systems for 60 GHz millimeter wave based physical layer extension
CN102265519B (zh) * 2009-01-09 2014-08-27 Lg电子株式会社 用于发送和接收信号的装置以及用于发送和接收信号的方法
US8413029B2 (en) * 2009-01-16 2013-04-02 Lsi Corporation Error correction capability adjustment of LDPC codes for storage device testing
KR101580162B1 (ko) 2009-01-22 2016-01-04 엘지전자 주식회사 신호 송수신 장치 및 방법
KR101570472B1 (ko) * 2009-03-10 2015-11-23 삼성전자주식회사 연접 부호화 및 복호화 구조를 갖는 데이터 처리 시스템
US8560918B1 (en) 2009-04-21 2013-10-15 Marvell International Ltd. Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system
JP5881930B2 (ja) * 2009-05-13 2016-03-09 三菱電機株式会社 誤り訂正符号化装置および誤り訂正復号装置
US9116826B2 (en) * 2010-09-10 2015-08-25 Trellis Phase Communications, Lp Encoding and decoding using constrained interleaving
US8892809B2 (en) 2010-10-25 2014-11-18 Marvell World Trade Ltd. Data compression and encoding in a memory system
DE102012206436A1 (de) * 2012-04-19 2013-10-24 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur Ermittlung einer Bit- und/oder Paketfehlerrate
US20130318418A1 (en) * 2012-05-22 2013-11-28 Politecncio di Milano Adaptive error correction for phase change memory
US9110821B2 (en) * 2012-07-25 2015-08-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for improved short media defect detection
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9116822B2 (en) 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
US9065483B2 (en) * 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
US20160197703A1 (en) * 2013-09-10 2016-07-07 Electronics And Telecommunications Research Institute Ldpc-rs two-dimensional code for ground wave cloud broadcasting
US9559725B1 (en) * 2013-10-23 2017-01-31 Seagate Technology Llc Multi-strength reed-solomon outer code protection
TWI528732B (zh) * 2013-12-30 2016-04-01 衡宇科技股份有限公司 具有ldpc碼及bch碼之解碼器及其解碼方法
US9641194B2 (en) * 2014-05-28 2017-05-02 Storart Technology Co. Ltd. Method for encoding multi-mode of BCH codes and encoder thereof
US9355680B1 (en) 2015-01-30 2016-05-31 Seagate Technology Llc On the fly formatting
CN105527637B (zh) * 2015-11-24 2017-12-22 西安烽火电子科技有限责任公司 北斗卫星导航定位系统中的bch译码方法及装置
US10367530B2 (en) * 2016-01-14 2019-07-30 Qualcomm Incorporated Unified code block segmentation providing a cyclic redundancy check for low density parity check code codewords
US9886979B1 (en) 2016-12-30 2018-02-06 Western Digital Technologies, Inc. Implementing BER-list modulation code for hard disk drives
KR102396814B1 (ko) * 2017-05-02 2022-05-11 삼성전자 주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US11528038B2 (en) 2020-11-06 2022-12-13 Western Digital Technologies, Inc. Content aware decoding using shared data statistics
US12095599B2 (en) * 2022-05-17 2024-09-17 Qualcomm Incorporated Adaptive multi-level coding based on power management

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6011360B2 (ja) * 1981-12-15 1985-03-25 ケイディディ株式会社 音声符号化方式
NL9100218A (nl) * 1991-02-07 1992-09-01 Philips Nv Encodeer/decodeer-schakeling, alsmede digitaal video-systeem voorzien van de schakeling.
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5365530A (en) * 1992-05-12 1994-11-15 Mitsubishi Denki Kabushiki Kaisha Error-correction encoding and decoding system
JPH09251427A (ja) 1996-03-18 1997-09-22 Nec Home Electron Ltd フラッシュメモリの符号誤り訂正装置及び方法
EP0922254B1 (de) * 1996-08-30 2000-05-24 Siemens Aktiengesellschaft Fehlererkennung in einem speichersystem
KR100246184B1 (ko) 1997-07-02 2000-03-15 김영환 리드-솔로몬 에러 정정 코드를 이용한 프레쉬 메모리 시스템의 운영 방법
US6279133B1 (en) * 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
US6397364B1 (en) * 1998-04-20 2002-05-28 Mordecai Barkan Digital data representation for multi-bit data storage and transmission
US7890846B2 (en) * 2000-01-06 2011-02-15 Supertalent Electronics, Inc. Electronic data flash card with Reed Solomon error detection and correction capability
US6715116B2 (en) * 2000-01-26 2004-03-30 Hewlett-Packard Company, L.P. Memory data verify operation
US6810502B2 (en) * 2000-01-28 2004-10-26 Conexant Systems, Inc. Iteractive decoder employing multiple external code error checks to lower the error floor
US7184486B1 (en) * 2000-04-27 2007-02-27 Marvell International Ltd. LDPC encoder and decoder and method thereof
JP2001332982A (ja) * 2000-05-18 2001-11-30 Mitsubishi Electric Corp 光伝送システム、fec多重化装置、fec多重分離装置、および誤り訂正方法
JP2002100192A (ja) * 2000-09-22 2002-04-05 Toshiba Corp 不揮発性半導体メモリ
KR100870392B1 (ko) 2001-04-24 2008-11-25 엔엑스피 비 브이 시스템 및 데이터 저장 방법
US7142612B2 (en) * 2001-11-16 2006-11-28 Rambus, Inc. Method and apparatus for multi-level signaling
US7246294B2 (en) * 2002-04-01 2007-07-17 Intel Corporation Method for iterative hard-decision forward error correction decoding
EP1355234B1 (en) * 2002-04-15 2016-06-29 Micron Technology, Inc. Use of an error correction circuit in program and erase verify procedures
CA2454574C (en) * 2002-07-03 2008-12-09 Hughes Electronics Corporation Method and system for memory management in low density parity check (ldpc) decoders
TW575806B (en) 2002-07-15 2004-02-11 Silicon Motion Tech Inc A method for enhancing flash memory error correction capability and providing data encryption in the same time
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US7058873B2 (en) * 2002-11-07 2006-06-06 Carnegie Mellon University Encoding method using a low density parity check code with a column weight of two
US7379505B2 (en) * 2003-02-13 2008-05-27 Broadcom Corporation Method and apparatus for performing trellis coded modulation of signals for transmission on a TDMA channel of a cable network
US7334181B2 (en) * 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100547146B1 (ko) * 2003-10-06 2006-01-26 삼성전자주식회사 영상처리장치 및 그 방법
US7376883B2 (en) * 2003-10-27 2008-05-20 The Directv Group, Inc. Method and system for providing long and short block length low density parity check (LDPC) codes
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
US7991056B2 (en) * 2004-02-13 2011-08-02 Broadcom Corporation Method and system for encoding a signal for wireless communications
JP4056488B2 (ja) * 2004-03-30 2008-03-05 エルピーダメモリ株式会社 半導体装置の試験方法及び製造方法
US7739577B2 (en) * 2004-06-03 2010-06-15 Inphase Technologies Data protection system
US7188297B2 (en) 2004-08-12 2007-03-06 Motorola, Inc. Method and apparatus for encoding and decoding data
AU2005273169B2 (en) * 2004-08-16 2008-09-11 Nokia Technologies Oy Apparatus and method for coding/decoding block low density parity check code with variable block length
JP4614732B2 (ja) * 2004-10-22 2011-01-19 パナソニック株式会社 デコード装置
JP2006260619A (ja) 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd 誤り訂正装置、誤り訂正方法及びデジタルデータ記録再生装置
KR100680473B1 (ko) * 2005-04-11 2007-02-08 주식회사 하이닉스반도체 액세스 시간이 감소된 플래시 메모리 장치
US7861131B1 (en) * 2005-09-01 2010-12-28 Marvell International Ltd. Tensor product codes containing an iterative code
US7409622B1 (en) * 2005-11-10 2008-08-05 Storage Technology Corporation System and method for reverse error correction coding
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
JP2007299499A (ja) 2006-05-08 2007-11-15 Matsushita Electric Ind Co Ltd ホログラム記録再生装置およびホログラム記録再生方法
US8885099B2 (en) * 2007-02-16 2014-11-11 Marvell World Trade Ltd. Methods and systems for improving low resolution and low frame rate video

Also Published As

Publication number Publication date
US8583981B2 (en) 2013-11-12
JP2008176911A (ja) 2008-07-31
US20080163026A1 (en) 2008-07-03

Similar Documents

Publication Publication Date Title
JP5055578B2 (ja) ホログラフィック記憶のための連結コード
TWI604698B (zh) 具有錯誤校正處置之低密度同位檢查解碼器
US9459956B2 (en) Data decoder with trapping set flip bit mapper
US8489977B2 (en) Low-density parity check codes for holographic storage
US8929009B2 (en) Irregular low density parity check decoder with low syndrome error handling
US8930788B2 (en) LDPC decoder with fractional unsatisfied check quality metric
US8255763B1 (en) Error correction system using an iterative product code
US7979774B1 (en) Error correction coding for varying quality channels
TWI451430B (zh) 用於利用乘積碼糾正非揮發性記憶體中的錯誤的系統和方法
US8560930B2 (en) Systems and methods for multi-level quasi-cyclic low density parity check codes
US8209580B1 (en) Error correction coding for varying signal-to-noise ratio channels
US8051357B1 (en) Methods for generating and implementing quasi-cyclic irregular low-density parity check codes
US8321746B2 (en) Systems and methods for quasi-cyclic LDPC code production and decoding
US9130590B2 (en) Non-binary layered low density parity check decoder
US7644336B2 (en) Techniques for providing greater error protection to error-prone bits in codewords generated from irregular codes
US9130589B2 (en) Low density parity check decoder with dynamic scaling
US20170324430A1 (en) Systems and Methods for Data Processing With Folded Parity Sector
US9048870B2 (en) Low density parity check decoder with flexible saturation
US20110083058A1 (en) Trapping set based ldpc code design and related circuits, systems, and methods
US20140082449A1 (en) LDPC Decoder With Variable Node Hardening
US8566665B2 (en) Systems and methods for error correction using low density parity check codes using multiple layer check equations
US9727419B2 (en) Non-binary low density parity check code column rotation
US8458557B1 (en) Interleaved error correction coding for channels with non-uniform signal-to-noise ratios
US8595587B1 (en) Systems and methods for optimizing a product code structure
US8443250B2 (en) Systems and methods for error correction using irregular low density parity check codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120709

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees