JPH09321828A - 保護メモリ・オペレーティング・システムにおけるデータ・コピー・オーバーヘッドを削減する機構 - Google Patents
保護メモリ・オペレーティング・システムにおけるデータ・コピー・オーバーヘッドを削減する機構Info
- Publication number
- JPH09321828A JPH09321828A JP8308660A JP30866096A JPH09321828A JP H09321828 A JPH09321828 A JP H09321828A JP 8308660 A JP8308660 A JP 8308660A JP 30866096 A JP30866096 A JP 30866096A JP H09321828 A JPH09321828 A JP H09321828A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- data
- packet
- target
- ring
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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/128—Program 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5614—User Network Interface
- H04L2012/5616—Terminal equipment, e.g. codecs, synch.
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (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)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
関連づけられた、データ・コピー・オーバーヘッドを削
減する方法および装置。 【解決手段】 ATM(非同期転送方式)ネットワーク
において、本発明のNIC(ネットワーク・インタフェ
ース回路)は、着信パケットのヘッダ内の情報を多重分
離し、本発明のターゲットバッファ・リングの概念を使
用してパケットをその最終宛先に直接ルーティングす
る。したがって、パケットをカーネル内の記述子リング
に入っているバッファにDMAするのではなく、宛先プ
ロセスのバッファ・リングに直接ルーティングすること
ができる。
Description
データを転送する方法および装置に関する。具体的に
は、本発明は保護メモリ・オペレーティング・システム
におけるデータ・コピー・オーバーヘッドを削減する方
法および装置に係わる。
に、命令の実行に使用される処理装置内およびその他の
記憶装置内のアドレス可能記憶空間のすべてである。コ
ンピュータ・システムが、通常、所定のアドレス範囲内
にある任意のバイト・サイズのいくつかのデーター・バ
ッファであるホスト・メモリを備えることは周知であ
る。これらのデータ・バッファは、所定のアドレス範囲
内で一意にアドレスされて、後続の処理または伝送のた
めにデータに選択的にアクセスできるようにする。デー
タ・バッファは、メモリ内のバッファ・リングの一部と
して環状に配列することができる。
は、どのようなプログラムもコンピュータ・システム内
のデータ・メモリにアクセスできないようにする。アプ
リケーション・プログラムは、アクセス可能なメモリを
かなり制限される。ネットワークからパケットが着信す
ると、通常、パケットは宛先プログラムがアクセスでき
ないバッファに入れられる。宛先プログラムがその受信
パケットを使用できるようにするためには、そのプログ
ラムがアクセスすることができるメモリにコピーしなけ
ればならない。このデータのコピーは、コンピュータ・
ネットワークで多大なオーバーヘッドとなる。したがっ
て、宛先プロセスがただちに使用することができないカ
−ネル・バッファに受信パケットが入れられることは、
従来技術の方法および装置の大きな欠点である。
システムのための従来のデータ・アクセス手法の方法お
よび装置を示す。カーネル103は、バッファK1、K
2、およびK3 102を指す記述子を備えた受信
(「RX」)記述子リング100を有する。ユーザ・プ
ロセスA105は、バッファA1およびA2 106を
有する。ユーザ・プロセスB107は、バッファB1お
よびB2 108を有する。パケットが着信すると、ル
ータは一般に、バッファのフリー・プールの中からバッ
ファ102の1つを、カーネル103の記述子リング1
00上にあるその記述子を使用して割り当て、パケット
をバッファにDMA動作で転送する。カーネル103が
バッファ102にパケットを入れられると、カーネルは
パケットのルーティング情報からパケットの宛先を判断
する。たとえば、カーネルは、パケットがユーザ・プロ
セスA105に宛てられたものであることを判断する。
ユーザ・プロセスA105は、固有のバッファ106を
持っている。カーネル103は、バッファ102内のパ
ケットからデータをユーザ・プロセスA105のバッフ
ァ106にバイト単位でコピーする。
形態がたどる一般的ステップを示す。図1に図示されて
いる各要素を参照しながら説明する。ステップ201
で、送られてきたパケットが着信する。ステップ202
で、ルータがカーネル内の記述子リング上の記述子を使
ってバッファK1を把む。次にステップ203で、ルー
タがパケットをバッファK1にDMA動作で転送する。
ステップ204で、カーネルはパケット・ヘッダをデコ
ードし、パケットがユーザ・プロセスAに宛てられたも
のであると判断する。ステップ205で、カーネルはパ
ケット・データをバッファK1からA1にコピーする。
したがって着信パケット・データはその最終宛先に送信
される。
の発信元と宛先の間で一意である仮想回線識別子を有す
る。ルータは一般に、パケット単位の処理中にこの仮想
回線を調べる。従来技術の方法および装置の重大な欠点
は、すべてのパケットが1つの宛先アドレスにアドレス
指定され、したがってカーネル内の同じバッファ・リン
グにDMA転送されてしまうことである。
リ・オペレーティング・システムに関連づけられた、デ
ータ・コピー・オーバーヘッドを削減する方法および装
置を有することが望ましい。このような方法および装置
によって、システム全体のパフォーマンスが向上するこ
とになる。
ィング・システムに関連づけられた、データ・コピー・
オーバーヘッドを削減する方法および装置を開示する。
ATM(非同期転送方式)ネットワークにおいて、本発
明のNIC(ネットワーク・インタフェース回路)は、
本発明のターゲット・バッファ・リングの概念を使用し
て、着信パケットのヘッダ内の情報を多重分離し、パケ
ットを直接その最終宛先にルーティングする。したがっ
て、パケットをカーネルにある記述子リング内の中間バ
ッファに送信する代わりに、宛先プロセスのバッファリ
ングに直接ルーティングすることができる。
セルに分割される。各セルは任意のサイズ(たとえば4
8バイトのデータ)を有し、VCI(仮想チャネル識別
子)と呼ばれる組込みヘッダを有する。VCIは典型的
には、パケットの宛先を示すルーティング情報を持つ。
パケットが到着すると、ルータは、保護記述子のプー
ル、たとえば記述子リングからそれに対応する記述子を
使用してバッファをピックアップする。ルータは次にD
MAによってバッファにデータを書込み、パケットが到
着したことをカーネルに通知する。カーネルはパケット
のヘッダを調べ、パケットが到着したことを最終宛先に
通知する。
それらのVCIをデコードすることができるため、ルー
タは所与のパケットのヘッダ内の情報を多重分離するこ
ともできる。パケット交換において、VCIはネットワ
ークが備える機能であり、ユーザには実際の接続のよう
に見える。パケット交換とは、パケットの伝送中にのみ
チャネルが占有されるように、アドレス・パケットを使
用してデータのルーティングと転送とを行う処理であ
る。VCIによって、物理伝送機構を多くのユーザが同
時に共用することができるようになる。一般には、伝送
が完了するとそのチャネルは他のパケットの転送に使用
することができるようになる。
パケットのみが入れられる専用バッファ・プールを持つ
ことができる。バッファ・プールが専用であるため、プ
ログラムがそのプログラム固有のプールにアクセスでき
るようにすることができる。専用プールに受信されるパ
ケットにはデータ・コピーは不要になる。したがって、
パケットをDMAによってその最終宛先に直接送信する
ことができる。さらに、保護バッファ記述子によって、
データの最終宛先専用の専用バッファによるデータの破
壊が防止される。パケットが着信したとき、専用バッフ
ァが使用可能でない場合、ルータは、プログラムには使
用することができない共通バッファ・プールにフォール
バックし、したがってコピーしなければならない。資源
がないためにすべての接続が専用バッファ・プールを使
用できるわけではないため、共通バッファ・プールから
専用バッファ・プールへの接続変更を利用することがで
きる。この変更は、接続に対して動作中に作用する。変
更は次に着信するパケットに対して効力がある。
保護メモリ・オペレーティング・システムに関連づけら
れた、データ・コピー・オーバーヘッドを削減し、全体
的なシステム・パフォーマンスを向上させる。
システムに関連づけられた、データ・コピー・オーバー
ヘッドを削減するデータ転送のための方法および装置で
ある。ATM(非同期転送方式)ネットワークにおい
て、本発明のNIC(ネットワーク・インタフェース回
路)は、本発明のターゲット・バッファ・リングの概念
を使用して着信パケットのヘッダ内の情報を多重分離
し、パケットをその最終宛先に直接ルーティングする。
トを最終宛先に送るより効率的なルーティングを選択す
ることができる。アドレス指定はいくつかの異なるレベ
ルで行われる。具体的には、ATM層ではすべてのセル
・ヘッダ内にVCIがある。ルータはVCIを使用し
て、DMAによって読取りまたは書込みを行うべきター
ゲット・バッファを判断する。パケット内部には、別の
アドレスの組を持つ別のヘッダの組があり、このアドレ
スの組は典型的にはインターネット・プロトコル(I
P)アドレスである。ルータはIPアドレスをまったく
調べない。ホストに送られてくるVCIは複数あるた
め、複数のターゲット・バッファ・リングが存在するこ
とができ、複数のユーザ・プロセスがそのプロセスのデ
ータをコピーせずに受信することができる。
リング上にある記述子に対応するバッファにDMAによ
って送るのではなく、ソフトウェアによってパケットを
異なるバッファ・リングにルーティングすることができ
る。ソフトウェアを使用して、カーネル内の特定のバッ
ファ・リングが、すでに最終宛先にあるバッファを指す
ように事前に指定することができる。したがって、パケ
ットが着信すると、ルータはパケットの最終宛先にすで
にあるバッファを指す記述子を選択し、DMAによって
データをそのバッファに書き込み、パケットが着信した
ことをカーネルに通知する。カーネルはパケットのヘッ
ダを調べ、パケットが最終宛先にあることを最終宛先に
通知する。したがって、本発明の方法および装置は、保
護メモリ・オペレーティング・システムに関連づけられ
た、データ・コピー・オーバーヘッドを削減し、全体的
なシステム・パフォーマンスを向上させる。
ーバーヘッド削減の方法および装置を使用するATMネ
ットワーク・インタフェース回路(NIC)を組み込ん
だコンピュータ・システム・ネットワークの例を示す。
コンピュータ・システム・ネットワーク10は、1つま
たは複数のATMネットワーク・インタフェース回路
(NIC)12を組み込んだホスト・コンピュータ・シ
ステム(図示せず)を含む。NIC12は、構内ATM
交換機14を介して公衆ATM交換機16に結合され、
ネットワーク10に結合されたホスト・コンピュータ・
システム間でのデータの非同期転送を可能にする。別法
として、NIC12を公衆ATM交換機16に直接結合
することもできる。図3に示すように、コンピュータ・
システム・ネットワーク10には、ATMネットワーク
をサポーティング・フレームワークとして使用するイー
サネットまたはトークン・リング・ネットワーク17な
どの他のネットワークを接続するゲートウェイとして機
能するローカル・エリア・ネットワーク(LAN)エミ
ュレーション15の使用を組み込んだコンピュータ・シ
ステムを含めることもできる。
キテクチャを示すシステム略図である。ATM NIC
12は、ATMプロトコルに従って動作するシステム
・バス38を介してネットワーク媒体40に結合された
ホスト・コンピュータ・システムとインタフェースす
る。
・インタフェース20と、汎用入出力(「GIO」)イ
ンタフェース24と、システムおよびATM層コア2
2、ローカル・スレーブ・インタフェース26、送信
(TX)FIFO28の配列と、受信(RX)FIFO
30の配列と、媒体インタフェース32と、外部バッフ
ァ・メモリ・インタフェース34と、クロック合成回路
36とを備える。
各要素20〜36が組み合わさって協調し、複数の帯域
グループ内の動的割り振り多重チャネルを介してネット
ワーク内のホスト・コンピュータと他のコンピュータと
の間の非同期データ転送を行う。ネットワーク・インタ
フェース回路12内の各要素がまとまって、ホスト・コ
ンピュータ・システムのシステム・バス38に結合され
た多重チャネル・インテリジェント直接メモリ・アクセ
ス(DMA)コントローラとして機能する。好ましい実
施態様では、複数の送信チャネルと受信チャネルが、全
二重155/622Mbpsの物理リンクを使用する仮
想接続として使用される。システム・バス38を介し、
外部バッファ・メモリ・インタフェース34を介して外
部バッファ・メモリ42に至る様々なチャネルに加入し
ている複数のデータ・パケットが、システムおよびAT
M層コア22によって送信セルにセグメント化され、媒
体インタフェース32を介して媒体40に送信される。
易にする再組立て論理回路も備える。コア22と媒体イ
ンタフェース32の間に結合されたTX FIFO 2
8およびRX FIFO 30を使用して、送信パケッ
トと受信パケットの送信セルおよび受信セルのペイロー
ドをそれぞれステージングする。媒体インタフェース3
2は、クロック合成回路36から供給されるクロック信
号によって駆動されて、ネットワークの媒体40との間
でセルを送受信する。媒体と、したがって媒体インタフ
ェース32は、ATMフォーラムのアドホック仕様で規
定されているUniversal Test and
Operations Physical Inter
face for ATM(「UTOPIA」)標準に
準拠している。UTOPIA仕様に準拠するために、ク
ロック合成回路36は20MHzまたは40MHzのク
ロック信号を供給して、媒体インタフェースが155M
bps用の20MHzのバイト・ストリームまたは62
2Mbpsのデータ・ストリーム用の40MHzの16
ビット・ストリームをサポートすることができるように
する。
2は、TX FIFO28からそれぞれ4バイトのセル
・ヘッダと48バイトのペイロードを有する52バイト
のデータ・セルを受信する。媒体インタフェース32
は、各セルにセル・ヘッダの5番目のバイトとしてチェ
ックサムを挿入してから、媒体40に53バイトのデー
タ・セルを供給する。逆に、媒体インタフェース32が
媒体40からセルを受信するときは、各セルの5番目の
バイトにあるチェックサムを調べて、チェックサムが正
しいかどうかを判断する。正しい場合は、チェックサム
を表すバイトがセルから除去され、セルはRX FIF
O 30に転送される。正しくない場合は、セル全体が
廃棄される。
12は、非同期転送のセル記述詳細を、ホスト・コンピ
ュータ・システム上で稼働しているアプリケーションか
ら遮蔽する。この実施態様では、ホスト・コンピュータ
・システム上で稼働しているアプリケーションがパケッ
ト・インタフェースによる循環送受信リングを使用して
データの送受信を管理するものとする。しかし、本発明
は、他のデータ構造を使用してデータの送受信を管理す
る、ホスト・コンピュータ・システム上で稼働するアプ
リケーションを使用して実施することもできる。
び汎用入出力インタフェース24は、ホスト・コンピュ
ータ・システムを媒体40への転送の詳細からシステム
を遮蔽する。さらに、コア22はシステム・バス38お
よびホスト・データ構造の詳細から遮蔽される。現在の
ところ好ましい実施態様では、システムバスは電気電子
学会(「IEEE」)標準1496仕様の規定に準拠し
たSバスである。システム・バス・インタフェース20
は、この例ではSバスである、システム・バスの仕様に
準拠して通信するように構成されている。
様々なホスト・コンピュータ・システム・バスに準拠す
るように構成することができるものと企図される。シス
テム・バス・インタフェース20は、汎用入出力インタ
フェース24によって規定されるプロトコルに準拠して
データの送受信を行うように構成することもできる。汎
用入出力インタフェース24は、コア22がホスト・コ
ンピュータと通信するために使用する単一のインタフェ
ースとなる。したがって、コア22は、様々なホスト・
コンピュータ・システムおよびバスとインタフェースす
るNIC12の様々な実施態様ごとに変化しない。
るホスト・メモリ50がシステム・バス38に結合され
ている。ホスト・メモリ50は、NIC12を介して媒
体40からパケットを受信することができる。パケット
がホスト・メモリ50に入れられると、ソフトウェアは
受信パケットを確認し、記述子リング52からの読取り
を行う。ソフトウェアはDMA状態を入手すると、パケ
ットをバッファ56に入れ始め、DMA状態を完了リン
グ54に戻す。
トのデータ・セルと5バイトのヘッダを有する着信パケ
ットが着信すると、ルータはヘッダを処理し、セル内の
VCI(仮想回線)フィールドを調べる。情報がターゲ
ットであるか非ターゲットであるかを含む適切なヘッダ
およびVCI情報が、NIC12内のDMA状態機構6
4に書き込まれる。システム・コア22内のDMA状態
機構64は、VCI情報を廃棄すべきか否か、またはそ
のVCIと共に着信した他のセルに付加すべきか否かを
判断する。次に、ロード機構62がパケットの48バイ
トのデータを、外部バッファ・メモリ42内の受信
(「RX」)バッファ・メモリ44に入れる。パケット
をホスト・メモリ50内の適切な記憶場所にルーティン
グするのに十分なデータがDMA状態機構21内に入る
と、RXアンロード機構60が外部バッファ・メモリ4
2内のRXバッファ・メモリ44からセルをアンロード
する。次に、ルータは、パケットがターゲット・バッフ
ァに宛てられたものである場合は、DMAによってホス
ト・メモリ50内の最終宛先に直接データを書き込む。
そうでない場合は、パケットはホスト・メモリ50内の
非ターゲット・バッファにDMAされる。したがって、
本発明は、データをDMAによってその最終宛先に直接
書き込むことができる機能を備えることによって、全体
的システム・パフォーマンスを向上させる。このプロセ
スの詳細は、図6および添付図面で説明する。図5を参
照する以下の説明では、ホスト・メモリ50のRXター
ゲット・データ記述子リングおよびRX非ターゲット・
データ記述子リングを介して使用可能なターゲット・バ
ッファおよび非ターゲット・バッファについて詳細に説
明する。
モリの好ましいデータ構造の概要である。ホスト・メモ
リは、受信(「RX」)フリー・ターゲット(ユーザ・
データ)データ記述子リング580a〜580mと、R
Xフリー非ターゲット(カーネル)記述子リング581
と、RX完了リング590とを有する。媒体40から着
信し、NIC 12を介して処理されたパケットは、本
明細書で説明するターゲット記述子リングまたは非ター
ゲット記述子リング内の記述子に対応するバッファにロ
ードされる。
フリー・ターゲット(ユーザ・データ)データ記述子リ
ング580a〜580mおよびRXフリー非ターゲット
(カーネル)記述子リング581は、2つの異なるタイ
プのRXフリー・バッファ記述子リングである。各VC
(仮想回線)は、この2つのタイプの一方に加入してい
る。RXフリー非ターゲット(カーネル)記述子リング
581は、複数のVCが使用することができる共通フリ
ー・バッファ・プールである。RXフリー・ターゲット
(ユーザ・データ)データ記述子リング580a〜58
0mは、各VC専用フリー・バッファ・プールを提供す
る。共通フリー・バッファ・プールに加入しているVC
を非ターゲットVCと呼び、VC専用フリー・バッファ
・プールをターゲットVCと呼ぶ。本発明の、保護メモ
リ・オペレーティング・システムのデータ・コピー・オ
ーバーヘッドの削減の一部は、RXフリー・ターゲット
・データ記述子リング580a〜580mを介して使用
可能な本発明のターゲット・バッファによって実現可能
である。ターゲット・バッファは、各VC専用であるた
め、ホスト・メモリ50に送られるパケットは、パケッ
トの最終宛先のターゲット・バッファにDMAによって
直接送ることができる。データとプロトコル・ヘッダの
分割は、ターゲットVCと非ターゲットVCの両方によ
ってサポートされる。
タ)記述子リング580a〜580mは、ネットワーク
・インタフェース回路(NIC)によってサポートされ
る、通常は異なるデータ転送レートを持つ、複数のチャ
ネルの数およびRXデータ・バッファの数にそれぞれ対
応する数のデータ構造体である。各RXターゲット・デ
ータ記述子リング580a〜580mは、ソフトウエア
が順次に循環式にアクセスする「1」から「K」までの
番号が付された複数K個のリング項目585を有する。
値「K」は、好ましくは64以上の、整数である。各リ
ング項目は、ヘッダと、所望のデータ・パケットが入っ
ているそのそれぞれのRXデータ・バッファ内の記憶場
所を指すデータ・ポインタとを含む「データ記述子」に
記憶場所を提供するのに十分なサイズ(たとえば64バ
イト)である。したがって、ターゲット・チャネルとし
てプログラムされた各受信チャネルは、それぞれ固有の
フリー・バッファ・リングを持つことになる。最大1,
024のターゲット接続のために最大1,024のフリ
ー・バッファ・リングがあることになる。特定のチャネ
ルがフリー・バッファを使い果たし、パケットが着信し
た場合、ルータは共通フリー・バッファ・プールにアク
セスして、フリー・バッファを検索する。フリー・ター
ゲット・データ・リングは記述子所有権を示すために
「OWN」ビットを使用する。
された複数の受信チャネルのために主としてパケットを
格納する、1つの共通RXフリー非ターゲット・データ
・リング581がある。非ターゲット・チャネルは、通
常、NFS(ネットワーク・ファイル・システム)など
のカーネル空間に宛てられたパケットのために使用され
る。RXフリー非ターゲット記述子リング581は、個
別のターゲット・チャネル(ユーザ・アプリケーション
に直接結合されたチャネル)がフリー・バッファを使い
果たしたときに補助バッファとして使用することもでき
る。一実施形態では、1つの記述子について2つのバッ
ファ・ポインタ項目がある。一方のバッファ・ポインタ
はプロトコル・ヘッダを格納するために使用され、他方
はパケットのデータ部分を格納するために使用される。
ヘッダ・バッファとデータ・バッファはそれぞれ204
8バイトと64Kバイトまでに制限されている。RXフ
リー非ターゲット・データ・リング581は記述子所有
権を示すために「OWN」ビットを使用する。
子リング580a〜580mとは異なり、ポインタに依
存するのではなく、リング項目内に必要なすべての情報
が入った複数のリング項目を有するデータ構造体であ
る。ターゲットVCと非ターゲットVCのいずれの場合
も、複数のチャネルの受信データ・パケットが1つのR
X完了リング590内で報告される。好ましい実施態様
では、RX完了リング590は、1,024個のリング
項目が64バイト境界に接して、ホスト・メモリを64
Kバイト占有する。RX完了リング590にはソフトウ
ェアとルータの両方がアクセス可能であり、NICがR
X完了リング590の所有権を有している場合に立てら
れる各記述子内のOWNビットを必要とする。
DMA状態機構とRXロード機構とを詳細に示す。図4
の各要素を参照しながら説明する。現在のところ好まし
い実施態様では、ネットワーク・インタフェース回路1
2(NIC)のコア22は、RXアンロード機構60
と、スケジュール・キュー66と、DMA状態機構64
と、受信RXロード機構62とを有する。RXアンロー
ド機構60側にアンロード・ルックアヘッド68および
get_buffer70がDMA状態機構64に結合
されている。アンロード・ルックアヘッド68にはデー
タ・エンジン72が結合されている。RXロード機構6
2側では、ロード・ルックアヘッド74がレジスタ・ヘ
ッダ76を有し、ロード・データ・エンジン78および
DMA状態機構64と結合されている。
60とDMA状態機構64とは、各パケットに関する情
報を処理し、NIC12がパケットをホスト・メモリ5
0にアンロードするときにパケットが確実に最終宛先に
直接送られるようにする。具体的には、RXアンロード
機構60はデータをホスト・メモリ50にアンロードす
るときに、ホスト・メモリ50内でそのパケットのバッ
ファを検索する必要がある。特定のVCIをターゲット
と非ターゲットのいずれに設定するかに関する情報が、
DMA状態機構64で示される。VCIがターゲットの
場合、ルータはホスト・メモリ50内のRXターゲット
・データ記述子リング580a〜580mのうちの1つ
からVCI65のバッファをピックアップすることがで
きる。これらのRXターゲット・データ記述子リング5
80a〜580mは、パケットの最終宛先のバッファを
直接指すことができる。DMA状態機構64が特定のV
CIが非ターゲットであることを示している場合には、
ホスト・メモリ50内の非ターゲット(カーネル)バッ
ファ・リング581からバッファを獲得する。バッファ
がピックアップされると、ルータはデータ・バッファを
指すポインタを含むバッファ情報をDMA状態機構64
に保管する。ルータがDMA状態機構64に保管するそ
の他の情報としては、バッファの大きさや、DMAによ
ってすでにそのバッファに送られている情報の量などが
含まれる。
50内の場所が決まると、RXアンロード機構60は外
部バッファ・メモリ42からセルを取り出し、そのセル
をホスト・メモリ50内の宛先に送る。パケットの終わ
りに達するまでこれが続けられる。パケットの終わりに
達すると、ルータはバッファ・ポインタおよびCRC
(巡回冗長検査)を含むすべてのDMA状態情報を入手
してその情報をホスト・メモリ50内の完了リング54
に書き込む。次にルータは、ソフトウェアを覚醒させる
割込みを生成し、それによってソフトウェアがホスト・
メモリ50内の完了リング54でパケットのDMA状態
情報を調べることができるようになる。ソフトウェア
は、完了リング54からパケット情報を取り出すことが
でき、ホスト・メモリ50に転送された特定のパケット
がターゲット・バッファに入っているか、非ターゲット
・バッファに入っているかを判断することができる。ソ
フトウェアは、パケットがどのVCIをターゲットとし
ているか、すなわち宛先としているかを判断することも
でき、パケットのカーネル・アドレスが入っているバッ
ファ・テーブルを調べることができる。ソフトウェアは
次に、パケットの最終宛先に対して、パケットがその宛
先に着信したことを通知する。
なステップを図示した流れ図である。図6を参照しなが
ら説明する。ステップ701で、データがいくつかのセ
ルのパケットの形でNIC12に着信する。セルはヘッ
ド部分とデータ部分を有する。NIC12のシステム・
コア22内で、RXロード機構62のロード・ルックア
ヘッド74が、パケット・セルのデータを外部バッファ
・メモリ42に入れるために使用するポインタと、ヘッ
ダからそのデータについてそれまでに計算されたCRC
とを含むセルのDMA状態情報を読み込む。ステップ7
02で、DMA情報がレジスタに格納される。
ロード・データ・エンジン78に対してデータを外部バ
ッファ・メモリ42に入れるように命令する。ロード・
データ・エンジン78は、データを移すとそれが行われ
たことをロード・ルックアヘッド74に通知する。RX
ロード機構62が、VCI65内に十分なデータがあっ
て、ホスト・メモリへのデータのDMAを開始する必要
があると判断した場合、RXロード機構62はステップ
704でVCI65をスケジュール・キュー66に書き
込む。この時点で、RXロード機構62は次のデータの
処理を開始する。VCI65がスケジュール・キュー6
6に書き込まれると、ステップ705でアンロード機構
60がそのデータ処理を開始する。
62と同様にして区分化されている。ステップ706
で、RXアンロード機構60のアンロード・ルックアヘ
ッド68がスケジュール・キュー66からVCI65を
取り出し、DMA状態機構64内でVCI65を調べ
る。ステップ707で、アンロード・ルックアヘッド6
8は次に最初と最後のセル・ポインタを入手し、DMA
状態機構64からCRCを取り込む。アンロード・ルッ
クアヘッド68は、ホスト・メモリ内にバッファ・ポイ
ンタがあればそれも取り出す。それがパケットのうちで
最初に処理するセルの場合、DMA状態機構64にはバ
ッファ・ポインタはないことになる。RXアンロード機
構60は、データ・エンジン72とget_buffe
r70も有する。ステップ708で、アンロード・ルッ
クアヘッド68がDMA状態機構64を読み取り、バッ
ファ・ポインタがないと判断した場合、get_buf
fer70に対してバッファ・ポインタを入手するよう
に命令する。ステップ709で、get_buffer
状態機械70はDMA状態機構64からターゲット・バ
ッファ・リング・ポインタを探し出す。
が、VCI12がターゲットではないことを示している
場合、VCI12は非ターゲット・バッファ・リング5
81の共通ポインタを入手する。get_buffer
状態機械70はこのバッファ・リングを調べ、ホスト・
メモリ50内のカーネルからバッファを検索する。ステ
ップ711で、VCIがターゲットとされている場合、
get_buffer70はターゲット・データ記述子
リング580a〜580mに行き、バッファを探す。パ
ケットの最終宛先にカーネルがバッファを与えていない
ためにバッファがない場合、get_buffer70
は自動的にRAMに制御を戻し、非ターゲット・バッフ
ァ・リングを読み、非ターゲット・データ記述子リング
581からバッファを取り込み、ルータにデータをその
バッファにDMA転送させる。ステップ712で、ge
t_buffer状態機械70はバッファを入手してい
ると、そのバッファをDMA状態機構64に戻す。RX
アンロード機構60のうちの他の部分は、バッファがタ
ーゲットであるか非ターゲットであるかを認識していな
い。
ヘッド68がバッファを入手していると、アンロード・
データ・エンジン70に対して外部バッファ・メモリ4
2からデータを読取るように命令し、それをバッファ・
ポインタに入れる。ターゲットの場合、バッファ・ポイ
ンタはパケットの最終宛先を指していることになる。ス
テップ714で、最後のセルが到着するまでデータはD
MA動作によってホスト・メモリに送られる。
パケット内の最後のセルを受け取ると、外部バッファ・
メモリ42でそれが最後のセルであることを示す通知を
行う。この通知がアンロード・データ・エンジン72に
よって認識されて、アンロード・データ・エンジン72
はそのセルがパケット内の最後のセルであることをアン
ロード・ルックアヘッド68に通知する。ステップ71
6で、アンロード・ルックアヘッド68は、パケット全
体のために使用していたDMA状態情報を取り出して、
それをホスト・メモリ50内のRX完了リング54に書
き込む。
ケットがターゲット・バッファであるか否か、そのパケ
ットのためにターゲット・バッファ・ポインタが使用可
能であるか否かを判断するために使用していたのと同じ
情報を使用する。このようにして、カーネルはデータが
すでにホスト・メモリ50内の最終宛先に入っており、
カーネルから宛先プロセスにコピーする必要がないこと
を認識することができる。ステップ718で、ソフトウ
ェアは最終宛先に対してパケットがその宛先に届いたこ
とを通知する。
式の例を示す。好ましい実施態様では、各受信VCIは
8ワードの状態情報を有し、この実施形態ではRX D
MA状態機構64に格納される。最新のVCI状態情報
をチップ上でキャッシュすることができる。この実施形
態では各VCI項目の長さは8ワードである。
ップ上でキャッシュされ、残りの情報は外部メモリに保
持される。好ましい実施態様では、各項目は8ワードか
ら成る。具体的には、ワード・ゼロは現行パケット再組
立て情報から成る。ワード1は部分CRC情報から成
る。ワード2は、現行パケット長および状況情報から成
る。ワード3はバケット連鎖ポインタから成る。ワード
4は部分バケット・ポインタから成る。ワード5はター
ゲット・バッファ・リング・ポインタから成る。ワード
6はヘッダ・バッファ・ポインタから成り、ワード7は
データ・バッファ・ポインタから成る。
これは、バッファ・アドレスとバッファ長が有効である
ことを示す。このビットはRXバッファ記述子からOW
Nビットとして読み取られる。このフィールドは、バッ
ファがRX完了リングに戻されるとクリアされる。
としてマークされていたが、当該パケットの最初のセル
が着信したときにターゲット・バッファ・リング上に使
用可能なバッファがなかったことを示すカーネル打ち切
りフィールドを有する。したがって、チップは打ち切っ
てカーネル・バッファ・リングに行っている。ワード3
はターゲット・フィールドも有し、設定されると、当該
VCIがターゲットであって、バッファ連鎖ポインタは
有効である。このフィールドが設定されていない場合、
カーネル・バッファ・リングが代わりに使用される。
機構64のワード3は2ビットを有することができる。
第1のビットはターゲット・ビットである。このターゲ
ット・ビットが立てられている場合は、ターゲット・バ
ッファ・リングがあることを示す。他方のビットは、カ
ーネル打ち切りである。前述のように、カーネル打ち切
りビットは、対応するVCIがターゲット・バッファ・
リングであるとされていたことを示す。たとえば、ルー
タがRX D1に行き、そこでバッファが見つからなか
った場合、ルータは打ち切ってRX D2に行くことが
できる。その時点からは、ルータは、ソフトウェアによ
ってルータが再びRX D1を調べるように指示される
まで、セルが着信するたびに直接RX D2に行くだけ
である。言い換えると、ワード3はその特定の状態のV
CIがターゲットとされるか否かを制御する。ターゲッ
トの場合、DMA状態機構64のワード5はターゲット
・バッファ・リングを持つ。ルータのうちアンロード機
構60だけが対話に関与する部分である。アンロード・
ルックアヘッド68の書込みバッファがDMA状態機構
64からDMA状態情報を先取りして読み取る。ワード
3はバッファ有効ビットも有する。アンロード機構60
がDMA状態に到達したとき、バッファ有効ビットが立
てられている場合は、ルータがすでにバッファをピック
アップして、そのバッファにDMAでデータを送ること
ができることを示している。
指すポインタを保持している。ワード3のバッファ有効
ビットが0に設定されている場合、get_buffe
rがターゲット・ビットとワード3のカーネル打ち切り
ビットを調べる。ターゲット・ビットが1で、カーネル
打ち切りビットが0の場合、get_bufferはR
X D1を指すポインタとなるDMA状態機構64のワ
ード5を読み取る。次にget_buffer70はワ
ード5のアドレスにある現行記述子からDMAによる読
み取りを行う。したがって、get_buffer70
はRX D1から読み取る。RX D1にバッファがな
い場合、get_buffer70はカーネル打ち切り
ビットを1に設定し、RAM内の別の場所にあるRX
D2などの非ターゲット・リングに行く。get_bu
ffer70はRX D2に行ってバッファを見つけよ
うとする。RX D2から読み取った場合、get_b
uffer70は情報のうちからいくつかのワードを取
り出して、バッファ・ポインタのワード6および7に入
れる。その後、get_buffer70はワード3の
バッファ有効ビットを設定して、アンロード・ルックア
ヘッド68に制御を戻す。
す。この適用例でたどる一般的ステップを図10および
その説明で示す。カーネルは記述子リングD1(90
1)、D2(902)、およびD3(903)を有す
る。記述子リングD1(901)は、ユーザ・プロセス
A(904)のバッファA1およびバッファA2を指す
バッファ記述子を有する。記述子リングD3(903)
は、プロセスB(905)のバッファB1およびB2を
指すバッファ記述子を有する。
的ステップを示す流れ図である。以下、図9に図示する
構成要素を参照しながら説明する。ステップ911で、
媒体からパケットが着信する。ステップ912で、ルー
タがVCIを調べ、VCIがソフトウェアによって前も
って定められている通りにパケットのRX D1(90
1)を使用する必要があると判断する。ステップ913
で、ルータはユーザ・プロセスA(904)のバッファ
A1にDMAによってパケットを書き込む。ステップ9
14で、カーネルがパケット・ヘッダをデコードし、パ
ケットがユーザ・プロセスA(904)に宛てられてい
ると判断する。ステップ915で、カーネルはバッファ
A1にデータが入っていることをプロセスA904に通
知する。
る本発明の実施形態を示す。この実施形態がたどる一般
的ステップを図12およびその説明で示す。カーネル
は、記述子リングD1(901)、D2(902)、お
よびD3(903)を有する。記述子リングD3(90
3)はユーザ・プロセス905のバッファB1およびB
2を指すバッファ記述子を有する。
実施形態がたどる一般的ステップを示す流れ図である。
以下、図11に図示する構成要素を参照しながら説明す
る。ステップ111で、媒体からパケットが着信する。
ステップ112で、ルータはVCIを調べ、ソフトウェ
アによって前もって定められている通りにVCIがその
パケットにRX D1(901)を使用する必要がある
と判断する。
(901)でバッファを見つけられず、自動的に打ち切
ってRX D2(902)に行く。RX D2(90
2)は非ターゲットである。ステップ114で、ルータ
はDMAによってバッファK1にパケットを送る。ステ
ップ115で、カーネルがパケット・ヘッダを調べ、パ
ケットがユーザ・プロセスA 904宛であると判断す
る。ステップ116で、カーネルはRX D1(90
1)がからであることを知る。ステップ117で、カー
ネルはRX D1(901)にバッファの追加を試み
る。ステップ118で、ユーザ・プロセスA 905は
バッファA1を渡し、カーネルはパケットをK1からA
1にコピーする。
の領域への転送情報の無用または冗長なコピーを行わず
に、システム内のホスト・メモリにデータを効率的に転
送する方法および装置について説明した。
付図面に図示したが、当業者ならその他の様々な変更が
思いつくと考えられるため、そのような実施態様は例示
に過ぎず、図示および説明した特定の構成および構造に
は限定されないものと理解されたい。
ための従来のデータ・アクセス手法の方法および装置を
示す図である。
る一般的なステップを示す図である(図1に図示する各
要素を参照する)。
を使用するATMネットワーク・インタフェース回路を
組み込んだコンピュータ・システム・ネットワークの例
を示す図である。
すシステム略図である。
ータ構造を示す概要図である。
ロード機構、DMA状態機構、およびRXロード機構を
示す図である。
示す流れ図である。
す図である。
使用例を示す図である。
般的ステップを示す流れ図である。
す図である。
どる一般的ステップを示す流れ図である。
Claims (3)
- 【請求項1】 データの最終宛先専用のバッファ記述子
によってデータの破壊を防止する保護バッファ記述子に
関連づけられたバッファのプールを有するコンピュータ
・システムでのデータ・コピー・オーバーヘッド削減方
法であって、 最終宛先にルーティングされるパケットを受信するステ
ップと、 最終宛先に関連づけられた前記バッファのうちの1つの
バッファに前記パケットのデータを書き込むステップと
を有する、保護メモリ・オペレーティング・システムに
関連づけられた方法。 - 【請求項2】 データの最終宛先専用のバッファ記述子
によってデータの破壊を防止する保護バッファ記述子に
関連づけられたバッファのプールを有するコンピュータ
・システムでのデータ・コピー・オーバーヘッド削減装
置であって、 送られてきた着信パケットのデータを格納する1つまた
は複数のターゲット・バッファおよびフリー非ターゲッ
ト・バッファを有するホスト・メモリと、 前記ホスト・メモリに結合され、前記データが前記パケ
ットの最終宛先に関連づけられた前記ホスト・メモリ内
の前記バッファのうちの1つのバッファに宛てられてい
る前記パケットを前記ホスト・メモリに送信するアンロ
ード機構とを備える、保護メモリ・オペレーティング・
システムに関連づけられた装置。 - 【請求項3】 保護メモリ・オペレーティング・システ
ムに関連づけられたデータ・コピー・オーバーヘッドを
削減するシステムであって、 送られてきた着信パケットのデータを格納する1つまた
は複数のフリー・ターゲット・バッファおよびフリー非
ターゲット・バッファを有する前記ホスト・メモリと、 前記ホスト・メモリに結合され、前記データが前記パケ
ットの最終宛先に関連づけられた前記ホスト・メモリ内
のバッファに宛てられているそのパケットを前記ホスト
・メモリに送信するアンロード機構と、 前記ホスト・メモリに結合され、前記ホスト・メモリへ
の前記パケットの前記送信を処理するプロセッサとを備
えるシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/554,608 US5778180A (en) | 1995-11-06 | 1995-11-06 | Mechanism for reducing data copying overhead in protected memory operating systems |
| US08/554,608 | 1995-11-06 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09321828A true JPH09321828A (ja) | 1997-12-12 |
| JPH09321828A5 JPH09321828A5 (ja) | 2004-11-04 |
Family
ID=24213995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8308660A Ceased JPH09321828A (ja) | 1995-11-06 | 1996-11-06 | 保護メモリ・オペレーティング・システムにおけるデータ・コピー・オーバーヘッドを削減する機構 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5778180A (ja) |
| EP (1) | EP0775958A1 (ja) |
| JP (1) | JPH09321828A (ja) |
| CA (1) | CA2189617A1 (ja) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9606834D0 (en) * | 1996-03-30 | 1996-06-05 | Int Computers Ltd | Inter-processor communication |
| US6070219A (en) * | 1996-10-09 | 2000-05-30 | Intel Corporation | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller |
| US6253349B1 (en) * | 1997-04-02 | 2001-06-26 | Matsushita Electric Industrial Co., Ltd. | Error detective information adding equipment |
| US6081846A (en) * | 1997-05-08 | 2000-06-27 | Microsoft Corporation | Method and computer program product for reducing intra-system data copying during network packet processing |
| US6021446A (en) * | 1997-07-11 | 2000-02-01 | Sun Microsystems, Inc. | Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine |
| DE19807251A1 (de) | 1998-02-20 | 1999-09-02 | Siemens Ag | Vorrichtung und Verfahren zur Umsetzung von Datensequenzen zwischen FR-Formaten und ATM-Formaten |
| US6092124A (en) * | 1998-04-17 | 2000-07-18 | Nvidia Corporation | Method and apparatus for accelerating the rendering of images |
| SE520101C2 (sv) * | 1998-05-13 | 2003-05-27 | Axis Ab | Integrerad krets och metod för att förmå en intgrerad krets att exekvera instruktioner |
| US6378005B1 (en) * | 1998-06-12 | 2002-04-23 | Microsoft Corporation | Method, computer program product, and system for separating connection management functionality from a connection-oriented device driver |
| US6347348B1 (en) * | 1998-06-30 | 2002-02-12 | Sun Microsystems, Inc. | 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 |
| GB9821792D0 (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 |
| GB9821789D0 (en) | 1998-10-06 | 1998-12-02 | Sgs Thomson Microelectronics | Jitter handling |
| GB9821800D0 (en) * | 1998-10-06 | 1998-12-02 | Sgs Thomson Microelectronics | Data transfer |
| GB9821763D0 (en) | 1998-10-06 | 1998-12-02 | Sgs Thomson Microelectronics | Data transfer |
| GB9821791D0 (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 |
| GB9821762D0 (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 |
| US6650640B1 (en) | 1999-03-01 | 2003-11-18 | Sun Microsystems, Inc. | Method and apparatus for managing a network flow in a high performance network interface |
| US6356951B1 (en) | 1999-03-01 | 2002-03-12 | Sun Microsystems, Inc. | System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction |
| US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
| US6389468B1 (en) | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
| US6606301B1 (en) | 1999-03-01 | 2003-08-12 | Sun Microsystems, Inc. | Method and apparatus for early random discard of packets |
| US6483804B1 (en) | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
| US6480489B1 (en) | 1999-03-01 | 2002-11-12 | Sun Microsystems, Inc. | Method and apparatus for data re-assembly with a high performance network interface |
| US6366970B1 (en) * | 1999-04-01 | 2002-04-02 | Ravisent Technologies, Inc. | Optimal handling and manipulation of high-speed streaming media in a computing device |
| US7107383B1 (en) | 2000-05-03 | 2006-09-12 | Broadcom Corporation | Method and system for multi-channel transfer of data and control information |
| US7168069B1 (en) * | 2000-07-12 | 2007-01-23 | Stmicroelectronics, Inc. | Dynamic generation of multimedia code for image processing |
| US7089289B1 (en) * | 2000-07-18 | 2006-08-08 | International Business Machines Corporation | Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices |
| US20040073724A1 (en) * | 2000-10-03 | 2004-04-15 | Adaptec, Inc. | Network stack layer interface |
| KR20020039492A (ko) * | 2000-11-21 | 2002-05-27 | 노창환 | 패킷 처리방법 |
| US7426572B1 (en) * | 2001-10-31 | 2008-09-16 | Juniper Networks, Inc. | Network router using embedded and external memory based on packet destination |
| US8032669B2 (en) * | 2008-01-20 | 2011-10-04 | Oracle America, Inc. | Universal DMA (direct memory access) architecture |
| US9584446B2 (en) * | 2008-03-18 | 2017-02-28 | Vmware, Inc. | Memory buffer management method and system having multiple receive ring buffers |
| US9063805B2 (en) * | 2009-11-25 | 2015-06-23 | Freescale Semiconductor, Inc. | Method and system for enabling access to functionality provided by resources outside of an operating system environment |
| US8774187B2 (en) | 2011-10-24 | 2014-07-08 | Richard L. Hartman | Methods, systems, and devices for interfacing to networks |
| US11671382B2 (en) | 2016-06-17 | 2023-06-06 | Intel Corporation | Technologies for coordinating access to data packets in a memory |
| US10341264B2 (en) * | 2016-06-30 | 2019-07-02 | Intel Corporation | Technologies for scalable packet reception and transmission |
| US10560373B2 (en) * | 2017-04-06 | 2020-02-11 | Gvbb Holdings S.A.R.L. | System and method for timely and uniform distribution for real-time packet transmission |
| US10999209B2 (en) | 2017-06-28 | 2021-05-04 | Intel Corporation | Technologies for scalable network packet processing with lock-free rings |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4727538A (en) * | 1986-05-20 | 1988-02-23 | American Telephone And Telegraph Company, At&T Bell Laboratories | Information transfer method and arrangement |
| US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
| US5347634A (en) * | 1990-03-15 | 1994-09-13 | Hewlett-Packard Company | System and method for directly executing user DMA instruction from user controlled process by employing processor privileged work buffer pointers |
| US5491808A (en) * | 1992-09-30 | 1996-02-13 | Conner Peripherals, Inc. | Method for tracking memory allocation in network file server |
| US5289470A (en) * | 1992-12-14 | 1994-02-22 | International Business Machines Corp. | Flexible scheme for buffer space allocation in networking devices |
| DE4312797A1 (de) * | 1993-04-20 | 1994-10-27 | Hans Lackner | Verfahren und Vorrichtung zum Segmentieren von Datenpaketen |
| US5530902A (en) * | 1993-06-14 | 1996-06-25 | Motorola, Inc. | Data packet switching system having DMA controller, service arbiter, buffer type managers, and buffer managers for managing data transfer to provide less processor intervention |
| US5640399A (en) * | 1993-10-20 | 1997-06-17 | Lsi Logic Corporation | Single chip network router |
| GB9406325D0 (en) * | 1994-03-30 | 1994-05-25 | Plessey Telecomm | B-isdn access |
| US5590313A (en) * | 1994-06-30 | 1996-12-31 | International Business Machines Corporation | Multiple protocol device interface subsystem and method |
| US5633867A (en) * | 1994-07-01 | 1997-05-27 | Digital Equipment Corporation | Local memory buffers management for an ATM adapter implementing credit based flow control |
| US5666514A (en) * | 1994-07-01 | 1997-09-09 | Board Of Trustees Of The Leland Stanford Junior University | Cache memory containing extra status bits to indicate memory regions where logging of data should occur |
| US5619647A (en) * | 1994-09-30 | 1997-04-08 | Tandem Computers, Incorporated | System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait |
-
1995
- 1995-11-06 US US08/554,608 patent/US5778180A/en not_active Expired - Lifetime
-
1996
- 1996-10-29 EP EP96307817A patent/EP0775958A1/en not_active Withdrawn
- 1996-11-05 CA CA002189617A patent/CA2189617A1/en not_active Abandoned
- 1996-11-06 JP JP8308660A patent/JPH09321828A/ja not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US5778180A (en) | 1998-07-07 |
| CA2189617A1 (en) | 1997-05-07 |
| EP0775958A1 (en) | 1997-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH09321828A (ja) | 保護メモリ・オペレーティング・システムにおけるデータ・コピー・オーバーヘッドを削減する機構 | |
| JP3819484B2 (ja) | Mpegパケットをパケット化およびセグメント化する装置および方法 | |
| US5664116A (en) | Buffering of data for transmission in a computer communication system interface | |
| US6724767B1 (en) | Two-dimensional queuing/de-queuing methods and systems for implementing the same | |
| US5740448A (en) | Method and apparatus for exclusive access to shared data structures through index referenced buffers | |
| US5875352A (en) | Method and apparatus for multiple channel direct memory access control | |
| JP4205181B2 (ja) | Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置 | |
| JP3336816B2 (ja) | マルチメディア通信装置及び方法 | |
| 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 | |
| JP2990345B2 (ja) | ネットワークインターフェース | |
| US7616562B1 (en) | Systems and methods for handling packet fragmentation | |
| US7773599B1 (en) | Packet fragment handling | |
| US5848293A (en) | Method and apparatus for transmission and processing of virtual commands | |
| US6804731B1 (en) | System, method and article of manufacture for storing an incoming datagram in switch matrix in a switch fabric chipset system | |
| EP0891116A2 (en) | Mechanism for reducing interrupt overhead in device drivers | |
| US7782857B2 (en) | Logical separation and accessing of descriptor memories | |
| US20020176430A1 (en) | Buffer management for communication systems | |
| US8085780B1 (en) | Optimized buffer loading for packet header processing | |
| JPH09160870A (ja) | ハードウェアとソフトウェアの間でデータ転送を報告する方法および装置 | |
| JPH07297842A (ja) | 着信インタリーブ非同期転送モード・セルを再配列する方法および装置 | |
| US6724759B1 (en) | System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system | |
| US7239630B1 (en) | Dedicated processing resources for packet header generation | |
| US7158520B1 (en) | Mailbox registers for synchronizing header processing execution | |
| EP1324566B1 (en) | A system independent and scalable packet buffer management architecture for network processors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050630 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051003 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060117 |
|
| A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20060523 |