JP3435736B2 - Communication control device - Google Patents

Communication control device

Info

Publication number
JP3435736B2
JP3435736B2 JP16091593A JP16091593A JP3435736B2 JP 3435736 B2 JP3435736 B2 JP 3435736B2 JP 16091593 A JP16091593 A JP 16091593A JP 16091593 A JP16091593 A JP 16091593A JP 3435736 B2 JP3435736 B2 JP 3435736B2
Authority
JP
Japan
Prior art keywords
buffer
protocol
data
communication
address
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.)
Expired - Fee Related
Application number
JP16091593A
Other languages
Japanese (ja)
Other versions
JPH06125365A (en
Inventor
利一 安江
秀光 樋口
徹 堀本
幸夫 島本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP16091593A priority Critical patent/JP3435736B2/en
Publication of JPH06125365A publication Critical patent/JPH06125365A/en
Application granted granted Critical
Publication of JP3435736B2 publication Critical patent/JP3435736B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は高速通信制御システム、
特にローカルエリアネットワーク(LAN)に好適な通
信制御装置に関する。
The present invention relates to a high speed communication control system,
In particular, it relates to a communication control device suitable for a local area network (LAN).

【0002】[0002]

【従来の技術】従来、LAN等の高速な伝送路をパーソ
ナルコンピュータやワークステーションなどの情報処理
装置に接続するための通信コントローラは、その構造の
違いから、インテリジェントタイプとノンインテリジェ
ントタイプに分けられている。インテリジェントタイプ
の通信コントローラは、システムプロセッサやシステム
メモリが接続されているバスに通信コントローラを接続
するためのバスコントローラと、伝送路を直接制御しな
がらフレームデータの送受信を行うネットワークコント
ローラと、下位層のプロトコル処理を行うローカルプロ
セッサ、そして通信データを格納するためのローカルメ
モリで構成される。通信コントローラは、必要に応じて
例えばOSI参照モデルの2層以下に関する処理を行
い、3層以上はシステムプロセッサの方に任せる。伝送
路とシステムメモリとは通信コントローラを介して接続
され、フレームデータは、一旦、ローカルメモリに蓄積
された後、システムプロセッサがシステムメモリにコピ
−することになる。したがって、例えばFDDI(Fibe
r Distributed Data Interface)のように伝送能力が1
00Mbpsもある高速LAN(Local Area Network)
の場合、フレームデータをバスを通して直接システムメ
モリに転送するノンインテリジェントタイプに比べる
と、バスにかかる集中負荷を緩和することができ、その
ために生じるアンダーラン、オーバランエラーを防ぐこ
ともできる。この構成例としては、例えば特開平2−3
2650号公報に記載されている。
2. Description of the Related Art Conventionally, a communication controller for connecting a high-speed transmission line such as a LAN to an information processing device such as a personal computer or a workstation is classified into an intelligent type and a non-intelligent type due to the difference in structure. There is. The intelligent type communication controller consists of a bus controller for connecting the communication controller to the bus to which the system processor and system memory are connected, a network controller for sending and receiving frame data while directly controlling the transmission path, and a lower layer. It consists of a local processor for protocol processing and a local memory for storing communication data. The communication controller performs processing relating to, for example, the second and lower layers of the OSI reference model as necessary, and leaves the third and higher layers to the system processor. The transmission line and the system memory are connected via a communication controller, and the frame data is temporarily stored in the local memory and then copied by the system processor to the system memory. Therefore, for example, FDDI (Fibe
r Distributed Data Interface) has a transmission capacity of 1
High-speed LAN (Local Area Network) with 00 Mbps
In this case, compared with the non-intelligent type in which frame data is directly transferred to the system memory, the concentrated load on the bus can be mitigated and the underrun and overrun errors that occur can be prevented. An example of this configuration is, for example, Japanese Patent Application Laid-Open No. 2-3.
2650.

【0003】ノンインテリジェントタイプの通信コント
ローラは、ロ−カルプロセッサを持たないタイプであ
り、伝送路を直接制御しながらフレ−ムデ−タの送受信
を行なうネットワークコントローラと、通信デ−タを格
納するためのロ−カルメモリで構成される。ネットワー
クコントローラは例えばOSI参照モデルの1層(物理
層)と1.5層(メディアアクセス制御)に関する処理
を伝送路の伝送速度に合わせてリアルタイムで行う。デ
−タフレ−ムは、ネットワークコントローラにより、一
旦、ロ−カルメモリに蓄積された後、システムプロセッ
サがシステムメモリにコピ−することになる。そのた
め、ロ−カルプロセッサで下位層を処理する分、インテ
リジェントタイプに比べると性能が上がる。又、ロ−カ
ルプロセッサを持たない分安価になる。これについて
は、例えば、電子情報通信学会秋季大会論文誌(199
2年、B−433,北村他、ワ−クステ−ションに於け
る高速プロトコル処理を目指した性能評価)やIEEE
Communication Magazine(June,1989,David D.Clark他、
An Analysis of TCP Processing Overhead)に記載され
ている。
The non-intelligent type communication controller is a type without a local processor, and stores a communication controller and a network controller for directly transmitting and receiving frame data while directly controlling a transmission line. It is composed of a local memory. The network controller performs, for example, processing relating to the first layer (physical layer) and the 1.5th layer (media access control) of the OSI reference model in real time according to the transmission speed of the transmission path. The data frame is once stored in the local memory by the network controller, and then copied to the system memory by the system processor. Therefore, the lower layer is processed by the local processor, so that the performance is higher than that of the intelligent type. Further, the cost is low because there is no local processor. For this, for example, the journal of the Institute of Electronics, Information and Communication Engineers Autumn Meeting (199
2 years, B-433, Kitamura et al., Performance evaluation aimed at high-speed protocol processing in workstations) and IEEE
Communication Magazine (June, 1989, David D. Clark and others,
An Analysis of TCP Processing Overhead).

【0004】[0004]

【発明が解決しようとする課題】しかしながら上記従来
技術では、システムメモリとロ−カルメモリの間でデ−
タコピ−が生じてしまうため、その分性能が劣化してし
まう。又、システムプロセッサを用いてデ−タを移動す
るためシステムプロセッサの負荷も重くなる。
However, in the above prior art, there is a data transfer between the system memory and the local memory.
Since a copy is generated, the performance deteriorates accordingly. Further, since the data is moved using the system processor, the load on the system processor becomes heavy.

【0005】システムメモリとロ−カルメモリの間のデ
−タコピ−を、システムプロセッサを使わずに通信コン
トロ−ラで行なう場合にも問題がある。例えば、通信コ
ントローラが扱うバッファとプロトコルプログラムが扱
うバッファのフォーマットがそれぞれ異なる場合にデー
タを移し変える必要が生じる。受信を例にあげると、ま
ず、通信コントローラがシステムメモリ上に用意したバ
ッファに自分のフォーマットでデータを転送する。その
後、プロトコルプログラムが取り扱うバッファに移し変
える。通信コントローラが取り扱うバッファとは、例え
ば固定アドレスに一定サイズを割り当てた通信コントロ
ーラハードウェア専用のバッファであり、プロトコルプ
ログラムが取り扱うバッファとは、例えば小サイズのエ
リアを複数個チェインで接続し、フレーム長に応じてエ
リアの個数を変えてメモリを有効に使うようにしたバッ
ファである。このためバッファ間でデータを移動するの
に時間がかかり、その分性能が劣化してしまう。
There is also a problem when the data copy between the system memory and the local memory is performed by the communication controller without using the system processor. For example, when the buffers handled by the communication controller and the buffers handled by the protocol programs have different formats, it is necessary to transfer the data. Taking reception as an example, first, the communication controller transfers data in its own format to a buffer prepared in the system memory. After that, it is transferred to the buffer handled by the protocol program. The buffer handled by the communication controller is, for example, a buffer dedicated to the communication controller hardware in which a fixed size is allocated to a fixed address, and the buffer handled by the protocol program is, for example, a plurality of small-sized areas connected in a chain and a frame length. It is a buffer that uses the memory effectively by changing the number of areas according to. Therefore, it takes time to move the data between the buffers, and the performance deteriorates accordingly.

【0006】これらの問題は、複数の通信プロトコルを
処理するマルチプロトコル処理装置や、複数のネットワ
−クをサポ−トするマルチネットワ−ク制御装置でも存
在する。
These problems also exist in a multi-protocol processing device that processes a plurality of communication protocols and a multi-network control device that supports a plurality of networks.

【0007】本発明は、上記通信制御システムにおい
て、伝送路を制御する通信ハードウェアと通信プロトコ
ルを処理するソフトウェア間で直接データ転送が可能な
高速通信制御装置を提供することを目的とする。
It is an object of the present invention to provide a high speed communication control device in the above communication control system, which enables direct data transfer between communication hardware for controlling a transmission line and software for processing a communication protocol.

【0008】[0008]

【課題を解決するための手段】上記目的を達成するため
に、本発明の通信制御装置は、通信プロトコルを処理す
るプロトコルプログラムとそのプロトコルプログラムが
管理するプロトコルバッファと、伝送路を制御しデータ
の送受信を行う通信コントローラとその通信コントロー
ラが管理する通信バッファを備える。そして、システム
メモリ上にプロトコルバッファと通信バッファを共有さ
せた共有バッファを設け、通信プロトコルと通信コント
ローラの間で無駄なコピーを行うことなく伝送路からの
フレームデータを授受できるようにした。
In order to achieve the above object, a communication control device of the present invention includes a protocol program for processing a communication protocol, a protocol buffer managed by the protocol program, and a transmission path for controlling data. It has a communication controller for transmitting and receiving and a communication buffer managed by the communication controller. Then, a shared buffer in which the protocol buffer and the communication buffer are shared is provided on the system memory so that the frame data from the transmission path can be exchanged between the communication protocol and the communication controller without performing unnecessary copying.

【0009】さらに、共有バッファは複数のエリアで構
成した。
Further, the shared buffer is composed of a plurality of areas.

【0010】また、通信コントローラを、伝送路を直接
制御するネットワークコントローラとバスを制御するバ
スコントローラだけで構成し、伝送路からのフレームデ
ータを途中でバッファリングすることなくシステムメモ
リ上の共有バッファに転送する。
Further, the communication controller is composed only of a network controller for directly controlling the transmission path and a bus controller for controlling the bus, and the frame data from the transmission path is stored in a shared buffer on the system memory without buffering on the way. Forward.

【0011】また、通信コントローラを、伝送路を直接
制御するネットワークコントローラとバスを制御するバ
スコントローラの他に、ローカルプロセッサとローカル
メモリで構成し、伝送路からのフレームデータを通信コ
ントローラ内部のローカルメモリに一旦バッファリング
した後、通信コントローラがシステムメモリ上の共有バ
ッファに転送を行う。
In addition to the network controller for directly controlling the transmission path and the bus controller for controlling the bus, the communication controller is composed of a local processor and a local memory, and frame data from the transmission path is stored in the local memory inside the communication controller. Then, the communication controller transfers the data to a shared buffer on the system memory.

【0012】また、上記共有バッファを、データを格納
するデータバッファと通信プロトコルプログラムがデー
タバッファを管理するためのプロトコルバッファ記述子
と通信コントローラがデータバッファを管理するための
通信バッファ記述子で構成した。
The shared buffer is composed of a data buffer for storing data, a protocol buffer descriptor for the communication protocol program to manage the data buffer, and a communication buffer descriptor for the communication controller to manage the data buffer. .

【0013】また、上記共有バッファにプロトコルを選
択する手段を追加して、複数の通信プロトコルを処理で
きるようにした。
A means for selecting a protocol is added to the shared buffer so that a plurality of communication protocols can be processed.

【0014】また、上記伝送路と上記共有バッファを複
数個設けるとともに、通信プロトコルプログラムに伝送
路を選択する手段を追加して、送信デ−タを該当する伝
送路に送出できるようにした。
Further, a plurality of transmission lines and the above-mentioned shared buffer are provided, and means for selecting a transmission line is added to the communication protocol program so that the transmission data can be sent to the corresponding transmission line.

【0015】また、上記伝送路選択手段により、伝送路
からの受信フレ−ムデ−タを通信プロトコルプログラム
が受け取り、処理または加工した後、バッファ間でデ−
タ移動を行なうことなく別の伝送路に送出できるように
した。
Further, after the communication protocol program receives and processes or processes the reception frame data from the transmission path by the transmission path selection means, the data is transferred between the buffers.
Data can be sent to another transmission line without moving the data.

【0016】また、非同期で独立に動いている二つの処
理部A,Bを有する装置において、二つの処理部の間に
処理部Aが管理するバッファと処理部Bが管理するバッ
ファの二つを共有させた共有バッファを設け、二つの処
理部で無駄なコピ−を行なうことなく、高速にデ−タ通
信をできるようにした。
Further, in a device having two processing units A and B that are asynchronously and independently operating, a buffer managed by the processing unit A and a buffer managed by the processing unit B are provided between the two processing units. A shared shared buffer is provided to enable high-speed data communication without unnecessary copying between the two processing units.

【0017】[0017]

【作用】上記手段により本発明は、プロトコルバッファ
と通信バッファを共有させるため余分なデータ移動が発
生せず高速にデータを通信する。
According to the present invention, the protocol buffer and the communication buffer are shared by the above-mentioned means, so that data can be communicated at high speed without extra data movement.

【0018】また、上記手段により本発明は、フレーム
データを連続して送受信したり、一つのフレームデータ
を複数に分割して格納する。
According to the present invention, the frame data is transmitted and received continuously, or one frame data is divided into a plurality of parts and stored.

【0019】また、上記手段により本発明は、伝送路と
通信プロトコルでフレームデータを直接授受する。
According to the present invention, the frame data is directly transmitted / received by the transmission path and the communication protocol.

【0020】また、上記手段により本発明は、フレーム
データをバスを通して直接システムメモリに転送する上
記の場合と違い、バスにかかる集中負荷を緩和すること
ができ、そのために生じるアンダーラン、オーバランエ
ラーを防ぐこともでき、さらに通信コントローラと通信
プロトコル間でフレームデータを直接授受することがで
きる。
In addition, according to the present invention, unlike the above case in which the frame data is directly transferred to the system memory through the bus, the present invention can alleviate the concentrated load on the bus, and the underrun and overrun errors caused thereby can be eliminated. It is also possible to prevent this, and further, the frame data can be directly exchanged between the communication controller and the communication protocol.

【0021】また、上記手段により本発明は、上記した
プロトコルバッファ記述子と通信バッファ記述子をそれ
ぞれキュー構造にして使用する。
Further, according to the above means, the present invention uses the above-mentioned protocol buffer descriptor and communication buffer descriptor in a queue structure.

【0022】また、上記手段により本発明は、複数の通
信プロトコルにたいしても伝送路との間でフレ−ムデ−
タを直接授受する。
Further, according to the above-mentioned means, the present invention is applicable to a plurality of communication protocols, and a frame-delay with a transmission line.
Exchange data directly.

【0023】また、上記手段により本発明は、複数の伝
送路にたいしても通信プロトコルとフレ−ムデ−タを直
接授受する。
Further, according to the above means, the present invention directly transmits / receives the communication protocol and the frame data to / from a plurality of transmission lines.

【0024】また、上記手段により本発明は、バッファ
間での無駄なデ−タの移動を行なうことなく、一方の伝
送路から別の伝送路にフレ−ムデ−タを通すことがで
き、高速なブリッジ、ル−タやゲ−トウェイが実現でき
る。
Further, according to the above means, according to the present invention, frame data can be passed from one transmission line to another transmission line without wasteful movement of data between buffers. You can realize various bridges, routers and gateways.

【0025】また、上記手段により本発明は、二つの独
立した処理部間でバッファを共有させるため、余分なデ
ータ移動が発生せず高速にデータを通信する。
Further, according to the present invention, the buffer is shared between the two independent processing units by the above means, so that the data can be communicated at high speed without extra data movement.

【0026】[0026]

【実施例】以下、本発明の実施例を構成図、フローチャ
ート図を用いて説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the block diagram and the flow chart.

【0027】図1は、本発明の一実施例における通信制
御システムの構成を示すブロック図である。通信制御シ
ステムは、通信プロトコルを実行するシステムプロセッ
サ1とシステムメモリ2、伝送路3を制御しながらデー
タの送受信を行う通信コントローラ4から構成される。
バス8は上記構成要素を接続するためのもので、それぞ
れの情報交換に使用する。この時、制御コード、通信デ
ータ等の情報が流れる。構成の中でシステムプロセッサ
1とシステムメモリ2で通信プロトコルの処理、アプリ
ケーションプログラムの処理及び通信制御システム全体
の総合的な制御を行う。システムメモリ2はシステムプ
ロセッサ1で動く各種プログラムコードの他に通信デー
タの蓄積部としても利用する。プログラムとしては、図
1に示すように、通信コントローラ4を制御するドライ
バ21、通信プロトコルを処理するプロトコルプログラ
ム22、アプリケーションプログラム23、ドライバ2
1とプロトコルプログラム22が使うプロトコルバッフ
ァの管理を行うバッファ管理部25がある。その他オペ
レーティングシステム等があるがここでは直接関係しな
いので省略する。
FIG. 1 is a block diagram showing the configuration of a communication control system according to an embodiment of the present invention. The communication control system includes a system processor 1 that executes a communication protocol, a system memory 2, and a communication controller 4 that transmits and receives data while controlling a transmission path 3.
The bus 8 is for connecting the above-mentioned components and is used for exchanging information. At this time, information such as control code and communication data flows. In the configuration, the system processor 1 and the system memory 2 perform communication protocol processing, application program processing, and overall control of the communication control system. The system memory 2 is also used as a storage unit for communication data in addition to various program codes running on the system processor 1. As the program, as shown in FIG. 1, a driver 21 that controls the communication controller 4, a protocol program 22 that processes a communication protocol, an application program 23, and a driver 2
1 and a buffer management unit 25 that manages the protocol buffer used by the protocol program 22. There are other operating systems, but they are omitted here because they are not directly related.

【0028】通信コントローラ4がノンインテリジェン
トタイプの場合の内部構造とデータ受信の動作概要につ
いて説明する。
An internal structure and an outline of data reception operation when the communication controller 4 is a non-intelligent type will be described.

【0029】図12にノンインテリジェントタイプの通
信コントローラ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でその旨通知す
る。
FIG. 12 shows the internal structure of the non-intelligent type communication controller 4. The network controller 42 sends and receives data while directly controlling the transmission path 3. The bus controller 41 is for connecting the network controller 42 to the bus 8 shown in FIG. The network controller 42 is, for example,
Am79C900 manufactured by AMD is used. In the case of transmission, the bus controller 41 instructs the system memory 2 shown in FIG.
The data in the above is read out via the bus 8, and the network controller 42 sends this out to the transmission line 3. In the case of reception, first, the network controller 42 receives the data from the transmission path 3, and the bus controller 41 transfers it to the system memory 2 via the bus 8 according to an instruction from the network controller 42. After the transmission / reception is completed, the network controller 42 notifies the system processor 1 through the bus controller 41 of the transmission end interrupt signal 216 and the reception interrupt signal 217.

【0030】図13にノンインテリジェントタイプの通
信コントローラ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にセットす
ることにより行う。したがって受信データが移動するわ
けではない。
FIG. 13 shows how the non-intelligent type communication controller 4 is used to receive data. The driver 21 includes a shared buffer 215 shared by the protocol program 22 and the communication controller 4,
The reception interrupt processing unit 213 is configured, and the protocol program 22 includes a protocol reception queue 222 and a transmission / reception processing unit 2.
21. The reception operation will be briefly described. First, an empty buffer for reception is prepared in the shared buffer 215. When data is sent from the transmission line 3, first the communication controller 4 sequentially receives the received data by DMA (Direct Mean).
(mory access) function to write to the shared buffer 215 in the system memory 2 via the bus 8. When the reception is completed, the communication controller 4 notifies the system processor 1 of the reception by the reception interrupt signal 217. The system processor 1 thereby activates the reception interrupt processing unit 213 of the driver 21. The reception interrupt processing unit 213 extracts the buffer containing the reception data from the shared buffer 215 and connects it to the protocol reception queue 222, and the transmission / reception processing unit 22 of the protocol program 22.
Start 1. The transmission / reception processing unit 221 extracts the reception data from the protocol reception queue 222, performs communication protocol processing, and then passes only the application data to the application program 23. As a method of actually connecting the shared buffer 215 to the protocol reception queue 222, a pointer indicating the start position of the shared buffer 215 is set in the protocol reception queue 222. Therefore, the received data does not move.

【0031】つぎに通信コントローラ4がインテリジェ
ントタイプの場合の内部構造とデータ受信の動作概要に
ついて説明する。
Next, an internal structure and an outline of data reception operation when the communication controller 4 is an intelligent type will be described.

【0032】図14にインテリジェントタイプの通信コ
ントローラ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にセットすることに
より行う。したがって受信データが移動するわけではな
い。
FIG. 14 shows the internal structure of the intelligent type communication controller 4. Communication controller 4
Is a network controller 45 that transmits and receives data while directly controlling the transmission path 3, a bus controller 43 that connects the communication controller 4 to the bus 8, a local data memory 44 that stores frame data, and a communication protocol of a lower layer. Local processor 46 and local memory 4 for controlling the processing and communication controller 4 as a whole
It consists of 7. Bus 48 is local processor 46
For connecting the local memory 47, the bus controller 43, and the network controller 45, the bus 4
9 is a local data memory 44 and a bus controller 43
And the network controller 45, and are used for exchanging information. In the case of transmission, the bus controller 43 sends the data in the system memory 2 shown in FIG.
Is read out via the, and is temporarily stored in the local data memory 44. If necessary, the local processor 46 adds a network header to this and assembles it into frame data. Then, the network controller 45 sends this frame data to the transmission line 3 according to an instruction from the local processor 46. On the other hand, in the case of reception, the operation is opposite to that of transmission. First, the network controller 45 writes the frame data from the transmission path 3 to the local data memory 44 according to an instruction from the local processor 46, and the local processor 46 causes the network to operate as needed. Remove the header. Subsequently, the bus controller 43 transfers this data to the system memory 2 via the bus 8 according to an instruction from the local processor 46. After the transmission / reception is completed, the local processor 46 changes the bus controller 43.
Transmission end interrupt signal 2 to system processor 1 through
16 or the reception interrupt signal 217 is used to notify that effect. FIG. 15 shows how data is received using the intelligent type communication controller 4. Driver 2
1 and the protocol program 22 are the same as those shown in FIG. 13, and the constituent elements therein are given the same numbers. The reception operation will be briefly described. First, an empty buffer for reception is prepared in the local memory 44 and the shared buffer 215. When data is sent from the transmission line 3, first, the network controller 45 sequentially writes the received data in the local data memory 44. When the reception is completed, the local processor 46 removes the network header from the received data and leaves the rest in the bus controller 4
3 to the shared buffer 215 on the system memory 2
Transfer to. When the transfer is complete, the local processor 46
Receives the interrupt signal 217 through the bus controller 43.
Is used to notify the system processor 1 of the reception. As a result, the system processor 1 has the driver 21
The reception interrupt processing unit 213 is activated. The reception interrupt processing unit 213 connects the buffer containing the received data in the shared buffer 215 to the protocol reception queue 222 and activates the transmission / reception processing unit 221 of the protocol program 22. The transmission / reception processing unit 221 uses the protocol reception queue 22.
After receiving the received data from the data No. 2 and performing the communication protocol processing, only the application data is delivered to the application program 23 from the data. As a method of actually connecting the shared buffer 215 to the protocol reception queue 222, a pointer indicating the head position of the shared buffer 215 is set in the protocol reception queue 222. Therefore, the received data does not move.

【0033】図13、図15において、共有バッファ2
15を複数のエリアで構成することもできる。この場
合、エリア単位にフレームデータを格納すれば、空きエ
リアをフレーム送受信の度に用意する必要が無くなり、
バッファ不足エラーを起こすことなくフレームデータを
連続して送受信することができる。
In FIGS. 13 and 15, the shared buffer 2
It is also possible to configure 15 in a plurality of areas. In this case, if the frame data is stored in area units, it becomes unnecessary to prepare an empty area each time frame transmission / reception is performed.
Frame data can be continuously transmitted and received without causing a buffer shortage error.

【0034】プロトコルヘッダとアプリケーションデー
タを別のエリアに格納し、これをつなげて一つのフレー
ムを表現すれば、プロトコルプログラム22でプロトコ
ルヘッダの付加や取外しが容易になる。
By storing the protocol header and the application data in different areas and connecting them to represent one frame, the protocol program 22 can easily add or remove the protocol header.

【0035】また、共有バッファ215を、データを格
納するためのデータバッファとプロトコルプログラム2
2がこのデータバッファを管理するためのプロトコルバ
ッファ記述子と通信コントローラ4がデータバッファを
管理するための通信バッファ記述子で構成し、プロトコ
ルバッファ記述子と通信バッファ記述子をそれぞれキュ
ー構造にする。これによりプロトコルプログラム22と
通信コントローラ4の間で通信データの授受が容易にな
る。
The shared buffer 215 is used as a data buffer for storing data and a protocol program 2.
2 is composed of a protocol buffer descriptor for managing this data buffer and a communication buffer descriptor for managing the data buffer by the communication controller 4, and the protocol buffer descriptor and the communication buffer descriptor have a queue structure. This facilitates the exchange of communication data between the protocol program 22 and the communication controller 4.

【0036】つぎにドライバ21について更に詳細に説
明する。図13、図15で説明したように、ドライバ2
1は通信コントローラ4の種類には関係がなく、ノンイ
ンテリジェントタイプとインテリジェントタイプの両方
で動くものである。
Next, the driver 21 will be described in more detail. As described with reference to FIGS. 13 and 15, the driver 2
1 is irrelevant to the type of the communication controller 4 and operates both as a non-intelligent type and as an intelligent type.

【0037】ドライバ21の内部構成を図5に示す。ド
ライバ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にそれぞ
れ示す。
The internal structure of the driver 21 is shown in FIG. The driver 21 has a program including a transmission end interrupt processing unit 211, a transmission processing unit 212, and a reception interrupt processing unit 213, and a transmission queue 214 and a reception queue 215 for connecting communication data in a queue. The transmission end interrupt processing unit 211 and the reception interrupt processing unit 213 are activated by the transmission end interrupt 216 and the reception interrupt 217 from the communication controller 4 shown in FIG.
Is activated by the protocol program 22. The transmission queue 214 and the reception queue 215 are a series of buffers that can be shared by both the program in the driver 21 and the communication controller 4. Send queue 21
In other words, the reception buffer 4 and the reception queue 215 are also a time buffer buffer that connects the protocol that allows a delay in processing and the transmission path 3 that operates in asynchronous real time. Transmission end interrupt processing unit 211, transmission processing unit 212, reception interrupt processing unit 2
Flowcharts of No. 13 are shown in FIGS. 11, 10 and 9, respectively.

【0038】図7、図8は、図5の送信キュー214、
受信キュー215の詳細構造を表したものである。二つ
のキューは通信バッファ記述子とプロトコルバッファで
構成する。通信バッファ記述子は図1に示す通信コント
ローラ4がデータバッファをアクセスするのに必要な情
報を記憶するためのものである。一方プロトコルバッフ
ァは図1に示すバッファ管理部25で管理されており、
ドライバ21及びプロトコルプログラム22で取扱われ
るバッファである。プロトコルバッファは、バッファ記
述子とデータを格納するバッファが一体になった構造で
ある。
FIGS. 7 and 8 show the transmission queue 214 of FIG.
6 illustrates a detailed structure of the reception queue 215. The two queues consist of a communication buffer descriptor and a protocol buffer. The communication buffer descriptor is for storing information necessary for the communication controller 4 shown in FIG. 1 to access the data buffer. On the other hand, the protocol buffer is managed by the buffer management unit 25 shown in FIG.
This is a buffer handled by the driver 21 and the protocol program 22. The protocol buffer has a structure in which a buffer descriptor and a buffer that stores data are integrated.

【0039】まず、図7の送信キュー214について説
明する。図7の例では送信するフレームデータが二つ格
納されており、最初のフレームは(TxD00+TxD
01)のチェインになったデータ、2番目のフレームは
(TxD10)単独データである。
First, the transmission queue 214 of FIG. 7 will be described. In the example of FIG. 7, two pieces of frame data to be transmitted are stored, and the first frame is (TxD00 + TxD
01) chained data, the second frame is (TxD10) independent data.

【0040】送信キュー214の中のプロトコルバッフ
ァは、図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を超えたとき、ペ
ージバッファが使われていることになる。
The protocol buffer in the transmission queue 214 indicates the position of the buffer TB00 where the pointer (if-snd) is at the head, as shown in FIG. If the buffer does not exist, the pointer (if-snd) becomes 0.
The buffers TB00, TB01, TB10 are, for example, 1
It has a 12-byte data storage area and various buffer management information, and is composed of 128 bytes. In the buffer management information, the pointer (m-next) is the position of the buffer containing the next chain data, the offset (m-off) is the relative position where the data is stored, and the data length (m-len). Indicates the length of the stored data, and the pointer (m-act) indicates the position of the buffer that stores the next frame data. In the buffer TB01, the data storage area is set in the page buffer TPG0 by the offset (m-off). Page buffer TPG0
Has a capacity of, for example, 4 Kbytes and is used when storing large data. Whether or not the page buffer is used can be known from the offset (m-off) value. Since the offset (m-off) represents the relative position from the beginning of the buffer to the place where the data is stored, when the value exceeds the buffer length, that is, 128, it means that the page buffer is being used. Become.

【0041】送信キューの通信バッファ記述子は、図7
に示すように、例えば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がそれぞれ同じ送信データのエリアを指
している。
The communication buffer descriptor of the transmission queue is shown in FIG.
, The descriptors TD00, TD01, TD10. . . It is composed of a group of and is used in a ring shape. Each descriptor TD0
Of 0, TD01, and TD10, the address (ADR) represents the start address of the buffer containing the transmission data, and the data length (BCNT) represents the length of the stored data. The data length (BCNT) has the same value as the data length (m-len) in the protocol buffer. The control right flag (DIR) indicates that this descriptor is occupied by the communication controller 4 (DIR = 1) or the driver 21 or the protocol program 22 (DIR = 0). The driver 21 sets the control right flag (DIR) to 1 after filling the area specified by this descriptor. After transmitting the contents of the buffer, the communication controller 4 clears the control right flag (DIR) to 0. First flag (ST), last flag (E
N) is used to represent the beginning and end buffers of a frame. When ST = 1, this is the first buffer of the frame, and when EN = 1, this is the last buffer of the frame. In FIG. 7, the descriptor TD00 and protocol buffers TB00, TD01 and TB01, TD
10 and TB10 respectively indicate the same transmission data area.

【0042】つぎに受信キューについて説明する。受信
キュー215は、図8に示すように、基本的には図7に
示す送信キュー214と同じ構造である。ディスクリプ
タの中のサイズ(LEN)は用意した受信バッファエリ
アの長さを表す。本受信キューを使ってデータを受信す
る場合は予め複数のフレームが入るプロトコルバッファ
とディスクリプタを作っておく必要がある。通信コント
ローラ4はフレームを受信すると、ディスクリプタが指
すエリアに順次データを格納し、ディスクリプタに受信
したデータのデータ長(BCNT)及び先頭フラグ(S
T)、最終フラグ(EN)及び制御権フラグ(DIR)
をセットする。
Next, the reception queue will be described. As shown in FIG. 8, the reception queue 215 has basically the same structure as the transmission queue 214 shown in FIG. The size (LEN) in the descriptor represents the length of the prepared reception buffer area. When receiving data using this reception queue, it is necessary to create a protocol buffer and descriptor in which a plurality of frames are stored in advance. Upon receiving the frame, the communication controller 4 sequentially stores the data in the area indicated by the descriptor, and the data length (BCNT) and the head flag (S) of the data received in the descriptor.
T), final flag (EN) and control right flag (DIR)
Set.

【0043】以上のように構成された本実施例の通信制
御装置の動作について説明する。
The operation of the communication control apparatus of this embodiment configured as above will be described.

【0044】便宜上、本通信制御装置が扱う通信プロト
コルは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のような
構成になっている。
For convenience, the communication protocol handled by this communication control device is TCP / IP (Transmission Control Protocol / In).
ternet Protocol) and IEEE802.3, IEEE80
It is a lower level protocol of 2.2. The data frame flowing through the transmission path 3 has the format shown in FIG. In FIG. 2, the data frame 200 includes a frame header 201, a protocol header 202, and user data 203.
And a frame tailor 204. The frame header 201 contains destination address information and the frame tailor 204 contains check code information for detecting a data error. In the configuration of FIG. 2, the frame header 201 is generated by the protocol program 22 shown in FIG. 1 and decoded by the communication controller 4, and the protocol header 202 is generated and decoded by the protocol program 22. The frame tailor 204 is generated and decrypted by the communication controller 4. The user data 203 is used by the application program 23, and is passed from the application program 23 to the protocol program 22. The protocol header 202 has IP and TCP configurations as shown in FIGS. 3 and 4, respectively.

【0045】図1において、伝送路3から来たデータフ
レームの受信動作は次のようになる。符号化されたフレ
ームを通信コントローラ4で復号し、バイト単位に組立
てる。図8に示す受信キューには、バス8を介して図2
に示すデータフレームのうちフレームヘッダ201、プ
ロトコルヘッダ202、ユーザデータ203が書き込ま
れる。この時、通信コントローラ4では図2に示すフレ
ームヘッダ201を判定し自分あてのデータフレームだ
けを受信するようにする。このとき、フレームテーラ2
04によりデータが正しいかどうかチェックも行う。デ
ータフレームが受信されると、通信コントローラ4から
受信割込み信号217でプロセッサ1に割込み、図5に
示すドライバ21の受信割込み処理部213が起動され
る。
In FIG. 1, the receiving operation of the data frame coming from the transmission line 3 is as follows. The encoded frame is decoded by the communication controller 4 and assembled in byte units. The reception queue shown in FIG. 8 is connected to the reception queue shown in FIG.
The frame header 201, the protocol header 202, and the user data 203 of the data frame shown in are written. At this time, the communication controller 4 judges the frame header 201 shown in FIG. 2 and receives only the data frame addressed to itself. At this time, frame tailor 2
It also checks whether the data is correct according to 04. When the data frame is received, the communication controller 4 interrupts the processor 1 with a reception interrupt signal 217, and the reception interrupt processing unit 213 of the driver 21 shown in FIG. 5 is activated.

