JPH08297626A - ネットワーク・インタフェースおよびネットワーク・インタフェースにおけるパケット処理方法 - Google Patents

ネットワーク・インタフェースおよびネットワーク・インタフェースにおけるパケット処理方法

Info

Publication number
JPH08297626A
JPH08297626A JP8022600A JP2260096A JPH08297626A JP H08297626 A JPH08297626 A JP H08297626A JP 8022600 A JP8022600 A JP 8022600A JP 2260096 A JP2260096 A JP 2260096A JP H08297626 A JPH08297626 A JP H08297626A
Authority
JP
Japan
Prior art keywords
buffer
packet
list
network interface
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8022600A
Other languages
English (en)
Other versions
JP2983167B2 (ja
Inventor
B Osborn Randy
ランディ・ビー・オズボルン
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 JPH08297626A publication Critical patent/JPH08297626A/ja
Application granted granted Critical
Publication of JP2983167B2 publication Critical patent/JP2983167B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 広域的バッファ・キューは多重通信チャネル
相互間で共用されるのでパケットが割当てられるバッフ
ァを事前に知ることはできず、データが実際に転送され
る記憶位置をアプリケーションが制御できず、従ってあ
る種のアプリケーションデータ構造で占められたメモリ
・ページにパケット・データを直接記憶することができ
なかった。 【解決手段】 チャネル毎の外部空きバッファ・リスト
と、入力されるパケットの予測サイズに応じて外部リス
トの一部分をアクセスすることによって、各々の入力さ
れるパケット用にロードされた、外部の空きバッファ・
リストに対応するチャネル毎の内部の空きバッファ・リ
スト54とを利用するネットワーク・インタフェース3
1を構成し、アプリケーションの入力パケットの利用バ
ッファの制御を可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はコンピュータ・シ
ステム用のネットワーク・インタフェース、特に、ネッ
トワーク・インタフェースが別のコンピュータからパケ
ットで受信したデータを蓄積する空きバッファ・リスト
の管理に関する。
【0002】
【従来の技術】ネットワーク化されたコンピュータ・シ
ステムでは、コンピュータは一般的には別のコンピュー
タと通信するためにネットワーク・インタフェースを介
してネットワークに接続される。データ・パケットを受
信するために、コンピュータには空いたバッファ領域、
すなわちそこにデータを記憶できる空いた記憶位置が必
要である。一般にコンピュータは、設立された全ての通
信チャネル間で共用される、これまで広域的空きバッフ
ァ待ち行列(キュー)もしくはリストと呼ばれてきた単一
の空きバッファ待ち行列(キュー)を有している。
【0003】異なる通信チャネルを使用するアプリケー
ション間の非干渉性、すなわち保護を確実にするため
に、一人のユーザーの複数のアプリケーション、または
複数のユーザー相互間のアプリケーションのいずれの場
合でも、広域的空きバッファ待ち行列(キュー)は信託さ
れた構成要素(trusted entity)によって管理される。通
常は、この信託された構成要素はオペレーティング・シ
ステムであり、広域的空きバッファ待ち行列(キュー)は
オペレーティング・システム専用のメモリ・スペースか
ら割当てられる。
【0004】広域的空きバッファ待ち行列(キュー)を管
理するオペレーティング・システムの動作は次のとおり
である。最初に、パケットが到着すると、広域的空きバ
ッファ・リストからバッファが取り出され、それにパケ
ット・データが充填される。パケット・データに追加の
バッファが必要な場合は、次にバッファが広域的空きバ
ッファ待ち行列(キュー)から取り出され、データが充填
された後、そのパケット用に以前に充填されたバッファ
へと連結される。アプリケーションへのポーリング、ブ
ロッキングまたは割り込みを介してそのデータが利用で
きるという表示がなされた後、アプリケーションはオペ
レーティング・システムの呼び出しを行い、それによっ
てデータは2つの方式の一方を利用して適応業務スペー
スへと転送される。
【0005】第1の方式では、オペレーティング・シス
テムはアプリケーションによって指定されたアプリケー
ションスペースの記憶位置にデータを複写する。第2の
方式では、オペレーティング・システムはバッファを含
むメモリ・ページをアプリケーションスペースのアプリ
ケーションによって指定された記憶位置へとマッピング
する。バッファは一般に、このようなマッピング効果を
得るためにメモリ・ページのサイズと等しく、また、そ
れと位置合わせされて構成されている。アプリケーショ
ンが、オペレーティング・システムが完全な受信パケッ
トをアプリケーションに転送することを呼び出すように
受信ハンドラを設定することも可能である。この場合、
オペレーティング・システムはデータを転送するアドレ
スを搬送することも要求される。
【0006】これらの方式には双方ともオペレーティン
グ・システム呼び出しの高いコストが伴う。勿論、この
ような呼び出しの経費は大量のデータ転送の場合は容易
に償還できる。第1の方式ではデータを複写するコスト
が高いが、アプリケーションが望むアプリケーションス
ペースにデータを正確に配することができるという利点
を有している。第2の方式は直接的にはメモリ・マッピ
ング表を処理するコストと、おそらくは結果的に生ずる
わずかなメモリ転移ミスが伴うだけである。しかし、バ
ッファを含むメモリ・ページはバッファ以外のどのアプ
リケーションデータにも使用できず、それによって、ア
プリケーションが望む位置にデータを正確に配すること
が間接的に制約される。
【0007】
【発明が解決しようとする課題】以上のような従来のネ
ットワーク・インタフェースでは、広域的バッファ待ち
行列(キュー)は多重の通信チャネル相互間で共用される
ので、どのパケットがどのバッファに割当てられるかを
前もって知ることはできない。従って、データが実際に
転送される記憶位置をアプリケーションが制御する方法
はない。このように制御がなされないことは、ある種の
アプリケーションデータ構造で占められたメモリ・ペー
ジにパケット・データを直接記憶することができないこ
とを意味している。その結果、データを複写する必要が
ある。この方式は、アプリケーションが大量のデータ・
ブロックを処理するものと想定されている場合に、大量
のデータを配達することを指向するものである。
【0008】オペレーティング・システム呼び出しのコ
ストによって、双方の方式とも少量のメッセージ用の処
理時間の経費が比較的高く、待ち時間のメッセージを送
る要求の度合いが低いアプリケーションでは使用しにく
い。さらに、別のアプリケーション構造と混用されたメ
モリ・ページのデータをアプリケーションが必要とする
ことがあるため、双方の方式に、すなわち第1の方式で
は直接的に、また、第2の方式では間接的に複写のコス
トが加わる。従来のネットワーク・インタフェースでは
以上のような課題があった。
【0009】この発明は、チャネル毎の外部の空きバッ
ファ・リストと、入力されるパケットの予測サイズに応
じて外部リストの一部分をアクセスすることによって、
各々の入力されるパケット用にロードされた対応するチ
ャネル毎の内部の空きバッファ・リストと、を利用する
ネットワーク・インタフェースおよびネットワーク・イ
ンタフェースにおけるパケット処理方法を提供すること
によって、アプリケーションがどこにデータを蓄積する
かを制御できる等、従来技術に伴う上記のような問題点
を克服することを目的とする。
【0010】
【課題を解決するための手段】上記の目的に鑑み、この
発明の第1の発明は、データとチャネルを示す見出し情
報とを含むパケットを処理するネットワーク・インタフ
ェースにおいて、各チャネル毎に、該チャネル用のメモ
リ内の利用できる空きバッファ表示を記憶するためのバ
ッファ・リスト・メモリと、および、パケットを受信す
る入力を有するパケット・プロセッサであって、パケッ
トを受信すると動作して、パケットの見出し情報によっ
て表示されるチャネルについて、パケットの予測サイズ
に従って数が選択される多数の空きバッファ表示を検索
するために上記バッファ・リスト・メモリをアクセス
し、かつ検索した表示内容を内部メモリに記憶するため
の手段、パケットを受信すると動作して、検索されたバ
ッファ・リストから使用するバッファを特定するための
手段、パケット内のデータを特定されたバッファへと転
送する手段、とを含むパケット・プロセッサと、から構
成したことを特徴とするネットワーク・インタフェース
にある。
【0011】この発明の第2の発明は、各チャネル毎に
上記バッファ・リスト・メモリに記憶された空きバッフ
ァの表示が、複数の空きバッファの表示リストのリスト
として編成され、各リストの長さが入力されるパケット
の予測サイズに対応することを特徴とする請求項1に記
載のネットワーク・インタフェースにある。
【0012】この発明の第3の発明は、空きバッファの
表示の各リストが次のバッファ・リストの上記バッファ
・リスト・メモリ内の記憶位置の表示を含むことを特徴
とする請求項2に記載のネットワーク・インタフェース
にある。
【0013】この発明の第4の発明は、各チャネル毎の
空きバッファ表示と関連する、上記バッファ・リスト・
メモリ内の割り込みコードをさらに備え、上記パケット
・プロセッサが、割り込みコードに応答して動作し、さ
らにバッファ・リストが必要であることを表示する割り
込みコードを作成する手段を含んだことを特徴とする請
求項1に記載のネットワーク・インタフェースにある。
【0014】この発明の第5の発明は、上記パケット・
プロセッサをアクセスできるプロセッサが割り込みに応
答して空きバッファに関する表示をさらに作成すること
を特徴とする請求項4に記載のネットワーク・インタフ
ェースにある。
【0015】この発明の第6の発明は、上記プロセッサ
で実行されるアプリケーションプログラムが割り込みに
応答して空きリスト表示をさらに作成することを特徴と
する請求項5に記載のネットワーク・インタフェースに
ある。
【0016】この発明の第7の発明は、空きバッファを
表示する各リストが割り込みコードを含むことを特徴と
する請求項4に記載のネットワーク・インタフェースに
ある。
【0017】この発明の第8の発明は、オペレーティン
グ・システムが割り込みに応答して、空きバッファ表示
をさらに作成することを特徴とする請求項4に記載のネ
ットワーク・インタフェース。
【0018】この発明の第9の発明は、アプリケーショ
ンプログラムが割り込みに応答して空きバッファ表示を
さらに作成することを特徴とする請求項4に記載のネッ
トワーク・インタフェースにある。
【0019】この発明の第10の発明は、ネットワーク
・インタフェースを非同期転送モードのネットワークに
接続したことを特徴とする請求項1に記載のネットワー
ク・インタフェース。
【0020】この発明の第11の発明は、特定されたバ
ッファが使用され、データがパケット内に残っていると
動作して、検索されたリスト中の別のバッファを特定
し、パケットから別のバッファへのデータの転送を継続
するための手段をさらに上記パケット・プロセッサ内に
備えたことを特徴とする請求項1に記載のネットワーク
・インタフェースにある。
【0021】この発明の第12の発明は、パケットが検
索されると動作して、空きバッファ表示が外部バッファ
・リスト・メモリ内に記憶されていることを確認するた
めの手段をさらに上記パケット・プロセッサ内に備えた
ことを特徴とする請求項1に記載のネットワーク・イン
タフェースにある。
【0022】この発明の第13の発明は、上記確認手段
が、アプリケーションへの割り込みコードを発生し、空
きバッファ・リストを要求する手段を含むことを特徴と
する請求項12に記載のネットワーク・インタフェース
にある。
【0023】この発明の第14の発明は、空きバッファ
表示の一部分を検索する手段が、空きバッファ表示の次
の一部分の表示内容を検索する手段を含んだことを特徴
とする請求項1に記載のネットワーク・インタフェース
にある。
【0024】この発明の第15の発明は、空きバッファ
表示の次の一部分の表示がない場合は、次の一部分の表
示を検索する上記手段が、パケット・プロセッサにアク
セスできるプロセッサに、空きバッファのより多くの表
示が作成され、バッファ・リスト・メモリに記憶される
ように要求する割り込みコードを作成することを特徴と
する請求項14に記載のネットワーク・インタフェース
にある。
【0025】この発明の第16の発明は、上記パケット
・プロセッサにアクセスできるプロセッサが、アプリケ
ーションが必要とするデータ蓄積位置に応じて空きバッ
ファ表示リストに特定のバッファ記憶位置を事前装填す
ることによって、プロセッサがデータ蓄積位置を制御す
ることを特徴とする請求項1に記載のネットワーク・イ
ンタフェースにある。
【0026】この発明の第17の発明は、データとチャ
ネルを示す見出し情報とを含むパケットを処理するネッ
トワーク・インタフェースにおいて、チャネル毎に受信
されるパケットからの情報を記憶する空きバッファ表示
を記憶するための、各チャネル毎の内部バッファ・リス
ト・メモリを含むパケット・プロセッサと、各チャネル
ごとに使用される空きバッファ表示のリストを含む外部
バッファ・リスト・メモリと、上記外部バッファ・リス
ト・メモリ内の空きバッファ表示のリストの一部分をア
クセスし、かつパケット・プロセッサの内部バッファ・
リストへと表示を複写するための、上記パケット・プロ
セッサ内の手段と、を備え、上記部分が入力されるパケ
ットの予測サイズに応じてアクセスされることを特徴と
するネットワーク・インタフェースにある。
【0027】この発明の第18の発明は、データとチャ
ネルを示す見出し情報とを含むパケットを処理するネッ
トワーク・インタフェースであって、各チャネル毎に、
該チャネル用のメモリ内の利用できる空きバッファ表示
を記憶するためのバッファ・リスト・メモリであり、こ
のバッファ・リスト・メモリ内に記憶された各チャネル
毎の空きバッファの表示が複数の空きバッファ表示リス
トのリストとして編成され、各リストの長さが入力され
るパケットの予測サイズに対応しているものと、およ
び、パケットを受信する入力を有するパケット・プロセ
ッサであり、パケットを受信すると動作して、パケット
が表示するチャネル用に空きバッファの表示リストの一
つを検索するために上記バッファ・リスト・メモリをア
クセスし、かつ検索した表示を内部メモリに記憶する手
段、パケットを受信すると動作して、検索されたバッフ
ァ・リストから使用するバッファを特定するための手
段、パケット内のデータを特定されたバッファへと転送
する手段、を含むものと、から構成したことを特徴とす
るネットワーク・インタフェースにある。
【0028】この発明の第19の発明は、データとチャ
ネルを示す見出し情報とを含むパケットを処理するネッ
トワーク・インタフェースであって、各チャネル毎に、
該チャネル用のメモリ内の利用できる空きバッファ表示
と、各チャネル毎の空きバッファ表示と関連する、バッ
ファ・リスト・メモリ内の割り込みコードとを記憶する
ためのバッファ・リスト・メモリと、および、パケット
を受信する入力を有するパケット・プロセッサであり、
パケットを受信すると動作して、パケットが表示するチ
ャネル用に空きバッファの、パケットの予測サイズに従
って数が選択される多数の表示リストを検索するために
上記バッファ・リスト・メモリをアクセスし、かつ検索
した表示を内部メモリに記憶する手段、パケットを受信
すると動作して、より多くのバッファ・リストが必要で
あることを表示する割り込みを発生する手段、パケット
を受信すると動作して、検索したバッファ・リストから
使用されるバッファを特定する手段、パケット内のデー
タを特定されたバッファへと転送する手段、を含むパケ
ット・プロセッサと、から構成したことを特徴とするネ
ットワーク・インタフェースにある。
【0029】この発明の第20の発明は、データとチャ
ネルを示す見出し情報とを含むパケットをネットワーク
・インタフェースによって処理する方法であって、第1
メモリに各通信チャネル毎の複数の空きバッファ表示を
記憶するステップと、パケットを受信するステップと、
見出し情報からパケットの通信チャネルを決定するステ
ップと、パケットの予測サイズに応じて決定されたチャ
ネル用にメモリから空きバッファ情報の一部分を検索
し、その部分を第2メモリに記憶するステップと、第2
メモリ内の検索された表示から使用されるバッファを選
択するステップと、パケットからのデータを第2メモリ
内に記憶するステップと、からなることを特徴とするネ
ットワーク・インタフェースにおけるパケット処理方法
にある。
【0030】この発明では上述のように、チャネル毎の
外部の空きバッファ・リストと、入力されるパケットの
予測サイズに応じて外部リストの一部分をアクセスする
ことによって、各々の入力されるパケット用にロードさ
れた対応するチャネル毎の内部の空きバッファ・リスト
と、を利用するネットワーク・インタフェースを提供す
ることによって、従来技術に伴う問題点を克服する。
【0031】“チャネル毎の空きバッファ・リスト”と
いう用語は特定の設立された通信チャネルにバッファが
割当てられることを意味し、それによって、他のチャネ
ルをバッファに書き込むことができないので、アプリケ
ーションスペースで各バッファを有効に利用できる。こ
の構成によって通信の待ち時間が短縮される。さらに、
チャネル毎の空きバッファ・リスト内のバッファを適宜
に制御することによって、アプリケーションスペースの
指定位置にデータを配することができる。その上、付加
的に唯一必要なことは、チャネル毎の空きバッファ・キ
ュー(待ち行列)に空きバッファを追加するためのオペレ
ーティング・システムの呼び出しだけである。ネットワ
ーク・インタフェースは広域的空きバッファ・キュー
(待ち行列)とチャネル毎の空きバッファ・キュー(待ち
行列)との双方を支援できるので、アプリケーションは
その通信要求に基づいて方式を選択することができる。
【0032】一実施の形態におけるネットワーク・イン
タフェースは、入力されるパケットを処理し、パケット
内のセルからのデータを指定チャネル用の空きバッファ
へと転送するパケット・プロセッサを含んでいる。パケ
ット・プロセッサは各通信チャソル用の内部の空きバッ
ファ・リストを記憶するメモリを有している。内部の空
きバッファ・リストは、各通信チャネル用のより大量の
空きバッファ・リストを記憶している外部の空きバッフ
ァ・リスト・メモリからロードされる。所定のチャネル
用のパケットが到着する毎に、パケット・プロセッサは
そのチャネル用の外部の空きバッファ・リストの一部分
を検索し、その部分を上記チャネル用の内部の空きバッ
ファ・リストへとロードする。
【0033】パケット・データが到着すると、パケット
・データは内部リスト内のバッファに蓄積される。パケ
ットを処理した後にバッファが残っている場合は、それ
らは廃棄される。内部の空きバッファ・リストを使用し
尽くした後でパケット・データが残っている場合は、追
加の空きバッファを要求する割り込みが行われる。割り
込みはオペレーティング・システム、または別のアプリ
ケーションプログラムへと向けられる。外部の空きバッ
ファ・リストは空きバッファ・リストの結合リストのよ
うな二次元構造として編成できる。チャネル用の外部の
空きバッファ・リストのアプリケーションプログラムを
チャネル毎に制御することによって、アプリケーション
プログラムはどこにデータを蓄積するかを制御すること
ができる。
【0034】例えば、アプリケーションプログラムはメ
モリの任意のサイズの連続部分を外部バッファ・リスト
内の空きバッファとして指定することができる。外部バ
ッファ・リストが空になる前に割り込みが強制的に行わ
れるように、割り込みコードを外部バッファ・リストに
も与えることができる。この発明を利用することによっ
て、ネットワーク・インタフェースはホスト・オペレー
ティング・システムとの対話をしなくても、パケット・
データをアプリケーションレベルのメモリに容易に蓄積
することができる。
【0035】この発明はあらゆる種類のパケットを利用
した通信用のネットワーク・インタフェースに該当する
ものである。パケットを利用した通信の特定の種類の一
つは非同期転送モード(ATM)通信、すなわち接続を利
用した通信規範であり、これは各通信チャネル毎に明示
接続が確立されるということを意味している。ATM通
信システムでは、基本ユニットは固定サイズのセルであ
り、サイズは53バイト、データ・ペイロードは48バ
イトである。パケットは送信側でセルへと細分化され、
ネットワークを通してセルとして伝送され、次に受信側
でパケットへと再構成される。
【0036】
【発明の実施の形態】以下、この発明の実施の形態を図
面を参照して以下に詳細に説明する。
【0037】ここで図5を参照すると、代表的な非同期
転送モード(ATM)通信システムはネットワーク・イン
タフェース30を有し、パケット32はこれを介して受
信されるている。パケット32は一般に複数個のセル3
4からなっている。一般に、ネットワーク・インタフェ
ース30はホスト・プロセッサ(図示せず)に接続され、
このホスト・プロセッサは、バッファ41を含む関連す
るホスト・メモリ40を有するオペレーティング・シス
テム38の制御のもとで動作する。このホスト・プロセ
ッサを使用するアプリケーション46および48のよう
な別のアプリケーションは、関連する独自のアプリケー
ションレベル・メモリ42を有している。ネットワーク
・インタフェース30は制御線44を介してオペレーテ
ィング・システム38と通信し、データ線45を経てデ
ータを転送する。
【0038】前述したように、一般に図5に示したよう
なシステムでは、ネットワーク・インタフェース30は
パケット32を受信すると制御線44を介してホスト・
プロセッサおよびオペレーティング・システム38に割
込む。ネットワーク・インタフェース30は各セルから
のデータをホスト・メモリ40内の空きバッファへと複
写する。その後、データはセル34内の見出し情報によ
って表示されるアプリケーションのアプリケーションレ
ベル・メモリ42内の記憶位置へと複写され、またはデ
ータの記憶位置がマップされる。
【0039】この従来のシステムは、図6により詳細に
図示してある。すなわち、オペレーティング・システム
38は空きバッファ・リスト43と、使用中バッファ・
リスト49と、通信毎の使用中バッファ・テーブル47
とを保持している。空きバッファ・リスト43はバッフ
ァ・プールすなわちホスト・メモリ40内の利用できる
空きバッファの待ち行列(キュー)である。パケットが受
信されると、線44aを介して次の空きバッファへのポ
インタが検索(読み出し)され、データがバッファに書き
込まれる。そのバッファへのポインタは線44bを介し
て使用中バッファ・リスト49へと書き込まれる。通信
毎の使用中バッファ・テーブル47は、特定のアプリケ
ーションに利用される全ての使用中バッファを表示す
る。アプリケーションが読み取りを行う場合、そのアプ
リケーションは通信毎のバッファ・テーブル47中の次
の使用中バッファへのポインタを検索し、バッファ内の
データをアプリケーションレベル・メモリ42内に複
写、もしくはマップする。
【0040】これに対してこの発明では、空きバッファ
を表示するリストが各チャネル毎に備えられている。図
1は、この発明の一実施の形態によるネットワーク・イ
ンタフェースに従ったシステムの構成を示す図である。
パケットが受信されると、リストからパケットが選択さ
れ、データはオペレーティング・システム・レベルのバ
ッファに複写されずにそのバッファ内に蓄積される。す
なわち、各々のアプリケーション46、48はそれぞれ
独自の空きバッファ・リスト60、62を有しており、
これらはアプリケーションレベル・メモリ42、オペレ
ーティング・システム38、またはネットワーク・イン
タフェース31内に記憶しておくことができる。
【0041】ネットワーク・インタフェース31は各パ
ケット毎に、受信されたパケットからのデータが蓄積さ
れる次のバッファを特定する。このようにして、データ
はオペレーティング・システム38のバッファには複写
されない。さらに、アプリケーションはデータが蓄積さ
れる空きバッファを制御することができ、アプリケーシ
ョンがバッファ内のデータ編成をより厳密に制御するこ
とが可能になる。例えば、バッファはメモリ・ページの
サイズに対応する必要がなく、所望のとおりに小さいサ
イズでも、大きいサイズでもよい。加えて、アプリケー
ションは一連の直列バッファを特定することができる。
【0042】図2は図1のネットワーク・インタフェー
スをより詳細に示している。このネットワーク・インタ
フェース31はパケット・プロセッサ50とバッファ・
リスト52とを含んでいる。パケット・プロセッサ50
は各々の通信毎に、この通信に割当てられた全ての空き
バッファ記憶位置をリストした空きバッファ・テーブル
54の表を含んでいる。パケット・プロセッサ50が単
一の集積回路である場合、このテーブルは内部のテーブ
ルである。ある通信用に入力されるメッセージは、オペ
レーティング・システム・メモリへと送られるのではな
く、アプリケーションレベル・メモリ42内(ホスト・
メモリで構成される場合もある)のその通信用の空きバ
ッファ・リスト内に見い出された記憶位置に直接複写さ
れる。空きバッファが発見されない場合は、割り込みが
行われ、アプリケーションまたはオペレーティング・シ
ステムが利用できる空きバッファの新たなリストを作成
し、それらをバッファ・リスト52へと追加する。
【0043】パケット・プロセッサ50がパケット32
を受信すると、ネットワーク・インタフェース31は、
空きバッファ表示が内部でロードされることを保証す
る。ネットワーク・インタフェースは割り込みコードを
作成することもできる。空きバッファ表示が未だロード
されていない場合は、空きバッファ表示は外部リストか
らロードされる。外部リストが空である場合は、ネット
ワーク・インタフェースはサービス用の割り込みコード
を発生する。パケットの処理中は、パケットの終端が受
信されるまで、またはロードされたリスト内のバッファ
が使い果たされるまで、バッファにはパケット・データ
が充填される。後者の場合は、追加のバッファがネット
ワーク・インタフェースにロードされ、そのどれもが使
用できない場合は割り込みが行われる。ネットワーク・
インタフェースがパケットの処理を終了すると、おそら
くは割り込みを利用してアプリケーションにその旨の信
号が送られることが一般的である。
【0044】バッファ・リストを作成し、パケット・プ
ロセッサ50によってバッファを利用するには多くの異
なる方法がある。
【0045】バッファ・リストを利用する第1の方法に
は、パケットを受信した時点で、バッファ・リスト全体
を内部の空きバッファ・テーブル54内に複写すること
が含まれている。ある通信についてパケットの処理が終
了すると、バッファ・リストの未使用部分は廃棄され
る。この解決方法の問題点の一つは、大量の空きバッフ
ァ・リストが廃棄されることがあり、新たなリストを作
成しなければならず、ローカルプロセッサ、またはホス
ト・プロセッサによる処理時間が必要になることであ
る。
【0046】第2の方法もバッファ・リスト全体を内部
の空きバッファ・テーブル54内に複写する。しかし、
パケットの処理が完了すると、バッファ・リストの未使
用部分は廃棄されず、内部リスト内に保存される。この
方法の問題点の一つは、自己洗浄作用がないことであ
る。すなわち、ローカルまたはホスト・プロセッサは以
前のパケットから残されたバッファの取り出し処理を行
わなければならない。このような取り出し処理は、以前
のパケットで使用されたバッファとは異なる特定のバッ
ファ内に次のパケットを記憶しておくべき場合に必要と
なる。入力されるパケットのサイズは一般に事前には判
明していないので、この第2の方法ではパケットの浄化
は常に必要となる。このような浄化処理はクリティカル
パス(限界経路方式)であり、性能を損ねるばかりではな
く、パケット・プロセッサをこのような浄化を取り扱う
ように設計しなければならない。
【0047】上述の解決方法ではいずれも、一連のパケ
ットを連続的な集合としてアプリケーションレベルのメ
モリに送る能力を与えるのが困難である。すなわち、第
1のパケットの後で、第2のパケットを連続するバッフ
ァ記憶位置に記憶しなければならない場合、上述の2つ
の解決方法ではそのような能力を与えることができな
い。
【0048】入力されるパケットのサイズは事前には判
明していないものの、これは限定できる場合が多く、空
きバッファのリスト内のバッファ容量は上述の限定に合
わせて設定することができる。従って、主要な問題は上
記の限定と、実際のパケット・サイズとの差に起因する
残されたバッファに関連する問題である。場合によって
は、限定を判断することが困難な場合もある。この場
合、ある範囲の限界を設定することができ、新たな空き
バッファ・リストをロードしようとしてその限界を超え
た場合、次の空きバッファ・リストを使用でき、また
は、そのリストが不適切であるか、または存在しない場
合は、ローカルまたはホスト・プロセッサが追加の空き
バッファを指定するように割り込みを発生することがで
きる。このような洞察が第3の方法の基礎になってい
る。
【0049】次に図3を参照して、バッファ・リストを
より厳密に制御できる第3の方法を説明する。この方法
では、外部バッファ・リストの一部分だけが内部空きバ
ッファ・テーブルへと読み込まれる。読み込まれるバッ
ファの数は入力されるパケットの予測サイズに応じて選
択される。このような能力を付与するために、この発明
の一実施の形態では、バッファ・リストは二次元構造に
されており、複数の結合されたリストの結合リストであ
るとみなすことができる。すなわち、空きバッファ・リ
ストが作成され、複数のリストへと分解されるのであ
る。各リストの長さは読み込まれるバッファの数に対応
する。例えば、空きバッファの各々の表示は1つの予約
された領域かまたはいずれかの次の空きバッファへのポ
インタとして使用される別の領域および、いずれかの次
の空きバッファ・リストへとリンクするためのさらに別
の領域を含み得る。
【0050】パケット・プロセッサ50はパケット32
を受信すると各通信毎のいずれかの次のバッファ・リス
トの記憶位置を記憶する。記憶されたポインタが存在し
ない場合は、空きバッファのリストが作成されるように
割り込みが行われる。その後、バッファ・リストは一時
レジスタ内に記憶された次のバッファ・リストへのポイ
ンタとともに検索される。あるいは、次のポインタは第
1のポインタからの定常偏差でもよく、これは単に計算
すればよい。次のバッファ・リストは最初のバッファ・
リストが無くなったときだけ検索される。最初のバッフ
ァ・リストはメモリ内に保持しておくことができ、後続
のいずれかのパケットを受信した時点で廃棄し、または
パケットの処理が完了したときに廃棄すればよい。
【0051】この方式の利点の一つは、ローカルまたは
ホスト・プロセッサがバッファ・リストの管理の複雑さ
をほとんど処理できることにある。すなわち、負担の殆
どはソフトウェアにある。しかし、二次元構造のバッフ
ァ・リストを使用することにより、上述の第1と第2の
方法のいずれをも実行するフレキシビリティが得られ
る。外部空きバッファに新たな空きバッファ・リストを
追加することには潜在的な矛盾が生ずる。すなわち、パ
ケット・プロセッサはローカル・プロセッサがリストを
修正すると同時にリストを修正することがあり得る。
【0052】この矛盾を解決するため、チャネル毎の保
持および保持解消(hold and unhold) 動作を利用でき
る。リストを修正する前に、プロセッサはそのチャネル
を“保持”し、次に修正が終了した後、チャネルの“保
持を解消”する。チャネルが“保持”状態にあるときに
到着するデータの損失を防止するため、適当な緩衝処理
を行わなければならない。あるいは、プロセッサが先
ず、利用できる空きバッファ・リストの数をチェック
し、複数の空きバッファ・リストのリストが一つ、また
は2つの空きバッファ・リストしか含んでいない場合に
は“保持”および“保持解消”動作を行うことができ
る。上記の数以上の空きバッファ・リストを利用できる
場合は、プロセッサは、外部リストがパケット・プロセ
ッサによって使用し尽くされる前に、新たな空きバッフ
ァ・リストを外部リストの端に追加することができる。
【0053】次に新たな空きバッファ・リストを作成す
るための割り込みの制御を図4を参照して説明する。一
般に、空きバッファ・リストをそれ以上利用できない場
合に割り込み動作を行うことができる。加えて、最後の
空きバッファ・リストでは、複数の空きバッファ・リス
トのリスト内の次の空きバッファ・リストへのポインタ
は常に存在しない。従って、パケット・プロセッサは次
の空きバッファ・リスト・ポインタをチェックし、その
ポインタが存在しない場合だけ割り込みコードを作成す
る。
【0054】さらに補足的な方法は、空きバッファ・リ
ストのリンクされたリスト表現の各々のバッファ・リス
トにコードを追加することである。例えば、複数のバッ
ファ・リストのリンクされたリスト内の要素を表す図4
に示すデータ語70は、参照番号72で示すように、次
の空きバッファの記憶位置を記憶する記憶位置へのポイ
ンタを含んでいる。さらに、74で示した次のバッファ
・リストを記憶するアドレス位置にポインタが与えられ
る。そこで割り込みコード76が現在のバッファ・リス
トのために付与される。この割り込みコードは、別の空
きバッファ・リストを作成するための割り込みを発生す
るか否かを判定するパケット・プロセッサによって評価
される。
【0055】このようにして、ネットワーク・インタフ
ェースが入力されるパケットを処理している間に、ロー
カルまたはホスト・プロセッサはより多くの空きバッフ
ァ・リストを発生することができる。各空きバッファ・
リストの見出しに割り込みコードを適宜に設定すること
によって、特定の複数の空きバッファ・リストのロード
中に、または最後の空きバッファ・リストのロード中
に、全ての新たな空きバッファ・リストをロードするた
めに割り込みを発生することができる。この割り込みコ
ードによって、アプリケーションはそれまでにいくつの
空きバッファおよび空きバッファ・リストが使用され、
空きバッファと空きバッファ・リストがいくつ残ってい
るかを判定することができる。この割り込みはさらに、
特定の空きバッファの集合がロードされた時に処理を実
行することができる。最後に、データ語70は未使用領
域78を含んでいてもよい。
【0056】以上のようにチャネル毎の空きバッファ・
リストを使用したこの発明によるネットワーク・インタ
フェースは、入力されるパケットを処理し、パケット・
データをパケットが属するチャネル用に指定されたバッ
ファ内に記憶するパケット・プロセッサを含んでいる。
このパケット・プロセッサは各々の通信チャネル用に内
部の空きバッファ・リストを記憶するメモリを有してい
る。内部空きバッファ・リストは、各通信チャネル用に
より大量の空きバッファ・リストを含んでいる外部の空
きバッファ・リスト・メモリからロードされる。所定の
チャネル用のパケットが到着する毎に、パケット・プロ
セッサはそのチャネル用の外部空きバッファ・リストの
一部分を検索し、その部分を当該チャネル用の内部空き
バッファ・リストへとロードする。ロードされた部分
は、入力されるパケットの予測サイズを処理するのに充
分であるとみなされる多数の空きバッファである。
【0057】パケットの処理がなされると、データは内
部リストのバッファ内に蓄積される。パケットが処理さ
れた後で未使用の内部バッファはいずれも戻された使用
中バッファのリストの終端に付加され、自己洗浄特性を
有し、それによってアプリケーションは、入力されるパ
ケットがどのバッファを利用するかについてのある種の
制御を行うことが可能になる。内部の空きバッファ・リ
ストが使用し尽くされた後にパケット・データが残って
いる場合は、パケット・プロセッサは外部空きバッファ
・リストの別の部分を検索し、パケットの処理動作を継
続する。外部空きバッファ・リストにそれ以上バッファ
が残っていない場合は、追加の空きバッファを要求する
ように割り込み(コード)が発生される。この割り込みは
ネットワーク・インタフェース、またはホスト・プロセ
ッサと連結されているローカルプロセッサに向けられ
る。外部空きバッファ・リストの一部だけを読み取るこ
とを促進するため、リストは複数の空きバッファ・リス
トの結合リストのような二次元構造として編成すること
ができる。
【0058】チャネル用の外部の空きバッファ・リスト
のアプリケーションプログラムをチャネル毎に制御する
ことによって、アプリケーションプログラムはどこにデ
ータを蓄積するかを制御することができる。例えば、ア
プリケーションプログラムはメモリの任意のサイズの連
続部分を外部バッファ・リスト内の空きバッファとして
指定することができる。外部バッファ・リストが空にな
る前に割り込みが強制的に行われるように、割り込みコ
ードを外部バッファ・リストにも与えることができる。
【0059】これまでこの発明の実施の形態を説明して
きたが、これまでの記述は単に説明目的のためであり、
限定されるものではなく、例示したものであるに過ぎな
いことが専門家には明白であろう。専門家には多くの修
正と別の実施の形態の実現が可能である。例えば、外部
バッファ・リストは一つのリストでもよく、また、パケ
ット・プロセッサは外部バッファ・リストから読みださ
れた多数のバッファを表示するプログラム可能なレジス
タを含んでいてもよい。これらの、およびその他の修正
は添付の特許請求の範囲に含まれるものである。
【図面の簡単な説明】
【図1】 この発明の一実施の形態によるネットワーク
・インタフェースに従ったシステムの構成を示す図であ
る。
【図2】 図2のネットワーク・インタフェースをより
詳細に説明するための図である。
【図3】 チャネル毎の外部空きバッファ・リストの好
ましい構造を示す図である。
【図4】 割り込みコードを含む連結されたリスト・デ
ータ構造の一例を示す図である。
【図5】 広域的空きバッファ・リストを使用した多重
通信(結線)用の入力されるパケットを処理するための従
来のネットワーク・インタフェース・システムを示す図
である。
【図6】 図5のより詳細な図である。
【符号の説明】
30,31 ネットワーク・インタフェース、32 パ
ケット、34 セル、36 ホスト・プロセッサ、38
オペレーティング・システム、40 ホスト・メモ
リ、41 バッファ、42 アプリケーションレベル・
メモリ、43 空きバッファ・リスト、44 制御線、
45 データ線、46,48 アプリケーション、4
7,49 使用中バッファ・テーブル、50 パケット
・プロセッサ、52 バッファ・リスト、54 空きバ
ッファ・テーブル、60,62 空きバッファ・リス
ト。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 595151497 201 BROADWAY, CAMBRI DGE, MASSACHUSETTS 02139, U.S.A.

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 データとチャネルを示す見出し情報とを
    含むパケットを処理するネットワーク・インタフェース
    において、 各チャネル毎に、該チャネル用のメモリ内の利用できる
    空きバッファ表示を記憶するためのバッファ・リスト・
    メモリと、および、 パケットを受信する入力を有するパケット・プロセッサ
    であって、 パケットを受信すると動作して、パケットの見出し情報
    によって表示されるチャネルについて、パケットの予測
    サイズに従って数が選択される多数の空きバッファ表示
    を検索するためにバッファ・リスト・メモリをアクセス
    し、かつ検索した表示内容を内部メモリに記憶するため
    の手段、 パケットを受信すると動作して、検索されたバッファ・
    リストから使用するバッファを特定するための手段、 パケット内のデータを特定されたバッファへと転送する
    手段、 とを含むパケット・プロセッサと、から構成したことを
    特徴とするネットワーク・インタフェース。
  2. 【請求項2】 各チャネル毎に上記バッファ・リスト・
    メモリに記憶された空きバッファの表示が、複数の空き
    バッファの表示リストのリストとして編成され、各リス
    トの長さが入力されるパケットの予測サイズに対応する
    ことを特徴とする請求項1に記載のネットワーク・イン
    タフェース。
  3. 【請求項3】 空きバッファの表示の各リストが次のバ
    ッファ・リストの上記バッファ・リスト・メモリ内の記
    憶位置の表示を含むことを特徴とする請求項2に記載の
    ネットワーク・インタフェース。
  4. 【請求項4】 各チャネル毎の空きバッファ表示と関連
    する、上記バッファ・リスト・メモリ内の割り込みコー
    ドをさらに備え、 上記パケット・プロセッサが、割り込みコードに応答し
    て動作し、さらにバッファ・リストが必要であることを
    表示する割り込みコードを作成する手段を含んだことを
    特徴とする請求項1に記載のネットワーク・インタフェ
    ース。
  5. 【請求項5】 上記パケット・プロセッサをアクセスで
    きるプロセッサが割り込みに応答して空きバッファに関
    する表示をさらに作成することを特徴とする請求項4に
    記載のネットワーク・インタフェース。
  6. 【請求項6】 上記プロセッサで実行されるアプリケー
    ションプログラムが割り込みに応答して空きリスト表示
    をさらに作成することを特徴とする請求項5に記載のネ
    ットワーク・インタフェース。
  7. 【請求項7】 空きバッファを表示する各リストが割り
    込みコードを含むことを特徴とする請求項4に記載のネ
    ットワーク・インタフェース。
  8. 【請求項8】 オペレーティング・システムが割り込み
    に応答して、空きバッファ表示をさらに作成することを
    特徴とする請求項4に記載のネットワーク・インタフェ
    ース。
  9. 【請求項9】 アプリケーションプログラムが割り込み
    に応答して空きバッファ表示をさらに作成することを特
    徴とする請求項4に記載のネットワーク・インタフェー
    ス。
  10. 【請求項10】 ネットワーク・インタフェースを非同
    期転送モードのネットワークに接続したことを特徴とす
    る請求項1に記載のネットワーク・インタフェース。
  11. 【請求項11】 特定されたバッファが使用され、デー
    タがパケット内に残っていると動作して、検索されたリ
    スト中の別のバッファを特定し、パケットから別のバッ
    ファへのデータの転送を継続するための手段をさらに上
    記パケット・プロセッサ内に備えたことを特徴とする請
    求項1に記載のネットワーク・インタフェース。
  12. 【請求項12】 パケットが検索されると動作して、空
    きバッファ表示が外部バッファ・リスト・メモリ内に記
    憶されていることを確認するための手段をさらに上記パ
    ケット・プロセッサ内に備えたことを特徴とする請求項
    1に記載のネットワーク・インタフェース。
  13. 【請求項13】 上記確認手段が、アプリケーションへ
    の割り込みコードを発生し、空きバッファ・リストを要
    求する手段を含むことを特徴とする請求項12に記載の
    ネットワーク・インタフェース。
  14. 【請求項14】 空きバッファ表示の一部分を検索する
    手段が、空きバッファ表示の次の一部分の表示内容を検
    索する手段を含んだことを特徴とする請求項1に記載の
    ネットワーク・インタフェース。
  15. 【請求項15】 空きバッファ表示の次の一部分の表示
    がない場合は、次の一部分の表示を検索する上記手段
    が、パケット・プロセッサにアクセスできるプロセッサ
    に、空きバッファのより多くの表示が作成され、バッフ
    ァ・リスト・メモリに記憶されるように要求する割り込
    みコードを作成することを特徴とする請求項14に記載
    のネットワーク・インタフェース。
  16. 【請求項16】 上記パケット・プロセッサにアクセス
    できるプロセッサが、アプリケーションが必要とするデ
    ータ蓄積位置に応じて空きバッファ表示リストに特定の
    バッファ記憶位置を事前装填することによって、プロセ
    ッサがデータ蓄積位置を制御することを特徴とする請求
    項1に記載のネットワーク・インタフェース。
  17. 【請求項17】 データとチャネルを示す見出し情報と
    を含むパケットを処理するネットワーク・インタフェー
    スにおいて、 チャネル毎に受信されるパケットからの情報を記憶する
    空きバッファ表示を記憶するための、各チャネル毎の内
    部バッファ・リスト・メモリを含むパケット・プロセッ
    サと、 各チャネルごとに使用される空きバッファ表示のリスト
    を含む外部バッファ・リスト・メモリと、 上記外部バッファ・リスト・メモリ内の空きバッファ表
    示のリストの一部分をアクセスし、かつパケット・プロ
    セッサの内部バッファ・リストへと表示を複写するため
    の、上記パケット・プロセッサ内の手段と、 を備え、上記部分が入力されるパケットの予測サイズに
    応じてアクセスされることを特徴とするネットワーク・
    インタフェース。
  18. 【請求項18】 データとチャネルを示す見出し情報と
    を含むパケットを処理するネットワーク・インタフェー
    スであって、 各チャネル毎に、該チャネル用のメモリ内の利用できる
    空きバッファ表示を記憶するためのバッファ・リスト・
    メモリであり、このバッファ・リスト・メモリ内に記憶
    された各チャネル毎の空きバッファの表示が複数の空き
    バッファ表示リストのリストとして編成され、各リスト
    の長さが入力されるパケットの予測サイズに対応してい
    るものと、およびパケットを受信する入力を有するパケ
    ット・プロセッサであり、 パケットを受信すると動作して、パケットが表示するチ
    ャネル用に空きバッファの表示リストの一つを検索する
    ために上記バッファ・リスト・メモリをアクセスし、か
    つ検索した表示を内部メモリに記憶する手段、 パケットを受信すると動作して、検索されたバッファ・
    リストから使用するバッファを特定するための手段、 パケット内のデータを特定されたバッファへと転送する
    手段、を含むものと、 から構成したことを特徴とするネットワーク・インタフ
    ェース。
  19. 【請求項19】 データとチャネルを示す見出し情報と
    を含むパケットを処理するネットワーク・インタフェー
    スであって、 各チャネル毎に、該チャネル用のメモリ内の利用できる
    空きバッファ表示と、各チャネル毎の空きバッファ表示
    と関連する、バッファ・リスト・メモリ内の割り込みコ
    ードとを記憶するためのバッファ・リスト・メモリと、
    およびパケットを受信する入力を有するパケット・プロ
    セッサであり、 パケットを受信すると動作して、パケットが表示するチ
    ャネル用に空きバッファの、パケットの予測サイズに従
    って数が選択される多数の表示リストを検索するために
    上記バッファ・リスト・メモリをアクセスし、かつ検索
    した表示を内部メモリに記憶する手段、 パケットを受信すると動作して、より多くのバッファ・
    リストが必要であることを表示する割り込みを発生する
    手段、 パケットを受信すると動作して、検索したバッファ・リ
    ストから使用されるバッファを特定する手段、 パケット内のデータを特定されたバッファへと転送する
    手段、 とを含むパケット・プロセッサと、 から構成したことを特徴とするネットワーク・インタフ
    ェース。
  20. 【請求項20】 データとチャネルを示す見出し情報と
    を含むパケットをネットワーク・インタフェースによっ
    て処理する方法であって、 第1メモリに各通信チャネル毎の複数の空きバッファ表
    示を記憶するステップと、 パケットを受信するステップと、 見出し情報からパケットの通信チャネルを決定するステ
    ップと、 パケットの予測サイズに応じて決定されたチャネル用に
    メモリから空きバッファ情報の一部分を検索し、その部
    分を第2メモリに記憶するステップと、 第2メモリ内の検索された表示から使用されるバッファ
    を選択するステップと、 パケットからのデータを第2メモリ内に記憶するステッ
    プと、 からなることを特徴とするネットワーク・インタフェー
    スにおけるパケット処理方法。
JP8022600A 1995-04-14 1996-02-08 ネットワーク・インタフェース装置およびネットワーク・インタフェースにおけるパケット処理方法 Expired - Lifetime JP2983167B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/422,344 US5682553A (en) 1995-04-14 1995-04-14 Host computer and network interface using a two-dimensional per-application list of application level free buffers
US08/422344 1995-04-14

Publications (2)

Publication Number Publication Date
JPH08297626A true JPH08297626A (ja) 1996-11-12
JP2983167B2 JP2983167B2 (ja) 1999-11-29

Family

ID=23674488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8022600A Expired - Lifetime JP2983167B2 (ja) 1995-04-14 1996-02-08 ネットワーク・インタフェース装置およびネットワーク・インタフェースにおけるパケット処理方法

Country Status (2)

Country Link
US (1) US5682553A (ja)
JP (1) JP2983167B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1193981A3 (en) * 1997-09-05 2002-05-15 Matsushita Electric Industrial Co., Ltd. Decoding method and recording medium carrying recorded decoding program
JP2006513493A (ja) * 2003-01-09 2006-04-20 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション フリーバッファプールを使用することによるメモリの管理
JP2017117448A (ja) * 2015-12-26 2017-06-29 インテル コーポレイション アプリケーションレベルネットワークキューイング

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974466A (en) * 1995-12-28 1999-10-26 Hitachi, Ltd. ATM controller and ATM communication control device
US5838994A (en) * 1996-01-11 1998-11-17 Cisco Technology, Inc. Method and apparatus for the dynamic allocation of buffers in a digital communications network
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
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
US5987496A (en) * 1996-12-03 1999-11-16 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Real-time channel-based reflective memory
US6094712A (en) * 1996-12-04 2000-07-25 Giganet, Inc. Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data
US5961606A (en) * 1997-06-30 1999-10-05 Sun Microsystems, Inc. System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US6088745A (en) * 1998-03-17 2000-07-11 Xylan Corporation Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space
US6321276B1 (en) 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6594701B1 (en) * 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6516361B2 (en) * 1998-09-17 2003-02-04 Sony Corporation Method of and apparatus for capturing and processing continuous media-based data streams transmitted over an IEEE 1394 serial bus
US6978312B2 (en) * 1998-12-18 2005-12-20 Microsoft Corporation Adaptive flow control protocol
US6647413B1 (en) * 1999-05-28 2003-11-11 Extreme Networks Method and apparatus for measuring performance in packet-switched networks
US6609161B1 (en) 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
US6789134B1 (en) * 2000-06-01 2004-09-07 Adaptec, Inc. Dequeuing from a host adapter two-dimensional queue
US20030177258A1 (en) * 2002-01-15 2003-09-18 Chip Engines Reconfigurable control processor for multi-protocol resilient packet ring processor
US7209440B1 (en) * 2002-05-07 2007-04-24 Marvell International Ltd. Method and apparatus for preventing blocking in a quality of service switch
US7110415B1 (en) 2002-05-17 2006-09-19 Marvell International Ltd. Apparatus and method for dynamically limiting output queue size in a quality of service network
US20040103086A1 (en) * 2002-11-26 2004-05-27 Bapiraju Vinnakota Data structure traversal instructions for packet processing
US7688736B1 (en) 2003-05-05 2010-03-30 Marvell International Ltd Network switch with quality of service flow control
US7844758B1 (en) * 2003-06-18 2010-11-30 Advanced Micro Devices, Inc. Dynamic resource allocation scheme for efficient use of a queue
US7346716B2 (en) * 2003-11-25 2008-03-18 Intel Corporation Tracking progress of data streamer
US8032675B2 (en) * 2005-12-28 2011-10-04 Intel Corporation Dynamic memory buffer allocation method and system
US7908412B2 (en) * 2006-05-10 2011-03-15 Microsoft Corporation Buffer passing mechanisms
US7694041B2 (en) * 2006-05-19 2010-04-06 Arabella Software Ltd. Method for managing buffers pool and a system using the method
US8364863B2 (en) * 2008-07-11 2013-01-29 Intel Corporation Method and apparatus for universal serial bus (USB) command queuing
US9311044B2 (en) * 2013-12-04 2016-04-12 Oracle International Corporation System and method for supporting efficient buffer usage with a single external memory interface
US9104637B2 (en) 2013-12-04 2015-08-11 Oracle International Corporation System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
CN109298869A (zh) * 2018-08-23 2019-02-01 武汉斗鱼网络科技有限公司 一种目标渠道包的生成方法及相关装置
FR3089374B1 (fr) * 2018-11-29 2024-04-12 Silkan Rt Gestion des données pour le stockage de trames de données dans la mémoire d’un système de transmission de données
DE102020213741A1 (de) * 2020-11-02 2022-05-05 Robert Bosch Gesellschaft mit beschränkter Haftung Datenstruktur für einen Pufferspeicher in einem Multiproduzenten-Multikonsumenten-System
CN113254364B (zh) * 2021-05-24 2022-07-19 山东创恒科技发展有限公司 一种嵌入式系统用信息存储装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
DE69130392T2 (de) * 1991-07-10 1999-06-02 International Business Machines Corp., Armonk, N.Y. Hochgeschwindigkeitspufferverwaltung
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1193981A3 (en) * 1997-09-05 2002-05-15 Matsushita Electric Industrial Co., Ltd. Decoding method and recording medium carrying recorded decoding program
JP2006513493A (ja) * 2003-01-09 2006-04-20 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション フリーバッファプールを使用することによるメモリの管理
JP2017117448A (ja) * 2015-12-26 2017-06-29 インテル コーポレイション アプリケーションレベルネットワークキューイング

Also Published As

Publication number Publication date
US5682553A (en) 1997-10-28
JP2983167B2 (ja) 1999-11-29

Similar Documents

Publication Publication Date Title
JPH08297626A (ja) ネットワーク・インタフェースおよびネットワーク・インタフェースにおけるパケット処理方法
US6032179A (en) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
US8516163B2 (en) Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
US7158964B2 (en) Queue management
USRE40467E1 (en) Method and apparatus for managing the flow of data within a switching device
EP0365731B1 (en) Method and apparatus for transferring messages between source and destination users through a shared memory
US5502833A (en) System and method for management of a predictive split cache for supporting FIFO queues
US5825767A (en) ATM switch with input and output ports
US5826041A (en) Method and system for buffering network packets that are transferred between a V86 mode network driver and a protected mode computer program
EP1741023B1 (en) Communicating protected data within locking messages
EP0603994B1 (en) Method and apparatus for transferring and processing data
JPH0685842A (ja) 通信装置
JP2931490B2 (ja) 並列処理方式
JPH0812634B2 (ja) 記憶システム及びそのアクセス管理方法
EP0374338B1 (en) Shared intelligent memory for the interconnection of distributed micro processors
US20060047874A1 (en) Resource management apparatus
US20030056073A1 (en) Queue management method and system for a shared memory switch
US6163541A (en) Method for selecting virtual channels based on address priority in an asynchronous transfer mode device
US5944788A (en) Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules
US5999969A (en) Interrupt handling system for message transfers in network having mixed hardware and software emulated modules
US5983266A (en) Control method for message communication in network supporting software emulated modules and hardware implemented modules
US6347348B1 (en) Buffer management system having an output control configured to retrieve data in response to a retrieval request from a requesting one of a plurality of destinations
US7116659B2 (en) Data transmission memory
JPH0833869B2 (ja) データ処理装置
JPH11239151A (ja) ラウンドロビン制御装置および方法

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: 20080924

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080924

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: 20080924

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: 20090924

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110924

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120924

Year of fee payment: 13