JP2007241629A - 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム - Google Patents

情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP2007241629A
JP2007241629A JP2006062748A JP2006062748A JP2007241629A JP 2007241629 A JP2007241629 A JP 2007241629A JP 2006062748 A JP2006062748 A JP 2006062748A JP 2006062748 A JP2006062748 A JP 2006062748A JP 2007241629 A JP2007241629 A JP 2007241629A
Authority
JP
Japan
Prior art keywords
task
processing
priority
accelerator
progress
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.)
Pending
Application number
JP2006062748A
Other languages
English (en)
Inventor
Ryuichi Sato
竜一 佐藤
Masahiro Kitano
正博 北野
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006062748A priority Critical patent/JP2007241629A/ja
Publication of JP2007241629A publication Critical patent/JP2007241629A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

【課題】ハードウェアアクセラレータ等に対する割込み要求が競合した場合、タスクの優先度に応じて割込みを受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高められる情報処理装置を提供する。
【解決手段】CPU101と、CPU101で実行されるタスクの一部を実行するアクセラレータ102とを含む情報処理装置において、CPU101がプロセッサの要求によってタスクAを実行しているアクセラレータ102に対して処理B実行を要求した場合、処理Aの進捗の程度に応じて処理Bを処理Aに替えて実行するか否か判定する制御部202及び進捗データテーブル201を備える。
【選択図】図2

Description

