JP2009021774A - 情報処理装置、及び情報処理システム - Google Patents
情報処理装置、及び情報処理システム Download PDFInfo
- Publication number
- JP2009021774A JP2009021774A JP2007182205A JP2007182205A JP2009021774A JP 2009021774 A JP2009021774 A JP 2009021774A JP 2007182205 A JP2007182205 A JP 2007182205A JP 2007182205 A JP2007182205 A JP 2007182205A JP 2009021774 A JP2009021774 A JP 2009021774A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- communication state
- unit
- communication
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/45—Arrangements for providing or supporting expansion
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】
データベース等のアプリケーションレイヤのサーバサービスを高性能で実現する、小型で省電力な動的再構成プロセッサ搭載装置を提供する。
【解決手段】
パケット毎再構成を行う動的再構成プロセッサ搭載装置の動的再構成プロセッサ102に、複数のPEマトリックス178、179を設置する。また、パケットI/O 100に、PEマトリックス178が第一のパケットを処理しているときに、どっちのPEマトリックスで後続パケットの処理を行うかを決定するスケジューリング部142を設ける。スケジューリング部142は、第二のパケットが第一のパケットと同じ構成情報に基づく処理を必要とし、第三のパケットが第一のパケットと異なる構成情報に基づく処理を必要とする場合に、第一のパケットの処理が終了するまで第二のパケットを待機させて、第三のパケットに第二のPEマトリックスを優先的に使用させる。
【選択図】図1
データベース等のアプリケーションレイヤのサーバサービスを高性能で実現する、小型で省電力な動的再構成プロセッサ搭載装置を提供する。
【解決手段】
パケット毎再構成を行う動的再構成プロセッサ搭載装置の動的再構成プロセッサ102に、複数のPEマトリックス178、179を設置する。また、パケットI/O 100に、PEマトリックス178が第一のパケットを処理しているときに、どっちのPEマトリックスで後続パケットの処理を行うかを決定するスケジューリング部142を設ける。スケジューリング部142は、第二のパケットが第一のパケットと同じ構成情報に基づく処理を必要とし、第三のパケットが第一のパケットと異なる構成情報に基づく処理を必要とする場合に、第一のパケットの処理が終了するまで第二のパケットを待機させて、第三のパケットに第二のPEマトリックスを優先的に使用させる。
【選択図】図1
Description
本発明は、ネットワークに接続され、ネットワークで転送されるパケットを受信し、パケットを送受信している端末やホスト間の通信状態に応じて異なる処理を行い、装置内部に蓄積したデータの変更や、新たなパケットの生成および外部送信を行うことで、データベース等のサーバサービスを提供する技術に関する。
放送通信融合とユビキタスコンピューティングの並行進展により、バックエンド/アクセス双方のユーザから、サービスの多様化と演算性能の向上が求められている。そのため、ユビキタスデバイス(Radio Frequency Identification(RFID)/センサ/カメラ)を用いたサーバサービス(データベース(Data Base: DB)クエリトランザクション、対異常通信防御等)を、エッジネットワークに分散配置したアプライアンスで実現し、サーバサービスの演算性能と応答速度の向上を行う必要がでてきた。
ここで言うアプライアンスは、対異常通信防御とデータベースの機能を実現する。
対異常通信防御では、攻撃者からの異常パケットを探知・排除する。
データベースでは、分散配置された多数のRFID/据置センサ/映像センサから大量に受信したデータ更新パケットのSQL解析と、キャッシュへのデータ集約/アップロードと、キャッシュデータのサーバへの自動アップロードを行う。また、携帯端末等のクライアントからのデータ要求パケットのSQL解析と、キャッシュからのデータのXML翻訳/ダウンロードと、サーバデータのキャッシュへの自動ダウンロードを行う。
センサ/RFIDの利用方法は、ユーザ毎に異なる。また、通信パケットの内容は、センサ/RFIDの種類、使用アプリケーション、設置場所や、昼夜等の時間に応じて異なる。更に、パケットを送受信する各端末間の通信状態は、TCPの輻輳/遷移状態,使用中のL(Layer) 7プロトコル,実行中のコマンド,コマンドの実行状態に応じて異なる。
従って、本アプライアンスに求められる機能は、ユーザ/アプリケーション/場所/時間/実行状態毎に異なる。また、上記機能を搭載したアプライアンスは、小型サーバまたは通信装置内蔵ボードとして、演算処理の効率化のため、エッジネットワークに分散配置する必要がある。そのため、本アプライアンス向けのプロセッサには、小型省電力にてパケットを高速演算する性能と共に、各端末間の通信状態に基づき、パケット毎に多彩な処理を実行できる柔軟性が要求される。
この小型省電力での高速演算性能と柔軟性を両立するに当たり、従来の汎用プロセッサやApplication Specific Integrated Circuit (ASIC)は、小型省電力での高速演算性能と柔軟性のいずれか一方を欠くという問題があった。
その一方、動的再構成プロセッサ(Dynamic Reconfigurable Processor: DRP)は、多数の演算エレメント(Processing Element: PE)をセレクタにより接続した演算マトリックスを備え、低い動作周波数でも、処理の並列化により、省電力にて高い演算性能を実現する。更に、PEの演算機能や接続を最短1クロックで変更し、搭載機能を短時間で変更できる高い柔軟性を実現する。動作周波数を上昇させなくても、複数の演算器で単純な命令を一括して実行したり、複数の演算器を組み合わせて複雑な命令を実行したりするなど、演算マトリックスコアの演算並列度を高めることで、省電力にて高い演算性能を実現する。このため、DRPは、パケットを小型省電力にて高速演算する性能と、アルゴリズムを更新する柔軟性と、が同時に要求されるアプライアンス向けのプロセッサとして有望と考えられる。
このDRPを、データベース等のアプリケーションレイヤのサービスを提供する装置に使用する場合は、パケットを送受信している各ホスト間の通信状態(トランスポートレイヤプロトコルの遷移/輻輳状態、使用しているアプリケーションレイヤプロトコルの種類、実行中のコマンドの種類、コマンドの実行の進捗状態(ファイルをどこまで送受信したか、等))に応じて搭載論理を変更し、パケット毎に異なる処理を行う必要がある。搭載論理の変更は、演算マトリックス内部の演算器群が生成する再構成トリガによって開始される。従って、再構成トリガの生成に必要な情報(受信したパケットを送受信している各ホスト間の通信状態)を、演算マトリックス外部にて予め生成しておき、演算マトリックスに直接入力することで、搭載論理の迅速な変更が可能になると考えられる。
そこで、本発明者は、端末やホスト(以下、端末と総称する)間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置を考案した(非特許文献1)。本装置は、メモリを経由しない通信データの直接入出力を用いている。更に、演算マトリックス外部にて予め生成した端末間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、搭載論理の高速変更を実現し、データベース等のアプリケーションレイヤのサーバサービスを小型・省電力な装置にて高性能で実現する。
"通信状態に基づくパケット毎自己再構成を用いた動的再構成プロセッサ搭載クエリトランザクション高速化装置"、信学技報、vol.107, no.41, RECONF2007-1, PP.1-6, 2007年5月
上述した、端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置の課題を、図19を用いて説明する。
本装置は、パケットをスイッチングするスイッチ1901と、各種演算を実行する動的再構成処理部である動的再構成プロセッサ(DRP)1902と、スイッチ1901およびDRP1902の間のパケット入出力制御を行うパケットI/O 1900と、各種データを蓄積する外部メモリ1903から構成される。
パケットI/O 1900は、スイッチ1901から受信したパケットを分類する分類器1904と、分類したパケットを一時的に蓄積するバッファ1905,1913と、バッファ1905からパケットを読み出すパケット読出し部1906と、通信状態を蓄積する通信状態テーブル1910と、通信状態を読み出す通信状態読出し部1907と、通信状態を変更する通信状態更新部1908と、通信状態を書き込む通信状態書込み部1909と、変更した通信状態を一時的に蓄積するバッファ1911と、読み出したパケットを一時的に蓄積するバッファ1912と、パケットを集約する集約器1914から構成される。
スイッチ1901から読み出されたパケット1915は、分類器1904にて、処理が必要なパケット1917と、処理が不要なパケット1918とに分類される。処理が必要なパケット1917は、バッファ1905に蓄積される。
処理が開始すると、パケット読出し部1906が、バッファ1905に蓄積されたパケット1919を読み出して、通信状態読出し部1907と、通信状態更新部1908と、バッファ1912に転送する。
通信状態読出し部1907は、パケット読出し部1906から受信したパケット1920記載の送信元・宛先情報に基づき、通信状態テーブル1910から対応する通信状態1922を読み出し、通信状態更新部1908に転送する。
通信状態更新部1908は、通信状態読出し部1907から受信した通信状態1948と、パケット読出し部1906から受信したパケット1920とに基づき、通信状態1948を変更する。変更済み通信状態1921,1949は、通信状態書込み部1909と、バッファ1911に転送される。
通信状態書込み部1909は、通信状態更新部1908から受信した変更済み通信状態1921を、新たな通信状態1923として、通信状態テーブル1910に書き込む。
DRP1902は、多数の小型演算器を内蔵したPEマトリックス1927と、汎用演算器1928と、構成データキャッシュ1930と、外部メモリ向けインターフェースであるSDRAM I/F1931と、これらを結びつけるバススイッチ1929と、から構成される。
PEマトリックス1927は、プログラム再構成を実施するためのプログラム再構成向け割込み生成PE群1934と、自律再構成を実施するための自律再構成向け割込み生成PE群1935と、多様な機能を実現するためのL(Layer)2−7関数を実行するPE群1936と、TCP/IPチェックサム計算済みパケットを送信し、演算終了を通知するPE群1937とを含む。
汎用演算器1928は、OS1932と、再構成のための処理を行う再構成向け関数1933とを実行する。
自律再構成向け割込み生成PE群1935は、通信状態更新部1908から変更済み通信状態1949を受け取ると、受け取った通信状態に基づき、自律再構成向け割込み1941を生成する。
構成データキャッシュ(蓄積バッファ)1930は、生成した自律再構成向け割込み1941に基づき、内部に蓄積した構成データをPEマトリックス1927に転送する。
PEマトリックス1927は、構成データキャッシュ1930からの構成データ1942に基づき、内部の演算器の機能や配線を再構成する。
プログラム再構成向け割込み生成PE群1934は、通信状態更新部1908から変更済み通信状態1949を受け取ると、受け取った通信状態に基づき、プログラム再構成向け割込み1944を、汎用演算器1928に向けて生成する。更に、受け取った通信状態1949に基づき、外部メモリ1903内部の構成データポインタ1938を、必要な構成データが蓄積されているアドレス値1943に書き換える。
OS 1932は、プログラム再構成向け割込み生成PE群1934から、プログラム再構成向け割込み1944を受け取ると、再構成向け関数1933を実行する。
再構成向け関数1933は、構成データポインタ1938から、次に使用する構成データが蓄積されているアドレス値1946を読出し、読み出したアドレス値1946に基づいて、構成データエリア1939から構成データ1945を読み出す。更に、読み出した構成データ1945に基づき、構成データキャッシュを新たな構成データ1947に書き換える。更に、書き換えた構成データ1942を、PEマトリックスに転送する。
PEマトリックス1927は、構成データキャッシュ1930からの構成データ1942に基づき、内部の演算器の機能や配線を再構成する。
PEマトリックス1927の再構成が完了すると、バッファ1911に蓄積された通信状態1924と、バッファ1912に蓄積されたパケット1925が読み出され、L2−7関数を実行するPE群1936に転送される。
L2−7関数を実行するPE群1936は、通信状態1924と、パケット1925と、外部メモリ1903内のOS/アプリケーションデータエリア1940のデータを用いて各種演算を行う。また、変更した通信状態1926を通信状態書込み部1909に送信して、通信状態テーブル1910を更新する。
L2−7関数を実行するPE群1936演算が終了すると、PE群1937が、新たに生成されたパケットに対して、TCP/IPチェックサムを計算して、計算済みパケット1951を、集約器1914に逐一送信する。全てのパケットを送信すると、演算終了通知1950を、パケット読出し部1906に送信する。
集約器1914は、PEマトリックス1927からのパケット1951と、バッファ1913からのパケットを集約して、スイッチ1901に出力する。
パケット読出し部1906は、演算終了通知1950を受け取ると、バッファ1905から新たなパケットを読み出す。
上記の方式により、端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置が実現される。本装置は、メモリを経由しない通信データの直接入出力を用いている。更に、演算マトリックス外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、搭載論理の高速変更を実現し、データベース等のアプリケーションレイヤのサーバサービスを小型・省電力な装置にて高性能で実現する。
しかしながら、上述の端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置は、パケットの到着順に演算処理を行う。そのため、使用する構成データが前後のパケットで異なり、演算処理を行う構成データが構成データキャッシュ1930に蓄積されていない場合に、キャッシュミスとなり、構成データを外部メモリ1903から構成データキャッシュ1930にロードする時間が生じる。これにより、演算性能が低下する場合がある、という問題があった。
また、上述の端末間の通信状態に基づくパケット毎再構成を用いた動的再構成プロセッサ搭載装置は、DRP1902がPEマトリックス1927を1個含む場合についてのみ記載があり、PEマトリックス1927を複数持つ装置に必要な、PEマトリックスへのパケット割当のスケジューリング方式について記載が無かった。
本発明は、上述の端末間の通信状態に基づくパケット毎再構成を行う動的再構成プロセッサ搭載装置の問題点を解決し、演算効率を向上させることが可能な装置、及びシステムを提供することを目的とする。
本発明は、上記目的を達成するため、動的再構成処理部に複数の演算(PE)マトリックスを設置し、これら演算マトリックスにパケットを適切に割り当てるスケジューリング部を備えることにより、キャッシュミスを抑制し、構成データのロード時間を削減する。また、第一のパケットを演算処理中に、第二のパケットの演算処理に必要な構成データを先読み転送することで、構成データのキャッシュミスによるロード時間を短縮する。
本発明の端末間で送受信されるパケットに処理を行う情報処理装置は、動的再構成処理部に複数の演算マトリックスを設置し、第一の演算マトリックスが第一のパケットを処理しているときに、第一と第二の演算マトリックスのどちらで後続の第二と第三のパケットの処理を行うかを決定するスケジューリング部を備え、第二のパケットが第一のパケットと同じ構成情報に基づく処理を必要とし、第三のパケットが第一のパケットと異なる構成情報に基づく処理を必要とする場合に、スケジューリング部が、第一の演算マトリックスにおける第一のパケットの処理が終了するまで第二のパケットを待機させ、第三のパケットに第二の演算マトリックスを優先的に使用させる。
また、本発明の情報処理装置は、パケットを送受信している端末間の通信状態を格納する通信状態テーブル、受信したパケットの内部情報と、パケットの内部情報に基づき通信状態テーブルから読み出した通信状態との組合せに応じ、通信状態の変更を行う通信状態更新部を含むパケット入出力部と、構成情報を複数格納する構成情報蓄積バッファ、機能と配線が可変である演算器群をそれぞれ備え、パケットと変更済みの通信状態を受信し、変更済みの通信状態に基づき構成情報蓄積バッファから構成情報を取得し、取得した構成情報に基づいて演算器群の機能と配線を再構成する演算マトリックス部、構成情報蓄積バッファに構成情報を転送する演算部を含み、パケットに変更済みの通信状態に応じた処理を行う動的再構成処理部と、構成情報を複数格納する記憶部とを有し、この動的再構成処理部の演算部は、演算マトリックス部が、第一の通信状態に基づく再構成後、第一のパケットを処理している間に、後続する第二のパケットの処理に必要な、第二の通信状態に基づく構成情報を、記憶部から構成情報蓄積バッファに転送するよう構成することもできる。
更に、本発明の情報処理システムとして、サーバと、ネットワークを介してサーバにデータを要求する端末と、サーバと端末間で転送されるパケットを受信し、パケットを送受信するサーバと端末間の通信状態に応じた処理を実行する情報処理装置とからなる情報処理システムであって、情報処理装置が、サーバと端末間の通信状態を格納する通信状態テーブル、受信したパケットの内部情報とパケットの内部情報に基づき通信状態テーブルから読み出した通信状態との組合せに応じ、通信状態の変更を行う通信状態更新部、機能と配線が可変である演算器群を備えた第一と第二の演算マトリックスと演算マトリックスの構成情報を複数格納する構成情報蓄積バッファを備え、パケットと変更済みの通信状態を受信し、変更済みの通信状態に基づき、構成情報蓄積バッファから構成情報を取得し、取得した構成情報に基づき演算マトリックスの演算器群の機能と配線を再構成する動的再構成処理部、第一の演算マトリックスが第一のパケットを処理しているときに、後続のパケットの処理を第一と第二の演算マトリックスのどちらで行うかを決定するスケジューリング部を有し、動的再構成処理部においてパケットに変更済みの通信状態に対応する演算処理を実行し、その処理結果をネットワーク経由でサーバ、又は端末に送信する情報処理システムを提供する。
本発明は、通信状態に基づくパケット毎再構成を行う動的再構成プロセッサ搭載装置において、演算効率を向上させ、データベース等のアプリケーションレイヤのサーバサービスを、小型・省電力で高性能にて実現する装置を提供することができる。
以下、本発明の実施の形態を図面を用いて説明する。
まず、第一の実施例の情報処理装置について説明する。図2は、実施例1の情報処理装置の構成ブロック図である。
情報処理装置200は、動的再構成処理部としての動的再構成プロセッサ(DRP)102と、パケット入出力部(パケットI/O)100と、記憶部であるメモリ103と、ネットワークI/F−i(i=1〜N)203(203−1〜203−N)と、通信回線接続部204(204−1〜204−N)と、スイッチ101と、から構成される。
本装置200は、ネットワークに接続し、ネットワークI/F203経由でネットワークから受信した(210−1〜210−N)パケットを、パケットI/O 100または別のネットワークI/F 203に転送する。更に、パケットI/O 100とネットワークI/F 203からのパケットを、ネットワークI/F 203経由でネットワークに送信する(209−1〜209−N))。
図3は、装置200が搭載する動的再構成プロセッサ(DRP)102の詳細な構成ブロック図である。
動的再構成プロセッサ102は、RISCプロセッサなどの汎用演算器180と、機能と互いの配線が可変である小型演算器をそれぞれ複数搭載した演算マトリックス(PEマトリックス#1,2)178,179と、バススイッチ193と、演算マトリックス178、179に対応する構成データキャッシュ(#1,2)195,196と、PCIバス接続用のPCI I/F302と、外部メモリアクセス用のSDRAM I/F194と、DMA転送用のDMAコントローラ304と、その他インターフェースと接続するためのその他I/F305と、から構成される。なお、本実施例において、演算マトリックス(PEマトリックス#1,2)と構成データキャッシュ(#1、2)が2個の場合を例示して説明するが、3個以上であっても良い。また、演算マトリックス(PEマトリックス#1,2)を演算マトリックス部と呼ぶ場合がある点に留意されたい。
図4は、動的再構成プロセッサ102が搭載する演算マトリックス178,179が、処理内容401〜403毎に搭載論理404〜406を変更する例を示す。
演算マトリックス178、179は、機能と互いの配線が可変である小型演算器を多数搭載しており、処理内容401〜403に従って、小型演算器毎の機能と配線を再構成することにより、搭載論理404〜406を変更する。これにより、並列演算による高速演算性能と、搭載論理を短時間で変更できる高い柔軟性を実現する。
図5は、本実施例の情報処理装置200がネットワーク上で使用される例を示す。
本装置200は、フロントエンドネットワーク501とバックエンドシステム503の間のエッジネットワーク502に配置される。バックエンドシステム503には、バックエンド端末であるサーバ504およびストレージシステム505が配置され、サーバ504の処理するデータはストレージシステム505に蓄積される(522)。
本装置200は、RFID/据置センサ/映像センサ等のフロントエンド端末からデータ更新パケット508、509、510を受信すると、パケット記載のHTTP/SQLコマンド等に基づいて、装置内部に蓄積したデータの変更を行い、HTML/XML等の形式にて、更新結果通知およびアクション指示パケット511、512、513を返信する。携帯端末等からデータ要求パケット514を受信すると、パケット記載のHTTP/SQLコマンド等に基づいて、装置内部に蓄積したデータの検索を行い、HTML/XML等の形式にて、要求データ返信パケット515を返信する。また、攻撃者から異常パケット516を受信すると、異常通信と判定して、サーバ504に送信せずに(517)、廃棄する(507)。更に、装置内部に蓄積したデータに対して、サーバへのアップロード518、520と、サーバからのダウンロード519、521を行い、蓄積データを常に最新の状態に保つ。
図6は、本実施例の情報処理装置200がバックエンドシステムで使用される例を示す。
本装置200は、バックエンドシステム603内のサーバ前段に配置されるか、サーバを内蔵する(602)。サーバを内蔵する場合は、装置200のスイッチ101にサーバ212が接続される。
次に、本実施例の情報処理装置200の動的再構成プロセッサ102とパケットI/O 100とメモリ103の動作について説明する。
図1は、本実施例の動的再構成プロセッサ102とパケットI/O 100とメモリ103の一具体例の詳細な構成ブロック図である。
パケットI/O 100は、処理すべきパケットか否かの判定と、処理すべきパケットの分類を実行する分類器104と、分類済みパケットを蓄積するパケットバッファ#1〜4(109,110,111,112)と、パケットバッファ#0〜4からパケットを読み出すパケット読出し部119と、処理中のパケット数を蓄積する処理中パケット数120と、処理中の通信か否かを判定する通信重複判定部123と、処理中の通信を蓄積する処理中通信テーブル124と、処理中の通信だった場合に読み出したパケットを再度蓄積するパケットバッファ#0(113)と、処理中の通信を処理中通信テーブル124に記録する処理中通信記録部128と、通信状態の蓄積を行う通信状態テーブル132と、通信状態読出し部131と、通信状態更新部136と、通信状態書込み部138と、処理中のパケットに対応する通信状態を蓄積する処理中通信状態テーブル143と、処理中のパケットに対応する通信状態に基づき、パケットのスケジューリングを行うスケジューリング部142と、スケジューリングされたパケットと、パケットに対応する通信状態と、を一時的に蓄積するパケットバッファ151,153と、通信状態バッファ150,152と、演算マトリックス(#1,2)178,179に向けて通信状態とパケットとを適切なタイミングで転送するデータ読出し部(#1,2)158,159と、PEマトリックス(#1,2)178,179からの出力パケットを一時的に蓄積する出力パケットバッファ170,171と、パケットを集約して出力する集約器175とから構成される。
動的再構成プロセッサ102は、上述の通り、汎用演算器180と、機能と互いの配線が可変である小型演算器を複数搭載した演算マトリックス(#1,2)178,179と、構成データキャッシュ(#1,2)195,196と、バススイッチ193と、外部メモリアクセス用のSDRAM I/F194と、から構成される。
外部メモリ103は、構成データキャッシュ(#1,2)195,196に蓄積しきれない構成情報を蓄積した構成データエリア103−2と、構成データエリア103−2内の構成データへのアドレスポインタを記載した構成データポインタa,b,c,d103−1と、OS/アプリケーションデータエリア103−3を保持する。
汎用演算器180は、OS 182を実行しており、演算マトリックス(#1,2)178,179が生成する再構成トリガを受け取ると、再構成向け関数181を呼び出す。呼び出された再構成向け関数181は、構成データエリア103−2から構成データを読み出して、構成データキャッシュ(#1,2)195,196へのロード、および演算マトリックスへの転送を行う。
演算マトリックス(#1,2)178,179は、通信状態に基づき自律再構成向け割込み185,188を生成する自律再構成向け割込み生成PE群178−2,179−2と、プログラム再構成向け割込み183,186を生成するプログラム再構成向け割込み生成PE群178−1,179−1と、通信状態とパケットに基づきメモリ103に蓄積したデータの変更や新たなパケットの生成および外部送信を行うL2−7関数実行PE群178−3,179−3と、L2−7関数実行PE群178−3,179−3が新たに生成したパケットのTCP/IPチェックサムを計算し、パケットを送信するPE群178−4,179−4と、から構成される。
以下、パケットI/O、動的再構成プロセッサ、メモリ103の各部分について詳細に説明する。
パケットI/O 100の分類器104は、スイッチ101からパケットを受信すると(177)、処理すべきパケットか否かを判定する。処理が不要なパケットである場合は、集約器175に出力する(174)。処理すべきパケットである場合は、パケットのヘッダ記載の内容に応じて、パケットバッファ#1〜4(109,110,111,112)のいずれかに出力する(105、106、107、108)。
図7は、分類器104がスイッチ101から受信するパケット177のフォーマットの一例を示す。
パケット177は、InLine701と、OutLine702と、SMAC703と、DMAC704と、Proto705と、SIP706と、DIP707と、Sport708と、Dport709と、TCP Flag710と、PSEQ711と、PACK712と、OtherHeader713と、各種コマンド714と、Payload715と、を含む。更に、本実施例では、SIP706と、DIP707と、Sport708と、Dport709とをまとめてP.H.(Packet Header)716と表現する。このP.H.716はパケット177の特徴を示す。
ここで、InLine701は、パケットが入力した回線の識別番号である入力回線番号を格納する。OutLine702は、パケットを出力する回線の識別番号である出力回線番号を格納する。SMAC703は、データリンク層の送信元アドレスである送信元MACアドレスを格納する。DMAC704は、宛先アドレスである宛先MACアドレスを格納する。Proto705は、ネットワーク層のプロトコルを格納する。SIP706は、送信元アドレス、すなわち、送信側の端末のアドレスである送信元IPアドレスを格納する。DIP707は、宛先アドレス、すなわち、受信側の端末のアドレスである宛先IPアドレスを格納する。SPORT708は、TCPの送信元ポートを格納する。DPORT709は、TCPの宛先ポートを格納する。TCP Flag710はTCPフラグを格納する。PSEQ711は、送信シーケンス番号(SEQ番号)を格納する。PACK712は、受信シーケンス番号(ACK番号)を格納する。OtherHeader713は、その他のIP/TCPヘッダデータを格納する。各種コマンド714は、アプリケーション層のコマンドを格納する。Payload715は、パケットヘッダ(Packet Header: P.H.)と各種コマンド以外のデータを格納する。
分類器104は、例えば、P.H.(Packet Header)716の内容、すなわちパケットの特徴に応じて、パケットを分類し、分類結果に応じて、パケットバッファ#1〜4(109〜112)のいずれかに出力する(105〜108)。
パケット読出し部119は、処理中パケット数120の値が、予め定めた値よりも小さい場合にパケットバッファ#0〜4(109〜113)からパケットを読み出す。パケットバッファ#0(113)にパケットが蓄積されている場合、パケットバッファ#0(113)から優先的にパケットを読み出す(118)。パケットバッファ#0(113)にパケットが蓄積されていない場合、過去に読み出した時刻が最も古いパケットバッファ#1〜4(109〜112)から優先的にパケットを読み出す(114〜117)。更に、処理中パケット数120の値を1増加させる(121)。
通信重複判定部123は、パケット読出し部119からパケットを受信する(122)と、パケット記載のP.H.716に基づいて、処理中通信テーブル124から対応する処理中の通信情報を検索する(125)。
図8は、処理中通信テーブル124の一例の説明図である。
処理中通信テーブル124は、処理中の通信の数に相当するm個の通信情報のエントリ801(801−1〜801−m)を含む。
エントリ801は、上述のP.H.(Packet Header)と同じく、SIP802と、DIP803と、SPORT804と、DPORT805と、を含む。
SIP802は、処理中の通信の送信元アドレス、すなわち、送信側のホストのアドレスである送信元IPアドレスを記録する。DIP803は、処理中の通信の宛先アドレス、すなわち、受信側のホストのアドレスである宛先IPアドレスを記録する。SPORT804は、処理中の通信のTCP送信元ポートを記録する。DPORT805は、処理中の通信のTCP宛先ポートを記録する。
通信重複判定部123は、パケット記載のP.H.716と一致する処理中の通信情報のエントリ801が存在するか否かを判定し、存在する場合は、読み出したパケット122を、パケットバッファ#0(113)に転送する(126)。存在しない場合は、読み出したパケット122を、処理中通信記録部128に転送する(127)。
処理中通信記録部128は、通信重複判定部123から受信したパケット127記載のP.H.716を、処理中の通信情報として、処理中通信テーブル124に記録する(129)。更に、通信重複判定部123から受信したパケット127を、通信状態読出し部131と、通信状態更新部136と、スケジューリング部142に転送する(130,135,141)。
通信状態読出し部131は、パケット記載のP.H.716に対応する通信状態を、通信状態テーブル132から読み出す(133)。パケット記載のP.H.716に対応する通信状態が、通信状態テーブル132に存在しない場合は、新たに、パケット記載のP.H.716に対応する通信状態を生成する。
図9は、通信状態テーブル132の一例の説明図である。
通信状態テーブル132は、n個のエントリ901(901−1〜901−n)を含む。
エントリ901は、F−IP902と、F−PORT903と、F−ID904と、F−SEQ905と、F−ACK906と、F−WIN907と、F−FLIGHT908と、F−TIME909と、F−POINTER910と、F−STATE911と、B−IP912と、B−PORT913と、B−ID914と、B−SEQ915と、B−ACK916と、B−WIN917と、B−FLIGHT918と、B−TIME919と、B−POINTER920と、B−STATE921と、を含む。
F−IP902は、フロントエンド側の端末のIPアドレスを記録する。B−IP912は、バックエンド側の端末のIPアドレスを記録する。F−PORT903は、フロントエンド側の端末のTCPポート番号を記録する。B−PORT913は、バックエンド側の端末のTCPポート番号を記録する。F−ID904は、フロントエンド側の端末に送信済みのパケットのID番号を記録する。B−ID914は、バックエンド側の端末に送信済みのパケットのID番号を記録する。F−SEQ905は、フロントエンド側の端末との送信元シーケンス番号を記録する。B−SEQ915は、バックエンド側の端末との送信元シーケンス番号を記録する。F−ACK906は、フロントエンド側の端末との宛先シーケンス番号を記録する。B−ACK916は、バックエンド側の端末との宛先シーケンス番号を記録する。F−WIN907は、フロントエンド側の端末とのTCPコネクションの輻輳ウィンドウサイズを記録する。B−WIN917は、バックエンド側の端末とのTCPコネクションの輻輳ウィンドウサイズを記録する。F−FLIGHT908は、フロントエンド側の端末にすでに送信済みのデータサイズを表す送信済みウィンドウサイズを記録する。B−FLIGHT918は、バックエンド側の端末にすでに送信済みのデータサイズを表す送信済みウィンドウサイズを記録する。F−TIME909は、フロントエンド側の端末からパケットを受信した最新の時刻を記録する。B−TIME919は、バックエンド側の端末からパケットを受信した最新の時刻を記録する。F−POINTER910は、フロントエンド側の端末から受信したパケットに対して各種演算を実行するL2−7関数実行PE群178−3,179−3が使用するためのアドレスポインタを記録する。B−POINTER910は、バックエンド側の端末から受信したパケットに対して各種演算を実行するL2−7関数実行PE群178−3,179−3が使用するためのアドレスポインタを記録する。F−STATE911は、装置200がフロントエンド端末との間で確立した通信の通信状態を記録する。B−STATE921は、装置200がバックエンド端末との間で確立した通信の通信状態を記録する。更に、本実施例では、F−IP902と、B−IP912と、F−PORT903と、B−PORT913とをまとめて、T.H.(Table Header)922と表現する。
通信状態を記録するF−STATE911およびB−STATE921は、図11に示した組合せのいずれかを示した一意の値を記録する。F−STATE911およびB−STATE921は、TCPコネクションの開始または停止(OPEN/CLOSE)1120と、TCPコネクションの確立または未確立(FULL/HALF)1121と、TCPコネクションの輻輳状態(Slow Start/Congestion Avoidance(Cong. Avoid.)/Fast Recovery)1122と、アプリケーションレイヤプロトコルの有無と種類(HTTP/TELNET/FTP)1123と、アプリケーションレイヤプロトコルが実行中のコマンドおよび引数の有無と種類(GET/POST、SELECT/INSERT/DELETE)1124と、前記コマンドにより実行中のファイル送受信の状態(開始(Start)または未完了(Active)または完了(Passive))1125と、を示す値(図11に示した組合せのいずれかを示した一意の値)を記録する。
パケットI/O 100の通信状態更新部136は、通信状態読出し部131から受信した通信状態134と、処理中通信記録部128から受信したパケット135と、に基づいて通信状態の変更を行う。更に、変更済みの通信状態を、通信状態書込み部138と、スケジューリング部140に転送する(137,140)。
通信状態書込み部138は、通信状態更新部136から受信した変更済み通信状態137を、通信状態テーブル132に書き込む(139)。
スケジューリング部142は、通信状態更新部136から受信した変更済み通信状態140の値を、処理中通信状態テーブル143記載の値と比較することで、処理中通信記録部128から受信したパケット141のスケジューリングを行う。
図10は、処理中通信状態テーブル143の一例の説明図である。
処理中通信状態テーブル143は、INI_POINT(#1,2)(1003,1008)と、END_POINT(#1,2)(1004,1009)と、CNT(#1,2)(1005,1010)と、STATE#1(1002)(1002−1〜1002−k)と、STATE#2(1007)(1007−1〜1007−k)と、を含む。
STATE#1(1002)は、PEマトリックス#1(178)や再構成向け関数181において処理中の通信状態を記録する。INI_POINT#1(1003)は、PEマトリックス#1(178)において演算処理を実行中の通信状態を記録するSTATE#1(1002)へのアドレスポインタを記録する。END_POINT#1(1004)は、通信状態バッファ152の最後尾に蓄積された通信状態を記録するSTATE#1(1002)へのアドレスポインタを記録する。CNT(#1)1005は、PEマトリックス#1(178)や再構成向け関数181において処理中の通信状態の数を記録する。
STATE#2(1007)は、PEマトリックス#2(179)や再構成向け関数181において処理中の通信状態を記録する。INI_POINT#2(1008)は、PEマトリックス#2(179)において演算処理を実行中の通信状態を記録するSTATE#2(1007)へのアドレスポインタを記録する。END_POINT#2(1009)は、通信状態バッファ150の最後尾に蓄積された通信状態を記録するSTATE#2(1007)へのアドレスポインタを記録する。CNT(#2)1010は、PEマトリックス#2(179)や再構成向け関数181において処理中の通信状態の数を記録する。
図14Bは、スケジューリング部142が、通信状態更新部136と処理中通信記録部128から、変更済み通信状態140とパケット141を受け取り、処置中通信状態テーブル143記載の値に基づいて、バッファ150〜153に転送する際のフローチャートである。
スケジューリング部142は、処置中通信状態テーブル143を読みこみ(145)、通信状態更新部136から受信した変更済み通信状態140の値を、END_POINT#1(1004)に記載の通信状態STATE#1(1002)と比較し(ステップ1421)、更にEND_POINT#2(1009)に記載の通信状態STATE#2(1007)と比較する(ステップ1422)。
変更済み通信状態140の値が、END_POINT#1(1004)に記載の通信状態STATE#1(1002)と一致する場合(ステップ1421のYES判定)、変更済み通信状態140を通信状態バッファ#1(152)に転送する(148)。更に、処理中通信記録部128から受信したパケット141をパケットバッファ#1(153)に転送する(149)(ステップ1424)。更に、END_POINT#1(1004)をインクリメントする。但し、インクリメント前のEND_POINT#1(1004)に記載の通信状態がSTATE#1(1002−k)のときは、END_POINT#1(1004)をSTATE#1(1002−1)のアドレス値に変更する(ステップ1425)。更に、変更済みEND_POINT#1(1004)に記載の通信状態STATE#1(1002)を、通信状態更新部136から受信した変更済み通信状態140記載の値に変更する(ステップ1426)。
変更済み通信状態140の値が、END_POINT#2(1009)に記載の通信状態STATE#2(1007)と一致する場合(ステップ1422のYES判定)、変更済み通信状態140を通信状態バッファ#2(150)に転送する(146)。更に、処理中通信記録部128から受信したパケット141をパケットバッファ#2(151)に転送する(147)(ステップ1427)。更に、END_POINT#2(1009)をインクリメントする。但し、インクリメント前のEND_POINT#2(1009)に記載の通信状態がSTATE#2(1007−k)のときは、END_POINT#2(1009)をSTATE#2(1007−1)のアドレス値に変更する(ステップ1428)。更に、変更済みEND_POINT#2(1009)に記載の通信状態STATE#2(1007)を、通信状態更新部136から受信した変更済み通信状態140記載の値に変更する(ステップ1429)。
変更済み通信状態140の値が、END_POINT#1(1004)が示す通信状態STATE#1(1002)およびEND_POINT#2(1009)が示す通信状態STATE#2(1007)と異なる場合、CNT(#1)1005の値と、CNT(#2)1010の値を比較する(ステップ1423)。
CNT(#1)1005の値が、CNT(#2)1010の値よりも小さい場合(ステップ1423のYES判定)、変更済み通信状態140を通信状態バッファ#1(152)に転送する(148)。更に、処理中通信記録部128から受信したパケット141をパケットバッファ#1(153)に転送する(149)(ステップ1424)。更に、END_POINT#1(1004)をインクリメントする。但し、インクリメント前のEND_POINT#1(1004)に記載の通信状態がSTATE#1(1002−k)のときは、END_POINT#1(1004)をSTATE#1(1002−1)のアドレス値に変更する(ステップ1425)。更に、変更済みEND_POINT#1(1004)に記載の通信状態STATE#1(1002)を、通信状態更新部136から受信した変更済み通信状態140記載の値に変更する(ステップ1426)。
CNT(#2)1010の値が、CNT(#1)1005の値以下の場合(ステップ1423のNO判定)、変更済み通信状態140を通信状態バッファ#2(150)に転送する(146)。更に、処理中通信記録部128から受信したパケット141をパケットバッファ#2(151)に転送する(147)(ステップ1427)。更に、END_POINT#2(1009)をインクリメントする。但し、インクリメント前のEND_POINT#2(1009)に記載の通信状態がSTATE#2(1007−k)のときは、END_POINT#2(1009)をSTATE#2(1007−1)のアドレス値に変更する(ステップ1428)。更に、変更済みEND_POINT#2(1009)に記載の通信状態STATE#2(1007)を、通信状態更新部136から受信した変更済み通信状態140記載の値に変更する(ステップ1429)。
以上述べたスケジューリング部142の処理により、第一の演算マトリックスが第一のパケットを処理しているときに、第二のパケットが第一のパケットと同じ構成情報に基づく処理を必要とし、第三のパケットが第一のパケットと異なる構成情報に基づく処理を必要とする場合に、第一の演算マトリックスにおける第一のパケットの処理が終了するまで第二のパケットを待機させて、第三のパケットに第二の演算マトリックスを優先的に使用させることが可能となる。
データ読出し部(#1,2)159,158は、演算マトリックス(#1,2)178,179から処理終了通知(165,162)を受け取ると、パケットバッファ(#1,2)153,151と通信状態バッファ(#1,2)152,150からのデータの読出しを開始する。
図14Aは、データ読出し部(#1,2)159,158が、パケットバッファ(#1,2)153,151と通信状態バッファ(#1,2)152,150からデータを読み出す際のフローチャートである。
データ読出し部(#1,2)159,158は、処理終了通知165,162を受け取ると、処理が終了していない演算処理中または演算待ち中のパケットの数が1つか否かを判定する(ステップ1401)。
ステップ1401において、処理が終了していない演算処理中または演算待ち中のパケットの数が1つの場合、通信状態バッファ(#1,2)(152,150)に蓄積された通信状態の数が2つ以上か否かを判定する(ステップ1402)。
ステップ1402において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が2つ未満の場合、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が1つか否かを判定する(ステップ1403)。
ステップ1401において、処理が終了していない演算処理中または演算待ち中のパケットの数が1つではない場合、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が0個か否かを判定する(ステップ1404)。
ステップ1402において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が2つ以上の場合、通信状態バッファ(#1,2)152,150から2つの通信状態を読出し(156,154)、PEマトリックス(#1,2)178,179に向けて送信する(160,163)(ステップ1406)。読出し後に処理が終了していない処理中の通信状態の数は2に変化する。
データ読出し部(#1,2)159,158におけるステップ1406の後、DRP102においてステップ1410が行われる。
ステップ1410では、PEマトリックス(#1,2)178,179内部のPE群178−1,178−2,179−1,179−2が、受信した1つ目の通信状態に基づき、自律再構成向け割込み185,188またはプログラム再構成向け割込み183,186を生成し、1つ目の通信状態に応じて定まる構成データのアドレスポインタa,c103−1を書き換える(184,187)。更に、受信した2つ目の通信状態に基づき、プログラム再構成向け割込み183,186を生成し、2つ目の通信状態に応じて定まる構成データのアドレスポインタb,d103−1を書き換える(184,187)。
自律再構成向け割込み185,188が生成された場合、予め指定された構成データが、構成データキャッシュ195,196からPEマトリックス(#1,2)178,179にロードされ(197,198)、再構成が行われる。再構成後に、1つ目の通信状態に対応する1つ目のパケットが、パケットバッファ(#1,2)153,151から読み出され(157,155)、PEマトリックス(#1,2)178,179内部のPE群178−3,179−3へと転送され(161,164)、演算処理が行われる。
プログラム再構成向け割込み183,186が生成された場合、OS182が割込み183,186を受け取り、再構成向け関数181を呼び出す。
再構成向け関数181は、構成データポインタa〜d103−1を読み込み(190)、構成データポインタa,c103−1(1つ目の通信状態が指定)によって定まる構成データを構成データエリア103−2から読出し(189)、構成データキャッシュ195,196へとロードする(191,192)。更に、構成データキャッシュ195,196にロードされた構成データは、構成データキャッシュ195,196からPEマトリックス(#1,2)178,179にロードされ(197,198)、再構成が行われる。再構成後に、1つ目の通信状態に対応する1つ目のパケットが、パケットバッファ(#1,2)153,151から読み出され(157,155)、PEマトリックス(#1,2)178,179内部のPE群178−3,179−3へと転送され(161,164)、演算処理が行われる。
更に、再構成向け関数181は、PE群178−3,179−3が1つ目のパケットの演算処理を実行している間に、構成データポインタb,d103−1(2つ目の通信状態が指定)が定める構成データを構成データエリア103−2から先読みし(189)、構成データキャッシュ195,196へとロードする(191,192)。
以上により、ステップ1410の処理が終了する。
ステップ1403において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が1つの場合、通信状態バッファ(#1,2)152,150から1つの通信状態を読出し(156,154)、PEマトリックス(#1,2)178,179に向けて送信する(160,163)(ステップ1407)。読出し後に処理が終了していない処理中の通信状態の数は1に変化する。
ステップ1403において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が1つではなく0個である場合、或いは、ステップ1404において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が0個である場合、通信状態バッファ(#1,2)152,150に通信状態が蓄積されてから、通信状態を読出し(156,154)、PEマトリックス(#1,2)178,179に向けて送信する(160,163)(ステップ1409)。読出し後に処理が終了していない処理中の通信状態の数は1に変化する。
データ読出し部(#1,2)159,158におけるステップ1407またはステップ1409の後、DRP102においてステップ1411が行われる。
ステップ1411では、PEマトリックス(#1,2)178,179内部のPE群178−1,178−2,179−1,179−2が、受信した通信状態に基づき、自律再構成向け割込み185,188またはプログラム再構成向け割込み183,186を生成し、通信状態に応じて定まる構成データのアドレスポインタa,c103−1を書き換える(184,187)。
自律再構成向け割込み185,188が生成された場合、予め指定された構成データが、構成データキャッシュ195,196からPEマトリックス(#1,2)178,179にロードされ(197,198)、再構成が行われる。再構成後に、通信状態に対応するパケットが、パケットバッファ(#1,2)153,151から読み出され(157,155)、PEマトリックス(#1,2)178,179内部のPE群178−3,179−3へと転送され(161,164)、演算処理が行われる。
プログラム再構成向け割込み183,186が生成された場合、OS182が割込み183,186を受け取り、再構成向け関数181を呼び出す。
再構成向け関数181は、構成データポインタa〜d103−1を読み込み(190)、構成データポインタa,c103−1によって定まる構成データを構成データエリア103−2から読出し(189)、構成データキャッシュ195,196へとロードする(191,192)。更に、構成データキャッシュ195,196にロードされた構成データは、構成データキャッシュ195,196からPEマトリックス(#1,2)178,179にロードされ(197,198)、再構成が行われる。再構成後に、通信状態に対応するパケットが、パケットバッファ(#1,2)153,151から読み出され(157,155)、PEマトリックス(#1,2)178,179内部のPE群178−3,179−3へと転送され(161,164)、演算処理が行われる。
以上により、ステップ1411の処理が終了する。
ステップ1404において、通信状態バッファ(#1,2)152,150に蓄積された通信状態の数が0個ではなく1個以上である場合、通信状態バッファ(#1,2)152,150から1つの通信状態を読出し(156,154)、PEマトリックス(#1,2)178,179に向けて送信する(160,163)(ステップ1408)。読出し後に処理が終了していない処理中の通信状態の数は2に変化する。
データ読出し部(#1,2)159,158におけるステップ1408の後、DRP102においてステップ1412が行われる。
ステップ1412では、PEマトリックス(#1,2)178,179内部のPE群178−1,178−2,179−1,179−)が、受信した通信状態に基づき、プログラム再構成向け割込み183,186を生成し、通信状態に応じて定まる構成データのアドレスポインタb,d103−1を書き換える(184,187)。
プログラム再構成向け割込み183,186が生成された場合、OS182が割込み183,186を受け取り、再構成向け関数181を呼び出す。
再構成向け関数181は、ステップ1410において先読み189およびロード191,192してあった構成データをPEマトリックス(#1,2)178,179にロードし(197,198)、再構成を行う。再構成後に、以前受信した通信状態に対応するパケットが、パケットバッファ(#1,2)153,151から読み出され(157,155)、PEマトリックス(#1,2)178,179内部のPE群178−3,179−3へと転送され(161,164)、演算処理が行われる。
更に、再構成向け関数181は、以前受信した通信状態に対応するパケットの演算処理をPE群178−3,179−3が実行している間に、構成データポインタb,d103−1(新たに受信した通信状態が指定)が定める構成データを構成データエリア103−2から先読みし(189)、構成データキャッシュ195,196へとロードする(191,192)。
以上により、ステップ1412の処理が終了する。
以上に述べたステップ1401〜1412の処理により、演算マトリックスが、第一のパケットを演算処理している間に、第二のパケットの演算に必要な構成情報を、第二のパケットに対応する通信状態に基づいて、外部メモリから構成データキャッシュに先読み転送することが可能となる。
ステップ1401〜1412の処理の後、PE群178−3,179−3において演算処理が行われ、新たな通信状態166,167が通信状態書込み部138に出力される。
通信状態書込み部138は、新たな通信状態166,167を通信状態テーブル132に書き込む(139)。
PE群178−3,179−3における演算処理が終了すると、別のPE群178−4,179−4が、新たに生成されたパケットに対して、TCP/IPチェックサムを計算して、計算済みパケット168,169を、パケットバッファ170,171に逐一送信する。全てのパケットを送信すると、演算終了通知165,162を、データ読出し部(#1,2)159,158と、スケジューリング部142と、処理中通信記録部128と、パケット読出し部119に送信する。
スケジューリング部142は、演算終了通知165,162を受け取ると、INI_POINT(#1,2)1003,1008が指定する処理中通信状態STATE(#1,2)1002,1007を削除した上で、INI_POINT(#1,2)1003,1008の値を1つインクリメントする。但し、インクリメント前のINI_POINT(#1,2)1003,1008に記載の通信状態がSTATE(#1,2)1002−k,1007−kのときは、INI_POINT(#1,2)1003,1008をSTATE(#1,2)1002−1,1007−1のアドレス値に変更する。
処理中通信記録部128は、演算終了通知165,162を受け取ると、先頭エントリ801−1を削除して、残りのエントリ801を先頭エントリ801−1から順番に並べ替える。
パケット読出し部119は、演算終了通知165,162を受け取ると、処理中パケット数120の値を1ディクリメントする。
最後に、集約器175が、分類器104からのパケット174と、パケットバッファ170,171から読み出したパケット172,173と、を集約して、スイッチ101に向けて送信する(176)。
以上述べた装置200により、通信状態に基づくパケット毎再構成を行う動的再構成プロセッサ搭載装置において、PEマトリックスを複数備える場合に、スケジューリング部が、PEマトリックスにパケットを適切に割り当てることで、キャッシュミスを抑制し、構成データのロード時間を削減することが可能となり、更に、この動的再構成プロセッサ搭載装置が、第一のパケットを演算処理中に、第二のパケットの演算処理に必要な構成データを先読み転送することで、キャッシュミスによるロード時間を短縮することが可能となる。
図12は、通信状態テーブル132が蓄積する通信状態(F−STATE911,B−STATE921)の遷移の一例図を示す。
F−STATE911は、パケットデータと、通信状態テーブル内のF−STATE911の値に応じて変化する。最初の段階では、F−STATE911はTCPコネクション状態における”CLOSED”(通信停止)を意味する'0x0000'である(1201)。SYNパケットを受信すると(図12におけるrcv SYN)、F−STATE911は、”SYN RCVD”(接続開始)を意味する'0x0001'に変化する(1202)。更に、ACKパケットを受信すると(図12におけるrcv ACK)、F−STATE911は、”ESTAB”(通信確立)を意味する'0x0003'に変化する(1203)。
F−STATE911が'0x0003'になった後は、到着パケットのペイロードに応じて変化する。
パケットのペイロードがHTTPプロトコル内にGETコマンドを含む場合、F−STATE911は、クライアントによって要求されたファイルの返信を要求する”HTTP GET”を意味する'0x0007'に変化する(1204)。
パケットのペイロードがHTTPプロトコル内に引数”/insert”を持つPOSTコマンドを含む場合、F−STATE911は,クライアントが送ってきたアイテムデータのデータベースへの登録を要求する”HTTP POST INSERT”を意味する'0x000F'に変化する(1205)。
パケットのペイロードがHTTPプロトコル内に引数”/select”を持つPOSTコマンドを含む場合、F−STATE911は、データベースからのアイテムデータ選択を要求する”HTTP POST SELECT”を意味する'0x001F'に変化する(1206)。
パケットのペイロードがHTTPプロトコル内に引数”/check”を持つPOSTコマンドを含む場合、F−STATE911は、データベースのアイテムデータ登録状況の確認を要求する”HTTP POST CHECK”を意味する'0x003F'に変化する(1207)。
パケットのペイロードがHTTPプロトコル内に引数”/update”を持つPOSTコマンドを含む場合、F−STATE911は、データベースのアイテムデータ更新を要求する”HTTP POST UPDATE”を意味する'0x007F'に変化する(1208)。
パケットのペイロードがHTTPプロトコル内に引数”/delete”を持つPOSTコマンドを含む場合、F−STATE911は、データベースのアイテムデータ削除を要求する”HTTP POST DELETE”を意味する'0x00FF'に変化する(1209)。
パケットのペイロードがHTTPプロトコル内に引数”/UPLOAD”を持つGETコマンドを含む場合、F−STATE911は、データベースのアイテムデータのサーバへのアップロードを要求する”HTTP GET UPLOAD”を意味する'0x00FF'に変化する(1210)。
また、F−STATE911が'0x0007','0x000F','0x001F','0x003F','0x007F','0x00FF','0x0107'になった後で、HTTPプロトコルのコマンドによって要求された処理が全て終了すると、F−STATE911は'0x0003'に戻る(1203)。更に、重複ACKを持つパケットが来ると、'0x0400'がF−STATE911に加算され、TCP輻輳制御のファーストリトランスミットとファーストリカバリを要求する”DUP”の付いた状態となる(1211)。FIN−ACK/RST−ACKパケットが到着すると、F−STATE911はそれまでの値に関わらず強制的に'0x0000'に戻る(1201)。
B-STATE921は、サーバデータをキャッシュにダウンロードしたり、キャッシュに蓄積したデータベースの内容をサーバにアップロードしたりするときに変化する。
最初の段階では、B−STATE911はTCPコネクション状態における”CLOSED”(通信停止)を意味する'0x0000'である(1212)。
F−STATE911が'0x0007'の時、クライアントから要求されたファイルがアプライアンスのメモリに蓄積されていない場合、B-STATE921は”SYN SENT”(接続開始)を意味する'0x0001'に変化する(1213)。また、F−STATE911が'0x0107'の時も、B−STATE911は”SYN SENT” (接続開始)を意味する'0x0001'に変化する(1213)。
更に、SYNパケットが装置200からバックエンドのサーバ504に送信された後で、SYN−ACKパケットがサーバ504から到着すると、F−STATE911が'0x0007'の場合、B-STATE921は、サーバ504から装置200へのファイルダウンロードを要求する”DOWNLOAD”を意味する'0x000B'に変化する(1214)。F−STATE911が'0x0107'の場合、B-STATE921は、アプライアンス内のメモリにキャッシュされたデータベースをサーバへアップロードすることを要求する”UPLOAD”を意味する'0x010B'に変化する(1215)。
なお、FIN−ACK/RST−ACKパケットが到着すると、B-STATE921はそれまでの値に関わらず強制的に'0'に戻る。
図13は、通信状態に応じて使用する構成データがパケット毎に変化する様子を示した、構成データサイクルの一例図を示す。
「Interrupt and Output Config.」(1301)は、パケットI/OからDRPへ通信状態を入力する時に、常に実行される。本構成は、全てのパケットに対して行われ、割込みを生成する処理と、TCP/IPチェックサムを計算してパケットを送信する処理を実行する。更に、本構成は使用頻度が最も高いため、構成データキャッシュに常にキャッシュすることが望ましい。
「TCP Control Config.」(1302)は、TCPコネクション制御に特化しており、通信状態のF−STATE911が‘0x0000’,‘0x0001’,‘0x0003’,‘0x04**’である場合に使用される。本構成は、異常なTCPセグメントシーケンス/確認番号を持つパケットを廃棄する他、通信状態が“SYN RCVD”の時にSYN−ACKパケットの生成と、通信状態が“CLOSED”の時にRST/FIN−ACKおよびACKパケットの生成を行う。更に、本構成は使用頻度が最も高いため、構成データキャッシュに常にキャッシュすることが望ましい。
「HTTP GET Control Config.」(1303)は、通信状態のF−STATE911が‘0x0007’である場合に使用される。はじめに、クライアント要求ファイルがキャッシュに蓄積されているか否かを判定する。更に、要求ファイルがキャッシュされている場合、クライアント向けに、キャッシュに蓄積された要求ファイルのデータを含むパケットを生成する。要求ファイルがキャッシュされていない場合は、バックエンドのサーバとコネクションを張るためのSYNパケットを生成する他、B−STATE921を‘0x000B’に設定する。
「DOWNLOAD Control Config.」(1304)は、通信状態のF−STATE911が0x000B’である場合に使用される。本構成は、サーバからアプライアンスにファイルをダウンロードする。
「HTTP POST /select Control Config.」(1305)は、通信状態のF−STATE911が‘0x001F’である場合に使用される。本構成は、パケットのselectコマンドが指定する内容に応じてアプライアンスのメモリ内のDBからアイテムデータを選択して、HTML/XMLテキスト形式に翻訳したアイテムデータから成るパケットを生成する。
「HTTP POST /check Control Config.」(1306)は、通信状態のF−STATE911が‘0x003F’である場合に使用される。本構成は、クライアントが指定したアイテムデータがDBに登録されているか否かを判定して判定結果を通知するパケットを生成する。
「HTTP POST /delete Control Config.」(1307)は、通信状態のF−STATE911が‘0x00FF’である場合に使用される。本構成は、クライアントが指定したアイテムデータをDBから削除して、削除の結果を通知するパケットを生成する。
「HTTP GET /UPLOAD Control Config.」(1308)は、通信状態のF−STATE911が‘0x0107’である場合に使用される。本構成は、B−STATE921を‘0x000B’に設定して、バックエンドのサーバ向けにSYNパケットと、クライアント向けにアップロードを開始したことを通知するパケットを生成する。
「UPLOAD Control Config.」(1309)は、通信状態のF−STATE911が‘0x010B’である場合に使用される。本構成は、アプライアンスのメモリに蓄積されたDBの内容をサーバにアップロードする。
「HTTP POST /insert Control Config.1」(1310)は、通信状態のF−STATE911が‘0x000F’である場合に使用される。本構成は、クライアントから挿入されるデータがDBにすでに登録されているかどうかを判定する。判定結果に基づき、クライアントから挿入されるデータがDBに登録されていない場合、DRPは「HTTP POST /insert Control Config.2」(1311)を使用する。本構成は、アプライアンスのメモリ内のDBにクライアントから送付されたアイテムデータを挿入して、データが正しく挿入されたことをクライアントに通知するパケットを生成する。一方で、クライアントから挿入されるデータがDBに登録されている場合、DRPは「HTTP POST /insert Control Config.3」(1312)を使用する。本構成は,エラーメッセージを出力するパケットを生成する。
「HTTP POST /update Control Config.1」(1313)は、通信状態のF−STATE911が‘0x007F’である場合に使用される。本構成は、クライアントがアップデート対象に指定したアイテムデータをDBから削除する。その後で、再構成により、「HTTP POST /update Control Config.2」(1314)に切替えて使用する。本構成は、クライアントがアップデートするアイテムデータをDBに登録する。
通信状態毎に異なる処理が終了すると,PEマトリックスは自律再構成により最初の構成「Interrupt and Output Config.」に再構成される。
図15〜18は、装置200が実現するサーバサービスのシーケンスの一例図を示す。
図15は、「TCP Control Config.」(1302)によるTCPコネクション制御を示す。装置200は、フロントエンド501の端末からバックエンド端末としてのサーバ504向けの接続要求パケットを受信すると(1501)、ランダムな値YをSEQ番号に付与した(1502)SYN−ACKパケットを返信する(1503)。接続要求パケットの送信元が、送信元を偽称した攻撃者1500である場合、攻撃者1500は、SYN−ACKパケットを受信できないため、Yの値が分からない(1504)。そのため、攻撃者1500からのACKパケット(1505)は、正しい値Y+1を持たず、異常と判定され廃棄される(1506)。更に、同一送信元からの連続送信SYNパケット(1507)も廃棄される(1508)。装置200は、ACK番号がY+1であるACKパケット(1509)を受信した時点で、正常な通信と判定して(1510)、TCP通信を確立する。
図16は、「DOWNLOAD Control Config.」(1304)によるサーバ504から装置200へのファイルのダウンロードと、「HTTP GET Control Config.」(1303)による装置200からフロントエンド端末501へのファイルのダウンロードを示す。
はじめに、アクセス端末501と装置200の間において、TCPの3−Way−Handshakeにより、SYNパケット1601、SYN−ACKパケット1602、ACKパケット1603がやりとりされ、TCP通信が確立する。その後、アクセス端末501が、HTTPのGETコマンドにて、ファイルAを要求するパケット1604を送信する。
装置200は、サーバファイルをキャッシュするファイルテーブル1607と、ファイル毎にアドレスポインタを記録するファイルポインタテーブル1606を備える。
ファイルAを要求するパケット1604が到着すると、ファイルポインタテーブル1606を検索し、GETコマンドが要求するファイルAのキャッシュ有無を判定する(1605)。
ファイルAがファイルテーブル1607にキャッシュされていない場合は、SYNパケット1608とSYN−ACKパケット1609とACKパケット1610を用いたTCPの3−Way−Handshakeによりサーバ504に接続する。更に、ファイルAを要求するパケット1611を送信して、サーバ504が持つファイルA(1618)をTCP制御に従ってダウンロードし(1611〜1617)、ファイルテーブル1607に記録する。更に、ファイルポインタテーブル1606に、ファイルAの名前と、ファイルAがキャッシュされているアドレスポインタを記録し、蓄積済みとする(1620)。
ファイルAがファイルテーブル1607にキャッシュされている場合は、ファイルテーブルにキャッシュ済みのファイルA(1622)を、フロントエンド端末501に、TCP制御に従って返信する(1624〜1630)。
図17は、「HTTP POST /insert Control Config.1〜3」(1310〜1312)によるフロントエンド端末504から装置200へのアイテムデータの登録と、「HTTP POST /select Control Config.」(1305)による装置200内のアイテムデータの選択と、「HTTP POST /update Control Config.1,2」(1313,1314)による装置200内のアイテムデータの更新と、「HTTP POST /delete Control Config.」(1307)による装置200内のアイテムデータの削除を示す。
装置200は、サーバのデータベースのエントリをキャッシュするデータベーステーブル1713と、エントリが含むアイテムに応じて複数個のポインタを記録するポインタテーブル1712を備える。
HTTPプロトコル上で、3つのアイテムデータからなるエントリの登録を要求するPOSTコマンド付パケット1701が装置200に到着すると、装置200はポインタテーブル1712を用いて、登録要求のあったエントリがデータベーステーブルに登録済みか否かを判定する。未登録の場合は、3つのアイテムデータを用いて複数のポインタを生成して、ポインタテーブル1712に登録する。更に,データベーステーブル1713に登録要求のあったエントリを登録する。
HTTPプロトコル上で、特定のアイテムデータを持つエントリの削除を要求するPOSTコマンド付パケット1702が装置200に到着すると、削除要求のあったアイテムデータを含むエントリによって生成されるポインタと、削除要求のあったアイテムデータを持つエントリを、ポインタテーブル1712およびデータベーステーブル1713から削除する。
HTTPプロトコル上で、特定のアイテムデータを持つエントリの更新を要求するPOSTコマンド付パケット1703が装置200に到着すると、更新要求のあったアイテムデータを含むエントリによって生成されるポインタと、更新要求のあったアイテムデータを持つエントリを、ポインタテーブル1712およびデータベーステーブル1713から削除する。更に、新たな3つのアイテムデータを用いて生成されるポインタと、新たな3つのアイテムデータからなるエントリを、ポインタテーブル1712およびデータベーステーブル1713に挿入する。
HTTPプロトコル上で、特定のアイテムデータを持つエントリの選択を要求するPOSTコマンド付パケット1704が装置200に到着すると、選択要求のあったアイテムデータを持つエントリを、ポインタテーブル1712およびデータベーステーブル1713から選択する。
データの登録/更新/選択/削除の処理が終了すると、TCP制御に従って処理結果がフロントエンド端末に返信される(1705〜1711)。
図18は、UPLOAD Control Config.」(1309)による、装置200内のデータベーステーブル1713からサーバ504への、アイテムデータのアップロードを示す。
装置200は、データベーステーブル1713にキャッシュされたアイテムデータのサーバ504へのアップロードを要求するGETコマンド付パケット1801を受信する。その後、SYNパケット1812とSYN−ACKパケット1813とACKパケット1814を用いたTCPの3−Way−Handshakeによりサーバ504に接続する。更に、アイテムデータのアップロードを要求するパケット1815を送信して、アイテムデータをTCP制御に従ってアップロードする(1816〜1823)。サーバ504は、アップロードされたデータを用いて、データベースの内容を更新する。また、装置200は、アップロードの結果を、TCP制御に従ってアクセス端末504に通知する(1802〜1808)。
以上述べた図12と図13と図15〜18に示した処理を、動的再構成プロセッサ搭載装置が実施することで、端末間の通信状態に基づくパケット毎再構成による多様なサーバサービスが実現する。
200…装置、100…パケットI/O、102…動的再構成プロセッサ、103…メモリ、501…フロントエンドネットワーク、502…エッジネットワーク、503…バックエンドシステム。
Claims (20)
- ネットワークを介して送受信されるパケットに処理を行う情報処理装置であって、
前記パケットを送受信している端末間の通信状態を格納する通信状態テーブルと、
受信した前記パケットの内部情報と、前記パケットの前記内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じて、前記通信状態の変更を行う通信状態更新部と、
機能と配線が可変である演算器群を備えた第一と第二の演算マトリックスと前記演算マトリックスの構成情報を複数格納する構成情報蓄積バッファとを含み、前記パケットと変更済みの前記通信状態を受信し、変更済みの前記通信状態に基づき、前記構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記演算マトリックスの前記演算器群の機能と配線を再構成する動的再構成処理部と、
前記第一の演算マトリックスが第一のパケットを演算処理しているときに、前記第一と第二の演算マトリックスのどちらで後続の第二のパケットの演算処理を行うかを決定するスケジューリング部と、を有する
情報処理装置。 - 請求項1記載の情報処理装置であって、
前記スケジューリング部は、前記第二のパケットが前記第一のパケットと同じ前記構成情報に基づく処理を必要とし、後続の第三のパケットが前記第一のパケットと異なる前記構成情報に基づく処理を必要とする場合に、
前記第一の演算マトリックスにおける前記第一のパケットの処理が終了するまで前記第二のパケットを待機させ、前記第三のパケットに前記第二の演算マトリックスを優先的に使用させる
情報処理装置。 - 請求項1記載の情報処理装置であって、
処理中の前記パケットのパケットヘッダを記録する処理中通信テーブルと、
処理を開始した前記パケットのパケットヘッダを前記処理中通信テーブルに記録し、処理を終了した前記パケットのパケットヘッダを前記処理中通信テーブルから削除する処理中通信記録部と、
前記処理中通信テーブルに記録された前記パケットヘッダと、前記ネットワークから入力される前記パケットのパケットヘッダを比較し、一致しない場合に、入力された前記パケットの処理を開始する通信重複判定部と、を更に有する
情報処理装置。 - 請求項1記載の情報処理装置であって、
前記演算マトリックスにおいて演算処理中または演算待ち中の前記パケットの通信状態を記録する処理中通信状態テーブルと、
前記通信状態更新部が変更した前記通信状態を一時的に蓄積する第一と第二の通信状態バッファと、
変更済みの前記通信状態に対応する前記パケットを一時的に蓄積する第一と第二のパケットバッファと、を更に有し、
前記スケジューリング部は、変更済みの前記通信状態と、前記処理中通信状態テーブルに記録した前記通信状態とを比較することで、変更済みの前記通信状態と、対応する前記パケットを蓄積する、前記第一と第二の通信状態バッファおよび前記第一と第二のパケットバッファを決定する
情報処理装置。 - 請求項1記載の情報処理装置であって、
前記パケットを一時的に蓄積するパケットバッファと、
変更済みの前記通信状態を一時的に蓄積する通信状態バッファと、
前記パケットバッファと前記通信状態バッファから、前記パケットと変更済みの前記通信状態を読み出して前記演算マトリックスに転送するデータ読出し部を更に有し、
前記データ読出し部は、前記演算マトリックスにおいて演算処理中または演算待ち中の前記パケットの数と、前記通信状態バッファに蓄積された前記通信状態の数とに基づき、前記通信状態バッファから読み出す前記通信状態の数を決定する
情報処理装置。 - 請求項1記載の情報処理装置であって、
前記動的再構成処理部に接続され、前記演算マトリックスの前記構成情報を複数格納する記憶部を更に有し、
前記動的再構成処理部は、前記記憶部から前記構成情報蓄積バッファに前記構成情報を転送する演算部を更に含み、
前記演算部は、
前記演算マトリックスが、第一の通信状態に基づく再構成後、前記第一のパケットを演算処理している間に、前記第二のパケットの演算処理に必要な前記構成情報を、第二の通信状態に基づき前記記憶部から前記構成情報蓄積バッファに転送する
情報処理装置。 - ネットワークを介して端末間で送受信されるパケットに処理を行う情報処理装置であって、
前記パケットを送受信している前記端末間の通信状態を格納する通信状態テーブルと、受信した前記パケットの内部情報と、前記パケットの前記内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じ、前記通信状態の変更を行う通信状態更新部と、を含むパケット入出力部と、
構成情報を複数格納する構成情報蓄積バッファと、機能と配線が可変である演算器群をそれぞれ備え、前記パケットと変更済みの前記通信状態を受信し、変更済みの前記通信状態に基づき前記構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づいて前記演算器群の機能と配線を再構成する演算マトリックス部と、前記構成情報蓄積バッファに前記構成情報を転送する演算部と、を含み、前記パケットに変更済みの前記通信状態に応じた処理を行う動的再構成処理部と、
前記構成情報を複数格納する記憶部と、を有し、
前記動的再構成処理部の前記演算部は、前記演算マトリックス部が、第一の通信状態に基づく再構成後、第一のパケットを処理している間に、後続する第二のパケットの処理に必要な、第二の通信状態に基づく前記構成情報を、前記記憶部から前記構成情報蓄積バッファに転送する
情報処理装置。 - 請求項7記載の情報処理装置であって、
前記動的再構成処理部の前記演算マトリックス部は、
前記構成情報に基づいて前記演算器群の機能と配線を再構成する第一と第二の演算マトリックスから構成されると共に、
前記パケット入出力部は、
前記第一の演算マトリックスが前記第一のパケットを処理しているときに、前記第一と第二の演算マトリックスのどちらで前記第二のパケットの処理を行うかを決定するスケジューリング部を更に含む
情報処理装置。 - 請求項7記載の情報処理装置であって、
前記パケット入出力部は、
前記パケットを一時的に蓄積するパケットバッファと、
変更済みの前記通信状態を一時的に蓄積する通信状態バッファと、
前記パケットバッファと前記通信状態バッファから、前記パケットと変更済みの前記通信状態を一つ乃至複数読み出して前記演算マトリックス部に転送するデータ読出し部と、を更に含み、
前記データ読出し部は、前記演算マトリックス部において演算処理中または演算待ち中の前記パケットの数と、前記通信状態バッファに蓄積された前記通信状態の数とに基づき、前記通信状態バッファから読み出す前記通信状態の数を決定する
情報処理装置。 - 請求項7記載の情報処理装置であって、
前記パケット入出力部は、
処理中の前記パケットのパケットヘッダを記録する処理中通信テーブルと、
処理を開始した前記パケットのパケットヘッダを前記処理中通信テーブルに記録し、処理を終了した前記パケットのパケットヘッダを前記処理中通信テーブルから削除する処理中通信記録部と、
前記処理中通信テーブルに記録された前記パケットヘッダと、前記ネットワークから入力される前記パケットのパケットヘッダを比較し、一致しない場合のみ入力された前記パケットの処理を開始する通信重複判定部と、を更に含む
情報処理装置。 - 請求項7記載の情報処理装置であって、
前記パケット入出力部は、
前記ネットワークから入力される前記パケットの分類を行う分類器と、
前記分類器が分類した前記パケットを蓄積する複数のパケットバッファと、
複数の前記パケットバッファから、分類済みの前記パケットを読み出すパケット読出し部と、を更に含む
情報処理装置。 - 請求項8記載の情報処理装置であって、
前記スケジューリング部は、
前記第二のパケットが前記第一のパケットと同じ前記構成情報に基づく処理を必要とし、後続する第三のパケットが前記第一のパケットと異なる前記構成情報に基づく処理を必要とする場合、
前記第一の演算マトリックスにおける前記第一のパケットの処理が終了するまで前記第二のパケットを待機させ、前記第三のパケットに前記第二の演算マトリックスを優先的に使用させる
情報処理装置。 - 請求項8記載の情報処理装置であって、
前記パケット入出力部は、
前記第一と第二の演算マトリックスにおいて演算処理中または演算待ち中の前記パケットの通信状態を記録する処理中通信状態テーブルと、
前記通信状態更新部が変更した前記通信状態を一時的に蓄積する第一と第二の通信状態バッファと、
変更済みの前記通信状態に対応する前記パケットを一時的に蓄積する第一と第二のパケットバッファと、を更に含み、
前記スケジューリング部は、変更済みの前記通信状態と、前記処理中通信状態テーブルに記録した前記通信状態とを比較することで、変更済みの前記通信状態と対応する前記パケットを蓄積する、前記第一と第二の通信状態バッファおよび前記第一と第二のパケットバッファを決定する
情報処理装置。 - 請求項11記載の情報処理装置であって、
前記パケット読出し部は、
過去に読み出した時刻が最も古い前記パケットバッファから優先的に、分類済みの前記パケットを読み出し、前記通信状態更新部における前記通信状態の変更を開始する
情報処理装置。 - 請求項11記載の情報処理装置であって、
前記パケット入出力部は、
前記分類器において処理が不要と判定された前記パケットと、前記演算マトリックス部の演算処理によって新たに生成されたパケットと、を集約して出力する集約器を更に含む
情報処理装置。 - 請求項13記載の情報処理装置であって、
前記パケット入出力部は、
前記第一と第二のパケットバッファと前記第一と第二の通信状態バッファから、前記パケットと変更済みの前記通信状態を読み出して前記第一と第二の演算マトリックスにそれぞれ転送する第一と第二のデータ読出し部を更に含み、
前記第一と第二のデータ読出し部は、前記第一と第二の演算マトリックスにおいて演算処理中または演算待ち中の前記パケットの数と、前記第一と第二の通信状態バッファに蓄積された前記通信状態の数とに基づき、前記第一と第二の通信状態バッファから読み出す前記通信状態の数を決定する
情報処理装置。 - サーバと、ネットワークを介して前記サーバにデータを要求する端末と、前記サーバと前記端末間で転送されるパケットを受信し、前記パケットを送受信する前記サーバと前記端末間の通信状態に応じた処理を実行する情報処理装置と、からなる情報処理システムであって、
前記情報処理装置は、
前記サーバと前記端末間の前記通信状態を格納する通信状態テーブルと、
受信した前記パケットの内部情報と、前記パケットの前記内部情報に基づき前記通信状態テーブルから読み出した前記通信状態との組合せに応じ、前記通信状態の変更を行う通信状態更新部と、
機能と配線が可変である演算器群を備えた第一と第二の演算マトリックスと前記演算マトリックスの構成情報を複数格納する構成情報蓄積バッファとを有し、前記パケットと変更済みの前記通信状態を受信し、変更済みの前記通信状態に基づき、前記構成情報蓄積バッファから前記構成情報を取得し、取得した前記構成情報に基づき前記演算マトリックスの前記演算器群の機能と配線を再構成する動的再構成処理部と、
前記第一の演算マトリックスが第一の前記パケットを処理しているときに、後続する第二のパケットの処理を前記第一と第二の演算マトリックスのどちらで行うかを決定するスケジューリング部と、を有し、
前記動的再構成処理部において、前記パケットに変更済みの前記通信状態に対応する演算処理を実行し、その処理結果を前記ネットワーク経由で前記サーバ、又は前記端末に送信する
情報処理システム。 - 請求項17記載の情報処理システムであって、
前記通信状態テーブルが格納する前記通信状態は、
前記サーバと前記端末間のトランスポートレイヤプロトコルの遷移/輻輳状態と、アプリケーションレイヤプロトコルの種類と、前記アプリケーションレイヤプロトコルが実行中のコマンド及び前記コマンドの引数の種類と、前記コマンドの実行の進捗状態と、を含む
情報処理システム。 - 請求項17記載の情報処理システムであって、
前記情報処理装置は、
前記構成情報を複数格納した記憶部を更に有し、
前記動的再構成処理部は、前記記憶部から前記構成情報蓄積バッファに前記構成情報を転送する演算部を更に含み、前記演算部は、前記演算マトリックスが、第一の前記パケットを演算処理している間に、前記第二のパケットの演算に必要な前記構成情報を、前記記憶部から前記構成情報蓄積バッファに転送する
情報処理システム。 - 請求項17記載の情報処理システムであって、
前記情報処理装置の前記スケジューリング部は、
前記第二のパケットが前記第一のパケットと同じ前記構成情報に基づく処理を必要とし、後続する第三のパケットが前記第一のパケットと異なる前記構成情報に基づく演算処理を必要とする場合に、
前記第一の演算マトリックスにおける前記第一のパケットの演算処理が終了するまで前記第二のパケットを待機させ、前記第二の演算マトリックスに前記第三のパケットの演算処理を行わせる
情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007182205A JP2009021774A (ja) | 2007-07-11 | 2007-07-11 | 情報処理装置、及び情報処理システム |
US11/958,787 US20090016354A1 (en) | 2007-07-11 | 2007-12-18 | Information processing apparatus and information processing system |
CN2007101600775A CN101345701B (zh) | 2007-07-11 | 2007-12-21 | 信息处理装置及信息处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007182205A JP2009021774A (ja) | 2007-07-11 | 2007-07-11 | 情報処理装置、及び情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009021774A true JP2009021774A (ja) | 2009-01-29 |
Family
ID=40247595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007182205A Withdrawn JP2009021774A (ja) | 2007-07-11 | 2007-07-11 | 情報処理装置、及び情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090016354A1 (ja) |
JP (1) | JP2009021774A (ja) |
CN (1) | CN101345701B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2151941A1 (en) * | 2008-08-05 | 2010-02-10 | Nokia Siemens Networks OY | Communication network element and method transmitting data |
JP6102108B2 (ja) * | 2012-07-24 | 2017-03-29 | 富士通株式会社 | 情報処理装置、データ提供方法、及びデータ提供プログラム |
CN105579433A (zh) | 2013-05-21 | 2016-05-11 | 弗吉尼亚联邦大学 | 用于预防和治疗炎症的Cryopyrin抑制剂 |
US11533255B2 (en) | 2014-11-14 | 2022-12-20 | Nicira, Inc. | Stateful services on stateless clustered edge |
US9954771B1 (en) * | 2015-01-30 | 2018-04-24 | Marvell Israel (M.I.S.L) Ltd. | Packet distribution with prefetch in a parallel processing network device |
US10951584B2 (en) | 2017-07-31 | 2021-03-16 | Nicira, Inc. | Methods for active-active stateful network service cluster |
US11570092B2 (en) * | 2017-07-31 | 2023-01-31 | Nicira, Inc. | Methods for active-active stateful network service cluster |
US11296984B2 (en) | 2017-07-31 | 2022-04-05 | Nicira, Inc. | Use of hypervisor for active-active stateful network service cluster |
US11153122B2 (en) | 2018-02-19 | 2021-10-19 | Nicira, Inc. | Providing stateful services deployed in redundant gateways connected to asymmetric network |
US11799761B2 (en) | 2022-01-07 | 2023-10-24 | Vmware, Inc. | Scaling edge services with minimal disruption |
US11962564B2 (en) | 2022-02-15 | 2024-04-16 | VMware LLC | Anycast address for network address translation at edge |
CN115858193B (zh) * | 2022-11-24 | 2023-08-25 | 广州市易鸿智能装备有限公司 | 一种数据传输方法和实现业务类bussiness功能对接的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091717A (en) * | 1997-05-05 | 2000-07-18 | Nokia Mobile Phones Limited | Method for scheduling packet data transmission |
US20020083331A1 (en) * | 2000-12-21 | 2002-06-27 | 802 Systems, Inc. | Methods and systems using PLD-based network communication protocols |
US20030177258A1 (en) * | 2002-01-15 | 2003-09-18 | Chip Engines | Reconfigurable control processor for multi-protocol resilient packet ring processor |
US7154416B1 (en) * | 2005-09-22 | 2006-12-26 | Packeteer, Inc. | Adaptive control of codebook regeneration in data compression mechanisms |
JP5132055B2 (ja) * | 2005-12-26 | 2013-01-30 | 富士通株式会社 | 物理チャネルの再設定を行う装置および方法 |
-
2007
- 2007-07-11 JP JP2007182205A patent/JP2009021774A/ja not_active Withdrawn
- 2007-12-18 US US11/958,787 patent/US20090016354A1/en not_active Abandoned
- 2007-12-21 CN CN2007101600775A patent/CN101345701B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101345701B (zh) | 2011-05-11 |
US20090016354A1 (en) | 2009-01-15 |
CN101345701A (zh) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009021774A (ja) | 情報処理装置、及び情報処理システム | |
US7613813B2 (en) | Method and apparatus for reducing host overhead in a socket server implementation | |
US20190107956A1 (en) | System and method for providing in-storage acceleration (isa) in data storage devices | |
US7181544B2 (en) | Network protocol engine | |
JP2009093348A (ja) | 情報処理装置、及び情報処理システム | |
EP1787212B1 (en) | Packet queuing, scheduling and ordering | |
US7631106B2 (en) | Prefetching of receive queue descriptors | |
US10911358B1 (en) | Packet processing cache | |
US20050165985A1 (en) | Network protocol processor | |
US20150326509A1 (en) | Header replication in accelerated tcp (transport control protocol) stack processing | |
US20030097481A1 (en) | Method and system for performing packet integrity operations using a data movement engine | |
US20130132503A1 (en) | Computer system and network interface supporting class of service queues | |
US20100265954A1 (en) | Method, System, and Computer Program Product for High-Performance Bonding Resequencing | |
US20080256271A1 (en) | Methods and apparatus for reducing storage usage in devices | |
CN107135268B (zh) | 基于信息中心网络的分布式任务计算方法 | |
US20230127722A1 (en) | Programmable transport protocol architecture | |
US20040044796A1 (en) | Tracking out-of-order packets | |
JP2007208963A (ja) | パケット処理装置及びパケット処理方法 | |
EP3744066B1 (en) | Method and device for improving bandwidth utilization in a communication network | |
US7466716B2 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
US20170048304A1 (en) | Pre-boot file transfer system | |
JP4740828B2 (ja) | 情報処理装置及び情報処理システム | |
US7292593B1 (en) | Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes | |
CN118069387A (zh) | 一种基于硬件多线程的rdma数据发送队列管理方法及装置 | |
CN115996203B (zh) | 网络流量分域方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100311 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110617 |