(57)【特許請求の範囲】
【請求項１】
入力された符号化データの各ビットの確率値を取得する確率取得部と、
前記確率値を初期の変数ノードの値として前記符号化データの復号処理におけるチェックノード処理を行うチェックノード処理部と、
前記チェックノード処理の結果に基づき前記確率値が更新された値をビット値に変換する変換部と
を備え、
前記チェックノード処理部は、
前記チェックノード処理を表す２状態トレリス線図に対応するトポロジーを有するチェックノード回路を備え、
前記チェックノード回路は、前記２状態トレリス線図の各エッジに対応する導線と、該導線上に設けられる、該導線に対応付けられる前記変数ノードにより設定される確率に従い開閉が制御されるスイッチ部とを含み、
前記チェックノード回路における前記２状態トレリス線図の起点ノードに対応する第１の端子と、前記２状態トレリス線図の終点ノードに対応する第２の端子との間の導通の有無に基づき、前記チェックノード回路に対応する前記変数ノードのチェックノード処理を行う
復号装置。
【請求項２】
前記チェックノード処理部は、
同一の前記変数ノードに対する前記エッジに対応する前記導線上に設けられる前記スイッチ部に含まれる、
前記２状態トレリス線図における同一の状態を結ぶ前記エッジに対応する前記導線上に設けられる前記スイッチ部と、
前記２状態トレリス線図における異なる状態を結ぶ前記エッジに対応する前記導線上に設けられる前記スイッチ部と
を相補動作させる
請求項１に記載の復号装置。
【請求項３】
前記スイッチ部は、
ＭＯＳトランジスタにより構成され、
前記ＭＯＳトランジスタのゲートに前記確率に応じて制御信号が入力される
請求項１または請求項２に記載の復号装置。
【請求項４】
前記チェックノード処理部は、
前記同一の状態を結ぶ前記エッジに対応する前記導線上に、第１の導電型のＭＯＳトランジスタによる前記スイッチ部が設けられ、
前記異なる状態を結ぶ前記エッジに対応する前記導線上に、第２の導電型のＭＯＳトランジスタによる前記スイッチ部が設けられる
請求項２に記載の復号装置。
【請求項５】
前記スイッチ部は、
抵抗変化素子が前記ＭＯＳトランジスタのゲートに接続される
請求項３または請求項４に記載の復号装置。
【請求項６】
前記スイッチ部は、
電荷蓄積型可変閾値トランジスタが前記ＭＯＳトランジスタのゲートに接続される
請求項３または請求項４に記載の復号装置。
【請求項７】
入力された符号化データの各ビットの確率値を取得する確率取得ステップと、
前記確率値を初期の変数ノードの値として前記符号化データの復号処理におけるチェックノード処理を行うチェックノード処理ステップと、
前記チェックノード処理の結果に基づき前記確率値を更新した値をビット値に変換する変換ステップと
を備え、
前記チェックノード処理ステップは、
前記チェックノード処理を表す２状態トレリス線図に対応するトポロジーを有するチェックノード回路の、前記２状態トレリス線図の各エッジに対応する導線と、前記導線上に設けられる、該導線に対応付けられる前記変数ノードにより設定される確率に従い開閉が制御されるスイッチ部とを用い、前記チェックノード回路における前記２状態トレリス線図の起点ノードに対応する第１の端子と、前記２状態トレリス線図の終点ノードに対応する第２の端子との間の導通の有無に基づき、前記チェックノード回路に対応する前記変数ノードのチェックノード処理を行う
復号方法。
【請求項８】
入力データを符号化して符号化データを生成する符号化部と、
前記符号化データを記憶する不揮発性のメモリと、
前記メモリから読み出した前記符号化データを復号する復号部と
を備え、
前記復号部は、
前記メモリから読み出した前記符号化データの各ビットの確率値を取得する確率取得部と、
前記確率値を初期の変数ノードの値として前記符号化データの復号処理におけるチェックノード処理を行うチェックノード処理部と、
前記チェックノード処理の結果に基づき前記確率値を更新した値をビット値に変換する変換部と
を備え、
前記チェックノード処理部は、
前記チェックノード処理を表す２状態トレリス線図に対応するトポロジーを有するチェックノード回路を備え、
前記チェックノード回路は、前記２状態トレリス線図の各エッジに対応する導線と、該導線上に設けられる、該導線に対応付けられる前記変数ノードにより設定される確率に従い開閉が制御されるスイッチ部とを含み、
前記チェックノード回路における前記２状態トレリス線図の起点ノードに対応する第１の端子と、前記２状態トレリス線図の終点ノードに対応する第２の端子との間の導通の有無に基づき、前記チェックノード回路に対応する前記変数ノードのチェックノード処理を行う
メモリシステム。
【請求項９】
前記チェックノード処理部は、
同一の前記変数ノードに対する前記エッジに対応する前記導線上に設けられる前記スイッチ部に含まれる、
前記２状態トレリス線図における同一の状態を結ぶ前記エッジに対応する前記導線上に設けられる前記スイッチ部と、
前記２状態トレリス線図における異なる状態を結ぶ前記エッジに対応する前記導線上に設けられる前記スイッチ部と
を相補動作させる
請求項８に記載のメモリシステム。
【請求項１０】
前記スイッチ部は、
ＭＯＳトランジスタにより構成され、
前記ＭＯＳトランジスタのゲートに前記確率に応じて制御信号が入力される
請求項８または請求項９に記載のメモリシステム。
【請求項１１】
前記チェックノード処理部は、
前記同一の状態を結ぶ前記エッジに対応する前記導線上に、第１の導電型のＭＯＳトランジスタによる前記スイッチ部が設けられ、
前記異なる状態を結ぶ前記エッジに対応する前記導線上に、第２の導電型のＭＯＳトランジスタによる前記スイッチ部が設けられる
請求項９に記載のメモリシステム。
【請求項１２】
前記スイッチ部は、
抵抗変化素子が前記ＭＯＳトランジスタのゲートに接続される
請求項１０または請求項１１に記載のメモリシステム。
【請求項１３】
前記スイッチ部は、
電荷蓄積型可変閾値トランジスタが前記ＭＯＳトランジスタのゲートに接続される
請求項１０または請求項１１に記載のメモリシステム。
【請求項１４】
入力された符号化データの各ビットの確率値を取得する確率取得部と、
前記確率値を初期の変数ノードの値として前記符号化データの復号処理におけるチェックノード処理を行うチェックノード処理部と、
前記チェックノード処理の結果に基づき前記確率値を更新した値をビット値に変換する変換部と
を備え、
前記チェックノード処理部は、
前記チェックノード処理を表す２状態トレリス線図に対応するトポロジーを有するチェックノード回路を備え、
前記チェックノード回路は、前記２状態トレリス線図の各エッジに対応する導線と、該導線上に設けられる、該導線に対応付けられる前記変数ノードにより設定される確率に従い開閉が制御されるスイッチ部とを含む
復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置、復号方法およびメモリシステムに関する。
【背景技術】
【０００２】
通信システムや記憶装置などに用いられる、強力な誤り訂正符号能力を持った符号方式としてＬＤＰＣ(Low-Density  Parity-Check)符号が知られている。このＬＤＰＣ符号は、パリティ検査行列を用いて行処理演算および列処理演算と呼ばれるメッセージ値の計算を繰り返し行い、受信語データの事後確率を求めることで復号を行う。ＬＤＰＣ符号は、既存のエラー訂正符号の中で最も理論限界に近いエラー訂正能力を有することから、通信システムや記憶装置において広く用いられている。
【０００３】
一方、近年の不揮発性の半導体記憶装置として主流となっているフラッシュメモリは、メモリセルの微細化や多値化に伴い、読み出し時に発生するエラーが深刻化している。そのため、従来から用いられているＢＣＨ符号ではエラー訂正能力不足となってきており、近年では、より高いエラー訂正能力を持つＬＤＰＣ符号が注目されている。それと共に、エラー訂正方式における世代間の互換性を保つため、ＬＤＰＣ符号の復号回路のオンチップ化技術が求められている。このオンチップ化により、ＬＤＰＣ符号の復号処理を半導体記憶装置が形成されるチップ上の回路で行うことで、半導体記憶装置の見かけ上のエラー発生率を一定以下に抑制することが可能となる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ming  Gu,  and  Shantanu  Chakrabartty,  IEEE  Journal  of  Solid-State  Circuits,  val.  46,  no.  6,  pp.  1433-1442  (2011).
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＬＤＰＣ符号は、確率に基づきエラー訂正を行うため、複雑な実数演算を必要とする。特に、ＬＤＰＣ符号の復号計算におけるチェックノード処理は、確率値の和積計算が必要となり、大きな計算リソースが要求される。したがって、ＬＤＰＣ符号の復号処理をハードウェア化するためには、大規模なディジタル半導体回路が必要となり、オンチップ化が難しい。
【０００６】
そこで、ＬＤＰＣ符号の復号を行う半導体回路の規模を縮小するため、実数を電流で表現してアナログ回路により実数計算処理を行う方法も提案されている。しかしながら、電流によってデータ値を表現する場合、データ処理中は常に電流を流し続ける必要があり、膨大な電力を消費することになってしまうという問題点があった。
【０００７】
このように、従来の技術を用いてＬＤＰＣ符号にて十分なエラー訂正能力を得るためには、実数計算による復号処理を用いる必要があり、半導体集積回路などを用いた誤り訂正装置の実装が複雑化してしまうという問題点があった。
【０００８】
本発明が解決しようとする課題は、ＬＤＰＣ符号の復号処理を簡易な構成により実現可能とする復号装置、復号方法およびメモリシステムを提供することにある。
【課題を解決するための手段】
【０００９】
第１の実施形態の復号装置は、入力された符号化データの各ビットの確率値を初期の変数ノードの値として符号化データの復号処理におけるチェックノード処理を行い、チェックノード処理の結果に基づき確率値を更新した値をビット値に変換する。復号装置は、チェックノード処理を表す２状態トレリス線図に対応するトポロジーを有する、２状態トレリス線図の各エッジに対応する導線と、導線上に設けられる、導線に対応付けられる変数ノードにより設定される確率に従い開閉が制御されるスイッチ部とを含むチェックノード回路を用いてチェックノード処理を行う。復号装置は、チェックノード回路における２状態トレリス線図の起点ノードおよび終点ノードにそれぞれ対応する第１および第２の端子間の導通の有無に基づき変数ノードのチェックノード処理を行う。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る復号装置を含むメモリシステムの一例の構成を概略的に示すブロック図である。
【図２】図２は、検査行列を表現するタナーグラフの例を示す図である。
【図３】図３は、実施形態に適用可能な復号部の一例の構成を示すブロック図である。
【図４】図４は、実施形態に適用可能なチェックノード処理演算器の一例の構成を示すブロック図である。
【図５】図５は、実施形態に適用可能なチェックノード処理を説明するための図である。
【図６】図６は、実施形態に適用可能な２状態トレリス線図である。
【図７】図７は、２状態トレリス線図において、起点ノードから終点ノードに至る経路の例を示す図である。
【図８】図８は、第１の実施形態に係るチェックノード回路の一例の構成を示す図である。
【図９】図９は、第１の実施形態に係るチェックノード回路における各スイッチ動作時の一例の状態を示す図である。
【図１０】図１０は、第１の実施形態に係るチェックノード回路における各スイッチ動作時の一例の状態を示す図である。
【図１１】図１１は、９８１×５００の検査行列を用いて９８１ビットのエラー訂正を行った結果を示す図である。
【図１２】図１２は、第２の実施形態に係るチェックノード回路の例を示す回路図である。
【図１３】図１３は、第２の実施形態に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図１４】図１４は、第２の実施形態に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図１５】図１５は、第３の実施形態に係る確率信号発生器の一例の構成を示す図である。
【図１６】図１６は、第３の実施形態に係る確率信号発生器を用いたチェックノード回路の一例の構成を示す図である。
【図１７】図１７は、ＴａＯxによるバイポーラ型抵抗スイッチ現象の電流−電圧特性の例を示す図である。
【図１８】図１８は、ＴａＯxを用いた抵抗スイッチ素子のスイッチ時間と累積確率との一例の関係を示す図である。
【図１９】図１９は、第３の実施形態に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図２０】図２０は、第３の実施形態に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図２１】図２１は、第３の実施形態の第１の変形例に係る確率信号発生器の一例の構成を示す図である。
【図２２】図２２は、第３の実施形態の第１の変形例による確率信号発生器を用いたチェックノード回路の例を示す図である。
【図２３】図２３は、第３の実施形態の第１の変形例に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図２４】図２４は、第３の実施形態の第１の変形例に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図２５】図２５は、第３の実施形態の第２の変形例に係るしきい値スイッチ型のセレクタの特性例を示す図である。
【図２６】図２６は、第３の実施形態の第２の変形例による確率信号発生器を用いたチェックノード回路の例を示す図である。
【図２７】図２７は、第３の実施形態の第２の変形例に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図２８】図２８は、第３の実施形態の第２の変形例の別の例による確率信号発生器を用いたチェックノード回路の例を示す図である。
【図２９】図２９は、第３の実施形態の第２の変形例の別の例に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図３０】図３０は、第３の実施形態の第３の変形例に係る確率信号発生器の一例の構成を示す図である。
【図３１】図３１は、第３の実施形態の第３の変形例による確率信号発生器を用いたチェックノード回路の例を示す図である。
【図３２】図３２は、第３の実施形態の第３の変形例に係るチェックノード回路をＮＭＯＳ型およびＰＭＯＳ型トランジスタを用いて構成した例を示す図である。
【図３３】図３３は、第４の実施形態に係るチェックノード回路の一例の構成を示す図である。
【図３４】図３４は、第４の実施形態の変形例の第１の例によるチェックノード回路の例を示す図である。
【図３５】図３５は、第４の実施形態の変形例の第２の例によるチェックノード回路の例を示す図である。
【図３６】図３６は、第４の実施形態の変形例の第３の例によるチェックノード回路の例を示す図である。
【図３７】図３７は、第４の実施形態の変形例の第４の例によるチェックノード回路の例を示す図である。
【図３８】図３８は、第５の実施形態に適用可能な通信システムの一例の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施形態に係る復号装置について説明する。実施形態に係る復号装置は、低密度パリティ検査符号（ＬＤＰＣ  code：Low-Density  Parity-Check  code）の復号を行う。図１は、実施形態に係る復号装置を含むメモリシステムの一例の構成を概略的に示す。
【００１２】
図１において、メモリシステム１は、メモリ部２と、符号化部３と、復号部４とを含む。入力データ５は、符号化部３に入力されてＬＤＰＣ符号に符号化され、メモリ部２に供給される。メモリ部２は、例えばコントローラと記憶媒体とを備え、メモリ部２に供給されたＬＤＰＣ符号は、コントローラにより記憶媒体に書き込まれる。実施形態では、記憶媒体としてフラッシュメモリを用いるものとする。
【００１３】
また、メモリ部２は、例えば外部から読み出し要求を受け取ると、コントローラにより記憶媒体からＬＤＰＣ符号を読み出す。読み出されたＬＤＰＣ符号は、復号部４に供給される。復号部４は、供給されたＬＤＰＣ符号を復号し、元の入力データ５を復元して出力データ６としてメモリシステム１から出力する。
【００１４】
なお、記憶媒体としてフラッシュメモリを用いた場合、情報の読み出しは、しきい値電圧がハイかローかによって行われる。
【００１５】
先ず、ＬＤＰＣ符号について説明する。ＬＤＰＣ符号は、検査行列と呼ばれる、成分の大多数が０であり、少数の成分のみが１である疎(Low-Density)な行列によって特徴付けられる符号である。符号長に応じて大きな検査行列が必要となるが、以下では、説明のため検査行列Ｈを８×４行列であるとして説明する。次式（１）に、検査行列Ｈの例を示す。
【数１】
0006290057.tif 000002
【００１６】
検査行列Ｈの各行および各列に含まれる１の数を重みと呼び、全ての行および列の重みが０より大きくなるように検査行列を作成する。行重みおよび列重みがそれぞれ一定値である場合、この検査行列を正則と呼ぶ。式（１）に例示した検査行列Ｈは、行重みが全て４であり、列重みが全て２である正則行列である。
【００１７】
ＬＤＰＣ方式においては、通信路に送ったり、メモリに格納するなどの処理の対象のデータ列ｘを、ＨｃT＝０となるようなデータ列ｃに変換する。このデータ列ｃを符号と呼ぶ。つまり、ＬＤＰＣ方式において情報処理に用いられるデータは、元のデータ列ｘではなく、変換された符号ｃである。上述した符号化部３は、入力データ５によるデータ列に対して、この変換処理を施す。メモリ部２は、入力データ５が変換された符号ｃをフラッシュメモリに書き込む。
【００１８】
一般に、符号ｃは、データ列ｘよりデータ長の長いデータ列であり、データ列ｘに含まれる情報に加えて、エラー訂正に必要な情報が含まれる。一方、符号化自体は、１対１対応の写像であり、データ列ｘが与えられれば符号ｃが一意に決まり、逆に、符号ｃが与えられれば元のデータ列ｘは一意に決まる。また、（データ列ｘの長さ）／（符号ｃの長さ）を符号化率と呼び、符号化率が高い程、効率の良いエラー訂正方法であるといえる。
【００１９】
検査行列Ｈは、図２に示すタナーグラフで表現できる。タナーグラフは、ノード｛ｃ0，ｃ1，…，ｃ7｝とノード｛ｆ0，ｆ1，ｆ2，ｆ3｝とを上下に並べ、検査行列Ｈの成分ｈijについて、成分ｈij＝１の場合にのみ、直線で結んだグラフである。タナーグラフにおいて、ノード｛ｃi｝を変数ノード、ノード｛ｆj｝をチェックノードと呼ぶ。変数ノードｃiの各ノードは、検査行列Ｈの各列に対応しており、値が１である行の行番号と、結ばれているチェックノードｆjの番号とが一致している。一方、チェックノードｆjの各ノードは、検査行列Ｈの各行に対応しており、値が１である列の列番号と、結ばれている変数ノードｃiの番号とが一致している。
【００２０】
次に、ＬＤＰＣ符号における基本的な復号処理について説明する。ここでは、確率伝播法(Belief  Propagation：ＢＰ法)で説明する。以下の復号処理は、例えば上述した復号部４にて実行されるものとする。この場合、復号部４は、メモリ部２に格納された符号を読み出して復号し、元のデータを復元する。
【００２１】
図３は、実施形態に適用可能な復号部４の一例の構成を示す。復号部４は、しきい値読み出し器５１１と、しきい値・確率変換器５１２と、初期確率記憶器５１３と、暫定確率記憶器５１４と、変数ノード処理演算器５１５と、チェックノード処理演算器５１６と、確率・ビット変換器５１７と、パリティ検査器５１８とを含む。
【００２２】
図３において、メモリ５１０は図１のメモリ部２に対応し、しきい値読み出し器５１１は、メモリ部２から読み出しの際のしきい値電圧を取得する。しきい値・確率変換器５１２は、しきい値読み出し器５１１に取得されたしきい値電圧に基づき、読み出したビット列について、確からしさを示す確率をビット毎に求め、しきい値電圧を確率に変換する。しきい値・確率変換器５１２で求められた各ビットの確率値は、初期確率記憶器５１３に記憶される。
【００２３】
初期確率記憶器５１３に記憶された確率値は、暫定確率記憶器５１４に暫定確率として記憶されると共に、変数ノード処理演算器５１５に供給される。チェックノード処理演算器５１６は、暫定確率記憶器５１４から読み出した暫定確率を用いて、検査行列Ｈに応じたグループに分配し、各グループにおいて符号化ルールによる確率計算を行い、チェックノード処理の演算を実行する。変数ノード処理演算器５１５は、チェックノード処理演算器５１６による各グループからのチェックノード処理結果の報告を受け、集計処理を行う。変数ノード処理演算器５１５は、集計した確率値により暫定確率記憶器５１４に記憶される確率値を更新する。
【００２４】
確率・ビット変換器５１７は、暫定確率記憶器５１４に記憶される確率値がパリティ条件を満たしているか否かを判定し、満たしていると判定した場合に、当該確率値をビット値に変換し、ビット列を得る。上述したチェックノード処理演算器５１６は、この判定結果がパリティ条件を満たすまで、チェックノード処理を繰り返す。パリティ検査器５１８は、確率・ビット変換器５１７で変換されたビット列に対してパリティ検査を行い、エラーが検出されなければ、当該ビット列を、例えばバッファメモリを含む出力部５１９に供給する。
【００２５】
図４は、実施形態に適用可能なチェックノード処理演算器５１６の一例の構成を示す。なお、図４において、上述した図３と共通する部分には同一の符号を付して、詳細な説明を省略する。チェックノード処理演算器５１６は、確率・スイッチ動作信号変換器５３０と、複数のパリティ検査器５３１ａ〜５３１ｄと、各パリティ検査器５３１ａ〜５３１ｄの出力が供給されるカウンタ５３２ａ〜５３２ｄを含む。
【００２６】
確率・スイッチ動作信号変換器５３０は、暫定確率記憶器５１４に記憶される暫定確率値を、検査行列Ｈに従い分配し、各パリティ検査器５３１ａ〜５３１ｄに供給する。各パリティ検査器５３１ａ〜５３１ｄは、供給された確率値を用いてチェックノード処理すなわち符号化ルールによる確率計算を行う。計算の結果は、各カウンタ５３２ａ〜５３２ｄで計数され、各カウンタ５３２ａ〜５３２ｄの計数結果が、検査行列Ｈに従い変数ノード処理演算器５１５において集計される。
【００２７】
次に、ＬＤＰＣ符号における基本的な復号処理について、より詳細に説明する。先ず、各変数ノードｃiは、ある物理量の列y=｛yi｝について、それぞれの値yiに対応するディジタル値が０である確率Ｑ0iを受信する。ここで、格納されていたディジタルデータ値は、例えばメモリ部２に格納された符号の元のデータ値である。変数ノードｃiは、自身が接続するチェックノードｆjにこの確率Ｑ0iを情報ｑijとして送信する（図５（ａ）参照）。
【００２８】
チェックノードｆjは、接続する変数ノード｛ｃi，ｃk，…｝から送信された情報ｑ＝｛ｑij，ｑkj，…｝を元に、パリティ条件を考慮の上、各変数ノード｛ｃi，ｃk，…｝がディジタルデータ値の１を持つ確率｛ｒji，ｒjk，…｝を計算し、各変数ノード｛ｃi，ｃk，…｝に返信する（図５（ｂ）参照）。
【００２９】
ここで、チェックノードｆjは、変数ノードｃiに返信する確率ｒjiを計算する際に、変数ノードｃi自身からの情報ｑijを含めない。すなわち、変数ノードｃiは、確率ｒjiによって、自身以外の変数ノードの情報を受け取ることになる。より具体的には、チェックノードｆjは、次式（２）に従いチェックノード処理を行い、確率ｒjiを計算する。なお、式（２）において、値Ａ(ｊ)は、チェックノードｆjに接続する変数ノードの添字｛ｉ，ｋ，…｝の集合である。
【数２】
0006290057.tif 000003
【００３０】
変数ノードｃiは、接続する各々のチェックノード｛ｆj，ｆk，…｝から受け取った確率｛ｒji，ｒki，…｝と、自身の持つ確率Ｑ0iとを用いて、受信したデータが元々０であった確率Ｑ’iを計算する。変数ノードｃiは、計算の結果、確率Ｑ’iが１／２以上であれば、受信データの値が１であると仮定し、確率Ｑ’iが１／２未満であれは、受信データの値が０であると仮定する。
【００３１】
ＬＤＰＣ方式によるエラー訂正では、この仮定値を用いてパリティチェックを行う。より具体的には、仮定値の列ｃtemp＝｛ｃ0temp，ｃ1temp，…｝に対して、ＨｃtempT＝０となるか否かを判定する。若し、ＨｃtempT＝０であれば、仮定値ｃtempが格納されていたディジタルデータ列であると推定し、計算を終了する。一方、ＨｃtempT＝０でなければ、変数ノードｃiは、情報ｑ＝｛ｑij，ｑkj，…｝を再計算し、計算結果をチェックノード｛ｆj，ｆk，…｝に送信する（図５（ｂ）参照）。
【００３２】
ここで、変数ノードｃiからチェックノードｆjに送信される情報ｑijは、確率Ｑ01と確率｛ｒki，ｒli，…｝を元に計算した、「変数ノードｃiのディジタルデータ値が１である確率」であり、チェックノードｆjからの情報ｒjiは含まれない。すなわち、チェックノードｆjは、情報ｑijにより自身以外のチェックノードの情報を受け取ることになる。
【００３３】
情報ｑを受け取ったチェックノードは、受け取った情報ｑを元に確率ｒを計算して、変数ノードに返送する。以上のアルゴリズムを、パリティ条件が満たされるまで繰り返し実行する。すなわち、計算した確率ｒを用いて仮定値の列ｃtempを更新し、更新した仮定値の列ｃtempに対して、ＨｃtempT＝が０になるまで、アルゴリズムを繰り返す。
【００３４】
次に、上述した式（２）について考える。式（２）において、変数ｑkjは、変数ノードｋの値が０である確率を暫定的に表している暫定確率である。この変数ノードｋの値が１である暫定確率ｐkjは、（１−ｑkj）で与えられる。すなわち、ｐkj＋ｑkj＝１である。これを式（２）に代入すると、次式（３）が得られる。
【数３】
0006290057.tif 000004
【００３５】
式（３）において、右辺第２項を展開すると、各項は、確率ｐと確率ｑとの積となり、偶数個の確率ｑを含む項はプラスとなり、奇数個の確率ｑを含む項はマイナスとなる。定義より、確率ｑは、元の変数ノードの値が１である確率であるから、確率ｑが偶数個含まれることは、１が偶数個含まれることに対応しており、パリティが満たされる場合を表している。一方、１が奇数個含まれる項は、パリティ違反の場合に対応する。
【００３６】
以下、説明のため、チェックノードｆjに対して、変数ノードｃi、ｃ1、ｃ2、ｃ3およびｃ4の５個の変数ノードが接続されるものとする。これはこの例に限られず、１のチェックノードに接続される変数ノードが５個以外であっても、以下の説明は適用できる。
【００３７】
煩雑さを避けるため、変数ｑkjおよびｐkjの添字「ｊ」を省略すると、式（３）の右辺第２項は、次式（４）のように表すことができる。
【数４】
0006290057.tif 000005
【００３８】
この式（４）から明らかなように、「ｐ」が偶数個含まれる項はプラス、奇数個含まれる項はマイナスとなり、確率ｒjiは、パリティ条件を満たす確率の総和と、パリティ違反の確率の総和との差分となっている。式（４）の右辺前半のプラス項の和を(even  1,2,3,4)と表記し、後半のマイナス項の和を(odd  1,2,3,4)と表記すると、(even  1,2,3,4)＋(odd  1,2,3,4)＝１が成り立つ。これを考慮すると、式（３）は、次式（５）のように表すことができる。
【数５】
0006290057.tif 000006
【００３９】
式（５）から分かるように、確率ｒjiは、変数ノードｃ1、ｃ2、ｃ3およびｃ4の中に、値が１の変数ノードが偶数個含まれている確率であり、これは、変数ノードｃ1、ｃ2、ｃ3およびｃ4の情報から求めた変数ノードｃi＝０であるべき確率である。一方、変数ノードｃi＝１であるべき確率は、確率（１−ｒji）である。したがって、現在与えられている変数ノードｃiの値を反転させるべき確率は、（ｃi＝０であるべき確率）×（現在ｃi＝１である確率）＋（ｃi＝１であるべき確率）×（現在ｃi＝０である確率）である。これは、次式（６）で表される。
【数６】
0006290057.tif 000007
【００４０】
式（６）の第２項を展開すると、上述した式（５）と同様に、（「ｐ」が奇数個存在する項の総和）−（「ｐ」が偶数個存在する項の総和）という形になる。ここで、「ｐ」が奇数個存在する項の総和を(odd  i,1,2,3,4)、「ｐ」が偶数個存在する項の総和を(even  i,1,2,3,4)と表記するものとし、(odd  i,1,2,3,4)＋(even  i,1,2,3,4)＝１であることに注意すると、式（６）は、次式（７）のように表される。
【数７】
0006290057.tif 000008
【００４１】
総和(odd  i,1,2,3,4)は、「ｐ」が奇数個存在する項の総和であることから、変数ノードｃi、ｃ1、ｃ2、ｃ3およびｃ4の値の組がパリティ条件に違反する確率に等しい。すなわち、式（７）は、チェックノードｆjは、変数ノードｃiの現在値について、パリティ条件違反となる確率で正しくないと判断し、パリティ条件が満たされる確率で正しいと判断することを意味している。
【００４２】
「パリティを満たす確率」と「現在ｃi＝０である確率」は既知であるので、この結果から、「ｃi＝０であるべき確率」は式（６）および式（７）から容易に算出することができる。
【００４３】
以上説明したチェックノード処理を可視的に示すために、図６に示す２状態トレリス線図を導入する。図６に例示される２状態トレリス線図は、上部に並ぶ６個のノードａ0〜ａ5と、下部に並ぶ４個のノードｂ0〜ｂ3を含み、上部を状態Ａ、下部を状態Ｂとしている。また、図６において、各ノードａ0〜ａ5位置の縦破線で分割した各領域＃１、＃２、＃ｉ、＃３および＃４は、それぞれ変数ノードｃ1、ｃ2、ｃi、ｃ3およびｃ4に対応している。
【００４４】
なお、図６に例示される各領域＃１、＃２、＃ｉ、＃３および＃４の並び順は、この例に限られず、他の並び方でもよい。例えば、変数ノードｃiに対応する領域＃ｉが左端にあっても、最終的な結果には影響しない。
【００４５】
ここで、ノードａ0からノードａ5に向かう離散時間確率過程を考える。最初のステップでは、ノードａ0からノードａ1またはノードｂ1に遷移する。このとき、ノードａ0からノードａ1に遷移する確率を確率ｑ1とし、ノードａ0からノードｂ1に遷移する確率を確率ｐ1＝１−ｑ1とする。若し、ノードａ0からノードａ1に遷移した場合、次のステップでは、ノードａ1からノードａ2またはノードｂ2に遷移する。このとき、ノードａ1からノードａ2に遷移する確率を確率ｑ2とし、ノードａ1からノードｂ2に遷移する確率を確率ｐ2＝１−ｑ2とする。
【００４６】
ここで、それぞれ遷移のステップが同一のノードの組（ａx，ｂx）および（ａy，ｂy）が領域ｚを挟んで向かい合っている場合において、ノードａxからノードａyに（状態Ａから状態Ａに）遷移する確率と、ノードｂxからノードｂyに（状態Ｂから状態Ｂに）遷移する確率とを、確率ｑzとする。同様に、ノードａxからノードｂyに（状態Ａから状態Ｂに）遷移する確率と、ノードｂxからノードａyに（状態Ｂから状態Ａに）遷移する確率とを、確率ｐzとする。すなわち、図６において、水平方向に遷移する確率が確率ｑzであり、斜め方向に遷移する確率が確率ｐzである。
【００４７】
図６の２状態トレリス線図において、このような確率過程によって、ノードａ0からノードａ5に至る経路が形成される。なお、図６の例では、経路の起点がノードａ0となり、終点がノードａ5となる。図７は、ノードａ0からノードａ5に至る経路の例を示す。図７の例では、ノードａ0からノードｂ1に遷移し、ノードｂ1からノードｂ2に遷移する。さらに、ノードｂ2からノードａ3に遷移し、ノードａ3からノードａ4に遷移している。この図７の経路が実現する確率は、確率（ｐ1ｑ2ｐiｑ3ｑ4）で与えられる。この確率（ｐ1ｑ2ｐiｑ3ｑ4）は、上述したように「ｐ」を１、「ｑ」を０としたとき、変数ノード｛ｃ1，ｃ2，ｃi，ｃ3，ｃ4｝＝（１０１００）に対応する。
【００４８】
図６および図７において、ノードａ0からノードａ5に至る経路では、ノードａ0およびａ5は、共に状態Ａにあるため、一度状態Ｂに遷移した場合は、必ず状態Ａに戻ってこなくてはならない。すなわち、異なる状態間の遷移は、必ず偶数回存在することになる。換言すれば、起点のノードから終点のノードへの経路を実現する場合の確率の式において、文字「ｐ」が必ず偶数個含まれることになる。これは、変数ノードにおいて１が偶数個含まれていることに対応しており、パリティ条件を満たすことを示す。上述の通り「現在ｃi＝０である確率」は既知であるから、「ｃi＝０であるべき確率」は容易に求めることができる。このように、トレリス線図に経路を考え、この経路に沿って確率を計算する手法を、ＢＣＪＲ(Bahl,  Cocke,  Jelinek,  Raviv)アルゴリズムと呼ぶ。
【００４９】
以上の説明を前提として、以下に、各実施形態について説明する。
【００５０】
（第１の実施形態）
第１の実施形態について説明する。図８は、第１の実施形態に係るチェックノード回路の一例の構成を示す。図８において、チェックノード回路１００は、図６に示した２状態トレリス線図の各エッジを導線に置き換え、各導線上にスイッチ１０11〜１０15、１０21〜１０24、１０31〜１０34、および１０41〜１０43を配置することで得られる回路である。以下では、一例として、５つの変数ノードからの確率を処理する回路としてチェックノード回路を説明するが、チェックノード回路が対応する変数ノードは、５より多くても良いし、少なくても良い。
【００５１】
なお、以下において、スイッチ１０11〜１０15、１０21〜１０24、１０31〜１０34、および１０41〜１０43は、後述する機能に従い、水平方向にノードを接続する導線上のスイッチをスイッチＱyxのように表し、斜め方向にノードを接続する導線上のスイッチをスイッチＰyxのように表す。ここで、添字ｙは、図６の２状態トレリス線図における各領域を示し、上付きの添字ｘは、状態Ａのノード（ノードａ0〜ａ3）から右方向（斜め方向を含む）に伸びている導線上のスイッチでは「ａ」とし、状態Ｂのノード（ノードｂ1〜ｂ4）から右方向（斜め方向を含む）に伸びている導線上のスイッチでは「ｂ」としている。
【００５２】
すなわち、図８の例では、ノードａ0〜ａ5を順次接続する導線上の各スイッチ１０11〜１０15は、それぞれスイッチＱ1a、Ｑ2a、Ｑia、Ｑ3aおよびＱ4aであり、ノードｂ1〜ｂ4を順次接続する導線上の各スイッチ１０41〜１０43は、それぞれスイッチＱ2b、ＱibおよびＱ3bである。また、各ノードａ0〜ａ3から右方向に斜めに、各ノードｂ1〜ｂ4にそれぞれ接続する導線上の各スイッチ１０21〜１０24は、それぞれスイッチＰ1a、Ｐ2a、ＰiaおよびＰ3aである。さらに、各ノードｂ1〜ｂ4から右方向に斜めに、各ノードａ2〜ａ5にそれぞれ接続する導線上の各スイッチ１０31〜１０34は、それぞれスイッチＰ2b、Ｐib、Ｐ3bおよびＰ4bである。
【００５３】
ここで、スイッチＱyaおよびＱybは、全く同じ動作となるのが望ましい。同様に、スイッチＰyaおよびＰybは、全く同じ動作となるのが望ましい。また、スイッチＱyaおよびＱybのペアと、スイッチＰyaおよびＰybのペアは、相補的に動作することが望ましい。すなわち、スイッチＱyaおよびＱybが開状態の場合は、スイッチＰyaおよびＰybは、閉状態となり、スイッチＱyaおよびＱybが閉状態の場合は、スイッチＰyaおよびＰybは、開状態となることが望ましい。
【００５４】
以下では、煩雑さを避けるため、特に状態ＡおよびＢを区別する必要が無い場合には、スイッチＱyaおよびＱybを纏めてスイッチＱyと表記し、同様に、スイッチＰyaおよびＰybをスイッチＰyと表記する。
【００５５】
これらスイッチＱyおよびＰyは、外部から設定された確率に従い開状態となるように構成する。スイッチＱyおよびＰyは、相補的に動作するため、スイッチＱyが確率ｑyで開状態となる場合、スイッチＰyが開状態になる確率は、確率（１−ｑy）となる。
【００５６】
図８の各スイッチＱ1a、Ｑ2a、Ｑia、Ｑ3aおよびＱ4a、スイッチＰ1a、Ｐ2a、ＰiaおよびＰ3a、スイッチＰ2b、Ｐib、Ｐ3bおよびＰ4b、ならびに、スイッチＱ2b、ＱibおよびＱ3bを同時に動作させ、ノードａ0とノードａ5との間に経路を作ることを考える。例えば、ノードａ0に電源を接続し、ノードａ5に電流検出器を接続し、ノードａ0とノードａ5との間に電流経路が形成されたか否かを判定する。
【００５７】
図９は、各スイッチ動作時の一例の状態を示す。図９（ａ）において、斜線を付したスイッチが開状態となっているスイッチを示す。すなわち、図９（ａ）の例では、スイッチＱ1a、Ｑia、Ｐ2a、Ｐ3a、Ｐ2b、Ｐ3b、Ｐ4bおよびＱibが開状態となり、他が閉状態となっている。
【００５８】
この場合、図９（ｂ）に太線で示されるように、「ノードａ0→スイッチＰ1a→ノードｂ1→スイッチＱ2b→ノードｂ2→スイッチＰib→ノードａ3→スイッチＱ3a→ノードａ4→スイッチＱ4a→ノードａ5」という経路が形成され、ノードａ0とノードａ5との間で電流が流れる。また、この経路以外に、電流の流れる経路は存在しない。
【００５９】
ここで、スイッチＱ1、Ｑ2、Ｑi、Ｑ3およびＱ4が開状態となる確率は、変数ノードｃ1、ｃ2、ｃi、ｃ3およびｃ4の値が０である確率ｑ1、ｑ2、ｑi、ｑ3およびｑ4と同一であるものとする。すると、図９（ｂ）に太線で示す電流経路が形成される確率は、確率（ｐ1ｑ2ｐiｑ3ｑ4）で与えられる。
【００６０】
ここで、確率ｐk＝１−ｑkであり、スイッチＰkが開状態となる確率である。この確率は、変数ノードｃ1、ｃ2、ｃi、ｃ3およびｃ4の値が（ｃ1，ｃ2，ｃi，ｃ3，ｃ4）＝（１０１００）である確率に等しい。このように、起点のノードａ0から終点のノードａ5に至るある経路が実現する確率は、変数ノード｛ｃ1，ｃ2，ｃi，ｃ3，ｃ4｝の値のある組み合わせ（上述の例では「１０１００」）が実現する確率に等しい。この特定の組み合わせは、必ずパリティ条件を満たす。理由は、ノードａ0から出発してノードａ5に到達するためには、スイッチＰyを偶数回通らなくてはならないが、スイッチＰyが開状態となる確率は、確率ｐyすなわちｃy＝１である確率に等しいからである。
【００６１】
一方、ノードａ0から出発する経路の中には、ノードａ5に到達できない経路も存在する。図１０を用いて説明する。図１０（ａ）において、スイッチＱ1a、Ｑ2a、Ｑia、Ｑ2b、Ｑib、Ｐ3a、Ｐ3bおよびＰ4bが開状態となり、他が閉状態となっている。図１０（ｂ）は、この場合に形成される経路を太線で示す。図１０（ｂ）に示されるように、この例の場合、ノードａ0から出発した経路は、ノードｂ4まで到達するが、スイッチＰ4bが開状態とされているため、ノードａ5に到達できない。図１０（ｂ）の経路が形成される確率は、確率（ｐ1ｐ2ｐiｑ3ｑ4）で与えられ、この確率は、変数ノード｛ｃ1，ｃ2，ｃi，ｃ3，ｃ4｝の値が（ｃ1，ｃ2，ｃi，ｃ3，ｃ4）＝（１１１００）である確率に等しい。
【００６２】
以上のことから、変数ノード｛ｃ1，ｃ2，ｃi，ｃ3，ｃ4｝の値の組（ｃ1，ｃ2，ｃi，ｃ3，ｃ4）がパリティ条件を満たす確率(even  1,2,i,3,4)は、図８において起点のノードａ0から終点のノードａ5に至る経路が形成される確率と等しく、パリティ違反となる確率(odd  1,2,i,3,4)は、経路がノードａ4またはｂ4で行き止まりとなる確率に等しいことが分かる。
【００６３】
そこで、図８のチェックノード回路１００を何度も動作させ、動作毎にノードａ0およびａ5間の導通をチェックすることを考える。チェックノード回路１００に含まれる各スイッチＱyおよびＰyは、確率に従い開閉動作を行うため、動作毎に状態が異なる。そのため、ノードａ0およびａ5間の導通も、動作毎に異なる。しかしながら、各スイッチＱyおよびＰyの開閉の確率は、一定である。そのため、チェックノード回路１００の各スイッチＱyおよびＰyの開閉を繰り返し実行して導通判定結果に対して統計処理を施すことで、パリティ条件を満たす確率で導通が取れ、パリティ違反となる確率で導通が遮断される。
【００６４】
例えば、チェックノード回路１００を、各スイッチＱyおよびＰyの開閉確率を一定として２０回開閉動作させて、そのうち８回で導通が取れた場合、パリティ条件が満たされる確率が４０％、パリティ違反の確率が６０％ということになる。ここで、変数ノードｃiが現在０である確率は分かっているので、ｃi＝０であるべき確率を求めることができる。これは、ＬＤＰＣ符号の、チェックノードｆjから変数ノードｃiへのメッセージに相当し、このチェックノードｆjは、この結果を変数ノードｃiに転送する。変数ノードｃiは、他のチェックノードからの結果を集計し、確率ｑiおよびｐiの値を更新する。
【００６５】
このように、第１の実施形態では、ＬＤＰＣ符号の復号処理におけるチェックノード処理を行う回路のトポロジーを、チェックノード処理のアルゴリズムを表す２状態トレリス線図に対応させる。そして、２状態トレリス線図の各エッジに、設定された確率に従い開閉動作を行うスイッチを配置して、チェックノード回路１００を構成する。
【００６６】
なお、上述では、同じチェックノード回路１００を繰り返し動作させているが、これはこの例に限定されない。例えば、同一構成のチェックノード回路１００を多数用意し、これらを並列的に用いて上述の導通確率を求めてもよい。
【００６７】
上述した、確率に従い動作するスイッチＱyおよびＰyを備えた、図８に例示するチェックノード回路１００を繰り返し実行させる、あるいは、当該チェックノード回路１００を複数用意して並列的に動作させて導通をチェックすることで、ＬＤＰＣ符号のチェックノード処理を実施することができる。
【００６８】
このように、確率動作による演算を繰り返す、あるいは、並列的に複数行うことを、以下ではサンプリングと呼ぶ。サンプリング数は、ＬＤＰＣ符号の復号計算における、確率値の精度に相当する。図１１は、９８１×５００の検査行列Ｈを用いて９８１ビットのエラー訂正を行った結果をそれぞれ示す。各グラフは、横軸が復号演算の繰り返し回数、縦軸が符号中に残るエラービットの割合を示している。符号は、ＡＷＧＮ(Additive  White  Gaussian  Noise)によってエラーが生じており、ＡＷＧＮのＳＮ比が２．４ｄＢ、２．６ｄＢ、２．８ｄＢ、３．０ｄＢ、３．２ｄＢ、３．４ｄＢのぞれぞれの場合について、サンプリング数を１０回（特性線４００）、２０回（特性線４０１）、５０回（特性線４０２）、１００回（特性線４０３）としてエラー訂正能力を調べている。図中に示される特性線４０４は、通常のＬＤＰＣ復号法、すなわち、実数計算によるエラー訂正結果を示す。
【００６９】
図１１の各図から分かるように、サンプリング数が１０回ではエラー訂正能力が低いが、サンプリング数が多くなるに従ってエラー訂正能力が向上する。特に、サンプリング数が２０回以上行うことで、実数計算による場合と比べて遜色ないエラー訂正能力が得られることが分かる。このように、確率に従い動作する単純な回路をＬＤＰＣ復号のチェックノード処理に利用することにより、エラー訂正を行うことが可能となる。
【００７０】
なお、既に述べたように、スイッチＱyaおよびＱyb、ならびに、スイッチＰyaおよびＰybは、それぞれ全く同じ動作をするのが望ましく、その場合、スイッチＱyaおよびＱybのペアと、スイッチＰyaおよびＰybのペアは、相補的に動作することが望ましい。そのため、上述では、スイッチＱyaおよびＱybが共に開状態の場合には、スイッチＰyaおよびＰybが共に閉状態となり、スイッチＱyaおよびＱybが共に閉状態の場合には、スイッチＰyaおよびＰybが共に開状態となるものとして説明した。これは、ある変数ノードｃyの取り得る値が１と０とで排他的であることに起因して、スイッチ動作にも排他性を持たせているためである。
【００７１】
一方、スイッチＱyとスイッチＰyとの間の排他性を無視すれば、ノードａ0およびａ5を結ぶ経路が同時に複数形成される可能性があり、この場合、上述の式（７）などにおける確率和が成り立たなくなってしまう。しかしながら、その誤差は、２以上の経路が同時に形成される確率程度であって、これは、極めて小さい誤差となると考えられる。ＬＤＰＣ符号によるエラー訂正の本質は、確率的な推論であり、確率的な推論の利点は、多少の曖昧さを許容することにある。
【００７２】
実施形態の場合、複数の経路が同時に形成される確率は、式（７）の各項の値に比べて小さいと考えられる。したがって、「スイッチＱyaおよびＱybが共に開状態の場合には、スイッチＰyaおよびＰybが共に閉状態となる」ような動作をしない場合であっても、エラー訂正を行うことが可能である。
【００７３】
このように、第１の実施形態では、ＬＤＰＣ符号の復号処理におけるチェックノード処理を行う回路のトポロジーを、チェックノード処理のアルゴリズムを表す２状態トレリス線図に対応させ、２状態トレリス線図の各エッジに、設定された確率に従い開閉動作を行うスイッチを配置して、チェックノード回路１００を構成している。そのため、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【００７４】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、図８に示したチェックノード回路１００を、ＭＯＳ型トランジスタを用いて構成した例である。図１２は、第２の実施形態に係るチェックノード回路１００ａの例を示す。なお、図１２および以下の同様な図において、図８と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００７５】
図１２において、スイッチＱｙに対応する各スイッチ部１０11〜１０15および１０41〜１０43と、スイッチＰyに対応する各スイッチ部１０21〜１０24および１０31〜１０34は、ＮＭＯＳ型トランジスタまたはＰＭＯＳ型トランジスタを用いて構成される。各スイッチ部としてＮＭＯＳ型およびＰＭＯＳ型の何れのトランジスタを用いてもよいが、ここでは、ＮＭＯＳ型トランジスタを用いるものとする。
【００７６】
各スイッチ部１０11〜１０15、１０21〜１０24、１０31〜１０34、１０41〜１０43は、それぞれソースおよびドレインが各ノードａ0〜ａ5、ｂ1〜ｂ4に接続され、ゲートに入力される信号Ｖによりソースおよびドレイン間の開閉が制御される。図１２の例では、例えばスイッチ部１０12および１０41には、確率ｑ2の信号Ｖ2qが入力され、スイッチ部１０22および１０31は、確率ｐ2＝１−ｑ2の信号Ｖ2pが入力される。この、確率ｑjの信号Ｖjとは、確率ｑjに従い１または０の値を取るディジタル信号である。このような信号は、例えば乱数に基づき生成することができる。
【００７７】
同様に、スイッチ部１０13および１０42は、確率ｑiの信号Ｖiqが入力され、スイッチ部１０23および１０32は、確率ｐi＝１−ｑiの信号Ｖipが入力される。スイッチ部１０14および１０43は、確率ｑ3の信号Ｖ3qが入力され、スイッチ部１０24および１０33は、確率ｐ3＝１−ｑ3の信号Ｖ3pが入力される。また、スイッチ部１０11には、確率ｑ1の信号Ｖ1qが入力され、スイッチ部１０21には、確率ｐ1＝１−ｑ1の信号Ｖ1pが入力される。同様に、スイッチ部１０15には、確率ｑ4の信号Ｖ4qが入力され、スイッチ部１０34には、確率ｐ4の信号Ｖ4pが入力される。
【００７８】
チェックノード回路１００ａにおいて、例えば、起点のノードａ0に電流源２０を接続し、終点のノードａ5に電流検出器２１を接続する。各スイッチ部１０11〜１０15、１０21〜１０24、１０31〜１０34、１０41〜１０43の開閉に応じた電流検出器２１の検出結果に基づき、ノードａ0〜ａ5間に経路が形成されたか否かを判定することができる。この判定結果は、パリティ条件が満たされる確率で経路が形成された旨が判定され、パリティ違反の確率で経路が形成されない旨が判定される。
【００７９】
図１２のチェックノード回路１００ａは、確率に対して相補的に動作させるスイッチＱyおよびＰyを、それぞれ導電型の異なる２種類のトランジスタを用いて構成してもよい。以下では、導電型の異なる２種類のトランジスタを、ＮＭＯＳ型トランジスタおよびＰＭＯＳ型トランジスタトランジスタであるものとする。図１３は、２状態トレリス線図において各ノードの水平方向の導線上に配置されるスイッチＱyすなわちスイッチ部１０11〜１０15および１０41〜１０43をＮＭＯＳ型トランジスタで構成し、斜め方向の導線上に配置されるスイッチＰyすなわちスイッチ部１０21〜１０24および１０31〜１０34をＰＭＯＳ型トランジスタで構成したチェックノード回路１００ａ’の例である。
【００８０】
また、図１４は、逆に、２状態トレリス線図において水平方向の導線上に配置されるスイッチＱyすなわちスイッチ部１０11〜１０15および１０41〜１０43をＰＭＯＳ型トランジスタで構成し、斜め方向の導線上に配置されるスイッチＰyすなわちスイッチ部１０21〜１０24および１０31〜１０34をＮＭＯＳ型トランジスタで構成したチェックノード回路１００ａ”の例である。
【００８１】
ＮＭＯＳ型トランジスタおよびＰＭＯＳ型トランジスタは、同一のゲート入力に対して相補的な動作となるため、相補的な動作が望ましいペアのスイッチＱyおよびＰyに対して、例えば確率ｑyでハイ状態となり、確率ｐy＝１−ｑyでロー状態となる信号Ｖyqを共通に入力することができる。勿論、ペアのスイッチＱyおよびＰyに対して、確率ｐyでハイ状態となり、確率ｑy＝１−ｐyでロー状態となる信号Ｖypを入力してもよい。
【００８２】
図１３の例では、スイッチ部１０12、１０22、１０31および１０41のゲートに、確率ｑ2の信号Ｖ2qが共通に入力される。同様に、スイッチ部１０13、１０23、１０32および１０42のゲートに、確率ｑiの信号Ｖiqが共通に入力され、スイッチ部１０14、１０24、１０33および１０43に、確率ｑ3の信号Ｖ3qが共通に入力される。また、スイッチ部１０11および１０21のゲートに、確率ｑ1の信号Ｖ1qが共通に入力され、スイッチ部１０15および１０34のゲートに、確率ｑ4の信号Ｖ4qが共通に入力される。
【００８３】
なお、図１３のチェックノード回路１００ａ’に対してＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えた、図１４のチェックノード回路１００ａ”においては、信号Ｖ1〜Ｖ4およびＶiは、図１３の場合と逆に、確率ｐ1〜ｐ4およびｐiの信号Ｖ1p、Ｖ2p、Ｖ3p、Ｖ4pおよびＶipとされる。
【００８４】
このように、第２の実施形態では、ＬＤＰＣ符号の複合処理におけるチェックノード処理を表す２状態トレリス線図の各エッジに配置する、確率的に動作するスイッチを、ＭＯＳ型トランジスタを用いて構成している。そのため、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【００８５】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態では、各確率ｑy、ｐyの信号を、抵抗状態が２状態以上存在する抵抗スイッチ素子を用いて生成する。図１５は、抵抗スイッチ素子３００を用いた確率信号発生器３０の一例の構成を示す。図１５（ａ）において、抵抗スイッチ素子３００は、外部からの設定に応じて抵抗値が高抵抗状態および低抵抗状態のうち何れかに制御される。抵抗スイッチ素子３００は、一端から所定の電圧の信号Ｖが供給され、他端がスイッチ部１０のゲートに接続されると共に、抵抗値Ｒ0の抵抗３０１を介して例えば接地される。
【００８６】
図１６は、確率信号発生器３０を用いたチェックノード回路１００ｂの一例の構成を示す。このチェックノード回路１００ｂは、図１２を用いて説明したチェックノード回路１００ａに対応するもので、スイッチ部１０12および１０41に共通に確率信号発生器３０12が接続され、スイッチ部１０22および１０31に共通に確率信号発生器３０22が接続される。同様に、スイッチ部１０13および１０42に共通に確率信号発生器３０13が、スイッチ部１０23および１０32に共通に確率信号発生器３０23がそれぞれ接続され、スイッチ部１０14および１０43に共通に確率信号発生器３０14が、スイッチ部１０24および１０33に共通に確率信号発生器３０24がそれぞれ接続される。また、スイッチ部１０11に確率信号発生器３０11が接続され、スイッチ部１０21に確率信号発生器３０21が接続される。同様に、スイッチ部１０15に確率信号発生器３０15が接続され、スイッチ部１０34に確率信号発生器３０25が接続される。
【００８７】
抵抗スイッチ素子３００の動作について、詳細に説明する。抵抗スイッチ素子３００の高抵抗状態の抵抗値を抵抗値Ｒhigh、低抵抗状態の抵抗値を抵抗値Ｒlowとし、Ｒhigh＞＞Ｒ0＞＞Ｒlowとする。抵抗スイッチ素子３００が低抵抗状態にあるときは、Ｒ0＞＞Ｒlowであるため、抵抗スイッチ素子３００の一端から入力された電圧Ｖは、略そのままスイッチ部１０のゲートに印加され、スイッチ部１０がＮＭＯＳ型トランジスタであれば閉状態となり、ＰＭＯＳ型トランジスタであれば開状態となる。一方、抵抗スイッチ素子３００が高抵抗状態にあれば、Ｒ0＜＜Ｒhighであるため、スイッチ部１０のゲートに印加される電圧は、略０Ｖとなる。この場合、スイッチ部１０がＮＭＯＳ型トランジスタであれば開状態となり、ＰＭＯＳ型トランジスタであれば閉状態となる。
【００８８】
抵抗スイッチ素子３００としては、ＴｉＯx、ＴａＯx、ＨｆＯx、ＷＯxなどの遷移金属酸化物や、ＳｒＴｉＯ3、Ｐｒ0.7Ｃａ0.3ＭｎＯ3などの多元酸化物、ＣａＦ2やＢａＦ2などのハロゲン化物の薄膜を金属電極で挟んだキャパシタ型の素子が知られている。図１５（ｂ）は、抵抗スイッチ素子３００の構造を模式的に示す。抵抗スイッチ素子３００は、概略的には、上部電極３１０と下部電極３１２とで絶縁体薄膜３１１を挟んだ構造を有する。絶縁体薄膜３１１は、膜厚が数ｎｍ〜数十ｎｍ程度である。これはこの例に限定されず、絶縁体薄膜３１１の膜厚はさらに薄くてもよいし、さらに厚くてもよい。
【００８９】
このような抵抗スイッチ素子３００は、内部に存在する酸素やハロゲン元素の欠損が電圧によって移動し、電圧印加によって抵抗が急激に変化する特性を有する。例えば、絶縁体薄膜３１１が金属酸化膜である場合、抵抗スイッチ素子３００は、上部電極３１０に正電圧を印加することで、内部の酸素欠損が上部電極３１０の界面から遠ざかり、低抵抗状態から高抵抗状態に遷移する。一方、抵抗スイッチ素子３００は、上部電極３１０に負電圧を印加することで、上部電極３１０の界面に酸素欠損が集まり、高抵抗状態から低抵抗状態に遷移する。この現象を、バイポーラ型抵抗スイッチ現象と呼ぶ。
【００９０】
図１７は、ＴａＯxによるバイポーラ型抵抗スイッチ現象の電流−電圧特性の例を示す。図１７（ａ）および図１７（ｂ）において、左端側は、高抵抗状態から低抵抗状態への遷移を示し、右端側は、低抵抗状態から高抵抗状態への遷移を示す。酸素欠損によるバイポーラ型抵抗スイッチ現象では、高抵抗状態と低抵抗状態とで１００倍以上の抵抗比を実現することが可能であり、上述したＲhigh＞＞Ｒ0＞＞Ｒlowの条件を満たすことができる。
【００９１】
また、抵抗スイッチ素子３００として、キャパシタ型の素子を用いることも可能である。キャパシタ型の素子は、硫化銀、硫化銅、硫化ゲルマニウム、セレン化ゲルマニウムなどの硫化物やセレン化物、アモルファスＳｉなどのアモルファス半導体や、ＳｉＯ２、ＴａＯｘといった酸化物などの金属イオン伝導体を、Ａｇ、Ｃｕ、Ｎｉなどイオン化し易い上部電極３１０と、Ｐｔ、Ｔａ、Ｗ、Ｉｒなどのイオン化しにくい下部電極３１２とで挟んだ構造を有する。キャパシタ型の素子の場合、金属イオン伝導体の厚さは、例えば数ｎｍ〜数十ｎｍであるが、これよりも厚くてもよいし、薄くてもよい。
【００９２】
このキャパシタ型の抵抗スイッチ素子３００は、図１５（ｂ）に示した構造において、絶縁体薄膜３１１の代わりに金属イオン伝導体を用い、金属イオン伝導体内部に上部電極３１０のイオンが入り込み、電圧印加によって金属イオンが移動することによって、抵抗値が急激に変化する。例えば、イオン化し易い金属による上部電極３１０に正電圧を印加した場合、上部電極３１０から金属イオン伝導体に金属イオンが流れ込んで伝導パスを形成し、抵抗スイッチ素子３００は、高抵抗状態から低抵抗状態へと遷移する。一方、上部電極３１０に負電圧を印加した場合、伝導パスを形成していた金属イオンが上部電極３１０へと戻るので、抵抗スイッチ素子３００は、低抵抗状態から高抵抗状態に遷移する。このキャパシタ型の素子を用いた抵抗スイッチ素子３００では、高抵抗状態と低抵抗状態とで１０００倍以上の抵抗比を実現することが可能であり、上述したＲhigh＞＞Ｒ0＞＞Ｒlowの条件を満たすことができる。
【００９３】
これらの抵抗スイッチ素子３００に共通するのは、絶縁体内部を欠損やイオンが移動して抵抗が遷移することである。欠損やイオンは、電子に比べると非常に大きく、絶縁体の格子中をホッピング的に移動していくため、その集団的挙動は、確率的な挙動となる。このため、高抵抗状態の抵抗スイッチ素子３００に対して同一の条件で電圧印加を繰り返した場合であっても、低抵抗状態への遷移は、確率的にしか発生しない。
【００９４】
図１８は、ＴａＯxを用いた抵抗スイッチ素子３００のスイッチ時間と累積確率との一例の関係を示す。すなわち、図１８は、ＴａＯxを用いた抵抗スイッチ素子３００において、高抵抗状態に対して一定の電圧を印加して低抵抗状態に遷移するまでの時間（スイッチ時間）の、累積確率分布を示している。図１８から分かるように、スイッチ時間は３桁程度に亘って分布しており、遷移自体が確率的であることを示している。この抵抗スイッチ素子３００の状態を２０％の割合で遷移させたい場合は、図１８より、電圧を４００ｎｓの間、印加すればよいことが分かる。すなわち、図１８において、累積確率が０．２に達するのが４００ｎｓとなっている。
【００９５】
このように、スイッチ時間に応じて累積確率が変化する抵抗スイッチ素子３００を用いて、図１５（ａ）に示したような確率信号発生器３０を構成する。抵抗スイッチ素子３００の両端に、所望の確率となる時間だけ電圧を印加させて抵抗スイッチ素子３００を所望の確率で低抵抗化させた上で、抵抗スイッチ素子３００の一端（スイッチ部１０に対して非接続側の端）にスイッチ部１０に対するゲート信号を入力する。これにより、所望の確率でスイッチ部１０を開状態とすることができる。
【００９６】
このような抵抗スイッチ素子３００を用いることで、図１６で示したように、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【００９７】
なお、図１６において、各確率信号発生器３０11〜３０15、３０21〜３０25に対して一定電圧の信号Ｖが入力され、それぞれの抵抗スイッチ素子３００が確率ｑ1、ｑ2、ｑi、ｑ3およびｑ4、ならびに、確率ｐ1、ｐ2、ｐi、ｐ3およびｐ4に従い制御される。
【００９８】
図１９および図２０は、上述した図１３および図１４の構成にそれぞれ対応するものである。すなわち、図１９は、図１６の構成に対して、２状態トレリス線図においてノードの水平方向の導線上に配置されるスイッチ部１０11〜１０15、１０41〜１０43をそれぞれＮＭＯＳ型トランジスタで構成し、斜め方向の導線上に配置されるスイッチ部１０21〜１０24、１０31〜１０34をそれぞれＰＭＯＳ型トランジスタで構成したチェックノード回路１００ｂ’の例を示す。この例において、スイッチ部１０11および１０21に共通して確率信号発生器３０1が接続され、スイッチ部１０15および１０34に共通して確率信号発生器３０5が接続される。また、スイッチ部１０12、１０22、１０31および１０41、スイッチ部１０13、１０23、１０32および１０42、スイッチ部１０14、１０24、１０33および１０43に、それぞれ確率信号発生器３０2、３０3および３０4が共通して接続される。
【００９９】
この構成において、チェックノード回路１００ｂ’は、各確率信号発生器３０1〜３０5に対して、一定電圧の信号Ｖが入力され、それぞれの抵抗スイッチ素子３００が確率ｑ1、ｑ2、ｑi、ｑ3およびｑ4で制御される。
【０１００】
また、図２０は、図１９の構成に対して、各スイッチ部１０においてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えたチェックノード回路１００ｂ”の例を示す。このチェックノード回路１００ｂ”は、確率信号発生器３０1〜３０5の接続は図１９のチェックノード回路１００ｂ’と略同様なので、ここでの説明を省略する。また、このチェックノード回路１００ｂ”は、各確率信号発生器３０1〜３０5それぞれの抵抗スイッチ素子３００が確率ｐ1、ｐ2、ｐi、ｐ3およびｐ4で制御される。
【０１０１】
（第３の実施形態の第１の変形例）
次に、第３の実施形態の第１の変形例について説明する。抵抗スイッチ素子３００を高抵抗状態から低抵抗状態に遷移させるため抵抗スイッチ素子３００の両端に印加する電圧は、スイッチ部１０におけるトランジスタ動作のための電圧よりも高いことが望ましい。これは、トランジスタ動作中に抵抗スイッチ素子３００が作動してしまうと、所望の確率でトランジスタが開閉しない可能性があるためである。一方、抵抗スイッチ素子３００の両端に印加する電圧が高過ぎる場合、スイッチ部１０のトランジスタを破壊してしまうおそれがある。
【０１０２】
そこで、この第３の実施形態の第１の変形例では、図２１に例示されるように、抵抗スイッチ素子３００とスイッチ部１０との接続点を、スイッチ素子３０２を介して例えば接地させて、確率信号発生器３１を構成する。スイッチ素子３０２は、抵抗スイッチ素子３００を低抵抗状態に遷移させる場合にのみ開状態になるように制御する。こうすることで、スイッチ部１０のゲートに印加される電圧が高くなり過ぎないようにできる。
【０１０３】
図２２は、第３の実施形態の第１の変形例による確率信号発生器３１を用いたチェックノード回路１００ｃの例を示す。このように、上述した第３の実施形態において図１６に示したチェックノード回路１００ｂの確率信号発生器３０11〜３０15、３０21〜３０25を、第３の実施形態の第１の変形例による確率信号発生器３１11〜３１15、３１21〜３１25に置き換えて、チェックノード回路１００ｃを構成する。
【０１０４】
また、図２３は、スイッチ部１０のトランジスタに、ＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを用いて各ゲート信号を共通化した構成に対して確率信号発生器３１を用いたチェックノード回路１００ｃ’の例である。この図２３の例では、図１９に示したチェックノード回路１００ｂ’の各確率信号発生器３０1〜３０5を、第３の実施形態の第１の変形例による各確率信号発生器３１1〜３１5に置き換えて、チェックノード回路１００ｃ’を構成している。勿論、この例に限らず、図２３の構成においてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えてもよい。
【０１０５】
このように、第３の実施形態の第１の変形例に係る確率信号発生器３１を用いた場合であっても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１０６】
（第３の実施形態の第２の変形例）
次に、第３の実施形態の第２の変形例について説明する。この第２の変形例は、上述した第１の変形例による確率信号発生器３１において、スイッチ素子３０２をしきい値スイッチ型のセレクタに置き換える。図２４（ａ）は、第３の実施形態の第２の変形例による確率信号発生器３２の一例の構成を示す。抵抗スイッチ素子３００とスイッチ部１０との接続点を、セレクタ３０３を介して例えば接地させる。
【０１０７】
しきい値スイッチ型のセレクタ３０３は、例えば、Ｐｔ／ＴａＯx／ＴｉＯ2／ＴａＯx／Ｐｔのような、金属酸化物の積層膜によるキャパシタによって実現できる。図２５は、このしきい値スイッチ型のセレクタ３０３の特性例を示す。図２５において特性線３３０で示されるように、セレクタ３０３は、低電圧では強い非線形の特性を示すため殆ど電流が流れず、電圧がしきい値を超えると、急激に電流が流れるようになる。したがって、低抵抗状態に遷移させるための電圧がしきい値よりも高く、スイッチ部１０のトランジスタの動作電圧がしきい値よりも低くなるように設計する。これにより、低抵抗状態に遷移させる際にはスイッチ部１０のゲートを接地させ、スイッチ部１０においてトランジスタが動作する際にのみゲートに電圧が印加されるようにできる。
【０１０８】
また、第３の実施形態の第２の変形例の別の例として、図２４（ｂ）に確率信号発生器３２’として例示されるように、セレクタ３０３を、ダイオード３２０ａおよび３２０ｂを互いに逆向きに並列接続させて構成することもできる。すなわち、このダイオード３２０ａおよび３２０ｂの並列接続も、図２５に特性線３３０で示されるような特性を示す。ダイオード３２０ａおよび３２０ｂとしては、ＰＮ接合のダイオードでもよいし、ショットキーダイオードでもよい。
【０１０９】
図２６は、第３の実施形態の第２の変形例による、しきい値スイッチ型のセレクタ３０３による確率信号発生器３２を用いたチェックノード回路１００ｄの例を示す。このように、上述した第３の実施形態において図１６に示したチェックノード回路１００ｂの確率信号発生器３０11〜３０15、３０21〜３０25を、第３の実施形態の第２の変形例による確率信号発生器３２11〜３２15、３２21〜３１25に置き換えて、チェックノード回路１００ｄを構成する。
【０１１０】
また、図２７は、スイッチ部１０のトランジスタに、ＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを用いて各ゲート信号を共通化した構成に対して確率信号発生器３２を用いたチェックノード回路１００ｄ’の例である。この図２７の例では、図１９に示したチェックノード回路１００ｂ’の各確率信号発生器３０1〜３０5を、第３の実施形態の第２の変形例による各確率信号発生器３２1〜３２5に置き換えて、チェックノード回路１００ｄ’を構成している。勿論、この例に限らず、図２７の構成においてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えてもよい。
【０１１１】
また、図２８は、第３の実施形態の第２の変形例の別の例による、ダイオード３２０ａおよび３２０ｂを並列接続したセレクタ３０３による確率信号発生器３２’を用いたチェックノード回路１００ｅの例を示す。このように、上述した第３の実施形態において図１６に示したチェックノード回路１００ｂの確率信号発生器３０11〜３０15、３０21〜３０25を、第３の実施形態の第２の変形例による確率信号発生器３２11’〜３２15’、３２21’〜３２25’に置き換えて、チェックノード回路１００ｅを構成する。
【０１１２】
また、図２９は、スイッチ部１０のトランジスタに、ＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを用いて各ゲート信号を共通化した構成に対して確率信号発生器３２’を用いたチェックノード回路１００ｅ’の例である。この図２９の例では、図１９に示したチェックノード回路１００ｂ’の各確率信号発生器３０1〜３０5を、第３の実施形態の第２の変形例による各確率信号発生器３２1’〜３２5’に置き換えて、チェックノード回路１００ｅ’を構成している。勿論、この例に限らず、図２９の構成においてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えてもよい。
【０１１３】
このように、第３の実施形態の第２の変形例に係る確率信号発生器３２および３２’を用いた場合であっても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１１４】
（第３の実施形態の第３の変形例）
次に、第３の実施形態の第３の変形例について説明する。この第３の変形例は、図３０に例示されるように、上述した抵抗スイッチ素子３００の代わりに電荷蓄積型可変しきい値トランジスタ３０４を用いて確率信号発生器３３を構成した例である。図３０において、電荷蓄積型可変しきい値トランジスタ３０４は、ソースに所定の電圧の信号Ｖが供給され、ドレインがスイッチ部１０のゲートに接続されると共に、抵抗値Ｒ0の抵抗３０１を介して例えば接地されて、確率信号発生器３３が構成される。
【０１１５】
電荷蓄積型可変しきい値トランジスタ３０４は、ゲート電極内部に電荷を蓄積することができ、この電荷の蓄積量に応じてしきい値が変化する。電荷蓄積型可変しきい値トランジスタ３０４に対する電荷の蓄積は、トンネル効果を利用して、絶縁膜を介して電荷を電荷蓄積部分に注入することで行われる。トンネル効果は、量子力学的効果であり、確率的な現象である。したがって、同一の電圧により電荷注入を行っても、注入される電荷量が確率的にばらつくため、しきい値もばらつくことになる。このばらつきの分布は、電荷注入の際に印加する電圧のかけ方で変わる。換言すれば、しきい値がある一定値を超える割合すなわち確率は、電荷蓄積型可変しきい値トランジスタ３０４に対する電荷注入の際の電圧のかけ方によって制御可能である。
【０１１６】
そこで、図３０に示す電荷蓄積型可変しきい値トランジスタ３０４に対して適切な電圧により電荷注入してしきい値がある一定値を超える割合を、例えば４０％としておく。その後、電荷蓄積型可変しきい値トランジスタ３０４のゲートに、上述の一定値の電圧を印加すると、電荷蓄積型可変しきい値トランジスタ３０４は、４０％の確率で閉状態となる。この状態で、電荷蓄積型可変しきい値トランジスタ３０４のソースから信号Ｖを入力すると、この信号Ｖは、４０％の確率で、ドレイン側に接続されるスイッチ部１０のゲートに到達する。すなわち、スイッチ部１０のトランジスタがＮ型の場合、４０％の確率でスイッチ部１０が閉状態となる。一方、電荷蓄積型可変しきい値トランジスタ３０４は、ゲートに同一の電圧を印加した場合、６０％の確率で開状態となる。この場合には、スイッチ部１０のトランジスタのゲートは、抵抗３０１を介して接地されることになる。勿論、スイッチ部１０のトランジスタがＰ型の場合には、６０％の確率で閉状態となる。
【０１１７】
図３１は、第３の実施形態の第３の変形例による、電荷蓄積型可変しきい値トランジスタ３０４による確率信号発生器３３を用いたチェックノード回路１００ｆの例を示す。このように、上述した第３の実施形態において図１６に示したチェックノード回路１００ｂの確率信号発生器３０11〜３０15、３０21〜３０25を、第３の実施形態の第３の変形例による確率信号発生器３３11〜３３15、３３21〜３３25に置き換えて、チェックノード回路１００ｆを構成する。
【０１１８】
また、図３２は、スイッチ部１０のトランジスタに、ＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを用いて各ゲート信号を共通化した構成に対して確率信号発生器３３を用いたチェックノード回路１００ｆ’の例である。この図３２の例では、図１９に示したチェックノード回路１００ｂ’の各確率信号発生器３０1〜３０5を、第３の実施形態の第３の変形例による各確率信号発生器３３1〜３３5に置き換えて、チェックノード回路１００ｆ’を構成している。勿論、この例に限らず、図３２の構成においてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを入れ替えてもよい。
【０１１９】
このように、第３の実施形態の第３の変形例に係る確率信号発生器３３を用いた場合であっても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１２０】
（第４の実施形態）
次に、第４の実施形態について説明する。第４の実施形態は、インバータ回路を用いて相補的な確率の信号を生成して、各ゲート信号を共通化する例である。図３３は、第４の実施形態に係るチェックノード回路１００ｇ1の一例の構成を示す。図３３において、チェックノード回路１００ｇ1は、各スイッチ部１０を全てＮＭＯＳ型トランジスタを用いて構成し、相補的に動作すべきスイッチ部１０のペアにおいて、一方のスイッチ部１０のゲートにインバータ回路３４を接続する。
【０１２１】
より具体的には、確率ｑ1の信号Ｖ1qがスイッチ部１０11のゲートに入力されると共に、インバータ回路３４1を介してスイッチ部１０21のゲートに入力される。確率ｑ2の信号Ｖ2qがスイッチ部１０12および１０41に入力されると共に、インバータ回路３４2を介してスイッチ部１０22および１０31のゲートに入力される。同様に、確率ｑiの信号Ｖiqがスイッチ部１０13および１０42に入力されると共に、インバータ回路３４3を介してスイッチ部１０23および１０32のゲートに入力される。また、確率ｑ3の信号Ｖ3qがスイッチ部１０14および１０43に入力されると共に、インバータ回路３４4を介してスイッチ部１０24および１０33のゲートに入力される。さらに、確率ｑ4の信号Ｖ4qがスイッチ部１０15のゲートに入力されると共に、インバータ回路３４5を介してスイッチ部１０34のゲートに入力される。
【０１２２】
このような構成において、例えば、信号Ｖ2qに対して、スイッチ部１０12および１０41と、スイッチ部１０22および１０31とが相補的に開閉される。他の信号Ｖ1q、Ｖiq、Ｖ3qおよびＶ4qについても同様である。
【０１２３】
また、各信号Ｖ1q、Ｖ2q、Ｖiq、Ｖ3qおよびＶ4qを、確率ｐy＝１−ｑyの信号Ｖ1p、Ｖ2p、Ｖiq、Ｖ3qおよびＶ4qと置き換えても、同様である。さらに、図３３の例では、２状態トレリス線図において斜め方向にノードを接続する導線上のスイッチ部１０21〜１０24およびスイッチ部１０31〜１０34のゲートにインバータ回路３４1〜３４5を接続しているが、これはこの例に限定されない。すなわち、２状態トレリス線図において水平方向にノードを接続する導線上のスイッチ部１０11〜１０15およびスイッチ部１０41〜１０43のゲートにインバータ回路３４1〜３４5を接続してもよい。
【０１２４】
このように、第４の実施形態に係る、インバータ回路を用いて相補的な確率の信号を生成する場合であっても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１２５】
（第４の実施形態の変形例）
次に、第４の実施形態の変形例について説明する。第４の実施形態に係るインバータ回路を用いて相補的な確率の信号を生成させる構成は、上述した、第３の実施形態および第３の実施形態の各変形例における、各スイッチ部１０としてＮＭＯＳ型トランジスタとＰＭＯＳ型トランジスタとを用いて相補的な確率の信号を生成する構成に適用することができる。
【０１２６】
図３４は、第４の実施形態の変形例の第１の例によるチェックノード回路１００ｇ2の例を示す。図３４のチェックノード回路１００ｇ2は、図１９に示した第３の実施形態に係る抵抗スイッチ素子３００による確率信号発生器３０1〜３０5を用いたチェックノード回路１００ｂ’に対してインバータ回路３４1〜３４5を適用した例である。図３５は、第４の実施形態の変形例の第２の例によるチェックノード回路１００ｇ3の例を示す。図３５のチェックノード回路１００ｇ3は、図２３に示した第３の実施形態の第１の変形例に係る確率信号発生器３１1〜３１5を用いたチェックノード回路１００ｃ’に対してインバータ回路３４1〜３４5を適用した例である。図３６は、第４の実施形態の変形例の第３の例によるチェックノード回路１００ｇ4の例を示す。図３６のチェックノード回路１００ｇ4は、図２７に示した第３の実施形態の第２の変形例に係る確率信号発生器３２1〜３２5を用いたチェックノード回路１００ｄ’に対してインバータ回路３４1〜３４5を適用した例である。図３７は、第４の実施形態の変形例の第４の例によるチェックノード回路１００ｇ5の例を示す。図３７のチェックノード回路１００ｇ5は、図２９に示した第３の実施形態の第２の変形例に係る確率信号発生器３２1’〜３２5’を用いたチェックノード回路１００ｅ’に対してインバータ回路３４1〜３４5を適用した例である。また、第３の実施形態の第３の変形例に係る確率信号発生器３３1〜３３5を用いたチェックノード回路１００ｆ’に対してインバータ回路３４1〜３４5を適用してもよい。
【０１２７】
図３４〜図３７の何れの構成においても、２状態トレリス線図においてノードの斜め方向の導線上に配置されるスイッチ部１０21〜１０24およびスイッチ部１０31〜１０34のゲートに対して、各インバータ回路３４1〜３４5がそれぞれ接続される。
【０１２８】
このように、第４の実施形態の変形例の各例に係る、抵抗スイッチ素子３００や電荷蓄積型可変しきい値トランジスタ３０４を用いて確率に応じた信号を生成する構成に対してインバータ回路を用いて相補的な確率の信号を生成する場合であっても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１２９】
（第５の実施形態）
次に、第５の実施形態について説明する。上述では、各実施形態および各変形例が、図１のメモリシステム１の復号部４に適用されるように説明したが、これはこの例に限定されない。すなわち、上述の各実施形態および各変形例は、有線または無線の通信路上でデータの送受信を行う通信システムに適用することも可能である。
【０１３０】
図３８は、第５の実施形態に適用可能な通信システムの一例の構成を示す。図３８において、入力データ５’が符号化部３’に入力され、ＬＤＰＣ符号に符号化される。符号化されたＬＤＰＣ符号は、変調部７において通信路８に適した方式で変調され、変調信号として通信路８に送信される。復調部９は、通信路８を介して送信された変調信号を受信して復調し、ディジタルデータとして復号部４’に供給する。このとき、復調部９は、受信信号に関する情報を復号部４’に渡す。復号部４’は、復調部９から渡された受信信号に関する情報に基づき、復調部９から供給されたディジタルデータのビット毎の確率値を求める。そして、復号部４’は、求めた確率値に基づき第１の実施形態〜第４の実施形態や各変形例で説明したようにしてＬＤＰＣ符号を復号し、入力データ５’を復元する。復号部４’は、復元したデータを出力データ６’として出力する。
【０１３１】
このように、通信路８を介して情報の送受信を行う通信システムにおいても、ＬＤＰＣ復号におけるチェックノード処理を簡易な構成で実現できる。
【０１３２】
なお、本発明は上述した各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１３３】
１  メモリシステム
２  メモリ部
３,３’  符号化部
４,４’  復号部
８  通信路
１０，１０11〜１０15，１０21〜１０24，１０31〜１０34，１０41〜１０43  スイッチ部
３０，３０1〜３０5，３１，３１1〜３１5，３２，３２1〜３２5，３２’,３２1’〜３２5’,３３,３３1〜３３5  確率信号発生器
３００  抵抗スイッチ素子
３０１  抵抗
３１０  上部電極
３１１  絶縁体薄膜
３１２  下部電極
３０３  セレクタ
３０４  電荷蓄積型可変しきい値トランジスタ
【図１】
0006290057.tif 000009
【図２】
0006290057.tif 000010
【図３】
0006290057.tif 000011
【図４】
0006290057.tif 000012
【図５】
0006290057.tif 000013
【図６】
0006290057.tif 000014
【図７】
0006290057.tif 000015
【図８】
0006290057.tif 000016
【図９】
0006290057.tif 000017
【図１０】
0006290057.tif 000018
【図１１】
0006290057.tif 000019
【図１２】
0006290057.tif 000020
【図１３】
0006290057.tif 000021
【図１４】
0006290057.tif 000022
【図１５】
0006290057.tif 000023
【図１６】
0006290057.tif 000024
【図１７】
0006290057.tif 000025
【図１８】
0006290057.tif 000026
【図１９】
0006290057.tif 000027
【図２０】
0006290057.tif 000028
【図２１】
0006290057.tif 000029
【図２２】
0006290057.tif 000030
【図２３】
0006290057.tif 000031
【図２４】
0006290057.tif 000032
【図２５】
0006290057.tif 000033
【図２６】
0006290057.tif 000034
【図２７】
0006290057.tif 000035
【図２８】
0006290057.tif 000036
【図２９】
0006290057.tif 000037
【図３０】
0006290057.tif 000038
【図３１】
0006290057.tif 000039
【図３２】
0006290057.tif 000040
【図３３】
0006290057.tif 000041
【図３４】
0006290057.tif 000042
【図３５】
0006290057.tif 000043
【図３６】
0006290057.tif 000044
【図３７】
0006290057.tif 000045
【図３８】
0006290057.tif 000046