(57)【特許請求の範囲】
【請求項１】
任意の論理を実装可能な複数のリコンフィギュラブル回路を備えるリコンフィギュラブルプロセッサであって、
プロセッサに入力されるデータを分割して複数の分割データを作成し、該複数の分割データの一部を前記リコンフィギュラブル回路の一つに出力する入力データ分割部と、
前記リコンフィギュラブル回路の一つが出力するデータ及び前記分割部が出力する残りの分割データを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファと、
リタイミング出力バッファからタイミングを揃えて読み出したデータを結合してプロセッサ外部に出力する出力データ結合部と、
前記データがプロセッサに入力されてからプロセッサ外部に出力するまでの時間のうち、前記リコンフィギュラブル回路で演算処理を行っていない時間にリコンフィギュラブル回路に搭載する論理の変更を行うコンフィギュレーション制御部と、
前記入力データ分割部の前段に、前記入力データのフォーマット長と予め指定した値を比較して、超過する場合や、一定期間データ入力が無い場合に、論理変更を許可する論理変更判定部と、を有することを特徴とするリコンフィギュラブルプロセッサ。
【請求項２】
任意の論理を実装可能な複数のリコンフィギュラブル回路を備えるリコンフィギュラブルプロセッサであって、
プロセッサに入力されるデータを分割して複数の分割データを作成して、該複数の分割データの一部を一の前記リコンフィギュラブル回路に出力する入力データ分割部と、
前記入力データ分割部が出力する残りの分割データ及び前記一のリコンフィギュラブル回路の出力データから1つ乃至複数のデータを選択または結合し、他の前記リコンフィギュラブル回路用の処理データを出力する処理データ選択部と、
前記処理データ選択部に入力するバッファとデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング選択バッファと、
前記リコンフィギュラブル回路及び前記入力データ分割部及び前記処理データ選択部の出力データを結合してプロセッサ外部に出力する出力データ結合部と、
前記出力データ結合部に入力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファと、
前記リコンフィギュラブル回路間の接続を直列または並列に設定するコンフィギュレーション制御部と、
前記入力データ分割部の前段に、前記入力データのフォーマット長と予め指定した値を比較して、超過する場合や、一定期間データ入力が無い場合に、前記リコンフィギュラブル回路間の接続の変更を許可する論理変更判定部と、有することを、特徴とするリコンフィギュラブルプロセッサ。
【請求項３】
請求項１記載のリコンフィギュラブルプロセッサであって、
前記複数のリコンフィギュラブル回路の各々に前記コンフィギュレーション制御部と、コンフィギュレーションバッファを備え、
前記コンフィギュレーション制御部が、前記コンフィギュレーションバッファ内に予め蓄積されているコンフィギュレーション情報が指定する論理を各リコンフィギュラブル回路に実装可能なことを特徴とするリコンフィギュラブルプロセッサ。
【請求項４】
請求項１記載のリコンフィギュラブルプロセッサであって、
前記リコンフィギュラブル回路が前記プロセッサ外部から直接読み書き可能なメモリを備えることを特徴とするリコンフィギュラブルプロセッサ。
【請求項５】
任意の論理を実装可能な複数のリコンフィギュラブルプロセッサを備えるリコンフィギュラブル装置であって、
装置に入力されるデータを分割して複数の分割データを作成し、該複数の分割データの一部を前記リコンフィギュラブルプロセッサの一つに出力する入力データ分割部と、
前記リコンフィギュラブルプロセッサの一つが出力するデータ及び前記分割部が出力する残りの分割データを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファと、
前記リタイミング出力バッファからタイミングを揃えて読み出したデータを結合して装置外部に出力する出力データ結合部と、
前記データが該リコンフィギュラブル装置に入力されてから出力されるまでの時間のうち、前記リコンフィギュラブルプロセッサが演算処理を行わない時間に、リコンフィギュラブルプロセッサに搭載する論理の変更を行うコンフィギュレーション制御部と、
前記入力データ分割部の前段に、前記入力データのフォーマット長と予め指定した値を比較して、超過する場合又は、一定期間データ入力が無い場合に論理変更を許可する論理変更判定部と、を有することを特徴とするリコンフィギュラブル装置。
【請求項６】
任意の論理を実装可能な複数のリコンフィギュラブルプロセッサを備えるリコンフィギュラブル装置であって、
装置に入力されるデータを分割して複数の分割データを作成し、複数の前記分割データの一部を一の前記リコンフィギュラブルプロセッサに出力する入力データ分割部と、前記入力データ分割部が出力する残りの分割データ及び前記一のリコンフィギュラブルプロセッサの出力データから1つ乃至複数のデータを選択または結合し、他の前記リコンフィギ
ュラブルプロセッサ用の処理データを出力する処理データ選択部と、前記処理データ選択部に入力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング選択バッファと、前記リコンフィギュラブルプロセッサ及び前記入力データ分割部及び前記処理データ選択部の出力データを結合して装置外部に出力する出力データ結合部と、前記出力データ結合部に入力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファを備え、
前記リコンフィギュラブルプロセッサ間の接続を直列または並列に設定する接続変更部と、
前記入力データ分割部の前段に、前記入力データのフォーマット長と予め指定した値を比較して、超過する場合又は、一定期間データ入力が無い場合に、前記リコンフィギュラブルプロセッサ間の接続の変更を許可する論理変更判定部と、
を有することを特徴とするリコンフィギュラブル装置。
【請求項７】
請求項５記載のリコンフィギュラブル装置であって、
前記複数のリコンフィギュラブルプロセッサの各々にリコンフィギュレーション制御部と、該リコンフィギュレーション制御部毎に1つまたは複数のコンフィギュレーションバ
ッファを備え、
前記リコンフィギュレーション制御部が、前記コンフィギュレーションバッファ内に予め蓄積されているコンフィギュレーション情報が指定する論理を各リコンフィギュラブルプロセッサに実装可能なことを特徴とするリコンフィギュラブル装置。
【請求項８】
請求項５記載のリコンフィギュラブル装置であって、
前記リコンフィギュラブルプロセッサが前記装置外部から直接読み書き可能なメモリを備えることを特徴とするリコンフィギュラブル装置。
【請求項９】
請求項１記載のリコンフィギュラブルプロセッサであって、
ネットワーク回線を流れるパケットの一部または全てを入力データとして入力し、パケット毎に異常の種類を判定して、異常種別判定結果を出力する論理を実装した１つまたは複数のリコンフィギュラブル回路と、パケットの一部または全てと前記異常種別判定結果を入力データとして入力し、パケット毎に通過または廃棄と判定して、通過/廃棄判定結
果を出力する論理を実装した１つまたは複数のリコンフィギュラブル回路を備えることを特徴とするリコンフィギュラブルプロセッサ。
【請求項１０】
請求項５記載のリコンフィギュラブル装置であって、
ネットワーク回線を流れるパケットの一部または全てを入力データとして入力し、パケット毎に異常の種類を判定して、異常種別判定結果を出力する論理を実装した１つまたは複数のリコンフィギュラブルプロセッサと、パケットの一部または全てと前記異常種別判定結果を入力データとして入力し、パケット毎に通過または廃棄と判定して、通過/廃棄
判定結果を出力する論理を実装した１つまたは複数のリコンフィギュラブルプロセッサを備えることを特徴とするリコンフィギュラブル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギュラブルプロセッサとリコンフィギュラブル装置に関する。
【背景技術】
【０００２】
近年、プロセッサに、リアルタイムで常時入力されるデータを高速演算する性能だけでなく、搭載論理を容易に変更できる高い汎用性が求められるようになった。
【０００３】
例えば、ネットワークセキュリティ分野で使用するプロセッサには、リアルタイムで常時入力される通信データを高速演算する性能と共に、通信データの異常を検出するアルゴリズムや、パターンファイルを頻繁に更新できる汎用性が要求されている。
【０００４】
また、映像処理分野で使用するプロセッサにも、リアルタイムで常時入力される映像データを高速演算する性能と共に、符号／複合化，ダウンコンバート，著作権情報付加，分割，合成，フォーマット変換等の処理を複数組み合わせて、映像データに対して幾通りもの処理を行う汎用性が必要とされている。
【０００５】
ところが、搭載論理を容易に変更できる高い汎用性は、専用回路を搭載したASICでは得られないという問題があった。その一方で、リアルタイムデータの高速演算性能は、汎用プロセッサでは得られないという問題があった。
【０００６】
そこで、上記の２つの性能を同時に実現するプロセッサとして、Reconfigurable Processor (RP)と呼ばれるプロセッサが開発され、注目を集めている。大きく分けて、AND-OR方式、Look Up Table(LUT)方式、演算器方式の３方式が開発されている。
【０００７】
AND-OR方式は、論理エレメントとして、AND-ORロジックアレイを使用する方式である。論理単位が小さいため、論理の高密度化が可能である（特許文献１参照）。
【０００８】
LUT方式は、論理エレメントとして、Synchronous Random Access Memory(SRAM)からなるLUTを使用する方式である。LUTに入力信号毎の値を予め記録することで高度なランダムロジックを実現する（特許文献２参照）。
【０００９】
演算器方式は、論理エレメントとして、演算，リタイミング，メモリなど機能が予め指定された演算器を使用する方式である。Dynamic Reconfigurable Processor(DRP)と呼ばれる。1クロックで搭載論理を変更することが出来、高い汎用性を持つ（特許文献３参照）。
【００１０】
本プロセッサは、演算，リタイミング，メモリ等の機能を備える論理エレメントと、各論理エレメント間を自由に接続可能なバスから構成されるリコンフィギュラブル回路を備え、論理エレメント間接続に従ってパイプライン式にデータ処理を行う。更に、本リコンフィギュラブル回路の搭載論理は、論理エレメント間接続の変更により自由に構成し直すことができる。これにより、本プロセッサは、高速処理性能と共に、高い汎用性を実現している。
【００１１】
しかし、本プロセッサは、パイプライン式にデータ演算を行っているため、リコンフィギュラブル回路の搭載論理の更新をする際、回路内部を流れていたデータが破壊され、入力データを失うという問題があった。
【００１２】
そこで、入力データを失うことなく、リコンフィギュラブル回路の搭載論理を変更する方式が提案されている。現用と予備の2つのリコンフィギュラブル回路をスイッチで切り替えることでデータ損失の無い搭載論理の変更を実現する方式や、入力バッファで入力データを蓄積して、リコンフィギュラブル回路内にデータが無くなった時点で搭載論理の変更を行う方式などが提案されている（非特許文献１参照）。
【００１３】
【特許文献１】US4609986
【００１４】
【特許文献２】US4642487
【特許文献３】WO02/095946
【非特許文献１】甲斐英則、山田博希、“パケット転送処理における無瞬断リコンフィギュレーション法の検討”、電子情報通信学会ソサイエティ大会、B-6-150、Sept.2003
【発明の開示】
【発明が解決しようとする課題】
【００１５】
近年、ネットワークセキュリティ分野や映像処理分野で使用するプロセッサに、リアルタイムで常時入力されるデータを高速演算する性能だけでなく、搭載論理を容易に変更できる高い汎用性が求められるようになった。
【００１６】
ところが、搭載論理を容易に変更できる高い汎用性は、専用回路を搭載したASICでは得られないという問題があった。その一方で、リアルタイムデータの高速演算性能は、汎用プロセッサでは得られないという問題があった。
【００１７】
そこで、入力データの高速処理性能だけでなく、搭載論理を容易に変更できる高い汎用性を備えるReconfigurable Processor (RP)が開発された。
【００１８】
しかし、本プロセッサは、パイプライン式にデータ処理を行っているため、搭載論理の変更を行う際には、データの入力を停止し、内部を流れているデータが全て処理され、出力されるを待つ必要があった。そのため、データの入力を停止している間は処理を行えず、入力データを失うという問題があった。
【００１９】
そのため、入力データを失うことなく、リコンフィギュラブル回路の搭載論理を変更する方式が提案された。現用と予備の2つのリコンフィギュラブル回路をスイッチで切り替えることでデータ損失の無い搭載論理の変更を実現する方式や、入力バッファで入力データを蓄積して、リコンフィギュラブル回路内にデータが無くなった時点で搭載論理の変更を行う方式などが提案されている。
【００２０】
しかし、これらの2つ方式には、それぞれ以下のような問題があった。
【００２１】
現用と予備の2つのリコンフィギュラブル回路をスイッチで切り替えることでデータ損失の無い搭載論理の変更を実現する方式では、必要なリコンフィギュラブル回路が2倍となる。そのため、実装が高コストになるという問題があった。
【００２２】
入力バッファで入力データを蓄積して、リコンフィギュラブル回路内にデータが無くなった時点で搭載論理の変更を行う方式では、入力データをバッファに蓄積している間は、データの入力および演算処理が停止しているため、搭載論理の変更を行った時のデータ演算処理性能が劣化するという問題があった。
【００２３】
そこで、本願の目的は、以上の問題点を解決するために、入力されるデータの損失が無く、尚且つデータ演算処理性能の劣化が無い論理変更を実現するリコンフィギュラブルプロセッサ及び装置を提供することである。
【課題を解決するための手段】
【００２４】
本願のリコンフィギュラブルプロセッサまたは装置は、「発明が解決しようとする課題」の欄に述べた課題を解決するために、以下の手段を有する。
【００２５】
本プロセッサまたは装置は、任意の論理を実装可能な1つ乃至複数のリコンフィギュラブルな演算手段を備え、
前記プロセッサまたは装置に入力されるデータを分割して複数の分割データを作成し、該出力する入力データ分割部と、前記リコンフィギュラブルな演算手段及び前記入力データ分割部が出力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファと、リタイミング出力バッファからタイミングを揃えて読み出したデータを結合してプロセッサ外部に出力する出力データ結合部を備え、
リコンフィギュラブルな演算手段が演算処理を行わない時間に前記リコンフィギュラブルな演算手段に搭載する論理の変更を行う手段を備える。
【００２６】
更に、本プロセッサまたは装置は、入力されるデータを分割して複数の分割データを作成し、該複数の分割の一部を前記リコンフィギュラブルな演算手段に出力する入力データ分割部と、前記入力データ分割部及び前記リコンフィギュラブルな演算手段の出力データから1つ乃至複数のデータを選択または結合し、処理データを出力する処理データ選択部と、前記処理データ選択部に入力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング選択バッファと、前記リコンフィギュラブルな演算手段または前記入力データ分割部または前記処理データ選択部の出力データを結合してプロセッサ外部に出力する出力データ結合部と、前記出力データ結合部に入力するデータを一時的に蓄積してタイミングを揃えて出力する1つ乃至複数のリタイミング出力バッファを備え、
前記リコンフィギュラブルな演算手段間の接続を直列または並列に自由に設定する手段を備える。
【００２７】
更に、本プロセッサまたは装置は、前記入力データ分割部の前段に、前記入力データのフォーマット長と予め指定した値を比較して、超過する場合や、一定期間データ入力が無い場合に論理変更を許可する論理変更判定部を備える手段を備える。
【００２８】
更に、本プロセッサまたは装置は、1つまたは複数のコンフィギュレーション制御部と、前記コンフィギュレーション制御部毎に1つまたは複数のコンフィギュレーションバッファを備え、
前記コンフィギュレーション制御部が、前記コンフィギュレーションバッファ内に予め蓄積されているコンフィギュレーション情報が指定する論理を前記リコンフィギュラブルな演算手段に実装する手段を備える。
【００２９】
上記以外の本願が解決しようとする課題、その解決手段は、本願の「発明を実施するための最良の形態」の欄および図面で明らかにされる。
【発明の効果】
【００３０】
従来のリコンフィギュラブルプロセッサまたは装置が実現できなかった、入力されるデータの損失が無く、尚且つデータ演算処理性能の劣化が無い論理変更を可能とするリコンフィギュラブルプロセッサまたは装置を実現する。
【００３１】
前記のプロセッサまたは装置は、本願の、入力されるデータのうち、演算に必要なデータだけをリコンフィギュラブルな演算手段に分配する方式と、演算に不必要なデータが入力されているときに、リコンフィギュラブルな演算手段に発生する無演算時間を利用して、リコンフィギュラブルな演算手段の搭載論理を変更する方式によって実現される。
【実施例１】
【００３２】
図1，3〜5を用いて本発明の詳細動作について説明する。
図1には、本発明のリコンフィギュラブルプロセッサ100のブロック図を示す。リコンフィギュラブルプロセッサ100は、入力されるデータ138のフォーマット長と予め指定した値の比較や、データの無入力時間と予め指定した値の比較を行う論理変更判定部139と、入力されるデータ138と同じデータ140を分割して、分割データを出力する入力データ分割部110と、任意の論理を実装可能なリコンフィギュラブル回路130-i (i=1〜n)と、処理中の複数のデータの選択及び合成を行い、新たなデータを出力する処理データ選択部111-i (i=2〜n)と、入力データ分割部110が出力した分割データ141-1-i (i=1〜n)、または処理データ選択部111-iが出力した選択データ141-i-j (i=2〜n, j=1〜n)、またはリコンフィギュラブル回路130-iが出力した演算結果データ144-i (i=1〜n-1)に、予め指定した遅延を与えて処理データ選択部111-iに出力するリタイミング選択バッファ190-i-j (i=1〜n-1, j=1〜n)，191-i (i=1〜n-1)と、処理が完了したデータの合成を行い、プロセッサ外部に最終データ151を出力する出力データ結合部112と、入力データ分割部110が出力した分割データ152、または処理データ選択部ｎ 111-nが出力した選択データ141-n-j (j=1〜n)、またはリコンフィギュラブル回路130-nが出力した演算結果データ144-nのタイミングを揃えて、出力データ結合部に出力するリタイミング出力バッファ123-i (i=1〜n)，122,124と、各リコンフィギュラブル回路130-iの搭載論理を書き換えるコンフィギュレーション制御部113-i (i=1〜n)と、搭載論理を指定するコンフィギュレーション情報を蓄積するためのコンフィギュレーションバッファ121-i-k (i=1〜n，k=1〜m)から構成される。
【００３３】
図3〜5には、リコンフィギュラブル回路のブロック図の例を示す。図3に演算器型リコンフィギュラブル回路300の例を、図4にAND-OR/LUT型リコンフィギュラブル回路400の例を、図5にマルチCPU型リコンフィギュラブル回路500の例を示す。
【００３４】
以下、図1，3〜5の詳細な説明を行う。
【００３５】
図1のリコンフィギュラブルプロセッサ100は、プロセッサ外部から継続的に流入してくるデータ138を受信して、プロセッサ内部で各種処理を行い、プロセッサ外部に処理結果を最終データ151として出力する。
【００３６】
論理変更判定部139は、プロセッサ外部から一定のフォーマットで入力されるデータ138を受信して、フォーマット長が予め指定された値よりも大きいかを判定する。大きい場合は、リコンフィギュラブル回路の搭載論理の変更を許可する命令179を送信する。或いは、データの未入力時間が、予め定めた期間を超過した際に、リコンフィギュラブル回路の搭載論理の変更を許可する命令179を送信する。なお、入力されたデータ138は、予め指定した遅延を発生させた上で、データ140として出力される。
【００３７】
入力データ分割部110は、入力されたデータ140の分割を行う。分割後のデータには、リコンフィギュラブル回路１ 130-1向けに出力される分割データ142-1と、処理データ選択部111-2向けに出力される分割データ141-1-i (i=1〜n)と、出力データ結合部112向けに出力される分割データ152の3種類がある。分割のタイミングは予めセットされたビットパターンによって指定され、分割の範囲は予めセットされたビット範囲及びクロック範囲で指定される。例えば、リアルタイムデータ140が1クロックあたり35ビットでリコンフィギュラブルプロセッサ100に入力される場合、分割のタイミングは、入力データ上位33〜35ビットのビットパターンが”101”となる時から数えて7クロック目などと指定され、分割の範囲は、入力データ下位1〜32ビット3クロック分などと指定される。
【００３８】
リコンフィギュラブル回路i 130-i (i=1〜n)は、回路外部から入力されるデータ142-i (i=1〜n)の処理を予め搭載した論理に従って行い、回路外部に処理結果を演算結果データ144-i (i=1〜n)として出力する。回路内部は、図3〜5に示すように、複数の機能ブロックを、複数のバスで接続した構造となっている。
【００３９】
図3の演算器型リコンフィギュラブル回路300は、演算器型の機能ブロックを備える。各機能ブロックは、8，16，32ビット等、比較的大きなビット入出力を持ち、予め指定された四則演算等を行うEXEブロック311〜315，カウンタ機能を持つCNTブロック321〜325，データ蓄積を行うRAMブロック331〜335，入力データを指定クロック遅延させて出力するDLEブロック341〜345，回路外部とのデータ入出力を行うIOBブロック351〜355等から構成される。各機能ブロックの出力と入力は、クロスバ型スイッチ361〜365，371〜375によって自由に接続することが可能である。
【００４０】
図4のAND-OR/LUT型リコンフィギュラブル回路400は、AND-OR/LUT型の機能ブロックを備える。各機能ブロックは、1，2，4ビット等、比較的小さなビット入出力を持ち、入力ビットパターンに応じて予め指定されたビットパターンを出力するCLBブロック411〜415,421〜425,431〜435,441〜445の他、回路外部とのデータ入出力を行うIOBブロック451〜455等から構成される。各機能ブロックの出力と入力は、クロスバ型スイッチ461〜465，471〜475によって自由に接続することが可能である。
【００４１】
図5のマルチCPU型リコンフィギュラブル回路500は、CPU型の機能ブロックを備える。各機能ブロックは、8，16，32ビット等、比較的大きなビット入出力を持ち、予め指定された命令に従って様々な演算処理を行うCPUブロック511〜515,521〜525,531〜535，データ蓄積を行うRAMブロック531〜535，回路外部とのデータ入出力を行うIOBブロック551〜555等から構成される。各機能ブロックの出力と入力は、クロスバ型スイッチ561〜565，571〜575によって自由に接続することが可能である。
【００４２】
処理データ選択部i 111-i (i=2〜n)は、リタイミング選択バッファからタイミングを揃えて読み込んだ複数のデータ154-i-j (i=1〜n-1, j=1〜n),155-i (i=1〜n-1)の中から、予めセットされた1つまたは複数のデータを選択し、予めセットされたビットパターンによるタイミングで、選択した複数のデータ中の予めセットされたビット範囲及びクロック範囲を結合して、プロセッサ外部に選択データを出力する。出力する選択データには、リコンフィギュラブル回路i 130-i (i=2〜n)向けに出力される選択データ142-i (i=2〜n)と、それ以外に出力される選択データ141-i-j (i=2〜n, j=1〜n)の2種類がある。なお、入力データ155-iは、選択データ141-(i+1)-iとしてそのまま出力される。
【００４３】
リタイミング選択バッファ190-i-j (i=1〜n-1, j=1〜n)は、入力データ分割部110からの分割データ141-1-j (j=1〜n)、または処理データ選択部i 111-i (i=2〜n-1)からの選択データ141-i-j (i=2〜n-1, j=1〜n)を蓄積する。リタイミング選択バッファ191-i (i=1〜n-1)は、リコンフィギュラブル回路i 130-i (i=1〜n-1)からの演算結果データ144-i (i=1〜n-1)を蓄積する。蓄積されたデータは、処理データ選択部i 111-i (i=2〜n)によって、タイミングを揃えてから読み出される。
【００４４】
出力データ結合部112は、リタイミング出力バッファからタイミングを揃えて読み込んだ複数のデータ153,145-i (i=1〜n),150の中から、予めセットされた1つまたは複数のデータを選択し、予めセットされたビットパターンによるタイミングで、選択した複数のデータ中の予めセットされたビット範囲及びクロック範囲を結合して、プロセッサ外部に最終データ151を出力する。
【００４５】
リタイミング出力バッファ122は、入力データ分割部110からの分割データ152を蓄積する。出力バッファ124は、リコンフィギュラブル回路ｎ 130-nからの演算結果データ144-nを蓄積する。リタイミング出力バッファ123-i (i=1〜n)は、処理データ選択部ｎ 111-nからの選択データ141-n-j (j=1〜n)を蓄積する。蓄積されたデータは、出力データ結合部112によって、タイミングを揃えてから読み出される。
【００４６】
コンフィギュレーション制御部113-i (i=1〜n)は、プロセッサ外部の通信部101から、リコンフィギュラブル回路番号と、コンフィギュレーション情報番号から構成されるコンフィギュレーション変更命令181-i (i=1〜n)を受け取ると、各コンフィギュレーション制御部113-iが備えるコンフィギュレーションバッファ121-i-j (i=1〜n, j=1〜m)から、コンフィギュレーション変更命令181-i (i=1〜n)内のコンフィギュレーション情報番号と一致するコンフィギュレーション情報161-i-j (i=1〜n, j=1〜m)を読み出し、コンフィギュレーション情報161-i-jが指定する搭載論理への書き換え命令162i-j (i=1〜n, j=1〜m)を、リコンフィギュラブル回路番号と一致するリコンフィギュラブル回路i 130-i (i=1〜n)に送る。リコンフィギュラブル回路i 130-iは、書き換え命令162i-jに従って搭載論理を書き換える。
【００４７】
なお、コンフィギュレーション変更命令181-i (i=1〜n)は、書込み可能クロック数を含む場合もある。この場合、コンフィギュレーション制御部113-i (i=1〜n)は、論理変更判定部139の搭載論理の変更を許可する命令179を受け取ってから、前記の書込み可能クロック数が経過してから、搭載論理の書き換え命令162-i-jを出力する。
【００４８】
リコンフィギュラブルプロセッサ100は、プロセッサ外部の通信部101から受け取った分割タイミングと分割範囲の情報180を入力データ分割部110にセットし、プロセッサ外部の通信部101から受け取った選択データと結合タイミングと結合範囲の情報184を出力データ結合部112にセットし、プロセッサ外部の通信部101から受け取った選択データと結合タイミングと結合範囲の情報182-i (i=2〜n)を処理データ選択部111-i (i=2〜n)にセットし、プロセッサ外部の通信部101から受け取った指定フォーマット長やデータ無入力継続時間の情報179を論理変更判定部139にセットする。
【００４９】
また、リコンフィギュラブルプロセッサ100は、プロセッサ外部の通信部101から受け取ったコンフィギュレーション情報160-i (i=1〜n)を、コンフィギュレーションバッファ121-i-jに蓄積する。
【００５０】
リコンフィギュラブルプロセッサ100内部のリコンフィギュラブル回路i 130-iが内蔵しているメモリ132-i (i=1〜n)は、プロセッサ外部の通信部101から直接読み書きされる。読み出し時は、通信部101からアドレス番号から構成される読み出し命令186-i (i=1〜n)がメモリに送信され、メモリ132-iから読み出しデータ186-iが返信される。書き込み時は、通信部101からアドレス番号と書き込みデータから構成される書き込み命令186-iがメモリに送信される。
【００５１】
なお、通信部101とリコンフィギュラブルプロセッサ100の間の情報のやりとりは、端末102から通信部101へのコマンド185に従って行われる。
【００５２】
リコンフィギュラブルプロセッサ100は、以上に記載したリコンフィギュラブル回路i 130-i (i=1〜n)と、入力データ分割部110と、リタイミング出力バッファ112と、出力データ結合部112とを備えることにより、入力されるデータのうち、演算に必要なデータだけをリコンフィギュラブル回路に分配し、演算に不必要なデータが入力されているときにデータを分配しないことで、リコンフィギュラブル回路に発生する無演算時間を利用して、リコンフィギュラブル回路の搭載論理を変更する手段を実現する。これにより、従来のリコンフィギュラブルプロセッサまたは装置が実現できなかった、入力されるデータの損失が無く、データ演算処理性能の劣化が無い論理変更を可能とするリコンフィギュラブルプロセッサを実現する。
【００５３】
更に、リコンフィギュラブルプロセッサ100は、処理データ選択部i 111-iと、リタイミング選択バッファ190-i-j, 191-iを備えることで、複数のリコンフィギュラブル回路間の接続を直列または並列に設定することが可能となる。
【００５４】
更に、リコンフィギュラブルプロセッサ100は、以上に記載したコンフィギュレーション制御部113-i (i=1〜n)と、コンフィギュレーションバッファ121-i-j (i=1〜n, j=1〜m)を備えることにより、コンフィギュレーションバッファ内に予め蓄積されているコンフィギュレーション情報が指定する論理を、各リコンフィギュラブル回路に実装することが可能となる。
【００５５】
更に、リコンフィギュラブルプロセッサ100は、以上に記載したメモリ132-i (i=1〜n)を備えることで、プロセッサ内部のメモリを、プロセッサ外部から直接読み書きすることが可能となる。
【実施例２】
【００５６】
図2を用いて本発明の詳細動作について説明する。
【００５７】
図2には、本発明のリコンフィギュラブル装置200のブロック図を示す。リコンフィギュラブル装置200は、入力されるデータ238のフォーマット長と予め指定した値の比較や、データの無入力時間と予め指定した値の比較を行う論理変更判定部239と、入力されるデータ238と同じデータ240を分割して、分割データを出力する入力データ分割部210と、任意の論理を実装可能なリコンフィギュラブルプロセッサ230-i (i=1〜n)と、処理中の複数のデータの選択及び合成を行い、新たなデータを出力する処理データ選択部211-i (i=2〜n)と、入力データ分割部210が出力した分割データ241-1-i (i=1〜n)、または処理データ選択部211-iが出力した選択データ241-i-j (i=2〜n, j=1〜n)、またはリコンフィギュラブルプロセッサ230-iが出力した演算結果データ244-i (i=1〜n-1)に、予め指定した遅延を与えて処理データ選択部211-iに出力するリタイミング選択バッファ290-i-j (i=1〜n-1, j=1〜n)，291-i (i=1〜n-1)と、処理が完了したデータの合成を行い、装置外部に最終データ251を出力する出力データ結合部212と、入力データ分割部210が出力した分割データ252、または処理データ選択部ｎ 211-nが出力した選択データ241-n-j (j=1〜n)、またはリコンフィギュラブルプロセッサ230-nが出力した演算結果データ244-nのタイミングを揃えて、出力データ結合部に出力するリタイミング出力バッファ223-i (i=1〜n)，222,224と、各リコンフィギュラブルプロセッサ230-iの搭載論理を書き換えるコンフィギュレーション制御部213-i (i=1〜n)と、搭載論理を指定するコンフィギュレーション情報を蓄積するためのコンフィギュレーションバッファ221-i-k (i=1〜n，k=1〜m)から構成される。
【００５８】
以下、図2の詳細な説明を行う。
【００５９】
図2のリコンフィギュラブル装置200は、装置外部から継続的に流入してくるデータ238を受信して、装置内部で各種処理を行い、装置外部に処理結果を最終データ251として出力する。
【００６０】
論理変更判定部239は、装置外部から一定のフォーマットで入力されるデータ238を受信して、フォーマット長が予め指定された値よりも大きいかを判定する。大きい場合は、リコンフィギュラブルプロセッサの搭載論理の変更を許可する命令279を送信する。或いは、データの未入力時間が、予め定めた期間を超過した際に、リコンフィギュラブル回路の搭載論理の変更を許可する命令279を送信する。なお、入力されたデータ238は、予め指定した遅延を発生させた上で、データ240として出力される。
【００６１】
入力データ分割部210は、入力されたデータ240の分割を行う。分割後のデータには、リコンフィギュラブルプロセッサ１ 230-1向けに出力される分割データ242-1と、処理データ選択部211-2向けに出力される分割データ241-1-i (i=1〜n)と、出力データ結合部212向けに出力される分割データ252の3種類がある。分割のタイミングは予めセットされたビットパターンによって指定され、分割の範囲は予めセットされたビット範囲及びクロック範囲で指定される。例えば、リアルタイムデータ240が1クロックあたり35ビットでリコンフィギュラブル装置200に入力される場合、分割のタイミングは、入力データ上位33〜35ビットのビットパターンが”101”となる時から数えて7クロック目などと指定され、分割の範囲は、入力データ下位1〜32ビット3クロック分などと指定される。
【００６２】
リコンフィギュラブルプロセッサi 230-i (i=1〜n)は、プロセッサ外部から入力されるデータ242-i (i=1〜n)の処理を予め搭載した論理に従って行い、プロセッサ外部に処理結果を演算結果データ244-i (i=1〜n)として出力する。
【００６３】
処理データ選択部i 211-i (i=2〜n)は、リタイミング選択バッファからタイミングを揃えて読み込んだ複数のデータ254-i-j (i=1〜n-1, j=1〜n),255-i (i=1〜n-1)の中から、予めセットされた1つまたは複数のデータを選択し、予めセットされたビットパターンによるタイミングで、選択した複数のデータ中の予めセットされたビット範囲及びクロック範囲を結合して、装置外部に選択データを出力する。出力する選択データには、リコンフィギュラブルプロセッサi 230-i (i=2〜n)向けに出力される選択データ242-i (i=2〜n)と、それ以外に出力される選択データ241-i-j (i=2〜n, j=1〜n)の2種類がある。なお、入力データ255-iは、選択データ241-(i+1)-iとしてそのまま出力される。
【００６４】
リタイミング選択バッファ290-i-j (i=1〜n-1, j=1〜n)は、入力データ分割部210からの分割データ241-1-j (j=1〜n)、または処理データ選択部i 211-i (i=2〜n-1)からの選択データ241-i-j (i=2〜n-1, j=1〜n)を蓄積する。リタイミング選択バッファ291-i (i=1〜n-1)は、リコンフィギュラブルプロセッサi 230-i (i=1〜n-1)からの演算結果データ244-i (i=1〜n-1)を蓄積する。蓄積されたデータは、処理データ選択部i 211-i (i=2〜n)によって、タイミングを揃えてから読み出される。
【００６５】
出力データ結合部212は、リタイミング出力バッファからタイミングを揃えて読み込んだ複数のデータ253,245-i (i=1〜n),250の中から、予めセットされた1つまたは複数のデータを選択し、予めセットされたビットパターンによるタイミングで、選択した複数のデータ中の予めセットされたビット範囲及びクロック範囲を結合して、装置外部に最終データ251を出力する。
【００６６】
リタイミング出力バッファ222は、入力データ分割部210からの分割データ252を蓄積する。出力バッファ224は、リコンフィギュラブルプロセッサｎ 230-nからの演算結果データ244-nを蓄積する。リタイミング出力バッファ223-i (i=1〜n)は、処理データ選択部ｎ 211-nからの選択データ241-n-j (j=1〜n)を蓄積する。蓄積されたデータは、出力データ結合部212によって、タイミングを揃えてから読み出される。
【００６７】
コンフィギュレーション制御部213-i (i=1〜n)は、装置外部の通信部201から、リコンフィギュラブルプロセッサ番号と、コンフィギュレーション情報番号から構成されるコンフィギュレーション変更命令281-i (i=1〜n)を受け取ると、各コンフィギュレーション制御部213-iが備えるコンフィギュレーションバッファ221-i-j (i=1〜n, j=1〜m)から、コンフィギュレーション変更命令281-i (i=1〜n)内のコンフィギュレーション情報番号と一致するコンフィギュレーション情報261-i-j (i=1〜n, j=1〜m)を読み出し、コンフィギュレーション情報261-i-jが指定する搭載論理への書き換え命令262i-j (i=1〜n, j=1〜m)を、リコンフィギュラブルプロセッサ番号と一致するリコンフィギュラブルプロセッサi 230-i (i=1〜n)に送る。リコンフィギュラブルプロセッサi 230-iは、書き換え命令262i-jに従って搭載論理を書き換える。
【００６８】
なお、コンフィギュレーション変更命令281-i (i=1〜n)は、書込み可能クロック数を含む場合もある。この場合、コンフィギュレーション制御部213-i (i=1〜n)は、論理変更判定部239の搭載論理の変更を許可する命令279を受け取ってから、前記の書込み可能クロック数が経過してから、搭載論理の書き換え命令262-i-jを出力する。
【００６９】
リコンフィギュラブル装置200は、装置外部の通信部201から受け取った分割タイミングと分割範囲の情報280を入力データ分割部210にセットし、装置外部の通信部201から受け取った選択データと結合タイミングと結合範囲の情報284を出力データ結合部212にセットし、装置外部の通信部201から受け取った選択データと結合タイミングと結合範囲の情報282-i (i=2〜n)を処理データ選択部211-i (i=2〜n)にセットし、装置外部の通信部201から受け取った指定フォーマット長とデータ無入力継続時間の情報279を論理変更判定部239にセットする。
【００７０】
また、リコンフィギュラブル装置200は、装置外部の通信部201から受け取ったコンフィギュレーション情報260-i (i=1〜n)を、コンフィギュレーションバッファ221-i-jに蓄積する。
【００７１】
リコンフィギュラブル装置200内部のリコンフィギュラブルプロセッサi 230-iが内蔵しているメモリ232-i (i=1〜n)は、装置外部の通信部201から直接読み書きされる。読み出し時は、通信部201からアドレス番号から構成される読み出し命令286-i (i=1〜n)がメモリに送信され、メモリ232-iから読み出しデータ286-iが返信される。書き込み時は、通信部201からアドレス番号と書き込みデータから構成される書き込み命令286-iがメモリに送信される。
【００７２】
なお、通信部201とリコンフィギュラブル装置200の間の情報のやりとりは、端末202から通信部201へのコマンド285に従って行われる。
【００７３】
リコンフィギュラブル装置200は、以上に記載したリコンフィギュラブルプロセッサi 230-i (i=1〜n)と、入力データ分割部210と、リタイミング出力バッファ212と、出力データ結合部212とを備えることにより、入力されるデータのうち、演算に必要なデータだけをリコンフィギュラブルプロセッサに分配し、演算に不必要なデータが入力されているときにデータを分配しないことで、リコンフィギュラブルプロセッサに発生する無演算時間を利用して、リコンフィギュラブルプロセッサの搭載論理を変更する手段を実現する。これにより、従来のリコンフィギュラブル装置または装置が実現できなかった、入力されるデータの損失が無く、データ演算処理性能の劣化が無い論理変更を可能とするリコンフィギュラブル装置を実現する。
【００７４】
更に、リコンフィギュラブル装置200は、処理データ選択部i 211-iと、リタイミング選択バッファ290-i-j, 291-iを備えることで、複数のリコンフィギュラブルプロセッサ間の接続を直列または並列に設定することが可能となる。
【００７５】
更に、リコンフィギュラブル装置200は、以上に記載したコンフィギュレーション制御部213-i (i=1〜n)と、コンフィギュレーションバッファ221-i-j (i=1〜n, j=1〜m)を備えることにより、コンフィギュレーションバッファ内に予め蓄積されているコンフィギュレーション情報が指定する論理を、各リコンフィギュラブルプロセッサに実装することが可能となる。
【００７６】
更に、リコンフィギュラブル装置200は、以上に記載したメモリ232-i (i=1〜n)を備えることで、装置内部のメモリを、装置外部から直接読み書きすることが可能となる。
【実施例３】
【００７７】
図6と図8を用いて本発明の詳細動作について説明する。
【００７８】
図6には、図1のリコンフィギュラブルプロセッサ100において、n=2とした場合のリコンフィギュラブルプロセッサ600のブロック図を表す。図6の6XXの示すブロックは、図1の1XXの示すブロックと同一の機能を持つ（XXは任意の2桁の正の整数）。
【００７９】
図8には、図6のリコンフィギュラブルプロセッサ600を、ネットワークにおいて、対異常フロー防御用リコンフィギュラブルプロセッサ800として使用する場合のブロック図を示す。1つ目のリコンフィギュラブル回路１ 830-1には、パケット毎に異常の種別を判定する異常フロー判定回路834を搭載し、内蔵メモリ832-1には、フロー統計テーブル835を搭載する。2つ目のリコンフィギュラブル回路２ 830-2には、異常の種別の判定結果に基づいて、パケット毎に通過させるか廃棄するかの判定を行う異常フロー排除回路836を搭載し、内蔵メモリ832-2には、セッションテーブル837を搭載する。
【００８０】
以下、図6と図8の詳細な説明を行う。
【００８１】
図6のリコンフィギュラブルプロセッサ600は、入力データ分割部610において、入力されるデータ640の分割を行う。入力データ分割部610が、リコンフィギュラブル回路１ 630-1向けの分割データ642-1と、処理データ選択部611-2向けの分割データ641-1-i (i=1,2)を出力するようセットし、処理データ選択部611-2が、入力データ654-1-i (i=1,2)を選択データ642-2として出力し、入力データ655-1を選択データ641-2-i (i=1,2)として出力するようにセットした場合、2つのリコンフィギュラブル回路間の接続は並列に設定されたことになる。一方、入力データ分割部610が、リコンフィギュラブル回路１ 630-1向けの分割データ642-1のみを出力するようにセットし、処理データ選択部611が、入力データ655-1を選択データ642-2として出力するようにセットした場合、2つのリコンフィギュラブル回路間の接続は直列に設定されたことになる。
【００８２】
図8の対異常フロー防御用リコンフィギュラブルプロセッサ800は、図6のリコンフィギュラブルプロセッサ600に対異常フロー防御機能を搭載したプロセッサである。なお、対異常フロー防御機能とは、通信ネットワークを流れるパケットを解析し、通信障害の原因となるP2P (Peer to Peer) などの過負荷通信や、Worm，DoS (Denial of Service)，DDoS (Distributed Denial of Service) などのPC (Personal Computer)やルータやサーバの攻撃を目的とした不正通信などの、各種の異常通信を探知して、排除する機能のことである。
【００８３】
論理変更判定部839は、ネットワーク用途に使用する場合、フォーマット長としてパケット長を判定する。受信したパケット内部のIPヘッダフィールド内のパケット長を読み取り、予め指定したパケット長と比較する。例えば、予め指定したパケット長が1000Byteであった場合、パケット長1000Byte以上のパケットが来たとき、リコンフィギュラブルプロセッサの搭載論理の変更を許可する命令879を出力する。
【００８４】
入力データ分割部810は、ネットワークを流れるパケットデータをデータ840として受信すると、パケットデータの一部を分割データ842-1として、1つ目のリコンフィギュラブル回路1 830-1に向けて出力する。また、パケットデータの一部を分割データ841-1-1として、処理データ選択部811-2に向けて出力し、全パケットデータを分割データ852として、出力データ結合部812に出力する。
【００８５】
1つ目のリコンフィギュラブル回路1 830-1に向けて出力される分割データ842-1は、例えば、パケット内部のIPヘッダやTCP/UDPヘッダなどに記載されている送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号，プロトコル番号，パケット長などの情報から構成される。一方、処理データ選択部811-2に向けて出力される分割データ841-1-1は、パケット内部のIPヘッダやTCP/UDPヘッダなどに記載されている送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号，プロトコル番号，パケット長，シーケンス番号，ACK番号などの情報から構成される。
【００８６】
1つ目のリコンフィギュラブル回路１ 830-1が搭載する異常フロー判定回路834は、入力データ分割部810から出力されたパケットデータの一部を解析し、解析結果をフロー統計情報として、メモリ832-1内部に構築されたフロー統計テーブル835に蓄積する。フロー統計テーブル835に蓄積されるフロー統計情報は、送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号などのフロー定義や、フロー定義に合致するパケットの積算数などから構成される。
【００８７】
異常フロー判定回路834は、フロー統計テーブル835に蓄積したフロー統計情報を基に、受信したパケットが、異常か正常かの判定を行う。更に、異常と判定した場合は、その異常の種類を判別する。正常/異常の判定結果及び異常種類の判別結果は、演算結果データ844-1として処理データ選択部811-2に向けて出力される。
【００８８】
処理データ選択部811-2は、受信したパケットデータの一部と、正常/異常の判定結果及び異常種類の判別結果を、選択データ842-2として、2つ目のリコンフィギュラブル回路２ 830-2に向けて出力する。
【００８９】
2つ目のリコンフィギュラブル回路２ 830-2が搭載する異常フロー排除回路836は、処理データ選択部811-2から出力された正常/異常の判定結果及び異常種類の判別結果に応じて、処理データ選択部811-2から出力されたパケットデータの一部を解析し、解析結果をセッション情報として、メモリ832-2内部に構築されたセッションテーブル837に蓄積する。セッションテーブル837に蓄積されセッション情報は、送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号などのフロー定義や、フロー定義に合致するパケットの積算数、接続要求パケットの有無、応答要求パケットの有無、応答パケットの有無などから構成される。
【００９０】
異常フロー排除回路836は、セッションテーブル837に蓄積したセッション情報を基に、受信した全パケットデータを通過させるか、廃棄するかの判定を行う。通過/廃棄の判定結果は演算結果データ844-2として出力する。
【００９１】
出力データ結合部812では、受信した演算結果データ844-2が、通過の判定結果の時に期待されるビット配列となる時のみ、入力データ分割部810から受信した全パケットデータを出力する。これにより、廃棄と判定された場合に、パケットデータの出力が行われなくなる。
【００９２】
対異常フロー防御用リコンフィギュラブルプロセッサ800は、以上に述べた異常フロー判定回路834を搭載するリコンフィギュラブル回路１ 830-1と、異常フロー排除回路836を搭載するリコンフィギュラブル回路２ 830-2を備えることにより実現される。リコンフィギュラブル回路１ 830-1が搭載する異常フロー判定回路834と、リコンフィギュラブル回路２ 830-2が搭載する異常フロー排除回路836は、演算に必要なデータを、最小化して別々に受けとることができる。そのため、例えば、1500Byte長パケットの受信開始から終了までの時間が150クロックであり、異常フロー判定回路が必要とするデータ（1500Byteのうち20Byte）の受信開始から終了までの時間が2クロックで、データが入力されて判定結果が出力されるまでの回路通過時間が100クロックの時、再構成回路1には48クロックの無演算時間が生じる。このような、長パケット入力時に発生する無演算時間を利用して再構成回路1に搭載するアルゴリズムを更新することで、スループット無劣化の無瞬断アルゴリズム更新を実現できる。
【実施例４】
【００９３】
図7と図9を用いて本発明の詳細動作について説明する。
【００９４】
図7には、図2のリコンフィギュラブル装置200において、n=2とした場合のリコンフィギュラブル装置700のブロック図を表す。図7の7XXの示すブロックは、図2の2XXの示すブロックと同一の機能を持つ（XXは任意の2桁の正の整数）。
【００９５】
図9には、図7のリコンフィギュラブル装置700を、対異常フロー防御用リコンフィギュラブル装置900として使用する場合のブロック図を示す。1つ目のリコンフィギュラブルプロセッサ１ 930-1には、パケット毎に異常の種別を判定する異常フロー判定回路934を搭載し、内蔵メモリ932-1には、フロー統計テーブル935を搭載する。2つ目のリコンフィギュラブルプロセッサ２ 930-2には、異常の種別の判定結果に基づいて、パケット毎に通過させるか廃棄するかの判定を行う異常フロー排除回路936を搭載し、内蔵メモリ932-2には、セッションテーブル937を搭載する。
【００９６】
以下、図7と図9の詳細な説明を行う。
【００９７】
図7のリコンフィギュラブル装置700は、入力データ分割部710において、入力されるデータ740の分割を行う。入力データ分割部710が、リコンフィギュラブルプロセッサ１ 730-1向けの分割データ742-1と、処理データ選択部711-2向けの分割データ741-1-i (i=1,2)を出力するようにセットし、処理データ選択部711-2が、入力データ754-1-i (i=1,2)を選択データ742-2として出力し、入力データ755-1を選択データ741-2-i (i=1,2)として出力するようにした場合、2つのリコンフィギュラブルプロセッサ間の接続は並列に設定されたことになる。一方、入力データ分割部710が、リコンフィギュラブルプロセッサ１ 730-1向けの分割データ742-1のみを出力するようにし、処理データ選択部711-2が、入力データ755-1を選択データ742-2として出力するようにした場合、2つのリコンフィギュラブルプロセッサ間の接続は直列に設定されたことになる。
【００９８】
図9の対異常フロー防御用リコンフィギュラブル装置900は、図7のリコンフィギュラブル装置700に対異常フロー防御機能を搭載した装置である。
【００９９】
論理変更判定部939は、ネットワーク用途に使用する場合、フォーマット長としてパケット長を判定する。受信したパケット内部のIPヘッダフィールド内のパケット長を読み取り、予め指定したパケット長と比較する。例えば、予め指定したパケット長が1000Byteであった場合、パケット長1000Byte以上のパケットが来たとき、リコンフィギュラブルプロセッサの搭載論理の変更を許可する命令979を出力する。
【０１００】
入力データ分割部910は、ネットワークを流れるパケットデータをデータ940として受信すると、パケットデータの一部を分割データ942-1として、1つ目のリコンフィギュラブルプロセッサ1 930-1に向けて出力する。また、パケットデータの一部を分割データ941-1-1として、処理データ選択部911-2に向けて出力し、全パケットデータを分割データ952として、出力データ結合部912に出力する。
【０１０１】
1つ目のリコンフィギュラブルプロセッサ1 930-1に向けて出力される分割データ942-1は、例えば、パケット内部のIPヘッダやTCP/UDPヘッダなどに記載されている送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号，プロトコル番号，パケット長などの情報から構成される。一方、処理データ選択部911-2に向けて出力される分割データ941-1-1は、パケット内部のIPヘッダやTCP/UDPヘッダなどに記載されている送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号，プロトコル番号，パケット長，シーケンス番号，ACK番号などの情報から構成される。
【０１０２】
1つ目のリコンフィギュラブルプロセッサ１ 930-1が搭載する異常フロー判定回路934は、入力データ分割部910から出力されたパケットデータの一部を解析し、解析結果をフロー統計情報として、メモリ932-1内部に構築されたフロー統計テーブル935に蓄積する。フロー統計テーブル935に蓄積されるフロー統計情報は、送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号，TCPフラグ番号などのフロー定義や、フロー定義に合致するパケットの積算数などから構成される。
【０１０３】
異常フロー判定回路934は、フロー統計テーブル935に蓄積したフロー統計情報を基に、受信したパケットが、異常か正常かの判定を行う。更に、異常と判定した場合は、その異常の種類を判別する。正常/異常の判定結果及び異常種類の判別結果は、演算結果データ944-1として処理データ選択部911-2に向けて出力される。
【０１０４】
処理データ選択部911-2は、受信したパケットデータの一部と、正常/異常の判定結果及び異常種類の判別結果を、選択データ942-2として、2つ目のリコンフィギュラブルプロセッサ２ 930-2に向けて出力する。
【０１０５】
2つ目のリコンフィギュラブルプロセッサ２ 930-2が搭載する異常フロー排除回路936は、処理データ選択部911-2から出力された正常/異常の判定結果及び異常種類の判別結果に応じて、処理データ選択部911-2から出力されたパケットデータの一部を解析し、解析結果をセッション情報として、メモリ932-2内部に構築されたセッションテーブル937に蓄積する。セッションテーブル937に蓄積されセッション情報は、送信元IPアドレス，宛先IPアドレス，送信元ポート番号，宛先ポート番号などのフロー定義や、フロー定義に合致するパケットの積算数、接続要求パケットの有無、応答要求パケットの有無、応答パケットの有無などから構成される。
【０１０６】
異常フロー排除回路936は、セッションテーブル937に蓄積したセッション情報を基に、受信した全パケットデータを通過させるか、廃棄するかの判定を行う。通過/廃棄の判定結果は演算結果データ944-2として出力する。
【０１０７】
出力データ結合部912では、受信した演算結果データ944-2が、通過の判定結果の時に期待されるビット配列となる時のみ、入力データ分割部910から受信した全パケットデータを出力する。これにより、廃棄と判定された場合に、パケットデータの出力が行われなくなる。
【０１０８】
対異常フロー防御用リコンフィギュラブル装置900は、以上に述べた異常フロー判定回路934を搭載するリコンフィギュラブルプロセッサ１ 930-1と、異常フロー排除回路836を搭載するリコンフィギュラブルプロセッサ２ 930-2を備えることにより実現される。リコンフィギュラブルプロセッサ１ 930-1が搭載する異常フロー判定回路934と、リコンフィギュラブルプロセッサ２ 930-2が搭載する異常フロー排除回路936は、演算に必要なデータを、最小化して別々に受けとることができる。そのため、例えば、1500Byte長パケットの受信開始から終了までの時間が150クロックであり、異常フロー判定回路が必要とするデータ（1500Byteのうち20Byte）の受信開始から終了までの時間が2クロックで、データが入力されて判定結果が出力されるまでの回路通過時間が100クロックの時、再構成回路1には48クロックの無演算時間が生じる。このような、長パケット入力時に発生する無演算時間を利用して再構成回路1に搭載するアルゴリズムを更新することで、スループット無劣化の無瞬断アルゴリズム更新を実現できる。
【実施例５】
【０１０９】
図10〜13には、本発明の対異常フロー防御用リコンフィギュラブルプロセッサ800または対異常フロー防御用リコンフィギュラブル装置900を内部に含むリコンフィギュラブルプロセッサ搭載部を、通信用途に使用する場合の例を示す。
【０１１０】
図10には、対異常フロー防御用リコンフィギュラブルプロセッサ800または対異常フロー防御用リコンフィギュラブル装置900を、リコンフィギュラブルプロセッサ搭載部1020内部に含み、2つの通信データ入出力部1010,1011を備える対異常フロー防御装置1000のブロック図を示す。
【０１１１】
図11には、対異常フロー防御用リコンフィギュラブルプロセッサ800または対異常フロー防御用リコンフィギュラブル装置900を、リコンフィギュラブルプロセッサ搭載部1120内部に含み、パケット転送部1130と、通信データ入出力部1132-k (k=1〜m)を備える対異常フロー防御装置1100のブロック図を示す。
【０１１２】
図12には、対異常フロー防御用リコンフィギュラブルプロセッサ800または対異常フロー防御用リコンフィギュラブル装置900を、リコンフィギュラブルプロセッサ搭載部1240内部に含み、本リコンフィギュラブルプロセッサ搭載部1240を含む対異常フロー防御部1220と、スイッチング部1210と、パケット転送部1230-i (i=1〜n)と、通信データ入出力部1232-i-k (i=1〜n, k=1〜m)を備える通信装置1200のブロック図を示す。
【０１１３】
図13には、対異常フロー防御用リコンフィギュラブルプロセッサ800または対異常フロー防御用リコンフィギュラブル装置900を、リコンフィギュラブルプロセッサ搭載部1340-i (i=1〜n)内部に含み、本リコンフィギュラブルプロセッサ搭載部1340-iを含む対異常フロー防御部1320-i (i=1〜n)と、スイッチング部1310と、パケット転送部1330-i (i=1〜n)と、通信データ入出力部1332-i-k (i=1〜n, k=1〜m)を備える通信装置1300のブロック図を示す。
【０１１４】
以下、図10〜13の詳細を説明する。
【０１１５】
図10の対異常フロー防御装置1000は、2つの通信データ入出力部1010,1011を持つ。各通信データ入出力部1010,1011から入力したパケットデータは、リコンフィギュラブルプロセッサ搭載部1020で対異常フロー防御処理が行われ、もう一方の通信データ入出力部1010,1011から処理済みのパケットデータが出力される。
【０１１６】
図11の通信装置1100は、1つまたは複数の通信データ入出力部1132-k (k=1〜m)を持つ。各通信データ入出力部1132-kから入力したパケットデータは、対異常フロー防御部1120内部のリコンフィギュラブルプロセッサ搭載部1140で対異常フロー防御処理が行われ、処理済みのパケットデータは、通信データ内部入出力部1121-k (k=1〜m)を通ってパケット転送部1130に出力される。パケット転送部1130は、受信したパケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて定めた通信データ内部入出力部1121-kに、受信したパケットデータを送信する。対異常フロー防御部1120は、通信データ内部入出力部1121-k経由で受信したパケットを、通信データ入出力部1132-kに出力する。
【０１１７】
図12の通信装置1200は、パケット転送部1230-i (i=1〜n)毎に通信データ入出力部1232-i-k (i=1〜n, k=1〜m)を持つ。各通信データ入出力部1232-i-kからパケット転送部1230-iに入力したパケットデータは、パケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて、入力先のパケット転送部1230-iが持つ通信データ入出力部1232-i-kに出力され、或いは、通信データ内部入出力部1231-i (i=1〜n)及びスイッチング部1210を経由して、別のパケット転送部1230-i、または対異常フロー防御部1220に出力される。対異常フロー防御部1220に出力されたパケットは、対異常フロー防御部1220内部のリコンフィギュラブルプロセッサ搭載部1240で対異常フロー防御処理が行われ、処理済みのパケットデータは、パケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて、通信データ内部入出力部1221及びスイッチング部1210を経由して、別のパケット転送部1230-iに出力される。パケット転送部1230-iは、スイッチング部1210から受信したパケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて定めた通信データ入出力部1232-i-kに、受信したパケットデータを出力する。
【０１１８】
図13の通信装置1300は、対異常フロー防御部1320-i (i=1〜n)毎に通信データ入出力部1332-i-k (i=1〜n, k=1〜m)を持つ。通信データ入出力部1332-i-kから入力したパケットデータは、対異常フロー防御部1320-i内部のリコンフィギュラブルプロセッサ搭載部1340-iで対異常フロー防御処理が行われる。処理済みのパケットデータは、通信データ内部入出力部1321-i-k (i=1〜n, k=1〜m)を通ってパケット転送部1330-i (i=1〜n)に出力される。パケット転送部1330-iに出力されたパケットデータは、パケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて、入力先のパケット転送部1330-iと接続した通信データ内部入出力部1321-i-kに出力され、或いは、通信データ内部入出力部1331-i (i=1〜n)及びスイッチング部1310を経由して、別のパケット転送部1330-iに出力される。パケット転送部1330-iは、スイッチング部1310から受信したパケットデータの宛先IPアドレス、または宛先MACアドレス、または宛先MPLSラベル番号、または宛先VLAN番号に応じて定めた通信データ内部入出力部1321-i-kに、受信したパケットデータを送信する。対異常フロー防御部1320-iは、通信データ内部入出力部1321-i-k経由で受信したパケットを、通信データ入出力部1332-i-kに出力する。
【図面の簡単な説明】
【０１１９】
【図１】n個のリコンフィギュラブル回路を持つリコンフィギュラブルプロセッサのブロック図。
【図２】n個のリコンフィギュラブルプロセッサを持つリコンフィギュラブル装置のブロック図。
【図３】演算器型リコンフィギュラブル回路の例を示すブロック図。
【図４】AND-OR/LUT型リコンフィギュラブル回路の例を示すブロック図。
【図５】マルチCPU型リコンフィギュラブル回路の例を示すブロック図。
【図６】2個のリコンフィギュラブル回路を持つリコンフィギュラブルプロセッサのブロック図。
【図７】2個のリコンフィギュラブルプロセッサを持つリコンフィギュラブル装置のブロック図。
【図８】対異常フロー防御機能を搭載したリコンフィギュラブルプロセッサのブロック図。
【図９】対異常フロー防御機能を搭載したリコンフィギュラブル装置のブロック図。
【図１０】対異常フロー防御処理を行うリコンフィギュラブルプロセッサ搭載部を備えた対異常フロー防御装置のブロック図。
【図１１】対異常フロー防御処理を行うリコンフィギュラブルプロセッサ搭載部とパケット転送部を備えた通信装置のブロック図。
【図１２】対異常フロー防御処理を行うリコンフィギュラブルプロセッサ搭載部とパケット転送部とスイッチング部を備えた通信装置のブロック図。
【図１３】パケット転送部毎に対異常フロー防御処理を行うリコンフィギュラブルプロセッサ搭載部を備え、スイッチング部を備えた通信装置のブロック図。
【符号の説明】
【０１２０】
100…リコンフィギュラブルプロセッサ、110…入力データ分割部、112…出力データ結合部、111-i (i=2〜n)…処理データ選択部、130-i (i=1〜n)…リコンフィギュラブル回路i、113-i (i=1〜n)…コンフィギュレーション制御部、190-i-j (i=1〜n-1, j=1〜n),191-i (i=1〜n-1)…リタイミング選択バッファ、122,123-i (i=1〜n),124…リタイミング出力バッファ、121-i-j (i=1〜n, j=1〜m)…コンフィギュレーションバッファ、200…リコンフィギュラブル装置。
【図１】
0004720436.tif 000002
【図２】
0004720436.tif 000003
【図３】
0004720436.tif 000004
【図４】
0004720436.tif 000005
【図５】
0004720436.tif 000006
【図６】
0004720436.tif 000007
【図７】
0004720436.tif 000008
【図８】
0004720436.tif 000009
【図９】
0004720436.tif 000010
【図１０】
0004720436.tif 000011
【図１１】
0004720436.tif 000012
【図１２】
0004720436.tif 000013
【図１３】
0004720436.tif 000014