説明

診断装置、診断方法および診断プログラム診断方法

【課題】コンピュータシステムのメモリ部の障害の被疑部位を高速かつ正確に特定する診断装置を提供する。
【解決手段】コンピュータシステム100のメモリ部3にアクセスしてエラーが発生した際に、診断装置10は、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットをそれぞれ読み出しアドレス保持回路15およびエラービット保持回路12に保持し、診断読み出しアドレス生成回路16および診断読み出しコマンド生成回路14からメモリ読み出し制御部2に指示してエラー発生時の同一メモリ読み出しアドレスに再度アクセスするリトライ動作を実施させ、リトライ結果として、エラービット比較回路13において再度同一のエラービットが発生するか否かの比較結果131に基づいて、診断制御回路17は、固定障害か否かを判別し、固定障害と判別した場合エラーが発生した部位を中心に切り分けテストを行い、障害被疑部位を特定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、診断装置、診断方法および診断プログラムに関し、特に、コンピュータシステムのメモリ部の診断を行う診断装置、診断方法および診断プログラムに関する。
【背景技術】
【0002】
コンピュータシステムにおいては、例えばメモリ部からの読み出しデータのエラーを検出した場合、メモリ部の障害部位を直ちに交換して、継続して運用することが重要である。一般に、メモリ部からの読み出しデータのエラー検出時には、メモリ部の読み出しアドレスと読み出しデータのエラービットとが得られるが、障害部位によっては、エラー検出箇所以外にも障害が波及している場合があり、メモリ読み出しアドレスと読み出しデータのエラービットだけでは、障害部位の正確な特定を行うことは困難である。
【0003】
このため、従来のコンピュータシステムにおいては、メモリ部の障害発生時の被疑部位の判別方法としては、診断回路のパトロールによって検出した障害状況から判断して障害の可能性がある部位をすべて指摘するか、あるいは、汎用的な診断プログラムを実行して障害被疑部位を特定していた。
【0004】
例えば、特許文献1の特開平5−210597号公報「記憶装置のパトロール回路」には、コンピュータシステムの診断回路が記載されていて、パトロールにより検出したエラー情報をチェックして、障害の可能性がある部位をすべて抽出している。
【0005】
また、例えば、特許文献2の特開平9−218798号公報「間欠障害の診断方法および電子装置」には、コンピュータシステムの診断方法が記載されていて、汎用的な診断プログラムを用いて、障害被疑部位を特定するための診断を行っている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−210597号公報(第2−3頁)
【特許文献2】特開平9−218798号公報(第3−4頁)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の診断方法においては、次のような課題がある。
【0008】
第1の課題は、診断回路によって検出した障害の情報が汎用的で漠然とした情報になっていることが多いため、障害被疑部位の特定が正確にできないということである。
【0009】
第2の課題は、コンピュータシステムの回路構成の如何には無関係な汎用的な診断プログラムにより診断することが多いため、検出した障害状況に特化した診断をきめ細かく行うことができず、障害被疑部位の特定が正確にできないということ、および、診断プログラムによる診断実行完了までに時間が掛かることである。
【0010】
(本発明の目的)
本発明は、かかる事情に鑑みてなされたものであり、コンピュータシステムのメモリ部の障害の被疑部位を高速かつ正確に特定する診断装置、診断方法および診断プログラムを提供することを、その目的としている。
【課題を解決するための手段】
【0011】
前述の課題を解決するため、本発明による診断装置、診断方法および診断プログラムは、主に、次のような特徴的な構成を採用している。
【0012】
(1)本発明による診断装置は、コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断装置であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持する保持手段と、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライする手段とを少なくとも備え、リトライ結果として、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合、前記保持手段に保持されているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定する手段を備えていることを特徴とする。
【0013】
(2)本発明による診断方法は、コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断方法であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持し、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライした結果、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合に、一時的に保持しているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定することを特徴とする。
【0014】
(3)本発明による診断プログラムは、少なくとも前記(2)に記載の診断方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【0015】
本発明の診断装置、診断方法および診断プログラムによれば、以下のような効果を奏することができる。
【0016】
第1の効果は、メモリ読み出し動作でエラーを検出した際に、直ちに、診断を実行し、エラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を絞り込むので、障害被疑部位の見落としや解析ミス等による保守ミスを未然に防ぐことができることである。
【0017】
第2の効果は、メモリ読み出し動作で検出したエラー箇所に特化した診断を行うので、障害被疑部位の特定を高速かつ正確に行うことができることである。
【0018】
第3の効果は、メモリ読み出し動作でエラーを検出した直後に診断を行うので、エラーの再現性が高く、マージナルな障害も含む正確な診断を行うことができることである。
【図面の簡単な説明】
【0019】
【図1】本発明による診断装置のブロック構成の一例を示すブロック構成図である。
【図2】本発明による診断装置を含むコンピュータシステムのブロック構成の図1とは異なる例を示すブロック構成図である。
【発明を実施するための形態】
【0020】
以下、本発明による診断装置、診断方法および診断プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による診断装置および診断方法について説明するが、かかる診断方法をコンピュータにより実行可能な診断プログラムとして実施するようにしても良いし、あるいは、診断プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。
【0021】
(本発明の特徴)
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、コンピュータシステムのメモリ装置における障害検出時に、被疑部位の特定を高速かつ正確に行うことを可能にしていることを特徴としている。
【0022】
より具体的には、メモリ装置の診断用としてデータエラー検出回路とエラービット保持回路とエラービット比較回路と診断読み出しコマンド生成回路と読み出しアドレス保持回路と診断読み出しアドレス生成回路と診断制御回路とを少なくとも備えることにより、メモリ装置の読み出しデータのエラーが発生した場合に、同一メモリ読み出しアドレスに再度アクセスするリトライ動作を行い、再度同一のエラービットが検出された場合、固定障害と判別し、エラーが発生した部位を中心にして、診断用の読み出し動作を切り分けテストとして実施することによって、障害部位を、迅速かつ精度高く正確に特定することを可能にしている。
【0023】
(実施形態の構成例)
次に、本発明による診断装置および診断方法の実施形態について説明する。図1は、本発明による診断装置のブロック構成の一例を示すブロック構成図であり、該診断装置は、コンピュータシステムを構成するメモリ部の診断を行うために、当該コンピュータシステム内に装備されている。なお、図1に示すコンピュータシステム100は、本発明による診断装置10に関連する部位のみを示し、関係しない部位については省略して示している。
【0024】
図1に示すように、コンピュータシステム100は、本発明による診断装置10と、診断対象となるメモリ読み出し制御部2およびメモリ部3とを、少なくとも備えて構成されている。
【0025】
診断装置10は、メモリ部3からの読み出しデータのエラーを検出し、診断を行う部位であり、メモリ読み出し制御部2は、メモリ部3からデータを読み出す制御を行う部位である。
【0026】
また、メモリ読み出し制御部2は、通常動作時におけるメモリ部3からの読み出し動作だけでなく、診断装置10からの指示により、メモリ部3の診断のために、リトライ動作用や障害部位の切り分けテスト用として実施する、メモリ部3からのデータの読み出し制御も行う部位であり、メモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22を含んで構成されている。
【0027】
ここで、メモリ読み出しコマンド生成回路21は、メモリ部3の第1メモリモジュールであるDIMM(Dual Inline Memory Module)31に対するメモリ読み出しコマンド211、および、第2メモリモジュールであるDIMM32に対するメモリ読み出しコマンド212を生成して出力する部位である。また、メモリ読み出しアドレス生成回路22は、第1メモリモジュールであるDIMM31および第2メモリモジュールであるDIMM32に対するメモリ読み出しアドレス221を生成して出力する部位である。
【0028】
メモリ部3は、第1のメモリモジュールであるDIMM31、第2のメモリモジュールであるDIMM32を少なくとも含んで構成されている。DIMM31は、RAM(Random Access Memory)311により構成され、DIMM32は、RAM321により構成される。DIMM31は、メモリ読み出しコマンド生成回路21からのメモリ読み出しコマンド211が有効であった場合に、メモリ読み出しアドレス生成回路22からのメモリ読み出しアドレス221によって指定されたアドレスのデータを読み出してメモリ読み出しデータ33に出力する。一方、DIMM32は、メモリ読み出しコマンド生成回路21からのメモリ読み出しコマンド212が有効であった場合に、メモリ読み出しアドレス生成回路22からのメモリ読み出しアドレス221によって指定されたアドレスのデータを読み出してメモリ読み出しデータ33に出力する。
【0029】
また、診断装置10は、本診断装置10の主要部を形成する診断読み出し制御部1の他に、ユーザからの診断実施に関する指示を入力するための入力部20、診断の実行結果をユーザに通知するための出力部30を少なくとも備えて構成されている。
【0030】
診断読み出し制御部1は、データエラー検出回路11、エラービット保持回路12、エラービット比較回路13、診断読み出しコマンド生成回路14、読み出しアドレス保持回路15、診断読み出しアドレス生成回路16、診断制御回路17を少なくとも含んで構成される。
【0031】
データエラー検出回路11は、メモリ部3のDIMM31、DIMM32から読み出したメモリ読み出しデータ33を引き込んでメモリ読み出しデータのエラーを検出し、エラー報告112として診断制御回路17に対して出力するとともに、検出したエラーが訂正可能障害の場合には、エラーが発生したビットを示すエラービット111をエラービット保持回路12およびエラービット比較回路13に対して出力する。
【0032】
エラービット保持回路12は、データエラー検出回路11から出力されてきたエラービット111を一時保持し、保持したエラービットをエラービット121としてエラービット比較回路13に対して出力する。エラービット比較回路13は、データエラー検出回路11から出力されてきたエラービット111とエラービット保持回路12からのエラービット121とを比較し、比較結果131を診断読み出しコマンド生成回路14に対して出力する。
【0033】
診断読み出しコマンド生成回路14は、エラービット比較回路13からの比較結果131を基に、エラー発生時の部位を中心にして、メモリ部3の診断のためのメモリ読み出しコマンド(すなわち、一時的なエラーか否かを判別するためのリトライ用のメモリ読み出しコマンドや固定的な障害と判別した際の障害部位を切り分けるための切り分けテスト用のメモリ読み出しコマンド)を生成し、メモリ読み出し制御部2のメモリ読み出しコマンド生成回路21に対して指示する。
【0034】
読み出しアドレス保持回路15は、メモリ読み出し制御部2のメモリ読み出しアドレス生成回路22が出力したメモリ読み出しアドレス221を一時保持し、保持したメモリ読み出しアドレスをメモリ読み出しアドレス151として診断読み出しアドレス生成回路16に対して出力する。また、診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15が出力するメモリ読み出しアドレス151を基に、エラー発生時の部位を中心にして、メモリ部3の診断のためのメモリ読み出しアドレス(すなわち、一時的なエラーか否かを判別するためのリトライ用のメモリ読み出しアドレスや固定的な障害と判別した際の障害部位を切り分けるための切り分けテスト用のメモリ読み出しアドレス)を生成し、メモリ読み出し制御部2のメモリ読み出しアドレス生成回路22に対して出力する。
【0035】
なお、診断読み出しコマンド生成回路14は、比較結果131に基づいて、エラーが発生した際の読み出し動作と同一のメモリ読み出しコマンドを生成するのみならず、エラーが発生したコマンドを中心にして、異なる体系のメモリ読み出しコマンド等を、診断用として生成することも可能である。また、診断読み出しアドレス生成回路16は、エラーが発生したDIMM内のアドレスのみならず、エラーが発生したアドレスを中心にして、当該DIMM内の異なるアドレスや当該DIMM内の異なるRAMや当該DIMMとは異なるDIMM内のRAMのアドレス等を、診断用として生成することも可能である。
【0036】
診断制御回路17は、データエラー検出回路11から出力されてくるエラー報告112に基づいて、メモリ部3の診断の制御を行う。
【0037】
かくのごとき構成からなる診断装置10においては、エラー検出時のメモリ読み出しアドレスとエラービットとに基づいて生成する診断用(リトライ動作用や切り分けテスト用)の読み出しコマンドと診断用の読み出しアドレスとを用いて、メモリ部3の診断のためのメモリ読み出し動作をきめ細かく行うことができるので、メモリ部3の障害の発生部位を迅速かつ正確に絞り込むことができる。
【0038】
(実施形態の動作の説明)
次に、図1に示す診断装置10の動作について、その一例を詳細に説明する。
【0039】
図1に示すコンピュータシステム100においては、前述したように、通常動作時に、メモリ読み出し制御部2のメモリ読み出しコマンド生成回路21からのメモリ読み出しコマンド211が有効であった場合、メモリ読み出し制御部2のメモリ読み出しアドレス生成回路22からのメモリ読み出しアドレス221によって指定されたDIMM31のRAM311のアドレスのデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。ここで、この時のメモリ読み出しアドレス221を「アドレスX」とする。
【0040】
この時、データエラー検出回路11において、エラーを検出すると、エラー報告112によって、エラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、この時のエラービット111をエラービット保持回路12に保持するとともに、一時的なエラーか否かを判別するためのリトライ動作として、再度、DIMM31の同じメモリ読み出しアドレスからメモリ読み出し動作を行うように、診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、エラー検出時と同一のメモリ読み出しコマンドおよびメモリ読み出しアドレスを生成し、エラーを検出した「アドレスX」からのメモリ読み出し動作(すなわちリトライ動作)を再度行うことをメモリ読み出し制御部2へ指示する。
【0041】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22は、エラーが発生した時と同一のメモリ読み出しコマンド211、同一のメモリ読み出しアドレス221を設定して、再度、メモリ部3のDIMM31の「アドレスX」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM31の「アドレスX」から再度読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0042】
データエラー検出回路11において、エラーを検出しなかった場合は、一時的なエラーであるものとして、診断制御回路17に通知し、その旨の通知を受け取った診断制御回路17は、エラービット保持回路12に一時保持していたエラービット111を削除して、診断動作を終了する。
【0043】
一方、データエラー検出回路11において、再度エラーを検出した場合は、エラー報告112によって、再度エラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0044】
エラービット111とエラービット121とが不一致であった場合には、1回限りの一時的な障害と判断し、障害被疑部位はDIMM31のマージナルな障害と判断して、診断動作を終了する。
【0045】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、固定障害が発生しているものと判断して、次に、固定障害部位を切り分けるために、エラーが発生した部位を中心にした切り分けテスト動作に移行して、エラーが発生した同じDIMM31内において「アドレスX」とは異なる任意のアドレスに対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。
【0046】
診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、DIMM31の「アドレスX」とは異なる任意のアドレス例えば「アドレスY」を算出し、診断読み出しコマンド生成回路14は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出した同じDIMM31内であって「アドレスX」とは異なる「アドレスY」からのメモリ読み出し動作を行うことをメモリ読み出し制御部2へ指示する。
【0047】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22は、エラーが検出された時と同一のメモリ読み出しコマンド211、および、同一のDIMM31内であって「アドレスX」とは異なる「アドレスY」のメモリ読み出しアドレス221を生成して、メモリ部3のDIMM31の「アドレスY」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM31の「アドレスY」から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0048】
データエラー検出回路11において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路17は、障害被疑部位はDIMM31の「アドレスX」固有の部位であるものと判断して、診断動作を終了する。
【0049】
一方、データエラー検出回路11において、エラーを検出した場合は、エラー報告112によって、先にエラーを検出した同一のDIMM31内であって「アドレスX」とは異なる「アドレスY」においてもエラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0050】
エラービット111とエラービット121とが不一致であった場合には、障害被疑部位は、DIMM31内の「アドレスX」および「アドレスY」に共通するアドレス部分の固定障害であるものと判断して、診断動作を終了する。
【0051】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、メモリ読み出しデータのビット位置に関する固定障害であるものと判断して、次に、メモリ読み出しデータ部分の切り分け用のテストとして、エラーが発生したDIMM31とは異なるDIMM32内の任意のアドレス例えば「アドレスZ」に対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。
【0052】
診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、エラーが発生したDIMM31とは異なるDIMM32内の任意のアドレス例えば「アドレスZ」を算出し、診断読み出しコマンド生成回路14は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出したDIMM31とは異なるDIMM32内の「アドレスZ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部2へ指示する。
【0053】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21は、エラーが検出された時と同じ体系のメモリ読み出しコマンドではあるものの、該メモリ読み出しコマンドの出力先が、エラーが検出された時のDIMM31とは異なるDIMM32に対するメモリ読み出しコマンド212を生成する。また、メモリ読み出しアドレス生成回路22は、エラーが検出された時のDIMM31とは異なるDIMM32内であって任意のアドレスの「アドレスZ」のメモリ読み出しアドレス221を生成する。
【0054】
したがって、メモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22により生成されたメモリ読み出しコマンド212およびメモリ読み出しアドレス221に基づいて、メモリ部3のDIMM32の「アドレスZ」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM32の「アドレスZ」から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0055】
データエラー検出回路11において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路17は、障害被疑部位はDIMM31に固有の部位であるものと判断して、診断動作を終了する。
【0056】
一方、データエラー検出回路11において、エラーを検出した場合は、エラー報告112によって、先にエラーを検出したDIMM31とは異なるDIMM32においてもエラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0057】
エラービット111とエラービット121とが不一致であった場合には、障害被疑部位は、DIMM31の「アドレスX」、「アドレスY」とDIMM32の「アドレスZ」とに共通す部位の固定障害であるものと判断して、診断動作を終了する。
【0058】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、障害被疑部位は、DIMM31とDIMM32とに共通なメモリ読み出しデータのビット位置に関する固定障害であるものと判断して、診断動作を終了する。
【0059】
なお、以上の説明においては、エラービット111とエラービット121とが不一致であった場合、直ちに、障害被疑部位を特定するようにしているが、さらに障害部位を切り分けるための診断用のメモリ読み出し動作を追加して、異なるアドレスにおいてエラーが検出されなくなるか、あるいは、同一のエラービットが検出されるまで、診断用の切り分けテストを繰り返すようにして、障害被疑部位のより正確な切り分けを行うようにしても良い。
【0060】
また、診断装置10の診断読み出しコマンド生成回路14において、診断用のメモリ読み出しコマンドを生成する際に、エラー検出時と同じコマンド体系のメモリ読み出しコマンドを生成するようにしているが、メモリ読み出しコマンド生成回路21からのエラー検出時のメモリ読み出しコマンド211を一時保持する保持回路をさらに備え、メモリ読み出しコマンド系回路部の障害の有無を切り分けるために、エラー検出時とは異なるコマンド体系のメモリ読み出しコマンドも切り分けテスト用として追加して生成するようにしても良い。
【0061】
(実施形態の効果の説明)
以上に詳細に説明したように、本実施形態においては、以下に記載するような効果を得ることができる。
【0062】
第1の効果は、メモリ読み出し動作でエラーを検出した際に、直ちに、診断を実行し、エラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を絞り込むので、障害被疑部位の見落としや解析ミス等による保守ミスを未然に防ぐことができることである。
【0063】
第2の効果は、メモリ読み出し動作で検出したエラー箇所に特化した診断を行うので、障害被疑部位の特定を高速かつ正確に行うことができることである。
【0064】
第3の効果は、メモリ読み出し動作でエラーを検出した直後に診断を行うので、エラーの再現性が高く、マージナルな障害も含む正確な診断を行うことができることである。
【0065】
(他の実施形態の構成例)
前述の図1に示すコンピュータシステム100においては、診断対象のメモリ部3内のDIMM31やDIMM32は、いずれも、RAM311やRAM321と単一のRAMによって構成されている場合について示したが、本発明は、かかる場合に限るものではなく、診断対象のメモリ部内のDIMMが、複数個のRAMによって構成されているようにしても良い。かかる構成の場合には、診断装置10におけるメモリ部3内のDIMMを構成する複数個のRAMに関して障害被疑部位の切り分けをさらにきめ細かく行い、DIMMの障害のうち、当該DIMM内の複数個のRAMのうち、どのRAMに障害があるかを特定することもできる。
【0066】
図2は、本発明による診断装置を含むコンピュータシステムのブロック構成の図1とは異なる例を示すブロック構成図である。図2に示すコンピュータシステム100Aは、図1の場合と同様、本発明による診断装置10と、診断対象となるメモリ読み出し制御部2およびメモリ部3Aとを、少なくとも備えて構成されている。ここで、診断装置10およびメモリ読み出し制御部2は、図1に示したブロック構成と全く同様であり、ここでのさらなる説明は省略する。
【0067】
これに対して、メモリ部3Aは、図1の場合とは異なり、メモリモジュールは単一のDIMM31Aのみであるが、該DIMM31Aは、第1のRAM311および第2のRAM312の2個のRAMによって構成されている。第1のRAM311、第2のRAM312には、それぞれ、異なる読み出しアドレスが割り当てられており、メモリ読み出し制御部2のメモリ読み出しコマンド生成回路21が生成したメモリ読み出しコマンド211が有効であった場合に、第1のRAM311、第2のRAM312のうち、メモリ読み出しアドレス生成回路22からのメモリ読み出しアドレス221によって指定されたRAMを対象にして、当該RAM内のアドレスのデータを読み出してメモリ読み出しデータ33に出力する。
【0068】
なお、図2に示すメモリ部3Aは、図1のメモリ部3とは異なり、前述したように、メモリモジュールが単一のDIMM31Aのみであるので、メモリ読み出し制御部2のメモリ読み出しコマンド生成回路21からの出力についても、図1の場合において第2のメモリモジュールのDIMM32を有効にするために備えていたメモリ読み出しコマンド212は不要であり、図2には示していない。
【0069】
(他の実施形態の動作の説明)
次に、図2に示す診断装置10の動作について、その一例を詳細に説明する。
【0070】
図2に示すコンピュータシステム100Aにおいても、前述したように、通常動作時に、メモリ読み出し制御部2のメモリ読み出しコマンド生成回路21からのメモリ読み出しコマンド211が有効であった場合、メモリ読み出し制御部2のメモリ読み出しアドレス生成回路22からのメモリ読み出しアドレス221によって指定された例えばDIMM31Aの第1のRAM311のアドレスのデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。ここで、この時のメモリ読み出しアドレス221を「アドレスX」とする。つまり、「アドレスX」は第1のRAM311内のアドレスである。
【0071】
この時、データエラー検出回路11において、エラーを検出すると、エラー報告112によって、エラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、この時のエラービット111をエラービット保持回路12に保持するとともに、一時的なエラーか否かを判別するためのリトライ動作として、再度、DIMM31Aの第1のRAM311の同じメモリ読み出しアドレスからメモリ読み出し動作を行うように、診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、エラー検出時と同一のメモリ読み出しコマンドおよびメモリ読み出しアドレスを生成し、エラーを検出した「アドレスX」からのメモリ読み出し動作(すなわちリトライ動作)を再度行うことをメモリ読み出し制御部2へ指示する。
【0072】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22は、エラーが発生した時と同一のメモリ読み出しコマンド211、同一のメモリ読み出しアドレス221を設定して、再度、メモリ部3のDIMM31Aの第1のRAM311の「アドレスX」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM31Aの「アドレスX」から再度読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0073】
データエラー検出回路11において、エラーを検出しなかった場合は、一時的なエラーであるものとして、診断制御回路17に通知し、その旨の通知を受け取った診断制御回路17は、エラービット保持回路12に一時保持していたエラービット111を削除して、診断動作を終了する。
【0074】
一方、データエラー検出回路11において、再度エラーを検出した場合は、エラー報告112によって、再度エラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0075】
エラービット111とエラービット121とが不一致であった場合には、1回限りの一時的な障害と判断し、障害被疑部位はDIMM31Aの第1のRAM311のマージナルな障害と判断して、診断動作を終了する。
【0076】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、固定障害が発生しているものと判断して、次に、固定障害部位を切り分けるために、エラーが発生した部位を中心にした切り分けテスト動作に移行して、エラーが発生した同じDIMM31Aの第1のRAM311内において「アドレスX」とは異なる任意のアドレスに対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。
【0077】
診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、DIMM31Aの第1のRAM311内の「アドレスX」とは異なる任意のアドレス例えば「アドレスY」を算出し、診断読み出しコマンド生成回路14は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーを検出した同じDIMM31Aの第1のRAM311内であって「アドレスX」とは異なる「アドレスY」からのメモリ読み出し動作を行うことをメモリ読み出し制御部2へ指示する。
【0078】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22は、エラーが検出された時と同一のメモリ読み出しコマンド211、および、同一のDIMM31Aの第1のRAM311内であって「アドレスX」とは異なる「アドレスY」のメモリ読み出しアドレス221を生成して、メモリ部3のDIMM31Aの第1のRAM311内の「アドレスY」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM31Aの第1のRAM311内の「アドレスY」から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0079】
データエラー検出回路11において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路17は、障害被疑部位はDIMM31Aの第1のRAM311内の「アドレスX」固有の部位であるものと判断して、診断動作を終了する。
【0080】
一方、データエラー検出回路11において、エラーを検出した場合は、エラー報告112によって、先にエラーを検出した同一のDIMM31Aの第1のRAM311内であって「アドレスX」とは異なる「アドレスY」においてもエラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0081】
エラービット111とエラービット121とが不一致であった場合には、障害被疑部位はDIMM31Aの第1のRAM311内の「アドレスX」および「アドレスY」に共通するアドレス部分の固定障害であるものと判断して、診断動作を終了する。
【0082】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、メモリ読み出しデータのビット位置に関する固定障害であるものと判断して、次に、メモリ読み出しデータ部分の切り分け用のテストとして、エラーが発生したDIMM31Aの第1のRAM311とは異なる第2のRAM312内の任意のアドレス例えば「アドレスZ」に対してメモリ読み出し動作を行うことを診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16に対して指示する。
【0083】
診断読み出しアドレス生成回路16は、読み出しアドレス保持回路15に保持しているメモリ読み出しアドレス151を参照して、エラーが発生したDIMM31Aの第1のRAM311とは異なる第2のRAM312内の任意のアドレス例えば「アドレスZ」を算出し、診断読み出しコマンド生成回路14は、エラーが発生した際の同一のメモリ読み出しコマンドを生成して、エラーが発生したDIMM31Aの第1のRAM311とは異なる第2のRAM312内の「アドレスZ」からのメモリ読み出し動作を行うことをメモリ読み出し制御部2へ指示する。
【0084】
診断装置10の診断読み出しコマンド生成回路14および診断読み出しアドレス生成回路16からの指示を受け取ったメモリ読み出し制御部2のメモリ読み出しコマンド生成回路21は、エラーが検出された時と同じ体系のメモリ読み出しコマンド211を生成する。また、メモリ読み出しアドレス生成回路22は、エラーが検出された時のDIMM31Aの第1のRAM311とは異なる第2のRAM312内であって任意のアドレスの「アドレスZ」のメモリ読み出しアドレス221を生成する。
【0085】
したがって、メモリ読み出しコマンド生成回路21およびメモリ読み出しアドレス生成回路22により生成されたメモリ読み出しコマンド211およびメモリ読み出しアドレス221に基づいて、メモリ部3のDIMM31Aの第2のRAM312内の「アドレスZ」からデータを読み出してメモリ読み出しデータ33に出力する。メモリ部3のDIMM31Aの第2のRAM312内の「アドレスZ」から読み出されたメモリ読み出しデータ33は、診断装置10のデータエラー検出回路11に入力される。
【0086】
データエラー検出回路11において、エラーを検出しなかった場合は、その旨の通知を受け取った診断制御回路17は、障害被疑部位はDIMM31Aの第1のRAM311に固有の部位であるものと判断して、診断動作を終了する。
【0087】
一方、データエラー検出回路11において、エラーを検出した場合は、エラー報告112によって、先にエラーを検出したDIMM31Aの第1のRAM311とは異なる第2のRAM312においてもエラーを検出したことを、診断制御回路17に対して報告する。診断制御回路17は、エラービット比較回路13により、この時のエラービット111と、エラービット保持回路12に先に保持していたエラービット121とを比較する。
【0088】
エラービット111とエラービット121とが不一致であった場合には、障害被疑部位は、DIMM31Aの第1のRAM311の「アドレスX」、「アドレスY」と第2のRAM312の「アドレスZ」とに共通する部位の固定障害であるものと判断して、診断動作を終了する。
【0089】
一方、エラービット111とエラービット121とが一致した場合は、診断制御回路17は、障害被疑部位は、DIMM31Aの第1のRAM311と第2のRAM312とに共通なメモリ読み出しデータのビット位置に関する固定障害であるものと判断して、診断動作を終了する。
【0090】
なお、以上の説明においては、エラービット111とエラービット121とが不一致であった場合、直ちに、障害被疑部位を特定するようにしているが、前述した図1の実施形態の場合と同様、さらに障害部位を切り分けるための診断用のメモリ読み出し動作を追加して、異なるアドレスにおいてエラーが検出されなくなるか、あるいは、同一のエラービットが検出されるまで、診断用の切り分けテストを繰り返すようにして、障害被疑部位のより正確な切り分けを行うようにしても良い。
【0091】
また、診断装置10の診断読み出しコマンド生成回路14において、診断用のメモリ読み出しコマンドを生成する際に、エラー検出時と同じコマンド体系のメモリ読み出しコマンドを生成するようにしているが、前述した図1の実施形態の場合と同様、メモリ読み出しコマンド生成回路21からのエラー検出時のメモリ読み出しコマンド211を一時保持する保持回路をさらに備え、メモリ読み出しコマンド系回路部の障害の有無を切り分けるために、エラー検出時とは異なるコマンド体系のメモリ読み出しコマンドも切り分けテスト用として追加して生成するようにしても良い。
【0092】
以上のように、前述した図1の実施形態の場合とメモリ部の構成が異なる場合であっても、図1の実施形態の場合と同様、メモリ部3Aの障害被疑部位を迅速かつ正確に特定することができる。
【0093】
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【0094】
1 診断メモリ読み出し制御部
2 メモリ読み出し制御部
3 メモリ部
3A メモリ部
10 診断装置
11 データエラー検出回路
12 エラービット保持回路
13 エラービット比較回路
14 診断読み出しコマンド生成回路
15 読み出しアドレス保持回路
16 診断読み出しアドレス生成回路
17 診断制御回路
20 入力部
30 出力部
21 メモリ読み出しコマンド生成回路
22 メモリ読み出しアドレス生成回路
31 DIMM(第1メモリモジュール)
31A DIMM
32 DIMM(第2メモリモジュール)
33 メモリ読み出しデータ
100 コンピュータシステム
100A コンピュータシステム
111 エラービット
112 エラー報告
121 エラービット
131 比較結果
151 メモリ読み出しアドレス
211 メモリ読み出しコマンド
212 メモリ読み出しコマンド
221 メモリ読み出しアドレス
311 RAM
312 RAM
321 RAM