【0046】受信割込み処理部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を起動す
る。
FIG. 9 shows an operation flowchart of the reception interrupt processing unit 213. In process 91, the control right flag (DIR = 0) of the descriptor shown in FIG. 8 is searched for the received protocol buffer. When the buffer is found, it is removed from the reception queue 215 in process 92 and is connected to the protocol reception queue 222 shown in FIG. How to remove the queue is the protocol buffer pointer (mn
This can be done simply by operating ext) and (m-act). The structure of the protocol reception queue 222 shown in FIG. 6 is also the same as that of the protocol buffer of FIG. 7 or 8. Therefore, at this time, the buffer containing the data is reconnected and the data is not moved. Next, process 9
In step 3, an empty buffer is received from the buffer management unit 25 and is connected to the reception queue 215. At this time, naturally, the descriptor is also changed. In the final process 94, the protocol program 22 is activated using, for example, a software interrupt.

【0047】プロトコルプログラム22はつぎのように
動作する。プロトコル受信キュー222からデータフレ
ームを取りだして図2に示すプロトコルヘッダ202に
対する処理を行った後、フレームヘッダ201とプロト
コルヘッダ202を取りはずしてユーザデータ203だ
けをアプリケーションプログラム23に渡す。
The protocol program 22 operates as follows. After taking out the data frame from the protocol reception queue 222 and processing the protocol header 202 shown in FIG. 2, the frame header 201 and the protocol header 202 are removed and only the user data 203 is passed to the application program 23.

