JP2007148746A - ヘテロマルチプロセッサシステムおよびそのos構成方法 - Google Patents

ヘテロマルチプロセッサシステムおよびそのos構成方法 Download PDF

Info

Publication number
JP2007148746A
JP2007148746A JP2005341863A JP2005341863A JP2007148746A JP 2007148746 A JP2007148746 A JP 2007148746A JP 2005341863 A JP2005341863 A JP 2005341863A JP 2005341863 A JP2005341863 A JP 2005341863A JP 2007148746 A JP2007148746 A JP 2007148746A
Authority
JP
Japan
Prior art keywords
interrupt
processor
hetero
destination
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005341863A
Other languages
English (en)
Other versions
JP4247228B2 (ja
Inventor
Masaaki Shimizu
正明 清水
Naonobu Sukegawa
直伸 助川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005341863A priority Critical patent/JP4247228B2/ja
Priority to US11/357,088 priority patent/US7366814B2/en
Publication of JP2007148746A publication Critical patent/JP2007148746A/ja
Application granted granted Critical
Publication of JP4247228B2 publication Critical patent/JP4247228B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Abstract

【課題】演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減する。
【解決手段】ヘテロマルチプロセッサシステムにおいて、各CPUにおいて割り込みを受け付ける手段と、受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先CPUを選択する手段と、受け付けた割り込みをキューイングする手段と、選択した割り込み先CPUにCPU間割り込みを発生させる手段と、割り込み先CPUにおいて、CPU間割り込みを受け取り、割り込み元CPUの割り込み処理を行い、割り込み元CPUにCPU間割り込みを発生させる各手段と、割り込み元CPUにおいて割り込み終了処理を行う手段と、割り込み先管理テーブルに問い合わせた結果の割り込み先CPUが自CPUであった場合には自CPUにおいて割り込み処理を行う手段とを具備する。
【選択図】図1

Description

本発明は、プロセッサおよび割り込みコントローラを含むヘテロマルチプロセッサシステムに関し、特に、ヘテロマルチプロセッサシステムにおけるOS(Operating System)構成方法に適用して有効な技術に関する。
例えば、プロセッサシステムにおけるOS構成方法に関する技術としては、特許文献1に記載のような技術が挙げられる。この特許文献1には、第一のOSと他のOSが管理する資源を分離する手順と、他のOSを起動する手順と、実行OSを切り替える手順と、割り込み要因により割り込み処理をするOSを決定し、適切な割り込みハンドラを起動する手順により、複数のOSの同時実行を可能にする技術が記載されている。
特開平11−149385号公報
ところで、前記特許文献1のような技術では、一台の計算機の上で複数のOSを同時実行するために割り込みを含む資源をOS毎に分割し、この割り込みの割り振りを割り込みコントローラへの設定によって行うことが記載されており、ソフトウェアで割り込みをオフロードする技術ではない。また、ホモジニアスプロセッサを対象としており、ヘテロプロセッサに対応するために割り込みインタフェースを統一化し、最適なCPUに割り込み処理を実行させる技術ではない。
例えば、前記特許文献1の技術を、ヘテロプロセッサに適用すると、図10のような構成になるものと考えられる。すなわち、図10に示すようなヘテロマルチプロセッサシステムでは、ジョブA(101a)、ジョブB(101b)、OS(102)、CPUA(104a)、CPUB(104b)、割り込みコントローラA(105a)、割り込みコントローラB(105b)、Disk(106)、NWアダプタ(107)などからなる構成において、各CPUが割り当てられたデバイスを持ち、また、各CPUが異なる割り込みインタフェースを持っている。
このヘテロマルチプロセッサシステムにおいて、例えばCPUB(104b)が演算用のプロセッサである場合にも、図中楕円で囲んだ割り込みに対する制御が発生する。この場合、OS(102)内に、例えばページフォールト処理を2種類(CPUA用/CPUB用)用意することが必須となり、また、実際に演算主体に処理しているCPUB(104b)に割り込み処理が発生することで、演算処理の性能低下が避けられない。
そこで、本発明の目的は、演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減することができるヘテロマルチプロセッサシステムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、少なくとも第1および第2のプロセッサ(CPU)および1つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムに適用され、各プロセッサにおいて割り込みを受け付ける手段と、受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先プロセッサを選択する手段と、受け付けた割り込みをキューイングする手段と、選択した割り込み先プロセッサにプロセッサ間割り込みを発生させる手段と、割り込み先プロセッサにおいてプロセッサ間割り込みを受け取る手段と、割り込み先プロセッサにおいて割り込み元プロセッサの割り込み処理を行う手段と、割り込み先プロセッサにおいて割り込み元プロセッサにプロセッサ間割り込みを発生させる手段と、割り込み元プロセッサにおいて割り込み終了処理を行う手段と、割り込み先管理テーブルに問い合わせた結果の割り込み先プロセッサが自プロセッサであった場合には自プロセッサにおいて割り込み処理を行う手段とを具備することを特徴とするものである。
また、本発明は、前記ヘテロマルチプロセッサシステムのOS構成方法に適用され、割り込み元プロセッサにおいて割り込みを受け付ける手順と、割り込み情報を生成する手順と、割り込み元プロセッサにおいて割り込み先管理テーブルに問い合わせて受け付けた割り込みの割り込み先プロセッサを決定する手順と、割り込み先プロセッサが自プロセッサであった場合には、割り込み情報を割り込みキューに登録し、現在のマスクレベルと比較して割り込めるならば割り込み情報を割り込み処理中に設定して自プロセッサにて割り込み処理を実行し、現在のマスクレベルと比較して割り込めない場合には割り込み前の処理に戻る手順と、割り込み先プロセッサが自プロセッサ以外であった場合に、終了処理が必要であれば割り込み情報に終了割り込みを待つフラグを設定し、割り込み情報をキューに登録し、割り込み先プロセッサにプロセッサ間割り込みを発生させて割り込み前の処理に戻る手順とを具備することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、演算用プロセッサで起きた割り込み処理をシステム制御用プロセッサにオフロードすることで、演算用プロセッサに対する外乱を削減することができるヘテロマルチプロセッサシステムを提供することが可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
まず、図1により、本発明の一実施の形態であるヘテロマルチプロセッサシステムの構成の一例を説明する。図1は、ヘテロマルチプロセッサシステムの構成の一例を示す図である。
本実施の形態のヘテロマルチプロセッサシステムは、ジョブA(1a)、ジョブB(1b)、OS(2)、ハイパバイザ(3)、CPUA(4a)、CPUB(4b)、割り込みコントローラA(5a)、割り込みコントローラB(5b)、Disk(6)、NW(NetWork)アダプタ(7)などから構成される。
ジョブA(1a)は、システム制御を行うCPUA(4a)上で動いているユーザプログラムである。ジョブB(1b)は、主に演算を行うCPUB(4b)上で動いているユーザプログラムである。
OS(2)は、CPUA(4a)およびCPUB(4b)上でユーザプログラムを実行させる基本ソフトウェアである。このOS(2)は、CPUA(4a)のISA(Instruction Set Architecture)で記述された、Diskドライバ(21)、割り込みコントローラA処理部(22)、割り込みコントローラB処理部(23)、NWドライバ(24)、CPUAページ例外等処理部(25)、CPUBページ例外等処理部(26)などのソフトウェアモジュールから構成されている。ISAは、CPUの命令セットを規定しており、CPU毎に異なる。このISAで記述した命令列が、CPU種類毎のコードとなる。
OS(2)内部のソフトウェアモジュールにおいて、Diskドライバ(21)は、ハードディスク等のDisk(6)を管理する。割り込みコントローラA処理部(22)は、CPUA(4a)と組み合わされている割り込みコントローラA(5a)の割り込み処理を行う。割り込みコントローラB処理部(23)は、CPUB(4b)と組み合わされている割り込みコントローラB(5b)の割り込み処理を行う。NWドライバ(24)は、NWアダプタ(7)を管理する。CPUAページ例外等処理部(25)は、CPUA(4a)にて発生したページ例外の処理を行う。CPUBページ例外等処理部(26)は、CPUB(4b)にて発生したページ例外の処理を行う。
ハイパバイザ(3)は、OS(2)の下位に位置する基本ソフトウェアである。このハイパバイザ(3)は、CPUA(4a)のISAで記述された、割り込み受付け部A(31a)、割り込み情報生成部A(32a)、割り込み先選択部A(33a)、割り込み転送部A(34a)、割り込み発生部A(35a)などのソフトウェアモジュールと、CPUB(4b)のISAで記述された、割り込み受付け部B(31b)、割り込み情報生成部B(32b)、割り込み先選択部B(33b)、割り込み転送部B(34b)、割り込み発生部B(35b)などのソフトウェアモジュールと、CPUA(4a)とCPUB(4b)で共有する記憶装置のデータとしての、割り込み先管理テーブル(36)、割り込みキュー(37)、割り込みベクタテーブル(38)などから構成されている。
CPUA(4a)のISAで記述されたハイパバイザ内部のソフトウェアモジュールにおいて、割り込み受付け部A(31a)は、割り込みコントローラA(5a)およびCPUA(4a)内部の割り込みを受け付ける処理をする。割り込み情報生成部A(32a)は、割り込み番号、転送元CPU、割り込みレベル等を含む割り込み情報エントリを生成する。割り込み先選択部A(33a)は、自CPUまたは複数ある他CPUのいずれに割り込み処理を転送するのかを選択する。割り込み転送部A(34a)は、割り込み先CPUの割り込みキューに割り込み情報エントリを登録する。割り込み発生部A(35a)は、割り込み先CPUにプロセッサ間割り込みを発生させ、割り込み転送を通知する。
CPUB(4b)のISAで記述されたハイパバイザ内部のソフトウェアモジュールにおいて、割り込み受付け部B(31b)は、割り込みコントローラB(5b)およびCPUB(4b)内部の割り込みを受け付ける処理をする。割り込み情報生成部B(32b)は、割り込み番号、転送元CPU、割り込みレベル等を含む割り込み情報エントリを生成する。割り込み先選択部B(33b)は、自CPUまたは複数ある他CPUのいずれに割り込み処理を転送するのかを選択する。割り込み転送部B(34b)は、割り込み先CPUの割り込みキューに割り込み情報エントリを登録する。割り込み発生部B(35b)は、割り込み先CPUにプロセッサ間割り込みを発生させ、割り込み転送を通知する。
割り込みコントローラA(5a)は、割り込みコントローラA(5a)が管理しているデバイスからの割り込みをCPUA(4a)に通知する機能を有する。割り込みコントローラB(5b)は、割り込みコントローラB(5b)が管理しているデバイスからの割り込みをCPUB(4b)に通知する機能を有する。
次に、図2により、プロセッサコンテキストキューの構成の一例について説明する。図2は、プロセッサコンテキストキューの一例を示す図である。
例えば、CPUA(4a)のコンテキストキューは、現在のコンテキスト、割り込み前のコンテキストからなる。CPUB(4b)のコンテキストキューは、現在のコンテキスト、割り込み前のコンテキスト、更に一つ前の割り込み前のコンテキストからなる。各コンテキストには、プログラムカウンタ、各種レジスタ値、割り込みマスクなどの情報が登録される。
次に、図3により、割り込み先管理テーブルの構成の一例を説明する。図3は、割り込み先管理テーブルの構成の一例を示す図である。なお、図3はCPUA用の割り込み先管理テーブルを示しており、CPUB用にも同様の割り込み先管理テーブルが設けられている。
割り込み先管理テーブル(36)には、割り込み番号と、これに対応する、転送先CPU、割り込みレベル、要終了処理などの情報が格納される。転送先CPUは、転送先のCPUが“A”か、または“B”かを示す。割り込みレベルは、数字が大きい程、割り込みの優先度が高い。要終了処理は、終了処理が必要であれば“Yes”、不要であれば“No”となる。例えば、割り込み番号が“0”の例では、転送先CPUが“A”、割り込みレベルが“7”、要終了処理が“Yes”となっている。他は、図3の通りである。
次に、図4により、割り込みベクタテーブルの構成の一例を説明する。図4は、割り込みベクタテーブルの構成の一例を示す図である。
CPUA(4a)、CPUB(4b)の各割り込みベクタテーブル(38)には、割り込み番号と、これに対応する割り込みベクタなどの情報が格納される。例えば、CPUAの割り込みベクタテーブルにおいて、割り込み番号が“0”の例では、割り込みベクタが“0xA0100”となっている。他は、図4の通りである。
次に、図5により、割り込みキューの構成の一例を説明する。図5は、割り込みキューの構成の一例を示す図である。
割り込みキュー(37)は、CPUA(4a)への割り込みキューとCPUB(4b)への割り込みキューとがある。各割り込みキューには、割り込み番号、転送元CPU、割り込みレベル、要終了処理、割り込み状態などの情報が登録される。割り込み状態は、割り込み処理中、割り込み処理終了、割り込み終了の各状態を持つ。他の各情報は、前述した図3と同様である。
これら各割り込みキュー(37)に登録する場合には、複数種類のCPUA(4a)、CPUB(4b)の割り込み情報を統一形式に変換して登録し、また、複数種類の割り込みコントローラA(5a)、割り込みコントローラB(5b)の割り込み情報を統一形式に変換して登録する。
次に、本実施の形態のヘテロマルチプロセッサシステムにおいて、一例として、CPUB(4b)に割り込みが発生した時、CPUA(4a)にプロセッサ間割り込みが発生した時、CPUA(4a)の割り込み処理を終了する時、CPUB(4b)にプロセッサ間割り込みが発生した時について、順に説明する。
まず、図6により、CPUBに割り込みが発生した時の処理フローの一例を説明する。図6は、CPUBに割り込みが発生した時の処理フローの一例を示す図である。
CPUB(4b)に割り込みが発生した時の処理においては、まず、CPUB(4b)の割り込み受付け部B(31b)で割り込みを受け付け(S101)、割り込み情報生成部B(32b)で割り込み情報を生成する(S102)。さらに、CPUB(4b)の割り込み先選択部B(33b)において、割り込み先管理テーブル(36)に問い合わせて、受け付けた割り込みの割り込み先プロセッサを決定する(S103)。そして、割り込み先はCPUB(4b)か否かを判断する(S104)。この判断の結果、CPUB(4b)の場合(Yes)には、割り込み転送部B(34b)で割り込みキュー(37)に登録する(S105)。
続いて、現在のマスクレベルと比較して割り込めるか否かを判断する(S106)。この判断の結果、割り込める場合(Yes)には、選択した割り込みを割り込みキュー(37)上で「割り込み処理中」に設定する(S107)。そして、CPUB(4b)にて、割り込み処理を実行する(S108)。この割り込み処理の実行では、現在のOSのコンテキストを保存して、今回の割り込みのベクタにジャンプする。
また、S104の判断の結果、CPUB(4b)でない場合(No)は、終了処理が必要か否かを判断する(S109)。この判断の結果、必要な場合(Yes)には、割り込み情報にCPUA(4a)からの終了割り込みを待つフラグを設定する(S110)。さらに、割り込みキュー(37)に登録し(S111)、割り込み発生部B(35b)でCPUA(4a)にプロセッサ間割り込みを発生させ(S112)、そして、割り込み前の処理に戻る(S113)。
また、S106の判断の結果、割り込めない場合(No)は、割り込み前の処理に戻る(S114)。
また、S109の判断の結果、必要でない場合(No)は、S111に移行し、割り込みキュー(37)に登録した後、CPUA(4a)にプロセッサ間割り込みを発生させ(S112)、そして、割り込み前の処理に戻る(S113)。
以上のようにして、CPUB(4b)に割り込みが発生した時の処理が実行される。
次に、図7により、CPUAにプロセッサ間割り込みが発生した時の処理フローの一例を説明する。図7は、CPUAにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
CPUA(4a)にプロセッサ間割り込みが発生した時の処理においては、まず、CPUA(4a)への割り込みを割り込みキュー(37)から選択し(S201)、現在のマスクレベルと比較して割り込めるか否かを判断する(S202)。この判断の結果、割り込める場合(Yes)には、選択した割り込みを割り込みキュー(37)上で「割り込み処理中」に設定する(S203)。そして、CPUA(4a)にて、割り込み処理を実行する(S204)。この割り込み処理の実行では、現在のOSのコンテキストを保存して、今回の割り込みのベクタにジャンプする。
また、S202の判断の結果、割り込めない場合(No)は、割り込まずに元の処理に戻る(S205)。
以上のようにして、CPUA(4a)にプロセッサ間割り込みが発生した時の処理が実行される。
次に、図8により、CPUAの割り込み処理を終了する時の処理フローの一例を説明する。図8は、CPUAの割り込み処理を終了する時の処理フローの一例を示す図である。
CPUA(4a)の割り込み処理を終了する時の処理においては、まず、ハイパバイザ(3)に割り込み処理終了のハイパバイザcallを出し(S301)、割り込みキュー(37)から、処理していた割り込みに対応する「割り込み処理中」のエントリを選択する(S302)。そして、「割り込み処理中」のエントリを「割り込み処理終了」に設定する(S303)。
続いて、割り込み転送元はCPUB(4b)か否かを判断する(S304)。この判断の結果、CPUB(4b)の場合(Yes)には、終了割り込みを発生させるか否かを判断する(S305)。この判断の結果、発生させる場合(Yes)には、CPUB(4b)にプロセッサ間割り込みを発生させる(S306)。そして、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する(S307)。
また、S304の判断の結果、CPUB(4b)でない場合(No)は、CPU、割り込みコントローラの割り込み終了処理を行う(S308)。そして、割り込みキュー(37)から割り込みを削除し(S309)、S307に移行して、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する。
また、S305の判断の結果、発生させない場合(No)は、S309に移行して、割り込みキュー(37)から割り込みを削除した後、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する(S307)。
以上のようにして、CPUA(4a)の割り込み処理を終了する時の処理が実行される。
次に、図9により、CPUBにプロセッサ間割り込みが発生した時の処理フローの一例を説明する。図9は、CPUBにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。
CPUB(4b)にプロセッサ間割り込みが発生した時の処理においては、まず、割り込みキュー(37)から、CPUB(4b)が依頼した割り込みエントリの中で「割り込み処理終了」のエントリを選択し(S401)、CPU、割り込みコントローラの割り込み終了処理を行う(S402)。そして、割り込みキュー(37)から割り込みを削除し(S403)、現在のコンテキストエントリを削除して割り込み前のコンテキストを復元し、さらに、ペンディングの割り込みがあれば引き続き処理する(S404)。
以上のようにして、CPUB(4b)のプロセッサ間割り込みが発生した時の処理が実行される。
以上により、本実施の形態のヘテロマルチプロセッサシステムによれば、主に演算を行うCPUB(4b)上で起きた割り込み処理をシステム制御を行うCPUA(4a)上にオフロードすることで、CPUB(4b)に対する外乱を削減することができる。この結果、演算処理の性能低下を抑制することができる。
なお、前記実施の形態においては、割り込み先管理テーブル(36)をCPUA(4a)とCPUB(4b)が共有する記憶装置に置いて共有したが、CPU間通信手段を利用してCPU固有の記憶装置にある割り込み先管理テーブルの一貫性を保つようにしてもよい。
また、割り込み先管理テーブル(36)から割り込み可能なCPUを選択する場合に、現在のマスクレベルと比較して決定したが、割り込み可能なCPUが複数あった場合には、NUMA(Non Uniform Memory Access)構成等において物理的に近傍にあるCPUを選択したり、あるいは、処理能力の高いCPUを選択するようにしてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、プロセッサおよび割り込みコントローラを含むヘテロマルチプロセッサシステムに関し、特に、ヘテロマルチプロセッサシステムにおけるOS構成方法に適用して有効である。
本発明の一実施の形態であるヘテロマルチプロセッサシステムの構成の一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、プロセッサコンテキストキューの一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込み先管理テーブルの構成の一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込みベクタテーブルの構成の一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、割り込みキューの構成の一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、CPUBに割り込みが発生した時の処理フローの一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、CPUAにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、CPUAの割り込み処理を終了する時の処理フローの一例を示す図である。 本発明の一実施の形態であるヘテロマルチプロセッサシステムにおいて、CPUBにプロセッサ間割り込みが発生した時の処理フローの一例を示す図である。 本発明の前提として検討したヘテロマルチプロセッサシステムの構成の一例を示す図である。
符号の説明
1a,101a…ジョブA、1b,101b…ジョブB、2,102…OS、3…ハイパバイザ、4a,104a…CPUA、4b,104b…CPUB、5a,105a…割り込みコントローラA、5b,105b…割り込みコントローラB、6,106…Disk、7,107…NWアダプタ、21…Diskドライバ、22…割り込みコントローラA処理部、23…割り込みコントローラB処理部、24…NWドライバ、25…CPUAページ例外等処理部、26…CPUBページ例外等処理部、31a…割り込み受付け部A、31b…割り込み受付け部B、32a…割り込み情報生成部A、32b…割り込み情報生成部B、33a…割り込み先選択部A、33b…割り込み先選択部B、34a…割り込み転送部A、34b…割り込み転送部B、35a…割り込み発生部A、35b…割り込み発生部B、36…割り込み先管理テーブル、37…割り込みキュー、38…割り込みベクタテーブル。

Claims (14)

  1. 少なくとも第1および第2のプロセッサおよび1つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムであって、
    各プロセッサにおいて割り込みを受け付ける第1手段と、
    前記受け付けた割り込みを割り込み先管理テーブルに問い合わせて割り込み先プロセッサを選択する第2手段と、
    前記受け付けた割り込みをキューイングする第3手段と、
    前記選択した割り込み先プロセッサにプロセッサ間割り込みを発生させる第4手段と、
    前記割り込み先プロセッサにおいて前記プロセッサ間割り込みを受け取る第5手段と、
    前記割り込み先プロセッサにおいて割り込み元プロセッサの割り込み処理を行う第6手段と、
    前記割り込み先プロセッサにおいて前記割り込み元プロセッサに前記プロセッサ間割り込みを発生させる第7手段と、
    前記割り込み元プロセッサにおいて割り込み終了処理を行う第8手段と、
    前記割り込み先管理テーブルに問い合わせた結果の前記割り込み先プロセッサが自プロセッサであった場合には自プロセッサにおいて割り込み処理を行う第9手段と、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  2. 請求項1記載のヘテロマルチプロセッサシステムにおいて、
    前記第1手段は、
    割り込みコントローラからの割り込みを受け付ける手段と、
    プロセッサ内部起因の割り込みを受け付ける手段と、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  3. 請求項2記載のヘテロマルチプロセッサシステムにおいて、
    前記第1手段は、
    割り込み受け付け処理を実行するプロセッサ種類毎のコード、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  4. 請求項1記載のヘテロマルチプロセッサシステムにおいて、
    前記第2手段は、
    前記割り込み先管理テーブルを前記ヘテロマルチプロセッサシステムが共有する記憶装置に置いて共有するか、もしくはプロセッサ間通信手段を利用してプロセッサ固有の記憶装置にある割り込み先管理テーブルの一貫性を保つ、
    ことを特徴とするヘテロマルチプロセッサシステム。
  5. 請求項4記載のヘテロマルチプロセッサシステムにおいて、
    前記第2手段は、
    発生したプロセッサ番号と割り込み番号を用いて前記割り込み先管理テーブルのエントリを選択する手段と、
    前記選択したエントリから転送先プロセッサと割り込みレベルと終了処理の要否を取り出す手段と、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  6. 請求項5記載のヘテロマルチプロセッサシステムにおいて、
    前記第2手段は、
    前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合にはプロセッサのマスクレベルから割り込み可能なプロセッサを選択する手段、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  7. 請求項5記載のヘテロマルチプロセッサシステムにおいて、
    前記第2手段は、
    前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合にはNUMA構成等において物理的に近傍にあるプロセッサを選択する手段、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  8. 請求項5記載のヘテロマルチプロセッサシステムにおいて、
    前記第2手段は、
    前記割り込み先管理テーブルに割り込み可能なプロセッサが複数あった場合には処理能力の高いプロセッサを選択する手段、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  9. 請求項1記載のヘテロマルチプロセッサシステムにおいて、
    前記第3手段は、
    選択したエントリの終了処理の要否に従い割り込み情報に終了割り込みの要否フラグを設定する手段と、
    割り込みキューに割り込み情報を登録する手段と、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  10. 請求項9記載のヘテロマルチプロセッサシステムにおいて、
    前記第3手段は、
    複数種類のプロセッサの割り込み情報を統一形式に変換して前記割り込みキューに登録する手段と、
    複数種類の割り込みコントローラの割り込み情報を統一形式に変換して前記割り込みキューに登録する手段と、
    を具備することを特徴とするヘテロマルチプロセッサシステム。
  11. 少なくとも第1および第2のプロセッサおよび1つまたは複数の割り込みコントローラを含むヘテロマルチプロセッサシステムのOS構成方法であって、
    割り込み元プロセッサにおいて割り込みを受け付ける第1手順と、
    割り込み情報を生成する第2手順と、
    前記割り込み元プロセッサにおいて割り込み先管理テーブルに問い合わせて受け付けた割り込みの割り込み先プロセッサを決定する第3手順と、
    前記割り込み先プロセッサが自プロセッサであった場合には、前記割り込み情報を割り込みキューに登録し、現在のマスクレベルと比較して割り込めるならば前記割り込み情報を割り込み処理中に設定して自プロセッサにて割り込み処理を実行し、現在のマスクレベルと比較して割り込めない場合には割り込み前の処理に戻る第4手順と、
    前記割り込み先プロセッサが自プロセッサ以外であった場合に、終了処理が必要であれば前記割り込み情報に終了割り込みを待つフラグを設定し、前記割り込み情報を割り込みキューに登録し、前記割り込み先プロセッサにプロセッサ間割り込みを発生させて割り込み前の処理に戻る第5手順と、
    を具備することを特徴とするヘテロマルチプロセッサシステムのOS構成方法。
  12. 請求項11記載のヘテロマルチプロセッサシステムのOS構成方法において、
    前記第4手順は、
    前記割り込みキューから前記割り込み先プロセッサへの前記割り込み情報を選択する手順と、
    前記割り込み情報に含まれる割り込みレベルと割り込み先プロセッサコンテキストの割り込みマスクレベルを比較して割り込みの可否を判断する手順と、
    前記選択した割り込み情報の割り込み状態を割り込み処理中に設定する手順と、
    前記割り込み先プロセッサにおいて割り込み前のプロセッサコンテキストをプロセッサコンテキストキューのエントリに保存する手順と、
    前記割り込み先プロセッサにおいて新しいプロセッサコンテキストエントリを作成して前記プロセッサコンテキストキューに登録する手順と、
    前記割り込み先プロセッサのベクタテーブルから割り込みベクタを取り出して実行する手順と、
    を具備することを特徴とするヘテロマルチプロセッサシステムのOS構成方法。
  13. 請求項12記載のヘテロマルチプロセッサシステムのOS構成方法において、
    前記第4手順は、
    前記割り込み先プロセッサにおける割り込み処理が終わった場合にハイパバイザに割り込み処理終了を伝える手順と、
    前記割り込みキューから処理していた割り込みに対応する割り込み情報を選択する手順と、
    前記選択した割り込み情報を割り込み処理終了に設定する手順と、
    割り込み転送元が他プロセッサであり、終了割り込みを発生させる必要があれば転送元プロセッサにプロセッサ間割り込みを発生する手順と、
    前記割り込み転送元が自プロセッサであった場合には、プロセッサまたは割り込みコントローラの割り込み終了処理を行い、前記割り込みキューから割り込み情報を削除する手順と、
    前記プロセッサコンテキストキューから現在のコンテキストを削除して割り込み前のコンテキストを現在のコンテキストとして実行を行う手順と、
    を具備することを特徴とするヘテロマルチプロセッサシステムのOS構成方法。
  14. 請求項13記載のヘテロマルチプロセッサシステムのOS構成方法において、
    前記第4手順は、
    前記割り込みキューから割り込み処理終了となっている割り込み情報を選択する手順と、
    前記プロセッサまたは割り込みコントローラの割り込み終了処理を行い、前記割り込みキューから割り込み情報を削除する手順と、
    前記プロセッサコンテキストキューから現在のコンテキストを削除して割り込み前のコンテキストを現在のコンテキストとして実行を行う手順と、
    を具備することを特徴とするヘテロマルチプロセッサシステムのOS構成方法。
JP2005341863A 2005-11-28 2005-11-28 ヘテロマルチプロセッサシステムおよびそのos構成方法 Expired - Fee Related JP4247228B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005341863A JP4247228B2 (ja) 2005-11-28 2005-11-28 ヘテロマルチプロセッサシステムおよびそのos構成方法
US11/357,088 US7366814B2 (en) 2005-11-28 2006-02-21 Heterogeneous multiprocessor system and OS configuration method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005341863A JP4247228B2 (ja) 2005-11-28 2005-11-28 ヘテロマルチプロセッサシステムおよびそのos構成方法

Publications (2)

Publication Number Publication Date
JP2007148746A true JP2007148746A (ja) 2007-06-14
JP4247228B2 JP4247228B2 (ja) 2009-04-02

Family

ID=38088854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005341863A Expired - Fee Related JP4247228B2 (ja) 2005-11-28 2005-11-28 ヘテロマルチプロセッサシステムおよびそのos構成方法

Country Status (2)

Country Link
US (1) US7366814B2 (ja)
JP (1) JP4247228B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102540A (ja) * 2008-10-24 2010-05-06 Fujitsu Microelectronics Ltd マルチプロセッサシステムlsi
JP5673672B2 (ja) * 2010-03-30 2015-02-18 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US10073810B2 (en) 2015-10-07 2018-09-11 Fujitsu Limited Parallel processing device and parallel processing method

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533201B2 (en) * 2006-12-26 2009-05-12 Intel Corporation Queue management mechanism in network processor wherein packets stored at memory device corresponds to addresses stored in plurity of queues within queue management
JP2008176360A (ja) * 2007-01-16 2008-07-31 Renesas Technology Corp マルチプロセッサシステム
JP5058082B2 (ja) * 2008-06-18 2012-10-24 株式会社オートネットワーク技術研究所 端子金具及び端子付き電線
US7953916B2 (en) * 2009-04-08 2011-05-31 Intel Corporation Dynamic, local retriggered interrupt routing discovery method
US9069741B2 (en) * 2013-02-25 2015-06-30 Red Hat, Inc. Emulating level triggered interrupts of physical devices assigned to virtual machine
US10585826B2 (en) * 2016-01-25 2020-03-10 Advanced Micro Devices, Inc. Using processor types for processing interrupts in a computing device
CN111722916B (zh) * 2020-06-29 2023-11-14 长沙新弘软件有限公司 一种通过映射表处理msi-x中断的方法
CN112783626B (zh) * 2021-01-21 2023-12-01 珠海亿智电子科技有限公司 中断处理方法、装置、电子设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
AU1261995A (en) * 1993-12-16 1995-07-03 Intel Corporation Multiple programmable interrupt controllers in a multi-processor system
US5530891A (en) * 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
GB2308686A (en) * 1995-12-20 1997-07-02 British Aerospace Integrated circuits for multi-tasking support in single or multiple processor networks
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
JP3546678B2 (ja) 1997-09-12 2004-07-28 株式会社日立製作所 マルチos構成方法
US6772419B1 (en) 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6665761B1 (en) * 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
JP4453238B2 (ja) * 2002-03-28 2010-04-21 日本電気株式会社 2重化プロセッサシステム
GB2409303B (en) * 2003-12-18 2006-10-18 Advanced Risc Mach Ltd Inter-processor communication mechanism
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US20060095624A1 (en) * 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US7447820B2 (en) * 2005-09-30 2008-11-04 Intel Corporation Retargeting of platform interrupts

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102540A (ja) * 2008-10-24 2010-05-06 Fujitsu Microelectronics Ltd マルチプロセッサシステムlsi
JP5673672B2 (ja) * 2010-03-30 2015-02-18 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US9092255B2 (en) 2010-03-30 2015-07-28 Fujitsu Limited Multi-core processor system, computer product, and control method for interrupt execution
US10073810B2 (en) 2015-10-07 2018-09-11 Fujitsu Limited Parallel processing device and parallel processing method

Also Published As

Publication number Publication date
US20070124523A1 (en) 2007-05-31
US7366814B2 (en) 2008-04-29
JP4247228B2 (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
JP4247228B2 (ja) ヘテロマルチプロセッサシステムおよびそのos構成方法
CN106371894B (zh) 一种配置方法、装置和数据处理服务器
US8589943B2 (en) Multi-threaded processing with reduced context switching
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
CN103262002B (zh) 优化系统调用请求通信
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
JPS6275739A (ja) タスク割当て方法
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
US20160232037A1 (en) Latency-hiding context management for concurrent distributed tasks
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
CN114579285B (zh) 一种任务运行系统、方法及计算设备
CN103582877B (zh) 计算机系统中断处理
JP4259390B2 (ja) 並列演算処理装置
KR102576443B1 (ko) 연산 장치 및 그 잡 스케줄링 방법
CN102736949A (zh) 改善对非连贯设备要执行的任务的调度
JP6656485B1 (ja) 割込み処理方法、コンピュータシステムおよびプログラム
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
CN114327767B (zh) 任务处理的方法、装置、电子设备及计算机可读存储介质
JP2553526B2 (ja) マルチタスク処理装置
JP2001166956A (ja) 複合システムにおけるジョブスケジューリング方式
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN111788555A (zh) 外部异常处理
JP2011257973A (ja) メモリ管理方法及びメモリ管理装置
WO1992003783A1 (en) Method of implementing kernel functions
CN114911597A (zh) 一种运行系统的切换方法及计算设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090109

R150 Certificate of patent or registration of utility model

Ref document number: 4247228

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140116

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees