JPH08272756A - マルチプロセッサシステムの起動方法 - Google Patents
マルチプロセッサシステムの起動方法Info
- Publication number
- JPH08272756A JPH08272756A JP7076291A JP7629195A JPH08272756A JP H08272756 A JPH08272756 A JP H08272756A JP 7076291 A JP7076291 A JP 7076291A JP 7629195 A JP7629195 A JP 7629195A JP H08272756 A JPH08272756 A JP H08272756A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- system bus
- processors
- bootstrap
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】マルチプロセッサシステムのブートプロセスの
際の信頼性を向上させることを可能にする。 【構成】システムをブートするためのコードが入ったブ
ートROM2が1つ存在し、複数のプロセッサ4,5,
6がブートROM2に収められていたコードを実行する
マルチプロセッサシステムにおいて、システムリセット
を解除したときに、動作可能な全てのプロセッサから、
ブートROM2中のコードをフェッチするために出力さ
れるシステムバス獲得要求に対して、システムバス獲得
要求を出力したプロセッサの中からプロセッサの優先順
位を規定する規則に従って1つを選択してシステムバス
使用許可を与え、その他のプロセッサには選択された1
つのプロセッサによってブートROM2に記憶されたコ
ードの実行が完了するまでシステムバス使用許可を与え
ないシステムバス調停機構3を具備して構成する。
際の信頼性を向上させることを可能にする。 【構成】システムをブートするためのコードが入ったブ
ートROM2が1つ存在し、複数のプロセッサ4,5,
6がブートROM2に収められていたコードを実行する
マルチプロセッサシステムにおいて、システムリセット
を解除したときに、動作可能な全てのプロセッサから、
ブートROM2中のコードをフェッチするために出力さ
れるシステムバス獲得要求に対して、システムバス獲得
要求を出力したプロセッサの中からプロセッサの優先順
位を規定する規則に従って1つを選択してシステムバス
使用許可を与え、その他のプロセッサには選択された1
つのプロセッサによってブートROM2に記憶されたコ
ードの実行が完了するまでシステムバス使用許可を与え
ないシステムバス調停機構3を具備して構成する。
Description
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおける起動方法に関する。
テムにおける起動方法に関する。
【0002】
【従来の技術】従来、マルチプロセッサシステムにおい
ては、複数のプロセッサによって共用されるシステムバ
スの使用を、システムバス調停機構(アービター)によ
って制御している。
ては、複数のプロセッサによって共用されるシステムバ
スの使用を、システムバス調停機構(アービター)によ
って制御している。
【0003】システムリセットを解除する場合には、全
てのプロセッサに対するリセット信号が解除される。そ
の結果、動作可能な全てのプロセッサは、システムを起
動させるためのブートプロセスを実行するためのコード
(プログラム)、すなわち、ブートストラップが格納さ
れたブートROMの先頭番地の命令をフェッチするた
め、システムバス獲得要求をシステムバス調停機構に出
力する。
てのプロセッサに対するリセット信号が解除される。そ
の結果、動作可能な全てのプロセッサは、システムを起
動させるためのブートプロセスを実行するためのコード
(プログラム)、すなわち、ブートストラップが格納さ
れたブートROMの先頭番地の命令をフェッチするた
め、システムバス獲得要求をシステムバス調停機構に出
力する。
【0004】システムバス調停機構は、全てのプロセッ
サに対して、優先順位を規定するある規則に従って、シ
ステムバス獲得要求の単位でシステムバス使用許可を送
出する。この場合、システムバス使用許可を受信したプ
ロセッサは、システムバスを獲得して処理を実行する
が、結果的に、全てのプロセッサがブートROMの中に
格納されているプログラムのある一定の処理(例えばプ
ロセッサ自分自身を初期化する処理)まで実行する。
サに対して、優先順位を規定するある規則に従って、シ
ステムバス獲得要求の単位でシステムバス使用許可を送
出する。この場合、システムバス使用許可を受信したプ
ロセッサは、システムバスを獲得して処理を実行する
が、結果的に、全てのプロセッサがブートROMの中に
格納されているプログラムのある一定の処理(例えばプ
ロセッサ自分自身を初期化する処理)まで実行する。
【0005】そして、ある一定の処理以降では、1つの
プロセッサを除いて、無意味なダミー処理を実行する無
限ループに入り、OS(オペレーティングシステム)に
よってマルチプロセッサ化されるのを待つ。また、1つ
のプロセッサは、その後のブートROMの中に格納され
ているプログラムを実行する。この処理には、ボード上
の周辺回路などの初期化、I/Oデバイスの初期化、O
Sのローディングなどが含まれる。なお、ブートROM
中に格納されたプログラムを継続して実行する1つのプ
ロセッサは、予め決められている優先度に基づいて、最
も優先度が高いスロットに装着されているボードのプロ
セッサに決定される。この優先度は具体的には、例え
ば、プロセッサが搭載されたボードを装置本体に装着す
るためのスロットに設定しておく。
プロセッサを除いて、無意味なダミー処理を実行する無
限ループに入り、OS(オペレーティングシステム)に
よってマルチプロセッサ化されるのを待つ。また、1つ
のプロセッサは、その後のブートROMの中に格納され
ているプログラムを実行する。この処理には、ボード上
の周辺回路などの初期化、I/Oデバイスの初期化、O
Sのローディングなどが含まれる。なお、ブートROM
中に格納されたプログラムを継続して実行する1つのプ
ロセッサは、予め決められている優先度に基づいて、最
も優先度が高いスロットに装着されているボードのプロ
セッサに決定される。この優先度は具体的には、例え
ば、プロセッサが搭載されたボードを装置本体に装着す
るためのスロットに設定しておく。
【0006】
【発明が解決しようとする課題】このように従来のマル
チプロセッサシステムでは、ブートROMの中に格納さ
れているプログラムを完全に継続して(ボード上の周辺
回路などの初期化、I/Oデバイスの初期化、OSのロ
ーディングなどまで)実行する1つのプロセッサが予め
決められていた。
チプロセッサシステムでは、ブートROMの中に格納さ
れているプログラムを完全に継続して(ボード上の周辺
回路などの初期化、I/Oデバイスの初期化、OSのロ
ーディングなどまで)実行する1つのプロセッサが予め
決められていた。
【0007】このため、その決められたプロセッサが故
障していると、ブートプロセスが実行できず、システム
が立ち上がらなくなってしまうという問題があった。す
なわち、1つのプロセッサの故障だけで、他に正常なプ
ロセッサが存在しているとしても、システム全体が使用
できなくなってしまう場合があるため、ブートプロセス
の信頼性を、より向上させることが望まれていた。
障していると、ブートプロセスが実行できず、システム
が立ち上がらなくなってしまうという問題があった。す
なわち、1つのプロセッサの故障だけで、他に正常なプ
ロセッサが存在しているとしても、システム全体が使用
できなくなってしまう場合があるため、ブートプロセス
の信頼性を、より向上させることが望まれていた。
【0008】本発明は前記のような事情を考慮してなさ
れたもので、マルチプロセッサシステムのブートプロセ
スの際の信頼性を向上させることが可能なマルチプロセ
ッサシステムの起動方法を提供することを目的とする。
れたもので、マルチプロセッサシステムのブートプロセ
スの際の信頼性を向上させることが可能なマルチプロセ
ッサシステムの起動方法を提供することを目的とする。
【0009】
【課題を解決するための手段】本発明は、システムを起
動するためのブートストラップを記憶した記憶装置を持
ち、システムバスを介して前記記憶装置と接続された複
数のプロセッサを有するマルチプロセッサシステムにお
いて、システムリセットが解除されたとき、前記システ
ムバスの獲得要求を出力したプロセッサの中から予め規
定された優先度に基づいて1つのプロセッサを選択して
システムバスの使用許可を与え、選択されなかったその
他のプロセッサには、前記選択されたプロセッサが前記
ブートストラップの実行が完了するまで、システムバス
の使用許可を与えないことを特徴とする。
動するためのブートストラップを記憶した記憶装置を持
ち、システムバスを介して前記記憶装置と接続された複
数のプロセッサを有するマルチプロセッサシステムにお
いて、システムリセットが解除されたとき、前記システ
ムバスの獲得要求を出力したプロセッサの中から予め規
定された優先度に基づいて1つのプロセッサを選択して
システムバスの使用許可を与え、選択されなかったその
他のプロセッサには、前記選択されたプロセッサが前記
ブートストラップの実行が完了するまで、システムバス
の使用許可を与えないことを特徴とする。
【0010】また、システムを起動するためのブートス
トラップを記憶した記憶装置を持ち、システムバスを介
して前記記憶装置と接続された複数のプロセッサを有す
るマルチプロセッサシステムにおいて、システムリセッ
トが解除されたとき、前記複数のプロセッサからそれぞ
れ出力される前記システムバスの獲得要求に対して、順
次システムバスの使用許可を与え、前記複数のプロセッ
サのそれぞれにより前記記憶装置に記憶されたブートス
トラップを実行させ、1つのプロセッサが前記ブートス
トラップの内のプロセッサの初期化ルーチンを終了した
際、そのプロセッサに前記ブートストラップの実行を継
続させるとともに、その他のプロセッサには、前記ブー
トストラップの内のプロセッサの初期化ルーチンを終了
した後、以後のルーチンを実行させないことを特徴とす
る。
トラップを記憶した記憶装置を持ち、システムバスを介
して前記記憶装置と接続された複数のプロセッサを有す
るマルチプロセッサシステムにおいて、システムリセッ
トが解除されたとき、前記複数のプロセッサからそれぞ
れ出力される前記システムバスの獲得要求に対して、順
次システムバスの使用許可を与え、前記複数のプロセッ
サのそれぞれにより前記記憶装置に記憶されたブートス
トラップを実行させ、1つのプロセッサが前記ブートス
トラップの内のプロセッサの初期化ルーチンを終了した
際、そのプロセッサに前記ブートストラップの実行を継
続させるとともに、その他のプロセッサには、前記ブー
トストラップの内のプロセッサの初期化ルーチンを終了
した後、以後のルーチンを実行させないことを特徴とす
る。
【0011】また、システムを起動するためのブートス
トラップを記憶した記憶装置を持ち、システムバスを介
して前記記憶装置と接続された複数のプロセッサを有す
るマルチプロセッサシステムにおいて、システムリセッ
トが解除されたとき、前記複数のプロセッサの中から予
め規定された優先度に基づいて1つのプロセッサを選択
して前記記憶装置に記憶されたブートストラップを実行
させ、この選択されたプロセッサが所定時間内に前記ブ
ートストラップの内のプロセッサの初期化ルーチンを終
了した場合には、そのプロセッサに前記ブートストラッ
プの実行を継続させ、この選択されたプロセッサが所定
の時間内に前記ブートストラップの内のプロセッサの初
期化ルーチンを終了しなかった場合には、前記優先度に
基づいてその他のプロセッサを選択して前記記憶装置に
記憶されたブートストラップを実行させることを特徴と
する。
トラップを記憶した記憶装置を持ち、システムバスを介
して前記記憶装置と接続された複数のプロセッサを有す
るマルチプロセッサシステムにおいて、システムリセッ
トが解除されたとき、前記複数のプロセッサの中から予
め規定された優先度に基づいて1つのプロセッサを選択
して前記記憶装置に記憶されたブートストラップを実行
させ、この選択されたプロセッサが所定時間内に前記ブ
ートストラップの内のプロセッサの初期化ルーチンを終
了した場合には、そのプロセッサに前記ブートストラッ
プの実行を継続させ、この選択されたプロセッサが所定
の時間内に前記ブートストラップの内のプロセッサの初
期化ルーチンを終了しなかった場合には、前記優先度に
基づいてその他のプロセッサを選択して前記記憶装置に
記憶されたブートストラップを実行させることを特徴と
する。
【0012】
【作用】このような構成によれば、システムリセットが
解除された際、ブートプロセスを実行するためにシステ
ムバス獲得要求を出すことができる場合には、そのプロ
セッサは正常であるものとし、正常なプロセッサから1
つを選択してブートプロセスを実行させる。従って、故
障したプロセッサが存在し、そのプロセッサのブートプ
ロセスを実行させる優先順位が最も高いとしても、正常
なプロセッサが存在すれば、ブートプロセスを確実に実
行させることができる。また、ブートプロセスの段階で
正常と判別されたプロセッサを、マルチプロセッサ化の
対象とすることができる。
解除された際、ブートプロセスを実行するためにシステ
ムバス獲得要求を出すことができる場合には、そのプロ
セッサは正常であるものとし、正常なプロセッサから1
つを選択してブートプロセスを実行させる。従って、故
障したプロセッサが存在し、そのプロセッサのブートプ
ロセスを実行させる優先順位が最も高いとしても、正常
なプロセッサが存在すれば、ブートプロセスを確実に実
行させることができる。また、ブートプロセスの段階で
正常と判別されたプロセッサを、マルチプロセッサ化の
対象とすることができる。
【0013】また、システムリセットが解除された際、
各プロセッサに対してブートプロセスを実行させ、ブー
トプロセスとして最初に実行されるプロセッサ自身を初
期化するルーチンが終了できる場合には、そのプロセッ
サは正常であるものとし、正常なプロセッサから1つを
選択して(最初に初期化するルーチンを完了したプロセ
ッサ)、ブートプロセスをそれ以降も継続して実行させ
る。従って、システムバス獲得要求を出力できたもの
の、プロセッサ自身を初期化するルーチンが実行できな
い故障があるプロセッサが存在し、そのプロセッサのブ
ートプロセスを実行させる優先順位が最も高いとして
も、正常なプロセッサが存在すれば、ブートプロセスを
確実に実行させることができる。
各プロセッサに対してブートプロセスを実行させ、ブー
トプロセスとして最初に実行されるプロセッサ自身を初
期化するルーチンが終了できる場合には、そのプロセッ
サは正常であるものとし、正常なプロセッサから1つを
選択して(最初に初期化するルーチンを完了したプロセ
ッサ)、ブートプロセスをそれ以降も継続して実行させ
る。従って、システムバス獲得要求を出力できたもの
の、プロセッサ自身を初期化するルーチンが実行できな
い故障があるプロセッサが存在し、そのプロセッサのブ
ートプロセスを実行させる優先順位が最も高いとして
も、正常なプロセッサが存在すれば、ブートプロセスを
確実に実行させることができる。
【0014】また、同様にしてプロセッサ自身を初期化
するルーチンを完了できるか否かによって故障を判別す
るが、ブートプロセスを実行するプロセッサの優先順位
を規定する規則に従って1つのプロセッサを選択し、正
常なプロセッサが得られるまで、順次、対象とするプロ
セッサを変更してブートプロセスを試行する。従って、
1つでも正常なプロセッサが存在すれば、ブートプロセ
スを実行させることができる。
するルーチンを完了できるか否かによって故障を判別す
るが、ブートプロセスを実行するプロセッサの優先順位
を規定する規則に従って1つのプロセッサを選択し、正
常なプロセッサが得られるまで、順次、対象とするプロ
セッサを変更してブートプロセスを試行する。従って、
1つでも正常なプロセッサが存在すれば、ブートプロセ
スを実行させることができる。
【0015】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1は本発明の第1実施例に係わるマルチプロセ
ッサシステムの概略構成を示すブロック図である。図1
に示すように、第1実施例のマルチプロセッサシステム
は、システムバス1を介して、ブートROM2、システ
ムバス調停機構3、複数(本実施例では3つ)のプロセ
ッサ4,5,6、及びメインメモリ7が相互に接続され
て構成されている。
する。図1は本発明の第1実施例に係わるマルチプロセ
ッサシステムの概略構成を示すブロック図である。図1
に示すように、第1実施例のマルチプロセッサシステム
は、システムバス1を介して、ブートROM2、システ
ムバス調停機構3、複数(本実施例では3つ)のプロセ
ッサ4,5,6、及びメインメモリ7が相互に接続され
て構成されている。
【0016】システムバス1は、プロセッサ4,5,
6、ブートROM2、メインメモリ7、システムバス調
停機構3などの間のデータのやり取りを行なう。ブート
ROM2は、ブートプロセスに必要なコード(プログラ
ム)を格納するためのもので、プロセッサ自身の初期
化、ボード上の周辺回路などの初期化、I/Oデバイス
の初期化、OSのローディングなどの処理に関するプロ
グラムが格納されている。
6、ブートROM2、メインメモリ7、システムバス調
停機構3などの間のデータのやり取りを行なう。ブート
ROM2は、ブートプロセスに必要なコード(プログラ
ム)を格納するためのもので、プロセッサ自身の初期
化、ボード上の周辺回路などの初期化、I/Oデバイス
の初期化、OSのローディングなどの処理に関するプロ
グラムが格納されている。
【0017】システムバス調停機構3は、プロセッサ
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構3は、シ
ステムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構3からプロセッサに対
するリセット信号、システムバス使用許可信号を含んで
いる。また、システムバス調停機構制御信号は、プロセ
ッサからシステムバス調停機構3に対するシステムバス
獲得要求信号を含んでいる。各信号が送受信される動作
の詳細については後述する。
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構3は、シ
ステムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構3からプロセッサに対
するリセット信号、システムバス使用許可信号を含んで
いる。また、システムバス調停機構制御信号は、プロセ
ッサからシステムバス調停機構3に対するシステムバス
獲得要求信号を含んでいる。各信号が送受信される動作
の詳細については後述する。
【0018】システムバス調停機構3には、動作可能プ
ロセッサ保持レジスタ13、及びプロセッサ選択機構1
4が設けられている。動作可能プロセッサ保持レジスタ
13は、システム内で動作可能なプロセッサを示す情報
を各プロセッサ毎に保持するためのもので、システム内
のプロセッサの数と同数のフィールドが設けられ、フィ
ールドとプロセッサが対応づけられている。動作可能プ
ロセッサ保持レジスタ13には、物理アドレスが割り当
てられており、外部から(他の何れのプロセッサからで
も)読み書きが可能となっている。プロセッサ選択機構
14は、動作可能プロセッサ保持レジスタ13に格納さ
れた情報を参照して、プロセッサからのシステムバス獲
得要求信号に対して、動作可能なプロセッサのみにシス
テムバス使用許可信号を送出、あるいはシステムリセッ
ト信号に応じてプロセッサにプロセッサ制御信号のリセ
ット信号を送出するものである。
ロセッサ保持レジスタ13、及びプロセッサ選択機構1
4が設けられている。動作可能プロセッサ保持レジスタ
13は、システム内で動作可能なプロセッサを示す情報
を各プロセッサ毎に保持するためのもので、システム内
のプロセッサの数と同数のフィールドが設けられ、フィ
ールドとプロセッサが対応づけられている。動作可能プ
ロセッサ保持レジスタ13には、物理アドレスが割り当
てられており、外部から(他の何れのプロセッサからで
も)読み書きが可能となっている。プロセッサ選択機構
14は、動作可能プロセッサ保持レジスタ13に格納さ
れた情報を参照して、プロセッサからのシステムバス獲
得要求信号に対して、動作可能なプロセッサのみにシス
テムバス使用許可信号を送出、あるいはシステムリセッ
ト信号に応じてプロセッサにプロセッサ制御信号のリセ
ット信号を送出するものである。
【0019】プロセッサ4,5,6は、システムバス獲
得要求信号をシステムバス調停機構3に送出することに
よって、システムバス1の使用権を獲得し、命令等を実
行する。なお、本実施例の前提条件として、全てのプロ
セッサ4,5,6が持つ状態レジスタ、プログラムカウ
ンタなど、プロセッサ4,5,6がそれぞれ動作するた
めに必要な内部レジスタ4a,5a,6aには物理アド
レスが割り当てられており、外部から(他のどのプロセ
ッサからも)書き込みが可能であるとする。
得要求信号をシステムバス調停機構3に送出することに
よって、システムバス1の使用権を獲得し、命令等を実
行する。なお、本実施例の前提条件として、全てのプロ
セッサ4,5,6が持つ状態レジスタ、プログラムカウ
ンタなど、プロセッサ4,5,6がそれぞれ動作するた
めに必要な内部レジスタ4a,5a,6aには物理アド
レスが割り当てられており、外部から(他のどのプロセ
ッサからも)書き込みが可能であるとする。
【0020】メインメモリ7は、プロセッサ4,5,6
によって実行されるコード(プログラム)やデータ等を
格納するためのもので、ブート時には、ブートROM2
に格納された最初に実行されるプログラムによって、ブ
ートROM2中のその他のブートプロセスのためのコー
ドがブートROM2から読み出され格納される。また、
メインメモリ7に格納されたブートプロセスのコードが
プロセッサによって実行されて、OS(オペレーティン
グシステム)がローディングされる他、各種プログラム
やデータ等が格納される。
によって実行されるコード(プログラム)やデータ等を
格納するためのもので、ブート時には、ブートROM2
に格納された最初に実行されるプログラムによって、ブ
ートROM2中のその他のブートプロセスのためのコー
ドがブートROM2から読み出され格納される。また、
メインメモリ7に格納されたブートプロセスのコードが
プロセッサによって実行されて、OS(オペレーティン
グシステム)がローディングされる他、各種プログラム
やデータ等が格納される。
【0021】次に、第1実施例の動作について、図2に
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構3は、システムリセット信号がオン
であるときには、プロセッサ選択機構14によって各プ
ロセッサ4,5,6のそれぞれに対してプロセッサ制御
信号S1,S2,S3のリセット信号を出力し、プロセ
ッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構3は、システムリセット信号がオン
であるときには、プロセッサ選択機構14によって各プ
ロセッサ4,5,6のそれぞれに対してプロセッサ制御
信号S1,S2,S3のリセット信号を出力し、プロセ
ッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
【0022】システムリセット信号がオフとなりシステ
ムリセットが解除されると、システムバス調停機構3
は、プロセッサ制御信号S1,S2,S3のリセット信
号を解除(オフ)することによって、プロセッサ4,
5,6の動作を開始させる(ステップA1)。
ムリセットが解除されると、システムバス調停機構3
は、プロセッサ制御信号S1,S2,S3のリセット信
号を解除(オフ)することによって、プロセッサ4,
5,6の動作を開始させる(ステップA1)。
【0023】この時、プロセッサ4,5,6は、ブート
ROM2の先頭番地の命令をフェッチするために、それ
ぞれシステムバス調停機構制御信号S4,S5,S6の
システムバス獲得要求信号を用いて、システムバス調停
機構3に対してシステムバス獲得要求を出す(ステップ
A2)。
ROM2の先頭番地の命令をフェッチするために、それ
ぞれシステムバス調停機構制御信号S4,S5,S6の
システムバス獲得要求信号を用いて、システムバス調停
機構3に対してシステムバス獲得要求を出す(ステップ
A2)。
【0024】システムバス調停機構3は、システムバス
獲得要求を出したプロセッサが何れであるか、すなわち
システムバス獲得要求信号を正常に出力できた動作可能
なプロセッサが何れであるかを動作可能プロセッサ保持
レジスタ13に保持しておく(ステップA3)。
獲得要求を出したプロセッサが何れであるか、すなわち
システムバス獲得要求信号を正常に出力できた動作可能
なプロセッサが何れであるかを動作可能プロセッサ保持
レジスタ13に保持しておく(ステップA3)。
【0025】また、システムバス調停機構3は、プロセ
ッサ選択機構14によって、動作可能プロセッサ保持レ
ジスタ13に動作可能である情報が保持されたプロセッ
サの中から、優先順位を規定する規則に従って(プロセ
ッサが搭載されたボードのスロットへの実装位置等)、
最も優先度が高い1つのプロセッサを選択してシステム
バス使用許可信号を出力する。また、システムバス調停
機構3は、選択されなかった他のプロセッサに対してリ
セット信号を出力する(ステップA4)。
ッサ選択機構14によって、動作可能プロセッサ保持レ
ジスタ13に動作可能である情報が保持されたプロセッ
サの中から、優先順位を規定する規則に従って(プロセ
ッサが搭載されたボードのスロットへの実装位置等)、
最も優先度が高い1つのプロセッサを選択してシステム
バス使用許可信号を出力する。また、システムバス調停
機構3は、選択されなかった他のプロセッサに対してリ
セット信号を出力する(ステップA4)。
【0026】ここで、システムバス調停機構3からシス
テムバス使用許可信号を入力したプロセッサをプロセッ
サ4であるものとする。すなわち、プロセッサ選択機構
14は、プロセッサ4にプロセッサ制御信号S1のシス
テムバス使用許可信号を用いてシステムバスの使用許可
を与え、プロセッサ5,6にはプロセッサ制御信号S
2,S3のリセット信号を用いて命令フェッチなどの動
作を全く行なわないようにする。つまり、この状態で
は、動作するプロセッサはプロセッサ4だけとなる。
テムバス使用許可信号を入力したプロセッサをプロセッ
サ4であるものとする。すなわち、プロセッサ選択機構
14は、プロセッサ4にプロセッサ制御信号S1のシス
テムバス使用許可信号を用いてシステムバスの使用許可
を与え、プロセッサ5,6にはプロセッサ制御信号S
2,S3のリセット信号を用いて命令フェッチなどの動
作を全く行なわないようにする。つまり、この状態で
は、動作するプロセッサはプロセッサ4だけとなる。
【0027】プロセッサ4は、システムバス1の使用権
を獲得したので、システムバス1を介してコードを読み
込んでブートプロセス、すなわちプロセッサ自身の初期
化、ボード上の周辺回路などの初期化、I/Oデバイス
の初期化などの処理を実行する(ステップA5)。
を獲得したので、システムバス1を介してコードを読み
込んでブートプロセス、すなわちプロセッサ自身の初期
化、ボード上の周辺回路などの初期化、I/Oデバイス
の初期化などの処理を実行する(ステップA5)。
【0028】ブートプロセスが完了すると、プロセッサ
4は、動作可能プロセッサ保持レジスタ13を読んで、
動作可能なプロセッサが何れかを認識し、動作が可能な
プロセッサに対して状態レジスタ、プログラムカウンタ
などに適切な値を書き込んで、プロセッサ自身が初期化
された状態にしてマルチプロセッサ化できる状態にす
る。また、システムバス調停機構3からのプロセッサ制
御信号S2,S3のリセット信号を解除させて、プロセ
ッサ5,6の動作を開始させる(ステップA6,A
7)。
4は、動作可能プロセッサ保持レジスタ13を読んで、
動作可能なプロセッサが何れかを認識し、動作が可能な
プロセッサに対して状態レジスタ、プログラムカウンタ
などに適切な値を書き込んで、プロセッサ自身が初期化
された状態にしてマルチプロセッサ化できる状態にす
る。また、システムバス調停機構3からのプロセッサ制
御信号S2,S3のリセット信号を解除させて、プロセ
ッサ5,6の動作を開始させる(ステップA6,A
7)。
【0029】前述した第1実施例において、障害を持つ
プロセッサを排除できることを説明する。プロセッサ
4,5,6の中に障害を持つプロセッサがある場合に
は、まず、システムリセットが解除された際に、システ
ムバス調停機構3にシステムバス獲得要求信号を出すこ
とができない。
プロセッサを排除できることを説明する。プロセッサ
4,5,6の中に障害を持つプロセッサがある場合に
は、まず、システムリセットが解除された際に、システ
ムバス調停機構3にシステムバス獲得要求信号を出すこ
とができない。
【0030】このため、障害があるためにシステムバス
獲得要求信号が出力できなかったプロセッサについて
は、システムバス調停機構3の動作可能プロセッサ保持
レジスタ13に正常であることを示す情報が設定されな
い。
獲得要求信号が出力できなかったプロセッサについて
は、システムバス調停機構3の動作可能プロセッサ保持
レジスタ13に正常であることを示す情報が設定されな
い。
【0031】従って、障害のあったプロセッサには、ブ
ートプロセスを実行した1つのプロセッサにより、障害
のあったプロセッサの状態レジスタ、プログラムカウン
タなどの値が書き込まれず、そのプロセッサへのシステ
ムバス調停機構3からのリセット信号が解除されないこ
とになり、そのプロセッサを排除することができる。
ートプロセスを実行した1つのプロセッサにより、障害
のあったプロセッサの状態レジスタ、プログラムカウン
タなどの値が書き込まれず、そのプロセッサへのシステ
ムバス調停機構3からのリセット信号が解除されないこ
とになり、そのプロセッサを排除することができる。
【0032】このようにして、リセット信号が解除され
た際に、システムバス調停機構3に対してシステムバス
獲得要求信号を出力できない故障のあったプロセッサが
排除され、正常な他のプロセッサによってブートプロセ
スを実行させることができる。従って、ブートプロセス
を実行すべき優先度の最も高い1つのプロセッサに故障
があっても、他に正常なプロセッサが存在すれば、シス
テムを起動させることができる。
た際に、システムバス調停機構3に対してシステムバス
獲得要求信号を出力できない故障のあったプロセッサが
排除され、正常な他のプロセッサによってブートプロセ
スを実行させることができる。従って、ブートプロセス
を実行すべき優先度の最も高い1つのプロセッサに故障
があっても、他に正常なプロセッサが存在すれば、シス
テムを起動させることができる。
【0033】次に、本発明の第2実施例について説明す
る。図3は本発明の第2実施例に係わるマルチプロセッ
サシステムの概略構成を示すブロック図である。図3に
示すように、システムバス1を介して、ブートROM
2、システムバス調停機構23、複数(本実施例では3
つ)のプロセッサ4,5,6、及びメインメモリ7が相
互に接続されて構成されている。なお、図1に示す第1
実施例のマルチプロセッサシステムと同一構成部分につ
いては同一符号を付して説明を省略する。
る。図3は本発明の第2実施例に係わるマルチプロセッ
サシステムの概略構成を示すブロック図である。図3に
示すように、システムバス1を介して、ブートROM
2、システムバス調停機構23、複数(本実施例では3
つ)のプロセッサ4,5,6、及びメインメモリ7が相
互に接続されて構成されている。なお、図1に示す第1
実施例のマルチプロセッサシステムと同一構成部分につ
いては同一符号を付して説明を省略する。
【0034】システムバス調停機構23は、プロセッサ
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構23は、
システムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構23からプロセッサに
対するリセット信号、システムバス使用許可信号を含ん
でいる。また、システムバス調停機構制御信号は、プロ
セッサからシステムバス調停機構23に対するシステム
バス獲得要求信号を含んでいる。各信号が送受信される
動作の詳細については後述する。
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構23は、
システムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構23からプロセッサに
対するリセット信号、システムバス使用許可信号を含ん
でいる。また、システムバス調停機構制御信号は、プロ
セッサからシステムバス調停機構23に対するシステム
バス獲得要求信号を含んでいる。各信号が送受信される
動作の詳細については後述する。
【0035】システムバス調停機構23には、動作可能
プロセッサ保持レジスタ33、プロセッサ選択機構3
4、及び初期化制御フラグ35が設けられている。動作
可能プロセッサ保持レジスタ33は、システム内で動作
可能なプロセッサを示す情報を各プロセッサ毎に保持す
るためのもので、システム内のプロセッサの数と同数の
フィールドが設けられ、フィールドとプロセッサが対応
づけられている。動作可能プロセッサ保持レジスタ33
には、物理アドレスが割り当てられており、外部から
(他の何れのプロセッサからでも)読み書きが可能とな
っている。プロセッサ選択機構34は、動作可能プロセ
ッサ保持レジスタ33に格納された情報を参照して、プ
ロセッサからのシステムバス獲得要求信号に対して、動
作可能なプロセッサのみにシステムバス使用許可信号を
送出、あるいはシステムリセット信号に応じてプロセッ
サにプロセッサ制御信号のリセット信号を送出するもの
である。初期化制御フラグ35は、複数のプロセッサの
中で1つのプロセッサにブートプロセスを継続して実行
させるために用いられる。初期化制御フラグ35は、物
理アドレスが割り当てられており、外部から(他の何れ
のプロセッサからでも)読み書きが可能となっている。
プロセッサ保持レジスタ33、プロセッサ選択機構3
4、及び初期化制御フラグ35が設けられている。動作
可能プロセッサ保持レジスタ33は、システム内で動作
可能なプロセッサを示す情報を各プロセッサ毎に保持す
るためのもので、システム内のプロセッサの数と同数の
フィールドが設けられ、フィールドとプロセッサが対応
づけられている。動作可能プロセッサ保持レジスタ33
には、物理アドレスが割り当てられており、外部から
(他の何れのプロセッサからでも)読み書きが可能とな
っている。プロセッサ選択機構34は、動作可能プロセ
ッサ保持レジスタ33に格納された情報を参照して、プ
ロセッサからのシステムバス獲得要求信号に対して、動
作可能なプロセッサのみにシステムバス使用許可信号を
送出、あるいはシステムリセット信号に応じてプロセッ
サにプロセッサ制御信号のリセット信号を送出するもの
である。初期化制御フラグ35は、複数のプロセッサの
中で1つのプロセッサにブートプロセスを継続して実行
させるために用いられる。初期化制御フラグ35は、物
理アドレスが割り当てられており、外部から(他の何れ
のプロセッサからでも)読み書きが可能となっている。
【0036】次に、第2実施例の動作について、図4に
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構23は、システムリセット信号がオ
ンであるときには、プロセッサ選択機構34によって各
プロセッサ4,5,6のそれぞれに対してプロセッサ制
御信号S1,S2,S3のリセット信号を出力し、プロ
セッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構23は、システムリセット信号がオ
ンであるときには、プロセッサ選択機構34によって各
プロセッサ4,5,6のそれぞれに対してプロセッサ制
御信号S1,S2,S3のリセット信号を出力し、プロ
セッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
【0037】システムリセット信号がオフとなりシステ
ムリセットが解除されると、システムバス調停機構23
は、プロセッサ制御信号S1,S2,S3のリセット信
号を解除(オフ)することによって、プロセッサ4,
5,6の動作を開始させる(ステップB1)。
ムリセットが解除されると、システムバス調停機構23
は、プロセッサ制御信号S1,S2,S3のリセット信
号を解除(オフ)することによって、プロセッサ4,
5,6の動作を開始させる(ステップB1)。
【0038】この時、プロセッサ4,5,6は、ブート
ROM2の先頭番地の命令をフェッチするために、それ
ぞれシステムバス調停機構制御信号S4,S5,S6の
システムバス獲得要求信号を用いて、システムバス調停
機構23に対してシステムバス獲得要求を出す(ステッ
プB2)。
ROM2の先頭番地の命令をフェッチするために、それ
ぞれシステムバス調停機構制御信号S4,S5,S6の
システムバス獲得要求信号を用いて、システムバス調停
機構23に対してシステムバス獲得要求を出す(ステッ
プB2)。
【0039】システムバス調停機構23は、各プロセッ
サからのシステムバス獲得要求信号に対して、1つのプ
ロセッサにシステムバス使用許可信号を出力し、システ
ムバス1の使用権を与える(ステップB3)。
サからのシステムバス獲得要求信号に対して、1つのプ
ロセッサにシステムバス使用許可信号を出力し、システ
ムバス1の使用権を与える(ステップB3)。
【0040】システムバス使用許可信号を入力したプロ
セッサは、ブートROM2のプログラム(コード)を読
み込み、ブートプロセスの実行を開始する。ブートプロ
セスでは、まずプロセッサ自身を初期化する処理(初期
化ルーチン)が実行される(ステップB4)。
セッサは、ブートROM2のプログラム(コード)を読
み込み、ブートプロセスの実行を開始する。ブートプロ
セスでは、まずプロセッサ自身を初期化する処理(初期
化ルーチン)が実行される(ステップB4)。
【0041】システムバス調停機構23は、順次、シス
テムバス獲得要求信号を出力したプロセッサにシステム
バス使用許可を与える。このため、各プロセッサは、そ
れぞれプロセッサ自身を初期化する処理を実行する。
テムバス獲得要求信号を出力したプロセッサにシステム
バス使用許可を与える。このため、各プロセッサは、そ
れぞれプロセッサ自身を初期化する処理を実行する。
【0042】この結果、プロセッサ4,5,6の何れか
1つが、最初にブートROM2に格納されたコード(プ
ログラム)のプロセッサ自身を初期化するルーチンの実
行を完了する(ステップB5)。ここでは、プロセッサ
4が、最初に初期化ルーチンを完了したものとする。ブ
ートROM2には、プロセッサ自身を初期化するルーチ
ンが完了した後に、次のような処理を実行させるコード
が格納されている。
1つが、最初にブートROM2に格納されたコード(プ
ログラム)のプロセッサ自身を初期化するルーチンの実
行を完了する(ステップB5)。ここでは、プロセッサ
4が、最初に初期化ルーチンを完了したものとする。ブ
ートROM2には、プロセッサ自身を初期化するルーチ
ンが完了した後に、次のような処理を実行させるコード
が格納されている。
【0043】すなわち、初期化ルーチンを最初に完了し
たプロセッサ4は、システムバス調停機構23の動作可
能プロセッサ保持レジスタ33の自プロセッサに対応す
るフィールドに、初期化ルーチンが完了して正常である
ことを示すようにフラグを立てる(ステップB6)。
たプロセッサ4は、システムバス調停機構23の動作可
能プロセッサ保持レジスタ33の自プロセッサに対応す
るフィールドに、初期化ルーチンが完了して正常である
ことを示すようにフラグを立てる(ステップB6)。
【0044】そして、プロセッサ4は、初期化制御フラ
グ35を参照し、フラグが立っていなければ、既に初期
化ルーチンを完了したプロセッサが存在していることを
示すようにフラグを立てる(ステップB7,B8)。プ
ロセッサ4は、プロセッサ自身の初期化ルーチンに続く
ブートプロセス、すなわちボード上の周辺回路などの初
期化、I/Oデバイスの初期化など、それ以降のコード
の実行を続ける(ステップB9)。
グ35を参照し、フラグが立っていなければ、既に初期
化ルーチンを完了したプロセッサが存在していることを
示すようにフラグを立てる(ステップB7,B8)。プ
ロセッサ4は、プロセッサ自身の初期化ルーチンに続く
ブートプロセス、すなわちボード上の周辺回路などの初
期化、I/Oデバイスの初期化など、それ以降のコード
の実行を続ける(ステップB9)。
【0045】一方、プロセッサ5,6は、初期化ルーチ
ンを正常に完了できたら、プロセッサ4と同様にして、
システムバス調停機構23の動作可能プロセッサ保持レ
ジスタ33の自プロセッサに対応するフィールドにフラ
グを立てる(ステップB6)。
ンを正常に完了できたら、プロセッサ4と同様にして、
システムバス調停機構23の動作可能プロセッサ保持レ
ジスタ33の自プロセッサに対応するフィールドにフラ
グを立てる(ステップB6)。
【0046】そして、プロセッサ5,6は、初期化制御
フラグ35を参照するが、2番目移行にプロセッサ自身
の初期化ルーチンを完了した場合、既にフラグが立って
いるので(ステップB7)、初期化ルーチンを継続して
実行せず、所定の状況となるまで実行される無意味な処
理、すなわち無限ループを実行する(ステップB1
0)。例えば、無限ループには、OSによってマルチプ
ロセッサ化される際に、分岐命令に書き換えられる対象
となるダミー命令(nop命令)が含まれている。
フラグ35を参照するが、2番目移行にプロセッサ自身
の初期化ルーチンを完了した場合、既にフラグが立って
いるので(ステップB7)、初期化ルーチンを継続して
実行せず、所定の状況となるまで実行される無意味な処
理、すなわち無限ループを実行する(ステップB1
0)。例えば、無限ループには、OSによってマルチプ
ロセッサ化される際に、分岐命令に書き換えられる対象
となるダミー命令(nop命令)が含まれている。
【0047】プロセッサ4は、正常にブートプロセスを
実行するので、OSをローディングし実行する。プロセ
ッサ4は、OSのマルチプロセッサ化するための処理に
基づいて、システムバス調停機構23の動作可能プロセ
ッサ保持レジスタ33を参照して、動作可能な(プロセ
ッサ自身の初期化が完了した)プロセッサを判別する。
実行するので、OSをローディングし実行する。プロセ
ッサ4は、OSのマルチプロセッサ化するための処理に
基づいて、システムバス調停機構23の動作可能プロセ
ッサ保持レジスタ33を参照して、動作可能な(プロセ
ッサ自身の初期化が完了した)プロセッサを判別する。
【0048】プロセッサ4は、動作可能なプロセッサ、
すなわちプロセッサ5,6が実行しているメインメモリ
7中に格納されている無限ループ中のダミー命令を、マ
ルチプロセッサ処理を実行する処理へ分岐する分岐命令
に書き換えて、無限ループの処理から出して実質的に動
作を開始させる。
すなわちプロセッサ5,6が実行しているメインメモリ
7中に格納されている無限ループ中のダミー命令を、マ
ルチプロセッサ処理を実行する処理へ分岐する分岐命令
に書き換えて、無限ループの処理から出して実質的に動
作を開始させる。
【0049】なお、プロセッサ自身を初期化するルーチ
ンを完了した2番目以降のプロセッサに対して、無限ル
ープの処理から出すためには、前述のような命令を書き
換える方法の他に、無限ループによって所定回数以上の
命令を実行した場合に、無限ループからマルチプロセッ
サ処理を実行する処理へ分岐するようになっていても良
い。この場合、無限ループから出る前に、プロセッサ4
によるブートプロセスが完了している必要がある。ま
た、その他の方法であっても良い。
ンを完了した2番目以降のプロセッサに対して、無限ル
ープの処理から出すためには、前述のような命令を書き
換える方法の他に、無限ループによって所定回数以上の
命令を実行した場合に、無限ループからマルチプロセッ
サ処理を実行する処理へ分岐するようになっていても良
い。この場合、無限ループから出る前に、プロセッサ4
によるブートプロセスが完了している必要がある。ま
た、その他の方法であっても良い。
【0050】前述した第2実施例において、障害を持つ
プロセッサを排除できることを説明する。プロセッサ
4,5,6の中に障害を持つプロセッサがある場合に
は、まず、そのプロセッサは、プロセッサ自身を初期化
するルーチンを実行することができずに、動作可能プロ
セッサ保持レジスタ33に自プロセッサに対応するフィ
ールドにフラグを立てる処理まで実行することができな
い。
プロセッサを排除できることを説明する。プロセッサ
4,5,6の中に障害を持つプロセッサがある場合に
は、まず、そのプロセッサは、プロセッサ自身を初期化
するルーチンを実行することができずに、動作可能プロ
セッサ保持レジスタ33に自プロセッサに対応するフィ
ールドにフラグを立てる処理まで実行することができな
い。
【0051】従って、OSによってマルチプロセッサ化
する際に、動作可能なプロセッサとは認識されないこと
になるので、そのプロセッサを排除することができる。
このようにして、ブートROM2に格納されたプロセッ
サ自身を初期化するルーチンを実行できない故障のあっ
たプロセッサが排除され、正常な他のプロセッサによっ
てブートプロセスを実行させることができる。従って、
ブートプロセスを実行すべき優先度の最も高い1つのプ
ロセッサに故障があっても、他に正常なプロセッサが存
在すれば、システムを起動させることができる。
する際に、動作可能なプロセッサとは認識されないこと
になるので、そのプロセッサを排除することができる。
このようにして、ブートROM2に格納されたプロセッ
サ自身を初期化するルーチンを実行できない故障のあっ
たプロセッサが排除され、正常な他のプロセッサによっ
てブートプロセスを実行させることができる。従って、
ブートプロセスを実行すべき優先度の最も高い1つのプ
ロセッサに故障があっても、他に正常なプロセッサが存
在すれば、システムを起動させることができる。
【0052】次に、本発明の第3実施例について説明す
る。図5は本発明の第3実施例に係わるマルチプロセッ
サシステムの概略構成を示すブロック図である。図5に
示すように、システムバス1を介して、ブートROM
2、システムバス調停機構43、複数(本実施例では3
つ)のプロセッサ4,5,6、及びメインメモリ7が相
互に接続されて構成されている。なお、図1に示す第1
実施例のマルチプロセッサシステムと同一構成部分につ
いては同一符号を付して説明を省略する。
る。図5は本発明の第3実施例に係わるマルチプロセッ
サシステムの概略構成を示すブロック図である。図5に
示すように、システムバス1を介して、ブートROM
2、システムバス調停機構43、複数(本実施例では3
つ)のプロセッサ4,5,6、及びメインメモリ7が相
互に接続されて構成されている。なお、図1に示す第1
実施例のマルチプロセッサシステムと同一構成部分につ
いては同一符号を付して説明を省略する。
【0053】システムバス調停機構43は、プロセッサ
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構43は、
システムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構43からプロセッサに
対するリセット信号、システムバス使用許可信号を含ん
でいる。また、システムバス調停機構制御信号は、プロ
セッサからシステムバス調停機構43に対するシステム
バス獲得要求信号を含んでいる。各信号が送受信される
動作の詳細については後述する。
4,5,6などからのシステムバス1に対する使用要求
を調停するものである。システムバス調停機構43は、
システムバス1と接続されている他、各プロセッサ4,
5,6との間でプロセッサ制御信号及びシステムバス調
停機構制御信号の送受信を行なう。なお、プロセッサ制
御信号は、システムバス調停機構43からプロセッサに
対するリセット信号、システムバス使用許可信号を含ん
でいる。また、システムバス調停機構制御信号は、プロ
セッサからシステムバス調停機構43に対するシステム
バス獲得要求信号を含んでいる。各信号が送受信される
動作の詳細については後述する。
【0054】システムバス調停機構43には、動作可能
プロセッサ保持レジスタ53、プロセッサ制御部54、
及びカウンタ55が設けられている。動作可能プロセッ
サ保持レジスタ53は、システム内で動作可能なプロセ
ッサを示す情報を各プロセッサ毎に保持するためのもの
で、システム内のプロセッサの数と同数のフィールドが
設けられ、フィールドとプロセッサが対応づけられてい
る。動作可能プロセッサ保持レジスタ53には、物理ア
ドレスが割り当てられており、外部から(他の何れのプ
ロセッサからでも)読み書きが可能となっている。プロ
セッサ制御部54は、プロセッサからのシステムバス獲
得要求信号に対して、動作可能なプロセッサにシステム
バス使用許可信号を送出、あるいはシステムリセット信
号に応じてプロセッサにプロセッサ制御信号のリセット
信号を送出するものである。また、プロセッサ制御部5
4は、動作可能プロセッサ保持レジスタ53に格納され
た情報、及びカウンタ55からの通知に基づいて、動作
可能なプロセッサによってブートプロセスを継続して実
行させるものである。カウンタ55は、プロセッサがブ
ートプロセスを開始してから所定の時間を計測するため
のもので、プロセッサがブートROM2内のプロセッサ
自身を初期化するルーチンの実行が終了するまでに要す
る時間に比べて十分に長い時間(例えば1.5倍〜2倍
程度)の計測を行なうものとする。例えば、カウンタ5
5は、システムクロックに同期するカウンタで、プロセ
ッサ自身を初期化するルーチンの実行に要するサイクル
数よりも十分に長いサイクル数をカウントできるものと
する。カウンタ55は、所定の時間の計測を完了した場
合にプロセッサ制御部54に通知する。
プロセッサ保持レジスタ53、プロセッサ制御部54、
及びカウンタ55が設けられている。動作可能プロセッ
サ保持レジスタ53は、システム内で動作可能なプロセ
ッサを示す情報を各プロセッサ毎に保持するためのもの
で、システム内のプロセッサの数と同数のフィールドが
設けられ、フィールドとプロセッサが対応づけられてい
る。動作可能プロセッサ保持レジスタ53には、物理ア
ドレスが割り当てられており、外部から(他の何れのプ
ロセッサからでも)読み書きが可能となっている。プロ
セッサ制御部54は、プロセッサからのシステムバス獲
得要求信号に対して、動作可能なプロセッサにシステム
バス使用許可信号を送出、あるいはシステムリセット信
号に応じてプロセッサにプロセッサ制御信号のリセット
信号を送出するものである。また、プロセッサ制御部5
4は、動作可能プロセッサ保持レジスタ53に格納され
た情報、及びカウンタ55からの通知に基づいて、動作
可能なプロセッサによってブートプロセスを継続して実
行させるものである。カウンタ55は、プロセッサがブ
ートプロセスを開始してから所定の時間を計測するため
のもので、プロセッサがブートROM2内のプロセッサ
自身を初期化するルーチンの実行が終了するまでに要す
る時間に比べて十分に長い時間(例えば1.5倍〜2倍
程度)の計測を行なうものとする。例えば、カウンタ5
5は、システムクロックに同期するカウンタで、プロセ
ッサ自身を初期化するルーチンの実行に要するサイクル
数よりも十分に長いサイクル数をカウントできるものと
する。カウンタ55は、所定の時間の計測を完了した場
合にプロセッサ制御部54に通知する。
【0055】次に、第3実施例の動作について、図6に
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構43は、システムリセット信号がオ
ンであるときには、プロセッサ制御部54によって各プ
ロセッサ4,5,6のそれぞれに対してプロセッサ制御
信号S1,S2,S3のリセット信号を出力し、プロセ
ッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
示すフローチャートを参照しながら説明する。まず、シ
ステムバス調停機構43は、システムリセット信号がオ
ンであるときには、プロセッサ制御部54によって各プ
ロセッサ4,5,6のそれぞれに対してプロセッサ制御
信号S1,S2,S3のリセット信号を出力し、プロセ
ッサにリセットをかけ続ける。その結果、プロセッサ
4、5、6は、命令フェッチなどの動作を全く行なわな
い。
【0056】システムリセット信号がオフとなりシステ
ムリセットが解除されると、システムバス調停機構43
は、複数のプロセッサから優先順位を規定する規則に従
って(プロセッサが搭載されたボードのスロットへの実
装位置等)、最も優先度が高い1つのプロセッサを選択
してリセット信号を解除(オフ)することによって動作
を開始させる。システムバス調停機構43は、その他の
プロセッサに対してはリセット信号を出力したままにし
ておく(ステップC1)。
ムリセットが解除されると、システムバス調停機構43
は、複数のプロセッサから優先順位を規定する規則に従
って(プロセッサが搭載されたボードのスロットへの実
装位置等)、最も優先度が高い1つのプロセッサを選択
してリセット信号を解除(オフ)することによって動作
を開始させる。システムバス調停機構43は、その他の
プロセッサに対してはリセット信号を出力したままにし
ておく(ステップC1)。
【0057】ここで、システムバス調停機構43からリ
セット信号が解除されたプロセッサをプロセッサ4であ
るものとする。すなわち、プロセッサ制御部54は、プ
ロセッサ4にプロセッサ制御信号S1のリセット信号を
解除し、またシステムバス獲得要求信号に応じたシステ
ムバス使用許可信号を用いてシステムバスの使用許可を
与え、プロセッサ5,6にはプロセッサ制御信号S2,
S3のリセット信号を用いて命令フェッチなどの動作を
全く行なわないようにしておく。
セット信号が解除されたプロセッサをプロセッサ4であ
るものとする。すなわち、プロセッサ制御部54は、プ
ロセッサ4にプロセッサ制御信号S1のリセット信号を
解除し、またシステムバス獲得要求信号に応じたシステ
ムバス使用許可信号を用いてシステムバスの使用許可を
与え、プロセッサ5,6にはプロセッサ制御信号S2,
S3のリセット信号を用いて命令フェッチなどの動作を
全く行なわないようにしておく。
【0058】プロセッサ4は、システムバス1の使用権
を獲得したので、システムバス1を介してコードを読み
込んでブートプロセスの動作を開始する。ブートプロセ
スでは、まずプロセッサ自身を初期化する処理が実行さ
れる(ステップC2)。
を獲得したので、システムバス1を介してコードを読み
込んでブートプロセスの動作を開始する。ブートプロセ
スでは、まずプロセッサ自身を初期化する処理が実行さ
れる(ステップC2)。
【0059】一方、カウンタ55は、ブートプロセスの
動作が開始されると同時に、時間の計測を開始する(ス
テップC3)。プロセッサ制御部54は、システムバス
使用許可信号を出力したプロセッサ、すなわちブートプ
ロセスのプロセッサ自身の初期化を実行しているプロセ
ッサに対応する動作可能プロセッサ保持レジスタ53の
フィールドに、フラグが設定されるかを監視する(ステ
ップC4)。
動作が開始されると同時に、時間の計測を開始する(ス
テップC3)。プロセッサ制御部54は、システムバス
使用許可信号を出力したプロセッサ、すなわちブートプ
ロセスのプロセッサ自身の初期化を実行しているプロセ
ッサに対応する動作可能プロセッサ保持レジスタ53の
フィールドに、フラグが設定されるかを監視する(ステ
ップC4)。
【0060】ブートプロセスを実行するプロセッサ4
は、ブートROM2内のコード(プログラム)のうち、
プロセッサ自身を初期化するルーチンを終了すると、動
作可能プロセッサ保持レジスタ53の自プロセッサ4に
対応するフィールドに、正常であることを示すようにフ
ラグを立てる(ステップC5)。
は、ブートROM2内のコード(プログラム)のうち、
プロセッサ自身を初期化するルーチンを終了すると、動
作可能プロセッサ保持レジスタ53の自プロセッサ4に
対応するフィールドに、正常であることを示すようにフ
ラグを立てる(ステップC5)。
【0061】プロセッサ制御部54は、現在動作してい
るプロセッサ4のフィールドにフラグが設定されたこと
を検出すると、カウンタ55をリセットして、時間の計
測を終了させる(ステップC6)。プロセッサ4は、そ
のままブートROM2内のプロセッサ自身の初期化ルー
チンに続くブートプロセス、すなわちボード上の周辺回
路などの初期化、I/Oデバイスの初期化などの実行を
継続する(ステップC7)。
るプロセッサ4のフィールドにフラグが設定されたこと
を検出すると、カウンタ55をリセットして、時間の計
測を終了させる(ステップC6)。プロセッサ4は、そ
のままブートROM2内のプロセッサ自身の初期化ルー
チンに続くブートプロセス、すなわちボード上の周辺回
路などの初期化、I/Oデバイスの初期化などの実行を
継続する(ステップC7)。
【0062】ブートプロセスを継続して実行させるプロ
セッサが得られると、プロセッサ制御部54は、その他
のプロセッサ(プロセッサ5,6)に対して、順次、シ
ステムバス使用許可信号によってシステムバス1の使用
を許可しながら、ブートプロセスを実行させる(ステッ
プC8)。
セッサが得られると、プロセッサ制御部54は、その他
のプロセッサ(プロセッサ5,6)に対して、順次、シ
ステムバス使用許可信号によってシステムバス1の使用
を許可しながら、ブートプロセスを実行させる(ステッ
プC8)。
【0063】2番目以降にブートプロセスを実行するプ
ロセッサ5,6は、プロセッサ自身を初期化するルーチ
ンを完了すると、システムバス調停機構43の動作可能
プロセッサ保持レジスタ53の自プロセッサに対応する
フィールドに、初期化ルーチンが完了して正常であるこ
とを示すようにフラグを立てる(ステップC9)。
ロセッサ5,6は、プロセッサ自身を初期化するルーチ
ンを完了すると、システムバス調停機構43の動作可能
プロセッサ保持レジスタ53の自プロセッサに対応する
フィールドに、初期化ルーチンが完了して正常であるこ
とを示すようにフラグを立てる(ステップC9)。
【0064】プロセッサ5,6は、動作可能プロセッサ
保持レジスタ53へのフラグの設定が完了すると、所定
の状況となるまで実行される無意味な処理、すなわち無
限ループを実行する。
保持レジスタ53へのフラグの設定が完了すると、所定
の状況となるまで実行される無意味な処理、すなわち無
限ループを実行する。
【0065】無限ループの処理を実行するプロセッサ
5,6は、前述した第2実施例と同様にして、正常にブ
ートプロセスを実行したプロセッサ4によってメインメ
モリ7にローディングされたOSによって、マルチプロ
セッサ化される際に、命令が書き換えられるなどにより
実質的に動作を開始する。
5,6は、前述した第2実施例と同様にして、正常にブ
ートプロセスを実行したプロセッサ4によってメインメ
モリ7にローディングされたOSによって、マルチプロ
セッサ化される際に、命令が書き換えられるなどにより
実質的に動作を開始する。
【0066】一方、動作可能プロセッサ保持レジスタの
フラグ53へのフラグの設定が、何らかの要因によって
遅れた場合、もしくは不可能になった場合、カウンタ5
5は、所定の時間の計測を完了し、その旨をプロセッサ
制御部54に通知する(ステップC10)。
フラグ53へのフラグの設定が、何らかの要因によって
遅れた場合、もしくは不可能になった場合、カウンタ5
5は、所定の時間の計測を完了し、その旨をプロセッサ
制御部54に通知する(ステップC10)。
【0067】プロセッサ制御部54は、カウンタ55か
らの通知を受けると、その時に動作中のプロセッサ(こ
の場合はプロセッサ4)に対し、故障等の異常があるも
のとしてブートプロセスの実行を停止させるためにリセ
ット信号を出力する(ステップC11)。
らの通知を受けると、その時に動作中のプロセッサ(こ
の場合はプロセッサ4)に対し、故障等の異常があるも
のとしてブートプロセスの実行を停止させるためにリセ
ット信号を出力する(ステップC11)。
【0068】次に、プロセッサ制御部54は、プロセッ
サ4の次に優先度が高い1つのプロセッサ(プロセッサ
5とする)を選択してシステムバス使用許可信号を出力
し(リセット解除)、前述したプロセッサ4と同様にし
てブートプロセス、すなわちプロセッサ自身を初期化す
る処理を実行させる(ステップC1,C2)。
サ4の次に優先度が高い1つのプロセッサ(プロセッサ
5とする)を選択してシステムバス使用許可信号を出力
し(リセット解除)、前述したプロセッサ4と同様にし
てブートプロセス、すなわちプロセッサ自身を初期化す
る処理を実行させる(ステップC1,C2)。
【0069】この際、カウンタ55は、ブートプロセス
を実行させるプロセッサが変更されたことによって、時
間の計測を初期状態から開始する(ステップC3)。以
下、前述と同様にして処理する。
を実行させるプロセッサが変更されたことによって、時
間の計測を初期状態から開始する(ステップC3)。以
下、前述と同様にして処理する。
【0070】すなわち、プロセッサにブートプロセスを
実行させて、プロセッサ自身を初期化するルーチンが完
了できなかった場合、順次、対象とするプロセッサを変
更し、システム内の全てのプロセッサについて試行する
まで繰り返して行なう。
実行させて、プロセッサ自身を初期化するルーチンが完
了できなかった場合、順次、対象とするプロセッサを変
更し、システム内の全てのプロセッサについて試行する
まで繰り返して行なう。
【0071】このようにして、ブートプロセスを実行す
べき1つのプロセッサを選択して、プロセッサ自身を初
期化するルーチンを試行させ、正常に初期化処理が完了
すればそのままブートプロセスを継続して実行させる。
そして、プロセッサ自身を初期化するルーチンが所定の
時間内に完了できなかった場合には、次のプロセッサを
選択して、同様にブートプロセス(初期化ルーチン)を
試行する。従って、システム内に1つでも動作可能なプ
ロセッサが存在すれば、ブートROM2内のコード(プ
ログラム)を、プロセッサ自身を初期化するルーチンの
後も継続して実行させることができ、システムを起動さ
せることができる。
べき1つのプロセッサを選択して、プロセッサ自身を初
期化するルーチンを試行させ、正常に初期化処理が完了
すればそのままブートプロセスを継続して実行させる。
そして、プロセッサ自身を初期化するルーチンが所定の
時間内に完了できなかった場合には、次のプロセッサを
選択して、同様にブートプロセス(初期化ルーチン)を
試行する。従って、システム内に1つでも動作可能なプ
ロセッサが存在すれば、ブートROM2内のコード(プ
ログラム)を、プロセッサ自身を初期化するルーチンの
後も継続して実行させることができ、システムを起動さ
せることができる。
【0072】
【発明の効果】以上詳述したように本発明によれば、複
数のプロセッサの中で故障したプロセッサが存在して
も、正常な他のプロセッサによってブートプロセスを実
行し、システムを起動することができるので、信頼性の
高いマルチプロセッサシステムを構成することが可能と
なるものである。
数のプロセッサの中で故障したプロセッサが存在して
も、正常な他のプロセッサによってブートプロセスを実
行し、システムを起動することができるので、信頼性の
高いマルチプロセッサシステムを構成することが可能と
なるものである。
【図1】本発明の第1実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
システムの構成を示すブロック図。
【図2】第1実施例の動作を説明するためのフローチャ
ート。
ート。
【図3】本発明の第2実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
システムの構成を示すブロック図。
【図4】第2実施例の動作を説明するためのフローチャ
ート。
ート。
【図5】本発明の第3実施例に係わるマルチプロセッサ
システムの構成を示すブロック図。
システムの構成を示すブロック図。
【図6】第3実施例の動作を説明するためのフローチャ
ート。
ート。
1…システムバス、2…ブートROM、3,23,43
…システムバス調停機構、4,5,6…プロセッサ、7
…メインメモリ、S1,S2,S3…プロセッサ制御信
号、S4,S5,S6…システムバス調停機構制御信
号。
…システムバス調停機構、4,5,6…プロセッサ、7
…メインメモリ、S1,S2,S3…プロセッサ制御信
号、S4,S5,S6…システムバス調停機構制御信
号。
Claims (3)
- 【請求項1】 システムを起動するためのブートストラ
ップを記憶した記憶装置を持ち、システムバスを介して
前記記憶装置と接続された複数のプロセッサを有するマ
ルチプロセッサシステムにおいて、 システムリセットが解除されたとき、前記システムバス
の獲得要求を出力したプロセッサの中から予め規定され
た優先度に基づいて1つのプロセッサを選択してシステ
ムバスの使用許可を与え、選択されなかったその他のプ
ロセッサには、前記選択されたプロセッサが前記ブート
ストラップの実行が完了するまで、システムバスの使用
許可を与えないことを特徴とするマルチプロセッサシス
テムの起動方法。 - 【請求項2】 システムを起動するためのブートストラ
ップを記憶した記憶装置を持ち、システムバスを介して
前記記憶装置と接続された複数のプロセッサを有するマ
ルチプロセッサシステムにおいて、 システムリセットが解除されたとき、前記複数のプロセ
ッサからそれぞれ出力される前記システムバスの獲得要
求に対して、順次システムバスの使用許可を与え、前記
複数のプロセッサのそれぞれにより前記記憶装置に記憶
されたブートストラップを実行させ、1つのプロセッサ
が前記ブートストラップの内のプロセッサの初期化ルー
チンを終了した際、そのプロセッサに前記ブートストラ
ップの実行を継続させるとともに、その他のプロセッサ
には、前記ブートストラップの内のプロセッサの初期化
ルーチンを終了した後、以後のルーチンを実行させない
ことを特徴とするマルチプロセッサシステムの起動方
法。 - 【請求項3】 システムを起動するためのブートストラ
ップを記憶した記憶装置を持ち、システムバスを介して
前記記憶装置と接続された複数のプロセッサを有するマ
ルチプロセッサシステムにおいて、 システムリセットが解除されたとき、前記複数のプロセ
ッサの中から予め規定された優先度に基づいて1つのプ
ロセッサを選択して前記記憶装置に記憶されたブートス
トラップを実行させ、この選択されたプロセッサが所定
時間内に前記ブートストラップの内のプロセッサの初期
化ルーチンを終了した場合には、そのプロセッサに前記
ブートストラップの実行を継続させ、この選択されたプ
ロセッサが所定の時間内に前記ブートストラップの内の
プロセッサの初期化ルーチンを終了しなかった場合に
は、前記優先度に基づいてその他のプロセッサを選択し
て前記記憶装置に記憶されたブートストラップを実行さ
せることを特徴とするマルチプロセッサシステムの起動
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7076291A JPH08272756A (ja) | 1995-03-31 | 1995-03-31 | マルチプロセッサシステムの起動方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7076291A JPH08272756A (ja) | 1995-03-31 | 1995-03-31 | マルチプロセッサシステムの起動方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08272756A true JPH08272756A (ja) | 1996-10-18 |
Family
ID=13601244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7076291A Pending JPH08272756A (ja) | 1995-03-31 | 1995-03-31 | マルチプロセッサシステムの起動方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08272756A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584560B1 (en) * | 2000-04-19 | 2003-06-24 | Dell Usa, L.P. | Method and system for booting a multiprocessor computer |
US7191271B2 (en) * | 2001-09-20 | 2007-03-13 | Lockheed Martin Corporation | Two level multi-tier system bus |
JP2007334883A (ja) * | 2006-06-09 | 2007-12-27 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システムのブートのためにランダム・プロセッサを選択するためのシステムおよび方法 |
JP2007334882A (ja) * | 2006-06-09 | 2007-12-27 | Internatl Business Mach Corp <Ibm> | ハードウェア・ブート・シーケンスをマスキングするためのシステムおよび方法 |
US7336700B2 (en) | 2001-09-20 | 2008-02-26 | Lockheed Martin Corporation | System bus transceiver interface |
JP2009540405A (ja) * | 2006-06-09 | 2009-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム |
JP2011013953A (ja) * | 2009-07-02 | 2011-01-20 | Nec Corp | 情報処理装置及びそのプロセッサ管理方法 |
-
1995
- 1995-03-31 JP JP7076291A patent/JPH08272756A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584560B1 (en) * | 2000-04-19 | 2003-06-24 | Dell Usa, L.P. | Method and system for booting a multiprocessor computer |
US7191271B2 (en) * | 2001-09-20 | 2007-03-13 | Lockheed Martin Corporation | Two level multi-tier system bus |
US7336700B2 (en) | 2001-09-20 | 2008-02-26 | Lockheed Martin Corporation | System bus transceiver interface |
JP2007334883A (ja) * | 2006-06-09 | 2007-12-27 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システムのブートのためにランダム・プロセッサを選択するためのシステムおよび方法 |
JP2007334882A (ja) * | 2006-06-09 | 2007-12-27 | Internatl Business Mach Corp <Ibm> | ハードウェア・ブート・シーケンスをマスキングするためのシステムおよび方法 |
JP2009540405A (ja) * | 2006-06-09 | 2009-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム |
JP2011013953A (ja) * | 2009-07-02 | 2011-01-20 | Nec Corp | 情報処理装置及びそのプロセッサ管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5768585A (en) | System and method for synchronizing multiple processors during power-on self testing | |
EP2966650B1 (en) | Memory built-in self test for a data processing apparatus | |
US4811345A (en) | Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit | |
US5673388A (en) | Memory testing in a multiple processor computer system | |
US5333274A (en) | Error detection and recovery in a DMA controller | |
JPH02232737A (ja) | パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置 | |
US7711941B2 (en) | Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit | |
US20140201403A1 (en) | Debug control circuit | |
JPH10187642A (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
US4635186A (en) | Detection and correction of multi-chip synchronization errors | |
US5229999A (en) | Method and apparatus for integrity testing of fault monitoring logic | |
JPH08272756A (ja) | マルチプロセッサシステムの起動方法 | |
US5928348A (en) | Method of processing interrupt requests and information processing apparatus using the method | |
JPH05173985A (ja) | プログラマブルコントローラ | |
US11521698B2 (en) | Testing read-only memory using memory built-in self-test controller | |
EP3699913B1 (en) | Delayed reset for code execution from memory device | |
JPH02130666A (ja) | マルチプロセッサシステムのシステム再構成方式 | |
JP2001256044A (ja) | データ処理装置 | |
US7237099B2 (en) | Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor | |
JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
JP6645467B2 (ja) | マイクロコンピュータ | |
KR100681427B1 (ko) | 다중 프로세서 시스템을 위한 리셋 회로 | |
JPH0282344A (ja) | マルチプロセッサシステムにおけるプログラムのデバッギングの方法 | |
JP2001350643A (ja) | マイクロコンピュータの制御方法及び異常監視装置 | |
JPS61235952A (ja) | 処理装置エラーリトライ装置および方法 |