(57)【要約】【課題】  マルチプロセッサシステムにおいて効率的にイベントドリブンな割込処理を実行する。【解決手段】  主制御装置１１２は、装置を統括的に制御するための処理としてメインプロセスを実行する。副制御装置１１６は、メインプロセスの実行中に主制御装置１１２により割り当てられたタスクをサブプロセスとして実行する。イベント検出部１６２は、メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出する。割込通知部１６４は、検出されたイベントに応じた割込タスクを示す割込情報を副制御装置１１６に対して通知する。割込情報を通知された副制御装置１１６は、その割込情報にて指示された割込タスクをサブプロセスとして実行する。【選択図】  図２
2006318177.tif 000002
【特許請求の範囲】
【請求項１】
装置を統括的に制御するための処理としてメインプロセスを実行する主制御装置と、
前記メインプロセスの実行中に前記主制御装置により割り当てられたタスクをサブプロセスとして実行する副制御装置と、
を含む制御ユニットと、
前記メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出するイベント検出部と、
前記検出されたイベントに応じた割込タスクを示す割込情報を前記制御ユニットに通知する割込通知部と、
を含む割込ユニットと、
を備え、
前記割込通知部は、前記制御ユニットにおける前記副制御装置に対して前記割込情報を通知し、
前記割込情報を通知された副制御装置は、その割込情報にて指示された割込タスクをサブプロセスとして実行することを特徴とする情報処理装置。
【請求項２】
前記制御ユニットは、前記副制御装置を複数個含み、
前記割込通知部は、それら複数の副制御装置のうち割込タスクを実行可能な状態にある副制御装置に対して前記割込情報を通知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記副制御装置は、割込情報を一時的に保持するための割込情報受信記憶部を含み、
前記割込通知部は、通知先となる副制御装置の割込情報受信記憶部に前記割込情報を記録することにより前記副制御装置に対して割込情報を通知し、
前記副制御装置は、前記割込情報受信記憶部に記録された割込情報を読み出して、その割込情報により指示された割込タスクをサブプロセスとして実行することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記イベントは所定のイベント群に属するイベントであって、
前記割込通知部は、割込情報を一時的に保持するための割込情報送信記憶部を含み、
前記割込通知部は、前記所定のイベント群に属さないイベントが検出されたときには、そのイベントが発生したことを前記制御ユニットにおける前記主制御装置に通知するとともに、前記検出されたイベントに応じた割込タスクを示す割込情報を前記割込情報送信記憶部に記録し、
前記主制御装置は、前記イベントの発生を通知されたときに前記割込通知部の前記割込情報送信記憶部から前記記録された割込情報を読み出して、その割込情報により指示された割込タスクを前記副制御装置に割り当てることを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記制御ユニットから指示されたタスクを実行するための補助ユニットを更に備え、
前記副制御装置は、割り当てられたタスクの実行より生成されたデータを前記補助ユニットに転送し、前記補助ユニットは、前記転送されたデータに基づいて前記副制御装置により実行されたタスクの続きとしてのタスクを実行することにより、前記副制御装置と前記補助ユニットが協働してサブプロセスとしてのタスクを実行することを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
前記副制御装置は、ＤＭＡ（Direct Memory Access）転送により前記生成されたデータを前記補助ユニットに対して転送することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
装置を統括的に制御するための処理としてメインプロセスを実行する主制御装置と前記メインプロセスの実行中に前記主制御装置により割り当てられたタスクをサブプロセスとして実行する副制御装置を備える情報処理装置におけるタスクの実行方法であって、
前記メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出するステップと、
前記検出されたイベントに応じた割込タスクを示す割込情報を前記副制御装置に通知するステップと、
前記割込情報を通知された副制御装置に、その割込情報にて指示された割込タスクをサブプロセスとして実行させるステップと、
を備えることを特徴とするタスク実行方法。
【請求項８】
装置を統括的に制御するための処理としてメインプロセスを実行する主制御装置と前記メインプロセスの実行中に前記主制御装置により割り当てられたタスクをサブプロセスとして実行する副制御装置を備える情報処理装置においてタスクを実行させるためのコンピュータプログラムであって、
前記メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出する機能と、
前記検出されたイベントに応じた割込タスクを示す割込情報を前記副制御装置に通知する機能と、
前記割込情報を通知された副制御装置に、その割込情報にて指示された割込タスクをサブプロセスとして実行させる機能と、
をコンピュータに発揮させることを特徴とするタスク実行プログラム。
【請求項９】
コンピュータにて読み取り可能な記録媒体であって、
装置を統括的に制御するための処理としてメインプロセスを実行する主制御装置と前記メインプロセスの実行中に前記主制御装置により割り当てられたタスクをサブプロセスとして実行する副制御装置を備える情報処理装置においてタスクを実行させるためのコンピュータプログラムであって、
前記メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出する機能と、
前記検出されたイベントに応じた割込タスクを示す割込情報を前記副制御装置に通知する機能と、
前記割込情報を通知された副制御装置に、その割込情報にて指示された割込タスクをサブプロセスとして実行させる機能と、
をコンピュータに発揮させることを特徴とするタスク実行プログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサによる情報処理技術、特に、マルチプロセッサシステムにおいて割込処理を実行するための技術、に関する。
【背景技術】
【０００２】
近年のコンピュータゲームやデジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、コンピュータ、ゲーム機器、テレビなどの情報処理装置はより高精細の画像データをより高速に処理する能力を求められている。これらの情報処理装置において高性能な演算処理を実現するためには、複数のプロセッサを備えた情報処理装置において、それぞれのプロセッサにタスクを割り当ることにより、複数のタスクを並列処理する方法が有効である。複数のプロセッサが協働して複数のタスクを実行するためには、各プロセッサの状態に応じて効率的にタスクを割り当てる必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
タスクの中には、あるイベントが発生したときには他のタスクに優先して実行されるべきタスクもある。以下、このようなイベント発生を契機として他のタスクに優先して実行されるタスクのことを「割込タスク」とよぶ。また、割込タスクを実行するための処理のことを特に「割込処理」とよぶ。
イベントが発生してからいずれかのプロセッサがその割込タスクを実行開始するまでのオーバーヘッドが大きくなると、割込処理のリアルタイム性が損なわれてしまう。
【０００４】
本発明は、このような課題に鑑みてなされたものであり、その主たる目的は、マルチプロセサシステムにおける割込処理を好適に実行するための技術、を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は情報処理装置である。
この装置は、制御ユニットと割込ユニットを備える。
制御ユニットは、装置を統括的に制御するための処理としてメインプロセスを実行する主制御装置と、メインプロセスの実行中に主制御装置により割り当てられたタスクをサブプロセスとして実行する副制御装置とを含む。
割込ユニットは、メインプロセスの実行中において優先的に実行されるべき割込タスクの実行契機となるイベントの発生を検出し、その検出されたイベントに応じた割込タスクを示す割込情報を制御ユニットに通知する。このとき、割込ユニットは副制御装置に対して割込情報を通知し、割込情報を通知された副制御装置は、その割込情報にて指示された割込タスクをサブプロセスとして実行する。
【０００６】
ここでいう「タスク」とは、ある目的を達成するためにプログラムされたアプリケーションまたはそれに含まれる情報処理の内容をいい、アプリケーションと対応してもよいし、入出力制御やユーザが指定したコマンドなどアプリケーションよりも小さい単位と対応してもよく、何らかの処理または機能の単位に対応すればよい。
【０００７】
なお、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、マルチプロセサシステムにおける割込処理を好適に実行できる。
【発明を実施するための最良の形態】
【０００９】
図１は、情報処理装置の機能ブロック図である。
情報処理装置１００は、統括制御部１１０、画像処理部１２０およびメインメモリ１４０を含む。情報処理装置１００は表示装置１５０と接続されている。表示装置１５０は、統括制御部１１０および画像処理部１２０の処理の結果得られた画像、映像を出力する。
【００１０】
図１などにおいて、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
また、この情報処理装置１００では、情報処理装置１００を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステム（以下、単に「ＯＳ」とよぶ）が実行される。ＯＳ上で複数のアプリケーションソフトウェアが実行される。
【００１１】
統括制御部１１０は、１つの主制御装置１１２と複数の副制御装置１１６を含む。副制御装置１１６および主制御装置１１２はバス１１８により相互通信可能である。主制御装置１１２は、各アプリケーションにおける基本処理単位としてのタスクを各副制御装置１１６に割り当てる。あるいは、主制御装置１１２自身がタスクを実行してもよい。副制御装置１１６がそれぞれ割り当てられたタスクを実行することにより、複数のタスクが並列処理される。
以下、タスクの割り当て処理を含む主制御装置１１２により実行される処理のことを「メインプロセス」、副制御装置１１６により実行される処理のことを「サブプロセス」とよぶ。主制御装置１１２は、ユーザインタフェースに関する処理のように比較的優先度が高い情報処理装置１００全体を統括する処理を実行する。これに対して、副制御装置１１６は、比較的優先度が低いバックグラウンドで実行される計算のようにメインプロセスの下請け的な処理を実行する。
【００１２】
主制御装置１１２や副制御装置１１６に含まれる図示しないＤＭＡＣ（Direct Memory Access Controller）は、メインメモリ１４０やグラフィックスメモリ１２８との間のデータ転送、データ退避などを主制御装置１１２または副制御装置１１６からの命令によって制御する。
【００１３】
メインメモリ１４０は、主に統括制御部１１０によって使用される記憶領域である。メインメモリ１４０には、タスクの実行状態に関連するデータが格納される。たとえば、統括制御部１１０によりコンピュータグラフィックスに関するタスクが処理されて得られたモデリングデータなどが一時的に格納される。また、このメインメモリ１４０には、画像処理部１２０により生成されたデータが退避される場合もある。
【００１４】
画像処理部１２０は、画像処理を専用に実行するユニットであり、たとえば、レンダリング処理を実行する。画像処理部１２０は、統括制御部１１０からの指示により画像処理を実行する。画像処理部１２０は、統括制御部１１０により処理されるそれぞれのタスクに関連する画像処理を行い、生成した画像、映像を表示装置１５０に出力する。画像処理部１２０は、複数の画像処理を時分割して並列的に実行してもよい。
【００１５】
画像処理部１２０は、グラフィックスメモリ１２８、演算ユニット１３０、ディスプレイコントローラ１２６、制御ブロック１２４および画像処理側ＤＭＡＣ１２２を含む。これらのユニット同士も、バス１１８で接続されており、各ユニット間で相互通信可能である。
【００１６】
グラフィックスメモリ１２８は、画像処理部１２０により使用、管理されるグラフィックスデータを記憶するためのメモリ領域である。グラフィックスメモリ１２８には、画像フレームデータが格納されるフレームバッファやＺバッファに加えて、画像フレームデータを描画する際に参照される基本データである頂点データ、テクスチャデータ、カラールックアップテーブルなどのデータに対応する領域が用意されている。
【００１７】
制御ブロック１２４は、画像処理部１２０全体を制御するブロックである。制御ブロック１２４は、演算ユニット１３０、グラフィックスメモリ１２８、ディスプレイコントローラ１２６を統括的に制御し、各ブロック間のデータ転送の同期管理やタイマー管理等を行う。
【００１８】
画像処理側ＤＭＡＣ１２２は、統括制御部１１０やメインメモリ１４０とグラフィックスメモリ１２８の間のデータ転送、データ退避などを制御ブロック１２４からの命令によって制御する。
【００１９】
ディスプレイコントローラ１２６は、水平および垂直同期信号を生成し、表示装置１５０の表示タイミングにしたがって、グラフィックスメモリ１２８に格納されるフレームバッファから画像フレームデータのピクセルデータをライン状に順次読み込んでいく。さらにディスプレイコントローラ１２６は、ライン状に読み込まれたピクセルデータを、ＲＧＢのカラー値からなるデジタルデータから表示装置１５０に対応したフォーマットに変換して出力する。
【００２０】
演算ユニット１３０は、制御ブロック１２４からの命令にしたがって、グラフィックに関する様々な演算処理を行う。その処理の一例としては、３次元モデリングデータをもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、フレームバッファに書き込む一連のレンダリング処理などが挙げられる。
演算ユニット１３０は、特に３次元グラフィックスに関する処理を高速に行うために、ラスタライザ１３２、シェーダユニット１３４、テクスチャユニット１３６などの機能ブロックを含む。
【００２１】
ラスタライザ１３２は、描画する基本物体（以下、「プリミティブ」とよぶ）の頂点データを統括制御部１１０から受け取り、３次元空間上のプリミティブを投影変換により描画平面上の図形に変換するビュー変換を行う。さらに、描画平面上の図形を、描画平面の水平方向に沿ってスキャンしながら、一列ごとに量子化されたピクセルに変換するラスタ処理を行う。このラスタライザ１３２によってプリミティブがピクセル展開されて、各ピクセル毎にピクセル情報を算出する。このピクセル情報には、ＲＧＢカラー値、透明度を表すα値、視点からの奥行きを表すＺ値が含まれる。
【００２２】
ラスタライザ１３２は、スキャンラインに沿って所定の大きさのピクセル領域を生成し、シェーダユニット１３４、テクスチャユニット１３６へと出力する。ラスタライザ１３２から出力されるピクセル領域は、一度キューにスタックされ、シェーダユニット１３４はスタックされたピクセル領域を順に処理していく。
【００２３】
シェーダユニット１３４は、ラスタライザ１３２により算出されたピクセル情報をもとにシェーディング処理を行い、テクスチャユニット１３６により得られたテクセル情報をもとに、テクスチャマッピング後のピクセル色を決定し、グラフィックスメモリ１２８内のフレームバッファにシェーディング処理後の画像フレームデータを書き込む。さらにシェーダユニット１３４はフレームバッファに書き込まれた画像フレームデータに対してフォギング、アルファブレンディング等の処理を行い最終的な描画色を決定してフレームバッファの画像フレームデータを更新する。
【００２４】
テクスチャユニット１３６は、シェーダユニット１３４からテクスチャデータを指定するパラメータを受け取り、要求されたテクスチャデータをグラフィックスメモリ１２８内のテクスチャバッファを読み出し、所定の処理を行った後にシェーダユニット１３４に対して出力する。
【００２５】
画像処理部１２０はプリミティブの頂点データなど画像生成のために必要な基本情報や画像生成の開始指示を統括制御部１１０から与えられると、統括制御部１１０とは独立して画像処理を実行する。指示された画像処理が終了すると、画像処理部１２０はその旨をイベントとして統括制御部１１０に通知する。統括制御部１１０は、画像処理部１２０からイベント通知されると、そのイベントに対応したイベントハンドラにより割込タスクを実行する。画像処理部１２０が所定の画像を生成したことを条件として実行されるべき割込タスクの場合、統括制御部１１０は画像生成終了を示すイベントの通知を契機としてその割込タスクを実行することになる。
【００２６】
たとえば、統括制御部１１０のある副制御装置１１６が表示装置１５０における所定のウィンドウにあわせて画像処理部１２０に画像生成を指示し、別の副制御装置１１６が表示装置１５０における別のウィンドウにあわせて画像生成を指示したとする。このとき、画像処理部１２０は複数のスレッドによってそれぞれの画像を生成するための処理を並列的に実行する。
統括制御部１１０が２つのウィンドウの重なり部分の画像をクリッピングしたい場合には、統括制御部１１０はそれら２つの画像生成が完了した旨をイベント通知されたときに割込タスクとしてクリッピング処理を実行することになる。統括制御部１１０は画像処理部１２０に画像処理を実行指示した後は、別のタスクを実行し、イベント通知されたときには、イベントハンドラによって割込タスクを優先的に実行する。このように、統括制御部１１０と画像処理部１２０は、非同期的に協調動作する。
また、副制御装置１１６は、タスクの実行時に生成されたデータを画像処理部１２０に転送し、画像処理部１２０はその転送されたデータに基づいてタスクの実行を副制御装置１１６から引き継いでもよい。たとえば、画像処理部１２０は、副制御装置１１６による座標計算結果に基づいてグラフィックス表示を実行してもよい。これにより、座標計算、テクスチャの貼り付け、シェーディングといったグラフィックスに関する計算を、副制御装置１１６と画像処理部１２０により分担して実行できる。すなわち、このようなタスクの実行形態の場合、副制御装置１１６と画像処理部１２０の協働により、副制御装置１１６に割り当てられたタスクが実行されることになる。
【００２７】
図２は、画像処理部と統括制御部における割込処理に関連する機能ブロック図である。
画像処理部１２０において発生した各種イベントは、制御ブロック１２４の割込コントローラ１６０により統括制御部１１０に通知される。このとき、統括制御部１１０の主制御装置１１２または副制御装置１１６が、その通知されたイベントに対応して割込タスクを実行する。
【００２８】
１．第１割込処理方式：
一般的な割込処理の方法として考えられる処理過程は以下の通りである（以下、「第１割込処理方式」とよぶ）。まず、割込コントローラ１６０のイベント検出部１６２がイベント発生を検出する。このとき、割込通知部１６４は、イベントが発生した旨を主制御装置１１２のイベント記憶部１７４にイベント情報として通知する。イベント情報はパケット通信により通知される。イベント情報は、イベント発生のタイミングを知らせるための情報であり、イベントに対応して割込タスクを特定する情報を含まない。かわりに、割込通知部１６４は、そのイベントに対応する割込タスクを特定するための情報（以下、「割込情報」とよぶ）を割込情報送信記憶部１６６に記録する。割込情報は、イベントの種類やイベントに応じて実行すべき割込タスクの種類、割込タスクが基づくべき変数を含む。
【００２９】
主制御装置１１２は、通知されたイベント情報をイベント記憶部１７４に記録する。イベント記憶部１７４は、複数個のイベントを記憶することができる。主制御装置１１２の主実行部１７２で実行されるイベントハンドラが、イベント記憶部１７４からイベント情報をＦＩＦＯ（First-In First-Out）方式で取り出す。主制御装置１１２の主実行部１７２は、制御ブロック１２４の割込情報送信記憶部１６６から割込情報を読み出すことにより、実行すべき割込タスクを特定する。
【００３０】
通常、副制御装置１１６には固定的にタスクが割り当てられる。このような副制御装置１１６は、たとえば、プロセス起動時から予約された状態にあり、所定の座標計算など定常的に実行すべきタスクを処理する。一方、主制御装置１１２の主実行部１７２は、予約されていない各副制御装置１１６の中から割込タスクを実行可能な状態にある副制御装置１１６を選択し、割込タスクの実行を指示する場合もある。なお、主制御装置１１２の主実行部１７２はみずから割込タスクを実行してもよい。主制御装置１１２からタスクを割り当てられる副制御装置１１６において実行されるスレッドは、通常は、待機状態となっている。このような予約されていない副制御装置１１６において実行されるスレッドは、主制御装置１１２からのタスク割り当て指示によって待機状態から実行状態に移行する。このとき、副制御装置１１６はタスク実行のための情報も主制御装置１１２から渡される。副制御装置１１６は、割り当てられたタスクの実行を完了したときには、再び待機状態に移行し、また、移行した旨を主制御装置１１２に通知する。これにより、主制御装置１１２は複数の副制御装置１１６のうち、どの副制御装置１１６が待機状態にあるか、すなわち、タスクを即時に実行可能な状態にあるかを知ることができる。
割込タスクの実行指示時において主制御装置１１２は割込情報を副制御装置１１６に渡す。副制御装置１１６の副実行部１８２は、割込情報により指示された割込タスクを実行する。
【００３１】
第１割込処理方式の場合、事実上、すべての割込処理に主制御装置１１２が介在することになる。割込タスクは他のタスクよりも優先的に実行されるべきタスクであるため、主制御装置１１２は、イベント情報を検出したときには、最優先にて上記したような割り当て処理を実行する必要がある。したがって、イベントの発生が短期間に集中すると、主制御装置１１２の処理負荷が過負荷となってしまい、メインプロセスの処理が滞ってしまう可能性がある。
【００３２】
割込通知部１６４から送信されたイベント情報は、イベント記憶部１７４にスタックされていく。もし、割込通知部１６４がイベント情報を通知したときに、主制御装置１１２の処理が滞ってイベント記憶部１７４がオーバーフローすると、割込通知部１６４にはイベント情報を再送する必要が生じる。その場合、割込処理のリアルタイム性が特に損なわれる。
【００３３】
２．第２割込処理方式：
これに対して、本実施例においては、主制御装置１１２による割込タスクの割り当て処理を介さずに、副制御装置１１６が割込タスクを実行する方法を示す。このときの割込処理の過程は以下の通りである（以下、「第２割込処理方式」とよぶ）。
イベント検出部１６２がイベントを検出すると、割込通知部１６４はイベント情報ではなく割込情報を副制御装置１１６の割込情報受信記憶部１８４に書き込む。この書き込みはイベント情報を送信したときのようなパケット通信ではなく、割込情報受信記憶部１８４へのダイレクトな書き込み処理であることが好ましい。
【００３４】
割込情報の書き込み時において、割込通知部１６４は、複数の副制御装置１１６のうち、スレッドが待機状態にある副制御装置１１６の中から割込タスクを実行すべき副制御装置１１６を選択する。第２割込処理方式において、副制御装置１１６のスレッドがタスクの実行を完了して待機状態に移行したときには、副制御装置１１６は画像処理部１２０にその旨を通知する。割込通知部１６４は、この通知によって、スレッドが待機状態にあって割込タスクを即時実行可能な副制御装置１１６を把握できる。副制御装置１１６の副実行部１８２で実行されているイベントハンドラが割込情報受信記憶部１８４から割込情報を読み出して、指定された割込タスクが実行される。
【００３５】
第２割込処理方式によれば、割込通知部１６４は、割込タスクを実行させたい副制御装置１１６に対して主制御装置１１２を介さず直接割込情報を通知できる。そのため、割込処理におけるオーバーヘッドを、総じて第１割込方式よりも削減することができる。
なお、主制御装置１１２は、副制御装置１１６に対して固定的にタスクを割り当ててもよい。また、副制御装置１１６は、画像処理部１２０と協働してサブプロセスとしてのタスクを実行してもよい。この場合、まず、主制御装置１１２は副制御装置１１６にタスクを割り当て、次に、副制御装置１１６はタスク実行に必要なデータをメインメモリ１４０から読み出す。副制御装置１１６はメインメモリ１４０から読み出したデータを副制御装置１１６に内蔵されるローカルメモリに格納する。たとえば、副制御装置１１６は、タスクとして座標計算を実行するときには、座標情報を示すテーブルデータをメインメモリ１４０から読み出してローカルメモリに格納する。
副制御装置１１６は、このローカルメモリに格納したデータに基づいて、主制御装置１１２から割り当てられていたタスクを実行する。副制御装置１１６は、そのタスクの実行結果としてのデータをローカルメモリに格納するとともに、内蔵のＤＭＡＣにてその実行結果としてのデータを、画像処理部１２０のグラフィックスメモリ１２８に転送する。画像処理部１２０は、グラフィックスメモリ１２８から読み出したデータに基づいて、更に処理を実行する。たとえば、副制御装置１１６から転送された座標計算の結果データに基づいて、描画処理を実行する。制御ブロック１２４は、その実行結果を割込情報として、データ送信元の副制御装置１１６に通知する。このようにして、副制御装置１１６に割り当てられたタスクが副制御装置１１６と画像処理部１２０により協働して実行されてもよい。
この場合には、サブプロセスとしてのタスク実行時において主制御装置１１２を介在させないＤＭＡ転送により副制御装置１１６から画像処理部１２０にデータを転送できるため、副制御装置１１６と画像処理部１２０はより緊密に連係してサブプロセスとしてのタスクを実行できる。特に、処理負荷の大きな３次元グラフィックス処理を副制御装置１１６と画像処理部１２０が連係して行う場合などに有効である。
次に、第１割込処理方式と第２割込処理方式のそれぞれによる割込処理の処理過程をシーケンス図を用いて説明する。
【００３６】
図３は、第１割込処理方式における割込処理の過程を示すフローチャートである。
まず、イベント検出部１６２が、イベントを検出することにより割込処理が開始される（Ｓ１０）。割込通知部１６４は、イベントが検出された旨をイベント情報としてパケット通信により主制御装置１１２に通知する（Ｓ１２）。
【００３７】
割込情報送信記憶部１６６は、検出されたイベントに対応した割込情報を一時的に記憶する（Ｓ１４）。主制御装置１１２のイベント記憶部１７４は、Ｓ１２において通知されたイベント情報を記憶する。このイベント情報は、ＦＩＦＯ方式にて主実行部１７２により読み出される（Ｓ１８）。主実行部１７２は、イベント情報を読み出すと、割込情報送信記憶部１６６からの割込情報の読み出しを要求する（Ｓ２０）。主実行部１７２は、割込情報送信記憶部１６６から割込情報を読み出す（Ｓ２２）。
【００３８】
主実行部１７２は、割込情報が指示する割込タスクを実行すべき副制御装置１１６を選択する（Ｓ２４）。主制御装置１１２は、Ｓ２４にて選択した副制御装置１１６に対して、Ｓ２２にて読み出した割込情報を渡して割込タスクの実行を指示する（Ｓ２６）。実行指示された副制御装置１１６は、割込情報にて指示された割込タスクを実行する（Ｓ２８）。なお、割込タスクの実行が完了したときには、副制御装置１１６はその旨を主制御装置１１２に通知する。この通知により、主制御装置１１２は、どの副制御装置１１６が待機状態にあるか、実行状態にあるかを管理する。
【００３９】
図４は、第２割込処理方式における割込処理の過程を示すフローチャートである。
まず、イベント検出部１６２がイベントの発生を検出すると（Ｓ３０）、割込通知部１６４は、複数の副制御装置１１６のうち、割込タスクを実行可能な状態にある副制御装置１１６を選択する（Ｓ３２）。
【００４０】
割込通知部１６４は、選択した副制御装置１１６の割込情報受信記憶部１８４に割込情報を書き込む（Ｓ３４）。このとき、割込通知部１６４は、アプリケーションを識別するためのジョブＩＤや副制御装置１１６を識別するための装置ＩＤを含めて割込情報を書き込む。このため、割込情報を書き込まれた副制御装置１１６は、書き込まれたジョブＩＤや装置ＩＤを参照して、正常に割込情報が通知されているか判定することもできる。
副制御装置１１６は、書き込まれた割込情報を読み出し（Ｓ３６）、その割込情報によって指示された割込タスクを実行する（Ｓ３８）。
【００４１】
第１割込処理方式の場合、割込コントローラ１６０はイベントをすべて主制御装置１１２に送信するので、割込コントローラ１６０側の処理を単純にできるというメリットはある。その反面、すべての割込処理は主制御装置１１２を介して実行されるため、主制御装置１１２の処理が割込処理におけるボトルネックとなる可能性がある。
【００４２】
これに対して、第２割込処理方式の場合には、画像処理部１２０の割込コントローラ１６０が統括制御部１１０の副制御装置１１６の状態を管理する必要があるが、割込処理におけるオーバーヘッドを第１割込処理方式よりも削減できるというメリットがある。
【００４３】
通常、主制御装置１１２には、画像処理部１２０の他にも、図示しないＩ／Ｏブリッジを介して周辺機器から様々なイベントが通知される。より好適な態様としては、各イベントは基本的に第１割込方式にて処理され、予め定義されたイベント群に属するイベントについては第２割込方式にて処理されることが望ましい。このイベント群は、主制御装置１１２ではなく副制御装置１１６により実行されるイベントであって、リアルタイム性をより求められるイベントや特に多く発生しやすいイベントが属するグループとして、アプリケーションソフトウェアのプログラマが定義してもよい。
第１割込方式と第２割込方式を併用することにより、開発コストを抑制しつつも、割込処理、ひいては、情報処理装置１００の処理におけるオーバーヘッドを削減することができる。
【００４４】
以上、本発明を実施例をもとに説明した。この実施例はあくまで例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４５】
なお、請求項に記載の割込ユニットは、本実施例においては主として割込コントローラ１６０により実現されるが、広くは、画像処理部１２０の機能の一部として実現されるといえる。これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【図面の簡単な説明】
【００４６】
【図１】情報処理装置の機能ブロック図である。
【図２】画像処理部と統括制御部における割込処理に関連する機能ブロック図である。
【図３】第１割込処理方式における割込処理の過程を示すフローチャートである。
【図４】第２割込処理方式における割込処理の過程を示すフローチャートである。
【符号の説明】
【００４７】
１００  情報処理装置、  １１０  統括制御部、  １１２  主制御装置、  １１６  副制御装置、  １１８  バス、  １２０  画像処理部、  １２２  画像処理側ＤＭＡＣ、  １２４  制御ブロック、  １２６  ディスプレイコントローラ、  １２８  グラフィックスメモリ、  １３０  演算ユニット、  １４０  メインメモリ、  １５０  表示装置、  １６０  割込コントローラ、  １６２  イベント検出部、  １６４  割込通知部、  １６６  割込情報送信記憶部、  １７２  主実行部、  １７４  イベント記憶部、  １８２  副実行部、  １８４  割込情報受信記憶部。
【図１】
2006318177.tif 000003
【図２】
2006318177.tif 000004
【図３】
2006318177.tif 000005
【図４】
2006318177.tif 000006
【手続補正書】
【提出日】平成17年6月29日(2005.6.29)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2006318177.tif 000007