(57)【要約】【課題】データベース等のアプリケーションレイヤのサーバサービスを高性能で実現する小型で省電力な装置を提供する。【解決手段】通信状態変更部は、インターフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信するホスト間の通信状態を通信状態テーブルから読み出し、受信されたパケットに含まれる情報と読み出された通信状態の内容とに基づいて、読み出された通信状態を変更し、変更された通信状態を前記通信状態テーブルに書き込むとともに、変更された通信状態を前記演算マトリックスに出力し、演算マトリックスは、通信状態変更部から出力された通信状態に基づいて、回路構成蓄積バッファから構成情報を一つ取得し、取得された構成情報に基づいて、演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更する。【選択図】図１
2008131584.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、前記ネットワークで転送されるパケットを受信し、前記パケットを送受信するホスト間の通信状態に応じた処理を実行する情報処理装置であって、
前記パケットを送受信するインタフェースと、
前記ホスト間の通信状態を通信状態テーブルとして格納する通信状態格納部と、
前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、
前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、
前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、
前記通信状態変更部は、
前記インターフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、
前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、
前記演算マトリックスは、
前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする情報処理装置。
【請求項２】
ネットワークに接続され、前記ネットワークで転送されるパケットを受信し、前記パケットを送受信するホスト間の通信状態に応じた処理を実行する情報処理装置であって、
前記パケットを送受信するインタフェースと、
前記ホスト間のトランスポートレイヤプロトコルの遷移／輻輳状態と、アプリケーションレイヤプロトコルの種類と、前記アプリケーションレイヤプロトコルが実行中のコマンド及び前記コマンドの引数の種類と、前記コマンドの実行の進捗状態と、を含む通信状態を通信状態テーブルとして格納する通信状態格納部と、
前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、
前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、
前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、
前記通信状態変更部は、
前記インタフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、
前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、
前記演算マトリックスは、
前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする情報処理装置。
【請求項３】
前記通信状態格納部は、
前記ホスト間の通信状態を、送信元ＩＰアドレスと、宛先ＩＰアドレスと、ＴＣＰの送信元ポート番号と、ＴＣＰの宛先ポート番号と、の組毎に一つのエントリとして格納し、
前記エントリに、ＴＣＰコネクションの開始又は停止を示す値と、ＴＣＰコネクションの確立又は未確立を示す値と、ＴＣＰコネクションの輻輳状態を示す値と、ＴＣＰコネクションの送信側ホストのシーケンス番号と、ＴＣＰコネクションの受信側ホストのシーケンス番号と、一度に送信可能なデータサイズを表す輻輳ウィンドウサイズと、送信済みデータサイズを示す送信済みウィンドウサイズと、パケットを受信した最新時刻と、送信済みパケットのＩＤ番号と、ＡＣＫ受信済みデータの最後尾が格納されているメモリのアドレスポインタと、アプリケーションレイヤが使用しているプロトコルの有無及びプロトコルの種類を示す値と、前記プロトコルが実行中のコマンド及びコマンド引数の有無並びに種類を示す値と、前記プロトコルのコマンドによって実行中のファイルの送受信が開始、未完了又は完了を示す値と、を格納し、
前記通信状態変更部は、
前記インタフェースによって受信されたパケットのヘッダに含まれる送信元ＩＰアドレスと、宛先ＩＰアドレスと、ＴＣＰの送信元ポート番号と、ＴＣＰの宛先ポート番号と、に基づいて、当該パケットを送受信する前記ホスト間の通信状態のエントリを、前記通信状態格納部から読み出すことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記インタフェース及び前記演算マトリックスに接続され、前記受信したパケットを一時的に蓄積してから前記演算マトリックスに出力するパケットバッファと、
前記通信状態変更部及び前記演算マトリックスとに接続され、前記通信状態変更部によって出力された通信状態を一時的に蓄積してから演算マトリックスに出力する通信状態蓄積バッファと、を備え、
前記演算マトリックスは、
前記取得されたパケット毎に、
前記蓄積バッファから出力されたパケットと、前記通信状態蓄積バッファから出力された通信状態とを取得し、
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態変更部によって出力された通信状態を分類し、前記分類された通信状態の分類結果を出力する通信状態判定部と、
前記通信状態判定部と前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態判定部によって出力された分類結果に基づいて、前記パケットと前記通信状態とに発生させる遅延を調整し、前記パケットと前記通信状態とを前記調整された遅延によって前記演算マトリックスに出力する遅延調整部と、を備え、
前記演算マトリックスは、
前記通信状態判定部によって出力された通信状態の分類結果に対応する一の構成情報を前記回路構成蓄積バッファから取得し、前記取得された構成情報に基づいて前記演算器群の機能と互いの配線とを再構成して、演算マトリックスの搭載論理を変更し、
前記遅延調整部は、
前記通信状態判定部によって出力された通信状態の分類結果に基づいて、演算マトリックスの再構成が終了するタイミングを予測し、又は、前記演算マトリックスから出力された再構成終了の通知を受け、
前記予測されたタイミング、又は、前記再構成終了の通知に基づいて、前記パケットと前記通信状態とに発生させる遅延を変更することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記演算マトリックスに接続され、前記パケットに含まれる情報に基づいて前記パケットを分類し、前記分類されたパケットの分類結果を前記演算マトリックスに出力するパケット判定部と、
前記通信状態判定部と前記パケット判定部と前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態判定部によって出力された分類結果と、前記パケット判定部によって出力された分類結果とに基づいて、前記パケットと前記通信状態に発生させる遅延を調整し、前記パケットと前記通信状態とを前記調整された遅延によって前記演算マトリックスに出力する遅延調整部と、を備え、
前記演算マトリックスは、
前記通信状態判定部によって出力された通信状態の分類結果と、前記パケット判定部によって出力されたパケットの分類結果と、に対応する一の構成情報を前記回路構成蓄積バッファから取得し、前記取得された構成情報に基づいて前記演算器群の機能と互いの配線とを再構成して、演算マトリックスの搭載論理を変更し、
前記遅延調整部は、
前記通信状態判定部によって出力された通信状態の分類結果と、前記パケット判定部によって出力されたパケットの分類結果とに基づいて、前記演算マトリックスの再構成が終了するタイミングを予測し、又は、前記演算マトリックスから出力された再構成終了の通知を受け、
前記予測されたタイミング、又は、前記再構成終了の通知に基づいて、前記パケットと前記通信状態とに発生させる遅延を変更することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記演算マトリックスは、前記通信状態判定部によって出力された分類結果に基づいて、前記回路構成蓄積バッファに蓄積された構成情報の取得及び再構成を要求するための自律再構成トリガを生成する自律再構成トリガ生成用演算器群を備え、
前記演算マトリックスと前記回路構成蓄積バッファとに接続され、前記自律再構成トリガ生成用演算器群によって生成された自律再構成トリガに基づいて、前記回路構成蓄積バッファから構成情報を選択し、前記選択された構成情報を前記演算マトリックスに出力する自律再構成機構を備え、
前記演算マトリックスは、
前記自律再構成機構によって出力された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記演算マトリックスに接続され、前記構成情報を複数格納する回路構成蓄積領域と、前記構成情報毎のポインタを格納するポインタ領域とを備える外部メモリを備え、
前記演算マトリックスは、前記通信状態判定部によって出力された分類結果に基づいて、前記外部メモリに格納された構成情報の取得及び再構成を要求するための外部再構成トリガを生成し、前記外部メモリのポインタ領域に格納されたポインタを更新する外部再構成トリガ生成用演算器群を備え、
前記外部メモリと前記演算マトリックスと前記回路構成蓄積バッファとに接続され、前記外部再構成トリガ生成用演算器群によって生成された外部再構成トリガに基づいて前記外部メモリのポインタ領域からポインタを取得し、前記ポインタに基づいて前記外部メモリの回路構成蓄積領域から構成情報を一つ取得し、前記取得された構成情報を前記回路構成蓄積バッファに書き込み、前記書き込まれた構成情報を前記演算マトリックスに出力する回路構成変更モジュールを実行するプロセッサを備え、
前記演算マトリックスは、
前記回路構成変更モジュールによって出力された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記通信状態変更部は、前記受信されたパケットのＴＣＰヘッダに含まれるＴＣＰフラグ番号と前記通信状態に含まれるＴＣＰコネクションの確立又は未確立を示す値との組合せ、前記受信したパケットのＴＣＰヘッダに含まれる送信又は受信シーケンス番号と前記通信状態に含まれる送信又は受信シーケンス番号との組合せ、及び、前記受信したパケットのＴＣＰヘッダに含まれるＴＣＰフラグ番号と前記通信状態に含まれるアプリケーションレイヤプロトコルのコマンドが実行中のファイル送受信の完了又は未完了を示す値との組合せ、の少なくとも一つの組み合わせに基づいて、前記通信状態を変更することを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
前記通信状態判定部は、
前記通信状態変更部によって出力された通信状態に含まれるＴＣＰコネクションの開始又は停止を示す値を参照して、ＴＣＰコネクションの開始又は停止を判定することによって前記通信状態を分類し、
ＴＣＰコネクションが開始している場合は、前記通信状態に含まれるＴＣＰコネクションの確立又は未確立示す値を参照して、ＴＣＰコネクションの確立又は未確立を判定することによって前記通信状態を分類し、
ＴＣＰコネクションが確立している場合は、前記通信状態に含まれるＴＣＰコネクションの輻輳状態を示す値を参照して、ＴＣＰコネクションの輻輳状態を判定することによって前記通信状態を分類し、
前記通信状態に含まれるアプリケーションレイヤプロトコルの有無を判定することによって前記通信状態を分類し、
アプリケーションレイヤプロトコルがある場合は、前記通信状態に含まれるアプリケーションレイヤプロトコルの種類と、前記プロトコルが実行中のコマンド及び前記コマンドの引数の有無を判定することによって前記通信状態を分類し、
前記コマンド及び前記コマンドの引数がある場合は、前記コマンド及び前記コマンドの引数の種類を判定し、前記コマンドによって実行中のファイル送受信の進捗状態が開始、未完了又は完了の何れであるかを判定することによって前記通信状態を分類することを特徴とする請求項５に記載の情報処理装置。
【請求項１１】
前記演算マトリックスに接続され、データを格納する外部メモリを備え、
前記演算マトリックスは、前記受信されたパケットと、前記通信状態変更部によって出力された前記通信状態とに基づいて、前記外部メモリに格納されたデータの変更、新たなパケットの生成、前記生成されたパケットの外部への送信、前記通信状態変更部によって出力された通信状態の変更、及び、前記通信状態変更部への前記変更された通信状態の返信を実行するサーバサービス提供用演算器群を備え、
前記サーバサービス提供用演算器群は、
ＴＣＰコネクションが確立している場合は、前記受信されたパケットに含まれる送信又は受信シーケンス番号と、前記通信状態に含まれる送信又は受信シーケンス番号と、輻輳ウィンドウサイズと、送信済みウィンドウサイズと、に基づいて、ＴＣＰコネクションの輻輳状態を、スロースタート状態、輻輳回避状態及びファーストリカバリー状態の何れか一つに変更し、
ＴＣＰコネクションが確立し、かつ、ＴＣＰコネクションの輻輳状態がスロースタート状態又は輻輳回避状態である場合は、前記受信されたパケットに対応して新たに生成されたパケットの送信サイズに基づいて、一度に送信可能なデータサイズを表す輻輳ウィンドウサイズと、送信済みデータサイズを表す送信済みウィンドウサイズとの値を変更し、前記新たに生成されたパケットの送信数に基づいて、送信済みパケットのＩＤ番号を変更し、
ＴＣＰコネクションが未確立である場合は、送信済みパケットのＩＤ番号を初期化し、
アプリケーションレイヤのプロトコルが実行中のコマンドがあり、かつ、前記プロトコルのコマンドによって実行されているファイルの送受信が開始状態である場合は、前記新たに生成されたパケットを送信した後に、ファイルの送受信の状態を未完了に変更し、
アプリケーションレイヤのプロトコルが実行中のコマンドがあり、かつ、前記プロトコルのコマンドによって実行されているファイルの送受信が開始された状態又は送受信が未完了状態である場合は、前記新たに生成されたパケットの送信サイズに基づいて、ＡＣＫ受信済みデータの最後尾が格納されている外部メモリのアドレスポインタを初期化し、
アプリケーションレイヤのプロトコルが実行中のコマンドがあり、かつ、前記プロトコルのコマンドによって実行されているファイルの送受信が開始状態又は未完了状態である場合、かつ、新たに生成されて送信されるパケットがない場合は、ファイルの送受信の状態を完了に変更することを特徴とする請求項２に記載の情報処理装置。
【請求項１２】
前記演算マトリックスに接続され、データを格納する外部メモリを備え、
前記演算マトリックスは、
前記受信されたパケットと、前記通信状態変更部によって出力された前記通信状態とに基づいて、前記外部メモリに格納されたデータの変更、新たなパケットの生成、前記生成されたパケットの外部への送信、前記通信状態変更部によって出力された通信状態の変更、及び、前記通信状態変更部への前記変更された通信状態の返信を実行するサーバサービス提供用演算器群と、
前記サーバサービス提供用演算器群によって新たに生成されたパケットが全て送信されたか否かを判定するバッファ読出し判定用演算器群と、を備え、
前記サーバサービス提供用演算器群は、前記新たに生成されたパケットの送信が終了するときに、当該パケットの送信処理が終了することを示す通知を前記バッファ読出し判定用演算器群に出力し、
前記バッファ読出し判定用演算器群は、前記サーバサービス提供用演算器群によって出力された処理終了通知に基づいて、前記パケットバッファに対して、新たなパケットの読み出し命令を出力して、別のパケットの処理を直ちに実行することを特徴とする請求項４に記載の情報処理装置。
【請求項１３】
前記通信状態変更部に接続され、前記パケットに含まれる宛先ＩＰアドレスと宛先ポート番号とに基づいて、処理の対象となるパケットのみを抽出して前記通信状態変更部に出力する処理パケット判定部と、
前記パケットバッファと前記通信状態蓄積バッファと前記演算マトリックスとに接続され、前記パケットバッファから読み出されたパケットに含まれる宛先ＩＰアドレスと宛先ポート番号とに基づいて処理すべきパケットか否かを判定し、前記読み出されたパケットが処理すべきと判定されたパケットである場合は、前記通信状態バッファから通信状態を読み出し、前記処理すべきと判定されたパケットと前記読み出された通信状態とを、前記演算マトリックスに出力し、前記読み出されたパケットが処理すべきでないと判定された場合は前記パケットバッファに他のパケットの読み出し命令を出力する通信状態読出し判定部と、
前記処理パケット判定部、前記通信状態読出し判定部及び前記サーバサービス提供用演算器群に接続され、前記処理パケット判定部によって処理の対象でないと判断されたパケットと、前記通信状態読出し判定部において処理すべきでないと判定されたパケットと、前記サーバサービス提供用演算器群によって出力されたパケットと、を集約して送信する集約部と、を備えることを特徴とする請求項４に記載の情報処理装置。
【請求項１４】
前記通信状態変更部に接続され、現在時刻を生成するタイマを備え、
前記通信状態変更部は、前記通信状態格納部から読み出された通信状態と、前記受信したパケットに含まれる情報と、前記タイマによって生成された現在時刻と、の組み合わせが異常である場合に、廃棄命令を出力し、
前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態変更部によって出力された廃棄命令に基づいて前記パケットを廃棄するフィルタを備えることを特徴とする請求項２に記載の情報処理装置。
【請求項１５】
前記通信状態変更部は、
前記受信されたパケットに含まれるＴＣＰヘッダのＴＣＰフラグがＡＣＫであり、かつ、前記通信状態に含まれるＴＣＰコネクションが未確立である場合に、前記受信したパケットに含まれるＴＣＰヘッダの受信シーケンス番号と、前記通信状態含まれるシーケンス番号との差が１でないときは、前記受信したパケットの廃棄命令を出力し、
前記受信したパケットに含まれるＴＣＰヘッダのＴＣＰフラグがＳＹＮである場合に、前記タイマによって生成される現在時刻と、前記通信状態に含まれるパケットの受信時刻との差が予め定めた閾値よりも小さい場合に、前記受信パケットの廃棄命令を出力することを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
外部コントローラと外部メモリとに接続され、前記演算マトリックス、前記自律再構成機構、前記プロセッサ及び前記回路構成蓄積バッファを含んで構成される動的再構成プロセッサと、
前記外部メモリに接続されず、前記動的再構成プロセッサに接続され、前記通信状態制御部、前記通信状態判定部、前記遅延調整部、前記パケットバッファ及び前記通信状態バッファを含んで構成される外部コントローラと、を備え、
前記外部コントローラは、前記受信したパケットを、前記外部メモリに出力することなく前記動的再構成プロセッサに出力し、
前記動的再構成プロセッサは、前記受信外部コントローラによって出力されたパケットを処理することを特徴とする請求項８に記載の情報処理装置。
【請求項１７】
ネットワークと、データを提供するサーバと、前記サーバにデータを要求するパケットを送信する端末と、前記サーバ及び前記端末間で転送されるパケットを受信し、前記パケットを送受信するサーバ及び端末間の通信状態に応じた処理を実行し、前記処理の結果を前記サーバ又は前記端末に送信する情報処理装置と、が前記ネットワークに接続された情報処理システムであって、
前記情報処理装置は、
前記パケットを送受信するインタフェースと、
前記ホスト間の通信状態を通信状態テーブルとして格納する通信状態格納部と、
前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、
前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、
前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、
前記通信状態変更部は、
前記インターフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、
前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、
前記演算マトリックスは、
前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、
前記変更された搭載論理によって前記受信したパケットに前記通信状態に対応する処理を実行し、前記処理結果を、前記インタフェースによって前記サーバ又は前記端末に送信することを特徴とする情報処理システム。
【請求項１８】
ネットワークと、データを提供するサーバと、前記サーバにデータを要求するパケットを送信する端末と、前記サーバ及び前記端末間で転送されるパケットを受信し、前記パケットを送受信するサーバ及び端末間の通信状態に応じた処理を実行し、前記処理の結果を前記サーバ又は前記端末に送信する情報処理装置と、が前記ネットワークに接続された情報処理システムであって、
前記情報処理装置は、
前記ホスト間のトランスポートレイヤプロトコルの遷移／輻輳状態と、アプリケーションレイヤプロトコルの種類と、前記アプリケーションレイヤプロトコルが実行中のコマンド及び前記コマンドの引数の種類と、前記コマンドの実行の進捗状態と、を含む通信状態を通信状態テーブルとして格納する通信状態格納部と、
前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、
前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、
前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、
前記通信状態変更部は、
前記インタフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、
前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、
前記演算マトリックスは、
前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更し、
前記変更された搭載論理によって前記受信したパケットに前記通信状態に対応する処理を実行し、前記処理結果を、前記インタフェースによって前記サーバ又は前記端末に送信することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続され、前記ネットワークで転送されるパケットを処理する情報処理装置に関する。より具体的には、パケットを受信し、前記パケットを送受信している各ホスト間の通信状態に応じて異なる処理を実行し、装置内部に蓄積したデータの変更や、新たなパケットを生成し外部に送信することによって、データベース等のサーバサービスを提供する情報処理装置及び情報処理システムに関する。
【背景技術】
【０００２】
放送通信融合とユビキタスコンピューティングの並行進展により、バックエンド／アクセス双方から求められる演算性能が急拡大しつつある。そのため、ユビキタスデバイス（例えば、Radio Frequency Identification（ＲＦＩＤ）、センサ、カメラ等）を用いたサーバサービス（データベース（Data Base: ＤＢ）トランザクション、対異常通信防御等）を、エッジネットワークに分散配置したアプライアンスで実現し、サーバサービスの演算性能と応答速度を向上する必要がある。
【０００３】
ここで言うアプライアンスは、対異常通信防御とデータベースの機能を実現する。
【０００４】
対異常通信防御は、攻撃者からの異常パケットを探知・排除する。
【０００５】
データベースは、分散配置された多数のＲＦＩＤ／据置センサ／映像センサ等のネットワーク端末から、大量に受信したデータ更新パケットをＳＱＬ解析し、キャッシュにデータを集約し、データをアップロードし、キャッシュデータをサーバに自動アップロードする。また、携帯端末等のクライアントからのデータ要求パケットのＳＱＬ解析と、キャッシュからのデータをＸＭＬ翻訳してデータをダウンロードし、サーバデータのキャッシュを自動ダウンロードする。
【０００６】
センサ／ＲＦＩＤの利用方法は、ユーザ毎に異なる。また、通信パケットの内容は、センサ／ＲＦＩＤの種類、使用アプリケーション、設置場所や、昼夜等の時間に応じて異なる。さらに、パケットを送受信する各端末間の通信状態は、ＴＣＰの輻輳/遷移状態、使用中のＬ７プロトコル、実行中のコマンド、コマンドの実行状態に応じて異なる。
【０００７】
従って、本アプライアンスに求められる機能は、ユーザ／アプリケーション／場所／時間／実行状態毎に異なる。また、上記機能を搭載したアプライアンスは、小型サーバ又は通信装置内蔵ボードとして、演算処理の効率化のため、エッジネットワークに分散配置する必要がある。そのため、本アプライアンス向けのプロセッサには、小型省電力にてパケットを高速演算する性能とともに、各端末間の通信状態に基づいて、パケット毎に多彩な処理を実行できる柔軟性が要求される。
【０００８】
従来、ネットワークに接続され、データベース等のサーバサービスを実現する装置に関しては、複数の汎用プロセッサをクラスタ接続した装置（例えば、非特許文献１、２参照。）が知られている。この装置では、処理要求を複数のプロセッサ間で分散させて、処理能力を高める手法が用いられている。
【０００９】
また、ＦＰＧＡ等の再構成プロセッサを用いて、ネットワーク上でプロトコル処理を実現する装置が知られている。本装置は、処理内容を、低い頻度であれば変更することができる（例えば、非特許文献３参照。）。
【非特許文献１】Haran Boral、David J. DeWitt、「Processor allocation strategies for multiprocessor database machines」、ACM Transactions on Database Systems、１９８１年６月、Volume 6、Issue 2、p．２２７−２５４
【非特許文献２】Domenico Sacca、Gio Wiederhold、「Database partitioning in a cluster of processors」、ACM Transactions on Database Systems、Volume 10、Issue 1、p．２９−５６、１９８５年３月
【非特許文献３】Ilija Hadzic、J. M. Smith、「Balancing performance and flexibility with hardware support for network architectures」、ACM Transaction on Computer Systems、２００３年１１月、Volume 21、Issue 4、ｐ．３７５−４１１
【発明の開示】
【発明が解決しようとする課題】
【００１０】
まず、従来の汎用プロセッサを使用して、データベース等のサーバサービスを実現する装置を、図１８と図１９を用いて説明する。
【００１１】
従来の汎用プロセッサを用いた装置では、プロセッサ内部のキャッシュメモリにロードしたプログラムの命令１８０１の種類毎に、プロセッサ内部の演算器１８０２の機能が切り替わる（図１８参照）。
【００１２】
演算器は、非常に多機能に造られており、複雑で多様な命令をこなすことができる反面、命令実行中に、回路搭載トランジスタの多くが未使用となるなど、回路利用率は低い。特に、データベーストランザクションでは、大容量データの入出力を伴って、メモリからロードしたデータに対して前後関係の制約がある比較処理を繰り返すため、分岐によるパイプライン初期化１８０３のペナルティにより演算器の利用率が低下しやすく、パフォーマンス向上が困難である。
【００１３】
また、従来の汎用プロセッサと通信回線の間の通信データは、図１９に示すように、メモリ１９０５を経由して入出力される。通信回線１９０７からネットワークＩ／Ｆ（インターフェース）１９０６が受信したパケットは、ＰＣＩバス１９０４及びＰＣＩブリッジ１９０３及び外部コントローラ１９０２を経由して、メモリ１９０５内のネットワークＩ／Ｆ用バッファ領域１９０９に蓄積される。
【００１４】
ＣＰＵ１９０１は、この蓄積されたデータを逐一読み取って、必要な処理を実行し、新たに生成したパケットを、再びネットワークＩ／Ｆ用バッファ領域１９０９に蓄積する。ネットワークＩ／Ｆ１９０６は、新たな生成パケットを、ネットワークＩ／Ｆ用バッファ領域１９０９から読み出して通信回線１９０７に送信する。
【００１５】
従って、回線帯域の４倍に相当するメモリ帯域を消費することになる（１９０８）。
【００１６】
ＣＰＵとメモリ間では、通信データの入出力以外に、様々な演算データが入出力される。そのため、本方式では、メモリ帯域の空時間を待つためのＣＰＵアイドル時間が増大し、演算性能が低下するという問題があった。
【００１７】
以上のような問題から、従来では、複数の汎用プロセッサをクラスタ接続して、処理要求を複数のプロセッサ間で分散させて、処理能力を高める手法が用いられている。その一方で、汎用プロセッサは、高い周波数で演算性能を稼ぐために消費電力が高くない、アプライアンスの省電力化が困難となる。また、膨大な量の発熱を廃熱するためのファンが必要となるため、装置の小型化が難しい、という問題があった。
【００１８】
さらに、従来のＦＰＧＡ等の再構成プロセッサは、省電力で高い演算性能を実現するが、搭載論理の変更に必要な時間が長く、搭載論理を頻繁に変更することができない。そのため、従来では、処理内容の変更が少ない通信レイヤのプロトコル処理等、低レイヤの比較的簡単な処理を実行する装置に用いられていた。
【００１９】
その一方で、従来の再構成プロセッサを、データベース等のアプリケーションレイヤのサーバサービスを提供するアプライアンスに使用する場合は、パケットを送受信している各ホスト間の通信状態（トランスポートレイヤの遷移／輻輳状態、使用しているアプリケーションレイヤプロトコルの種類、実行中のコマンドの種類、コマンドの実行状態（ファイルをどこまで送受信したか、等））に応じて、パケット毎に異なる処理を実行するために、搭載論理を頻繁に変更する必要がある。しかし、従来の再構成プロセッサでは、搭載論理を頻繁に変更することができないため、結局は、処理に必要な全ての論理を予め搭載することになる。
【００２０】
そのため、回路規模や必要なチップ数が増大し、装置規模や消費電力が増加する、という問題があった。
【００２１】
一方、動的再構成プロセッサ（Dynamic Reconfigurable Processor: DRP）は、多数の小型演算器（Execution Element: ＥＸＥ）をセレクタにより接続した演算マトリックスを備え、パイプライン処理によりＡＳＩＣ並みの高い演算性能を実現すると共に、ＥＸＥの演算方式や接続方法を最短１クロックで変更することで搭載論理を短時間で変更できる高い柔軟性を実現する。
【００２２】
ＤＲＰは、動作周波数を上昇させなくても、複数の演算器で単純な命令を一括して実行したり、複数の演算器を組み合わせて複雑な命令を実行したりするなど、演算マトリックスコアの演算並列度を高めることで、省電力にて高い演算性能を実現する。このため、ＤＲＰは、パケットを小型省電力にて高速演算する性能と、アルゴリズムを更新する柔軟性と、が同時に要求されるアプライアンス向けのプロセッサとして有望と考えられる。その一方で、ソフトウェア設計、回路の再構成の方法や、装置構成次第で、得られるプロセッサ性能が大きく異なる、という特徴を持つ。
【００２３】
本動的再構成プロセッサを、データベース等のアプリケーションレイヤのサーバサービス向けの装置に使用する場合は、パケットを送受信している各ホスト間の通信状態（トランスポートレイヤプロトコルの遷移／輻輳状態、使用しているアプリケーションレイヤプロトコルの種類、実行中のコマンドの種類、コマンドの実行の進捗状態（ファイルをどこまで送受信したか、等））に応じて搭載論理を変更し、パケット毎に異なる処理を実行する必要がある。
【００２４】
搭載論理の変更は、演算マトリックス内部の演算器群が生成する再構成トリガによって開始される。従って、再構成トリガの生成に必要な情報（受信したパケットを送受信している各ホスト間の通信状態）を、演算マトリックス外部にて予め生成しておき、演算マトリックスに直接入力することで、搭載論理の迅速な変更が可能になると考えられる。
【００２５】
本発明は、従来の汎用プロセッサやＦＰＧＡを用いた装置の問題点（大型化・消費電力増大）を解決するために、メモリを経由しない通信データの直接入出力を用いた動的再構成プロセッサ搭載装置において、演算マトリックス外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、高速演算性能と搭載論理の高速変更を両立し、データベース等のアプリケーションレイヤのサーバサービスを高性能で実現する小型で省電力な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明による一実施形態によると、ネットワークに接続され、前記ネットワークで転送されるパケットを受信し、前記パケットを送受信するホスト間の通信状態に応じた処理を実行する情報処理装置であって、前記パケットを送受信するインタフェースと、前記ホスト間の通信状態を格納する通信状態格納部と、前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、前記通信状態変更部は、前記インターフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、前記演算マトリックスは、前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更することを特徴とする。
【発明の効果】
【００２７】
本発明によると、データベース等のアプリケーションレイヤのサーバサービスを、小型かつ省電力で高性能にて実現するために必要な、演算マトリックス搭載論理の高速再構成を実現する情報処理装置を提供できる。
【発明を実施するための最良の形態】
【００２８】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２９】
図１は、本発明の実施の形態の装置２００の構成ブロック図である。
【００３０】
装置（情報処理装置）２００は、動的再構成プロセッサ２０１と、外部コントローラ２０２と、メモリ２０５と、ネットワークＩ／Ｆ−i（i＝１〜Ｎ）２０３（２０３−１〜２０３−Ｎ）と、通信回線接続部２０４（２０４−１〜２０４−Ｎ）と、スイッチ２１１とを含んで構成される。
【００３１】
装置２００はネットワークに接続されている。ネットワークＩ／Ｆ２０３は、ネットワークからパケット２１０（２１０−１〜２１０−Ｎ）を受信する。スイッチ２１１は、受信したパケットを、そのパケットの宛先等に基づいて、外部コントローラ２０２又は他のネットワークＩ／Ｆ２０３に転送する。また、スイッチ２１１は、外部コントローラ２０２からネットワークＩ／Ｆ２０３へと転送されたパケット２０９（２０９−１〜２０９−Ｎ）を、ネットワークＩ／Ｆ２０３を経由してネットワークに送信する。
【００３２】
外部コントローラ２０２は、スイッチ２１１から送信されたパケットの内容に基づいて、装置２００の通信状態を変更する。
【００３３】
動的再構成プロセッサ２０１は、プロセッサ２０６と演算マトリックス２０７と内部コントローラ２０８とを含んで構成される。また、動的再構成プロセッサ２０１は、メモリ２０５に接続されている。動的再構成プロセッサ２０１は、外部コントローラ２０２の通信状態に基づいて演算マトリックス２０７の構成を変更し、変更された演算マトリックス２０７が、外部コントローラ２０２から送信されたパケットを処理する。
【００３４】
メモリ２０５は、動的再構成プロセッサ２０１が演算マトリックス２０７の構成を変更するために用いるデータを記憶する。また、メモリ２０５は、外部コントローラ２０２及び動的再構成プロセッサ２０１によって処理されるデータを格納することもできる。
【００３５】
なお、図５で後述するように、装置２００をサーバの前段に配置する場合又はサーバに内蔵する場合は、スイッチ２１１に直接サーバ５０４が接続される。このサーバ５０４を宛先とするパケットは、スイッチ２１１によって直接サーバ５０４に送信される。
【００３６】
図２は、装置２００が備える動的再構成プロセッサ２０１の詳細な構成ブロック図である。
【００３７】
動的再構成プロセッサ２０１は、回路構成蓄積バッファ１０１と、自律再構成機構１０９と、プロセッサ２０６と、演算マトリックス２０７と、内部コントローラ２０８とを含んで構成される。
【００３８】
プロセッサ２０６は従来の汎用的なプロセッサであり、装置２００で実行されるべき処理を実行するほか、演算マトリックス２０７の再構成に関わる処理も実行する。
【００３９】
演算マトリクス２０７は、機能と互いの配線が可変である小型演算器を複数搭載しており、回路構成蓄積バッファ１０１に予め記憶されている回路構成を読み込むことによって、演算マトリクス内部の回路構成が変更できる。自律再構成機構１０９は、演算マトリクス２０７からの要求に基づいて、回路構成蓄積バッファ２０７に記憶されている回路構成を取得して演算マトリクス２０７に送る。
【００４０】
内部コントローラ２０８は、プロセッサ２０６又は演算マトリクス２０７と各インターフェースとを接続するバススイッチ３０１を備える。バススイッチ３０１には、ＰＣＩバス接続用のＰＣＩ  Ｉ／Ｆ３０２と、外部メモリアクセス用のＤＲＡＭ  Ｉ／Ｆ３０３と、ＤＭＡ転送用のＤＭＡコントローラ３０４と、その他インターフェースと接続するためのその他Ｉ／Ｆ３０５とを含んで構成される。
【００４１】
図３は、動的再構成プロセッサ２０１の演算マトリックス２０７の搭載論理の変更を示す説明図である。
【００４２】
演算マトリックス２０７は、機能と互いの配線が可変である小型演算器を多数搭載しており、回路構成蓄積バッファ１０１に記憶されている回路構成を読み込むことによって、その小型演算機毎の機能と配線とを再構成することにより、搭載論理を変更する。
【００４３】
図３の例では、処理内容（４０１〜４０３）が時間の推移と共に変更し、この処理内容の変更に伴って、演算マトリックス２０７の搭載論理（４０４〜４０６）が変更される。
【００４４】
例えば、処理内容がＴＣＰ制御４０１である場合は、演算マトリックス２０７は、小型演算器の機能を加算器や乗算器等に変更し、これらの演算器の配線を再構成して、ＴＣＰ制御の処理に適した搭載論理４０４に変更する。処理内容がＴＣＰ制御４０１からデータ返信４０２に変更された場合は、同様に、データ返信の処理に適した搭載論理４０５に変更する。以降も同様に、処理内容に適した搭載論理に変更する、
このように、演算マトリックス２０７は、処理内容に適した搭載論理に変更することによって、並列演算による高速演算性能と、搭載論理を短時間で変更できる高い柔軟性を実現する。
【００４５】
図４は、装置２００を備える情報処理システムの一例の説明図である。
【００４６】
装置２００は、アクセスネットワーク５０１とバックエンドシステム５０３との間のエッジネットワーク５０２に配置される。
【００４７】
バックエンドシステム５０３は、サーバ５０４及びストレージシステム５０５が配置されている。ストレージシステム５０５は、サーバ５０４が処理するデータを蓄積する（５２２）。
【００４８】
アクセスネットワーク５０１は、ＲＦＩＤ、据置センサ、映像センサ、携帯端末等を含む。また、サーバ５０４が想定していない不正なアクセスを送信する攻撃者が含まれる場合がある。
【００４９】
装置２００は、アクセスネットワーク５０１のＲＦＩＤ、据置センサ又は映像センサからデータ更新パケット（５０８、５０９、５１０）を受信すると、受信したパケットに含まれているＳＱＬコマンド等に基づいて装置２００内部に蓄積されているデータを更新する。また、受信したパケットに含まれているＨＴＴＰ／ＸＭＬ等の形式に基づいて、更新結果の通知及びアクション指示パケット（５１１、５１２、５１３）を返信する。
【００５０】
また、アクセスネットワーク５０１の携帯端末からデータ要求パケット５１４を受信すると、受信したパケットに含まれるコマンド（ＳＱＬコマンド等）に基づいて装置内部に蓄積したデータを検索し、受信したパケットに含まれるＨＴＴＰ／ＸＭＬ等の形式に基づいて、検索されたデータを要求データ返信パケット５１５として返信する。
【００５１】
また、攻撃者による異常パケット５１６を受信すると、異常通信と判定して、サーバ５０４に送信することなく（５１７）、異常パケットを廃棄する（５０７）。
【００５２】
また、装置２００内部に蓄積されたデータは、サーバへのアップロード（５１８、５２０）又はサーバからのダウンロード（５１９、５２１）を実行し、装置２００内部の蓄積データを常に最新の状態に保つ。
【００５３】
図５は、装置２００を備える情報処理システムの他の例の説明図である。
【００５４】
前述の図４では、装置２００は、エッジネットワーク５０２に配置されていたが、本例では、装置２００は、バックエンドシステム６０３内のサーバ５０４の前段に配置される。なお、サーバ５０４に装置２００を内蔵してもよい。サーバ５０４に装置２００を内蔵する場合は、装置２００のスイッチ２１１にサーバ２１２が直接接続される。
【００５５】
なお、図５のように構成しても、装置２００の処理は図４で説明した処理と同じである。
【００５６】
次に、装置２００の動的再構成プロセッサ２０１と外部コントローラ２０２とメモリ２０５の動作について説明する。
【００５７】
図６は、動的再構成プロセッサ２０１と外部コントローラ２０２とメモリ２０５の詳細な構成ブロック図である。
【００５８】
外部コントローラ２０２は、処理パケット判定部１０６と、通信状態制御部１０４と、タイマ１６０と、フィルタ部１２４と、タイミング調整部１０５と、通信状態分類部１０３と、遅延調整部１１８と、集約部１２８とを含んで構成される。
【００５９】
処理パケット判定部１０６は、受信パケットが処理すべきパケットか否かを判定する。通信状態制御部１０４は、ネットワーク間で送受信されるパケットによって現在の通信状態を蓄積又は更新する。タイマ１６０は、現在時刻を生成する。フィルタ部１２４は、異常パケットと判定されたパケットを廃棄する。タイミング調整部１０５は、更新された通信状態とパケットとを動的再構成プロセッサ２０７に送るタイミングを調整する。通信状態分類部１０３は、通信状態を分類する。遅延調整部１１８は、通信状態の分類結果や演算マトリックス２０７からの再構成終了通知に基づいて通信状態とパケットとに発生させる遅延を調整する。集約部１２８は、パケットを集約して出力する。
【００６０】
通信状態制御部１０４は、通信状態を格納する通信状態格納部に格納された通信状態テーブル１２６と、通信状態を読み出し又は変更する通信状態変更部１２５とを含んで構成される。
【００６１】
タイミング調整部１０５は、変更済の通信状態を一時的に蓄積しておく通信状態バッファ１２１と、パケットを一時的に蓄積しておくパケットバッファ１２２と、パケット毎に処理が不要なパケットか否かを判定し、処理が必要と判定したときに通信状態を読み出す通信状態読み出し判定部１２３とを含んで構成される。
【００６２】
通信状態分類部１０３は、通信状態を分類する通信状態判定部１１９と、パケットを分類するパケット判定部１２０とを含んで構成される。
【００６３】
動的再構成プロセッサ２０１は、プロセッサ２０６と、演算マトリックス２０７と、内部コントローラ２０８と、回路構成蓄積バッファ１０１と、自律再構成機構１０９とを含んで構成される。
【００６４】
回路構成蓄積バッファ１０１は、演算マトリクス２０７を再構成するための複数の構成情報１０８（１０８−１〜１０８−３）を蓄積する。自律再構成機構１０９は、演算マトリックス２０７によって生成された再構成トリガに基づいて、回路構成蓄積バッファ１０１から構成情報１０８（１０８−１〜１０８−３）を選択し、選択された構成情報１０８を演算マトリックス２０７に転送する。
【００６５】
メモリ２０５は、回路構成蓄積領域１１７と、ポインタ領域１５７とを記憶する。
【００６６】
回路構成蓄積領域１１７は、回路構成蓄積バッファ１０１に蓄積しきれない構成情報を記録する。ポインタ領域１５７は、回路構成蓄積領域１１７内の構成情報へのアドレスポインタを記録する。
【００６７】
プロセッサ２０６は、回路構成変更モジュール１１６を実行している。回路構成変更モジュール１１６は、演算マトリックス２０７によって生成された再構成トリガに基づいて回路構成蓄積領域１１７から構成情報を読み出して、読み出した構成情報を回路構成蓄積バッファ１０１に書き込む。そして、当該構成情報を演算マトリックス２０７に転送する。
【００６８】
演算マトリックス２０７は、自律再構成トリガ生成用演算器群１１１と、外部再構成トリガ生成用演算器群１１２と、サーバサービス提供用演算器群１１３と、バッファ読み出し判定用演算器群１１４とを含んで構成される。ただし、再構成によって含まれる演算器群の構成を、所定の条件（例えば、時間）によって変更してもよい。例えば、自律再構成トリガ生成用演算器群１１１と、外部再構成トリガ生成用演算器群１１２とを含んで構成される時間帯と、サーバサービス提供用演算器群１１３と、バッファ読み出し判定用演算器群１１４とを含んで構成される時間帯とを分でもよい。
【００６９】
自律再構成トリガ生成用演算器群１１１は、通信状態の分類結果に基づいて、自律再構成機構１０９に再構成トリガ１４２を出力する。外部再構成トリガ生成用演算器群１１２は、通信状態の分類結果に基づいて、回路構成変更モジュール１１６に再構成トリガ１４１を出力する。サーバサービス提供用演算器群１１３は、通信状態とパケットとに基づいて、メモリ２０５に蓄積したデータの変更や、新たなパケットの生成、外部送信を実行する。バッファ読み出し判定用演算器群１１４は、サーバサービス提供用演算器群１１３が新たに生成したパケットを全て送信したか否かを判定して、全て送信済みと判定した場合に、バッファ読み出し命令１３９をタイミング調整部１０５に出力する。
【００７０】
なお、回路構成蓄積バッファ１０１は、演算マトリックス２０７によって使用される頻度が高い構成情報１０８を優先して蓄積する。一方、使用される頻度が低い構成情報１０８は、メモリ２０５の回路構成蓄積領域１１７に記憶される。自律再構成トリガ生成用演算器群１１１及び外部再構成トリガ生成用演算器群１１２は、再構成トリガを生成する回路構成が回路構成蓄積バッファ１０１に蓄積されているかメモリ２０２に記憶されているかを予め知っており、該当する再構成トリガ生成のタイミングで、自律再構成トリガ生成用演算器群１１１又は外部再構成トリガ生成用演算器群１１２のいずれかが再構成トリガを生成する。
【００７１】
以下、各部の動作を詳細に説明する。
【００７２】
処理パケット判定部１０６は、外部からパケットを受信すると（１３０）、パケットヘッダ（Ｐ．Ｈ．７１６、図７参照）を参照して、処理すべきパケットか否かを判定する。処理すべきパケットであると判定した場合は、受信パケットを通信状態変更部１２５及びフィルタ部１２４に出力する（１３１）。処理が不要なパケットである場合は、集約部１２８に出力する（１４８）。
【００７３】
図７は、処理パケット判定部１０６が外部から受信するパケットのフォーマットの一例の説明図である。
【００７４】
パケット１３０は、ＩｎＬｉｎｅ７０１と、ＯｕｔＬｉｎｅ７０２と、ＳＭＡＣ７０３と、ＤＭＡＣ７０４と、Ｐｒｏｔｏ７０５と、ＳＩＰ７０６と、ＤＩＰ７０７と、Ｓｐｏｒｔ７０８と、Ｄｐｏｒｔ７０９と、ＴＣＰ  Ｆｌａｇ７１０と、ＰＳＥＱ７１１と、ＰＡＣＫ７１２と、ＯｔｈｅｒＨｅａｄｅｒ７１３と、各種コマンド７１４と、Ｐａｙｌｏａｄ７１５とを含んで構成される。なお、本実施形態では、ＳＩＰ７０６と、ＤＩＰ７０７と、Ｓｐｏｒｔ７０８と、Ｄｐｏｒｔ７０９とを、Ｐ．Ｈ．（Ｐａｃｋｅｔ  Ｈｅａｄｅｒ）７１６と表現する。
【００７５】
ＩｎＬｉｎｅ７０１は、パケットが入力された回線（ネットワークＩ／Ｆ）の識別番号である入力回線番号を格納する。ＯｕｔＬｉｎｅ７０２は、パケットを出力する回線（ネットワークＩ／Ｆ）の識別番号である出力回線番号を格納する。ＳＭＡＣ７０３は、データリンク層の送信元アドレスである送信元ＭＡＣアドレスを格納する。ＤＭＡＣ７０４は、宛先アドレスである宛先ＭＡＣアドレスを格納する。Ｐｒｏｔｏ７０５は、ネットワーク層のプロトコルを格納する。ＳＩＰ７０６は、送信元アドレス、すなわち、送信側のホストのアドレスである送信元ＩＰアドレスを格納する。ＤＩＰ７０７は、宛先アドレス、すなわち、受信側のホストのアドレスである宛先ＩＰアドレスを格納する。ＳＰＯＲＴ７０８は、ＴＣＰの送信元ポートを格納する。ＤＰＯＲＴ７０９は、ＴＣＰの宛先ポートを格納する。ＴＣＰ  Ｆｌａｇ７１０はＴＣＰフラグを格納する。ＰＳＥＱ７１１は、送信シーケンス番号（ＳＥＱ番号）を格納する。ＰＡＣＫ７１２は、受信シーケンス番号（ＡＣＫ番号）を格納する。ＯｔｈｅｒＨｅａｄｅｒ７１３は、その他のＩＰ／ＴＣＰヘッダデータを格納する。各種コマンド７１４は、アプリケーションレイヤ（アプリケーション層）のコマンドを格納する。Ｐａｙｌｏａｄ７１５は、パケットヘッダや各種コマンド以外のデータを格納する。
【００７６】
通信状態変更部１２５は、処理パケット判定部１０６からパケットを入力されると、受信パケットのＰ．Ｈ．７１６に基づいて、通信状態テーブル１２６を参照して、対応する通信状態が存在するか否かを判定する。対応する通信状態があれば、これを読み出して変更を行う。対応する通信状態がなければ、通信状態テーブルに新たなエントリを作成する。
【００７７】
図８Ａは、通信状態テーブル１２６の一例の説明図である。
【００７８】
通信状態テーブル１２６は、ｎ個のエントリ８０１（８０１−１〜８０１−ｎ）を含む。
【００７９】
エントリ８０１は、ＳＩＰ８０２と、ＤＩＰ８０３と、ＳＰＯＲＴ８０４と、ＤＰＯＲＴ８０５と、ＴＳＥＱ８０６と、ＴＡＣＫ８０７と、ＷＩＮ８０８と、ＳＷＩＮ８０９と、ＴＩＭＥ８１０と、ＳＴＡＴＥ８１１と、ＩＤ８１２と、ＡＤＤ８１３と、を含む。
【００８０】
ＳＩＰ８０２は、送信元アドレス、すなわち、送信側のホストのアドレスである送信元ＩＰアドレスを記録する。ＤＩＰ８０３は、宛先アドレス、すなわち、受信側のホストのアドレスである宛先ＩＰアドレスを記録する。ＳＰＯＲＴ８０４は、ＴＣＰの送信元ポートを記録する。ＤＰＯＲＴ８０５は、ＴＣＰの宛先ポートを記録する。ＴＳＥＱ８０６は、受信側ホストのシーケンス番号を記録する。ＴＡＣＫ８０７は、送信側ホストのシーケンス番号を記録する。ＷＩＮ８０８は、ＴＣＰコネクションの輻輳ウィンドウサイズを記録する。ＳＷＩＮ８０９は、送信済みデータサイズを表す送信済みウィンドウサイズを記録する。ＴＩＭＥ８１０は、エントリに係るパケットを受信した最新の時刻を記録する。ＳＴＡＴＥ８１１は、ＴＣＰコネクションの状態や、アプリケーションレイヤプロトコルの有無とその種類、コマンド及び引数等を格納する。ＩＤ８１２は、送信済みパケットのＩＤ番号を記録する。ＡＤＤ８１３は、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタを記録する。なお、本実施形態では、ＳＩＰ８０２と、ＤＩＰ８０３と、ＳＰＯＲＴ８０４と、ＤＰＯＲＴ８０５とをまとめて、Ｔ．Ｈ．（Ｔａｂｌｅ  Ｈｅａｄｅｒ）８１４と表現する。
【００８１】
図８Ｂは、ＳＴＡＴＥ８１１に格納される内容の一例を示す説明図である。
【００８２】
ＳＴＡＴＥ８１１は、ＴＣＰレイヤの状態を示す情報及びアプリケーションレイヤの情報を格納する。
【００８３】
具体的には、ＴＣＰレイヤの状態を示す情報として、ＴＣＰコネクションの開始又は停止を示す情報（ＯＰＥＮ／ＣＬＯＳＥ）８２０と、ＴＣＰコネクションの確立又は未確立を示す情報（ＦＵＬＬ／ＨＡＬＦ）８２１と、ＴＣＰコネクションの輻輳状態を示す情報（Ｓｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ（以降、Ｃｏｎｇ．  Ａｖｏｉｄ．と表記する）／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ）８２２と、を格納する。
【００８４】
また、アプリケーションレイヤの情報として、アプリケーションレイヤプロトコルの有無と種類（無／ＨＴＴＰ／ＴＥＬＮＥＴ／ＦＴＰ等）８２３と、アプリケーションレイヤプロトコルが実行中のコマンド及びその引数と種類（ＧＥＴ／ＰＯＳＴ、ＳＥＬＥＣＴ／ＩＮＳＥＲＴ／ＤＥＬＥＴＥ等）８２４と、前記コマンドにより実行中のファイル送受信の状態（開始（Ｓｔａｒｔ）、未完了（Ａｃｔｉｖｅ）、完了（Ｐａｓｓｉｖｅ）等）８２５と、を記録する。
【００８５】
図９は、通信状態変更部１２５の処理のフローチャートである。
【００８６】
本フローチャートは、通信状態変更部１２５が、パケットを受信したことを契機として開始される（ステップ９０１）。
【００８７】
通信状態変更部１２５は、処理パケット判定部１０６からパケット１３１を入力されると、受信パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮか否かを判定する（ステップ９０２）。
【００８８】
ステップ９０２にて、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮである場合は（ステップ９０３）、通信状態変更部１２５は、通信状態テーブル１２６から、受信したパケットのＰ．Ｈ．７１６と一致するＴ．Ｈ．８１４を含むエントリ８０１を検索する（ステップ９０４）。
【００８９】
一致するエントリがない場合は（ステップ９０５）、タイマ１６０によって出力された現在時刻１６１を取得して、パケットを受信した最新時刻８１０と現在時刻１６１との差を比較する。比較の結果、差が予め定めた閾値Ｔｈｒ以上であるエントリ８０１を検索する（ステップ９７４）。差が予め定めた閾値Ｔｈｒ以上であるエントリ８０１が検索された場合は（ステップ９０７）、検索されたエントリ８０１を初期化する。そして、このエントリ８０１のＴ．Ｈ．８１４を受信したパケットのＰ．Ｈ．７１６に変更する。また、このエントリ８０１のＳＴＡＴＥ８１１を「ＨＡＬＦ」及び「ＯＰＥＮ」状態に変更する。また、このエントリ８０１のＴＳＥＱ８０６をランダムな値に変更する。また、このエントリ８０１のＴＡＣＫ８０７をＰＳＥＱ７１１に１を加算した値に変更する（ステップ９７５）。
【００９０】
すなわち、セッションの開始要求であるＳＹＮパケットを受信した場合は、通信状態テーブル１２６のエントリ８０１を初期化して新たに作成する。
【００９１】
ステップ９０４において、受信したパケットのＰ．Ｈ．７１６と一致するＴ．Ｈ．８１４を含むエントリがある場合は（ステップ９０６）、通信状態変更部１２５は、タイマ１６０によって出力される現在時刻１６１を取得して、パケットを受信した最新時刻８１０と現在時刻１６１との差を比較し、差が予め定めた閾値Ｔｈｒ以上であるか否かを判定する（ステップ９０８）。
【００９２】
差が閾値Ｔｈｒ以上である場合は（ステップ９０９）、通信状態変更部１２５は、ステップ９７５の処理を実行する。差が閾値Ｔｈｒ以上ではない場合は（ステップ９１０）、読み出したエントリ８０１の通信状態は変更せずに、フィルタ部１２４に受信したパケットを廃棄するように命令する（ステップ９７６）。
【００９３】
すなわち、同一のＰ．Ｈ．７１４を有するＳＹＮパケットが閾値Ｔｈｒよりも短い間隔で再送された場合は、通信状態変更部１２５は、そのパケットを異常パケットと判断し、パケットを廃棄する。
【００９４】
ステップ９０２において、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮではない場合は（ステップ９１１）、通信状態変更部１２５は、通信状態テーブル１２６から、受信したパケットのＰ．Ｈ．７１６と一致するＴ．Ｈ．８１４を含むエントリ８０１を検索する（ステップ９１２）。受信したパケットのＰ．Ｈ．７１６と一致するＴ．Ｈ．８１４を含むエントリ８０１がない場合は（ステップ９１３）、通信状態変更部１２５は、通信状態を読み出すことなく、フィルタ部１２４に受信したパケットを廃棄するように命令する（ステップ９７６）。
【００９５】
すなわち、ＳＹＮパケットを一度も受信していない状態（セッションの開始が要求されていない状態）でＴＣＰ  Ｆｌａｇ７１０がＳＹＮ以外のパケットを受信した場合は、通信状態変更部１２５は、そのパケットを異常パケットと判断し、パケットを廃棄する。
【００９６】
ステップ９１２において、受信したパケットのＰ．Ｈ．７１６と一致するＴ．Ｈ．８１４を含むエントリがある場合は（ステップ９１４）、パケットのＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるか否かを判定する（ステップ９１５）。
【００９７】
ステップ９１５にてＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫである場合は（ステップ９１６）、通信状態変更部１２５は、受信したパケットのＰＡＣＫ７１２の値とＴＳＥＱ８０６の値との差が０であるエントリ８０１、すなわち、受信したパケットのＰＡＣＫ７１２の値と一致するＴＳＥＱ８０６を含むエントリ８０１があるか否かを判定する（ステップ９１７）。
【００９８】
一致するエントリ８０１がある場合は（ステップ９１８）、通信状態変更部１２５は、このエントリ８０１のＳＴＡＴＥ８１１をＣＬＯＳＥ状態に変更する。また、このエントリ８０１のＴＳＥＱ８０６をＰＡＣＫ７１２に変更する。また、このエントリ８０１のＴＡＣＫ８０７をＰＳＥＱ７１１に１を加算した値に変更する（ステップ９７７）。
【００９９】
ステップ９１８において、一致するエントリ８０１がない場合は（ステップ９１９）、エントリ８０１の通信状態を読み出すことなく、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９７８）。
【０１００】
すなわち、一度ＳＹＮパケットを受信した後にさらに受信したＳＹＮ−ＡＣＫパケットに含まれるＰＡＣＫ７１２の値が、既に通信状態テーブル１２６に格納されているエントリのＴＳＥＱ８０６の値と異なる場合は、通信状態変更部１２５は、そのパケットを異常パケットと判断し、パケットを廃棄する。
【０１０１】
ステップ９１５において、ＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫではない場合は（ステップ９２０）、受信したパケットのＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるか否かを判定する（ステップ９２１）。
【０１０２】
ＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫである場合は（ステップ９２２）、受信したパケットのＰＡＣＫ７１２の値とＴＳＥＱ８０６の値との差が０であるエントリ８０１、すなわち、受信したパケットのＰＡＣＫ７１２の値と一致するＴＳＥＱ８０６を含むエントリ８０１があるか否かを判定する（ステップ９２３）。一致するエントリ８０１がある場合は（ステップ９２４）、通信状態変更部１２５は、このエントリ８０１のＳＴＡＴＥ８１１をＣＬＯＳＥ状態に変更する（ステップ９７９）。一致するエントリ８０１がない場合は（ステップ９２５）、読み出したエントリ８０１記載の通信状態を変更することなく、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９８０）。
【０１０３】
すなわち、一度ＳＹＮパケットを受信した後にさらに受信したＦＩＮ−ＡＣＫパケットに含まれるＰＡＣＫ７１２の値が、既に通信状態テーブル１２６に格納されているエントリのＴＳＥＱ８０６の値と異なる場合は、通信状態変更部１２５は、そのパケットを異常パケットと判断し、パケットを廃棄する。
【０１０４】
ステップ９２１において、ＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫではない場合は（ステップ９２６）、通信状態変更部１２５は、受信したパケットのＴＣＰ  Ｆｌａｇ７１０がＡＣＫか否か、かつ、一致するエントリ８０１のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態であるか否かを判定する（ステップ９２７）。
【０１０５】
ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、かつ、ＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態である場合は（ステップ９２８）、通信状態変更部１２５は、受信したパケットのＰＡＣＫ７１２からエントリ８０１のＴＳＥＱ８０６を減算した値が１であるか、すなわち、ＰＡＣＫ７１２とＴＳＥＱ８０６との差が１であるか否かを判定する（ステップ９２９）。ＰＡＣＫ７１２とＴＳＥＱ８０６との差が１である場合は（ステップ９３０）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＦＵＬＬ  ＯＰＥＮ状態に変更する。また、このエントリ８０１のＴＳＥＱ８０６をＰＡＣＫ７１２に変更する（ステップ９８１）。
【０１０６】
ステップ９２９において、ＰＡＣＫ７１２とＴＳＥＱ８０６との差が１ではない場合は（ステップ９３１）、通信状態変更部１２５は、読み出したエントリ８０１の通信状態を変更せずに、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９８２）。
【０１０７】
すなわち、一度ＳＹＮパケットを受信した後にさらに受信したＡＣＫパケットに含まれるＰＡＣＫ７１２の値が、既に通信状態テーブル１２６に格納されているエントリのＴＳＥＱ８０６の値と異なる場合は、通信状態変更部１２５は、そのパケットを異常パケットと判断し、パケットを廃棄する。
【０１０８】
ステップ９２７において、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫではない、又は、ＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態ではない場合は（ステップ９３２）、通信状態変更部１２５は、受信したパケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫか否か、かつ、エントリ８０１のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態か否かを判定する（ステップ９３３）。
【０１０９】
ステップ９３３において、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫであり、かつ、ＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態である場合は（ステップ９３４）、通信状態変更部１２５は、受信したパケットのＰＡＣＫ７１２とエントリ８０１のＴＳＥＱ８０６との差が１であるか否かを判定する（ステップ９３５）。
【０１１０】
ＰＡＣＫ７１２とＴＳＥＱ８０６との差が１である場合は（ステップ９３６）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＦＵＬＬ  ＯＰＥＮ状態に変更し、このエントリ８０１のＴＳＥＱ８０６をＰＡＣＫ７１２に変更する（ステップ９８３）。ＰＡＣＫ７１２とＴＳＥＱ８０６との差が１でない場合は（ステップ９３７）、通信状態変更部１２５は、読み出したエントリ８０１の通信状態を変更せずに、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９８４）。
【０１１１】
ステップ９３３において、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫではない、又は、ＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ状態ではない場合は（ステップ９３８）、通信状態変更部１２５は、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫか否か、かつ、エントリ８０１のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮ状態か否かを判定する（ステップ９３９）。
【０１１２】
ＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫであり、かつ、ＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮ状態である場合は（ステップ９４０）、通信状態変更部１２５は、受信したパケットのＰＡＣＫ７１２の値とエントリ８０１のＴＳＥＱ８０６の値とが一致するか否かを判定する（ステップ９４１）。ＰＡＣＫ７１２とＴＳＥＱ８０６とが一致しない場合は（ステップ９４２）、通信状態変更部１２５は、読み出したエントリ８０１の通信状態を変更せずに、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９８５）。
【０１１３】
ステップ９４１において、ＰＡＣＫ７１２とＴＳＥＱ８０６とが一致する場合は（ステップ９４３）、通信状態変更部１２５は、パケットの各種コマンド７１４の内容を参照する。そして、各種コマンド７１４の内容が、アプリケーションレイヤプロトコルがＨＴＴＰであり、このＨＴＴＰによるＧＥＴコマンドであるか否かを判定する（ステップ９４４）。
【０１１４】
ＨＴＴＰによるＧＥＴコマンドである場合は（ステップ９４５）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＨＴＴＰ  ＧＥＴ  Ｓｔａｒｔ、すなわちファイル送受信開始状態に変更する。またこのエントリ８０１のＴＡＣＫ８０７の値を、ＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、このエントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９８６）。
【０１１５】
ステップ９４４において、各種コマンド７１４の内容がＨＴＴＰによるＧＥＴコマンドではない場合は（ステップ９４６）、各種コマンド７１４の内容が、アプリケーションレイヤプロトコルがＨＴＴＰであり、ＨＴＴＰによるＰＯＳＴコマンドであるか否かを判定する（ステップ９４７）。ＨＴＴＰによるＰＯＳＴコマンドである場合は（ステップ９４８）、通信状態変更部１２５は、受信したパケットの各種コマンド７１４に含まれるコマンド引数がＳＥＬＥＣＴであるか否かを判定する（ステップ９４９）。
【０１１６】
コマンド引数がＳＥＬＥＣＴである場合は（ステップ９５０）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  ＳＥＬＥＣＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始状態に変更する。また、エントリ８０１のＴＡＣＫ８０７をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、このエントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９８７）。
【０１１７】
コマンド引数がＳＥＬＥＣＴではない場合は（ステップ９５１）、通信状態変更部１２５は、受信したパケットの各種コマンド７１４に含まれるコマンド引数がＤＥＬＥＴＥであるか否かを判定する（ステップ９５２）。
【０１１８】
コマンド引数がＤＥＬＥＴＥである場合は（ステップ９５３）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  ＤＥＬＥＴＥ  Ｓｔａｒｔ、すなわち、ファイル送受信開始状態に変更する。また、エントリ８０１のＴＡＣＫ８０７の値をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、エントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９８８）。
【０１１９】
コマンド引数がＤＥＬＥＴＥではない場合は（ステップ９５４）、通信状態変更部１２５は、パケットの各種コマンド７１４に含まれるコマンド引数がＩＮＳＥＲＴであるか否かを判定する（ステップ９５５）。
【０１２０】
コマンド引数がＩＮＳＥＲＴである場合は（ステップ９５６）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  ＩＮＳＥＲＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始状態に変更する。また、エントリ８０１のＴＡＣＫ８０７の値をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、エントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９８９）。
【０１２１】
コマンド引数がＩＮＳＥＲＴではない場合は、処理を終了する。又は、別のコマンド引数であるかを判定して、判定された引数に適した処理を実行する。
【０１２２】
ステップ９４７において、ＨＴＴＰによるＰＯＳＴコマンドではない場合は、処理を終了する。又は、別のアプリケーションレイヤプロトコルであるかを判定して、判定されたプロトコルに適した処理を実行する。
【０１２３】
ステップ９３９において、ＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫではない、又は、ＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮ状態ではない場合は（ステップ９５７）、通信状態変更部１２５は、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、かつ、ＳＴＡＴＥ８１１がＡｃｔｉｖｅ状態であるか否かを判定する（ステップ９５８）。
【０１２４】
ＴＣＰ  Ｆｌａｇ７１０がＡＣＫではない、又は、ＳＴＡＴＥ８１１がＡｃｔｉｖｅ状態ではない場合は（ステップ９６０）、通信状態変更部１２５は、読み出したエントリ８０１の通信状態を変更せずに、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９７３）。
【０１２５】
ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、かつ、ＳＴＡＴＥ８１１がＡｃｔｉｖｅ状態である場合は（ステップ９５９）、通信状態変更部１２５は、エントリ８０１のＰＡＣＫ７１２の値とＴＳＥＱ８０６の値とが一致するか否かを判定する（ステップ９６１）。
【０１２６】
ＰＡＣＫ７１２の値とＴＳＥＱ８０６の値とが一致する場合は（ステップ９６３）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＦａｓｔ  Ｒｅｃｏｖｅｒｙ状態に変更する。また、エントリ８０１のＴＡＣＫ８０７の値をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、エントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９７０）。
【０１２７】
ステップ９６１において、受信したパケットのＰＡＣＫ７１２の値とエントリ８０１のＴＳＥＱ８０６の値が一致しない場合は（ステップ９６２）、受信したパケットのＰＡＣＫ７１２の値とＴＳＥＱ８０６の値との差が０より大きく、かつ、輻輳ウィンドウサイズＷＩＮ８０８より小さいか否かを判定する（ステップ９６４）。
【０１２８】
ＰＡＣＫ７１２の値とＴＳＥＱ８０６の値との差が０以下、又は、輻輳ウィンドウサイズＷＩＮ８０８以上である場合は（ステップ９６６）、読み出したエントリ８０１の通信状態を変更せずに、フィルタ部１２４にパケットを廃棄するように命令する（ステップ９７３）。
【０１２９】
ＰＡＣＫ７１２の値とＴＳＥＱ８０６の値との差が０より大きく、かつ、輻輳ウィンドウサイズＷＩＮ８０８よりも小さい場合は（ステップ９６５）、輻輳ウィンドウサイズＷＩＮ８０８が、予め定められた最大ウィンドウサイズ、すなわち、そのネットワークで許容される最大の容量の１／２の値であるｓｓｔｈよりも大きいか否かを判定する（ステップ９６７）。
【０１３０】
輻輳ウィンドウサイズＷＩＮ８０８がｓｓｔｈよりも大きい場合は（ステップ９６８）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＣｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ状態に変更する。また、エントリ８０１のＴＡＣＫ８０７の値をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、エントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９７２）。
【０１３１】
輻輳ウィンドウサイズＷＩＮ８０８がｓｓｔｈよりも小さい場合は（ステップ９６９）、通信状態変更部１２５は、エントリ８０１のＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ状態に変更する。また、エントリ８０１のＴＡＣＫ８０７の値をＰＳＥＱ７１１の値と各種コマンド７１４のバイトサイズとＰａｙｌｏａｄ７１５のバイトサイズとの和に変更する。また、エントリ８０１のＴＳＥＱ８０６の値をＰＡＣＫ７１２の値に変更する（ステップ９７１）。
【０１３２】
以上、図９に示した処理によって、通信状態変更部１２５は、読み出した通信状態８０１に含まれる情報と受信したパケット１３０に含まれる情報とに基づいて、読み出した通信状態８０１を変更し、変更済みの通信状態１３４を、通信状態バッファ１２１に出力する（図６の処理１３２）。これによって、演算マトリックス２０７の搭載論理の変更に必要な通信状態を、パケットの転送に伴う通信状態の変更に応じて変更することができる。また、通信状態８０１の情報と、パケット１３１の情報と、タイマ１６０によって生成された現在時刻１６１との組合せに異常がある場合は、当該パケットを廃棄することによって、不正なアクセスを排除できる。
【０１３３】
なお、通信状態変更部１２５が出力する通信状態１３４のＳＴＡＴＥ８１１は、図８Ｂに示した組合せのいずれかを示した一意の値となる。
【０１３４】
図６に戻り、フィルタ部１２４は、通信状態変更部１２５から図９のステップ９７６、９７８、９８０、９８２、９８４、９８５又は９７３によって出力されたパケット廃棄命令１３３を入力されると、処理パケット判定部１０６から入力された受信パケット１３１を廃棄する。廃棄されなかったパケット１３５は、パケットバッファ１２２に送られる。
【０１３５】
パケットバッファ１２２に蓄積されたパケット１３５は、演算マトリックス２０７内のバッファ読み出し判定用演算器群１１４から出力されるバッファ読み出し命令１３９を受信したタイミングで、１つのパケット１３６を読み出して出力する。パケットバッファ１２２が空の場合は、何もしない。
【０１３６】
パケットバッファ１２２から読み出されたパケット１３６は、通信状態読出し判定部１２３へ出力される。通信状態読み出し判定部１２３は、取得したパケットのＰ．Ｈ．７１６を参照して、処理すべきパケットか否かを判定する。
【０１３７】
処理すべきパケットである場合は、通信状態バッファ１２１から通信状態１３８を読み出して（処理１３７）、処理すべきパケット１０７を、パケット判定部１２０と遅延調整部１１８に出力する。処理すべきでないパケットであると判定した場合は、処理が不要なパケット１４７を、集約部１２８に出力する。そして、パケットバッファ１２２に、次のパケットの読み出し命令１３９を出力する。
【０１３８】
通信状態判定部１１９は、通信状態読み出し部１２３から出力された通信状態の内容を参照して、通信状態を分類する。
【０１３９】
通信状態の分類は、通信状態に含まれるＴＣＰコネクションの開始又は停止を示す値を参照して、ＴＣＰコネクションの開始又は停止を判定することによって通信状態を分類し、ＴＣＰコネクションが開始している場合は、通信状態に含まれるＴＣＰコネクションの確立又は未確立示す値を参照して、ＴＣＰコネクションの確立又は未確立を判定することによって前記通信状態を分類し、ＴＣＰコネクションが確立している場合は、通信状態に含まれるＴＣＰコネクションの輻輳状態を示す値を参照して、ＴＣＰコネクションの輻輳状態を判定することによって前記通信状態を分類し、通信状態に含まれるアプリケーションレイヤプロトコルの有無を判定することによって通信状態を分類し、アプリケーションレイヤプロトコルがある場合は、通信状態に含まれるアプリケーションレイヤプロトコルの種類と、プロトコルが実行中のコマンド及びコマンドの引数の有無を判定することによって通信状態を分類し、コマンド及びコマンドの引数がある場合は、コマンド及びコマンドの引数の種類の判定し、コマンドによって実行中のファイル送受信の進捗状態が開始、未完了又は完了の何れであるかを判定することによって、通信状態を分類する。
【０１４０】
これらの値によって分類された通信状態の分類結果は、演算マトリックス２０７の自律再構成トリガ生成用演算器群１１１及び外部再構成トリガ生成用演算器群１１２に出力される。
【０１４１】
図１０は、通信状態判定部１１９の通信状態分類結果１５０及びパケット判定部１２０のパケット分類結果１５１に基づいて、演算マトリックス２０７内の自律再構成トリガ生成用演算器群１１１、及び、外部再構成トリガ生成用演算器群１１２が、自律再構成トリガ１４１又は外部再構成トリガ１４２を生成する処理のフローチャートである。
【０１４２】
なお、本処理は、自律再構成トリガ生成用演算器群１１１と外部再構成トリガ生成用演算器群１１２とが同時に実行する。そして、再構成に必要な情報が、回路構成蓄積バッファ１０１に蓄積された構成情報である場合は、自律再構成トリガ生成用演算器群１１１が、自律再構成機構１０９に自律再構成トリガを出力する。一方、再構成に必要な情報が、外部メモリ２０５に格納されている構成情報である場合は、外部再構成トリガ生成用演算器群１１２が、プロセッサ２０６の回路構成変更モジュール１１６に外部再構成トリガを出力する。
【０１４３】
自律再構成トリガ生成用演算器群１１１と外部再構成トリガ生成用演算器群１１２とは、通信状態分類結果１５０とパケット分類結果１５１を入力されると（ステップ１００１）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮであるか否かを判定する（ステップ１００２）。
【０１４４】
ステップ１００２にて、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮである場合は（ステップ１００３）、受信パケットに対して、ＴＣＰ  Ｆｌａｇ７１０をＳＹＮ−ＡＣＫに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４０）。
【０１４５】
ステップ１００２において、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮでない場合は（ステップ１００４）、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるか否かを判定する（ステップ１００５）。
【０１４６】
ステップ１００５において、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫである場合は（ステップ１００６）、受信パケットに対して、ＴＣＰ  Ｆｌａｇ７１０をＦＩＮ−ＡＣＫに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４１）。
【０１４７】
ステップ１００５において、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫでない場合は（ステップ１００７）、次に、通信状態の分類結果が、通信状態の通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるか否かを判定する（ステップ１００８）。
【０１４８】
ステップ１００８において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫである場合は（ステップ１００９）、受信パケットに対して、ＴＣＰ  Ｆｌａｇ７１０をＲＳＴ−ＡＣＫに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４２）。
【０１４９】
ステップ１００８において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＣＬＯＳＥであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫでない場合は（ステップ１０１０）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫであるか否かを判定する（ステップ１０１１）。
【０１５０】
ステップ１０１１において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫである場合は（ステップ１０１２）、受信パケットに対して、当該パケットの各種コマンド７１４を、通信状態のＳＴＡＴＥ８１１が示すアプリケーションレイヤプロトコルのコマンドに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４３）。
【０１５１】
ステップ１０１１において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮであり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫでない場合は（ステップ１０１３）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＧＥＴ／ＰＯＳＴ  Ａｃｔｉｖｅ（ファイル送受信中）であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるか否かを判定する（ステップ１０１４）。
【０１５２】
ステップ１０１４にて、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＧＥＴ／ＰＯＳＴ  Ａｃｔｉｖｅ（ファイル送受信中）であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＡＣＫである場合は（ステップ１０１６）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳｌｏｗ  Ｓｔａｒｔと分類されているか否かを判定する（ステップ１０１７）。
【０１５３】
ステップ１０１７において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳｌｏｗ  Ｓｔａｒｔである場合は（ステップ１０１８）、Ｓｌｏｗ  Ｓｔａｒｔ時のＴＣＰの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４４）。
【０１５４】
ステップ１０１７において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳｌｏｗ  Ｓｔａｒｔではない場合は（ステップ１０１９）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＣｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅであるか否かを判定する（ステップ１０２０）。
【０１５５】
ステップ１０２０において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＣｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅである場合は（ステップ１０２１）、Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ時のＴＣＰの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４５）。
【０１５６】
ステップ１０２０において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＣｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅでない場合は（ステップ１０２２）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＦａｓｔ  Ｒｅｃｏｖｅｒｙであるか否かを判定する（ステップ１０５５）。
【０１５７】
ステップ１０５５において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＦａｓｔ  Ｒｅｃｏｖｅｒｙである場合は（ステップ１０２３）、Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ時のＴＣＰの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４６）。
【０１５８】
ステップ１０１４において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＧＥＴ／ＰＯＳＴ  Ａｃｔｉｖｅ、すなわち、ファイル送受信中であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＡＣＫでない場合は（ステップ１０１５）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＧＥＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫであると分類されているか否かを判定する（ステップ１０２４）。
【０１５９】
ステップ１０２４において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＴＴＰ  ＧＥＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫである場合は（ステップ１０２５）、ＧＥＴコマンドにより要求されたファイルを検索して当該検索結果をパケットにより返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４７）。
【０１６０】
ステップ１０２４において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＴＴＰ  ＧＥＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫでない場合は（ステップ１０２６）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＴＴＰ  ＰＯＳＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫであるか否かを判定する（ステップ１０２７）。
【０１６１】
ステップ１０２７において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＴＴＰ  ＰＯＳＴ  Ｓｔａｒｔ、すなわち、ファイル送受信開始であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫでない場合は（ステップ１０２９）、パケットを廃棄するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４８）。
【０１６２】
ステップ１０２７において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＨＴＴＰ  ＰＯＳＴ  Ｓｔａｒｔ（ファイル送受信開始）であり、かつ、パケットのＴＣＰ  Ｆｌａｇ７１０がＰＳＨ−ＡＣＫである場合は（ステップ１０２８）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳＥＬＥＣＴであるか否かを判定する（ステップ１０５２）。
【０１６３】
ステップ１０５２において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳＥＬＥＣＴである場合は（ステップ１０３１）、ＳＥＬＥＣＴコマンドにより要求されたデータを検索して当該検索結果をパケットにより返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０４９）。
【０１６４】
ステップ１０５２において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＳＥＬＥＣＴでない場合は（ステップ１０３０）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＤＥＬＥＴＥであるか否かを判定する（ステップ１０５３）。
【０１６５】
ステップ１０５３において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＤＥＬＥＴＥである場合は（ステップ１０３３）、ＤＥＬＥＴＥコマンドにより削除を要求されたデータを検索し、検索されたデータを削除して、削除結果を示すパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０５０）。
【０１６６】
ステップ１０５３において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＤＥＬＥＴＥでない場合は（ステップ１０３２）、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＩＮＳＥＲＴであるか否かを判定する（ステップ１０５４）。
【０１６７】
ステップ１０５４において、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＩＮＳＥＲＴである場合は（ステップ１０３４）、ＩＮＳＥＲＴコマンドによって挿入を要求されたデータを書き込み、書込によって挿入された結果を示すパケットを返信するための論理が記載された構成情報を、演算マトリックス２０７に転送することを要求する再構成トリガを生成する（ステップ１０５１）。
【０１６８】
演算マトリックス２０７内の自律再構成トリガ生成用演算器群１１１と外部再構成トリガ生成用演算器群１１２は、以上に述べた処理により、通信状態判定部１１９の通信状態分類結果１５０及びパケット判定部１２０のパケット分類結果１５１に基づいて、自律再構成トリガ１４２又は外部再構成トリガ１４１を生成する。外部再構成トリガ生成用演算器群１１２は、外部再構成トリガ１４１を生成すると同時に、メモリ２０５内のポインタ領域１５７に、要求する構成情報が記載されたアドレスポインタの値を書き込む（処理１５８）。
【０１６９】
なお、本実施形態では、ステップ１０１４にて、通信状態の分類結果が、通信状態のＳＴＡＴＥ８１１がＧＥＴ／ＰＯＳＴ  Ａｃｔｉｖｅであるか否かを判定したが、ＧＥＴとＰＯＳＴを別々に分類して、コマンド毎に異なる再構成トリガを生成してもよい。また、本実施形態では、通信状態の分類結果１５０とパケット分類結果１５１の両方を使用して再構成トリガを生成する例を示したが、通信状態分類結果１５０のみを使用して再構成トリガを生成してもよい。
【０１７０】
自律再構成機構１０９は、自律再構成トリガ１４２を入力されると、自律再構成トリガ１４２の種類に基づいて、回路構成蓄積バッファ１０８が格納する構成情報１０８−１〜１０８−３のいずれかを選択し（処理１４５）、選択した構成情報１０８−ｋ（ｋ＝１〜３）を演算マトリックス２０７に転送する（処理１４３）。演算マトリックス２０７は、転送された構成情報１０８−ｋに従って、内部の演算器群の機能と配線を再構成し、搭載論理を変更する。このとき、主に、サーバサービス提供用演算器群１１３の搭載論理が変更される。搭載論理が変更されたサーバサービル提供用演算器群１１３が、この搭載論理に基づいて、受信パケットを処理し、装置２００内部に蓄積したデータの変更、新たなパケットの生成、及び、生成されたパケットの外部送信を実行する。
【０１７１】
プロセッサ２０６が実行する回路構成変更モジュール１１６は、外部再構成トリガ１４１を入力されると、メモリ２０５内のポインタ領域１５７から構成情報が記載されたアドレスポインタの値を読み出す（処理１５９）。
【０１７２】
さらに、読み出したアドレスポインタの値を用いて、メモリ２０５内の回路構成蓄積領域１１７から構成情報を読み出す（処理１４９）。読み出した構成情報は、回路構成蓄積バッファ１０８に格納された構成情報１０８−ｋ（ｋ＝１〜３）のうち一つと置き換わると共に（処理１４４）、演算マトリックス２０７に転送される（処理１４３）。演算マトリックス２０７は、転送された構成情報１０８−ｋに従って、内部の演算器群の機能と配線を再構成し、搭載論理を変更する。
【０１７３】
なお、回路構成蓄積バッファ１０１から構成情報１０８を読み出すことによって、高速な回路再構成が可能となる。一方で、回路構成蓄積領域１１７の記憶容量は、回路構成蓄積バッファ１０８の記憶容量よりも大幅に大きいため、外部メモリ２０５に構成情報を格納することによって、変更可能な搭載論理数が大幅に増加する。
【０１７４】
以上、図１０に示す処理によって、演算マトリックス２０７が、通信状態判定部１１９が予め生成したホスト間の通信状態の分類結果１５０に基づいて、パケット毎に搭載論理を変更する。また、自律再構成機構１０９によって出力される自律再構成トリガ１４２によって、自律再構成機構１０９が搭載論理を自律再構成する。また、外部再構成トリガ生成用演算器群１１２によって出力される外部再構成トリガ１４１によって、メモリ２０５に格納された搭載論理を変更する。変更可能な搭載論理数の大幅な増加を実現する。
【０１７５】
遅延調整部１１８は、通信状態判定部１１９の通信状態分類結果１５０及びパケット判定部１２０のパケット分類結果１５１に基づいて、演算マトリックス２０７の再構成が終了するタイミングを予測する。
【０１７６】
なお、演算マトリックス２０７が、自身の再構成の処理の終了を検出して、再構成終了の通知１６２を遅延調整部１１８に出力してもよい。
【０１７７】
遅延調整部１１８は、予測したタイミング、または、演算マトリックス２０７から出力された再構成終了の通知１６２、に基づいて、パケット１０７と通信状態１３８とに発生させる遅延を調整する。
【０１７８】
すなわち、遅延調整部１１８は、演算マトリックス２０７の搭載論理の変更が完了してから、サーバサービス提供用演算器群１１３に通信状態１３８とパケット１０７とが入力されるように、この遅延を調整する。
【０１７９】
遅延調整部１１８は、発生させる遅延を、通信状態判定部１１９の通信状態分類結果１５０及びパケット判定部１２０のパケット分類結果１５１に基づいて調整する。遅延発生済みの通信状態１５２とパケット１５３は、サーバサービス提供用演算器群１１３に出力する。これにより、演算マトリックス２０７の再構成が終了したタイミングで、パケット１０７と通信状態１３８とが、演算マトリックス２０７に入力される。
【０１８０】
サーバサービス提供用演算器群１１３は、メモリ２０５に蓄積したデータの変更（処理１５６）や、新たなパケット１４６を生成し、外部に送信することによって、データベース等のサーバサービスを実現する。処理の終了間際には、処理終了通知１４０を、バッファ読み出し判定用演算器群１１４に出力する。また、サーバ５０４との間でメモリ２０５に蓄積したデータのアップロード／ダウンロードを開始した場合に新たに生成される通信状態１５５を、通信状態変更部１２５に出力する。
【０１８１】
さらに、サーバサービス提供用演算器群１１３は、入力された通信状態１５２のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮ、すなわち、ＴＣＰコネクションが確立の場合に、受信したパケット１５３記載の送信／受信シーケンス番号ＰＳＥＱ７１１／ＰＡＣＫ７１２と、受信した通信状態１５２に記載の送信／受信シーケンス番号ＴＳＥＱ８０６／ＴＡＣＫ８０７と、輻輳ウィンドウサイズＷＩＮ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、に基づいて、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ、すなわち、ＴＣＰコネクションの輻輳状態が、スロースタート状態／輻輳回避状態／ファーストリカバリー状態、のいずれかに変更した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８２】
さらに、サーバサービス提供用演算器群１１３は、受信した通信状態１５２のＳＴＡＴＥ８１１がＦＵＬＬ  ＯＰＥＮ、すなわち、ＴＣＰコネクションが確立の場合、及び、Ｓｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ、すなわち、輻輳状態がスロースタート状態／輻輳回避状態の場合は、新たに生成したパケットの送信サイズに基づいて、一度に送信可能なデータサイズを表す輻輳ウィンドウサイズＷＩＮ８０８と、送信済みデータサイズを表す送信済みウィンドウサイズＳＷＩＮ８０９の値を変更して、新たに生成したパケットの送信数に基づいて、送信済みパケットのＩＤ番号ＩＤ８１２を変更した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８３】
さらに、サーバサービス提供用演算器群１１３は、受信した通信状態１５２のＳＴＡＴＥ８１１がＨＡＬＦ  ＯＰＥＮ、すなわち、ＴＣＰコネクションが未確立の場合は、送信済みパケットのＩＤ番号を示すＩＤ８１２を初期化した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８４】
さらに、サーバサービス提供用演算器群１１３は、受信した通信状態１５２のＳＴＡＴＥ８１１がＳｔａｒｔ、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態の場合は、新たに生成したパケットを送信した後に、ＳＴＡＴＥ８１１をＡｃｔｉｖｅ、すなわち、ファイル送受信の状態が未完了の状態に変更した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８５】
さらに、サーバサービス提供用演算器群１１３は、受信した通信状態１５２のＳＴＡＴＥ８１１がＳｔａｒｔ／Ａｃｔｉｖｅ、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態又は未完了状態の場合は、新たに生成したパケットの送信サイズに基づいて、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を初期化した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８６】
さらに、サーバサービス提供用演算器群１１３は、受信した通信状態１５２のＳＴＡＴＥ８１１がＳｔａｒｔ／Ａｃｔｉｖｅ、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態／未完了状態の場合は、新たに生成して送信するパケットがない場合に、ＳＴＡＴＥ８１１をＰａｓｓｉｖｅ、すなわち、ファイル送受信の状態が完了に変更した通信状態１５５を、通信状態変更部１２５に出力する。
【０１８７】
以上に述べた処理により、サーバサービス提供用演算器群１１３の処理内容に応じて通信状態を変更できる。
【０１８８】
通信状態変更部１２５は、サーバサービス提供用演算器群１１３から入力された通信状態１５５を、通信状態テーブル１２６に追加する。
【０１８９】
バッファ読み出し判定用演算器群１１４は、サーバサービス提供用演算器群１１３が新たに生成したパケットを全て送信したか否かを、サーバサービス提供用演算器群１１３が処理終了間際に出力する処理終了通知１４０に基づいて判定する。全て送信済みと判定した場合は、バッファ読み出し命令１３９をタイミング調整部１０５内のパケットバッファ１２２に出力する。このようにすることによって、前記演算マトリックス２０７において、あるパケットの処理終了後に、別のパケットの処理が直ちに実行されるようになる。これによって、前記演算マトリックス２０７の利用効率が向上する。
【０１９０】
集約部１２８は、サーバサービス提供用演算器群１１３からのパケット１４６と、通信状態読出し判定部１２３からの処理不要パケット１４７又は処理パケット判定部１０６からの処理不要パケットを集約して、外部に集約パケット１５４を送信する。このようにすることによって、処理が必要なパケットのみを演算マトリックス２０７に入力することによって、処理が不要なパケットの演算マトリックス２０７への入力を防ぐことができる。
【０１９１】
以上述べた処理によって、動的再構成プロセッサと、外部メモリを経由しない通信データの直接入出力を用いた装置において、プロセッサ外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することが可能となる。
【０１９２】
図１１〜１７は、装置２００が実現するサーバサービスのシーケンス図を示す。
【０１９３】
図１１は、攻撃者の異常パケットを装置２００が排除するシーケンス図を示す。
【０１９４】
攻撃者１１００は、サーバ５０４に向けて、送信元ＩＰアドレス７０６を偽装して、送信シーケンス番号ＰＳＥＱ７１１がＸ、受信シーケンス番号ＰＡＣＫ７１２が０、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮであるパケット１１０１を送信する。装置２００は、図９のステップ９０２、ステップ９０４及びステップ９７４を経由して、ステップ９７５の処理を実行する。
【０１９５】
ステップ９７５の処理によって、Ｔ．Ｈ．８１４をＰ．Ｈ．７１６に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨａｌｆ  Ｏｐｅｎに変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１＋１に変更し、ランダムな値Ｙを受信側ホストのシーケンス番号ＴＳＥＱ８０６に埋め込む（処理１１０２）。さらに、図１０のステップ１０４０の処理によって。ＴＣＰ  Ｆｌａｇ７１０をＳＹＮ−ＡＣＫとしたパケットを返信する論理に変更された演算マトリックス２０７が、ＰＳＥＱ７１１を、ＴＳＥＱ８０６の値ＹとしたＳＹＮ−ＡＣＫパケット１１０３を返信する。
【０１９６】
攻撃者１１００は、送信元ＩＰアドレス７０６を偽装していたため、ＳＹＮ−ＡＣＫパケット１１０３を受信することができない（処理１１０４）。そのため、適当な値Ｚ＋１をＰＡＣＫ７１２として、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるパケット１１０５を送信する。装置２００は、受信パケットについて、図９のステップ９２７を経由して、ステップ９２９においてＰＡＣＫ７１２の値がＴＳＥＱ８０６（Ｙ）＋１の値と異なると判定して、ステップ９８２の処理によって、パケットを廃棄する（処理１１０６）。
【０１９７】
また、攻撃者１１００が、ＳＹＮパケット１１０１と同一の送信元ＩＰアドレス７０６を用いて再びＳＹＮパケット１１０７を送信した場合、装置２００は、ステップ９０２及びステップ９０４を経由して、ステップ９１０の処理によって、タイマ１６０の生成する最新時刻１３３と通信状態のパケット受信の最新時刻ＴＩＭＥ８１０との差が、予め定めた閾値Ｔｈｒよりも小さいと判定した場合は、ステップ９７６の処理によって、パケットを廃棄する（処理１１０８）。
【０１９８】
以上、図１１を用いて説明した処理により、本実施形態の装置２００は、ＳＹＮ  ｆｌｏｏｄ型のＤＤｏＳ／ＤｏＳ攻撃による異常パケットを排除することができる。
【０１９９】
図１２は、ＲＦＩＤ／センサ／カメラ等のアクセス端末１２００からの正常パケットを装置２００が保護するシーケンス図を示す。
【０２００】
アクセス端末１２００は、サーバ５０４に向けて、送信シーケンス番号ＰＳＥＱ７１１がＸ、受信シーケンス番号ＰＡＣＫ７１２が０、ＴＣＰ  Ｆｌａｇ７１０がＳＹＮであるパケット１２０１を送信する。装置２００は、図９のステップ９０２及びステップ９０４及びステップ９７４を経由して、ステップ９７５に示す処理を実行する。ステップ９７５の処理では、Ｔ．Ｈ．８１４をＰ．Ｈ．７１６に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＡＬＦ  ＯＰＥＮに変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１＋１に変更し、ランダムな値Ｙを受信側ホストのシーケンス番号ＴＳＥＱ８０６に埋め込む（処理１２０２）。さらに、図１０のステップ１０４０の処理によって、ＴＣＰ  Ｆｌａｇ７１０をＳＹＮ−ＡＣＫとしたパケットを返信する論理に変更された演算マトリックス２０７が、ＰＳＥＱ７１１をＴＳＥＱ８０６の値ＹとしたＳＹＮ−ＡＣＫパケット１２０３を返信する。
【０２０１】
アクセス端末１２００は、ＳＹＮ−ＡＣＫパケット１２０３を受信すると、ＳＹＮ−ＡＣＫパケット１２０３に記載のＰＳＥＱ７１１（Ｙ）の値を用いて、ＰＡＣＫ７１２をＹ＋１として、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるパケット１２０４を送信する。装置２００は、ステップ９２７を経由して、ステップ９２９の処理によってＡＣＫ７１２の値がＴＳＥＱ８０６（Ｙ）＋１の値と一致すると判定して（処理１２０５）、ステップ９８１の処理を実行する。ステップ９８１の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＦＵＬＬ  ＯＰＥＮに変更する。これにより、通信の続行が可能となる。
【０２０２】
以上、図１２を用いて説明した処理により、装置２００がアクセス端末１２００からの正常パケットを保護することができる。
【０２０３】
図１３は、アクセス端末１２００から送信された、アプリケーションレイヤプロトコルＨＴＴＰを利用した「ファイルＡ」を要求するＧＥＴコマンドを受け取った装置２００が、装置内部に蓄積したデータを更新するシーケンス図を示す。なお、ここでは、外部メモリ２０５は、内部にポインタテーブル１３１２とファイルテーブル１３１４とを予め備える。
【０２０４】
装置２００が、アプリケーションレイヤプロトコルＨＴＴＰを利用して、ファイルＡを要求するＧＥＴコマンドを記載したパケット１３０１を受信すると、ステップ９３９及び９４１及び９４４を経由して、ステップ９８６の処理を実行する。ステップ９８６の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＴＴＰ  ＧＥＴ  Ｓｔａｒｔに変更する。さらに、図１０のステップ１０４７の処理によって搭載論理が変更された演算マトリックス２０７が、ポインタテーブル１３１２を検索して、メモリ２０５にファイルＡが蓄積されているか否かを判定する（処理１３１３）。ファイルＡが蓄積されていない場合は、演算マトリックス２０７は、ＴＣＰ  Ｆｌａｇ７１０をＳＹＮにしたパケット１３０２を生成して、サーバ５０４に送信する。さらに、このときの、装置２００とサーバ５０４との間の新たな通信状態１５５を、通信状態変更部１０４に出力する。
【０２０５】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫであるＳＹＮ−ＡＣＫパケット１３０３を受信すると、ステップ９３３及び９３５を経由して、ステップ９８３の処理を実行する。ステップ９８３の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＦＵＬＬ  ＯＰＥＮに変更する。さらに、図１０のステップ１０４３の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１３０４と、アプリケーションレイヤプロトコルＨＴＴＰを利用してファイルＡを要求するＧＥＴコマンドを含むパケット１３０５と、を送信する。さらに、演算マトリックス２０７は、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズ８０９と、送信済みパケットのＩＤ番号ＩＤ８１２と、ファイル送受信状態がＡｃｔｉｖｅに変更されたＳＴＡＴＥ８１１と、を含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２０６】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、ファイルＡの分割データ１３１５を含むＡＣＫパケット１３０６／１３０８を受信すると、ステップ９５８、９６１、９６４又は９６７を経由して、ステップ９７０、９７１又は９７２の処理を実行する。ステップ９７０、９７１又は９７２の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙのいずれかに変更する。
【０２０７】
さらに、図１０のステップ１０４４、１０４５又は１０４６の処理によって搭載論理が変更された演算マトリックス２０７が、受け取ったファイルＡの分割データ１３１５を、ファイルテーブル１３１４に蓄積する（処理１３１６）。このとき、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１３０７／１３０９を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズ８０９と、送信済みパケットのＩＤ番号ＩＤ８１２と、ファイル送受信状態とＴＣＰコネクションの輻輳状態の変わったＳＴＡＴＥ８１１と、を含む通信状態１５５を、通信状態変更部１０４に送信する。
【０２０８】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるＲＳＴ−ＡＣＫパケット１３１０を受信すると、ステップ９２１と９２３を経由して、ステップ９７９の処理を実行する。ステップ９７９の処理では、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＣｌｏｓｅに変更する。さらに、ステップ１０４２の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるＲＳＴ−ＡＣＫパケット１３１１を返信する。
【０２０９】
以上、図１３を用いて説明した処理により、装置２００がアクセス端末１２００からのファイル要求パケットをトリガにして、サーバからのファイルのダウンロードを行うことができる。
【０２１０】
図１４は、アクセス端末１２００から送信された、アプリケーションレイヤプロトコルＨＴＴＰを利用する、ファイルＡを要求するＧＥＴコマンドを受け取った装置２００が、装置内部に蓄積されたファイルＡを、分割して返信するシーケンス図を示す。なお、ここでは、外部メモリ２０５は、ポインタテーブル１４０９とファイルテーブル１４１０を予め備える。
【０２１１】
装置２００が、アプリケーションレイヤプロトコルＨＴＴＰを利用して、ファイルＡを要求するＧＥＴコマンドを記載したパケット１３０１を受信すると、図９のステップ９３９、９４１及び９４４を経由して、ステップ９８６の処理を実行する。ステップ９８６の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＴＴＰ  ＧＥＴ  Ｓｔａｒｔに変更する。さらに、図１０のステップ１０４７の処理によって搭載論理が変更された演算マトリックス２０７が、ポインタテーブル１３１２を検索して、外部メモリ２０５にファイルＡが蓄積されているか否かを判定する（処理１４０８）。ファイルＡが蓄積されている場合は、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、ファイルＡの分割データ１４１１を含むＡＣＫパケット１４０１を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ８１２と、ファイル送受信状態がＡｃｔｉｖｅに変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３とを含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２１２】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１４０２／１４０４を受信すると、ステップ９５８、９６１、９６４又は９６７を経由して、ステップ９７０、９７１又は９７２の処理を実行する。ステップ９７０、９７１又は９７２の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙのいずれかに変更する。
【０２１３】
さらに、図１０のステップ１０４４、１０４５又は１０４６の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、ファイルＡの分割データ１４１１を含むＡＣＫパケット１４０３を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ８１２と、ファイル送受信状態とＴＣＰコネクションの輻輳状態が変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５とを、通信状態変更部１０４に送信する。また、ＡＣＫパケット１４０４を受信したときは、ファイルＡが全て送信済みであることを示すので、通信状態１５２のＳＴＡＴＥ８１１をファイル送受信状態完了を示すＰａｓｓｉｖｅに変更し、パケットは返信しない。
【０２１４】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１４０５を受信すると、ステップ９１５と９１７を経由して、ステップ９７７の処理を実行する。ステップ９７７の処理では、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＣＬＯＳＥに変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１＋１に変更し、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更する。さらに、ステップ１０４１の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１４０６を返信する。このとき、出力された通信状態１５５のＳＴＡＴＥ８１１がＣＬＯＳＥであるので、装置２００は、この後で受け取るＡＣＫパケット１４０７は、ステップ９７３の処理によって廃棄される。
【０２１５】
以上、図１４を用いて説明した処理により、装置２００がアクセス端末１２００からのファイル要求パケットに対して、要求ファイルを返信することができる。
【０２１６】
図１５は、アクセス端末１２００によって送信された、アプリケーションレイヤプロトコルＨＴＴＰを利用した、「ＴＡＢＬＥ１  １５１０からＩ１＝Ａ」を満たすデータの抽出を要求するＳＥＬＥＣＴコマンドを引数に持つＰＯＳＴコマンドを受け取った装置２００が、抽出結果を返信するシーケンス図を示す。メモリ２０５は、内部にデータベース用テーブルＴＡＢＬＥ１  １５１０を用意しているものとする。
【０２１７】
装置２００が、アプリケーションレイヤプロトコルＨＴＴＰを利用して、ＴＡＢＬＥ１  １５１０からＩ１＝Ａを満たすデータの抽出を要求するＳＥＬＥＣＴコマンドを引数に持つＰＯＳＴコマンドを記載したパケット１５０１を受信すると、図９のステップ９４７及び９４９を経由して、ステップ９８７の処理を実行する。ステップ９８７の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  Ｓｅｌｅｃｔ  Ｓｔａｒｔに変更する。
【０２１８】
さらに、図１０のステップ１０４９の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＡＢＬＥ１  １５１０からＩ１＝Ａを満たすデータ１５１１を検索し、これを抽出して（処理１５０９）、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、抽出データ１５１１の分割データを含むＡＣＫパケット１５０２を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ８１２と、ファイル送受信状態がＡｃｔｉｖｅに変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２１９】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１５０３／１５０５を受信すると、ステップ９５８、９６１、９６４又は９６７を経由して、ステップ９７０、９７１又は９７２の処理を実行する。ステップ９７０、９７１又は９７２の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙのいずれかに変更する。
【０２２０】
さらに、図１０のステップ１０４４、１０４５又は１０４６の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、抽出データ１５１１の分割データを含むＡＣＫパケット１５０４を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ番号ＩＤ８１２と、ファイル送受信状態とＴＣＰコネクションの輻輳状態の変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５を、通信状態変更部１０４に出力する。また、ＡＣＫパケット１５０５を受信したときは、抽出データ１５１１は全て送信済みであるため、通信状態１５２のＳＴＡＴＥ８１１を、ファイル送受信状態完了を示すＰａｓｓｉｖｅに変更し、パケットは返信されない。
【０２２１】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１５０６を受信すると、ステップ９１５と９１７を経由して、ステップ９７７の処理を実行する。ステップ９７７では、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＣＬＯＳＥに変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１＋１に変更し、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更する。さらに、ステップ１０４１の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１５０７を返信する。さらに、出力した通信状態１５５のＳＴＡＴＥ８１１がＣＬＯＳＥであるため、装置２００がこの後で受け取るＡＣＫパケット１５０８は、ステップ９７３の処理によって廃棄される。
【０２２２】
以上、図１５を用いて説明した処理により、装置２００がアクセス端末１２００からのデータ選択要求パケットに対して、選択結果を返信することができる。
【０２２３】
図１６は、アクセス端末１２００から送信された、アプリケーションレイヤプロトコルＨＴＴＰを利用する、ＴＡＢＬＥ１  １６１２に対して新たなデータ（Ｉ１，Ｉ２，Ｉ３）＝（Ａ３，Ｂ３，Ｃ３）の挿入を要求するＩＮＳＥＲＴコマンドを引数に持つＰＯＳＴコマンドを受け取った装置２００が、新たなデータをＴＡＢＬＥ１  １６１２に挿入すると共に、挿入結果をサーバ５０４にアップロードするシーケンス図を示す。なお、この例では、外部メモリ２０５は、内部にＴＡＢＬＥ１  １６１２と、アップロードすべきデータへのポインタを複数記載したポインタテーブル１６１３とを予め備える。
【０２２４】
装置２００が、アプリケーションレイヤプロトコルＨＴＴＰを利用して、ＴＡＢＬＥ１  １６１２に対して新たなデータ（Ｉ１，Ｉ２，Ｉ３）＝（Ａ３，Ｂ３，Ｃ３）の挿入を要求するＩＮＳＥＲＴコマンドを引数に持つＰＯＳＴコマンドを記載したパケット１６０１を受信すると、図９のステップ９４７、９４９、９５２及び９５５を経由して、ステップ９８９の処理が実行される。ステップ９８９の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  Ｉｎｓｅｒｔ  Ｓｔａｒｔに変更する。
【０２２５】
さらに、図１０のステップ１０５１の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＡＢＬＥ１  １６１２に対して新たなデータ（Ｉ１，Ｉ２，Ｉ３）＝（Ａ３，Ｂ３，Ｃ３）を挿入すると共に、ポインタテーブル１６１３にデータ（Ｉ１，Ｉ２，Ｉ３）＝（Ａ３，Ｂ３，Ｃ３）へのポインタを記録する（処理１６１１）。さらに、演算マトリックス２０７は、ポインタテーブル１６１３に一定量のポインタが蓄積され、アップロードすべきデータが一定量を超えていると判断すると、当該データのサーバへのアップロードを開始する。このとき、ＴＣＰ  Ｆｌａｇ７１０をＳＹＮにしたパケット１６０２を生成してサーバ５０４に送信する。さらに、装置２００とサーバ５０４との間の新たな通信状態１５５を、通信状態変更部１０４に出力する。
【０２２６】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＳＹＮ−ＡＣＫであるＳＹＮ−ＡＣＫパケット１６０３を受信すると、ステップ９３３及び９３５を経由して、ステップ９８３の処理を行う。ステップ９８３の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＦＵＬＬ  ＯＰＥＮに変更する。さらに、図１０のステップ１０４３の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１６０４と、アプリケーションレイヤプロトコルＨＴＴＰを利用して新たなデータ（Ｉ１，Ｉ２，Ｉ３）＝（Ａ１，Ｂ１，Ｃ１）〜（Ａ３，Ｂ３，Ｃ３）の挿入を要求するＩＮＳＥＲＴコマンドを引数に持つＰＯＳＴコマンドを記載したパケット１６０５を送信する。挿入すべきデータ１６１４は、ポインタテーブル１６１３とＴＡＢＬＥ１  １６１２を用いて作成される。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みパケットのＩＤ８１２と、ファイル送受信状態がＡｃｔｉｖｅに変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２２７】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１６０６／１６０８を受信すると、ステップ９５８、９６１、９６４又は９６７を経由して、ステップ９７０、９７１又は９７２の処理を実行する。ステップ９７０、９７１又は９７２の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙのいずれかに変更する。
【０２２８】
さらに、図１０のステップ１０４４、１０４５又は１０４６の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、パケット１６０５の続きが記載されたＡＣＫパケット１６０７を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズ８０９と、送信済みパケットのＩＤ番号ＩＤ８１２と、ファイル送受信状態とＴＣＰコネクションの輻輳状態の変わったＳＴＡＴＥ８１１と、を含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２２９】
なお、演算マトリックス２０７は、ＡＣＫパケット１６０８を受信したときは、パケット１６０５に記載しきれなかったＰＯＳＴコマンドの続きが全て送信済みとなるため、ＳＴＡＴＥ８１１は、ファイル送受信状態完了を示すＰａｓｓｉｖｅに変更され、パケットは返信されない。さらに、ポインタテーブル１６１３の内容は、全て消去される。
【０２３０】
装置２００が、サーバ５０４からＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるＲＳＴ−ＡＣＫパケット１６０９を受信すると、ステップ９２１と９２３を経由して、ステップ９７９の処理を実行する。ステップ９７９の処理では、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＣｌｏｓｅに変更）する。さらに、ステップ１０４２の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＲＳＴ−ＡＣＫであるＲＳＴ−ＡＣＫパケット１６１０を返信する。
【０２３１】
以上、図１６を用いて説明した処理により、装置２００がアクセス端末１２００からのデータ挿入要求パケットに対して、データベーステーブルを更新し、サーバにファイルをアップロードすることができる。
【０２３２】
図１７は、アクセス端末１２００から送信された、アプリケーションレイヤプロトコルＨＴＴＰを利用した、ＴＡＢＬＥ１  １７１０からＩ１＝Ａを満たすデータの削除を要求するＤＥＬＥＴＥコマンドを引数に持つＰＯＳＴコマンドを受け取った装置２００が、削除結果を返信するシーケンス図を示す。メモリ２０５は、内部にデータベース用テーブルＴＡＢＬＥ１  １７１０を用意しているものとする。
【０２３３】
装置２００が、アプリケーションレイヤプロトコルＨＴＴＰを利用して、ＴＡＢＬＥ１  １７１０からＩ１＝Ａを満たすデータの削除を要求するＤＥＬＥＴＥコマンドを引数に持つＰＯＳＴコマンドを記載したパケット１７０１を受信すると、図９のステップ９４７、９４９及び９５２を経由して、ステップ９８８の処理を実行する。ステップ９８８の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＨＴＴＰ  ＰＯＳＴ  Ｄｅｌｅｔｅ  Ｓｔａｒｔに変更する。
【０２３４】
さらに、図１０のステップ１０５０の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＡＢＬＥ１  １７１０からＩ１＝Ａを満たすデータを削除して（処理１７０９）、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、削除結果１７１１の分割データを含むＡＣＫパケット１７０２を返信する。さらに、変更した輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ８１２と、ファイル送受信状態がＡｃｔｉｖｅに変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５を、通信状態変更部１０４に出力する。
【０２３５】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＡＣＫであるＡＣＫパケット１７０３／１７０５を受信すると、ステップ９５８、９６１、９６４又は９６７を経由して、ステップ９７０、９７１又は９７２の処理を実行する。ステップ９７０、９７１又は９７２の処理では、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１と各種コマンド７１４とＰａｙｌｏａｄ７１５との和に変更し、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＳｌｏｗ  Ｓｔａｒｔ／Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ／Ｆａｓｔ  Ｒｅｃｏｖｅｒｙに変更する。さらに、ステップ１０４４、１０４５又は１０４６の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＡＣＫであり、削除結果１７１１の分割データを含むＡＣＫパケット１７０４を返信する。さらに、変更された輻輳ウィンドウサイズ８０８と、送信済みウィンドウサイズＳＷＩＮ８０９と、送信済みパケットのＩＤ番号ＩＤ８１２と、ファイル送受信状態とＴＣＰコネクションの輻輳状態との変わったＳＴＡＴＥ８１１と、ＡＣＫ受信済みデータの最後尾が格納されているメモリ２０５のアドレスポインタＡＤＤ８１３を含む通信状態１５５を、通信状態変更部１０４に出力する。ＡＣＫパケット１７０５を受信したときは、削除結果１７１１を全て送信済みのため、通信状態１５２のＳＴＡＴＥ８１１は、ファイル送受信状態完了を示すＰａｓｓｉｖｅとなっており、パケットは返信されない。
【０２３６】
装置２００が、アクセス端末１２００からＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１７０６を受信すると、ステップ９１５と９１７を経由して、ステップ９７７の処理を実行する。ステップ９７７の処理では、通信状態を変更、すなわち、ＳＴＡＴＥ８１１をＣＬＯＳＥに変更し、ＴＡＣＫ８０７をＰＳＥＱ７１１＋１に変更し、ＴＳＥＱ８０６をＰＡＣＫ７１２に変更する。さらに、ステップ１０４１の処理によって搭載論理が変更された演算マトリックス２０７が、ＴＣＰ  Ｆｌａｇ７１０がＦＩＮ−ＡＣＫであるＦＩＮ−ＡＣＫパケット１７０７を返信する。このとき、出力された通信状態１５５のＳＴＡＴＥ８１１はＣＬＯＳＥであるため、装置２００が、この後で受け取るＡＣＫパケット１７０８は、ステップ９７３の処理によって廃棄される。
【０２３７】
以上、図１７を用いて説明した処理により、装置２００がアクセス端末１２００からのデータ削除要求パケットに対して、データベーステーブルからのデータを削除し、削除結果を返信できる。
【０２３８】
以上、図１１〜１７を用いて説明した処理により、本発明の実施の形態の装置２００は、アクセス端末等からの要求に基づいて、データベース等のアプリケーションレイヤのサーバサービスを実行することが可能になる。
【図面の簡単な説明】
【０２３９】
【図１】本発明の実施の形態の装置の構成ブロック図である。
【図２】本発明の実施の形態の動的再構成プロセッサの構成ブロック図である。
【図３】本発明の実施の形態の動的再構成プロセッサの動作の説明図である。
【図４】本発明の実施の形態のシステムの説明図である。
【図５】本発明の実施の形態のシステムの説明図である。
【図６】本発明の実施の形態の外部コントローラ及び動的再構成プロセッサ及びメモリの構成ブロック図である。
【図７】本発明の実施の形態のパケットデータの説明図である。
【図８Ａ】本発明の実施の形態の通信状態テーブルの一例の説明図である。
【図８Ｂ】本発明の実施の形態の通信状態の組合せの一例の説明図である。
【図９】本発明の実施の形態の通信状態変更部の処理のフローチャートである。
【図１０】本発明の実施の形態の通信状態分類部と再構成トリガ生成用演算器群の処理のフローチャートである。
【図１１】本発明の実施の形態の異常通信を排除する場合を示すシーケンス図である。
【図１２】本発明の実施の形態の正常通信を保護する場合を示すシーケンス図である。
【図１３】本発明の実施の形態のサーバからのファイルをダウンロードする処理のシーケンス図である。
【図１４】本発明の実施の形態のファイル要求パケットに対して要求ファイルを返信するシーケンス図である。
【図１５】本発明の実施の形態のデータ選択要求パケットに対して選択結果を返信する処理のシーケンス図である。
【図１６】本発明の実施の形態のデータ挿入要求パケットに対してデータベーステーブルを更新し、サーバへのファイルをアップロードする処理のシーケンス図である。
【図１７】本発明の実施の形態のデータ削除要求パケットに対してデータベーステーブルからデータを削除し、削除結果を返信する処理のシーケンス図である。
【図１８】従来の、汎用プロセッサの動作の説明図である。
【図１９】従来の、プロセッサの通信データ入出力の動作の説明図である。
【符号の説明】
【０２４０】
２００  装置
２０２  外部コントローラ
２０１  動的再構成プロセッサ
２０５  メモリ
５０１  アクセスネットワーク
５０２  エッジネットワーク
５０３  バックエンドシステム
【図１】
2008131584.tif 000003
【図２】
2008131584.tif 000004
【図３】
2008131584.tif 000005
【図４】
2008131584.tif 000006
【図５】
2008131584.tif 000007
【図６】
2008131584.tif 000008
【図７】
2008131584.tif 000009
【図８Ａ】
2008131584.tif 000010
【図８Ｂ】
2008131584.tif 000011
【図９】
2008131584.tif 000012
【図１０】
2008131584.tif 000013
【図１１】
2008131584.tif 000014
【図１２】
2008131584.tif 000015
【図１３】
2008131584.tif 000016
【図１４】
2008131584.tif 000017
【図１５】
2008131584.tif 000018
【図１６】
2008131584.tif 000019
【図１７】
2008131584.tif 000020
【図１８】
2008131584.tif 000021
【図１９】
2008131584.tif 000022