JP4760769B2 - 復号回路及び部分処理回路 - Google Patents

復号回路及び部分処理回路 Download PDF

Info

Publication number
JP4760769B2
JP4760769B2 JP2007129575A JP2007129575A JP4760769B2 JP 4760769 B2 JP4760769 B2 JP 4760769B2 JP 2007129575 A JP2007129575 A JP 2007129575A JP 2007129575 A JP2007129575 A JP 2007129575A JP 4760769 B2 JP4760769 B2 JP 4760769B2
Authority
JP
Japan
Prior art keywords
partial
processing
row
processing circuit
check matrix
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
JP2007129575A
Other languages
English (en)
Other versions
JP2008288710A (ja
Inventor
貴 前畠
政彦 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2007129575A priority Critical patent/JP4760769B2/ja
Publication of JP2008288710A publication Critical patent/JP2008288710A/ja
Application granted granted Critical
Publication of JP4760769B2 publication Critical patent/JP4760769B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、LDPC復号回路及び部分処理回路に関するものである。
誤り訂正技術の一つとして、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号と、その復号法であるsum−product復号法とが注目されている。
このLDPC符号では、白色ガウス通信路のシャノン(Shannon)限界まで、0.004dBという復号特性が得られることが知られている。また、sum-product復号法は、並列処理による復号処理を実行するため、符号長を長くすることができるとともに処理能力を向上させることができる。
特許文献1は、このようなLDPC符号の復号装置の構成を開示している。
特開平2005−269535号公報
LDPCでは、符号長を長くすると高い訂正能力が得られる。したがって、より高い訂正能力を得るには長い符号長を処理可能な復号回路を設計すればよい。
しかし、符号長を長くするには、いくつかの問題がある。
例えば、符号長が長くなると(例えば、4000bit以上)、演算量が多くなるため、集積度の限界のため一つの復号回路を一つの半導体チップで構成することが困難となる。
仮に、一つの復号回路を一つの半導体チップで構成したとしても、符号長さが長くなると高速で動作させる必要があり、動作速度の限界のため動作不能となることがある。例えば、10Gb/sのシリアルデータを半導体チップに入力しようとすると、電気的な応答が追いつかず、動作させるのが困難となる。
そこで、一つの復号回路を複数の半導体チップで構成し、各半導体チップで復号処理を分散処理することが考えられる。複数の半導体チップに分けて、復号回路外部のS/P変換器によって、シリアルデータを各半導体チップに分けて入力すれば、一つの半導体チップについての入力速度が低下するため、高速化への対応が容易となる。
また、コストの面からみると、長い符号長を処理可能な復号回路を、一つの半導体チップで構成すると、高度に集積化されたチップが必要となり非常にコスト高となる。したがって、半導体チップを複数用いて復号回路を構成することは、コストの観点からも望まれる。
ところが、復号回路を複数の半導体チップ(部分処理回路)に分割すると、複数の半導体チップ同士を繋ぐ配線の数が問題となる。
つまり、復号回路を複数の部分処理回路に分割すれば、部分処理回路間で、処理に必要な情報を共有する必要が生じる。つまり、部分処理回路間で共有される情報をやりとりする配線が必要となる。したがって、符号長が長くなれば、共有すべき情報も増大するため、非常に多くの配線が必要となる。
よって、復号回路を分割するには、適切な分割方法が必要である。
例えば、単純な分割方法として、sum-product復号法の復号回路における主な機能単位で分割することを考える。前記復号回路における主な機能は、行処理と列処理である。
そこで、復号回路を、行処理を行う行処理用半導体チップと列処理を行う列処理用半導体チップとで構成したとする。
上記の場合、行処理用半導体チップと列処理用半導体チップの間には、少なくとも、行処理用半導体チップにおける行処理の結果である外部値対数比(αmn)を、列処理用半導体チップに渡すための配線が必要である。
行処理の結果である外部値対数比の数は、符号長に応じて多くなるため、符号長が膨大になれば、膨大な数の配線が両チップ間に必要となる。この結果、符号長が長くなった場合、復号回路を複数の半導体チップ(部分処理回路)で構成することは、現実的ではなくなる。
そこで、本発明は、復号回路を複数の部分処理回路で構成しても、複数の部分処理回路同士を繋ぐ配線数の増加を抑えることができる新たな技術を提供することを目的とする。
本発明は、複数の入力データに対して、検査行列に基づく処理(例えば行処理及び/又は列処理)を行う処理部を備えたLDPC復号回路であって、前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成されている。
処理部を、検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成することで、処理部を行処理部と列処理部とに分割した単純な分割方法に比べて、部分処理回路同士を繋ぐ配線数の増加を抑えることができる。
なお、分割は、後述のように検査行列を列方向に複数に分割するほか、行方向に複数に分割してもよく、分割方向は特に限定されない。また、検査行列を直線的に分割する必要はなく、検査行列を分割する分割ラインを想定した場合、当該分割ラインがジグザグであってもよい。また、分割ラインは、行方向又は列方向から斜めに傾いていてもよい。
さらに、検査行列を分割した際、検査行列の各要素は、いずれかの部分検査行列のみに含まれている必要はなく、検査行列中のある要素が、複数の部分検査行列に含まれていてもよい。つまり、部分検査行列同士に重複部分があってもよい。
前記部分検査行列は、前記検査行列を列方向に複数に分割したものであるのが好ましい。検査行列を列方向に分割することで、部分処理回路同士を繋ぐ配線数の増加を更に抑えることができる。
前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての行処理を行うよう構成されているのが好ましい。
また、前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての行処理を行うとともに、当該部分処理回路が対応する部分検査行列の非零要素についての列処理を行うよう構成されているのが好ましい。検査行列を列方向に分割しても、列処理には影響がないため、各部分処理回路に列処理を含めると効率的である。
ここで、前記行処理には、検査行列又は部分検査行列に基づく行処理のほか、検査行列又は部分検査行列の「転置行列」に基づく列処理を含むものである。転置行列は行と列を入れ替えたものであるので、検査行列等に基づく行処理と当該検査行列等の転置行列に基づく列処理とは、実質的に等価だからである。
同様の理由により、前記列処理には、検査行列又は部分検査行列に基づく列処理のほか、検査行列又は部分検査行列の「転置行列」に基づく行処理を含むものである。
前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素における処理の演算を行うために必要とされる演算情報のうち、他の部分処理回路が有する演算情報を、当該他の部分処理回路から取得するための取得部を備えているのが好ましい。検査行列のある行に含まれる非零要素が複数の部分検査行列に跨っていたり、又は検査行列のある列に含まれる非零要素が複数の部分検査行列に跨っていたりしても、他の部分処理回路から演算情報を取得することで、検査行列に基づいて行処理又は列処理を行うことができる。
前記取得部は、事前値対数比及び入力データの対数尤度比、又は事前値対数比及び入力データの対数尤度比を用いた演算によって得られた値、を前記行処理演算情報として、他の部分処理回路から取得するのが好ましい。
前記取得部は、他の部分処理回路が行った部分演算結果を、前記演算情報として、当該他の部分処理回路から取得するよう構成され、前記部分演算結果は、行処理の演算又は列処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であるのが好ましい。この場合、取得する情報量を少なくすることができる。
前記部分的な演算は、事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和の絶対値を変数とするギャラガのf関数値に関し、部分検査行列の非零要素に対応するギャラガのf関数値の和を求める演算、又は事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和の絶対値に関し、部分検査行列の非零要素に対応する前記絶対値の最小値を求める最小値演算、を含むのが好ましい。
前記部分的な演算は、事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和から求めた符号情報に関し、部分検査行列の非零要素に対応する符号情報の積を求める符号演算、を含むのが好ましい。
前記情報取得部は、他の部分処理回路が対応する部分検査行列の非零要素それぞれに対応する演算情報を、当該他の部分処理回路から取得するのが好ましい。
前記複数の部分処理回路は、列同士が入れ替えられた検査行列を、列方向に複数に分割した複数の部分検査行列にそれぞれ対応するよう構成されているのが好ましい。この場合、列を適切に入れ替えることで、部分処理回路間での情報のやりとりを低減できる。
複数の入力データが、列同士が入れ替えられた検査行列に対応するように、複数の入力データ同士の入れ替えを行うデータ入替部を備えているのが好ましい。
前記部分処理回路は、前記複数の入力データのうち、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うために必要なデータを選択するように構成されているのが好ましい。この場合、部分検査行列がどのようなものであるかを考慮しなくても、部分処理回路は、与えられた入力データのうち、自己が必要なデータを選択するため、回路の設計が容易である。
前記部分処理回路は、複数の行処理演算情報を、共通の情報送信配線を介して、他の部分処理回路へ送信するための情報送信部を備えているのが好ましい。この場合、さらに配線数を低減できる。
なお、前記情報送信部は、複数の行処理演算情報を、多重化して共通の情報送信配線で送信するのが好ましい。複数の行処理演算情報を、多重化することで、効率よく情報を送信することができる。なお、多重化としては、時分割多重、周波数分割多重、符号分割多重などが採用できる。
前記情報送信部が送信する演算情報の順序を制御する制御部を備えているのが好ましい。また、前記制御部は、列処理が実行される列の順序に応じて、送信される行処理演算情報の順序を制御するのが好ましい。
前記複数の部分処理回路は、行処理及び列処理を実行した結果から推定符号を判定する判定部をそれぞれ備え、前記判定部によって判定した推定符号がそれぞれの部分処理回路から出力されるのが好ましい。
なお、前記処理部が複数段備わっているLDPC復号回路であって、複数段の処理部には、行処理及び列処理を行う一の処理部と、前記一の処理部において行処理及び列処理を実行した結果を受け取って更に行処理及び列処理を行う他の一の処理部とを含み、前記一の処理部は、前記複数の部分処理回路によって構成され、前記一の処理部の前記複数の部分処理回路は、行処理及び列処理を実行した結果を、前記他の一の処理部に与えるために出力するものであってもよい。
他の観点から見た本発明は、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、前記行処理部が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、を備え、前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成されている。
前記部分処理回路は、一つの半導体チップで構成されているのが好ましい。
本発明によれば、検査行列を複数に分割した部分検査行列に対応させて部分処理回路を構成したので、部分処理回路同士を繋ぐ配線の数の増加を抑えることができる。
以下、本発明の実施形態を、図面を参照して説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係る復号回路を有する通信システムの構成の一例を示す図である。図1において、通信システムは、送信側において、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)ビットのLDPC符号(低密度パリティ検査符号)を生成する。低密度パリティ検査行列においては、行が冗長ビットに対応し、列が符号ビットに対応する。なお、(K+M)ビットのLDPC符号のどのビットに、K個の情報ビット及びM個の冗長ビットを配置するかは、送信側と受信側で取り決めていれば、どのように配置してもよい。
変調器2は、この通信路3の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直交周波数分割多重変調などの変調を行なう。たとえば、通信路3が、光ファイバの場合、変調器2においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調(一種の振幅変調)を行なっている。たとえば、送信データビットが0の場合には、+1に変換して、レーザダイオードの発光強度を強くして送信し、また送信データビットが1の場合、−1に変換して、レーザダイオードの発光強度を弱くして送信する。
受信部においては、通信路3を介して送信された変調信号に復調処理を施して、(K+M)ビットのデジタル符号を復調する復調器4と、この復調器4からの(K+M)ビットの符号にパリティ検査行列に基づく復号処理を施して元のKビットの情報を再生する復号化器5が設けられる。
復調器4は、この通信路3における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直交周波数分割多重変調等の場合、復調器4において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
図2は、通信路3が光ファイバの場合の変調器2および復調器4の出力データの対応関係を一覧にして示す図である。図2において、上述のように、通信路3が光ファイバの場合、変調器2においては、送信データが0のときには、1に変換され、送信用のレーザダイオード(発光ダイオード)の発光強度が強くなり、また送信データビットが1のときには、−1に変換され、レーザダイオードの発光強度を弱くして送信する。
この通信路3における伝送損失等により、復調器4に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器4においては、この入力された光信号を量子化処理(アナログ/デジタル変換)を行なって、この受光レベルを検出する。
図2においては、8段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ7のときには、発光強度がかなり強く、受光レベルが0のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器4から出力される。この復調器4の出力は、受光レベルが7のときにはデータ3が出力され、受光レベルが0のときには、データ−4が出力される。したがってこの復調器4からは、1ビットの受信信号に対し、多値量子化された信号が出力される。
復号化器5は、この復調器4から与えられた(K+M)ビットの受信情報(各ビットは、多値情報を含む)を入力し、sum-product復号法又はmin-sum復号法に従ってLDPCパリティ検査行列を適用して、元のKビットの情報を復元する。
なお、この図2においては、復調器4において、8レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器4においては、L値(L≧2)に量子化されたビットを用いて復号処理を行なうことができる。
また、図2においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、2値信号を生成してもよい。
図3は、この発明に従う復号化器5の構成を概略的に示す図である。この図3においては、復調器4および通信路3も併せて示す。復調器4は、通信路3から与えられた信号を復調する復調回路4aと、この復調回路4aにより生成されたアナログ復調信号をデジタル信号に変換するアナログ/デジタル変換回路4bを含む。
このアナログ/デジタル変換回路4bの出力データXnが復号化器5へ与えられる。この復号化器5へ与えられるデータXnは、L値(L≧2)のデータである。以下、データXnは、多値量子化データであるため、シンボルと称す。復号化器5は、この入力シンボルXn系列に対しsum-product復号法又はmin-sum復号法などの復号法に従って復号処理を行なって符号ビットCnを生成する。
復号化器5は、復調器4からの復調シンボルXnの対数尤度比nを生成する対数尤度比算出部6と、復号処理部(単に、「処理部」ともいう)7とを含む。
対数尤度比算出部6は、この受信信号のノイズ情報と独立に、対数尤度比nを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比nは、Xn/(2・・)で与えられる。ここで、は、ノイズの分散を示す。
しかしながら、本実施の形態においては、この対数尤度比算出部6は、バッファ回路または定数乗算回路で形成され、対数尤度比nは、Xn・fで与えられる。ここで、fは非ゼロの正の数である。また、min-sum復号方法においては、検査行列に基づく復号処理(行処理)において、最小値を利用して演算を行なうため、信号処理において線形性が維持される。このため、ノイズ情報に従って出力データを正規化するなどの処理は不要である。この場合ノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。
本実施形態の復号処理部7は、ハードウェア構成としては、図4に示すようなものである。ただし、ここでは、理解を容易にするため、図4に示す復号処理部7のハードウェア構成に依存することなく、図5〜図14に基づいて、復号処理部7の機能を先に説明し、その後、本実施形態の復号処理部7のハードウェア構成について説明する。
図5に示すように復号処理部7は、対数尤度比λnをシリアルデータからパラレルデータに変換するS/P変換部8と、パリティ検査行列の行処理を行なう行処理部9と、パリティ検査行列の列処理を行なう列処理部10と、対数尤度比算出部6からの対数尤度比nと行処理部9の出力ビット(外部値対数比)とに従って符号を生成する判定部11と、判定部11によって判定された符号をパラレルデータからシリアルデータに変換するP/S変換部12と、を含む。
復号法がsum-product復号法である場合、行処理部9及び列処理部10は、次式(1)及び(2)にしたがって、演算処理を行い、パリティ検査行列の行の各要素(非零要素:1)についての処理(行処理)、及び列についての各要素(非零要素:1)についての処理(列処理)を繰り返し実行する。なお、行処理部9及び列処理部10における演算は、零要素についても行っても良いが、検査行列の非零要素についてのみ行うのが効率的であって、好ましい。
具体的には、行処理部9が、次式(1)にしたがって外部値対数比(第1変数)αmnを算出する演算を行い、列処理部10が、次式(2)にしたがって事前値対数比βmnを算出する演算を行う。
Figure 0004760769
ここで、上式(1)および(2)それぞれにおいて、n’∈A(m)\nおよびm’∈B(n)\mは、自身を除く要素を意味する。
外部値対数比αmnについては、n’≠nであり、事前値対数比βmnについては、m’≠mである。また、αおよびβの行列内の位置を示す添え字mnは、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
なお、式(1)中において、fは、ギャラガ(Gallager)のf関数である。
また、関数sign(x)は、次式(3)で定義される。
Figure 0004760769
また、集合A(m)およびB(n)は、2元M・N行列H=[Hmn]を復号対象のLDPC符号の検査行列とした場合、集合[1,N]={1,2,…,N}の部分集合である。
A(m)={n:Hmn=1} …(4)
B(n)={m:Hmn=1} …(5)
すなわち、上記部分集合A(m)は、検査行列Hの第m行目において1(非零要素)が立っている列インデックスの集合を意味し、部分集合B(n)は、検査行列Hの第n列目において1(非零要素)が立っている行インデックスの集合を示す。
具体的に、今、図6に示す検査行列Hを考える。この図6に示す検査行列Hにおいては、第1行の第1列から第3列に1が立ち、また第2行の第3列および第4列に1が立ち、また第3行の第4列から第6列に、1が立つ。したがって、この場合、部分集合A(m)は以下のようになる。
A(1)={1,2,3}
A(2)={3,4}
A(3)={4,5,6}
同様に、部分集合B(n)については、以下のようになる。
B(1)=B(2)={1}
B(3)={1,2}
B(4)={2,3}
B(5)=B(6)={3}
この検査行列Hにおいて、タナー(Tanner)グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この1により示される。これを、本明細書においては「1が立つ」と称している。すなわち、図7に示すように、変数ノード1,2,3は、チェックノードX(第1行)に接続され、変数ノード3,4が、チェックノードY(第2行)に接続される。変数ノード4,5,6が、チェックノードZ(第3行)に接続される。この変数ノードが検査行列Hの列に対応し、チェックノードX,YおよびZが、この検査行列Hの各行に対応する。従って、図6に示す検査行列は、情報ビットが3ビット、冗長ビットが3ビットの合計6ビットの符号長の符号に対して適用される。
LDPCの検査行列Hでは、1の数は少なく、低密度の検査行列であり、これにより、計算量を低減できる。
この変数ノードとチェックノードの間で各条件確率P(Xi|Yi)を伝播させ、MAPアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率P(Xi|Yi)は、Yiの条件下でXiとなる確率を示す。
復号法がmin-sum復号法である場合、行処理部9及び列処理部10は、次式(6)及び(7)にしたがって、演算処理を行う。min-sum復号法は、sum-product復号法を簡略化したものである。具体的には、外部値対数比αmnを求める式(1)を、式(6)のように簡略化したものである。式(6)において、関数minは、最小値を求める演算を示す。
なお、式(2)及び式(7)は同じものである。
Figure 0004760769
なお、行処理部9及び列処理部10の演算は、次式(8)及び(9)に従ったものであってもよい。下記式によれば、βmnの記憶部とλnの記憶部を共用できるので、メモリを節約することができる。なお、次式において、lは行処理と列処理の繰り返し回数である。
Figure 0004760769
以下では、min-sum復号法における、行処理及び列処理の一例を詳細に説明する。なお、ここでは、検査行列として図6に示すものを用いて説明する。
まず、行処理及び列処理で用いられる値の記憶部について、図8に基づいて説明する。
図8(a)は行処理部9が算出する外部値対数比(第1変数)αmnの記憶部を示し、図8(b)は列処理部19が算出する事前値対数比(第2変数)βmnの記憶部を示している。図8(a)(b)に示すように、両変数αmn,βmnの記憶部は、検査行列Hにおいて1が立っている要素(非零要素)に関して設けられていればよい。
また、図8(c)は、復号処理部7への入力データである対数尤度比λn(n=6ビット)の記憶部を示し、図8(b)は、対数尤度比λnと事前値対数値βmnの和(λn+βmn)の記憶部を示している。
図9(a)に示すように、式(6)で示す外部値対数比αmnを求める行処理演算は、行処理部9が、対数尤度比λnと事前値対数値βmnの和(λn+βmn)からαmnを求める演算ということができる(式(1)についても同様)。
また、図9(b)に示すように、また、式(7)又は式(2)で示す事前値対数比βmnを求める列処理演算は、αmnからβmnを求める演算ということができる。
図10は、検査行列Hのm=1行目の行処理演算を示している。図6の検査行列Hの1行目では1,2,3列目の要素が非零要素(1)であるので、当該非零要素についての外部値対数比α11,α12,α13を求める演算が式(6)に従って行われる。
図10(a)は、α11を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの1行目の1列目の要素について行処理演算を行う第1行演算処理部19a−1は、(λ2+β12)及び(λ3+β13)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α11を算出する。
図10(b)は、α12を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの1行目の2列目の要素について行処理演算を行う第1行演算処理部19a−2は、(λ1+β11)及び(λ3+β13)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α12を算出する。
図10(c)は、α13を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの1行目の3列目の要素について行処理演算を行う第1行演算処理部19a−3は、(λ1+β11)及び(λ2+β12)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α13を算出する。
図11は、検査行列Hのm=2行目の行処理演算を示している。図6の検査行列Hの2行目では3,4列目の要素が非零要素(1)であるので、当該非零要素についての外部値対数比α23,α24を求める演算が式(6)に従って行われる。
図11(a)は、α23を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの2行目の3列目の要素について行処理演算を行う第2行演算処理部19b−3は、(λ4+β24)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α23を算出する。
図11(b)は、α24を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの2行目の4列目の要素について行処理演算を行う第2行演算処理部19b−4は、(λ3+β23)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α24を算出する。
図12は、検査行列Hのm=3行目の行処理演算を示している。図6の検査行列Hの3行目では4,5,6列目の要素が非零要素(1)であるので、当該非零要素についての外部値対数比α34,α35,α36を求める演算が式(6)に従って行われる。
図12(a)は、α34を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの3行目の4列目の要素についての行処理演算を行う第3行演算処理部19c−4は、(λ5+β35)及び(λ6+β36)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α34を算出する。
図12(b)は、α35を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの3行目の5列目の行処理演算を行う第3行演算処理部19c−5は、(λ4+β34)及び(λ6+β36)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α35を算出する。
図12(c)は、α36を求める際の、(λn+βmn)の記憶部からαmnの記憶部へのデータの流れを示している。検査行列Hの3行目の6列目の行処理演算を行う第3行演算処理部19c−6は、(λ4+β34)及び(λ5+β25)から値を取得し、最小値演算(Min関数による演算)と符号演算(sign関数による演算と積を求める演算)を行って、α36を算出する。
図13は、検査行列Hのn=3列目の列処理演算を示している。図6の検査行列Hの3列目では1,2行目の要素が非零要素(1)であるので、当該非零要素についての事前値対数比β13,β23を求める演算が式(7)に従って行われる。
図13(a)は、β13を求める際の、αmnの記憶部からβmnの記憶部へのデータの流れを示している。検査行列Hの3列目の1行目の要素についての行処理演算を行う第3列演算処理部20c−1は、α23から値を取得し、(αmnの和を求める演算を行って)、β13を算出する。
図13(b)は、β23を求める際の、αmnの記憶部からβmnの記憶部へのデータの流れを示している。検査行列Hの3列目の2行目の要素についての行処理演算を行う第3列演算処理部20c−2は、α13から値を取得し、(αmnの和を求める演算を行って)、β23を算出する。
図14は、検査行列Hのn=4列目の列処理演算を示している。図6の検査行列Hの3列目では2,3行目の要素が非零要素(1)であるので、当該非零要素についての事前値対数比β13,β23を求める演算が式(5)に従って行われる。
図14(a)は、β24を求める際の、αmnの記憶部からβmnの記憶部へのデータの流れを示している。検査行列Hの4列目の2行目の要素についての行処理演算を行う第4列演算処理部20d−2は、α34から値を取得し、(αmnの和を求める演算を行って)、β24を算出する。
図14(b)は、β34を求める際の、αmnの記憶部からβmnの記憶部へのデータの流れを示している。検査行列Hの4列目の3行目の要素についての行処理演算を行う第4列演算処理部20d−3は、α24から値を取得し、(αmnの和を求める演算を行って)、β34を算出する。
なお、図6の検査行列では、説明を簡単にするために、列重みが2以上である列を3及び4列目だけとしたため、βmnを更新する演算は、3及び4列目についてしか行われないが、一般的な検査行列の場合、すべての列の列重みは2以上又は3以上であるため、すべての列についてβmnを更新する演算が式(7)に従って行われる。
[処理部の分割方法の基本概念]
さて、本実施形態では、処理部7が複数の部分処理回路に分割して構成されている。図15は、本実施形態における処理部7の分割方法の基本的概念を示している。図15には、処理部7の構成要素として、行処理及び列処理の手順に従い、上から順に、(λn+βmn)加算器30A,30B、(λn+βmn)記憶部31A,31B、行演算処理部19A,19B、αmn記憶部32A,32B、列演算処理部20A,20B、βmn記憶部33A,33Bを示した。
図15の中央において上下に延びる点線は、処理部7の分割ラインであり、分割ラインの左側に、第1の部分処理回路30A,31A,19A,32A,20A,33Aがあり、分割ラインの右側に第2の部分処理回路30B,31B,19B,32B,20B,33Bがある。
ここで、図16に示すように、図6の検査行列Hを列方向に複数(2つ)に分割した部分検査行列HA,HB(図16参照)を考える。
図15の第1部分処理回路は、部分検査行列HAの非零要素に関する行処理及び列処理を行う回路である。また、図15の第2部分処理回路は、部分検査行列HBの非零要素に関する行処理及び列処理を行う回路である。
図15に示すように、行演算処理部19A,19Bは、列方向に複数に分割されているが、行演算処理部は、処理対象の行に含まれる非零要素が、一つの部分検査行列のみに存在する場合、当該行については、前記非零要素を含む部分検査行列に対応する部分処理回路単独で、行処理を行うことができる。
これに対し、処理対象の行に含まれる非零要素が、分割された複数の部分検査行列HA,HBに跨っている場合、一つの部分処理回路単独では、行処理を行うことができない。なぜなら、行処理を行うには、処理対象の行に含まれる非零要素すべてに対応する行処理演算情報が必要である。換言すると、検査行列Hを列方向に分割した部分検査行列HA,HBを作ったとしても、行処理はあくまでも検査行列Hで行わなければならないのである。
このことを、図10〜図12も参照して説明する。なお、図10〜図14において上下方向の点線は、図15と同様の分割ラインである。つまり、図10〜図14において、分割ラインである点線の左側が第1部分処理回路の演算に対応し、右側が第2部分処理回路の演算に対応する。
まず、検査行列Hの第1行目についてみると、非零要素は、部分検査行列HA側のみに存在し、部分検査行列HB側には存在しない(図16参照)。したがって、図10に示すように、第1行目についての行処理は、第1部分処理回路(図10の点線で示す分割ラインよりも左側)が有する(λn+βmn)の情報(行処理演算情報)を用いて、第1部分処理回路の第1行演算処理部19a−1〜19a−3が行うことができる。
また、検査行列Hの第3行目についてみると、非零要素は、部分検査行列HB側のみに存在し、部分検査行列HA側には存在しない(図16参照)。したがって、図12に示すように、第3行目についての行処理は、第2部分処理回路(図12の点線で示す分割ラインよりも右側)が有する(λn+βmn)の情報(行処理演算情報)を用いて、第2部分処理回路の第3行演算処理部19c−4〜19c−6が行うことができる。
これに対し、検査行列Hの第2行目についてみると、非零要素は、部分検査行列HAと部分検査行列HBに分散して存在する(図16参照)。したがって、図11に示すように、第2行目についての行処理を行う際には、両部分処理回路が持つ(λn+βmn)の情報(行処理演算情報)を、交換する必要がある。
つまり、図11(a)に示すように、部分検査行列HA側の2行目の非零要素に対応するαmnであるα23を、第1部分処理回路の第2行演算処理部19b−3(行演算処理部19A)が行うには、第2部分処理回路の(λn+βmn)記憶部31Bが保有する(λ4+β24)の情報(行処理演算情報)を取得する必要がある。
また、図11(b)に示すように、部分検査行列HA側の2行目の非零要素に対応するαmnであるα24を、第1部分処理回路の第2行演算処理部19b−4(行演算処理部19B)が行うには、第1部分処理回路の(λn+βmn)記憶部31Aが保有する(λ3+β23)の情報(行処理演算情報)を取得する必要がある。
上記のように、行処理に関しては、部分処理回路間で行処理情報の交換が必要となる場合があったが、列処理に関しては、処理部7を列方向に分割しても、部分処理回路間で情報の交換は不要である。
すなわち、図13及び図14に示すように、列処理は、検査行列Hの各列について列方向に演算を行うだけであるから、検査行列Hを列方向に複数に分割すれば、各部分処理回路は、当該部分処理回路に対応する部分検査行列HA,HBに基づいて、列処理を行えば足りる。
以上によれば、検査行列Hを列方向に複数の部分検査行列に分割したときに、各行に含まれる非零要素が、いずれかの部分検査行列一つだけに集中して存在するように、検査行列とその部分検査行列を適切に設計すれば、一つの処理部7を複数の部分処理回路で構成しても、各部分処理回路間で行処理演算情報を交換するための配線は不要となる。
また、検査行列Hを列方向に複数の部分検査行列に分割したときに、各行に含まれる非零要素が、複数の部分検査行列に分散して存在することがあったとしても、LDPCの場合、非零要素の数は、行列の大きさに比べて十分に少ないため、部分処理回路間での行処理演算情報の交換量を抑えることができる。
つまり、LDPCでは、非零要素の数は行列の大きさに比べて十分に少ないため、検査行列中の比較的多くの行(例えば、半分以上の行)については、自然に、非零要素がいずれかの部分検査行列一つだけに集中して存在することになる。したがって、検査行列のすべての行について、行処理演算情報を交換する必要がなく、各部分処理回路間で行処理演算情報を交換するための配線の数の増加を抑えることができる。
なお、検査行列を分割する際の分割ラインは直線状である必要はなく、非零要素の配置に応じて、ジグザグであってもよい。つまり、非零要素が、いずれかの部分検査行列だけに集中して存在するように分割ラインを適切に曲げて設定することで、部分処理回路間で交換が必要な行処理演算情報を少なくすることができる。
また、検査行列のある要素が、複数の部分検査行列において含まれていてもよい。
[処理部7のハードウェア構成]
図4に戻り、上記基本概念に沿って設計された処理部7のハードウェア基本構成について説明する。
図4の処理部7は、複数(2つ)の部分処理回路71,72を有している。これらの第1部分処理回路71及び第2部分処理回路72は、それぞれ、半導体チップ(半導体チップパッケージ)として構成されている。第1部分処理回路71を構成する第1半導体チップと第2部分処理回路72を構成する第2半導体チップとは、それぞれ、処理部7を構成する回路基板上に配置され、両半導体チップ71,72間には、行処理演算情報を交換するための配線74(複数本の配線)が形成されている。
また、図示はしないが、部分処理回路71,72を構成する半導体チップのパッケージには、前記行処理演算情報を交換するための配線74に接続されるピン(行処理演算情報の入力端子又は出力端子)が設けられている。なお、複数の半導体チップを一つのパッケージに封入したマルチチップパッケージであってもよいが、一つの半導体チップパッケージあたりのピンの数を減らすには、一パッケージあたり一つの半導体チップが好ましい。
また、処理部7は、前述のとおり、入力データである対数尤度比λnをシリアルデータからパラレルデータに変換するS/P変換部8と、部分処理回路71,72から出力された符号Cnをパラレルデータからシリアルデータに変換するP/S変換部12と、を含む。
前記S/P変換部8は、入力データλnを、それぞれの部分処理回路71,72へ振り分ける機能をもつ。また、前記P/S変換部は、それぞれの部分処理回路71,72から出力された符号Cnをまとめる機能をもつ。
各部分処理回路71,72の基本的構成は、共通している。すなわち、各部分処理回路71,72は、それぞれ、行処理を行って外部値対数比αmnを出力する行処理部90A,90B、及び列処理を行って事前値対数比βmnを出力する列処理部100A,100Bを有する。また、各部分処理回路71,72は、それぞれの部分処理回路71,72への入力データλnをパラレルデータに分解するS/P変換部80A,80Bと、後述の判定部110A,110Bの出力をシリアルデータに変換するP/S変換部120A,120Bを有している。
さらに、各部分処理回路71,72は、判定部(符号判定部)110A,110Bを有している。判定部110A,110Bは、行処理及び列処理の繰り返し回数を判定して、繰り返しを制御する機能を有する。つまり、判定部110A,110Bは、行処理と列処理の繰り返し回数が所定値を超えると、繰り返し演算を終了させる。
また、判定部110A,110Bは、繰り返し演算が終了した後、外部値対数比αmn(又は事前値対数比βmn)と対数尤度比λnとを用いて符号を判定する機能を有している。
具体的には、判定部110A,110Bは、次式(10)に従って、Qnを算出する。
Figure 0004760769
さらに、判定部110A,110Bは、次式(11)に従って、推定符号Cnを算出する。
Figure 0004760769
なお、各判定部110A,110Bは、他の部分処理の判定部110A,110Bから推定符号Cnを収集して得られた一次推定語Cnと検査行列Hとから、一次推定語Cnが符号語を構成しているかどうか検査してもよい。行処理と列処理の繰り返し中に、この検査を行った結果、一次推定語Cnが符号語を構成している場合には、判定部110A,110Bは、行処理部90A,90B及び列処理部100A,100Bの繰り返し演算を終了させて、当該一次推定語Cnを出力することができる。
図17は、図4の部分処理回路71,72における行処理部90A,90Bと列処理部100A,100Bの詳細を示している。
図17に示す行処理部90A,90B及び100A,100Bは、図15に示すものとほぼ対応しており、行処理部90A,90Bは、加算器30A,30Bと行演算処理部19A,19Bを含み、列処理部100A,100Bは、列演算処理部20A,20Bを含む。
なお、図17では、図15に示す(λn+βmn)記憶部31A,31B、αmn記憶部32A,32B記憶部、βmn記憶部33A,33Bを図示していないが、これらの記憶部も、必要に応じて部分処理回路71,72に含ませることができる。
さて、図17では、行演算処理部19A,19B及び列演算処理20A,20Bそれぞれを、3つのブロックに分けて描いている。3つのブロックに分かれているのは、検査行列の構造と関連する。そこで、以下では、一般的な検査行列の生成方法を説明する。
図18は、列重みがX(各列の非零要素の数がX)であるパリティ検査行列Hの生成方法を示している。
パリティ検査行列Hは、検査行列Hの行方向にX個のブロック(H1,H2・・・,HXに分割される。例えば、行重みが6(各行の非零要素の数が6)の場合に、まず、第1ブロック(H1)において、第1行目の第1列目〜第6列目に「1」(非零要素)が配置され、第2行目の第7〜第12列目に「1」(非零要素)が配置され、以下同様に、第1ブロック内の以下の行についても「1」(非零要素)が配置される。ここでは、第1ブロックにおける各列の列重みが1となるように配置される。
そして、第1ブロック内の任意の列を、乱数を用いて再配置(入れ替え)し、これを適当な回数繰り返したものを第1ブロックとする。第1ブロックの各列の重みは1であるので、列を入れ替えても列の重みは1のままである。
第2ブロック以降についても、第1ブロックと同様に乱数(他のブロックとは別の乱数)を用いて列の入れ替え処理を行い、非零要素の配置が各ブロックで異なるようにする。
以上の処理をX個のブロックについて行えば、列重みがXのパリティ検査行列が生成される。
さて、図17に戻る。図17の行演算処理部19A,19B及び列処理部20A,20Bは、列重みX=3の検査行列Hを前提としており、前述のように、それぞれ、3つのブロックに分割されている。
つまり、第1部分処理回路71の行演算処理部19Aは、第1部分検査行列HAの第1ブロック部分に含まれる非零要素についての演算を行う第1ブロック行演算処理部10A−1と、第1部分検査行列HAの第2ブロック部分に含まれる非零要素についての演算を行う第2ブロック行演算処理部19A−2と、第1部分検査行列HAの第3ブロック部分に含まれる非零要素についての演算を行う第3ブロック行演算処理部19A−3と、を備える。
なお、行処理部90Aの(λn+βmn)加算器30Aは、第1ブロック行演算処理部10A−1に対応する第1加算器30A−1と、第2ブロック行演算処理部19A−2に対応する第2加算器30A−2と、第3ブロック行演算処理部19A−3に対応する第3加算器30A−3と、を備える。
また、第2部分処理回路72の行演算処理部19Bは、第2部分検査行列HBの第1ブロック部分に含まれる非零要素についての演算を行う第1ブロック行演算処理部19B−1と、第2部分検査行列HBの第2ブロック部分に含まれる非零要素についての演算を行う第2ブロック行演算処理部19B−2と、第2部分検査行列HBの第3ブロック部分に含まれる非零要素についての演算を行う第3ブロック行演算処理部19B−3と、を備える。
なお、行処理部90Bの(λn+βmn)加算器30Bは、第1ブロック行演算処理部10B−1に対応する第1加算器30B−1と、第2ブロック行演算処理部19B−2に対応する第2加算器30B−2と、第3ブロック行演算処理部19B−3に対応する第3加算器30B−3と、を備える。
第1部分処理回路71の列演算処理部20Aは、第1部分検査行列HAの第1ブロック部分に含まれる非零要素についての演算を行う第1ブロック列演算処理部(加算器)20A−1と、第1部分検査行列HAの第2ブロック部分に含まれる非零要素についての演算を行う第2ブロック列演算処理部(加算器)20A−2と、第1部分検査行列HAの第3ブロック部分に含まれる非零要素についての演算を行う第3ブロック列演算処理部(加算器)20A−3とを備える。
第2部分処理回路72の列演算処理部20Bは、第2部分検査行列HBの第1ブロック部分に含まれる非零要素についての演算を行う第1ブロック列演算処理部(加算器)20B−1と、第2部分検査行列HBの第2ブロック部分に含まれる非零要素についての演算を行う第2ブロック列演算処理部(加算器)20B−2と、第2部分検査行列HBの第3ブロック部分に含まれる非零要素についての演算を行う第3ブロック列演算処理部(加算器)20B−3とを備える。
図19は、各第1〜第3ブロック行演算処理部から各第1〜第3ブロック列演算処理部への外部値対数比αmnの受け渡し方を示している。なお、図19は、両部分処理回路71,72について共通である。第1ブロック列演算処理部20A−1は第2及び第3ブロック行演算処理部19A−2,19A−3からαmnを取得し、第2ブロック列演算処理部20A−2は、第1及び第3ブロック行演算処理部19A−1,19A−3からαmnを取得し、第3ブロック列演算処理部20A−3は、第1及び第2ブロック行演算処理部19A−1,19A−2からαmnを取得する。
図20は、図17に示す行演算処理部19A,19Bが前提としている検査行列(列重み=3)Hを示している。
図20に示すように、検査行列Hの第1ブロックH1の各行についてみた場合、ある行に含まれる複数の非零要素は、2つの部分検査行列HA,HBのいずれか一方のみに偏在する。
したがって、第1部分検査行列HAの第1ブロックH1部分に対応する第1ブロック行演算処理部19A−1、及び第2部分検査行列HBの第1ブロックH1部分に対応する第1ブロック行演算処理部19B−1は、他方の行演算処理部19A−1,19B−1が保有する行処理演算情報(λn+βmn)を取得しなくとも、自己が保有する行処理演算情報(λn+βmn)だけでαmnを演算することができる。
これに対し、検査行列の第2ブロックH2及び第3ブロックH3では、同一行に含まれる複数の非零要素が2つの部分検査行列HA,HBに跨って存在する行が含まれている。
したがって、第1部分検査行列HAの第2ブロックH2部分に対応する第2ブロック行演算処理部19A−2、及び第2部分検査行列HBの第2ブロックH2部分に対応する第2ブロック行演算処理部19B−2は、他方の行演算処理部19A−2,19B−2が保有する行処理演算情報(λn+βmn)を取得しなければ、αmnを演算することができない。
このため、図17に示す、部分処理回路71,72は、それぞれ、情報交換部142A,142B,143A,143Bを有している。情報交換部は、部分処理回路71,72間に設けられた配線74(図4参照)を介して、他の部分処理回路71,72との間で、行処理演算情報(λn+βmn)をやり取りする。
図21は、前記情報交換部142A,142Bの一例を示している。なお、情報交換部143A,143Bについても図21と同様である。
情報交換部142A,142Bは、それぞれ、情報送信部142A−1,142B−1と、情報受信部(情報取得部;単に「取得部」ともいう)142A−2,142B−2とを有している。
図21の例では、情報交換部142A,142Bは、行処理の演算情報として、検査行列の非零要素に対応する(λn+βmn)のやり取りを行う。
ここで、第2ブロックのある行mに関し、第1部分処理回路71の保有する4つの(λn+βmn)を、X1,X2,X3,X4とし、第2部分処理回路72の保有する2つの(λn+βmn)を、X5,X6とする。
第1部分処理回路71の情報受信部(情報取得部142A−2)は、第2部分処理回路72の情報送信部142B−1から、X5,X6を取得する。
同様に、第2部分処理回路72の情報受信部(情報取得部142B−2)は、第1部分処理回路71の情報送信部142A−1から、X1〜X4を取得する。
したがって、各行演算処理部19A−2,19B−2は、それぞれ、X1〜X6の情報を有することになるため、それぞれが、対応する部分検査行列HA,HBの第2ブロック部分のm行に含まれる非零要素に対応するαmnについて演算することができる。
すなわち、各部分処理回路71,72の行演算処理部は、情報を交換することで、検査行列全体に従った行処理が可能なのである。
図22は、前記情報交換部142A,142Bの他の例を示している。図22の例では、個々の非零要素に対応する(λn+βmn)のやりとりをするのではなく、各部分処理回路71,72が保有する1又は複数の(λn+βmn)を用いて、各部分処理回路71,72それぞれが、所定の演算(行処理における部分的な演算)を行った上で、その演算結果(部分行処理演算結果)を、それぞれの部分処理回路71,72を代表する行処理演算情報として、他方の部分処理回路71,72に渡す。そして、当該他方の部分処理回路71,72は、その演算結果を受け取って、完全な行処理を行う。
より具体的には、図22の例は、sum-product復号法によって行処理を行う場合の情報交換の方法である。情報送信部142A−1,42B−1は、前記所定の演算(行処理における部分的な演算)を行うため、符号演算部142A−1−1,42B−1−1と、f関数の和の演算部142A−1−2,142B−1−2とを有している。
符号演算部142A−1−1,42B−1−1は、符号情報である(λn+βmn)=Xiの積を求める符号演算を行い、その演算結果として部分符号情報Asign,Bsignを求める。
部分符号情報Asign及びBsignの演算式は下記式(10)(11)の通りである。
Asign=Sign(X)Sign(X)Sign(X)Sign(X)…(10)
Bsign=Sign(X)Sign(X)…(11)
f関数の和の演算部142A−1−2,142B−1−2は、(λn+βmn)=Xiの絶対値(データ信頼度)を変数としてギャラガのf関数の値を求め、当該f関数値の和を求める演算を行い、その演算結果として、部分信頼度A,Bを求める。
部分信頼度A,Bの演算式は、下記式(12)(13)の通りである。
A=f(|X|)+f(|X|)+f(|X|)+f(|X|)…(12)
B=f(|X|)+f(|X|)…(13)
各部分処理回路71,72の情報受信部142A−2,142B−2は、Asing及びA又はBsign及びBを、他方の部分処理回路71,72側から受け取る。
したがって、各部分処理回路71,72は、Asign,Bsign,A,及びBの情報(行処理演算情報)を保有する。
そして、行演算処理部19A−2,19B−2は、下記式(14)に従って、αmi(i:1〜6)を求めることができる。
ami=Sign(Xi)×Asign×Bsign×f{A+B−f(|Xi|)} …(14)
図22の例では、行処理の部分的な演算を、個々の部分処理回路71,72において行ってから、その演算結果(f関数の和、符号)を他方の部分処理回路71,72に渡すため、図21の例に比べて、部分処理回路71,72をつなぐ配線74の本数が少なくて済む。
図23は、前記情報交換部142A,142Bの他の例を示している。図23の例においても、各部分処理回路71,72が保有する1又は複数の(λn+βmn)を用いて、各部分処理回路71,72それぞれが、所定の演算(行処理における部分的な演算)を行った上で、その演算結果(部分行処理演算結果)を、それぞれの部分処理回路71,72を代表する行処理演算情報として、他方の部分処理回路71,72に渡す。そして、当該他方の部分処理回路71,72は、その演算結果を受け取って、完全な行処理を行う。
より具体的には、図23の例は、min-sum復号法によって行処理を行う場合の情報交換の方法である。情報送信部142A−1,142B−1は、それぞれ、最小値演算部151と符号演算部152を有している。最小値演算部151は、与えられた2つの値のうち小さい方の値を出力するものである。また、符号演算部は、与えられた2つの符号情報sign(λn+βmn)の積を求めるものである。
Xi(i:1〜6)=(λn+βmn)が与えられたときに、図23に示すように最小値演算部151と符号演算部151が接続されている場合、min-sum復号法における部分符号情報Asign及びBsignは下記式(15)(16)の通り求まる。
Asign=Sign(X)Sign(X)Sign(X)Sign(X)…(15)
Bsign=Sign(X)Sign(X)…(16)
また、min-sum復号法における部分信頼度A,Bは、下記式(17)(18)の通り求まる。
A=min(|X|,|X|,|X|,|X|)…(17)
B=min(|X|,|X|)…(18)
各部分処理回路71,72の情報受信部142A−2,142B−2は、Asing及びA又はBsign及びBを、他方の部分処理回路71,72側から受け取る。
図23の例では、行演算処理部19A−2,19B−2も、最小値演算部151と符号演算部152を有しており、さらに、行演算処理部19A−2,19B−2は、最終演算部153も有している。
行演算処理部19A−2,19B−2に含まれる最小値演算部151は、図23のように接続されていることによって、
αm1を求めるための信頼度:min(X2,X3,X4,B)
αm2を求めるための信頼度:min(X1,X3,X4,B)
αm3を求めるための信頼度:min(X1,X2,X4,B)
αm4を求めるための信頼度:min(X1,X2,X3,B)
αm5を求めるための信頼度:min(A,X6)
αm6を求めるための信頼度:min(A,X5)
を算出することができる。
また、行演算処理部19A−2,19B−2に含まれる符号演算部152は、図23のように接続されていることによって、αm1を求めるための符号情報X1sign,αm2を求めるための符号情報X2sign,αm3を求めるための符号情報X3sign,αm4を求めるための符号情報X4sign,αm5を求めるための符号情報X5sign,αm6を求めるための符号情報X6signを求めることができる。
ここで、X1sign,X2sign,X3sign,X4sign,X5sign,X6signは、下記式(19)〜式(24)のとおりである。
X1sign=Sign(X2)・Sign(X3)・Sign(X4)・Bsign
…(19)
X2sign=Sign(X1)・Sign(X3)・Sign(X4)・Bsign
…(20)
X3sign=Sign(X1)・Sign(X2)・Sign(X4)・Bsign
…(21)
X4sign=Sign(X1)・Sign(X2)・Sign(X3)・Bsign
…(22)
X5sign=Asign・sign(X6) …(23)
X6sign=Asign・sign(X5) …(24)
なお、最終演算部153では、αmiを求めるための信頼度とαmiを求めるための符号情報との積を求めて、αmiを得る。
図23の例においても、図22の例と同様に、行処理の部分的な演算を、個々の部分処理回路71,72において行ってから、その演算結果(最小値、符号)を他方の部分処理回路71,72に渡すため、図21の例に比べて、部分処理回路71,72をつなぐ配線74の本数が少なくて済む。
ここで、一の部分処理回路から、他の部分処理回路へ渡す情報は、当該情報そのものではなく、当該情報の近似値や、当該情報の情報量を削減してビット数を少なくしたものであってもよい。このようにすることで、部分処理回路71,72間の配線の数を少なくすることができる。
例えば、部分信頼度A,Bである「最小値」は、最小値そのもの以外に、最小値を近似したものを含む。
また、一つの情報(最小値)が6bitで表される場合、当該情報は、0〜63の64種類の値をとることができるが、これを、例えば、0,1,2,4,8,16,32の7つの値に丸めて表現し、これら7つの値を示すインデックスで表現すれば、3bitあれば足りる。このように、部分信頼度A,Bである「最小値」は、最小値そのもの以外に、最小値の近似値のインデックスをも含む。
図24及び図25は、部分処理回路71,72間での情報の交換方法に関する2つの例を示している。
図24の例では、行演算処理部19Aの各行の行演算処理部単位で、行処理演算情報(λn+βmn等)のやり取りを行う。したがって、検査行列Hにおいて非零要素が2つの行に跨っている行の数に応じて、情報を交換するための配線数を用いることにすれば、他の行処理に影響されず、情報を高速にやり取りできる。
図25の例では、複数の行の行処理演算情報を、共通の配線(情報送信配線)74を介して、送信する。情報交換部142,143は、各行の行処理演算情報を、時分割多重、周波数分割多重、又は符号分割多重等によって多重化して送受信する。したがって、少ない配線で、情報のやりとりが行える。
なお、複数の行処理演算情報のやりとりを行う共通配線74は、1本である必要はなく、複数本であってもよく、この場合、配線数を抑えつつ、高速化も図ることができる。
また、一つの行について複数の行処理演算情報を送る必要がある場合には、当該複数の行処理演算情報を共通の配線74で送っても良い。
図25の情報交換部142、143は、制御部210A、210Bによって、送信する行処理演算情報の順序が制御される。行処理演算情報の送信順序は、単純に、1行目から昇順であってもよいが、次のように制御するのが好ましい。
すなわち、図26示すような検査行列Hを考えた場合、当該検査行列Hの1列目の非零要素は1,500,800行目に存在する。したがって、1列目の列処理は、これら3つの行の処理が完了すれば、直ちに実行可能となる。
ところが、行処理演算情報の送信順序が、1行目からの単純な昇順であると、800行分の行処理演算情報の送信が完了しなければ、800行目の行処理が完了しない。
したがって、列処理部100Aは、少なくとも1〜800行目までの行処理が完了するまで、1列目の列処理を実行開始することができない。この結果、実質的には、行処理がすべて完了しなければ、列処理を実行することができないことになり、行処理と列処理の並列処理が妨げられる。
そこで、制御部142は、1列目の列処理に必要な行についての行処理実行が優先して行われるように、1,500,800の順で、行処理演算情報を送信すれば、その後、直ちに1列目の列処理が可能になる。続いて、2列目の列処理に必要な行についての行処理演算情報を送信すれば、1列目の列処理の後に、2列目の列処理が行える。以降、同様に、行処理演算情報の送信順序を、列処理が実行される列の順序に応じて、必要な行の行処理演算情報から優先して順次送るように制御することで、行処理と列処理の並列処理が可能となる。
しかも、制御部142,143が上記のように制御すれば、各部分処理回路71,72の列処理部において同時に行われる加算が少なくなる(最も少ない場合で1つ)。この結果、列処理部100A,100Bの加算器の数を減少させて、回路構成を簡素化することができる。
[第2実施形態]
図27は、第2実施形態に係る処理部7を示している。なお、第2実施形態において説明を省略する点については、第1実施形態と同様である。
図27の第2実施形態では、行処理部90A,90B及び列処理部100A,100Bは、検査行列Hそのものに対応しているのではなく、検査行列Hの列同士を入れ替えた列入替検査行列H’に対応している。
つまり、図28(a)に示すように、検査行列Hの第1ブロックの3行目のように、非零要素が2つの部分検査行列H1,H2にまたがっている行の場合、当該非零要素を有する列と、当該行において零要素を有する列とを入れ替える。これによって、図28(b)に示すような列入替検査行列H’が生成できる。
図27の第1部分処理回路71の行処理部90A及び列処理部100Aは、前記列入替検査行列’を列方向に分割した部分検査行列HA’に対応する。また、第2部分処理回路72の行処理部90B及び列処理部100Bは、前記列入替検査行列H’を列方向に分割した部分検査行列HB’に対応する。
列を適切に入れ替えることで、非零要素が複数の部分検査行列HA’,HB’に跨る行が少なくなる。この結果、部分処理回路71,72間でやりとりする情報が少なくなり、部分処理回路71,72間の配線数を少なくすることができる。
なお、列を入れ替える場所は、何カ所であってもよい。また、まとめて入れ替えられる列の数は、複数列であってもよいし、1列であってもよい。
第2実施形態では、列入替検査行列H’を用いるため、複数の入力データλnの並びを、列入替検査行列H’と同様に入れ替えなければならない。このため、第2実施形態の処理部7は、複数の入力データλn同士の入れ替えを行うデータ入替部200を備えている。また、各部分処理回路71,72から出力されるデータも、本来のデータの並びとは異なっているため、入れ替えを元に戻す必要がある。このため、第2実施形態の処理部7は、複数の出力データ同士の入れ替えを行うデータ入替部201も備えている。
図29は、データ入替部200,201を用いずに、列入替検査行列H’を採用するための構成法を示している。
図29では、入力データλnを2つの部分処理回路71,72に振り分けて与えるのではなく、全入力データλnをそれぞれの部分処理回路71,72に与えるようにしている。そして、与えられた入力データのうち、各部分処理回路71,72が必要なものを使用し、必要ないものは使用しないことで、列入替検査行列H’の部分検査行列H1’,H2’がどのようなものであっても対応できる。
また、部分検査行列の大きさ(列数)が、各部分検査行列ごとに異なる場合、各部分処理回路71,72に与える入力データの数も異なり、入力データ用の配線数が部分処理71,72ごとに異なってしまい、汎用性に欠ける。これに対し、全入力データを、各部分処理回路71,72に与えることで、部分処理回路の大きさにかかわらず入力データ用の配線数を共通化でき、部分処理回路の汎用性が高まる。
なお、全入力データを各部分処理回路71,72に与える点については、入替検査行列H’を採用した場合に限らず、通常の検査行列を採用した場合についても適用できる。
全入力データを各部分処理回路71,72与えるための配線は、部分処理回路71,72外だけで行っても良いが、図29に示すように、各部分処理回路71,72のデータ入力部(入力端子)230A,230Bに入力された入力データλnを、そのまま出力するデータ出力部(出力端子)231A,231Bを設けておくのが好ましい。図29のように構成することで、一の部分処理回路71のデータ出力部231Aから出力した入力データλnを他の部分処理回路72の入力部230Bに入力できる。すなわち、入力データλnを部分処理回路71,72間で受け渡すことができ、配線配置が容易となる。
[第3実施形態]
図30は、第3実施形態を示している。なお、第3実施形態において説明を省略した点については、第1及び第2実施形態と同様である。
第3実施形態では、処理部が、行処理及び列処理を行う第1段処理部7−1と、第1段処理部において行処理及び列処理を実行した結果を受け取って更に行処理及び列処理を行う第2段処理部7−2とを有した、多段構成の処理部として構成されている。
第1段処理部7−1及び第2段処理部7−2は、それぞれ、複数の部分処理回路71,72,73によって構成されている。
第1段処理部7−1の部分処理回路71,72,73が行処理及び列処理を実行したそれぞれの結果は、前記第2段処理部に与えられる。
第3実施形態では、各処理部7−1,7−2における、行処理及び列処理の繰り返しがなく、図30に示すように、複数の処理部7を多段接続することで、行処理及び列処理を繰り返すのと等価な結果を得ている。なお、多段の処理部7の最終段に、符号を判定して推定符号語を生成する判定部を設けても良い。
第1段及び第2段処理部7−1,7−2の各部分処理回路71,72,73は、軟判定出力をするように構成されている。すなわち、図4のようにCnを出力するのではなく、行処理及び列処理の結果としてQnを出力する。そのため、図30の各部分処理回路71,72,73は、図4の部分処理回路71,72の判定部110A,110Bに代えて、Qnを推定する推定部130A,130B,130Cを有している。推定部130A,130Bは、αmn又はβmnと入力データλnとからQnを推定する。
なお、第1段処理部7−1は、行処理及び列処理の結果として、Qnに代えて、行処理αmn又はβmnと入力データλnとを第2段処理部7−2に与えてもよい。例えば、第1段処理部7−1が、βmnを第2段処理部7−2に与える場合、第2段処理部7−2では、与えられたβmnを初期値として行処理及び列処理を行うことができる。
また、処理部の段数は、2つに限られるものではなく、3以上の任意の段数としてもよい。また、部分処理回路で構成される処理部は、すべての段でなくてもよく、複数段の処理部の一部の段の処理部だけであってもよい。
[実施形態に係る分割方法と他の分割方法との比較]
図31は、上記実施形態における処理部の分割方法とは異なる分割方法を示している。
図31の分割方法では、行処理部と列処理部の間に分割ライン(点線)があることから明らかなように、図31の左側は行処理部を構成する部分処理回路(行処理部チップ)とし、図31の右側は列処理部を構成する部分処理回路(列処理チップ)としたものである。なお、図31では、行処理部及び列処理部は、検査行列の3つのブロック毎に描かれている。
さて、図31の分割方法の場合、左側の行処理部チップと右側の列処理部チップとの間で行き交う配線の数は、点線で示す分割ラインに交差する線の数にほぼ等しい。
図31の場合、3つの行処理部ブロックから3つの列処理部ブロックへ延びる計6本の線が分割ラインと交差する。したがって、行処理部チップと列処理部チップとの間で、6n(nは符号長)の線が必要となる。ここで、符号長n=6000、1符号あたり6本(6bit)必要であるとすると、216,000本もの膨大な数の配線が必要となる。
よって、図31の分割方法は、符号長が長くなった場合には、現実的ではない。
一方、本発明の実施形態である図4に示す分割方法の場合、符号長6000ビット、1符号あたり6本(6bit)、符号化率1/2とすると、検査行列の行数は3000となる。そして、少なくとも、検査行列Hの3つのブロックH1,H2,H3(図20参照)のうち、少なくとも1つのブロックH1は、行処理演算情報のやりとりを不要にできるため、行処理演算情報のやりとりが必要となる行は、最大、残りの2000行となる。ただし、検査行列は低密度であるため、少なくとも半分の行については、自然に、非零要素がいずれかの部分処理回路に偏る。よって、1000行について、行処理演算情報のやりとりが必要になる。
そして、部分処理回路間の双方向のやりとりを考慮すれば、1行あたり、2本必要となるため、2×6×1000=12,000本となる。このように、図31の例に比べて、1/18の配線数で済むことになる。
また、本発明においては、図32の分割方法も採用可能である。図32では、行処理部及び列処理部の第1ブロックα1と第2ブロックα2との間に分割ライン(点線)があることから明らかなように、行処理部及び列処理部をブロック単位で分割したものである。
つまり、検査行列を行方向に複数に分割して、ブロック単位で部分処理回路を構成したものである。
この場合、一つの行処理部ブロックには、n列分のn個の変数(α)があり、一つの行処理ブロックから出力されたn個のαを他の2つのブロックの列処理部に与えればよい。このため、符号長n=6000、1符号あたり6本(6bit)必要であるとすると、72,000本の配線でよく、図31の分割方法に比べると配線数を削減できる。
なお、検査行列を行方向に複数に分割する場合、ブロック単位で分割する必要はなく、任意の位置で分割することができる。
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。例えば、部分処理回路間で交換される行処理演算情報は、上記のものに限られず、採用される復号方式に応じた適切な行処理演算情報を交換すればよい。また、分割方法も、前記列方向へ複数に分割することや、行方向に複数に分割することに限られない。
また、部分処理回路間で交換される演算情報は、行処理演算情報に限らず、列処理演算情報であってもよい。すなわち、検査行列のある列の列処理を行うために、複数の部分処理間で列処理のための演算情報を交換する必要がある場合には、行処理演算情報と同様に、複数の部分処理回路間で列処理演算情報を交換すればよい。
通信システムの構成を概略的に示す図である。 送信データと復調データの対応の一例を示す図である。 復号化器の構成を概略的に示す図である。 部分処理回路に分割された処理部のハードウェア構成を示す図である。 処理部の機能ブロック図である。 検査行列の一例である。 図6に示す検査行列のタナーグラフである。 処理部における各記憶部を示す図であり、(a)はαmn記憶部、(b)はβmn記憶部、(c)はλn記憶部、(d)は、(λn+βmn)記憶部である。 (a)は行処理の概念を示す図であり、(b)は列処理の概念を示す図である。 図6の検査行列Hの第1行目についての行処理を示す図である。 図6の検査行列Hの第2行目についての行処理を示す図である。 図6の検査行列Hの第3行目についての行処理を示す図である。 図6の検査行列Hの第3列目についての列処理を示す図である。 図6の検査行列Hの第4列目についての列処理を示す図である。 処理部の分割方法を示す概念図である。 図6の検査行列Hに対応する第1部分検査行列HA及び第2部分検査行列である。 図4の行処理部及び列処理部の詳細を示す図である。 検査行列の生成方法の説明図である。 ブロック単位での行演算処理部から列演算処理部への値の受け渡し方を示す図である。 図18の生成方法で生成された検査行列H(列重み=3)の例である。 情報交換部の一例を示す図である。 情報交換部の他の例を示す図である。 情報交換部の他の例を示す図である。 情報交換部の他の例を示す図である。 情報交換部の他の例を示す図である。 検査行列の一例を示す図である。 第2実施形態に係る処理部を示す図である。 検査行列の列の入れ替えの説明図である。 入力データの与え方の説明図である。 第3実施形態に係る処理部を示す図である。 他の分割方法の説明図である。 実施形態に係る他の分割方法の説明図である。
符号の説明
4 復調器
5 復号化器
6 対数尤度比算出部
7 復号処理部(処理部)
19A 行演算処理部
19B 行演算処理部
20A 列演算処理部
20B 列演算処理部
71 部分処理回路
72 部分処理回路
74 配線(情報送信配線)
90A 行処理部
100A 列処理部
142A 情報交換部(取得部;送信部)
142B 情報交換部(取得部;送信部)
143A 情報交換部(取得部;送信部)
143B 情報交換部(取得部;送信部)
200 入替部
201 入替部
210A 制御部
220B 制御部

Claims (22)

  1. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素における処理の演算を行うために必要とされる演算情報のうち、他の部分処理回路が有する演算情報を、当該他の部分処理回路から取得するための取得部を備え、
    前記取得部は、
    事前値対数比及び入力データの対数尤度比、又は
    事前値対数比及び入力データの対数尤度比を用いた演算によって得られた値、
    を前記演算情報として、他の部分処理回路から取得することを特徴とするLDPC復号回路。
  2. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素における処理の演算を行うために必要とされる演算情報のうち、他の部分処理回路が有する演算情報を、当該他の部分処理回路から取得するための取得部を備え、
    前記取得部は、他の部分処理回路が行った部分演算結果を、前記演算情報として、当該他の部分処理回路から取得するよう構成され、
    前記部分演算結果は、行処理の演算又は列処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であり、
    前記部分的な演算は、部分検査行列の非零要素について入力データの部分符号情報を求める符号演算、及び、部分検査行列の非零要素について入力データの部分信頼度を求める演算であることを特徴とするLDPC復号回路。
  3. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素における処理の演算を行うために必要とされる演算情報のうち、他の部分処理回路が有する演算情報を、当該他の部分処理回路から取得するための取得部を備え、
    前記取得部は、他の部分処理回路が行った部分演算結果を、前記演算情報として、当該他の部分処理回路から取得するよう構成され、
    前記部分演算結果は、行処理の演算又は列処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であり、
    前記部分的な演算は、
    事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和の絶対値を変数とするギャラガのf関数値に関し、部分検査行列の非零要素に対応するギャラガのf関数値の和を求める演算、又は
    事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和の絶対値に関し、部分検査行列の非零要素に対応する前記絶対値の最小値を求める最小値演算、
    を含むことを特徴とするLDPC復号回路。
  4. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素における処理の演算を行うために必要とされる演算情報のうち、他の部分処理回路が有する演算情報を、当該他の部分処理回路から取得するための取得部を備え、
    前記取得部は、他の部分処理回路が行った部分演算結果を、前記演算情報として、当該他の部分処理回路から取得するよう構成され、
    前記部分演算結果は、行処理の演算又は列処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であり、
    前記部分的な演算は、
    事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和から求めた符号情報に関し、部分検査行列の非零要素に対応する符号情報の積を求める符号演算、
    を含むことを特徴とするLDPC復号回路。
  5. 前記情報取得部は、他の部分処理回路が対応する部分検査行列の非零要素それぞれに対応する演算情報を、当該他の部分処理回路から取得することを特徴とする請求項1〜4のいずれかに記載のLDPC復号回路。
  6. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分検査行列は、前記検査行列を列方向に複数に分割したものであり、
    前記複数の部分処理回路は、列同士が入れ替えられた検査行列を、列方向に複数に分割した複数の部分検査行列にそれぞれ対応するよう構成されていることを特徴とするLDPC復号回路。
  7. 複数の入力データが、列同士が入れ替えられた検査行列に対応するように、複数の入力データ同士の入れ替えを行うデータ入替部を備えていることを特徴とする請求項6記載のLDPC復号回路。
  8. 前記部分処理回路は、前記複数の入力データのうち、当該部分処理回路が対応する部分検査行列についての処理を行うために必要なデータを選択するように構成されていることを特徴とする請求項1〜7のいずれかに記載のLDPC復号回路。
  9. 前記部分処理回路は、複数の演算情報を、共通の情報送信配線を介して、他の部分処理回路へ送信するための情報送信部を備えていることを特徴とする請求項1〜8のいずれかに記載のLDPC復号回路。
  10. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記部分処理回路は、複数の演算情報を、共通の情報送信配線を介して、他の部分処理回路へ送信するための情報送信部を備え、
    前記情報送信部が送信する演算情報の順序を制御する制御部を備えていることを特徴とするLDPC復号回路。
  11. 前記制御部は、列処理が実行される列の順序に応じて、送信される行処理演算情報の順序を制御することを特徴とする請求項10記載のLDPC復号回路。
  12. 複数の入力データに対して、検査行列に基づく処理を行う処理部を備えたLDPC復号回路であって、
    前記処理部は、前記検査行列を複数に分割した複数の部分検査行列にそれぞれ対応する複数の部分処理回路によって構成され、
    それぞれの部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての処理を行うよう構成され、
    前記複数の部分処理回路は、行処理及び列処理を実行した結果から推定符号を判定する判定部をそれぞれ備え、
    前記判定部によって判定した推定符号がそれぞれの部分処理回路から出力されることを特徴とするLDPC復号回路。
  13. 前記部分検査行列は、前記検査行列を列方向に複数に分割したものであることを特徴とする請求項1〜12のいずれか1項に記載のLDPC復号回路。
  14. 前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての行処理を行うよう構成されていることを特徴とする請求項1〜13のいずれか1項に記載のLDPC復号回路。
  15. 前記部分処理回路は、当該部分処理回路が対応する部分検査行列の非零要素についての行処理を行うとともに、当該部分処理回路が対応する部分検査行列の非零要素についての列処理を行うよう構成されていることを特徴とする請求項1〜14のいずれかに記載のLDPC復号回路。
  16. 復号回路を構成する部分処理回路であるとともに、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、
    前記処理部が、当該部分処理回路が対応する部分検査行列の非零要素における行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成され、
    前記取得部は、
    事前値対数比及び入力データの対数尤度比、又は
    事前値対数比及び入力データの対数尤度比を用いた演算によって得られた値、
    を前記演算情報として、他の部分処理回路から取得する
    ことを特徴とする部分処理回路。
  17. 復号回路を構成する部分処理回路であるとともに、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、
    前記処理部が、当該部分処理回路が対応する部分検査行列の非零要素における行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成され、
    前記取得部は、他の部分処理回路が行った部分演算結果を、前記行処理演算情報として、当該他の部分処理回路から取得するよう構成され、
    前記部分演算結果は、行処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であり、
    前記部分的な演算は、部分検査行列の非零要素について入力データの部分符号情報を求める符号演算、及び、部分検査行列の非零要素について入力データの部分信頼度を求める演算である
    ことを特徴とする部分処理回路。
  18. 復号回路を構成する部分処理回路であるとともに、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、
    前記処理部が、当該部分処理回路が対応する部分検査行列の非零要素における行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成され、
    前記取得部は、他の部分処理回路が行った部分演算結果を、前記行処理演算情報として、当該他の部分処理回路から取得するよう構成され、
    前記部分演算結果は、行処理の演算における部分的な演算を前記他の部分処理回路が行った演算結果であり、
    前記部分的な演算は、
    事前値対数比と当該事前値対数比に対応する入力データの対数尤度比との和から求めた符号情報に関し、部分検査行列の非零要素に対応する符号情報の積を求める符号演算、
    を含むことを特徴とする部分処理回路。
  19. 復号回路を構成する部分処理回路であるとともに、列同士が入れ替えられた検査行列を列方向に複数に分割した部分検査行列のうちの一の部分検査行列に対応する部分処理回路であって、前記複数に分割した部分検査行列のうちの他の部分検査行列に対応する他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、
    前記処理部が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成されていることを特徴とする部分処理回路。
  20. 復号回路を構成する部分処理回路であるとともに、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部を備えた部分処理回路であって、
    前記処理部が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な複数の行処理演算情報を、共通の情報送信配線を介して、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成され、
    前記送信部が送信する演算情報の順序を制御する制御部を備えている
    ことを特徴とする部分処理回路。
  21. 復号回路を構成する部分処理回路であるとともに、他の部分処理回路と協調して、複数の入力データに対して行処理を行う行処理部及び列処理を行う列処理部を備えた部分処理回路であって、
    前記処理部が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路から取得する取得部と、
    他の部分処理回路が行処理の演算を行うために必要な行処理演算情報を、他の部分処理回路へ送信する送信部と、
    を備え、
    前記取得部及び送信部によって、前記行処理演算情報を他の部分処理回路との間で交換することにより、他の部分処理回路と協調して行処理を行うように構成され、
    さらに、行処理及び列処理を実行した結果から推定符号を判定する判定部を備え、前記判定部によって判定した推定符号が部分処理回路から出力される
    ことを特徴とする部分処理回路。
  22. 一つの半導体チップで構成されていることを特徴とする請求項17〜21のいずれか1項に記載の部分処理回路。
JP2007129575A 2007-05-15 2007-05-15 復号回路及び部分処理回路 Expired - Fee Related JP4760769B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007129575A JP4760769B2 (ja) 2007-05-15 2007-05-15 復号回路及び部分処理回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007129575A JP4760769B2 (ja) 2007-05-15 2007-05-15 復号回路及び部分処理回路

Publications (2)

Publication Number Publication Date
JP2008288710A JP2008288710A (ja) 2008-11-27
JP4760769B2 true JP4760769B2 (ja) 2011-08-31

Family

ID=40148051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007129575A Expired - Fee Related JP4760769B2 (ja) 2007-05-15 2007-05-15 復号回路及び部分処理回路

Country Status (1)

Country Link
JP (1) JP4760769B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861509B1 (ja) 2010-10-29 2012-01-25 株式会社東芝 符号化・復号化装置、データ記憶装置、及び方法
WO2013140727A1 (ja) * 2012-03-19 2013-09-26 パナソニック株式会社 復号装置
JP5869968B2 (ja) * 2012-06-04 2016-02-24 パナソニック株式会社 復号装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4282558B2 (ja) * 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
JP4492352B2 (ja) * 2005-01-05 2010-06-30 日本電気株式会社 復号装置及びその方法並びにプログラム
CN101248583B (zh) * 2005-07-13 2012-04-18 三菱电机株式会社 通信装置以及解码方法

Also Published As

Publication number Publication date
JP2008288710A (ja) 2008-11-27

Similar Documents

Publication Publication Date Title
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
CN100581064C (zh) 低密度奇偶校验码解码装置和方法
CN106685586B (zh) 生成用于在信道中传输的低密度奇偶校验码的方法及设备
JPWO2007108396A1 (ja) 通信装置、復号装置、情報伝送方法および復号方法
JP6078367B2 (ja) 送信装置及び受信装置
JP2006262002A (ja) 符号化方法、復号化方法および符号化システム
JP4760769B2 (ja) 復号回路及び部分処理回路
JPWO2019130475A1 (ja) 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR101077552B1 (ko) 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
CN114430278A (zh) 一种以太网的编码方法及装置
KR102059002B1 (ko) 무선 통신 시스템에서 ldpc 부호의 패리티 검사 행렬을 기반으로 부호화를 수행하는 방법 및 이를 이용한 단말
EP3547572A1 (en) A method for generating optical signal, and associated optical transmitter and optical receiver
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
CN111164897A (zh) 广义低密度奇偶校验码
JP4645645B2 (ja) 復号装置及び検査行列生成方法
JP5523064B2 (ja) 復号装置及び方法
JP2009038707A (ja) 復号器、受信装置、符号化データの復号方法及び通信システム
JP4618293B2 (ja) 復号装置及び検査行列生成方法
JP5385944B2 (ja) 復号器
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4985843B2 (ja) 復号装置
JP4341646B2 (ja) 復号装置
JP4766013B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4650485B2 (ja) 復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110418

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110523

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

Free format text: PAYMENT UNTIL: 20140617

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees