(57)【特許請求の範囲】
【請求項１】
コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断装置であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持する保持手段と、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライする手段とを少なくとも備え、リトライ結果として、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合、前記保持手段に保持されているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定する手段を備えていることを特徴とする診断装置。
【請求項２】
固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する前記手段として、エラー発生時の前記メモリ部の同一メモリモジュール内の異なるアドレス、または、エラー発生時の前記メモリ部の同一メモリモジュール内に複数個のＲＡＭ（Random  Access  Memory）が存在する場合エラー発生時のＲＡＭとは異なるＲＡＭ内の任意のアドレス、または、エラー発生時の前記メモリ部に複数個のメモリモジュールが存在する場合エラー発生時のメモリモジュールとは異なるメモリモジュール内の任意のアドレス、のいずれか１ないし複数に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項１に記載の診断装置。
【請求項３】
エラー発生時のメモリ読み出しコマンドを一時的に保持する保持手段をさらに備え、固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する前記手段として、エラー発生時のメモリ読み出しコマンドと同一のメモリ読み出しコマンド、または、エラー発生時のメモリ読み出しコマンドとは異なるコマンド体系からなるメモリ読み出しコマンド、のいずれかまたは双方を用いて、エラー発生時の前記メモリ部に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項１または２に記載の診断装置。
【請求項４】
コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断方法であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持し、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライした結果、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合に、一時的に保持しているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定することを特徴とする診断方法。
【請求項５】
固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する際に、エラー発生時の前記メモリ部の同一メモリモジュール内の異なるアドレス、または、エラー発生時の前記メモリ部の同一メモリモジュール内に複数個のＲＡＭ（Random  Access  Memory）が存在する場合エラー発生時のＲＡＭとは異なるＲＡＭ内の任意のアドレス、または、エラー発生時の前記メモリ部に複数個のメモリモジュールが存在する場合エラー発生時のメモリモジュールとは異なるメモリモジュール内の任意のアドレス、のいずれか１ないし複数に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項４に記載の診断方法。
【請求項６】
エラー発生時のメモリ読み出しコマンドをさらに一時的に保持し、固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する際に、エラー発生時のメモリ読み出しコマンドと同一のメモリ読み出しコマンド、または、エラー発生時のメモリ読み出しコマンドとは異なるコマンド体系からなるメモリ読み出しコマンド、のいずれかまたは双方を用いて、エラー発生時の前記メモリ部に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項４または５に記載の診断方法。
【請求項７】
請求項４ないし６のいずれかに記載の診断方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、診断装置、診断方法および診断プログラムに関し、特に、コンピュータシステムのメモリ部の診断を行う診断装置、診断方法および診断プログラムに関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、例えばメモリ部からの読み出しデータのエラーを検出した場合、メモリ部の障害部位を直ちに交換して、継続して運用することが重要である。一般に、メモリ部からの読み出しデータのエラー検出時には、メモリ部の読み出しアドレスと読み出しデータのエラービットとが得られるが、障害部位によっては、エラー検出箇所以外にも障害が波及している場合があり、メモリ読み出しアドレスと読み出しデータのエラービットだけでは、障害部位の正確な特定を行うことは困難である。
【０００３】
このため、従来のコンピュータシステムにおいては、メモリ部の障害発生時の被疑部位の判別方法としては、診断回路のパトロールによって検出した障害状況から判断して障害の可能性がある部位をすべて指摘するか、あるいは、汎用的な診断プログラムを実行して障害被疑部位を特定していた。
【０００４】
例えば、特許文献１の特開平５−２１０５９７号公報「記憶装置のパトロール回路」には、コンピュータシステムの診断回路が記載されていて、パトロールにより検出したエラー情報をチェックして、障害の可能性がある部位をすべて抽出している。
【０００５】
また、例えば、特許文献２の特開平９−２１８７９８号公報「間欠障害の診断方法および電子装置」には、コンピュータシステムの診断方法が記載されていて、汎用的な診断プログラムを用いて、障害被疑部位を特定するための診断を行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−２１０５９７号公報（第２−３頁）
【特許文献２】特開平９−２１８７９８号公報（第３−４頁）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の診断方法においては、次のような課題がある。
【０００８】
第１の課題は、診断回路によって検出した障害の情報が汎用的で漠然とした情報になっていることが多いため、障害被疑部位の特定が正確にできないということである。
【０００９】
第２の課題は、コンピュータシステムの回路構成の如何には無関係な汎用的な診断プログラムにより診断することが多いため、検出した障害状況に特化した診断をきめ細かく行うことができず、障害被疑部位の特定が正確にできないということ、および、診断プログラムによる診断実行完了までに時間が掛かることである。
【００１０】
（本発明の目的）
本発明は、かかる事情に鑑みてなされたものであり、コンピュータシステムのメモリ部の障害の被疑部位を高速かつ正確に特定する診断装置、診断方法および診断プログラムを提供することを、その目的としている。
【課題を解決するための手段】
【００１１】
前述の課題を解決するため、本発明による診断装置、診断方法および診断プログラムは、主に、次のような特徴的な構成を採用している。
【００１２】
（１）本発明による診断装置は、コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断装置であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持する保持手段と、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライする手段とを少なくとも備え、リトライ結果として、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合、前記保持手段に保持されているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定する手段を備えていることを特徴とする。
【００１３】
（２）本発明による診断方法は、コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断方法であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持し、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライした結果、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合に、一時的に保持しているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定することを特徴とする。
【００１４】
（３）本発明による診断プログラムは、少なくとも前記（２）に記載の診断方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【００１５】
本発明の診断装置、診断方法および診断プログラムによれば、以下のような効果を奏することができる。
【００１６】
第１の効果は、メモリ読み出し動作でエラーを検出した際に、直ちに、診断を実行し、エラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を絞り込むので、障害被疑部位の見落としや解析ミス等による保守ミスを未然に防ぐことができることである。
【００１７】
第２の効果は、メモリ読み出し動作で検出したエラー箇所に特化した診断を行うので、障害被疑部位の特定を高速かつ正確に行うことができることである。
【００１８】
第３の効果は、メモリ読み出し動作でエラーを検出した直後に診断を行うので、エラーの再現性が高く、マージナルな障害も含む正確な診断を行うことができることである。
【図面の簡単な説明】
【００１９】
【図１】本発明による診断装置のブロック構成の一例を示すブロック構成図である。
【図２】本発明による診断装置を含むコンピュータシステムのブロック構成の図１とは異なる例を示すブロック構成図である。
【発明を実施するための形態】
【００２０】
以下、本発明による診断装置、診断方法および診断プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による診断装置および診断方法について説明するが、かかる診断方法をコンピュータにより実行可能な診断プログラムとして実施するようにしても良いし、あるいは、診断プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。
【００２１】
（本発明の特徴）
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、コンピュータシステムのメモリ装置における障害検出時に、被疑部位の特定を高速かつ正確に行うことを可能にしていることを特徴としている。
【００２２】
より具体的には、メモリ装置の診断用としてデータエラー検出回路とエラービット保持回路とエラービット比較回路と診断読み出しコマンド生成回路と読み出しアドレス保持回路と診断読み出しアドレス生成回路と診断制御回路とを少なくとも備えることにより、メモリ装置の読み出しデータのエラーが発生した場合に、同一メモリ読み出しアドレスに再度アクセスするリトライ動作を行い、再度同一のエラービットが検出された場合、固定障害と判別し、エラーが発生した部位を中心にして、診断用の読み出し動作を切り分けテストとして実施することによって、障害部位を、迅速かつ精度高く正確に特定することを可能にしている。
【００２３】
（実施形態の構成例）
次に、本発明による診断装置および診断方法の実施形態について説明する。図１は、本発明による診断装置のブロック構成の一例を示すブロック構成図であり、該診断装置は、コンピュータシステムを構成するメモリ部の診断を行うために、当該コンピュータシステム内に装備されている。なお、図１に示すコンピュータシステム１００は、本発明による診断装置１０に関連する部位のみを示し、関係しない部位については省略して示している。
【００２４】
図１に示すように、コンピュータシステム１００は、本発明による診断装置１０と、診断対象となるメモリ読み出し制御部２およびメモリ部３とを、少なくとも備えて構成されている。
【００２５】
診断装置１０は、メモリ部３からの読み出しデータのエラーを検出し、診断を行う部位であり、メモリ読み出し制御部２は、メモリ部３からデータを読み出す制御を行う部位である。
【００２６】
また、メモリ読み出し制御部２は、通常動作時におけるメモリ部３からの読み出し動作だけでなく、診断装置１０からの指示により、メモリ部３の診断のために、リトライ動作用や障害部位の切り分けテスト用として実施する、メモリ部３からのデータの読み出し制御も行う部位であり、メモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２を含んで構成されている。
【００２７】
ここで、メモリ読み出しコマンド生成回路２１は、メモリ部３の第１メモリモジュールであるＤＩＭＭ（Dual  Inline  Memory  Module）３１に対するメモリ読み出しコマンド２１１、および、第２メモリモジュールであるＤＩＭＭ３２に対するメモリ読み出しコマンド２１２を生成して出力する部位である。また、メモリ読み出しアドレス生成回路２２は、第１メモリモジュールであるＤＩＭＭ３１および第２メモリモジュールであるＤＩＭＭ３２に対するメモリ読み出しアドレス２２１を生成して出力する部位である。
【００２８】
メモリ部３は、第１のメモリモジュールであるＤＩＭＭ３１、第２のメモリモジュールであるＤＩＭＭ３２を少なくとも含んで構成されている。ＤＩＭＭ３１は、ＲＡＭ（Random  Access  Memory）３１１により構成され、ＤＩＭＭ３２は、ＲＡＭ３２１により構成される。ＤＩＭＭ３１は、メモリ読み出しコマンド生成回路２１からのメモリ読み出しコマンド２１１が有効であった場合に、メモリ読み出しアドレス生成回路２２からのメモリ読み出しアドレス２２１によって指定されたアドレスのデータを読み出してメモリ読み出しデータ３３に出力する。一方、ＤＩＭＭ３２は、メモリ読み出しコマンド生成回路２１からのメモリ読み出しコマンド２１２が有効であった場合に、メモリ読み出しアドレス生成回路２２からのメモリ読み出しアドレス２２１によって指定されたアドレスのデータを読み出してメモリ読み出しデータ３３に出力する。
【００２９】
また、診断装置１０は、本診断装置１０の主要部を形成する診断読み出し制御部１の他に、ユーザからの診断実施に関する指示を入力するための入力部２０、診断の実行結果をユーザに通知するための出力部３０を少なくとも備えて構成されている。
【００３０】
診断読み出し制御部１は、データエラー検出回路１１、エラービット保持回路１２、エラービット比較回路１３、診断読み出しコマンド生成回路１４、読み出しアドレス保持回路１５、診断読み出しアドレス生成回路１６、診断制御回路１７を少なくとも含んで構成される。
【００３１】
データエラー検出回路１１は、メモリ部３のＤＩＭＭ３１、ＤＩＭＭ３２から読み出したメモリ読み出しデータ３３を引き込んでメモリ読み出しデータのエラーを検出し、エラー報告１１２として診断制御回路１７に対して出力するとともに、検出したエラーが訂正可能障害の場合には、エラーが発生したビットを示すエラービット１１１をエラービット保持回路１２およびエラービット比較回路１３に対して出力する。
【００３２】
エラービット保持回路１２は、データエラー検出回路１１から出力されてきたエラービット１１１を一時保持し、保持したエラービットをエラービット１２１としてエラービット比較回路１３に対して出力する。エラービット比較回路１３は、データエラー検出回路１１から出力されてきたエラービット１１１とエラービット保持回路１２からのエラービット１２１とを比較し、比較結果１３１を診断読み出しコマンド生成回路１４に対して出力する。
【００３３】
診断読み出しコマンド生成回路１４は、エラービット比較回路１３からの比較結果１３１を基に、エラー発生時の部位を中心にして、メモリ部３の診断のためのメモリ読み出しコマンド（すなわち、一時的なエラーか否かを判別するためのリトライ用のメモリ読み出しコマンドや固定的な障害と判別した際の障害部位を切り分けるための切り分けテスト用のメモリ読み出しコマンド）を生成し、メモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１に対して指示する。
【００３４】
読み出しアドレス保持回路１５は、メモリ読み出し制御部２のメモリ読み出しアドレス生成回路２２が出力したメモリ読み出しアドレス２２１を一時保持し、保持したメモリ読み出しアドレスをメモリ読み出しアドレス１５１として診断読み出しアドレス生成回路１６に対して出力する。また、診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５が出力するメモリ読み出しアドレス１５１を基に、エラー発生時の部位を中心にして、メモリ部３の診断のためのメモリ読み出しアドレス（すなわち、一時的なエラーか否かを判別するためのリトライ用のメモリ読み出しアドレスや固定的な障害と判別した際の障害部位を切り分けるための切り分けテスト用のメモリ読み出しアドレス）を生成し、メモリ読み出し制御部２のメモリ読み出しアドレス生成回路２２に対して出力する。
【００３５】
なお、診断読み出しコマンド生成回路１４は、比較結果１３１に基づいて、エラーが発生した際の読み出し動作と同一のメモリ読み出しコマンドを生成するのみならず、エラーが発生したコマンドを中心にして、異なる体系のメモリ読み出しコマンド等を、診断用として生成することも可能である。また、診断読み出しアドレス生成回路１６は、エラーが発生したＤＩＭＭ内のアドレスのみならず、エラーが発生したアドレスを中心にして、当該ＤＩＭＭ内の異なるアドレスや当該ＤＩＭＭ内の異なるＲＡＭや当該ＤＩＭＭとは異なるＤＩＭＭ内のＲＡＭのアドレス等を、診断用として生成することも可能である。
【００３６】
診断制御回路１７は、データエラー検出回路１１から出力されてくるエラー報告１１２に基づいて、メモリ部３の診断の制御を行う。
【００３７】
かくのごとき構成からなる診断装置１０においては、エラー検出時のメモリ読み出しアドレスとエラービットとに基づいて生成する診断用（リトライ動作用や切り分けテスト用）の読み出しコマンドと診断用の読み出しアドレスとを用いて、メモリ部３の診断のためのメモリ読み出し動作をきめ細かく行うことができるので、メモリ部３の障害の発生部位を迅速かつ正確に絞り込むことができる。
【００３８】
（実施形態の動作の説明）
次に、図１に示す診断装置１０の動作について、その一例を詳細に説明する。
【００３９】
図１に示すコンピュータシステム１００においては、前述したように、通常動作時に、メモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１からのメモリ読み出しコマンド２１１が有効であった場合、メモリ読み出し制御部２のメモリ読み出しアドレス生成回路２２からのメモリ読み出しアドレス２２１によって指定されたＤＩＭＭ３１のＲＡＭ３１１のアドレスのデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。ここで、この時のメモリ読み出しアドレス２２１を「アドレスＸ」とする。
【００４０】
この時、データエラー検出回路１１において、エラーを検出すると、エラー報告１１２によって、エラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、この時のエラービット１１１をエラービット保持回路１２に保持するとともに、一時的なエラーか否かを判別するためのリトライ動作として、再度、ＤＩＭＭ３１の同じメモリ読み出しアドレスからメモリ読み出し動作を行うように、診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、エラー検出時と同一のメモリ読み出しコマンドおよびメモリ読み出しアドレスを生成し、エラーを検出した「アドレスＸ」からのメモリ読み出し動作（すなわちリトライ動作）を再度行うことをメモリ読み出し制御部２へ指示する。
【００４１】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２は、エラーが発生した時と同一のメモリ読み出しコマンド２１１、同一のメモリ読み出しアドレス２２１を設定して、再度、メモリ部３のＤＩＭＭ３１の「アドレスＸ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３１の「アドレスＸ」から再度読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００４２】
データエラー検出回路１１において、エラーを検出しなかった場合は、一時的なエラーであるものとして、診断制御回路１７に通知し、その旨の通知を受け取った診断制御回路１７は、エラービット保持回路１２に一時保持していたエラービット１１１を削除して、診断動作を終了する。
【００４３】
一方、データエラー検出回路１１において、再度エラーを検出した場合は、エラー報告１１２によって、再度エラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００４４】
エラービット１１１とエラービット１２１とが不一致であった場合には、１回限りの一時的な障害と判断し、障害被疑部位はＤＩＭＭ３１のマージナルな障害と判断して、診断動作を終了する。
【００４５】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、固定障害が発生しているものと判断して、次に、固定障害部位を切り分けるために、エラーが発生した部位を中心にした切り分けテスト動作に移行して、エラーが発生した同じＤＩＭＭ３１内において「アドレスＸ」とは異なる任意のアドレスに対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。
【００４６】
診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、ＤＩＭＭ３１の「アドレスＸ」とは異なる任意のアドレス例えば「アドレスＹ」を算出し、診断読み出しコマンド生成回路１４は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出した同じＤＩＭＭ３１内であって「アドレスＸ」とは異なる「アドレスＹ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部２へ指示する。
【００４７】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２は、エラーが検出された時と同一のメモリ読み出しコマンド２１１、および、同一のＤＩＭＭ３１内であって「アドレスＸ」とは異なる「アドレスＹ」のメモリ読み出しアドレス２２１を生成して、メモリ部３のＤＩＭＭ３１の「アドレスＹ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３１の「アドレスＹ」から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００４８】
データエラー検出回路１１において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路１７は、障害被疑部位はＤＩＭＭ３１の「アドレスＸ」固有の部位であるものと判断して、診断動作を終了する。
【００４９】
一方、データエラー検出回路１１において、エラーを検出した場合は、エラー報告１１２によって、先にエラーを検出した同一のＤＩＭＭ３１内であって「アドレスＸ」とは異なる「アドレスＹ」においてもエラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００５０】
エラービット１１１とエラービット１２１とが不一致であった場合には、障害被疑部位は、ＤＩＭＭ３１内の「アドレスＸ」および「アドレスＹ」に共通するアドレス部分の固定障害であるものと判断して、診断動作を終了する。
【００５１】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、メモリ読み出しデータのビット位置に関する固定障害であるものと判断して、次に、メモリ読み出しデータ部分の切り分け用のテストとして、エラーが発生したＤＩＭＭ３１とは異なるＤＩＭＭ３２内の任意のアドレス例えば「アドレスＺ」に対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。
【００５２】
診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、エラーが発生したＤＩＭＭ３１とは異なるＤＩＭＭ３２内の任意のアドレス例えば「アドレスＺ」を算出し、診断読み出しコマンド生成回路１４は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出したＤＩＭＭ３１とは異なるＤＩＭＭ３２内の「アドレスＺ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部２へ指示する。
【００５３】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１は、エラーが検出された時と同じ体系のメモリ読み出しコマンドではあるものの、該メモリ読み出しコマンドの出力先が、エラーが検出された時のＤＩＭＭ３１とは異なるＤＩＭＭ３２に対するメモリ読み出しコマンド２１２を生成する。また、メモリ読み出しアドレス生成回路２２は、エラーが検出された時のＤＩＭＭ３１とは異なるＤＩＭＭ３２内であって任意のアドレスの「アドレスＺ」のメモリ読み出しアドレス２２１を生成する。
【００５４】
したがって、メモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２により生成されたメモリ読み出しコマンド２１２およびメモリ読み出しアドレス２２１に基づいて、メモリ部３のＤＩＭＭ３２の「アドレスＺ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３２の「アドレスＺ」から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００５５】
データエラー検出回路１１において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路１７は、障害被疑部位はＤＩＭＭ３１に固有の部位であるものと判断して、診断動作を終了する。
【００５６】
一方、データエラー検出回路１１において、エラーを検出した場合は、エラー報告１１２によって、先にエラーを検出したＤＩＭＭ３１とは異なるＤＩＭＭ３２においてもエラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００５７】
エラービット１１１とエラービット１２１とが不一致であった場合には、障害被疑部位は、ＤＩＭＭ３１の「アドレスＸ」、「アドレスＹ」とＤＩＭＭ３２の「アドレスＺ」とに共通す部位の固定障害であるものと判断して、診断動作を終了する。
【００５８】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、障害被疑部位は、ＤＩＭＭ３１とＤＩＭＭ３２とに共通なメモリ読み出しデータのビット位置に関する固定障害であるものと判断して、診断動作を終了する。
【００５９】
なお、以上の説明においては、エラービット１１１とエラービット１２１とが不一致であった場合、直ちに、障害被疑部位を特定するようにしているが、さらに障害部位を切り分けるための診断用のメモリ読み出し動作を追加して、異なるアドレスにおいてエラーが検出されなくなるか、あるいは、同一のエラービットが検出されるまで、診断用の切り分けテストを繰り返すようにして、障害被疑部位のより正確な切り分けを行うようにしても良い。
【００６０】
また、診断装置１０の診断読み出しコマンド生成回路１４において、診断用のメモリ読み出しコマンドを生成する際に、エラー検出時と同じコマンド体系のメモリ読み出しコマンドを生成するようにしているが、メモリ読み出しコマンド生成回路２１からのエラー検出時のメモリ読み出しコマンド２１１を一時保持する保持回路をさらに備え、メモリ読み出しコマンド系回路部の障害の有無を切り分けるために、エラー検出時とは異なるコマンド体系のメモリ読み出しコマンドも切り分けテスト用として追加して生成するようにしても良い。
【００６１】
（実施形態の効果の説明）
以上に詳細に説明したように、本実施形態においては、以下に記載するような効果を得ることができる。
【００６２】
第１の効果は、メモリ読み出し動作でエラーを検出した際に、直ちに、診断を実行し、エラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を絞り込むので、障害被疑部位の見落としや解析ミス等による保守ミスを未然に防ぐことができることである。
【００６３】
第２の効果は、メモリ読み出し動作で検出したエラー箇所に特化した診断を行うので、障害被疑部位の特定を高速かつ正確に行うことができることである。
【００６４】
第３の効果は、メモリ読み出し動作でエラーを検出した直後に診断を行うので、エラーの再現性が高く、マージナルな障害も含む正確な診断を行うことができることである。
【００６５】
（他の実施形態の構成例）
前述の図１に示すコンピュータシステム１００においては、診断対象のメモリ部３内のＤＩＭＭ３１やＤＩＭＭ３２は、いずれも、ＲＡＭ３１１やＲＡＭ３２１と単一のＲＡＭによって構成されている場合について示したが、本発明は、かかる場合に限るものではなく、診断対象のメモリ部内のＤＩＭＭが、複数個のＲＡＭによって構成されているようにしても良い。かかる構成の場合には、診断装置１０におけるメモリ部３内のＤＩＭＭを構成する複数個のＲＡＭに関して障害被疑部位の切り分けをさらにきめ細かく行い、ＤＩＭＭの障害のうち、当該ＤＩＭＭ内の複数個のＲＡＭのうち、どのＲＡＭに障害があるかを特定することもできる。
【００６６】
図２は、本発明による診断装置を含むコンピュータシステムのブロック構成の図１とは異なる例を示すブロック構成図である。図２に示すコンピュータシステム１００Ａは、図１の場合と同様、本発明による診断装置１０と、診断対象となるメモリ読み出し制御部２およびメモリ部３Ａとを、少なくとも備えて構成されている。ここで、診断装置１０およびメモリ読み出し制御部２は、図１に示したブロック構成と全く同様であり、ここでのさらなる説明は省略する。
【００６７】
これに対して、メモリ部３Ａは、図１の場合とは異なり、メモリモジュールは単一のＤＩＭＭ３１Ａのみであるが、該ＤＩＭＭ３１Ａは、第１のＲＡＭ３１１および第２のＲＡＭ３１２の２個のＲＡＭによって構成されている。第１のＲＡＭ３１１、第２のＲＡＭ３１２には、それぞれ、異なる読み出しアドレスが割り当てられており、メモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１が生成したメモリ読み出しコマンド２１１が有効であった場合に、第１のＲＡＭ３１１、第２のＲＡＭ３１２のうち、メモリ読み出しアドレス生成回路２２からのメモリ読み出しアドレス２２１によって指定されたＲＡＭを対象にして、当該ＲＡＭ内のアドレスのデータを読み出してメモリ読み出しデータ３３に出力する。
【００６８】
なお、図２に示すメモリ部３Ａは、図１のメモリ部３とは異なり、前述したように、メモリモジュールが単一のＤＩＭＭ３１Ａのみであるので、メモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１からの出力についても、図１の場合において第２のメモリモジュールのＤＩＭＭ３２を有効にするために備えていたメモリ読み出しコマンド２１２は不要であり、図２には示していない。
【００６９】
（他の実施形態の動作の説明）
次に、図２に示す診断装置１０の動作について、その一例を詳細に説明する。
【００７０】
図２に示すコンピュータシステム１００Ａにおいても、前述したように、通常動作時に、メモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１からのメモリ読み出しコマンド２１１が有効であった場合、メモリ読み出し制御部２のメモリ読み出しアドレス生成回路２２からのメモリ読み出しアドレス２２１によって指定された例えばＤＩＭＭ３１Ａの第１のＲＡＭ３１１のアドレスのデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。ここで、この時のメモリ読み出しアドレス２２１を「アドレスＸ」とする。つまり、「アドレスＸ」は第１のＲＡＭ３１１内のアドレスである。
【００７１】
この時、データエラー検出回路１１において、エラーを検出すると、エラー報告１１２によって、エラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、この時のエラービット１１１をエラービット保持回路１２に保持するとともに、一時的なエラーか否かを判別するためのリトライ動作として、再度、ＤＩＭＭ３１Ａの第１のＲＡＭ３１１の同じメモリ読み出しアドレスからメモリ読み出し動作を行うように、診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、エラー検出時と同一のメモリ読み出しコマンドおよびメモリ読み出しアドレスを生成し、エラーを検出した「アドレスＸ」からのメモリ読み出し動作（すなわちリトライ動作）を再度行うことをメモリ読み出し制御部２へ指示する。
【００７２】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２は、エラーが発生した時と同一のメモリ読み出しコマンド２１１、同一のメモリ読み出しアドレス２２１を設定して、再度、メモリ部３のＤＩＭＭ３１Ａの第１のＲＡＭ３１１の「アドレスＸ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３１Ａの「アドレスＸ」から再度読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００７３】
データエラー検出回路１１において、エラーを検出しなかった場合は、一時的なエラーであるものとして、診断制御回路１７に通知し、その旨の通知を受け取った診断制御回路１７は、エラービット保持回路１２に一時保持していたエラービット１１１を削除して、診断動作を終了する。
【００７４】
一方、データエラー検出回路１１において、再度エラーを検出した場合は、エラー報告１１２によって、再度エラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００７５】
エラービット１１１とエラービット１２１とが不一致であった場合には、１回限りの一時的な障害と判断し、障害被疑部位はＤＩＭＭ３１Ａの第１のＲＡＭ３１１のマージナルな障害と判断して、診断動作を終了する。
【００７６】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、固定障害が発生しているものと判断して、次に、固定障害部位を切り分けるために、エラーが発生した部位を中心にした切り分けテスト動作に移行して、エラーが発生した同じＤＩＭＭ３１Ａの第１のＲＡＭ３１１内において「アドレスＸ」とは異なる任意のアドレスに対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。
【００７７】
診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、ＤＩＭＭ３１Ａの第１のＲＡＭ３１１内の「アドレスＸ」とは異なる任意のアドレス例えば「アドレスＹ」を算出し、診断読み出しコマンド生成回路１４は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出した同じＤＩＭＭ３１Ａの第１のＲＡＭ３１１内であって「アドレスＸ」とは異なる「アドレスＹ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部２へ指示する。
【００７８】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２は、エラーが検出された時と同一のメモリ読み出しコマンド２１１、および、同一のＤＩＭＭ３１Ａの第１のＲＡＭ３１１内であって「アドレスＸ」とは異なる「アドレスＹ」のメモリ読み出しアドレス２２１を生成して、メモリ部３のＤＩＭＭ３１Ａの第１のＲＡＭ３１１内の「アドレスＹ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３１Ａの第１のＲＡＭ３１１内の「アドレスＹ」から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００７９】
データエラー検出回路１１において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路１７は、障害被疑部位はＤＩＭＭ３１Ａの第１のＲＡＭ３１１内の「アドレスＸ」固有の部位であるものと判断して、診断動作を終了する。
【００８０】
一方、データエラー検出回路１１において、エラーを検出した場合は、エラー報告１１２によって、先にエラーを検出した同一のＤＩＭＭ３１Ａの第１のＲＡＭ３１１内であって「アドレスＸ」とは異なる「アドレスＹ」においてもエラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００８１】
エラービット１１１とエラービット１２１とが不一致であった場合には、障害被疑部位はＤＩＭＭ３１Ａの第１のＲＡＭ３１１内の「アドレスＸ」および「アドレスＹ」に共通するアドレス部分の固定障害であるものと判断して、診断動作を終了する。
【００８２】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、メモリ読み出しデータのビット位置に関する固定障害であるものと判断して、次に、メモリ読み出しデータ部分の切り分け用のテストとして、エラーが発生したＤＩＭＭ３１Ａの第１のＲＡＭ３１１とは異なる第２のＲＡＭ３１２内の任意のアドレス例えば「アドレスＺ」に対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６に対して指示する。
【００８３】
診断読み出しアドレス生成回路１６は、読み出しアドレス保持回路１５に保持しているメモリ読み出しアドレス１５１を参照して、エラーが発生したＤＩＭＭ３１Ａの第１のＲＡＭ３１１とは異なる第２のＲＡＭ３１２内の任意のアドレス例えば「アドレスＺ」を算出し、診断読み出しコマンド生成回路１４は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーが発生したＤＩＭＭ３１Ａの第１のＲＡＭ３１１とは異なる第２のＲＡＭ３１２内の「アドレスＺ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部２へ指示する。
【００８４】
診断装置１０の診断読み出しコマンド生成回路１４および診断読み出しアドレス生成回路１６からの指示を受け取ったメモリ読み出し制御部２のメモリ読み出しコマンド生成回路２１は、エラーが検出された時と同じ体系のメモリ読み出しコマンド２１１を生成する。また、メモリ読み出しアドレス生成回路２２は、エラーが検出された時のＤＩＭＭ３１Ａの第１のＲＡＭ３１１とは異なる第２のＲＡＭ３１２内であって任意のアドレスの「アドレスＺ」のメモリ読み出しアドレス２２１を生成する。
【００８５】
したがって、メモリ読み出しコマンド生成回路２１およびメモリ読み出しアドレス生成回路２２により生成されたメモリ読み出しコマンド２１１およびメモリ読み出しアドレス２２１に基づいて、メモリ部３のＤＩＭＭ３１Ａの第２のＲＡＭ３１２内の「アドレスＺ」からデータを読み出してメモリ読み出しデータ３３に出力する。メモリ部３のＤＩＭＭ３１Ａの第２のＲＡＭ３１２内の「アドレスＺ」から読み出されたメモリ読み出しデータ３３は、診断装置１０のデータエラー検出回路１１に入力される。
【００８６】
データエラー検出回路１１において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路１７は、障害被疑部位はＤＩＭＭ３１Ａの第１のＲＡＭ３１１に固有の部位であるものと判断して、診断動作を終了する。
【００８７】
一方、データエラー検出回路１１において、エラーを検出した場合は、エラー報告１１２によって、先にエラーを検出したＤＩＭＭ３１Ａの第１のＲＡＭ３１１とは異なる第２のＲＡＭ３１２においてもエラーを検出したことを、診断制御回路１７に対して報告する。診断制御回路１７は、エラービット比較回路１３により、この時のエラービット１１１と、エラービット保持回路１２に先に保持していたエラービット１２１とを比較する。
【００８８】
エラービット１１１とエラービット１２１とが不一致であった場合には、障害被疑部位は、ＤＩＭＭ３１Ａの第１のＲＡＭ３１１の「アドレスＸ」、「アドレスＹ」と第２のＲＡＭ３１２の「アドレスＺ」とに共通する部位の固定障害であるものと判断して、診断動作を終了する。
【００８９】
一方、エラービット１１１とエラービット１２１とが一致した場合は、診断制御回路１７は、障害被疑部位は、ＤＩＭＭ３１Ａの第１のＲＡＭ３１１と第２のＲＡＭ３１２とに共通なメモリ読み出しデータのビット位置に関する固定障害であるものと判断して、診断動作を終了する。
【００９０】
なお、以上の説明においては、エラービット１１１とエラービット１２１とが不一致であった場合、直ちに、障害被疑部位を特定するようにしているが、前述した図１の実施形態の場合と同様、さらに障害部位を切り分けるための診断用のメモリ読み出し動作を追加して、異なるアドレスにおいてエラーが検出されなくなるか、あるいは、同一のエラービットが検出されるまで、診断用の切り分けテストを繰り返すようにして、障害被疑部位のより正確な切り分けを行うようにしても良い。
【００９１】
また、診断装置１０の診断読み出しコマンド生成回路１４において、診断用のメモリ読み出しコマンドを生成する際に、エラー検出時と同じコマンド体系のメモリ読み出しコマンドを生成するようにしているが、前述した図１の実施形態の場合と同様、メモリ読み出しコマンド生成回路２１からのエラー検出時のメモリ読み出しコマンド２１１を一時保持する保持回路をさらに備え、メモリ読み出しコマンド系回路部の障害の有無を切り分けるために、エラー検出時とは異なるコマンド体系のメモリ読み出しコマンドも切り分けテスト用として追加して生成するようにしても良い。
【００９２】
以上のように、前述した図１の実施形態の場合とメモリ部の構成が異なる場合であっても、図１の実施形態の場合と同様、メモリ部３Ａの障害被疑部位を迅速かつ正確に特定することができる。
【００９３】
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【００９４】
１          診断メモリ読み出し制御部
２          メモリ読み出し制御部
３          メモリ部
３Ａ        メモリ部
１０        診断装置
１１        データエラー検出回路
１２        エラービット保持回路
１３        エラービット比較回路
１４        診断読み出しコマンド生成回路
１５        読み出しアドレス保持回路
１６        診断読み出しアドレス生成回路
１７        診断制御回路
２０        入力部
３０        出力部
２１        メモリ読み出しコマンド生成回路
２２        メモリ読み出しアドレス生成回路
３１        ＤＩＭＭ（第１メモリモジュール）
３１Ａ      ＤＩＭＭ
３２        ＤＩＭＭ（第２メモリモジュール）
３３        メモリ読み出しデータ
１００      コンピュータシステム
１００Ａ    コンピュータシステム
１１１      エラービット
１１２      エラー報告
１２１      エラービット
１３１      比較結果
１５１      メモリ読み出しアドレス
２１１      メモリ読み出しコマンド
２１２      メモリ読み出しコマンド
２２１      メモリ読み出しアドレス
３１１      ＲＡＭ
３１２      ＲＡＭ
３２１      ＲＡＭ
【図１】
0005545771.tif 000002
【図２】
0005545771.tif 000003