JPH09167127A - ハードウェアとソフトウェアの間でのデータ転送を調整するための方法及び装置 - Google Patents

ハードウェアとソフトウェアの間でのデータ転送を調整するための方法及び装置

Info

Publication number
JPH09167127A
JPH09167127A JP8195276A JP19527696A JPH09167127A JP H09167127 A JPH09167127 A JP H09167127A JP 8195276 A JP8195276 A JP 8195276A JP 19527696 A JP19527696 A JP 19527696A JP H09167127 A JPH09167127 A JP H09167127A
Authority
JP
Japan
Prior art keywords
data
storage field
storage
transferred
circuit
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
JP8195276A
Other languages
English (en)
Inventor
Rasoul M Oskouy
ラソウル・エム・オスコウイ
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 JPH09167127A publication Critical patent/JPH09167127A/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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 セマフォア機構の使用によってコンピュータ
・システム内のハードウェアとソフトウェアの間でのデ
ータ転送を調整する方法及び装置を提供する。 【解決手段】 データ記述子リング中にエントリを準備
することによってデータ・パケットが待ち行列に入れら
れると、ソフトウェアは、ハードウェアからアクセス可
能な所定の記憶位置の第1記憶フィールドに記述子エン
トリ番号を提供する。ハードウェアは、記憶位置の第2
記憶フィールドに記述子エントリ番号を書き込むことに
よって、完了したトランザクションを反映する。処理す
べき追加のデータがあるかどうか判定するため、ハード
ウェアは、第1記憶フィールドの内容を第2記憶フィー
ルドの内容と比較する。内容が等しい場合、対応するリ
ングまたはチャネルはデータが空で、追加のデータを処
理する必要はない。内容が等しくない場合、ハードウェ
アは提供された記述子の表すデータを処理し続ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タ・システムの分野に関し、詳細には、コンピュータ・
システムのハードウェアとソフトウェアの間でのデータ
転送を調整するための方法及び装置に関する。
【0002】
【従来の技術】適切に機能するコンピュータ・システム
は、一般に共用メモリ及びその他の共用資源に対する順
序立ったアクセスを保証する機構を提供する。それが必
要なのは、データが同時に2台またはそれ以上のプロセ
ッサによって変更されるのを防止するためである。所有
権を指定し、共用資源を書込みのために所有するプロセ
ッサを示すために、セマフォアと呼ばれる二進変数がし
ばしば使用される。セマフォアとは、典型的には2台の
プロセッサ間で使用される、ある記憶位置に記憶される
ソフトウェアで制御されるフラグである。
【0003】規約により、セマフォアが0に等しいとき
は、所定のプロセッサが共用資源を書込みのために所有
しており、したがってその共用資源は他のプロセッサが
書込みのために使用できないことを意味する。セマフォ
アが1に等しいときは、共用メモリの所有権が要求する
プロセッサに引き渡される。同じメモリ・セグメントを
共用するプロセッサは、その共用メモリ・セグメントか
らの読取り中に所有権を示すためにセマフォア・ハンド
シェークを必要としない。セマフォア・ハンドシェーク
が必要なのは、それらのプロセッサがその共用メモリ・
セグメントへの書込みを意図する場合だけである。ある
プロセッサが共用メモリ・セグメントの所有権を獲得す
ると、その処理を行い、共用メモリ・セグメントを更新
し、その後でセマフォア・ビットを0から1または1か
ら0にトグルしてその所有権を放棄する。
【0004】あるコンピュータ・システム内でデータを
転送するとき、ハードウェアとソフトウェアの間の調整
は、従来、記述子リング中のOWNビットを使用して、
リング上の各記述子の現在の所有権を示す、セマフォア
機構を使用して行っていた。記述子リングとは、循環式
に配列された複数のエントリ(たとえば1〜N)を有す
るデータ構造である。記述子リング内の各エントリの内
容が記述子と呼ばれる。典型的な記述子は、セグメント
化ページ編成によるページ・テーブル・アドレスのベー
ス、あるいはセグメント・レジスタ編成によるブロック
・ベース・アドレスを提供するベース・アドレス・フィ
ールドを含んでいる。各記述子は、そのエントリをハー
ドウェアが所有する場合は「1」に、またソフトウェア
が所有する場合は「0」に設定されるビットを含んでお
り、このビットが「OWN」ビットと呼ばれる。記述子
の所有者は、その記述子を更新したとき所有権を解放す
る責任がある。すなわち、ソフトウェアが伝送パケット
のポスティングを完了したとき、OWNビットを1に設
定し、ハードウェアがパケットの伝送を完了したとき、
OWNビットをクリアする。
【0005】OWNビット・セマフォア機構を使用する
と、ハードウェアが1つのトランザクションを完了する
たびにOWNビットをクリアするため記述子に書き戻し
を行わなければならないため、各トランザクションに大
きなオーバーヘッドが課される。ただ1本のチャネルを
使用する典型的な伝送システムでは、そのチャネル用に
この記述子リングを1個使用する。しかし、非同期転送
モード(ATM)プロトコルを使用するシステムでは、
多数のチャネルを使用するため、そのオーバーヘッドが
倍加され、トランザクションのオーバーヘッドによって
課される問題に対する典型的な解決策は容易に拡張でき
ない。
【0006】さらに、こうした従来システムのハードウ
ェアは、ソフトウェアが伝送すべきパケットをポストし
たかどうか定期的に照合しなければならない。これは通
常、メモリにポーリングしてOWNビットの状況を判定
することによって行う。しかし、こうしたメモリへの訪
問は、ソフトウェアがどのエントリもポストしていず、
したがってOWNビットが設定されていないことがある
ので、無駄である。その結果、ソフトウェアが伝送すべ
きパケットをポストし、OWNビットを設定することに
よってこのタスクの完了を指示するまで、ハードウェア
はメモリへのポーリングを続けなければならない。ポー
リングが必要であると、そうでなければ同じシステムを
共用する他の装置が使用できるはずの入出力システムの
帯域幅が減少する。
【0007】
【発明が解決しようとする課題】したがって、メモリを
ポーリングする必要及びOWNビットをクリアする必要
をなくし、それによってトランザクションのオーバーヘ
ッドと処理時間を減少させ、記述子リングの効率的使用
により、コンピュータ・システムのハードウェアとソフ
トウェアの間でのデータ転送を調整するための方法及び
装置が、当技術分野で必要とされている。
【0008】
【課題を解決するための手段】セマフォア機構の使用に
よって、コンピュータ・システムのハードウェアとソフ
トウェアの間でのデータ転送を調整する方法及びシステ
ムを開示する。データ記述子リング中であるエントリを
準備することによってデータ・パケットを待ち行列に入
れるとき、ソフトウェアは、その記述子エントリ番号
を、ハードウェアからアクセス可能な所定の記憶位置の
第1の記憶フィールドに供給する。ハードウェアは記憶
位置の第2の記憶フィールドにその記述子エントリ番号
を書き込むことにより、それが完了したトランザクショ
ンを反映する。処理すべきデータがさらにあるかどうか
判定するため、ハードウェアは第1記憶フィールドの内
容と第2記憶フィールドの内容を比較する。両方の記憶
フィールドの内容が等しい場合、対応するリングまたは
チャネルはデータが空になっており、さらにデータを処
理する必要はない。この条件の下で、対応するチャネル
は休眠(スリープ)に入り、ソフトウェアがその記憶位
置の第1記憶フィールドに別の記述子エントリ番号を供
給したことを示すコマンドによって覚醒されるまで休眠
を続ける。両方の記憶フィールドの内容が等しくない場
合、ハードウェアは供給された記述子で表されるデータ
の処理を続ける。本発明はデータを処理すべきかどうか
判定するためにメモリをポーリングする必要をなくす
る。本発明はまた、OWNビットをクリアする必要もな
くし、それによってトランザクションのオーバーヘッド
と処理時間を減少させる。
【0009】
【発明の実施の形態】図1に、本発明のデータ転送調整
の方法及び装置を使用したATMネットワーク・インタ
ーフェース回路を組み込んだ例示的コンピュータ・シス
テム・ネットワークを示す。コンピュータ・システム・
ネットワーク10は、1個または複数のATMネットワ
ーク・インタアーフェース回路(NIC)12を組み込
んだホスト・コンピュータ・システム(図示せず)を含
んでいる。NIC12には、ローカルATM変換機14
を介して公衆ATM交換機16に結合させ、ネットワー
ク10に結合されたホスト・コンピュータ・システム間
での非同期データ転送を可能にする。あるいは、NIC
12を公衆ATM交換機16に直接結合することもでき
る。図1に示すように、コンピュータ・システム・ネッ
トワーク10はまた、ローカル・エリア・ネットワーク
(「LAN」)エミュレーション15の使用を取り入れ
るコンピュータ・システムを含むこともある。このLA
Nエミュレーション15は、Ethernetやトーク
ン・リング・ネットワーク17などATMネットワーク
を支持フレームワークとして使用する他のネットワーク
を接続するためのゲートウェイとして働く。
【0010】図2は、本発明の好ましい実施形態による
データ転送調整の方法及び装置を使用するATM NI
C12のアーキテクチャを示す簡略化した構成図であ
る。ATM NIC12は、ATMプロトコルに従って
動作するネットワーク媒体40にシステム・バス38を
介して結合された、ホスト・コンピュータ・システム4
8とのインターフェースをとる。
【0011】図のATM NIC12は、システム・バ
ス・インターフェース20、汎用入出力(GIO,Ge
neric I/O)インターフェース24、システム
/ATM層コア22、ローカル・スレーブ・インターフ
ェース26、送信(TX)FIFO28、受信(RX)
FIFO30、媒体インターフェース32、外部バッフ
ァ・メモリ・インターフェース34、及びクロック合成
回路36を含む。
【0012】NIC12の要素20〜36は、全体で協
働して、多数の帯域幅グループに動的に割り振られる多
数のチャネルを介してホスト・コンピュータ48とネッ
トワーク中の他のコンピュータの間でデータを転送する
働きをする。ネットワーク・インターフェース回路12
の諸要素は、全体としてホスト・コンピュータ・システ
ム48のシステム・バス38に結合された多重チャネル
・インテリジェント直接メモリ・アクセス(DMA)制
御装置として働く。好ましい実施形態では、多数の送信
チャネル及び受信チャネルが、全二重155/622M
bps物理リンクを利用した仮想接続としてサービスを
受ける。外部バッファ・メモリ・インターフェース34
を介して外部バッファ・メモリ42に通じるシステム・
バス38上の異なるチャネルに予約された多数のデータ
・パケットが、システム/ATM層コア22によって送
信セルにセグメント化されて媒体インターフェース32
を介して媒体40に送信される。コア22はまた受信し
たセルを再アセンブルしてパケットにするのを助ける、
再アセンブル論理回路も含んでいる。
【0013】コア22はさらに、それぞれがATM N
IC12によって支持されるチャネルの数に対応する、
複数の記憶位置50a〜50mを含む記憶ブロック44
を含んでいる。記憶位置50a〜50mはそれぞれ、第
1記憶フィールド52と第2記憶フィールド54を含ん
でいる。比較回路56が各記憶位置50a〜50mに結
合され、第1記憶フィールド52の内容と第2記憶フィ
ールド54の内容を比較するのに使用される。比較回路
56の一例は排他的ORゲートである。具体的には、記
憶位置50aは第1記憶フィールド52aと第2記憶フ
ィールド54aを含み、記憶位置50mは第1記憶フィ
ールド52mと第2記憶フィールド54mを含んでい
る。記憶位置50aは比較回路56aに結合され、記憶
回路56aは、第1記憶フィールド52aの内容と第2
記憶フィールド54aの内容を比較するのに使用され
る。同時に、記憶位置50mは比較回路56mに結合さ
れ、比較回路56mは第1記憶フィールド52mの内容
と第2記憶フィールド54mの内容を比較するのに使用
される。ここでは、記憶位置50a〜50m、第1記憶
フィールド52a〜52m、第2記憶フィールド54a
〜54m、及び比較回路56a〜56mのそれぞれをま
とめて、記憶位置50、第1記憶フィールド52、第2
記憶フィールド54、比較回路56と称する。記憶位置
50と比較回路56は、以下で説明するように本発明の
教示に基づいてデータ転送を調整するのに使用される。
【0014】コア22と媒体インターフェース32の間
に結合されている送信FIFO28と受信FIFO30
は、それぞれ送信パケットの送信セル・ベイロード及び
受信パケットの受信セル・ベイロードをステージングす
るのに使用される。媒体インターフェース32は、クロ
ック合成回路36から供給されるクロック信号で駆動さ
れて、ネットワークの媒体40にセルを送信しそれを受
信する。媒体は、したがって媒体インターフェース32
は、ATMフォーラムAdHoc使用に記載されている
ような「ATM用汎用テスト動作物理インターフェー
ス」(UTOPIA, Universal Test
and Operations Physical
Interface for ATM)標準に合致する
ことが好ましい。UTOPIA仕様に合致するため、ク
ロック合成回路36は、20MHzまたは40MHzの
クロック信号を供給して、媒体インターフェース32
が、155Mbpsのデータ・ストリームに対しては2
0MHzで、また622Mbpsのデータ・ストリーム
に対しては40MHzでバイト・ストリームをサポート
できるようにする。
【0015】この実施形態では、媒体インターフェース
32は送信FIFO28から、それぞれ4バイトのセル
・ヘッダと48バイトのベイロードとを有する、52バ
イトのデータ・セルを受け取る。媒体インターフェース
32は、各セルのセル・ヘッダに5番目のバイトとして
チェックサムを挿入して、53バイトのデータ・セルを
媒体40に供給する。逆に媒体インターフェース32が
媒体40からセルを受け取るときは、各セルの5番目の
バイトのチェックサムを検査して、チェックサムが正し
いかどうか判定する。正しい場合は、チェックサムを表
すバイトをセルからはぎ取り、そのセルを受信FIFO
30に転送する。正しくない場合は、セル全体をドロッ
プする。
【0016】システム・バス・インターフェース20と
GIOインターフェース24は、ホスト・コンピュータ
・システム48を媒体40への転送の詳細から隔離(i
nsulate)する。さらに、コア22は、システム
・バス38の詳細とホストの詳細から隔離される。この
好ましい実施形態では、システム・バスは米国電気電子
技術者協会(「IEEE」)標準1496仕様で指定さ
れるSバスである。システム・バス・インターフェース
20は、システム・バス、今の例ではSバスの仕様に従
って通信を行うように構成されている。システム・バス
・インターフェース20を、異なるホスト・コンピュー
タ・システム・バスに合致するように構成できることが
企図されている。システム・バス・インターフェース2
0はまた、GIOインターフェース24によって指定さ
れるプロトコルに従ってデータを転送し受信するように
構成されている。GIOインターフェース24では、コ
ア22がホスト・コンピュータと通信するための単一の
インターフェースを提供する。すなわち、コア22は異
なるホスト・コンピュータ・システム及びバスとインタ
ーフェースするNIC12の異なる実施形態に合わせて
変化することはない。
【0017】3つのメモリ・サブシステムがNIC12
の動作に関連している。それには、ホスト・コンピュー
タ・システム48内にあるホスト・メモリ49と、シス
テム/ATM層コア22の外部にあるローカル・バッフ
ァ・メモリ42と、コア22内にある制御記憶ブロック
44が含まれる。NIC12は2つの記憶領域を管理す
る。すなわち、バッファ・メモリ42と記憶ブロック4
4である。バッファ・メモリ42は、NIC12がサポ
ートするすべての送信チャネル及び受信チャネル用のパ
ケット・データを含んでいる。記憶ブロック44は送信
チャネル及び受信チャネル用のDMA状態情報と、DM
A転送が実行される対象とするホスト・メモリ49内の
データ構造を指すポインタとを含んでいる。記憶ブロッ
ク44はまた、ホスト48と媒体40の間で移動する際
にパケット用の多数の送信バッファ及び受信バッファを
管理するためのデータ構造の詳細を含んでいる。
【0018】ホスト・コンピュータ・システム48は、
ホスト・メモリ49を含み、ホスト・メモリ49は、デ
ータ・パケットと送受信されるパケットを指すポインタ
とを含んでいる。先に指摘したように、NIC12はま
たホスト・コンピュータ・システム上で走るアプリケー
ションから、非同期転送のセル記述の詳細を遮蔽する。
この場合、ホスト・コンピュータ・システム48上で走
るソフトウェアが、当技術分野で周知の、パケット・イ
ンターフェースを伴うラップアラウンド送受信リングを
使ってデータの送受信を管理するものと仮定する。
【0019】図3に、本発明を組み込んだシステムでデ
ータ伝送に使用されるホスト・メモリ49用の好ましい
データ構造を示す簡略化した構成図を示す。ホスト・メ
モリは、送信(TX)データ・バッファ60a〜60
k、送信(TX)データ記述子リング70a〜70m、
及び送信(TX)完了記述子リング80を含んでいる。
送信データ記述子リング70a〜70mは複数のリング
・エントリ、たとえばエントリ71、72、73を有す
るデータ構造である。各送信データ・リング70a〜7
0mは、NIC12がサポートするm本のチャネルのう
ちの1本に対応する。これらのリング・エントリ71、
72、73はそれぞれソフトウェアによって順次循環式
にアクセスされ、伝送関係の情報(たとえばデータ・パ
ケットのサイズなど)と送信データ・バッファ60a〜
60k内にある所望のデータ・パケットを指すポインタ
とを有する記述子を含むのに十分なサイズ(たとえば6
4バイト)である。各リング上の記述子には1からNの
番号が付けてあり、Nは各リング70a〜70m上の記
述子の数である。通常は、1つのリング上に1024個
の記述子があり、すなわちN=1024であり、各リン
グは予めプログラムされた帯域幅グループと関連付けら
れている。さらに、各記述子リングは、送信用待ち行列
に入った1個または複数のパケットを有することができ
る。送信データ・バッファの数kは(m×N)以下であ
ることが好ましい。というのは、送信データ・バッファ
60a〜60kは、N個のエントリ及びm本のチャネル
からのデータを保持するのに十分な数でなければならな
いからである。記述子がリング・エントリに入力され、
後でNIC12によって読み取られるためn待ち行列に
入れられると、ホスト・メモリ中で走るソフトウェアが
NIC12内のコア22に「kick」コマンドを出
す。このコマンドは書込み動作であり、後で詳しく説明
するようにパラメータとして、送信データ・リング番号
(0〜126)と、リング内でポストされている最後の
記述子のそれに対応する記述子番号とを提供する。
【0020】好ましい実施例では、各「kick」コマ
ンドは、記憶位置50の第1記憶フィールド52に書き
込まれ、送信データ・リング番号(0〜126)と最後
にポスティングされた記述子のそれに対応する記述子番
号とを提供する。この実施形態ではチャネルが127本
あるので、それぞれ第1記憶フィールド52a〜52m
を有する127個の記憶位置50a〜50mがこの「k
ick」コマンドのポスティングに利用できる。NIC
12上のパケットの処理に割り当てられたコア22上の
ハードウェア(または回路)はまた、リング当たりそれ
が処理している最後の記述子を追跡する。この記述子番
号は記憶位置50の第2記憶フィールド54内で維持さ
れる。コア22上のハードウェアは、あるパケットの転
送を完了し、次のパケットを転送できる状態になったと
き、または「kick」コマンドを受け取ったとき、第
1記憶フィールド52と第2記憶フィールド54の内容
を検査する。これは、比較回路56を使って行い、比較
回路56で第1記憶フィールド52の内容と第2記憶フ
ィールド54の内容を比較する。比較回路56の一例は
排他的ORゲートである。
【0021】第1記憶フィールド52の内容と第2記憶
フィールド54の内容が等しいとき、すなわちハードウ
ェア記述子ポインタとソフトウェア記述子ポインタが一
致するとき、対応するリングまたはチャネルは伝送すべ
きデータが空になっている。この条件下で、対応するチ
ャネルは休眠に入り、別のソフトウェア「kick」コ
マンドによって覚醒されるまで休眠を続ける。この「k
ick」機構により、送信すべきデータがあるか否かに
かかわらずハードウェアが記述子リングをポーリングす
る必要がなくなる。さらに、この機構を実施することに
より、本発明ではOWNビット・セマフォアは基本的に
使用されないので、ハードウェアがOWNビットをクリ
アする必要はなくなる。その結果、本発明の適用によっ
てトランザクションのオーバーヘッドと処理時間が削減
される。
【0022】送信完了記述子リング80は、複数のリン
グ・エントリ80a〜80jを有するデータ構造であ
る。送信完了記述子リング80は、バッファ・メモリ4
2に転送されたパケットの状況をハードウェアが提供す
るためのブレース・ホルダーとして働く。したがって、
送信完了記述子リング80はm本のチャネルからN個の
記述子をポストするのに十分なエントリをもっていなけ
ればならないので、リング80上のリング・エントリの
数はj(j≦m×N)である。ハードウェアは送信完了
記述子リング80中の記述子を使用して、対応する送信
データ・リング番号と、転送されたパケットに対応する
記述子番号を提供する。好ましい実施形態では、送信完
了リング80は、完了したトランザクションの更新をポ
スティングするためにハードウェアが使用できる記述子
をハードウェアに報告するために使用される。送信完了
記述子リング80がハードウェアからもソフトウェアか
らもアクセス可能であると有利である。さらに、送信完
了記述子リング80は1024個のリング・エントリを
通してホスト・メモリを64キロバイト占有することが
好ましい。それにN個の記述子を有するm個の記述子リ
ングからの多数のパケット完了更新を含むのに十分な大
きさでなければならないからである。
【0023】図4は、本発明の好ましい実施形態に従っ
て、コンピュータ・ホスト・システム48上で走るソフ
トウェアによって行われるデータ転送調整のプロセスS
100を示す流れ図である。コア22が初期化され動作
すると、パケット伝送の通常の動作順序を進めて、ブロ
ックS102(パケットの送信準備完了)で、パケット
が送信の準備ができていることを示す信号を受け取る。
プロセスS100は次に判断ブロックS104(記述子
は使用可能?)で空の記述子が利用可能かどうか検査す
ることにより、その送信プロセス用に記述子が使用可能
かどうか判定する。使用可能でない場合、プロセスS1
00はステップS104に戻り、記述子が使用可能にな
るまで待つ。使用可能であれば、プロセスS100はブ
ロックS106(ソフトウエアによりパケットを適切な
TX記述子リングにポストする)に進み、そこでソフト
ウェア(「SW」)が、適当な送信データ記述子リング
70a〜70m上のパケット用の記述子をポストする。
【0024】プロセスS100は次にブロックS108
(kickコマンドで記憶位置のTXデータ記述子リン
グに最後のエントリ番号をソフトウエアにより書込む)
に進み、そこでソフトウェアが、送信データ記述子リン
グ中の最後のエントリの番号を記憶位置50の第1記憶
フィールド52に書き込む。この工程ステップS108
では「kick」コマンドを発行する。次にプロセスS
100は、判断ブロックS110(ポストすべきパケッ
ト残存?)で、ソフトウェアが伝送のためにポストすべ
きパケットがまだあるかを照会する。まだある場合は、
プロセスS100は判断ブロックS104に戻る、もう
ない場合は、プロセスS100は、判断ブロックS11
2(休止?)で、パケットをポストする処理を中止また
は停止すべきかどうか質問する。そうすべき場合は、プ
ロセスS100は休止しあるいはパケットをポストする
プロセスを打ち切る。そうでない場合は、プロセスS1
00は判断ブロックS110に戻り、別のパケットを伝
送のためにポストすべきかどうか質問を続ける。
【0025】図5は、本発明の好ましい実施形態に従っ
て、コア22内でハードウェアによって実行されるデー
タ転送調整の処理プロセスS200を示す流れ図であ
る。開始状態から始めて、プロセスS200はブロック
S114(TXデータ記述子リングからエントリをハー
ドウエアによりリードし、パケット送信をする)に進
み、そこでハードウェア(「HW」)が適切な送信デー
タ記述子リング70a〜70mからのエントリを読み取
り、パケットを送信する。プロセスS100(工程段階
S102〜S112を含む)は、プロセスS200(工
程段階S114〜S118を含む)に対して非同期に動
作する。プロセスS200は、処理ブロックS116
(パケット送信済の旨をハードウエアにより確認応答す
る)に進み、そこでパケットが転送済みであることをハ
ードウェアが肯定応答する。好ましい実施形態では、こ
の肯定応答は、転送の完了を報告すると共にソフトウェ
アにおいてトグルしやすくするための個別マスク・ビッ
トを有する割込みを発行する好ましい方法に従って、送
信完了リング80を使用して、対応する送信データ・リ
ンク番号と第2記憶位置(図示せず)の第3記憶フィー
ルド(図示せず)で転送されたパケットの記述子番号と
をポストすることによって発行される。この転送の完了
を肯定応答する技法は、本発明の譲受人に譲渡されてい
て本明細書に含まれるものとされる「Method a
nd Apparatus of Reporting
Data Transfer between Ha
rdwareand Software」という名称で
同時に出願された係属中の米国特許出願に詳しく記載さ
れている。
【0026】プロセスS200は次に判断ブロックS1
18に進んで、送信すべきパケットがまたあるかどうか
判定する。これは、特定の記憶位置50a〜50mの第
1記憶フィールド52の内容と第2記憶フィールド54
の内容を比較することによってわかる。たとえば、比較
回路56を使って、特定の記憶位置50a〜50mの第
1記憶フィールド52と第2記憶フィールド54の内容
を比較することができる。比較回路56は、記憶フィー
ルド52と54の内容が等しい場合に状況レジスタ(図
示せず)内でフラグをセットすることができる。第1記
憶フィールド52の内容と第2記憶フィールド54の内
容が等しくない場合、すなわちハードウェア記述子ポイ
ンタとソフトウェア記述子ポインタが一致しないとき
は、対応するリングまたはチャネルは他にもまだ伝送す
べきデータを有する。したがってプロセスS200はブ
ロックS114に戻って、適切な送信データ記述子リン
グ70a〜70mからのエントリの読取りを続ける。第
1記憶フィールド52の内容と第2記憶フィールド54
の内容が等しい場合、すなわちハードウェア記述子ポイ
ンタとソフトウェア記述子ポインタが一致するときは、
対応する記述子リングまたはチャネルは伝送すべきデー
タが空になっている。この条件の下では、対応するチャ
ネルは休眠に入り、別のソフトウェア「kick」コマ
ンドによって覚醒されるまで休眠を続ける。終了してい
るエントリが送信データ記述子リング70a〜70mに
ポストされることを示す、ソフトウェアが発行した「k
ick」コマンドを受け取ると、プロセスS200が再
開される。
【0027】本発明の適用によって、ハードウェアはソ
フトウェアが伝送のためにパケットをポストしたかどう
か判定するためにホスト・メモリにポーリングする必要
が無くなる。その上、「kick」機構を実施すること
により、ハードウェアはOWNビットをクリアする必要
がもはやなくなる。本発明ではOWNビット・セマフォ
アが基本的に使用されないからである。その結果、本発
明の適用によって、トランザクションのオーバーヘッド
及び処理時間が減少する。
【0028】当業者なら本発明の真の範囲及び精神の枠
から逸脱せずに、上記の実施形態の修正例や変形例を実
施できよう。たとえば、本発明はソフトウェアとハード
ウェアの間でのデータ転送の調整を必要とするどんなコ
ンピュータ・システムにおいても実施することもでき、
ATMプロトコルを使用したデータ転送やデータ伝送に
限られるものではない。さらに、記憶フィールド52は
第2記憶フィールド54と同じ記憶位置50にある必要
はない。
【0029】以上、本発明をいくつかの好ましい実施形
態に関して説明した。当業者には明らかな他の実施形態
も本発明の範囲に含まれる。したがって、本発明の範囲
は頭記の特許請求の範囲によってのみ定義されるもので
ある。
【図面の簡単な説明】
【図1】 本発明のデータ転送調整の方法と装置を利用
する非同期転送モードのネットワーク・インターフェー
ス回路を取り込んだ例示的コンピュータ・システム・ネ
ットワークを示す図である。
【図2】 本発明の好ましい実施形態によるデータ転送
調整の方法と装置を利用する非同期転送モードのネット
ワーク・インターフェース回路のアーキテクチャを示す
全体システム図である。
【図3】 本発明の装置と方法を利用するシステムにお
けるデータ転送に使用されるホスト・メモリの好ましい
データ構造の簡略化した構成図である。
【図4】 本発明の好ましい実施形態によるデータ転送
調整のプロセスを示す流れ図(その1)である。
【図5】 本発明の好ましい実施形態によるデータ転送
調整のプロセスを示す流れ図(その2)である。
【符号の説明】
10 コンピュータ・システム・ネットワーク 12 ATMネットワーク・インターフェース回路(N
IC) 14 ローカルATM交換機 15 ローカル・エリア・ネットワーク(LAN)エミ
ュレーション 16 公衆ATM交換機 17 他のネットワーク 20 システム・バス・インターフェース 22 システム/ATM層コア 24 総称入出力(「GIO」)インターフェース 26 ローカル・スレーブ・インターフェース 28 送信(TX)FIFO 30 受信(RX)FIFO 32 媒体インターフェース 34 外部バッファ・メモリ・インターフェース 36 クロック合成回路 40 ネットワーク媒体 48 ホスト・コンピュータ・システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デントン・イー・ジェントリー,ジュニア アメリカ合衆国 94306 カリフォルニア 州・パロ アルト・ブライアント アヴェ ニュ・3277

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 ホスト・メモリを有し、ホスト・メモリ
    が、複数のエントリを有するデータ構造を少なくとも1
    個有し、各エントリが、エントリ番号と転送すべきデー
    タの位置情報とを含んでいるホスト装置と、 前記ホスト装置に結合され、転送すべきデータの位置情
    報に対応するエントリ番号を格納するための第1記憶フ
    ィールドと、転送されたデータの位置情報に対応するエ
    ントリ番号を格納するための第2記憶フィールドとを有
    する、記憶位置と、 前記記憶位置に結合され、第1記憶フィールドの内容を
    第2記憶フィールドの内容と比較するための回路とを備
    える、 データを転送するためのコンピュータ・システム。
  2. 【請求項2】 第1記憶フィールドの内容が第2記憶フ
    ィールドの内容と等しくないと比較回路が判定した場合
    に動作可能となる、データを転送するための第2の回路
    を備える、請求項1に記載のシステム。
  3. 【請求項3】 転送すべきデータの位置情報を含むエン
    トリに対応するエントリ番号が第1記憶フィールドに格
    納されているときに動作可能となる、データを転送する
    ための第2の回路を備える、請求項1に記載のシステ
    ム。
  4. 【請求項4】 第2のデータ構造と第2の記憶位置を備
    え、前記第2記憶位置が第3記憶フィールドと第4記憶
    フィールドを有し、前記データ構造が、データ転送用の
    第1のチャネルに対応する第1データ構造であり、前記
    第2データ構造がデータ転送用の第2のチャネルに対応
    することを特徴とする、請求項1に記載のシステム。
  5. 【請求項5】 ホスト・メモリが複数のエントリを有す
    るデータ構造を少なくとも1個有し、各エントリがエン
    トリ番号と転送すべきデータの位置情報とを含む、ホス
    ト・メモリを有するホスト装置に応答してデータを転送
    するためのデータ転送回路であって、 前記ホスト装置に結合され、転送すべきデータの位置情
    報に対応するエントリ番号を格納するための第1記憶フ
    ィールドと、転送されたデータの位置情報に対応するエ
    ントリ番号を格納するための第2記憶フィールドとを有
    する、記憶位置と、 第1記憶フィールドの内容を第2記憶フィールドの内容
    と比較するための回路とを備えるデータ転送回路。
  6. 【請求項6】 第1記憶フィールドの内容が第2記憶フ
    ィールドの内容と等しくないと比較回路が判定した場合
    に動作可能となる、比較回路に応答してデータを転送す
    るための第2の回路を備える、請求項5に記載の回路。
  7. 【請求項7】 転送すべきデータの位置情報を含むエン
    トリに対応するエントリ番号が第1記憶フィールドに格
    納されているときに動作可能となる、データを転送する
    ための第2の回路を備える、請求項5に記載の回路。
  8. 【請求項8】 第2のデータ構造と第2の記憶位置を備
    え、前記第2記憶位置が第3記憶フィールドと第4記憶
    フィールドを有し、前記データ構造が、データ転送用の
    第1のチャネルに対応する第1データ構造であり、前記
    第2データ構造がデータ転送用の第2のチャネルに対応
    することを特徴とする、請求項5に記載の回路。
  9. 【請求項9】 転送すべきデータの位置情報に対応する
    エントリ番号を第1記憶フィールドに格納するステップ
    と、 第1記憶フィールドに格納されているエントリ番号に対
    応するデータを転送するステップと、 転送されたデータの位置情報に対応するエントリ番号を
    第2記憶フィールドに格納するステップと、 第1記憶フィールドの内容を、第2記憶フィールドの内
    容と比較するステップと、 第1記憶フィールドの内容が第2記憶フィールドの内容
    と等しくない場合は第1記憶フィールドに格納されてい
    るエントリ番号に対応するデータを転送し、また第1記
    憶フィールドの内容が第2記憶フィールドの内容と等し
    い場合はデータの転送を打ち切るステップとを含む、コ
    ンピュータ内におけるデータ転送を調整する方法。
  10. 【請求項10】 第1記憶フィールドに格納されている
    エントリ番号が転送すべきデータの位置情報を含む場合
    に、第1記憶フィールドに格納されているエントリ番号
    に対応するデータを転送するステップを含んでいる、請
    求項9に記載の方法。
  11. 【請求項11】 ホスト・メモリが複数のエントリを有
    するデータ構造を少なくとも1個有し、各エントリがエ
    ントリ番号と転送すべきデータの位置情報とを含む、ホ
    スト・メモリを有するホスト装置を提供するステップを
    含む、請求項9に記載の方法。
  12. 【請求項12】 第1格納ステップの前に、第2のデー
    タ構造と第2の記憶位置を提供するステップを含み、前
    記第2記憶位置が第3記憶フィールドと第4記憶フィー
    ルドを有し、前記データ構造が、データ転送用の第1の
    チャネルに対応する第1データ構造であり、前記第2デ
    ータ構造がデータ転送用の第2のチャネルに対応するこ
    とを特徴とする、請求項9に記載の方法。
