(57)【要約】【課題】一つの割り込み要求を共用する複数の割り込み要因を異なったプロセッサで処理することが可能な技術を提供する。【解決手段】割り込みコントローラ５は、複数の割り込み要因で共用される割り込み要求ＩＲＱ１が通知されると当該割り込み要求ＩＲＱ１を出力する。割り込みコントローラ５が出力する割り込み要求ＩＲＱ１は、プロセッサ１，２のいずれか一つに受け付けられる。割り込み要求ＩＲＱ１を受け付けたプロセッサは、自身が処理すべき割り込み要因が発生しているかどうかを判定し、当該割り込み要因が発生している場合には割り込み処理を実行し、当該割り込み要因が発生していない場合には、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち他の割り込み要因を処理する他のプロセッサに対して割り込み要求ＩＲＱ１の発生を通知する。【選択図】図１
2008176360.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
複数の割り込み要因で共用される割り込み要求が通知されると、当該割り込み要求を出力する割り込みコントローラと
を備え、
前記割り込みコントローラから出力される前記割り込み要求は、前記複数のプロセッサのいずれか一つに受け付けられ、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生しているかどうかを判定し、当該割り込み要因が発生している場合には当該割り込み要因に応じた割り込み処理を実行し、当該割り込み要因が発生していない場合には、他の前記割り込み要因を処理する他の前記プロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムであって、
前記複数の割り込み要因のそれぞれには、処理の優先度を示す割り込み優先度が割り当てられており、
前記複数の割り込み要因のうち前記割り込み優先度が最も高い割り込み要因を処理する前記プロセッサが、前記割り込みコントローラから出力される前記割り込み要求を受け付ける、マルチプロセッサシステム。
【請求項３】
請求項１に記載のマルチプロセッサシステムであって、
前記複数のプロセッサのそれぞれには、割り込み処理を実行させる優先度を示すプロセッサ優先度が割り当てられており、
前記複数の割り込み要因を処理する前記プロセッサのうち前記プロセッサ優先度が最も高いプロセッサが、前記割り込みコントローラから出力される前記割り込み要求を受け付ける、マルチプロセッサシステム。
【請求項４】
請求項１に記載のマルチプロセッサシステムであって、
前記複数の割り込み要因のそれぞれには、処理の優先度を示す割り込み優先度が割り当てられており、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生していない場合には、他の前記割り込み要因のうち前記割り込み優先度が最も高い割り込み要因を処理する前記プロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【請求項５】
請求項１に記載のマルチプロセッサシステムであって、
前記複数のプロセッサのそれぞれには、割り込み処理を実行させる優先度を示すプロセッサ優先度が割り当てられており、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生していない場合には、他の前記割り込み要因を処理する他の前記プロセッサのうち前記プロセッサ優先度が最も高いプロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【請求項６】
請求項２に記載のマルチプロセッサシステムであって、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生していない場合には、他の前記割り込み要因のうち前記割り込み優先度が最も高い割り込み要因を処理する前記プロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【請求項７】
請求項３に記載のマルチプロセッサシステムであって、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生していない場合には、他の前記割り込み要因を処理する他の前記プロセッサのうち前記プロセッサ優先度が最も高いプロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【請求項８】
複数のプロセッサと、
複数の割り込み要因で割り込み要求が通知されると、当該割り込み要求を出力する割り込みコントローラと
を備え、
前記割り込みコントローラから出力される前記割り込み要求は、前記複数のプロセッサのいずれか一つに受け付けられ、
前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生しているかどうかを判定し、当該割り込み要因が発生している場合には当該割り込み要因に応じた割り込み処理を実行し、当該割り込み要因が発生していない場合には、他の前記プロセッサに対して前記割り込み要求の発生を通知する、マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備えるマルチプロセッサシステムに関する。
【背景技術】
【０００２】
複数のプロセッサを備えるマルチプロセッサシステムに関して、従来から様々な技術が提案されている。例えば特許文献１には、バス共有型マルチプロセッサシステムにおける割り込み処理の負荷分散を図り、システム性能を向上させる技術が開示されている。また、特許文献２〜５にもマルチプロセッサシステムでの割り込み処理に関する技術が開示されている。
【０００３】
一方で、複数の割り込み要因が一つの割り込み要求を共用する技術、言い換えれば、割り込み要求を伝達する信号線を、割り込み要因が発生する複数の装置で共用する技術が、ＰＣＩ（Peripheral Components Interconnect）バスを有するマルチプロセッサシステムなどにおいて利用されている。
【０００４】
【特許文献１】特開平５−３２４５６９号公報
【特許文献２】特開平８−３６４９８号公報
【特許文献３】特開平９−２１２４７２号公報
【特許文献４】特開２００１−２３６２３８号公報
【特許文献５】特開２００５−１８２１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のマルチプロセッサシステムにおいては、複数の割り込み要求を異なったプロセッサに割り当てることは可能であったが、複数の割り込み要因が一つの割り込み要求を共用している場合には、当該複数の割り込み要因は一つのプロセッサでしか処理することができなかった。したがって、複数の割り込み要因を異なったプロセッサで処理するためには、当該複数の割り込み要因のそれぞれに対して個別に割り込み要求を割り当てる必要がある。その結果、割り込み要求の種類が増加することになり、当該割り込み要求を伝達する信号線の本数が増加する。
【０００６】
そこで、本発明は上述の問題に鑑みて成されたものであり、一つの割り込み要求を共用する複数の割り込み要因を異なったプロセッサで処理することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明のマルチプロセッサシステムは、複数のプロセッサと、複数の割り込み要因で共用される割り込み要求が通知されると、当該割り込み要求を出力する割り込みコントローラとを備え、前記割り込みコントローラから出力される前記割り込み要求は、前記複数のプロセッサのいずれか一つに受け付けられ、前記割り込み要求を受け付けた前記プロセッサは、自身が処理すべき前記割り込み要因が発生しているかどうかを判定し、当該割り込み要因が発生している場合には当該割り込み要因に応じた割り込み処理を実行し、当該割り込み要因が発生していない場合には、他の前記割り込み要因を処理する他の前記プロセッサに対して前記割り込み要求の発生を通知する。
【発明の効果】
【０００８】
この発明のマルチプロセッサシステムによれば、複数の割り込み要因で共用される割り込み要求を受け付けたプロセッサは、当該複数の割り込み要因のうち、自身が処理すべき割り込み要因が発生している場合には当該割り込み要因に応じた割り込み処理を実行し、当該割り込み要因が発生していない場合には、他の割り込み要因を処理する他のプロセッサに対して割り込み要求の発生を通知するため、当該他のプロセッサは、割り込みコントローラからの割り込み要求を受け付けずに、自身が処理すべき割り込み要因を処理することができる。よって、一つの割り込み要求を共用する複数の割り込み要因を異なったプロセッサで処理することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は本発明の実施の形態１に係るマルチプロセッサシステムの構成を示すブロック図である。図１に示されるように、本実施の形態１に係るマルチプロセッサシステムは、それぞれが割り込み機能を有する複数のプロセッサ１〜３と、プロセッサ１〜３に対して割り込み要求を通知する割り込みコントローラ５と、割り込み情報記憶部６と、複数のＩＯ装置１１〜１３とを備えている。
【００１０】
プロセッサ１〜３は、それらの間を直接接続する通信ライン４を利用して、互いに情報の受け渡しを行うことができる。ＩＯ装置１１〜１３は、例えば、シリアルＩ／Ｏポート、パラレルＩ／Ｏポート、タイマ、あるいはＤＲＡＭコントローラであって、それぞれにおいて割り込み要因が発生する。例えば、ＩＯ装置１１がタイマであるとすると、当該ＩＯ装置１１での一定時間のカウント終了が、当該ＩＯ装置１１で発生する割り込み要因となる。
【００１１】
ＩＯ装置１１〜１３のそれぞれは、割り込み要因が発生すると、割り込み要求を出力する。ＩＯ装置１１，１２は、自身が出力する割り込み要求を割り込みコントローラ５に伝達する信号線ＳＬを共用しており、ＩＯ装置１１，１２から出力された割り込み要求は、信号ラインＳＬを伝達してそれぞれ割り込み要求ＩＲＱ１として割り込みコントローラ５に入力される。したがって、ＩＯ装置１１で割り込み要因が発生した場合でも、ＩＯ装置１２で割り込み要因が発生した場合でも、割り込みコントローラ５には割り込み要求ＩＲＱ１が通知される。このように、本実施の形態１では、割り込みコントローラ５に入力される割り込み要求ＩＲＱ１は、ＩＯ装置１１，１２で発生する複数の割り込み要因で共用されている。したがって、割り込みコントローラ５は、割り込み要求ＩＲＱ１が通知されただけでは、ＩＯ装置１１，１２のどちらで割り込み要因が発生したかを把握することができない。
【００１２】
一方で、ＩＯ装置１３から出力される割り込み要求は、割り込み要求ＩＲＱ２としてそのまま割り込みコントローラ５に入力される。したがって、割り込みコントローラ５に通知される割り込み要求ＩＲＱ２は複数の割り込み要因で共用されていない。
【００１３】
本実施の形態１に係るマルチプロセッサシステムでは、ＩＯ装置１１〜１３で発生する割り込み要因に１〜３番の割り込み要因番号がそれぞれ割り当てられており、割り込み要求ＩＲＱ１，ＩＲＱ２に１及び２番の割り込み要求番号がそれぞれ割り当てられている。そして、プロセッサ１〜３に１〜３番のプロセッサ番号がそれぞれ割り当てられている。
【００１４】
本実施の形態１では、１番のプロセッサ１が１番の割り込み要因を処理し、２番のプロセッサ２が２番の割り込み要因を処理し、３番のプロセッサ３が３番の割り込み要因を処理する。つまり、プロセッサ１〜３がＩＯ装置１１〜１３で発生した割り込み要因をそれぞれ処理する。そして、上述のように、ＩＯ装置１１，１２で割り込み要因が発生すると割り込み要求ＩＲＱ１が割り込みコントローラ５に通知され、ＩＯ装置１３で割り込み要因が発生すると割り込み要求ＩＲＱ２が割り込みコントローラ５に通知される。したがって、１番の割り込み要因は１番の割り込み要求ＩＲＱ１及び１番のプロセッサ１に対応し、２番の割り込み要因は１番の割り込み要求ＩＲＱ１及び２番のプロセッサ２に対応し、３番の割り込み要因は２番の割り込み要求ＩＲＱ２及び３番のプロセッサ３に対応する。本実施の形態１に係る割り込み情報記憶部６では、割り込み要因番号、割り込み要求番号及びプロセッサ番号の対応関係を示すテーブルが割り込み情報ＩＩＦとして記憶される。図２は当該割り込み情報ＩＩＦを示す図である。
【００１５】
割り込みコントローラ５は、割り込み情報ＩＩＦを参照して、通知された割り込み要求の番号に対応する番号のプロセッサに対して当該割り込み要求を出力する。本例では、割り込みコントローラ５は、割り込み要求ＩＲＱ１をプロセッサ１，２に出力し、割り込み要求ＩＲＱ２をプロセッサ３に出力する。プロセッサ１〜３のそれぞれは、入力された割り込み要求を受け付けると、自身が処理すべき割り込み要因に応じた割り込み処理を実行する。なお、プロセッサ１〜３のそれぞれは、自身に対して割り込み要求を出力するか否かを割り込みコントローラ５に対して設定することができる。
【００１６】
次に、本実施の形態１に係るプロセッサ１，２における割り込み処理を実行するまでの動作について詳細に説明する。図３はプロセッサ１，２の動作を示すフローチャートである。プロセッサ１，２は互いに同様の動作を行うため、以下ではプロセッサ１の動作を中心に説明する。
【００１７】
図３に示されるように、まずステップｓ１において、プロセッサ１は、割り込みコントローラ５から自身に対して割り込み要求が通知されるように当該割り込みコントローラ５を設定する。次に、ステップｓ２において、プロセッサ１は、割り込み情報記憶部６に対して、自身が処理する割り込み要因の番号に対応させて自身のプロセッサ番号を記憶する。割り込み情報記憶部６の初期状態では、割り込み情報ＩＩＦには割り込み要因番号と割り込み要求番号との対応関係だけが含まれており、それらに対応するプロセッサ番号はプロセッサ自身が割り込み情報ＩＩＦに書き込む。なお、ステップｓ１，ｓ２は、通常、オペレーティングシステムの初期化処理、あるいはＩＯ装置１１，１２のデバイスドライバの初期化処理の際に実行される。
【００１８】
次に、ステップｓ３において、プロセッサ１は、割り込みコントローラ５から出力される割り込み要求ＩＲＱ１を受け付けると、ステップｓ４において、自身が処理すべき割り込み要因が発生しているかどうかを判定する。
【００１９】
ここで、割り込みコントローラ５には、入力される割り込み要求ごとに割り込みステータス情報が記憶されている。この割り込みステータス情報は、対応する割り込み要求が発生すると“０”から“１”に変化する。割り込みコントローラ５は、割り込み要求ＩＲＱ１が入力されると、当該割り込み要求ＩＲＱ１をプロセッサ１，２に対して同時に出力するとともに、割り込み要求ＩＲＱ１に対応する割り込みステータス情報を“１”にセットする。プロセッサ１，２のそれぞれは、割り込み要求ＩＲＱ１が通知されると、当該割り込み要求ＩＲＱ１に対応した割り込みステータス情報を割り込みコントローラ５から読み出す。セット状態の割り込みステータス情報は、プロセッサから読み出されると“１”から“０”に変化してクリアされるため、割り込みステータス情報を先に読み出したプロセッサのみが“１”を示す割り込みステータス情報を読み出すことができる。プロセッサ１，２のそれぞれは、読み出した割り込みステータス情報が“１”であれば、割り込み要求ＩＲＱ１を受け付けてステップｓ４を実行する。このように、複数の割り込み要因で共用される割り込み要求ＩＲＱ１は、プロセッサ１，２のいずれか一つに受け付けられる。
【００２０】
また、ＩＯ装置１１〜１３のそれぞれには、自身で割り込み要因が発生しているか否かを示すステータス情報が記憶されている。したがって、プロセッサ１，２のそれぞれは、ステップｓ４において、自身が処理すべき割り込み要因を発生するＩＯ装置内の当該ステータス情報を読み出すことによって、自身が処理すべき割り込み要因が発生しているか否かを判定することができる。
【００２１】
プロセッサ１は、ステップｓ４において、自身が処理すべき割り込み要因が発生していると判定すると、ステップｓ５において、当該割り込み要因に応じた割り込みハンドラを実行して割り込み処理を行う。
【００２２】
一方で、ステップｓ４において自身が処理すべき割り込み要因が発生していないと判定すると、プロセッサ１は、ステップｓ６において、割り込み情報記憶部６内の割り込み情報ＩＩＦを参照して、割り込み要求ＩＲＱ１を共用する他の割り込み要因を処理するプロセッサを特定し、当該プロセッサに対して割り込み要求ＩＲＱ１の発生を通信ライン４を利用して通知する。本例では、割り込み要求ＩＲＱ１は、ＩＯ装置１１，１２で発生する割り込み要因で共用されており、ＩＯ装置１１，１２で発生する割り込み要因はプロセッサ１，２でそれぞれ処理されるため、プロセッサ１はプロセッサ２に対して、プロセッサ２はプロセッサ１に対して、それぞれ割り込み要求ＩＲＱ１の発生を通知する。プロセッサ間での割り込み要求の発生の通知は、例えば、プロセッサ１〜３のそれぞれに設けられた、プロセッサ間専用の割り込み機能を利用することができる。
【００２３】
なお、ここでは２つのプロセッサ１，２で割り込要求ＩＲＱ１を共用する場合について説明したが、３つ以上のプロセッサで割り込み要求ＩＲＱ１を共用しても良い。例えば、プロセッサ１〜３で割り込み要求ＩＲＱ１を共用する場合には、プロセッサ１は自身が処理すべき割り込み要因が発生していないと判定すると、プロセッサの番号順にプロセッサ２に割り込み要求ＩＲＱ１の発生を通知し、プロセッサ２は自身で処理すべき割り込み要因が発生していないと判定するとプロセッサ３に割り込み要求ＩＲＱ１の発生を通知する。
【００２４】
さらに、３つ以上のプロセッサで割り込み要求ＩＲＱ１を共用する場合には、“１”を示す割り込みステータス情報を割り込みコントローラ５から最先に読み出したプロセッサが各ＩＯ装置のステータス情報を読み出し、割り込み要因を処理すべき適切なプロセッサに対してのみ割り込み要求ＩＲＱ１の発生を通知しても良い。
【００２５】
プロセッサ１は、ステップｓ３において割り込み要求ＩＲＱ１を受け付けなかった場合であっても、ステップｓ７において、ステップｓ６を実行した他のプロセッサから割り込み要求ＩＲＱ１の発生が通知されると、ステップｓ４を実行して自身が処理すべき割り込み要因が発生しているかどうかを判定する。そして、プロセッサ１は、ステップｓ４での判定結果に応じてステップｓ５あるいはステップｓ６を実行する。
【００２６】
なお、プロセッサ３に通知される割り込み要求ＩＲＱ２は一つの割り込み要因に対応していることから、プロセッサ３は、上述のステップｓ１〜ｓ３を順次実行し、その後、ステップｓ４を実行することなく、ステップｓ５を実行して自身が処理すべき割り込み要因に応じた割り込み処理を実行する。
【００２７】
また、本実施の形態１では、割り込み要求ＩＲＱ１が通知されるプロセッサ１，２と、割り込み要求ＩＲＱ２が通知されるプロセッサ３とは重複していないため、割り込みコントローラ５は、割り込み要求ＩＲＱ１，ＩＲＱ２が同時に入力された場合には、プロセッサ１，２に対して割り込み要求ＩＲＱ１を出力するとともに、プロセッサ３に対しても割り込み要求ＩＲＱ２を出力する。したがって、プロセッサ１，２のどちらか一方でＩＯ装置１２あるいはＩＯ装置１３で発生した割り込み要因が処理されるとともに、プロセッサ３でＩＯ装置１３で発生した割り込み要因が処理される。
【００２８】
一方で、本実施の形態１とは異なり、例えば、ＩＯ装置１３で発生した割り込み要因をプロセッサ３ではなくプロセッサ２が処理する場合には、割り込み要求ＩＲＱ１が通知されるプロセッサ１，２と、割り込み要求ＩＲＱ２が通知されるプロセッサ２とが重複することになるため、複数の割り込み要求が一つのプロセッサに対して同時に入力されることを防止するために、割り込みコントローラ５は、割り込み要求ＩＲＱ１，ＩＲＱ２が同時に入力された場合には、割り込み要求ＩＲＱ１，ＩＲＱ２のどちらか一方のみを出力する。このとき、各割り込み要因に割り当てられた、処理の優先度を示す割り込み優先度が使用される。割り込み情報記憶部６の割り込み情報ＩＩＦには、この割り込み優先度も各割り込み要因番号に対応付けて書き込まれており、割り込みコントローラ５は、割り込み要求ＩＲＱ１，ＩＲＱ２が同時に入力された場合には、割り込み情報ＩＩＦを参照して、最も割り込み優先度の高い割り込み要因に対応した割り込み要求を出力する。例えば、割り込み要因番号“２”に対応する割り込み優先度が最も高いとすると、割り込みコントローラ５は割り込み要求ＩＲＱ１のみを出力する。
【００２９】
以上のように、本実施の形態１に係るマルチプロセッサシステムでは、複数の割り込み要因で共用される割り込み要求ＩＲＱ１を受け付けたプロセッサ１は、当該複数の割り込み要因のうち、自身が処理すべき割り込み要因が発生している場合には割り込み処理を実行し、当該割り込み要因が発生していない場合には、他の割り込み要因を処理するプロセッサ２に対して割り込み要求ＩＲＱ１の発生を通知している。したがって、本実施の形態１のように、プロセッサ２は、割り込みコントローラ５からの割り込み要求ＩＲＱ１を受け付けずに、自身が処理すべき割り込み要因を処理することができる。
【００３０】
同様に、割り込み要求ＩＲＱ１を受け付けたプロセッサ２は、自身が処理すべき割り込み要因が発生している場合には割り込み処理を実行し、当該割り込み要因が発生していない場合には、プロセッサ１に対して割り込み要求ＩＲＱ１の発生を通知している。したがって、本実施の形態１のように、プロセッサ１は、割り込みコントローラ５からの割り込み要求ＩＲＱ１を受け付けずに、自身が処理すべき割り込み要因を処理することができる。よって、一つの割り込み要求ＩＲＱ１を共用する複数の割り込み要因をプロセッサ１，２でそれぞれ処理することができる。
【００３１】
実施の形態２．
上述の実施の形態１に係るマルチプロセッサシステムでは、割り込みコントローラ５は割り込み要求ＩＲＱ１をプロセッサ１，２の両方に出力し、当該プロセッサ１，２のうち割り込みコントローラ５内の割り込みステータス情報を先にクリアした方が割り込み要求ＩＲＱ１を受け付けている。したがって、プロセッサ１，２の動作状況によって割り込み要求ＩＲＱ１を受け付けるプロセッサは変化することになる。そのため、割り込み優先度が高い割り込み要因の発生に対する応答が遅くなることがある。
【００３２】
例えば、ＩＯ装置１１で発生する割り込み要因の割り込み優先度が最も高く、当該割り込み要因が発生して割り込みコントローラ５から割り込み要求ＩＲＱ１が出力された場合において、当該割り込み要求ＩＲＱ１がプロセッサ１で受け付けられた際には、プロセッサ１はＩＯ装置１１で発生した優先度が高い割り込み要因を比較的早期に処理することができる。しかしながら、当該割り込み要求ＩＲＱ１がプロセッサ２で受け付けられた際には、プロセッサ１は、プロセッサ２から割り込み要求ＩＲＱ１の発生の通知を受け取って初めてＩＯ装置１１で発生した割り込み要因を処理することになるため、優先度の高い割り込み要因を処理するまでの時間が比較的長くなる。
【００３３】
そこで、本実施の形態２では、割り込み優先度が高い割り込み要因の発生に対する応答遅延が少ないマルチプロセッサシステムを提供する。
【００３４】
図４は本実施の形態２に係るマルチプロセッサシステムの割り込み情報記憶部６が記憶する割り込み情報ＩＩＦを示す図である。本実施の形態２に係るマルチプロセッサシステムは、上述の実施の形態１に係るマルチプロセッサシステムにおいて、プロセッサ１，２の動作が異なるものである。以下では、実施の形態１に係るマルチプロセッサシステムとの相違点を中心に、本実施の形態２に係るマルチプロセッサシステムを説明する。
【００３５】
上述のように、各割り込み要因には割り込み優先度が割り当てられており、割り込み情報ＩＩＦには、各割り込み要因番号に対応して割り込み優先度が書き込まれている。つまり、割り込み情報記憶部６には、割り込み要因番号、割り込み優先度、割り込み要求番号及びプロセッサ番号の対応関係を示すテーブルが割り込み情報ＩＩＦとして記憶される。本例では、図４に示されるように、１〜３番の割り込み要因には“５”，“１０”，“１”の割り込み優先度がそれぞれ割り当てられている。なお、本例では、割り込み優先度の値が大きいほど、割り込み優先度が高いものとする。
【００３６】
図５は本実施の形態２に係るプロセッサ１，２の動作を示すフローチャートである。本実施の形態２でも、プロセッサ１，２は互いに同様の動作を行うため、以下ではプロセッサ１の動作を中心に説明する。
【００３７】
図５に示されるように、まずステップｓ２１において、プロセッサ１は、割り込み情報記憶部６内の割り込み情報ＩＩＦを参照して、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のそれぞれの割り込み優先度を取得する。そして、プロセッサ１は、取得した割り込み優先度において、自身が処理する割り込み要因の割り込み優先度が最も高いかどうかを判定する。本例では、図４に示されるように、割り込み要求ＩＲＱ１を共用する１及び２番の割り込み要因の割り込み優先度において、プロセッサ２が処理する２番の割り込み要因の割り込み優先度が最も高くなっている。
【００３８】
プロセッサ１は、ステップｓ２１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因の割り込み優先度において、自身が処理する割り込み要因の割り込み優先度が最も高いと判定すると、上述のステップｓ１を実行して、自身に対して割り込み要求が通知されるように割り込みコントローラ５を設定する。一方で、プロセッサ１は、ステップｓ２１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因において、自身が処理する割り込み要因の割り込み優先度よりも高い割り込み優先度を有する割り込み要因が存在すると判定すると、ステップｓ１を実行せずに上述のステップｓ２を実行する。
【００３９】
このように、本実施の形態２では、プロセッサ１，２のそれぞれは、割り込み要求ＩＲＱ１を共用する複数の割り込み要因の割り込み優先度において、自身が処理する割り込み要因の割り込み優先度が最も高いと判定した場合のみ、割り込みコントローラ５から割り込み要求が通知されるように当該割り込みコントローラ５を設定する。したがって、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち割り込み優先度が最も高い割り込み要因を処理するプロセッサのみが、割り込み要求ＩＲＱ１を受け付けることになる。
【００４０】
ステップｓ２が実行されると、実施の形態１と同様にして、ステップｓ３，ｓ４が実行されて、ステップｓ４での判定結果に応じてステップｓ５あるいはステップｓ６が実行される。また、本実施の形態２においても、ステップｓ７において、プロセッサ１は、他のプロセッサから割り込み要求ＩＲＱ１の発生が通知されると、ステップｓ４を実行し、その後、ステップｓ４での判定結果に応じてステップｓ５あるいはステップｓ６を実行する。なお、プロセッサ３の動作は実施の形態１と同様である。
【００４１】
以上のように、本実施の形態２に係るマルチプロセッサシステムでは、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち割り込み優先度が最も高い割り込み要因を処理するプロセッサのみが、割り込みコントローラ５からの割り込み要求ＩＲＱを受け付けるため、まず最初に当該プロセッサにおいて処理すべき割り込み要因が発生しているか否かの判定が行われる。したがって、割り込み優先度の高い割り込み要因の発生に対する応答遅延を少なくすることができる。
【００４２】
例えば、ＩＯ装置１１で発生する割り込み要因の割り込み優先度が最も高く、当該割り込み要因が発生して割り込みコントローラ５から割り込み要求ＩＲＱ１が出力されると、当該割り込み要求ＩＲＱ１は必ずプロセッサ１で受け付けられる。よって、プロセッサ１においてまず最初に上述のステップｓ４が実行される。その結果、ＩＯ装置１１で発生した優先度が高い割り込み要因がプロセッサ１によって早く処理される。
【００４３】
実施の形態３．
図６は本発明の実施の形態３に係るマルチプロセッサシステムの構成を示すブロック図である。図６に示されるように、本実施の形態３に係るマルチプロセッサシステムは、上述の実施の形態１に係るマルチプロセッサシステムにおいて、プロセッサ優先度記憶部７をさらに設けて、プロセッサ１，２の動作を変更したものである。以下では、実施の形態１に係るマルチプロセッサシステムとの相違点を中心に、本実施の形態３に係るマルチプロセッサシステムを説明する。
【００４４】
本実施の形態３では、プロセッサ１〜３のそれぞれにはプロセッサ優先度が割り当てられている。このプロセッサ優先度は、プロセッサ間での割り込み処理を実行させる優先度を示しており、オペレーションシステムやタスクの処理内容に応じて決定される。具体的には、例えば、プロセッサ１〜３の間で処理速度が異なる場合には、処理速度が速いプロセッサほど高いプロセッサ優先度が割り当てられる。
【００４５】
図７はプロセッサ１〜３に割り当てられるプロセッサ優先度の一例を示す図である。図７に示されるように、本実施の形態３に係るプロセッサ１〜３に対しては、“１”，“１０”，“５”のプロセッサ優先度がそれぞれ割り当てられており、当該プロセッサ優先度は、プロセッサ番号に対応付けられてプロセッサ優先度記憶部７に記憶されている。なお、本例では、プロセッサ優先度の値が大きいほどプロセッサ優先度は高いものとする。
【００４６】
次に、本実施の形態３に係るプロセッサ１，２における割り込み処理を実行するまでの動作について説明する。図８は本実施の形態３に係るプロセッサ１，２の動作を示すフローチャートである。本実施の形態３でも、プロセッサ１，２は互いに同様の動作を行うため、以下ではプロセッサ１の動作を中心に説明する。
【００４７】
図８に示されるように、プロセッサ１は、まず上述のステップｓ２を実行する。そして、ステップｓ３１において、プロセッサ１は、プロセッサ優先度記憶部７内の情報を参照して、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１，２において、自身のプロセッサ優先度が最も高いかどうかを判定する。本例では、図７に示されるように、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１，２において、プロセッサ２のプロセッサ優先度が最も高く設定されている。
【００４８】
プロセッサ１は、ステップｓ３１において自身のプロセッサ優先度が最も高いと判定すると、上述のステップｓ１を実行して自身に割り込み要求が出力されるように割り込みコントローラを設定し、その後、上述のステップｓ３，ｓ４を順次実行する。
【００４９】
一方で、プロセッサ１は、ステップｓ３１において自身のプロセッサ優先度よりも高いプロセッサ優先度の他のプロセッサが存在すると判定すると、ステップｓ１を実行せずにステップｓ３，ステップｓ４を順次実行する。
【００５０】
このように、本実施の形態３では、プロセッサ１，２のそれぞれは、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１，２において、自身のプロセッサ優先度が最も高いと判定した場合のみ、割り込み要求が入力されるように割り込みコントローラ５を設定する。したがって、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち、プロセッサ優先度が最も高いプロセッサのみが、割り込み要求ＩＲＱ１を受け付けることになる。
【００５１】
なお、ステップｓ３１については、プロセッサ１，２のどちらか一方だけが行うようにしても良い。例えば、プロセッサ１のみがステップｓ３１を実行するとすると、プロセッサ１は、プロセッサ優先度記憶部７内の情報を参照して、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１，２においてプロセッサ優先度が最も高いプロセッサを特定し、当該プロセッサに対してのみ割り込み要求が出力されるように割り込みコントローラを設定する。これにより、プロセッサ１は、自身のプロセッサ優先度が最も高い場合には、自身に割り込み要求が出力されるように割り込みコントローラ５を設定し、自身のプロセッサ優先度が最も高くない場合には、プロセッサ優先度が最も高い他のプロセッサに対して割り込み要求が出力されるように割り込みコントローラ５を設定する。
【００５２】
ステップｓ４が実行されると、当該ステップｓ４での判定結果に応じて上述のステップｓ５あるいはステップｓ６が実行される。そして、本実施の形態３においても、プロセッサ１は、ステップｓ７において、他のプロセッサから割り込み要求ＩＲＱ１の発生が通知されると、ステップｓ４を実行し、その後、ステップｓ４での判定結果に応じてステップｓ５あるいはステップｓ６を実行する。なお、プロセッサ３の動作は実施の形態１と同様である。
【００５３】
以上のように、本実施の形態３に係るマルチプロセッサシステムでは、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち、プロセッサ優先度が最も高いプロセッサのみが割り込みコントローラ５からの割り込み要求ＩＲＱを受け付ける。したがって、所望のプロセッサでの割り込み要因の発生に対する応答遅延を少なくすることができる。
【００５４】
実施の形態４．
図９は本発明の実施の形態４に係るマルチプロセッサシステムの構成を示す図である。本実施の形態４に係るマルチプロセッサシステムは、上述の実施の形態２に係るマルチプロセッサシステムにおいて、基本的には、ＩＯ装置１４をさらに設けて、プロセッサ１〜３の動作を変更したものである。以下では、実施の形態２に係るマルチプロセッサシステムとの相違点を中心に、本実施の形態４に係るマルチプロセッサシステムを説明する。
【００５５】
ＩＯ装置１４では、ＩＯ装置１１〜１３と同様に割り込み要因が発生する。ＩＯ装置１４は、割り込み要因が発生すると割り込み要求を出力する。本実施の形態４では、ＩＯ装置１１，１２，１４が、自身が出力する割り込み要求を割り込みコントローラ５に伝達する信号線ＳＬを共用しており、ＩＯ装置１１，１２，１４から出力された割り込み要求は、信号ラインＳＬを伝達してそれぞれ割り込み要求ＩＲＱ１として割り込みコントローラ５に入力される。したがって、ＩＯ装置１１で割り込み要因が発生した場合でも、ＩＯ装置１２で割り込み要因が発生した場合でも、ＩＯ装置１４で割り込み要因が発生した場合でも、割り込みコントローラ５には割り込み要求ＩＲＱ１が通知される。このように、本実施の形態４では、割り込みコントローラ５に入力される割り込み要求ＩＲＱ１は、ＩＯ装置１１，１２，１４で発生する複数の割り込み要因で共用されている。
【００５６】
図１０は、本実施の形態４に係る割り込み情報記憶部６が記憶する割り込み情報ＩＩＦを示す図である。本実施の形態４では、ＩＯ装置１４で発生する割り込み要因に４番の割り込み要因番号が割り当てられている。また、３番のプロセッサ３が３番及び４番の割り込み要因を処理する。つまり、プロセッサ３がＩＯ装置１３，１４で発生した割り込み要因を処理する。そして、上述のように、ＩＯ装置１１，１２，１４で割り込み要因が発生すると割り込み要求ＩＲＱ１が割り込みコントローラ５に通知されることから、図１０に示されるように、４番の割り込み要因は１番の割り込み要求ＩＲＱ１及び３番のプロセッサ３に対応する。さらに、図１０に示されるように、１〜４番の割り込み要因には、“５”，“１０”，“５”，“１”の割り込み優先度がそれぞれ割り当てられている。本実施の形態４に係る割り込み情報ＩＩＦには、割り込み要因番号、割り込み優先度、割り込み要求番号及びプロセッサ番号の対応関係が書き込まれる。
【００５７】
図１１は本実施の形態４に係るプロセッサ１〜３における割り込み処理を実行するまでの動作を示すフローチャートである。プロセッサ１〜３は互いに同様の動作を行うため、以下ではプロセッサ１の動作を中心に説明する。
【００５８】
図１１に示されるように、プロセッサ１は上述のステップｓ２１を実行する。プロセッサ１は、ステップｓ２１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因の割り込み優先度において、自身が処理する割り込み要因の割り込み優先度が最も高いと判定すると、上述のステップｓ１を実行して、自身に対して割り込み要求が通知されるように割り込みコントローラ５を設定する。一方で、プロセッサ１は、ステップｓ２１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因において、自身が処理する割り込み要因の割り込み優先度よりも高い割り込み優先度を有する割り込み要因が存在すると判定すると、ステップｓ１を実行せずに上述のステップｓ２を実行する。
【００５９】
このようにして、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち割り込み優先度が最も高い割り込み要因を処理するプロセッサのみが、割り込み要求ＩＲＱ１を受け付けるようになる。
【００６０】
ステップｓ２が実行されると、その後、プロセッサ１は、上述のステップｓ３，ｓ４を実行する。本実施の形態４では、割り込みコントローラ５は、プロセッサ１〜３のそれぞれに割り込み要求ＩＲＱ１を出力する。そして、プロセッサ１〜３のそれぞれは、割り込み要求ＩＲＱ１が入力されると、割り込みコントローラ５から、割り込み要求ＩＲＱ１に対応した割り込みステータス情報を読み出し、当該割り込みステータス情報が“１”であれば、割り込み要求ＩＲＱ１を受け付ける。
【００６１】
プロセッサ１は、ステップｓ４において、自身が処理すべき割り込み要因が発生したと判定すると、当該割り込み要因に応じた割り込みハンドラを実行して割り込み処理を行う。
【００６２】
一方で、ステップｓ４において、自身が処理すべき割り込み要因が発生していないと判定すると、プロセッサ１は、ステップｓ４１において、割り込み情報記憶部６内の割り込み情報ＩＩＦを参照して、割り込み要求ＩＲＱ１を共用する割り込み要因のうち自身が処理する割り込み要因を除く残りの割り込み要因のそれぞれについての割り込み優先度を取得する。そして、プロセッサ１は、取得した割り込み優先度に基づいて、自身が処理する割り込み要因の割り込み優先度よりも低い割り込み優先度を有する割り込み要因のうち、割り込み優先度が最も高いものを処理するプロセッサを選択する。
【００６３】
ここで、割り込み要求ＩＲＱ１を共用する割り込み要因のうち割り込み優先度が最も高い割り込み要因を処理するプロセッサが割り込み要求ＩＲＱ１を受け付けるため、当該プロセッサは、ステップｓ４１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち自身が処理する割り込み要因を除く残りの割り込み要因において割り込み優先度が最も高い割り込み要因を処理する他のプロセッサを選択する。本例では、割り込み情報記憶部６には図１０に示される割り込み情報ＩＩＦが記憶されていることから、プロセッサ２が割り込み要求ＩＲＱ１を受け付けるため、プロセッサ２は、ステップｓ４１において、１番及び４番の割り込み要因において割り込み優先度が最も高い１番の割り込み要因を処理するプロセッサ１を選択する。
【００６４】
ステップｓ４１を実行したプロセッサ１は、その後、ステップｓ４２において、ステップｓ４１で選択したプロセッサに対して割り込み要求ＩＲＱ１の発生を通知する。
【００６５】
本実施の形態４においても、ステップｓ７において、プロセッサ１は、他のプロセッサから割り込み要求ＩＲＱ１の発生が通知されると、ステップｓ４を実行し、その後、ステップｓ４での判定結果に応じて、ステップｓ５を実行したり、あるいはステップｓ４１，ｓ４２を実行する。
【００６６】
なお、プロセッサ３に対して割り込みコントローラ５から割り込み要求ＩＲＱ２が入力された場合の当該プロセッサ３の動作については実施の形態１と同様である。
【００６７】
また、本実施の形態４では、割り込み要求ＩＲＱ１が通知されるプロセッサ１〜３と、割り込み要求ＩＲＱ２が通知されるプロセッサ３とが重複するため、複数の割り込み要求が一つのプロセッサに対して同時に入力されることを防止するために、割り込みコントローラ５は、割り込み要求ＩＲＱ１，ＩＲＱ２が同時に入力された場合には、実施の形態１で説明したように、割り込み優先度に基づいて割り込み要求ＩＲＱ１，ＩＲＱ２のどちらか一方のみを出力する。
【００６８】
以上のように、本実施の形態４に係るマルチプロセッサシステムでは、割り込み要求ＩＲＱ１を受け付けたプロセッサは、自身が処理すべき割り込み要因が発生していない場合には、割り込み要求ＩＲＱ１を共用する複数の割り込み要因のうち自身が処理する割り込み要因を除く残りの割り込み要因において、割り込み優先度が最も高いものを処理するプロセッサに対して、割り込み要求ＩＲＱ１の発生を通知している。したがって、割り込み優先度の高い割り込み要因の発生に対する応答遅延を少なくすることができる。
【００６９】
実施の形態５．
図１２は本発明の実施の形態５に係るマルチプロセッサシステムの構成を示す図である。本実施の形態５に係るマルチプロセッサシステムは、上述の実施の形態３に係るマルチプロセッサシステムにおいて、基本的には、上述のＩＯ装置１４をさらに設けて、プロセッサ１〜３の動作を変更したものである。以下では、実施の形態３に係るマルチプロセッサシステムとの相違点を中心に、本実施の形態５に係るマルチプロセッサシステムを説明する。
【００７０】
本実施の形態５では、実施の形態４と同様に、割り込みコントローラ５に入力される割り込み要求ＩＲＱ１は、ＩＯ装置１１，１２，１４で発生する複数の割り込み要因で共用されている。
【００７１】
図１３は本実施の形態５に係るプロセッサ１〜３における割り込み処理を実行するまでの動作を示すフローチャートである。プロセッサ１〜３は互いに同様の動作を行うため、以下ではプロセッサ１の動作を中心に説明する。
【００７２】
図１３に示されるように、プロセッサ１は上述のステップｓ２，ｓ３１を順次実行する。プロセッサ１は、ステップｓ３１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１〜３において、自身のプロセッサ優先度が最も高いと判断すると、上述のステップｓ１を実行して、自身に対して割り込み要求が通知されるように割り込みコントローラ５を設定し、その後、ステップｓ３，ｓ４を順次実行する。一方で、プロセッサ１は、ステップｓ３１において、自身のプロセッサ優先度よりも高いプロセッサ優先度のプロセッサが存在すると判断すると、ステップｓ１を実行せずに上述のステップｓ３，ｓ４を順次実行する。
【００７３】
このようにして、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち、プロセッサ優先度が最も高いプロセッサのみが、割り込み要求ＩＲＱ１を受け付けることになる。
【００７４】
プロセッサ１は、ステップｓ４において、自身が処理すべき割り込み要因が発生したと判断すると、当該割り込み要因に応じた割り込みハンドラを実行して割り込み処理を行う。
【００７５】
一方で、ステップｓ４において、自身が処理すべき割り込み要因が発生していないと判断すると、プロセッサ１は、ステップｓ５１において、プロセッサ優先度記憶部７内の情報を参照して、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち自身を除く残りのプロセッサのそれぞれについてのプロセッサ優先度を取得する。そして、プロセッサ１は、自身のプロセッサ優先度よりも低いプロセッサ優先度を有するプロセッサのうち、プロセッサ優先度が最も高いものを選択する。
【００７６】
ここで、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち、プロセッサ優先度が最も高いプロセッサが割り込み要求ＩＲＱ１を受け付けるため、このプロセッサ優先度が最も高いプロセッサは、ステップｓ５１において、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサのうち自身を除く残りのプロセッサにおいてプロセッサ優先度が最も大きいもの選択する。本例では、プロセッサ優先度記憶部７には図７に示される情報が記憶されていることから、プロセッサ２が割り込み要求ＩＲＱ１を受け付けるため、プロセッサ２は、ステップｓ５１において、プロセッサ１，３のうちプロセッサ優先度が最も高いプロセッサ３を選択する。
【００７７】
ステップｓ５１を実行したプロセッサ１は、その後、ステップｓ５２において、ステップｓ５１で選択したプロセッサに対して割り込み要求ＩＲＱ１の発生を通知する。
【００７８】
本実施の形態５においても、プロセッサ１は、ステップｓ７において他のプロセッサから割り込み要求ＩＲＱ１の発生が通知されると、ステップｓ４を実行し、その後、ステップｓ４での判定結果に応じて、ステップｓ５を実行したり、あるいはステップｓ５１，５２を実行する。
【００７９】
なお、プロセッサ３に対して割り込みコントローラ５から割り込み要求ＩＲＱ２が入力された場合の当該プロセッサ３の動作については実施の形態１と同様である。
【００８０】
また、本実施の形態５では、実施の形態４と同様に、複数の割り込み要求が一つのプロセッサに対して同時に入力されることを防止するために、割り込みコントローラ５は、割り込み要求ＩＲＱ１，ＩＲＱ２が同時に入力された場合には、割り込み優先度に基づいて割り込み要求ＩＲＱ１，ＩＲＱ２のどちらか一方のみを出力する。
【００８１】
以上のように、本実施の形態５に係るマルチプロセッサシステムでは、割り込み要求ＩＲＱ１を受け付けたプロセッサは、自身が処理すべき割り込み要因が発生していない場合には、割り込み要求ＩＲＱ１を共用する複数の割り込み要因を処理するプロセッサ１〜３においてプロセッサ優先度が最も高いプロセッサに対して割り込み要求ＩＲＱ１の発生を通知している。したがって、所望のプロセッサでの割り込み要因の発生に対する応答遅延を少なくすることができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態１に係るマルチプロセッサシステムの構成を示す図である。
【図２】本発明の実施の形態１に係る割り込み情報を示す図である。
【図３】本発明の実施の形態１に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図４】本発明の実施の形態２に係る割り込み情報を示す図である。
【図５】本発明の実施の形態２に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図６】本発明の実施の形態３に係るマルチプロセッサシステムの構成を示す図である。
【図７】本発明の実施の形態３に係るプロセッサ優先度記憶部が記憶する情報を示す図である。
【図８】本発明の実施の形態３に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図９】本発明の実施の形態４に係るマルチプロセッサシステムの構成を示す図である。
【図１０】本発明の実施の形態４に係る割り込み情報を示す図である。
【図１１】本発明の実施の形態４に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図１２】本発明の実施の形態５に係るマルチプロセッサシステムの構成を示す図である。
【図１３】本発明の実施の形態５に係るマルチプロセッサシステムの動作を示すフローチャートである。
【符号の説明】
【００８３】
１〜３  プロセッサ、５  割り込みコントローラ。
【図１】
2008176360.tif 000003
【図２】
2008176360.tif 000004
【図３】
2008176360.tif 000005
【図４】
2008176360.tif 000006
【図５】
2008176360.tif 000007
【図６】
2008176360.tif 000008
【図７】
2008176360.tif 000009
【図８】
2008176360.tif 000010
【図９】
2008176360.tif 000011
【図１０】
2008176360.tif 000012
【図１１】
2008176360.tif 000013
【図１２】
2008176360.tif 000014
【図１３】
2008176360.tif 000015