(57)【特許請求の範囲】
【請求項１】
入力データ・セットに対して１回目のデータ検出を実行するように動作可能な第１の検出器と、
第２の検出器と、
前記第１の検出器からの出力の導出および前記第２の検出器からの出力の導出を受け取るように動作可能な復号器と、
前記入力データ・セットに対応する前記復号器の出力を記憶する待ち行列バッファとを含み、
前記第２の検出器は、前記復号器の前記出力が収束しない場合にのみ、前記復号器の前記出力を使用して前記入力データ・セットに対する２回目のデータ検出を実行するように動作可能であり、前記２回目が前記１回目の後になされる
収束判定に少なくとも部分的に基づいて、前記第２の検出器を使用した後続処理のために前記復号済みデータ・セットを提供する
ことを特徴とする可変反復データ処理システム。
【請求項２】
前記復号器の前記出力が硬出力および軟出力の両方を含み、前記軟出力が前記待ち行列バッファを介して前記第２の検出器に提供される、請求項１に記載のシステム。
【請求項３】
前記復号器の前記出力が収束するたびに前記硬出力を記憶する出力データ・バッファをさらに含む、請求項２に記載のシステム。
【請求項４】
前記入力データ・セットが、第１の入力データ・セットであり、前記復号器出力が、前記第１の入力データ・セットに対応する第１の復号器出力であり、前記復号器が、第２の入力データ・セットに対応する第２の復号器出力を提供し、前記出力データ・バッファが、前記第２の復号器出力に関連して前記第１の復号器出力を順序付けるように動作可能である、請求項３に記載のシステム。
【請求項５】
少なくとも前記２回目と前記１回目との間の差異に対応する時間、前記入力データ・セットを記憶する入力データ・バッファをさらに含み、前記入力データ・バッファから前記第２の検出器に前記入力データ・セットが提供される、請求項１に記載のシステム。
【請求項６】
前記システムが、前記第１の検出器からの前記出力をインタリーブし、その結果を前記第１の検出器からの前記出力の前記導出として提供するインタリーバをさらに含む、請求項１に記載のシステム。
【請求項７】
前記インタリーバが、前記第２の検出器からの前記出力をさらにインタリーブし、その結果を前記第２の検出器からの前記出力の前記導出として提供する、請求項６に記載のシステム。
【請求項８】
前記入力データ・セットが、第１の入力データ・セットであり、前記第１の検出器が、第２の入力データ・セットに対して３回目のデータ検出を実行するように動作可能であり、前記復号器が、前記第２の入力データ・セットに対応する前記第１の検出器からの前記出力の導出を受け取るように動作可能であり、前記待ち行列バッファが、前記第１の入力データ・セットに対応する前記復号器の前記出力を、前記第２の入力データ・セットに対応する前記復号器の出力で上書きするように動作可能である、請求項１に記載のシステム。
【請求項９】
たとえ前記第１の入力データ・セットに対応する前記復号器の前記出力が収束しない場合にも、前記第１の入力データ・セットに対応する前記復号器の前記出力を出力データ・バッファに書き込む、請求項８に記載のシステム。
【請求項１０】
前記第２の検出器は、前記復号器の前記出力が収束しない場合にのみ、前記第２の入力データ・セットに対応する前記復号器の前記出力を使用して前記第２の入力データ・セットに対する４回目のデータ検出を実行するように動作可能であり、前記２回目が前記１回目の後になされる、請求項８に記載のシステム。
【請求項１１】
前記システムが、記憶装置および通信装置からなる集まりから選択された装置に組み込まれる、請求項１に記載のシステム。
【請求項１２】
データ入力を処理するための方法であって、
第１の検出器および第２の検出器を備えることと、
検出済みデータ・セットを生成する、前記第１の検出器を使用した入力データ・セットに対するデータ検出を実行することと、
インタリーブ済みデータ・セットを生成する、前記検出済みデータ・セットをインタリーブすることと、
復号済みデータ・セットを生成する、前記インタリーブ済みデータ・セットを復号することと、
前記復号済みデータ・セットが収束したかどうかを判定することと、
前記収束判定に少なくとも部分的に基づいて、前記第２の検出器を使用した後続処理のために前記復号済みデータ・セットを提供することと
前記第２の検出器を使用した後続処理のために前記復号済みデータ・セットを提供することが、前記復号済みデータ・セットを待ち行列バッファに書き込むことを特徴とすることを含む方法。
【請求項１３】
前記第２の検出器を使用した後続処理のために前記復号済みデータ・セットを提供することが、前記復号済みデータ・セットを待ち行列バッファにデインタリーブすることを含む、請求項１２に記載の方法。
【請求項１４】
前記復号済みデータ・セットを前記待ち行列バッファに書き込むときに、前記待ち行列バッファが満杯になり、たとえ復号済みデータ・セットが収束しない場合にも、前記第２の検出器パスからの前記復号済みデータ・セットを硬判定バッファに出力する、請求項１２に記載の方法。
【請求項１５】
前記符号語が収束せず、前記前の復号済みデータ・セットが、前記復号器を通って少なくとも２回処理された、請求項１４に記載の方法。
【請求項１６】
前の復号済みデータ・セットが収束したかどうかを判定することと、
前記前の復号済みデータ・セットの前記収束判定に少なくとも部分的に基づいて、前記前の復号済みデータ・セットを出力バッファに提供することと
をさらに含む、請求項１２に記載の方法。
【請求項１７】
前記出力データ・バッファが、他の復号済みデータ・セットに関連して前記前の復号済みデータ・セットを順序付けるように動作可能である、請求項１６に記載の方法。
【請求項１８】
前記データ検出が第１のデータ検出であり、前記検出済みデータ・セットが第１の検出済みデータ・セットである方法であって、
前記入力データ・セットを記憶することと、
デインタリーブ済みデータ・セットを生成する、前記復号済みデータ・セットをデインタリーブすることと、
前記復号済みデータ・セットを前記記憶済み入力データ・セットと調整することと、
第２の検出済みデータ・セットを生成する、前記第２の検出器を使用した前記記憶済み入力データ・セットおよび前記デインタリーブ済みデータ・セットに対する第２のデータ検出を実行することと
をさらに含む、請求項１２に記載の方法。
【請求項１９】
第１の入力データ・セットに対して１回目の、および第２の入力データ・セットに対して２回目のデータ検出を実行するように動作可能な第１の検出器と、
第２の検出器と、
前記第１のデータ・セットに対応する前記第１の検出器からの出力の導出、前記第２のデータ・セットに対応する前記第１の検出器からの出力、および前記第２の検出器からの出力の導出を受け取るように動作可能な復号器と、
前記第２の入力データ・セットに対応する前記復号器の前記出力を受け取った後で、前記第１の入力データ・セットに対応する前記復号器の前記出力を受け取り、前記第２の復号器出力に関連して前記第１の復号器出力を順序付けるように動作可能な出力データ・バッファとを備え、
前記第２の検出器は、前記復号器の前記出力が収束しない場合にのみ、前記第１の入力データ・セットに対応する前記復号器の前記出力を使用して前記第１の入力データ・セットに対する３回目のデータ検出を実行するように動作可能であり、
前記３回目が前記１回目および前記２回目の後になされ、収束判定に少なくとも部分的に基づいて、前記第２の検出器を使用した後続処理のために前記復号済みデータ・セットを提供することを特徴とするデータ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を検出および／または復号するシステムおよび方法に関し、より詳細には、反復データ復号および／または検出を実行するシステムおよび方法に関する。
【背景技術】
【０００２】
記憶システム、携帯電話システムおよび無線伝送システムを含む、様々なデータ転送システムが開発されてきた。これらの各システムでは、送信側から受信側に、何らかの媒体を介してデータが転送される。例えば、記憶システムでは、送信側（すなわち書込み機能）から受信側（すなわち読取り機能）に、記憶媒体を介してデータが送られる。任意の転送の有効性は、様々な要因に起因する任意のデータ損失の影響を受ける。一部の例では、データ・エラーを検出し、そのデータ・エラーを訂正する機能を高めるために、符号化／復号処理を使用する。一例として、単純なデータ検出／復号を実行することができるが、そのような単純な処理は、しばしば訂正されたデータ・ストリームに収束する機能を欠く。
【０００３】
収束する可能性を高めるために、様々な既存の処理では、２回以上の検出／復号反復を活用する。図１を参照すると、例示的な従来技術の２段階データ検出／復号回路１００が示されている。２段階データ検出／復号回路１００は、検出器１１０に与えられるデータ入力１０５を受け取る。検出器１１０からの硬出力および軟出力が、ＬＤＰＣ復号器１１５に提供される。入力１０５は、バッファ１３０を介して別の検出器１２０に転送される。検出器１２０は、ＬＤＰＣ復号器１１５の軟出力および入力１０５を使用して、追加のデータ検出処理を実行する。検出器１２０からの硬出力および軟出力が、ＬＤＰＣ復号器１２５に提供され、ＬＤＰＣ復号器１２５は第２の復号処理を実行して出力１３５を提供する。検出器１１０およびＬＤＰＣ復号器１１５が行う最初の検出／復号が収束しない場合、検出器１２０およびＬＤＰＣ復号器１２５が行う次の検出／復号が、さらに収束する機会を提供する。しかし、このような手法では、入力１０５として取り入れられる入力データ・セットごとに２回の反復を必要とする。この処理は、１回の反復で入力が収束できることに対して、かなりの電力を浪費し、不必要な待ち時間を発生させる。さらに、一部の例では、収束をもたらすのに２回の反復では不十分である。したがって、そのような手法はいくつかの条件で無駄があり、他の条件では不十分である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、少なくとも上述の理由から、進歩したデータ処理のシステムおよび方法が当技術分野で求められている。
【課題を解決するための手段】
【０００５】
本発明は、情報を検出および／または復号するシステムおよび方法に関し、より詳細には、反復データ復号および／または検出を実行するシステムおよび方法に関する。
【０００６】
本発明の一部の実施形態では、可変反復データ処理システムを提供する。そのようなシステムは、少なくとも第１の検出器と、第２の検出器と、復号器と、待ち行列バッファとを含む。第１の検出器は、入力データ・セットに対して１回目のデータ検出を実行するように動作可能である。復号器は、第１の検出器からの出力の導出を受け取り、復号処理を実行する。復号処理が収束しない場合、復号器出力が、後続の２回目の検出／復号処理のために第２の検出器に渡される。一部の例では、復号器の出力は、硬出力と軟出力との両方を含む。その場合、軟入力は、待ち行列バッファを介して第２の検出器に提供される。特定の例では、第２の検出器の出力は、さらにもう一度復号を試みるために、さらに復号器に渡される。
【０００７】
上述の実施形態の様々な例は、復号器の出力が収束するたびに硬出力を記憶する出力データ・バッファを含む。その場合、出力データ・バッファは、順不同で受け取った一連の復号器出力を並べ替えるように動作可能である。上述の実施形態の一部の例は、少なくとも２回目と１回目との間の差異に対応する時間、入力データ・セットを記憶する入力データ・バッファを含む。その場合、入力データ・バッファから、第２の検出器に入力データ・セットが提供される。特定の例では、出力データ・バッファのサイズは、その入力データ・セットを検出器および復号器が処理することができる最大時間を決定する。入力データ・セットがシステム内で許可された最大時間に達すると、復号が収束したかどうかに関係なく、復号器がそのデータ・セットを処理した後に、対応する出力データが出力データ・バッファ中に書き込まれる。
【０００８】
上述の実施形態の一部の例では、このシステムは、第１の検出器からの出力をインタリーブして、その結果を第１の検出器からの出力の導出として提供するインタリーバをさらに含む。このインタリーバは、第２の検出器からの出力をさらにインタリーブして、その結果を第２の検出器からの出力の導出として提供することができる。上述のシステムは、記憶装置または通信装置を含むがこれだけに限定されない、多数の様々なタイプの装置に組み込むことができる。
【０００９】
本発明の他の実施形態は、データ入力の処理方法を提供する。そのような方法は、第１の検出器および第２の検出器を備えることを含む。第１の検出器を使用して入力データ・セットに対してデータ検出を行い、検出済みデータ・セットを生成する。この方法は、この検出済みデータ・セットをインタリーブして、インタリーブ済みデータ・セットを生成し、そのインタリーブ済みデータ・セットを復号して復号済みデータ・セットを生成することをさらに含む。復号済みデータ・セットが収束したかどうかが判定される。復号済みデータ・セットが収束しなかった場合、その復号済みデータ・セットは、第２の検出器を使用する次の処理のために提供される。一部の例では、上述の内容は、復号の最大待ち時間に達しておらず、復号済みデータ・セットを保持する待ち行列バッファが満杯でない状況に限定される。上述の実施形態の一部の例では、第２の検出器を使用する次の処理のために復号済みデータ・セットを提供することは、復号済みデータ・セットを待ち行列バッファに書き込み、復号済みデータ・セットをデインタリーブすることを含む。待ち行列バッファが満杯の場合、たとえ、前の復号済みデータ・セットが収束しなかった場合にも、システムは前の復号済みデータ・セットを出力する。一部の例では、前の復号済みデータ・セットが、復号器を通って少なくとも２回処理された。一部の例では、これは、データ・セットが１回目の復号の試みで収束しない状況に限定され得る。
【００１０】
上述の実施形態の一部の例では、この方法は、前の復号済みデータ・セットが収束したかどうかを判定することをさらに含む。前の復号済みデータ・セットが収束したと判定された場合、前の復号済みデータ・セットが出力バッファに与えられる。一部の例では、出力データ・バッファは、他の復号済みデータ・セットに関連して前の復号済みデータ・セットを順序付けるように動作可能である。本発明の上述の実施形態の特定の例では、このデータ検出は第１のデータ検出であり、検出済みデータ・セットは第１の検出済みデータ・セットである。そのような場合、この方法は、入力データ・セットを記憶し、復号済みデータ・セットをデインタリーブしてデインタリーブ済みデータ・セットを生成し、復号済みデータ・セットを記憶済みデータ・セットと調整し、第２の検出器を使用して、記憶済み入力データ・セットおよびデインタリーブ済みデータ・セットに対して第２のデータ検出を実行することをさらに含む。
【００１１】
この概要は、本発明の一部の実施形態の典型的な要点を定めるにすぎない。本発明の他の多くの目的、特徴、利点および他の実施形態が、以下の詳細な説明、添付の特許請求の範囲および添付の図面により、さらに十分に明らかになるであろう。
【００１２】
本明細書の残りの部分に記載した図面を参照することにより、本発明の様々な実施形態のさらなる理解が得られよう。これらの図面では、複数の図面を通して、同様の参照番号を使用して同様の構成要素を参照する。一部の例では、小文字からなる副表示が参照番号に関連付けられ、複数の同様の構成要素のうちの１つを表す。既存の副表示を指定せずに参照番号を参照する場合、そのような複数の同様の構成要素全体を参照することを意図する。
【図面の簡単な説明】
【００１３】
【図１】従来技術の２段階データ検出／復号システムを表す図である。
【図２ａ】本発明の一部の実施形態による待ち行列検出／復号手法を使用するデータ転送システムを表す図である。
【図２ｂ】本発明の一部の実施形態による待ち行列検出／復号手法を使用するデータ転送システムを表す図である。
【図３ａ】本発明の様々な実施形態による待ち行列検出／復号回路の２つの異なる実施形態を表す図である。
【図３ｂ】本発明の様々な実施形態による待ち行列検出／復号回路の２つの異なる実施形態を表す図である。
【図４】本発明の１つまたは複数の実施形態による待ち行列検出／復号回路の動作を示すタイミング図である。
【図５】可変反復検出／復号処理を実行する本発明の一部の実施形態による方法を示す流れ図である。
【発明を実施するための形態】
【００１４】
本発明は、情報を検出および／または復号するシステムおよび方法に関し、より詳細には、反復データ復号および／または検出を実行するシステムおよび方法に関する。
【００１５】
本発明の様々な実施形態は、読取りチャネル、無線伝送および他の応用例に適した、反復復号のコンパクトなハードウェア解決策を提供する。一部の例では、本発明の諸実施形態は、少なくとも１個の復号器にデータを提供する２個以上のデータ検出器を使用して、データ依存型の複数回のグローバル反復を実現可能なアルゴリズムを提供する。この場合、復号器は、単一の復号器、２個の独立した復号器、単一の検出器からのデータを処理するのに必要な２倍の率で動作する単一の復号器とすることができる。単一復号器のシステムでは、復号器が、２つの進行中の検出処理および復号処理の間で復号能力を単一の符号語時間内で時分割する機能を提供する。そのような実施形態は、「不良」な符号語（すなわち、１回のグローバル反復後に収束しなかった符号語）を扱う機能を、対応する結果を待ち行列バッファに書き込み、次いでその符号語を１回または複数回の後続のグローバル反復を使用して再処理することにより、例外として提供する。不良の符号語の結果は、待ち行列バッファがその符号語をもう一度再処理するのに満杯になりすぎた場合、あるいはその符号語が収束した場合に順不同で提供される。不良の符号語のグローバル反復の最大回数は、後続の符号語の間で何個の符号語が不良であるか、待ち行列メモリのサイズ、および復号待ち時間の制約によって決まる。本発明の上述の実施形態が、符号語処理結果を順不同で報告することを認めるため、下流の硬判定バッファを使用して、受け取った結果をそれらの元の順序を表す順番に並べ替えることができる。他の場合では、この順不同の結果が、並べ替えられることなく単純に受け手の装置に報告される。
【００１６】
図２ａを参照すると、本発明の一部の実施形態に従って、待ち行列検出／復号回路２１０を含む記憶システム２００が示されている。記憶システム２００は、制御器２３０、チャネル２４０および物理記憶媒体２２０を含む。物理記憶媒体２２０は磁気ディスクとすることができるが、これだけに限定されるものではない。本明細書で行う開示に基づいて、本発明の様々な実施形態に関連して使用することができる様々な物理記憶媒体を当業者なら認めるであろう。制御器２３０は、エラー訂正符号化／復号を含む。より詳細には、制御器２３０は、エラー訂正符号器２０４を含む。エラー訂正符号器２０４は、リード・ソロモン符号器またはＣＲＣ符号器を含むがこれだけに限定されない、当技術分野で知られているどんなエラー訂正符号器でもよく、エラー訂正復号器２２４は、対応するリード・ソロモン復号器またはＣＲＣ復号器とすることができるが、これだけに限定されるものではない。前述の符号器および復号器は両方とも、符号化処理および復号処理を実行可能な当技術分野で知られている任意の回路またはシステムとすることができる。チャネル２４０は、データ符号器２０６および前処理回路２０８を含む。一部の例では、データ符号器２０６は、低密度パリティ・チェックＬＤＰＣ符号器である。本明細書で行う開示に基づいて、本発明の様々な実施形態により実施することができる様々な符号化処理および対応する復号処理を当業者なら認めるであろう。前処理回路２０８には、当技術分野でよく知られている様々な前処理回路が含まれる。後処理回路２２２には、物理記憶媒体からデータを受け取り、受け取ったデータをデータ検出／復号に準備するための、当技術分野でよく知られている様々な後処理回路が含まれる。
【００１７】
さらに、チャネル２４０は、処理の可用性および／または収束に応じて、可変回数の検出／復号反復を実行可能な待ち行列検出／復号回路２１０を含む。このような待ち行列検出／復号回路２１０は、実行しなければならない反復回数を最小限にしながら、所与の入力に対して可変回数の反復を実行可能にする。この機能を実行するために、入力処理の完了は順不同でなされ、後の時点でそれらの結果を再度組み合わせることができる。
【００１８】
動作において、データ入力２０２が受け取られる。データ入力２０２は、物理記憶媒体２２０上に記憶することになっているどんなデータ・セットでもよい。データ入力２０２は、当技術分野で知られているようにエラー訂正符号器２０４を使用して符号化される。エラー訂正符号器２０４の出力は、データ符号器２０６に提供され、このデータ符号器２０６は、例えばそのデータのＬＤＰＣ符号化を実行することができる。データ符号器２０６の出力は、前処理回路２０８に提供され、この前処理回路２０８は、物理記憶媒体２２０に書き込むために出力をデジタル出力からアナログ出力へと満足に変換することができる。
【００１９】
物理記憶媒体２２０に前に書き込まれたデータは、その後、後処理回路２２２が取り出し、処理することができる。ある例では、後処理回路２２２は、物理記憶媒体２２０から取り出したアナログ・データ信号の増幅を行い、増幅したアナログ信号をデジタル信号に変換し、変換したデジタル信号を待ち行列検出／復号回路２１０に出力する。次いで、待ち行列検出／復号回路２１０は、処理の出力が収束する（すなわち、その出力が、データ符号器２０６によって符号化された元のデータを十分に表す）か、あるいは追加の処理を実行するための残りリソースが不足するまで、可変回数のデータ検出／復号処理を実行する。待ち行列検出／復号回路２１０は、自らの結果を出力としてエラー訂正復号器２２４に提供する。エラー訂正復号器２２４は、指定されたエラー訂正処理を実行して任意のエラーが残っているかどうかを判定し、エラーを検出した場合はそのエラーの訂正を試みる。エラー訂正処理が完了すると、エラー訂正復号器２２４は、データ出力２２６を提供する。典型的には、データ出力２２６は、物理記憶媒体２２０に書き込むために最初に提供されたデータ入力２０２に対応する。
【００２０】
図２ｂを参照すると、本発明の一部の実施形態に従って、待ち行列検出／復号回路２１１を含む伝送システム２０１が示されている。伝送システム２０１は、送信制御器２３１、送信機２４１、伝送チャネル２５１、受信機２４３および受信制御器２３３を含む。伝送チャネルは、ＲＦ伝送チャネルとすることができるが、これだけに限定されるものではない。本明細書で行う開示に基づいて、本発明の様々な実施形態に関連して使用することができる様々な伝送チャネルを当業者なら認めるであろう。送信制御器２３１は、例えば、リード・ソロモン符号器またはＣＲＣ符号器として実装することができるエラー訂正符号器を含む。同様に、受信制御器２３３は、エラー訂正符号器２０５に対応するエラー訂正復号器２２５を含む。したがって、エラー訂正復号器２２５は、例えばＣＲＣ復号器またはリード・ソロモン復号器とすることができる。前述の符号器および復号器は両方とも、符号化処理および復号処理を実行可能な当技術分野で知られている任意の回路またはシステムとすることができる。本明細書で行う開示に基づいて、本発明の様々な実施形態に関連して使用することができる様々なエラー訂正符号器／復号器の手法を当業者なら認めるであろう。
【００２１】
送信機２４１は、データ符号器２４５および前処理回路２４７を含む。一部の例では、データ符号器２４５は、ＬＤＰＣ符号器である。本明細書で行う開示に基づいて、本発明の様々な実施形態により実装することができる様々な符号化処理を当業者なら認めるであろう。前処理回路２４７には、当技術分野でよく知られている様々な前処理回路が含まれる。ある特定の例では、前処理回路２４７は、データ符号器２４５からのデジタル・データ・セットを、伝送チャネル２５１を介して送信するのに適した、対応するＲＦ信号へと変換するように動作可能である。伝送チャネル２５１を介して転送されるデータ・セットは、受信機２４３の後処理回路２４４を使用して受け取られる。後処理回路２４４には、伝送チャネルからデータを受け取り、受け取ったデータをデータ検出／復号に準備するための、当技術分野でよく知られている様々な後処理回路が含まれる。
【００２２】
さらに、受信機２４３は、処理の可用性および／または収束に応じて、可変回数の検出／復号反復を実行可能な待ち行列検出／復号回路２１１を含む。このような待ち行列検出／復号回路２１１は、実行しなければならない反復回数を最小限にしながら、所与の入力に対して可変回数の反復を実行可能にする。この機能を実行するために、入力処理の完了は順不同でなされ、後の時点でそれらの結果を再度組み合わせることができる。
【００２３】
動作において、データ入力２０３が受け取られる。データ入力２０３は、伝送チャネル２５１を介して送信することになっているどんなデータ・セットでもよい。データ入力２０３は、当技術分野で知られているようにエラー訂正符号器２０５を使用して符号化される。エラー訂正符号器２０５の出力は、データ符号器２４５に提供され、このデータ符号器２４５は、例えばそのデータのＬＤＰＣ符号化を実行することができる。データ符号器２４５の出力は、前処理回路２４７に提供され、この前処理回路２４７は、伝送チャネル２５１を介して送信するために出力をデジタル出力からアナログ出力へと満足に変換することができる。
【００２４】
伝送チャネル２５１を介して送信されるデータは、受信機２４３の後処理回路２４４が受け取り、処理する。ある例では、後処理回路２４４は、伝送チャネル２５１から取り出したアナログ・データ信号の増幅を行い、増幅したアナログ信号をデジタル信号に変換し、変換したデジタル信号を待ち行列検出／復号回路２１１に出力する。次いで、待ち行列検出／復号回路２１１は、処理の出力が収束する（すなわち、その出力が、データ符号器２４５によって符号化された元のデータを十分に表す）か、あるいは追加の処理を実行するための残りリソースが不足するまで、可変回数のデータ検出／復号処理を実行する。待ち行列検出／復号回路２１１は、自らの結果を出力としてエラー訂正復号器２２５に提供する。エラー訂正復号器２２５は、指定されたエラー訂正処理を実行して任意のエラーが残っているかどうかを判定し、エラーを検出した場合はそのエラーの訂正を試みる。エラー訂正処理が完了すると、エラー訂正復号器２２５は、データ出力２２７を提供する。典型的には、データ出力２２７は、伝送チャネル２５１を介して送信するために最初に提供されたデータ入力２０３に対応する。
【００２５】
図２ａ〜図２ｂには、待ち行列検出／復号回路および／または処理を適用することができる記憶システムおよび伝送システムが示されているが、本発明の様々な実施形態による待ち行列検出／復号回路を適用することができる様々なシステムがあることに留意すべきである。本明細書で行う開示に基づいて、本発明の様々な実施形態による待ち行列検出／復号回路および／または処理を使用することにより恩恵を受けることのできる様々なシステムを当業者なら認めるであろう。
【００２６】
図３ａを参照すると、本発明の一部の実施形態に従って待ち行列検出／復号回路３００の一実装形態が示されている。待ち行列検出／復号回路３００は、チャネル検出器３０８に供給されるデータ入力３０４を含む。チャネル検出器３０８は、軟出力ビタビ・アルゴリズムＳＯＶＡ検出器または最大事後確率ＭＡＰ検出器を含むがこれだけに限定されない、当技術分野で知られている任意のタイプのチャネル検出器とすることができる。本明細書で行う開示に基づいて、本発明の様々な実施形態により使用することができる様々なチャネル検出器を当業者なら認めるであろう。さらに、データ入力３０４は、データ入力３０４から受け取ったいくつかのデータ・セットを保持するように設計された入力データ・バッファ３１２に提供される。入力データ・バッファ３１２のサイズは、十分なバッファリングを行うように選択することができ、これにより、以下でさらに十分に説明するように、データ入力３０４によるデータ・セット入力は、少なくともその同じデータ・セットの第１の反復処理が完了し、処理済みデータがピンポン・バッファ３４８（すなわち、待ち行列バッファ）で利用可能になるまで利用できるままでいる。入力データ・バッファ３１２は、それらのデータ・セットをチャネル検出器３１６に提供する。チャネル検出器３０８と同様に、チャネル検出器３１６は、ＳＯＶＡ検出器またはＭＡＰ検出器を含むがこれだけに限定されない、当技術分野で知られている任意のタイプのチャネル検出器とすることができる。この場合も、本明細書で行う開示に基づいて、本発明の様々な実施形態により使用することができる様々なチャネル検出器を当業者なら認めるであろう。
【００２７】
チャネル検出器３０８およびチャネル検出器３１６両方の出力が、多重化装置３２０を介してインタリーバ回路３２８に提供される。そのような出力は、例えば対数尤度比値とすることができる。インタリーバ回路３２８は、２組のピンポン・バッファ３２４、３３２を使用してチャネル検出器３０８の出力をインタリーブし、これとは別にチャネル検出器３１６の出力をインタリーブする。ピンポン・バッファ３２４のバッファの１個が、チャネル検出器３０８からの現在インタリーブ中のデータ・セットを保持しながら、ピンポン・バッファ３２４のもう１個のバッファが、チャネル検出器３０８からの出力の、前のインタリーブ処理の結果を保持してＬＤＰＣ復号器３３６にアンロードする。同様に、ピンポン・バッファ３３２のバッファの１個が、チャネル検出器３１６からの現在インタリーブ中のデータ・セットを保持しながら、ピンポン・バッファ３３２のもう１個のバッファが、チャネル検出器３１６からの出力の、前のインタリーブ処理の結果を保持してＬＤＰＣ復号器３３６にアンロードする。
【００２８】
ＬＤＰＣ復号器３３６は、１個または複数個のデータ・セットを同時に復号することができる。一例として、ＬＤＰＣ復号器３３６は、ピンポン・バッファ３２４からの１個のインタリーブ済みデータ・セット、またはピンポン・バッファ３３２からの１個のインタリーブ済みデータ・セットを復号し、あるいは、ピンポン・バッファ３２４およびピンポン・バッファ３３２からの各インタリーブ済みデータ・セットを同時に復号するように設計することができる。復号したデータは、硬判定出力３４０として提供され、および／またはピンポン・バッファ３４８を使用して復号済みデータをデインタリーブし、デインタリーブしたそのデータをチャネル検出器３１６への入力として提供するデインタリーバ回路３４４に提供される。ピンポン・バッファ３４８のバッファの１個が、現在デインタリーブ中の復号済みデータ・セットを保持しながら、ピンポン・バッファ３４８のもう１個のバッファが、前のデインタリーブ処理の結果を保持してチャネル検出器３１６にアンロードする。硬判定出力３４０をデインタリーブし、デインタリーブした結果を出力データ・バッファ３６０中に記憶する、デインタリーバ回路３５６に硬判定出力３４０が提供される。最終的に、デインタリーバ回路３５６が、出力データ・バッファ３６０中に記憶したデインタリーブ済みデータを、出力３７０として提供する。
【００２９】
動作において、第１のデータ・セットが、データ入力３０４によってチャネル検出器３０８に取り入れられる。チャネル検出器３０８は、自らのチャネル検出アルゴリズムを実行して硬出力および軟出力の両方を多重化装置３２０に提供する。硬判定データおよび軟判定データが、ピンポン・バッファ３２４の１個のバッファに書き込まれる。検出器の出力がバッファ中に書き込まれるのと同時に、インタリーバ３２８が、連続するデータ・セットを、インタリーバのアルゴリズム／マッピングに基づいて非連続的なメモリ／バッファ・アドレスに書き込むことにより、そのデータ・セットをインタリーブする。インタリーバ３２８が自らのインタリーブ処理を完了すると、インタリーブ済みデータをＬＤＰＣ復号器３３６が復号する。データが収束する場合、ＬＤＰＣ復号器３３６が、自らの出力を硬判定出力３４０として出力データ・バッファ３６０に書き込み、その特定のデータ・セットの処理が完了する。あるいはデータが収束しない場合、ＬＤＰＣ復号器３３６が、自らの出力（軟出力および硬出力の両方）をピンポン・バッファ３４８に書き込む。以下でより詳細に説明するように、このスケジューリングは、この新しいデータ・セットを保持するための少なくとも１個の空のバッファがあることを保証し、この方策は、各データ入力が、少なくとも２回のグローバル反復（すなわち、検出器と復号器との対を２回通過すること）の可能性を確実に保証する。
【００３０】
ピンポン・バッファ３４８に書き込まれたデータは、チャネル検出器３１６に送り戻される。チャネル検出器３１６は、ピンポン・バッファ３４８の出力に対応するデータ・セットを入力データ・バッファ３１２から選択し、ＬＤＰＣ復号器３３６が生成してピンポン・バッファ３４８から送り戻された軟出力データに支援され、次のデータ検出を実行する。入力データ・バッファ３１２中に保たれたデータの、前に生成した軟データを使用することにより、チャネル検出器３１６は典型的に、後続のチャネル検出を、より高い精度で実行する。この、後続のチャネル検出の出力は、多重化装置３２０を介してインタリーバ３２８に渡される。このデータは、ピンポン・バッファ３３２の１個のバッファに書き込まれ、インタリーバ３２８がそのデータをインタリーブする。次いで、そのインタリーブ済みデータが、ＬＤＰＣ復号器３３６に渡され、このＬＤＰＣ復号器３３６で２回目の復号が行われる。１回目の反復と同様に、データが収束したかどうか、またはデータを扱うのにピンポン・バッファ３４８中のスペースが不足しているかどうかに関して判定がなされる。その場合、ＬＤＰＣ復号器３３６が、自らの出力を硬判定出力３４０として出力データ・バッファ３６０に書き込み、その特定のデータ・セットの処理は完了する。あるいは、データが収束せず、ピンポン・バッファ３４８中に、追加のデータ・セットを受け取るための十分なバッファ・スペースがある場合、ＬＤＰＣ復号器３３６が自らの出力（軟出力および硬出力の両方）をピンポン・バッファ３４８に書き込み、そして３回目の通過のためにチャネル検出器３１６に送り戻される。第２の検出器および復号器からのデータ・セットがピンポン・バッファ３４８中に書き込まれた後に、少なくとも第１の検出器および復号器からのデータ・セット用の予約スペースを有することにより、ピンポン・バッファ３４８中に十分なスペースが定義される。
【００３１】
例として、データ入力３０４で第１のデータ・セットを与えることができ、データ入力３０４で与えられる後続のすべてのデータ・セットが１回目の通過（すなわち１回の反復）で収束する一方、第１のデータ・セットでは収束するのに複数回の反復が必要であることに留意すべきである。その場合、第１のデータ・セットを複数回処理（すなわち複数回反復）することができ、この処理は、出力データ・バッファ３６０中で利用可能なメモリ量によって制限される。出力データ・バッファ３６０が満杯になるか、順序付けられた１組の出力が利用可能な場合、第１のデータ・セットに対応する最新の硬判定出力が硬判定出力として提供され、デインタリーバ３５６が、第１の出力を第１の位置に置いてそれらの出力を並べ替える。これを終えると、出力データ・バッファ３６０は、出力３７０として追い出される。本発明の一部の実施形態では、デインタリーバ３５６は並べ替え機能を実行せず、出力データ・バッファ３６０は極めて限られたサイズを有する。そのような場合、１個のデータ・セットは非常に多くの回数処理（すなわち、多数回反復）することができると考えられ、この処理は、出力３７０の受け手がそのデータをどれだけの時間待とうとするかのみに限定される。別の例として、データ入力３０４として与えられたすべてのデータが、１回目の通過で収束する可能性もある。そのような場合、節電のために、チャネル検出器３１６、ＬＤＰＣ復号器３３６および／またはデインタリーバ３４４を節電モードにすることもできる。さらに別の例として、データ入力３０４で与えられたすべてのデータ・セットが１回目の通過（すなわち１回の反復）では収束しない可能性もある。そのような場合、すべてのデータ・セットが２回反復されることになる。密接に位置するかなりの数のデータ・セットが収束しない状況で、より多くの反復を容易にするピンポン・バッファ３２４、３３２および３４８中の追加スペースと共に、１個または複数個の追加のチャネル検出器を追加することができることにも留意すべきである。そのような場合、すべてのデータ・セットが、検出器の数と同じ反復回数復号されることを保証することができる。
【００３２】
本明細書で行う開示に基づいて、待ち行列検出／復号回路３００は、当然のことながら、取り入れられたデータに応じて可変回数の検出／復号反復を実行できるようにする。さらに、一部の例では、待ち行列検出／復号回路３００を使用することにより、かなりの節電を実現することもできる。またさらに一部の例では、より高速なＬＤＰＣ復号器を実装することもでき、処理能力の向上を可能にし、かなりの第１反復データの収束が存在し、これらは複数反復を必ずしも必要としない。またさらに、ＬＤＰＣ復号器３３６の結果が順不同で報告されることを認めることにより、上流の処理は、下流の処理が完了するのを待つ必要がない。順不同結果の並べ替えは、待ち行列検出／復号回路３００または出力３７０の下流の受け手が実行することができる。
【００３３】
図３ｂを参照すると、本発明の他の様々な実施形態に従って待ち行列検出／復号回路３０１の別の実装形態が示されている。待ち行列検出／復号回路３０１は、チャネル検出器３０９に供給されるデータ入力３０５を含む。チャネル検出器３０９は、軟出力ビタビ・アルゴリズムＳＯＶＡ検出器または最大事後確率ＭＡＰ検出器を含むがこれだけに限定されない、当技術分野で知られている任意のタイプのチャネル検出器とすることができる。本明細書で行う開示に基づいて、本発明の様々な実施形態により使用することができる様々なチャネル検出器を当業者なら認めるであろう。さらに、データ入力３０５は、データ入力３０５から受け取ったいくつかのデータ・セットを保持するように設計されたメモリ・バッファ３１３に提供される。メモリ・バッファ３１３のサイズは、十分なバッファリングを行うように選択することができ、これにより、以下でさらに十分に説明するように、データ入力３０５によるデータ・セット入力は、少なくともその同じデータ・セットの第１の反復処理が完了し、処理済みデータがピンポン・バッファ３４９で利用可能になるまで利用できるままでいる。メモリ・バッファ３１３は、それらのデータ・セットをチャネル検出器３１７に提供する。チャネル検出器３０９と同様に、チャネル検出器３１７は、ＳＯＶＡ検出器またはＭＡＰ検出器を含むがこれだけに限定されない、当技術分野で知られている任意のタイプのチャネル検出器とすることができる。この場合も、本明細書で行う開示に基づいて、本発明の様々な実施形態により使用することができる様々なチャネル検出器を当業者なら認めるであろう。
【００３４】
チャネル検出器３０９の出力が、インタリーバ回路３９２に提供され、チャネル検出器３１７の出力が、別のインタリーバ回路３９４に提供される。インタリーバ回路３９２は、ピンポン・バッファ３９６を使用してチャネル検出器３０９の出力をインタリーブし、インタリーバ回路３９４は、ピンポン・バッファ３９８を使用してチャネル検出器３１７の出力をインタリーブする。ピンポン・バッファ３９６のバッファの１個が、チャネル検出器３０９からの現在インタリーブ中のデータ・セットを保持しながら、ピンポン・バッファ３９６のもう１個のバッファが、チャネル検出器３０９からの出力の、前のインタリーブ処理の結果を保持して、多重化装置３２１を介してＬＤＰＣ復号器３３７にアンロードする。同様に、ピンポン・バッファ３９８のバッファの１個が、チャネル検出器３１７からの現在インタリーブ中のデータ・セットを保持しながら、ピンポン・バッファ３９８のもう１個のバッファが、チャネル検出器３１７からの出力の、前のインタリーブ処理の結果を保持して、多重化装置３２１を介してＬＤＰＣ復号器３３７にアンロードする。
【００３５】
ＬＤＰＣ復号器３３７は、１個または複数個のデータ・セットを同時に復号することができる。一例として、ＬＤＰＣ復号器３３７は、ピンポン・バッファ３９６からの１個のインタリーブ済みデータ・セットを復号し、ピンポン・バッファ３９８からの１個のインタリーブ済みデータ・セットを復号し、またはピンポン・バッファ３９６およびピンポン・バッファ３９８からの各インタリーブ済みデータ・セットを同時に復号するように設計することができる。復号したデータは、硬判定出力３４１として提供されるか、あるいはピンポン・バッファ３４９を使用して復号済みデータをデインタリーブし、デインタリーブしたそのデータをチャネル検出器３１７への入力として提供するデインタリーバ回路３４５に提供される。ピンポン・バッファ３４９のバッファの１個が、現在デインタリーブ中の復号済みデータ・セットを保持しながら、ピンポン・バッファ３４９のもう１個のバッファが、前のデインタリーブ処理の結果を保持してチャネル検出器３１７にアンロードする。硬判定出力３４１をデインタリーブし、デインタリーブした結果をいくつかのメモリ・バッファ３６１のうちの１個に記憶する、デインタリーバ回路３５７に硬判定出力３４１が提供される。最終的に、デインタリーバ回路３５７が、メモリ・バッファ３６１中に記憶したデインタリーブ済みデータを、出力３７１として提供する。
【００３６】
待ち行列検出／復号回路３０１は、待ち行列検出／復号回路３００と同様に動作する。したがって、待ち行列検出／復号回路３０１は、取り入れられたデータに応じて可変回数の検出／復号反復を実行できるようにする。さらに、一部の例では、待ち行列検出／復号回路３０１を使用することにより、かなりの節電を実現することもできる。またさらに一部の例では、より高速なＬＤＰＣ復号器を実装することもでき、処理能力の向上を可能にし、かなりの第１反復データの収束が存在し、これらは複数反復を必ずしも必要としない。またさらに、ＬＤＰＣ復号器３３７の結果が順不同で報告されることを認めることにより、上流の処理は、下流の処理が完了するのを待つ必要がない。順不同結果の並べ替えは、待ち行列検出／復号回路３０１または出力３７１の下流の受け手が実行することができる。
【００３７】
待ち行列検出／復号回路の２つの特定の実装形態を本明細書で開示したが、本発明の様々な実施形態により他のいくつかの改変形態も可能であることに留意されたい。例えば、各々がそれぞれのチャネル検出器に対応する、別々の復号器を実装することもできる。また、別の例として、ピンポン・バッファ３４９は、３個以上のデータ・セットを含むように設計することもできる。バッファ３４９中のデータ・セット領域のうちの１つは、第１の検出器および第１の復号器から届く新しいデータ・セットを保持するために常に予約されており、残りの領域は、復号が収束していないデータ・セットを保持するために使用する。バッファ３４９が満杯になると、バッファ中に最も長い間留まっていたデータ・セットを、たとえ復号後に収束しなくても、復号器から出力バッファに出力する必要がある。一部の例では、制御器は、第１の検出器が符号語の復号をスキップできることを判定する。本明細書で行う開示に基づいて、本発明の１つまたは複数の実施形態により可能とすることができる他の様々な修正形態を、当業者なら認めるであろう。
【００３８】
図３ａ〜図３ｂの回路は、複数の符号語の可変グローバル反復を可能にする待ち行列機能を提供し、グローバル反復は逐次検出／復号処理を含む。２回のグローバル反復の可能性が保証されているが、必須ではない。図３ａ〜図３ｂの回路によってサポートされた待ち行列システムでは、入力符号語を、Ｍａｐ４検出器および後続のＬＤＰＣ復号器を使用してまず処理することができる。符号語が収束しない場合、その符号語の軟情報をＬＤＰＣ軟出力（すなわち待ち行列バッファ）メモリ中に記憶することができ、次いで、待ち行列に入れられたこの符号語は、収束するか、待ち時間の制約またはメモリ不足のために出力として次へ伝える必要があるまで、第２の検出器およびＬＤＰＣ復号器による次のグローバル反復で処理することができる。後続の処理は、次の状態のうちの少なくとも１つが保たれるまで継続する。状態とはすなわち、ＬＤＰＣ復号器が符号語を上手く復号する（すなわち、すべてのパリティ・チェックを満足する）、待ち行列メモリが満杯であり、待ち行列に入れられた先行符号語が新しく届く符号語に取って代わられる必要がある、および／または待ち行列に入れられた符号語が、最大待ち時間を超えてシステム内にある、状態である。最大待ち時間は、硬判定バッファ（すなわち出力バッファ）を利用する場合、硬判定バッファ（すなわち出力バッファ）のサイズ（符号語数で測られる）によって決まる。並べ替えバッファとして使用する場合、最も小さい意味のあるサイズは、２個の符号語を保持するのに十分なサイズである。ＬＤＰＣ復号が収束する前に、符号語が硬判定バッファ中へと押し出される場合に復号の失敗が発生する。
【００３９】
図４を参照すると、ハード・ディスク・ドライブでの実装に特に適用される、本発明の１つまたは複数の実施形態による待ち行列検出／復号回路３０１の例示的動作を示すタイミング図４００が示されている。待ち行列検出／復号回路３００を使用し、および他のシステム実装形態でも同様の例示的タイミングが実現可能である。この例示的な説明では、ピンポン・バッファ３４９が、３個の不良の符号語を保持するスペースを有すると仮定する。タイミング図４００をたどると、一連のデータ・ビットが、チャネル検出器３０９に提供されている（４０３として示す）。受け取られた一連のデータ・ビットは、チャネル検出器３０９によって処理され、その出力が、ピンポン・バッファ３９６の１個のバッファ中にロードされる（４０５として示す）。インタリーバ３９２が、前述のバッファをＬＤＰＣ復号器３３７にアンロードし（４０７として示す）、ＬＤＰＣ復号器３３７が、結果として得られた復号済み出力を提供する（４１３として示す）。同時に、後続の一連のデータ・ビットがチャネル検出器３０９に提供されており（４０９として示す）、チャネル検出器３０９は、この新しく受け取った一連のビットをピンポン・バッファ３９６のもう１個のバッファ中に処理する（４１１として示す）。この場合、ＬＤＰＣ復号器３３７の出力が収束しなかったと判定されており、したがってＬＤＰＣ復号器３３７の出力が、チャネル検出器３１７への入力として供せられる、ピンポン・バッファ３４９の１個のバッファに書き込まれる（４１５として示す）。ピンポン・バッファ３４９からのデータ（４１５として示す）は、チャネル検出器３１７を介して処理され、チャネル検出器３１７の出力は、ピンポン・バッファ３９８の１個のバッファ中にロードされる（４１７として示す）。
【００４０】
同時に、インタリーバ３９２が、ピンポン・バッファ３９６をＬＤＰＣ復号器３３７にアンロードし（４１９として示す）、ＬＤＰＣ復号器３３７が、結果として得られた復号済み出力を提供する（４２１として示す）。さらに、後続の一連のデータ・ビットがチャネル検出器３０９に提供されており（４２３として示す）、チャネル検出器３０９は、この新しく受け取った一連のビットをピンポン・バッファ３９６のもう１個のバッファ中に処理する（４２５として示す）。この場合も、ＬＤＰＣ復号器３３７の出力が収束せず、したがってＬＤＰＣ復号器３３７の出力が、チャネル検出器３１７への入力として供せられるピンポン・バッファ３４９の１個のバッファに書き込まれる（４２７として示す）。ピンポン・バッファ３４９からのデータ（４２７として示す）は、チャネル検出器３１７を介して処理され、その出力は、ピンポン・バッファ３９８の１個のバッファ中にロードされる（４２９として示す）。次いで、第１のデータ・セット（４０３として示す）に対応するデータが、ピンポン・バッファ３９８から取り出され、ＬＤＰＣ復号器３３７を介して再処理される（４３１、４３３として示す）。この場合、ＬＤＰＣ復号器３３７は依然として収束せず、したがってＬＤＰＣ復号器３３７の出力は、チャネル検出器３１７への入力として供せられる、ピンポン・バッファ３４９の１個のバッファに書き込まれる（４３５として示す）。次いで、このデータはピンポン・バッファ３４９から取り出され、チャネル検出器３１７を介して再処理される（４３７として示す）。
【００４１】
同時に、後続の一連のデータがチャネル検出器３０９を介して処理され、ＬＤＰＣ復号器３３７に与えられる（４３９、４４１、４４３、４４５として示す）。これら後続の一連のデータは、ＬＤＰＣ復号器３３７を介して処理され、その結果が収束しないので、その出力がピンポン・バッファ３４９に書き込まれる（４６７、４６９、４７５、４７７として示す）。次いで、第２のデータ・セット（４０９として示す）に対応するデータが、ピンポン・バッファ３９８から取り出され、ＬＤＰＣ復号器３３７を介して再処理される（４６１、４６３として示す）。この場合、ＬＤＰＣ復号器３３７が収束し、ＬＤＰＣ復号器３３７の出力が硬判定出力として書き込まれる（４６５として示す）。次いで、第４のデータ・セット（４３９として示す）に対応するデータが、ピンポン・バッファ３９６から取り出され、ＬＤＰＣ復号器３３７を介して処理される（４６７、４６９として示す）。その後、第１のデータ・セット（４０５として示す）に対応するデータが、ピンポン・バッファ３９８から取り出され、ＬＤＰＣ復号器３３７を介して再処理される（４７１、４７３として示す）。この場合もＬＤＰＣ復号器３３７は再度収束しないが、ピンポン・バッファ３４９は、ピンポン・メモリ３９６から入ってくるデータ・セット（４７５、４７７として示す）用に１つスペースを予約する必要があり、したがって、待ち行列（ピンポン）バッファ３４９は満杯とみなされる。こうして、復号済み符号語（４７１、４７３として示す）は完了として指定され、システムから出力として報告される必要がある。そのように、第１のデータ・セット（４０５として示す）に対応する既存の硬判定出力が、硬判定出力（４８５として示す）として書き込まれる。
【００４２】
第１のデータ・セット（４０３として示す）に対応するデータの処理は、第２のデータ・セット（４０９として示す）に対応するデータの処理の後に終了したことに留意されたい。この順不同にデータ・セットを処理できる機能により、各データ・セットを、各データ・セットの特定の要求および利用可能なメモリ機能に対応して、複数回反復処理することが可能である。これは、待ち行列機能と呼ばれており、様々な処理的利点を提供する。タイミング図４００のタイミングは例示的なものであり、与えられる特定のデータ・セットに応じて様々な異なる状況を実現することができることに留意すべきである。
【００４３】
タイミング図では、データ入力が受け取られた時間をセクタ時間（Ｔｓ）として示す。さらに、チャネル検出器３１７を介して処理するのに必要な時間をＬｖとして示す。符号語が待ち行列中で過ごす（例えば、ピンポン・バッファ３４９中に入れられ、待ち行列に入れられた他の符号語の処理から第２の検出器が利用できるようになるのを待つ）時間をＱとして示し、特定のデータ入力に対して実行する反復回数をＭとして示す。これらの変数に基づいて、後続の復号待ち時間を、およそ次式で得ることができる。
（２Ｍ＋Ｑ−（Ｍ＞１？０．５：０））＊Ｔｓ＋Ｌｖ
【００４４】
上記のタイミングにおいて、待ち行列検出／復号回路は、入ってくる符号語がいつ取り入れられるのかを制御することはできない。復号器を共用するこの方式は、新しく受け取った符号語を復号するのに最低Ｎ１のローカル反復を割り当てることを含むことができ、Ｎ１はプログラム可能な値である。この復号の時間フレームは、次の符号語時間の終わりと調整される。符号語時間の前半（Ｎ２ローカル反復）は、第２の検出器からの軟情報を処理する（すなわち前に処理した符号語の後続のグローバル反復に取り組む）ために割り当てられる。後続のグローバル反復を待つピンポン・バッファからの符号語が、後続のグローバル反復（すなわちＮ２ローカル反復）が開始する前に収束する場合、復号器は、予測された開始時間よりも早く、新しく届く符号語の復号を直ちに開始する。これは、新しく届く符号語の＞Ｎ１のローカル反復をもたらす。後続の１回または複数回のグローバル反復のために符号語が待ち行列に入っていない極端な例では、復号器は、新しく入ってくる符号語からの軟情報が処理用に利用できるようになるときに、その軟情報の処理を開始する。このようにして、復号器は、新しく検出された符号語を保持するピンポン・バッファが満たされ、検出器が今度は現在のピンポン・メモリに切り替えなければならないよりも遅れることなく、処理を終了する。
【００４５】
複数構成要素の符号化語がインタリーブされてより大きな符号語を形成する場合、インタリーブされた構成要素検出結果の復号は１つずつ行われる。このような場合、各復号語には、最大値に等しい復号時間が与えられることになる。特定の復号語が、割り当てられた復号時間よりも早く収束する場合、節約した時間を次の復号語の復号に使用することができる。このようにして、「優良」な符号語（すなわち、１回のグローバル反復後に収束する符号語）は、「不良」な符号語（すなわち、２回以上のグローバル反復を要求する符号語）よりも、復号に時間がかからない。復号語の復号用に割り当てられた時間を使い果たすか、復号語が収束すると、復号器からの外在的軟情報が待ち行列メモリ中に書き込まれる。この書込み処理は、後続の符号語の第１のローカル反復の間に果たすことができる。復号が収束する場合、収束した符号語に対応する硬判定が、硬判定バッファ・メモリ中に書き込まれる。あるいは、復号器の後の待ち行列中の符号語のうちの１個または複数個が収束しない場合、その符号語は、利用可能な結果が硬判定出力として報告される時点である最大復号遅延を超えるまで、さらなるグローバル反復のために待ち行列中に残る可能性もある。さらに、個々の符号語の復号収束を示す１個または複数個のフラグを維持することもでき、これにより、前に収束した符号語が次のグローバル反復に送り出されることはない。一部の例では、所与の符号語が、最終的に後続の符号語によって置換されるまで、待ち行列中で同じメモリ・スロットを常に占有することになる。
【００４６】
復号器の後の待ち行列が符号語全体の軟情報を有し、後続反復の検出器に関連するピンポン・メモリが、自らのピンポン・メモリ中に空のバッファを有する場合、後続反復の検出器は、先頭の待ち行列メモリ中に記憶されているその軟情報の処理を開始し、さらにその検出器の軟情報をピンポン・メモリ中の空のバッファ中に書き込む。そのピンポン・メモリが満杯であり、復号器が、初回通過の検出器に関連するピンポン・メモリからの新しい符号語の復号を開始しなければならない前に、待ち行列に入れられた符号語に対する少なくとも何回かのローカル反復のためのアイドル時間を有する場合、復号器は直ちにピンポン・メモリ中の符号語の処理を開始する。後続反復の検出器からの任意の符号語が後続の復号処理で収束しない場合で、待ち行列メモリが満杯であるか、または特定の符号語の待ち時間が定義済みの最大値を超える場合に硬判定が出力される。あるいは、収束しない符号語に関連する軟情報が、待ち行列中の元の場所に戻されてさらなるグローバル反復を待つ。
【００４７】
図５を参照すると、タイミング図５００は、可変反復検出／復号処理を実行するための、本発明の一部の実施形態による方法を示す。流れ図５００をたどると、データ入力が受け取られる（ブロック５２０）。このデータ入力は、磁気記憶媒体から受け取った一連のデータ・ビット、または伝送チャネルから受け取った一連のビットとすることができるが、これだけに限定されるものではない。本明細書で行う開示に基づいて、受け取ったデータ入力の様々なソースおよび形式を当業者なら認めるであろう。受け取ったデータのサンプルをバッファ中に記憶し、後続の処理のために保つ（ブロック５２５）。受け取ったデータに対してデータ検出処理を実行し（ブロック５５５）、検出したデータをインタリーブし（ブロック５６０）、インタリーブしたデータを復号する（ブロック５６５）。次いで、この復号処理が収束したかどうかを判定し（ブロック５４５）、このデータを再処理するための十分なバッファリングを利用できるかどうかを判定する（ブロック５５０）。
【００４８】
復号処理が収束するか（ブロック５４５）、あるいは利用できるバッファリングが不足している場合（ブロック５５０）、復号したデータをデインタリーブし（ブロック５７０）、バッファに記憶する（ブロック５７５）。バッファは、順不同で利用できるようになり得る様々な結果を含み、そのようなものとして、それらの様々な結果は、対応するデータ入力が最初に受け取られた順番を表すようにバッファ中で並べ替えられる（ブロック５８０）。次いで、バッファ中で完全なタイム・セットが利用できるかどうかを判定する（ステップ５８５）。完全なタイム・セットは、所与の時間にわたって受け取った入力に対応するすべての結果を含む。したがって、例えば、最初の結果が遅れる一方で後の結果が２個報告される場合、最初の結果が最終的にバッファ中で利用できるようになったときに、この３個の結果の完全なタイム・セットが存在する。本発明の一部の実施形態によると、これらの結果は順不同で受け手に報告されることに留意すべきである。そのような場合、結果を並べ替えるか、または完全なタイム・セットが利用できるかどうかを判定する必要はない。完全なタイム・セットを利用できる場合（ブロック５８５）、または順番に関係なくこれらの結果を受け取ったままの状態で報告する場合、１個または複数個の結果が受け手に出力される（ブロック５９０）。
【００４９】
あるいは、復号処理が収束しない場合（ブロック５４５）、かつ十分なバッファリングを利用できる場合（ブロック５５０）、検出／復号処理が繰り返される。詳細には、復号したデータをデインタリーブし（ブロック５０５）、結果として得られるデインタリーブしたデータをバッファ中に記憶する（ブロック５１０）。データ検出器が利用可能になったときに、デインタリーブしたデータを、対応するデータ入力のサンプルと調整する（ブロック５１５）。デインタリーブしたデータおよび対応するサンプル・データ入力をデータ検出器に提供し、データ検出器で、最初に記憶したサンプル・データ入力（ブロック５２５）に対して、同じデータ入力の先行処理（ブロック５５５、５６０、５６５、５４５、５５０、５０５、５１０、５１５）で形成した軟入力を使用して、後続のデータ検出を実行する（ブロック５３０）。データ検出処理の結果をインタリーブし（ブロック５３５）、インタリーブしたデータを復号する（ブロック５４０）。この時点で、データ検出／復号処理を繰り返す（ブロック５０５、５１０、５１５、５３０、５３５、５４０）かどうか、または結果を報告する（ブロック５７０、５７５、５８０、５８５、５９０）かどうか、を判定する。
【００５０】
結論として、本発明は、反復データ復号および／または検出を実行するための新規のシステム、装置、方法および構成を提供する。本発明の１つまたは複数の実施形態についての詳細な説明を上記に示してきたが、本発明の精神から逸脱することなく、様々な代替策、変更および均等物が当業者には明らかになるであろう。例えば、本発明の１つまたは複数の実施形態を、例えば、テープ記憶システム、光ディスク・ドライブ、無線システムおよびデジタル加入者線システムなど、様々なデータ記憶システムおよびデジタル通信システムに適用することができる。したがって、上記の説明は、添付の特許請求の範囲で定義する本発明の範囲を限定するものとして解釈すべきでない。
【図１】
0005384187.tif 000002
【図２ａ】
0005384187.tif 000003
【図２ｂ】
0005384187.tif 000004
【図３ａ】
0005384187.tif 000005
【図３ｂ】
0005384187.tif 000006
【図４】
0005384187.tif 000007
【図５】
0005384187.tif 000008