JP2007102399A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2007102399A JP2007102399A JP2005289679A JP2005289679A JP2007102399A JP 2007102399 A JP2007102399 A JP 2007102399A JP 2005289679 A JP2005289679 A JP 2005289679A JP 2005289679 A JP2005289679 A JP 2005289679A JP 2007102399 A JP2007102399 A JP 2007102399A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- task
- progress
- progress information
- execution
- 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.)
- Withdrawn
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
【課題】 プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替えの処理効率をより高める。
【解決手段】 複数のタスクをタスクの優先順位にしたがって順次実行するCPU101及びCPU101の指示によって電子データを処理するHWアクセラレータ103でデータ処理装置を構成し、HWアクセラレータ103が、実行される処理の進捗状況を示すHWステータスをステータスレジスタ107に記録し、CPU101が、記録されたHWステータスを認識してタスクを切替えながら順次タスクを実行する。
【選択図】 図1
【解決手段】 複数のタスクをタスクの優先順位にしたがって順次実行するCPU101及びCPU101の指示によって電子データを処理するHWアクセラレータ103でデータ処理装置を構成し、HWアクセラレータ103が、実行される処理の進捗状況を示すHWステータスをステータスレジスタ107に記録し、CPU101が、記録されたHWステータスを認識してタスクを切替えながら順次タスクを実行する。
【選択図】 図1
Description
本発明は、電子データを汎用的に処理するデータ処理装置に係り、特にハードウェアとプロセッサ上で動作するソフトウェアとが共同してデータを処理するデータ処理装置に関する。
現在、特定の処理を実行するハードウェア装置をプロセッサ等の制御装置によって制御する構成のデータ処理装置が広く使用されている。このようなデータ処理装置では、1つのプロセッサが複数のタスクを優先順位にしたがって実行し、この過程でタスクのうち比較的負荷が大きい処理をハードウェアに依頼する。
ハードウェアに処理を依頼した場合、このプロセッサは、この処理に係るタスクを中断して次に実行すべきタスクを実行する。ハードウェアは、依頼された処理の実行が終了すると、処理の終了をプロセッサに通知する。このとき、プロセッサは、実行中であった処理がハードウェアに依頼した処理よりも優先度が低い場合、実行中であった処理を中断する。そして、ハードウェアに依頼して処理が終了したタスクを必要に応じて引き続き実行する。
ハードウェアに処理を依頼した場合、このプロセッサは、この処理に係るタスクを中断して次に実行すべきタスクを実行する。ハードウェアは、依頼された処理の実行が終了すると、処理の終了をプロセッサに通知する。このとき、プロセッサは、実行中であった処理がハードウェアに依頼した処理よりも優先度が低い場合、実行中であった処理を中断する。そして、ハードウェアに依頼して処理が終了したタスクを必要に応じて引き続き実行する。
以上のプロセッサ及びハードウェアの動作において、ハードウェアからプロセッサに対して行われる処理終了の通知は、一般的に割込みが用いられる。従来のデータ処理装置の多くは、プロセッサに対する割込みをトリガとしてタスクを切替えている。このような従来技術としては、例えば、特許文献1が挙げられる。
特開平7−271344号公報
しかしながら、特許文献1に記載された発明は、プロセッサがタスクを割込みのみをトリガとして切替えるため、実行中のタスクを中断するための処理を割込みがなされてから開始することになる。なお、タスクを中断するための処理とは、中断直前の処理内容を処理再開に備えて保存しておく処理をいうものとする。
また、特許文献1に記載された発明は、割込みがなされない限りタスクを順次実行するため、プロセッサに依頼した優先順位のよりタスクの処理が終了する直前であっても、優先順位のより低いタスクの実行が開始される。このような場合、特許文献1に記載された発明では、優先順位のより低いタスクの実行開始のために優先順位がより高いタスクの実行開始が遅れる可能性が生じる。
また、特許文献1に記載された発明は、割込みがなされない限りタスクを順次実行するため、プロセッサに依頼した優先順位のよりタスクの処理が終了する直前であっても、優先順位のより低いタスクの実行が開始される。このような場合、特許文献1に記載された発明では、優先順位のより低いタスクの実行開始のために優先順位がより高いタスクの実行開始が遅れる可能性が生じる。
このような特許文献1は、タスク切替によるオーバーヘッドが大きく、タスク切替の処理効率をより高めることが望まれている。
本発明は、上記した点に鑑みてなされたものであり、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替の処理効率をより高めることを目的とする。
本発明は、上記した点に鑑みてなされたものであり、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替の処理効率をより高めることを目的とする。
以上の課題を解決するため、本発明のデータ処理装置は、複数のタスクを、当該タスクの優先順位にしたがって順次実行する制御手段と、前記制御手段の指示によって電子データを処理するデータ処理実行手段と、を備えるデータ処理装置であって、前記データ処理実行手段は、実行される電子データの処理の進捗状況を示す進捗情報を記録する進捗情報記録手段を備え、前記制御手段は、前記進捗情報記録手段によって記録された進捗情報を認識する進捗状況認識手段を備え、前記進捗状況認識手段によって認識された進捗情報を含む情報に基づいてタスクを切替え、順次実行することを特徴とする。
このような発明によれば、複数のタスクを優先順位にしたがって順次実行し、この過程でデータ処理実行手段にタスクの一部の処理を実行させることができる。また、データ処理実行手段によって実行される電子データの処理の進捗状況を示す進捗情報を記録し、制御手段に進捗情報を認識させることができるので、本実施形態のデータ処理装置は、制御手段がデータ処理実行手段の処理の進捗状況を把握し、状況に応じてタスクを切替えることができる。
このような本発明は、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替の処理効率をより高めることができる。
また、本発明のデータ処理装置は、前記制御手段が、タスクの実行順序を設定する実行順序設定手段を備え、前記実行順序設定手段は、前記進捗状況認識手段によって認識された進捗状況によって前記実行順序設定手段によって設定された実行順序を変更することを特徴とする。
また、本発明のデータ処理装置は、前記制御手段が、タスクの実行順序を設定する実行順序設定手段を備え、前記実行順序設定手段は、前記進捗状況認識手段によって認識された進捗状況によって前記実行順序設定手段によって設定された実行順序を変更することを特徴とする。
このような発明によれば、制御手段がタスクの実行順序を設定し、設定された実行順書を進捗状況認識手段によって認識された進捗状況によって変更することができる。
このような発明によれば、いったん設定されたタスクの実行順序をデータ処理装置における処理の進捗状況に応じて変更することが可能になり、処理の進捗状況に柔軟に対応してより処理効率の高い順序を設定することができる。
このような発明によれば、いったん設定されたタスクの実行順序をデータ処理装置における処理の進捗状況に応じて変更することが可能になり、処理の進捗状況に柔軟に対応してより処理効率の高い順序を設定することができる。
また、本発明のデータ処理装置は、前記進捗情報記録手段が前記データ処理実行手段内のレジスタに進捗情報を記録すると共に、前記進捗状況認識手段は、前記進捗情報記録手段に割り当てられたメモリマップ上の対応するアドレスを参照して進捗情報を認識することを特徴とする。
このような発明によれば、レジスタに進捗情報を記録し、記録された進捗情報を、レジスタに予め割り当てられたアドレスを参照することによって認識することができる。このため、進捗情報参照にかかる手順や時間を軽減し、変化する進捗情報をリアルタイムで参照しやすくすることができる。
このような発明によれば、レジスタに進捗情報を記録し、記録された進捗情報を、レジスタに予め割り当てられたアドレスを参照することによって認識することができる。このため、進捗情報参照にかかる手順や時間を軽減し、変化する進捗情報をリアルタイムで参照しやすくすることができる。
また、本発明のデータ処理装置は、前記進捗情報記録手段が、前記データ処理実行手段におけるデータ処理のうち残りのデータ処理にかかるサイクル数を進捗情報として記録することを特徴とする。
このような発明によれば、データ処理実行手段におけるデータ処理にかかる残り時間によってデータ処理の進捗状況を把握することができる。このため、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかの判断を容易にすることができる。
このような発明によれば、データ処理実行手段におけるデータ処理にかかる残り時間によってデータ処理の進捗状況を把握することができる。このため、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかの判断を容易にすることができる。
また、本発明のデータ処理装置は、前記進捗情報記録手段が、前記データ処理実行手段におけるデータ処理の残りが所定のデータ処理量であるしきい値以下であるか否かを判定し、しきい値以下であった場合、データ処理の残りがしきい値以下であることを示すフラグを進捗情報として記録することを特徴とする。
このような発明によれば、データ処理の残り量に基づいて判断する処理を省き、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかの判断をいっそう容易にすることができる。
このような発明によれば、データ処理の残り量に基づいて判断する処理を省き、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかの判断をいっそう容易にすることができる。
また、本発明のデータ処理装置は、前記しきい値を記録すると共に、記録されたしきい値を変更することが可能なしきい値記録手段を備えることを特徴とする。
このような発明によれば、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかを判断する基準をユーザのニーズやデータ処理の内容等に応じて変更することが可能になる。
このような発明によれば、設定された実行順序にしたがってタスクを実行するべきか、データ処理実行手段の処理を待ってタスクの実行を再開すべきかを判断する基準をユーザのニーズやデータ処理の内容等に応じて変更することが可能になる。
以下、図を参照して本発明に係るデータ処理装置の一実施の形態を説明する。
図1は、本実施形態のデータ処理装置の構成を説明するための図である。本実施形態のデータ処理装置は、複数のタスクを、このタスクの優先順位にしたがって順次実行するCPU(Central Processing Unit)101と、CPU101の指示によって電子データ(以降単にデータ)を処理するハードウェア(HW)アクセラレータ103と、を備えるデータ処理装置である。図1中に示したメモリ102は、データ処理装置のタスクの実行に使用される命令や命令の実行に使用されるテーブルやデータ等を保存するための構成である。
図1は、本実施形態のデータ処理装置の構成を説明するための図である。本実施形態のデータ処理装置は、複数のタスクを、このタスクの優先順位にしたがって順次実行するCPU(Central Processing Unit)101と、CPU101の指示によって電子データ(以降単にデータ)を処理するハードウェア(HW)アクセラレータ103と、を備えるデータ処理装置である。図1中に示したメモリ102は、データ処理装置のタスクの実行に使用される命令や命令の実行に使用されるテーブルやデータ等を保存するための構成である。
CPU101、メモリ102、HWアクセラレータ103は、互いにバスによって接続されている。また、本実施形態は、図1に示したように、HWアクセラレータ103を一つ備えるものに限定されるものではなく、複数のHWアクセラレータ103を備えるものであってもよい。このような場合、CPU101は、1つで複数のHWアクセラレータ103を制御するものであってもよいし、複数あってもよい。
CPU101は、複数のタスクを適正に順次実行するため、タスク管理テーブル108を備えている。タスク管理テーブル108の一例を、図2に示す。
図2に示したタスク管理テーブル108は、タスクA、タスクB、タスクCを含むタスクを管理するためのタスク管理テーブルである。タスク管理テーブル108は、各タスクのタスク名と、各タスクの進行状況を示すプログラムカウンタ(PC)、タスク実行時のプロセッサの状態や条件等を記録するプロセッサステートレジスタ(PSR)、スタックの位置を示すスタックポインタ(SP)、タスクの状態を示すスティト(State)、優先順位(priority)、実行中のタスクの処理内容(register file)、HWアクセラレータが複数ある場合の使用されているHWアクセラレータ、または唯一のHWアクセラレータの使用、不使用(HW)を管理する。
図2に示したタスク管理テーブル108は、タスクA、タスクB、タスクCを含むタスクを管理するためのタスク管理テーブルである。タスク管理テーブル108は、各タスクのタスク名と、各タスクの進行状況を示すプログラムカウンタ(PC)、タスク実行時のプロセッサの状態や条件等を記録するプロセッサステートレジスタ(PSR)、スタックの位置を示すスタックポインタ(SP)、タスクの状態を示すスティト(State)、優先順位(priority)、実行中のタスクの処理内容(register file)、HWアクセラレータが複数ある場合の使用されているHWアクセラレータ、または唯一のHWアクセラレータの使用、不使用(HW)を管理する。
CPU101は、このようなタスク管理テーブル108を用い、複数のタスクの実行順序を設定する。CPU101とタスク管理テーブル108とは、本実施形態の実行順序設定手段として機能する。本実施形態でいう実行順序は、実行可能なタスクのタスク名をより早期に実行されるものから一列に列記して表される。また、この列を、以降レディキューとも記すものとする。
一方、HWアクセラレータ103は、タスクの実行にあたって比較的負荷の大きいデータの処理をするためのハードウェアである。このため、データ処理に使用される演算部106、CPU101の指示にしたがって演算部106を制御する制御部104を備えている。
制御部104は、カウンタあるいはステートマシンから成る。本実施形態のカウンタは、処理のサイクルをカウントする。ステートマシンは、処理のパラメータや設定等によって演算部106での処理を制御する。制御部104によれば、現在演算部106が実行している処理のサイクル数や状態を示すことができる。
制御部104は、カウンタあるいはステートマシンから成る。本実施形態のカウンタは、処理のサイクルをカウントする。ステートマシンは、処理のパラメータや設定等によって演算部106での処理を制御する。制御部104によれば、現在演算部106が実行している処理のサイクル数や状態を示すことができる。
また、HWアクセラレータ103は、ステータス信号生成部105及びステータスレジスタ107を備えている。ステータス信号生成部105は、HWアクセラレータ103によって得られる処理の残りサイクル数を示すステータス信号を生成する。ステータス信号は、HWステータス(progress_val)として残りのサイクル数を含む情報をステータスレジスタ107に書き込む信号である。図1に示した例では、HWアクセラレータ103によって実行されている処理の残りのサイクル数が30であることを示している。
このような制御部104、ステータス信号生成部105、ステータスレジスタ107は、実行される電子データの処理の進捗状況を示すHWステータス(進捗情報)を記録する進捗情報記録手段として機能する。
CPU101は、ステータスレジスタ107に書き込まれたHWステータスを認識し、認識されたHWステータスを含む情報に基づいてタスクを切替え、順次実行する。本実施形態のデータ処理装置は、HWステータスによってタスク管理テーブル108で設定された実行順序を変更することによってタスク切替えを実行する。なお、実行順序を変更する具体的な動作については後述する。また、本実施形態でいうHWステータスを含む情報とは、HWステータス及び各タスクの優先順位の情報である。
CPU101は、ステータスレジスタ107に書き込まれたHWステータスを認識し、認識されたHWステータスを含む情報に基づいてタスクを切替え、順次実行する。本実施形態のデータ処理装置は、HWステータスによってタスク管理テーブル108で設定された実行順序を変更することによってタスク切替えを実行する。なお、実行順序を変更する具体的な動作については後述する。また、本実施形態でいうHWステータスを含む情報とは、HWステータス及び各タスクの優先順位の情報である。
以上述べた構成において、CPU101は、HWアクセラレータ103をキックしてタスクに含まれる一の処理(HW依頼処理)の実行を指示する。HWアクセラレータ103は、指示されたHW依頼処理を実行する。この際、本実施形態では、制御部104がHW依頼処理の内容に基づいて処理の開始から終了までに必要なサイクル数を算出する。ステータス信号生成部105は、設定されたサイクル数をステータス信号によってステータスレジスタ107に書き込む。また、CPU101は、HWアクセラレータ103は、書き込まれたサイクル数を演算部106の処理の進捗に応じて更新する。
また、CPU101は、ステータスレジスタ107に記録されたHWステータスを認識することができる(矢線Aで示す)。本実施形態では、ステータスレジスタ107にHWステータスを書き込み、CPU101がメモリマップに割り当てられているステータスレジスタ107を参照することによってHWステータスの認識を可能にしている。
図3は、CPU101によって参照されるメモリマップの一例を示した図である。本実施形態では、メモリマップのうちHWステータスが書き込まれるアドレスの範囲を予め設定しておく。そして、CPU101が、タスクを終了するごとにメモリマップの設定された範囲のアドレスに書き込まれたデータを参照することによって処理の残りサイクル数を認識する。
図3は、CPU101によって参照されるメモリマップの一例を示した図である。本実施形態では、メモリマップのうちHWステータスが書き込まれるアドレスの範囲を予め設定しておく。そして、CPU101が、タスクを終了するごとにメモリマップの設定された範囲のアドレスに書き込まれたデータを参照することによって処理の残りサイクル数を認識する。
このような構成により、CPU101は、比較的簡易にHWステータスを参照し、HWアクセラレータ103によって実行されている処理の状況を随時判定することができる。
一方、HWアクセラレータ103は、矢線Bで示すアクセスラインを有し、指示された処理の完了をCPU101に割込みとして通知することが可能である。
次に、以上述べた本実施形態のデータ処理装置の動作を説明する。この説明では、データ処理装置がタスクA、タスクB、タスクCの3つのタスクを実行するものとする。タスクA、タスクB、タスクCの優先順位は、タスクA>タスクB>タスクCである。
一方、HWアクセラレータ103は、矢線Bで示すアクセスラインを有し、指示された処理の完了をCPU101に割込みとして通知することが可能である。
次に、以上述べた本実施形態のデータ処理装置の動作を説明する。この説明では、データ処理装置がタスクA、タスクB、タスクCの3つのタスクを実行するものとする。タスクA、タスクB、タスクCの優先順位は、タスクA>タスクB>タスクCである。
図4は、本実施形態のデータ処理装置の動作を説明するための図であって、実線は本実施形態のデータ処理装置の動作を、破線は比較のため記した従来技術の動作を示している。図4において、タスクA、タスクB、タスクCの文字の下に記した縦方向の矢線は、各タスクが実行されているタイミングを示している。また、OSの文字の下に記した縦方向の矢線は、CPU101においてOSが動作しているタイミングを、INTの文字の下に記した縦方向の矢線は、割込み及び割込みにかかる処理のタイミング示している。また、横方向の矢線は、各処理の遷移を示すものである。
なお、図4に示した縦方向の矢線の実線と破線とのずれは、両者を識別して認識しやすくするためのものであって、特に記載する箇所以外に両者に実質的な相違はない。
以下、本実施形態のデータ処理装置の動作と、従来の構成の動作とを対比して説明する。
以下、本実施形態のデータ処理装置の動作と、従来の構成の動作とを対比して説明する。
(本実施形態のデータ処理装置)
本実施形態のデータ処理装置は、先ず、CPU101が、最も優先順位の高いタスクAの実行を開始する。タスクAの実行中、CPU101は、HW依頼処理の実行をHWアクセラレータ103に指示する(S401)。このため、CPU101においては、実行されているタスクがOS(Operating System)に切替えられてディスパッチャが起動する。
本実施形態のデータ処理装置は、先ず、CPU101が、最も優先順位の高いタスクAの実行を開始する。タスクAの実行中、CPU101は、HW依頼処理の実行をHWアクセラレータ103に指示する(S401)。このため、CPU101においては、実行されているタスクがOS(Operating System)に切替えられてディスパッチャが起動する。
図5は、上記したタスクAの実行中にHW依頼処理をするタスクプログラムを示した図である。HW依頼処理は、タスクAの実行中にCPU101がHWアクセラレータ103をコールする。そして、HW依頼処理に必要なパラメータを渡して処理の実行を指示するものである。
CPU101は、図2に示したタスク管理テーブルを参照し、HWアクセラレータ103の使用状況を確認する(S402)。そして、HWアクセラレータ103が使用可能な状態であった場合、CPU101上で動作するOSは、HWアクセラレータ103にHW依頼処理の実行を指示する(S403)。タスクAは、HW依頼処理の完了まで実行できない状態になる。このため、CPU101は、タスクAをレディキューから外す(S404)。
CPU101は、図2に示したタスク管理テーブルを参照し、HWアクセラレータ103の使用状況を確認する(S402)。そして、HWアクセラレータ103が使用可能な状態であった場合、CPU101上で動作するOSは、HWアクセラレータ103にHW依頼処理の実行を指示する(S403)。タスクAは、HW依頼処理の完了まで実行できない状態になる。このため、CPU101は、タスクAをレディキューから外す(S404)。
タスクAが実行できなくなったことにより、CPU101では、次のタスクを実行するためにディスパッチャが起動する(S405)。ここで、本実施形態のデータ処理装置は、OSがステータスレジスタ107に書き込まれているHWステータスを確認する(S406)。
本実施形態のHWステータスは、HW依頼処理に必要な残りのサイクル数で表されている。CPU101は、HWステータスを確認した結果、HWステータスが所定の数以上のサイクル数を示している場合、レディキューにおける次のタスクBを実行する(S407)。
本実施形態のHWステータスは、HW依頼処理に必要な残りのサイクル数で表されている。CPU101は、HWステータスを確認した結果、HWステータスが所定の数以上のサイクル数を示している場合、レディキューにおける次のタスクBを実行する(S407)。
CPU101においてタスクBの実行が終了すると、ディスパッチャが起動し(S408)、CPU101上でOSが動作する。OSは、ステータスレジスタ107に書き込まれているHWステータスを確認する(S409)。確認の結果、HWステータスが示すサイクル数が所定の数に満たない場合、タスクAが所定の時間以下の時間内に終了する。
HWステータスが示すサイクル数が所定の数に満たない場合、CPU101は、レディキューにおいてタスクBの次に実行すべきタスクCの優先度とタスクAの優先度とを比較する。タスクAの優先度は、タスクCの優先度よりも高い。このため、CPU101は、レディキューので設定された実行順序を変更し、タスクCを実行することなくタスクAをレディキューの先頭に追加する(S410)。
HWステータスが示すサイクル数が所定の数に満たない場合、CPU101は、レディキューにおいてタスクBの次に実行すべきタスクCの優先度とタスクAの優先度とを比較する。タスクAの優先度は、タスクCの優先度よりも高い。このため、CPU101は、レディキューので設定された実行順序を変更し、タスクCを実行することなくタスクAをレディキューの先頭に追加する(S410)。
HW依頼処理が終了すると、HWアクセラレータ103は、割込みによってCPU101に処理の終了を通知する(S411)。本実施形態のデータ処理装置では、割込みがあったときタスクがすでにレディキューに追加されていて、しかもCPU101が他のタスクを実行していない。このため、速やかに割込みに伴う処理をしてタスクAの実行を開始することができる。
割込みに伴う処理が終了すると、CPU101上でOSが動作してディスパッチャが起動する(S412)。次に、CPU101は、レディキューにおいて先頭にあるタスクAを実行する(S413:図中に実行開始のタイミングをt1として記す)。
割込みに伴う処理が終了すると、CPU101上でOSが動作してディスパッチャが起動する(S412)。次に、CPU101は、レディキューにおいて先頭にあるタスクAを実行する(S413:図中に実行開始のタイミングをt1として記す)。
(従来の構成)
従来のデータ処理装置は、タスクAの処理の一部の実行をHWアクセラレータ103に依頼したことによってタスクAをレディキューから外した後にディスパッチャを起動する。そして、HWアクセラレータ103の処理状況によらず、レディキューにそってタスクB、タスクCを順次実行する。
従来のデータ処理装置は、タスクAの処理の一部の実行をHWアクセラレータ103に依頼したことによってタスクAをレディキューから外した後にディスパッチャを起動する。そして、HWアクセラレータ103の処理状況によらず、レディキューにそってタスクB、タスクCを順次実行する。
HWアクセラレータ103は、HW依頼処理を終了すると、割込みによってCPU101に処理の終了を通知する。このとき、CPU101は、タスクCの実行中であって、タスクCよりも優先度が高いタスクA実行することを決定する。このため、タスクAをレディキューの先頭に追加してディスパッチャを起動する。ディスパッチャにより、CPU101は、タスクCに替えてタスクAを実行する(図中に実行開始のタイミングをt2として記す)。
このように、本実施形態のデータ処理装置は、タスクが終了した時点でHWアクセラレータ103におけるHW依頼処理の残りサイクル数を確認する点で従来の構成と相違する。また、HW依頼処理を含むタスクAの優先度がタスクCよりも高いことから、タスクCを実行することなくタスクAをレディキューに追加する。
このような処理によれば、本実施形態のデータ処理装置は、タスクの実行順序を変更し、HWアクセラレータ103による割込みに先んじてタスクAをレディキューに追加しておくことができる。また、割込みがなされた後にも、タスクCの実行を中断するためタスクCの処理中のデータをレジスタファイルに退避させる等の処理をすることなく、速やかにタスクAの実行の準備をすることができる。
このような処理によれば、本実施形態のデータ処理装置は、タスクの実行順序を変更し、HWアクセラレータ103による割込みに先んじてタスクAをレディキューに追加しておくことができる。また、割込みがなされた後にも、タスクCの実行を中断するためタスクCの処理中のデータをレジスタファイルに退避させる等の処理をすることなく、速やかにタスクAの実行の準備をすることができる。
このため、本実施形態は、処理の一部の実行をHWアクセラレータ103に依頼したことによって中断されたタスクAの実行を、従来の構成よりも図中に示す差分d(タイミングt1とタイミングt2との差分)の時間だけ早く開始することができる。
なお、本実施形態のデータ処理装置は、以上述べた構成に限定されるものではない。すなわち、以上述べた実施形態では、HWアクセラレータ103によって実行されている処理の残りサイクル数を進捗情報として書き込んでいる。しかしながら、進捗情報は、残りサイクル数に限定されるものでなく、例えば、残りサイクル数に基づいてフラグ等を立てるものであってもよい。
なお、本実施形態のデータ処理装置は、以上述べた構成に限定されるものではない。すなわち、以上述べた実施形態では、HWアクセラレータ103によって実行されている処理の残りサイクル数を進捗情報として書き込んでいる。しかしながら、進捗情報は、残りサイクル数に限定されるものでなく、例えば、残りサイクル数に基づいてフラグ等を立てるものであってもよい。
図6は、フラグを進捗情報としてHWステータスに使用したデータ処理装置の例を説明するための図であって、図6中に示した構成のうち、図1に示した構成と同一のものには同一の符号を付し、説明を一部省くものとする。
図示したデータ処理装置は、処理の残りサイクル数が記録されるステータスレジスタ107に代えて、フラグを立てる際のしきい値となるサイクル数(しきい値サイクル数:pre_done_cfg)が設定されるパラメータレジスタ608、残り処理数がしきい値サイクル数以下になった場合に立てられるフラグが書き込まれるステータスレジスタ607を備えている。
図示したデータ処理装置は、処理の残りサイクル数が記録されるステータスレジスタ107に代えて、フラグを立てる際のしきい値となるサイクル数(しきい値サイクル数:pre_done_cfg)が設定されるパラメータレジスタ608、残り処理数がしきい値サイクル数以下になった場合に立てられるフラグが書き込まれるステータスレジスタ607を備えている。
図6に示したデータ処理装置は、制御部104が、現在実行中のHW依頼処理のサイクル数をカウントすると共に残りサイクル数を算出する。さらに、制御部104は、算出された残りサイクル数をパラメータレジスタ608に書き込まれたしきい値サイクル数と比較する。そして、残りサイクル数がしきい値サイクル数以下になった場合ステータス信号生成部105に指示してステータスレジスタ607に「1」のフラグ(pre_done_flag)を書き込ませる。
CPU101は、タスクが終了するとステータスレジスタ607を参照し、「1」のフラグが立ったことによってHWアクセラレータ103におけるHW依頼処理の終了が近いことを検出する。そして、HW依頼処理を含むタスクと、レディキューに設定されたタスクとの優先順位に応じてタスクの実行順序を変更する。
また、図6に示したデータ処理装置にあっても、CPU101は、メモリマップを参照することによってしきい値サイクル数やフラグといったHWステータスを認識する。
また、図6に示したデータ処理装置にあっても、CPU101は、メモリマップを参照することによってしきい値サイクル数やフラグといったHWステータスを認識する。
図7は、CPU101によって参照されるメモリマップの一例である。本実施形態では、メモリマップのうちHWステータスが書き込まれるアドレスの範囲を予め設定しておく。そして、CPU101が、タスクが終了するごとにメモリマップの設定された範囲のアドレスに書き込まれたデータを参照することによって処理の残りサイクル数を認識する。
また、本実施形態のデータ処理装置は、しきい値サイクル数を任意に設定可能に構成することも可能である。このような構成は、例えば、ユーザの要望やデータ処理装置が扱うデータの種別、HWアクセラレータの処理内容に応じてデータ処理装置が含まれる機器の出荷時に所望の設定値をパラメータレジスタ608に書き込むことによって実現できる。
また、本実施形態のデータ処理装置は、しきい値サイクル数を任意に設定可能に構成することも可能である。このような構成は、例えば、ユーザの要望やデータ処理装置が扱うデータの種別、HWアクセラレータの処理内容に応じてデータ処理装置が含まれる機器の出荷時に所望の設定値をパラメータレジスタ608に書き込むことによって実現できる。
また、予め所定のしきい値を複数設定しておき、タスクのパラメータ等に応じてCPU101が設定を変更するものであってもよい。
なお、以上の構成では、しきい値サイクルの値を書き替え可能なパラメータレジスタ608がしきい値記録手段となる。
なお、以上の構成では、しきい値サイクルの値を書き替え可能なパラメータレジスタ608がしきい値記録手段となる。
101 CPU、102 メモリ、103 HWアクセラレータ、104 制御部
105 ステータス信号生成部、106 演算部、107 ステータスレジスタ、108 タスク管理テーブル、607 ステータスレジスタ、608 パラメータレジスタ
105 ステータス信号生成部、106 演算部、107 ステータスレジスタ、108 タスク管理テーブル、607 ステータスレジスタ、608 パラメータレジスタ
Claims (6)
- 複数のタスクを、当該タスクの優先順位にしたがって順次実行する制御手段と、
前記制御手段の指示によって電子データを処理するデータ処理実行手段と、を備えるデータ処理装置であって、
前記データ処理実行手段は、
実行される電子データの処理の進捗状況を示す進捗情報を記録する進捗情報記録手段を備え、
前記制御手段は、
前記進捗情報記録手段によって記録された進捗情報を認識する進捗状況認識手段を備え、
前記進捗状況認識手段によって認識された進捗情報を含む情報に基づいてタスクを切替え、順次実行することを特徴とするデータ処理装置。 - 前記制御手段は、タスクの実行順序を設定する実行順序設定手段を備え、
前記実行順序設定手段は、前記進捗状況認識手段によって認識された進捗状況によって前記実行順序設定手段によって設定された実行順序を変更することを特徴とする請求項1に記載のデータ処理装置。 - 前記進捗情報記録手段が前記データ処理実行手段内のレジスタに進捗情報を記録すると共に、前記進捗状況認識手段は、前記進捗情報記録手段に割り当てられたメモリマップ上の対応するアドレスを参照して進捗情報を認識することを特徴とする請求項1または2に記載のデータ処理装置。
- 前記進捗情報記録手段は、前記データ処理実行手段におけるデータ処理のうち残りのデータ処理にかかるサイクル数を進捗情報として記録することを特徴とする請求項1から3のいずれか1項に記載のデータ処理装置。
- 前記進捗情報記録手段は、前記データ処理実行手段におけるデータ処理の残りが所定のデータ処理量であるしきい値以下であるか否かを判定し、しきい値以下であった場合、データ処理の残りがしきい値以下であることを示すフラグを進捗情報として記録することを特徴とする請求項1から3のいずれか1項に記載のデータ処理装置。
- 前記しきい値を記録すると共に、記録されたしきい値を変更することが可能なしきい値記録手段を備えることを特徴とする請求項5に記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005289679A JP2007102399A (ja) | 2005-10-03 | 2005-10-03 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005289679A JP2007102399A (ja) | 2005-10-03 | 2005-10-03 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007102399A true JP2007102399A (ja) | 2007-04-19 |
Family
ID=38029298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005289679A Withdrawn JP2007102399A (ja) | 2005-10-03 | 2005-10-03 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007102399A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010205046A (ja) * | 2009-03-04 | 2010-09-16 | Toyota Motor Corp | 情報処理装置 |
JP2014178801A (ja) * | 2013-03-14 | 2014-09-25 | Juki Corp | 画像処理装置及び画像処理方法 |
-
2005
- 2005-10-03 JP JP2005289679A patent/JP2007102399A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010205046A (ja) * | 2009-03-04 | 2010-09-16 | Toyota Motor Corp | 情報処理装置 |
JP2014178801A (ja) * | 2013-03-14 | 2014-09-25 | Juki Corp | 画像処理装置及び画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9727343B2 (en) | Apparatus and method for handling exception events | |
US7992042B2 (en) | Debug support device, and program for directing computer to perform debugging method | |
EP3754492A1 (en) | Interrupt system for risc-v architecture | |
US6553487B1 (en) | Device and method for performing high-speed low overhead context switch | |
US10824467B2 (en) | Data processing system with protected mode of operation for processing protected content | |
US9092255B2 (en) | Multi-core processor system, computer product, and control method for interrupt execution | |
JPH02267634A (ja) | 割込み処理装置 | |
JP2005276097A (ja) | 割り込み依頼プログラムおよびマイクロコンピュータ | |
JP4965638B2 (ja) | タスクの切り換えを制御するシステムおよび方法 | |
JP2007102399A (ja) | データ処理装置 | |
JP2006146758A (ja) | コンピュータシステム | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
JPH0916409A (ja) | マイクロコンピュータ | |
JP2011108140A (ja) | データ処理装置 | |
JP2005258509A (ja) | ストレージ装置 | |
JP2007109038A (ja) | データ処理装置 | |
JP2007109037A (ja) | データ処理装置 | |
JPH0895798A (ja) | データ処理装置 | |
JP2008140124A (ja) | データ処理装置 | |
JP2007241629A (ja) | 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム | |
JPH05313916A (ja) | 電子計算機における割込み処理方法及び電子計算機 | |
JPH05233525A (ja) | I/o処理装置 | |
JPH0486923A (ja) | タスク管理制御方式 | |
JPS61184644A (ja) | 仮想計算機システム制御方式 | |
JP2006139496A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070405 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090106 |