JPH06274425A - Network adaptor device - Google Patents

Network adaptor device

Info

Publication number
JPH06274425A
JPH06274425A JP5057511A JP5751193A JPH06274425A JP H06274425 A JPH06274425 A JP H06274425A JP 5057511 A JP5057511 A JP 5057511A JP 5751193 A JP5751193 A JP 5751193A JP H06274425 A JPH06274425 A JP H06274425A
Authority
JP
Japan
Prior art keywords
pointer
transmission
reception
command
main memory
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.)
Pending
Application number
JP5057511A
Other languages
Japanese (ja)
Inventor
Hidenori Inai
秀則 井内
Takeshi Aimoto
毅 相本
Hideki Murayama
秀樹 村山
Shoichi Murase
彰一 村瀬
Tetsuhiko Okada
哲彦 岡田
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 JP5057511A priority Critical patent/JPH06274425A/en
Publication of JPH06274425A publication Critical patent/JPH06274425A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

PURPOSE:To realize the network adaptor device for realizing an inter-node communication being low in cost, and low in latency. CONSTITUTION:The device consists of a network adaptor for adding a network function to a computer, and is provided with a transmitting FIFO buffer 103 for transmitting data to a network, a receiving FIFO buffer 104 for receiving the data from the network, dual port buffer memories 201, 202 of at least two faces, and a first control means 204 for executing like a pipeline a data transfer from the receiving FIFO buffer 104 to one face of the dual port buffer memory, and a data transfer from the other face to a main storage, at the time of reception. Also, this device is provided with a second control means 204 for executing like a pipeline a data transfer from the main storage to one face of the dual port buffer memory, and a data transfer from the other face to the transmitting FIFO buffer 103, at the time of transmission.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、ネットワークで接続さ
れた計算機システムに於ける、各計算機上のネットワー
クアダプタ装置の高速DMAデータ転送方式に係り、特
に、ネットワークに対する送信要求とネットワークから
の受信要求が同時に発生した場合のノード間の低レイテ
ンシィ通信機能の実現に適したネットワークアダプタ装
置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a high speed DMA data transfer system of a network adapter device on each computer in a computer system connected by a network, and more particularly to a transmission request to a network and a reception request from the network. The present invention relates to a network adapter device suitable for realizing a low-latency communication function between nodes when both occur simultaneously.

【0002】[0002]

【従来の技術】ネットワークアダプタ装置を従来のスタ
ンドアローン計算機に付加することによりネットワーク
で接続された計算機システムを構築するという動向は、
イーサーネット、トークンリング、ARCNET、FD
DI(Fiber Distributed DataInterface)等のネットワ
ークアダプタ装置の開発により広く知られている。これ
らのネットワークアダプタ装置は基本的にバス型の構造
を持っているためにネットワーク上で送信と受信を同時
に行うことはできない。バス型構造のネットワークアダ
プタ装置では、通信プロトコル、及びI/Oバスのオー
バヘッド等の問題によりネットワークの瞬間速度が計算
機の実効スループットより大きくなってしまうことがあ
るために、ネットワークアダプタ装置上に比較的大容量
のバッファメモリを置くのが通常であった。例えば、通
常のイーサネットアダプタ装置はボード上に8kバイト
から64Kバイトのバッファメモリを有することにより
実効的に計算機のスループットをネットワークの速度に
見合うようにしている。実際にパケットフィルタ等の複
雑な機能をネットワークデバイスドライバに付加する
と、8kバイトのバッファメモリではパケットをとりこ
ぼしていたが、16Kバイトではパケットをとりこぼさ
ないということがある。このために従来の低速CPU、
I/Oバスを用いてより複雑な処理をデバイスドライバ
で行うようになると、ネットワークの速度が高くなるに
従ってバッファメモリの容量も大きくする必要があるも
のと考えられていた。
2. Description of the Related Art The trend of constructing a computer system connected by a network by adding a network adapter device to a conventional stand-alone computer has been described.
Ethernet, Token Ring, ARCNET, FD
It is widely known for the development of network adapter devices such as DI (Fiber Distributed Data Interface). Since these network adapter devices basically have a bus type structure, transmission and reception cannot be performed simultaneously on the network. In the bus type network adapter device, the instantaneous network speed may become higher than the effective throughput of the computer due to problems such as communication protocol and I / O bus overhead. It was common to have a large amount of buffer memory. For example, a normal Ethernet adapter device has a buffer memory of 8 kbytes to 64 kbytes on the board, so that the throughput of the computer is effectively matched with the speed of the network. When a complicated function such as a packet filter is actually added to the network device driver, packets may be dropped in the 8 kbyte buffer memory, but packets may not be dropped in 16 kbytes. For this reason, a conventional low-speed CPU,
It has been considered that as the device driver performs more complicated processing using the I / O bus, the capacity of the buffer memory needs to be increased as the network speed increases.

【0003】また、バス型構造のネットワークアダプタ
装置は、ネットワークから受信したデータ、及びネット
ワークに送信するデータをページと呼ばれる単位(代表
的な値はイーサネットでは2kバイト、ARCNETで
は256,又は512バイト)でボード上のバッファR
AMに格納していた。そしてデバイスドライバが、送受
信割り込みルーチンの中で、バッファRAMと主記憶間
とのデータ転送を行っている。従って、受信処理が頻繁
に行われている状況では殆ど全てのページが受信処理に
よって占有されてしまい、その間送信が全く行われな
い、という状況が生じる。しかしながら、ネットワーク
の性質上、送信と受信は同時には起こらないので、バッ
ファRAMを送信用のバッファRAMと受信用のバッフ
ァRAMに分離する必要性は余り高くなかった。
The bus type network adapter device is a unit called a page for data received from the network and data to be transmitted to the network (a typical value is 2 kbytes for Ethernet, 256 or 512 bytes for ARCNET). And the buffer R on the board
It was stored in AM. Then, the device driver performs data transfer between the buffer RAM and the main memory in the transmission / reception interrupt routine. Therefore, in a situation where the receiving process is frequently performed, almost all pages are occupied by the receiving process, and a situation occurs in which no transmission is performed during that time. However, due to the nature of the network, transmission and reception do not occur at the same time, so the need to separate the buffer RAM into a transmission buffer RAM and a reception buffer RAM was not very high.

【0004】代表的なイーサネット制御用LSIではシ
ングルポートRAMを外付けすることにより2kバイト
単位で送受信ページ領域を切り換えている。またARC
NET制御用LSIはデュアルポートRAMを内蔵して
おり256,又は512バイト単位で送受信領域を切り
換えている。因にARCNETについては、(株)東洋
マイクロシステム発行の「ARCNET Techni
cal Manual」(邦訳のタイトルは「ARCN
ETとは」)に詳細な記述があり、ARCNET用の専
用チップについても(株)東洋マイクロシステム発行の
「ARCNETコントローラCOM20020(日本語
版データシート)」に詳細なスペックの記述がある。
In a typical Ethernet control LSI, a transmission / reception page area is switched in units of 2 kbytes by externally attaching a single port RAM. See also ARC
The NET control LSI incorporates a dual port RAM and switches the transmission / reception area in units of 256 or 512 bytes. As for ARCNET, please refer to "ARCNET Techni" issued by Toyo Micro Systems Co., Ltd.
cal Manual ”(Japanese translation title is“ ARCN ”
What is ET "), and a detailed specification of a dedicated chip for ARCNET is also described in" ARCNET Controller COM20020 (Japanese version data sheet) "issued by Toyo Micro Systems Co., Ltd.

【0005】上記バス型のネットワークアダプタ装置と
並行して並列・分散デ−タ処理システムの分野での応用
を考えた、新しいタイプのポイントツーポイント型のネ
ットワークアダプタ装置の開発もさかんに行われるよう
になってきた。ANSI X3T9.3で標準化作業が
進んでいるHIPPI(High Performance Parallel Int
erface)チャネルや、IEEEより提案されているSC
I(Scalable CoherentInterface)が、このようなネット
ワークアダプタ装置の規格である。これらポイントツー
ポイント型のネットワークアダプタ装置はネットワーク
上で送信と受信を同時に行うことができる。このため複
数のデ−タ処理装置間を接続する高スループット、低レ
ーテンシー(遅延時間)の超高速通信路を確保すること
ができる。
Along with the bus type network adapter device, a new type of point-to-point type network adapter device will be developed in consideration of application in the field of parallel / distributed data processing system. Has become. HIPPI (High Performance Parallel Int) is being standardized in ANSI X3T9.3.
erface) channel and SC proposed by IEEE
I (Scalable Coherent Interface) is a standard for such a network adapter device. These point-to-point type network adapter devices can simultaneously perform transmission and reception on the network. Therefore, it is possible to secure a high throughput, low latency (delay time), ultra-high speed communication path for connecting a plurality of data processing devices.

【0006】以下、HIPPIおよびSCIについて簡
単に説明する。
The HIPPI and SCI will be briefly described below.

【0007】(1)HIPPIチャネル 複数のデ−タ処理装置を接続する高速通信路の一つとし
て、高速転送に適合したANSI X3T9.3で標準
仕様のインタフェースとして規格化が進んでいるHIP
PI(High Performance Paral
lel Interface)チャネルがある。HIP
PIチャネルは単方向の4バイト並列のメタル信号線で
単方向に結合し、ソースノードからデスティネーション
ノードへバースト転送を行なうチャネルであり、100
MB/sの高スループットのデータ転送を行なう。
(1) HIPPI channel As one of the high-speed communication paths for connecting a plurality of data processing devices, HIP is being standardized as an interface of standard specifications in ANSI X3T9.3 adapted for high-speed transfer.
PI (High Performance Parallel)
ll Interface) channel. HIP
The PI channel is a channel that is unidirectionally coupled by 4-byte parallel metal signal lines and performs burst transfer from the source node to the destination node.
Performs high throughput data transfer of MB / s.

【0008】HIPPIチャネルはポイントからポイン
トへのシンプレクス通信であり、コネクション型の通信
方式なので、ソースからデスティネーションへコネクシ
ョンを確立して通信を行う。この後、データのバースト
転送を行なう。このようにHIPPIチャネルは基本的
にコネクション型の通信方式でチャネルのためのインタ
フェースなので、纏まった大量のデータをソースノード
(スーパコンピュータ等)からディスティネーションノ
ード(ディスクアレイ等)へ高速に転送するのに適して
おり、並列処理マシンのプロセッサ間の転送のように小
量のデータを異なる宛先に切り換えつつ、高速に転送す
る用途には適していない。
[0008] The HIPPI channel is a point-to-point simplex communication and is a connection type communication system. Therefore, a communication is established by establishing a connection from a source to a destination. After this, burst transfer of data is performed. As described above, since the HIPPI channel is basically a connection type interface for the channel, a large amount of collected data can be transferred from the source node (super computer etc.) to the destination node (disk array etc.) at high speed. It is not suitable for high speed transfer while switching a small amount of data to different destinations such as transfer between processors of a parallel processing machine.

【0009】(2)SCI 複数のデ−タ処理装置を接続する高速通信路のもう一つ
の例として、IEEEより提案されているSCI(Scala
ble Coherent Interface)がある。SCIについては、
その規格がIEEE Draft P1569/D2.
00 18Nov91に記載されている。SCIは、単
方向の2バイト並列のデータ信号線と1ビットのフラグ
信号とクロック信号とをリング型に結合し、データサイ
ズ16B、64Bの短いデータパケットでデータ通信す
る分散メモリのメモリ間ネットワーク・インターフェイ
スであり、キャッシュ記憶のコヒーレンシー(無矛盾
性)を保つことを目的にしている。
(2) SCI As another example of a high-speed communication path for connecting a plurality of data processing devices, SCI (Scala) proposed by IEEE
ble Coherent Interface). For SCI,
The standard is IEEE Draft P1569 / D2.
00 18 Nov 91. The SCI is a memory-to-memory network of distributed memory that connects a unidirectional 2-byte parallel data signal line, a 1-bit flag signal, and a clock signal in a ring shape to perform data communication in short data packets of data sizes 16B and 64B. It is an interface and aims to maintain cache memory coherency.

【0010】またHIPPIチャネル、SCIとは別
に、インモス(inmos)社のトランスピータは、C
PUに4つのチャネル機構を内蔵することによりポイン
トツーポイント型のネットワーク機能を実装している。
特にT9000トランスピータは、仮想チャネルという
技術を用いることによりレイテンシーの向上を図ってい
る。具体的には、任意の長さの論理パケットを内蔵の仮
想チャネルプロセッサによって最大32バイト長の仮想
パケットに分解して送受信を行なう。このようにネット
ワーク上の物理的なパケットのMTU(Maximum
Transfer Unit)サイズを32バイトと
いう、イーサーネット、トークンリング、ARCNE
T、FDDIに比べて非常に小さい値とすることにより
レイテンシーの向上が図られている。このような手法
は、トランスピュータのようにメモリとチャネルが非常
に密接に結合されているシステムにとっては効果的であ
るが、I/Oバスを経由してチャネルとメモリが結合さ
れている通常のシステムでは、I/Oバスを介したDM
Aの転送回数が増大するのでスループットが上がらない
という弊害がある。尚、T9000トランスピュータに
ついては、インモス社発行の「THE T9000 T
RANSPUTER PRODUCTS OVERVI
EW MANUAL」に詳細な記述がある。
In addition to the HIPPI channel and SCI, the transposer of Inmos is C
A point-to-point network function is implemented by incorporating four channel mechanisms in the PU.
In particular, the T9000 transponder aims to improve latency by using a technique called a virtual channel. Specifically, a built-in virtual channel processor decomposes a logical packet of an arbitrary length into a virtual packet of a maximum length of 32 bytes and transmits / receives it. Thus, MTU (Maximum) of physical packets on the network
Transfer unit size of 32 bytes, Ethernet, token ring, ARCNE
The latency is improved by making the value much smaller than those of T and FDDI. Such an approach is effective for a system in which a memory and a channel are very closely coupled, such as a transputer, but a normal method in which the channel and the memory are coupled via an I / O bus. In the system, DM via I / O bus
Since the number of transfers of A increases, there is an adverse effect that throughput does not increase. For the T9000 Transputer, please refer to "THE T9000 T" issued by Inmos.
RANSPUTER PRODUCTS OVERVI
EW MANUAL ”has a detailed description.

【0011】[0011]

【発明が解決しようとする課題】しかしながら、RIS
C(Reduced Instruction Set
Computer)プロセッサ等の高速プロセッサの開
発、および高スループットI/Oバスの開発に拍車がか
かるにつれ、計算機の実効スループットがネットワーク
の速度と同等になってきたために以下に示す新たな課題
がでてきた。すなわち、上記従来の技術では、以下に列
挙する課題がある。
However, the RIS
C (Reduced Instruction Set)
As the development of high-speed processors such as Computer processors and the development of high-throughput I / O buses has spurred, the effective throughput of computers has become equal to the speed of the network, and the following new problems have appeared. . That is, the above conventional techniques have the problems listed below.

【0012】1. バッファメモリの大容量化が計算機
の実効スループットに寄与しないという問題 上記バス型のネットワークアダプタ装置では、主として
シングルポートの送受信兼用メモリをバッファメモリと
して用いているために計算機の実効スループットを向上
させるためには、バッファメモリの容量を増やさなけれ
ばならないという問題がある。但し、ARCNETでは
バッファメモリとしてデュアルポートの送受信兼用メモ
リを用いているので、この問題は幾らか軽減されてい
る。
1. The problem that increasing the capacity of the buffer memory does not contribute to the effective throughput of the computer In the above-mentioned bus type network adapter device, since the single port transmission / reception memory is mainly used as the buffer memory, the effective throughput of the computer is improved. Has a problem that the capacity of the buffer memory must be increased. However, in ARCNET, since a dual port transmission / reception memory is used as the buffer memory, this problem is somewhat alleviated.

【0013】一方、ポイントツーポイント型のネットワ
ークアダプタ装置では、FIFOメモリをバッファメモ
リとして用いておりバッファメモリの大容量化を抑止す
るために、MTUサイズをバス型のネットワークと比べ
ると小さい値に設定していた。このためバス型のネット
ワークアダプタ装置と同様にMTUサイズを大きくする
とFIFOメモリの容量を大きくしなければならないと
いう問題がある。
On the other hand, in the point-to-point type network adapter device, the FIFO memory is used as the buffer memory, and the MTU size is set to a value smaller than that of the bus type network in order to suppress the increase in the capacity of the buffer memory. Was. Therefore, as in the bus type network adapter device, when the MTU size is increased, the capacity of the FIFO memory must be increased.

【0014】さらに近年の光ファイバー技術の進展によ
るネットワークの高速化は、上記バッファメモリと主記
憶間のコピーのみならず、主記憶内部の領域間でのコピ
ーの処理時間の増大が計算機の実効スループットを低下
させる要因となることを示唆しつつある。即ち、ネット
ワークの高速化、通信プロトコル処理の複雑化等の要因
によってバッファメモリの容量を増やしても計算機の実
効スループットに寄与しないという課題が新たに発生し
ている。
Further, in recent years, due to the progress of optical fiber technology, the speeding up of the network is achieved not only by the copy between the buffer memory and the main memory, but also by the increase of the processing time of the copy between the areas inside the main memory, the effective throughput of the computer. It is suggesting that it will be a factor to decrease. That is, there is a new problem that increasing the capacity of the buffer memory does not contribute to the effective throughput of the computer due to factors such as speeding up of the network and complication of communication protocol processing.

【0015】2. レイテンシーの問題 イーサーネット等のバス型のネットワークアダプタ装置
はバッファメモリとしてシングルポートの送受信兼用メ
モリを用いているため、ネットワークとバッファメモリ
間のデータ転送、ホストとバッファメモリ間のデータ転
送を並行して行うことができないという問題がある。こ
の問題を解消するためにARCNETでは、バッファメ
モリとしてデュアルポートの送受信兼用メモリを用いて
いるが、ページ単位で送信と受信を切り換えるだけで細
かいデータ単位で送受信動作を切り換えることができな
いために、受信から送信への動作切り換え、送信から受
信への動作切り換えの際にディレイが発生する。すなわ
ち、ネットワーク側でレイテンシーの問題がある。
2. Latency problem Bus-type network adapter devices such as Ethernet use single-port transmit / receive memory as buffer memory, so data transfer between network and buffer memory and data transfer between host and buffer memory can be performed in parallel. There is a problem that you cannot do it. In order to solve this problem, in ARCNET, a dual port transmission / reception memory is used as a buffer memory, but it is not possible to switch the transmission / reception operation in fine data units only by switching transmission / reception in page units. A delay occurs when switching the operation from transmission to transmission and switching the operation from transmission to reception. That is, there is a latency problem on the network side.

【0016】またバス型のネットワークアダプタ装置で
は、主記憶からバッファメモリへの送信処理とバッファ
メモリから主記憶への受信処理を各々の割り込み処理ル
ーチンの中で行う構成が多く、一方の処理が終了しない
場合には、もう一方の処理を開始することができないと
いう問題がある。このため、比較的パケット長の大きい
データを受信している最中に比較的パケット長の小さい
データを他のネットワークに送信したい要求があった場
合には、従来の構成では受信が終了するまで送信がブロ
ッキングするので計算機側でレイテンシーの問題が発生
する。
In a bus type network adapter device, there are many configurations in which a transmission process from the main memory to the buffer memory and a reception process from the buffer memory to the main memory are performed in each interrupt processing routine, and one of the processes is completed. If not, there is a problem that the other process cannot be started. Therefore, if there is a request to send data with a relatively small packet length to another network while receiving data with a relatively large packet length, the conventional configuration sends data until reception is complete. Will cause latency problems on the computer side.

【0017】HIPPIチャネルや、SCI等のポイン
トツーポイント型のネットワークアダプタ装置では、F
IFOメモリをバッファメモリとして用いることにより
低レイテンシーを実現している。また、上記T9000
トランスピュータの仮想チャネル技術を使用すれば送信
処理と受信処理の同時実行が可能なのでレイテンシーの
問題はないが、トランスピュータと異なるCPU、I/
Oバスアーキテクチャを有するシステムにそのままの形
で適用するのが困難であるという問題がある。即ち、上
記T900トランスピュータのMTUは32バイトであ
るので、チャネルと主記憶の間の転送単位も32バイト
となる。従って、本発明のように既存のCPUのI/O
バスにネットワークアダプタ装置を付加する場合には、
ネットワークアダプタ装置を制御するプログラムである
デバイスドライバは32バイト単位で送受信コマンドを
ネットワークアダプタ装置に通知する必要があり、デー
タ転送以外の目的でI/Oバスが占有されることになり
レイテンシーが増大するという問題がある。
In a point-to-point type network adapter device such as HIPPI channel or SCI,
Low latency is realized by using the IFO memory as a buffer memory. In addition, the above T9000
There is no latency problem because the transmission and reception processes can be executed simultaneously by using the transputer's virtual channel technology.
There is a problem that it is difficult to apply it as it is to a system having an O-bus architecture. That is, since the MTU of the T900 transputer is 32 bytes, the transfer unit between the channel and the main memory is also 32 bytes. Therefore, as in the present invention, the I / O of the existing CPU is
When adding a network adapter device to the bus,
The device driver, which is a program for controlling the network adapter device, needs to notify the network adapter device of a transmission / reception command in units of 32 bytes, and the I / O bus is occupied for purposes other than data transfer, which increases latency. There is a problem.

【0018】3. デバイスドライバのオーバヘッドの
問題 上記バス型のネットワークアダプタ装置は、予めページ
単位でバッファメモリに送受信領域を割り当て複数のペ
ージ単位で発生する受信割り込み処理ルーチン、送信割
り込み処理ルーチンの中でネットワーク装置上のバッフ
ァメモリと主記憶とのデータ転送を行うのが通常であっ
た。このために、割り込み処理が多発して計算機のスル
ープットが低下するというデバイスドライバのオーバヘ
ッドの問題がある。
3. Device driver overhead problem The above-mentioned bus type network adapter device allocates a transmission / reception area to a buffer memory in page units in advance, and a buffer on the network device is included in a reception interrupt processing routine and a transmission interrupt processing routine that occur in a plurality of page units. It was usual to transfer data between memory and main memory. For this reason, there is a problem of device driver overhead that interrupt processing occurs frequently and throughput of the computer decreases.

【0019】また、HIPPIチャネルや、SCI等の
ポイントツーポイント型のネットワークアダプタ装置で
は、FIFOメモリをバッファメモリとして用いること
により低レイテンシーを実現しているが、バッファメモ
リの容量を抑さえるためにMTUサイズを大きくとれな
いという問題がある。このため、主記憶とネットワーク
アダプタ装置の間の転送回数が増大するのでデバイスド
ライバのオーバヘッドが大きいという問題がある。
Further, in a HIPPI channel or a point-to-point type network adapter device such as SCI, low latency is realized by using a FIFO memory as a buffer memory, but in order to suppress the capacity of the buffer memory, the MTU is suppressed. There is a problem that the size cannot be increased. For this reason, the number of transfers between the main memory and the network adapter device increases, which causes a problem that the overhead of the device driver is large.

【0020】また、デバイスドライバの処理を高速化の
ためにコマンドチェイン方式に基づくネットワークアダ
プタ装置も出現している。このような装置では、コマン
ドを格納するテーブルを主記憶上に設け、デバイスドラ
イバからもネットワークアダプタ装置からもアクセス可
能とする必要がある。共有メモリの排他制御に関する特
許としては、特開平3−138749号公報および特開
平3−74757号公報に開示されているように、共有
メモリを管理するボインタと共有資源のビジー状態を示
すフラグビットを導入する必要があった。
In addition, a network adapter device based on the command chain system has also appeared in order to speed up the processing of the device driver. In such a device, it is necessary to provide a table for storing commands in the main memory so that the device driver and the network adapter device can access the table. As patents relating to exclusive control of shared memory, as disclosed in Japanese Patent Application Laid-Open Nos. 3-138748 and 3-74757, there are a pointer managing a shared memory and a flag bit indicating a busy state of a shared resource. Had to be introduced.

【0021】本発明の目的は、RISCプロセッサ等の
高性能CPU、及び高性能I/Oバスを有するスタンド
アローン型の計算機に安価かつ高スループット、低レイ
テンシー通信機能を有する、バス型にもポイントツーポ
イント型のネットワークにも適用可能なネットワークア
ダプタ装置を提供することにある。
An object of the present invention is to provide a stand-alone computer having a high-performance CPU such as a RISC processor and a high-performance I / O bus with a low-cost, high-throughput, low-latency communication function, and also to a bus-type point-to-point computer. It is to provide a network adapter device that can be applied to a point-type network.

【0022】[0022]

【課題を解決するための手段】上記の課題を解決するた
めに、本発明によるネットワークアダプタは、計算機に
ネットワーク機能を付加するためのネットワークアダプ
タであって、ネットワークに対してデータを送信するた
めの送信用ファーストインファーストアウトバッファ
と、前記ネットワークからデータを受信するための受信
用ファーストインファーストアウトバッファと、少なく
とも2面のデュアルポートバッファメモリと、受信時
に、前記受信用ファーストインファーストアウトバッフ
ァから前記デュアルポートバッファメモリの1面へのデ
ータ転送、および前記デュアルポートバッファメモリの
他の面から前記計算機の主記憶へのデータ転送をパイプ
ライン的に行うための第1の制御手段と、送信時に、前
記主記憶から前記デュアルポートバッファメモリの1面
へのデータ転送、および前記デュアルポートバッファメ
モリの他の面から前記送信用ファーストインファースト
アウトバッファへのデータ転送をパイプライン的に行う
ための第2の制御手段とを備えたものである。
In order to solve the above problems, a network adapter according to the present invention is a network adapter for adding a network function to a computer, which is for transmitting data to the network. A transmission first-in first-out buffer, a reception first-in first-out buffer for receiving data from the network, at least two dual port buffer memories, and a reception first-in first-out buffer for receiving the data. First control means for pipelined data transfer to one side of the dual port buffer memory and data transfer from the other side of the dual port buffer memory to the main memory of the computer; From the main memory to the du Second control means for pipelined data transfer to one side of the port port buffer memory and data transfer from the other side of the dual port buffer memory to the first-in first-out buffer for transmission. It is a thing.

