【文献】
Jinghu Chen, et al.,Reduced-Complexity Decoding of LDPC Codes,Communications, IEEE Transactions on,IEEE Communications Society,2005年 8月15日,(Volume:53 , Issue: 8 ) ,pp.1288-1299
【文献】
Mahdi Shaghaghi, et al.,Combined normalized and offset min-sum decoding over partial response channels,Information, Communications and Signal Processing, 2009. ICICS 2009. 7th International Conference on ,2009年12月10日,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
デコーダ回路を備え、前記デコーダ回路は、データ復号アルゴリズムの一部として前記デコーダ回路の内部で少なくとも1つのデコーダ・メッセージを処理することによってデータ復号アルゴリズムを実行するように動作可能であり、さらに、
スカラ回路を備え、前記スカラ回路は、前記デコーダ・メッセージに可変スカラ値を掛けるように動作可能であり、
前記可変スカラ値が第1のスカラ値と第2のスカラ値とを含み、前記デコーダ回路が第1の復号処理と第2の復号処理とを同じ符号語に行うように動作可能であり、前記スカラ回路が、前記デコーダ・メッセージに第1の復号処理中に前記第1のスカラ値を掛け、第2の復号処理中に前記第2のスカラ値を掛け、
前記第1のスカラ値が前記第2のスカラ値より大きく、前記第1のスカラ値が、前記符号語中のノイズレベルが低い部分に対する前記データ復号アルゴリズムの高速の収束を促進するように選択され、前記第2のスカラ値が、前記符号語中のノイズレベルが高い部分を含む強化された情報を前記データ復号アルゴリズムに提供するように選択される、データ処理回路。
前記第1の復号処理が前記データ処理回路の第1のグローバル反復の一部として行われ、前記第2の復号処理が前記データ処理回路の第2のグローバル反復の一部として行われる、請求項1に記載のデータ処理回路。
前記第1の復号処理が前記データ処理回路の第1のローカル反復の一部として行われ、前記第2の復号処理が前記データ処理回路の第2のローカル反復の一部として行われる、請求項1に記載のデータ処理回路。
前記低密度パリティ検査デコーダが少なくとも1つの可変ノードと少なくとも1つの検査ノードとを含み、前記デコーダ・メッセージが前記可変ノードから前記検査ノードへ渡される、請求項4に記載のデータ処理回路。
前記低密度パリティ検査デコーダが少なくとも1つの可変ノードと少なくとも1つの検査ノードとを含み、前記デコーダ・メッセージが前記検査ノードから前記可変ノードへ渡される、請求項4に記載のデータ処理回路。
データ復号アルゴリズムの一部として少なくとも1つのデコーダ・メッセージを処理することによってデータ復号アルゴリズムを実行するように動作可能なデータ・デコーダと、
前記デコーダ・メッセージに可変スカラ値を掛けるよう動作するスカラ回路とを備え、
前記可変スカラ値が第1のスカラ値と第2のスカラ値とを含み、前記データ・デコーダが、第1の復号処理と第2の復号処理とを同じ符号語に行うように動作可能であり、前記スカラ回路が、前記デコーダ・メッセージに第1の復号処理中に前記第1のスカラ値を掛け、第2の復号処理中に前記第2のスカラ値を掛け、
前記第1のスカラ値が前記第2のスカラ値より大きく、前記第1のスカラ値が、前記符号語中のノイズレベルが低い部分に対する前記データ復号アルゴリズムの高速の収束を促進するように選択され、前記第2のスカラ値が、前記符号語中のノイズレベルが高い部分を含む強化された情報を前記データ復号アルゴリズムに提供するように選択される、データ処理システム。
【発明を実施するための形態】
【0012】
本発明は、情報を検出するおよび/または復号するためのシステムおよび方法に関し、より詳細には可変にスケール調整されたデータ処理を行うためのシステムおよび方法に関する。
【0013】
本発明の様々な実施形態は、リード・チャネル、無線伝送、および他の用途に好適な復号のための解決法を提供する。このような復号/検出回路は、データをデータ・デコーダに提供する軟判定デコーダを含む。軟判定デコーダ内のメッセージは、ローカル・スケーリング値を使用してスケール調整される。このような手法により、比較的高いローカル・スカラ値を最初に使用することにより比較的少量のノイズで符号語の収束をスピードアップすることができ、別の方法では比較的低いローカル・スカラ値を後で使用することにより収束していなかった可能性がある符号語に対するより良好な復号性能を実現する。
【0014】
本発明のいくつかの実施形態は、デコーダ回路およびスカラ回路を含むデータ処理回路を提供する。本明細書で使用される「デコーダ回路」という語句は、その最も広い意味で使用されて、事前に符号化されたデータセットを復号するように動作可能であるいかなる回路をも意味する。したがって、一例としてデコーダ回路は、LDPCデコーダ回路であることが可能である。本明細書に提供される開示に基づいて、当業者は、本発明の異なる実施形態との関連で使用されることが可能である様々なデコーダ回路を理解するであろう。本明細書で使用される「スカラ回路」という語句は、その最も広い意味で使用されて、受け取られた入力をスケール調整するように動作可能であるいかなる回路をも意味する。本明細書に提供される開示に基づいて、当業者は、本発明の異なる実施形態との関連で使用されることが可能である様々なスカラ回路を理解するであろう。デコーダ回路は、少なくとも1つのデコーダ・メッセージを処理することによってデータ復号アルゴリズムを実行するように動作可能であり、スカラ回路は、デコーダ・メッセージに可変スカラ値を掛けるように動作可能である。本明細書で使用される「デコーダ・メッセージ」という語句は、その最も広い意味で使用されて、デコーダ回路の内部で渡されるいかなる値をも意味する。したがって、一例としてデコーダ・メッセージは、LDPCデコーダ内で可変ノードから検査ノードへ渡されるデータセットであることが可能であり、またはLDPCデコーダ内で検査ノードから可変ノードへ渡されるデータセットであることが可能である。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態との関連で使用されることが可能である様々なデコーダ・メッセージを理解するであろう。
【0015】
前述の諸実施形態のいくつかの場合において、スカラ回路は、第1の復号処理中に可変デコーダ値の第1のインスタンス(すなわち第1の値)を、および第2の復号処理中に可変スカラ値の第2のインスタンス(すなわち第2の値)を、デコーダ・メッセージに掛ける。場合によっては、第1の復号処理は、データ処理回路の第1のグローバル反復の一部として行われ、第2の復号処理は、データ処理回路の第2のグローバル反復の一部として行われる。本明細書で使用される「グローバル反復」という語句は、その最も広い意味で使用されて、データ検出アルゴリズムとデータ復号アルゴリズムが共に適用される処理を意味する。したがって、一例としてグローバル反復は、あるデータセットにデータ検出アルゴリズムを適用し、続いてこのデータ検出の結果にデータ復号アルゴリズムを1回または複数回適用することを含むことができる。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態との関連で使用されることが可能である様々なグローバル反復を理解するであろう。他の場合では、第1の復号処理は、データ処理回路の第1のローカル反復の一部として行われ、第2の復号処理は、データ処理回路の第2のローカル反復の一部として行われる。本明細書で使用される「ローカル反復」という語句は、その最も広い意味で使用されて、データ検出アルゴリズムまたはデータ復号アルゴリズムのうちの1つが適用される処理を意味する。したがって、一例としてローカル反復は、データ検出器回路がデータ復号アルゴリズムを適用することを含むことができる。グローバル反復中にデータ復号アルゴリズムをただ1回適用する場合、1回のローカル反復が行われたと言われる。一方、データ復号アルゴリズムを2回以上適用する場合、2回以上のローカル反復が適用されたと言われる。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態との関連で使用されることが可能である様々なローカル反復を理解するであろう。
【0016】
図2aを見ると、本発明の1つまたは複数の実施形態に従った内部動的スケーリングを含むデコーダ回路295を含むデータ処理回路200が示されている。さらに、データ処理回路200は、チャネル検出器回路210を含んでいる。データ処理回路200は、チャネル検出器210でデータ入力205を受け取る。データ入力205は、例えば記憶媒体から、または伝送チャネルから得られる場合がある。特定の場合には、データ入力205は、符号語と呼ばれることがあるデータ群またはデータセットとして提供される。ハードディスクドライブの場合には、受け取られるデータセットは、ハードディスクドライブの記憶媒体からのデータのセクタである場合がある。本明細書で提供する開示に基づいて、当業者は、データ入力の他のソース、および本発明の異なる実施形態に従って処理されることが可能である他のデータセットを理解するであろう。
【0017】
チャネル検出器210は、当技術分野で知られているいかなるチャネル検出器であってもよく、軟出力ビタビ(Viterbi)アルゴリズム(SOVA)検出器または最大事後(MAP)検出器を含むが、これらに限定されない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従って使用されることが可能である様々なチャネル検出器を理解するであろう。チャネル検出器210の出力は、デコーダ回路295に提供される。
【0018】
デコーダ回路295は、LDPCデコーダ215および可変スカラ回路220を含む。LDPCデコーダ215は最初に、チャネル検出器210から受け取った出力のLDPC復号を行う。この最初の復号通過(すなわち最初のローカル反復)において、LDPCデコーダ215は、可変スカラ回路220からの出力290として提供された最初のスカラ値をチャネル検出器210の出力に掛ける。この復号処理が完了すると、LDPCデコーダ215をもう一度通過すること(すなわち別のローカル反復)が要求されているかどうかが判断される。この判断は、LDPCデコーダ215が収束したかどうか、および収束しなかったことはLDPCデコーダ215をさらに通過することによって利益を得られるかどうかに基づいて行われることが可能である。当技術分野で知られている、さらなるローカル・デコーダ・ループが必要であるかどうかを判断するためのいかなる手法も使用することができる。さらなるローカル反復が行われるべきである場合、LDPCデコーダ215が信号299をアサートし、可変スカラ回路220は出力290として提供されるスカラ値を動的に変更する。さらに、LDPCデコーダ215の出力297は、再処理に備えてフィードバックされる。LDPCデコーダ215をその後に通過するとき、出力297に復号処理が行われ、この出力297に、出力290として受け取られる変更されたスカラ値が掛けられる。この処理は、LDPCデコーダ215を通るローカル反復毎に繰り返される。
【0019】
本発明の1つの特定の実施形態では、出力290として提供される最初のスカラ値は0.75であり、LDPCデコーダ215を通る次のローカル反復の度に、可変スカラ回路220は、1/32というハードウェアに適した値だけ出力290として提供されるスカラ値を減少させる。したがって、第2のローカル反復ではスカラ値は0.7188であり、第3のローカル反復ではスカラ値は0.6875であり、第4のローカル反復ではスカラ値は0.6563であり、第5のローカル反復ではスカラ値は0.625であり、第6のローカル反復ではスカラ値は0.5938であり、第7のローカル反復ではスカラ値は0.5625であり、第8のローカル反復ではスカラ値は0.5313であり、第9のローカル反復ではスカラ値は0.5である。ある時点で、可変スカラ回路220は出力290として提供されるスカラ値の変更をやめ、スカラ値を一定に維持する。したがって、前述の例を使用すると、第10以降のローカル反復において可変スカラ回路220はスカラ値を0.5に維持する。ローカル反復のすべてが完了すると、LDPCデコーダ215はデータ出力225を提供する。
【0020】
図2bを見ると、本発明のいくつかの実施形態に従った内部動的スケーリングおよびグローバル動的スケーリングを有するデコーダ回路296を含むデータ処理回路201が示されている。さらに、データ処理回路201は、データ入力206が受け取られるチャネル検出回路211を含む。データ入力206は、記憶媒体から、または伝送チャネルから得られる場合がある。特定の場合には、データ入力206は、符号語と呼ばれることがあるデータ群またはデータセットとして提供される。ハードディスクドライブの場合には、受け取られるデータセットは、ハードディスクドライブの記憶媒体からのデータのセクタである場合がある。本明細書で提供される開示に基づいて、当業者は、他のデータ入力のソース、および本発明の異なる実施形態に従って処理されることが可能である他のデータセットを理解するであろう。
【0021】
チャネル検出器211は、当技術分野で知られるいかなるチャネル検出器であってもよく、軟出力ビタビアルゴリズム検出器(SOVA)または最大事後(MAP)検出器を含むが、これらに限定されない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従って使用されることが可能である様々なチャネル検出器を理解するであろう。チャネル検出器211の出力は、デコーダ回路296に提供される。
【0022】
デコーダ回路296は、LDPCデコーダ216と、可変スカラ回路221とを含む。LDPCデコーダ216は最初に、チャネル検出器211から受け取られた出力のLDPC復号を行う。この最初の復号通過(すなわち最初のローカル反復)において、LDPCデコーダ216は、可変スカラ回路221からの出力294として提供された最初のスカラ値をチャネル検出器211の出力に掛ける。復号処理が完了すると、LDPCデコーダ216をもう一度通過することが要求されているかどうかが判断される。この判断は、LDPCデコーダ216が収束したかどうか、収束しなかったことはLDPCデコーダ216をさらに通ることよって利益を得られるかどうかに基づいて行われることが可能である。当技術分野で知られているさらなるローカル・デコーダ・ループの必要性を判断するためのいかなる手法も利用可能である。さらなるローカル反復が行われるべきである場合、LDPCデコーダ216は信号296をアサートし、可変スカラ回路221は出力294として提供されるスカラ値を動的に変更する。さらに、LDPCデコーダ216の出力298は、再処理に備えてフィードバックされる。LDPCデコーダ216をその後に通過するとき、復号処理は出力298に適用され、出力294として受け取られる変更されたスカラ値を掛けられる。この処理は、LDPCデコーダ216を通るローカル反復毎に繰り返される。
【0023】
本発明の1つの特定の実施形態では、出力294として提供される最初のスカラ値は0.75であり、LDPCデコーダ216を通る次のローカル反復の度に、可変スカラ回路221は、1/32というハードウェアに適した値だけ出力294として提供される値を減少させる。したがって、第2のローカル反復ではスカラ値は0.7188であり、第3のローカル反復ではスカラ値は0.6875であり、第4のローカル反復ではスカラ値は0.6563であり、第5のローカル反復ではスカラ値は0.625であり、第6のローカル反復ではスカラ値は0.5938であり、第7のローカル反復ではスカラ値は0.5625であり、第8のローカル反復ではスカラ値は0.5313であり、第9のローカル反復ではスカラ値は0.5である。ある時点で、可変スカラ回路221は出力294として提供されるスカラ値の変更をやめ、スカラ値を一定に維持する。したがって、前述の例を使用すると、第10以降のローカル反復において可変スカラ回路221はスカラ値を0.5に維持する。ローカル反復のすべてが完了すると、LDPCデコーダ216はデータ出力226を提供する。
【0024】
さらに、複数のグローバル反復(すなわちチャネル検出器211とデコーダ回路296の両方を通る処理)が可能である。さらなるグローバル反復が求められる場合、データ出力226はチャネル検出器211にフィードバックされ、チャネル検出器211とデコーダ回路296の両方を通って再処理される。別のグローバル動作を行うべきかどうかに関する決定は、当技術分野で知られているいかなる基準を使用して行われることも可能である。
【0025】
図3を見ると、LDPCデコーダ回路の図形表示300が、本発明のいくつかの実施形態に従った動的スケーリングを示している。図形表示300は、LDPCデコーダの例示的動作を表している。図形表示300は、アップストリーム検出器(図示せず)の出力から受け取られる入力310、および回路の出力としてまたはアップストリームもしくはダウンストリーム検出器(図示せず)へ提供される出力320を示している。入力データは、V1、V2、V3、V4、V5、V6、V7として示すいくつかの可変ノードへ提供される。可変ノードからのメッセージは、矢印で示すように、C1、C2、C3として示す検査ノードへ渡される。これらのメッセージは、S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12として示す乗算器を使用してローカル・スカラ値を掛けられる。乗算器S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12のそれぞれによって乗算されたローカル・スカラ値は、ローカル反復の数とグローバル反復の数の一方または両方に応じて動的に変更されることが可能である。検査ノードC1、C2、C3によって行われた検査の結果は、矢印で示すように、乗算されずに可変ノードV1、V2、V3、V4、V5、V6、V7に戻される。これらの結果は、出力320として提供されることが可能であり、あるいは別のローカル・デコーダ反復が要求される場合、変数V1、V2、V3、V4、V5、V6、V7における値は矢印で示すように再び検査ノードC1、C2、C3に転送され、可変ローカル・スカラ値による乗算が行われる。この処理において、変数V1、V2、V3、V4、V5、V6、V7と検査ノードC1、C2、C3との間で渡されるメッセージは、次の公式に従ってローカル・スカラ値を掛けられる:
(VからCへのメッセージ)=(ローカル・スカラ値)(VからCへのメッセージ)
このようなスケーリングは、いかなる更新スケジュールとも無関係にLDPCデコーダに適用されることが可能であり、階層化されたデコーダおよびフラッディング・スケジュールを使用するデコーダとの関連で使用されることが可能である。さらに、このような内部スケーリングは、可変ノードから検査ノードへ転送されるメッセージに適用されるように記載しているが、本発明の他の実施形態では、スケーリングは検査ノードから可変ノードへ転送されるメッセージに適用されることが可能であることに注意されたい。
【0026】
図4aを見ると、本発明の様々な実施形態に従って、デコーダ・メッセージの動的スケーリングを含む待ち行列検出および復号回路400が示されている。待ち行列検出および復号回路400は、チャネル検出器409にフィードされるデータ入力405を含む。いくつかの実施形態では、データ入力405は記憶媒体から、または伝送チャネルから得られる場合がある。特定の場合には、データ入力405は、符号語と呼ばれることがあるデータ群またはデータセットとして提供される。ハードディスクドライブの場合には、受け取られるデータセットはハードディスクドライブの記憶媒体からのデータのセクタである場合がある。本明細書で提供される開示に基づいて、当業者は、他のデータ入力のソース、および本発明の異なる実施形態に従って処理されることが可能である他のデータセットを理解するであろう。
【0027】
チャネル検出器409は、当技術分野で知られるいかなるタイプのチャネル検出器であってもよく、軟出力ビタビアルゴリズム検出器(SOVA)または最大事後(MAP)検出器を含むが、これらに限定されない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従って使用されることが可能である様々なチャネル検出器を理解するであろう。さらにデータ入力405は、データ入力405から受け取られるいくつかのデータセットを保持するように設計されたメモリバッファ413に提供される。メモリバッファ413のサイズは、データ入力405を介して提供されるデータセットが少なくとも同じデータセットの第1の反復処理が完了するまで引き続き利用できる状態にするように、十分なバッファリングを提供するように選択されることが可能であり、処理されたデータは、以下でより十分に説明するように、待ち行列バッファ449の中で利用可能である。メモリバッファ413は、データセットをチャネル検出器417に提供する。チャネル検出器409と同様に、チャネル検出器417は当技術分野で知られているいかなるタイプのチャネル検出器であってもよく、SOVA検出器またはMAP検出器を含むが、これらに限定されない。やはり本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従って使用されることが可能である様々なチャネル検出器を理解するであろう。
【0028】
チャネル検出器409の出力481はインターリーバ回路494に提供され、チャネル検出器417の出力483は別のインターリーバ回路492に提供される。インターリーバ回路494は、ピンポンバッファ496を使用してチャネル検出器409の出力をインターリーブし、インターリーバ回路492は、ピンポンバッファ498を使用してチャネル検出器417の出力をインターリーブする。ピンポンバッファ496のバッファのうちの一方は、チャネル検出器409からの出力の前のインターリーブ処理の結果を保持し、マルチプレクサ421を介してLDPCデコーダ437にアンロードされ、ピンポンバッファ496の他方のバッファは、現在インターリーブされている、チャネル検出器409からのデータセットを保持する。同様に、ピンポンバッファ498のバッファのうちの一方は、チャネル検出器417からの出力の前のインターリーブ処理の結果を保持し、マルチプレクサ421を介してLDPCデコーダ437にアンロードされ、ピンポンバッファ498の他方のバッファは、現在インターリーブされている、チャネル検出器417からのデータセットを保持する。本発明の異なる実施形態では、LDPCデコーダ437の代わりに他の軟判定データ・デコーダを使用することができるということに注意されたい。
【0029】
LDPCデコーダ437は、1つまたは複数のデータセットを同時に復号することができる。一例として、LDPCデコーダ437は、ピンポンバッファ496からのインターリーブされたデータセットを復号する、ピンポンバッファ498からのインターリーブされたデータセットを復号する、またはピンポンバッファ496およびピンポンバッファ498からのインターリーブされたデータセットを同時に復号するように設計されることが可能である。LDPCデコーダ437を1回または複数回通過することが要求される場合がある。やはりこのような通過は、本明細書ではローカル反復と呼ばれ、LDPCデコーダによってもう一度LDPCデコーダ437の出力を再処理することを含む。このような場合、LDPCデコーダ437の内部メッセージは、ローカル動的スカラ回路439によって生成されるローカル動的スカラ値を掛けられることが可能である。この乗算処理は、
図3に関して上述した乗算処理と同様に実行されることが可能である。
【0030】
本発明のいくつかの実施形態では、ローカル動的スカラ回路439は、第1のグローバル反復(すなわちチャネル検出器409およびLDPCデコーダ437を通る処理)において使用される最初のローカル・スカラ値を提供し、この同じローカル・スカラ値が、特定のグローバル反復に続く次の各ローカル反復に使用される。さらなるグローバル反復が行われる(すなわちチャネル検出器417およびLDPCデコーダ437を通る処理)度に、スカラ値は定義された量だけ削減され、削減されたスカラ値は、次に続くローカル反復に使用される。本発明の1つの特定の実施形態では、最初のスカラ値は0.75であり、次のグローバル反復の度にローカル動的スカラ回路439は1/32というハードウェアに適した値だけスカラ値を減少させる。したがって、第2のグローバル反復ではスカラ値は0.7188であり、第3のグローバル反復ではスカラ値は0.6875であり、第4のグローバル反復ではスカラ値は0.6563であり、第5のグローバル反復ではスカラ値は0.625であり、第6のグローバル反復ではスカラ値は0.5938であり、第7のグローバル反復ではスカラ値は0.5625であり、第8のグローバル反復ではスカラ値は0.5313であり、第9のグローバル反復ではスカラ値は0.5である。ある時点で、ローカル動的スカラ回路439はローカル・スカラ値の変更をやめ、ローカル・スカラ値を一定に維持する。したがって、前述の例を使用すると、第10以降のグローバル反復においてローカル動的スカラ回路439はローカル・スカラ値を0.5に維持する。復号処理を行う前に、LDPCデコーダ437は、ローカル動的スカラ回路439からのローカル・スカラ値をマルチプレクサ421からのデータ出力487に掛ける。本発明の他の諸実施形態では、各グローバル反復の後に行われる変更に加えて、またはこれに代わって、各ローカル反復の後にローカル・スカラ値の値が変更されることが可能であることに注意されたい。
【0031】
一般的な法則として、より高いローカル・スカラ値を使用すると、デコーダによる収束の割合が増大し、低ノイズがもたらされる。対照的に、より低いローカル・スカラ値を使用すると、収束の可能性が増大するが収束の割合が減少し、データストリーム中のビットの1つまたは複数により高いノイズが示される。より小さいスカラを掛けられたビットは、デコーダ回路を飽和状態にすることが少なく、したがって復号プロセスにより多くのデータが使用されるように維持されるので、より高い収束の確率がもたらされる。可変ローカル・スカラ値を使用することにより、本発明のいくつかの実施形態は、より低いノイズレベルを示す符号語中の様々な領域における比較的高速の収束を提供する。その後、より高いノイズレベルを示す符号語中の領域は、収束の割合を減少させるが、収束を達成するために利用されることが可能であるデータの範囲を増大させる、次第により低いスカラ値で処理される。
【0032】
所望のローカル反復がLDPCデコーダ437によって完了されると、その結果もたらされる復号されたデータは、硬判定出力441として提供されるか、またはデインターリーバ回路445への出力485として提供され、デインターリーバ回路は、待ち行列バッファ449を使用して復号されたデータをデインターリーブし、チャネル検出器417が将来の処理に利用できるまで、デインターリーブされたデータを格納する。
【0033】
待ち行列バッファ449中のバッファの1つが、前のデインターリーブ処理の結果を保持し、チャネル検出器417にアンロードされ、待ち行列バッファ449の別のバッファは、現在デインターリーブされている復号されたデータセットを保持し、待ち行列バッファ449中の1つまたは複数の他のバッファは、他の非収束データを維持し、チャネル検出器417による処理に備えて待機する。待ち行列バッファ449からの非収束データは、デインターリーバ445によってデインターリーブされ、メモリバッファ413中の対応するデータセットにアクセスできるチャネル検出器417に渡される。チャネル検出器417によって行われるデータ検出は、チャネル検出器409によって行われるデータ検出と同様である。あるいは、データセットがLDPCデコーダ437中で収束する場合、これはデインターリーバ回路457へ硬判定出力441として提供され、デインターリーバ回路457は、受信した硬判定出力441をデインターリーブし、デインターリーブした結果をいくつかのメモリバッファ461のうちの1つに格納する。最終的には、デインターリーバ回路457が、メモリバッファ461に格納されたデインターリーブされたデータを出力471として提供する。
【0034】
待ち行列検出/復号回路400により、導入されるデータに応じて可変数の検出および復号の反復を行うことが可能になる。さらに、場合によっては、待ち行列検出/復号回路400を使用することによってかなりの電力の節減を実現することができる。さらにまた場合によっては、複数の反復が必ずしも必要とされないので実質的な第1の反復のデータの収束が存在する場合、スループットを増大させることが可能である、より速いLDPCデコーダを実装することができる。またさらに、LDPCデコーダ437の結果が順不同に報告されることを可能にすることによって、アップストリームの処理は、ダウンストリームの処理の完了を待つ必要がない。順不同の結果の並べ替えは、待ち行列検出/復号回路400によって、または出力471のダウンストリームの受信部によって行われることが可能である。また、デコーダ437内で動的スカラを使用することにより、比較的高いローカル・スカラ値を迅速に使用して符号語の実質的にノイズのない領域を解決し、比較的小さいローカル・スカラ値を使用して符号語のよりノイズの多い領域を解決することができる。本明細書で提供される開示に基づいて、当業者は、本発明の1つまたは複数の実施形態を実施することによって実現されることが可能である様々な他の利点を理解するであろう。
【0035】
図4bを見ると、本発明の様々な実施形態に従って、デコーダ・メッセージの動的スケーリングおよびグローバル・ループにおける動的スケーリングを含む待ち行列検出および復号回路499が示されている。待ち行列検出および復号回路499は、チャネル検出器409にフィードされるデータ入力405を含んでいる。さらにデータ入力405は、データ入力405から受け取られるいくつかのデータセットを保持するように設計されたメモリバッファ413に提供される。メモリバッファ413のサイズは、十分なバッファリングを行うように選択されて、以下にさらに十分に説明するように、データ入力405によって提供されるデータセットが少なくともこの同じデータセットの第1の反復処理が完了するまで利用可能に維持されて、処理されたデータが待ち行列バッファ449で利用できるようにすることが可能である。メモリバッファ413は、チャネル検出器417にデータセットを提供することができる。
【0036】
チャネル検出器409の出力481はインターリーバ回路494に提供され、チャネル検出器417の出力483はインターリーバ回路492に提供される。インターリーバ回路494は、ピンポンバッファ496を使用してチャネル検出器409の出力をインターリーブし、インターリーバ回路492は、ピンポンバッファ498を使用してチャネル検出器417の出力をインターリーブする。ピンポンバッファ496のバッファのうちの一方は、チャネル検出器409からの出力の前のインターリーブ処理の結果を保持し、マルチプレクサ421を介してLDPCデコーダ437にアンロードされ、ピンポンバッファ496の他方のバッファは、現在インターリーブされている、チャネル検出器409からのデータセットを保持する。同様に、ピンポンバッファ498のバッファのうちの一方は、チャネル検出器417からの出力の前のインターリーブ処理の結果を保持し、マルチプレクサ421を介してLDPCデコーダ437にアンロードされ、ピンポンバッファ498の他方のバッファは、現在インターリーブされている、チャネル検出器417からのデータセットを保持する。
【0037】
LDPCデコーダ437を通る1つまたは複数の通過(すなわちローカル反復)が求められる場合がある。このような場合、LDPCデコーダ437の内部メッセージは、ローカル動的スカラ回路439によって生成されるローカル動的スカラ値を掛けられることが可能である。この乗算処理は、
図3に関して上述した乗算処理と同様に実行されることが可能である。
【0038】
本発明のいくつかの実施形態では、ローカル動的スカラ回路439は、第1のグローバル反復(すなわちチャネル検出器409およびLDPCデコーダ437を通る処理)において使用される最初のローカル・スカラ値を提供し、この同じローカル・スカラ値は、特定のグローバル反復に続く次の各ローカル反復に使用される。さらなるグローバル反復が行われる(すなわちチャネル検出器417およびLDPCデコーダ437を通って処理する)度に、スカラ値は定義された量だけ削減され、削減されたスカラ値は、次に続くローカル反復に使用される。
【0039】
所望のローカル反復がLDPCデコーダ437によって完了されると、結果として生じる復号されたデータは、硬判定出力441として提供されるか、またはデインターリーバ回路445への出力485として提供され、デインターリーバ回路445は待ち行列バッファ449を使用して、復号されたデータをデインターリーブし、チャネル検出器417がさらなる処理に利用できるまでデインターリーブされたデータを格納する。
【0040】
待ち行列バッファ449のバッファの一方は、前のデインターリーブ処理の結果を保持し、チャネル検出器417にアンロードされ、待ち行列バッファ449のもう一方は、現在デインターリーブされている復号されたデータセットを保持し、待ち行列バッファ449の1つまたは複数の他のバッファは、他の非収束データをチャネル検出器417による処理に備えて待機状態に維持する。待ち行列バッファ449からの非収束データは、デインターリーバ445によってデインターリーブされ、メモリバッファ413中の対応するデータセットにアクセスすることができるチャネル検出器417に渡される。詳細には、デインターリーバ445からのデインターリーブされたデータは、乗算器回路427を使用して動的スケーリング係数407(β
x)を掛けられ、乗算器429の積の出力は、チャネル検出器417に提供される。チャネル検出器417によって行われるデータ検出は、チャネル検出器409によって行われるデータ検出と同様である。あるいは、データセットがLDPCデコーダ437中で収束する場合、これは硬判定出力441としてデインターリーバ回路457に提供され、デインターリーバ回路457は、受信した硬判定出力441をデインターリーブし、デインターリーブした結果をいくつかのメモリバッファ461のうちの1つに格納する。最終的には、デインターリーバ回路457は、メモリバッファ461に格納したデインターリーブしたデータを出力471として提供する。
【0041】
動的スケーリング係数403および動的スケーリング係数407は、それぞれの符号語に対応する復号された出力485に基づき符号語毎に計算される。待ち行列バッファ449の各バッファは、それぞれの符号語についての復号された出力485を格納するための領域441、およびそれぞれの符号語に対応する動的スケーリング係数403および動的スケーリング係数407を格納するための別の領域443を含む。復号された出力が、デインターリーブするために、およびチャネル検出器417によって処理するために、それぞれの待ち行列バッファから引き出されるとき、スケーリング係数403およびスケーリング係数407の値は、対応する待ち行列バッファの領域441から引き出され、乗算器493による乗算のために使用される。
【0042】
動的スカラ計算回路497は、それぞれの符号語に対応する復号された出力485に基づいてそれぞれの符号語毎にスケーリング係数403およびスケーリング係数407の値を計算する。計算されたスケーリング係数は、このスケーリング係数を計算する基となった復号された出力485に対応する待ち行列バッファ449のバッファに格納される。
【0043】
復号された出力485を使用して、動的スカラ計算回路497は、まず、スケーリング係数403およびスケーリング係数407の値が更新されるべきかどうかを判断する。詳細には、動的スカラ演算回路497は、LDPCデコーダ回路437によって一般に処理される、依然として違反するデータセットのパリティ検査の数の表示を受け取る。この数は、本明細書では違反カウントと呼ぶ。さらに、動的スカラ演算回路497は、飽和状態である(すなわち最大達成値に等しい値を有する)復号された出力485中のビット周期の数をカウントする。この値は、飽和カウントと呼ぶ。動的スカラ演算回路497は、違反カウントをしきい値423と比較し、飽和カウントを別のしきい値425と比較する。いくつかの実施形態では、しきい値423およびしきい値425は共にプログラム可能である。スケーリング係数403およびスケーリング係数407の値は、違反カウントがしきい値423より小さい場合か、飽和カウントがしきい値425より大きい場合に更新される。次の擬似コードは、更新条件を記述している:
if(違反カウント<しきい値423||飽和カウント>しきい値425){
スケーリング係数を更新する
}
else{
スケーリング係数を維持する
}
例示的な場合では、かなりの数の飽和した軟判定があるときは、単にスケーリング係数403およびスケーリング係数407の動的変更が行われる。
【0044】
更新が要求されるときは、スケーリング係数403およびスケーリング係数407の更新は、実施に応じて様々な方法で行われることが可能である。例えば更新は、最初にスケーリング係数403およびスケーリング係数407をデフォルト値に等しく設定することによって行われることが可能である。次の擬似コードは、初期条件を記述している:
スケーリング係数407=β
default;および
スケーリング係数403=α
default
デフォルト値、β
defaultおよびα
defaultは、設計時にハードコードされる場合があり、またはプログラム可能であって、待ち行列検出および復号回路499の特定の配置に応じて更新することが可能である場合がある。デフォルト値、β
defaultおよびα
defaultは、最小の飽和のみを有する良好な性能を提供するように選択されることが可能である。1つの実施形態では、スケーリング係数403およびスケーリング係数407の値の更新を決定すると、スケーリング係数403およびスケーリング係数407は、次の擬似コードに従って最小値のスケーリング係数に変更される。
if(違反カウント<しきい値423||飽和カウント>しきい値425){
スケーリング係数407=β
maximum;および
スケーリング係数403=α
minimum
}
else{
スケーリング係数407=β
default;および
スケーリング係数403=α
default
}
β
maximumおよびα
minimumの値は、設計時にハードコードされる場合があり、または特定の配置に応じて更新できるようにプログラム可能である場合がある。デフォルト値、β
maximum、α
minimumは、良好な性能を提供するように選択されることが可能であるが、デフォルトのスケーリング係数によって飽和が許容されるのを避けるように値を設定する。
【0045】
待ち行列検出/復号回路499により、導入されるデータに応じて可変数の検出および復号反復を行うことが可能になる。さらに場合によっては、待ち行列検出/復号回路499を使用することによってかなりの電力の節減を実現することができる。さらにまた場合によっては、複数の反復が必ずしも必要とされないので実質的な第1の反復のデータの収束が存在する場合、スループットを増大させることが可能であり、より速いLDPCデコーダを実装することができる。さらにまた、LDPCデコーダ437の結果が順不同に報告されることを可能にすることによって、アップストリームの処理はダウンストリームの処理の完了を待つ必要がない。順不同の結果の並べ替えは、待ち行列検出/復号回路499によって、または出力471のダウンストリームの受信部によって行われることが可能である。また、デコーダ437内で動的スカラを使用することにより、比較的高いローカル・スカラ値を高速に使用して符号語の実質的にノイズのない領域を解決すること、および比較的小さいローカル・スカラ値を使用して符号語のよりノイズのある領域を解決することができる。本明細書で提供される開示に基づいて、当業者は、本発明の1つまたは複数の実施形態を実施することによって実現されることが可能である様々な他の利点を理解するであろう。
【0046】
図5aを見ると、フロー
図500は、本発明のいくつかの実施形態に従った、デコーダ・メッセージの動的スケーリングを使用するデータ処理のための方法を示している。フロー
図500に従って、データ入力が受け取られる(ブロック520)。このデータ入力は、磁気記録媒体から受け取られる一連のデータビット、または伝送チャネルから受け取られる一連のビットであることが可能であるが、これらに限定されない。本明細書で提供する開示に基づいて、当業者は受け取られるデータ入力の様々なソースおよびフォーマットを理解するであろう。受け取られるデータのサンプルが、バッファに格納され、後の処理に備えて保管される(ブロック525)。受け取られたデータにデータ検出処理が行われる(ブロック555)。結果として得られる検出されたデータがインターリーブされる(ブロック560)。
【0047】
インターリーブされたデータが復号される(ブロック565)。次に、別のローカル反復(すなわちデコーダをもう一度通過すること)が要求されているかどうかを判断する(ブロック592)。この判断は、デコーダが収束したかどうか、および収束しなかったことがデコーダをさらに通過することによって利益を得られるかどうかに基づいて行われる。当技術分野で知られている、さらなるローカル・デコーダのループの必要性を判断するためのいかなる手法を使用することもできる。さらなるローカル反復(すなわち復号処理をもう一度通過すること)が要求されている場合(ブロック592)、ローカル・スカラが計算される(ブロック594)。場合によっては、このローカル・スカラの計算は、いくつかの所定のスカラ値のうちの1つから選択することを含む。本発明のいくつかの実施形態では、初期ローカル・スカラ値は、第1のグローバル反復(すなわちデータ検出とデータ復号の両方の実行)で使用され、この同じローカル・スカラ値は、グローバル反復に続く次の各ローカル反復に使用される。さらなるグローバル反復が行われる度に、スカラ値は定義された量だけ削減され、削減されたスカラ値は、次に続くローカル反復に使用される。本発明の1つの特定の実施形態では、最初のスカラ値は0.75であり、次のグローバル反復の度にスカラ値は1/32というハードウェアに適した値だけ削減される。したがって、第2のグローバル反復ではスカラ値は0.7188であり、第3のグローバル反復ではスカラ値は0.6875であり、第4のグローバル反復ではスカラ値は0.6563であり、第5のグローバル反復ではスカラ値は0.625であり、第6のグローバル反復ではスカラ値は0.5938であり、第7のグローバル反復ではスカラ値は0.5625であり、第8のグローバル反復ではスカラ値は0.5313であり、第9のグローバル反復ではスカラ値は0.5である。ある時点で、スカラ値は削減されず、一定となる。したがって、前述の例を使用すると、第10以降のグローバル反復においてスカラ値は0.5に維持される。本発明の他の実施形態では、スカラ値は、各グローバル反復の後に行われる変更に加えて、またはこれに代わって、各ローカル反復の後に変更されることが可能であることに注意されたい。デコーダ回路の内部値は、ローカル・スカラ値を掛けられ(ブロック596)、デコーダの処理は繰り返される(ブロック565)。その後、別のローカル反復が要求されているかどうかが判断される(ブロック592)。
【0048】
一般的な法則として、より高いローカル・スカラ値を使用すると、デコーダによる収束の割合が増大し、低ノイズがもたらされる。対照的に、より低いローカル・スカラ値を使用すると、収束の可能性が増大するが収束の割合が減少し、データストリーム中のビットの1つまたは複数でより高いノイズが示される。より小さいスカラを掛けられるビットはデコーダ回路を飽和させる可能性が低く、したがってより多くのデータが復号処理に使用されるように維持されるので、収束のより高い確率が発生する。可変ローカル・スカラ値を使用することによって、本発明のいくつかの実施形態は、より低いノイズのレベルを示す、符号語中の様々な領域では比較的速い収束を提供する。その後、より高いノイズレベルを示す符号語中の領域は、次第により低いスカラで処理され、これにより収束の割合を減少させるが、収束を実現するために使用されることが可能であるデータの領域を増大させる。
【0049】
さらなるローカル反復が要求されていないと判断される場合(ブロック592)、復号処理が収束したかどうか(ブロック545)、およびデータを再処理するのに利用できる十分なバッファリングがあるかどうか(ブロック550)が判断される。復号処理が収束した(ブロック545)か、または利用できるバッファリングが不足している(ブロック550)場合、復号されたデータはデインターリーブされ(ブロック570)、バッファに格納される(ブロック575)。バッファは、利用できるようになった様々な結果を順不同に含んでおり、したがって様々な結果は、対応するデータ入力がもともと受け取られた順序を表すようにバッファの中で並べ替えられる(ブロック580)。その後、バッファにおいて完全な時間セットが利用可能であるかどうかを判断する(ブロック585)。完全な時間セットは、所与の時間にわたって受け取られた入力に対応するすべての結果を含む。したがって例えば第1の結果が遅れ、後の2つの結果が報告される場合、第1の結果が最終的にバッファで利用可能となると、3つの結果に対して完全な時間セットが存在する。本発明のいくつかの実施形態では、結果は順不同に受信部に報告されることに注意されたい。このような場合、結果を並べ替える、または完全な時間セットが利用できるかどうかを判断する必要がない。完全な時間セットが利用できる場合(ブロック585)、または結果が順序に関係なく受け取られるように報告されるべきである場合、結果は受信部に出力される(ブロック590)。
【0050】
あるいは、復号処理が収束しなかった(ブロック545)、および十分なバッファリングが利用できる(ブロック550)場合、もう一度グローバル反復が行われる。グローバル反復は、復号されたデータをデインターリーブすること(ブロック505)、およびデインターリーブされ復号されたデータをバッファに格納すること(ブロック510)を含む。データ検出器が利用可能になると、デインターリーブされたデータは、データ入力の対応するサンプルと整合される(ブロック515)。デインターリーブされたデータおよび対応するサンプルデータの入力は、データ検出器に提供され、同じデータ入力の先行する処理(ブロック555、560、565、592、594、596、545、550、505、510、515)において作り出された軟入力を使用して、もともと格納されていたデータ入力のサンプル(ブロック525)において、その後のデータ検出が行われる(ブロック530)。データ検出処理の結果はインターリーブされ(ブロック535)、インターリーブされたデータは復号される(ブロック565)。この時点で、ブロック592、594、596、545、550の処理は繰り返される。
【0051】
図5bを見ると、フロー
図501は、本発明のいくつかの実施形態に従った、デコーダ・メッセージの動的スケーリング、およびグローバル処理ループ中の動的スケーリングを使用するデータ処理のための方法を示している。フロー
図501に従って、データ入力が受け取られる(ブロック521)。このデータ入力は、磁気記録媒体から受け取られる一連のデータビット、または伝送チャネルから受け取られる一連のビットであることが可能であるが、これらに限定されない。本明細書に提供する開示に基づいて、当業者は、受け取られるデータ入力の様々なソースおよびフォーマットを理解するであろう。受け取られたデータのサンプルはバッファに格納され、後の処理に備えて保管され(ブロック526)、受け取られたデータ上でデータ検出処理が行われる(ブロック556)。結果として生じる検出されたデータは、スケーリング係数(α)を掛けられ(ブロック558)、この乗算の積がインターリーブされる(ブロック561)。
【0052】
インターリーブされたデータは復号される(ブロック566)。その後、別のローカル反復(すなわちデコーダをもう一度通過すること)が要求されているかどうかが判断される(ブロック593)。この判断は、デコーダが収束したかどうか、および収束しなかったことがデコーダをさらに通過することによって利益を得られるかどうかに基づいて行われることが可能である。当技術分野で知られている、さらなるローカル・デコーダ・ループの必要性を判断するいかなる手法を使用することもできる。さらなるローカル反復(すなわち復号処理をもう一度通過すること)が要求されている場合(ブロック592)、ローカル・スカラが計算される(ブロック595)。場合によっては、このローカル・スカラの計算は、いくつかの所定のスカラ値のうちの1つから選択することを含む。本発明のいくつかの実施形態では、初期ローカル・スカラ値は、第1のグローバル反復(すなわちデータ検出とデータ復号の両方の実行)で使用され、この同じローカル・スカラ値は、グローバル反復に続く次の各ローカル反復に使用される。さらなるグローバル反復が行われる度に、スカラ値は定義された量だけ削減され、削減されたスカラ値は、次に続くローカル反復に使用される。本発明の1つの特定の実施形態では、最初のスカラ値は0.75であり、次のグローバル反復の度にスカラ値は1/32というハードウェアに適した値だけ削減される。したがって、第2のグローバル反復ではスカラ値は0.7188であり、第3のグローバル反復ではスカラ値は0.6875であり、第4のグローバル反復ではスカラ値は0.6563であり、第5のグローバル反復ではスカラ値は0.625であり、第6のグローバル反復ではスカラ値は0.5938であり、第7のグローバル反復ではスカラ値は0.5625であり、第8のグローバル反復ではスカラ値は0.5313であり、第9のグローバル反復ではスカラ値は0.5である。ある時点で、スカラ値は削減されず、一定となる。したがって、前述の例を使用すると、第10以降のグローバル反復においてスカラ値は0.5に維持される。本発明の他の実施形態では、スカラ値は、各グローバル反復の後に行われる変更に加えて、またはこれに代わって、各ローカル反復の後に変更されることが可能であることに注意されたい。デコーダ回路の内部値は、ローカル・スカラ値を掛けられ(ブロック597)、デコーダの処理は繰り返される(ブロック566)。その後、別のローカル反復が要求されているかどうかが判断される(ブロック593)。
【0053】
一般的な法則として、より高いローカル・スカラ値を使用すると、デコーダによる収束の割合が増大し、低ノイズがもたらされる。対照的に、より低いローカル・スカラ値を使用すると、収束の可能性が増大するが収束の割合が減少し、データストリーム中のビットの1つまたは複数により高いノイズが示される。より小さいスカラを掛けられたビットは、デコーダ回路を飽和させる可能性が少なく、したがってより多くのデータが復号処理に使用されるように維持されるので、収束の確率がより高くなる。様々なローカル・スカラ値を使用することによって、本発明のいくつかの実施形態は、より低いレベルのノイズを示す符号語の様々な領域では比較的高速の収束を提供する。その後、より高いレベルのノイズを示す符号語中の領域は、次第に低いスカラ値で処理され、これにより収束の割合は減少するが、収束を実現するために使用されることが可能であるデータの範囲は増大する。
【0054】
さらなるローカル反復が要求されていないと判断される場合(ブロック593)、復号処理が収束したかどうか(ブロック546)、およびデータを再処理するのに利用できる十分なバッファリングがあるかどうか(ブロック551)が判断される。復号処理が収束した(ブロック546)か、または利用できるバッファリングが不足している(ブロック551)場合、復号されたデータはデインターリーブされ(ブロック571)、バッファに格納される(ブロック576)。バッファは、利用できるようになった様々な結果を順不同に含んでおり、したがって様々な結果は、対応するデータ入力がもともと受け取られた順序を表すようにバッファの中で並べ替えられる(ブロック581)。次に、完全な時間セットが利用できるかどうかが判断される(ブロック586)。完全な時間セットは、所与の期間にわたる受信された入力に対応するすべての結果を含む。したがって例えば、第1の結果が遅れているが、後の2つの結果が報告される場合、第1の結果がバッファの中で最終的に利用できるようになると、3つの結果に対して完全な時間セットが存在する。本発明のいくつかの実施形態では、結果は順不同に受信部に報告されることに注意されたい。このような場合、結果を並べ替える、または完全な時間セットが利用できるかどうかを判断する必要がない。完全な時間セットが利用できる場合(ブロック586)、または結果が順序に関係なく受け取られるように報告されるべきである場合、結果は受信部に出力される(ブロック591)。
【0055】
あるいは、復号処理が収束しなかった(ブロック546)、および十分なバッファリングが利用できる(ブロック551)場合、もう一度グローバル反復が行われる。グローバル反復は、復号されたデータに基づいてグローバルスケーリング係数β
xおよびα
xを計算することを含む(ブロック503)。スケーリング係数は、
図6a〜6cに関して以下に説明する手法のうちの1つを使用して計算されることが可能である。また復号されたデータは、デインターリーブされ(ブロック506)、デインターリーブされ復号されたデータがバッファに格納される(ブロック510)。データ検出が利用可能になると、デインターリーブされたデータは、データ入力の対応するサンプルと整合され(ブロック516)、スケーリング係数β
xを掛けられる(ブロック512)。デインターリーブされたデータおよび対応するサンプルデータの入力は、データ検出器に提供され、同じデータ入力の先行する処理(ブロック556、558、561、566、593、595、597、546、551、503、506、511、512、516)において作り出された軟入力を使用して、もともと格納されていたデータ入力のサンプル(ブロック526)上で、その後のデータ検出が行われる(ブロック531)。検出されたデータは、スケーリング係数α
xを掛けられる(ブロック532)。データ検出処理の結果はインターリーブされ(ブロック536)、インターリーブされたデータは復号される(ブロック566)。この時点で、ブロック593、595、597、546、551の処理は繰り返される。
【0056】
図6a〜6cを見ると、本発明の様々な実施形態に従って、グローバル・ループのスケーリング係数を動的に計算するための3つの異なる手法が示されている。
図6aのフロー
図700に従って、復号処理が完了する度に、違反カウントが第1のしきい値(すなわちしきい値A)より小さいかどうか(ブロック701)、または飽和カウントが第2のしきい値(すなわちしきい値B)より大きいかどうか(ブロック703)が判断される。いずれかが真である場合(ブロック701、703)、スケーリング係数は更新される(ブロック707)。詳細には、スケーリング係数は、次の式に従って更新される:
βスケーリング係数=β
maximum、および
αスケーリング係数=α
minimum
その他の場合、更新は要求されず(ブロック701、703)、次の式に従ってスケーリング係数はデフォルトレベルに設定される(ブロック705):
βスケーリング係数=β
default、および
αスケーリング係数=α
default
【0057】
図6bのフロー
図710に従って、復号処理が完了する度に、違反カウントが第1のしきい値(すなわちしきい値A)より小さいかどうか(ブロック711)、または飽和カウントが第2のしきい値(すなわちしきい値B)より大きいかどうか(ブロック713)が判断される。いずれかが真である場合(ブロック711、713)、ルックアップテーブルからスケーリングデータにアクセスするために使用されるインデックス(i)は、インクリメントされる(ブロック717)。次にスケーリング係数が、このインデックスを使用してルックアップテーブルから取り出される(ブロック729)。詳細には、スケーリング係数は、次の式に従って更新される:
βスケーリング係数=β(i)、および
αスケーリング係数=α(i)
β(i+1)はβ(i)より大きく、α(i+1)はα(i)より小さい。その他の場合、更新は要求されず(ブロック711、713)、次の式に従ってスケーリング係数はデフォルトレベルに設定される(ブロック715):
βスケーリング係数=β
default、および
αスケーリング係数=α
default
【0058】
図6cのフロー
図720に従って、復号処理が完了する度に、違反カウントが第1のしきい値(すなわちしきい値A)より小さいかどうか(ブロック721)、または飽和カウントが第2のしきい値(すなわちしきい値B)より大きいかどうか(ブロック723)が判断される。いずれかが真である場合(ブロック721、723)、飽和カウントに対応するインデックスが計算される(ブロック727)。場合によっては、インデックスは、スカラ値を掛けられて次の整数まで引き上げられた飽和カウントである。次にスケーリング係数が、このインデックスを使用してルックアップテーブルから取り出される(ブロック729)。詳細には、スケーリング係数は、次の式に従って更新される:
βスケーリング係数=β(index)、および
αスケーリング係数=α(index)
β(i+1)はβ(i)より大きく、α(i+1)はα(i)より小さい。その他の場合、更新は要求されず(ブロック721、723)、次の式に従ってスケーリング係数はデフォルトレベルに設定される(ブロック725):
βスケーリング係数=β
default、および
αスケーリング係数=α
default
【0059】
図6bのフロー
図820に従って、復号処理が完了する度に、違反カウントがしきい値より小さいかどうかが判断される(ブロック821)。これが真である場合(ブロック821)、スケーリング係数(β
x、α
x)が計算される(ブロック829)。その他の場合、更新は要求されず(ブロック821)、次の式に従ってスケーリング係数はデフォルトレベルに設定される(ブロック825):
βスケーリング係数=β
default、および
αスケーリング係数=α
default
【0060】
図7を見ると、記憶システム700が、本発明の様々な実施形態に従って動的なデコーダ・スケーリングを含んだリード・チャネル710を含んでいる。記憶システム700は、例えばハードディスクドライブである場合がある。リード・チャネル710には、
図2または
図4に関連して上述したものと同様の、動的スケーリングを含んだデコーダ回路を含むデータ処理コーデックが含まれるが、これに限定されない。場合によっては、データ処理コーデックは、
図5の1つと関連して述べたものと同様に動作することができる。
【0061】
また記憶システム700は、プリアンプ770、インターフェース・コントローラ720、ハードディスク・コントローラ766、モーター・コントローラ768、スピンドル・モーター772、ディスク・プラッタ778、および読取り/書込みヘッド機構776を含んでいる。インターフェース・コントローラ720は、ディスク・プラッタ778へのデータ/ディスク・プラッタ778からのデータのアドレス指定およびタイミングを制御する。ディスク・プラッタ778上のデータは、ディスク・プラッタ778上に読取り/書込みヘッド機構776が適切に配置されているとき、この機構776によって検出されることが可能である磁気信号群からなる。1つの実施形態では、ディスク・プラッタ778は、垂直記録方式に従って記録された磁気信号を含む。例えば磁気信号は、水平記録信号または垂直記録信号として記録されることが可能である。
【0062】
一般的な読取り動作において、読取り/書込みヘッド機構776は、ディスク・プラッタ778上の所望のデータトラックの上に、モーター・コントローラ768によって正確に配置される。適切なデータトラックは、インターフェース・コントローラ720を介して受け取られるアドレスによって定義される。モーター・コントローラ768は、ディスク・プラッタ778との関連で読取り/書込みヘッド機構776を配置し、かつ、ハードディスク・コントローラ766の指示に従って読取り/書込みヘッド機構をディスク・プラッタ778上の適切なデータトラックに移動することによってスピンドル・モーター772を駆動する。スピンドル・モーター772は、決められた回転速度(RPM)でディスク・プラッタ778を回転させる。読取り/書込みヘッド機構778が適切なデータトラックに隣接して配置されると、ディスク・プラッタ778がスピンドル・モーター772によって回転させられるとき、読取り/書込みヘッド機構776によって、ディスク・プラッタ778上のデータを表す磁気信号が検知される。検知された磁気信号は、ディスク・プラッタ778上の磁気データを表す連続的な微小のアナログ信号として提供される。この微小なアナログ信号は、プリアンプ770を介して読取り/書込みヘッド機構776からリード・チャネル710へ転送される。プリアンプ770は、ディスク・プラッタ778がアクセスした微小なアナログ信号を増幅するように動作する。次に、リード・チャネル・モジュール710が、受け取られたアナログ信号を復号してデジタル化し、ディスク・プラッタ778にもともと書き込まれた情報を再現する。復号処理は、ローカル反復ループを使用し、デコーダ回路の出力が動的にスケール調整され、デコーダ回路への入力として提供されることが可能である。この入力は、再び復号される。読み取られたデータは、読取りデータ703として提供される。書込み動作は、実質的に前述の読取り動作の反対であり、書込みデータ701はリード・チャネル・モジュール710に提供される。このデータは次に符号化されて、ディスク・プラッタ778に書き込まれる。
【0063】
図8を見ると、通信システム891が、本発明の異なる実施形態に従って可変的にスケール調整されるデコーダの処理を備えるリード・チャネル回路を有する受信機895を含んでいる。通信システム891は、当業者には知られるように、転送媒体897を介して符号化された情報を送信するように動作可能である送信機893を含んでいる。符号化されたデータは、受信機895によって転送媒体897から受信される。受信機895は、可変的にスケール調整されるデコーダの処理を備えたリード・チャネル回路を組み込んでいる。組み込まれたリード・チャネル回路は、入力ストリームの処理に基づいてデコーダのスケーリング係数を適応的に計算することができる。したがって、適応的計算回路は、
図2〜5に関連して述べた計算回路に従って実装されることが可能である。本明細書で提供される開示に基づいて、当業者は、本発明の実施形態に従った等化および対象化が行われることが可能である様々な媒体を理解するであろう。
【0064】
結論として本発明は、データの復号および/または検出を行うための新規のシステム、装置、方法、および配列を提供する。本発明の1つまたは複数の実施形態について詳細に述べたが、本発明の趣旨を外れることなく、様々な代替物、修正物、および等価物が当業者には明らかであろう。例えば、本発明の1つまたは複数の実施形態は、例えばテープ記録システム、光ディスクドライブ、無線システム、およびデジタル加入者線システムなど、様々なデータ記憶システムおよびデジタル通信システムに適用可能である。したがって、上記の説明は、本発明の範囲を限定するものとみなされるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。