(57)【要約】【課題】簡便でより正確なメモリ検査対象の決定方法を提供し、データの信頼性を向上させる。【解決手段】アクセス要求を出力するＣＰＵと、アクセス要求に対応するデータをＣＰＵに出力するキャッシュメモリと、キャッシュメモリからアクセス要求を受信し、アクセス要求に対応するデータをキャッシュメモリに出力するメインメモリと、メインメモリを検査するアクセス制御部と、キャッシュメモリが所定期間内にアクセスしたアドレスを記録するキャッシュアクセス範囲記憶部と、アクセス制御部にメインメモリの検査対象範囲を出力するメインメモリ検査対象アドレス決定部であって、キャッシュアクセス範囲記憶部に記録された所定期間内にアクセスされたアドレスを検査対象範囲から省略するメインメモリ検査対象アドレス決定部と、を有する。【選択図】  図１
2016148964.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求を出力するＣＰＵと、
前記アクセス要求に対応するデータを前記ＣＰＵに出力するキャッシュメモリと、
前記キャッシュメモリから前記アクセス要求を受信し、前記アクセス要求に対応するデータを前記キャッシュメモリに出力するメインメモリと、
前記メインメモリを検査するアクセス制御部と、
前記キャッシュメモリが所定期間内にアクセスしたアドレスを記録するキャッシュアクセス範囲記憶部と、
前記アクセス制御部に前記メインメモリの検査対象範囲を出力するメインメモリ検査対象アドレス決定部であって、前記キャッシュアクセス範囲記憶部に記録された前記所定期間内にアクセスされたアドレスを前記検査対象範囲から省略する前記メインメモリ検査対象アドレス決定部と、
を有する計算装置。
【請求項２】
請求項１に記載の計算装置であって、
前記キャッシュアクセス範囲記憶部は、所定の個数の前記アドレスを記録し、前記キャッシュメモリが前記所定の個数を超えてアクセスした場合は、前記所定の個数のアドレスのうち、より過去に記録された前記アドレスから上書きして記録する計算装置。
【請求項３】
請求項１に記載の計算装置であって、
前記アクセス制御部は、
前記メインメモリの検査対象範囲を全て検査する第１の検査と、
前記検査対象範囲のうち、前記メインメモリ検査対象アドレス決定部により前記所定期間内にアクセスされたアドレスを省略して検査する第２の検査と、
を行う計算装置。
【請求項４】
請求項１に記載の計算装置であって、更に、
一定の時間が経過すると、前記キャッシュアクセス範囲記憶部に対して、前記記録されたアドレスを初期化するための初期化要求を出力する初期化タイマーを備える計算装置。
【請求項５】
請求項１ないし請求項４のいずれかの前記計算装置を備えた保安装置。
【請求項６】
アクセス要求を出力するＣＰＵと、
前記アクセス要求に対応するデータを前記ＣＰＵに出力するキャッシュメモリと、
前記キャッシュメモリから前記アクセス要求を受信し、前記アクセス要求に対応するデータを前記キャッシュメモリに出力するメインメモリと、
前記メインメモリを検査するアクセス制御部と、
前記キャッシュメモリが所定期間内にアクセスしたアドレスを記録するキャッシュアクセス範囲記憶部と、を有し、
前記メインメモリの検査対象範囲を検査する際に、前記キャッシュアクセス範囲記憶部に記録された前記所定期間内にアクセスされたアドレスか否かを検知し、前記所定期間内にアクセスされたアドレスである場合は、検査を省略する計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算装置、計算方法、及び保安装置に関する。
【背景技術】
【０００２】
情報処理装置に搭載されるメモリでは、データを格納しているうちに、ソフトエラーなどによりデータが誤った値となってしまう場合がある。このエラー訂正を通常のアクセスとは独立して行うのがメモリパトロールである。メモリパトロールではＯＳやＣＰＵリソースを使用しないため、簡易かつ高速にデータのエラー検出および訂正を行うことが可能である。近年ではより早期にデータのエラー検出および訂正を行い、データの信頼性を高く保つため、特開２０１４−５９８２１号公報（特許文献１）に記載の技術がある。この公報には、「ＣＰＵと、複数のメモリブロックからなるメモリと、周期的に前記メモリブロックの誤り検出および誤り訂正を行うメモリパトロール手段と、メモリパトロールの実行を制御するメモリパトロール制御手段と、前記ＣＰＵから前記メモリブロックへのアクセス回数をカウントするアクセス頻度算出手段とを備え、前記アクセス回数が所定値を超えた場合に当該メモリブロックに対する前記メモリパトロールの回数を減らす。」という記載がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−５９８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、データの書換えが頻繁に行われるメモリブロックではエラーの発生確率が低いという事実に基づいている。すなわちＣＰＵからのアクセスが多いメモリブロックではエラーの発生が少ないため、メモリパトロールを省略することが可能である。省略によりメモリパトロールとＣＰＵによるアクセスとの競合する確率が低くなる。また、省略で浮いたリソースをエラー発生確率の高い（アクセスの少ない）メモリブロックに対するメモリパトロール強化に使うことができる。その結果データの信頼性が向上することになる。
しかし、特許文献１の技術では、メモリパトロール対象の各メモリブロックの大きさの決定に二点の問題点が生じる。
一点目は、メモリブロックの大きさを必要以上に大きく設定すると、メモリブロックの中でデータの書換え頻度が少ないビットとデータの書換え頻度が多いビットが生まれてしまうということである。
二点目は、メモリブロックの大きさを必要以上に小さく設定することによって、アクセス頻度算出手段のメモリブロック番号とアクセス頻度を記憶および算出のためのハードウェア量が多くなってしまうということである。
そこで、本発明では、より簡便なメモリ検査が可能な計算装置、計算方法及び保安装置を提供する。特に、メモリのエラー発生確率の高い範囲をメモリ検査することで、さらにデータの信頼性を向上させることができる。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、代表的な本発明の計算装置の一つは、アクセス要求を出力するＣＰＵと、アクセス要求に対応するデータをＣＰＵに出力するキャッシュメモリと、キャッシュメモリからアクセス要求を受信し、アクセス要求に対応するデータをキャッシュメモリに出力するメインメモリと、メインメモリを検査するアクセス制御部と、キャッシュメモリが所定期間内にアクセスしたアドレスを記録するキャッシュアクセス範囲記憶部と、アクセス制御部にメインメモリの検査対象範囲を出力するメインメモリ検査対象アドレス決定部であって、キャッシュアクセス範囲記憶部に記録された所定期間内にアクセスされたアドレスを検査対象範囲から省略するメインメモリ検査対象アドレス決定部と、を有する。
【発明の効果】
【０００６】
本発明によれば、より簡便なメモリ検査が可能な計算装置、計算方法、及び保安装置を提供できる。
【０００７】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。  
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例のメモリ検査方法を有した計算装置のブロック図である。
【図２】本発明のメモリ検査対象範囲のイメージ図である。
【図３】本発明のメモリ検査方法のフローチャートである。
【図４】本発明のキャッシュアクセス範囲記憶部の記憶領域へのアドレス記憶の順番を示した図である。
【図５】本発明の高速な検索方法をもつキャッシュアクセス範囲記憶部の内部を示した図である。
【図６】本発明の一実施例のメモリ検査方法を有した計算装置にキャッシュアクセス範囲記憶部の初期化タイマーを追加したブロック図である。
【図７】本発明の一実施例のメモリ検査方法とデータ照合機能を有した計算装置のブロック図である。
【発明を実施するための形態】
【０００９】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１０】
本発明は、メインメモリのメモリ検査（メモリパトロール）を行う範囲のうち、リード要求によってキャッシュメモリに読み出された領域は、しばらく読み出しの行われていない領域よりもメモリ故障が起きにくいことに着目し、領域によってメモリ検査を適宜省略し、メモリ検査の効率化、或いはメモリの信頼性向上を図るものである。例えば、鉄道用の保安装置に適用すれば、信頼性を担保しつつ、メモリ検査を効率化することができる。
【００１１】
図１は、本発明の一実施例である高効率なメモリ検査を行う計算装置のブロック図である。
計算装置１００は、ＣＰＵ１０１とキャッシュメモリ１０２、メインメモリ１０３、誤り検出機能付きアクセス制御部１０４、キャッシュアクセス範囲記憶部１０５、メインメモリ検査対象アドレス決定部１０６を有する。
【００１２】
次に、各装置または部の処理を説明する。
ＣＰＵ１０１は、キャッシュメモリ１０２にアクセス要求（以下、アクセス要求とは、リード要求もしくはライト要求のことであり、リード要求はリード指示、アドレスを含む信号であり、ライト要求はライト指示、アドレス、データを含む信号とする。）を出力し、アクセス要求がリード要求の場合、キャッシュメモリ１０２からリード要求に対するデータの入力を受ける。誤り検出機能付きアクセス制御部１０４からエラー検知の入力を受けると割り込み処理をする。
キャッシュメモリ１０２は、ＣＰＵ１０１からアクセス要求の入力を受けると、アクセス要求の中のアドレスとキャッシュメモリ１０２に記憶されているアドレスを比較する。
アクセス要求の中のアドレスとキャッシュメモリ１０２に記憶されているアドレスの比較が一致かつアクセス要求がリード要求ならば、ＣＰＵ１０１にリード要求に対するデータを出力する。
アクセス要求の中のアドレスとキャッシュメモリ１０２に記憶されているアドレスの比較が不一致ならば、誤り検出機能付きアクセス制御部１０４にアクセス要求を出力する。上述の比較が不一致かつアクセス要求がリード要求の場合、キャッシュアクセス範囲記憶部１０５にリード要求の中のリード指示とアドレスを出力する。そして、誤り検出機能付きアクセス制御部１０４からリード要求に対するデータの入力を受け、ＣＰＵ１０１にリード要求に対するデータを出力する。
アクセス要求の中のアドレスとキャッシュメモリ１０２に記憶されているアドレスの比較が一致不一致にかかわらず、アクセス要求がライト要求ならば、アクセス要求の中のアドレスとデータを記憶し、適時、誤り検出機能付きアクセス制御部１０４に出力する。
【００１３】
キャッシュアクセス範囲記憶部１０５は、キャッシュメモリ１０２からリード要求の中のリード指示の入力を受けると、リード要求の中のアドレスを記憶する。リード要求の中のアドレスを記憶するための記憶領域がなくなると、最も過去に記憶されたリード要求の中のアドレスの記憶領域からリード要求の中のアドレスを上書きしていく。メインメモリ検査対象アドレス決定部１０６からメインメモリ検査対象候補アドレスの入力を受けると、メインメモリ検査対象候補アドレスがキャッシュアクセス範囲記憶部１０５に記憶されているアドレスからキャッシュメモリ１０２が誤り検出機能付きアクセス制御部１０４から入力を受けるリード要求に対するデータのデータ長（例えばキャッシュラインサイズ）内に該当するか検索する。該当ならば、メインメモリ検査対象アドレス決定部１０６に該当を意味する信号を出力する。非該当ならば、メインメモリ検査対象アドレス決定部１０６に非該当を意味する信号を出力する。
【００１４】
メインメモリ検査対象アドレス決定部１０６は、キャッシュアクセス範囲記憶部１０５にメインメモリ検査対象候補アドレスを出力すると、キャッシュアクセス範囲記憶部１０５から該当を意味する信号もしくは非該当を意味する信号の入力を受ける。該当を意味する信号ならば、キャッシュアクセス範囲記憶部１０５に次のメインメモリ検査対象候補アドレスを出力する。非該当を意味する信号ならば、誤り検出機能付きアクセス制御部１０４にメインメモリ検査対象アドレスを出力する。
【００１５】
誤り検出機能付きアクセス制御部１０４は、キャッシュメモリ１０２からアクセス要求の入力を受けると、メインメモリ１０３にアクセス要求を出力する。アクセス要求がリード要求ならば、メインメモリ１０３からリード要求に対するデータの入力を受け、キャッシュメモリ１０２にリード要求に対するデータを出力する。また、メインメモリ検査対象アドレス決定部１０６からメインメモリ検査対象アドレスの入力を受けると、メインメモリ１０３にリード要求を出力する。メインメモリ１０３からリード要求に対するデータの入力を受け、リード要求に対するデータを検査する。データに誤りがあることを検出すると、ＣＰＵ１０１にエラー検知を出力する。本発明においては、誤り検出機能付きアクセス制御部１０４は、メモリ検出を行う主体としてのアクセス制御部として機能していればよい。
【００１６】
メインメモリ１０３は、誤り検出機能付きアクセス制御部１０４からアクセス要求の入力を受けると、アクセス要求がリード要求ならば、誤り検出機能付きアクセス制御部１０４にリード要求に対するデータを出力する。アクセス要求がライト要求ならば、メインメモリ検査用の符号をライト要求の中のデータに付加して記憶する。誤り検出機能付きアクセス制御部１０４からリード要求の入力を受けると、誤り検出機能付きアクセス制御部１０４にリード要求に対するデータを出力する。
【００１７】
次に、図２、図３を用いて、高効率なメモリ検査方法について更に具体的に説明する。
図２は、メインメモリ１０３内のメモリ検査対象範囲２００の求め方を示すイメージである。最初のメモリ検査位置２０２から最後のメモリ検査位置２０３まで順にメモリ検査を行う。本発明では、メモリ検査対象外範囲２０１の検査を省略し、スキップすることで、より簡便なメモリ検査を可能とする。メモリ検査対象範囲２００の対象とする範囲は、メインメモリの全領域としてもよいし、メモリの領域の大きさに応じて、領域を適宜ブロックに区切ってもよい。
【００１８】
図３は、本実施例でのメモリ検査のフローチャートを示す。
ステップ３００：メモリ検査開始する。
ステップ３０１：ポインタを最初のアドレスにする。図２であればポインタを最初のメモリ検査位置２０２にすることに当たる。
ステップ３０２：ポインタが示すアドレスがメモリ検査対象範囲かを調べる。図２であればメモリ検査対象外範囲２０１に入っていないかを調べることに当たる。ＹＥＳであれば、ステップ３０３へ、ＮＯであればステップ３０４へ進む。
ステップ３０３：メモリ検査する。
ステップ３０４：ポインタが最後のアドレスを示していないかを調べる。図２であれば最後のメモリ検査位置２０３を示していないかを調べるに当たる。ＹＥＳであれば、ステップ３０５へ、ＮＯであればステップ３０１へ進む。
ステップ３０５：ポインタを次のアドレスにする。図２であればポインタを次アドレスへの移動２０４にすることに当たる。その後、ステップ３０２へ進む。
【００１９】
次にキャッシュアクセス範囲記憶部の容量の算出式を示す。最大メモリ検査対象外率は、
キャッシュアクセス範囲記憶部の容量の兼ね合いで決まる。
〔キャッシュアクセス範囲記憶部の容量〕＝
〔格納アドレス件数〕×〔アドレス長〕＝
〔メモリ検査対象範囲〕×〔最大メモリ検査対象外率〕÷〔キャッシュメモリ１０２が誤り検出機能付きアクセス制御部１０４から入力を受けるデータ長〕×〔アドレス長〕
なお、メモリ検査を行うごとにメモリ検査対象外範囲２０１をスキップしても良いし、メモリ検査対象範囲２００を全て検査する第１の検査と、上述のようにメモリ検査対象外範囲２０１を省略する第２の検査を選択して実施してもよい。より信頼度が求められる場合は、第１の検査の頻度を多くすれば良いし、より効率を重視する場合には第２の頻度を多く設定すれば良い。
【００２０】
次に、図４、図５を用いて、図１のキャッシュアクセス範囲記憶部１０５を説明する。
例として図４に示すとおりキャッシュアクセス範囲記憶部１０５の記憶領域４００があり、アドレスを三つまで記憶する領域をもつとする。最初に受けたアドレスは記憶領域４０１へ、二番目に受けたアドレスは記憶領域４０２へ、三番目に受けたアドレスは記憶領域４０３へと、記憶領域４０１、記憶領域４０２、記憶領域４０３の順番で記憶される。記憶領域４０１、記憶領域４０２、記憶領域４０３がすべて記憶済みの場合、次に受けたアドレスは、記憶領域４０１に上書きされる。つまり、記憶領域４０１、記憶領域４０２、記憶領域４０３、記憶領域４０１、記憶領域４０２、記憶領域４０３の順番で受けたアドレスを上書きし続ける。
【００２１】
図５は、メインメモリ検査対象候補アドレス５０３が、キャッシュアクセス範囲記憶部１０５の記憶領域５００に記憶されているアドレスを含むキャッシュメモリ１０２が誤り検出機能付きアクセス制御部１０４から入力を受けるデータ長の範囲に該当するかを高速で検索する方法を示す。
比較部５０１はメインメモリ検査対象候補アドレス５０３の入力とキャッシュアクセス範囲記憶部１０５の記憶領域５００のアドレスの入力を受ける。そして、メインメモリ検査対象候補アドレス５０３がキャッシュアクセス範囲記憶部１０５の記憶領域５００のアドレスを含むキャッシュメモリ１０２が誤り検出機能付きアクセス制御部１０４から入力を受けるデータ長の範囲に該当するかを比較する。
該当であれば、論理和５０２に該当を出力する。非該当であれば、論理和５０２に非該当を出力する。論理和５０２は複数の比較部５０１から該当もしくは非該当の入力を受ける。一つでも該当の入力を受けると、論理和５０２は該当を出力し、キャッシュアクセス範囲記憶部１０５はメインメモリ検査対象アドレス決定部１０６に該当を出力する。全て非該当であると、論理和５０２は非該当を出力し、キャッシュアクセス範囲記憶部１０５はメインメモリ検査対象アドレス決定部１０６に非該当を出力する。
以上のようなキャッシュメモリ１０２が誤り検出機能付きアクセス制御部１０４に出力するリード要求の中のアドレスから前記リード要求に対するデータのデータ長を直近メモリ検査の対象外とするメモリ検査方法を用いることで、より簡便で正確なメモリ検査対象の決定が実現できる。メモリのエラー発生確率が高い範囲に絞ってメモリ検査することが可能であり、早期にエラー検知することで、よりデータの信頼性を向上させることができる。
本実施例では、キャッシュアクセス範囲記憶部１０５の記憶領域が三つで説明したが、記憶領域の数はキャッシュアクセス範囲記憶部１０５の容量に応じて定めればよく、直近の所定期間内にキャッシュアクセス範囲記憶部１０５に記録されたアドレスの該当・非該当を検出すればよい。また、記憶領域が三つの場合は、直近３つ分のリード要求があった領域のメモリ検査を省略可能として説明したが、記憶領域４０１〜４０３の各々が、更に何番目の入力を受けたアドレスかを保持しておけば、３つの記憶領域のうち、直近１番目、または２番目までに入力を受けたアドレスだけを対象にしてメモリ検査を省略してもよい。
【実施例２】
【００２２】
図６は、本発明の一実施例である高効率なメモリ検査を行う計算装置にキャッシュアクセス範囲記憶部の初期化タイマーを追加したブロック図である。キャッシュアクセス範囲記憶部の初期化タイマーを追加した計算装置６００は、ＣＰＵ６０１とキャッシュメモリ６０２、メインメモリ６０３、誤り検出機能付きアクセス制御部６０４、キャッシュアクセス範囲記憶部６０５、メインメモリ検査対象アドレス決定部６０６、初期化タイマー６０７を有する。
【００２３】
次に実施例１との差分を説明する。初期化タイマー６０７は時刻を計測する。一定の時間が経過すると、キャッシュアクセス範囲記憶部６０５に初期化要求を出力する。キャッシュアクセス範囲記憶部６０５は初期化タイマー６０７から初期化要求の入力を受けると、図４のキャッシュアクセス範囲記憶部の記憶領域４００をすべて初期化する。
【００２４】
以上のような、定期的にキャッシュアクセス範囲記憶部の記憶領域４００を初期化することで、キャッシュアクセス範囲記憶部の記憶領域４００の記憶情報が古く、メモリ検査が必要な範囲をメモリ検査対象外範囲としてしまうことを解決することができる。
【実施例３】
【００２５】
図７は、本発明の一実施例である高効率なメモリ検査方法とデータ照合機能を有した計算装置のブロック図である。
【００２６】
高効率なメモリ検査方法とデータ照合機能を有した計算装置７００は、ＣＰＵ７０１とキャッシュメモリ７０２、メインメモリ７０３、アクセス制御部７０４、キャッシュアクセス範囲記憶部７０５、メインメモリ検査対象アドレス決定部７０６、ＣＰＵ７０７、キャッシュメモリ７０８、メインメモリ７０９、アクセス制御部７１０、データ比較部７１１を有する。
【００２７】
次に、各装置または部の入出力を説明する。
ＣＰＵ７０１は、キャッシュメモリ７０２と、ＣＰＵ７０７は、キャッシュメモリ７０８と、アクセス要求またはその応答を入出力し、ＣＰＵ７０１とＣＰＵ７０７は、データ比較部７１１からエラー検知の入力を受ける。
キャッシュメモリ７０２は、ＣＰＵ７０１、アクセス制御部７０４と、キャッシュメモリ７０８は、ＣＰＵ７０７、アクセス制御部７１０と、アクセス要求またはその応答を入出力し、キャッシュメモリ７０２は、キャッシュアクセス範囲記憶部７０５にリード要求の中のリード指示とアドレスを出力する。以下、図７では、キャッシュメモリ７０２からキャッシュアクセス範囲記憶部７０５に出力する例を示すが、キャッシュメモリ７０８からキャッシュアクセス範囲記憶部７０５に出力してもよい。
キャッシュアクセス範囲記憶部７０５は、メインメモリ検査対象アドレス決定部７０６と検索対象または検索結果を入出力し、キャッシュメモリ７０２からリード要求の中のリード指示とアドレスの入力を受ける。
メインメモリ検査対象アドレス決定部７０６は、キャッシュアクセス範囲記憶部７０５と検索対象または検索結果を入出力し、アクセス制御部７０４とアクセス制御部７１０にメインメモリ検査対象アドレスを出力する。
アクセス制御部７０４は、キャッシュメモリ７０２、データ比較部７１１と、アクセス制御部７１０は、キャッシュメモリ７０８、データ比較部７１１と、アクセス要求またはその応答を入出力し、メインメモリ検査対象アドレス決定部７０６からメインメモリ検査対象アドレスの入力を受ける。
データ比較部７１１は、アクセス制御部７０４、アクセス制御部７１０、メインメモリ７０３、メインメモリ７０９と、アクセス要求またはその応答を入出力し、ＣＰＵ７０１とＣＰＵ７０７にエラー検知を出力する。
メインメモリ７０３とメインメモリ７０９は、データ比較部７１１とアクセス要求またはその応答を入出力する。
【００２８】
次に、各装置または部の処理を説明する。ここで、ＣＰＵ７０７はＣＰＵ７０１と、キャッシュメモリ７０８はキャッシュメモリ７０２と、メインメモリ７０９はメインメモリ７０３と、アクセス制御部７１０はアクセス制御部７０４と同様の動きをし、違いがある場合には明記する。
【００２９】
ＣＰＵ７０１は、キャッシュメモリ７０２にアクセス要求を出力し、アクセス要求がリード要求の場合、ＣＰＵ７０１は、キャッシュメモリ７０２からリード要求に対するデータの入力を受ける。ＣＰＵ７０１は、データ比較部７１１からエラー検知の入力を受けると割り込み処理をする。
【００３０】
キャッシュメモリ７０２は、ＣＰＵ７０１からアクセス要求の入力を受けると、アクセス要求の中のアドレスとキャッシュメモリ７０２に記憶されているアドレスを比較する。アクセス要求の中のアドレスとキャッシュメモリ７０２に記憶されているアドレスの比較が一致かつアクセス要求がリード要求ならば、キャッシュメモリ７０２は、ＣＰＵ７０１にリード要求に対するデータを出力する。アクセス要求の中のアドレスとキャッシュメモリ７０２に記憶されているアドレスの比較が不一致かつリード要求ならば、アクセス制御部７０５にリード要求を出力し、キャッシュメモリ７０２のみキャッシュアクセス範囲記憶部７０５にリード要求の中のリード指示とアドレスを出力する。そしてアクセス制御部７０５からリード要求に対するデータの入力を受け、ＣＰＵ７０１にリード要求に対するデータを出力する。アクセス要求の中のアドレスとキャッシュメモリ７０２に記憶されているアドレスの比較が一致不一致にかかわらず、アクセス要求がライト要求ならば、ライト要求のアドレスとデータを記憶し、適時、アクセス制御部７０３に出力する。
【００３１】
キャッシュアクセス範囲記憶部７０５は、キャッシュメモリ７０２からアクセス要求の中のリード指示とライト指示の入力を受けると、アクセス要求の中のアドレスを記憶する。アクセス要求の中のアドレスを記憶するための記憶領域がなくなると、最も過去に記憶されたアクセス要求の中のアドレスの記憶領域からアクセス要求の中のアドレスを上書きしていく。メインメモリ検査対象アドレス決定部７０６からメインメモリ検査対象候補アドレスの入力を受けると、メインメモリ検査対象候補アドレスがキャッシュアクセス範囲記憶部７０５に記憶されているアドレスからキャッシュメモリ７０２がアクセス制御部７０５から入力を受けるリード要求に対するデータ（またはアクセス制御部７０５に出力するライト要求の中のデータ）のデータ長（例えばキャッシュラインサイズ）内に該当するか検索する。該当ならば、メインメモリ検査対象アドレス決定部２０６に該当を意味する信号を出力する。非該当ならば、メインメモリ検査対象アドレス決定部２０６に非該当を意味する信号を出力する。
【００３２】
メインメモリ検査対象アドレス決定部７０６は、キャッシュアクセス範囲記憶部７０５にメインメモリ検査対象候補アドレスを出力すると、キャッシュアクセス範囲記憶部７０５から該当を意味する信号もしくは非該当を意味する信号の入力を受ける。該当を意味する信号ならば、キャッシュアクセス範囲記憶部７０５に次のメインメモリ検査対象候補アドレスを出力する。非該当を意味する信号ならば、アクセス制御部７０４とアクセス制御部７１０にメインメモリ検査対象アドレスを出力する。
【００３３】
アクセス制御部７０４は、キャッシュメモリ７０２からアクセス要求の入力を受けると、データ比較部７１１にアクセス要求を出力する。アクセス要求がリード要求ならば、データ比較部７１１からリード要求に対するデータの入力を受け、キャッシュメモリ７０２にリード要求に対するデータを出力する。また、メインメモリ検査対象アドレス決定部７０６からメインメモリ検査対象アドレスの入力を受けると、データ比較部７１１にリード要求を出力し、データ比較部７１１からリード要求に対するデータの入力を受ける。
【００３４】
データ比較部７１１は、アクセス制御部７０４とアクセス制御部７１０からアクセス要求の入力を受ける。アクセス要求がリード要求ならば、メインメモリ７０３にアクセス制御部７０４からのリード要求を出力し、メインメモリ７０３からアクセス制御部７０４からのリード要求に対するデータの入力を受け、メインメモリ７０９にアクセス制御部７１０からのリード要求を出力し、メインメモリ７０９からアクセス制御部７１０からのリード要求に対するデータの入力を受ける。
そして、アクセス制御部７０４からのリード要求に対するデータとアクセス制御部７１０からのリード要求に対するデータを比較する。一致ならば、アクセス制御部７０４にアクセス制御部７０４からのリード要求に対するデータを出力し、アクセス制御部７１０にアクセス制御部７１０からのリード要求に対するデータを出力する。不一致ならば、ＣＰＵ７０１とＣＰＵ７０７にエラー検知を出力する。アクセス要求がライト要求ならば、アクセス制御部７０４からのライト要求の中のデータとアクセス制御部７１０からのライト要求の中のデータを比較する。一致ならば、アクセス制御部７０４からのライト要求の中のデータをメインメモリ７０３に出力し、アクセス制御部７１０からのライト要求の中のデータをメインメモリ７０９に出力する。不一致ならば、ＣＰＵ７０１とＣＰＵ７０７にエラー検知を出力する。
【００３５】
メインメモリ７０３は、データ比較部７１１からアクセス要求の入力を受ける。アクセス要求がリード要求ならば、データ比較部７１１にリード要求に対するデータを出力する。アクセス要求がライト要求ならば、ライト要求の中のデータを記憶する。
図２、図３を用いた高効率なメモリ検査方法の説明や図４、図５を用いた図１のキャッシュアクセス範囲記憶部１０５を説明は実施例１と同様である。
【００３６】
以上のような、データ照合機能を有した計算装置を用いることで、キャッシュメモリ７０２がアクセス制御部７０４に出力するリード要求の中のアドレスからリード要求に対するデータのデータ長分だけでなく、ライト要求の中のアドレスからライト要求の中のデータのデータ長分も、直近メモリ検査の対象外とすることができる。その他効果は実施例１と同等である。
【符号の説明】
【００３７】
１０１…ＣＰＵ、１０２…キャッシュメモリ、１０３…メインメモリ、１０４…誤り検出機能付きアクセス制御部、１０５…キャッシュアクセス範囲記憶部、１０６…メインメモリ検査対象アドレス決定部、２０１…メモリ検査対象外範囲、２０２…最初のメモリ検査位置、２０３…最後のメモリ検査位置、２０４…次アドレスへの移動、４００…キャッシュアクセス範囲記憶部の記憶領域、４０１…記憶領域、４０２…記憶領域、４０３…記憶領域、５００…キャッシュアクセス範囲記憶部の記憶領域、５０１…比較部、５０２…論理和、６０１…ＣＰＵ、６０２…キャッシュメモリ、６０３…メインメモリ、６０４…誤り検出機能付きアクセス制御部、６０５…キャッシュアクセス範囲記憶部、６０６…メインメモリ検査対象アドレス決定部、６０７…初期化タイマー、７０１…ＣＰＵ、７０２…キャッシュメモリ、７０３…メインメモリ、７０４…アクセス制御部、７０５…キャッシュアクセス範囲記憶部、７０６…メインメモリ検査対象アドレス決定部、７０７…ＣＰＵ、７０８…キャッシュメモリ、７０９…メインメモリ、７１０…アクセス制御部、７１１…データ比較部。
【図１】
2016148964.tif 000003
【図２】
2016148964.tif 000004
【図３】
2016148964.tif 000005
【図４】
2016148964.tif 000006
【図５】
2016148964.tif 000007
【図６】
2016148964.tif 000008
【図７】
2016148964.tif 000009