【0023】[0023]

【作用】本発明では、ネットワークアダプタ装置上に、
主記憶と送受信FIFOメモリとの間に少なくとも2面
のデュアルポート小容量バッファメモリを備え、主記憶
からバッファメモリへの送信DMA処理、バッファメモ
リから送信FIFOメモリへの書き込み処理、受信FI
FOメモリからバッファメモリへの書き込み処理、バッ
ファメモリから主記憶への受信DMA処理をパイプライ
ン的に行う。例えば、ネットワーク側から受信要求が発
生した場合には、空きバッファ面(例えばA面)を確保
した後、受信FIFOメモリからデータを読みだしバッ
ファメモリA面に書き込むと同時に、バッファメモリB
面に既に有効な受信データが存在する場合には、バッフ
ァメモリB面のデータを主記憶に書き込み、バッファメ
モリB面に既に有効な送信データが存在する場合には、
バッファメモリB面のデータを送信FIFOメモリに書
き込む。次のバスサイクルでは、ネットワーク側への送
信要求がない場合には前のサイクルで書き込まれたバッ
ファメモリA面のデータを主記憶に書き込むが、ネット
ワーク側への送信要求がある場合には主記憶からデータ
を読みだしバッファメモリB面に書き込む。
In the present invention, on the network adapter device,
At least two dual port small capacity buffer memories are provided between the main memory and the transmission / reception FIFO memory, and the transmission DMA processing from the main storage to the buffer memory, the writing processing from the buffer memory to the transmission FIFO memory, and the reception FI
A write process from the FO memory to the buffer memory and a receive DMA process from the buffer memory to the main memory are pipelined. For example, when a reception request is issued from the network side, after a free buffer surface (for example, surface A) is secured, the data is read from the reception FIFO memory and written in the buffer memory A surface, and at the same time, the buffer memory B
If valid reception data already exists on the side of the buffer memory, the data of the side of the buffer memory B is written to the main memory, and if valid transmission data already exists on the side of the buffer memory B,
The data on the B side of the buffer memory is written to the transmission FIFO memory. In the next bus cycle, when there is no transmission request to the network side, the data of the buffer memory A side written in the previous cycle is written to the main memory, but when there is a transmission request to the network side, the main memory is written. The data is read from and written in the buffer memory B side.

【0024】以上の説明から類推できるように、受信要
求、送信要求の2つの要求を入力としてアービトレーシ
ョンを行い、受信FIFOメモリからバッファメモリ
(A,B)への書き込み要求、バッファメモリ(A,
B)から送信FIFOメモリへの書き込み要求、バッフ
ァメモリ(A,B)から主記憶への書き込み要求、主記
憶からバッファメモリ(A,B)への書き込み要求を出
力とする状態遷移機械を構成することにより受信と送信
をバッファメモリ一面の容量の単位でインタリーブ動作
させることができる。
As can be inferred from the above description, arbitration is performed by inputting two requests, a reception request and a transmission request, and a write request from the reception FIFO memory to the buffer memory (A, B) and a buffer memory (A, B).
A state transition machine that outputs a write request from B) to the transmission FIFO memory, a write request from the buffer memory (A, B) to the main memory, and a write request from the main memory to the buffer memory (A, B) is configured. As a result, reception and transmission can be interleaved in units of the capacity of one side of the buffer memory.

【0025】さらに、受信FIFOメモリからのデータ
の読みだし、及び送信FIFOメモリへのデータの書き
込みをパケット全体の到着を待ってから行う「ストアア
ンドフォワード」形式ではなく、パケットの一部の到着
を待ってから行う「ワームホール」形式で実行する。
Further, instead of the "store and forward" format in which the data is read from the reception FIFO memory and the data is written to the transmission FIFO memory after waiting for the arrival of the entire packet, a part of the packet is arrived. Wait and run in a "wormhole" format.

【0026】デバイスドライバのオーバヘッドの問題に
対しては、ネットワーク装置がパケットの送信処理のた
めのコマンドをリスト形式に記述したテーブル、パケッ
トの受信処理のためのコマンドをリスト形式に記述した
テーブルをフェッチすることにより送受信処理を起動
し、かつ、割り込みの有無をリスト形式のテーブル中に
指定することで、デバイスドライバが必要とする時にの
み送受信割り込みを発生することができる。また、デバ
イスドライバが、上位プロトコル処理部、上位アプリケ
ーションに対して上位処理を依頼する送受信パケットの
領域を指定するために、2つのポインタ(終了ヘッドポ
インタ、終了テイルポインタ)を設けている。
For the problem of the device driver overhead, the network device fetches a table describing commands for packet transmission processing in a list format and a table describing commands for packet reception processing in a list format. By doing so, the transmission / reception process is activated, and the presence / absence of an interrupt is specified in the table in the list format, so that the transmission / reception interrupt can be generated only when the device driver requires it. Further, the device driver is provided with two pointers (end head pointer and end tail pointer) in order to specify an area of a transmission / reception packet for requesting higher processing to the higher protocol processing unit and higher application.

【0027】なお、一個のコマンドは物理的な一個のパ
ケットに対応する。従ってMTUサイズを大きくとるこ
とによりテーブルをフェッチする回数を抑制することが
できるので実質的にデバイスドライバのオーバヘッドを
抑さえることが可能である。
Note that one command corresponds to one physical packet. Therefore, by increasing the MTU size, the number of times the table is fetched can be suppressed, and the overhead of the device driver can be substantially suppressed.

【0028】本発明の構成により、パケットのMTUサ
イズを大きくしたままT9000トランスピュータの仮
想チャネル技術で用いられているのと同様の低レイテン
シー送受信機構を実現することが可能である。
With the configuration of the present invention, it is possible to realize a low-latency transmission / reception mechanism similar to that used in the virtual channel technology of the T9000 transputer while increasing the MTU size of the packet.

【0029】以上のように、本発明によれば、ネットワ
ークアダプタ装置上に送信FIFOメモリ、受信FIF
Oメモリを別個に有することによりネットワークアダプ
タ装置と主記憶とのデータ転送効率が向上する。また、
デュアルポートメモリの一種であるFIFOメモリを採
用しているので「ワームホール」形式のデータ転送が可
能となりレイテンシーの向上を図ることが可能である。
As described above, according to the present invention, the transmission FIFO memory and the reception FIFO are provided on the network adapter device.
By having the O memory separately, the data transfer efficiency between the network adapter device and the main memory is improved. Also,
Since a FIFO memory, which is a type of dual port memory, is used, it is possible to transfer data in a "wormhole" format and improve latency.

【0030】また、ネットワークアダプタ装置上に送信
FIFOメモリ、受信FIFOメモリの他に少なくも2
面のバッファメモリを備えているのでダブルバッファリ
ングの効果を有することになり、I/Oバスの送信権と
受信権をバスサイクル毎に切り換えてもI/Oバスの使
用効率、言い換えればスループットが低下することはな
い。また、パケット長の大きいデータが受信FIFOメ
モリに存在している場合にも、受信FIFOメモリの解
放を長時間待つことなく時分割処理によって主記憶上の
送信データを送信FIFOメモリに書き込むことが可能
になるのでレイテンシーが向上する。さらに、複数のパ
ケット単位での割り込み処理が可能なので、割り込み処
理によるデバイスドライバのオーバーヘッドが低下す
る。
In addition to the transmission FIFO memory and the reception FIFO memory on the network adapter device, at least 2
Since it has the buffer memory of the plane, it has the effect of double buffering, and even if the transmission right and the reception right of the I / O bus are switched every bus cycle, the use efficiency of the I / O bus, in other words, the throughput is improved. It never drops. Further, even when data having a large packet length exists in the reception FIFO memory, it is possible to write the transmission data in the main memory to the transmission FIFO memory by time division processing without waiting for the release of the reception FIFO memory for a long time. Therefore, the latency is improved. Furthermore, since interrupt processing can be performed in units of a plurality of packets, the overhead of the device driver due to interrupt processing is reduced.

【0031】[0031]

【実施例】以下、図面を用いて、本発明によるネットワ
ークアダプタ装置の一実施例について詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a network adapter device according to the present invention will be described in detail below with reference to the drawings.

【0032】まず、図1を用いて概要を説明する。計算
機100と計算機110とはネットワークを介して相互
に接続されている。計算機100と計算110とは同一
の構成を有するので、以下、計算機100についての
み、その構成の詳細を説明する。
First, the outline will be described with reference to FIG. The computer 100 and the computer 110 are connected to each other via a network. Since the computer 100 and the computer 110 have the same configuration, only the computer 100 will be described in detail below.

【0033】計算機100は、RISC等の高速プロセ
ッサ106、主記憶(MS)107、デバイスドライバ
120および本発明によるネットワークアダプタ装置1
01を内蔵する。主記憶107とネットワークアダプタ
装置101とはI/Oバス105を介して接続される。
デバイスドライバ120は、CPU106および主記憶
107に格納された制御プログラムにより実現されるブ
ロックである。
The computer 100 includes a high speed processor 106 such as RISC, a main memory (MS) 107, a device driver 120 and the network adapter device 1 according to the present invention.
01 is built in. The main memory 107 and the network adapter device 101 are connected via the I / O bus 105.
The device driver 120 is a block realized by the control program stored in the CPU 106 and the main memory 107.

【0034】ネットワークアダプタ装置101は、ネッ
トワーク制御プロセッサ102と、送信FIFO(Firs
t-In First-Out)103と、受信FIFO104とを有
する。ネットワーク制御プロセッサ102は、主記憶1
07と送信FIFOメモリ103、及び受信FIFOメ
モリ104との間の、I/Oバス105を介したDMA
送受信を制御する。主記憶107には、ネットワークア
ダプタ装置101を制御するソフトウェアであるデバイ
スドライバが確保する送受信コマンドキューテーブル領
域108と、送受信データバッファ領域109が設けら
れる。計算機110の要素111〜119、130は、
計算機100の要素101〜109、120と同一であ
る。
The network adapter device 101 includes a network control processor 102 and a transmission FIFO (Firs).
It has a t-in first-out) 103 and a reception FIFO 104. The network control processor 102 has a main memory 1
07 via the I / O bus 105 between the transmission FIFO memory 103 and the reception FIFO memory 104
Control sending and receiving. The main memory 107 is provided with a transmission / reception command queue table area 108 secured by a device driver, which is software controlling the network adapter apparatus 101, and a transmission / reception data buffer area 109. The elements 111 to 119 and 130 of the computer 110 are
It is the same as the elements 101 to 109 and 120 of the computer 100.

【0035】本実施例のネットワーク通信は、図に示す
ように送受信独立型のポイントツーポイント形式で行わ
れるので、ネットワーク上での送信と受信を独立に実行
することが可能である。一方、主記憶107とネットワ
ークアダプタ装置101との間の送受信DMA処理は、
ネットワーク制御プロセッサ102が時分割によって送
信DMAと受信DMAを切り換える。
Since the network communication of this embodiment is carried out in a transmission / reception independent type point-to-point format as shown in the figure, it is possible to independently perform transmission and reception on the network. On the other hand, the transmission / reception DMA processing between the main memory 107 and the network adapter device 101 is
The network control processor 102 switches transmission DMA and reception DMA by time division.

【0036】図2に、ネットワーク制御プロセッサ10
2の内部構成を示す。まず最初に各構成要素について説
明する。
FIG. 2 shows the network control processor 10.
2 shows the internal configuration of No. 2. First, each component will be described.

【0037】ネットワーク制御プロセッサ102は、デ
ュアルポートのデータバッファA面201、デュアルポ
ートのデータバッファB面202、I/Oバスインタフ
ェイス203、ステートマシン(シーケンサ)204、
FIFO制御部205、DMA制御部206、I/Oレ
ジスタ223からなる。I/Oレジスタ223は、送信
コマンド制御部207、受信コマンド制御部208、お
よびコマンド制御レジスタ209を含む。
The network control processor 102 has a dual port data buffer A side 201, a dual port data buffer B side 202, an I / O bus interface 203, a state machine (sequencer) 204,
It comprises a FIFO control unit 205, a DMA control unit 206, and an I / O register 223. The I / O register 223 includes a transmission command control unit 207, a reception command control unit 208, and a command control register 209.

【0038】ステートマシン204は、データバッファ
A面201、データバッファのB面202の読み書き制
御、DMA制御部206、及びFIFO制御部205の
コントロールを司る。このステートマシン204は、送
信コマンド制御部207からの送信要求信号211、及
び受信コマンド制御部208からの受信要求信号212
を入力として、FIFO制御部205に対する制御信号
213、DMA制御部206に対する制御信号214、
データバッファA面201に対する読み書き制御信号2
15、およびデータバッファB面202に対する読み書
き制御信号216等の信号を生成する。
The state machine 204 controls the read / write control of the data buffer A side 201, the B side 202 of the data buffer, the DMA control section 206, and the FIFO control section 205. The state machine 204 includes a transmission request signal 211 from the transmission command control unit 207 and a reception request signal 212 from the reception command control unit 208.
As an input, a control signal 213 to the FIFO control unit 205, a control signal 214 to the DMA control unit 206,
Read / write control signal 2 for data buffer A side 201
15, and signals such as a read / write control signal 216 for the data buffer B side 202 are generated.

【0039】送信コマンド制御部207は、主記憶10
7上のコマンドキュー領域108からフェッチした送信
コマンドキューのエントリ、及び第1のポインタと第2
のポインタの値を保持し、第1のポインタと第2のポイ
ンタの値に応じてステートマシン204に対する制御信
号211、及び割り込み制御部210に対する割り込み
要求信号220を生成する。送信コマンド制御部207
の詳細動作については図4、図5により後述する。
The transmission command control unit 207 uses the main memory 10
7, the entry of the transmission command queue fetched from the command queue area 108, the first pointer and the second
Holds the value of the pointer, and generates the control signal 211 for the state machine 204 and the interrupt request signal 220 for the interrupt controller 210 according to the values of the first pointer and the second pointer. Transmission command control unit 207
The detailed operation of will be described later with reference to FIGS.

【0040】受信コマンド制御部208は主記憶107
上の受信コマンドキュー領域108からフェッチした受
信コマンドキューのエントリ、及び第1のポインタと第
2のポインタの値を保持し、第1のポインタと第2のポ
インタの値に応じてステートマシン204に対する制御
信号212、及び割り込み制御部210に対する割り込
み要求信号221を生成する。受信コマンド制御部20
8の詳細についても図4、図5により後述する。
The received command control unit 208 has a main memory 107.
The received command queue entry fetched from the upper received command queue area 108 and the values of the first pointer and the second pointer are held, and the state machine 204 is supplied to the state machine 204 according to the values of the first pointer and the second pointer. The control signal 212 and the interrupt request signal 221 for the interrupt control unit 210 are generated. Received command controller 20
Details of 8 will be described later with reference to FIGS. 4 and 5.

【0041】FIFO制御部205は、ステートマシン
204から制御出力信号213を入力として送信FIF
O103を制御するための制御信号218、および受信
FIFO104を制御するための制御信号219を生成
する。
The FIFO control unit 205 receives the control output signal 213 from the state machine 204 as an input and sends it to the transmission FIFO.
A control signal 218 for controlling the O103 and a control signal 219 for controlling the reception FIFO 104 are generated.

【0042】DMA制御部206も、ステートマシン2
04から制御出力信号214を入力として、I/Oバス
105を制御するための制御信号217を生成する。
The DMA control unit 206 is also the state machine 2
The control output signal 214 from 04 is input to generate a control signal 217 for controlling the I / O bus 105.

【0043】割り込み制御部210は、送信コマンド制
御部207からの割り込み要求信号220、及び受信コ
マンド制御部208からの割り込み要求信号221を入
力として、ホストCPU106に対して割り込み信号2
22を発生する。
The interrupt control unit 210 receives the interrupt request signal 220 from the transmission command control unit 207 and the interrupt request signal 221 from the reception command control unit 208 and inputs the interrupt signal 2 to the host CPU 106.
22 is generated.

【0044】コマンド制御レジスタ209は、送信コマ
ンド制御部207の動作の起動/停止、および受信コマ
ンド制御部208の動作の起動/停止を指定する。コマ
ンド制御レジスタ209の詳細については、ポインタ制
御と密接な関連があるので図4、図5により後述する。
The command control register 209 designates the start / stop of the operation of the send command controller 207 and the start / stop of the operation of the receive command controller 208. Details of the command control register 209 will be described later with reference to FIGS. 4 and 5 because they are closely related to pointer control.

【0045】次に、ネットワーク制御プロセッサ102
の動作について説明する。ネットワーク制御プロセッサ
102の主たる機能は、主記憶107上のコマンドキュ
ー108を読みだすことにより、送信コマンド制御部2
07に送信コマンドを、受信コマンド制御制御部208
に受信コマンドを読みだし、送信コマンド制御部207
及び受信コマンド制御部208のコマンドに従って、送
信FIFO103および受信FIFO104と主記憶1
07上のデータバッファ109との間のDMA転送をパ
イプライン的に行うことである。
Next, the network control processor 102
The operation of will be described. The main function of the network control processor 102 is to read out the command queue 108 on the main memory 107, and
07, a send command, and a receive command control control unit 208
The received command is read out to the transmission command control unit 207.
According to the command of the reception command control unit 208, the transmission FIFO 103, the reception FIFO 104, and the main memory 1
The DMA transfer with the data buffer 109 on 07 is performed in a pipeline manner.

【0046】例を用いて簡単に動作の概略を図9を用い
て説明する。例えば、MTUサイズは4kバイトである
とし、デュアルポートデータバッファ201,202の
1面のサイズは32バイトであるとする。また、受信F
IFOメモリ104には1kバイトのデータがたまって
いるものとする。図9は、受信のタイミングとして、受
信FIFOメモリ104からデータバッファ(A面20
1またはB面202)へのネットワーク転送と、データ
バッファからI/Oバス105へのI/Oバス転送の様
子を示している。また、送信のタイミングとして、I/
Oバス105からデータバッファへのI/Oバス転送
と、データバッファから送信FIFOメモリ103への
ネットワーク転送の様子を示している。DMA転送は、
以下のシーケンスで実行される。
The outline of the operation will be briefly described with reference to FIG. 9 by using an example. For example, it is assumed that the MTU size is 4 kbytes and the size of one side of the dual port data buffers 201 and 202 is 32 bytes. Also, receive F
It is assumed that 1 Kbyte of data is accumulated in the IFO memory 104. FIG. 9 shows the data buffer (A side 20) from the reception FIFO memory 104 as the reception timing.
1 or the B side 202) and the I / O bus transfer from the data buffer to the I / O bus 105 are shown. In addition, I /
The state of I / O bus transfer from the O bus 105 to the data buffer and network transfer from the data buffer to the transmission FIFO memory 103 is shown. DMA transfer is
It is executed in the following sequence.

【0047】送信要求がない場合には、受信FIFOメ
モリ104から最初の32バイトを読みだし、デュアル
ポートデータバッファA面201に書き込む(T1)。
この時点でまだ送信要求がない場合には、デュアルポー
トデータバッファA面201のデータをI/Oバス10
5に読出して主記憶107にDMAライトする(T2)
と同時に、受信FIFOメモリ104から次の32バイ
トを読みだしてデュアルポートデータバッファB面20
2に書き込む(T2)。送信要求がなお発生しない場合
には、このように、受信FIFOメモリ104から交互
にA面およびB面へ書き込まれ、書き込まれていない方
の面から読出しがパイプライン的に継続される。この例
では、4kバイトのデータは128回に分けてデータバ
ッファに書き込まれ、128回データバッファからよみ
だされる。この途中で、送信要求があった場合には、B
面からI/Oバスにデータが読み出される(T3)が、
他方の面(A面)は送信用に供される。すなわち、I/
Oバス105からA面にデータが書き込まれる(T
4)。同時に、受信が継続され、B面に受信FIFOメ
モリ104からデータが書き込まれる(T4)。次に、
B面からI/Oバス105にデータがよみだされると同
時に、A面から送信FIFOメモリ103にデータがよ
みだされる(T5)。続いて、A面に受信FIFOメモ
リ104からデータが書き込まれると同時に、B面にI
/Oバス105からデータが書き込まれる。
If there is no transmission request, the first 32 bytes are read from the reception FIFO memory 104 and written in the dual port data buffer A side 201 (T1).
If there is no request for transmission at this point, the data in the dual port data buffer A side 201 is transferred to the I / O bus 10.
5 and DMA write to the main memory 107 (T2).
At the same time, the next 32 bytes are read from the reception FIFO memory 104 and the dual port data buffer B side 20
Write to 2 (T2). When the transmission request is not generated yet, the reception FIFO memory 104 alternately writes to the A side and the B side in this way, and the reading is continued in the pipeline from the side not written. In this example, 4 kbytes of data is written 128 times into the data buffer and read from the data buffer 128 times. If there is a transmission request during this process, B
Data is read from the surface to the I / O bus (T3),
The other surface (A surface) is used for transmission. That is, I /
Data is written from the O bus 105 to the A side (T
4). At the same time, the reception is continued and the data is written from the reception FIFO memory 104 to the B side (T4). next,
Data is read from the B side to the I / O bus 105, and at the same time, data is read from the A side to the transmission FIFO memory 103 (T5). Then, data is written from the reception FIFO memory 104 to the A side, and at the same time, the I
Data is written from the / O bus 105.

【0048】受信処理の途中で送信要求を受け付けた場
合には、それまでの受信パイプラインは乱れるが、デー
タバッファ201,202の使用効率は落ちない。すな
わち、送受信全体のスループットは同一である。かつ、
送信のレイテンシは向上する。
When a transmission request is accepted during the reception process, the reception pipelines up to that point are disturbed, but the use efficiency of the data buffers 201 and 202 does not decrease. That is, the throughput of the entire transmission and reception is the same. And,
The transmission latency is improved.

【0049】図示しないが、送信のみの場合は、転送の
方向が逆になる以外、上記の受信のみの場合と同様であ
る。
Although not shown, the case of only transmission is the same as the case of only reception described above except that the transfer direction is reversed.

【0050】なお、本実施例では、2面のバッファを送
受信バッファとして使用しているが、一般的にはN面
(Nは6以上であることが好ましい)バッファを送受信
バッファとして使用し、送信と受信が同時に発生した場
合には、それぞれ3面を送信と受信に割り当てることに
より、上記パイプラインの乱れを最小限に抑えることが
可能である。
In this embodiment, the two-sided buffer is used as the transmission / reception buffer, but generally, the N-sided (N is preferably 6 or more) buffer is used as the transmission / reception buffer and the transmission is performed. When the reception and the reception occur simultaneously, it is possible to minimize the disturbance of the pipeline by allocating three planes to the transmission and the reception, respectively.

【0051】以上がネットワークアダプタ装置の動作の
説明である。
The above is the description of the operation of the network adapter device.

【0052】次に、主記憶107とネットワークアダプ
タ装置101の間でDMA送信処理、DMA受信処理を
行う際のデバイスドライバ120の処理フローについて
説明する。
Next, the processing flow of the device driver 120 when performing the DMA transmission processing and the DMA reception processing between the main memory 107 and the network adapter 101 will be described.

【0053】デバイスドライバ120は、送信処理をネ
ットワークアダプタ装置101に要求する前に、送信処
理に必要なコマンド情報を格納したエントリをリング状
に連結した送信キューテーブルを主記憶107上のコマ
ンドキュー領域108に確保するとともに、送信データ
を格納するバッファを主記憶107上のデータバッファ
領域109に確保する。同様に、デバイスドライバ12
0は、受信処理をネットワークアダプタ装置101に要
求する前に、受信処理に必要なコマンド情報を格納した
エントリをリング状に連結した受信キューテーブルをコ
マンドキュー領域108に確保し、受信データを格納す
るバッファをデータバッファ領域109に確保する。以
後、送信キューテーブルと受信キューテーブルの構造は
同一であるので総称的にキューテーブルと呼んでその構
成を詳細に説明する。
Before requesting the transmission processing to the network adapter device 101, the device driver 120 stores a transmission queue table in which entries storing command information necessary for the transmission processing are linked in a ring shape in the command queue area on the main memory 107. 108, and a buffer for storing transmission data is secured in the data buffer area 109 on the main memory 107. Similarly, the device driver 12
0 requests the network adapter device 101 to perform a receiving process, and secures a receiving queue table in the command queue area 108 in which entries storing command information necessary for the receiving process are connected in a ring shape and stores the received data. The buffer is secured in the data buffer area 109. Hereinafter, since the structures of the transmission queue table and the reception queue table are the same, they will be generically referred to as a queue table and their configurations will be described in detail.

【0054】図3に、キューテーブルのエントリの構
成、及びキューテーブルのエントリにより指示されるデ
ータバッファを示す。301は、コマンドキュー領域1
08内の1つのキューテーブルを示し、302は、この
キューテーブル301のエントリにより指示される、デ
ータバッファ領域109内のパケットバッファを示す。
ネットワークアダプタ装置101は、主記憶107上に
確保されたキューテーブル301の内容をフェッチする
ことにより送受信動作を起動する。
FIG. 3 shows the structure of queue table entries and the data buffers designated by the queue table entries. 301 is the command queue area 1
08 indicates one queue table, and 302 indicates a packet buffer in the data buffer area 109 indicated by the entry of this queue table 301.
The network adapter device 101 activates the transmission / reception operation by fetching the contents of the queue table 301 secured in the main memory 107.

