(57)【要約】【課題】  マルチプロセッサシステムにおけるＣＰＵボードの交換履歴に関する情報を正確かつ自動的に記録できるようにする。【解決手段】  マルチプロセッサシステム１の初期化にあたり、履歴情報供給部１０８から供給されるＣＰＵボード５の搭載位置を示す搭載位置情報を含んだ装置履歴情報を、装置履歴情報を複数格納可能なＣＰＵボード５内の不揮発性の記憶部１０１に格納するようにして、ＣＰＵボード５の搭載位置情報を各ＣＰＵボード５に正確かつ自動的に記録し、ＣＰＵボード５の搭載位置に関する履歴をＣＰＵボード５単位で記録及び管理することができるようにする。【選択図】  図３
2005301593.tif 000002
【特許請求の範囲】
【請求項１】
複数の交換可能なプロセッサ装置で構成されるマルチプロセッサシステムであって、
当該マルチプロセッサシステムの初期化にあたり、上記プロセッサ装置に対して上記マルチプロセッサシステムにて当該プロセッサ装置が搭載されている位置を示す搭載位置情報を含む装置履歴情報を供給する履歴情報供給手段と、
上記各プロセッサ装置が有し、上記履歴情報供給手段から供給される装置履歴情報を格納する不揮発性かつ書き換え可能な記憶手段とを備え、
上記記憶手段は、上記装置履歴情報を複数格納可能であることを特徴とするマルチプロセッサシステム。
【請求項２】
上記履歴情報供給手段から供給される装置履歴情報の搭載位置情報と、上記記憶手段に既に格納されている最新の装置履歴情報の搭載位置情報とを比較する比較手段をさらに備え、
上記比較手段による比較の結果、上記搭載位置情報が異なる場合には、上記履歴情報供給手段から供給される装置履歴情報を上記記憶手段に格納することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
上記記憶手段に格納されている装置履歴情報の格納順番を管理する管理手段をさらに備えることを特徴とする請求項１又は２記載のマルチプロセッサシステム。
【請求項４】
上記管理手段は、上記記憶手段における最新の上記装置履歴情報の格納位置を示すポインタであることを特徴とする請求項３記載のマルチプロセッサシステム。
【請求項５】
上記装置履歴情報は、当該装置履歴情報の供給時の時刻情報をさらに含むことを特徴とする請求項１〜４の何れか１項に記載のマルチプロセッサシステム。
【請求項６】
上記装置履歴情報は、上記マルチプロセッサシステムを一意に識別可能なシステム識別情報をさらに含むことを特徴とする請求項１〜５の何れか１項に記載のマルチプロセッサシステム。
【請求項７】
上記プロセッサ装置が複数のプロセッサを有することを特徴とする請求項１〜６の何れか１項に記載のマルチプロセッサシステム。
【請求項８】
複数の交換可能なプロセッサ装置で構成されるマルチプロセッサシステムに搭載可能なプロセッサ装置であって、
当該プロセッサ装置が搭載されている上記マルチプロセッサシステム内の位置を示す搭載位置情報を含む装置履歴情報を受信する履歴情報受信手段と、
上記装置履歴情報を複数格納可能であるとともに、不揮発性かつ書き換え可能な記憶手段と、
上記履歴情報受信手段にて受信した装置履歴情報の搭載位置情報と、上記記憶手段に既に格納されている最新の装置履歴情報の搭載位置情報とを比較する比較手段とを備え、
上記比較手段による比較の結果、上記搭載位置情報が異なる場合に、上記履歴情報受信手段にて受信した装置履歴情報を上記記憶手段に格納することを特徴とするプロセッサ装置。
【請求項９】
上記装置履歴情報の格納順番を管理する管理手段をさらに備えることを特徴とする請求項８記載のプロセッサ装置。
【請求項１０】
複数のプロセッサを有することを特徴とする請求項８又は９記載のプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵをそれぞれ有する複数のプロセッサ装置から構成されるマルチプロセッサシステムに関する。
【背景技術】
【０００２】
一般に、計算機システムにおいて何らかの障害が発生した場合には、障害調査を行って故障部位を交換単位レベル（例えば、ボード単位）で特定し、特定された故障部位を正常に動作するものと交換することで、システム障害からの復旧作業が実施される。特定された故障部位は、交換後に障害の再現試験等により障害解析が行われ、故障箇所を部品レベルまで特定した上で当該故障部品が良品と交換される。このようなプロセスを経て、障害が発生したシステムから取り除かれた故障部位は、障害の原因となった故障部品が交換され、正常に動作することを確認した上で良品として再利用される。
【０００３】
計算機システムは、所定の出荷試験により動作確認を行った後に出荷し稼動しているため、システムにおいて稼動後に障害が発生する頻度は一般に小さい。しかし、稼動後に障害が発生した際の障害原因の特定は、高度なエラー検出、エラー訂正、エラーログ記録等のＲＡＳ（Reliability、Availability、Serviceability）機能をシステムが具備していない場合には、多大な労力や時間を要し困難であることが多い。
ここで、記録媒体を用いる一般的な情報検索システムにおいては、記録媒体の検索テーブルやコンピュータシステム内の検索テーブルに格納データの更新履歴を記憶するものがある（例えば、特許文献１参照。）。
【０００４】
【特許文献１】特開平６−３２５０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現在、一般のマイクロプロセッサは、上述したようなＲＡＳ機能を具備していないものが多い。そのため、マイクロプロセッサをＣＰＵとして搭載しているシステムでは、障害原因の特定は非常に困難であり、故障部位を特定でき良品と交換したとしても、取り除かれた故障部位を用いた再現試験で障害が再現されないことがある。また、再現試験や障害解析が、障害が発生したときの実際のシステム稼働環境と同等の環境のもとで実行できることが少ないことも、障害の再現が困難な理由の１つである。
【０００６】
ここで、ＣＰＵとしてマイクロプロセッサがそれぞれ搭載された多数のＣＰＵボードから構成され、かつ各ＣＰＵボードが筐体に設けられたスロット（搭載部）に対して挿抜可能なように構成されたマルチプロセッサシステムがある。このような多数のマイクロプロセッサ（ＣＰＵボード）を搭載する大規模なマルチプロセッサシステムにおいては、故障箇所の特定はより困難となる。
【０００７】
これは、システムのサイズが大きくなることで冷却能力に筐体内の位置バラツキが生じるとともに、キャリアボードのサイズが大きくなることで配線状態が変わることによる搭載位置依存性が生じるためである。これにより、システムの周囲温度などの設置環境が異なると障害を再現しなかったり、持ち帰った故障部位を対応する搭載位置とは異なる別の搭載位置に搭載すると障害を再現しなかったりするといったことがある。
【０００８】
障害が再現されない場合には、故障部位として持ち帰った物品は良品と判断して再利用されるため、再利用後に障害を再発するおそれがある。
また、システムのある特定の搭載位置のみで障害が繰り返し発生する場合には、故障部位として持ち帰った物品そのものには障害原因が存在せず、システム自体に障害原因があることも想定される。
【０００９】
このような問題を解決するには、ＣＰＵボードの交換履歴に関する情報を追跡することが重要であるが、ユーザによるＣＰＵボードの出し入れ（交換）等が行われたりして交換履歴が不正確であると、却って障害解析に悪影響を与え混乱を招いてしまう。
本発明は、このような事情に鑑みてなされたものであり、マルチプロセッサシステムにおけるＣＰＵボードの交換履歴に関する情報を正確かつ自動的に記録できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のマルチプロセッサシステムは、システムの初期化にあたり、上記プロセッサ装置に対して装置履歴情報を供給する履歴情報供給手段と、上記各プロセッサ装置が有し、上記装置履歴情報を複数格納可能であるとともに、不揮発性かつ書き換え可能な記憶手段とを備える。上記装置履歴情報は、マルチプロセッサシステムにてプロセッサ装置が搭載されている位置を示す搭載位置情報を含む。
上記構成によれば、システム初期化の際に供給されるマルチプロセッサシステムにおけるプロセッサ装置の搭載位置情報を各プロセッサ装置に正確かつ自動的に複数記録することができる。
【００１１】
また、履歴情報供給手段から供給される装置履歴情報の搭載位置情報と、記憶手段に既に格納されている最新の装置履歴情報の搭載位置情報との比較を行い、その結果、搭載位置情報が異なる場合に、供給された装置履歴情報を記憶手段に格納するようにしても良い。このようにした場合には、記憶手段に格納されている最新の装置履歴情報の搭載位置情報と異なる場合のみ、すなわち搭載位置が変わった場合のみ、供給された装置履歴情報を記憶手段に格納するので、記憶手段に効率良く装置履歴情報を格納することができるようになり、記憶手段に要求される記憶容量を低減することが可能となる。
【発明の効果】
【００１２】
本発明によれば、マルチプロセッサシステムにおけるプロセッサ装置の搭載位置を各プロセッサ装置に正確かつ自動的に複数記録し、プロセッサ装置の搭載位置に関する履歴をプロセッサ装置単位で記録及び管理することができる。これにより、システムにて障害が発生した場合に、障害が間欠的に発生する或いは再現しない場合等であっても、障害原因の搭載位置依存性やプロセッサ装置依存性を解析・検出でき、障害原因解析に要するコストを低減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明の一実施形態によるマルチプロセッサシステム１のシステム構成例を示すブロック図である。
【００１４】
マルチプロセッサシステム１は、中央演算処理装置であるＣＰＵ１０−ｉ、主記憶装置であるＭＳＵ（Main Storage Unit）２０−ｉ、フラッシュメモリ（Ｆｌａｓｈ−ＲＯＭ、以下「ＲＯＭ」と称す。）３０−ｉ、ネットワークインタフェース（ＮＩＣ：Network Interface Card）４０−ｉ、システムコントローラ５０、クロック発生器６０、及びコンソールポート（ＣＰ：Console-Port）７０−ｉを備える。なお、ｉは添え字であり、図１に示した例ではｉ＝０〜３の整数である（以下の説明でも同様。）。
【００１５】
ＣＰＵ１０−ｉは、プログラムを構成する命令の読み出し（フェッチ）、解釈（デコード）及び実行を行う。すなわち、各ＣＰＵ１０−ｉは、プログラムを読み出して実行することで、接続されているＭＳＵ２０−ｉ、ＲＯＭ３０−ｉ、及びＮＩＣ４０−ｉ等の制御を行う。
【００１６】
各ＣＰＵ１０−ｉには、ＭＳＵ２０−ｉがメモリバス（メモリインタフェース）ＭＢｉを介して接続され、ＲＯＭ３０−ｉ及びＮＩＣ４０−ｉ等がローカルバスＬＢｉを介して接続されている。具体的には、ＣＰＵ１０−０には、メモリバスＭＢ０を介してＭＳＵ２０−０が接続され、ローカルバスＬＢ０を介してＲＯＭ３０−０及びＮＩＣ４０−０等が接続されている。ＣＰＵ１０−１〜１０−３も同様に、それぞれ対応するＭＳＵ２０−１〜２０−３、ＲＯＭ３０−１〜３０−３、ＮＩＣ４０−１〜４０−３等が接続されている。
【００１７】
ここで、図１に示すように、１組のＣＰＵ１０−ｉ、ＭＳＵ２０−ｉ、ＲＯＭ３０−ｉ及びＮＩＣ４０−ｉ等により１つのＣＰＵボード５−ｉがそれぞれ構成される。そして、各ＣＰＵボード５−ｉは、これを単位として、マルチプロセッサシステム１の筐体に設けられたスロット（搭載部）に対して挿抜可能、つまり交換可能となっている。
また、各ＣＰＵ１０−ｉ（各ＣＰＵボード５−ｉ）は、コンソールポート７０−ｉに接続されている。
【００１８】
また、各ＣＰＵ１０−ｉには、リセット信号（システムリセット信号）ＳＲＳＴ、クロック基準信号ＲＣＬＫ、クロックモード信号ＣＭＯＤ、及びブートモード信号ＢＭＯＤがシステムコントローラ５０から供給され、クロックソース（クロック入力信号）ＳＣＬＫがクロック発生器６０から供給される。リセット信号ＳＲＳＴがリセット入力端子＜ＲＳＴ＞より入力され、クロックソースＳＣＬＫがクロック入力端子＜ＣＬＫＩＮ＞より入力される。また、クロック基準信号ＲＣＬＫ、クロックモード信号ＣＭＯＤ、及びブートモード信号ＢＭＯＤが、異なる汎用入出力端子＜ＧＰＩＯ：General Purpose I/O＞よりそれぞれ入力される。なお、各信号の詳細については後述する。
【００１９】
ＭＳＵ２０−ｉは、メモリ（例えば、ＳＤＲＡＭなどのＲＡＭ）等で構成され、ＯＳ（オペレーティングシステム）などのプログラムやデータ等を一時的に記憶する。ＭＳＵ２０−ｉは、ＣＰＵ１０−ｉが各種の制御を行う時に用いられ、ＣＰＵ１０−ｉのいわゆる主メモリあるいはワークエリア等として機能する。
【００２０】
ＲＯＭ３０−ｉには、自らを含み構成されるＣＰＵボード５−ｉに関するボード情報が記憶されるとともに、マルチプロセッサシステム１にて搭載されたスロット（搭載位置）を示す搭載位置情報を含む装置履歴情報が記憶される。また、ＲＯＭ３０−ｉには、ＣＰＵ１０−ｉが実行するプログラム（ブートプログラム、又はブートプログラムとＯＳ）やデータ等が記憶されている。なお、本実施形態においては、ＲＯＭ３０−ｉとしてフラッシュメモリを一例として示しているが、これに限定されるものではなく、書き換え可能な不揮発性メモリであれば良い。
【００２１】
ＮＩＣ４０−ｉは、ネットワーク（図１においては、ＬＡＮ８０）を介してＣＰＵ１０−ｉと外部機器との間でデータ等を送受信するための通信インタフェースである。なお、本実施形態においては、ＬＡＮ８０をネットワークの一例として示しているが、これに限定されるものではなく、一般に用いられる任意のネットワークが適用可能である。
【００２２】
システムコントローラ５０は、当該マルチプロセッサシステム１全体を制御するものであり、システム識別情報記憶部５１を有し構成される。システムコントローラ５０は、リセット信号ＳＲＳＴ、クロック基準信号ＲＣＬＫ、クロックモード信号ＣＭＯＤ、及びブートモード信号ＢＭＯＤを出力する。
【００２３】
また、システムコントローラ５０は、各コンソールポート７０−ｉを介してＣＰＵ１０−ｉと通信可能なように接続されており、システムの初期化時には各ＣＰＵボード５−ｉに装置履歴情報を供給する。システムコントローラ５０は、オペレータ等が操作可能な外部コンソールに対しても通信可能なように接続されている。
【００２４】
システム識別情報記憶部５１は、不揮発性記憶装置（不揮発性メモリ）により構成され、当該マルチプロセッサシステム１に付与されているシステム識別情報（例えば、当該システムが一意に識別可能な固有のシリアル番号）を保持している。システム識別情報記憶部５１に保持されているシステム識別情報は、マルチプロセッサシステム１の初期化時に必要に応じ、各ＣＰＵボード５−ｉにコンソールポート７０−ｉを介して供給される。
【００２５】
クロック発生器６０は、クロックソースＳＣＬＫを生成し出力する。クロック発生器６０にて生成し出力するクロックソースＳＣＬＫの周波数は、クロック発生器６０を制御することにより任意に変更可能である。
【００２６】
コンソールポート７０−ｉは、ＣＰＵ１０−ｉとシステムコントローラ５０との間でデータ等を送受信するための入出力インタフェースである。コンソールポート７０−ｉは、例えば、システムの初期化時にシステムコントローラ５０からのＣＰＵボード５−ｉに係る装置履歴情報やシステム識別情報をＣＰＵ１０−ｉに送信する。また、例えば、オペレータに伝えるためにＣＰＵ１０−ｉで稼動しているＯＳからのメッセージをシステムコントローラ５０に送信したり、システムコントローラ５０からのコマンドをＣＰＵ１０−ｉに送信したりする。
【００２７】
ここで、リセット信号ＳＲＳＴ、クロック基準信号ＲＣＬＫ、クロックモード信号ＣＭＯＤ、ブートモード信号ＢＭＯＤ、及びクロックソースＳＣＬＫについて説明する。
リセット信号ＳＲＳＴは、マルチプロセッサシステム１を構成する各ＣＰＵ１０−ｉを初期化するための、いわゆるハードリセット信号である。
【００２８】
クロックソースＳＣＬＫは、動作クロック信号としてＣＰＵ１０−ｉに供給されるクロック信号である。
クロック基準信号ＲＣＬＫは、クロック調整用の固定された基準信号であり、一定のデューティ比（クロックデューティ）を有するとともに、クロックソースＳＣＬＫに対して比較的低い周波数の信号である。例えば、クロック基準信号ＲＣＬＫの周波数は１ＭＨｚであり、クロックソースＳＣＬＫの周波数は３７ＭＨｚ〜６６ＭＨｚである。なお、クロック基準信号ＲＣＬＫについての情報は、ＣＰＵ１０−ｉに適宜供給され保持されている。
【００２９】
クロックモード信号ＣＭＯＤは、マルチプロセッサシステム１においてクロック調整を行うための、ＣＰＵの動作クロックと各種インタフェースの制御クロックとの周波数の関係、より詳しくは図２に示すＣＰＵコア、メモリバス（メモリ）、及びローカルバスのクロック周波数の比を示す信号である。このクロックモード信号ＣＭＯＤにより示される値に応じて、ＣＰＵの動作クロックと各種インタフェースの制御クロックとの周波数の関係は一意に決定される。
ブートモード信号ＢＭＯＤは、ブートシーケンスを指示する信号である。
【００３０】
なお、図１においては、４つのＣＰＵボード５−０〜５−３で構成されたマルチプロセッサシステムを一例として図示しているが、マルチプロセッサシステムが有するＣＰＵボードの数は任意である。
【００３１】
図２は、ＣＰＵ１０−ｉの構成例を示すブロック図である。
なお、各ＣＰＵ１０−ｉの構成は同様であるので、図２においては１つのＣＰＵのみ示している。したがって、図１で符号に付した添え字ｉについては付していない。また、図２において、図１に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。
【００３２】
ＣＰＵ１０は、ＣＰＵコア１１、メモリコントローラ１２、バスコントローラ１３、クロック制御回路１４、タイマ１５、及びＳＣＣ（シリアルコミュニケーションコントローラ）１６を有する。
ＣＰＵコア１１は、ＣＰＵ１０においてデータに演算や加工等を施す演算処理を実行するものである。
【００３３】
メモリコントローラ１２は、メモリバスＭＢを介してＭＳＵ２０に接続されており、ＣＰＵコア１１からの指示に基づいてＭＳＵ２０を制御する。すなわち、メモリコントローラ１２は、ＣＰＵコア１１からの指示に応じて、ＭＳＵ２０にデータを書き込んだり、ＭＳＵ２０からデータを読み出したりする。
【００３４】
バスコントローラ１３は、ＣＰＵコア１１からの指示に基づいてローカルバスＬＢに接続された周辺デバイスを制御する。また、バスコントローラ１３は、タイマ１５及びＳＣＣ１６に対して接続されている。バスコントローラ１３には、クロック基準信号ＲＣＬＫ及びブートモード信号ＢＭＯＤがシステムコントローラ５０から供給される。
【００３５】
クロック制御回路１４は、逓倍回路及びＰＬＬ（Phase Locked Loop）回路を含み構成される。クロック制御回路１４は、クロックモード信号ＣＭＯＤを参照して、それにより示される値に応じた周波数比の各クロック信号ＣＣＫ、ＭＣＫ、ＢＣＫ、ＴＣＫをクロックソースＳＣＬＫを用いて生成する。そして、クロック制御回路１４は、生成したクロック信号ＣＣＫ、ＭＣＫ、ＢＣＫ、ＴＣＫを、ＣＰＵコア１１、メモリコントローラ１２、バスコントローラ１３、タイマ１５にそれぞれ供給する。なお、図２においては、バスコントローラ１３及びタイマ１５に供給するクロック信号ＢＣＫ、ＴＣＫは異なるクロック信号としているが、バスコントローラ１３及びタイマ１５に供給するクロック信号は同じクロック信号であっても良い。
【００３６】
タイマ１５は、供給されるクロック信号ＴＣＫに基づいて計時動作を行うものである。
ＳＣＣ１６は、ＣＰＵ１０とシステムコントローラ５０との間でコンソールポート７０を介してデータをシリアル伝送するためのコントローラである。
【００３７】
次に、ＣＰＵボード５の機能的な構成について説明する。
図３は、ＣＰＵボード５の機能的な構成を示す機能ブロック図であり、ここでは、要素的特徴のみを示している。
本実施形態においては、例えば、ＣＰＵ１０及びＲＯＭ３０のブートプログラムから、以下の各機能部１０４、１０５、１０６、及び１０７が構成され、ＲＯＭ３０により記憶部１０１が構成される。
【００３８】
図３において、記憶部１０１は、ＣＰＵボード５の装置履歴情報を格納するものであり、最新値ポインタ１０２及び装置履歴情報１０３を記憶する。最新値ポインタ１０２は、記憶部１０１に記憶されている装置履歴情報１０３の格納順番を管理するためのものであり、最新の装置履歴情報の格納位置を示す。すなわち、最新値ポインタ１０２により示される記憶部１０１内のアドレスに最新の装置履歴情報が記憶されている。
【００３９】
履歴情報受信部１０４は、システムコントローラ５０内の履歴情報供給部１０８から供給されるＣＰＵボード５の装置履歴情報を受信し、それを情報比較部１０５に出力する。この受信する装置履歴情報には、上述したようにマルチプロセッサシステム１にてＣＰＵボード５が搭載されているスロット（搭載位置）を示す搭載位置情報が含まれている。
【００４０】
情報比較部１０５は、履歴情報受信部１０４から供給される装置履歴情報と、記憶部１０１に既に格納されている最新の装置履歴情報とを比較し、比較結果を情報更新部１０６に通知する。具体的には、情報比較部１０５は、記憶部１０１に記憶されている最新値ポインタ１０２を参照し、それが示すアドレスから最新の装置履歴情報を読み出す。そして、情報比較部１０５は、履歴情報受信部１０４から供給される装置履歴情報の搭載位置情報と、記憶部１０１から読み出した最新の装置履歴情報の搭載位置情報とが一致するか否かを比較・判定し、その結果を情報更新部１０６に通知する。
【００４１】
情報更新部１０６は、情報比較部１０５により装置履歴情報の搭載位置情報が異なると判定された場合に、履歴情報受信部１０４にて受信した装置履歴情報を記憶部１０１に記憶させるとともに、最新値ポインタ１０２を更新する。
なお、履歴情報受信部１０４、情報比較部１０５、情報更新部１０６は、制御部１０７によりそれぞれ制御される。
【００４２】
次に、本実施形態におけるＲＯＭ３０について図４を参照し説明する。なお、上述したようにＲＯＭ３０には、ボード情報、装置履歴情報、プログラム及びデータ等が格納されるが、図４においては、プログラム及びデータ等が格納される領域については明示していない。
図４において、（ａ）は搭載位置情報を含む装置履歴情報の記録フォーマットの一例を示す図であり、（ｂ）はＲＯＭ内における装置固有情報記録領域の一例を示す図である。
【００４３】
図４（ａ）に示すように、１つの装置履歴情報は、バイトオフセット値００〜１５に示されるように１６バイト長のデータである。
バイトオフセット値００に対応する１バイト分のフィールドには、データフォーマット識別子が記録される。
【００４４】
バイトオフセット値０１〜０７に対応する７バイト分のフィールドには、搭載位置情報としてのＭＡＣアドレスが記録される。ここで、本実施形態ではＭＡＣアドレスの形式は、６バイトデータからなるＭＡＣアドレスベース部（MAC Address[0]〜MAC Address[5]）と、１バイトデータからなる識別子（PE Identifier）とを結合したものとしている。識別子（PE Identifier）は、０〜１２７の値を持つものであり、この識別子（PE Identifier）の値によりマルチプロセッサシステム１内でのＣＰＵボード５の搭載位置が一意に識別可能となっている。つまり、識別子（PE Identifier）の値とマルチプロセッサシステム１に設けられたＣＰＵボードを接続可能な各スロットとは１対１の関係で対応している。なお、図４（ａ）に示す例では、識別子（PE Identifier）が取り得る値を０〜１２７、つまりスロットの数が１２８以下としているが、スロットの数が１２９以上の場合には、適宜装置履歴情報のデータ長を変更するなどして識別子（PE Identifier）のデータを拡張すれば良い。
【００４５】
バイトオフセット値０８〜１２に対応する５バイト分のフィールドには、当該装置履歴情報が供給時の時刻を示す時刻情報が記録される。なお、時刻情報は、ＲＯＭ３０に当該装置履歴情報を書き込む際の時刻を示す時刻情報であっても良い。
バイトオフセット値１３〜１４に対応する２バイト分のフィールドには、ブートパラメータが記録され、バイトオフセット値１５に対応する１バイト分のフィールドには、当該装置履歴情報のデータについてエラー検出を行うためのチェックサムが記録される。
なお、図４（ａ）に示した記録フォーマット例では、システム識別情報を記録するためのフィールドを設けていないが、システムコントローラ５０から搭載位置情報等とともにシステム識別情報を受けるようにして、システム識別情報を含む装置履歴情報を記録するようにシステム識別情報の記録フィールドを設けても良い。
【００４６】
ＲＯＭ３０は、図４（ｂ）に示すように格納領域が設けられており、上述した装置履歴情報は、装置固有情報格納領域２０１内に格納される。この装置固有情報格納領域２０１は、ＲＯＭ３０のデータ容量やＲＯＭ３０における書き換え単位に応じて適宜変更可能であり、制御情報格納領域２０２と装置履歴情報格納領域２０４との２つの領域からなる。ただし、装置固有情報格納領域２０１の先頭アドレスは固定である。
【００４７】
制御情報格納領域２０２には、ＣＰＵボード５に対して付与されている装置シリアル番号、ＭＳＵ２０の記憶容量情報、各種領域のポインタ、及び各種領域の領域サイズが格納される。また、装置履歴情報格納領域２０４には、図４（ａ）に示した記録フォーマットに従って、搭載位置情報及び時刻情報を含み構成される装置履歴情報が格納される。
【００４８】
ここで、装置履歴情報格納領域２０４は、複数の装置履歴情報を格納可能な領域サイズを有しており、装置履歴情報格納領域２０４には、追記するようにして装置履歴情報が順次格納されるが、制御情報格納領域２０２内の固定アドレスに装置履歴情報を管理するための最新値ポインタ２０３と領域サイズとが格納されている。つまり、制御情報格納領域２０２に格納されている最新値ポインタ２０３の示すアドレスに装置履歴情報の最新値が格納されており、最新値ポインタ２０３を参照することで最新の装置履歴情報を容易に取得することができる。
【００４９】
次に、本実施形態によるマルチプロセッサシステム１の動作について説明する。
なお、以下の説明では、電源投入や外部からの指示に応じてシステムコントローラ５０よりリセット信号ＳＲＳＴが出力されてからＯＳによる動作を開始するまでの起動処理についてのみ説明し、他の動作は従来のマルチプロセッサシステムと同様であるので説明は省略する。
【００５０】
図５は、本実施形態によるマルチプロセッサシステム１の起動処理の一例を示すフローチャートである。
まず、システムコントローラ５０が各ＣＰＵ１０に対してリセット信号ＳＲＳＴを出力すると、当該リセット信号ＳＲＳＴを受けた各ＣＰＵ１０は、ステップＳ１にて、内部レジスタ等を初期化するためのハードウェアリセットを実行する。
【００５１】
ステップＳ２にて、各ＣＰＵ１０は、ハードウェアリセット完了時にリセットトラップを自動的に発生し、リセットトラップ開始処理を行う。具体的には、各ＣＰＵ１０は、プログラムステータスワードに規定の値を設定するとともに、プログラムカウンタにリセットトラップ実行開始アドレス（Reset Vector）を設定する。ここで、システムブート用のブートプログラムはＲＯＭ３０の先頭アドレスから格納されており、リセットトラップ実行開始アドレスとしてＲＯＭ３０の先頭アドレスが設定される。
【００５２】
ステップＳ３にて、各ＣＰＵ１０は、ブートプログラムの実行を開始する。まず、各ＣＰＵ１０は、その後のプログラム実行の準備として、内部に備える汎用レジスタや他の制御レジスタ（タイマ１５を含む。）を初期化するとともに、周辺デバイスのアドレス設定などバスの初期化を行う。さらに、レジスタやバスの初期化後、ＣＰＵ１０は、供給されるクロック基準信号ＲＣＬＫ、クロックソースＳＣＬＫ及びクロックモード信号ＣＭＯＤに基づいて、バスに接続されたデバイスに係るウェイト数（ウェイト時間）などのクロック調整を行う。
【００５３】
ステップＳ４にて、各ＣＰＵ１０は、供給されているブートモード信号ＢＭＯＤを参照し、初期診断を実行するか否かを判定する。この判定の結果、ブートモード信号ＢＭＯＤにより初期診断の実行が指定されている場合には、ステップＳ５にて、ＣＰＵ１０及びＭＳＵ２０等の初期診断を実行し、ステップＳ６に進む。一方、ブートモード信号ＢＭＯＤにより初期診断の実行が指定されていなければ、ステップＳ５をスキップしてステップＳ６に進む。
ステップＳ６にて、各ＣＰＵ１０は、図６に示す搭載位置履歴更新処理を行う。
【００５４】
図６は、搭載位置履歴更新処理の一例を示すフローチャートである。
まず、ステップＳ２１にて、ＣＰＵ１０は、自らを含み構成されるＣＰＵボード５の搭載位置情報（装置履歴情報）をシステムコントローラ５０から受信する。
【００５５】
ステップＳ２２にて、ＣＰＵ１０は、ＲＯＭ３０に既に格納されている搭載位置情報の中で最新の搭載位置情報をＲＯＭ３０から読み出す。具体的には、ＣＰＵ３０は、ＲＯＭ３０の制御情報格納領域２０２内に格納されている最新値ポインタ２０３を参照する。そして、最新値ポインタ２０３が示すアドレスから装置履歴情報を読み出し、それに含まれる搭載位置情報を抽出する。
【００５６】
ステップＳ２３にて、ＣＰＵ１０は、ステップＳ２１において受信した搭載位置情報とステップＳ２２において読み出した搭載位置情報とを比較する。続いて、ステップＳ２４にて、ＣＰＵ１０は、これら２つの搭載位置情報が一致しているか否かを判定する。
【００５７】
この判定の結果、ステップＳ２１において受信した搭載位置情報とステップＳ２２において読み出した搭載位置情報とが異なる場合には、ステップＳ２５にて、ＣＰＵ１０は、ステップＳ２１において受信した搭載位置情報をＲＯＭ３０の装置履歴情報格納領域２０４に書き込む。これにより、最新の搭載位置情報を含む装置履歴情報がＲＯＭ３０に追加記録される。
次に、ステップＳ２６にて、ＣＰＵ１０は、ステップＳ２５において装置履歴情報を書き込んだアドレスを示すように最新値ポインタ２０３の値を更新する。
【００５８】
一方、ステップＳ２４での判定の結果、ステップＳ２１において受信した搭載位置情報とステップＳ２２において読み出した搭載位置情報とが一致した場合には、ステップＳ２７にて、ＣＰＵ１０は、ステップＳ２１において受信した搭載位置情報を破棄する。したがって、ＲＯＭ３０の装置履歴情報格納領域２０４に記録されている装置履歴情報は更新されない。
上述のようにして搭載位置履歴更新処理が終了すると、図５のステップＳ７に戻る。
【００５９】
図５に戻り、ステップＳ７にて、各ＣＰＵ１０は、ブートモード信号ＢＭＯＤを参照して、ＲＯＭ３０からＯＳをブートするか、ＬＡＮ８０（ネットワーク）経由でＯＳをブートするか、それともＯＳをブートせずに停止するかを判定する。
【００６０】
この判定の結果、ブートモード信号ＢＭＯＤによりＲＯＭ３０からのＯＳブートが指定されている場合には、ステップＳ８にて、ＣＰＵ１０は、ＲＯＭ３０からＯＳをロードしてブートしステップＳ１０に進む。同様に、ブートモード信号ＢＭＯＤによりＬＡＮ８０経由でのＯＳブートが指定されている場合には、ステップＳ９にて、ＣＰＵ１０は、ＬＡＮ８０を介して外部機器からＯＳをロードしてブートしステップＳ１０に進む。
ステップＳ１０にて、ＣＰＵ１０は、ブートしたＯＳに制御を移行し、ＯＳによる運用を開始して起動処理を終了する。
【００６１】
上記ステップＳ７での判定の結果、ブートモード信号ＢＭＯＤにより停止が指定されている場合には、ステップＳ１１にて、ＣＰＵ１０は、コンソールポート７０及びシステムコントローラ５０を介して外部コンソールに対してプロンプトを出力する。
次に、ステップＳ１２にて、ＣＰＵ１０は、外部コンソールによりオペレータからの指示、すなわちコマンドが入力されるまで待機する。そして、外部コンソールを介して入力されたコマンドがシステムコントローラ５０及びコンソールポート７０を経由して供給されると、ステップＳ１３にて、ＣＰＵ１０は、供給されたコマンドに応じた処理を実行する。その処理が終了すると、ステップＳ１１に戻り、上述したステップＳ１１〜Ｓ１３の処理を繰り返す。なお、ステップＳ１１〜Ｓ１３の処理において、供給されるコマンドによりＯＳブートが指示された場合には、ＣＰＵ１０は、コマンドに従ってＯＳをロードしてブートし、上述したステップＳ１０に進むようにしても良い。
【００６２】
以上、説明したように本実施形態によれば、マルチプロセッサシステムの初期化にあたり、システムコントローラ５０から供給されるＣＰＵボード５の搭載位置情報を含む装置履歴情報（時刻情報やシステム識別情報を含んでいても良い。）を受信し、受信した装置履歴情報の搭載位置情報とＲＯＭ３０に既に格納されている最新の装置履歴情報の搭載位置情報とを比較し、それらが異なる場合には、受信した装置履歴情報を最新の装置履歴情報としてＲＯＭ３０に追加して格納する。
【００６３】
これにより、ＣＰＵボート５の搭載位置を正確かつ自動的に、ＣＰＵボート５内のＲＯＭ３０に継続して記録することができ、マルチプロセッサシステム１におけるＣＰＵボート５の搭載位置の履歴を記録及び管理することができる。したがって、マルチプロセッサシステム１にて障害が発生した場合に、障害原因の搭載位置依存性やプロセッサ装置依存性を容易に解析・検出できるようになり、障害原因解析に要するコストを低減することができる。
【００６４】
また、受信した装置履歴情報の搭載位置情報とＲＯＭ３０に既に格納されている最新の装置履歴情報の搭載位置情報とが異なる場合のみ、受信した装置履歴情報をＲＯＭ３０に格納することで、情報記憶に係る効率を向上させるとともにＲＯＭ３０に要求される記憶容量を低減し、少ない記憶容量でＣＰＵボード５の搭載位置の履歴を記録し管理することができる。
【００６５】
なお、上述した実施形態では、１つのＣＰＵ１０を有するＣＰＵボード５で構成されるマルチプロセッサシステム１を一例として示したが、本発明はこれに限定されるものではない。例えば、図７に示すように、マルチプロセッサシステム１を構成する各ＣＰＵボード６が複数のＣＰＵ１０を有するようにしても良い。このように構成した場合には、システムコントローラ５０から供給される装置履歴情報を、例えば、予め定めた少なくとも１つのＣＰＵ１０に対応するＲＯＭ３０（例えば、ＣＰＵ１０−０に接続されたＲＯＭ３０−０）に格納するようにしても良いし、ＣＰＵボード６内のすべてのＲＯＭ３０に格納するようにしても良い。
【００６６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態によるマルチプロセッサシステムのシステム構成例を示すブロック図である。
【図２】本実施形態におけるＣＰＵの構成例を示すブロック図である。
【図３】本実施形態におけるＣＰＵボードの機能的な構成を示す機能ブロック図である。
【図４】（ａ）は本実施形態における装置履歴情報の記録フォーマットの一例を示す図であり、（ｂ）はＲＯＭ内における装置固有情報記録領域の一例を示す図である。
【図５】本実施形態によるマルチプロセッサシステムの起動処理の一例を示すフローチャートである。
【図６】搭載位置履歴更新処理の一例を示すフローチャートである。
【図７】本発明の実施形態によるマルチプロセッサシステムの他の構成例を示す図である。
【符号の説明】
【００６８】
１  マルチプロセッサシステム
５、６  ＣＰＵボード
１０  ＣＰＵ
２０  主記憶装置（ＭＳＵ）
３０  フラッシュメモリ
４０  ネットワークインタフェース
５０  システムコントローラ
６０  クロック発生器
１０１  記憶部
１０２  最新値ポインタ
１０３  装置履歴情報
１０４  履歴情報受信部
１０５  情報比較部
１０６  情報更新部
１０７  制御部
１０８  履歴情報供給部
【図１】
2005301593.tif 000003
【図２】
2005301593.tif 000004
【図３】
2005301593.tif 000005
【図４】
2005301593.tif 000006
【図５】
2005301593.tif 000007
【図６】
2005301593.tif 000008
【図７】
2005301593.tif 000009