【0048】送信動作は受信と逆の動作になる。アプリ
ケーションプログラム23からデータ送信要求がある
と、プロトコルプログラム22はアプリケーションプロ
グラム23からユーザデータを受け取り、これに図2に
示すプロトコルヘッダ202とフレームヘッダ201を
付加し、図5に示す送信処理部212に渡す。プロトコ
ルプロラム22で使用するバッファはバッファ管理部2
5が管理するバッファである。
The transmitting operation is the reverse of the receiving operation. When there is a data transmission request from the application program 23, the protocol program 22 receives the user data from the application program 23, adds the protocol header 202 and the frame header 201 shown in FIG. 2 to this, and sends it to the transmission processing unit 212 shown in FIG. hand over. The buffer used in the protocol program 22 is the buffer management unit 2
A buffer 5 manages.

【0049】送信処理部212の動作フローチャートを
図10に示す。処理101で、プロトコルプログラム2
2から受け取ったバッファを図7に示す送信キューの最
後尾に接続する。この時当然ディスクリプタも作成す
る。続いて、処理102で通信コントローラ4を起動す
る。通常、通信コントローラ4は送信キューに接続され
ているデータを順番に伝送路3に送出するため、データ
フレームを連続して送信する場合は通信コントローラ4
を起動する必要がない。処理102は通信コントローラ
4が停止している場合を考慮したものである。
FIG. 10 shows an operation flowchart of the transmission processing section 212. In process 101, the protocol program 2
The buffer received from No. 2 is connected to the end of the transmission queue shown in FIG. At this time, naturally, the descriptor is also created. Then, in step 102, the communication controller 4 is activated. Normally, the communication controller 4 sequentially sends the data connected to the transmission queue to the transmission path 3, so that when the data frames are continuously transmitted, the communication controller 4
You don't have to start. The process 102 takes into consideration the case where the communication controller 4 is stopped.

【0050】通信コントローラ4は送信キューで送信待
ちになっているデータフレームを順次取りだしビット列
に変え符号化して伝送路3に送り出す。この時、図2に
示すフレームテータ204を最後に付加する。送信が終
了すると通信コントローラ4は送信終了割込み信号21
6でプロセッサ1に割込み、図5に示すドライバ21の
送信終了割込み処理部211が起動される。
The communication controller 4 sequentially takes out the data frames waiting for transmission in the transmission queue, converts them into bit strings, encodes them, and sends them out to the transmission line 3. At this time, the frame data 204 shown in FIG. 2 is added to the end. When the transmission is completed, the communication controller 4 sends the transmission end interrupt signal 21
At 6, the processor 1 is interrupted, and the transmission end interrupt processing unit 211 of the driver 21 shown in FIG. 5 is activated.

【0051】送信終了割込み処理部211の動作フロー
チャートを図11に示す。処理111で、図9に示すデ
ィスクリプタの制御権フラグ(DIR=0)をサーチし
て送信が終了したプロトコルバッファを捜す。バッファ
が見つかると、処理112でこれをキューからはずし、
バッファ管理部25に戻す。
FIG. 11 shows an operation flowchart of the transmission end interrupt processing section 211. In process 111, the control right flag (DIR = 0) of the descriptor shown in FIG. 9 is searched for the protocol buffer for which transmission has been completed. When the buffer is found, process 112 dequeues it,
It returns to the buffer management unit 25.

【0052】図21は、本発明の別の実施例における通
信制御システムの構成を示すブロック図である。図1で
は、通信コントロ−ラ、通信プロトコル、アプリケ−シ
ョンプログラムがいずれも一つで構成したのに対して、
図21は通信制御装置2101に二つの通信コントロ−
ラc1,c2、二つのドライバd1,d2、二つのプロ
トコルプログラムp1,p2,三つのアプリケ−ション
プログラムa1,a2,a3を持つシステムの例であ
る。本実施例では、図21の構成の他に、図1に示すシ
ステムプロセッサ1やバス8等があるが、同じ動作をす
るのでここでは省略した。
FIG. 21 is a block diagram showing the configuration of a communication control system according to another embodiment of the present invention. In FIG. 1, the communication controller, the communication protocol, and the application program are all configured as one.
FIG. 21 shows a communication control device 2101 with two communication controllers.
This is an example of a system having the drivers c1 and c2, two drivers d1 and d2, two protocol programs p1 and p2, and three application programs a1, a2, and a3. In this embodiment, in addition to the configuration shown in FIG. 21, there is the system processor 1 and the bus 8 shown in FIG. 1, but since they operate in the same manner, they are omitted here.