本発明は、情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラムにかかり、特にプロセッサとプロセッサの処理の一部をハードウェアによって実行する構成とを備えた情報処理装置、この情報処理装置上で情報処理するための情報処理方法をコンピュータに実行させるためのプログラム
現在、プロセッサに複数のハードウェアアクセラレータを接続して構成される情報処理装置がある。このような情報処理装置としては、例えば、画像処理用の画像情報を処理する処理装置等が挙げられる。
情報処理装置では、プロセッサがメモリからプログラムを読み込んでタスクごとに実行する。そして、タスクのうち処理時間が比較的長い等の理由によってプロセッサにかかる負荷が大きい処理の実行をハードウェアアクセラレータに要求する。なお、この要求は、一般に割込み処理によって行われる。
ハードウェアアクセラレータは、プロセッサによる割込みを受付けて処理を実行し、実行した結果をプロセッサに渡す。プロセッサは、受け取った実行結果を使ってプログラムのタスク処理を実行する。
また、ハードウェアアクセラレータは、例えば画像処理等の特定の処理に適した構成を有していて、画像処理に関するタスク処理は常に画像処理用のハードウェアアクセラレータに要求される。このため、1つのアクセラレータに処理が同時期に複数要求されることがある。従来の情報処理装置では、タスクに予め割込みの優先度を設定しておき、ハードウェアアクセラレータが優先度の高いタスクから処理する等の方法で複数の処理要求に対応している。
このような従来例として、例えば、特許文献1が挙げられる。特許文献1に記載された発明は、ハードウェアアクセラレータが高い優先度のタスクを常に優先して処理するものである。このような特許文献1によれば、1つのハードウェアアクセラレータにおいて複数のタスクの処理が要求された場合であってもより優先すべきタスクから順に処理することができる。
特開平7−271344号公報
しかしながら、上記した特許文献1のように、常に優先度が高いタスクからハードウェアアクセラレータが処理する構成は、優先順位の比較的低いタスクの処理が大幅に遅れる可能性がある。優先順位が低いタスクであっても、処理されない時間が著しく長い場合、処理全体に支障をきたすおそれがある。
このような支障を防ぐ提案として、ハードウェアアクセラレータが要求された順番に処理要求を受付け、処理を実行するものがある。このような方法によれば、特定のタスクの処理効率が低下することを防ぐことはできるものの、優先度が高いタスクの処理が優先度のより低いタスクの実行によって滞るおそれが生じる。
本発明は、上記の点に鑑みてなされたものであって、ハードウェアアクセラレータに対する処理要求が競合した場合、タスクの優先度に応じて処理を受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高めることができる情報処理装置を提供することを目的とする。
以上の課題を解決するため、本発明の情報処理装置は、プロセッサと、該プロセッサで実行される処理の一部を実行する処理実行部と、を含む情報処理装置であって、前記プロセッサが、プロセッサの要求によって第1処理を実行している前記処理実行部に対して第2処理の実行を要求した場合、前記第1処理の進捗の程度に応じて前記第2処理を前記第1処理に替えて実行するか否か判定する処理切替え判定手段を備えることを特徴とする。
このような発明によれば、プロセッサと、このプロセッサで実行される処理の一部を実行する処理実行部とで情報処理装置を構成することができる。また、プロセッサの要求によって第1処理を実行している処理実行部に対して第2処理の実行を要求した場合、第1処理の進捗の程度に応じて第2処理を前記第1処理に替えて実行するか否か判定することができる。
このため、優先度の高い第1処理については完了までに時間がかかる場合にも続行し、第1処理の優先度が比較的低い場合には完了までに長時間を要しない場合にも中止し、他の優先度がより高い第2処理を実行することができる。したがって、ハードウェアアクセラレータ等の処理実行部に対する処理要求が競合した場合、タスクの優先度に応じて処理要求を受付ながら、特定のタスクの処理が著しく低下することを防ぐことによって処理全体の効率を高めることができる情報処理装置を提供することができる。
また、本発明の情報処理装置は、前記第1処理の優先度に対応する処理継続基準を設定する処理継続基準データを有し、前記処理切替え判定手段は、前記第1処理の進捗が、前記処理継続基準データの第1処理の優先度に対応する進捗の程度に達しているいない場合に前記第2処理を前記第1処理に替えて実行すると判断することを特徴とする。
このような発明によれば、処理が完了するまで他の処理を待たせる時間を処理の優先度に応じて切替えることができる。このため、優先すべき処理については処理完了まで比較的時間がかかる場合にも処理を完了させ、優先度の低い処理については比較的短時間で終了する場合にも他の処理を優先して処理することができる。
また、本発明の情報処理装置は、優先度がより高い第1処理に対してより低い進捗の程度を前記処理継続基準データとして対応させることを特徴とする。
このような発明によれば、優先度が高い処理を、処理完了までに比較的時間がかかる場合にも継続して実行することができる。
また、本発明の情報処理装置は、前記処理切替え判定手段が、前記第2処理の優先度が前記第1処理の優先度よりも高い場合には前記第1処理の進捗の程度を判断する一方、前記第2処理の優先度が前記第1処理の優先度よりも低い場合には前記第1処理の実行を継続することを特徴とする。
このような発明によれば、第1処理が進捗の状況に関わらずより優先度の低い第2処理に切替えられることをなくすことができる。
以下、図を参照して本発明にかかる情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
図1は、本実施形態の情報処理装置の概略構成を説明するための図である。なお、本実施形態は、情報処理装置を、画像情報を処理する画像処理装置として構成したものとして説明する。
図示した情報処理装置は、CPU(Central Processing Unit)101と、ハードウェア構成であるアクセラレータ102とを含む情報処理装置である。なお、アクセラレータ102とは、ハードウェア資源で構成されて特定の機能を有する1単位である。図1にはCPU101にアクセラレータ102を1個接続するよう構成を示したが、互いに異なる機能を有するアクセラレータあるいは同様の機能を有するアクセラレータを複数接続することも可能である。
図2は、アクセラレータ102をより詳細に示した図である。アクセラレータ102は、CPU101が、CPU101の要求によって処理A(第1処理)を実行しているアクセラレータ102に対して処理B(第2処理)の実行を要求した場合、処理Aの進捗の程度に応じて処理Bを処理Aに替えて実行するか否か判定する制御部202を備えている。制御部202は、本実施形態の処理切替え判定手段として機能する。
また、本実施形態の情報処理装置は、処理Aの優先度に対応する処理の継続基準を含む情報を有している。本実施形態では、この情報をデータテーブル201に記録するものとした。制御部202は、処理Aの進捗が、データテーブル201の処理Aの優先度に対応する処理継続基準に達していない場合に処理Bを処理Aに替えて実行すると判断する。情報処理装置は、さらに画像処理部203を備えていて、CPU101から要求された処理を実行する。
アクセラレータ102は、その処理の実行結果をCPU101に通知する。なお、アクセラレータ102は、CPU101へ処理結果を通知するためのステータスレジスタ204を備えている。ステータスレジスタ204は、アクセラレータ102がCPU101に対して通知すべき情報を保持する。
図3は、データテーブル201の内容を示した図であって、アクセラレータ102に処理を要求する、CPU101におけるタスクの優先度と切替えの判定の根拠となる処理継続基準とを示している。タスクには予め優先度(タスク優先度)が付されていて、タスク優先度に対応して処理継続基準(遅延許容可能な処理進捗率)が設定されている。
処理継続基準とは、処理Aを実行中のアクセラレータ102に対して処理Bが要求された場合、処理Bの要求を待たせて処理Aを完了させると判断するしきい値となる処理Aの進捗率である。
また、制御部202は、処理Bの優先度が処理Aの優先度よりも高い場合には処理Aの進捗の程度を判断する一方、処理Bの優先度が処理Aの優先度よりも低い場合には処理Aの実行を継続する。
すなわち、タスク優先度0(本実施形態では最低優先度とする)のタスクにより要求された処理の実行中、タスク優先度0以上のタスクによる処理要求がアクセラレータ102に対してなされた場合、制御部202は、データテーブル201を参照してタスク優先度0に対応する処理継続基準が90%であることを検出する。そして、画像処理部203で現在実行されている処理の進捗状況を検出し、処理が全体の90%以上完了している場合には、より優先度の高いタスクの処理要求を待たせてタスク優先度0の処理を完了させる。
また、制御部202は、タスク優先度1の処理の実行中、タスク優先度1以上のタスクの処理要求がアクセラレータ102に対してなされた場合、データテーブル201を参照してタスク優先度1に対応する処理継続基準が80%であることを検出する。そして、画像処理部203で現在実行されているタスクの進捗状況を検出し、処理が全体の80%以上完了している場合には、より優先度の高いタスクの処理要求を待たせてタスク優先度1の処理を完了させる。
このように、より優先度が高いタスクにより低い進捗率を処理継続基準として対応させることにより、本実施形態は、優先度が比較的高いタスクが処理されている場合には他のタスクを比較的長い時間であっても待たせる。このため、本実施形態は、優先度が比較的高いタスクを優先的に処理することができる。
また、本実施形態は、優先度がより低いタスクにより高い進捗率を処理継続基準として対応させることにより、優先度が比較的低い処理が実行されている場合には他の処理を長時間待たせることなく実行することができる。このため、本実施形態は、優先度が比較的高いタスクを優先的に処理することができる。
なお、画像処理部203における処理の進捗状況は、例えば、制御部202が画像処理部203における処理の進捗をステータスレジスタ204に書き込んでおくことも可能である。図4は、ステータスレジスタ204に処理の進捗状況を書き込んだ例を示している。処理の進捗状況は、例えば、処理を要求したタスクを特定するためのタスクID、タスクの優先度、処理ステータスによって記述可能である。
このように構成した場合、CPU101は、ステータスレジスタ204を参照し、画像処理部203における処理の進捗状況を検出することができる。
また、本実施形態は、処理の段階により進捗状況を管理する構成に限定されるものでなく、例えばクロックカウンタ等のクロックを計数して処理の進捗状況を判別するものであってもよい。
図5は、以上述べた本実施形態の情報処理装置の動作を説明するためのフローチャートである。図示したフローチャートによれば、CPU101がアクセラレータ102に対して処理を依頼した場合、制御部202が、処理を依頼したタスクの優先度を判定する。この結果、新たに処理を要求したタスクの優先度が現在画像処理部203において実行中の処理を依頼したタスクの優先度より低い場合には(S501:False)、CPU101の依頼を受付けない旨通知する(処理依頼を不受理)。
なお、CPU101からアクセラレータ102への処理依頼は、例えばタスクIDと優先順位とを制御部202へ入力することによって可能である。また、アクセラレータ102からCPU101への不受理の通知は例えば受理、不受理の別を示すフラグをステータスレジスタ204に書込むことによって可能である。
一方、ステップS501において、新たに処理を要求したタスクの優先度が現在画像処理部203において実行中の処理を依頼したタスクの優先度より高いと判断された場合(S501:True)、アクセラレータ102において実行中の処理の進捗率が、このタスクの優先度に対応してデータテーブルに設定されている処理継続基準に達していないか否か判断する(S502)。
ステップS502の結果、実行中の処理の進捗率が対応する処理継続基準に達している場合(S502:False)、画像処理部203は、アクセラレータ102で実行中の処理を継続して完了させる(S504)。また、処理継続基準に達していない場合(S502:True)、実行中の処理を中止して処理中のデータを破棄する(S503)。
ステップS503、ステップS504の終了後、制御部202は、ステータスレジスタ204における処理ステータス(図4)のステータスフラグを処理の終了または中止に設定してCPU101に通知する(S505)。通知により、CPU101は、アクセラレータ102への処理の要求結果を検出する。
図6、図7は、以上述べた本実施形態の情報処理装置によって得られる効果を従来構成と比較して示すための図である。なお、図6、図7において、従来例のうち優先順位がより高いタスクにより処理が依頼された場合に実行中の処理を打ち切るものを強制打ち切り方式、タスクの優先順位に関わらず先に実行中の処理の完了を待って次の処理を実行するものを処理終了まで占有する方式と記した。また、本実施形態の情報処理装置で行われる処理を、許容期間を設けた方式と記した。
また、図6、図7のいずれもが、タスクC、タスクDが1つのアクセラレータに処理を要求した場合のCPUとアクセラレータとの動きを示している。そして、タスクCはタスクDよりも高い優先度を持つものとする。
図6の例によれば、強制打ち切り方式では、タスクDによって依頼された処理(タスクDのアクセラレータ処理)を実行しているアクセラレータに対してCPUがタスクCの処理を依頼した場合、アクセラレータが直ちにタスクDのアクセラレータ処理を中止してタスクCによって依頼された処理(タスクCのアクセラレータ処理)が開始される。そして、アクセラレータは、タスクCのアクセラレータ処理が終了した場合にタスクCのアクセラレータ処理の終了をCPUに通知する。
通知を受けたCPUは、タスクCのアクセラレータ処理の結果を受けてタスクCの実行を再開すると共に、新たにタスクDの処理をアクセラレータに再度依頼する。このとき、アクセラレータは、先のタスクDの処理のデータを破棄しているので、タスクDのアクセラレータ処理を最初から実行する。タスクDのアクセラレータ処理が終了すると、CPUは、この結果を受けてタスクDの実行を再開し、タスクDを完了させる。
一方、許容期間を設けた方式では、タスクDのアクセラレータ処理を実行しているアクセラレータに対してCPUがタスクCのアクセラレータ処理を依頼した場合、アクセラレータはタスクDのアクセラレータ処理の進捗率によってタスクCの依頼を受付けるか否か判断する。タスクCの処理を待たせる(保留する)場合、タスクDのアクセラレータ処理の終了を待ってタスクCのアクセラレータ処理を開始する。なお、CPUは、タスクDのアクセラレータ処理の結果を受けてタスクDの実行を再開し、完了させる。
また、CPUは、タスクCのアクセラレータ処理の結果を受けてタスクCを完了させる。
このような例によれば、許容期間を設けた方式によるタスクCの終了時間は最大でタスクDの優先度に対応する遅延許容時間分遅れるものの、タスクDは、強制打ち切り方式において中止されたタスクDの処理時間分早く終了する。遅延許容時間とは、図3に示した処理継続基準を100から差し引いた割合(図3のタスク優先度1のタスクでは100−80=20%)のタスクを終了するまでにかかる時間である。
遅延許容時間は、タスクDの優先順位に応じた他のタスクを待たせることが許容される時間である。このため、多くの場合、遅延許容時間は強制打ち切り方式において中止されたタスクDのアクセラレータ処理時間よりも短い。したがって、許容期間を設けた方式は、タスクDの処理時間とタスクDの許容遅延時間分だけ処理が遅れた処理Cの終了時間との差であるΔtだけ強制打ち切り方式よりも処理全体を早く終了することができる。
また、図7の例によれば、許容期間を設けた方式では、タスクDのアクセラレータ処理を実行しているアクセラレータに対してCPUがタスクCの処理を依頼した場合、アクセラレータはタスクDのアクセラレータ処理の進捗率によってタスクCの依頼を受付けるか否か判断する。タスクDに代えてタスクCのアクセラレータ処理をする場合、直ちにタスクCのアクセラレータ処理が開始する。
タスクCのアクセラレータ処理終了後、アクセラレータは、タスクCのアクセラレータ処理の結果をCPUに通知する。また、アクセラレータは、タスクCのアクセラレータ処理終了後、タスクDのアクセラレータ処理を開始してCPUに結果を通知する。
一方、処理終了まで占有する方式では、タスクDのアクセラレータ処理を実行しているアクセラレータに対してCPUがタスクCの処理を依頼した場合、アクセラレータはタスクC、タスクDの優先度によらずタスクCを待機させ、タスクDのアクセラレータ処理を完了させる。タスクDのアクセラレータ処理完了後、アクセラレータは、タスクCのアクセラレータ処理を受付けて実行する。
このような例によれば、許容期間を設けた方式によるタスクDの終了時間は処理終了まで占有する方式に遅れるものの、より優先順位の高いタスクCを処理終了まで占有する方式よりも早く終了することができる。
本実施形態の情報処理装置の概略構成を説明するための図である。 図1に示したアクセラレータをより詳細に示した図である。 図2に示したデータテーブルの内容を示した図である。 図2に示したステータスレジスタにタスクの進捗状況を書き込んだ例を示している。 本発明の一実施形態の情報処理装置の動作を説明するためのフローチャートである。 本発明の一実施形態によって得られる効果を説明するための図である。 本発明の一実施形態によって得られる効果を説明するための他の図である。
符号の説明
101 CPU、102 アクセラレータ、201 データテーブル、202 制御部、203 画像処理部、204 ステータスレジスタ

