(57)【要約】【課題】プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保すること。【解決手段】第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置であって、第２のプロセッサによりメモリ診断プログラムを実行させることにより、メインメモリを診断し、メインメモリ内の不良領域を特定するメモリ診断手段と、メインメモリのうち、メモリ診断手段により特定された不良領域を除く領域に、第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開手段と、展開されたプロセッサ診断プログラムを第２のプロセッサにより実行させることにより、第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定手段と、を有する。【選択図】        図３
2010092127.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置であって、
前記第２のプロセッサにメモリ診断プログラムを実行させることにより、前記メインメモリを診断し、前記メインメモリ内の不良領域を特定するメモリ診断手段と、
前記メインメモリのうち、前記メモリ診断手段により特定された不良領域を除く領域に、前記第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開手段と、
前記展開された前記プロセッサ診断プログラムを前記第２のプロセッサに実行させることにより、前記第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定手段と、
を有することを特徴とするコンピュータ装置。
【請求項２】
前記プロセッサ診断プログラムは、前記第１のプロセッサの有する複数の機能をそれぞれ診断する複数の診断プログラムを含み、
前記診断プログラム展開手段は、前記複数の診断プログラムを、所定の順番で、順次展開し、
前記不良機能特定手段は、前記順次展開される診断プログラムを前記第２のプロセッサに順次実行させることにより、前記不良機能を段階的に特定することを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
前記コンピュータにて起動されるオペレーティングシステムの起動異常を検知するオペレーティングシステム異常検知手段と、
前記オペレーティングシステム異常検知手段が前記起動異常を検知した場合に、前記不良機能特定手段により特定された前記不良機能を、前記第１のプロセッサの診断結果として告知する診断結果告知手段と、
を有することを特徴とする請求項１または２に記載のコンピュータ装置。
【請求項４】
前記各手段は、電源の投入時に起動して、前記メインメモリに対するデータの入出力を制御する制御プログラムである基本入出力プログラム内に組み込まれており、当該基本入出力プログラムの起動時に実行状態となることを特徴とする請求項１〜３のいずれか１つに記載のコンピュータ装置。
【請求項５】
第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置が、
前記第２のプロセッサにメモリ診断プログラムを実行させることにより、前記メインメモリを診断し、前記メインメモリ内の不良領域を特定するメモリ診断ステップと、
前記メインメモリのうち、前記メモリ診断手段により特定された不良領域を除く領域に、前記第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開ステップと、
前記展開された前記プロセッサ診断プログラムを前記第２のプロセッサに実行させることにより、前記第１のプロセッサの実行する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定ステップと、
を実行することを特徴とするプロセッサ診断方法。
【請求項６】
第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置に、
前記第２のプロセッサにメモリ診断プログラムを実行させることにより、前記メインメモリを診断し、前記メインメモリ内の不良領域を特定するメモリ診断手順と、
前記メインメモリのうち、前記メモリ診断手段により特定された不良領域を除く領域に、前記第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開手順と、
前記展開された前記プロセッサ診断プログラムを前記第２のプロセッサに実行させることにより、前記第２のプロセッサの実行する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定手順と、
を実行させることを特徴とするプロセッサ診断制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラムに関し、特に、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保するコンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラムに関する。
【背景技術】
【０００２】
従来より、コンピュータ装置では、内蔵された各デバイスの不良箇所を診断する種々の診断テストが行われている。例えば、特許文献１には、内蔵された各メモリにおけるメモリ機能が正常に機能するか否か（例えば、メモリに所定のデータが正常に読み書きできるか否か）を診断するメモリ診断テストを実行するものが開示されている。
【０００３】
この種のコンピュータ装置では、内部ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）の一部に、各デバイスに対応する診断プログラムを記憶しておき、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）の起動後に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサによって、上記した診断プログラムをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリ上に展開して実行することにより、各種の診断テストを実行している。
【０００４】
【特許文献１】特開平６−４４１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来のコンピュータ装置では、プロセッサに異常がある場合には、各種の診断テストを正常に実行できない。すなわち、プロセッサは、複数の機能を実行するものであるが、この複数の機能に実行不能な不良機能が存在する場合には、プロセッサの動作が不安定となるため、診断プログラムを正常に実行することができない。
【０００６】
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保するコンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本願の開示するコンピュータ装置は、一つの態様において、第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置であって、前記第２のプロセッサにメモリ診断プログラムを実行させることにより、前記メインメモリを診断し、前記メインメモリ内の不良領域を特定するメモリ診断手段と、前記メインメモリのうち、前記メモリ診断手段により特定された不良領域を除く領域に、前記第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開手段と、前記展開された前記プロセッサ診断プログラムを前記第２のプロセッサに実行させることにより、前記第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定手段と、を有する。
【０００８】
この態様によれば、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保することができる。
【０００９】
なお、本願の開示するコンピュータ装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも上述した課題を解決するために有効である。
【発明の効果】
【００１０】
本願の開示するコンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラムの一つの態様によれば、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、本願の開示するコンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラムの好適な実施の形態を詳細に説明する。
【実施例】
【００１２】
まず、本実施例に係るコンピュータ装置の概要について説明する。本実施例に係るコンピュータ装置は、第１のプロセッサと、第２のプロセッサと、メインメモリとを有するコンピュータ装置であって、前記第２のプロセッサにメモリ診断プログラムを実行させることにより、前記メインメモリを診断し、前記メインメモリ内の不良領域を特定するメモリ診断手段と、前記メインメモリのうち、前記不良領域を除く領域に、前記第１のプロセッサの有する複数の機能を診断するためのプロセッサ診断プログラムを展開する診断プログラム展開手段と、前記展開された前記プロセッサ診断プログラムを前記第２のプロセッサに実行させることにより、前記第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を特定する不良機能特定手段と、を有するものである。
【００１３】
すなわち、本実施例に係るコンピュータ装置は、ＣＰＵ等の２つのプロセッサを有しており、このうち一方のプロセッサ（第２のプロセッサ）が、他方のプロセッサ（第１のプロセッサ）の有する機能を診断可能なプロセッサ診断プログラムを、メインメモリ上で実行することにより、第１のプロセッサの診断を行う。なお、第１のプロセッサの有する機能には、演算機能やデータ入出力機能等の基本的な機能の他、メインメモリの仮想アドレス変換機能等の応用的な機能が含まれる。
【００１４】
そして、第１のプロセッサの診断過程で、メモリ診断手段は、コンピュータ装置の有するメインメモリを診断することにより、メインメモリ内の不良領域を特定する。なお、不良領域とは、メインメモリの全領域のうち、読み書き機能などのメモリ機能が正常に機能しない領域を言う。
【００１５】
診断プログラム展開手段は、メインメモリのうち、不良領域を除く領域に、プロセッサ診断プログラムを展開する。すなわち、プロセッサ診断プログラムは、メインメモリのうち、メモリ機能が正常に機能する領域に常に展開される。したがって、プロセッサ診断プログラムが実行不能となる事態を確実に回避できる。
【００１６】
ここで、プロセッサ診断プログラムは、第１のプロセッサの有する複数の機能をそれぞれ診断する複数の診断プログラムを含み、診断プログラム展開手段は、これら複数の診断プログラムを、所定の順番で、順次展開する。所定の順番としては、例えば、演算機能や、各種デバイスに対するデータ入出力機能等の基本的な機能から、その他の応用的な機能へと向かう順番等、第１のプロセッサの有する機能毎に予め定められた順番を採用することができる。
【００１７】
不良機能特定手段は、順次展開される診断プログラムを順次実行することにより、第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を段階的に特定する。したがって、第２のプロセッサにより１つのプロセッサ診断プログラムを一度に実行するよりも、第２のプロセッサの処理負担を軽減することができる。
【００１８】
このように、本実施例では、第２のプロセッサにより第１のプロセッサを診断する際に、メインメモリを診断することにより、メインメモリ内の不良領域を特定する。そして、メインメモリのうち、不良領域を除く領域に、プロセッサ診断プログラムを展開し、この展開されたプロセッサ診断プログラムを実行することにより、第１のプロセッサの有する複数の機能のうち、実行不能な機能である不良機能を特定する。このように構成したので、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保することができる。
【００１９】
なお、前記メモリ診断手段、前記診断プログラム展開手段、及び前記不良機能特定手段としては、例えば、第２のプロセッサが、コンピュータ装置の起動時にＲＯＭから読み出して実行するＢＩＯＳプログラムなどにその機能を担わせることができる。
【００２０】
次に、図１を参照して、本実施例に係るコンピュータ装置の構成について説明する。図１は、本実施例に係るコンピュータ装置１の構成を示す機能ブロック図であり、図２は、図１に示すＤＲＡＭの詳細を示す説明図である。
【００２１】
図１に示すように、コンピュータ装置１は、ＣＰＵ１０と、診断用ＣＰＵ１１と、ＤＲＡＭ２０と、ＲＯＭ３０と、表示コントローラ４０と、それらを互いに接続するバス６０と、を有する。
【００２２】
ＣＰＵ１０は、第１のプロセッサとして、コンピュータ装置１の全体を制御し、各種機能を実行する制御部である。
【００２３】
診断用ＣＰＵ１１は、第２のプロセッサとして、コンピュータ装置１の起動時にＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラム３１をＲＯＭ３０から読み出して実行し、ＣＰＵ１０の診断を行う自己診断用の制御部である。具体的には、診断用ＣＰＵ１１は、ＢＩＯＳプログラム３１の実行中に、ＣＰＵ診断プログラム３２をＲＯＭ３０から読み出して、ＤＲＡＭ２０上で実行することにより、ＣＰＵ１０の診断を行う。
【００２４】
ＤＲＡＭ２０は、コンピュータ装置１のメインメモリ（主記憶装置）である。具体的には、ＤＲＡＭ２０は、ＣＰＵ１０の実行対象となるプログラム（ＢＩＯＳプログラム３１やＣＰＵ診断プログラム３２を含む）が展開され、かかるプログラムによる各種データなどが一時的に格納されるワーキングメモリとして用いられる。また、ＤＲＡＭ２０は、図２に示すように、ＣＰＵ１０のワーキングメモリとして使用されるために、所定長で区画した複数の領域（１）〜（２０）に区分されて管理されている。
【００２５】
ＲＯＭ３０は、ＣＰＵ１０が実行する各種プログラムやデータを記憶している。ＲＯＭ３０に記憶されているプログラムには、ＢＩＯＳプログラム３１、ＣＰＵ診断プログラム３２、メモリ診断プログラム３３等が含まれている。
【００２６】
ＢＩＯＳプログラム３１は、基本入出力プログラムのことである。具体的には、ＢＩＯＳプログラム３１は、コンピュータ装置１の電源投入時に起動して、ＯＳやアプリケーションプログラムと、ＤＲＡＭ２０や周辺機器（ディスプレイ、キーボード等）との間でのデータの入出力を制御する制御プログラムである。また、ＢＩＯＳプログラム３１は、診断用ＣＰＵ１１により実行されて、演算機能等のＣＰＵ１０の有する複数の機能が正常に動作するか否かなどを診断するＣＰＵ診断処理（プロセッサ診断処理）を行う。なお、ＢＩＯＳプログラム３１がＣＰＵ診断処理を行う具体的な構成については、別途詳細に説明する。
【００２７】
ＣＰＵ診断プログラム３２は、ＣＰＵ１０の有する複数の機能を診断可能なプロセッサ診断プログラムであり、ＢＩＯＳプログラム３１がＣＰＵ１０のＣＰＵ診断処理を行う際に実行されるものである。本実施例では、ＣＰＵ診断プログラム３２は、ＣＰＵ１０の有する複数の機能をそれぞれ診断する複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…を含む。
【００２８】
例えば、図４に示すように、診断プログラム３２ａは、ＣＰＵ１０の有する演算機能が正常に動作するか否かを診断するプログラムである。また、診断プログラム３２ｂは、ＣＰＵ１０の有するデータ入出力機能が正常に動作するか否かを診断するプログラムである。また、診断プログラム３２ｃは、ＣＰＵ１０の有する仮想アドレス変換機能が正常に動作するか否かを診断するプログラムである。なお、図４は、図１に示すＣＰＵ診断プログラム３２の一例を示す説明図である。
【００２９】
メモリ診断プログラム３３は、ＤＲＡＭ２０の種々のメモリ機能が正常に機能するか否か（例えば、所定のデータが正常に読み書きできるか否か）を診断するためのプログラムである。また、メモリ診断プログラム３３は、ＣＰＵ診断プログラム３２と同様に、ＢＩＯＳプログラム３１がＣＰＵ１０のＣＰＵ診断処理を行う際に実行されるものである。
【００３０】
表示コントローラ４０は、ディスプレイ５０と接続されており、ＣＰＵ１０の診断結果などの表示出力をディスプレイ５０に出力する。ディスプレイ５０は、画像表示装置であり、表示コントローラ４０からの表示出力を視認可能に表示する。
【００３１】
次に、図３を参照して、図１に示すＢＩＯＳプログラム３１がＣＰＵ１０に対するＣＰＵ診断処理を行う具体的な構成について詳細に説明する。図３は、図１に示すＢＩＯＳプログラム３１の詳細を示す機能ブロック図である。なお、図３では、ＲＯＭ３０に記憶されたＢＩＯＳプログラム３１が診断用ＣＰＵ１１によって実行されることにより実現される機能を機能ブロックとして示している。
【００３２】
ＢＩＯＳプログラム３１は、メモリ診断部３１１と、診断プログラム展開部３１２と、不良機能特定部３１３と、ＯＳ（オペレーティングシステム）異常検知部３１４と、診断結果告知部３１５と、を機能部として有している。これら各機能部３１１〜３１５は、ＢＩＯＳプログラム３１の起動時（実行時）に実行状態となる。
【００３３】
このＢＩＯＳプログラム３１は、前述したように、コンピュータ装置１の起動時に最初に実行される。したがって、ＯＳ起動前に、ＣＰＵ１０のＣＰＵ診断処理を実行することとなるので、ＯＳが起動しない場合であっても、ＣＰＵ診断プログラムを正常に実行することが可能となる。
【００３４】
メモリ診断部３１１は、ＤＲＡＭ２０を診断することにより、ＤＲＡＭ２０内の不良領域を特定する。なお、不良領域とは、ＤＲＡＭ２０の全領域のうち、読み書き機能などのメモリ機能が正常に機能しない領域である。ＤＲＡＭ２０の診断は、メモリ診断プログラム３３を実行することにより行われる。
【００３５】
診断プログラム展開部３１２は、ＤＲＡＭ２０のうち、メモリ診断部３１１により特定された不良領域を除く領域に、ＣＰＵ診断プログラム３２を展開する。また、診断プログラム展開部３１２は、ＣＰＵ診断プログラム３２に含まれる複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…を、所定の順番で、順次展開する。
【００３６】
この所定の順番として、本実施例では、ＣＰＵ１０の有する基本的な機能から、応用的な機能へ向かう順番を採用している。例えば、図４に示すように、診断プログラム３２ａの診断機能である演算機能が、診断プログラム３２ｂの診断機能であるデータ入出力機能よりも基本的な機能であるため、診断プログラム展開部３１２は、ＣＰＵ診断プログラム３２を、診断プログラム３２ａ、３２ｂの順番で展開する。さらに、診断プログラム３２ｂの診断機能であるデータ入出力機能が、診断プログラム３２ｃの診断機能である仮想アドレス変換機能よりも基本的な機能であるため、診断プログラム展開部３１２は、ＣＰＵ診断プログラム３２を、診断プログラム３２ａ、３２ｂ、３２ｃの順番で展開する。
【００３７】
不良機能特定部３１３は、診断プログラム展開部３１２により展開されたＣＰＵ診断プログラム３２を実行することにより、ＣＰＵ１０の有する複数の機能のうち、実行不能な機能である不良機能を特定する。また、不良機能特定部３１３は、診断プログラム３２ａ、３２ｂ、３２ｃ、…の順番で順次展開されるＣＰＵ診断プログラム３２を順次実行することにより、ＣＰＵ１０の不良機能を段階的に特定する。したがって、診断用ＣＰＵ１１により１つのＣＰＵ診断プログラム３２を一度に実行するよりも、診断用ＣＰＵ１１の処理負担を軽減することができる。
【００３８】
ＯＳ異常検知部３１４は、ＯＳの起動異常を検知する。ＯＳの起動異常としては、例えば、コンピュータ装置１が停止しキーボードやマウスの入力を受け付けなくなる状態（いわゆる、ハングアップ）や、ＯＳ自体の処理が継続不可能になる状態（いわゆる、青画面、黒画面）等が含まれる。このＯＳ異常検知部３１４は、例えば、正常時のコンピュータ装置１の起動時間を予め測定し、タイムアウト時間を決めてＲＯＭ３０内の所定領域に記憶しておき、ＯＳがタイムアウト時を経過した後もなおハングアップ、青画面、黒画面の状態にある場合に、ＯＳの起動異常を検知するようにしている。
【００３９】
診断結果告知部３１５は、ＯＳ異常検知部３１４がＯＳの起動異常を検知した場合に、不良機能特定部３１３により特定された不良機能を、ＣＰＵ１０の診断結果として表示コントローラ４０へ表示出力する。表示コントローラ４０へ表示出力されたＣＰＵ１０の診断結果は、ディスプレイ５０に表示される。したがって、ディスプレイ５０でＣＰＵ１０の診断結果を確認したユーザは、ＣＰＵ１０における不良箇所の修理や、ＣＰＵ１０の交換等の適切な処置を即座にとることができる。
【００４０】
次に、図５を参照して、ＢＩＯＳプログラム３１がＣＰＵ１０のＣＰＵ診断処理を行う処理手順について具体的に説明する。図５は、ＢＩＯＳプログラム３１がＣＰＵ１０のＣＰＵ診断処理を行う処理手順を示す説明図である。
【００４１】
まず、図５に示すように、メモリ診断部３１１によってメモリ診断プログラム３３が実行されると、ＤＲＡＭ２０内の不良領域が特定される。ここでは、ＤＲＡＭ２０の全領域（１）〜（２０）のうち、領域（５）、（６）、及び（１９）が不良領域として特定されている。
【００４２】
続いて、診断プログラム展開部３１２によって、ＤＲＡＭ２０の全領域のうち、不良領域を除く領域が、ＣＰＵ診断プログラム３２を展開する展開対象領域として設定される。図５では、ＤＲＡＭ２０の全領域のうち、領域（５）、（６）、及び（１９）を除く領域が、ＣＰＵ診断プログラム３２の展開対象領域として設定されている。したがって、ＣＰＵ診断プログラム３２は、ＤＲＡＭ２０のうち、メモリ機能が正常に機能する領域に常に展開されるため、ＣＰＵ診断処理が途中で実行不能となる事態を確実に回避できる。
【００４３】
続いて、診断プログラム展開部３１２によって、ＣＰＵ診断プログラム３２に含まれる複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…が、この順番で順次展開される。そして、順次展開される複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…は、不良機能特定部３１３によって、順次実行され、ＣＰＵ１０の有する複数の機能から不良機能が段階的に特定される。ここで、複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…が展開される順番は、上述したように、ＣＰＵ１０の有する基本的な機能から、応用的な機能へ向かう順番である。したがって、ＣＰＵ１０の有する複数の機能から不良機能が段階的に特定されるため、ＣＰＵ１０の有する複数の機能のうち、どの段階の機能まで実行可能であるのかを詳細に特定することができる。
【００４４】
次に、図６を参照して、本実施例に係るコンピュータ装置のＣＰＵ診断処理について説明する。図６は、本実施例に係るコンピュータ装置１のＣＰＵ診断処理を示すフローチャートである。なお、図６に示すＣＰＵ診断処理は、コンピュータ装置１の電源が投入された後、診断用ＣＰＵ１１が、ＢＩＯＳプログラム３１をＲＯＭ３０から読み出して実行することにより、実行される処理である。
【００４５】
図６に示すように、まず、ＢＩＯＳプログラム３１のメモリ診断部３１１は、メモリ診断プログラム３３を実行し（ステップＳ１１）、ＤＲＡＭ２０の全領域を、１つの領域ごとに診断する（ステップＳ１２）。このとき、メモリ診断部３１１は、メモリ診断結果と、ＤＲＡＭ２０のアドレス情報とを関連付ける。
【００４６】
続いて、メモリ診断部３１１は、ＤＲＡＭ２０の全領域に、未診断の領域が有るか否かを判定する（ステップＳ１３）。この判定は、ＤＲＡＭ２０の各領域のアドレス情報に、メモリ診断結果が関連付けられているか否かを判定することにより行われる。この判定の結果、ＤＲＡＭ２０の全領域に、未診断の領域が有ると判定すると（ステップＳ１３：Ｙｅｓ）、メモリ診断部３１１は、ＤＲＡＭ２０の全領域に、未診断の領域が無くなるまで、ステップＳ１２〜ステップＳ１３の処理を繰り返す。
【００４７】
一方、ＤＲＡＭ２０の全領域に、未診断の領域が無いと判定すると（ステップＳ１３：Ｎｏ）、メモリ診断部３１１は、異常であると診断されたＤＲＡＭ２０のアドレス情報を参照して、ＤＲＡＭ２０内の不良領域を特定する（ステップＳ１４）。
【００４８】
そして、診断プログラム展開部３１２は、ＤＲＡＭ２０の全領域のうち、ステップＳ１４にて特定された不良領域を除く領域を、展開対象領域として設定し（ステップＳ１５）、その展開対象領域に、ＣＰＵ診断プログラム３２中の１の診断プログラムを展開する（ステップＳ１６）。
【００４９】
続いて、不良機能特定部３１３は、展開されたＣＰＵ診断プログラム３２を実行することにより、ＣＰＵ１０の有する複数の機能のうち、不良機能を特定する（ステップＳ１７）。このとき、不良機能特定部３１３は、特定したＣＰＵ１０の不良機能を、ＣＰＵ１０の診断結果として診断結果告知部３１５へ送信する。
【００５０】
そして、不良機能特定部３１３は、ステップＳ１７にて特定されたＣＰＵ１０の不良機能が存在するか否かを判定する（ステップＳ１８）。この判定の結果、ＣＰＵ１０の不良機能が存在すると判定すると（ステップＳ１８：Ｙｅｓ）、不良機能特定部３１３は、特定したＣＰＵ１０の不良機能を、ＣＰＵ１０の診断結果として診断結果告知部３１５へ送信する。診断結果告知部３１５は、不良機能特定部３１３から受信したＣＰＵ１０の診断結果を、表示コントローラ４０を介してディスプレイ５０に表示し（ステップＳ２２）、ＣＰＵ診断処理を終了する。
【００５１】
一方、ＣＰＵ１０の不良機能が存在しないと判定すると（ステップＳ１８：Ｎｏ）、不良機能特定部３１３は、全てのＣＰＵ診断プログラム３２を実行したか否かを判定する（ステップＳ１９）。この判定の結果、全てのＣＰＵ診断プログラム３２を実行していないと判定すると（ステップＳ１９：Ｎｏ）、処理をステップＳ１６へ戻す。一方、全てのＣＰＵ診断プログラム３２を実行したと判定すると（ステップＳ１９：Ｙｅｓ）、不良機能特定部３１３は、処理をステップＳ２０へ移す。
【００５２】
ステップＳ２０において、ＢＩＯＳプログラム３１は、ＯＳを起動し、処理をステップＳ２１へ移す。
【００５３】
ステップＳ２１において、ＢＩＯＳプログラム３１のＯＳ異常検知部３１４は、ＯＳの起動異常が有る否かを検知する。この検知の結果、ＯＳの起動異常を検知すると（ステップＳ２１：Ｙｅｓ）、ＯＳ異常検知部３１４は、その検知信号を診断結果告知部３１５へ送信する。ＯＳ異常検知部３１４からの検知信号を受信すると、診断結果告知部３１５は、不良機能特定部３１３から受信したＣＰＵ１０の診断結果を、表示コントローラ４０を介してディスプレイ５０に表示し（ステップＳ２２）、ＣＰＵ診断処理を終了する。一方、ＯＳの起動異常がないと検知すると（ステップＳ２１：Ｎｏ）、ＯＳ異常検知部３１４は、ＣＰＵ診断処理を終了する。
【００５４】
上述してきたように、本実施例では、メモリ診断部３１１は、ＤＲＡＭ２０を診断することにより、ＤＲＡＭ２０内の不良領域を特定し、診断プログラム展開部３１２は、ＤＲＡＭ２０のうち、不良領域を除く領域に、ＣＰＵ診断プログラム３２を展開し、不良機能特定部３１３は、展開されたＣＰＵ診断プログラム３２を実行することにより、ＣＰＵ１０の有する複数の機能のうち、実行不能な機能である不良機能を特定することとした。かかる構成としたので、プロセッサの不良機能を確実に特定して、各種の診断テストの正常な実行を担保することができる。
【００５５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【００５６】
例えば、本実施例では、診断プログラム展開部３１２及び不良機能特定部３１３は、ＲＯＭ３０に記憶されたＢＩＯＳプログラム３１が診断用ＣＰＵ１１によって実行されることにより実現される機能部として説明したが、これに限らず、診断プログラム展開部３１２及び不良機能特定部３１３の機能を、ＣＰＵ１０及び診断用ＣＰＵ１１で分担させてもよい。
【００５７】
この場合、ＢＩＯＳプログラム３１に、診断用ＣＰＵ１１をＣＰＵ１０に切り替えるプロセッサ切替手段を設ける。具体的には、診断プログラム展開部３１２が、ＣＰＵ診断プログラム３２に含まれる複数の診断プログラム３２ａ、３２ｂ、３２ｃ、…を、所定の順番まで展開し、不良機能特定部３１３が、その展開された診断プログラムを実行したときに、プロセッサ切替手段は、診断用ＣＰＵ１１をＣＰＵ１０に切り替える。これにより、ＣＰＵ診断プログラム３２のうち、所定の順番より後の順番の診断プログラムは、診断用ＣＰＵ１１に代わってＣＰＵ１０により実行されることになる。
【００５８】
このように、ＢＩＯＳプログラム３１に、プロセッサ切替手段を設けることとすれば、ＣＰＵ１０の有する複数の機能のうち、基本的な機能の診断を診断用ＣＰＵ１１に実行させると共に、応用的な機能の診断をＣＰＵ１０自身に実行させることができる。したがって、診断用ＣＰＵ１１の処理負担を軽減することができ、ＣＰＵ診断処理全体の処理時間を短縮することができる。さらに、診断用ＣＰＵ１１として、低機能かつ低コストなプロセッサを用いることができるため、コンピュータ装置１全体の製造コストの増大を抑制することができる。
【００５９】
また、本実施例では、ＢＩＯＳプログラム３１をＤＲＡＭ２０上で実行することで、ＣＰＵ診断処理を実行することとしたが、ＢＩＯＳプログラム３１を、ＣＰＵ内部のキャッシュメモリ上で実行してもよい。
【００６０】
また、本実施例のＢＩＯＳプログラム３１、ＣＰＵ診断プログラム３２、及びメモリ診断プログラム３３は、必ずしもＲＯＭ３０に記憶されている必要はなく、例えば、フラッシュメモリ等の書き換え可能な不揮発性のメモリに記憶しておき、このプログラムを、診断用ＣＰＵ１１が読み出して実行するようにしてもよい。
【００６１】
また、本実施例のＢＩＯＳプログラム３１、ＣＰＵ診断プログラム３２、及びメモリ診断プログラム３３は、例えば、ネットワークに接続されたサーバ等からフラッシュメモリにダウンロードされるようにしてもよく、さらには、ＣＤ−ＲＯＭ等の記録媒体に記録されてから記録媒体のドライブを介して、フラッシュメモリに読み込まれるようにしてもよい。
【図面の簡単な説明】
【００６２】
【図１】本実施例に係るコンピュータ装置の構成を示す機能ブロック図である。
【図２】図１に示すＤＲＡＭの詳細を示す説明図である。
【図３】図１に示すＢＩＯＳプログラムの詳細を示す機能ブロック図である。
【図４】ＣＰＵ診断プログラムの一例を示す説明図である。
【図５】ＣＰＵ診断処理の処理手順を示す説明図である。
【図６】本実施例に係るコンピュータ装置のＣＰＵ診断処理の処理手順を示すフローチャートである。
【符号の説明】
【００６３】
１              コンピュータ装置
１０            第１のプロセッサ（ＣＰＵ）
１１            第２のプロセッサ（診断用ＣＰＵ）
２０            ＤＲＡＭ
３０            ＲＯＭ
３１            基本入出力プログラム（ＢＩＯＳプログラム）
３２            ＣＰＵ診断プログラム
３２ａ〜３２ｃ  診断プログラム
３１１          メモリ診断部
３１１〜３１５  機能部
３１２          診断プログラム展開部
３１３          不良機能特定部
３１４          ＯＳ異常検知部
３１５          診断結果告知部
【図１】
2010092127.tif 000003
【図２】
2010092127.tif 000004
【図３】
2010092127.tif 000005
【図４】
2010092127.tif 000006
【図５】
2010092127.tif 000007
【図６】
2010092127.tif 000008