JPH09171492A - ネットワークインターフェース - Google Patents

ネットワークインターフェース

Info

Publication number
JPH09171492A
JPH09171492A JP8207369A JP20736996A JPH09171492A JP H09171492 A JPH09171492 A JP H09171492A JP 8207369 A JP8207369 A JP 8207369A JP 20736996 A JP20736996 A JP 20736996A JP H09171492 A JPH09171492 A JP H09171492A
Authority
JP
Japan
Prior art keywords
buffer
frame
descriptor
network interface
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8207369A
Other languages
English (en)
Other versions
JP2990345B2 (ja
Inventor
B Osborn Randy
ランディ・ビー・オズボーン
H Howard John
ジョン・エイチ・ホワード
T Casslay Ross
ロス・ティー・キャスレイ
J Hearn Douglas
ダグラス・ジェイ・ハーン
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.)
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Research Laboratories Inc
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 Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Research Laboratories Inc
Publication of JPH09171492A publication Critical patent/JPH09171492A/ja
Application granted granted Critical
Publication of JP2990345B2 publication Critical patent/JP2990345B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • H04L2012/5609Topology
    • H04L2012/5613Bus (including DQDB)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5616Terminal equipment, e.g. codecs, synch.
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • H04L2012/5653Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL]
    • H04L2012/5658Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL] using the AAL5
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 パケットをベースとするデータ送信システム
において、フレームモードのすべてが共存でき、最適バ
ッファモード、ダイナミックおよびスタティックチェイ
ニング、ストリーミングを可能にすると共に、チャッキ
ング可能にするネットワークインターフェースを得る。 【解決手段】 フレキシブルな最適化されたブロッキン
グを生じない送信インターフェース、異なるサイズのパ
ケットに適合するよう、バッファを多数のチャンクまた
はセグメントに分割するチャンキングシステムを含む受
信インターフェース、更に、該受信インターフェースは
リンクされたリスト内の第1バッファのためにリンク要
素が不要であるチャンキングをサポートするための最適
化リンクリスト方法を含み、実施の形態では小パケット
を送信する際の相対的オーバーヘッドを減少するように
小パケットフォーマットが与えられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、データパケット
伝送システムにおけるネットワークインターフェースに
関し、より詳細には、パケットから成るデータがフレー
ムを構成し、各フレームはチャンネルの記述を含む状態
で送信機からチャンネルまたはバーチャルサーキットを
介して受信機へ送信するデータ伝送システムにおけるネ
ットワークインターフェースに関する。
【0002】
【従来の技術】コネクションベースのデータ送信システ
ムは、多数のネットワーク交換機すなわちノードを通る
送信ノードと受信ノードとの間のコネクション、すなわ
ちいわゆるバーチャルチャンネルを通して送信側から受
信側へデータを送信する。データのパケットをこのよう
にして送る際、さらにあるシステムでは、ATMネット
ワーク内のセルのような構成サブ要素は送信ノードから
受信ノードへの送信のためのバーチャルチャンネルによ
って識別される。
【0003】他のネットワーク上のコンピュータおよび
データシステムとのデータの送受信をするように装備さ
れたコンピュータでは、ネットワークインターフェース
が例えば銅線、同軸ケーブルまたは光ファイバのような
物理的ネットワーク媒体へホストコンピュータを接続す
る。このホストコンピュータにはネットワークインター
フェースが設けられており、このネットワークインター
フェースは、送信のため、送信すべきパケットデータを
含むホストコンピュータによって与えられるデータバッ
ファを取り込み、これらパケットを送るようになってお
り、ネットワークインターフェースはこれらパケットが
送られたときホストコンピュータに知らせる。
【0004】ホストコンピュータのネットワークインタ
ーフェースは、受信のため、入力するパケットを記憶で
きる空のデータバッファを提供する。このネットワーク
インターフェースはホストデータバッファをパケットデ
ータで満たし、すべてのパケットの受信が完了したとき
ホストコンピュータに知らせる。
【0005】これら機能に加えて、ネットワークインタ
ーフェースは、使用されるデータ通信機構に適切な物理
的層およびデータリンク層機能を実現する。物理的層と
は物理的媒体、例えば同軸ケーブルまたはワイヤー等を
通してビットを送るためのプロトコルであり、データリ
ンク層とはネットワークの一端から他端へデータのユニ
ットを伝送するためのプロトコルを意味する。ネットワ
ークインターフェースは、使用されるデータ通信機構に
適切な機能、例えばより小さいデータユニットとなるよ
うにパケットをセグメント化または分割すること、セグ
メント化の逆に再組み立てすること、およびフロー制御
の機能を実行する。
【0006】送信すべきデータパケットが必要であれ
ば、送信用のより小さい単位に分割され、次にフレーム
を形成するよう適切な制御情報でカプセル状とされる。
この発明の目的のために、データ通信を作動させること
ができる方法は多数あるが、各フレームは、本明細書で
バーチャルチャンネルまたはコネクションと称される送
信ノードと受信ノードとの間の指定チャンネル上で伝送
される。これらのタイプのデータ通信システムではバー
チャルコネクション、すなわちチャンネルの識別子をフ
レーム内で搬送するようになっている。
【0007】ホストおよびネットワークインターフェー
スは、データ通信およびホストとネットワークインター
フェースとの間の同期のために、一般にリングキューを
使用する。リングキューすなわち円形キューは、キュー
が固定されたサイズのメモリを占めるよう、先入れ先出
し、すなわちFIFOキューがラップする共通なデータ
構造である。
【0008】一般に、ネットワークインターフェース内
の送信側にはこれらリングキューのうちの2つが割り当
てられ、受信側には2つが割り当てられる。送信側に関
しては、送信側内のキューのうちの1つが送信すべきフ
レームを表示する。この「送信入力」キュー内の各エン
トリーは1つのフレームを記述する。従って、これらエ
ントリーはフレームデスクリプタ(フレーム識別子)と
して知られている。送信側の第2のキューは送信が完了
したフレームのデスクリプタ(識別子)を含む「送信完
了」キューである。受信側では1つのキューは空のバッ
ファを記述するデスクリプタを含む「フリーバッファ」
キューである。受信側の第2キューは一般に「受信完
了」キューであり、このキューではエントリーは受信の
完了したフレームデータを記述するフレームデスクリプ
タとなっている。
【0009】一般に、リングキューは、リングキューに
付加的エントリーを加えることができる場所を記述する
「テール」または「イン」ポインタ、およびリングキュ
ーからエントリーを除くことができる場所を記述する
「ヘッド」または「アウト」ポインタを有する。
【0010】作動中、ホストは送信入力キューのテール
にフレームデスクリプタを挿入し、作用すべきフレーム
デスクリプタがあることをネットワークインターフェー
スに通知する。当然ながら、処理すべきフレームデスク
リプタがあることをネットワークインターフェースに通
知する方法は多数ある。1つの方法は、ヘッド位置にお
けるエントリーを読み出すことにより、ネットワークイ
ンターフェースはホストに応答し、テールポインタを更
新することである。
【0011】通知の第2の方法は、ホストが他のレジス
タに書き込みをし、リングキューのヘッドに有効エント
リーがあることをネットワークインターフェースに通知
する方法である。この方法と組み合わせてエントリーが
有効であることを表示する現在ビットをリングキューエ
ントリー内に入れることが多い。
【0012】第3の通知方法は、ネットワークインター
フェースがリングキューのヘッド位置をポーリングし、
この位置を繰り返し読み出すことである。ネットワーク
インターフェースがセットされた現在ビットを通知する
と、エントリーは送信すべきフレームを記述する有効フ
レームデスクリプタを含む。これら前述した方法は、リ
ングキューが空の状態から空でない状態に移行したこと
をネットワークインターフェースに通知するためのプロ
セスを記述する。
【0013】送信完了キューはデータのフレームの送信
を完了したことを表示するエントリーを有する。かかる
出力キューに対して、リングキューが有効フレームデス
クリプタを含むことをホストに知らせる方法は種々多数
存在する。1つの方法は、ホストにインターラプトし、
ホストにリングキューレジスタを検査させる方法であ
る。別の方法は、現在ビットがセットされていることを
判断し、エントリーが有効フレームデスクリプタを含む
ことを表示するために、ホストに対しリングキューエン
トリーをポーリングすることである。
【0014】受信側でのキューの機能は次のとおりであ
る。送信側と同じように入力キューと出力キューがあ
る。入力キューとは空のバッファを含む「フリーバッフ
ァ」キューである。このキューは、ホストがこのキュー
における有効なエントリーをネットワークインターフェ
ースに通知するための効率的な手段を有することが重要
でないことを除き、送信入力キューと同じように機能す
る。受信完了キューは送信完了キューと同様な出力キュ
ーであり、ホストへの通知は同じように働く。
【0015】汎用コンピュータシステムに対し、ネット
ワークインターフェースはネットワークインターフェー
スカード、すなわち入力/出力、I/Oバスによりホス
トコンピュータに電気的かつ物理的に接続するNICの
形態をしている。多数使用され、よって、パーソナルコ
ンピュータまたはワークステーションコンピュータで重
要なかかるI/Oバスの一例としては、周辺接続インタ
ーフェース、すなわちPCIバスがある。このPCIバ
スは極めて高速であるが、メモリアクセスよりかなり低
速である。従って、PCIバスのアクセスが性能上のボ
トルネックとなり得るので、この結果、オペレーショ
ン、例えばフレームの送受信を完了するのに必要な回数
を最小とする条件が生じている。
【0016】PCIバスアクセスは2つの目的に必要で
ある。第1の目的は、フレームの実際のデータを転送す
ることであり、第2の目的はリングキュー内にエントリ
ーをロード及び記憶し、さらにバッファデスクリプタを
読み出し及び書き込みすることである。後者の目的は制
御オーバーヘッドであり、これは特にオーバーヘッドが
比較的性能に大きな衝撃を与える小メッセージに対して
最小にすることが望ましい。従って、I/Oバスアクセ
スの回数はオーバーヘッドを構成する。従って、どのネ
ットワークインターフェースでもこれらアクセス、従っ
てオーバーヘッドを最小にすることが望ましい。データ
転送のクリティカルパスにおけるドライバとオペレーテ
ィングシステムとの相互作用を最小にすることも重要で
ある。I/Oバスアクセスおよびドライバとオペレーテ
ィングシステムとの相互作用の双方は、データ転送プロ
セスにおけるオーバーヘッドに寄与する。
【0017】
【発明が解決しようとする課題】上記のような代表的な
フレームをベースとする通信システムでは、送信側およ
び受信側の双方で大きな問題がある。送信側に関して
は、ネットワークインターフェースの構造で解決しなけ
ればならない問題が少なくとも4つある。第1の問題
は、ネットワークインターフェースに送信すべきデータ
を識別することであり、第2の問題は特定のコネクショ
ン、すなわちバーチャルチャンネルのためのあるフレー
ムが他の接続すなわちチャンネルのためのフレームの送
信をブロックするブロッキングの問題である。第3の問
題は、利用可能なデータを送信できることを高速かつ効
率的にネットワークインターフェースに通知することで
ある。最後に小パケットの送信に対するオーバーヘッド
を低く保証する問題がある。
【0018】小パケットに対してネットワークインター
フェースおよびドライバの構造に注意を払わない場合、
小パケットの送信に関連したホストまたはオーバーヘッ
ドはネットワーク上でデータを実際に送信する場合の何
倍にもなり得る。小パケットはクライアント−サーバー
計算システムで共通なリクエスト応答スタイルの通信で
特に重要である。従って、ネットワークインターフェー
スの構造が小パケットに適合しながら同時に多量のデー
タ、すなわち多量のデータパケットを処理できることが
重要である。
【0019】受信側ではネットワークインターフェース
の構造に少なくとも3つの問題がある。第1の問題と
は、到着データを記憶する場所を識別することである。
第2の大きな問題は、ホストによってネットワークイン
ターフェースに与えられる空のバッファを効率的に使用
することに関連する。一般に、受信側はフレーム全体を
受信した後はフレームに関する考えを有していない。こ
れにより、ホスト側での適切なサイズの空のバッファ空
間を探すという問題が生じる。一般的に行われているや
り方は、フレームが到着するごとに大きい空のバッファ
を確保することである。この結果、フレームが到着する
ごとにフレームサイズを無関係にネットワークインター
フェースは1つのバッファを手に入れる。大きなフレー
ムの場合多数のバッファが必要となることもある。
【0020】いずれの場合でも、一般に、フレームは最
後のバッファを正確に満たすことはないので、この結
果、バッファの一部が使用されない状態となる。小フレ
ームに対してはこのようなフラグメント化はかなりのも
のとなり得るので、この結果、バッファ空間の利用は不
効率となる。64バイトを含む小フレームおよび2キロ
バイトのバッファサイズに対しては、1984バイトが
使用されず、このことは97%のバッファ空間が使用さ
れないことを示している。従って、ホストは実際のデー
タに必要なバッファ以外に空のバッファを使用するため
により多数のメモリを専用としなければならないことが
ある。一般に、バッファは物理的メモリ内に常駐しなけ
ればならず、従って、不効率なバッファの使用の結果、
メモリのコスト条件が高くなる。第3の問題は、小メッ
セージの受信に対するオーバーヘッドを小さく保証する
ことである。
【0021】これまで、ネットワークインターフェース
へ送るべきデータの識別に関して、送信側および受信側
から生じたネットワークインターフェースの構造に関す
る問題を説明したが、一般にバッファおよびバッファデ
スクリプタのリンクされたリストが使用される。また、
一般に、かかるリンクされたリストフレームのデスクリ
プタの単一の送信入力キーがある。先に述べたブロッキ
ングの問題はかかる単一リングキューを利用するシステ
ムで生じ得る。
【0022】このような問題が特定のコネクションのた
めのフレームデスクリプタをリングキューから除くこと
ができない場合に生じる。この理由は、そのコネクショ
ンのためのフレームデスクリプタを記憶する場所が同じ
コネクションのための送信中のフレームを記憶するのに
既に使用されているからである。このようなフレームデ
スクリプタを送信入力キューから除くことができないの
で、キュー内のその後のフレームデスクリプタに対する
アクセスがブロックされ、よって、フレームデスクリプ
タが別のコネクションのためのものであってもこれらを
キューから除くことができない。
【0023】この問題に対する1つの解決案は、日本の
三菱電機株式会社により現在実現されつつある。三菱電
機は各コネクションのためのフレームデスクリプタおよ
びフレームのリンクされたリストに関連するダイナミッ
クチェイニングと称されるある種の技術を使用してい
る。潜在的にブロッキング状況が生じると、ネットワー
クインターフェースは送信入力キュー内の問題があるフ
レームデスクリプタを除き、これをそのコネクションの
ためのフレームデスクリプタのリンクされたリストへ移
動させる。この結果、先にブロックされたフレームデス
クリプタにアクセスできる。
【0024】さらに、フレームデスクリプタを除くこの
方法を実現するにあたり、リングキューエントリーがフ
レームデスクリプタをポイントし、次に、そのデスクリ
プタがバッファのリンクされたリストのヘッドをポイン
トするというフレームデスクリプタの不効率なフォーマ
ットを使用している。この方式では、バッファデスクリ
プタと別個にフレームデスクリプタをリンクしており、
構成をかなり複雑としなければならない。さらに、この
ような実現のためのフレームフォーマットはチェイニン
グを可能にするフレキシビリティに欠けている。
【0025】しかしながら、より重要なこととして、富
士通、テキサスインスツルメンツ社およびデジタル社の
ような会社によって製造されている、これまでのネット
ワークインターフェースには、大きなパケットのための
通知がメッセージの送信の総時間のうちのかなりの部分
を占めないので通知の問題を処理しない。他方、小パケ
ットに対する通知およびオーバーヘッドを処理しなけれ
ばならない。
【0026】受信側では、富士通およびテキサスインス
ツルメンツ社のネットワークインターフェースは、フリ
ーバッファキューを2つにする(一方を大サイズバッフ
ァ用にし、他方を小サイズバッファ用にする)ことによ
りバッファ空間の問題を処理している。コネクションは
コネクションに到着するすべてのフレームが小さい空の
バッファまたは大きい空のバッファのいずれかを使用し
て受信されるように、統計的に構成されている。コネク
ションと実際のフレームサイズに良好な相関性がある場
合、この方法は満足できるように作動する。しかしなが
ら、この方法は、実際には満足できるものでなく、当然
ながらあらかじめフレームのサイズを予想することはで
きず、従って、メッセージを記憶するサイズを予想する
ことはできない。
【0027】データを送信するためのオーバーヘッドを
低く保証するためにI/Oバスアクセスおよびドライバ
とオペレーティングシステムとの相互作用を含む非デー
タ転送のオペレーションの回数を最小としなければなら
ない。従来システムのいずれもドライバとオペレーティ
ングシステムの相互作用を解消せず、同時にデータ転送
に必要な回数を越えるI/Oバスアクセスの回数を最小
にしていない。この結果、従来のシステムではデータの
転送を処理する際のオーバーヘッドの機能を処理してい
ない。
【0028】従来のシステムがレイテンシー(待ち時
間)の最小化を取り扱っていない理由の1つは、これま
でかかる低レイテンシーを必要とするアプリケーション
がなかったことによる。過去において、低レイテンシー
を必要とするアプリケーションが存在していたが、これ
らアプリケーションはワークステーションおよびパソコ
ンとは異なり、一般にパラレル処理装置で実行されてい
たものである。さらに、リクエスト−応答通信がネット
ワーク上のすべてのトラフィックのうちのかなりの部分
となっているクライアント−サーバー計算が大幅に増加
している。これらの場合、レイテンシーが小さいことは
システム全体の性能に有利となり得る。
【0029】これまでの記載からネットワークインター
フェースの設計および実現は複雑となり、バッファ空間
の面積とフォーマットの妥協によりかかるシステムの効
率的な実現が困難となることが理解できよう。例えば富
士通は送信側および受信側で複雑かつ非効率的に実現さ
れるモデルMB86686Aの形態をしたATMネット
ワーク用のネットワークインターフェースを提供してい
る。ここでは、第1に、ネットワークインターフェース
ローカルメモリ内にリングキューおよびバッファデスク
リプタが常駐しなければならず、これにより、これら構
造を管理するためのホストのアクセスに対するオーバー
ヘッドが高くなり、通知に対するオーバーヘッドも高く
なる。第2に、バッファデスクリプタはテーブルに限定
されており、別個のテーブル内のバーチャルチャンネル
情報をポイントするのにホストによって各バッファデス
クリプタのエントリーをセットアップしなければならな
い。
【0030】テキサスインスツルメンツ社はアプローチ
が比較的簡単なATMネットワーク用チップすなわちモ
デルNETA1561用チップを製造している。このデ
バイスは各コネクションにリングキューを与えることに
よりブロッキングの問題を解決している。しかしなが
ら、このブロッキングの問題は、わずか250のコネク
ションに対応してリングキューの数が255に限定され
ている場合に限ってブロッキングの問題が解消されるに
過ぎない。クライアント−サーバーアプリケーション用
のサーバー側では、これよりも多いコネクションに適合
させなければならないことが多い。
【0031】さらに、フレームの送信のための通知に関
しては、テキサスインスツルメンツ社のシステムは2つ
の理由から不効率なポーリングを使用している。まず、
第1に、ホストがテキサスインスツルメンツ社のインタ
ーフェースでポーリングを開始することはコストが高く
つく。ホストはリングキューのポーリングを可能とする
ための情報を書き込むのにドライバオペレーション、す
なわち高価なオペレーションを実行しなければならな
い。第2に、ネットワークはフレームデータを送るよう
なスケジュールとなっている場合に限りポーリングを行
うので、さらに不効率となる。このことは、キューが空
の場合、そのタイムスロットで他のコネクションがフレ
ームデータを送ることができた場合でも、タイムスロッ
ト中でフレームデータが送られないことを意味してい
る。この結果、送信バンド幅がむだとなる。
【0032】テキサスインスツルメンツ社のネットワー
クインターフェースの別の問題は、送信側ではフレーム
ストリングがないことである。この結果、データ送信を
開始できるようになる前にリングキュー内にデータの全
フレームをロードしなければならない。受信側ではテキ
サスインスツルメンツ社のネットワークインターフェー
スはチャンキングを行わないと理解される。むしろ、こ
のインターフェースは異なるフレームサイズに適合する
よう、2つの異なるサイズの空のバッファのための別個
のキューを有する。
【0033】この発明は上述した従来例に係る問題点を
解消するためになされたもので、パケットをベースとす
るデータ伝送システムにおいて、フレームモードのすべ
てが共存でき、最適化されたバッファモード、ダイナミ
ックおよびスタティックチェイニングを可能にすると共
に、ストリーミングを可能とし、受信側でチャンキング
を可能とするネットワークインターフェースを得ること
を目的とする。
【0034】
【課題を解決するための手段】上記問題を解決するた
め、この発明に係るネットワークインターフェースは、
ホストコンピュータをネットワークに接続するためのコ
ネクションベースデータ伝送システムにおけるネットワ
ークインターフェースであって、I/Oバスインターフ
ェースと、このI/Oバスインターフェースに接続され
た受信ブロックおよび送信ブロックと、上記I/Oバス
インターフェースを上記ホストコンピュータに接続する
バスおよび上記送信ブロックと上記受信ブロックを上記
ネットワークに接続するための手段を有するネットワー
クインターフェースカードを備え、上記受信および送信
ブロック内に、上記ホストコンピュータが有する送信入
力TXinおよび送信完了TXdoneキューならびに
受信フリーバッファRXfreeおよび受信完了RXd
oneキューと、周辺部品相互接続インターフェースと
によって利用されるマルチワードフレームデスクリプタ
フォーマットを実現するための手段を設けたものであ
る。
【0035】また、上記マルチワードフレームデスクリ
プタフォーマットは、モードSフォーマットに適合する
ためのフィールドを含むことを特徴とするものである。
【0036】また、上記マルチワードフレームデスクリ
プタフォーマットは、モードMフォーマットをサポート
することを特徴とするものである。
【0037】また、上記マルチワードフレームデスクリ
プタフォーマットは、最適化されたモードMフォーマッ
トをサポートすることを特徴とするものである。
【0038】また、上記マルチワードフレームデスクリ
プタフォーマットは、チェイニングをサポートすること
を特徴とするものである。
【0039】また、上記マルチワードフレームデスクリ
プタフォーマットは、ストリーミングをサポートするこ
とを特徴とするものである。
【0040】また、上記マルチワードフレームデスクリ
プタフォーマットは、チャンキングをサポートすること
を特徴とするものである。
【0041】また、上記ネットワークインターフェース
カードは、ローカルメモリを含み、上記複数のキューが
上記ローカルメモリ内に位置し、上記マルチワードフレ
ームデスクリプタは、上記システムが入力キューまたは
出力キューをアドレス指定するか、または上記キューが
上記ホストメモリ内にあるかどうかとは無関係に、フレ
ームデスクリプタに対する同じフォーマットを可能にす
るよう、デュアル現在ビットを有するフィールドを含む
ことを特徴とするものである。
【0042】また、上記インターフェースは、ATMイ
ンターフェースであり、上記マルチワードフレームデス
クリプタフォーマットは、AAL0およびAAL5フォ
ーマットの双方に適合するためのフィールドを有するこ
とを特徴とするものである。
【0043】また、上記ネットワークインターフェース
カードは、ブロッキングを防止するための手段を含むこ
とを特徴とするものである。
【0044】また、上記受信フリーバッファRXfre
eキューは、フレームデスクリプタを有し、該フレーム
デスクリプタは、バッファポインタおよび上記フレーム
デスクリプタのフォーマットに類似するフォーマットを
有する関連するバッファデスクリプタに対するポインタ
を含むことを特徴とするものである。
【0045】また、上記受信フリーバッファRXfre
eキューのための上記フレームデスクリプタおよび上記
バッファデスクリプタは、1つのデスクリプタとなるよ
うに組み合わされていることを特徴とするものである。
【0046】また、この発明に係るネットワークインタ
ーフェースは、1つ以上のバッファと、バッファのリン
クされたリストと、単一バッファまたはバッファの上記
リンクされたリストのヘッドを表示するためのマルチワ
ードフレームデスクリプタを有し、バッファの上記リン
クされたリスト内のバッファの各々が自己のバッファデ
スクリプタを有し、ネットワークを通してホストコンピ
ュータから情報のフレームを送信するものである。
【0047】また、上記フレームおよびバッファデスク
リプタのフォーマットは、スタティックチェイニング、
ダイナミックチェイニングおよびストリーミング(これ
らはすべて同じデスクリプタフォーマットからのもので
ある)を可能にするものである。
【0048】また、上記ネットワークを通して送るべき
フレームを識別するための上記フレームデスクリプタを
含む手段を備えるものである。
【0049】また、上記フレームを識別するための上記
手段は、上記マルチワードフレームデスクリプタを含む
リングキューを備え、上記フレームデスクリプタが上記
バッファに対するポインタまたはバッファの上記リンク
されたリストのヘッドに対するポインタを含むものであ
る。
【0050】また、上記フレームデスクリプタは、上記
フレームを記述する情報を含み、上記情報がバーチャル
チャンネル番号、ステート情報およびモード表示のうち
の少なくとも1つを含み、フレームデータに対するファ
ットポインタを構成するマルチワードフレームデスクリ
プタを提供するものである。
【0051】また、上記フレームデスクリプタは、上記
リンクされたリスト内の第1バッファに対するバッファ
デスクリプタをポイントし、さらに、上記リンクされた
リスト内の次のバッファに対する次のバッファデスクリ
プタをポイントするものである。
【0052】さらに、上記ホストコンピュータは、ドラ
イバおよびオペレーティングシステムを有し、上記ネッ
トワークインターフェースは、送信入力キーを有し、さ
らにフレームデスクリプタを上記送信入力キューに直接
書き込み、上記ドライバまたはオペレーティングシステ
ムによる介入を防止するための手段を含むものである。
【0053】
【発明の実施の形態】以下、この発明の具体的な実施の
形態を説明する前に、この発明に係るネットワークイン
ターフェースの要旨について説明する。この発明に係る
ネットワークインターフェースは、上述した従来例に係
る問題を解決するため、チャンネル番号およびモードイ
ンジケータのような記述情報を含む単一バッファまたは
かかるバッファのリンクされたリストのヘッドをフレキ
シブルに表示できるフレームデスクリプタを使用する。
後者の場合、各バッファは自己のバッファデスクリプタ
を有する。フレームおよびバッファデスクリプタのフォ
ーマットは、後述するようなスタティックチェイニン
グ、ダイナミックチェイニングおよびストリーミングを
考慮したものである。
【0054】より詳細には、ダイレクトアクセスアーキ
テクチャ等で使用するためのネットワークインターフェ
ースを実現するために、この発明では、リングキューが
マルチワードフレームデスクリプタを含むリンクされた
リストのバッファフォーマットを利用することにより、
ネットワークインターフェースへ送るフレームを識別す
るための手段が設けられる。かかる各デスクリプタは、
データバッファに対するポインタ、バッファのリンクさ
れたリストのヘッドに対するポインタ、または両者の組
み合わせのいずれかを含む。フレームデスクリプタ内の
他のワードはフレームを記述する他の情報、例えばバー
チャルチャンネル番号、あるステート情報および種々の
モード表示を含む。
【0055】従って、基本的にはマルチワードフレーム
デスクリプタはフレームデータに対するいわゆるファッ
トポインタを構成する。通常のモードは1つのフレーム
がバッファのリンクされたリストから成るいわゆるモー
ドMである。このリンクされたリスト内の各バッファは
バッファデスクリプタによって記述される。フレームデ
スクリプタはリスト内の第1バッファのためのバッファ
デスクリプタをポイントし、このバッファデスクリプタ
は、次に、リンクされたリスト内の次のバッファのため
の次のバッファデスクリプタをポイントし、同様に、次
々にポイントされる。フレームおよびバッファデスクリ
プタのフォーマットはスタティックチェイニング、ダイ
ナミックチェイニングおよびストリーミングをサポート
するようになっている。
【0056】スタティックチェイニングとは、ホストが
送信入力キュー内にチェインを入れる前にホストにより
同じコネクションのための多数のフレームのリンクされ
たリストの表示を組み合わせることを意味する。この利
点は、多数のフレームを記述するのに1つのフレームデ
スクリプタでよいということである。ダイナミックチェ
イニングとは、スタティックチェイニングプロセスと同
じチェイニングの結果を意味するが、これは同じコネク
ションに対し連続するフレームが到着する際にネットワ
ークインターフェースのオペレーションにより達成され
る。従って、ダイナミックチェイニングは、ブロッキン
グの問題を自動的に解決するための方法を提供する。ス
トリーミングとは、フレームデータのすべてをネットワ
ークインターフェースに与えることができるようになる
前にフレーム送信または受信を廃止することを意味す
る。
【0057】上記のように、フレームフォーマットには
種々の最適化方法がある。特に、モードSと称される最
適化方法は、小フレームに対するオーバーヘッドを極め
て低くする。モードSでは、フレームデスクリプタはバ
ッファを直接ポイントし、従って、フレームデスクリプ
タはこのケースにおけるバッファデスクリプタの2倍に
なる。
【0058】この発明の別の特徴は、フレームデスクリ
プタを送信入力キューに直接書き込むアプリケーション
により通知を効率的に行っていることである。ネットワ
ークインターフェースは、2つのモード、すなわちポー
リングおよびアイドルモードの一方でよいと解される。
ポーリングモードでは、ネットワークインターフェース
は送信入力キュー内のフレームデスクリプタを迅速に探
し、送信をスタートする。アプリケーションがドライバ
またはオペレーティングシステムの介入を受けることな
く、リングキューに直接書き込みできることからよい効
率性が得られ、ポーリングがイネーブルされる場合には
1回のI/Oバスオペレーションでよい。送信入力キュ
ーがポーリングモードになっていない場合、アプリケー
ションは特定の期間の間ネットワークインターフェース
がポーリングモードとさせる通知レジスタに書き込みで
きる。
【0059】受信側では、この発明に係るネットワーク
インターフェースは、バッファの利用効率の増すチャン
キング機能を実行する。チャンキングとは、受信された
フレームを記憶するために使用されるバッファ領域を多
数のチャンクに分割することを意味している。各チャン
クは1つのバッファまたはこれよりもサイズの小さいバ
ッファであり、バッファ内に完全に適合する1つのフレ
ームの一部を含む。従って、小フレームは1つのチャン
クしか必要でないが、大きなフレームはサイズが1つの
バッファよりも小さい第1チャンク、1つのバッファに
等しいチャンク、さらにサイズがフルバッファよりも小
さいチャンクを必要とすることがある。チャンキングす
なわちバッファ空間を分割することにより、異なるサイ
ズのフレームに適合できるので、使用されないバッファ
空間がなくなる。これを行うため、バッファが以前は1
つのフレームによって部分的にしか満たされないと仮定
すると、完全に空のまたは使用されないバッファに記憶
する代わりに、先のフレームの終了部からスタートして
現在のバッファに次に入信するフレームが記憶される。
【0060】従って、先のフレームの終了部の後の残り
のバッファ領域を他のフレームで満たすものである。必
要であれば、システムは現在フレームの他の部分に対し
別の空のバッファを含む。この後のバッファに対してフ
レームが過度に長いものであると仮定すれば、別の空の
バッファが得られる。従って、チャンキングはネットワ
ークインターフェースを簡素にし、バッファをより効率
的に利用するものである。また、オペレーションによる
チャンキングはフレームの到着毎に新しい空のバッファ
を必要とするオーバーヘッドを不要にするものである。
【0061】チャンキングを実現するには種々の方法が
ある。特に、ネットワークインターフェースは各チャン
クのためのフレームデスクリプタを書き込み、マルチチ
ャンクフレームに対するストリーミングを使用するか、
フレームのために1つのフレームデスクリプタを書き込
み、チャンクのリンクされたリストを直接発生する。か
かるバッファのリンクされたリストを直接構築するに
は、フリーバッファキューは空のバッファおよびフリー
バッファデスクリプタに対するポインタを含み、フリー
バッファデスクリプタはバッファを共にリンクする際に
使用される。ネットワークインターフェースが空のバッ
ファポインタをキューから除くときはフリーバッファデ
スクリプタもまたポインタをキューから除く。
【0062】チャンキングの場合、フレームが多数のバ
ッファにわたって広がっており、バッファの境界に第1
チャンクがない場合には問題がある。この場合、ネット
ワークインターフェースは、既に先のチャンクのための
フリーバッファデスクリプタを使用したかもしれない。
従って、ネットワークインターフェースはチャンクを有
するが、リンクリストを形成するバッファデスクリプタ
を有してはいない。この発明では、この問題は最適化さ
れたモードMと称される最適化されたリンクされたリス
トフォーマットにより解決され、このモードではフレー
ムデスクリプタがリンクされたリスト内の第1チャンク
を直接ポイントし、さらに第2デスクリプタをポイント
し、このバッファデスクリプタは第2チャンクおよびリ
ンクされたリストのバッファデスクリプタをポイントす
る。従って、リンクされたリスト内の第1チャンクに対
してはバッファデスクリプタは不要である。
【0063】しかしながら、上記方式を使用する際に
は、みなしご状態となったバッファデスクリプタの問題
が生じ得る。ネットワークインターフェースがバッファ
入力キュー内で得られる空のバッファだけを使用し、フ
リーバッファデスクリプタを使用しない場合にみなしご
状態のバッファデスクリプタが生じる。この状況は、バ
ッファ内に1つ以上の短いフレームを記憶し、その後、
多数のバッファを必要とするフレームが続く場合に生じ
る。この場合、短いフレームの各々がバッファデスクリ
プタを必要とせず、むしろ、後述するモードSバッファ
フォーマットを使用する。マルチバッファフレームは最
適化されたモードMフォーマットを利用するので、フリ
ーバッファに関連するフリーバッファデスクリタを利用
するフレームはない。従って、バッファデスクリプタが
みなしご状態となる。
【0064】このみなしご状態のアッパーデスクリプタ
の問題に対する1つの解決案は、空のバッファにおいて
第1チャンクでスタートするフレームに対して常にモー
ドMフォーマットを使用することである。モードMは常
にバッファデスクリプタを使用するので、これにより、
常にフリーバッファデスクリプタで使用されることが保
証されるからである。
【0065】ここで、チャンキングは、次のフォーマッ
ト、すなわちモードS、モードMおよび最適化されたモ
ードMを必要とする。バッファ内に適合する短いフレー
ムに対してはモードSが使用され、バッファの境界部で
始まるフレームに対してはモードMが使用され、バッフ
ァの境界部で開始しないマルチバッファフレームに対し
ては最適化されたモードMが使用される。
【0066】この発明の総体的な発明は、これらフレー
ムモードのすべてが共存でき、スタティックチェイニン
グおよびダイナミックチェイニングを可能とし、ストリ
ーミングを可能とし、受信側でチャンキングを可能とす
るための、フレームデスクリプタおよびバッファデスク
リプタに対する統一されたフォーマットにある。
【0067】要約すれば、パケットをベースとするデー
タ伝送システムは、最適化されたバッファモード、ダイ
ナミックおよびスタティックチェイニング、ストリーミ
ングおよび小パケットフォーマットの利用を含むフレキ
シブルな最適化されたブロッキングしない送信インター
フェースを含む。スタティックチェイニングとは、同一
の送信チャンネル、すなわちバーチャルチャンネルに対
する連続パケットに対し、リンクされたリストを共に接
続することであり、ダイナミックチェイニングとは、ネ
ットワークがこのチェイニングを自動的に実行し、ブロ
ッキングの問題を解消する手段を意味する。
【0068】送信側では、ストリーミングとは、インタ
ーフェースに対しすべてのパケットデータを提示する前
にパケットデータの送信を開始することを意味する。こ
れにより、バッファ空間のより高速のリサイクリングが
可能となる。受信側では、ストリーミングとは、全パケ
ットを受信する前にパケットデータの処理を開始するこ
とを意味する。パケット送信システムは異なるサイズの
パケットに適合するよう、1つのバッファを多数のチャ
ンクまたはセグメントに分割するチャンキングシステム
を内蔵する受信インターフェースも含む。
【0069】さらに、この受信インターフェースは、リ
ンクされたリスト内の第1バッファに対してリンキング
要素が不要なチャンキングをサポートするための最適化
されたリンクされたリスト方式を含む。一実施の形態で
は、小パケットの送信時の相対的オーバーヘッドを減少
するように小パケットフォーマットが提供される。別の
実施の形態では、オーバーヘッドを更に減少するため、
送信インターフェースで受信側に関連した最適にされた
バッファモードを使用できる。
【0070】この発明の上述したおよびそれ以外の特徴
については図面を参照して詳細な説明を読むことにより
理解できよう。 最適でないシステム 一般に、低オーバーヘッド通信を行うための主要な条件
は、データの送受信のクリティカルパス内のオペレーテ
ィングシステムを除くことである。この条件を満たすた
め、ネットワークインターフェースは、ダイレクトアク
セスアーキテクチャに構成することができる。このダイ
レクトアクセスアーキテクチャは多数のダイレクトアク
セスチャンネルを特徴とするものであり、各ダイレクト
アクセスチャンネルには多数のコネクションが割り当て
られる。このシステムではリングキューの専用の組があ
り、各チャンネルは自己の4つのリングキューのセット
を有し、このうち2つのリングキューは送信用であり、
2つのキューは受信用となっている。
【0071】各ダイレクトアクセスチャンネルには専用
のメモリスペースが割り当てられ、ホストによって指定
されるアドレスが適当な専用メモリスペース内に入り、
ネットワークインターフェースによるオペレーションの
ために物理的アドレスへ変換されるよう保証するための
アドレス変換機構が設けられている。このような構造は
データ転送操作のためのネットワークインターフェース
とアプリケーションとの間のオペレーティングシステム
の相互作用を不要にしている。
【0072】この発明では、ネットワークインターフェ
ースのハードウェアがダイレクトアクセスアーキテクチ
ャをサポートすると考える。従って、アプリケーション
はメッセージの送りおよび検索を開始するためのリング
キューに直接アクセスする。しかしながら、ダイレクト
アクセスアーキテクチャは、クリティカルパス内のドラ
イバーとオペレーティングシステムとの相互作用を除く
ことによりオーバーヘッドを大幅に減少するが、このよ
うな技術自体はレイテンシー(待ち時間)を最小にする
ものではない。さらに、システムは一般に汎用データ転
送設備を提供するが、この設備はユニバーサルとしなけ
ればならないので、小フレームの転送に対しては最適と
ならない傾向がある。従って、小さいフレームは必要な
オーバーヘッドよりも高いオーバーヘッドを使用する。
【0073】次に、図1を参照すると、送信側の従来技
術では、ホストメモリ10はネットワークインターフェ
ースカードを介してネットワークに、またはI/Oバス
14を介してネットワークインターフェースカードすな
わちNIC12に結合されている。リングキュー16は
エントリーとしてフレームデスクリプタ22を含む、T
Xinキューと称される送信入力キューである。フレー
ムデスクリプタ22は送信すべきデータを含むバッファ
20および40を備えたバッファデスクリプタ24のリ
ンクされたリストをポイントする。1つのフレームの情
報が送信されると、このフレームはバッファデスクリプ
タすなわちBD24をポイントするフレームデスクリプ
タ26として、TXdoneキューと称される送信完了
キュー18内へ書き込まれる。このことは、フレームデ
スクリプタおよびそれに関連するバッファデスクリプタ
およびバッファは、もう送信機構では使用しないことを
ホストシステムに示している。
【0074】作動中、ネットワークインターフェースカ
ードすなわちNIC12は「出力」ポインタによって示
されたリングキュー16内の次のフレームデスクリプタ
入力22を読み出し、バッファデスクリプタのアドレス
を得る。次に、ネットワークインターフェースは、この
アドレスに対応するバッファデスクリプタ24からのデ
スクリプタとしてバッファデスクリプタを読み出し、対
応するバッファ、ここではバッファ20のベースアドレ
スおよびサイズを抽出する。次に、ネットワークインタ
ーフェースは上記アドレスからスタートしてバッファ2
0からデータを読み出したままのデータを送信する。バ
ッファ20内に保持されたデータが読み出され、送られ
た後、ネットワークインターフェース12は別のバッフ
ァデスクリプタ38をポイントするバッファデスクリプ
タ24内の次のポインタを読み出す。
【0075】この別のバッファデスクリプタ38は次に
別のバッファ40に関連している。バッファデスクリプ
タ38内のアドレスで開始してバッファ40内のデータ
が読み出される。バッファデスクリプタおよびバッファ
内のリンクされたリストが終了するまでこのプロセスが
続けられる。このリンクされたリスト内の最終バッファ
デスクリプタは0の次のポインタを有する。1つのフレ
ームのための最終データの送信が完了した後、ネットワ
ークインターフェースはフレームデスクリプタ22とし
て同じリンクリストをポイントするフレームデスクリプ
タ26を送信完了キューTXdone18内へ書き込
む。
【0076】次に、図2を参照する。受信側では、ネッ
トワークインターフェースカードすなわちNIC50に
よってフレームデータが受信され、カード50はこのデ
ータをI/Oバス54を介してホストメモリ52へ転送
する。ホストメモリ52は後にRXfreeと称すフリ
ーバッファリングキュー56および後にRXdoneと
称す受信完了リングキュー58を含むように構成され
る。RXfreeキュー56内の各エントリーはバッフ
ァデスクリプタ、例えばバッファデスクリプタ60をポ
イントするデスクリプタであり、このバッファデスクリ
プタ60は次にバッファ64のようなフリーバッファを
ポイントする。
【0077】作動中、バーチャルチャンネルのためのフ
レームが到着すると、NIC50は、フリーバッファリ
ングキュー56を読み出し、フリーバッファデスクリプ
タおよびフリーバッファ、例えばバッファデスクリプタ
60およびバッファ64に対するポインタを得る。その
後、同じバーチャルチャンネルのために到着したフレー
ムデータがバッファ64内の次のロケーションへ転送さ
れる。バッファ64がフル状態となれば、フリーバッフ
ァリングキュー56から別のエントリーを読み出し、別
のフリーバッファデスクリプタ、この場合にはバッファ
デスクリプタ62を得なければならない。
【0078】NIC50は、バッファデスクリプタ62
に対するポインタをバッファデスクリプタ60に書き込
み、バッファ66に対するフレームの連続性を表示し、
フレームデータをバッファ66に記憶するように進む。
このプロセスはそのフレーム用のリスト内の第1バッフ
ァデスクリプタへのポインタを含むRXdoneキュー
58内にNIC50がフレームデスクリプタを書き込む
ポイントで、フレーム表示の終了点を受信するまで続け
られる。これにより、受信側のデータ転送が完了する。
【0079】次に、包括的なコネクションベースネット
ワークのためのホストネットワークインターフェースに
ついて説明する。この発明は、実質的に包括的なネット
ワークに適用するが、特に、非同期転送モード、すなわ
ちATMネットワークに限定して説明することとする。
これより、すべての説明ではATMネットワーク用のホ
スト−ネットワーク間のインターフェースを仮定する。
【0080】ATMネットワークでは、データはセルと
して送られる。各セルは、図3に示されるように、5バ
イトのヘッダーと48バイトのペイロードから成る53
バイトのサイズとなっている。ヘッダーフォーマットに
ついては周知であり、種々の規格書、例えばTl LB310
“Broadband ISDN ATM Layer Functionality and Speci
fication”(1993年1月)に記載されている。簡単
に説明すれば、ヘッダーは4ビットのGFTフィールド
と、バーチャルチャンネルを記載する24ビットのVP
I/VCIフィールドと、4ビットのPTIと、1ビッ
トのCLPと、8ビットのヘッダーチェックサムから成
り、GFCは包括的なフロー制御に関連し、VPI/V
CIはバーチャルパスインジケータ/バーチャルチャン
ネルインジケータに関連し、CNPはセル喪失優先度に
関連する。
【0081】ATMネットワークを便利に使用できるよ
うにするため、ATMセル層は、通常、ATM適応層、
すなわちAALにラップされている。データ転送に一般
に使用されるかかる1つのフォーマットとして、AAL
5がある。図4はAAL5フォーマットのダイヤグラム
を示す。このフォーマットについては周知であり、種々
の規格書に記載されている。簡単に説明すれば、AAL
5フォーマットでは65535バイトまでのユーザーデ
ータパケットには0のパッドが付けられ、その後、2バ
イトの制御信号、パケットデータサイズを指定する2バ
イトと4バイトのCRC、すなわち周期的冗長性チェッ
クから成るAAL5トレーラーが続く。
【0082】2バイトの制御情報および2バイトのパケ
ットサイズは、共通部分として総合的に発散サブ層、す
なわちCPCS INFOに関連する。ここで、フレー
ムと称すフレーム全体がATMセルペイロードの完全数
となるようにパディングが選択される。ATMセル内へ
のカプセル化のために、48バイトのペイロードとなる
ようにAAL5フレームを分割することをセグメント化
と称す。この反対のATMセルから48バイトペイロー
ドを抽出し、1つのフレームを形成することを再アセン
ブリと称す。
【0083】図1および図2に示された包括的構造のほ
かに、ATMネットワークインターフェースは、一般
に、ローカルNICメモリ内での送受信のためにバーチ
ャルチャンネルテーブルまたは別個のテーブルを有す
る。このテーブルの各エントリーは関連するチャンネル
のための入力フレームをセグメント化し送信する現在位
置と、そのチャンネルで受信されたセルを後に受信フレ
ームを含むようにバッファ内に再組み立てする現在位置
を含む、各仮想チャンネルのためのステート情報を含
む。ネットワークインターフェースは、セルヘッダー内
の仮想チャンネル情報に基づき入力セルを適当なテーブ
ルエントリーおよびバッファへ向けるか、またはこれら
をデマルチプレクス化する。
【0084】以上で入出力キューおよびそれぞれのフレ
ームデスクリプタを利用することにより、情報のセルを
転送し受信するための包括的システムについて説明した
が、送信側にも受信側にもいくつかの問題があることが
理解できよう。送信側での最も重要な問題として、上記
ブロッキングの問題が挙げられる。優先度の高いバーチ
ャルチャンネルのためのフレームデスクリプタの前のバ
ッファ16に同じバーチャルチャンネルのための多数の
フレームデスクリプタがキュー内に入れられると、ライ
ンのヘッドのブロッキングが生じ得る。
【0085】一般的なオペレーションでは、NIC12
はTXinキュー16が空となるか、または既にフレー
ムのセグメント化および送信でビジー状態となったバー
チャルチャンネルのためのフレームデスクリプタに遭遇
するまで、NIC12はTXinキュー16からのエン
トリーを検索する。この結果、現在アイドル状態となっ
ているバーチャルチャンネルにその後のエントリーが対
応した場合でも、リングキュー内のその後の全てのエン
トリーは処理されないこととなる。このような意味で、
エントリーはブロックされる。図7を参照して説明する
ように、テキサスインスツルメンツ社のネットワークイ
ンターフェースはキューを1でなくて255とすること
により、この問題の可能性を減少させている。
【0086】図5を参照して後に説明するように、三菱
電機によって開発中のシステムは同じバーチャルチャン
ネルのためのフレームをキューから出し、ダイナミック
にリンクすることによりこのブロッキングの問題を解消
せんとしている。しかしながら、この事実は必要以上に
複雑であり、次のフレームポインタを記憶するのにバッ
ファデスクリプタ内に余分なフィールドを必要とし、別
のポインタを記憶するのにネットワークインターフェー
スを必要とする。送信側の次の問題は送信のためにデー
タを利用できることをNICに知らせることに関連する
オーバーヘッドの問題である。
【0087】通知に影響する共通な方法は、アプリケー
ションによりテールポインタレジスタを更新し、リング
キュー内の次にキュー内に入れるエントリーをポイント
することである。この問題は、アプリケーションが直接
リングキュー内に書き込みしたり、テールポインタレジ
スタに書き込みできないことである。むしろ、オペレー
ティングシステムがこのレジスタへの書き込みを行わな
ければならない。かかるオペレーティングシステムの動
作は30〜100ミリ秒もの長いオーバーヘッドを必要
とし得る。レイテンシー(待ち時間)を小さくするため
に、かかるオペレーティングシステムのオーバーヘッド
が許容できるアプリケーションもあるが、オペレーティ
ングシステムが関与することにより1つの交換ネットワ
ークに対し10マイクロ秒以上のアプリケーション間の
全体のレイテンシーが排除される。さらに、ATMフレ
ームは3ミリ秒ごとに1回到達し得るので、ATMに対
してはオペレーティングシステムを関与させることは排
除される。
【0088】効率的なNICアーキテクチャの点での別
のオーバーヘッドの問題として、必要なI/Oバスオペ
レーションの回数に関連するオーバーヘッドの問題が挙
げられる。図1から理解できるように、制御に必要なI
/Oバスの数は、リングキューの読み出しに1つ、バッ
ファデスクリプタの読み出しに1つ、その後のバッファ
につき1つである。バス転送用に必要なI/Oバスオペ
レーションの数が1である、サイズが1セルの小フレー
ムに対し、制御オーバーヘッドはフレームを送るのに2
回のI/Oバスオペレーションとなり、送信終了キュー
を更新するのに更に1回のオペレーションとなる。これ
は300%のオーバーヘッドである。換言すれば、デー
タの1セルを送るための小フレームに対しては、制御の
ためには3回のI/Oバスオペレーションが必要であ
り、比は3:1となる。
【0089】受信側の問題に関し、ネットワークインタ
ーフェースに関連した主な問題は、バッファの利用とそ
の後に続くオーバーヘッドの問題である。過去におい
て、受信フレームのサイズに拘わらず1つのバッファが
使用されている。従って、最終バッファのある部分は一
般に使用されない。特に、小フレームの場合、バッファ
スペースのこのようなフラグメント化はかなりのものと
なり得る。これまでにテキサスインスツルメンツ社およ
び富士通から市販されているATMネットワークインタ
ーフェースチップの双方は、2つのフリーバッファキュ
ーを備えたシステムを利用していた。大きなサイズのバ
ッファに対しては第1のフリーバッファキューを利用
し、小サイズバッファのみに第2キューを利用してい
る。この結果、小さいフリーバッファキューまたは大き
いフリーバッファキューのいずれかを使用して受信する
ようにバッファチャンネルが構成されている。
【0090】バーチャルチャンネル上のフレームが小サ
イズのバッファまたは大サイズのバッファのいずれによ
っても収容できる均一なサイズを有していると仮定すれ
ば、この方式は満足するように作動する。しかしなが
ら、これら条件は実際にはほとんど当てはまらない。大
きいサイズのフリーバッファキューを使用する結果、小
メッセージに対するフラグメント化が生じ、一方、小サ
イズのフリーバッファキューを使用することにより、各
バッファを処理するための関連するオーバーヘッドを備
えた大きなメッセージのためのバッファが多くなる。
【0091】受信側でのオーバーヘッドの問題には2つ
の要素がある。すなわち、通知のためのオペレーション
と制御用のI/Oバスオペレーションとがある。データ
が通知したことをホストに通知するためのネットワーク
インターフェースのためのオプションは、ホストをイン
ターラプトすること、またはホストにステータスロケー
ションをポーリングさせることである。不幸なことに、
従来のネットワークインターフェースではいずれもオペ
レーティングシステムのオーバーヘッドに関連してい
る。さらに、多数のアプリケーションがリングキューを
シェアするので、リングキューに対するすべてのアクセ
スはオペレーティングシステムを介して行わなければな
らず、従って、RX doneキューを読み出すのにク
リティカルパス内でオペレーティングシステムのオーバ
ーヘッドが生じる。
【0092】I/Oバスオーバーヘッドに関しては、受
信側で利用される制御オペレーションの回数はフリーバ
ッファキューの呼び出しに1回、フリーバッファデスク
リプタの呼び出しに1回、バッファデスクリプタの書き
込みに1回、その後、フリーバッファごとに2回、RX
doneキューへのデスクリプタの書き込みに1回と
がある。1セルの小フレームに対しては、I/Oバスオ
ペレーションの総回数はデータ転送に対して1回、制御
用オーバーヘッドに対して4回となり、制御比は400
%となる。
【0093】図5を参照する。上記ブロッキングの問題
に関し、三菱電機は図1のリングキュー16内の各エン
トリー67が図5内に示されたフレームをポイントする
ポインタであるシステムを開発中である。図5内のフレ
ームおよびバッファデスクリプタ64および66は全て
同じサイズである。各デスクリプタは関連するバッファ
70へのポインタ68および1つのフレームのための次
のバッファデスクリプタへのポインタ72を含む。各デ
スクリプタは十分なフィールドも含むので、バーチャル
チャンネルおよび送信ステートを含む、フレームに関す
る情報のすべてを記述するためのフレームデスクリプタ
として最初のデスクリプタを使用できる。
【0094】フレームデスクリプタは同じバーチャルチ
ャンネルのための次のフレームに対するポインタ74も
含む。ネットワークインターフェースが現在フレームを
送るのにビジー状態となっているバーチャルチャンネル
のためのリングキュー16内に入れられた新しいフレー
ムを見つけると、ネットワークインターフェースはこの
新しいフレームのためのフレームデスクリプタ76に対
するポインタを、このフレームデスクリプタ64のフィ
ールド74に書き込む。従って、このシステムではリン
グキューからフレームポインタを取り出し、次のフレー
ムにフレームデスクリプタを書き込むことによりブロッ
キングの問題が解消されている。この結果、フレームは
バッファデスクリプタ内にリンクされたリストを構築す
るよう、共にダイナミックにリンクされる。
【0095】この方式の欠点は、バーチャルチャンネル
のためのかかるフレームのリンクされたリスト内のフレ
ームデスクリプタに対するポインタを、バーチャルチャ
ンネルごとにNICが維持しなければならないことであ
る。これにより、ネットワークインターフェースがバー
チャルチャンネルごとに維持しなければならない記憶量
が増す。さらに、各バッファデスクリプタはフレーム内
の第1バッファデスクリプタによってしか使用されない
次のフレームポインタフィールドを必要とする。
【0096】次に図6を参照する。富士通のインターフ
ェースは1つの入力キュー80を有し、ここでは、82
のような各エントリーがバッファデスクリプタテーブル
86内の送信バッファデスクリプタ、例えば84に対す
る単一ポインタとなる。バッファデスクリプタ84はバ
ッファ94に対するポインタであるエントリー92を有
する。96および98で示されるようなテーブル内で送
信バッファデスクリプタがチェイニングされる。オペレ
ーション中にネットワークインターフェースが入力キュ
ー80内のエントリーを見つけると、このインターフェ
ースはバッファデスクリプタを検査し、バッファをどの
バーチャルチャンネルに送るかを決定する。次に、回路
テーブル内で割り出しをし、送信のためフレームをキュ
ー内に入れる12の固定レートのキューを決定する。こ
れら12のキューは参照番号98A〜98Lで示されて
いる。
【0097】これにより、送信入力キュー内のエントリ
ーは常に12の固定レートの送信キューのうちの1つに
除かれるので、先に述べたブロッキングの問題は解決さ
れる。しかしながら、この解決案は、送信レートキュー
の数に制限を加えているため、少数のレート以外のレー
トには一般化されない。また、利用可能なビットレー
ト、ABR、システムの場合のように、送信レートがダ
イナミックに変化する状況に拡張できない。すなわち、
同じ固定レートにフレームを最初は入れることができる
が、フレームは異なるバーチャルチャンネルに属し、そ
の後、レートが変更されることがあり得るからである。
ダイナミックなレート変化に適合するため、フレームを
ダイナミックに1つの固定レートキューから別のキュー
へリロケートし、バーチャルチャンネルのためにレート
変化に応答できるようにこれら送信レートキューの実行
をより複雑としなければならない。受信側では、富士通
のシステムは通知の問題を処理していない。このシステ
ムは図6を参照して説明した問題以外のバッファの利用
の問題も処理していない。
【0098】次に、図7を参照する。テキサスインスツ
ルメンツ社のネットワークインターフェースは、番号9
1で示された255個の入力リングキューを含むという
点で図1に示された一般的な方式と大幅に異なってい
る。異なるバーチャルチャンネルのためのフレームは異
なるリングキュー内に入れられる。そのバーチャルチャ
ンネルに割り当てられたリングキュー内の連続するエン
トリー内に入力フレームのための連続するバッファがキ
ューに入れられる。
【0099】これにより、図1に示されるようなバッフ
ァデスクリプタを使用する別個のリンクされたリストが
不要となる。ここで、現在のビットP、その長さ、バッ
ファポインタ、ATMセルヘッダー情報およびCPCS
情報を含むフォーマット93によりリング91内のリン
グキュー内の各エントリーのフォーマットが示されてい
る。フォーマット93内のバッファポインタフィールド
はバッファ95をポイントする。
【0100】このような解決法は255のバーチャルチ
ャンネルに適合するため、255の入力リングキューを
設けることによって上記ブロッキングの問題を解消して
いる。しかしながら、この解決案は255の入力リング
キューを管理するためのコストが必要である。また、こ
の解決案は、多数のアクティブな送信チャンネルまで拡
大できない。大きな数の例えば4096の送信チャンネ
ルで生じる問題としては、リングキューに必要なスペー
スが大きいこと、およびどのキューがデータの送信準備
を完了しているかをNICに通知するオーバーヘッドの
問題がある。
【0101】テキサスインスツルメンツ社のネットワー
クインターフェースは、受信側では満たしたバッファ毎
にRXdoneキュー内へエントリーを書き込み、送信
側と同じようにバッファデスクリプタを不要にしてい
る。従って、ホストはバッファのリンクされたリスト内
への多数のバッファフレームを形成しなければならな
い。テキサスインスツルメンツ社のシステムは、通知の
ためにホストオペレーティングシステムを使用してい
る。特に、ネットワークインターフェースが送信入力キ
ューをポーリングしても、ポーリングすべき入力キュー
をNICに伝えなければならず、オペレーティングシス
テムのオペレーションが必要である。
【0102】フレキシブルフレームデスクリプタ 図8を参照する。この発明では、フレームデスクリプタ
およびバッファデスクリプタをフレキシブルなフォーマ
ットとすることにより、上記機能を実行し、上記利点を
得ることが可能となっている。このことが一般にどのよ
うに可能であるかを示すため、ATMネットワークイン
ターフェースは、ネットワークインターフェースカード
150と、ホストコンピュータ151とを含む。周辺コ
ンポーネントインターコネクトすなわちPCIバス15
2を通してホストコンピュータ151とネットワークイ
ンターフェースカード150との間の通信をするのに、
フレームデスクリプタおよびバッファデスクリプタが使
用される。通信にはリングキューのための制御情報と送
信すべきデータを記述する情報、すなわち受信データを
記述する情報が含まれる。この情報はネットワークイン
ターフェースに属する。フレームデスクリプタおよびバ
ッファデスクリプタを含むリングキューは、一般にホス
トメモリで使用されるが、これらはネットワークインタ
ーフェースのローカルメモリ内にも存在し得る。
【0103】理解できるように、NICチップ154の
一部を形成するPCIインターフェース153には、P
CIバス152が結合されている。PCIインターフェ
ース153はチップの他の部分に利用可能な制御および
データ情報を作成する。チップがホストメモリからの情
報を求めると、PCIインターフェース153は必要な
制御信号を発生する。PCIインターフェース153は
TXブロック155に接続されており、このブロックは
ホストメモリ151内の制御情報のTXinおよびTX
done部分が要求したアクションを実行し、現在業界
で標準的なユートピア(UTOPIA)インターフェー
スブロック156を介してネットワークにセルを入れ
る。
【0104】同様に、ホストメモリ151内に記憶され
た制御情報のRXfreeおよびRXdone部分によ
って要求されたアクションを実行するように、受信RX
ブロック157が設けられている。このRXブロック1
57はユートピアインターフェースブロック158から
の信号に応じてこれらのアクションを実行する。また、
ローカルバス167を介してローカルメモリ165にア
クセスするローカルバスインターフェース159も設け
られている。このローカルメモリの主たる目的は、受信
RXおよび送信TXブロックによって使用する情報を、
コネクションまたはバーチャルチャンネル毎に記憶する
ことにあり、この情報は1つのセルから次のセルまでの
バーチャルチャンネルを特定するのに使用される。しか
しながら、ローカルメモリにもリングキュー、バッファ
デスクリプタおよび/またはデータを記憶することもで
きる。
【0105】上記ブロックのいずれも制御方法のための
一致したフォーマットを使用して通信できるものでなけ
ればならないと解される。この制御情報フォーマットを
使用することにより、ネットワークとの間の情報の転送
のフレキシビリティおよび効率を大きくすることができ
る。種々のモードA、モードSおよび最適にされたモー
ドMのフォーマットをフレキシブルにする主な理由は、
全てのタイプのネットワークメッセージまたはフレーム
の送信を効率的にできるようにすることである。
【0106】RXおよびTXブロックは制御情報フォー
マットを特に解読するように設計された回路から構成さ
れている。この意味において、これらブロックではフレ
ームデスクリプタフォーマットおよびバッファデスクリ
プタフォーマットが具現化されている。一実施の形態の
ように、この発明は、これらフォーマットを実現するよ
うに構成されたRX回路およびTX回路にある。
【0107】理解できるように、従来の三菱や富士通の
システムと対照的に、本システムでは、図9に示された
リングキューフォーマットでは多数のフィールドを含
む。本システムにおけるすべてのメモリアドレスおよび
ワードは、32ビット幅とされている。かかるマルチワ
ードデスクリプタによりフレームに関する完全な情報を
1回のI/Oバスオペレーションでフェッチしたり、記
憶できるようになっている。
【0108】I/Oバス、例えばPCIバスでは、1回
のアクセスにおける32ビットワードまたは1回のアク
セスにおける4つの43ビットワードのフェッチ/記憶
間の時間差は無視できる。しかしながら、主メモリのホ
ストアクセスと比較して各I/Oバスオペレーションは
比較的高価である。従って、リングキューエントリーが
単一マルチワードエントリーへのデスクリプタオブジェ
クトをポイントする従来の方式をやめることが有効であ
る。基本的にはかかるマルチワードデスクリプタはファ
ットなポインタと見なすことができる。
【0109】図9に示されたリングキューエントリーフ
ォーマットはフレームデスクリプタに使用できる。フレ
ームデスクリプタ、すなわちFDは特定のバーチャルチ
ャンネル、特にTXinキューにフレームを入れるため
のフレームのチェーンのヘッドを示し、TXdoneキ
ューにおける送信済みフレームを戻し、RXdoneキ
ューにおける受信済みフレームを表示する。FDは次の
一般的なフォーマットを有する。FDが存在するキュー
に応じ、特定のフォーマットには若干の差異が存在す
る。これら差異については後に説明する。
【0110】101におけるビットP1および103に
おけるビットP2はキューエントリーが有効であるかど
うかを示す現在ビットとなっている。FDの内容を有効
とするために双方の現在ビットをセットしなければなら
ない。FDが入力または出力キューにあるか、ホストメ
モリにあるか、またはNICローカルメモリにあるかど
うかとは関係なく、現在のデュアルビットはFDフォー
マットを同じにすることができる。これについては後に
詳細に説明する。各現在ビットは最大位にあるので、ホ
ストは1つの否定的かどうかのテスト命令で現在ビット
をテストできる。
【0111】102におけるステートフィールドはTX
doneおよびRXdoneキューでのみ有効なTXま
たはRXステートを表示する7ビット幅である。TXi
nキュー、すなわちステートの最小位ビットはCLPビ
ット値を示す。このCLP値はそのフレームに対して送
られるセル毎にセットされる。
【0112】108におけるVPI/VCIフィールド
はATMヘッダーに対する24ビットの組み合わされた
VPIおよびVCIを含む。使用されるフレームモード
に応じてフィールド106はデータバッファのスタート
アドレスをポイントするバッファポインタ、同一のVP
I/VCIまたはNULLに対して送信された先のフレ
ームの終了点へのポインタを含む。データバッファはワ
ードが一致していると見なされる。
【0113】使用されるフレームモードに応じ、フィー
ルド108は後に説明するバッファデスクリプタをポイ
ントするBDポインタまたはCPCS制御情報およびパ
ケット長さを含むCRCのないAAL5トレーラーを含
む。110におけるモードフィールドは、後に説明する
フレームモードビットを含む4ビット幅である。
【0114】フィールド112はポイントされたバッフ
ァに関連するバッファデスクリプタオブジェクトを探す
よう、アプリケーションに固有の態様でアプリケーショ
ンが使用できる11ビットバッファIDである。このバ
ッファIDフィールドはNICによっては解読されな
い。バッファサイズ114はフィールド106によって
ポイントされるバッファのバイトサイズを示す16ビッ
トフィールドである。TX方向にはこのサイズはこのバ
ッファから送るデータ量であり、RX方向にはこのサイ
ズはバッファに書き込まれるデータ量である。サイズは
バイトで示されるが、このサイズはワード的に整合して
いなければならない。後に説明する所定の状況下では、
PTIおよびCLPビットの代わりにバッファサイズフ
ィールドの最大位ビットが使用される。
【0115】ホストのFDに対するアクセス、読み出し
または書き込みは、アトミックとすることができないの
で、101および103における現在ビットが必要であ
る。ストールデータの読み出しを防止するため、生産者
は最後の現在ビットを備えたフィールドを書き込まなけ
ればならず、消費者は最初の現在ビットと共にフィール
ドを読み出さなければならない。
【0116】このような制限を実行する最も便利な方法
は、生産者と消費者がデスクリプタを逆の順にアクセス
することである。しかしながら、多くのI/Oバス、例
えばPCIバスは、デスクリプタに関するマルチワード
バーストアクセスをアドレスの増加する順に制限してい
る。ホストメモリにおける入力キューに対し、デスクリ
プタの最初のワードに現在ビットを入れることにより、
デスクリプタを数の少なくなる順に読み出しながらNI
Cが現在ビットを最初に読み出すことは可能となってい
る。同様に、ホストメモリ内の出力キューに対してはデ
スクリプタの最終ワード内に現在ビットを入れることに
より、NICが数の少なくなる順にデスクリプタを書き
込みながら、最後に現在ビットを書き込みすることが可
能となっている。テキサスインスツルメンツ社の設計
は、入力キュー内のデスクリプタの第1ワードの最大位
ビット内および出力キュー内のデスクリプタの最終ワー
ドの最大位ビットに単一の現在ビットを有する。
【0117】しかしながら、テキサスインスツルメンツ
社によって採用されたこの方法は、リングキューがI/
Oバスの反対側にあり、よって、ホストが開始したバー
ストの読み出しおよび書き込みが数の小さくなる順に発
生しなければならないNICローカルメモリ内のリング
キューに対しては不都合である。ホストが最後に現在ビ
ットを書き込み、NICがこれを最初に読み出すような
入力キューに対する以前と同じ制限を満たすには、NI
Cが逆の順にデスクリプタフィールドにアクセスする
か、デスクリプタフォーマットを反転しなければならな
い。いずれもNICを複雑にする。
【0118】本システムはデスクリプタに第2の現在ビ
ットを加える。双方のビットはデスクリプタを有効とす
るためにセットしなければならない。本システムでは、
NICはNICローカルメモリ内のデスクリプタにアト
ミックにアクセスする。これら2つの特徴により、デス
クリプタがどのキューに存在するのか、また、キューが
ホストメモリにあるか、またはローカルNICメモリに
あるかは無関係に、デスクリプタが同じフォーマットを
有することが可能となる。いずれの場合でもNICは常
に数の少なくなるアドレスの順にデスクリプタを読み書
きし、NICが複雑となることを最小にしている。
【0119】図8におけるフレームデスクリプタによっ
て記述されるフォーマットにより、ネットワークインタ
ーフェース内に種々の機能を組み込むことが可能となっ
ている。送信側ではモードビット110により異なるサ
イズのメッセージに対する特殊フォーマットが可能とな
っている。さらにこのフォーマットは、送信側での性能
全体をスタティックチェイニング、ダイナミクチェイニ
ングおよびストリーミングが改善することを可能にして
いる。後にダイナミクチェイニングおよびスタティック
チェインの双方のみならずストリーミングについても説
明する。後に説明するように、ある特別なフォーマット
により受信側でのチャンキングをサポートする最適モー
ドMと称される特別なモードがバッファ効率の改善を可
能にしている。
【0120】本ネットワークインターフェースの送信側
および受信側の双方では、フレーム内のバッファを共に
リンクするための特殊フォーマットを有するバッファデ
スクリプタBDを使用している。図10は、バッファデ
スクリプタフォーマットを示しており、次のBDポイン
タ115はBDのリンクされたリスト内の次のBDをポ
イントする。バッファポインタ116はデータバッファ
のうちのスタートアドレスをポイントする。
【0121】すべてのバッファは一致した32ビットワ
ードであり、サイズが多数あるものと見なされる。すべ
てのデータ転送は32ビットワードを単位として行われ
る。従って、NICはバッファポインタフィールドのう
ちの最大位の30ビットおよびバッファサイズフィール
ドのうちの最大位の14ビットしか使用しない。BDは
一致したクアッドの32ビットワードであると見なされ
るので、NICはBDポインタフィールドのうちの最大
位の27ビットしか使用しない。
【0122】フィールド117はCRCのないAAL5
トレーラー、すなわちCPCS情報を含むよう、フレー
ム用の最終BD内でしか使用されない。BD内の最終ワ
ードは若干の例外はあるが、FD内のワードと同じであ
る。PビットはストリーミングモードにおけるTXdo
neへFDを書き込むことを表示するよう、送信側でし
か使用されない。モードビット118はフレーム内の最
終ビットBDを表示するのに使用される第3ビットを例
外として、使用されない。バッファID119およびバ
ッファサイズ121はFDに対しては同一である。
【0123】フレームデスクリプタおよびバッファデス
クリプタ用のフォーマットは、後に説明する最適化に必
要とされるフレキシビリティを可能とするように意図的
に同じになっている。これら最適化としては、非ブロッ
ク化のための最適化、小メッセージに合わせるための最
適化、チャンキングをサポートするためのストリーミン
グのための最適化、および上記ブロッキングの問題を解
消するための最も重要な最適化がある。
【0124】図11は、ここでモードMと称されるフォ
ーマットを説明するものである。モードMはMを発生す
る、一般に多数のバッファから成る最も簡単なフォーマ
ットである。FD100におけるBDポインタ108
は、次にBDフィールド115、バッファポインタ12
4、バッファIDフィールド119、バッファサイズフ
ィールド121およびPビットプラスモードフィールド
123を有するリンクされたリスト内の最初のBD12
0をポイントし、この場合、バッファデスクリプタ12
0はバッファ132をポイントするバッファポインタ1
24を有する。フレーム用のリンクされたリスト内の最
終BD125はCPCS情報117を含む。フレーム用
のリンクされたリスト内の最終BDはフィールド123
内の第3モードビット内の0によって表示される。
【0125】NICとの間でモードMフレームを転送す
るには、FDに対して1回のI/Oバスオペレーション
と、BDプラスデータトランスファ当たり1回のI/O
バスオペレーションが必要である。従って、モードMフ
レームのためのI/Oバスオペレーションにおける制御
オーバーヘッドは1にバッファの数を加えた回数とな
り、ここでモードMではバッファとBD間は1:1の対
応関係となる。
【0126】次に図12を参照すると、単一バッファが
バッファ132である単一バッファのケースでは、フレ
ームデスクリプタ100とバッファデスクリプタ120
が使用される。1つのバッファしか有しないフレームの
場合、かつそのフレームに他のフレームがチェイニング
されていない場合には、次のBDポインタは不要であ
り、モードMフレーム内のBDを最適にすることがで
き、FDおよびBDフォーマットはFD内に必要なBD
フィールドを記憶できるようになっている。
【0127】図13は、単一バッファを強調するための
モードSと称される圧縮モードの一例を示す。図13に
おけるフレームデスクリプタ130はバッファデスクリ
プタ120およびフレームデスクリプタ100内の、図
12からのすべての必要な情報を含む。これによりフレ
ームを含む単一バッファをフレームデスクリプタが直接
ポイントする、ここでモードSフォーマットを称される
フォーマットが発生する。モードSは小フレームに特に
適し、制御オーバーヘッドはフレームデスクリプタの読
み出しに1回のオペレーションおよび同様なフレームデ
スクリプタを、TXdoneキューに書き込むのに1回
のオペレーションとなる。1セルから成る小フレームに
対しては、これは2回のバスオペレーションの制御オー
バーヘッドとなり、このオーバーヘッドは従来のこれま
で説明したシステムの300%に比較して200%のオ
ーバーヘッドとなる。更にこれは達成可能な最小制御オ
ーバーヘッドである。第1モードビット133はモード
SとモードMのフレームを区別する。
【0128】図14は、フレームデスクリプタ100が
リンク内の第1バッファ、すなわちバッファ132を直
接ポイントし、同時にBDポインタ108が第2BD1
40および残りのバッファのリンクされたリストをポイ
とする最適モードMフォーマットを示す。この最適モー
ドMフォーマットはBDがNICによってレディ状態と
なっていないので、第1バッファのためのBDを不要に
する。第2モードビット134はFD内のBDポインタ
がフレーム内の第1BDをポイントしているのか、第2
BDをポイントしているのかを表示している。データト
ランスを無視すれば、最適モードMフレームはバッファ
の数に等しい数の制御オペレーションを必要とする。極
めて小さいすべてのフレームに対しては、このことはP
CIバスオペレーションの数においてモードMから大幅
に減少するものではない。しかしながら、この最適化に
よって後に説明するような受信側でのチャンキングが可
能となる。
【0129】図15は、送信側およびTXinキュー1
60を備えた本システムのための別のフレームフォーマ
ットを示す。フレームデスクリプタ162は最適にされ
ていないモードMを示す。BDポインタ163はバッフ
ァデスクリプタ164をポイントし、バッファポインタ
166は一部が満たされたバッファ168をポイントす
る。
【0130】フレームデスクリプタ170は、図示する
ように、バッファポインタ172がバッファ174をポ
イントし、BDポインタ176が第2バッファデスクリ
プタ178をポイントし、バッファデスクリプタ182
からの次のBDポインタ180がバッファデスクリプタ
178をポイントする状態の最適化されたモードMを示
す。最後に、フレームデスクリプタ184はバッファポ
インタ190が部分的に満たされたバッファ192をポ
イントする状態のモードSを示す。
【0131】フレームフォーマットで特に重要なのはモ
ードビットである。最適化モードMのためのモードビッ
トは参照番号200で示されており、モードMフォーマ
ットのためのモードビットは202で示され、モードS
フォーマットのためのモードビットは204で示されて
いる。
【0132】モードビットフィールドの各々では第1ビ
ットはフレームデスクリプタがモードMフレームを記述
するか、またはモードSフレームを記述するかを表示す
る。次のビットはモードMフレームの場合、バッファデ
スクリプタポインタがバッファのリンクされたリスト内
の第1バッファデスクリプタをポイントするのか、また
はこのフレームのためのバッファのリンクされたリスト
内の第2バッファデスクリプタをポイントするのかを示
す。前者の場合は、通常のモードMフォーマットを示す
が、後者の場合は、最適にされたモードMフォーマット
を表示する。
【0133】次のビットはストリーミングに使用され
る。ここで、このビットは、フレームデスクリプタがそ
のフレームのための最終フレームデスクリプタであるの
か、または最終でないフレームデスクリプタであるのか
を表示する。後者の場合は、1つ以上のフレームセグメ
ントのストリーミングがフレームを含むことを示す。
【0134】最終モードビットは送信フレームがAAL
5フレームであるのか、またはAAL6フレームである
のかを表示する。従って、フレームデスクリプタに利用
されるフォーマットは利用フォーマットを特定し、かつ
チェイニングを適用するのか、またはストリーミングを
適用するのかを特定する。従って、フレームデスクリプ
タフォーマットはネットワークインターフェースとの間
でフレームを送受信するように、かなりのフレキシビリ
ティを与える。例えば、フレームデスクリプタフォーマ
ットは極めてバッファデスクリプタフォーマットに類似
するので、例えばモードSフォーマットではフレームデ
スクリプタ内にバッファデスクリプタ114が押し込ま
れ、よって小メッセージに対する最適化を行い、効率的
にすることができる。
【0135】後に説明するように、図15に示されたフ
レームデスクリプタのフォーマットはチェイニングをサ
ポートする。送信側では、BDの1つの長いリンクされ
たリスト内のTXin内の同じFDの後方で同一VCの
ための多数のフレームをチェイニングできる。フレーム
のための最初のBDはVPI/VCIステートを除き、
フレームを記述するのに必要なすべてを含む。FDは同
じバーチャルチャンネルのためのフレームごとに同じV
PI/VCIを含む。1フレームのうちの終了点の次の
BDポインタは、次のフレーム内の最初のBDポインタ
をポイントする。モードビットはフレームのうちの終了
点、すなわちフレーム内の最終BDを表示する。
【0136】図16は、送信入力キュー内のフレームを
キューに入れる前にホストがフレームをチェイニングす
るスタティックフレームチェイニングをフレームおよび
バッファデスクリプタフォーマットがどのようにサポー
トするかを示している。かかるチェイニングの主な目的
は、ホストシステムが単一リクエストにおけるいくつか
のフレームをNICへ送信できるようにすることであ
る。かかるチェイニングもブロッキングの可能性を減少
する。
【0137】特に、スタティックチェイニングは、先に
述べたように、フレームデスクリプタ162がバッファ
デスクリプタ164をポイントするBDポインタ163
を有する同じモードMフォーマットでの利用を行う。次
のBDポインタ206は次のフレームの第1バッファデ
スクリプタをポイントし、この場合、バッファポインタ
180がバッファ174および番号218で示されたよ
うな1にセットされた第3モードビットをポイントす
る。このようにして、多数のフレームをリンクすること
ができる。
【0138】この結果、多数のフレームを含むバッファ
デスクリプタの長いリストが得られる。フレーム用のバ
ッファのリンクされたリスト内の最終バッファには、モ
ードビット216および220に対して示された0にセ
ットされた第3モードビットでマークされている。フレ
ームのチェインのためのバッファのリンクされたリスト
は、バッファデスクリプタ226内に示される次のBD
ポインタのためのゼロ値221で終了される。ここで、
チェイン内の第1フレームは最適モードMとすることが
できるが、チェイン内の次のすべてのフレームをモード
Mとしなければならないことに留意されたい。更に、フ
レームチェインはBDのリストのヘッドでは1つのFD
しか有しないことにも留意されたい。
【0139】図16に関連するスタティックフレームチ
ェイニングは、図17に示されるようなダイナミックフ
レームチェイニングシステムまで増加できる。ダイナミ
ックフレームチェイニングは、一般にスタティックチェ
イニングのケースで達成されるのと同じ結果を得るため
に、フレームのネットワークインターフェースチェイニ
ングに関連する。スタティックフレームチェイニングは
送信入力キュー内にフレームデスクリプタであるフレー
ムのリンクされたリストのヘッドを挿入する前にホスト
によって実行しなければならない。これと対照的に、ダ
イナミックフレームチェイニングは送信入力キューから
のマルチフレームデスクリプタを消費し、ネットワーク
インターフェースはこれらをリンクし、スタティックフ
レームチェイニングと同じ目的を達成する。
【0140】このようにすることにより、これまで説明
したブロッキングの問題は完全に解決される。先に述べ
たように、既に送信中の仮想チャンネルのための送信入
力キューからはフレームデスクリプタを除くことができ
ないので、ブロッキングの問題が生じる。これと対照的
に、ネットワークインターフェースはダイナミックフレ
ームチェイニングにより送信入力キューからフレームを
除き、バーチャルチャンネルのために送信中のバッファ
のリンクされたリストの後方に除いたフレームをチェイ
ニングできる。
【0141】ダイナミックチェイニングのための作動中
に、ドライバ/アプリケーションは次のことを実行す
る。まず、第1に、アプリケーションは、バーチャルチ
ャンネルのために最新にキュー内へ入れられたモードM
/最適モードMフレームのためのリンクされたリスト内
の最終バッファデスクリプタに対し、ポインタ、プレブ
ポインタまたは最後のBDポインタを維持する。次に、
ドライバ/アプリケーションは、モードM内のその後の
すべてのフレームをキュー内に入れ、バッファデスクリ
プタを割り当て、これを使用することによりモードSお
よび最適モードMをモードMに変換する。この場合、フ
レームデスクリプタの第2フィールドはそのバーチャル
チャンネルのための先のフレーム内の最終BDに対する
プレブポインタを含む。
【0142】図17はドライバ/アプリケーションがT
Xinキュー160内にかかるフレームデスクリプタを
入れた直後の状況を示す。ボックス230はネットワー
クインターフェースの内部作動レジスタを示す。この場
合、232はネットワークインターフェースがバッファ
デスクリプタ235をポイントするBDポインタ234
と共にバーチャルチャンネル#1のためのフレームを現
在送信中であることを示し、バッファデスクリプタ23
5は、次に、現在送信中のバッファ236をポイントす
る。
【0143】因みに、ホストは同じバーチャルチャンネ
ルのための点線242によって示されたフレームを記述
する情報をフレームデスクチプタ240に挿入したとこ
ろである。240で表示されるエントリーが除かれない
場合、送信キューからバーチャルチャンネル#2のため
の次のフレームデスクリプタ244を送信から除くこと
ができず、バーチャルチャンネル#2が現在アイドル状
態でも送信できないのでブロッキングが生じることとな
る。
【0144】このダイナミックフレームチェイニングを
実行するためにネットワークインターフェースが次の機
能を実行する。まず、第1に、バーチャルチャンネルが
アイドル状態となっていればバーチャルチャンネルがビ
ジー状態に表示され、通常のセグメント化が行われる。
バーチャルチャンネルがビジー状態であれば、よって、
フレームデスクリプタがモードMのフレームデスクリプ
タでないか、またはフレームPTI/CLPが現在フレ
ームのものと異なっていれば、フレームをダイナミック
にチェイニングできない。
【0145】この点で2つの選択案が存在する。まず、
第1の選択案では、NICが送信入力キューを中止する
か、利用可能なネットワークインターフェーススペース
にフレームデスクリプタを記憶できるか、またはエラー
フレームデスクリプタを書き込むことも可能である。そ
れ以外の場合、インターフェースネットワークはフレー
ムデスクリプタから先のポインタ、すなわち矢印252
で示されたような先のフレームにおける最終バッファデ
スクリプタをポイントする先の最終BDポインタ250
を読み出す。
【0146】ネットワークインターフェースは、先のフ
レームに対して働いており、現在のバッファデスクリプ
タポインタ234が先の最終バッファデスクリプタポイ
ンタ250に等しくなければ、ネットワークインターフ
ェースは先の最終BDポインタ250によってポイント
された最終バッファデスクリプタ内の次のBDポインタ
フィールドにBDポインタ254を書き込み、よって、
先のフレームの終了部にフレームをチェイニングする。
この場合、BDポインタフィールド254はBD235
の現在のゼロフィールド256にコピーされる。
【0147】上記以外の場合、ネットワークインターフ
ェースが先のフレームの最終バッファデスクリプタに作
用している場合、ネットワークインターフェースはバッ
ファデスクリプタポインタ234にバッファデスクリプ
タポインタ254を書き込む。
【0148】次に、送信側のストリーミングについて説
明する。ストリーミングとは、一連のフレームセグメン
トとしてネットワークインターフェースとの間でフレー
ムを送受信できるようにすることである。送信側では、
各フレームセグメントはTXinキュー内にフレームデ
スクリプタを備えたモードMフォーマットにおける1つ
以上のバッファである。受信側では、各フレームセグメ
ントは受信TXdoneキューにおけるフレームデスク
リプタを備えたモードSの1つのバッファまたはモード
Mの2つ以上のバッファである。
【0149】フレームセグメント当たりのバッファ数は
レジスタのセグメントサイズによって制御される。これ
らフレームセグメントの1つ以上がフレーム全体を構成
する。フレームデスクリプタにおけるモードビットはフ
レーム内のかかる最終セグメント内にフレームセグメン
トがあるかどうかを表示する。存在する場合、このモー
ドビットはAAL5情報を含む。
【0150】ストリーミングにより一連のフレームセグ
メントとしてネットワークインターフェースとの間でフ
レームを送受信することが可能となるので、これによ
り、送信側ではすべてのセグメントを発生する前に1つ
のフレームの送信をスタートでき、受信側ではフレーム
全体を受信する前にフレームの処理をスタートできるの
で、フレームの処理のレイテンシーを短くすることに役
立つ。また、送信側でもストリーミングによりフレーム
の終了前にバッファをリサイクルできる。
【0151】図18は送信側のストリーミングを示す。
送信入力キュー160がバッファの1つ以上のモードM
のフォーマットリンクリストを含み、各々のバッファは
フレームのうちの1セグメントを発生する。図18にお
ける点線260は、モードMのバッファのリンクされた
リストのフレームセグメントを示す。フレームデスクリ
プタにおける第3モードビット262はこのビットがフ
レームのうちの最終フレームセグメントでないことを示
す。点線264で示されるように、最終フレームセグメ
ントが続くフレームセグメントの0またはそれ以上のこ
れらタイプが存在し得る。これはモードMフォーマット
のバッファの完全なリンクされたリストである。
【0152】しかしながら、第3モードビット266
は、これがこの特定のバーチャルチャンネルに対するフ
レームの最終セグメントであることを表示している。こ
のような特定のケースでは、最終バッファデスクリプタ
268はフィールド270におけるCPCS情報を含
む。作動中、TX側のストリーミングは大きな装置を必
要としない。むしろモードMフレームにおけるバッファ
の変化の検出とダイナミックフレームのチェイニングを
うまく利用している。ストリーミングは、ダイナミック
フレームチェイニングの若干の変更とバッファのリサイ
クリングを可能とするよう、フレームデスクリプタを書
き込むための加算を必要とする。
【0153】フレームの終了部まで、または現在バッフ
ァ内のデータが48バイトよりも少なくなるまでセグメ
ント化が進められる。セグメント化を進めるには、デー
タのフル状態のセルペイロードを取得しなければならな
い。非ストリーミングケースではNICは次のBDポイ
ンタを読み出し、I/Oバスオペレーションを2回実行
する。1回は現在バッファからの最終部分セルの読み出
しであり、1回は新しいバッファからのセルの残りの読
み出しである。
【0154】ストリーミングの場合、次のBDポインタ
が0であればTXin内に次のフレームセグメントが生
じるまでセグメント化を中止する。この理由は、バーチ
ャルチャンネルのための次のフレームセグメントをロー
ドするまで、NICにより現在セグメントの最終部分セ
ルをフェッチできないからである。次のフレームセグメ
ントが生じ、TXinからフェッチされると、FDから
の次のBDポインタがVCエントリー内の次のBDポイ
ンタフィールドに記憶される。この点で、この状況はバ
ッファの変更に対しては同じであり、セグメント化を再
開できる。
【0155】フレームセグメントは、フレームに対する
のと同じようにダイナミックにチェイニングできる。し
かしながら、わずかな問題が生じる。NICが第1チェ
インの最終バッファをセグメント化している際に2つの
完全なフレームがチェイニングされると、第1フレーム
の最終BDのメモリ内の次のBDフィールドを更新する
ことが現実には不要となる。VCテーブル内の次のBD
フィールドにそのBDポインタを記憶させるだけでよ
い。しかしながら、これら状況下で同じフレームのため
の2つのセグメントをチェイニングする場合、TXdo
neに書き込まれたFDによってヘッドとされたリスト
内に第2セグメントがリンクされることはない。従っ
て、バッファが失われた状態となり得る。この解決案は
極めて簡単である。このセグメントがフレーム内の最後
のセグメントでないときは、いつもメモリ内に次のBD
フィールドを更新すればよい。
【0156】上記高速バッファのリサイクリングの利点
をストリーミングによって得られるようにするため、B
Dの最終ワードにおける最大位ビット、すなわちPビッ
トをTXdoneへのFDの書き込みを表示するように
セットできる。バッファの変更を完了し、バッファの境
界と交差するセルの送り出しを完了した後、NICはこ
のビットをチェックし、セットされている場合、最終で
ないフレームセグメントビットを備えたFDをこのポイ
ントに送られたバッファのためのTXdoneへ書き込
み、VCテーブルエントリー内のヘッドポインタを更新
する。BDはちょうど読み出されたところであるので、
作動レジスタにこのビットおよび新しいヘッドポインタ
を記憶することができ、新しいVCテーブルエントリー
フィールドは不要である。
【0157】図19はゼロ適応層または未加工セルとし
ても知られるAAL0フォーマットをサポートするよ
う、図15に示されたフォーマットに関する若干の変化
を示す。ATMセル内に直接含まれる4バイトユニット
にアプリケーションが寄与するかかる未加工セルモード
を可能にする2つの理由がある。かかる未加工モードセ
ルを可能にする第1の理由は、ペイロードのトランスペ
アレンシーにある。ペイロードのトランスペアレンシー
はペイロードにおけるデータのためのフォーマット、す
なわち不要のAAL5フォーマットを可能にすることに
関連する。このフォーマットはアプリケーションで直接
使用できる。
【0158】かかる未加工モードセルを可能にする第2
の理由は、セルトランスペアレンシーにある。このセル
トランスペアレンシーはセルヘッダーのみならずセルペ
イロードにおけるPTI、CLPおよびGFCのための
任意の値に関連する。PTIはペイロードタイプのイン
ディケータフィールドに関連し、CLPはセルの喪失優
先度に関連し、GFCは包括的なフロー制御に関連し、
これらのいずれも図3に示されたようなATMセルヘッ
ダー内にある。
【0159】AAL5およびシェープされたAAL0モ
ードの作動はできるだけ同じとされる。双方のモードは
同じキュー、すなわちTXinキュー、TXdoneキ
ュー、RXfreeキューおよびRXdoneキューを
使用する。図19は送信側でAAL5フォーマットに可
能な種々のモードおよびフレームデスクリプタおよびバ
ッファデスクリプタフォーマットを示す。フレームデス
クリプタの第4モードビット280はAAL5フォーマ
ットに対するAAL0フォーマットの関係を制御する。
従って、フレームデスクリプタはAAL5フォーマット
をサポートするフィールドを乱すことなく必要なフレキ
シビリティでAAL0モードまたはAAL5モードのい
ずれかを記述できる。
【0160】例えばこれにより単一バーチャルチャンネ
ルに対しAAL5およびAAL0フレームを散在させる
ことができる。フレーム内の最初の32ビットフィール
ドの最大位バイトがCLPの他にPTIを含むという点
でのみ、フレームデスクリプタフォーマットはAAL5
フォーマットに対するフォーマットと異なっている。A
TMセルヘッダーにおけるGFCフィールドは通常0で
ある。必要な場合、フレームデスクリプタ内にGFCフ
ィールドをエンコードするための種々のオプションが存
在している。例えば、バッファIDの最小位の4ビット
でGFCビットをエンコードできる。TXdoneキュ
ーにおけるフレームデスクリプタ内には、PTI、CL
PおよびGFC値が戻されることはない。
【0161】AAL5モードの各々では所定のバッファ
を48バイトユニットにセグメント化し、個々のAAL
0セルとして送る。これらセルのすべてには同じGF
C、PTIおよびCLPが添えられる。後に理解できる
ように、これは送信側のチャンキングに対応する。組み
合わされたバッファサイズが48バイトの倍数でない場
合、セルの送信を終了し、フレームデスクリプタ内に表
示されたエラーステータスを282として表示されたT
Xdoneキューに書き込む。
【0162】図20は本システムによって可能な異なる
バッファモードと共に、RXfreeキュー300およ
びRXdoneキュー102を含む受信側を示す。RX
freeキュー300におけるエントリーは、2つの現
在ビットを含むフレームデスクリプタに極めて類似した
構造を備えた番号303で示されたフリーBDデスクリ
プタFBDである。各FBD303はフリーバッファ3
08およびフリーバッファデスクリプタ310をそれぞ
れポイントするポインタ304および306を含む。こ
のユニークな組織化は必要なバッファごとに入進フレー
ムに対して必要なフリー構造を提供するのに1つのリン
グキューしか必要でなく、1回のI/Oバスアクセスし
か必要でないことを意味している。RXfreeキュー
における実際のエントリーはリングキューで直接割り当
てられたFBDであるので、これらはリンクリストを構
成するのに使用できない。
【0163】フレーム12は受信側で可能な種々のフォ
ーマットを示す。バッファデスクリプタ312はモード
Mフォーマットを示す。このデスクリプタは、バッファ
デスクリプタのリンクされたリストをポイントし、その
うちの1つがバッファ316をポイントするデスクリプ
タとして番号314で示されている。フレームデスクリ
プタ320はモードSを示す。フレームデスクリプタ3
20はバッファ322をポイントする。フレームデスク
リプタ324は最適化されたモードMを示し、FD32
4はバッファ328における最初のバッファをポイント
するバッファポインタ326を有する。
【0164】BDポインタ330はバッファデスクリプ
タ332をポイントし、このデスクリプタは次に第2バ
ッファ333をポイントする。ここには図示されていな
いが、BD332は別のBDもポイントすることができ
る。バッファ328として同じRXfreeバッファデ
スクリプタエントリーから得られたバッファデスクリプ
タ334は使用されないことに留意されたい。これによ
り、チャンキングを参照して後に説明する利点が得られ
る。
【0165】理解できるように、図20はバッファチャ
ンキングを有しないAAL5フレームに対する3つのフ
ォーマットのすべて、すなわちモードM、モードSおよ
び最適にされたモードMを示す。新しいフレームが到着
すると、ネットワークインターフェースはRXfree
キュー300からフレームバッファデスクリプタを除
き、FBD340からフリーバッファデスクリプタ31
0へフリーバッファポインタ304およびポインタ30
6を抽出する。
【0166】フレームが単一バッファに適合する場合、
フリーバッファデスクリプタ310を無視し、フレーム
デスクリプタが直接バッファをポイントし、モードSフ
レームを発生させる。フレームが単一バッファに適合し
ない場合、フリーバッファデスクリプタを使用して多数
のバッファをリンクし、フレームデスクリプタがリスト
内の最初のバッファデスクリプタをポイントする。この
結果、得られるフレームはバーチャルチャンネルイネー
ブル美とに応じてモードMまたは最適化されたモードM
のいずれかとすることができる。モードSおよび最適に
されたモードMの廃棄されたフリーバッファデスクリプ
タは、後に説明するように、再生する必要がある。
【0167】従来のネットワークインターフェースで
は、新しいフレームが到着した時、または受信したフレ
ームが現在のバッファを満たす場合に、新しい場合を検
索する。受信されたフレーム内の最終場合はほとんど空
の状態となる場合がある。これとは対照的に、バッファ
チャンキングを行うと、バッファが満たされた場合に限
り、検索された新しいバッファと共にバッファ内に多数
のフレームを記憶できる。受信されたフレームを記憶す
るために使用されるバッファ領域はチャンクと称される
領域に分割される。各チャンクはサイズがバッファ以下
であり、バッファ内に完全に適合するフレームの一部を
含む。小フレームは1つのチャンクしか必要としないこ
とがあり得るが、大きなメッセージフレームはサイズが
バッファよりも小さい第1チャンク、すなわちフルバッ
ファに等しいチャンク、さらにサイズがフルバッファよ
りも小さいチャンクを必要とすることがある。
【0168】図21はバッファチャンキングを備えたA
AL5のための同一の3つのフレームフォーマットを示
す。ネットワークインターフェースに新しいフレームが
到着すると、先のバッファにスペースが残されていない
場合に限り、ネットワークインターフェースはRXfr
eeキュー300からFBD303を除く。生じるケー
スは2つある。第1のケースとは、バッファがまだ使用
されていない場合で、例えばFBDがキューから除かれ
たケースである。使用されていないバッファ内の第1チ
ャンクは参照番号350で示されている。
【0169】ここで、選択案は1つある。すなわちチャ
ンク350をポイントするバッファデスクリプタ314
をバッファデスクリプタポインタ354がポイントする
352に示されているように、モードMを使用してフレ
ーム内の第1チャンクを表示できる。これとは別に、モ
ードSを使用して第1チャンクを表示し、低オーバーヘ
ッドの利点を得ることができる。これは、アクセスする
バッファデスクリプタがないからである。モードSの場
合にはフレームデスクリプタ356がチャンク358を
直接ポイントする。しかしながら、後に説明するよう
に、これには廃棄したフリーバッファデスクリプタを再
生しなければならないという欠点がある。バーチャルチ
ャンネル内のビットはチャンキングが可能であるかどう
か、上記選択案のいずれを使用すべきかを表示する。
【0170】第2ケースとは、バッファ316内のチャ
ンク350によって表示されるような先のフレームに対
しバッファの一部が既に使用されている場合である。新
しいフレームが単一のチャンクに適合する場合、フリー
バッファデスクリプタは不要である。この場合、フレー
ムデスクリプタに対応するRXdoneキュー302内
にバッファデスクリプタを直接割り当て、チャンクを直
接ポイントし、モードSフレームを発生する。ここで、
モードMフォーマットはある場所からの別のフリーバッ
ファデスクリプタを必要とするので、モードSは強制的
であることに留意されたい。
【0171】362で示されるように、残りのバッファ
エリアに新しいフレームが適合しない場合は、フリーバ
ッファデスクリプタを使用して多数のチャンクをリンク
する。この場合、第1チャンクは最適モードMを使用し
なければならない。その後、ネットワークインターフェ
ースはチャンク毎にFBDをキューから除き、フリーバ
ッファおよびフリーバッファデスクリプタを得なければ
ならない。その後、NICはバッファデスクリプタのリ
ンクされたリスト内の連続するバッファデスクリプタに
対しフリーバッファデスクリプタを使用する。
【0172】例えば、フレームデスクリプタ366は第
1チャンク362およいBD364をポイントする。こ
のBDは第2チャンク360をポイントする。先に述べ
たように、使用されないバッファデスクリプタのスペー
スの再生が重要である。RXfreeキュー内のバッフ
ァごとに1つのフリーバッファデスクリプタが供給され
る。先に述べたように、バッファデスクリプタが不要の
ケースもある。これらみなしご状態となったフリーバッ
ファデスクリプタを再生し、これらをリサイクルできる
ようにしなければならない。
【0173】みなしご状態になったバッファデスクリプ
タを再生する1つの方法は、フレームデスクリプタ内と
同じバッファポインタを備えたバッファデスクリプタを
探すことである。チャッキングでないモードに対して
は、モードSフレームは関連するみなしご状態のバッフ
ァデスクリプタを有する。チャッキングモードに対して
はRXdoneキュー内のフレームにバッファの最終チ
ャンクが生じるまで、ドライバ/アプリケーションが待
機する。これにより、総使用量を維持しなければなら
ず、これはいかなる場合でもチャンクの再組み合わせ部
分として行わなければならない。この点で、ドライバ/
アプリケーションはバッファ内にチャンクを再結合でき
る。
【0174】このバッファに関連したバッファデスクリ
プタは以前と同じように発見できる。この方式で、デー
タ構造はバッファアドレスからバッファデスクリプタに
変換される。一実施の形態では、バッファがページ的に
整合し、小レンジのアドレスにわたって広がっている場
合には、ハッシュテーブルまたは簡単なテーブルとなっ
ている。RXfreeキューを共用するマルチバーチャ
ルチャンネルの場合、各バーチャルチャンネルはそのバ
ーチャルチャンネルのためのチャンクに全バッファを取
り出さなければならない。みなしご状態のバッファデス
クリプタを再生する別の方法は、バッファデスクリプタ
アドレスの表に対するインデックスとしてフレームデス
クリプタ内のバッファIDフィールドを使用することで
ある。
【0175】受信側でのストリーミングに関して、RX
側はバーチャルチャンネルごとにバーチャルチャンネル
テーブルエントリーを有し、バッファすなわちバッファ
デスクリプタの数に換算してフレームセグメントサイズ
を指定する。この数のバッファが満たされるか、フレー
ムの終了部に達するか、またはRXdoneキューへフ
レームデスクリプタが書き込まれるまで再組み立てが進
む。セグメントに対し最適モードMが使用される場合、
フレームセグメント用フレームデスクリプタの書き込
み、またはバッファ変更のためのバッファデスクリプタ
の書き込み時にオーバーヘッドには差はない。
【0176】図22は受信側がどのようにAAL0モー
ドをサポートするかを示す。受信方向では、各バーチャ
ルチャンネルには常にAAL0モードまたはAAL5モ
ードと表示されている。AAL0モードの場合、バッフ
ァおよびセルヘッダーを含むモードSフレームデスクリ
プタにそのバーチャルチャンネルのための各入進セルが
書き込まれ、RXdoneキューにAAL0ビットセッ
トが書き込まれる。非チャンキングモードまたはチャン
キングモードのいずれも使用できる。
【0177】受信側でのAAL0モードとAAL5モー
ドとの唯一の差は、図20に示されたバッファフィルサ
イズエントリー380が382で表示された最終セルの
ヘッドからのPTIおよびCLPフィールドで置換され
た上部の4ビットを有する。この結果、AAL5モード
とAAL0モードのフォーマットの差はAAL0モード
では最終セルのヘッダーからのPTIおよびCLPフィ
ールドの4ビットの連鎖をRXdoneキュー内のフレ
ームデスクリプタ内のバッファ側のフィールドの最大位
バイトへ書き込むことである。AAL0モードではバッ
ファサイズは48ビットよりも大きくなることはないの
で、競合はない。所望すれば、GFCフィールドをフレ
ームデスクリプタ内に含めることもできる。これを行う
には種々の方法がある。1つの方法はPTIおよびCL
Pに隣接するバッファサイズフィールドの4ビットに入
進セルからのGFCフィールドを記憶することである。
【0178】後に説明するように、上記機能を達成する
ためのアルゴリズムについて示す。送信側では、NIC
はバーチャルチャンネル毎に少なくとも次の情報を維持
する。 モードビット 現在バッファポインタ 残されているバッファサイズ 現在BDポインタ フレームセグメント内の最初のBDに対するポインタ
【0179】データを送るのに関連するオペレーション
は一般に次のとおりである。 1.ドライバ/アプリケーションがBDのリンクされた
リストにメッセージを記憶する。 a.フリーバッファを探し、データで満たす。 b.第1バッファを満たした後、バッファごとにフリー
BDを探し、これをバッファデスクリプタで満たす(バ
ッファとBDをペアとして管理すると都合がよい)。 2.ドライバ/アプリケーションがTXinのキューに
エントリーを入れる。すなわちモードMでFDを、モー
ドSで(第1フィールド内のVPI/VCIと共に)第
1BDのコピーを、または最適モードMでFDをキュー
に入れる。 3.ドライバ/アプリケーションは(NICポーリング
により、または直接書き込み通知ステータスレジスタに
より、可能な方法を)NICに知らせる。
【0180】4.NICはTXinからFDエントリー
を除きFD情報を記憶する。 5.モードSの場合、NICはバッファを読み出す。モ
ードMの場合、NICはBDを読み出し、次にバッファ
を読み出す。(BD内の最終フィールドによって示され
るように)最終バッファが送られるまで必要なだけ繰り
返す。次のBDポインタが0でなければ、このポインタ
が同じVCに対するフレームセグメントの別フレームの
第1BDをポイントする。次のBDポインタが0となる
までフレーム/セグメントの処理を続ける。最適モード
Mの場合、NICはまずバッファを読み出し、その後、
モードMに対する手続きに従う。 6.NICは送られる各フレームセグメント毎にTXd
one内のエントリーもキューに入れる。 a.チェイン状態となっていない場合、またはチェイン
内に第1フレームがある場合、(TXin内のFDから
セーブした情報に基づき)TXdoneにFDを書き込
み、ステートを、更新する。 b.チェイン状態になっている場合、モードMのFDを
TXdoneに書き込む。
【0181】7.ドライバ/アプリケーションはTXd
oneからFDを除き、バッファおよびBDを再生す
る。受信側ではNICは各バーチャルチャンネルのため
に少なくとも次の情報を維持する。 モードビット 現在バッファ位置 現在バッファ内の現在チャンク位置を示すチャンクポイ
ンタ (このポインタはバッファのチャンキング、すなわち同
じバッファからの連続チャンク内の連続フレームに記憶
装置を割り当てるのに使用される) 残されているバッファサイズ
【0182】データを受信するのに関連するオペレーシ
ョンは一般に次のとおりである。 0.(事前に)ドライバ/アプリケーションは充分な数
のFDBをキューに入れることによりRXfreeを作
成する。実際にはFDBをキューに入れるためにホスト
はメモリ内の1つのフリーBDを関連するバッファで満
たす。 1.第1セルまたはフレームが到着するとNICはVC
テーブルエントリーを検査する。 2.チャンクポインタが0またはチャンキングが不能で
ある場合、NICはRXfreeからFBDを除きFB
D内のバッファポインタに対するチャンクポインタを更
新する。
【0183】3.NICはチャンクポインタによって表
示されたバッファとなるように、入進フレームを再組み
立てする。 a.現在バッファにデータを記憶する。 b.フレーム終了(モードS)であればRXdoneに
FDを巻き込む。オプションとして非チャンキングモー
ドである場合、またはチャンキングモードでバッファ内
に第1チャンクがある場合には、モードMのFDを書き
出す。 c.フレームが終了していなければ(バッファはフィル
状態)(最適モードM)、
【0184】i.RXfreeから新しいFBDをキュ
ーから取り出し、新しいバッファおよびフリーBDポイ
ンタを得る。 ii.新しいバッファ内にデータを記憶する。 iii.BDを新しいフリーBDポインタ内のロケーシ
ョンに書き込む際にフレームが完了していれば、バッフ
ァポインタをバッファポインタにセットし、次のBDポ
インタを0にセットする。 iv.そうでない場合、一時的レジスタ「セーブされた
BD」にフリーBDポインタを記憶する。一時的レジス
タ「セーブされたバッファポインタ」内に第1バッファ
に対するポインタを記憶する。 v.RXfreeから新しいFBDをキューから取り出
し、新しいバッファおよびフリーBDポインタを得る。 vi.セーブされたBD内のロケーションにBDを書き
込み、バッファポインタをセーブされたバッファポイン
タにセットし、次のポインタを新しいBDポインタにセ
ットし、 vii.(ii)へ進む。
【0185】選択案 非チャンキングモードの場合、またはチャンキングモー
ドであってバッファ内に第1チャンクがある場合は、モ
ードMのFDの書き込みが可能である。 4.NICはFDをRXdoneに書き込む。 5.NICはドライバ/アプリケーションに通知する
(インターラプトまたはドライバ/アプリケーションポ
ーリングによる方法が可能である)。 6.ドライバ/アプリケーションはRXdoneからF
Dを取り出し、フレームを処理する。
【0186】ダイナミックチェイニングのためのオペレ
ーションは次のとおりである。ドライバ/アプリケーシ
ョンおよびNICは次の役割を果たす。ドライバ/アプ
リケーションは次のことを行う。 1.VCのための最新にキューへ入れられたモードMフ
レームのためのリンクされたリスト内の最終BDにポイ
ンタ、すなわちプレブポインタを維持する。 2.プレブポインタを含むFDの第2フィールドと共
に、(モードSをモードMに変換するのにBDを割り当
て、これを使用する)モードMですべてのフレームをキ
ュー内に入れる。
【0187】NICは次のことを行う。 1.VCチャンネルがアイドル状態であれば、VCをビ
ジー状態と表示し、通常のセグメント化を実行する。 2.VCチャンネルがビジー状態であれば、 a.FDがモードMでないか、またはフレームGFC/
PTI/CLPが現在フレームのものと異なっている
か、FD内のポインタが0である場合、フレームをダイ
ナミックにチェイニングできない。この場合、VCチャ
ンネルのための現在のセグメント化が完了し、ブロッキ
ングの可能性が生じるまでTXinの更なる処理を中止
する(別の可能性はエラーを表示するFDと共にTXd
oneへフレームを書き込むことである)。
【0188】b.上記以外の場合で、 i.先のフレームに対して働いており、かつ現在のBD
ポインタが先の最終BDポインタに等しくないか、また
はVCテーブルエントリーが最終フレームセグメントビ
ットを有していないかのいずれかの場合、先のフレーム
内の最終BD内の次のBDフィールドにFDからのBD
ポインタを書き込む(よって先のフレームの終了部にフ
レームをチェイニングする)。 ii.先のフレームの最終BDに作動中であるか、また
は先のフレームと共に完了している場合、VCテーブル
エントリーの次のBDフィールドにBDポインタを記憶
する。 3.1つのフレームを完了するとVCテーブルエントリ
ー内の次のBDフィールドをチェックする。ゼロでなけ
れば次のBDは次のチェイニングされたフレーム内の第
1BDであり、これをロードし、処理する。 以上で、この発明の好ましい実施例について説明した
が、当業者であればこの発明の要旨の範囲内で変形例お
よび代替例を実施できよう。従って、この発明の範囲は
特許請求の範囲によって定義されるものである。
【0189】
【発明の効果】以上のように、この発明に係るネットワ
ークインターフェースによれば、ホストコンピュータを
ネットワークに接続するためのコネクションベースデー
タ伝送システムにおけるネットワークインターフェース
であって、I/Oバスインターフェースと、このI/O
バスインターフェースに接続された受信ブロックおよび
送信ブロックと、上記I/Oバスインターフェースを上
記ホストコンピュータに接続するバスおよび上記送信ブ
ロックと上記受信ブロックを上記ネットワークに接続す
るための手段を有するネットワークインターフェースカ
ードを備え、上記受信および送信ブロック内に、上記ホ
ストコンピュータが有する送信入力TXinおよび送信
完了TXdoneキューならびに受信フリーバッファR
Xfreeおよび受信完了RXdoneキューと、周辺
部品相互接続インターフェースとによって利用されるマ
ルチワードフレームデスクリプタフォーマットを実現す
るための手段を設けたので、パケットをベースとするデ
ータ伝送システムにおいて、フレームモードのすべてが
共存でき、最適化されたバッファモード、ダイナミック
およびスタティックチェイニングを可能にすると共に、
ストリーミングを可能とし、受信側でチャンキングを可
能にすることができる。
【0190】また、上記マルチワードフレームデスクリ
プタフォーマットは、モードSフォーマットに適合する
ためのフィールドを含むので、バッファ内に適合する短
いフレームに対してはモードSが使用され、みなしご状
態となったバッファデスクリプタの問題が解決され、小
フレームに対するオーバーヘッドを極めて低くすること
ができる。
【0191】また、上記マルチワードフレームデスクリ
プタフォーマットは、モードMフォーマットをサポート
するので、バッファの境界部で始まるフレームに対して
はモードMが使用され、みなしご状態となったバッファ
デスクリプタの問題が解決され、小フレームに対するオ
ーバーヘッドを極めて低くすることができる。
【0192】また、上記マルチワードフレームデスクリ
プタフォーマットは、最適化されたモードMフォーマッ
トをサポートするので、バッファの境界部で開始しない
マルチバッファフレームに対しては最適化されたモード
Mが使用され、みなしご状態となったバッファデスクリ
プタの問題が解決され、小フレームに対するオーバーヘ
ッドを極めて低くすることができる。
【0193】また、上記マルチワードフレームデスクリ
プタフォーマットは、チェイニングをサポートするの
で、ブロッキングの問題を解消することができる。
【0194】また、上記マルチワードフレームデスクリ
プタフォーマットは、ストリーミングをサポートするの
で、バッファ空間のより高速なリサイクリングが可能と
なる。
【0195】また、上記マルチワードフレームデスクリ
プタフォーマットは、チャンキングをサポートするの
で、ネットワークインターフェースを簡素にし、バッフ
ァの効率的な利用を可能にする。
【0196】また、上記ネットワークインターフェース
カードは、ローカルメモリを含み、上記複数のキューが
上記ローカルメモリ内に位置し、上記マルチワードフレ
ームデスクリプタは、上記システムが入力キューまたは
出力キューをアドレス指定するか、または上記キューが
上記ホストメモリ内にあるかどうかとは無関係に、フレ
ームデスクリプタに対する同じフォーマットを可能にす
るよう、デュアル現在ビットを有するフィールドを含む
ので、デスクリプタを逆の順にアクセスすることを可能
にすることができる。
【0197】また、上記インターフェースは、ATMイ
ンターフェースであり、上記マルチワードフレームデス
クリプタフォーマットは、AAL0およびAAL5フォ
ーマットの双方に適合するためのフィールドを有するの
で、AAL0およびAAL5フォーマットの双方をサポ
ートするフィールドを乱すことなく必要なフレキシビリ
ティでAAL0およびAAL5フォーマットのいずれか
を記述でき、単一バーチャルチャンネルに対しAAL0
およびAAL5フレームを散在させることができる。
【0198】また、上記ネットワークインターフェース
カードは、ブロッキングを防止するための手段を含むの
で、ブロッキングの問題を解消することができる。
【0199】また、上記受信フリーバッファRXfre
eキューは、フレームデスクリプタを有し、該フレーム
デスクリプタは、バッファポインタおよび上記フレーム
デスクリプタのフォーマットに類似するフォーマットを
有する関連するバッファデスクリプタに対するポインタ
を含むので、フレームデスクリプタ内にバッファデスク
リプタを押し込み、小フレームに対する最適化を行い、
効率的なものとすることができる。
【0200】また、上記受信フリーバッファRXfre
eキューのための上記フレームデスクリプタおよび上記
バッファデスクリプタは、1つのデスクリプタとなるよ
うに組み合わされているので、フレームデスクリプタ内
と同じバッファポインタを備えたバッファデスクリプタ
を探すことによりみなしご状態となったバッファデスク
リプタを再生して、リサイクルするのを容易にすること
ができる。
【0201】また、この発明に係るネットワークインタ
ーフェースは、1つ以上のバッファと、バッファのリン
クされたリストと、単一バッファまたはバッファの上記
リンクされたリストのヘッドを表示するためのマルチワ
ードフレームデスクリプタを有し、バッファの上記リン
クされたリスト内のバッファの各々は自己のバッファデ
スクリプタを有し、ネットワークを通してホストコンピ
ュータから情報のフレームを送信するようにしたので、
キューがマルチワードフレームデスクリプタを含むリン
クされたバッファフォーマットを利用することにより、
ネットワークインターフェースへ送るフレームを識別で
き、ダイレクトアクセスアーキテクチャ等で使用するた
めのネットワークインターフェースを実現できる。
【0202】また、上記フレームおよびバッファデスク
リプタのフォーマットは、スタティックチェイニング、
ダイナミックチェイニングおよびストリーミング(これ
らはすべて同じデスクリプタフォーマットからのもので
ある)を可能にするので、フレームデスクリプタはリス
ト内の第1バッファのためのバッファデスクリプタをポ
イントし、このバッファデスクリプタは次にリンクされ
たリスト内の次のバッファのための次のバッファデスク
リプタをポイントし、同様に次々にポイントすること
で、フレームおよびバッファデスクリプタのフォーマッ
トは、スタティックチェイニング、ダイナミックチェイ
ニングおよびストリーミングをサポートすることができ
る。
【0203】また、上記ネットワークを通して送るべき
フレームを識別するための上記フレームデスクリプタを
含む手段を備えるので、ネットワークインターフェース
へ送るフレームを識別できる。
【0204】また、上記フレームを識別するための上記
手段は、上記マルチワードフレームデスクリプタを含む
リングキューを備え、上記フレームデスクリプタが上記
バッファに対するポインタまたはバッファの上記リンク
されたリストのヘッドに対するポインタを含むので、ネ
ットワークインターフェースへ送るフレームを識別でき
る。
【0205】また、上記フレームデスクリプタは、上記
フレームを記述する情報を含み、上記情報がバーチャル
チャンネル番号、ステート情報およびモード表示のうち
の少なくとも1つを含むので、フレームデータに対する
ファットポインタを構成するマルチワードフレームデス
クリプタを提供することができる。
【0206】また、上記フレームデスクリプタは、上記
リンクされたリスト内の第1バッファに対するバッファ
デスクリプタをポイントし、さらに、上記リンクされた
リスト内の次のバッファに対する次のバッファデスクリ
プタをポイントするようにしたので、スタティックチェ
イニング、ダイナミックチェイニングおよびストリーミ
ングをサポートすることができる。
【0207】さらに、上記ホストコンピュータは、ドラ
イバおよびオペレーティングシステムを有し、上記ネッ
トワークインターフェースは、送信入力キーを有し、さ
らにフレームデスクリプタを上記送信入力キューに直接
書き込み、上記ドライバまたはオペレーティングシステ
ムによる介入を防止するための手段を含むので、アプリ
ケーションがドライバおよびオペレーティングシステム
の介入を受けることなく、リングキューに直接書き込み
できるから効率性がよく、ポーリングがイネーブルされ
る場合には1回のI/Oバスオペレーションでよく、送
信入力キューがポーリングモードになっていない場合、
アプリケーションは特定の期間の間ネットワークインタ
ーフェースがポーリングモードとさせる通知レジスタに
書き込みできる。
【図面の簡単な説明】
【図1】 ホストメモリ内に2つのリングキュー(一方
の入力リングキーは送信すべきフレームのためのTXi
nと表示されたものであり、他方の出力リングキューは
送信を完了したフレームのためのTXdoneと表示さ
れたものである)を有するネットワークインターフェー
スカード、すなわちNICの送信側をブロックで示す略
図である。
【図2】 ホストメモリ内に2つのリングキュー(一方
の入力リングキューは空のバッファのためのフリーバッ
ファキューと表示されたものであり、他方の出力キュー
は受信されたバッファのフレームのためのRXdone
と表示されたものである)を有するネットワークインタ
ーフェースの受信側をブロックで示す略図である。
【図3】 ATMセルの略図である。
【図4】 AAL5フレームの略図である。
【図5】 各リングキューエントリーはフレームデスク
リプタに関するポイントであり、フレームデスクリプタ
がフレームのリンクされたリストのみならずフレームを
含むバッファのリンクされたリストをポイントする、三
菱電機によって開発された従来のネットワークインター
フェースアーキテクチャの略図である。
【図6】 富士通によって製造された従来システムの送
信側構造の略図である。
【図7】 テキサスインスツルメンツ社によって製造さ
れた従来システムの送信側構造の略図である。
【図8】 この発明に係るもので、サブジェクトフレー
ムデスクリプタおよびバッファデスクリプタを使用する
ネットワークインターフェースカード上のATMネット
ワークインターフェースチップを示すブロック図であ
る。
【図9】 フレームデスクリプタがバッファデスクリプ
タポインタと、次のバッファデスクリプタに対するポイ
ンタと、バーチャルチャンネルまたはコネクションを識
別し、データの伝送のモードを識別し、パラメータ、例
えばバッファサイズを識別するリングキュー内の有効エ
ントリーとして表示するための付加的フィールドとを有
するサブジェクトフレームデスクリプタの略図である。
【図10】 第1ワード内を除き、バッファデスクリプ
タおよびフレームデスクリプタが同一のフォーマットを
有するサブジェクトバッファデスクリプタの略図であ
る。
【図11】 フレームデスクリプタが多数のバッファモ
ードMフォーマットを示す本システムの略図である。
【図12】 単一バッファから成るモードMのフォーマ
ットフレームの略図である。
【図13】 ショートフレームを収容するよう、単一バ
ッファから成るモードSフレームの略図である。
【図14】 フレームデスクリプタがリンクされたリス
ト内で第1バッファデスクリプタとして働き、受信側で
チャンキングをサポートする最適モードMフォーマット
を発生するモードMフォーマットのための付加的な最適
化の略図である。
【図15】 通常のモードM、最適化されたモードMお
よびモードSフォーマットをサポートするフレーム変化
および送信側のキューの略図である。
【図16】 フレームのスタティックチェイニングの略
図である。
【図17】 ダイナミックチェイニングを示す略図であ
る。
【図18】 送信側でのダイナミックフレームストリー
ミングを示す略図である。
【図19】 AAL0変化のための送信側での種々のフ
レームフォーマットの該ようを示す略図である。
【図20】 RXfreeと表示されたフリーバッファ
キューを備えたAAL5のための受信側での種々のフレ
ームフォーマットの略図である。
【図21】 図20に示されたシステムと同じタイプの
フレキシビリティを示し、チャンキングにも適合したA
AL5フォーマットのためのチャンキングに適用するた
めの受信側での変更の略図である。
【図22】 チャンキングを備えたAAL0フォーマッ
トのための受信側の略図である。
【符号の説明】 150 ネットワークインターフェースカード、151
ホストコンピュータ、152 PCIバス、153
PCIインターフェース、154 NICチップ、15
5 送信TXブロック、157 受信RXブロック、1
58 ユートピアインターフェースブロック、159
ローカルバスインターフェース、165ローカルメモ
リ、167 ローカルバス。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 595151497 201 BROADWAY, CAMBRI DGE, MASSACHUSETTS 02139, U.S.A. (72)発明者 ジョン・エイチ・ホワード アメリカ合衆国、マサチューセッツ州、ケ ンブリッジ、コウクスウェル・アベニュー 8 (72)発明者 ロス・ティー・キャスレイ アメリカ合衆国、カリフォルニア州、パ ロ・アルト、ロマ・ヴェルデ・アベニュー 994 (72)発明者 ダグラス・ジェイ・ハーン アメリカ合衆国、カリフォルニア州、エ ル・セリート、ベルモント・アベニュー 3242

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 ホストコンピュータをネットワークに接
    続するためのコネクションベースデータ伝送システムに
    おけるネットワークインターフェースであって、 I/Oバスインターフェースと、このI/Oバスインタ
    ーフェースに接続された受信ブロックおよび送信ブロッ
    クと、上記I/Oバスインターフェースを上記ホストコ
    ンピュータに接続するバスおよび上記送信ブロックと上
    記受信ブロックを上記ネットワークに接続するための手
    段を有するネットワークインターフェースカードを備
    え、 上記受信および送信ブロック内に、上記ホストコンピュ
    ータが有する送信入力TXinおよび送信完了TXdo
    neキューならびに受信フリーバッファRXfreeお
    よび受信完了RXdoneキューと、周辺部品相互接続
    インターフェースとによって利用されるマルチワードフ
    レームデスクリプタフォーマットを実現するための手段
    を設けたネットワークインターフェース。
  2. 【請求項2】 上記マルチワードフレームデスクリプタ
    フォーマットは、モードSフォーマットに適合するため
    のフィールドを含むことを特徴とする請求項1記載のネ
    ットワークインターフェース。
  3. 【請求項3】 上記マルチワードフレームデスクリプタ
    フォーマットは、モードMフォーマットをサポートする
    ことを特徴とする請求項1記載のネットワークインター
    フェース。
  4. 【請求項4】 上記マルチワードフレームデスクリプタ
    フォーマットは、最適化されたモードMフォーマットを
    サポートすることを特徴とする請求項1記載のネットワ
    ークインターフェース。
  5. 【請求項5】 上記マルチワードフレームデスクリプタ
    フォーマットは、チェイニングをサポートすることを特
    徴とする請求項1記載のネットワークインターフェー
    ス。
  6. 【請求項6】 上記マルチワードフレームデスクリプタ
    フォーマットは、ストリーミングをサポートすることを
    特徴とする請求項1記載のネットワークインターフェー
    ス。
  7. 【請求項7】 上記マルチワードフレームデスクリプタ
    フォーマットは、チャンキングをサポートすることを特
    徴とする請求項1記載のネットワークインターフェー
    ス。
  8. 【請求項8】 上記ネットワークインターフェースカー
    ドは、ローカルメモリを含み、上記複数のキューが上記
    ローカルメモリ内に位置し、上記マルチワードフレーム
    デスクリプタは、上記システムが入力キューまたは出力
    キューをアドレス指定するか、または上記キューが上記
    ホストメモリ内にあるかどうかとは無関係に、フレーム
    デスクリプタに対する同じフォーマットを可能にするよ
    う、デュアル現在ビットを有するフィールドを含むこと
    を特徴とする請求項1記載のネットワークインターフェ
    ース。
  9. 【請求項9】 上記インターフェースは、ATMインタ
    ーフェースであり、上記マルチワードフレームデスクリ
    プタフォーマットは、AAL0およびAAL5フォーマ
    ットの双方に適合するためのフィールドを有することを
    特徴とする請求項1記載のネットワークインターフェー
    ス。
  10. 【請求項10】 上記ネットワークインターフェースカ
    ードは、ブロッキングを防止するための手段を含むこと
    を特徴とする請求項1記載のネットワークインターフェ
    ース。
  11. 【請求項11】 上記受信フリーバッファRXfree
    キューは、フレームデスクリプタを有し、該フレームデ
    スクリプタは、バッファポインタおよび上記フレームデ
    スクリプタのフォーマットに類似するフォーマットを有
    する関連するバッファデスクリプタに対するポインタを
    含むことを特徴とする請求項1記載のネットワークイン
    ターフェース。
  12. 【請求項12】 上記受信フリーバッファRXfree
    キューのための上記フレームデスクリプタおよび上記バ
    ッファデスクリプタは、1つのデスクリプタとなるよう
    に組み合わされていることを特徴とする請求項11記載
    のネットワークインターフェース。
  13. 【請求項13】 1つ以上のバッファと、バッファのリ
    ンクされたリストと、単一バッファまたはバッファの上
    記リンクされたリストのヘッドを表示するためのマルチ
    ワードフレームデスクリプタを有し、バッファの上記リ
    ンクされたリスト内のバッファの各々が自己のバッファ
    デスクリプタを有する、ネットワークを通してホストコ
    ンピュータから情報のフレームを送信するためのネット
    ワークインターフェース。
  14. 【請求項14】 上記フレームおよびバッファデスクリ
    プタのフォーマットは、スタティックチェイニング、ダ
    イナミックチェイニングおよびストリーミング(これら
    はすべて同じデスクリプタフォーマットからのものであ
    る)を可能にするようになっている、請求項13記載の
    ネットワークインターフェース。
  15. 【請求項15】 上記ネットワークを通して送るべきフ
    レームを識別するための上記フレームデスクリプタを含
    む手段を備える請求項13記載のネットワークインター
    フェース。
  16. 【請求項16】 上記フレームを識別するための上記手
    段は、上記マルチワードフレームデスクリプタを含むリ
    ングキューを備え、上記フレームデスクリプタが上記バ
    ッファに対するポインタまたはバッファの上記リンクさ
    れたリストのヘッドに対するポインタを含む請求項15
    記載のネットワークインターフェース。
  17. 【請求項17】 上記フレームデスクリプタは、上記フ
    レームを記述する情報を含み、上記情報がバーチャルチ
    ャンネル番号、ステート情報およびモード表示のうちの
    少なくとも1つを含み、フレームデータに対するファッ
    トポインタを構成するマルチワードフレームデスクリプ
    タを提供する請求項16記載のネットワークインターフ
    ェース。
  18. 【請求項18】 上記フレームデスクリプタは、上記リ
    ンクされたリスト内の第1バッファに対するバッファデ
    スクリプタをポイントし、さらに、上記リンクされたリ
    スト内の次のバッファに対する次のバッファデスクリプ
    タをポイントする請求項17記載のネットワークインタ
    ーフェース。
  19. 【請求項19】 上記ホストコンピュータは、ドライバ
    およびオペレーティングシステムを有し、上記ネットワ
    ークインターフェースは、送信入力キーを有し、さらに
    フレームデスクリプタを上記送信入力キューに直接書き
    込み、上記ドライバまたはオペレーティングシステムに
    よる介入を防止するための手段を含む請求項13記載の
    ネットワークインターフェース。