【0055】コマンドキューテーブル301のビット3
03はキューテーブル301のエントリがネットワーク
アダプタ装置にとって有効な情報を含んでいるか否かを
示すビットであり、以後DMAENビットと呼ぶ。DM
AENビットが‘0’の場合には無効であることを示
し、‘1’の場合には有効であることを示す。ビット3
04は、そのエントリに記述されているコマンドに従っ
てDMA処理を終了した時に、ホストCPU106に対
して割り込みを発行するか否かを示すビットであり、以
後DMAiNTENビットと呼ぶ。DMAiNTENビ
ットが‘1’の場合には、処理の終了後に割り込みを発
行することを示し、‘0’の場合には割り込みを発行し
ないことを示す。
Bit 3 of command queue table 301
Reference numeral 03 is a bit indicating whether or not the entry of the queue table 301 includes information effective for the network adapter device, and will be referred to as a DMAEN bit hereinafter. DM
When the AEN bit is "0", it indicates that it is invalid, and when it is "1", it indicates that it is valid. Bit 3
Reference numeral 04 is a bit indicating whether or not to issue an interrupt to the host CPU 106 when the DMA processing is completed according to the command described in the entry, and will be hereinafter referred to as a DMAiNTEN bit. When the DMAiNTEN bit is "1", it indicates that the interrupt is issued after the processing is completed, and when it is "0", it indicates that the interrupt is not issued.

【0056】フィールド305は、ネットワークアダプ
タ装置101が送受信コマンド処理を終了した時の、送
受信パケットに関する何らかのステータス(STATU
S)情報を返すためのフィールドである。ステータス情
報をキューテーブルの301エントリの一部として格納
することによってデバイスドライバ120は常にパケッ
トに同期したステータス情報を得ることができるので、
後処理が簡単になる。
A field 305 is a status (STATUS) related to a transmission / reception packet when the network adapter device 101 finishes the transmission / reception command processing.
S) A field for returning information. By storing the status information as part of the 301 entry of the queue table, the device driver 120 can always obtain the status information synchronized with the packet.
Post-processing becomes easy.

【0057】フィールド306は、実際のデータが格納
されている領域の先頭アドレスを含んでいるフィールド
(BUF ADDR)である。フィールド307は、実
際に送受信したデータのバイト数を含んでいるフィール
ド(BUF COUNT)である。フィールド308
は、バッファ302の最大サイズを含んでいるフィール
ド(BUF SIZE)である。フィールド309は、
ネットワーク上でデータの送受信を実行している通信プ
ロセスの属性情報を含んでいるフィールド群であり、通
常ポート番号(PortID)、ノード番号(Node
ID)、プロセスID(PID)等から構成されるソフ
トウェアヘッダである。通常、ソフトウェアヘッダはO
Sによってデータ本体部と分離されるので、ソフトウェ
アヘッダをパケットの一部と考える場合にはデータバッ
ファ302と同一の領域に格納するが、図に示したよう
にコマンドキューテーブル301のエントリの一部とし
て格納することにより、デバイスドライバ120は、パ
ケットからヘッダを切り出す必要がなくなる。したがっ
て、デバイスドライバ120によるパケットの後処理の
高速化を図ることが可能となる。
The field 306 is a field (BUF ADDR) containing the start address of the area where the actual data is stored. The field 307 is a field (BUF COUNT) containing the number of bytes of actually transmitted / received data. Field 308
Is a field (BUF SIZE) containing the maximum size of the buffer 302. Field 309
A group of fields including attribute information of a communication process executing data transmission / reception on a network, which is usually a port number (PortID) and a node number (Node).
ID), a process ID (PID), and the like. Normally, the software header is O
Since it is separated from the data main body by S, when the software header is considered as a part of the packet, it is stored in the same area as the data buffer 302. However, as shown in the figure, part of the entry of the command queue table 301 is stored. By storing as, the device driver 120 does not need to cut out the header from the packet. Therefore, the post-processing of the packet by the device driver 120 can be speeded up.

【0058】以上の構成を持つエントリからなる送受信
コマンドキューテーブルの各々は、2対(4本)のポイ
ンタで管理する。そのうちの1対(開始ヘッドポインタ
および開始テイルポインタ)は、ネットワークアダプタ
装置101上のレジスタであり、残りの1対(終了ヘッ
ドポインタおよび終了テイルポインタ)はデバイスドラ
イバ120が管理する主記憶107上のポインタであ
る。
Each of the transmission / reception command queue tables composed of entries having the above configuration is managed by two pairs (four) of pointers. One pair (start head pointer and start tail pointer) among them is a register on the network adapter device 101, and the remaining pair (end head pointer and end tail pointer) is on the main memory 107 managed by the device driver 120. It is a pointer.

【0059】次に、図4および図5を用いて送受信コマ
ンドキューテーブルのポインタの管理方法について説明
する。受信処理の際の受信コマンドキューテーブル(図
4(B))のポインタによる操作方法は送信処理の際の
送信コマンドキューテーブル(図4(A))のそれと全
く同じであるので説明を省略し、ここでは送信処理の際
の送信コマンドキューテーブルの動作についてのみ説明
する。
Next, a method of managing the pointer of the transmission / reception command queue table will be described with reference to FIGS. The operation method by the pointer of the reception command queue table (FIG. 4 (B)) at the time of the reception processing is exactly the same as that of the transmission command queue table (FIG. 4 (A)) at the time of the transmission processing, and the description thereof will be omitted. Here, only the operation of the transmission command queue table in the transmission process will be described.

【0060】図4(A)に於いて、401は、ネットワ
ークアダプタ装置が現在の送信処理に必要とするコマン
ド情報を格納した主記憶上の送信コマンドキューテーブ
ル301aのエントリを指すヘッドポインタ(以後、送
信開始ヘッドポインタと呼ぶ)であり、402は、デバ
イスドライバ120が有効なエントリを書き込んだ、送
信コマンドキューテーブル301aのエントリの最後尾
を指すテイルポインタ(以後、送信開始テイルポインタ
と呼ぶ)である。403は、送信処理は終了した(主記
憶に書かれた)が、デバイスドライバ120がそのデー
タをプログラムに渡す処理をまだ完了してしない領域の
先頭を指すヘッドポインタ(以後、送信終了ヘッドポイ
ンタと呼ぶ)である。言い方を変えるとデバイスドライ
バ120が解放したエントリ(図4(A)では先頭(最
上部)のエントリ)の次のエントリを指すポインタと解
釈することが可能である。404は、送信処理は終了し
たが、デバイスドライバ120がまだ処理を完了してし
ない領域の最後尾を指すテイルポインタ(以後、送信終
了テイルポインタと呼ぶ)である。この送信終了テイル
ポインタ404は送信開始ヘッドポインタ401に追従
する。初期状態に於いては、送信開始ヘッドポインタ4
01及び送信開始テイルポインタ402は送信キューテ
ーブル301aの先頭を指している。また、送信終了ヘ
ッドポインタ403、送信終了テイルポインタ404も
同様に送信キューテーブルの先頭を指している。
In FIG. 4A, reference numeral 401 denotes a head pointer (hereinafter, referred to as an entry of the transmission command queue table 301a on the main memory in which the command information required by the network adapter device for the current transmission processing is stored. Reference numeral 402 denotes a transmission start head pointer, and reference numeral 402 denotes a tail pointer (hereinafter referred to as a transmission start tail pointer) that points to the end of the entry of the transmission command queue table 301a in which the device driver 120 has written a valid entry. . Reference numeral 403 denotes a head pointer (hereinafter referred to as a transmission end head pointer) that points to the beginning of an area in which the transmission process is completed (written in the main memory) but the device driver 120 has not yet completed the process of passing the data to the program. Call). In other words, it can be interpreted as a pointer that points to the entry next to the entry released by the device driver 120 (the entry at the top (top) in FIG. 4A). Reference numeral 404 is a tail pointer (hereinafter referred to as a transmission end tail pointer) that points to the end of an area where the transmission process has been completed but the device driver 120 has not yet completed the process. The transmission end tail pointer 404 follows the transmission start head pointer 401. In the initial state, the transmission start head pointer 4
01 and the transmission start tail pointer 402 point to the head of the transmission queue table 301a. Similarly, the transmission end head pointer 403 and the transmission end tail pointer 404 also point to the head of the transmission queue table.

【0061】前述のように、図4(B)の受信コマンド
キューテーブル301bのポインタ411〜414は、
送信コマンドキューテーブル301aのポインタ401
〜404と同様の働きをする。
As described above, the pointers 411 to 414 of the received command queue table 301b shown in FIG.
Pointer 401 of transmission command queue table 301a
~ Similar to 404.

【0062】以下、デバイスドライバ120が、送受信
について各々4個あるキューテーブルポインタのうち、
開始ヘッドポインタの値を参照することによって開始テ
イルポインタ、終了ヘッドポインタ、終了テイルポイン
タの計3個のポインタを管理、更新し、ネットワーク制
御プロセッサ102が、開始テイルポインタの値を参照
することによって開始ヘッドポインタを管理、更新する
ことにより、コマンドキュー制御方式に基づくDMA転
送機能を実現できることを示す。
In the following, among the four queue table pointers for transmission and reception, the device driver 120
A total of three pointers, a start tail pointer, an end head pointer, and an end tail pointer, are managed and updated by referring to the value of the start head pointer, and the network control processor 102 starts by referring to the value of the start tail pointer. It is shown that the DMA transfer function based on the command queue control method can be realized by managing and updating the head pointer.

【0063】図5に示すように、デバイスドライバ12
0は、(0) 初期処理ルーチンで、送信開始ヘッドポ
インタ401、送信開始テイルポインタ402、送信終
了ヘッドポインタ403、送信終了テイルポインタ40
4を‘0’に初期化する。
As shown in FIG. 5, the device driver 12
Reference numeral 0 is a (0) initial processing routine, which is a transmission start head pointer 401, a transmission start tail pointer 402, a transmission end head pointer 403, and a transmission end tail pointer 40.
4 is initialized to '0'.

【0064】(1) 送信開始ヘッドポインタ401か
ら順次エントリにコマンドを書き込む。同時に、そのエ
ントリのDMAENビットを“1”にする。
(1) Commands are sequentially written to the entries from the transmission start head pointer 401. At the same time, the DMAEN bit of that entry is set to "1".

【0065】(2) 送信開始テイルポインタ402は
コマンドを書き込んだエントリの数だけ進める。送信開
始ヘッドポインタ401から送信開始テイルポインタ4
02までの間のエントリを開始ウィンドウと呼ぶ。
(2) The transmission start tail pointer 402 advances by the number of entries in which the command is written. From the transmission start head pointer 401 to the transmission start tail pointer 4
The entries up to 02 are called the start window.

【0066】(3) コマンド制御レジスタ209に起
動コマンドを書き込み、送信コマンド制御部207の動
作を開始する。
(3) The start command is written in the command control register 209, and the operation of the transmission command control section 207 is started.

【0067】送信コマンド制御部207は、(4) コ
マンド制御レジスタ209に起動コマンドが書き込まれ
たら、送信開始ヘッドポインタ401と送信開始テイル
ポインタ402の値を読みだす。
The transmission command control section 207 (4) reads the values of the transmission start head pointer 401 and the transmission start tail pointer 402 when the start command is written in the command control register 209.

【0068】(5) 送信開始ヘッドポインタ401か
ら送信開始テイルポインタ402までの間(開始ウィン
ドウ)のエントリをコマンドキューテーブルから順次読
みだす。
(5) The entries from the transmission start head pointer 401 to the transmission start tail pointer 402 (start window) are sequentially read from the command queue table.

【0069】(6) 読みだしたエントリのDMAEN
ビットが‘1’であることを確認して、コマンドに従っ
てDMA転送を実行した後、STATUSフィールド3
05,BUF_COUNTフィールド307を返り値と
して元のエントリに書き込むと共にDMAENビット3
03を‘1’から‘0’に書き換える。
(6) DMAEN of the read entry
After confirming that the bit is "1" and executing the DMA transfer according to the command, the STATUS field 3
05, BUF_COUNT field 307 is written to the original entry as a return value and DMAEN bit 3
03 is rewritten from "1" to "0".

【0070】(7) 送信開始テイルポインタ402を
追い越さない範囲で、送信開始ヘッドポインタ401を
DMA転送を実行した回数分進める。
(7) The transmission start head pointer 401 is advanced by the number of times the DMA transfer is executed within the range where the transmission start tail pointer 402 is not overtaken.

【0071】(8) DMAiNTENビットが立って
いる場合には、DMA終了割り込み要求線220によ
り、割り込み制御部210(割り込みレジスタ)に割り
込みを要求する。
(8) When the DMAiNTEN bit is set, the DMA end interrupt request line 220 requests an interrupt to the interrupt controller 210 (interrupt register).

【0072】(9) これにより、割り込みがかかり、
割り込み処理ルーチン140(図8で後述)が起動され
る。
(9) This causes an interrupt,
The interrupt processing routine 140 (described later in FIG. 8) is activated.