JP8195276A 1995-07-07 1996-07-08 ハードウェアとソフトウェアの間でのデータ転送を調整するための方法及び装置 Pending JPH09167127A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/499,317 US5675829A (en) 1995-07-07 1995-07-07 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
US08/499317 1995-07-07

Publications (1)

Publication Number Publication Date
JPH09167127A true JPH09167127A (ja) 1997-06-24

Family

ID=23984790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8195276A Pending JPH09167127A (ja) 1995-07-07 1996-07-08 ハードウェアとソフトウェアの間でのデータ転送を調整するための方法及び装置

Country Status (4)

Country Link
US (1) US5675829A (ja)
EP (1) EP0752665B1 (ja)
JP (1) JPH09167127A (ja)
DE (1) DE69617547T2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870628A (en) * 1996-06-11 1999-02-09 International Business Machines Corporation Adaptor for receiving and processing asynchronous transfer mode cells within a computer network
US5812760A (en) * 1996-06-25 1998-09-22 Lsi Logic Corporation Programmable byte wise MPEG systems layer parser
US7324546B1 (en) * 1996-08-07 2008-01-29 Cisco Technology, Inc. Network router integrated onto a silicon chip
US5822612A (en) * 1996-09-12 1998-10-13 Thomas; Robert E. Apparatus and method for managing schedule table pointers
US6070219A (en) * 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
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
FR2770665B1 (fr) * 1997-11-06 2002-12-20 Alsthom Cge Alkatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
US6098100A (en) * 1998-06-08 2000-08-01 Silicon Integrated Systems Corp. Method and apparatus for detecting a wake packet issued by a network device to a sleeping node
US6353845B1 (en) * 1998-06-25 2002-03-05 International Business Machines Corporation Computer system, program product and method for tracking asynchronous I/O with timeout support
US6327615B1 (en) * 1998-09-30 2001-12-04 Stmicroelectronics, Inc. Method and system of controlling transfer of data by updating descriptors in descriptor rings
US7389374B1 (en) 2000-05-17 2008-06-17 Marvell International Ltd. High latency interface between hardware components
US6871251B1 (en) * 2000-05-17 2005-03-22 Marvell International Ltd. High latency interface between hardware components
US7281065B1 (en) 2000-08-17 2007-10-09 Marvell International Ltd. Long latency interface protocol
US6647438B1 (en) * 2000-09-19 2003-11-11 Intel Corporation Direct memory access transfer reduction method and apparatus to overlay data on to scatter gather descriptors for bus-mastering I/O controllers
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US8660137B2 (en) * 2005-09-29 2014-02-25 Broadcom Israel Research, Ltd. Method and system for quality of service and congestion management for converged network interface devices
US7970963B2 (en) * 2009-06-29 2011-06-28 Oracle America, Inc. Efficient buffer management in a multi-threaded network interface
US11314566B1 (en) * 2019-09-06 2022-04-26 Facebook Technologies, Llc. Inter-process communication for microkernel operating system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4285038A (en) * 1976-10-15 1981-08-18 Tokyo Shibaura Electric Co., Ltd. Information transfer control system
US4458316A (en) * 1981-03-06 1984-07-03 International Business Machines Corporation Queuing commands in a peripheral data storage system
US4462074A (en) * 1981-11-19 1984-07-24 Codex Corporation Do loop circuit
US5097442A (en) * 1985-06-20 1992-03-17 Texas Instruments Incorporated Programmable depth first-in, first-out memory
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer
US5265228A (en) * 1989-12-05 1993-11-23 Texas Instruments Incorporated Apparatus for transfer of data units between buses
KR950008837B1 (ko) * 1990-03-09 1995-08-08 후지쓰 가부시끼가이샤 멀티 프로세서 시스템용 제어시스템
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5249271A (en) * 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
JP2836283B2 (ja) * 1991-04-11 1998-12-14 日本電気株式会社 バッファ管理方式
GB9209840D0 (en) * 1992-05-07 1992-06-24 Int Computers Ltd Data buffering mechanism
US5299313A (en) * 1992-07-28 1994-03-29 3Com Corporation Network interface with host independent buffer management
DE69428186T2 (de) * 1994-04-28 2002-03-28 Hewlett Packard Co Mehrfachsendeeinrichtung
US5592684A (en) * 1994-07-22 1997-01-07 Dell Usa, L.P. Store queue including a byte order tracking mechanism for maintaining data coherency
US5548587A (en) * 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications

Also Published As

Publication number Publication date
EP0752665B1 (en) 2001-12-05
EP0752665A1 (en) 1997-01-08
US5675829A (en) 1997-10-07
DE69617547T2 (de) 2002-07-25
DE69617547D1 (de) 2002-01-17

Similar Documents

Publication Publication Date Title
US5745790A (en) Method and apparatus for reporting the status of asynchronous data transfer
JPH09167127A (ja) ハードウェアとソフトウェアの間でのデータ転送を調整するための方法及び装置
US5745684A (en) Apparatus and method for providing a generic interface between a host system and an asynchronous transfer mode core functional block
EP0772130B1 (en) Method and apparatus for transmission and processing of virtual commands
US6145016A (en) System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
US7464197B2 (en) Distributed direct memory access for systems on chip
US5875352A (en) Method and apparatus for multiple channel direct memory access control
US6021446A (en) 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
US5633870A (en) Method and apparatus for controlling data flow through an ATM interface
US5968158A (en) Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor
US4652874A (en) Serial communication interface for a local network controller
US7729382B2 (en) Wireless computer system with queue and scheduler
US5043938A (en) Node controller for a local area network
KR20000053380A (ko) 다양한 기능 모듈 접속용 포트 매니저 제어기
KR20110113351A (ko) 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
JPS6352260A (ja) コンピュータ・ネットワーク・システム
US6516371B1 (en) Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information
EP1433071A1 (en) Bus system and bus interface for connection to a bus
US5680401A (en) Method and apparatus for asynchronously segmenting packets of multiple channels into ATM cells
JP2005504392A (ja) バス・システムおよびバス・インターフェース
US20030065735A1 (en) Method and apparatus for transferring packets via a network
JP2005504393A (ja) バス・システムおよびバス・インターフェース
US6178462B1 (en) Protocol for using a PCI interface for connecting networks
US6789144B1 (en) Apparatus and method in a network interface device for determining data availability in a random access memory
JPS6298444A (ja) デ−タ通信方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070306