以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明の実施形態を説明する図において、同一部には同一の符号を付し、その繰り返しの説明は、省略する事とする。
[第1の実施形態]
図1は、本発明の第1の実施の形態における通信端末のハードウェア構成の一例を示すブロック図である。
通信端末100は、通信データ変調・復調回路101、送受信フレーム生成解析回路102、通信情報管理・制御回路103、及びバッファメモリ104を備える。なお、通信端末100は、適用される通信サービスに応じて、任意の専用回路、表示パネル、又は磁気ディスクを備える形態であってもよい。通信端末100は、ネットワーク105を介して、通信相手の通信端末(図示省略)と通信する。
なお、通信データ変調・復調回路101、送受信フレーム生成解析回路102、通信情報管理・制御回路103、及びバッファメモリ104は、一定の動作周期で処理を実行している。以下の説明において、一定の動作周期をサイクルと記載する。例えば、動作周期の数を表す場合、1サイクルと記載し、また、動作周期の順番を表す場合、1サイクル目と記載する。
通信データ変調・復調回路101は、通信端末100がネットワーク105と接続するための回路である。つまり、通信端末100は、通信データ変調・復調回路101を介してネットワーク105と接続されている。なお、通信端末100とネットワーク105との間の接続の形態は有線接続でもよいし、無線接続でもよい。
通信データ変調・復調回路101は、ネットワーク105から受信した信号を復調し、復調された受信信号を任意のバイト数で区切り、当該区切られた受信信号を受信フレームとして送受信フレーム生成解析回路102に出力する。なお、受信信号は、1サイクル毎に、任意のバイト数で区切られる。
また、通信データ変調・復調回路101は、送受信フレーム生成解析回路102から任意のバイト数で区切られた送信フレームを変調し、変調された送信フレームをネットワーク105に送信する。
送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力される動作モードに基づいて、3つの異なった動作モードの処理をする。
1つ目の動作は、解析モードである。解析モードでは、送受信フレーム生成解析回路102は、通信データ変調・復調回路101から入力された受信フレームに含まれる受信相手のアドレス、及び受信フレームの種別等のフレーム自体の情報を格納するヘッダ部分を解析し、解析結果として送信相手のアドレス情報、及びポート番号等を通信情報管理・制御回路103に出力する。また、送受信フレーム生成解析回路102は、受信フレームに含まれるデータ本体の情報を格納するペイロード部分の位置を特定し、特定されたペイロードの位置、ペイロード長、及び受信フレームのフレーム長等を通信情報管理・制御回路103に出力する。また、送受信フレーム生成解析回路102は、受信フレームをバッファメモリ104に出力する。詳細については、図4を用いて後述する。
2つめの動作は、生成モードである。生成モードでは、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力された送信相手のアドレス情報、ポート番号、及びバッファメモリ104に格納された送信用データの位置等の情報に基づいて送信フレームのヘッダを生成する。さらに、送受信フレーム生成解析回路102は、生成されたヘッダとバッファメモリ104に格納された送信用データとを、送信フレームとして、通信データ変調・復調回路101に出力する。なお、当該送信フレームは、生成されたヘッダとバッファメモリ104に格納された送信用データとを含む信号を、1サイクルごとに任意のバイト数に区切ったものである。詳細については、図7を用いて後述する。
3つ目の動作は、多重解析モードである。多重解析モードでは、送受信フレーム生成解析回路102は、通信情報管理・制御回路103に格納され、再度解析が必要な受信フレームのアドレス等の情報と、バッファメモリ104に格納されたペイロードとに基づいて受信フレームを生成する。さらに、送受信フレーム生成解析回路102は、生成された受信フレームを解析し、解析結果を通信情報管理・制御回路103に出力し、また、生成された受信フレームをバッファメモリ104に出力する。詳細については、図10を用いて後述する。
通信情報管理・制御回路103は、送受信フレーム生成解析回路102の解析結果に含まれる、コネクション情報、ポート管理、及び受信したデータ等を管理する。また、通信情報管理・制御回路103は、対象となるペイロードがバッファメモリ104のどの位置に格納されているかを管理する。
バッファメモリ104は、受信フレーム、及び送信用のペイロードを格納する記憶領域である。なお、バッファメモリ104は、通信情報管理・制御回路103との間で、格納状況を入出力する場合もあるが、図1に示す例では、当該入出力を表す矢印を省略している。
図2は、本発明の第1の実施形態の送受信フレーム生成解析回路102の構成の一例を示すブロック図である。
送受信フレーム生成解析回路102は、生成解析演算器200、及びマイクロプログラムテーブル201を備える。
マイクロプログラムテーブル201は、送受信フレーム生成解析回路102を制御するためのマイクロプログラムを格納する。送受信フレーム生成解析回路102は、1サイクルごとに、マイクロプログラムテーブル201からマイクロプログラムを読み出し、読み出されたマイクロプログラムにしたがって動作する。マイクロプログラムテーブル201に格納されるマイクロプログラムは、書き換えが可能であり、適用される通信サービスに応じて、設定を変更できる。なお、図2に示す例では、マイクロプログラムテーブル201の書き換えの入出力を表す矢印は省略している。
生成解析演算器200は、マイクロプログラムテーブル201から読み出されたマイクロプログラムに基づいて、送受信フレーム生成解析回路102に入力されたデータ、例えば、受信フレーム等、を処理する。
生成解析演算器200は、マイクロプログラム解釈部202、データセレクタ部203、演算ロジック部204、処理結果データ整合部205、レジスタ206を備える。また、通信サービスに応じて、任意の専用回路等を備えてもよい。
マイクロプログラム解釈部202は、入力された動作モードにしたがって、マイクロプログラムテーブル201から読み出されたマイクロプログラムを解釈し、また、演算ロジック部に出力するマイクロプログラムのデータ長の振り分ける。振り分けられた所定のデータ長のマイクロプログラムは、解釈されたマイクロプログラムにしたがって演算ロジック部204に出力される。また、解釈されたマイクロプログラムは、データセレクタ部203にも出力される。マイクロプログラム解釈部202の具体的な処理については、図6、図9及び図12を用いて後述する。
データセレクタ部203は、マイクロプログラム解釈部202から入力されたマイクロプログラムの解釈結果にしたがって、送受信フレーム生成解析回路102から入力された受信フレーム、送信フレーム生成用データ、又は多重解析用データを、を演算ロジック部204に出力する。
演算ロジック部204は、マイクロプログラム解釈部202から入力されたマイクロプログラム及び、データセレクタ部203及びレジスタ206から入力された情報に基づいて各種処理を実行し、処理の結果を処理結果データ整合部205へと出力する。
演算ロジック部204は、一以上の比較器、一以上の格納器、一以上の加減算器、及び一以上の桁上循環加算器を備える。なお、演算ロジック部204は、他の機能を実現するための部位を備えてもよい。演算ロジック部204は、前述の各構成要素をマイクロプログラムの解釈結果に基づいて動作させる。具体的には、マイクロプログラム解釈結果によって、演算ロジック部204の各構成要素の接続が変更される。
比較器は、マイクロプログラムの定数、入力データ又はレジスタ値の各々を比較し、比較結果を出力する。つまり、比較器は、二つの入力に対して、一つの結果を出力する。格納器は、入力データ、及び演算結果をレジスタ206に格納する。加減算器は、入力データ及びレジスタ値を加算又は減算する。桁上循環加算器は、TCP/IPなどで使用されるチェックサムを計算する。
処理結果データ整合部205は、演算ロジック部204から入力された演算結果(例えば、送信フレーム又は受信解析結果データ)を、通信情報管理・制御回路103又はバッファメモリ104に出力する。また、処理結果データ整合部205は、レジスタ206の所定のアドレスに演算結果データを格納する。
具体的には、送信フレームが作成される場合、演算ロジック部204は、ヘッダを生成し、生成されたヘッダを処理結果データ整合部205に出力する。処理結果データ整合部205は、生成されたヘッダの情報をレジスタ206に出力し、生成されたヘッダを用いて送信フレームを生成し、生成された送信フレームを通信情報管理・制御回路103及びバッファメモリ104に出力する。
受信フレームが解析される場合、演算ロジック部204は、受信フレームを解析し、解析結果を処理結果データ整合部205に出力する。処理結果データ整合部205は、演算ロジック部204から入力された全ての解析結果に基づいて、所定の形式の受信解析結果データを生成し、当該受信解析結果データを通信情報管理・制御回路103及びバッファメモリ104に出力する。例えば、ペイロードのみを出力する場合は、演算ロジック部204は、ペイロード長を算出し、解析結果を処理結果データ整合部205に出力する。また、受信フレームが他のデータを要求している場合、演算ロジック部204は、要求された情報を取り出し、取り出された情報を解析し、解析結果を要求された形式で処理結果データ整合部205に出力する。
レジスタ206は、各処理に必要なデータを格納する。具体的には、レジスタ206は、プログラムカウンタ、制御レジスタ、パケット種別、パケット長、ペイロードオフセット、ペイロード長、最終入出力パケット長、桁上循環加算結果、及びワーキングレジスタを格納する。
プログラムカウンタは、次に読み出されるマイクロプログラムが格納されているマイクロプログラムテーブル201上のアドレスを格納する。制御レジスタは、動作モードを格納する。パケット種別は、送信パケット又は受信パケットの種別を格納する。パケット長は、受信パケットの長さを格納する。ペイロードオフセットは、パケットにおけるヘッダとペイロードとの境界の位置を格納する。ペイロード長は、ペイロードの長さを格納する。最終入出力パケット長は、実際に送信するデータ、又は受信したデータの長さを格納する。つまり、任意のバイト数で区切られていない場合のデータの長さが格納される。桁上循環加算結果は、チェックサムの値を格納する。ワーキングレジスタは、生成解析演算器200における演算途中のデータを格納する。
図3は、本発明の第1の実施形態の送受信フレーム生成解析回路102の動作モードの切り替え及び各動作モードの処理を説明するフローチャートである。
送受信フレーム生成解析回路102は、起動するとはじめに、動作モードを解析モードに設定する(ステップ300)。送信フレームの送信のタイミング、及び多重解析を実行するタイミングは、送受信フレーム生成解析回路102が制御することができるが、受信フレームが入力されるタイミングは、送受信フレーム生成解析回路102が制御することができず、不確定であるため、初期の動作モードは解析モードに設定される。
その後、送受信フレーム生成解析回路102は、動作モード判定状態に移行する(ステップ301)。つまり、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力される動作モードの待ち受け状態(以下、動作モード待受状態ともいう)となる。送受信フレーム生成解析回路102の動作モードは、解析モード、生成モード、及び多重解析モードのいずれかである。送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力された動作モードがいずれの動作モードであるか判定し、判定された動作モードに移行する。
入力された動作モードが解析モードであると判定された場合、送受信フレーム生成解析回路102は、受信フレーム解析処理を実行する(ステップ302)。具体的には、送受信フレーム生成解析回路102は、通信データ変調・復調回路101を介して入力される受信フレームを解析し、通信情報管理・制御回路103に解析結果データを出力する。また、送受信フレーム生成解析回路102は、バッファメモリ104に受信フレームを出力する。
送受信フレーム生成解析回路102は、全ての受信フレームの解析が完了したか否かを判定する(ステップ303)。
全ての受信フレームの解析が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ302に戻り、全ての受信フレームの解析が完了するまで、ステップ302〜ステップ303の処理を実行する。
全ての受信フレームの解析が完了したと判定された場合、送受信フレーム生成解析回路102は、受信フレーム解析終了処理を実行する(ステップ304)。具体的には、送受信フレーム生成解析回路102は、レジスタ206のマイクロプログラムカウンタをリセットし、ステップ311に進む。
入力された動作モードが生成モードであると判定された場合、送受信フレーム生成解析回路102は、動作モードを生成モードに切り替え、送信フレーム生成処理を実行する(ステップ305)。具体的には、送受信フレーム生成解析回路102は、通信情報管理・制御回路103及びバッファメモリ104から入力された送信フレーム生成用データを用いて送信フレームを生成し、生成された送信フレームを処理結果データ整合部205に出力する。
その後、送受信フレーム生成解析回路102は、送信フレームの生成が完了したか否かを判定する(ステップ306)。
送信フレームの生成が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ305に戻り、送信フレームの生成が完了するまで、ステップ305〜ステップ306の処理を実行する。
送信フレームの生成が完了していると判定された場合、送受信フレーム生成解析回路102は、送信フレーム送信終了処理を実行する(ステップ307)。具体的には、送受信フレーム生成解析回路102は、レジスタ206のマイクロプログラムカウンタをリセットし、ステップ311に進む。
入力された動作モードが多重解析モードであると判定された場合、送受信フレーム生成解析回路102は、動作モードを多重解析モードに切り替え、多重解析処理を実行する(ステップ308)。具体的には、送受信フレーム生成解析回路102は、通信情報管理・制御回路103及びバッファメモリ104から入力された多重解析用データを用いて、受信フレームを生成し、生成された受信フレームを解析し、解析結果を通信情報管理・制御回路103に出力する。また、送受信フレーム生成解析回路102は、バッファメモリ104に生成された受信フレームのペイロードを出力する。
その後、送受信フレーム生成解析回路102は、多重解析が完了したか否かを判定する(ステップ309)。
多重解析が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ308に戻り、多重解析が完了するまで、ステップ308〜ステップ309の処理を実行する。
多重解析が完了していると判定された場合、送受信フレーム生成解析回路102は、多重解析終了処理を実行する(ステップ310)。具体的には、送受信フレーム生成解析回路102は、レジスタ206のマイクロプログラムカウンタをリセットし、ステップ311に進む。
ステップ311において、送受信フレーム生成解析回路102は、通信情報管理・制御回路103からの動作継続の指示又は動作完了の指示の入力によって、動作継続か又は動作完了かを判定する(ステップ311)。
動作モードを継続させると判定された場合、送受信フレーム生成解析回路102は、ステップ301に戻り、同様の処理を実行する。動作モードを継続させないと判定された場合、送受信フレーム生成解析回路102は、処理を終了する。
次に、本実施の形態1の通信端末100における解析モード、生成モード、及び多重解析モードにおける送受信フレーム生成解析回路102の詳細について説明する。まず、解析モードについて説明する。
図4は、本発明の第1の実施形態における、解析モードで動作する送受信フレーム生成解析回路102の入出力を示す図である。
送受信フレーム生成解析回路102には、2つのデータが入力される。1つ目は、通信情報管理・制御回路103から入力され、送受信フレーム生成解析回路102の動作モードを決定するための動作モード信号400である。2つ目は、通信データ変調・復調回路101から入力される受信フレーム401である。
送受信フレーム生成解析回路102は、2つのデータを出力する。1つ目は、通信情報管理・制御回路103に出力される受信フレームの解析結果データ402である。2つ目は、バッファメモリ104に出力される受信フレーム403である。
ここで、受信フレーム全体がバッファメモリ104に格納される理由として、例えば、通信端末100を備えるパーソナルコンピュータが、通信端末外のアプリケーションが受信フレームの任意のヘッダの一部を使用する場合、受信フレーム全体をバッファメモリ104が格納しておく必要があるからである。バッファメモリ104が受信ペイロード部分のみを格納する場合、送受信フレーム生成解析回路102は、通信情報管理・制御回路103が保持するデータから、再度ヘッダ部分を構築する手順が増え、負荷が増大するためである。
ただし、バッファメモリ104を小さくすることが求められる場合、バッファメモリ104は、受信ペイロードのみを格納してもよい。通信端末外のアプリケーションからヘッダ情報を要求された場合、送受信フレーム生成解析回路102は、通信情報管理・制御回路103の情報からヘッダを再構築する。マイクロプログラムテーブル201に格納するマイクロプログラムを書き換えることによって、要求されるサービスに柔軟に対応できる。
図5は、本発明の第1の実施形態の解析モードにおける送受信フレーム生成解析回路102の処理を説明するフローチャートである。
解析モード状態の送受信フレーム生成解析回路102は、レジスタ206内のプログラムカウンタを参照し、マイクロプログラムテーブル201からマイクロプログラムを取得し、マイクロプログラム解釈部202によって、取得されたマイクロプログラムを解釈する(ステップ500)。
送受信フレーム生成解析回路102は、解釈されたマイクロプログラムにしたがって、データセレクタ部203を制御し、受信フレームを演算ロジック部204に入力する。演算ロジック部204は、解釈されたマイクロプログラムにしたがって、受信フレームを解析する(ステップ501)。
送受信フレーム生成解析回路102は、解釈されたマイクロプログラムにしたがって、通信情報管理・制御回路103に解析結果データを出力する。また、送受信フレーム生成解析回路102は、バッファメモリ104に受信フレームを出力する(ステップ502)。
なお、ステップ500〜ステップ502は、ステップ302に対応し、当該処理は1サイクル中に実行される。
次に、送受信フレーム生成解析回路102は、受信フレームの解析が完了したか否かを判定する(ステップ503)。なお、ステップ503は、ステップ303に対応する。
受信フレームの解析が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ500に戻り、ステップ500〜ステップ503の処理を実行する。
受信フレームの解析が完了していると判定された場合、送受信フレーム生成解析回路102は、レジスタ206のプログラムカウンタの値をリセットし、動作モード待受状態に移行する(ステップ504)。なお、ステップ504は、ステップ304に対応する。
以上が解析モードにおける送受信フレーム生成解析回路102の処理である。
図6A及び図6Bは、本発明の第1の実施形態の解析モードにおける送受信フレーム生成解析回路102のプログラム解釈の一例を説明する図である。
マイクロプログラムテーブル201に格納されるマイクロプログラムは、0と1で表現されるマイクロプログラムバイナリ形式600で格納されている。
送受信フレーム生成解析回路102のマイクロプログラム解釈部202は、解析モード601にしたがって、マイクロプログラムバイナリ形式600の解釈の仕方を変更する。図6Aに示す例では、解析モード601が入力されている。この場合のフレーム処理を逆方向処理と呼ぶ。図6Bにおいて、逆方向処理は、入力されたデータである受信フレーム603をレジスタ604に格納する処理である。
マイクロプログラム解釈部202は、入力された解析モード601の信号によって、マイクロプログラムバイナリ形式600を、マイクロプログラムソースコード形式602に解釈する。ここで、マイクロプログラムソースコード形式602は、マイクロプログラムバイナリ形式600を人間が理解しやすいように表記を変えた言語形式であり、命令コード名と引数パラメータから構成されている。
図6Aで示す例では、マイクロプログラムバイナリ形式600は、マイクロプログラム解釈部202によって、「SET_REG」という命令を示すマイクロプログラムソースコード形式602に解釈される。「SET_REG」は、対象とするデータを任意の記憶領域へ格納する命令であり、2つのパラメータを持つ。
1つ目のパラメータは、格納元を示すパラメータである。具体的には、受信フレーム603を示す文字列、及び、当該受信フレーム603の対象となるデータの範囲を示す値から構成される。図6Aに示す例では、「data[0:3]」となっており、格納元の受信フレームが「data」であり、当該受信フレーム603の0バイト目から3バイト目の範囲のデータが格納されるデータであることを示している。
2つ目のパラメータは、格納先を示すパラメータである。具体的には、レジスタ604を示す文字列、及び、当該レジスタ604の格納先の範囲を示す値から構成される。図6Aに示す例では、「Reg1[0:3]」となっており、格納元のレジスタ604が「Reg1」であり、当該レジスタ604の0バイト目から3バイト目の範囲に格納元のデータを格納することを示している。
以上で処理によって、マイクロプログラム解釈部202は、マイクロプログラムバイナリ形式600をマイクロプログラムソースコード形式602に解釈し、マイクロプログラムソースコード形式602したがって、演算ロジック部204の所定の機器に、マイクロプログラムバイナリ形式600の所定のデータを出力する。これによって、演算ロジック部204の各機器は、入力された所定のデータにしたがって、処理を実行する。つまり、マイクロプログラム解釈部202は、マイクロプログラムを解釈することによって、演算ロジック部の動作を制御することができる。したがって、各動作モードに最適な演算ロジック部の処理を実現できる。
次に、生成モードの詳細について説明する。
図7は、本発明の第1の実施形態における、生成モードで動作する送受信フレーム生成解析回路102の入出力を示す図である。
送受信フレーム生成解析回路102には、3つのデータが入力される。1つ目は、通信情報管理・制御回路103から入力され、送受信フレーム生成解析回路102の動作モードを決定するための動作モード信号400である。2つ目は、通信情報管理・制御回路103から入力される送信フレーム生成用データ701である。3つ目は、バッファメモリ104から入力される送信用ペイロード702である。
送受信フレーム生成解析回路102は、1つのデータを出力する。具体的には、通信データ変調・復調回路101に出力される送信フレーム700である。
図8は、本発明の第1の実施形態の生成モードにおける送受信フレーム生成解析回路102の処理を説明するフローチャートである。
生成モード状態の送受信フレーム生成解析回路102は、通信情報管理・制御回路103から、送信フレームを生成するために必要な初期パラメータを取得する(ステップ800)。具体的には、アドレスデータ及び送信フレームのペイロードが格納されている、バッファメモリ104の先頭アドレス位置、並びにペイロード部分のチェックサム値等が取得される。
送受信フレーム生成解析回路102は、レジスタ206内のプログラムカウンタを参照し、マイクロプログラムテーブル201からマイクロプログラムを取得し、マイクロプログラム解釈部202によって、取得されたマイクロプログラムを解釈する(ステップ801)。
送受信フレーム生成解析回路102は、解釈されたマイクロプログラムにしたがって、データセレクタ部203を制御し、送信フレーム生成用データを取得する(ステップ802)。
送受信フレーム生成解析回路102は、解釈されたマイクロプログラムにしたがって、取得された送信フレーム生成用データ、及び、取得された送信フレーム用ペイロードを用いて、送信フレームを生成する(ステップ803)。
送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、生成された送信フレームを通信データ変調・復調回路101を介してネットワーク105に送信する(ステップ804)。
なお、ステップ801〜ステップ804は、ステップ305に対応し、当該処理は1サイクル中に実行される。
次に、送受信フレーム生成解析回路102は、送信フレームの生成が完了したか否かを判定する(ステップ805)。なお、ステップ805はステップ306に対応する。
送信フレームの生成が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ801に戻り、ステップ801〜ステップ805の処理を実行する。
送信フレームの生成が完了したと判定された場合、送受信フレーム生成解析回路102は、レジスタ206のプログラムカウンタの値をリセットし、動作モード待受状態に移行する(ステップ806)。なお、ステップ806は、ステップ307に対応する。
以上が生成モードにおける送受信フレーム生成解析回路102の処理である。
図9A及び図9Bは、本発明の第1の実施形態の送信モードにおける送受信フレーム生成解析回路102のプログラム解釈の一例を説明する図である。
送受信フレーム生成解析回路102のマイクロプログラム解釈部202は、生成モード901にしたがって、マイクロプログラムバイナリ形式600の解釈の仕方を変更する。図9Aに示す例では、生成モード901が入力されている。この場合のフレーム処理を順方向処理と呼ぶ。図9Bにおいて、順方向処理は、入力された送信フレーム生成用データ701及び送信用ペイロード702を用いて送信フレームを生成し、レジスタ604を介して、即値、又は送信フレーム903として送出力する処理である。
マイクロプログラム解釈部202は、入力された生成モード901の信号によって、マイクロプログラムバイナリ形式600を、マイクロプログラムソースコード形式902に解釈する。
図9Aで示す例では、マイクロプログラムバイナリ形式600は、マイクロプログラム解釈部202によって、「SET_PKT」という命令を示すマイクロプログラムソースコード形式902に解釈される。「SET_PKT」は、対象とするデータを送信フレームとして出力する命令であり、2つのパラメータを持つ。
1つ目のパラメータは、出力先を示すパラメータである。具体的には、送信フレーム903を示す文字列、及び、当該送信フレーム903の対象となるデータ範囲を示す値から構成される。図9Aに示す例では、「data[0:3]」となっており、送信フレーム903が「data」であり、当該送信フレーム903の0バイト目から3バイト目の範囲のデータが対象となるデータであることを示している。
2つ目のパラメータは、出力元を示すパラメータである。具体的には、レジスタ604を示す文字列、及び、当該レジスタ604の出力先の範囲を示す値から構成される。図9Aに示す例では、「Reg1[0:3]」となっており、出力先のレジスタ604が「Reg1」であり、当該レジスタ604の0バイト目から3バイト目の範囲に出力することを示している。
送受信フレーム生成解析回路102のマイクロプログラム解釈部202は、図9Aに示す同一のマイクロプログラムバイナリ形式600を、入力された生成モード901によって、図6Aに示す例とは異なるマイクロプログラムソースコード形式902に解釈する。これによって、送受信フレーム生成解析回路102は、送信フレームを生成するように演算ロジック部204を制御することができる。
次に、多重解析モードの詳細について説明する。
図10は、本発明の第1の実施形態における、多重解析モードで動作する送受信フレーム生成解析回路102の入出力を示す図である。
送受信フレーム生成解析回路102には、3つデータが入力される。1つ目は、通信情報管理・制御回路103から入力され、送受信フレーム生成解析回路102の動作モードを決定するための動作モード信号400である。2つ目は、通信情報管理・制御回路103から入力される多重解析用データ1000である。3つ目は、バッファメモリ104から入力される多重解析用ペイロード1001である。
送受信フレーム生成解析回路102は、2つのデータを出力する。1つ目は、通信情報管理・制御回路103に出力される多重解析用フレーム解析結果データ1002である。2つ目は、バッファメモリ104に出力される受信フレーム1003である。ここで多重解析の結果、バッファメモリ104へ出力されるのが受信フレーム1003であるのは、例えば、多重解析が分割されたフレームデータの再構築だった場合、多重解析用のフレーム生成によって、生成されたペイロードは、本来あるべき順に並んだフレームとなる。当該フレームは、バッファメモリ104からは解析モード時に入力される受信フレームのペイロードと同一のものと認識されるからである。
図11は、本発明の第1の実施形態の多重解析モードにおける送受信フレーム生成解析回路102の処理を説明するフローチャートである。
多重解析モード状態の送受信フレーム生成解析回路102は、通信情報管理・制御回路103から、多重解析用のフレームを生成するために必要な初期パラメータを取得する(ステップ1100)。具体的には、アドレスデータ及び多重解析対象のペイロードが格納されている、バッファメモリ104の先頭アドレス位置、並びにペイロード部分のチェックサム値等が取得される。
送受信フレーム生成解析回路102は、レジスタ206内のプログラムカウンタを参照し、マイクロプログラムテーブル201からマイクロプログラムを取得し、マイクロプログラム解釈部202によって、取得されたマイクロプログラムを解釈する(ステップ1101)。
送受信フレーム生成解析回路102は、解釈されたマイクロプログラムにしたがって、データセレクタ部203を制御し、多重解析に必要なデータを取得する(ステップ1102)。
送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、取得された多重解析用データ、及び、取得された多重解析用のペイロードを用いて、多重解析を実行する(ステップ1103)。
送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103及びバッファメモリ104に多重解析の解析結果を出力する(ステップ1104)。
なお、ステップ1101〜ステップ1104は、ステップ308に対応し、当該処理は1サイクル中に実行される。
次に、送受信フレーム生成解析回路102は、多重解析が完了したか否かを判定する(ステップ1105)。なお、ステップ1105は、ステップ309に対応する。
多重解析が完了していないと判定された場合、送受信フレーム生成解析回路102は、ステップ1101に戻り、ステップ1101〜ステップ1105の処理を実行する。
多重解析が完了したと判定された場合、送受信フレーム生成解析回路102は、レジスタ206のプログラムカウンタの値をリセットし、動作モード待受状態に移行する(ステップ1106)。なお、ステップ1106は、ステップ310に対応する。
以上が多重解析モードにおける送受信フレーム生成解析回路102の処理である。
図12A及び図12Bは、本発明の第1の実施形態の多重解析モードにおける送受信フレーム生成解析回路102のプログラム解釈の一例を説明する図である。
送受信フレーム生成解析回路102のマイクロプログラム解釈部202は、多重解析モード1201にしたがって、マイクロプログラムバイナリ形式600の解釈の仕方を変更する。図12Aに示す例では、多重解析モード1201が入力されている。この場合のフレーム処理を、解析モードと同様に逆方向処理と呼ぶ。図12Bにおいて、逆方向処理は、入力された多重解析用データ1000及び多重解析用ペイロード1001を用いて再度受信フレーム1203を生成し、生成された受信フレーム1203を解析し、任意のレジスタ604に解析結果を格納する処理である。以下、再度生成された受信フレーム1203を、多重解析用フレーム1203と呼ぶ。
マイクロプログラム解釈部202は、入力された多重解析モード1201の信号によって、マイクロプログラムバイナリ形式600を、マイクロプログラムソースコード形式1202に解釈する。
図12Aに示す例では、マイクロプログラムバイナリ形式600は、マイクロプログラム解釈部202によって、「SET_REG」という命令を示すマイクロプログラムソースコード形式1202に解釈される。「SET_REG」は、解析モードの時と同一の命令である。多重解析モードにおける「SET_REG」は、2つのパラメータを持つ。
1つ目のパラメータは、格納元を示すパラメータである。具体的には、多重解析フレーム1203を示す文字列、及び、当該多重解析フレーム1203の対象となるデータ範囲を示す値から構成される。図12Aに示す例では、「gen_data[0:3]」となっており、多重解析フレーム1203が「gen_data」であり、当該多重解析フレーム1203の0バイト目から3バイト目の範囲のデータが対象となるデータであることを示している。なお、多重解析モードでは、解析モードと比べて、フレームを示す文字列が異なる。
2つ目のパラメータは、格納先を示すパラメータである。具体的には、レジスタ604を示す文字列、及び、当該レジスタ604の格納先の範囲を示す値から構成される。図12Aに示す例では、「Reg1[0:3]」となっており、格納先のレジスタ604が「Reg1」であり、当該レジスタ604の0バイト目から3バイト目の範囲に格納されることを示している。
送受信フレーム生成解析回路102のマイクロプログラム解釈部202は、図6Aに示す同一のマイクロプログラムバイナリ形式600を、入力された多重解析モード1201によって、図6Aに示す例とは異なるマイクロプログラムソースコード形式1202に解釈する。これによって、送受信フレーム生成解析回路102は、演算ロジッ受信フレームを生成し、生成された受信フレームの解析するように演算ロジック部204を制御することができる。
以上で説明したように、本発明の送受信フレーム生成解析回路102は、動作モードを変化させることによって、同一の回路構成、及び同一マイクロプログラムで、解析、生成、及び多重解析の処理を実現できる。
次に、通信端末100における、TCP/IPフレームの処理の一例をそれぞれのモードの場合に分けて説明する。
図13は、本発明の第1の実施形態における通信端末100が処理するTCP/IPフレーム1300を示した図である。
TCP/IPフレーム1300は、MACヘッダ1301、IPヘッダ1302、TCPヘッダ1303、ペイロード1304、及びトレーラ1305から構成される。受信解析処理の場合、通信端末100は、通信データ変調・復調回路101を介してTCP/IPフレーム1300を受信する。第1の実施形態における送受信フレーム生成解析回路102は、1サイクル毎に受信フレームを4バイトずつ処理する。
ステップ301において、動作モードが指定された後、通信端末100は、指定されたモードに基づいて、送受信フレーム生成解析回路102の初期設定が行われる。
解析モードの場合、通信端末100は、受信フレームのタイプ及びプロトコル番号との比較に使用する定数値と、当該定数値を用いて比較処理の結果が真になった場合に次に実行されるマイクロプログラムを指定するプログラムカウンタ値と、を一つの組として指定のレジスタに格納する。
生成モードの場合、通信端末100は、送信フレームを生成するために必要な生成用データの一部を指定のレジスタに格納する。また、通信端末100は、ペイロードが格納されているバッファメモリ104のアドレスと、当該ペイロードのチェックサム値とを取得し、取得されたバッファメモリ104のアドレスとチェックサム値とを指定のレジスタに格納する。
多重解析モードの場合、通信端末100は、多重解析に必要となるデータの一部を指定のレジスタに格納する。また、通信端末100は、生成モードと同様にペイロードが格納されているバッファメモリ104のアドレスと、当該ペイロードのチェックサム値とを取得し、取得されたバッファメモリ104のアドレスとチェックサム値とを指定のレジスタに格納する。ここで、生成モードの時と異なり、対象となるペイロードが複数となる場合がある。これは、主に、分割されたデータの再解析が実行される場合である。
前述した初期設定が完了すると、解析モードの場合、通信端末100は、通信データ変調・復調回路101から受信フレームを受信したときから処理を開始する。また、生成モードの場合、又は多重解析モードの場合、通信端末100は、即座に処理を開始する。以下、各モードにおける通信端末100の処理について説明する。
解析モードにおける通信端末の処理について説明する。解析モードの通信端末100の基本動作として、1サイクルに4バイトずつ受信したフレームの長さをカウントする。通信端末100は、受信フレーム解析処理が完了した後、カウントされたフレームの長さを受信フレーム全長として、通信情報管理・制御回路103へ出力する。トレーラ1305の処理において、通信端末100は、送受信フレーム生成解析回路102で計算を実行し、エラーが無いかをチェックしてもよいが、通信データ変調・復調回路101が前述の処理をしてもよい。本実施形態では、特にトレーラの計算を行う回路については言及しない。
1サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、MACヘッダ1301の終点MACアドレスの4バイトであると解釈し、演算ロジック部204の格納器を使用して通信情報管理・制御回路103の転送用レジスタに終点MACアドレスを格納する。
2サイクル目及び3サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した8バイトのフレームが、終点MACアドレスの残り2バイトと始点MACアドレスの2バイト、及び終点MACアドレスの残り4バイトであると解釈する。次に、送受信フレーム生成解析回路102は、終点MACアドレスの残り2バイトと始点MACアドレスの6バイトとの計8バイトを処理する。なお、2サイクル目及び3サイクル目の処理は、1サイクル目の処理と同様の処理である。
4サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、上位層のプロトコルタイプを示すタイプと、当該上位層のプロトコルタイプが示す上位層のヘッダの2バイトであると解釈する。次に、送受信フレーム生成解析回路102は、上位層のプロトコルタイプを判定するため、初期設定の時に格納された比較用定数値とプログラムカウンタ値との組を用いて、受信したタイプを比較する。
比較された結果、受信したタイプが、比較用定数値とプログラムカウンタ値との組と一致した場合、送受信フレーム生成解析回路102は、当該定数と組となっているプログラムカウンタ値をレジスタ206のプログラムカウンタに設定する。
4サイクル目の時点では、受信したフレームの上位層プロトコルが何であるが決定されていないため、4サイクル目で受信した残り2バイトの処理は、次の5サイクル目で実行される。受信フレーム解析処理では、前述したようにフレームの判定によって、次に行うべき処理が決定されること多いため、この処理を保証するために、一時的に1サイクル分の受信フレームがレジスタ206に保持される。
データセレクタ部203は、必要に応じて現サイクルで入力された受信フレームと、一つ前のサイクルで入力された受信フレームとをあわせて、処理対象受信フレームとして扱うことできる。また、対応するサービスによって、何サイクル分のデータを一時的に保持されるかを変更させることができる。前述の変更は、例えば、フレーム一時保持レジスタの要領の追加、及びマイクロプログラムの書き換えによって容易に対応可能である。
本実施形態では、上位層ではチェックサム計算が必要となることが多いため、送受信フレーム生成解析回路102は、現時点で入力されている受信フレームの2バイトに対して16ビットのチェックサム計算を行い、当該計算結果をレジスタ206に格納する。前述の計算には、演算ロジック部204の桁上循環加算器が用いられる。なお、本実施形態において、チェックサム計算値が必要なかった場合、格納された値は破棄される。
5サイクル目では、前サイクルの結果、図13で示すTCP/IPフレーム1300の上位層はIPヘッダ1302であることが確定したため、送受信フレーム生成解析回路102は、当該IPヘッダ1302に対して処理を行う。
まず、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、バージョン、ヘッダ長、サービスタイプ、及びパケット全長であると解釈する。
本実施形態では、IPv4であることがすでに確定しているため、送受信フレーム生成解析回路102は、バージョンについて特に処理をしない。送受信フレーム生成解析回路102は、データオフセット値を計算するために、ヘッダ長をレジスタ206に格納する。送受信フレーム生成解析回路102は、通信情報管理・制御回路103にサービスタイプを出力する。
送受信フレーム生成解析回路102は、パケット全長とヘッダ長とを用いて、データのオフセット位置を計算し、レジスタ206の所定の位置に計算結果を格納する。送受信フレーム生成解析回路102は、受信フレームがフラグメント化していた場合に用いる識別子を通信情報管理・制御回路103に出力する。
受信フレームのフラグメント化していた場合、送受信フレーム生成解析回路102は、当該識別子を用いて、分割されたデータを再構築する。前サイクルでチェックサム計算を開始したが、解析の結果、上位層がIPv4であることが判明しているため、計算は継続される。IPv4チェックサム計算は、IPヘッダ1302の終端まで実行される。
6サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、コントロールフラグ、フラグメントオフセット、生存時間及びプロトコル番号であると解釈する。
送受信フレーム生成解析回路102は、コントロールフラグに基づいて、該受信フレームがフラグメントされているか否かを判定し、フラグメント化していると判定された場合、多重解析が必要となることを通信情報管理・制御回路103に通知する。フラグメントオフセットは、フレームの再構築時に、現在処理されている受信フレームの情報がフラグメント化された内の何番であるかを示しており、送受信フレーム生成解析回路102、通信情報管理・制御回路103に当該フラグメントオフセットを出力する。
生存時間のフレームは対応するサービスによって、使用するか否かが決定される。本実施形態では使用されないため、生存時間は破棄される。このように、対応するサービスによって、送受信フレーム生成解析回路102は、解析の結果、不要と判断されたフレーム情報を破棄する。
プロトコル番号は上位層のプロトコルを示す。送受信フレーム生成解析回路102は、IPヘッダ1302の処理後、マイクロプログラムテーブル201のどのアドレスをプログラムカウンタ値に設定するべきか否かの判定に用いるため、レジスタ206にプロトコル番号を格納する。
7サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、ヘッダチェックサムと、始点IPアドレスの前半2バイトであると解釈する。本実施形態では、ヘッダチェックサムも含めて計算されたチェックサム値が用いられるため、送受信フレーム生成解析回路102は、ヘッダチェックサムを破棄する。ヘッダチェックサム用いるか否かは、対応するサービスに依存する。
送受信フレーム生成解析回路102は、アドレス情報として使用するため始点IPアドレスを、通信情報管理・制御回路103に出力する。また、上位層プロトコルのチェックサム計算の時に、始点IPアドレスと、終点IPアドレスとが疑似ヘッダとして使用されることがあるため、送受信フレーム生成解析回路102は、始点IPアドレスを用いてチェックサム計算しておき、当該計算結果をレジスタ206の所定の位置に格納する。
8サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、始点IPアドレスの後半2バイトと、終点IPアドレスの前半2バイトであると解釈する。送受信フレーム生成解析回路102は、アドレス情報として、始点IPアドレスの後半2バイトと、終点IPアドレスの前半2バイトとを通信情報管理・制御回路103に出力する。
9サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、終点IPアドレスの後半2バイトと、始点ポート番号であると解釈する。送受信フレーム生成解析回路102は、終点IPアドレスの後半2バイトを通信情報管理・制御回路103に出力する。
送受信フレーム生成解析回路102は、4サイクル目と同様に、上位層プロトコルタイプの判定結果によって処理が変わるため、始点ポート番号を次のサイクルで処理する。ただし、IPヘッダ1302の場合、8サイクル目までに、プロトコル番号が示されるため、送受信フレーム生成解析回路102は、予め上位層プロトコルタイプを判定しておく。そして、送受信フレーム生成解析回路102は、9サイクル目の処理を実行するときに、上位層のプロトコルの処理を含むマイクロプログラムを格納しているマイクロプログラムテーブル201のアドレスをプログラムカウンタ値として設定しておくことも可能である。
本実施形態では、一例として4サイクル目と同様に、次のサイクル時に始点ポート番号を処理する。IPヘッダ1302の上位層では、IPヘッダ1302の時と同様に、チェックサムがある場合が考えられるため、9サイクル目において、予め始点ポート番号に対してチェックサム計算が実行され、計算結果が所定のレジスタ206の位置に格納される。
IPヘッダ1302のチェックサム計算は9サイクル目における終点IPアドレスの後半2バイトでIPヘッダ1302が終端を迎えるため、送受信フレーム生成解析回路102は、9サイクル目までのチェックサム値を計算し、レジスタ206の所定の位置に計算結果を格納しておく。チェックサムエラーがあるか否かの判定は、本サイクルで実行されてもよいが、本実施形態では、TCP/IPフレーム1300の処理が終了した段階で実行される。
また、IPヘッダ1302にはIPオプションフレームが付くことがある。この場合、送受信フレーム生成解析回路102は、オプションフレーム付か否かの判定を行い、IPオプションフレームの処理を行うマイクロプログラムを格納したマイクロプログラムテーブル201のアドレス値をプログラムカウンタに設定し、次のサイクルでマイクロプログラムにしたがって処理を実行する必要がある。本実施形態では、IPオプションフレームは無いものとして処理が実行される。
10サイクル目では、前サイクルの処理の結果、受信したフレームはTCPヘッダ1303であることが確定したため、送受信フレーム生成解析回路102は、TCPヘッダ1303に対する処理を実行する。
まず、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、前サイクルで未解析のフレームが始点ポート番号であり、また、受信した4バイトのフレームが、終点ポート番号、及びシーケンス番号の前半2バイトであると解釈する。送受信フレーム生成解析回路102は、それぞれ解析結果を通信情報管理・制御回路103に出力する。
また、TCPヘッダ1303と判定されたことから、送受信フレーム生成解析回路102は、TCPチェックサムの計算を開始する。TCPヘッダ1303では、疑似ヘッダを必要となるために、IPフレームの処理中に計算した始点IPアドレス、及び終点IPアドレスの計算値を用いて、チェックサムが計算される。
11サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、シーケンス番号の後半2バイト、確認応答番号の前半2バイトであると解釈し、それぞれ解析結果を通信情報管理・制御回路103に出力する。
12サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、確認応答番号の後半2バイトと、データオフセット、未使用領域、及びコントロールフラグとであると解釈する。送受信フレーム生成解析回路102は、確認応答番号の後半2バイトであるという解析結果を通信情報管理・制御回路103に転送する。
コントロールフラグは通信情報管理・制御回路103において、TCPのSYN又は、ACKのいずれであるかの判定に用いるため、そのまま解析結果として、通信情報管理・制御回路103に出力される。データオフセットとIPヘッダ1302において計算されたデータオフセット位置とを用いて、受信フレームのデータオフセット位置が決定される。計算結果はレジスタ206の所定の位置に格納される。
13サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、ウィンドサイズの2バイト、及びチェックサム値の2バイトであると解釈する。ウィンドサイズは、通信情報管理・制御回路103に出力される。チェックサム値は、IPヘッダ1302のときと同様の処理が実行される。前サイクルでパケット全長とオフセット位置とが判明したため、送受信フレーム生成解析回路102は、データサイズを計算できる。計算されたデータサイズはレジスタ206に格納される。これによって、パケット全長、データオフセット位置、及びデータサイズの長さのデータはすべてそろったことになる。なお、この時点で通信情報管理・制御回路103に、前述した各々のデータを出力することも可能であるが、本実施形態では、前述した各々のデータは、受信フレームをすべて処理し終わった後に、通信情報管理・制御回路103に出力される。
14サイクル目は、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、受信した4バイトのフレームが、緊急ポインタの2バイトとペイロード2バイトであると解釈する。緊急ポインタは、通信情報管理・制御回路103へ出力される。ここまでがTCPフレームであり、残りの2バイトはペイロードとなる。
なお、IPヘッダ1302の時と同様にTCPヘッダ1303がTCPオプションを持つ場合がある。TCPヘッダ1303がTCPオプションを持つ場合、IPヘッダ1302の時と同様、TCPオプションの処理を記述したマイクロプログラムが格納されているマイクロプログラムテーブル201のアドレスをプログラムカウンタにセットし、処理が実行される。本実施形態では、TCPヘッダ1303はTCPオプションを持たない場合を示している。TCPヘッダ1303のチェックサム計算については、ペイロード1304も含むため、引き続き計算が実行される。
1サイクル目から14サイクル目までの処理を示してきたが、本実施形態では、送受信フレーム生成解析回路102は、受信フレームを受信するたびに逐次、バッファメモリ104に、該受信フレームを出力する。送受信フレーム生成解析回路102は、ペイロードの処理が完了し、受信フレームの全ての処理が完了した後、チェックサム計算値をチェックしエラーが発生していないかを確認する。エラーが発生していた場合、送受信フレーム生成解析回路102は、その旨を通信情報管理・制御回路103に通知する。また、送受信フレーム生成解析回路102は、レジスタ206に格納されている、パケット全長、データオフセット位置、及びデータサイズ等のパラメータ値を通信情報管理・制御回路103に通知する。
以上の処理によって、通信情報管理・制御回路103は、受信フレームの種別、各種アドレスデータ、サイズデータ、及び各種通信情報パラメータを取得し、対応するサービスに合わせて取得された各データを使用する。
次に生成モードにおける送受信フレーム生成解析回路102の処理について説明する。
1サイクル目では、送受信フレーム生成解析回路102は、レジスタに格納され、生成される送信フレームの種別を示すコードに合わせて、送信フレームの生成を開始する。基本的に、解析モードの時に使用された同一のマイクロプログラムが使用され、解釈を変更することによって、送信フレームを生成する処理が実行される。
本実施形態では、フレームの生成及び解析において、順方向処理と逆方向処理との対応関係がない処理、つまり、同一のマイクロプログラムでは実現できない処理があった場合、生成モードのみに使用されるマイクロプログラムがマイクロプログラムテーブル201に格納されている。なお、後述する多重解析モードにおいても同様とする。
また、本実施形態における生成モードの送受信フレーム生成解析回路102は、送信フレーム生成時に使用されるペイロード長などの長さ情報等を、必要となるタイミングまでに、レジスタ206の所定の位置に格納する。前述の格納処理は、通信情報管理・制御回路103から入力された生成情報データ群として、生成開始時に予め格納されておいてもよいし、生成モードのみに使用されるマイクロプログラムとして、マイクロプログラムテーブル201に格納されていてもよい。
本実施形態では、一部の情報は、予めレジスタ206の所定の位置に格納され、残りの情報は、通信情報管理・制御回路103から入力される。送受信フレーム生成解析回路102は、入力された情報を判定し、判定された情報から送信フレームを生成する。
図13に示す例では、TCP/IPフレーム1300の内のMACヘッダ1301が生成されるため、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを終点MACアドレスデータの4バイトであると解釈し、送信フレームの先頭4バイトとして送信フレームを生成する。
生成された送信フレームは、通信データ変調・復調回路101を介してネットワーク105に送信される。ここで、通信データ変調・復調回路101に生成された送信フレームを出力する場合に、送受信フレーム生成解析回路102は、必要に応じて、フレームを生成するタイミングと、生成されたフレームを送信するタイミングとの間に遅延を発生させることができる。
これは、生成される送信フレームによっては、生成に数サイクルかかる場合があり、対応するサービスに応じて送信フレームの生成と送信とのタイミングをずらさなければならないことが起き得るからである。送信フレームの生成と送信とのタイミングをずらす場合、送受信フレーム生成解析回路102は、生成された送信フレームを、一時、レジスタ206に格納しておき、マイクロプログラムによって指定された値を使用して、任意のタイミングで通信データ変調・復調回路101に出力を開始する。遅延の長さは、例えば、レジスタ206のサイズを大きくすること、マイクロプログラムを書き換えることによって、容易に変更可能である。
2サイクル目、3サイクル目では、1サイクル目と同様に、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを終点MACアドレス、及び始点MACアドレスであると解釈し、送信フレームを生成する。
4サイクル目では、タイプを設定するため、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、初めに通信情報管理・制御回路103から入力された送信フレームの種別コードから、タイプを判定し、判定されたタイプに基づいて、送信フレームを生成する。
本実施形態では、IPフレームを示す「0x0800」の値を設定することとなる。解析モードとは異なり、この時点で、送受信フレーム生成解析回路102は、上位層のプロトコルが何になるかが分かるため、引き続き、本サイクルで送信フレームを生成できる。また、送受信フレーム生成解析回路102は、解析モードにおける処理に合わせて、次のサイクルで上位層の部分を生成してもよいし、生成モードのみ使用されるマイクロプログラムに基づいて処理してもよい。本実施形態では、送受信フレーム生成解析回路102は、解析モードに合わせて、次のサイクルにおいて、送信フレームの上位層の部分を生成する。
5サイクル目では、前サイクルの結果に基づいて、送受信フレーム生成解析回路102は、IPヘッダ1302を生成する。バージョンは前サイクルのタイプと同様に、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、送信フレームの種別コードから生成する。
オプションフレームがない場合、ヘッダ長は一意に決定され、決定された値が送信フレームに設定される。オプションフレームがある場合、送受信フレーム生成解析回路102は、通信情報管理・制御回路103からオプションヘッダ長を取得し、基本長に取得された長さデータを加算し、ヘッダ長を生成する。パケット全長についても同様に、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から取得されたペイロード長に基づいて、パケット全長を送信フレームに設定する。サービスタイプ、識別子については、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から逐次受け取るデータをそれぞれ、サービスタイプと識別子とであるか否かを判定し、判定結果に基づいて、送信フレームにおけるサービスタイプと識別子とを生成する。
6サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データをコントロールフラグ、フラグメントオフセット、生存時間、及びプロトコル番号であると解釈し、送信フレームを生成する。
提供するサービスの種類にもよるが、基本的に、送信フレームの送信時において、送信フレームはフラグメント化しないものとする。本実施形態においても、送信フレームは、送信開始時にはフラグメント化することは無いものとし、送受信フレーム生成解析回路102がコントロールフラグ、及びフラグメントオフセットを設定する。
また、生存時間についても、送受信フレーム生成解析回路102は、適切な値を送受信フレーム生成解析回路102が設定し、送信フレームを生成する。プロトコル番号は、前述したタイプ又はバージョンと同様に、通信情報管理・制御回路103から入力された種別コードから送受信フレーム生成解析回路102が送信フレームを生成する。本実施形態では、上位層はTCPヘッダ1303となるため、TCPを示す「6」が設定される。
7サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データをヘッダチェックサム値、及び始点IPアドレスの先頭2バイトであると解釈し、送信フレームを生成する。ここで、ヘッダチェックサムは、IPヘッダ1302のヘッダ部分から導き出されるものである。
本実施形態における、送受信フレーム生成解析回路102は、IPヘッダ1302の処理が始まる5サイクル目から、チェックサム値を計算しておく。つまり、送受信フレーム生成解析回路102は、ヘッダチェックサムの後ろに位置する始点IPアドレス、終点IPアドレス、及びIPオプションの値、を予め通信情報管理・制御回路103から取得しておき、この部分のチェックサム計算しておく。
このときのチェックサム計算のうち、チェックサム値を示すフレームより後ろの部分のチェックサム計算については、生成モードのみに使用されるマイクロプログラムによって実行される。これによって、7サイクル目までにIPヘッダ1302のチェックサム値が生成され、送受信フレーム生成解析回路102は、生成されたチェックサム値を送信フレームのチェックサム値に格納する。
8サイクル目、9サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを始点IPアドレスの後ろ2バイトと終点IPアドレスであると解釈し、送信フレームを生成する。
ここで、MACヘッダ1301とIPヘッダ1302との境目の処理の時と同様に、この時点から上位層を処理するか、又は、次のサイクルから上位層を処理するかを選択できる。本実施形態では、上位層の処理は次のサイクルから始める。なお、IPオプションがある場合は、IPオプションを送信フレームに組み込み送信する。
10サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力された種別コードに基づいて上位層を判定し、判定された上位層のフレームを生成する。本実施例では、送受信フレーム生成解析回路102は、TCPヘッダ1303の生成処理を実行する。
TCPヘッダ1303の生成時も、IPヘッダ1302生成時と同様に、チェックサム値を設定しなければならない。さらに、TCPヘッダ1303の場合、疑似ヘッダも考慮する必要がある。解析モードでは、送受信フレーム生成解析回路102は、IPヘッダ1302のプロトコル番号が確定した後から、疑似ヘッダの生成と、生成された疑似ヘッダのチェックサムの計算とを始めていたが、生成モードにおいて、同じマイクロプログラムが使用されるので、送受信フレーム生成解析回路102は、解析モードの時と同じタイミングで疑似ヘッダを生成し始める。
また、IPヘッダ1302の時と同様に、チェックサムフィールドの後ろのフレームのチェックサム値は予め、計算されているものとする。つまり、本実施形態において、13サイクル目までに送信フレームのチェックサムに格納され、チェックサムの計算が終わっていることを意味する。この場合、解析モード時と異なった計算手順が生じる場合は、生成モードのみに使用されるマイクロプログラムが、マイクロプログラムテーブル201に格納される。
また、10サイクル目において、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力された生成用データを始点ポート番号、終点ポート番号、及びシーケンス番号と解釈して、送信フレームを生成する。
11サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データをシーケンス番号の後半2バイトと確認応答番号の前半2バイトとであると解釈し、送信フレームを生成する。
12サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを、確認応答番号の後半2バイト、データオフセット、未使用値、及びコントロールフラグとであると解釈し、送信フレームを生成する。確認応答番号の後半2バイトは、前サイクルの処理と同様である。データオフセットは、初期値として受け取ったデータオフセット位置から計算される。未使用領域は、TCPヘッダ1303で決められている値に初期化される。コントロールフラグは、通信情報管理・制御回路103から入力された種別コード、又は、通信情報管理・制御回路103から入力されたコントロールフラグ自体を通信情報管理・制御回路103を用いて生成される。
13サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを、ウィンドサイズとチェックサム値とであると解釈し、送信フレームを生成する。ウィンドサイズは、通信情報管理・制御回路103から取得された値に基づいて判定されたものである。チェックサムは前述したように、この時点までに計算が完了しているので、計算結果に基づいて送信フレームが生成される。
14サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、通信情報管理・制御回路103から入力される生成用データを、緊急ポインタ値であると解釈し、送信フレームを生成する。ここで、TCPオプションがある場合、送受信フレーム生成解析回路102は、オプション部分のフレームを生成する。ただし、本実施形態では、TCPオプションは無いものとしている。TCPオプションフレームを生成する場合も、他のフレームの場合と同様の方法によって生成される。
15サイクル目では、送受信フレーム生成解析回路102は、ペイロード1304を出力する。ペイロードは初期設定時に通信情報管理・制御回路103から取得され、ペイロード1304が格納されているバッファメモリ104のアドレス位置に基づいて、送受信フレーム生成解析回路102は、バッファメモリ104からペイロード1304部分を取得し、送信フレームを生成し、生成された送信フレームを出力する。
最後にトレーラ部分については、送受信フレーム生成解析回路102が生成してもよいし、通信データ変調・復調回路101で生成してもよい。送受信フレーム生成解析回路102がトレーラのフレームを生成する場合、送受信フレーム生成解析回路102は、送信フレームを計算し、レジスタ206に計算されたトレーラ値を格納する。通信データ変調・復調回路101がトレーラのフレームを生成する場合、通信データ変調・復調回路101がトレーラの計算機構と、計算された値を保持する領域とを備える。
以上の処理を完了すると、送受信フレーム生成解析回路102は、通信データ変調・復調回路101を介してネットワーク105に生成された送信フレームを送信し、処理を完了とする。
次に多重解析モードにおける送受信フレーム生成解析回路102の処理について説明する。
多重解析モードにおける送受信フレーム生成解析回路102の処理は、解析モードにおける送受信フレーム生成解析回路102の処理と同じく逆方向処理であるため、ほぼ同様の処理となるが、以下の点が異なる。つまり、多重解析モードにおいては、通信データ変調・復調回路101から入力される受信フレームではなく、通信情報管理・制御回路103から入力される多重解析用フレームが使用される。通信情報管理・制御回路103から入力される多重解析用フレームは、レジスタ206の所定の位置に格納される。
送受信フレーム生成解析回路102は、前述のレジスタに格納されている多重解析用フレームを、1サイクルに4バイトずつ、解析を実行する。また、多重解析のときに用いられるペイロード1304の部分は、バッファメモリ104から取得されるため、初期設定において、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から、ペイロード1304が格納されているバッファメモリ104のアドレス位置を取得する必要がある。
なお、取得されるアドレスは複数となる場合がある。これは、多重解析のときに、フラグメント化した受信フレームのデータを再度構築し解析する場合があるからである。前述のような場合、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から、ペイロード1304が格納されているバッファメモリ104のアドレスを、処理する順番に取得する。
また、多重解析モードでは、送受信フレーム生成解析回路102は、暗号化によってカプセル化された受信フレームを復号し、複合化された受信フレームを再度、解析することもできる。基本的に送受信フレーム生成解析回路102は、1サイクル毎に通信情報管理・制御回路103から入力される多重解析用データを解釈し、多重解析を実行する。
本実施形態では、フラグメント化して受信フレームを受信し、当該フラグメント化した受信フレームを再構築する場合を例に、多重解析モードにおける送受信フレーム生成解析回路102の処理を、解析モードとの差異を中心に説明する。
1サイクル目では、送受信フレーム生成解析回路102は、レジスタ206の多重解析フレーム格納レジスタ(図示省略)に格納された多重解析フレームの先頭4バイトを終点MACアドレスの先頭4バイトとして認識し、演算ロジック部204の格納器を使用して、通信情報管理・制御回路103への転送用レジスタとしてレジスタ206に格納する。なお、多重解析フレームは、初期化のときに通信情報管理・制御回路103から入力されたものである。
2サイクル目、3サイクル目では、送受信フレーム生成解析回路102は、マイクロプログラムにしたがって、多重解析フレーム格納レジスタに格納されている多重解析フレームの8バイトのフレームが、終点MACアドレスの残り2バイト及び、始点MACアドレスの6バイトであると解釈する。次に、送受信フレーム生成解析回路102は、終点MACアドレスの残り2バイトと始点MACアドレスの6バイトとの計8バイトを処理する。なお、2サイクル目及び3サイクル目の処理は、1サイクル目の処理と同様の処理である。
4サイクル目では、送受信フレーム生成解析回路102は、タイプを示すフレームを処理するが、すでに当該フレームは一度解析されており、多重解析フレーム全体のプロトコルタイプはすべて分かっている。したがって、送受信フレーム生成解析回路102は、多重解析開始時に通信情報管理・制御回路103から入力された種別コードに基づいてプロトコルタイプを判定し、タイプのフレームを生成する。
さらに、送受信フレーム生成解析回路102は、生成されたタイプのフレームに基づいて、次に実行されるプログラムを示すプログラムカウンタ値を設定する。ここで、送受信フレーム生成解析回路102は、すでに上位層のプロトコルを知っているが、本実施形態では、生成モードの場合と同様に、上位層のフレームの処理については次のサイクルで実行する。
5サイクル目では、送受信フレーム生成解析回路102は、前サイクルの結果に基づいて、IPヘッダ1302を処理する。送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力された種別コードに基づいて、バージョン、サービスタイプ、及び識別子のそれぞれについて処理する。本サイクルにおける処理は解析モードと同様である。
具体的には、ヘッダ長に対しては、生成モードと同様の処理が実行される。また、送受信フレーム生成解析回路102は、IPオプションがあるか否かを判定し、判定結果に対して解析モードと同様の処理を実行する。また、送受信フレーム生成解析回路102は、通信情報管理・制御回路103から入力された種別タイプ、及び分割された各ペイロードの各々のフレームの長さを使用してパケット全長を計算する。前述の計算は、多重解析モードのみに使用されるマイクロプログラムとして、マイクロプログラムテーブル201に格納されている。また、解析モードと同様に、送受信フレーム生成解析回路102は、本サイクルにおいて、データオフセット値を計算する。
6サイクル目では、送受信フレーム生成解析回路102は、コントロールフラグ、フラグメントオフセット、生存時間、及びプロトコル番号の処理を実行する。コントロールフラグ及びフラグメントオフセットに関しては、本処理によって、フラグメント化した受信フレームが再構成されるため、フラグメント化していないフレームが入力されたものとして処理が実行される。
生存時間についても、特に特殊なサービスで使用することを考えない限り、送受信フレーム生成解析回路102が任意の値を適切に設定する。プロトコル番号については、通信情報管理・制御回路103から入力された種別コードに基づいてプロトコル番号が設定され、解析モードと同様の処理が実行される。
7サイクル目では、送受信フレーム生成解析回路102は、ヘッダチェックサム値及び始点IPアドレスの先頭2バイトを処理するが、一度、チェックサムの計算がされているので、本実施形態では再度計算しない。ただし、回路内のデータの出力によって、データが変化する可能性を考慮し、再度チェックサムの計算をしてもよい。
8サイクル目、及び9サイクル目では、送受信フレーム生成解析回路102は、始点IPアドレスと終点IPアドレスを多重解析用フレーム格納レジスタから取得し、解析モードの時と同様の処理を実行する。9サイクル目の上位プロトコルへの移行は、解析モード、又は生成モードと同様に、次のサイクルで実行される。
10サイクル目では、前サイクルの判定結果に基づいて、送受信フレーム生成解析回路102は、TCPヘッダ1303の処理を実行する。解析モードと比較して、多重解析モードでは、各種長さデータを用いて、多重解析用にデータオフセット値が計算される点が異なる。他の処理については、解析モードと同様の処理となるため、ここでは説明を省略する。また、チェックサムの扱いはIPヘッダ1302の時と同様である。
15サイクル目では、送受信フレーム生成解析回路102は、ペイロード1304が格納されている、バッファメモリ104のアドレス位置からデータを取得し、取得されたデータに基づいて、ペイロード1304の処理を実行する。なお、前述のアドレスは、通信情報管理・制御回路103から入力されたものである。
トレーラ部分の処理については、送受信フレーム生成解析回路102が処理してもよいし、通信データ変調・復調回路101が処理してもよく、送受信フレーム生成解析回路102で処理する場合のみ、多重解析モードでもトレーラ部分を処理する。
以上の通り、多重解析処理によって、フラグメント化された受信フレームが通所の受信フレームと同様の状態に復元され、復元された受信フレームは通信情報管理・制御回路103及びバッファメモリ104に格納される。
以上、3つのモードにおける送受信フレーム生成解析回路102のTCP/IPフレーム1300の処理について説明した。
本発明の第1の実施形態によれば、本発明の送受信フレーム生成解析回路102は、動作モードを変更することによって、受信フレームの解析処理、送信フレームの生成処理、及び受信したフレームの多重解析処理を実行することができる。このため、単一の回路で送信、及び受信に対応することが可能となり、さらに、多重解析が必要な受信フレームにも柔軟に対応することができる。
したがって、通信端末100の回路規模を小さく抑えることができ、これによって、消費電力を低減できる。また、コストを抑えることができる。
[第2の実施形態]
本発明の第2の実施形態は、送受信フレーム生成解析回路を複数個用いた通信端末の発明である。
通信端末が、複数の送受信フレーム生成解析回路を備えることによって、スループットを限定することなく、送受信を高効率に行うことが可能となる。本実施形態では一例として、送受信フレーム生成解析回路を2つ使用した場合について説明する。
図14は、本発明の第2の実施形態における通信端末のハードウェア構成の一例を示すブロック図である。以下、第1の実施形態との差異を中心に説明する。
通信端末1400は、通信データ変調・復調回路101、送受信フレーム生成解析回路1401、送受信フレーム生成解析回路1402、通信情報管理・制御回路103、及びバッファメモリ104を備える。なお、通信端末1400は、適用される通信サービスに応じて、任意の専用回路、表示パネル、又は磁気ディスクを備える形態であってもよい。通信端末1400は、ネットワーク105を介して、通信相手の通信端末(図示省略)と通信する。なお、通信端末1400とネットワーク105との間の接続は有線接続でもよいし、無線接続でもよい。
第1の実施形態の通信端末100と比較して、第2の実施形態の通信端末1400は、2つの送受信フレーム生成解析回路1401、1402を備える点が異なる。なお、通信データ変調・復調回路101、送受信フレーム生成解析回路1401、1402、通信情報管理・制御回路103、及びバッファメモリ104は、第1の実施形態と同一のものである。したがって、各構成の説明は省略する。
図15は、本発明の第2の実施形態の二つの送受信フレーム生成解析回路1401、1402の動作を説明する図である。
図15では、横軸は時間を示し、時間の経過による送受信フレーム生成解析回路1401、1402における動作モードの状態移行を示している。送受信フレーム生成解析回路1401、1402は、それぞれ受信モード、多重解析モード、又は送信モードのいずれかの動作モードをとることができる。
受信パケット解析1503〜1506、送信パケット生成1507〜1510、及び多重解析1511は、それぞれパケットの解析、パケットの生成及び多重解析の処理を示している。
図15に示す例では、送受信フレーム生成解析回路1401、1402は、受信を優先して動作する。つまり、送受信フレーム生成解析回路1401、1402は、解析モードで動作する。
受信フレームが入力されるタイミングは、送受信フレーム生成解析回路102が制御することができず、不確定であるため、送受信フレーム生成解析回路1401、1402は、優先的に解析モードの動作を実行する。一方、送信フレームの送信のタイミング、及び多重解析を実行するタイミングは、送受信フレーム生成解析回路102が制御することができる。
また、本実施形態では、二つの送受信フレーム生成解析回路1401、1402には優先順位が設定されている。図15の例では、送受信フレーム生成解析回路1401が、送受信フレーム生成解析回路1402より優先順位が高く設定されている。優先順位の高い送受信フレーム生成解析回路1401は、基本的に、受信待ち受け状態、つまり、動作モードは解析モードで動作する。
一方、送受信フレーム生成解析回路1402は、基本的に、フレーム送信状態、つまり、生成モードで動作する。
送受信フレーム生成解析回路1401は、パケット1(1501)を受信し、受信したパケット1(1501)を解析する。次に、送受信フレーム生成解析回路は、パケット2−A(1502)、及びパケット2−B(1503)を受信する。パケット2−A(1502)及びパケット2−B(1503)は、本来のパケット2がフラグメント化したものである。
フラグメント化したパケットを受け取った場合、フラグメント化したパケットから元のパケットを生成する処理を行う必要がある。つまり、多重解析が実行される。前述したように、送受信フレーム生成解析回路1401は、優先順位が高く設定されているため、多重解析を実行せず、次に、パケット3(1504)を受信する。なお、パケット2−A(1502)、及びパケット2−B(1503)は、バッファメモリ104に格納される。
以下、送受信フレーム生成解析回路1401は、パケット4(1505)、及びパケット5(1506)についても同様の動作を実行する。
送受信フレーム生成解析回路1402は、パケット1(1507)、パケット2(1508)、及びパケット3(1509)を生成する。パケット3が生成されているときに、送受信フレーム生成解析回路1401がフラグメント化したパケット2−A(1502)、及びパケット2−B(1503)を受信し、多重解析を実行する必要があるため、送受信フレーム生成解析回路1403は、パケット3(1509)を生成した後に、生成モードから多重解析モードに移行する。なお、送受信フレーム生成解析回路1402は、通信情報管理・制御回路103からの動作モード信号によって、生成モードから多重解析モードへ移行する。
多重解析モードへ移行した送受信フレーム生成解析回路1402は、多重解析を実行する。具体的には、送受信フレーム生成解析回路1402は、フラグメント化したパケット2−A(1502)、及びパケット2−B(1503)からパケット2を生成し、生成されたパケット2を再度解析する。
その後、送受信フレーム生成解析回路1402は、多重解析モードから生成モードに移行し、パケット4(1511)を生成する。
図15に示す例では、送受信フレーム生成解析回路1402は、多重解析を優先的に実行したが、適用先システムの要求によって、パケット4(1511)の送信を優先したい場合、送受信フレーム生成解析回路1401が多重解析を実行してもよい。前述したように、優先的に取り扱う処理であるか否かは、外部(例えば、通信情報管理・制御回路103)からの動作モードの入力によって判定される。
また、送受信フレーム生成解析回路1402が多重解析を実行している間、緊急にパケットを送信する必要がある場合、送受信フレーム生成解析回路1401が解析モードから生成モードに移行して、パケットを送信することも考えられる。前述の処理の移行についても、外部(例えば、通信情報管理・制御回路103)からの動作モードの入力によって判定される。
図15に示した例の他に、大量のデータを受信し続ける場合、両方の送受信フレーム生成解析回路1401、1402を解析モードとして動作させ、処理状況に応じて受信モードに移行することもできる。また、大量のデータを送信したい場合、両方の送受信フレーム生成解析回路1401、1402を生成モードとして動作させ、状況に応じて解析モードに移行することもできる。
本発明の第2の実施形態によれば、送受信フレーム生成解析回路1401、1402は、処理状況に応じて、柔軟に動作モードを切り替えられることができるため、最も効率のよい通信状態を実現できる。また、各動作モードを実現するための回路の数を少なくすることができるため、通信端末1400の回路規模を小さく抑えることができ、これによって、消費電力を低減できる。また、コストを抑えることができる。
以上のように、本発明の実施形態によれば、フレーム送受信装置がフレームの解析、フレームの生成及び多重解析を切り替えて実行できるため、装置規模を縮小できる。また、同一のプログラムによって、各動作モードに対応した処理を実現できるため、プログラム規模を縮小できる。したがって、装置の低コスト化が可能となる。また、多様な通信プロトコル処理への対応が容易となる。