【0053】図21に示す通信コントロ−ラc1とc2
はそれぞれ伝送路n1,n2を制御しながらデ−タの送
受信を行なう。これらの通信コントロ−ラは、図1に示
す通信コントロ−ラ4と同じものであり、図12に示す
ノンインテリジェントタイプ、図14に示すインテリジ
ェントタイプのいずれでも構わない。ドライバd1とd
2は、通信コントロ−ラc1,c2をそれぞれ制御する
と共に、プロトコルプログラムp1,p2との間でデ−
タ授受の仲介を行なう。プロトコルプログラムp1,p
2は同じ内部構成をとり、図24に示すように、送受信
処理部2401、プロトコルテ−ブル2403、プロト
コル受信キュ−2402から成る。
Communication controllers c1 and c2 shown in FIG.
Transmits and receives data while controlling the transmission lines n1 and n2, respectively. These communication controllers are the same as the communication controller 4 shown in FIG. 1, and may be either the non-intelligent type shown in FIG. 12 or the intelligent type shown in FIG. Drivers d1 and d
2 controls the communication controllers c1 and c2, respectively, and also communicates with the protocol programs p1 and p2.
Mediation of data transfer. Protocol program p1, p
24 has the same internal structure, and as shown in FIG. 24, is composed of a transmission / reception processing unit 2401, a protocol table 2403, and a protocol reception queue-2402.

【0054】まず、ドライバd1,d2について説明す
る。ドライバd1,d2の内部構成は、図5に示す構成
と同じであるが、受信割込み処理部213の動作だけが
異なる。受信割込み処理部213の動作フロ−チャ−ト
を図23に示す。処理2302、処理2304以外の処
理は図9に示した動作フロ−チャ−トと同じである。処
理2301で、図5に示す受信キュ−215から、受信
したデ−タフレ−ムが入っているプロトコルバッファを
抽出する。プロトコルバッファには、図2に示すデ−タ
フレ−ムのうちフレ−ムヘッダ201、プロトコルヘッ
ダ202、ユ−ザデ−タ203が入っている。処理23
02では、このデ−タフレ−ムの中のフレ−ムヘッダ2
01部分からプロトコルの種類を調べる。
First, the drivers d1 and d2 will be described. The internal configurations of the drivers d1 and d2 are the same as the configurations shown in FIG. 5, but only the operation of the reception interrupt processing unit 213 is different. The operation flow chart of the reception interrupt processing unit 213 is shown in FIG. Processing other than processing 2302 and processing 2304 is the same as the operation flow chart shown in FIG. In process 2301, the protocol buffer containing the received data frame is extracted from the reception queue 215 shown in FIG. The protocol buffer contains a frame header 201, a protocol header 202, and user data 203 of the data frames shown in FIG. Process 23
02, the frame header 2 in this data frame
Check the protocol type from the 01 part.

【0055】IEEE802.3,IEEE802.
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のうち該当するプ
ロトコルプログラムを起動する。
IEEE 802.3, IEEE 802.
2, the format of the frame header of SNAP (Sub Network Access Protocol) is shown in FIG. The "TYPE" field is a protocol identifier in the frame header. For example, in TYPE = 2048, TCP / IP,
When TYPE = 2054, ARP (Address Resolution Protocol)
l). In process 2302, when the protocol is known,
Then, the protocol buffer is connected to the protocol reception queue-2402 in the corresponding protocol program. At this time, since the buffer containing the data is reconnected as it is, the data does not move. Next, process 2
At 303, the empty buffer is connected to the reception queue 215 shown in FIG. 5, and at step 2304, the corresponding protocol program of p1 or p2 shown in FIG.

【0056】プロトコルプログラムp1またはp2の受
信動作は以下のようになる。図24に示す送受信処理部
2401は、プロトコル受信キュ−2402からデ−タ
フレ−ムを取り出して、図2に示すプロトコルヘッダ2
02に対する処理を行なった後、フレ−ムヘッダ201
とプロトコルヘッダ202を取り外してユ−ザデ−タ2
03だけを図21に示すアプリケ−ションプログラムa
1,a2,a3のいずれかに渡す。
The receiving operation of the protocol program p1 or p2 is as follows. The transmission / reception processing unit 2401 shown in FIG. 24 extracts the data frame from the protocol reception queue-2402, and the protocol header 2 shown in FIG.
After the processing for 02, the frame header 201
User data 2 by removing the protocol header 202
Application program a shown in FIG.
1, a2, or a3.

【0057】アプリケ−ションプログラムの選択には図
24に示すプロトコルテ−ブル2403を用いる。プロ
トコルテ−ブル2403にはあらかじめ図25に示すよ
うな内容を登録しておく。アドレスとは装置に付けた通
信窓口の番号である。受信の場合、相手アドレス、自ア
ドレスは、例えば図4に示すプロトコルヘッダの中の"S
ource Address","Destination Address"である。ポ−
ト番号とはアプリケ−ションプログラムに付けた通信窓
口の番号である。受信の場合、相手ポ−ト番号、自ポ−
ト番号は、例えば図3に示す"Source Port","Destinati
on Port"である。これらのアドレス、ポ−ト番号と、ア
プリケ−ションプログラム識別子、それに相手局がつな
がっている伝送路と1対1に対応するドライバの識別子
を、セットにして登録する。受信したデ−タフレ−ムか
ら該当するアプリケ−ションプログラムを選択するに
は、プロトコルヘッダの中から"Destination Port"を抽
出し、図25のプロトコルテ−ブルを使ってこれに対応
するアプリケ−ションプログラム識別子を求めることに
より実現できる。
The protocol table 2403 shown in FIG. 24 is used to select the application program. The contents as shown in FIG. 25 are registered in advance in the protocol table 2403. The address is the number of the communication window attached to the device. In the case of reception, the other party address and the own address are, for example, "S" in the protocol header shown in FIG.
ource Address "," Destination Address ".
The service number is the number of the communication window attached to the application program. When receiving, the partner port number, own port
For example, "Source Port", "Destinati" shown in FIG.
on port ". These addresses, port numbers, application program identifiers, and driver identifiers that have a one-to-one correspondence with the transmission path connected to the partner station are registered as a set. In order to select the corresponding application program from the data frame, the "Destination Port" is extracted from the protocol header and the corresponding application program is created using the protocol table in FIG. It can be realized by obtaining the identifier.

【0058】プロトコルプログラムp1またはp2の送
信動作はつぎのようになる。図21に示すアプリケ−シ
ョンプログラムa1,a2,a3のいずれかからデ−タ
送信要求があると、プロトコルプログラムp1またはp
2は、図24に示す送受信処理部2401において、ア
プリケ−ションプログラムからユ−ザデ−タを受け取
り、これに図2に示すプロトコルヘッダ202とフレ−
ムヘッダ201を付加して図21に示すドライバd1,
d2のいずれかに渡す。ドライバの選択にも図24に示
すプロトコルテ−ブル2403を用いる。プロトコルテ
−ブル2403には、図25に示すように、自ポ−ト番
号に対応して相手のアプリケ−ションプログラムがつな
がっている伝送路すなわちドライバの識別子が登録され
ており、このドライバ識別子で使用するドライバがわか
る。
The transmission operation of the protocol program p1 or p2 is as follows. When a data transmission request is issued from any of the application programs a1, a2, a3 shown in FIG. 21, the protocol program p1 or p
2 receives user data from the application program in the transmission / reception processing unit 2401 shown in FIG. 24, and the protocol header 202 and the frame shown in FIG.
Driver d1 shown in FIG.
Pass to any of d2. The protocol table 2403 shown in FIG. 24 is also used for driver selection. In the protocol table 2403, as shown in FIG. 25, the transmission path, that is, the identifier of the driver to which the application program of the partner is connected is registered in correspondence with the own port number. Know which driver to use.

【0059】図26は、図21の通信制御システムを用
いたル−タの実施例を示す図である。通信制御装置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の間では同じバッファが使われ
るため、バッファ間での無駄なデ−タの移動がない。
FIG. 26 is a diagram showing an embodiment of a router using the communication control system of FIG. Communication controller 26
The components in 01 are the same as those in FIG. 21 and are given the same numbers. A station 2602 is connected to the transmission line n1, and a station 2603 is connected to the transmission line n2.
FIG. 26 shows a state in which data is transmitted from the station 2602 on the transmission line n1 to the station 2603 on a different transmission line n2 via the communication control device 2601. The data from the station 2602 is the transmission line n.
1. Through the communication controller c1, enter the shared buffer in the driver d1 in real time without being buffered on the way. The protocol program p1 replaces the protocol header with the frame header for the data frame in this buffer, and then connects this buffer to the shared buffer in the driver d2. The reconnected shared buffer data is delivered to the station 2603 in real time through the driver d2, the communication controller c2, and the transmission line n2. Since the same buffer is used for the driver d1, the protocol program p1, and the driver d2, there is no useless movement of data between the buffers.

【0060】つぎに、図7、図8に示す通信バッファ記
述子とプロトコルバッファの別の制御方法について説明
する。
Next, another control method of the communication buffer descriptor and the protocol buffer shown in FIGS. 7 and 8 will be described.

【0061】図16は、図7に示す通信バッファ記述子
とプロトコルバッファの関係を定義した送信用通信−プ
ロトコルバッファ変換テーブル1601の構成例を示し
た図である。送信用通信−プロトコルバッファ変換テー
ブル1601は、図5に示す送信キュー214の一部に
含まれる。
FIG. 16 is a diagram showing a configuration example of the transmission communication-protocol buffer conversion table 1601 which defines the relationship between the communication buffer descriptor and the protocol buffer shown in FIG. The transmission communication-protocol buffer conversion table 1601 is included in a part of the transmission queue 214 shown in FIG.

【0062】図16に示す送信用通信−プロトコルバッ
ファ変換テーブル1601の各行番号は、図7に示す通
信バッファ記述子内のディスクリプタ番号TD00、T
D01・・・に対応している。チェインフラグは、チェ
インの先頭(ST=1)か、終り(EN=1)かを示
す。各項目には、さらにディスクリプタに対応するプロ
トコルバッファのアドレス(仮想アドレス)、プロトコ
ルバッファ内のデータのアドレス(仮想アドレス及び実
アドレス)をそれぞれ格納する。 仮想アドレスとは、
仮想記憶方式を使ってアクセスされるアドレスで、一般
のプログラム中で使用される。
The line numbers of the transmission communication-protocol buffer conversion table 1601 shown in FIG. 16 are the descriptor numbers TD00 and T in the communication buffer descriptor shown in FIG.
It corresponds to D01 .... The chain flag indicates whether the chain is at the beginning (ST = 1) or the end (EN = 1). Each item further stores the address (virtual address) of the protocol buffer corresponding to the descriptor and the address (virtual address and real address) of the data in the protocol buffer. What is a virtual address?
An address that is accessed using the virtual memory system and is used in general programs.

