(57)【要約】【課題】  本発明は、書き込み動作によりメモリに書き込まれるデータに誤りが発生した場合に直ちに誤りを検出可能な半導体集積回路を提供することを目的とする。【解決手段】  半導体集積回路は、ＣＰＵと、ＣＰＵに第１のバスを介して結合されるメモリ制御回路と、メモリ制御回路に第２のバスを介して結合されるメモリを含み、メモリ制御回路は、ＣＰＵからメモリへの書き込みデータの書き込み動作の終了に応答して自動的にデータチェック動作を開始し、データチェック動作によりメモリから書き込みデータを読み出して書き込みデータの誤りをチェックするよう構成されることを特徴とする。【選択図】  図１
2006277133.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
該ＣＰＵに第１のバスを介して結合されるメモリ制御回路と、
該メモリ制御回路に第２のバスを介して結合されるメモリ
を含み、該メモリ制御回路は、該ＣＰＵから該メモリへの書き込みデータの書き込み動作の終了に応答して自動的にデータチェック動作を開始し、該データチェック動作により該メモリから該書き込みデータを読み出して該書き込みデータの誤りをチェックするよう構成されることを特徴とする半導体集積回路。
【請求項２】
該メモリ制御回路は、
該書き込み動作が実行されると該書き込み動作の書き込みアドレスを格納するアドレスレジスタと、
該書き込み動作が実行されると該書き込み動作の該書き込みデータに応じたデータを格納する書き込みデータレジスタ
を含み、該データチェック動作により該アドレスレジスタの示す該書き込みアドレスから該書き込みデータを読み出して、該書き込みデータレジスタに格納されている該データに基づいて該書き込みアドレスから読み出した該書き込みデータの誤りをチェックすることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
該メモリ制御回路は、
不良アドレスを格納する不良アドレスレジスタと、
該不良アドレスレジスタの内容と該ＣＰＵから供給されるアドレスとを比較した比較結果を出力する比較回路と、
該比較回路が出力する該比較結果に応じて該ＣＰＵから該メモリへのアクセスを所定のアドレスへのアクセスに切り換える回路
を更に含むことを特徴とする請求項１記載の半導体集積回路。
【請求項４】
該メモリ制御回路は該メモリの所定の領域を指定する領域設定レジスタを更に含み、該領域設定レジスタが指定する該所定の領域に対して該書き込みデータの誤りをチェックし、該所定の領域以外の領域に対しては該書き込みデータの誤りをチェックしないよう構成されることを特徴とする請求項１記載の半導体集積回路。
【請求項５】
ＣＰＵからメモリへの書き込みアクセスに応答して該書き込みアクセスのアドレスを記録し、
該書き込みアクセスに応答して該書き込みアクセスの対象である書き込みデータに応じたデータを記録し、
該書き込みアクセスの終了に応答して自動的にデータチェック動作を実行する
各段階を含み、該データチェック動作は、
該メモリの該アドレスから該書き込みデータを読み出し、
該記録したデータに基づいて該読み出したデータのデータ誤りをチェックする
各段階を含むことを特徴とするメモリデータチェック方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に半導体集積回路に関し、詳しくはメモリデータをチェックする機能を有した半導体集積回路及びメモリデータチェック方法に関する。
【背景技術】
【０００２】
近年、複雑な制御が必要なシステムにおいては、ＣＰＵ及びメモリを含む様々な機能を組み込んだマイクロコンピュータが搭載されている。このようなマイクロコンピュータを例えば自動車等のシステムに搭載する場合には、搭載システムの安全性を確保することが重要な課題である。安全性を高めるためには、マイクロコンピュータが誤動作しないような対策を講じる必要がある。
【０００３】
マイクロコンピュータの誤動作の１つの要因として、メモリのデータ異常が考えられる。メモリに格納されたデータの誤りを検出する従来の方法には、例えばメモリ内のデータの集まりに対してチェックサムを計算しておき、所定のタイミングでチェックサムに基づいたデータチェックを行うものがある。また例えば特許文献１には、メモリへの電源投入時にテスト用のライトデータを生成してメモリに書き込み、ライトデータのチェックサムとリードデータのチェックサムとを比較することによりメモリテストを実行する方式が示される。
【０００４】
また特許文献２には、メモリの電源遮断時にメモリマトリクスの各行・各列毎にパリティを計算して保存しておき、電源投入時にデータ内容をチェックして必要に応じてパリティによるデータ訂正を行う方式が示される。また特許文献３には、チェックサム演算又はＣＲＣ演算を行う回路をメモリ側に設け、コンピュータがフラッシュメモリのデータを読み出す際にチェックサム演算又はＣＲＣ演算をメモリ側で同時に実行することにより、メモリからコンピュータへのデータ転送の信頼性を確認する方式が示される。
【０００５】
電源投入時、初期動作時、バックアップ時等の所定のタイミングでメモリチェックを実行する方式では、メモリチェック動作の間に発生したメモリ不良に対しては対応することができない。即ち、所定のタイミングでテストモードを実行することによりメモリ不良を検出するが、前回のテストモード実行から次回のテストモード実行までの間に不良が発生した場合には、データの信頼性が保証されずに誤動作を引き起こすという問題がある。従って、自動車等のシステムの場合のように、システムが連続稼動する場合や高信頼性が必要とされる場合には、このような方式は意味をなさない。
【０００６】
また上記のデータを読み出す際にチェックサム演算又はＣＲＣ演算を同時に実行する方式は、読み出しデータがコンピュータに正常に伝送されるか否かを判定するためのものであり、書き込みデータが正常か否かを判定するものではない。
【特許文献１】特開平０３−１３８７４２号公報
【特許文献２】特開平０９−１６７１２０号公報
【特許文献３】特開２００３−３３７７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上を鑑みて本発明は、書き込み動作によりメモリに書き込まれるデータに誤りが発生した場合に直ちに誤りを検出可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による半導体集積回路は、ＣＰＵと、該ＣＰＵに第１のバスを介して結合されるメモリ制御回路と、該メモリ制御回路に第２のバスを介して結合されるメモリを含み、該メモリ制御回路は、該ＣＰＵから該メモリへの書き込みデータの書き込み動作の終了に応答して自動的にデータチェック動作を開始し、該データチェック動作により該メモリから該書き込みデータを読み出して該書き込みデータの誤りをチェックするよう構成されることを特徴とする。
【０００９】
また本発明によるメモリデータチェック方法は、ＣＰＵからメモリへの書き込みアクセスに応答して該書き込みアクセスのアドレスを記録し、該書き込みアクセスに応答して該書き込みアクセスの対象である書き込みデータに応じたデータを記録し、該書き込みアクセスの終了に応答して自動的にデータチェック動作を実行する各段階を含み、該データチェック動作は、該メモリの該アドレスから該書き込みデータを読み出し、該記録したデータに基づいて該読み出したデータのデータ誤りをチェックする各段階を含むことを特徴とする。
【発明の効果】
【００１０】
本発明の少なくとも１つの実施例によれば、書き込み動作毎に、書き込み動作が終了するとこれに応答して自動的にデータチェック動作を実行し、メモリから書き込みデータを読み出して、レジスタに保持してある書き込みデータと比較する。比較したデータが一致していない場合には、不良を通知する。これにより、書き込み動作によりメモリに書き込まれるデータに誤りが発生した場合に、直ちに誤りを検出可能な半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下に本発明の実施例を添付の図面を用いて詳細に説明する。
【００１２】
図１は、本発明による半導体集積回路の構成の一例を示す構成図である。図１に示す半導体集積回路は、メモリ制御回路１０、ＣＰＵ１１、ＲＡＭ１２、及び救済用ＲＡＭ１３を含む。メモリ制御回路１０は、ＣＰＵ１１とＲＡＭ１２との間に位置され、ＲＡＭチェック回路１５及びＲＡＭ救済回路１６を含む。
【００１３】
本発明による半導体集積回路においては、ＣＰＵ１１がＲＡＭ１２にデータを書き込むと、メモリ制御回路１０のＲＡＭチェック回路１５が、書き込みデータが正常であるか否かのチェックをデータ書き込み動作の直後に実行する。具体的には、ＣＰＵ１１からＲＡＭ１２に書き込み動作が実行されると、ＲＡＭチェック回路１５が、書き込みデータ及び書き込みアドレスを内部レジスタに記憶しておく。ＣＰＵ１１による書き込み動作が終了すると、ＲＡＭチェック回路１５はＣＰＵ１１とは独立に動作し、自動的にデータチェック動作を開始する。
【００１４】
このデータチェック動作において、ＲＡＭチェック回路１５は、内部レジスタに格納された書き込みアドレスが示すＲＡＭ１２のアドレスにアクセスして、ＲＡＭ１２からデータを読み出す。ＲＡＭチェック回路１５は、ＲＡＭ１２から読み出したデータを、内部アドレスに格納されている書き込みデータと比較することで、両データが互いに一致しているか否かを判定する。
【００１５】
両データが一致していれば、書き込みデータに問題はないと判断される。両データが一致していない場合は、書き込みデータに問題があると判断される。書き込みデータに問題があると判断された場合には、メモリ制御回路１０のＲＡＭチェック回路１５は、不良通知信号をアサートすることにより、ＣＰＵ１１に対してデータ書き込みが失敗したことを通知する。
【００１６】
メモリ制御回路１０には、データ書き込みが失敗したＲＡＭ１２のアドレスを救済する機能が設けられている。ＲＡＭ救済回路１６は、書き込み不良が発生した不良アドレスを示すアドレスデータを内部レジスタに格納している。ＣＰＵ１１からＲＡＭ１２へのアクセスが発生すると、アクセス先のアドレスと内部レジスタに格納している不良アドレスとが一致するか否かを判断する。両データが一致すると、ＲＡＭ救済回路１６は、ＣＰＵ１１からＲＡＭ１２へのアクセスを救済用ＲＡＭ１３へのアクセスに切り換える。これにより、ＲＡＭ１２の不良アドレスの代わりに、救済用ＲＡＭ１３の所定のアドレスにアクセスされることになる。
【００１７】
上述のＲＡＭチェック回路１５のチェック動作は、メモリ制御回路１０によりＣＰＵ１１側からの制御とは独立に実行される。従って、ＣＰＵ１１がチェック動作に関与することは無く、ＲＡＭ１２への書き込み動作毎に余計な制御動作をＣＰＵ側から実行する必要が無いので、ＣＰＵ１１の動作効率の低下を避けることができる。なおこの際、メモリ制御回路１０に接続されるＣＰＵ１１側のバスは、メモリ制御回路１０から電気的に切り離される。これにより、メモリ制御回路１０によるチェック動作の最中に、バスを必要に応じて利用することができる。
【００１８】
図２は、ＲＡＭチェック回路１５の構成の一例を示す図である。図２において、図１と同一の構成要素は同一の番号で参照する。図２に示されるメモリ制御回路１０においては、ＲＡＭチェック回路１５に関連する部分のみが示され、ＲＡＭ救済回路１６に関連する部分は省略されている。
【００１９】
メモリ制御回路１０は、ＲＡＭ制御回路２１、アドレスレジスタ２２、書き込みデータレジスタ２３、読み出しデータレジスタ２４、及び比較回路２５を含む。ＲＡＭ制御回路２１、アドレスレジスタ２２、書き込みデータレジスタ２３、読み出しデータレジスタ２４、及び比較回路２５がＲＡＭチェック回路１５を構成する。
【００２０】
ＣＰＵ１１からメモリ制御回路１０には、書き込み指示信号ＷＲＸ、読み出し指示信号ＲＤＸ、及びアドレスＡＤＤが供給される。書き込み指示信号ＷＲＸ、読み出し指示信号ＲＤＸ、及びアドレスＡＤＤはＲＡＭ制御回路２１に入力され、ＲＡＭ制御回路２１は、それらの入力信号に対応する書き込み指示信号ＷＲＸＸ、読み出し指示信号ＲＤＸＸ、及びアドレスＡＸＸをＲＡＭ１２に供給する。これによりＣＰＵ１１からＲＡＭ１２へのアクセスが、メモリ制御回路１０を介して実行される。
【００２１】
書き込み動作時には、ＣＰＵ１１からメモリ制御回路１０にデータＤＡＴＡが供給される。データＤＡＴＡはＲＡＭ制御回路２１に入力され、ＲＡＭ制御回路２１は、これに対応するデータＤＸＸをＲＡＭ１２に供給する。読み出し動作時には、ＲＡＭ１２からＲＡＭ制御回路２１にデータＤＸＸが供給され、これに対応するデータＤＡＴＡがＲＡＭ制御回路２１からＣＰＵ１１に供給される。
【００２２】
書き込み動作時には、書き込み指示信号ＷＲＸをラッチ指示信号として、アドレスレジスタ２２にアドレスＡＤＤが格納される。また更に、書き込み指示信号ＷＲＸをラッチ指示信号として、書き込みデータレジスタ２３にデータＤＡＴＡが格納される。
【００２３】
ＣＰＵ１１によるＲＡＭ１２へのデータ書き込みが終了すると、これに応答して、ＲＡＭ制御回路２１がデータチェック動作を自動的に開始する。このデータチェック動作において、ＲＡＭ制御回路２１は、まずアドレスレジスタ２２の内容が示すアドレスにアクセスしてＲＡＭ１２からデータを読み出す。読み出されたデータは読み出しデータレジスタ２４に格納される。
【００２４】
比較回路２５は、書き込みデータレジスタ２３に格納されるデータと読み出しデータレジスタ２４に格納されるデータとを比較する。両データが一致するときには、比較回路２５の出力はアサートされない。両データが一致しないときには、書き込みデータに不良が発生したことが分かるので、比較回路２５はその出力である不良通知信号をアサートする。この不良通知信号のアサート状態により、書き込み動作に失敗した旨がＣＰＵ１１に通知される。
【００２５】
図３は、図２の構成の動作を説明するためのタイミング図である。以下に図３を参照して図２の構成の動作について説明する。
【００２６】
本発明によるデータ書き込み動作の基本サイクルは４サイクルからなる。最初のサイクルＣ１はＣＰＵ１１による書き込み動作に相当し、それに続くサイクルＣ２乃至Ｃ４はＲＡＭチェック回路１５によるチェック動作に相当する。
【００２７】
まずサイクルＣ１において、ＣＰＵ１１が書き込み指示信号ＷＲＸをアサート（でアサート）し、同時にアドレスＡＤＤとして信号Ａｄｄ０及びデータＤＡＴＡとして信号Ｄａｔａ０ｗを供給する。ＲＡＭ制御回路２１はこれらの信号を受け取ると、書き込み指示信号ＷＲＸＸ、アドレスＡＸＸ、及びデータＤＸＸとして、受け取った信号をそのままＲＡＭ１２に供給する。
【００２８】
またＲＡＭチェック回路１５のアドレスレジスタ２２には、書き込み指示信号ＷＲＸを取り込み指示信号として、書き込みデータＤａｔａ０ｗが格納される。更にアドレスレジスタ２２には、書き込み指示信号ＷＲＸを取り込み指示信号として、書き込みアドレスＡｄｄ０が格納される。
【００２９】
上記サイクルＣ１において、ＣＰＵ１１からＲＡＭ１２へのデータ書き込み動作が完了する。以下のサイクルＣ２乃至Ｃ３においては、ＲＡＭチェック回路１５によるチェック動作が実行される。
【００３０】
サイクルＣ２において、ＲＡＭチェック回路１５による自動読み出しが実行される。具体的には、ＲＡＭ制御回路２１がＲＡＭ１２へ供給するアドレスＡＸＸとして、アドレスレジスタ２２の内容であるＡｄｄ０を送出する。それと同時に、ＲＡＭ制御回路２１がＲＡＭ１２へ読み出し指示信号ＲＤＸＸをアサート（ＬＯＷでアサート）する。
【００３１】
これにより、ＲＡＭ１２からデータＤＸＸとしてＤａｔａ０ｗが読み出される。読み出されたデータＤａｔａ０ｗは、読み出しデータレジスタ２４にＤａｔａ０ｒとして格納される。
【００３２】
サイクルＣ３において、書き込みデータレジスタ２３の内容であるＤａｔａ０ｗと読み出しデータレジスタ２４の内容であるＤａｔａ０ｒとが比較される。即ち、書き込み動作時にＣＰＵ１１から供給されたＤａｔａ０ｗと、書き込み動作後に書き込み対象アドレスから読み出されたＤａｔａ０ｒ（正常ならＤａｔａ０ｗと同一）とが比較される。
【００３３】
サイクルＣ４において、不良通知が行われる。具体的には、サイクルＣ３において比較したデータ同士が一致していない場合に、比較回路２５の出力がアサートされて、メモリ制御回路１０からＣＰＵ１１に供給される。比較したデータ同士が一致する場合には、比較回路２５の出力はアサートされない。
【００３４】
このようにサイクルＣ１乃至Ｃ４から構成される基本サイクルにより、書き込みデータ動作及び書き込みデータの不良検出動作が実行される。この基本サイクルを必要に応じて繰り返すことにより、異なるアドレスに対する書き込み動作が実行される。
【００３５】
図４は、ＲＡＭ救済回路１６の構成の一例を示す図である。図４において、図１及び図２と同一の構成要素は同一の番号で参照する。図４に示されるメモリ制御回路１０においては、ＲＡＭ救済回路１６に関連する部分のみが示され、ＲＡＭ救済回路１６に関連する部分は省略されている。
【００３６】
図４のＲＡＭ制御回路２１は、ＲＡＭ制御回路２１、不良アドレスレジスタ３１、及び比較回路３２を含む。ＲＡＭチェック回路１５により書き込みデータが不良と判断されると、例えばＲＡＭチェック回路１５からの不良通知信号を取り込み信号として、不良アドレスレジスタ３１がＲＡＭチェック回路１５のアドレスレジスタ２２の内容を取り込む。この動作により、ＲＡＭ救済回路１６の不良アドレスレジスタ３１には書き込み不良が発生した不良アドレスが格納されることになる。
【００３７】
なお不良アドレスレジスタ３１は、複数の不良アドレスに対応できるように複数個のレジスタからなるレジスタセットとして設けられてよい。この場合、アドレスレジスタ２２の内容の転送先であるレジスタを示すポインタを用意しておき、アドレスレジスタ２２の内容を取り込む度に、このポインタの値をインクリメントすることにより、順次新しいレジスタにアドレスレジスタ２２の不良アドレスを格納していくようにすればよい。
【００３８】
ＣＰＵ１１からＲＡＭ１２へのアクセスが発生すると、比較回路３２が、ＣＰＵ１１が指示するアクセス先のアドレスＡＤＤと不良アドレスレジスタ３１の内容とを比較する。即ち、アクセス先のアドレスＡＤＤが、不良アドレスレジスタ３１が保持する不良アドレスの何れかと一致するか否かを判定する。アクセス先のアドレスＡＤＤが不良アドレスと一致すると、比較回路３２はＲＡＭ制御回路２１への切換え信号をアサートする。
【００３９】
比較回路３２からの切換え信号がアサートされると、ＲＡＭ制御回路２１は、アドレスＡＤＤに対するアクセスを救済用ＲＡＭ１３中の所定のアドレスへのアクセスに切り換える。本実施例では、ＲＡＭ１２とは別に救済用ＲＡＭ１３を用意しておき、アドレスの切換えを例えばブロック毎に行うことで、ブロック単位での救済を行う。この構成により、アドレス比較対象をブロック選択アドレス部分に限定することが可能となり、レジスタ及び比較回路の規模を削減することができる。
【００４０】
図５は、図１に示す本発明による半導体集積回路の変形例を示す構成図である。図１において、図５と同一の要素は同一の番号で参照し、その説明は省略する。
【００４１】
図５において、メモリ制御回路１０は、領域設定レジスタ４０を含む。領域設定レジスタ４０は、ＲＡＭ１２内の１つ又は複数の領域を指定するデータを格納するレジスタである。領域設定レジスタ４０に設定するデータにより、例えばある領域の開始アドレスと終了アドレスとを指定する。メモリ制御回路１０は、この領域設定レジスタ４０が指定する領域に対してのみ、ＲＡＭチェック回路１５によるメモリチェック動作とＲＡＭ救済回路１６によるメモリ救済動作とを実行する。
【００４２】
メモリの使用領域には、高い確実性が要求されるデータが格納される領域もあれば、誤りが発生してもそれ程の問題は生じないようなデータが格納される領域もある。ＲＡＭ１２の全てのメモリ領域に対して、上述したようなメモリチェック動作とメモリ救済動作とを実行したのでは、メモリ書き込み速度が低下してシステムの性能が低下してしまう。図５に示すように領域設定レジスタ４０を設け、メモリチェック動作とメモリ救済動作とを実行する対象となるメモリ領域を指定可能とすれば、高い確実性が要求される領域とそうでない領域とを区別して、効率的なメモリ制御を実行することが可能となる。
【００４３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００４４】
例えば、上記実施例の説明においては、ＲＡＭチェック回路１５は書き込みデータをそのまま書き込みデータレジスタ２３に保持しておき、ＲＡＭ１２から読み出したデータとの比較をする構成としたが、例えば書き込みデータについてチェックサムを計算してその値を書き込みデータレジスタ２３に格納しておき、読み出したデータについて計算したチェックサムの値と書き込みデータレジスタ２３に格納してあるチェックサムの値とを比較して、データの誤りを検出するような構成としてもよい。この場合、書き込みデータレジスタ２３の規模を小さくすることができる。
【００４５】
またＤＭＡ転送のように連続してデータを書き込む場合には、データ書き込み対象となるアドレス範囲と書き込みデータのチェックサムとを、それぞれアドレスレジスタ２２と書き込みデータレジスタ２３とに格納しておくような構成としてもよい。ＤＭＡ転送の場合、書き込み動作毎にＲＡＭ１２からデータを読み出してチェックすることはできないので、最後に纏めてデータ誤りの有無を判定することが必要となる。上記のようなチェックサムを用いる構成とすれば、全てのデータではなく、そのチェックサム値だけを保持しておけばよいので、書き込みデータレジスタ２３の規模を大幅に小さくすることができる。
【図面の簡単な説明】
【００４６】
【図１】本発明による半導体集積回路の構成の一例を示す構成図である。
【図２】ＲＡＭチェック回路の構成の一例を示す図である。
【図３】図２の構成の動作を説明するためのタイミング図である。
【図４】ＲＡＭ救済回路の構成の一例を示す図である。
【図５】図１に示す本発明による半導体集積回路の変形例を示す構成図である。
【符号の説明】
【００４７】
１０  メモリ制御回路
１１  ＣＰＵ
１２  ＲＡＭ
１３  救済用ＲＡＭ
２１  ＲＡＭ制御回路
２２  アドレスレジスタ
２３  書き込みデータレジスタ
２４  読み出しデータレジスタ
２５  比較回路
３１  不良アドレスレジスタ
３２  比較回路
４０  領域設定レジスタ
【図１】
2006277133.tif 000003
【図２】
2006277133.tif 000004
【図３】
2006277133.tif 000005
【図４】
2006277133.tif 000006
【図５】
2006277133.tif 000007