(57)【要約】【課題】少ないハードウェア資源でプロセッサ処理を高速化することが可能なデータ処理装置及びデータ処理方法を提供することにある。【解決手段】本発明によるデータ処理装置は、与えられた処理を実行するプロセッサ部１００と、バス１１３を介してプロセッサ部１００に接続される動的再構成デバイス１０７とを具備し、プロセッサ部１００は、与えられた処理が動的再構成デバイス１０７で実行可能かを判定し、実行可能である場合、動的再構成デバイス１０７に処理の実行要求を発行し、動的再構成デバイス１０７は、実行要求に応答して構成を変更し、処理を実行する。【選択図】図１
2007207136.tif 000002
【特許請求の範囲】
【請求項１】
与えられた処理を実行するプロセッサ部と、
バスを介して前記プロセッサ部に接続される動的再構成デバイスとを具備し、
前記プロセッサ部は、与えられた処理が前記動的再構成デバイスで実行可能かを判定し、実行可能である場合、前記動的再構成デバイスに前記処理の実行要求を発行し、
前記動的再構成デバイスは、前記実行要求に応答して構成を変更し、前記処理を実行する
データ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記動的再構成デバイスは、構成を変更するためのコンフィグ情報を格納する内部コンフィグメモリを有し、
前記プロセッサ部は、前記内部コンフィグメモリ内に、与えられた処理に対応するコンフィグ情報が格納されている場合、前記処理が前記動的再構成デバイスで実行可能であると判定する
データ処理装置。
【請求項３】
請求項２に記載のデータ処理装置において、
前記バスに接続される外部コンフィグメモリとコンフィグ制御部とを更に具備し、
前記コンフィグ制御部は、前記外部コンフィグメモリ内のコンフィグ情報に付与された優先度に応じて、前記外部コンフィグメモリ内のコンフィグ情報を前記内部コンフィグメモリに転送する
データ処理装置。
【請求項４】
請求項２又は３に記載のデータ処理装置において、
前記コンフィグ制御部は、コンフィグ情報に対応する処理の呼び出し回数に応じて、前記外部コンフィグメモリ内のコンフィグ情報を前記内部コンフィグメモリに転送する
データ処理装置。
【請求項５】
請求項２から４いずれか１項に記載のデータ処理装置において、
前記バスに接続され、前記バスをモニタして前記動的再構成デバイスへのアクセスを監視するバスモニタ部を更に備え、
前記プロセッサ部は、前記バスモニタ部の監視結果に基づいて、前記内部コンフィグメモリ内に、与えられた処理に対応するコンフィグ情報が格納されているか否かを判定する
データ処理装置。
【請求項６】
プロセッサ部が、入力されたデータをメモリに格納するステップと、
プロセッサ部が、前記データに対して与えられた処理が、バスを介して前記プロセッサ部に接続される動的再構成デバイスにおいて実行可能かを判定するステップと、
前記動的再構成デバイスで前記処理が実行可能である場合、前記プロセッサ部が、前記動的再構成デバイスに対し前記データに対して前記処理を実行するための要求を発行するステップと、
前記動的再構成デバイスが、前記実行要求に応答して構成を変更し、前記処理を実行するステップとを具備する
データ処理方法。
【請求項７】
請求項６に記載のデータ処理方法において、
プロセッサ部が、前記データに対して与えられた処理が動的再構成デバイスで実行可能かを判定するステップは、
前記プロセッサ部が、前記動的再構成デバイス内に、前記与えられた処理を実行する構成に変更するためのコンフィグ情報が格納されているかどうかを判定するステップを含む
データ処理方法。
【請求項８】
請求項７に記載のデータ処理方法において、
コンフィグ制御部が、前記バスを介して前記プロセッサ部に接続される外部コンフィグメモリ内に格納されたコンフィグ情報に付与された優先度に応じて、前記外部コンフィグメモリ内のコンフィグ情報を前記動的再構成デバイスに転送するステップを更に備える
データ処理方法。
【請求項９】
請求項７又は８に記載のデータ処理方法において、
前記コンフィグ制御部が、コンフィグ情報に対応する処理の呼び出し回数に応じて、前記外部コンフィグメモリ内のコンフィグ情報を前記動的再構成デバイスに転送する
データ処理方法。
【請求項１０】
請求項７から９いずれか１項に記載のデータ処理方法において、
前記バスに接続されたバスモニタ部が、前記バスをモニタして前記動的再構成デバイスへのアクセスを監視するステップを更に備え、
前記プロセッサ部が、前記バスモニタ部の監視結果に基づいて、前記動的再構成デバイス内に、前記与えられた処理に対応するコンフィグ情報が格納されているか否かを判定するステップを備える
データ処理方法。
【請求項１１】
請求項６から１０に記載のデータ処理方法をコンピュータに実行させる
データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ処理に関し、特に再構成可能なロジック回路を用いてデータ処理を実行するプロセッサ処理に関する。
【背景技術】
【０００２】
近年、ネットワーク速度の高速化にともない、プロセッサの性能がボトルネックになっている。このような問題を解決するものとして、従来はプロセッサの処理であった暗号処理やプロトコルスタックの処理をハードウェアにオフロードして、処理の高速化を実現する手段が広く知られている。例えば暗号・復号処理においては、暗号・復号処理を行う専用ハードウェアをプロセッサのバスに接続して、ソフトウェア処理において暗号・復号処理の部分は専用ハードウェアを呼び出して処理を実行する方法がある（非特許文献１）。又、プロセッサの内部に暗号・復号処理を行う専用回路を内蔵する方法もある（非特許文献２参照）。
【０００３】
しかしながら、高速化を実現するためにオフロードされたハードウェアブロックは、その機能を変更することができないため、実現できる機能が限定される。このため、ハードウェアで高速化できる処理が限られ、さまざまな処理への対応ができない。又、プロセッサに入力されるデータの種別によっては、高速化したい処理の対象が異なる場合があり、その場合は単一機能を実現するハードウェアでは効果が得られず、必ずしも処理の高速化が図られるとは限らない。
【０００４】
このため、オフロードされたハードウェア回路を動作中に変更し、様々な処理を実行する動的再構成（リコンフィギアブル）回路が知られている。
【０００５】
公知例として、特開２００３−２０８３０５号公報に、回路の動的再構成に要する時間が処理性能に及ぼす影響を小さく抑えたデータ処理装置が記載されている（特許文献１参照）。
【０００６】
特許文献１に記載のデータ処理装置は、データ処理において、ＣＰＵによる第１のメモリ及び第３のメモリを用いた処理と並行して、制御部が再構成情報用メモリの内容に従って再構成可能ロジック回路を構成する処理を行い、再構成可能ロジック回路の構成が終了した後に、ＣＰＵに代わって再構成可能ロジック回路が第２のメモリ及び第３のメモリを用いて処理を行う。
【０００７】
しかしながら、再構成情報用メモリ領域は限られており、再構成して実行したい処理が多数ある場合、再構成情報用メモリを拡張するか外部メモリを使用して再構成に必要な再構成情報（コンフィグデータ）を保持する必要がある。再構成情報用メモリを拡張すると回路面積が大きくなり、コストが増大する。又、外部メモリ内のコンフィグデータを利用して構成を変更するとコンフィグデータの転送に時間がかかり、処理時間に大きくなって処理性能が低下する。
【０００８】
以下に本発明に関連する技術が示される。
特開２００３−２０８３０５号公報に、情報処理システムの起動時に外部記憶装置内の構成情報及びマイクロ命令を主記憶装置に移動し、その構成情報に基づき起動処理を実行する障害回避情報処理システムが記載されている（特許文献２参照）。
【０００９】
特開平４−０４２３４２号公報に、複数のデータ転送モジュールからのバス使用要求信号を保持し、複数のデータ転送モジュールのバス使用要求の優先度を決定し、その優先度に基づき使用を許可するバス調停回路が記載されている（特許文献３参照）。
【００１０】
特開平１１−０８５６０８号公報に、メモリをいくつかのグループに分け、メモリを割り当てる優先順位を各グループにつけ、メモリの割り当て要求に応答して優先順位の高いグループから領域を割り当てる計算機システムが記載されている（特許文献４参照）。
【非特許文献１】“製品ラインアップ＿６４ビットＶＲシリーズ”［online］、ＮＥＣエレクトロニクス株式会社、[平成１７年７月２８日検索］、インターネット＜ＵＲＬ：http://www.necel.com/micro/product/vr/vr4133/index.htm＞
【非特許文献２】“ＡＥＳ暗号エンジン”［online］、株式会社テクノクリエート、[平成１７年７月２８日検索］、インターネット＜ＵＲＬ：http://www.techno-create.com/hot/aes.html＞
【特許文献１】特開２００３−２０８３０５号公報
【特許文献２】特開２００１−０６７２１２号公報
【特許文献３】特開平４−０４２３４２号公報
【特許文献４】特開平１１−０８５６０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、少ないハードウェア資源でプロセッサ処理を高速化することが可能なデータ処理装置、データ処理方法、及びデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明によるデータ処理装置は、与えられた処理を実行するプロセッサ部（１００、２００）と、バス（１１３）を介してプロセッサ部（１００、２００）に接続される動的再構成デバイス（１０７）とを具備する。プロセッサ部（１００、２００）は、与えられた処理が動的再構成デバイス（１０７）で実行可能かを判定し、実行可能である場合、動的再構成デバイス（１０７）に処理の実行要求を発行し、動的再構成デバイス（１０７）は、実行要求に応答して構成を変更し、処理を実行する。
【００１４】
このように、バス（１１３）を介して接続される動的再構成デバイス（１０７）において処理が可能な場合のみ動的再構成デバイス（１０７）で処理を実行し、不可能な場合は、プロセッサ部（１００、２００）内の処理部（１０１−１〜ｎ）において処理を実行するため、プロセッサ部（１００、２００）における処理の負担が軽減される。
【００１５】
動的再構成デバイス（１０７）は、構成を変更するためのコンフィグ情報を格納する内部コンフィグメモリ（１０９）を有している。プロセッサ部（１００、２００）は、内部コンフィグメモリ（１０９）内に、与えられた処理に対応するコンフィグ情報が格納されている場合、与えられた処理が動的再構成デバイス（１０７）で実行可能であると判定する。動的再構成デバイス（１０７）は、外部装置内、例えば外部コンフィグメモリ（１１１）内のコンフィグ情報を使用して構成を変更して処理するよりも、内部コンフィグメモリ（１０９）内のコンフィグ情報を使用して構成を変更して処理を実行する方が、処理速度は速い。従って、プロセッサ部（１００、２００）は、内部コンフィグメモリ（１０９）内に実行すべき処理に対応するコンフィグ情報がある時に、当該処理の実行要求を動的再構成デバイス（１０７）に発行することで、処理速度の向上が期待できる。
【００１６】
又、バス（１１３）に接続される外部コンフィグメモリ（１１１）とコンフィグ制御部（１０５、２０５）とを更に具備することが好ましい。コンフィグ制御部（１０５、２０５）は、外部コンフィグメモリ（１１１）内のコンフィグ情報に付与された優先度（３０１）に応じて、外部コンフィグメモリ（１１１）内のコンフィグ情報を内部コンフィグメモリ（１０９）に転送する。このため、優先度の高い（所定の優先度より高い）コンフィグのみを内部コンフィグメモリ（１０９）に格納することができる。
【００１７】
更に、前記コンフィグ制御部（１０５、２０５）は、コンフィグ情報に対応する処理の呼び出し回数に応じて、外部コンフィグメモリ（１１１）内のコンフィグ情報を内部コンフィグメモリ（１０９）に転送することが好ましい。このため、実行頻度の高い処理に対応するコンフィグ情報を内部コンフィグメモリ（１０９）に格納しておくことができる。すなわち、実行頻度の高い処理を、動的構成デバイス（１０７）に実行させることができ、プロセッサ部の負担を軽減することができる。
【００１８】
更に、バス（１１３）に接続され、バス（１１３）をモニタして動的再構成デバイス（１１７）へのアクセスを監視するバスモニタ部（２０４）を備えることが好ましい。この際、プロセッサ部（１００、２００）は、バスモニタ部（２０４）の監視結果に基づいて、内部コンフィグメモリ（１０９）内に、与えられた処理に対応するコンフィグ情報が格納されているか否かを判定する。このように、コンフィグ情報の転送状況をプロセッサ部（１００、２００）の外部で行うことで、更にプロセッサ部（１００、２００）の負担を軽減することができる。
【００１９】
本発明によるデータ処理装置は、このような構成により、プロセッサ部（１００、２００）において処理を実行しつつ、動的再構成デバイス（１０７）の構成を切り替えながら処理を実行することができる。
【発明の効果】
【００２０】
本発明によるデータ処理装置、データ処理方法、及びデータ処理プログラムによれば、少ないハードウェア資源でプロセッサ処理を高速化することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して、本発明にデータ処理装置の実施の形態が説明される。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
【００２２】
（第１の実施の形態）
（構成）
図１は、本発明によるデータ処理装置の第１の実施の形態における構成を示すブロック図である。図１を参照して、本発明によるデータ処理装置は、処理対象となるデータの入出力処理を行う入出力処理部１０４と、入力されたデータの処理を実行するためのプロセッサ部１００と、回路構成を数十ナノ秒のオーダで切り替えながら実行することが可能な動的再構成回路を含む動的再構成デバイス１０７と、動的再構成回路の構成を変更するための設定情報（コンフィグ）を格納しておくための外部コンフィグメモリ１１１と、外部コンフィグメモリ１１１の内容を動的再構成デバイス１０７へ転送するためのコンフィグ制御部１０５とを備える。これらの各デバイスはバス１１３によって相互に接続される。バスとしては、プロセッサのローカルバスや標準規格であるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）などがある。入出力処理部１０４は、例えばネットワーク装置におけるイーサネット（登録商標）デバイスなどが使用される。
【００２３】
プロセッサ部１００は、動的再構成デバイス１０７で実行できない処理を実行する第１処理部１０１−１〜第ｎ処理部１０１−ｎと、外部コンフィグメモリ１１１内のコンフィグの使用履歴（動的再構成デバイス１０７における処理履歴）や使用優先度、動的再構成デバイス１０７におけるコンフィグの使用現況等を管理するコンフィグ管理部１０３と、入出力処理部１０４から入力されたデータを処理する際、動的再構成デバイス１０７で処理可能かどうかをコンフィグ管理部１０３が有する管理情報を基に判断するオフロード処理判定部１０２とを備える。
【００２４】
動的再構成デバイス１０７は、回路構成を変更することで処理内容を切り替えることが可能な動的再構成ブロック１０８と、動的再構成ブロック１０８の回路構成を変更するための設定情報（コンフィグ）を格納しておくための内部コンフィグメモリ１０９とから構成される。動的再構成ブロック１０８は、プロセッサ部１００から指定された内部コンフィグメモリ１０９内のコンフィグに基づき回路構成を変更する再構成制御部（図示なし）と再構成制御部によって回路構成が変更される動的再構成回路（図示なし）とを備える。内部コンフィグメモリ１０９は、処理１に対応する第１のコンフィグを格納する第１のコンフィグ領域１１０−１〜処理ｍに対応する第ｍのコンフィグを格納する第ｍのコンフィグ領域１１０−ｍを有し、最大ｍ個のコンフィグがそれぞれの処理に対応付けられて格納される。この際、処理内容を識別する識別子に対応付けられて格納されることが好ましい。又、内部コンフィグメモリ１０９に格納されるコンフィグについては動的再構成ブロック１０８を数十ナノ秒のオーダで切り替えることが可能である。
【００２５】
外部コンフィグメモリ１１１には、ｎ（＞ｍ）個のコンフィグを格納できる領域を有しており、各領域には、動的再構成デバイス１０７で実行可能なｎ個の処理の各々に対応する第１のコンフィグ１１２−１〜第ｎのコンフィグ１１２−ｎが格納されている。この際、処理内容を識別するコンフィグ内容（あるいは、コンフィグを識別する識別子）に対応付けられて格納されていることが好ましい。コンフィグ制御部１０５は、プロセッサ部１００内のコンフィグ管理部１０３からの転送要求に応答し、コンフィグ管理テーブル３００に記録されている利用頻度に基づき外部コンフィグメモリ１１１内のコンフィグを内部コンフィグメモリ１０９に転送する。コンフィグ制御部１０５は、例えばDMAC（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌｌｅｒ）が利用できる。
【００２６】
コンフィグ管理部１０３は、コンフィグの管理情報として、各処理に対応するコンフィグの外部コンフィグメモリ１１１から内部コンフィグメモリ１０９への転送状況、使用回数、及び優先度等の処理状況（処理履歴）を管理する処理管理テーブル３００と、内部コンフィグメモリ１０９内のコンフィグ領域の使用状況を管理するためのコンフィグメモリ管理テーブル３０４とを有している。
【００２７】
図３（ａ）は、本発明に係る処理管理テーブル３００の構成図である。図３（ａ）を参照して、処理管理テーブル３００は、外部コンフィグメモリ１１１内の第１の処理から第ｎの処理について、処理を動的再構成デバイス１０７で実行するための優先度３０１と、動的再構成デバイス１０７の内部コンフィグメモリ１０９にコンフィグが格納されているかどうかを示す転送状況３０２と、プロセッサ部１００からの処理の呼び出し回数３０３が記録される。
【００２８】
図３（ｂ）は、本発明に係るコンフィグメモリ管理テーブル３０４の構成図である。図３（ｂ）を参照して、コンフィグメモリ管理テーブル３０４は、動的再構成デバイス１０７の内部コンフィグメモリ１０９におけるコンフィグ領域１１０の使用／未使用の情報３０５と、使用しているコンフィグ領域に格納されているコンフィグに対応する処理の内容が判断できる情報（コンフィグ内容）３０６が記録される。このコンフィグ内容３０６はコンフィグを識別する識別子でもよいし、この識別子に対応付けられた情報でもよい。
【００２９】
（動作）
図４及び図５を参照して、本発明によるデータ処理装置の実施の形態におけるデータ処理及びコンフィグ管理処理の動作が説明される。本説明では、受信したデータに対して、第１の処理および第２の処理を実行する場合について説明される。
【００３０】
（データ処理動作）
図４は、本発明によるデータ処理装置のデータ処理の動作を示すフロー図である。図４を参照して、入出力処理部１０４で受信したデータは、メモリ１０６に格納される。入出力処理部１０４は、プロセッサ部１００にデータを受信したことが通知する（ステップＳ４００）。
【００３１】
プロセッサ部１００は、内部に備えるプログラムカウンタ（図示なし）に応答して、受信したデータに対し第１の処理を実行するための指令（呼び出し指令）をオフロード処理判定部１０２に発行する（ステップＳ４０１）。呼び出し指令を受け付けたオフロード処理判定部１０２は、コンフィグ管理部１０３で管理している処理管理テーブル３００を参照して、動的再構成デバイス１０７で第１の処理が実行可能かどうかを判断する（ステップＳ４０２）。詳細には、処理管理テーブル３００の第１の処理に対応する転送状況３０２を参照して、第１の処理に対応するコンフィグが動的再構成デバイス１０７の内部コンフィグメモリ１０９に転送されているか否かを確認する。
【００３２】
ステップＳ４０２において、第１の処理に対応する転送状況３０２が“転送中”、すなわち動的再構成デバイス１０７で第１の処理が実行可能である場合（ステップＳ４０２Ｙｅｓ）、内部コンフィグメモリ１０９の第１の処理に対応するコンフィグを動的再構成ブロック１０８に適用して第１の処理を実行する（ステップＳ４０３）。詳細には、オフロード処理判定部１０２は、第１の処理に対応するコンフィグの識別子とともに第１の処理の実行指令を動的再構成デバイス１０７に発行する。実行指令とコンフィグの識別子を受け取った動的再構成デバイス１０７の動的再構成ブロック１０８は、識別子に対応するコンフィグを内部コンフィグメモリ１０９から抽出し、これを用いて動的再構成回路を再構成し、メモリ１０６にあるデータに対し第１の処理を実行する。動的再構成デバイス１０７は、第１の処理を終了すると、実行結果をメモリ１０６に格納し、処理完了をプロセッサ部１００に通知する。
【００３３】
動的再構成デバイス１０７から、第１の処理に関する処理完了の通知を受け付けると、プロセッサ部１００のコンフィグ管理部１０３は、処理管理テーブル３００の呼び出し回数３０３を更新する（第１の処理に対する呼び出し回数を１つ増加する）（ステップＳ４０４）。
【００３４】
ステップＳ４０２において、第１の処理に対応する転送状況３０２が“転送していない”、すなわち動的再構成デバイス１０７で第１の処理が実行可能でない場合（ステップＳ４０２Ｎｏ）、プロセッサ部１００の第１の処理に対応する第１処理部１０１−１で処理を実行する（ステップＳ４０５）。第１処理部１０１−１は第１の処理を終了すると、実行結果をメモリ１０６に格納し、処理完了をコンフィグ管理部１０３に通知する。
【００３５】
第１処理部１０１−１から、第１の処理に関する処理完了の通知を受け付けると、コンフィグ管理部１０３は、処理管理テーブル３００の呼び出し回数３０３を更新する（第１の処理に対する呼び出し回数を１つ増加する）（ステップＳ４０４）。
【００３６】
プロセッサ部１００は、受信したデータに対する処理がすべて終了したかを判定する（ステップＳ４０７）。ここでは、第２の処理を行う必要があるため、プロセッサ部１００は、内部に備えるプログラムカウンタ（図示なし）に応答して、受信したデータに対し第２の処理を実行するための指令（呼び出し指令）をオフロード処理判定部１０２に発行する（ステップＳ４０１）。第２の処理に関するフローは、第１の処理に関するフローと同様であるため省略される。ステップＳ４０７において、実行すべき処理がない場合、受信したデータに対する処理を終了し、処理結果を入出力装置から外部装置へ送信する（ステップＳ４０８）
【００３７】
以上のように、本発明によるデータ処理装置は、プロセッサ部１００に入力されたデータに対して実行される各処理毎に動的再構成デバイス１０７で処理可能かどうかを判定する。そして、動的再構成デバイス１０７が保有するコンフィグを用いて構成を変更して処理できる場合に限り、動的再構成デバイス１０７で当該処理を実行させる。すなわち、動的再構成デバイス１０７内にあるコンフィグを使用して動的再構成ブロック１０６の構成を変更して処理が行うため、外部にあるコンフィグを使用して構成するよりも高速に処理を実行することができる。
【００３８】
又、プロセッサ部１００又は動的再構成デバイスで実行された処理は、どちらで実行されても呼び出し回数３０３として履歴に残されるため、コンフィグ管理部１０３は、使用頻度の高い処理を把握することができる。
【００３９】
（コンフィグ管理・転送処理動作）
動的再構成デバイス１０７は、内部のコンフィグメモリ１０９の構成に変更する場合は、高速に変更可能であるが、外部コンフィグメモリ１１１の構成に変更する場合は、切り替えが遅くなる。このため、コンフィグ管理部１０３は、高速に処理を行いたい処理に対応するコンフィグを内部コンフィグメモリ１０９に格納しておくようにするために、処理管理テーブル３００内の情報に基づきコンフィグメモリ管理テーブル３０４を更新して管理し、コンフィグの転送の制御を行う。
【００４０】
図５は、本発明によるデータ処理装置のコンフィグ管理・転送処理の動作を示すフロー図である。図５を参照して、コンフィグ管理部１０３によるコンフィグ管理・転送処理の動作が説明される。
【００４１】
コンフィグ管理部１０３は、処理管理テーブル３００の呼び出し回数３０３を参照して、規定回数以上の呼び出しがある処理があるかどうかを監視する（ステップＳ５００）。この監視は、一定時間毎に実施されても良いし、データ処理の実行の都度行われても良い。
【００４２】
ステップＳ５００において、処理管理テーブル３００に規定回数以上の呼び出し回数を有する処理が記録されていない場合、処理管理テーブル３００で管理している全ての処理の中から動的再構成デバイス１０７で実行すべき処理に対応するコンフィグを、転送候補のコンフィグとして選択する（ステップＳ５１４）。例えば、優先度が高く（優先度が閾値以上、あるいは、優先度の最も高い）、呼び出し回数が多い（呼び出し回数が最も高い）処理に対応するコンフィグを転送候補のコンフィグとして選択する。次に動的再構成デバイス１０７の内部コンフィグメモリ１０９の利用状況をコンフィグメモリ管理テーブル３０４を参照して確認する（ステップＳ５１６）。詳細には、内部コンフィグメモリ１０９の第１のコンフィグ領域１１０−１〜第ｍのコンフィグ領域１１０−ｍに対する使用／未使用を示すフラグ３０５を参照して各領域にコンフィグが格納されているかどうかを判定する。未使用の領域がある場合（ステップＳ５１６Ｙｅｓ）、コンフィグ管理部１０３はコンフィグ制御部１０５に対し、未使用のコンフィグ領域を指定して、コンフィグの転送要求を発行する。この際、転送候補のコンフィグを識別する識別子をコンフィグ制御部１０５に送信する。コンフィグ制御部１０５は、転送要求に応答し、転送候補のコンフィグの識別子に対応するコンフィグを外部コンフィグメモリ１１１から抽出し、指定されたコンフィグ領域に転送、格納する（ステップＳ５１８）。ステップＳ５１６において未使用の領域がない場合（ステップＳ５１６Ｎｏ）、コンフィグ管理処理を終了する。
【００４３】
ステップＳ５００において、処理管理テーブル３００に規定回数以上の呼び出し回数を有する処理が記録されている場合、その処理に対応するコンフィグを転送候補のコンフィグとして選択する（ステップＳ５０２）。規定回数以上の呼び出し回数を有する処理に対応するコンフィグが複数ある場合は、転送候補のコンフィグを複数選択しても構わない。次に、動的再構成デバイス１０７の内部コンフィグメモリ１０９の利用状況をコンフィグメモリ管理テーブル３０４を参照して確認する（ステップＳ５０６）。詳細には、内部コンフィグメモリ１０９の第１のコンフィグ領域１１０−１〜第ｍのコンフィグ領域１１０−ｍに対する使用／未使用を示すフラグ３０５を参照して各領域にコンフィグが格納されているかどうかを判定する。未使用の領域がある場合（ステップＳ５０４Ｙｅｓ）、コンフィグ管理部１０３は、コンフィグ制御部１０５に対し、未使用のコンフィグ領域を指定して、コンフィグの転送要求を発行する。この際、転送候補のコンフィグを識別する識別子をコンフィグ制御部１０５に送信する。コンフィグ制御部１０５は、転送要求に応答し、転送候補のコンフィグの識別子に対応するコンフィグを外部コンフィグメモリ１１１から抽出し、指定されたコンフィグ領域に転送、格納する（ステップＳ５０６）。
【００４４】
ステップＳ５０４において、内部コンフィグメモリ１０９内に未使用の領域がない場合（ステップＳ５０４Ｎｏ）、あるいは、ステップ５０４Ｙｅｓにおいて、転送先に指定されたコンフィグ領域の数が、転送候補のコンフィグの数より少ない場合、コンフィグ管理部１０３は、内部コンフィグメモリ１０９内の書き換え可能な領域を指定し、転送候補のコンフィグをその領域に転送させる。コンフィグ管理部１０３は、処理管理テーブル３００を参照して、動的再構成デバイス１０７において処理可能で（転送状況３０２で確認）、優先度３０１及び呼び出し回数３０３を参照して書き換え可能なコンフィグを選択する（ステップＳ５０８）。例えば優先度が低く、呼び出し回数がある値以下のコンフィグを書き換え可能として判定する。コンフィグ管理部１０３は、書き換え可能と判定したコンフィグの識別子を書き換え要求とともにコンフィグ制御部１０５に発行する。コンフィグ制御部１０５は、書き換え要求に応答して、書き換え可能なコンフィグが格納されているコンフィグ領域１１０に転送候補のコンフィグを転送して書き換える（ステップＳ５１０）。詳細には、コンフィグ制御部１０５は、コンフィグメモリ管理テーブル３０４を参照し、書き換え可能と判定したコンフィグの識別子に対応する（又は一致する）コンフィグ内容３０６から、書き換え可能なコンフィグが格納されているコンフィグ領域を検索する。そして、転送候補のコンフィグの識別子と一致するコンフィグを外部コンフィグメモリ１１１から抽出して、書き換え可能なコンフィグが格納されているコンフィグ領域１１０に転送してコンフィグを書き換える。
【００４５】
ステップＳ５０６、Ｓ５１０、Ｓ５１８において、外部コンフィグメモリ１１１から内部コンフィグメモリ１０９にコンフィグを転送すると、コンフィグ管理部１０３は、処理管理テーブル３００の転送状況３０２を動的再構成デバイス１０７で処理可能であることを示すように変更し呼び出し回数３０３をクリアする。詳細には、コンフィグ管理部１０３は、転送したコンフィグの識別子に対応する処理の転送状況３０２のフラグを“転送”にし、呼び出し回数３０３を０にする。又、コンフィグメモリ管理テーブル３０４の、該当する領域の使用／未使用情報３０５を使用状態に変更し、コンフィグ内容３０６に、転送したコンフィグに対応する処理の内容（又はコンフィグの識別子）を格納して更新する（ステップＳ５１２）。
【００４６】
以上のように、本発明に係るプロセッサ部１００内のコンフィグ管理部１０３によって、動的再構成デバイス１０７に転送されたコンフィグを管理することができる。又、優先度や使用頻度の高いコンフィグを優先的に動的再構成デバイス１０７に転送しておくことができるため、外部コンフィグメモリ１１１からコンフィグを読み込んで使用する頻度が少なくなり、動的再構成デバイス１０７における処理速度を向上することができる。
【００４７】
（第２の実施の形態）
次に、図２を参照して、本発明によるデータ処理装置の第２の実施の形態が説明される。
【００４８】
（構成）
図２は、本発明によるデータ処理装置の第２の実施の形態における構成を示すブロック図である。第２の実施の形態におけるデータ処理装置の構成は、第１の実施の形態におけるコンフィグ管理部１０３がプロセッサ部の外部に設けられた構成である。すなわち、第２の実施の形態におけるデータ処理部は、コンフィグの転送に係るコンフィグ管理処理及びコンフィグ転送制御処理をプロセッサ部の外部で実施する。図２を参照して、第２の実施の形態におけるデータ処理装置は、処理対象となるデータの入出力処理を行う入出力処理部１０４と、入力されたデータの処理を実行するためのプロセッサ部２００と、回路構成を数十ナノ秒のオーダで切り替えながら実行することが可能な動的再構成回路を含む動的再構成デバイス１０７と、動的再構成回路の構成を変更するための設定情報（コンフィグ）を格納しておくための外部コンフィグメモリ１１１と、外部コンフィグメモリ１１１の内容を動的再構成デバイス１０７へ転送するためのコンフィグ管理及び転送制御を行うコンフィグ制御ブロック２０２とを備える。これらの各デバイスはバス１１３によって相互に接続される。ここで、第１の実施の形態と同一符号の構成は、第１の実施の形態で説明された動作及び構成であるので説明は省略される。
【００４９】
プロセッサ部２００は、動的再構成デバイス１０７で実行できない処理を実行する第１処理部１０１−１〜第ｎ処理部１０１−ｎと、入出力処理部１０４から入力されたデータを処理する際、動的再構成デバイス１０７で処理可能かどうかを、コンフィグ制御ブロック２０２から得られた管理情報を基に判断するオフロード処理判定部２０１とを備える。
【００５０】
コンフィグ制御ブロック２０２は、コンフィグメモリ１１１内のコンフィグの使用履歴（動的再構成デバイス１０７における処理履歴）や使用優先度、動的再構成デバイス１０７におけるコンフィグの使用現況等を管理するコンフィグ管理部２０３と、バス１１３をモニタして動的再構成デバイス１０７におけるコンフィグの呼び出し状況を監視するバスモニタ部２０４と、コンフィグ管理部２０３とプロセッサ部２００（オフロード処理判定部２０１）からの情報をもとに、コンフィグの転送を判断し、必要であれば転送処理を行うコンフィグ制御部２０５とを具備する。
【００５１】
（動作）
（データ処理動作）
図４を参照して、第２の実施の形態におけるデータ処理は、第１の実施の形態におけるステップＳ４０２において、オフロード処理判定部２０１が動的再構成デバイス１０７で処理可能かどうかを判断する場合に、コンフィグ制御ブロック２０２へ問い合わせを行う点を除いて、第１の実施の形態と同様である。詳細には、オフロード処理判定部２０１から問い合わせを受けたコンフィグ制御ブロック２０２のコンフィグ管理部２０３は、処理管理テーブル３００の指定された処理に対応する転送状況３０２をオフロード処理判定部２０１に送信する。オフロード処理判定部２０１はこの転送状況３０２を参照して当該処理を動的再構成デバイス１０７で実行可能かどうかを判断する。
【００５２】
（コンフィグ管理・転送処理動作）
図５を参照して、第２の実施の形態におけるコンフィグ管理・転送処理は、第１の実施の形態におけるステップＳ５１２において、コンフィグ管理部２０３が処理管理テーブル３００を更新する際の動作が異なる点を除き、第１の実施の形態と同様である。詳細には、コンフィグ管理部２０３が処理管理テーブル３００の呼び出し回数３０３を更新する際、プロセッサ部２００において処理が実行された場合、処理の呼び出し情報はプロセッサ部２００からの通知に基づき更新し、動的再構成デバイス１０７で処理が実行された場合、処理の呼び出し情報は、バスモニタ機能２０４で収集した情報に基づき更新を行う。
【００５３】
このように、第２の実施の形態におけるデータ処理装置は、コンフィグの管理ブロックをプロセッサの外部に設けることにより、従来プロセッサ処理で行っていたコンフィグ管理処理を外部で行うことが可能となり、プロセッサの負荷を低減できるという効果が得られる。
【００５４】
以上のように、本発明によるデータ処理装置は、動的再構成デバイスを切り替えながら処理を実行し、さらには処理の呼び出し頻度や優先度に応じて外部コンフィグメモリから動的再構成デバイスのコンフィグメモリにコンフィグを転送する。このため、入力されたデータの処理において少ないハードウェア資源で処理の高速化をはかることが可能となる。又、処理の呼び出し頻度や優先度に応じて外部コンフィグメモリから動的再構成デバイスのコンフィグメモリにコンフィグを転送するための仕組みをプロセッサの外部に設けたため、プロセッサの負荷を低減することができる。
【００５５】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【図面の簡単な説明】
【００５６】
【図１】図１は、本発明によるデータ処理装置の第１の実施の形態における構成を示すブロック図である。
【図２】図２は、本発明によるデータ処理装置の第２の実施の形態における構成を示すブロック図である。
【図３】図３（ａ）は、本発明に係る処理管理テーブルの構成の一例である。図３（ｂ）は、本発明に係るコンフィグメモリ管理テーブルの構成の一例である。
【図４】図４は、本発明によるデータ処理装置におけるデータ処理の動作を示すフローである。
【図５】図５は、本発明によるデータ処理装置におけるコンフィグ管理・転送処理の動作を示すフローである。
【符号の説明】
【００５７】
１００、２００：プロセッサ部
１０１−１〜１０１−ｎ：第１〜第ｎ処理部
１０２、２０１：オフロード処理判定部
１０３、２０３：コンフィグ管理部
１０４：入出力処理部
１０５、２０５：コンフィグ制御部
１０６：メモリ
１０７：動的再構成デバイス
１０８：動的再構成ブロック
１０９：コンフィグメモリ
１１０−１〜１１０−ｍ：第１〜第ｍのコンフィグ領域
１１１：外部コンフィグメモリ
１１２−１〜１１２−ｎ：第１〜第ｎの処理のコンフィグ
２０４：バスモニタ機能
３００：処理管理テーブル
３０１：優先度
３０２：転送状況
３０３：呼び出し回数
３０４：コンフィグメモリ管理テーブル
３０５：使用／未使用情報
３０６：コンフィグ内容
【図１】
2007207136.tif 000003
【図２】
2007207136.tif 000004
【図３】
2007207136.tif 000005
【図４】
2007207136.tif 000006
【図５】
2007207136.tif 000007