【0063】実アドレスとは、メモリに対して物理的に
つけられるアドレスで、DMA(DirectMemo
ryAccess)で伝送路とシステムメモリ間のデー
タを転送する際、システムメモリのアドレスとして通信
コントローラにより使用される。
The real address is an address physically attached to the memory, and is a DMA (DirectMemo).
It is used by the communication controller as an address of the system memory when transferring data between the transmission path and the system memory by using (ryAccess).

【0064】送信時、通信コントローラ4は、システム
メモリ2上にある通信バッファ記述子内のディスクリプ
タをサーチし、そこに登録されている送信バッファのア
ドレスを基に送信データを伝送路に送出する。このと
き、通信コントローラ4の扱うアドレスは、実アドレス
なので、ディスクリプタ内に登録する送受信データのア
ドレスは、実アドレスでなければならない。これに対
し、プロトコルプログラム22及びドライバ21は、プ
ロトコルバッファの仮想アドレスにより、送信データを
アクセスする。このため、送信データの仮想アドレスか
ら実アドレスへの変換テーブルが必要になる。
At the time of transmission, the communication controller 4 searches the descriptor in the communication buffer descriptor in the system memory 2 and sends the transmission data to the transmission line based on the address of the transmission buffer registered therein. At this time, since the address handled by the communication controller 4 is the real address, the address of the transmission / reception data registered in the descriptor must be the real address. On the other hand, the protocol program 22 and the driver 21 access the transmission data by the virtual address of the protocol buffer. Therefore, a conversion table from the virtual address of the transmission data to the real address is required.

【0065】図19は、図5に示す送信処理部212の
動作フローチャートである。処理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)。
FIG. 19 is an operation flowchart of the transmission processing section 212 shown in FIG. In process 1903, the start address (virtual address) of the buffer and the start address (virtual address) of the data are obtained from the buffer received from the protocol program 22, and the transmission communication-protocol buffer conversion table 1601 corresponding to the number of the transmission descriptor. Set the value to. This is shown in FIG. 7 and FIG.
The configuration example of No. 6 will be described. Descriptors TD00, TD
01, TD10 to the protocol buffer TB00,
Virtual address Tx of transmission data from TB01 and TB10
D00, TPG0, TxD10 are calculated, and the real address R_
After converting into TxD00, R_TPG0, and R_TxD10, each data is stored in the row position corresponding to the descriptor number (1904). Then, the descriptor is updated based on the transmission communication-protocol buffer conversion table 1601 (1905), and the communication controller is activated (102).

【0066】図18は、図5に示す送信終了割込み部2
11の動作フローチャートである。送信終了割込み処理
部211は、送信終了したバッファを、図7に示すディ
スクリプタから抽出し(111)、ディスクリプタの当
該番号から送信用通信−プロトコルバッファ変換テーブ
ル1601を用いて、プロトコルバッファのアドレス
(仮想アドレス)を求め、図1に示すバッファ管理部2
5に戻す(1810)。そして、送信用通信−プロトコ
ルバッファ変換テーブル1601及びディスクリプタを
更新して(1811)、処理が終了する。
FIG. 18 shows the transmission end interrupt section 2 shown in FIG.
11 is an operation flowchart of 11. The transmission end interrupt processing unit 211 extracts the buffer for which transmission has been completed from the descriptor shown in FIG. 7 (111), and uses the transmission communication-protocol buffer conversion table 1601 from the corresponding number of the descriptor to determine the address of the protocol buffer (virtual Address), and the buffer management unit 2 shown in FIG.
Return to 5 (1810). Then, the transmission communication-protocol buffer conversion table 1601 and the descriptor are updated (1811), and the process ends.

【0067】図17は、図8に示す、通信バッファ記述
子とプロトコルバッファの関係を定義した受信用通信プ
ロトコルバッファ変換テーブル1701の構成例を示し
た図である。受信用通信プロトコルバッファ変換テーブ
ル1701は、図5に示す受信キュー215の一部に含
まれ、送信用通信プロトコルバッファ変換テーブル16
01と同様な項目を設定する。
FIG. 17 is a diagram showing a configuration example of the reception communication protocol buffer conversion table 1701 which defines the relationship between the communication buffer descriptor and the protocol buffer shown in FIG. The reception communication protocol buffer conversion table 1701 is included in a part of the reception queue 215 shown in FIG.
Set the same items as 01.

【0068】図20は、図5に示す受信割込み処理部2
13の動作フローチャートである。受信割込み217に
よって起動された受信割込み処理部213は、図8に示
すディスクリプタから受信したバッファを抽出し(9
1)、受信用通信−プロトコルバッファ変換テーブル1
701よりプロトコルバッファのアドレス(仮想アドレ
ス)を求める(2003)。このプロトコルバッファを
プロトコルプログラム22内の受信キューに登録してプ
ロトコルプログラム22を起動する(94)。つぎに、
新しい受信用のプロトコルバッファを図1に示すバッフ
ァ管理部25から確保して(2004)、受信ディスク
リプタを更新する(2005)。このとき、受信用通信
−プロトコルバッファ変換変換テーブル1701にプロ
トコルバッファのアドレス(仮想アドレス)、データ部
のアドレス(仮想アドレス、実アドレス)を登録して
(2006)、受信割込み処理は終了する。
FIG. 20 shows the reception interrupt processing unit 2 shown in FIG.
13 is an operation flowchart of 13. The reception interrupt processing unit 213 activated by the reception interrupt 217 extracts the buffer received from the descriptor shown in FIG. 8 (9
1), reception communication-protocol buffer conversion table 1
The address (virtual address) of the protocol buffer is obtained from 701 (2003). This protocol buffer is registered in the reception queue in the protocol program 22 and the protocol program 22 is activated (94). Next,
A new reception protocol buffer is secured from the buffer management unit 25 shown in FIG. 1 (2004), and the reception descriptor is updated (2005). At this time, the address (virtual address) of the protocol buffer and the address (virtual address, real address) of the data section are registered in the reception communication-protocol buffer conversion conversion table 1701 (2006), and the reception interrupt process ends.

【0069】[0069]

【発明の効果】以上説明してきたように、本発明によれ
ば、伝送路とプロトコルの間でバッファを共有するた
め、バッファ間で余分なデータ移動が発生せず、通信シ
ステム全体のスループットが向上するばかりでなく、シ
ステムプロセッサの負荷も軽くなりその実用的効果は大
きい。
As described above, according to the present invention, since the buffer is shared between the transmission line and the protocol, extra data movement does not occur between the buffers, and the throughput of the entire communication system is improved. Not only that, but the load on the system processor is lightened, and its practical effect is great.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施例を示す通信制御装置の構成図で
ある。
FIG. 1 is a configuration diagram of a communication control device showing an embodiment of the present invention.

【図2】本発明の処理方法を説明するためのフレームフ
ォーマット図である。
FIG. 2 is a frame format diagram for explaining a processing method of the present invention.

【図3】本発明の処理方法を説明するためのフレームフ
ォーマット図である。
FIG. 3 is a frame format diagram for explaining a processing method of the present invention.

【図4】本発明の処理方法を説明するためのフレームフ
ォーマット図である。
FIG. 4 is a frame format diagram for explaining a processing method of the present invention.

【図5】本発明のドライバの内部構成図である。FIG. 5 is an internal configuration diagram of a driver of the present invention.

【図6】本発明のプロトコルプログラムの内部構成図で
ある。
FIG. 6 is an internal configuration diagram of a protocol program of the present invention.

【図7】本発明の送信キューの内部構成図である。FIG. 7 is an internal configuration diagram of a transmission queue of the present invention.

【図8】本発明の受信キューの内部構成図である。FIG. 8 is an internal configuration diagram of a reception queue of the present invention.

【図9】本発明の受信割込み処理のフローチャート図で
ある。
FIG. 9 is a flowchart of the reception interrupt processing of the present invention.

【図10】本発明の送信処理のフローチャート図であ
る。
FIG. 10 is a flowchart of a transmission process of the present invention.

【図11】本発明の送信終了割込み処理のフローチャー
ト図である。
FIG. 11 is a flowchart of a transmission end interrupt process of the present invention.

【図12】本発明のノンインテリジェント通信コントロ
ーラの内部構成図である。
FIG. 12 is an internal configuration diagram of the non-intelligent communication controller of the present invention.

【図13】本発明のノンインテリジェント通信コントロ
ーラを使ったデータフレーム受信動作例を示す図であ
る。
FIG. 13 is a diagram showing an example of a data frame receiving operation using the non-intelligent communication controller of the present invention.

【図14】本発明のインテリジェント通信コントローラ
の内部構成図である。
FIG. 14 is an internal configuration diagram of the intelligent communication controller of the present invention.

【図15】本発明のインテリジェント通信コントローラ
を使ったデータフレーム受信動作例を示す図である。
FIG. 15 is a diagram showing an example of a data frame receiving operation using the intelligent communication controller of the present invention.

【図16】本発明の送信用通信−プロトコルバッファ変
換テ−ブルの構成図である。
FIG. 16 is a configuration diagram of a transmission communication-protocol buffer conversion table of the present invention.

【図17】本発明の受信用通信−プロトコルバッファ変
換テ−ブルの構成図である。
FIG. 17 is a configuration diagram of a reception communication-protocol buffer conversion table of the present invention.

【図18】本発明の送信終了割込み処理のフローチャー
ト図である。
FIG. 18 is a flowchart of the transmission end interrupt process of the present invention.

【図19】本発明の送信処理のフローチャート図であ
る。
FIG. 19 is a flowchart of a transmission process of the present invention.

【図20】本発明の受信割込み処理のフローチャート図
である。
FIG. 20 is a flowchart of the reception interrupt processing of the present invention.

【図21】本発明の実施例を示す通信制御装置の構成図
である。
FIG. 21 is a configuration diagram of a communication control device showing an embodiment of the present invention.

【図22】本発明の処理方法を説明するためのフレ−ム
ヘッダフォ−マット図である。
FIG. 22 is a frame header format diagram for explaining the processing method of the present invention.