【0073】デバイスドライバ120は、(10) 割
り込み処理ルーチン140(DMA終了割り込み、又は
OSのインターバルタイマ割り込み)のなかで、送信終
了ヘッドポインタ403から送信終了テイルポインタ4
04までの間のエントリの資源の解放を行い、資源解放
後、終了ヘッドポインタ403を更新する。また必要な
らば送信開始テイルポインタ402と送信終了ヘッドポ
インタ403までの間のエントリに新たにコマンドを書
き込む。送信終了テイルポインタ404は送信開始ヘッ
ドポインタ401の指すエントリのDMAENビット3
03が‘1’の場合には送信開始ヘッドポインタ401
の一つ手前の値に設定し、‘0’の場合には送信開始ヘ
ッドポインタ401と同一の値に設定する。
The device driver 120 executes the transmission end head pointer 403 to the transmission end tail pointer 4 in the interrupt processing routine 140 (DMA end interrupt or OS interval timer interrupt) (10).
The resources of the entries up to 04 are released, and after the resources are released, the end head pointer 403 is updated. If necessary, a new command is written in the entry between the transmission start tail pointer 402 and the transmission end head pointer 403. The transmission end tail pointer 404 is the DMAEN bit 3 of the entry pointed to by the transmission start head pointer 401.
When 03 is “1”, the transmission start head pointer 401
Is set to the value immediately before, and when it is '0', it is set to the same value as the transmission start head pointer 401.

【0074】デバイスドライバは、送信終了テイルポイ
ンタ404を過去のある時点(DMA終了割り込み、ま
たはOSのインターバル割り込み時)における送信開始
ヘッドポインタ401の値に設定し、デバイスドライバ
は、送信終了ヘッドポインタ403と送信終了テイルポ
インタ404の間の領域を上位プロトコル処理、上位ア
プリケーションに受け渡す。この際、デバイスドライバ
は、送信開始ヘッドポインタ401の値を参照すること
によって、資源開放可能領域の末端を知ることが可能で
あるが、I/Oバスを通じて毎回I/Oレジスタ(送信
開始ヘッドポインタ)の値を参照することは、DMAを
中断させることになって、全体のスループットを低減さ
せる原因となる。その上、I/Oバスのアクセスは通常
のメモリアクセスに比べて時間がかかることになり、デ
バイスドライバにとって付加が重い。そこで、送信終了
テイルポインタ404は、デバイスドライバが毎回送信
開始ヘッドポインタの値を参照することによって、資源
開放可能領域の末端を知ることのオーバヘッドを軽減す
るために有用である。
The device driver sets the transmission end tail pointer 404 to the value of the transmission start head pointer 401 at a certain point in time in the past (during DMA end interrupt or OS interval interrupt), and the device driver sets the transmission end head pointer 403. The area between the end pointer 404 and the transmission end tail pointer 404 is transferred to the upper layer protocol processing and upper layer application. At this time, the device driver can know the end of the resource releasable area by referring to the value of the transmission start head pointer 401, but the I / O register (transmission start head pointer) is always sent through the I / O bus. Referencing the value of () causes the DMA to be interrupted, which causes a reduction in the overall throughput. In addition, accessing the I / O bus takes more time than a normal memory access, which is a heavy addition to the device driver. Therefore, the transmission end tail pointer 404 is useful for reducing the overhead of knowing the end of the resource releasable area by the device driver referring to the value of the transmission start head pointer every time.

【0075】次に、ポインタの操作に関し、クリティカ
ルな状況を3つの場合に分けて考える。
Next, regarding the operation of the pointer, the critical situation will be divided into three cases.

【0076】(a) 送信終了ヘッドポインタ403、
送信終了テイルポインタ404が一致している場合、両
ポインタの指すエントリの次のエントリのDMAENビ
ットの値が‘1’の場合には、送信終了ヘッドポインタ
403、送信終了テイルポインタ404を更新しないよ
うにする。一方、送信開始テイルポインタ402は有効
な送信エントリの書き込みにより両ポインタと同じ値ま
で進めることができる。この場合には、送信開始テイル
ポインタ402、送信終了ヘッドポインタ403、送信
終了テイルポインタ401の3つのポインタが一致する
こともある。両ポインタの指すエントリの次のエントリ
のDMAENビットの値が‘0’の場合には、通常動作
と同様に送信終了ヘッドポインタ403、送信終了テイ
ルポインタ404を更新することができる。
(A) Transmission end head pointer 403,
When the transmission end tail pointers 404 match, and when the value of the DMAEN bit of the entry next to the entry pointed by both pointers is "1", the transmission end head pointer 403 and the transmission end tail pointer 404 are not updated. To On the other hand, the transmission start tail pointer 402 can be advanced to the same value as both pointers by writing a valid transmission entry. In this case, the three pointers of the transmission start tail pointer 402, the transmission end head pointer 403, and the transmission end tail pointer 401 may coincide with each other. When the value of the DMAEN bit of the entry next to the entry pointed by both pointers is "0", the transmission end head pointer 403 and the transmission end tail pointer 404 can be updated as in the normal operation.

【0077】(b) 送信終了テイルポインタ404と
送信開始ヘッドポインタ401が一致している場合、こ
の場合には、両ポインタの指すエントリのDMAENビ
ットの値は必ず‘0’である。このケースはネットワー
クアダプタ装置はDMA転送は終了したが、送信開始ヘ
ッドポインタ401の更新は終了していないという時間
帯で発生する。しかし、時間がたって送信開始ヘッドポ
インタ401が更新された時にこの状態から抜け出す。
(B) When the transmission end tail pointer 404 and the transmission start head pointer 401 match, in this case, the value of the DMAEN bit of the entry pointed to by both pointers is always "0". In this case, the network adapter device finishes the DMA transfer but does not finish updating the transmission start head pointer 401. However, when the transmission start head pointer 401 is updated over time, the state is exited.

【0078】(c) 送信開始ヘッドポインタ401、
送信開始テイルポインタ402が一致している場合、こ
の場合には、DMA転送を開始するためには両ポインタ
の指すエントリのDMAENビットの値をチェックする
ことによりエントリの送信コマンド情報が有効であるか
の判定する機構が必要になる。この機構の一つの実施例
としては、ネットワークアダプタ装置がポインタの一致
/不一致に依らず自律的にDMAENビットの値をフェ
ッチし、DMAENビットの値が‘1’の場合にのみD
MA転送を開始し、DMAENビットの値が‘0’の場
合にはスリープ状態になるようにする。もう一つの実施
例としては、ネットワークアダプタ装置が、ポインタの
一致を検出すると割り込み要求信号220によってホス
トに割り込みをかけてデバイスドライバ120に両ポイ
ンタの一致を通知し、DMAENビット303の値が
‘0’の場合に限り、デバイスドライバ120がネット
ワークアダプタ装置を起動するためのコマンドをコマン
ド制御レジスタ209に書き込むようにする。DMAE
Nビットの値が‘1’の間ネットワークアダプタ装置
は、送信処理を一時停止して受信処理にスイッチするこ
とができる。
(C) Transmission start head pointer 401,
If the transmission start tail pointers 402 match, in this case, in order to start the DMA transfer, whether the transmission command information of the entries is valid by checking the value of the DMAEN bit of the entries pointed by both pointers. A mechanism for determining is required. As one embodiment of this mechanism, the network adapter device autonomously fetches the value of the DMAEN bit irrespective of whether the pointers match / mismatch, and D is set only when the value of the DMAEN bit is "1".
The MA transfer is started, and when the value of the DMAEN bit is '0', the sleep state is set. In another embodiment, when the network adapter detects a pointer match, it interrupts the host with an interrupt request signal 220 to notify the device driver 120 of the pointer match, and the value of the DMAEN bit 303 is "0". Only in the case of ', the device driver 120 writes the command for starting the network adapter device in the command control register 209. DMAE
While the value of N bit is "1", the network adapter device can suspend the transmission process and switch to the reception process.

【0079】次に、図6に、送信コマンド制御部207
(図2)内の、割り込み信号信号220を発生する回路
部分の回路構成の一例を示す。上記説明からわかるよう
に、受信コマンド制御部208も同様の制御回路を含む
が、両回路は全く同一構成とすることができるので、送
信割り込みのための制御回路の構成についてのみ説明す
る。501は、コマンドキューテーブルからフェッチし
たコマンド情報の中のDMAENビット304を記憶す
るレジスタである。502は、レディ(RDY)ビット
レジスタと呼ぶフラグレジスタであり、デバイスドライ
バ120が送信コマンド制御部207に起動コマンドを
発行するとセットされて‘0’から‘1’になり、送受
信コマンド制御部207,208が通常動作をしている
間、‘1’の値を保持し、送信開始ヘッドボインタ40
1と送信開始テイルポインタ402が一致したらリセッ
トされて‘0’になる。503は、比較器であり、送信
開始ヘッドポインタ401と送信終了テイルポインタ4
02が一致している時に、比較器一致出力信号線514
に‘1’の値を出力する。504は、DMA開始レジス
タと呼ぶフラグレジスタであり、コマンド制御レジスタ
209に起動コマンドを書き込むことにより‘0’から
‘1’になる。505は、コマンドキューテーブルから
フェッチしたコマンド情報の中のDMAiNTENビッ
ト304を記憶するDMA割り込み許可レジスタであ
る。506は、DMAの終了を示すレジスタである。5
07はDMA動作中表示レジスタと呼ぶフラグレジスタ
であり、DMAが動作中に‘1’の値を保持している。
508は、DMA回数(データバッファの1面分のデー
タ転送の回数)を計数するDMAカウントレジスタであ
る。515は、DMAENビットレジスタ501の値が
‘0’の場合に、AND回路509の働きにより‘1’
になる不当DMAENビット割り込み要求信号線であ
る。516は、開始ヘッドボインタ401と開始テイル
ポインタ402が一致した時にAND回路510の働き
により‘0’になるポインタ一致割り込み要求信号線で
ある。517は、DMAが正常終了し、かつDMA割り
込み許可レジスタ505の値が‘1’の時にAND回路
512の働きにより‘1’になるDMA終了割り込み要
求信号線である。518は、OR回路513の働きによ
り、DMA動作可能時に‘1’になり、動作不能時に
‘0’になるDMA許可信号線である。この値がDMA
動作中表示レジスタ507に格納される。OR回路51
1の働きにより、不当DMAENビット割り込み要求信
号線515、ポインタ一致割り込み要求信号線516お
よびDMA終了割り込み要求信号線517の論理和信号
が割り込み要求信号(iNT)220として出力され
る。
Next, FIG. 6 shows the transmission command control unit 207.
FIG. 2 shows an example of the circuit configuration of the circuit portion that generates the interrupt signal signal 220 in FIG. As can be seen from the above description, the reception command control unit 208 also includes a similar control circuit, but since both circuits can have exactly the same configuration, only the configuration of the control circuit for the transmission interrupt will be described. A register 501 stores the DMAEN bit 304 in the command information fetched from the command queue table. Reference numeral 502 denotes a flag register called a ready (RDY) bit register, which is set when the device driver 120 issues a start command to the transmission command control unit 207 to change from “0” to “1”, and the transmission / reception command control unit 207, During the normal operation of 208, the value of "1" is held and the transmission start head boundary 40
When 1 and the transmission start tail pointer 402 match, they are reset to "0". A comparator 503 includes a transmission start head pointer 401 and a transmission end tail pointer 4
02 match, the comparator match output signal line 514
The value of '1' is output to. Reference numeral 504 denotes a flag register called a DMA start register, which changes from “0” to “1” by writing a start command in the command control register 209. Reference numeral 505 is a DMA interrupt permission register that stores the DMAiNTEN bit 304 in the command information fetched from the command queue table. Reference numeral 506 is a register indicating the end of DMA. 5
Reference numeral 07 is a flag register called a display register during DMA operation, which holds a value of "1" during operation of the DMA.
Reference numeral 508 is a DMA count register that counts the number of DMAs (the number of data transfers for one surface of the data buffer). When the value of the DMAEN bit register 501 is “0”, 515 is set to “1” by the function of the AND circuit 509.
Is an illegal DMAEN bit interrupt request signal line. Reference numeral 516 is a pointer match interrupt request signal line that becomes "0" by the action of the AND circuit 510 when the start head pointer 401 and the start tail pointer 402 match. Reference numeral 517 denotes a DMA end interrupt request signal line which becomes "1" by the operation of the AND circuit 512 when the DMA is normally completed and the value of the DMA interrupt permission register 505 is "1". Reference numeral 518 denotes a DMA permission signal line which becomes "1" when the DMA operation is possible and becomes "0" when the DMA operation is not possible due to the function of the OR circuit 513. This value is DMA
It is stored in the operating display register 507. OR circuit 51
By the function of 1, the logical sum signal of the illegal DMAEN bit interrupt request signal line 515, the pointer match interrupt request signal line 516 and the DMA end interrupt request signal line 517 is output as the interrupt request signal (iNT) 220.

【0080】最後に図7および図8に、デバイスドライ
バ120の処理フローを示す。図7はメインルーチンを
示し、図8は割り込み処理ルーチンを示す。
Finally, FIGS. 7 and 8 show the processing flow of the device driver 120. 7 shows a main routine, and FIG. 8 shows an interrupt processing routine.

