JP3863912B2 - データ伝送の自動開始装置 - Google Patents
データ伝送の自動開始装置 Download PDFInfo
- Publication number
- JP3863912B2 JP3863912B2 JP50476794A JP50476794A JP3863912B2 JP 3863912 B2 JP3863912 B2 JP 3863912B2 JP 50476794 A JP50476794 A JP 50476794A JP 50476794 A JP50476794 A JP 50476794A JP 3863912 B2 JP3863912 B2 JP 3863912B2
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- data
- frame
- host
- buffer
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Selective Calling Equipment (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本願は、1992年7月28日に出願され、発明の出願時に、現在の譲渡人に譲渡された「ホストから独立したバッファ管理によるネットワーク・インタフェース」と題する係属中の米国出願第07/921,519と関連するものである。
発明の分野
本願発明は、通信ネットワークとデータ処理装置間のインタフェース、特に通信ネットワークをとおしてデータのパケット或いはフレームの伝送に関連するシステムに関する。
関連技術の説明
データ通信システムは、しばしば送信側で作られたデータのパッケットあるいはフレームの伝送に基づかれている。データのパケットあるいはフレームは通信システムに含まれるネットワーク・プロトコルと互換性があるように設計される。従って、伝送システムは、データ伝送の開始前にネットワーク・プロトコルに従ってデータ・フレームを構成しなければならない。しばしば、伝送システムはネットワーク・アダプタに送られるデータのフレームが続く仕事を行う、例えば伝送されるべきデータの第2のフレームを構成する前に伝送されているという承認を待つであろう。
幾つかのネットワーク・アダプタ・インタフェースは、伝送システムによって作られたデータ・フレームは伝送システムによってダウンロードされ得る専用送信バッファを有している。このフレームは、ネットワークにフレームを伝送することに関連する媒体アクセス制御機能がフレームを首尾よく伝送するか、フレーム伝送をキャンセルするまで、伝送データ・バッファに格納されている。もしフレーム伝送がキャンセルされれば、データは、伝送システムがフレームを伝送ために第2の試みを開始するまで、伝送データ・バッファに保持されていてもよい。伝送データ・バッファはFIFO(first-in-first-out)システムとは区別されるべきである。FIFOシステムにおいては、伝送システムはフレームのデータをFIFOにダウンロードする。一方、ネットワーク・アダプタは伝送中にFIFOをアンロードする。FIFOのデータは、伝送データ・バッファのデータのように、媒体アクセス制御機能やホストによって残したり、再使用することができない。
伝送データ・バッファは伝送システムがフレームを伝送データ・バッファに構成したり、ダウンロードしたりすることを、またネットワーク・アダプタがフレームを伝送するようにする間に他の仕事をすることを可能にするけれども、フレームの伝送は、完全なフレームがバッファにダウンロードされるまで遅らされるという欠点がある。従って、伝送データ・バッファ型のシステムはネッツトワーク・スループットを犠性にして、ホスト・システムを効率的に改善する。集中的な通信の動作は特性を低下する。
更に、伝送データ・バッファを用いる従来のシステムはホストや伝送システムに伝送データ・バッファを管理するように要求する。ネットワーク・インタフェース・コントローラは、インタフェース・コントローラ内とネットワークへのFIFOバッファを通してDMA技術を用いて、ホストが管理した伝送データ・バッファからデータを転送する。
代表的な従来システムはナショナルセミコンダクタのDP83932B、システム−オリエンテッド・ネットワーク・インタフェース・コントローラ(SONIC)およびインテル82586LANコープロセッサ(coprocessor)を有している。
簡素化FIFOを基本としたシステムから利用可能な通信スループットを維持している間、伝送データ・バッファの利点を与えることが必要である。
本発明の概要
本発明は、専用伝送バッファを有するネットワーク・インタフェースにおけるデータ伝送の開始のために、提供する。本システムは、ホストコンピュータによって伝送バッファに作られるデータのフレームを伝送するための論理装置を有している。また、ホストによって伝送バッファにダウンロードされるフレームのデータ量は伝送バッファに残っているフレームのデータ量のスレッショルドを判定するために監視される。スレッショルドの判定はフレームの大部分が伝送バッファに残っていることを示すとき、およびフレームの全てのデータを伝送バッファに転送する前に、ネットワーク・インタフェース・コントローラはフレームの伝送を開始するための論理装置を有している。本発明の第1の特徴においては、監視論理装置はスレッショルド・メモリを有しており、このメモリはスレッショルド値を格納するためのホストコンピュータおよびホストへステータス情報(状態情報)を記入するための論理装置によってプログラム可能である。従ってスレッショルド値は、変更可能なスレッショルド・メモリや記入されたステータス情報を用いて、特性を最適化するためにホスト・システムによってセットすることができる。
本発明の他の特徴によれば、伝送バッファは伝送記述子リングと伝送データ・バッファを有している。ホストシステムはアダプタが管理している伝送記述子リングに伝送記述子を格納することによって、フレームを構成する。アダプタが伝送記述子の処理を始めると、アダプタは記述子自身から直接データを取り上げ、記述子において識別されるデータの伝送データ・バッファへのダウンロード処理を開始する。スレッショルド・論理装置は記述子からの直接データ量を決定し、ダウンロード領域へのフレームのデータのダウンロードを監視する。組み合わせがスレッショルドに合致すると、フレームの実際の伝送が開始される。従ってフレームの伝送は、完全なフレームがダウンロード領域へダウンロードされる前に、開始されてもよい。
よって、本発明はデータのフレームを構成し、伝送する場合に、集中的通信である応用に対しての通信スループットを監視している間に、ホストシステムのための柔軟性を非常に増加するネットワーク・インタフェース・コントローラ用のアーキテクチャを提供する。
本発明のたの特徴および利点は図面、詳細な説明および請求範囲に基づいて理解されるであろう。
【図面の簡単な説明】
図1は、本発明によるネットワーク・インタフェースを有するシステムの簡単なブロック図である。
図2は、本発明による伝送システムの機能的ブロック図である。
図3は、本発明によるホストシステムとネットワーク・インタフェースの好ましい実施のブロック図である。
図4は、本発明を実施する図3のネットワーク・インタフェース・プロセッサのブロック図である。
図4Aは、図4のシステムに対する自律アクセス・アドレス・バスの構造を図示する。
図5は、本発明による、アダプタを通してホスト・メモリ空間からネットワークへのデータの流れを図示する。
図6は、本発明による、データ伝送に使用されるホスト・システムのアドレス空間のマップである。
図7は、ホスト・システムのアドレス空間と独立しているアダプタ・メモリのメモリ・マップである。
図8は、本発明の特徴によるトランススクリプト記述子のデータ構造を示す。
図9は、本発明による、伝送記述子リング・バッファと伝送データ・バッファ、及び伝送オペレーション中に用いられるポインタの管理を示す。
図10A−10Eは、伝送記述子リング・バッファと伝送データバッファ用のポインタの管理を示す図である。
図11は、図4のネットワーク・インタフェース・コントローラ用の伝送機能に用いられるデータパス演算を示す論理装置図である。
図12は、図4のネットワーク・インタフェース・アダプタ用の伝送開始制御論理装置の論理装置図である。
図13、は図12の論理装置用の伝送開始スレッショルド・レジスタの論理装置図である。
図14は、図13の伝送開始スレッショルド・レジスタの状態図である。
図15は、図12のダウンロード比較論理装置の論理装置図である。
図16は、図12の直接データ比較器の論理装置図である。
図17は、図12の論理装置におけるデータ利用制御機能の状態図である。
図18は、本発明による、伝送論理装置の簡単なブロック図である。
好適実施例の説明
本発明の好適実施例の詳細な説明は図面を参照してなされる。図1および図2は本発明によるデータ通信システムの概観図を示している。図3から図10A−図10Eは、データ構造とデータの流れ含む、本発明の好ましい実施の詳細な説明を与える。図11−図18は、本発明の伝送特徴を実施するための論理装置の実行を与えている。
I. システムの概要
図1は、伝送バッファ・メモリで利用できるバイト数がプログラムされたスレッショルドを越えると、ネットワーク上にフレームの送信を開始することを自動的に可能にする専用伝送バッファ・メモリを用いる制御回路を有する、本発明によるデータ通信システムを示している。図1に示されているように、通信データ用のこのシステムは、参照番号1によって示されるホスト・データ処理システムを有し、この処理システムはホスト・システム・バス2、ホストCPU3、ホストメモリ4及びバス2を介して全ての通信を行う他のホスト装置5を有している。ネットワーク・インタフェース・アダプタ6はホストバス2に接続されている。次に、アダプタ6は、同軸線、捩れ対導体、光ファイバー、サテライト、無線或いは他の通信媒体のようなネットワーク媒体8に接続されているトランシーバ7に結合されている。また、ネットワーク・アダプタ6は、インタフェース・コントローラ6あるいはホストCPU3により管理され、与えられた特別な実施に依存しているアダプタ・メモリ9に接続されている。更に、アダプタ6は、ホスト・システム1からアダプタ・メモリ9へのデータの伝送を監視するための開始伝送論理装置6Aを有している。開始伝送論理装置6Aはホスト1からアダプタ6へ伝送される与えられたフレームのためのスレッショルド判定を行う。スレッショルドが適合されると、アダプタ6はネットワークを通してフレームの伝送を開始する。勿論、これらの構成要素の他の幅広い変更が行われてもよい。例えば、アダプタメモリ9は、ホストバス2に直接接続することも可能である。また多重バス構造のものが利用されてもよい。
図2は本発明による開始伝送システムの機能的な構成要素を示している。図2において、幾つかの機能ブロックが表されている。ホスト・コンピュータ或いは送信システム30は、ライン32で示されたデータとライン33で示された制御信号を受信してホスト・インタフェース論理装置31と通信する。ホスト・インタフェース論理装置31はライン35を通して伝送バッファ34にデータを送る。またスレッショルド・論理装置36はホストコンピュータ30からフレーム・バッファ34へのデータ伝送を監視するためにホスト・インタフェース論理装置31に結合される。ライン37はスレッショルド論理装置36とホスト・インタフェース論理装置31との結合を示している。スレッショルド論理装置はスレッショルド判定を行い、且つライン38で示された信号を、例えばメディア・アクセス制御(Media Access Control)MAC論理装置を有する伝送論理装置39へ発生する。伝送論理装置39はライン40を通してバッファ34からのデータを受信し、且つライン41で示されたそのデータをネットワーク媒体42へ供給する。フレームバッファ34に残されなければならないフレームのデータ量を示すスレッショルド値を格納するスレッショルド記憶装置43は、そのフレームの伝送が伝送DMA論理装置及びMAC39によって開始される前に、スレッショルド論理装置36に結合される。
好ましいシステムにおいては、スレッショルド記憶装置43はホスト・コンピュータ30によってプログラムすることができる。この実施例においては、スレッショルド記憶装置43はインタフェース論理装置31を通してホストによりアスセス可能なレジスタである。代わりに、スレッショルド記憶装置は製造中にセットされるROMであってもよい。更に代わりのものとして、スレッショルド記憶装置は、EEPROM,フラッシュEPROM或いは他のメモリ記憶装置のような不揮発性メモリにユーザが特定したデータを用いて実施されてもよい。
伝送論理装置39は、ホスト・システムに記入するためにライン44を通してホスト・インタフェース31に状況情報を供給する。状況情報は、実行中の状態の表示を有し、且つスレッショルド記憶装置43の値を最適化するためにホストによって使用されることができる。
動作においては、ホストコンピュータはネットワーク媒体42へ伝送されるべきデータのフレームをつくる。ホストコンピュータ30はホスト・インタフェース31を通してそのフレームを識別する。フレームの識別器に結合されたホスト・インタフェースはフレームの記述に従ってホスト・コンピュータ30からバッファ34へデータを移動する。スレッショルド36はバッファ34へのデータ伝送を監視する。データのスレッショルド量がバッファ34に残っていると、伝送論理装置39はフレームの伝送を開始するように命令される。従って、もし伝送論理装置39がホスト・コンピュータ30からの進行中のダウンロードのフレーム主題を伝送するために利用でき、バッファにダウンロードされているフレームがスレッショルド記憶装置43によりセットされたスレシュホルドより大きく、且つホスト・コンピュータ30は、データの直接伝送が要求されることを示しているならば、この動作は、完全なフレームがホスト・コンピュータ30からバッファ34へ転送去れる前に、開始する。
上述のように、バッファ34はホスト・コンピュータ30により直接アドレス可能であってもよく、好ましいシステムでは、ホスト・コンピュータ30が伝送動作に関連するデータと制御信号を書き込むホスト・アドレス空間の予め特定された領域からなるホスト・インタフェース31を通してアドレス可能である。従ってホスト・インタフェース31はその予め特定されたアドレス空間からバッファおよびホストと無関係なホスト・アクセス可能レジスタへのデータ伝送をマップする。
本発明の好適実施例の更に詳細な説明が図3に示されている。
II.システムの概要
図3は、本発明によるネットワーク・インタフェース・コントローラを有するコンピュータ・システムを図示したものである。コンピュータ・システムは、プロセッサ10、ホスト・メモリ11及びEISAバスのようなホスト・システム・バス13を通して全ての通信をする他のホスト装置12を含むホスト・システムを有している。ホスト・システム・バス13はホスト・システム・アドレス空間を定義するアドレス・ラインを有している。典型的には、EISAバスに対して、約4ギガバイトのホスト・アドレス空間を確立する32のアドレス・ラインがある。
ネットワーク・インタフェース・コントローラは、(Cadence, Inc., San Jose, Californiaの利用可能な)技術により公知のVERILOG設計装置を用いて以下に概括している機能を実行するために設計された応用特定集積回路として、好適システムにおいて実施されているネットワーク・インタフェース・プロセッサ14を有している。このネットワーク・インタフェース・プロセッサ14は適当なバッファを介してバス13に結合されている。また、このネットワーク・インタフェース・プロセッサ14はRAM15,BIOS ROM16とINFO EEPROM17、テストポート18、エンコード/デコードチップ19及びネットワーク・トランシーバ20にも結合されている。次に、ネットワーク・トランシーバ20はネットワーク媒体に結合されている。
大多数の機能はネットワーク・インタフェース・プロセッサ14に組み込まれている。好適実施例では、ホストシステムによりバスを通してアクセスできる全てのレジスタはプロセッサ14かRAM14の何れかにある。もしRAM15にあれば、それらのアクセスはネットワーク・インタフェース・プロセッサ14によって管理される。
RAM15はネットワーク・インタフェース・コントローラ上の第1の資源である。この資源はネットワーク・インタフェースの送受信動作に用いられるホスト・アドレス空間の外部にあるバッファ・メモリを与える。このRAM15の構成と利用に関する詳細は以下に説明される。
BIOS ROM16は、開始中のネットワーク・インタフェース・プロセッサ14を介して、ホスト・システムの基本入出力コードへの拡張を与える。BIOS ROM16のためのアドレスとBIOS ROM16からのデータはRAM15によって分割されているそれぞれのバス21と22を通してネットワーク・インタフェース・プロセッサ14へ結合される。
INFO EEPROM17は駆動装置、診断装置およびネットワーク管理ソフトウエアにより用いられる臨界的なアダプタ特定データを格納する。このデータは製造プロセス中に格納される。インタフェース・コントローラの開始中に、EEPROM17の内容は動作中の使用のためにRAM15の予め特定された領域にロードされる。
ナショナル セミコンダクタ(National Semiconductor)8391マンチェスタ(Manchester)エンコード/デコードチップのようなエンコード/デコードチップがインタフェース・プロセッサ16に結合される。AUI接続器に結合された信号はボード外のトランシーバの使用を許容するために与えられる。
好適実施例におけるトランシーバ20は薄いエサーネット(coax/BNC)トランシーバ或いは10BaseT(Type 3/RJ-45)トランシーバの何れかを有している。トランシーバ20用の制御信号はエンコード/デコードチップ19上の変換論理装置を用いて、ネットワーク・インタフェース・プロセッサ14上に作られる。テストポート18は、好適実施例では製造及び試験中に使用されるために与えられる。
III. コントローラ機能ユニット
図4は機能ブロックとデータパスを有する、図3のネットワーク・インタフェース・プロセッサ14のブロック図である。実際には、図示されている以外にもいろいろなデータ・フロー径路の制御と関係する非常に多くの接続がなされている。図示されたインタフェースはRAMインタフェース50、ホスト・バス・インタフェース51及びトランシーバ・インタフェース52を有している。バス・インタフェース51はEISAバスのために設けられているもので、バス上のマスター或いはスレーブの何れかとして所定の時に動作する。図4に示された構成における各々の機能ユニットについて説明する。
A. EISAスレーブ・インタフェース54
EISAスレーブ・インタフェース54によって、ネットワーク・インタフェース・コントローラによって管理されるレジスタ、およびバッファにアクセスするためのEISAホストのパスが提供される。このモジュールにはコントローラの構成レジスタが含まれており、ルーティン信号のためにEISAバスの粗コード化を行う。EISAスレーブ・インタフェース54は、コントローラ中に分布している個々のレジスタのアドレス指定に対する解釈は全く行わない。
EISAスレーブ・インタフェースは、連続的にEISAアドレス・バスを監視して、構成レジスタ、メモリ・マップ・ネットワーク・レジスタ、あるいはアダプタのBIOS ROMがアクセスされているかどうかの判定動作を行う。
更には、EISAバスがメモリ・スレーブ・サイクルを開始する度ごとにEISAスレーブ・インタフェースは、サイクル・アービタ56に対してサイクル・リクエストを通知する。このサイクルが起こると、リクエストが許可されるまでの間、ホスト・システムは待ち状態となる。
また、EISAスレーブ・インタフェースによって、残りのネットワーク・コントローラに対する汎用32ビット・バス、インタフェースが提供される。このインタフェースは汎用的な特性を有しているので、チップの他の部分の再設計を行うことなしにマイクロチャネルなどのたの種類のバスに対して容易に設計を適合させることが可能である。
EISAアドレス・バスのビット14−2は、ラッチされて、他のモジュールを通過していく。アドレスの最下位の2ビット(1,0)は4バイト・イネーブルによって表され、これはデータ転送サイクル全体を通して有効である。8ビット・バイトからなる4つのレーンによってスレーブ・データ・チャネルが構成される。好適なシステムにおいては、データ・バスは実際には1対の単方向バスから成っており、そのうちの1つが書き込み用として、他方が読み取り用として用いられる。データ書き込みバスは、スレーブ・インタフェースを介してEISAデータ・パスへの接続を必要とする全てのモジュールに対して多重引込みの形で結線される。読み取りバスは、多重化されRAMインタフェース・モジュール50中にマスクによって形成される。EISAバスからの書き込みリクエストは、サイクル・アービタ56からの承認が得られるまで保持できる。あるサイクルが保持されているとき、アダプタへのそのサイクルが終了する間、EISAバスを待機状態から開放することができる。第1のサイクルがまだ保留中となっているときに、第2のサイクルがEISAバスから発生されると、保留中の書き込みが実行されるまでEISAバスの開放は延期される。この特定の実施例においては、EISA読み取りのパイプライン方式による実行はサポートされていない。
また、EISAスレーブ・インタフェースは、EEPROM17へのインタフェースも提供する。このインタフェースは、EEPROM17の内容をアダプタ・メモリに対してリセットした後に転送するように動作する。
EISAスレーブ・インタフェース・モジュール54は、主にEISAバス仕様のアダプタ構成と関連する多数のレジスタを有している。これらのレジスタは、アダプタのメモリ・バス・アドレスおよび割り込みレベルのセットアップ、トランシーバのタイプの選択、BIOS ROMのイネーブルなどを行うのに用いられる。また、構成レジスタによって、ホストが明確にアダプタの種類を識別し、そのアダプアを全体的にディスエーブルとする手段が与えられる。
B. EISAマスター・インタフェース55
EISAマスター・インタフェース55は、アップロードDMA57およびダウンロードDMA58からのEISAバスを介してのバス主要動作実行リクエストを処理するためのものである。好適な実施例のDMA動作において用いられるバスト転送の実行においては、EISAバスは読み取りと書き込みとを混合して実行することを許容しないので、EISAマスター・インタフェース55は自発的に保留中のアップロードとダウンロード要求との間での仲裁を行う。
バス主要転送は、アップロードDMA57か、或いはダウンロードDMA58かのどちらかによって必ず開始される。この転送は、この転送が終了したときにDMAモジュールによって、或いはEISAバス上の任意の装置の優先使用のためにEISAマスター・インタフェースによって中断させることができる。
このように、EISAマスター・インタフェース56の機能は、アップロード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も有している。このモジュールは、コントローラのその他のいろいろなモジュール、特にイーサネット伝送モジュールとイーサネット受信モジュールの動作を監視し、当てはまる事象が発生する度に、RAM15中に保持されている統計量を更新する。
I. ダウンロードDMAモジュール58
ダウンロードDMAモジュール58は、データをホストシステムからアダプタ・メモリへバス・マスター・ダウンロードするリクエストを発するためのものである。次に、このデータは、アダプタのオンボード送信データ・バッファ内に保管され、直ちに送信するか、或いは後に送信するかされる。
以下に説明するように、バッファ記述子が定義され、伝送データ・バッファのどれかが利用可能となると、直ちに、ダウンロードDMAモジュールはEISAマスター・インタフェース55へのダウンロード・バス・マスター動作リクエストを受け入れる。ダウンロードDMAモジュール58は、ホストおよびアダプタのそれぞれの開始アドレスによって、指示されているとおりにデータを整列するために必要とされるパックとアンパンックとを含む全てのバイト整列を実行する。
また、ダウンロードDMAモジュール58は、アダプタのRAMの内部に伝送記述子リング・バッファを維持するための論理装置を有している。ダウンロードDMAモジュール58は、ダウンロード動作の終了を指示するための割り込みを適当なモードで発生する。また、ダウンロードDMAモジュール58は、伝送DMAモジュール67に、いつ伝送を開始するべきかを伝える。ダウンロードDMA動作に必要となるいろいろなレジスタについては、以下に説明するが、これらのレジスタは、本発明のデータのバッファリング処理に直接必要となるものである。
J. 伝送DMAモジュール67
伝送DMAモジュール67は、ダウンロードDMA論理装置58の指示に従って、伝送記述子バッファから、或いは伝送データ・バッファから、或いはこれらの両方からのバイトを、以下に説明するようにフェッチする。さらに、フェッチされたバイトは順次イーサネット伝送モジュール66に供給される。
こうして伝送DMAモジュール67は、伝送記述子リング・バッファの内容を読み取って、即値データの内容と伝送すべきフレーム全体の長さを判定する。もし、指定されたフレームがネットワーク仕様と合わない場合、例えば802.3の最小値よりも短く、且つアダプタがそのようにイネーブルされているような場合には、このモジールは、無定義のデータ・バイトをパッディングしてイーサネット伝送モジュール66にさらに供給する。
CSMA/CDネットワークにおける衝突再試行は、伝送DMAモジュール67によって処理される。衝突がイーサネット伝送モジュール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は、イーサネット受信装置から受け取ったバイトを32ビット・ワードにアッセンブルしてからアダプタのRAMに格納するようにするためのものである。フレームの受信終了時点において、フレームの状態と長さが受信リング・バッファ内に記憶され、ホストシステムの使用に供される。
また、以下に説明するように、受信DMAモジュール63は、アダプタのRAM内に受信バッファ・リングを形成して、これを保持する。更に、「ルック・バッファ」レジスタを配置することによって、以下に説明するように、受信DMAモジュール63によって処理された受信データをホストが見ることが可能にされる。
また、受信DMAモジュール63は、割り込み通知信号を適当な条件のもとで処理する。
N. アップロードDMAモジュール57
アップロードDMAモジュール57は、RAMインタフェース50を介して受信バッファからホストシステムへのデータの転送を行う。従って、受信リング・バッファは、受信DMAモジュール63によって管理され、またアップロードDMA57によって解釈が行われる。実際のバス・マスター転送は、EISAマスター・インタフェース・モジュール55によって実行される。
アップロードDMAモジュール57は、受信DMAモジュール63によって受信リング・バッファに記憶された、受信フレームの位置と長さを含むデータ構造の解釈を行う。またアップロードDMAモジュール57は、ホストシステムが定義した転送記述子を読み取って、何バイトのフレームを転送しようとしているのか、およびそのフレームをホスト・メモリのどこへ転送しようとしているのかを判定する。
ホストの有効な転送リクエストに応答して、アップロードDMAモジュール57は、EISAマスター・インタフェース・モジュールからのバス・マスター・サイクルを行うようにリクエストする。
また、アップロード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のピンのスキャン・テストが可能となる。
Q. 自律アクセス・アドレス・バス定義
マルチキャスト・コンパレータ61、統計量コントローラ65、ダウンロードDMA58、伝送DMA67、受信DMA63、EISAスレーブ・インタフェース54、およびアップロードDMA57は、全て自律アクセス能力をRAMインタフェース50を介してアダプターのRAMに要求する。自律アクセスはホスト・バス上に発生する全てのサイクルと無関係に発生するものである。
この要求は、RAMインタフェース50によって使用するためのアドレス情報を発生し、通信するの能力を要求する。受信DMA63、伝送DMA67およびダウンロードDMA58に対す場合、能力はオフセットバスを作動するDMA論理装置によって含まれている。自律アクセスに専用の同様なオフセットバスは統計量コントローラ65、アップロードDMA57及びマルチキャスト・コンパレータ61によって使用のために提供される。
図4Aは自律アクセス・アドレス・バスの構造を図式的に定義している。いろいろな機能的なモジュールには、図4に示されたと同じ参照番号が与えられている。
マルチキャスト・コンパレータ61は、マルチキャスト・アドレス・テーブル内の個々のロケーションをアドレスするためのRAMインタフェース50に可変オフセットを供給するために、マルチキャスト・オフセット・バス〔6:2〕をドライブする。有効な値は関連する自律アクセス・サイクル中に表わされる。
統計量コントローラ65は、アダプタのRAMの統計領域内の個々のロケーションをアドレスするためのRAMインタフェース50に可変オフセットを供給するために、統計量オフセット・バス〔7:2〕をドライブする。有効な値は関連する自律アクセス・サイクル中に表わされる。
アップロードDMA57は、受信バッファ・リング内の個々のロケーションをアドレスするためのRAMインタフェース50に可変オフセットを供給するために、アップロードDMAオフセット・バス〔14:2〕をドライブする。有効な値は関連する自律アクセス・サイクル中に表わされる。
ダウンロードDMA58は、自律サイクル中にRAMの伝送バッファ/伝送記述子領域へ可変オフセットを供給するためにダウンロードDMAオフセット・バス〔12:2〕をドライブする。ダウンロードDMA論理装置58によって発生された2つの選択信号は2つのRAM領域間を区別するために用いられる。また、ダウンロードDMA58は、ダウンロードDMA58からRAMインタフェース50へ延びている32ビット・データ・バスのどのバイト・レインが有効なデータを有しているかを示すために、ダウンロードDMAバイト・イネーブル〔3:0〕を発生する。有効な値は関連する自律サイクル中に表わされる。
受信DMA63は、RAMの22Kバイト受信バッファ領域内の可変オフセットを運ぶために受信DMAオフセット・バス〔14:2〕をドライブする。
最後に、伝送DMA論理装置は、自律サイクル中のRAMの伝送バッファ/伝送記述子領域へ可変オフセットを供給するために、伝送DMAオフセット・バス〔12:2〕をドライブする。伝送DMA67によって発生された2つの選択信号は2つのRAM領域間を区別するために用いられる。
IV. 伝送および受信におけるデータの流れとデータ構造
図5は、本発明のアダプタにおけるデータの流れを図示したものであり、特にホスト・インタフェース、アダプタ・メモリ、およびネットワークのインタフェースについて伝送および受信におけるデータの流れを強調して示したものである。
先にも述べたように、ホストシステムは、ホストバスのアドレスによって定義されるホストメモリ空間(全体を100として図示)を有している。このホストメモリ空間のあらかじめ指定されたブロック101が、アダプタのインタフェース・アドレスのために確保される。アダプタは、ホスト・バスを介したアダプタ・インタフェース・アドレス・ブロック101内へのアクセスに対して応答するホスト・インタフェース102を含んでいる。また、アダプタには、ホストから独立したメモリ103が含まれている。ホスト・インタフェースは、指定されたアドレス・ブロック101と独立メモリとの間での転送データの動作を行う。また、アダプタは、アダプタ・メモリに接続されているネットワーク・インタフェース論理装置104を含んでいる。ネットワーク・インタフェースは、独立メモリ103の中のバッファおよびネットワーク・トランシーバ105からのデータ転送の管理を行う。ネットワーク・トランシーバ105は、データをネットワーク媒体106に対して供給する。
ホスト・インタフェース論理装置は伝送処理において用いられる伝送記述子論理装置とダウンロードDAM論理装置(全体を107として図示)、および受信処理において用いられるビュー論理装置、転送記述子論理装置、およびアップロードDMA論理装置(全体を108として図示)を有している。基本的には、これらのモジュールはホスト・システムによるアダプタ・インタフェース・アドレス・ブロック101への読み取り/書き込みに応答して、独立メモリ103とホストとのあいだのデータ通信の管理を行うものである。これによって、ホストは受信および伝送動作におけるアドレスの翻訳とバッファの管理動作とから全く開放される。
ネットワーク・インタフェース論理装置104は、伝送DMA論理装置(総括的に109として図示)と受信DMA論理装置(総括的に110として図示)とを有している。伝送DMA論理装置109は、以下に説明するようにアダプタ・メモリ103に記憶されている記述子に応じて、データを独立アドプタ・メモリ103から取り出して、ネットワーク・トランシーバ105に移動させる。同様に、受信DMA論理装置110は、データをネットワーク・トランシーバ105から独立アダプタ・メモリ103中に移動させる。このように、ネットワーク媒体106からのすべてのデータ通信は、ホストから独立したメモリ103に直接的に結合される。次に、ホスト独立メモリ103からの通信は、ホスト・メモリ空間のメモリ・マップ領域に応じて、ホスト・インタフェース論理装置102によって制御され、これによりネットワークとの通信に必要なプロトコル・ソフトウェアが非常に簡略化されるのである。
図6は、ホスト・インタフェースによって使用されるホスト・アドレス・ブロック101のマップの略図である。好適なシステムでは、このブロック内のアドレスは、ホストにとってはホストのアドレス空間の連続した8Kのブロックのメモリ・マップ・レジスタのように見える。
EISAの実施例の場合は、ブロック101の中の「レジスタ」あるいはマップされた領域は、倍長ワードのアドレスごとに区切って配置されており、従ってアドレスは4の倍数となっている。多くの「レジスタ」が倍長ワードの数倍(509もの大きな量)のメモリ空間を占める。
「レジスタ」は、ホストのアドレス空間の任意のあらかじめ指定されたブロックにメモリマップされているが、ホスト・システムがこれらのレジスタに対して実行する読み取りあるいは書き込みは、実際には、直接的にアダプタ・メモリに対してアクセスがなされる訳ではない。メモリ・マップ空間へのアクセスは、ホスト・システムに対して透過的なホスト・インタフェース論理装置104によって翻訳されて実行される。従って、アダプタのメモリは、ホストのアドレス空間およびホストの管理から独立している。図6は、これらのレジスタへのアクセスに用いられるホスト・アドレス空間のマッピングの概略を示したものである。これらのレジスタに含まれる主要なものとしては、0010(hex)のオフセット位置の伝送領域レジスタ(transmit area register)(XMIT AREA)、0800(hex)のオフセット位置の転送領域レジスタ(transfer area register)(XFER AREA)、および100C(hex)のオフセット位置のルック・バッファ(LOOKBUF)がある。状態、統計量、情報、および指示レジスタが、多数、領域内にバランスして分布している。
「XMIT AREA」レジスタは、ホストが伝送記述子をアダプタに書き込むために用いられる。伝送記述子については、以下に詳細に説明するが、コンパイルしてフレームとして伝送すべきデータを識別するデータを含んでおり、また即値データを含むことができる。0010(hex)のオフセット位置の「XMIT AREA」は、ほぼ2Kバイトのサイズを有している。このデータは、以下に説明するように、独立アダプタ・メモリの中の伝送記述子リングにマップされる。
アダプタ・インタフェース・ホスト・アドレス・ブロックの中の0800(hex)のオフセット位置の「XFER AREA」は、およそ1Kバイトのバッファであり、これを介して転送記述子がアダプタの独立メモリに書き込まれる。100C(hex)のオフセット位置の「LOOKBUF」は、およそ2Kバイトのバッファであり、これによってホストの独立アダプタ・メモリ内の受信リング・バッファへのリード・オンリー・ウインドウが提供される。受信プロセスの詳細は、「ホストから独立したバッファ管理によるネットワーク・インタフェース」と題する出願に述べられている。
図7は、アダプタのホスト独立メモリのマップを示したものである。このメモリ構成は、独立メモリの中のオフセット0の位置のおよそ3Kバイトの伝送データ・バッファ、オフセット0C00(hex)の位置のおよそ5Kバイトの伝送記述子リング、オフセット2000(hex)のおよそ22Kバイトの受信バッファ・リング、およびオフセット7800(hex)の位置のおよそ1Kバイトの転送記述子領域とから成っている。メモリの中の最後の3領域には、アダプタの使用に供されるアダプタ情報、ネットワーク統計量、およびマルチキャスト・アドレス・テーブルが記憶される。
好適なシステムにおいては、アダプタは、伝送バッファ、受信バッファ、統計構造、およびいろいろな状態レジスタと統計量レジスタのために32KバイトのSRAM(スタティックRAM)を用いる。図5に定義されているアダプタのメモリの中のいくつかの領域によって被定義データ構造が提供される。
A. 伝送データ・バッフア
上記のように、伝送データ・バッファは、3Kバイトを占める。この領域は、2つの1.5Kバッファに分割される。これらのバッファは、バス・マスター転送によってアダプタにダウンロードされるデータだけを記憶する。コントローラは、伝送データ・バッファと伝送記述子の即値データ部分の両方の内容を用いれフレームをカプセル化して伝送する。アダプタは、起動時のデフォールトとしてメモリの基底に最も近いバッファを選択し、その後は自動的にバッファの使用を変更していく。
伝送バッファは、ダウンロードDMA論理装置と伝送DMA論理装置とによって共同使用される。伝送DMA論理装置は、バッファ0からバッファ1に切り換えたり、あるいは元に戻したりすることが自由にできる。唯一存在する制約は、伝送開始スレッシュールド・レジスタによってさだめられる伝送データの使用可能性である。伝送DMAモジュールは、ある1つの伝送を終了したときにはいつでも1つのバッファから他のバッファへ切り換わることができる。このバッファの切り換えは、伝送が成功したかどうかとはかかわりなく、また、前回の伝送においてマスター・ダウンロード・データが用いられていたかどうかとはかかわりなく起こる。
ダウンロードDMAモジュールは、切り換わろうとしている相手のバッファが伝送DMAモジュールによって用いられていない場合においてだけ、あるバッファから他方のバッファへ切り換わることができる。ダウンロードDMAは、伝送記述子の処理を終了する度ごとに、以下に説明するように、直前の記述子中に何らかのバス・マスター動作が呼び出されていたかどうかにはかかわりなく、あるバッファから他のバッファに切り換わろうと試みる。ただし、伝送DMAモジュールが使用中のバッファに切り換わらない。
B. 伝送記述子
伝送記述子は、伝送を保留しているフレームを定義し、また伝送されたフレームの状態を保持するものである。これらの記述子は可変長であり、上記のように5Kバイト・リング・バッファに連続的に配置される。最初に配置される記述子は倍長ワードごとに区切られて配置されなければならない。図8aに伝送記述子のデータ構造を示す。
伝送記述子領域に記述されるエントリーの全体の内容は、ホスト・プロセッサから図6に示されている「伝送領域」を介して供給されるデータをそのまま丸ごとコピーしたものである。しかし、「伝送プロトコル識別子」と「伝送フレーム状態」レジスタのフォーマットを要求に応じるため、またフレーム伝送とバッファ管理に関する充分な情報を供給するために、1つの値を再配置し、また幾つかを自動的に保存することが必要である。
ホスト・プロセッサの「伝送領域」への書き込みは、最初に書き込まれる値、即ち「伝送プロトコル識別子」と「伝送リクエスト処理」の値がリング内の次に利用可能なデータ構造内の5番目の32ビット・ワードの位置(10(hex)のオフセット位置)で終わるように、アダプタによって自動的にオフセットがかけられる。これは「伝送リクエスト処理」の値が「媒体アクセス・コントローラ識別子」の値に予約されている場所にホストによって書き込まれることを意味している。「伝送リクエスト処理」の値がアダプタのRAMに書き込まれると、アダプタは直ちに、5番目の32ビット・ワード記憶場所の最下位16ビットの内容を4番目の32ビット・ワード記憶場所の最上位16ビットにコピーする必要がある。「伝送リクエスト処理」のコピーを行った後に、アダプタは「媒体アクセス・コントローラ識別子」(MACID)の値を「「媒体アクセス・コントローラ識別子」レジスタから検索して、これを「伝送リクエスト処理」によって空けられた場所に書き込む。フレームの送信が終了した後に、4番目の32ビット記憶場所(C(hex)のオフセット位置)の最下位16ビットが伝送フレーム状態に置き換えられる。
「次の記述子ポインタ」のエントリーは、「送信バッファ・カウント」と「伝送即値長さ」の値がアダプタによって更新することができる。
「伝送領域」レジスタに書き込まれるデータは正確な順序で正しい位置に書き込まれるようになされるので、これらの2つの値の書き込みは容易に検出することが可能であり、これらを用いて、値をRAMから検索する必要なしに、次の記述子の開始の判定に必要とされる記述子のサイズを算出することができる。
最後の「伝送データ長」の値がアダプタに書き込まれてしまえば、フレームの長さを算出して、これをデータ構造の「フレーム長」の位置を保管することが可能である。またこの値は、ホストが直ちに使用できるように、コントローラ・チップの中の「伝送フレーム長」レジスタにコピーされる。
以下の数バラグラフにおいて、伝送記述子データ構造の各フィールドについて定義する。
「次の記述子ポインタ」の値は、次の記述子の最初のワードを指し示すものである。この値は、ホストが「伝送待ち行列状態」を読み取ると直ちに更新される。定義された「次の記述子ポインタ」は、これによって指し示された場所が妥当な記述子を含んでいるということを必ずしも意味するものではない。これは、単に次の妥当な記述子が定義されるとしたら、これをどこに発見することができるかを示すだけに過ぎない。
「フレーム長」フィールドはアダプタによって計算されて更新される。フレームの長さは、「伝送データ長」の値と「伝送即値長さ」の値とをすべて計算することによって求められる。この結果として得られる和が伝送フレームの全バイト数である。もしもこの和が802.3最小フレーム長よりも小さい場合には、和を最小ーム長の値と等しくなるように設定する。この和は、伝送記述子の「フレーム長」の行に書き込まれ、「伝送フレーム長」レジスタを介してホストが利用できるようになされる。
「伝送失敗」フィールドは、伝送が終了した後にイーサネット・トランスミッタから寄せ集めた状態ビットからなるエラー・コードを含む。このフィールドは「伝送失敗」レジスタにマップされ、ホストがアクセスできるようになされる。
「伝送リクエスト処理」の値は、伝送DMAコントローラによって解釈され、関連するフレームの伝送の試みが終了したことの指示信号を発するべきかどうかが判定される。もし、このフィールドがゼロでなければ、指示信号が発せられる。また、伝送記述子リングの中のフレームのエントリーは、ホストが伝送状態を調べることができるようになるまで保持される。指示信号が発せられているときには、「伝送リクエスト処理」、「伝送状態」、「伝送プロトコル識別子」、「媒体アクセス・コントローラ識別子」の各フィールドをホストが利用可能なようになされる。もし、「伝送リクエスト処理」がゼロである場合には、ホストに何らかの指示を行うことなく、伝送終了後に伝送記述子待ち行列エントリーが破棄さある。伝送アンダーライン状態は、「伝送リクエスト処理」がゼロであるかどうかにはかかわりなく通知される。
「伝送状態」フィールドは、関連するフレームの送信状態を含むものである。このフィールドの内容は、伝送の試みが終了した直後に更新される。リターン・コードが「伝送状態」レジスタ定義に定義される。
このフィールドの「伝送プロトコル識別子」の値は、伝送が終了したときに、ホストがフレームと係わる特定のプロトコルを識別するのに使用するためたけに待ち行列内に維持される。このようにすることによって、複数のプロトコルを同時にもちいることが可能となる。「伝送プロトコル識別子」と「伝送リクエスト処理」の両方によって、アダプタを通過するフレームが一意的に識別される。
「媒体アクセス・コントローラ識別子」は、「伝送プロトコル識別子」と同様に、待ち行列中に保持されて、伝送終了時に使用される。しかし、ホストはこの値を「伝送領域」レジスタを介してアダプタに書き込むことはしない。そうではなく、ホストはこの値をいったん「媒体アクセス・コントローラ識別子」レジスタ中に記憶し、その後、この値を、「伝送リクエスト処理」がその最終的な位置にコピーされた後に、アダプタに応じて記述子データ構造中に保管する。
「伝送バッファ・カウント」フィールドの内容は、ホストが「伝送領域」へ書き込むことによって供給される。このフィールドは、伝送フレームを構成するのに用いられるホストのメモリ内のバッファの数を指定する。各バッファは、2つの伝送データ・バッファのうちの1つが利用可能となると、直ちにホストのメモリからアダプタの伝送データ・バッファにリストされた順序に従って転送される。もしも「伝送バッファ・カウント」がゼロである場合には、このフレームに対しては、バス・マスター動作は実行されない。
「伝送即値データ長」フィールドはホストから「伝送領域」に対する書き込みによって定められ、ホストから供給されようとしている「即値」データのバイト数を表すものである。このフィールドがゼロである場合には、次の32ビット・ワード位置が最初のホスト・データ・バッファ記述子を含んでおり、バス・マスター・サイクルにおいてフレーム全体がアダプタに転送される。「伝送即値データ長」の値は、必ずしも4の倍数である必要はない。最初のホスト・データ・バッファ記述子の位置は次のように定められる。
記述子オフセット=((伝送即値データ長)+3)
&fffc(hex)+18(hex)
可変長の「即値データ」フィールドは、ホストが「伝送領域」へのメモリ書き込みを用いてアダプタに保管する即値データを含む。このフィールドの長さは0から1,514バイトの範囲で変わる。即値データは、伝送に際して、アダプタによって伝送フレームのプリアンブルと伝送バッファ・データ(もし存在すれば)との間に挿入される。一般に、即値データは宛先アドレス、発信元アドレス、およびプロトコル特有のヘッダー・データで構成される。しかし、伝送フレーム全体を即値データであると見なすこともできる。このようにすると、アダプタは、伝送フレームの残りをヘェッチするためのバス・マスター動作の実行が全く必要なくなる。「伝送即値データ長」がゼロである場合には、このフィールドはスキップされて、フレーム全体がホスト・メモリ中のデータ・バッファ中に存在するものと仮定される。もし、「伝送即値データ長」が倍長ワードの整数倍以外の長さを指定している場合には、ホストは最も近い4の倍数に丸めて、そのバイト数だけ書き込みを行うことができる。「伝送即値データ長」を越える余分のバイトは無視され、伝送フレームの一部として含まれることはない。
「伝送即値データ長」フィールドは、ホスト・データ・バッファ記述子当たりの2つのエントリーのうちの1つであり、関連するホスト・バッファのバイト数を定義するものである。この値は4の倍数である必要はない。
32ビットの「伝送データ・ポインタ」の値は、関連するホスト・データ・バッファの物理開始アドレスである。この値は4の倍数である必要はない。
V. 伝送処理
図9は、アダプタ上の独立メモリ内の伝送データ・バッファと伝送記述子リング・バッファの管理に用いられるネットワーク・インタフェース・ロジックとホスト・インタフェース論理装置とについて示したものである。ホスト・インタフェースの側の論理装置には、ホスト記述子論理装置150とダウンロードDMA論理装置151とが含まれる。ホスト記述子論理装置150およびダウンロードDMA論理装置151は「伝送領域」レジスタ、「伝送終了スレッショルド」レジスタ、「伝送失敗」レジスタ、「伝送フレーム状態」レジスタ、「伝送プロトコル識別子」レジスタ、「伝送待ち行列状態」レジスタ、「伝送開始スレッショルド」レジスタ、を含む伝送“レジスタ”を介してホスト・アドレス空間に接続される。これらのレジスタの詳細については以下に説明する。
図8aに示されている記述子は、アサプタのホストの独立RAMの伝送記述子領域に、ホストにほる「伝送領域」アドレス・ブロックへの書き込みによって記憶される。3つの異なった処理が、記述子待ち行列のエントリーに対してなされる。ホストは、最初に伝送記述子を作成するための書き込みを行い、バッファのデータをホストのメモリから伝送データ・バッファに移動させるためのバス・マスター・ダウンロード、および記述されたフレームのネットワークへの伝送を行う。最初の2つの処理は、ダウンロードDMA論理装置151およびホスト記述子論理装置150において行われる。伝送は、伝送DMA論理装置155によって実行される。伝送記述子リング・バッファ152内の記述子の数と状態とは、ホストの書き込み、ダウンロード、および伝送処理の相対速度に従ってアダプタの動作過程において変化する。
ダウンロードDMA論理装置151ないの2つの変数によって伝送記述子待ち行列の状態が記述される。「ゼロ・ダウンロード保留」は、ダウンロードDMA論理装置151によるダウンロード処理が未だ行われていない完全フレーム記述子が存在しないことを示すものである。「ゼロ・フレーム存在」変数は、すでにダウンロード処理が終了したけれども伝送がすんでいない記述子が存在しないことを示す。
これらの伝送機構を構成している3つの処理の各々が記述子待ち行列を指し示すそれぞれのポインタの集合を保持する。
ホスト記述子論理装置150は、アダプタ・メモリ上の伝送記述子リング・バッファ152のポインタの生成を行う。これらのポインタは、現在のホスト記述子ポインタ“CHD”およびホスト書き込みポインタ“HW”として表されている。現在のホスト記述子ポインタCHDは、ホストによって現在書き込みが行われているか、あるいは書き込まれようとしている記述子のベース・アドレスを指し示す。ホスト書き込みポインタHWは、(CHDポインタが指し示している)カレント記述子内のホストが次に書き込みを行おうとしている位置を指し示す。すなわち、HWポインタは、ホストがカレント記述子を完成するために書き込みを行おうとしている「伝送領域」アドレス・ブロック内のオフセットを予測するものである。
ホスト・システムから「伝送データ・バッファ0」153と「伝送データ・バッファ1」154へのダウンロードを管理している間に、ダウンロードDMA論理装置151は3つのポインタとバッファ選択信号を生成する。ダウンロードDMA論理装置151によって生成さたポインタはバス・マスター・ダウンロードDMA論理装置151によって現在処理されている記述子のベース・アドレスを指し示す現在のダウンロード記述子ポインタCDDを含んでいる。ダウンロードDMA論理装置によって生成される第2のポインタは、現在の伝送データ・バッファ(「伝送データ・バッファ0」または「伝送データ・バッファ1」のいずれか)内のダウンロード処理によってデータが書き込まれている位置を指し示すダウンロード・ポインタDDを含む。ダウンロードDMA論理装置151によって生成される第3のポインタは、カレント・ダウンロード・バッファCDBポインタを含む。CDBポインタは、CDBポインタによって指し示されている伝送記述子内の、現在ダウンロード処理がなされているホスト・メモリの仕様が存在するバッファ記述子を指し示す。
また、ダウンロードDMA論理装置は、バス・マスター動作において、ダウンロードDMA論理装置からデータの転送を行う相手先のカレント伝送データ・バッファ153と154を、発見的に示されているように、信号BUF1/0を用いて選択する。
伝送DMA論理装置155は、伝送処理のための3つのポインタの生成を行う。これらのポインタのうちにカレント伝送記述子CXDポインタが含まれるが、このポインタは、伝送論理装置155によって現在処理が行われている、伝送記述子リング・バッファ152内の記述子のベース・アドレスを指し示すものである。伝送読み取りXRポインタは、カレント記述子あるいはカレント伝送データ・バッファ(153または154)ないの、伝送処理において、伝送すべきデータの読み取りが行われている位置を示すものである。
伝送末端ポインタ(XT)は待ち行列のバックエンドを指し示すものである。このXTポインタは、伝送をすでに終了したけれどもステータス情報がホストシステムによって読み取られていないフレームが存在する場合には、CXDポインタではなく伝送記述子リング・バッファ152内の古い記述子を指し示す。
好適なシステムにおいては、ホストに対する伝送終了指示信号の生成に関して2つの動作モードが存在する。以上のパラグラフにおいて説明したホスト書き込み、バス・マスター・ダウンロード、および伝送処理に関連するデータ構造において、「ダウンロード伝送終了」変数が偽である場合には、伝送が終了したときあるいは「伝送終了スレッショルド」(以下に説明)が満たされたときに、指示信号の発生が行われる。一方、「ダウンロード伝送終了」が真である場合には、ダウンロードDMA論理装置151は、状態の読み取りがまだ行われていないフレームの追尾を行う。このモードでは、ホストは、フレームのダウンロードにおおいて、フレームの伝送終了指示信号を受け取る。従って、ホストがその指示信号に応答することができるようになる以前にフレームを伝送することが可能である。このような状態においては、「伝送末端」はもはや記述子リング・バッファないの最も古い有用なエントリーを定義することができない。従って、フレーム状態処理が必要である。フレーム状態ポインタFSは、このモードにおいて、ホストによる状態の読み取りがまだ行われていない最も古い記述子のベース・アドレスを指し示すものである。FSポインタは伝送処理と関連するものであるので、図9の伝送DMA論理装置155に示した。しかし、好適なシステムにおいては、HSポインタは、ダウンロードDMA論理装置151の方に論理的な接続がなされる。
また、伝送DMAは、カレント伝送フレームを構成するカレント伝送データ・バッファ103あるいは104を、発見的に図示されているように、信号BUF0/1を用いて選択する。
ホストからアダプタへのインタフェースを見ると、あたかも、あらかじめ指定されたアドレス・ブロックの1組のレジスタの集合であるかのように見える。伝送に必要となる重要な“レジスタ”について次にその概要を説明する。
A. 伝送領域
このレジスタの目的は、ホストがアダプタに対して、(もし残りのフレームがあるとしたら)即値データとホストのメモリ・システムのどこに残りのフレームが存在するかを表すデータ構造を供給するための機構を提供することである。アダプタはこの情報を伝送記述子リング12内に記憶し、記述されているこのフレームが最終的に伝送できるようになったときに用いる。
アダプタは、データが書き込まれているアドレスと書き込まれている順序とから、そのデータが何を表すのかを判定する。アダプタへのデータの書き込みは、図6に関連して先に説明した構造と順序とを用いて行われねばならない。
バス・マスター・ダウンロードは、記述子が「伝送領域」に書き込まれ、「伝送待ち行列状態」(以下に説明)がホストによって読み取られた後に、開始される。
いったん、ホストが伝送記述子バッファ構造の「伝送領域」への転送を終了してしまうと、ホストは、「伝送フレーム長」を読み取って、ホストが伝送フレーム内に含むように指定したバイト数を判定することができる。次に、「伝送待ち行列状態」を読み取り、他のフレームをこのレジスタに書き込むことが可能なようにCHDポインタを進めることが必要である。「伝送待ち行列状態」の読み取りの後において、「伝送領域」が再び満たされるまで、「伝送フレーム長」は無定義状態となる。
ネットワークへの実際のフレームの伝送は、次の2つの条件が満たされたときに開始する。:(1)フレーム全体がアダプタのRAMへコピーされたとき、「伝送開始スレッショルド」(後に説明)条件がみたされているか、あるいは「伝送開始スレッショルド」がゼロである場合。(2)以前から待ち行列状態にあるリクエストが存在しない場合。もし、「伝送開始スレッショルド」バイト以上の即値データが「伝送領域」に書き込まれた場合には、「伝送待ち行列状態」を読み取る前に開始される。
ホストがデータを「伝送領域」に書き込んでいるときに、アダプタが「伝送領域」の資源を使い果たしてしまった場合には、ホストが「伝送待ち行列状態」の読み取りを行ったときに、ホストに対して6の値が戻される。記述子バッファの容量を越えた書き込みはアダプタにすでに待ち行列状態にあるデータには何らの邪魔することはないであろう。
伝送フレーム宛先アドレスおよび発信元アドレスは、ホストからの各伝送フレームごとにアダプタに対して、明示的に供給されなければならない。この情報は、即値データの一部として供給するともできるし、あるいは、もし即値データが存在しない場合には、記述子に指定された最初のデータ・バッファの最初の12バイトとして供給するようにもできる。
本質的に、ホストは、フレームの各バイトの供給を「伝送領域」レジスタを介して、あるいはダウンロードDMA動作によって、フレーム・デリッミタの初めとフレーム検査シーケンス(CRC)との間に行う。
B. 伝送終了スレッショルド
「伝送終了スレッショルド」は、伝送終了の早期指示信号のためのものである。
「伝送終了スレッショルド」レジスタは、アダプタが「伝送終了」指示信号を発する前に伝送すべき、あるいはアダプタへダウンロードすべき(アダプタ・モードに依存する)残りの伝送バイト数を指定するのに用いられる。このレジスタは10から0までのビットだけで具現化される。もし、最大フレーム長よりも大きな値が与えられると、この動作は正しく機能しない。この機能をディスエーブルするときには、レジスタを0にセットすればよい。「伝送フレーム長」の値(以下を参照のこと)はどこで伝送フレームが終わるのかを判定するのにもちいられる。
もし、このスレッショルドが大きすぎる値に設定されていると、アダプタが指示信号に応答してしまう。もし、「伝送フレーム状態」がff(hex)を返した場合には、指示信号をわずかに遅らせるように「伝送終了スレッショルド」レジスタの値を低減することによって実現される。このレジスタの動作は、フレームの最初の60バイトを伝送している間、ディスエーブルとされる。このレジスタはリセットによって0にクリアされる。
C. 伝送失敗
「伝送失敗」は、伝送失敗の原因を返す。
このレジスタは、待ち行列中で待機していたフレームの伝送失敗原因を返す。0以外の値が返されたときには、伝送の試み中に1あるいはそれ以上のエラーに遭遇したこを示す。
このレジスタの各ビットは以下のように定義される。
ビット0 DMAアンダーラン
ビット1 キャリアの不検出
ビット2 最大衝突
ビット3 SQEテスト失敗
このレジスタは、フレーム伝送の試みが成功したか失敗したかにかかわらず有効なデータを含む。失敗がなっかた場合には、このレジスタはその値として0(hex)を含む。このレジスタの内容は、フレームの送信が終了し(「伝送フレーム状態」の低位バイトがff(hex)以外の値となる。)、「伝送プロトコル識別子」が読み取られる前において有効である。
データにアンダーラインが発生した場合には、宛先のデバイスが確実にそのフレームを不良フレームとして受取り、これを棄却するように、アダプタは強制的にそのフレームの送信中にCRエラーを発する。
D. 伝送フレーム長
「伝送フレーム長」は、伝送すべきバイト数を返す。
レジスタは、待ち行列中でCXDポインタによって示される現在の位置の伝送フレーム記述子による伝送を待機している総バイト数を返す。この値は、即値データのバイト数とアダプタにダウンロードされたこのフレームに関するすべてのバッファ長フィールドの総数である。このレジスタによって返される値は、フレームの長さが60バイトよりも短いときにアダプタによって行われるパッディングの影響をなんら受けない。
「伝送フレーム長」レジスタは、ホストが最後のバイトを「伝送領域」に書き込んだ直後に有効となり、「伝送待ち行列状態」を読み取った後の最後の書き込みが「伝送領域」に行われるまで有効である。
E. 伝送フレーム状態
「伝送フレーム状態」は、伝送の試みの結果を返す。
このレジスタの最下位の16ビットは、待ち行列中で待機していたフレームの伝送の試みについての状態を返す。最上位の16ビットは、そのフレームの「伝送リクエスト処理」を返す。伝送が成功したときには、値としてXXXX0000(hex)(XXXXはこの特定のフレームの「伝送リクエスト処理」である。が返され、一方、伝送が失敗した場合には、XXXX000a(hex)が返される。アダプタが、衝突の後の伝送再試行処理を行っている場合には、XXXX00fe(hex)が返される。伝送がまだ信号中である場合には、「伝送フレーム状態」は、XXXX00ff(hex)を返す。
もし、フレームの送信が成功しなかった場合には、伝送が失敗した具体的な理由を「伝送失敗」によって知ることができる。「伝送プロトコル識別子」を読み取って、もし次に伝送されるフレームがあれば「伝送フレーム状態」がこの次に伝送されるフレームに進められる。「伝送フレーム状態」を読み取ったときに、状態の値として“再試行”が返された場合には、この「伝送フレーム状態」の読み取りによって同時に「送信終了」指示信号がクリアされる。
F. 伝送プロトコル識別子
「伝送プロトコル識別子」は、伝送フレームのプロトコル識別子を返す。
アダプタが待ち行列で待機していたフレームの伝送の試みを終了し、その状態を指示すると、直ちに、ホストは「伝送プロトコル識別子」を読み取って、そのフレームを識別することが可能である。ここで返される値は、フレームを「伝送領域」に待機させる際に、「伝送プロトコル識別子」フィールドに書き込まれた値と同じ値である。
このレジスタの読み取りが行われると、「伝送フレーム状態」の値として“再試行”が読み取られた場合を除いて「伝送終了」指示信号がクリアされる。「伝送フレーム状態」の読み取りによって、“再試行”が読み取られた場合には、「伝送終了」がクリアされる。
「伝送プロトコル識別子」の値は、32ビット・レジスタの上位16ビットに存在する。このレジスタの最下位の16ビットは、「媒体アクセス・コントローラ識別子」レジスタに書き込まれる「媒体アクセス・コントローラ識別子」を返す。倍長ワード読み取りによって、これらの両方の値が同時に返される。
多数のフレームを伝送待ち行列中に待機させて、多数伝送を行わせることが可能である。「伝送プロトコル識別子」の両ワードを読み取ると、「伝送フレーム状態」の終了状態および「伝送失敗」が進められ、また、もし次のフレームが存在すれば、「伝送プロトコル識別子」が伝送したフレームの次のフレームに進められる。
G. 伝送待ち行列状態
「伝送待ち行列状態」は、伝送フレームを待ち行列中に待機させた結果を返す。
「伝送待ち行列状態」レジスタ読み取ることによって、ホストが伝送フレームを「伝送領域」に待ち行列として待機させた試みの結果が返される。
2(hex)−成功:リクエストされた伝送を待ち行列中へ待機させるのに成功した場合には、この値が「伝送待ち行列状態」を読み取ったときに返される。
6(hex)−資源の使い果たし:アダプタが待ち行列記憶用RAMを使い果たしてしまった場合には、状態の値として6(hex)が返される。
7(hex)−長過ぎるフレーム:伝送しようとしている単一のフレームの総バイト数が最大フレーム長をこえている場合には、このレジスタは7(hex)を返す。
a(hex)−順序違反:データが順番通りに「伝送領域」に書き込まれなかった場合には、このエラー・コードが返される。
ff(hex)−アダプタの準備未了:「伝送領域」への書き込みが終了した後に、「伝送待ち行列状態」を読み取るのが早過ぎた場合には、待ち行列処理が終了する前に状態の値を読み取るようにすることが可能である。
また、このレジスタが読み取られると、「伝送領域」が進められて、他の伝送を待ち行列中に待機させることが可能なようになされる。このレジスタの読み取りは、「伝送領域」へ全データが書き込まれた後に、かつ、「伝送領域」への次の伝送リクエストが行われる前に行う必要がある。
「伝送待ち行列状態」から、エラー・コード(6(hex)、7(hex)、a(hex)あるいはff(hex))が返された場合には、そのフレームは待ち行列中に待機されておれず、ホストはこれを別の時に再び待ち行列に待機させる試みを行う必要がある。フレームが長過ぎたことを示すフラッグが立っている場合には、再度待ち行列に待機させる試みを行う前に、フレームを複数のフレームに分割する必要がある。
成功を示すコード(2)が返された場合には、ホストは直ちに次の他のフレームを待ち行列中に待機させる試みに進むことができる。待ち行列中に待機させることが可能なフレーム数は、この目的のために割り当てられたアダプタのRAM容量と、各フレームに含まれる即値データ量とに依存する。
ホストが、利用可能な「伝送記述子」の自由空間を越える大き過ぎるフレームを待ち行列中に待機させようと試みた場合には、まずエラーが起こり、次いで、このエラーがホストに対して返される。
H. 伝送開始スレッショルド
「伝送開始スレッショルド」は、伝送を早期に開始させるためのものである。
「伝送開始スレッショルド」レジスタは、伝送を開始する前にアダプタに存在している必要がある伝送バイト数を指定するのに用いられる。最大フレーム長よりも大きな値が与えられると、この機能は正しく動作しない。レジスタをゼロにセットすると、この機能をディスエーブルとすることができる。バイト数のカウントは、伝送フレームの宛先フィールドの最初のバイトから開始される。
利用可能であると見なすことができるバイト数は、ホストによって「伝送領域」に書き込まれた即値データとバス・マスターDMA動作を用いてアダプタの伝送データ・バッファに転送されたバイトとの和である。「伝送開始スレッショルド」を満たす伝送フレーム・バイトの即値データが準備されたか、あるいはアダプタがバス・マスタを用いて、「伝送開始スレッショルド」−「伝送即値データ長」のバイトをアダプタ上に転送されると、直ちに伝送リクエストが発せられる。
アダプタ中に存在するバイト数は、フレームの全サイズが「伝送開始スレッショルド」よりも小さい場合を除いて、伝送を開始するのに必要な「伝送開始スレッショルド」に等しいか、またはこれよりも大きいことが必要である。フレームの全サイズが「伝送開始スレッショルド」よりも小さい場合には、このフレームの伝送は全フレームのアダプタへのコピーが終了した時点で開始される。前に保留となっている伝送フレームが存在したり、あるいはネットワークのトラフィックが滞留しているために実際の送信が遅滞することが起こり得る。
I. 伝送リング管理
図10A−10Eは、伝送動作にもちいられるポインタの進みかたを示したものである。図10A−10Eにおいて、伝送記述子リングの全体部分が200でしめされており、伝送データ・バッファが201−0および201−1で示されている。また、上記のポインタが略記号を用いて表されている。
図10Aにおいて、ホスト記述子論理装置が伝送記述子リング200中に第1の記述子の書き込みを行う。こうして、CXDポインタが第1の記述子のベース・アドレスを指し示し、また、HWポインタが、ホストが次に書き込もうとしている倍長ワードの記述子のベース・アドレスからのオフセットを指し示す。またCDD、CDBを含むダウンロード・ポインタによって、第1の記述子のダウンロード動作が開始される前のベース・アドレスが指し示される。同様に、伝送記述子CXDおよびXRが同じベース・アドレスを指し示している。また、ダウンロード・データ・ポインタDDによって第1のバッファ、例えばバッファ0の先頭が指し示される。
図10Bにおいては、第1の記述子の書き込みが終了してダウンロード処理が開始され、ホストは、第2の記述子の書き込みを開始している。このようにして、ホスト記述子論理装置・ポインタCHDは、次の記述子のベース・アドレスを指し示し、またHWが次のバイトと考えられるアドレスを指し示す。ダウンロード・ポインタCDDは、第1の記述子のベース・アドレスを指し示す。ダウンDMA論理装置は、ホストから伝送データ・バッファへのバッファ転送処理を行っている最中であるものと仮定されている。こうして、CCDポインタは、第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の記述子のベース・アドレスを指し示し、また、CDBポインタは、第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およびXRポインタは、第3の記述子のベース・アドレスを指し示す。
ホストは、第1の記述子の伝送状態を読み取るものと仮定されている。これはXTポインタを第2の記述子のベース・アドレスに移動することの効果を有している。
この処理は、アダプタが取り扱う記述子が自動てきなリング循環されることによって続行されていく。またオーバランとアンダーラン状態がモニタされて、適当なエラー信号がアダプタから発せられる。
VI. 早期伝送論理装置
図1に示されている早期伝送論理装置6Aは、好適な実施においてはダウンロードDMA論理装置58において最初に実行される。好適な実施のキー要素は図11を参照して述べられているデータ路演算、および図12−図17を参照して述べられている伝送開始制御論理装置を含んでいる。
図11は、データ路演算の基本論理装置を示す。この論理装置は、11ビット・カウンタ300上に最初に見いだされる。11ビット・カウンタ300はテスト入力、Δ(デルタ)入力、カウンタ・イネーブルCE入力、クロック入力およびリセットR入力を有する。11ビット・カウンタ300はキャリーアウトTCおよびカウンタ出力〔10:0〕を有する。テスト入力は、本発明に関係のないテストに用いられる。デルタ入力は、ダウンロードDMAバイト・イネーブル〔3:0〕によってドライブされ、ダウンロード過程において活性化している32ビット・バスのバイト数に基づいて、カウンタ300のために1と4の間の増加量をセットする。
カウンタ・イネーブルCE入力はANDゲートの出力によってドライブされる。ANDゲート301への入力は、サイクル終了信号と遅延回路302の出力を有している。遅延回路302は、入力としてクロックとバッファ・ダウンロード指示バッファDwnAck信号を受信する。サイクル終了信号は伝送サイクルの最後のクロックの間に現れ、ダウンロードDMA内に読み取りと書き込みストローブを発生するために、他の制御信号と共に用いられる。バッファDwnAck信号は、アダプタ上のバッファ・ダウンロード自律アクセス用のサイクル指示信号である。これはバッファ・ダウンロード要求に応答して現れる。遅延回路302は、カウンタの適切な増加を保証することがサイクル終了信号の間少なくとも真のままであることを保証するために動作する。
サイクル終了信号は、伝送サイクルお最後のクロックの間に発生する。それはデータ路バイト・エネーブル〔3:0〕により示される量によって、カウンタ300を増加するための基本である。
クロック入力300はシステム・クロックによってドライブされる。リセッ入力はORゲート303によってドライブされる。ORゲートへの入力は、新しい記述子がダウンロード・バッファ、ダウンロードDMAリセット信号およびアダプタ上のカウンタをクリアするための全カウンタをクリアする信号によって、処理されているときを示す新しい記述子信号を有している。カウンタ300の出力は、llビット線Q〔10:0〕上に供給される。この出力は、アダプタ304へ与えられる。アダプタ304への第2の入力はカレント記述子から読み取られる即時長さ値(immedLenValue)〔10:0〕である。即時長さ値とカウンタ300の出力の合計はダウンロード駐留バイト値〔10:0〕として供給される。
図11のデータ路演算は、駐留バイト有効信号の発生を示している。この信号は、通常は真である駐留バイト有効信号を、カウンタが値を変更するときはいつも3つのクロックに対して不活性にする一連のD型フリップ・フロップ305,306によって発生される。これは、ダウンロード駐留バイト値〔10:0〕を加算器の外部に設定し、以下に説明する伝送開始制御論理装置の比較器を介して伝送する。従って、D型フリップ・フロップ305,306はANDゲート301の出力によってドライブされるリセット入力とクロック信号によってドライブされるクロックを有している。これらのフリップ・フロップはカウンタ300が増加されるときは何時もリセットされる。
また、この論理装置はORゲート307の出力にデータ用意(dataReady)信号を発生するためにも用いられる。このORゲート307への入力はデータ路バイトEn(dataPathByteEn)信号〔3:0〕である。従って、データ用意信号は、有効なデータ路バイトEn信号が発生されるときは何時も発生される
ダウンロード実行(downloadCarryOut)信号は、カウンタ300の実行信号TCによるテスト目的のために発生される。
また、この論理装置は、ダウンロード・データ・ポインタ(downloadDataPointer)〔11:2〕を発生するためにも用いられる。ダウンロード・データ・ポインタは、加算器308の出力に発生される。加算器308への入力は、カウンタ300の出力Qと伝送バッファ選択MUX309の出力のビット〔10:2〕を有している。伝送バッファ選択MUX309への入力は、選択入力での伝送バッファ選択信号に応答して選択される2つの伝送データ・バッファのオフセットを含んでいる。最後に、この論理装置は、減算器310の出力にデータ路オフセット(dataPathOffset)信号〔1:0〕を発生する。減算器はその入力に供給された信号AおよびB間の差異を発生する。信号Aはラッチ311の出力に供給される。ラッチ311は、カウンタ300の出力Qの2つの最小重要ビット〔1:0〕をラッチする。これらの2ビットはdoAバッファ(doABuffer)信号に応答してラッチされる。doAバッファ信号は、伝送記述子に記述されたバッファのバス・マスター・ダウンロードを達成するためにバッファ・ダウンロード論理装置に供給されたコマンドである。従って、これらの2ビットは、ダウンロード動作の開始時にラッチされる。32ビット・ダウンロード開始アドレスの対応ビットはバッファ転送用のデータ路オフセットを判定するために、それらから引かれる。
従って、この論理装置は、ホスト・アドレスに結合され、アダプタ・メモリの与えられたフレーム・レジデントのデータ量のスレッショルドの判定に使用する、ホストから伝送データ・バッファへのデータのダウンローディグを監視する。
ダウンロード・バイト・レジデント(downloadBytesResident)〔10:0〕の値は、図12−15を参照して述べられている伝送開始制御論理装置に供給される。伝送開始制御論理装置のブロック図が図12に示されている。図12のブロック図の各々の機能的な要素は図13−17を参照して述べられている。
図12は、伝送開始制御論理装置のブロック図である。伝送開始制御論理装置は開始スレッショルド・レジスタ320および開始スレッヨールドの値と図11のデータ路演算において発生したダウンロード・バイト・レジデントの値を比較するダウンロード比較ブロック321を有している。また、即値データ比較器322は、即値データが伝送記述子に存在する事象において、比較を行うために含まれている。最後に、アダプタの伝送DMA論理装置ブロックに供給するための利用可能な伝送データ(xmitDataAvailable)信号を発生する利用可能なデータ制御ブロック323が含まれている。
図12の伝送開始制御論理装置は利用可能な伝送データ信号を発生するためのものであり、ネットワークに伝送すべき利用可能なデータがあることを指示するめに伝送DMAモジュールに供給される。利用可能な伝送データ信号は3つの条件の下で発生される。(1)伝送されるべく用意されたアダプタ上の、1またはそれ以上の終了フレーム・レジデントがある場合。(2)アダプタ上には終了フレームはないが、現在ダウンロードされているフレームのためのバイト・レジデントの数が伝送開始スレッショルド・レジスタの値より大きい場合。(3)アダプタ上に終了フレームがなく、かつペンディング・ダウンロード動作がなく、現在伝送領域レジスタに書き込まれているフレームのための即時バイト・レジデントの数が伝送開始スレッショルドの値より大きい場合。
開始スレッショルド・レジスタ320は、物理的な「伝送開始スレッショルド」レジスタとレジスタの値が有効である場合に判定する論理装置を含んでいる。特に、「伝送開始スレッショルド」の値がある時刻に1バイト書き込まれる場合、「伝送開始スレッショルド」信号は、第2のバイトが書き込まれるまで発生されない。これは、ダウンロード比較321と即時比較322を過渡的な値について比較することをしない。開始スレッショルドレジスタ320への入力は、書き込む間開始スレッショルド・レジスタ320を介してデータをホスト・インタフェースの「伝送開始スレッショルド」レジスタへ運ぶホスト書き込みデータ(hostWriteData)〔10:0〕を含む。開始スレッショルド書き込み(startThreshWrite)〔1:0〕信号は「伝送開始スレッショルド」レジスタのための書き込みストローブである。開始スレッショルド・レジスタ320は、開始スレッショルドの値(startThreshValue)〔10:0〕と開始スレッショルド有効信号を含んでいる。
ダウンロード比較モジュール321への入力は開始スレッショルドの値(startThreshValue)〔10:0〕と開始スレッショルド有効信号を含んでいる。また、ダウンロード・バイト・レジデント(downloadBytesResident)〔10:0〕とバイト・レジデント有効(bytesResidentValid)信号は入力として比較モジュール321へ供給される。ダウンロード比較モジュール321の出力はダウンロード・スレッショルド到達信号である。
即値比較モジュール322への入力は開始スレッショルドの値〔10:0〕と開始スレッショルド有効信号を有している。また、即値長さ(immedLengthValue)〔10:0〕は伝送記述子から即値長さ有効信号を読み取る。即値長さ有効信号は即値長さに関する値が有効であることを指示する。他の入力は、即値データあるいはバッファ記述子データのホスト書き込みを指示するストローブである他のホスト書き込み〔3:0〕信号を有している。この信号の4ビットは4つのEISAバス・バイト・レーン上の転送に相当する。ホストを指示する待ち行列状態読み取り(queueStatusRead)信号は、新しい伝送記述子、アダプタの他の部分からの制御信号であるダウンロードDMAリセット信号、クロック、伝送領域レジスタへのホストの書き込みにおけるエラーを指示する待ち行列エラー(queueError)信号、および診断やテストのために用いられる全カウンタ・テストと全カウンタ・クリア信号の書き込みを準備するために読み取り状態である。
即値比較モジュール322の出力は、即値スレッショルド到達信号である。ダウンロード・スレッショルド到達信号と即値スレッショルド到達信号は、利用可能なデータ制御ブロック322に供給される。他の入力は、ダウンロードDMAリセット信号、クロック信号および待ち行列エラー信号を含んでいる。また、ゼロ・ダウンロード・ペンディング(zeroDownloadPending)信号とゼロ・フレーム・レジデント(zeroFrameResident)信号は、利用可能なデータ制御ブロック323に供給される。これらの信号は、アダプタ上に終了伝送フレームがない場合およびペンディング・ダウンロード動作の発生がない場合をそれぞれ示している。利用可能なデータ制御ブロック323の出力は利用可能な伝送データ(xmitDataAvailable)信号である。
図13は、図12の開始スレッショルド・レジスタ320の実行を示す。このレジスタは、11ビット・スレッショルド値の高および低バイトを保持するために3ビット・レジスタ330と8ビット・レジスタから成っている。3ビット・レジスタはホスト書き込みデータ(hostWriteData)〔10:0〕バスのビット10:8を記憶する。8ビット・レジスタはビット7:0を記憶する。3ビット・レジスタ330は、開始スレッショルド書き込み(startThreshWrite)〔1〕ストローブによってクロックされ、8ビット・レジスタ331は、開始スレッショルド書き込み〔0〕ストローブによってクロックされる。両方のレジスタはダウンロードDMAリセットでリセットされる。レジスタ330と331の出力は伝送開始データ(xmitStartData)〔10:0〕として供給される。
開始スレッショルド有効状態マシン332が用いられている。この状態マシンは、開始スレッショルド書き込みストローブ〔1:0〕、ダウンロードDMAリセット信号およびクロックを入力として受信する。それは、図14に示されるように簡単な状態マシンを有しており、開始スレッショルド書き込み〔1:0〕を監視し、開始スレッショルド値(startThreshValue)バイトの1つが有効であるときは何時も開始スレッショルド値信号を発生しない。従って、状態マシンは3つの状態を有している。第1の状態「INITI」335は、ダウンロードDMAリセットに入れられる。もし開始スレッショルド書き込み〔0〕信号が真であって、開始スレッショルド書き込み〔1〕信号が偽であれば、状態マシンは低バイト書き込み状態(LOW BYTE WRITTEN)状態336になる。次に、開始スレッショルド書き込み〔1〕信号が発生されると、状態マシンは「INITI」状態335に戻る。もし、「INITI」状態335で、開始スレッショルド書き込み〔1〕信号が有効で、開始スレッショルド書き込み〔0〕信号が真でないなら、第3の状態、高バイト書き込み(HIGH BYTE WRITTEN)337が入れられる。開始スレッショルド書き込み〔0〕信号が発生されると、状態マシンは、開始スレッショルド有効信号が発生される間に、「INITI」状態335に戻る。
ダウンロード比較モジュール321が図15に示されている。この論理装置は図11のデータ路演算からのダウンロード・バイト・レジデント(downloadBytesResident)〔10:0〕の値と開始スレッショルド・レジスタ320からの伝送開始データ(xmitStartData)〔10:0〕を受信する比較器340を有している。もし、ダウンロード・バイト・レジデントの値が伝送開始データの値より大きいか、等しいければ、比較器の出力が発生される。比較器340の出力はANDゲート341に供給される。ANDゲート341は比較器340の出力に加えて3つの入力を有している。入力は、開始スレッショルド・レジスタ・モジュール320からの開始スレッショルド有効信号と送信開始データの値がゼロに等しいかどうかをテストする論理装置342の出力を含んでいる。もし、それがゼロでないなら、信号が発生される。
最後にデータ路演算からのバイト・レジデント有効(bytesResidentValid)信号は、ダウンロード・スレッショルド到達信号がANDゲート341によって発生さられる前に、発生されなければならない。
即値比較モジュール322が図16に示されている。即値比較モジュール322は11ビット・カウンター350、第1の比較器351、第2の比較器352および第3の比較器を有している。また、これらの比較器の出力はマルチプレックサ354を介して供給される。即値スレショールド到達信号はANDゲート355の出力に発生される。またORゲート356とゼロに等しくないテスト論理装置357も含まれている。即値比較モジュールは11ビットカウンター350を用いて即値データ・バイト・レジデントの数のトラックを保持する。11ビットカウンターへの入力はテスト信号、各々のクロックによって加えられたデータあるいはインクレメントを示す他のホスト・書き込み(otherHostWrite)〔3:0〕信号およびクロック信号を含んでいる。
llビット・カウンター350はORゲート356の出力でリセットされる。ORゲートへの入力はダウンロードDMAリセット信号、待ち行列状態読み取り信号、待ち行列エラー信号および全カウンター・クリアー信号を含んでいる。出力はTC出力での即値終了信号と格納された即値バイトの数を示すQ〔10:0〕バスを有している。即値バイト出力は第1および第2の比較器351と352へ入力として供給される。第1の比較器351への第2入力は現在書き込まれている記述子から検索される即値長さ値(immedLengthValue)である。第2の比較器352への第2入力は開始スレショールド・レジスタ・モジュール320からの伝送開始データ(xmitStartData)〔10:0〕である。
第3の比較器353は即値長さ値と伝送開始データ値を含む入力を受信する。
第1の比較器351は、即値バイトが即値長さ値より大きい場合に、“クリップ”信号を発生する。第2の比較器352は、即値バイトが即値長さ値より大きいか等しい場合に、カウント・クロス・スレショールド(countCrossThresh)信号を発生する。第3の比較器353は、即値バイトが伝送開始データ値より大きいか等しい場合に、即値クロス・スレショールド(immedCrossedValue)信号を発生する。クリップされた信号は、マルチプレックサ354の選択入力に供給される。これは、即値バイトの数が即値長さ値を越えない限り、マルチプレックサ354が出力Yとしてカウント・クロス・スレッショルド信号を選択させるために動作する。即値バイトの数が即値長さ値を越えると、即値クロス・スレショールド信号がマルチプレックサの出力Yに供給される。
11ビットカウンター350は、他のホスト書き込み〔3:0〕の値に従って、1、2、3あるいは4と増加される。
即値スレッショルド到達信号はANDゲート355の出力に供給される。ANDゲート355への入力は、伝送開始データ(xmitStartData)値がゼロでないとき、発生される論理装置357の出力を含んでいる。また、開始スレッショルド有効(startThreshValid)信号と即値長さ値信号がゲート355へ入力として供給される。これら3つの全ての信号が発生されると、マルチプレックサ354の出力は、即値スレッショルド到達信号として供給のためにイネーブルされる。即値バイト(immediateBytes)が即値長さ値より少ないと、クリップされた信号は不活性であり、比較器352の出力は即値スレッショルド到達として供給される。即値バイトが即値長さ値を越えると、即値バイトの値は無視され、即値クロス・スレッショルド(immedCrossedThresh)比較器353が継続する。
待ち行列状態読み取り(queueStausRead)の発生は、それが常に新しいフレーム記述子の伝送領域への書き込みに同期されることを確実にして、カウンターをクリアーする。
利用可能データ制御モジュール323は図17に示される4状態−状態マシンから成っている。4つの状態は、INIT2状態370、即値スレッショルド到達(IMMEDIATE THRESH MET)状態371、ダウンロード・スレッショルド到達(DOWNLOAD THRESH MET)状態372およびフレーム・レジデント(FRAME RESIDENT)状態373を有している。INIT2状態370は、ダウンロードDMAリセット(downloadDmaReset)に入れられる。もしゼロ・フレーム・レジデント(zeroFramesRasident)、ゼロ・ダウンロード・ペンディング(zeroDownloadPending)および即値スレッショルド到達(immediateThreshMet)信号が真であれば、即値スレッショルド到達状態371が入れられる。この状態では、利用可能な伝送データ(xmitDataAvailable)信号が発生される。即値スレッショルド到達状態は待ち行列エラーの発生に従って、INIT2状態370に戻る。代わりに、ゼロ・ダウンロード・ペンディング信号と待ち行列エラー信号が発生されないと、制御は即値スレッショルド到達状態371からダウンロード・スレッショルド到達状態372へ進む。この状態の間、利用可能な伝送データ(xmitDataAvailable)信号は真である。もしゼロ・フレーム・レジデント(zeroFramesRasident)信号が真でないと、状態マシンはダウンロード・スレッショルド到達(DOWNLOAD THRESH MET)状態372からフレーム・レジデント(FRAME RESIDENT)状態373へと進む。この状態では、発生された利用可能な伝送データ信号は残る。ゼロ・フレーム・レジデントの発生に従って、状態マシンは、利用可能な伝送データあが偽であれば、INIT2状態370に戻る。
代わりに、もし、INIT2状態370からゼロ・フレーム・レジデント信号が発生されると、状態マシンはフレーム・レジデント(FRAME RESIDENT)状態373へ直接進む。またゼロ・フレーム・レジデント信号が真で、ゼロ・ダウンロード・ペンディング信号は偽で、ダウンロード・スレッショルド到達信号が真である場合には、状態マシンはINIT2状態370からダウンロード・スレッショルド到達(DOWNLOAD THRESH MET)状態372へ進む。状態マシンは利用可能なデータ制御入力変数(ダウンロード・スレッショルド到達、即値スレッショルド到達、ゼロ・ダウンロード・ペンディング、ゼロ・フレーム・レジデント)上の転送が利用可能な伝送データ制御ライン上に偽りの指示をすることを妨げる。
VII. アンダーラン制御論理装置
図2の伝送論理装置39は、図18の簡単なブロック図に示されたデータ径路に結合されたアンダーラン制御論理装置を有する。図18において、伝送データ径路400は伝送DMA論理装置からライン401を通って伝送バイトを受信することを示している。また、伝送書き込み信号「TXWR」はライン402を通して伝送データ径路400へ供給される。伝送データ径路は、ライン401を通って伝送バイトを受信し、出力ライン403へ供給するためにそれらを直列にする。また、フレームからのデータは、標準媒体アクセス制御機能によるフレームの終わりに付加されているエラー検出コードを発生するための「CRC」ロッジク405へライン404を通して供給される。「CRC」ロッジク405の出力は、排他的ORゲート407へライン406を通して供給される。排他的ORゲート407は、悪いフレーム信号がライン409に発生されないならば、ライン408へ「CRC」コードを通過させる。
ライン403上のデータとライン408上の「CRC」は、有効フレーム用のフレームの「CRC」に従ったフレームのデータを直列出力ライン412へ供給するために、伝送制御論理装置411によって制御されるマルチプレックサ410に供給される。ライン412はネットワーク上の伝送用トランシーバに結合される。
本発明によれば、この伝送データ径路は条件を検出するためのアンダーラン検出器413を有している。そしてアンダーラン検出器においては、ホスト・インタフェースによる伝送データ・バッファへのデータの転送あるいは伝送記述子バッファへの即値データが伝送DMA論理装置による伝送データ径路400へのデータの伝送より遅れる。アンダーラン検出器413は伝送制御論理装置411によって制御される。伝送制御論理装置411は、ライン402上に伝送書き込み「TXWR」信号が予期されている間、ライン414を通して間隔を指示する。アンダーラン検出器は、伝送書き込み「TXWR」信号がフレーム伝送の予期した間隔の間に存在しない、従って、悪いフレーム信号がライン409に発生去れないことを判定する。悪いフレーム信号に応答して、「CRC」データは、アンダーランを受けているフレームの既に伝送された部分のために、悪い「CRC」が発生されるようにする排他的ORゲート407によって反転される。また、伝送制御論理装置411はマルチプレックサ410を介して悪い「CRC」データを選択するためにライン409上の悪いフレーム信号に応答もする。最後に、ライン409上の悪いフレーム信号は、アンダーラン条件の伝送失敗レジスタ(xmitFailureRegister)を介してステータス情報を仕分けするために用いられる。
VIII.結び
本発明は、上述のシステムにおいて早期の伝送開始のためのものである。「伝送開始スレッショルド」レジスタ(XMIT START THRESH register)をロードすることにより、本システムは、アダプターのバッファへ全フレームを伝送する前にネットワーク媒体へフレームの伝送を開始することを可能にする。早期の伝送開始は、「伝送開始スレッショルド」レジスタをゼロでない値にセットすることによって可能になる。
「伝送開始スレッショルド」は、アダプターが、フレームを伝送することに関連した媒体アクセス制御機能と共に開始する前に、即値データとして或いはバス・マスター・データ転送を介してアダプターに転送されるデータとして、またはこれら2つの組み合わせとして、アダプター上になければならない伝送フレームのバイト数を記入するために用いられる。
もし、アダプター(「伝送領域」(XMIT AREA)の「伝送即値長さ」フィールド(XMIT IMMEDIATE LENGTH)に書かれた値によって判定される)によって予期される即値データ・バイト数が「伝送開始スレッショルド」にセットされた値を越えると、アダプターは、「伝送領域」へ十分な書き込みが行われた後に、直ちにフレームを伝送開始する。さもなければ、バス・マスターとしてアダプターが早期の伝送開始スレッショルド要求を満足するために、オンボード・バッファへデータを十分にダウンロードするまで、伝送開始は遅延される。しかしながら、もし、スレッショルド値がフレーム長より大きいか、等しいならば、完全なフレームがアダプター上に残っている限り、伝送は開始するであろう。勿論、伝送の開始は他の待ち行列伝送によって、あるいはネットワーク・トラフィックへの遅れによって遅延されてもよい。
このレジスタがゼロにセットされると、早期伝送の特徴は無能化され、アダプターがー全伝送フレームを伝送開始する前に、全伝送フレームはアダプター上に存在しなければならない。
このレジスタに対する値は動作を最適化するためにホストによってプログラムされる得る。もし、その値が、低過ぎてセットされると、システムの待ち時間やバンド幅の制限は、保証された悪い「CRC」のある部分的なフレームが伝送されるようにしてアダプターが伝送中にネットワークをアンダーランするようにする。もし、その値が、高過ぎてセットされると、伝送の開始前に不必要な遅延が発生するであろう。アダプターは、「伝送失敗(XMIT FAILURE)」レジスタを介してホストへ利用可能にされるアンダーラン条件の指示を発生する。もし、このアンダーラン指示が発生すると、ホスト・ドライブは「伝送開始スレッショルド」レジスタ上の値を増加するべきである。更に、アンダーラン指示は、ドライブ装置が「伝送開始スレッショルド」値を連続的に増加するようにする。もし、「伝送開始スレッショルド」値がシステムによって期待される最大の長さより大きな値まで増加されると、早期伝送の特徴は、「伝送開始スレッショルド」レジスタへゼロを書き込むことによって、無能化される。
本発明の前述の好ましい実施例は、あくまでも例示的なものである。本発明は上述の詳細な形だけに限定されることを意図するものでない。明らかに、多くの変形や変更が可能であることは当業者にとって明らかであろう。上記の実施例は本発明の原理とその実際の応用とについて説明するのに最も適切なものを選んだものであり、本発明を特定の用途に対して適するようにいろいろな形で実施し、変形することが可能であることは、当業者には明らかであろう。本発明の範囲は以下の請求の範囲によって定義され、またこれと等価なものを含むものである。
Claims (3)
- ホスト・システムとネットワークに結合されたネットワーク・トランシーバ間の通信を制御するための装置であって、
伝送されるべき、ホスト・システムのデータを識別する伝送記述子を格納するための伝送記述子バッファを含み、且つ即値データと、ホスト・システムから転送されるフレームのデータをバッファするための伝送データ・バッファを含むバッファ・メモリと、
ホスト・システムへのインタフェースを有し、ホスト・システムと、伝送記述子バッファの伝送記述子に応答して、ホスト・システムから伝送データ・バッファへフレーム・データをダウンロードするための手段を含むバッファ・メモリ間の伝送記述子とフレーム・データを転送するためのホスト・インタフェース手段と、
バッファ・メモリに結合され、伝送記述子バッファの伝送記述子の即値データと、バッファ・メモリへ転送されたフレームのデータ量のシュレショールド判定をするために、伝送データ・バッファへフレーム・データのダウンロードを監視するための手段と、
監視する手段のシュレショールド判定に応答して、ホスト・コンピュータからのバッファ・メモリへフレームの全データを転送する前に、フレームの伝送を開始するための手段と、
ネットワーク・トランシーバへのインタフェースを有し、開始するための手段に応答して、バッファ・メモリと伝送用ネットワーク・トランシーバ間のデータを転送するためのネットワーク・インタフェース手段と、
ネットワーク・インタフェース手段に結合され、伝送データ・バッファへデータをダウンロードする場合のホスト・インタフェース手段がトランシーバへデータを転送する場合のネットワーク・インタフェース手段に遅れているアンダーラン条件を検出するため、およびアンダーラン条件に応答してネットワーク・トランシーバへ悪いフレーム信号を供給するためのアンダーラン制御手段と、
を有する装置。 - 前記監視するための装置は、スレッショルド値を格納するためのシステムによって変更可能なスレッショルド記憶装置とスレッショルド判定を行うためのスレッショルド値に応答する論理装置を有し、且つアンダーラン制御手段は、スレッショルド値を最適化するためのフィードバックとしてホスト・システムによって用いられることができるステータス情報を位置する手段を有している請求の範囲第1項に記載の装置。
- 前記ネットワーク・インタフェース手段は、伝送されたフレームに誤り検出コードを付加するための手段を有し、前記悪いフレーム信号はコラプトされた誤り検出コードを有している請求の範囲第1項に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/920,893 US5434872A (en) | 1992-07-28 | 1992-07-28 | Apparatus for automatic initiation of data transmission |
US920,893 | 1992-07-28 | ||
PCT/US1993/007060 WO1994002891A1 (en) | 1992-07-28 | 1993-07-27 | Apparatus for automatic initiation of data transmission |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005282538A Division JP2006114030A (ja) | 1992-07-28 | 2005-09-28 | データ伝送の自動開始装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06511585A JPH06511585A (ja) | 1994-12-22 |
JP3863912B2 true JP3863912B2 (ja) | 2006-12-27 |
Family
ID=25444577
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50476794A Expired - Lifetime JP3863912B2 (ja) | 1992-07-28 | 1993-07-27 | データ伝送の自動開始装置 |
JP2005282538A Pending JP2006114030A (ja) | 1992-07-28 | 2005-09-28 | データ伝送の自動開始装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005282538A Pending JP2006114030A (ja) | 1992-07-28 | 2005-09-28 | データ伝送の自動開始装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5434872A (ja) |
EP (1) | EP0606466A1 (ja) |
JP (2) | JP3863912B2 (ja) |
AU (1) | AU666769B2 (ja) |
CA (1) | CA2119151C (ja) |
WO (1) | WO1994002891A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI760403B (zh) * | 2017-03-23 | 2022-04-11 | 韓商愛思開海力士有限公司 | 資料儲存裝置及其操作方法 |
Families Citing this family (104)
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 |
US5434872A (en) * | 1992-07-28 | 1995-07-18 | 3Com Corporation | Apparatus for automatic initiation of data transmission |
US6018771A (en) * | 1992-11-25 | 2000-01-25 | Digital Equipment Corporation | Dynamic assignment of multicast network addresses |
US5717908A (en) * | 1993-02-25 | 1998-02-10 | Intel Corporation | Pattern recognition system using a four address arithmetic logic unit |
US5825921A (en) * | 1993-03-19 | 1998-10-20 | Intel Corporation | Memory transfer apparatus and method useful within a pattern recognition system |
US5581790A (en) * | 1994-06-07 | 1996-12-03 | Unisys Corporation | Data feeder control system for performing data integrity check while transferring predetermined number of blocks with variable bytes through a selected one of many channels |
US6351780B1 (en) * | 1994-11-21 | 2002-02-26 | Cirrus Logic, Inc. | Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated |
US5796738A (en) * | 1995-03-13 | 1998-08-18 | Compaq Computer Corporation | Multiport repeater with collision detection and jam signal generation |
US5961614A (en) | 1995-05-08 | 1999-10-05 | Apple Computer, Inc. | System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal |
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 |
US5982772A (en) * | 1995-11-06 | 1999-11-09 | Sun Microsystems, Inc. | Cell interface block partitioning for segmentation and re-assembly engine |
US5745684A (en) * | 1995-11-06 | 1998-04-28 | Sun Microsystems, Inc. | Apparatus and method for providing a generic interface between a host system and an asynchronous transfer mode core functional block |
US5778175A (en) * | 1995-12-22 | 1998-07-07 | Digital Equipment Corporation | Method implemented by a computer network adapter for autonomously adjusting a transmit commencement threshold valve upon concurrence of an underflow condition |
KR0172310B1 (ko) * | 1995-12-29 | 1999-03-30 | 김주용 | 교착 상태 방지를 위한 버스 유닛 |
US5859980A (en) * | 1996-02-08 | 1999-01-12 | Advanced Micro Devices, Inc. | Network interface having adaptive transmit start point for each packet to avoid transmit underflow |
US5829042A (en) * | 1996-02-15 | 1998-10-27 | Hewlett-Packard Company | Prefetch operation for network peripheral device having shared memory |
US5778194A (en) * | 1996-04-08 | 1998-07-07 | Symbios, Inc. | Method and apparatus for measuring performance of a computer bus |
US5764896A (en) * | 1996-06-28 | 1998-06-09 | Compaq Computer Corporation | Method and system for reducing transfer latency when transferring data from a network to a computer system |
US6038620A (en) * | 1996-09-09 | 2000-03-14 | International Business Machines Corporation | Method and system for optimal high speed match in a high performance controller which ensures an input/output interface stays ahead of a host interface |
US6260096B1 (en) * | 1999-01-08 | 2001-07-10 | Intel Corporation | Read latency across a bridge |
US6477584B1 (en) | 1997-03-21 | 2002-11-05 | Lsi Logic Corporation | Message FIFO empty early warning method |
US5950014A (en) * | 1997-03-21 | 1999-09-07 | Lsi Logic Corporation | Methodology for pull model invocation |
US6370323B1 (en) * | 1997-04-03 | 2002-04-09 | Lsi Logic Corporation | Digital video disc decoder including command buffer and command status pointers |
US6128715A (en) * | 1997-05-30 | 2000-10-03 | 3Com Corporation | Asynchronous transmit packet buffer |
US6188670B1 (en) * | 1997-10-31 | 2001-02-13 | International Business Machines Corporation | Method and system in a data processing system for dynamically controlling transmission of data over a network for end-to-end device flow control |
US6167032A (en) * | 1997-11-07 | 2000-12-26 | International Business Machines Corporation | System and method for avoiding host transmit underruns in a communication network |
US6088701A (en) * | 1997-11-14 | 2000-07-11 | 3Dfx Interactive, Incorporated | Command data transport to a graphics processing device from a CPU performing write reordering operations |
US6137804A (en) * | 1997-12-02 | 2000-10-24 | International Business Machines Corporation | System and method for automatic retry of transmit, independent of a host processor, after an underrun occurs in a LAN |
US6061768A (en) * | 1997-12-18 | 2000-05-09 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing tracking information indicating stored data status between contending memory controllers |
US6192428B1 (en) * | 1998-02-13 | 2001-02-20 | Intel Corporation | Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached |
US6298407B1 (en) * | 1998-03-04 | 2001-10-02 | Intel Corporation | Trigger points for performance optimization in bus-to-bus bridges |
US6094700A (en) * | 1998-03-13 | 2000-07-25 | Compaq Computer Corporation | Serial bus system for sending multiple frames of unique data |
US6065070A (en) * | 1998-03-18 | 2000-05-16 | National Semiconductor Corporation | DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs |
US6092140A (en) * | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Low latency bridging between high speed bus networks |
US20040208158A1 (en) | 1998-08-19 | 2004-10-21 | Fellman Ronald D. | Methods and apparatus for providing quality-of-service guarantees in computer networks |
US6246702B1 (en) * | 1998-08-19 | 2001-06-12 | Path 1 Network Technologies, Inc. | Methods and apparatus for providing quality-of-service guarantees in computer networks |
US6215797B1 (en) * | 1998-08-19 | 2001-04-10 | Path 1 Technologies, Inc. | Methods and apparatus for providing quality of service guarantees in computer networks |
US6154796A (en) * | 1998-09-03 | 2000-11-28 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing receiving frame status in a holding register |
US6161160A (en) * | 1998-09-03 | 2000-12-12 | Advanced Micro Devices, Inc. | Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains |
US6381218B1 (en) | 1998-09-11 | 2002-04-30 | Compaq Computer Corporation | Network controller system that uses directed heartbeat packets |
US6272113B1 (en) | 1998-09-11 | 2001-08-07 | Compaq Computer Corporation | Network controller system that uses multicast heartbeat packets |
US6229538B1 (en) | 1998-09-11 | 2001-05-08 | Compaq Computer Corporation | Port-centric graphic representations of network controllers |
US6308228B1 (en) * | 1998-11-23 | 2001-10-23 | Duke University | System and method of adaptive message pipelining |
US6665728B1 (en) * | 1998-12-30 | 2003-12-16 | Intel Corporation | Establishing optimal latency in streaming data applications that use data packets |
US6341315B1 (en) * | 1999-02-26 | 2002-01-22 | Crossroads Systems, Inc. | Streaming method and system for fiber channel network devices |
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 |
US6253250B1 (en) * | 1999-06-28 | 2001-06-26 | Telocity, Incorporated | Method and apparatus for bridging a plurality of buses and handling of an exception event to provide bus isolation |
EP1065831B1 (en) * | 1999-06-30 | 2006-05-17 | Texas Instruments Incorporated | Early preamble transmission |
GB9916718D0 (en) * | 1999-07-17 | 1999-09-15 | Racal Airtech Limited | Adaptive equalising FIFO |
US6298394B1 (en) * | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
US6581168B1 (en) * | 1999-12-29 | 2003-06-17 | Advanced Micro Devices, Inc. | Method and apparatus for automatic receive verification |
US6477610B1 (en) | 2000-02-04 | 2002-11-05 | International Business Machines Corporation | Reordering responses on a data bus based on size of response |
US6956818B1 (en) * | 2000-02-23 | 2005-10-18 | Sun Microsystems, Inc. | Method and apparatus for dynamic class-based packet scheduling |
US6643719B1 (en) | 2000-03-27 | 2003-11-04 | Racal Airtech Limited | Equalizing FIFO buffer with adaptive watermark |
US7032031B2 (en) * | 2000-06-23 | 2006-04-18 | Cloudshield Technologies, Inc. | Edge adapter apparatus and method |
US7107378B1 (en) * | 2000-09-01 | 2006-09-12 | Sandisk Corporation | Cooperative interconnection and operation of a non-volatile memory card and an input-output card |
US20020078118A1 (en) * | 2000-12-19 | 2002-06-20 | Cone Robert W. | Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device |
GB2372667B (en) * | 2001-02-21 | 2003-05-07 | 3Com Corp | Apparatus and method for providing improved stress thresholds in network management systems |
GB2372673B (en) * | 2001-02-27 | 2003-05-28 | 3Com Corp | Apparatus and method for processing data relating to events on a network |
GB2372671B (en) * | 2001-02-27 | 2003-04-30 | 3Com Corp | Processing network events to reduce the number of events to be displayed |
GB2372674B (en) * | 2001-02-27 | 2003-05-07 | 3Com Corp | Network management apparatus and method for determining network events |
DE60225443T2 (de) * | 2001-05-31 | 2009-03-26 | Omron Corp. | Sicherheitseinheit, steuerungsverkettungsverfahren, steuerungssystemsteuerverfahren und steuerungssystemüberwachungsverfahren |
WO2002098065A1 (fr) * | 2001-05-31 | 2002-12-05 | Omron Corporation | Systeme reseau de securite, esclaves de securite, controleur de securite, procede de communication, procede de collecte d'information et procede de surveillance dans un reseau de securite |
EP1396771B1 (en) * | 2001-05-31 | 2016-02-17 | Omron Corporation | Slave units and network system as well as slave unit processing method and device information collecting method |
WO2003001749A1 (fr) * | 2001-06-22 | 2003-01-03 | Omron Corporation | Systeme de reseau securise et esclave securise |
US7050860B2 (en) * | 2001-06-22 | 2006-05-23 | Omron Corporation | Safety network system, safety slave, and communication method |
EP2256562B1 (en) * | 2001-06-22 | 2012-01-25 | Omron Corporation | Safety controller |
GB0127650D0 (en) * | 2001-11-19 | 2002-01-09 | Nokia Corp | Improvements in and relating to content delivery |
US7313104B1 (en) * | 2001-12-28 | 2007-12-25 | Advanced Micro Devices, Inc. | Wireless computer system with latency masking |
US7149213B1 (en) * | 2001-12-28 | 2006-12-12 | Advanced Micro Devices, Inc. | Wireless computer system with queue and scheduler |
EP1540448A2 (en) | 2002-04-08 | 2005-06-15 | Socket Communications, Inc. | Wireless enabled memory module |
JP3988559B2 (ja) * | 2002-07-18 | 2007-10-10 | オムロン株式会社 | 通信システム、通信装置及び通信制御方法 |
US6985459B2 (en) * | 2002-08-21 | 2006-01-10 | Qualcomm Incorporated | Early transmission and playout of packets in wireless communication systems |
US20040059954A1 (en) * | 2002-09-20 | 2004-03-25 | Rainer Hoehler | Automatic low power state entry |
US7367503B2 (en) * | 2002-11-13 | 2008-05-06 | Sandisk Corporation | Universal non-volatile memory card used with various different standard cards containing a memory controller |
US8037229B2 (en) * | 2002-11-21 | 2011-10-11 | Sandisk Technologies Inc. | Combination non-volatile memory and input-output card with direct memory access |
US20050055479A1 (en) * | 2002-11-21 | 2005-03-10 | Aviad Zer | Multi-module circuit card with inter-module direct memory access |
US7305535B2 (en) * | 2003-04-17 | 2007-12-04 | Sandisk Corporation | Memory cards including a standard security function |
US20050094584A1 (en) * | 2003-11-04 | 2005-05-05 | Advanced Micro Devices, Inc. | Architecture for a wireless local area network physical layer |
US7209995B2 (en) * | 2003-12-09 | 2007-04-24 | Sandisk Corporation | Efficient connection between modules of removable electronic circuit cards |
US7424553B1 (en) * | 2004-04-15 | 2008-09-09 | Xilinx, Inc. | Method and apparatus for communicating data between a network transceiver and memory circuitry |
US7496699B2 (en) * | 2005-06-17 | 2009-02-24 | Level 5 Networks, Inc. | DMA descriptor queue read and cache write pointer arrangement |
DE602006013197D1 (de) * | 2006-01-04 | 2010-05-06 | Freescale Semiconductor Inc | Verfahren zur verwaltung von unterläufen und einrichtung mit unterlauf-verwaltungsfähigkeiten |
JP2007206799A (ja) * | 2006-01-31 | 2007-08-16 | Toshiba Corp | データ転送装置、情報記録再生装置およびデータ転送方法 |
US8201071B2 (en) * | 2006-11-15 | 2012-06-12 | Qimonda Ag | Information transmission and reception |
US8004988B2 (en) * | 2007-11-21 | 2011-08-23 | Microchip Technology Incorporated | Ethernet controller |
US7991927B2 (en) * | 2008-03-31 | 2011-08-02 | Lsi Corporation | Reduction of latency in store and forward architectures utilizing multiple internal bus protocols |
TWI379554B (en) * | 2008-05-21 | 2012-12-11 | Realtek Semiconductor Corp | Data access device and method for communication system |
US8370603B2 (en) * | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
US8438453B2 (en) * | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
GB2481613A (en) * | 2010-06-30 | 2012-01-04 | Skype Ltd | Updating regions of shared images using a server that records image status |
GB2481612A (en) | 2010-06-30 | 2012-01-04 | Skype Ltd | Updating image regions in a shared image system |
US8621337B1 (en) * | 2010-09-30 | 2013-12-31 | Juniper Networks, Inc. | Detecting memory corruption |
JP5732806B2 (ja) * | 2010-10-15 | 2015-06-10 | 富士通株式会社 | データ転送装置及びデータ転送方法 |
US8775699B2 (en) * | 2011-03-01 | 2014-07-08 | Freescale Semiconductor, Inc. | Read stacking for data processor interface |
US8959278B2 (en) | 2011-05-12 | 2015-02-17 | Freescale Semiconductor, Inc. | System and method for scalable movement and replication of data |
US9374106B2 (en) | 2013-08-28 | 2016-06-21 | International Business Machines Corporation | Efficient context save/restore during hardware decompression of DEFLATE encoded data |
US9800640B2 (en) * | 2013-10-02 | 2017-10-24 | International Business Machines Corporation | Differential encoder with look-ahead synchronization |
US9608842B2 (en) | 2013-12-13 | 2017-03-28 | Intel Corporation | Providing, at least in part, at least one indication that at least one portion of data is available for processing |
CN104023037A (zh) * | 2014-07-02 | 2014-09-03 | 浪潮集团有限公司 | 一种低系统开销的rapidio数据传输方法 |
US11165683B2 (en) | 2015-12-29 | 2021-11-02 | Xilinx, Inc. | Network interface device |
US11044183B2 (en) | 2015-12-29 | 2021-06-22 | Xilinx, Inc. | Network interface device |
US10684963B2 (en) * | 2018-12-28 | 2020-06-16 | Intel Corporation | Fixed ethernet frame descriptor |
CN114338530B (zh) * | 2021-12-21 | 2023-09-29 | 浙江华锐捷技术有限公司 | 设备状态的调整方法、装置、存储介质及电子装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4258418A (en) * | 1978-12-28 | 1981-03-24 | International Business Machines Corporation | Variable capacity data buffer system |
US4590467A (en) * | 1983-10-13 | 1986-05-20 | Rockwell International Corporation | Local area network interface controller |
US5133062A (en) * | 1986-03-06 | 1992-07-21 | Advanced Micro Devices, Inc. | RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory |
US4860193A (en) * | 1986-05-22 | 1989-08-22 | International Business Machines Corporation | System for efficiently transferring data between a high speed channel and a low speed I/O device |
US4715030A (en) * | 1986-08-04 | 1987-12-22 | General Electric Company | Local area network bridge |
US4852088A (en) * | 1987-04-03 | 1989-07-25 | Advanced Micro Devices, Inc. | Packet-at-a-time reporting in a data link controller |
ZA883232B (en) * | 1987-05-06 | 1989-07-26 | Dowd Research Pty Ltd O | Packet switches,switching methods,protocols and networks |
US5133078A (en) * | 1989-08-11 | 1992-07-21 | International Business Machines Corporation | Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently |
JPH0687569B2 (ja) * | 1989-09-28 | 1994-11-02 | アメリカン テレフォン アンド テレグラフ カムパニー | 端末アダプタおよびデータ伝送方法 |
EP0494999B1 (en) * | 1989-10-10 | 1998-01-21 | Storage Technology Corporation | Multiple step data read apparatus |
US5278956A (en) * | 1990-01-22 | 1994-01-11 | Vlsi Technology, Inc. | Variable sized FIFO memory and programmable trigger level therefor for use in a UART or the like |
EP0453863A2 (en) * | 1990-04-27 | 1991-10-30 | National Semiconductor Corporation | Methods and apparatus for implementing a media access control/host system interface |
US5119374A (en) * | 1990-05-29 | 1992-06-02 | Advanced Micro Devices, Inc. | Method of and system for implementing multiple levels of asynchronous priority in FDDI networks |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5043981A (en) * | 1990-05-29 | 1991-08-27 | Advanced Micro Devices, Inc. | Method of and system for transferring multiple priority queues into multiple logical FIFOs using a single physical FIFO |
US5210749A (en) * | 1990-05-29 | 1993-05-11 | Advanced Micro Devices, Inc. | Configuration of srams as logical fifos for transmit and receive of packet data |
US5247626A (en) * | 1990-05-29 | 1993-09-21 | Advanced Micro Devices, Inc. | Fddi controller having flexible buffer management |
US5195093A (en) * | 1991-02-14 | 1993-03-16 | Motorola, Inc. | Method and apparatus for ensuring CRC error generation by a data communication station experiencing transmitter exceptions |
GB9111524D0 (en) * | 1991-05-29 | 1991-07-17 | Hewlett Packard Co | Data storage method and apparatus |
US5293487A (en) * | 1991-12-27 | 1994-03-08 | Digital Equipment Corporation | Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting |
US5434872A (en) * | 1992-07-28 | 1995-07-18 | 3Com Corporation | Apparatus for automatic initiation of data transmission |
US5299313A (en) * | 1992-07-28 | 1994-03-29 | 3Com Corporation | Network interface with host independent buffer management |
-
1992
- 1992-07-28 US US07/920,893 patent/US5434872A/en not_active Expired - Lifetime
-
1993
- 1993-07-27 CA CA002119151A patent/CA2119151C/en not_active Expired - Lifetime
- 1993-07-27 EP EP93918428A patent/EP0606466A1/en not_active Withdrawn
- 1993-07-27 AU AU47881/93A patent/AU666769B2/en not_active Expired
- 1993-07-27 JP JP50476794A patent/JP3863912B2/ja not_active Expired - Lifetime
- 1993-07-27 WO PCT/US1993/007060 patent/WO1994002891A1/en not_active Application Discontinuation
-
1996
- 1996-09-16 US US08/715,253 patent/US5732094A/en not_active Expired - Lifetime
-
2005
- 2005-09-28 JP JP2005282538A patent/JP2006114030A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI760403B (zh) * | 2017-03-23 | 2022-04-11 | 韓商愛思開海力士有限公司 | 資料儲存裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US5434872A (en) | 1995-07-18 |
JPH06511585A (ja) | 1994-12-22 |
CA2119151A1 (en) | 1994-02-03 |
AU666769B2 (en) | 1996-02-22 |
EP0606466A4 (en) | 1994-04-29 |
EP0606466A1 (en) | 1994-07-20 |
WO1994002891A1 (en) | 1994-02-03 |
JP2006114030A (ja) | 2006-04-27 |
CA2119151C (en) | 2001-05-01 |
AU4788193A (en) | 1994-02-14 |
US5732094A (en) | 1998-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3863912B2 (ja) | データ伝送の自動開始装置 | |
JP3339860B2 (ja) | ホストから独立したバッファ管理によるネットワーク・インタフェース | |
AU675501B2 (en) | Apparatus, method and network adapter with host interrupt and indication management | |
JP3336816B2 (ja) | マルチメディア通信装置及び方法 | |
US5307459A (en) | Network adapter with host indication optimization | |
JP2584957B2 (ja) | ホスト指示結合式の装置 | |
US5752078A (en) | System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory | |
US5634015A (en) | Generic high bandwidth adapter providing data communications between diverse communication networks and computer system | |
JP2539614B2 (ja) | ポインタアドレスを発生するための装置および方法 | |
JPH10224354A (ja) | 通信回線監視装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040623 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040809 |
|
A313 | Final decision of rejection without a dissenting response from the applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A313 Effective date: 20041101 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050928 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20051020 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060919 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061002 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131006 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |