JPH08506674A - ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ - Google Patents

ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ

Info

Publication number
JPH08506674A
JPH08506674A JP6518024A JP51802494A JPH08506674A JP H08506674 A JPH08506674 A JP H08506674A JP 6518024 A JP6518024 A JP 6518024A JP 51802494 A JP51802494 A JP 51802494A JP H08506674 A JPH08506674 A JP H08506674A
Authority
JP
Japan
Prior art keywords
host
interrupt
transmission
instruction
register
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
JP6518024A
Other languages
English (en)
Inventor
スコット アンドリュー エメリー
ブライアン ピーターセン
ダブリュー ポール シェラー
Original Assignee
3コム コーポレイション
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21755544&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH08506674(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 3コム コーポレイション filed Critical 3コム コーポレイション
Publication of JPH08506674A publication Critical patent/JPH08506674A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

(57)【要約】 ネットワーク・アダプタ(3)により生成され、非同期イベントを表す指示および割込み信号が、ホスト・システム(1)により管理される。ネットワーク・アダプタ(3)は、第1マスク・ロジック(10)を有し、第1マスク・ロジック(10)は、指示信号が、第1マスク・レジスタ(10)へのホストによる書込みによって第1メモリ・ロケーション(10a−c)に記憶されるのを選択的にディスエーブルとする。第1メモリ・ロケーション(10a−c)に接続される第2マスク・ロジックは、指示信号が、2つのレベルの状態情報を作成する第2メモリ・ロケーション(10a−c)に記憶されるのを選択的にディスエーブルとする。指示信号は、第2マスク・レジスタへのホストの書込みに応答して第2メモリ・ロケーション(10a−c)に記憶されるのをディスエーブルとされる。第1メモリ・ロケーション(10a−c)は、ホスト(1)により読み取られ、割込みサービス・ルーチン実行中にネットワーク・イベントが生じたかどうかを判定し、割込み手段(10)は、第2メモリ・ロケーション(10a−c)の値に応答して、割込み信号をホスト(1)に発生させる。制御の第3レベルは内部カウンタにより提供され、その内部カウンタは、ホスト・ドライバ・サブルーチン中の明示的なコマンドとともに、またはコマンドなしで複数回の指示および割込みを自動的にイネーブルとし及び/又はディスエーブルとすることができる。

Description

【発明の詳細な説明】 ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ 発明の背景 発明の分野 本発明は、ネットワーク・アダプタのアーキテクチャに関し、特にホストシス テムに対する指示信号及び/又は割込み信号の管理に関する。関連技術の説明 通信ネットワークとホスト・コンピュータ・システム間のデータ転送に関する ネットワーク・アダプタは、代表的にはホスト・システムに非同期イベントを通 知しなければならない。多くの状況において、ホスト・プロセッサは、これらの 非同期イベントに基づいて、何らかの動作をとらなければならない。例えば、ネ ットワーク・アダプタがデータ・フレームを受信し始めたならば、ホスト・プロ セッサは、いつ全データフレームが受信されたか知ることを要求できる。更に、 ホストプロセッサは、ネットワーク・アダプタ・バッファメモリからホスト・コ ンピュータ・システムへのデータ・フレームの転送完了の通知を要求できる。 同様に、伝送パスに関して言えば、ホストプロセッサは、ネットワーク・アダ プタ・バッファメモリから通信ネットワークへの伝送が完了したことの通知と同 様に、ホストシステムからネットワーク・アダプタ・バッファメモリへのダウン ロードの完了の通知を要求できる。 National Semiconductor DP83932B,システム指向ネットワーク・インタフェ ース・コントローラ(SONIC)およびIntel 82586ローカル・エリア・ネットワー ク(LAN)のコプロセッサのような関連技術システムにおいては、割込みが、 ネットワーク・アダプタにより、非同期イベントを信号で送るホストプロセッサ に発生される。ホスト・プロセッサは、適当なネットワーク・アダプタの状態レ ジスタを検査することによって割込みの原因を判定し、割込みサービスルーチン における適当な動作をとらなければならない。 例えば、ホストドライバが、ネットワーク・アダプタの状態レジスタからデー タフレームの受信を判定すると、ホスト・ドライバはフレーム・レセプション・ サブルーチンを呼び出す。しかしながら、一旦サブルーチンが呼び出されると、 ほとんどのホスト・ドライバのフレーム・レセプション・サブルーチンは、再び 呼び出されることができず、または再び入り込むことができなくなる。そのため に、ホスト・ドライバにフレーム・レセプション・サブルーチンを呼び出させる 割込みは、少なくともフレーム・レセプション・サブルーチン実行中はディスエ ーブルされなければならない。 従来のネットワーク・アダプタは、マスク・レジスタをマスク割込みに使用す ることによって割込みをディスエーブルするが、割込みのマスキングは、最初の 非同期イベントにより発生された割込みサービス・ルーチン実行中に第2の非同 期イベントが生じたことを、ホストが知ることを妨げる。割込みが、割込みサー ビス・ルーチンにおける任意の時間で望ましくないものであっても、ホスト・ド ライバは第2のイベント発生の指示信号を要求することができ、ただ一つの割込 みサービス・ルーチンにおいて第2のイベントをサービスする。例えば、割込み がフレーム・レセプション・サブルーチン実行中にディスエーブルされる一方で 、フレーム・レセプション・サブルーチンを出た後であって、ホストドライバが 割込みサービス・ルーチンを出る前に第2フレームが受信されたことを知ること ができたならば、ホスト・ドライバは、フレーム・レセプション・サブルーチン 実行中に受信された第2フレームをサービスできる。それにもかかわらず、本シ ステムは、割込みを発生する状態情報の一つのレベルを提供するのみである。状 態情報の単一のレベルは、一つの割込みサービス・ルーチン実行中に、ホスト/ ネットワーク・アダプタ性能を減じるホストへの更なる割込みを生じさせる非同 期イベントが生じたことを、ホストが知ることができなくする。 更に、ホスト・サブルーチンは、割込みのディスエーブルを要求する別のホス ト・サブルーチンを読み出している間に、割込みのディスエーブルを要求できる 。例えば、ネットワーク・アダプタがネットワーク間でネットワーク・アダプタ ・ヘルス状態信号を送信しなければならない時に、割込みのディスエーブルを要 求するフレーム転送サブルーチンにおいて、ホスト・プロセッサは、データをネ ットワーク・アダプタに転送することが可能である。ホスト・プロセッサは、割 込 みのディスエーブルを必要とするフレーム転送サブルーチン内で、ヘルス状態サ ブルーチンを呼び出さなければならない。明示ソフトウェア・コマンドによりサ ブルーチンを出る時に、ヘルス状態サブルーチンが単純に割込みをイネーブルす ると、割込みはフレーム転送サブルーチンにおいて生じさせられる。そのために 、ネットワーク・アダプタがイネーブルおよびディスエーブル・コマンドの回数 を数えることを可能にするというよりは、様々なサブルーチン実行中に割込みを ディスエーブルおよびイネーブルとするトラックを保持する追加的なホスト・ソ フトウェアが必要とされる。 そのために、指示信号および割込み信号を管理するネットワーク・アダプタを 提供することが望ましく、ホストシステムは、非同期イベントの、いずれの割込 み信号およびいずれの指示信号が任意の時間でホストに発生させられるか選択で きる。更に、明示の付加的なホスト・ソフトウェア・コマンドを伴うか伴わない かして、ホスト・サブルーチンにおいて自動的に割込みをディスエーブルし及び /又はイネーブルにするネットワーク・アダプタが望ましい。 発明の要約 本発明は、イベントを表す指示信号および割込み信号を管理する装置をホスト に提供する。該装置は、状態情報の階層をホストに生成する第1および第2マス ク・ロジックを含む。第1マスク・ロジックは、イベントを表す指示信号が、ホ ストによる第1マスク・メモリ・ロケーションへの書込みに応答する第1メモリ ・ロケーションに記憶されるのをディスエーブルする。第2マスク・ロジックは 、第1メモリ・ロケーションに接続され、指示信号が、ホストによる第2マスク ・メモリ・ロケーションへの書込みに応答する第2メモリ・ロケーションに記憶 されるのをディスエーブルする。両方のメモリ・ロケーションが、状態情報の階 層を生成する割込みサービス・ルーチンの実行中に、ホストにより読み込まれる ことが可能であるが、第2メモリ・ロケーションにおける値のみが割込み信号を 発生する。 本発明の別の態様に従うと、ネットワーク・アダプタは、ホスト・ソフトウェ ア・サブルーチンを有するホスト・プロセッサを備えたホストに非同期イベント を示す複数の指示信号を管理する。ネットワーク・アダプタは、複数の指示信号 のサブセットをディスエーブルするカウンター・マスク・ロジックを含む。カウ ンター・マスク・ロジックは、カウンター・マスク・レジスタを備え、カウンタ ー・マスク・レジスタは、カウンター・マスク・レジスタに書き込むホスト・プ ロセッサに応答して指示信号サブセットを選択的にディスエーブルする。指示マ スク・ロジックは、カウンター・マスク・ロジックに接続され、ホスト・プロセ ッサによる指示レジスタ・マスクへの書込みに応答して個々の指示信号を選択的 にディスエーブルする。指示メモリ・ロケーションは、非同期イベントを表す指 示値を記憶する指示マスク・ロジックに接続される。割込みマスク・ロジックは 、指示メモリ・ロケーションに接続され、指示値が、状態情報の第2レベルを発 生する割込みマスク・レジスタへのホスト・プロセッサによる書込みに応答する 割込みメモリ・ロケーションに記憶されるのを選択的にディスエーブルする。割 込みメモリ・ロケーションは、割込みマスク・ロジックに接続され、割込みメモ リ・ロケーションにおいて割込み値に応答する割込みを発生する割込み手段を伴 って、非同期イベントの指示を表す割込み値を記憶する。 最終的に、本発明の別の態様に従うと、カウンター・マスク・ロジックは、カ ウンター値を有するレジスタを含み、かつ、レジスタにおいてホスト・ソフトウ ェア・サブルーチンに応答してカウンター値をインクリメントしかつデクリメン トする手段を含む。複数の指示信号サブセットをディスエーブルし又はイネーブ ルする手段はレジスタにおけるカウンター値に応答して、ホスト・プロセッサが 、明示のソフトウェア・コマンドを伴って又は伴わずに指示信号サブセットをデ ィスエーブルし又はイネーブルすることを可能にする。 本発明の別の態様および利点は、図面を参照し、以下の詳細な説明および請求 項を参酌することによって、当業者が見いだすことが可能である。 図面の簡単な説明 図1は、本発明によるネットワーク・アダプタ構成を示す。 図2は、本発明による指示信号および割込み信号を管理するための割込みロジ ックおよび指示ロジックを備えたネットワーク・アダプタの機能ブロック・ダイ アグラムである。 図3は、本発明によるネットワーク・インタフェース・アダプタのブロックダ イアグラムである。 図4は、図3に示されたインタフェース・コントローラ・チップの機能ブロッ クダイアグラムである。 図5は、本発明に従って、ホストメモリ空間からアダプタ・メモリを通じてネ ットワークへのデータ・フローを示した図式ダイアグラムである。 図6は、本発明のデータ伝送用ホスト・システム・アドレス空間のマップであ る。 図7は、ホスト・システム・アドレス空間から独立したアダプタ・メモリのメ モリ・マップである。 図8(a)−(b)は、本発明の一態様である伝送および転送記述子データ構 造体を示す。 図9は、本発明において伝送動作に用いられる伝送記述子リング・バッファお よび転送データバッファ、およびポインタを示す。 図10(a)−(e)は、伝送記述子リングバッファおよび伝送データバッフ ァ用ポインタの管理を図式的に例示したものである。 図11は、受信リング・バッファと転送記述子バッファの動作と、これらのバ ッファを管理するホスト・インタフェース、およびネットワーク・インタフェー スが生成するポインタについての発見的ダイアグラムである。 図12は、指示信号、割込み信号およびそれらのマスクの間の関係を示す。 図13は、図4に示される割込みコントローラ60にアクセスする信号がどの ように発生されるかを図式的に示す。 図14は、割込みコントローラに書き込むための信号がどのように発生される かを図式的に示す。 図15は、割込みコントローラ・レジスタの選択用コードのテーブルを示す。 図16は、割込みコントローラ・レジスタの書込みストローブがどのように発 生されるかを図式的に示す。 図17は、指示マスク・レジスタおよび割込みマスク・レジスタを示す。 図18は、割込みが要求された時に、識別信号がどのように発生されるかを図 式的に示す。 図19は、受信終了(RCV DONE)レジスタへの書込みの識別信号がどのように 発生されるかを図式的に示す。 図20は、受信指示(RCV INDICATE)レジスタ信号の発生を図式的に示す。 図21は、指示カウンタがゼロの時、識別信号がどのように発生されるかを図 式的に示す。 図22は、別の指示信号および別の割込み信号の発生を図式的に示す。 図23は、指示理由信号および割込み理由信号の発生を図式的に示す。 図24は、割込み信号が発生される時を示す。 図25は、割込みレベル信号の発生を図式的に示す。 図26は、割込みコントローラレジスタがどのように読み込まれるかを図式的 に示す。 図27は、割込みコントローラからの読込みがどのように遅延するかを図式的 に示す。 図28は、割込みリクエスト(INTERRUPT REQUEST)レジスタが読み込まれる 時の識別信号の発生図式的に示す。 図29は、本発明による指示カウンタを図式的に示す。 好適な実施例の説明 図を参照しながら、本発明の好適な実施例を詳細に説明する。図1から4まで が、本発明によりインプリメントされる代表的なシステムを示す。図5から11 までが、本発明の好適な実施例におけるデータ構成(organization)およびデー タフローを示す。図12から29までが、ホストへの指示信号および割込み信号 を管理する割込みロジックおよび指示ロジックを示す。 図1は、本発明によるネットワーク・アダプタ構成を示す。割込みおよび指示 ロジック10を備えたネットワーク・アダプタ3は、ネットワーク2とホスト・ システム1に接続される。ネットワーク・アダプタ3は、ネットワーク2とホス ト・システム1との間でのデータフレームの転送に係わる。好適な実施例におい ては、ネットワーク2は、イーサネット・ネットワークである。ホスト・システ ムは、EISAバスなどのホスト・バス4を含んでいる。ホスト・システム・バ ス4は、ホスト・システムのアドレス空間を定義するアドレス・ラインを含んで いる。代表的には、EISAバスの場合で、32のアドレス・ラインが用いられ 、これによっておよそ4ギガバイトのホスト・システムのアドレス空間が確保さ れる。さらに、ホスト・システムは、ホスト・バス4に接続されたホスト・メモ リ6、ホスト・プロセッサ5、およびその他のホスト・デバイス7を含んでいる 。代表的には、ホスト・バス4上のネットワーク・アダプタ3などのデバイスは 、ホスト・バス4を介して割込みを発生することによって、ホスト・プロセッサ 5からのサービスをリクエストする。すると、ホスト・プロセッサ5は、そのシ ステム・パラメータを保存して、どのデバイスが割込みを発生したか、また、ど のようなサービスが要求されているかの判定を行う。ホスト・プロセッサ5の割 込みサービス・ルーチン中に、ホスト・プロセッサ5は、ネットワーク・アダプ タ3における状態レジスタを検査し、何が割込みを発生させたか、また、他の転 送イベントが生じているかどうかを判定する。それから、ホスト・プロセッサ5 は、ネットワーク・アダプタ3の状態レジスタに基づいて、適当な動作をとる。 ネットワーク・アダプタ3の割込みおよび指示ロジック10は、割込みが発生 する時期、また、ホスト・プロセッサに指示するデータ転送イベントをホスト・ システムが変更できるように設計される。割込みおよび指示ロジックは、ホスト により変更される三つのマスクを含んでいる。第1マスクすなわち指示カウンタ マスクは、ネットワーク・アダプタにより発生され且つネットワーク・アダプタ 非同期イベントを指示する指示信号のサブセットを選択的にディスエーブルする 。第2マスクは、個々の指示信号を選択的にディスエーブルし、第3マスクは、 割込み信号の発生を選択的にディスエーブルする。 図2は、割込みおよび指示ロジック10を備えたネットワーク・アダプタ3の 機能ブロック図であり、いろいろな転送パスを示したものである。ネットワーク ・アダプタ3は、ネットワーク2を介してフレームの伝送および受信を行うトラ ンシーバ12を有している。ネットワーク・インタフェース・ロジック11は、 ネットワーク・バッファ9とトランシーバ12との間でのデータフレームの転送 を 行うためのものである。同様に、ネットワーク・アダプタ3は、ネットワーク・ バッファ9およびホストシステム1との間でのデータフレームの転送を行うため のホスト・インタフェースロジック8を有している。割込みおよび指示ロジック 10は、選択的に指示および割込みをディスエーブルするためのマスク値を含む マスク・メモリ・ロケーション10a−cを有する。マスク・メモリ・ロケーシ ョン10a−cは、マスク構成を変更するホストにより、そこに書き込まれるこ とができる。ホスト・プロセッサによる明示ソフトウェア・コマンドが、マスク ・メモリ・ロケーション10aに内部カウンタマスクを再構成することができる が、指示および割込みロジック10が、内部カウンタマスクへの明示ホスト・プ ロセッサの書込みなしで、内部カウンタマスクの自動再構成を提供する。マスク 値を順に変更することにより、ホスト・システムへの指示および割込みを選択的 にディスエーブルまたはイネーブルする。 マスク・メモリ・ロケーション10a−cに加えて、指示および割込みロジッ ク10は、マスクにより選択的にディスエーブルされなかった指示および割込み 値を記憶する四つのメモリ・ロケーション(図示せず)を含む。四つのメモリ・ ロケーションは、ホスト・プロセッサにより読み取られることができ、ネットワ ーク・アダプタ・イベントの発生を判定する。第1および第2メモリ・ロケーシ ョンは、ネットワーク・アダプタ・イベントの指示を表す値を含むが、第3およ び第4メモリ・ロケーションは、ネットワーク・アダプタ・イベントを表す割込 み値を含み、発生されるべき割込みの原因となる。 I.システムの概観 図3は、本発明のネットワーク・インタフェース・アダプタを有するホスト・ システムの概略図である。ネットワーク・インタフェース・コントローラは、ネ ットワーク・インタフェース・プロセッサ14を含んでおり、これは一つの好適 なシステムにおいては、当該技術において知られているベリログ・デザイン・ツ ールを用いて、以下にその概略を説明する機能を特定用途集積回路として実現し たものである。なお、ベリログ・デザイン・ツールは、カリフォルニア、サンノ ゼのキャデンス社から入手可能である。ネットワーク・インタフェース・プロセ ッサ14は、適当なバッファを介してバス2に接続される。また、ネットワーク ・インタフェース・プロセッサ14は、ランダムアクセス・メモリ15、BIO S ROM16、およびINFO EEPROM17、テスト・ポート18、エ ンコード/デコード・チップ19および、ネットワーク・トランシーバ20にも 接続されている。ネットワーク・トランシーバ20は、ネットワーク媒体に接続 されている。 主要な機能は、ネットワーク・インタフェース・プロセッサ14において具現 される。好適な実施例においては、バス2を介してホスト・システムがアクセス することが可能な全てのレジスタは、プロセッサ14か、あるいはRAM15の どちらかに存在する。もし、RAM15に存在する場合には、そのアクセスはネ ットワーク・インタフェース・プロセッサ14によって管理される。 RAM15は、ネットワーク・インタフェース・コントローラにとって主要な 資源である。この資源によって、ネットワーク・インタフェースの伝送および受 信動作に用いられる、ホスト・アドレス空間外のバッファメモリが提供される。 このRAMに関するオーガナイゼーションおよび利用について、以下に詳細に説 明する。 BIOS ROM16は、初期化の際に、ホスト・システムの基本的な入出力 コードをネットワーク・インタフェース・プロセッサ14を介して拡張するもの である。BIOS ROM16に対するアドレスおよびBIOS ROM16か らのデータは、それぞれバス21および22を介して、ネットワーク・インタフ ェース・プロセッサ14に接続される。なお、これらのバス21および22は、 RAM15によっても共用使用される。 INFO EEPROM17は、ドライバソフトウェア、診断ソフトウェア、 ネットワーク管理ソフトウェアによって用いられるアダプタ特有の重要データを 記憶する。なお、このデータの記憶は、製造工程中において行われる。インタフ ェース・コントローラの初期化の際に、EEPROM17の内容がRAM15の 所定の領域にロードされ、これが動作中において用いられる。 インタフェース・プロセッサ14には、ナショナルセミコンダクタ8391マ ンチェスタ・エンコード/デコード・チップなどのエンコード/デコード・チッ プ19が接続されている。AUIコネクタに接続された信号は、ボード外部のト ランシーバを用いることを可能とする。 好適なシステムにおいては、トランシーバ20は、細型イーサネット(同軸/ BNC)トランシーバ、または10BaseT(3/RJ−45型)トランシー バのいずれかで構成される。トランシーバ20に対する制御信号は、ネットワー ク・インタフェース・コントローラ14で、エンコーダ/デコーダ・チップ14 の変換ロジックを用いて生成される。 好適なシステムにおいては、製造および検査において用いるためのテストポー ト18が具備されている。 II.コントローラ機能ユニット 図4は、図3のネットワーク・インタフェース・プロセッサ14についての機 能ブロックとデータパスとからなるブロック図である。実際には、図示されてい る以外にもいろいろなデータフローのパスの制御に係わる多数の接続がなされて いる。図には、インタフェースとしてRAMインタフェース50、ホスト・バス ・インタフェース51、およびトランシーバ・インタフェース52が示されてい る。バス・インタフェース51はEISAバスのためにインプリメントされ、バ ス上のマスターあるいはスレーブとして所定の時に動作を行う。次に、図4に示 したインプリメンテーションにおける各機能ユニットについて説明する。 A.EISAスレーブ・インタフェース54 EISAスレーブ・インタフェース54は、ネットワーク・インタフェース・ コントローラによって管理されるレジスタおよびバッファにアクセスするための EISAホスト・バスのパスを提供する。このモジュールには、コントローラの 構成レジスタが含まれており、EISAバスのルーチング信号の粗コード化を行 う。EISAスレーブ・インタフェースは、コントローラ中に分布している個々 のレジスタのアドレス指定に対するインタープリットは全く行わない。 動作中に、EISAスレーブ・インタフェースは、連続的にEISAアドレス ・バスをモニターし、構成レジスタ、メモリ・マップ・ネットワーク・レジスタ あるいはアダプタのBIOS ROMがいつアクセスされたかの判定を行う。 さらに、EISAバスがメモリ・スレーブ・サイクルを開始する度ごとに、E ISAスレーブ・インタフェースは、サイクル・アービタ56に対して、サイク ル・リクエストをポストする。このサイクルアービタは、リクエストが許可され るまでの間、ホストシステムを待ち状態とする。 EISAスレーブ・インタフェースは、ネットワーク・コントローラの残りに 汎用32ビット・バス・インタフェースを提供する。このインタフエースは汎用 的な特質を有しているので、チップの他の部分の再設計を行うことなしにマイク ロチャネルなどの他の種類のバスに対して容易に設計を適合させることが可能で ある。 EISAアドレス・バスのビット14−2は、ラッチされて、他のモジュール を通過していく。アドレスの最下位の2ビットは4バイト・イネーブルによって 表され、これはデータ転送サイクル全体を通して有効である。8ビット・バイト からなる四つのレーンによってスレーブ・データ・チャネルが構成される。好適 なシステムにおいては、データ・バスは実際には一対の単方向バスからなってお り、そのうちの一つが書込み用として、他方が読み取り用として用いられる。デ ータ書込みバスは、スレーブ・インタフェースを介してEISAデータ・バスへ の接続を必要とするすべてのモジュールに対して多重引込みの形で結線される。 読み取りバスは、多重化され、RAMインタフェース・モジュール50中にマス クされる。EISAバスからの書込みリクエストは、サイクル・アービタ56に より確認されるまで保留できる。あるサイクルが保持されているとき、アダプタ へのそのサイクルが終了する間、EISAバスを待機状態から解放することがで きる。第1のサイクルがまだ保留中となっている時に、第2のサイクルがEIS Aバスから発生されると、保留中の書込みが実行されるまでEISAバスの解放 は延期される。この特定の実施例においては、EISA読み取りのパイプライン 方式による実行はサポートされていない。 また、EISAスレーブ・インタフェースは、EEPROM17へのインタフ ェースも提供する。このインタフェースは、EEPROM17の内容を、リセッ トした後にアダプタ・メモリに転送するように動作する。 EISAスレーブ・インタフェース・モジュール54は、主にEISAバス仕 様に整合するアダプタ構成と関連する多数のレジスタを有している。これらのレ ジスタは、アダプタのメモリ・バス・アドレスおよび割込みレベルのセットアッ プ、トランシーバのタイプの選択、BIOS ROMのイネーブルなどを行うの に用いられる。また、構成レジスタによって、ホストが明確にアダプタのタイプ を識別し、そのアダプタを全体的にディスエーブルとする手段が提供される。 B.EISAマスター・インタフェース55 EISAマスター・インタフェース55は、アップロードDMA57およびダ ウンロードDMA58からのEISAバスを介してのバスマスター動作実行リク エストを処理するためのものである。好適な実施例のDMA動作において用いら れるバースト転送の実行においては、EISAバスは読み取りと書込みとを混合 して実行することを許容しないので、EISAマスター・インタフェース55は 、自発的に保留中のアップロードとダウンロードリクエストとの間での仲裁調停 を行う。 バス・マスター転送は、アップロードDMA57か、あるいはダウンロードD MA58かのいずれかによって必ず開始される。この転送は、転送が終了したと きにいずれかのDMAモジュールによって、あるいは、EISAバス上の他の任 意のデバイス優先使用のためにEISAマスター・インタフェースによって中断 させることができる。 このように、EISAマスター・インタフェース55の機能は、アップロード DMA57、あるいはダウンロードDMA58のいずれか、あるいはこれらの両 方の転送リクエストが保留されているときに、EISAバスへのアクセスに対し て仲裁調停を行うことである。EISAマスター・インタフェース55は、バス 上のアドレス・スレーブを用いて第1の転送を行うのに必要な信号の発信を行う 。これによって、EISAバス定義に従った動作が保証される。 また、このモジュールはアダプタモードロジック59によってイネーブルとな されたときには、リアルモード・セグメントの変換、すなわち、オフセット・ア ドレスの20ビット線形アドレスへの変換も行う。 C.マスター/スレーブ・ユニオン・モジュール53 マスター/スレーブ・ユニオン・モジュール53は、EISAマスター・イン タフェース55とEISAスレーブ・インタフェース54とがEISAバスへの 接続を共用することを可能とするためのものである。このユニオン・モジュール 53は、主に一連の2:1マルチプレクサによって構成されている。 D.割込みコントローラ・モジュール60 また、コントローラには、割込みコントローラ・モジュール60が含まれてい る。割込みコントローラ・モジュール60は、いろいろな割込みの実行と、マス キングおよびイネーブル/ディスエーブル機構を含む指示機能をインプリメント する。割込み信号はコントローラ内部のいろいろなモジュールから発生されて、 割込みコントローラ・モジュール60まで送られてくる。すると、割込みコント ローラ・モジュール60は、OR動作を実行し、その結果をホスト・バスに送る 前に、この割込み信号を各種のイネーブルおよびマスクを通過させる。 割込みコントローラ・モジュール60は、割込みが価値のあるイベントである かどうかの検出や、ホストへの割込みの承認を行うわけではない。割込みコント ローラ・モジュール60は、割込み処理機能に用いられる多数のASICに常駐 するレジスタを含んでいる。 E.アダプタ・モード・モジュール59 アダプタ・モード・モジュール59は、コントローラのいろいろな基本動作モ ードの設定と、コントローラのいろいろな状態の状態レポートを含む多くの機能 を提供する。また、アダプタ・モジュール59は、ホスト・システムが診断に用 いるウィンドウ・レジスタのベース・アドレスの設定も行う。更に、アダプタ・ モード・モジュール59は、アダプタのリセット機能も行う。また、このモジュ ールは、コントローラ内部のいろいろなモジュールおよびホスト・システムとの 通信のために、デバイスによりインプリメントされる媒体アクセス・コントロー ラを識別する媒体アクセス・コントローラ識別レジスタを提供する。 F.サイクル・アービタ・モジュール56 サイクル・アービタ・モジュール56は、アダプタのRAMに常駐するレジス タおよびASICに常駐するレジスタに対するアクセスを、RAMインタフェー ス50を介していろいろなリクエスタの間に配分するためのものである。これに よって、モジュールは優先順によるオーバランあるいはアンダーランに悩まされ ることなしにRAMに対してタイミングよくアクセスすることが可能となる。 G.マルチキャスト・コンパレータ・モジュール61 図4に示されているコントローラには、マルチキャスト・コンパレータ・モジ ュール61が含まれている。マルチキャスト・コンパレータ・モジュール61は 、アダプタ・モード・モジュール59によってイネーブルにされると、受信した フレームの宛先アドレス・フィールドとマルチキャスト・アドレス・テーブルの 内容とをビットごとに比較する。マルチキャスト・アドレス・テーブルがホスト に作成されて、RAM15に記憶される。この比較において、個々のアドレスに もまたブロードキャスト・アドレスにも一致が見いだされない場合には、入力フ レームは棄却される。 このようにして、マルチキャスト・コンパレータ・モジュール61は、イーサ ネット受信モジュール62と受信DMAモジュール63のアクティビティをモニ ターし、いつ新しいフレームが受信されるかの判定を行う。イーサネット・レシ ーバ62により受信され、レシーバのパラレル・インタフェース64で提示され た各バイトは、マルチキャスト・コンパレータ・モジュール61によってシャド ーされる。次いで、これらのバイトは、マルチキャスト・コンパレータ61によ りアクセス可能なマルチキャスト・アドレス・テーブルの中の妥当なエントリー に対して比較される。 マルチキャスト・コンパレータ61は、マルチキャスト・アドレス・テーブル の内容を作成したり、あるいは維持を行ったりすることはない。しかし、モジュ ールは、ホストのテーブルへのアクセスを検出し、RAMインタフェース・モジ ュール50に対して適当なリダイレクション・オフセットを供給する。 H.統計量コントローラ・モジュール65 また、好適なシステムは、統計量コントローラ・モジュール65を具備してい る。このモジュールは、コントローラ内部の他のいろいろなモジュール、特にイ ーサネット・トランスミッタ・モジュール66と、イーサネット受信モジュール 62のアクティビティをモニタし、適当なイベントが発生する度に、RAM15 中に保持されている統計量の更新を行う。 I.ダウンロードDMAモジュール58 ダウンロードDMAモジュール58は、データをホスト・システムからアダプ タ・メモリヘバス・マスター・ダウンロードするリクエストを発するためのもの である。次に、このデータは、アダプタのオンボード伝送データ・バッファ内に 保管され、直ちに伝送されるか、あるいは後に伝送が行われる。 以下に説明するように、バッファ記述子が定義され、伝送データ・バッファの 一つが利用可能となると、直ちに、ダウンロードDMAモジュールはEISAマ スター・インタフェース55へのダウンロード・バス・マスター動作リクエスト を受け入れる。ダウンロードDMAモジュール58は、ホストおよびアダプタの それぞれの開始アドレスによって暗示されている通りにデータを整列するために 必要とされる所望のパックとアンパックとを含むバイト整列を実行する。 また、ダウンロードDMAモジュール58は、アダプタのRAM内部に伝送記 述子リング・バッファを維持するためのロジックを含んでいる。ダウンロードD MAモジュール58は、ダウンロード動作の終了を指示するための適当な割込み を適当なモードで発生する。また、ダウンロードDMAモジュール58は伝送D MAモジュール67に、いつ伝送を開始すべきかを伝える。ダウンロードDMA 動作に必要となるいろいろなレジスタについて、以下に詳細に説明するが、これ らのレジスタは、本発明のデータのバッファリング処理の直接に必要となるもの である。 J.伝送DMAモジュール67 伝送DMAモジュール67は、ダウンロードDMAロジック58により指示さ れたとき、以下に説明するように、伝送記述子バッファ、あるいは伝送データ・ バッファ、あるいはこれらの両方からのバイトをフェッチする。さらに、フェッ チされたバイトは、順次イーサネット・トランスミッタ・モジュール66に供給 される。 こうして、伝送DMAモジュール67は、伝送記述子リング・バッファの内容 を読み取って、即値データのエクステントと伝送すべきフレーム全体の長さを判 定する。もし、指定されたフレームがネットワーク仕様と合わない場合、例えば 、802.3の最小値よりも短く、かつ、アダプタがそのようにイネーブルされてい るような場合には、このモジュールは、無定義のデータ・バイトを、パッディン グとしてイーサネット・トランスミッタ・モジュール66にさらに供給する。 CSMA/CDネットワークにおける衝突再試行は、伝送DMAモジュール6 7によって処理される。衝突がイーサネット・トランスミッタ・モジュール66 により指示された場合には、伝送DMAモジュール67はバッファ中のフレーム 記述子を再解釈することによって同じフレームの再受入れを行う。 もしイネーブルされたならば、伝送終了条件が満たされているときに、伝送終 了割込みが発生され、伝送DMAモジュール67の割込みコントローラ60によ る処理が行われる。 また、伝送が終了すると、伝送DMAモジュール67は、アダプタの伝送記述 子リング・バッファに適当なフレーム状態を記憶する。 また、伝送に利用可能なデータがショートフォールを起こすと、伝送DMAモ ジュール67は、アンダーラン条件を検出する。 伝送DMAモジュール67の動作に必要なレジスタについて再度さらに詳細に 説明する。 K.イーサネット・トランスミッタ・モジュール66 イーサネット・トランスミッタ・モジュール66は、本質的に、802.3標準の ネットワークを具現化したものである。このモジュールは、伝送DMAモジュー ル67からパラレル・データ・バイトを受け取り、802.3のアクセス規則を適用 して、シリアル・データを外部エンコーダ/デコーダ・チップに供給する。 L.イーサネット・レシーバ・モジュール62 同様に、イーサネット・レシーバ・モジュール62は、本質的に、802.3標準 のネットワークを具現化したものである。このモジュールは、外部エンコーダ/ デコーダからシリアル・データを受け取り、そのデータに対して802.3の規則を 適用し、受信DMAモジュール63の使用に供するためにパラレルの形態のデー タを生成する。このように、イーサネット・トランスミッタ66とイーサネット ・レシーバは標準CSMA/CD機能を実行する。 M.受信DMAモジュール63 受信DMAモジュール63は、伝送DMAモジュール67と相補的な動作を行 うものである。このモジュールは、イーサネット・レシーバ62からパラレル・ データ・バイトを受け取り、これをアダプタの受信リングバッファに保管する。 受信DMAモジュール63は、アダプタのRAMに記憶するのに先立って、イ ーサネット・レシーバから受け取ったバイトを32ビットワードにアセンブルす る。フレームの受信終了時点において、フレームの状態と長さが受信リング・バ ッファ内部に記憶され、ホスト・システムの使用に供される。 また、以下にさらに詳細に説明するように、受信DMAモジュール63は、ア ダプタのRMA内に受信バッファ・リングを形成してこれを保管する。さらに、 「ルック・バッファ」レジスタを配置することは、以下に説明するように、ホス トが受信データを見ることが可能となり、受信DMAモジュール63により処理 される。 また、受信DMAモジュール63は、割込み指示信号を適当な条件のもとに処 理する。 N.アップロードDMAモジュール57 アップロードDMAモジュール57は、RAMインタフェース50を介して受 信バッファからホスト・システムへのデータ転送を行う。従って、受信リング・ バッファは、受信DMAモジュール63によって管理され、またアップロードD MA57によって解釈が行われる。実バス・マスター転送は、EISAマスター ・インタフェース・モジュール55によって実行される。 アップロードDMAモジュール57は、受信DMAモジュール63によって受 信リング・バッファに記憶された、受信フレームの位置と長さを含むデータ構造 の解釈を行う。また、アップロードDMAモジュール57は、ホスト・システム が定義した転送記述子を読み取って、何バイトのフレームを転送しようとしてい るのか、およびそのフレームをホスト・メモリのどこへ転送しようとしているの かを判定する。 ホストの妥当な転送リクエストに応答して、アップロードDMAモジュール5 7は、EISAマスター・インタフェース・モジュール55からのバス・マスタ ー・サイクルを行うようにリクエストする。 また、アップロードDMAモジュール57は、受信DMAモジュール63およ びアップロードDMAモジュール57との間でインターロックを用いてホスト・ システムへの転送速度を低減し、受信DMAモジュール63を介して受信された フレームが先走ることを防ぐ。最後に、このモジュールは、転送終了を指示する 割込みを発生し、ホストの使用に供する。この処理に必要ないろいろなレジスタ について以下に説明する。 O.RAMインタフェース・モジュール50 RAMインタフェース・モジュール50は、RAMのアドレス指定を行うのに 必要となるいろいろな機能のためのマルチプレクサとマスクとを提供するもので ある。このモジュールは、いろいろなアドレスとデータ・ソースとをいっしょに 多重化して、RAMのアクセス・サイクルのための、パラメータを形成するもの である。このモジュール50は、ホスト・システムが読み取ることが可能なコン トローラのいろいろなその他のモジュールからデータを寄せ集めるものである。 さらに、このモジュールは、データにマスクを施し、用いられない上位ビットを 強制的にゼロとし、データ・ワードをラッチしてマルチサイクル読み取りを行う 。 P.JTAGモジュール 図示されていないが、コントローラには、またJTAGモジュールが含まれて いる。これは、1990年5月21日のIEEE標準1149.1−1990に定められて いる状態マシンをインプリメントしたものである。このモジュールによって、製 造中にASICのピンのスキャン・テストが可能となる。 III.伝送および受信デ−タ・フローとデータ構造 図5は、本発明のアダプタにおける発見的データフローを図示したものであり 、特にホスト・インタフェース、アダプタ・メモリ、およびネットワーク・イン タフェースについて伝送および受信におけるデータ・フローを強調して示したも のである。 先に述べたように、ホスト・システムは、ホスト・バスのアドレスによって定 義されるホスト・メモリ空間(全体を100として図示)を有している。このホ スト・メモリ空間の予め指定されたブロック101が、アダプタのインタフェー ス・アドレスのために確保される。アダプタは、ホスト・バスをアダプタ・イン タフェース・アドレス・ブロック101内へのアクセスに対して応答を行うホス ト・インタフェース・ロジック102を含んでいる。また、アダプタには、ホス トから独立したメモリ103が含まれている。ホスト・インタフェース・ロジッ クは、指定されたアドレス・ブロック101と独立メモリとの間での転送データ の操作を行う。また、アダプタは、アダプタ・メモリに接続されているネットワ ーク・インタフェース・ロジック104を含んでいる。ネットワーク・インタフ エース・ロジックは、独立メモリ103中のバッファおよびネットワーク・トラ ンシーバ12からのデータ転送の管理を行う。ネットワーク・トランシーバ12 は、データをネットワーク媒体106に対して供給する。 ホスト・インタフェース・ロジックは、伝送処理において用いられる伝送記述 子ロジックとダウンロードDMAロジック(全体を107として図示)、および 受信処理において用いられるビュー・ロジック、転送記述子ロジック、およびア ップロードDMAロジック(全体を108として図示)を有している。基本的に は、これらのモジュールは、ホスト・システムがアダプタ・インタフェース・ア ドレス・ブロック101へ行う書込みに応答して、独立メモリ103とホストと の間のデータ通信の管理を行うものである。これによって、ホストは、伝送およ び受信動作におけるアドレスの翻訳とバッファの管理動作とから全く解放される 。 ネットワーク・インタフェース・ロジック104は、伝送DMAロジック(全 体を109として図示)と受信DMAロジック(全体を110として図示)を有 している。伝送DMAロジック109は、以下に説明するようにアダプタ・メモ リ103に記憶されている記述子に応じて、データを独立アダプタ・メモリ10 3から取り出して、ネットワーク・トランシーバ12に移動させる。同様に、受 信DMAロジック110は、データをトランシーバ12から独立アダプタ・メモ リ103中に移動させる。このように、ネットワーク媒体106からの全てのデ ータ通信は、ホストから独立したメモリ103に直接的に結合される。次に、ホ スト独立メモリ103からの通信は、ホスト・メモリ空間のメモリ・マップ領域 に応じて、ホスト・インタフェース・ロジック102によって制御され、これに よりネットワークとの通信に必要なプロトコル・ソフトウェアが非常に簡略化さ れる。 図6は、アダプタ・インタフェース・ホスト・アドレス・ブロック101のマ ップの略図である。好適なシステムでは、このブロック内のアドレスは、ホスト にとってはホストのアドレス空間の連続した8Kのブロックのメモリ・マップ・ レジスタのように見える。 EISAの実施例の場合では、ブロック101中の“レジスタ”あるいはマッ プされた領域は、倍長ワードのアドレスを境界として配置されており、従って、 アドレスは4の倍数となっている。多くの“レジスタ”が倍長ワードの数倍(5 09も大きな量の)メモリ空間を占める。 “レジスタ”は、ホスト・アドレス空間の任意のあらかじめ指定されたブロッ クにメモリ・マップされてはいるが、ホスト・システムがこれらのレジスタに対 して実行する読み取りあるいは書込みは、実際には、直接にアダプタ・メモリに 対してアクセスがなされるわけではない。メモリ・マップ空間へのアクセスは、 ホスト・システムに対してトランスペアレントなホスト・インタフェース・ロジ ック104によって翻訳されて実行される。従って、アダプタのメモリは、ホス ト・アドレス空間およびホストの管理から独立している。図5は、これらのレジ スタのアクセスに用いられるアダプタ・インタフェース・ホスト・アドレス空間 のマッピングの概略を示したものである。これらのレジスタに含まれる主要なも のとしては、0010(hex)のオフセット位置の伝送領域レジスタ(伝送領域 )、0800(hex)のオフセット位置の転送領域レジスタ(転送領域)、およ び100Cのオフセット位置のルック・バッファ(ルック・バッファ)がある。 いろいろな状態、統計量、情報、および指示レジスタが、多数、領域内に調和よ く分布している。 「伝送領域」レジスタは、ホストが伝送記述子をアダプタに書き込むのに用い られる。伝送記述子については、以下に詳細に説明するが、コンパイルされフレ ームとして伝送されるべきデータを識別するデータを含んでおり、また即値デー タを含んでもよい。0010(hex)のオフセット位置の「伝送領域」はおよそ 2Kバイトのサイズを有している。このデータは、以下に説明するように、独立 アダプタ・メモリ内の伝送記述子リングにマップされる。 アダプタ・インタフェース・ホスト・アドレス・ブロックの中の0800(he x)オフセット位置の「転送領域」は、およそ1Kバイトのバッファであり、こ れを介して転送記述子がアダプタの独立メモリに書き込まれる。100Cのオフ セット位置の「ルック・バッファ」領域はおよそ2Kバイトのバッファであり、 これによってホストの独立アダプタ・メモリ内の受信リング・バッファへのリー ド・オンリー・ウィンドウが提供される。 図7は、アダプタのホスト独立メモリのマップを示したものである。このメモ リの構成は、独立メモリ中の、オフセット0の位置のおよそ3Kの伝送データ・ バッファ、オフセット0C00(hex)の位置のおよそ5Kバイトの伝送記述子 リング、オフセット2000(hex)のおよそ22Kバイトの受信バッファ・リ ング、およびオフセット7800(hex)の位置のおよそ1Kバイトの伝送記述 子領域とからなっている。メモリの最後の3領域には、アダプタの使用に供され るアダプタ情報、ネットワーク統計量、およびマルチキャスト・アドレス・テー ブルが記憶される。 好適なシステムにおいては、アダプタは、伝送バッファ、受信バッファ、制御 構造、およびいろいろな状態レジスタと統計量レジスタのために32Kバイトの スタティックRAMを用いる。図7に定義されているアダプタのメモリの中のい くつかの領域によって定義されたデータ構造が提供される。 A.伝送データ・バッファ 上記のように、伝送データ・バッファは3Kバイトを占める。この領域は二つ の1.5Kバッファに分割される。これらのバッファは、バス・マスター転送に よってアダプタにダウンロードされるデータのみを記憶する。コントローラは、 伝送データ・バッファと伝送記述子の即値データ部分の両方の内容を用いてフレ ームをカプセル化して伝送する。アダプタは、起動時のデフォルトとしてメモリ の基底に最も近いバッファを選択し、その後は自動的にバッファの使用を変更し ていく。 伝送バッファは、ダウンロードDMAロジックおよび伝送DMAロジックとに よって共用使用される。伝送DMAロジックは、バッファ0からバッファ1に切 り換えたり、あるいは元に戻したりすることが自由にできる。唯一存在する制約 は、伝送開始スレッショルド・レジスタにより定められる伝送データの使用可能 性である。伝送DMAモジュールは、ある一つの伝送が終了したときにはいつで も、一つのバッファから他のバッファに切り換わることができる。このバッファ の切り換えは、伝送が成功したかどうかとはかかわりなく、また、前回の伝送に おいてバス・マスター・ダウンロード・データが用いられていたかどうかとはか かわりなく起こる。 ダウンロードDMAモジュールは、切り換わろうとしている相手のバッファが 伝送DMAモジュールにより用いられていない場合にのみ、あるバッファから他 方のバッファヘ切り換わることができる。ダウンロードDMAは伝送記述子の処 理を終了する度ごとに、以下に説明するように、直前の記述子中に何らかのバス ・マスター動作が呼び出されていたかどうかにかかわりなく、あるバッファから 他のバッファに切り換わろうと試みる。ただし、伝送DMAモジュールが使用中 のバッファには切り換わらない。 B.伝送記述子 伝送記述子は、伝送を保留しているフレームを定義し、また伝送されたフレー ムの状態を保持するものである。これらの記述子は可変長であり、上記のように 5Kバイト・リング・バッファに連続的に配置される。記述子の最初のエントリ は、倍長ワードを境界として整列されなければならない。図8aに伝送記述子の データ構造を示す。 伝送記述子領域のエントリの全体の内容は、ホスト・プロセッサから図6に示 されている「伝送領域」を介して供給されるデータをそのまま丸ごとコピーした ものである。しかし、「伝送プロトコル識別子」と「伝送フレーム状態」レジス タのフォーマットの要求に応じるため、またフレーム伝送とバッファ管理に関す る十分な情報を供給するために、一つの値を再配置し、また、いくつかを自動的 に保存することが必要である。 ホスト・プロセッサの「伝送領域」への書込みは、最初に書き込まれる値−− すなわち「伝送プロトコル識別子」と「伝送リクエスト処理」−−がリング内の 次に利用可能なデータ構造の5番目の32ビット・ワードの位置(10(hex) のオフセット位置)で終わるように、アダプタによって自動的にオフセットがか けられる。これは、「伝送リクエスト処理」の値が「媒体アクセス・コントロー ラ識別子」の値に予約されている位置にホストによって書き込まれることを意味 している。「伝送リクエスト処理」の値がアダプタのRAMに書き込まれると、 アダプタは直ちに、5番目の32ビット・ワード・ロケーションの最下位ビット の内容を、4番目の32ビット・ワード・ロケーションの最上位16ビットにコ ピーする必要がある。「伝送リクエスト処理」のコピーを行った後に、アダプタ は「媒体アクセス・コントローラ識別子」の値を「媒体アクセス・コントローラ 識別子」レジスタから検索して、これを「伝送リクエスト処理」によって空けら れたロケーションに書き込む。フレームの伝送が終了した後に、4番目の32ビ ット・ロケーション(C(hex)のオフセット値)の最下位16ビットが伝送フ レーム状態に置き換えられる。 「次の記述子ポインタ」のエントリは、「伝送バッファ・カウント」と「伝送 即値長さ」の値がアダプタに書き込まれた後の任意の時刻に、アダプタによって 更新することができる。「伝送領域」レジスタに書き込まれるデータは正確な順 序で正しい位置に書き込まれるようになされるので、これらの二つの値の書込み は容易に検出することが可能であり、これらを用いて、値をRAMから検索する 必要なしに、次の記述子の開始の判定に必要とされる記述子のサイズを算出する ことができる。 最後に、「伝送データ長さ」の値がアダプタに書き込まれてしまえば、フレー ムの長さを算出して、これをデータ構造の「フレーム長さ」の位置に保管するこ とが可能である。また、この値は、ホストが直ちに使用できるように、コントロ ーラ・チップの内部の「伝送フレーム長さ」レジスタにコピーされる。 以下のいくつかのパラグラフにおいて、伝送記述子データ構造の各フィールド について定義する。 「次の記述子ポインタ」の値は、次の記述子の最初のワードを指し示すもので ある。この値は、ホストが「伝送待ち行列状態」を読み取ると、直ちに更新され る。定義された「次の記述子ポインタ」は、これによって指し示されたロケーシ ョンが妥当な記述子を含んでいるということを必ずしも意味するものではない。 これは、単に、次の妥当な記述子が定義されるとしたら、これをどこに発見する ことができるかを示すだけに過ぎない。 「フレーム長さ」フィールドはアダプタによって計算されて更新される。フレ ームの長さは、「伝送データ長さ」の値と「伝送即値長さ」の値とをすべて加算 することによって求められる。この結果として得られる和が、伝送フレームの全 バイト数である。もしもこの和が802.3最小フレーム長さよりも小さい場合には 、和を最小フレーム長さの値と等しくなるように設定する。この和は、伝送記述 子の「フレーム長さ」の行に書き込まれ、「伝送フレーム長さ」レジスタを介し てホストが利用できるようになされる。 「伝送失敗」フィールドは、伝送が終了した後にイーサネット・トランスミッ タから寄せ集めた状態ビットからなるエラー・コードを含む。このフィールドは 「伝送失敗」レジスタにマップされ、ホストがアクセスできるようになされる。 「伝送リクエスト処理」の値は伝送DMAコントローラにより解釈され、関連 するフレームの伝送の試みが終了したことの指示信号を発するべきかどうかが判 定される。もし、このフィールドがゼロでなければ、指示信号が発せられる。ま た、伝送記述子リングの中のフレームのエントリは、ホストが伝送状態を調べる ことができるようになるまで保持される。指示信号が発せられるときには、「伝 送リクエスト処理」、「伝送状態」、「伝送プロトコル識別子」、および「媒体 アクセス・コントローラ識別子」のフィールドを、ホストが利用できるようにさ れる。もし、「伝送リクエスト処理」がゼロである場合には、ホストに何らの指 示を行うことなく、伝送終了後に伝送記述子待ち状態エントリが棄却される。伝 送アンダーラン状態は、「伝送リクエスト処理」がゼロであるかどうかにはかか わりなく通知(ポスト)される。 「伝送状態」フィールドは、関連するフレームの伝送状態を含むものである。 このフィールドの内容は、伝送の試みが終了した直後に更新される。リターン・ コードが「伝送状態」レジスタ定義に定義される。 このフィールドの「伝送プロトコル識別子」の値は、伝送が終了したときに、 ホストがフレームと係わる特定のプロトコルを識別するのに使用するためだけに 待ち行列内に維持される。このようにすることによって、複数のプロトコルを同 時にアクティビティにすることが可能となる。「伝送プロトコル識別子」と「伝 送リクエスト処理」の両方によって、アダプタを通過するフレームが一意的に識 別される。 「媒体アクセス・コントローラ識別子」は、「伝送プロトコル識別子」と同様 に、待ち行列中に保持されて、伝送終了時に使用される。しかし、ホストはこの 値を「伝送領域」を介してアダプタに書き込むことはしない。そうではなく、ホ ストはこの値をいったん「媒体アクセス・コントローラ識別子」レジスタに記憶 し、その後、この値を、「伝送リクエスト処理」がその最終的な位置にコピーさ れた後に、アダプタに応じて記述子データ構造中に保管する。 「伝送バッファ・カウント」フィールドの内容は、ホストが「伝送領域」に書 き込むことによって供給される。このフィールドは、伝送フレームを構成するの に用いられるホストのメモリ内のバッファの数を指定する。各バッファは、二つ の伝送データ・バッファのうち一つが利用可能になると直ちに、ホストのメモリ からアダプタの伝送データ・バッファにリストされた順序に従って転送される。 もし、「伝送バッファ・カウント」がゼロである場合には、このフレームに対し ては、バス・マスター動作は実行されない。 「伝送則値データ長」フィールドは、ホストから「伝送領域」への書込みによ って定められ、ホストから供給されようとしている「即値」データ・バイト数を 表すものである。このフィールドがゼロである場合には、次の32ビット・ワー ド・ロケーションが最初のホスト・データ・バッファ記述子を含んでおり、バス ・マスター・サイクルにおいてフレーム全体がアダプタに転送される。「伝送即 値データ長」の値は、必ずしも4の倍数である必要はない。最初のホスト・デー タ・バッファ記述子のロケーションは、次のように定められる。 記述子オフセット=((伝送即値データ長+3) & fffc(hex))+18(hex) 可変長の「即値データ」フィールドは、ホストが「伝送領域」へのメモリ書込 みを用いてアダプタに保管する即値データを含む。このフィールドの長さは、0 から1,514バイトの範囲内で変わる。即値データは、伝送に際して、アダプ タによってプリアンブルと伝送バッファ・データ(もし存在すれば)との間の伝 送フレームに挿入される。一般に、即値データは、宛先アドレス、ソース・アド レス、およびプロトコル特有のヘッダ・データで構成される。しかし、伝送フレ ーム全体を即値データであると見なすこともできる。このようにすると、アダプ タは、伝送フレームの残りをフェッチするためのバス・マスター動作の実行が全 く必要がなくなる。「伝送即値データ長」がゼロである場合には、このフィール ドはスキップされて、フレーム全体がホスト・メモリに常駐するデータ・バッフ ァに存在するものと仮定される。「伝送即値データ長」が倍長ワードの整数倍以 外の長さを指定している場合には、ホストは最も近い4の倍数に切り上げて、そ のバイト数の書込みを行うことができる。「伝送即値データ長」を越える余分な バイトは無視され、伝送フレームの一部として含まれることはない。 「伝送即値データ長」フィールドは、ホスト・データ・バッファ記述子当たり の二つのエントリのうちの一つであり、関連するホスト・バッファのバイト数を 定義するものである。この値は4の倍数である必要はない。 32ビットの「伝送データポインタ」の値は、関連するホスト・データ・バッ ファの物理開始アドレスである。この値は4の倍数である必要はない。 C.受信バッファ 受信バッファは、可変長受信フレームの22Kバイトのリングである。各フレ ームの先頭には、フレームのサイズと状態、およびリング・バッファの次のフレ ームのヘッダのロケーションを定義するヘッダが含まれている。 リングの受信フレーム・エントリは任意の32ビット・ワードの区切りで開始 するようにできる。 32ビットの「次の受信ポインタ」の値は、リングの次のエントリの「次の受 信ポインタ」の値のアドレスを含む。この値は、現在の関連するフレームの受信 が終了したときに有効となる。「次の受信ポインタ」が指し示すバッファは必ず しも有効なフレームを含んでいなくてもよい。これは、リング内の有効なエント リの開始および終了とを判定するリング保守ポインタによって判定されなければ ならない。 「受信フレーム状態」ワードは、関連するフレームの状態に関するいろいろな エラー・コードを含む。「受信フレーム状態」は、フレームの受信直後に更新さ れる。このエントリの内容は、「受信フレーム状態」レジスタを介してホストが 利用できるようにされる。 「受信フレーム・サイズ」エントリの上位16ビット・ワードは、アダプタの 「媒体アクセス・コントローラ識別子」の値によって占められる。この値は、「 媒体アクセス・コントローラ識別子」レジスタから検索されて、「受信フレーム ・サイズ」の値がポストされる時と同時に、受信バッファ・データ構造のこのワ ードに保管される。 受信されたフレームの長さは、そのフレームが受信された直後に「受信フレー ム・サイズ」レジスタに保管される。このエントリの内容は、「受信フレーム・ サイズ」レジスタを介してホストが利用することができるようにされる。 「受信データ」フィールドの長さは、1から1,1514バイトの範囲で変わ る。この受信フレームは、宛先アドレスによって開始され、フレームの受信中に このフィールドに記憶されていく。 D.転送記述子 好適な一実施例においては、アダプタは、一つの転送記述子を有し、また、一 度に一つしか転送記述子を有することができない。第1の記述子の処理が行われ ているときに、第2の記述子をダウンロードしようと試みると、「転送待ち行列 状態」レジスタからリクエストを受け入れる資源が存在しないことを示すリター ン・コードがなされる。「ルック・バッファ」を介して現在可視となっているフ レームだけが、「転送領域」レジスタ内の転送指定によって操作される。 転送記述子はアダプタRAM内に図8bのフォーマットを用いて記憶される。 「TDオフセット」ワードは、受信されたフレームの中のどの位置から転送を 開始すべきかを示すオフセットを定義する。この値は4の倍数である必要はない 。ホストがすでに(「ルック・バッファ」を介して)調べてしまったデータは、 ホストに転送される必要がない。従って、「TDオフセット」フィールドにゼロ でない値を書き込むと、転送が開始される前に、バス・マスター回路によってそ の開始アドレスが「TDオフセット」バイトだけオフセットされる。この値の範 囲は、ゼロ(フレームの最初からの転送)から1,514までである。 長さ/ポインタの対の数が「TDバッファ・カウント」フィールドに定義され る。127もの多くのエントリ数が可能である。これ以上の場合には、「転送領 域」バッファが使い切られてしまう。この値はゼロ以外の値でなければならない 。 「TDデータ長」フィールドは、受信データの転送先であるホストの受信バッ ファのサイズを含む。アダプタは32ビット・ワードの転送のみに限定されるわ けではない。最大フレーム長である1,514バイト以上の転送を行おうと試み ると、アダプタは、そのフレームの最後を読み取った段階で転送を中断する。 32ビットの「TDデータ・ポインタ」の値は、ホストの受信バッファの最初 のバイトの物理アドレスである。この値は4の倍数である必要はない。 受信したフレームをアップロードしようとしている先であるホストのデータ・ バッファの物理アドレスはアダプタの「転送領域」内に32ビットの「TDデー タ・ポインタ」値として書き込まれる。アダプタは、この値を受信バッファの最 初のバイトを示すポインタとして用いる。このポインタの値に関するアダプタに 対する制約はない。バッファ・データをバイト、ワード、倍長ワードのどれにで も配列でき、これらのすべてがサポートされる。 E.アダプタ情報、ネットワーク統計量、マルチキャスト・アドレス・テーブル アダプタRAMメモリ内のアダプタ情報、ネットワーク統計量、およびマルチ キャスト・アドレス・テーブルは、本出願の内容である伝送および受信動作とは 直接に関係しないが、当業者には明白なことと思われるアダプタのいろいろな機 能のために用いられる。 IV.伝送処理 図9は、アダプタ上の独立メモリ内の伝送データ・バッファと伝送記述子リン グ・バッファの管理に用いられるネットワーク・インタフェース・ロジックとホ スト・インタフェース・ロジックについて示したものである。ホスト・インタフ ェース側のロジックには、ホスト記述子ロジック150とダウンロードDMAロ ジック151とが含まれる。ホスト記述子ロジック150およびダウンロードD MAロジック151は、「伝送領域」レジスタ、「伝送終了スレッショルド」レ ジスタ、「伝送失敗」レジスタ、「伝送フレーム長」レジスタ、「伝送フレーム 状態」レジスタ、「伝送プロトコル識別子」レジスタ、「伝送待ち行列状態」レ ジスタ、および「伝送開始スレッショルド」レジスタを含む伝送“ルジスタ”を 介してホスト・アドレス空間に接続される。これらのレジスタの詳細について以 下に説明する。 図8aに示されている記述子は、アダプタのホストの独立RAMの伝送記述子 領域に、ホストによる「伝送領域」アドレス・ブロックへの書込みによって記憶 される。三つの異なった処理が記述子待ち行列のエントリに対してなされる。ホ ストは最初に伝送記述子を作成するための書込みを行い、バッファのデータをホ ストのメモリから伝送データ・バッファに移動させるためのバス・マスター・ダ ウンロード、および記述されたフレームのネットワークへの伝送を行う。最初の 二つの処理は、ダウンロードDMAロジック151およびホスト記述子ロジック 150において行われる。伝送は、伝送DMAロジック155によって実行され る。伝送記述子リング・バッファ152内の記述子の数および状態は、ホストの 書込み、ダウンロード、おおび伝送処理の相対速度に従ってアダプタの動作過程 において変化する。 ダウンロードDMAロジック151内の二つの変数によって、伝送記述子待ち 行列の状態が記述される。「ゼロ・ダウンロード保留」は、ダウンロードDMA ロジック151によるダウンロード処理が未だ行われていない完全フレーム記述 子が存在しないことを示すものである。「ゼロ・フレーム常駐」変数は、ダウン ロード処理が終了したけれども伝送がまだすんでいない記述子が存在しないこと を示す。 これらの伝送機構を構成している三つの処理の各々が記述子待ち行列を指し示 すそれぞれのポインタの集合を保持する。 ホスト記述子ロジック150は、アダプタ・メモリ上の伝送記述子リング・バ ッファ152のポインタの生成を行い、伝送記述子リング・バッファ152に記 述子を書き込むアクセスを行うホストの現在位置を識別する。これらのポインタ は、カレント・ホスト記述子ポインタCHDと、ホスト書込みポインタHWとし て表されている。カレント・ホスト記述子ポインタCHDは、ホストによって現 在書き込まれているか、あるいは書き込まれようとしている記述子のベース・ア ドレスを指し示す。ホスト書込みポインタHWは、(CHDポインタが指し示し ている)現在の記述子内のホストが次に書込みを行おうとしているロケーション を指し示す。すなわち、HWポインタは、ホストが現在の記述子を完成するため に書込みを行おうとしている「伝送領域」アドレス・ブロック内のオフセットを 予測するものである。 ダウンロードDMAロジック151は、ホスト・システムから伝送データ・バ ッファである「伝送データ・バッファ0」153と「伝送データ・バッファ1」 154へのダウンロードを管理するとき、三つのポインタとバッファ選択信号を 生成する。ダウンロードDMAロジック151が生成するポインタは、記述子の ベース・アドレスを指し示すカレント・ダウンロード記述子ポインタCDDを含 み、記述子はバス・マスター・ダウンロードDMAロジック151により現在処 理されようとしているものである。ダウンロードDMAロジックによって生成さ れる第2のポインタは、カレント伝送データ・バッファ(「伝送データ・バッフ ァ0」または「伝送データ・バッファ1」のいずれか)内のダウンロード処理に よってデータが書き込まれている位置を指し示すダウンロード・ポインタDDを 含む。ダウンロードDMAロジック151によって生成される第3のポインタは 、カレント・ダウンロード・バッファCDBポインタを含む。CDBポインタは 、CDDポインタによって指し示されている伝送記述子内の、現在ダウンロード 処理がなされているホスト・メモリのバッファの仕様が存在するバッファ記述子 を指し示す。 また、ダウンロードDMAロジックは、バス・マスター動作において、ダウン ロードDMAロジックからデータの転送を行う先のカレント伝送データ・バッフ ァ153および154の選択を、信号BUF1/0によって発見的に示されるよ うに行う。 伝送DMAロジック155は、伝送処理のための三つのポインタを生成する。 これらのポインタはカレント伝送記述子CXDポインタを含み、このポインタは 、伝送ロジック155によって現在処理が行われている伝送記述子リング・バッ ファ152内の記述子のベース・アドレスを指し示すものである。伝送読み取り XRポインタは、カレント記述子あるいはカレント伝送データ・バッファ(15 3または154)内の、伝送処理において伝送すべきデータの読み取りが行われ ているロケーションを示すものである。 「伝送末尾」ポインタ(XT)は、待ち行列のバックエンドを指し示すもので ある。XTポインタは、伝送をすでに終了したが状態情報がホスト・システムに よって読み取られていないフレームが存在する場合には、CXDポインタではな く伝送記述子リング・バッファ12内の古い記述子を指し示す。 好適なシステムにおいては、ホストに対する伝送終了指示信号の生成に関して 二つの動作モードが存在する。以上のパラグラフにおいて説明したホスト書込み 、バス・マスター・ダウンロード、および伝送処理に関連するデータ構造におい て、 「ダウンロード伝送終了」変数が偽である場合には、伝送が終了したとき、ある いは「伝送終了スレッショルド」(以下に説明)が満たされたときに、指示信号 の発生が行われる。一方、「ダウンロード伝送終了」が真である場合には、ダウ ンロードDMAロジック151は、状態の読み取りが未だ行われていないフレー ムの追尾を行う。このモードでは、ホストは、フレームのダウンロードにおいて 、フレームに対する伝送終了指示信号を受け取る。従って、ホストがその指示信 号に応答することができる以前に、フレームを伝送することが可能である。この ような状態においては、「伝送末尾」ポインタはもはや記述子リング・バッファ 内の最も古い有用なエントリを定義することができない。従って、フレーム状態 処理が必要である。フレーム状態ポインタFSは、ホストによる状態の読み取り が未だ行われていない最も古い記述子のベース・アドレスを指し示すものである 。FSポインタは伝送処理と関連するものであるので、図9の伝送DMAロジッ ク155に示した。しかし、好適なシステムにおいて、HSポインタはダウンロ ードDMAロジック151の方に論理的な接続がなされる。 伝送DMAは、現在の伝送フレームを構成するカレント伝送データ・バッファ 153あるいは154の選択を、自明的に図示されているように信号BUF0/ 1を用いて行う。 ホストからアダプタへのインタフェースを見ると、あたかも、あらかじめ指定 されたアドレス・ブロックの一組のレジスタの集合であるかのように見える。伝 送に必要となる重要な“レジスタ”について次にその概要を説明する。 A.伝送領域 このレジスタの目的は、ホストがアダプタに対して即値データとホストのメモ リ・システムのどこに残りのフレーム(もし残りのフレームがあるとしたら)が 存在するかを表すデータ構造とを供給するための機構を提供することである。ア ダプタはこの情報を伝送記述子リング152内に記憶し、記述されているこのフ レームが最終的に伝送できるようになったときに用いる。 アダプタは、データが書き込まれているアドレスと書き込まれている順序とか ら、そのデータが何を表すのかを判定する。アダプタへのデータの書込みは、図 6に関連して先に説明した構造と順序とを用いて行わねばならない。 バス・マスター・ダウンロードは、記述子が「伝送領域」に書き込まれ、「伝 送待ち行列状態」(以下に説明)がホストによって読み取られた後に開始される 。 いったん、ホストが伝送記述子バッファ構造の「伝送領域」への転送を終了し てしまうと、ホストは、「伝送フレーム長さ」を読み取って、ホストが伝送フレ ーム内に含むように指定したバイト数を判定することができる。次に、「伝送待 ち行列状態」を読み取り、他のフレームをこのレジスタに書き込むことが可能な ようにCHDポインタを進めることが必要である。「伝送待ち行列状態」の読み 取りの後において、「伝送領域」が再び満たされるまで、「伝送フレーム長さ」 は無定義状態となる。 ネットワークへの実際のフレームの伝送は、次の二つの条件が満たされたとき に開始される:(1)フレーム全体がアダプタのRAMへコピーされたとき、「 伝送開始スレッショルド」(後に説明)条件が満たされているか、あるいは「伝 送開始スレッショルド」がゼロである場合。(2)以前から待ち行列状態にある リクエストが存在しない場合。もし「伝送開始スレッショルド」バイト以上の即 値データが「伝送領域」に書き込まれた場合には、ネットワーク伝送が「伝送待 ち行列状態」を読み取る前に開始される。 ホストがデータを「伝送領域」に書き込んでいるときに、アダプタが「伝送領 域」の資源を使い果たしてしまった場合には、ホストが「伝送待ち行列状態」の 読み取りを行ったときに、ホストに対して6の値がリターンされる。メモリの終 わりからはみ出してしまうような書込みが行われたとしても、アダプタにすでに 待ち行列状態となっているデータには何らの損傷も発生しない。 伝送フレーム宛先アドレスおよび発信元アドレスは、ホストからの各伝送フレ ームごとにアダプタに対して明示的に供給されなければならない。この情報は即 値データの一部として供給するようにすることもできるし、あるいは、もし即値 データが存在しない場合には、記述子に指定された最初のデータ・バッファの最 初の14バイトとして供給するようにもできる。 本質的に、ホストは、フレームの各バイトの供給を「伝送領域」レジスタを介 して、あるいはダウンロードDMA動作によって、フレーム・デリミタの始めと フレーム検査シーケンス(CRC)との間に行う。 一般的には、データは「伝送領域」に指定された順序で書き込む必要があるが 、一つだけ例外がある。「伝送バッファ・カウント/伝送即値長」は、これらの フィールドに対する初期値が書き込まれた後に、またバッファ記述子エントリが 何も書き込まれていなければ、再書込みを行うことができる。 以下のような制約が存在する: 1.「伝送バッファ・カウント/伝送即値長」の再書込みを行うとき、「伝送 即値長」の新しい値として、「伝送領域」にすでに書き込まれた即値データのバ イト数よりも小さい値を指定することはできない。より大きな値の指定は可能で ある。もし、より大きなバイト数を指定する場合には、新たな「伝送バッファ・ カウント/伝送即値長」の値を書き込んだ後に、残りの即値データ・バイト(お よびすべてのバッファ記述子)を書き込む。 2.「伝送バッファ・カウント/伝送即値長」の再書込みを行う際には、たと えこれらの値のどちらかが同じままだとしても32ビットすべてを再書込みする 必要がある。「伝送即値長」を再書込みすることができる能力を備えさせたのは 、データをホスト・システムの一つの受信アダプタから他の伝送アダプタに直接 に移動させるのを容易にするためである。 動作シーケンスは以下の通りである。 1.受信アダプタから早期受信指示信号がホストに対して送られる。 2.ホストは、受信フレームを第2のアダプタに伝送すべきであると判定する と、「伝送領域」内に第2のアダプタに対する最大長さを指定する伝送記述子と すべての即値データ・フレームをセットアップする。 3.ホストは、次に、伝送アダプタに対し転送されるデータの宛先として指定 されている受信アダプタへのバス・マスター転送のセットアップを行う。データ が一方のアダプタに受信されると、これらのデータは受信アダプタによって他方 の「伝送領域」にバス・マスター制御されて転送される。 4.フレーム受信が終了すると、ホストはフレームの長さを判定し、その値を 伝送を行うアダプタの「伝送即値長」フィールドに書き込む。 B.伝送終了スレッショルド 「伝送終了スレッショルド」は、伝送終了の早期指示信号(読み取り/書込み 、4バイト、1 32ビット・ワード)のためのものである。 「伝送終了スレッショルド」レジスタは、アダプタが「伝送終了」指示信号を 発する前に伝送すべき、あるいはアダプタへダウンロードすべき(アダプタ・モ ードに依存する)残りの伝送バイト数を指定するのに用いられる。このレジスタ は、10から0までのビットだけで具現化される。もし、最大フレーム長よりも 大きな値が与えられると、この動作は正しく機能しない。この機能をディスエー ブルとするには、レジスタを0にセットすればよい。「伝送フレーム長さ」の値 (以下を参照のこと)はどこで伝送フレームが終わるのかを判定するのに用いら れる。 もし、このスレッショルドが大きすぎる値に設定されていると、アダプタが有 効な伝送状態指示信号を供給する前に、ホストが指示信号に応答してしまう。も し、「伝送フレーム状態」がff(hex)を返した場合には、指示信号をわずか に遅らせるように「伝送終了スレッショルド」を調整する必要がある。これは、 「伝送終了スレッショルド」レジスタの値を低減することによって実現される。 このレジスタの機能は、フレームの最初の60バイトを伝送している間、ディス エーブルとされる。このレジスタはリセットによって0にクリアされる。 C.伝送失敗 「伝送失敗」は、伝送失敗の原因を返す。(リード・オンリー、4バイト、1 32ビット・ワード) このレジスタは、待ち行列中で待機していたフレームの伝送の試みの失敗原因 を返す。0以外の値が返されたときには、フレームが伝送の試み中に一つあるい はそれ以上のエラーに遭遇したことを示す。 このレジスタの各ビットは以下のように定義される: ビット0 DMAアンダーラン ビット1 キャリアの不検出 ビット2 最大衝突 ビット3 SQEテスト失敗 このレジスタは、フレーム伝送の試みが成功したか失敗したかにかかわらず有 効なデータを含む。失敗がなかった場合には、このレジスタはその値として0( hex)を含む。このレジスタの内容は、フレームの伝送が終了し(「伝送フレー ム状態」の低位バイトがff(hex)以外の値となる)、「伝送プロトコル識別 子」が読み取られる前において有効である。 データにアンダーランが発生した場合には、宛先のデバイスが確実にそのフレ ームを不良フレームとして受け取りこれを棄却するように、アダプタは、強制的 にそのフレームの伝送中にCRCエラーを発する。 D.伝送フレーム長さ 「伝送フレーム長さ」は、伝送すべきバイト数を返す。(リード・オンリー、 4バイト、1 32ビット・ワード) 「伝送フレーム長さ」レジスタは、待ち行列中でCXDポインタによって示さ れる現在の伝送フレーム記述子による伝送を待機している総バイト数を返す。こ の値は、即値データのバイト数とアダプタにダウンロードされたこのフレームに 関するすべてのバッファ長フィールドの総数である。このレジスタによって返さ れる値は、フレームの長さが60バイトよりも短いときにアダプタによって行わ れるパッディングの影響をなんら受けない。 「伝送フレーム長さ」レジスタはホストが最後のバイトを「伝送領域」に書き 込んだ直後に有効となり、「伝送待ち行列状態」を読み取った後の最初の書込み が「伝送領域」に行われるまで有効である。 E.伝送フレーム状態 「伝送フレーム状態」は、伝送の試みの結果を返す。(リード・オンリー、4 バイト、1 32ビット・ワード) このレジスタの最下位の16ビットは、待ち行列中で待機していたフレームの 伝送の試みについての状態を返す。最上位16ビットは、そのフレームの「伝送 リクエスト処理」を返す。伝送が成功したときには、値としてXXXX0000 (hex)(XXXXはこの特定のフレームの「伝送リクエスト処理」である)が 返され、一方、伝送が失敗した場合には、XXXX000a(hex)が返される 。アダプタが、衝突の後の伝送最試行処理を行っている場合には、XXXX00 fa(hex)が返される。伝送がまだ進行中である場合には、「伝送フレーム状 態」は、XXXX00ff(hex)を返す。 もし、フレームの伝送が成功しなかった場合には、伝送が失敗した具体的な理 由を「伝送失敗」によって知ることができる。「伝送プロトコル識別子」を読み 取って、もし次に伝送されるフレームがあれば「伝送フレーム状態」がこの次に 伝送されるフレームに進められる。「伝送フレーム状態」を読み取ったときに、 状態の値として“再試行”が返された場合には、この「伝送フレーム状態」の読 み取りによって同時に「伝送終了」指示信号がクリアされる。 F.伝送プロトコル識別子 「伝送プロトコル識別子」は、伝送フレームのプロトコル識別子を返す。(リ ード・オンリー、4バイト、1 32ビット・ワード) アダプタが待ち行列中で待機していたフレームの伝送の試みを終了し、その状 態を指示すると、直ちに、ホストは「伝送プロトコル識別子」を読み取って、そ のフレームを識別することが可能である。ここで返される値は、フレームを「伝 送領域」に待機させる際に「伝送プロトコル識別子」フィールドに書き込まれた 値と同じ値である。 このレジスタの読み取りが行われると、「伝送フレーム状態」の値として“再 試行”が読み取られた場合を除いて「伝送終了」指示信号がクリアされる。「伝 送フレーム状態」の読み取りによって、“再試行”が読み取られた場合には、「 伝送終了」がクリアされる。 「伝送プロトコル識別子」の値は、32ビット・レジスタの上位16ビットに 存在する。このレジスタの最下位16ビットは、「媒体アクセス・コントローラ 識別子」レジスタに書き込まれる「媒体アクセス・コントローラ識別子」値を返 す。倍長ワード読み取りによって、これらの両方の値が同時に返される。 多数のフレームを伝送待ち行列中に待機させて、多数伝送を行わせることが可 能である。「伝送プロトコル識別子」の両ワードを読み取ると、「伝送フレーム 状態」の終了状態、および「伝送失敗」が進められ、また、もし次のフレームが 存在すれば、「伝送プロトコル識別子」が伝送を終了したフレームの次のフレー ムに進められる。 G.伝送待ち行列状態 「伝送待ち行列状態」は、伝送フレームを待ち行列中に待機させた結果を返す 。(リード・オンリー、4バイト、1 32ビット・ワード) 「伝送待ち行列状態」レジスタを読み取ることによって、ホストが伝送フレー ムを「伝送領域」に待ち行列として待機させた試みの結果が返される。 2(hex)−成功:リクエストされた伝送を待ち行列中へ待機させるのに成功 した場合には、この値が「伝送待ち行列状態」を読み取ったときに返される。 6(hex)−資源の使い果たし:アダプタが待ち行列記憶用RAMを使い果た してしまった場合には、状態の値として6(hex)が返される。 7(hex)−長すぎ:伝送しようとしている単一のフレームの総バイト数が最 大フレーム長を越えている場合には、このレジスタは7(hex)を返す。 a(hex)−順序違反:データが順番通りに「伝送領域」に書き込まれなかっ た場合には、このエラー・コードが返される。 ff(hex)−アダプタの準備未了:「伝送領域」への書込みが終了した後に 、「伝送待ち行列状態」を読み取るのが早すぎた場合には、待ち行列処理が終了 する前に状態の値を読み取るようにすることが可能である。 また、このレジスタが読み取られると、「伝送領域」が進められて、他の伝送 を待ち行列中に待機させることが可能なようになされる。このレジスタの読み取 りは、「伝送領域」へ全データが書き込まれた後に、かつ、「伝送領域」への次 の伝送リクエストが行われる前に行う必要がある。 「伝送待ち行列状態」から、エラー・コード(6(hex)、7(hex)、a(he x)、あるいはff(hex))が返された場合には、そのフレームは待ち行列中に 待機されておらず、ホストはこれを別の時に再度待ち行列に待機させる試みを行 う必要がある。当然のことであるが、フレームが長すぎたことを示すフラッグが 立って いる場合には、再度待ち行列に待機させる試みを行う前に、フレームを複数のフ レームに分割する必要がある。 成功を示すコード(2(hex))が返された場合には、ホストは直ちに次の他 のフレームを待ち行列中に待機させる試みに進むことができる。待ち行列中に待 機させることが可能なフレーム数は、この目的のために割り当てられたアダプタ のRAM容量と、各フレームに含まれる即値データ量とに依存する。 ホストが、利用可能な「伝送記述子」の自由空間を越える大きすぎるフレーム を待ち行列中に待機させようと試みた場合には、まずエラーが起こり、次いで、 このエラーがホストに対して返される。 H.伝送開始スレッショルド 「伝送開始スレッショルド」は、伝送を早期に開始させるためのものである。 (リード・オンリー、4バイト、1 32ビット・ワード) 「伝送開始スレッショルド」レジスタは、伝送を開始する前にアダプタに存在 している必要がある伝送バイト数を指定するのに用いられる。ビット10から0 までを用いて、このレジスタが具現される。最大フレーム長さよりも大きな値が 与えられると、この機能は正しく動作しない。レジスタをゼロにセットすると、 この機能をディスエーブルすることができる。バイト数のカウントは、伝送フレ ームの宛先フィールドの最小のバイトから開始される。 利用可能であると見なすことができるバイト数は、ホストによって「伝送領域 」に書き込まれた即値データとバス・マスターDMA動作を用いてアダプタの伝 送データ・バッファに転送されたバイトとの和である。「伝送開始スレッショル ド」を満たす伝送フレーム・バイトの即値データが準備されたか、あるいはアダ プタがバス・マスターを用いて「伝送開始スレッショルド」−「伝送即値データ 長」のバイトをアダプタ上に転送されると、直ちに伝送リクエストが発せられる 。 アダプタ中に存在するバイト数は、フレームの全サイクルが「伝送開始スレッ ショルド」よりも小さい場合を除いて、伝送を開始するのに必要な「伝送開始ス レッショルド」に等しいかまたはこれよりも大きいことが必要である。フレーム の全サイズが「伝送開始スレッショルド」よりも小さい場合には、このフレーム の伝送は、全フレームのアダプタへのコピーが終了した時点で開始される。前に 保留となっている伝送フレームが存在したり、あるいはネットワークのトラフィ ックが滞留しているために、実際の伝送が遅延することが起こり得る。 I.伝送リング管理 図10A−10Eは、伝送動作に用いられるポインタの進みかたを示したもの である。図10A−10Eにおいて、伝送記述子リングの全体部分が200で示 されており、伝送データ・バッファが201−0および201−1で示されてい る。また、上記のポインタが略記号を用いて表されている。 図10Aにおいて、ホスト記述子ロジックが伝送記述子リング200中に第1 の記述子の書込みを行う。こうして、CXDポインタが第1の記述子のベース・ アドレスを指し示し、また、HWポインタが、ホストが次に書き込もうとしてい る倍長ワードの記述子のベース・アドレスからのオフセットを指し示す。また、 CCD、CDBを含むダウンロード・ポインタによって、第1の記述子のダウン ロード動作が開始される前のベース・アドレスが指し示される。同様に、伝送記 述子CXDおよびXRが同じベース・アドレスを指し示している。最後に、リン グXTの末尾が、記述子の先頭を指し示す。また、ダウンロード・データ・ポイ ンタDDによって第1のバッファ、例えば、バッファ0の先頭が指し示される。 図10Bにおいては、第1の記述子の書込みが終了してダウンロード処理が開 始され、ホストは、第2の記述子の書込みを開始している。このようにして、ホ スト記述子ロジック・ポインタCHDは、次の記述子のベース・アドレスを指し 示し、またHWが次のバイトと考えられるアドレスを指し示す。ダウンロード・ ポインタCDDは、第1の記述子のベース・アドレスを指し示す。ダウンDMA ロジックは、ホストから伝送データ・バッファへのバッファ転送処理を行ってい る最中であるものと仮定されている。こうして、CDBポインタは、第1の記述 子のダウンロード・バッファの記述子を指し示し、DDポインタは、指し示す伝 送データ・バッファ内のデータがダウンロードされている位置を表すオフセット を指し示す。スレッショルドにはまだ達していないので、伝送動作はまだ開始さ れていない。従って、伝送ポインタおよび末尾ポインタは、依然として第1の記 述子を指し示している。 図10Cにおいては、ホスト記述子ロジックは、第3の記述子に関する動作を 行っており、また、ダウンロード・ロジックは、第2の記述子に関する動作を行 っており、伝送ロジックは、第1の記述子に関する動作を行っている。また、ホ スト記述子ロジック・ポインタCXDおよびXRは、第1の記述子に関する動作 を行っている。従って、CXDポインタは第1の記述子のベース・アドレスを指 し示し、一方、XRポインタは、伝送DMAロジックによる伝送のために読み取 っている即値データを指し示す。 伝送読み取りポインタXRは、即値データの読み取りを終了して、第1の記述 子を処理する際に図10Bに示されているようにダウンロードDMAロジックに よって満たされた伝送データ・バッファに移動する。 伝送末尾ポインタXTは、依然として第1の記述子のベース・アドレスを指し 示している。 ダウンロード・ロジックは第2の記述子に関する動作を行っている。従って、 CDDポインタは第2の記述子のベース・アドレスを指し示し、また、CDBポ インタは、第2の記述子内のバッファ記述子を指し示し、DDポインタは、ダウ ンロードDMAロジックがホストからのデータをそこへ転送している先である第 2の伝送データ・バッファ内のオフセットを指し示す。 図10Cにおいては、ホストは第3の記述子を「伝送領域」レジスタに書き込 んでいる。従って、CHDポインタは、第3の記述子のベース・アドレスを指し 示し、また、HWポインタは、ホストによって次のバイトが書き込まれようとし ているオフセットを指し示す。 図10Dにおいては、ホストが第4の記述子の書込み処理を行うための処理が 続行されている。こうして、CHDポインタは、第4の記述子のベース・アドレ スを指し示し、また、HWポインタは、「伝送領域」レジスタへの次の書込みに おける予測アドレスを指し示す。 ダウンロード・ロジックは、第3の記述子に関する動作を行っている。こうし て、CDDポインタは、第3の記述子のベース・アドレスを指し示し、また、C DBポインタは、第3の記述子内のバッファ記述子を指し示し、ダウンロード・ データDDポインタは、第1のデータ・バッファのダウンロードが行われている 位置を指し示す。この動作において、第1の記述子の伝送によって第1のデータ ・バッファがすでに解放されており、ダウンロード・ロジックが第1のデータ・ バッファを使用することができるようになっているものと仮定されている。 伝送ロジックは、第2の記述子に関する動作を行っている。こうして、CXD ポインタは、第2の記述子のベース・アドレスを指し示し、XRポインタは、伝 送ロジックがそこからデータを読み取っている伝送データ・バッファ内の位置を 指し示す。第1の記述子の状態は依然として読み取られるようになっているので 、伝送末尾XTポインタは依然として第1の記述子のベース・アドレスを指し示 している。 図10Eにおける処理においては、第4の記述子の書込みが終了したけれども 、ホストは、新たな記述子の書込みを一時的に中断しているものと仮定されてい る。この場合には、CHDポインタおよびHWポインタは、ホストによってさら にアクションがとられるのを待機している第5の記述子のベース・アドレスを指 し示す。ここで、ダウンロード処理については、第3の記述子のダウンロードを 終了させる必要があるものと仮定されている。こうして、CDDポインタの現在 値は第3の記述子のベース・アドレスを指し示し、また、CDBポインタは第3 の記述子内のバッファ記述子を指し示す。DDポインタは、そこへダウンロード 処理によってデータがダウンロードを行っている伝送データ・バッファ内のロケ ーションを指し示す。 また、図10Eにおいては、第2の記述子によって表されているフレームの伝 送が終了し、伝送ロジックは、第3の記述子に関するダウンロード動作が終了す るか、あるいは伝送ロジックが伝送を開始するのに十分な量のデータがダウンロ ードされるのを待機しているものと仮定されている。こうして、CXDおよびX Rポインタは、第3の記述子のベース・アドレスを指し示す。 この処理は、アダプタが取り扱う記述子が自動的にリング循環されることによ って続行されていく。またアンダーラン状態がモニタされて、適当なエラー信号 がアダプタから発せられる。 V.受信処理 図11は、ホスト・インタフェース・ロジックと、受信動作において必要とな るネットワーク・インタフェース・ロジックとについて自明的に表した図である 。ホスト・インタフェース・ロジックはアップロードDMAロジック300と、 ビュー・ロジック301とを含んでいる。アップロードDMAロジック300は 、以下に説明する転送アドレス・ブロックを介してホストとのインタフェースを とるためのものである。ビュー・ロジック301は、以下に説明する「ルック・ バッファ」および関連するアドレス・ロジックとを介してホストとのインタフェ ースをとるためのものである。 ネットワーク・インタフェース・ロジックは、受信DMAロジック302を含 んでいる。ホスト・インタフェース・ロジックおよびネットワーク・インタフェ ース・ロジックの両方とも、ホストから独立したアダプタ・メモリ内の受信リン グ・バッファ領域303とインタフェースをとる。また、アップロードDMAロ ジック300は、ホストから独立したアダプタ・メモリ内の転送記述子領域30 4とインタフェースをとる。 また、このロジックは、受信バッファ・リングの維持とも係わる。このように して、複数のポインタが係わることとなる。アップロードDMAロジックは、受 信末尾ポインタRTを生成するが、この受信末尾ポインタRTは、アップロード 中のフレームのベース・アドレスを指し示すものであり、また同時にリングの末 尾でもある。ビュー・ロジックは、アダプタ・メモリ内の「ルック・バッファ」 すなわちビュー・ロジック301が見ているフレームのベース・アドレスを指し 示すカレント・フレーム・ポインタCFの生成を行う。 受信DMAロジック302は、受信中のフレームのベース・アドレスを指し示 すカレント受信ポインタCRの生成と、現在のフレームの書込みが行われている 位置を指し示す受信書込みポインタRWの生成を行う。また、受信DMAロジッ ク302は、状態指示を行う際に次の受信フレームの開始位置を指し示す次の受 信ポインタNRの生成も行う。 受信処理については、この処理の含まれるホスト・アドレス・マップを理解す ることによって理解することが可能となろう。 A.ルック・バッファ 「ルック・バッファ」レジスタは、ホストが受信したフレームを調べ、及び/ 又は、転送するのに用いられる。(リード・オンリー、2036バイト、509 32ビット・ワード) ホストは、「ルック・バッファ」レジスタを用いて受信したフレームのすべて の部分を調べることが可能である。読み取りは、任意の幅で、また、任意の順序 で行うことができる。「ルック・バッファ」は、ホストのアドレス・バスの最下 位の11アドレス・ビットを用いて、アクセスするバイトの選択を行う。ホスト は、フレームの一部を調べ、フレームの残りの部分をアップロードDMAロジッ ク300のバス・マスター機能を用いて転送するようにすることが可能である。 あるいは、ホストは、フレームを調べ、その内容をメモリ移動命令を用いてホス トのメモリに転送するようにすることも可能である。 受信されたフレームは、必ず、宛先アドレス・フィールドがレジスタの0バイ トから始まるように「ルック・バッファ」内に整列される。ホストは、現在のフ レームの末端を越えたさらに先のデータの読み取りに関して、なんらかの仮定を 行うことはできない。すなわち、次の受信フレームがそこに存在するかどうかは 保証されていない。ホストは、「ルック・バッファ」を次の受信フレーム・バッ ファに進めるには、「受信終了」への書込みを行うことが必要である。 B.利用可能受信バイト 「利用可能受信バイト」は、「ルック・バッファ」内の有効なバイト数を返す 。(リード・オンリー、4バイト、1 32ビット・ワード) このレジスタは、カレント・フレームとして受信されたバイト数の走行カウン トを提供する。このレジスタがカウントできる最大値は、「利用可能受信最大値 」レジスタ(これ以上の説明はしない)の値によって定められる。 バイトとして読み取るとき、ビット7から0の読み取りを行う間、レジスタは ビット10から8までの値を記憶する。このようにすることによって、この動的 なレジスタの完全な読み取りを確実に行うことができる。 C.受信終了 「受信終了」によって、「ルック・バッファ」を次のフレームに進めることが 可能となる。(ライト・オンリー、4バイト、1 32ビット・ワード) このレジスタの最下位バイトに任意の値を書き込むことによって「ルック・バ ッファ」を次の受信フレーム(もし存在すれば)に進めることができる。「利用 可能受信バイト」、「受信フレーム・サイズ」、および「受信フレーム状態」が 同様にして更新される。 「受信終了」への書込みが行われた時に「ルック・バッファ」内の存在してい たフレームを「ルック・バッファ」に再記憶することはできない。「受信終了」 への書込みが最終的に行われるまで、アダプタは、その内部受信バッファと「ル ック・バッファ」の両方のフレームを保存する。いったん、「受信終了」への書 込みがなされると、「ルック・バッファ」内のデータを見ることはできないが、 「転送領域」への書込みによって開始されたすべてのデータ転送は成功のうちに 終了することができる。受信されたフレームのデータは、データ転送が終了する まで保存される。 D.受信フレーム・サイズ 「受信フレーム・サイズ」は、現在の受信フレームのサイズを返す。(リード ・オンリー、4バイト、1 32ビット・ワード) 「受信フレーム・サイズ」は下位16ビットに現在の受信フレームのサイズを (バイト数として)返し、上位16ビットに「媒体アクセス・コントローラ識別 子」の値を返す。長さの値については指示されないので、アダプタがそのフレー ムの受信を完了するまでは有効ではない。アダプタがフレームの受信処理を行う 際に、レジスタは、XXXX0000(hex)を返す。ここでXXXXは「媒体 アクセス・コントローラ識別子」レジスタに書き込まれる「媒体アクセス・コン トローラ識別子」の値である。 この長さの値は、ホストが「受信終了」への書込みを行うまでの間、ずっと有 効である。「受信終了」が発せられると、このレジスタの最下位16ビットが0 (hex)に戻される。長さの値は、データ・フィールドの最初のバイトあらデー タ・フィールドの最後のバイトまで端を含めたすべてのバイトをカウントするこ とによって算出される。 全フレームが受信される前にホストへの指示信号が発せられた場合には、受信 されたフレームの最終的な状態がどのようなものであるかにかかわらず、フレー ムのサイズのこのレジスタへの記録はフレーム受信終了時点において行われる。 「受信フレーム状態」レジスタを調べて、フレームの受信がエラーなしに行われ たかどうかの判定を行わなければならない。このレジスタの値は、受信に際して エラー(例えば、過大フレーム・サイズ)を発生したフレームに対しては、フレ ームに対する値を正しく反映していない可能性がある。 E.受信フレーム状態 「受信フレーム状態」は、現在の受信フレームの状態を返す。(リード・オン リー、4バイト、1 32ビット・ワード) 「受信フレーム状態」は現在の受信フレームの状態を返すものである。この状 態の指示は行われないので、アダプタがフレームの受信を完了するまでは有効で はない。 このレジスタの各ビットは次のように定義されている: ビット0 DMAオーバラン ビット1 整列エラー ビット2 CRC不良 ビット3 小サイズ・フレーム ビット4 過大サイズ・フレーム このレジスタの内容は、受信処理が終了した直後に有効となり、ホストが「受 信終了」への書込みを行うまでの間、ずっと有効である。アダプタが、フレーム ・データを受信しながらホストに対して転送するように構成されている場合にお いて、フレームの受信にエラーが発生した場合には、アダプタはバス・マスター DMAシーケンスを中断し、その転送の終了に関するエラー・コードをホストに 対して返す。そのとき、ホストは、「受信フレーム状態」を読み取って、そのフ レームに本当に欠陥があったのかどうかを判断することができる。 受信が失敗した場合に、もしアダプタが不良フレームであっても受信してしま うように構成されているか、あるいは、受信しながらフレーム転送を行うことが 可能となされている場合には、ホストは、「受信終了」への書込みを行って、ア ダプタ上の受信バッファを解放する必要がある。 もし、アダプタが「早期受信」指示信号を発したか、または、「左側長さスレ ッショルド」レジスタに基づいて「受信完了」指示信号が発せられた場合には、 アダプタが不良フレームを受信しないように構成されている場合であっても、ア ダプタは、フレームの受信を行い、そのフレームがエラーなしに受信されたかど うかにかかわらず受信状態の指示を行う。このような場合には、「受信終了」に 対する書込みを行って受信がなされたことを知らせ、そのフレームを棄却するこ とが必要である。 このレジスタを読み取ると、「受信完了」が認知される。 F.転送領域 「転送領域」レジスタは、受信されたフレームの転送のためのバッファ・ポイ ンタをアダプタに供給するために用いられる。(ライト・オンリー、1,024 バイト、256 32ビット・ワード) このレジスタの目的は、ホストのメモリ・システムのどこに“現在”の受信フ レームを転送すべきかをアダプタに知らせるためのものである。これはこのレジ スタへの一組のポインタの書込みによって実現される。 「転送領域」は、ホストのアドレス・バスの最下位11ビットを用いて各パラ メータの機能の判定を行うライト・オンリー・レジスタである。図6に示した構 造を用いて転送の仕様を「転送領域」に書き込むようにすることが必要である。 実際のデータの転送は「転送待ち行列状態」の読出しによって開始される。ア ダプタが、RAMを使い果たすことなしに転送リクエストを受け入れることがで きた場合には、アダプタは、ホストのメモリへのデータ転送を開始する。アダプ タが転送待ち行列バッファ内のメモリを使い果たしてしまった場合には、その後 の「転送領域」への書込みはすべて無視される。ホストは、拒絶された転送リク エストについて、すべて、再受入れを行う必要がある。 “現在”の受信フレームは、「ルック・バッファ」を介して現在ホストに対し て利用可能となされている受信フレームであると定義される。受信フレームの処 理は、ネットワークから受信した順序と同じ順序で行われる。受信されたフレー ムが、いったんホストによって棄却されてしまうと、これを調べることも、ある いは転送のセットアップを行うこともできない。 受信されたフレームは「受信終了」への書込みによって棄却処分される。この 書込みがなされるまでは、現在のフレームは「ルック・バッファ」中に残留して おり、何度でもホストに対して転送することが可能である。いったん棄却処分が なされてしまうと、そのフレームは調べることも転送することもできない。この 棄却は、転送処理がなされている最中でない限り、直ちに行われる。転送処理が 行われている最中である場合には、そのフレームの棄却は転送が終了するまでは 行われない。 G.転送終了スレッショルド 「転送終了スレッショルド」は、転送すべき残りのバイト数に基づいて早期転 送終了指示信号を供給するものである。(リード/ライト、4バイト、1 32 ビット・ワード) 「転送終了スレッショルド」レジスタは、「転送終了」指示信号をホストに発 生する前にアダプタからホストへ転送すべきフレームのフレームの終わりから数 えたバイト数を指定するのに用いられる。転送すべき残りのバイト数が「転送終 了スレッショルド」の値と等しいか、あるいはこれよりも小さい場合には、(も し、マスクされていなければ)「転送終了」指示信号がセットされる。ビット1 0から0だけを用いてこのレジスタは具現される。ただし、最大フレーム長さよ りも大きな値が与えられると、正しい動作を行うことができない。この機能をデ ィスエーブルとするには、レジスタを0にセットすればよい。 転送中のフレームの受信がまだ行われている途中に、「転送終了スレッショル ド」条件が満たされた場合には、そのフレームが受信されるまで「転送終了」は 延期される。「転送終了」がこのようにして延期された場合には、このレジスタ の値は、「左側長さスレッショルド」に基づいて置き換えられて、早期「転送終 了」指示信号を発生するのに用いられる。 もし、転送が開始されたときに、全フレームの受信が終了している場合には、 転送長は、実際のフレーム長と、「転送領域」を介して転送リクエストがなされ たバイト数とのうちのより小さい方となる。転送が開始されたとき、フレームが 依然として受信されている場合には、その長さは、長さフィールドの値に14を 加算した値であるものと仮定される。長さフィールドの値が1,500よりも大 きく、かつ、8137(hex)(すなわち、特別なフレームの種類の識別子)と 等しくなければ、そのフレームの長さは1500バイトであるものと仮定される 。最後に、もし、長さフィールドが8137(hex)を含んでいる場合には、受 信フレームのバイト17と18とにそのフレームの長さの値が含まれているもの と仮定される。仮定されたこの長さは、そのフレームが完全に受信されたときに 、実際のフレームのサイズと、リクエストされている転送バイト数とのうちの小 さい方に変更される。 この値はホストによって調整することが可能であり、この値によって転送終了 指示信号に対して早く応答し過ぎることが、どの程度頻繁に起こり、また、遅す ぎるかあるいは時間通りとなるのが、どの程度頻繁に起こるのかが定まる。もし 、ホストが早く応答し過ぎている場合には、「転送状態」は、状態が無定義とな っていることおよび転送が早く終了することを示すff(hex)を返す。このレ ジスタはリセットによって0に設定される。 H.転送状態 「転送状態」は受信フレーム転送状態を返す。(リード・オンリー、4バイト 、1 32ビット・ワード) このレジスタを読み取ると、受信フレーム転送の試みの状態が返される。返さ れる値として可能なものは、正孔に対する0(hex)、失敗に対するa(hex)、 および未知に対するff(hex)である。転送が進行中の間は、「転送状態」は ff(hex)に設定される。ホスト・バスに対する過大な待ち状態に遭遇した場 合、または、欠陥のあるフレームを受信した場合には、転送失敗が起こる。この レジスタを読み取ると、「指示理由」レジスタ内の「転送終了」が認知(リセッ ト)さ れる。 VI.割込みおよび指示ロジック ネットワーク・アダプタは割込みを発生し、ホストに非同期イベントをアテン ションすべきことを指示する。一つの実施例において、ネットワーク・アダプタ が、EISAオープンコレクタ、レベルセンス共有割込み設計を用いる。EIS A設計において、ネットワーク・アダプタは、割込みをアサートし、ホストが割 込み原因をサービスしたときまで信号のアサートを維持しなければならない。多 重ネットワーク・アダプタは、同一の割込みラインをアサートできる。すべての ネットワーク・アダプタが割込みアサートを解放するまで、割込みラインはアサ ートされている。 割込みサービス・ルーチンを出る前に、ホストはネットワーク・アダプタ状態 レジスタを再チェックする。レジスタは、割込みサービス・ルーチン実行中に、 他の非同期ネットワーク・アダプタイベントが生じたことを指示できる。 本発明の一つの実施例において、以下のレジスタが、図4の「割込みコントロ ーラ・モジュール」60に常駐しており、ホスト・プロセッサに対してネットワ ーク・アダプタ・イベントの割込み信号及び/又は指示信号を発生するために用 いられる。マスク・レジスタに書き込むことにより指示信号および割込み信号の 発生をイネーブルでき及び/又はディスエーブルできるホスト・プロセッサが、 多数のレジスタにアクセスできる。 A.割込み理由 割込みに応答するとき、ホストは、すべての保留割込みの原因を指示するため に用いられる「割込み理由」レジスタを読み取ることができる。5から1までの ビットが、このレジスタにおいてインプリメントされる。ビット0はゼロに設定 される。これは16ビット・オフセットのディスパッチ・テーブルを許容するも のであり、保留割込みを処理するために使用される。このレジスタのすべてのビ ットは、「指示マスク」および「割込みマスク」に記憶された値によるものであ り、一方でいくつかのビット(「受信完了」、「早期受信」、および「他の割込 み」)は「指示カウンタ」によるものである。 このレジスタのビットは以下のように定義される。 ビット1 伝送終了 ビット2 受信完了 ビット3 早期受信 ビット4 転送終了 ビット5 他の割込み これらの各ビットは、以下に説明するように「指示理由」と同一の定義および 目的を有する。 ネットワーク・アダプタ上の割込みソースのいずれもが、「割込み理由」を読 み取ることによっては確認されない。割込みソースの各々が、その割込みのタイ プに特有の方法で個別的に確認されなければならない。一般に、確認機構は、通 常の状態収拾プロセスの一部であり、それ以上のオーバヘッドをホスト・プロセ ッサに課すものではない。ホストが割込みに特有のアクションをとることによっ て、割込みを確認する。そのアクションは以下の通りである。 「伝送終了」は、「伝送プロトコル識別子」を読み取ることにより確認される 。 「受信完了」は、「受信フレーム状態」を読み取ることにより確認される。 「早期受信」は、「利用可能受信バイト」を読み取ることにより確認される。 「転送終了」は、「転送状態」を読み取ることにより確認される。 「他の割込み」は、「他の割込み」レジスタに示されるいろいろな割込み指示 を確認することにより確認される。 B.他の割込み 「他の割込み」レジスタは、ホストに対していろいろな雑保留割込みの原因を 指示するのに用いられる。1から4までのビットのみがこのレジスタでインプリ メントされる。ビット0は常に「ゼロ」に設定され、16ビット・オフセットの ディスパッチ・テーブルの使用を可能にする。 「他の割込み」指示ビットは、このレジスタのいかなる指示ソースが設定され たときでも、「割込み理由」に設定される。 このレジスタのビットは以下のように定義される。 ビット1 リクエストされた割込み ビット2 伝送アンダーラン ビット3 統計量更新 ビット4 利用可能伝送資源 「リクエストされた割込み」ビットは、ホストが「割込みリクエスト」に書き 込むことによって割込みを発生した時に、設定される。この割込みは、「割込み リクエスト」を読み取ることによって確認される。 割込みが発生する時、伝送アンダーラン・エラーが生じたために、「伝送アン ダーラン」ビットが設定される。この割込みは、ホストからアダプタへの転送デ ート速度が、アダプタからネットワークへの転送デート速度よりも遅かったこと を指示する。「伝送アンダーラン」割込みは、「伝送開始スレッショルド」に適 当な値をプログラムするのに用いられる。このビットは、「伝送領域」に書き込 まれる「伝送リクエスト処理」の値にかかわらずに設定される。この割込みは、 「伝送開始スレッショルド」を読み取ることによって確認される。 アダプタが維持する統計量の最上位ビット(ビット31)がゼロから1に遷移 する時に、「統計量更新」ビット指示が生じる。「統計量更新」は、アダプタ・ モード中の「統計量収拾エントリ」をクリアにすることによって確認される。 ネットワーク・アダプタの「伝送記述子バッファ領域」内の資源が解放された 時、「利用可能伝送資源」指示が設定される。この指示は、「伝送領域」への書 込みによって確認される。 C.割込みマスク 「割込みマスク」レジスタが用いられ、「指示理由」および「他の指示」に設 定された指示ソースが「割込み理由」および「他の割込み」に設定されるのを妨 げる。このことは、アダプタが実際に割込みラインをホストにアサートさせるこ とを指示ソースが行うことを妨げる。本発明の実施例において、6から1までの ビットのみがこのレジスタ内でインプリメントされるが、別の実施例においては 、単一ビットもしくはnビットを使用するレジスタが用いられ、単一もしくはn の 指示ソースをマスクすることができる。個々の指示ソースは、対応するマスク・ ビットを1に設定することによってマスクを外される。これらのビットは以下に 説明するようにレジスタ内に整列される。 ビット1 伝送終了 ビット2 受信完了 ビット3 早期受信 ビット4 転送終了 ビット5 リクエスト割込み ビット6 伝送アンダーラン このレジスタのエントリによりマスクを外された指示ソースは、「割込み理由 」および「他の割込み」において対応するビットが設定されることを妨げる。こ のレジスタは、ビットが「指示理由」もしくは「他の指示」に設定されることに 何の影響も与えない。リセット中は、「リセット・マスク」のビット10がクリ アにされると、レジスタのアクティブ部分のすべてのビットが1に設定される。 割込みのマスキングは、指示のマスキングとは異なる。割込みがマスクされ、 指示がマスクされない時には、割込み指示ビットは「指示理由」に設定されるこ とが可能であるが、マスクされた割込みはイネーブルされず、ホストに割込みを 生じさせない。 D.指示理由 「割込み理由」に関して、割込みに対応する時、ホストは「指示理由」レジス タを読み取ることができる。レジスタはホストに非同期ネットワーク・アダプタ ・イベントを指示するために用いられ、このイベントは割込みの原因となるか、 もしくはならないかするものである。5から1までのビットのみが、このレジス タにおいてインプリメントされる。ビット0はゼロに設定される。このことによ り、16ビット・オフセットのディスパッチ・テーブルが保留割込みを処理する ために用いられることが可能となる。このレジスタ内のすべてのビットが「指示 マスク」および「割込みマスク」に記憶される値によるものであり、一方で、い くつかのビット(「受信完了」、「早期受信」、および「他の割込み」)が「指 示カウンタ」によるものである。 このレジスタ内のビットは以下のように定義される。 ビット1 伝送終了 ビット2 受信完了 ビット3 早期受信 ビット4 転送終了 ビット5 他の指示 これらのビットの各々が、上述のように「割込み理由」におけるビットと同一 の定義および目的を有する。 E.他の指示 「他の指示」レジスタは、「他の割込み」とまさに同一のフォーマットを有す る。2つのレジスタの相違として、「他の割込み」に設定されたビットはEIS Aバス上に割込みを生じさせるが、「他の指示」はホストにさまざまな雑ネット ワーク・アダプタ・イベントを指示するためにのみ用いられる。1から4までの ビットのみがこのレジスタにインプリメントされる。ビット0は常に「ゼロ」に 設定される。このことによって、16ビット・オフセットのディスパッチ・テー ブルの使用が可能となる。 このレジスタの指示ソースのいずれかが設定される時に、「他の指示」ビット は「指示理由」に設定される。 ビット1 リクエストされた割込み ビット2 伝送アンダーラン ビット3 統計量更新 ビット4 利用可能伝送資源 ホストの「割込みリクエスト」への書込みにより割込みが発生すると、「リク エストされた割込み」ビットが設定される。この割込みは、「割込みリクエスト 」を読み取ることによって確認される。 割込みが発生する時、伝送アンダーラン・エラーが生じたために、「伝送アン ダーラン」ビットが設定される。この割込みは、ホストからアダプタへのデータ 転送速度が、アダプタからネットワークへのデート転送速度よりも遅かったこと を指示する。「伝送アンダーラン」割込みは、「伝送開始スレッショルド」に適 当な値をプログラムするのに用いられる。このビットは、「伝送領域」に書き込 まれる「伝送リクエスト処理」の値にかかわらずに設定される。この割込みは、 「伝送開始スレッショルド」を読み取ることによって確認される。 アダプタが維持する統計量の最上位ビット(ビット31)がゼロから1に遷移 する時に、「統計量更新」ビット指示が生じる。「統計量更新」は、アダプタ・ モード中の「統計量収拾エントリ」をクリアにすることによって確認される。 ネットワーク・アダプタの「伝送記述子バッファ領域」内の資源が解放された 時、「利用可能伝送資源」指示が設定される。この指示は、「伝送領域」への書 込みによって確認される。 F.指示マスク 「指示マスク」は、「割込みマスク」と同一の構造、およびそれと同様な機能 を備える。用いられる「指示マスク」レジスタは、ある指示ソースが「指示理由 」および「他の指示」において設定されるのを妨げる。本実施例において、6か ら1までのビットのみが、このレジスタにおいてインプリメントされるが、別の 実施例においては、単一ビットもしくはnビット使用のレジスタが、単一もしく はnの指示ソースをマスクするために用いられてもよい。ビット0は永久的にゼ ロに設定される。個々の指示ソースは、対応するマスク・ビットを1に設定する ことにより、マスクを外される。ビットは以下のようにレジスタ内で整列される 。 ビット1 伝送終了 ビット2 受信完了 ビット3 早期受信 ビット4 転送終了 ビット5 リクエストされた割込み ビット6 伝送アンダーラン このレジスタによりディスエーブルされる指示ソースは、「指示理由」、「他 の指示」、「割込み理由」ないしは「他の割込み」においてビットを設定しない 。リセット中に、「リセット・マスク」のビット10がクリアにされると、この レジスタのアクティブ部におけるすべてのビットが1に設定される。 G.指示カウンタ 「指示カウンタ」は、内部指示カウンタの値を判定するために用いられる。内 部指示カウンタにより、割込みがディスエーブルされることを必要とする多重ホ スト・サブルーチンにおいて、ホスト・ドライバは、割込みをイネーブルし且つ ディスエーブルするトラックを保持するソフトウェアをそれ以上必要としない。 このレジスタを読み取ることは、「指示カウンタ」の値に影響を及ぼさない。「 指示オフ」および「指示オン」に書き込むことは、各々「指示カウンタ」をイン クリメントしまたデクリメントする。 内部カウンタは、デクリメントされるまでff(hex)のカウントに制限され る8ビット・カウンタである。「指示オフ」への書込みの回数は、「指示オン」 への書込みの回数より255以上上回ってはならない。「指示オン」への書込み の回数が「指示オフ」への書込みの回数を上回った場合には、「指示カウンタ」 は00(hex)に制限される。「指示カウンタ」は、「指示オン」へ255回書 き込むことによって、0に設定されることが保証される。 ゼロでない「指示カウンタ」は、「伝送終了」、「転送終了」および「伝送ア ンダーラン」を除くすべての指示ソースが、「指示理由」、「他の指示」、「割 込み理由」および「他の割込み」において設定されるのを妨げる。 H.指示オフ 「指示オフ」の最下位バイトに調停値を書き込むことによって、ネットワーク ・アダプタの「指示カウンタ」値を1だけインクリメントさせる。 このレジスタの最下位バイトのみがアクティブであり、最上位3バイトへの書 込みは無視される。リセット中に、「リセット・マスク」のビット10がクリア になると、「指示カウンタ」値がゼロに設定される。 I.指示オン このレジスタの最下位バイトに調停値を書き込むことによって、アダプタの「 指示カウンタ」値が1だけデクリメントされる。このレジスタの最下位バイトの みがアクティブである。最上位3バイトへの書込みは無視される。リセット中に 、「リセット・マスク」のビット10がクリアになると、「指示カウンタ」がゼ ロに設定される。 J.受信指示 「受信指示」レジスタは、フレーム受信を処理した後に、ホスト・ドライバが いくつかの他の指示と同様に指示を、自動的に再イネーブルできる簡便な手段を 提供する。多くのホスト・ドライバによってはフレーム受信サブルーチンが再エ ントリされないために、フレーム受信サブルーチンを呼び出す前に「指示オフ」 へ書き込んで「指示カウンタ」をインクリメントすることによって、ドライバが 「受信完了」をマスクすることを通常は必要とされる。プロトコルがフレーム受 信サブルーチンから返された後に、ドライバは「受信終了」に書込み、現在のフ レームを棄却する。 現在のネットワーク・アダプタの機構により、ホスト・ドライバが、明示的に 「指示カウンタ」をデクリメントする必要性がなくなる。「受信指示」レジスタ がゼロでない値を含有しており、ホスト・ドライバによる「受信終了」の書込み が行われる時、「指示カウンタ」は自動的にデクリメントされ、「受信完了」指 示をマスクしない。 しかしながら、ホスト・ドライバが「受信終了」に書き込んだ後に「受信完了 」に対してマスクされた状態を保つよう望むならば、ドライバは、「受信終了」 に書き込む前に「受信指示」をクリアにしなければならない。「受信指示」をク リアにすることによって、ドライバが「受信終了」に書き込む時に、アダプタが 自動的に「指示カウンタ」をデクリメントすることをディスエーブルにする。 ホスト・ドライバのソフトウェアが「指示オン」および「指示オフ」への書込 みの明示コマンドの作成を望まない時に、このレジスタが使用される。自動的に デクリメントされる「指示カウンタ」に対して「受信終了」が書き込まれ又は 「割込みリクエスト」が読み取られる時、ホストはまず「受信指示」をゼロでな い値に確実に設定する。「受信終了」への書込みもしくは「割込みリクエスト」 からの読み取りの各々の間に、「受信指示」がff(hex)にリセットされる。 「指示カウンタ」がデクリメントされないために、ホストは、「受信終了」へ書 き込む前または「割込みリクエスト」から読み取る前に、「受信指示」を排他的 にクリアにしなければならない。「指示カウンタ」がゼロであり、「受信指示」 がゼロでない値を含有する場合に、「受信終了」が書き込まれ、または、「割込 みリクエスト」が読み取られた時には、「指示カウンタ」はデクリメントされな いが、ゼロ値に維持されたままである。「リセット」中にこのレジスタはff( hex)に設定される。 a.割込みコントローラ・レジスタ構成 図12は上述のレジスタ間の関係を示したものである。いろいろなレジスタが 連結され、状態情報の階層を作成し、種々の指示信号および割込み信号のレベル をそれらのマスクによって制御する。ホストに割込みが生じる前に、指示ソース が、三つのマスクを通過する。「指示カウンタ」202は第1のマスクであり、 指示である「リクエストされた割込み」、「受信完了」、および「早期受信」を 選択的にディスエーブルとすることができる。「指示カウンタ」202は、「指 示オン」、「指示オフ」、および「受信指示」により制御される。「指示カウン タ」202がゼロでない時、「受信完了」、「早期受信」、および「リクエスト された割込み」がマスクされ、「指示理由」206、「他の指示」205、「割 込み理由」210、または「他の割込み」209において設定されることがない 。指示信号「伝送アンダーラン」、「転送終了」、および「伝送終了」は、「指 示カウンタ」202により選択的にディスエーブルされることができない。 「指示マスク」204は第2のマスクであり、指示信号をマスクする。「指示 マスク」204は、「指示カウンタ」202でディスエーブルされる指示信号の サブセットというよりはむしろ各指示信号を選択的にディスエーブルする。「指 示マスク」204によりマスクされない指示信号は、「他の指示」205および 「指示理由」206に記憶される。 第3のマスクである「割込みマスク」208は、指示信号が割込みをホストに アサートすることを妨げる。「割込みマスク」208は、指示信号が「他の割込 み」209もしくは「割込み理由」210に記憶されるのを妨げる。 b.割込みコントローラ・レジスタへの書込み ホストがレジスタにアクセスできるために、「割込みコントローラ選択」が図 13に示されるようにアサートされなければならない。これは「ホスト・スレー ブ・アドレス」〔7:6〕をロジック220に入力することにより達成され、ロ ジック220は、「エイシック・レジスタ・デコード」および「ホスト・スレー ブ確認」とともに、ANDゲート222の入力に接続される。IC00(hex) から1C3C(hex)までのアドレスがアクセスされている時に、ANDゲート 222は、「割込みコントローラ選択」レジスタを出力する。他のいかなるモジ ュールも、現在、非同期サイクルを実行しておらず、選択信号をアサートしてい ないとの「ホスト・スレーブ確認」による指示が、ロジック220により確実に される。「エイシック・レジスタ・デコード」が、「エイシック」レジスタのみ がアクセスされていることを示す。 「割込みコントローラ選択」信号は、図14に示されるようにグリッチのみを 取り除くために遅延される。「遅延割込みコントローラ書込み」がアサートされ るために、「ホスト・スレーブ・アドレス」〔5〕および「ホスト・スレーブ・ アドレス」〔4〕が、01ないしは10のいずれかでなければならない。ロジッ ク・ブロック230は、書き込まれるべきレジスタが1C10(hex)および1 C2C(hex)の間であることを必要とする。「ホスト・スレーブ・アドレス」 〔4:5〕は、ロジック・ブロック230に入力され、ロジック・ブロック23 0の出力が、「割込みコントローラ選択」とともに、ANDゲート231に入力 される。さらに、「ホスト下位バイトEn」および「ホスト書込み」がANDゲ ート231に入力される。ANDゲート231の出力は「割込みコントローラ書 込み」となり、レジスタ232により一つのクロックサイクルだけ遅延させられ 、該レジスタ232は、「クロック」によりラッチされ、「遅延割込みコントロ ーラ書込み」をQ出力部で出力する。 「ホスト・スレーブ・アドレス」〔4:2〕は、図16に示されるように「遅 延割込みコントローラ書込み」とともに、個々のレジスタに書き込むために用い られる。「遅延割込みコントローラ書込み」および「サイクル終了」はANDゲ ート240に入力され、マルチプレクサ242のE入力部に入力される「割込み コントローラ書込みストローブ」を生成する。「ホスト・スレーブ・アドレス」 〔4:2〕は、「クロック」によりラッチされるレジスタ241のD入力部に入 力される。レジスタ241の出力は、マルチプレクサ242のS〔2:0〕に入 力される「遅延ホスト・スレーブ・アドレス」〔4:2〕である。「遅延ホスト ・スレーブ・アドレス」〔4:2〕は、「割込みコントローラ書込みストローブ 」が多重化される適当なレジスタを選択する。書込みストローブ出力は、「受信 指示書込みストローブ」、「割込みリクエスト書込みストローブ」、「指示マス ク書込みストローブ」、「割込みマスク書込みストローブ」、「指示オフ書込み ストローブ」、および「指示オン書込みストローブ」を含む。出力E2およびE 3は用いない。 図15は、レジスタを選択する際に用いられる「遅延ホスト・スレーブ・アド レス」〔4:2〕のコード・テーブルを示す。 「指示マスク」レジスタ250および「割込みマスク」レジスタ251が図1 7に示される。「指示マスク書込みストローブ」は「指示マスク」レジスタ25 0をクロックするために用いられ、「ホスト書込みデータ」〔6:1〕は「指示 マスク」レジスタ250および「割込みマスク」レジスタ251のD入力部に入 力される。「サイクル終了」の立ち下がりエッジに対応する書込みストローブの 立ち下がりエッジが、デートのラッチのために用いられる。しかしながら、「割 込みマスク書込みストローブ」信号の立ち下がりエッジはクロックとして使用さ れ、「割込みマスク」レジスタ251において「ホスト書込みデータ」〔6:1 〕をラッチする。「割込みコントローラ・リセット」は、レジスタ250および 251のリセットに用いられる。 「割込みリクエスト書込みストローブ」がアサートされる時に、図18の「リ クエストされた割込み」がアサートされる。「割込みリクエスト」レジスタを読 み取ることにより割込みが確認された時、「リクエストされた割込み」は、アサ ートされない。「割込みリクエスト」レジスタの書込みおよび読み取りは、「リ クエストされた割込み」をセットし、またリセットする。「割込みリクエスト書 込みストローブ」はレジスタ260をクロックし、そのレジスタ260は、D入 力を1にセットされてQ出力で「リクエストされた割込み」を出力する。「遅延 割込みリクエスト読み取り」および「サイクル終了」がANDゲート261に入 力され、ANDゲート261はORゲート262に、「割込みコントローラ・リ セット」の入力とともに「割込みリクエスト読み取りストローブ」を出力する。 ORゲート262の出力は、レジスタ260をリセットするために用いられる。 「遅延受信終了書込み」信号の発生は、図19に示されるように、いつ「受信 終了」が書き込まれるかを指示する。「ホスト・スレーブ・アドレス」〔7:2 〕はロジック・ブロック265に入力され、「受信終了」レジスタが選択された かどうかを判定する。ロジック・ブロック265の出力は、「エイシック・レジ スタ・デコード」、「ホスト書込み」、「ホスト・スレーブ確認」、および「ホ スト下位バイトEn」とともにANDゲート266に入力される。ANDゲート 266の出力は「受信終了書込み」であって、「受信終了書込み」は一つのクロ ックサイクルだけ遅延させられ、Q出力部で「遅延受信終了書込み」を出力する 「クロック」により同期させられるレジスタ267のD入力部に信号を入力する ことによりグリッチのない動作を提供する。 図20は、「受信指示レジスタ」〔7:0〕の生成を示す。ホストが「受信指 示」レジスタへの書込みを行う時、または、ホストが「受信終了」レジスタへの 書込みを行う時もしくは「割込みリクエスト」レジスタからの読み取りを行う時 に、「受信指示レジスタ」〔7:0〕の値は変化する。ORゲート272に入力 される「受信指示書込みストローブ」信号により示されるように、ホストが「受 信指示」レジスタへの書込みを行う場合には、「ホスト書込みデータ」〔7:0 〕のデータは、「受信指示入力」〔7:0〕としてレジスタ271に記憶される 。ORゲート276に入力される「遅延受信終了書込み」信号により示されるよ うに、ホストが「受信終了」レジスタに書込みを行う場合には、値FF(hex) が「受信指示」レジスタ271に記憶される。ORゲート271に入力される「 遅延 割込みリクエスト読み取り」信号に示されるように、ホストが「割込みリクエス ト」レジスタを読み取る場合には、値FF(hex)が「受信指示」レジスタ27 1に記憶される。 ORゲート276の出力である「遅延セット受信指示」は、「サイクル終了」 とともにANDゲート275に入力され、「セット受信指示ストローブ」を作成 する。「セット受信指示ストローブ」は、「受信指示書込みストローブ」ととも にORゲート272に入力され、新しい値が「受信指示」レジスタにロードされ るときはいつでも、ハイからローに移るストローブを作成する。「割込みコント ローラ・リセット」は、「受信指示」レジスタ271をリセットする。 「受信指示」レジスタがゼロでない値を含み、かつ「受信終了」への書込みが 行われ、もしくは「割込みリクエスト」が読み取られる時、「指示カウンタ」が デクリメントされる要求をインプリメントするために、「受信指示」レジスタの 出力がORゲート273に入力される。ORゲート273の出力は、「セット受 信指示ストローブ」とともにANDゲート274に入力され、「受信指示デクリ メント」を出力する。「受信指示デクリメント」は、「指示カウンタ」をデクリ メントするために用いられる。 c.割込みコントローラ・リクエストの作成 「リクエストされた割込み」、「早期受信」、「受信完了」割込みは、「指示 カウンタ」が0以外の値をとる場合に、マスクされてもよい。図21は、「指示 カウンタ」がいつゼロになるかを判定するために用いられる「指示カウンタはゼ ロ」の生成を図示したものである。「指示カウンタ」〔7:0〕のすべてのビッ トのOR動作を行い、ORゲート280で結果を反転することによって、「指示 カウンタはゼロ」がアサートされる。 図22は、「他の指示」および「他の割込み」レジスタについての値がどのよ うに生成されるかを示す。「他の指示」および「他の割込み」レジスタが、「リ クエストされた割込み」および「伝送アンダーラン」信号のAND動作をとるこ とによって形成され、その値をマスクする。「指示カウンタはゼロ」および「リ クエストされた割込み」はANDゲート281に入力される。ANDゲート 281の出力は、「指示マスク・レジスタ」〔5〕とともにANDゲート282 に送られる。ANDゲート282の出力は「他の指示」〔1〕である。「割込み マスク・レジスタ」〔5〕は、「他の指示」〔1〕とともにANDゲート283 に入力される。ANDゲート283の出力は「他の割込み」〔1〕である。「伝 送アンダーラン」および「指示マスク・レジスタ」〔6〕はANDゲート284 に入力され、「他の指示」〔2〕を出力する。「割込みマスク・レジスタ」〔6 〕は、「他の指示」〔2〕とともにANDゲート285に入力され、「他の割込 み」〔2〕を出力する。 「指示理由」および「割込み理由」レジスタにおける値は、上記の「他の指示 」および「他の割込み」レジスタと同様に生成される。図23は、「指示理由」 および「割込み理由」レジスタの値の生成について示す。「ダウンロード伝送終 了」は「トランスミット伝送終了」とともにORゲート290に入力され、その 出力は「指示マスク・レジスタ」〔1〕とともにANDゲート291に入力され る。ANDゲート291の出力は、「指示理由」〔1〕の最初のビット値となる 。「割込みマスク・レジスタ」〔1〕は、「指示理由」〔1〕とともにANDゲ ート292に入力され、「割込み理由」〔1〕を出力する。同様に、「指示カウ ンタはゼロ」および「受信完了」はANDゲート293に入力され、その出力は 「指示マスク・レジスタ」〔2〕とともにANDゲート294に送られる。AN Dゲート294の出力は、「割込みマスク・レジスタ」〔2〕とともにANDゲ ート295に入力される「指示理由」〔2〕となる。「割込み理由」〔2〕がA NDゲート295で出力される。 「指示カウンタはゼロ」および「早期受信」はANDゲート296に入力され 、その出力はANDゲート297に送られる。別に「指示マスク・レジスタ」〔 3〕がANDゲート297に入力され、「指示理由」〔3〕がその出力となる。 「割込み理由」〔3〕は、ANDゲート298に入力される「指示理由」〔3〕 および「割込みマスク・レジスタ」〔3〕により生成される。 「転送終了」および「指示マスク・レジスタ」〔4〕は、ANDゲート299 に入力され、「指示理由」〔4〕を出力する。「割込みマスク・レジスタ」〔4 〕および「指示理由」〔4〕がANDゲート300に入力され、「割込み理由」 〔4〕を生成する。「指示理由」〔5〕は、「他の指示」〔1〕および「他の指 示」〔2〕をORゲート301に入力することにより生成され、また「割込み理 由」〔5〕は、「他の割込み」〔1〕および「他の割込み」〔2〕をORゲート 302に入力することにより生成される。 図24は、「割込み発生」信号の作成を示す。「割込み理由」〔5:1〕の信 号のいずれかがアサートされる時、ORゲート303に「割込み理由」〔5:1 〕を入力することにより「割込み発生」信号がアサートされる。 図25は、「割込みリクエスト」信号の生成を図示したものである。「割込み リクエスト」9−12もしくは「専用割込み」上に割込みリクエストを作成する ためには、「カード・イネーブル」がアサートされなければならない。「カード ・イネーブル」および「割込み発生」はANDゲート305に入力され、その出 力はマルチプレクサ306のY入力に入力される。「専用割込み選択」はマルチ プレクサ306のS入力に入力される。「専用割込み選択」は、割込みが、「専 用割込み」信号となるか、あるいは「割込みリクエスト」9−12の信号の一つ となるかを判定するのに使用される。マルチプレクサ306の0出力部はマルチ プレクサ304のY入力部に入力され、マルチプレクサ306の1出力部からの 信号は「専用割込み」信号となる。割込みが「割込みリクエスト」9−12の信 号の一つで発生させられることになると、マルチプレクサ304のS〔1:0〕 に入力される「割込みレベル選択」〔1:0〕は、選択された割込みのレベルを 選択するために用いられる。マルチプレクサ304の出力0−3はそれぞれ「割 込みリクエスト」9、「割込みリクエスト」10、「割込みリクエスト」11、 および「割込みリクエスト」12を出力する。 d.割込みコントローラ・レジスタの読み取り ホストが割込みコントローラ・レジスタからデータを読み取るために、図26 に示されるように、マルチプレクサ310のS〔3:0〕入力部に、「ホスト・ スレーブ・アドレス」〔5:2〕上のレジスタの適当なアドレスをまず提供する 。割込みコントローラは、「ホスト・スレーブ・アドレス」〔5:2〕により選 択されたレジスタからのデータを伴って、マルチプレクサ310のY出力部で「 生 の割込みデータ」〔7:0〕をドライブする。「指示理由」〔5:1〕はマルチ プレクサの0入力部に入力される。同様に、「割込み理由」〔5:1〕、「他の 指示」〔2:1〕、「他の割込み」〔2:1〕、「指示マスク・レジスタ」〔6 :1〕、および「割込みマスク・レジスタ」〔6:1〕は、それぞれマルチプレ クサ310の1から5までの入力部に入力される。「受信指示レジスタ」〔7: 0〕および「指示カウンタ」〔7:0〕は、マルチプレクサ310の入力部8と 10に入力される。残りの入力部は0に設定される。 図27は、読み取り中に、「生の割込みデータ」〔7:0〕が変化しないこと を示す。「ホスト・スレーブ確認」は、「クロック」により同期されるレジスタ 316のD入力部に入力され、Q出力部で「遅延ホスト・スレーブ確認」を出力 し、「クロック」により同期されるレジスタ317のD入力部に送られる。「ホ スト・スレーブ確認」は2クロック・サイクルだけ遅延させられ、「遅延ホスト ・スレーブ確認」を作成し、また「生の割込みデータ」〔7:0〕をラッチする のに用いられる「ダブル遅延ホスト・スレーブ確認」を作成する。このため、「 サイクル終了」がアサートされる頃には、レジスタ315のQ出力部から出力さ れる「割込みデータ」〔7:0〕が変化しない。 図28の「遅延割込みリクエスト読み取り」は、「割込みリクエスト」レジス タがいつ読み取られるかを指示する。「割込みコントローラ選択」、「ホスト下 位バイトEn」、および「ホスト書込み」はANDゲート320に入力され、「 割込みコントローラ読み取り」を出力する。「割込みコントローラ読み取り」は D型フリップフロップ・レジスタ321に入力される。レジスタ321は、「ク ロック」により同期させられ、ANDゲート324に入力される「遅延割込みコ ントローラ読み取り」をQ出力部で出力する。「ホスト・スレーブ・アドレス」 〔5:2〕は、ロジック322に入力され、「ホスト・スレーブ・アドレス」〔 5:2〕が「割込みリクエスト」レジスタにアクセスする時に「割込みリクエス ト・アドレス」を出力する。「割込みリクエスト・アドレス」は、「クロック」 により同期させられるD型フリップフロップ・レジスタ323に入力され、レジ スタ323はQ出力部で「遅延割込みリクエスト・アドレス」をANDゲート3 24に出力する。「遅延割込みリクエスト読み取り」はANDゲート324か ら出力される。 図29は、割込みコントローラの8ビット指示カウンタを図示したものである 。カウンタは、「指示オフ」レジスタに書込みが行われる時にインクリメントさ れ、「指示オン」レジスタに書込みが行われる時にデクリメントされる。ORゲ ート334に入力される「指示オフ書込みストローブ」は、「指示オフ」レジス タへの書込みが行われるかどうかを指示し、ORゲート335に入力される「指 示オン書込みストローブ」信号は、「指示オン」レジスタがいつ書き込まれるか を指示する。「受信終了」レジスタへの書込みが行われる時、または「割込みリ クエスト」レジスタが読み取られる時に、カウンタがデクリメントされるが、「 受信指示」レジスタはゼロ以外の値を含有する。「割込みコントローラ・リセッ ト」は、ORゲート334およびORゲート335に入力される。「受信指示デ クリメント」もまた、ORゲート335に入力される。ORゲート334および 335の出力は、おのおのマルチプレクサ332の入力部S0およびS1に入力 される。 「指示カウンタ」〔7:0〕はロジック330および331にフィード・バッ クされ、それぞれのロジックは、「指示カウント・プラス・ワン」〔7:0〕、 「指示カウント・マイナス・ワン」〔7:0〕をマルチプレクサ332の入力部 1、2のそれぞれに出力する。「指示カウンタ」〔7:0〕はマルチプレクサ3 32の入力部0および3にフィード・バックされる。マルチプレクサ332は、 「クロック」により同期させられ且つQ出力部で「指示カウンタ」〔7:0〕を 出力するレジスタ333のD入力部に、「次の指示カウンタ」〔7:0〕をS出 力部から出力する。 カウンタがゼロであり、デクリメント信号の一つがアサートされる時、カウン タはゼロに維持され、FF(hex)にデクリメントされない。同様に、カウンタ がFF(hex)であって、インクリメント信号がアサートされる時、カウンタは FF(hex)であってゼロにインクリメントされない。 IX.結論 本発明において、ホストがネットワーク・アダプタ非同期イベントに対する指 示および割込みを、イネーブルし及び/又はディスエーブルできることになる。 ネットワーク・アダプタは、指示および割込み信号をイネーブルし及び/又はデ ィスエーブルする割込みおよび指示ロジックを有する割込みコントローラ・モジ ュールを備える。割込みおよび指示ロジックは、三つのホストがアクセス可能な レジスタを有しており、それらはホストに対する指示および割込み信号をマスク するために用いられる。更に、割込みおよび指示ロジックは、非同期イベントが 生じたことを指示する値を含有する四つのメモリ・ロケーションを備える。 「指示カウンタ」、「指示マスク」、および「割込みマスク」は、指示信号お よび割込み信号を選択的にディスエーブルするか、あるいはイネーブルするレジ スタである。「指示カウンタ」は、「リクエストされた割込み」、「早期受信」 、および「受信完了」の指示信号のサブセットをディスエーブルするか、あるい はイネーブルする。ネットワーク・アダプタ指示信号のサブセットは割込みを生 じさせることができ、ホスト・フレーム受信サブルーチン実行中は、ホスト・プ ロセッサはその割込みをサービスすることができない。更に、内部指示カウンタ は、指示信号のこのサブセットを、明示的な「指示カウンタ」への書込みを行わ ずに、自動的にイネーブルするか、あるいはディスエーブルすることができる。 自動的にディスエーブル、あるいはイネーブルすることは、「指示オフ」もしく は「指示オン」への明示的な書込みによって無視されてもよい。 「指示マスク」は、「伝送アンダーラン」、「転送終了」、および「伝送終了 」と同様に、上述の個々の指示信号を選択的にディスエーブルするために用いら れる。 最後に、「割込みマスク」は指示信号を選択的にディスエーブルするために用 いられ、個々の指示信号に対応する割込み信号の発生を抑制する。 「他の指示」、「指示理由」、「他の割込み」および「割込み理由」は、割込 みロジックおよび指示ロジックにおけるホストが読み取ることができるメモリ・ ロケーションである。これらのメモリ・ロケーションは、ネットワーク・アダプ タ非同期イベントを表す指示値および割込み値を含有する。「他の指示」および 「指示理由」は、「指示カウンタ」および「指示マスク」がマスクしなかった指 示信号を表す値を含有する。「他の割込み」および「割込み理由」は、「割込み マスク」がマスクしないホスト割込み信号を発生する割込み値を含有する。 以上に本発明の好適な実施例について説明したが、これらはあくまでも例示的 なものである。本発明は、上記の詳細な形だけに限定されるものではない。いろ いろな変形・変更が可能であることは当業者には明らかなことであろう。上記の 実施例は、本発明の原理と、その実際の応用とについて説明するのに最も適切な ものを選んだものであり、本発明を特定の用途に対して適するようにいろいろな 形で実施し変形することが可能であることは、当業者には明らかなことであろう 。本発明の範囲は以下の請求の範囲によって定義され、またこれと等価なものを 含むものである。
【手続補正書】特許法第184条の8 【提出日】1995年5月3日 【補正内容】 請求の範囲 1.指示信号のソースより供給される指示信号を管理し、ホストに割込み信号 を送る装置であって、 前記指示信号を受信し、前記指示信号の少なくとも一部を選択的にマスクする ことができ、指示値を出力する第1のマスク・ロジックと、 前記第1のマスク・ロジックに接続され、前記指示値を記憶する第1のメモリ ・ロケーションと、 前記第1のメモリ・ロケーションに接続され、前記指示値を受信し、前記指示 値の少なくとも一部を選択的にマスクすることができ、割込み値を出力する第2 のマスク・ロジックと、 前記第2のマスク・ロジックに接続され、前記割込み値を記憶する第2のメモ リ・ロケーションと、 前記第2のメモリ・ロケーションに接続され、前記割込み値に応答し、前記ホ ストに対する割込み信号を生成する割込み手段、 とを有する装置。 2.指示信号のソースより供給される複数の指示信号を管理し、割込みサービ ス・ルーチンおよびホスト・データ・バスを有するホスト・プロセッサを備える ホストに割込み信号を送る装置であって、 複数の指示信号を受信し、複数の指示信号の少なくとも一つのサブセットを選 択的にマスクできるカウンタ・マスク・ロジックと、 カウンタ・マスク・ロジックに接続され、個々の指示信号を受信し、前記個々 の指示信号を選択的にマスクでき、指示値を出力する指示マスク・ロジックと、 前記指示マスク・ロジックに接続され、前記指示値を記憶する指示メモリ・ロ ケーションと、 前記指示メモリ・ロケーションに接続され、前記指示値の少なくとも一部を受 信し、前記指示値の少なくとも一部を選択的にマスクでき、割込み値を出力する 割込みマスク・ロジックと、 前記割込みマスク・ロジックに接続され、前記割込み値を記憶する割込みメモ リ・ロケーションと、 前記割込みメモリ・ロケーションに接続され、前記割込み値に応答し、前記ホ スト・プロセッサに対して前記ホスト・データ・バス上に割込み信号を生成する 割込み手段、 とを有する装置。 3.指示信号のソースより供給される複数の指示信号を管理し、割込みサービ ス・ルーチンおよびホスト・データ・バスを有するホスト・プロセッサを備える ホストに割込み信号を送る装置であって、前記装置は、 複数の指示信号を受信し、複数の指示信号の少なくとも一つのサブセットを選 択的にマスクできるカウンタ・マスク・ロジックと、 前記カウンタ・マスク・ロジックに接続され、個々の指示信号を受信し、前記 個々の指示信号を選択的にマスクでき、指示値を出力する指示マスク・ロジック と、 前記指示マスク・ロジックに接続され、前記指示値を記憶する指示メモリ・ロ ケーションと、 前記指示メモリ・ロケーションに接続され、前記指示値の少なくとも一部を受 信し、前記指示値の少なくとも一部を選択的にマスクでき、割込み値を出力する 割込みマスク・ロジックと、 前記割込みマスク・ロジックに接続され、前記割込み値を記憶する割込みメモ リ・ロケーションと、 前記割込みメモリ・ロケーションに接続され、前記割込み値に応答し、前記ホ スト・プロセッサに対して前記ホスト・データ・バス上に割込み信号を生成する 割込み手段、とを有するものであり、 前記ホストは複数のサブルーチンを備えるホスト・ソフトウェアを含んでおり 、前記カウンタ・マスク・ロジックが、 カウンタ値を含有するカウンタ・メモリ・ロケーションと、 少なくとも一つの第1サブルーチンにより生成された第1ホスト信号に応答 して、前記カウンタ・メモリ・ロケーションにおける前記カウンタ値をインクリ メントする手段と、 少なくとも一つの第2サブルーチンにより生成された第2ホスト信号に応答 して、前記カウンタ・メモリ・ロケーションにおける前記カウンタ値をデクリメ ントする手段と、 前記カウンタ・メモリ・ロケーションの前記カウンタ値に応答して、複数の 指示信号の前記のサブセットをマスクする手段とを有することを特徴とする装置 。 4.ネットワークに接続されたネットワーク・トランシーバと、ホスト・プロ セッサを有するホスト・システムとの間のデータを転送するネットワーク・アダ プタであって、前記ネットワーク・アダプタはホスト・プロセッサが管理するネ ットワーク・アダプタ・イベントに応答して複数の指示信号を生成し、割込み信 号をホスト・プロセッサに送るものであり、 複数の指示信号を受信し、複数の指示信号の少なくとも一つのサブセットを選 択的にマスクでき、第1レジスタを含み、前記第1レジスタへの前記ホスト・プ ロセッサの書込みに応答して複数の指示信号の前記サブセットを選択的にマスク するカウンタ・マスク・ロジックと、 前記カウンタ・マスク・ロジックに接続され、複数の指示信号の一部の中から 個々の指示信号を受信し、個々の指示信号を選択的にマスクして個々の指示値を 出力でき、第2レジスタを含み、前記第2レジスタへの前記ホスト・プロセッサ の書込みに応答して個々の指示信号を選択的にマスクする指示マスク・ロジック と、 前記指示マスク・ロジックに接続され、個々の指示値を記憶し、前記ホスト・ プロセッサにより読み取りを行う指示メモリ・ロケーションと、 前記指示メモリ・ロケーションに接続され、個々の指示値を受信し、個々の指 示値を選択的にマスクでき、第3レジスタを含み、選択的に個々の指示値をマス クでき、前記第3レジスタへの前記ホスト・プロセッサによる書込みに応答して 割込み値を出力する割込みマスク・ロジックと、 前記割込みマスク・ロジックに接続され、前記割込み値を記憶し、前記ホスト ・プロセッサにより読み取りを行う割込みメモリ・ロケーションと、 割込みメモリ・ロケーションに接続され、前記割込み値に応答して前記ホスト ・プロセッサヘ割込み信号を生成する割込み手段と、 を有するネットワーク・アダプタ。 5.ネットワークに接続されたネットワーク・トランシーバと、ホスト・プロ セッサを有するホスト・システムとの間のデータを転送するネットワーク・アダ プタであって、ネットワーク・アダプタはホスト・プロセッサが管理するネット ワーク・アダプタ・イベントに応答して複数の指示信号を生成し、割込み信号を ホスト・プロセッサに送る前記ネットワーク・アダプタは、 複数の指示信号を受信し、複数の指示信号の少なくとも一つのサブセットを選 択的にマスクでき、第1レジスタを含み、前記第1レジスタへの前記ホスト・プ ロセッサの書込みに応答して複数の指示信号の前記サブセットを選択的にマスク するカウンタ・マスク・ロジックと、 前記カウンタ・マスク・ロジックに接続され、複数の指示信号の一部の中から 個々の指示信号を受信し、個々の指示信号を選択的にマスクして個々の指示値を 出力でき、第2レジスタを含み、前記第2レジスタへの前記ホスト・プロセッサ の書込みに応答して個々の指示信号を選択的にマスクする指示マスク・ロジック と、 前記指示マスク・ロジックに接続され、個々の指示値を記憶し、前記ホスト・ プロセッサにより読み取りを行う指示メモリ・ロケーションと、 前記指示メモリ・ロケーションに接続され、個々の指示値を受信し、個々の指 示値を選択的にマスクでき、第3レジスタを含み、選択的に個々の指示値をマス クでき、前記第3レジスタへの前記ホスト・プロセッサによる書込みに応答して 割込み値を出力する割込みマスク・ロジックと、 前記割込みマスク・ロジックに接続され、前記割込み値を記憶し、前記ホスト ・プロセッサにより読み取りを行う割込みメモリ・ロケーションと、 割込みメモリ・ロケーションに接続され、前記割込み値に応答して前記ホスト ・プロセッサヘ割込み信号を生成する割込み手段とを有しており、 前記ホストは複数のサブルーチンを有するホスト・ソフトウェアを含み、前 記カウンタ・マスク・ロジックが、 少なくとも一つの第1サブルーチンにより生成される第1ホスト信号に応 答して前記第1レジスタのカウンタ値をインクリメントする手段と、 少なくとも一つの第2サブルーチンにより生成される第2ホスト信号に応 答して前記第1レジスタのカウンタ値をデクリメントする手段 とを有することを特徴とするネットワーク・アダプタ。 6.ネットワークに接続されたネットワーク・トランシーバと、ホスト・プロ セッサおよびホスト・ソフトウェア・サブルーチンを有するホスト・システムと の間のデータを転送するネットワーク・アダプタであって、前記ネットワーク・ アダプタは前記ホスト・プロセッサが管理するデータの転送に応答して複数の指 示信号を生成し、割込み信号を前記ホスト・プロセッサに送るものであって、 複数の指示信号を受信し、複数の指示信号の少なくとも一つのサブセットを選 択的にマスクでき、第1レジスタを含み、ホスト・ソフトウェア・サブルーチン 実行中に前記第1レジスタへのホスト・プロセッサの書込みに応答して複数の指 示信号の前記サブセットを選択的にマスクするカウンタ・マスク・ロジックと、 前記カウンタ・マスク・ロジックに接続され、複数の指示信号の中から個々の 指示信号を受信し、個々の指示信号を選択的にマスクして個々の指示値を出力で き、第2レジスタを含み、前記第2レジスタへのホスト・プロセッサによる書込 みに応答して個々の指示信号を選択的にマスクする指示マスク・ロジックと、 前記指示マスク・ロジックに接続され、高い優先順位の個々の指示信号を表す 個々の指示値を記憶し、ホスト・ソフトウェア・サブルーチン実行中にホスト・ プロセッサによる読み取りを行う第1指示メモリ・ロケーションと、 前記指示マスク・ロジックに接続され、低い優先順位の個々の指示信号を表す 個々の指示値を記憶し、ホスト・ソフトウェア・サブルーチン実行中にホスト・ プロセッサにより読み取りを行う第2指示メモリ・ロケーションと、 前記第1および第2指示メモリ・ロケーションに接続され、前記指示マスク・ ロジックによりディスエーブルされなかった個々の指示値を選択的にディスエー ブルし、第3レジスタを含み、前記第3レジスタへのホスト・プロセッサによる 書込みに応答して個々の指示値を選択的にディスエーブルする割込みマスク・ロ ジックと、 前記割込みマスク・ロジックに接続され、個々の高い優先順位である指示値を 表す割込み値を記憶し、ホスト・プロセッサにより読み取りを行う第1割込みメ モリ・ロケーションと、 前記割込みマスク・ロジックに接続され、個々の低い優先順位である指示値を 表す割込み値を記憶し、ホスト・プロセッサにより読み取りを行う第2割込みメ モリ・ロケーションと、 前記第1および第2割込みメモリ・ロケーションに接続され、前記割込み値に 応答して前記ホスト・プロセッサへの割込み信号を生成する割込み手段と、 を有するネットワーク・アダプタ。 7.ネットワーク・インタフェース・デバイスからホスト・システムへの信号 の転送を管理する方法であって、前記信号は、発生したイベントまたは前記ネッ トワーク・インタフェース・デバイスにより検出されたイベントを指示するもの であり、 前記ホストが知る必要があるイベントを識別し、 第1のマスクによりイベントの少なくとも一部を選択的にマスクして、第1指 示信号を出力し、 前記第1マスクに応答して、ホストがアクセスできるストアに前記第1指示信 号を記憶し、 イベントを前記第1指示信号から識別して、ホストに割込みを生じさせ、 第2マスクにより前記第1指示信号の少なくとも一部を選択的にマスクし、第 2指示信号を出力して、ホストに割込みを生じさせるステップを有することを特 徴とする信号伝送管理方法。 8.ホスト・プロセッサによる指示信号を管理する方法であって、前記指示信 号はネットワーク・アダプタで生じているデータ転送イベントに応答して前記ネ ットワーク・アダプタから生成されるものであり、 前記ネットワーク・アダプタと前記ホスト・プロセッサの間のデータ・パスの 一部に沿って前記指示信号を提供し、 第1マスク・パターンを有する第1マスクで指示信号の少なくとも一つのサブ セットを選択的にマスクして、第1のマスクされた信号の一セットを出力し、 第2マスク・パターンを有する第2マスクで前記第1のマスクされた信号の少 なくとも一つのサブセットを選択的にマスクして、第2のマスクされた信号の一 セットを出力し、 前記指示信号、前記第1マスク、および前記第2マスクに応答して、ホスト割 込み信号を前記ホスト・プロセッサに送るステップを有することを特徴とする信 号管理方法。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーターセン ブライアン アメリカ合衆国 カリフォルニア州 94022 ロス アルトス ヴェラ クルー ズ アベニュー 731 (72)発明者 シェラー ダブリュー ポール アメリカ合衆国 カリフォルニア州 94086 サニーヴェイル ガーデニア ウ ェイ 1054 【要約の続き】 割込み信号をホスト(1)に発生させる。制御の第3レ ベルは内部カウンタにより提供され、その内部カウンタ は、ホスト・ドライバ・サブルーチン中の明示的なコマ ンドとともに、またはコマンドなしで複数回の指示およ び割込みを自動的にイネーブルとし及び/又はディスエ ーブルとすることができる。

Claims (1)

  1. 【特許請求の範囲】 1.ホストへの指示信号を管理する装置であって、 指示信号をディスエーブルする第1のマスク・ロジックと; 前記第1のマスク・ロジックに接続され、前記指示信号を表す指示値を記憶す る第1のメモリ・ロケーションと; 前記第1のメモリ・ロケーションに接続され、前記指示値をディスエーブルす る第2のマスク・ロジックと; 前記第2のマスク・ロジックに接続され、前記指示値を表す割込み値を記憶す る第2のメモリ・ロケーションと; 前記第2のメモリ・ロケーションに接続され、前記割込み値に応答するホスト に割込み信号を発生させる割込み手段とを有する装置。
JP6518024A 1993-02-02 1993-12-28 ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ Pending JPH08506674A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/012,561 1993-02-02
US08/012,561 US5530874A (en) 1993-02-02 1993-02-02 Network adapter with an indication signal mask and an interrupt signal mask
PCT/US1993/012652 WO1994018627A2 (en) 1993-02-02 1993-12-28 Network adapter with host interrupt and indication management

Publications (1)

Publication Number Publication Date
JPH08506674A true JPH08506674A (ja) 1996-07-16

Family

ID=21755544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6518024A Pending JPH08506674A (ja) 1993-02-02 1993-12-28 ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ

Country Status (9)

Country Link
US (1) US5530874A (ja)
EP (1) EP0682791B1 (ja)
JP (1) JPH08506674A (ja)
KR (1) KR0161101B1 (ja)
AT (1) ATE372552T1 (ja)
AU (1) AU675501B2 (ja)
CA (1) CA2152392C (ja)
DE (1) DE69334165T2 (ja)
WO (1) WO1994018627A2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
AU706450B2 (en) * 1993-07-06 1999-06-17 Tandem Computers Incorporated A processor interface circuit
GB2337836B (en) * 1995-02-23 2000-01-19 Sony Uk Ltd Data processing systems
US5797037A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Interrupt request control logic reducing the number of interrupts required for I/O data transfer
JP2625402B2 (ja) * 1995-05-24 1997-07-02 日本電気株式会社 マイクロプロセッサ
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
US5909582A (en) * 1996-04-26 1999-06-01 Nec Corporation Microcomputer having user mode interrupt function and supervisor mode interrupt function
US5941952A (en) * 1996-09-12 1999-08-24 Cabletron Systems, Inc. Apparatus and method for transferring data from a transmit buffer memory at a particular rate
US5922046A (en) * 1996-09-12 1999-07-13 Cabletron Systems, Inc. Method and apparatus for avoiding control reads in a network node
US5970229A (en) * 1996-09-12 1999-10-19 Cabletron Systems, Inc. Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
US5999980A (en) * 1996-09-12 1999-12-07 Cabletron Systems, Inc. Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network
US5966546A (en) 1996-09-12 1999-10-12 Cabletron Systems, Inc. Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5995995A (en) * 1996-09-12 1999-11-30 Cabletron Systems, Inc. Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
US5881296A (en) * 1996-10-02 1999-03-09 Intel Corporation Method for improved interrupt processing in a computer system
US5854908A (en) * 1996-10-15 1998-12-29 International Business Machines Corporation Computer system generating a processor interrupt in response to receiving an interrupt/data synchronizing signal over a data bus
US6115776A (en) * 1996-12-05 2000-09-05 3Com Corporation Network and adaptor with time-based and packet number based interrupt combinations
US6012121A (en) * 1997-04-08 2000-01-04 International Business Machines Corporation Apparatus for flexible control of interrupts in multiprocessor systems
US6105071A (en) * 1997-04-08 2000-08-15 International Business Machines Corporation Source and destination initiated interrupt system for message arrival notification
US6098104A (en) * 1997-04-08 2000-08-01 International Business Machines Corporation Source and destination initiated interrupts for message arrival notification, and related data structures
US6098105A (en) * 1997-04-08 2000-08-01 International Business Machines Corporation Source and destination initiated interrupt method for message arrival notification
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US6243785B1 (en) * 1998-05-20 2001-06-05 3Com Corporation Hardware assisted polling for software drivers
US6351785B1 (en) * 1999-01-26 2002-02-26 3Com Corporation Interrupt optimization using varying quantity threshold
US6189066B1 (en) * 1999-01-26 2001-02-13 3Com Corporation System and method for dynamically selecting interrupt time interval threshold parameters
US6189067B1 (en) * 1999-01-26 2001-02-13 3Com Corporation System and method for dynamically selecting interrupt quantity threshold parameters
US6192440B1 (en) * 1999-01-26 2001-02-20 3Com Corporation System and method for dynamically selecting interrupt storage time threshold parameters
US6574694B1 (en) * 1999-01-26 2003-06-03 3Com Corporation Interrupt optimization using time between succeeding peripheral component events
US6529986B1 (en) * 1999-01-26 2003-03-04 3Com Corporation Interrupt optimization using storage time for peripheral component events
US6137734A (en) * 1999-03-30 2000-10-24 Lsi Logic Corporation Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals
US6526514B1 (en) * 1999-10-11 2003-02-25 Ati International Srl Method and apparatus for power management interrupt processing in a computing system
US6754755B1 (en) * 2000-08-10 2004-06-22 Hewlett-Packard Development Company, L.P. Service request system using an activity indicator to reduce processing overhead
US6889278B1 (en) * 2001-04-04 2005-05-03 Cisco Technology, Inc. Method and apparatus for fast acknowledgement and efficient servicing of interrupt sources coupled to high latency paths
NZ530106A (en) 2001-07-02 2007-06-29 Pfizer Prod Inc One dose vaccination with mycoplasma hyopneumoniae with whole or partial cell inactivated preparation
US20040128418A1 (en) * 2002-12-30 2004-07-01 Darren Abramson Mechanism and apparatus for SMI generation
US7389496B2 (en) * 2003-07-02 2008-06-17 Agere Systems Inc. Condition management system and a method of operation thereof
US7596779B2 (en) * 2004-02-19 2009-09-29 Agere Systems Inc. Condition management callback system and method of operation thereof
US20120166687A1 (en) * 2010-12-22 2012-06-28 Stmicroelectronics, Inc. Computer Architecture Using Shadow Hardware
US11476928B2 (en) 2020-03-18 2022-10-18 Mellanox Technologies, Ltd. TDMA networking using commodity NIC/switch
US11336383B2 (en) 2020-06-24 2022-05-17 Mellanox Technologies, Ltd. Packet scheduling system with desired physical transmission time for packets
US11388263B2 (en) 2020-10-11 2022-07-12 Mellanox Technologies, Ltd. Packet transmission using scheduled prefetching
US11711158B2 (en) 2021-06-28 2023-07-25 Mellanox Technologies, Ltd. Accurate time-stamping of outbound packets

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
JPS55123736A (en) * 1979-03-16 1980-09-24 Hitachi Ltd Interrupt control system
GB2212291B (en) * 1980-08-14 1989-11-29 Marconi Co Ltd Sighting system
EP0132161B1 (en) * 1983-07-19 1988-06-15 Nec Corporation Apparatus for controlling a plurality of interruption processings
US4631659A (en) * 1984-03-08 1986-12-23 Texas Instruments Incorporated Memory interface with automatic delay state
JPS619748A (ja) * 1984-06-25 1986-01-17 Nec Corp 入出力制御装置
JPS6118059A (ja) * 1984-07-05 1986-01-25 Nec Corp メモリ回路
US4768149A (en) * 1985-08-29 1988-08-30 International Business Machines Corporation System for managing a plurality of shared interrupt handlers in a linked-list data structure
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
JPH01126751A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd グルーピング装置
JPH0769783B2 (ja) * 1987-11-16 1995-07-31 日本電気株式会社 例外処理方式
US5161228A (en) * 1988-03-02 1992-11-03 Ricoh Company, Ltd. System with selectively exclusionary enablement for plural indirect address type interrupt control circuit
JP2591181B2 (ja) * 1989-09-22 1997-03-19 日本電気株式会社 マイクロコンピュータ
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
EP1413946A3 (en) * 1991-05-17 2005-12-21 Packard Bell NEC, Inc. Computer system having a reduced power control circuit
JP3176093B2 (ja) * 1991-09-05 2001-06-11 日本電気株式会社 マイクロプロセッサの割込み制御装置
US5319752A (en) * 1992-09-18 1994-06-07 3Com Corporation Device with host indication combination

Also Published As

Publication number Publication date
CA2152392A1 (en) 1994-08-18
DE69334165D1 (de) 2007-10-18
ATE372552T1 (de) 2007-09-15
KR0161101B1 (ko) 1999-01-15
US5530874A (en) 1996-06-25
EP0682791A4 (en) 1999-02-03
WO1994018627A2 (en) 1994-08-18
WO1994018627A3 (en) 1994-09-29
DE69334165T2 (de) 2008-05-29
AU5987394A (en) 1994-08-29
EP0682791A1 (en) 1995-11-22
CA2152392C (en) 2000-11-07
EP0682791B1 (en) 2007-09-05
AU675501B2 (en) 1997-02-06
KR960700479A (ko) 1996-01-20

Similar Documents

Publication Publication Date Title
JPH08506674A (ja) ホスト割込み信号およびホスト指示信号の管理を行うネットワーク・アダプタ
JP3863912B2 (ja) データ伝送の自動開始装置
JP3339860B2 (ja) ホストから独立したバッファ管理によるネットワーク・インタフェース
JP2584957B2 (ja) ホスト指示結合式の装置
US5307459A (en) Network adapter with host indication optimization
US5276684A (en) High performance I/O processor
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
US6912610B2 (en) Hardware assisted firmware task scheduling and management
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
US9479464B1 (en) Computer system and network interface with hardware based packet filtering and classification
JPH0865334A (ja) マルチメディア通信装置及び方法
US20050138249A1 (en) Inter-process communication mechanism
US20040100900A1 (en) Message transfer system
WO2003034225A2 (en) Debugging of processors