JP8207369A 1995-10-30 1996-08-06 ネットワークインターフェース Expired - Fee Related JP2990345B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/549,940 US5751951A (en) 1995-10-30 1995-10-30 Network interface
US08/549940 1995-10-30

Publications (2)

Publication Number Publication Date
JPH09171492A true JPH09171492A (ja) 1997-06-30
JP2990345B2 JP2990345B2 (ja) 1999-12-13

Family

ID=24195022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8207369A Expired - Fee Related JP2990345B2 (ja) 1995-10-30 1996-08-06 ネットワークインターフェース

Country Status (2)

Country Link
US (1) US5751951A (ja)
JP (1) JP2990345B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530778A (ja) * 1998-11-24 2002-09-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 複数の仮想ダイレクトメモリアクセスチャネルをサポートするためのダイレクトメモリアクセスエンジン
JP2004523035A (ja) * 2001-01-31 2004-07-29 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JP2004523829A (ja) * 2001-01-31 2004-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JP2009532954A (ja) * 2006-03-31 2009-09-10 クゥアルコム・インコーポレイテッド 高速メディアアクセス制御に関するメモリ管理

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870627A (en) * 1995-12-20 1999-02-09 Cirrus Logic, Inc. System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5974466A (en) * 1995-12-28 1999-10-26 Hitachi, Ltd. ATM controller and ATM communication control device
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6078733A (en) * 1996-03-08 2000-06-20 Mitsubishi Electric Information Technolgy Center America, Inc. (Ita) Network interface having support for message processing and an interface to a message coprocessor
US5909546A (en) * 1996-03-08 1999-06-01 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Network interface having support for allowing remote operations with reply that bypass host computer interaction
US5951657A (en) * 1996-06-19 1999-09-14 Wisconsin Alumni Research Foundation Cacheable interface control registers for high speed data transfer
US5983332A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture
KR0169248B1 (ko) * 1996-07-24 1999-02-01 양승택 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법
US6032179A (en) * 1996-08-14 2000-02-29 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
US6128278A (en) * 1996-08-30 2000-10-03 Mmc Networks, Inc. Cell queuing in ATM switches
US5901147A (en) * 1996-08-30 1999-05-04 Mmc Networks, Inc. Apparatus and methods to change thresholds to control congestion in ATM switches
US6070219A (en) * 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US6064649A (en) * 1997-01-31 2000-05-16 Nec Usa, Inc. Network interface card for wireless asynchronous transfer mode networks
US6233244B1 (en) * 1997-02-14 2001-05-15 Advanced Micro Devices, Inc. Method and apparatus for reclaiming buffers
US6041059A (en) * 1997-04-25 2000-03-21 Mmc Networks, Inc. Time-wheel ATM cell scheduling
US6014367A (en) * 1997-04-25 2000-01-11 Mmc Networks, Inc Method for weighted fair queuing for ATM cell scheduling
US5930525A (en) * 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6154460A (en) * 1997-05-30 2000-11-28 Alcatel Usa Sourcing, L.P. Data packet transmission system and method
US6128715A (en) * 1997-05-30 2000-10-03 3Com Corporation Asynchronous transmit packet buffer
KR100251712B1 (ko) 1997-07-11 2000-04-15 윤종용 전전자교환기에서 엑스.25 프로토콜 통신을 위한 엑스.25망정합장치
DE19742378A1 (de) * 1997-09-25 1999-04-22 Siemens Ag Ringspeicher für eine TDMA-Datenübertragungsstation und entsprechende Datenübertragungsstation
US6118777A (en) * 1997-10-27 2000-09-12 Nortel Networks Corporation System and method for providing competing local exchange carriers unbundled access to subscriber access lines
US6157975A (en) * 1998-01-07 2000-12-05 National Semiconductor Corporation Apparatus and method for providing an interface to a compound Universal Serial Bus controller
US6122676A (en) * 1998-01-07 2000-09-19 National Semiconductor Corporation Apparatus and method for transmitting and receiving data into and out of a universal serial bus device
US6353866B1 (en) 1998-01-07 2002-03-05 National Semiconductor Corporation Apparatus and method for initializing a universal serial bus device
US6070208A (en) * 1998-01-07 2000-05-30 National Semiconductor Corporation Apparatus and method for implementing a versatile USB endpoint pipe
US6205501B1 (en) 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6016513A (en) * 1998-02-19 2000-01-18 3Com Corporation Method of preventing packet loss during transfers of data packets between a network interface card and an operating system of a computer
US6662234B2 (en) 1998-03-26 2003-12-09 National Semiconductor Corporation Transmitting data from a host computer in a reduced power state by an isolation block that disconnects the media access control layer from the physical layer
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6330584B1 (en) 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6307860B1 (en) 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
EP0964558A1 (en) 1998-06-08 1999-12-15 THOMSON multimedia Method for accessing internet applications from home network devices
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6657959B1 (en) 1998-06-27 2003-12-02 Intel Corporation Systems and methods for implementing ABR with guaranteed MCR
US6311212B1 (en) 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US6603768B1 (en) 1998-06-27 2003-08-05 Intel Corporation Multi-protocol conversion assistance method and system for a network accelerator
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6735773B1 (en) 1998-06-27 2004-05-11 Intel Corporation Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US6728249B2 (en) 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
GB9821791D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821792D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821762D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821800D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821768D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821789D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Jitter handling
GB9821763D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821766D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821770D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
US20060242335A1 (en) * 1998-11-03 2006-10-26 Poisner David I Race free data transfer algorithm using hardware based polling
US6449275B1 (en) * 1998-12-17 2002-09-10 Telefonaktiebolaget Lm Ericsson (Publ) Internal routing through multi-staged ATM node
US6396811B1 (en) * 1998-12-17 2002-05-28 Telefonaktiebolaget Lm Ericsson Segmented performance monitoring of multi-stage ATM node
US6493824B1 (en) 1999-02-19 2002-12-10 Compaq Information Technologies Group, L.P. Secure system for remotely waking a computer in a power-down state
US6345324B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Apparatus for transferring data using an interface element and a queued direct input-output device
US6401145B1 (en) * 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
US6504846B1 (en) * 1999-05-21 2003-01-07 Advanced Micro Devices, Inc. Method and apparatus for reclaiming buffers using a single buffer bit
US6675238B1 (en) * 1999-09-03 2004-01-06 Intel Corporation Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
US6711176B1 (en) * 1999-09-21 2004-03-23 Alcatel Canada Inc. Cell/frame ATM interworking
US7330815B1 (en) 1999-10-04 2008-02-12 Globalenglish Corporation Method and system for network-based speech recognition
JP3387464B2 (ja) * 1999-11-25 2003-03-17 日本電気株式会社 通信制御システムとその制御方法
US6724768B1 (en) * 1999-11-26 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for enforcing maximum transit delay in network multiplexers
US6845402B1 (en) * 1999-12-07 2005-01-18 Advanced Micro Devices, Inc. Descriptor burst read-ahead
US6629290B1 (en) * 1999-12-29 2003-09-30 Advanced Micro Devices, Inc. Method and apparatus for automatic transmit verification
US6792513B2 (en) * 1999-12-29 2004-09-14 The Johns Hopkins University System, method, and computer program product for high speed backplane messaging
US6956818B1 (en) * 2000-02-23 2005-10-18 Sun Microsystems, Inc. Method and apparatus for dynamic class-based packet scheduling
US7716358B2 (en) 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US8595372B2 (en) * 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
EP1342352A2 (en) 2000-12-15 2003-09-10 QUALCOMM Incorporated Generating and implementing a communication protocol and interface for high data rate signal transfer
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
CA2459941C (en) * 2001-09-06 2013-09-17 Qiuzhen Zou Generating and implementing a communication protocol and interface for high data rate signal transfer
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US6807599B2 (en) 2001-10-15 2004-10-19 Advanced Micro Devices, Inc. Computer system I/O node for connection serially in a chain to a host
US6820151B2 (en) 2001-10-15 2004-11-16 Advanced Micro Devices, Inc. Starvation avoidance mechanism for an I/O node of a computer system
US6839784B1 (en) 2001-10-15 2005-01-04 Advanced Micro Devices, Inc. Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel
US6681274B2 (en) 2001-10-15 2004-01-20 Advanced Micro Devices, Inc. Virtual channel buffer bypass for an I/O node of a computer system
US6728790B2 (en) 2001-10-15 2004-04-27 Advanced Micro Devices, Inc. Tagging and arbitration mechanism in an input/output node of a computer system
JP3998466B2 (ja) * 2001-12-13 2007-10-24 株式会社スクウェア・エニックス ネットワークゲームシステムおよびネットワークゲーム処理方法
US6668313B2 (en) * 2001-12-21 2003-12-23 Agere Systems, Inc. Memory system for increased bandwidth
US6862647B1 (en) * 2002-01-29 2005-03-01 Advanced Micro Devices, Inc. System and method for analyzing bus transactions
US6721816B1 (en) 2002-02-27 2004-04-13 Advanced Micro Devices, Inc. Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
US7899924B2 (en) 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US7327674B2 (en) * 2002-06-11 2008-02-05 Sun Microsystems, Inc. Prefetching techniques for network interfaces
US20040151170A1 (en) * 2003-01-31 2004-08-05 Manu Gulati Management of received data within host device using linked lists
ATE517500T1 (de) 2003-06-02 2011-08-15 Qualcomm Inc Erzeugung und umsetzung eines signalprotokolls und schnittstelle für höhere datenraten
AU2004300958A1 (en) 2003-08-13 2005-02-24 Qualcomm, Incorporated A signal interface for higher data rates
KR100951158B1 (ko) * 2003-09-10 2010-04-06 콸콤 인코포레이티드 고속 데이터 인터페이스
US7159051B2 (en) * 2003-09-23 2007-01-02 Intel Corporation Free packet buffer allocation
EP1680904A1 (en) 2003-10-15 2006-07-19 QUALCOMM Incorporated High data rate interface
TWI401601B (zh) 2003-10-29 2013-07-11 Qualcomm Inc 用於一行動顯示數位介面系統之方法及系統及電腦程式產品
CN101729205A (zh) * 2003-11-12 2010-06-09 高通股份有限公司 具有改进链路控制的高数据速率接口
RU2006122542A (ru) 2003-11-25 2008-01-10 Квэлкомм Инкорпорейтед (US) Интерфейс с высокой скоростью передачи данных с улучшенной синхронизацией линии связи
CA2731269C (en) 2003-12-08 2013-01-08 Qualcomm Incorporated High data rate interface with improved link synchronization
US8161197B2 (en) * 2003-12-19 2012-04-17 Broadcom Corporation Method and system for efficient buffer management for layer 2 (L2) through layer 5 (L5) network interface controller applications
US7076578B2 (en) * 2003-12-22 2006-07-11 Intel Corporation Race free data transfer algorithm using hardware based polling
US7433364B2 (en) * 2003-12-24 2008-10-07 Intel Corporation Method for optimizing queuing performance
EP2309695A1 (en) 2004-03-10 2011-04-13 Qualcomm Incorporated High data rate interface apparatus and method
WO2005091593A1 (en) 2004-03-17 2005-09-29 Qualcomm Incorporated High data rate interface apparatus and method
US7284075B2 (en) * 2004-03-23 2007-10-16 Intel Corporation Inbound packet placement in host memory
US8645566B2 (en) 2004-03-24 2014-02-04 Qualcomm Incorporated High data rate interface apparatus and method
KR100612846B1 (ko) * 2004-05-12 2006-08-14 삼성전자주식회사 오디오 재생기에 있어서 충격보호기능을 위한 오디오부호화 방법 및 장치
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
AU2005253592B2 (en) 2004-06-04 2009-02-05 Qualcomm Incorporated High data rate interface apparatus and method
US7656880B1 (en) * 2004-06-09 2010-02-02 Verizon Laboratories Inc. Prioritized segmentation and reassembly methods and systems
CN101010959B (zh) * 2004-07-23 2012-01-25 海滩无极限有限公司 传送数据流的方法和系统
US8353003B2 (en) * 2004-10-01 2013-01-08 Exelis Inc. System and method for controlling a flow of data a network interface controller to a host processor
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8692838B2 (en) * 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8667363B2 (en) 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8723705B2 (en) * 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US20060161691A1 (en) * 2004-11-24 2006-07-20 Behnam Katibian Methods and systems for synchronous execution of commands across a communication link
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
CN101069391A (zh) * 2004-12-03 2007-11-07 皇家飞利浦电子股份有限公司 流式存储控制器
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US7562366B2 (en) * 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
KR100735968B1 (ko) * 2005-02-07 2007-07-06 엘지전자 주식회사 네트워크 컨트롤 시스템에서의 다운로드 및 업로드 서비스 제공방법
US7483377B2 (en) * 2005-03-01 2009-01-27 Intel Corporation Method and apparatus to prioritize network traffic
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US7672299B2 (en) * 2006-06-30 2010-03-02 Sun Microsystems, Inc. Network interface card virtualization based on hardware resources and software rings
KR20090110291A (ko) * 2006-10-26 2009-10-21 인터랙틱 홀딩스 엘엘시 병렬 컴퓨팅시스템을 위한 네트워크 인터페이스 카드
CN100440186C (zh) * 2006-11-09 2008-12-03 威盛电子股份有限公司 高速传输系统和高速传输数据方法
KR101421054B1 (ko) * 2007-08-06 2014-07-18 삼성전자주식회사 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
US9584446B2 (en) * 2008-03-18 2017-02-28 Vmware, Inc. Memory buffer management method and system having multiple receive ring buffers
US7801046B2 (en) * 2008-04-28 2010-09-21 Oracle America, Inc. Method and system for bandwidth control on a network interface card
WO2010040043A1 (en) * 2008-10-03 2010-04-08 Hydro-Thermal Corporation Radial flow steam injection heater
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8099473B2 (en) 2008-12-31 2012-01-17 Apple Inc. Variant streams for real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
US8892691B2 (en) 2010-04-07 2014-11-18 Apple Inc. Real-time or near real-time streaming
US8462632B1 (en) * 2010-12-28 2013-06-11 Amazon Technologies, Inc. Network traffic control
US9071499B2 (en) * 2011-03-28 2015-06-30 Citrix Systems, Inc. Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
US20150281109A1 (en) * 2014-03-30 2015-10-01 Sachin Saxena System for en-queuing and de-queuing data packets in communication network
US11134031B2 (en) * 2016-03-11 2021-09-28 Purdue Research Foundation Computer remote indirect memory access system
US10748462B2 (en) * 2018-05-29 2020-08-18 Shenzhen China Star Optoelectronics Technology Co., Ltd. Hardware controller of NAND device, control method and liquid crystal display

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3251640B2 (ja) * 1992-06-18 2002-01-28 株式会社東芝 データ伝送方法とその装置
US5414840A (en) * 1992-06-25 1995-05-09 Digital Equipment Corporation Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US5588120A (en) * 1994-10-03 1996-12-24 Sanyo Electric Co., Ltd. Communication control system for transmitting, from one data processing device to another, data of different formats along with an identification of the format and its corresponding DMA controller
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530778A (ja) * 1998-11-24 2002-09-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 複数の仮想ダイレクトメモリアクセスチャネルをサポートするためのダイレクトメモリアクセスエンジン
JP2004523035A (ja) * 2001-01-31 2004-07-29 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JP2004523829A (ja) * 2001-01-31 2004-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JP2009532954A (ja) * 2006-03-31 2009-09-10 クゥアルコム・インコーポレイテッド 高速メディアアクセス制御に関するメモリ管理
US8139593B2 (en) 2006-03-31 2012-03-20 Qualcomm Incorporated Memory management for high speed media access control
US8594112B2 (en) 2006-03-31 2013-11-26 Qualcomm Incorporated Memory management for high speed media access control

