JPH11134274A - デバイス・ドライバ中の割込みオーバヘッドを低減させる機構 - Google Patents

デバイス・ドライバ中の割込みオーバヘッドを低減させる機構

Info

Publication number
JPH11134274A
JPH11134274A JP10195459A JP19545998A JPH11134274A JP H11134274 A JPH11134274 A JP H11134274A JP 10195459 A JP10195459 A JP 10195459A JP 19545998 A JP19545998 A JP 19545998A JP H11134274 A JPH11134274 A JP H11134274A
Authority
JP
Japan
Prior art keywords
packet
data streams
interrupt
data
generation number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10195459A
Other languages
English (en)
Inventor
Denton E Gentry Jr
デントン・イー・ジェントリー・ジュニア
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11134274A publication Critical patent/JPH11134274A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

(57)【要約】 【課題】 高レベル処理を下位割込みレベルで実行し、
CPUがその他の割込みにサービスすることができるよ
うにする方法および装置を提供すること。 【解決手段】 高レベル割込みを有する非同期転送モー
ド(ATM)デバイスなどのネットワーク・デバイス
は、パケットの処理を開始し、下位レベル・ソフトウェ
ア割込みにプロセス制御を転送する。下位レベル・ソフ
トウェア割込みはパケット処理を完了する。プロセス制
御を転送する前に、ハードウェア割込みはパケットにつ
いてのプット情報を生成し、これは後にソフトウェア割
込みがパケットを処理する際に取り出して利用する。パ
ケットについて生成された各データ・ストリームには独
自の世代番号が割り当てられる。所与のパケットのプッ
ト情報に関連する世代番号は、そのパケットが予定され
たデータ・ストリームの世代番号と比較される。これら
の世代番号が等しければ、パケットが予定されたデータ
・ストリームは不変であると想定され、パケットはその
データ・ストリームに進み、さらに処理される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、装置をネットワー
ク化するデバイス・ドライバの分野に関し、さらに詳細
には、本発明は、ネットワーク通信中のデバイス・ドラ
イバ中の割込みオーバヘッドを低減させる方法および装
置に関する。
【0002】
【従来の技術】ネットワークを介してデータを送受信す
ることができるコンピュータ・システムは、通常は、ネ
ットワーク・データの送受信をサポートするためにネッ
トワーク・ハードウェア割込みを有する。従来は、ネッ
トワーク・ハードウェア割込みは、その他のほとんどの
ハードウェア割込みより高位の優先順位を有する。
【0003】所与のハードウェア割込みによって活動化
されたデバイス・ドライバがコンピュータ・システム上
のデータ処理に従事している間、この動作中のデバイス
・ドライバより低いレベルの割込みを有するその他のデ
バイス・ドライバは、実行することができない。非同期
転送モード(ATM)デバイスなどのいくつかのハード
ウェア・デバイスは、非常に短い時間周期中に複数のハ
ードウェア割込みが発生することがある。こうした複数
のハードウェア割込みにより、ATMデバイスと連動す
るデバイス・ドライバは、中央処理装置(CPU)時間
を独占することができる。このような独占は、下位レベ
ルの割込み要求の処理を遅らせるので、コンピュータ・
システムの通常の処理に不利な影響を及ぼすことがあ
る。以前のハードウェア割込みの過度の処理によって遅
れたハードウェア割込みを示す時間線の1例を図1に示
す。
【0004】図1は、ともにハードウェア割込みを生じ
させるATMデバイスおよびイーサネット・デバイスに
関するタイミング図である。コンピュータ・システムが
時間線100上の時間Aで実行されるときに、ATMデ
バイス102はサービスされたハードウェア割込みをア
サートする。ハードウェア割込みハンドラがATMデバ
イス102からパケットの待ち行列を解除しているとき
に、イーサネット104は時間Bでハードウェア割込み
をアサートする。しかし、ATM102からアサートさ
れたハードウェア割込みが既に受諾されているので、ハ
ードウェア割込みの開始を求めるイーサネット104の
要求は拒絶される。時間Cで、ATM102のハードウ
ェア割込みは、ATMデバイス102からのパケットの
待ち行列の解除を完了し、処理時間が解放される。これ
でようやくイーサネット104のハードウェア割込みは
処理を開始することができる。
【0005】下位レベルの処理の不当な遅延の問題を妥
協するために、ATMデバイスは全ての処理をCPUの
割込みコンテキスト内で実行する。図2は、ATMデバ
イスによって引き起こされた単一のハードウェア割込み
によって開始される例示的なタスクを示す図である。パ
ケットがATMデバイスに到着すると、割込みがATM
デバイスによってアサートされ、ATMデバイス・ドラ
イバ110がATMデバイスからパケットの待ち行列を
解除し、そのパケットがインターネット・プロトコル
(IP)パケットであると決定する。次いでパケットは
IP層112に移送される。IP層112は、そのパケ
ットが移送制御プロトコル(TCP)パケットであると
決定する。次いでパケットはTCP層114に進む。T
CP層114は、パケットがTCP層114の肯定応答
パケット(すなわちTCPがATMデバイスに進めたパ
ケットがその宛先に連続的に伝送されたことを示すTC
Pへの肯定応答)であると決定する。次いでTCP層1
14は、新規のパケットを伝送し、新規のパケットをI
P層112に進めることができる。IP層112はこの
パケットをATMデバイス・ドライバ110に進める。
ATMデバイス・ドライバ110はこのパケットをAT
Mデバイスに伝送する。
【0006】
【発明が解決しようとする課題】図2に示したように、
ATMデバイスなどのネットワーク化機器のデバイス・
ドライバは、通常は全ての処理をCPUの割込みコンテ
キスト内で実行する。ATMデバイスと連動するデバイ
ス・ドライバの実行中には、CPUは下位レベルの割込
みタスクを処理することができず、その結果システム全
体の性能が低下する。したがって、高レベル処理を下位
割込みレベルで実行し、CPUがその他の割込みを処理
することができるようにする方法および装置を有するこ
とが望ましい。
【0007】
【課題を解決するための手段】デバイス・ドライバ中の
割込みオーバヘッドを低減させる方法および装置を開示
する。本発明では、CPUが下位レベル処理の割込みを
処理することができるように、コンピュータ・システム
上で実行されるネットワーク・デバイス・ドライバのタ
スクは下位割込みレベルで実行される。
【0008】さらに詳細には、非同期転送モード(AT
M)ネットワーク・デバイスと連動するデバイス・ドラ
イバが開き、データ・ストリームが発生する。データ・
ストリームは通常は、それを介してデータが移送され、
ユーザ・プロセスに到達する、カーネル空間中の層であ
る。カーネル空間は、ハードウェア資源の割振りなどの
基本機能を実行する、オペレーティング・システムの一
部分である。各データ・ストリームには、生成されるご
とに独自の世代番号が割り当てられる。ハードウェア割
込みは、コンピュータ・システム用のパケットを運ぶネ
ットワーク・デバイスによってアサートされる。パケッ
トが予定されたデータ・ストリームの世代番号は、プッ
ト情報(put information )先入れ先出し(FIFO)
待ち行列に記憶される。プロセス制御がハードウェア割
込みから下位レベル・ソフトウェア割込みに転送された
ときに作成することができるパケットについて生成され
たデータ・ストリーム中の変化は監視される。
【0009】ATMデバイスに関連する処理が下位レベ
ル・ソフトウェア割込みに当てられるので、不当な遅延
なくその他のデバイスからの割込み要求が処理される。
さらに、各データ・ストリームに独自の世代番号を割り
当てることにより、パケットが、そのパケットに適用不
可能となったデータ・ストリームに進められることが防
止される。後者は、特定のパケットについて最初に生成
されたデータ・ストリームが修正されてそのパケットに
適用不可能になるようにこのデータ・ストリームを修正
する複数のプロセッサを有する、マルチプロセッシング
・システムで特に有利である。
【0010】
【発明の実施の形態】デバイス・ドライバ中の割込みオ
ーバヘッドを低減させる方法および装置を開示する。本
発明では、ネットワーク・デバイス・ドライバと連動す
る高レベル・ハードウェア割込みに応答して、低レベル
・ソフトウェア割込みがトリガされる。ハードウェア割
込みは、パケットを処理するためにネットワーク・デバ
イスによって引き起こされる。パケット用に生成された
各データ・ストリームには独自の世代番号が割り当てら
れ、世代番号はプット情報先入れ先出し(FIFO)待
ち行列に記憶される。低レベル・ソフトウェア割込み
は、パケットをその宛先データ・ストリームに進めるこ
とによってパケットを処理する。データ・ストリーム
は、典型的には、ユーザ・プロセスに到達するようにデ
ータが移送されるカーネル空間中の層である。カーネル
空間は、ハードウェア資源の割振りなどの基本機能を実
行する、オペレーティング・システムの一部分である。
【0011】ハードウェア割込みから低レベル・ソフト
ウェア割込みにプロセス制御を転送することにより、本
発明では、高レベル・ハードウェア割込みを活動化して
も低レベル処理を行うことができる。さらに、データ・
ストリームに独自の世代番号を割り当てることにより、
パケットが修正されるのを防止し、データ・ストリーム
が適用不可能となるのを防止する。
【0012】図3は、デバイス・ドライバ中の割込みオ
ーバヘッドを低減させる本発明実施形態の方法および装
置を利用する、非同期転送モード(ATM)ネットワー
ク・インタフェース回路を組み込む例示的なコンピュー
タ・システム・ネットワークを示す図である。このコン
ピュータ・システム・ネットワーク10は、1つまたは
複数のATMネットワーク・インタフェース回路(NI
C)12を組み込んだホスト・コンピュータ・システム
(図示せず)を含む。NIC12は、ローカルATMス
イッチ14を介して公衆ATMスイッチ16に結合さ
れ、ネットワーク10に結合されたホスト・コンピュー
タ・システム間のデータの非同期転送を可能にする。別
法として、NIC12を公衆ATMスイッチ16に直接
結合することもできる。図3に示すように、コンピュー
タ・システム・ネットワーク10は、ATMネットワー
クをサポート用フレームワークとして利用するイーサネ
ットやトークン・リング・ネットワークなどのその他の
ネットワークを接続するゲートウェイとして働く、ロー
カル・エリア・ネットワーク(「LAN」)エミュレー
ション15の使用を組み込むコンピュータ・システムを
含むこともできる。
【0013】図4は、図3のATM NIC12のアー
キテクチャを示す単純化したシステム図である。ATM
NIC12は、ATMプロトコルに従って動作するネ
ットワーク媒体40へのホスト・コンピュータ・システ
ムのインタフェースとなっている。ホスト・コンピュー
タ・システムは、システム・バス38を介してネットワ
ーク媒体40に結合される。
【0014】図示のATM NIC12は、システム・
バス・インタフェース20、総称入出力(「GIO」)
インタフェース24、システムおよびATM層コア2
2、ローカル・スレーブ・インタフェース26、送信
(TX)FIFOのアレイ28、受信(RX)FIFO
のアレイ30、媒体インタフェース32、外部バッファ
・メモリ・インタフェース34、ならびにクロック合成
回路36を含む。
【0015】ネットワーク・インタフェース回路12の
要素20から36は、互いに協働して、ホスト・コンピ
ュータとネットワーク中のその他のコンピュータとの間
で、複数の帯域幅のグループ中の動的に割り振られた複
数のチャネルを介して非同期にデータを転送する。ネッ
トワーク・インタフェース回路12の要素は、集合的
に、ホスト・コンピュータ・システムのシステム・バス
38に結合されたマルチチャネル・インテリジェント直
接アクセス・メモリ(DMA)制御装置として機能す
る。好ましい実施形態では、複数の送信および受信チャ
ネルは全2重155/622Mbps物理リンクを利用
する仮想接続として処理される。システム・バス38を
介して異なるチャネルに予約され、外部バッファ・メモ
リ・インタフェース34を介して外部バッファ・メモリ
42に予約される複数のデータ・パケットは、システム
およびATM層コア22により、媒体インタフェース3
2を介して媒体40に送信される送信データにセグメン
ト化される。
【0016】 外部バッファ・メモリ42は、RXデー
タ・バッファを含むRXバッファ・メモリ44を有す
る。RXデータ・バッファは、主に着信データのバッフ
ァリングに使用される。例示的な実施形態では、バッフ
ァ・メモリの一部分は、その内の128がNIC12内
部にキャッシュされる1024個の受信チャネルについ
ての情報を保持するためにも使用される。データ・バッ
ファ・メモリは、48バイト・メモリ領域の集合として
構成される。48バイト・メモリ領域はそれぞれ、AT
Mデータ・セルのペイロードを保持する。セルは48バ
イト・メモリ・データと呼ばれ、当技術分野では周知で
ある。データ・バッファ・メモリは、その48バイト・
メモリ領域が様々なチャネルについての着信データに動
的に割り当てられる、共有メモリ・プールである。動的
な48バイト・メモリ領域割振りは、チャネルの必要に
従って自由な48バイト・メモリ領域をチャネルに割り
当て、メモリは完全に利用される。極端な場合には、1
つのチャネルがメモリ・プール中の全ての48バイト・
メモリ領域を占めることができる、あるいは48バイト
・メモリ領域を、ほぼ完全にデータをインタリーブして
多くのチャネルに割り当てることもできる。
【0017】ATM層コア22は、受信パケットの組立
てを容易にする組立て論理も含む。ATM層コア22と
媒体インタフェース32との間に結合されたTXおよび
RXFIFO28、30はそれぞれ、送信(TX)およ
び受信(RX)パケットの送信(TX)および受信(R
X)データのペイロードを格納するために使用される。
媒体インタフェース32は、クロック合成回路36から
供給されるクロック信号によって駆動されるネットワー
クの媒体40との間でデータを送受信する。媒体40
と、したがって媒体インタフェース32とは、ATM
Forum UTOPIA Specificatio
n Level One、Version2.01、R
eference Number AF−PHY−00
17.000、1994年3月21日発行によって提供
された、Universal Test and Op
erations Physical Interfa
ce for ATM(「UTOPIA」)標準に従う
ことが好ましい。UTOPIA仕様に従うために、クロ
ック合成回路36は20MHzまたは40MHzのいず
れかのクロック信号を供給して、媒体インタフェース3
2が、155Mbpsについては20MHzで1バイト
・データ・ストリームを、または622Mbpsのデー
タ・ストリームについては40MHzで16ビット・デ
ータ・ストリームをサポートすることができるようにす
る。
【0018】現在好ましい実施形態では、媒体インタフ
ェース32は、4バイトのデータ・ヘッダおよび48バ
イトのペイロードをそれぞれ有する52バイト・データ
を、TX FIFO28から受け取る。媒体インタフェ
ース32は、データ・ヘッダへの第5のバイトとしてチ
ェックサムを各データに挿入した後で、53バイト・デ
ータを媒体40に供給する。逆に、媒体インタフェース
32は、媒体40からデータを受けたときには、各デー
タの第5のバイト中のチェックサムを検査して、そのチ
ェックサムが正しいかどうかを判定する。正しければ、
チェックサムを表すバイトはデータから取り除かれ、デ
ータはRX FIFO30に進められる。そうでなけれ
ば、データ全体が除去される。
【0019】また、ネットワーク・インタフェース回路
12は、ホスト・コンピュータ・システム上で動作して
いるアプリケーションから非同期転送のデータ記述詳細
を隔離する。この目的のために、ホスト・コンピュータ
・システム上で動作するアプリケーションは、パケット
・インタフェースとともに循環送受信リングを使用して
データの送受信を管理するものと想定する。ただし、本
発明は、その他のデータ構造を使用してデータの送受信
を管理するホスト・コンピュータ・システム上で動作す
るアプリケーションでも動作することができる。
【0020】システム・バス・インタフェース20およ
び総称I/Oインタフェース24は、ホスト・コンピュ
ータ・システムを媒体40への転送の特性から切り離
す。さらに、ATM層コア22も、システム・バス38
およびホスト・データ構造の特性から切り離される。好
ましい実施形態では、システム・バス38は、Inst
itute of Electronics and
ElectricalEngineers(「IEE
E」)標準1496仕様に指定されたSバスである。シ
ステム・バス・インタフェース20は、本発明ではS−
バスとなるシステム・バスの仕様に従って通信するよう
に構成される。
【0021】システム・バス・インタフェース20は、
様々なホスト・コンピュータ・システム・バスに適合す
るように構成することができる。システム・バス・イン
タフェース20は、総称I/Oインタフェース24によ
って指定されたプロトコルに従ってデータを送受信する
ようにも構成される。総称I/Oインタフェース24
は、ATM層コア22がホスト・コンピュータと通信す
る単一のインタフェースとなっている。したがって、A
TM層コア22は、様々なホスト・コンピュータ・シス
テムおよびバスへのインタフェースとなるNIC12の
様々な実施形態に対して不変である。
【0022】ホスト・メモリ50はシステム・バス38
に結合される。記述子リング52および完了リング54
はともにホスト・メモリ50中にある。データは、ホス
ト・コンピュータからネットワーク・インタフェース回
路12に直接メモリ・アクセスされることができる。ネ
ットワーク・インタフェース回路12が媒体40を介し
てパケットの受信を開始すると、パケットは、媒体イン
タフェース32およびATM層コア22を介して外部バ
ッファ・メモリ42に伝送される。次いでパケットは、
ネットワーク・インタフェース回路12に伝送されて戻
り、ATM層コア22を介してホスト・メモリ50に伝
送される。ネットワーク・インタフェース回路12はパ
ケットが受信されたことを確認し、記述子リング52か
ら読み取る。ネットワーク・インタフェース回路12
は、DMA状態になると、データ・パケットのバッファ
56中への移動を開始し、DMA状態を完了リング54
に戻す。
【0023】ホスト・メモリ50は、ATM NIC1
2を介してパケットが到着してコンピュータ・システム
のプロセス・フローを中断するハードウェア割込み6
1、および適切なデータ・ストリームにパケットを進め
るためにプロセス制御が転送されるソフトウェア割込み
62とともに、ATMデバイス・ドライバ60も含む。
1実施形態では、ソフトウェア割込み62およびハード
ウェア割込み61は、コンピュータ可読装置上で記憶さ
れるように構成された、コンピュータが実行可能なコー
ドである。ハードウェア割込み61およびソフトウェア
割込み62はともに、パケットに関連するプット情報エ
ントリを含むプット情報先入れ先出し(FIFO)待ち
行列63へのアクセスを有する。
【0024】図5は、データ受信に使用されるホスト・
コンピュータの好ましいデータ構造を示す概略図であ
る。ホスト・メモリ50は、受信(「RX」)自由目標
(ユーザ・データ)データ記述子リング480a〜48
0m、RX自由非目標(カーネル)記述子リング48
1、およびRX完了リング490を含む。
【0025】RX自由目標(ユーザ・データ)データ記
述子リング480a〜480m、およびRX自由非目標
(カーネル)記述子リング481は、異なる2つのタイ
プのRX自由バッファ記述子リングである。各VC(仮
想回路)は、2つのタイプの一方に予約される。第1の
タイプは、複数のVCが利用することができる共通自由
バッファ・プールである。第2のタイプは、各VCに対
して専用自由バッファ・プールを提供する。さらに、第
2のタイプは、ユーザ・アドレス空間に直接マップされ
るバッファの私用プールも提供する。異なる2つのタイ
プのバッファは、自由目標記述子リングを介してバッフ
ァへの高速アクセスを実現し、自由非目標バッファ記述
子リングを介してバッファのメモリ節約共通プールを提
供する。共通自由バッファ・プールに予約されるVCは
非目標VCと呼ばれ、専用自由バッファ・プールは、目
標VCとして周知である。目標VCは、非目標VCには
ないバッファ連鎖特権を有する。
【0026】RX自由目標(ユーザ・データ)データ記述
シリング480a〜480mは、通常は異なる転送デー
タ速度を有する、ネットワーク・インタフェース回路
(NIC)によってサポートされる複数のチャネルと、
RXデータ・バッファとにその数が対応するデータ構造
である。各RX自由データ記述子リング480a〜48
0mは、ソフトウェアから順次循環してアクセスされ
る、「1」から「K」の番号が付いた複数の「K」個の
リング・エントリ485を含む。1実施形態では、
「K」の値は、少なくとも64に等しい整数である。各
リング・エントリは、関連するデータ・パケットが位置
する各RXデータ・バッファ中の位置への少なくとも1
つのポインタを含む「データ記述子」用の記憶域を与え
るのに十分なサイズ(例えば64バイト)である。この
ようにして、目標チャネルとしてプログラムされた各受
信チャネルは、それ自体の自由バッファ記述子リングを
有することになる。1実施形態では、1024までの目
標接続について1024までの自由バッファ・リングが
存在することになる。特定のチャネルで自由バッファが
不足し、パケットが到着すると、ハードウェアは、共通
自由バッファ・プールにアクセスして自由バッファを取
り出すことになる。RX自由目標データ記述子リング
は、記述子の所有権について「OWN」ビットを使用す
る。
【0027】主に非目標チャネルとしてプログラムされ
ている複数の受信チャネルに対してパケットを記憶する
ために、1つの共通RX自由データ記述子リング481
が存在する。非目標チャネルは通常は、NFS(ネット
ワーク・ファイル・システム)などのカーネル空間に予
定されたパケットのために利用される。RX自由非目標
記述子リング481は、個別の目標チャネル(ユーザ・
アプリケーションに直接結合されたチャネル)で自由バ
ッファが不足したときに、バックアップ・バッファ・プ
ールとして利用することもできる。例示的な実施形態で
は、記述子ごとに2つのバッファ・ポインタ・エントリ
が存在する。一方のバッファ・ポインタはプロトコル・
ヘッダを記憶し、もう一方はパケットのデータ部分を記
憶する。1実施形態では、ヘッダ・バッファおよびデー
タ・バッファはそれぞれ2048バイトおよび64キロ
バイトである。RX自由非目標データ・リング481
は、記述子の所有権について「OWN」ビットを利用す
る。
【0028】RX完了リング490は、ポインタに依ら
ずに各リング・エントリ中のパケットを処理するための
全ての情報(例えば状態情報やバッファ・ポインタ情
報)を含む複数のリング・エントリを有するデータ構造
である。複数のチャネルについて受信されたデータ・パ
ケットは、目標および非目標VCの両方について単一の
RX完了リング490中で報告される。1実施形態で
は、RX完了リング490は、64バイト境界上にある
1024のリング・エントリを介してホスト・メモリ5
0の64キロバイトを占める。RX完了リング490
は、NIC12がRX完了リング490の所有権を有す
るときにセットされるOWNビットを各記述子中で必要
とするソフトウェアおよびハードウェア双方からアクセ
ス可能である。
【0029】図6は、デバイス・ドライバ中の割込みオ
ーバヘッドを低減させる本発明の機構の例示的な実施形
態を示す図である。
【0030】本発明では、中央処理装置(CPU)の時
間を独占する傾向のあるネットワーク・デバイス・ドラ
イバのタスクは、通常はネットワーク・デバイス・ドラ
イバ割込みによって優先使用されるその他のデバイス・
ドライバの高位レベルの割込みが、CPUによってより
頻繁に処理させる割込みレベルで実行される。さらに詳
細には、通常はネットワーク・デバイス・ドライバに関
連する高レベル・ハードウェア割込みより低い割込みレ
ベルでCPUが処理するソフトウェア割込みが、ATM
デバイスによってアサートされた高レベル・ハードウェ
ア割込みに応答してトリガされる。
【0031】パケットの到着に備えて、ユーザ・プロセ
スは、データ・パケットを処理することができるデータ
・ストリームを開く。ATMデバイス・ドライバは、生
成された各データ・ストリームに独自の世代番号を割り
当てる。ATMデバイスでパケットを受信すると、AT
Mデバイス・ドライバに関連するハードウェア割込み5
00を引き起こす。ハードウェア割込み500はプロセ
ス制御を獲得し、相互排除(mutex)3に入って、
完了リング504への排他的アクセスを獲得し、バッフ
ァ56からバッファを取り出し、一時的にパケットを記
憶する。
【0032】mutex1、2、および3は、所与の任
意時間において、クリティカル・セクションのグループ
の共有された同一の可変または実行メンバに、ただ1つ
の非同期手続きしかアクセスすることができないことを
保証するルーチンである。mutexは相互排除の概念
を指す。本明細書で使用するように、これは、任意の時
間に、1つのソフトウェア・アプリケーションしか所与
のmutexに関連する構成要素にアクセスし、これを
使用することができないルーチンを指す。自動的にmu
texに入り、アプリケーションがmutexロックを
獲得することができるようにするルーチンもある。mu
texロックは、ロックされたプロセス中の同じ位置を
異なるスレッドが選択しないようにする。
【0033】mutex3に入ると、ハードウェア割込
み500は、後にソフトウェア割込み508によって参
照されるパケットについてのプット情報をコンパイル
し、この情報をプット情報FIFO待ち行列506に記
憶する。本発明の1実施形態では、プット情報FIFO
待ち行列506は、待ち行列の開始および終了を示す開
始および終了ポインタを有するプット情報エントリのア
レイにすることができる。
【0034】ハードウェア割込み500はmutex3
を出る。次いでプロセス制御はハードウェア割込み50
0からソフトウェア割込み508に転送される。この間
に、その他のアプリケーションまたはプロセッサは、パ
ケットが予定されるデータ・ストリームに、このデータ
・ストリームが更新されてそのパケットに適用不可能に
なるようにアクセスすることができる(とりわけマルチ
プロセッシング環境において)。変化したデータ・スト
リームへのパケットの送信を回避するために、ハードウ
ェア割込み500は、ソフトウェア割込み508が各デ
ータ・ストリーム中の変化を監視することができるよう
にする、以前に各データ・ストリームに割り当てた独自
の世代番号をセーブする。各データ・ストリームについ
ての独自の世代番号は、関連するパケットについてのプ
ット情報中にセーブされ、ソフトウェア割込み508に
よって使用される。各パケットについての各プット情報
は、プット情報FIFO待ち行列506中に記憶され
る。
【0035】ソフトウェア割込み508は、mutex
1に入ってプット情報FIFO待ち行列506に排他的
にアクセスし、mutex2に入ってデータ・ストリー
ム510に排他的にアクセスする。次いでソフトウェア
割込み508は、プット情報FIFO待ち行列506か
らプット情報を取り出し、そのパケットに関連する世代
番号と、そのパケットが予定されるデータ・ストリーム
の世代番号とを比較する。世代番号が等しければ、デー
タ・ストリームは不変であると判定され、パケットはデ
ータ・ストリーム510に送信され、処理される。そう
でなければ、データ・ストリーム510は変化したもの
と想定され、パケットを処理することはできない。した
がって、パケットは放棄され、関連するメモリ空間が使
用可能になる。
【0036】図7は、例示的なプット情報データ構造7
00を示す図である。プット情報データ構造700は、
データ・ストリーム識別子701および独自の世代番号
702を含む様々なパケット情報をその中に記憶する。
データ・ストリーム識別子701は、パケットが予定さ
れたデータ・ストリーム510を識別する。パケットに
ついて生成されたデータ・ストリームに固有の独自の世
代番号702は、パケットをデータ・ストリームに伝送
する前にデータ・ストリームが変化しているかどうかを
識別するために使用される。
【0037】図8aおよび図8bは、デバイス・ドライ
バ中の割込みオーバヘッドを低減させる本発明の方法お
よび装置がたどる一般的な段階を示す図である。段階8
01で、ユーザ・プロセスは、標準オープン・ルーチン
を介してATMデバイス・ドライバ60を開き、ATM
デバイスとの接続をセットアップする。段階802で、
データ・ストリームが生成され、1つまたは複数のユー
ザ・プロセスとATMデバイスとの間で進められた1つ
または複数のパケットを処理する。段階803で、所与
のパケットについて生成された各データ・ストリームに
独自の世代番号が割り当てられる。さらに詳細には、そ
れまでにデータ・ストリームに割り当てられた最大の世
代番号である大域世代番号が増分される。増分された大
域世代番号は、次の新規データ・ストリームに割り当て
られる。
【0038】段階804で、パケットはATMデバイス
からネットワークに到着する。段階805で、ネットワ
ークへのパケットの到着が、ATMデバイス・ドライバ
60に関連するハードウェア割込みを引き起こす。段階
806で、活動化したハードウェア割込みは、mute
x3に入って複数のバッファを指す完了リング54への
排他的アクセスを獲得し、完了リング54を介して利用
可能なバッファを受信する。
【0039】段階807で、ハードウェア割込みは以前
に入ったmutex3を利用して、プット情報FIFO
待ち行列63および待ち行列の開始ポインタへの排他的
アクセスを獲得し、利用可能な空間がないかプット情報
FIFO待ち行列63を検査する。段階808でプット
情報FIFO待ち行列63が満杯である場合には、段階
809で、ハードウェア割込みはパケットを放棄し、プ
ロセスは終了する。そうではなく、プット情報FIFO
待ち行列63に新規のプット情報エントリが利用できる
空間がある場合には、段階810でハードウェア割込み
は、新しく到着したパケットについてのプット情報をコ
ンパイルし、このプット情報をプット情報FIFO待ち
行列63中に挿入する。段階811で、ハードウェア割
込みは、プット情報FIFO待ち行列63の終了を指す
終了ポインタを増分し、新規の書出し情報エントリの追
加をプット情報FIFO待ち行列63に反映する。段階
812で、ハードウェア割込みはソフトウェア割込みを
スケジュールし、戻る。
【0040】段階813で、ソフトウェア割込みは実行
を開始する。段階814で、ソフトウェア割込みは、m
utex1に入ってプット情報FIFO待ち行列63お
よび待ち行列の終了ポインタへの排他的アクセスを獲得
し、mutex2に入って、データ・ストリームへの排
他的アクセスを獲得する。次いでソフトウェア割込み
は、プット情報FIFO待ち行列63からのパケットの
プット情報にアクセスする。段階815で、ソフトウェ
ア割込みは、パケットについてのプット情報の世代番号
と、そのパケットが予定されたデータ・ストリームの世
代番号とを付き合わせて比較する。段階816で世代番
号が同じであれば、データ・ストリームは不変であると
想定され、段階818でパケットは処理される。そうで
なければ、段階817で、データ・ストリームは変化し
たものと想定され、そのパケットに適用不可能となる。
したがって、パケットは放棄され、関連するメモリ空間
は使用可能となる。
【0041】段階819でプット情報FIFO待ち行列
63中にさらにプット情報エントリが存在する場合に
は、プロセスは段階814に戻る。ソフトウェア割込み
はmutex1、2に入るプロセスを開始し、パケット
についてのプット情報を処理する。そうではなくプット
情報FIFO待ち行列63が空である場合には、ソフト
ウェア割込みは、処理すべきATMデバイスに関連する
パケットがそれ以上存在しないと決定し、プロセスは完
了する。
【0042】デバイス・ドライバ中の割込みオーバヘッ
ドを低減させる機構について説明した。高レベル割込み
を有するATMデバイスなどのネットワーク・デバイス
は、処理を開始し、プロセス制御を下位レベル・ソフト
ウェア割込みに転送する。下位レベル・ソフトウェア割
込みは、パケットの処理を完了させるために与えられた
CPU資源を利用する。プロセス制御を転送する前に、
ハードウェア割込みは、その後ソフトウェア割込みがパ
ケットを処理する際に取り出して利用する、パケットに
ついてのプット情報を生成する。各データ・ストリーム
には独自の世代番号が割り当てられる。所与のパケット
のプット情報に関連する世代番号は、そのパケットが予
定されたデータ・ストリームの世代番号と比較される。
これらの世代番号が等しければ、そのパケットが予定さ
れたデータ・ストリームは不変であると想定され、パケ
ットはそのデータ・ストリームに進み、さらに処理され
る。
【0043】特定の例示的な実施形態について詳細に説
明し、添付の図面に図示したが、当業者なら様々なその
他の修正形態を思いつくことができるので、このような
実施形態は広範囲に及ぶ本発明の単なる例示であって、
これを制限するものではないこと、および本発明は図示
および説明した特定の配列および構成に限定されるもの
ではないことを理解されたい。
【図面の簡単な説明】
【図1】ともにハードウェア割込みを引き起こす非同期
転送モード(ATM)デバイスおよびイーサネットに関
するタイミング図である。
【図2】ATMデバイスによる単一のハードウェア割込
みによって開始されるタスクを示す図である。
【図3】例示的なコンピュータ・システム・ネットワー
クを示す図である。
【図4】図3のATMネットワーク・インタフェース回
路(NIC)のアーキテクチャを示す単純化したシステ
ム図である。
【図5】データ受信用に使用されるホスト・メモリの好
ましいデータ構造を示す概略図である。
【図6】デバイス・ドライバ中の割込みオーバヘッドを
低減させる本発明の機構の例示的な実施形態を示す図で
ある。
【図7】例示的なプット情報データ構造を示す図であ
る。
【図8a】本発明がたどる一般的な段階を示す図であ
る。
【図8b】本発明がたどる一般的な段階を示す図であ
る。
【符号の説明】
20 システム・バス・インタフェース 22 システムおよびATM層コア 24 総称I/O 26 ローカル・スレーブ・インタフェース 32 媒体インタフェース 34 外部バッファ・メモリ・インタフェース 36 クロック合成回路 38 システム・バス 40 媒体 42 外部バッファ・メモリ 44 RXバッファ・メモリ 46 TXバッファ・メモリ 50 ホスト・メモリ 56 バッファ 60 ATMデバイス・ドライバ 61 ハードウェア割込み 62 ソフトウェア割込み 63 プット情報FIFO
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年9月29日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図6】
【図7】
【図2】
【図3】
【図4】
【図5】
【図8a】
【図8b】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI H04Q 3/00 H04L 13/00 305D (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 デバイス・ドライバ中の割込みオーバヘ
    ッドを低減させる方法であって、 複数のデータ・ストリームの内の1つであるパケットが
    ネットワーク・デバイスを介して到着したのに応答し
    て、高レベル・ハードウェア割込みをアサートする段階
    と、 前記高レベル・ハードウェア割込みから下位レベル・ソ
    フトウェア割込みにプロセス制御を転送し、高位の優先
    順位のプロセスの実行を可能にする段階と、 複数のデータ・ストリームの前記の1つに割り当てられ
    た世代番号が前記転送段階中に不変である場合に、前記
    パケットを複数のデータ・ストリームの前記の1つに進
    める段階とを含む方法。
  2. 【請求項2】 前記パケットが予定される複数のデータ
    ・ストリームの内の前記の1つと前記世代番号とを識別
    するデータ・ストリーム識別子を含む、前記パケットに
    ついてのプット情報を生み出す段階をさらに含む請求項
    1に記載の方法。
  3. 【請求項3】 複数のデータ・ストリームの前記の1つ
    に、その複数のデータ・ストリームの前記の1つが生成
    されたときに対応する、その複数のデータ・ストリーム
    の前記の1つに固有の前記世代番号をラベル貼りする段
    階をさらに含む請求項1に記載の方法。
  4. 【請求項4】 コンピュータ可読装置上で記憶するよう
    に構成された、コンピュータが実行可能なコードを含
    み、このコードが、コンピュータが実行する少なくとも
    1つの機能を実行するようにそれぞれ構成された複数の
    モジュールを含む、デバイス・ドライバ中の割込みオー
    バヘッドを低減させる装置であって、 ネットワーク・デバイスによってアサートされる、前記
    ネットワーク・デバイスに関連するパケットの入出力を
    サポートするよう、また前記ネットワーク・デバイスか
    らのパケットの伝送を処理するためにプロセス・フロー
    に割り込むよう中央処理装置(CPU)に要求するよう
    に構成された、高レベル・ハードウェア割込みモジュー
    ルと、 前記高レベル・ハードウェア割込みモジュールからプロ
    セス制御を引き継ぎ、高位の優先順位のプロセスを実行
    することができるように構成され、前記下位レベル・ソ
    フトウェア割込みモジュールがプロセス制御を引き継い
    だときに前記パケットの宛先に割り当てられた世代番号
    が不変である場合に、前記パケットをその宛先に進め
    る、前記高レベル・ハードウェア割込みモジュールに結
    合された低レベル・ソフトウェア割込みモジュールとを
    含む装置。
  5. 【請求項5】 前記宛先である、前記ネットワーク・デ
    バイスを介して受信された前記パケットを処理するため
    の複数のデータ・ストリームをさらに含み、前記複数の
    データ・ストリームのそれぞれに独自の世代番号が割り
    当てられ、前記複数のデータ・ストリームの1つに前記
    世代番号が割り当てられる請求項4に記載の装置。
  6. 【請求項6】 前記複数のデータ・ストリームの1つへ
    のポインタと、前記複数のデータ・ストリームの1つに
    割り当てられた前記世代番号とを含むプット情報先入れ
    先出し(FIFO)待ち行列をさらに含む請求項4に記
    載の装置。
  7. 【請求項7】 コンピュータ可読装置上で記憶するよう
    に構成された、コンピュータが実行可能なコードを含
    み、このコードが、コンピュータが実行する少なくとも
    1つの機能を実行するようにそれぞれ構成された複数の
    モジュールを含む、デバイス・ドライバ中の割込みオー
    バヘッドを低減させるシステムであって、 非同期転送方式(ATM)インタフェース回路が、 ネットワーク・デバイスによってアサートされる、前記
    ネットワーク・デバイスに関連するパケットの入出力を
    サポートするよう、また前記ネットワーク・デバイスか
    らのパケットの伝送を処理するためにプロセス・フロー
    に割り込むよう中央処理装置(CPU)に要求するよう
    に構成された高レベル・ハードウェア割込みモジュール
    と、 前記高レベル・ハードウェア割込みモジュールからプロ
    セス制御を引き継ぎ、高位の優先順位のプロセスを実行
    することができるように構成され、前記下位レベル・ソ
    フトウェア割込みモジュールがプロセス制御を引き継い
    だときに前記パケットの宛先に割り当てられた世代番号
    が不変である場合に、前記パケットをその宛先に進め
    る、前記高レベル・ハードウェア割込みモジュールに結
    合された低レベル・ソフトウェア割込みモジュールとを
    含むホスト・メモリ、ならびに前記高レベル・ハードウ
    ェア割込みモジュールおよび前記低レベル・ソフトウェ
    ア割込みモジュールを実行する前記CPUを有するシス
    テム。
  8. 【請求項8】 前記宛先である、前記ネットワーク・デ
    バイスを介して受信された前記パケットを処理するため
    の複数のデータ・ストリームをさらに含み、前記複数の
    データ・ストリームのそれぞれに独自の世代番号が割り
    当てられ、前記複数のデータ・ストリームの1つに前記
    世代番号が割り当てられる請求項7に記載のシステム。
  9. 【請求項9】 前記複数のデータ・ストリームの1つへ
    のポインタと、前記複数のデータ・ストリームの1つに
    割り当てられた前記世代番号とを含むプット情報先入れ
    先出し(FIFO)待ち行列をさらに含む、請求項7に
    記載のシステム。
JP10195459A 1997-07-11 1998-07-10 デバイス・ドライバ中の割込みオーバヘッドを低減させる機構 Pending JPH11134274A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/893862 1997-07-11
US08/893,862 US6021446A (en) 1997-07-11 1997-07-11 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

Publications (1)

Publication Number Publication Date
JPH11134274A true JPH11134274A (ja) 1999-05-21

Family

ID=25402248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10195459A Pending JPH11134274A (ja) 1997-07-11 1998-07-10 デバイス・ドライバ中の割込みオーバヘッドを低減させる機構

Country Status (3)

Country Link
US (1) US6021446A (ja)
EP (1) EP0891116A3 (ja)
JP (1) JPH11134274A (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US7042898B2 (en) 1997-10-14 2006-05-09 Alacritech, Inc. Reducing delays associated with inserting a checksum into a network message
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6807581B1 (en) 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US7664883B2 (en) * 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6760799B1 (en) 1999-09-30 2004-07-06 Intel Corporation Reduced networking interrupts
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6720074B2 (en) * 2000-10-26 2004-04-13 Inframat Corporation Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof
US20030121835A1 (en) * 2001-12-31 2003-07-03 Peter Quartararo Apparatus for and method of sieving biocompatible adsorbent beaded polymers
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
CA2392809A1 (en) * 2002-07-09 2004-01-09 Greg Lehman Parallel software download
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7191241B2 (en) 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US7761589B1 (en) 2003-10-23 2010-07-20 Foundry Networks, Inc. Flow control for multi-hop networks
US7639608B1 (en) * 2003-10-23 2009-12-29 Foundry Networks, Inc. Priority aware MAC flow control
US20050100042A1 (en) * 2003-11-12 2005-05-12 Illikkal Rameshkumar G. Method and system to pre-fetch a protocol control block for network packet processing
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
GB0408877D0 (en) * 2004-04-21 2004-05-26 Level 5 Networks Ltd Signalling data reception
GB0408868D0 (en) 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
GB0505300D0 (en) 2005-03-15 2005-04-20 Level 5 Networks Ltd Transmitting data
EP3217285B1 (en) 2005-03-10 2021-04-28 Xilinx, Inc. Transmitting data
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
US7593450B2 (en) * 2005-03-31 2009-09-22 Adc Telecommunications, Inc. Dynamic frequency hopping
US7583735B2 (en) * 2005-03-31 2009-09-01 Adc Telecommunications, Inc. Methods and systems for handling underflow and overflow in a software defined radio
US20060227805A1 (en) * 2005-03-31 2006-10-12 Adc Telecommunications, Inc. Buffers handling multiple protocols
US7640019B2 (en) * 2005-03-31 2009-12-29 Adc Telecommunications, Inc. Dynamic reallocation of bandwidth and modulation protocols
US7398106B2 (en) * 2005-03-31 2008-07-08 Adc Telecommunications, Inc. Dynamic readjustment of power
US20060223514A1 (en) * 2005-03-31 2006-10-05 Adc Telecommunications, Inc. Signal enhancement through diversity
US7423988B2 (en) * 2005-03-31 2008-09-09 Adc Telecommunications, Inc. Dynamic reconfiguration of resources through page headers
US20060222020A1 (en) * 2005-03-31 2006-10-05 Adc Telecommunications, Inc. Time start in the forward path
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
US20070271401A1 (en) * 2006-05-16 2007-11-22 Eliel Louzoun Techniques to moderate interrupt transfer
US8462629B2 (en) * 2006-06-14 2013-06-11 Riverbed Technology, Inc. Cooperative operation of network transport and network quality of service modules
CN103631745A (zh) * 2007-05-15 2014-03-12 克罗诺洛吉克有限公司 基于usb的同步和定时系统
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
DE102009040839A1 (de) 2008-09-30 2010-04-15 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US8725916B2 (en) * 2012-01-07 2014-05-13 Microsoft Corporation Host side implementation for HID I2C data bus
US8874535B2 (en) * 2012-10-16 2014-10-28 International Business Machines Corporation Performance of RCU-based searches and updates of cyclic data structures
US10042883B2 (en) * 2013-12-20 2018-08-07 Zumur, LLC System and method for asynchronous consumer item searching requests with synchronous parallel searching
JP6369226B2 (ja) * 2014-08-28 2018-08-08 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
US11507524B2 (en) * 2018-09-30 2022-11-22 Mazen Arakji RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists
US20220382478A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for page migration in memory systems

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4980820A (en) * 1985-02-28 1990-12-25 International Business Machines Corporation Interrupt driven prioritized queue
EP0419064A3 (en) * 1989-09-22 1992-08-05 International Business Machines Corporation Computer system having apparatus for providing pointing device independent support in an operating environment
EP0443557B1 (en) * 1990-02-20 1995-11-08 Nec Corporation Interrupt controller capable of realizing interrupt nesting function
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
JPH08508125A (ja) * 1993-03-25 1996-08-27 タリジェント インコーポレイテッド マルチレベル割込みシステム
US5680624A (en) * 1993-12-21 1997-10-21 Object Licensing Corporation Object oriented interrupt system
US5721920A (en) * 1994-08-05 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for providing a state oriented and event driven environment
US5644772A (en) * 1994-08-12 1997-07-01 Advanced Micro Devices, Inc. Signal dispatching for C language interrupt handling
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5586121A (en) * 1995-04-21 1996-12-17 Hybrid Networks, Inc. Asymmetric hybrid access system and method
US5740448A (en) * 1995-07-07 1998-04-14 Sun Microsystems, Inc. Method and apparatus for exclusive access to shared data structures through index referenced buffers
US5675829A (en) * 1995-07-07 1997-10-07 Sun Microsystems, Inc. Method and apparatus for coordinating data transfer between hardware and software by comparing entry number of data to be transferred data to entry number of transferred data
US5659758A (en) * 1995-07-07 1997-08-19 Sun Microsystems, Inc. Interrupt modular for receiving bursty high speed network traffic
US5606559A (en) * 1995-08-11 1997-02-25 International Business Machines Corporation System and method for an efficient ATM adapter/device driver interface
US5732082A (en) * 1995-08-11 1998-03-24 International Business Machines Corp. System and method for multi-frame received queuing with sorting in an asynchronous transfer mode (ATM) system
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
US5848293A (en) * 1995-11-03 1998-12-08 Sun Microsystems, Inc. Method and apparatus for transmission and processing of virtual commands
US5778180A (en) * 1995-11-06 1998-07-07 Sun Microsystems, Inc. Mechanism for reducing data copying overhead in protected memory operating systems
US5894480A (en) * 1996-02-29 1999-04-13 Apple Computer, Inc. Method and apparatus for operating a multicast system on an unreliable network
US5793747A (en) * 1996-03-14 1998-08-11 Motorola, Inc. Event-driven cell scheduler and method for supporting multiple service categories in a communication network
US5832222A (en) * 1996-06-19 1998-11-03 Ncr Corporation Apparatus for providing a single image of an I/O subsystem in a geographically dispersed computer system
US5881296A (en) * 1996-10-02 1999-03-09 Intel Corporation Method for improved interrupt processing in a computer system

Also Published As

Publication number Publication date
EP0891116A3 (en) 2004-03-03
US6021446A (en) 2000-02-01
EP0891116A2 (en) 1999-01-13

Similar Documents

Publication Publication Date Title
JPH11134274A (ja) デバイス・ドライバ中の割込みオーバヘッドを低減させる機構
US5740448A (en) Method and apparatus for exclusive access to shared data structures through index referenced buffers
US5778180A (en) Mechanism for reducing data copying overhead in protected memory operating systems
US5875352A (en) Method and apparatus for multiple channel direct memory access control
US6724767B1 (en) Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6836808B2 (en) Pipelined packet processing
US5848293A (en) Method and apparatus for transmission and processing of virtual commands
US6266729B1 (en) Computer for encapsulating legacy data transport protocol for IEEE 1394 serial bus
US7076569B1 (en) Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities
JP4205181B2 (ja) Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
US5446726A (en) Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5491802A (en) Network adapter for inserting pad bytes into packet link headers based on destination service access point fields for efficient memory transfer
EP0797335A2 (en) Network adapter
JPH09160870A (ja) ハードウェアとソフトウェアの間でデータ転送を報告する方法および装置
WO1999053648A2 (en) System and process for high-speed pattern matching for application-level switching of data packets
US8059670B2 (en) Hardware queue management with distributed linking information
JPH07297842A (ja) 着信インタリーブ非同期転送モード・セルを再配列する方法および装置
EP1302854B1 (en) Asynchronous Data transfer
EP0618709A2 (en) Memory manager for a multichannel network interface
US7292593B1 (en) Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes
US20040120339A1 (en) Method and apparatus to perform frame coalescing
US6603768B1 (en) Multi-protocol conversion assistance method and system for a network accelerator
Braun et al. A modular VLSI implementation architecture for communication subsystems
JP3623727B2 (ja) 通信方法