(57)【要約】【課題】矛盾なく効率的に割込を処理する割込制御装置を得ること。【解決手段】割込信号を受付けて割込要因として保持する割込受付部と、割込受付部が保持する割込要因の中からプロセッサに通知する割込要因を１つ選択する割込選択部と、割込受付部が保持する割込要因のうちプロセッサに既に通知した割込要因を通知済み割込要因として記録する通知済み割込要因記録部と、を備え、プロセッサから割込要因の通知要求を受け取ったとき、割込選択部は、割込受付部が保持する割込要因で通知済み割込要因記録部に記録されていない割込要因を１つ選択してプロセッサに通知するとともに、該通知した割込要因を通知済み割込要因記録部に記録する。【選択図】        図１
2009193525.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサを具備するコンピュータシステムに搭載され、周辺装置から発生する割込信号を受付け、前記プロセッサに割込信号を発生し、前記プロセッサからの通知要求に対してどの周辺装置から割込が発生しているかを特定するための割込要因を通知する割込制御装置であって、
周辺装置からの割込信号を受付けて割込要因として保持する割込受付部と、
前記割込受付部が保持する割込要因の中からプロセッサに通知する割込要因を１つ選択する割込選択部と、
前記割込受付部が保持する割込要因のうちプロセッサに既に通知した割込要因を通知済み割込要因として記録する通知済み割込要因記録部と、
を備え、
プロセッサから割込要因の通知要求を受け取ったとき、前記割込選択部は、前記割込受付部が保持する割込要因で前記通知済み割込要因記録部に記録されていない割込要因を１つ選択して前記プロセッサに通知するとともに、該通知した割込要因を前記通知済み割込要因記録部に記録する、
ことを特徴とする割込制御装置。
【請求項２】
前記割込受付部は、割込要因を受付けたとき、該割込要因を優先度と対応付けて保持し、
プロセッサから割込要因の通知要求を受け取ったとき、前記割込選択部は、前記割込受付部が保持する割込要因で前記通知済み割込要因記録部に記録されていない割込要因の中から優先度の最も高い割込要因を１つ選択して前記プロセッサに通知するとともに、該通知した割込要因を通知済みとして前記通知済み割込要因記録部に記録させる、
ことを特徴とする請求項１に記載の割込制御装置。
【請求項３】
割込要因と該割込要因の優先度との対応付けを保持する優先度テーブルをさらに有し、
プロセッサから割込要因の通知要求を受け取ったとき、前記割込選択部は、前記優先度テーブルを参照し、記割込受付部が保持する割込要因で前記通知済み割込要因記録部に記録されていない割込要因の中から優先度の最も高い割込要因を１つ選択して前記プロセッサに通知するとともに、該通知した割込要因を通知済みとして前記通知済み割込要因記録部に記録させる、
ことを特徴とする請求項１に記載の割込制御装置。
【請求項４】
前記優先度テーブルはプロセッサによって変更可能であることを特徴とする請求項３に記載の割込制御装置。
【請求項５】
所定の時間を計測するタイマをさらに有し、
前記割込選択部は、プロセッサに割込要因を通知したとき、前記タイマを起動するとともに、該通知した割込要因を通知済みとして前記通知済み割込要因に記録し、前記タイマが前記所定の時間の計測を終了すると、前記通知済み割込要因記録部に記録されている通知済み割込要因を消去する、
ことを特徴とする請求項１〜４の何れか１つに記載の割込制御装置。
【請求項６】
割込要因毎に異なるタイマを有し、
前記割込選択部は、プロセッサに割込要因を通知したとき、該通知した割込要因に対応する前記タイマを起動するとともに、該通知した割込要因を通知済みとして前記通知済み割込要因に記録させ、前記タイマが前記所定の時間の計測を終了すると、前記通知済み割込要因記録部に記録される情報のうち前記通知した割込要因に対応する情報を消去する、
ことを特徴とする請求項５に記載の割込制御装置。
【請求項７】
前記所定の時間は、タイマ毎にプロセッサにより変更可能であることを特徴とする請求項５または６に記載の割込制御装置。
【請求項８】
前記通知済み割込要因記録部に記録されている通知済み割込要因の記録は、プロセッサにより参照可能であることを特徴とする請求項１〜７の何れか１つに記載の割込制御装置。
【請求項９】
前記通知済み割込要因記録部に記録されている通知済み割込要因の記録は、プロセッサにより消去可能であることを特徴とする請求項１〜８の何れか１つに記載の割込制御装置。
【請求項１０】
前記割込受付部が保持している割込要因は、プロセッサが直接読み込むことが可能であることを特徴とする請求項１〜９の何れか１つに記載の割込制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上のプロセッサを具備するコンピュータシステムに搭載される割込制御装置に関するものである。
【背景技術】
【０００２】
コンピュータシステムにおいては、搭載された各種周辺装置等からの割込をプロセッサで適切に処理する必要がある。特に、近年、急速に普及しているマルチプロセッサシステムにおいては、搭載されている複数のプロセッサで、矛盾なく、より効率的に割込を処理することが求められている。
【０００３】
例えば、ある周辺装置からの割込に対し、複数のプロセッサで同時に割込処理を行ってしまうと正しく動作しないため、いずれかのプロセッサで排他的に割込処理を行わなければならない。
【０００４】
そのため、従来のこの種のコンピュータシステムでは、特定のプロセッサでのみ割込処理を行うか、各周辺装置からの割込を各プロセッサに重複しないように分割して通知することで、割込処理を複数のプロセッサで分散して行う方式が採られる場合があった。
【０００５】
しかしながら、この場合には、特定のプロセッサに割込処理が集中し、システム性能のボトルネックが生じるため、割込処理は複数のプロセッサで柔軟に行われることが好ましい。
【０００６】
そのための方策としては、各プロセッサの負荷状態や実行されているプログラムの優先度等を調べ、その結果から最も負荷の軽いプロセッサ等を選択し、そのプロセッサに割込を通知し、割込処理を行う方式があった(例えば特許文献１)。
【０００７】
また、全てのプロセッサに割込を通知し、最も早く応答したプロセッサが、何らかの排他制御手段でもって割込を取得し、割込処理を行う方式があった(例えば特許文献２)。
【０００８】
【特許文献１】特開平９−８１５２８号公報
【特許文献２】特開昭６１−１０３２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１に示されるような各プロセッサに割込を通知する方式では、各プロセッサに対して独立に割込を通知する手段およびどのプロセッサに割込を通知するかを選択する手段が必要となるので、装置が複雑となり規模が大きくなるという問題点があった。そして、プロセッサの数が変更となると、大掛かりな変更が必要となり、その都度作り直す必要があるという問題点があった。
【００１０】
また、特許文献２に示されるような全プロセッサに割込を通知する方式では、各プロセッサによる割込処理が競合しないようにするための排他制御手段を具備する必要があり、加えて、各プロセッサで実行される割込処理においては、具備された排他制御手段を使用するように作り込まないといけないという問題点があった。そして、各プロセッサで実行される割込処理で排他制御手段を使用する分、処理オーバーヘッドが増大するので、システム性能が劣化するという問題点があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、コンピュータシステムが複数のプロセッサを有する場合であっても、各プロセッサへの独立した割込通知および各プロセッサで実行される割込処理での排他制御を行わなくても、矛盾なく効率的に割込を処理する割込制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、１つ以上のプロセッサを具備するコンピュータシステムに搭載され、周辺装置から発生する割込信号を受付け、前記プロセッサに割込信号を発生し、前記プロセッサからの通知要求に対してどの周辺装置から割込が発生しているかを特定するための割込要因を通知する割込制御装置であって、周辺装置からの割込信号を受付けて割込要因として保持する割込受付部と、前記割込受付部が保持する割込要因の中からプロセッサに通知する割込要因を１つ選択する割込選択部と、前記割込受付部が保持する割込要因のうちプロセッサに既に通知した割込要因を通知済み割込要因として記録する通知済み割込要因記録部と、を備え、プロセッサから割込要因の通知要求を受け取ったとき、前記割込選択部は、前記割込受付部が保持する割込要因で前記通知済み割込要因記録部に記録されていない割込要因を１つ選択して前記プロセッサに通知するとともに、該通知した割込要因を前記通知済み割込要因記録部に記録する、ことを特徴とする。
【発明の効果】
【００１３】
この発明によれば、複数の割込要因を受付けている場合でも、プロセッサから割込要因の通知要求を受け取ったとき、未だプロセッサに通知していない割込要因を１つ選択して該プロセッサに通知し、該通知した割込要因を通知済みとして記録するように構成するので、コンピュータシステムが複数のプロセッサを有する場合であっても、各プロセッサには重複しない割込要因が通知され、各プロセッサへの独立した割込通知および各プロセッサで実行される割込処理での排他制御を行わなくても、矛盾なく効率的に割込を処理する割込制御装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかる割込制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
図１は、本発明にかかる実施の形態１の割込制御装置が適用されるコンピュータシステムの構成を示す図である。
【００１６】
図１において、実施の形態１のコンピュータシステム１００は、少なくとも１個（ここでは３個）のプロセッサ１１〜１３を有し、演算や割込処理を行うプロセッサ部１と、複数（ここでは５個）の周辺装置３１〜３５と、周辺装置３１〜３５から割込が発生したとき、割込信号４をプロセッサ部１に送信してプロセッサ１１〜１３に割込要因を参照させ、プロセッサ１１〜１３の何れか１つに割込を認識させる割込制御装置２と、から構成される。本発明の実施の形態１のコンピュータシステム１００を含めた一般的なコンピュータシステムはメモリ等の装置も具備されるが、本発明の実施の形態１のコンピュータシステム１００においては本質的な部分ではないので省略している。
【００１７】
割込制御装置２は、割込受付部２１、割込選択部２２、通知済み割込要因記録部２３、および割込要因レジスタ２４をさらに有する。
【００１８】
割込受付部２１は、周辺装置３１〜３５から割込信号を受付け、この割込信号の割込要因を受付けた割込要因として保持する。割込受付部２１が割込信号を受付けると、割込制御装置２は、この受付けた割込信号を割込信号４としてプロセッサ部１に送信する。
【００１９】
割込選択部２２は、受付けた割込要因のうち、プロセッサ１１〜１３から参照されたときに通知する割込要因を１つ選択し、割込要因レジスタ２４に割込要因を特定する値を設定する。プロセッサ部１が割込信号４を受付けると、プロセッサ１１〜１３がこの割込要因レジスタ２４を参照して、どの割込要因が発生しているかを読む。割込選択部２２は、プロセッサ１１〜１３のうちの１つが割込要因レジスタ２４に設定されている値を読むと、読まれた値の割込要因を通知済みとして割込要因レジスタ２４の値を元に戻すとともに、この割込要因が通知済みであることがわかるように通知済み割込要因記録部２３の値を設定する。そして、割込選択部２２は、割込要因レジスタ２４に受付けた割込要因のうちのまだ通知されていない割込要因があれば、１つ選択して割込要因レジスタ２４の値を設定する。
【００２０】
プロセッサ１１〜１３のうちの１つによる割込要因の割込処理が終わり、該割込要因を発生した周辺装置３１〜３５から該割込がクリアされると、割込選択部２２は、受付けた割込要因および通知済み割込要因記録部２３の該割込要因に該当する部分の値を元に戻す。
【００２１】
ここで、割込選択部２２により割込要因レジスタ２４の値が決定される様子をより具体的に説明する。図２は、割込選択部２２により割込要因レジスタ２４の値が決定される様子を説明する図である。
【００２２】
図２において、割込要因受付部２１が受付けた割込要因においては、各周辺装置から割込信号が入力され、それを割込受付部２１で受け付けた場合を１、各周辺装置から割込信号が入力されていない場合は０で表している。ここでは、一例として、周辺装置３１、３２、３４から割込信号が入力されており、周辺装置３３、３５からは割込信号が入力されていないことを意味している。なお、割込信号が入力されている場合を０、入力されていない場合を１としてもかまわない。
【００２３】
通知済み割込要因記録部２３が記録している通知済み割込要因においては、プロセッサ１１〜１３のうちの１つが割込要因レジスタ２４を参照し、周辺装置３１〜３５のうちのどの周辺装置から割込が発生しているかを認識した場合を１、まだ認識していない場合を０で表している。ここでは、一例として、周辺装置３１から割込信号が入力されていることを認識しており、他の周辺装置３２〜３５からの割込信号はまだ認識していないことを意味している。なお、プロセッサが認識している場合を０、認識していない場合を１としてもかまわない。
【００２４】
未通知の割込要因においては、プロセッサ１１〜１３のうちのいずれのプロセッサも認識していない周辺装置からの割込信号がある場合を１、そうでない場合を０で表している。すなわち、受付けた割込要因が１であり、かつ、通知済み割込要因記録部２３が０である場合に１となり、他の場合は０と表される。ここでは、周辺装置３２、３４からの割込信号がまだプロセッサ１１〜１３で認識されていないこととなるので、ここが１となり、他は０となっている。なお、まだプロセッサが認識していない周辺装置からの割込信号を０、そうでない場合を１としてもかまわない。
【００２５】
割込要因レジスタ２４においては、プロセッサに通知したい周辺装置からの割込信号がある場合を１、そうでない場合を０で表している。ここでは、未通知となっている周辺装置３２、３４からの割込信号のうち、周辺装置３２からの割込信号をプロセッサに通知したいと判断し、割込要因レジスタに設定したことを意味している。
【００２６】
このように、割込選択部２２は、割込受付部２１で受け付けた各周辺装置からの割込信号に対して、通知済み割込要因記録部２３に記録している既にプロセッサに通知した割込要因を参照し、未通知である割込要因を抜き出し、未通知の割込要因が複数あればそのうちのいずれか１つを選択して、割込要因レジスタ２４に設定する。
【００２７】
次に、以上のように構成される実施の形態１のコンピュータシステム１００の、周辺装置３１〜３５からの割込をプロセッサ１１〜１３のいずれか１つに処理させる動作を、具体的なシナリオの例に沿って説明する。図３は、実施の形態１のコンピュータシステム１００の割込を処理させる動作を具体的に説明する図である。
【００２８】
図３において、受付けた割込要因、通知済み割込要因記録部２３に記録される通知済み割込要因、割込要因レジスタ２４の各値は、図２の下４桁、すなわち、周辺装置３１、３２、３３、３４にて発生した割込要因の様子を抜粋して示している。
【００２９】
まず、初期状態では、割込が全く発生していない状態であり、受付けた割込要因、通知済み割込要因、および割込要因レジスタ２４の値は全て「００００」となっている（図中シナリオ欄番号１）。ここで、周辺装置３１から割込が発生したとすると、受付けた割込要因は「０００１」に変化する（図中シナリオ欄番号２）。この時、まだプロセッサ１１〜１３には通知していないため、通知済み割込要因は「００００」のまま変化しない。その結果、割込要因レジスタ２４の値は「０００１」に設定される。
【００３０】
周辺装置３１から割込が発生したことで、割込信号４がプロセッサ部１に出力され、プロセッサ１１〜１３は割込が発生したことを認識する。これにより、プロセッサ１１〜１３はどの割込要因が発生したかを調べるため、割込要因レジスタ２４を参照しようとする。
【００３１】
ここで、仮にプロセッサ１１が最も早く割込に応答し、割込要因レジスタ２４を参照したとすると、プロセッサ１１には割込要因レジスタ２４の値として「０００１」が参照される。その結果、プロセッサ１１は、周辺装置３１からの割込要因を認識し、その割込処理を開始する。
【００３２】
一方で、割込選択部２２においては、プロセッサ１１により割込要因レジスタ２４が参照されたので、そのときの値「０００１」を通知済み割込要因に反映し、結果として、通知済み割込要因は「０００１」となり、さらに割込要因レジスタ２４は「００００」に設定される（図中シナリオ欄番号３）。
【００３３】
そのため、プロセッサ１１よりも遅く割込に応答したプロセッサ１２、１３が割込要因レジスタ２４を参照すると、その値として「００００」が参照され、処理すべき割込がないため、割込処理は行われない。
【００３４】
プロセッサ１１での割込処理が終わり、周辺装置１１からの割込がクリアされると、受付けた割込要因は「００００」に戻り、同時に通知済み割込要因も「００００」に戻る（図中シナリオ欄番号４）。
【００３５】
続いて、周辺装置３２から割込が発生し、プロセッサが応答する前にすかさず周辺装置３４から割込が発生したとする。この場合は、受付けた割込要因は、周辺装置３２から割込が発生した時点で「００１０」となり（図中シナリオ欄番号５）、周辺装置３４から割込が発生した時点で「１０１０」と変化する（図中シナリオ欄番号６）。通知済み割込要因は「００００」で変わらない。割込要因レジスタ２４は、周辺装置３２から割込が発生した時点で「００１０」となり（図中シナリオ欄番号５）、周辺装置３４から割込が発生した時点では「００１０」のまま変わらない（図中シナリオ欄番号６）。
【００３６】
周辺装置３２から割込が発生した時点で、プロセッサ部１には割込信号４が出力され、プロセッサ１１〜１３は割込が発生したことを認識する。これにより、プロセッサ１１〜１３はどの周辺装置からの割込が発生したかを調べるため、割込要因レジスタ２４を参照しようとする。
【００３７】
ここで、仮にプロセッサ１１が最も早く割込に応答し、割込要因レジスタ２４を参照したとすると、プロセッサ１１には割込要因レジスタ２４の値として「００１０」が参照される。その結果、プロセッサ１１は、周辺装置３２から割込が発生していることを認識し、その割込処理を開始する。
【００３８】
一方で、割込選択部２２においては、プロセッサ１１により割込要因レジスタ２４が参照されたので、そのときの値「００１０」を通知済み割込要因に反映し、結果として、通知済み割込要因は「００１０」となり、割込要因レジスタ２４には、残りの未通知である周辺装置３４の割込信号が反映され「１０００」に設定される（図中シナリオ欄番号７）。
【００３９】
プロセッサ１１に次いで、仮にプロセッサ１２が割込に応答したとすると、プロセッサ１２には割込要因レジスタ２４の値として「１０００」が参照される。その結果、プロセッサ１２は、周辺装置３４から割込が発生していることを認識し、その割込処理を開始する。
【００４０】
割込選択部２２においては、プロセッサ１２により割込要因レジスタ２４が参照されたので、そのときの値「１０００」を通知済み割込要因に反映し、結果として、通知済み割込要因は「１０１０」となり、割込要因レジスタには、残りの未通知である割込要因はないので「００００」に設定される（図中シナリオ欄番号８）。
【００４１】
そのため、残りのプロセッサが割込要因レジスタ２４を参照しても、その値として「００００」が参照され、処理すべき割込がないため、割込処理は行われない。
【００４２】
プロセッサ１１での割込処理が終わり、周辺装置３２からの割込がクリアされると、受付けた割込要因は「１０００」に変化し、同時に通知済み割込要因も「１０００」に変化させる（図中シナリオ欄番号９）。
【００４３】
ここで、周辺装置３３から割込が発生したとすると、受付けた割込要因は「１１００」に変化する。通知済み割込要因は「１０００」のまま変化しない。その結果、割込要因レジスタ２４は「０１００」に設定される（図中シナリオ欄番号１０）。
【００４４】
周辺装置３３から割込が発生したことで、再び割込信号４が出力され、プロセッサ１１〜１３は割込が発生したことを認識する。ここで、仮にプロセッサ１３が最も早く割込に応答し、割込要因レジスタ２４を参照したとすると、プロセッサ１３には割込要因レジスタ２４の値として「０１００」が参照され、周辺装置３３から割込が発生していることを認識し、その割込処理を開始する。
【００４５】
割込選択部２２においては、プロセッサ１３により割込要因レジスタ２４が参照されたので、そのときの値「０１００」を通知済み割込要因に反映し、結果として、通知済み割込要因は「１１００」となり、さらに割込要因レジスタは「００００」に設定される（図中シナリオ欄番号１１）。
【００４６】
他のプロセッサは、割込要因レジスタ２４を参照しても、その値として「００００」が参照され、処理すべき割込がないため、割込処理は行わない。
【００４７】
この後、プロセッサ１２での割込処理が終わり、周辺装置３４からの割込がクリアされると、受付けた割込要因は「０１００」に変化し、同時に通知済み割込要因も「０１００」に変化させる（図中シナリオ欄番号１２）。次いで、プロセッサ１３での割込処理が終わり、周辺装置３３からの割込がクリアされると、受付けた割込要因は「００００」に戻り、同時に通知済み割込要因も「００００」に戻る（図中シナリオ欄番号１３）。
【００４８】
このように、本実施の形態１によれば、複数の割込要因を受付けている場合でも、プロセッサから割込要因の読み出し要求を受け取ったとき、未だプロセッサに通知していない割込要因を１つ選択して該プロセッサに通知し、該通知した割込要因を通知済みとして記録するように構成するので、コンピュータシステムが複数のプロセッサを有する場合であっても、各プロセッサには重複しない割込要因が通知され、各プロセッサへの独立した割込通知および各プロセッサで実行される割込処理での排他制御を行わなくても、矛盾なく効率的に割込を処理する割込制御装置を得ることができる。すなわち、各プロセッサへの独立した割込通知は不要であるから、プロセッサの数が変更になった場合であっても、各プロセッサに割込を通知するための割込信号やその制御回路を作り変えることはなく、そのままの構成で使用することができる。また、各プロセッサで実行される割込処理での排他制御は不要であるから、排他制御に伴う処理オーバーヘッドは発生しないので、システム性能は劣化しない。
【００４９】
実施の形態２．
本発明の実施の形態２においては、割込要因に優先順位を設定し、未通知の割込要因が複数ある場合に、割込選択部２２が最も優先度の高い割込要因を選択して割込要因レジスタ２４に設定することが特徴となっている。
【００５０】
実施の形態２の割込制御装置においては、割込受付部２１に保持される受付けた割込要因、通知済み割込要因記録部２３が記録する通知済み割込要因、割込要因レジスタ２４について、各周辺装置３１〜３５の割込信号に対応する値を格納する場所を、優先順位がより高い周辺装置が右側に来るように配置する。例えば、各周辺装置３１〜３５からの割込要因の優先度は、高い方から順に、周辺装置３４からの割込要因、周辺装置３２からの割込要因、周辺装置３１からの割込要因、周辺装置３３からの割込要因、周辺装置３５からの割込要因であったとすると、値の配列方法は、図４に示すように、各要因およびレジスタ２４において、優先度の高いものから順に、予め最下位(右側)から配置される。
【００５１】
そして、割込選択部２２は、未通知の割込要因が複数ある場合、下位側(右側)の割込要因を選択するように構成する。その結果、割込選択部２２は、常により優先度の高い割込要因を選択することとなる。
【００５２】
なお、ここでは、優先度の高いものから順に、下位(右側)から並べておくこととしたが、上位(左側)から並べておき、上位側(左側)の割込信号を選択するように構成するようにしてもなんら問題ない。
【００５３】
また、割込選択部２２は、より優先度の高い割込が発生した場合は、プロセッサによる割込要因レジスタ２４の参照に競合しない範囲で、割込要因レジスタ２４の値を再設定するように構成してもよい。
【００５４】
例えば、上記実施の形態１においては、周辺装置３２から割込が発生した後、プロセッサが割込要因レジスタ２４を参照する前に、周辺装置３４から割込が発生した時、割込要因レジスタ２４の値は「００１０」のまま変更していないが、これをより優先度の高い周辺装置３４からの割込を伝えるために「１０００」に変更するように構成する。（図４のように配置した場合は「００１０」から「０００１」に変更する。）
【００５５】
このように、実施の形態２によれば、実施の形態１の割込制御装置により得られる効果に加えて、より優先度の高い割込から順にプロセッサで処理されるようになるという効果が得られる。
【００５６】
実施の形態３．
本発明の実施の形態３においては、各周辺装置からの割込要因に対する優先度を定義した優先度テーブルを具備し、割込選択部２２は、その優先度テーブルを参照し、優先順位の高い割込を割込要因レジスタ２４に設定することが特徴である。
【００５７】
図５は、本発明の実施の形態３における割込制御装置の構成を示す図である。図５においては、割込制御装置２は、実施の形態１および２の割込制御装置２の構成に加えて、周辺装置３１〜３５の割込要因の優先度が記述されている優先度テーブル２５を有する。割込選択部２２は、プロセッサ１１〜１３に未通知の割込要因が複数ある場合は、優先度テーブル２５を参照し、より高い優先度の割込要因を選択して、割込要因レジスタ２４に設定する。
【００５８】
図６は、優先度テーブル２５の一例を示したものである。このように、優先度テーブル２５には、割込要因の優先度が保持されている。この例では、実施の形態１に引き続いて、各周辺装置３１〜３５は夫々１つの割込要因を発生し、割込要因の優先度は、数字が小さいものほど優先度が高いものとし、周辺装置３４からの割込要因が最も優先度が高く、以下、周辺装置３２、３３、３１、３５と続くようにしている。
【００５９】
なお、優先度テーブル２５の構成は、優先度が判るようになっていればどのような構成の優先度テーブルであってもよい。優先度は数値が大きいものを優先度が高いとしてもかまわないし、単に優先度順に割込信号を並べたものであってもかまわない。
【００６０】
また、割込要因の優先度は重複しない、すなわち複数の割込要因に同じ優先度を設定しないことが望ましいが、複数の割込信号に同じ優先度を設定してもかまわない。この場合は、プロセッサに未通知の割込信号が複数あり、かつ、それらが同じ優先度である場合、いずれか１つの割込信号を何らかの方法で選択し、割込要因レジスタ２４に設定するように構成する。
【００６１】
複数の同じ優先度である割込信号からいずれか１つを選択する方法については、ここでは限定しないが、例えば、優先度テーブル２５の上位に定義されているものを選択する、下位に定義されているものを選択する、先に割込が発生した方を選択する、後から割込が発生した方を選択する、割込の発生頻度や周期などから選択するなど、種々の方法が考えられる。
【００６２】
このように、実施の形態３によれば、割込要因に対する優先度を定義した優先度テーブル２５を具備し、割込選択部２２は、その優先度テーブル２５を参照し、優先順位の高い割込を割込要因レジスタ２４に設定するようにしたので、優先度テーブルの内容を変更するのみで各周辺装置３１〜３５からの割込信号の優先度を簡単に変更できるので、実施の形態２の割込制御装置に比べて、システムの動作に合わせてより柔軟により最適な割込の優先度を設定することができるという効果が得られる。
【００６３】
実施の形態４．
ところで、本発明の実施の形態３の割込制御装置では、優先度テーブル２５を具備することによって各周辺装置３１〜３５からの割込信号の優先度を設定するようにしたが、本実施の形態４の割込制御装置においては、この優先度テーブル２５をプロセッサ１１〜１３から変更できるようにする。プロセッサ１１〜１３からの変更を可能とすることで、システムの動作に合わせて動的に割込の優先度を設定することができるようになる。
【００６４】
実施の形態５．
本発明の実施の形態５の割込制御装置は、割込選択部２２が、ある時間が経過したら、通知済み割込要因記録部２３の内容をクリアし、各周辺装置３１〜３５からの割込要因を再度プロセッサ１１〜１３に通知する。
【００６５】
図７は、この発明の実施の形態５における割込制御装置２の構成図である。図７において、割込制御装置２はタイマ２６を備え、割込選択部２２は、タイマ２６にてある時間が経過したことを認識すると、通知済み割込要因記録部２３の内容をクリアし、割込要因レジスタ２４の値を再設定する。
【００６６】
割込選択部２２は、プロセッサ１１〜１３が割込要因レジスタ２４を参照すると、その内容を通知済み割込要因記録部２３に反映し、割込要因レジスタ２４の値を設定する。同時にタイマ２６を起動する。
【００６７】
タイマ２６は、予め設定された時間経過すると、割込選択部２２に通知する。割込選択部２２は、タイマ２６からの通知を受けると、通知済み割込要因記録部２３の内容をクリアする。通知済み割込要因をクリアしたことで、割込受付部２１で受け付けている各周辺装置からの割込要因のうち、これまでは通知済みとして割込要因レジスタ２４に設定していなかったものも再度割込要因レジスタ２４に設定可能とする。
【００６８】
割込選択部２２は、タイマ２６からの通知を受け、通知済み割込要因記録部２３の内容をクリアすると、改めて未通知の割込要因を調べ直し、そのうちのいずれか１つを割込要因レジスタ２４に設定する。
【００６９】
このように、実施の形態５によれば、実施の形態１による割込制御装置によって得られる効果に加えて、割込処理を実行しているプロセッサ１１〜１３に何らかの障害が発生した場合であっても、別のプロセッサにて改めて割込処理を開始することができ、システムの稼働率を高くすることができるという効果が得られる。
【００７０】
実施の形態６．
実施の形態５の割込制御装置は、タイマ２６を具備し、割込選択部２２はこのタイマ２６によりある時間が経過したら通知済み割込要因記録部２３の内容をクリアするとしたが、周辺装置３１〜３５の割込要因毎に夫々異なるタイマを有するようにしてもよい。
【００７１】
そこで、本発明の実施の形態６の割込制御装置は、各周辺装置３１〜３５からの割込要因毎に夫々異なるタイマを備える。割込選択部２２は、プロセッサ１１〜１３が割込要因レジスタ２４を参照すると、その内容を通知済み割込要因記録部２３が記録する通知済み割込要因に反映し、かつ、その内容で示されている周辺装置からの割込要因用に用意されたタイマ２６を起動する。
【００７２】
割込選択部２２は、タイマ２６からの通知を受けると、そのタイマと対応付けられている割込要因のみを、通知済み割込要因記録部２３に記録されている通知済み割込要因の内容からクリアする。別の周辺装置からの割込要因については、通知済み割込要因記録部２３に記録されている通知済み割込要因の内容からはクリアしない。
【００７３】
このように、実施の形態６によれば、実施の形態５による割込制御装置に比べて、プロセッサ１１〜１３の障害等に対して、より柔軟性の高いコンピュータシステムを得ることができるという効果が得られる。
【００７４】
実施の形態７．
また、上記タイマ２６は、起動してから割込選択部２２に通知するまでの時間、すなわちタイムアウト時間を、プロセッサ１１〜１３から設定、変更できるように構成されてもよい。そこで、本発明の実施の形態７の割込制御装置は、タイムアウト時間をプロセッサ１１〜１３から設定できるようにする。
【００７５】
このように、実施の形態７によれば、システムの動作に応じて、プロセッサ１１〜１３により動的にタイマのタイムアウト時間を変更できるようにしたので、実施の形態６による割込制御装置に比べて、プロセッサの障害等に対して、さらに柔軟性の高いコンピュータシステムを得ることができる。
【００７６】
実施の形態８．
また、通知済み割込要因記録部２３を、プロセッサから参照できるように構成してもよい。実施の形態８の割込制御装置においては、プロセッサ１１〜１３は通知済み割込要因記録部２３を参照する。
【００７７】
このように、実施の形態８によれば、他のプロセッサにより割込処理が行われている各周辺装置からの割込信号についても知ることができるので、実施の形態１の割込制御装置に比べて、プロセッサの障害等に対して、より柔軟性の高いコンピュータシステムを得ることができる。
【００７８】
実施の形態９．
また、通知済み割込要因記録部２３を、プロセッサ１１〜１３からクリアすることができるように構成してもよい。実施の形態９による割込制御装置は、プロセッサ１１〜１３が、何らかの手段により、他のプロセッサの障害等を検出した場合、通知済み割込要因記録部２３をクリアする。割込選択部２２は、プロセッサ１１〜１３による通知済み割込要因記録部２３のクリアによって、改めて割込要因レジスタ２４の値を設定し直す。プロセッサは更新された割込要因レジスタ２４を参照することで、これまで通知済みとなっており参照できなかった割込要因を参照することができ、その割込処理を開始することができる。
【００７９】
このように、実施の形態９によれば、システムの動作に応じて、プロセッサ１１〜１３により動的に通知済み割込要因記録部２３に記録される通知済み割込要因をクリアできるようにしたので、実施の形態１の割込制御装置に比べて、プロセッサ１１〜１３の障害等に対して、より柔軟性の高いコンピュータシステムを得ることができる。
【００８０】
実施の形態１０．
実施の形態１０の割込制御装置は、割込受付部２１で受け付けている全ての周辺装置３１〜３５からの割込要因をプロセッサ１１〜１３から参照できるように構成されている。この場合、通知済み割込要因記録部２３は更新してもよいし、更新しないようにしてもよい。
【００８１】
プロセッサ１１〜１３は、割込選択部２２により選択された未通知の割込要因を割込要因レジスタ２４から取得できると共に、割込受付部２１で受け付けている周辺装置３１〜３５からの全ての割込要因を取得できることで、より多岐に渡る割込処理を実現しうる。
【００８２】
例えば、ある用途においては、各プロセッサ１１〜１３で処理すべき割込要因を固定にすることも可能である。この場合は、各プロセッサ１１〜１３は直接割込受付部２１で受け付けている全ての割込要因を取得し、自身で処理すべき割込要因が発生していないかを確認すればよい。
【００８３】
例えば、ある一部の割込要因は特定のプロセッサで処理されるようにし、他の割込要因はいずれかのプロセッサで処理するように構成することも可能である。この場合は、各プロセッサ１１〜１３は、まず、割込受付部２１で受け付けている全ての割込要因を取得し、自身で処理すべき割込要因が発生していないかを確認し、発生していればその割込要因に対する割込処理を行い、発生していなければ、割込要因レジスタ２４を参照し、それで得られた割込要因に対する割込処理を行うようにすればよい。
【００８４】
このように、実施の形態１０によれば、割込受付部２１で受け付けている全ての周辺装置３１〜３５からの割込要因をプロセッサ１１〜１３から参照できるように構成したので、実施の形態１による割込制御装置に比べて、システムの動作に応じた、より柔軟性の高いコンピュータシステムを得ることができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態１による割込制御装置を適用したコンピュータシステムの構成を示す図である。
【図２】割込要因レジスタの値が決定される様子を示す図である。
【図３】本発明の実施の形態１による割込制御装置の動作を説明する図である。
【図４】本発明の実施の形態２による割込制御装置の割込要因レジスタの値が決定される様子を示す図である。
【図５】本発明の実施の形態３である割込制御装置の構成を示す図である。
【図６】優先度テーブルの構成例を示す図である。
【図７】本発明の実施の形態５による割込制御装置の構成を示す図である。
【符号の説明】
【００８６】
１  プロセッサ部
２  割込制御装置
４  割込信号
１１〜１３  プロセッサ
２１  割込受付部
２２  割込選択部
２３  通知済み割込要因記録部
２４  割込要因レジスタ
２５  優先度テーブル
２６  タイマ
３１〜３５  周辺装置
１００  コンピュータシステム
【図１】
2009193525.tif 000003
【図２】
2009193525.tif 000004
【図３】
2009193525.tif 000005
【図４】
2009193525.tif 000006
【図５】
2009193525.tif 000007
【図６】
2009193525.tif 000008
【図７】
2009193525.tif 000009