【0081】図7のメインルーチンでは、前述したよう
に、デバイスドライバ120は、計8個の送受信コマン
ドキューテーブルのポインタを初期化した後(71)、
送受信コマンドを主記憶上の送受信コマンドキューテー
ブル108(118)に設定する(72)。その後、コ
マンド制御レジスタ209に起動コマンドを書き込むこ
とにより(73)、レディビットレジスタ502のレデ
ィビットが立つ。以後、アプリケーションプログラムの
要求に従って送受信コマンドキューテーブルを順次設定
し(74)、開始ヘッドポインタを除くポインタの更新
を行い(75)、ステップ74へ戻る。
In the main routine of FIG. 7, as described above, the device driver 120 initializes the pointers of a total of eight transmission / reception command queue tables (71),
The send / receive command is set in the send / receive command queue table 108 (118) in the main memory (72). After that, the ready bit of the ready bit register 502 is set by writing a start command in the command control register 209 (73). Thereafter, the send / receive command queue table is sequentially set according to the request of the application program (74), the pointers other than the start head pointer are updated (75), and the process returns to step 74.

【0082】図8の割り込み処理ルーチンでは、不当D
MAENビットエラー、ポインタ一致割り込み、終了割
り込みについて対処する。不当DMAENビットが
‘1’であれば(81)、デバイスドライバプロトコル
エラー処理を行う(82)。ポインタ一致の場合には
(83)、ポインタ一致割り込み処理ルーチンに進み、
初期設定と同様に送受信コマンドを主記憶上の送受信コ
マンドキュテーブル108(118)に設定した後(8
4)、コマンド制御レジスタに再び起動コマンドを書き
込む(85)ことにより通常動作を行う。ポインタ不一
致のの場合には、DMA終了割り込み処理を行う(8
6)。
In the interrupt processing routine of FIG.
Address the MAEN bit error, pointer match interrupt, and end interrupt. If the illegal DMAEN bit is '1' (81), device driver protocol error processing is performed (82). If the pointers match (83), proceed to the pointer matching interrupt processing routine,
After setting the send / receive command in the send / receive command queue table 108 (118) in the main memory as in the case of the initial setting (8
4) The normal operation is performed by writing the start command again in the command control register (85). If the pointers do not match, a DMA end interrupt process is performed (8
6).

【0083】[0083]

【発明の効果】本発明によって、安価、低レイテンシー
のノード間通信を実現するネットワークアダプタ装置を
実現することが可能である。具体的には、本発明により
以下の効果が得られる。
As described above, according to the present invention, it is possible to realize a network adapter device which realizes inexpensive and low latency communication between nodes. Specifically, the following effects are obtained by the present invention.

【0084】(1) ハードウェアの簡略化 大容量のバッファメモリをネットワークアダプタ装置上
に持つ必要がないのでハードウェアを小規模にまとめら
れると同時に安価な装置を供給することが可能になる。
(1) Simplification of hardware Since it is not necessary to have a large-capacity buffer memory on the network adapter device, it is possible to integrate the hardware on a small scale and to supply an inexpensive device.

【0085】(2) 低レイテンシノード間通信 小容量のデュアルポートメモリを用いることによりネッ
トワークと主記憶との送受信動作を細かいデータ単位で
インタリーブ動作させることできるので低レイテンシー
のノード間通信が可能になる。
(2) Low latency inter-node communication By using a small-capacity dual port memory, it is possible to interleave the transmission / reception operations between the network and the main memory in small data units, so that low latency inter-node communication becomes possible. .

【0086】(3) デバイスドライバの部品互換性 デバイスドライバは、送受信共にコマンドを各々リング
バッファ構造のコマンドキューテーブルに積んでいくだ
けで送受信動作を実現できるので、送信と受信のデバイ
スドライバインタフェイスを相互互換性を持ったインタ
フェイスとすることが可能になる。またいずれか一方の
デバイスドライバを作成すれば良いので保守も容易にな
る。
(3) Component compatibility of device driver Since the device driver can realize the transmission / reception operation only by accumulating the commands in the command queue table of the ring buffer structure for both transmission and reception, the device driver interface for transmission and reception is provided. It is possible to make the interface compatible with each other. Further, maintenance is easy because only one of the device drivers needs to be created.

【0087】(4) デバイスドライバの高速動作 実施例に示したように、送信(受信)終了ヘッドポイン
タおよび送信(受信)終了ヘッドポインタを、デバイス
ドライバが参照することにより、ネットワークアダプタ
装置に対して、高速にコマンドを与えることができる。
(4) High-speed operation of device driver As shown in the embodiment, the device driver refers to the transmission (reception) end head pointer and the transmission (reception) end head pointer, and , Can give commands fast.

【0088】(5) 割り込みオーバヘッドの軽減 送受信の終了割り込みの有無をエントリ単位でコマンド
キューテーブルに記述できるので、デバイスドライバに
対する割り込み回数を簡単に変更することも可能であ
る。この結果、デバイスドライバを再設計することな
く、ネットワークの速度に見合った応答速度を持つデバ
イスドライバを実現することができる。
(5) Reduction of Interrupt Overhead Since the presence / absence of a transmission / reception end interrupt can be described in the command queue table for each entry, the number of interrupts to the device driver can be easily changed. As a result, a device driver having a response speed matching the speed of the network can be realized without redesigning the device driver.

【0089】(6) ヘッダ自動分離機構の実現 送受信パケットのヘッダ部をコマンドキューテーブルの
エントリの一部として蓄えることができるので、本来O
Sが行っていた機能を代替することができる。
(6) Realization of automatic header separation mechanism Since the header part of a transmission / reception packet can be stored as a part of the entry of the command queue table, it is originally O
The function performed by S can be replaced.

【0090】(7) ステータスのパケット同期機構の
実現 送受信動作のステータスをコマンドキューテーブルのエ
ントリのフィールドに持つことにより、非同期にステー
タスを返すための、リンクリスト等の複雑なデータ構造
を使うことなく送受信パケットに同期したステータス情
報をOSに返すことができる。
(7) Realization of status packet synchronization mechanism By having the status of transmission / reception operation in the entry field of the command queue table, it is possible to return the status asynchronously without using a complicated data structure such as a linked list. The status information synchronized with the transmitted / received packet can be returned to the OS.

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

【図1】 本発明の一実施例によるネットワークアダプ
タ装置を採用した計算機をネットワーク接続した計算機
システムのブロック図
FIG. 1 is a block diagram of a computer system in which computers adopting a network adapter device according to an embodiment of the present invention are network-connected.

【図2】 図1内に示したネットワーク制御プロセッサ
の内部構成を示すブロック図
FIG. 2 is a block diagram showing an internal configuration of the network control processor shown in FIG.

【図3】 実施例におけるコマンドキューテーブルエン
トリの構成の説明図
FIG. 3 is an explanatory diagram of a configuration of a command queue table entry in the embodiment.

【図4】 実施例における送信処理、受信処理のための
コマンドキューテーブル制御ポインタの説明図
FIG. 4 is an explanatory diagram of a command queue table control pointer for transmission processing and reception processing according to the embodiment.

【図5】 実施例における送信処理、受信処理のための
コマンドキューテーブル制御ポインタの他の説明図
FIG. 5 is another explanatory diagram of a command queue table control pointer for transmission processing and reception processing in the embodiment.

【図6】 実施例におけるクリティカルパス制御回路の
回路図
FIG. 6 is a circuit diagram of a critical path control circuit according to an embodiment.

【図7】 デバイスドライバの処理のメインルーチンの
フローチャート
FIG. 7 is a flowchart of a main routine of device driver processing.

【図8】 デバイスドライバの割り込み処理ルーチンの
フローチャート
FIG. 8 is a flowchart of a device driver interrupt processing routine.

【図9】 実施例におけるネットワーク制御プロセッサ
の動作例を表わすフローチャート
FIG. 9 is a flowchart showing an operation example of the network control processor in the embodiment.

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

100,110…計算機 101,111…ネットワークアダプタ装置 102,112…ネットワーク制御プロセッサ 103,113…送信FIFOメモリ 104,114…受信FIFOメモリ 105,115…I/Oバス 106,116…CPU 107,117…主記憶 108,118…送受信コマンドキュー領域 109,119…送受信データ領域 120,130…デバイスドライバ 140…割り込み処理ルーチン 201…デュアルポートのデータバッファA面 201…デュアルポートのデータバッファB面 203…I/Oバスインタフェイス 204…ステートマシン 205…FIFO制御部 206…DMA制御部 207…送信コマンド制御部 208…受信コマンド制御部 209…コマンド制御レジスタ 210…割り込み制御部 211…送信要求信号 212…受信要求信号 213…FIFO要求信号 214…DMA要求信号 215…データバッファA面R/W制御信号 216…データバッファB面R/W制御信号 217…DMAR/W制御信号 218…送信FIFOR/W制御信号 219…受信FIFOR/W制御信号 220…送信コマンド制御部のホスト割り込み要求信号 221…受信コマンド制御部のホスト割り込み要求信号 222…ホストへの割り込み信号 223…I/Oレジスタ 301…送受信コマンドキューテーブル 302…送受信データ領域 303…DMA開始許可ビット 304…割り込み許可ビット 305…送受信ステータス 306…送受信データ領域の先頭アドレス 307…実際の送受信データ数 308…送受信データ領域の最大サイズ 309…ソフトウェアヘッダ領域 401…送信開始ヘッドポインタ 402…送信開始テイルポインタ 403…送信終了ヘッドポインタ 404…送信終了テイルポインタ 411…受信開始ヘッドポインタ 412…受信開始テイルポインタ 413…受信終了ヘッドポインタ 414…受信終了テイルポインタ 501…DMAENビットレジスタ 502…レディビットレジスタ 503…比較器 504…DMA開始レジスタ 505…DMA割り込み許可レジスタ 506…DMA終了レジスタ 507…DMA動作中表示レジスタ 508…DMAカウントレジスタ 509…AND回路 510…AND回路 511…OR回路 512…AND回路 513…OR回路 514…比較器一致出力信号線 515…不当DMAENビット割り込み要求信号線 516…ポインタ一致割り込み要求信号線 517…DMA終了割り込み要求信号線 518…DMA許可信号線 100, 110 ... Computer 101, 111 ... Network adapter device 102, 112 ... Network control processor 103, 113 ... Transmission FIFO memory 104, 114 ... Reception FIFO memory 105, 115 ... I / O bus 106, 116 ... CPU 107, 117 ... Main memory 108, 118 ... Send / receive command queue area 109, 119 ... Send / receive data area 120, 130 ... Device driver 140 ... Interrupt processing routine 201 ... Dual port data buffer A side 201 ... Dual port data buffer B side 203 ... I / O bus interface 204 ... State machine 205 ... FIFO control unit 206 ... DMA control unit 207 ... Send command control unit 208 ... Receive command control unit 209 ... Command control register 210 ... Interrupt control Part 211 ... Transmission request signal 212 ... Reception request signal 213 ... FIFO request signal 214 ... DMA request signal 215 ... Data buffer A side R / W control signal 216 ... Data buffer B side R / W control signal 217 ... DMAR / W control signal 218 ... Transmission FIFOR / W control signal 219 ... Reception FIFOR / W control signal 220 ... Transmission command control unit host interrupt request signal 221 ... Reception command control unit host interrupt request signal 222 ... Host interrupt signal 223 ... I / O Register 301 ... Send / receive command queue table 302 ... Send / receive data area 303 ... DMA start enable bit 304 ... Interrupt enable bit 305 ... Send / receive status 306 ... Send / receive data area start address 307 ... Actual send / receive data count 308 ... Send / receive data area maximum Is 309 ... software header area 401 ... transmission start head pointer 402 ... transmission start tail pointer 403 ... transmission end head pointer 404 ... transmission end tail pointer 411 ... reception start head pointer 412 ... reception start tail pointer 413 ... reception end head pointer 414 ... Reception end tail pointer 501 ... DMAEN bit register 502 ... Ready bit register 503 ... Comparator 504 ... DMA start register 505 ... DMA interrupt enable register 506 ... DMA end register 507 ... DMA operating display register 508 ... DMA count register 509 ... AND circuit 510 ... AND circuit 511 ... OR circuit 512 ... AND circuit 513 ... OR circuit 514 ... Comparator coincidence output signal line 515 ... Illegal DMAEN bit interrupt request Signal line 516 ... Pointer match interrupt request signal line 517 ... DMA end interrupt request signal line 518 ... DMA enable signal line

