(57)【要約】【課題】符号化時に要求されるメモリのサイズを低減する。【解決手段】実施形態に係るメモリシステムは、グラフ符号により符号化する符号化器と、符号化する際に使用するデータを保持するデータ保持部とを備え、グラフ符号の検査行列は、第１〜第６部分行列を含み、符号化器は、情報語と第１部分行列とが乗算された第７部分行列を取得し、情報語と第３部分行列とが乗算された第８部分行列を取得し、第７部分行列と正負が反転された第５部分行列とが乗算された第９部分行列を取得し、第９部分行列と第８部分行列とが加算された第１０部分行列を取得し、第１０部分行列とデータとが乗算された第１パリティを取得し、第１パリティと正負が反転された第２部分行列とが乗算された第１１部分行列を取得し、第１１部分行列と第７部分行列とが加算された第２パリティを取得する。【選択図】図１７
2019057806.tif 000002
【特許請求の範囲】
【請求項１】
ホストと接続可能であって、
不揮発性メモリと、
前記ホストから受信したユーザデータの少なくとも一部を情報語としてグラフ符号により符号化する符号化器と、
前記符号化器が前記情報語を符号化する際に使用する符号化用データを保持する符号化データ保持部と、
前記符号化された符号語を前記不揮発性メモリへ書き込むメモリインタフェースと、
を備え、
前記グラフ符号の検査行列は、第１〜第６部分行列を含み、
前記符号化器は、
前記情報語と前記第１部分行列とが乗算された第７部分行列を取得し、
前記情報語と前記第３部分行列とが乗算された第８部分行列を取得し、
前記第７部分行列と正負が反転された前記第５部分行列とが乗算された第９部分行列を取得し、
前記第９部分行列と前記第８部分行列とが加算された第１０部分行列を取得し、
前記第１０部分行列と前記符号化用データとが乗算された第１パリティを取得し、
前記第１パリティと正負が反転された前記第２部分行列とが乗算された第１１部分行列を取得し、
前記第１１部分行列と前記第７部分行列とが加算された第２パリティを取得し、
前記メモリインタフェースは、前記情報語と前記第１パリティと前記第２パリティとを前記符号語として前記不揮発性メモリに書き込む
メモリシステム。
【請求項２】
前記検査行列は、組織符号型であり、
前記第１〜第６部分行列のうち前記第６部分行列は、単位行列である
請求項１に記載のメモリシステム。
【請求項３】
前記検査行列は、上段が前記第１、第２及び第６部分行列で構成され、下段が前記第３〜第５部分行列で構成された行列である請求項２に記載のメモリシステム。
【請求項４】
前記符号化器は、
前記情報語と前記第１部分行列とを乗算して前記第７部分行列を算出する第１乗算部と、
前記情報語と前記第３部分行列とを乗算して前記第８部分行列を算出する第２乗算部と、
前記第７部分行列と前記第５部分行列とを乗算して前記第９部分行列を算出する第３乗算部と、
前記第９部分行列と前記第８部分行列とを加算して前記第１０部分行列を算出する第１加算部と、
前記第１０部分行列と前記符号化用データとを乗算して前記第１パリティを算出する第４乗算部と、
前記第１パリティと前記第２部分行列とを乗算して前記第１１部分行列を算出する第５乗算部と、
前記第１１部分行列と前記第７部分行列とを加算して前記第２パリティを算出する第２加算部と、
を備える請求項１に記載のメモリシステム。
【請求項５】
前記グラフ符号は、ＢＣＨ符号であり、
前記符号化器は、
少なくとも前記ＢＣＨ符号の生成多項式に対応する数のシフトレジスタ群と、
前記シフトレジスタへ前記情報語を分配するセレクタと、
乗算器と、
加算器と、
前記情報語と前記第１パリティと前記第２パリティとを格納する符号語メモリと、
を備え、
前記シフトレジスタは、複数のシフトレジスタで構成された第１シフトレジスタ群と、複数の他のシフトレジスタで構成された第２シフトレジスタ群とを含み、
前記セレクタは、前記符号語メモリに格納されている前記情報語を前記第１シフトレジスタ群に入力し、
前記第１シフトレジスタ群は、前記セレクタによる前記情報語の入力に対して前記第７部分行列を計算し、
前記符号語メモリは、前記第１シフトレジスタ群で計算された前記第７部分行列を格納し、
前記セレクタは、前記符号語メモリに格納されている前記第７部分行列を前記第２シフトレジスタ群に入力し、
前記第２シフトレジスタ群は、前記セレクタによる前記第７部分行列の入力に対して前記第８及び第９部分行列並びに前記第１０部分行列を計算し、
前記乗算器は、前記第２シフトレジスタ群で計算された前記第１０部分行列に前記符号化用データを乗算することで前記第１パリティを計算し、
前記符号語メモリは、前記乗算器で算出された前記第１パリティを格納し、
前記セレクタは、前記符号語メモリに格納されている前記第１パリティを前記第１シフトレジスタ群に入力し、
前記第１シフトレジスタ群は、前記セレクタによる前記第１パリティの入力に対して前記第１１部分行列を計算し、
前記加算器は、前記第１シフトレジスタ群で算出された前記第１１部分行列と前記符号語メモリに格納されている前記第７部分行列とを加算することで前記第２パリティを計算し、
前記符号語メモリは、前記加算器で算出された前記第２パリティを格納する
請求項１に記載のメモリシステム。
【請求項６】
前記符号化用データは、前記第５部分行列と前記第２部分行列とを乗算することで得られた部分行列の正負を反転した第１２部分行列に前記第４部分行列を加算することで得られた部分行列の逆行列である請求項１に記載のメモリシステム。
【請求項７】
前記符号化用データは、
前記グラフ符号のグラフ構造を隣接行列により定めるデータを用いて前記符号化用データを最小化する接続行列を生成し、
前記グラフ構造における各頂点の成分符号の検査行列および前記接続行列から前記グラフ符号の検査行列を計算し、
前記グラフ符号の検査行列を用いて前記符号化用データを計算する
ことで得られたデータである請求項１に記載のメモリシステム。
【請求項８】
前記グラフ構造は、各頂点間が複数の辺で接続された構造を備える請求項７に記載のメモリシステム。
【請求項９】
前記グラフ構造は、Ｍ部グラフ符号である請求項７に記載のメモリシステム。
【請求項１０】
前記グラフ構造は、完全Ｍ部グラフ符号である請求項７に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は、一般的に、メモリシステムに関する。
【背景技術】
【０００２】
誤り訂正符号は、データを符号化し冗長にすることで、データに発生した誤りの訂正を可能にする。このような誤り訂正符号としては、積符号が存在する。近年では、より訂正能力の高い符号方式であるグラフ符号も提案されている。
【０００３】
グラフ符号は、成分符号をグラフ理論に基づく組み合わせにより構成される符号である。グラフ符号の符号化方式として生成行列を用いることで情報語の符号化を行う場合、生成行列のサイズが大きくなる。そのため、符号化に必要なデータを格納するためのデータ保存用の回路規模や符号化のためのメモリサイズが大きくなる場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１３／００２４７４５号明細書
【特許文献２】米国特許出願公開第２００７／０１６２８１５号明細書
【特許文献３】米国特許出願公開第２０１２／０１７３９４７号明細書
【特許文献４】米国特許出願公開第２０１７／００７７９５８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一つの実施形態は、符号化時に要求されるメモリのサイズを低減することが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、メモリシステムは、ホストと接続可能であって、不揮発性メモリと、前記ホストから受信したユーザデータの少なくとも一部を情報語としてグラフ符号により符号化する符号化器と、前記符号化器が前記情報語を符号化する際に使用する符号化用データを保持する符号化データ保持部と、前記符号化された符号語を前記不揮発性メモリへ書き込むメモリインタフェースとを備え、前記グラフ符号の検査行列は、第１〜第６部分行列を含み、前記符号化器は、前記情報語と前記第１部分行列とが乗算された第７部分行列を取得し、前記情報語と前記第３部分行列とが乗算された第８部分行列を取得し、前記第７部分行列と正負が反転された前記第５部分行列とが乗算された第９部分行列を取得し、前記第９部分行列と前記第８部分行列とが加算された第１０部分行列を取得し、前記第１０部分行列と前記符号化用データとが乗算された第１パリティを取得し、前記第１パリティと正負が反転された前記第２部分行列とが乗算された第１１部分行列を取得し、前記第１１部分行列と前記第７部分行列とが加算された第２パリティを取得し、前記メモリインタフェースは、前記情報語と前記第１パリティと前記第２パリティとを前記符号語として前記不揮発性メモリに書き込む。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
【図２】図２は、第１の実施形態に係る符号化用データ生成装置の概略構成例を示すブロック図である。
【図３】図３は、第１の実施形態に係るグラフ接続行列生成部の概略動作例を示すフローチャートである。
【図４】図４は、第１の実施形態において例示するグラフのグラフ構造を示す図である。
【図５】図５は、図４に示すグラフの隣接行列の例を示す図である。
【図６】図６は、第１の実施形態に係る辺のクラス分けを説明するための例を示す図である。
【図７】図７は、第１の実施形態に係る辺のクラス分けを説明するための他の例を示す図である。
【図８】図８は、第１の実施形態に係る辺がクラス分けされた隣接行列の例を示す図である。
【図９】図９は、第１の実施形態に係る辺番号付けを説明するための例を示す図である。
【図１０】図１０は、第１の実施形態に係る辺番号付けを説明するための他の例を示す図である。
【図１１】図１１は、第１の実施形態において生成される隣接行列の一例を示す図である。
【図１２】図１２は、第１の実施形態に係るグラフの接続行列の一例を示す図である。
【図１３】図１３は、第１の実施形態に係るグラフの頂点１〜６に対する成分符号の検査行列の一例を示す図である。
【図１４】図１４は、第１の実施形態に係るグラフの頂点７〜１０に対する成分符号の検査行列の一例を示す図である。
【図１５】図１５は、第１の実施形態に係るグラフ符号の検査行列の一例を示す図である。
【図１６】図１６は、第１の実施形態に係る符号化器の概略構成例を示すブロック図である。
【図１７】図１７は、第１の実施形態に係る符号化器が実行する符号化動作の一例を示すフローチャートである。
【図１８】図１８は、第２の実施形態に係るＬＦＳＲを用いた符号化アルゴリズムを実現するための符号化回路の構成例を示す図である（その１）。
【図１９】図１９は、第２の実施形態に係るＬＦＳＲを用いた符号化アルゴリズムを実現するための符号化回路の構成例を示す図である（その２）。
【図２０】図２０は、第２の実施形態に係るＬＦＳＲを用いた符号化アルゴリズムを実現するための符号化回路の構成例を示す図である（その３）。
【図２１】図２１は、第２の実施形態に係るＬＦＳＲを用いた符号化アルゴリズムを実現するための符号化回路の構成例を示す図である（その４）。
【図２２】図２２は、第２の実施形態に係るグラフ符号の検査行列の一例を示す図である。
【図２３】図２３は、第３の実施形態において例示するグラフのグラフ構造を示す図である。
【図２４】図２４は、図２３に示すグラフの隣接行列の例を示す図である。
【図２５】図２５は、第３の実施形態に係る辺番号付けを説明するための例を示す図である。
【図２６】図２６は、第３の実施形態に係る辺番号付けを説明するための他の例を示す図である。
【図２７】図２７は、第３の実施形態において生成される隣接行列の一例を示す図である。
【図２８】図２８は、第３の実施形態に係るグラフの接続行列の一例を示す図である。
【図２９】図２９は、第３の実施形態に係るグラフの頂点１〜４に対する成分符号の検査行列の一例を示す図である。
【図３０】図３０は、第３の実施形態に係るグラフの頂点５〜７に対する成分符号の検査行列の一例を示す図である。
【図３１】図３１は、第３の実施形態に係るグラフ符号の検査行列の一例を示す図である。
【図３２】図３２は、第４の実施形態において例示するグラフのグラフ構造を示す図である。
【図３３】図３３は、図３２に示すグラフの隣接行列の例を示す図である。
【図３４】図３４は、第４の実施形態に係る辺番号付けを説明するための例を示す図である。
【図３５】図３５は、第４の実施形態に係る辺番号付けを説明するための他の例を示す図である。
【図３６】図３６は、第４の実施形態において生成される隣接行列の一例を示す図である。
【図３７】図３７は、第４の実施形態に係るグラフの接続行列の一例を示す図である。
【図３８】図３８は、第４の実施形態に係るグラフ符号の検査行列の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態に係るメモリシステムを詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
【０００９】
（第１の実施形態）
まず、第１の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。図１は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。図１に示すように、メモリシステム１は、メモリコントローラ１０と不揮発性メモリ２０とを備える。メモリシステム１は、ホスト３０と接続可能であり、図１ではホスト３０と接続された状態が示されている。ホスト３０は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【００１０】
不揮発性メモリ２０は、データを不揮発に記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリ（以下、単にＮＡＮＤメモリという）である。以下の説明では、不揮発性メモリ２０としてＮＡＮＤメモリが用いられた場合を例示するが、不揮発性メモリ２０として３次元構造フラッシュメモリ、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等のＮＡＮＤメモリ以外の記憶装置を用いることも可能である。また、不揮発性メモリ２０が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【００１１】
メモリシステム１は、いわゆるＳＳＤ（Solid State Drive）や、メモリコントローラ１０と不揮発性メモリ２０とが１つのパッケージとして構成されるメモリカード等、不揮発性メモリ２０を備える種々のメモリシステムであってよい。
【００１２】
メモリコントローラ１０は、ホスト３０からの書込み要求に従って不揮発性メモリ２０への書込みを制御する。また、ホスト３０からの読出し要求に従って不揮発性メモリ２０からの読み出しを制御する。メモリコントローラ１０は、ホストＩ／Ｆ（ホストインタフェース）１５、メモリＩ／Ｆ（メモリインタフェース）１３、制御部１１、符号化／復号部（コーデック）１４及びデータバッファ１２を備える。ホストＩ／Ｆ１５、メモリＩ／Ｆ１３、制御部１１、符号化／復号部１４及びデータバッファ１２は、内部バス１６で相互に接続されている。
【００１３】
ホストＩ／Ｆ１５は、ホスト３０との間のインタフェース規格に従った処理を実施し、ホスト３０から受信した命令、書込み対象のユーザデータなどを内部バス１６に出力する。また、ホストＩ／Ｆ１５は、不揮発性メモリ２０から読み出されて復元されたユーザデータ、制御部１１からの応答などをホスト３０へ送信する。
【００１４】
メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０への書込み処理を行う。また、メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０からの読み出し処理を行う。
【００１５】
データバッファ１２は、メモリコントローラ１０がホスト３０から受信したユーザデータを不揮発性メモリ２０へ記憶するまでに一時格納する。また、データバッファ１２は、不揮発性メモリ２０から読み出されて復元されたユーザデータをホスト３０へ送信するまでに一時格納する。データバッファ１２には、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの汎用メモリを用いることができる。
【００１６】
符号化／復号部１４は、データバッファ１２に一旦格納されたユーザデータを符号化して、不揮発性メモリ２０へ書き込まれる符号語を生成する。また、符号化／復号部１４は、不揮発性メモリ２０から読み出された受信語を復号してユーザデータを復元する。そこで符号化／復号部１４は、符号化器（Encoder）１７と復号器（Decoder）１８を備える。なお、符号化／復号部１４により符号化されるデータには、ユーザデータ以外にも、メモリコントローラ１０内部で用いる制御データ等が含まれてもよい。
【００１７】
制御部１１は、メモリシステム１の各構成要素を統括的に制御する。制御部１１は、ホスト３０からホストＩ／Ｆ１５経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部１１は、ホスト３０からの書き込み要求に従って、当該書込み要求と共にホスト３０から受信してデータバッファ１２内に蓄積されたユーザデータの不揮発性メモリ２０への書き込みをメモリＩ／Ｆ１３へ指示する。また、制御部１１は、ホスト３０からの読出し要求に従って、不揮発性メモリ２０からのユーザデータの読み出しをメモリＩ／Ｆ１３へ指示する。
【００１８】
また、制御部１１は、ホスト３０から書込み要求を受信した場合、当該書込み要求と共にホスト３０から受信してデータバッファ１２に蓄積されたユーザデータに対して、不揮発性メモリ２０上の格納領域（メモリ領域）を決定する。すなわち、制御部１１は、ユーザデータの書込み先を管理する。ホスト３０から受信したユーザデータの論理アドレスと該ユーザデータが格納された不揮発性メモリ２０上の格納領域を示す物理アドレスとの対応はアドレス変換テーブルとして格納される。
【００１９】
また、制御部１１は、ホスト３０から読出し要求を受信した場合、読出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリＩ／Ｆ１３へ指示する。
【００２０】
ＮＡＮＤメモリでは、一般に、ページと呼ばれるデータ単位で、書き込み及び読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、この同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルがシングルレベルセル（ＳＬＣ）である場合は、１つのメモリセルグループが１ページに対応する。メモリセルがマルチレベルセル（ＭＬＣ）である場合は、１つのメモリセルグループが複数ページに対応する。また、各メモリセルはワード線に接続するとともにビット線にも接続される。したがって、各メモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
【００２１】
次に、本実施形態の書込み処理について説明する。制御部１１は、不揮発性メモリ２０への書込み時に、ユーザデータの符号化を符号化器１７に指示する。その際、制御部１１は、不揮発性メモリ２０における符号語の格納場所（格納アドレス）を決定し、決定した格納場所もメモリＩ／Ｆ１３へ指示する。
【００２２】
符号化器１７は、制御部１１からの指示に基づいて、データバッファ１２上のユーザデータを符号化して符号語を生成する。符号化方式としては、後述するように、例えば、ＢＣＨ（Bose-Chandhuri-Hocquenghem）符号のような代数的符号を用いた符号化方式や、ＬＤＰＣ（Low-Density Parity-Check）符号のような疎グラフに基づく符号を用いた符号化方式とを採用することができる。メモリＩ／Ｆ１３は、制御部１１から指示された不揮発性メモリ２０上の格納場所へ符号語を格納する制御を行う。
【００２３】
次に、本実施形態の不揮発性メモリ２０からの読出し時の処理について説明する。制御部１１は、不揮発性メモリ２０からの読出し時に、不揮発性メモリ２０上のアドレスを指定してメモリＩ／Ｆ１３へ読み出しを指示する。また、制御部１１は、復号器１８へ復号の開始を指示する。メモリＩ／Ｆ１３は、制御部１１の指示に従って、不揮発性メモリ２０の指定されたアドレスから受信語を読み出し、読み出した受信語を復号器１８に入力する。復号器１８は、この不揮発性メモリ２０から読み出された受信語を復号する。
【００２４】
つづいて、本実施形態において、符号化器１７が符号化の際に使用する符号化用データを生成する構成及びその動作について、以下に図面を参照して詳細に説明する。
【００２５】
図２は、本実施形態に係る符号化用データ生成装置の概略構成例を示すブロック図である。なお、以下の説明では、頂点数Ｖ（Ｖは１以上の整数）の無向グラフ（以下、単にグラフという）Ｇが与えられるものとする。その場合、グラフ符号の成分符号数はＶとなる。また、本説明では、グラフの２頂点間に複数の辺があってもよいものとする。
【００２６】
図２に示すように、符号化用データ生成装置１００は、第１〜第Ｖ成分符号検査行列生成部１０２１〜１０２Ｖと、第１〜第Ｖ成分符号検査行列記憶部１０３１〜１０３Ｖと、グラフ構造定義データ記憶部１０４と、グラフ接続行列生成部１０５と、グラフ接続行列記憶部１０６と、グラフ符号検査行列計算部１２１と、グラフ符号冗長部計算用データ計算部１２３とを備える。なお、以下の説明において、第１〜第Ｖ成分符号検査行列生成部１０２１〜１０２Ｖを区別しない場合、成分符号検査行列生成部１０２という。同様に、第１〜第Ｖ成分符号検査行列記憶部１０３１〜１０３Ｖを区別しない場合、成分符号検査行列記憶部１０３という。
【００２７】
図２に示す構成において、第１〜第Ｖ成分符号検査行列生成部１０２１〜１０２Ｖ及び第１〜第Ｖ成分符号検査行列記憶部１０３１〜１０３Ｖは、それぞれグラフＧの各頂点に対して設けられる。各成分符号検査行列生成部１０２は、各成分符号の符号長及び情報長等を定義する成分符号基本データ１０１を入力し、入力された成分符号基本データ１０１に基づいて各頂点における成分符号の検査行列（以下、成分符号検査行列という）を生成して出力する。また、各成分符号検査行列記憶部１０３は、それぞれが対応する成分符号検査行列生成部１０２から出力された成分符号検査行列を記憶する。
【００２８】
なお、本実施形態において、各成分符号検査行列は、組織符号型Ｈ＝（Ｐ Ｉ）であり（Ｉは単位行列）、情報部に対応する部分行列Ｐ（図２における第１〜第Ｖ成分符号検査行列情報部１１１１〜１１１Ｖに対応）と、冗長部に対応する部分行列Ｉ（図２における第１〜第Ｖ成分符号検査行列冗長部１１２１〜１１２Ｖに対応）とに分けることができるものである。以下の説明において、第１〜第Ｖ成分符号検査行列情報部１１１１〜１１１Ｖを区別しない場合、成分符号検査行列情報部１１１という。同様に、第１〜第Ｖ成分符号検査行列冗長部１１２１〜１１２Ｖを区別しない場合、成分符号検査行列冗長部１１２という。
【００２９】
グラフ構造定義データ記憶部１０４は、グラフＧの隣接行列など、グラフＧの構造を定義するためのデータ（グラフ構造定義データ）を記憶する。グラフ接続行列生成部１０５は、各成分符号の検査行列、又は、各成分符号の情報部の長さ及び冗長部の長さを入力とし、これらの入力された情報に対してグラフ構造定義データ記憶部１０４から入力されたグラフ構造定義データを用いることで、グラフ符号における冗長部の長さを最小化するようなグラフＧの接続行列（以下、グラフ接続行列という）を生成して出力する。また、グラフ接続行列記憶部１０６は、グラフ接続行列生成部１０５から出力されたグラフ接続行列を記憶する。
【００３０】
なお、本実施形態において、グラフ接続行列は、後述するように、情報部に対応する部分行列（図２におけるグラフ接続行列情報部１１３に対応）と、冗長部に対応する部分行列（図２におけるグラフ接続行列冗長部１１４に対応）とに分けることができるものである。
【００３１】
グラフ符号検査行列計算部１２１は、それぞれの頂点における成分符号検査行列及びグラフ接続行列を入力として、グラフ符号の検査行列（以下、グラフ符号検査行列という）１２２を計算して出力する。グラフ符号検査行列計算部１２１における計算では、各成分符号検査行列に関し、成分符号検査行列情報部１１１がグラフ接続行列情報部１１３と作用し、成分符号検査行列冗長部１１２がグラフ接続行列冗長部１１４と作用する。それにより、グラフ符号検査行列１２２が計算されて出力される。
【００３２】
グラフ符号冗長部計算用データ計算部１２３は、グラフ符号検査行列１２２を入力として、グラフ符号冗長部計算用データ（符号化用データ）１２４を出力する。その際、グラフ接続行列生成部１０５においてグラフＧの各頂点間を結ぶ辺の番号付け（以下、単に辺番号付けという）を工夫することで、グラフ符号検査行列１２２をRichardson-Urbanke（ＲＵ）法による符号化に適用可能な形とすることが可能となる。その結果、後述するように、グラフ符号冗長部計算用データ（符号化用データ）１２４を最小化することが可能となる。
【００３３】
つづいて、図２におけるグラフ接続行列生成部１０５の動作について、図面を参照して詳細に説明する。図３は、本実施形態に係るグラフ接続行列生成部の概略動作例を示すフローチャートである。図３に示すように、本動作では、グラフ接続行列生成部１０５は、まずグラフＧの隣接行列（以下、グラフ隣接行列という）を作成する（ステップＳ１０１）。つづいて、グラフ接続行列生成部１０５は、情報部と冗長部とに分けたグラフＧの頂点間を結ぶ辺を番号付けする（ステップＳ１０２）。そして、グラフ接続行列生成部１０５は、作成したグラフ隣接行列及び各辺の番号に基づいてグラフ接続行列を作成し（ステップＳ１０３）、本動作を終了する。
【００３４】
つづいて、図３に示すフローチャートにおける各ステップの詳細について、図面を参照して詳細に説明する。
【００３５】
まず、図３のステップＳ１０１に示す動作（グラフ隣接行列の作成動作）について説明する。ここで、頂点数ＶのグラフＧを表現する隣接行列をＡＧとすると、隣接行列ＡＧはＶ×Ｖ行列となる。隣接行列ＡＧの各行及び各列は、それぞれグラフＧの頂点に対応している。また、隣接行列ＡＧの各行及び各列には、２頂点の間に辺がある場合はその辺の数が格納され、辺がない場合は０が格納される。なお、本実施形態において、隣接行列ＡＧは、対角成分が０の対称行列である。
【００３６】
例えば、図４で表されるグラフＧが与えられたとき、その隣接行列ＡＧは、図５に示す行列で表すことができる。ここで、図４における白丸内の数字は、それぞれの頂点番号を表している。また、図５における隣接行列ＡＧの外側に割り振られている数字は、それぞれの行または列が対応している頂点の番号を表している。なお、図４で表されるグラフＧは、完全３部グラフである。ここで、完全Ｍ部グラフとは、グラフの頂点をＭ（Ｍは２以上の整数）個の部分集合に分割したとき、各部分集合の頂点同士の間には辺がなく、かつ異なる部分集合内の頂点同士の間には必ず辺が存在するグラフのことである。
【００３７】
次に、図３のステップＳ１０２に示す動作（グラフの辺番号付けを行う動作）について説明する。図３のステップＳ１０２に示す動作は、グラフ符号冗長部計算用データ（符号化用データ）１２４を最小化する上で重要な動作である。グラフの辺番号付けでは、ある頂点につながる全ての辺に対して番号をつけるという動作が全ての頂点に対して実行される。これは、隣接行列ＡＧの非零要素を辺番号で置き換えることに対応する。ただし、隣接行列ＡＧは対称行列であるため、上三角部分について番号付けを行えば十分である。本発明においては、各頂点につながる辺々を、情報部に対応する辺集合と、冗長部に対応する辺集合とにクラス分けし、それぞれの集合に対して別々に辺番号付けを行うことにより、最終的に得られる検査行列を所望の形にすることで、グラフ符号冗長部計算用データ（符号化用データ）１２４の削減を図っている。具体的なアルゴリズム（隣接行列を用いた辺番号付けアルゴリズム）については、つぎに説明する。
【００３８】
隣接行列を用いた辺番号付けアルゴリズムの実行にあたっては、次の３つの条件が仮定される。第１に、隣接行列の上三角部分のみ考える。第２に、各頂点ｊにおける非零要素の値の合計値をｎ（ｊ）とし、成分符号の冗長部長さをｐ（ｊ）とする。第３に、情報部に対応する辺集合をＥ（ｉ）と表し、冗長部に対応する辺集合をＥ（ｒ）と表す。
【００３９】
隣接行列を用いた辺番号付けアルゴリズムの実行では、第１に、辺のクラス分けが行なわれ、第２に、辺番号付けが行なわれる。
【００４０】
辺のクラス分けでは、第ｊ（ｊは１以上の整数）行の非零要素について、列番号の若い方から順に値を加算していき、その合計値が（ｎ（ｊ）−ｐ（ｊ））より大きくなる前後でクラス分けをする。すなわち、合計値が（ｎ（ｊ）−ｐ（ｊ））以下になるまでの非零要素をＥ（ｉ）に含め、それ以外の非零要素をＥ（ｒ）に含めるようにクラス分けが実行される。この動作は、ｊ＝１，２，…，Ｖに対して実行される。その際、合計値が（ｎ（ｊ）−ｐ（ｊ））より大きくならない行がある場合には、その行については、全ての非零要素がＥ（ｉ）に含められる。
【００４１】
辺番号付けでは、前述の動作を行った結果として得られた、辺集合Ｅ（ｉ）に含まれる要素数をＮ（Ｅ（ｉ））とし、要素の合計値をＳ（Ｅ（ｉ））とし、辺集合Ｅ（ｒ）に含まれる要素数をＮ（Ｅ（ｒ））とし、要素の合計値をＳ（Ｅ（ｒ））とする。辺集合Ｅ（ｉ）に含まれる辺の番号付けでは、１からＳ（Ｅ（ｉ））までの番号が、漏れなく且つ重複なく、全ての要素に対して割り振られる。このとき、ある要素の値をｋとすると、その要素にはｋ個の連続した番号を割り振ることとする（すなわち、１つの辺に対しては１つの番号が割り振られる）。辺集合Ｅ（ｒ）に含まれる辺の番号付けは、Ｅ（ｒ）に含まれるのが早い順に、Ｓ（Ｅ（ｉ））＋１，Ｓ（Ｅ（ｉ））＋２，…，Ｓ（Ｅ（ｉ））＋Ｓ（Ｅ（ｒ））の順で番号を割り振る。ここでも、ある要素の値がｋのときは、その要素にはｋ個の連続した番号を割り振ることとする。
【００４２】
以上のようなアルゴリズムを、図４で表されるグラフＧに対する辺番号付けを例に挙げて説明する。なお、本例では、各頂点における成分符号の冗長部長さは３とする。１番目の頂点につながる辺のクラス分けは、グラフＧで見ると図６のように表される。ここで、点線の辺は情報部辺集合に含まれ、一点破線の辺は冗長部辺集合に含まれることとする。同様に、２番目の頂点につながる辺のクラス分けは図７のように表される。同様の手続きを残り全ての頂点について繰り返すことで、図８に示すように、隣接行列ＡＧの上三角部分に含まれる全ての辺のクラス分けを行うことができる。ここで、点線枠で囲まれた部分８０１は情報部辺集合を表し、一点破線枠で囲まれた部分８０２は冗長部辺集合を表している。
【００４３】
次に、クラス分けを利用して辺番号付けを行う。情報部辺集合に含まれる辺の番号付けは、この集合に含まれたのが早い順に若い番号付けを行うものとする。ここで、情報部辺集合に含まれる辺の数が１５であることに注意すると、１番目の頂点につながる辺の番号付けは、図９のように表される。同様に、２番目の頂点につながる辺の番号付けは、図１０のように表される。同様の手続きを残り全ての頂点について繰り返すことで、全ての辺に番号付けを行うことができる。これを隣接行列ＡＧの要素を置き換えることで実行すると、最終的に得られる行列は図１１のように表される。図１１に示すように、部分１１０２の冗長部辺集合に含まれる辺の番号は、部分１１０１の情報部辺集合に含まれるどの辺よりも番号が大きくなっている。
【００４４】
次に、図３のステップＳ１０３に示す動作（グラフ接続行列の作成動作）について説明する。ここで、頂点数Ｖ、辺数ＥのグラフＧを表現する接続行列をＢＧとすると、ＢＧはＶ×Ｅ行列となる。接続行列ＢＧの各行は頂点に、各列は辺に、それぞれ対応している。また、接続行列ＢＧの各行及び各列には、頂点と辺が接続している場合には１が格納され、接続していない場合には０が格納される。
【００４５】
例えば、図１１で表されるような辺番号行列が得られているとき、辺番号行列の各行の非零要素の値に対応する接続行列ＢＧの列に１が格納され、その他の列については０が格納されることで、最終的に接続行列ＢＧが得られる。したがって、図４で表されるグラフＧの接続行列は、図１２のように表される。ここで、点線枠で囲まれた部分１２０１は情報部辺集合に対応する部分を表し、一点破線枠で囲まれた部分１２０２は冗長部辺集合に対応する部分を表している。なお、行列の外側に割り振られている数字は、行についてはその行が対応する頂点の番号、列についてはその列が対応する辺の番号を表す。
【００４６】
次に、図２に示す符号化用データ生成装置１００におけるグラフ符号検査行列計算部１２１が行うグラフ符号の検査行列を得る動作について説明する。グラフ符号の検査行列は、グラフＧの各頂点において定義される成分符号の検査行列と、グラフＧの接続行列とから構成される。グラフ符号の検査行列を作成する具体的なアルゴリズム（グラフ符号の検査行列作成アルゴリズム）は以下の通りである。なお、当該アルゴリズムの実行においては、次の３つの条件が仮定される。第１に、上述した動作によりグラフＧの接続行列が得られているとする。第２に、接続行列の第ｊ行における１の個数をｎ（ｊ）とし、先頭部分からｋ＝１，２，…，ｎ（ｊ）とラベル付けされているとする。第３に、グラフＧの各頂点における成分符号の検査行列は組織符号型（後方部分が単位行列）であるとする。
【００４７】
グラフ符号の検査行列作成アルゴリズムでは、接続行列の第ｊ行において、第ｋ番目の１要素が、成分符号の検査行列の第ｋ列ベクトルで置き換えられる。０要素については、零列ベクトルで置き換えられる。以上の動作がｊ＝１，２，…，Ｖで実行される。
【００４８】
例として、図４で表されるグラフＧにより定まるグラフ符号の検査行列を構成する場合について説明する。グラフＧの接続行列は、上述したように、図１２のように表される。グラフＧの各頂点における成分符号の検査行列は、頂点１から６については図１３に示す式により与えられ、頂点７から１０については図１４に示す式により与えられるとする。ここで、図１３及び図１４における点線枠で囲まれた部分１３０１及び１４０１は情報部を表しており、一点破線枠で囲まれた部分１３０２及び１４０２は冗長部を表している。その場合、グラフ符号の検査行列Ｈは、図１５のように与えられる。図１５に示すように、接続行列の点線枠で囲まれた情報部に対応する部分１５０１は、成分符号検査行列の情報部１５１１で置き換えられる。また、一点破線枠で囲まれた冗長部に対応する部分１５０２は、成分符号検査行列の冗長部１５１２で置き換えられる。これは、図２に示す符号化用データ生成装置１００では、成分符号検査行列の情報部がグラフ接続行列の情報部と作用し、成分符号検査行列の冗長部がグラフ接続行列の冗長部と作用していることに対応している。なお、ここでは符号のシンボルが２元の場合を例に説明したが、多元であってもよい。
【００４９】
以上の説明に基づき、グラフ符号の検査行列作成アルゴリズムを実行すると、グラフ符号の検査行列Ｈは、以下の式（１）で表される。
【数１】
2019057806.tif 000003
【００５０】
式（１）において、Ｉは単位行列である。また、部分行列Ａ，Ｂ，Ｃ，Ｄ，Ｅ及びＩを、第１〜第６部分行列ともいう。ここで、成分符号の冗長部長さがグラフＧの辺本数と非整合である場合、適切に列置換を施すことによって検査行列Ｈを式（１）の形にすることができる。また、Ｈがフルランクでない場合、Ｈの下側部分行列、すなわち（Ｃ，Ｄ，Ｅ）からなる行列中の線形従属な行を除いたものを、グラフ符号の検査行列Ｈとして再定義する。グラフ符号の符号長をＮ、情報長をＫと表すと、Ａは（Ｎ−Ｋ−ｇ）×Ｋ行列、Ｂは（Ｎ−Ｋ−ｇ）×ｇ行列、Ｃはｇ×Ｋ行列、Ｄはｇ×ｇ行列、Ｅはｇ×（Ｎ−Ｋ−ｇ）行列となる。なお、ｇ＜Ｎ−Ｋであり、ｇは単位行列部分が大きくなればなるほど小さくなる。
【００５１】
図３のステップＳ１０３に示したグラフ接続行列を得るための動作は、単位行列部分を最大化してｇを最小化するためのアルゴリズムである。したがって、式（１）に示す検査行列Ｈから定義される符号の符号語は、以下に説明するＲＵ法により求めることができる。符号語をｃ＝（ｉ，ｐ１，ｐ２）と表すと、Ｈｃｔ＝０ｔより、符号語ｃは次の検査方程式（２）及び（３）を満たす。
【数２】
2019057806.tif 000004
【数３】
2019057806.tif 000005
【００５２】
ここで、φ＝−ＥＢ＋Ｄであり、φ−１はφの逆行列である。行列φが正則でない場合、グラフ符号の検査行列を適切に列置換することにより、グラフ符号冗長部計算用データ（符号化用データ）１２４であるφ−１を求めることができる。具体的には、次に述べる方法で行列φを正則にすることができる。まず、式（１）で表される行列Ｈの下部の行列（Ｃ Ｄ Ｅ）を行基本変形により（Ｃ’ Ｄ’ Ｏ）の形に変換する。なお、この行列の行ベクトルらは線形独立である。次に、（Ｃ’ Ｄ’ Ｏ）に行基本変形と列置換を行うことで、（Ｃ’ Ｄ’ Ｏ）を（Ｃ” Ｉ Ｏ）の形に変換する。これらの行基本変形と列置換を行列Ｈ上に拡張した操作を行うことで、その操作により得られる行列から得られる行列φが正則となる。
【００５３】
以上のように生成されたグラフ符号冗長部計算用データ（符号化用データ）１２４であるφ−１は、メモリシステム１におけるデータバッファ１２や符号化／復号部１４内のメモリ等（符号化データ保持部ともいう）に保持され、符号化／復号部１４における符号化器１７が符号化を実行する際に使用される。以下、本実施形態に係る符号化器１７による符号化について、図面を参照して詳細に説明する。
【００５４】
図１６は、本実施形態に係る符号化器の概略構成例を示すブロック図である。図１６に示すように、符号化器１７は、行列Ｃ乗算部２０２、行列Ａ乗算部２０４、行列−Ｅ乗算部２０６、行列−φ−１乗算部２１０、及び、行列−Ｂ乗算部２１２と、ベクトル加算部２０８及び２１４とを備える。
【００５５】
つづいて、図１６に示す符号化器１７の符号化動作を、図１７に示すフローチャートを用いて説明する。図１７は、本実施形態に係る符号化器が実行する符号化動作の一例を示すフローチャートである。
【００５６】
図１７に示すように、符号化器１７は、まず、情報語（ｉ）２０１を読み込む（ステップＳ２０１）。ここで、情報語（ｉ）は、例えば、ホスト３０からの書込み要求で指定されたユーザデータの一部又は全部である。読み込んだ情報語（ｉ）２０１は、行列Ｃ乗算部２０２と行列Ａ乗算部２０４とにそれぞれ入力される。これに対し、行列Ｃ乗算部２０２は、入力された情報語（ｉ）２０１に対して部分行列Ｃを乗算することで部分行列（Ｃｉ）２０３を計算し、行列Ａ乗算部２０４は、入力された情報語（ｉ）２０１に対して部分行列Ａを乗算することで部分行列（Ａｉ）２０５を計算する（ステップＳ２０２）。行列Ａ乗算部２０４により計算された部分行列（Ａｉ）２０５は、行列−Ｅ乗算部２０６に入力される。行列−Ｅ乗算部２０６は、入力された部分行列（Ａｉ）２０５に対して部分行列−Ｅを乗算することで部分行列（−ＥＡｉ）２０７を計算する（ステップＳ２０３）。
【００５７】
以上のようにして、行列Ｃ乗算部２０２により計算された部分行列（Ｃｉ）２０３及び行列−Ｅ乗算部２０６により計算された部分行列（−ＥＡｉ）２０７は、ベクトル加算部２０８に入力される。ベクトル加算部２０８は、部分行列（Ｃｉ）２０３と部分行列（−ＥＡｉ）２０７とを加算することで、部分行列（（−ＥＡ＋Ｃ）ｉ）２０９を計算する（ステップＳ２０４）。ベクトル加算部２０８で計算された部分行列（（−ＥＡ＋Ｃ）ｉ）２０９は、行列−φ−１乗算部２１０に入力される。行列−φ−１乗算部２１０は、入力された部分行列（（−ＥＡ＋Ｃ）ｉ）２０９に対して上述の式（２）に相当する動作を行うことにより、冗長部（ｐ１）２１１を計算する（ステップＳ２０５）。
【００５８】
行列−φ−１乗算部２１０で計算された冗長部（ｐ１）２１１は、行列−Ｂ乗算部２１２に入力される。行列−Ｂ乗算部２１２は、入力された冗長部（ｐ１）２１１に対して部分行列−Ｂを乗算することで部分行列（−Ｂｐ１）２１３を計算する（ステップＳ２０６）。行列−Ｂ乗算部２１２で計算された部分行列（−Ｂｐ１）２１３は、ベクトル加算部２１４に入力される。ベクトル加算部２１４には、ステップＳ２０２において行列Ａ乗算部２０４により計算された部分行列（Ａｉ）２０５も入力される。ベクトル加算部２１４は、入力された部分行列（−Ｂｐ１）２１３及び部分行列（Ａｉ）２０５を用いて式（３）に相当する動作を行うことにより、冗長部（ｐ２）２１５を計算する（ステップＳ２０７）。
【００５９】
このようにして、冗長部（ｐ１）２１１及び（ｐ２）２１５を算出すると、符号化器１７は、ステップＳ２０１で入力された情報語（ｉ）２０１と冗長部（ｐ１）２１１及び（ｐ２）２１５とを連接することで、符号語（ｃ）２１６を作成し、作成した符号語（ｃ）２１６を出力して（ステップＳ２０８）、本動作を終了する。
【００６０】
なお、図１７に示す動作において、部分行列Ａ、Ｂ、Ｃ、Ｄ及びＥは、グラフＧの接続行列及び各頂点における成分符号の検査行列から構成される。そのため、符号化器１７は、これらの部分行列を符号化用データとして保持しておかなくてもよい。すなわち、符号化器１７は、グラフ符号冗長部計算用データ（符号化用データ）１２４としてφ−１を保持していればよい。なお、必要なグラフ符号冗長部計算用データ（符号化用データ）１２４のサイズは、φ−１のサイズｇ×ｇに相当する。上述において図３を用いて説明したグラフ接続行列生成動作においてステップＳ１０２に示すような動作（グラフの辺番号付けを行う動作）を行うのは、このｇを最小化するためである。ｇを最小化することで、グラフ符号冗長部計算用データ計算部１２３で生成されるグラフ符号冗長部計算用データ（符号化用データ）１２４を最小化することが可能となる。
【００６１】
以上のように、本実施形態によれば、グラフ接続行列が情報部と冗長部とに分割され、それぞれ独立に辺番号付けが実行される。それにより、グラフ符号の検査行列が右上階段行列型となり、符号の符号化に必要なデータサイズが大幅に削減されるため、符号化時に要求されるメモリのサイズを低減することが可能となる。その結果、効果的な符号化を行うことが可能となる。
【００６２】
また、本実施形態によれば、グラフ符号の構造をＭ部グラフとすることで、符号化器１７の実装を容易にすることが可能となる。その際に、グラフ符号の構造を完全Ｍ部グラフとすることで、符号化器１７の実装をさらに容易にすることが可能となる。
【００６３】
（第２の実施形態）
つぎに、第２の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。本実施形態では、上述した第１の実施形態において、グラフ符号の成分符号にＢＣＨ符号を用いた場合を例示する。なお、本実施形態に係る符号化器を含むメモリシステムの構造は、第１の実施形態において例示したメモリシステム１と同様であってよいため、ここでは重複する説明を省略する。また、本実施形態に係るグラフ符号冗長部計算用データ（符号化用データ）を算出するための構成及び動作も、第１の実施形態で例示した構成及び動作と同様であってよいため、ここでは重複する説明を省略する。
【００６４】
本実施形態の説明にあたり、頂点数Ｖ、辺数Ｅの無向グラフＧが与えられ、それぞれの頂点において検査行列ＨＢＣＨにより定義されるＢＣＨ符号が与えられているとする。ここで、ＨＢＣＨは組織符号型であるとする。第１の実施形態で例示した動作により、グラフＧの各辺に辺番号付けを行い、ＲＵ法による符号化が可能な形の接続行列ＢＧを得たとする。このとき、ＢＧの各非零要素をＨＢＣＨの列ベクトルで適切に置き換える操作により、以下の式（４）で表される、ＲＵ法により符号化可能なグラフ符号の検査行列Ｈを得ることができる。なお、式（４）において、Ｉは単位行列である。
【数４】
2019057806.tif 000006
【００６５】
グラフ符号の符号長をＮ、情報長をＫと表すと、Ａは（Ｎ−Ｋ−ｇ）×Ｋ行列、Ｂは（Ｎ−Ｋ−ｇ）×ｇ行列、Ｃはｇ×Ｋ行列、Ｄはｇ×ｇ行列、Ｅはｇ×（Ｎ−Ｋ−ｇ）行列となる。なお、ｇ＜Ｎ−Ｋである。
【００６６】
ここで、Ｈの部分行列Ｘ（Ｘ＝Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｉ）に変換されるＢＧの部分行列をＢＧ（Ｘ）と定義すると、ＢＧは式（４）に基づいて以下の式（５）により表される。
【数５】
2019057806.tif 000007
【００６７】
ＢＧ（Ｘ）のｖ行ｅ列成分をｂｖ,ｅ（Ｘ）と表す。また、ＢＧ（Ａ）に対応する頂点集合をＶＡ、ＢＧ（Ｃ）に対応する頂点集合をＶＣと表すことにする。その場合、上述した式（４）に示す検査行列Ｈから定義されるグラフ符号の符号語ｃ＝（ｉ，ｐ１，ｐ２）は、Ｈｃｔ＝０ｔより、次の式（６）及び（７）に示す関係式を満たす。
【数６】
2019057806.tif 000008
【数７】
2019057806.tif 000009
【００６８】
ここで、φ＝ＥＢ＋Ｄであり、φ−１はφの逆行列である。なお、本説明では２元符号を想定しているため、正負の符号の区別はつけていない。
【００６９】
式（４）で表されるグラフ符号の検査行列ＨはＢＣＨ符号の検査行列ＨＢＣＨから構成されていること、および行列Ａ、Ｂ、Ｃ及びＥはＨの部分行列であることを考えると、式（６）及び（７）中の行列とベクトルとの積の計算は、ＨＢＣＨの部分行列とベクトルとの積の計算に分解することができる。
【００７０】
ここで、組織符号型のＢＣＨ符号検査行列ＨＢＣＨ＝［ｈ１ｈ２ … ｈｎ］およびそのＢＣＨ符号の生成多項式に対応する線形フィードバックシフトレジスタ（以降ＬＦＳＲと呼ぶ）が与えられているとする。ＢＣＨ符号の冗長部長さがｒのとき、このＬＦＳＲは、ｒ個の記憶素子がｍｏｄ２の加算回路で結線されたフィードバック接続で構成されるシフトレジスタ回路である。
【００７１】
ＬＦＳＲには、クロック毎にデータが入力される。ＬＦＳＲの記憶素子内にすでに格納されていたデータは、クロック毎に隣接する記憶素子へ移される。したがって、情報語や受信語をＬＦＳＲに入力することで、ＢＣＨ符号の符号化や復号を行うことができる。また、ＬＦＳＲを用いて組織符号型検査行列とベクトルとの積を計算することもできる。
【００７２】
具体的には、ＨＢＣＨとベクトルｗ＝（ｗ１，ｗ２，…，ｗｎ）との積は、ＬＦＳＲにｗの各要素を順次入力し、全て入力し終わったときに、ＬＦＳＲに格納されているビット系列と一致する。ここで、ＨＢＣＨから（ｄ１，ｄ２，…，ｄｓ）番目のｓ本の列ベクトルを取り除き、ＨＢＣＨの部分行列Ｈ’ＢＣＨ＝［ｈ’１ｈ’２ … ｈ’ｎ−ｓ］をつくることを考える。また、長さ（ｎ−ｓ）のベクトルｖ＝（ｖ１，ｖ２，…，ｖｎ−ｓ）が与えられたとして、（ｄ１，ｄ２，…，ｄｓ）番目の要素を０とし、それ以外の要素をｖとし、それらの要素を若い順に先頭から格納することで、長さｎのベクトルｗ＝（ｗ１，ｗ２，…，ｗｎ）を作成する。このとき、Ｈ’ＢＣＨとベクトルｖとの積は、ＨＢＣＨとベクトルｗの積と一致することが容易に確認できる。したがって、ＨＢＣＨの部分行列Ｈ’ＢＣＨとベクトルｖとの積は、ｖから定義したｗの各要素をＨＢＣＨに対応するＬＦＳＲに順次入力し、全て入力し終わったときに、ＬＦＳＲに格納されているビット系列と一致することが分かる。
【００７３】
以上の説明から、式（６）及び（７）中の行列とベクトルとの積の計算は、ＨＢＣＨの部分行列とベクトルとの積の計算に分解することができ、その計算はＬＦＳＲにより実行することができることが分かる。以下に、成分符号がＢＣＨ符号の場合のＬＦＳＲを用いた符号化アルゴリズム及び回路における動作について説明する。なお、符号化アルゴリズムの実行においては、次の７つの条件を想定する。第１に、長さＫの情報語ｉ＝（ｉ１，ｉ２，…，ｉＫ）が与えられているとする。第２に、各頂点ｖにおいて、符号長ｎｖ、パリティ長ｒｖのＢＣＨ符号を定める。第３に、各頂点ｖにおいて、定められているＢＣＨ符号に対応するシフトレジスタＬＦＳＲ（ｖ）を用意する。また、カウンタＣＮＴ（ｖ）も用意する。これらは当初、０に初期化されているとする。第４に、頂点集合ＶＡに対応するＬＦＳＲを上部ＬＦＳＲ群、頂点集合ＶＣに対応するＬＦＳＲを下部ＬＦＳＲ群と呼ぶ。第５に、長さＮの符号語を格納するためのメモリである符号語メモリを用意する。このメモリは、長さＫの情報語ｉを格納する部分である情報部２２６ａ、長さｇのｐ１を格納する部分である第１パリティ部２２６ｂ、長さ（Ｎ−Ｋ−ｇ）のｐ２を格納する部分である第２パリティ部２２６ｃに分けられている。第６に、符号語メモリに格納されている各ビットは、セレクタを通して各ＬＦＳＲに入力される。このとき、セレクタはグラフＧの接続行列ＢＧに従って入力ビットが振り分けられる。第７に、φ−１乗算回路は、入力されたベクトルとφ−１との積の演算結果を出力する。
【００７４】
図１８〜図２１は、本実施形態に係るＬＦＳＲを用いた符号化アルゴリズムを実現するための符号化回路の構成例を示す図である。図１８〜図２１に示すように、符号化回路２２０は、セレクタ２２１と、上部ＬＦＳＲ群２２２と、下部ＬＦＳＲ群２２３と、φ−１乗算回路２２４と、ベクトル加算器２２５と、符号語メモリ２２６とを備える。
【００７５】
図１８〜図２１に示す符号化回路２２０において実現されるＬＦＳＲを用いた符号化アルゴリズムでは、まず、部分行列Ａｉｔ及びＣｉｔが計算される。この計算では、図１８に示すように、まず、符号語メモリ２２６内の情報部２２６ａに格納されている情報語ｉ＝（ｉ１，ｉ２，…，ｉＫ）が若い要素順に順次、セレクタ２２１に入力される。セレクタ２２１では、ｉｊが入力のときは、ｂｖ,ｊ（Ａ）＝１またはｂｖ,ｊ（Ｃ）＝１となるＬＦＳＲ（ｖ）を選択してｉｊを入力する。このとき、不図示のカウンタＣＮＴ（ｖ）が１インクリメントされる。
【００７６】
つづいて、全ての情報語ｉのセレクタ２２１への入力が終了した場合、上部ＬＦＳＲ群２２２に対し、（ｎｖ−ＣＮＴ（ｖ））回、０が入力される。これにより、上部ＬＦＳＲ群２２２には、Ａｉｔ＝（ａ１，ａ２，…，ａＮ−Ｋ−ｇ）ｔの演算結果が格納されていることになる。一方、下部ＬＦＳＲ群２２３には、Ｃｉｔの途中演算結果が格納されている。
【００７７】
つづいて、上部ＬＦＳＲ群２２２に格納されているＡｉｔが符号語メモリ２２６の第２パリティ部２２６ｃに格納される。
【００７８】
つぎに、ＬＦＳＲを用いた符号化アルゴリズムでは、Ｅ（Ａｉｔ）＋Ｃｉｔが計算される。この計算では、図１９に示すように、まず、符号語メモリ２２６内の第２パリティ部２２６ｃに格納されているＡｉｔ＝（ａ１，ａ２，…，ａＮ−Ｋ−ｇ）ｔが若い要素順に順次、セレクタ２２１に入力される。セレクタ２２１では、ｉｊが入力のときは、ｂｖ,ｊ（Ｅ）＝１となる下部ＬＦＳＲ群２２３のＬＦＳＲ（ｖ）を選択してｉｊを入力する。このとき、不図示のカウンタＣＮＴ（ｖ）が１インクリメントされる。ここで、カウンタＣＮＴ（ｖ）は、Ｃｉｔの計算の際にインクリメントされている値からさらにインクリメントされることに注意する。
【００７９】
つづいて、全てのＡｉｔのセレクタ２２１への入力が終了した場合、下部ＬＦＳＲ群２２３に対し、（ｎｖ−ＣＮＴ（ｖ））回、０が入力される。これにより、下部ＬＦＳＲ群２２３には、Ｅ（Ａｉｔ）＋Ｃｉｔの演算結果が格納されていることになる。なお、ここでは、ＬＦＳＲの線形性を利用して、ＣｉｔとＥ（Ａｉｔ）との和が計算されていることに注意する。
【００８０】
つぎに、ＬＦＳＲを用いた符号化アルゴリズムでは、ｐｔ１＝φ−１（ＥＡ＋Ｃ）ｉｔが計算される。この計算では、図２０に示すように、まず、下部ＬＦＳＲ群２２３に格納されている（ＥＡ＋Ｃ）ｉｔがφ−１乗算回路２２４に入力され、φ−１（ＥＡ＋Ｃ）ｉｔが計算される。計算されたｐｔ１＝φ−１（ＥＡ＋Ｃ）ｉｔは、符号語メモリ２２６の第１パリティ部２２６ｂに格納される。
【００８１】
つぎに、ＬＦＳＲを用いた符号化アルゴリズムでは、ｐｔ２＝Ａｉｔ＋Ｂｐｔ１が計算される。この計算では、図２１に示すように、符号語メモリ２２６内の第１パリティ部２２６ｂに格納されているｐ１＝（ｑ１，ｑ２，…，ｑｇ）が若い要素順に順次、セレクタ２２１に入力される。セレクタ２２１では、ｑｊが入力のときは、ｂｖ,ｊ（Ｂ）＝１となる上部ＬＦＳＲ群２２２のＬＦＳＲ（ｖ）を選択してｑｊを入力する。
【００８２】
つづいて、全てのｐ１の入力が終了した場合、上部ＬＦＳＲ群２２２に対し、ｐｖ回、０を入力する。これにより、上部ＬＦＳＲ群２２２には、Ｂｐｔ１の演算結果が格納されていることになる。
【００８３】
つづいて、上部ＬＦＳＲ群２２２に格納されているＢｐｔ１と、符号語メモリ２２６内の第２パリティ部２２６ｃに格納されているＡｉｔとがベクトル加算器２２５に入力されてＢｐｔ１とＡｉｔとの排他的論理和が演算され、その結果が符号語メモリ２２６内の第２パリティ部２２６ｃに格納される。これにより、符号語メモリ２２６内の第２パリティ部２２６ｃには、ｐｔ２＝Ａｉｔ＋Ｂｐｔ１の演算結果が格納されていることになる。
【００８４】
以上で説明した動作が、本実施形態に係るＬＦＳＲを用いたグラフ符号の符号化アルゴリズムである。なお、グラフ符号の検査行列Ｈがランク落ちする場合、上述の動作に加えて、以下の動作が実行される。
【００８５】
第１に、検査行列Ｈの従属な行数をＬとする。検査行列Ｈの従属な行に対応する頂点番号リストｓ＝（ｓ１，ｓ２，…，ｓＬ）およびＨＢＣＨの行番号ｒ＝（ｒ１，ｒ２，…，ｒＬ）を記憶する。第２に、上述の符号化アルゴリズムの計算の中でＬＦＳＲ（ｓｊ）（ｊ＝１，２，…，Ｌ）の演算結果を出力する場合、ｒｊ番目の記憶素子内の値は出力しない。
【００８６】
以上のような追加の動作を実行することにより、検査行列Ｈから従属な行を除いた行列とベクトルの計算結果を得ることができる。
【００８７】
つづいて、第１の実施形態において図４を用いて例示した、頂点数１０の３部グラフに対して定められるグラフ符号を例として、ＬＦＳＲを用いた符号化方法について説明する。本説明において、接続行列には図１２で例示した接続行列を用い、頂点１〜６では図１３で例示した検査行列から定義されるＢＣＨ符号が定められ、頂点７〜１０では図１４で例示した検査行列から定義されるＢＣＨ符号が定められているものとする。このとき、グラフ符号の検査行列Ｈは、図２２のように表される。この場合、頂点１〜６では符号長７のＢＣＨ符号が、頂点７〜１０では符号長６のＢＣＨ符号が、それぞれ定められる。また、グラフ符号の情報長ＫはＫ＝３、符号長ＮはＮ＝３３、ギャップｇはｇ＝１２となる。
【００８８】
上述したアルゴリズムに従う場合、以下の動作によりＬＦＳＲを用いた符号化を行うことができる。
【００８９】
・Ａｉｔ，Ｃｉｔの計算
まず、部分行列Ａｉｔ及びＣｉｔの計算（図１８参照）では、符号語メモリ２２６内の情報部２２６ａに格納されている情報語ｉ＝（ｉ１，ｉ２，ｉ３）が若い要素順に順次、セレクタ２２１に入力され、上部ＬＦＳＲ群２２２に格納される。具体的には、ｉ１がＬＦＳＲ（１）とＬＦＳＲ（４）とに入力され、ｉ２がＬＦＳＲ（１）とＬＦＳＲ（５）とに入力され、ｉ３がＬＦＳＲ（１）とＬＦＳＲ（６）とに入力される。
【００９０】
つづいて、全ての情報語ｉを入力し終わると、ＬＦＳＲ（１）に４回、０が入力され、ＬＦＳＲ（４）、ＬＦＳＲ（５）及びＬＦＳＲ（６）には６回、０が入力される。
【００９１】
以上により、Ａｉｔ＝（ａ１，ａ２，…，ａ１８）ｔの計算結果が、上部ＬＦＳＲ群２２２を構成するＬＦＳＲ（１）〜ＬＦＳＲ（６）に格納される。なお、Ｃｉｔについては、Ｃが零行列であるため、演算結果０が格納される。このようにして得られた結果は、符号語メモリ２２６の第２パリティ部２２６ｃに格納される。
【００９２】
・（ＥＡ＋Ｃ）ｉｔの計算
つぎに、Ｅ（Ａｉｔ）＋Ｃｉｔの計算（図１９参照）では、符号語メモリ２２６内の第２パリティ部２２６ｃに格納されているＡｉｔ＝（ａ１，ａ２，…，ａ１８）ｔが若い要素順に順次、セレクタ２２１に入力され、下部ＬＦＳＲ群２２３に格納される。具体的には、ａ１がＬＦＳＲ（８）に入力され、ａ２がＬＦＳＲ（９）に入力され、ａ３がＬＦＳＲ（１０）に入力され、同様の動作がａ４〜ａ１８に対して実行される。
【００９３】
以上により、（ＥＡ＋Ｃ）ｉｔの演算結果が、下部ＬＦＳＲ群２２３を構成するＬＦＳＲ（７）〜ＬＦＳＲ（１０）に格納される。なお、この場合は、シフトレジスタに０を入れる必要はない。
【００９４】
・ｐｔ１＝φ−１（ＥＡ＋Ｃ）ｉｔの計算
つぎに、ｐｔ１＝φ−１（ＥＡ＋Ｃ）ｉｔの計算（図２０参照）では、ＬＦＳＲ（７）〜ＬＦＳＲ（１０）に格納されている（ＥＡ＋Ｃ）ｉｔがφ−１に掛けられる。これにより、ｐｔ１が得られる。得られた計算結果は、符号語メモリ２２６内の第１パリティ部２２６ｂに格納される。
【００９５】
・ｐｔ２＝Ａｉｔ＋Ｂｐｔ１の計算
つぎに、ｐｔ２＝Ａｉｔ＋Ｂｐｔ１の計算（図２１参照）では、符号語メモリ２２６内の第１パリティ部２２６ｂに格納されているｐ１＝（ｑ１，ｑ２，…，ｑ１２）が若い要素順に順次、セレクタ２２１に入力され、上部ＬＦＳＲ群２２２に格納される。具体的には、ｑ１がＬＦＳＲ（１）に入力され、ｑ２がＬＦＳＲ（２）とＬＦＳＲ（４）とに入力され、同様の動作がｑ３〜ｑ１２に対して実行される。その後、全てのｐ１を入力し終わると、ＬＦＳＲ（１）〜ＬＦＳＲ（６）にそれぞれ３回、０が入力される。
【００９６】
以上により、ｐｔ２＝Ａｉｔ＋Ｂｐｔ１の演算結果がＬＦＳＲ（１）〜ＬＦＳＲ（６）に格納される。この結果と符号語メモリ２２６内の第２パリティ部２２６ｃに格納されているＡｉｔとの排他的論理和が演算され、その演算結果が符号語メモリ２２６内の第２パリティ部２２６ｃに格納される。これにより、符号語メモリ２２６内の第２パリティ部２２６ｃには、ｐｔ２＝Ａｉｔ＋Ｂｐｔ１の演算結果が格納されることになる。
【００９７】
以上のように、本実施形態によれば、成分符号としてＢＣＨ符号を用いる場合にも、第１の実施形態と同様に、符号化の演算を効率的に実行することが可能となる。なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【００９８】
（第３の実施形態）
つぎに、第３の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。上述した実施形態では、グラフの２頂点間が１つの辺で接続されている場合を例示した。これに対し、第３の実施形態では、グラフの２頂点間が複数の辺で接続されている場合を例に挙げて説明する。なお、本実施形態に係る符号化器を含むメモリシステムの構造は、第１の実施形態において例示したメモリシステム１と同様であってよいため、ここでは重複する説明を省略する。また、本実施形態に係る符号化器１７の構成及び動作も、基本的には第１の実施形態で例示した構成及び動作と同様であってよいため、ここでは重複する説明を省略する。さらに、本実施形態は、第１の実施形態で例示したアルゴリズムと同様のアルゴリズムに従うものとして重複する説明を省略し、以下の説明では、グラフ符号の検査行列を得るための具体的な動作について着目するものとする。
【００９９】
まず、本実施形態におけるグラフの隣接行列を得る動作について説明する。本実施形態において、例えば図２３で表されるグラフが与えられたとすると、その隣接行列は図２４のように表される。図２３に示すように、各頂点間が２つの辺で結ばれているため、図２４に示すように、隣接行列ＡＧには２が格納される。なお、図２３における白丸内の数字はそれぞれの頂点番号を表し、図２４における行列の外側に割り振られている数字は、それぞれの行または列が対応している頂点の番号を表している。また、図２３で表されるグラフは２頂点間に２本の辺が存在する完全３部グラフであるとする。
【０１００】
次に、グラフの辺番号付けを行う動作について説明する。本説明では、辺のクラス分けと、辺の番号付けとが同時に実行されるものとする。また、情報部辺集合に含まれる辺の番号付けは、この集合に含まれたのが早い順に若い番号付けを行うものとする。各頂点における成分符号の冗長部長さが４という条件のもと、図２３で表されるグラフに対する辺番号付けの動作を、図面を用いて説明する。
【０１０１】
まず、１番目の頂点につながる辺の番号付けは、図２５のように表される。ここで、冗長部長さが４であるため、頂点１とつながる辺の後方部分から４つの辺が冗長部辺集合に含まれている。同様に、２番目の頂点につながる辺の番号付けは、図２６のように表される。同様の動作を残り全ての頂点３〜７について繰り返すことで、全ての辺に番号付けを行うことができる。これを隣接行列の要素を置き換えることで実行すると、最終的に得られる行列は、図２７のように表される。ここで、点線枠で囲まれた部分２７０１は成分符号の情報部に対応する辺を表し、一点破線枠で囲まれた部分２７０２は成分符号の冗長部に対応する辺を表している。
【０１０２】
次に、グラフの接続行列を得る動作について説明する。図２３で表されるグラフの接続行列ＢＧは図２８のように表される。なお、行列の外側に割り振られている数字は、行についてはその行が対応する頂点の番号、列についてはその列が対応する辺の番号を表している。
【０１０３】
次に、グラフ符号の検査行列を得る動作について説明する。グラフの接続行列は図２８のように表され、グラフの各頂点における成分符号の検査行列は、頂点１〜４については図２９に示すように与えられ、頂点５〜７については図３０に示すように与えられるとする。ここで、図２８において、点線枠で囲まれた部分２８０１は情報部辺集合に対応する部分を表し、一点破線枠で囲まれた部分２８０２は冗長部辺集合に対応する部分を表している。なお、図２９及び図３０において、点線枠で囲まれた部分２９０１及び３００１は情報部を表し、一点破線枠で囲まれた部分２９０２及び３００２は冗長部を表している。このとき、グラフ符号の検査行列Ｈは図３１に示すように与えられる。
【０１０４】
図３１に示すように、接続行列の点線枠で囲まれた情報部に対応する部分３１０１は成分符号検査行列の情報部３１１１で置き換えられ、一点破線枠で囲まれた冗長部に対応する部分３１０２は成分符号検査行列の冗長部３１１２で置き換えられていることがわかる。これは、図２に示す符号化用データ生成装置１００では、成分符号検査行列の情報部がグラフ接続行列の情報部と作用し、成分符号検査行列の冗長部がグラフ接続行列の冗長部と作用していることに対応している。
【０１０５】
したがって、本実施形態におけるグラフ符号の検査行列Ｈは、以下の式（８）のように表される。ここで、Ｉは単位行列である。
【数８】
2019057806.tif 000010
【０１０６】
以上のように、本実施形態によれば、２頂点間に複数の辺が伸びているグラフ符号の場合にも、第１の実施形態と同様に、グラフ符号の符号化に必要なデータを最小化することが可能となる。なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【０１０７】
（第４の実施形態）
つぎに、第４の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。第４の実施形態では、上述した実施形態において、より一般的なグラフについてのグラフ符号の検査行列を得る場合を例示する。なお、本実施形態に係る符号化器を含むメモリシステムの構造は、第１の実施形態において例示したメモリシステム１と同様であってよいため、ここでは重複する説明を省略する。また、本実施形態に係る符号化器１７の構成及び動作も、基本的には第１の実施形態で例示した構成及び動作と同様であってよいため、ここでは重複する説明を省略する。さらに、本実施形態では、第１の実施形態で例示したアルゴリズムと同様のアルゴリズムに従うものとして重複する説明を省略し、以下の説明では、より一般的なグラフについてのグラフ符号の検査行列を得る際の具体的な動作について言及する。
【０１０８】
まず、本実施形態におけるグラフの隣接行列を得る動作について説明する。本実施形態において、例えば図３２で表されるグラフが与えられたとき、その隣接行列は図３３のように表される。図３３に示すように、上述した第１及び第２の実施形態と異なり、本実施形態に係る隣接行列ＡＧでは、対角ブロック部以外にも零要素が存在している。ここで、図３２における白丸内の数字はそれぞれの頂点番号を表し、図３３における行列の外側に割り振られている数字は、それぞれの行または列が対応している頂点の番号を表している。また、図３２で表されるグラフは完全ではない３部グラフであるとする。
【０１０９】
次に、グラフの辺番号付けを行う動作について説明する。本説明では、辺のクラス分けと、辺の番号付けとが同時に実行されるものとする。また、情報部辺集合に含まれる辺の番号付けは、この集合に含まれたのが早い順に若い番号付けを行うものとする。各頂点における成分符号の冗長部長さが４という条件のもと、図３２で表されるグラフの辺番号付けの動作を、図面を用いて説明する。
【０１１０】
まず、１番目の頂点につながる辺の番号付けは、図３４のように表される。２番目の頂点につながる辺の番号付けは、図３５のように表される。同様の手続きを残り全ての頂点について繰り返すことで、最終的に得られる行列は、図３６のように表される。ここで、点線枠で囲まれた部分３６０１は成分符号の情報部に対応する辺を表し、一点破線枠で囲まれた部分３６０２は成分符号の冗長部に対応する辺を表している。
【０１１１】
次に、グラフの接続行列を得る動作について説明する。図３２で表されるグラフの接続行列ＢＧは図３７のように表される。ここで、点線枠で囲まれた部分３７０１は情報部辺集合に対応する部分を表し、一点破線枠で囲まれた部分３７０２は冗長部辺集合に対応する部分を表している。なお、行列の外側に割り振られている数字は、行についてはその行が対応する頂点の番号、列についてはその列が対応する辺の番号を表している。
【０１１２】
次に、グラフ符号の検査行列を得る動作について説明する。グラフの接続行列は図３７のように表され、グラフの各頂点における成分符号の検査行列は、頂点４、５、８及び９においては図１３に例示したように与えられ、それ以外の頂点においては図１４に例示したように与えられるとする。その場合、グラフ符号の検査行列Ｈは図３８のように与えられる。
【０１１３】
図３８に示すように、接続行列の点線枠で囲まれた情報部に対応する部分３８０１は成分符号検査行列の情報部３８１１で置き換えられ、一点破線枠で囲まれた冗長部に対応する部分３８０２は成分符号検査行列の冗長部３８１２で置き換えられていることがわかる。これは、図２に示す符号化用データ生成装置１００では、成分符号検査行列の情報部がグラフ接続行列の情報部と作用し、成分符号検査行列の冗長部がグラフ接続行列の冗長部と作用していることに対応している。
【０１１４】
したがって、本実施形態におけるグラフ符号の検査行列Ｈは、以下の式（９）のように表される。ここで、Ｉは単位行列である。
【数９】
2019057806.tif 000011
【０１１５】
以上のように、本実施形態によれば、一般のグラフ符号の場合にも、第１の実施形態と同様に、符号化の演算を効率的に実行することが可能となる。なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。なお、本実施形態ではグラフの１辺が２つの頂点と連結している例のみ説明したが、上述した実施形態において、グラフの１辺が２つ以上の頂点と連結していてもよい。
【０１１６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１７】
１…メモリシステム、１０…メモリコントローラ、１１…制御部、１２…データバッファ、１３…メモリＩ／Ｆ、１４…符号化／復号部、１５…ホストＩ／Ｆ、１６…内部バス、１７…符号化器、１８…復号器、２０…不揮発性メモリ、３０…ホスト、１００…符号化用データ生成装置、１０１…成分符号基本データ、１０２１〜１０２Ｖ…第１〜第Ｖ成分符号検査行列生成部、１０３１〜１０３Ｖ…第１〜第Ｖ成分符号検査行列記憶部、１０４…グラフ構造定義データ記憶部、１０５…グラフ接続行列生成部、１０６…グラフ接続行列記憶部、１１１１〜１１１Ｖ…第１〜第Ｖ成分符号検査行列情報部、１１２１〜１１２Ｖ…第１〜第Ｖ成分符号検査行列冗長部、１１３…グラフ接続行列情報部、１１４…グラフ接続行列冗長部、１２１…グラフ符号検査行列計算部、１２２…グラフ符号検査行列、１２３…グラフ符号冗長部計算用データ計算部、１２４…グラフ符号冗長部計算用データ、２０１…情報語、２０２…行列Ｃ乗算部、２０３…部分行列Ｃｉ、２０４…行列Ａ乗算部、２０５…部分行列Ａｉ、２０６…行列−Ｅ乗算部、２０７…部分行列−ＥＡｉ、２０８…ベクトル加算部、２０９…部分行列（−ＥＡ＋Ｃ）ｉ、２１０…行列−φ−１乗算部、２１１…冗長部ｐ１、２１２…行列−Ｂ乗算部、２１３…部分行列−Ｂｐ１、２１４…ベクトル加算部、２１５…冗長部ｐ２、２１６…符号語ｃ、２２０…符号化回路、２２１…セレクタ、２２２…上部ＬＦＳＲ群、２２３…下部ＬＦＳＲ群、２２４…φ−１乗算回路、２２５…ベクトル加算器、２２６…符号語メモリ、２２６ａ…情報部、２２６ｂ…第１パリティ部、２２６ｃ…第２パリティ部。
【図１】
2019057806.tif 000012
【図２】
2019057806.tif 000013
【図３】
2019057806.tif 000014
【図４】
2019057806.tif 000015
【図５】
2019057806.tif 000016
【図６】
2019057806.tif 000017
【図７】
2019057806.tif 000018
【図８】
2019057806.tif 000019
【図９】
2019057806.tif 000020
【図１０】
2019057806.tif 000021
【図１１】
2019057806.tif 000022
【図１２】
2019057806.tif 000023
【図１３】
2019057806.tif 000024
【図１４】
2019057806.tif 000025
【図１５】
2019057806.tif 000026
【図１６】
2019057806.tif 000027
【図１７】
2019057806.tif 000028
【図１８】
2019057806.tif 000029
【図１９】
2019057806.tif 000030
【図２０】
2019057806.tif 000031
【図２１】
2019057806.tif 000032
【図２２】
2019057806.tif 000033
【図２３】
2019057806.tif 000034
【図２４】
2019057806.tif 000035
【図２５】
2019057806.tif 000036
【図２６】
2019057806.tif 000037
【図２７】
2019057806.tif 000038
【図２８】
2019057806.tif 000039
【図２９】
2019057806.tif 000040
【図３０】
2019057806.tif 000041
【図３１】
2019057806.tif 000042
【図３２】
2019057806.tif 000043
【図３３】
2019057806.tif 000044
【図３４】
2019057806.tif 000045
【図３５】
2019057806.tif 000046
【図３６】
2019057806.tif 000047
【図３７】
2019057806.tif 000048
【図３８】
2019057806.tif 000049