(57)【要約】【課題】タスク処理を高速に行うことを可能とし、データ処理装置全体のスループットを向上させることを可能としたデータ処理装置を提供する。【解決手段】データ処理装置は、タスク実行部１００、タスク実行部１０１、バッファ１０２、バッファ１０３、セレクタ１０４、動的再構成回路１０５、タスク切り替え決定部１０６、タスク切り替え実行部１０７を備える。タスク切り替え決定部１０６は、動的再構成回路１０５のタスク切り替えに要する時間とバッファのデータ個数が一定値以上になるまでの時間とを比較する。動的再構成回路１０５のタスク切り替えに要する時間の方が短い場合は、動的再構成回路１０５のタスク切り替えを適用する。動的再構成回路１０５のタスク切り替えに要する時間の方が長い場合は、タスク切り替えに対してタスク復帰時間の短いタスク停止を適用する。【選択図】図１
2007200106.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実行する複数の実行手段と、
複数の前記実行手段から出力されるデータをそれぞれ保持する複数の保持手段と、
複数の前記保持手段の出力を選択する選択手段と、
前記選択手段により選択された出力を入力とする動的再構成回路と、
前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断手段と、
前記判断手段の判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替手段と、を備えることを特徴とするデータ処理装置。
【請求項２】
動的再構成回路と、
前記動的再構成回路から出力されるデータを入力とする選択手段と、
前記選択手段から出力されるデータを保持する複数の保持手段と、
複数の前記保持手段の出力をそれぞれ入力としタスクを実行する複数の実行手段と、
前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断手段と、
前記判断手段の判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替手段と、を備えることを特徴とするデータ処理装置。
【請求項３】
前記切替手段は、前記判断手段により、前記動的再構成回路のタスク切り替えに要する時間が前記保持手段のデータ数が一定値以上になるまでの時間より短いと判断された場合は、前記動的再構成回路のタスクを切り替え、前記動的再構成回路のタスク切り替えに要する時間が前記保持手段のデータ数が一定値以上になるまでの時間より長いと判断された場合は、タスクを停止することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記切替手段は、前記判断手段により、前記動的再構成回路のタスク切り替えに要する時間が前記保持手段のデータ数が一定値以下になるまでの時間より短いと判断された場合は、前記動的再構成回路のタスクを切り替え、前記動的再構成回路のタスク切り替えに要する時間が前記保持手段のデータ数が一定値以下になるまでの時間より長いと判断された場合は、タスクを停止することを特徴とする請求項２記載のデータ処理装置。
【請求項５】
前記判断手段がタスク切り替えを判断するための情報には、前記実行手段の内部構成の状態を示す状態変数を含むことを特徴とする請求項１又は２記載のデータ処理装置。
【請求項６】
前記動的再構成回路は、内部の構成及び内部の接続を動的に変更可能な回路であることを特徴とする請求項１乃至４の何れかに記載のデータ処理装置。
【請求項７】
前記実行手段、前記保持手段、前記選択手段の少なくとも何れかを前記動的再構成回路で実現することを特徴とする請求項１乃至６の何れかに記載のデータ処理装置。
【請求項８】
タスクを実行する複数の実行手段と、複数の前記実行手段から出力されるデータをそれぞれ保持する複数の保持手段と、複数の前記保持手段の出力を選択する選択手段と、前記選択手段により選択された出力を入力とする動的再構成回路とを備えるデータ処理装置の制御方法であって、
前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断ステップと、
前記判断ステップの判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替ステップと、を備えることを特徴とする制御方法。
【請求項９】
動的再構成回路と、前記動的再構成回路から出力されるデータを入力とする選択手段と、前記選択手段から出力されるデータを保持する複数の保持手段と、複数の前記保持手段の出力をそれぞれ入力としタスクを実行する複数の実行手段とを備えるデータ処理装置の制御方法であって、
前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断ステップと、
前記判断ステップの判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替ステップと、を備えることを特徴とする制御方法。
【請求項１０】
前記請求項８又は９記載のデータ処理装置の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的再構成回路を用いて少なくとも２つ以上のタスクを実行可能なデータ処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、情報処理装置等の処理における実行の最小単位であるタスクとタスクとの間の通信には、両タスクのスループットの違いを緩和するためにバッファを使用する。タスク間通信にバッファを介することで、タスク間のデータにおける時間的な出力／入力速度の差を吸収することができる。これにより、両タスク間のデータ通信を高速に行うことが可能となる。
【０００３】
タスク間通信に伴うデータによってバッファがフル（満杯）になった場合には、バッファに対してそれ以上のデータの書き込みができない。このとき、ハードウエアでは一般にバッファ前段のモジュールの停止、ソフトウエアではタスクの内容を変更するという対応が固定的に取られる。他方、バッファがエンプティ（空）になった場合には、バッファからそれ以上のデータの読み出しができない。そのため、ハードウエアではバッファ後段のモジュールが停止され、ソフトウエアではタスクの内容が変更される。
【０００４】
上記のようにモジュールを停止させることの利点はモジュールの停止から復帰までの待ち時間がタスクの切り替えに比べて短いことであり、欠点は停止中のモジュールが有効に活用できないことである。一方、上記のようにモジュールのタスクの内容を切り替えることの利点は停止中のモジュールを有効に活用できることであり、欠点はモジュールのタスクの停止から復帰までの待ち時間がタスクの停止に比べて長いことである。
【０００５】
上記のタスク間通信等の情報処理に関しては各種の技術が提案されている（例えば、特許文献１、特許文献２参照）。
【特許文献１】特開平０６−００４３１４号公報
【特許文献２】特開２００４−２２００９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術においては次のような問題がある。動的再構成回路（複数の演算器等を備え、回路内部の構成及び回路内部の接続を動的に変更可能な回路）と、他のタスクモジュールとがタスク間通信を行う場合、動的再構成回路はタスク切り替え／タスク停止のどちらも実現できる。そのため、バッファがフルまたはエンプティになったときに、タスク切り替え／タスク停止のいずれを適用させるかを判断しなければならないという問題がある。
【０００７】
更に、動的再構成回路では、タスク切り替えの際に実現する回路の情報をメモリから読み出す必要があるため、メモリのレイテンシ（遅延時間）に応じて一定の切り替え時間を要する。そのため、固定的なタスク切り替え／タスク停止の適用では、特に頻繁なタスク切り替えの際にオーバーヘッド時間（直接には関係ないが間接的に必要な時間）が増大し、処理性能が低下するという問題がある。
【０００８】
本発明の目的は、タスク処理を高速に行うことを可能とし、データ処理装置全体のスループットを向上させることを可能としたデータ処理装置、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上述の目的を達成するために、本発明のデータ処理装置は、タスクを実行する複数の実行手段と、複数の前記実行手段から出力されるデータをそれぞれ保持する複数の保持手段と、複数の前記保持手段の出力を選択する選択手段と、前記選択手段により選択された出力を入力とする動的再構成回路と、前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断手段と、前記判断手段の判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替手段と、を備えることを特徴とする。
【００１０】
上述の目的を達成するために、本発明のデータ処理装置は、動的再構成回路と、前記動的再構成回路から出力されるデータを入力とする選択手段と、前記選択手段から出力されるデータを保持する複数の保持手段と、複数の前記保持手段の出力をそれぞれ入力としタスクを実行する複数の実行手段と、前記実行手段のデータ入出力タイミング、前記保持手段が保持するデータ数、及び前記動的再構成回路のタスク切り替えに要する時間に基づいて、前記動的再構成回路におけるタスク切り替えを判断する判断手段と、前記判断手段の判断結果に基づいて、前記動的再構成回路のタスクを切り替える切替手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、実行手段のデータ入出力タイミング、保持手段のデータ数、動的再構成回路のタスク切り替えに要する時間に基づいて、動的再構成回路におけるタスク切り替えを判断するため、不必要なタスク切り替え回数を低減することが可能となる。これにより、タスク処理を高速に行うことが可能となり、データ処理装置全体のスループットを向上させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
【００１３】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【００１４】
図１において、データ処理装置は、タスク実行部１・１００、タスク実行部２・１０１、バッファ１・１０２、バッファ２・１０３、セレクタ１０４、動的再構成回路１０５、タスク切り替え決定部１０６、タスク切り替え実行部１０７を備えている。データ処理装置は、２つ以上のタスクを動的再構成回路１０５を用いて時分割で処理する機能を有する。
【００１５】
尚、以下の説明では、タスク実行部１・１００、２・１０１、バッファ１・１０２、２・１０３を、符号の前の添え字１、２を省略し、タスク実行部１００、１０１、バッファ１０２、１０３と略称表記する。また、入力データ１、２、タイミング情報１・１２０、２・１２１、データ数１・１３０、２・１３１についても、符号の前の添え字１、２を省略し略称表記する。
【００１６】
タスク実行部１００、１０１は、それぞれ、入力データ１、入力データ２に対して予め決められたタスクを実行する。タスク実行部１００、１０１は、それぞれ、タスクの実行に基づいたデータをバッファ１０２、１０３に出力する。また、タスク実行部１００、１０１は、それぞれ、タイミング情報（データ入出力タイミングを示す情報）１２０、１２１をタスク切り替え決定部１０６に出力する。タスク実行部１００、１０１の詳細については後述する。
【００１７】
バッファ１０２、１０３は、それぞれ、タスク実行部１００、１０１から出力されたデータを入力とするＦＩＦＯ（First In First Out）メモリである。バッファ１０２、１０３は、それぞれ、その時点で保持しているデータ数１３０、１３１をタスク切り替え決定部１０６に出力し、データをセレクタ１０４に出力する。
【００１８】
セレクタ１０４は、バッファ１０２、１０３から出力されたデータをタスク切り替え決定部１０６の選択情報１３２に従って選択し、動的再構成回路１０５に出力する。
【００１９】
動的再構成回路１０５は、回路内部の構成及び回路内部の接続を動的に変更可能な回路であり、セレクタ１０４で選択されたタスクのデータと、切り替え制御情報１１０と、停止制御情報１１２を入力とする。動的再構成回路１０５は、以下の各場合に応じた処理を行う。
【００２０】
即ち、切り替え制御情報１１０が有効である場合は、タスクを回路情報１１１を参照して切り替える。停止制御情報１１２が有効である場合は、タスクを停止させる。以上のいずれでもない場合は、セレクタ１０４から入力されたデータを処理する。動的再構成回路１０５に対する切り替え制御情報１１０と回路情報１１１は、タスク切り替え実行部１０７から入力され、停止制御情報１１２は、タスク切り替え決定部１０６から入力される。
【００２１】
タスク切り替え決定部１０６は、タスク実行部１００、１０１から入力されるタイミング情報１２０、１２１と、バッファ１０２、１０３から入力されるデータ数１３０、１３１を基に、以下の処理を行う。タスク切り替え決定部１０６は、データ数１３０、１３１が０もしくは一定値以下になった場合に、動的再構成回路１０５で実行されているタスクを停止させるか切り替えるかの決定を行う。即ち、タスク切り替え決定部１０６は、後述するように、動的再構成回路１０５のタスク切り替えに要する時間と、バッファ１０２（１０３）のデータ数が一定値以上になるまでの時間とを比較し、比較結果に基づきタスク切り替え／タスク停止を決定する。
【００２２】
タスク切り替え決定部１０６は、タスクを停止させると決定した場合には、停止制御情報１１２を出力して動的再構成回路１０５を停止させる。また、タスク切り替え決定部１０６は、タスクを切り替えると決定した場合には、タスク切り替え実行部１０７にタスク切り替え制御情報１４１を出力することでタスク切り替え処理を実行させ、セレクタ１０４で選択するタスクを切り替える。タスク切り替え決定部１０６の詳細については後述する。
【００２３】
タスク切り替え実行部１０７は、タスク切り替え決定部１０６から入力されたタスク切り替え制御情報１４１に従い、切り替え制御情報１１０と回路情報１１１を動的再構成回路１０５に出力する。タスク切り替え制御情報１４１は、動的再構成回路１０５の回路を切り替えるか否かを示す情報と、どのタスクに切り替えるかを示す情報から構成される。タスク切り替え実行部１０７は、タスク切り替え制御情報１４１を参照してタスクを切り替えると判断した場合には、要求されているタスクに対応した回路情報１１１と切り替え制御情報１１０を動的再構成回路１０５に出力する。
【００２４】
上記制御により、動的再構成回路１０５に対するタスク切り替えが必要な時にのみ実行される。これにより、タスク切り替えのオーバーヘッド時間が軽減することでデータ処理装置全体のスループットを向上させることを可能としている。
【００２５】
図２は、データ処理装置のタスク実行部１００の詳細構成を示す図である。
【００２６】
図２において、タスク実行部１００は、ＡＬＵ（Arithmetic and Logic Unit）１５０、データレジスタ１５１、ステートレジスタ１５２、データ出力タイミング決定部１５３を備えている。尚、タスク実行部１０１の詳細構成もタスク実行部１００と同様であるため、図示及び説明は省略する。
【００２７】
データレジスタ１５１は、入力データを保持し、ＡＬＵ１５０に出力する。ＡＬＵ１５０は、データレジスタ１５１から出力されたデータに対し所定の演算を行う。演算結果はデータレジスタ１５１にフィードバックされる。ステートレジスタ１５２は、タスク実行部１００で実行されるタスクのステートを保持する。
【００２８】
データ出力タイミング決定部１５３は、ステートレジスタ１５２から入力されたステート情報を基に、ＡＬＵ１５０から次にデータを出力するまでのサイクル数をタイミング情報１２０（図１参照）として出力する。これにより、タスク切り替え決定部１０６では、実行中のバッファのデータ数が一定値以下になった場合に、当該バッファに次にデータが入力されるのはいつになるかを把握することが可能となる。その結果、タスク切り替え／タスク停止の決定（或いは予測）が可能となる。
【００２９】
次に、上記構成を有する本実施の形態のデータ処理装置の動作を、図３乃至図６を参照しながら説明する。
【００３０】
先ず、データ処理装置のタスク切り替え決定部１０６の動作を説明する。
【００３１】
図３は、データ処理装置のタスク切り替え決定部１０６のアルゴリズムを示すフローチャートである。
【００３２】
図３において、ここでは、動的再構成回路１０５で例えばタスク実行部１００の後処理を実行している場合を例に挙げて説明する。先ず、タスク実行部１００によるタスクの実行中において（ステップＳ３００）、タスク切り替え決定部１０６は、実行中のタスクに関するバッファ１０２のデータ個数が一定値以下か否かを判断する（ステップＳ３０１）。実行中のタスクに関するバッファ１０２のデータ個数が一定値以下の場合は、ステップＳ３０２に進む。ステップＳ３０２では、タスク切り替え決定部１０６は、バッファ１０２のデータ個数が一定値以上になるまでの時間が、動的再構成回路１０５のタスク切り替えに要する時間より短いか否かを判断する。
【００３３】
即ち、タスク切り替え決定部１０６は、バッファ１０２のデータ個数が一定値以下になるとタスクの実行を続けることができなくなるため、タスクを切り替えるかタスクを停止するかの判断を行う。本実施の形態では、タイミング情報１２０（バッファ１０２のデータ個数が一定値以上になるまでの時間）と、動的再構成回路１０５のタスク切り替えに要する時間とを比較する。動的再構成回路１０５のタスク切り替えに要する時間の方が短いと判断した場合には、タスク切り替え決定部１０６は、セレクタ１０４を介し、動的再構成回路１０５をタスク実行部１０１の後処理を実行する回路に切り替える（ステップＳ３０４）。
【００３４】
一方、動的再構成回路１０５のタスク切り替えに要する時間の方が長いと判断した場合には、タスク切り替え決定部１０６は、動的再構成回路１０５の動作を停止させる（ステップＳ３０３）。その後、タスク切り替え決定部１０６は、実行中のタスクに関するバッファ１０２のデータ個数が一定値以上か否かを判断する（ステップＳ３０５）。即ち、バッファ１０２にデータが入力されるのを待つ。このようにして、タスクの切り替えかタスクの停止を行った後、タスクの処理を再開する。
【００３５】
次に、本実施の形態と従来技術とのデータ処理の比較を図４乃至図６に示す。
【００３６】
一般的に動的再構成回路の切り替えは回路情報を持つメモリからの回路情報読み出しが必要となるため、タスクの切り替えにはメモリのレイテンシに応じて数クロック〜数十クロックの時間を要する。一方、タスクの停止／復帰に要する時間は１クロックと考えてよい。
【００３７】
ここでは、タスク切り替えに要する時間をΔTc、バッファのデータ数が一定値以下になる時刻をT１、データ出力タイミングをΔT１、バッファのデータ数が再び一定値以上になる時刻をT１+ΔT１、初期タスクをA、第２タスクをBとする。以下では、本実施の形態と従来技術についてΔTc<ΔT１の場合とΔTc>ΔT１の場合に分けて比較を行う。
【００３８】
図４は、タスク切り替えに要する時間ΔTc < データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の従来技術と本発明（本実施の形態）の動作例を示す図である。
【００３９】
図４において、従来技術では、固定的にタスク切り替えを適用するため、時刻T１でタスクAのデータ数が一定値以下になった時点からタスクの切り替え（タスクA→タスクB）を開始する。これに対し、本実施の形態では、タスク切り替えに要する時間ΔTcとデータ出力タイミングΔT１を比較してタスク切り替え／タスク停止の適用を決定する。ΔTc<ΔT１の場合は、タスク切り替えを適用するため、従来技術と同様に時刻T１からタスクの切り替えを開始する。ΔTc<ΔT１の場合は、タスク切り替えの方がタスク停止よりも動的再構成回路１０５を効率的に使用できる。このため、結果的にいずれの例においても適切な判断がなされたことになる。
【００４０】
図５は、タスク切り替えに要する時間ΔTc > データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の従来技術の動作例を示す図である。
【００４１】
図５において、ΔTc>ΔT１の場合も、従来技術では、固定的にタスク切り替えを適用するため、時刻T１でタスクAのデータ数が一定値以下になった時点からタスクの切り替え（タスクA→タスクB）を開始する。しかしながら、ΔTc>ΔT１の場合は、タスク切り替えを行うとタスク停止を行った場合に比べてΔTc-ΔT１の時間分無駄に消費することになる。ΔTc>ΔT１のケースはバッファのデータ数が一定値付近で前後する場合に頻繁に起こりうると考えられ、速度性能の低下につながると考えられる。
【００４２】
図６は、タスク切り替えに要する時間ΔTc > データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の本発明（本実施の形態）の動作例を示す図である。
【００４３】
図６において、本実施の形態では、タスク切り替えに要する時間ΔTcとデータ出力タイミングΔT１を参照してタスク切り替え／タスク停止の適用を決定する。ΔTc>ΔT１の場合は、タスク停止を適用するため、ΔTc-ΔT１の時間分を無駄に消費することなく動的再構成回路１０５を効率的に使用することができる。このため、本実施の形態では、固定的にタスク切り替え／タスク停止を適用する従来技術と異なり、タスク切り替えに要する時間ΔTcとデータ出力タイミングΔT１の大小関係に応じ、常に適した動作（タスク切り替え／タスク停止）を適用することができる。これにより、データ処理装置における処理性能（速度性能）の低下を防止することが可能となる。
【００４４】
以上説明したように、本実施の形態によれば、以下の作用及び効果を奏する。バッファ１０２（１０３）がエンプティになり動的再構成回路１０５とのデータ送受信ができなくなった際に、タスク実行部１００（１０１）のタイミング情報、バッファ１０２（１０３）の保持するデータ数、動的再構成回路１０５のタスク切り替えに要する時間を基に、以下の処理を行う。
【００４５】
即ち、動的再構成回路１０５のタスク切り替えに要する時間と、動的再構成回路１０５及びバッファ１０２（１０３）間のデータ送受信が可能になるまでの時間（バッファのデータ個数が一定値以上になるまでの時間）とを比較する。比較の結果、動的再構成回路１０５のタスク切り替えに要する時間の方が短い場合は、動的再構成回路１０５のタスク切り替えを適用する。他方、動的再構成回路１０５のタスク切り替えに要する時間の方が長い場合は、タスク切り替えに対してタスク復帰時間の短いタスク停止を適用する。
【００４６】
これにより、従来技術のようにバッファがフルまたはエンプティになったときにタスク切り替え／タスク停止のいずれを適用するか判断しなければならないという問題を解消することができる。また、従来技術のように固定的なタスク切り替え／タスク停止の適用で頻繁なタスク切り替えの際にオーバーヘッド時間が増大する不具合を解消することができる。この結果、不必要なタスク切り替え回数を低減し、タスク処理を高速に行うことが可能となり、データ処理装置全体のスループットを向上させることが可能となる。
【００４７】
［第２の実施の形態］
図７は、本発明の第２の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【００４８】
図７において、データ処理装置は、タスク実行部１・２００、タスク実行部２・２０１、バッファ１・２０２、バッファ２・２０３、セレクタ２０４、動的再構成回路２０５、タスク切り替え決定部２０６、タスク切り替え実行部２０７を備えている。データ処理装置は、２つ以上のタスクを動的再構成回路２０５を用いて時分割で処理する機能を有する。
【００４９】
尚、以下の説明では、タスク実行部１・２００、２・２０１、バッファ１・２０２、２・２０３を、符号の前の添え字１、２を省略し、タスク実行部２００、２０１、バッファ２０２、２０３と略称表記する。また、出力データ１、２、タイミング情報１・２２０、２・２２１、データ数１・２３０、２・２３１についても、符号の前の添え字１、２を省略し略称表記する。
【００５０】
本実施の形態は、上記第１の実施の形態に対して、動的再構成回路とタスク実行部の接続方向が主に異なる。即ち、上記第１の実施の形態では、動的再構成回路１０５の前段にタスク実行部１００、１０１、バッファ１０２、１０３、セレクタ１０４を接続する構成としている。これに対し、本実施の形態では、動的再構成回路２０５の後段にセレクタ２０４、バッファ２０２、２０３、タスク実行部２００、２０１を接続する構成としている。
【００５１】
上記の構成の相違により、本実施の形態は、上記第１の実施の形態に対して、タスク切り替え／タスク書き換えを決定する際の判断条件が異なる。即ち、上記第１の実施の形態では、バッファがエンプティになってからタスク切り替え／タスク書き換えの決定を行う。これに対し、本実施の形態では、バッファがフルになってからタスク切り替え／タスク書き換えの決定を行う。尚、タスク書き換えとは、動的再構成回路で回路を再構成する処理を指す。
【００５２】
本実施の形態は、タスク切り替え決定部２０６のみが上記第１の実施の形態と異なり、タスク切り替え決定部２０６を除く各部は上記第１の実施の形態と同一のものを使用することが可能である。タスク切り替え決定部２０６以外の各部の機能は上記第１の実施の形態と同様であり、説明は省略する。
【００５３】
次に、上記構成を有する本実施の形態のデータ処理装置の動作を、図８を参照しながら説明する。
【００５４】
図８は、データ処理装置のタスク切り替え決定部２０６のアルゴリズムを示すフローチャートである。
【００５５】
図８において、先ず、例えばタスク実行部２００で初期状態からタスクを実行する（ステップＳ８００）。タスク切り替え決定部２０６は、実行中のタスクに関するバッファ２０２のデータ個数が一定値以上か否かを判断する（ステップＳ８０１）。実行中のタスクに関するバッファ２０２のデータ個数が一定値以上の場合は、ステップＳ８０２に進む。ステップＳ８０２では、タスク切り替え決定部２０６は、バッファ２０２のデータ個数が一定値以下になるまでの時間が、動的再構成回路２０５のタスク切り替え時間より短いか否かを判断する。
【００５６】
即ち、タスク切り替え決定部２０６は、実行中タスクのバッファ２０２のデータ個数が一定値以上で、それ以上バッファ２０２にデータを入力できないと判断した場合には、タスク切り替え／タスク停止の決定を行う。本実施の形態では、バッファ２０２に再びデータが書き込めるようになるまでの時間（バッファ２０２のデータ個数が一定値以下になるまでの時間）と、動的再構成回路２０５の切り替えに要する時間とを比較する。動的再構成回路２０５の切り替えに要する時間の方が短いと判断した場合には、タスク切り替え決定部２０６は、セレクタ２０４を介し、タスクの切り替えを実行する（ステップＳ８０４）。
【００５７】
一方、バッファ２０２に再びデータが書き込めるようになるまでの時間の方が短いと判断した場合には、タスク切り替え決定部２０６は、タスクを停止する（ステップＳ８０３）。その後、タスク切り替え決定部２０６は、実行中のタスクに関するバッファ２０２のデータ個数が一定値以下か否かを判断する（ステップＳ３０５）。即ち、再びバッファ２０２にデータが入力されるのを待つ。以上のようにしてタスク切り替えまたはタスク停止のいずれかを適用した後、初期状態（ステップＳ８００）に戻り、データ処理を続ける。
【００５８】
以上説明したように、本実施の形態によれば、以下の作用及び効果を奏する。バッファ２０２（２０３）がフルになり動的再構成回路２０５とのデータ送受信ができなくなった際に、タスク実行部２００（２０１）のタイミング情報、バッファ２０２（２０３）の保持するデータ数、動的再構成回路２０５のタスク切り替えに要する時間を基に、以下の処理を行う。
【００５９】
即ち、動的再構成回路２０５のタスク切り替えに要する時間と、バッファ２０２（２０３）に再びデータが書き込めるようになるまでの時間（バッファのデータ個数が一定値以下になるまでの時間）とを比較する。比較の結果、動的再構成回路２０５のタスク切り替えに要する時間の方が短い場合は、動的再構成回路２０５のタスク切り替えを適用する。他方、動的再構成回路２０５のタスク切り替えに要する時間の方が長い場合は、タスク切り替えに対してタスク復帰時間の短いタスク停止を適用する。
【００６０】
これにより、従来技術のようにバッファがフルまたはエンプティになったときにタスク切り替え／タスク停止のいずれを適用するか判断しなければならないという問題を解消することができる。また、従来技術のように固定的なタスク切り替え／タスク停止の適用で頻繁なタスク切り替えの際にオーバーヘッド時間が増大する不具合を解消することができる。この結果、不必要なタスク切り替え回数を低減し、タスク処理を高速に行うことが可能となり、データ処理装置全体のスループットを向上させることが可能となる。
【００６１】
［他の実施の形態］
上記第１及び第２の実施の形態では、タスク実行部、バッファ、セレクタ、動的再構成回路を別々の構成とした場合を例に挙げたが、これに限定されるものではない。本発明は、タスク実行部、バッファ、及びセレクタの何れか１つ或いは何れか２つ或いは全部を１つの動的再構成回路で実現する構成にも適用することができる。
【００６２】
上記第１及び第２の実施の形態では、タスク切り替え決定部が、タスク実行部のタイミング情報、バッファが保持するデータ数、動的再構成回路のタスク切り替えに要する時間に基づき、動的再構成回路のタスク切り替えを判断したが、これに限定されるものではない。本発明は、タスク切り替え決定部が、タスク実行部のタイミング情報及び状態変数、バッファが保持するデータ数、動的再構成回路のタスク切り替えに要する時間に基づき、動的再構成回路のタスク切り替えを判断する制御にも適用することができる。状態変数は、タスク実行部が有するレジスタの状態を示す変数である。
【００６３】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウエアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【００６４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００６６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【００６７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【図２】図１のデータ処理装置のタスク実行部の詳細構成を示す図である。
【図３】図１のデータ処理装置のタスク切り替え決定部のアルゴリズムを示すフローチャートである。
【図４】タスク切り替えに要する時間ΔTc < データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の従来技術と本発明（第１の実施の形態）の動作例を示す図である。
【図５】タスク切り替えに要する時間ΔTc > データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の従来技術の動作例を示す図である。
【図６】タスク切り替えに要する時間ΔTc > データ出力タイミングΔT１の場合にバッファのデータ数が一定値以下となった場合の本発明（第１の実施の形態）の動作例を示す図である。
【図７】本発明の第２の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【図８】図７のデータ処理装置のタスク切り替え決定部のアルゴリズムを示すフローチャートである。
【符号の説明】
【００６９】
１００、１０１、２００、２０１  タスク実行部（実行手段）
１０２、１０３、２０２、２０３  バッファ（保持手段）
１０４、２０４  セレクタ（選択手段）
１０５、２０５  動的再構成回路
１０６、２０６  タスク切り替え決定部（判断手段）
１０７、２０５  タスク切り替え実行部（切替手段）
１１０、２１０  切り替え制御情報
１１１、２１１  回路情報
１１２、２１２  停止制御情報
１２０、１２１、２２０、２２１  タイミング情報
１３０、１３１、２３０、２３１  データ数
１３２、２３２  選択情報
１４１、２４１  タスク切り替え制御情報
【図１】
2007200106.tif 000003
【図２】
2007200106.tif 000004
【図３】
2007200106.tif 000005
【図４】
2007200106.tif 000006
【図５】
2007200106.tif 000007
【図６】
2007200106.tif 000008
【図７】
2007200106.tif 000009
【図８】
2007200106.tif 000010