───────────────────────────────────────────────────── フロントページの続き (72)発明者 村瀬 彰一 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 岡田 哲彦 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Shoichi Murase 1-280, Higashi Koikekubo, Kokubunji, Tokyo Inside Central Research Laboratory, Hitachi, Ltd. (72) Tetsuhiko Okada 1-280, Higashi Koikeku, Kokubunji, Tokyo Hitachi Ltd. Central Research Center

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】計算機にネットワーク機能を付加するため
のネットワークアダプタであって、 ネットワークに対してデータを送信するための送信用フ
ァーストインファーストアウトバッファと、 前記ネットワークからデータを受信するための受信用フ
ァーストインファーストアウトバッファと、 少なくとも2面のデュアルポートバッファメモリと、 受信時に、前記受信用ファーストインファーストアウト
バッファから前記デュアルポートバッファメモリの1面
へのデータ転送、および前記デュアルポートバッファメ
モリの他の面から前記計算機の主記憶へのデータ転送を
パイプライン的に行うための第1の制御手段と、 送信時に、前記主記憶から前記デュアルポートバッファ
メモリの1面へのデータ転送、および前記デュアルポー
トバッファメモリの他の面から前記送信用ファーストイ
ンファーストアウトバッファへのデータ転送をパイプラ
イン的に行うための第2の制御手段と、 を備えたことを特徴とするネットワークアダプタ装置。
1. A network adapter for adding a network function to a computer, a first-in first-out buffer for transmission for transmitting data to the network, and a receiving for receiving data from the network. A first-in first-out buffer, at least two dual-port buffer memories, a data transfer from the receiving first-in-first-out buffer to one surface of the dual-port buffer memory during reception, and another dual-port buffer memory Control means for pipelined data transfer from the main memory to the main memory of the computer; data transfer from the main memory to one surface of the dual port buffer memory during transmission; Port Buff Network adapter apparatus characterized by comprising: a second control means for performing the other side of the memory data transfer to the transmitter first-in-first-out buffer in a pipeline manner, the.
【請求項2】請求項1のネットワークアダプタ装置にお
いて、 該装置を駆動するデバイスドライバが前記受信用ファー
ストインファーストアウトバッファから前記主記憶への
転送を開始するための受信コマンドを記述したテーブル
を書き込むテーブルを前記主記憶上に設け、 前記受信コマンドを記述したテーブルの最初のエントリ
を指す第1のポインタ、及び該受信コマンドを記述した
最終エントリを指す第2のポインタ、前記ファーストイ
ンファーストアウトバッファから前記主記憶への転送が
終了し、かつ、前記主記憶に対して前記デバイスドライ
バによる処理が未完了である受信コマンドを記述したテ
ーブルの最初のエントリを指す第3のポインタ、および
前記受信用ファーストインファーストアウトバッファか
ら前記主記憶への転送が終了してかつ前記デバイスドラ
イバによる処理が未完了である受信コマンドを記述した
テーブルの最終のエントリを指す第4のポインタを有
し、 前記デバイスドライバは、前記テーブルに対して、前記
第1のポインタの示すエントリから受信コマンドを書込
みながら、前記第2のポインタを更新し、 前記第1の制御手段は、前記第1のポインタの指すエン
トリを読みだしてコマンドを解釈実行することにより前
記受信用ファーストインファーストアウトバッファから
前記主記憶へのデータ転送を実行後、前記第1のポイン
タの値を更新し、かつ該第1のポインタが前記第2のポ
インタに一致するまで当該データ転送を継続し、さら
に、 前記デバイスドライバは、前記主記憶に対する処理を終
了後、当該エントリを解放しながら前記第3のポインタ
を更新するとともに、前記第1のポインタを追跡するよ
うに前記第4のポインタを更新することを特徴とするネ
ットワークアダプタ装置。
2. The network adapter device according to claim 1, wherein a device driver that drives the device writes a table describing a reception command for starting transfer from the reception first-in first-out buffer to the main memory. A table is provided on the main memory, a first pointer pointing to the first entry of the table describing the received command, a second pointer pointing to the last entry describing the received command, from the first-in first-out buffer A third pointer that points to the first entry of a table that describes a reception command that has been transferred to the main memory and that has not been processed by the device driver for the main memory, and the reception first Transfer from the in-first-out buffer to the main memory Has a fourth pointer that points to the last entry of the table that describes a received command whose processing by the device driver is incomplete and which has not been completed. While writing the received command from the entry indicated by the pointer, the second pointer is updated, and the first control means reads the entry pointed to by the first pointer and interprets the command to execute the command for reception. After the data transfer from the first-in first-out buffer to the main memory is executed, the value of the first pointer is updated, and the data transfer is continued until the first pointer matches the second pointer. Furthermore, the device driver, after finishing the processing for the main memory, releases the entry and then the third driver A network adapter device characterized by updating the pointer and updating the fourth pointer so as to track the first pointer.
【請求項3】請求項1のネットワークアダプタ装置にお
いて、 該装置を駆動するデバイスドライバが前記主記憶から前
記送信用ファーストインファーストアウトバッファへの
転送を開始するための送信コマンドを記述したテーブル
を書き込むテーブルを前記主記憶上に設け、 前記送信コマンドを記述したテーブルの最初のエントリ
を指す第1のポインタ、及び該送信コマンドを記述した
最終エントリを指す第2のポインタ、前記主記憶から前
記ファーストインファーストアウトバッファへの転送が
終了し、かつ、前記主記憶に対して前記デバイスドライ
バによる処理が未完了である送信コマンドを記述したテ
ーブルの最初のエントリを指す第3のポインタ、および
前記主記憶から前記送信用ファーストインファーストア
ウトバッファへの転送が終了し、かつ前記デバイスドラ
イバによる処理が未完了である送信コマンドを記述した
テーブルの最終のエントリを指す第4のポインタを有
し、 前記デバイスドライバは、前記テーブルに対して、前記
第1のポインタの示すエントリから送信コマンドを書込
みながら、前記第2のポインタを更新し、 前記第1の制御手段は、前記第1のポインタの指すエン
トリを読みだしてコマンドを解釈実行することにより前
記主記憶から前記送信用ファーストインファーストアウ
トバッファへのデータ転送を実行後、前記第1のポイン
タの値を更新し、かつ該第1のポインタが前記第2のポ
インタに一致するまで当該データ転送を継続し、さら
に、 前記デバイスドライバは、前記主記憶に対する処理を終
了後、当該エントリを解放しながら前記第3のポインタ
を更新するとともに、前記第1のポインタを追跡するよ
うに前記第4のポインタを更新することを特徴とするネ
ットワークアダプタ装置。
3. The network adapter device according to claim 1, wherein a device driver for driving the device writes a table describing a transmission command for starting transfer from the main memory to the transmission first-in first-out buffer. A table is provided on the main memory, and a first pointer that points to the first entry of the table that describes the send command, and a second pointer that points to the last entry that describes the send command; From the main memory, a third pointer pointing to the first entry of a table describing a transmission command for which transfer to the first-out buffer is completed and processing by the device driver for the main memory is incomplete Transfer to the first-in first-out buffer for transmission Has a fourth pointer that points to the last entry of the table that describes a transmission command that has been completed and has not been processed by the device driver. While writing the transmission command from the entry indicated by the pointer, the second pointer is updated, and the first control means reads the entry pointed to by the first pointer and interprets and executes the command to execute the main memory. From the first-in first-out buffer for transmission to the first pointer, the value of the first pointer is updated, and the data transfer is continued until the first pointer matches the second pointer. Furthermore, the device driver, after finishing the processing for the main memory, releases the entry and then the third driver A network adapter device characterized by updating the pointer and updating the fourth pointer so as to track the first pointer.
【請求項4】請求項2または3記載のネットワークアダ
プタ装置において、前記ネットワーク上の送受信パケッ
トのステータス情報を記述するフィールドを、前記テー
ブルの一部に有することを特徴とするネットワークアダ
プタ装置。
4. The network adapter device according to claim 2 or 3, wherein a field describing status information of transmission / reception packets on the network is provided in a part of the table.
【請求項5】請求項2または3記載のネットワークアダ
プタ装置において、該装置が処理の終了後に割り込みの
発行の有無を指定するためのフィールドを前記テーブル
の一部に有することを特徴とするネットワークアダプタ
装置。
5. The network adapter according to claim 2 or 3, wherein the device has a field for designating whether or not to issue an interrupt after the processing is completed, as a part of the table. apparatus.
【請求項6】請求項2記載のネットワークアダプタ装置
において、前記ネットワークから受信したパケットのヘ
ッダ部をデータ本体部とは別に前記受信コマンドを記述
したテーブルの一部に書き込むことを特徴とするネット
ワークアダプタ装置。
6. The network adapter according to claim 2, wherein the header part of the packet received from the network is written in a part of a table describing the received command separately from the data body part. apparatus.
【請求項7】請求項1記載のネットワークアダプタ装置
において、前記デュアルポートバッファメモリの1面の
サイズを、前記ネットワークの最大転送ユニット(MT
U)サイズに比べて十分小さくしたことを特徴とするネ
ットワークアダプタ装置。
7. The network adapter device according to claim 1, wherein the size of one surface of the dual port buffer memory is set to a maximum transfer unit (MT) of the network.
U) A network adapter device characterized by being made sufficiently smaller than the size.
JP5057511A 1993-03-17 1993-03-17 Network adaptor device Pending JPH06274425A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5057511A JPH06274425A (en) 1993-03-17 1993-03-17 Network adaptor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5057511A JPH06274425A (en) 1993-03-17 1993-03-17 Network adaptor device

Publications (1)

Publication Number Publication Date
JPH06274425A true JPH06274425A (en) 1994-09-30

Family

ID=13057766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5057511A Pending JPH06274425A (en) 1993-03-17 1993-03-17 Network adaptor device

Country Status (1)

Country Link
JP (1) JPH06274425A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013629A1 (en) * 2004-08-05 2006-02-09 Hitachi Ulsi Systems Co., Ltd. Radio communication terminal apparatus
JP2007028113A (en) * 2005-07-14 2007-02-01 Noritsu Koki Co Ltd Data processing unit
US7272676B2 (en) 2003-05-20 2007-09-18 Seiko Epson Corporation Data transmission controller that restarts data transmission when reconstruction is completed
WO2008026691A1 (en) * 2006-08-31 2008-03-06 Yoshikawa Rf Systems Co., Ltd. Data carrier and data carrier system
JP2009511318A (en) * 2005-10-06 2009-03-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Subscriber interface that connects a microcontroller and a FlexRay communication module, FlexRay subscriber device, and method for transmitting a message via a subscriber interface that connects a microcontroller and a FlexRay communication module
JP2011018358A (en) * 2010-09-13 2011-01-27 Tao Logic Systems Llc Link bridge
US7961733B2 (en) 2002-12-13 2011-06-14 Nvidia Corporation Method and apparatus for performing network processing functions
JP2012160148A (en) * 2011-02-03 2012-08-23 Rohm Co Ltd System lsi
JP2013061857A (en) * 2011-09-14 2013-04-04 Toshiba Corp Information processing device and program
JP2014067915A (en) * 2012-09-26 2014-04-17 Juki Corp Electronic component mounting device
JP2016522593A (en) * 2013-03-14 2016-07-28 ローズマウント インコーポレイテッド Industrial process network communication system
JP2016535483A (en) * 2013-10-18 2016-11-10 ゾモジョ・ピーティーワイ・リミテッド Network interface

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7961733B2 (en) 2002-12-13 2011-06-14 Nvidia Corporation Method and apparatus for performing network processing functions
US7272676B2 (en) 2003-05-20 2007-09-18 Seiko Epson Corporation Data transmission controller that restarts data transmission when reconstruction is completed
WO2006013629A1 (en) * 2004-08-05 2006-02-09 Hitachi Ulsi Systems Co., Ltd. Radio communication terminal apparatus
JP2007028113A (en) * 2005-07-14 2007-02-01 Noritsu Koki Co Ltd Data processing unit
JP2009511318A (en) * 2005-10-06 2009-03-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Subscriber interface that connects a microcontroller and a FlexRay communication module, FlexRay subscriber device, and method for transmitting a message via a subscriber interface that connects a microcontroller and a FlexRay communication module
WO2008026691A1 (en) * 2006-08-31 2008-03-06 Yoshikawa Rf Systems Co., Ltd. Data carrier and data carrier system
JP2011018358A (en) * 2010-09-13 2011-01-27 Tao Logic Systems Llc Link bridge
JP2012160148A (en) * 2011-02-03 2012-08-23 Rohm Co Ltd System lsi
JP2013061857A (en) * 2011-09-14 2013-04-04 Toshiba Corp Information processing device and program
US8806078B2 (en) 2011-09-14 2014-08-12 Kabushiki Kaisha Toshiba Information processing device and program product
JP2014067915A (en) * 2012-09-26 2014-04-17 Juki Corp Electronic component mounting device
JP2016522593A (en) * 2013-03-14 2016-07-28 ローズマウント インコーポレイテッド Industrial process network communication system
JP2016535483A (en) * 2013-10-18 2016-11-10 ゾモジョ・ピーティーワイ・リミテッド Network interface

Similar Documents

Publication Publication Date Title
JP2539614B2 (en) Apparatus and method for generating pointer address
US8352689B2 (en) Command tag checking in a multi-initiator media controller architecture
US6128669A (en) System having a bridge with distributed burst engine to decouple input/output task from a processor
US7533197B2 (en) System and method for remote direct memory access without page locking by the operating system
EP1466255B1 (en) Supercharge message exchanger
US5870567A (en) Delayed transaction protocol for computer system bus
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US5978858A (en) Packet protocol and distributed burst engine
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
US20050235072A1 (en) Data storage controller
US6938094B1 (en) Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US8990456B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
JPH06274425A (en) Network adaptor device
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US7409486B2 (en) Storage system, and storage control method
WO2008057833A2 (en) System and method for remote direct memory access without page locking by the operating system
EP1182543A1 (en) Maintaining remote queue using two counters in transfer controller with hub and ports
US7024523B1 (en) Host adapter integrated data FIFO and data cache and method for improved host adapter sourcing latency
JP2002198987A (en) Active port of transfer controller with hub and port