Claims (4)

  1. プロセッサと、該プロセッサで実行される処理の一部を実行する処理実行部と、を含む情報処理装置であって、
    前記プロセッサが、プロセッサの要求によって第1処理を実行している前記処理実行部に対して第2処理の実行を要求した場合、前記第1処理の進捗の程度に応じて前記第2処理を前記第1処理に替えて実行するか否か判定する処理切替え判定手段を備えることを特徴とする情報処理装置。
  2. 前記第1処理の優先度に対応する処理の進捗度を設定する進捗データを有し、前記処理切替え判定手段は、前記第1処理の進捗が、前記進捗データの第1処理の優先度に対応する進捗の程度に達している場合に前記第2処理を前記第1処理に替えて実行すると判断することを特徴とする請求項1に記載の情報処理装置。
  3. 前記進捗データは、優先度がより高い第1処理に対してより低い進捗の程度を対応させることを特徴とする請求項2に記載の情報処理装置。
  4. 前記処理切替え判定手段は、前記第2処理の優先度が前記第1処理の優先度よりも高い場合には前記第1処理の進捗の程度を判断する一方、前記第2処理の優先度が前記第1処理の優先度よりも低い場合には前記第1処理の実行を継続することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
JP2006062748A 2006-03-08 2006-03-08 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム Pending JP2007241629A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006062748A JP2007241629A (ja) 2006-03-08 2006-03-08 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006062748A JP2007241629A (ja) 2006-03-08 2006-03-08 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム

