(57)【要約】【課題】メモリ回路のアドレスデコード部で発生する障害を高確率で検出できる小面積のアドレスエラー検出装置およびアドレスエラー検出方法を提供する。【解決手段】Ｘデコーダ１０３の出力から複数ビットの冗長符号を生成するＸ符号化器１０５と、Ｙデコーダ１０４の出力から前記冗長符号と同じビット数の冗長符号を出力するＹ符号化器１０６と、Ｘ符号化器１０５の出力１０とＹ符号化器１０６の出力１１を各ビット排他的論理和するＸＯＲ回路１０７と、ＸＯＲ回路１０７の出力１２とアドレス信号１を入力し、誤り検出を行う誤り検出器１０８と、を備える。Ｘ符号化器１０５とＹ符号化器１０６、およびＸＯＲ回路１０７によって、アドレス信号をハミング符号化した冗長部１２を生成する。誤り検出器１０８では、元のアドレス信号と生成された冗長符号に対して検査行列の掛け算を行い、エラーが発生したか否かを検出し、エラー出力３を得る。【選択図】図２
2009211780.tif 000002
【特許請求の範囲】
【請求項１】
アドレス信号に基づいてメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出装置であって、
前記アドレス信号の一部をデコードし、前記メモリアレイのローを選択する信号を生成する第１のデコーダ手段と、
前記アドレス信号の残りをデコードし、前記メモリアレイのカラムを選択する信号を生成する第２のデコーダ手段と、
前記第１のデコーダ手段により出力された出力信号を受けて、前記第１のデコーダ手段の入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成手段と、
前記第２のデコーダ手段により出力された出力信号を受けて、前記第２のデコーダ手段の入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成手段と、
前記第１の符号と前記第２の符号とのビット毎の排他的論理和から第３の符号を求めるＸＯＲ手段と、
前記アドレス信号と前記ＸＯＲ手段により求めた前記第３の符号とを入力するエラー検出手段と、を備えることを特徴とするアドレスエラー検出装置。
【請求項２】
前記第１の符号生成手段は、前記アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき前記第１の符号を生成し、
前記第２の符号生成手段は、前記生成行列の異なる部位の部分行列に基づき前記第２の符号を生成し、
前記第１の符号と前記第２のとの排他的論理和から求めた前記第３の符号は、前記誤り訂正符号の冗長部であることを特徴とする請求項１記載のアドレスエラー検出装置。
【請求項３】
前記第１の符号生成手段により生成された前記第１の符号の符号長と前記第２の符号生成手段により生成された前記第２の符号の符号長が等しく、
前記第１の符号の符号長は、前記第１のデコーダ手段の入力信号長と等長以上で、
前記第２の符号の符号長は、前記第２のデコーダ手段の入力信号長と等長以上であることを特徴とする請求項１又は２記載のアドレスエラー検出装置。
【請求項４】
前記冗長部は、前記アドレス信号をハミング符号化したものであることを特徴とする請求項２又は３記載のアドレスエラー検出装置。
【請求項５】
アドレス信号に基づいて複数に分割されたメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出装置であって、
前記アドレス信号の一部をデコードし、前記メモリアレイの分割された１つを選択する信号を生成する第１のデコーダ手段と、
前記アドレス信号の別の一部をデコードし、前記メモリアレイのローを選択する信号を生成する第２のデコーダ手段と、
前記アドレス信号の残りをデコードし、前記メモリアレイのカラムを選択する信号を生成する第３のデコーダ手段と、
前記第１のデコーダ手段により選択された出力信号を受けて、前記第１のデコーダ手段の入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成手段と、
前記第２のデコーダ手段により生成された出力信号を受けて、前記第２のデコーダ手段の入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成手段と、
前記第３のデコーダ手段により生成された出力信号を受けて、前記第３のデコーダ手段の入力値に基づいた複数ビットの第３の符号を生成する第３の符号生成手段と、
前記第１の符号と前記第２の符号と前記第３の符号とのビット毎の排他的論理和から第４の符号を求めるＸＯＲ手段と、
前記アドレス信号と前記ＸＯＲ手段により求めた前記第４の符号とを入力するエラー検出手段と、を備えることを特徴とするアドレスエラー検出装置。
【請求項６】
前記第１の符号生成手段は、前記アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき前記第１の符号を生成し、
前記第２の符号生成手段は、前記生成行列の異なる部位の部分行列に基づき前記第２の符号を生成し、
前記第３の符号生成手段は、前記生成行列のさらに異なる部位の部分行列に基づき前記第３に符号を生成し、
前記第１の符号と前記第２の符号と前記第３の符号との排他的論理和から求めた前記第４の符号は、前記誤り訂正符号の冗長部であることを特徴とする請求項５記載のアドレスエラー検出装置。
【請求項７】
前記第１の符号生成手段により生成された第１の符号の符号長と、前記第２の符号生成手段により生成された第２の符号の符号長と、前記第３の符号生成手段により生成された第３の符号の符号長と、がすべて等しく、
前記第１の符号の符号長は、前記第１のデコーダ手段の入力信号長と等長以上で、
前記第２の符号の符号長は、前記第２のデコーダ手段の入力信号長と等長以上で、
前記第３の符号の符号長は、前記第３のデコーダ手段の入力信号長と等長以上であることを特徴とする請求項５又は６記載のアドレスエラー検出装置。
【請求項８】
前記冗長部は、前記アドレス信号をハミング符号化したものであることを特徴とする請求項６又は７記載のアドレスエラー検出装置。
【請求項９】
アドレス信号に基づいてメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出方法であって、
前記アドレス信号の一部をデコードし、前記メモリアレイのローを選択する信号を生成する第１のデコーダステップと、
前記アドレス信号の残りをデコードし、前記メモリアレイのカラムを選択する信号を生成する第２のデコーダステップと、
前記第１のデコーダステップにより出力された出力信号を受けて、前記第１のデコーダステップの入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成ステップと、
前記第２のデコーダステップにより出力された出力信号を受けて、前記第２のデコーダステップの入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成ステップと、
前記第１の符号と前記第２の符号とのビット毎の排他的論理和から第３の符号を求めるＸＯＲステップと、
前記アドレス信号と前記ＸＯＲステップにより求めた前記第３の符号とを入力するエラー検出ステップと、を備えることを特徴とするアドレスエラー検出方法。
【請求項１０】
前記第１の符号生成ステップは、前記アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき前記第１の符号を生成し、
前記第２の符号生成ステップは、前記生成行列の異なる部位の部分行列に基づき前記第２の符号を生成し、
前記第１の符号と前記第２のとの排他的論理和から求めた前記第３の符号は、前記誤り訂正符号の冗長部であることを特徴とする請求項９記載のアドレスエラー検出方法。
【請求項１１】
前記第１の符号生成ステップにより生成された前記第１の符号の符号長と前記第２の符号生成ステップにより生成された前記第２の符号の符号長が等しく、
前記第１の符号の符号長は、前記第１のデコーダステップの入力信号長と等長以上で、
前記第２の符号の符号長は、前記第２のデコーダステップの入力信号長と等長以上であることを特徴とする請求項９又は１０記載のアドレスエラー検出方法。
【請求項１２】
前記冗長部は、前記アドレス信号をハミング符号化したものであることを特徴とする請求項１０又は１１記載のアドレスエラー検出方法。
【請求項１３】
アドレス信号に基づいて複数に分割されたメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出方法であって、
前記アドレス信号の一部をデコードし、前記メモリアレイの分割された１つを選択する信号を生成する第１のデコーダステップと、
前記アドレス信号の別の一部をデコードし、前記メモリアレイのローを選択する信号を生成する第２のデコーダステップと、
前記アドレス信号の残りをデコードし、前記メモリアレイのカラムを選択する信号を生成する第３のデコーダステップと、
前記第１のデコーダステップにより選択された出力信号を受けて、前記第１のデコーダステップの入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成ステップと、
前記第２のデコーダステップにより生成された出力信号を受けて、前記第２のデコーダステップの入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成ステップと、
前記第３のデコーダステップにより生成された出力信号を受けて、前記第３のデコーダステップの入力値に基づいた複数ビットの第３の符号を生成する第３の符号生成ステップと、
前記第１の符号と前記第２の符号と前記第３の符号とのビット毎の排他的論理和から第４の符号を求めるＸＯＲステップと、
前記アドレス信号と前記ＸＯＲステップにより求めた前記第４の符号とを入力するエラー検出ステップと、を備えることを特徴とするアドレスエラー検出方法。
【請求項１４】
前記第１の符号生成ステップは、前記アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき前記第１の符号を生成し、
前記第２の符号生成ステップは、前記生成行列の異なる部位の部分行列に基づき前記第２の符号を生成し、
前記第３の符号生成ステップは、前記生成行列のさらに異なる部位の部分行列に基づき前記第３に符号を生成し、
前記第１の符号と前記第２の符号と前記第３の符号との排他的論理和から求めた前記第４の符号は、前記誤り訂正符号の冗長部であることを特徴とする請求項１３記載のアドレスエラー検出方法。
【請求項１５】
前記第１の符号生成ステップにより生成された第１の符号の符号長と、前記第２の符号生成ステップにより生成された第２の符号の符号長と、前記第３の符号生成ステップにより生成された第３の符号の符号長と、がすべて等しく、
前記第１の符号の符号長は、前記第１のデコーダステップの入力信号長と等長以上で、
前記第２の符号の符号長は、前記第２のデコーダステップの入力信号長と等長以上で、
前記第３の符号の符号長は、前記第３のデコーダステップの入力信号長と等長以上であることを特徴とする請求項１３又は１４記載のアドレスエラー検出方法。
【請求項１６】
前記冗長部は、前記アドレス信号をハミング符号化したものであることを特徴とする請求項１４又は１５記載のアドレスエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ回路におけるアドレス入力部およびアドレスデコード部に発生する障害を検出するアドレスエラー検出装置、アドレスエラー検出方法に関する。
【背景技術】
【０００２】
高度な信頼性が要求されるシステムでは、動作中に発生する障害を検出する機構が必須である。搭載されているメモリに関しても例外ではないが、データを保持する部位であることから特に高度な信頼性が求められている。メモリは、データを記憶するメモリセルアレイ部と、データを記憶する位置を指定するアドレスをデコードするデコーダ部とで構成される。メモリアレイに保持されるデータに関しては、パリティやエラー訂正符号などの冗長ビットを追加することによって、データの１ビットまたは２ビットが誤る障害を検出する機構が広く用いられている。
【０００３】
例えば特許文献１では、データを誤り訂正符号化して保持することによって、シンクロナスＤＲＡＭ（Dynamic Random Access Memory）がリフレッシュ時にエラー救済を行う例が示されている。また、冗長符号部が複数のメモリアレイに分散して保持されているため、別々に求めたエラー検出符号を統合して全体の誤り検出を行う機構が示されている。このように、データに関しては、冗長符号を併せてメモリ領域に保持することによって、エラー検出を行う方法が数多く開示されている。
【０００４】
デコーダ部に関しては障害を検出する機構が設けられていないことも多い。それでも障害検出を行うために、特許文献２、３、４では、データを保持するメモリアレイを拡張して、拡張した部分にアドレスから生成したパリティや誤り訂正符号の冗長コード、あるいはアドレス値そのものを保持しておき、読み出し時にその拡張部分の出力を検査することで誤ったアドレスがアクセスされていないかを検出している。
【０００５】
また、デコーダで発生する障害を検出する方法も提案されている。メモリアレイにはアドレスに応じて多数のデータが保持されている。一般的メモリでは、データの、ある１ビットに着目すると、アドレスが異なるデータはロー方向（Ｘ方向）とカラム方向（Ｙ方向）にそれぞれ複数個並んでいて、アドレスの一部のビットでＸ方向のセル、残りのビットでＹ方向のセルを選択して１つのセルを選択する構成になっている。特許文献５では、Ｘ方向を指定するアドレスをデコードして選択された１本の信号から、対応するアドレス部のパリティを生成して出力する回路と、Ｙ方向を指定するアドレスをデコードして選択された１本の信号から対応するアドレス部のパリティを生成して出力する回路を搭載し、それぞれの回路の出力をＸＯＲ（eXclusive OR）することによって、アドレス全体のパリティを生成し、入力したアドレスのパリティと比較することによって、アドレスデコーダ部の障害を検出している。
【特許文献１】特開２００４−４６９６９号公報
【特許文献２】特開平５−１８１７５７号公報
【特許文献３】特開平７−１０５１０２号公報
【特許文献４】特開平１１−１６１５６０号公報
【特許文献５】特開平５−２２５７９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、メモリ領域を増やして冗長コードやアドレス値を保持する方法にはいくつかの問題がある。第１の問題点は、メモリ容量を増やす必要があり、メモリマクロのサイズが増大することである。さらに、メモリマクロは扱えるビット数に制限がある場合があり、このような冗長コードを搭載することが不可能な場合もある。特に、ビット数が大きい場合には複数のメモリマクロに分割して保持することがあるが、デコーダ部の障害を検出するために記憶させるこの冗長なコードは、それぞれのメモリマクロに搭載する必要があり、多くの領域を必要とする。第２の問題点は、消費電力が増加することである。それは、冗長コードを保持するために、メモリ容量が増大することに伴う。
【０００７】
また、デコーダ部にパリティ生成回路を組み込む方法にも問題がある。それは、障害検出能力がそれほど高くないということである。なぜなら、パリティだけではアドレスビットの１ビットの誤りしか検出できないことや、Ｘ方向のデコーダ出力はデコードするビットがｎビットなら２のｎ乗本であることから、０と１のパリティだけでは区別のつかない信号が数多くあるためである。
【０００８】
上記特許文献１に開示されている発明は、データのエラー検出を行う装置に関するものであり、後述する本発明のアドレスエラー検出装置とは目的、構成が異なる。特許文献２、３、４、５も本発明とは、構成が異なり、上記の問題を充分に解決することはできない。
【０００９】
本発明はこのような実情を鑑みてなされたものであり、メモリのアドレスデコード部で発生する障害を高確率で検出できる小面積なアドレスエラー検出装置およびアドレスエラー検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によるアドレスエラー検出装置は、アドレス信号に基づいてメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出装置であって、アドレス信号の一部をデコードし、メモリアレイのローを選択する信号を生成する第１のデコーダ手段と、アドレス信号の残りをデコードし、メモリアレイのカラムを選択する信号を生成する第２のデコーダ手段と、第１のデコーダ手段により出力された出力信号を受けて、第１のデコーダの入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成手段と、第２のデコーダ手段により出力された出力信号を受けて、第２のデコーダ手段の入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成手段と、第１の符号と第２の符号とのビット毎の排他的論理和から第３の符号を求めるＸＯＲ手段と、アドレス信号とＸＯＲ手段により求めた第３の符号とを入力するエラー検出手段と、を備えることを特徴とする。
【００１１】
本発明によるアドレスエラー検出装置は、第１の符号生成手段は、アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき第１の符号を生成し、第２の符号生成手段は、生成行列の異なる部位の部分行列に基づき第２の符号を生成し、第１の符号と第２のとの排他的論理和から求めた第３の符号は、誤り訂正符号の冗長部であることを特徴とする。
【００１２】
本発明によるアドレスエラー検出装置は、アドレス信号の一部をデコードし、メモリアレイの分割された１つを選択する信号を生成する第１のデコーダ手段と、アドレス信号の別の一部をデコードし、メモリアレイのローを選択する信号を生成する第２のデコーダ手段と、アドレス信号の残りをデコードし、メモリアレイのカラムを選択する信号を生成する第３のデコーダ手段と、第１のデコーダ手段により選択された出力信号を受けて、第１のデコーダ手段の入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成手段と、第２のデコーダ手段により生成された出力信号を受けて、第２のデコーダ手段の入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成手段と、第３のデコーダ手段により生成された出力信号を受けて、第３のデコーダ手段の入力値に基づいた複数ビットの第３の符号を生成する第３の符号生成手段と、第１の符号と第２の符号と第３の符号とのビット毎の排他的論理和から第４の符号を求めるＸＯＲ手段と、アドレス信号とＸＯＲ手段により求めた第４の符号とを入力するエラー検出手段と、を備えることを特徴とする。
【００１３】
本発明によるアドレスエラー検出装置は、第１の符号生成手段は、アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき第１の符号を生成し、第２の符号生成手段は、生成行列の異なる部位の部分行列に基づき第２の符号を生成し、第３の符号生成手段は、生成行列のさらに異なる部位の部分行列に基づき第３に符号を生成し、第１の符号と第２の符号と第３の符号との排他的論理和から求めた第４の符号は、誤り訂正符号の冗長部であることを特徴とする。
【００１４】
本発明によるアドレスエラー検出方法は、アドレス信号に基づいてメモリアレイ内の記憶位置を指定するメモリ回路のアドレスエラー検出方法であって、アドレス信号の一部をデコードし、メモリアレイのローを選択する信号を生成する第１のデコーダステップと、アドレス信号の残りをデコードし、メモリアレイのカラムを選択する信号を生成する第２のデコーダステップと、第１のデコーダステップにより出力された出力信号を受けて、第１のデコーダステップの入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成ステップと、第２のデコーダステップにより出力された出力信号を受けて、第２のデコーダステップの入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成ステップと、第１の符号と第２の符号とのビット毎の排他的論理和から第３の符号を求めるＸＯＲステップと、アドレス信号とＸＯＲステップにより求めた第３の符号とを入力するエラー検出ステップと、を備えることを特徴とする。
【００１５】
本発明によるアドレスエラー検出方法は、第１の符号生成ステップは、アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき第１の符号を生成し、第２の符号生成ステップは、生成行列の異なる部位の部分行列に基づき第２の符号を生成し、第１の符号と第２のとの排他的論理和から求めた第３の符号は、誤り訂正符号の冗長部であることを特徴とする。
【００１６】
本発明によるアドレスエラー検出方法は、アドレス信号の一部をデコードし、メモリアレイの分割された１つを選択する信号を生成する第１のデコーダステップと、アドレス信号の別の一部をデコードし、メモリアレイのローを選択する信号を生成する第２のデコーダステップと、アドレス信号の残りをデコードし、メモリアレイのカラムを選択する信号を生成する第３のデコーダステップと、第１のデコーダステップにより選択された出力信号を受けて、第１のデコーダステップの入力値に基づいた複数ビットの第１の符号を生成する第１の符号生成ステップと、第２のデコーダステップにより生成された出力信号を受けて、第２のデコーダステップの入力値に基づいた複数ビットの第２の符号を生成する第２の符号生成ステップと、第３のデコーダステップにより生成された出力信号を受けて、第３のデコーダステップの入力値に基づいた複数ビットの第３の符号を生成する第３の符号生成ステップと、第１の符号と第２の符号と第３の符号とのビット毎の排他的論理和から第４の符号を求めるＸＯＲステップと、アドレス信号とＸＯＲステップにより求めた第４の符号とを入力するエラー検出ステップと、を備えることを特徴とする。
【００１７】
第１の符号生成ステップは、アドレス信号の誤り訂正符号を生成する生成行列の部分行列に基づき第１の符号を生成し、第２の符号生成ステップは、生成行列の異なる部位の部分行列に基づき第２の符号を生成し、第３の符号生成ステップは、生成行列のさらに異なる部位の部分行列に基づき第３に符号を生成し、第１の符号と第２の符号と第３の符号との排他的論理和から求めた第４の符号は、誤り訂正符号の冗長部であることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、エラー検出のための冗長符号生成回路を備えることによって、メモリの領域を削減することができる。本発明は、特に、高度な信頼性が要求されるシステムで使用する半導体記憶回路（メモリ）におけるアドレス入力部およびアドレスデコード部に発生する障害を検出する場合に用いて好適である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面と共に説明する。
【００２０】
本発明の第一の実施の形態について、以下に説明する。図１は本発明の実施の形態によるエラー検出装置の構成例を示すブロック図である。図１において、エラー検出装置は、メモリ回路１００に設けられた、メモリアレイ１０１、Ｙセレクタ１０２、Ｘデコーダ１０３、Ｙデコーダ１０４、Ｘ符号化器１０５、Ｙ符号化器１０６、ＸＯＲ回路１０７、誤り検出器１０８により図示のように構成される。Ｘデコーダ１０３、Ｙデコーダ１０４、誤り検出器１０８にアドレス入力１が与えられ、Ｙセレクタ１０２に対してデータ入出力２が行われる。そして誤り検出器１０８よりエラーを検出したエラー出力３が得られる。図示される矢印はワード線４、４'、Ｙ選択線５、５'、ビット線６を示している。
【００２１】
メモリアレイ１０１は、データを保持するメモリである。メモリアレイ１０１は、１ビットが複数のカラム構成となっていて、Ｙセレクタ１０２によってその１つをアドレスに応じて選択する。Ｘデコーダ１０３は、アドレスに合わせてメモリアレイ１０１の縦方向（Ｘ方向）のローを選択する信号を発生する。Ｙデコーダ１０４は、アドレスにあわせてメモリアレイ１０１の縦方向（Ｙ方向）のカラムを選択する信号を発生する。Ｘ符号化器１０５は、Ｘデコーダ１０３の出力から複数ビットの冗長符号１０を生成する。Ｙ符号化器１０６は、Ｙデコーダ１０４の出力からＸ符号化器１０５が生成した冗長符号と同じビット数の冗長符号１１を出力する。ＸＯＲ回路１０７は、Ｘ符号化器１０５の出力１０とＹ符号化器の出力１１を各ビット排他的論理和する。誤り検出器１０８は、ＸＯＲ回路１０７の出力１２と、アドレス信号１を入力し、誤り検出を行う。
【００２２】
図２は、入力されるアドレスを４ビットとし、そのうちの３ビットをＸデコーダ１０３でデコードし、残りの１ビットをＹデコーダ１０４でデコードする場合の動作を示す図である。Ｘデコーダ１０３は３ビットを入力し、０００から１１１に対応して８本のワード線４のいずれかに信号を出力する。この信号を受けて、Ｘ符号化器１０５は３ビットの符号１０を出力する。この符号１０は後述するハミング符号の生成行列の一部を使って決められる値で、８つのデコード信号それぞれに対して異なる３ビットの符号が割り当てられている。
【００２３】
Ｙデコーダ１０４は１ビットをデコードして２本のＹ選択線５のうちのいずれかに信号を出力する。この信号を受けて、Ｙ符号化器１０６は３ビットの符号１１を出力する。この符号１１も後述するハミング符号の生成行列の一部を使って決められる。Ｘ符号化器１０５とＹ符号化器１０６の３ビット出力の符号１０、１１は、それぞれのビット毎にＸＯＲ回路１０７で排他的論理和され、アドレスのハミング符号の冗長部１２となり、誤り検出器１０８に入力される。
【００２４】
図３は、本発明の実施の形態に係る符号化器の出力符号を説明する構成図である。図３を用いて、Ｘ符号化器１０５とＹ符号化器１０６が出力する符号１０、１１について説明する。４ビットの信号をハミング符号化すると７ビットのコードとなる。そのうち４ビットは元の信号そのものであり、３ビットが冗長部１２である。このようなハミング符号を作る動作について、以下に示す。
【００２５】
図３において、３ビットの符号を検査する検査行列Ｈを先に作成する。これは、３ビットのコードのうち、０００を除いた７種類を各列に配置した行列で、３行７列の行列である。列は任意の順番で並べてかまわないが、この検査行列から作成する生成行列を作って得られるハミング符号が元の４ビット値と冗長符号部とにきれいに分割できるようなコードにするには、右３列は３行３列の単位行列になるようにする。また、便宜的に、左から３行は独立した３つの値を選択する。ここで言う独立とは２つの値を選択して加算（排他的論理和）をしたときに残りの値にならないような３つの値である。
【００２６】
この検査行列から４行７列の生成行列Ｇを作成するには、検査行列Ｈのうち単位行列でない３行４列の部分を転置し、４行３列の行列を作り右３列に配置し、その左側に４行４列の単位行列を付加すればよい。ある４ビット値のハミング符号を生成するには、その４ビット値に右から生成行列Ｇを掛けてやればよい。４行７列の行列を掛けるため、４ビットの数値は７ビットの符号となる。このとき、単位行列部分を掛けた結果はそのものの値になるので、左４ビットは元の４ビットの値に、残りの３ビットには冗長の符号ビットが付加された形式となる。
【００２７】
生成行列Ｇの４行３列の部分を使って、本発明の冗長部１２の冗長符号は作られる。アドレス４ビットとこの４行３列の行列を掛け合わせるのだが、Ｘ符号化器１０５では、４行３列のうち上部の３行３列の行列を使って符号を生成する。Ｘデコーダ１０３は０００から１１１の８通りの値に対応して１つが出力されるが、それに合わせて、この３ビットの値と３行３列の行列を掛け算した結果を出力するような符号化器にする。例えば、０００にこの行列を掛けると結果は０００であるから、ワード線５において０００に対応する信号を受けたら、Ｘ符号化器１０５は０００を出力する。また、１１１に掛けた結果は００１であるから出力は００１である。同様に他の値に対しても３ビットの値を出力するようにする。
【００２８】
Ｙデコーダ１０４の出力５は１ビットの０と１に対していずれかが出力される。ここでも生成行列Ｇの右下の１行３列の行列を掛け合わせて出力する符号を決める。つまり、０には０００を１には１１０を出力する。
【００２９】
これらによって出力された２つの符号１０、１１をＸＯＲ回路１０７で排他的論理和することによって４行３列の行列を掛けた結果となる。これは冗長部１２の符号そのものである。誤り検出器１０８は、冗長部１２の符号とアドレス入力１に基づいてエラー出力３を得る。
【００３０】
図４は一番簡単な０出力回路１２０と１出力回路１２１の回路例である。図５は０出力回路と１出力回路の他の構成例である。Ｘ符号化器１０５やＹ符号化器１０６には、０出力回路１２０や１出力回路１２１が使われる。その構成例を図４、図５を用いて説明する。
【００３１】
図４に図示するように、符号の各ビットに対して２本の出力線２１、２１'を用意し、プリチャージ信号２２によりｐＭＯＳ（Positive channel Metal Oxide Semiconductor）トランジスタ２００、２０１によってあらかじめプリチャージしておく。０出力回路１２０では、出力線２１にドレインが接続され、ゲートが選択線２０に接続されたｎＭＯＳ（Negative channel Metal Oxide Semiconductor）トランジスタ３００によって、出力線２１をディスチャージする。
【００３２】
１出力回路１２１では、出力線２１'にドレインが接続され、ゲートが選択線２０'に接続されたｎＭＯＳトランジスタ３０１によって出力線２１'をディスチャージする。出力線２１がディスチャージされたら０を、出力線２１'がディスチャージされたら１を表すものとして検出すればよい。この回路は最もトランジスタを少なく作れる構成であるので、Ｘ符号化器１０５だけでなく、Ｙ符号化器１０６でも使用できる。Ｘ符号化器１０５では、選択線２０、２０'はワード線４に相当し、Ｙ符号化器１０６では選択線２０、２０'はＹ選択線５に相当する。
【００３３】
Ｘ符号化器１０５は通常メモリセルに隣接して配置されるので、通常の６トランジスタメモリセルを改良した形の回路にしてあるとレイアウトしやすい。そこで、図５に、２つのｐＭＯＳトランジスタと４つのｎＭＯＳトランジスタからなる６トランジスタの０出力回路１２０'と１出力回路１２１'の回路を示す。
【００３４】
０出力回路１２０'では、出力線２１'側のロードｐＭＯＳトランジスタ２０３のドレインをドライブｎＭＯＳトランジスタ３０５のドレイン、アクセスｎＭＯＳトランジスタ３０３のソースから切り離し、ｐＭＯＳトランジスタ２０３とｎＭＯＳトランジスタ３０５のゲートをグランド電位に接続する。これによって、ｐＭＯＳトランジスタ２０３は常にオン状態になり、反対側のインバータを構成するｐＭＯＳトランジスタ２０２をオフ、ｎＭＯＳトランジスタ３０４をオンさせ、選択線２０が立ち上がったときに出力線２１をプルダウンする。
【００３５】
１出力回路１２１’は０出力回路１２０’の出力線２１と出力線２１’を入れ替えたものである。図４の回路と同様に、出力線２１がプルダウンされたら０を、出力線２１’がプルダウンされたら１を検出すればよい。選択線２０、２０’はワード線４に相当する。
【００３６】
ここでは４ビットのアドレス信号を、３ビットのＸデコードと１ビットのＹデコードに分けた場合を示した。さらにアドレスのビット長が長い場合は、１１ビットのアドレスまでなら４ビットの冗長符号を使えばよく、それ以上でも２６ビットまでなら５ビットの冗長符号を使えば同様な回路を作成できる。
【００３７】
検査行列Ｈを作成するとき、１１ビットアドレスで４ビットの冗長符号では４行１５列の行列となるのだが、独立な列は４列しか選べないため、１６ビットまでしかデコード信号を完全に区別することができない。それ以上のデコード信号の場合は同じ符号が出力されることになる。そのため、完全にデコード信号の誤りを検出できないが、パリティのように０と１しかない場合と比較すれば、検出能力は大幅に向上する。また、完全に誤りを検出したい場合は、独立な行を増やすため冗長符号のビット数を増やせばよい。ｎビットのデコード出力を区別するには、ｎビットの冗長符号があれば十分である。
【００３８】
上述した動作を要約して説明する。図１、図２において、メモリアレイ１０１は、Ｘデコーダ１０３で生成し、Ｘ符号化器１０６を素通りしてワード線４’に出力されるロー方向選択信号が入力されることにより動作し、ビット線６にデータを入出力し、Ｙ符号化器１０５を素通りしてＹ選択線５’に出力されるカラム方向選択信号がＹセレクタ１０２に入力されることによって、Ｙセレクタ１０２を介して、データ入出力２が行われる。
【００３９】
Ｘ符号化器１０５とＹ符号化器１０６、およびＸＯＲ回路１０７によって、アドレス信号をハミング符号化した冗長部１２を生成する。ハミング符号は元のビット列に生成行列を掛けることで生成できる。ここでは２進法としているため、この行列の掛け算において内積演算を行う際は各要素を論理積して排他的論理輪をとることで行う。この内積演算は結合則が成り立つため、部分ごとに並行して演算することができる。そこで、Ｘデコーダ１０３でデコードするビット部分の内積演算をＸ符号化器１０５で行い、並行してＹデコーダ１０３でデコードするビット部分の内積演算をＹ符号化器１０６で行い、最後にＸＯＲ回路１０７で合わせて演算することが可能である。
【００４０】
誤り検出器１０８では、生成されたハミング符号に対して検査行列の掛け算を行い、エラーが発生したか否かを検出して、エラー出力３を得る。アドレス値をハミング符号化した結果は、元のアドレス値とＸＯＲ回路１０７の出力を合わせることで得られる。これらに検査行列を掛けて、結果がすべて０であればエラーは無く、何らかのビットが１になっていればエラーが検出されたことになる。
【００４１】
図６はビット線に階層を持たせた場合の例である。本発明の第２の実施形態について図６を用いて説明する。図６においては、上述した図１、図２と対応する部分には同一番号を付して重複する説明は省略する。
【００４２】
ビット線に階層を持たせると、メモリアレイが複数に分割され、Ｘデコーダは階層構成となる。１つのメモリアレイ内のＸ方向のローを選択する第１Ｘデコーダ１０９と、複数のメモリアレイのうちひとつを選択する第２Ｘデコーダ１１０との階層構成である。
【００４３】
７ビットのアドレスのうち、３ビットを第１Ｘデコーダ１０９が、他の３ビットを第２Ｘデコーダ１１０が、残りの１ビットをＹデコーダ１０４がデコードする構成を示す。アドレスは７ビットなので、冗長部１２'の冗長符号は４ビット必要になる。第１Ｘデコーダ１０９からのデコード信号を受けて、Ｘ符号化器１０５は０００から１１１のコードに対応する４ビット冗長符号１０"を出力する。また、Ｙデコーダ１０４からの出力を受けてＹ符号化器１０６は４ビットの符号１１'を出力する。
【００４４】
さらに、第２Ｘデコーダ１１０の出力される８本のバンク選択線のうちの１本の信号７によって、第１Ｘデコーダ１０９とＹデコーダ１０４は動作するが、この信号からも対応するビットの４ビット符号１３を出力し、これらの３つの出力１０"、１１'、１３をＸＯＲすることで冗長部１２'の冗長符号を生成する。誤り検出器１０８は、７ビットのアドレス入力１と冗長コードとによってエラーを検出し、エラー出力３を得る。尚、図６にはメモリアレイ１つ分しか記載していないが、他の７つのメモリアレイに対しても同様な回路構成をとる。
【００４５】
図７は７ビットのアドレスから４ビットの冗長符号を生成する方法を示す図である。１１ビットの数値に対して４ビットの冗長符号を付加して１５ビットのハミング符号が生成できるが、７ビットのアドレスの場合、１１ビットのうち４ビットが０であるとして、検査行列Ｈ、生成行列Ｇを考えればよい。検査行列Ｈは００００を除いた４ビットの値１５個を各列に並べた４行１５列の行列である。上述した図３の場合と同様に、右４列は単位行列とする。また便宜上、左４列は独立した４つの値を並べ、次の４列も別の独立した４つの値を、さらに次の３列も独立した３つの値を並べる。
【００４６】
生成行列Ｇは１１行１１列の単位行列に、検査行列Ｈから単位行列部を除いた４行１１列の行列を転置した１１行４列の行列を右に付加した１１行１５列の行列である。１１ビットの値のハミング符号を生成するには右から生成行列Ｇを掛けて１５ビットの値を得ればよい。右側１１行１１列が単位行列であることから、生成されたハミング符号の左１１ビットは元の値そのもので、これに４ビットの冗長符号を付加した形になる。Ｘ符号化器１０５、Ｙ符号化器１０６、さらに第１Ｘデコーダ１０９に対応した４ビットコードを生成する部分は冗長符号部分を生成する１１行４列の行列から生成する。
【００４７】
Ｘ符号化器１０５では、上から４行のうち３行を使って４ビットのコードを生成する。上から４行は各行独立な値であるため、そこから３行を選択して得られた３行４列を３ビットの値に掛けてもすべて異なる符号が生成でき、デコードされた各信号に対して異なる符号を出力する構成になる。同様に、第２Ｘデコーダ１１０の８本の出力に対しても、５行目から８行目の４つの独立した行から３つを選んで３行４列の行列を掛けることで異なる４ビットの符号を生成することが可能である。Ｙデコーダ１０４に関しても最後の３行から１行を選んで符号を生成する。
【００４８】
ここでは、簡単のため第１Ｘデコーダ１０９は３ビットを、第２Ｘデコーダ１１０は３ビットを、Ｙデコーダ１０４は１ビットをデコードする構成にしている。冗長符号を生成する１１行４列の行列は、４行、４行、３行と独立した行になっているため、第１Ｘデコーダ１０９と第２Ｘデコーダ１１０は、４ビットを１６本にデコードする場合でも、異なる符号を出力することが可能である。また、Ｙデコーダ１０４は、３ビットをデコードして８本の信号を出力するデコーダでも異なる符号を出力することができる。このような構成にすれば、デコーダごとに違う信号線が選択された障害を検出することができる。
【００４９】
上述した第１、第２の実施の形態の効果について説明する。第１の効果は、メモリの領域を削減できることである。その理由は、エラー検出のための冗長符号生成回路を加えることによって、メモリマクロ内に冗長符号を保存する領域を確保する必要がないからである。例えば、メモリアレイの構成が１ビットあたり４カラムの構成である場合、冗長コードを保存する領域は冗長コードが４ビットなら１６カラム幅必要になるが、４カラム分の面積で実現することが可能である。さらに１ビットあたり８カラム構成であれば、３２カラム幅が４カラム幅に減らせるため、面積が大幅に削減できる。また、特に、高度な信頼性が要求されるシステムで使用する半導体記憶回路（メモリ）におけるアドレス入力部およびアドレスデコード部に発生する障害を検出する場合に用いて好適である。
【００５０】
第２の効果は、消費電力を削減できることである。その理由は、冗長符号やアドレス値を保持するメモリ領域が不要になることによって、無駄な電力が発生しないからである。第３の効果は、アドレスのデコーダ部で発生する障害が高確率で検出できることである。その理由は、デコード後の信号それぞれに異なる冗長符合を割り付けることができる、または、すべてに異なる冗長符合が割り付けられないにしても、パリティでは２種類であったものが、それ以上の種類のコードを割り付けることができるため、高い確率で選択されたデコード信号の区別がつくからである。また、ハミング符号化を用いることにより、冗長部の冗長符号を容易に生成することができる。
【００５１】
上記の効果をもたらす本発明の実施形態による各手段の働きについて述べる。本発明の実施形態によるアドレスエラー検出装置では、アドレス信号をローアドレスとカラムアドレス、さらにはバンクアドレスに分割し、それぞれデコードされた結果から並行して複数ビットの複数の符号を生成し、これらを排他的論理和することによって元のアドレスの１つのエラー訂正符号の冗長部を生成する。この符号と元のアドレスからエラー検出回路によってシンドロームを求めることによって、エラー検出を行う。
【００５２】
また本発明の実施形態によるアドレスエラー検出装置では、入力するアドレスのビット長や、各デコーダに分割したそれぞれのビット長に、符号ビット長から来る制約を与えることによって、デコード結果に対応して得られる出力の符号がすべて異なるようにすることによって、エラー検出確率を高める。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態によるエラー検出装置の構成例を示すブロック図である。
【図２】本発明の実施形態の動作を説明するブロック図である。
【図３】本発明の実施形態に係る符号化器の出力符号を説明する構成図である。
【図４】本発明の実施形態における０出力回路と１出力回路を示す回路図である。
【図５】本発明の実施形態における他の０出力回路と１出力回路を示す回路図である。
【図６】本発明の実施の形態によるエラー検出装置の構成を示すブロック図である。
【図７】本名発明の実施の形態における符号化器の出力符号を説明する構成図である。
【符号の説明】
【００５４】
１    アドレス入力
２    データ入出力
３    エラー出力
４、４’    ワード線
５、５’    Ｙ選択線
６    ビット線
１０    Ｘ符号
１１    Ｙ符号
１２    冗長部
２０、２０’    選択線
２１、２１’    出力線
２２    プリチャージ信号
１００    メモリ回路
１０１    メモリアレイ
１０２    Ｙセレクタ
１０３    Ｘデコーダ
１０４    Ｙデコーダ
１０５    Ｘ符号化器
１０６    Ｙ符号化器
１０７    ＸＯＲ回路
１０８    誤り検出回路
１０９    第１Ｘデコーダ
１１０    第２Ｘデコーダ
１２０、１２０'    ０出力回路
１２１、１２１'    １出力回路
２００〜２０４    ｐＭＯＳトランジスタ
３００〜３０９    ｎＭＯＳトランジスタ
【図１】
2009211780.tif 000003
【図２】
2009211780.tif 000004
【図３】
2009211780.tif 000005
【図４】
2009211780.tif 000006
【図５】
2009211780.tif 000007
【図６】
2009211780.tif 000008
【図７】
2009211780.tif 000009