JP3540119B2 - 割り込みルーティング機構およびマルチプロセッサ制御方式 - Google Patents
割り込みルーティング機構およびマルチプロセッサ制御方式 Download PDFInfo
- Publication number
- JP3540119B2 JP3540119B2 JP07864997A JP7864997A JP3540119B2 JP 3540119 B2 JP3540119 B2 JP 3540119B2 JP 07864997 A JP07864997 A JP 07864997A JP 7864997 A JP7864997 A JP 7864997A JP 3540119 B2 JP3540119 B2 JP 3540119B2
- Authority
- JP
- Japan
- Prior art keywords
- master
- interrupt
- host
- register
- multiprocessor
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
この発明は複数のプロッセッサエレメントを備えたマルチプロセッサシステムにおいて割り込みルーティング等を制御するためのマルチプロセッサ制御方式、およびマルチタスクのハードウェア資源利用を制御するためのマルチタスク制御方式に関するものである。
【0002】
【従来の技術】
図21は割り込みルーティングを制御する従来のマルチプロセッサ制御方式が適用される複数のマスタPEを含むマルチプロセッサシステムの構成を示すブロック図である。図において、200,210はマスタPE、201はマスタPE200のCPU、211はマスタPE210のCPU、202はマスタPE200の割り込みレジスタ、212はマスタPE210の割り込みレジスタ、140は例えばPCI(Peripheral Component Interconnect)バスやそれに準じた規格のシステムバスであり、図示していないホストPEのみが入力で他の全てのマスタPEおよびSE(図示せず)は出力であるような割り込み信号の入出力方向を有するバスである。このような従来のマルチプロセッサシステムでは、割り込みを発生する全てのSEもマスタPEとしてシステムバス140を制御する能力を有しており、SEも含む割り込みを受け付ける全てのエレメントはシステムI/O空間中に割り込みを受け付けるための割り込みレジスタをそれぞれ備えている。図21に示すマルチプロセッサシステムでは、マスタPE200はマスタPE210のスレーブとして動作する。
【0003】
次に動作について説明する。
マスタPE210のスレーブとしてのマスタPE200からマスタPE210への割り込み要求は、図21の点線で示されたマスタとしてのマスタPE210からスレーブとしてのマスタPE200への割り込みと同様な経路となる。すなわち、図21の実線に示されているように、まずマスタPE200がシステムのマスタとなってシステムバス140を取得してマスタPE210の割り込みレジスタ212にI/Oライト命令を用いて割り込み要求をセットし、これによってマスタPE210内部でCPU211に割り込みが発生する。
【0004】
図22は例えば特開平1−152561号公報に開示された従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、図21に示す従来のマルチプロセッサシステムと同一の構成要素には同一の符号を付してその説明を省略する。また、特開平1−152561号公報に開示されたマルチプロセッサシステムでは、マスタPEを上位装置もしくは上位CPU、SEをアダプタと呼んでいる。図22において、310はSEとしての共有メモリ方式のアダプタ、311はアドレス設定レジスタ、312はメモリサイズ設定レジスタである。
【0005】
次に動作について説明する。
マスタPE210のCPU211は管理プログラムにより自動的にPIO命令を実行すると、共有メモリ方式のアダプタ310のアドレス設定レジスタ311およびメモリサイズ設定レジスタ312から、共有メモリアドレスの設定値および共有メモリサイズの設定値を読み出す。従って、CPU211のシステム構築時に各アダプタの共有メモリアドレスおよび共有メモリサイズのデータが外部から入力されなくても、管理プログラムを用いて自動的に各アダプタから共有メモリアドレスおよび共有メモリサイズのデータを読み出すことができ、システム構築を容易に且つ正確に実行できる。
【0006】
図23は例えば特開昭61−294572号公報に開示された従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、図21および図22に示す従来のマルチプロセッサシステムと同一の構成要素には同一の符号を付してその説明を省略する。図23において、100はホストPE、217はマスタPE210内に設けられた2ポートメモリ、310はマスタPE210のターゲットとしてのSEである。
【0007】
次に動作について説明する。
ホストPE100とマスタPE210との間でデータ転送を行う場合、マスタPE210の2ポートメモリ217を介してデータ転送が行われる。また、マスタPE210とSE310との間でデータ転送を行う場合、マスタPE210がシステムのマスタとなってシステムバス140を制御してSE310にデータを転送する。
【0008】
図24は例えば特開平6−28320号公報に開示された従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、図21に示す従来のマルチプロセッサシステムと同一の構成要素には同一の符号を付してその説明を省略する。また、図24において、210,220はマスタプロセッサエレメント(マスタPE)、500は各マスタPE200,210,220に設けられており他のマスタPEに割り込み要求を発行する割り込み発行部(マスタPE220には図示せず)、501は各マスタPE200,210,220に設けられており他のマスタPEからの割り込み要求を処理する割り込み実行部である(マスタPE200,210には図示せず)。この従来のマルチプロセッサシステムを構成する各マスタPE200,210,220は、自マスタPEに対して割り込み要求を発行してくる可能性のある複数のマスタPEにそれぞれ対応する複数の割り込みレジスタ202を具備している。
【0009】
次に動作について説明する。
マスタPE200,210の割り込み発行部500がマスタPE220に対して割り込み処理を要求する場合、割り込み発行部500が、その割り込み要求先のマスタPE220が有する割り込みレジスタ202内のマスタPE200,210に割り付けられた部分に割り込み要求を設定する。マスタPE220の割り込みレジスタ202がこの割り込み要求の設定を受けると、マスタPE220の割り込み実行部501は対応する割り込み処理を実行する。
【0010】
図25は例えば特開昭63−39042号公報に開示された従来のマルチタスク制御方式の構成を示すブロック図である。図において、4000はCPU、4001,4002,4003はCPU4000上で処理される複数のタスク、4004はセマフォ制御部である。この従来の例ではホストPEはCPU4000に対応する。
【0011】
次に動作について説明する。
1つのCPU4000上で複数のタスク4001,4002,4003を実行させるマルチタスクの場合に、ある時間にCPU4000上で動作するタスクは1つに限られるため、各々の優先順位に応じてCPU4000を時分割に占有して動作する。特開昭63−39042号公報に開示された従来のマルチタスク同期制御方式では、セマフォ制御部4004を用いて複数のタスク間の同期をとる。例えば、CPU4000上でタスク4001を処理中に、他のタスク4002がシステムコールを発行しセマフォ要求を出した場合、セマフォ制御部4004は、実行中のタスク4001と要求を出しているタスク4002の優先順位を比較し、要求を出しているタスク4002の方が優先順位が高ければ、処理中のタスク4001を中断し、中断時の状態を専用のエリアに待避させる。その後、セマフォ制御部4004は、要求を出しているタスク4002に対してセマフォを移譲する。CPU4000は、セマフォを取得したタスク4002の処理を実行し、その処理の終了後、セマフォ制御部4004はセマフォを開放する。セマフォが開放されると、CPU4000は中断されていたタスク4001の処理を再開する。
【0012】
一般に、マルチプロセッサシステムにおいてSEに異常が発生した場合、システムの安全性を確保するため何らかの手段を用いて異常を外部に通知し、異常時の処理を行う必要がある。図26はこのような手段を開示している特開昭63−304333号公報に示された従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、図21および図22に示す従来のマルチプロセッサシステムと同一の構成要素には同一の符号を付してその説明を省略する。また、図26において、310,320,330はスレーブエレメント(SE)、6200は割り込みコントローラ、6260はマスタPE200とSE300,SE310,SE320,SE330とをそれぞれ接続するシステムバス、6210は割り込みコントローラ6200がマスタPE200から制御信号を受信するための制御信号バス、6220,6230,6240,6250は割り込みコントローラ6200が割り込み信号を各SE300,310,320,330に送出するための割り込み信号線である。
【0013】
また、図27は図26に示すSE300の構成を示すブロック図である。SE300はCPU301と、ファームウェア(SE300がダウン時にCPU301に行わせてCPU301の処理動作をストールさせる特定プログラムを含む)を格納するメモリ302と、割り込み信号バス304を介して入力されるSE300に対する割り込み(SE300内部の割り込みを含む)を禁止するための割り込みマスク303とにより構成されている。他のSE310、320、330もSE300と同様の構成を有している。
【0014】
次に動作について説明する。
例えばSE300において障害が発生すると、マスタPE200は、通信を行っているシステムバス6260を介してSE300の障害を検知し、割り込みコントローラ6200に対して制御信号バス6210を介して制御信号を送出する。割り込みコントローラ6200はこの制御信号に応答してSE300に対して割り込み信号を発生する。割り込み信号線6220を介して入力された割り込み信号は、SE300に対して割り込みを起こすとともに、割り込みマスク303をオンして割り込み信号バス304を介して入力されるSE300に対する他の割り込みをすべて禁止する。
【0015】
SE300のCPU301は、割り込み信号6220を介して入力される割り込み信号に応答して、メモリ302に格納されているファームウェアのうちで特定アドレスのダウン時の処理のファームウェアを読み出し、このファームウェアによりダウン時の処理(特定のプログラムの処理)を起動する。ダウン時の処理が起動されると、ダウン時の処理を行うことでCPU301はストール状態となり、SE300ではダウン時の処理以外の処理は行われなくなる。
【0016】
図28は従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、6020は割り込み信号(PCIでいうINTA#)、6030はエラー通知信号(PCIでいうSERR#)、100は割り込み信号6020、エラー通知信号6030を入力するホストPE、300,310はSE、6000はSE300の管理マスタPE、200はマスタPE、121はシステムバスとしてのPCIバスである。
【0017】
次に動作について説明する。
以下では、図28を参照しながら、従来のマルチプロセッサシステムで実行される、PCI LOCAL BUS SPECIFICATION REV.2.1で規定される障害時のエラー報告、割り込みについて説明する。
【0018】
SE300で障害が発生すると、SE300は、それが致命的な障害である場合にはエラー通知信号6030にてその障害をホストPE100に通知する。ホストPE100はそれを受けてエラー時の処理を実行するが、ホストPE100はその障害の危険度を把握できないため、一般的にはシステムのリセットなどの緊急時の処理を実行する。
【0019】
SE300で発生した障害の危険度が致命的でない場合は、SE300は割り込み信号6020によりその障害をホストPE100に通知する。通知を受けたホストPE100は、一般的には、割り込み処理ルーティンの中でSE300の割り込み要因を認識して、その要因に応じた割り込み処理を実行する。
【0020】
図29は例えば特開平1−149161号公報に開示された従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。なお、この従来例では、マスタPEをホストPE、システム全体のホストPEとなるマスタPEを主ホストPE、主ホストPEがダウンした時にホストとなるマスタPEを代替ホストPEと呼んでいる。また、図29において、200,210,220,230はホストPEとなり得るマスタPE、400は各マスタPEからアクセス可能な装置、2201,2211,2221,2231は全マスタPE200,210,220,230がホストPEとなるための順位に関する情報を保持するシステム情報テーブル、2202,2212,2222,2232はシステム起動時自マスタPEがホストPEとなるかどうかを決定する主ホスト/代替ホスト決定手段、2203,2213,2223,2233は自マスタPEがホストPEであることを他のマスタPEに宣言するための主ホスト/代替ホスト宣言手段、2204,2214,2224,2234はホストダウン時自マスタPEがホストPEとなるかどうかを決定する主ホスト/代替ホスト選択手段、3200,3210,3220,3230はシステム起動時に予め定められた主ホスト/代替ホスト順位情報、3201,3211,3221,3231は各マスタPEのオペレータコンソール、401は各マスタPE200,210,220,230の状態を監視するマスタPE監視手段、403はマスタPEの構成状況に関する情報を保持するシステム構成情報、402はシステム構成情報403への読み書きを行うシステム情報読書き手段、404はホストPEがダウンしたことを他マスタPEに通知するダウン通知手段である。
【0021】
次に動作について説明する。
特開平1−149161号公報に開示された従来例では、各マスタPE200,210,220,230の主ホスト/代替ホスト決定手段が各マスタPE200,210,220,230の立ち上げ時に自マスタPEがシステム全体を管理する主ホストPEになるか、主ホストPEの代わりをする代替ホストPEになるか、それとも主ホストPEおよび代替ホストPE以外の一般のマスタPEになるかを決定し、マスタPE監視手段401がシステムの運用中に全マスタPE200,210,220,230の状態を監視する。そして、ダウン通知手段404は、マスタPE監視手段401がマスタPEの1つがダウンしたことを認識するとダウンしたマスタPE以外のマスタPEに対してホストダウン通知を行う。ダウンしたマスタPE以外のマスタPEの主ホスト/代替ホスト選択手段は、ダウン通知手段401からホストダウン通知を受けると自マスタPEが新たに主ホストPEになるか代替ホストPEになるか、それとも主ホストPEにも代替ホストPEにもならないかを選択し、主ホスト/代替ホスト宣言手段が主ホスト/代替ホスト決定手段および主ホスト/代替ホスト選択手段によって主ホストPEまたは代替ホストPEになると決定および選択されたときに主ホスト宣言または代替ホスト宣言を行う。
【0022】
【発明が解決しようとする課題】
従来のマルチプロセッサ制御方式は以上のように構成されているので、例えば図21に示した従来のマルチプロセッサシステムでは、実際にはシステムのマスタとして機能する必要のないSE等のエレメントまでも、割り込みを発生するためにマスタとして動作する機能を持たなければならず、マスタ機能を実装するためのハードウェアのボリューム増加や割り込み発生のためのマスタ動作による割り込み遅延の増大を招いてしまうという課題があった。
【0023】
また、特開平1−152561号公報および特開昭61−294572号公報に示された従来のマルチプロセッサ制御方式では、マスタPEとSE等との間の通信に関してデータ転送用のパスは考慮されているが、通信要求用のパスは考慮されていないので、通信要求を通知するには通信要求フラグのポーリングを行ったり、全てのエレメントがマスタ機能を持つ必要があり、割り込み発生のためのマスタ動作による割り込み遅延の増大を招いてしまうという課題があった。
【0024】
さらに、特開平6−28320号公報に示された従来のマルチプロセッサシステム制御方式では、割り込みレジスタを複数設けたため、割り込みを通知するには割り込みレジスタごとに割り込みレベルを対応させるか、全割り込みレジスタからの割り込み要求を1つの割り込みレベルで処理する必要があるが、多くのシステム要素から割り込みを受ける場合、割り込みレジスタごとに割り込みレベルを対応させていては割り込み資源が不足するという課題があり、他方、全割り込みレジスタからの割り込み要求を1つの割り込みレベルで処理していては割り込み処理ルーチンでの割り込み要求元を特定するのに時間がかかってしまうという課題があった。
【0025】
また、特開昭63−39042号公報に示された従来のマルチタスク制御方式では、単一のプロセッサ上でのソフトウェアのマルチタスク処理であり、複数のプロセッサエレメントおよび複数のバス上でのマルチプロセッシングには適用できないという課題があった。また、セマフォ制御部を実装するためのハードウェアのボリューム、ソフトウェアのボリュームが増大してしまうという課題があった。
【0026】
さらに、特開昭63−304333号公報に示された従来のマルチプロセッサ制御方式では、障害発生時、障害の発生したSEのCPUがファームウェアによりダウン時の処理を行うという処理であるため、SEは必ずファームウェアを格納するメモリとプロセッサCPUとを備えたインテリジェントなシステムでなければならず、SEがノンインテリジェント(メモリとCPUを備えていない)システムである場合にはこの従来のマルチプロセッサ制御方式は適用できないという課題があった。
【0027】
また、特開昭63−304333号公報に示された従来のマルチプロセッサ制御方式では、障害の検知を通信にて行っているので、図26に示すマスタPE200がSE300で障害が発生いた時に別のSE310,320,330と長時間通信を行っている場合には、SE300の障害を検知することが遅れてしまうという課題があった。この遅れは、致命的な障害が発生し緊急にシステムをストップさせなければならないような場合問題となる。
【0028】
また、図28に示したような従来のマルチプロセッサ制御方式では、SE300に障害が発生しエラー通知信号6030にてホストPE100にその障害が通知された場合、ホストPE100にエラーが通知され、ホストPE100がエラー時の処理(一般的にはシステムのリセットなどの緊急時の処理)を実行するので、SE300の以降、管理マスタプロセッサエレメント(管理マスタPE)6000がエラー処理を実行することができないという課題があった。
【0029】
さらに、図28に示したような従来のマルチプロセッサ制御方式では、SE300とは無関係なマスタPEやSEにも影響が及ぶ。例えば、ホストPE100がエラー報告を受けた時、ホストPE100はその障害の危険度を把握できないため、緊急時の処理としてPCIバスリセットというエラー処理を行うとともに、障害の発生したSE300とは無関係なマスタPEやSEもリセットしてしまうという課題があった。
【0030】
また、図28に示したような従来のマルチプロセッサ制御方式では、正常時のプログラムは管理マスタPE6000に実行させ、SE300に障害が発生し割り込み信号6020にてホストPE100にエラーが通知された場合にホストPE100にエラー処理を実行させるために、ホストPE100および管理マスタPE6000にそれぞれソフトウェアをインストールしなければならないなどシステムが非常に複雑になるという課題があった。
【0031】
さらに、特開平1−149161号公報に示された従来のマルチプロセッサ制御方式では、独立した単一のホスト監視手段で全マスタPEの状態を監視する必要があり、主ホストや代替ホストがダウンした場合にはホスト監視手段からの通知により全マスタPEが自身が主ホストや代替ホストになるべきか決定する必要があり、また、主ホストになる優先順位の情報を全マスタPEが個別に持たなければならないのでその情報をホスト間で同一に保つ必要があるので、ハードウェアボリューム、ソフトウェアボリューム、処理オーバーヘッドとも増大するという課題があった。
【0032】
また、上記の従来のマルチプロセッサ制御方式やマルチタスク制御方式では、タスクごとにハードウェア資源の内容を変えるためにはタスクごとに個別にハードウェア資源を持つ必要があり、それ故、ハードウェアボリュームを増大させ、貴重なI/O空間に大きな領域を必要とするという課題があった。さらに、ハードウェアを実装する時点で、対象となるハードウェア資源を必要とするタスク数を把握しておかなければならないという課題があった。
【0033】
この発明は上記のような課題を解決するためになされたもので、スレーブにマスタ機能を持たせたりその他のハードウェアを追加することなく、SEからマスタPEへ割り込みをルーティングするマルチプロセッサ制御方式を得ることを目的とする。
【0034】
また、この発明はスレーブにマスタ機能を持たせたりホストPEの割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなくSEからマスタPEへ割り込みをルーティングするマルチプロセッサ制御方式を得ることを目的とする。
【0035】
さらに、この発明はマスタPEとSEとの通信に関する通信要求やデータを当事者間で直接送受信できるマルチプロセッサ制御方式を得ることを目的とする。
【0036】
さらに、この発明はホストPEとマスタPEとの通信に関する通信要求やデータを当事者間で直接送受信でき、従来のマルチプロセッサシステムに比べて余分なオーバーヘッドをシステムにかけることなく通信できるマルチプロセッサ制御方式を得ることを目的とする。
【0037】
さらに、この発明はSEで発生した障害を迅速にそのSEを管理するマスタPEに通知して障害が発生したSEとは無関係なマスタPEやSEに処理を継続させることができ、さらに、ノンインテリジェントであるかインテリジェントであるかに関わらずすべてのSEに適応できる、信頼性、保守性、および柔軟性の高いシスマルチプロセッサ制御方式を得ることを目的とする。
【0038】
さらに、この発明は割り込み要求元および割り込み要求要因を迅速に特定できるマルチプロセッサ制御方式を得ることを目的とする。
【0039】
さらに、この発明はセマフォレジスタの取得開放により複数のマスタPE、ホストPEからのシステム共有資源へのアクセスを順次受け付けて処理することを可能にするマルチプロセッサ制御方式を得ることを目的とする。
【0040】
さらに、この発明はハードウェア、ソフトウェア、処理オーバーヘッドを増大させることなく、ホストの権利をスムーズにシステムを構成するマスタPEに受け継がせてシステムダウンを防ぐマルチプロセッサ制御方式を得ることを目的とする。
【0041】
さらに、この発明はハードウェアとしては1つしか実装されていないハードウェア資源をソフトウェア的には複数存在するように扱うことにより、ハードウェアが要求するスペース、価格などのコストを低減できるマルチプロセッサ制御方式およびマルチタスク制御方式を得ることを目的とする。
【0043】
【課題を解決するための手段】
請求項1記載の発明に係る割り込みルケーティング機構は、ホストPEを介さずに割り込み信号を少なくともマスタPEとSEの間で直接ルーティングできる割り込みルーティング回路を設け、システム初期化時に割り付けたシステム資源に関する情報とマスタPEとSEの間の割り込みルーティングに必要な情報とを含むシステム構成情報を構成情報データベースに予め登録し、構成情報データベースに基づいてSEが発した割り込み要求がマスタPEへルーティングされるように割り込みルーティング回路を設定するものである。
【0044】
請求項2記載の発明に係る割り込みルーティング機構は、マルチプロセッサシステムが複数のマスタPEと複数のSEとを有する場合、各マスタPEとそのスレーブとなるSEとの対応を示す情報もシステム構成情報として構成情報データベースに予め登録し、構成情報データベースに基づいて複数のSEのうちのいずれかが発した割り込み信号が該SEを制御対象とするマスタPEへルーティングされるように割り込みルーティング回路を設定するものである。
【0045】
請求項3記載の発明に係る割り込みルーティング機構は、ホストPEが接続されたシステムバスと他のシステムバスとを接続する1つのブリッジ機構と、必要であれば、他のシステムバスとこれとは別の他のシステムバスとを接続する少なくとも1つのブリッジ機構とを設け、各マスタPEおよび各SEの存在位置に関する情報もシステム構成情報として構成情報データベースに予め登録し、構成情報データベースに基づいて各SEが発した割り込み信号が対応する割り込み要求先に必要ならばブリッジ機構を介してルーティングされるように割り込みルーティング回路を設定するものである。
【0046】
請求項4記載の発明に係るマルチプロセッサ制御方式は、マスタPEとSEとが通信を行う場合、SEまたはマスタPEからの通信要求は割り込みとして割り込みルーティング回路を用いてマスタPEまたはSEに通知し、マスタPEとSEとの間のデータ転送はウィンドウを介して行うものである。
【0047】
請求項5記載の発明に係るマルチプロセッサ制御方式は、ホストPEとマスタPEとの間の通信およびマスタPEとSEとの間の通信における通信要求を割り込みとして割り込みルーティング回路を用いて通知し、ホストPEとマスタPEとの間のデータ転送はマスタPE上に設けた共有メモリを介して行い、マスタPEとSEとの間のデータ転送はマスタPEがシステムのマスタとなってデータ転送するものである。
【0048】
請求項6記載の発明に係るマルチプロセッサ制御方式は、SEにおいて障害が発生した際に割り込みルーティング回路を介して割り込みにより障害の発生をSEを管理マスタPEに報告し、障害の報告を受けた管理マスタPEにSEのエラー要因レジスタにアクセスさせて障害の要因を確認し、障害の要因に応じて障害の起きた機能を無効にすべく管理マスタPEにSEの機能制御用レジスタの対応するビットをセットさせるものである。
【0055】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。この実施の形態1によるマルチプロセッサシステムのベースとなるハードウェアは、例えば、PCIバスやそれに準じたバスをシステムバスとするIBM PC/ATアーキテクチャに従うものである。図1において、100はシステム全体のホストとなるホストプロセッサエレメント(以下、ホストPEと記す)、101はホストPE100内に設けられたCPU、102はホストPE100が管理するシステム構成情報を蓄積するためデータベースである構成情報データベース(以下、構成情報DBと略す)、103はホストPE100内に設けられた割り込みコントローラ、104はホストPE100内に設けれれており、システムの周辺デバイスからの割り込みを割り込みコントローラ103のどのレベルに割り振るかをルーティングする割り込みルーティング機構であり、一般的にはPCIバス制御用のチップセット内に実装される。また、150はシステムバスに含まれる一般的な接続線である割り込み信号線(システムバス)、200は割り込み信号線150に接続されており、PCIバス上に存在しシステムの1つのマスタとなりえるLANカード等のマスタPE、210は割り込み信号線150に接続されており、PCIバス上に存在する他のマスタデバイスとしてのマスタPE、211はマスタPE210内に設けられたCPU、212はマスタPE210内に設けられたI/Oレジスタであり、外部からビットをセットされるとCPU211に対して割り込みを発生する割り込みレジスタ、300はPCIバス上に存在してホストPE100に対して割り込みを発生する1つのスレーブデバイスとしてのSE、310はPCIバス上に存在する他のスレーブデバイスとしてのSEである。また、図2は構成情報DB102の内容のうち、割り込みルーティングに関連する情報の一例を示す説明図である。
【0056】
次に動作について説明する。
まず、PCIバス上のスレーブSE300から対象デバイスであるPCIバス上のマスタPE210に割り込みを通知する動作の流れについて説明する。PCIバスの割り込み信号線は一般的には図1中のPCIバスの割り込み信号線150のように配線されるので、一般のシステムハードウェアで直接あるデバイスからの割り込みを別のデバイスに通知することができる。しかし、PCIバスの割り込み信号線150のような配線はPCIとしては規格化されておらず、正規の規格ではPCI上のデバイスからの割り込み信号はデバイスごとにそれぞれホストPE100に入力されることとなっている。そのため、規格に則してPCIバス上のデバイスから他のPCI上のデバイスへ割り込みを発生させることは一般的なハードウェアシステムだけでは実現できず、ソフトウェアもしくは特殊なハードウェアの実装が必要となる。この実施の形態1によるマルチプロセッサ制御方式は、特殊なハードウェアを実装することなく、ソフトウェアのみでPCIバス上のデバイス間の割り込みをルーティングするように構成されており、以下では、SE310がマスタPE210へ割り込み要求を行った場合を例にとってこの実施の形態1によるマルチプロセッサ制御方式の割り込みルーティングについて説明する。
【0057】
システム初期化時に、ホストPE100、各マスタPE200,210、およびSE300,310が必要とする、メモリ、I/O、割り込み等のシステムの資源を割り付け、その割り付けられたシステム資源に関する情報とともに、図2に示すような、各マスタPE200,210の名称とその割り込みレジスタのI/Oアドレスと各マスタPE200,210の対象となるスレーブとしてのSE300,310の名称(即ち、マスタPEとSEとの対応関係)とそのSEの使用する割り込みレベルとを含む割り込みルーティングに関連する情報をシステム構成情報として構成情報DB102に予め登録する。なお、図2には、SE300,310がマスタPE210のスレーブとして動作する旨が規定されている。
【0058】
次に、図1に示す矢印(1)に示すように、SE300がマスタPE210へのハードウェア上の割り込みをPCIバスの割り込み信号線150上に発生すると、矢印(2)に示されているように、一般的なPCIバス制御用のチップセット内に実装されている割り込みルーティング機構104を介して割り込みコントローラ103の割り込みレベル10(図2に示したようにSE300の割り込みレベルは10である)に入力される。次に、割り込みコントローラ103は、矢印(3)に示すようにCPU101に対して割り込み要求を発生し、CPU101にISR(割り込み処理ルーチン)を起動させる。ISRを起動したCPU101は、発生した割り込みレベルが10であることを確認し、矢印(4)に示すように構成情報DB102にアクセスし割り込み要求先であるマスタPE210の割り込みレジスタ212のI/Oアドレスを0x300と判断し、矢印(5)に示すようにマスタPE210の割り込みレジスタ212の必要ビットをセットする。そして、マスタPE210の割り込みレジスタ212のビットがセットされると、矢印(6)に示すようにマスタPE210内のCPU211に対して割り込みが発生する。このようなフローに従って、SE300で発生したマスタPE210への割り込み要求はホストPE100を介してルーティングされる。
【0059】
以上のように、この実施の形態1によれば、PCIバスをシステムバスとして用いておりハードウェア的にはスレーブであるSE300からマスタPE210に割り込みを通知できないマルチプロセッサシステムにおいても、PCIバスシステムの一般的なハードウェアに割り込みルーティング用のソフトウェアルーチンを組み込むことにより、スレーブにマスタ機能を持たせたりその他のハードウェアを追加することなく、割り込みのルーティングを行うことができる。また、マスタPEやターゲットであるSEが複数存在する複雑なマルチプロセッサシステムにおいても、構成情報DB102の内容を参照することにより容易にシステム構成を把握でき、さらに、構成情報DB102の内容を変更することにより割り込みルーティングの変更を行えるため、システムのフレキシビリティを向上させることができる。
【0060】
実施の形態2.
図3はこの発明の実施の形態2によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。この実施の形態2によるマルチプロセッサシステムは、割り込み信号線が全デバイスに共通に配線されているものではなく、PCIバスのようにホストPEとPCIバス上の各デバイスの間を一対一で複数組接続されるようなシステムであり、図示していないホストPEを介さずにSEとマスタPEの間で割り込みを直接通知するための基本的な割り込みルーティング回路を有している。
【0061】
図3において、INT0#,INT1#,INT2#,INT3#,INT4#はそれぞれプルアップされたオープンコレクタ形式のローアクティブの割り込み信号線、1000は割り込みルーティング回路、1100〜1104は割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#の内の1つを介して割り込みルーティング回路1000へ入力されるあるSEからの割り込み信号を他の割り込み信号線を介してあるマスタPEへルーティング設定するための割り込み設定レジスタであり、割り込み設定レジスタ1100は割り込み信号線INT0#へ、割り込み設定レジスタ1101は割り込み信号線INT1#へ、割り込み設定レジスタ1102は割り込み信号線INT2#へ、割り込み設定レジスタ1103は割り込み信号線INT3#へ、割り込み設定レジスタ1104は割り込み信号線INT4#へ割り込みをそれぞれルーティングするように構成されている。また、1200〜1219は各割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#を介して入力される割り込み信号を反転した信号と各割り込み設定レジスタ1100〜1104のいずれかのビットの出力との論理積を求めて主力する演算回路、1300〜1304はそれぞれ4つの上記演算回路の出力の論理和を求めて出力して、割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#への出力を制御するためのNOR回路、1400〜1404はそれぞれ各NOR回路1300〜1304からの出力を入力し、割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#へ割り込み信号を出力する割り込み信号出力回路である。
【0062】
割り込み設定レジスタ1100,1101,1102,1103,1104の4つのビットのそれぞれは、どの割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#からの割り込みを許可するかを規定している。各割り込み設定レジスタ1100〜1104において、ビット0は割り込み信号線INT0#から、ビット1は割り込み信号線INT1#から、ビット2は割り込み信号線INT2#から、ビット3は割り込み信号線INT3#から、ビット4は割り込み信号線INT4#からの割り込みを許可する(ここで、例えば、割り込み設定レジスタ1100の4つのビットはビット1、ビット2、ビット3、ビット4から構成されている)。例えば、割り込み設定レジスタ1101のビット2がセットされていると、割り込み信号線INT2#を介して入力された割り込みを割り込み信号線INT1#にルーティングすることを許可する。
【0063】
次に動作について説明する。
以下、図3に示すように割り込みを発生するSE300が割り込み信号線INT4#に接続されており、その割り込みを受けるべきマスタPE200が割り込み信号線INT0#に接続されていると仮定し、SE300がマスタPE200に対して割り込みを要求した場合のこの実施の形態2によるマルチプロセッサ制御方式の割り込み要求ルーティングについて説明する。
【0064】
マルチプロセッサシステムは、システム初期化時に、上記実施の形態1と同様に、ホストPE、マスタPE200、およびSE300が必要とする、メモリ、I/O、割り込み等のシステムの資源を割り付け、その割り付けられたシステム資源に関する情報とともに、マスタPE200の名称とその割り込みレジスタのI/OアドレスとマスタPE200の対象となるスレーブとしてのSE300の名称(即ち、マスタPEとSEとの対応関係)とそのSEの使用する割り込みレベルとを含む割り込みルーティングに関連する情報が、システム構成情報として図示していない構成情報DBに予め登録される。ホストPEは、この構成情報DBを参照して図3に示すような割り込み信号線INT0#,INT1#,INT2#,INT3#,INT4#の使用状況を認識し、割り込み信号線INT4#への割り込み設定レジスタ1104の全ビットをクリアし、さらに、割り込み信号線INT0#への割り込み設定レジスタ1100のビット4のみをセットする。これにより、割り込み信号線INT4#は割り込みルーティング回路1000によってドライブされることはなく、SE300のみにドライブされるので、割り込み信号線INT4#上で信号の衝突が起こることはない。
【0065】
SE300が自身の内部に持っているマスタPE200との共有メモリ(図示せず)にデータをセットして割り込み信号を割り込みルーティング回路1000に送出し、割り込み信号線INT4#をアクティブにドライブすると、演算回路1203,1207,1211,1215,1219の一方の入力はアクティブになる。一方、割り込み設定レジスタ1100のビット4がセットされているので、上記の演算回路1203,1207,1211,1215,1219のうちで、もう一方の入力がアクティブになっているのは演算回路1203のみであるので、演算回路1203のみの出力がアクティブになる。その結果、NOR回路1300の出力がアクティブになり、割り込み信号線INT0#にその出力が接続された割り込み信号出力回路1400が割り込み信号線INT0#をアクティブにドライブする。このようなルーティングにより、SE300で発生した割り込み要求は、割り込み信号線INT4#を介して割り込みルーティング回路1000に入力され、さらに、割り込み信号線INT0#を介してマスタPE200へ通知される。
【0066】
以上のように、この実施の形態2によれば、PCIバスをシステムバスとする一般的なシステムハードウェアだけではターゲットであるSE300からマスタPE200に割り込みを通知できないマルチプロセッサシステムにおいても、スレーブにマスタ機能を持たせたりホストPE100の割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなく、必要な割り込みルーティング回路1000を付加するだけでSE300からマスタPE200へ割り込みをルーティングできる。さらに、上記実施の形態1のように割り込みルーティングの際にホストPE100が介在しないため、割り込み通知に関して余分なオーバーヘッドはかからない。また、マスタPEやターゲットであるSEが複数存在する複雑なマルチプロセッサシステムにおいても、構成情報DB102の内容を参照することにより容易にシステム構成を把握でき、さらに、構成情報DB102の内容を変更することにより割り込みルーティングの変更を行えるため、システムのフレキシビリティを向上させることができる。
【0067】
実施の形態3.
図4はこの発明の実施の形態3によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。この実施の形態3によるマルチプロセッサシステムのベースとなるハードウェアは、PCIバスやそれに準じたバスをシステムバスとするIBM PC/ATアーキテクチャに従うものである。また、この実施の形態3によるマルチプロセッサシステムは、5PCIスロットを持つPCIバスシステムであり、上記実施の形態1で説明したような理由により一般的なハードウェアでは直接ルーティングできないPCIバス上のデバイス間の割り込みを可能とする割り込みルーティング回路を備えている。
【0068】
図4において、図1に示す上記実施の形態1のよるマルチプロセッサシステムの構成要素と同一のものには同一の符号を付してその説明を省略する。また、1,2,3、4、5はPCIバスのPCIスロットであり、PCIスロット2の割り込み信号線INTA#に接続されているマスタPE200およびPCIスロット4の割り込み信号線INTA#に接続されているSE300を除いて、割り込みを使用するPCIバス上のデバイスは他には接続されていないと仮定する。また、110は例えばインテル社の82430FXのような一般的なPCIバスシステム用のPCIチップセット、104はPCIチップセット110内に実装されている一般的な割り込みルーティング機構、151〜154はそれぞれPCIチップセット110へ入力される割り込み信号が伝送される割り込み信号線INTA#,INTB#,INTC#,INTD#、1001はPCIスロット間での割り込みルーティングを可能にする割り込みルーティング回路である。さらに、1110〜1113はそれぞれPCIスロット2、PCIスロット3、PCIスロット4、PCIスロット5からPCIスロット1への割り込みを許可するための割り込み設定レジスタ、1120〜1123はそれぞれPCIスロット1、PCIスロット3、PCIスロット4、PCIスロット5からPCIスロット2への割り込みを許可するための割り込み設定レジスタ、1130〜1133はそれぞれPCIスロット1、PCIスロット2、PCIスロット4、PCIスロット5からPCIスロット3への割り込みを許可するための割り込み設定レジスタ、1140〜1143はそれぞれPCIスロット1、PCIスロット2、PCIスロット3、PCIスロット5からPCIスロット4への割り込みを許可するための割り込み設定レジスタ、1150〜1153はそれぞれPCIスロット1、PCIスロット2、PCIスロット3、PCIスロット4からPCIスロット5への割り込みを許可するための割り込み設定レジスタである。1240は各PCIスロット1,2,3,4,5の割り込み信号線INTA#,INTB#,INTC#,INTD#に接続されており、全ての入力の反転したものの論理和を出力する演算回路、1250はPCIスロット間での割り込みルーティングのために、各PCIスロット1,2,3,4,5への割り込みを許可する割り込み設定レジスタの各ビットの値と各PCIスロット1,2,3,4,5の演算回路1240の出力との論理積を出力するAND回路、1310はPCIスロット間での割り込みルーティングのために、他のPCIスロットから同一割り込み信号線への割り込み信号をそれぞれ出力する複数のAND回路1250の論理和を求めそれを反転して出力するNOR回路、1410は各NOR回路1310の出力を入力とし、PCIスロット1,2,3,4,5からの割り込み信号を割り込み要求先へ直接出力するための割り込み信号出力回路である。1500〜1503は各PCIスロット1,2,3,4,5の各割り込み信号をホストPE100に伝えることを許可するためのホストPE100への割り込み設定レジスタであり、割り込み設定レジスタ1500は割り込み信号線INTA#151、割り込み設定レジスタ1501は割り込み信号線INTB#152、割り込み設定レジスタ1502は割り込み信号線INTC#153、割り込み設定レジスタ1503は割り込み信号線INTD#154を介してホストPE100への割り込みをそれぞれ許可するように構成されている。さらに、1600は各PCIスロット1,2,3,4,5からホストPE100へ割り込みをルーティングするために、各PCIスロット1,2,3,4,5の割り込み信号線INTA#,INTB#,INTC#,INTD#と割り込み設定レジスタ1500〜1503の各ビットとの論理和を求めるAND回路、1700は各PCIスロット1,2,3,4,5からホストPE100への割り込みをルーティングするために、割り込み設定レジスタ1500〜1503のそれぞれに対して設けられた複数のAND回路1600からの出力の論理和を求め反転して出力するNOR回路である。
【0069】
割り込み設定レジスタ1110〜1113、1120〜1123、1130〜1133、1140〜1143、1150〜1153はそれぞれ有効な4ビットを有しており、ビット0は対象PCIスロットの割り込み信号線INTA#へ、ビット1は割り込み信号線INTB#へ、ビット2は割り込み信号線INTC#へ、ビット3は割り込み信号線INTD#への割り込みルーティングをそれぞれ許可する。例えば、PCIスロット1への割り込み設定レジスタ1113のビット2をセットすると、PCIスロット5からPCIスロット1の割り込み信号線INTC#への割り込みルーティングを許可したことになる。また、ホストPE100への割り込み設定レジスタ1500〜1503はそれぞれ有効な20ビットを有しており、例えばホストPE100への割り込み設定レジスタ1500のビット19がセットされていると、PCIスロット5の割り込み信号線INTD#を介して入力された割り込みを割り込み信号線INTA#151を介してホストPE100へ送出することを許可する。また、PCIバス上のデバイスからの割り込みを直接受信するために、マスタPE200は割り込みを入力として受け入れることができるようにハードウェア的に構成されている。なお、図4では割り込みルーティング回路1001は、ホストPE100の外部に設けられているように描かれているが、ホストPE100の内部に設けてもよい。
【0070】
次に動作について説明する。
まず、システム初期化時の処理について説明する。PCIスロット2,4にそれぞれマスタPE200およびSE300が組み込まれると、それぞれのデバイスドライバがインストールされ、マスタPE200のターゲットとなるデバイスがSE300であることがシステム構成情報として構成情報DB102に記録される。
【0071】
そして、システムを起動するかまたはシステムをリセットとすると、PCIバスシステムでは、システムのファームウェアがコンフィギュレーションサイクルを実行してPCIデバイスの存在をチェックし、認識されたPCIデバイスについてはコンフィギュレーションレジスタを設定する。ファームウェアによるシステムのハードウェアコンフィギュレーションの設定が完了すると、例えばマイクロソフト社のWindows NTのようなOSがブートされる。OSのブート処理時、マスタPE200やSE300のデバイスドライバの初期化ルーチンが実行される。マスタPE200のデバイスドライバの初期化ルーチンでは、まずマスタPE200がどのPCIスロットに存在するかがチェックされる。マスタPE200が存在すれば、デバイスドライバのインストール時に設定されたシステム構成情報を含む構成情報DB102としてのレジストリの内容をチェックして、マスタPE200のターゲットとなるデバイスがSE300であることを認識する。そして、マスタPE200の割り込みレジスタのI/Oアドレスを確認し、SE300がどのPCIスロットに存在するかを確認し、さらにレジストリより得たSE300の対象ファンクションがどの割り込み信号を使用しているかを確認し(割り込みレベルを確認し)、これらの情報を構成情報DB102に格納されたシステム構成情報に追加する。それと同時に、SE300をホストPE100が使用するSE300のデバイスドライバの管理下から除外する。
【0072】
このようにして、上記実施の形態1および2と同様に、ホストPE100、マスタPE200、およびSE300が必要とする、メモリ、I/O、割り込み等のシステムの資源を割り付けられ、その割り付けられたシステム資源に関する情報とともに、SE300が存在するPCIスロットの位置、マスタPE200の名称とその割り込みレジスタのI/OアドレスとマスタPE200の対象となるスレーブとしてのSE300の名称(即ち、マスタPEとSEとの対応関係)とそのSEの使用する割り込みレベルとを含む割り込みルーティングに関連する情報が、システム構成情報として構成情報DB102に予め登録される。
【0073】
また、図4に示すように、マスタPE200がPCIスロット2上に存在し割り込み信号線INTA#を介して割り込み信号を受信でき、SE300がPCIスロット4上に存在し割り込み信号線INTA#を介して割り込み信号を送出することができる場合、マスタPE200のデバイスドライバの初期化ルーチンにおいて、割り込みルーティング回路1001は、構成情報DB102を参照してPCIスロット2への割り込み設定レジスタ1122のビット0をセットする。これにより、割り込みルーティング回路1001は、SE300からマスタPE200への割り込みを直接ルーティングすることができる。また、PCIスロット2とPCIスロット4で発生する割り込みをホストPE100へ通知しないためにホストPE100への割り込みをルーティングするための割り込み設定レジスタ1501と1503のビット4〜7とビット12〜15を0クリアし、さらに、PCIスロット4での割り込み発生に起因するPCIスロット2での割り込み発生を他のPCIスロットへルーティングしないために割り込み設定レジスタ1110,1131,1141,1151の全てのビットを0クリアしておく。
【0074】
上記のような初期化処理後、システム稼動時にSE300が自身の内部に持っているマスタPE200との共有メモリ(図示せず)にデータをセットしてPCIスロット4で割り込みを発生すると、PCIスロット2への割り込み設定レジスタ1122のビット0がセットされているため、PCIスロット4に対して設けられた演算回路1240は論理1の信号を出力するので、一入力端子が割り込み設定レジスタ1122のビット0に接続されたAND回路1250は論理1の信号を出力し、さらにそのAND回路1250に接続されたNOR回路1310は論理0の信号を出力する。この結果、このNOR回路1310の出力に接続された割り込み信号出力回路1410は、PCIスロット2の割り込み信号線INTA#をアクティブにドライブする。このとき、ホストPE100への割り込み設定レジスタ1501と1503のビット4〜7とビット12〜15が0クリアされており、各PCIスロットへの割り込み設定レジスタ1110,1131,1141,1151が0クリアされているので、ホストPE100や他のPCIスロットへ割り込みを発生することはない。
【0075】
この実施の形態3によるマルチプロセッサシステムでは、PCIバスの各PCIスロット1,2,3,4,5の全割り込み信号の論理和を、複数のAND回路1250および複数のNOR回路1310から構成される、他のPCIスロットへの割り込みルーティングのための演算回路に入力したが、各PCIスロットへの割り込み設定レジスタ1110〜1153を拡張して各PCIスロット1,2,3,4,5の各割り込み信号を個別にルーティングできるレジスタ構成とし、各PCIスロット1,2,3,4,5の各割り込み信号を他のPCIスロットへの割り込みルーティング演算回路に個別に入力することにより、さらに細かい割り込みルーティングを行うことができる。
【0076】
以上のように、この実施の形態3によれば、PCIバスをシステムバスとする一般的なシステムハードウェアだけではターゲットであるSEからマスタPEに割り込みを通知できないマルチプロセッサシステムにおいても、スレーブにマスタ機能を持たせたりホストPEの割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなく、必要な割り込みルーティング回路1001を付加するだけでSEからマスタPEへ割り込みをルーティングできる。さらに、上記実施の形態1のように割り込みルーティングの際にホストPE100が介在しないため、割り込み通知に関して余分なオーバーヘッドはかからない。また、マスタPEやターゲットであるSEが複数存在する複雑なマルチプロセッサシステムにおいても、構成情報DB102の内容を参照することにより容易にシステム構成を把握でき、さらに、構成情報DB102の内容を変更することにより割り込みルーティングの変更を行えるため、システムのフレキシビリティを向上させることができる。
【0077】
実施の形態4.
図5はこの発明の実施の形態4によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。この実施の形態によるマルチプロセッサシステムは、PCIバスもしくはそれに準じたバスをシステムバスとして備えている。図において、100はホストPE、102はホストPE100が管理するシステム構成情報を蓄積するためデータベースである構成情報DB、121,123,125はPCIバスもしくはそれに準じたPCIバス(システムバス)、122,124はこれらのPCIバス121,123,125を接続するためのブリッジデバイス(ブリッジ機構)、1002,1003,1004は上記実施の形態3による割り込みルーティング回路1001と同様な構成を有する割り込みルーティング回路である。図5に示すように、割り込み要求元のSE300はPCIバス125上に、割り込み要求先のマスタPE210はPCIバス121上にあると仮定する。
【0078】
一般的に、1つのPCIバス上に10デバイスまでしか接続できない。従って、10を超えるデバイスが必要な場合には、図5に示すようにブリッジデバイス122,124を用いて複数のPCIバス121,123,125を接続する必要がある。この実施の形態4によるマルチプロセッサ制御方式は、このような構成のマルチプロセッサシステムでの割り込みルーティングを提供するものである。
【0079】
次に動作について説明する。
割り込みルーティング回路1002は、通常通りホストPE100をホストとして割り込み信号をルーティングし、マスタPE210およびブリッジ122をそれぞれ図4に示したような1つのPCIスロット1,2,3,4または5に接続されている1つのデバイスとして割り込み信号をルーティングするように構成されている。同様に、割り込みルーティング回路1003は、ブリッジ102およびブリッジ104をそれぞれ1つのデバイスとして割り込み信号をルーティングするように構成されている。さらに、割り込みルーティング回路1004は、SE300およびブリッジ124を1つのデバイスとして割り込み信号をルーティングするように構成されている。また、割り込みルーティング回路1003,1004は、ホストPE100へ直接割り込み信号を接続しないように設定される。即ち、割り込みルーティング回路1003,1004の図4に示すホストPE100への割り込み信号線INTA#151,INTB#152,INTC#153,INTD#154はオープンとなっている。
【0080】
マスタPE210のデバイスドライバのインストール時かまたは初期化時に、ホストPE100内の構成情報DB102には、マスタPE210の名称、マスタPE210の割り込みレジスタのI/Oアドレス、マスタPE210のターゲットとしてSE300の名称、存在位置および割り込み信号レベルに関する情報を格納し、それに基づいてPCIバス125上のSE300からの割り込みをブリッジデバイス124を経由してPCIバス123上に発生させるように割り込みルーティング回路1004とブリッジデバイス124を設定し、ブリッジデバイス124の発生したPCIバス123上での割り込みをPCIバス121上に発生させるように割り込みルーティング回路1003とブリッジデバイス122を設定する。これにより、図5に示すような複数のブリッジデバイス122,124を含むPCIバスシステムでも、ブリッジデバイス122,124をまたいで割り込みをルーティングできる。
【0081】
以上のように、この実施の形態4によれば、ブリッジデバイス122,124により接続された複数のPCIバス121,123,125を備えたマルチプロセッサシステムにおいても、スレーブにマスタ機能を持たせたりホストPE100の割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなく、必要な複数の割り込みルーティング回路1002,1003,1004を付加するだけで異なるPCIバス121,125上にそれぞれ設けられたSE300からマスタPE210へ割り込みをルーティングできる。さらに、上記実施の形態1のように割り込みルーティングの際にホストPE100が介在しないため、割り込み通知に関して余分なオーバーヘッドはかからない。また、構成情報DB102を利用することにより、マスタPEやターゲットであるSEが複数存在する複雑なマルチプロセッサシステムにおいても、構成情報DB102の内容を参照することにより容易にシステム構成を把握でき、さらに、構成情報DB102の内容を変更することにより割り込みルーティングの変更を行えるため、システムのフレキシビリティを向上させることができる。
【0082】
実施の形態5.
図6〜8はこの発明の実施の形態5によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成および動作を示すブロック図である。図6はシステム起動時の動作、図7はマスタPE210のターゲットからマスタPE210へ通信要求を通知する場合の動作、図8はマスタPE210のターゲットからの通信要求に従い、マスタPE210がターゲットにデータ転送する場合の動作を示すブロック図である。これらの図において、100はホストPE、101はホストPE100のCPU、102はホストPE100内に設けられておりシステム構成情報を格納する構成情報DB、121はシステムバスとしてのPCIバス、211はマスタPE210のCPU、215はマスタPE210がマルチプロセッサシステムのマスタとなってCPU211がターゲットにアクセスする場合のI/Oウィンドウかメモリウィンドウであるウィンドウ、213はCPU211がウィンドウ215を通してターゲットにアクセスする場合のアクセス先を設定するためのウィンドウ設定レジスタ(レジスタ)、600はCPU211がアクセスしようとするターゲットの先頭アドレスを設定するためのアドレス設定レジスタ、601はアクセス先の容量を設定するための容量設定レジスタ、217はホストPE100がマスタPE210とデータ転送するためのマスタPE210内に設けれらた2ポートメモリ(共有メモリ)、300,310はマスタPE210のターゲットとしてのSE、1001は上記実施の形態3による割り込みルーティング回路である。
【0083】
なお、この実施の形態5によるマルチプロセッサシステムでは、マスタPE210のターゲットとしてSE300およびSE310の2つを考えているため、アドレス設定レジスタ600と容量設定レジスタ601とウィンドウ215はそれぞれ2セット用意される。
【0084】
次に動作について説明する。
図6の点線は割り込みルーティングを設定する際の処理の流れを示しており、実線はマスタPE210とターゲット間のデータ転送のための設定の処理の流れを示しており、図7および図8の点線はSE300とマスタPE210との間の通信処理を示しており、実線はSE310とマスタPE210との間の通信処理を示している。
【0085】
ホストPE100は、図6に示す動作の前に、メモリ、I/O、割り込みなどのマルチプロセッサシステムの資源を割り付け、さらに、割り付けた資源に関する情報とともに、マスタPE210の名称、およびマスタPE210のターゲットがSE300とSE310であることを示す情報を含むシステム構成情報を構成情報DB102に登録する。その後、システム起動時に、ホストPE100は、図6に示すように、構成情報DB102に登録されたマルチプロセッサシステムの資源割り付けに関する情報やマスタPE210とターゲットであるSE300,310との関係の情報を含むシステム構成情報に基づき、割り込みルーティング回路1001およびマスタPE210のウィンドウ設定レジスタ213を設定する。このような設定はソフトウェアによって実行される。
【0086】
割り込みルーティング回路1001はホストPE100により直接設定され、これにより、SE300,310からの割り込み信号は割り込みルーティング回路1001を介してマスタPE210へルーティングされる。ウィンドウ設定レジスタ213を設定するために、ホストPE100がマスタPE210内の2ポートメモリ217にデータを転送すると、マスタPE210のCPU211はそのデータを読み取りそのデータに基づきアドレス設定レジスタ600および容量設定レジスタ601にそれぞれ設定する。アドレス設定レジスタ600と容量設定レジスタ601とにマルチプロセッサシステムの資源空間に占めるターゲットとしてのSE300やSE310の資源のアドレスとその容量とがそれぞれ設定される。このことにより、マスタPE210のCPU211がSE300または310からの割り込み要求に応答してマスタPE210のローカル資源空間のウィンドウ215の領域にアクセスすると、ウィンドウ215の回路がアクセス要求を変換し、マスタPE210がマルチプロセッサシステムのマスタとなってアドレス設定レジスタ600に設定された値をベースにして適切なオフセットを加えたシステム空間のアドレスに割り付けられたターゲットとしてのSE300やSE310の資源にアクセスできる。
【0087】
また、マスタPE210の初期化の際に、マスタPE210は2ポートメモリ217経由でターゲットからの通信要求用の割り込みレベルも取得し、対応した割り込み処理ルーチンを自身の内部に登録する。システムの通常動作に入ってからマスタPE210のターゲットであるSE300やSE310は自身の内部に持っているマスタPE210との共有メモリ(図示せず)にデータをセットすることにより割り込み信号を発生する。SE300または310がマスタPE210との通信のために割り込み信号が発生すると、図7に示すように、その割り込み信号は割り込みルーティング回路1001によりルーティングされマスタPE210に入力され、CPU211に対して割り込みが発生する。その後、マスタPE210は、図8に示すように、対応するウィンドウ215を通してSE300やSE310とデータ転送を行う。
【0088】
なお、図6〜8ではターゲットからマスタPE210に通信要求が発生した場合の処理の流れを示したが、マスタPE210から通信要求が発生するなどのような他の種類の処理の流れも実際のマルチプロセッサシステムではありえる。このような場合にもこの実施の形態5によるマルチプロセッサ制御方式を適用できる。
【0089】
以上のように、この実施の形態5によれば、マスタPE210とSE300との通信に関する通信要求やデータを当事者間で直接送受信できるので、システムパフォーマンスを向上させることができる。さらに、通信用の割り込みルーティングやウィンドウの設定や変更をソフトウェアで実行することが可能であるので、システム構成のフレキシビリティを向上させることが可能となる。
【0090】
実施の形態6.
図9および図10はこの発明の実施の形態6によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成および動作を示すブロック図である。図において、図6〜8に示した上記実施の形態5によるものと同一の構成要素には同一の符号を付してその説明を省略する。この実施の形態によるマルチプロセッサシステムは、システム起動時に、上記実施の形態5によるマルチプロセッサシステムと同様の設定を行うように構成されている。図9はマスタPE210とSE300との間の通信動作を、図10はホストPE100とマスタPE210との間の通信動作を示すものであり、図中、点線は通信要求のための割り込みの経路を、実線はデータ転送の経路を示している。
【0091】
次に動作について説明する。
図9に示したマスタPE210とそのターゲットとしてのSE300との通信経路から明らかなように、SE300からの通信要求は、割り込みとして割り込みルーティング回路1001経由でマスタPE210が直接受け付る。そして、マスタPE210のCPU211は、上記実施の形態5と同様に、ローカル資源空間のウィンドウ(図示せず)の領域にアクセスし、ウィンドウの回路がアクセス要求を変換し、マスタPE210がマルチプロセッサシステムのマスタとなって自身のアドレス設定レジスタ(図示せず)に設定された値をベースにして適切なオフセットを加えたシステム空間のアドレスに割り付けられたターゲットとしてのSE300の資源に直接アクセスする。また、マスタPE210からSE300への通信要求の場合にはマスタPE210がシステムのターゲットとなってSE300に直接アクセスする。
【0092】
図10に示したホストPE100とマスタPE210との通信経路から明らかなように、ホストPE100とマスタPE210との間の通信要求としての割り込みは割り込みルーティング回路1001によって直接相手に通知され、データ転送はマスタPE210内に共有メモリとして設けられた2ポートメモリ217を介して行う。このような構成では、マスタPE210がマルチプロセッサシステムのマスタとなってマスタPE210とSE300との間の通信動作において、少量の制御データを転送するようにすることが好ましい。これにより、ホストPE100のシステム資源へのアクセス待機を最小限に抑えることが可能となる。さらに、2ポートメモリ217を介したホストPE100とマスタPE210とがどのように同期をとって2ポートメモリ217にアクセスするか等の通信手順を適切に決めることにより、マスタPE210のCPU211とホストPE100との2ポートメモリ217へのアクセスの競合による互いの処理の待機を最小限に抑えることができ、パフォーマンスの良いシステムを構築することができる。
【0093】
なお、図9および図10では、ターゲットからマスタPE210に通信要求が発生した場合の処理の流れを示しているが、マスタPE210から通信要求が発生するなどのような他の種類の処理の流れも実際のシステムではありえる。このような場合にもこの実施の形態6によるマルチプロセッサ制御方式を適用できる。
【0094】
以上のように、この実施の形態6によれば、マスタPE210とSE300との間およびマスタPE210とホストPE100との間の通信要求は要求元から要求先に直接通知することができるので、システムパフォーマンスを向上させることができる。さらに、通信要求用の割り込みルーティングは、ソフトウェアで設定、変更することが可能であるので、システム構築のフレキシビリティを向上させることができる。
【0095】
また、マスタPE210とターゲットであるSE300とのデータ転送では、マスタPE210がシステムのマスタとなってデータ転送するので、ホストPE100の介在がなくマスタPE210の処理やホストPE100内部の処理に余分なオーバーヘッドがかからない。また、マスタPE210の処理結果等をマスタPE210上の共有メモリである2ポートメモリ217を介してホストPE100へ通知するように構成されているので、ホストPE100とマスタPE210との間の通信データがたとえ大きくなっても、マスタPE210のCPU211が2ポートメモリ217へデータを書き込む等のアクセスしている間にホストPE100はPCIバス141を介して他の処理を実行できるので、システムの主メモリを共有メモリにしてマスタPE210がホストPE100をホールドしてしまうような従来のマルチプロセッサシステムに比べてシステムに余分なオーバーヘッドをかけるようなことはない。そのため、この実施の形態6によるマルチプロセッサ制御方式によれば、システムとしてのトータルパフォーマンスをハイレベルに維持できる。
【0096】
実施の形態7.
図11はこの発明の実施の形態7によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、200,210はマスタPE、201はマスタPE200のCPU、510はマスタPE200に設けられており、マスタPE210等の割り込み要求元が割り込み要求をCPU201に通知するための割り込み要求レジスタ、511は割り込み要求を受けた側が割り込み要求をクリアするための割り込みクリアレジスタ、512は割り込み要求を受けても内部のCPU201への割り込みを発生させないための割り込みマスクレジスタ、202は割り込み要求レジスタ510、割り込みクリアレジスタ511、および割り込みマスクレジスタ512から構成される割り込み要求を通知するためのレジスタセットとしての割り込みレジスタ、513は割り込み要求元が割り込み要因を登録するための割り込み要因指定レジスタ、514は割り込み要因指定レジスタ513の内容をクリアするための割り込み要因クリアレジスタである。また、割り込み要因レジスタ502は、割り込み要因指定レジスタ513と割り込み要因クリアレジスタ514とから構成されており、マスタPE200に割り込みを発生するマスタPEごとに実装され得る。図11には、2つのマスタPE200,210しか描かれていないが、3つ以上のマスタPEがPCIバス等のシステムバス140を介して接続され得、マスタPE200は複数の他のマスタPEから割り込みを受け付けることができる。尚、マスタPE210もマスタPE200と同様な割り込みレジスタおよび割り込み要因レジスタを有しており、マスタPE200等の他のマスタPEからの割り込み要求を処理するように構成されている。以下では、マスタPE200がマスタPE210等の他のマスタPEからマスタPE200上の共有メモリ等のシステム共有の資源を使用する割り込み要求を受けてそれを処理する場合について説明する。
【0097】
次の動作について説明する。
割り込み要求レジスタ510は、他のマスタPEからは書き込み専用であり、自身からは読み出し専用のレジスタである。従って、割り込み要求元のマスタPEが割り込み要求先であるマスタPE200内の割り込み要求レジスタ510のビットをセットすることにより、割り込み要求先のマスタPE200で割り込みが発生する。割り込み要求レジスタ510はビットごとにセット可能であり、例えば割り込み要求レジスタ510のビット1がセットされている状態で、割り込み要求元から2進数で00001000を書き込まれると、ビット1はセットされたまま新たにビット3もセットされる。割り込み要求レジスタ510のいずれかのビットがセットされており、以下で述べるようにそのビットが割り込みマスクレジスタ512でマスクされていないならば、マスタPE200内でCPU201に割り込みが発生する。
【0098】
割り込みクリアレジスタ511は、自身のマスタPE200に対しては書き込み専用のレジスタであり、ビットごとの操作が可能である。すなわち、割り込み要求レジスタ510のビット0およびビット3がセットされている状態で割り込みクリアレジスタ511に2進数で00001000を書き込むとビット3のみクリアされてビット0はセットされたままとなる。割り込みマスクレジスタ512は、割り込み要求レジスタ510のビットがセットされていても自身のCPU201に割り込みを発生させないためのレジスタである。例えば、割り込みマスクレジスタ512のビット0がセットされていると、割り込み要求レジスタ510のビット0がセットされても割り込みは発生しない。この際、割り込み要求レジスタ510のビット0以外のビットがセットされた場合には割り込みは発生する。すなわち、割り込みマスクレジスタ512は、所定の他のマスクPEからの割り込み要求の処理を禁止することができる。
【0099】
割り込み要因指定レジスタ513および割り込み要因クリアレジスタ514は、割り込み要求レジスタ510および割り込みクリアレジスタ511と同様の関係にある。すなわち、どちらもビットごとの操作が可能で、ビットごとに割り込み要因通知用とそのクリア用に使われる。ただし、割り込み要因指定レジスタ513は、割り込み要求レジスタ510と異なり、ビットがセットされていても自身の内部で割り込みを発生することはない。
【0100】
システム起動までにマスタPE200に割り込みを発生するマスタPE210を含む他の複数のマスタPEのそれぞれに割り込み要求レジスタ510のビットが各々割り振られる。システム起動時にマスタPE200は割り込み処理ルーチンをセットし、割り込みマスクレジスタ512を特定の他のマスクPEからの割り込み要求を処理しないように対応するビットをセットする。マルチプロセッサシステムの通常動作中、マスタPE210からマスタPE200に割り込みを伝える必要が発生すると、マスタPE210はマルチプロセッサシステムのマスタとなり、割り込み要因指定レジスタ513の複数のビットのうちのその割り込みの要因に対応するビットをセットする。その後、割り込み要求レジスタ510の複数のビットのうちでマスタPE210からの割り込みに対応するビットをセットする。そして、割り込みマスクレジスタ512の対応するビットがセットされていなければ、割り込みレジスタ202はCPU201に割り込み要求を送出し割り込み処理ルーチンを起動させる。マスタPE200の割り込み処理ルーチンでは、CPU201はまず割り込み要求レジスタ510の値を読み取り、割り込みを発生しているのが例えばマスタPE210であることを知る。そして、マスタPE210からの割り込みを処理する割り込み処理ルーチンに分岐し、その割り込み処理ルーチンでマスタPE210用の割り込み要因指定レジスタ513を読み取り割り込み要因を特定する。その後、割り込み処理ルーチンにおいて割り込み要求を処理し、割り込み要因クリアレジスタ514を用いて割り込み要因をクリアし、割り込みクリアレジスタ511を用いてCPU201への割り込みをクリアする。
【0101】
マスタPE200に割り込みを発生するマスタPEが多数の場合、割り込みレジスタ202を複数設けてもよい。この場合、例えば、他のマスタPEが17以上存在するならば、16ビットの割り込みレジスタ202を2つ必要とし、他のマスタPEからの割り込み要求があるか無いかを確認し、割り込みを発生しているマスタPEを知るために2つの割り込み要求レジスタにアクセスする必要がある。また、割り込みを発生する他の複数のマスタPEの割り込み要因の数が少ない場合は、割り込み要因レジスタ502を複数のマスタPEで共有してもよい。例えば、16ビットの割り込み要因レジスタ502が実装されているのに割り込みを発生する各マスタPEが8種類までの割り込み要因しか持たない場合、1つの割り込み要因レジスタ502に2つのマスタPEを対応させることができる。
【0102】
以上のように、この実施の形態7によれば、マスタPE200に割り込み要求を発生するマスタPEの数が多くても、マスタPE200内に割り込みレジスタ202と割り込み要因レジスタ502とを設けているので、数回のレジスタアクセスで割り込み要求元のマスタPEと割り込み要求要因を特定できる。例えば、割り込みレベルを1つとし、1つの32ビット割り込みレジスタ202と8つの32ビット割り込み要因レジスタ502とを設けることにより、8つの割り込み要因を持つ32個の他のマスタPEからの割り込みの要求元および割り込み要因を2回のレジスタアクセスで特定でき、より高速に割り込み処理を実行できる。
【0103】
実施の形態8.
図12(A),(B)はこの発明の実施の形態8によるマルチプロセッサ制御方式が適用されるホストPEの構成を示す説明図である。図において、130はホストPE100中のタスクA、131は同様にホストPE100中のタスクB、600はハードウェアとして実装されているアドレス設定レジスタ、610はタスクA130のコンテキストとしての仮想アドレス設定レジスタ、620はタスクB131のコンテキストとしての仮想アドレス設定レジスタである。仮想アドレス設定レジスタ610,620は、ともにアドレス設定レジスタ600に対応する仮想のハードウェア資源である。
【0104】
アドレス設定レジスタ600はホストPE100内に1つだけ実装されているものであり、2つのタスクA130,タスクB131は、アドレス設定レジスタ600を別々の用途で使用するため、タスクA130、タスクB131のいずれがアドレス設定レジスタ600を使用するかに応じて、アドレス設定レジスタ600の設定値は異なる。アドレス設定レジスタ600などのハードウェア資源をタスクA130、タスクB131のコンテキストとするには、対象となるハードウェア資源をメモリ空間にマッピングしておき、リアルタイムOS VxWorksなどのシステムコールなどを使用する。VxWorksなどのシステムコールには、指定されたメモリエリアをタスクのコンテキストとすることができるものがある。
【0105】
ところで、従来、タスクごとにハードウェア資源の内容を変えるためにタスクごとに個別にハードウェア資源を持つ必要があった。タスクごとに個別にハードウェア資源を準備するシステムではハードウェアボリュームが増大し、貴重なI/O空間に大きな領域を必要としていた。また、ハードウェアを実装する時点で、対象となるハードウェア資源を必要とするタスク数を把握しておかなければならなかった。この実施の形態8によるマルチプロセッサ制御方式は、このような従来のシステムの課題を解決する手段を提供するものである。
【0106】
次に動作について説明する。
まず、システム初期化時には、アドレス設定レジスタ600は初期化状態にクリアされており、そのため仮想アドレス設定レジスタ610,620も初期化状態にクリアされている。タスクA130とタスクB131は、システムコールによりアドレス設定レジスタ600がマッピングされたメモリ領域をそれぞれのタスクA130、タスクB131のコンテキストとして登録する。タスクA130が実行されている環境でタスクA130がマッピングされたメモリ領域を通してアドレス設定レジスタ600をある値に設定する。その後、タスクスイッチが発生してタスクB131が実行される環境に変わると、タスクA130で使用していたアドレス設定レジスタ600の内容はタスクA130の仮想アドレス設定レジスタ610に待避され、アドレス設定レジスタ600には新たな実行タスクであるタスクB131の仮想アドレス設定レジスタ620の内容が設定される。このとき、アドレス設定レジスタ600は初期化状態にクリアされるので、タスクB131は自分が必要とする値をマッピングされたメモリ領域を通してアドレス設定レジスタ600に設定する。そしれ、タスクB131はアドレス設定レジスタ600により設定されるウィンドウを通して処理を実行する。
【0107】
その後、再びタスクスイッチが発生してタスクA130が実行される環境に変化しても、前回のタスクスイッチの場合と同様に、アドレス設定レジスタ600の内容はタスクB131の仮想設定レジスタ620に待避され、タスク設定レジスタ600には新たな実行タスクであるタスクAの仮想アドレス設定レジスタ610の内容が再設定される。そして、タスクA130は自分に必要な設定のウィンドウを通して処理を実行することができる。このように、タスクA130、タスクB131のように複数のタスクのそれぞれにコンテキストとして仮想アドレス設定レジスタを持たせることにより、1つの物理的ハードウェア資源であるアドレス設定レジスタ600をそれぞれ独立して設定して使用することができる。
【0108】
上記の例では仮想アドレス設定レジスタをタスクのコンテキストとしたが、システム構成に関わるハードウェア資源に対応する仮想のハードウェア資源を各タスクのコンテキストとして持たせ、物理的には1つのシステムハードウェアを、複数のタスクで別構成のシステムハードウェアのように扱うことができる。
【0109】
例えば、上記実施の形態2によるマルチプロセッサ制御方式の割り込みルーティング回路1000の割り込み設定レジスタ1100〜1104や、上記実施の形態3によるマルチプロセッサ制御方式の割り込みルーティング回路1001の割り込み設定レジスタ1110〜1113,1120〜1123,1130〜1133,1140〜1143,1150〜1153をタスクのコンテキストとして持たせることにより、ハードウェア的には1つのデバイスをタスク毎に別のデバイスのように扱うことが可能となる。さらに、この実施の形態8によるマルチプロセッサ制御方式は、上記実施の形態5によるマルチプロセッサ制御方式のウィンドウ設定レジスタ213にも適用することが可能である。
【0110】
さらに、この実施の形態8によるマルチプロセッサ制御方式の適用は、マルチプロセッサシステムに限定されるものではなく、シングルプロセッサを備えた制御装置にも適用され得る。
【0111】
以上のように、この実施の形態8によれば、ハードウェア資源としては1つしか実装されていないアドレス設定レジスタ600をソフトウェア的には複数存在するように扱えるため、ハードウェアが要求するスペース、価格などのコストを低減できる。また、システム構成に関わるレジスタ等のハードウェア資源に対応する仮想のハードウェア資源をタスクのコンテキストとして持たせることにより、1つのシステムハードウェアをタスクごとに違ったシステムハードウェアとして扱えるため、システムコストの低減、システムのフレキシビリティを向上させることができる。
【0112】
実施の形態9.
図13はこの発明の実施の形態9によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、208はマスタPE200に設けられたホスト設定レジスタ、218はマスタPE210に設けられたホスト設定レジスタ、228はマスタPE220に設けられたホスト設定レジスタ、238はマスタPE230に設けられたホスト設定レジスタ、209はマスタPE200に設けられたマスタID設定スイッチ、219はマスタPE210に設けられたマスタID設定スイッチ、229はマスタPE220に設けられたマスタID設定スイッチ、239はマスタPE230に設けられたマスタID設定スイッチである。この実施の形態9によるマルチプロセッサシステムのマスタPE200,210,220,230は、ホストPEとなることができるだけの資源をそれぞれ独立して有している。
【0113】
次に動作について説明する。
マスタPE200,210,220,230に設けられたマスタID設定スイッチ209,219,229,239は、マスタPEごとに固有の設定値にそれぞれ設定され、それらの値はシステム上でマスタPEを特定するID情報として使われる。マスタPE200,210,220,230に設けられたホスト設定レジスタ208,218,228,238は、システムI/O空間上の同一のアドレスで指定される領域に存在しており、一回のアクセスで全マスタPE200,210,220,230の全てのホスト設定レジスタ208,218,228,238の値が設定され得る。ホスト設定レジスタ208,218,228,238の各ビットはマスタID設定スイッチ209,219,229,239の各設定値と対応付けられており、ホスト設定レジスタ208,218,228,238のセットされたビットに対応したマスタID設定スイッチの設定値を有するマスタPEがシステムのホストPEとして動作するように設定される。すなわち、ホスト設定レジスタ208,218,228,238中の1ビットのみをセットすることにより、マスタPE200,210,220,230のうちのいずれか1つをホストPEとして動作することを許可する。
【0114】
システム起動時に、例えば、マスタID設定スイッチ209の設定値をID0に設定し、ID0に対応するホスト設定レジスタ208,218,228,238のビットをセットすると、システム起動後、設定値ID0を有するマスタPE200がホストPEとして動作する。その後、もしホストPEとして動作しているマスタPE200上でなんらかの異常が発生すると、マスタPE200は、異常処理ルーチンによる処理の過程でシステムのホストPEとしての役割を他のマスタPEに譲るために、ホスト設定レジスタ208,218,228,238の値を書き換える。これにより、新たにセットされたビットに対応するIDを持つ他のマスタPE210,220,または230がシステムのホストPEとして動作することが可能となり、システムとしての稼動を継続することができる。
【0115】
以上のように、実施の形態9によれば、システム起動前に各マスタPE200,210,220,230に固有のIDを持たせシステム起動時にはID0のマスタPEがシステムのホストPEとなるように設定し、ホストPEとなっているマスタPEで異常が発生した場合には、自身をシステムから切り離す前に異常処理ルーチン内で次にホストとなるマスタPEを決定し、そのIDに対応する値を全てのホスト設定レジスタ208,218,228,238に書き込み、ホストの権利を他のマスタPEに譲るので、ホストの権利をスムーズに受け継がせてシステムダウンを防ぐことが可能となり、比較的容易にシステムの高信頼性を得ることができる。
【0116】
また、非均質なマスタPE200,210,220,230を用意し、それらをダイナミックにホストPEに切り替えることにより、1つのシステム上で各マスタPEが独自のパフォーマンスを有効に発揮することができる。それ故、コストパフォーマンスの高いマルチプロセッサシステムを提供でき、さらに、従来技術のような独立したホスト監視手段を持つ必要がなくホストPE決定のための情報データの一貫性を保持する必要もないので、ハードウェア、ソフトウェア、処理オーバーヘッドの増大を抑えることができる。
【0117】
実施の形態10.
図14はこの発明の実施の形態10によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、100はホストPE、105はホストPE100内部の割り込み処理ルーチンであり、セマフォ開放の割り込み要求の処理を行うルーチンである。また、200,210,240はホストPE100からのバス5000に電気的に接続されるマスタPEである。ここで、マスタPE240は、内部にセマフォレジスタ241およびセマフォ待ち行列242と、マルチプロセッサシステムの共有資源としての共有メモリ243とを搭載するブリッジデバイスであり、バス5000とは異なるバス5001を有しているが、これ以外は他のマスタPEと同様なマスタPEである。また、220,230はマスタPE240からのバス5001に電気的に接続されているマスタPE、5002はマスタPE220内部の割り込み処理ルーチン、5003はマスタPE220内に設けれており処理を待っている複数のタスクが登録されるタスク待ち行列、5004はセマフォレジスタ241からホストPE100への割り込み信号線、5005はホストPE100からマスタPE220への割り込み信号線である。なお、マスタPE200,210,230もマスタPE240内の共有メモリ243をアクセスするならば、マスタPE220と同様な割り込み処理ルーチン5002およびタスク待ち行列5003を備えている。
【0118】
次に動作について説明する。
図15はこの実施の形態10によるマルチプロセッサ制御方式におけるセマフォ取得、開放時のマスタPE240の動作の流れを示すフローチャートであり、図16は、図15に示したマスタPE240の動作に対するホストPE100の動作を示すフローチャートである。以下、図15および図16を参照しながらこの実施の形態10によるマルチプロセッサ制御方式による処理について説明する。
【0119】
システムに電源が投入された初期状態では、マスタPE240のセマフォレジスタ241はクリアされ、共有メモリ243にアクセスし得るホストPE100,マスタPE200,210,220,230,240もセマフォレジスタ241を取得していない。この状態において、マスタPE200がセマフォレジスタ241をリードすると(ステップST5100)、マスタPE200は有効なデータをリードでき(ステップST5101)、セマフォレジスタ241を取得してタスクを実行する(ステップST5102)。さらに、マスタPE200がセマフォレジスタ241を取得してタスクを実行している状態で、他のPE、例えばマスタPE220がセマフォレジスタ241をリードしても無効なデータをリードできず、セマフォレジスタ241を取得することはできない。セマフォレジスタ241を取得できなかった場合、マスタPE220はセマフォ待ち行列242にセマフォ要求および優先順位を登録し(ステップST5105)、さらにマスタPE220内のタスク待ち行列5003にタスクIDおよび優先順位を登録する(ステップST5105)。マスタPE240のセマフォレジスタ241を要求するPEが複数ある場合は、それらのタスクのセマフォ要求よよび優先順位がセマフォ待ち行列242に順に登録される(ステップST5105)。この実施の形態では、マスタPE220のタスクが最も優先順位が高いものと仮定する。セマフォレジスタ241を取得できずセマフォ要求をセマフォ待ち行列242に登録しタスク待ち行列5003にタスクIDを登録したマスタPE220は、そのタスクの処理を中断し、セマフォレジスタ241を取得できるまで割り込みをウェイトする一方で(ステップST5106)、それ以外のタスクを実行することが可能となる。
【0120】
一方、現在セマフォレジスタ241を取得しているマスタPE200が処理を終了しセマフォレジスタ241を開放する場合、マスタPE200はセマフォレジスタ241にライト動作を実行し(ステップST5103)、セマフォレジスタ241はセマフォが開放されたことを示す割り込みを割り込み信号線5004を介してホストPE100へ送出する(ステップST5104)。図16に示すように、ホストPE100は割り込みを受付けると(ステップST5200)、その割り込み要求を処理する割り込み処理ルーチン105に入り、マスタPE240のセマフォ待ち行列242の内容を確認し(ステップST5201)、次のセマフォ待ちのマスタPEがあるか否かを判定し(ステップST5202)、セマフォ待ちのマスタPEの中からセマフォレジスタ241を取得すべき最も優先順位が高いマスタPEを決定し(ステップST5203)、そのマスタPEに対して割り込みの発生処理を行うべく割り込み信号線5005を介して割り込みを発生させる(ステップST5204)。また、ステップST5202においてセマフォ待ち行列242にデータが登録されていないならば、ホストPE100は処理を終了する。
【0121】
図14に示す例では、上記したように、マスタPE220のタスクが最も優先順位が高いので、マスタPE220のタスクがセマフォ待ちであるならば、ホストPE100はマスタPE220へ割り込み要求を送付してセマフォレジスタ241の所有権をマスタPE220に渡す。マスタPE220が割り込み要求をホストPE100から受けると(ステップST5107)、セマフォ取得可能であることを知りマスタPE220内部の割り込み処理ルーチン5002に分岐して、タスク待ち行列5003の内容を確認する(ステップST5108)。次に、マスタPE220はウェイトしているタスクが2つ以上あるか否かを判定し(ステップST5110)、2以上あるならば優先順位により次に処理するタスクを決定する(ステップ5109)。一方、ウェイトしているタスクが1つであれば、マスタPE220はそのタスクを無条件に選択する。処理するタスクが決定すると、マスタPE220は、マスタPE240のセマフォ待ち行列242およびマスタPE220のタスク待ち行列5003から処理するタスクに関する情報を削除し(ステップST5111)、セマフォレジスタ241をリードして(ステップST5112)、セマフォレジスタ241を取得する(ステップST5113)。マスタPE220はセマフォレジスタ241を取得した後、タスクを実行する(ステップST5114)。タスクの実行が終了すると、マスタPE220はセマフォレジスタ241にライト動作を行い(ステップST5115)、セマフォレジスタ241を開放する。セマフォが開放されるとセマフォレジスタ241を有するマスタPE240は、ホストPE100に対して割り込み信号線5004を介して割り込み信号を発生する(ステップST5116)。割り込み信号を受けたホストPE100は、図16に示した動作に従って、次のセマフォ待ちのタスクを実行するために対象となるマスタPEに対して割り込みを発生する。
【0122】
以上のように、この実施の形態10によれば、セマフォの取得開放により複数のマスタPE200,210,220,230,240およびホストPE100からの共有メモリ243へアクセスするタスクを順次受け付けて処理することが可能となるとともに、競合する場合には排他制御することができる。また、あるマスタPEがセマフォレジスタ241を要求したときに、他のマスタPEがセマフォレジスタ241を取得していてセマフォが取得できない場合、共有メモリ243を有する割り込み要求先のマスタPE240内のセマフォ待ち行列242にそのセマフォ要求を登録し割り込み要求元のマスタPE内のタスク待ち行列5003にタスクIDを登録するので、セマフォレジスタ241の取得許可の割り込みを受けるまで、割り込み要求元のマスタPEは他の処理を実行することができる。さらに、タスクの優先順位をセマフォ待ち行列242に登録することにより、最も優先度の高いマスタPEのタスクであって最も優先度の高いタスクを優先して排他的に実行でき、効率的な処理が可能となる。
【0123】
なお、マスタPE240内に設けられた共有メモリ243をシステムの共有資源の例として説明したが、この実施の形態10はこれに限定されるものではないことは言うまでもない。
【0124】
実施の形態11.
図17はこの発明の実施の形態11によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。図において、100は上記実施の形態2または実施の形態3による割り込みルーティング回路1000または1001のような割り込みルーティング回路6010を備えたホストPE、300,310はSE、6000はSE300を管理している管理マスタPE、200はマスタPE、6020はSE300からの管理マスタPE6000に対する割り込み信号、121はSE300,310、管理マスタPE6000、マスタPE200、ホストPE100を接続するPCIバスである。図17では割り込みルーティング回路6010は、ホストPE100内に設けられているように描かれているが、ホストPE100の外部に設けてもよい。
【0125】
また、図18はノンインテリジェントなSE300の構造の一例を示すブロック図であり、図において、6040はSE300の複数の機能の起動/停止を機能毎に設定可能な機能制御用レジスタ、6050はエラー要因情報が格納されているエラー要因レジスタ、6060は外部にデータ等を出力するための外部出力回路、6070は外部からのデータ等を入力するための外部入力回路、6062は外部出力回路部6060に電源を供給するための出力回路用外部供給電源、6061は出力回路用外部供給電源6062の電圧を監視している異電圧検出回路、6072は外部入力回路部6070に電源を供給するための入力回路用外部供給電源、6071は入力回路用外部供給電源6072の電圧を監視している異電圧検出回路である。なお、これらの外部出力回路6060および外部入力回路6070は管理マスタPE6000からしかアクセスされない。また、6090はすべてのマスタPEによりアクセスされ得る共有メモリ、6080は共有メモリ6090のパリティエラー検出回路、6100は外部出力回路6060の出力をすべてリセットしリセット状態を保持する出力強制リセット信号、6110は外部出力回路6060の電源に異電圧が投入されたことを報告する外部出力回路用異電圧検出信号、6120は外部入力回路6070の電源に異電圧が投入されたことを報告する外部入力回路用異電圧検出信号、6130は共有メモリ6090がアクセスされた時にパリティエラーが発生したことを示すパリティエラー検出信号、6140は共有メモリ6090の有効/無効設定信号である。また、図19は機能制御用レジスタ6040のビット構成を示した説明図、図20はのエラー要因レジスタ6050のビット構成を示した説明図である。
【0126】
次に動作について説明する。
SE300で障害が発生した場合、SE300は、割り込みルーティング回路6010を介して管理マスタPE6000に対し割り込み信号6020を発生する。管理マスタPE6000は、割り込み信号6020によりSE300に障害が発生したことを検知する。その後、管理マスタPE6000はPCIバス121を介してSE300のエラー要因レジスタ6050をリードし、障害の要因を把握し、その要因に応じて機能制御レジスタ6040に障害の発生した機能を停止するために対応するビットを例えば論理1に設定する。
【0127】
SE300が図18に示すような構成を有している場合、図18の外部出力回路6060に出力回路用外部供給電源6062により異電圧が投入されると、異電圧検出回路6061がその異常を検知し、外部出力回路異電圧投入信号6110をアクティブにするとともに、SE300は割り込み信号6020を管理マスタPE6000に送出し、障害が起きたことを報告する。管理マスタPE6000は、SE300の図20に示すエラー要因レジスタ6050をリードし、障害の要因が外部出力回路6060に外部から異電圧が投入されたことであることを知り、外部出力回路6060が壊れて誤出力する事を防止するために、図19に示すように機能制御レジスタ6040の出力強制リセットビットに論理1をライトする。これにより、外部出力回路6060の出力はリセットされ、よりフェールセーフであるリセット状態を保持する。このとき、管理マスタPE6000は外部出力回路6060にアクセスできなくなるが、外部入力回路6070、共有メモリ6090は有効であり、管理マスタPE6000は外部入力回路6070にアクセスでき、また、共有メモリ6090をアクセスするすべてのマスタPEは処理を続行できる。
【0128】
また、例えば、共有メモリ6090にアクセス時にパリティエラーが発生した場合、パリティエラー検出回路6080が異常を検出し、SE300は図17に示す割り込み信号6020により管理マスタPE6000に障害が発生したことを報告する。障害発生の報告を受けた管理マスタPE6000は、SE300の図20に示すエラー要因レジスタ6050をリードし、障害の要因が共有メモリアクセス時のパリティエラーであることを知る。管理マスタPE6000が、共有メモリ6090の障害が共有メモリ6090をアクセスするすべてのマスタPEに影響を及ぼす致命的な障害であると判断した場合、エラー通知信号6030をアサートしてシステムのエラーをホストPE100に通知し、エラー時の処理をホストPE100に委ねる。他方、管理マスタPE6000が共有メモリ6090の障害が致命的な障害でないと判断した場合、図19に示すように機能制御レジスタ6040のメモリ有効/無効設定ビットを無効に設定することにより、すべてのマスタPEからのメモリアクセスに対するSE300の応答を禁止し、外部出力回路6060、外部入力回路6070のみ応答することを可能とする。
【0129】
以上のように、この実施の形態11によれば、SE300,310で発生した障害を割り込みにより迅速に管理マスタPE6000に報告することができ、管理マスタPE6000が自身に組み込まれているソフトウェアによりエラー要因に応じた柔軟なエラー処理を実行できる。また、エラー要因が他のSEやマスタPEに影響の無いものであるならば、構成制御用レジスタ6040の特定のビットをセットすることによりエラーを発生した機能のみを無効とすることができるので、その障害に無関係なSEやマスタPEは処理を続行することができる。さらに、SEがインテリジェントであるかノンインテリジェントであるかに関わらず、機能制御用レジスタ6040とエラー要因レジスタ6050とを備えた全てのSEにこの実施の形態11によるマルチプロセッサ制御方式を適用できる。従って、従来の技術と比較して、信頼性、保守性、および柔軟性の高いマルチプロセッサシステムを提供できる。
【0131】
【発明の効果】
以上のように、請求項1記載の発明によれば、ホストPEを介さずに割り込み信号をマスタPEとSEの間で直接ルーティングできる割り込みルーティング回路を設け、システム初期化時に割り付けたシステム資源に関する情報とマスタPEとSEの間の割り込みルーティングに必要な情報とを含むシステム構成情報を構成情報データベースに予め登録し、構成情報データベースに基づいてSEが発した割り込み信号がマスタPEへルーティングされるように割り込みルーティング回路を設定するように構成したので、例えばPCIバスをシステムバスとする一般的なシステムハードウェアだけではターゲットであるSEからマスタPEに割り込みを通知できないマルチプロセッサシステムにおいても、スレーブにマスタ機能を持たせたりホストPEの割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなく、必要な割り込みルーティング回路を付加するだけでSEからマスタPEへ割り込み信号をルーティングできる効果がある。さらに、割り込みルーティングの際にホストPEが介在しないため、割り込み通知に関して余分なオーバーヘッドをかけることがないという効果がある。
【0132】
請求項2記載の発明によれば、マルチプロセッサシステムが複数のマスタPEと複数のSEとを有する場合、各マスタPEとそのスレーブとなるSEとの対応を示す情報もシステム構成情報として構成情報データベースに予め登録し、構成情報データベースに基づいて複数のSEのうちのいずれかが発した割り込み信号が該SEを制御対象とするマスタPEへルーティングされるように割り込みルーティング回路を設定するように構成したので、マスタPEやターゲットであるSEが複数存在する複雑なマルチプロセッサシステムにおいても、構成情報DBの内容を参照することにより容易にシステム構成を把握でき、さらに、構成情報DBの内容を変更することにより割り込みルーティングの変更を行えるため、システムのフレキシビリティを向上させることができる効果がある。
【0133】
請求項3記載の発明によれば、ホストPEが接続されたシステムバスと他のシステムバスとを接続する1つのブリッジ機構と、必要であれば、他のシステムバスとこれとは別の他のシステムバスとを接続する少なくとも1つのブリッジ機構とを設け、各マスタPEおよび各SEの存在位置に関する情報もシステム構成情報として構成情報データベースに予め登録し、構成情報データベースに基づいて各SEが発した割り込み信号が対応する割り込み要求先に必要ならばブリッジ機構を介してルーティングされるように割り込みルーティング回路を設定するように構成したので、ブリッジ機構により複数のシステムバスが接続されたマルチプロセッサシステムにおいても、同様に、スレーブにマスタ機能を持たせたりホストPEの割り込み処理ルーチンを特殊化したりすることなく、さらに、基礎となるシステムハードウェアを変更することなく、必要な割り込みルーティング回路を付加するだけでブリッジ機構を介してSEからマスタPEへ割り込み信号をルーティングできる効果がある。
【0134】
請求項4記載の発明によれば、マルチプロセッサ制御方式をマスタPEとSEとが通信を行う場合、SEまたはマスタPEからの通信要求は割り込みとして割り込みルーティング回路を用いてマスタPEまたはSEに通知し、マスタPEとSEとの間のデータ転送はウィンドウを介して行うように構成したので、マスタPEとSEとの通信に関する通信要求やデータを当事者間で直接送受信できるので、システムパフォーマンスを向上させることができる効果がある。また、通信用の割り込みルーティングやウィンドウをソフトウェアで設定、変更できるのでシステム構成のフレキシビリティを向上させることができる効果がある。
【0135】
請求項5記載の発明によれば、マルチプロセッサ制御方式をホストPEとマスタPEとの間の通信およびマスタPEとSEとの間の通信における通信要求を割り込みとして割り込みルーティング回路を用いて通知し、ホストPEとマスタPEとの間のデータ転送はマスタPE上に設けた共有メモリを介して行い、マスタPEとSEとの間のデータ転送はマスタPEがシステムのマスタとなってデータ転送するように構成したので、マスタPEとSEとの間およびマスタPEとホストPEとの間の通信要求は要求元から要求先に直接通知することができるので、システムパフォーマンスを向上させることができる効果がある。さらに、通信要求用の割り込みルーティングをソフトウェアで設定、変更することが可能であるので、システム構築のフレキシビリティを向上させることができる効果がある。また、マスタPEとターゲットであるSEとのデータ転送でをマスタPEがシステムのマスタとなってデータ転送するので、ホストPEの介在がなくマスタPEの処理やホストPE内部の処理に余分なオーバーヘッドがかからないという効果がある。さらに、処理結果等をマスタPE上の共有メモリを介してホストPEへ通知するように構成されているので、ホストPEとマスタPEとの間の通信データがたとえ大きくなっても、システムの主メモリを共有メモリにしてマスタPEがホストPEをホールドしてしまう従来のマルチプロセッサシステムに比べて余分なオーバーヘッドをシステムにかけることはないので、システムとしてのトータルパフォーマンスをハイレベルに維持できる効果がある。
【0136】
請求項6記載の発明によれば、マルチプロセッサ制御方式をSEにおいて障害が発生した際に割り込みルーティング回路を介して割り込みにより障害の発生をSEを管理マスタPEに報告し、障害の報告を受けた管理マスタPEにSEのエラー要因レジスタにアクセスさせて障害の要因を確認し、障害の要因に応じて障害の起きた機能を無効にすべく管理マスタPEにSEの機能制御用レジスタの対応するビットをセットさせるように構成したので、SEで発生した障害を割り込みにより迅速に管理マスタPEに報告することができ、管理マスタPEが自身に組み込まれているソフトウェアによりエラー要因に応じた柔軟なエラー処理を実行できる効果がある。また、構成制御用レジスタの特定のビットをセットすることによりエラーを発生した機能のみを無効とすることができるので、場合によってはその障害に無関係なSEやマスタPEは処理を続行することができる効果がある。さらに、SEがインテリジェントであるかノンインテリジェントであるかに関わらず、機能制御用レジスタとエラー要因レジスタとを備えた全てのSEに適用でき、従来の技術と比較して、信頼性、保守性、および柔軟性の高いマルチプロセッサシステムを提供できる効果がある。
【図面の簡単な説明】
【図1】この発明の実施の形態1によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図2】図1に示したマルチプロセッサシステムの構成情報DBの内容を示す説明図である。
【図3】この発明の実施の形態2によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの割り込みルーティング回路の構成を主に示すブロック図である。
【図4】この発明の実施の形態3によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの割り込みルーティング回路の構成を主に示すブロック図である。
【図5】この発明の実施の形態4によるマルチプロセッサ制御方式が適用されるブリッジ機構を有するマルチプロセッサシステムの構成を示すブロック図である。
【図6】この発明の実施の形態5によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図であり、システム起動時のマスタPEおよび割り込みルーティング回路への設定処理手順を示す図である。
【図7】図6に示すマルチプロセッサシステムでの割り込みルーティング時のマスタPEとターゲット間での処理通知手順を示すブロック図である。
【図8】図6に示すマルチプロセッサシステムでのデータ転送時のマスタPEとターゲット間での処理通知手順を示すブロック図である。
【図9】この発明の実施の形態6によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図であり、マスタPEとSEとの間の通信におけるデータ転送経路を示す図である。
【図10】図9に示すマルチプロセッサシステムのホストPEとマスタPEとの間の通信におけるデータ転送経路を示すブロック図である。
【図11】この発明の実施の形態7によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの割り込み関連のレジスタ構成を示すブロック図である。
【図12】この発明の実施の形態8によるマルチプロセッサ制御方式を示す説明図である。
【図13】この発明の実施の形態9によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図14】この発明の実施の形態10によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図15】図14に示すマルチプロセッサシステムのマスタPEのセマフォ取得開放動作を示すフローチャートである。
【図16】図14に示すマルチプロセッサシステムのホストPEのマスタPEへ割り込みの送出動作を示すフローチャートである。
【図17】この発明の実施の形態11によるマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図18】図17に示すマルチプロセッサシステムのSEの構成を示すブロック図である。
【図19】図18に示すSEの機能制御レジスタのビット構成を示す説明図である。
【図20】図18に示すSEのエラー要因レジスタのビット構成を示す説明図である。
【図21】従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図22】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図23】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図24】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図25】従来のマルチタスク制御方式の構成を示すブロック図である。
【図26】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図27】図26に示すマルチプロセッサシステムのSEの構成を示すブロック図である。
【図28】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図29】他の従来のマルチプロセッサ制御方式が適用されるマルチプロセッサシステムの構成を示すブロック図である。
【符号の説明】
100 ホストPE、102 構成情報DB(構成情報データベース)、121,123,125 PCIバス(システムバス)、122,124 ブリッジデバイス(ブリッジ機構)、140 システムバス、150 割り込み信号線(システムバス)、200,210,220,230 マスタPE、201 CPU、202 割り込みレジスタ、208,218,228,238 ホスト設定レジスタ、213 ウィンドウ設定レジスタ(レジスタ)、215 ウィンドウ、217 2ポートメモリ(共有メモリ)、241 セマフォレジスタ、300,310 SE、502 割り込み要因レジスタ、1000,1001,1002,1003,1004,6010 割り込みルーティング回路、5000,5001 システムバス、6000 管理マスタPE、6040 機能制御用レジスタ、6050 エラー要因レジスタ。
Claims (6)
- システム全体を管理する1つのホストプロセッサエレメント(以下、ホストPEと略す)と、システムの構成要素を能動的に操作する少なくとも1つのマスタプロセッサエレメント(以下、マスタPEと略す)と、前記ホストPEおよび前記マスタPEの制御対象である少なくとも1つのスレーブエレメント(以下、SEと略す)と、割り込み信号の入出力方向が前記ホストPEに対しては入力であり、前記マスタPEおよび前記SEに対しては出力であるアーキテクチャを基本とするシステムバスとを備えたマルチプロセッサシステムの割り込みルーティング機構において、
前記ホストPEに管理され、システム構成情報が登録される構成情報データベースと、
前記システムバスを介して前記マスタPE及び前記SEと接続して、前記ホストPEを介さずに割り込み信号を少なくとも前記マスタPEと前記SEの間で直接ルーティングできる割り込みルーティング回路とを備え、
前記ホストPEが、
システム初期化時に前記マスタPEおよび前記SEがそれぞれ必要とするシステム資源を割り付け、割り付けれられた前記システム資源に関する情報と前記マスタPEと前記SEの間の割り込みルーティングに必要な情報とを含むシステム構成情報を前記構成情報データベースに予め登録し、
前記構成情報データベースに基づいて前記SEが発した割り込み信号が前記マスタPEへルーティングされるように前記割り込みルーティング回路を設定する割り込みルーティング機構。 - ホストPEが、
マルチプロセッサシステムが複数のマスタPEと複数のSEとを有する場合、各マスタPEとそのスレーブとなるSEとの対応を示す情報もシステム構成情報として構成情報データベースに予め登録し、
前記構成情報データベースに基づいて前記複数のSEのうちのいずれかが発した割り込み信号が該SEを制御対象とするマスタPEへルーティングされるように割り込みルーティング回路を設定することを特徴とする請求項1記載の割り込みルーティング機構。 - ホストPEが接続されたシステムバスと他のシステムバスとを接続する1つのブリッジ機構と、必要であれば、前記他のシステムバスとこれとは別の他のシステムバスとを接続する少なくとも1つのブリッジ機構とを設け、各マスタPEおよび各SEを前記システムバスおよび前記他のシステムバス上のいずれかの位置に設け、さらに、ホストPEを介さずに割り込み信号を割り込み要求元から割り込み要求先若しくは前記ブリッジ機構へ、または前記ブリッジ機構から割り込み要求先へ直接ルーティングできる割り込みルーティング回路を前記システムバスおよび前記他のシステムバス上に設け、
前記ホストPEが、
各マスタPEおよび各SEの存在位置に関する情報もシステム構成情報として構成情報データベースに予め登録し、前記構成情報データベースに基づいて各SEが発した割り込み信号が対応する割り込み要求先に必要ならば前記ブリッジ機構を介してルーティングされるように前記割り込みルーティング回路を設定することを特徴とする請求項1または請求項2記載の割り込みルーティング機構。 - 請求項1記載の割り込みルーティング機構を利用するマルチプロセッサ制御方式において、
マスタPEに設けられ、該マスタPEとSEとの間の通信時のデータ転送のために、前記マスタPEが前記SEにアクセスするためのウィンドウおよび該ウィンドウを介してアクセスするアクセス先を設定するためのレジスタを備え、
前記ホストPEが、構成情報データベースに基づいて前記マスタPEが前記SEにアクセスできるように前記レジスタを設定し、
前記マスタPEと前記SEとが通信を行う場合、前記SEまたは前記マスタPEからの前記通信要求は割り込みとして割り込みルーティング回路を用いて前記マスタPEまたは前記SEに通知し、前記マスタPEと前記SEとの間のデータ転送は前記ウィンドウを介して行うマルチプロセッサ制御方式。 - ホストPEとマスタPEとの間の通信および前記マスタPEとSEとの間の通信における通信要求を割り込みとして割り込みルーティング回路を用いて通知し、前記ホストPEと前記マスタPEとの間のデータ転送は前記マスタPE上に設けた共有メモリを介して行い、前記マスタPEと前記SEとの間のデータ転送は前記マスタPEがシステムのマスタとなってデータ転送することを特徴とする請求項4記載のマルチプロセッサ制御方式。
- SEの機能毎に有効/無効を設定できる機能制御用レジスタと、障害の要因を示すエラー要因情報を格納するためのエラー要因レジスタとを前記SEに設け、
前記SEが、障害が発生した際に割り込みルーティング回路を介した割り込みにより前記障害の発生を前記SEを管理する管理マスタプロセッサエレメント(管理マスタPE)に報告し、
前記障害の報告を受けた前記管理マスタPEが、前記SEの前記エラー要因レジスタにアクセスして前記障害の要因を確認し、前記障害の要因に応じて前記障害の起きた機能を無効にすべく前記SEの前記機能制御用レジスタの対応するビットをセットすることを特徴とする請求項4又は請求項5記載のマルチプロセッサ制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07864997A JP3540119B2 (ja) | 1997-03-28 | 1997-03-28 | 割り込みルーティング機構およびマルチプロセッサ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07864997A JP3540119B2 (ja) | 1997-03-28 | 1997-03-28 | 割り込みルーティング機構およびマルチプロセッサ制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10275136A JPH10275136A (ja) | 1998-10-13 |
JP3540119B2 true JP3540119B2 (ja) | 2004-07-07 |
Family
ID=13667722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07864997A Expired - Fee Related JP3540119B2 (ja) | 1997-03-28 | 1997-03-28 | 割り込みルーティング機構およびマルチプロセッサ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3540119B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3971715B2 (ja) | 2003-03-28 | 2007-09-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、割込制御装置、制御方法、及びこれらのプログラム |
JP5644197B2 (ja) * | 2010-06-14 | 2014-12-24 | 富士通株式会社 | コンピュータシステムおよび割込要求処理方法 |
-
1997
- 1997-03-28 JP JP07864997A patent/JP3540119B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10275136A (ja) | 1998-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5682512A (en) | Use of deferred bus access for address translation in a shared memory clustered computer system | |
JP2661733B2 (ja) | データ処理システム | |
US4412281A (en) | Distributed signal processing system | |
EP2033101B1 (en) | Computer-implemented method, apparatus, and computer program product for stalling dma operations during memory migration | |
US5261109A (en) | Distributed arbitration method and apparatus for a computer bus using arbitration groups | |
US5191649A (en) | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions | |
US6711643B2 (en) | Method and apparatus for interrupt redirection for arm processors | |
US5282272A (en) | Interrupt distribution scheme for a computer bus | |
JP3606551B2 (ja) | 割込アーキテクチャを含むデータ処理システム、方法および記憶媒体 | |
US4124891A (en) | Memory access system | |
US8346997B2 (en) | Use of peripheral component interconnect input/output virtualization devices to create redundant configurations | |
US4091455A (en) | Input/output maintenance access apparatus | |
US8225005B2 (en) | Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect | |
US6549961B1 (en) | Semaphore access in a multiprocessor system | |
US20080147891A1 (en) | I/o adapter lpar isolation in a hypertransport environment | |
US5271020A (en) | Bus stretching protocol for handling invalid data | |
US9690719B2 (en) | Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof | |
EP0139563B1 (en) | Control mechanism for multiprocessor system | |
JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
JPH1097509A (ja) | 対称型マルチプロセッサ・システムにおいて割り込みを分散する方法および装置 | |
US5146605A (en) | Direct control facility for multiprocessor network | |
US5255369A (en) | Multiprocessor system with reflective memory data transfer device | |
KR20220141674A (ko) | PCIe 디바이스 및 그 동작 방법 | |
JP2002539524A (ja) | 周辺デバイス割込みを処理するための装置および方法 | |
JP3540119B2 (ja) | 割り込みルーティング機構およびマルチプロセッサ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040324 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080402 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090402 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100402 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |