JP2023118319A - 処理回路 - Google Patents
処理回路 Download PDFInfo
- Publication number
- JP2023118319A JP2023118319A JP2022021221A JP2022021221A JP2023118319A JP 2023118319 A JP2023118319 A JP 2023118319A JP 2022021221 A JP2022021221 A JP 2022021221A JP 2022021221 A JP2022021221 A JP 2022021221A JP 2023118319 A JP2023118319 A JP 2023118319A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- bit value
- data
- stored
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】不揮発性メモリにおいては、データ保持特性を向上することが好ましい。【解決手段】第1ビット、第2ビットおよび第3ビットを含む複数ビットのデータの処理回路であって、データの各ビットのビット値と、第1メモリ符号と、第2メモリ符号とを記憶するメモリ部と、メモリ部が記憶している第1ビットのビット値とメモリ部が記憶している第2ビットのビット値が一致するか否かを示す第1生成符号と、メモリ部が記憶している第2ビットのビット値とメモリ部が記憶している第3ビットのビット値が一致するか否かを示す第2生成符号とを生成する符号生成部と、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果に基づいて、メモリ部が記憶している第2ビットのビット値に誤りが生じたかを判定する判定部とを備える処理回路を提供する。【選択図】図6
Description
本発明は、処理回路に関する。
従来、半導体装置においてEPROM等の不揮発性メモリに記憶したデータの外的ノイズに対する耐性を向上する技術が知られている(例えば、特許文献1-2参照)。
特許文献1 特開平6-274421号公報
特許文献2 特許第6565402号
特許文献3 特開2015-201645号公報
特許文献1 特開平6-274421号公報
特許文献2 特許第6565402号
特許文献3 特開2015-201645号公報
不揮発性メモリにおいては、データ保持特性を向上することが好ましい。
上記課題を解決するために、本発明の一つの態様においては、第1ビット、第2ビットおよび第3ビットを含む複数ビットのデータの処理回路を提供する。前記処理回路は、メモリ部を備えてよい。前記メモリ部は、前記データの各ビットのビット値と、前記第1ビットのビット値と前記第2ビットのビット値が一致するか否かを示す第1メモリ符号と、前記第2ビットのビット値と前記第3ビットのビット値が一致するか否かを示す第2メモリ符号とを記憶してよい。処理回路は、符号生成部を備えてよい。前記符号生成部は、前記メモリ部が記憶している前記第1ビットのビット値と前記メモリ部が記憶している前記第2ビットのビット値が一致するか否かを示す第1生成符号と、前記メモリ部が記憶している前記第2ビットのビット値と前記メモリ部が記憶している前記第3ビットのビット値が一致するか否かを示す第2生成符号とを生成してよい。処理回路は、判定部を備えてよい。前記判定部は、前記第1メモリ符号と前記第1生成符号を比較した結果および前記第2メモリ符号と前記第2生成符号を比較した結果に基づいて、前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたかを判定してよい。
前記処理回路は、訂正部を備えてよい。前記訂正部は、前記判定部において前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたと判定された場合に、前記メモリ部が記憶している前記第2ビットのビット値を訂正して出力してよい。
前記判定部は、前記第1メモリ符号と前記第1生成符号が異なる場合でかつ前記第2メモリ符号と前記第2生成符号が異なる場合に、前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたと判定してよい。
前記判定部は、前記第1メモリ符号と前記第1生成符号が同一の場合または前記第2メモリ符号と前記第2生成符号が同一の場合に、前記メモリ部が記憶している前記第2ビットのビット値は正しいと判定してよい。
前記判定部は、第1排他的論理和回路を有してよい。前記第1排他的論理和回路は、前記第1メモリ符号と前記第1生成符号の排他的論理和を出力してよい。前記判定部は、第2排他的論理和回路を有してよい。前記第2排他的論理和回路は、前記第2メモリ符号と前記第2生成符号の排他的論理和を出力してよい。前記判定部は、論理積回路を有してよい。前記論理積回路は、前記第1排他的論理和回路の出力と前記第2排他的論理和回路の出力の論理積を出力してよい。
前記第1メモリ符号は、前記第1ビットのビット値と前記第2ビットのビット値の排他的論理和であってよい。前記第2メモリ符号は、前記第2ビットのビット値と前記第3ビットのビット値の排他的論理和であってよい。
前記第1生成符号は、前記メモリ部が記憶している前記第1ビットのビット値と前記メモリ部が記憶している前記第2ビットのビット値の排他的論理和であってよい。前記第2生成符号は、前記メモリ部が記憶している前記第2ビットのビット値と前記メモリ部が記憶している前記第3ビットのビット値の排他的論理和であってよい。
前記データは、圧力センサの出力を補正する補正用データであってよい。
前記メモリ部は、前記データの各ビットのビット値をそれぞれ記憶する複数の素子を含んでよい。前記複数の素子の内それぞれの素子は、高電位線と基準電位線との間に並列に設けられてよい。
前記第1ビットのビット値を記憶する前記素子、前記第2ビットのビット値を記憶する前記素子、前記第3ビットのビット値を記憶する前記素子は、隣接して配置されなくてよい。
前記複数の素子は、前記第1メモリ符号および前記第2メモリ符号を含む各メモリ符号をそれぞれ記憶する複数の素子を含んでよい。
前記第1ビットのビット値を記憶する前記素子、前記第2ビットのビット値を記憶する前記素子、前記第3ビットのビット値を記憶する前記素子、前記第1メモリ符号を記憶する前記素子、前記第2メモリ符号を記憶する前記素子は、隣接して配置されなくてよい。
前記符号生成部は、前記素子から出力される前記データの各ビットのビット値から前記第1生成符号および前記第2生成符号を生成してよい。
前記高電位線または前記基準電位線は、分岐する配線を含んでよい。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、センサ素子の検出値の補正を例として説明するが、センサ素子の検出値の補正に限ったものではない。例えば、スイッチング素子の特性バラツキの補正用のデータを記憶する不揮発性メモリに用いることもできる。
図1は、本発明の一つの実施形態に係るセンサ装置100の一例を示すブロック図である。一例としてセンサ装置100は、自動車用、医療用または産業用などの各種装置に用いられる。センサ装置100は、圧力センサまたは加速度センサ等の、所定の物理量を検出するセンサ素子50を含んでいてよく、外部のセンサ素子50の検出値を処理する装置であってもよい。センサ素子50は、例えば半導体基板に形成された素子である。本例においてセンサ素子50は、圧力センサである。
本例のセンサ装置100は、処理回路20、センサ素子50および補正演算部70(補正部)を備える。センサ装置100は、増幅回路60および出力部80のうちの少なくとも一部を更に備えてよい。また、センサ装置100は、半導体基板に形成されたセンサ素子50と、センサ素子50以外の構成について同一の半導体基板に形成された半導体装置90とからなる構成としてもよい。
処理回路20は、センサ素子50(圧力センサ)の検出値(補正対象)を補正する補正用データを記憶する。補正用データは、センサ素子50の感度調整、温度特性調整等に用いられるデータである。処理回路20は、補正用メモリであってよい。処理回路20には、センサ装置100の出荷時、実装時、その他のタイミングにおいて、補正用データが予め入力されてよい。補正用データは、センサ装置100を所定の環境で動作させた動作結果に基づいて生成してよい。例えば補正用データは、センサ素子50の検出値を動作結果に変換するデータであってよい。
処理回路20は、例えばフラッシュメモリ、EPROMまたはEEPROM等の不揮発性メモリである。処理回路20は、複数の不揮発性メモリと回路の組み合わせであってよい。処理回路20は、所定の物理量を保存することによってデジタルデータを記憶する。一例として所定の物理量は、フローティングゲートに蓄積された電荷量である。処理回路20は、保存した物理量が所定の閾値以上か否かに応じた、2値のデータを出力してよい。本例では、保存した電荷が所定の閾値以上である場合、処理回路20は「1」のビット値を出力し、保存した電荷が所定の閾値以下である場合、処理回路20は「0」のビット値を出力する。処理回路20が出力した補正用データは、レジスタ等の補助メモリに一時的に記憶されてもよい。
増幅回路60は、センサ素子50が出力する検出信号の振幅を増幅して出力する。検出信号は、センサ素子50が検出した検出値を示す信号である。補正演算部70は、増幅回路60が出力した検出信号を、補正用データを用いて補正する。出力部80は、センサ素子50の検出値を示すデータ出力として、補正演算部70により補正された検出信号に応じたデジタルデータを出力する。なお補正用データは、センサ素子50および増幅回路60の少なくとも一方にも入力されてよい。補正用データを用いた補正処理の少なくとも一部が、センサ素子50または増幅回路60で行われてよい。
図2は、比較例に係る処理回路20の構成を示す図である。図2では、処理回路20の入力直後(初期)状態、電荷引抜(1→0)状態、電荷注入(0→1)状態をそれぞれ示している。図2において、処理回路20が記憶している記憶データ22を左から順に記憶データ22-1~22-32とし、処理回路20が出力する出力データ26を左から順に出力データ26-1~26-16とする。図2において記憶データ22-5のビット値は、「1」である。図2において出力データ26-5のビット値は、「0」である。本例において、記憶データ22は32ビットであり、出力データ26は16ビットである。本明細書において、データのビット値に誤りが生じた場合「0'」、「1'」のように「'」を付して示す。
処理回路20が保存する物理量は、データ書込直後に比べて、経時的に変動する場合がある。例えばフローティングゲートに蓄積された電荷は、放電等による自然劣化、酸化膜欠陥等によるリーク、または、外的ノイズによる引き抜き等により減少し得る。電荷引き抜きの場合、データのビット値が「1」から「0'」に変化する。また外的ノイズによって電荷が注入される場合もあり得る。電荷注入の場合、データのビット値が「0」から「1'」に変化する。
本例において、処理回路20は、論理和回路24を有する。論理和回路24は、2つの記憶データ22の論理和を出力データ26として出力する。図2において、論理和回路24を左から順に論理和回路24-1~24-16とする。図2において、論理和回路24-nは、記憶データ22-(2n-1)と記憶データ22-2nの論理和を出力データ26-nとして出力する(nは1から16までの整数)。例えば、論理和回路24-7は、記憶データ22-13と記憶データ22-14の論理和を出力データ26-7として出力する。入力直後(初期)状態においては、誤りが生じていないため、記憶データ22-(2n-1)と記憶データ22-2nには、同一のビット値が記憶されている。
次に電荷引き抜きが生じた場合を説明する。例えば、記憶データ22-6に誤りが生じた場合、記憶データ22-6のビット値が「0'」となる。この場合、記憶データ22-6と論理和を計算するもう一方の記憶データ22-5のビット値に誤りが生じていないため、出力データ26-3のビット値は入力直後(初期)状態と同一の「1」となる。このように図2の比較例において電荷引き抜きが生じた場合ビット毎に2個の記憶データ22を論理和回路24に入力し、出力データ26としているため、記憶データ22の一方で電荷引き抜きが生じた場合でも、出力データ26の出力を維持することができる。
記憶データ22-13と記憶データ22-14に誤りが生じた場合、記憶データ22-13と記憶データ22-14のビット値が「0'」となる。この場合、記憶データ22-13と記憶データ22-14の論理和を計算すると、出力データ26-7のビット値は入力直後(初期)状態と異なる「0'」となる。したがって、記憶データ22において2ビット連続で電荷引き抜きが生じた場合、出力データ26に誤りが生じてしまう場合がある。なお記憶データ22-16、記憶データ22-17のように互いに論理和をとらない記憶データ22で電荷引き抜きが生じた場合は、論理和を計算するもう一方の記憶データ22に誤りが生じてなければ出力データ26に誤りが生じない。
次に電荷注入が生じた場合を説明する。例えば、記憶データ22-9に誤りが生じた場合、記憶データ22-9のビット値が「1'」となる。この場合、記憶データ22-10と論理和を計算すると、出力データ26-5のビット値は入力直後(初期)状態と異なる「1'」となる。
図3は、図2の比較例に係る処理回路20のモード毎の補正可否をまとめた表である。電荷引き抜きが生じた場合、1ビットのみに誤りが生じていれば、誤りを補正可能である。つまり、出力データ26に誤りが生じない。電荷引き抜きが生じた場合、2ビット連続で誤りが生じていれば、出力データ26に誤りが生じる可能性がある。電荷引き抜きが生じた場合、3ビット連続で誤りが生じていれば、出力データ26に誤りが生じる。また電荷注入が生じた場合、1ビットのみに誤りが生じているときでも、出力データ26に誤りが生じる。
図4は、他の比較例に係る処理回路20の構成を示す図である。図4では、処理回路20の入力直後(初期)状態、電荷引抜(1→0)状態、電荷注入(0→1)状態をそれぞれ示している。図4において、処理回路20が記憶している記憶データ32を左から順に記憶データ32-1~32-48とし、処理回路20が出力する出力データ36を左から順に出力データ36-1~36-16とする。図4において記憶データ32-5のビット値は、「0」である。図4において出力データ36-5のビット値は、「0」である。本例において、記憶データ32は48ビットであり、出力データ36は16ビットである。
本例において、処理回路20は、多数決回路34を有する。多数決回路34は、3つの記憶データ32の多数決を出力データ36として出力する。例えば3つの記憶データ32のビット値が「1」、「0」、「0」の場合、出力データのビット値は「0」となる。図4において、多数決回路34を左から順に多数決回路34-1~34-16とする。図4において、多数決回路34-nは、記憶データ32-(3n-2)と、記憶データ32-(3n-1)と、記憶データ32-3nとの多数決を出力データ36-nとして出力する(nは1から16までの整数)。例えば、多数決回路34-8は、記憶データ32-22と、記憶データ32-23と、記憶データ32-24との多数決を出力データ36-8として出力する。入力直後(初期)状態においては、誤りが生じていないため、記憶データ32-(3n-2)と、記憶データ32-(3n-1)と、記憶データ32-3nには、同一のビット値が記憶されている。
次に電荷引き抜きが生じた場合を説明する。例えば、記憶データ32-9に誤りが生じた場合、記憶データ32-9のビット値が「0'」となる。この場合、記憶データ32-9と多数決を計算するもう2つの記憶データ32のビット値に誤りが生じていないため、出力データ36-3のビット値は入力直後(初期)状態と同一の「1」となる。このように図4の比較例において電荷引き抜きが生じた場合ビット毎に3個の記憶データ32の多数決を出力データ36としているため、記憶データ32の1つで電荷引き抜きが生じても、出力データ36の出力を維持することができる。ただ図4の比較例では記憶データ32の数が増加してしまうため、記憶データ32の書き込み回路面積が増加してしまう。
記憶データ32-19と記憶データ32-20に誤りが生じた場合、記憶データ32-19と記憶データ32-20のビット値が「0'」となる。この場合多数決を計算すると、出力データ36-7のビット値は入力直後(初期)状態と異なる「0'」となる。したがって、記憶データ32において2ビット連続で電荷引き抜きが生じた場合、出力データ36に誤りが生じてしまう場合がある。なお記憶データ32-24、記憶データ32-25のように互いに多数決をとらない記憶データ32で電荷引き抜きが生じた場合は、多数決を計算する他の記憶データ32に誤りが生じてなければ出力データ36に誤りが生じない。
次に電荷注入が生じた場合を説明する。例えば、記憶データ32-5に誤りが生じた場合、記憶データ32-5のビット値が「1'」となる。この場合、記憶データ32-5と多数決を計算するもう2つの記憶データ32のビット値に誤りが生じていないため、出力データ36-2のビット値は入力直後(初期)状態と同一の「0」となる。このように図4の比較例においてビット毎に3個の記憶データ32の多数決を出力データ36としているため、記憶データ32の1つで電荷注入が生じても、出力データ36の出力を維持することができる。
記憶データ32-28と記憶データ32-29に誤りが生じた場合、記憶データ32-28と記憶データ32-29のビット値が「1'」となる。この場合、多数決を計算すると、出力データ36-10のビット値は入力直後(初期)状態と異なる「1'」となる。したがって、記憶データ32において2ビット連続で電荷注入が生じた場合、出力データ36に誤りが生じてしまう場合がある。なお記憶データ32-33、記憶データ32-34のように互いに多数決をとらない記憶データ32で電荷注入が生じた場合は、多数決を計算する他の記憶データ32に誤りが生じてなければ出力データ36に誤りが生じない。
図5は、図4の比較例に係る処理回路20のモード毎の補正可否をまとめた表である。電荷引き抜き、電荷注入両方の場合、1ビットのみに誤りが生じていれば、誤りを補正可能である。つまり、出力データ36に誤りが生じない。電荷引き抜き、電荷注入両方の場合、2ビット連続で誤りが生じていれば、出力データ36に誤りが生じる可能性がある。電荷引き抜き、電荷注入両方の場合、3ビット連続で誤りが生じていれば、出力データ36に誤りが生じる。
以上のように、比較例に係る図2、図4の処理回路20の場合、2ビット連続で誤りが生じると、誤りが生じる可能性があり、冗長性を担保することができない。また比較例に係る図2、図4の処理回路20のように記憶データを組み合わせる場合、配線効率を上げ、ICチップの増大を抑制するために、隣接するEPROMや半導体基板上の配置が近いEPROM同士を組み合わせるのが一般的である。放電等による自然劣化の場合、全てのEPROMの電荷が同じように抜けるため、冗長性が得られない。また酸化膜欠陥等によるリークの場合、電荷保持性能が低いEPROMにおける酸化膜内の微小な結晶欠陥によるリークパスであるため、隣接するEPROMで同時にこの結晶欠陥が発生する確率は、隣接しないEPROMで同時にこの結晶欠陥が発生する確率と大きく変わらないため、隣接するEPROM同士を組み合わせても冗長性が得られる。また隣接するEPROMは外的ノイズの影響が同程度であり、外的ノイズによるフローティングゲートからの電荷抜けやフローティングゲートへの電荷注入については、隣接するEPROMでほぼ同じように発生してしまい、隣接する複数のEPROMが同時に変化してしまうため、冗長性が得られない。したがって、簡単な論理回路の追加によって、EPROMの数を増やすことなく、1つのEPROMまたは複数の連続するEPROMのデータのビット値に誤りが生じた場合でも補正用データを保持できることが好ましい。なお「隣接」については、図8で説明する。
図6は、実施例に係る処理回路20の構成を示す図である。図6では、処理回路20の入力直後(初期)状態を示している。図6の処理回路20は、メモリ部52、符号生成部54、判定部56および訂正部58を備える。図6において、処理回路20に入力される入力データ42を左から順に入力データ42-1~42-16とし、処理回路20が出力する出力データ46を左から順に出力データ46-1~46-16とする。図6において入力データ42-9のビット値は、「1」である。図6において出力データ46-9のビット値は、「1」である。図6において、処理回路20が入力データ42-9のビット値を出力する例を説明する。他の入力データ42においても、入力データ42-9と同様の処理が実施されてよい。図6において、配線中の「A」、「B」、「C」、「D」は、それぞれ配線中の「A'」、「B'」、「C'」、「D'」と接続する。
メモリ部52は、記憶データ44を記憶する。メモリ部52が記憶する記憶データ44を左から順に記憶データ44-1~44-32とする。記憶データ44は、入力データ42の各ビットのビット値と、特定の2つの入力データ42のビット値の排他的論理和を含む。排他的論理和の計算では、ビット値が一致するか否かを示す符号を出力する。つまり、特定の2つの入力データ42のビット値が異なれば排他的論理和の出力は「1」となり、特定の2つの入力データ42のビット値が同一であれば排他的論理和の出力は「0」となる。特定の2つの入力データ42のビット値の排他的論理和とは、本例において1つ飛ばしで配置された入力データ42のビット値の排他的論理和である。具体的には図6の記憶データ44は、入力データ42-7のビット値と入力データ42-9のビット値の排他的論理和、入力データ42-9のビット値と入力データ42-11のビット値の排他的論理和を含む。
入力データ42-9に関連する記憶データ44を説明する。記憶データ44-13には、入力データ42-7のビット値が記憶される。入力データ42-7は、第1ビットの例である。図6において記憶データ44-13のビット値は、「1」である。記憶データ44-17には、入力データ42-9のビット値が記憶される。入力データ42-9は、第2ビットの例である。図6において記憶データ44-17のビット値は、「1」である。記憶データ44-21には、入力データ42-11のビット値が記憶される。入力データ42-11は、第3ビットの例である。図6において記憶データ44-21のビット値は、「0」である。処理回路20は、第1ビット、第2ビットおよび第3ビットを含む複数ビットの入力データ42を処理する。
記憶データ44-15には、入力データ42-7のビット値と入力データ42-9のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-1は、入力データ42-7のビット値と入力データ42-9のビット値の排他的論理和を記憶データ44-15に出力する。記憶データ44-15は、第1メモリ符号の例である。記憶データ44-15のビット値は、「0」である。第1メモリ符号は、第1ビットのビット値と第2ビットのビット値の排他的論理和であってよい。記憶データ44-19には、入力データ42-9のビット値と入力データ42-11のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-2は、入力データ42-9のビット値と入力データ42-11のビット値の排他的論理和を記憶データ44-19に出力する。記憶データ44-19は、第2メモリ符号の例である。記憶データ44-19のビット値は、「1」である。第2メモリ符号は、第2ビットのビット値と第3ビットのビット値の排他的論理和であってよい。以上まとめると、メモリ部52は、第1ビット、第2ビット、第3ビット、第1メモリ符号および第2メモリ符号を記憶する。
符号生成部54は、メモリ部52が記憶している特定の2つの入力データ42が一致するか否かを示す生成符号を生成する。本例において符号生成部54は、メモリ部52が記憶している第1ビットのビット値とメモリ部52が記憶している第2ビットのビット値が一致するか否かを示す第1生成符号と、メモリ部52が記憶している第2ビットのビット値とメモリ部52が記憶している第3ビットのビット値が一致するか否かを示す第2生成符号とを生成する。本例において符号生成部54は、排他的論理和回路64-1および排他的論理和回路64-2を有する。本例において排他的論理和回路64-1は、記憶データ44-13のビット値と記憶データ44-17のビット値の排他的論理和を出力する。排他的論理和回路64-1の出力は、第1生成符号の一例である。第1生成符号は、メモリ部52が記憶している第1ビットのビット値とメモリ部52が記憶している第2ビットのビット値の排他的論理和であってよい。本例において排他的論理和回路64-2は、記憶データ44-17のビット値と記憶データ44-21のビット値の排他的論理和を出力する。排他的論理和回路64-2の出力は、第2生成符号の一例である。第2生成符号は、メモリ部52が記憶している第2ビットのビット値とメモリ部52が記憶している第3ビットのビット値の排他的論理和であってよい。
判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果の論理積に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、排他的論理和回路66-1、排他的論理和回路66-2および論理積回路68-1を有する。本例において排他的論理和回路66-1は、第1メモリ符号(記憶データ44-15)のビット値と第1生成符号(排他的論理和回路64-1の出力)のビット値の排他的論理和を出力する。排他的論理和回路66-1は、第1排他的論理和回路の一例である。本例において排他的論理和回路66-2は、第2メモリ符号(記憶データ44-19)のビット値と第2生成符号(排他的論理和回路64-2の出力)のビット値の排他的論理和を出力する。排他的論理和回路66-2は、第2排他的論理和回路の一例である。論理積回路68-1は、排他的論理和回路66-1の出力と排他的論理和回路66-2の出力の論理積を出力する。
判定部56の判定方法について説明する。まず記憶データ44に誤りが生じていない場合を説明する。第1メモリ符号(記憶データ44-15)のビット値と第1生成符号(排他的論理和回路64-1の出力)のビット値は同一となる。したがって、排他的論理和回路66-1の出力のビット値は、「0」である。同様に記憶データ44に誤りが生じていない場合、第2メモリ符号(記憶データ44-19)のビット値と第2生成符号(排他的論理和回路64-2の出力)のビット値は同一となる。したがって、排他的論理和回路66-2の出力のビット値は、「0」である。よって論理積回路68-1の出力のビット値は、「0」である。論理積回路68-1の出力のビット値が「0」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。
次に記憶データ44に誤りが生じている場合を説明する。例えば、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第1メモリ符号(記憶データ44-15)のビット値と第1生成符号(排他的論理和回路64-1の出力)のビット値は異なる。したがって、排他的論理和回路66-1の出力のビット値は、「1」である。同様にメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第2メモリ符号(記憶データ44-19)のビット値と第2生成符号(排他的論理和回路64-2の出力)のビット値は異なる。したがって、排他的論理和回路66-2の出力のビット値は、「1」である。よって論理積回路68-1の出力のビット値は、「1」である。論理積回路68-1の出力のビット値が「1」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定する。
また記憶データ44に誤りが生じている場合、排他的論理和回路66-1の出力のビット値および排他的論理和回路66-2の出力のビット値の一方のみが、「1」である場合がある。この場合、論理積回路68-1の出力のビット値は、「0」であり、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。例えば、排他的論理和回路66-1の出力のビット値が「1」であり、排他的論理和回路66-2の出力のビット値が「0」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-13または記憶データ44-15のいずれかに誤りが発生していると判定する。同様に排他的論理和回路66-1の出力のビット値が「0」であり、排他的論理和回路66-2の出力のビット値が「1」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-19または記憶データ44-21のいずれかに誤りが発生していると判定する。
以上まとめると、判定部56は、第1メモリ符号(記憶データ44-15)と第1生成符号(排他的論理和回路64-1の出力)が異なる場合でかつ第2メモリ符号(記憶データ44-19)と第2生成符号(排他的論理和回路64-2の出力)が異なる場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたと判定してよい。また判定部56は、第1メモリ符号(記憶データ44-15)と第1生成符号(排他的論理和回路64-1の出力)が同一の場合または第2メモリ符号(記憶データ44-19)と第2生成符号(排他的論理和回路64-2の出力)が同一の場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値は正しいと判定する。別の例では判定部56は、第1メモリ符号(記憶データ44-15)と第1生成符号(排他的論理和回路64-1の出力)が異なる場合でかつ第2メモリ符号(記憶データ44-19)と第2生成符号(排他的論理和回路64-2の出力)が異なる場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値は正しいと判定し、第1メモリ符号(記憶データ44-15)と第1生成符号(排他的論理和回路64-1の出力)が同一の場合または第2メモリ符号(記憶データ44-19)と第2生成符号(排他的論理和回路64-2の出力)が同一の場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたと判定してよい。また排他的論理和回路66-1、排他的論理和回路66-2の入力のいずれかに反転回路があってもよい。
訂正部58は、判定部56においてメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたと判定された場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値を訂正して出力する。本例において訂正部58は、排他的論理和回路72-1を有する。排他的論理和回路72-1は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値と論理積回路68-1の出力のビット値の排他的論理和を出力データ46-9に出力する。例えば、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、論理積回路68-1の出力のビット値は「1」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が反転して出力される。つまり、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、第2ビット(記憶データ44-17)のビット値が「1」なら「0」を出力データ46-9に出力し、第2ビット(記憶データ44-17)のビット値が「0」なら「1」を出力データ46-9に出力する。判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定した場合、論理積回路68-1の出力のビット値は「0」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が出力データ46-9に出力される。図6では第2ビット(記憶データ44-17)のビット値に誤りが生じていないため、第2ビット(記憶データ44-17)のビット値がそのまま出力データ46-9に出力される。
図7は、図6の実施例に係る処理回路20のモード毎の補正可否をまとめた表である。図6で説明した通り、出力データ46-9を出力するために、記憶データ44-13、記憶データ44-15、記憶データ44-17、記憶データ44-19および記憶データ44-21の各ビット値が用いられる。したがって訂正に用いられる記憶データ44が隣接して配置されていないため、電荷引き抜き、電荷注入いずれの場合も2ビット連続までの誤りなら訂正可能である。また図6の記憶データ44は32ビットであり、図2における比較例の記憶データ22と同一である。したがって、EPROMの数を増やすことなく、1つのEPROMまたは複数の連続するEPROM(図6の場合連続する2つまで)のデータのビット値に誤りが生じた場合でも補正用データを保持できる。
図8は、メモリ部52が含む素子82の配線の一例を示す図である。メモリ部52は、複数の素子82を含む。素子82は、それぞれEPROMとして機能する。素子82は、データの各ビットのビット値をそれぞれ記憶する。本例において、素子82-nは、記憶データ44-nを記憶する(nは1から32までの整数)。
素子82は、スイッチング素子84および定電流源86を有する。定電流源86は、スイッチング素子84のドレイン端子Dに接続される。本例のスイッチング素子84は、フローティングゲートを有するMOSFETである。スイッチング素子84のドレイン端子Dは、定電流源86を介して高電位線VDDに接続され、ソース端子Sは、基準電位線GNDに接続されている。スイッチング素子84のゲート端子Gに、所定のゲート電圧VGが印加されている。スイッチング素子84のフローティングゲートに電荷が蓄積されていない状態では、ゲート電圧VGによって、スイッチング素子84はオンし、定電流源86の定電流よりも十分に大きな電流を流すことが可能となり、ドレイン電圧は、基準電位線GNDの電位に近い電圧となる。一方、スイッチング素子84のフローティングゲートに電荷が蓄積された状態では、ゲート電圧VGによって、スイッチング素子84はオンせず、ドレイン電圧は定電流源86の電流によって、高電位線VDDの電位に近い電圧となる。つまり、スイッチング素子84のフローティングゲートの蓄積電荷の有無によってドレイン端子Dの電圧が決まり、当該ビットのデータが決定される。つまりドレイン端子Dは、素子82の出力端子として機能する。符号生成部54は、素子82のドレイン端子Dから出力されるデータの各ビットのビット値から第1生成符号および第2生成符号を生成する。複数の素子82の内それぞれの素子82は、高電位線VDDと基準電位線GNDとの間に並列に設けられる。素子82-1~82-32は、この順で高電位線VDDと基準電位線GNDとの間に並列に設けられてよい。
図8において、第1ビットのビット値を記憶する素子82-13、第2ビットのビット値を記憶する素子82-17および第3ビットのビット値を記憶する素子82-21は、隣接して配置されない。素子82が隣接して配置されないとは、2つの素子82の間に別の素子82が配置されることである。隣接して配置されないとは、図8のように電気的な配線方向において2つの素子82の間に別の素子82が配置されることであってよい。隣接して配置されないとは、空間的に配置された(例えば、半導体装置90に配置された)2つの素子82の間に別の素子82が配置されることであってもよい。第1ビットのビット値を記憶する素子82、第2ビットのビット値を記憶する素子82および第3ビットのビット値を記憶する素子82は、隣接して配置されなくてよい。さらに、第1メモリ符号を記憶する素子82-15および第2メモリ符号を記憶する素子82-19を含めた、素子82-13、素子82-15、素子82-17、素子82-19および素子82-21は、隣接して配置されなくてよい。
図9は、他の実施例に係る処理回路20の構成を示す図である。図9では、処理回路20の入力直後(初期)状態を示している。図9の処理回路20は、メモリ部52、符号生成部54、判定部56および訂正部58を備える。図9において、図6と共通の符号は説明を省略する。図9において、処理回路20が入力データ42-9のビット値を出力する例を説明する。他の入力データ42においても、入力データ42-9と同様の処理が実施されてよい。図9において、配線中の「D00」、「D01」、「D15」、「Rd00」、「Rd01」、「Rd15」、「A」、「B」、「C」は、それぞれ配線中の「D00'」、「D01'」、「D15'」、「Rd00'」、「Rd01'」、「Rd15'」、「A'」、「B'」、「C'」と接続する。
記憶データ44は、入力データ42の各ビットのビット値と、特定の2つの入力データ42のビット値の排他的論理和を含む。排他的論理和の計算では、ビット値が一致するか否かを示す符号を出力する。特定の2つの入力データ42のビット値の排他的論理和とは、本例において2つ飛ばしで配置された入力データ42のビット値の排他的論理和である。具体的には図9の記憶データ44は、入力データ42-6のビット値と入力データ42-9のビット値の排他的論理和、入力データ42-9のビット値と入力データ42-12のビット値の排他的論理和を含む。
入力データ42-9に関連する記憶データ44を説明する。記憶データ44-11には、入力データ42-6のビット値が記憶される。入力データ42-6は、第1ビットの例である。図9において記憶データ44-11のビット値は、「0」である。記憶データ44-17には、入力データ42-9のビット値が記憶される。入力データ42-9は、第2ビットの例である。図9において記憶データ44-17のビット値は、「1」である。記憶データ44-23には、入力データ42-12のビット値が記憶される。入力データ42-12は、第3ビットの例である。図9において記憶データ44-23のビット値は、「0」である。
記憶データ44-14には、入力データ42-6のビット値と入力データ42-9のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-3は、入力データ42-6のビット値と入力データ42-9のビット値の排他的論理和を記憶データ44-14に出力する。記憶データ44-14は、第1メモリ符号の例である。記憶データ44-14のビット値は、「1」である。記憶データ44-20には、入力データ42-9のビット値と入力データ42-12のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-4は、入力データ42-9のビット値と入力データ42-12のビット値の排他的論理和を記憶データ44-20に出力する。記憶データ44-20は、第2メモリ符号の例である。記憶データ44-20のビット値は、「1」である。
符号生成部54は、メモリ部52が記憶している特定の2つの入力データ42が一致するか否かを示す生成符号を生成する。本例において符号生成部54は、メモリ部52が記憶している第1ビットのビット値とメモリ部52が記憶している第2ビットのビット値が一致するか否かを示す第1生成符号と、メモリ部52が記憶している第2ビットのビット値とメモリ部52が記憶している第3ビットのビット値が一致するか否かを示す第2生成符号とを生成する。本例において符号生成部54は、排他的論理和回路64-3および排他的論理和回路64-4を有する。本例において排他的論理和回路64-3は、記憶データ44-11のビット値と記憶データ44-17のビット値の排他的論理和を出力する。排他的論理和回路64-3の出力は、第1生成符号の一例である。本例において排他的論理和回路64-4は、記憶データ44-17のビット値と記憶データ44-23のビット値の排他的論理和を出力する。排他的論理和回路64-4の出力は、第2生成符号の一例である。
判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果の論理積に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、排他的論理和回路66-3、排他的論理和回路66-4および論理積回路68-2を有する。本例において排他的論理和回路66-3は、第1メモリ符号(記憶データ44-14)のビット値と第1生成符号(排他的論理和回路64-3の出力)のビット値の排他的論理和を出力する。本例において排他的論理和回路66-4は、第2メモリ符号(記憶データ44-20)のビット値と第2生成符号(排他的論理和回路64-4の出力)のビット値の排他的論理和を出力する。論理積回路68-2は、排他的論理和回路66-3の出力と排他的論理和回路66-4の出力の論理積を出力する。
判定部56の判定方法について説明する。まず記憶データ44に誤りが生じていない場合を説明する。第1メモリ符号(記憶データ44-14)のビット値と第1生成符号(排他的論理和回路64-3の出力)のビット値は同一となる。したがって、排他的論理和回路66-3の出力のビット値は、「0」である。同様に記憶データ44に誤りが生じていない場合、第2メモリ符号(記憶データ44-20)のビット値と第2生成符号(排他的論理和回路64-4の出力)のビット値は同一となる。したがって、排他的論理和回路66-4の出力のビット値は、「0」である。よって論理積回路68-2の出力のビット値は、「0」である。論理積回路68-2の出力のビット値が「0」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。
次に記憶データ44に誤りが生じている場合を説明する。例えば、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第1メモリ符号(記憶データ44-14)のビット値と第1生成符号(排他的論理和回路64-3の出力)のビット値は異なる。したがって、排他的論理和回路66-3の出力のビット値は、「1」である。同様にメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第2メモリ符号(記憶データ44-20)のビット値と第2生成符号(排他的論理和回路64-4の出力)のビット値は異なる。したがって、排他的論理和回路66-4の出力のビット値は、「1」である。よって論理積回路68-2の出力のビット値は、「1」である。論理積回路68-2の出力のビット値が「1」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定する。
また記憶データ44に誤りが生じている場合、排他的論理和回路66-3の出力のビット値および排他的論理和回路66-4の出力のビット値の一方のみが、「1」である場合がある。この場合、論理積回路68-2の出力のビット値は、「0」であり、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。例えば、排他的論理和回路66-3の出力のビット値が「1」であり、排他的論理和回路66-4の出力のビット値が「0」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-11または記憶データ44-14のいずれかに誤りが発生していると判定する。同様に排他的論理和回路66-3の出力のビット値が「0」であり、排他的論理和回路66-4の出力のビット値が「1」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-20または記憶データ44-23のいずれかに誤りが発生していると判定する。
訂正部58は、判定部56においてメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたと判定された場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値を訂正して出力する。本例において訂正部58は、排他的論理和回路72-2を有する。排他的論理和回路72-2は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値と論理積回路68-2の出力のビット値の排他的論理和を出力データ46-9に出力する。例えば、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、論理積回路68-2の出力のビット値は「1」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が反転して出力される。つまり、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、第2ビット(記憶データ44-17)のビット値が「1」なら「0」を出力データ46-9に出力し、第2ビット(記憶データ44-17)のビット値が「0」なら「1」を出力データ46-9に出力する。判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定した場合、論理積回路68-2の出力のビット値は「0」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が出力データ46-9に出力される。図9では第2ビット(記憶データ44-17)のビット値に誤りが生じていないため、第2ビット(記憶データ44-17)のビット値がそのまま出力データ46-9に出力される。
図10は、図9の実施例に係る処理回路20のモード毎の補正可否をまとめた表である。図9で説明した通り、出力データ46-9を出力するために、記憶データ44-11、記憶データ44-14、記憶データ44-17、記憶データ44-20および記憶データ44-23の各ビット値が用いられる。したがって訂正に用いられる記憶データ44が隣接して配置されていないため、電荷引き抜き、電荷注入いずれの場合も3ビット連続までの誤りなら訂正可能である。また図9の記憶データ44は32ビットであり、図2における比較例の記憶データ22と同一である。したがって、EPROMの数を増やすことなく、1つのEPROMまたは複数の連続するEPROM(図9の場合連続する3つまで)のデータのビット値に誤りが生じた場合でも補正用データを保持できる。
図11は、他の実施例に係る処理回路20の構成を示す図である。図11では、処理回路20の入力直後(初期)状態を示している。図11の処理回路20は、メモリ部52、符号生成部54、判定部56および訂正部58を備える。図11において、図6と共通の符号は説明を省略する。図11において、処理回路20が入力データ42-9のビット値を出力する例を説明する。他の入力データ42においても、入力データ42-9と同様の処理が実施されてよい。図11において、配線中の「D00」、「D01」、「D02」、「D14」、「D15」、「Rd00」、「Rd01」、「Rd02」、「Rd14」、「Rd15」、「A」、「B」、「C」、「D」、「E」は、それぞれ配線中の「D00'」、「D01'」、「D02'」、「D14'」、「D15'」、「Rd00'」、「Rd01'」、「Rd02'」、「Rd14'」、「Rd15'」、「A'」、「B'」、「C'」、「D'」、「E'」と接続する。
記憶データ44は、入力データ42の各ビットのビット値と、特定の2つの入力データ42のビット値の排他的論理和を含む。排他的論理和の計算では、ビット値が一致するか否かを示す符号を出力する。特定の2つの入力データ42のビット値の排他的論理和とは、本例において4つ飛ばしで配置された入力データ42のビット値の排他的論理和である。具体的には図11の記憶データ44は、入力データ42-4のビット値と入力データ42-9のビット値の排他的論理和、入力データ42-9のビット値と入力データ42-14のビット値の排他的論理和を含む。
入力データ42-9に関連する記憶データ44を説明する。記憶データ44-7には、入力データ42-4のビット値が記憶される。入力データ42-4は、第1ビットの例である。図11において記憶データ44-7のビット値は、「1」である。記憶データ44-17には、入力データ42-9のビット値が記憶される。入力データ42-9は、第2ビットの例である。図11において記憶データ44-17のビット値は、「1」である。記憶データ44-27には、入力データ42-14のビット値が記憶される。入力データ42-14は、第3ビットの例である。図11において記憶データ44-27のビット値は、「0」である。
記憶データ44-12には、入力データ42-4のビット値と入力データ42-9のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-5は、入力データ42-4のビット値と入力データ42-9のビット値の排他的論理和を記憶データ44-12に出力する。記憶データ44-12は、第1メモリ符号の例である。記憶データ44-12のビット値は、「0」である。記憶データ44-22には、入力データ42-9のビット値と入力データ42-14のビット値が一致するか否かを示す符号が記憶される。本例において排他的論理和回路62-6は、入力データ42-9のビット値と入力データ42-14のビット値の排他的論理和を記憶データ44-22に出力する。記憶データ44-22は、第2メモリ符号の例である。記憶データ44-22のビット値は、「1」である。
符号生成部54は、メモリ部52が記憶している特定の2つの入力データ42が一致するか否かを示す生成符号を生成する。本例において符号生成部54は、メモリ部52が記憶している第1ビットのビット値とメモリ部52が記憶している第2ビットのビット値が一致するか否かを示す第1生成符号と、メモリ部52が記憶している第2ビットのビット値とメモリ部52が記憶している第3ビットのビット値が一致するか否かを示す第2生成符号とを生成する。本例において符号生成部54は、排他的論理和回路64-5および排他的論理和回路64-6を有する。本例において排他的論理和回路64-5は、記憶データ44-7のビット値と記憶データ44-17のビット値の排他的論理和を出力する。排他的論理和回路64-5の出力は、第1生成符号の一例である。本例において排他的論理和回路64-6は、記憶データ44-17のビット値と記憶データ44-27のビット値の排他的論理和を出力する。排他的論理和回路64-6の出力は、第2生成符号の一例である。
判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、第1メモリ符号と第1生成符号を比較した結果および第2メモリ符号と第2生成符号を比較した結果の論理積に基づいて、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたかを判定する。本例において判定部56は、排他的論理和回路66-5、排他的論理和回路66-6および論理積回路68-3を有する。本例において排他的論理和回路66-5は、第1メモリ符号(記憶データ44-12)のビット値と第1生成符号(排他的論理和回路64-5の出力)のビット値の排他的論理和を出力する。本例において排他的論理和回路66-6は、第2メモリ符号(記憶データ44-22)のビット値と第2生成符号(排他的論理和回路64-6の出力)のビット値の排他的論理和を出力する。論理積回路68-3は、排他的論理和回路66-5の出力と排他的論理和回路66-6の出力の論理積を出力する。
判定部56の判定方法について説明する。まず記憶データ44に誤りが生じていない場合を説明する。第1メモリ符号(記憶データ44-12)のビット値と第1生成符号(排他的論理和回路64-5の出力)のビット値は同一となる。したがって、排他的論理和回路66-5の出力のビット値は、「0」である。同様に記憶データ44に誤りが生じていない場合、第2メモリ符号(記憶データ44-22)のビット値と第2生成符号(排他的論理和回路64-6の出力)のビット値は同一となる。したがって、排他的論理和回路66-6の出力のビット値は、「0」である。よって論理積回路68-3の出力のビット値は、「0」である。論理積回路68-3の出力のビット値が「0」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。
次に記憶データ44に誤りが生じている場合を説明する。例えば、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第1メモリ符号(記憶データ44-12)のビット値と第1生成符号(排他的論理和回路64-5の出力)のビット値は異なる。したがって、排他的論理和回路66-5の出力のビット値は、「1」である。同様にメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値のみに誤りが生じていると、第2メモリ符号(記憶データ44-22)のビット値と第2生成符号(排他的論理和回路64-6の出力)のビット値は異なる。したがって、排他的論理和回路66-6の出力のビット値は、「1」である。よって論理積回路68-3の出力のビット値は、「1」である。論理積回路68-3の出力のビット値が「1」の場合、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定する。
また記憶データ44に誤りが生じている場合、排他的論理和回路66-5の出力のビット値および排他的論理和回路66-6の出力のビット値の一方のみが、「1」である場合がある。この場合、論理積回路68-3の出力のビット値は、「0」であり、判定部56は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定する。例えば、排他的論理和回路66-5の出力のビット値が「1」であり、排他的論理和回路66-6の出力のビット値が「0」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-7または記憶データ44-12のいずれかに誤りが発生していると判定する。同様に排他的論理和回路66-5の出力のビット値が「0」であり、排他的論理和回路66-6の出力のビット値が「1」の場合、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定し、記憶データ44-22または記憶データ44-27のいずれかに誤りが発生していると判定する。
訂正部58は、判定部56においてメモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じたと判定された場合に、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値を訂正して出力する。本例において訂正部58は、排他的論理和回路72-3を有する。排他的論理和回路72-3は、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値と論理積回路68-3の出力のビット値の排他的論理和を出力データ46-9に出力する。例えば、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、論理積回路68-3の出力のビット値は「1」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が反転して出力される。つまり、判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていると判定した場合、第2ビット(記憶データ44-17)のビット値が「1」なら「0」を出力データ46-9に出力し、第2ビット(記憶データ44-17)のビット値が「0」なら「1」を出力データ46-9に出力する。判定部56が、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値に誤りが生じていないと判定した場合、論理積回路68-3の出力のビット値は「0」であるため、メモリ部52が記憶している第2ビット(記憶データ44-17)のビット値が出力データ46-9に出力される。図11では第2ビット(記憶データ44-17)のビット値に誤りが生じていないため、第2ビット(記憶データ44-17)のビット値がそのまま出力データ46-9に出力される。
図12は、図11の実施例に係る処理回路20のモード毎の補正可否をまとめた表である。図11で説明した通り、出力データ46-9を出力するために、記憶データ44-7、記憶データ44-12、記憶データ44-17、記憶データ44-22および記憶データ44-27の各ビット値が用いられる。したがって訂正に用いられる記憶データ44が隣接して配置されていないため、電荷引き抜き、電荷注入いずれの場合も5ビット連続までの誤りなら訂正可能である。また図11の記憶データ44は32ビットであり、図2における比較例の記憶データ22と同一である。したがって、EPROMの数を増やすことなく、1つのEPROMまたは複数の連続するEPROM(図11の場合連続する5つまで)のデータのビット値に誤りが生じた場合でも補正用データを保持できる。
図13、図14は、メモリ部52が含む素子82の配線の他の例を示す図である。図13では、高電位線VDDまたは基準電位線GNDが分岐する配線を含む点で、図8とは異なる。図13のそれ以外の構成は、図8と同一であってよい。
高電位線VDDは、第1配線92および第2配線94を含む。第1配線92は、素子82-1~82-16と接続する。素子82-1~82-16のスイッチング素子84のドレイン端子Dは、定電流源86を介して高電位線VDDの第1配線92に接続される。第2配線94は、素子82-17~82-32と接続する。素子82-17~82-32のスイッチング素子84のドレイン端子Dは、定電流源86を介して高電位線VDDの第2配線94に接続される。
基準電位線GNDは、第1配線96および第2配線98を含む。第1配線96は、素子82-1~82-16と接続する。素子82-1~82-16のスイッチング素子84のソース端子Sは、基準電位線GNDの第1配線96に接続される。第2配線98は、素子82-17~82-32と接続する。素子82-17~82-32のスイッチング素子84のソース端子Sは、基準電位線GNDの第2配線98に接続される。素子82-1~82-16は、この順で高電位線VDDの第1配線92と基準電位線GNDの第1配線96との間に並列に設けられてよい。素子82-17~82-32は、この順で高電位線VDDの第2配線94と基準電位線GNDの第2配線98との間に並列に設けられてよい。
以上のように素子82は、素子82-1~82-16の第1系統と、素子82-17~82-32の第2系統を含む。第1系統と第2系統はそれぞれ対称に、高電位線VDDまたは基準電位線GNDに接続されている。つまり、高電位線VDDの分岐点から素子82-1~82-16までの電気経路長と、当該分岐点から素子82-17~82-32までの電気経路長とは、ほぼ等しい。同様に、基準電位線GNDの分岐点から素子82-1~82-16までの電気経路長と、当該分岐点から素子82-17~82-32までの電気経路長とは、ほぼ等しい。このため、高電位線VDDまたは基準電位線GNDに外的ノイズが印加された場合でも、第1系統と第2系統との間では、外的ノイズによるフローティングゲートからの電荷抜けやフローティングゲートへの電荷注入の傾向が同様となる。例えば、素子82-1は、高電位線VDDおよび基準電位線GNDを基準として、素子82-17と対称に配置される。例えば、素子82-16は、素子82-32と対称に配置される。この場合対称に配置された素子82は、外的ノイズによるフローティングゲートからの電荷抜けやフローティングゲートへの電荷注入の傾向が同様となる可能性がある。このような場合、図14に示すように、素子82-1~82-16の第1系統のみ、素子82-17~82-32の第2系統のみでそれぞれ処理回路20-1,20-2を設けることができる。これにより、外的ノイズによって同じようにフローティンゲートからの電荷抜けやフローティングゲートへの電荷注入の傾向が同様の素子82―1、82-17の組み合わせによる処理回路による計算が行われなくなる。よって、外的ノイズに対する補正用データの保持性が向上する。なお、処理回路20-1、20-2はそれぞれ、図6、図9および図11で示した処理回路20を用いることができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
20・・処理回路、22・・記憶データ、24・・論理和回路、26・・出力データ、32・・記憶データ、34・・多数決回路、36・・出力データ、42・・入力データ、44・・記憶データ、46・・出力データ、50・・・センサ素子、52・・メモリ部、54・・符号生成部、56・・判定部、58・・訂正部、60・・・増幅回路、62・・排他的論理和回路、64・・排他的論理和回路、66・・排他的論理和回路、68・・論理積回路、70・・・補正演算部、72・・排他的論理和回路、80・・出力部、82・・素子、84・・スイッチング素子、86・・定電流源、90・・半導体装置、92・・第1配線、94・・第2配線、96・・第1配線、98・・第2配線、100・・センサ装置
Claims (14)
- 第1ビット、第2ビットおよび第3ビットを含む複数ビットのデータの処理回路であって、
前記データの各ビットのビット値と、前記第1ビットのビット値と前記第2ビットのビット値が一致するか否かを示す第1メモリ符号と、前記第2ビットのビット値と前記第3ビットのビット値が一致するか否かを示す第2メモリ符号とを記憶するメモリ部と、
前記メモリ部が記憶している前記第1ビットのビット値と前記メモリ部が記憶している前記第2ビットのビット値が一致するか否かを示す第1生成符号と、前記メモリ部が記憶している前記第2ビットのビット値と前記メモリ部が記憶している前記第3ビットのビット値が一致するか否かを示す第2生成符号とを生成する符号生成部と、
前記第1メモリ符号と前記第1生成符号を比較した結果および前記第2メモリ符号と前記第2生成符号を比較した結果に基づいて、前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたかを判定する判定部と
を備える処理回路。 - 前記判定部において前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたと判定された場合に、前記メモリ部が記憶している前記第2ビットのビット値を訂正して出力する訂正部を更に備える
請求項1に記載の処理回路。 - 前記判定部は、前記第1メモリ符号と前記第1生成符号が異なる場合でかつ前記第2メモリ符号と前記第2生成符号が異なる場合に、前記メモリ部が記憶している前記第2ビットのビット値に誤りが生じたと判定する
請求項1または2に記載の処理回路。 - 前記判定部は、前記第1メモリ符号と前記第1生成符号が同一の場合または前記第2メモリ符号と前記第2生成符号が同一の場合に、前記メモリ部が記憶している前記第2ビットのビット値は正しいと判定する
請求項1から3のいずれか一項に記載の処理回路。 - 前記判定部は、
前記第1メモリ符号と前記第1生成符号の排他的論理和を出力する第1排他的論理和回路と、
前記第2メモリ符号と前記第2生成符号の排他的論理和を出力する第2排他的論理和回路と、
前記第1排他的論理和回路の出力と前記第2排他的論理和回路の出力の論理積を出力する論理積回路と
を有する
請求項1から4のいずれか一項に記載の処理回路。 - 前記第1メモリ符号は、前記第1ビットのビット値と前記第2ビットのビット値の排他的論理和であり、
前記第2メモリ符号は、前記第2ビットのビット値と前記第3ビットのビット値の排他的論理和である
請求項1から5のいずれか一項に記載の処理回路。 - 前記第1生成符号は、前記メモリ部が記憶している前記第1ビットのビット値と前記メモリ部が記憶している前記第2ビットのビット値の排他的論理和であり、
前記第2生成符号は、前記メモリ部が記憶している前記第2ビットのビット値と前記メモリ部が記憶している前記第3ビットのビット値の排他的論理和である
請求項1から6のいずれか一項に記載の処理回路。 - 前記データは、圧力センサの出力を補正する補正用データである
請求項1から7のいずれか一項に記載の処理回路。 - 前記メモリ部は、前記データの各ビットのビット値をそれぞれ記憶する複数の素子を含み、
前記複数の素子の内それぞれの素子は、高電位線と基準電位線との間に並列に設けられる
請求項1から8のいずれか一項に記載の処理回路。 - 前記第1ビットのビット値を記憶する前記素子、前記第2ビットのビット値を記憶する前記素子、前記第3ビットのビット値を記憶する前記素子は、隣接して配置されない
請求項9に記載の処理回路。 - 前記複数の素子は、前記第1メモリ符号および前記第2メモリ符号を含む各メモリ符号をそれぞれ記憶する複数の素子を含む
請求項9に記載の処理回路。 - 前記第1ビットのビット値を記憶する前記素子、前記第2ビットのビット値を記憶する前記素子、前記第3ビットのビット値を記憶する前記素子、前記第1メモリ符号を記憶する前記素子、前記第2メモリ符号を記憶する前記素子は、隣接して配置されない
請求項11に記載の処理回路。 - 前記符号生成部は、前記素子から出力される前記データの各ビットのビット値から前記第1生成符号および前記第2生成符号を生成する
請求項9から12のいずれか一項に記載の処理回路。 - 前記高電位線または前記基準電位線は、分岐する配線を含む
請求項9から13のいずれか一項に記載の処理回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021221A JP2023118319A (ja) | 2022-02-15 | 2022-02-15 | 処理回路 |
US18/069,222 US20230259417A1 (en) | 2022-02-15 | 2022-12-20 | Processing circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021221A JP2023118319A (ja) | 2022-02-15 | 2022-02-15 | 処理回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023118319A true JP2023118319A (ja) | 2023-08-25 |
Family
ID=87558588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022021221A Pending JP2023118319A (ja) | 2022-02-15 | 2022-02-15 | 処理回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230259417A1 (ja) |
JP (1) | JP2023118319A (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9213818D0 (en) * | 1992-06-30 | 1992-08-12 | Inmos Ltd | Digital signal comparison circuitry |
US8631304B2 (en) * | 2010-01-28 | 2014-01-14 | Sandisk Il Ltd. | Overlapping error correction operations |
US10921208B2 (en) * | 2014-09-26 | 2021-02-16 | Invensense, Inc. | Systems and methods differential pressure sensing |
JP2020150231A (ja) * | 2019-03-15 | 2020-09-17 | キオクシア株式会社 | 半導体記憶装置 |
US11036581B2 (en) * | 2019-08-08 | 2021-06-15 | Apple Inc. | Non-volatile memory control circuit with parallel error detection and correction |
US12095478B2 (en) * | 2020-06-22 | 2024-09-17 | SK Hynix Inc. | Memory and operation method of memory |
US11438015B2 (en) * | 2020-07-10 | 2022-09-06 | Taiwan Semiconductor Manufacturing Company, Ltd. | Two-level error correcting code with sharing of check-bits |
US11567831B2 (en) * | 2020-07-28 | 2023-01-31 | Micron Technology, Inc. | Generating a protected and balanced codeword |
-
2022
- 2022-02-15 JP JP2022021221A patent/JP2023118319A/ja active Pending
- 2022-12-20 US US18/069,222 patent/US20230259417A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20230259417A1 (en) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4672743B2 (ja) | 誤り訂正装置および誤り訂正方法 | |
JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
US6651212B1 (en) | Recording/reproduction device, semiconductor memory, and memory card using the semiconductor memory | |
US5291496A (en) | Fault-tolerant corrector/detector chip for high-speed data processing | |
US8112678B1 (en) | Error correction for programmable logic integrated circuits | |
KR101138120B1 (ko) | 치엔 검색 장치 및 치엔 검색 방법 | |
US6473880B1 (en) | System and method for protecting data and correcting bit errors due to component failures | |
US7350127B2 (en) | Error correction method and system | |
US20040153902A1 (en) | Serial flash integrated circuit having error detection and correction | |
US9075742B2 (en) | Memory device | |
GB2434226A (en) | Hierarchical memory correction system and method | |
US9645886B2 (en) | Digital error correction | |
KR20140064631A (ko) | 메모리 소자로부터 액세스된 데이터의 오류를 정정하는 장치 및 방법 | |
US8196011B2 (en) | Error detection and correction circuit and semiconductor memory | |
US6393597B1 (en) | Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures | |
JP2023118319A (ja) | 処理回路 | |
TWI870985B (zh) | 校驗子解碼器電路 | |
TW201435892A (zh) | 具有受配置以防止過度校正之錯誤校正的記憶體 | |
TWI855076B (zh) | 具有低延遲的錯誤校正碼ecc解碼器 | |
JP2005004288A (ja) | 誤り検出回路 | |
JP5121947B2 (ja) | 誤り訂正装置および誤り訂正方法 | |
TWI785918B (zh) | 記憶體系統 | |
JPH11213692A (ja) | メモリ装置 | |
US20050289409A1 (en) | Parallel data bus | |
RU2297032C2 (ru) | Самокорректирующееся запоминающее устройство |