(57)【要約】【課題】情報処理装置のアプリケーションプログラムの動作中に、アプリケーションプログラムの動作に影響を与えずに主メモリの診断が可能なライトバックキャッシュを備える情報処理装置、及びその主メモリ診断方法を提供することを目的とする。【解決手段】主メモリ２に記憶するアプリケーションプログラムをライトバックキャッシュ１ａの記憶サイズで分割した領域を予め記憶し、主メモリ２からライトバックキャッシュ１ａへの読み込み信号を検出し、当該読み込み信号が、未診断の前記領域であるか否かを判定し、未診断の場合、当該領域の故障診断を指令し、領域の診断中に、当該領域への書き込み信号（ライトバック）が検出された場合、当該領域の診断を停止させ、主メモリの故障診断をアプリケーションプログラムの実行と並行して実行するようにしたことを特徴とするライトバックキャッシュを備える情報処理装置の主メモリの故障診断方法。【選択図】  図１
2012027544.tif 000002
【特許請求の範囲】
【請求項１】
ライトバックキャッシュを備えるＣＰＵと、前記ＣＰＵが実行するアプリケーションプログラムを記憶し、前記ライトバックキャッシュの下位層を構成する主メモリと、前記主メモリの故障を診断する主メモリ診断制御部とを備え、
前記主メモリ診断制御部は、前記ＣＰＵが、前記主メモリから前記ライトバックキャッシュへの読み込み信号、及び前記主メモリへの書き込み信号からアクセスされた前記主メモリのアドレスを検出するメモリアクセス検出部と、
前記メモリアクセス検出部が検出した読み込み信号及び書き込み信号からアクセスされた前記主メモリの前記アドレスを記憶するＣＰＵメモリアクセス領域記憶部と、
前記ライトバックキャッシュの記憶サイズで前記アプリケーションプログラムを分割した複数の領域を予め記憶し、前記領域が診断中、または診断されたか否かを記憶する診断メモリアクセス領域記憶部と、
前記ＣＰＵメモリアクセス領域記憶部に記憶された前記領域が、未診断の前記領域であるか否かを、前記診断メモリアクセス領域記憶部を参照して判定し、未診断であると判定した場合には、当該領域の診断指令を、また、前記領域がキャッシュされ、且つ、前記診断メモリアクセス領域記憶部から前記診断終了信号を受信する前に、前記ＣＰＵメモリアクセス領域記憶部から当該領域に対して前記ライトバック信号を受信した場合には、診断停止指令を送る前記診断制御部と、
予め設定されたメモリ診断プログラムを記憶し、前記診断制御部から送られる診断指令で前記領域の診断を実行し診断終了信号を、または、前記診断停止指令で診断を停止して診断停止信号を、前記診断メモリアクセス領域記憶部に送るとともに、診断を終了した場合には診断結果を前記ＣＰＵに送るメモリ診断部と
を備え、
前記ＣＰＵが実行するアプリケーションプログラムと並行して前記主メモリの故障を前記ライトバックキャッシュの領域毎に診断するようにしたことを特徴とするライトバックキャッシュを備える情報処理装置。
【請求項２】
前記診断メモリアクセス領域記憶部は、前記領域毎の診断時間間隔を測定し、記憶する診断間隔記憶テーブルを備え、
前記診断制御部は、前記診断間隔テーブルに記憶された診断間隔時間が予め設定された割り込み優先判定時間を越えたか否かを判定し、超えている場合には、当該領域のアドレスを前記ＣＰＵの割り込み受信部に通知するアドレス通知回路を備えたことを特徴とする請求項１に記載のライトバックキャッシュを備える情報処理装置。
【請求項３】
ライトバックキャッシュを備える情報処理装置の主メモリの故障診断方法であって、
前記主メモリに記憶するアプリケーションプログラムを前記ライトバックキャッシュの記憶サイズで分割した領域を予め記憶しておくステップと、
前記主メモリから前記ライトバックキャッシュへの読み込み信号を検出し、当該読み込み信号が、未診断の前記領域であるか否かを判定し、未診断の場合、当該領域の故障診断を指令するステップと、
前記領域の診断中に、当該領域への書き込み信号が検出された場合、当該領域の診断を停止させるステップと
を備え、
前記主メモリから前記ライトバックキャッシュへの読み込み完了後、前記領域に書き込みが発生するまでの期間に、当該領域のメモリの故障診断を実行させ、前記主メモリの故障診断をアプリケーションプログラムの実行と並行して実行するようにしたことを特徴とするライトバックキャッシュを備える情報処理装置の主メモリ診断方法。
【請求項４】
さらに、前記領域毎の診断間隔時間を測定し、予め設定する割り込み優先判定時間を越えたか否かを判定し、超えた場合には、当該領域の診断を優先させて行うステップを備える請求項３に記載のライトバックキャッシュを備える情報処理装置の主メモリ診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトバックキャッシュを備える情報処理装置、及びその主メモリの診断方法に関する。
【背景技術】
【０００２】
高い安全性と信頼性とが求められる情報処理システムに使用される情報処理装置では、その記憶装置に対する定期的な診断が要求される。この記憶装置の診断は、一般的なメモリ障害の他、放射線粒子によるメモリのソフトエラー診断も必要であるため、システム起動時だけでなくシステム稼働中でも行えることが要求される。
【０００３】
一般に、メモリの診断は、マーチンパターン診断方法等、メモリの特定のアドレスに所定の値を書き込み、再び同じアドレスを読み込んだ値が書き込んだ値と同じ値であることを比較検証することが行われているが、これらの方法では、メモリに格納されている値を書き換えて診断を行うため、ＣＰＵからアクセス中のメモリ領域に対しては診断を行うことができない。
【０００４】
また、一般に、ＣＰＵなどの情報処理装置は、プログラムやデータやなどの情報を取得したり、更新したりする際には、ＤＲＡＭ等の低速大容量の主メモリの動作遅れを回避するために、情報処理装置とこの主メモリとの間にＳＲＡＭ等で構成される高速小容量のメモリ（キャッシュメモリと呼ぶ）を備え、記憶装置を階層化している（この構造を記憶階層と呼ぶ）。
【０００５】
ＣＰＵは通常、このキャッシュメモリのみをアクセスする。書き込み制御は、主メモリへのライトアクセスを同時に行うライトスルー方式と、主メモリへのライトアクセスを最小限に抑えるため、一括書き込みを行うライトバック方式とがある。
【０００６】
また、キャッシュメモリを備える記憶装置の場合、キャッシュメモリによって主メモリに直接アクセスできないことがあるので、主メモリの診断には特別の試験装置を備える必要があった。
【０００７】
また、高い安全性と信頼性とを確保するための診断に、情報処理をしているＣＰＵ自身がメモリの診断を行うと、診断のための負荷が高くなり、情報処理の処理時間に制約を与える問題もある。
【０００８】
このメモリの故障診断に要する時間を短縮し、ＣＰＵがアプリケーションを実行している合間に診断を可能とする手法としては、メモリ故障診断を階層的に行い、メモリアクセス回数を減らす手法が開示されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４３１２８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した特許文献１のメモリ故障診断は、メモリ故障診断にアプリケーションプログラムを実行中のＣＰＵを用いて診断を実行しているため、階層に分けてメモリアクセス回数を低減して診断することで診断速度を向上させるとしても、メモリ容量の増加とともに診断時間が長くなり、ＣＰＵのアプリケーションの実行速度に影響を与える問題がある。
【００１１】
また、ＣＰＵがアプリケーションを実行中に、ＣＰＵを用いてテスト領域を階層に分けて診断を実行しているが、記憶装置がライトバックキャッシュを備える階層記憶構造の場合、ＣＰＵがプログラムを実行中に主メモリの診断を行う手法については示唆できる記述がない。
【００１２】
本発明は上記問題点を解決するためになされたものであり、ライトバックキャッシュを備える情報処理装置において、情報処理装置のアプリケーションプログラムの動作中に、アプリケーションプログラムの動作に影響を与えずに主メモリの診断が可能なライトバックキャッシュを備える情報処理装置、及びその主メモリ診断方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明による請求項１に係わるライトバックキャッシュを備える情報処理装置は、ライトバックキャッシュを備えるＣＰＵと、前記ＣＰＵが実行するアプリケーションプログラムを記憶し、前記ライトバックキャッシュの下位層を構成する主メモリと、前記主メモリの故障を診断する主メモリ診断制御部とを備え、前記主メモリ診断制御部は、前記ＣＰＵが、前記主メモリから前記ライトバックキャッシュへの読み込み信号、及び前記主メモリへの書き込み信号からアクセスされた前記主メモリのアドレスを検出するメモリアクセス検出部と、前記メモリアクセス検出部が検出した読み込み信号及び書き込み信号からアクセスされた前記主メモリの前記アドレスを記憶するＣＰＵメモリアクセス領域記憶部と、前記ライトバックキャッシュの記憶サイズで前記アプリケーションプログラムを分割した複数の領域を予め記憶し、前記領域が診断中、または診断されたか否かを記憶する診断メモリアクセス領域記憶部と、前記ＣＰＵメモリアクセス領域記憶部に記憶された前記領域が、未診断の前記領域であるか否かを、前記診断メモリアクセス領域記憶部を参照して判定し、未診断であると判定した場合には、当該領域の診断指令を、また、前記領域がキャッシュされ、且つ、前記診断メモリアクセス領域記憶部から前記診断終了信号を受信する前に、前記ＣＰＵメモリアクセス領域記憶部から当該領域に対して前記ライトバック信号を受信した場合には、診断停止指令を送る前記診断制御部と、予め設定されたメモリ診断プログラムを記憶し、前記診断制御部から送られる診断指令で前記領域の診断を実行し診断終了信号を、または、前記診断停止指令で診断を停止して診断停止信号を、前記診断メモリアクセス領域記憶部に送るとともに、診断を終了した場合には診断結果を前記ＣＰＵに送るメモリ診断部とを備え、前記ＣＰＵが実行するアプリケーションプログラムと並行して前記主メモリの故障を前記ライトバックキャッシュの領域毎に診断するようにしたことを特徴とする。
【００１４】
上記目的を達成するために、本発明による請求項３に係わるライトバックキャッシュを備える情報処理装置の主メモリの故障診断方法は、ライトバックキャッシュを備える情報処理装置の主メモリの故障診断方法であって、前記主メモリに記憶するアプリケーションプログラムを前記ライトバックキャッシュの記憶サイズで分割した領域を予め記憶しておくステップと、前記ライトバックキャッシュへの読み込み信号を検出し、当該読み込み信号が、未診断の前記領域であるか否かを判定し、未診断の場合、当該領域の故障診断を指令するステップと、前記領域の診断中に、当該領域への書き込み信号が検出された場合、当該領域の診断を中止させるステップとを備え、前記ライトバックキャッシュへの読み込み後、前記領域に書き込みが発生するまでの期間に、当該領域のメモリの故障診断を実行させ、前記主メモリの故障診断をアプリケーションプログラムの実行と平行して実行するようにしたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ライトバックキャッシュを備える情報処理装置において、情報処理装置のアプリケーションプログラムの動作中に、アプリケーションプログラムの動作に影響を与えずに主メモリの診断が可能なライトバックキャッシュを備える情報処理装置、及びその主メモリ診断方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１の情報処理装置の構成図。
【図２】本発明の実施例１の情報処理装置の動作説明図。
【図３】本発明の実施例１の情報処理装置の動作説明図。
【図４】本発明の実施例２の情報処理装置の構成図。
【図５】本発明の実施例２の診断動作の説明図。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本実施例について説明する。
【実施例１】
【００１８】
以下、本発明に係るライトバックキャッシュを備える情報処理装置の実施例について、図１乃至図３を参照して説明する。
【００１９】
図１は、本発明のライトバックキャッシュを備える制御装置の構成図である。図１において、この制御装置は、ライトバックキャッシュを備えるＣＰＵ１と、ＣＰＵ１が実行するアプリケーションプログラムを記憶し、ライトバックキャッシュの下位層を構成する主メモリ２と、主メモリ２の故障を診断する主メモリ診断制御部３とを備え、これらの各部はバス４で接続されている。
【００２０】
次に、各部の構成について説明する。ＣＰＵ（Central Processing Unit、ＭＰＵとも言う）１には、例えば、数ＫＢ〜数１００ＫＢの高速小容量のＳＲＡＭ等で構成されるライトバックキャッシュ１ａと、主メモリ２からライトバックキャッシュ１ａへの読み込み（フィル（fill）と言う）、ライトバックキャッシュ１ａ内のデータが全て有効なデータで満たされている場合にライトバックキャッシュ１ａを解放する（フラッシュ（flash）すると言う）タイミングで主メモリ２にもデータの書き込み（この書き戻しをライトバック（write back）と言う）とを制御するキャッシュ制御部１ｂとを備える。
【００２１】
また、故障の診断対象となる主メモリ２は、アプリケーションプログラムのプログラムとデータとが記憶され、通常は、例えば、数１０ＭＢ〜数１００ＭＢの低速大容量のＤＲＡＭ等で構成されるが、記憶手段はＤＲＡＭに限定されるものでなく、ハードディスク装置などの補助記憶装置が構成される場合もある。
【００２２】
主メモリ診断制御部３は、ＣＰＵ１が、主メモリ２からライトバックキャッシュ１ａへの（読み込みが完了した）読み込み信号、または、主メモリ２への（書き込みを開始した）書き込み信号（ライトバック信号）からアクセスされた主メモリ２のアドレスを、バス４を介して検出するメモリアクセス検出部３ａと、メモリアクセス検出部３ａが検出した読み込み信号及び書き込み信号からアクセスされた主メモリ２のアドレスを記憶するＣＰＵメモリアクセス領域記憶部３ｂと、ライトバックキャッシュ１ａの記憶サイズでアプリケーションプログラムを分割した複数の領域（例えば、Ａ−Ｄ）を予め記憶し、夫々の領域が診断中及び診断されたか否かを記憶する診断メモリアクセス領域記憶部３ｃと、を備える。
【００２３】
さらに、主メモリ診断制御部３には、ＣＰＵメモリアクセス領域記憶部３ｂに記憶された領域が、未診断の領域であるか否かを、診断メモリアクセス領域記憶部３ｃを参照して判定し、未診断であると判定した場合には、当該領域の診断指令（ｓ３ｓ）を、また、領域がキャッシュされ、且つ、診断メモリアクセス領域記憶部３ｃから診断終了信号を受信する前に、ＣＰＵメモリアクセス領域記憶部３ｂから当該領域に対してライトバック信号を受信した場合には、診断停止指令（ｓ３ｒ）を送る診断制御部３ｅと、予め設定されたメモリ診断プログラムを記憶し、診断制御部３ｅから送られる診断指令（ｓ３ｓ）で当該領域の診断を実行し診断終了信号（ｓ３ｓｅ）を、または、診断停止指令（ｓ３ｒ）で診断を停止して診断停止指令信号（ｓ３ｔｅ）を、診断メモリアクセス領域記憶部３ｃに送るとともに、診断を終了した場合には診断結果をＣＰＵ１に送るメモリ診断部３ｄとを備える。
【００２４】
次に、この主メモリ２の夫々の領域を診断する診断プログラムを備えるメモリ診断部３ｄの構成について説明する。
【００２５】
メモリ診断部３ｄは、主メモリ２のキャッシュされた診断対象の領域に特定のパターンのデータの書き込み、読み出しを行い、書き込みデータと読み出しデータを比較照合してメモリの故障の有無を診断する。
【００２６】
この特定のパターンデータには、例えば、0x55555555 および 0xAAAAAAAAを書き込むcheckerboardや、マーチンパターンなど各種のパターンがあるが、この診断アルゴリズムは、診断の信頼性と診断時間によって適宜選択できる。
【００２７】
メモリ診断部３ｄは、診断メモリアクセス領域記憶部３ｃに診断している領域のアドレスを書き込む。このとき、診断制御部３ｅは、ＣＰＵメモリアクセス領域記憶部３ｂと診断メモリアクセス領域記憶部３ｃとから、キャッシュされている領域とメモリ診断されている領域が等しいこと確認して、診断を実施し、そして、メモリの診断が終了した後、診断メモリアクセス領域記憶部３ｃに当該領域の診断が終了したことを書き込むとともに、診断結果をＣＰＵ１にバス４を介して送る。
【００２８】
また、主メモリ診断制御部３は、この部分を全てＦＰＧＡ（Field Programmable Gate Array）で構成することも可能であるが、メモリアクセス検出部３ａとＣＰＵメモリアクセス領域記憶部３ｂとをＦＰＧＡで構成し、その他の診断構成部分（破線で囲んだ部分）をＣＰＵ１と同様のＣＰＵで構成し、主メモリ２へのアクセス信号を、バス４を介してＦＰＧＡの部分から受信し、処理するように構成することも可能である。
【００２９】
このような構成の場合、主メモリ診断制御部３の診断部がＣＰＵで構成されるので、主メモリ２の診断パターンの変更や、この診断部自身の診断が容易となる効果がある。
【００３０】
次に、このように構成されたライトバックキャッシュ１ａを備える情報処理装置の動作について、図２を参照して説明する。図２（ａ）は、この動作を説明するフロー図で、図２（ｂ）はそのタイムチャートである。
【００３１】
先ず、図２（ａ）を参照して、ＣＰＵ１の動作について説明する。キャッシュメモリ制御部１ｂは読み込み信号ｓ１ｓを生成し、主メモリ２のアプリケーションプログラムから、例えば、領域Ｂのプログラムとデータをライトバックキャッシュ１ａに読み取る（ｓ１１）。
【００３２】
そして、ＣＰＵ１は、このライトバックキャッシュ１ａに読み込んだプログラムとデータとを用いてプログラムを実行する（ｓ１２）。そして所定のプログラムを実行して、キャッシュメモリ制御部１ｂから主メモリ２への書き込み信号（ライトバック信号）が発生すると、指定された領域のプログラムとデータとを主メモリ２に書き戻す（ｓ１３）。
【００３３】
そして、キャッシュメモリ制御部１ｂからの次の読み込み信号ｓ１ｓによって、主メモリ２の該当する領域のプログラムを読み込み（ｓ１１）、以下同様（ｓ１１−ｓ１３）の処理を繰り返し実行する。
【００３４】
次に、主メモリ診断制御部３が実行する、ライトバックキャッシュ１ａを備える制御装置の主メモリ２の領域毎のメモリの診断動作について説明する。
【００３５】
ＣＰＵメモリアクセス領域記憶部３ｂは、例えば、メモリアクセス検出部３ａが、バス４を介して、ＣＰＵ１が、例えば、領域Ｂの読み込み信号ｓ１ｓを検出すると、このアクセスされたアドレスを記憶しておく（ｓ１５）。
【００３６】
次に、診断制御部３ｅは、ＣＰＵメモリアクセス領域記憶部３ｂにこのアクセス（ｓ１１）で記憶された領域が、未診断の領域であるか否か（ｓ１７）を、診断メモリアクセス領域記憶部３ｃを参照して判定し、未診断であると判定した場合には、当該領域の診断指令信号ｓ３ｓ（ｓ１８）をメモリ診断部３ｄに送る。
【００３７】
そして、メモリ診断部３ｄは、領域Ｂの診断を実行し（ｓ１９）診断中信号ｓ３ｔを、また、診断が終了すると診断終了信号ｓ３ｔｅを診断メモリアクセス領域記憶部３ｃに送り（ｓ２１）記憶させる（ｓ２２）。さらに、診断結果は、バス４を介してＣＰＵ１に送る。
【００３８】
以上の動作を図２（ｂ）のタイムチャートに示す。図２（ｂ）に示すように、主メモリ診断制御部３は、主メモリ２の分割された領域をライトバックキャッシュ１ａへの読み込み後、主メモリ２にデータの書き込み信号が発生するまでの期間（診断中信号：ｓ３ｔ）を利用して、ＣＰＵ１のアプリケーションプログラムの実行と並行して、主メモリ２の分割された領域の診断を自動的に実行する。
【００３９】
次に、メモリ診断部３ｄが、主メモリ２の領域の診断中に、当該領域の書き込みが検出された場合の動作について、図３（ａ）と図３（ｂ）を参照して説明する。
【００４０】
診断制御部３ｅが、診断メモリアクセス領域記憶部３ｃが診断を終了する前に、ＣＰＵメモリアクセス領域記憶部３ｂから当該領域に対して書き込み信号（ｓ１ｒ）、即ち、ライトバック信号を受信した場合（ｓ１６）には、診断制御部３ｅは、メモリ診断部３ｄに対して診断停止信号（ｓ３ｔｓ）を送る（ｓ３１）。
【００４１】
メモリ診断部３ｄは、この診断停止指令ｓ３ｒを受信すると、該当領域の診断を停止して（ｓ３２）、その診断停止信号ｓ３ｔｓを診断メモリアクセス領域記憶部３ｃに送り記憶させる（ｓ３３）。
【００４２】
即ち、主メモリ診断制御部３は、ライトバックキャッシュ１ａに主メモリ２のある領域の分割されたプログラムの書き込みが完了し、ＣＰＵ１が、ライトバックキャッシュ１ａに、キャッシュされた領域の分割されたプログラムを使用して処理を実行し、主メモリ２にライトバックする間の期間を使用して、ＣＰＵ１がキャッシュした主メモリ２の夫々の領域の診断をアプリケーションプログラムの実行と並行して実行する。
【００４３】
したがって、連続運転される産業システムや公共システムの情報処理装置においては、従来、半年や１年の定期点検周期で行われていた主メモリの故障診断が、本実施例に拠れば、運転中に実施することが可能で、診断周期を短い周期で実施することが可能となり、システムの安全度や信頼性を向上させることが出来る。
【実施例２】
【００４４】
次に、図４及び図５を参照して、実施例２のライトバックキャッシュを備える情報処理装置について説明する。実施例２の各部について図１に示す各部と同一部分は同一符号で示しその説明を省略する。
【００４５】
図４に示すように、診断メモリアクセス領域記憶部３ｃには、ライトバックキャッシュ１ａの記憶サイズで分割した領域毎に、メモリ診断部３ｄが診断した診断間隔時間を記憶した診断間隔時間テーブル３ｃ１を、また、診断制御部３ｅには、領域毎の診断間隔時間が予め設定する判定レベルを超える領域を判定してＣＰＵ１に通知するアドレス通知回路３ｅ１を備えようにした点が異なる。
【００４６】
診断間隔時間テーブル３ｅ１は、図５に示すように読み取られた領域毎の診断時間を測定し、診断間隔時間テーブル３ｃ１に書き込んでおく。通常は、主メモリ２に記憶されたアプリケーションプログラムに依存した診断間隔時間で、夫々の領域が診断される。
【００４７】
この実施例２によれば、アドレス通知回路３ｅ１では、アクセスインターバルの長い領域が存在する場合、予め設定する判定レベル越えた領域の診断を優先的に行うので、主メモリ２の各診断領域を、少なくとも一定の期間で確実な診断が行えるほか、領域毎の診断間隔時間のバラツキを抑える効果もある。
【００４８】
また、判定レベルを領域毎に変えることで、特定の領域を優先的に判定したり、任意のアドレスを優先して判定したりするように設定することも可能である。
【００４９】
本発明は上述したような実施例に何ら限定されるものではなく、ＣＰＵ１が、ライトバックキャッシュ１ａに、キャッシュされた領域のプログラムを使用して処理を実行し、主メモリ２にライトバックする間の期間を使用して、当該領域を自動的に診断するようにしたものであれば良く、主メモリ診断制御部３の構成は本発明の主旨を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００５０】
１  ＣＰＵ
１ａ  キャッシュメモリ
１ｂ  キャッシュメモリ制御部
１ｃ  割り込み受信部
２  診断対象メモリ
３  主メモリ診断制御部
３ａ  メモリアクセス検出部
３ｂ  ＣＰＵメモリアクセス領域検出部
３ｃ  診断メモリアクセス領域記憶部
３ｄ  メモリ診断部
３ｅ  診断制御部
【図１】
2012027544.tif 000003
【図２】
2012027544.tif 000004
【図３】
2012027544.tif 000005
【図４】
2012027544.tif 000006
【図５】
2012027544.tif 000007