(57)【要約】【課題】ハードウェアアクセラレータ等に対する割込み要求が競合した場合、タスクの優先度に応じて割込みを受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高められる情報処理装置を提供する。【解決手段】ＣＰＵ１０１と、ＣＰＵ１０１で実行されるタスクの一部を実行するアクセラレータ１０２とを含む情報処理装置において、ＣＰＵ１０１がプロセッサの要求によってタスクＡを実行しているアクセラレータ１０２に対して処理Ｂ実行を要求した場合、処理Ａの進捗の程度に応じて処理Ｂを処理Ａに替えて実行するか否か判定する制御部２０２及び進捗データテーブル２０１を備える。【選択図】図２
2007241629.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、該プロセッサで実行される処理の一部を実行する処理実行部と、を含む情報処理装置であって、
前記プロセッサが、プロセッサの要求によって第１処理を実行している前記処理実行部に対して第２処理の実行を要求した場合、前記第１処理の進捗の程度に応じて前記第２処理を前記第１処理に替えて実行するか否か判定する処理切替え判定手段を備えることを特徴とする情報処理装置。
【請求項２】
前記第１処理の優先度に対応する処理の進捗度を設定する進捗データを有し、前記処理切替え判定手段は、前記第１処理の進捗が、前記進捗データの第１処理の優先度に対応する進捗の程度に達している場合に前記第２処理を前記第１処理に替えて実行すると判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記進捗データは、優先度がより高い第１処理に対してより低い進捗の程度を対応させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理切替え判定手段は、前記第２処理の優先度が前記第１処理の優先度よりも高い場合には前記第１処理の進捗の程度を判断する一方、前記第２処理の優先度が前記第１処理の優先度よりも低い場合には前記第１処理の実行を継続することを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラムにかかり、特にプロセッサとプロセッサの処理の一部をハードウェアによって実行する構成とを備えた情報処理装置、この情報処理装置上で情報処理するための情報処理方法をコンピュータに実行させるためのプログラム
【背景技術】
【０００２】
現在、プロセッサに複数のハードウェアアクセラレータを接続して構成される情報処理装置がある。このような情報処理装置としては、例えば、画像処理用の画像情報を処理する処理装置等が挙げられる。
情報処理装置では、プロセッサがメモリからプログラムを読み込んでタスクごとに実行する。そして、タスクのうち処理時間が比較的長い等の理由によってプロセッサにかかる負荷が大きい処理の実行をハードウェアアクセラレータに要求する。なお、この要求は、一般に割込み処理によって行われる。
【０００３】
ハードウェアアクセラレータは、プロセッサによる割込みを受付けて処理を実行し、実行した結果をプロセッサに渡す。プロセッサは、受け取った実行結果を使ってプログラムのタスク処理を実行する。
また、ハードウェアアクセラレータは、例えば画像処理等の特定の処理に適した構成を有していて、画像処理に関するタスク処理は常に画像処理用のハードウェアアクセラレータに要求される。このため、１つのアクセラレータに処理が同時期に複数要求されることがある。従来の情報処理装置では、タスクに予め割込みの優先度を設定しておき、ハードウェアアクセラレータが優先度の高いタスクから処理する等の方法で複数の処理要求に対応している。
【０００４】
このような従来例として、例えば、特許文献１が挙げられる。特許文献１に記載された発明は、ハードウェアアクセラレータが高い優先度のタスクを常に優先して処理するものである。このような特許文献１によれば、１つのハードウェアアクセラレータにおいて複数のタスクの処理が要求された場合であってもより優先すべきタスクから順に処理することができる。
【特許文献１】特開平７−２７１３４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した特許文献１のように、常に優先度が高いタスクからハードウェアアクセラレータが処理する構成は、優先順位の比較的低いタスクの処理が大幅に遅れる可能性がある。優先順位が低いタスクであっても、処理されない時間が著しく長い場合、処理全体に支障をきたすおそれがある。
このような支障を防ぐ提案として、ハードウェアアクセラレータが要求された順番に処理要求を受付け、処理を実行するものがある。このような方法によれば、特定のタスクの処理効率が低下することを防ぐことはできるものの、優先度が高いタスクの処理が優先度のより低いタスクの実行によって滞るおそれが生じる。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、ハードウェアアクセラレータに対する処理要求が競合した場合、タスクの優先度に応じて処理を受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高めることができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明の情報処理装置は、プロセッサと、該プロセッサで実行される処理の一部を実行する処理実行部と、を含む情報処理装置であって、前記プロセッサが、プロセッサの要求によって第１処理を実行している前記処理実行部に対して第２処理の実行を要求した場合、前記第１処理の進捗の程度に応じて前記第２処理を前記第１処理に替えて実行するか否か判定する処理切替え判定手段を備えることを特徴とする。
【０００８】
このような発明によれば、プロセッサと、このプロセッサで実行される処理の一部を実行する処理実行部とで情報処理装置を構成することができる。また、プロセッサの要求によって第１処理を実行している処理実行部に対して第２処理の実行を要求した場合、第１処理の進捗の程度に応じて第２処理を前記第１処理に替えて実行するか否か判定することができる。
【０００９】
このため、優先度の高い第１処理については完了までに時間がかかる場合にも続行し、第１処理の優先度が比較的低い場合には完了までに長時間を要しない場合にも中止し、他の優先度がより高い第２処理を実行することができる。したがって、ハードウェアアクセラレータ等の処理実行部に対する処理要求が競合した場合、タスクの優先度に応じて処理要求を受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高めることができる情報処理装置を提供することができる。
【００１０】
また、本発明の情報処理装置は、前記第１処理の優先度に対応する処理継続基準を設定する処理継続基準データを有し、前記処理切替え判定手段は、前記第１処理の進捗が、前記処理継続基準データの第１処理の優先度に対応する進捗の程度に達しているいない場合に前記第２処理を前記第１処理に替えて実行すると判断することを特徴とする。
このような発明によれば、処理が完了するまで他の処理を待たせる時間を処理の優先度に応じて切替えることができる。このため、優先すべき処理については処理完了まで比較的時間がかかる場合にも処理を完了させ、優先度の低い処理については比較的短時間で終了する場合にも他の処理を優先して処理することができる。
【００１１】
また、本発明の情報処理装置は、優先度がより高い第１処理に対してより低い進捗の程度を前記処理継続基準データとして対応させることを特徴とする。
このような発明によれば、優先度が高い処理を、処理完了までに比較的時間がかかる場合にも継続して実行することができる。
【００１２】
また、本発明の情報処理装置は、前記処理切替え判定手段が、前記第２処理の優先度が前記第１処理の優先度よりも高い場合には前記第１処理の進捗の程度を判断する一方、前記第２処理の優先度が前記第１処理の優先度よりも低い場合には前記第１処理の実行を継続することを特徴とする。
このような発明によれば、第１処理が進捗の状況に関わらずより優先度の低い第２処理に切替えられることをなくすことができる。
【発明を実施するための最良の形態】
【００１３】
以下、図を参照して本発明にかかる情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
図１は、本実施形態の情報処理装置の概略構成を説明するための図である。なお、本実施形態は、情報処理装置を、画像情報を処理する画像処理装置として構成したものとして説明する。
【００１４】
図示した情報処理装置は、ＣＰＵ（Central Processing Unit）１０１と、ハードウェア構成であるアクセラレータ１０２とを含む情報処理装置である。なお、アクセラレータ１０２とは、ハードウェア資源で構成されて特定の機能を有する１単位である。図１にはＣＰＵ１０１にアクセラレータ１０２を１個接続するよう構成を示したが、互いに異なる機能を有するアクセラレータあるいは同様の機能を有するアクセラレータを複数接続することも可能である。
【００１５】
図２は、アクセラレータ１０２をより詳細に示した図である。アクセラレータ１０２は、ＣＰＵ１０１が、ＣＰＵ１０１の要求によって処理Ａ（第１処理）を実行しているアクセラレータ１０２に対して処理Ｂ（第２処理）の実行を要求した場合、処理Ａの進捗の程度に応じて処理Ｂを処理Ａに替えて実行するか否か判定する制御部２０２を備えている。制御部２０２は、本実施形態の処理切替え判定手段として機能する。
【００１６】
また、本実施形態の情報処理装置は、処理Ａの優先度に対応する処理の継続基準を含む情報を有している。本実施形態では、この情報をデータテーブル２０１に記録するものとした。制御部２０２は、処理Ａの進捗が、データテーブル２０１の処理Ａの優先度に対応する処理継続基準に達していない場合に処理Ｂを処理Ａに替えて実行すると判断する。情報処理装置は、さらに画像処理部２０３を備えていて、ＣＰＵ１０１から要求された処理を実行する。
【００１７】
アクセラレータ１０２は、その処理の実行結果をＣＰＵ１０１に通知する。なお、アクセラレータ１０２は、ＣＰＵ１０１へ処理結果を通知するためのステータスレジスタ２０４を備えている。ステータスレジスタ２０４は、アクセラレータ１０２がＣＰＵ１０１に対して通知すべき情報を保持する。
【００１８】
図３は、データテーブル２０１の内容を示した図であって、アクセラレータ１０２に処理を要求する、ＣＰＵ１０１におけるタスクの優先度と切替えの判定の根拠となる処理継続基準とを示している。タスクには予め優先度（タスク優先度）が付されていて、タスク優先度に対応して処理継続基準（遅延許容可能な処理進捗率）が設定されている。
処理継続基準とは、処理Ａを実行中のアクセラレータ１０２に対して処理Ｂが要求された場合、処理Ｂの要求を待たせて処理Ａを完了させると判断するしきい値となる処理Ａの進捗率である。
【００１９】
また、制御部２０２は、処理Ｂの優先度が処理Ａの優先度よりも高い場合には処理Ａの進捗の程度を判断する一方、処理Ｂの優先度が処理Ａの優先度よりも低い場合には処理Ａの実行を継続する。
すなわち、タスク優先度０（本実施形態では最低優先度とする）のタスクにより要求された処理の実行中、タスク優先度０以上のタスクによる処理要求がアクセラレータ１０２に対してなされた場合、制御部２０２は、データテーブル２０１を参照してタスク優先度０に対応する処理継続基準が９０％であることを検出する。そして、画像処理部２０３で現在実行されている処理の進捗状況を検出し、処理が全体の９０％以上完了している場合には、より優先度の高いタスクの処理要求を待たせてタスク優先度０の処理を完了させる。
【００２０】
また、制御部２０２は、タスク優先度１の処理の実行中、タスク優先度１以上のタスクの処理要求がアクセラレータ１０２に対してなされた場合、データテーブル２０１を参照してタスク優先度１に対応する処理継続基準が８０％であることを検出する。そして、画像処理部２０３で現在実行されているタスクの進捗状況を検出し、処理が全体の８０％以上完了している場合には、より優先度の高いタスクの処理要求を待たせてタスク優先度１の処理を完了させる。
【００２１】
このように、より優先度が高いタスクにより低い進捗率を処理継続基準として対応させることにより、本実施形態は、優先度が比較的高いタスクが処理されている場合には他のタスクを比較的長い時間であっても待たせる。このため、本実施形態は、優先度が比較的高いタスクを優先的に処理することができる。
また、本実施形態は、優先度がより低いタスクにより高い進捗率を処理継続基準として対応させることにより、優先度が比較的低い処理が実行されている場合には他の処理を長時間待たせることなく実行することができる。このため、本実施形態は、優先度が比較的高いタスクを優先的に処理することができる。
【００２２】
なお、画像処理部２０３における処理の進捗状況は、例えば、制御部２０２が画像処理部２０３における処理の進捗をステータスレジスタ２０４に書き込んでおくことも可能である。図４は、ステータスレジスタ２０４に処理の進捗状況を書き込んだ例を示している。処理の進捗状況は、例えば、処理を要求したタスクを特定するためのタスクＩＤ、タスクの優先度、処理ステータスによって記述可能である。
【００２３】
このように構成した場合、ＣＰＵ１０１は、ステータスレジスタ２０４を参照し、画像処理部２０３における処理の進捗状況を検出することができる。
また、本実施形態は、処理の段階により進捗状況を管理する構成に限定されるものでなく、例えばクロックカウンタ等のクロックを計数して処理の進捗状況を判別するものであってもよい。
【００２４】
図５は、以上述べた本実施形態の情報処理装置の動作を説明するためのフローチャートである。図示したフローチャートによれば、ＣＰＵ１０１がアクセラレータ１０２に対して処理を依頼した場合、制御部２０２が、処理を依頼したタスクの優先度を判定する。この結果、新たに処理を要求したタスクの優先度が現在画像処理部２０３において実行中の処理を依頼したタスクの優先度より低い場合には（Ｓ５０１：Ｆａｌｓｅ）、ＣＰＵ１０１の依頼を受付けない旨通知する（処理依頼を不受理）。
【００２５】
なお、ＣＰＵ１０１からアクセラレータ１０２への処理依頼は、例えばタスクＩＤと優先順位とを制御部２０２へ入力することによって可能である。また、アクセラレータ１０２からＣＰＵ１０１への不受理の通知は例えば受理、不受理の別を示すフラグをステータスレジスタ２０４に書込むことによって可能である。
一方、ステップＳ５０１において、新たに処理を要求したタスクの優先度が現在画像処理部２０３において実行中の処理を依頼したタスクの優先度より高いと判断された場合（Ｓ５０１：Ｔｒｕｅ）、アクセラレータ１０２において実行中の処理の進捗率が、このタスクの優先度に対応してデータテーブルに設定されている処理継続基準に達していないか否か判断する（Ｓ５０２）。
【００２６】
ステップＳ５０２の結果、実行中の処理の進捗率が対応する処理継続基準に達している場合（Ｓ５０２：Ｆａｌｓｅ）、画像処理部２０３は、アクセラレータ１０２で実行中の処理を継続して完了させる（Ｓ５０４）。また、処理継続基準に達していない場合（Ｓ５０２：Ｔｒｕｅ）、実行中の処理を中止して処理中のデータを破棄する（Ｓ５０３）。
ステップＳ５０３、ステップＳ５０４の終了後、制御部２０２は、ステータスレジスタ２０４における処理ステータス（図４）のステータスフラグを処理の終了または中止に設定してＣＰＵ１０１に通知する（Ｓ５０５）。通知により、ＣＰＵ１０１は、アクセラレータ１０２への処理の要求結果を検出する。
【００２７】
図６、図７は、以上述べた本実施形態の情報処理装置によって得られる効果を従来構成と比較して示すための図である。なお、図６、図７において、従来例のうち優先順位がより高いタスクにより処理が依頼された場合に実行中の処理を打ち切るものを強制打ち切り方式、タスクの優先順位に関わらず先に実行中の処理の完了を待って次の処理を実行するものを処理終了まで占有する方式と記した。また、本実施形態の情報処理装置で行われる処理を、許容期間を設けた方式と記した。
【００２８】
また、図６、図７のいずれもが、タスクＣ、タスクＤが１つのアクセラレータに処理を要求した場合のＣＰＵとアクセラレータとの動きを示している。そして、タスクＣはタスクＤよりも高い優先度を持つものとする。
図６の例によれば、強制打ち切り方式では、タスクＤによって依頼された処理（タスクＤのアクセラレータ処理）を実行しているアクセラレータに対してＣＰＵがタスクＣの処理を依頼した場合、アクセラレータが直ちにタスクＤのアクセラレータ処理を中止してタスクＣによって依頼された処理（タスクＣのアクセラレータ処理）が開始される。そして、アクセラレータは、タスクＣのアクセラレータ処理が終了した場合にタスクＣのアクセラレータ処理の終了をＣＰＵに通知する。
【００２９】
通知を受けたＣＰＵは、タスクＣのアクセラレータ処理の結果を受けてタスクＣの実行を再開すると共に、新たにタスクＤの処理をアクセラレータに再度依頼する。このとき、アクセラレータは、先のタスクＤの処理のデータを破棄しているので、タスクＤのアクセラレータ処理を最初から実行する。タスクＤのアクセラレータ処理が終了すると、ＣＰＵは、この結果を受けてタスクＤの実行を再開し、タスクＤを完了させる。
【００３０】
一方、許容期間を設けた方式では、タスクＤのアクセラレータ処理を実行しているアクセラレータに対してＣＰＵがタスクＣのアクセラレータ処理を依頼した場合、アクセラレータはタスクＤのアクセラレータ処理の進捗率によってタスクＣの依頼を受付けるか否か判断する。タスクＣの処理を待たせる（保留する）場合、タスクＤのアクセラレータ処理の終了を待ってタスクＣのアクセラレータ処理を開始する。なお、ＣＰＵは、タスクＤのアクセラレータ処理の結果を受けてタスクＤの実行を再開し、完了させる。
また、ＣＰＵは、タスクＣのアクセラレータ処理の結果を受けてタスクＣを完了させる。
【００３１】
このような例によれば、許容期間を設けた方式によるタスクＣの終了時間は最大でタスクＤの優先度に対応する遅延許容時間分遅れるものの、タスクＤは、強制打ち切り方式において中止されたタスクＤの処理時間分早く終了する。遅延許容時間とは、図３に示した処理継続基準を１００から差し引いた割合（図３のタスク優先度１のタスクでは１００−８０＝２０％）のタスクを終了するまでにかかる時間である。
【００３２】
遅延許容時間は、タスクＤの優先順位に応じた他のタスクを待たせることが許容される時間である。このため、多くの場合、遅延許容時間は強制打ち切り方式において中止されたタスクＤのアクセラレータ処理時間よりも短い。したがって、許容期間を設けた方式は、タスクＤの処理時間とタスクＤの許容遅延時間分だけ処理が遅れた処理Ｃの終了時間との差であるΔｔだけ強制打ち切り方式よりも処理全体を早く終了することができる。
【００３３】
また、図７の例によれば、許容期間を設けた方式では、タスクＤのアクセラレータ処理を実行しているアクセラレータに対してＣＰＵがタスクＣの処理を依頼した場合、アクセラレータはタスクＤのアクセラレータ処理の進捗率によってタスクＣの依頼を受付けるか否か判断する。タスクＤに代えてタスクＣのアクセラレータ処理をする場合、直ちにタスクＣのアクセラレータ処理が開始する。
【００３４】
タスクＣのアクセラレータ処理終了後、アクセラレータは、タスクＣのアクセラレータ処理の結果をＣＰＵに通知する。また、アクセラレータは、タスクＣのアクセラレータ処理終了後、タスクＤのアクセラレータ処理を開始してＣＰＵに結果を通知する。
一方、処理終了まで占有する方式では、タスクＤのアクセラレータ処理を実行しているアクセラレータに対してＣＰＵがタスクＣの処理を依頼した場合、アクセラレータはタスクＣ、タスクＤの優先度によらずタスクＣを待機させ、タスクＤのアクセラレータ処理を完了させる。タスクＤのアクセラレータ処理完了後、アクセラレータは、タスクＣのアクセラレータ処理を受付けて実行する。
【００３５】
このような例によれば、許容期間を設けた方式によるタスクＤの終了時間は処理終了まで占有する方式に遅れるものの、より優先順位の高いタスクＣを処理終了まで占有する方式よりも早く終了することができる。
【図面の簡単な説明】
【００３６】
【図１】本実施形態の情報処理装置の概略構成を説明するための図である。
【図２】図１に示したアクセラレータをより詳細に示した図である。
【図３】図２に示したデータテーブルの内容を示した図である。
【図４】図２に示したステータスレジスタにタスクの進捗状況を書き込んだ例を示している。
【図５】本発明の一実施形態の情報処理装置の動作を説明するためのフローチャートである。
【図６】本発明の一実施形態によって得られる効果を説明するための図である。
【図７】本発明の一実施形態によって得られる効果を説明するための他の図である。
【符号の説明】
【００３７】
１０１  ＣＰＵ、１０２  アクセラレータ、２０１  データテーブル、２０２  制御部、２０３  画像処理部、２０４  ステータスレジスタ
【図１】
2007241629.tif 000003
【図２】
2007241629.tif 000004
【図３】
2007241629.tif 000005
【図４】
2007241629.tif 000006
【図５】
2007241629.tif 000007
【図６】
2007241629.tif 000008
【図７】
2007241629.tif 000009