(57)【要約】【課題】復号に必要なメモリ量を削減する。【解決手段】実施形態に係るメモリシステムは、多次元の誤り訂正符号を記録する不揮発性メモリから読み出された読出し情報を復号して各シンボルの硬判定復号情報を出力する第１復号器と、軟判定入力値を用いて前記読出し情報に対する成分符号単位の軟判定復号を実行して各シンボルの軟判定復号情報を出力する第２復号器と、各シンボルの前記軟判定復号情報を保持する軟判定復号情報メモリと、前記読出し情報と、前記硬判定復号情報又は前記軟判定復号情報とを用いて、各シンボルの前記軟判定入力値を求める軟判定入力値特定部とを備え、前記軟判定入力値特定部は、前記読出し情報と前記硬判定復号情報とを用いて前記軟判定入力値の初期値を求め、前記軟判定復号の結果として得られた出力復号語が正しいと判断された場合、前記出力復号語を出力する。【選択図】図５
2019160014.tif 000002
【特許請求の範囲】
【請求項１】
符号を構成するシンボルのうち少なくとも１つのシンボルが少なくとも第１の成分符号と前記第１の成分符号とは異なる第２の成分符号とによって保護されている多次元の誤り訂正符号を記録する不揮発性メモリと、
前記不揮発性メモリに記録された前記多次元の誤り訂正符号を読出し情報として読み出すメモリインタフェースと、
前記読出し情報に対して復号を実行することで各シンボルの硬判定復号情報を出力する第１復号器と、
軟判定入力値を用いて前記読出し情報に対する成分符号単位の軟判定復号を実行することで各シンボルの軟判定復号情報を出力する第２復号器と、
前記第２復号器の出力する各シンボルの前記軟判定復号情報を保持する軟判定復号情報メモリと、
前記読出し情報と、前記硬判定復号情報又は前記軟判定復号情報とを用いて、各シンボルの前記軟判定入力値を求める軟判定入力値特定部と、
を備え、
前記軟判定入力値特定部は、前記読出し情報と前記硬判定復号情報とを用いて前記軟判定入力値の初期値を求め、
前記軟判定復号の結果として得られた出力復号語が正しいと判断された場合、前記出力復号語を出力する
メモリシステム。
【請求項２】
前記硬判定復号情報は、前記第１復号器が前記読出し情報に対して前記復号を実行することで得られた各シンボルの復号後硬判定値を含む請求項１に記載のメモリシステム。
【請求項３】
前記第１の成分符号及び前記第２の成分符号は、それぞれ線形符号であり、
前記硬判定復号情報は、前記復号後硬判定値から求まる成分符号ごとのシンドロームをさらに含む
請求項２に記載のメモリシステム。
【請求項４】
前記軟判定入力値特定部は、前記読出し情報及び前記復号後硬判定値に加え、前記成分符号ごとのシンドロームを用いて前記軟判定入力値の前記初期値を求める請求項３に記載のメモリシステム。
【請求項５】
前記軟判定入力値特定部は、前記第１復号器による前記復号の前後でシンボルの硬判定値が一致しているか否かに基づいて前記初期値を変える請求項１に記載のメモリシステム。
【請求項６】
前記軟判定入力値特定部は、前記硬判定復号情報から求まる成分符号ごとのシンドロームが０でない成分符号に属するシンボルの前記軟判定入力値を、前記読出し情報と等しく設定する
請求項１に記載のメモリシステム。
【請求項７】
前記多次元の誤り訂正符号は、少なくとも１つの行方向の成分符号と、少なくとも１つの列方向の成分符号とを含み、
前記軟判定入力値特定部は、ｉ行目の成分符号の前記硬判定復号情報に対するシンドロームをＳ1,i、ｊ列目の成分符号の前記硬判定復号情報に対するシンドロームをＳ2,j、ｉ行目ｊ列目の硬判定復号情報のビット値をｄij、ｉ行目ｊ列目の復号前硬判定値のビット値をｂij、及び、Ｘ及びＹをパラメータとして与えられる正の実数とした場合、以下の式（１）を用いて行方向の前記初期値を計算し、以下の式（２）を用いて列方向の前記初期値を計算する
【数１】
2019160014.tif 000006
【数２】
2019160014.tif 000007
請求項１に記載のメモリシステム。
【請求項８】
前記Ｙは、前記Ｘ以上の正の実数である請求項７に記載のメモリシステム。
【請求項９】
前記軟判定入力値特定部は、前記読出し情報及び前記硬判定復号情報の組合せと前記初期値との対応関係を保持するテーブルを用いて前記初期値を特定する請求項１に記載のメモリシステム。
【請求項１０】
前記第２復号器は、前記軟判定復号の結果として外部値を出力し、
前記軟判定復号情報メモリは、前記第２復号器から出力された前記外部値で前記保持している軟判定復号情報を更新する
請求項１に記載のメモリシステム。
【請求項１１】
前記第２復号器は、最尤復号語を含む外部値の計算に必要な情報を出力し、
前記軟判定復号情報メモリは、前記第２復号器から出力された前記外部値の計算に必要な情報で前記保持している軟判定復号情報を更新する
請求項１に記載のメモリシステム。
【請求項１２】
前記読出し情報を保持する読出し情報メモリをさらに備え、
前記軟判定復号情報メモリは、前記第１の成分符号の第１復号語と、前記第２の成分符号の第２復号語とを前記軟判定復号情報として保持し、
前記軟判定入力値特定部は、
前記軟判定復号情報メモリに保持されている前記第２復号語と前記読出し情報メモリに保持されている前記第２の成分符号に関する読出し情報とを用いて前記第１の成分符号の軟判定入力値を計算する第１軟判定入力値計算部と、
前記軟判定復号情報メモリに保持されている前記第１復号語と前記読出し情報メモリに保持されている前記第１の成分符号に関する読出し情報とを用いて前記第２の成分符号の軟判定入力値を計算する第２軟判定入力値計算部と、
を含み、
前記第２復号器は、
前記第１の成分符号の軟判定入力値を前記第１の成分符号について復号することで前記第１の成分符号の新たな第１復号語を計算し、計算した前記新たな第１復号語で前記軟判定復号情報メモリ内の前記第１復号語を更新する第１軟判定復号器と、
前記第２の成分符号の軟判定入力値を前記第２の成分符号について復号することで前記第２の成分符号の新たな第２復号語を計算し、計算した前記新たな第２復号語で前記軟判定復号情報メモリ内の前記第２復号語を更新する第２軟判定復号器と、
を含み、
第１軟判定入力値計算部は、前記読出し情報と前記第２の成分符号の前記硬判定復号情報とを用いて前記第１の成分符号の前記軟判定入力値の初期値を求め、
第２軟判定入力値計算部は、前記読出し情報と前記第１の成分符号の前記硬判定復号情報とを用いて前記第２の成分符号の前記軟判定入力値の初期値を求める
請求項１に記載のメモリシステム。
【請求項１３】
前記第２復号器は、前記成分符号単位の前記軟判定復号を復号に成功するまで繰り返し実行し、前記軟判定復号の繰返し回数が所定回数に達した場合、前記軟判定復号に失敗したと判定する請求項１に記載のメモリシステム。
【請求項１４】
前記メモリインタフェースは、前記多次元の誤り訂正符号を硬判定値又は軟判定値の前記読出し情報として読み出し、
前記第１復号器は、硬判定値又は軟判定値を入力して前記硬判定復号情報を出力し、
前記第２復号器は、軟判定値を入力して軟判定値を出力する
請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は、一般的に、メモリシステムに関する。
【背景技術】
【０００２】
メモリシステムでは、一般に、記憶するデータを保護するために、誤り訂正符号化されたデータが記憶される。このため、メモリシステムに記憶されたデータを読み出す際には、誤り訂正符号化されたデータに対する復号が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−８０４５０号公報
【特許文献２】特許第５０３９１６０号公報
【特許文献３】特許第５５４０９６９号公報
【特許文献４】特許第５０６８５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、復号に要する時間を短縮することが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、メモリシステムは、符号を構成するシンボルのうち少なくとも１つのシンボルが少なくとも第１の成分符号と前記第１の成分符号とは異なる第２の成分符号とによって保護されている多次元の誤り訂正符号を記録する不揮発性メモリと、前記不揮発性メモリに記録された前記多次元の誤り訂正符号を読出し情報として読み出すメモリインタフェースと、前記読出し情報に対して復号を実行することで各シンボルの硬判定復号情報を出力する第１復号器と、軟判定入力値を用いて前記読出し情報に対する成分符号単位の軟判定復号を実行することで各シンボルの軟判定復号情報を出力する第２復号器と、前記第２復号器の出力する各シンボルの前記軟判定復号情報を保持する軟判定復号情報メモリと、前記読出し情報と、前記硬判定復号情報又は前記軟判定復号情報とを用いて、各シンボルの前記軟判定入力値を求める軟判定入力値特定部と、を備え、前記軟判定入力値特定部は、前記読出し情報と前記硬判定復号情報とを用いて前記軟判定入力値の初期値を求め、前記軟判定復号の結果として得られた出力復号語が正しいと判断された場合、前記出力復号語を出力する。
【図面の簡単な説明】
【０００６】
【図１】図１は、データを誤り訂正符号で保護する動作の一般的な流れを説明するための図である。
【図２】図２は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
【図３】図３は、第１の実施形態に係る復号器の概略構成例を示すブロック図である。
【図４】図４は、第１の実施形態に係る多次元の誤り訂正符号の一例を示す図である。
【図５】図５は、第１の実施形態に係るＳＩＳＯ復号器の一例を示すブロック図である。
【図６】図６は、図５に示すＳＩＳＯ復号器が実行するターボ復号動作の一例を示すフローチャートである。
【図７】図７は、第１の実施形態に係る復号器の動作を説明するための図である。
【図８】図８は、第１の実施形態に係る全体的な復号動作の一例を示すフローチャートである。
【図９】図９は、第１の実施形態に係るＨＩＨＯ復号の入出力情報の一例を示す図である。
【図１０】図１０は、図９（ｂ）に示す復号後硬判定値から計算されたシンドロームを示す図である。
【図１１】図１１は、図９（ａ）に示す復号前硬判定値と、図９（ｂ）に示す復号後硬判定値と、図１０に示すＨＩＨＯ復号後の成分符号から計算されたシンドロームから計算された次元１外部値の初期値の一例を示す図である。
【図１２】図１２は、同じく図９（ａ）に示す復号前硬判定値と、図９（ｂ）に示す復号後硬判定値と、図１０に示すＨＩＨＯ復号後の成分符号から計算されたシンドロームから計算された次元２外部値の初期値の一例を示す図である。
【図１３】図１３は、第２の実施形態に係るＳＩＳＯ復号器の概略構成例を示すブロック図である。
【図１４】図１４は、図１３に示すＳＩＳＯ復号器が実行するターボ復号動作の一例を示すフローチャートである。
【図１５】図１５は、第２の実施形態に係る成分符号ＳＩＳＯ復号器の概略構成例を示すブロック図である。
【図１６】図１６は、第２の実施形態に係る次元１軟判定入力値計算部の動作フローの一例を示すフローチャートである。
【図１７】図１７は、第３の実施形態に係る次元１軟判定入力値計算部の動作フローの一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態に係るメモリシステムを詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
【０００８】
近年、ＮＡＮＤ型フラッシュメモリなどの不揮発性メモリを利用したメモリシステムは、その高速性という特長を生かし、様々な場所で用いられている。しかしながら、不揮発性メモリから読み出したデータには、不揮発性メモリに記録されてからの時間経過や読み出し・書き込みの際に生じるノイズ等に起因するエラーが含まれる可能性がある。そのため、一般には、不揮発性メモリに記録するデータに対して誤り訂正符号を用いた符号化処理が実行され、読出し時にはその誤り訂正符号を用いた復号処理が実行されることで、読み出したデータに含まれているエラーが除去される。
【０００９】
図１は、データを誤り訂正符号で保護する動作の一般的な流れを説明するための図である。なお、本説明におけるユーザとは、例えばパーソナルコンピュータ、サーバ装置、ポータブルな情報機器、デジタルスチルカメラ等の情報処理装置であってよい。
【００１０】
ユーザ９３１は、書込み対象のデータ（以下、ユーザデータという）をメモリシステム９００に対して送信する。メモリシステム９００は、ユーザ９３１から受け取ったユーザデータを符号化器９１７で符号化し、これにより生成された符号化データ（符号語）を不揮発性メモリ９２０に書き込む。したがって、不揮発性メモリ９２０に書き込まれる符号化データには、基本的にはエラーが含まれていない。
【００１１】
不揮発性メモリ９２０に格納されている符号化データは、例えばユーザ９３２からの読出し要求に応じて読み出される。ただし、読み出された符号化データにはエラーが含まれている可能性がある。そこで、読み出された符号化データに含まれるエラーを復号器９１８で除去しつつ復号を実行することで、オリジナルの符号化データが復元される。その後、オリジナルの符号化データもしくは復元された符号化前のユーザデータがユーザ９３２へ送信される。なお、読出し要求を発行したユーザ９３２は、書込み要求を発行したユーザ９３１と同一のユーザであってもよいし、別のユーザであってもよい。
【００１２】
ここで、符号化器９１７がユーザデータを‘０’又は‘１’で表現された二値情報（ビット）から構成される符号化データに符号化し、その符号化データが二値情報として不揮発性メモリ９２０に記録された場合を想定する。なお、本説明及び後述する説明において、不揮発性メモリからのデータ読出しの際に、記録されたデータを‘０’であるか‘１’であるかを示す二値情報として読み出して復号器に入力する場合、その入力情報を硬判定入力（Hard-Input）と称する。それに対し、記録されたデータを‘０’であった確率又は‘１’であった確率の情報として読み出して復号器に入力する場合、その確率情報を軟判定入力（Soft-Input）と称する。また、復号器が出力する復号結果が、オリジナルのユーザデータが‘０’であったか‘１’であったかの二値情報から構成されている場合、その出力情報を硬判定出力（Hard-Output）と称する。それに対し、復号器が出力する復号結果にオリジナルのユーザデータの各ビット値（又はシンボル値）が‘０’であったか‘１’であったかの確率情報が含まれる場合、その出力情報を軟判定出力（Soft-Output）と称する。
【００１３】
復号器９１８への入力として軟判定入力を用いたＳＩＳＯ（Soft-Input Soft-Output）復号は、硬判定入力を用いたＨＩＨＯ（Hard-Input Hard-Output）復号と比較して、より多くの情報を用いた復号が可能となる。そのため、読み出された符号化データにエラーが多く含まれる場合には、ＳＩＳＯ復号の方が、ＨＩＨＯ復号よりも、正しいユーザデータを復号できる確率を高めることができる。
【００１４】
軟判定入力値および軟判定出力値としては、不揮発性メモリ９２０に書き込まれた符号化データが例えば情報を‘０’か‘１’かのビットで表現する二元符号（Binary Code）である場合、しばしばビットが‘０’である確率と‘１’である確率との比の自然対数である対数尤度比（Log-Likelihood-Ratio：ＬＬＲ）表現が用いられる。ＬＬＲが負（−）の値である場合、元々の書込み値は‘１’であったと推定される。一方、ＬＬＲが正（＋）の値である場合、元々の書込み値は‘０’であったと推定される。また、ＬＬＲの絶対値の大きさは、元々の書込み値がＬＬＲの正負の符号で推定される値である可能性と関係している。例えば、ＬＬＲが‘＋９’である場合、ＬＬＲが‘＋１’である場合と比較して、元々の書込み値が‘０’であった可能性が高い。同様に、ＬＬＲが‘−９’である場合、ＬＬＲが‘−１’である場合と比較して、元々の書込み値が‘１’であった可能性が高い。
【００１５】
また、二元符号の符号化データは、ビット値のベクトルとして表現できる。そのため、二元符号の軟判定入力値および軟判定出力値は、ＬＬＲ（実数値）のベクトルとして表現することができる。以降の実施形態では、説明の簡略化のため、軟判定入力値および軟判定出力値の確率情報がＬＬＲのベクトルとして表現されている場合を例示するが、このような場合に限定されず、種々変形することが可能である。
【００１６】
（第１の実施形態）
図２は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。図２に示すように、メモリシステム１は、メモリコントローラ１０と不揮発性メモリ２０とを備える。メモリシステム１は、ホスト３０と接続可能であり、図２ではホスト３０と接続された状態が示されている。ホスト３０は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【００１７】
不揮発性メモリ２０は、データを不揮発に記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリ（以下、単にＮＡＮＤメモリという）である。以下の説明では、不揮発性メモリ２０としてＮＡＮＤメモリが用いられた場合を例示するが、不揮発性メモリ２０として３次元構造フラッシュメモリ、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等のＮＡＮＤメモリ以外の記憶装置を用いることも可能である。また、不揮発性メモリ２０が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【００１８】
メモリシステム１は、メモリコントローラ１０と不揮発性メモリ２０とが１つのパッケージとして構成されるメモリカード等であってもよいし、ＳＳＤ（Solid State Drive）等であってもよい。
【００１９】
メモリコントローラ１０は、例えばＳｏＣ（System-On-a-Chip）として構成される半導体集積回路である。以下で説明するメモリコントローラ１０の各構成要素の動作の一部又は全部は、ＣＰＵ（Central Processing Unit）がファームウエアを実行することによって実現されてもよいし、ハードウエアで実現されてもよい。
【００２０】
メモリコントローラ１０は、ホスト３０からの書込み要求に従って不揮発性メモリ２０への書込みを制御する。また、ホスト３０からの読出し要求に従って不揮発性メモリ２０からの読み出しを制御する。メモリコントローラ１０は、ホストＩ／Ｆ（ホストインタフェース）１５、メモリＩ／Ｆ（メモリインタフェース）１３、制御部１１、符号化／復号部（コーデック）１４およびデータバッファ１２を備える。ホストＩ／Ｆ１５、メモリＩ／Ｆ１３、制御部１１、符号化／復号部１４およびデータバッファ１２は、内部バス１６で相互に接続されている。
【００２１】
ホストＩ／Ｆ１５は、ホスト３０との間のインタフェース規格に従った処理を実施し、ホスト３０から受信した要求、書込み対象のユーザデータなどを内部バス１６に出力する。また、ホストＩ／Ｆ１５は、不揮発性メモリ２０から読み出されて復元されたユーザデータ、制御部１１からの応答などをホスト３０へ送信する。
【００２２】
メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０への書込み処理を行う。また、メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０からの読み出し処理を行う。
【００２３】
制御部１１は、メモリシステム１の各構成要素を統括的に制御する。制御部１１は、ホスト３０からの要求をホストＩ／Ｆ１５経由で受け付けた場合に、その要求に応じた制御を行う。例えば、制御部１１は、ホスト３０からの書込み要求に応じて、不揮発性メモリ２０へのユーザデータおよびパリティの書き込みをメモリＩ／Ｆ１３へ指示する。また、制御部１１は、ホスト３０からの読出し要求に応じて、不揮発性メモリ２０からのユーザデータおよびパリティの読み出しをメモリＩ／Ｆ１３へ指示する。
【００２４】
また、制御部１１は、ホスト３０から書込み要求を受信した場合、データバッファ１２に蓄積されるユーザデータに対して、不揮発性メモリ２０上の格納領域（メモリ領域）を決定する。すなわち、制御部１１は、ユーザデータの書込み先を管理する。ホスト３０から受信したユーザデータの論理アドレスと該ユーザデータが格納された不揮発性メモリ２０上の格納領域を示す物理アドレスとの対応はアドレス変換テーブルとして格納される。
【００２５】
また、制御部１１は、ホスト３０から読出し要求を受信した場合、読出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリＩ／Ｆ１３へ指示する。
【００２６】
ここで、ＮＡＮＤメモリでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルがシングルレベルセル（ＳＬＣ）である場合は、１つのメモリセルグループが１ページに対応する。メモリセルがマルチレベルセル（ＭＬＣ）である場合は、１つのメモリセルグループが複数ページに対応する。また、各メモリセルはワード線に接続するとともにビット線にも接続される。したがって、各メモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
【００２７】
データバッファ１２は、メモリコントローラ１０がホスト３０から受信したユーザデータを不揮発性メモリ２０へ記憶するまでに一時格納する。また、データバッファ１２は、不揮発性メモリ２０から読み出したユーザデータをホスト３０へ送信するまでに一時格納する。データバッファ１２には、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの汎用メモリを用いることができる。
【００２８】
ホスト３０から送信されるユーザデータは、内部バス１６に転送されてデータバッファ１２に一旦格納される。符号化／復号部１４は、不揮発性メモリ２０に格納されるユーザデータを符号化して符号化データ（符号語）を生成する。また、符号化／復号部１４は、不揮発性メモリ２０から読み出された符号化データ（読出し情報又は受信語ともいう）を復号してユーザデータを復元する。そこで符号化／復号部１４は、符号化器（Encoder）１７と復号器（Decoder）１８を備える。なお、符号化／復号部１４により符号化されるデータには、ユーザデータ以外にも、メモリコントローラ１０内部で用いる制御データ等が含まれてもよい。
【００２９】
以上のような構成を備えるメモリシステム１における書込み処理では、制御部１１は、不揮発性メモリ２０への書込み時に、ユーザデータの符号化を符号化器１７に指示する。その際、制御部１１は、不揮発性メモリ２０における符号語の格納場所（格納アドレス）を決定し、決定した格納場所もメモリＩ／Ｆ１３へ指示する。符号化器１７は、制御部１１からの指示に基づいて、データバッファ１２上のユーザデータを符号化して符号語を生成する。符号化方式としては、例えば、ＬＤＰＣ（Low-Density Parity-Check）符号やＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号やＲＳ（Reed-Solomon）符号を用いた符号化方式を採用することができる。
【００３０】
一方、読出し処理では、制御部１１は、不揮発性メモリ２０からの読出し時に、不揮発性メモリ２０上のアドレスを指定してメモリＩ／Ｆ１３へ読み出しを指示する。また、制御部１１は、復号器１８へ復号の開始を指示する。メモリＩ／Ｆ１３は、制御部１１の指示に従って、不揮発性メモリ２０の指定されたアドレスに対する読み出しを実行し、この読み出しにより得られた読出し情報を復号器１８に入力する。そして、復号器１８は、入力された読出し情報を復号する。
【００３１】
ここで、上述したように、復号器１８への入力として軟判定入力を用いたＳＩＳＯ復号は、硬判定入力を用いたＨＩＨＯ復号と比較して、正しいユーザデータを復号できる確率を高めることができる。ただし、一般に、ＳＩＳＯ復号は、ＨＩＨＯ復号より誤り訂正能力は高いが処理時間が長いという特徴を持つ。そこで本実施形態では、図３に示すように、復号器１８が、硬判定値を入力として復号を実行し、その結果として硬判定値を出力するＨＩＨＯ復号器１８１と、軟判定値を入力として復号を実行し、その結果として軟判定値を出力するＳＩＳＯ復号器１８２とを備える。復号器１８では、まず、ＨＩＨＯ復号器１８１が、不揮発性メモリ２０から硬判定値として読み出された受信語をＨＩＨＯ復号する。このＨＩＨＯ復号に失敗した場合、不揮発性メモリ２０から軟判定値の受信語が読み出される。そして、ＳＩＳＯ復号器１８２が、軟判定値として読み出された受信語をＳＩＳＯ復号する。ただし、このような構成に限られず、ＨＩＨＯ復号を省略して全ての受信語にＳＩＳＯ復号を実行する構成など、種々変形することが可能である。また、ＢＣＨ符号やＲＳ符号等にＨＩＨＯ復号が適用され、ＬＤＰＣ等にＳＩＳＯ復号が適用されてもよいが、これらに限定されるものではない。
【００３２】
ＳＩＳＯ復号器１８２は、例えば、多次元の誤り訂正符号の成分符号復号器として用いることもできる。多次元の誤り訂正符号とは、誤り訂正符号の少なくとも一つ以上の構成単位であるシンボルが、複数のより小規模な成分符号によって多重に保護されているものを指す。その際、１シンボルは、例えば１ビット（二元体（binary field）の元（element））、又は、二元体以外の有限体（finite field）などのアルファベットの元で構成される。
【００３３】
ここで、多次元の誤り訂正符号の例として、図４に積符号を示す。図４に示す積符号５００は、構成単位である各情報ビット（シンボルであってもよい）ｄ０〜ｄ３が、行方向（図面中横方向）と列方向（図面中縦方向）とのそれぞれで、情報長２ビットで且つパリティ長３ビットのハミング符号５１１〜５１５及び５２１〜５２５で保護された構造を備える。このような積符号５００では、全ての情報ビットｄ０〜ｄ３およびパリティビットｐ０〜ｐ２０が行方向（次元１とも称する）のハミング符号と列方向（次元２とも称する）のハミング符号とで２重に保護されている。
【００３４】
なお、多次元の誤り訂正符号としては、図４に例示する積符号５００に限定されず、例えば一般化ＬＤＰＣ符号（Generalized Low Density Parity Check Code）などであってもよい。一般化ＬＤＰＣ符号を含む一般の多次元の誤り訂正符号では、シンボルごとに保護の多重度が異なっていてもよい。また、一般の多次元の誤り訂正符号では成分符号を次元１と次元２のようにグループ分けすることができないが、このような符号構造を有する多次元の誤り訂正符号に対しても本技術は適用することが可能である。
【００３５】
また、上述のような多次元の誤り訂正符号に対しては、ターボ復号を行うことができる。図５は、二次元の誤り訂正符号に対してターボ復号を実行するＳＩＳＯ復号器の一例を示すブロック図である。また、図６は、図５に示すＳＩＳＯ復号器が実行するターボ復号動作の一例を示すフローチャートである。
【００３６】
図５に示すように、二次元の誤り訂正符号に対してターボ復号を実行するＳＩＳＯ復号器１８２は、次元１加算器（軟判定入力値特定部）１１１と、次元１ＳＩＳＯ復号器１１２と、次元１外部値メモリ１１３と、次元２加算器（軟判定入力値特定部）１２１と、次元２ＳＩＳＯ復号器１２２と、次元２外部値メモリ１２３とを備える。また、ＳＩＳＯ復号器１８２の入力段には、メモリＩ／Ｆ１３によって不揮発性メモリ２０から読み出された読出し情報（受信語）を保持する読出し情報メモリ１０１が設けられている。
【００３７】
このようなＳＩＳＯ復号器１８２が実行するターボ復号動作では、図６に示すように、読出し情報メモリ１０１内の読出し情報と、次元２外部値メモリ１２３内の次元２外部値（次元２軟判定復号情報ともいう）とが次元１加算器１１１により加算され、これにより、次元１軟判定入力値（＝読出し情報＋次元２外部値）が計算される（ステップＳ１２１）。
【００３８】
つづいて、次元１加算器１１１で計算された次元１軟判定入力値が、成分符号ごとに次元１ＳＩＳＯ復号器１１２に入力される。次元１ＳＩＳＯ復号器１１２は、入力された次元１軟判定入力値に対して次元１の軟判定復号を実行することで、次元１外部値（次元１軟判定復号情報ともいう）を計算する（ステップＳ１２２）。計算された次元１外部値は、次元１外部値メモリ１１３へ転送されて保持される（ステップＳ１２３）。
【００３９】
つぎに、読出し情報メモリ１０１内の読出し情報と、次元１外部値メモリ１１３内の次元１外部値とが次元２加算器１２１により加算され、これにより、次元２軟判定入力値（＝読出し情報＋次元１外部値）が計算される（ステップＳ１２４）。
【００４０】
つづいて、次元２加算器１２１で計算された次元２軟判定入力値が、成分符号ごとに次元２ＳＩＳＯ復号器１２２に入力される。次元２ＳＩＳＯ復号器１２２は、入力された次元２軟判定入力値に対して次元２の軟判定復号を実行することで、次元２外部値を計算する（ステップＳ１２５）。計算された次元２外部値は、次元２外部値メモリ１２３へ転送されて保持される（ステップＳ１２６）。
【００４１】
つぎに、復号に成功したか否かが判定される（ステップＳ１２７）。復号に成功したとは、例えば正しいと判断できる復号語が発見されたことなどであってよい。復号に成功した場合（ステップＳ１２７のＹＥＳ）、例えば、外部の制御部１１等に復号の成功とともに発見された復号語が通知される。一方、復号に成功していない場合（ステップＳ１２７のＮＯ）、本動作の反復回数が予め設定しておいた規定値に達しているか否かが判定され（ステップＳ１２８）、規定値に達していない場合（ステップＳ１２８のＮＯ）、ステップＳ１２１へリターンして、以降の動作が実行される。一方、規定値に達していた場合（ステップＳ１２８のＹＥＳ）、例えば、外部の制御部１１等に復号の失敗が通知される。なお、反復回数とは、例えば図６のステップＳ１２１〜Ｓ１２６の動作を繰り返した回数等であってよい。
【００４２】
なお、図５に示す構成における次元１ＳＩＳＯ復号器１１２及び次元２ＳＩＳＯ復号器１２２には、例えば、外部値を計算する復号アルゴリズムが採用されたMax-log-MAP（Maximum A Posteriori）復号器を用いることができる。Max-log-MAP復号器は、MAP復号語及び各ビットの対抗復号語から、ビットごとの事後確率値を計算する復号器である。なお、説明の簡略化のため、以降では、事後確率に比例する量（quantity）およびその近似値のことも事後確率と呼ぶこととする。例えば、全ての符号語の事前確率が等しいと仮定した場合、復号語の尤度は、復号語の事後確率値に比例する量となっている。
【００４３】
ここで、MAP復号語ｃ＊とは、全ての符号語ｃ∈Ｃの内で、軟判定入力値Ｓから計算された事後確率Ｐが最も高い符号語ｃ＊＝ａｒｇｍａｘｃＰ（ｃ｜Ｓ）を指す。また、ｉ番目のビットの対抗復号語とは、全ての符号語ｃ∈Ｃの内で、ｉ番目のビットでMAP復号語ｃ＊と異なる値を持つ符号語のうち、最も軟判定入力値Ｓから計算された事後確率Ｐの高い符号語ｃｐ，ｉ＝ａｒｇｍａｘｃＰ（ｃ｜Ｓ，ｃｉ≠ｃ＊ｉ）を指す。従って、Max-log-MAP復号器において復号の途中で算出される中間の硬判定値には、MAP復号語ｃ＊及び全ての対抗符号語ｃｐ，ｉが含まれる。
【００４４】
なお、全ての符号語の集合Ｃの代わりに、事後確率が比較的高い符号語の集合Ｃ’⊂Ｃが用いられてもよい。その場合、近似的なMAP復号語およびｉ番目のビットの近似的な対抗復号語が求められる。このような符号語の部分集合Ｃ’を用いたMax-log-MAP復号は、全ての符号語の集合Ｃを用いたMax-log-MAP復号と比べて訂正能力が劣るものの、計算量が削減されるため、高速に復号を行うことができるという特徴を備える。説明の簡略化のため、以降では、近似的なMAP復号語を用いている場合も含めて、MAP復号語と呼称する。
【００４５】
符号語の部分集合Ｃ’を用いたMax-log-MAP復号では、ｉ番目のビットの対数事後確率比Ｒが、MAP復号語ｃ＊と対抗復号語ｃｐ，ｉの事後確率比とから、以下の式（１）を用いて近似的に計算される。
【数１】
2019160014.tif 000003
【００４６】
各次元の外部値は、式（１）で求められた対数事後確率比Ｒから各次元の軟判定入力値Ｓｉを引くことで求めることができる。なお、本説明では、復号の途中で算出される中間の硬判定値から外部値を計算する復号アルゴリズムの例としてMax-log-MAP復号を挙げたが、それ以外にも種々の復号アルゴリズムを用いることができる。
【００４７】
また、ＳＩＳＯ復号器１８２が出力し、次元１外部値メモリ１１３及び次元２外部値メモリ１２３に記録される値には、次元１外部値及び次元２外部値そのものの代わりに、それぞれの外部値の計算に必要な情報、例えば最尤復号語及びその尤度情報などを用いることも可能である。なお、最尤復号語とは、発見された復号語のうち最も尤もらしい復号語を指す。その場合、図６のステップＳ１２１では、次元２外部値メモリ１２３から読み出された情報（最尤復号語及びその尤度情報等）から次元１外部値が計算され、この計算された次元１外部値と読出し情報とを加算することで、次元１軟判定入力値が計算される。同様に、図６のステップＳ１２４では、次元１外部値メモリ１１３から読み出された情報（最尤復号語及びその尤度情報等）から次元２外部値が計算され、この計算された次元２外部値と読出し情報とを加算することで、次元２軟判定入力値が計算される。
【００４８】
以上のような図６に示すターボ復号アルゴリズムにおいては、次元１外部値及び次元２外部値又はそれら外部値の計算に必要な情報（以下、簡略化のため、これらをまとめて次元１外部値情報及び次元２外部値情報という）の初期値が、一般には、受信語を構成するビット又はシンボルそれぞれに対するＬＬＲを‘０’とする値に設定される。すなわち、図６に示すターボ復号動作を実行するにあたって、次元１外部値メモリ１１３内の次元１外部値情報及び次元２外部値メモリ１２３内の次元２外部値情報が、受信語を構成するビット又はシンボルそれぞれに対するＬＬＲを‘０’にする値に設定される。
【００４９】
なお、「ＬＬＲが‘０’である」とは、「書込みビットが‘０’である確率と‘１’である確率とが等しい」ことを意味している。そのため、次元１外部値情報及び次元２外部値情報が初期値の状態では、書込みビットの元の値が‘０’であるか‘１’であるかを判断するための情報を一切持っていないこととなる。これは、ＳＩＳＯ復号器１８２が復号処理を一度も行っていない時点では、書込みビットの元の値が‘０’であるか‘１’であるかを判断するための情報が存在しないと考えられるという事実を反映している。
【００５０】
その後、図６に示すターボ復号動作を反復する過程で、次元１外部値情報及び次元２外部値情報が変化する。すなわち、図６に示すターボ復号動作を実行することで、書込みビットの元の値が‘０’であるか‘１’であるかを判断するための情報（外部値情報）が更新され、この実行を繰り返すことで、外部値情報の信頼性が向上する。その結果、書込みビットの元の値が‘０’であるか‘１’であるかを精度よく判断することが可能となる。
【００５１】
ただし、外部値情報の信頼性を高めてターボ復号の誤り訂正能力を向上するためには、ある程度の反復回数が必要である。そのため、復号処理に要する時間が増大してしまう場合がある。
【００５２】
そこで本実施形態では、復号処理に要する時間を短縮するために、次元１外部値情報及び次元２外部値情報の初期値として、ＳＩＳＯ復号器１８２以外の復号器から出力された情報から計算された値を用いることとする。ＳＩＳＯ復号器１８２以外の復号器から出力された情報には、例えば、ＨＩＨＯ復号器１８１から出力された硬判定出力値を用いることができる。ただし、ＨＩＨＯ復号器１８１から出力された硬判定出力値に限定されず、書込みビットの元の値が‘０’であるか‘１’であるかを判断することが可能な情報であれば、種々の値を次元１外部値情報及び次元２外部値情報の初期値を計算するのに用いることができる。例えば、ＨＩＨＯ復号器１８１の代わりに復号結果として軟判定出力値を出力する復号器を用いた場合には、この軟判定出力値から求められた硬判定値を、次元１外部値情報及び次元２外部値情報の初期値を計算するのに用いることも可能である。なお、本実施形態では、明確化のため、ＨＩＨＯ復号器１８１から出力された硬判定出力値を、次元１外部値情報及び次元２外部値情報の初期値を計算するのに用いる場合を例に挙げる。
【００５３】
図７は、本実施形態に係る復号器の動作を説明するための図である。図８は、本実施形態に係る全体的な復号動作の一例を示すフローチャートである。図７に示すように、復号器１８は、第１の復号器であるＨＩＨＯ復号器１８１と、第２の復号器であるＳＩＳＯ復号器１８２と、読出し情報メモリ１０１とを備える。
【００５４】
読出し情報メモリ１０１は、上述したように、メモリＩ／Ｆ１３によって不揮発性メモリ２０から読み出された読出し情報（受信語）を保持する。
【００５５】
ＨＩＨＯ復号器１８１は、例えば、硬判定値を入力として復号を実行し、その結果として硬判定値を出力する。硬判定とは、読出し情報から、最も尤もらしい元のビット又はシンボルを推定する処理である。例えば、符号化データが二元符号である場合、硬判定は、「元のデータが‘０’であった確率が高いなら‘０’を、‘１’であった確率が高いなら‘１’を出力する」処理に相当する。ただし、これに限定されず、例えば軟判定値を入力として復号を実行し、その結果として硬判定値を出力する復号器など、復号結果から硬判定値を得ることが可能な復号器であれば、種々変形することが可能である。
【００５６】
ＳＩＳＯ復号器１８２は、例えば図５に例示した構成と同様の構成を備えており、軟判定値を入力として復号を実行し、その結果として軟判定値を出力する。
【００５７】
このような復号器１８が実行する復号動作では、図８に示すように、まず、メモリＩ／Ｆ１３によって不揮発性メモリ２０から読み出されて符号化／復号部１４に入力された符号化データの読出し情報が、復号器１８の読出し情報メモリ１０１に格納される（ステップＳ１０１）。なお、読出し情報メモリ１０１内の読出し情報は、例えば軟判定値の符号化データ（受信語）であってよい。
【００５８】
次に、読出し情報メモリ１０１内の読出し情報がＨＩＨＯ復号器１８１に入力され、読出し情報に対するＨＩＨＯ復号が実行される（ステップＳ１０２）。なお、読出し情報メモリ１０１内の読出し情報が軟判定値である場合、ＨＩＨＯ復号器１８１には、軟判定値を硬判定することで得られた硬判定値の読出し情報が入力される。
【００５９】
次に、ＨＩＨＯ復号に成功したか否かが判定され（ステップＳ１０３）、成功していた場合（ステップＳ１０３のＹＥＳ）、例えば制御部１１へ復号成功が通知されると共に、ＨＩＨＯ復号により得られた復号語又は復号語から復元されたユーザデータがデータバッファ１２に転送され（ステップＳ１０８）、本動作が終了する。なお、データバッファ１２に転送されたユーザデータは、例えば制御部１１の制御に従い、ホストＩ／Ｆ１５を介してホスト３０へ転送される。
【００６０】
一方、ＨＩＨＯ復号に失敗していた場合（ステップＳ１０３のＮＯ）、ＨＩＨＯ復号の結果に基づいて、ＳＩＳＯ復号器１８２の次元１外部値情報及び次元２外部値情報が初期化される（ステップＳ１０４）。この初期化では、例えば、ＨＩＨＯ復号の結果として得られた硬判定値（以下、復号後硬判定値という）及び／又は復号後硬判定値で構成された各成分符号のシンドローム（以下、復号後硬判定値及び/又は復号後硬判定値で構成された各成分符号のシンドロームを硬判定復号情報と呼ぶ）から、所定の計算式を用いて次元１外部値情報及び次元２外部値情報の初期値が計算される。なお、計算された初期値は、必ずしも次元１外部値メモリ１１３及び次元２外部値メモリ１２３に格納される必要はなく、必要な分だけ都度計算されて次元１加算器１１１又は次元２加算器１２１に入力されてもよい。
【００６１】
次に、読出し情報メモリ１０１内の読出し情報がＳＩＳＯ復号器１８２に入力され、読出し情報に対するＳＩＳＯ復号が実行される（ステップＳ１０５）。その際、次元１外部値情報及び次元２外部値情報の初期値として、ステップＳ１０４で設定された初期値が使用される。それにより、次元１外部値情報及び次元２外部値情報が‘０’ではない状態からＳＩＳＯ復号を開始することが可能となるため、復号処理に要する時間を短縮することが可能となる。なお、ＳＩＳＯ復号の流れは、図６を用いて説明したターボ復号動作の流れと同様であってよい。
【００６２】
次に、ＳＩＳＯ復号に成功したか否かが判定され（ステップＳ１０６）、成功していた場合（ステップＳ１０６のＹＥＳ）、例えば制御部１１へ復号成功が通知されると共に、ＳＩＳＯ復号により得られた復号語又は復号語から復元されたユーザデータがデータバッファ１２に転送され（ステップＳ１０８）、本動作が終了する。
【００６３】
一方、ＳＩＳＯ復号に失敗していた場合（ステップＳ１０６のＮＯ）、例えば制御部１１へ復号失敗が通知され（ステップＳ１０７）、本動作が終了する。なお、この場合、ホスト３０へは、例えば読出しエラーが通知される。
【００６４】
つづいて、本実施形態に係る次元１外部値情報及び次元２外部値情報の初期値の計算方法について、図面を用いて詳細に説明する。ただし、以下で説明する計算方法は、単なる一例であり、他の計算方法を排除するものではない。すなわち、次元１外部値情報及び次元２外部値情報の初期値の計算方法は、受信語を構成するビット又はシンボルそれぞれに対するＬＬＲを‘０’とする値に制限されずに次元１外部値情報及び次元２外部値情報の初期値を計算することが可能であれば、種々変形することができる。また、以降の説明では、多次元の誤り訂正符号を構成する各成分符号が線形符号である場合を例示するが、このような場合に限定されず、種々の多次元の誤り訂正符号に対して本実施形態を適用することが可能である。
【００６５】
図９は、本実施形態に係るＨＩＨＯ復号の入出力情報の一例を示す図である。図１０は、図９（ｂ）に示す復号後硬判定値から計算されたシンドロームを示す図である。なお、図９（ａ）は、ＨＩＨＯ復号前の硬判定値の誤り訂正符号（以下、復号前硬判定値という）の一例を示す図であり、図９（ｂ）は、ＨＩＨＯ復号後の硬判定値の誤り訂正符号（以下、復号後硬判定値という）の一例を示す図である。したがって、図９（ａ）に示す復号前硬判定値は、不揮発性メモリ２０から読み出された復号前の読出し情報であって、ＨＩＨＯ復号器１８１への入力情報（硬判定入力値）であり、図９（ｂ）に示す復号後硬判定値は、ＨＩＨＯ復号器１８１からの出力情報（硬判定出力値）である。また、本説明では、簡略化のため、不揮発性メモリ２０へ書き込まれる符号化データ（符号語）が全て‘０’のビットで構成されたオールゼロデータであるとする。さらに、図９において、行は、例えば図４に示す積符号５００における次元１に対応し、列は、積符号５００における次元２に対応している。
【００６６】
不揮発性メモリ２０から読み出された復号前の読出し情報には、図９（ａ）における‘１’で示されているように、一部のビットにエラーが含まれている。そして、図９（ａ）に示す復号前硬判定値をＨＩＨＯ復号器１８１でＨＩＨＯ復号することにより、図９（ｂ）に示すように、一部のビットの値が‘１’から‘０’に又は‘０’から‘１’に書き換えられる。なお、図９（ｂ）では、値の書換えがなされたビットが斜線でハッチングされている。
【００６７】
図９（ｂ）に示す復号後硬判定値に対してシンドロームを計算した場合、図１０に示すように、エラービットを含まない成分符号（例えば行番号が＃１，＃３及び＃５の成分符号並びに列番号が＃１，＃４及び＃５の成分符号）のシンドロームは‘０’になり、エラーがある成分符号（例えば行番号が＃２及び＃４の成分符号並びに列番号が＃２及び＃３の成分符号）のシンドロームはほとんどの場合に０でない値（非ゼロ）になる。
【００６８】
このことから、シンドロームが‘０’になっている成分符号に属する各ビットの値は正しい値である確率が高いことが期待される。例えば、図９（ｂ）及び図１０に示す例では、行番号が＃１，＃３及び＃５の成分符号並びに列番号が＃１，＃４及び＃５の成分符号のシンドロームが‘０’であることから、これらの成分符号に属する各ビットの値は正しい値である確率が高いと期待される。
【００６９】
そこで本実施形態では、正しい値である確率が高いと期待されるビットに対しては、「復号後硬判定値が正しい確率が高い」ことを意味する外部値情報を設定する。例えば、行方向のシンドロームが‘０’である行番号＝＃１，＃３及び＃５の成分符号に対しては、「復号後硬判定値が正しい確率が高い」ことを意味する次元１外部値情報を設定する。同様に、列方向のシンドロームが‘０’である列番号＝＃１，＃４及び＃５の成分符号に対しては、「復号後硬判定値が正しい確率が高い」ことを意味する次元２外部値情報を設定する。
【００７０】
具体的には、ＬＬＲの正負が元々の書込み値に対応し、且つ、ＬＬＲの絶対値の大きさが元々の書込み値がＬＬＲの正負に基づいて推定される値である可能性と関係しているというＬＬＲの定義に基づき、復号後硬判定値が‘０’の場合は正のＬＬＲを、復号後硬判定値が‘１’の場合は負のＬＬＲを、次元１外部値及び次元２外部値としてセットすることで、正しい値である確率が高いと期待されるビットに対しては「復号後硬判定値が正しい確率が高い」ことを意味する外部値情報を設定することが可能である。
【００７１】
これを、図９及び図１０に示した具体例を用いて説明する。図９に示す例では、１行目１列目（ｉ＝＃１，ｊ＝＃１）のビット（１，１）の復号前硬判定値と復号後硬判定値との両方が‘０’である。すなわち、ビット（１，１）については、読出し処理の結果とＨＩＨＯ復号の結果との両方でビットのＬＬＲが「‘０’である確率が高い」と推定される正のＬＬＲとなっている。また、図１０に示すように、行番号ｉ＝＃１の次元１の成分符号のシンドロームは‘０’である。そのような場合、ビット（１，１）の次元１外部値の初期値のＬＬＲは、正のＬＬＲの正負を反転させない正の値であるべきだが、ＨＩＨＯ復号前とＨＩＨＯ復号後とで硬判定値が変化していないため、絶対値の大きさは小さくて構わない。
【００７２】
一方、図９に示す例において、１行目３列目（ｉ＝＃１，ｊ＝＃３）のビット（１，３）については、復号前硬判定値が‘１’であるのに対し、復号後硬判定値が‘０’である。すなわち、ビット（１，３）については、読出し処理の結果ではビットのＬＬＲが「‘１’である確率が高い」と推定される負のＬＬＲであったものが、ＨＩＨＯ復号の結果では「‘０’である確率が高い」と推定される正のＬＬＲに変化している。ただし、図１０に示すように、行番号ｉ＝＃１の次元１の成分符号のシンドロームは‘０’である。そのような場合、ビット（１，３）の次元１外部値の初期値のＬＬＲは、読出し処理の結果である‘１’に対応する負のＬＬＲの正負を反転させる程度に大きな正の値とする必要がある。
【００７３】
そこで本実施形態では、例えば以下の式（２）を用いて次元１外部値の初期値を計算する。なお、次元２外部値の初期値については、以下の式（３）に示すように、式（２）におけるＳ1,iをＳ2,jに入れ換えることで計算することができる。
【数２】
2019160014.tif 000004
【数３】
2019160014.tif 000005
【００７４】
式（２）及び式（３）において、Ｓ1,iは、ｉ行目の成分符号の復号後シンドローム値であり、ｄijは、ｉ行目ｊ列目の復号後硬判定値のビット値であり、ｂijは、ｉ行目ｊ列目の復号前硬判定値のビット値であり、Ｘ及びＹは、パラメータとして与えられる正の実数である。ここで、Ｘ及びＹは、例えば、０＜Ｘ≦Ｙの関係が成立している。ＸよりＹの方が大きい値をとるのは、上述したように、読出し処理の結果とＨＩＨＯ復号の結果とで硬判定値が異なる場合、より大きな値の外部値をその初期値として設定する必要があるためである。
【００７５】
上記したような式（２）及び式（３）を用いることで、シンドロームが‘０’である行方向又は列方向の成分符号に属するビットに対して、ＨＩＨＯ復号前とＨＩＨＯ復号後とで硬判定値が変化していない場合には絶対値の小さいＬＬＲが初期値として計算され、ＨＩＨＯ復号前とＨＩＨＯ復号後とで硬判定値が変化している場合にはビットのＬＬＲの正負を反転させる程度に絶対値の大きいＬＬＲが外部値の初期値として計算される。また、シンドロームが‘非ゼロ’である行方向又は列方向の成分符号に属するビットに対しては、ビットの値が「‘０’である確率が高い」か「‘１’である確率が高い」かの判断材料を含まないＬＬＲ（＝０）が外部値の初期値として計算される。
【００７６】
なお、次元１外部値及び次元２外部値の計算方法は、上述の例に限定されない。例えば、ｂij，ｄij，Ｓ1,i及びＳ2,jの入力に対応して予め対応付けておいた値を出力するテーブルなどを用いて次元１外部値及び次元２外部値の初期値を求めることも可能である。
【００７７】
また、ＨＩＨＯ復号前とＨＩＨＯ復号後とで硬判定値が変化している場合であったとしても、例えば、成分符号のシンドローム計算結果の信頼性があまり高くない場合など、読出し結果の方をより信用したい場合には、外部値の初期値の絶対値がビットのＬＬＲの正負を反転させない程度の大きさとされてもよい。
【００７８】
図１１は、図９（ａ）に示す復号前硬判定値と、図９（ｂ）に示す復号後硬判定値と、図１０に示すＨＩＨＯ復号後の成分符号から計算されたシンドロームから式（２）及び式（３）を用いて計算された次元１外部値の初期値の一例を示す図である。図１２は、同じく図９（ａ）に示す復号前硬判定値と、図９（ｂ）に示す復号後硬判定値と、図１０に示すＨＩＨＯ復号後の成分符号から計算されたシンドロームから式（２）及び式（３）を用いて計算された次元２外部値の初期値の一例を示す図である。なお、図１１及び図１２に示す初期値の計算では、式（２）及び式（３）におけるＸを５とし、Ｙを１０とした。
【００７９】
図１１に示す次元１外部値の初期値の計算では、行方向のシンドロームＳ1,iが‘非ゼロ’である行番号ｉ＝＃２及び＃４の成分符号に属するビットに対しては、上述の式（２）における上段の式を用いることで、次元１外部値の初期値のＬＬＲとして‘０’が求められる。一方、行方向のシンドロームＳ1,iが‘０’である行番号ｉ＝＃１，＃３及び＃５の成分符号に属するビットのうち、ＨＩＨＯ復号前（図９（ａ）参照）とＨＩＨＯ復号後（図９（ｂ）参照）とで硬判定値の値が変化していないビットに対しては、上述の式（２）における中段の式を用いることで、次元１外部値の初期値のＬＬＲとして‘５’が求められる。ただし、ＨＩＨＯ復号前（図９（ａ）参照）とＨＩＨＯ復号後（図９（ｂ）参照）とで硬判定値の値が変化しているビットに対しては、上述の式（２）における下段の式を用いることで、次元１外部値の初期値のＬＬＲとして‘１０’が求められる。
【００８０】
同様に、図１２に示す次元２外部値の初期値の計算では、列方向のシンドロームＳ2,jが‘非ゼロ’である列番号ｊ＝＃２及び＃３の成分符号に属するビットに対しては、次元２外部値の初期値のＬＬＲとして‘０’が求められる。一方、列方向のシンドロームＳ2,jが‘０’である列番号ｊ＝＃１，＃４及び＃５の成分符号に属するビットのうち、ＨＩＨＯ復号前（図９（ａ）参照）とＨＩＨＯ復号後（図９（ｂ）参照）とで硬判定値の値が変化していないビットに対しては、次元２外部値の初期値のＬＬＲとして‘５’が求められ、ＨＩＨＯ復号前（図９（ａ）参照）とＨＩＨＯ復号後（図９（ｂ）参照）とで硬判定値の値が変化しているビットに対しては、次元２外部値の初期値のＬＬＲとして‘１０’が求められる。
【００８１】
以上のように、本実施形態では、外部値の初期値として、硬判定復号の結果が反映された値が用いられる。これにより、本実施形態によれば、ターボ復号の外部値が真の復号語に近い値を持つまでに必要な反復回数を減らすことが可能になる。その結果、復号に要する時間を短縮して迅速な読出し処理を実現することが可能となる。
【００８２】
また、硬判定復号は、軟判定復号と比べ、相対的に計算量が小さく、高速に処理を完了することが可能である。そのため、本実施形態によれば、復号処理全体の時間をより短縮することが可能であるというメリットも得られる。
【００８３】
（第２の実施形態）
次に、第２の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。第１の実施形態に係るＳＩＳＯ復号器１８２は、確率情報である外部値（軟判定復号情報）を外部値メモリに記録しておかなければならないため、復号に必要なメモリ量が増大してしまう可能性がある。そこで第２の実施形態では、復号に必要なメモリ量を削減することが可能なメモリシステムについて、例を挙げて説明する。なお、以下の説明において、第１の実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。また、本実施形態では、説明の明確化のため、多次元の誤り訂正符号として、図４を用いて説明した積符号５００のような、二次元の誤り訂正符号を用いることとする。
【００８４】
本実施形態に係るメモリシステムの概略構成は、第１の実施形態において図２、図３、図５及び図７を用いて説明した構成と同様であってよい。また、本実施形態に係る復号器１８の全体的な復号動作は、第１の実施形態において図８を用いて説明した復号動作と同様であってよい。ただし、本実施形態では、ＳＩＳＯ復号器１８２が以下で説明するようなＳＩＳＯ復号器（近似的ターボ復号器ともいう）２８２に置き換えられる。
【００８５】
図１３は、本実施形態に係るＳＩＳＯ復号器の概略構成例を示すブロック図である。また、図１４は、図１３に示すＳＩＳＯ復号器が実行するターボ復号動作の一例を示すフローチャートである。
【００８６】
図１３に示すように、本実施形態に係るＳＩＳＯ復号器２８２は、中間値メモリ２０１と、次元１軟判定入力値計算部（軟判定入力値特定部）２１１と、次元１成分符号ＳＩＳＯ復号器２１２と、次元２軟判定入力値計算部（軟判定入力値特定部）２２１と、次元２成分符号ＳＩＳＯ復号器２２２とを備え、入力段に読出し情報メモリ１０１が設けられた構成を備える。
【００８７】
次元１軟判定入力値計算部２１１及び次元２軟判定入力値計算部２２１は、読出し情報メモリ１０１に保持された軟判定値の読出し情報と、中間値メモリ２０１に保持された次元１の中間値（次元１中間値）及び次元２の中間値（次元２中間値）とから、各次元の軟判定入力値を成分符号ごとに計算する。
【００８８】
なお、中間値（軟判定復号情報ともいう）とは、復号の途中で算出される各成分符号の中間の硬判定値と、この中間の硬判定値の信頼度情報とからなる情報であり、次元１の外部値（次元１外部値）及び次元２の外部値（次元２外部値）の近似計算に必要な情報である。ある中間の硬判定値（成分符号語）ｃの信頼度情報とは、軟判定入力値（＝確率情報）から計算された、成分符号語ｃがオリジナルの成分符号語である確率が高いか低いかを示すメトリックである。二元符号における信頼度情報としては、例えば、成分符号語ｃの軟判定入力値Ｓから計算した事後確率Ｐなどを用いることができる。ただし、これに限定されず、成分符号語ｃが正しい確率を示す値や、成分符号語ｃと軟判定入力値との距離関数の値や、それらの値に対して対数関数などを適用した後の値など、様々な情報を信頼度情報として用いることが可能である。
【００８９】
次元１成分符号ＳＩＳＯ復号器２１２及び次元２成分符号ＳＩＳＯ復号器２２２は、入力された各次元の軟判定入力値に対して成分符号ごとにＳＩＳＯ復号を実行することで、各次元の中間値を計算する。
【００９０】
図１３に示すＳＩＳＯ復号器２８２によるターボ復号動作では、図１４に示すように、読出し情報メモリ１０１内の読出し情報と、中間値メモリ２０１内の次元１中間値及び次元２中間値とが次元１軟判定入力値計算部２１１に入力されて、次元１軟判定入力値が計算される（ステップＳ２２１）。ただし、最初の次元１軟判定入力値の計算では、中間値メモリ２０１内に次元１中間値及び次元２中間値が格納されていない。そこで本実施形態では、次元１中間値及び次元２中間値の初期値として、ＨＩＨＯ復号器１８１（図７参照）によるＨＩＨＯ復号の結果として得られた硬判定値（復号後硬判定値）及び／又は復号後硬判定値で構成された各成分符号のシンドローム値が用いられる。すなわち、本実施形態では、図８のステップＳ１０４において、ＨＩＨＯ復号結果として得られた復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値が、中間値メモリ２０１の初期値として設定される。なお、この初期値は、必ずしも中間値メモリ２０１に格納される必要はなく、必要な分だけ都度計算されて次元１軟判定入力値計算部２１１又は次元２軟判定入力値計算部２２１に入力されてもよい。
【００９１】
つぎに、次元１軟判定入力値計算部２１１で計算された次元１軟判定入力値が次元１の成分符号ごとに次元１成分符号ＳＩＳＯ復号器２１２に入力されて、次元１中間値が計算される（ステップＳ２２２）。計算された次元１中間値は、中間値メモリ２０１に転送されて保持される（ステップＳ２２３）。
【００９２】
つぎに、読出し情報メモリ１０１内の読出し情報と、中間値メモリ２０１内の次元１中間値及び次元２中間値とが次元２軟判定入力値計算部２２１に入力されて、次元２軟判定入力値が計算される（ステップＳ２２４）。その際、ステップＳ２２１と同様に、最初の次元２軟判定入力値の計算では、次元２中間値の初期値として、ＨＩＨＯ復号結果として得られた復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値から求められた値が用いられる。
【００９３】
つぎに、次元２軟判定入力値計算部２２１で計算された次元２軟判定入力値が次元２の成分符号ごとに次元２成分符号ＳＩＳＯ復号器２２２に入力されて、次元２中間値が計算される（ステップＳ２２５）。計算された次元２中間値は、中間値メモリ２０１に転送されて保持される（ステップＳ２２６）。
【００９４】
つぎに、復号に成功したか否かが判定される（ステップＳ２２７）。復号に成功したとは、例えば正しいと判断できる復号語が発見されたことであってよい。また、発見された復号語が正しいか否かの判断は、例えば符号化／復号部１４内の不図示の制御部が実行してもよい。復号に成功した場合（ステップＳ２２７のＹＥＳ）、図８に示す動作へリターンして復号成功と判断され（図８のステップＳ１０６のＹＥＳ）、その後、外部の制御部１１等に復号の成功とともに発見された復号語が通知されて（図８のステップＳ１０８）、本動作が終了する。一方、復号に成功していない場合（図１４のステップＳ２２７のＮＯ）、本動作の反復回数が予め設定しておいた規定値に達しているか否かが判定され（ステップＳ２２８）、規定値に達していない場合（ステップＳ２２８のＮＯ）、ステップＳ２２１へリターンして、以降の動作を実行する。また、規定値に達していた場合（ステップＳ２２８のＹＥＳ）、図８に示す動作へリターンして復号失敗と判断され（図８のステップＳ１０６のＮＯ）、その後、外部の制御部１１等に復号の失敗が通知されて（図８のステップＳ１０７）、本動作が終了する。なお、反復回数とは、例えば図１４のステップＳ２２１〜Ｓ２２６の動作を繰り返した回数等であってよい。
【００９５】
つづいて、図１３に示す次元１成分符号ＳＩＳＯ復号器２１２及び次元２成分符号ＳＩＳＯ復号器２２２それぞれに用いられる成分符号ＳＩＳＯ復号器の構成例について、図面を参照して詳細に説明する。図１５は、本実施形態に係る成分符号ＳＩＳＯ復号器の概略構成例を示すブロック図である。
【００９６】
次元１成分符号ＳＩＳＯ復号器２１２及び次元２成分符号ＳＩＳＯ復号器２２２それぞれは、上述のMax-log-MAP復号アルゴリズムに従う場合、各成分符号語に関し、MAP復号語、MAP復号語の事後確率及び各ビットにおける対抗復号語の事後確率の三種類の値を記憶しておくことで、対数事後確率比を計算することができる。そこで、本実施形態に係る成分符号ＳＩＳＯ復号器２３０は、図１５に示すように、軟判定入力値受信部２３１と、中間値計算部２３２と、信頼度情報計算部２３３とを備える。
【００９７】
軟判定入力値受信部２３１は、次元１軟判定入力値計算部２１１／次元２軟判定入力値計算部２２１で計算された次元１軟判定入力値／次元２軟判定入力値を受信し、受信した軟判定入力値を中間値計算部２３２及び信頼度情報計算部２３３それぞれへ出力する。
【００９８】
中間値計算部２３２は、入力された次元１軟判定入力値／次元２軟判定入力値に対して、Chase復号やOrdered Statistics復号などの復号処理を実行することで、復号対象の成分符号に対して、中間の硬判定値に相当するMAP復号語を計算し、計算されたMAP復号語を信頼度情報計算部２３３及び中間値メモリ２０１それぞれへ出力する。
【００９９】
信頼度情報計算部２３３は、復号対象の成分符号に関し、軟判定入力値受信部２３１から入力された次元１軟判定入力値／次元２軟判定入力値と、中間値計算部２３２から入力されたMAP復号語とから、MAP復号語の事後確率及び各ビットにおける対抗復号語の事後確率を計算し、計算されたMAP復号語の事後確率及び各ビットにおける対抗復号語の事後確率を信頼度情報として中間値メモリ２０１へ出力する。
【０１００】
これにより、復号対象の成分符号に関し、復号の途中の中間の硬判定値であるMAP復号語と、信頼度情報であるMAP復号語の事後確率及び各ビットにおける対抗復号語の事後確率とが中間値メモリ２０１に格納される。
【０１０１】
つづいて、図１４のステップＳ２２１及びＳ２２４において、図１３における次元１軟判定入力値計算部２１１及び次元２軟判定入力値計算部２２１が次元１軟判定入力値及び次元２軟判定入力値を計算する際の動作フローを、図面を参照して詳細に説明する。図１６は、本実施形態に係る次元１軟判定入力値計算部の動作フローの一例を示すフローチャートである。なお、図１６には、次元１軟判定入力値計算部２１１の動作を示すが、同様の動作を次元２軟判定入力値計算部２２１に適用することが可能である。
【０１０２】
図１６に示すように、次元１軟判定入力値計算部２１１は、次元１軟判定入力値を計算するにあたり、まず、読出し情報メモリ１０１から読出し情報を入力するとともに、中間値メモリ２０１から次元１中間値及び次元２中間値を入力する（ステップＳ２４１）。ただし、最初の次元１軟判定入力値の計算では、上述したように、ＨＩＨＯ復号結果として得られた復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値から求めた値を中間値の初期値として用いる。例えば、ＨＩＨＯ復号結果として得られた復号後硬判定値を計算されたMAP復号語として用い、各成分符号のシンドローム値が０の時は計算されたMAP復号語の事後確率を０．９、そうでなければ０．１として計算する。また、各ビットにおける対抗復号語の事後確率を０．１として計算する。ただし、このような算出方法に限定されず、種々変形することが可能である。
【０１０３】
つぎに、次元１軟判定入力値計算部２１１は、入力した読出し情報と次元１中間値及び次元２中間値（又は復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）とから次元２外部値の近似値を計算する。具体的には、次元１軟判定入力値計算部２１１は、次元２中間値（又は次元２の復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）における次元２のMAP復号語、次元２のMAP復号語の事後確率、及び次元２のビットごとの対抗復号語の事後確率から、次元２の対数事後確率比を計算する（ステップＳ２４２）。
【０１０４】
つづいて、通常のMax-log-MAP復号であれば、次元２の対数事後確率比から次元２軟判定入力値を引くことで次元２外部値を求めることが可能であるが、本実施形態では、現時点で次元２軟判定入力値が未知である。そこで本実施形態では、読出し情報を次元２軟判定入力値の近似値として代用し、次元２の対数事後確率比から読出し情報を引くことで、次元２外部値（近似値）を近似的に計算する（ステップＳ２４３）。
【０１０５】
つぎに、ステップＳ２４３で計算された次元２外部値の近似値と読出し情報とを加算することで、次元１軟判定入力値を計算する（ステップＳ２４４）。その後、計算された次元１軟判定入力値を次元１の成分符号ごとに次元１成分符号ＳＩＳＯ復号器２１２へ出力し（ステップＳ２４５）、図１４に示す動作へリターンする。
【０１０６】
以上のように、読出し情報を軟判定入力値の近似値として代用した場合でも、最終的に算出される軟判定入力値は、本来のターボ復号において計算されるべき軟判定入力値に対して、よい近似となっている。これは、本実施形態によれば、例えば図５に例示した構成における次元１外部値メモリ１１３及び次元２外部値メモリ１２３を、より容量の小さい中間値メモリ２０１で代用することができることを示唆している。
【０１０７】
具体的には、通常のMax-log-MAP復号では、チャネル値、入力外部値情報、硬判定値及び信頼度の各情報を含む外部値を次元ごとに保持しておくメモリが必要であったが、本実施形態では、外部値として硬判定値（MAP復号語に相当）及び信頼度情報を保持しておけばよく、また、全ての次元に対して１つのメモリを共有することが可能となる。その結果、本実施形態によれば、復号に必要なメモリ量を削減することが可能である。
【０１０８】
その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【０１０９】
（第３の実施形態）
つぎに、第３の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。本実施形態における符号化／復号部を含むメモリシステムの構成は、上述した実施形態において図２、図３、図７、図１３及び図１５を用いて例示したメモリシステムと同様であってよいため、ここでは重複する説明を省略する。また、本実施形態に係る近似的ターボ復号器の処理フローも第２の実施形態において図１４を用いて説明した処理フローと同様であってよいため、ここでは重複する説明を省略する。ただし、本実施形態では、次元１軟判定入力値計算部２１１及び次元２軟判定入力値計算部２２１の動作フロー（図１４のステップＳ２２１及びＳ２２４）が、第２の実施形態において図１６を用いて例示した動作フローとは異なる。
【０１１０】
図１７は、本実施形態に係る次元１軟判定入力値計算部の動作フローの一例を示すフローチャートである。なお、図１７には、次元１軟判定入力値計算部２１１の動作を示すが、同様の動作を次元２軟判定入力値計算部２２１に適用することが可能である。また、図１７に示す動作において、図１６に示す動作と同様の動作については、同一の符号を付し、詳細な説明を省略する。
【０１１１】
図１７に示すように、次元１軟判定入力値計算部２１１は、まず、図１６におけるステップＳ２４１と同様にして、読出し情報と次元１中間値及び次元２中間値（又は復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）とを入力し（ステップＳ３４１）、入力した読出し情報と次元１中間値及び次元２中間値（又は復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）とから次元２外部値の近似値を計算する。ただし、本実施形態では、次元１軟判定入力値計算部２１１は、次元１中間値における次元１のMAP復号語、次元１のMAP復号語の事後確率、及び次元１のビットごとの対抗復号語の事後確率（又は次元１の復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）から、次元１の対数事後確率比を計算する（ステップＳ３４２）。つづいて、次元１軟判定入力値計算部２１１は、次元２中間値における次元２のMAP復号語、次元２のMAP復号語の事後確率、及び次元２のビットごとの対抗復号語の事後確率（又は次元２の復号後硬判定値及び／又は復号後硬判定値で構成された各成分符号のシンドローム値）から、次元２の対数事後確率比を計算する（ステップＳ３４３）。
【０１１２】
つづいて、通常のMax-log-MAP復号であれば、次元２の対数事後確率比から次元２軟判定入力値を引くことで次元２外部値を求めることが可能であるが、本実施形態では、第２の実施形態と同様に、現時点で次元２軟判定入力値が未知である。そこで本実施形態では、次元１の対数事後確率比を次元２軟判定入力値の近似値として代用し、次元２の対数事後確率比から次元１の対数事後確率比を引くことで、次元２外部値（近似値）を近似的に計算する（ステップＳ３４４）。
【０１１３】
その後、次元１軟判定入力値計算部２１１は、図１６のステップＳ２４４〜Ｓ２４５で説明した動作と同様の動作を実行することで、次元２外部値の近似値と読出し情報とを加算して次元１軟判定入力値を計算し（ステップＳ３４５）、計算された次元１軟判定入力値を次元１の成分符号ごとに次元１成分符号ＳＩＳＯ復号器２１２へ出力して（ステップＳ３４６）、図１４に示す動作へリターンする。
【０１１４】
以上のように、一方の次元の対数事後確率比を他方の次元の軟判定入力値の近似値として代用した場合でも、最終的に算出される軟判定入力値は、本来のターボ復号において計算されるべき軟判定入力値に対して、よい近似となっている。これにより、第２の実施形態と同様に、例えば図５に例示した構成における次元１外部値メモリ１１３及び次元２外部値メモリ１２３を、より容量の小さい中間値メモリ２０１で代用することが可能となり、復号に必要なメモリ量を削減することが可能である。
【０１１５】
その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【０１１６】
（第４の実施形態）
つぎに、第４の実施形態に係るメモリシステムについて説明する。第２の実施形態において図１６を用いて例示した次元１軟判定入力値計算部２１１／次元２軟判定入力値計算部２２１の動作フローと、第３の実施形態において図１７を用いて例示した次元１軟判定入力値計算部２１１／次元２軟判定入力値計算部２２１の動作フローとは、特定の条件で選択的に切り替えて使い分けることが可能である。例えば、次元１又は次元２のMAP復号語の事後確率が予め定めておいた閾値より高い場合には、図１７に示した動作フローを用いて次元１軟判定入力値又は次元２軟判定入力値を求め、それ以外の場合には、図１６に示した動作フローを用いて次元１軟判定入力値又は次元２軟判定入力値を求めるというように、MAP復号語の事後確率に基づいて実行する動作フローを切り替えるように構成することも可能である。
【０１１７】
そのような構成においても、上述した実施形態と同様に、例えば図５に例示した構成における次元１外部値メモリ１１３及び次元２外部値メモリ１２３を、より容量の小さい中間値メモリ２０１で代用することが可能となり、復号に必要なメモリ量を削減することが可能である。
【０１１８】
その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【０１１９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２０】
１…メモリシステム、１０…メモリコントローラ、１１…制御部、１２…データバッファ、１３…メモリＩ／Ｆ、１４…符号化／復号部、１５…ホストＩ／Ｆ、１６…内部バス、１７…符号化器、１８…復号器、２０…不揮発性メモリ、３０…ホスト、１０１…読出し情報メモリ、１１１…次元１加算器、１１２…次元１ＳＩＳＯ復号器、１１３…次元１外部値メモリ、１２１…次元２加算器、１２２…次元２ＳＩＳＯ復号器、１２３…次元２外部値メモリ、１８１…ＨＩＨＯ復号器、１８２，２８２…ＳＩＳＯ復号器、２０１…中間値メモリ、２１１…次元１軟判定入力値計算部、２１２…次元１成分符号ＳＩＳＯ復号器、２２１…次元２軟判定入力値計算部、２２２…次元２成分符号ＳＩＳＯ復号器、２３０…成分符号ＳＩＳＯ復号器、２３１…軟判定入力値受信部、２３２…中間値計算部、２３３…信頼度情報計算部。
【図１】
2019160014.tif 000008
【図２】
2019160014.tif 000009
【図３】
2019160014.tif 000010
【図４】
2019160014.tif 000011
【図５】
2019160014.tif 000012
【図６】
2019160014.tif 000013
【図７】
2019160014.tif 000014
【図８】
2019160014.tif 000015
【図９】
2019160014.tif 000016
【図１０】
2019160014.tif 000017
【図１１】
2019160014.tif 000018
【図１２】
2019160014.tif 000019
【図１３】
2019160014.tif 000020
【図１４】
2019160014.tif 000021
【図１５】
2019160014.tif 000022
【図１６】
2019160014.tif 000023
【図１７】
2019160014.tif 000024