(57)【要約】【課題】  従来のＳＭＰシステムは、マルチプロセッサ対応のＯＳやハードウェアが必要であり、さらに、外部機器からのアクセス要求に対して割り込み応答時間が不定あるいは長くなってしまう問題があった。【解決手段】  本発明にかかる割り込み分配装置は、アクセス要求を発行した外部機器とアクセス要求の通知先となるプロセッサとの対応関係が登録された割り込みコントローラ１０４と、割り込みコントローラ１０４を介して外部機器１０３とアクセス要求を送受信する第１のプロセッサと、外部機器と割り込みコントローラ１０４を介すことなくアクセス要求を送受信する第２のプロセッサとを有するものである。【選択図】図１
2006338184.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求を発行した外部機器と前記アクセス要求の通知先となるプロセッサとの対応関係が登録された割り込みコントローラと、
前記割り込みコントローラを介して前記外部機器とアクセス要求を送受信する第１のプロセッサと、
前記外部機器と前記割り込みコントローラを介すことなくアクセス要求を送受信する第２のプロセッサとを有する割り込み分配装置。
【請求項２】
前記第１、第２のプロセッサは、それぞれ、前記外部機器を制御する外部機器制御ドライバと、前記外部機器コントローラからアクセス要求があった場合に前記ＯＳに対して割り込み処理要求をする割り込み処理ドライバと、各プロセッサ内の前記外部機器制御ドライバ同士の調停を行うドライバ間調停手段とを有していることを特徴とする請求項１に記載の割り込み分配装置。
【請求項３】
前記第１、第２プロセッサは、それぞれ少なくとも１つ以上が接続され、それぞれが独立して動作できることを特徴とする請求項１又は２に記載の並列処理システムにおける割り込み分配装置。
【請求項４】
前記第１、第２のプロセッサは、それぞれシングルプロセッサ向けＯＳが組み込まれていることを特徴とする請求項１乃至３のいずれか１項に記載の割り込み分配装置。
【請求項５】
前記第１のプロセッサは、前記割り込みコントローラを介して送信されるアクセス要求に基づいて、前記外部機器へのアクセスを開始することを特徴とする請求項１乃至４のいずれか１項に記載の割り込み分配装置。
【請求項６】
前記第２のプロセッサは、前記外部機器制御ドライバが前記外部機器を監視し、前記外部機器がアクセス要求に相当する状態となった場合に、直接前記外部機器にアクセスを行うことを特徴とする請求項１乃至４のいずれか１項に記載の割り込み分配装置。
【請求項７】
前記割り込みコントローラは、前記ドライバ間調停手段によって登録されるプロセッサが決定されることを特徴とする請求項１乃至６のいずれか１項に記載の割り込み分配装置。
【請求項８】
アクセス要求を発行した外部機器と前記アクセス要求の通知先となるプロセッサとの対応関係が登録された割り込みコントローラと、
前記割り込みコントローラを介して前記外部機器とアクセス要求を送受信する第１のプロセッサと、
前記外部機器と前記割り込みコントローラを介すことなくアクセス要求を送受信する第２のプロセッサと、
前記第１、第２のプロセッサに組み込まれ、前記外部機器とのアクセス処理を行う外部機器制御ドライバと、
前記第１のプロセッサに組み込まれ、割り込みコントローラとアクセス要求の送受信を行う割り込み処理ドライバとを有し、
前記第１のプロセッサは、前記割り込みコントローラからのアクセス要求に基づいて前記外部機器制御ドライバによって前記外部機器コントローラとのアクセスを行い、
前記第２のプロセッサは、前記外部機器制御ドライバによって前記外部機器の状態を監視し、
前記第２のプロセッサは、前記外部機器がアクセス要求に相当する状態となった場合に前記外部機器制御ドライバによって該外部機器とのアクセスを行う割り込み分配システム。
【請求項９】
前記第１、第２のプロセッサは、それぞれ、各プロセッサ内の前記外部機器制御ドライバ同士の調停を行うドライバ間調停手段とを有していることを特徴とする請求項８に記載の割り込み分配システム。
【請求項１０】
前記第１、第２プロセッサは、それぞれ少なくとも１つ以上が接続され、それぞれが独立して動作できることを特徴とする請求項８又は９に記載の並列処理システムにおける割り込み分配システム。
【請求項１１】
前記第１、第２のプロセッサは、それぞれシングルプロセッサ向けＯＳが組み込まれていることを特徴とする請求項８乃至１０のいずれか１項に記載の割り込み分配システム。
【請求項１２】
前記割り込みコントローラは、前記ドライバ間調停手段によって登録されるプロセッサが決定されることを特徴とする請求項８乃至１１のいずれか１項に記載の割り込み分配システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は割り込み分配装置及び分配システムに関し、特にシングルプロセッサ向けＯＳを利用する対称型マルチプロセッサシステムの割り込み分配装置及び割り込み分配システムに関する。
【背景技術】
【０００２】
近年、低消費電力でありながら高性能な処理をプロセッサに行わせる方法として、複数のプロセッサを並列に動作させるマルチプロセッサシステムが用いられている。このマルチプロセッサシステムには同じプロセッサを複数利用した対称型マルチプロセッサシステム（ＳＭＰ：Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）と、異なるプロセッサを組み合わせ利用する非対称型マルチプロセッサシステム（ＡＳＭＰ：Ａｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）がある。
【０００３】
従来のＳＭＰシステムの一例が非特許文献１に示されている。従来のＳＭＰシステムは、マルチプロセッサ対応のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とマルチプロセッサ対応のハードウェアを必要とする。つまり、従来のＳＭＰシステムは、シングルプロセッサに対応したシステムをそのままＳＭＰシステムに適応できない。このことより、従来のＳＭＰシステムを利用する場合、ＳＭＰシステム用に再びソフトウェア及びハードウェアを開発しなければならず、開発期間が長くなる問題があった。
【０００４】
また、従来のＳＭＰシステムにおいて、周辺機器から入力されるデータをプロセッサに割り込み処理させる場合、周辺機器からのデータの受理及びプロセッサへの割り込み処理がプロセッサ間で競合しないように、それぞれのプロセッサを排他制御する必要があった。この排他制御によって、従来のＳＭＰシステムが周辺機器からデータを受け取り、割り込み処理を行う場合、周辺機器からのデータは一度システム全体の待機プロセスとなる。この待機プロセスの数によって、周辺機器からのデータが割り込み処理されるまでの時間は不定となる。このことにより、プロセッサが周辺機器からデータを受け取って、割り込み処理を行う割り込み応答時間性能が不定となってしまうため、割り込み応答時間性能を規定できない問題があった。
【０００５】
これに対して、シングルプロセッサ対応のＯＳで動作可能なＡＳＭＰシステムであるタスク並列型マルチプロセッサシステムが特許文献１に開示されている。タスク並列型マルチプロセッサによれば、シングルプロセッサ向けに開発されたＯＳとアプリケーションをマルチプロセッサシステムに適応可能である。
【０００６】
タスク並列型マルチプロセッサを図８に示す。タスク並列型マルチプロセッサは、代表プロセッサを有している。各プロセッサと周辺機器とのデータの送受信は、代表プロセッサによって制御される。タスク並列型マルチプロセッサシステムは、外部機器からの入力データの受理及び割り込み処理を代表プロセッサを介して行っている。外部機器からプロセッサＰ１へのデータの送信時間を図９に示す。図９に示すように、割り込み応答時間性能は、シングルプロセッサの割り込み応答時間性能に対して、代表プロセッサでの処理時間分のオーバーヘッドが生じてしまう。タスク並列型マルチプロセッサは、複数のプロセッサによってアプリケーションの実行速度は速くなるが、割り込み応答時間が遅くなる問題があった。
【非特許文献１】ＯＳの基礎と応用、Ａ．Ｓ．タネンバウム原著、プレンティスホール・トッパン社
【特許文献１】特開２００４−３０２８３７号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のＳＭＰシステムは、マルチプロセッサ対応のＯＳやハードウェアが必要であり、さらに、外部機器からのアクセス要求に対して割り込み応答時間が不定あるいは長くなってしまう問題があった。
【課題を解決するための手段】
【０００８】
本発明にかかる割り込み分配装置は、アクセス要求を発行した外部機器と前記アクセス要求の通知先となるプロセッサとの対応関係が登録された割り込みコントローラと、前記割り込みコントローラを介して前記外部機器とアクセス要求を送受信する第１のプロセッサと、前記外部機器と前記割り込みコントローラを介すことなくアクセス要求を送受信する第２のプロセッサとを有するものである。
【０００９】
また、本発明にかかる割り込み分配システムは、アクセス要求を発行した外部機器と前記アクセス要求の通知先となるプロセッサとの対応関係が登録された割り込みコントローラと、前記割り込みコントローラを介して前記外部機器とアクセス要求を送受信する第１のプロセッサと、前記外部機器と前記割り込みコントローラを介すことなくアクセス要求を送受信する第２のプロセッサと、前記第１、第２のプロセッサに組み込まれ、前記外部機器とのアクセス処理を行う外部機器制御ドライバと、前記第１のプロセッサに組み込まれ、割り込みコントローラとアクセス要求の送受信を行う割り込み処理ドライバとを有し、前記第１のプロセッサは、前記割り込みコントローラからのアクセス要求に基づいて前記外部機器制御ドライバによって前記外部機器とのアクセスを行い、前記第２のプロセッサは、前記外部機器制御ドライバによって前記外部機器の状態を監視し、前記第２のプロセッサは、前記外部機器がアクセス要求に相当する状態となった場合に前記外部機器制御ドライバによって該外部機器とのアクセスを行うものである。
【００１０】
本発明にかかる割り込み分配装置及びそのシステムによれば、外部機器からアクセス要求があった場合に、外部機器のアクセス要求の通知先が、割り込みコントローラに登録されていれば、そのアクセス要求は登録された第１のプロセッサに対して行われる。また、割り込みコントローラに登録されてない第２のプロセッサは、監視動作によって、外部機器のアクセス要求に相当する状態を監視することで、外部機器のアクセス要求を認識して、外部機器とアクセスが可能である。
【００１１】
これによって、外部機器と複数のプロセッサとのアクセスは、競合することはない。また、外部機器と複数のプロセッサとのアクセスに伴い発生する処理は第１、第２のプロセッサ内に待機プロセスとして登録することが可能であるため、システム全体の処理が待機プロセスを持つ必要がない。従って、シングルプロセッサ向けＯＳを搭載した複数のプロセッサを有する対称型マルチプロセッサシステムであっても、外部機器のアクセス要求に対して、シングルプロセッサシステムと同等の割り込み応答時間を実現することが可能である。また、システム全体に対する待機プロセスが必要ないためにシングルプロセッサ向けのハードウェアに対してマルチプロセッサシステムを適用することが可能である。
【発明の効果】
【００１２】
本発明のＳＭＰシステムによれば、シングルプロセッサ向けのＯＳ及びハードウェアに対して、マルチプロセッサシステムを適用することができ、さらに、外部機器からのアクセス要求に対する割り込み応答時間をシングルプロセッサシステムと同等にすることが可能である。
【発明を実施するための最良の形態】
【００１３】
実施の形態１
【００１４】
実施の形態１にかかるＳＭＰシステムを図１に示す。図１に示すように、実施の形態１にかかるＳＭＰシステムは、複数のプロセッサ（プロセッサＰ１、プロセッサＰ２、・・・、プロセッサＰｎ）１０１−１から１０１−ｎ、主記憶装置１０２、外部機器コントローラ１０３、割り込みコントローラ１０３を有している。
【００１５】
主記憶装置１０２は、それぞれのプロセッサが利用するデータの記憶領域である。主記憶装置は、例えば、各プロセッサ間で共有される共有メモリ、各プロセッサが独立して用いる非共有メモリ、通信処理によって仮想的に共有される通信領域を有している。これらのメモリは、排他処理やキャッシュ制御などを要求されることなく各プロセッサからアクセスすることが可能である。
【００１６】
外部機器コントローラ１０３は、ＳＭＰシステムに接続される外部機器を制御して、外部機器とプロセッサ間のデータの送受信を行うものである。なお、外部機器コントローラ１０３を介さずにプロセッサと外部機器が直接アクセスを行うことも可能である。
【００１７】
割り込みコントローラ１０４は、例えば、外部機器コントローラが制御する外部機器とその外部機器に対応したプロセッサの関係を示すプログラマブルなテーブルを有している。つまり、アクセス要求のあった外部機器に応じて、外部機器からのアクセス要求信号をその外部機器に対応したプロセッサに送信する。アクセス要求は、例えば外部機器からの割り込み要求、外部機器の状態変化の通知、外部機器のステータス表示の変更を示す信号である。
【００１８】
複数のプロセッサＰ１からＰｎは、例えば、それぞれ同じ構成のプロセッサである。プロセッサは、外部機器制御ドライバ１１１、割り込み処理ドライバ１１２、ドライバ間調停手段１１３、待機プロセス１１４、シングルプロセッサ向けＯＳ１１５を有している。これらのブロックについての詳細は後述する。
【００１９】
複数のプロセッサは、独立して動作するために必要な機能を有しているため、それぞれ独立に動作する。このため、プロセッサが外部機器にアクセスする場合、アクセスが各プロセッサ間で競合する場合がある。実施の形態１にかかるＳＭＰシステムでは、プロセッサが外部機器へのアクセスする場合に割り込みモードと監視モードとを設定することで、アクセスの競合を防いでいる。割り込みモードと監視モードについての詳細は後述する。
【００２０】
外部機器制御ドライバ１１１は、外部機器コントローラ１０３を制御して、外部機器の状態を監視するものである。外部機器制御ドライバ１１１は、ＯＳに組み込まれた機能、任意のソフトウェア、その機能を実現するためにプロセッサに組み込まれた機能のいずれであっても良い。
【００２１】
割り込み処理ドライバ１１２は、外部機器コントローラ１０３の要求に基づいて、プロセッサの待機プロセス１１４に外部機器から送信されるデータの処理を割り込みませる指示をするものである。割り込み処理ドライバ１１２は、ＯＳに組み込まれた機能、任意のソフトウェア、その機能を実現するためにプロセッサに組み込まれた機能のいずれであっても良い。
【００２２】
ドライバ間調停手段１１３は、外部機器制御ドライバを読み込むときに、他のプロセッサの外部機器ドライバと自プロセッサの外部機器ドライバとの間の調停を行う。この調停動作によってプロセッサが割り込みモード又は監視モードのいずれのモードで動作するかが決定される。
【００２３】
待機プロセス１１４は、自プロセッサが行う処理を記憶するものである。それぞれのプロセッサは、シングルプロセッサとして動作する。プロセッサが行う処理は、待機プロセス１１４に記憶され、処理の順番待ちを行う。
【００２４】
シングルプロセッサ向けＯＳ１１５は、さまざまなアプリケーションからの指示をプロセッサに送信し、プロセッサで処理された結果をアプリケーションに返信する。また、プロセッサ内の基本的な動作の制御を行うものである。
【００２５】
割り込みモードと監視モードとについて詳細に説明する。割り込みモードは、外部機器からアクセス要求があった場合、割り込みコントローラ１０４を介してプロセッサにアクセス要求が送信されるモードである。このモードでは、プロセッサは、割り込みコントローラ１０４を介してアクセス要求の送信があったときに、アクセス要求に対応して外部機器アクセスを行えばよい。そのため、割り込みモードに設定されたプロセッサは外部機器の監視を行わない。割り込みモードに設定されたプロセッサを、例えば第１のプロセッサとする。
【００２６】
監視モードは、外部機器から送信されるアクセス要求をプロセッサが定期的に監視するモードである。また監視モードは、割り込みコントローラ１０４のテーブルに登録されていないプロセッサに対して設定されるモードである。監視モードに設定されたプロセッサは、外部機器のアクセス要求を監視することで、アクセス要求が発生した場合に対応した動作を行う。この監視は、定期的な監視に限られたものではく、例えば不定期あるいは連続した監視でも良く、これらを組み合わせて、適宜変更することも可能である。監視モードに設定されるプロセッサを、例えば第２のプロセッサとする。
【００２７】
第１のプロセッサとしてプロセッサＰ１が割り込みモードに設定され、第２のプロセッサとしてプロセッサＰ２が監視モードに設定されている場合のアクセス要求信号の流れを図２に示す。図２に示すように、割り込みモードのアクセス要求信号は、割り込みコントローラ１０４を介して、例えばプロセッサＰ１に送信される（経路Ａ）。監視モードのアクセス要求信号は外部機器コントローラ１０３から直接プロセッサＰ２に送信される（経路Ｂ）。
【００２８】
割り込みモードと監視モードの設定の切換は、例えばプロセッサに外部機器制御ドライバ１１１を組み込む時に行う。外部機器制御ドライバ１１１の組み込みのフローチャートを図３に示す。図３を参照して、外部機器制御ドライバ１１１の組み込みを説明する。
【００２９】
まず、アプリケーションが外部機器制御ドライバ１１１の組み込みの指示を各プロセッサのＯＳに対して行う（ステップＳ３１１）。プロセッサのＯＳ１１５はアプリケーションから指示に基づいて外部機器制御ドライバ１１１を読み込む（ステップＳ３１２）。続いて、プロセッサのＯＳ１１５は外部機器制御ドライバ１１１の初期化処理を呼び出す（ステップＳ３１３）。
【００３０】
外部機器制御ドライバ１１１は、プロセッサのＯＳ１１５からの指示に基づいて外部機器制御ドライバ１１１の初期化を行う（ステップＳ３１４）。この初期化に基づいて、各プロセッサのドライバ間調停手段１１３は、割り込みコントローラ１０４のテーブルにどのプロセッサを登録するかを決定する調停動作を行う（ステップＳ３１５）。
【００３１】
ステップＳ３１５の動作に基づいて、プロセッサのＯＳ１１５は、自プロセッサが割り込みコントローラ１０４のテーブルに登録されているかを判断する（ステップＳ３１６）。ステップＳ３１６の判断の結果、自プロセッサが割り込みコントローラ１０４のテーブルに登録されていた場合、外部機器制御ドライバ１１１を割り込みモードに設定する（ステップＳ３１７）。ステップＳ３１６の結果、自プロセッサが割り込みコントローラ１０４のテーブルに登録されていなかった場合、外部機器制御ドライバ１１１を監視モードに設定する（ステップＳ３１８）。ステップＳ３１７又はステップＳ３１８が終了すると、プロセッサのＯＳは通常動作に復帰する。この動作により、割り込みコントローラ１０４は、プログラマブルにテーブルを作り変えることが可能になる。
【００３２】
上記説明の設定に基づいて動作する割り込みモードと監視モードの動作について詳細に説明する。まず、割り込みモードの場合の外部機器とプロセッサのやり取りのフローチャートの一例を図４に示す。図４を参照して割り込みモードの動作を説明する。
【００３３】
まず、外部機器コントローラ１０３がアクセス要求を割り込みコントローラ１０４に送信する（ステップＳ４０１）。割り込みコントローラ１０４はアクセス要求に基づいて、アクセス要求元の機器を判定する（ステップＳ４０２）。続いて、割り込みコントローラ１０４内のテーブルに基づいて、判定された機器に対応したプロセッサに対して割り込み処理通知を行う（ステップＳ４０３）。
【００３４】
割り込み処理通知がされたプロセッサの割り込み処理ドライバ１１２は、割り込み処理通知に基づいて、割り込み禁止状態となる（ステップＳ４０４）。割り込み処理ドライバ１１２は、割り込み禁止状態の間、外部からのアクセス要求を拒否する。これによって、割り込み処理ドライバ１１２は、内部に対する処理のみ行う状態となる。続いて、割り込み処理ドライバ１１２は外部機器からのデータの引取処理のための待機プロセス（１）をプロセッサのＯＳ１１５に要求する（ステップＳ４０５）。
【００３５】
プロセッサのＯＳ１１５は、割り込み処理ドライバからの待機プロセス（１）の要求に基づいて、割り込みコントローラ１０４に割り込みマスク要求を送信する（ステップＳ４０６）。これによって、割り込みコントローラ１０４のテーブルに登録された自プロセッサの設定が一時的に無効になる。続いて、プロセッサのＯＳ１１５は、外部機器からのデータ引取処理を待機プロセス（１）に登録する（ステップＳ４０７）。
【００３６】
ステップＳ４０７が完了すると、外部機器制御ドライバ１１１が引き取ったデータを処理するための待機プロセス（２）をプロセッサのＯＳ１１５に要求する（ステップＳ４０８）。その後、外部機器制御ドライバ１１１は、外部機器からデータを引き取る（ステップＳ４０９）。これによって、待機プロセス（１）は実行され、消去されることとなる。外部機器制御ドライバ１１１が引き取ったデータは、待機プロセス（２）に登録され、処理の順番を待つ（ステップＳ４１０）。
【００３７】
ここで、外部機器からのデータの引取りが完了したため、外部機器制御ドライバ１１１は、割り込み処理ドライバ１１２と割り込みコントローラ１０４とに割り込み許可の信号を送信する（ステップＳ４１１、Ｓ４１２）。これによって、割り込み処理ドライバ１１２と割り込みコントローラ１０４は次のアクセス要求を受信できる状態となる。
【００３８】
待機プロセス（２）に登録された処理には、優先順位がつけられている。プロセッサは、優先順位の高い待機プロセスから処理を実行する。そのため、割り込み処理された待機プロセス（２）とその他の待機プロセスの優先順位を比較し、優先順位のソートを行う（ステップＳ４１３）。ステップＳ４１３で待機プロセス（２）の優先順位が最も高ければ、プロセッサは待機プロセス（２）に登録された処理を実行する（ステップＳ４１４）。また、待機プロセス（２）の優先順位よりも高い優先順位の待機プロセスがある場合は、その待機プロセスを実行する（ステップＳ４１５）。
【００３９】
次に、監視モードの場合の外部機器とプロセッサとのやり取りのフローチャートの一例を図５に示す。図５を参照して監視モードの動作を説明する。監視モードでは、外部機器コントローラ１０３からのアクセス要求ではなく、アプリケーションからのアクセス要求があった場合について説明する。
【００４０】
まず、アプリケーションが外部機器に対するアクセス要求を行う（ステップＳ５０１）。アプリケーションのアクセス要求に基づいて、プロセッサのＯＳ１１５は、呼び出し元アプリケーションを待機プロセス（３）に登録する（ステップＳ５０２）。続いて、プロセッサのＯＳ１１５は、外部機器制御ドライバ１１１を呼び出す（ステップＳ５０３）。
【００４１】
呼び出された外部機器制御ドライバ１１１は、外部機器の状態を読み出す（ステップＳ５０４）。読み出した結果、外部機器がアクセス可能か判断する（ステップＳ５０５）。その結果、外部機器がアクセス可能な状態であった場合、外部機器制御ドライバ１１１は、外部機器コントローラにアクセス許可の信号を送信する（ステップＳ５０６）。ステップＳ５０５で外部危機がアクセス不可であった場合、外部機器制御ドライバ１１１は、外部機器監視処理をタイマ割り込み待機プロセスに登録する（ステップＳ５０７）。タイマ割り込み待機プロセスに基づき、外部機器制御ドライバ１１１は、タイマ割り込みによる外部機器監視動作を行い（ステップＳ５０８）、外部機器がアクセス可能な状態になるまでこれを繰り返す（ステップＳ５０９）。ステップＳ５０９で、外部機器がアクセス可能となると、外部機器制御ドライバ１１１は、ステップＳ５０６の動作を行う。外部機器制御ドライバ１１１は、外部機器コントローラ１０３にアクセス許可信号を送信すると、外部機器設定処理を行う（ステップＳ５１０）。これによって、外部機器は入力モード又は出力モードのいずれかのモードとなる。
【００４２】
続いて、割り込み処理ドライバ１１２は、割り込み禁止状態となり（ステップＳ５１１）、外部機器からのデータ引取処理のための待機プロセス（１）を要求する（ステップＳ５１２）。その後、プロセッサのＯＳ１１５は、外部機器からのデータ引取処理を待機プロセス（１）に登録する（ステップＳ５１３）。
【００４３】
これ以降の動作は、図４に示す割り込みモードの処理のフローチャートにおけるステップＳ４０８からステップＳ４１５の動作と同じため説明を省略する。ただし、割り込みモードのフローチャートにおけるステップＳ４１２は、監視モードでは割り込みコントローラが関係ないため除外する。
【００４４】
ここで、ステップＳ５０８、Ｓ５０９のタイマ割り込み監視の動作について詳細に説明する。タイマ割り込み監視のフローチャートを図６に示す。タイマ割り込みは、タイマ割り込み待機プロセスに基づいて、プロセッサのＯＳ１１５がタイマ割り込みを実行する（ステップＳ６０１）。ステップＳ６０１に基づいて、プロセッサのＯＳ１１５に時刻管理が設定される（ステップＳ６０２）。さらに、プロセッサのＯＳ１１５は、タイマ割り込み待機プロセスに外部機器監視処理が登録されているかを確認する（ステップＳ６０３）。ここで、タイマ割り込み待機プロセスに外部機器監視処理が設定されていなければ、ＯＳ１１５の動作に復帰する（ステップＳ６０４）。
【００４５】
タイマ割り込み待機プロセスに外部機器監視処理が登録されている場合、外部機器制御ドライバ１１１は、外部機器がアクセス可能かを判断する（ステップＳ６０５）。外部機器へのアクセスが可能である場合には、外部機器へのアクセスを開始する（ステップＳ６０６）。また、外部機器へのアクセスが不可である場合には、タイマ割り込み待機プロセスに外部機器監視処理を再登録する（ステップＳ６０７）。その後、ＯＳの動作に復帰して、再びタイマ割り込み監視を続ける（ステップＳ６０８）。
【００４６】
上記の説明の割り込みモードと監視モードとで外部機器にアクセスをした場合のアクセス時間を図７に示す。図７に示すように、割り込みモードの場合は、外部機器でアクセス要求が発生からアクセスが完了するまでの割り込み応答時間１は、待機プロセス等による待機時間がない。これは、シングルプロセッサで外部機器アクセスをした場合とほぼ同じ時間である。
【００４７】
また、監視モードの場合は外部機器でアクセス要求が発生してからアクセスが完了するまでの割り込み応答時間２は、シングルプロセッサでの割り込み応答時間に監視動作の時間を足し合わせたものとなる。
【００４８】
実施の形態１にかかるＳＭＰシステムによれば、割り込みコントローラを介した割り込みモードで設定されたプロセッサと自プロセッサで監視を行う監視モードに設定されたプロセッサを組み合わせて構成している。また、割り込みモードでは、割り込みコントローラのテーブルによって、外部機器コントローラからのアクセスを分配している。これによって、外部機器でアクセス要求が発生した場合にも外部機器コントローラへのアクセスは競合することはない。
【００４９】
加えて、プロセッサが外部機器コントローラへアクセスを行う時の動作は、シングルプロセッサで構成されたシステムとほぼ同等の手順となる。このため、従来のＳＭＰシステムであったアクセス時間に不定となる時間を含まないため、割り込み応答時間が不定となる問題は発生しない。また、タスク並列型マルチプロセッサシステムでは、代表プロセッサを介して外部機器のアクセスを行っていたが、実施の形態１にかかるＳＭＰシステムでは、プロセッサがそれぞれ外部機器コントローラと直接データの送受信を行う。そのため、実施の形態１にかかるＳＭＰシステムでは、タスク並列型マルチプロセッサにあったデータ送受信の遅延は発生しない。
【００５０】
従って、実施の形態１にかかるＳＭＰシステムによれば、外部機器のアクセス要求に対する割り込み応答時間を従来のＳＭＰシステムやタスク並列型マルチプロセッサよりも高速にすることが可能である。また、プロセッサに搭載されるＯＳはシングルプロセッサ向けＯＳであっても、外部機器へのアクセスが競合することはないため、一般的に利用されているシングルプロセッサ向けＯＳとシングルプロセッサ向けアプリケーションを、容易にマルチプロセッサシステムに移行することが可能である。さらに、実施の形態１にかかるＳＭＰシステムによれば、スヌープキャッシュなどのマルチプロセッサ向けのハードウェアを準備する必要がない。このことから、マルチプロセッサシステムを採用した装置の開発期間を短縮することが可能である。
【００５１】
また、本発明は上記実施の形態に限られたものではなく、適宜変更することが可能である。例えば、外部機器コントローラとプロセッサとの接続は、外部機器コントローラに対して、プロセッサのアクセスを排他制御する接続であっても良く、あるいは複数のプロセッサが同時にアクセス可能な接続となっていても良い。また、割り込みコントローラについても、外部機器コントローラと同様の接続が考えられる。さらに、待機プロセスはＯＳの遅延処理を利用しても良く、あるいは割り込み処理そのものを利用しても良い。
【００５２】
さらに、上記実施の形態ではＯＳが存在する環境を元に説明したが、ＯＳが存在しなくとも、アプリケーション層とドライバ層が分離、もしくは別個の処理として実装されているシステムであれば、実施の形態１においてＯＳとして記述した部分をドライバ層、もしくはそれを補助するソフトウェアとして読み替えることで、同様の装置あるいはシステムを構成することが可能である。
【００５３】
また、上記実施の形態では、各プロセッサ上の外部機器制御ドライバに排他制御のための手段を実装する実施の形態を述べたが、排他制御について特定のプロセッサ上で実施し割り込み通知先などを設定する実装の形態も取ることが可能である。
【図面の簡単な説明】
【００５４】
【図１】実施の形態１にかかる対称型マルチプロセッサシステムを示す図である。
【図２】実施の形態１にかかる外部機器コントローラとプロセッサのアクセス要求信号の経路を示す図である。
【図３】実施の形態１にかかる外部機器制御ドライバの組み込み動作のフローチャートを示す図である。
【図４】実施の形態１にかかる割り込みモードの割り込み処理動作のフローチャートを示す図である。
【図５】実施の形態１にかかる監視モードの割り込み処理動作のフローチャートを示す図である。
【図６】実施の形態１にかかる監視モードのタイマ割り込み監視動作のフローチャートを示す図である。
【図７】実施の形態１にかかる割り込み応答時間を示す図である。
【図８】従来のタスク並列型マルチプロセッサシステムを示す図である。
【図９】従来のタスク並列型マルチプロセッサシステムの割り込み応答時間を示す図である。
【符号の説明】
【００５５】
１０１−１〜１０１−ｎ    プロセッサＰ１〜Ｐｎ
１０２    主記憶装置
１０３    外部機器コントローラ
１０４    割り込みコントローラ
１１１    外部機器制御ドライバ
１１２    割り込み処理ドライバ
１１３    ドライバ間調停手段
１１４    待機プロセス
【図１】
2006338184.tif 000003
【図２】
2006338184.tif 000004
【図３】
2006338184.tif 000005
【図４】
2006338184.tif 000006
【図５】
2006338184.tif 000007
【図６】
2006338184.tif 000008
【図７】
2006338184.tif 000009
【図８】
2006338184.tif 000010
【図９】
2006338184.tif 000011