【図23】本発明の別の受信割込み処理のフロ−チャ−
ト図である。
FIG. 23 is a flowchart of another reception interrupt processing of the present invention.
FIG.

【図24】本発明の別のプロトコルプログラムの内部構
造図である。
FIG. 24 is an internal structure diagram of another protocol program of the present invention.

【図25】本発明のプロトコルテ−ブルの内部構成図で
ある。
FIG. 25 is an internal configuration diagram of a protocol table of the present invention.

【図26】本発明の別の実施例を示す通信制御装置の構
成図である。
FIG. 26 is a configuration diagram of a communication control device showing another embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1…プロセッサ、 2…システムメモリ、 3…伝送路、 4…通信コントローラ、 21…ドライバ、 22…プロトコルプログラム、 23…アプリケーションプログラム、 25…バッファ管理部。 2101…通信制御装置 2403…プロトコルテ−ブル 2601…通信制御装置 1601…送信用通信−プロトコルバッファ変換テ−ブ
ル 1602…受信用通信−プロトコルバッファ変換テ−ブ
DESCRIPTION OF SYMBOLS 1 ... Processor, 2 ... System memory, 3 ... Transmission line, 4 ... Communication controller, 21 ... Driver, 22 ... Protocol program, 23 ... Application program, 25 ... Buffer management part. 2101 ... Communication control device 2403 ... Protocol table 2601 ... Communication control device 1601 ... Transmission communication-protocol buffer conversion table 1602 ... Reception communication-protocol buffer conversion table

───────────────────────────────────────────────────── フロントページの続き (72)発明者 堀本 徹 神奈川県横浜市戸塚区戸塚町5030番地株 式会社日立製作所ソフトウェア開発本部 内 (72)発明者 島本 幸夫 神奈川県横浜市戸塚区吉田町292番地株 式会社日立製作所マイクロエレクトロニ クス機器開発研究所内 (56)参考文献 特開 昭61−232746(JP,A) 特開 平3−91339(JP,A) (58)調査した分野(Int.Cl.7,DB名) H04L 13/08 H04L 29/00 G06F 15/16 G06F 13/36 H04L 12/40 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Toru Horimoto, Inventor Toru Horimoto, 5030 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Within Software Development Division, Hitachi, Ltd. (72) Yukio Shimamoto 292 Yoshida-cho, Totsuka-ku, Yokohama, Kanagawa Hitachi, Ltd. Microelectronics equipment development laboratory (56) Reference JP-A-61-232746 (JP, A) JP-A-3-91339 (JP, A) (58) Fields investigated (Int.Cl . 7 , DB name) H04L 13/08 H04L 29/00 G06F 15/16 G06F 13/36 H04L 12/40

Claims (9)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】伝送路と接続され、前記伝送路に対してデ
ータフレームを送受信する通信コントローラと、少なく
とも通信プロトコルの処理及び前記通信コントローラの
制御を行う処理部とからなる通信制御装置において、 前記伝送路に対して送受信されるデータフレームが格納
されるバッファを有し、前記バッファは、前記データフ
レームを格納するデータバッファと前記処理部がデータ
バッファを管理するためのプロトコルバッファ記述子と
からなる複数のプロトコルバッファと、前記通信コント
ローラが各プロトコルバッファ内のデータバッファをア
クセスするのに必要な情報を記憶する通信バッファ記述
子とから構成され、前記通信バッファ記述子は、前記各
プロトコルバッファ内のデータバッファの第1のアドレ
ス情報を含み、前記プロトコルバッファ記述子は前記各
プロトコルバッファ内のデータバッファの第2のアドレ
ス情報を含み、前記伝送路からデータフレームを受信す
る場合、前記通信コントローラは前記通信バッファ記述
子に含まれる任意の前記第1のアドレス情報により示さ
れるデータバッファに受信データフレームを格納すると
共に前記処理部に受信割込み信号を送り、前記処理部
は、前記受信割込み信号を受信すると、前記受信データ
フレームが格納された前記データバッファを含むプロト
コルバッファの前記プロトコルバッファ記述子に含まれ
る前記第2のアドレス情報に従って前記受信データフレ
ームを読み出すことを特徴とする通信制御装置。
1. A transmission line connected to a transmission line,
Communication controller that sends and receives data frames
And communication protocol processing and the communication controller
In a communication control device including a control processing unit, a data frame transmitted / received to / from the transmission path is stored.
A buffer that is stored in the data buffer.
Data buffer for storing frames and the processing unit
With a protocol buffer descriptor to manage the buffer
Multiple protocol buffers consisting of
Roller assigns a data buffer within each protocol buffer.
A communication buffer description that stores the information needed to access
And the communication buffer descriptor is
First address of data buffer in protocol buffer
Information, the protocol buffer descriptor includes
The second address of the data buffer in the protocol buffer
Data frame from the transmission path
Communication buffer description,
Indicated by any of the first address information contained in the child
When the received data frame is stored in the data buffer
Both send a reception interrupt signal to the processing unit, and the processing unit
When the reception interrupt signal is received, the reception data
A protocol including the data buffer in which a frame is stored
Included in the protocol buffer descriptor of the Col buffer
The received data frame according to the second address information.
A communication control device characterized by reading a program.
【請求項2】請求項1に記載の通信制御装置において、
前記伝送路にデータフレームを送出する場合、前記処理
部は送信すべきデータフレームを任意のプロトコルバッ
ファのデータバッファに格納し、前記通信コントローラ
は前記通信バッファ記述子に含まれる前記第1のアドレ
ス情報のうちの前記送信すべきデータフレームが格納さ
れた前記データバッファの前記第1のアドレス情報に従
って前記送信すべきデータフレームを読み出し、前記伝
送路に送出することを特徴とする通信制御装置。
2. The communication control device according to claim 1,
When transmitting a data frame to the transmission path, the processing
The part sends the data frame to be transmitted to an arbitrary protocol buffer.
The communication controller is stored in the data buffer of
Is the first address contained in the communication buffer descriptor.
Of the data information to be transmitted is stored.
According to the first address information of the data buffer
Read the data frame to be transmitted,
A communication control device characterized in that it is sent to a sending path.
【請求項3】請求項1または2に記載の通信制御装置に
おいて、前記プロトコルバッファ記述子に含まれる前記
第2のアドレス情報は前記プロトコルバッファの先頭ア
ドレスからの相対位置を示すことを特徴とする通信制御
装置。
3. The communication control device according to claim 1 or 2.
In the protocol buffer descriptor,
The second address information is the first address of the protocol buffer.
Communication control characterized by showing relative position from dress
apparatus.
【請求項4】請求項1に記載の通信制御装置において、
更に、前記プロトコルバッファ毎に前記プロトコルバッ
ファの先頭の仮想アドレス、前記プロトコルバッファ内
の前記データバッファの仮想アドレス及び実アドレスを
それぞれ対応付けて記憶している記憶部を有し、前記通
信バッファ記述子に含まれる前記第1のアドレス情報は
前記データバッファの実アドレスであり、前記プロトコ
ルバッファ記述子に含まれる前記第2のアドレス情報は
前記プロトコルバッファの先頭の仮想アドレスからの相
対位置を示し、前記伝送路からデータフレームを受信し
た場合、前記処理部は、前記受信データフレームが格納
された前記データバッファの第1のアドレス情報と対応
付けられて前記記憶部に記憶されている前記プロトコル
バッファの仮想アドレスを求め、前記求めた仮想アドレ
スと前記第2のアドレス情報によって前記受信データフ
レームを読み出すことを特徴とする通信制御装置。
4. The communication control device according to claim 1,
In addition, the protocol buffer for each protocol buffer is
Virtual address at the beginning of the file, in the protocol buffer
The virtual and real addresses of the data buffer
Each has a storage unit that stores it in association with each other.
The first address information included in the signal buffer descriptor is
The real address of the data buffer, and the protocol
The second address information contained in the buffer buffer descriptor is
Phase from the virtual address at the beginning of the protocol buffer
Indicates a pair position and receives a data frame from the transmission line
When the processing unit stores the received data frame,
Corresponding to the first address information of the data buffer
The protocol attached and stored in the storage unit
The virtual address of the buffer is obtained, and the virtual address obtained is obtained.
And the received data frame according to the second address information.
A communication control device characterized by reading a frame.
【請求項5】請求項2に記載の通信制御装置において、
前記通信バッファ記述子に含まれる前記第1のアドレス
情報は前記データバッファの実アドレスであり、前記プ
ロトコルバッファ記述子に含まれる前記第2のアドレス
情報は前記プロトコルバッファの先頭の仮想アドレスか
らの相対位置を示し、前記伝送路にデータフレームを送
出する場合、前記処理部は、前記送信すべきデータフレ
ームを格納した前記プロトコルバッファ及び前記データ
バッファの仮想アドレスをそれぞれ求め、前記データバ
ッファの前記仮想アドレスを実アドレスに変換し、前記
変換した実アドレスにより前記通信バッファ記述子に含
まれる前記第1のアドレス情報を更新し、前記通信コン
トローラを起動することを特徴とする通信制御装置。
5. The communication control device according to claim 2,
The first address contained in the communication buffer descriptor
The information is the real address of the data buffer,
The second address contained in the protocol buffer descriptor
Is the information the virtual address at the beginning of the protocol buffer?
The relative position of
When sending out, the processing unit
Protocol buffer storing the memory and the data
Obtain the virtual address of each buffer and
Convert the virtual address of the buffer to a real address,
Included in the communication buffer descriptor by the converted real address
The first address information included in the communication
A communication control device characterized by activating a troller.
【請求項6】伝送路と接続され、前記伝送路に対してデ
ータフレームを送受信する通信コントローラと、前記通
信コントローラを制御するドライバ部と、通信プロトコ
ルを処理するプロトコル処理部とを備えた通信制御装置
において、 前記プロトコル処理部はプロトコル受信キューと送受信
処理部からなり、前記ドライバ部は割込み処理部と送受
信キューからなり、前記送受信キューは、前記伝送路に
対して送受信されるデータフレームを格納するためのデ
ータバッファと前記プロトコル処理部がデータバッファ
を管理するためのプロトコルバッファ記述子とから構成
される複数のプロトコルバッファと、前記通信コントロ
ーラが各 データバッファをアクセスするのに必要な情報
を記憶する通信バッファ記述子からなり、前記通信バッ
ファ記述子は、各データバッファの第1のアドレス情報
を含み、前記プロトコルバッファ記述子は各データバッ
ファの第2のアドレス情報を含み、前記伝送路からデー
タフレームを受信する場合、前記通信コントローラは前
記通信バッファ記述子に含まれる任意の第1のアドレス
情報により示されるデータバッファに受信データフレー
ムを格納すると共に前記ドライバ部に通知し、前記割込
み処理部は前記受信データフレームが格納された前記デ
ータバッファを含むプロトコルバッファのアドレス情報
を前記プロトコル受信キューにセットし、前記送受信処
理部は前記プロトコル受信キューにセットされた前記ア
ドレス情報が示す前記プロトコルバッファに含まれる前
記第2のアドレス情報に従って前記受信データフレーム
を読み出すことを特徴とする通信制御装置。
6. A transmission line is connected to the transmission line and is connected to the transmission line.
Communication controller for sending and receiving data frames and the communication
Driver unit that controls the communication controller and communication protocol
Communication control device including a protocol processing unit for processing
In, the protocol processing unit transmits and receives to and from the protocol reception queue.
It consists of a processing unit, and the driver unit sends and receives an interrupt processing unit.
And a transmission / reception queue on the transmission line.
Data for storing data frames sent and received
Data buffer and the protocol processing unit are data buffers
Consists of a protocol buffer descriptor for managing
A plurality of protocol buffers, and the communication controller
Necessary for the controller to access each data buffer
Is stored in the communication buffer descriptor.
The file descriptor is the first address information of each data buffer.
, The protocol buffer descriptor is
Data including the second address information of
The communication controller is
Any first address contained in the communication buffer descriptor
Received data frame in the data buffer indicated by the information
Store the program and notify the driver section,
The processing unit is configured to store the received data frame.
Address information of protocol buffer including data buffer
Is set in the protocol reception queue, and the transmission / reception processing is performed.
The management unit is configured to store the protocol set in the protocol reception queue.
Before being included in the protocol buffer indicated by the dress information
The received data frame according to the second address information
A communication control device for reading out.
【請求項7】請求項6に記載の通信制御装置において、
前記ドライバ部は更に送信処理部を含み、前記伝送路に
データフレームを送出する場合、前記送信処理部は前記
送受信処理部から送信すべきデータフレームを受け取っ
て任意のプロトコルバッファのデータバッファに格納
し、前記通信コントローラは前記送受信キューの通信バ
ッファ記述子のうちの前記送信すべきデータフレームが
格納された前記データバッファの第1のアドレス情報に
従って前記送信すべきデータフレームを読み出し、前記
伝送路に送出することを特徴とする通信制御装置。
7. The communication control device according to claim 6,
The driver unit further includes a transmission processing unit, and
When transmitting a data frame, the transmission processing unit
Receives the data frame to be transmitted from the transmission / reception processing unit
Stored in the data buffer of any protocol buffer
However, the communication controller is configured to communicate with the communication queue of the transmission / reception queue.
The data frame to be transmitted in the buffer
In the first address information of the stored data buffer
Therefore, read the data frame to be transmitted,
A communication control device characterized by transmitting to a transmission path.
【請求項8】請求項6に記載の通信制御装置において、
更に、他の通信プロトコルを処理する少なくとも1つの
他のプロトコル処理部と、互いに異なるアプリケーショ
ンを処理する複数のアプリケーション処理部とを備え、
各プロトコル処理部は更にポート情報とアプリケーショ
ン識別情報とを対応付けて登録するプロトコル登録部を
含み、前記割込み処理部は前記受信データフレームに含
まれるプロトコル識別情報から通信プロトコルの種類を
判別し、前記判別した種類の通信プロトコルを処理する
プロトコル処理部の前記プロトコル受信キューに前記受
信データフレームが格納されたプロトコルバッファのア
ドレス情報をセットし、前記プロトコル処理部の前記送
受信処理部は前記プロトコル受信キューにセットされた
前記アドレス情報が示す前記プロトコルバッファに含ま
れる前記第2のアドレス情報に従って前記受信データフ
レームを読み出し、前記受信データフレームに 含まれる
ポート情報と対応付けられて前記プロトコル登録部に登
録されているアプリケーション識別情報を求め、前記求
めたアプリケーション識別情報により識別されるアプリ
ケーションを処理するアプリケーション処理部に前記受
信データフレームに含まれるデータを渡すことを特徴と
する通信制御装置。
8. The communication control device according to claim 6,
In addition, at least one other communication protocol handling
Different protocol processors and different applications
And a plurality of application processing units for processing
Each protocol processing unit also adds port information and application information.
The protocol registration unit that registers the
And the interrupt processing unit includes the received data frame.
The type of communication protocol from the protocol identification information
Discriminate and process the determined type of communication protocol
The protocol reception queue of the protocol processing unit receives the reception
Of the protocol buffer that stores the received data frame.
Set the dress information and send it to the protocol processor.
The reception processing unit is set in the protocol reception queue
Included in the protocol buffer indicated by the address information
The received data frame according to the second address information
Read the frame and include it in the received data frame
Registered in the protocol registration section in association with the port information.
Obtain the recorded application identification information,
Application identified by the application identification information
Application to the application processing unit that processes the application.
Characterized by passing the data contained in the received data frame
Communication control device.
【請求項9】請求項6に記載の通信制御装置において、
更に、他の伝送路と接続され、前記他の伝送路に対して
データフレームを送受信する少なくとも1つの他の通信
コントローラと、前記少なくとも1つの他の通信コント
ローラを制御する少なくとも1つの他のドライバ部とを
備え、前記プロトコル処理部は更にポート情報とドライ
バ識別情報とを対応付けて登録するプロトコル登録部を
含み、各ドライバ部は更に送信処理部を含み、何れかの
伝送路にデータフレームを送出する場合、前記送受信処
理部は送信すべきデータフレームに含まれるポート情報
と対応付けられて前記プロトコル登録部に登録されてい
るドライバ識別情報を求め、前記求めたドライバ識別情
報により識別されるドライバ部の前記送信処理部に前記
送信すべきデータフレームを渡し、前記送信処理部は前
記送信すべきデータフレームを任意のプロトコルバッフ
ァのデータバッファに格納し、前記識別されたドライバ
部に制御される通信コントローラは前記送受信キューの
通信バッファ記述子のうちの前記送信すべきデータフレ
ームが格納された前記データバッファの第1のアドレス
情報に従って前記送信すべきデータフレームを読み出
し、接続されている伝送路に送出することを特徴とする
通信制御装置。
9. The communication control device according to claim 6,
Furthermore, it is connected to another transmission line and
At least one other communication for sending and receiving data frames
A controller and the at least one other communication controller
And at least one other driver part for controlling the roller
The protocol processing unit further includes port information and
A protocol registration unit that registers the ID information in association with
In addition, each driver unit further includes a transmission processing unit.
When sending a data frame to the transmission line,
The science section is the port information included in the data frame to be transmitted.
Is registered in the protocol registration unit in association with
Driver identification information obtained from the
To the transmission processing unit of the driver unit identified by the information.
The data frame to be transmitted is passed, and the transmission processing unit
Data frame to be transmitted can be sent to any protocol buffer.
Stored in the data buffer of the
The communication controller controlled by the unit
The data frame to be transmitted in the communication buffer descriptor
First address of the data buffer in which the memory is stored
Read the data frame to be transmitted according to the information
And sends it to the connected transmission line.
Communication control device.
JP16091593A 1992-06-30 1993-06-30 Communication control device Expired - Fee Related JP3435736B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16091593A JP3435736B2 (en) 1992-06-30 1993-06-30 Communication control device

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP17232592 1992-06-30
JP4-172325 1992-08-31
JP23091592 1992-08-31
JP4-230915 1992-08-31
JP16091593A JP3435736B2 (en) 1992-06-30 1993-06-30 Communication control device

Publications (2)

Publication Number Publication Date
JPH06125365A JPH06125365A (en) 1994-05-06
JP3435736B2 true JP3435736B2 (en) 2003-08-11

Family

ID=27321765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16091593A Expired - Fee Related JP3435736B2 (en) 1992-06-30 1993-06-30 Communication control device

Country Status (1)

Country Link
JP (1) JP3435736B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation 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
JP4646650B2 (en) * 2005-02-14 2011-03-09 三菱電機株式会社 Network connection device
US8898448B2 (en) * 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
JP5051657B2 (en) * 2008-09-05 2012-10-17 日本電気通信システム株式会社 Communication control device

Also Published As

Publication number Publication date
JPH06125365A (en) 1994-05-06

Similar Documents

Publication Publication Date Title
US6189053B1 (en) Communication control system utilizing a shared buffer managed by high and low level protocols
JP3448067B2 (en) Network controller for network adapter
US5396490A (en) Packet reassembly method and apparatus
JP3412825B2 (en) Method and apparatus for switching data packets over a data network
US5619497A (en) Method and apparatus for reordering frames
US7401126B2 (en) Transaction switch and network interface adapter incorporating same
CN1593041B (en) Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
JP2543325B2 (en) Method and apparatus for multicasting data in a communication system
US5058109A (en) Exclusionary network adapter apparatus and related method
JP2000503828A (en) Method and apparatus for switching data packets over a data network
US20030115350A1 (en) System and method for efficient handling of network data
JP3684405B2 (en) Data structure to support multiple transmission packets with high performance
JPH04233055A (en) Server architecture for terminal apparatus
US7124231B1 (en) Split transaction reordering circuit
JPH07101413B2 (en) Data block selection method and control block selection system
JP2003500927A (en) Apparatus and method for programmable memory access slot assignment
CA2330014C (en) Method of mapping fibre channel frames based on control and type header fields
JP2003521156A (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US7245615B1 (en) Multi-link protocol reassembly assist in a parallel 1-D systolic array system
JP3435736B2 (en) Communication control device
US5436892A (en) Apparatus and method for packet communications
US7313146B2 (en) Transparent data format within host device supporting differing transaction types
US5799155A (en) Method of data communication and system for carrying out the method
JP3189784B2 (en) Layer 3 multicast transmission method
JP2003289315A (en) Packet transfer apparatus and packet transfer method

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080606

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080606

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100606

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100606

Year of fee payment: 7

FPAY Renewal fee payment (event 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