【特許請求の範囲】
【請求項1】
コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断装置であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持する保持手段と、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライする手段とを少なくとも備え、リトライ結果として、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合、前記保持手段に保持されているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定する手段を備えていることを特徴とする診断装置。
【請求項2】
固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する前記手段として、エラー発生時の前記メモリ部の同一メモリモジュール内の異なるアドレス、または、エラー発生時の前記メモリ部の同一メモリモジュール内に複数個のRAM(Random Access Memory)が存在する場合エラー発生時のRAMとは異なるRAM内の任意のアドレス、または、エラー発生時の前記メモリ部に複数個のメモリモジュールが存在する場合エラー発生時のメモリモジュールとは異なるメモリモジュール内の任意のアドレス、のいずれか1ないし複数に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項1に記載の診断装置。
【請求項3】
エラー発生時のメモリ読み出しコマンドを一時的に保持する保持手段をさらに備え、固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する前記手段として、エラー発生時のメモリ読み出しコマンドと同一のメモリ読み出しコマンド、または、エラー発生時のメモリ読み出しコマンドとは異なるコマンド体系からなるメモリ読み出しコマンド、のいずれかまたは双方を用いて、エラー発生時の前記メモリ部に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項1または2に記載の診断装置。
【請求項4】
コンピュータシステムのメモリ部にアクセスしてエラーが発生した際に、エラーが発生した障害被疑部位を特定する診断方法であって、エラー発生時のメモリ読み出しアドレスおよびメモリ読み出しデータのエラービットを一時的に保持し、エラー発生時の同一メモリ読み出しアドレスに再度アクセスしてリトライした結果、再度同一のエラービットが発生するか否かに基づいて、固定障害か否かを判別し、固定障害と判別した場合に、一時的に保持しているエラー発生時の前記メモリ読み出しアドレスおよび前記メモリ読み出しデータのエラービットを参照して得られるエラーが発生した部位を中心にして切り分けテストを行うことにより、障害被疑部位を特定することを特徴とする診断方法。
【請求項5】
固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する際に、エラー発生時の前記メモリ部の同一メモリモジュール内の異なるアドレス、または、エラー発生時の前記メモリ部の同一メモリモジュール内に複数個のRAM(Random Access Memory)が存在する場合エラー発生時のRAMとは異なるRAM内の任意のアドレス、または、エラー発生時の前記メモリ部に複数個のメモリモジュールが存在する場合エラー発生時のメモリモジュールとは異なるメモリモジュール内の任意のアドレス、のいずれか1ないし複数に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項4に記載の診断方法。
【請求項6】
エラー発生時のメモリ読み出しコマンドをさらに一時的に保持し、固定障害と判別した場合にエラーが発生した部位を中心にして切り分けテストを行うことにより障害被疑部位を特定する際に、エラー発生時のメモリ読み出しコマンドと同一のメモリ読み出しコマンド、または、エラー発生時のメモリ読み出しコマンドとは異なるコマンド体系からなるメモリ読み出しコマンド、のいずれかまたは双方を用いて、エラー発生時の前記メモリ部に対して診断用のアクセスを行い、エラー発生時のエラービットと同一のエラービットが発生するか否かに基づいて、障害被疑部位を特定することを特徴とする請求項4または5に記載の診断方法。
【請求項7】
請求項4ないし6のいずれかに記載の診断方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする診断プログラム。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2013−37631(P2013−37631A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−175241(P2011−175241)
【出願日】平成23年8月10日(2011.8.10)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】