(57)【要約】【課題】入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能なデータ処理装置を提供する。【解決手段】メモリ５０ａと中央演算装置４０と論理エレメント６０と第１データベース８０と管理部７０とを具備するデータ処理装置を用いる。メモリ５０ａはソフトウェアモジュール５１を格納する。中央演算装置４０はソフトウェアモジュール５１を実行可能である。論理エレメント６０は動的再構成によりハードウェアモジュール６１を構成可能である。第１データベース８０はハードウェアモジュール６１を論理エレメント６０に設定するときの構成情報を格納する。管理部７０は、所定の条件に基づいて、論理エレメント６０に設定する第１ソフトウェアモジュール５１を決定し、第１データベース８０を参照して、第１ソフトウェアモジュール５１を論理エレメント（６０）に設定する。【選択図】図１
2007183726.tif 000002
【特許請求の範囲】
【請求項１】
入力データを処理する複数のソフトウェアモジュールを格納するメモリと、
前記複数のソフトウェアモジュールを実行可能な中央演算装置と、
動的再構成により、前記複数のソフトウェアモジュールと同等の処理を行う複数のハードウェアモジュールを構成可能な論理エレメントと、
前記複数のハードウェアモジュールが前記論理エレメントに設定されるときの構成を示す構成情報を格納する第１データベースと、
前記入力データの処理に関する所定の条件に基づいて、前記複数のソフトウェアモジュールのうちハードウェアモジュールとして前記論理エレメントに設定する第１ソフトウェアモジュールを決定し、前記第１データベースを参照して、前記第１ソフトウェアモジュールに対応する第１ハードウェアモジュールを前記論理エレメントに設定する管理部と
を具備する
データ処理装置。
【請求項２】
請求項1に記載のデータ処理装置において、
前記第１ハードウェアモジュールは少なくとも一つあり、
前記管理部は、
前記複数のソフトウェアモジュールの各々の第１使用頻度に基づいて、前記第１ソフトウェアモジュールを決定し、
前記論理エレメントに設定されている複数のハードウェアモジュールの各々の第２使用頻度に基づいて、前記複数のハードウェアモジュールのうち前記論理エレメントから解放する第２ハードウェアモジュールを決定し、
前記第２ハードウェアモジュールを前記論理エレメントから解放し、前記第１ハードウェアモジュールを前記論理エレメントに設定する
データ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、
前記管理部は、
前記複数のソフトウェアモジュールのうち、前記第１使用頻度の相対的に高いものを前記第１ソフトウェアモジュールとし、
前記複数のハードウェアモジュールのうち、前記第２使用頻度の相対的に低いものを前記第２ハードウェアモジュールとする
データ処理装置。
【請求項４】
請求項２又は３に記載のデータ処理装置において、
前記第２使用頻度は、前記入力データ到着時に使用された前記複数のハードウェアモジュールの各々の使用回数及び使用時間に基づいて判定される
データ処理装置。
【請求項５】
請求項２又は３に記載のデータ処理装置において、
前記第２使用頻度は、最後にデータ処理が行なわれてからの時間であるＬＲＵ時間（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）に基づいて判定される
データ処理装置。
【請求項６】
請求項２又は３に記載のデータ処理装置において、
前記第２使用頻度は、ＦＩＦＯ規律に基づいて判定される
データ処理装置。
【請求項７】
請求項２又は３に記載のデータ処理装置において、
データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けた第２データベースと、
前記入力データの種別に基づいて、前記第２データベースを参照して、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送し、対応しない場合、前記中央演算装置へ転送するデータ入力部と
を更に具備する
データ処理装置。
【請求項８】
動的再構成可能な論理エレメントにハードウェアモジュールを設定または解放したとき、当該ハードウェアモジュールの設定状況を把握する管理部と、
データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付け、前記設定状況に基づいて更新されるデータベースと、
入力データの種別に基づいて、前記データベースを参照して、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送するデータ入力部と
を具備する
データ処理装置。
【請求項９】
請求項８に記載のデータ処理装置において、
前記データ入力部は、前記入力データの種別に基づいて、前記データベースを参照して、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記ソフトウェアモジュールを実行するように前記入力データを中央演算装置へ転送する
データ処理装置。
【請求項１０】
請求項８又は９に記載のデータ処理装置において、
前記管理部は、
前記論理エレメントに設定されたハードウェアモジュールの使用頻度に基づいて、前記設定されたハードウェアモジュールの解放を決定し、
前記ソフトウェアモジュールの使用頻度に基づいて、前記論理エレメントに前記ソフトウェアモジュールに対応するハードウェアモジュールを設定する
データ処理装置。
【請求項１１】
（ａ）入力データの処理に関する所定の条件に基づいて、メモリに格納された複数のソフトウェアモジュールのうち、動的再構成可能な論理エレメントにハードウェアモジュールとして設定する第１ソフトウェアモジュールを決定するステップと、
（ｂ）ハードウェアモジュールが前記論理エレメントに設定されるときの構成を示す構成情報を格納する第１データベースを参照して、前記第１ソフトウェアモジュールを第１ハードウェアモジュールとして前記論理エレメントに設定するステップと
を具備する
データ処理方法。
【請求項１２】
請求項１１に記載のデータ処理方法において、
前記（ａ）ステップは、
（ａ１）前記複数のソフトウェアモジュールの各々の第１使用頻度に基づいて、前記第１ソフトウェアモジュールを決定するステップと、
（ａ２）前記論理エレメントの既設の複数のハードウェアモジュールの各々の第２使用頻度に基づいて、前記既設の複数のハードウェアモジュールのうち前記論理エレメントから解放する第２ハードウェアモジュールを決定するステップと
を備え、
前記（ｂ）ステップは、
（ｂ１）前記第２ハードウェアモジュールを前記論理エレメントから解放し、前記第１ハードウェアモジュールを前記論理エレメントに設定するステップを備える
データ処理方法。
【請求項１３】
請求項１２に記載のデータ処理方法において、
前記（ａ１）ステップは、
（ａ１１）前記複数のソフトウェアモジュールのうち、前記第１使用頻度の相対的に高いものを前記前記第１ソフトウェアモジュールとするステップを含み、
前記（ａ２）ステップは、
（ａ２１）前記既設の複数のハードウェアモジュールのうち、前記第２使用頻度の相対的に低いものを前記第２ハードウェアモジュールとするステップを含む
データ処理方法。
【請求項１４】
請求項１２又は１３に記載のデータ処理方法において、
前記第２使用頻度は、前記入力データ到着時に使用された前記既設の複数のハードウェアモジュールの各々の使用回数及び使用時間に基づいて判定される
データ処理方法。
【請求項１５】
請求項１２又は１３に記載のデータ処理方法において、
前記第２使用頻度は、最後にデータ処理が行なわれてからの時間であるＬＲＵ時間（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）に基づいて判定される
データ処理方法。
【請求項１６】
請求項２又は３に記載のデータ処理方法において、
前記第２使用頻度は、ＦＩＦＯ規律に基づいて判定される
データ処理方法。
【請求項１７】
請求項１２又は１３に記載のデータ処理方法において、
（ｃ）データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けた第２データベースを参照して、前記入力データの種別に基づいて、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送するステップを更に具備する
データ処理方法。
【請求項１８】
（ａ）動的再構成可能な論理エレメントにハードウェアモジュールを設定または解放したとき、当該ハードウェアモジュールの設定状況を把握するステップと、
（ｂ）データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けて前記設定状況に基づいて更新されるデータベースを参照して、入力データの種別に基づいて、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送するステップと
を具備する
データ処理方法。
【請求項１９】
請求項１８に記載のデータ処理方法において、
前記（ｂ）ステップは、
（ｂ１）前記入力データの種別に基づいて、前記データベースを参照して、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記ソフトウェアモジュールを実行するように前記入力データを中央演算装置へ転送するステップを備える
データ処理方法。
【請求項２０】
請求項１８又は１９に記載のデータ処理方法において、
前記（ａ）ステップは、
（ａ１）前記論理エレメントに設定されたハードウェアモジュールの使用頻度に基づいて、前記設定されたハードウェアモジュールの解放を決定するステップと、
（ａ２）前記ソフトウェアモジュールの使用頻度に基づいて、前記論理エレメントに前記ソフトウェアモジュールに対応するハードウェアモジュールを設定するステップと
を備える
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関し、特に動的に論理回路が再構成可能（リコンフィグラブル）であるデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
近年、ハードウェアによって様々なデータ処理を行う回路に関して、その回路構成を動的に変更したり、演算機の接続を動的に変更することが可能な「動的に再構成可能な論理デバイス（ダイナミック  リコンフィグラブル  ハードウェア）」が実現してきている。再構成可能な論理デバイスの例としては、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＰＣＡ（Ｐｌａｓｔｉｃ  Ｃｅｌｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、リコンフィグラブル・プロセッサ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：ＲＰ）などがある。このような再構成可能な論理デバイスは、処理高速性の特徴を有するハードウェアにソフトウェアの柔軟性を導入できるデバイスとして有望視されており、本デバイスを使用した装置が提案されている。
【０００３】
特開２００４−３４３５５９号公報に、従来の再構成可能な集積回路ユニットを有するデータ処理装置の一例が開示されている。このデータ処理装置は、構成の少なくとも一部を変えて複数のデータ処理を実行可能な集積回路ユニットを有する。データ処理装置は、更に、この集積回路ユニットに適応可能な複数の構成データを記憶したデータベースと、当該データ処理装置において実行する処理を選択可能な制御ユニットとを有する。この制御ユニットは、再構成機能と、試行機能とを備えている。再構成機能は、前記データベースの構成データに基づき、前記集積回路ユニットを当該データ処理装置において実行中の処理に対応した構成にする。試行機能は、前記実行中の処理と置換可能な他の処理を当該データ処理装置において実行したときの評価が少なくとも可能なように、前記データベースの構成データに基づき前記集積回路ユニットの構成の少なくとも一部を一時的に変更して前記他の処理の少なくとも一部を試行し、評価の高い前記他の処理を当該データ処理装置における前記実行中の処理とする。本従来例は、再構成可能なプロセッサ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：ＲＰ）を使用したソフトウェア無線端末の例である。本実施例では、再構成可能なプロセッサを使用して、環境（本実施例では通信品質）の変化に適応して回路構成を変更する方式が開示されている。
【０００４】
また、特表２００２−５３０７８０号公報に、従来の再構成可能なプログラマブルロジックデバイスコンピュータシステムの一例が開示されている。この再構成可能なコンピュータシステムは、中央プロセッシングユニットとプログラマブルロジックとからなる。中央プロセッシングユニットは、少なくとも１つのプログラマブルロジックデバイス上で実施される。プログラマブルロジックは、この中央プロセッシングユニットに結合され、所与のアプリケーションを処理するためにコンピュータシステムの能力を最適化するよう再構成可能である。本従来例は、プログラマブルロジックデバイス（ＰＬＤ）による再構成可能なコンピュータの一例であり、システム設計時に本コンピュータで実施するアプリケーションを、ハードウェア資源の制約の中でハードウェア処理部分とソフトウェア処理部分に機能分割を行い、システムに起動時にハードウェア資源割り当て、ソフトウェア処理割り当てをそれぞれ実施する。
【０００５】
国際公開ＷＯ０１／０９０８８７号公報に、従来の動的に再構築可能なハードウエアを利用して高速化処理を可能にするプログラム処理方法及びその処理方法を実行するプログラムが開示されている。このプログラム処理方法は、コンピュータによって実行されるソースプログラムの処理方法である。このプログラム処理方法は、前記ソースプログラムを解析し、当該ソースプログラムを構成する所定のプログラムモジュール単位で前記コンピュータ資源の使用コスト値を求め、前記使用コスト値が高いプログラムモジュールを選択する評価工程と；動的に再構築可能なハードウエアを、前記選択されたプログラムモジュールの処理を行う構成に構築するハードウエアモジュールオブジェクトを生成すると共に、当該選択されたプログラムモジュールを呼び出す擬似関数を追加して前記ソースプログラムを変更する編集工程と；前記ハードウエアモジュールオブジェクトに従って構築されたハードウエアと前記コンピュータによって、前記変更されたソースプログラムを実行する実行工程とを有する。本従来例では、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上で動作させるソフトウェアの編集時点で、コンピュータ資源の使用コストが高いプログラムモジュールを動的に再構成可能なハードウェアを使用するハードウェアモジュールオブジェクトを呼び出すように構成している。
【０００６】
近年、データ処理装置において、その入出力回線速度の上昇に伴い、装置の入出力トラヒック量が増大している。そのため、データ処理能力を向上させるために入出力データ処理をハードウェアによって処理する部位が増大している。一方で、ファイヤウォール、侵入検知・防止装置、コンピュータウイルス検知装置、アプリケーションレイヤ中継装置等、データ処理の内容としてより高次のネットワークレイヤを扱う装置の必要性が高まっている。これらのデータ処理装置においては、多種多様なプロトコル、アプリケーションに対応するために柔軟性が要求されている。そのため、本部分についてはソフトウェア処理にて対応する場合が多い。しかし、ソフトウェア処理の処理性能はプロセッサの処理性能に強く依存している。そのため、処理性能の面で格段の改善を実現するには、ソフトウェアの柔軟性を犠牲にして処理をハードウェア化して切り出す「ハードウェアオフロード」を行う必要があった。
【０００７】
オフロードの観点からすると、装置内の処理ブロックには、ＣＰＵ上で実行するソフトウェアモジュールと、ハードウェア回路で処理するハードウェアモジュールが存在する。通常異なる処理をそれぞれソフトウェアモジュールとハードウェアモジュールに分担させることが多い。一方で、同一の処理をソフトウェアモジュールとハードウェアモジュールのそれぞれに割り当てる場合もありうる。この場合、同じ入力データとパラメータを与えた際に同じ結果が出力されるように、ソフトウェアモジュール、ハードウェアモジュールのアプリケーションプログラミングインタフェース（ＡＰＩ）を定義することが可能である。
【０００８】
通常ハードウェアモジュールは固定的なハードウェア回路で構成されるため、その機能を装置上に配備するか否かといった配置の柔軟性や、機能変更を行うための柔軟性を有していない。しかし装置内に再構成可能な論理デバイスを使用すると、ハードウェアモジュールに対して処理高速性に加えてソフトウェアの柔軟性を導入することが可能となる。以下特に断りがない場合は、ハードウェアモジュールは再構成可能な論理デバイス上に展開されたハードウェアモジュールとして説明する。
【０００９】
単位時間当たりのデータ処理量やデータ処理に必要な時間など処理性能の観点では、ハードウェアモジュールの方がソフトウェアモジュールと比較して有利である。一方、ソフトウェア処理実行のために必要な資源はＣＰＵと処理用メモリであり、ハードウェア処理実行のために必要な資源は論理エレメント（再構成可能でも固定的でも可）である。したがって、資源コストの観点では、ハードウェアモジュールはソフトウェアモジュールと比較して高額である。再構成可能な論理エレメントを使用したハードウェアモジュールは、固定的論理エレメントを使用したハードウェアモジュールに比べ概して高額である。したがって、使用頻度の高いモジュール、処理性能が著しく優れるモジュールをハードウェアモジュールとし、使用頻度の低いモジュール、ハードウェアとソフトウェア間で性能差があまりないモジュールについてはソフトウェアモジュールとすることで、装置全体のコストパフォーマンスを改善させることが可能となる。
【００１０】
ところが、モジュールのハードウェア化、ソフトウェア化の選択は、時間帯、装置設置箇所等によって変化する場合がある。時間帯によって変化する場合とは、到着するデータ種類の傾向が時間によって変化する場合である。このような場合、動的な再構成による環境適応型のシステムが性能発揮の面で特に有効である。従来では時間変化、装置設置箇所の違い等に対応するためには機能モジュールをソフトウェアモジュールにしておくしかなかったが、再構成可能な論理デバイスを利用することで、ハードウェアモジュールにおいても時間変化や、装置設置箇所の違いに対応することが可能となる。その際に同じハードウェアのまま機能変更を実施できる点で、処理性能を高水準で維持した状態で機能変更が実現できる。
【００１１】
このように、データ処理装置に再構成可能な論理デバイスを使用すると、前記の処理性能の向上と処理の柔軟性の問題を解決することができる。しかし、既存の再構成可能な論理デバイスを使用したデータ処理装置には、種々の処理に関して同時にソフトウェアモジュールとハードウェアモジュールにてその処理を実現して、ソフトウェアモジュールとハードウェアモジュール間で処理を切り替える方法が開示されていなかった。
【００１２】
例えば、特開２００４−３４３５５９号公報で開示されている従来技術では、再構成可能なプロセッサに処理規模が入る処理回路が前提となっている。すなわち、処理をソフトウェアで実施することが想定されておらず、ソフトウェアモジュールとハードウェアモジュールの動的切り替えに関する技術が開示されていない。また、特表２００２−５３０７８０号公報で開示されている従来技術では、再構成がなされるのがシステム起動時のみであり、システム動作中にハードウェアとソフトウェアの処理割り当てを変更する技術は開示されていない。さらに、特許文献３で開示されている従来技術では、ソフトウェア編集時点でハードウェア処理されるモジュールが固定化されおり、システム動作中にハードウェアとソフトウェアの処理割り当てを変更する技術は開示されていない。
【００１３】
関連する技術として特開２００４−５１１０号公報に情報機器、ランチャプログラムが開示されている。この情報機器は、ランチャ機能が搭載され、プリケーション起動判断手段と、登録アプリケーション検索手段と、アプリケーション登録手段とを具備する。アプリケーション起動判断手段は、ランチャ機能以外からアプリケーションが起動されたことを判断する。登録アプリケーション検索手段は、前記アプリケーション起動判断手段によって起動されたことを判断されたアプリケーションが、ランチャ機能に登録されているか判別する。アプリケーション登録手段は、前記登録アプリケーション検索手段によってランチャ機能に登録されていないと判別された場合に、当該アプリケーションをランチャ機能に登録する。
【００１４】
特開２００４−３６２４４６号公報に計算機及び計算方法が開示されている。この計算機は、ハードウェアモジュールと、記憶部と、実行部とを備えている。ハードウェアモジュールは、所定の処理を実行する。記憶部は、上記ハードウェアモジュールが実行する所定の処理と同一の処理を行うソフトウェアモジュールを記憶する。実行部は、上記ハードウェアモジュールによる実行と上記記憶部により記憶されたソフトウェアモジュールによる実行とのいずれかを選択し、上記ハードウェアモジュールによる実行を選択した場合に、上記ハードウェアモジュールを実行させ、上記ソフトウェアモジュールによる実行を選択した場合に、上記ソフトウェアモジュールを実行する。
【００１５】
【特許文献１】特開２００４−３４３５５９号公報
【特許文献２】特表２００２−５３０７８０号公報
【特許文献３】国際公開ＷＯ０１／０９０８８７号公報
【特許文献４】特開２００４−５１１０号公報
【特許文献５】特開２００４−３６２４４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の目的は、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能なデータ処理装置及びデータ処理方法を提供することにある。
【００１７】
また、本発明の他の目的は、動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能なデータ処理装置及びデータ処理方法を提供することにある。
【課題を解決するための手段】
【００１８】
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明のデータ処理装置は、メモリ（５０ａ）と、中央演算装置（４０）と、論理エレメント（６０）と、第１データベース（８０）と、管理部（７０）とを具備する。メモリ（５０ａ）は、入力データを処理する複数のソフトウェアモジュール（５１）を格納する。中央演算装置（４０）は、複数のソフトウェアモジュール（５１）を実行可能である。論理エレメント（６０）は、動的再構成により、複数のソフトウェアモジュール（５１）と同等の処理を行う複数のハードウェアモジュール（６１）を構成可能である。第１データベース（８０）は、複数のハードウェアモジュール（６１）が論理エレメント（６０）に設定されるときの構成を示す構成情報を格納する。管理部（７０）は、入力データの処理に関する所定の条件に基づいて、複数のソフトウェアモジュール（５１）のうちハードウェアモジュール（６１）として論理エレメント（６０）に設定する第１ソフトウェアモジュール（５１）を決定し、第１データベース（８０）を参照して、第１ソフトウェアモジュール（５１）に対応する第１ハードウェアモジュール（６１）を論理エレメント（６０）に設定する。
【００２０】
上記のデータ処理装置において、第１ハードウェアモジュール（６１）は少なくとも一つある。管理部（７０）は、複数のソフトウェアモジュール（５１）の各々の使用頻度に基づいて、第１ソフトウェアモジュール（５１）を決定する。本使用頻度を第１使用頻度と呼ぶこととする。管理部（７０）は、論理エレメント（６０）に設定されている複数のハードウェアモジュール（６１）の各々の使用頻度に基づいて、複数のハードウェアモジュール（６１）のうち論理エレメント（６０）から解放する第２ハードウェアモジュール（６１）を決定する。本使用頻度を第２使用頻度と呼ぶこととする。第２ハードウェアモジュール（６１）を論理エレメント（６０）から解放し、第１ハードウェアモジュール（６１）を論理エレメント（６０）に設定する。
【００２１】
上記のデータ処理装置において、管理部（７０）は、複数のソフトウェアモジュール（５１）のうち、第１使用頻度の相対的に高いものを第１ソフトウェアモジュール（５１）とする。複数のハードウェアモジュール（６１）のうち、第２使用頻度の相対的に低いものを第２ハードウェアモジュール（６１）とする。
【００２２】
上記のデータ処理装置において、第２使用頻度は、入力データ到着時に使用された複数のハードウェアモジュール（６１）の各々の使用回数及び使用時間に基づいて判定される。
【００２３】
上記のデータ処理装置において、第２使用頻度は、最後にデータ処理が行なわれてからの時間であるＬＲＵ時間（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）に基づいて判定される。
【００２４】
上記のデータ処理装置において、第２使用頻度は、ＦＩＦＯ規律に基づいて判定される。
【００２５】
上記のデータ処理装置において、第２データベース（２０）と、データ入力部（１３）とを更に具備する。第２データベース（２０）は、データの種別とソフトウェアモジュール（５１）及び論理エレメント（６０）に設定されたハードウェアモジュール（６１）のいずれか一方とを関連付けている。データ入力部（１３）は、入力データの種別に基づいて、第２データベース（２０）を参照して、論理エレメント（６０）に設定されたハードウェアモジュール（６１）が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール（６１）へ転送し、対応しない場合、中央演算装置（４０）へ転送する。
【００２６】
本発明のデータ処理装置は、データベース（２０）と、データ入力部（１３）とを具備する。管理部（７０）は、動的再構成可能な論理エレメント（６０）にハードウェアモジュール（６１）を設定または解放したとき、当該ハードウェアモジュール（６１）の設定状況を把握する。データベース（２０）は、データの種別とソフトウェアモジュール（５１）及び論理エレメント（６０）に設定されたハードウェアモジュール（６１）のいずれか一方とを関連付け、設定状況に基づいて更新される。データ入力部（１３）は、入力データの種別に基づいて、データベース（２０）を参照して、論理エレメント（６０）に設定されたハードウェアモジュール（６１）が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール（６１）へ転送する。
【００２７】
上記のデータ処理装置において、データ入力部（１３）は、入力データの種別に基づいて、データベース（２０）を参照して、ソフトウェアモジュール（５１）が入力データの種別に対応する場合、ソフトウェアモジュール（５１）を実行するように入力データを中央演算装置（４０）へ転送する。
【００２８】
上記のデータ処理装置において、管理部（７０）は、論理エレメント（６０）に設定されたハードウェアモジュール（６１）の使用頻度に基づいて、設定されたハードウェアモジュール（６１）の解放を決定する。ソフトウェアモジュール（５１）の使用頻度に基づいて、論理エレメント（６０）にソフトウェアモジュール（５１）に対応するハードウェアモジュール（６１）を設定する。
【００２９】
本発明のデータ処理方法は、（ａ）入力データの処理に関する所定の条件に基づいて、メモリ（５０ａ）に格納された複数のソフトウェアモジュール（５１）のうち、動的再構成可能な論理エレメント（６０）にハードウェアモジュール（６１）として設定する第１ソフトウェアモジュール（５１）を決定するステップと、（ｂ）ハードウェアモジュール（６１）が論理エレメント（６０）に設定されるときの構成を示す構成情報を格納する第１データベース（８０）を参照して、第１ソフトウェアモジュール（５１）を第１ハードウェアモジュール（６１）として論理エレメント（６０）に設定するステップとを具備する。
【００３０】
上記のデータ処理方法において、（ａ）ステップは、（ａ１）複数のソフトウェアモジュール（５１）の各々の第１使用頻度に基づいて、第１ソフトウェアモジュール（５１）を決定するステップと、（ａ２）論理エレメント（６０）の既設の複数のハードウェアモジュール（６１）の各々の第２使用頻度に基づいて、既設の複数のハードウェアモジュール（６１）のうち論理エレメント（６０）から解放する第２ハードウェアモジュール（６１）を決定するステップとを備える。（ｂ）ステップは、（ｂ１）第２ハードウェアモジュール（６１）を論理エレメント（６０）から解放し、第１ハードウェアモジュール（６１）を論理エレメント（６０）に設定するステップを備える。
【００３１】
上記のデータ処理方法において、（ａ１）ステップは、（ａ１１）複数のソフトウェアモジュール（５１）のうち、第１使用頻度の相対的に高いものを第１ソフトウェアモジュール（５１）とするステップを含む。（ａ２）ステップは、（ａ２１）既設の複数のハードウェアモジュール（６１）のうち、第２使用頻度の相対的に低いものを第２ハードウェアモジュール（６１）とするステップを含む。
【００３２】
上記のデータ処理方法において、第２使用頻度は、入力データ到着時に使用された既設の複数のハードウェアモジュール（６１）の各々の使用回数及び使用時間に基づいて判定される。
【００３３】
上記のデータ処理方法において、第２使用頻度は、最後にデータ処理が行なわれてからの時間であるＬＲＵ時間（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）に基づいて判定される。
【００３４】
上記のデータ処理方法において、第２使用頻度は、ＦＩＦＯ規律に基づいて判定される。
【００３５】
上記のデータ処理方法において、（ｃ）データの種別とソフトウェアモジュール（５１）及び論理エレメント（６０）に設定されたハードウェアモジュール（６１）のいずれか一方とを関連付けた第２データベース（２０）を参照して、入力データの種別に基づいて、論理エレメント（６０）に設定されたハードウェアモジュール（６１）が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール（６１）へ転送するステップを更に具備する。
【００３６】
本発明のデータ処理方法は、（ａ）動的再構成可能な論理エレメント（６０）にハードウェアモジュール（６１）を設定または解放したとき、当該ハードウェアモジュール（６１）の設定状況を把握するステップと、（ｂ）データの種別とソフトウェアモジュール（５１）及び論理エレメント（６０）に設定されたハードウェアモジュール（６１）のいずれか一方とを関連付けて設定状況に基づいて更新されるデータベース（２０）を参照して、入力データの種別に基づいて、論理エレメント（６０）に設定されたハードウェアモジュール（６１）が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール（６１）へ転送するステップとを具備する。
【００３７】
上記のデータ処理方法において、（ｂ）ステップは、（ｂ１）入力データの種別に基づいて、データベース（２０）を参照して、ソフトウェアモジュール（５１）が入力データの種別に対応する場合、ソフトウェアモジュール（５１）を実行するように入力データを中央演算装置（４０）へ転送するステップを備える。
【００３８】
上記のデータ処理方法において、（ａ）ステップは、（ａ１）論理エレメント（６０）に設定されたハードウェアモジュール（６１）の使用頻度に基づいて、設定されたハードウェアモジュール（６１）の解放を決定するステップと、（ａ２）ソフトウェアモジュール（５１）の使用頻度に基づいて、論理エレメント（６０）にソフトウェアモジュール（５１）に対応するハードウェアモジュール（６１）を設定するステップを備える。
【発明の効果】
【００３９】
本発明により、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能となる。動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能となる。
本発明により、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能となる。その理由は、入力されるデータの処理内容、処理量を検知する手段を用意し、検知内容から変更する論理回路を決定する手段を用意し、動的に論理回路を再構成する手段を有しているためである。
また、本発明により、動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能となる。その理由は、動的に再構成可能な論理エレメントにハードウェア処理を設定・解除した情報を、処理モジュールへの入力データの転送情報に反映し、ハードウェア処理が存在する場合にそちらに入力データを転送する手段を設けたためである。
更に、本発明により、到着したデータを契機として、再構成可能な論理エレメントの構成を変更することが可能となる。その理由は、データ到着を契機に処理モジュール（ソフト／ハード）の動作状況が更新され、その結果再構成可能な論理エレメントに新たにハードウェアモジュールを設定することができるためである。
【発明を実施するための最良の形態】
【００４０】
本発明のデータ処理装置及びデータ処理方法の実施の形態について図面を参照して説明する。図１は、本発明のデータ処理装置の実施の形態の構成を示すブロック図である。データ処理装置１は、インタフェース（ＩＦ）部１０、入力データ処理判定データベース２０、データ転送網３０、中央演算装置（ＣＰＵ）４０、メモリ５０ａ、再構成可能論理エレメント６０、再構成可能論理エレメント管理部７０、ハードウェアモジュール構成情報データベース８０、管理系バス９０を具備する。
【００４１】
ＩＦ部１０は、データ処理装置１の外部の装置とデータ処理装置１とのデータの受け渡しを行なう。ＩＦ部１０は、入力ＩＦ部１３と、出力ＩＦ部１４とを備える。ＩＦ部１０は、入力データ１００および出力データ２００の一時保存のため、内部に（図示していない）バッファを配備しても良い。
【００４２】
入力ＩＦ部１３は、データ処理装置１の外部から入力ポート１１を介して入力データ１００を受信する。入力ＩＦ部１３は、データ転送網３０へデータを送信する。入力ＩＦ部１３は、入力データ処理判定データベース２０と接続し、データベースアクセス信号１５で互いに通信する。入力ＩＦ部１３は、再構成可能論理エレメント管理部７０と接続し、再構成可能論理エレメント管理部７０から再構成可能論理エレメント更新通知信号７５を送信される。出力ＩＦ部１４は、データ転送網３０からデータを受信する。また、データ処理装置１の外部へ出力ポート１２を介して出力データ２００を送信する。
【００４３】
入力データ処理判定データベース２０は、入力ＩＦ部１３から入力データ１００の全部または一部を取得する。入力データ１００の全部または一部は、入力ＩＦ部１３からのデータベースアクセス信号１５に含まれる。当該入力データ１００のデータ処理装置１内での処理を決定するためにデータ１００の種別を判定し、処理内容、処理ブロックを決定する。判定のためのデータは入力データ処理判定データベース２０内に格納されている。
【００４４】
図５Ａ及び図５Ｂは、入力データ処理判定データベース２０の構成の一例を示す表である。データ種別とデータ処理とデータ処理モジュールとを関連付けている。後述のとおり、図５Ａは、ある時点での入力データ処理判定データベース２０の内容を示している。図５Ｂは、再構成可能論理エレメント６０内のハードウェアモジュールの構成が変更になった後の入力データ処理判定データベース２０の内容を示している。
【００４５】
図５Ａでは、データ種別は、Ｔｙｐｅ１からＴｙｐｅ５、Ｔｙｐｅ  Ｏｕｔｐｕｔ、Ｏｔｈｅｒｓ（その他）に区分されている。各データ種別に対して行われるデータ処理として、それぞれ処理Ａから処理Ｄ、処理Ｏｕｔｐｕｔ（出力処理）、処理Ｚが対応する。各データ処理に対して行われるデータ処理モジュールとして、それぞれハードウェアモジュール１からハードウェアモジュール３、ソフトウェアモジュール４、ＩＦ部、ソフトウェアモジュールＺが対応する。これらのハードウェアモジュールは、下記の再構成可能論理エレメント６０上に実現されているハードウェアモジュール６１である。これらのソフトウェアモジュールは、下記のメモリ５０ａに格納されたソフトウェアモジュール５１である。
【００４６】
図５Ｂでは、図５Ａに対して、処理Ｄのデータ処理モジュールがソフトウェアモジュール４からハードウェアモジュール４へ変更され、処理Ｂのデータ処理モジュールがハードウェアモジュール２からソフトウェアモジュール２へ変更されたことを示している。ハードウェアモジュール４は、再構成可能論理エレメント６０上に新たに実現されたハードウェアモジュール６１である。ソフトウェアモジュール２は、メモリ５０ａに格納されたソフトウェアモジュール５１である。
【００４７】
例えば、図５Ａを参照すると、入力データ１００のデータ種別がＴｙｐｅ１だった場合、データ処理方法として処理Ａが選択される。処理Ａではこのときデータ処理モジュールとしてハードウェアモジュールのハードウェアモジュール１が選択されている。したがって、入力データ処理判定データベース２０は、入力ＩＦ部１３へ、再構成可能論理エレメント６０のハードウェアモジュール１で処理Ａを実施するために、ハードウェアモジュール１に入力データ１００を転送するように指示する。また、入力データ１００のデータ種別がＴｙｐｅ４だった場合、データ処理方法として処理Ｄが選択され、データ処理モジュールとしてソフトウェアモジュールのソフトウェアモジュール４が選択される。この場合、入力データ処理判定データベース２０は、入力ＩＦ部１３へ、ＣＰＵ４０でソフトウェアモジュール４を実行し処理Ｄを実施するために、ＣＰＵ４０へデータ１００を転送するように指示する。
【００４８】
入力ＩＦ部１３は、入力データ処理判定データベース２０からの検索結果に基づき、入力データ１００を本データの処理を行なう処理ブロックに転送する。処理ブロックは、ＣＰＵ４０、再構成可能論理エレメント６０、出力ＩＦ部１４のいずれかである。
【００４９】
再構成可能論理エレメント管理部７０は、再構成可能論理エレメント６０内のハードウェアモジュールの構成が変更になった場合、その変更内容を含む再構成可能論理エレメント更新通知信号７５を入力ＩＦ部１３へ送信する。入力ＩＦ部１３は、当該変更内容を入力データ処理判定データベース２０に送信する。入力データ処理判定データベース２０は、当該変更内容に基づいてデータベースの内容を更新する。
【００５０】
データ転送網３０は、入力ＩＦ部１３、出力ＩＦ部１４、ＣＰＵ４０、後述の再構成可能論理エレメント６０内の各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎを互いに通信可能に接続する。接続形態は問わず、バス、リング、スター、メッシュいずれの形態でも、各構成同士での通信が実現できればよい。
【００５１】
ＣＰＵ４０は、メモリ５０ａのソフトウェア５０を処理プログラムとして読み込み、データ転送網３０から入力されてくるデータの処理を実施するとともに、管理系バス９０を介してのデータ処理装置１全体の管理を実施する。ここで、ＣＰＵ４０は処理能力、機能分担の観点から、２個以上のＣＰＵから構成されていてもよい。例えばデータ転送網３０からの入力データの処理を主に行うＣＰＵと、管理系バス９０を介しての装置全体の管理を主に行なうＣＰＵとに、機能を分担しても良い。
【００５２】
ソフトウェア５０には、すべての入力データ１００の種別に対する処理内容が規定されている。ＣＰＵ４０は、それらの処理内容を処理可能である。本明細書では、入力データ１００の種別毎の処理ブロックをモジュールと呼ぶこととする。すなわちソフトウェア５０には、すべての入力データ１００に種別に対するソフトウェアモジュール１＿５１−１〜ソフトウェアモジュールＺ＿５１−Ｚが格納されている。
【００５３】
ソフトウェア５０は、データ処理装置１において用意可能なハードウェアモジュールの種類の情報を管理する機能を有する。すなわち、後述のハードウェアモジュール６１の種類は、ソフトウェアモジュール５１の種類に等しいかもしくはソフトウェアモジュール５１で処理可能な処理の部分集合となる。ソフトウェア５０では、入力データ１００の種別に対する処理内容と処理モジュール（ソフトウェアモジュール／ハードウェアモジュール）の対応を管理する。
【００５４】
図４は、データ種別とデータ処理モジュールとの対応テーブル５２の一例を示したものである。メモリ５０ａは、対応テーブル５２を格納している。データ種別とデータ処理とデータ処理モジュールとを関連付けている。データ種別は、Ｔｙｐｅ１からＴｙｐｅ５、Ｔｙｐｅ  Ｏｕｔｐｕｔ、Ｏｔｈｅｒｓ（その他）に区分されている。データ処理として、各データ種別に対して、それぞれ処理Ａから処理Ｅ、処理ｏｕｔｐｕｔ（出力処理）、処理Ｚが対応する。データ処理モジュールとして、各データ処理に対して、ハードウェア／ソフトウェアそれぞれ該当するモジュールが対応する。すなわち、同一のデータ処理が、ソフトウェアモジュールとハードウェアモジュールのそれぞれに割り当てられている。この場合、同じ入力データを与えると同じ結果が出力されるように、ソフトウェアモジュール及びハードウェアモジュールが設定されている。該当するモジュールがない場合、“ｎｕｌｌ”と表記してある。これらのハードウェアモジュールは、再構成可能論理エレメント６０上に実現可能な（一部は実現されている）ハードウェアモジュール６１であり、後述のハードウェアモジュール構成情報データベース８０にその定義が格納されている。これらのソフトウェアモジュールは、メモリ５０ａに格納されたソフトウェアモジュール５１である。
【００５５】
再構成可能論理エレメント６０は、動的に再構成が可能な論理デバイス（ハードウェア）にて構成される。再構成可能な論理デバイスの例としては、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＰＣＡ（Ｐｌａｓｔｉｃ  Ｃｅｌｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、リコンフィグラブル・プロセッサ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：ＲＰ）などがある。
【００５６】
再構成可能論理エレメント６０の内部には、ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎが配置される。各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎは、データ転送網３０と結合しており、入力ＩＦ部１３、ＣＰＵ４０、出力ＩＦ部１４と、データ通信が可能である。
【００５７】
各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎは、回路使用通知情報６２を再構成可能論理エレメント管理部７０に通知する。回路使用通知情報６２は、各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎが、入力データ単位でのデータ処理の頻度に関する情報である。頻度に関連する情報の具体例としては、各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎの起動回数、動作継続時間がある。
【００５８】
再構成可能論理エレメント管理部７０は、統計処理部７１と、資源管理部７２を有する。統計処理部７１は、各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎから通知される回路使用通知情報６２を集計し、各ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎの使用頻度（各ハードウェアモジュールの使用回数や使用時間）の統計情報を管理する。また、ＣＰＵ４０から管理系バス９０を介して、ソフトウェア実行した処理項目が通知される。通知された処理項目を元に、再構成可能論理エレメント６０内に新たに配置するハードウェアモジュール６１の選択を実施する。
【００５９】
図６は、統計処理部７１の管理情報テーブル７７の一例を示す表である。データ処理モジュールと回線割り当て状況とＬＲＵ時間とハードウェア化要求回数とを関連付けている。更に、各ハードウェアモジュールの使用回数や使用時間を関連付けていても良い。データ処理モジュール（ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎに相当）は、再構成可能論理エレメント６０内で構成済み（回路割り当て済み）のハードウェアモジュール（１〜３）と、回路未割り当てのハードウェアモジュール（４）を有する。回路割り当て状況として、各ハードウェアモジュールに対して、それぞれ現時点で、割り当てか、未割り当てかが示されている。ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）時間として、回路割り当てのあるハードウエアモジュール（１〜３）に対して、最後にデータ処理が行なわれてからの時間が示されている。ハードウェア化要求回数として、未割り当てのハードウエアモジュール（４）に対して、ソフトウェアモジュールからのハードウェア化要求回数が集計されている。
【００６０】
ＬＲＵ時間フィールドは、最後にデータ処理が行なわれてからの時間であるＬＲＵ時間が短いほど、使用頻度が高いことを示している。すなわち、ＬＲＵ規律は、ＬＲＵ時間が長いハードウェアモジュールを優先して解放する。ただし、ＬＲＵ時間フィールドは一例であり、ハードウェアモジュールの利用状況を示す情報であれば、ＬＲＵ規律以外の他の情報を掲示しても良く、他の例としてＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）規律での順序情報に基づいて、ハードウェアモジュールから解放しても良い。
【００６１】
また、ハードウェア化開始閾値は、未割り当てのデータ処理モジュールのハードウェア化要求回数が閾値を超えたら、統計処理部７１からのハードウェア化要求を有効とする目的に使用する。この閾値を設けることで、単発のハードウェア化要求を間引いて、頻繁な割り当て、解放処理を防ぐ効果がある。なお、ハードウェア化開始閾値を１とすれば、１回のハードウェア化要求にてハードウェア化が実行される。
【００６２】
資源管理部７２は、現在再構成可能論理エレメント６０に割り当てているハードウェアモジュール６１の管理を実施する。ハードウェアモジュール６１はその種類によって使用回路規模が異なることが一般的である。そこで再構成可能論理エレメント６０内で動的再構成を実施するに当たって、再構成可能論理エレメント６０からの旧ハードウェアモジュール６１の解放、新規ハードウェアモジュール６１への論理エレメント割り当て、未使用論理エレメントの管理を実施する。図７は、資源管理部７２の管理情報テーブル７８の一例を示す表である。データ処理モジュールと回路配置領域とを関連付けている。データ処理モジュール（ハードウェアモジュール１＿６１−１〜ハードウェアモジュールＮ＿６１−Ｎに相当）と再構成可能論理エレメント６０における回路配置領域、未使用領域を管理する。
【００６３】
再構成可能論理エレメント管理部７０は、上記内容から、例えば、統計処理部７１のデータに基づいて、再構成可能論理エレメント６０内で動的再構成を実施する際に、新規に構成するハードウェアモジュール６１と、再構成可能論理エレメント６０から解放する回路を決定する。再構成可能論理エレメント管理部７０は、再構成可能論理エレメント６０と接続され、回路設定信号７３で互いに通信する。再構成可能論理エレメント管理部７０は、ハードウェアモジュール構成情報データベース８０と接続され、回路構成情報設定信号７４で互いに通信する。
【００６４】
ハードウェアモジュール構成情報データベース８０は、再構成可能論理エレメント６０内で構成可能なハードウェアモジュール６１の構成情報を格納する。すなわち、ハードウェアモジュール（種類）とハードウェアモジュール６１の構成情報とを関連付けている。ハードウェアモジュールの構成情報は、ハードウェアモジュールを構成する論理セルや論理ブロックの論理構成に関する情報、論理セルや論理ブロックやメモリモジュール間の接続関係などの情報に例示される。格納されているハードウェアモジュールの構成情報はハードウェアモジュールとして、ソフトウェア５０内のソフトウェアモジュールと対応付けられるものである。例えば、図４のデータ処理モジュールにおけるソフトウェアモジュールとハードウェアモジュールとの対応に例示される。すなわち、ある種別の入力データ１００の処理を実行するためのハードウェアモジュールとしてハードウェアモジュール６１が規定される。
【００６５】
再構成可能論理エレメント６０内で動的再構成を実施する際、再構成可能論理エレメント管理部７０がハードウェアモジュール構成情報データベース８０を参照して、再構成するハードウェアモジュール６１のハードウェアモジュール構成情報（図中未図示）を取得し、再構成可能論理エレメント６０に本ハードウェアモジュール構成情報を通知する。
【００６６】
管理系バス９０は、ＩＦ部１０、入力データ処理判定データベース２０、ＣＰＵ４０、再構成可能論理エレメント６０、再構成可能論理エレメント管理部７０、及びハードウェアモジュール構成情報データベース８０を互いに通信可能に接続する。データ設定、状態確認用のバスである。
【００６７】
本発明のデータ処理装置の実施の形態の動作について説明する。図２は、本発明のデータ処理装置の実施の形態の動作（本発明のデータ処理方法の実施の形態）を示すフローチャートである。
【００６８】
まず、入力データ１００が入力ポート１１から入力ＩＦ部１３に到着する（ステップＳ１）。入力ＩＦ部１３は、入力データ１００の種別、処理判定を実施する（ステップＳ２）。具体的には、まず、入力ＩＦ部１３は、入力データ１００からデータ種別判定用のデータを抽出する（ステップＳ３）。データ種別判定用のデータは、入力データ１００の一部もしくは全部である。次に、入力ＩＦ部１３は、データ種別判定用のデータを含んだデータベースアクセス信号１５を入力データ処理判定データベース２０へ出力する。入力データ処理判定データベース２０は、データ種別判定用のデータに基づいて、検索を実施する（ステップＳ４）。入力データ処理判定データベース２０は、検索結果として処理内容（例示：図５Ａのデータ処理）とデータ処理ブロック（例示：図５Ａのデータ処理モジュール）を入力ＩＦ部１３に返答する（ステップＳ５）。
【００６９】
入力ＩＦ部１３は、入力データ処理判定データベース２０からの検索結果を元に、入力データ１００の転送先を判定する（ステップＳ１０）。データ処理ブロック（例示：図５Ａのデータ処理モジュール）がハードウェアの場合（テップＳ１０：ハードウェア）、入力ＩＦ部１３は、入力データ１００を該当するハードウェアモジュール６１へ転送する（ステップＳ４０）。当該ハードウェアモジュール６１は、入力データ１００のデータ処理を実施する（ステップＳ４１）。当該ハードウェアモジュール６１は、データ処理実施開始後に当該ハードウェアモジュール６１が利用されていることを、回路使用通知情報６２を用いて統計処理部７１に通知する（ステップＳ４２）。当該ハードウェアモジュール６１は、データ処理完了時に、データ処理結果に基づいて、次のデータ処理用のデータを生成する（ステップＳ４３）。ハードウェアモジュール６１は、ハードウェアモジュール６１内に予め設定された次のデータ処理モジュールに関する情報を参照して、次のデータ処理ブロックを決定する（ステップＳ４４）。この場合、ハードウェアモジュール６１は、ステップＳ１０をパスして、生成されたデータを該当するデータ処理ブロックへ転送する。データ処理ブロックがハードウェアモジュールの場合はステップＳ４０へ、ソフトウェアモジュールの場合はステップＳ５０へ、出力ＩＦ部の場合はステップＳ２０へ進む。
【００７０】
データ処理ブロック（例示：図５Ａのデータ処理モジュール）がソフトウェアの場合（ステップＳ１０：ソフトウェア）、入力ＩＦ部１３は、ソフトウェアモジュール５１でデータ処理を実行するためＣＰＵ４０へ入力データ１００を転送する。ＣＰＵ４０は、該当するソフトウェアモジュール５１を用いてデータ処理を実施する（ステップＳ５０）。ＣＰＵ４０は、当該ソフトウェアモジュール５１が使用されたことを受け、ソフトウェア５０内のデータ種別とデータ処理モジュールとの対応テーブル５２（図４）を参照して、当該ソフトウェアモジュール５１による処理を実行するためのハードウェアモジュール構成情報がハードウェアモジュール構成情報データベース８０に存在するかを判定する（ステップＳ５１）。具体的には、図４において、データ処理モジュールの当該ソフトウェアモジュールに対応するハードウェアモジュールがあるか否かを判断する。ハードウェアモジュールが有る場合、対応するハードウェアモジュール構成情報がハードウェアモジュール構成情報データベース８０に存在する。
【００７１】
該当するハードウェアモジュール構成情報が存在する場合（ステップＳ５１：Ｙｅｓ）、ＣＰＵ４０は該ハードウェアモジュールのハードウェア生成要求を、管理系バス９０を介して再構成可能論理エレメント管理部７０に通知する（ステップＳ５２）。本ステップにて動的再構成による該当するデータ処理モジュールのソフトウェアモジュールからハードウェアモジュールへの切り替え要求を通知する。
【００７２】
該当するハードウェアモジュール構成情報が存在しない場合（図２のステップＳ５１：Ｎｏ）、ＣＰＵ４０は、実施した該ソフトウェアモジュールの処理回数をカウントアップし、その処理回数をメモリ５０ａに格納する（ステップＳ５３）。これは、現時点の構成ではハードウェアモジュール構成情報が存在しないため動的再構成による切り替え要求を実施できないものの、各ソフトウェアモジュールの処理回数を記録しておくことで呼び出し回数の多い処理を把握することができる。その結果、呼び出し回数の多い処理のソフトウェアモジュールに対応するハードウェアモジュール構成情報を新たにハードウェアモジュール構成情報データベース８０に追加することで、以降動的再構成による処理切り替えが実行可能となる。
【００７３】
ハードウェアモジュールのハードウェアモジュール構成情報存在判定（ステップＳ５１）後、ソフトウェアモジュール５１はデータ処理完了時に、データ処理結果に基づいて、次のデータ処理用のデータを生成する（ステップＳ５４）。ソフトウェアモジュール５１は、ソフトウェアモジュール５１内に予め設定された次のデータ処理モジュールに関する情報を参照して、次のデータ処理ブロックを決定する（ステップＳ５５）。この場合、ソフトウェアモジュール５１は、ステップＳ１０をパスして、生成されたデータを該当するデータ処理ブロックへ転送する。データ処理ブロックがハードウェアモジュールの場合はステップＳ４０へ、ソフトウェアモジュールの場合はステップＳ５０へ、出力ＩＦ部の場合はステップＳ２０へ進む。
【００７４】
データ処理ブロック（例示：図５Ａのデータ処理モジュール）が出力ＩＦ部１４の場合（ステップＳ１０：出力ＩＦ部）、入力ＩＦ部１３は、入力データ１００を出力ＩＦ部１４へ転送する（ステップＳ２０）。出力ＩＦ部１４は、入力データ１００から出力データ２００を生成する（ステップＳ２１）。出力ＩＦ部１４は、最後に出力ポート１２に出力データ２００を出力して（ステップＳ２２）、データ処理を完了する（ステップＳ２３）。
【００７５】
図３は、本発明のデータ処理装置の実施の形態の動作において、再構成可能論理エレメント管理部７０の実施するハードウェアモジュール再構成判定のフローチャートである。
【００７６】
まず、再構成可能論理エレメント管理部７０は、ステップＳ５２におけるＣＰＵ４０からハードウェアモジュールｍ（１≦ｍ≦Ｎ）のハードウェア生成要求を受信する（ステップＳ１０１）。再構成可能論理エレメント管理部７０の資源管理部７２は、ハードウェア生成要求回数がハードウェア化開始閾値以上であり、要求されたハードウェアモジュールｍが再構築論理エレメントに配置可能かを判定する（ステップＳ１１０）。図７に示した資源管理部７２の管理情報テーブル７８とハードウェアモジュール構成情報データベース８０とを参照して判定する。具体的には、資源管理部７２は、当該ハードウェアモジュールｍのハードウェアモジュール構成情報（ハードウェアモジュール構成情報データベース８０）に基づいて、回路配置領域の未使用領域で当該ハードウェアモジュールｍが構築可能か否かを判定する。
【００７７】
再構成可能論理エレメント６０の未使用論理エレメント（回路配置領域の未使用領域）が不足しているためにハードウェアモジュールｍが配置不可能な場合、資源管理部７２は、現在設定されているハードウェアモジュールのうち、ハードウェア処理からソフトウェア処理に切り替えて再構成可能論理エレメント６０から解放するハードウェアモジュール６１を選択する（ステップＳ１２０）。図６に示した例では、現在未割り当てのハードウェアモジュール４へのハードウェア生成要求があることを示している。また、割り当て済みのハードウェアモジュールの中ではハードウェアモジュール２が、ＬＲＵが一番長く未使用状態が続いていて解放候補となっていることを示している。このほか、各ハードウェアモジュールの使用回数が少ないものや、各ハードウェアモジュールの使用時間の短いものを解放候補としても良い。これらは、統計処理部７１が把握している。資源管理部７２は、解放するハードウェアモジュール６１を決定した後、選択されたハードウェアモジュール６１を再構成可能論理エレメント６０から解放する（ステップＳ１３０）。図６の例ではハードウェアモジュール２が解放される。次に、資源管理部７２は、ハードウェアモジュールｍを再構成可能論理エレメント６０に割り当てる（ステップＳ１３１）。図６の例ではハードウェアモジュール４が割り当てられる。
【００７８】
割り当て完了後、再構成可能論理エレメント管理部７０は、管理情報を更新する（ステップＳ１４０）。具体的には、管理情報とは統計処理部７１にて管理している管理情報テーブル７７（図６）及び資源管理部７２にて管理している管理情報テーブル７８（図７）である。再構成可能論理エレメント管理部７０は、管理情報の更新後、再構成可能論理エレメント更新通知信号７５により、入力データ処理判定データベース２０を更新して（ステップＳ１５０）、処理を完了する（ステップＳ１６０）。図６の例では、更新された結果、図５Ａから図５Ｂに更新される。すなわち、図５Ａではデータ種別がＴｙｐｅ２のデータ処理モジュールとしてハードウェアモジュールのハードウェアモジュール２が選択されており、データ種別がＴｙｐｅ４のデータ処理モジュールとしてソフトウェアモジュールのソフトウェアモジュール４が選択されていた。しかし、動的再構成の結果、データ種別Ｔｙｐｅ２のデータ処理モジュールがソフトウェアモジュール２に、Ｔｙｐｅ４のデータ処理モジュールがハードウェアモジュール４に更新される。
【００７９】
本実施の形態では、再構成可能論理エレメント６０内のハードウェアモジュール６１の利用回数ないしは利用継続時間を計測する、各ハードウェアモジュール６１の利用回数ないしは利用継続時間を各回路使用通知情報６２として再構成可能論理エレメント管理部７０に通知する、再構成可能論理エレメント管理部７０内の統計し処理部７１、資源管理部７２にて常に新規配置するハードウェアモジュールと解放するハードウェアモジュールを動的に決定しているため、再構成可能論理エレメント６０の利用効率を最大化することができる。
【００８０】
本発明は、トラヒック状況に応じて処理内容を変更するネットワーク装置に適用できる。
【図面の簡単な説明】
【００８１】
【図１】図１は、本発明のデータ処理装置の実施の形態の構成を示すブロック図である。
【図２】図２は、本発明のデータ処理装置の実施の形態の動作を示すフローチャートである。
【図３】図３は、本発明のデータ処理装置の実施の形態の動作において、再構成可能論理エレメント管理部７０の実施するハードウェアモジュール再構成判定のフローチャートである。
【図４】図４は、データ種別とデータ処理モジュールとの対応テーブル５２を示したものである。
【図５Ａ】図５Ａは、入力データ処理判定データベース２０の構成を示す表である。
【図５Ｂ】図５Ｂは、更新された入力データ処理判定データベース２０の構成を示す表である。
【図６】図６は、統計処理部７１の管理情報テーブル７７を示す表である。
【図７】図７は、資源管理部７２の管理情報テーブル７８を示す表である。
【符号の説明】
【００８２】
１      データ処理装置
１０      インタフェース（ＩＦ）部
１３      入力ＩＦ部
１４      出力ＩＦ部
２０      入力データ処理判定データベース
３０      データ転送網
４０      ＣＰＵ
５０      ソフトウェア
５０ａ      メモリ
５１（５１−１〜５１−Ｚ）      ソフトウェアモジュール
５３      対応テーブル
６０      再構成可能論理エレメント
６１（６１−１〜６１−Ｎ）      ハードウェアモジュール
７０      再構成可能論理エレメント管理部
７１      統計処理部
７２      資源管理部
７７、７８      管理情報テーブル
８０      ハードウェアモジュール構成情報データベース
９０      管理系バス
【図１】
2007183726.tif 000003
【図２】
2007183726.tif 000004
【図３】
2007183726.tif 000005
【図４】
2007183726.tif 000006
【図５Ａ】
2007183726.tif 000007
【図５Ｂ】
2007183726.tif 000008
【図６】
2007183726.tif 000009
【図７】
2007183726.tif 000010