(57)【特許請求の範囲】
【請求項１】
複数のコアを備えたプロセッサであって、
割込み処理にのみ用いられる二以上の割込み処理専用コアと、
割込みの要因が発生すると、割込み要求を出力する通常コアと、
前記割込み要求を受け付けると、割込みベクタによる処理を前記割込み処理専用コアに割り当てる割込み制御部とを備え、
前記割込み制御部が、
割込みベクタと前記割込み処理専用コアとを対応付けたテーブルを記憶する記憶部と、
前記割込み要求を受け付ける割込み受付部と、
前記テーブルを参照して、前記割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する検索部と、
割込みトランザクションの割込み先フィールドを、前記検索部で選ばれた割込み処理専用コアを示すコア番号に書き換える割込み先フィールド書換え部と、
前記検索により選ばれた割込み処理専用コアに対し前記割込みトランザクションを送る送信部とを有した
ことを特徴とするプロセッサ。
【請求項２】
前記割込み処理専用コアが、オペレーティングシステムから見えないコアである
ことを特徴とする請求項１記載のプロセッサ。
【請求項３】
前記割込み処理専用コアを複数備え、
前記割込み制御部が、
前記割込み要求を受け付けると、前記割込み要求に含まれる割込みベクタに対応したコアを、前記複数の割込み処理専用コアの中から選択し、この選択したコアに、割込みベクタによる処理を割り当てる
ことを特徴とする請求項１又は２記載のプロセッサ。
【請求項４】
前記通常コアが、前記割込みの要因が発生すると、割込みフラグをセットし、
前記割込み受付部が、前記割込み要求を受け付けると、前記通常コアに対して前記割込みフラグをリセットさせる
ことを特徴とする請求項１〜３のいずれかに記載のプロセッサ。
【請求項５】
一又は二以上のプロセッサを備えた電子機器であって、
前記プロセッサが、上記請求項１〜４のいずれかに記載のプロセッサを含む
ことを特徴とする電子機器。
【請求項６】
割り当てたコアに割込みベクタによる処理を実行させる割込み制御方法であって、
プロセッサに備えられた複数のコアのうちの二以上のコアを割込み処理にのみ用いられる割込み処理専用コアとし、前記プロセッサに備えられた割込み制御部の記憶部が、割込みベクタと前記割込み処理専用コアとを対応付けたテーブルを記憶する処理と、
前記プロセッサに備えられた複数のコアのうち割込みの要因が発生すると割込み要求を出力するコアを通常コアとし、前記割込み制御部の割込み受付部が、前記通常コアから出力された前記割込み要求を受け付ける処理と、
前記割込み制御部の検索部が、前記テーブルを参照して、前記割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する処理と、
前記割込み制御部の割込み先フィールド書換え部が、割込みトランザクションの割込み先フィールドを、前記検索部で選ばれた割込み処理専用コアを示すコア番号に書き換える処理と、
前記割込み制御部の送信部が、前記検索により選ばれた割込み処理専用コアに対し前記割込みトランザクションを送る処理とを有した
ことを特徴とする割込み制御方法。
【請求項７】
割込みベクタによる処理をコアに割り当てる処理を割込み制御部に実行させるための割込み制御プログラムであって、
プロセッサに備えられた複数のコアのうちの二以上のコアを割込み処理にのみ用いられる割込み処理専用コアとして、割込みベクタと前記割込み処理専用コアとを対応付けたテーブルを記憶する処理と、
前記プロセッサに備えられた複数のコアのうち割込みの要因が発生すると割込み要求を出力するコアを通常コアとし、この通常コアから出力された前記割込み要求を受け付ける処理と、
前記テーブルを参照して、前記割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する処理と、
割込みトランザクションの割込み先フィールドを、前記検索により選ばれた割込み処理専用コアを示すコア番号に書き換える処理と、
前記検索により選ばれた割込み処理専用コアに対し前記割込みトランザクションを送る処理と
を前記プロセッサに備えられた割込み制御部に実行させる
ことを特徴とする割込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを搭載したプロセッサ、このプロセッサを備えた電子機器、プロセッサにおける割込みの処理手順を示した割込み制御方法、及び、この割込み制御方法を実行するための割込み制御プログラムに関し、特に、割り当てたコアに対して割込みベクタによる処理を実行させるプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムに関する。
【背景技術】
【０００２】
これまでのマイクロプロセッサ（ＭＰＵ。以下、単に「プロセッサ」という。）は、命令発行器や演算器等で構成されたプロセッサコア（ＣＰＵ。以下、単に「コア」という。）がパッケージの中に一セット搭載されていた。これに対し、近年では、互いに独立したコアが複数個搭載されるようになり、いわゆるマルチコア、メニーコアの時代を迎えている。
今後、さらにその技術は、進化すると予測でき、多数のコアを搭載するプロセッサが登場し、多様なコアの使用用途が生まれるものと考えられている。
【０００３】
ところで、プロセッサが搭載されたコンピュータシステムにおいては、割込みと呼ばれる処理が実行される。
割込みとは、プログラム処理中に割込み要求を行うことで、そのプログラム処理を中断し、割込み処理プログラム（割込みハンドラ）を実行することをいう。
この割込み処理の一般的な動作手順を、図５、図６を参照して説明する。図５は、割込みを説明するためのハードウエア構成の例（電子機器（パーソナルコンピュータ）における制御系の構成）を示すブロック図、図６は、割込みの手順を示す動作手順図である。
【０００４】
まず、キーボードやマウスなどの周辺機器１１０は、割込みの要因が発生すると（ステップ１０１）、割込みコントローラ１２０へ割込み処理要求を送る（ステップ１０２）。
割込みコントローラ１２０は、割込み処理要求を受け取ると、割込み要求フラグをセットする（ステップ１０３）。ここで、割込みコントローラ１２０は、そのフラグをセットした割込みのプライオリティ（優先度）の決定や、マスク処理（マスクレジスタによるマスクの有効・無効の決定）などを行う。そして、マスクしなかった割込みについて、優先度の高い順に、割込み要求信号をＣＰＵ１３０へ送る（ステップ１０４）。
ＣＰＵ１３０は、割込みコントローラ１２０からの割込み要求信号を受け付けると、その割込み要求信号の有する割込み番号を用いて割込みベクタを参照し（ステップ１０５）、この割込みベクタに書かれた番地に制御を移し、割込みハンドラを実行する（ステップ１０６）。
【０００５】
このように、コンピュータ処理においては、割込みが発生した場合には、割込みベクタにより、継続していた処理を中断し割り込み処理を行っていた。
ところが、割込み処理が発生すると、処理の中断により処理時間が遅延するという課題があった。また、割込み処理によりキャッシュの内容が書き換えられてしまう場合があり、通常処理に復帰した後の処理速度の低下が発生する場合もあり課題であった。
【０００６】
そこで、処理速度が遅延することなく、割込みを行う技術が提案されている（例えば、特許文献１参照。）。
例えば、オペレーティングシステム（ＯＳ）と、通常タスク処理専用ＣＰＵ（通常処理ＣＰＵ）と、割込みタスク処理専用ＣＰＵ（割込み処理ＣＰＵ）と、メモリとを備え、ＯＳは、通常処理ＣＰＵにて通常タスク実行中に割込みが発生すると、割込み要因に応じて割込み処理ＣＰＵを割り当てて、割込み処理を実行させることとしている。
このような構成によれば、割込み応答に必要な時間が割込み処理ＣＰＵの割り当てを行うための時間だけでよいことから、プログラムカウンタやレジスタの退避に要する時間が不要となり、割込み処理の高速化が図れる。
【特許文献１】特開平０４−０３３１３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術においては、割込み処理ＣＰＵの割り当てをＯＳが行っていた。
サーバの領域において、ＯＳは、各ハードベンダや、ソフトベンダの所有物となっていた。このため、ＯＳを開発していないサーバベンダには、ＯＳを変更することは困難であった。このことから、特許文献１に記載の技術は、実情に即しておらず、現実的、実用的ではなかった。
【０００８】
本発明は、上記の事情にかんがみなされたものであり、ＯＳに依存することなく、割込みの高速化を可能とするプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００９】
この目的を達成するため、本発明のプロセッサは、複数のコアを備えたプロセッサであって、割込み処理にのみ用いられる二以上の割込み処理専用コアと、割込みの要因が発生すると、割込み要求を出力する通常コアと、割込み要求を受け付けると、割込みベクタによる処理を割込み処理専用コアに割り当てる割込み制御部とを備え、割込み制御部が、割込みベクタと割込み処理専用コアとを対応付けたテーブルを記憶する記憶部と、割込み要求を受け付ける割込み受付部と、テーブルを参照して、割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する検索部と、割込みトランザクションの割込み先フィールドを、検索部で選ばれた割込み処理専用コアを示すコア番号に書き換える割込み先フィールド書換え部と、検索により選ばれた割込み処理専用コアに対し割込みトランザクションを送る送信部とを有した構成としてある。
【００１０】
また、本発明の電子機器は、一又は二以上のプロセッサを備えた電子機器であって、プロセッサが、前述のプロセッサを含む構成としてある。
【００１１】
また、本発明の割込み制御方法は、割り当てたコアに割込みベクタによる処理を実行させる割込み制御方法であって、プロセッサに備えられた複数のコアのうちの二以上のコアを割込み処理にのみ用いられる割込み処理専用コアとし、プロセッサに備えられた割込み制御部の記憶部が、割込みベクタと割込み処理専用コアとを対応付けたテーブルを記憶する処理と、プロセッサに備えられた複数のコアのうち割込みの要因が発生すると割込み要求を出力するコアを通常コアとし、割込み制御部の割込み受付部が、通常コアから出力された割込み要求を受け付ける処理と、割込み制御部の検索部が、テーブルを参照して、割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する処理と、割込み制御部の割込み先フィールド書換え部が、割込みトランザクションの割込み先フィールドを、検索部で選ばれた割込み処理専用コアを示すコア番号に書き換える処理と、割込み制御部の送信部が、検索により選ばれた割込み処理専用コアに対し割込みトランザクションを送る処理とを有した方法としてある。
【００１２】
また、本発明の割込み制御プログラムは、割込みベクタによる処理をコアに割り当てる処理を割込み制御部に実行させるための割込み制御プログラムであって、プロセッサに備えられた複数のコアのうちの二以上のコアを割込み処理にのみ用いられる割込み処理専用コアとして、割込みベクタと割込み処理専用コアとを対応付けたテーブルを記憶する処理と、プロセッサに備えられた複数のコアのうち割込みの要因が発生すると割込み要求を出力するコアを通常コアとし、この通常コアから出力された割込み要求を受け付ける処理と、テーブルを参照して、割込み要求に含まれる割込みベクタに対応した割込み処理専用コアを検索する処理と、割込みトランザクションの割込み先フィールドを、検索により選ばれた割込み処理専用コアを示すコア番号に書き換える処理と、検索により選ばれた割込み処理専用コアに対し割込みトランザクションを送る処理とをプロセッサに備えられた割込み制御部に実行させる構成としてある。
【発明の効果】
【００１３】
本発明のプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムによれば、割込み処理が発生した場合、割込み専用のコアにトランザクションを割り当てることとしたので、通常処理の中断を発生させないことが可能になり、処理の高速化を図ることができる。
また、通常処理のキャッシュデータの書き換えも発生しないため、キャッシュデータの有効利用による処理の高速化も実現できる。
さらに、割込みトランザクションの割り当てを、ＯＳではなく、割込み制御部（割込み制御コア）が行っているため、ＯＳに依存することなく、実情に即したかたちで、割込みの高速化を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明に係るプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムの好ましい実施形態について、図面を参照して説明する。
なお、以下の各実施形態におけるプロセッサ、電子機器、割込み制御方法は、プログラムに制御されたコンピュータにより実現することができる。プログラムは、例えば、記録媒体により提供される。記録媒体としては、たとえば、磁気ディスク，光ディスク，半導体メモリ，その他コンピュータで読み取り可能な任意の手段を使用することができる。
また、記録媒体に記録されたプログラムは、記録媒体を直接コンピュータに装着して当該コンピュータに読み込ませることができ、また、通信回線を介してコンピュータに読み込ませるようにしても良い。
【００１５】
［プロセッサ］
まず、本発明のプロセッサの実施形態について、図１、図２を参照して説明する。
図１は、本実施形態のプロセッサの構成を示すブロック図、図２は、図１に示すプロセッサの詳細な構成を示すブロック図である。
【００１６】
図１に示すように、プロセッサ１は、コア１１〜１ｎと、割込み処理専用コア２０（２０ｎ，２０ｍ，・・・）と、割込み制御部（割込み制御機構、割込み制御コア）３０とを有している。
コア（通常コア、ＣＰＵ）１１〜１ｎは、プロセッサ１に搭載された一般的なコアである。このコア１１〜１ｎは、周辺機器（又は割込みコントローラ）から割込み要求を受けると、割込みフラグをＯＮにする（セットする）。そして、割込み制御部３０からフラグＯＦＦ命令を受けることにより、割込みフラグをＯＦＦにする（リセットする）。
なお、コア１１〜１ｎは、図１、図２においては、二つ備えてあるが、二つに限るものではなく、一つ又は三つ以上備えることができる。
【００１７】
割込み処理専用コア２０は、割込み制御部３０から割込み処理の割り当てを受けると、割込みハンドラを実行する。すなわち、割込み処理専用コア２０は、割込みを実行する場合にのみ用いられるものであるため、割込み要求が発生しない限り、特に動作しない。
この割込み処理専用コア２０は、ＯＳから見えないコア、換言すれば、ＯＳが認識していないコア、ＯＳから隠蔽されたコアである。ＯＳからの隠蔽については、ファームウェアによる制御などの公知の技術を用いて実現できる。
なお、割込み処理専用コア２０は、図１、図２においては、二つ（２０ｎ，２０ｍ）のみ備えてあるが、二つに限るものではなく、一つ又は三つ以上備えることができる。
【００１８】
割込み制御部３０は、コアを用いて構成することができ、図２に示すように、割込み受付部（割込み受付機構、割込み受付手段）３１と、割込みコア指定部（割込みコア指定機構）３２と、割込み先フィールド書換え部（割込み先フィールド書換え機構、割込み先フィールド書換え手段）３３とを有している。
割込み受付部３１は、コア１１〜１ｎにある割込みフラグがセットされた場合に、割込み処理を受け付けるとともに、そのコア１１〜１ｎにフラグＯＦＦ命令を送って割込みフラグをリセットさせる機能を有している。
【００１９】
割込みコア指定部３２は、割込みベクタ番号をキーとして、割込みベクタ番号と割込み処理専用コア２０のコア番号とを対応付けたベクタ−コア対応テーブル３４を記憶する。
ベクタ−コア対応テーブル３４は、割込みベクタごとにどの割込み処理専用コア２０でトランザクションを処理させるかを定義（指定）したテーブルである。例えば、割込みベクタ番号０には割込み処理専用コア２０ｎが、割込みベクタ番号１には割込み処理専用コア２０ｍが、それぞれ対応付けられている。このように、ベクタ−コア対応テーブル３４に定義されるコア番号は、ＯＳから隠蔽された割込み処理専用コア２０のコア番号が指定される。
なお、割込みコア指定部３２は、ベクタ−コア対応テーブル３４を記憶することから「記憶部（記憶手段）」としての機能を有している。
【００２０】
また、割込みコア指定部３２は、割込み受付部３１から割込み要求を受けると、この割込み要求に含まれる割込みベクタを取り出し、この取り出した割込みベクタをキーとして、ベクタ−コア対応テーブル３４を参照し、その割込みベクタに対応する割込み処理専用コア２０を抽出し、このコア番号を取り出す（割込み処理専用コア２０の検索）。この抽出された割込み処理専用コア２０が、割込みベクタによる処理が割り当てられたコアとなる。
このように、割込みコア指定部３２は、ベクタ−コア対応テーブル３４を参照して、割込み処理専用コア２０の検索を行うことから「検索部（検索手段）」としての機能を有している。
【００２１】
割込み先フィールド書換え部３３は、割込み処理をある特定のコアに処理させるため、割込みトランザクションの割込み先フィールドを書き換えて送信する。例えば、割込みコア指定部３２で割込み処理専用コア２０ｎが割り当てられると、割込みトランザクションの割込み先フィールドを割込み処理専用コア２０ｎのコア番号に書き換えて、割込み処理専用コア２０ｎに送信する。これにより、割込み処理専用コア２０ｎにトランザクションを起動させることができる。
なお、割込み先フィールド書換え部３３は、割込み処理専用コア２０ｎに対して割込みトランザクションを送信することから「送信部（送信手段）」としての機能を有している。
【００２２】
［割込み制御方法］
次に、本実施形態のプロセッサの動作（割込み制御方法）について、図３、図４を参照して説明する。
図３は、本実施形態の割込み制御方法の動作の概要を示すフローチャート、図４は、プロセッサの各構成における動作の流れを示す動作手順図である。
【００２３】
（動作の概要）
図３に示すように、コア１１〜１ｎは、周辺機器での割込みの要因の発生にもとづき割込みを検出すると（ステップ１１）、割込み要求フラグをセットする。そして、割込み要求を割込み制御部３０へ送る。
【００２４】
割込み制御部３０の割込み受付部３１は、コア１１〜１ｎから送られてきた割込み要求を受け付けるとともに（ステップ１２）、その割込み要求を送ってきたコア１１〜１ｎに対してフラグＯＦＦ命令を送り割込みフラグをリセットさせる（割込みフラグのクリア、ステップ１３）。
割込みコア指定部３２は、ベクタ−コア対応テーブル３４を参照し、割込み要求信号に含まれる割込みベクタ番号（割込みベクタ種類）をキーとして、その割込みベクタに対応する割込み処理専用コア２０を特定し、コア番号を取り出す（検索（索引）、ステップ１４、１５）。
【００２５】
割込み先フィールド書換え部３３は、割込みトランザクションの割込み先フィールドを、割込みコア指定部３２で取り出されたコア番号に書き換えて、このコア番号の示す割り込み処理専用コア２０へ送信する（ステップ１６）。
割込み先フィールド書換え部３３から割込みトランザクションを受けた割込み処理専用コア２０は、割込みハンドラを実行する。
これらの処理により、発生した割込み処理を割込み専用のコア２０に割り当てて割込みハンドラを実行させることができる。
【００２６】
（動作の詳細）
次に、プロセッサの各構成における動作の流れについて、図４を参照して説明する。
周辺機器は、割込みの要因が発生すると（ステップ２１）、割込み要求をコア１１〜１ｎへ送る（ステップ２２）。
コア１１〜１ｎは、割込み要求を受け取ると、割込み要求フラグをセットする（割込みの検出、ステップ２３）。そして、割込み要求を割込み制御部３０へ送る（ステップ２４）。
【００２７】
割込み制御部３０の割込み受付部３１は、コア１１〜１ｎから送られてきた割込み要求を受け付けると（ステップ２５）、これを割込みコア指定部３２へ送る（ステップ２６）。
また、割込み受付部３１は、割込み要求を受け付けると、その割込み要求を送ってきたコア１１〜１ｎに対しフラグＯＦＦ命令を送って割込みフラグをリセットさせる（ステップ２７、２８）。
このように、フラグをリセットすることにより、割込みが発生したコア１１〜１ｎは、割込みが発生していないと判断し、処理を中断せずにそのまま継続してきた処理を実行することができる。このため、処理の高速化を図ることができる。
【００２８】
割込みコア指定部３２は、ベクタ−コア対応テーブル３４を参照し、割込み要求信号に含まれる割込みベクタ番号をキーとして、その割込みベクタに対応する割込み処理専用コア２０を特定し、そのコア番号を抽出する（検索（索引）、ステップ２９）。この抽出されたコア番号が、割込み先フィールド書換え部３３へ送られる（ステップ３０）。
割込み先フィールド書換え部３３は、割込みトランザクションの割込み先フィールドを、割込みコア指定部３２で抽出されたコア番号に書き換えて（ステップ３１）、このコア番号の示す割り込み処理専用コア２０へ送信する（ステップ３２）。
このように、割込み先フィールドを書き換えることで、トランザクションを処理するコアを変更することが可能となる。
【００２９】
割込み先フィールド書換え部３３から割込みトランザクションを受けた割込み処理専用コア２０は、割込みハンドラを実行する（ステップ３３）。
これらの処理により、コア１１〜１ｎに対して発生した割込み処理を割込み専用のコア２０に割り当てることができる。
【００３０】
［電子機器］
本実施形態の電子機器とは、プロセッサを搭載した機器や装置をいう。
具体的には、例えば、プロセッサを搭載したパーソナルコンピュータ、家電製品、ＡＶ機器、ＯＡ機器、通信機器（携帯電話等を含む）、時計、ゲーム機などが含まれる。また、自動車，鉄道車両，船舶，航空機などの交通手段の制御系、ＡＴＭシステム，道路交通システム，管制塔システムなどの交通網を管理するシステムの制御系、発電設備，送配電設備，受電設備などの電力設備の制御系など、種々の制御系統において使用されるプロセッサ搭載の機器や装置が含まれる。
【００３１】
以上説明したように、本実施形態のプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムによれば、割込み処理が発生した場合、処理を実行中のコアではなく、割込み専用のコアにトランザクションを割り当てることとしたので、その通常処理の中断を発生させないことが可能になり、処理の高速化を図ることができる。
また、通常処理のキャッシュデータの書き換えも発生しないため、キャッシュデータの有効利用による処理の高速化も実現できる。
さらに、割込み処理の割り当てを、ＯＳではなく、割込み制御コアが行っているため、ＯＳに依存することなく、実情に即したかたちで、割込みの高速化を図ることができる。
【００３２】
以上、本発明のプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムの好ましい実施形態について説明したが、本発明に係るプロセッサ、電子機器、割込み制御方法及び割込み制御プログラムは上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、周辺機器で割込みの要因が発生するハードウエア割込みについて説明したが、ハードウエア割込みに限るものではなく、ソフトウエア割込みについても、本発明の適用は可能である。
【００３３】
また、一つのプロセッサにコア１１〜１ｎと割込み処理専用コア２０とを備えた構成としたが、この構成に限るものではなく、一つのプロセッサにコア１１〜１ｎが、他のプロセッサに割込み処理専用コア２０がそれぞれ備えた構成とすることもできる。
さらに、割込み制御部についても、コア１１〜１ｎや割込み処理専用コア２０とは異なるプロセッサに搭載することもできる。
【産業上の利用可能性】
【００３４】
本発明は、プロセッサにおける割込みに関する発明であるため、プロセッサを搭載した機器や装置に利用可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態におけるプロセッサの構成を示すブロック図である。
【図２】図１に示したプロセッサ詳細な構成を示すブロック図である。
【図３】図１に示したプロセッサの動作の概要を示すフローチャートである。
【図４】図１に示したプロセッサの各構成の動作を示す動作手順図である。
【図５】周辺機器、割込みコントローラ、ＣＰＵの接続関係を示すブロック図である。
【図６】図５に示した構成における動作の流れを示す動作手順図である。
【符号の説明】
【００３６】
１  プロセッサ
１１〜１ｎ  コア
２０  割込み処理専用コア
３０  割込み制御部（割込み制御機構、割込み制御コア）
３１  割込み受付部
３２  割込みフィールド指定部
３３  割込み先フィールド書換え部
３４  ベクタ−コア対応テーブル
【図１】
0005167844.tif 000002
【図２】
0005167844.tif 000003
【図３】
0005167844.tif 000004
【図４】
0005167844.tif 000005
【図５】
0005167844.tif 000006
【図６】
0005167844.tif 000007