JPH06125365A - 通信制御装置 - Google Patents
通信制御装置Info
- Publication number
- JPH06125365A JPH06125365A JP16091593A JP16091593A JPH06125365A JP H06125365 A JPH06125365 A JP H06125365A JP 16091593 A JP16091593 A JP 16091593A JP 16091593 A JP16091593 A JP 16091593A JP H06125365 A JPH06125365 A JP H06125365A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- buffer
- data
- protocol
- control device
- 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.)
- Granted
Links
Landscapes
- Bus Control (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
受信処理を高速に行う方法を提供することにある。 【構成】通信プロトコルプログラム22とそれが管理す
るプロトコルバッファと、伝送路3を制御する通信コン
トローラ4とそれが管理するネットワークバッファを備
え、プロトコルバッファと通信バッファを共有させ、伝
送路3からのフレームデータを共有させた通信バッファ
に直接書き込み、読みだしができるように構成する。 【効果】伝送路とプロトコルの間でバッファを共有する
ため、余分なデータ移動が発生せず、通信システム全体
のスループットが向上するという効果がある。
Description
特にローカルエリアネットワーク(LAN)に好適な通
信制御装置に関する。
ナルコンピュータやワークステーションなどの情報処理
装置に接続するための通信コントローラは、その構造の
違いから、インテリジェントタイプとノンインテリジェ
ントタイプに分けられている。インテリジェントタイプ
の通信コントローラは、システムプロセッサやシステム
メモリが接続されているバスに通信コントローラを接続
するためのバスコントローラと、伝送路を直接制御しな
がらフレームデータの送受信を行うネットワークコント
ローラと、下位層のプロトコル処理を行うローカルプロ
セッサ、そして通信データを格納するためのローカルメ
モリで構成される。通信コントローラは、必要に応じて
例えばOSI参照モデルの2層以下に関する処理を行
い、3層以上はシステムプロセッサの方に任せる。伝送
路とシステムメモリとは通信コントローラを介して接続
され、フレームデータは、一旦、ローカルメモリに蓄積
された後、システムプロセッサがシステムメモリにコピ
−することになる。したがって、例えばFDDI(Fibe
r Distributed Data Interface)のように伝送能力が1
00Mbpsもある高速LAN(Local Area Network)
の場合、フレームデータをバスを通して直接システムメ
モリに転送するノンインテリジェントタイプに比べる
と、バスにかかる集中負荷を緩和することができ、その
ために生じるアンダーラン、オーバランエラーを防ぐこ
ともできる。この構成例としては、例えば特開平2−3
2650号公報に記載されている。
ローラは、ロ−カルプロセッサを持たないタイプであ
り、伝送路を直接制御しながらフレ−ムデ−タの送受信
を行なうネットワークコントローラと、通信デ−タを格
納するためのロ−カルメモリで構成される。ネットワー
クコントローラは例えばOSI参照モデルの1層(物理
層)と1.5層(メディアアクセス制御)に関する処理
を伝送路の伝送速度に合わせてリアルタイムで行う。デ
−タフレ−ムは、ネットワークコントローラにより、一
旦、ロ−カルメモリに蓄積された後、システムプロセッ
サがシステムメモリにコピ−することになる。そのた
め、ロ−カルプロセッサで下位層を処理する分、インテ
リジェントタイプに比べると性能が上がる。又、ロ−カ
ルプロセッサを持たない分安価になる。これについて
は、例えば、電子情報通信学会秋季大会論文誌(199
2年、B−433,北村他、ワ−クステ−ションに於け
る高速プロトコル処理を目指した性能評価)やIEEE
Communication Magazine(June,1989,David D.Clark他、
An Analysis of TCP Processing Overhead)に記載され
ている。
技術では、システムメモリとロ−カルメモリの間でデ−
タコピ−が生じてしまうため、その分性能が劣化してし
まう。又、システムプロセッサを用いてデ−タを移動す
るためシステムプロセッサの負荷も重くなる。
−タコピ−を、システムプロセッサを使わずに通信コン
トロ−ラで行なう場合にも問題がある。例えば、通信コ
ントローラが扱うバッファとプロトコルプログラムが扱
うバッファのフォーマットがそれぞれ異なる場合にデー
タを移し変える必要が生じる。受信を例にあげると、ま
ず、通信コントローラがシステムメモリ上に用意したバ
ッファに自分のフォーマットでデータを転送する。その
後、プロトコルプログラムが取り扱うバッファに移し変
える。通信コントローラが取り扱うバッファとは、例え
ば固定アドレスに一定サイズを割り当てた通信コントロ
ーラハードウェア専用のバッファであり、プロトコルプ
ログラムが取り扱うバッファとは、例えば小サイズのエ
リアを複数個チェインで接続し、フレーム長に応じてエ
リアの個数を変えてメモリを有効に使うようにしたバッ
ファである。このためバッファ間でデータを移動するの
に時間がかかり、その分性能が劣化してしまう。
処理するマルチプロトコル処理装置や、複数のネットワ
−クをサポ−トするマルチネットワ−ク制御装置でも存
在する。
て、伝送路を制御する通信ハードウェアと通信プロトコ
ルを処理するソフトウェア間で直接データ転送が可能な
高速通信制御装置を提供することを目的とする。
に、本発明の通信制御装置は、通信プロトコルを処理す
るプロトコルプログラムとそのプロトコルプログラムが
管理するプロトコルバッファと、伝送路を制御しデータ
の送受信を行う通信コントローラとその通信コントロー
ラが管理する通信バッファを備える。そして、システム
メモリ上にプロトコルバッファと通信バッファを共有さ
せた共有バッファを設け、通信プロトコルと通信コント
ローラの間で無駄なコピーを行うことなく伝送路からの
フレームデータを授受できるようにした。
成した。
制御するネットワークコントローラとバスを制御するバ
スコントローラだけで構成し、伝送路からのフレームデ
ータを途中でバッファリングすることなくシステムメモ
リ上の共有バッファに転送する。
制御するネットワークコントローラとバスを制御するバ
スコントローラの他に、ローカルプロセッサとローカル
メモリで構成し、伝送路からのフレームデータを通信コ
ントローラ内部のローカルメモリに一旦バッファリング
した後、通信コントローラがシステムメモリ上の共有バ
ッファに転送を行う。
するデータバッファと通信プロトコルプログラムがデー
タバッファを管理するためのプロトコルバッファ記述子
と通信コントローラがデータバッファを管理するための
通信バッファ記述子で構成した。
択する手段を追加して、複数の通信プロトコルを処理で
きるようにした。
数個設けるとともに、通信プロトコルプログラムに伝送
路を選択する手段を追加して、送信デ−タを該当する伝
送路に送出できるようにした。
からの受信フレ−ムデ−タを通信プロトコルプログラム
が受け取り、処理または加工した後、バッファ間でデ−
タ移動を行なうことなく別の伝送路に送出できるように
した。
理部A,Bを有する装置において、二つの処理部の間に
処理部Aが管理するバッファと処理部Bが管理するバッ
ファの二つを共有させた共有バッファを設け、二つの処
理部で無駄なコピ−を行なうことなく、高速にデ−タ通
信をできるようにした。
と通信バッファを共有させるため余分なデータ移動が発
生せず高速にデータを通信する。
データを連続して送受信したり、一つのフレームデータ
を複数に分割して格納する。
通信プロトコルでフレームデータを直接授受する。
データをバスを通して直接システムメモリに転送する上
記の場合と違い、バスにかかる集中負荷を緩和すること
ができ、そのために生じるアンダーラン、オーバランエ
ラーを防ぐこともでき、さらに通信コントローラと通信
プロトコル間でフレームデータを直接授受することがで
きる。
プロトコルバッファ記述子と通信バッファ記述子をそれ
ぞれキュー構造にして使用する。
信プロトコルにたいしても伝送路との間でフレ−ムデ−
タを直接授受する。
送路にたいしても通信プロトコルとフレ−ムデ−タを直
接授受する。
間での無駄なデ−タの移動を行なうことなく、一方の伝
送路から別の伝送路にフレ−ムデ−タを通すことがで
き、高速なブリッジ、ル−タやゲ−トウェイが実現でき
る。
立した処理部間でバッファを共有させるため、余分なデ
ータ移動が発生せず高速にデータを通信する。
ート図を用いて説明する。
御システムの構成を示すブロック図である。通信制御シ
ステムは、通信プロトコルを実行するシステムプロセッ
サ1とシステムメモリ2、伝送路3を制御しながらデー
タの送受信を行う通信コントローラ4から構成される。
バス8は上記構成要素を接続するためのもので、それぞ
れの情報交換に使用する。この時、制御コード、通信デ
ータ等の情報が流れる。構成の中でシステムプロセッサ
1とシステムメモリ2で通信プロトコルの処理、アプリ
ケーションプログラムの処理及び通信制御システム全体
の総合的な制御を行う。システムメモリ2はシステムプ
ロセッサ1で動く各種プログラムコードの他に通信デー
タの蓄積部としても利用する。プログラムとしては、図
1に示すように、通信コントローラ4を制御するドライ
バ21、通信プロトコルを処理するプロトコルプログラ
ム22、アプリケーションプログラム23、ドライバ2
1とプロトコルプログラム22が使うプロトコルバッフ
ァの管理を行うバッファ管理部25がある。その他オペ
レーティングシステム等があるがここでは直接関係しな
いので省略する。
トタイプの場合の内部構造とデータ受信の動作概要につ
いて説明する。
信コントローラ4の内部構造を示す。ネットワークコン
トローラ42は伝送路3を直接制御しながらデータの送
受信を行う。バスコントローラ41は、ネットワークコ
ントローラ42を図1に示すバス8に接続するためのも
のである。ネットワークコントローラ42は、例えば、
AMD社製のAm79C900を用いるものとする。送
信の場合、バスコントローラ41はネットワークコント
ローラ42の指示により、図1に示すシステムメモリ2
の中のデータをバス8を介して読みだし、これをネット
ワークコントローラ42が伝送路3に送出する。受信の
場合、まず伝送路3からのデータをネットワークコント
ローラ42が受け取り、これをバスコントローラ41が
ネットワークコントローラ42の指示により、バス8を
介してシステムメモリ2に転送する。送受信が終了した
後は、ネットワークコントローラ42からバスコントロ
ーラ41を通してシステムプロセッサ1に送信終了割込
み信号216及び受信割込み信号217でその旨通知す
る。
信コントローラ4を使ってデータ受信を行っている様子
を示す。ドライバ21は、プロトコルプログラム22と
通信コントローラ4で共有する共有バッファ215と、
受信割込み処理部213で構成し、プロトコルプログラ
ム22はプロトコル受信キュー222と送受信処理部2
21で構成する。受信動作を簡単に説明する。最初に共
有バッファ215に受信のための空きバッファを用意し
ておく。伝送路3からデータが送られて来ると、まず通
信コントローラ4が受信データを逐次DMA(Direct Me
mory Access)機能によってバス8を介してシステムメモ
リ2の中の共有バッファ215に書き込む。受信が終了
すると、通信コントローラ4は受信割込み信号217に
よりシステムプロセッサ1に受信があったことを知らせ
る。システムプロセッサ1はこれによりドライバ21の
受信割込み処理部213を起動する。受信割込み処理部
213は受信データが入っているバッファを共有バッフ
ァ215から取り出してプロトコル受信キュー222に
つなぎ、プロトコルプログラム22の送受信処理部22
1を起動する。送受信処理部221はプロトコル受信キ
ュー222から受信データを取り出し、通信プロトコル
処理を行った後、その中からアプリケーションデータだ
けをアプリケーションプログラム23に引き渡す。共有
バッファ215をプロトコル受信キュー222に実際に
つなぐ方法としては、共有バッファ215の先頭位置を
示すポインタをプロトコル受信キュー222にセットす
ることにより行う。したがって受信データが移動するわ
けではない。
ントタイプの場合の内部構造とデータ受信の動作概要に
ついて説明する。
ントローラ4の内部構造を示す。通信コンロトーラ4
は、伝送路3を直接制御しながらデータの送受信を行う
ネットワークコントローラ45、通信コントローラ4を
バス8に接続するためのバスコントローラ43、フレー
ムデータを格納するローカルデータメモリ44、下位層
の通信プロトコルの処理及び通信コントローラ4全体の
制御を行うローカルプロセッサ46とローカルメモリ4
7から構成される。バス48はローカルプロセッサ46
とローカルメモリ47とバスコントローラ43とネット
ワークコントローラ45を接続するためのもの、バス4
9はローカルデータメモリ44とバスコントローラ43
とネットワークコントローラ45を接続するためのもの
で、それぞれの情報交換に使用する。送信の場合、バス
コントローラ43が、ローカルプロセッサ46の指示に
より図1に示すシステムメモリ2の中のデータをバス8
を介して読みだし、これをローカルデータメモリ44に
一旦蓄積する。必要に応じてローカルプロセッサ46が
これにネットワークヘッダを付加してフレームデータに
組み立てる。続いてネットワークコントローラ45がロ
ーカルプロセッサ46の指示によりこのフレームデータ
を伝送路3に送出する。一方、受信の場合は送信と逆の
動きになり、まず、ネットワークコントローラ45がロ
ーカルプロセッサ46の指示により伝送路3からのフレ
ームデータをローカルデータメモリ44に書き込み、必
要に応じてローカルプロセッサ46がネットワークヘッ
ダを取り除く。続いてバスコントローラ43がローカル
プロセッサ46の指示によりこのデータをバス8を介し
てシステムメモリ2に転送する。送受信が完了した後
は、ローカルプロセッサ46からバスコントローラ43
を通してシステムプロセッサ1に送信終了割込み信号2
16または受信割込み信号217でその旨通知する。図
15にインテリジェントタイプの通信コントローラ4を
使ってデータ受信を行っている様子を示す。ドライバ2
1とプロトコルプログラム22は図13に示すものと同
じであり、中の構成要素に対して同一番号を付けてあ
る。受信動作を簡単に説明する。最初にローカルメモリ
44と共有バッファ215に、受信のための空きバッフ
ァを用意しておく。伝送路3からデータが送られて来る
と、まずネットワークコントローラ45が受信データを
順次ローカルデータメモリ44に書き込む。受信が終了
すると、ローカルプロセッサ46が受信データからネッ
トワークヘッダを取り除き、残りをバスコントローラ4
3に指示してシステムメモリ2上の共有バッファ215
に転送する。転送が終わると、ローカルプロセッサ46
はバスコントローラ43を通して受信割込み信号217
を使ってシステムプロセッサ1に受信があったことを通
知する。システムプロッサ1はこれによりドライバ21
の受信割込み処理部213を起動する。受信割込み処理
部213は共有バッファ215の中の受信データが入っ
ているバッファをプロトコル受信キュー222につなぎ
プロトコルプログラム22の送受信処理部221を起動
する。送受信処理部221はプロトコル受信キュー22
2から受信データを取り出し、通信プロトコル処理を行
った後、その中からアプリケーションデータだけをアプ
リケーションプログラム23に引き渡す。共有バッファ
215をプロトコル受信キュー222に実際につなぐ方
法としては、共有バッファ215の先頭位置を示すポイ
ンタをプロトコル受信キュー222にセットすることに
より行う。したがって受信データが移動するわけではな
い。
15を複数のエリアで構成することもできる。この場
合、エリア単位にフレームデータを格納すれば、空きエ
リアをフレーム送受信の度に用意する必要が無くなり、
バッファ不足エラーを起こすことなくフレームデータを
連続して送受信することができる。
タを別のエリアに格納し、これをつなげて一つのフレー
ムを表現すれば、プロトコルプログラム22でプロトコ
ルヘッダの付加や取外しが容易になる。
納するためのデータバッファとプロトコルプログラム2
2がこのデータバッファを管理するためのプロトコルバ
ッファ記述子と通信コントローラ4がデータバッファを
管理するための通信バッファ記述子で構成し、プロトコ
ルバッファ記述子と通信バッファ記述子をそれぞれキュ
ー構造にする。これによりプロトコルプログラム22と
通信コントローラ4の間で通信データの授受が容易にな
る。
明する。図13、図15で説明したように、ドライバ2
1は通信コントローラ4の種類には関係がなく、ノンイ
ンテリジェントタイプとインテリジェントタイプの両方
で動くものである。
ライバ21には、送信終了割込み処理部211、送信処
理部212、受信割込み処理部213からなるプログラ
ムと、通信データを待ち行列にしてつないでおくための
送信キュー214、受信キュー215がある。送信終了
割込み処理部211と受信割込み処理部213は図1に
示す通信コントローラ4からの送信終了割込み216と
受信割込み217によって起動され、送信処理部212
はプロトコルプログラム22によって起動される。送信
キュー214と受信キュー215は、ドライバ21の中
のプログラムと通信コントローラ4の双方が共有できる
バッファを数珠繋ぎにしたものである。送信キュー21
4と受信キュー215は、言い替えると、処理の遅延が
許されるプロトコルと非同期リアルタイムで動く伝送路
3をつなぐ時間緩衝バッファでもある。送信終了割込み
処理部211、送信処理部212、受信割込み処理部2
13のフローチャートを図11、図10、図9にそれぞ
れ示す。
受信キュー215の詳細構造を表したものである。二つ
のキューは通信バッファ記述子とプロトコルバッファで
構成する。通信バッファ記述子は図1に示す通信コント
ローラ4がデータバッファをアクセスするのに必要な情
報を記憶するためのものである。一方プロトコルバッフ
ァは図1に示すバッファ管理部25で管理されており、
ドライバ21及びプロトコルプログラム22で取扱われ
るバッファである。プロトコルバッファは、バッファ記
述子とデータを格納するバッファが一体になった構造で
ある。
明する。図7の例では送信するフレームデータが二つ格
納されており、最初のフレームは(TxD00+TxD
01)のチェインになったデータ、2番目のフレームは
(TxD10)単独データである。
ァは、図7に示すように、ポインタ(if−snd)が
先頭のバッファTB00の位置を指す。バッファが存在
していなければポインタ(if−snd)は0となる。
バッファTB00,TB01,TB10は、例えば、1
12バイトのデータ格納エリアと、各種バッファ管理情
報を持ち、全体を128バイトで構成する。バッファ管
理情報のうち、ポインタ(m−next)は次のチェイ
ンデータが入っているバッファの位置を、オフセット
(m−off)はデータが格納している相対位置を、デ
ータ長(m−len)は格納されているデータの長さ
を、ポインタ(m−act)は次のフレームデータが入
っているバッファの位置を表す。バッファTB01では
オフセット(m−off)によりデータ格納エリアをペ
ージバッファTPG0にとる。ページバッファTPG0
は、例えば、4Kバイトの容量を持ち、大きなデータを
格納するときに使用する。ページバッファが使われてい
るか否かはオフセット(m−off)の値でわかる。オ
フセット(m−off)はそのバッファの先頭からデー
タが入っているところまでの相対位置を表すため、その
値がバッファの長さ、すなわち128を超えたとき、ペ
ージバッファが使われていることになる。
に示すように、例えば4ワードからなるディスクリプタ
TD00,TD01,TD10...の集まりで構成
し、リング状にして使われる。各ディスプリプタTD0
0,TD01,TD10の中で、アドレス(ADR)は
送信データが入っているバッファの先頭アドレスを、デ
ータ長(BCNT)は格納されているデータの長さを表
す。データ長(BCNT)はプロトコルバッファの中の
データ長(m−len)と同じ値となる。制御権フラグ
(DIR)は、このディスクリプタが通信コントローラ
4(DIR=1)ないしドライバ21又はプロトコルプ
ログラム22(DIR=0)によって占有されているこ
とを示す。ドライバ21はこのディスクリプタによって
指定したエリアにデータを満たした後で制御権フラグ
(DIR)を1にセットする。通信コントローラ4はバ
ッファの内容を送信した後、制御権フラグ(DIR)を
0にクリアする。先頭フラグ(ST),最終フラグ(E
N)はフレームの先頭及び最終バッファを表すのに用い
る。ST=1の時これがそのフレームの最初のバッフ
ァ、EN=1の時これがそのフレームの最終バッファで
あることを表す。図7ではディスクリプタTD00とプ
ロトコルバッファTB00,TD01とTB01,TD
10とTB10がそれぞれ同じ送信データのエリアを指
している。
キュー215は、図8に示すように、基本的には図7に
示す送信キュー214と同じ構造である。ディスクリプ
タの中のサイズ(LEN)は用意した受信バッファエリ
アの長さを表す。本受信キューを使ってデータを受信す
る場合は予め複数のフレームが入るプロトコルバッファ
とディスクリプタを作っておく必要がある。通信コント
ローラ4はフレームを受信すると、ディスクリプタが指
すエリアに順次データを格納し、ディスクリプタに受信
したデータのデータ長(BCNT)及び先頭フラグ(S
T)、最終フラグ(EN)及び制御権フラグ(DIR)
をセットする。
御装置の動作について説明する。
コルはTCP/IP(TransmissionControl Protocol/In
ternet Protocol)とIEEE802.3、IEEE80
2.2の下位プロトコルとする。伝送路3に流れるデー
タフレームは図2に示すフォーマットになっている。図
2において、データフレーム200は、フレームヘッダ
201、プロトコルヘッダ202、ユーザデータ203
及びフレームテーラ204より構成されており、フレー
ムヘッダ201には宛先アドレス情報が、フレームテー
ラ204にはデータエラーを検出するためのチェックコ
ード情報が入っている。図2の構成のうち、フレームヘ
ッダ201は、生成を図1に示すプロトコルプログラム
22で、解読を通信コントローラ4で行い、プロトコル
ヘッダ202の方は生成、解読いずれもプロトコルプロ
グラム22で行う。また、フレームテーラ204は生
成、解読いずれも通信コントローラ4で行われる。ユー
ザデータ203はアプリケーションプログラム23で使
われるものであり、アプリケーションプログラム23か
らプロトコルプログラム22に渡される。プロトコルヘ
ッダ202はIPとTCPそれぞれ図3,図4のような
構成になっている。
レームの受信動作は次のようになる。符号化されたフレ
ームを通信コントローラ4で復号し、バイト単位に組立
てる。図8に示す受信キューには、バス8を介して図2
に示すデータフレームのうちフレームヘッダ201、プ
ロトコルヘッダ202、ユーザデータ203が書き込ま
れる。この時、通信コントローラ4では図2に示すフレ
ームヘッダ201を判定し自分あてのデータフレームだ
けを受信するようにする。このとき、フレームテーラ2
04によりデータが正しいかどうかチェックも行う。デ
ータフレームが受信されると、通信コントローラ4から
受信割込み信号217でプロセッサ1に割込み、図5に
示すドライバ21の受信割込み処理部213が起動され
る。
ートを図9に示す。処理91で、図8に示すディスクリ
プタの制御権フラグ(DIR=0)をサーチして受信さ
れたプロトコルバッファを捜す。バッファが見つかる
と、処理92でこれを受信キュー215からはずし、図
6に示すプロトコル受信キュー222に接続する。キュ
ーのはずし方はプロトコルバッファのポインタ(m−n
ext),(m−act)を操作するだけで簡単にでき
る。図6に示すプロトコル受信キュー222の構造も図
7又は図8のプロトコルバッファと同じである。従っ
て、この時、データが入ったバッファをそのままつなぎ
変えるためデータの移動は発生しない。つぎに、処理9
3でバッファ管理部25から空バッファをもらい、受信
キュー215に接続しておく。この時、当然ディスクリ
プタも変更する。最後の処理94で、例えばソフトウェ
ア割込みを使ってプロトコルプログラム22を起動す
る。
動作する。プロトコル受信キュー222からデータフレ
ームを取りだして図2に示すプロトコルヘッダ202に
対する処理を行った後、フレームヘッダ201とプロト
コルヘッダ202を取りはずしてユーザデータ203だ
けをアプリケーションプログラム23に渡す。
ケーションプログラム23からデータ送信要求がある
と、プロトコルプログラム22はアプリケーションプロ
グラム23からユーザデータを受け取り、これに図2に
示すプロトコルヘッダ202とフレームヘッダ201を
付加し、図5に示す送信処理部212に渡す。プロトコ
ルプロラム22で使用するバッファはバッファ管理部2
5が管理するバッファである。
図10に示す。処理101で、プロトコルプログラム2
2から受け取ったバッファを図7に示す送信キューの最
後尾に接続する。この時当然ディスクリプタも作成す
る。続いて、処理102で通信コントローラ4を起動す
る。通常、通信コントローラ4は送信キューに接続され
ているデータを順番に伝送路3に送出するため、データ
フレームを連続して送信する場合は通信コントローラ4
を起動する必要がない。処理102は通信コントローラ
4が停止している場合を考慮したものである。
ちになっているデータフレームを順次取りだしビット列
に変え符号化して伝送路3に送り出す。この時、図2に
示すフレームテータ204を最後に付加する。送信が終
了すると通信コントローラ4は送信終了割込み信号21
6でプロセッサ1に割込み、図5に示すドライバ21の
送信終了割込み処理部211が起動される。
チャートを図11に示す。処理111で、図9に示すデ
ィスクリプタの制御権フラグ(DIR=0)をサーチし
て送信が終了したプロトコルバッファを捜す。バッファ
が見つかると、処理112でこれをキューからはずし、
バッファ管理部25に戻す。
信制御システムの構成を示すブロック図である。図1で
は、通信コントロ−ラ、通信プロトコル、アプリケ−シ
ョンプログラムがいずれも一つで構成したのに対して、
図21は通信制御装置2101に二つの通信コントロ−
ラc1,c2、二つのドライバd1,d2、二つのプロ
トコルプログラムp1,p2,三つのアプリケ−ション
プログラムa1,a2,a3を持つシステムの例であ
る。本実施例では、図21の構成の他に、図1に示すシ
ステムプロセッサ1やバス8等があるが、同じ動作をす
るのでここでは省略した。
はそれぞれ伝送路n1,n2を制御しながらデ−タの送
受信を行なう。これらの通信コントロ−ラは、図1に示
す通信コントロ−ラ4と同じものであり、図12に示す
ノンインテリジェントタイプ、図14に示すインテリジ
ェントタイプのいずれでも構わない。ドライバd1とd
2は、通信コントロ−ラc1,c2をそれぞれ制御する
と共に、プロトコルプログラムp1,p2との間でデ−
タ授受の仲介を行なう。プロトコルプログラムp1,p
2は同じ内部構成をとり、図24に示すように、送受信
処理部2401、プロトコルテ−ブル2403、プロト
コル受信キュ−2402から成る。
る。ドライバd1,d2の内部構成は、図5に示す構成
と同じであるが、受信割込み処理部213の動作だけが
異なる。受信割込み処理部213の動作フロ−チャ−ト
を図23に示す。処理2302、処理2304以外の処
理は図9に示した動作フロ−チャ−トと同じである。処
理2301で、図5に示す受信キュ−215から、受信
したデ−タフレ−ムが入っているプロトコルバッファを
抽出する。プロトコルバッファには、図2に示すデ−タ
フレ−ムのうちフレ−ムヘッダ201、プロトコルヘッ
ダ202、ユ−ザデ−タ203が入っている。処理23
02では、このデ−タフレ−ムの中のフレ−ムヘッダ2
01部分からプロトコルの種類を調べる。
2,SNAP(Sub Network AccessProtocol)のフレ−ム
ヘッダのフォ−マットを図22に示す。フレ−ムヘッダ
の中で”TYPE”フィ−ルドがプロトコル識別子にな
っており、例えば、TYPE=2048ではTCP/IP,
TYPE=2054ではARP(Address ResolutionProtoco
l)となる。処理2302では、プロトコルがわかると、
続いて、プロトコルバッファを該当するプロトコルプロ
グラムの中のプロトコル受信キュ−2402に接続す
る。この時、デ−タが入ったバッファをそのままつなぎ
変えるためデ−タの移動は発生しない。つぎに、処理2
303で空きバッファを図5に示す受信キュ−215に
接続し、処理2304で、例えばソフトウェア割込みを
使って、図21に示すp1またはp2のうち該当するプ
ロトコルプログラムを起動する。
信動作は以下のようになる。図24に示す送受信処理部
2401は、プロトコル受信キュ−2402からデ−タ
フレ−ムを取り出して、図2に示すプロトコルヘッダ2
02に対する処理を行なった後、フレ−ムヘッダ201
とプロトコルヘッダ202を取り外してユ−ザデ−タ2
03だけを図21に示すアプリケ−ションプログラムa
1,a2,a3のいずれかに渡す。
24に示すプロトコルテ−ブル2403を用いる。プロ
トコルテ−ブル2403にはあらかじめ図25に示すよ
うな内容を登録しておく。アドレスとは装置に付けた通
信窓口の番号である。受信の場合、相手アドレス、自ア
ドレスは、例えば図4に示すプロトコルヘッダの中の"S
ource Address","Destination Address"である。ポ−
ト番号とはアプリケ−ションプログラムに付けた通信窓
口の番号である。受信の場合、相手ポ−ト番号、自ポ−
ト番号は、例えば図3に示す"Source Port","Destinati
on Port"である。これらのアドレス、ポ−ト番号と、ア
プリケ−ションプログラム識別子、それに相手局がつな
がっている伝送路と1対1に対応するドライバの識別子
を、セットにして登録する。受信したデ−タフレ−ムか
ら該当するアプリケ−ションプログラムを選択するに
は、プロトコルヘッダの中から"Destination Port"を抽
出し、図25のプロトコルテ−ブルを使ってこれに対応
するアプリケ−ションプログラム識別子を求めることに
より実現できる。
信動作はつぎのようになる。図21に示すアプリケ−シ
ョンプログラムa1,a2,a3のいずれかからデ−タ
送信要求があると、プロトコルプログラムp1またはp
2は、図24に示す送受信処理部2401において、ア
プリケ−ションプログラムからユ−ザデ−タを受け取
り、これに図2に示すプロトコルヘッダ202とフレ−
ムヘッダ201を付加して図21に示すドライバd1,
d2のいずれかに渡す。ドライバの選択にも図24に示
すプロトコルテ−ブル2403を用いる。プロトコルテ
−ブル2403には、図25に示すように、自ポ−ト番
号に対応して相手のアプリケ−ションプログラムがつな
がっている伝送路すなわちドライバの識別子が登録され
ており、このドライバ識別子で使用するドライバがわか
る。
いたル−タの実施例を示す図である。通信制御装置26
01の中の構成要素は図21と同じであり、同一番号を
付けてある。伝送路n1にはステ−ション2602、伝
送路n2にはステ−ション2603が接続されており、
図26では、伝送路n1上のステ−ション2602から
通信制御装置2601を介して異なる伝送路n2上のス
テ−ション2603にデ−タを送信している様子を示し
ている。ステ−ション2602からのデ−タは伝送路n
1、通信コントロ−ラc1を通ってドライバd1の中の
共有バッファに、途中でバッファリングされることなく
実時間で入る。プロトコルプログラムp1は、このバッ
ファの中のデ−タフレ−ムに対してプロトコルヘッダと
フレ−ムヘッダを取り替えた後、このバッファをドライ
バd2の中の共有バッファにつなぐ。つなぎ変えられた
共有バッファのデ−タは、ドライバd2,通信コントロ
−ラc2,伝送路n2を通してステ−ション2603に
実時間で届けられる。ドライバd1,プロトコルプログ
ラムp1,ドライバd2の間では同じバッファが使われ
るため、バッファ間での無駄なデ−タの移動がない。
述子とプロトコルバッファの別の制御方法について説明
する。
とプロトコルバッファの関係を定義した送信用通信−プ
ロトコルバッファ変換テーブル1601の構成例を示し
た図である。送信用通信−プロトコルバッファ変換テー
ブル1601は、図5に示す送信キュー214の一部に
含まれる。
ファ変換テーブル1601の各行番号は、図7に示す通
信バッファ記述子内のディスクリプタ番号TD00、T
D01・・・に対応している。チェインフラグは、チェ
インの先頭(ST=1)か、終り(EN=1)かを示
す。各項目には、さらにディスクリプタに対応するプロ
トコルバッファのアドレス(仮想アドレス)、プロトコ
ルバッファ内のデータのアドレス(仮想アドレス及び実
アドレス)をそれぞれ格納する。 仮想アドレスとは、
仮想記憶方式を使ってアクセスされるアドレスで、一般
のプログラム中で使用される。
つけられるアドレスで、DMA(DirectMemo
ryAccess)で伝送路とシステムメモリ間のデー
タを転送する際、システムメモリのアドレスとして通信
コントローラにより使用される。
メモリ2上にある通信バッファ記述子内のディスクリプ
タをサーチし、そこに登録されている送信バッファのア
ドレスを基に送信データを伝送路に送出する。このと
き、通信コントローラ4の扱うアドレスは、実アドレス
なので、ディスクリプタ内に登録する送受信データのア
ドレスは、実アドレスでなければならない。これに対
し、プロトコルプログラム22及びドライバ21は、プ
ロトコルバッファの仮想アドレスにより、送信データを
アクセスする。このため、送信データの仮想アドレスか
ら実アドレスへの変換テーブルが必要になる。
動作フローチャートである。処理1903で、プロトコ
ルプログラム22から受け取ったバッファから、バッフ
ァの先頭アドレス(仮想アドレス)と、データの先頭ア
ドレス(仮想アドレス)を求め、送信ディスクリプタの
番号に対応する送信用通信−プロトコルバッファ変換テ
ーブル1601に値をセットする。これを図7及び図1
6の構成例で説明する。ディスクリプタTD00、TD
01、TD10に対し、プロトコルバッファTB00,
TB01,TB10より送信データの仮想アドレスTx
D00、TPG0、TxD10を求め、実アドレスR_
TxD00、R_TPG0、R_TxD10に変換した
後、ディスクリプタ番号に対応する行位置に各データを
格納する(1904)。そして、送信用通信−プロトコ
ルバッファ変換テーブル1601を基にディスクリプタ
を更新し(1905)、通信コントローラを起動する
(102)。
11の動作フローチャートである。送信終了割込み処理
部211は、送信終了したバッファを、図7に示すディ
スクリプタから抽出し(111)、ディスクリプタの当
該番号から送信用通信−プロトコルバッファ変換テーブ
ル1601を用いて、プロトコルバッファのアドレス
(仮想アドレス)を求め、図1に示すバッファ管理部2
5に戻す(1810)。そして、送信用通信−プロトコ
ルバッファ変換テーブル1601及びディスクリプタを
更新して(1811)、処理が終了する。
子とプロトコルバッファの関係を定義した受信用通信プ
ロトコルバッファ変換テーブル1701の構成例を示し
た図である。受信用通信プロトコルバッファ変換テーブ
ル1701は、図5に示す受信キュー215の一部に含
まれ、送信用通信プロトコルバッファ変換テーブル16
01と同様な項目を設定する。
13の動作フローチャートである。受信割込み217に
よって起動された受信割込み処理部213は、図8に示
すディスクリプタから受信したバッファを抽出し(9
1)、受信用通信−プロトコルバッファ変換テーブル1
701よりプロトコルバッファのアドレス(仮想アドレ
ス)を求める(2003)。このプロトコルバッファを
プロトコルプログラム22内の受信キューに登録してプ
ロトコルプログラム22を起動する(94)。つぎに、
新しい受信用のプロトコルバッファを図1に示すバッフ
ァ管理部25から確保して(2004)、受信ディスク
リプタを更新する(2005)。このとき、受信用通信
−プロトコルバッファ変換変換テーブル1701にプロ
トコルバッファのアドレス(仮想アドレス)、データ部
のアドレス(仮想アドレス、実アドレス)を登録して
(2006)、受信割込み処理は終了する。
ば、伝送路とプロトコルの間でバッファを共有するた
め、バッファ間で余分なデータ移動が発生せず、通信シ
ステム全体のスループットが向上するばかりでなく、シ
ステムプロセッサの負荷も軽くなりその実用的効果は大
きい。
ある。
ォーマット図である。
ォーマット図である。
ォーマット図である。
ある。
ある。
る。
ト図である。
ーラの内部構成図である。
ーラを使ったデータフレーム受信動作例を示す図であ
る。
の内部構成図である。
を使ったデータフレーム受信動作例を示す図である。
換テ−ブルの構成図である。
換テ−ブルの構成図である。
ト図である。
る。
である。
である。
ヘッダフォ−マット図である。
ト図である。
造図である。
ある。
成図である。
ル 1602…受信用通信−プロトコルバッファ変換テ−ブ
ル
Claims (9)
- 【請求項1】システムプロセッサとシステムメモリとバ
スで構成され、通信プロトコルをプログラムで処理する
プロセッサシステムと、伝送路を制御しながらフレーム
データの送受信を行う前記バスに接続された通信コント
ローラを有する通信制御装置において、前記システムメ
モリ上に前記通信プロトコルプログラムが管理するバッ
ファと前記通信コントローラが管理するバッファの二つ
を共有する共有バッファを設けるとともに、前記通信コ
ントローラは、前記伝送路に流れる前記フレームデータ
の書き込み及び読み出しを前記共有バッファに行うこと
を特徴とする通信制御装置。 - 【請求項2】請求項1記載の通信制御装置において、複
数のエリアで前記共有バッファを構成し、前記フレーム
データを連続して送受信し、または一つの前記フレーム
データを複数に分割して格納することを特徴とする通信
制御装置。 - 【請求項3】請求項1または請求項2記載の通信制御装
置において、前記通信コントローラを、前記伝送路を直
接制御するネットワークコントローラと、前記バスを制
御するバスコントローラとで構成するとともに、前記伝
送路からの前記フレームデータを途中でバッファリング
することなく前記共有バッファへの書き込みや読み出し
を行い、前記伝送路と前記通信プロトコルで前記フレー
ムデータを直接授受することを特徴とする通信制御装
置。 - 【請求項4】請求項1または請求項2記載の通信制御装
置において、前記通信コントローラを、前記伝送路を直
接制御するネットワークコントローラと、前記バスを制
御するバスコントローラと、ローカルプロセッサ及びロ
ーカルメモリとで構成するとともに、前記伝送路からの
前記フレームデータを前記通信コントローラ内部の前記
ローカルメモリに一旦バッファリングして、下位層の通
信プロトコル処理を行った後、前記通信コントローラが
前記共有バッファに書き込みや読みだしを行い、該通信
コントローラと前記通信プロトコルで前記フレームデー
タを授受することを特徴とする通信制御装置。 - 【請求項5】請求項1乃至請求項4記載の通信制御装置
において、前記共有バッファを、データを格納するデー
タバッファと、前記通信プロトコルプログラムが該デー
タバッファを管理するためのプロトコルバッファ記述子
と、前記通信コントローラが該データバッファを管理す
るための通信バッファ記述子とで構成するとともに、該
プロトコルバッファ記述子と該通信バッファ記述子をそ
れぞれキュー構造にしたことを特徴とする通信制御装
置。 - 【請求項6】請求項1乃至請求項5記載の通信制御装置
において、1乃至n個の通信プロトコルに対応できるよ
うに、前記通信プロトコルプログラムを通信プロトコル
の個数分設け、前記共有バッファに受信したフレ−ムデ
−タから該通信プロトコルプログラムを選択するプロト
コル選択手段を有することを特徴とする通信制御装置。 - 【請求項7】請求項1乃至請求項5記載の通信制御装置
において、1乃至m個の伝送路に対応できるように、前
記伝送路ごとに前記共有バッファを複数個設け、前記通
信プロトコルプログラムに伝送路を選択するための伝送
路選択手段を追加し、デ−タを送信する場合、該伝送路
選択手段で伝送路及び通信コントロ−ラ、共有バッファ
を選択するようにしたことを特徴とする通信制御装置。 - 【請求項8】請求項1乃至請求項5記載の手段を兼ね備
える通信制御装置において、前記通信プロトコルプログ
ラムが前記通信コントロ−ラからの受信フレ−ムデ−タ
を受け取り、処理または加工した後、バッファ間でデ−
タ移動を行なうことなく、別の前記通信コントロ−ラを
通して前記伝送路に送出することを特徴とする通信制御
装置。 - 【請求項9】非同期に動いている第1の処理部と第2の
処理部とを有する制御装置において、前記二つの処理部
の間に、第1の処理部が管理するバッファと第2の処理
部が管理するバッファの二つを共有する共有バッファを
設け、該共有バッファを、データを格納するデータバッ
ファと、第1の処理部が該データバッファを管理するた
めの第1のバッファ記述子と、第2の処理部が該データ
バッファを管理するための第2のバッファ記述子とで構
成するとともに、第1のバッファ記述子と第2のバッフ
ァ記述子をそれぞれキュー構造にしたことを特徴とする
制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16091593A JP3435736B2 (ja) | 1992-06-30 | 1993-06-30 | 通信制御装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17232592 | 1992-06-30 | ||
JP4-172325 | 1992-08-31 | ||
JP4-230915 | 1992-08-31 | ||
JP23091592 | 1992-08-31 | ||
JP16091593A JP3435736B2 (ja) | 1992-06-30 | 1993-06-30 | 通信制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06125365A true JPH06125365A (ja) | 1994-05-06 |
JP3435736B2 JP3435736B2 (ja) | 2003-08-11 |
Family
ID=27321765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16091593A Expired - Fee Related JP3435736B2 (ja) | 1992-06-30 | 1993-06-30 | 通信制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3435736B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006222864A (ja) * | 2005-02-14 | 2006-08-24 | Mitsubishi Electric Corp | ネットワーク接続装置 |
JP2010062981A (ja) * | 2008-09-05 | 2010-03-18 | Nec Commun Syst Ltd | 通信制御装置 |
US7684439B2 (en) | 2004-12-21 | 2010-03-23 | Samsung Electronics Co., Ltd | Apparatus and method for transmitting data in a communication system |
US7788391B2 (en) | 2004-03-31 | 2010-08-31 | Intel Corporation | Using a threshold value to control mid-interrupt polling |
JP2016123082A (ja) * | 2008-06-19 | 2016-07-07 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Wwan技術のためのハードウェアアクセラレーション |
-
1993
- 1993-06-30 JP JP16091593A patent/JP3435736B2/ja not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788391B2 (en) | 2004-03-31 | 2010-08-31 | Intel Corporation | Using a threshold value to control mid-interrupt polling |
US8121125B2 (en) | 2004-03-31 | 2012-02-21 | Intel Corporation | Accelerated TCP (transport control protocol) stack processing |
US8238360B2 (en) | 2004-03-31 | 2012-08-07 | Intel Corporation | Header replication in accelerated TCP (transport control protocol) stack processing |
US9602443B2 (en) | 2004-03-31 | 2017-03-21 | Intel Corporation | Header replication in accelerated TCP (transport control protocol) stack processing |
US10015117B2 (en) | 2004-03-31 | 2018-07-03 | Intel Corporation | Header replication in accelerated TCP (transport control protocol) stack processing |
US7684439B2 (en) | 2004-12-21 | 2010-03-23 | Samsung Electronics Co., Ltd | Apparatus and method for transmitting data in a communication system |
JP2006222864A (ja) * | 2005-02-14 | 2006-08-24 | Mitsubishi Electric Corp | ネットワーク接続装置 |
JP4646650B2 (ja) * | 2005-02-14 | 2011-03-09 | 三菱電機株式会社 | ネットワーク接続装置 |
JP2016123082A (ja) * | 2008-06-19 | 2016-07-07 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Wwan技術のためのハードウェアアクセラレーション |
JP2010062981A (ja) * | 2008-09-05 | 2010-03-18 | Nec Commun Syst Ltd | 通信制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3435736B2 (ja) | 2003-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6189053B1 (en) | Communication control system utilizing a shared buffer managed by high and low level protocols | |
JP3412825B2 (ja) | データネットワーク上でデータパケットをスイッチングする方法および装置 | |
JP3448067B2 (ja) | ネットワークアダプタのためのネットワークコントローラ | |
US5396490A (en) | Packet reassembly method and apparatus | |
US5619497A (en) | Method and apparatus for reordering frames | |
JP2000503828A (ja) | データネットワーク上でデータパケットをスイッチングする方法および装置 | |
JP5640234B2 (ja) | マネージド・ネットワークでのレイヤ2のパケット集約及び断片化 | |
US20040095927A1 (en) | System, method and article of manufacture for updating a switching table in a switch fabric chipset system | |
US20020172195A1 (en) | Apparatus amd method for disparate fabric data and transaction buffering within infiniband device | |
US20030115350A1 (en) | System and method for efficient handling of network data | |
US7596148B2 (en) | Receiving data from virtual channels | |
JPH07101413B2 (ja) | データブロック選択方法および制御ブロック選択システム | |
JP2000512099A (ja) | 高性能で複数の伝送パケットをサポートするためのデータ構造 | |
US6724759B1 (en) | System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system | |
JP2003521156A (ja) | 単一のリングデータバス接続構成を用いてメモリを共有する装置および方法 | |
JP2002513968A (ja) | 制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 | |
US7245615B1 (en) | Multi-link protocol reassembly assist in a parallel 1-D systolic array system | |
US5436892A (en) | Apparatus and method for packet communications | |
JP3435736B2 (ja) | 通信制御装置 | |
US7313146B2 (en) | Transparent data format within host device supporting differing transaction types | |
US6760341B1 (en) | Segmention of buffer memories for shared frame data storage among multiple network switch modules | |
JP3189784B2 (ja) | レイヤ3マルチキャスト送信方式 | |
JP2001024661A (ja) | マルチキャスト方式とその交換方法 | |
JP2953362B2 (ja) | Lanのスイッチング装置 | |
JP2003289315A (ja) | パケット転送装置およびパケット転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 5 Free format text: PAYMENT UNTIL: 20080606 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |