JP4978006B2 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
JP4978006B2
JP4978006B2 JP2006000468A JP2006000468A JP4978006B2 JP 4978006 B2 JP4978006 B2 JP 4978006B2 JP 2006000468 A JP2006000468 A JP 2006000468A JP 2006000468 A JP2006000468 A JP 2006000468A JP 4978006 B2 JP4978006 B2 JP 4978006B2
Authority
JP
Japan
Prior art keywords
data
hardware
module
data processing
hardware module
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.)
Expired - Fee Related
Application number
JP2006000468A
Other languages
English (en)
Other versions
JP2007183726A (ja
Inventor
聡史 神谷
洋史 上野
顕弘 元木
偉夫 林
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006000468A priority Critical patent/JP4978006B2/ja
Priority to US11/620,419 priority patent/US7774591B2/en
Publication of JP2007183726A publication Critical patent/JP2007183726A/ja
Application granted granted Critical
Publication of JP4978006B2 publication Critical patent/JP4978006B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Description

本発明は、データ処理装置及びデータ処理方法に関し、特に動的に論理回路が再構成可能(リコンフィグラブル)であるデータ処理装置及びデータ処理方法に関する。
近年、ハードウェアによって様々なデータ処理を行う回路に関して、その回路構成を動的に変更したり、演算機の接続を動的に変更することが可能な「動的に再構成可能な論理デバイス(ダイナミック リコンフィグラブル ハードウェア)」が実現してきている。再構成可能な論理デバイスの例としては、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、PCA(Plastic Cell Architecture)、リコンフィグラブル・プロセッサ(Reconfigurable Processor:RP)などがある。このような再構成可能な論理デバイスは、処理高速性の特徴を有するハードウェアにソフトウェアの柔軟性を導入できるデバイスとして有望視されており、本デバイスを使用した装置が提案されている。
特開2004−343559号公報に、従来の再構成可能な集積回路ユニットを有するデータ処理装置の一例が開示されている。このデータ処理装置は、構成の少なくとも一部を変えて複数のデータ処理を実行可能な集積回路ユニットを有する。データ処理装置は、更に、この集積回路ユニットに適応可能な複数の構成データを記憶したデータベースと、当該データ処理装置において実行する処理を選択可能な制御ユニットとを有する。この制御ユニットは、再構成機能と、試行機能とを備えている。再構成機能は、前記データベースの構成データに基づき、前記集積回路ユニットを当該データ処理装置において実行中の処理に対応した構成にする。試行機能は、前記実行中の処理と置換可能な他の処理を当該データ処理装置において実行したときの評価が少なくとも可能なように、前記データベースの構成データに基づき前記集積回路ユニットの構成の少なくとも一部を一時的に変更して前記他の処理の少なくとも一部を試行し、評価の高い前記他の処理を当該データ処理装置における前記実行中の処理とする。本従来例は、再構成可能なプロセッサ(Reconfigurable Processor:RP)を使用したソフトウェア無線端末の例である。本実施例では、再構成可能なプロセッサを使用して、環境(本実施例では通信品質)の変化に適応して回路構成を変更する方式が開示されている。
また、特表2002−530780号公報に、従来の再構成可能なプログラマブルロジックデバイスコンピュータシステムの一例が開示されている。この再構成可能なコンピュータシステムは、中央プロセッシングユニットとプログラマブルロジックとからなる。中央プロセッシングユニットは、少なくとも1つのプログラマブルロジックデバイス上で実施される。プログラマブルロジックは、この中央プロセッシングユニットに結合され、所与のアプリケーションを処理するためにコンピュータシステムの能力を最適化するよう再構成可能である。本従来例は、プログラマブルロジックデバイス(PLD)による再構成可能なコンピュータの一例であり、システム設計時に本コンピュータで実施するアプリケーションを、ハードウェア資源の制約の中でハードウェア処理部分とソフトウェア処理部分に機能分割を行い、システムに起動時にハードウェア資源割り当て、ソフトウェア処理割り当てをそれぞれ実施する。
国際公開WO01/090887号公報に、従来の動的に再構築可能なハードウエアを利用して高速化処理を可能にするプログラム処理方法及びその処理方法を実行するプログラムが開示されている。このプログラム処理方法は、コンピュータによって実行されるソースプログラムの処理方法である。このプログラム処理方法は、前記ソースプログラムを解析し、当該ソースプログラムを構成する所定のプログラムモジュール単位で前記コンピュータ資源の使用コスト値を求め、前記使用コスト値が高いプログラムモジュールを選択する評価工程と;動的に再構築可能なハードウエアを、前記選択されたプログラムモジュールの処理を行う構成に構築するハードウエアモジュールオブジェクトを生成すると共に、当該選択されたプログラムモジュールを呼び出す擬似関数を追加して前記ソースプログラムを変更する編集工程と;前記ハードウエアモジュールオブジェクトに従って構築されたハードウエアと前記コンピュータによって、前記変更されたソースプログラムを実行する実行工程とを有する。本従来例では、CPU(Central Processing Unit)上で動作させるソフトウェアの編集時点で、コンピュータ資源の使用コストが高いプログラムモジュールを動的に再構成可能なハードウェアを使用するハードウェアモジュールオブジェクトを呼び出すように構成している。
近年、データ処理装置において、その入出力回線速度の上昇に伴い、装置の入出力トラヒック量が増大している。そのため、データ処理能力を向上させるために入出力データ処理をハードウェアによって処理する部位が増大している。一方で、ファイヤウォール、侵入検知・防止装置、コンピュータウイルス検知装置、アプリケーションレイヤ中継装置等、データ処理の内容としてより高次のネットワークレイヤを扱う装置の必要性が高まっている。これらのデータ処理装置においては、多種多様なプロトコル、アプリケーションに対応するために柔軟性が要求されている。そのため、本部分についてはソフトウェア処理にて対応する場合が多い。しかし、ソフトウェア処理の処理性能はプロセッサの処理性能に強く依存している。そのため、処理性能の面で格段の改善を実現するには、ソフトウェアの柔軟性を犠牲にして処理をハードウェア化して切り出す「ハードウェアオフロード」を行う必要があった。
オフロードの観点からすると、装置内の処理ブロックには、CPU上で実行するソフトウェアモジュールと、ハードウェア回路で処理するハードウェアモジュールが存在する。通常異なる処理をそれぞれソフトウェアモジュールとハードウェアモジュールに分担させることが多い。一方で、同一の処理をソフトウェアモジュールとハードウェアモジュールのそれぞれに割り当てる場合もありうる。この場合、同じ入力データとパラメータを与えた際に同じ結果が出力されるように、ソフトウェアモジュール、ハードウェアモジュールのアプリケーションプログラミングインタフェース(API)を定義することが可能である。
通常ハードウェアモジュールは固定的なハードウェア回路で構成されるため、その機能を装置上に配備するか否かといった配置の柔軟性や、機能変更を行うための柔軟性を有していない。しかし装置内に再構成可能な論理デバイスを使用すると、ハードウェアモジュールに対して処理高速性に加えてソフトウェアの柔軟性を導入することが可能となる。以下特に断りがない場合は、ハードウェアモジュールは再構成可能な論理デバイス上に展開されたハードウェアモジュールとして説明する。
単位時間当たりのデータ処理量やデータ処理に必要な時間など処理性能の観点では、ハードウェアモジュールの方がソフトウェアモジュールと比較して有利である。一方、ソフトウェア処理実行のために必要な資源はCPUと処理用メモリであり、ハードウェア処理実行のために必要な資源は論理エレメント(再構成可能でも固定的でも可)である。したがって、資源コストの観点では、ハードウェアモジュールはソフトウェアモジュールと比較して高額である。再構成可能な論理エレメントを使用したハードウェアモジュールは、固定的論理エレメントを使用したハードウェアモジュールに比べ概して高額である。したがって、使用頻度の高いモジュール、処理性能が著しく優れるモジュールをハードウェアモジュールとし、使用頻度の低いモジュール、ハードウェアとソフトウェア間で性能差があまりないモジュールについてはソフトウェアモジュールとすることで、装置全体のコストパフォーマンスを改善させることが可能となる。
ところが、モジュールのハードウェア化、ソフトウェア化の選択は、時間帯、装置設置箇所等によって変化する場合がある。時間帯によって変化する場合とは、到着するデータ種類の傾向が時間によって変化する場合である。このような場合、動的な再構成による環境適応型のシステムが性能発揮の面で特に有効である。従来では時間変化、装置設置箇所の違い等に対応するためには機能モジュールをソフトウェアモジュールにしておくしかなかったが、再構成可能な論理デバイスを利用することで、ハードウェアモジュールにおいても時間変化や、装置設置箇所の違いに対応することが可能となる。その際に同じハードウェアのまま機能変更を実施できる点で、処理性能を高水準で維持した状態で機能変更が実現できる。
このように、データ処理装置に再構成可能な論理デバイスを使用すると、前記の処理性能の向上と処理の柔軟性の問題を解決することができる。しかし、既存の再構成可能な論理デバイスを使用したデータ処理装置には、種々の処理に関して同時にソフトウェアモジュールとハードウェアモジュールにてその処理を実現して、ソフトウェアモジュールとハードウェアモジュール間で処理を切り替える方法が開示されていなかった。
例えば、特開2004−343559号公報で開示されている従来技術では、再構成可能なプロセッサに処理規模が入る処理回路が前提となっている。すなわち、処理をソフトウェアで実施することが想定されておらず、ソフトウェアモジュールとハードウェアモジュールの動的切り替えに関する技術が開示されていない。また、特表2002−530780号公報で開示されている従来技術では、再構成がなされるのがシステム起動時のみであり、システム動作中にハードウェアとソフトウェアの処理割り当てを変更する技術は開示されていない。さらに、特許文献3で開示されている従来技術では、ソフトウェア編集時点でハードウェア処理されるモジュールが固定化されおり、システム動作中にハードウェアとソフトウェアの処理割り当てを変更する技術は開示されていない。
関連する技術として特開2004−5110号公報に情報機器、ランチャプログラムが開示されている。この情報機器は、ランチャ機能が搭載され、プリケーション起動判断手段と、登録アプリケーション検索手段と、アプリケーション登録手段とを具備する。アプリケーション起動判断手段は、ランチャ機能以外からアプリケーションが起動されたことを判断する。登録アプリケーション検索手段は、前記アプリケーション起動判断手段によって起動されたことを判断されたアプリケーションが、ランチャ機能に登録されているか判別する。アプリケーション登録手段は、前記登録アプリケーション検索手段によってランチャ機能に登録されていないと判別された場合に、当該アプリケーションをランチャ機能に登録する。
特開2004−362446号公報に計算機及び計算方法が開示されている。この計算機は、ハードウェアモジュールと、記憶部と、実行部とを備えている。ハードウェアモジュールは、所定の処理を実行する。記憶部は、上記ハードウェアモジュールが実行する所定の処理と同一の処理を行うソフトウェアモジュールを記憶する。実行部は、上記ハードウェアモジュールによる実行と上記記憶部により記憶されたソフトウェアモジュールによる実行とのいずれかを選択し、上記ハードウェアモジュールによる実行を選択した場合に、上記ハードウェアモジュールを実行させ、上記ソフトウェアモジュールによる実行を選択した場合に、上記ソフトウェアモジュールを実行する。
特開2004−343559号公報 特表2002−530780号公報 国際公開WO01/090887号公報 特開2004−5110号公報 特開2004−362446号公報
本発明の目的は、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能なデータ処理装置及びデータ処理方法を提供することにある。
また、本発明の他の目的は、動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能なデータ処理装置及びデータ処理方法を提供することにある。
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のデータ処理装置は、メモリ(50a)と、中央演算装置(40)と、論理エレメント(60)と、第1データベース(80)と、管理部(70)とを具備する。メモリ(50a)は、入力データを処理する複数のソフトウェアモジュール(51)を格納する。中央演算装置(40)は、複数のソフトウェアモジュール(51)を実行可能である。論理エレメント(60)は、動的再構成により、複数のソフトウェアモジュール(51)と同等の処理を行う複数のハードウェアモジュール(61)を構成可能である。第1データベース(80)は、複数のハードウェアモジュール(61)が論理エレメント(60)に設定されるときの構成を示す構成情報を格納する。管理部(70)は、入力データの処理に関する所定の条件に基づいて、複数のソフトウェアモジュール(51)のうちハードウェアモジュール(61)として論理エレメント(60)に設定する第1ソフトウェアモジュール(51)を決定し、第1データベース(80)を参照して、第1ソフトウェアモジュール(51)に対応する第1ハードウェアモジュール(61)を論理エレメント(60)に設定する。
上記のデータ処理装置において、第1ハードウェアモジュール(61)は少なくとも一つある。管理部(70)は、複数のソフトウェアモジュール(51)の各々の使用頻度に基づいて、第1ソフトウェアモジュール(51)を決定する。本使用頻度を第1使用頻度と呼ぶこととする。管理部(70)は、論理エレメント(60)に設定されている複数のハードウェアモジュール(61)の各々の使用頻度に基づいて、複数のハードウェアモジュール(61)のうち論理エレメント(60)から解放する第2ハードウェアモジュール(61)を決定する。本使用頻度を第2使用頻度と呼ぶこととする。第2ハードウェアモジュール(61)を論理エレメント(60)から解放し、第1ハードウェアモジュール(61)を論理エレメント(60)に設定する。
上記のデータ処理装置において、管理部(70)は、複数のソフトウェアモジュール(51)のうち、第1使用頻度の相対的に高いものを第1ソフトウェアモジュール(51)とする。複数のハードウェアモジュール(61)のうち、第2使用頻度の相対的に低いものを第2ハードウェアモジュール(61)とする。
上記のデータ処理装置において、第2使用頻度は、入力データ到着時に使用された複数のハードウェアモジュール(61)の各々の使用回数及び使用時間に基づいて判定される。
上記のデータ処理装置において、第2使用頻度は、最後にデータ処理が行なわれてからの時間であるLRU時間(Least Recently Used)に基づいて判定される。
上記のデータ処理装置において、第2使用頻度は、FIFO規律に基づいて判定される。
上記のデータ処理装置において、第2データベース(20)と、データ入力部(13)とを更に具備する。第2データベース(20)は、データの種別とソフトウェアモジュール(51)及び論理エレメント(60)に設定されたハードウェアモジュール(61)のいずれか一方とを関連付けている。データ入力部(13)は、入力データの種別に基づいて、第2データベース(20)を参照して、論理エレメント(60)に設定されたハードウェアモジュール(61)が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール(61)へ転送し、対応しない場合、中央演算装置(40)へ転送する。
本発明のデータ処理装置は、データベース(20)と、データ入力部(13)とを具備する。管理部(70)は、動的再構成可能な論理エレメント(60)にハードウェアモジュール(61)を設定または解放したとき、当該ハードウェアモジュール(61)の設定状況を把握する。データベース(20)は、データの種別とソフトウェアモジュール(51)及び論理エレメント(60)に設定されたハードウェアモジュール(61)のいずれか一方とを関連付け、設定状況に基づいて更新される。データ入力部(13)は、入力データの種別に基づいて、データベース(20)を参照して、論理エレメント(60)に設定されたハードウェアモジュール(61)が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール(61)へ転送する。
上記のデータ処理装置において、データ入力部(13)は、入力データの種別に基づいて、データベース(20)を参照して、ソフトウェアモジュール(51)が入力データの種別に対応する場合、ソフトウェアモジュール(51)を実行するように入力データを中央演算装置(40)へ転送する。
上記のデータ処理装置において、管理部(70)は、論理エレメント(60)に設定されたハードウェアモジュール(61)の使用頻度に基づいて、設定されたハードウェアモジュール(61)の解放を決定する。ソフトウェアモジュール(51)の使用頻度に基づいて、論理エレメント(60)にソフトウェアモジュール(51)に対応するハードウェアモジュール(61)を設定する。
本発明のデータ処理方法は、(a)入力データの処理に関する所定の条件に基づいて、メモリ(50a)に格納された複数のソフトウェアモジュール(51)のうち、動的再構成可能な論理エレメント(60)にハードウェアモジュール(61)として設定する第1ソフトウェアモジュール(51)を決定するステップと、(b)ハードウェアモジュール(61)が論理エレメント(60)に設定されるときの構成を示す構成情報を格納する第1データベース(80)を参照して、第1ソフトウェアモジュール(51)を第1ハードウェアモジュール(61)として論理エレメント(60)に設定するステップとを具備する。
上記のデータ処理方法において、(a)ステップは、(a1)複数のソフトウェアモジュール(51)の各々の第1使用頻度に基づいて、第1ソフトウェアモジュール(51)を決定するステップと、(a2)論理エレメント(60)の既設の複数のハードウェアモジュール(61)の各々の第2使用頻度に基づいて、既設の複数のハードウェアモジュール(61)のうち論理エレメント(60)から解放する第2ハードウェアモジュール(61)を決定するステップとを備える。(b)ステップは、(b1)第2ハードウェアモジュール(61)を論理エレメント(60)から解放し、第1ハードウェアモジュール(61)を論理エレメント(60)に設定するステップを備える。
上記のデータ処理方法において、(a1)ステップは、(a11)複数のソフトウェアモジュール(51)のうち、第1使用頻度の相対的に高いものを第1ソフトウェアモジュール(51)とするステップを含む。(a2)ステップは、(a21)既設の複数のハードウェアモジュール(61)のうち、第2使用頻度の相対的に低いものを第2ハードウェアモジュール(61)とするステップを含む。
上記のデータ処理方法において、第2使用頻度は、入力データ到着時に使用された既設の複数のハードウェアモジュール(61)の各々の使用回数及び使用時間に基づいて判定される。
上記のデータ処理方法において、第2使用頻度は、最後にデータ処理が行なわれてからの時間であるLRU時間(Least Recently Used)に基づいて判定される。
上記のデータ処理方法において、第2使用頻度は、FIFO規律に基づいて判定される。
上記のデータ処理方法において、(c)データの種別とソフトウェアモジュール(51)及び論理エレメント(60)に設定されたハードウェアモジュール(61)のいずれか一方とを関連付けた第2データベース(20)を参照して、入力データの種別に基づいて、論理エレメント(60)に設定されたハードウェアモジュール(61)が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール(61)へ転送するステップを更に具備する。
本発明のデータ処理方法は、(a)動的再構成可能な論理エレメント(60)にハードウェアモジュール(61)を設定または解放したとき、当該ハードウェアモジュール(61)の設定状況を把握するステップと、(b)データの種別とソフトウェアモジュール(51)及び論理エレメント(60)に設定されたハードウェアモジュール(61)のいずれか一方とを関連付けて設定状況に基づいて更新されるデータベース(20)を参照して、入力データの種別に基づいて、論理エレメント(60)に設定されたハードウェアモジュール(61)が入力データの種別に対応する場合、入力データを当該ハードウェアモジュール(61)へ転送するステップとを具備する。
上記のデータ処理方法において、(b)ステップは、(b1)入力データの種別に基づいて、データベース(20)を参照して、ソフトウェアモジュール(51)が入力データの種別に対応する場合、ソフトウェアモジュール(51)を実行するように入力データを中央演算装置(40)へ転送するステップを備える。
上記のデータ処理方法において、(a)ステップは、(a1)論理エレメント(60)に設定されたハードウェアモジュール(61)の使用頻度に基づいて、設定されたハードウェアモジュール(61)の解放を決定するステップと、(a2)ソフトウェアモジュール(51)の使用頻度に基づいて、論理エレメント(60)にソフトウェアモジュール(51)に対応するハードウェアモジュール(61)を設定するステップを備える。
本発明により、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能となる。動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能となる。
本発明により、入力されるデータの処理内容、処理量に応じて動的に論理回路を再構成することが可能となる。その理由は、入力されるデータの処理内容、処理量を検知する手段を用意し、検知内容から変更する論理回路を決定する手段を用意し、動的に論理回路を再構成する手段を有しているためである。
また、本発明により、動的に再構成可能な論理エレメントにハードウェア処理を動的に設定・解除する機能を使用して、ソフトウェア処理とハードウェア処理を動的に切り替えることが可能となる。その理由は、動的に再構成可能な論理エレメントにハードウェア処理を設定・解除した情報を、処理モジュールへの入力データの転送情報に反映し、ハードウェア処理が存在する場合にそちらに入力データを転送する手段を設けたためである。
更に、本発明により、到着したデータを契機として、再構成可能な論理エレメントの構成を変更することが可能となる。その理由は、データ到着を契機に処理モジュール(ソフト/ハード)の動作状況が更新され、その結果再構成可能な論理エレメントに新たにハードウェアモジュールを設定することができるためである。
本発明のデータ処理装置及びデータ処理方法の実施の形態について図面を参照して説明する。図1は、本発明のデータ処理装置の実施の形態の構成を示すブロック図である。データ処理装置1は、インタフェース(IF)部10、入力データ処理判定データベース20、データ転送網30、中央演算装置(CPU)40、メモリ50a、再構成可能論理エレメント60、再構成可能論理エレメント管理部70、ハードウェアモジュール構成情報データベース80、管理系バス90を具備する。
IF部10は、データ処理装置1の外部の装置とデータ処理装置1とのデータの受け渡しを行なう。IF部10は、入力IF部13と、出力IF部14とを備える。IF部10は、入力データ100および出力データ200の一時保存のため、内部に(図示していない)バッファを配備しても良い。
入力IF部13は、データ処理装置1の外部から入力ポート11を介して入力データ100を受信する。入力IF部13は、データ転送網30へデータを送信する。入力IF部13は、入力データ処理判定データベース20と接続し、データベースアクセス信号15で互いに通信する。入力IF部13は、再構成可能論理エレメント管理部70と接続し、再構成可能論理エレメント管理部70から再構成可能論理エレメント更新通知信号75を送信される。出力IF部14は、データ転送網30からデータを受信する。また、データ処理装置1の外部へ出力ポート12を介して出力データ200を送信する。
入力データ処理判定データベース20は、入力IF部13から入力データ100の全部または一部を取得する。入力データ100の全部または一部は、入力IF部13からのデータベースアクセス信号15に含まれる。当該入力データ100のデータ処理装置1内での処理を決定するためにデータ100の種別を判定し、処理内容、処理ブロックを決定する。判定のためのデータは入力データ処理判定データベース20内に格納されている。
図5A及び図5Bは、入力データ処理判定データベース20の構成の一例を示す表である。データ種別とデータ処理とデータ処理モジュールとを関連付けている。後述のとおり、図5Aは、ある時点での入力データ処理判定データベース20の内容を示している。図5Bは、再構成可能論理エレメント60内のハードウェアモジュールの構成が変更になった後の入力データ処理判定データベース20の内容を示している。
図5Aでは、データ種別は、Type1からType5、Type Output、Others(その他)に区分されている。各データ種別に対して行われるデータ処理として、それぞれ処理Aから処理D、処理Output(出力処理)、処理Zが対応する。各データ処理に対して行われるデータ処理モジュールとして、それぞれハードウェアモジュール1からハードウェアモジュール3、ソフトウェアモジュール4、IF部、ソフトウェアモジュールZが対応する。これらのハードウェアモジュールは、下記の再構成可能論理エレメント60上に実現されているハードウェアモジュール61である。これらのソフトウェアモジュールは、下記のメモリ50aに格納されたソフトウェアモジュール51である。
図5Bでは、図5Aに対して、処理Dのデータ処理モジュールがソフトウェアモジュール4からハードウェアモジュール4へ変更され、処理Bのデータ処理モジュールがハードウェアモジュール2からソフトウェアモジュール2へ変更されたことを示している。ハードウェアモジュール4は、再構成可能論理エレメント60上に新たに実現されたハードウェアモジュール61である。ソフトウェアモジュール2は、メモリ50aに格納されたソフトウェアモジュール51である。
例えば、図5Aを参照すると、入力データ100のデータ種別がType1だった場合、データ処理方法として処理Aが選択される。処理Aではこのときデータ処理モジュールとしてハードウェアモジュールのハードウェアモジュール1が選択されている。したがって、入力データ処理判定データベース20は、入力IF部13へ、再構成可能論理エレメント60のハードウェアモジュール1で処理Aを実施するために、ハードウェアモジュール1に入力データ100を転送するように指示する。また、入力データ100のデータ種別がType4だった場合、データ処理方法として処理Dが選択され、データ処理モジュールとしてソフトウェアモジュールのソフトウェアモジュール4が選択される。この場合、入力データ処理判定データベース20は、入力IF部13へ、CPU40でソフトウェアモジュール4を実行し処理Dを実施するために、CPU40へデータ100を転送するように指示する。
入力IF部13は、入力データ処理判定データベース20からの検索結果に基づき、入力データ100を本データの処理を行なう処理ブロックに転送する。処理ブロックは、CPU40、再構成可能論理エレメント60、出力IF部14のいずれかである。
再構成可能論理エレメント管理部70は、再構成可能論理エレメント60内のハードウェアモジュールの構成が変更になった場合、その変更内容を含む再構成可能論理エレメント更新通知信号75を入力IF部13へ送信する。入力IF部13は、当該変更内容を入力データ処理判定データベース20に送信する。入力データ処理判定データベース20は、当該変更内容に基づいてデータベースの内容を更新する。
データ転送網30は、入力IF部13、出力IF部14、CPU40、後述の再構成可能論理エレメント60内の各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nを互いに通信可能に接続する。接続形態は問わず、バス、リング、スター、メッシュいずれの形態でも、各構成同士での通信が実現できればよい。
CPU40は、メモリ50aのソフトウェア50を処理プログラムとして読み込み、データ転送網30から入力されてくるデータの処理を実施するとともに、管理系バス90を介してのデータ処理装置1全体の管理を実施する。ここで、CPU40は処理能力、機能分担の観点から、2個以上のCPUから構成されていてもよい。例えばデータ転送網30からの入力データの処理を主に行うCPUと、管理系バス90を介しての装置全体の管理を主に行なうCPUとに、機能を分担しても良い。
ソフトウェア50には、すべての入力データ100の種別に対する処理内容が規定されている。CPU40は、それらの処理内容を処理可能である。本明細書では、入力データ100の種別毎の処理ブロックをモジュールと呼ぶこととする。すなわちソフトウェア50には、すべての入力データ100に種別に対するソフトウェアモジュール1_51−1〜ソフトウェアモジュールZ_51−Zが格納されている。
ソフトウェア50は、データ処理装置1において用意可能なハードウェアモジュールの種類の情報を管理する機能を有する。すなわち、後述のハードウェアモジュール61の種類は、ソフトウェアモジュール51の種類に等しいかもしくはソフトウェアモジュール51で処理可能な処理の部分集合となる。ソフトウェア50では、入力データ100の種別に対する処理内容と処理モジュール(ソフトウェアモジュール/ハードウェアモジュール)の対応を管理する。
図4は、データ種別とデータ処理モジュールとの対応テーブル52の一例を示したものである。メモリ50aは、対応テーブル52を格納している。データ種別とデータ処理とデータ処理モジュールとを関連付けている。データ種別は、Type1からType5、Type Output、Others(その他)に区分されている。データ処理として、各データ種別に対して、それぞれ処理Aから処理E、処理output(出力処理)、処理Zが対応する。データ処理モジュールとして、各データ処理に対して、ハードウェア/ソフトウェアそれぞれ該当するモジュールが対応する。すなわち、同一のデータ処理が、ソフトウェアモジュールとハードウェアモジュールのそれぞれに割り当てられている。この場合、同じ入力データを与えると同じ結果が出力されるように、ソフトウェアモジュール及びハードウェアモジュールが設定されている。該当するモジュールがない場合、“null”と表記してある。これらのハードウェアモジュールは、再構成可能論理エレメント60上に実現可能な(一部は実現されている)ハードウェアモジュール61であり、後述のハードウェアモジュール構成情報データベース80にその定義が格納されている。これらのソフトウェアモジュールは、メモリ50aに格納されたソフトウェアモジュール51である。
再構成可能論理エレメント60は、動的に再構成が可能な論理デバイス(ハードウェア)にて構成される。再構成可能な論理デバイスの例としては、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、PCA(Plastic Cell Architecture)、リコンフィグラブル・プロセッサ(Reconfigurable Processor:RP)などがある。
再構成可能論理エレメント60の内部には、ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nが配置される。各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nは、データ転送網30と結合しており、入力IF部13、CPU40、出力IF部14と、データ通信が可能である。
各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nは、回路使用通知情報62を再構成可能論理エレメント管理部70に通知する。回路使用通知情報62は、各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nが、入力データ単位でのデータ処理の頻度に関する情報である。頻度に関連する情報の具体例としては、各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nの起動回数、動作継続時間がある。
再構成可能論理エレメント管理部70は、統計処理部71と、資源管理部72を有する。統計処理部71は、各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nから通知される回路使用通知情報62を集計し、各ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nの使用頻度(各ハードウェアモジュールの使用回数や使用時間)の統計情報を管理する。また、CPU40から管理系バス90を介して、ソフトウェア実行した処理項目が通知される。通知された処理項目を元に、再構成可能論理エレメント60内に新たに配置するハードウェアモジュール61の選択を実施する。
図6は、統計処理部71の管理情報テーブル77の一例を示す表である。データ処理モジュールと回線割り当て状況とLRU時間とハードウェア化要求回数とを関連付けている。更に、各ハードウェアモジュールの使用回数や使用時間を関連付けていても良い。データ処理モジュール(ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nに相当)は、再構成可能論理エレメント60内で構成済み(回路割り当て済み)のハードウェアモジュール(1〜3)と、回路未割り当てのハードウェアモジュール(4)を有する。回路割り当て状況として、各ハードウェアモジュールに対して、それぞれ現時点で、割り当てか、未割り当てかが示されている。LRU(Least Recently Used)時間として、回路割り当てのあるハードウエアモジュール(1〜3)に対して、最後にデータ処理が行なわれてからの時間が示されている。ハードウェア化要求回数として、未割り当てのハードウエアモジュール(4)に対して、ソフトウェアモジュールからのハードウェア化要求回数が集計されている。
LRU時間フィールドは、最後にデータ処理が行なわれてからの時間であるLRU時間が短いほど、使用頻度が高いことを示している。すなわち、LRU規律は、LRU時間が長いハードウェアモジュールを優先して解放する。ただし、LRU時間フィールドは一例であり、ハードウェアモジュールの利用状況を示す情報であれば、LRU規律以外の他の情報を掲示しても良く、他の例としてFIFO(First In First Out)規律での順序情報に基づいて、ハードウェアモジュールから解放しても良い。
また、ハードウェア化開始閾値は、未割り当てのデータ処理モジュールのハードウェア化要求回数が閾値を超えたら、統計処理部71からのハードウェア化要求を有効とする目的に使用する。この閾値を設けることで、単発のハードウェア化要求を間引いて、頻繁な割り当て、解放処理を防ぐ効果がある。なお、ハードウェア化開始閾値を1とすれば、1回のハードウェア化要求にてハードウェア化が実行される。
資源管理部72は、現在再構成可能論理エレメント60に割り当てているハードウェアモジュール61の管理を実施する。ハードウェアモジュール61はその種類によって使用回路規模が異なることが一般的である。そこで再構成可能論理エレメント60内で動的再構成を実施するに当たって、再構成可能論理エレメント60からの旧ハードウェアモジュール61の解放、新規ハードウェアモジュール61への論理エレメント割り当て、未使用論理エレメントの管理を実施する。図7は、資源管理部72の管理情報テーブル78の一例を示す表である。データ処理モジュールと回路配置領域とを関連付けている。データ処理モジュール(ハードウェアモジュール1_61−1〜ハードウェアモジュールN_61−Nに相当)と再構成可能論理エレメント60における回路配置領域、未使用領域を管理する。
再構成可能論理エレメント管理部70は、上記内容から、例えば、統計処理部71のデータに基づいて、再構成可能論理エレメント60内で動的再構成を実施する際に、新規に構成するハードウェアモジュール61と、再構成可能論理エレメント60から解放する回路を決定する。再構成可能論理エレメント管理部70は、再構成可能論理エレメント60と接続され、回路設定信号73で互いに通信する。再構成可能論理エレメント管理部70は、ハードウェアモジュール構成情報データベース80と接続され、回路構成情報設定信号74で互いに通信する。
ハードウェアモジュール構成情報データベース80は、再構成可能論理エレメント60内で構成可能なハードウェアモジュール61の構成情報を格納する。すなわち、ハードウェアモジュール(種類)とハードウェアモジュール61の構成情報とを関連付けている。ハードウェアモジュールの構成情報は、ハードウェアモジュールを構成する論理セルや論理ブロックの論理構成に関する情報、論理セルや論理ブロックやメモリモジュール間の接続関係などの情報に例示される。格納されているハードウェアモジュールの構成情報はハードウェアモジュールとして、ソフトウェア50内のソフトウェアモジュールと対応付けられるものである。例えば、図4のデータ処理モジュールにおけるソフトウェアモジュールとハードウェアモジュールとの対応に例示される。すなわち、ある種別の入力データ100の処理を実行するためのハードウェアモジュールとしてハードウェアモジュール61が規定される。
再構成可能論理エレメント60内で動的再構成を実施する際、再構成可能論理エレメント管理部70がハードウェアモジュール構成情報データベース80を参照して、再構成するハードウェアモジュール61のハードウェアモジュール構成情報(図中未図示)を取得し、再構成可能論理エレメント60に本ハードウェアモジュール構成情報を通知する。
管理系バス90は、IF部10、入力データ処理判定データベース20、CPU40、再構成可能論理エレメント60、再構成可能論理エレメント管理部70、及びハードウェアモジュール構成情報データベース80を互いに通信可能に接続する。データ設定、状態確認用のバスである。
本発明のデータ処理装置の実施の形態の動作について説明する。図2は、本発明のデータ処理装置の実施の形態の動作(本発明のデータ処理方法の実施の形態)を示すフローチャートである。
まず、入力データ100が入力ポート11から入力IF部13に到着する(ステップS1)。入力IF部13は、入力データ100の種別、処理判定を実施する(ステップS2)。具体的には、まず、入力IF部13は、入力データ100からデータ種別判定用のデータを抽出する(ステップS3)。データ種別判定用のデータは、入力データ100の一部もしくは全部である。次に、入力IF部13は、データ種別判定用のデータを含んだデータベースアクセス信号15を入力データ処理判定データベース20へ出力する。入力データ処理判定データベース20は、データ種別判定用のデータに基づいて、検索を実施する(ステップS4)。入力データ処理判定データベース20は、検索結果として処理内容(例示:図5Aのデータ処理)とデータ処理ブロック(例示:図5Aのデータ処理モジュール)を入力IF部13に返答する(ステップS5)。
入力IF部13は、入力データ処理判定データベース20からの検索結果を元に、入力データ100の転送先を判定する(ステップS10)。データ処理ブロック(例示:図5Aのデータ処理モジュール)がハードウェアの場合(テップS10:ハードウェア)、入力IF部13は、入力データ100を該当するハードウェアモジュール61へ転送する(ステップS40)。当該ハードウェアモジュール61は、入力データ100のデータ処理を実施する(ステップS41)。当該ハードウェアモジュール61は、データ処理実施開始後に当該ハードウェアモジュール61が利用されていることを、回路使用通知情報62を用いて統計処理部71に通知する(ステップS42)。当該ハードウェアモジュール61は、データ処理完了時に、データ処理結果に基づいて、次のデータ処理用のデータを生成する(ステップS43)。ハードウェアモジュール61は、ハードウェアモジュール61内に予め設定された次のデータ処理モジュールに関する情報を参照して、次のデータ処理ブロックを決定する(ステップS44)。この場合、ハードウェアモジュール61は、ステップS10をパスして、生成されたデータを該当するデータ処理ブロックへ転送する。データ処理ブロックがハードウェアモジュールの場合はステップS40へ、ソフトウェアモジュールの場合はステップS50へ、出力IF部の場合はステップS20へ進む。
データ処理ブロック(例示:図5Aのデータ処理モジュール)がソフトウェアの場合(ステップS10:ソフトウェア)、入力IF部13は、ソフトウェアモジュール51でデータ処理を実行するためCPU40へ入力データ100を転送する。CPU40は、該当するソフトウェアモジュール51を用いてデータ処理を実施する(ステップS50)。CPU40は、当該ソフトウェアモジュール51が使用されたことを受け、ソフトウェア50内のデータ種別とデータ処理モジュールとの対応テーブル52(図4)を参照して、当該ソフトウェアモジュール51による処理を実行するためのハードウェアモジュール構成情報がハードウェアモジュール構成情報データベース80に存在するかを判定する(ステップS51)。具体的には、図4において、データ処理モジュールの当該ソフトウェアモジュールに対応するハードウェアモジュールがあるか否かを判断する。ハードウェアモジュールが有る場合、対応するハードウェアモジュール構成情報がハードウェアモジュール構成情報データベース80に存在する。
該当するハードウェアモジュール構成情報が存在する場合(ステップS51:Yes)、CPU40は該ハードウェアモジュールのハードウェア生成要求を、管理系バス90を介して再構成可能論理エレメント管理部70に通知する(ステップS52)。本ステップにて動的再構成による該当するデータ処理モジュールのソフトウェアモジュールからハードウェアモジュールへの切り替え要求を通知する。
該当するハードウェアモジュール構成情報が存在しない場合(図2のステップS51:No)、CPU40は、実施した該ソフトウェアモジュールの処理回数をカウントアップし、その処理回数をメモリ50aに格納する(ステップS53)。これは、現時点の構成ではハードウェアモジュール構成情報が存在しないため動的再構成による切り替え要求を実施できないものの、各ソフトウェアモジュールの処理回数を記録しておくことで呼び出し回数の多い処理を把握することができる。その結果、呼び出し回数の多い処理のソフトウェアモジュールに対応するハードウェアモジュール構成情報を新たにハードウェアモジュール構成情報データベース80に追加することで、以降動的再構成による処理切り替えが実行可能となる。
ハードウェアモジュールのハードウェアモジュール構成情報存在判定(ステップS51)後、ソフトウェアモジュール51はデータ処理完了時に、データ処理結果に基づいて、次のデータ処理用のデータを生成する(ステップS54)。ソフトウェアモジュール51は、ソフトウェアモジュール51内に予め設定された次のデータ処理モジュールに関する情報を参照して、次のデータ処理ブロックを決定する(ステップS55)。この場合、ソフトウェアモジュール51は、ステップS10をパスして、生成されたデータを該当するデータ処理ブロックへ転送する。データ処理ブロックがハードウェアモジュールの場合はステップS40へ、ソフトウェアモジュールの場合はステップS50へ、出力IF部の場合はステップS20へ進む。
データ処理ブロック(例示:図5Aのデータ処理モジュール)が出力IF部14の場合(ステップS10:出力IF部)、入力IF部13は、入力データ100を出力IF部14へ転送する(ステップS20)。出力IF部14は、入力データ100から出力データ200を生成する(ステップS21)。出力IF部14は、最後に出力ポート12に出力データ200を出力して(ステップS22)、データ処理を完了する(ステップS23)。
図3は、本発明のデータ処理装置の実施の形態の動作において、再構成可能論理エレメント管理部70の実施するハードウェアモジュール再構成判定のフローチャートである。
まず、再構成可能論理エレメント管理部70は、ステップS52におけるCPU40からハードウェアモジュールm(1≦m≦N)のハードウェア生成要求を受信する(ステップS101)。再構成可能論理エレメント管理部70の資源管理部72は、ハードウェア生成要求回数がハードウェア化開始閾値以上であり、要求されたハードウェアモジュールmが再構築論理エレメントに配置可能かを判定する(ステップS110)。図7に示した資源管理部72の管理情報テーブル78とハードウェアモジュール構成情報データベース80とを参照して判定する。具体的には、資源管理部72は、当該ハードウェアモジュールmのハードウェアモジュール構成情報(ハードウェアモジュール構成情報データベース80)に基づいて、回路配置領域の未使用領域で当該ハードウェアモジュールmが構築可能か否かを判定する。
再構成可能論理エレメント60の未使用論理エレメント(回路配置領域の未使用領域)が不足しているためにハードウェアモジュールmが配置不可能な場合、資源管理部72は、現在設定されているハードウェアモジュールのうち、ハードウェア処理からソフトウェア処理に切り替えて再構成可能論理エレメント60から解放するハードウェアモジュール61を選択する(ステップS120)。図6に示した例では、現在未割り当てのハードウェアモジュール4へのハードウェア生成要求があることを示している。また、割り当て済みのハードウェアモジュールの中ではハードウェアモジュール2が、LRUが一番長く未使用状態が続いていて解放候補となっていることを示している。このほか、各ハードウェアモジュールの使用回数が少ないものや、各ハードウェアモジュールの使用時間の短いものを解放候補としても良い。これらは、統計処理部71が把握している。資源管理部72は、解放するハードウェアモジュール61を決定した後、選択されたハードウェアモジュール61を再構成可能論理エレメント60から解放する(ステップS130)。図6の例ではハードウェアモジュール2が解放される。次に、資源管理部72は、ハードウェアモジュールmを再構成可能論理エレメント60に割り当てる(ステップS131)。図6の例ではハードウェアモジュール4が割り当てられる。
割り当て完了後、再構成可能論理エレメント管理部70は、管理情報を更新する(ステップS140)。具体的には、管理情報とは統計処理部71にて管理している管理情報テーブル77(図6)及び資源管理部72にて管理している管理情報テーブル78(図7)である。再構成可能論理エレメント管理部70は、管理情報の更新後、再構成可能論理エレメント更新通知信号75により、入力データ処理判定データベース20を更新して(ステップS150)、処理を完了する(ステップS160)。図6の例では、更新された結果、図5Aから図5Bに更新される。すなわち、図5Aではデータ種別がType2のデータ処理モジュールとしてハードウェアモジュールのハードウェアモジュール2が選択されており、データ種別がType4のデータ処理モジュールとしてソフトウェアモジュールのソフトウェアモジュール4が選択されていた。しかし、動的再構成の結果、データ種別Type2のデータ処理モジュールがソフトウェアモジュール2に、Type4のデータ処理モジュールがハードウェアモジュール4に更新される。
本実施の形態では、再構成可能論理エレメント60内のハードウェアモジュール61の利用回数ないしは利用継続時間を計測する、各ハードウェアモジュール61の利用回数ないしは利用継続時間を各回路使用通知情報62として再構成可能論理エレメント管理部70に通知する、再構成可能論理エレメント管理部70内の統計し処理部71、資源管理部72にて常に新規配置するハードウェアモジュールと解放するハードウェアモジュールを動的に決定しているため、再構成可能論理エレメント60の利用効率を最大化することができる。
本発明は、トラヒック状況に応じて処理内容を変更するネットワーク装置に適用できる。
図1は、本発明のデータ処理装置の実施の形態の構成を示すブロック図である。 図2は、本発明のデータ処理装置の実施の形態の動作を示すフローチャートである。 図3は、本発明のデータ処理装置の実施の形態の動作において、再構成可能論理エレメント管理部70の実施するハードウェアモジュール再構成判定のフローチャートである。 図4は、データ種別とデータ処理モジュールとの対応テーブル52を示したものである。 図5Aは、入力データ処理判定データベース20の構成を示す表である。 図5Bは、更新された入力データ処理判定データベース20の構成を示す表である。 図6は、統計処理部71の管理情報テーブル77を示す表である。 図7は、資源管理部72の管理情報テーブル78を示す表である。
符号の説明
1 データ処理装置
10 インタフェース(IF)部
13 入力IF部
14 出力IF部
20 入力データ処理判定データベース
30 データ転送網
40 CPU
50 ソフトウェア
50a メモリ
51(51−1〜51−Z) ソフトウェアモジュール
53 対応テーブル
60 再構成可能論理エレメント
61(61−1〜61−N) ハードウェアモジュール
70 再構成可能論理エレメント管理部
71 統計処理部
72 資源管理部
77、78 管理情報テーブル
80 ハードウェアモジュール構成情報データベース
90 管理系バス

Claims (18)

  1. 入力データを処理する複数のソフトウェアモジュールを格納するメモリと、
    前記複数のソフトウェアモジュールを実行可能な中央演算装置と、
    動的再構成により、前記複数のソフトウェアモジュールと同等の処理を行う複数のハードウェアモジュールを構成可能な論理エレメントと、
    前記複数のハードウェアモジュールが前記論理エレメントに設定されるときの構成を示す構成情報を格納する第1データベースと、
    データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けた第2データベースと、
    前記入力データの種別に基づいて、前記第2データベースを参照して、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送し、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記入力データを前記中央演算装置へ転送するデータ入力部と、
    前記入力データの処理が終了した時点において、前記第1データベースに、前記ソフトウェアモジュールの処理を実行するためのハードウェアモジュールの構成情報が存在する場合での記ソフトウェアモジュールのハードウェア生成要求回数に基づいて、前記複数のソフトウェアモジュールのうちハードウェアモジュールとして前記論理エレメントに設定する第1ソフトウェアモジュールを決定し、前記第1データベースを参照して、前記第1ソフトウェアモジュールに対応する第1ハードウェアモジュールを前記論理エレメントに設定する管理部と
    を具備する
    データ処理装置。
  2. 請求項1に記載のデータ処理装置において、
    前記第1ハードウェアモジュールは少なくとも一つあり、
    前記管理部は、
    前記入力データの処理が終了した時点での前記論理エレメントに設定されている複数のハードウェアモジュールの各々の使用頻度に基づいて、前記複数のハードウェアモジュールのうち前記論理エレメントから解放する第2ハードウェアモジュールを決定し、
    前記第2ハードウェアモジュールを前記論理エレメントから解放し、前記第1ハードウェアモジュールを前記論理エレメントに設定する
    データ処理装置。
  3. 請求項2に記載のデータ処理装置において、
    前記管理部は、
    前記複数のソフトウェアモジュールのうち、前記ハードウェア生成要求回数の相対的に高いものを前記第1ソフトウェアモジュールとし、
    前記複数のハードウェアモジュールのうち、前記使用頻度の相対的に低いものを前記第2ハードウェアモジュールとする
    データ処理装置。
  4. 請求項2又は3に記載のデータ処理装置において、
    前記使用頻度は、前記複数のハードウェアモジュールの各々の使用回数及び使用時間に基づいて判定される
    データ処理装置。
  5. 請求項2又は3に記載のデータ処理装置において、
    前記使用頻度は、最後にデータ処理が行なわれてからの時間であるLRU時間(Least Recently Used)に基づいて判定される
    データ処理装置。
  6. 請求項2又は3に記載のデータ処理装置において、
    前記使用頻度は、FIFO規律に基づいて判定される
    データ処理装置。
  7. 動的再構成可能な論理エレメントにハードウェアモジュールを設定または解放したとき、当該ハードウェアモジュールの設定状況を把握する管理部と、
    データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付け、前記設定状況に基づいて更新されるデータベースと、
    入力データの種別に基づいて、前記データベースを参照して、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送するデータ入力部と
    を具備し、
    前記データ入力部は、前記入力データの種別に基づいて、前記データベースを参照して、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記ソフトウェアモジュールを実行するように前記入力データを中央演算装置へ転送し、
    前記管理部は、前記入力データの処理が終了した時点において、ハードウェアモジュールが論理エレメントに設定されるときの構成を示す構成情報を格納する他のデータベースに、前記ソフトウェアモジュールの処理を実行するためのハードウェアモジュールの構成情報が存在する場合での前記ソフトウェアモジュールのハードウェア生成要求回数に基づいて、前記ソフトウェアモジュールをハードウェアモジュールとして前記論理エレメントに設定する
    データ処理装置。
  8. 請求項7に記載のデータ処理装置において、
    前記管理部は、
    前記入力データの処理が終了した時点での前記論理エレメントに設定されたハードウェアモジュールの使用頻度に基づいて、前記設定されたハードウェアモジュールの解放を決定する
    データ処理装置。
  9. 請求項1又は7に記載のデータ処理装置において、
    データ出力部を更に具備し、
    前記データ入力部は、外部から前記入力データを受信し、
    前記データ出力部は、前記中央演算装置又は前記ハードウェアモジュールからのデータ処理結果を出力する
    データ処理装置。
  10. データ入力部と中央演算処理装置と管理部とを備えるデータ処理装置を用いたデータ処理方法であって、
    (c)前記データ入力部が、データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けた第2データベースを参照して、前記入力データの種別に基づいて、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送し、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記入力データを前記中央演算装置へ転送するステップと、
    (a)前記管理部が、入力データの処理が終了した時点において、ハードウェアモジュールが前記論理エレメントに設定されるときの構成を示す構成情報を格納する第1データベースに、前記ソフトウェアモジュールの処理を実行するためのハードウェアモジュールの構成情報が存在する場合での記ソフトウェアモジュールのハードウェア生成要求回数に基づいて、メモリに格納された複数のソフトウェアモジュールのうち、動的再構成可能な論理エレメントにハードウェアモジュールとして設定する第1ソフトウェアモジュールを決定するステップと、
    (b)前記管理部が、前記第1データベースを参照して、前記第1ソフトウェアモジュールを第1ハードウェアモジュールとして前記論理エレメントに設定するステップと
    を具備する
    データ処理方法。
  11. 請求項10に記載のデータ処理方法において、
    前記(a)ステップは、
    (a2)前記管理部が、前記入力データの処理が終了した時点での前記論理エレメントの既設の複数のハードウェアモジュールの各々の使用頻度に基づいて、前記既設の複数のハードウェアモジュールのうち前記論理エレメントから解放する第2ハードウェアモジュールを決定するステップと
    を備え、
    前記(b)ステップは、
    (b1)前記管理部が、前記第2ハードウェアモジュールを前記論理エレメントから解放し、前記第1ハードウェアモジュールを前記論理エレメントに設定するステップを備える
    データ処理方法。
  12. 請求項11に記載のデータ処理方法において、
    前記(a1)ステップは、
    (a11)前記管理部が、前記複数のソフトウェアモジュールのうち、前記ハードウェア生成要求回数の相対的に高いものを前記前記第1ソフトウェアモジュールとするステップを含み、
    前記(a2)ステップは、
    (a21)前記管理部が、前記既設の複数のハードウェアモジュールのうち、前記使用頻度の相対的に低いものを前記第2ハードウェアモジュールとするステップを含む
    データ処理方法。
  13. 請求項11又は12に記載のデータ処理方法において、
    前記使用頻度は、前記既設の複数のハードウェアモジュールの各々の使用回数及び使用時間に基づいて判定される
    データ処理方法。
  14. 請求項11又は12に記載のデータ処理方法において、
    前記使用頻度は、最後にデータ処理が行なわれてからの時間であるLRU時間(Least Recently Used)に基づいて判定される
    データ処理方法。
  15. 請求項11又は12に記載のデータ処理方法において、
    前記使用頻度は、FIFO規律に基づいて判定される
    データ処理方法。
  16. 管理部とデータ入力部とを備えるデータ処理装置を用いたデータ処理方法であって、
    (a)前記管理部が、動的再構成可能な論理エレメントにハードウェアモジュールを設定または解放したとき、当該ハードウェアモジュールの設定状況を把握するステップと、
    (b)前記データ入力部が、データの種別とソフトウェアモジュール及び前記論理エレメントに設定されたハードウェアモジュールのいずれか一方とを関連付けて前記設定状況に基づいて更新されるデータベースを参照して、入力データの種別に基づいて、前記論理エレメントに設定されたハードウェアモジュールが前記入力データの種別に対応する場合、前記入力データを当該ハードウェアモジュールへ転送するステップと、
    (c)前記データ入力部が、前記入力データの種別に基づいて、前記データベースを参照して、前記ソフトウェアモジュールが前記入力データの種別に対応する場合、前記ソフトウェアモジュールを実行するように前記入力データを中央演算装置へ転送するステップを備え、
    (d)前記管理部が、前記入力データの処理が終了した時点において、ハードウェアモジュールが論理エレメントに設定されるときの構成を示す構成情報を格納する他のデータベースに、前記ソフトウェアモジュールの処理を実行するためのハードウェアモジュールの構成情報が存在する場合での前記ソフトウェアモジュールのハードウェア生成要求回数に基づいて、前記論理エレメントに前記ソフトウェアモジュールに対応するハードウェアモジュールを設定するステップと
    を具備する
    データ処理方法。
  17. 請求項16に記載のデータ処理方法において、
    前記(d)ステップは、
    (d1)前記管理部が、前記入力データの処理が終了した時点での前記論理エレメントに設定されたハードウェアモジュールの使用頻度に基づいて、前記設定されたハードウェアモジュールの解放を決定するステップを備える
    データ処理方法。
  18. 請求項10又は16に記載のデータ処理方法において、
    前記データ処理装置がデータ出力部を更に具備し、
    (α)前記データ入力部が、外部から前記入力データを受信するステップと、
    (β)前記データ出力部が、前記中央演算装置又は前記ハードウェアモジュールからのデータ処理結果を出力するステップと
    を更に具備する
    データ処理方法。
JP2006000468A 2006-01-05 2006-01-05 データ処理装置及びデータ処理方法 Expired - Fee Related JP4978006B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006000468A JP4978006B2 (ja) 2006-01-05 2006-01-05 データ処理装置及びデータ処理方法
US11/620,419 US7774591B2 (en) 2006-01-05 2007-01-05 Data processing device and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006000468A JP4978006B2 (ja) 2006-01-05 2006-01-05 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
JP2007183726A JP2007183726A (ja) 2007-07-19
JP4978006B2 true JP4978006B2 (ja) 2012-07-18

Family

ID=38286973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006000468A Expired - Fee Related JP4978006B2 (ja) 2006-01-05 2006-01-05 データ処理装置及びデータ処理方法

Country Status (2)

Country Link
US (1) US7774591B2 (ja)
JP (1) JP4978006B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007207136A (ja) * 2006-02-06 2007-08-16 Nec Corp データ処理装置、データ処理方法、及びデータ処理プログラム
WO2009075336A1 (ja) * 2007-12-12 2009-06-18 National University Corporation Tokyo University Of Agriculture And Technology 情報処理装置、通信カードおよび情報処理方法
US8107939B2 (en) * 2007-12-14 2012-01-31 Microsoft Corporation Software defined radio architecture
JP5876319B2 (ja) * 2012-02-21 2016-03-02 日本電信電話株式会社 サービス提供システム、サービス提供方法、リソースマネージャ、プログラム
JP6228381B2 (ja) * 2012-04-30 2017-11-08 株式会社半導体エネルギー研究所 半導体装置
JP5971214B2 (ja) * 2013-08-16 2016-08-17 富士ゼロックス株式会社 データ処理装置及びデータ処理プログラム
JP6733437B2 (ja) * 2015-09-14 2020-07-29 株式会社リコー データ処理システム及びデータ処理方法
US10516649B1 (en) * 2018-06-27 2019-12-24 Valtix, Inc. High-performance computer security gateway for cloud computing platform
US11012475B2 (en) 2018-10-26 2021-05-18 Valtix, Inc. Managing computer security services for cloud computing platforms

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
JPH0442342A (ja) 1990-06-07 1992-02-12 Koufu Nippon Denki Kk バス調停回路
JP3484941B2 (ja) 1997-09-05 2004-01-06 株式会社日立製作所 計算機システムにおけるメモリの利用方法
US6055650A (en) * 1998-04-06 2000-04-25 Advanced Micro Devices, Inc. Processor configured to detect program phase changes and to adapt thereto
EP1351154A2 (en) 1998-11-20 2003-10-08 Altera Corporation Reconfigurable programmable logic device computer system
US6209077B1 (en) * 1998-12-21 2001-03-27 Sandia Corporation General purpose programmable accelerator board
JP3678270B2 (ja) * 1999-08-25 2005-08-03 富士ゼロックス株式会社 情報処理システムおよび情報処理方法
JP2001067212A (ja) 1999-08-27 2001-03-16 Hitachi Ltd 障害回避情報処理システム
WO2001090887A1 (fr) 2000-05-25 2001-11-29 Fujitsu Limited Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP3636986B2 (ja) * 2000-12-06 2005-04-06 松下電器産業株式会社 半導体集積回路
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
JP3723775B2 (ja) 2002-01-10 2005-12-07 松下電器産業株式会社 データ処理装置
JP3952856B2 (ja) * 2002-05-28 2007-08-01 コニカミノルタホールディングス株式会社 キャッシュ方法
JP2004005110A (ja) 2002-05-31 2004-01-08 Toshiba Corp 情報機器、ランチャプログラム
JP4088763B2 (ja) * 2002-06-13 2008-05-21 コニカミノルタホールディングス株式会社 コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法
US20040216122A1 (en) * 2002-07-23 2004-10-28 Charles Gram Method for routing data through multiple applications
JP2004213183A (ja) * 2002-12-27 2004-07-29 Mazda Motor Corp 制御用プログラムの作成支援プログラム、作成支援方法及び作成支援装置
JP2004343559A (ja) 2003-05-16 2004-12-02 Ip Flex Kk 再構成可能な集積回路ユニットを有するデータ処理装置
JP2004362446A (ja) 2003-06-06 2004-12-24 Mitsubishi Electric Corp 計算機及び計算方法
JP3780457B2 (ja) * 2004-06-07 2006-05-31 株式会社トヨタIt開発センター 信号処理装置、方法、プログラムおよび記録媒体

Also Published As

Publication number Publication date
US20070174605A1 (en) 2007-07-26
US7774591B2 (en) 2010-08-10
JP2007183726A (ja) 2007-07-19

Similar Documents

Publication Publication Date Title
JP4978006B2 (ja) データ処理装置及びデータ処理方法
US11099906B2 (en) Handling tenant requests in a system that uses hardware acceleration components
CN107636637B (zh) 用于使用软处理器执行软件线程的系统和方法
US8898396B2 (en) Software pipelining on a network on chip
US20190213029A1 (en) Fpga-based method for network function accelerating and system thereof
US7958340B2 (en) Monitoring software pipeline performance on a network on chip
US11010198B2 (en) Data processing system having a hardware acceleration plane and a software plane
US8726295B2 (en) Network on chip with an I/O accelerator
US10296392B2 (en) Implementing a multi-component service using plural hardware acceleration components
US8661455B2 (en) Performance event triggering through direct interthread communication on a network on chip
US7873701B2 (en) Network on chip with partitions
US7822945B2 (en) Configuration managing device for a reconfigurable circuit
US20200218453A1 (en) Upgrade management method and scheduling node, and storage system
WO2016168029A1 (en) Providing services in a system having a hardware acceleration plane and a software plane
EP2153333A1 (en) Method and system for managing a plurality of i/o interfaces with an array of multicore processor resources in a semiconductor chip
US8176212B1 (en) Method and system for hierarchical and joinable behavior containers for reconfigurable computing
CN112272933B (zh) 队列控制方法、装置及存储介质
CN101197782B (zh) 一种基于多核处理器的网络设备的控制方法及系统
KR100539907B1 (ko) 지능망교환시스템에서 쓰레드에 의한 호 처리 수행 구조 및방법
WO2024022572A1 (en) A hardware device for automatic detection and deployment of qos policies
JP2002288147A (ja) 分散メモリ型並列計算機およびコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4978006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees