(57)【要約】【課題】バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理システムを提供する。【解決手段】割り込み分散処理システムは、複数のプロセッサ（ＣＰＵ１−０〜１−ｎ）と、複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号７を出力する割り込み受付判定ユニット２と、割り込み不可信号７−０〜７−ｎを受け付け、外部から割り込み信号８を受け付けたときに、割り込み不可信号７−０〜７−ｎに基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号９−０〜９−ｎを出力する割り込みコントローラ３と、を備える。【選択図】図１
2010015297.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
前記複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を出力する割り込み受付判定ユニットと、
前記割り込み不可信号を受け付け、外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する割り込みコントローラと、を備える割り込み分散処理システム。
【請求項２】
前記割り込み受付判定ユニットは、実行待ちのタスク数に基づいて、割り込みが可能であるかを判定することを特徴とする請求項１記載の割り込み分散処理システム。
【請求項３】
前記割り込み受付判定ユニットは、複数のプロセッサそれぞれについて、
実行待ちのタスク数を保持するタスク数レジスタと、
実行待ちのタスク数の閾値を保持する閾値レジスタと、
前記タスク格納部に格納されるタスク数が、前記閾値レジスタが保持する閾値を超える場合、前記割り込み不可信号を前記割り込みコントローラへ出力する割り込み受付不可判定回路と、を有することを特徴とする請求項１または２記載の割り込み分散処理システム。
【請求項４】
前記タスク数レジスタは、プロセッサに任意のタスクが割り当てられたときに、スケジューラによって更新され、
前記割り込み受付不可判定回路は、前記タスク数レジスタが保持する値が、前記閾値を超えたタイミングで前記割り込み不可信号を出力することを特徴とする請求項３記載の割り込み分散処理システム。
【請求項５】
前記割り込みコントローラは、
割り込みを要請するプロセッサを分配する分配回路と、
前記割り込み不可信号に基づいて、前記分配回路が割り込みを分配したプロセッサへ割り込み可能かを判定し、割り込みができない場合、再度前記分配回路へ割り込みを分配するプロセッサを選択させ、割り込みができる場合、割り込み通知信号を出力する割り込み不可判定回路と、を有することを特徴とする請求項１乃至４のいずれか一項に記載の割り込み分散処理システム。
【請求項６】
前記割り込み受付判定ユニットは、各プロセッサ内にそれぞれ配置され、配置されたプロセッサを判定した割り込み不可信号を前記割り込みコントローラへ出力することを特徴とする請求項１乃至５のいずれか一項に記載の割り込み分散処理システム。
【請求項７】
搭載された複数のプロセッサについて、割り込みが可能であるかを判定し、
不可能と判定した場合に割り込み不可信号を、信号線を介して割り込みコントローラへ出力し、
割り込みコントローラが外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを要請するプロセッサを決定し、
決定したプロセッサへ割り込み通知信号を出力する割り込み分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有バス型マルチプロセッサシステムにおける割り込み分散処理システム及び方法に関するものである。
【背景技術】
【０００２】
従来から、バス共有型マルチプロセッサシステムは、サーバ・ワークステーションなど高速なプロセッサシステムで使用されている。昨今組込みシステム分野においても、マルチプロセッサシステムはシステムの高性能化、低消費電力化の要求により必要となってきている。組み込みシステムは、高性能化と同時にリアルタイム性が要求されるシステムであり、割り込み処理のオーバヘッドを極力少なくし、リアルタイム性を確保しつつ効率的な割り込み処理の負荷分散方式が必要となる。
【０００３】
従来マルチプロセッサシステムにおける負荷分散制御には、最もプライオリティの低い処理を実行しているプロセッサに割り込みを与える方法、全プロセッサに割り込みを通知し、最も早く割り込みに応答したプロセッサに割り込みを与える方法などがあった。例えば、特許文献１にその一例が開示されている。
【０００４】
図７に、特許文献１に開示されているシステム構成図を示す。主記憶装置１０ｐ内にソフトウェアにて作成・管理されるプロセッサ統計情報テーブル１２ｐと割り込みスケジュール情報テーブル１３ｐとを備える。プロセッサ統計情報テーブル１２ｐは、プロセッサ使用率、プロセッサバインドして実行中のプロセスのプロセッサ使用率、プロセッサ毎にバインド要求しているプロセス数からなるプロセッサ統計情報を格納する。割り込みスケジュール情報テーブル１３ｐは、適正な範囲内で割り込みの負荷分散を行うための基本ルールである割り込みスケジュール情報を格納する。また、Ｉ／Ｏ制御装置３０ｐに割り込み通知先に関する情報を格納する割り込み通知先情報テーブル３１ｐを備え、Ｉ／Ｏ制御装置３０ｐは、割り込み通知先情報テーブル３１ｐの情報に基づいて割り込みを指定プロセッサに通知する。割り込みスケジューラ１４ｐは、一定時間毎にプロセッサ統計情報テーブル１２ｐと割り込みスケジュール情報テーブル１３ｐを参照することで、割り込み負荷分散が適正になるようにスケジュールした割り込み通知情報をＩ／Ｏ制御装置３０ｐへ通知する。通知された割り込み通知情報が割り込み通知先情報テーブル３１ｐへ格納されることによって、割り込み分散処理を実現している。
【特許文献１】特開平１１−７４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１では、マルチプロセッサシステムの割り込み分散に関して割り込みスケジューラ１４ｐを、ソフトウェアを用いて実現しおり、割り込みのスケジューリングを行う度に主記憶装置１０ｐ（メモリ）へのアクセスが必要となる。したがって、割り込みスケジューラ１４ｐを実行するプロセッサに割り込みスケジューリング処理自体のシステム負荷を与えてしまい、その処理後に割り込みコントローラに通知するまでにそのオーバヘッドが発生してリアルタイム性が損なわれるという問題があった。特にシステム全体に大きな負荷がかかっている場合、特に大きなオーバヘッドとなってしまう。
【０００６】
このように、バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理が必要とされていた。
【課題を解決するための手段】
【０００７】
本発明に係る割り込み分散処理システムの一態様は、複数のプロセッサと、前記複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を出力する割り込み受付判定ユニットと、前記割り込み不可信号を受け付け、外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する割り込みコントローラと、を備える。割り込みが可能であるか否かを、割り込み不可信号を割り込みコントローラへ専用の信号線で通知する。これにより、主記憶装置を介さずに、割り込みを各ＣＰＵに分散させることが可能になり、割り込み処理のリアルタイム性の向上を図ることができる。
【０００８】
また、本発明に係る割り込み分散方法の一態様は、搭載された複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を、信号線を介して割り込みコントローラへ出力し、割り込みコントローラが外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを要請するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する。
【発明の効果】
【０００９】
本発明によれば、バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理システム及び方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。また、本明細書では、同じ構成要素が複数存在し、それぞれを区別する場合に、符号に"−ｘ"（ｘ≧０の整数）付加して、複数の構成要素それぞれを区別するものとする。例えば、図１では、複数のＣＰＵ１−０、・・・１−ｎ（ｎ＞０の整数）を示している。例えば、図１を用いて説明する場合、ＣＰＵ１は、複数のＣＰＵ１−０、・・・１−ｎのいずれか一つまたは複数を示すものとし、ＣＰＵ１−０（あるいは、ＣＰＵ１−ｎなど）は、複数のＣＰＵのそれぞれを区別して示すものとする。
【００１１】
（実施形態１）
図１は、本発明の実施形態１に係る割り込み分散処理システムの構成例を示すブロック図である。割り込み分散処理システムは、複数のＣＰＵ（プロセッサ）１−０〜１−ｎ、割り込み受付不可判定ユニット（割り込み受付判定ユニット）２−０〜２−ｎ、及び割り込みコントローラ３を備える。本実施形態では、割り込み受付不可判定ユニット２をＣＰＵ１に備える場合を説明するが、これに限られることはない。
【００１２】
割り込み受付不可判定ユニット２は、複数のＣＰＵ１それぞれについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号７を出力する。割り込み不可信号７は、割り込みコントローラ３へ出力される。図２に割り込み受付不可判定ユニット２の構成例を示す。割り込み受付不可判定ユニット２は、割り込み受付不可判定回路２ａ、実行待ちタスクキュー格納レジスタ（タスク数レジスタ）２ｂ、及び実行待ちタスクキュースレッシュホールド設定レジスタ（閾値レジスタ）２ｃを備える。
【００１３】
割り込み受付不可判定回路２ａは、実行待ちタスクキュー格納レジスタ２ｂと実行待ちタスクキュースレッシュホールド設定レジスタ２ｃとの２つのレジスタ情報を比較し、実行待ちタスクキュー数がスレッシュホールド値を超えた場合、制御信号として、割り込み不可信号７を生成し、割り込みコントローラ３へ出力する。実行待ちタスクキュー格納レジスタ２ｂは、実行待ちタスクキュー数を格納する。実行待ちタスクキュースレッシュホールド設定レジスタ２ｃは、割り込みコントローラ３に割り込みを受け付けることができないことを判断するための実行待ちタスクキュースレッシュホールド（実行待ちのタスク数の閾値）を設定する。
【００１４】
割り込みコントローラ３は、外部から割り込み信号を受け付けたときに、割り込み不可信号７に基づいて、割り込みを通知するＣＰＵ１を決定する。決定したＣＰＵ１へ割り込み通知信号９を出力する。図１に示す例では、割り込みコントローラ３は、割り込み通知判定ユニット４と割り込みマスク回路５によってこれらの機能を実現する。
【００１５】
割り込み通知判定ユニット４は、割り込み不可判定回路４ａと割り込み分配回路（分配回路）４ｂとを含む。割り込み不可判定回路４ａは、割り込み受付不可判定ユニット２から割り込み不可信号７を受け付け、各ＣＰＵ１が割り込みを受け付け可能であるか不可であるかの情報を判定する。例えば、割り込みを受け付け可能であるか不可であるかの情報をレジスタに保持し、保持する情報に基づいて判定する。割り込み不可判定回路４ａは、割り込み分配回路４ｂからＣＰＵ１へ割り込みの要請があった時に、割り込みが分配されたＣＰＵ１が割り込み可能であるか否かを判定する。割り込み分配回路４ｂは、外部からの割り込みを受け付け、所定の規則に従って割り込みを分配するＣＰＵ１を決定し、割り込み不可判定回路４ａへ通知する。
【００１６】
割り込みマスク回路５は、外部から割り込み信号８を受け付け、割り込み通知判定ユニット４へ通知する。
【００１７】
図３に、本実施形態の割り込み分散処理システムとスケジューラとの関係を示すブロック図を示す。図３に示すように、本実施形態では、ＣＰＵ１、割り込みコントローラ３、及びスケジューラ６は、システムバス１１を介して接続されていることを前提とする。また、割り込み不可信号７及び割り込み通知信号９は、システムバス１１を介すことなく、専用の信号線を用いて割り込み受付不可判定ユニット２と割り込みコントローラ３との間で転送される。
【００１８】
スケジューラ６は、プログラムによって実現される。スケジューラ６を実現するプログラムは、主記憶装置１０にロードされ、ＣＰＵ１の制御のもとで、各命令が実行される。
【００１９】
次に、本実施形態の割り込み分散処理システムの動作を説明する。図４は、ＣＰＵ割り込み不可制御の動作例を示すフローチャートである。図５は、割り込みコントローラ３の動作例を示すフローチャートである。スケジューラ６の命令によって、割り込み受付不可判定ユニット２では、実行待ちタスクキュースレッシュホールド設定レジスタ２ｃに、対応するＣＰＵ１が割り込みを受け付けできない限界実行待ちタスクキュー数を予め設定される。随時オペレーティングシステムからの要求に基づいて、スケジューラ６がタスクスケジューリングを行う（Ｓ２０）。このとき、スケジューラ６によって、割り込み受付不可判定ユニット２では、スケジューリングされたタスクに応じて、現在の実行待ちタスクキュー数が実行待ちタスクキュー格納レジスタ２ｂに格納される（Ｓ２１）。割り込み受付不可判定回路２ａは、実行待ちタスクキュー格納レジスタ２ｂと実行待ちタスクキュースレッシュホールド設定レジスタ２ｃとの値を比較し（Ｓ２２）、実行待ちタスクキュー格納レジスタ２ｂの値が実行待ちタスクキュースレッシュホールド設定レジスタ２ｃの値より大きい場合（Ｓ２２でＹｅｓ）、割り込み不可信号７を割り込みコントローラ３へ出力する（Ｓ２３）。割り込み受付不可判定ユニット２は、スケジューリング要求に応じて、ステップＳ２１からステップＳ２３の処理を繰り返す。
【００２０】
例えば、各ＣＰＵ１がタスクスケジューリングを定常的に実行する際に、割り込み受付不可判定ユニット２は、実行待ちタスクキュー数を、実行待ちタスクキュー格納レジスタ２ｂに設定する（Ｓ２１）。割り込み受付不可判定回路２ａは、設定された実行待ちタスクキュー数と予め実行待ちタスクキュースレッシュホールド設定レジスタに設定されているスレッシュホールド値とを比較する（Ｓ２２）。スレッシュホールド値よりも多くの実行待ちタスクがあった場合（Ｓ２２でＹｅｓ）、割り込み不可信号７を出力する（Ｓ２３）。
【００２１】
続いて、割り込みコントローラ３の動作を図５を用いて説明する。割り込み通知判定ユニット４において、割り込み不可判定回路４ａには、各ＣＰＵ１が割り込みを受け付け不可の状態になったタイミングで、割り込み受付不可判定ユニット２から割り込み不可信号７が入力され、各ＣＰＵ１が割り込みを受け付け可能であるか不可であるかの情報を判定できる状態となっていることを前提とする。割り込みコントローラ３の割り込みマスク回路５は、外部より入力される割り込み信号８を受け付け、割り込み分配回路４ｂへ割り込みが発生したことを通知する（Ｓ３０）。割り込み分配回路４ｂは、あらかじめ設定された手順（例えば、ランドロビンなど）に基づいて、割り込みを分配するＣＰＵ１を決定し、割り込み不可判定回路４ａへ決定したＣＰＵ１を通知する（Ｓ３１）。
【００２２】
割り込み不可判定回路４ａは、通知されたＣＰＵ１について、当該ＣＰＵ１から割り込み不可信号７による通知があるかを判別する（Ｓ３２）。割り込み不可信号７による通知がなければ（Ｓ３２でＹｅｓ）、割り込み不可判定回路４ａは、当該ＣＰＵ１へ割り込み通知信号９を出力する（Ｓ３３）。割り込み不可信号７による通知があった場合（Ｓ３２でＮｏ）、割り込み不可判定回路４ａは、割り込み分配回路４ｂへ割り込みを分配するＣＰＵ１の変更を要求し（Ｓ３４）、割り込み分配回路４ｂから新たに割り込みを分配するＣＰＵ１が通知されると、ステップＳ３１からの処理を繰り返す。
【００２３】
以上説明したように、本実施形態では、割り込み受付不可判定ユニット２を備え、割り込みコントローラ３へ各ＣＰＵ１の割り込み不可状況を通知する。これにより、各ＣＰＵ１の実行待ちタスク数を常に監視し、実行待ちタスクが多く存在するＣＰＵ１に対して割り込みを通知せず、他のＣＰＵ１へ割り込みを通知することによって、割り込み処理の負荷分散を実現する。システムを構築する場合、個々のＣＰＵ１の実行待ちタスク数に応じて割り込み通知不可信号を制御できるため、最終的なシステムチューニングを行うときにも効率的である。
【００２４】
また、本実施形態では、割り込み受付不可判定ユニット２をＣＰＵ１に配置したため、主記憶装置１０へアクセスすることなく、各ＣＰＵ１の実行待ちタスク数を監視することを可能にした。従って、本実施形態では、例えば、特許文献１に開示されている技術のように、割り込み情報テーブルを参照・管理するための主記憶装置へのアクセスを一切必要としない。また、各ＣＰＵ１がタスクスケジューリングを行う際に、実行待ちタスク数を割り込み受付不可判定ユニット２内のレジスタに設定することが、実行待ちタスク数の監視に必要となる。このため、システム負荷がほとんどかからない割り込み分散スケジューリング処理を実現することができる。具体的には、割り込み受付不可判定ユニット２は、各ＣＰＵ１の割り込み受付け判断に必要な信号を割り込みコントローラ３に定常的に送り、割り込みコントローラ３ではハードウェアを用いて、割り込みをどのＣＰＵ１に送るかをスケジューリングできるようにする。これにより、割り込みコントローラ３は、ハードウェアにて処理を行うことが可能になり、リアルタイム性が落ちにくくなる。
【００２５】
（実施形態２）
実施形態１では、割り込み受付不可判定ユニット２がＣＰＵ１内に配置される場合を説明したが、これに限られることはない。例えば、図６に示すように、割り込み受付不可判定ユニット２がシステムバス１１に接続されている場合であってもよい。
【００２６】
本実施形態では、割り込み受付不可判定ユニット２をシステムバス１１に接続するハードウェアとしたが、図６の構成であっても主記憶装置１０へアクセスすることなく、各ＣＰＵ１の実行待ちタスク数を監視することができる。実施形態１とは異なり、割り込み受付不可判定ユニット２の実行待ちタスクキュー格納レジスタ２ｂや実行待ちタスクキュースレッシュホールド設定レジスタ２ｃに値を設定する際に、ＣＰＵ１はシステムバス１１を経由して書き込むことになるものの、主記憶装置１０へのアクセスを必要としない。ＣＰＵ１がシステムバス１１を経由して値を書き込むことによって生じるシステムバス１１への負荷を除いて、実施形態１と同様の効果を得ることができる。
また、図６において、ＣＰＵ１の数の割り込み受付不可判定ユニット２を一つのハードウェア（割り込み受付不可判定ユニット群２０）として構成してもよい。
【００２７】
以上説明したように、上記各実施形態のいずれかによれば、組込みシステムに必要なリアルタイム性を損なわず、バス共有型マルチプロセッサシステムにおける効率的な割り込み分散システム及び割り込み分散方法を提供することができる。
【００２８】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態１に係る割り込み分散処理システムの構成例を示すブロック図である。
【図２】割り込み受付不可判定ユニットの構成例を示すブロック図である。
【図３】実施形態１の割り込み分散システムとスケジューラとの関係を示すブロック図を示す。
【図４】実施形態１のＣＰＵ割り込み不可制御の動作例を示すフローチャートである。
【図５】実施形態１の割り込みコントローラ側の動作例を示すフローチャートである。
【図６】実施形態２の割り込み分散システムとスケジューラとの関係を示すブロック図を示す。
【図７】特許文献１に開示されているシステム構成図を示すブロック図である。
【符号の説明】
【００３０】
１−０〜１−ｎ  ＣＰＵ
２−０〜２−ｎ  割り込み受付不可判定ユニット
２ａ  割り込み受付不可判定回路
２ｂ  実行待ちタスクキュー格納レジスタ
２ｃ  実行待ちタスクキュースレッシュホールド設定レジスタ
３  割り込みコントローラ
４  割り込み通知判定ユニット
４ａ  割り込み不可判定回路
４ｂ  割り込み分配回路４ｂ
５  割り込みマスク回路
６  スケジューラ
７  割り込み不可信号
８  割り込み信号
９  割り込み通知信号
１０  主記憶装置
１１  システムバス
２０  割り込み受付不可判定ユニット群
【図１】
2010015297.tif 000003
【図２】
2010015297.tif 000004
【図３】
2010015297.tif 000005
【図４】
2010015297.tif 000006
【図５】
2010015297.tif 000007
【図６】
2010015297.tif 000008
【図７】
2010015297.tif 000009