Publications (1)

Publication Number Publication Date
JP2007241629A true JP2007241629A (ja) 2007-09-20

Family

ID=38587115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006062748A Pending JP2007241629A (ja) 2006-03-08 2006-03-08 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム

Country Status (1)

Country Link
JP (1) JP2007241629A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182139A (ja) * 2009-02-06 2010-08-19 Mitsubishi Electric Corp 描画制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182139A (ja) * 2009-02-06 2010-08-19 Mitsubishi Electric Corp 描画制御装置

Similar Documents

Publication Publication Date Title
JP4088335B1 (ja) 仮想キュー処理回路およびタスク処理装置
CN108920267B (zh) 任务处理装置
US8607239B2 (en) Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
JP2007079789A (ja) 計算機システム及びイベント処理方法
JP2006243865A (ja) プロセッサおよび情報処理方法
JP2008123157A (ja) プロセッサ及び割込み制御方法
US20090292846A1 (en) Method of interrupt scheduling
JP2010272076A (ja) マルチプロセッサシステム
JPH0454255B2 (ja)
JP2009163658A (ja) 入出力制御装置およびそのファームウェア更新方法
JP4609113B2 (ja) プロセッサ
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP2001160041A (ja) オンラインシステムのcpu負荷軽減方式
JP2007241629A (ja) 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム
JP2004078683A (ja) コンピュータシステムおよび共有メモリ制御方法
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2006079393A (ja) 印刷システム及びそのためのジョブ制御方法
JP7095620B2 (ja) 演算装置
JP2022102333A (ja) 実行スケジューリング決定方法及び実行スケジューリング決定プログラム
JP2007102399A (ja) データ処理装置
JP2008108126A (ja) データ転送制御装置及びそのバスアクセス調停方法
CN106020965B (zh) 电子设备以及信息处理方法
JPH08137703A (ja) タスク切替装置
JP2006146641A (ja) マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法
JP2010044699A (ja) 情報処理装置