(57)【要約】【課題】小型省電力筐体において、再生応答速度が高速なＶＯＤサービスを提供するメニイコアプロセッサ搭載の情報処理装置、及びシステムを提供することを目的とする。【解決手段】通信状態に基づきパケット毎に再構成を行う演算マトリックス１２９を構成するメニイコアプロセッサ１０１搭載の情報処理装置において、送信バイトカウンタ１８６の送信データ量をカウントすることで得た送信済みデータ量と、予め定めた閾値とを送信量/時間判定部１２７で比較し、比較結果に応じて広帯域/狭帯域転送状態変更部１２６で通信状態を変更することで、送信済みデータ量が閾値以下のときに、データを広帯域転送し、送信済みデータ量が閾値よりも大きい時に、データを狭帯域転送するよう、演算マトリックス１２９の演算器群の機能と配線を再構成する。【選択図】図１
2009093348.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送受信されるパケットに処理を行う情報処理装置であって、
前記パケットを送受信している端末間の通信状態を格納する通信状態テーブルと、
受信した前記パケットの内部情報と、前記パケットの内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じて、前記通信状態の変更を行う第一の通信状態更新部と、
機能と配線が可変である演算器群を備えた演算マトリックスと前記演算マトリックスの構成情報を複数格納する構成情報蓄積バッファとを含み、前記パケットと変更済みの前記通信状態を受信し、変更済みの前記通信状態に基づき、前記構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記演算マトリックスの前記演算器群の機能と配線を再構成する動的再構成処理部と、
前記動的再構成処理部の出力データに基づき、前記通信状態の変更を行う第二の通信状態更新部と、
を有する情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記第二の通信状態更新部は、
前記動的再構成処理部の前記出力データである送信データの量に基づき処理内容を変更するため、
前記通信状態毎に通信開始後の送信済みデータ量をカウントする送信量カウンタと、前記送信済みデータ量と予め定めた閾値を比較する送信量判定部と、前記送信量判定部において、前記送信済みデータ量が前記閾値よりも大きいと判定されたときに、前記通信状態を変更する転送状態変更部と、を含み、
前記動的再構成処理部は、前記送信済みデータ量に応じて変更した前記通信状態に基づき、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項３】
請求項２記載の情報処理装置であって、
前記動的再構成処理部は、
前記第二の通信状態更新部において、前記送信済みデータ量が前記閾値以下と判定された場合、データを広帯域転送する処理を実行する論理回路となり、前記送信済みデータ量が前記閾値よりも大きいと判定された場合、データを狭帯域転送する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項４】
請求項１記載の情報処理装置であって、
前記第二の通信状態更新部は、
前記通信状態毎に、前記出力データである送信データの送信時間と予め定めた閾値を比較する転送時間判定部と、前記転送時間判定部において、前記送信時間が前記閾値よりも大きいと判定したときに、前記通信状態を変更する転送状態変更部と、を含み、
前記動的再構成処理部は、前記送信時間に応じて変更した前記通信状態に基づき、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項５】
請求項４記載の情報処理装置であって、
前記動的再構成処理部は、
前記第二の通信状態更新部において、前記送信時間が前記閾値以下のときに、データを広帯域転送する処理を実行する論理回路となり、前記送信時間が前記閾値よりも大きい時に、データを狭帯域転送する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項６】
請求項１、２、または４のいずれか一項記載の情報処理装置であって、
前記通信状態が、送信先端末の受信を確認しないで送信できるデータ量を表す送信可能量を含み、
端末毎に、データ転送の許可/禁止および送信可能帯域を記録する転送可否/帯域設定テーブルと、
受信した前記パケットの内部情報に基づき、前記転送可否/帯域設定テーブルから、端末毎の前記データ転送の許可/禁止および送信可能帯域を読み出す端末アクセス判定部と、
受信した前記パケットの内部情報と、前記通信状態テーブルから読み出した前記通信状態とに基づいて、前記送信先端末への平均送信帯域と、前記送信先端末の受信を確認しないで送信したデータ量を表す到達未確認送信量を推定する送信帯域推定部と、
前記通信状態テーブルから読み出した前記通信状態と、前記送信帯域推定部が推定した前記平均送信帯域と前記到達未確認送信量と、前記アクセス判定部が読み出した前記送信可能帯域と、に基づき、宛先端末毎の前記データ送信可能量を設定する送信可能量設定部と、を更に有する
情報処理装置。
【請求項７】
請求項１、２、または４のいずれか一項記載の情報処理装置であって、
送信用ファイルの一部データを蓄積する転送用データエリアを含む記憶部を更に有し、
前記動的再構成処理部は、
前記記憶部に前記送信用ファイルの一部データが蓄積されていないときに、前記送信用ファイルを蓄積した端末との通信を開始し、通信開始後に、前記端末からパケットを受信した際に、受信したパケットが含むデータを、前記記憶部の前記転送用データエリアに蓄積する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項８】
請求項１、２、または４のいずれか一項記載の情報処理装置であって、
送信用ファイルを蓄積するディスク部と、
前記送信用ファイルの一部データを蓄積する転送用データエリアを含む記憶部とを更に有し、
前記動的再構成処理部は、
前記記憶部に前記送信用ファイルのデータが蓄積されていないときに、前記ディスク部に蓄積された前記送信用ファイルの一部データを、前記ディスク部から前記記憶部の前記転送用データエリアへ転送するディスクデータ転送関数を実行する汎用演算プロセッサを更に備える
情報処理装置。
【請求項９】
ネットワークを介して送受信されるパケットに処理を行う情報処理装置であって、
受信した前記パケットの内部情報に基づき、前記パケットのタイプを判定するパケットタイプ判定部と、
前記パケットを送受信している端末間の通信状態を格納する通信状態テーブルと、
機能と配線が可変である演算器群を備えた第一、第二の演算マトリックスと、該演算マトリックスの構成情報を複数格納する第一、第二の構成情報蓄積バッファとを、それぞれ含む第一、第二の動的再構成処理部と、を備え、
第一の動的再構成処理部は、
前記パケットタイプ判定部の判定結果に基づき、前記第一の構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記第一の演算マトリックスの前記演算器群の機能と配線を再構成し、
受信した前記パケットの内部情報と、前記パケットの前記内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じて、前記通信状態の変更を行う通信状態更新部を、前記演算器群によって実現し、
第二の動的再構成処理部は、
前記通信状態更新部が更新した前記通信状態に基づき、前記第二の構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記第二の演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項１０】
請求項９記載の情報処理装置であって、
前記第一の動的再構成処理部は、汎用演算プロセッサを更に備え、
前記第一の演算マトリックスが、前記パケットタイプ判定部の判定結果に基づいて、再構成向けの割込みを前記汎用演算プロセッサまたは前記第一の演算マトリックスに向けて生成する再構成向け割込み生成部を、前記演算器群において実現し、
前記再構成向け割込み生成部の生成した割込みに基づいて、前記第一の演算マトリックスの前記演算器群の機能と配線を再構成する、
ことを特徴とする情報処理装置。
【請求項１１】
請求項９記載の情報処理装置であって、
端末毎に、データ転送の許可/禁止および送信可能帯域を記録する転送可否/帯域設定テーブルと、
受信した前記パケットの内部情報に基づき、前記転送可否/帯域設定テーブルから、端末毎の前記データ転送の許可/禁止および送信可能帯域を読み出す端末アクセス判定部と、を更に備え、
前記第一の動的再構成処理部は、
前記パケットタイプ判定部の判定結果と、前記端末アクセス判定部が読み出した、端末毎の前記データ転送の許可/禁止および送信可能帯域と、に基づいて、前記第一の構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記第一の演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項１２】
請求項９記載の情報処理装置であって、
前記通信状態が、送信先端末の受信を確認しないで送信できるデータ量を表す送信可能量を含み、
端末毎に、データ転送の許可/禁止および送信可能帯域を記録する転送可否/帯域設定テーブルと、
受信した前記パケットの内部情報に基づき、前記転送可否/帯域設定テーブルから、端末毎の前記データ転送の許可/禁止および送信可能帯域を読み出す端末アクセス判定部と、を更に有し、
第一の動的再構成処理部は、
受信した前記パケットの内部情報と、前記通信状態テーブルから読み出した前記通信状態とに基づいて、前記送信先端末への平均送信帯域と、前記送信先端末の受信を確認しないで送信したデータ量を表す到達未確認送信量を推定する送信帯域推定部と、前記通信状態テーブルから読み出した前記通信状態と、前記送信帯域推定部が推定した前記平均送信帯域と前記到達未確認送信量と、前記アクセス判定部が読み出した前記送信可能帯域と、に基づき、宛先端末毎の前記データ送信可能量を設定する送信可能量設定部とを、前記演算器群において実現する
情報処理装置。
【請求項１３】
請求項９記載の情報処理装置であって、
送信用ファイルの一部データを蓄積する転送用データエリアを含む記憶部を更に有し、
前記第二の動的再構成処理部は、
前記記憶部に送信用ファイルの一部データが蓄積されていないときに、送信用ファイルを蓄積した端末との通信を開始し、通信開始後に、前記端末からパケットを受信した際に、受信したパケットが含むデータを、前記記憶部の前記転送用データエリアに蓄積する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理装置。
【請求項１４】
請求項９記載の情報処理装置であって、
送信用ファイルを蓄積するディスク部と、
送信用ファイルの一部データを蓄積する転送用データエリアを含む記憶部とを更に有し、
第二の動的再構成処理部は、
前記記憶部に送信用ファイルのデータが蓄積されていないときに、前記ディスク部に蓄積された送信用ファイルの一部データを、前記ディスク部から前記記憶部の前記転送用データエリアへ転送するディスクデータ転送関数を実行する汎用演算プロセッサを更に有する
情報処理装置。
【請求項１５】
サーバと、ネットワークを介して前記サーバにデータを要求する端末と、前記サーバと前記端末間で転送されるパケットを受信し、前記パケットを送受信する前記サーバと前記端末間の通信状態に応じた処理を実行する情報処理装置と、からなる情報処理システムであって、
前記情報処理装置は、
前記パケットを送受信している端末間の通信状態を格納する通信状態テーブルと、
受信した前記パケットの内部情報と、前記パケットの内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じて、前記通信状態の変更を行う第一の通信状態更新部と、
機能と配線が可変である演算器群を備えた演算マトリックスと前記演算マトリックスの構成情報を複数格納する構成情報蓄積バッファとを含み、前記パケットと変更済みの前記通信状態を受信し、変更済みの前記通信状態に基づき、前記構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記演算マトリックスの前記演算器群の機能と配線を再構成する動的再構成処理部と、
前記動的再構成処理部の出力データに基づき、前記通信状態の変更を行う第二の通信状態更新部と、
を有する情報処理システム。
【請求項１６】
請求項１５記載の情報処理システムであって、
前記情報処理装置の前記第二の通信状態更新部は、
前記動的再構成処理部の送信データ量に基づき処理内容を変更するために、
前記通信状態毎に、通信開始後の送信済みデータ量をカウントする送信量カウンタと、前記送信済みデータ量と予め定めた閾値を比較する送信量判定部と、前記送信量判定部が、前記送信済みデータ量が前記閾値よりも大きいと判定したときに、前記通信状態を変更する転送状態変更部と、を含み、
前記情報処理装置の前記動的再構成処理部は、
前記送信済みデータ量に応じて変更した前記通信状態に基づき、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理システム。
【請求項１７】
請求項１６記載の情報処理システムであって、
前記情報処理装置の前記動的再構成処理部は、
前記第二の通信状態更新部において、前記送信済みデータ量が前記閾値以下と判定された場合、データを広帯域転送する処理を実行する論理回路となり、前記送信済みデータ量が前記閾値よりも大きいと判定された場合、データを狭帯域転送する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理システム。
【請求項１８】
請求項１５記載の情報処理システムであって、
前記情報処理装置の前記第二の通信状態更新部は、
前記通信状態毎に、前記出力データである送信データの送信時間と予め定めた閾値を比較する転送時間判定部と、前記転送時間判定部において、前記送信時間が前記閾値よりも大きいと判定したときに、前記通信状態を変更する転送状態変更部と、を含み、
前記情報処理装置の前記動的再構成処理部は、
前記送信時間に応じて変更した前記通信状態に基づき、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理システム。
【請求項１９】
請求項１８記載の情報処理システムであって、
前記情報処理装置の前記動的再構成処理部は、
前記第二の通信状態更新部において、前記送信時間が前記閾値以下のときに、データを広帯域転送する処理を実行する論理回路となり、前記送信時間が前記閾値よりも大きい時に、データを狭帯域転送する処理を実行する論理回路となるように、前記演算マトリックスの前記演算器群の機能と配線を再構成する
情報処理システム。
【請求項２０】
請求項１５記載の情報処理システムであって、
前記サーバはＶＯＤサーバであり、前記出力データはＶＯＤデータを含む
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続され、ネットワークで転送されるパケットを受信し、パケットを送受信している端末やホスト間の通信状態に応じて異なる処理を行い、装置内部に蓄積したデータの変更や、新たなパケットの生成および外部送信を行うことで、ビデオ配信等のサーバサービスを提供する技術に関する。
【背景技術】
【０００２】
放送通信融合とユビキタスコンピューティングの並行進展により、バックエンド／アクセス双方のユーザから、サーバが提供するサービスの多様化と、サービスの体感速度の向上が求められている。そのため、多種多様なサーバサービス（ＶＯＤ（Video on Demand）、データベースのクエリトランザクション、対異常通信防御等）を、エッジネットワークに分散配置したアプライアンスで実現し、サーバサービスの演算性能の向上を行う必要がでてきた。
【０００３】
本アプライアンスに求められる機能は、ユーザ／アプリケーション／場所／時間／実行状態毎に異なる。また、上記機能を搭載したアプライアンスは、小型サーバまたは通信装置内蔵ボードとして、演算処理の効率化のため、エッジネットワークに分散配置する必要がある。そのため、本アプライアンス向けのプロセッサには、小型省電力にてパケットを高速演算する性能と共に、各端末間の通信状態に基づき、パケット毎に多彩な処理を実行できる汎用性が要求される。
【０００４】
この小型省電力での高速演算性能と汎用性を両立するに当たり、従来の汎用プロセッサやApplication Specific Integrated Circuit (ＡＳＩＣ)は、小型省電力での高速演算性能と汎用性のいずれか一方を欠くという問題があった。汎用プロセッサは、多数のプロセッサをクラスタ化することで演算性能を向上させることが可能だが、小型省電力という条件を満たさない。ＡＳＩＣは、演算性能は高いが、汎用性を欠く。
【０００５】
その一方、メニイコアプロセッサの一つである動的再構成プロセッサ(Dynamic Reconfigurable Processor: ＤＲＰ)は、多数の演算エレメント(Processing Element: ＰＥ)をセレクタ・スイッチ等により接続した演算マトリックスを備え、処理の並列化により、省電力にて高い演算性能を実現する。更に、PEの演算機能や接続を最短１クロックで変更し、搭載機能を短時間で変更できる高い汎用性を実現する。動作周波数を上昇させなくても、複数の演算器で単純な命令を一括して実行したり、複数の演算器を組み合わせて複雑な命令を実行したりするなど、演算マトリックスコアの演算並列度を高めることで、省電力にて高い演算性能を実現する。このため、ＤＲＰは、パケットを小型省電力にて高速演算する性能と、アルゴリズムを更新する汎用性と、が同時に要求されるアプライアンス向けのプロセッサとして有望と考えられる。
【０００６】
このＤＲＰを、サーバサービスを提供する装置に使用する場合は、パケット毎に多彩な処理を実現するため、パケットを送受信している各ホスト間の通信状態（トランスポート層プロトコルの遷移／輻輳状態、使用しているアプリケーション層プロトコルの種類、実行中のコマンドの種類、コマンドの実行の進捗状態（ファイルをどこまで送受信したか、等））に応じて、パケット毎に搭載論理を変更する必要がある。搭載論理の変更は、演算マトリックス内部の演算器群が生成する再構成向け割込みによって開始される。従って、再構成向け割込みの生成に必要な情報（受信したパケットを送受信している各ホスト間の通信状態）を予め生成しておき、演算マトリックスに直接入力することで、搭載論理の迅速な変更が可能になると考えられる。
【０００７】
そこで、本発明者は、端末やホスト（以下、端末と総称する）間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置を考案した（非特許文献１）。本装置は、メモリを経由しない通信データの直接入出力を用いている。更に、演算マトリックス外部にて予め生成した端末間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、搭載論理の高速変更を実現し、データベース等のアプリケーション層のサーバサービスを小型・省電力な装置にて高性能で実現する。
【０００８】
【非特許文献１】“通信状態に基づくパケット毎自己再構成を用いた動的再構成プロセッサ搭載クエリトランザクション高速化装置”、信学技報、vol.107, no.41, RECONF2007-1, PP.1-6, 2007年5月
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した、端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置の課題を、ＶＯＤサービスを提供する目的で用いた場合を例示し、図２４および図２５を用いて説明する。
【００１０】
図２４には、端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置のアーキテクチャを示す。
【００１１】
本装置は、パケットをスイッチングするスイッチ２４０１と、各種演算を実行する動的再構成処理部である動的再構成プロセッサ（ＤＲＰ）２４０２と、スイッチ２４０１およびＤＲＰ２４０２の間のパケット入出力制御を行うパケットＩ／Ｏ ２４００と、各種データを蓄積する外部メモリ２４０３から構成される。
【００１２】
パケットＩ／Ｏ ２４００は、スイッチ２４０１から受信したパケットを分類する分類器２４０４と、分類したパケットを一時的に蓄積するバッファ２４０５，２４１３と、バッファ２４０５からパケットを読み出すパケット読出し部２４０６と、通信状態を蓄積する通信状態テーブル２４１０と、通信状態を読み出す通信状態読出し部２４０７と、通信状態を変更する通信状態更新部２４０８と、通信状態を書き込む通信状態書込み部２４０９と、変更した通信状態を一時的に蓄積するバッファ２４１１と、読み出したパケットを一時的に蓄積するバッファ２４１２と、パケットを集約する集約器２４１４から構成される。
【００１３】
スイッチ２４０１から送られてくるパケット２４１５は、分類器２４０４にて、処理が必要なパケット２４１７と、処理が不要なパケット２４１８とに分類される。処理が必要なパケット２４１７は、バッファ２４０５に蓄積される。
【００１４】
パケット読出し部２４０６は、バッファ２４０５に蓄積されたパケットを読み出して（２４１９）、通信状態読出し部２４０７と、通信状態更新部２４０８と、バッファ２４１２に転送する（２４２０）。
【００１５】
通信状態読出し部２４０７は、パケット読出し部２４０６から受信したパケット２４２０記載の送信元・宛先情報に基づき、通信状態テーブル２４１０から対応する通信状態２４２２を読み出し、通信状態更新部２４０８に転送する（２４４８）。
【００１６】
通信状態更新部２４０８は、通信状態読出し部２４０７から受信した通信状態２４４８と、パケット読出し部２４０６から受信したパケット２４２０とに基づき、通信状態２４４８を変更する。変更済み通信状態２４２１，２４４９は、通信状態書込み部２４０９と、バッファ２４１１に転送される。
【００１７】
通信状態書込み部２４０９は、通信状態更新部２４０８から受信した変更済み通信状態２４２１を、新たな通信状態２４２３として、通信状態テーブル２４１０に書き込む。
【００１８】
ＤＲＰ２４０２は、多数の小型演算器を内蔵したＰＥマトリックス２４２７と、汎用演算器２４２８と、構成データキャッシュ２４３０と、外部メモリ向けインターフェースであるＳＤＲＡＭ  Ｉ／Ｆ２４３１と、これらを結びつけるバススイッチ２４２９と、から構成される。
【００１９】
ＰＥマトリックス２４２７は、汎用演算器による再構成を実施するための汎用再構成向け割込み生成ＰＥ群２４３４と、ＰＥマトリックス２４２７が自律的に再構成するための自律再構成向け割込み生成ＰＥ群２４３５と、アプリケーション向けの各種関数を実行するＰＥ群２４３６と、ＴＣＰ／ＩＰチェックサム計算済みパケットを送信し、パケット読出し部２４０６に演算終了通知２４５０を出力するＰＥ群２４３７とを含む。
【００２０】
汎用演算器２４２８は、ＯＳ（Operating System）２４３２と、再構成のための処理を行う再構成向け関数２４３３とを実行する。
【００２１】
自律再構成向け割込み生成ＰＥ群２４３５は、通信状態更新部２４０８から変更済み通信状態２４４９を受け取ると、受け取った通信状態２４４９に基づき、自律再構成向け割込み２４４１を生成する。
【００２２】
構成データキャッシュ（蓄積バッファ）２４３０は、生成した自律再構成向け割込み２４４１に基づき、内部に蓄積した構成データをＰＥマトリックス２４２７に転送する（２４４２）。
【００２３】
ＰＥマトリックス２４２７は、構成データキャッシュ２４３０から転送された構成データ２４４２に基づき、内部の演算器の機能や配線を再構成する。
【００２４】
汎用再構成向け割込み生成ＰＥ群２４３４は、通信状態更新部２４０８から変更済み通信状態２４４９を受け取ると、受け取った通信状態２４４９に基づき、汎用再構成向け割込み２４４４を、汎用演算器２４２８に向けて生成する。更に、受け取った通信状態２４４９に基づき、外部メモリ２４０３内部の構成データポインタ２４３８を、次に使う予定の構成データが蓄積されているアドレス値に書き換える（２４４３）。
【００２５】
ＯＳ ２４３２は、汎用再構成向け割込み生成ＰＥ群２４３４から、汎用再構成向け割込み２４４４を受け取ると、再構成向け関数２４３３を呼び出し、実行する。
【００２６】
再構成向け関数２４３３は、構成データポインタ２４３８から、次に使用する構成データが蓄積されているアドレス値を読出し（２４４６）、読み出したアドレス値に基づいて、構成データエリア２４３９から次に使う予定の構成データを読み出す（２４４５）。更に、読み出した構成データを、構成データキャッシュに上書きする（２４４７）。更に、上書きした構成データを、ＰＥマトリックスに転送する（２４４２）。
【００２７】
ＰＥマトリックス２４２７は、構成データキャッシュ２４３０から受け取った構成データ２４４２に基づき、内部の演算器の機能や配線を再構成する。
【００２８】
ＰＥマトリックス２４２７は、再構成を完了すると、バッファ２４１１に蓄積された通信状態２４２４と、バッファ２４１２に蓄積されたパケット２４２５を読み出し、アプリケーション向けの各種関数を実行するＰＥ群２４３６に入力する。
【００２９】
アプリケーション向け各種関数を実行するＰＥ群２４３６は、通信状態２４２４と、パケット２４２５と、外部メモリ２４０３内のＯＳ／アプリケーションデータエリア２４４０のデータを用いて各種演算を行う。また、変更した通信状態２４２６を通信状態書込み部２４０９に送信する。通信状態書込み部２４０９は、受け取った通信状態２４２６を、通信状態テーブル２４１０に書き込む。
【００３０】
アプリケーション向け各種関数を実行するＰＥ群２４３６における演算が終了すると、ＰＥ群２４３７が、新たに生成されたパケットに対して、ＴＣＰ／ＩＰチェックサムを計算し、計算済みパケット２４５１を、集約器２４１４に逐一送信する。全てのパケットを送信すると、演算終了通知２４５０を、パケット読出し部２４０６に送信する。
【００３１】
集約器２４１４は、ＰＥマトリックス２４２７からのパケット２４５１と、バッファ２４１３から読み出したパケットを集線して、スイッチ２４０１に出力する（２４１６）。
【００３２】
パケット読出し部２４０６は、演算終了通知２４５０を受け取ると、バッファ２４０５から新たなパケットを読み出す。
【００３３】
上記の方式により、端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置が実現される。本装置は、メモリを経由しない通信データの直接入出力を用いて、演算マトリックスにおいて並列演算を行うことで、小型・省電力な装置にて、高速演算性能を実現する。更に、演算マトリックス外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、搭載論理の高速変更を実現し、多種多様なサーバサービスを実現する。
【００３４】
図２５には、ユーザ２５０５が、ＶＯＤサーバ２５００からビデオ配信サービスを受ける場合の概略図を示す。
【００３５】
ユーザ２５０５が、ＶＯＤサーバ２５００からビデオ配信サービスを受ける場合、ビデオ再生アプリケーション２５０２を起動し、再生開始指示ボタン２５０３をマウスでクリックするか、再生箇所変更スライド２５０４をマウスでスライドさせることによって、ビデオ配信の再生箇所と開始を、ＶＯＤサーバ２５００に指示する。ＶＯＤサーバ２５００が配信したビデオデータは、一旦、ビデオ再生アプリケーション２５０２が持つ再生バッファ２５０１に蓄積される。ビデオ再生アプリケーション２５０２は、再生バッファ２５０１に十分な量のビデオデータが蓄積されてから、再生を開始する。
【００３６】
そのため、再生バッファ２５０１に十分な量のビデオデータが蓄積されるまでの時間が長く、再生開始・再生箇所変更の指示から実際に再生が開始されるまでの再生応答速度が遅くなるという課題がある。
【課題を解決するための手段】
【００３７】
本発明においては、この課題を解決するため、サーバが再生開始直後に、受信バッファ分のデータをバースト的に広帯域転送することによって、再生指示から再生開始までの応答時間を短縮する。更に、受信バッファ分のデータの広帯域転送が終了したら、直ちに定常的な狭帯域転送を行う。これらを実現するため、送信データ量が受信バッファを超過しているか否かに応じて通信状態を変更し、通信状態に応じて、ＰＥマトリックスの論理回路を、広帯域転送用回路または狭帯域転送用回路のいずれかに再構成する。更に、広帯域転送状態であるか、狭帯域転送状態であるかに応じて、送信帯域を変更したり、データの外部メモリへのバッファリング方法を変更する。
【００３８】
言い換えるなら、本発明では、端末間の通信状態に基づくパケット毎再構成を行う動的再構成プロセッサ搭載装置において、データ送信量がデータ配信先端末の受信バッファを超過しているか否かに応じて通信状態の変更を行い、変更した通信状態に基づいて、動的再構成処理部の再構成，送信帯域の制御，およびデータのメモリへのバッファリングなどを行う構成とする。
【００３９】
すなわち、本発明においては、ネットワークを介して送受信されるパケットに処理を行う情報処理装置であって、パケットを送受信している端末間の通信状態を格納する通信状態テーブルと、受信したパケットの内部情報と、このパケットの内部情報に基づき通信状態テーブルから読み出した通信状態との組合せに応じて、この通信状態の変更を行う通信状態更新部と、機能と配線が可変である演算器群を備えた演算マトリックスとこの演算マトリックスの構成情報を複数格納する構成情報蓄積バッファとを含み、パケットと変更済みの通信状態を受信し、変更済みの通信状態に基づき、この構成情報蓄積バッファから構成情報を取得し、取得した構成情報に基づいて演算マトリックスの演算器群の機能と配線を再構成する動的再構成処理部と、を備え、
データ送信量がデータ配信先端末の受信バッファ量を超過しているか否かに応じて通信状態の変更を行い、変更した通信状態に基づき、動的再構成処理部の再構成と、送信帯域の制御と、を行うために、動的再構成処理部が出力するデータを用いて、通信状態の変更を行う出力データフィードバック式通信状態更新部を有して、動的再構成処理部の出力データを用いて変更した通信状態に基づき、演算マトリックスの前記演算器群の機能と配線を再構成することを特徴とする情報処理装置を提供する。
【００４０】
更に、本発明において、通信状態毎に、通信開始後の送信済みデータ量をカウントする送信量カウンタと、送信済みデータ量と予め定めた閾値を比較する送信量判定部と、この送信量判定部において、送信済みデータ量が閾値よりも大きいと判定したときに、通信状態を変更する転送状態変更部と、を有し、動的再構成処理部の送信済みデータ量に応じて変更した通信状態に基づき、演算マトリックスの演算器群の機能と配線を再構成することを特徴とする情報処理装置を提供する。
【００４１】
更にまた、本発明においては、送信済みデータ量が閾値以下のときに、データを広帯域転送する処理を実行する論理回路となるよう演算マトリックスの演算器群の機能と配線を再構成して、送信済みデータ量が閾値よりも大きい時に、データを狭帯域転送する処理を実行する論理回路となるよう演算マトリックスの演算器群の機能と配線を再構成することを特徴とする情報処理装置を提供する。
【００４２】
なお、本明細書において、広帯域転送を表記する用語として、”burst”、或いは“ＢＵＲＳＴ”を用いる場合がある点に留意されたい。これは、広帯域転送においては、大量のデータをバースト的に転送するからである。また、狭帯域転送を表記する用語として、”static”、或いは“ＳＴＡＴＩＣ”を用いる場合がある点に留意されたい。これは、狭帯域転送が、上述の広帯域転送でない、定常的なデータの転送を意味するからである。
【００４３】
また、受信したパケットの内部情報と、このパケットの内部情報に基づき通信状態テーブルから読み出した通信状態との組合せに応じて、この通信状態の変更を行う通信状態更新部を第一の通信状態更新部と呼び、動的再構成処理部が出力するデータを用いて、通信状態の変更を行う通信状態更新部を第二の通信状態更新部と呼ぶことがあることに留意されたい。
【発明の効果】
【００４４】
本発明により、端末において必要とされるデータを高速な応答で配信できる情報処理装置、及びシステムを提供することができる。
【００４５】
より具体的には、本発明により、再生指示から再生開始までの応答が高速なＶＯＤサービスを提供する情報処理装置、及びシステムを提供することができる。
【００４６】
更に、本発明の、動的再構成プロセッサを搭載した情報処理装置の好適な構成により、ＶＯＤサービスを提供する際に、データ送信量がデータ配信先端末の受信バッファよりも小さい時に広帯域転送を行う論理回路となるよう動的再構成処理部を再構成し、データ送信量が配信先端末の受信バッファを超過したときに狭帯域転送を行う論理回路となるよう動的再構成処理部を再構成することが可能となり、再生開始指示・再生箇所変更から実際に再生が開始されるまでの応答時間を高速化するＶＯＤサービスを、小型・省電力装置で提供することができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施の形態を、図面を用いて説明する。
【実施例１】
【００４８】
まず、第一の実施例の情報処理装置について説明する。図２は、実施例１の情報処理装置の構成ブロック図である。
【００４９】
情報処理装置２００は、動的再構成処理部としてのメニイコアプロセッサ１０１と、パケット入出力部（パケットＩ／Ｏ）１００と、記憶部であるメモリ１０３と、ネットワークＩ／Ｆ−ｉ(ｉ＝１〜Ｎ)２０３(２０３−１〜２０３−Ｎ)と、通信回線接続部２０４(２０４−１〜２０４−Ｎ)と、スイッチ１０２と、から構成される。本情報処理装置２００は、後で説明する図４のバックエンドシステムに用いられる構成を例示しているため、更にＨＤＤ１７４、ＨＤＤデータ更新部２１２、ＶＯＤサーバ３０４が図示されている。後で説明する図３のエッジネットワークで用いる情報処理装置では、ＶＯＤサーバ３０４、更にはＨＤＤ１７４、ＨＤＤデータ更新部２１２を有しない構成となる場合がある。
【００５０】
本装置２００は、ネットワークに接続し、ネットワークＩ／Ｆ２０３経由でネットワークから受信した(２１０−１〜２１０−Ｎ)パケットを、パケットＩ／Ｏ １００または別のネットワークＩ／Ｆ ２０３に転送する。更に、パケットＩ／Ｏ １００とネットワークＩ／Ｆ ２０３からのパケットを、ネットワークＩ／Ｆ ２０３経由でネットワークに送信する（２０９−１〜２０９−Ｎ）)。
【００５１】
図５は、装置２００が搭載する動的再構成処理部としてのメニイコアプロセッサ１０１の詳細な構成ブロック図である。
【００５２】
動的再構成処理部としてのメニイコアプロセッサ１０１は、ＲＩＳＣプロセッサなどの汎用演算器１３０と、機能と互いの配線が可変である小型演算器を複数搭載した演算マトリックス（ＰＥマトリックス）１２９と、バススイッチ１３２と、演算マトリックス１２９が使用する構成データを蓄積する構成データキャッシュ１３１と、ＰＣＩバス接続用のＰＣＩ Ｉ／Ｆ１７９と、外部メモリアクセス用のＳＤＲＡＭ Ｉ／Ｆ１３３と、ＤＭＡ転送用のＤＭＡコントローラ５０１と、その他インターフェースと接続するためのその他Ｉ／Ｆ５０２と、から構成される。
【００５３】
図６〜８には、演算マトリックス１２９のブロック図の例を示す。図６に演算器型メニイコア回路６００の例を、図７にＡＮＤ−ＯＲ／ＬＵＴ（Look up Table）型メニイコア回路７００の例を、図８にマルチＣＰＵ型メニイコア回路８００の例を示す。
【００５４】
図６の演算器型メニイコア回路６００は、演算器型の機能ブロックを備える。各機能ブロックは、８，１６，３２ビット等、比較的大きなビット入出力を持ち、予め指定された整数の四則演算等を行うＥＸＥブロック６１１〜６１５，カウンタ機能を持つＣＮＴブロック６２１〜６２２，整数の乗算を行うＥＸＭブロック６２３〜６２４，浮動小数点演算を行うＦＰＵブロック６２５，データ蓄積を行うＲＡＭブロック６３１〜６３５，入力データを指定クロック遅延させて出力するＤＬＥブロック６４１〜６４５，回路外部とのデータ入出力を行うＩＯブロック６５１〜６５５等から構成される。各機能ブロック間のデータの入出力は、配線６６１〜６６５，６７１〜６７５によって実施することが可能である。なお、データの入出力を、隣接ブロック間に限定して、配線長を限定し、動作周波数向上を図る場合もある。
【００５５】
図７のＡＮＤ−ＯＲ／ＬＵＴ型メニイコア回路７００は、ＡＮＤ−ＯＲ／ＬＵＴ型の機能ブロックを備える。各機能ブロックは、１，２，４，６ビット等、比較的小さなビット入出力を持ち、入力ビットパターンに応じて予め指定されたビットパターンを出力するＣＬＢ（Cell Logic Block）ブロック７１１〜７１５，７２１〜７２５，７３１〜７３５，７４１〜７４５の他、回路外部とのデータ入出力を行うＩＯブロック７５１〜７５５等から構成される。各機能ブロック間のデータの入出力は、配線７６１〜７６５，７７１〜７７５によって実施することが可能である。なお、図６の演算器型メニイコア回路６００との混合型回路となる場合もある。
【００５６】
図８のマルチＣＰＵ（Central Processing Unit）型メニイコア回路８００は、ＣＰＵ型の機能ブロックを備える。各機能ブロックは、８，１６，３２ビット等、比較的大きなビット入出力を持ち、予め内部キャッシュに蓄積された命令に従って様々な演算処理を行うＣＰＵブロック８１１〜８１５，８２１〜８２５，８３１〜８３５，データ蓄積を行うＲＡＭブロック８４１〜８４５，回路外部とのデータ入出力を行うＩＯブロック８５１〜８５５等から構成される。各機能ブロックの出力と入力は、配線８６１〜８６５，８７１〜８７５によって実施することが可能である。なお、データの入出力を、隣接ブロック間に限定して、配線長を限定し、動作周波数向上を図る場合もある。
【００５７】
図３は、本実施例の情報処理装置２００がネットワーク上で使用される例を示す。
【００５８】
本装置２００は、フロントエンドネットワーク３０１とバックエンドシステム３０３の間のエッジネットワーク３０２に配置される。バックエンドシステム３０３には、バックエンド端末であるＶＯＤサーバ３０４が配置される。-
本装置２００は、固定/携帯端末からＶＯＤデータ配信要求パケット３０５／３０７を受信すると、パケット記載のＨＴＴＰコマンド等に基づいて、必要なデータをＶＯＤサーバ３０４に要求し（３０９）、必要なＶＯＤデータを逐一ダウンロードしつつ（３１０）、装置内部の主記憶に蓄積したデータの変更を行い、ＶＯＤデータの配信を行う（３０６／３０８）。または、図２に示すＨＤＤデータ更新部２１２が、予め、ＶＯＤサーバ３０４の全内容をダウンロードして（３１０）、装置内部のハードディスク（ＨＤＤ）１７４に蓄積しておき、ＶＯＤデータの配信を行う（３０６／３０８）。
【００５９】
図４は、本実施例の情報処理装置２００がバックエンドシステムで使用される例を示す。
【００６０】
本装置２００は、バックエンドシステム３０３に配置され、サーバ３０４を内蔵する。このとき、図２に示すように、装置２００のスイッチ１０２にサーバ３０４が接続される。
【００６１】
次に、図２に示した本実施例の情報処理装置２００の動的再構成処理部としてのメニイコアプロセッサ１０１とパケットＩ／Ｏ １００とメモリ１０３とＨＤＤ１７４の動作について説明する。
【００６２】
図１は、本実施例の動的再構成処理部としてのメニイコアプロセッサ１０１とパケットＩ／Ｏ １００とメモリ１０３の一具体例の詳細な構成ブロック図である。
【００６３】
パケットＩ／Ｏ １００は、処理すべきパケットか否かの判定と、処理すべきパケットの分類を実行する、スイッチ１０２に接続された分類器１１０と、処理すべきパケットを蓄積するパケットバッファ１１１と、処理が不要なパケットを蓄積するパケットバッファ１１２と、パケットバッファ１１１からパケットを読み出すパケット読出し部１１３と、パケット読出し部１１３の読み出したパケットを一時的に蓄積するパケットバッファ１９０と、受信したパケットのタイプを判定するパケットタイプ判定部１０９と、端末毎にデータ転送の許可/禁止および送信可能帯域を記録する転送可否/帯域設定テーブル１０７と、受信パケットの内部情報に基づき、転送可否/帯域設定テーブル１０７から、端末毎のデータ転送の許可/禁止および送信可能帯域を読み出す端末アクセス判定部１０８と、通信状態の蓄積を行う通信状態テーブル１０５と、主に通信状態の変更を行うメニイコアプロセッサ１０４と、メニイコアプロセッサ１０４向けの構成データを記録する構成データ記憶部１０６と、パケットを集約して出力する集約器１１４とから構成される。なお、端末１９６は後で説明するように、転送可否/帯域設定テーブル１０７の内容を外部から変更するために使用される。
【００６４】
メニイコアプロセッサ１０４は、汎用演算器１１７と、機能と互いの配線が可変である小型演算器を複数搭載した演算マトリックス１１５と、演算マトリックス向けの構成データを蓄積する構成データキャッシュ１１６を含む。演算マトリックス１１５は、複数の演算器によって、通信状態読出し部１１８と、通信状態更新部１１９と、通信状態書込み部１２０と、端末毎のデータ転送の許可/禁止＆送信可能帯域とパケットタイプに基づき再構成向けの割込みを生成する再構成向け割込み生成部１２５と、受信パケット記載の内部情報と読み出した通信状態に基づき平均送信帯域を推定する送信帯域推定部１２３と、端末毎のデータ転送の許可/禁止＆送信可能帯域と平均送信帯域に基づき送信可能量を設定する送信可能量設定部１２４と、通信状態とパケット記載の内部情報に基づきパケット廃棄を行うフィルタ１９２と、送信先端末毎にパケット送信量をカウントする送信バイトカウンタ１２８と、パケット送信量またはパケット送信時間と予め定めた閾値を比較する送信量/時間判定部１２７と、通信状態を広帯域転送状態から狭帯域転送状態に変更する広帯域/狭帯域転送状態変更部１２６と、変更済み通信状態を一時的に蓄積する通信状態バッファ１２１と、受信パケットを一時的に蓄積するパケットバッファ１２２と、を構成する。この演算マトリックス１１５は、後で詳述するように通信状態更新部としての機能や、転送状態変更部としての機能を構成している。なお、本実施例における広帯域転送、狭帯域転送における送信帯域は、図２５に例示した１０Ｍｂｐｓ、５００ｋｂｐのように２０倍程度の差を持つが、これに限定されるものではないことは言うまでもない。
【００６５】
動的再構成処理部としてのメニイコアプロセッサ１０１は、汎用演算器１３０と、機能と互いの配線が可変である小型演算器を複数搭載した演算マトリックス１２９と、構成データキャッシュ１３１と、バススイッチ１３２と、外部メモリアクセス用のＳＤＲＡＭ  Ｉ／Ｆ１３３と、ＰＣＩバスアクセス用のＰＣＩ  Ｉ／Ｆ１７９と、から構成される。
【００６６】
外部メモリ１０３は、構成データキャッシュ１３１に蓄積しきれない構成情報を蓄積した構成データエリア１４１と、構成データエリア１４１内の構成データへのアドレスポインタを記載した構成データポインタ１４０と、ＯＳ／アプリケーションデータエリア１４２と、狭帯域転送用ＶＯＤデータを蓄積する狭帯域転送用データエリア１８２と、ＶＯＤファイル名および再生箇所の記録エリア１８３と、読み出し先頭アドレスの記録エリア１８４と、更新済み最後尾アドレスの記録エリア１８５と、広帯域転送用ＶＯＤデータを蓄積する広帯域転送用データエリア１８０と、狭帯域転送用ＶＯＤデータエリアへのポインタを蓄積するポインタエリア１８１と、を保持する。
【００６７】
動的再構成処理部であるメニイコアプロセッサ１０１の汎用演算器１３０は、ＯＳ １３９を実行しており、演算マトリックス１２９が生成する汎用再構成向けトリガ１６９を受け取ると、論理回路再構成関数１３８を呼び出す。呼び出された論理回路再構成関数１３８は、構成データエリア１４１から構成データを読み出して、構成データキャッシュ１３１へのロード、および演算マトリックス１２９への転送を行う。
【００６８】
演算マトリックス１２９は、通信状態に基づき、演算マトリックス１２９自身が自律的に再構成するために必要な割込みを生成する自律再構成向け割込み生成用の構成１３５と、汎用演算器１３０向けに再構成向けの割込みを生成する汎用再構成向け割込み生成用の構成１３４と、通信状態とパケットを用いてＴＣＰ／ＩＰ制御を行い、メモリ１０３内部の転送用ＶＯＤデータエリア１８０〜１８５の更新や、ＶＯＤデータを含むパケットの生成および広帯域／狭帯域転送を行う構成１３６と、新たに生成したパケットのＴＣＰ／ＩＰチェックサムを計算した上で、パケットの送信を行い、全パケットの送信後に演算終了の通知を行う構成１３７と、を含む。
【００６９】
以下、パケットＩ／Ｏ １００、動的再構成処理部としてのメニイコアプロセッサ１０１、メモリ１０３の各部分について詳細に説明する。
【００７０】
パケットＩ／Ｏ １００内部の分類器１１０は、スイッチ１０２からパケットを受信すると（１４３）、処理すべきパケットか否かを判定する。処理が不要なパケットである場合は、集約器１１４に向けて出力し（１４６）、パケットバッファ１１２に蓄積する。処理すべきパケットである場合は、パケットバッファ１１１に蓄積する（１４５）。
【００７１】
図１１は、分類器１１０がスイッチ１０２から受信するパケット１４３のフォーマットの一例を示す。
【００７２】
パケット１４３は、ＩｎＬｉｎｅ１１００と、ＯｕｔＬｉｎｅ１１０１と、Ｔｙｐｅ１１０２と、Ｖｌａｎ１１０３と、ＳＭＡＣ１１０４と、ＤＭＡＣ１１０５と、Ｐｒｏｔｏ１１０６と、ＳＩＰ１１０７と、ＤＩＰ１１０８と、Ｓｐｏｒｔ１１０９と、Ｄｐｏｒｔ１１１０と、ＴＣＰ Ｆｌａｇ１１１１と、ＰＳＥＱ１１１２と、ＰＡＣＫ１１１３と、ＯｔｈｅｒＨｅａｄｅｒ１１１４と、各種コマンド１１１５と、Ｐａｙｌｏａｄ１１１６と、を含む。更に、本実施例では、ＳＩＰ１１０７と、ＤＩＰ１１０８と、Ｓｐｏｒｔ１１０９と、Ｄｐｏｒｔ１１１０とをまとめてパケットヘッダ（Ｐａｃｋｅｔ Ｈｅａｄｅｒ：Ｐ．Ｈ．）１１１７と表現する。このＰ．Ｈ．１１１７はパケット１４３の特徴を示す。
【００７３】
ここで、ＩｎＬｉｎｅ１１００は、パケットが入力した回線の識別番号である入力回線番号を格納する。ＯｕｔＬｉｎｅ１１０１は、パケットを出力する回線の識別番号である出力回線番号を格納する。Ｔｙｐｅ１１０２は、ネットワーク層のプロトコルを識別するための識別番号を格納する。Ｖｌａｎ１１０３は、ＶＬＡＮを識別するための番号を格納する。ＳＭＡＣ１１０４は、データリンク層の送信元アドレスである送信元ＭＡＣアドレスを格納する。ＤＭＡＣ１１０５は、宛先アドレスである宛先ＭＡＣアドレスを格納する。Ｐｒｏｔｏ１１０６は、ＵＤＰ(User Datagram Protocol)などのトランスポート層のプロトコルを識別するための識別番号を格納する。ＳＩＰ１１０７は、送信元アドレス、すなわち、送信側の端末のアドレスである送信元ＩＰアドレスを格納する。ＤＩＰ１１０８は、宛先アドレス、すなわち、受信側の端末のアドレスである宛先ＩＰアドレスを格納する。ＳＰＯＲＴ１１０９は、ＴＣＰの送信元ポートを格納する。ＤＰＯＲＴ１１１０は、ＴＣＰの宛先ポートを格納する。ＴＣＰ Ｆｌａｇ１１１１はＴＣＰフラグ番号を格納する。ＰＳＥＱ１１１２は、送信シーケンス番号（ＳＥＱ番号）を格納する。ＰＡＣＫ１１１３は、受信シーケンス番号（ＡＣＫ番号）を格納する。ＯｔｈｅｒＨｅａｄｅｒ１１１４は、その他のＩＰ／ＴＣＰヘッダデータを格納する。各種コマンド１１１５は、アプリケーション層のコマンドを格納する。Ｐａｙｌｏａｄ１１１６は、パケットヘッダと各種コマンド以外のデータを格納する。
【００７４】
分類器１１０は、例えば、Ｐ．Ｈ．１１１７の内容、すなわちパケットの特徴に応じて、パケットを分類し、処理すべきパケットか否かを判定する。処理が不要なパケットである場合は、集約器１１４に向けて出力し（１４６）、パケットバッファ１１２に蓄積する。処理すべきパケットである場合は、パケットバッファ１１１に蓄積する（１４５）。
【００７５】
パケット読出し部１１３は、フィルタ１９２から演算終了通知１９４を受け取るか、演算マトリックス１２９から演算終了通知１６４を受け取ると、バッファ１１１に蓄積されたパケットを読み出して（１４７）、パケットのタイプをチェックするパケットタイプ判定部１０９と、端末アクセス判定部１０８と、パケットバッファ１９０に転送する（１９１）。
【００７６】
端末アクセス判定部１０８は、パケット読出し部１１３からパケットを受信すると（１９１）、パケット記載の内部情報に基づき、転送可否/帯域設定テーブル１０７を検索し（１４９）、パケットに対応するエントリを読み出す。更に、読み出したエントリ記載の情報に基づき、転送帯域を決定する。
【００７７】
図１３は、転送可否/帯域設定テーブル１０７の一例の説明図である。
【００７８】
転送可否/帯域設定テーブル１０７は、ｍ個のエントリ１３００（１３００−１〜１３００−ｍ）を含む。
【００７９】
エントリ１３００は、上述のＰ．Ｈ．１１１７と同じく、ＳＩＰ１３０２と、ＤＩＰ１３０３と、ＳＰＯＲＴ１３０４と、ＤＰＯＲＴ１３０５を含む他、ＶＬＡＮ１３０１と、Ｂａｎｄｗｉｄｔｈ１３０６を含む。
【００８０】
ＳＩＰ１３０２は、通信の送信元アドレス、すなわち、送信側のホストのアドレスである送信元ＩＰアドレスを記録する。ＤＩＰ１３０３は、通信の宛先アドレス、すなわち、受信側のホストのアドレスである宛先ＩＰアドレスを記録する。ＳＰＯＲＴ１３０４は、通信のＴＣＰ送信元ポートを記録する。ＤＰＯＲＴ１３０５は、通信のＴＣＰ宛先ポートを記録する。ＶＬＡＮ１３０１は、通信のＶＬＡＮ識別番号を記録する。Ｂａｎｄｗｉｄｔｈ１３０６は、送信可能帯域を記録する。送信を禁止したい通信であれば、送信可能帯域として‘０’を記録する。これらのエントリ１３００内部の値は、上述の通り、外部端末１９６によって、変更することができる（１９７）。
【００８１】
図１４は、端末アクセス判定部１０８が、パケット読出し部１１３から受信したパケットに記載の内部情報に基づき、転送可否/帯域設定テーブル１０７から、パケットに対応するエントリを読み出して、送信可能帯域を決定する際のフローチャートである。
【００８２】
端末アクセス判定部１０８は、パケット読出し部１１３からパケットを受信すると（１９１）、パケット記載のＰ．Ｈ．１１１７と一致する（ＳＩＰ１３０２，ＤＩＰ１３０３，ＳＰＯＲＴ１３０４，ＤＰＯＲＴ１３０５）を持つエントリ１３００を、転送可否/帯域設定テーブル１０７から検索する（ステップ１４０１）。検索の結果、一致するエントリ１３００が存在したか否かを判定する（ステップ１４０２）。一致するエントリ１３００が存在した場合、エントリ１３００に記載の送信可能帯域Ｂａｎｄｗｉｄｔｈ１３０６を、送信可能帯域値（１５１）として、再構成向け割込み生成部１２５と送信可能量設定部１２４へ出力する（ステップ１４０３）。一方、一致するエントリ１３００が存在しない場合、予め定めた送信可能帯域値（１５１）を、再構成向け割込み生成部１２５と送信可能量設定部１２４へ出力する（ステップ１４０４）。
【００８３】
パケットタイプ判定部１０９は、パケット読出し部１１３からパケットを受信すると（１９１）、パケット記載のパケットタイプＴｙｐｅ１１０２に基づき、パケットのタイプを判定する。
【００８４】
図１５は、パケットタイプ判定部１０９が、受信パケット記載の内部情報に基づき、パケットのタイプを判定する際のフローチャートである。
【００８５】
パケットタイプ判定部１０９は、パケット読出し部１１３からパケットを受信すると（１９１）、パケット記載のパケットタイプＴｙｐｅ１１０２に格納されている値が０ｘ０８００と一致するか否かを判定する（ステップ１５０１）。一致する場合は、再構成向け割込み生成部１２５に向け、パケットタイプがＩＰｖ４である旨（１５０）を通知する（ステップ１５０２）。一致しない場合は、パケット記載のパケットタイプＴｙｐｅ１１０２に格納されている値が０ｘ８６ｄｄと一致するか否かを判定する（ステップ１５０３）。一致する場合は、再構成向け割込み生成部１２５に向け、パケットタイプがＩＰｖ６である旨（１５０）を通知する（ステップ１５０４）。一致しない場合は、パケット記載のパケットタイプＴｙｐｅ１１０２に格納されている値が０ｘ８１００と一致するか否かを判定する（ステップ１５０５）。一致する場合は、再構成向け割込み生成部１２５に向け、パケットタイプがＶＬＡＮである旨（１５０）を通知する（ステップ１５０６）。一致しない場合は、再構成向け割込み生成部１２５に向け、処理対象外のパケットタイプである旨（１５０）を通知する（ステップ１５０７）。
【００８６】
再構成向け割込み生成部１２５は、演算マトリックス１１５の演算器群によって構成され、端末アクセス判定部１０８から受信した送信可能帯域１５１と、パケットタイプ判定部１０９から受信したパケットタイプの判定結果１５０と、に基づき、演算マトリックス１１５が再構成するために必要な割込み（１６０）を生成する。
【００８７】
図１６は、再構成向け割込み生成部１２５が、送信可能帯域１５１と、パケットタイプの判定結果１５０とに基づき、演算マトリックス１１５が再構成するために必要な割込み（１６０）を生成する際のフローチャートである。
【００８８】
再構成向け割込み生成部１２５は、送信可能帯域１５１と、パケットタイプの判定結果１５０を受信すると、送信可能帯域１５１が‘０’か否かを判定する（ステップ１６０１）。送信可能帯域１５１が‘０’である場合、パケット廃棄用回路への再構成を要求する割込み（１６０）を生成する（１６０５）。送信可能帯域１５１が‘０’ではない場合、パケットタイプの判定結果１５０がＩＰｖ４か否かを判定する（ステップ１６０２）。ＩＰｖ４である場合、ＩＰｖ４パケット処理用回路への再構成を要求する割込み（１６０）を生成する（ステップ１６０８）。ＩＰｖ４ではない場合、パケットタイプの判定結果１５０がＩＰｖ６か否かを判定する（ステップ１６０３）。ＩＰｖ６である場合、ＩＰｖ６パケット処理用回路への再構成を要求する割込み（１６０）を生成する（ステップ１６０７）。ＩＰｖ６ではない場合、パケットタイプの判定結果１５０がＶＬＡＮか否かを判定する（ステップ１６０４）。ＶＬＡＮである場合、ＶＬＡＮパケット処理用回路への再構成を要求する割込み（１６０）を生成する（ステップ１６０６）。ＶＬＡＮではない場合、パケット廃棄用回路への再構成を要求する割込み（１６０）を生成する（１６０５）。
【００８９】
割込み（１６０）は、汎用演算器１１７または演算マトリックス１１５自身に向けて生成される。汎用演算器１１７は、次に使用する構成データが構成データキャッシュ１１６に蓄積されていない場合、構成データ記憶部１０６から構成データを読み込み、構成データキャッシュ１１６に転送する（１８９）。汎用演算器１１７または演算マトリックス１１５は、次に使用する構成データを、構成データキャッシュ１１６から演算マトリックス１１５に転送し（１９５）、転送した構成データ１９５に基づき、演算マトリックス１１５の演算器群の配線と機能を再構成する。
【００９０】
以上の、図１４〜図１６を使って説明した処理を、装置２００が実施することで、受信したパケットのタイプと、端末毎に予め設定したデータ転送の許可/禁止および送信可能帯域と、に基づいて演算マトリックスの再構成を行うことが可能となる。これによって、パケットタイプおよびパケット送信元毎に最適化した論理回路を使用して、通信状態の変更を行うことができる。
【００９１】
再構成向け割込み生成部１２５が、パケット廃棄用回路への再構成を要求する割込み（１６０）を生成した場合、演算マトリックス１１５は、パケットバッファ１９０からパケット１４８を読出した後、フィルタ１９２によってパケットを廃棄し、処理終了通知１９４をパケット読出し部１１３に出力する回路に再構成される。
【００９２】
再構成向け割込み生成部１２５が、ＩＰｖ４／ＩＰｖ６／ＶＬＡＮパケット処理用回路への再構成を要求する割込み（１６０）を生成した場合、演算マトリックス１１５は、パケットタイプ毎に最適化された回路に再構成され、通信状態テーブル１０５記載の通信状態の変更を行う。
【００９３】
なお、通信状態テーブル１０５記載の通信状態は、後で詳述するように、受信パケットを用いて変更する場合と、送信パケットを用いて変更する場合がある。前者は通信状態読出し部１１８と通信状態更新部１１９と通信状態書込み部１２０とによって実行され、後者は図１７を用いて説明する送信バイトカウンタ１２８と送信量／時間判定部１２７と広帯域／狭帯域転送状態変更部１２６とによって実行される。
【００９４】
図１２は、通信状態テーブル１０５の一例の説明図である。
【００９５】
通信状態テーブル１０５は、ｎ個のエントリ１２００（１２００−１〜１２００−ｎ）を含む。
【００９６】
エントリ１２００は、Ｆ−ＶＬＮ１２０１と、Ｆ−ＩＰ１２０２と、Ｆ−ＰＯＲＴ１２０３と、Ｆ−ＩＤ１２０４と、Ｆ−ＳＥＱ１２０５と、Ｆ−ＡＣＫ１２０６と、Ｆ−ＷＩＮ１２０７と、Ｆ−ＦＬＴ１２０８と、Ｆ−ＴＩＭＥ１２０９と、Ｆ−ＰＮＴ１２１０と、Ｆ−ＳＴＡＴＥ１２１１と、Ｆ−ＢＹＴ１２１２と、Ｆ−ＩＮＴ１２１３と、Ｂ−ＶＬＮ１２１４と、Ｂ−ＩＰ１２１５と、Ｂ−ＰＯＲＴ１２１６と、Ｂ−ＩＤ１２１７と、Ｂ−ＳＥＱ１２１８と、Ｂ−ＡＣＫ１２１９と、Ｂ−ＷＩＮ１２２０と、Ｂ−ＦＬＴ１２２１と、Ｂ−ＴＩＭＥ１２２２と、Ｂ−ＰＮＴ１２２３と、Ｂ−ＳＴＡＴＥ１２２４と、Ｂ−ＢＹＴ１２２５と、Ｂ−ＩＮＴ１２２６と、を含む。
【００９７】
Ｆ−ＶＬＮ１２０１は、フロントエンド側の端末との通信に使用されているＶＬＡＮ識別番号を記録する。Ｂ−ＶＬＮ１２１４は、バックエンド側の端末との通信に使用されているＶＬＡＮ識別番号を記録する。Ｆ−ＩＰ１２０２は、フロントエンド側の端末のＩＰアドレスを記録する。Ｂ−ＩＰ１２１５は、バックエンド側の端末のＩＰアドレスを記録する。Ｆ−ＰＯＲＴ１２０３は、フロントエンド側の端末のＴＣＰポート番号を記録する。Ｂ−ＰＯＲＴ１２１６は、バックエンド側の端末のＴＣＰポート番号を記録する。Ｆ−ＩＤ１２０４は、フロントエンド側の端末に送信したパケットのＩＤ番号を記録する。Ｂ−ＩＤ１２１７は、バックエンド側の端末に送信したパケットのＩＤ番号を記録する。Ｆ−ＳＥＱ１２０５は、フロントエンド側端末との通信の送信シーケンス番号を記録する。Ｂ−ＳＥＱ１２１８は、バックエンド側端末との通信の送信シーケンス番号を記録する。Ｆ−ＡＣＫ１２０６は、フロントエンド側端末との通信の受信シーケンス番号を記録する。Ｂ−ＡＣＫ１２１９は、バックエンド側端末との通信の受信シーケンス番号を記録する。Ｆ−ＷＩＮ１２０７は、フロントエンド側端末との通信で使用するＴＣＰ向け輻輳ウィンドウサイズを記録する。Ｂ−ＷＩＮ１２２０は、バックエンド側端末との通信で使用するＴＣＰ向け輻輳ウィンドウサイズを記録する。
【００９８】
Ｆ−ＦＬＴ１２０８は、フロントエンド側端末にすでに送信済みだが、到達が未確認のデータサイズを表す到達未確認送信量を記録する。Ｂ−ＦＬＴ１２２１は、バックエンド側端末にすでに送信済みだが、到達が未確認のデータサイズを表す到達未確認送信量を記録する。Ｆ−ＴＩＭＥ１２０９は、フロントエンド側端末からパケットを受信した最新の時刻を記録する。Ｂ−ＴＩＭＥ１２２２は、バックエンド側端末からパケットを受信した最新の時刻を記録する。Ｆ−ＰＮＴ１２１０は、フロントエンド側端末からパケットを受信した際に、ＴＣＰ／ＩＰ制御や広帯域／狭帯域転送を実行するＰＥ群１３６が使用するためのアドレスポインタを記録する。Ｂ−ＰＮＴ１２２３は、バックエンド側端末からパケットを受信した際に、メモリ１０３内のＶＯＤデータエリアの更新を実行するＰＥ群１３６が使用するためのアドレスポインタを記録する。Ｆ−ＳＴＡＴＥ１２１１は、装置２００がフロントエンド端末との間で確立した通信の通信状態（通信未確立状態，通信確立状態，狭帯域転送状態，広帯域転送状態，等）を記録する。Ｂ−ＳＴＡＴＥ１２２４は、装置２００がバックエンド端末との間で確立した通信の通信状態を記録する。Ｆ−ＢＹＴ１２１２は、通信を確立してからフロントエンド側の端末に送信したパケットのバイト積算量を記録する。Ｂ−ＢＹＴ１２２５は、通信を確立してからバックエンド側の端末に送信したパケットのバイト積算量を記録する。Ｆ−ＩＮＴ１２１３は、フロントエンド側の端末から、データ配信の要求を受け取ってからの経過時間を記録する。Ｂ−ＩＮＴ１２２６は、バックエンド側の端末に、データ配信を要求してからの経過時間を記録する。更に、本実施例では、Ｆ−ＩＰ１２０２と、Ｂ−ＩＰ１２１５と、Ｆ−ＰＯＲＴ１２０３と、Ｂ−ＰＯＲＴ１２１６とをまとめて、テーブルヘッダー（Ｔａｂｌｅ Ｈｅａｄｅｒ：Ｔ．Ｈ．）１２２７と表現する。
【００９９】
次に、通信状態テーブル１０５記載の通信状態の変更を説明するが、まず初めに、送信パケットを用いた通信状態変更について述べる。
【０１００】
送信パケットを用いた通信状態の変更は、送信バイトカウンタ１２８と送信量／時間判定部１２７と広帯域／定常状態変更部１２６によって実行される。
【０１０１】
図１７は、送信バイトカウンタ１２８と送信量／時間判定部１２７と広帯域／定常状態変更部１２６によって実行される送信パケットに基づく通信状態変更を示したフローチャートである。
【０１０２】
送信バイトカウンタ１２８は、ＴＣＰ／ＩＰ制御＆ＶＯＤデータエリア更新＆ＶＯＤデータ転送用の構成１３６から、新たな通信状態１６３を受け取ると（ステップ１７０１）、ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７から送信されてくるパケット１６５を受け取る毎に、通信状態１６３記載のバイト積算量Ｆ−ＢＹＴ１２１２に、パケット１６５のペイロード長を加算していく（ステップ１７０２）。ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７から演算終了通知１６４を受け取ると、ペイロード長を加算済みのバイト積算量Ｆ−ＢＹＴ１２１２を含む通信状態１８６を、送信量/時間判定部１２７に出力する（ステップ１７１０）。
【０１０３】
送信量／時間判定部１２７は、送信バイトカウンタ１２８から通信状態１８６を受け取ると、通信状態１８６記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態か否かを判定する（ステップ１７０３）。状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態を表す値である場合、通信状態１８６記載のバイト積算量Ｆ−ＢＹＴ１２１２が、予め定めた閾値Ｂｔｈｒを超過しているか否かを判定する（ステップ１７０４）。または、通信状態１８６記載の経過時間Ｆ−ＩＮＴ１２１３が、予め定めた閾値Ｔｔｈｒを超過しているか否かを判定して、判定結果を広帯域／狭帯域転送状態変更部１２６に出力する（１８７）（ステップ１７０４）。また、ステップ１７０３において、通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態を表す値では無いと判定した場合、通信状態１８６記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態か否かを判定する（ステップ１７０５）。通信状態値Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態である場合、通信状態１８６記載の経過時間Ｆ−ＩＮＴ１２１３が、予め定めた閾値Ｔｔｈｒを超過しているか否かを判定する（ステップ１７０６）。超過している場合は、通信状態記載のバイト積算量Ｆ−ＢＹＴ１２１２をＴｔｈｒ倍した後、経過時間Ｆ−ＩＮＴ１２１３とＴｔｈｒとの差で除算することで平滑化し、経過時間Ｆ−ＩＮＴ１２１３はＴｔｈｒによって減算する（ステップ１７０７）。最後に、変更済みの通信状態を、広帯域／狭帯域転送状態変更部１２６に出力する（１８７）。
【０１０４】
広帯域／狭帯域転送状態変更部１２６は、ステップ１７０４における判定結果が「超過」である場合、通信状態記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１を狭帯域転送状態を表す値に変更する（ステップ１７０８）。最後に、変更済みの通信状態を通信状態書込み部１２０へ出力する（１８８）（ステップ１７０９）。
【０１０５】
以上の図１７を使って記載した処理を、装置２００が実施することで、送信パケットを用いた通信状態変更が実現する。
【０１０６】
次に、送信帯域を制御するための通信状態変更、および、受信パケットを用いた通信状態変更について述べる。
【０１０７】
受信パケットを用いた通信状態変更は、主に、通信状態読出し部１１８と通信状態更新部１１９と通信状態書込み部１２０によって成され、送信帯域制御に関する通信状態変更のみが、送信帯域推定部１２３と送信可能量設定部１２４によって成される。
【０１０８】
演算マトリックス１１５は、パケットタイプ毎に最適化した回路に再構成した後、パケットバッファ１９０から受信したパケットを読み出し（１４８）、通信状態読出し部１１８と送信帯域推定部１２３と通信状態更新部１１９とフィルタ１９２へ、読み出したパケット１４８を出力する。
【０１０９】
通信状態読出し部１１８は、通信状態テーブル１０５から、パケット記載のＰ．Ｈ．１１１７と一致するＴ．Ｈ．１２２７を持つエントリ１２００を読み出す（１５５）。パケット記載のＰ．Ｈ．１１１７と一致するＴ．Ｈ．１２２７を持つエントリ１２００が、通信状態テーブル１０５に存在しない場合は、新たに、パケット記載のＰ．Ｈ．１１１７と一致するＴ．Ｈ．１２２７を持つエントリ１２００を作成する。読出・作成したエントリ１２００は、通信状態１５６として、通信状態更新部１１９およびフィルタ１９２に出力され、更に、通信状態１５３として、送信帯域推定部１２３に出力される。
【０１１０】
送信帯域推定部１２３は、通信状態読出し部１１８が出力した通信状態１５３と、パケットバッファ１９０から読み出したパケット１４８を用いて、平均送信帯域Ｂｓと、到達未確認送信量Ｆ−ＦＬＴ１２０８を算出し、送信可能量設定部１２４に向けて出力する（１５２）。
【０１１１】
更に、送信可能量設定部１２４は、送信帯域推定部１２３が算出した平均送信帯域Ｂｓおよび到達未確認送信量Ｆ−ＦＬＴ１２０８と、端末アクセス判定部１０８が出力した送信可能帯域値１５１とに基づき、通信状態記載の輻輳ウィンドウサイズＦ−ＷＩＮ１２０７の値を補正する。補正済み輻輳ウィンドウサイズＦ−ＷＩＮ１２０７の値は、送信可能量１５４として、通信状態更新部１１９に出力される。
【０１１２】
図１８は、送信帯域推定部１２３と、送信可能量設定部１２４が実行する処理のフローチャートである。
【０１１３】
送信帯域推定部１２３は、通信状態読出し部１１８が出力した通信状態１５３記載のバイト積算値Ｆ−ＢＹＴ１２１２−１，経過時間Ｆ−ＩＮＴ１２１３−１，送信シーケンス番号Ｆ−ＳＥＱ１２０５−１と、パケットバッファ１９０から読み出したパケット１４８記載の受信シーケンス番号ＰＡＣＫ１１１３を用いて、そのパケットを送信してきた端末に対する平均送信帯域Ｂｓ＝Ｆ−ＢＹＴ１２１２/Ｆ−ＩＮＴ１２１３と、到達未確認送信量Ｆ−ＦＬＴ１２０８＝Ｆ−ＳＥＱ１２０５＋Ｆ−ＷＩＮ１２０７−ＰＡＣＫ１１１３を算出する（ステップ１８０１）。更に、通信状態１５３記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１および輻輳ウィンドウサイズＦ−ＷＩＮ１２０７と、算出した平均送信帯域Ｂｓと到達未確認送信量Ｆ−ＦＬＴ１２０８を、送信可能量設定部１２４へ出力する（ステップ１８０２）。
【０１１４】
送信可能量設定部１２４は、送信帯域推定部１２３が算出した平均送信帯域Ｂｓと到達未確認送信量Ｆ−ＦＬＴ１２０８と、通信状態１５３記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１および輻輳ウィンドウサイズＦ−ＷＩＮ１２０７と、端末アクセス判定部１０８が出力した送信可能帯域値１５１と、を受信すると、まず初めに、通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態か否かを判定する（ステップ１８０３）。通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態である場合、平均送信帯域Ｂｓが、予め定めた係数Ｋburstと送信可能帯域値１５１との積算値を‘２’で割った値よりも小さいか否かを判定する（ステップ１８０４）。小さいと判定した場合、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７に到達未確認送信量Ｆ−ＦＬＴ１２０８を加算した値を、新たな輻輳ウィンドウサイズＦ−ＷＩＮ１２０７として（ステップ１８０７）、通信状態更新部１１９へ出力する（ステップ１８０９）。ステップ１８０４において、一致または大きいと判定した場合、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７の値を変更せずに（ステップ１８０８）、通信状態更新部１１９へ出力する（ステップ１８０９）。ステップ１８０３において、通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態ではないと判定した場合、通信状態値Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態か否かを判定する（ステップ１８０５）。Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態である場合、平均送信帯域Ｂｓが、送信可能帯域値１５１を‘２’で割った値よりも小さいか否かを判定する（ステップ１８０６）。小さいと判定した場合、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７に到達未確認送信量Ｆ−ＦＬＴ１２０８を加算した値を、新たな輻輳ウィンドウサイズＦ−ＷＩＮ１２０７として（ステップ１８０７）、通信状態更新部１１９へ出力する（ステップ１８０９）。ステップ１８０６において、一致または大きいと判定した場合、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７の値を変更せずに（ステップ１８０８）、通信状態更新部１１９へ出力する（ステップ１８０９）。
【０１１５】
以上により、送信帯域を制御するために使われる輻輳ウィンドウサイズＦ−ＷＩＮ１２０７が補正され、送信可能量１５４として、通信状態更新部１１９に出力される。
【０１１６】
通信状態更新部１１９は、通信状態読出し部１１８から受け取った通信状態１５６と、パケットバッファ１９０から読み出した受信パケット１４８と、送信可能量設定部１２４から受け取った送信可能量１５４に基づき、通信状態１５６を変更する。
【０１１７】
通信状態更新部１１９は、受信パケット１４８記載のＰＡＣＫ１１１３と、通信状態１５６のＦ−ＳＥＱ１２０５との差が、予め定めた値Ｗｔｈｒと‘０’の間にある場合のみ、ＰＡＣＫ１１１３の値を用いて、Ｆ−ＳＥＱ１２０５の値を変更する。Ｆ／Ｂ−ＩＮＴ１２１３／１２２６には、現在時刻と、Ｆ／Ｂ−ＴＩＭＥ１２０９／１２２２との差を加算する。Ｆ／Ｂ−ＴＩＭＥ１２０９／１２２２には、現在時刻が記載される。
【０１１８】
図１９Ａ、Ｂには、それぞれ通信状態の状態値Ｆ−ＳＴＡＴＥ１２１１とＢ−ＳＴＡＴＥ１２２４の遷移の一例図を示す。
【０１１９】
図１９Ａにおいて、通信状態値Ｆ−ＳＴＡＴＥ１２１１は、最初は、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’である（状態１９０１）。ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮのパケットを受信すると、接続要求受信状態ＳＹＮ  ＲＣＶＤを表す値‘０ｘ０００１’に遷移して、ＴＣＰ−Ｆｌａｇ１１１１にＳＹＮ−ＡＣＫを記載したパケットを返信する（状態１９０２）。その後、ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫのパケットを受信し、尚且つ、そのパケットのＰＡＣＫ１１１３がＦ−ＳＥＱ１２０５＋‘１’と等しい場合、通信状態値Ｆ−ＳＴＡＴＥ１２１１は、通信確立状態ＥＳＴＡＢを表す値‘０ｘ０００３’に遷移する（状態１９０３）。それ以外のパケットを受信した場合は、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’へと戻る（状態１９０１）。通信状態値Ｆ−ＳＴＡＴＥ１２１１が、通信確立状態ＥＳＴＡＢを表す値‘０ｘ０００３’に遷移した状態で、Ｐａｙｌｏａｄ１１１６にＨＴＴＰ（HyperText Transfer Protocol）によるＧＥＴコマンドが記載されたパケットを受信すると、通信状態値Ｆ−ＳＴＡＴＥ１２１１は、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’に遷移する（状態１９０４）。通信状態Ｆ−ＳＴＡＴＥ１２１１が、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’に遷移した状態で、バイト積算量Ｆ−ＢＹＴ１２１２が閾値Ｂｔｈｒを超過している場合、通信状態値Ｆ−ＳＴＡＴＥ１２１１は、狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’に遷移する（状態１９０５）（本遷移は、バースト/狭帯域転送状態変更部１２６によって実行）。通信状態Ｆ−ＳＴＡＴＥ１２１１が、狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’に遷移した状態で、Ｐａｙｌｏａｄ１１１６にＨＴＴＰによるＧＥＴコマンドが記載されたパケットを受信すると、通信状態値Ｆ−ＳＴＡＴＥ１２１１は、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’に戻る（状態１９０４）。通信状態値Ｆ−ＳＴＡＴＥ１２１１が、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’、または、狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’に遷移した状態で、受信したパケットのＰＡＣＫ１１１３が、Ｆ−ＳＥＱ１２０５と等しく、前回受信したパケットのＰＡＣＫ１１１３と同じ値であった場合、２回目の重複ＡＣＫを受信した状態ＤＵＰ  ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴ／ＳＴＡＴＩＣを表す‘０ｘ０２０７／０ｘ０２０Ｆ’に遷移する（状態１９０６）。本状態で、更に、ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫのパケットを受信すると、元の状態に戻る。また、通信状態値Ｆ−ＳＴＡＴＥ１２１１が、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’、または、狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’に遷移した状態で、ＶＯＤデータの全データの配信が終了すると、通信状態Ｆ−ＳＴＡＴＥ１２１１は、通信確立状態ＥＳＴＡＢを表す値‘０ｘ０００３’に遷移する（状態１９０３）（本遷移は、ＴＣＰ／ＩＰ制御＆ＶＯＤデータエリア更新＆ＶＯＤデータ転送用の構成１３６によって実行）。通信状態Ｆ−ＳＴＡＴＥ１２１１が、接続要求受信状態ＳＹＮ  ＲＣＶＤを表す値‘０ｘ０００１’，通信確立状態ＥＳＴＡＢを表す値‘０ｘ０００３’，広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’，狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’，２回目の重複ＡＣＫを受信した状態ＤＵＰ  ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴ／ＳＴＡＴＩＣを表す‘０ｘ０２０７／０ｘ０２０Ｆ’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮ、またはＦＩＮ−ＡＣＫのパケットを受信すると、終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移して、ＴＣＰ−Ｆｌａｇ１１１１にＡＣＫを記載したパケットと、ＴＣＰ−Ｆｌａｇ１１１１にＦＩＮ−ＡＣＫを記載したパケットを返信する（状態１９０７）。通信状態値Ｆ−ＳＴＡＴＥ１２１１が、終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫのパケットを受信すると、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’に遷移する（状態１９０１）。また、通信状態Ｆ−ＳＴＡＴＥ１２１１が、接続要求受信状態ＳＹＮ  ＲＣＶＤを表す値‘０ｘ０００１’，通信確立状態ＥＳＴＡＢを表す値‘０ｘ０００３’，広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’，狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’，２回目の重複ＡＣＫを受信した状態ＤＵＰ  ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴ／ＳＴＡＴＩＣを表す‘０ｘ０２０７／０ｘ０２０Ｆ’，または終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＲＳＴまたはＲＳＴ−ＡＣＫのパケットを受信すると、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’に遷移する（状態１９０１）。
【０１２０】
図１９Ｂに示すように、通信状態値Ｂ−ＳＴＡＴＥ１２２４も、最初は、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’である（状態１９０８）。通信状態Ｆ−ＳＴＡＴＥ１２１１が、広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’に遷移すると、通信状態Ｂ−ＳＴＡＴＥ１２２４は、バックエンドのＶＯＤサーバ３０４への接続を要求する接続要求状態ＳＹＮ  ＳＥＮＴを表す値‘０ｘ０００１’へと遷移して、ＴＣＰ−Ｆｌａｇ１１１１にＳＹＮを記載したパケットを、サーバ３０４に向けて送信する（状態１９０９）。その後、ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮ−ＡＣＫのパケットを受信し、尚且つ、そのパケットのＰＡＣＫ１１１３がＦ−ＳＥＱ１２０５＋‘１’と等しい場合、通信状態値Ｂ−ＳＴＡＴＥ１２２４は、ＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’に遷移する（状態１９１０）。通信状態値Ｂ−ＳＴＡＴＥ１２２４が、ＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’に遷移した状態で、ＶＯＤデータエリアの更新が終了すると、通信状態値Ｂ−ＳＴＡＴＥ１２２４は、終了要求送信状態ＦＩＮ  ＳＥＮＴを表す値‘０ｘ０８００’に遷移して、ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮ−ＡＣＫのパケットをＶＯＤサーバ３０４に向けて送信する（状態１９１１）（本遷移は、ＴＣＰ／ＩＰ制御＆ＶＯＤデータエリア更新＆ＶＯＤデータ転送用の構成１３６によって実行）。通信状態Ｂ−ＳＴＡＴＥ１２２４が、終了要求送信状態ＦＩＮ  ＳＥＮＴを表す値‘０ｘ０８００’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮ−ＡＣＫのパケットを受信した場合、通信状態Ｂ−ＳＴＡＴＥ１２２４は、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’に遷移する（状態１９０８）。通信状態値Ｂ−ＳＴＡＴＥ１２２４が、接続要求状態ＳＹＮ  ＳＥＮＴを表す値‘０ｘ０００１’、または、ＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮ、またはＦＩＮ−ＡＣＫのパケットを受信すると、終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移して、ＴＣＰ−Ｆｌａｇ１１１１にＡＣＫを記載したパケットと、ＴＣＰ−Ｆｌａｇ１１１１にＦＩＮ−ＡＣＫを記載したパケットを返信する（状態１９１２）。更に、通信状態値Ｂ−ＳＴＡＴＥ１２２４が、終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫのパケットを受信すると、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’に遷移する（状態１９０８）。また、通信状態値Ｂ−ＳＴＡＴＥ１２２４が、接続要求状態ＳＹＮ  ＳＥＮＴを表す値‘０ｘ０００１’，ＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’，終了要求送信状態ＦＩＮ  ＳＥＮＴを表す値‘０ｘ０８００’，または、終了要求受信状態ＣＬＯＳＥ  ＷＡＩＴを表す値‘０ｘ０４００’に遷移した状態で、ＴＣＰ−Ｆｌａｇ１１１１がＲＳＴのパケットを受信すると、通信未確立状態ＣＬＯＳＥＤを表す値‘０ｘ００００’に遷移する（状態１９０８）。
【０１２１】
以上の図１８および図１９Ａ、Ｂを使って記載した処理を、装置２００が実施することで、送信帯域を制御するための通信状態変更、および、受信パケットを用いた通信状態変更が実現する。
【０１２２】
通信状態書込み部１２０は、通信状態更新部１１９が更新した通信状態１５７と、広帯域／狭帯域転送状態変更部１２６が更新した通信状態１８８を受信すると、通信状態テーブル１０５に、受信した通信状態を書き込む（１５９）。
【０１２３】
フィルタ１９２は、通信状態読出し部１１８の読み出した更新前の通信状態１５６と、通信状態更新部１１９の更新済み通信状態１５７と、パケットバッファ１９０から読み出したパケット１４８に基づき、特定の条件を満たすパケットの廃棄を行う。
【０１２４】
図２０は、フィルタ１９２が実行する処理のフローチャートである。
【０１２５】
フィルタ１９２は、通信状態読出し部１１８の読み出した更新前の通信状態１５６記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１の値が‘０ｘ０００１’と一致するか否かを判定し（ステップ２０００）、一致する場合は、パケットバッファ１９０から読み出したパケット１４８と、通信状態更新部１１９の更新済み通信状態１５７を廃棄して、演算終了をパケット読出し部１１３に通知する（１９４）（ステップ２００３）。ステップ２０００において、一致しない場合は、通信状態読出し部１１８の読み出した更新前の通信状態１５６記載のＦ−ＳＥＱ１２０５と、パケット１４８記載のＰＡＣＫ１１１３の差が、予め定めた値Ｗｔｈｒと‘０’の間にあるか否かを判定する（ステップ２００１）。ステップ２００１の条件を満たさない場合、パケットバッファ１９０から読み出したパケット１４８と、通信状態更新部１１９の更新済み通信状態１５７を廃棄して、演算終了をパケット読出し部１１３に通知する（１９４）（ステップ２００３）。ステップ２００１の条件を満たす場合、パケットバッファ１９０から読み出したパケット１４８をパケットバッファ１２２に転送して（１９３）、通信状態更新部１１９の更新済み通信状態１５７を、通信状態バッファ１２１および演算マトリックス１２９内部の汎用/自律再構成向け割り込み生成用の構成１３４／１３５へと転送する（１５８）（ステップ２００２）。
【０１２６】
動的再構成処理部を構成するメニイコアプロセッサ１０１内の演算マトリックス１２９は、フィルタ１９２からの通信状態１５８を受信すると、通信状態１５８内部のＦ−ＳＴＡＴＥ１２１１またはＢ−ＳＴＡＴＥ１２２４の値に基づき、内部の論理回路を再構成し、自律/汎用再構成向け割込み生成（汎用再構成向け割込み生成用の構成１３４と自律再構成向け割込み生成用の構成１３５が実行），ＴＣＰ／ＩＰ制御、およびメモリ内の転送用ＶＯＤデータエリア更新、およびＶＯＤデータの広帯域／狭帯域転送（ＴＣＰ／ＩＰ制御＆ＶＯＤデータエリア更新＆ＶＯＤデータ転送用の構成１３６が実行），ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知（ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７が実行），等の処理を行う。
【０１２７】
メモリ内の転送用ＶＯＤデータエリア更新処理では、外部メモリ１０３内に予め用意した転送用ＶＯＤデータエリア（狭帯域転送用データエリア１８２，ファイル名＆再生箇所の記録エリア１８３，読出し先頭アドレスの記録エリア１８４，更新済み最後尾アドレスの記録エリア１８５，広帯域転送用データエリア１８０，狭帯域転送用データへのポインタエリア１８１）を更新する。この更新には、後で詳述するように、演算マトリックス１２９がＶＯＤサーバ３０４からネットワーク経由でＶＯＤデータを受信してＶＯＤデータエリアを更新する方法（１７６）と、ＨＤＤデータ転送関数１７３がＨＤＤ１７４内のＶＯＤデータを転送してＶＯＤデータエリアを更新する方法（１７８）の２通りがある。ＨＤＤ１７４に予め蓄積したＶＯＤデータを転送して更新する方法では、汎用演算器１３０が実行するＨＤＤデータ転送関数１７３が、ＨＤＤからデータエリアへのＶＯＤデータ転送を実行する。
【０１２８】
図９と図１０Ａに転送用ＶＯＤデータエリアのフォーマットの一例図を示す。図９には、広帯域転送用ＶＯＤデータエリアのフォーマットを、図１０Ａには、狭帯域転送用ＶＯＤデータエリアのフォーマットを示す。
【０１２９】
広帯域転送用ＶＯＤデータエリアは、広帯域転送用データエリア１８０と、狭帯域転送用データへのポインタエリア１８１の２つから構成される。広帯域転送用データエリア１８０は、ＶＯＤの広帯域転送に必要な全データを一時的にバッファリングしておく領域であり、ＶＯＤ配信端末毎に広帯域転送が必要になる度に一時的に割り当てられ、広帯域転送が不要になると割当が解除される広帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１−ｉ（ｉ＝1〜ｍ）から構成される。狭帯域転送用データへのポインタエリア１８１は、広帯域転送終了後に使用する狭帯域転送用データエリアへのポインタＰｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２−ｉ（ｉ＝１〜ｍ）と、広帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１−ｉの使用状況を記録するＲｅｃｏｒｄ＿Ｆｌａｇ９０３−ｉ（ｉ＝１〜ｍ）とから構成され、広帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１−ｉとは１対１で対応している。
【０１３０】
図１０Ａに示すように、狭帯域転送用ＶＯＤデータエリアは、狭帯域転送用データエリア１８２と、ファイル名＆再生箇所の記録エリア１８３と、読出し先頭アドレスの記録エリア１８４と、更新済み最後尾アドレスの記録エリア１８５から構成される。狭帯域転送用データエリア１８２は、ＶＯＤの狭帯域転送に必要なデータの一部を一時的にバッファリングしておく領域であり、ＶＯＤ配信端末毎に割り当て、ＶＯＤ配信が終了すると割当が解除される狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉ（ｉ＝1〜ｋ）から構成される。ファイル名＆再生箇所の記録エリア１８３は、ＶＯＤ配信端末が配信を要求してきたＶＯＤファイル名を記録するＦｉｌｅ＿Ｎａｍｅ１００２−ｉ（ｉ＝1〜ｋ）と、再生箇所Ｐｌａｙｉｎｇ＿Ｐｏｉｎｔ１００３−ｉ（ｉ＝1〜ｋ）とから構成され、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉとは１対１で対応している。読出し先頭アドレスの記録エリア１８４は、ＶＯＤデータを狭帯域転送する際に使用する狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉの読出し開始アドレス値Ｎｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４−ｉ（ｉ＝1〜ｋ）から構成され、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉとは１対１で対応している。更新済み最後尾アドレスの記録エリア１８５は、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉ内の更新済みデータエリアの最後尾アドレスＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５−ｉ（ｉ＝1〜ｋ）から構成され、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉとは１対１で対応している。
【０１３１】
読出し開始アドレス値Ｎｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４−ｉと、更新済みデータエリアの最後尾アドレスＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５−ｉは、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉ内のＶＯＤデータの更新と、読出し＆転送と、を繰り返すことで、狭帯域転送用データバッファＤａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉが占めるアドレス領域範囲をループしながら遷移する（図１０Ｂ参照）。
【０１３２】
図２１に、演算マトリックス１２９が、通信状態１５８内部のＦ−ＳＴＡＴＥ１２１１またはＢ−ＳＴＡＴＥ１２２４の値に基づき、内部の論理回路を再構成し、自律/汎用再構成向け割込み生成（汎用再構成向け割込み生成用の構成１３４と自律再構成向け割込み生成用の構成１３５が実行），ＴＣＰ／ＩＰ制御＆メモリ内の転送用ＶＯＤデータエリア更新＆ＶＯＤデータの広帯域／狭帯域転送（ＴＣＰ／ＩＰ制御＆ＶＯＤデータエリア更新＆ＶＯＤデータ転送用の構成１３６が実行），ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知（ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７が実行）を行い、ＶＯＤサーバ３０４からネットワーク経由でメモリ内の転送用ＶＯＤデータエリアを更新する場合のフローチャートを示す。
【０１３３】
自律再構成向け割込み生成用の構成１３５は、通信状態１５８を受信すると（ステップ２１００）、自律再構成向け割込み１６６を演算マトリックス１２９自身に向けて生成する（ステップ２１０１）。同時に、演算マトリックス１２９は、通信状態１５８に応じて予め定めた構成データを、構成データキャッシュから読出し（１６６，１６７）、再構成する（ステップ２１０２）。
【０１３４】
汎用再構成向け割込み生成用の構成１３４は、通信状態１５８を受信すると（ステップ２１００）、汎用再構成向け割込み１６９を汎用演算器１３０に向けて生成すると共に、通信状態１５８に基づき次に使用する構成データを定め、構成データへのポインタ値を構成データポインタ１４０に書き込む（１６８）（ステップ２１０１）。汎用演算器１３０が割込み１６９を受け取ると、ＯＳ１３９が論理回路再構成関数１３８を呼び出す。論理回路再構成関数１３８は、構成データポインタ１４０から読み出したポインタ（１７１）に基づき、構成データエリア１４１から構成データを読出し（１７０）、構成データキャッシュ１３１へ転送した上で（１７２）、演算マトリックス１２９にロードし（１６７）、演算マトリックス１２９を再構成する（ステップ２１０２）。
【０１３５】
受信パケットがフロントエンド端末から送信されたパケットであり、尚且つ、通信状態値Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’，‘０ｘ０００１’，‘０ｘ０００３’，‘０ｘ０２０７’，‘０ｘ０２０Ｆ’，‘０ｘ０４００’のとき、演算マトリックス１２９は、ＴＣＰ／ＩＰ制御用の構成１３６−１へと再構成する。
【０１３６】
ＴＣＰ／ＩＰ制御用の構成１３６−１は、パケットバッファ１２２から読み出したパケット１６２記載のＴＣＰ−Ｆｌａｇ１１１１と、通信状態バッファ１２１から読み出した通信状態１６１記載の通信状態値Ｆ−ＳＴＡＴＥ１２１１の値に応じて、処理内容を変更する（ステップ２１０３）。ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０００１’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＳＹＮ−ＡＣＫにした返信用パケットを作成する（ステップ２１０４）。ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０００３’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットを作成する（ステップ２１０５）。ＴＣＰ−Ｆｌａｇ１１１１がＲＳＴで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＲＳＴ−ＡＣＫにした返信用パケットを作成する（ステップ２１０６）。ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットを作成する（ステップ２１０７）。ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０４００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットと、ＴＣＰ−Ｆｌａｇ１１１１をＦＩＮ−ＡＣＫにした返信用パケットを作成する（ステップ２１０８）。
【０１３７】
受信パケットが、フロントエンド端末から送信されたパケットであり、尚且つ、通信状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’のとき、広帯域転送用の構成１３６−３へと再構成される。
【０１３８】
広帯域転送用の構成１３６−３は、パケットバッファ１２２から読み出したパケット１６２記載のＰａｙｌｏａｄ１１１６にＨＴＴＰのコマンドＧＥＴが書かれているか否かを判定する（ステップ２１１４）。書かれている場合は、広帯域転送用データエリア１８０の空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１と、狭帯域転送用データエリア１８２の空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１を検索する。その後、コマンドＧＥＴが要求するファイル名を、検索済み狭帯域転送用データエリア１８０の空領域１００１と対応するＦｉｌｅ＿Ｎａｍｅ１００２に記録する。更に、検索済み狭帯域転送用データエリア１８０の空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１の先頭アドレスを、検索済み広帯域転送用データエリア１８０の空領域９０１と対応するＰｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２に記録する。加えて、検索済み広帯域転送用データエリア１８０の空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１の先頭アドレス値を、通信状態内部のポインタＦ−ＰＮＴ１２１０に格納し、通信状態値Ｂ−ＳＴＡＴＥ１２２４を、ＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’とした上で、ＴＣＰ−Ｆｌａｇ１１１１をＳＹＮとして、ＶＯＤサーバ３０４に対して接続を要求するパケットを作成する（ステップ２１１６）。ステップ２１１４において、コマンドＧＥＴが書かれていない場合、通信状態１６１内部のポインタ値Ｆ−ＰＮＴ１２１０記載のアドレスを先頭として、広帯域転送用データエリア１８０の領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１からＶＯＤデータを読出し、読み出したデータを分割した上で、複数の広帯域転送用パケットを作成する。更に、ポインタ値Ｆ−ＰＮＴ１２１０記載のアドレス値には、データを読出した最終アドレス値の次のアドレス値を記録する（ステップ２１１５）。
【０１３９】
受信パケットが、バックエンド端末から送信されたパケットで、通信状態値Ｂ−ＳＴＡＴＥ１２２４がＶＯＤデータエリア更新状態ＤＯＷＮＬＯＡＤを表す値‘０ｘ０００Ｂ’のとき、ＶＯＤデータエリア更新用の構成１３６−２へと再構成される。
【０１４０】
ＶＯＤデータエリア更新用の構成１３６−２は、パケットバッファ１２２から読み出したパケット１６２記載のＴＣＰ−Ｆｌａｇ１１１１がＳＹＮ−ＡＣＫか否かを判定する（ステップ２１０９）。ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮ−ＡＣＫの場合、ＶＯＤサーバ３０４向けに、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにしたパケットを作成する。更に、通信状態記載のポインタ値Ｆ−ＰＮＴ１２１０に基づき、広帯域転送用データエリア１８０の領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１および対応するＰｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２を読出す。加えて、Ｐｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２が指定する狭帯域転送用データエリア１８０の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１および対応するＦｉｌｅ＿Ｎａｍｅ１００２とＰｌａｙｉｎｇ＿Ｐｏｉｎｔ１００３を読出し、ファイル名Ｆｉｌｅ＿Ｎａｍｅ１００２のファイルデータを、Ｐｌａｙｉｎｇ＿Ｐｏｉｎｔ１００３に記載された箇所から要求するパケットを、ＶＯＤサーバ３０４向けに、ＨＴＴＰのコマンドＧＥＴを用いて作成する（ステップ２１１２）。ステップ２１０９において、ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮ−ＡＣＫではない場合、広帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１または狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１に、受信パケットのＰａｙｌｏａｄ１１１６記載のＶＯＤデータを、通信状態記載のポインタ値Ｆ−ＰＮＴ１２１０を先頭アドレスとして蓄積する。なお、広帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１に、空きが無くなった場合は、Ｐｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２記載のアドレス値を先頭アドレスとして、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１に、残りのデータを蓄積する。更に、ポインタ値Ｆ−ＰＮＴ１２１０を、データを蓄積した最終アドレス値に変更する。最後にデータを蓄積したアドレス値が、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１にあるときは、Ｒｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５に、データを蓄積した最終アドレス値を記録する（ステップ２１１０）。その後、広帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１が、ＶＯＤデータで埋まったか否かを判定する（ステップ２１１１）。埋まっている場合は、Ｒｅｃｏｒｄ＿Ｆｌａｇ９０３の値を、‘１’（蓄積済みを表す）に変更し（ステップ２１１３）、前述したステップ２１１５の処理を行う。埋まっていない場合は、後述のステップ２１１７の処理を行う。
【０１４１】
受信パケットが、フロントエンド端末から送信されたパケットで、通信状態値Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’のとき、狭帯域転送用の構成１３６−４へと再構成される。
【０１４２】
狭帯域転送用の構成１３６−４は、通信状態のポインタ値Ｆ−ＰＮＴ１２１０の値に基づいて、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５とＮｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４の値を読出し、Ｒｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５とＮｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４の差が、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７より大きいか否かを判定する（ステップ２１１７）。大きくない場合は、何もせずに終了する（ステップ２１１８）。大きい場合、通信状態のポインタ値Ｆ−ＰＮＴ１２１０記載のアドレス値を先頭アドレスとして、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１からＶＯＤデータを読出し、読み出したデータを複数に分割した上で、複数の狭帯域転送用パケットを作成する。更に、Ｆ−ＰＮＴ１２１０と、Ｎｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４に、データを読み出した最終アドレス値を記録する（ステップ２１１９）。
【０１４３】
ＴＣＰ／ＩＰ制御用の構成１３６−１、ＶＯＤデータエリア更新用の構成１３６−２、広帯域転送用の構成１３６−３、狭帯域転送用の構成１３６−４における処理が終了すると、ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７へと再構成される。
【０１４４】
ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７は、構成１３６−１〜４にて生成したパケットについてＴＣＰ／ＩＰチェックサムを計算し（ステップ２１２０）、パケットを送信する（ステップ２１２１）。全パケットの送信が完了すると、演算終了通知１６４を、送信バイトカウンタ１２８とパケット読出し部１１３に出力する（ステップ２１２２）。
【０１４５】
図２２には、演算マトリックス１２９が、通信状態１５８内部のＦ−ＳＴＡＴＥ１２１１またはＢ−ＳＴＡＴＥ１２２４の値に基づき、内部の論理回路を再構成し、自律/汎用再構成向け割込み生成（汎用再構成向け割込み生成用の構成１３４と自律再構成向け割込み生成用の構成１３５が実行），ＴＣＰ／ＩＰ制御＆ＶＯＤデータの広帯域／狭帯域転送（ＴＣＰ／ＩＰ制御＆ＶＯＤデータ転送用の構成１３６が実行），ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知（ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７が実行）を行い、ＨＤＤデータ転送関数１７３がＨＤＤ１７４からＰＣＩ  Ｉ／Ｆ１７９経由でメモリ内の転送用ＶＯＤデータエリアを更新する場合のフローチャートを示す。
【０１４６】
自律再構成向け割込み生成用の構成１３５は、通信状態１５８を受信すると（ステップ２２００）、自律再構成向け割込み１６６を演算マトリックス１２９自身に向けて生成する（ステップ２２０１）。同時に、演算マトリックス１２９は、通信状態１５８に応じて予め定めた構成データを、構成データキャッシュから読出し（１６６，１６７）、再構成する（ステップ２２０２）。
【０１４７】
汎用再構成向け割込み生成用の構成１３４は、通信状態１５８を受信すると（ステップ２２００）、汎用再構成向け割込み１６９を汎用演算器１３０に向けて生成すると共に、通信状態１５８に基づき次に使用する構成データを定め、構成データへのポインタ値を構成データポインタ１４０に書き込む（１６８）（ステップ２２０１）。汎用演算器１３０が割込み１６９を受け取ると、ＯＳ１３９が論理回路再構成関数１３８を呼び出す。論理回路再構成関数１３８は、構成データポインタ１４０から読み出したポインタ（１７１）に基づき、構成データエリア１４１から構成データを読出し（１７０）、構成データキャッシュ１３１へ転送した上で（１７２）、演算マトリックス１２９にロードし、演算マトリックス１２９を再構成する（ステップ２２０２）。
【０１４８】
受信パケットが、フロントエンド端末から送信されたパケットで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’，‘０ｘ０００１’，‘０ｘ０００３’，‘０ｘ０２０７’，‘０ｘ０２０Ｆ’，‘０ｘ０４００’のとき、ＴＣＰ／ＩＰ制御用の構成１３６−１へと再構成される。
【０１４９】
ＴＣＰ／ＩＰ制御用の構成１３６−１は、パケットバッファ１２２から読み出したパケット１６２記載のＴＣＰ−Ｆｌａｇ１１１１と、通信状態バッファ１２１から読み出した通信状態１６１記載のＦ−ＳＴＡＴＥ１２１１の値に応じて、処理内容を変更する（ステップ２２０３）。ＴＣＰ−Ｆｌａｇ１１１１がＳＹＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０００１’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＳＹＮ−ＡＣＫにした返信用パケットを作成する（ステップ２２０４）。ＴＣＰ−Ｆｌａｇ１１１１がＡＣＫで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０００３’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットを作成する（ステップ２２０５）。ＴＣＰ−Ｆｌａｇ１１１１がＲＳＴで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＲＳＴ−ＡＣＫにした返信用パケットを作成する（ステップ２２０６）。ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ００００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットを作成する（ステップ２２０７）。ＴＣＰ−Ｆｌａｇ１１１１がＦＩＮで、Ｆ−ＳＴＡＴＥ１２１１が‘０ｘ０４００’のとき、ＴＣＰ−Ｆｌａｇ１１１１をＡＣＫにした返信用パケットと、ＴＣＰ−Ｆｌａｇ１１１１をＦＩＮ−ＡＣＫにした返信用パケットを作成する（ステップ２２０８）。
【０１５０】
受信パケットが、フロントエンド端末から送信されたパケットで、Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態ＨＴＴＰ  ＧＥＴ  ＢＵＲＳＴを表す値‘０ｘ０００７’のとき、広帯域転送用の構成１３６−３へと再構成される。
【０１５１】
広帯域転送用の構成１３６−３は、パケットバッファ１２２から読み出したパケット１６２記載のＰａｙｌｏａｄ１１１６にＨＴＴＰのコマンドＧＥＴが書かれているか否かを判定する（ステップ２２１４）。コマンドＧＥＴが書かれていない場合、通信状態１６１内部のＦ−ＰＮＴ１２１０記載のアドレスを先頭として、広帯域転送用データエリア１８０の領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１からＶＯＤデータを読出し、読み出したデータを複数に分割した上で、複数の広帯域転送用パケットを作成する。更に、Ｆ−ＰＮＴ１２１０記載のアドレス値には、データを読出した最終アドレス値の次のアドレス値を記録する（ステップ２２１５）。ステップ２２１４において、コマンドＧＥＴが書かれている場合、広帯域転送用データエリア１８０の空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１と、狭帯域転送用データエリア１８２の空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１を検索する。その後、コマンドＧＥＴが要求するファイルの名前を、狭帯域転送用データエリア１８０の検索済み空領域１００１と対応するＦｉｌｅ＿Ｎａｍｅ１００２に記録する。更に、狭帯域転送用データエリア１８０の検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１の先頭アドレスを、広帯域転送用データエリア１８０の検索済み空領域９０１と対応するＰｏｉｎｔｅｒ＿ｆｏｒ＿ｓｔａｔｉｃ９０２に記録する。加えて、広帯域転送用データエリア１８０の検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１の先頭アドレスを、通信状態内のＦ−ＰＮＴ１２１０に格納した後、汎用演算器１３０に向けて割込みを生成して（１７７）、ＨＤＤデータ転送関数１７３を呼び出す（ステップ２２１６）。
【０１５２】
呼び出されたＨＤＤデータ転送関数１７３は、ファイル名Ｆｉｌｅ＿Ｎａｍｅ１００２のファイルデータを、Ｐｌａｙｉｎｇ＿Ｐｏｉｎｔ１００３指定箇所を先頭としてＨＤＤ１７４から読出し（１７５）、読み出したデータを、広帯域転送用データエリア１８０の検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１に書き込む（１７８）。更に、広帯域転送用データエリア１８０の検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｂｕｒｓｔ９０１が一杯になった後は、続きのデータを狭帯域転送用データエリア１８２の検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１に書込み、データを書込みした最終アドレスを、検索済み空領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５に格納する（ステップ２２２４）。
【０１５３】
ＨＤＤデータ転送関数１７３におけるステップ２２２４の処理が完了すると、広帯域転送用の構成１３６−３におけるステップ２２１５の処理が行われる。
【０１５４】
受信パケットが、フロントエンド端末から送信されたパケットで、Ｆ−ＳＴＡＴＥ１２１１が狭帯域転送状態ＨＴＴＰ  ＧＥＴ  ＳＴＡＴＩＣを表す値‘０ｘ０００Ｆ’のとき、狭帯域転送用の構成１３６−４へと再構成される。
【０１５５】
狭帯域転送用の構成１３６−４は、通信状態のＦ−ＰＮＴ１２１０記載のアドレス値に基づいて、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５とＮｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４の値を読出し、Ｒｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５とＮｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４の差が、輻輳ウィンドウサイズＦ−ＷＩＮ１２０７より大きいか否かを判定する（ステップ２２１７）。大きい場合、通信状態のＦ−ＰＮＴ１２１０記載のアドレス値を先頭アドレスとして、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１からＶＯＤデータを読出し、読み出したデータを複数に分割した上で、複数の狭帯域転送用パケットを作成する。更に、Ｆ−ＰＮＴ１２１０と、Ｎｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４に、データを読み出した最終アドレス値の次のアドレス値を記録する（ステップ２２１９）。ステップ２２１７において、大きくないと判定した場合、汎用演算器１３０に向けて割込みを生成して（１７７）、ＨＤＤデータ転送関数１７３を呼び出す（ステップ２２１８）。
【０１５６】
呼び出されたＨＤＤデータ転送関数１７３は、ファイル名Ｆｉｌｅ＿Ｎａｍｅ１００２の未書込みファイルデータの続きを、Ｒｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５の一つ先のアドレスを先頭アドレスとして、狭帯域転送用データエリア１８２内の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１に書込み、データを書込みした最終アドレスを、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５に格納する（ステップ２２２３）。
【０１５７】
ＨＤＤデータ転送関数１７３におけるステップ２２２３の処理が完了すると、狭帯域転送用の構成１３６−４におけるステップ２２１９の処理が行われる。
【０１５８】
ＴＣＰ／ＩＰ制御用の構成１３６−１、広帯域転送用の構成１３６−３、狭帯域転送用の構成１３６−４における処理が終了すると、ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７へと再構成される。
【０１５９】
ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７は、構成１３６−１，３，４にて生成したパケットのＴＣＰ／ＩＰチェックサムを計算し（ステップ２２２０）、パケットを送信する（ステップ２２２１）。全パケットの送信が完了すると、演算終了通知１６４を、送信バイトカウンタ１２８とパケット読出し部１１３に出力する（ステップ２２２２）。
【０１６０】
ＨＤＤデータ転送関数１７３は、上記のように、演算マトリックス１２９の割込みによって呼び出され、ＶＯＤデータエリアの更新を行う他、ＯＳ１３９によって周期的に呼び出され、ＶＯＤデータエリアの更新を行う場合もある。
【０１６１】
図２３は、ＨＤＤデータ転送関数１７３が、ＯＳ１３９によって周期的に呼び出され、ＶＯＤデータエリアの更新を行う処理のフローチャートを示す。
【０１６２】
汎用演算器１３０のＨＤＤデータ転送関数１７３は、ＯＳ１３９によって周期的な呼び出しを受けると、狭帯域転送用データエリア１８２内のｋ個の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉ（ｉ＝１〜ｋ）のそれぞれに対して、ＶＯＤデータの更新を繰り返し行う（ステップ２３０１）。まず、Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＦｉｌｅ＿Ｎａｍｅ１００２に、ファイル名が格納されているか否かを判定する（ステップ２３０２）。ファイル名が格納されている場合、Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５とＮｅｘｔ＿Ｒｅａｄ＿Ａｄｄｒｅｓｓ１００４の差が、予め定めた閾値Ｗｔｈｒよりも小さいか否かを判定する（ステップ２３０３）。予め定めた閾値Ｗｔｈｒよりも小さい場合、ファイル名Ｆｉｌｅ＿Ｎａｍｅ１００２の未書込みファイルデータの続きを、Ｒｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５の一つ先のアドレスを先頭アドレスとして、狭帯域転送用データエリア１８２内の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１に書込み、データを書込みした最終アドレスを、狭帯域転送用データ領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１と対応するＲｅｎｅｗｅｄ＿Ｌａｓｔ＿Ａｄｄｒｅｓｓ１００５に格納する（ステップ２３０４）。その後、次の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉに対してＶＯＤデータの更新を実行する。ステップ２３０２において、ファイル名が格納されていない場合や、ステップ２３０３において、予め定めた閾値Ｗｔｈｒよりも小さくない場合も、ステップ２３０１に戻り、次の領域Ｄａｔａ＿ｆｏｒ＿ｓｔａｔｉｃ１００１−ｉに対してＶＯＤデータの更新を実行する。
【０１６３】
以上の図２１〜２３を使って記載した処理を、装置２００が実施することで、配信用のＶＯＤデータを、ＶＯＤファイルを蓄積した端末、またはＶＯＤファイルを蓄積するディスク部から先読みし、転送用ＶＯＤデータ蓄積エリアにバッファリングすることができる。
【０１６４】
図１のパケットＩ／Ｏ １００の集約器１１４は、ＴＣＰ／ＩＰチェックサム計算＆パケット送信＆演算終了通知用の構成１３７から受け取ったパケット１６５と、パケットバッファ１１２から読み出したパケットを集線して、出力する（１４４）。
【０１６５】
パケット読出し部１１３は、フィルタ１９２から演算終了通知１９４を受け取るか、演算マトリックス１２９から演算終了通知１６４を受け取ると、バッファ１１１に蓄積されたパケットを再び読み出して（１４７）、パケットタイプ判定部１０９と、端末アクセス判定部１０８と、パケットバッファ１９０に転送する（１９１）。
【実施例２】
【０１６６】
実施例１では、送信データに基づいて、通信状態を広帯域転送状態から狭帯域転送状態に変更する方式を記載したが、パケットのＰｒｏｔｏ１１０６がＴＣＰやＲＴＣＰ（RTP Control Protocol）である場合において、受信パケットに基づき、通信状態を広帯域転送状態から狭帯域転送状態に変更することもできる。
【０１６７】
実施例２では、バイト積算量Ｆ−ＢＹＴ１２１２の積算や、Ｆ−ＳＴＡＴＥ１２１１の広帯域転送状態から狭帯域転送状態への変更を、通信状態更新部１１９において行う。
【０１６８】
受信パケットのＰｒｏｔｏ１１０６がＴＣＰである場合、通信状態更新部１１９は、バイト積算量Ｆ−ＢＹＴ１２１２に、受信パケット記載のＰＡＣＫ１１１３と通信状態のＦ−ＳＥＱ１２０５の差を加算する。更に、状態値Ｆ−ＳＴＡＴＥ１２１１が広帯域転送状態を表す値‘０ｘ０００７’であり、尚且つ、加算済みバイト積算量Ｆ−ＢＹＴ１２１２と、到達未確認送信量Ｆ−ＦＬＴ１２０８の和が、予め定めた閾値Ｂｔｈｒを超過している場合、状態値Ｆ−ＳＴＡＴＥ１２１１を、狭帯域転送状態を表す値‘０ｘ０００Ｆ’に変更する。
【０１６９】
受信パケットのＰｒｏｔｏ１１０６がＲＴＣＰである場合は、受信パケット記載のＯｔｈｅｒＨｅａｄｅｒ１１１４記載の内容に基づき、バイト積算量Ｆ−ＢＹＴ１２１２を変更し、変更したバイト積算量Ｆ−ＢＹＴ１２１２が、予め定めた閾値Ｂｔｈｒを超過している場合に、状態値Ｆ−ＳＴＡＴＥ１２１１を、狭帯域転送状態を表す値‘０ｘ０００Ｆ’に変更する。
【０１７０】
以上により、プロトコルがＴＣＰやＲＴＣＰである場合においても、受信パケットに基づき、通信状態を広帯域転送状態から狭帯域転送状態に変更することが可能となる。以上の説明から明らかなように、本実施例による状態変更は、使用しているプロトコルの種類毎に、バイト積算量Ｆ−ＢＹＴ１２１２の変更方法が異なる点に留意されたい。
【０１７１】
なお、以上の説明においては、サーバとしてＶＯＤサーバを、サーバが出力するデータとしてＶＯＤデータを例示したが、本発明はＶＯＤサーバ、ＶＯＤデータに限らず、端末・端末間や、端末・サーバ間で転送される、例えば、データベースのクエリトランザクション、対異常通信防御等の他のデータ転送にも適用可能であることは言うまでもない。
【図面の簡単な説明】
【０１７２】
【図１】本発明の第一の実施例のパケットＩ／Ｏおよびメニイコアプロセッサおよびメモリの構成ブロック図。
【図２】第一の実施例の情報処理装置の構成ブロック図。
【図３】第一の実施例の適用システムの説明図。
【図４】第一の実施例の適用システムの説明図。
【図５】第一の実施例におけるメニイコアプロセッサの構成ブロック図。
【図６】第一の実施例における演算マトリックスの構成ブロックの一例を示す説明図。
【図７】第一の実施例における演算マトリックスの構成ブロックの一例を示す説明図。
【図８】第一の実施例における演算マトリックスの構成ブロックの一例を示す説明図。
【図９】第一の実施例における広帯域転送用ＶＯＤデータ蓄積エリアの説明図。
【図１０Ａ】第一の実施例における狭帯域転送用ＶＯＤデータ蓄積エリアの説明図。
【図１０Ｂ】第一の実施例における狭帯域転送用ＶＯＤデータ蓄積エリアにおける、読出し開始アドレス値と、更新済みデータエリアの最後尾アドレスの説明図。
【図１１】第一の実施例におけるパケットデータの説明図。
【図１２】第一の実施例における通信状態テーブルの一例の説明図。
【図１３】第一の実施例における転送可否／帯域設定テーブルの一例の説明図。
【図１４】第一の実施例における端末毎のデータ転送の可否および送信可能帯域を判定する際のフローチャート図。
【図１５】第一の実施例におけるパケットのタイプを判定する際のフローチャート図。
【図１６】第一の実施例におけるパケットタイプと送信可能帯域に基づいて割込みを生成する際のフローチャート図。
【図１７】第一の実施例におけるパケット送信時に通信状態を変更する際のフローチャート図。
【図１８】第一の実施例における送信帯域制御のための通信状態を変更する際のフローチャート図。
【図１９Ａ】第一の実施例における通信状態値の遷移の一例の説明図。
【図１９Ｂ】第一の実施例における通信状態値の遷移の一例の説明図。
【図２０】第一の実施例における通信状態とパケット記載の情報に基づきパケットを廃棄する際のフローチャート図。
【図２１】第一の実施例における通信状態に基づく再構成のサイクルと、各構成の処理内容を示すフローチャート図。
【図２２】第一の実施例における通信状態に基づく再構成のサイクルと、各構成の処理内容を示すフローチャート図。
【図２３】第一の実施例におけるＨＤＤデータ転送関数が、周期的にＶＯＤデータエリアの更新を行う際のフローチャート図。
【図２４】本発明の前提とした、通信状態に基づくパケット毎自己再構成を用いたメニイコアプロセッサ搭載装置の一構成ブロック図。
【図２５】本発明が実現する、一例としてのＶＯＤ配信の応答高速化の説明図。
【符号の説明】
【０１７３】
１００…パケットＩ／Ｏ、１０１、１０４…メニイコアプロセッサ、１０２…スイッチ、１０３…外部メモリ、１７４…ＨＤＤ、１９６…端末、２００…情報処理装置、３０１…フロントエンドネットワーク、３０２…エッジネットワーク、３０３…バックエンドシステム、３０４…ＶＯＤサーバ。
【図１】
2009093348.tif 000003
【図２】
2009093348.tif 000004
【図３】
2009093348.tif 000005
【図４】
2009093348.tif 000006
【図５】
2009093348.tif 000007
【図６】
2009093348.tif 000008
【図７】
2009093348.tif 000009
【図８】
2009093348.tif 000010
【図９】
2009093348.tif 000011
【図１０Ａ】
2009093348.tif 000012
【図１０Ｂ】
2009093348.tif 000013
【図１１】
2009093348.tif 000014
【図１２】
2009093348.tif 000015
【図１３】
2009093348.tif 000016
【図１４】
2009093348.tif 000017
【図１５】
2009093348.tif 000018
【図１６】
2009093348.tif 000019
【図１７】
2009093348.tif 000020
【図１８】
2009093348.tif 000021
【図１９Ａ】
2009093348.tif 000022
【図１９Ｂ】
2009093348.tif 000023
【図２０】
2009093348.tif 000024
【図２１】
2009093348.tif 000025
【図２２】
2009093348.tif 000026
【図２３】
2009093348.tif 000027
【図２４】
2009093348.tif 000028
【図２５】
2009093348.tif 000029