(57)【要約】【課題】  検査対象アドレスのデータとＥＣＣデータだけについて全データパターンを設定できプログラムによる有効なＥＣＣ機能検査を実行する。【解決手段】  データ反転回路15は、ＣＰＵ18により検査対象アドレスとデータ部13への書込みデータのビット毎に反転を指定できるビット反転データとが設定されると記憶する。データ反転回路16はＣＰＵにより検査対象アドレスとＥＣＣ部14への書込みデータによりＥＣＣ生成回路12が生成した書込みＥＣＣデータのビット毎に反転を指定できるＥＣＣビット反転データとが設定されると記憶する。また、データ反転回路とデータ反転回路は、ＣＰＵからメモリ17へのアクセスアドレスを検査アドレスと比較する機能を有する。【選択図】        図２
2007041665.tif 000002
【特許請求の範囲】
【請求項１】
メモリ上の検査プログラムをＣＰＵが実行することにより前記メモリ上のデータに対するＥＣＣ機能を検査するＥＣＣ機能検査回路において、
前記ＣＰＵと前記メモリ間のデータパスに、
前記ＣＰＵにより、前記メモリの検査対象アドレスと、該検査対象アドレスについて前記メモリのデータ部への書込みデータのビット毎に反転を指定できるビット反転データとが設定され、設定された検査対象アドレスおよびビット反転データを記憶する第１のデータ反転回路と、
前記ＣＰＵにより、前記メモリの検査対象アドレスと、該検査対象アドレスについて前記メモリのＥＣＣ部への書込みデータによりＥＣＣ生成回路が生成した書込みＥＣＣデータのビット毎に反転を指定できるＥＣＣビット反転データとが設定され、設定された検査対象アドレスおよびえＣＣビット反転データを記憶する第２のデータ反転回路とを挿入し、
前記第１のデータ反転回路および前記第２のデータ反転回路は、前記ＣＰＵから前記メモリへのアクセスアドレスを前記検査アドレスと比較する機能を有することを特徴とするＥＣＣ機能検査回路。
【請求項２】
請求項１記載のＥＣＣ機能検査回路を用いたＥＣＣ機能検査方法であって、
ＣＰＵが第１のデータ反転回路に検査対象アドレスとビット反転データ、第２のデータ反転回路に検査対象アドレスとＥＣＣビット反転データをそれぞれ設定・記憶する手順と、
ＣＰＵが書込みデータを出力するとＥＣＣ生成回路が所定のシンドロームにより書込みＥＣＣデータを生成する手順と、
第１のデータ反転回路は記憶しているビット反転データにより書込みデータをビット反転してメモリのデータ部に書き込み、第２のデータ反転回路は記憶しているＥＣＣビット反転データにより前記書込みＥＣＣデータをビット反転してメモリのＥＣＣ部に書き込む手順と、
メモリのデータ部およびＥＣＣ部を読み出し、誤り検出訂正回路による誤り検出・訂正を経た読出しデータをＣＰＵへ出力する手順と、
ＣＰＵにおいて読出しデータを前記書込みデータと比較する手順とを有することを特徴とするＥＣＣ機能検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリなどにおけるＥＣＣ（Ｅｒｒｏｒ−Ｃｏｒｒｅｃｔｉｎｇ−Ｃｏｄｅ）等の誤り検出・訂正機能の検査回路および検査方法に関する。
【背景技術】
【０００２】
従来、この種のＥＣＣ機能検査回路のテストは、図３に示すように、誤り検出訂正回路21およびＥＣＣ生成回路22を有するＥＣＣ回路20とＥＣＣデータメモリ24との間にスイッチ25を設け、先ずスイッチ25をオンとしてデータメモリ23とＥＣＣデータメモリ24にデータを書き込み、次にスイッチ25をオフとしてデータメモリ23の同じアドレスに先のデータと異なるデータを書き込み、最後にデータメモリ23とＥＣＣデータメモリ24を読み出すことにより行っている（例えば、特許文献１参照）。
【０００３】
スイッチ25オンのときにデータメモリ23にデータＡが書き込まれるとすると、ＥＣＣ生成回路22はデータＡに対してシンドロームによりＥＣＣデータを生成しＥＣＣデータメモリ24に書き込む。次にスイッチ25オフのときにデータメモリ23の同じアドレスにデータＢが書き込まれるとすると、データＢはＥＣＣデータメモリ24に書き込まれているＥＣＣデータとは対応しないので、データメモリ23には擬似的に誤ったデータが書き込まれた状態を創出することになる。
【０００４】
この状態で、データＡ対応のＥＣＣデータとデータＢとが誤り検出訂正回路21に読み出し、その出力をチェックする。その結果、データＡが検出できればデータＢは誤り検出訂正回路21においてＥＣＣデータによりデータＡに訂正されたことになるので、ＥＣＣ回路20は正常に動作したことが確認できるのである。
【０００５】
なお、上述の技術においては、全ての誤りデータパターンを設定するのは容易ではないところ、データ選択回路を用いて、ＥＣＣデータメモリに書き込むＥＣＣデータとして任意のデータを設定可能とした技術が知られている（例えば、特許文献２参照）。
【０００６】
【特許文献１】特開昭６１−２２６８５４号公報（第２頁ー第３頁、図１）
【特許文献２】特開平０１−２２３７００号公報（第６頁ー第７頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特許文献１記載の技術では、スイッチ25のオン／オフ動作によりデータメモリ23に誤りデータの設定を行うため、ＥＣＣデータメモリ24にＥＣＣデータの誤りを設定するのは容易ではなく、またＥＣＣデータはＥＣＣ生成回路22のシンドロームにより生成されるため、ＥＣＣデータの誤りデータパターン全てを設定できないという第１の問題点がある。
【０００８】
更に、ＣＰＵの主記憶装置にＥＣＣ機能を付加した装置などで、検査プログラム（ソフトウェア）でＥＣＣ回路を検査する場合に有効な検査を行うことができないという第２の問題点がある。その理由は以下のとおりである。検査プログラムのデータ自体がデータメモリ23およびＥＣＣデータメモリ24と同じ主記憶装置上にあり、プログラムが動作する度に主記憶装置へのアクセスが行われる。その結果、主記憶装置に検査用の誤りデータを設定する際にも検査プログラムが動作して主記憶装置のアクセスが頻繁に行われているので、検査プログラムによる制御でスイッチ25をオフにして書込み不可状態にした後に、検査プログラムの動作による主記憶装置の書込みが行われると、誤ったデータを設定してしまうのである。
【０００９】
また、上述した特許文献２記載の技術では、ＥＣＣデータメモリに書き込むＥＣＣデータは任意のデータに設定可能となるものの、データメモリに書き込む元となるデータの誤りを任意に設定できない。そのため、結局は全ての誤りデータパターンを設定できない点で不十分であり、問題の全てを解決しているとは言えない。
【００１０】
そこで、本発明の目的は、検査対象アドレスのデータおよびＥＣＣデータだけについて全てのデータパターンを設定できる有効なＥＣＣ機能検査回路と、ソフトウェアの検査プログラムによる容易かつ有効なＥＣＣ機能検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のＥＣＣ機能検査回路は、メモリ上の検査プログラムをＣＰＵが実行することにより前記メモリ上のデータに対するＥＣＣ機能を検査するＥＣＣ機能検査回路において、ＣＰＵ（図２の18）とメモリ（図２の17）間のデータパスに、ＣＰＵにより、メモリの検査対象アドレスと、該検査対象アドレスについてメモリのデータ部（図２の13）への書込みデータのビット毎に反転を指定できるビット反転データとが設定され、設定された検査対象アドレスおよびビット反転データを記憶する第１のデータ反転回路（図２の15）と、ＣＰＵにより、メモリの検査対象アドレスと、該検査対象アドレスについてメモリのＥＣＣ部への書込みデータによりＥＣＣ生成回路（図２の12）が生成した書込みＥＣＣデータのビット毎に反転を指定できるＥＣＣビット反転データとが設定され、設定された検査対象アドレスおよびえＣＣビット反転データを記憶する第２のデータ反転回路（図２の16）とを挿入し、第１のデータ反転回路および第２のデータ反転回路は、ＣＰＵからメモリへのアクセスアドレスを検査アドレスと比較する機能を有することを特徴とする。
【００１２】
本発明のＥＣＣ機能検査方法は、上記のＥＣＣ機能検査回路を用いたＥＣＣ機能検査方法であって、ＣＰＵが第１のデータ反転回路に検査対象アドレスとビット反転データ、第２のデータ反転回路に検査対象アドレスとＥＣＣビット反転データをそれぞれ設定・記憶する手順と、ＣＰＵが書込みデータを出力するとＥＣＣ生成回路が所定のシンドロームにより書込みＥＣＣデータを生成する手順と、第１のデータ反転回路は記憶しているビット反転データにより書込みデータをビット反転してメモリのデータ部に書き込み、第２のデータ反転回路は記憶しているＥＣＣビット反転データにより書込みＥＣＣデータをビット反転してメモリのＥＣＣ部に書き込む手順と、メモリのデータ部およびＥＣＣ部を読み出し、誤り検出訂正回路（図２の11）による誤り検出・訂正を経た読出しデータをＣＰＵへ出力する手順と、ＣＰＵにおいて読出しデータを書込みデータと比較する手順とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、メインメモリのデータ部およびＥＣＣ部に対応してデータ反転回路を設け、そこにビット反転データを設定する構成としたため、データビット毎にデータを反転させることができので、ＥＣＣ機能の検査をするために必要な擬似的なエラーデータパターンをすべて設定できるという第１の効果を得ることができる。
【００１４】
また、データ反転回路に検査対象アドレスを設定し検査対象アドレスのデータだけを反転させることができ、メインメモリアクセス時にはアクセスアドレスと検査対象アドレスを比較する構成としたため、メインメモリ上の検査プログラム（ソフトウェア）による有効なＥＣＣ機能検査が可能になるという第２の効果もを得ることができる。
【発明を実施するための最良の形態】
【００１５】
本発明のＥＣＣ機能検査回路は、図１に示すように、ＥＣＣデータメモリ14に対する従来の書込み制御機能としてのスイッチ25（図３参照）に代えてデータ反転回路16を設けると共に、データメモリ13に対してもデータ反転回路15を設ける。データ反転回路15にはアドレスａと、ビット反転データｂと、書込みデータｄとが入力可能であり、データ反転回路16にはアドレスａと、ＥＣＣビット反転データｃと、書込みデータｄからＥＣＣ生成回路12が生成したＥＣＣデータｅとが入力可能である。
【００１６】
これにより、データメモリ13およびＥＣＣデータメモリ14の検査対象アドレス、ビット反転データｂおよびＥＣＣビット反転データｃを設定して、データメモリ13およびＥＣＣデータメモリ14の任意の検査対象アドレスだけに異常ビットが指定可能な任意の誤りデータを書き込むことを可能とする。
【００１７】
本発明によるＥＣＣ機能検査方法では、先ずアドレスａに検査対象アドレスを設定し、ビット反転データｂおよびＥＣＣビット反転データｃを設定する。ビット反転データｂおよびＥＣＣビット反転データｃはビット毎に設定可能であるから、全ての誤りデータのパターンを作り出すことができる。検査対象アドレスとビット反転データｂはデータ反転回路15に、検査対象アドレスとＥＣＣビット反転データｃはデータ反転回路16にそれぞれ記憶される。
【００１８】
次に、アドレスａとして任意アドレスＡを供給し、書込みデータｄとして任意データＤを供給する。任意アドレスＡはデータ反転回路15およびデータ反転回路16において検査対象アドレスと比較される。その結果、一致した場合には、ビット反転回路15はビット反転データｂにより任意データＤを反転したデータをデータメモリ13に書き込む。また、ビット反転回路16はＥＣＣ生成回路12で生成されたＥＣＣデータをＥＣＣビット反転データｃにより反転したデータをＥＣＣデータメモリ14に書き込む。
【００１９】
そして、後に検査対象アドレスの読出しを行ったときに、データメモリ13およびＥＣＣデータメモリ14からの読出しデータを誤り検出訂正回路11によりチェックすることで、読出しデータｒが任意データＤに訂正され、エラー検出ができた場合にＥＣＣ回路10が正常に動作したことが確認できる。
【００２０】
一方、任意アドレスＡと検査対象アドレスが一致しない場合には、任意データＤをデータメモリ13に反転せずそのまま書き込むと共に、ＥＣＣ生成回路12で生成されたＥＣＣデータをＥＣＣデータメモリ14に反転せずそのまま書き込む。任意アドレスＡと検査対象アドレスが一致しない場合とは、例えば、検査プログラムによるメモリアクセスの場合である。
【実施例１】
【００２１】
次に、本発明の実施例について図面を参照して詳細に説明する。図２を参照すると、本発明のＥＣＣ機能検査回路の一実施例を示す。このＥＣＣ機能検査回路は、ＣＰＵ18とメインメモリ17との間のデータパスに２つのデータ反転回路15と16が挿入されている。
【００２２】
ＣＰＵ18はメインメモリ17上の検査プログラムによってＥＣＣ回路10の検査を行う。そのために、各回路に対し、アドレスａ，ビット反転データｂ，ＥＣＣビット反転データｃ，書込みデータｄ等の設定をする。ＥＣＣ回路10は、ＥＣＣ生成回路12と誤り検出訂正回路11から構成され、ＥＣＣデータの生成とメインメモリデータの誤り検出および訂正を行う。
【００２３】
メインメモリ17は、ＣＰＵ18の主記憶装置であって、データ部13とＥＣＣデータ部14から構成され、検査プログラムを格納している。メインメモリ17の記憶素子は、高集積化されたＬＳＩ・ＭＯＳ等であり、蓄積電荷量の微少に起因するソフトエラーに晒されている。ＥＣＣ回路10は、このソフトエラーに対する耐性を付与する。
【００２４】
データ反転回路15はメインメモリ17のデータ部13、データ反転回路16はメインメモリ17のＥＣＣ部14に対応し、検査対象アドレスおよびビット反転データｂの設定・記憶機能を有する。データ反転回路15は、ＣＰＵ18よるメインメモリアクセスのアドレスａと設定された検査対象アドレスを比較し、合致した場合にはメインメモリアクセス時のメインメモリ17への書込みデータｄをビット毎にビット反転データｂに基づきビット反転させたライトデータをメインメモリ17のデータ部13に書き込む。
【００２５】
また、データ反転回路16は、ＣＰＵ18よるメインメモリアクセスのアドレスａと設定された検査対象アドレスを比較し、合致した場合にはメインメモリアクセス時のメインメモリ17への書込みデータｄからＥＣＣ生成回路12が生成した書込みＥＣＣデータｅをＥＣＣビット反転データｃに基づきビット反転させたライトＥＣＣデータをメインメモリ17のＥＣＣデータ部14に書き込む。
【００２６】
次に、本発明によるＥＣＣ回路10の検査方法について説明する。
【００２７】
図２において、ＥＣＣ回路10の検査はメインメモリ17上の検査プログラムに従ってＣＰＵ18が実行する。そのため、直接にはＥＣＣ回路10を検査しない、検査プログラム自体の実行のためにもＣＰＵ18はメインメモリ17をアクセスする。
【００２８】
先ず、ＣＰＵ18はデータ反転回路15に対して検査対象アドレスとビット反転データｂ、データ反転回路16に対して検査対象アドレスとＥＣＣビット反転データｃを設定する。書込みデータ反転回路15は、設定された検査対象アドレスとビット反転データｂを記憶し、データ反転回路16は、設定された検査対象アドレスとＥＣＣビット反転データｃと書込みデータｄから生成した書込みＥＣＣデータｅを記憶する。
【００２９】
ビット反転データｂは、書込みデータｄを構成するビットの内で擬似的にエラーを設定したいビットを指定するものである。また、ＥＣＣビット反転データｃは、ＥＣＣ生成回路12が書込みＥＣＣデータｅを構成するビットの内で擬似的にエラーを設定したいビットを指定するものである。
【００３０】
ＣＰＵ18がメインメモリ17へ書込みデータｄを書き込もうとするとき、アドレスａがデータ反転回路15とデータ反転回路16に供給され、書込みデータｄがＥＣＣ生成回路12に供給される。ＥＣＣ生成回路12は書込みデータｄに対して所定のシンドロームにより書込みＥＣＣデータｅを生成する。
【００３１】
そして、データ反転回路15はアドレスａが先に設定した検査対象アドレスに含まれていると判定すると、書込みデータｄをビット反転データｂによりビット反転したライトデータd1をデータ部13に書き込む。また、データ反転回路16はアドレスａが先に設定した検査対象アドレスに含まれていると判定すると、書込みＥＣＣデータｅをＥＣＣビット反転データｃによりビット反転したライトＥＣＣデータe1をＥＣＣ部14に書き込む。
【００３２】
ライトデータd1は書込みデータｄに対してビット反転により誤りを起こさせたものであり、ライトＥＣＣデータe1は書込みＥＣＣデータｅに対してビット反転により誤りを起こさせたものである。このため、ライトデータd1の書込みによりデータ部13の検査対象アドレス、あるいはライトＥＣＣデータe1の書込みによりＥＣＣデータ部14の検査対象アドレスに擬似的なエラーを発生させたことになる。
【００３３】
一方、ＣＰＵ18がメインメモリ17へ書込みデータｄを書き込もうとするとき、アドレスａがデータ反転回路15とデータ反転回路16において検査対象アドレスに含まれていないと判定されることも十分に起こり得る。このような場合には、データ反転回路15は書込みデータｄをビット反転することなくそのままライトデータd1としてデータ部13へ書き込む。また、データ反転回路16は、ＥＣＣ生成回路12が書込みデータｄから生成した書込みＥＣＣデータｅをビット反転することなくそのままライトＥＣＣデータe1としてＥＣＣ部14へ書き込む。
【００３４】
上記書込みの後に、検査プログラムによって動作するＣＰＵ18は、検査対象アドレスについて、メインメモリ17のデータ部13からリードデータr1を、ＥＣＣ部14からリードＥＣＣデータr2を読み取る。この誤りのあるデータは、ＥＣＣ回路10の誤り検出訂正回路11において誤りを検出し訂正され読出しデータｒとなる。この読出しデータｒは、先に書込みを行った書込みデータｄと照合し一致すれば、ＥＣＣ回路10が誤りデータを正しく訂正できたことを確認することができる。
【００３５】
上記一連動作は、検査プログラムよって行われるが、検査プログラムを実行するためにＣＰＵ18がメインメモリ17をアクセスするときのアクセスアドレスは、データ反転回路15，16により検査対象アドレスと比較される。その結果、両アドレスは当然に一致しないため、検査対象アドレス以外に誤りデータを設定することはなく、ＥＣＣ機能の有効な検査を行うことができるのである。
【図面の簡単な説明】
【００３６】
【図１】本発明によるデータ反転回路によるデータ反転制御による検査回路
【図２】本発明のＥＣＣ機能検査回路の実施の形態を示すブロック図
【図３】本発明のＥＣＣ機能検査回路の一実施例を示すブロック図
【符号の説明】
【００３７】
10      ＥＣＣ回路
11      誤り検出訂正回路
12      ＥＣＣ生成回路
13      データ部
14      ＥＣＣ部
15      データ反転回路
16      データ反転回路
17      メインメモリ
18      ＣＰＵ
【図１】
2007041665.tif 000003
【図２】
2007041665.tif 000004
【図３】
2007041665.tif 000005