(57)【特許請求の範囲】
【請求項１】
データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であって、
前記メモリからデータを読み出す読出手段と、
前記読出手段によって読み出されたデータに擬似エラーを、データが読み出された回数が所定回数に達するごとに注入する注入手段と、
前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定手段と、
前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬似エラーの位置とが一致するか否かを判定する判定手段と、
前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する訂正手段と
を有することを特徴とするメモリ制御装置。
【請求項２】
前記注入手段は、
前記読出手段によって読み出されたデータの所定のビットを反転させることにより擬似エラーを注入することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、前記特定手段を含む誤り訂正回路が故障している旨を前記メモリ制御装置の外部に通知する通知手段をさらに有することを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記特定手段は、
データに付加されている誤り訂正符号を用いて誤り位置を特定することを特徴とする請求項１記載のメモリ制御装置。
【請求項５】
前記訂正手段は、
誤り位置のビットを反転させてエラーを訂正する誤り訂正手段を含むことを特徴とする請求項１記載のメモリ制御装置。
【請求項６】
前記読出手段は、
前記メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、前記ストア処理により書き換えられることがないストア対象外データを前記メモリから読み出すことを特徴とする請求項１記載のメモリ制御装置。
【請求項７】
前記注入手段は、
ストア処理の開始後２回目に前記読出手段によって読み出されたストア対象外データに擬似エラーを注入することを特徴とする請求項６記載のメモリ制御装置。
【請求項８】
前記訂正手段によって出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成する生成手段と、
前記生成手段によって生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成する合成手段と、
前記合成手段によって合成されて得られた誤り訂正符号を前記メモリに書き込む書込手段と
をさらに有することを特徴とする請求項６記載のメモリ制御装置。
【請求項９】
前記注入手段は、
前記メモリが複数のウェイに分割されている場合、いずれか１つのウェイに対応するデータに擬似エラーを注入することを特徴とする請求項１記載のメモリ制御装置。
【請求項１０】
データを記憶するメモリにおけるデータの入出力を制御するメモリ制御方法であって、
前記メモリからデータを読み出す工程と、
前記読み出されたデータに擬似エラーを、データが読み出された回数が所定回数に達するごとに注入する工程と、
前記擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する工程と、
前記特定された誤り位置と前記注入された擬似エラーの位置とが一致するか否かを判定する工程と、
前記判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する工程と
を有することを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置およびメモリ制御方法に関し、特に、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
近年、半導体技術の微細化および高速化に伴って、ＣＰＵ（Central  Processing  Unit：中央処理演算装置）などのプロセッサに搭載されるＲＡＭ（Random  Access  Memory）の記憶素子も微細化したため、ＲＡＭに記憶される情報においてビット反転などの故障が発生することがある。このため、故障に自動的に対処する方法として、ＲＡＳ（Reliability,  Availability,  Serviceability：信頼性、可用性、保守性）制御に関する検討が盛んに行われている。
【０００３】
ＲＡＳ制御においては、例えばＥＣＣ（Error  Correcting  Code：誤り訂正符号）を用いた誤り訂正技術などが重要な役割を担っている。一般的な誤り訂正技術においては、誤り訂正回路によってデータに付加されているＥＣＣが用いられ、データに発生したビット反転などの誤りが訂正される。このような誤り訂正においては、誤り訂正回路が正しく動作することが前提となっているため、誤り訂正回路の信頼性を担保する必要がある。
【０００４】
そこで、ＲＡＭにデータが書き込まれる際に、データに故意にエラーを発生させておき、このデータに対する誤り訂正を実行することにより、誤り訂正回路が正しく動作しているか否かが検証されることがある。また、例えば特許文献１では、ＲＡＭの特定のアドレスに正常なデータを書き込む一方で、正常なデータが書き込まれるアドレスを反転させたアドレスにエラーがあるエラーデータを書き込み、反転アドレスに書き込まれたエラーデータを用いて誤り訂正回路の試験を行うことが開示されている。
【０００５】
【特許文献１】特開平７−８４８８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、ＲＡＭにデータが書き込まれる際にのみ故意にエラーを発生させるため、ＲＡＭがＣＰＵのキャッシュメモリとして使用される場合には、例えばエラーを発生させたデータが読み出される前に書き換えられたりして、必ずしも誤り訂正回路の信頼性が保証されないという問題がある。すなわち、上述した誤り訂正回路の試験においては、ＲＡＭに書き込むデータにエラーを発生させ、このエラーデータに対する読み出し要求が発行されて誤り訂正を実行したときに、エラーが正しく検出または訂正されることが確認されるため、読み出し要求が発行される前にエラーデータが書き換えられてしまえば、読み出し時に読み出されるのはエラーデータではなくなってしまう。
【０００７】
したがって、例えばキャッシュメモリにエラーデータが書き込まれてから読み出されるまでの間隔が比較的長い場合は、誤り訂正回路が正しく動作しているか否かを定期的に検証することができるとは限らず、結果としてＲＡＳ制御の正当な機能が保証されない。
【０００８】
本発明はかかる点に鑑みてなされたものであり、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証することができるメモリ制御装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、メモリ制御装置は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であって、前記メモリからデータを読み出す読出手段と、前記読出手段によって読み出されたデータに擬似エラーを、データが読み出された回数が所定回数に達するごとに注入する注入手段と、前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定手段と、前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬似エラーの位置とが一致するか否かを判定する判定手段と、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する訂正手段とを有する構成を採る。
【発明の効果】
【００２０】
本発明によれば、メモリからデータを読み出し、読み出されたデータに擬似エラーを注入し、擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定し、特定された誤り位置と注入された擬似エラーの位置とが一致するか否かを判定し、判定の結果、誤り位置と擬似エラーの位置とが一致する場合に、誤り位置のエラーが訂正されたデータを出力する。このため、データの読み出し時に擬似エラーを含むエラーの訂正が正常に行われることが確認された場合のみデータを出力し、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証することができる。
【００２１】
また、本発明によれば、データが読み出される回数をカウントし、カウントされた回数が所定回数に達するごとにデータに擬似エラーを注入するため、メモリへのデータの書き込みが行われずデータの読み出しが連続して実行される場合でも、定期的に誤り訂正回路の正当性を検証することができる。
【００２２】
また、本発明によれば、読み出されたデータの所定のビットを反転させることにより擬似エラーを注入するため、読み出された元のデータとは必ず異なるビットが発生し、確実に擬似エラーを注入することができる。
【００２３】
また、本発明によれば、判定の結果、誤り位置と擬似エラーの位置とが一致しない場合に、誤り訂正回路が故障している旨を外部に通知するため、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、ＲＡＳ制御の信頼性を向上することができる。
【００２４】
また、本発明によれば、データに付加されている誤り訂正符号を用いて誤り位置を特定するため、データ中のエラーが発生しているビットを特定し、確実に誤り位置を特定することができる。
【００２５】
また、本発明によれば、誤り位置のビットを反転させてエラーを訂正するため、誤っているビットが正しいビットに変更され、エラーがないデータを得ることができる。
【００２６】
また、本発明によれば、メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き換えられることがないストア対象外データをメモリから読み出すため、ストア対象外データの誤り訂正が正しく行われることを担保することができる。
【００２７】
また、本発明によれば、ストア処理の開始後２回目に読み出されたストア対象外データに擬似エラーを注入するため、ストア処理に伴う誤り訂正符号の更新に用いられるストア対象外データの誤り訂正が正しく行われることを担保することができ、正確な誤り訂正符号の更新を行うことができる。
【００２８】
また、本発明によれば、出力されるストア対象外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成し、生成されたストア対象外データの誤り訂正符号およびストアデータの誤り訂正符号を合成し、合成されて得られた誤り訂正符号をメモリに書き込む。このため、ストア処理によってデータの一部が書き換えられても、正常に動作する誤り訂正回路によって誤り訂正されたデータを元に誤り訂正符号が更新され、正確な誤り訂正符号の更新を行うことができる。
【００２９】
また、本発明によれば、メモリが複数のウェイに分割されている場合、いずれか１つのウェイに対応するデータに擬似エラーを注入するため、メモリが例えばセットアソシアティブ方式のキャッシュメモリである場合にも、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、ＣＰＵにキャッシュメモリが１つのみ備えられている場合を例に挙げて説明するが、本発明はこれに限定されず、２次以上のキャッシュメモリがある場合にも、それぞれのキャッシュメモリに対応する誤り訂正回路の検証に適用することができる。
【００３１】
図１は、本発明の一実施の形態に係るＣＰＵの概略構成を示すブロック図である。図１に示すＣＰＵは、キャッシュ制御部１００、キャッシュ２００、命令処理部３００、および演算処理部４００を有している。また、このＣＰＵは、メインメモリ５００に接続されている。
【００３２】
キャッシュ制御部１００は、命令処理部３００から発行される命令に応じて、キャッシュ２００に対するデータの書き込みおよび読み出しを制御する。また、キャッシュ制御部１００は、キャッシュ２００から読み出されたデータの誤り訂正を行うとともに、データの誤り訂正を行う誤り訂正回路が正しく機能しているか否かを判定する。キャッシュ制御部１００の具体的な構成については、後に詳述する。
【００３３】
キャッシュ２００は、メインメモリ５００上の頻繁に使用されるデータを記憶するとともに、記憶されたデータに付加されるＥＣＣ（Error  Correcting  Code）を記憶する。具体的には、キャッシュ２００は、データを記憶するデータＲＡＭおよびＥＣＣを記憶するＥＣＣＲＡＭを有しており、それぞれのＲＡＭにデータおよびＥＣＣを記憶する。なお、キャッシュ２００は、データのタグ情報を記憶するタグＲＡＭなどをさらに有していても良い。
【００３４】
命令処理部３００は、プログラムなどの命令を解釈し、必要な演算処理の実行を演算処理部４００に指示するとともに、必要なデータの読み出しおよび書き込みをキャッシュ制御部１００へ指示する。演算処理部４００は、命令処理部３００からの指示に応じて、キャッシュ２００などから読み出されたデータを用いた演算処理を行う。
【００３５】
メインメモリ５００は、主記憶装置であって、ＣＰＵにおける処理に必要なデータやプログラムを記憶している。メインメモリ５００は、キャッシュ２００と比較すると大容量であるが、アクセス速度が遅い。
【００３６】
図２は、本実施の形態に係るキャッシュ制御部１００の要部構成を示すブロック図である。同図に示すキャッシュ制御部１００は、接続部１０１、読出指示部１０２、カウンタ部１０３、読出部１０４、擬似エラー注入部１０５、誤り位置特定部１０６、誤り訂正部１０７、判定部１０８、ＥＣＣ生成部１０９、ＥＣＣ合成部１１０、ストアデータ取得部１１１、および書込部１１２を有している。
【００３７】
接続部１０１は、命令処理部３００と接続され、命令処理部３００からのデータの読み出し命令などの命令および書き換えられたストアデータを読出指示部１０２へ通知する一方、キャッシュ２００から読み出されたデータおよび誤り訂正回路が正しく機能しているか否かの判定結果を命令処理部３００へ出力する。
【００３８】
読出指示部１０２は、命令処理部３００からデータの読み出し命令またはストア命令が出された場合、その旨をカウンタ部１０３へ通知するとともに、読み出すデータのアドレスを読出部１０４へ指示する。
【００３９】
カウンタ部１０３は、読出指示部１０２から読み出し命令の通知を受けた回数をカウントし、カウンタ値が所定のしきい値に達すると擬似エラー注入部１０５へ擬似エラー注入を指示するとともにカウンタ値をリセットする。また、カウンタ部１０３は、読出指示部１０２からストア命令の通知を受けると、２回目のデータ読み出し時に擬似エラー注入をするよう擬似エラー注入部１０５へ指示する。ストア処理時には、ストアデータがストアされる前に、書き換えられることがないストア対象外データが一旦キャッシュ２００から読み出されて（１回目のデータ読み出し）エラー検出が行われ、エラーがなければストアデータがストアされ、次いでストア対象外データがキャッシュ２００から再び読み出されて（２回目のデータ読み出し）、ストアデータとともにＥＣＣの生成が行われる。このため、カウンタ部１０３は、２回目のデータ読み出し時に擬似エラー注入を指示する。
【００４０】
読出部１０４は、読出指示部１０２から指示されるアドレスのデータをキャッシュ２００から読み出し、擬似エラー注入部１０５へ出力する。具体的には、読出部１０４は、命令処理部３００から出される読み出し命令に含まれるアドレスのデータ、または、ストア命令に含まれるアドレスのストア対象外データを読み出す。
【００４１】
擬似エラー注入部１０５は、カウンタ部１０３から擬似エラー注入が指示されると、読出部１０４から出力されるデータに擬似エラーを注入する。具体的には、擬似エラー注入部１０５は、読出部１０４から出力されるデータの所定のビットを反転させることにより、擬似エラーを注入する。上述したように、カウンタ部１０３からの擬似エラー注入の指示は、所定数の読み出し命令が出された場合やストア命令が出された場合に行われるため、擬似エラー注入部１０５は、少なくとも所定数の読み出し命令が出されるごとに１回擬似エラーを注入することになる。また、擬似エラー注入部１０５は、擬似エラーを注入した位置を判定部１０８へ報告する。
【００４２】
誤り位置特定部１０６は、データに付加されているＥＣＣを用いて、データ中のエラーが発生しているビットの位置を特定し、特定された誤り位置を誤り訂正部１０７および判定部１０８へ通知する。
【００４３】
誤り訂正部１０７は、誤り訂正を続行する旨が判定部１０８から指示された場合、誤り位置特定部１０６から通知された誤り位置のビットを反転させて、データ中の誤りを訂正する。そして、誤り訂正部１０７は、誤り訂正後のデータを接続部１０１またはＥＣＣ生成部１０９へ出力する。すなわち、誤り訂正部１０７は、命令処理部３００から読み出し命令が出された場合は、誤り訂正後のデータを接続部１０１へ出力し、ストア命令が出された場合は、誤り訂正後のストア対象外データをＥＣＣ生成部１０９へ出力する。なお、誤り位置特定部１０６および誤り訂正部１０７は、本実施の形態における誤り訂正回路を形成している。
【００４４】
判定部１０８は、擬似エラー注入部１０５から報告された擬似エラーの注入位置と誤り位置特定部１０６から通知された誤り位置とが一致するか否かを判定し、両者が一致すれば、誤り位置特定部１０６による誤り位置の特定が正確であると判断し、誤り訂正続行を誤り訂正部１０７へ指示する。また、判定部１０８は、擬似エラー注入位置と誤り位置とが一致しない場合、誤り位置特定部１０６に故障が発生していると判定し、誤り訂正回路が故障している旨の判定結果を接続部１０１へ出力する。
【００４５】
ＥＣＣ生成部１０９は、誤り訂正部１０７から出力されるストア対象外データおよびストアデータ取得部１１１から出力されるストアデータそれぞれについてＥＣＣを生成し、それぞれのＥＣＣをＥＣＣ合成部１１０へ出力する。
【００４６】
ＥＣＣ合成部１１０は、ＥＣＣ生成部１０９から出力されるストア対象外データのＥＣＣとストアデータのＥＣＣとを合成（マージ）することにより、データの一部が書き換えられるストア処理が行われた場合の新たなＥＣＣを生成し、書込部１１２へ出力する。
【００４７】
ストアデータ取得部１１１は、命令処理部３００からストア命令が出された場合に、書き換えられたストアデータを接続部１０１から取得し、ＥＣＣ生成部１０９および書込部１１２へ出力する。
【００４８】
書込部１１２は、ストアデータ取得部１１１から出力されるストアデータをキャッシュ２００へ書き込む。また、書込部１１２は、ＥＣＣ合成部１１０から出力される新たなＥＣＣをキャッシュ２００へ書き込む。
【００４９】
次いで、上記のように構成されたキャッシュ制御部１００の読み出し処理時の動作について、図３に示すフロー図を参照しながら説明する。
【００５０】
まず、初期状態では、カウンタ部１０３のカウンタ値が０にリセットされている（ステップＳ１０１）。このとき、命令処理部３００からキャッシュ制御部１００へデータの読み出し命令が出されると（ステップＳ１０２）、読み出し命令は、接続部１０１を介して読出指示部１０２へ入力される。そして、読出指示部１０２によって、読み出すデータのアドレスが読出部１０４へ指示されるとともに、読み出し処理が実行される旨がカウンタ部１０３へ通知される。
【００５１】
そして、読出部１０４によって、指示されたアドレスのデータがキャッシュ２００から読み出されるとともに（ステップＳ１０３）、読み出し処理実行の旨が通知されると、カウンタ部１０３によってカウンタ値が１インクリメントされる（ステップＳ１０４）。カウンタ値が１インクリメントされると、カウンタ部１０３によって、カウンタ値が所定のしきい値に達したか否かが判定される（ステップＳ１０５）。
【００５２】
この判定の結果、カウンタ値が所定のしきい値に達していない場合（ステップＳ１０５Ｎｏ）、読出部１０４によってキャッシュ２００から読み出されたデータは、擬似エラー注入部１０５を経由して誤り訂正回路へ出力され、誤り位置特定部１０６によってエラーの位置が検出され、誤り訂正部１０７によってエラーが検出された位置のビットが反転されることにより誤り訂正が行われ（ステップＳ１０９）、誤り訂正後のデータが接続部１０１を介して命令処理部３００へ出力される。すなわち、カウンタ部１０３のカウンタ値が所定のしきい値に達していない場合は、誤り訂正回路が正常に機能しているという前提の下でデータの誤り訂正が行われ、読み出し処理が実行される。そして、この読み出し処理の実行後、命令処理部３００による次の読み出し命令が待機される。
【００５３】
ここでは、再び命令処理部３００からキャッシュ制御部１００へデータの読み出し命令が出された（ステップＳ１０２）ものとして説明を続ける。この場合も、読み出し命令は、接続部１０１を介して読出指示部１０２へ入力され、読出指示部１０２からの指示により、読出部１０４によってデータがキャッシュ２００から読み出されるとともに（ステップＳ１０３）、カウンタ部１０３によってカウンタ値が１インクリメントされる（ステップＳ１０４）。そして、カウンタ部１０３によって、カウンタ値が所定のしきい値に達したか否かが判定される（ステップＳ１０５）。
【００５４】
この判定の結果、カウンタ値が所定のしきい値に達した場合（ステップＳ１０５Ｙｅｓ）、カウンタ部１０３から擬似エラー注入部１０５に対して、データに擬似エラーを注入する旨の指示が出され、読出部１０４によってキャッシュ２００から読み出されたデータが擬似エラー注入部１０５へ出力されると、擬似エラー注入部１０５によって、データに擬似エラーが注入される（ステップＳ１０６）。この擬似エラーは、擬似エラー注入部１０５によって、データの所定のビットが反転されることによって注入される。擬似エラー注入部１０５によって擬似エラーが注入された位置は、判定部１０８へ報告される。
【００５５】
ここで、擬似エラー注入部１０５によるキャッシュ２００から読み出されたデータへの擬似エラーの注入は、カウンタ部１０３のカウンタ値が所定のしきい値に達するたびに、換言すれば、命令処理部３００から出される読み出し命令の数が所定数に達するたびに実行されるため、命令処理部３００から連続して読み出し命令が出されても、定期的に誤り訂正回路の正当性を検証することができ、ＲＡＳ制御の正当な機能を保証することができる。
【００５６】
そして、擬似エラーが注入されたデータは、誤り訂正回路内の誤り位置特定部１０６へ出力され、誤り位置特定部１０６によって、データに付加されたＥＣＣが用いられることにより、エラーが発生している誤り位置が特定される（ステップＳ１０７）。ここで、擬似エラー注入部１０５によって擬似エラーが注入されている場合、誤り位置特定部１０６が正しくエラーの位置を特定していれば、擬似エラー注入部１０５が注入した擬似エラーの位置においてエラーが検出されるはずである。そこで、誤り位置特定部１０６によって誤り位置が特定されると、擬似エラーの位置と比較するために、誤り位置が判定部１０８へ通知される。また、データと誤り位置の情報は、誤り訂正部１０７へも出力される。
【００５７】
判定部１０８に誤り位置が通知されると、判定部１０８によって、誤り位置が擬似エラー注入部１０５から報告された擬似エラーの位置と比較される（ステップＳ１０８）。この比較の結果、誤り位置が擬似エラーの位置と一致していれば（ステップＳ１０８Ｙｅｓ）、誤り位置特定部１０６が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部１０７に対して指示される。
【００５８】
そして、誤り訂正部１０７によって、誤り位置特定部１０６から出力されたデータにおいて誤り位置のビットが反転されることにより、データの誤り訂正が行われる（ステップＳ１０９）。誤り訂正後のデータは、誤り訂正部１０７から接続部１０１経由で命令処理部３００へ出力され、読み出し命令に応じたデータの読み出し処理が完了する。
【００５９】
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ（ステップＳ１０８Ｎｏ）、誤り位置特定部１０６が正常に機能しておらず、誤り訂正回路による誤り訂正によってデータにさらなるエラーが生じると判断され、誤り訂正回路が故障している旨の判定結果が接続部１０１経由で命令処理部３００へ出力され、誤り訂正回路の故障が通知される（ステップＳ１１０）。誤り訂正回路の故障が命令処理部３００へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、ＲＡＳ制御の信頼性を向上することができる。
【００６０】
次に、本実施の形態に係るキャッシュ制御部１００のストア処理時の動作について、図４に示すフロー図を参照しながら説明する。なお、図４において、図３と同じ部分には同じ符号を付し、その詳しい説明を省略する。
【００６１】
まず、命令処理部３００からキャッシュ制御部１００へデータのストア命令が出されると（ステップＳ２０１）、ストア命令は、接続部１０１を介して読出指示部１０２へ入力される。そして、読出指示部１０２によって、書き換えられるストアデータ以外のデータであるストア対象外データのアドレスが読出部１０４へ指示されるとともに、ストア処理が実行される旨がカウンタ部１０３へ通知される（ステップＳ２０２）。
【００６２】
そして、読出部１０４によって、アドレスを指示されたストア対象外データがキャッシュ２００から読み出されるとともに（ステップＳ２０３）、ストア処理実行の旨が通知されると、カウンタ部１０３によって、２回目のストア対象外データ読み出し時に擬似エラーを注入するよう擬似エラー注入部１０５へ指示が出される。このため、読出部１０４によって今回読み出されたストア対象外データは、擬似エラー注入部１０５による処理を受けることなく、誤り位置特定部１０６によって誤り位置が特定され、特定された誤り位置のビットが誤り訂正部１０７によって反転されることにより誤り訂正が行われる（ステップＳ２０４）。
【００６３】
この誤り訂正回路における誤り訂正の過程で、ストア対象外データにエラーがないことが確認されると、ストアデータ取得部１１１によって、命令処理部３００から接続部１０１へ出力されたストアデータが取得され、ストアデータは、キャッシュ２００への書き込み指示とともに書込部１１２へ出力され、書込部１１２によってデータのストアが行われる（ステップＳ２０５）。また、ストアデータは、ストアデータ取得部１１１からＥＣＣ生成部１０９へ出力される。
【００６４】
書込部１１２によるデータのストアが完了すると、読出部１０４によって再度ストア対象外データがキャッシュ２００から読み出される（ステップＳ２０６）。そして、読み出されたストア対象外データは、擬似エラー注入部１０５へ出力され、今回の読み出しが２回目であるため、擬似エラー注入部１０５によって擬似エラーが注入される（ステップＳ１０６）。また、擬似エラーが注入された位置は、判定部１０８へ報告される。
【００６５】
そして、擬似エラーが注入されたストア対象外データは、誤り訂正回路内の誤り位置特定部１０６によってＥＣＣが用いられることにより、エラーが発生している誤り位置が特定され（ステップＳ１０７）、誤り位置が判定部１０８および誤り訂正部１０７へ通知される。判定部１０８に誤り位置が通知されると、判定部１０８によって、誤り位置が擬似エラー注入部１０５から報告された擬似エラーの位置と比較される（ステップＳ１０８）。この比較の結果、誤り位置が擬似エラーの位置と一致していれば（ステップＳ１０８Ｙｅｓ）、誤り位置特定部１０６が正常に機能しており、誤り訂正回路の正当性が保証されると判断され、誤り訂正の続行が誤り訂正部１０７に対して指示される。
【００６６】
そして、誤り訂正部１０７によって、誤り位置特定部１０６から出力されたストア対象外データにおいて誤り位置のビットが反転されることにより、ストア対象外データの誤り訂正が行われる（ステップＳ１０９）。誤り訂正後のストア対象外データは、誤り訂正部１０７からＥＣＣ生成部１０９へ出力される。
【００６７】
これにより、ＥＣＣ生成部１０９には、ストアデータおよびストア対象外データが入力され、ＥＣＣ生成部１０９によって、ストアデータのＥＣＣおよびストア対象外データのＥＣＣが生成される（ステップＳ２０７）。これらのＥＣＣは、ＥＣＣ合成部１１０によって合成（マージ）され（ステップＳ２０８）、ストア処理後のデータのＥＣＣが得られる。そして、ストア処理後のデータのＥＣＣは、書込部１１２によって、キャッシュ２００内のＥＣＣＲＡＭに書き込まれ、ストア命令に応じたデータのストア処理およびストア処理に応じたＥＣＣの更新が完了する。
【００６８】
一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置と一致していなければ（ステップＳ１０８Ｎｏ）、誤り位置特定部１０６が正常に機能しておらず、誤り訂正回路による誤り訂正によってストア対象外データにさらなるエラーが生じ、正しいＥＣＣが生成されないと判断され、誤り訂正回路が故障している旨の判定結果が接続部１０１経由で命令処理部３００へ出力され、誤り訂正回路の故障が通知される（ステップＳ１１０）。誤り訂正回路の故障が命令処理部３００へ通知されることにより、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すことができ、ＲＡＳ制御の信頼性を向上することができる。
【００６９】
以上のように、本実施の形態によれば、所定数の読み出し命令が出されるたび、またはストア命令が出されるたびに、キャッシュから読み出されるデータに擬似エラーを注入し、擬似エラーが注入されたデータの誤り位置を誤り訂正回路にて特定し、特定された誤り位置が擬似エラーの位置と一致するか否か判定する。このため、誤り位置と擬似エラーの位置が一致すれば誤り訂正回路が正常に機能していると判断することができる一方、誤り位置と擬似エラーの位置が一致しなければ誤り訂正回路の故障と判断することができ、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証することができる
【００７０】
なお、上記一実施の形態においては、キャッシュメモリからのデータの読み出し時に擬似エラーを注入するものとしたが、その他の種々のメモリからのデータの読み出し時に擬似エラーを注入し、誤り訂正回路の正当性を検証することもできる。また、キャッシュメモリが例えばセットアソシアティブ方式で構成されており、複数のウェイを有する場合には、擬似エラー注入時にいずれか１つのウェイを指定し、指定されたウェイのデータに擬似エラーを注入するようにしても良い。
【産業上の利用可能性】
【００７１】
本発明は、定期的かつ確実に誤り訂正回路の正当性を検証し、ＲＡＳ制御の正当な機能を保証する場合に適用することができる。
【図面の簡単な説明】
【００７２】
【図１】図１は、本発明の一実施の形態に係るＣＰＵの概略構成を示すブロック図である。
【図２】図２は、一実施の形態に係るキャッシュ制御部の要部構成を示すブロック図である。
【図３】図３は、一実施の形態に係るキャッシュ制御部の読み出し処理時の動作を示すフロー図である。
【図４】図４は、一実施の形態に係るキャッシュ制御部のストア処理時の動作を示すフロー図である。
【符号の説明】
【００７３】
１００  キャッシュ制御部
１０１  接続部
１０２  読出指示部
１０３  カウンタ部
１０４  読出部
１０５  擬似エラー注入部
１０６  誤り位置特定部
１０７  誤り訂正部
１０８  判定部
１０９  ＥＣＣ生成部
１１０  ＥＣＣ合成部
１１１  ストアデータ取得部
１１２  書込部
２００  キャッシュ
３００  命令処理部
４００  演算処理部
５００  メインメモリ
【図１】
0004834721.tif 000002
【図２】
0004834721.tif 000003
【図３】
0004834721.tif 000004
【図４】
0004834721.tif 000005