Also Published As

Publication number Publication date
US5751951A (en) 1998-05-12
JP2990345B2 (ja) 1999-12-13

Similar Documents

Publication Publication Date Title
JP2990345B2 (ja) ネットワークインターフェース
US5664116A (en) Buffering of data for transmission in a computer communication system interface
US5625625A (en) Method and apparatus for partitioning data load and unload functions within an interface system for use with an asynchronous transfer mode system
JP4205181B2 (ja) Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置
JP2788577B2 (ja) フレーム変換方法及び装置
US5875352A (en) Method and apparatus for multiple channel direct memory access control
US5848293A (en) Method and apparatus for transmission and processing of virtual commands
US5778180A (en) Mechanism for reducing data copying overhead in protected memory operating systems
JP3819484B2 (ja) Mpegパケットをパケット化およびセグメント化する装置および方法
EP1131923B1 (en) Multi-protocol conversion assistance method and system for a network accelerator
US5828903A (en) System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
EP0792081B1 (en) A system and method for an efficient ATM adapter/device driver interface
US5420858A (en) Method and apparatus for communications from a non-ATM communication medium to an ATM communication medium
CA2159459C (en) Method and system for managing memory in a high speed network
JPH1074174A (ja) ネットワーク・インタフェース
US20080013535A1 (en) Data Switch and Switch Fabric
JPH0685842A (ja) 通信装置
JPH10224379A (ja) Atm再構成コントローラおよび再構成方法
JPH1055326A (ja) ネットワーク・インタフェースおよび受信メッセージの処理方法
EP0845918B1 (en) System for, and method of, ATM segmentation and re-assembly of cells providing streaming data
US6324164B1 (en) Asynchronous transfer mode (A.T.M.) protocol adapter for a high speed cell switching system
US6529945B1 (en) Data buffer management between two different systems
KR100236035B1 (ko) Atm 망접속기에서 서브 테이블을 이용하여 가상채널의 대역을 할당하는 방법
WO1995014269A1 (en) A high-performance host interface for networks carrying connectionless traffic
US6603768B1 (en) Multi-protocol conversion assistance method and system for a network accelerator

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees