(57)【要約】【課題】演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減する。【解決手段】ヘテロマルチプロセッサシステムにおいて、各ＣＰＵにおいて割り込みを受け付ける手段と、受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先ＣＰＵを選択する手段と、受け付けた割り込みをキューイングする手段と、選択した割り込み先ＣＰＵにＣＰＵ間割り込みを発生させる手段と、割り込み先ＣＰＵにおいて、ＣＰＵ間割り込みを受け取り、割り込み元ＣＰＵの割り込み処理を行い、割り込み元ＣＰＵにＣＰＵ間割り込みを発生させる各手段と、割り込み元ＣＰＵにおいて割り込み終了処理を行う手段と、割り込み先管理テーブルに問い合わせた結果の割り込み先ＣＰＵが自ＣＰＵであった場合には自ＣＰＵにおいて割り込み処理を行う手段とを具備する。【選択図】図１
2007148746.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１および第２のプロセッサおよび１つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムであって、
各プロセッサにおいて割り込みを受け付ける第１手段と、
前記受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先プロセッサを選択する第２手段と、
前記受け付けた割り込みをキューイングする第３手段と、
前記選択した割り込み先プロセッサにプロセッサ間割り込みを発生させる第４手段と、
前記割り込み先プロセッサにおいて前記プロセッサ間割り込みを受け取る第５手段と、
前記割り込み先プロセッサにおいて割り込み元プロセッサの割り込み処理を行う第６手段と、
前記割り込み先プロセッサにおいて前記割り込み元プロセッサに前記プロセッサ間割り込みを発生させる第７手段と、
前記割り込み元プロセッサにおいて割り込み終了処理を行う第８手段と、
前記割り込み先管理テーブルに問い合わせた結果の前記割り込み先プロセッサが自プロセッサであった場合には自プロセッサにおいて割り込み処理を行う第９手段と、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項２】
請求項１記載のヘテロマルチプロセッサシステムにおいて、
前記第１手段は、
割り込みコントローラからの割り込みを受け付ける手段と、
プロセッサ内部起因の割り込みを受け付ける手段と、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項３】
請求項２記載のヘテロマルチプロセッサシステムにおいて、
前記第１手段は、
割り込み受け付け処理を実行するプロセッサ種類毎のコード、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項４】
請求項１記載のヘテロマルチプロセッサシステムにおいて、
前記第２手段は、
前記割り込み先管理テーブルを前記ヘテロマルチプロセッサシステムが共有する記憶装置に置いて共有するか、もしくはプロセッサ間通信手段を利用してプロセッサ固有の記憶装置にある割り込み先管理テーブルの一貫性を保つ、
ことを特徴とするヘテロマルチプロセッサシステム。
【請求項５】
請求項４記載のヘテロマルチプロセッサシステムにおいて、
前記第２手段は、
発生したプロセッサ番号と割り込み番号を用いて前記割り込み先管理テーブルのエントリを選択する手段と、
前記選択したエントリから転送先プロセッサと割り込みレベルと終了処理の要否を取り出す手段と、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項６】
請求項５記載のヘテロマルチプロセッサシステムにおいて、
前記第２手段は、
前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合にはプロセッサのマスクレベルから割り込み可能なプロセッサを選択する手段、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項７】
請求項５記載のヘテロマルチプロセッサシステムにおいて、
前記第２手段は、
前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合にはＮＵＭＡ構成等において物理的に近傍にあるプロセッサを選択する手段、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項８】
請求項５記載のヘテロマルチプロセッサシステムにおいて、
前記第２手段は、
前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合には処理能力の高いプロセッサを選択する手段、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項９】
請求項１記載のヘテロマルチプロセッサシステムにおいて、
前記第３手段は、
選択したエントリの終了処理の要否に従い割り込み情報に終了割り込みの要否フラグを設定する手段と、
割り込みキューに割り込み情報を登録する手段と、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項１０】
請求項９記載のヘテロマルチプロセッサシステムにおいて、
前記第３手段は、
複数種類のプロセッサの割り込み情報を統一形式に変換して前記割り込みキューに登録する手段と、
複数種類の割り込みコントローラの割り込み情報を統一形式に変換して前記割り込みキューに登録する手段と、
を具備することを特徴とするヘテロマルチプロセッサシステム。
【請求項１１】
少なくとも第１および第２のプロセッサおよび１つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムのＯＳ構成方法であって、
割り込み元プロセッサにおいて割り込みを受け付ける第１手順と、
割り込み情報を生成する第２手順と、
前記割り込み元プロセッサにおいて割り込み先管理テーブルに問い合わせて受け付けた割り込みの割り込み先プロセッサを決定する第３手順と、
前記割り込み先プロセッサが自プロセッサであった場合には、前記割り込み情報を割り込みキューに登録し、現在のマスクレベルと比較して割り込めるならば前記割り込み情報を割り込み処理中に設定して自プロセッサにて割り込み処理を実行し、現在のマスクレベルと比較して割り込めない場合には割り込み前の処理に戻る第４手順と、
前記割り込み先プロセッサが自プロセッサ以外であった場合に、終了処理が必要であれば前記割り込み情報に終了割り込みを待つフラグを設定し、前記割り込み情報を割り込みキューに登録し、前記割り込み先プロセッサにプロセッサ間割り込みを発生させて割り込み前の処理に戻る第５手順と、
を具備することを特徴とするヘテロマルチプロセッサシステムのＯＳ構成方法。
【請求項１２】
請求項１１記載のヘテロマルチプロセッサシステムのＯＳ構成方法において、
前記第４手順は、
前記割り込みキューから前記割り込み先プロセッサへの前記割り込み情報を選択する手順と、
前記割り込み情報に含まれる割り込みレベルと割り込み先プロセッサコンテキストの割り込みマスクレベルを比較して割り込みの可否を判断する手順と、
前記選択した割り込み情報の割り込み状態を割り込み処理中に設定する手順と、
前記割り込み先プロセッサにおいて割り込み前のプロセッサコンテキストをプロセッサコンテキストキューのエントリに保存する手順と、
前記割り込み先プロセッサにおいて新しいプロセッサコンテキストエントリを作成して前記プロセッサコンテキストキューに登録する手順と、
前記割り込み先プロセッサのベクタテーブルから割り込みベクタを取り出して実行する手順と、
を具備することを特徴とするヘテロマルチプロセッサシステムのＯＳ構成方法。
【請求項１３】
請求項１２記載のヘテロマルチプロセッサシステムのＯＳ構成方法において、
前記第４手順は、
前記割り込み先プロセッサにおける割り込み処理が終わった場合にハイパバイザに割り込み処理終了を伝える手順と、
前記割り込みキューから処理していた割り込みに対応する割り込み情報を選択する手順と、
前記選択した割り込み情報を割り込み処理終了に設定する手順と、
割り込み転送元が他プロセッサであり、終了割り込みを発生させる必要があれば転送元プロセッサにプロセッサ間割り込みを発生する手順と、
前記割り込み転送元が自プロセッサであった場合には、プロセッサまたは割り込みコントローラの割り込み終了処理を行い、前記割り込みキューから割り込み情報を削除する手順と、
前記プロセッサコンテキストキューから現在のコンテキストを削除して割り込み前のコンテキストを現在のコンテキストとして実行を行う手順と、
を具備することを特徴とするヘテロマルチプロセッサシステムのＯＳ構成方法。
【請求項１４】
請求項１３記載のヘテロマルチプロセッサシステムのＯＳ構成方法において、
前記第４手順は、
前記割り込みキューから割り込み処理終了となっている割り込み情報を選択する手順と、
前記プロセッサまたは割り込みコントローラの割り込み終了処理を行い、前記割り込みキューから割り込み情報を削除する手順と、
前記プロセッサコンテキストキューから現在のコンテキストを削除して割り込み前のコンテキストを現在のコンテキストとして実行を行う手順と、
を具備することを特徴とするヘテロマルチプロセッサシステムのＯＳ構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサおよび割り込みコントローラを含むヘテロマルチプロセッサシステムに関し、特に、ヘテロマルチプロセッサシステムにおけるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）構成方法に適用して有効な技術に関する。
【背景技術】
【０００２】
例えば、プロセッサシステムにおけるＯＳ構成方法に関する技術としては、特許文献１に記載のような技術が挙げられる。この特許文献１には、第一のＯＳと他のＯＳが管理する資源を分離する手順と、他のＯＳを起動する手順と、実行ＯＳを切り替える手順と、割り込み要因により割り込み処理をするＯＳを決定し、適切な割り込みハンドラを起動する手順により、複数のＯＳの同時実行を可能にする技術が記載されている。
【特許文献１】特開平１１−１４９３８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、前記特許文献１のような技術では、一台の計算機の上で複数のＯＳを同時実行するために割り込みを含む資源をＯＳ毎に分割し、この割り込みの割り振りを割り込みコントローラへの設定によって行うことが記載されており、ソフトウェアで割り込みをオフロードする技術ではない。また、ホモジニアスプロセッサを対象としており、ヘテロプロセッサに対応するために割り込みインタフェースを統一化し、最適なＣＰＵに割り込み処理を実行させる技術ではない。
【０００４】
例えば、前記特許文献１の技術を、ヘテロプロセッサに適用すると、図１０のような構成になるものと考えられる。すなわち、図１０に示すようなヘテロマルチプロセッサシステムでは、ジョブＡ（１０１ａ）、ジョブＢ（１０１ｂ）、ＯＳ（１０２）、ＣＰＵＡ（１０４ａ）、ＣＰＵＢ（１０４ｂ）、割り込みコントローラＡ（１０５ａ）、割り込みコントローラＢ（１０５ｂ）、Ｄｉｓｋ（１０６）、ＮＷアダプタ（１０７）などからなる構成において、各ＣＰＵが割り当てられたデバイスを持ち、また、各ＣＰＵが異なる割り込みインタフェースを持っている。
【０００５】
このヘテロマルチプロセッサシステムにおいて、例えばＣＰＵＢ（１０４ｂ）が演算用のプロセッサである場合にも、図中楕円で囲んだ割り込みに対する制御が発生する。この場合、ＯＳ（１０２）内に、例えばページフォールト処理を２種類（ＣＰＵＡ用／ＣＰＵＢ用）用意することが必須となり、また、実際に演算主体に処理しているＣＰＵＢ（１０４ｂ）に割り込み処理が発生することで、演算処理の性能低下が避けられない。
【０００６】
そこで、本発明の目的は、演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減することができるヘテロマルチプロセッサシステムを提供することにある。
【０００７】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【０００９】
本発明は、少なくとも第１および第２のプロセッサ（ＣＰＵ）および１つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムに適用され、各プロセッサにおいて割り込みを受け付ける手段と、受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先プロセッサを選択する手段と、受け付けた割り込みをキューイングする手段と、選択した割り込み先プロセッサにプロセッサ間割り込みを発生させる手段と、割り込み先プロセッサにおいてプロセッサ間割り込みを受け取る手段と、割り込み先プロセッサにおいて割り込み元プロセッサの割り込み処理を行う手段と、割り込み先プロセッサにおいて割り込み元プロセッサにプロセッサ間割り込みを発生させる手段と、割り込み元プロセッサにおいて割り込み終了処理を行う手段と、割り込み先管理テーブルに問い合わせた結果の割り込み先プロセッサが自プロセッサであった場合には自プロセッサにおいて割り込み処理を行う手段とを具備することを特徴とするものである。
【００１０】
また、本発明は、前記ヘテロマルチプロセッサシステムのＯＳ構成方法に適用され、割り込み元プロセッサにおいて割り込みを受け付ける手順と、割り込み情報を生成する手順と、割り込み元プロセッサにおいて割り込み先管理テーブルに問い合わせて受け付けた割り込みの割り込み先プロセッサを決定する手順と、割り込み先プロセッサが自プロセッサであった場合には、割り込み情報を割り込みキューに登録し、現在のマスクレベルと比較して割り込めるならば割り込み情報を割り込み処理中に設定して自プロセッサにて割り込み処理を実行し、現在のマスクレベルと比較して割り込めない場合には割り込み前の処理に戻る手順と、割り込み先プロセッサが自プロセッサ以外であった場合に、終了処理が必要であれば割り込み情報に終了割り込みを待つフラグを設定し、割り込み情報をキューに登録し、割り込み先プロセッサにプロセッサ間割り込みを発生させて割り込み前の処理に戻る手順とを具備することを特徴とするものである。
【発明の効果】
【００１１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１２】
本発明によれば、演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減することができるヘテロマルチプロセッサシステムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１４】
まず、図１により、本発明の一実施の形態であるヘテロマルチプロセッサシステムの構成の一例を説明する。図１は、ヘテロマルチプロセッサシステムの構成の一例を示す図である。
【００１５】
本実施の形態のヘテロマルチプロセッサシステムは、ジョブＡ（１ａ）、ジョブＢ（１ｂ）、ＯＳ（２）、ハイパバイザ（３）、ＣＰＵＡ（４ａ）、ＣＰＵＢ（４ｂ）、割り込みコントローラＡ（５ａ）、割り込みコントローラＢ（５ｂ）、Ｄｉｓｋ（６）、ＮＷ（ＮｅｔＷｏｒｋ）アダプタ（７）などから構成される。
【００１６】
ジョブＡ（１ａ）は、システム制御を行うＣＰＵＡ（４ａ）上で動いているユーザプログラムである。ジョブＢ（１ｂ）は、主に演算を行うＣＰＵＢ（４ｂ）上で動いているユーザプログラムである。
【００１７】
ＯＳ（２）は、ＣＰＵＡ（４ａ）およびＣＰＵＢ（４ｂ）上でユーザプログラムを実行させる基本ソフトウェアである。このＯＳ（２）は、ＣＰＵＡ（４ａ）のＩＳＡ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ）で記述された、Ｄｉｓｋドライバ（２１）、割り込みコントローラＡ処理部（２２）、割り込みコントローラＢ処理部（２３）、ＮＷドライバ（２４）、ＣＰＵＡページ例外等処理部（２５）、ＣＰＵＢページ例外等処理部（２６）などのソフトウェアモジュールから構成されている。ＩＳＡは、ＣＰＵの命令セットを規定しており、ＣＰＵ毎に異なる。このＩＳＡで記述した命令列が、ＣＰＵ種類毎のコードとなる。
【００１８】
ＯＳ（２）内部のソフトウェアモジュールにおいて、Ｄｉｓｋドライバ（２１）は、ハードディスク等のＤｉｓｋ（６）を管理する。割り込みコントローラＡ処理部（２２）は、ＣＰＵＡ（４ａ）と組み合わされている割り込みコントローラＡ（５ａ）の割り込み処理を行う。割り込みコントローラＢ処理部（２３）は、ＣＰＵＢ（４ｂ）と組み合わされている割り込みコントローラＢ（５ｂ）の割り込み処理を行う。ＮＷドライバ（２４）は、ＮＷアダプタ（７）を管理する。ＣＰＵＡページ例外等処理部（２５）は、ＣＰＵＡ（４ａ）にて発生したページ例外の処理を行う。ＣＰＵＢページ例外等処理部（２６）は、ＣＰＵＢ（４ｂ）にて発生したページ例外の処理を行う。
【００１９】
ハイパバイザ（３）は、ＯＳ（２）の下位に位置する基本ソフトウェアである。このハイパバイザ（３）は、ＣＰＵＡ（４ａ）のＩＳＡで記述された、割り込み受付け部Ａ（３１ａ）、割り込み情報生成部Ａ（３２ａ）、割り込み先選択部Ａ（３３ａ）、割り込み転送部Ａ（３４ａ）、割り込み発生部Ａ（３５ａ）などのソフトウェアモジュールと、ＣＰＵＢ（４ｂ）のＩＳＡで記述された、割り込み受付け部Ｂ（３１ｂ）、割り込み情報生成部Ｂ（３２ｂ）、割り込み先選択部Ｂ（３３ｂ）、割り込み転送部Ｂ（３４ｂ）、割り込み発生部Ｂ（３５ｂ）などのソフトウェアモジュールと、ＣＰＵＡ（４ａ）とＣＰＵＢ（４ｂ）で共有する記憶装置のデータとしての、割り込み先管理テーブル（３６）、割り込みキュー（３７）、割り込みベクタテーブル（３８）などから構成されている。
【００２０】
ＣＰＵＡ（４ａ）のＩＳＡで記述されたハイパバイザ内部のソフトウェアモジュールにおいて、割り込み受付け部Ａ（３１ａ）は、割り込みコントローラＡ（５ａ）およびＣＰＵＡ（４ａ）内部の割り込みを受け付ける処理をする。割り込み情報生成部Ａ（３２ａ）は、割り込み番号、転送元ＣＰＵ、割り込みレベル等を含む割り込み情報エントリを生成する。割り込み先選択部Ａ（３３ａ）は、自ＣＰＵまたは複数ある他ＣＰＵのいずれに割り込み処理を転送するのかを選択する。割り込み転送部Ａ（３４ａ）は、割り込み先ＣＰＵの割り込みキューに割り込み情報エントリを登録する。割り込み発生部Ａ（３５ａ）は、割り込み先ＣＰＵにプロセッサ間割り込みを発生させ、割り込み転送を通知する。
【００２１】
ＣＰＵＢ（４ｂ）のＩＳＡで記述されたハイパバイザ内部のソフトウェアモジュールにおいて、割り込み受付け部Ｂ（３１ｂ）は、割り込みコントローラＢ（５ｂ）およびＣＰＵＢ（４ｂ）内部の割り込みを受け付ける処理をする。割り込み情報生成部Ｂ（３２ｂ）は、割り込み番号、転送元ＣＰＵ、割り込みレベル等を含む割り込み情報エントリを生成する。割り込み先選択部Ｂ（３３ｂ）は、自ＣＰＵまたは複数ある他ＣＰＵのいずれに割り込み処理を転送するのかを選択する。割り込み転送部Ｂ（３４ｂ）は、割り込み先ＣＰＵの割り込みキューに割り込み情報エントリを登録する。割り込み発生部Ｂ（３５ｂ）は、割り込み先ＣＰＵにプロセッサ間割り込みを発生させ、割り込み転送を通知する。
【００２２】
割り込みコントローラＡ（５ａ）は、割り込みコントローラＡ（５ａ）が管理しているデバイスからの割り込みをＣＰＵＡ（４ａ）に通知する機能を有する。割り込みコントローラＢ（５ｂ）は、割り込みコントローラＢ（５ｂ）が管理しているデバイスからの割り込みをＣＰＵＢ（４ｂ）に通知する機能を有する。
【００２３】
次に、図２により、プロセッサコンテキストキューの構成の一例について説明する。図２は、プロセッサコンテキストキューの一例を示す図である。
【００２４】
例えば、ＣＰＵＡ（４ａ）のコンテキストキューは、現在のコンテキスト、割り込み前のコンテキストからなる。ＣＰＵＢ（４ｂ）のコンテキストキューは、現在のコンテキスト、割り込み前のコンテキスト、更に一つ前の割り込み前のコンテキストからなる。各コンテキストには、プログラムカウンタ、各種レジスタ値、割り込みマスクなどの情報が登録される。
【００２５】
次に、図３により、割り込み先管理テーブルの構成の一例を説明する。図３は、割り込み先管理テーブルの構成の一例を示す図である。なお、図３はＣＰＵＡ用の割り込み先管理テーブルを示しており、ＣＰＵＢ用にも同様の割り込み先管理テーブルが設けられている。
【００２６】
割り込み先管理テーブル（３６）には、割り込み番号と、これに対応する、転送先ＣＰＵ、割り込みレベル、要終了処理などの情報が格納される。転送先ＣＰＵは、転送先のＣＰＵが“Ａ”か、または“Ｂ”かを示す。割り込みレベルは、数字が大きい程、割り込みの優先度が高い。要終了処理は、終了処理が必要であれば“Ｙｅｓ”、不要であれば“Ｎｏ”となる。例えば、割り込み番号が“０”の例では、転送先ＣＰＵが“Ａ”、割り込みレベルが“７”、要終了処理が“Ｙｅｓ”となっている。他は、図３の通りである。
【００２７】
次に、図４により、割り込みベクタテーブルの構成の一例を説明する。図４は、割り込みベクタテーブルの構成の一例を示す図である。
【００２８】
ＣＰＵＡ（４ａ）、ＣＰＵＢ（４ｂ）の各割り込みベクタテーブル（３８）には、割り込み番号と、これに対応する割り込みベクタなどの情報が格納される。例えば、ＣＰＵＡの割り込みベクタテーブルにおいて、割り込み番号が“０”の例では、割り込みベクタが“０ｘＡ０１００”となっている。他は、図４の通りである。
【００２９】
次に、図５により、割り込みキューの構成の一例を説明する。図５は、割り込みキューの構成の一例を示す図である。
【００３０】
割り込みキュー（３７）は、ＣＰＵＡ（４ａ）への割り込みキューとＣＰＵＢ（４ｂ）への割り込みキューとがある。各割り込みキューには、割り込み番号、転送元ＣＰＵ、割り込みレベル、要終了処理、割り込み状態などの情報が登録される。割り込み状態は、割り込み処理中、割り込み処理終了、割り込み終了の各状態を持つ。他の各情報は、前述した図３と同様である。
【００３１】
これら各割り込みキュー（３７）に登録する場合には、複数種類のＣＰＵＡ（４ａ）、ＣＰＵＢ（４ｂ）の割り込み情報を統一形式に変換して登録し、また、複数種類の割り込みコントローラＡ（５ａ）、割り込みコントローラＢ（５ｂ）の割り込み情報を統一形式に変換して登録する。
【００３２】
次に、本実施の形態のヘテロマルチプロセッサシステムにおいて、一例として、ＣＰＵＢ（４ｂ）に割り込みが発生した時、ＣＰＵＡ（４ａ）にプロセッサ間割り込みが発生した時、ＣＰＵＡ（４ａ）の割り込み処理を終了する時、ＣＰＵＢ（４ｂ）にプロセッサ間割り込みが発生した時について、順に説明する。
【００３３】
まず、図６により、ＣＰＵＢに割り込みが発生した時の処理フローの一例を説明する。図６は、ＣＰＵＢに割り込みが発生した時の処理フローの一例を示す図である。
【００３４】
ＣＰＵＢ（４ｂ）に割り込みが発生した時の処理においては、まず、ＣＰＵＢ（４ｂ）の割り込み受付け部Ｂ（３１ｂ）で割り込みを受け付け（Ｓ１０１）、割り込み情報生成部Ｂ（３２ｂ）で割り込み情報を生成する（Ｓ１０２）。さらに、ＣＰＵＢ（４ｂ）の割り込み先選択部Ｂ（３３ｂ）において、割り込み先管理テーブル（３６）に問い合わせて、受け付けた割り込みの割り込み先プロセッサを決定する（Ｓ１０３）。そして、割り込み先はＣＰＵＢ（４ｂ）か否かを判断する（Ｓ１０４）。この判断の結果、ＣＰＵＢ（４ｂ）の場合（Ｙｅｓ）には、割り込み転送部Ｂ（３４ｂ）で割り込みキュー（３７）に登録する（Ｓ１０５）。
【００３５】
続いて、現在のマスクレベルと比較して割り込めるか否かを判断する（Ｓ１０６）。この判断の結果、割り込める場合（Ｙｅｓ）には、選択した割り込みを割り込みキュー（３７）上で「割り込み処理中」に設定する（Ｓ１０７）。そして、ＣＰＵＢ（４ｂ）にて、割り込み処理を実行する（Ｓ１０８）。この割り込み処理の実行では、現在のＯＳのコンテキストを保存して、今回の割り込みのベクタにジャンプする。
【００３６】
また、Ｓ１０４の判断の結果、ＣＰＵＢ（４ｂ）でない場合（Ｎｏ）は、終了処理が必要か否かを判断する（Ｓ１０９）。この判断の結果、必要な場合（Ｙｅｓ）には、割り込み情報にＣＰＵＡ（４ａ）からの終了割り込みを待つフラグを設定する（Ｓ１１０）。さらに、割り込みキュー（３７）に登録し（Ｓ１１１）、割り込み発生部Ｂ（３５ｂ）でＣＰＵＡ（４ａ）にプロセッサ間割り込みを発生させ（Ｓ１１２）、そして、割り込み前の処理に戻る（Ｓ１１３）。
【００３７】
また、Ｓ１０６の判断の結果、割り込めない場合（Ｎｏ）は、割り込み前の処理に戻る（Ｓ１１４）。
【００３８】
また、Ｓ１０９の判断の結果、必要でない場合（Ｎｏ）は、Ｓ１１１に移行し、割り込みキュー（３７）に登録した後、ＣＰＵＡ（４ａ）にプロセッサ間割り込みを発生させ（Ｓ１１２）、そして、割り込み前の処理に戻る（Ｓ１１３）。
【００３９】
以上のようにして、ＣＰＵＢ（４ｂ）に割り込みが発生した時の処理が実行される。
【００４０】
次に、図７により、ＣＰＵＡにプロセッサ間割り込みが発生した時の処理フローの一例を説明する。図７は、ＣＰＵＡにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
【００４１】
ＣＰＵＡ（４ａ）にプロセッサ間割り込みが発生した時の処理においては、まず、ＣＰＵＡ（４ａ）への割り込みを割り込みキュー（３７）から選択し（Ｓ２０１）、現在のマスクレベルと比較して割り込めるか否かを判断する（Ｓ２０２）。この判断の結果、割り込める場合（Ｙｅｓ）には、選択した割り込みを割り込みキュー（３７）上で「割り込み処理中」に設定する（Ｓ２０３）。そして、ＣＰＵＡ（４ａ）にて、割り込み処理を実行する（Ｓ２０４）。この割り込み処理の実行では、現在のＯＳのコンテキストを保存して、今回の割り込みのベクタにジャンプする。
【００４２】
また、Ｓ２０２の判断の結果、割り込めない場合（Ｎｏ）は、割り込まずに元の処理に戻る（Ｓ２０５）。
【００４３】
以上のようにして、ＣＰＵＡ（４ａ）にプロセッサ間割り込みが発生した時の処理が実行される。
【００４４】
次に、図８により、ＣＰＵＡの割り込み処理を終了する時の処理フローの一例を説明する。図８は、ＣＰＵＡの割り込み処理を終了する時の処理フローの一例を示す図である。
【００４５】
ＣＰＵＡ（４ａ）の割り込み処理を終了する時の処理においては、まず、ハイパバイザ（３）に割り込み処理終了のハイパバイザｃａｌｌを出し（Ｓ３０１）、割り込みキュー（３７）から、処理していた割り込みに対応する「割り込み処理中」のエントリを選択する（Ｓ３０２）。そして、「割り込み処理中」のエントリを「割り込み処理終了」に設定する（Ｓ３０３）。
【００４６】
続いて、割り込み転送元はＣＰＵＢ（４ｂ）か否かを判断する（Ｓ３０４）。この判断の結果、ＣＰＵＢ（４ｂ）の場合（Ｙｅｓ）には、終了割り込みを発生させるか否かを判断する（Ｓ３０５）。この判断の結果、発生させる場合（Ｙｅｓ）には、ＣＰＵＢ（４ｂ）にプロセッサ間割り込みを発生させる（Ｓ３０６）。そして、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する（Ｓ３０７）。
【００４７】
また、Ｓ３０４の判断の結果、ＣＰＵＢ（４ｂ）でない場合（Ｎｏ）は、ＣＰＵ、割り込みコントローラの割り込み終了処理を行う（Ｓ３０８）。そして、割り込みキュー（３７）から割り込みを削除し（Ｓ３０９）、Ｓ３０７に移行して、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する。
【００４８】
また、Ｓ３０５の判断の結果、発生させない場合（Ｎｏ）は、Ｓ３０９に移行して、割り込みキュー（３７）から割り込みを削除した後、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する（Ｓ３０７）。
【００４９】
以上のようにして、ＣＰＵＡ（４ａ）の割り込み処理を終了する時の処理が実行される。
【００５０】
次に、図９により、ＣＰＵＢにプロセッサ間割り込みが発生した時の処理フローの一例を説明する。図９は、ＣＰＵＢにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
【００５１】
ＣＰＵＢ（４ｂ）にプロセッサ間割り込みが発生した時の処理においては、まず、割り込みキュー（３７）から、ＣＰＵＢ（４ｂ）が依頼した割り込みエントリの中で「割り込み処理終了」のエントリを選択し（Ｓ４０１）、ＣＰＵ、割り込みコントローラの割り込み終了処理を行う（Ｓ４０２）。そして、割り込みキュー（３７）から割り込みを削除し（Ｓ４０３）、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する（Ｓ４０４）。
【００５２】
以上のようにして、ＣＰＵＢ（４ｂ）のプロセッサ間割り込みが発生した時の処理が実行される。
【００５３】
以上により、本実施の形態のヘテロマルチプロセッサシステムによれば、主に演算を行うＣＰＵＢ（４ｂ）上で起きた割り込み処理をシステム制御を行うＣＰＵＡ（４ａ）上にオフロードすることで、ＣＰＵＢ（４ｂ）に対する外乱を削減することができる。この結果、演算処理の性能低下を抑制することができる。
【００５４】
なお、前記実施の形態においては、割り込み先管理テーブル（３６）をＣＰＵＡ（４ａ）とＣＰＵＢ（４ｂ）が共有する記憶装置に置いて共有したが、ＣＰＵ間通信手段を利用してＣＰＵ固有の記憶装置にある割り込み先管理テーブルの一貫性を保つようにしてもよい。
【００５５】
また、割り込み先管理テーブル（３６）から割り込み可能なＣＰＵを選択する場合に、現在のマスクレベルと比較して決定したが、割り込み可能なＣＰＵが複数あった場合には、ＮＵＭＡ（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）構成等において物理的に近傍にあるＣＰＵを選択したり、あるいは、処理能力の高いＣＰＵを選択するようにしてもよい。
【００５６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００５７】
本発明は、プロセッサおよび割り込みコントローラを含むヘテロマルチプロセッサシステムに関し、特に、ヘテロマルチプロセッサシステムにおけるＯＳ構成方法に適用して有効である。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施の形態であるヘテロマルチプロセッサシステムの構成の一例を示す図である。
【図２】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、プロセッサコンテキストキューの一例を示す図である。
【図３】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込み先管理テーブルの構成の一例を示す図である。
【図４】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込みベクタテーブルの構成の一例を示す図である。
【図５】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込みキューの構成の一例を示す図である。
【図６】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、ＣＰＵＢに割り込みが発生した時の処理フローの一例を示す図である。
【図７】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、ＣＰＵＡにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
【図８】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、ＣＰＵＡの割り込み処理を終了する時の処理フローの一例を示す図である。
【図９】本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、ＣＰＵＢにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
【図１０】本発明の前提として検討したヘテロマルチプロセッサシステムの構成の一例を示す図である。
【符号の説明】
【００５９】
１ａ，１０１ａ…ジョブＡ、１ｂ，１０１ｂ…ジョブＢ、２，１０２…ＯＳ、３…ハイパバイザ、４ａ，１０４ａ…ＣＰＵＡ、４ｂ，１０４ｂ…ＣＰＵＢ、５ａ，１０５ａ…割り込みコントローラＡ、５ｂ，１０５ｂ…割り込みコントローラＢ、６，１０６…Ｄｉｓｋ、７，１０７…ＮＷアダプタ、２１…Ｄｉｓｋドライバ、２２…割り込みコントローラＡ処理部、２３…割り込みコントローラＢ処理部、２４…ＮＷドライバ、２５…ＣＰＵＡページ例外等処理部、２６…ＣＰＵＢページ例外等処理部、３１ａ…割り込み受付け部Ａ、３１ｂ…割り込み受付け部Ｂ、３２ａ…割り込み情報生成部Ａ、３２ｂ…割り込み情報生成部Ｂ、３３ａ…割り込み先選択部Ａ、３３ｂ…割り込み先選択部Ｂ、３４ａ…割り込み転送部Ａ、３４ｂ…割り込み転送部Ｂ、３５ａ…割り込み発生部Ａ、３５ｂ…割り込み発生部Ｂ、３６…割り込み先管理テーブル、３７…割り込みキュー、３８…割り込みベクタテーブル。
【図１】
2007148746.tif 000003
【図２】
2007148746.tif 000004
【図３】
2007148746.tif 000005
【図４】
2007148746.tif 000006
【図５】
2007148746.tif 000007
【図６】
2007148746.tif 000008
【図７】
2007148746.tif 000009
【図８】
2007148746.tif 000010
【図９】
2007148746.tif 000011
【図１０】
2007148746.tif 000012