(57)【要約】【課題】プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替えの処理効率をより高める。【解決手段】複数のタスクをタスクの優先順位にしたがって順次実行するＣＰＵ１０１、ＣＰＵ１０１の指示によってデータを処理するＨＷアクセラレータ１０３を備え、ＨＷアクセラレータ１０３が、データの処理の進捗情報を記録するステータスレジスタ１０７を備え、ＣＰＵ１０１は、記録された進捗情報を認識し、進捗情報を含む情報に基づいてＨＷアクセラレータ１０３に対するポーリングを開始し、ポーリングによって進捗情報を認識する。【選択図】図１
2007109037.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを、当該タスクの優先順位にしたがって順次実行する制御手段と、
前記制御手段の指示によって電子データを処理するデータ処理実行手段と、を備えるデ
ータ処理装置であって、
前記データ処理実行手段は、
実行される電子データの処理の進捗状況を示す進捗情報を記録する進捗情報記録手段を
備え、
前記制御手段は、
前記進捗情報記録手段によって記録された進捗情報を認識する進捗状況認識手段を備え
、
前記進捗状況認識手段に記録された進捗情報を含む情報に基づいて前記データ処理実行
手段に対するポーリングを開始し、前記進捗状況認識手段がポーリングによって進捗情報
を認識することを特徴とするデータ処理装置。
【請求項２】
前記進捗情報記録手段は、電子データの処理の残りサイクル数がしきい値以下になった
ことを示すフラグを記録し、前記制御手段は、前記進捗状況認識手段によってフラグが記
録されたことを認識してポーリングを開始することを特徴とする請求項１に記載のデータ
処理装置。
【請求項３】
前記しきい値を記録すると共に、記録されたしきい値を変更することが可能なしきい値
記録手段を備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記制御手段は、ポーリングの開始にあたって前記データ処理実行手段による割込みを
禁止することを特徴とする請求項１から３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記データ処理実行手段は、電子データの処理の残りサイクル数が所定のサイクル数以
下になった場合に前記制御手段に対する割込みの実行を禁止することを特徴とする請求項
１から３のいずれか１項に記載のデータ処理装置。
【請求項６】
前記制御手段によって実行されるタスクの実行順序を設定する実行順序設定手段を備え
、前記実行順序設定手段は、前記進捗状況認識手段に記録された進捗情報と共にタスクの
優先順位に基づいて次に処理すべきタスクを設定することを特徴とする請求項１から５の
いずれか１項に記載のデータ処理装置。
【請求項７】
前記進捗状況認識手段は、前記進捗情報記録手段によって記録された進捗情報を、前記
進捗情報記録手段に割り当てられたメモリマップ上の対応するアドレスを参照して認識す
ることを特徴とする請求項１から５のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データを汎用的に処理するデータ処理装置に係り、特にハードウェアと
プロセッサ上で動作するソフトウェアとが共同してデータを処理するデータ処理装置に関
する。
【背景技術】
【０００２】
現在、特定の処理を実行するハードウェア装置をプロセッサ等の制御装置によって制御
する構成のデータ処理装置が広く使用されている。このようなデータ処理装置では、１つ
のプロセッサが複数のタスクを優先順位にしたがって実行し、この過程でタスクのうち比
較的負荷が大きい処理をハードウェアに依頼する。
ハードウェアに処理を依頼した場合、このプロセッサは、この処理に係るタスクを中断
して次に実行すべきタスクを実行する。ハードウェアは、依頼された処理の実行が終了す
ると、処理の終了をプロセッサに通知する。このとき、プロセッサは、実行中であった処
理がハードウェアに依頼した処理よりも優先度が低い場合、実行中であった処理を中断す
る。そして、ハードウェアに依頼して処理が終了したタスクを必要に応じて引き続き実行
する。
【０００３】
以上のプロセッサ及びハードウェアの動作において、ハードウェアからプロセッサに対
して行われる処理終了の通知は、一般的に割込みが用いられる。従来のデータ処理装置の
多くは、プロセッサに対する割込みをトリガとしてタスクを切替えている。このような従
来技術としては、例えば、特許文献１が挙げられる。
【特許文献１】特開平７−２７１３４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された発明は、プロセッサがタスクを割込みのみをト
リガとして切替えるため、タスクを切替えるための処理を割込みがなされてから開始する
ことになる。その結果、実行すべきタスクの開始が遅れる可能性が生じる。
【０００５】
このような特許文献１は、タスク切替えの処理効率をより高めることが望まれている。
本発明は、上記した点に鑑みてなされたものであり、プロセッサ上で実行されるソフト
ウェアと特定の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置
のタスク切替えの処理効率をより高めることを目的とする。
【課題を解決するための手段】
【０００６】
以上の課題を解決するため、本発明のデータ処理装置は、複数のタスクを、当該タスク
の優先順位にしたがって順次実行する制御手段と、前記制御手段の指示によって電子デー
タを処理するデータ処理実行手段と、を備えるデータ処理装置であって、前記データ処理
実行手段は、実行される電子データの処理の進捗状況を示す進捗情報を記録する進捗情報
記録手段を備え、前記制御手段は、前記進捗情報記録手段によって記録された進捗情報を
認識する進捗状況認識手段を備え、前記進捗状況認識手段に記録された進捗情報を含む情
報に基づいて前記データ処理実行手段に対するポーリングを開始し、前記進捗状況認識手
段がポーリングによって進捗情報を認識することを特徴とする。
【０００７】
このような発明によれば、制御手段がデータ処理実行手段による進捗状況に応じてポー
リングを開始し、割込みでなく、以降はポーリングによってデータ処理実行手段における
データ処理の進捗を判断することができる。このため、処理の終了以前に次に実行される
タスクを準備してタスク切替えに備えることができる。
したがって、プロセッサ上で実行されるソフトウェアと特定の処理に専用のハードウェ
アとが共同してタスクを実行するデータ処理装置のタスク切替えの処理効率をより高める
ことができる。
【０００８】
また、本発明のデータ処理装置は、前記進捗情報記録手段が、電子データの処理の残り
サイクル数がしきい値以下になったことを示すフラグを記録し、前記制御手段は、前記進
捗状況認識手段によってフラグが記録されたことを認識してポーリングを開始することを
特徴とする。
このような発明によれば、サイクル数を所定の数と比較する等の処理を省いて直ちにポ
ーリングの開始を判断することができる。
【０００９】
また、本発明のデータ処理装置は、前記しきい値を記録すると共に、記録されたしきい
値を変更することが可能なしきい値記録手段を備えることを特徴とする。
このような発明によれば、ポーリング開始のタイミングをユーザが任意に設定すること
ができ、処理されるデータのパラメータや処理内容に適したデータ処理装置を構成するこ
とができる。
【００１０】
また、本発明のデータ処理装置は、前記制御手段が、ポーリングの開始にあたって前記
データ処理実行手段による割込みを禁止することを特徴とする。
このような発明によれば、データ処理実行手段が複数ある場合にも確実に制御手段に対
する割込みを禁止し、割込みによる制御手段のポーリングが妨げられることを防ぐことが
できる。
【００１１】
また、本発明のデータ処理装置は、前記データ処理実行手段が、電子データの処理の残
りサイクル数が所定のサイクル数以下になった場合に前記制御手段に対する割込みの実行
を禁止することを特徴とする。
このような発明によれば、データ処理実行手段側で自身の制御手段に対する割込みを禁
止し、割込みによる制御手段のポーリングが妨げられることを防ぐことができる。
【００１２】
また、本発明のデータ処理装置は、前記制御手段によって実行されるタスクの実行順序
を設定する実行順序設定手段を備え、前記実行順序設定手段は、前記進捗状況認識手段に
記録された進捗情報を含む情報に基づいて次に処理すべきタスクを設定することを特徴と
する。
このような発明によれば、より優先順位が高いタスクを優先して実行順序を設定するこ
とができる。
【００１３】
また、本発明の前記進捗状況認識手段は、前記進捗情報記録手段によって記録された進
捗情報を、前記進捗情報記録手段に割り当てられたメモリマップ上の対応するアドレスを
参照して認識することを特徴とする。
このような発明によれば、レジスタに進捗情報を記録し、記録された進捗情報を、レジ
スタに予め割り当てられたアドレスを参照することによって認識することができる。この
ため、進捗情報参照にかかる手順や時間を軽減し、変化する進捗情報をリアルタイムで参
照しやすくすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、図を参照して本発明に係るデータ処理装置の一実施の形態を説明する。
図１は、本実施形態のデータ処理装置の構成を説明するための図である。本実施形態の
データ処理装置は、複数のタスクを、このタスクの優先順位にしたがって順次実行するＣ
ＰＵ（Central Processing Unit）１０１と、ＣＰＵ１０１の指示によって電子データ（
以降単にデータ）を処理するハードウェア（ＨＷ）アクセラレータ１０３と、を備えるデ
ータ処理装置である。図１中に示したメモリ１０２は、ＣＰＵ１０１とＨＷアクセラレー
タ１０３と共にバス接続されていて、データ処理装置のタスクの実行に使用される命令や
命令の実行に使用されるテーブルやデータ等を保存するための構成である。
【００１５】
なお、本実施形態は、図１に示したように、ＨＷアクセラレータ１０３を一つ備えるも
のに限定されるものではなく、複数のＨＷアクセラレータ１０３を備えるものであっても
よい。このような場合、ＣＰＵ１０１は、１つで複数のＨＷアクセラレータ１０３を制御
するものであってもよいし、複数あってもよい。
ＣＰＵ１０１は、複数のタスクを適正に順次実行するため、タスク管理テーブル１０８
を備えている。タスク管理テーブル１０８の一例を、図２に示す。
【００１６】
図２に示したタスク管理テーブル１０８は、タスクＡ、タスクＢ、タスクＣを含むタス
クを管理するためのタスク管理テーブルである。タスク管理テーブル１０８は、各タスク
のタスク名と、各タスクの進行状況を示すプログラムカウンタ（ＰＣ）、タスク実行時の
プロセッサの状態や条件等を記録するプロセッサステートレジスタ（ＰＳＲ）、スタック
の位置を示すスタックポインタ（ＳＰ）、タスクの実行状態を示すスティト（Ｓｔａｔｅ
）、優先順位（ｐｒｉｏｒｉｔｙ）、実行中のタスクの処理内容（ｒｅｇｉｓｔｅｒ  ｆ
ｉｌｅ）、ＨＷアクセラレータが複数ある場合の使用されているＨＷアクセラレータ、ま
たは唯一のＨＷアクセラレータの使用、不使用（ＨＷ）を管理する。
【００１７】
ＣＰＵ１０１は、このようなタスク管理テーブル１０８を用い、複数のタスクの実行順
序を設定する。実行順序は、実行可能なタスクのタスク名をより早期に実行されるものか
ら一列に列記して表される。また、この列を、以降レディキューとも記すものとする。
このようなＣＰＵ１０１とタスク管理テーブル１０８とは、本実施形態の実行順序設定
手段として機能し、ＨＷステータスと共にタスクの優先順位に基づいて次に処理すべきタ
スクを設定する。
【００１８】
一方、ＨＷアクセラレータ１０３は、タスクの実行にあたって比較的負荷の大きいデー
タの処理をするためのハードウェアである。このため、データ処理に使用される演算部１
０６、ＣＰＵ１０１の指示にしたがって演算部１０６を制御する制御部１０４を備えてい
る。
制御部１０４は、カウンタあるいはステートマシンから成る。本実施形態のカウンタは
、処理のサイクルをカウントする。ステートマシンは、処理のパラメータや設定等によっ
て演算部１０６での処理を制御する。制御部１０４によれば、現在演算部１０６が実行し
ている処理のサイクル数や状態を示すことができる。
【００１９】
また、ＨＷアクセラレータ１０３は、ステータス信号生成部１０５及びステータスレジ
スタ１０７を備えている。ステータス信号生成部１０５は、ＨＷアクセラレータ１０３の
処理の残りサイクル数を示すステータス信号を生成する。ステータス信号は、ＨＷステー
タス（ｐｒｏｇｒｅｓｓ＿ｖａｌ）として残りのサイクル数を含む情報をステータスレジ
スタ１０７に書き込む信号である。図１に示した例では、ＨＷアクセラレータ１０３によ
って実行されている処理の残りが３０サイクルであることを示している。
【００２０】
このような制御部１０４、ステータス信号生成部１０５、ステータスレジスタ１０７は
、実行される電子データの処理の進捗状況を示すＨＷステータス（進捗情報）を記録する
進捗情報記録手段として機能する。
ＣＰＵ１０１は、ステータスレジスタ１０７に記録されたＨＷステータスを、メモリマ
ップ上の対応するアドレスを参照することで認識できる。このため、本実施形態では、Ｃ
ＰＵ１０１、ＨＷアクセラレータ１０３を互いにバスで接続した構成が、進捗状況認識手
段として機能する。
【００２１】
ＣＰＵ１０１は、ＨＷステータスを認識し、認識されたＨＷステータスを含む情報に基
づいてＨＷアクセラレータ１０３に対するポーリング（polling）を開始し、ポーリング
によってＨＷアクセラレータ１０３における処理が終了したことを認識する。なお、本実
施形態でいうＨＷステータスを含む情報とは、ＨＷステータス及び各タスクの優先順位の
情報である。ポーリング開始の具体的な動作については後述する。
【００２２】
ポーリングとは、処理の実行装置が送信、あるいは処理の要求があるか否かを、制御装
置側から実行装置にアクセスして判定する処理をいう。ポーリングをソフトウェアで実行
する場合、プログラム内部のメインルーチンが、個々の手続きを順に呼び出して実行装置
の応答をチェックし、応答があれば何らかの処理を行なうことによって実現される。
また、本実施形態のデータ処理装置は、ＨＷステータスとして、ＨＷアクセラレータ１
０３における処理が終了したことを示すフラグ（ｄｏｎｅ＿ｆｌａｇ）を記録する。フラ
グは、残りの処理のサイクル数が、０またはｐｒｏｇｒｅｓｓ＿ｖａｌより少ない所定の
サイクル数以下になった場合に立てられる。本実施形態では、ＣＰＵ１０１が、フラグと
して「１」が記録されたことを認識し、ＨＷアクセラレータ１０３における処理が終了し
たことを認識する。
【００２３】
図３は、ＣＰＵ１０１によって参照されるメモリマップの一例を示した図であって、対
応するアドレスには処理の残りのサイクル数と、フラグとが書き込まれている。本実施形
態では、メモリマップのうちＨＷステータスが書き込まれるアドレスの範囲を予め設定し
ておく。そして、ＣＰＵ１０１が、タスクが切り替わるたび、メモリマップの設定された
範囲のアドレスに書き込まれたデータを参照することによってフラグを認識する。
【００２４】
以上述べた構成において、ＣＰＵ１０１は、ＨＷアクセラレータ１０３にタスクに含ま
れる一の処理（ＨＷ依頼処理）の実行を指示する。ＨＷアクセラレータ１０３は、指示さ
れたＨＷ依頼処理を実行する。この際、本実施形態では、制御部１０４がＨＷ依頼処理の
内容に基づいて処理の開始から終了までに必要なサイクル数を算出する。ステータス信号
生成部１０５は、設定されたサイクル数をステータス信号によってステータスレジスタ１
０７に書き込む。また、ＨＷアクセラレータ１０３は、書き込まれたサイクル数を演算部
１０６の処理の進捗に応じて更新する。
【００２５】
また、ＣＰＵ１０１は、ステータスレジスタ１０７に記録されたＨＷステータスを認識
する（矢線で示す）。前記したように、ＨＷアクセラレータ１０３の制御部１０４は、ス
テータスレジスタ１０７にＨＷステータスを書き込み、ＣＰＵ１０１がメモリマップの対
応するアドレスを参照することによってＨＷステータスを認識する。このような構成によ
り、ＣＰＵ１０１は、比較的簡易にＨＷステータスを参照し、ＨＷアクセラレータ１０３
によって実行されている処理の状況を随時判定することができる。
【００２６】
ＣＰＵ１０１は、タスクの切替えごとにＨＷステータスを参照する。そして、ステータ
スレジスタ１０７に記録されているＨＷステータスが所定の数以下のサイクル数を示す場
合にポーリング待ちを開始する。ＣＰＵ１０１は、ポーリングすることによって一定の時
間ごとに処理の残りサイクル数を認識する。そして、残りサイクル数が所定の数以下にな
ったとき、制御部１０４が、レディキューの先頭にあるタスクと、ＨＷアクセラレータ１
０３によって実行された処理を含むタスクとの優先順位に基づいて次に実行すべきタスク
を決定する。
【００２７】
次に、以上述べた本実施形態のデータ処理装置の動作を説明する。この説明では、デー
タ処理装置がタスクＡ、タスクＢ、タスクＣの３つのタスクを実行するものとする。タス
クＡ、タスクＢ、タスクＣの優先順位は、タスクＡ＞タスクＢ＞タスクＣである。
図４は、本実施形態のデータ処理装置の動作を説明するための図であって、実線は本実
施形態のデータ処理装置の動作を、破線は比較のため記した従来技術の動作を示している
。図４において、タスクＡ、タスクＢ、タスクＣの文字の下に記した縦方向の矢線は、各
タスクの実行タイミングを示している。また、ＯＳの文字の下に記した縦方向の矢線は、
ＣＰＵ１０１においてＯＳが動作しているタイミングを、ＩＮＴの文字の下に記した縦方
向の矢線は、割込み及び割込みにかかる処理のタイミング示している。また、横方向の矢
線は、各処理の遷移を示すものである。
【００２８】
なお、図４において、実線と破線とが重なる箇所は実線と破線とをわずかにずらして記
すことによって両者を判別しやすくしている。したがって、このような実線と破線とのず
れは実質的な相違を示すものではない。
以下、本実施形態のデータ処理装置の動作と、従来の構成の動作とを対比して説明する
。
【００２９】
（本実施形態のデータ処理装置）
本実施形態のデータ処理装置は、先ず、ＣＰＵ１０１が、最も優先順位の高いタスクＡ
の実行を開始する。タスクＡの実行中、ＣＰＵ１０１は、ＨＷ依頼処理の実行をＨＷアク
セラレータ１０３に指示する（Ｓ４０１）。このため、ＣＰＵ１０１においては、実行さ
れているタスクがＯＳ（Operating System）に切替えられてディスパッチャが起動する。
【００３０】
図５は、上記したタスクＡの実行中にＨＷ依頼処理をするタスクプログラムを示した図
である。ＨＷ依頼処理は、タスクＡの実行中にＣＰＵ１０１がＨＷアクセラレータ１０３
をコールする。そして、ＨＷ依頼処理に必要なパラメータを渡して処理の実行を指示する
ものである。
ＣＰＵ１０１は、図２に示したタスク管理テーブルを参照し、ＨＷアクセラレータ１０
３の使用状況を確認する（Ｓ４０２）。そして、ＨＷアクセラレータ１０３が使用可能な
状態であった場合、ＣＰＵ１０１上で動作するＯＳは、ＨＷアクセラレータ１０３にＨＷ
依頼処理の実行を指示する（Ｓ４０３）。タスクＡは、ＨＷ依頼処理の完了まで実行でき
ない状態になる。このため、ＣＰＵ１０１は、タスクＡをレディキューから外す（Ｓ４０
４）。
【００３１】
タスクＡが実行できなくなったことにより、ＣＰＵ１０１では、次のタスクを実行する
ためにディスパッチャが起動する（Ｓ４０５）。ここで、本実施形態のデータ処理装置は
、ＯＳがステータスレジスタ１０７に書き込まれているＨＷステータスを確認する（Ｓ４
０６）。
本実施形態のＨＷステータスは、ＨＷ依頼処理に必要な残りの処理のサイクル数によっ
て示されている。ＣＰＵ１０１は、ＨＷステータスを確認した結果、サイクル数が所定の
数以下でない場合、レディキューにおける次のタスクＢを実行する（Ｓ４０７）。
【００３２】
ＣＰＵ１０１においてタスクＢの実行が終了すると、ディスパッチャが起動し（Ｓ４０
８）、ＣＰＵ１０１上でＯＳが動作する。ＯＳは、ステータスレジスタ１０７に書き込ま
れている残りの処理のサイクル数を確認する（Ｓ４０９）。確認の結果、残りの処理のサ
イクル数が所定の数以下である場合、ＨＷ依頼処理は所定の時間内に終了する。
このような場合、ＣＰＵ１０１は、ポーリングを開始して一定の時間ごとに残りの処理
のサイクル数を認識する。また、本実施形態では、続いてＣＰＵ１０１が、ポーリングの
開始にあたってＨＷアクセラレータ１０３による割込みをマスクすることによって禁止す
る（Ｓ４１０）。そして、レディキューにおいてタスクＢの次に実行すべきタスクＣの優
先度とタスクＡの優先度とを比較する。タスクＡの優先度は、タスクＣの優先度よりも高
い。このため、ＣＰＵ１０１は、レディキューで設定された実行順序を変更し、タスクＣ
を実行することなくタスクＡをレディキューの先頭に追加する（Ｓ４１１）。
【００３３】
ポーリングの結果、ステータスレジスタ１０７にフラグ「１」が立ったと判断された場
合、ＣＰＵ１０１は、ＨＷ依頼処理が終了したと判断する（Ｓ４１２）。このとき、タス
クＡを実行するためにディスパッチャを起動し（Ｓ４１３）、レディキューにおいて先頭
にあるタスクＡを実行する（Ｓ４１４：図中にタイミングｔ１で示す）。
本実施形態のデータ処理装置では、ステップＳ４１２の判断時、タスクＡがすでにレデ
ィキューに追加されていて、しかもＣＰＵ１０１が他のタスクを実行していない。このた
め、速やかに割込みに伴う処理をしてタスクＡの実行を開始することができる。
【００３４】
また、本実施形態のデータ処理装置は、ポーリングによってＨＷアクセラレータ１０３
におけるＨＷ依頼処理の終了を判断するので、ＨＷアクセラレータ１０３から割込みされ
ることがなく、割込み処理が不要になる。このため、割込み処理に相当する時間分従来技
術よりもタスク切替えにかかる処理を短縮することができる。
また、本実施形態のデータ処理装置は、残りの処理のサイクル数が所定の数以下になっ
てからポーリングを開始するため、ＨＷ依頼処理の終了が近づいてからポーリングを開始
することができる。このため、ＣＰＵ１０１の他の処理へのポーリングの影響を最小限に
することができる。
【００３５】
（従来の構成）
従来のデータ処理装置は、タスクＡの処理の一部の実行をＨＷアクセラレータ１０３に
依頼したことによってタスクＡをレディキューから外した後にディスパッチャを起動する
。そして、ＨＷアクセラレータ１０３の処理状況によらず、レディキューにそってタスク
Ｂ、タスクＣを順次実行する。
【００３６】
ＨＷアクセラレータ１０３は、ＨＷ依頼処理を終了すると、割込みによってＣＰＵ１０
１に処理の終了を通知する。このとき、ＣＰＵ１０１は、タスクＣの実行中であって、タ
スクＣよりも優先度が高いタスクＡに実行を切り替えることを決定する。このため、タス
クＡをレディキューの先頭に追加してディスパッチャを起動する。ディスパッチャにより
、ＣＰＵ１０１は、タスクＣに替えてタスクＡを実行する（図中に実行開始のタイミング
をｔ２
以上述べたように、本実施形態のデータ処理装置は、ＨＷアクセラレータ１０３におけ
る処理の残りサイクルが所定の数以下になったことをトリガにしてポーリングを開始する
点で従来の構成と相違する。このため、ＨＷアクセラレータ１０３におけるＨＷ依頼処理
の終了通知を割込みで待つことなく認識し、タスクＣよりも優先度の高いタスクＡをレデ
ィキューに追加することができる。
【００３７】
このため、本実施形態のデータ処理装置は、割込みがされたタスクＡの実行を、従来の
構成よりも図中に示す差分ｄ（タイミングｔ１とタイミングｔ２との差分）の時間だけ早
く開始することができる。
なお、本実施形態のデータ処理装置は、以上述べた構成に限定されるものではない。す
なわち、以上述べた実施形態では、ＣＰＵ１０１側で割込みをマスクして割込みを禁止し
ているが、本実施形態はこのような構成に限定されるものでなく、ＨＷアクセラレータ１
０３側が自装置によるＣＰＵ１０１への割込みを禁止することもできる。
【００３８】
また、本実施形態のデータ処理装置は、ＨＷアクセラレータ１０３によって実行されて
いる処理の残りサイクル数を進捗情報として書き込んでいる。しかしながら、進捗情報は
、残りサイクル数に限定されるものでなく、例えば、残りサイクル数に基づいてフラグ等
を立てるものであってもよい。
図６は、フラグを進捗情報としてＨＷステータスに使用したデータ処理装置の例を説明
するための図であって、図６中に示した構成のうち、図１に示した構成と同一のものには
同一の符号を付し、説明を一部省くものとする。
【００３９】
図示したデータ処理装置は、処理の残りサイクル数が記録されるステータスレジスタ１
０７に代えて、フラグを立てる際のしきい値となるサイクル数（しきい値サイクル数：ｐ
ｒｅ＿ｄｏｎｅ＿ｃｆｇ）が設定されるパラメータレジスタ６０８、残り処理数がしきい
値サイクル数以下になった場合に立てられるフラグが書き込まれるステータスレジスタ６
０７を備えている。
【００４０】
図６に示したデータ処理装置は、制御部１０４が、現在実行中のＨＷ依頼処理のサイク
ル数をカウントすると共に残りサイクル数を算出する。さらに、制御部１０４は、算出さ
れた残りサイクル数をパラメータレジスタ６０８に書き込まれたしきい値サイクル数と比
較する。そして、残りサイクル数がしきい値サイクル数以下になった場合ステータス信号
生成部１０５に指示してステータスレジスタ６０７に「１」のフラグ（ｐｒｅ＿ｄｏｎｅ
＿ｆｌａｇ）を書き込ませる。
【００４１】
ＣＰＵ１０１は、タスクが終了するとステータスレジスタ６０７を参照し、「１」のフ
ラグが立ったことによってＨＷアクセラレータ１０３におけるＨＷ依頼処理の終了が近い
ことを検出する。そして、ＨＷ依頼処理を含むタスクと、レディキューに設定されたタス
クとの優先順位に応じてタスクの実行順序を変更する。
また、図６に示したデータ処理装置にあっても、ＣＰＵ１０１は、メモリ１０２のメモ
リマップを参照することによってしきい値サイクル数やフラグといったＨＷステータスを
認識する。
【００４２】
図７は、ＣＰＵ１０１によって参照されるメモリマップの一例である。本実施形態では
、メモリマップのうちＨＷステータスが書き込まれるアドレスの範囲を予め設定しておく
。そして、ＣＰＵ１０１が、メモリマップの設定された範囲のアドレスに書き込まれたデ
ータを参照することによって処理の残りサイクル数を認識する。
また、本実施形態のデータ処理装置は、しきい値サイクル数を任意に設定可能に構成す
ることも可能である。このような構成は、例えば、ユーザの要望やデータ処理装置が扱う
データの種別、ＨＷアクセラレータの処理内容に応じてデータ処理装置が含まれる機器の
出荷時に所望の設定値をパラメータレジスタ６０８に書き込むことによって実現できる。
【００４３】
また、予め所定のしきい値を複数設定しておき、タスクのパラメータ等に応じてＣＰＵ
１０１が設定を変更するものであってもよい。
なお、以上の構成では、しきい値サイクルの値を書き替え可能なパラメータレジスタ６
０８がしきい値記録手段となる。
以上説明したように、本実施形態のデータ処理装置は、ＨＷ依頼処理の終了間近になる
とポーリングを開始し、処理の終了以前に次に実行されるタスクを準備してタスク切替に
備えることができる。また、本実施形態は、割込みによって処理終了の通知を受けること
がなく、割込みに伴うＣＰＵ１０１の動作が不要になる。このため、ソフトウェアと特定
の処理に専用のハードウェアとが共同してタスクを実行するデータ処理装置のタスク切替
の処理効率をより高めることができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態のデータ処理装置の構成を説明するための図である。
【図２】図１に示したタスク管理テーブルの一例を示した図である。
【図３】図１に示したＣＰＵによって参照されるメモリマップの一例を示した図である。
【図４】本発明の一実施形態のデータ処理装置の動作を説明するための図である。
【図５】図４に示したタスクＡの実行中にＨＷ依頼処理をするタスクプログラムを示した図である。
【図６】本発明の一実施形態のデータ処理装置の他の構成を説明するための図である。
【図７】図６に示したＣＰＵによって参照されるメモリマップの一例を示した図である。
【符号の説明】
【００４５】
１０１  ＣＰＵ、１０２  メモリ、１０３  ＨＷアクセラレータ、１０４  制御部、１０
５  ステータス信号生成部、１０６  演算部、１０７  ステータスレジスタ、１０８  タ
スク管理テーブル、６０７  ステータスレジスタ、６０８  パラメータレジスタ
【図１】
2007109037.tif 000003
【図２】
2007109037.tif 000004
【図３】
2007109037.tif 000005
【図４】
2007109037.tif 000006
【図５】
2007109037.tif 000007
【図６】
2007109037.tif 000008
【図７】
2007109037.tif 000009