(57)【要約】【課題】割り込み要求の処理に関する構成についてハードウェア規模を縮小すること。【解決手段】複数のハードウェアスレッドと、スレッドスケジューラと、複数のハードウェアスレッドのいずれかが割り当てられた複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する選択部と、選択された割り込み要求について、命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する判定部と、を備えるプロセッサ。【選択図】図２
2014067248.tif 000002
【特許請求の範囲】
【請求項１】
複数のハードウェアスレッドのいずれかが割り当てられた複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する選択部と、
前記選択された割り込み要求について、前記命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する判定部と、
を備えるプロセッサ。
【請求項２】
前記選択部は、
前記複数のハードウェアスレッドの中から前記命令実行対象のハードウェアスレッドの選択を命令実行回路に対して指示するためのスレッド選択信号を用いて、前記割り込み要求を選択する
請求項１に記載のプロセッサ。
【請求項３】
前記選択部は、
前記複数の割り込み要求のうち前記選択がされなかった割り込み要求について、次に前記スレッド選択信号を受け付けるまでの間、保留する
請求項２に記載のプロセッサ。
【請求項４】
前記選択部は、
前記複数の割り込み要求と共に、当該複数の割り込み要求よりも優先度の高い高優先割り込み要求を受け付けた場合、前記複数の割り込み要求に優先して当該高優先割り込み要求を選択する
請求項１に記載のプロセッサ。
【請求項５】
複数の異なる割り込み要因に、前記複数のハードウェアスレッドのいずれが予め関連付けられたのかを示す情報を記憶する関連付けレジスタと、
前記関連付けレジスタを参照し、前記複数の割り込み要求の割り込み要因に関連付けられたハードウェアスレッドを各割り込み要求に割り当てる割当部と、をさらに備え、
前記選択部は、
前記割当部によりハードウェアスレッドが割り当てられた複数の割り込み要求の中から、前記命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する
請求項１に記載のプロセッサ。
【請求項６】
前記選択部は、２以上の割り込み要求を含む割り込み要求群を選択し、
前記判定部は、
前記選択された割り込み要求群の中から、割り込み要因の優先度が高い優先割り込み要求を検出し、当該優先割り込み要求について、前記命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する
請求項１に記載のプロセッサ。
【請求項７】
複数のハードウェアスレッドを有するマルチスレッドプロセッサにおける割り込み処理方法であって、
複数のハードウェアスレッドのいずれかが割り当てられた複数の割り込み要求を受け付け、
前記複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択し、
前記選択された割り込み要求について、前記命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する
割り込み処理方法。
【請求項８】
前記複数のハードウェアスレッドの中から前記命令実行対象のハードウェアスレッドの選択を命令実行回路に対して指示するためのスレッド選択信号を用いて、前記割り込み要求を選択する
請求項７に記載の割り込み処理方法。
【請求項９】
前記複数の割り込み要求のうち前記選択がされなかった割り込み要求について、次に前記スレッド選択信号を受け付けるまでの間、保留する
請求項８に記載の割り込み処理方法。
【請求項１０】
前記複数の割り込み要求と共に、当該複数の割り込み要求よりも優先度の高い高優先割り込み要求を受け付けた場合、前記複数の割り込み要求に優先して当該高優先割り込み要求を選択する
請求項７に記載の割り込み処理方法。
【請求項１１】
前記マルチスレッドプロセッサは、
複数の異なる割り込み要因に前記複数のハードウェアスレッドのいずれが予め関連付けられたのかを示す情報を記憶する関連付けレジスタをさらに備え、
前記関連付けレジスタを参照し、前記複数の割り込み要求の割り込み要因に関連付けられたハードウェアスレッドを各割り込み要求に割り当て、
前記ハードウェアスレッドが割り当てられた複数の割り込み要求の中から、前記命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する
請求項７に記載の割り込み処理方法。
【請求項１２】
２以上の割り込み要求を含む割り込み要求群を選択し、
前記選択された割り込み要求群の中から、割り込み要因の優先度が高い優先割り込み要求を検出し、当該優先割り込み要求について、前記命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する
請求項７に記載の割り込み処理方法。
【請求項１３】
複数の異なる割り込み要因に応じた複数の割り込み要求を受け付け、当該複数の割り込み要因に関連付けられた複数のプロセッサコアのいずれかを、前記複数の割り込み要求の割り込み要因に応じて各割り込み要求に割り当てる割当部と、
前記割り当てられた複数の割り込み要求の中から、指定されたプロセッサコアが割り当てられた割り込み要求群を選択する選択部と、
前記選択された割り込み要求群について、割り込み要因の優先度が高い優先割り込み要求を選択し、当該優先割り込み要求が割り当てられたプロセッサコアへ当該優先割り込み要求を出力する出力部と、
を備える割り込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ、割り込み処理方法及び割り込み制御装置に関し、例えば、複数の割り込み要求を処理するためのプロセッサ、割り込み処理方法及び割り込み制御装置に関する。
【背景技術】
【０００２】
特許文献１には、ハードウェアスレッドを用いたマルチスレッドプロセッサに関する技術が開示されている。特許文献１にかかるマルチスレッドプロセッサは、複数のハードウェアスレッドの実行順序を制御するスレッドスケジューラを備える。当該スレッドスケジューラは、予め設定されたスケジュールに従って、複数のハードウェアスレッドのうち次の実行サイクルにおいて実行される１つのハードウェアスレッドを指定するスレッド選択信号を出力する。
【０００３】
また、特許文献１にかかるマルチスレッドプロセッサは、割り込み要因ごとに処理すべきスレッドを予め関連付けることが可能である。そして、割り込み要求が発生した場合に、当該割り込み要求の割り込み要因に関連付けられたハードウェアスレッドにおいて割り込みが可能か否かの判定を行う。
【０００４】
特許文献２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によるスレッド管理、すなわちソフトウェアスレッドに関する技術が開示されている。特許文献２には、割り込み信号の宛先となるタイムスロットと、現在のタイムスロットとが一致しない場合に当該割り込み信号を受理しない点が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−８６１３１号公報
【特許文献２】特開２００９−５９３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１には、割り込み要求の処理に関する構成についてハードウェア規模を縮小できる余地がある。特許文献１では、複数の割り込み要求が発生した場合に、各割り込み要求が異なるスレッドに割り当てられる。そして、スレッドごとに並列して、現時点のタイミングでの割り込みが許可されるか否かの判定である許否判定が行われる。しかし、実際に割り込み処理が実行され得るのは、上述したスレッド選択信号により指定されたスレッドに割り当てられた割り込み要求のみである。そのため、スレッド選択信号により指定されなかった他のスレッドに割り当てられた割り込み要求に対しては、余分に並列して割り込みの許否判定が行われている。つまり、割り込みの許否判定を行う回路が余分に構成されているといえる。よって、ハードウェア規模を縮小できる余地がある。
【０００７】
尚、特許文献２は、ソフトウェアによるスレッド管理であるため、ハードウェアスレッドほどの厳密な時間管理に適さない。よって、特許文献２では、上述した課題を解決することができない。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、プロセッサは、複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する選択部を有するものである。
【００１０】
また、他の実施の形態によれば、割り込み処理方法は、複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する方法である。
【００１１】
さらに、他の実施の形態によれば、割り込み制御装置は、複数の割り込み要求の中から、指定されたプロセッサコアが割り当てられた割り込み要求群を選択する選択部を有するものである。
【発明の効果】
【００１２】
前記一実施の形態によれば、割り込み要求の処理に関する構成についてハードウェア規模を縮小することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態１にかかるマルチスレッドプロセッサを含むプロセッサシステムを示すブロック図である。
【図２】本実施の形態１にかかる割り込みコントローラの構成を示すブロック図である。
【図３】本実施の形態１にかかる割込要求選択回路の構成を示すブロック図である。
【図４】本実施の形態１にかかる割込受付判定回路の構成を示すブロック図である。
【図５】本実施の形態１にかかる割り込み要求処理の流れを示すフローチャートである。
【図６】本実施の形態１にかかる効果を説明するための図である。
【図７】本実施の形態１にかかる効果を説明するための図である。
【図８】本実施の形態２にかかる割り込みコントローラの構成を示すブロック図である。
【図９】本実施の形態２にかかる割込要求選択回路の構成を示すブロック図である。
【図１０】本実施の形態２にかかる割り込み要求処理の流れを示すフローチャートである。
【図１１】本実施の形態２にかかる効果を説明するための図である。
【図１２】本実施の形態３にかかる割り込みコントローラの構成を示すブロック図である。
【図１３】本実施の形態３にかかる割込受付判定回路の構成を示すブロック図である。
【図１４】本実施の形態４にかかるマルチコアシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１５】
＜実施の形態１＞
図１は、本実施の形態１にかかるマルチスレッドプロセッサ１００を含むプロセッサシステムを示すブロック図である。本実施の形態１に係るプロセッサシステムでは、システムバスを介してマルチスレッドプロセッサ１００とメモリ２が接続される。なお、図示はしていないが、システムバスには、入出力インタフェースなどの他の回路も接続されるものとする。
【００１６】
まず、本実施の形態１に係るマルチスレッドプロセッサ１００について説明する。マルチスレッドプロセッサ１００は、複数のハードウェアスレッドを備えている。ここで、この複数のハードウェアスレッドは１つのＣＰＵ内において構成されている。ハードウェアスレッドは、スレッドプログラムカウンタＴＰＣ０〜ＴＣＰ３、命令メモリ１４、汎用レジスタ、及び制御レジスタ（本実施の形態１ではパイプライン制御回路１６に内蔵されるものとする）等の回路群により構成される。
【００１７】
ここで、ハードウェアスレッドとは、マルチスレッドプロセッサ１００に内蔵されるスレッドプログラムカウンタＴＰＣ０〜ＴＣＰ３により出力される命令フェッチアドレスに従って、命令メモリ１４から読み出される一連の命令群により構成される命令流を生成する系のことを言う。つまり、１つのハードウェアスレッドにより生成される命令流に含まれる命令は、互いに関連性の高い命令である。本実施の形態１では、マルチスレッドプロセッサ１００が複数のスレッドプログラムカウンタＴＰＣ０〜ＴＣＰ３を備えることでその数に応じた数のハードウェアスレッドが実装される。以下では、マルチスレッドプロセッサ１００について更に詳細に説明する。
【００１８】
図１に示すようにマルチスレッドプロセッサ１００は、演算回路１０（命令実行回路）、割り込みコントローラ１１、ＰＣ生成回路１２、スレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３、セレクタ１３及び１８、命令メモリ１４、命令バッファ１５、パイプライン制御回路１６、命令フェッチコントローラ１７並びにスレッドスケジューラ１９を有する。
【００１９】
演算回路１０は、セレクタ１８によって選択されたハードウェアスレッドが生成する命令に基づき演算処理を実行する。より具体的には、演算回路１０は、命令デコーダ２１、実行ユニット２２、データレジスタ２３を有する。命令デコーダ２１は受信した命令をデコードして、実行ユニット２２に対して演算制御信号ＳＣを出力する。また、命令デコーダ２１は、命令のデコード結果に基づきデータの格納位置を示すデータレジスタアドレスＲａｄｄの出力を行う。実行ユニット２２は、演算制御信号ＳＣに応じて各種の演算を実行する。なお、実行ユニット２２は、複数の実行ステージを有し、パイプライン処理により演算を行う。
【００２０】
また、実行ユニット２２において実行された演算結果は、その演算結果の種類に応じてＰＣ生成回路１２、メモリ２、データレジスタ２３に送信される。データレジスタ２３は、実行ユニット２２において用いられるデータが格納される。そして、データレジスタ２３は、データレジスタアドレスＲａｄｄにより指定したアドレスのデータを出力する。図１に示す例では、データレジスタ２３は、データレジスタアドレスＲａｄｄに応じてデータａとデータｂとを出力する形態となる。また、データレジスタ２３は、データレジスタアドレスＲａｄｄにより指定されるアドレスに実行ユニット２２が出力する演算結果を格納する。
【００２１】
割り込みコントローラ１１は、割り込み要求ＩＳＩを受けて、マルチスレッドプロセッサ１００内に割り込み処理の実行を指示する割り込み要求ＩＳＳ２を出力する。より具体的には、割り込みコントローラ１１は、割り込み要求ＩＳＩを受信すると、割り込み要因や割り込み処理の優先度等を判定し、当該割り込み要因に関連した処理を行うようにＰＣ生成回路１２及びパイプライン制御回路１６に割り込み処理の実行を指示する。この割り込み要求は、マルチスレッドプロセッサ１００が出力するものの他に、マルチスレッドプロセッサ１００以外の回路からも出力される。特に、本実施の形態１にかかる割り込みコントローラ１１は、スレッドスケジューラ１９から出力されるスレッド選択信号ＴＳＥＬを受け付けて、スレッド選択信号ＴＳＥＬに基づいて前記指示を行う。
【００２２】
ＰＣ生成回路１２は、システムバスを介して入力される新たなプログラム命令信号、割り込みコントローラ１１が出力する割り込み要求ＩＳＳ２及び実行ユニット２２における処理に基づき出力される分岐指示信号を受けて、プログラムカウント更新値を生成する。そして、ＰＣ生成回路１２は、プログラムカウント更新値をスレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３のいずれかに与える。なお、ＰＣ生成回路１２は、生成したプログラムカウント更新値をいずれのスレッドプログラムカウンタに与えるかを判断する機能も有する。
【００２３】
スレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３は、処理すべき命令が格納される命令メモリ１４のアドレス（このアドレスを命令フェッチアドレスＩＭａｄｄと称す。）を生成する。また、スレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３は、ＰＣ生成回路１２からプログラムカウント更新値が与えられた場合は、命令フェッチアドレスＩＭａｄｄをプログラムカウント更新値に応じて更新する。一方、スレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３は、プログラムカウント更新値の入力がない場合は、アドレスを昇順に計算し、連続する次の命令フェッチアドレスを算出する。なお、図１においては、スレッドプログラムカウンタの数を４つとしたが、プログラムスレッドカウンタの数は、マルチスレッドプロセッサの仕様に応じて任意に設定することができる。
【００２４】
セレクタ１３は、命令フェッチコントローラ１７が出力するスレッド指定信号に応じてスレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３のうちいずれか１つを選択し、選択したスレッドプログラムカウンタが出力する命令フェッチアドレスＩＭａｄｄを出力する。なお、図１のセレクタ１３において入力端子に０〜４の数字を付したが、この数字は、ハードウェアスレッドの番号を示すものである。
【００２５】
命令メモリ１４は、複数のハードウェアスレッドにより共用されるメモリ領域である。命令メモリ１４は、マルチスレッドプロセッサ１００において実行される演算で用いられる各種命令が格納される。そして、命令メモリ１４は、セレクタ１３を介して入力される命令フェッチアドレスＩＭａｄｄにより指定された命令を出力する。このとき、命令メモリ１４は、セレクタ１３がスレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３のいずれが出力した命令フェッチアドレスＩＭａｄｄであるかを判別し、判別結果に応じて命令の出力先を振り分ける。
【００２６】
本実施の形態では、命令バッファ１５は、スレッドプログラムカウンタＴＰＣ０〜ＴＰＣ３に対応した命令バッファ領域ＢＵＦ０〜ＢＵＦ３を有する。そこで、命令メモリ１４は、命令フェッチアドレスＩＭａｄｄの出力元に応じて命令バッファ領域ＢＵＦ０〜ＢＵＦ３のいずれかに読み出された命令を振り分ける。なお、命令メモリ１４は、メモリ２に含まれる所定のメモリ領域であっても良い。また、命令バッファ領域ＢＵＦ０〜ＢＵＦ３は、ＦＩＦＯ（First In First Out）形式のバッファ回路である。また、命令バッファ領域ＢＵＦ０〜ＢＵＦ３は、１つのバッファ内において領域分割されたものでも良く、分離された領域に形成されたものであっても良い。
【００２７】
パイプライン制御回路１６は、命令バッファ１５の先頭に格納された命令と実行ユニット２２において実行されている命令とをモニタする。そして、パイプライン制御回路１６は、割り込みコントローラ１１から割り込み要求が入力された場合には、割り込み処理に関係するハードウェアスレッドに属する命令を廃棄する指示を命令バッファ１５及び実行ユニット２２に対して行う。
【００２８】
命令フェッチコントローラ１７は、命令バッファ１５に格納されている命令の個数に応じていずれのハードウェアスレッドに属する命令をフェッチすべきかを判断し、その判断結果に基づきスレッド指定信号を出力する。例えば、命令フェッチコントローラ１７は、命令バッファ領域ＢＵＦ０に格納される命令キューの数が他の命令バッファ領域に格納される命令キューの数よりも少なければ、０番のハードウェアスレッドに属する命令をフェッチすべきと判断し、０番のハードウェアスレッドを示すスレッド指定信号を出力する。これにより、セレクタ１３は、スレッドプログラムカウンタＴＰＣ０を選択する。なお、命令フェッチコントローラ１７は、ラウンドロビン方式による手順で選択するハードウェアスレッドを決定しても良い。
【００２９】
セレクタ１８は、スレッドスケジューラ１９が出力するスレッド選択信号ＴＳＥＬに応じて命令バッファ領域ＢＵＦ０〜ＢＵＦ３のいずれか１つを選択し、選択した命令バッファ領域から読み出した命令を演算回路１０に出力する。つまり、セレクタ１８は、スレッド選択信号ＴＳＥＬに応じて複数のハードウェアスレッドから１つのハードウェアスレッドを選択し、選択したハードウェアスレッドが出力する命令を演算回路１０に出力する。なお、セレクタ１８においても、入力端子に０〜４の数字を付したが、この数字は、ハードウェアスレッドの番号を示すものである。
【００３０】
スレッドスケジューラ１９は、予め設定されたスケジュールに従って、複数のハードウェアスレッドのうち次の実行サイクルにおいて実行される１つのハードウェアスレッドを指定するスレッド選択信号ＴＳＥＬを出力する。つまり、スレッドスケジューラ１９は、複数のハードウェアスレッドのどのような順序で処理するかをスケジュールにより管理し、そのスケジュールに沿った順序でハードウェアスレッドにより生成される命令が実行されるようにスレッド選択信号ＴＳＥＬを出力する。また、スレッド選択信号ＴＳＥＬは、複数のハードウェアスレッドの中から命令実行対象のハードウェアスレッドの選択を命令実行部である演算回路１０に対して指示するための信号である。なお、本実施の形態に係るマルチスレッドプロセッサ１００では、このスケジュールをマルチスレッドプロセッサ１００の起動の直後に実行される管理プログラムにより設定する。
【００３１】
図２は、本実施の形態１にかかる割り込みコントローラ１１の構成を示すブロック図である。割り込みコントローラ１１は、スレッド割当回路１０４と、スレッドバインドレジスタ１０５と、割込要求選択回路１０６と、割込受付判定回路１０７と、割込許可レジスタ１０８とを備える。
【００３２】
スレッドバインドレジスタ１０５は、複数の異なる割り込み要因に、複数のハードウェアスレッドのいずれが予め関連付けられたのかを示す情報を記憶する関連付けレジスタである。スレッド割当回路１０４は、異なる割り込み要因に応じた複数の割り込み要求ＩＳＩを受け付け、スレッドバインドレジスタ１０５を参照して、複数の割り込み要求の割り込み要因に関連付けられたハードウェアスレッドを各割り込み要求に割り当て、スレッド数に応じた割り込み要求ＩＳ０〜ＩＳ３を出力する。ここで、割り込み要求ＩＳＩは、割り込み要因ごとに別個に発生し、現在、演算回路１０で所定のスレッドにおいて実行中のパイプライン処理又は全ての処理を中断して割り込み処理を実行させ得るための信号である。また、割り込み要求ＩＳ０〜ＩＳ３は、それぞれ、実行するハードウェアスレッドが割り当てられた割り込み要求である。例えば、割り込み要求ＩＳ０には、スレッド０が割り当てられていることを示す。同様に、割り込み要求ＩＳ１〜ＩＳ３は、それぞれスレッド１〜３が割り当てられていることを示す。
【００３３】
尚、スレッド割当回路１０４は、図示しない構成として内部に、割り込み要求の優先度を判定する優先度判定回路（不図示）を有するものとする。例えば、割り込み要因の数が"２５６"及びスレッド数が"４"の場合、スレッドバインドレジスタ１０５では、一のスレッド当たりに複数の割り込み要因が関連付けられていることとなる。そして、複数の割り込み要因には、処理の優先順位が予め定義されているものとする。そこで、優先度判定回路は、各割り込み要求について割り込み要因に基づく優先度を判定する。例えば、同一のスレッドに関連付けられた複数の割り込み要因にかかる割り込み要求が同時に発生した場合、優先度判定回路は、優先度が最も高い割り込み要求を優先して選択し、スレッドを割り当てる。ここで、スレッド割当回路１０４には、スレッド数分の優先度判定回路を有するものとする。
【００３４】
割込要求選択回路１０６は、スレッド割当回路１０４により複数のハードウェアスレッドのいずれかが割り当てられた複数の割り込み要求ＩＳ０〜ＩＳ３の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求ＩＳＳ１を選択する。ここで、本実施の形態における割込要求選択回路１０６は、スレッド選択信号ＴＳＥＬを用いて、割り込み要求ＩＳ０〜ＩＳ３の中から割り込み要求ＩＳＳ１を選択する。
【００３５】
割込許可レジスタ１０８は、指定されたハードウェアスレッドにおいて割り込み処理の実行を許可するか否かを示す許否フラグを保持するレジスタである。割込受付判定回路１０７は、割込許可レジスタ１０８を参照し、割込要求選択回路１０６により選択された割り込み要求ＩＳＳ１について、命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する。そして、割込受付判定回路１０７は、割り込みが許可と判定した場合、当該許可された割り込み要求ＩＳＳ２をＰＣ生成回路１２へ出力する。
【００３６】
また、ＰＣ生成回路１２は、割込受付判定回路１０７からに割り込み要求ＩＳＳ２に応じて、指定されたスレッドに対応するプログラムカウント更新値を生成する。
【００３７】
図３は、本実施の形態１にかかる割込要求選択回路１０６の構成を示すブロック図である。図３は、割込要求選択回路１０６の一例としてセレクタ１０６１を有する場合を示すが、割込要求選択回路１０６の構成はこれに限定されない。セレクタ１０６１は、スレッド選択信号ＴＳＥＬに応じて割り込み要求ＩＳ０からＩＳ３のいずれかを選択し、割り込み要求ＩＳＳ１として割込受付判定回路１０７へ出力する。
【００３８】
図４は、本実施の形態１にかかる割込受付判定回路１０７の構成を示すブロック図である。割込受付判定回路１０７は、優先度マスク１０７１と、受付許可判定部１０７２と、例外優先判定部１０７３とを備える。尚、図４は、割込受付判定回路１０７の一例であり、その構成はこれに限定されない。優先度マスク１０７１は、入力される割り込み要求ＩＳＳ１について、外部から設定される優先度マスク設定信号１０７４に基づいて、以降の処理を行うか否かを判定する。つまり、割り込み要求ＩＳＳ１の割り込み要因が所定の優先度より低い場合には、割り込み要求ＩＳＳ１に基づく割り込み処理は実行されない。受付許可判定部１０７２は、割込許可レジスタ１０８を参照し、割り込み要求ＩＳＳ１が割り当てられたハードウェアスレッドにおける割り込み処理の許否を判定する。例外優先判定部１０７３は、受付許可判定部１０７２により許可された割り込み要求ＩＳＳ１又は外部から受け付けた他の例外要求１０７５を割り込み要求ＩＳＳ２として出力する。ここで、例外優先判定部１０７３は、他の例外要求１０７５を割り込み要求ＩＳＳ１より優先するものとする。割込受付判定回路１０７から出力される割り込み要求ＩＳＳ２に基づき、ＰＣ生成回路１２は、例外又は割り込みのためのプログラムカウンタの更新等を行う。
【００３９】
図５は、本実施の形態１にかかる割り込み要求処理の流れを示すフローチャートである。まず、スレッド割当回路１０４は、複数の割り込み要求ＩＳＩを受け付ける（Ｓ１０１）。次に、スレッド割当回路１０４は、スレッドバインドレジスタ１０５を参照し、割り込み要求ＩＳＩに関連付けられたスレッドを割り当てる（Ｓ１０２）。
【００４０】
そして、割込要求選択回路１０６は、割り込み要求ＩＳ０〜ＩＳ３の中から、スレッド選択信号ＴＳＥＬに指定されたスレッドが割り当てられた割り込み要求を選択する（Ｓ１０３）。よって、割込要求選択回路１０６は、複数の割り込み要求ＩＳ０〜ＩＳ３のうち選択がされなかった割り込み要求について、次にスレッド選択信号ＴＳＥＬを受け付けるまでの間、保留するといえる。
【００４１】
続いて、割込受付判定回路１０７は、選択された割り込み要求ＩＳＳ１が、割り当てられたハードウェアスレッドにおいて割り込みが可能か否かを判定する（Ｓ１０４）。つまり、割込受付判定回路１０７は、上述した許否判定等を行う。ステップＳ１０４において割り込みが可能と判定された場合、ＰＣ生成回路１２及びパイプライン制御回路１６等は、割り込み要求ＩＳＳ２に基づいて割り込み処理を実行する（Ｓ１０５）。また、ステップＳ１０４において割り込みが不可能と判定された場合、割り込み要求ＩＳＳ２は保留され（Ｓ１０６）、ステップＳ１０３へ戻る。
【００４２】
また、ステップＳ１０５の後、割り込みコントローラ１１は、保留中の割込み要求があるか否かを判定する（Ｓ１０７）。保留中の割込み要求があると判定された場合、ステップＳ１０３へ戻る（Ｓ１０７のＹＥＳ）。一方、保留されていた割り込み要求が全て処理され、保留中の割込み要求がないと判定された場合、当該割り込み要求処理のフローを完了する（Ｓ１０７のＮＯ）。
【００４３】
図６は、本実施の形態１にかかる効果を説明するための図である。ここでは、実行クロックサイクル"１"において、スレッド割当回路１０４は、割り込み要求Ａ及びＢを受け付けたものとする。そして、スレッド割当回路１０４は、割り込み要求Ａにスレッド０を割り当て、割り込み要求Ｂにスレッド１を割り当てるものとする。
【００４４】
このとき、スレッド選択信号ＴＳＥＬは、スレッド１を示すため、割込要求選択回路１０６は、割り込み要求Ａ及びＢのうち、割り込み要求Ｂを選択して割込受付判定回路１０７へ出力する。そして、割込受付判定回路１０７は、割り込み要求Ｂを許可するものとする。
【００４５】
また、演算回路１０は、実行クロックサイクル"１"において、スレッド選択信号ＴＳＥＬに基づいてスレッド１での処理を実行する。ここでは、演算回路１０は、スレッド１で割り込み要求Ｂに基づく割込受付処理を実行する。
【００４６】
以降、実行クロックサイクル"２"及び"３"において、スレッド選択信号ＴＳＥＬはスレッド２及び３を指定するため、割込要求選択回路１０６は、割り込み要求Ａを選択せず、保留する。そして、実行クロックサイクル"４"において、スレッド選択信号ＴＳＥＬはスレッド０を指定するため、割込要求選択回路１０６は、割り込み要求Ａを選択する。そして、割込受付判定回路１０７は、割り込み要求Ａを許可する。また、演算回路１０は、実行クロックサイクル"４"においてスレッド選択信号ＴＳＥＬに基づいてスレッド０で割り込み要求Ａに基づく割込受付処理を実行する。以降、スレッド０及び１において後続の割込ルーチンが実行される。
【００４７】
つまり、実行クロックサイクル"１"において、割込要求選択回路１０６が複数の割り込み要求Ａ及びＢのうち割り込み要求Ｂに絞り込んで割込受付判定回路１０７へ出力するため、割込受付判定回路１０７は、割り込み要求Ａについての許否判定を実行する必要がない。そのため、割込受付判定回路１０７の構成は、１つの割り込み要求に対する許否判定が行えるものであればよい。それ故、特許文献１等と比べて、ハードウェア規模を縮小することができる。さらに、実行クロックサイクル"２"及び"３"では、割込要求選択回路１０６は割り込み要求Ａを選択しないため、割込受付判定回路１０７は割り込み要求Ａについての許否判定処理が不要となる。よって、消費電力等も抑えられる。
【００４８】
このように、他のスレッドにおける割り込み処理が自己のスレッドにおける命令実行に影響を受けない。よって、本実施の形態により特許文献１と同等の効果を維持しつつ、ハードウェア規模を抑えることができる。
【００４９】
図７は、本実施の形態１にかかる効果を説明するための図である。ここでは、割り込み要求Ｃを割り込み要求Ａより後の実行クロックサイクル"２"において受け付けた場合について説明する。スレッド割当回路１０４は、割り込み要求Ｃにスレッド３を割り当てるものとする。この場合、演算回路１０は、実行クロックサイクル"３"においてスレッド選択信号ＴＳＥＬに基づいてスレッド３で割り込み要求Ｃに基づく割込受付処理を実行する。この場合も実行クロックサイクル"３"において、割込要求選択回路１０６が複数の割り込み要求Ａ及びＣのうち割り込み要求Ｃに絞り込んで割込受付判定回路１０７へ出力するため、割込受付判定回路１０７は、割り込み要求Ａについての許否判定を実行する必要がない。よって、図６と同様に、ハードウェア規模を縮小し、消費電力等を軽減できるといえる。
【００５０】
特許文献１では、複数の割り込み要求を割り込み要因に応じてスレッドに割り当てるが、以後はスレッド単位での処理となるため、スレッド数に応じた各種処理回路が必要となる。つまり、割込受付判定回路１０７もスレッド数分必要となる。そのため、特許文献１等では、必要なハードウェア規模がスレッド数に応じて肥大化するおそれがある。
【００５１】
そこで、本実施の形態１では、演算回路１０と同様に、割り込み要求処理についても時分割に処理を行うものである。つまり、あるサイクルにおいて、割り込み処理を実行できるのは、１つのスレッドに割り当てられた割り込み要求であるため、割り込み可否判定対象の割り込み要求を絞り込むことができる。その結果、割込要求選択回路１０６により選択されない割り込み要求に対する割込受付判定回路１０７が不要となり、１つのみで実現可能となる。よって、特許文献１に比べて、ハードウェア規模を抑えることができる。
【００５２】
このとき、マルチスレッドプロセッサ１００では、少なくとも、割込要求選択回路１０６がスレッド割当回路１０４の後段であり、かつ、割込受付判定回路１０７の前段に配置されるものである。これにより、割込受付判定回路１０７の冗長化を回避できる。
【００５３】
また、スレッド選択回路１０３におけるスレッド選択に用いられるスレッド選択信号ＴＳＥＬを、割込要求選択回路１０６における割り込み信号の選択に用いることで、実行対象のスレッドと同期が取れる。そのため、割り込みの許否判定を効率的に実行することができる。
【００５４】
さらに、スレッド選択信号ＴＳＥＬを用いて割り込み処理を時分割で行うことにより、各ハードウェアスレッドが予め設定されたスレッドの実行時間内で割り込み処理を開始することができ、割り込みの応答性の確保が可能となる。
【００５５】
さらにまた、他のスレッドに対する割り込み要求によって、予め設定されたスレッドの実行時間に影響を受けることがなく、命令実行性能の確保が可能となる。
【００５６】
また、ステップＳ１０３において、複数の割り込み要求ＩＳ０〜ＩＳ３のうち選択がされなかった割り込み要求について、次にスレッド選択信号ＴＳＥＬを受け付けるまでの間、保留することにより、特許文献１等では、スレッド数分の割込受付判定回路１０７において保留されていた分の消費電力等も軽減できる。
【００５７】
＜実施の形態２＞
本実施の形態２では、実施形態１に加え、スレッドスケジューラ１９によるスケジュールより優先して処理する割り込み要求を設定可能とするものである。図８は、本実施の形態２にかかるマルチスレッドプロセッサ１００ａが有する割り込みコントローラ１１ａの構成を示すブロック図である。本実施の形態２にかかるマルチスレッドプロセッサ１００ａの構成は、スレッド割当回路１０４がスレッド割当回路１０４ａに、また、割込要求選択回路１０６が割込要求選択回路１０６ａに置き換わったものである。スレッド割当回路１０４ａは、割込要求選択回路１０６ａに対して、割り込み要求ＩＳ０からＩＳ３に加え、高優先の割り込み要求ＩＳＸを出力する。
【００５８】
本実施の形態２にかかる割込要求選択回路１０６ａは、複数の割り込み要求と共に、ハードウェアスレッドが割り当てられていない未割当割り込み要求を受け付けた場合、複数の割り込み要求に優先して当該未割当割り込み要求を選択する。未割当割り込み要求とは、例えば、システム全体に対する割り込み要求であるとよい。これにより、上位権限への遷移やシングルスレッド動作への遷移を行い、スレッドスケジュールを切り替え、高速な割り込み処理を行うことができる。尚、上記未割当割り込み要求は一例であり、複数の割り込み要求よりも優先度の高い高優先割り込み要求に相当するものあれば、同様の効果を奏する。また、図８のその他の構成は、図２と同等であるため、詳細な説明を省略する。
【００５９】
図９は、本実施の形態２にかかる割込要求選択回路１０６ａの構成を示すブロック図である。割込要求選択回路１０６ａは、割り込み要求ＩＳ０〜ＩＳ３に加え、高優先の割り込み要求ＩＳＸを受け付ける。また、割込要求選択回路１０６ａは、割込要求選択回路１０６と比べて、セレクタ１０６１の後段にセレクタ１０６２を追加したものである。つまり、セレクタ１０６１は、スレッド選択信号ＴＳＥＬに基づいて割り込み要求ＩＳ０〜ＩＳ３のいずれかを選択し、当該選択した割り込み要求をセレクタ１０６２へ出力する。セレクタ１０６２は、高優先の割り込み要求ＩＳＸと、セレクタ１０６１からの出力信号とを受け付け、高優先の割り込み要求ＩＳＸが有効であれば、高優先の割り込み要求ＩＳＸを選択して割り込み要求ＩＳＳ１として出力する。
【００６０】
図１０は、本実施の形態２にかかる割り込み要求処理の流れを示すフローチャートである。以下では図５との違いを中心に説明する。ステップＳ１０２の後、割込要求選択回路１０６ａは、スレッドが未割り当ての割り込み要求つまり未割当割り込み要求が存在するか否かを判定する（Ｓ２０１）。すなわち、セレクタ１０６２は、高優先の割り込み要求ＩＳＸが有効か否かを判定する。
【００６１】
ステップＳ２０１において未割当割り込み要求が存在すると判定した場合、すなわち、高優先の割り込み要求ＩＳＸが有効と判定した場合、割込要求選択回路１０６ａは、未割り当ての割り込み要求を選択して（Ｓ２０２）、割り込み要求ＩＳＳ１として割込受付判定回路１０７へ出力する。この場合、割り込み要求ＩＳ０〜ＩＳ３は全て保留される。そして、ステップＳ１０４以降を実行する。よって、演算回路１０は、結果的に、スレッド選択信号ＴＳＥＬを無視して割り込み処理を開始することとなる。
【００６２】
一方、ステップＳ２０１において未割当割り込み要求が存在しないと判定した場合、すなわち、高優先の割り込み要求ＩＳＸが無効と判定した場合、割込要求選択回路１０６ａは、割り込み要求ＩＳ０〜ＩＳ３の中からスレッド選択信号ＴＳＥＬに指定されたスレッドと一致する割り込み信号を選択する（Ｓ１０３）。この場合、選択されなかった割り込み信号が保留される。以降は、図５と同様である。
【００６３】
尚、図９の割込要求選択回路１０６ａの構成は、スレッド選択信号ＴＳＥＬがスレッド０〜３のいずれかを指定することを前提としている。そのため、高優先の割り込み要求ＩＳＸが発生した場合には、スレッドスケジューラ１９のスケジュールを実質的に無視すべく、セレクタ１０６１の後段にセレクタ１０６２を設けることで、高優先の割り込み要求ＩＳＸを優先する構成としている。
【００６４】
高優先の割り込み要求ＩＳＸを優先して割り込み処理を実行するための他の構成としては、スレッドスケジューラ１９の設定により、スレッド選択信号ＴＳＥＬに割り込み用のスレッドを指定させることが挙げられる。その場合、割込要求選択回路１０６ａでは、割り込み要求ＩＳ０〜ＩＳ３並びにＩＳＸの中から、スレッド選択信号ＴＳＥＬに基づいて選択することで実現可能である。
【００６５】
図１１は、本実施の形態２にかかる効果を説明するための図である。ここでは、実行クロックサイクル"１"において、スレッド割当回路１０４は、割り込み要求Ｂ及びＤを受け付けるものとする。尚、割り込み要求Ｄは上述した高優先の割り込み要求ＩＳＸに相当するものとする。そして、スレッド割当回路１０４は、割り込み要求Ｂにスレッド１を割り当て、割り込み要求Ｄに割り込みスレッドを割り当てるものとする。例えば、スレッドスケジューラ１９は、割り込み要求Ｄに応じてスレッドスケジュールをシングルスレッドである割り込みスレッドに切り替えるものとする。
【００６６】
そこで、実行クロックサイクル"１"において、割込要求選択回路１０６ａは、割り込み要求Ｄを選択し、割込受付判定回路１０７は、割り込み要求Ｄを許可する。また、演算回路１０は、実行クロックサイクル"１"において、スレッド選択信号ＴＳＥＬに基づいて割り込みスレッドでの処理を実行する。ここでは、演算回路１０は、割り込みスレッドで割り込み要求Ｄに基づく割込受付処理を実行する。以降、実行クロックサイクル"２"から"４"の間、割り込みスレッドで割り込み要求Ｄに基づく割込ルーチンが実行される。同時に割り込み要求Ｂは、実行クロックサイクル"１"から"４"の間、保留される。その後、実行クロックサイクル"５"において、スレッド選択信号ＴＳＥＬがスレッド１を指定するため、割り込み要求Ｂに基づく割込受付処理が実行される。
【００６７】
このように、本実施の形態２では、スレッドに割り当てられていない割り込み要求を、スレッドが割り当てられた割り込み要求より優先して処理することができる。これにより、高速な処理が必要な割り込み要求に対して、スレッドスケジュールを切り替えて高速に割り込む処理を実行可能となる。
【００６８】
＜実施の形態３＞
上述した実施の形態１及び２では、スレッド割当回路１０４内にスレッド数分の優先度判定回路を有していた。優先度判定回路は、ｎチャネルの割り込み要求ＩＳＩをスレッド数の割り込み要求ＩＳ０〜ＩＳ３に絞り込む点で有効であるが、スレッド数の増加に伴い、回路規模が増大する懸念がある。そこで、本実施の形態３では、優先度判定回路を割込受付判定回路１０７内に設けるものである。いわば、割り込みコントローラ自体を時分割多重で実現するものといえる。
【００６９】
図１２は、本実施の形態３にかかるマルチスレッドプロセッサ１００ｂが有する割り込みコントローラ１１ｂの構成を示すブロック図である。マルチスレッドプロセッサ１００ｂは、マルチスレッドプロセッサ１００との違いとして、スレッド割当回路１０４ｂ、割込要求選択回路１０６ｂ、割込受付判定回路１０７ａに置き換わり、さらに優先度レジスタ１１１を割込受付判定回路１０７ａに接続したものである。つまり、割り込みコントローラ１１ｂは、スレッド割当回路１０４ｂ、スレッドバインドレジスタ１０５、割込要求選択回路１０６ｂ、割込受付判定回路１０７ａ、優先度レジスタ１１１及び割込許可レジスタ１０８を備える。
【００７０】
スレッド割当回路１０４ｂは、スレッド割当回路１０４との違いとして、優先度判定回路を有さない。よって、スレッド割当回路１０４ｂは、スレッド当たり１つの割り込み要求に絞り込むのではなく、スレッド当たり複数の割り込み要求を含む割り込み要求群ＩＳ０ａ〜ＩＳ３ａを出力する。これにより、スレッド割当回路１０４ｂにおいてスレッド数に依存した回路を回避できる。
【００７１】
割込要求選択回路１０６ｂは、スレッド割当回路１０４ｂから受け付けた割り込み要求群ＩＳ０ａ〜ＩＳ３ａの中から、スレッド選択信号ＴＳＥＬを用いて１つの割り込み要求群ＩＳＳ１ａを選択する。つまり、割り込み要求群ＩＳＳ１ａは、２以上の割り込み要求を含む。このように、割込要求選択回路１０６ｂは、スレッド選択信号ＴＳＥＬで指定されたスレッドが割り当てられた割り込み要求を選択している点で、割込要求選択回路１０６と同様の効果を奏する。
【００７２】
そして、割込受付判定回路１０７ａは、割込要求選択回路１０６ｂにより選択された割り込み要求群ＩＳＳ１ａの中から、割り込み要因の優先度が高い優先割り込み要求を検出し、当該優先割り込み要求について、命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する。つまり、後段の割込受付判定回路１０７ａは、スレッド数に依存した回路構成は不要であり、１つの割り込み要求群ＩＳＳ１ａに対する処理が可能なものであればよい。これにより、さらにハードウェア規模を削減することができる。いわば、優先度判定部も時分割に処理するものといえる。
【００７３】
図１３は、本実施の形態３にかかる割込受付判定回路１０７ａの構成を示すブロック図である。割込受付判定回路１０７ａは、優先度マスク１０７１、受付許可判定部１０７２及び例外優先判定部１０７３に加えて、優先度判定部１０７６を備える。優先度判定部１０７６は、割り込み要求群ＩＳＳ１ａに含まれる各割り込み要求について、優先度レジスタ１１１を参照し、割り込み要因に応じた優先度を判定する。つまり、優先度判定部１０７６は、全ての割り込み要因における割り込み要求ＩＳＩではなく、割込要求選択回路１０６ｂによりいずれかのスレッドに絞り込まれた割り込み要求群ＩＳＳ１ａに含まれる割り込み要求分の優先度の判定で足りる。よって、実施形態１及び２に比べて、優先度判定部１０７６の回路規模を軽減でき、かつ、同等の効果を奏することができる。
【００７４】
＜実施の形態４＞
本実施の形態４では、上述した実施の形態３の構成をマルチコアシステムに適用した場合について説明する。つまり、複数のプロセッサコア間で割り込みコントローラを共有する場合である。そして、ハードウェアスレッドをプロセッサコアに置き換えたものである。そのため、スレッド選択信号ＴＳＥＬに代えて、割り込み要求の処理対象プロセッサを指定するためのプロセッサ選択信号ＰＳＥＬを用いるものとする。
【００７５】
図１４は、本実施の形態４にかかるマルチコアシステム２００の構成を示すブロック図である。マルチコアシステム２００は、プロセッサ２２０〜２２３と、これらにより共有される割り込みコントローラ２１０とを備える。プロセッサ２２０〜２２３のそれぞれは、シングルスレッド又はマルチスレッドのいずれであっても構わない。また、マルチスレッドである場合、各プロセッサ内にスレッドスケジューラを備えていても構わない。
【００７６】
割り込みコントローラ２１０は、プロセッサ割当部２１１と、スケジュール制御部２１２と、プロセッサ選択部２１３と、優先度判定部２１４（出力部）と、優先度レジスタ２１５とを備える。プロセッサ割当部２１１は、複数の異なる割り込み要因に応じた複数の割り込み要求ＩＳＩを受け付け、当該複数の割り込み要因に関連付けられた複数のプロセッサコア２２０〜２２３のいずれかを、複数の割り込み要求の割り込み要因に応じて各割り込み要求に割り当てる。そして、プロセッサ割当部２１１は、割り込み要求群ＩＳ０ｂ〜ＩＳ３ｂをプロセッサ選択部２１３へ出力する。尚、プロセッサ割当部２１１は、割り込み要因ごとにプロセッサと関連付けたレジスタを内蔵するものとする。
【００７７】
スケジュール制御部２１２は、プロセッサコア２２０〜２２３のうち、いずれが割り込み要求の受け付け対象であるかを指定したプロセッサ選択信号ＰＳＥＬを出力する。スケジュール制御部２１２は、プロセッサコア２２０〜２２３から逐次、処理状況の通知を受け付け、プロセッサ選択信号ＰＳＥＬを生成するものとする。尚、スケジュール制御部２１２は、プロセッサコア２２０〜２２３からの処理状況の通知の代わりに、予め設定されたスケジュール設定レジスタを有するようにしてもよい。
【００７８】
プロセッサ選択部２１３は、プロセッサ割当部２１１により割り当てられた複数の割り込み要求群ＩＳ０ｂ〜ＩＳ３ｂの中から、プロセッサ選択信号ＰＳＥＬにより指定されたプロセッサコアが割り当てられた割り込み要求群ＩＳＳ１ｂを選択する。優先度判定部２１４は、優先度レジスタ２１５を参照し、プロセッサ選択部２１３により選択された割り込み要求群ＩＳＳ１ｂについて、割り込み要因の優先度が高い優先割り込み要求を選択し、当該優先割り込み要求が割り当てられたプロセッサコアへ優先割り込み要求ＩＳＳ２として出力する。
【００７９】
このように、本実施の形態４にかかるマルチコアシステム２００により、複数のプロセッサコアで共有される割り込みコントローラの優先度判定部における回路規模を縮小することができる。同様に、電力消費を軽減できる。
【００８０】
尚、本実施の形態４は、複数のプロセッサコアに対する割り込み処理方法でもある。すなわち、まず、異なる割り込み要因に応じた複数の割り込み要求を受け付ける。次に、前記複数の割り込み要因に関連付けられた複数のプロセッサコアのいずれかを、前記複数の割り込み要求の割り込み要因に応じて各割り込み要求に割り当てる。そして、前記割り当てられた複数の割り込み要求の中から、指定されたプロセッサコアが割り当てられた割り込み要求群を選択する。その後、前記選択された割り込み要求群について、割り込み要因の優先度が高い優先割り込み要求を選択する。そして、前記優先割り込み要求が割り当てられたプロセッサコアへ当該優先割り込み要求を出力するものである。これにより、同様の効果を奏することができる。
【００８１】
＜実施の形態５＞
上述した実施の形態１〜３では、スレッドスケジューラ１９が出力するスレッド選択信号ＴＳＥＬを用いたが、割込要求選択回路１０６等は、必ずしもスレッド選択信号ＴＳＥＬそのものの信号値により割り込み要求を選択する必要はない。割込要求選択回路１０６等は、例えば、スレッド選択信号ＴＳＥＬに対応した他の信号値に基づいて、割り込み要求を選択するようにしてもよい。
【００８２】
さらに、割込要求選択回路１０６等は、スレッド選択信号ＴＳＥＬを用いなくても構わない。例えば、本実施の形態１〜３は、スレッドスケジューラ１９を有さないマルチスレッドプロセッサにおいても適用可能である。その場合、演算回路１０において命令実行対象のハードウェアスレッドと同期を取って、割込要求選択回路１０６等は、当該スレッドが割り当てられた割り込み要求を選択するように構成するとよい。つまり、少なくとも割り込み要求処理が時分割で処理するものであればよい。これにより、ハードウェア規模を抑えることができ、消費電力も軽減できる。また、命令実行性能の確保が可能となる。
【００８３】
＜その他の実施の形態＞
尚、実施の形態１〜３及び５では、マルチスレッドプロセッサを対象としたが、他の実施形態として割り込み制御装置を単体として実現することも可能である。すなわち、割り込み制御装置は、割当部と、選択部と、判定部と、を備える。当該割当部は、異なる割り込み要因に応じた複数の割り込み要求を受け付け、当該複数の割り込み要因に関連付けられた複数のハードウェアスレッドのいずれかを、前記複数の割り込み要求の割り込み要因に応じて各割り込み要求に割り当てる。また、選択部は、前記割り当てられた複数の割り込み要求の中から、命令実行対象のハードウェアスレッドが割り当てられた割り込み要求を選択する。そして、判定部は、前記選択された割り込み要求について、前記命令実行対象のハードウェアスレッドにおける割り込みの許否を判定する。これにより、実施形態１と同等の効果を奏することができる。
【００８４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８５】
１００  マルチスレッドプロセッサ
１００ａ  マルチスレッドプロセッサ
１００ｂ  マルチスレッドプロセッサ
２  メモリ
１０  演算回路
１１  割り込みコントローラ
１１ａ  割り込みコントローラ
１１ｂ  割り込みコントローラ
１２  ＰＣ生成回路
１３、１８  セレクタ
１４  命令メモリ
１５  命令バッファ
１６  パイプライン制御回路
１７  命令フェッチコントローラ
１９  スレッドスケジューラ
２１  命令デコーダ
２２  実行ユニット
２３  データレジスタ
１０４  スレッド割当回路
１０４ａ  スレッド割当回路
１０４ｂ  スレッド割当回路
１０５  スレッドバインドレジスタ
１０６  割込要求選択回路
１０６ａ  割込要求選択回路
１０６ｂ  割込要求選択回路
１０６１  セレクタ
１０６２  セレクタ
１０７  割込受付判定回路
１０７ａ  割込受付判定回路
１０７１  優先度マスク
１０７２  受付許可判定部
１０７３  例外優先判定部
１０７４  優先度マスク設定信号
１０７５  他の例外要求
１０７６  優先度判定部
１０８  割込許可レジスタ
ＴＰＣ０〜ＴＣＰ３  スレッドプログラムカウンタ
１１１  優先度レジスタ
１１２  割り込みコントローラ
ＢＵＦ０〜ＢＵＦ３  命令バッファ領域
ＩＳＩ  割り込み要求
ＩＳ０  割り込み要求
ＩＳ１  割り込み要求
ＩＳ２  割り込み要求
ＩＳ３  割り込み要求
ＩＳＸ  高優先の割り込み要求
ＩＳＳ１  割り込み要求
ＩＳＳ２  割り込み要求
ＴＳＥＬ  スレッド選択信号
ＩＳ０ａ  割り込み要求群
ＩＳ１ａ  割り込み要求群
ＩＳ２ａ  割り込み要求群
ＩＳ３ａ  割り込み要求群
ＩＳＳ１ａ  割り込み要求群
Ａ  割り込み要求
Ｂ  割り込み要求
Ｃ  割り込み要求
Ｄ  割り込み要求
２００  マルチコアシステム
２１０  割り込みコントローラ
２１１  プロセッサ割当部
２１２  スケジュール制御部
２１３  プロセッサ選択部
２１４  優先度判定部
２１５  優先度レジスタ
２２０  プロセッサ
２２１  プロセッサ
２２２  プロセッサ
２２３  プロセッサ
ＩＳ０ｂ  割り込み要求群
ＩＳ１ｂ  割り込み要求群
ＩＳ２ｂ  割り込み要求群
ＩＳ３ｂ  割り込み要求群
ＩＳＳ１ｂ  割り込み要求群
ＰＳＥＬ  プロセッサ選択信号
【図１】
2014067248.tif 000003
【図２】
2014067248.tif 000004
【図３】
2014067248.tif 000005
【図４】
2014067248.tif 000006
【図５】
2014067248.tif 000007
【図６】
2014067248.tif 000008
【図７】
2014067248.tif 000009
【図８】
2014067248.tif 000010
【図９】
2014067248.tif 000011
【図１０】
2014067248.tif 000012
【図１１】
2014067248.tif 000013
【図１２】
2014067248.tif 000014
【図１３】
2014067248.tif 000015
【図１４】
2014067248.tif 000016