JP3684405B2 - 高性能で複数の伝送パケットをサポートするためのデータ構造 - Google Patents

高性能で複数の伝送パケットをサポートするためのデータ構造 Download PDF

Info

Publication number
JP3684405B2
JP3684405B2 JP50054398A JP50054398A JP3684405B2 JP 3684405 B2 JP3684405 B2 JP 3684405B2 JP 50054398 A JP50054398 A JP 50054398A JP 50054398 A JP50054398 A JP 50054398A JP 3684405 B2 JP3684405 B2 JP 3684405B2
Authority
JP
Japan
Prior art keywords
bit
fifo
data
ethernet
information
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 - Fee Related
Application number
JP50054398A
Other languages
English (en)
Other versions
JP2000512099A (ja
Inventor
ロイ,ラジャット
ドゥウォーク,ジェフリー
フィッシャー,ジェニー・リュウ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2000512099A publication Critical patent/JP2000512099A/ja
Application granted granted Critical
Publication of JP3684405B2 publication Critical patent/JP3684405B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller

Description

発明の背景
1.発明の分野
この発明は、一般に、イーサネットへのおよびイーサネットからの情報の局による伝送を制御するための方法および装置に関し、特に、情報伝送の性能を上げるための方法および装置に関し、さらに特に、高性能のため複数の伝送パケットをサポートするデータ構造に関する。
2.背景技術の説明
ローカルエリアネットワーク(LAN)とは、職場、建物または建物群などのような限定された地理区域内に位置する、パーソナルコンピュータ、ワークステーション、ファイルサーバ、リピータ、データ端末装置(DTE)および他のこのような情報処理装置が相互に情報を電子的に転送することを可能にする通信システムである。LAN内の各情報処理装置は、ネットワークの動作を定義する固定されたプロトコル(または規格)に従うことで、LAN内の他の情報処理装置と通信する。
ISOオープンシステム間相互接続基本参照モデルが、LAN内のデータ通信の7層モデルを定義する。このモデルの最下層は、(a)ネットワークのノードを相互接続しかつ電子的に伝送されるべきデータの通り道となる物理媒体、(b)ネットワークのノードが物理的伝送媒体とインタフェースする態様、(c)物理的媒体を通じてデータを転送するためのプロセスおよび(d)データストリームのプロトコル、を特定するモジュールからなる物理層である。
IEEE規格802.3、衝突検出を伴う搬送波感知多重アクセス方式(Carrier Sense Multiple Access with Collision Detection(CSMA/CD))および物理層の仕様は、物理層に関し最も一般的に使用されている規格の1つである。一般にイーサネットと呼ばれるIEEE企画802.3は、撚線対ケーブルまたは典型的には撚線対ケーブルよりも価格の高い同軸ケーブルを通じてのデータ転送を扱う。IEEE規格802.3の10Base−Tプロトコルは、撚線対ケーブルを通じてのデータ転送速度を10メガビット/秒(Mbps)と定めている。
図面を参照し、図1は、CPU12で表わされる、ワークステーション、パーソナルコンピュータ、ファイルサーバ、データ端末装置または他のこのような情報処理装置を備える先行技術のシステム10がどのようにイーサネット22または媒体独立インタフェース24で表わされる他の型のデータ通信装置に接続されるかを図示する。図1中、一般にネットワークインタフェースコントローラとしても知られるイーサネットコントローラ14は、CPU12とイーサネット22の入力(および出力)ラインとの間に位置づけられる。典型的には、イーサネット22の接続は2対の撚線対銅ケーブルからなり、入力対は10R、出力対は10Tと呼ばれる。
イーサネットコントローラ14は、出力対またはケーブルへの出力データの送信および入力対またはケーブルからの入力データの受信の制御の役割を持つ。たとえば、出力データは、出力対またはケーブルに送られる前に、電磁干渉を減じるためマンチェスター符号化される。マンチェスター符号化により、データストリームのいくつかの部分は10MHzのパルスとなり、データストリームの他の部分は5MHzのパルスとなる。
より多くの情報をより高速で転送する必要性がさらに高まり同時にデータ処理能力が向上することで、10Base−Tプロトコルにより規定される10Mbpsの速度よりもはるかに高速のデータ転送速度への拡張が必要となっている。その結果、現在の既存システムの撚線対ケーブルを通じて100Mbpsの有効転送速度で移動するデータに対処するため、IEEE規格802.3を拡張する100Base−TXプロトコルがある。物理転送媒体が、100Base−TXの速度およびより遅い10Base−Tの速度の両方で、撚線対ケーブルを通じて転送されるデータを処理できることが望ましい場合がある。現在、0.96マイクロ秒のパケット間間隔の全二重モード動作をサポートするため、100メガビット/秒の動作のため最大25MHzのイーサネット速度をサポートする必要、および、内部PCIバスにおいて33MHzのPCI速度をサポートする必要がある。
イーサネットまたは媒体独立インタフェースを通じての様々な速度でのデータ伝送に関連する問題に加えて、パーソナルコンピュータ、ワークステーション、ファイルサーバ、リピータ、データ端末装置および他のこのような情報処理装置のデータ処理能力が相違することに関連する問題がある。たとえば、パーソナルコンピュータシステムにおいては、イーサネット22を通じてのデータの受送信に加え、CPU12が処理しなければならない他の装置または任務があるかもしれない。
イーサネットコントローラ14は、CPU12からイーサネット22へのデータの伝送の制御の役割を持つ。イーサネットコントローラ14が直面する主要な問題の1つは、さまざまな構成要素内の異なったメモリ装置のサイズが異なることである。たとえば、可能な限り半導体装置を小さく維持しようという要件がある。この理由により、装置の性能を劣化させることなく可能な限りバスのサイズを小さくすることが有利である。理解できるように、16ビットのバスは32ビットのバスの半分のサイズであり、もし16ビットのバスで32ビットのバスと同じ性能を提供できるのであればその部分を16ビットのバスで設計することが好ましい。加えて、バスの大きさが小さければ小さいほど、バス内に欠陥が生じる可能性も低い。
図2を参照し、異なったサイズの構成要素が図示される。SRAM16は16ビットのメモリ装置であり、データバス20は16ビットのデータバスであり、PCI BUS18は典型的には32ビットのバスである。現在64ビットのPCIバスが存在するが、将来のコンピュータシステムはすべて64ビットのPCIバスを標準バスサイズとして有するであろう。SRAM16は、イーサネット22からCPU12への、またはCPU12からイーサネット22へのデータの伝送において遅延が生じるのを防止するため、イーサネットコントローラ14によりバッファとして使用される。このような遅延は、たとえば、CPU12における長い待ち時間によって、または、送信局に送ったばかりの情報を再送信しなければならなくさせるイーサネット22での衝突によって生じ得る。さまざまなFIFO、BX FIFO26、MX FIFO28、BR FIFO30およびMR FIFO32が、さまざまな構成要素間でのデータ伝送の制御の役割を持つ。たとえば、BX FIFO26は、PCI BUS18を通じてCPU12からデータを受信し、16ビットのデータバス20を通じてSRAM16へ送信できるようにフォーマットを32ビットから16ビットに変える役割を持つ。加えて、BX FIFO26およびMR FIFO32により、情報をSRAM16内に入れることができ、かつ、SRAM16から受けとられるときの16ビットから32ビットにフォーマットを変える役割を持つMX FIFO28およびBR FIFO30によりそれぞれ効率的に取出すことができるようにアドレスを発生させる必要がある。
加えて、データを受信する必要があると同時にイーサネット22を通じてデータを送信する必要があるかもしれず、かつまた、イーサネットコントローラ14がCPU12からデータを受信する必要があると同時にCPU12へデータを送信する必要があるかもしれないので、イーサネットコントローラ14が、どのデータを最初に受信または送信するか、かつどのような順序で続くデータを送信または受信するかについてインテリジェントな選択をする必要がある。
CPU12からのデータはイーサネット22へと送信されるので、送信されているデータの状態を維持および更新する要件がある。データがうまく送信されたか、誤伝送されたか、または、うまく送信されていないかどうかなどを示すエラーコードおよびコンディションがある。
パケットの状態の維持および更新のため、パケットに対し「ピギーバック方式で送る」ことができる効率的かつ有効なデータ構造が必要とされている。
発明の概要
EP−A−459 752、EP−A−459 753およびEP−A−429 055も参照されよう。
この発明は、
CPUからイーサネットへのおよびイーサネットからCPUへのデータの伝送を制御するためのイーサネットコントローラであって、
各々32ビット幅を有する行を備える第1のFIFOを含み、第1のFIFOは、32ビットのバスを通じてCPUからイーサネットへ送信されるべきデータのパケットを受信し、前記イーサネットコントローラはさらに、
第1のFIFOと関連付けられる第1のLOGIC要素を含み、第1のLOGIC要素は、CPUから受信される、イーサネットへ送信されるべきデータのパケットを第1のFIFOに、8ビットバイトのフォーマットで行ごとに位置付け、前記イーサネットコントローラはさらに、
第1のFIFO内の各行に関連付けられるタグビットを含み、タグビットは、どの行の中にパケットの終わりが位置付けられているかを示し、
第1のLOGIC要素は、パケットの終わりが位置付けられている行のすぐ後の行内に8ビットバイトのフォーマットで、32ビットのステータス情報を、第1のFIFO内に位置付け、
第1のLOGIC要素は、32ビットのステータス情報が位置付けられる行のすぐ後の行内に8ビットバイトのフォーマットで、32ビットの記述子情報を、第1のFIFOへ位置付け、ステータス情報および記述子情報は、イーサネットへ送信されるべきデータとともにピギーバック方式で送られ、前記イーサネットコントローラはさらに、
16ビット幅を有するSRAMを含み、
第1のLOGIC要素は、第1のFIFO内の32ビットの情報を16ビットの情報に変換し、かつ、イーサネットへ送信されるべきデータおよびピギーバック方式で送られる情報を、SRAM内に位置付けるためのアドレスを発生し、
イーサネットへ送信されるべき変換された32ビットのデータおよびピギーバック方式で送られる情報は、16ビットのバスを通じてSRAMへ書込まれることを特徴とする、イーサネットコントローラを提供する。
この発明は、添付図面に関連し以下の詳細な説明を考慮するとよりよく理解される。以下の説明から当業者には容易に明らかとなるであろうように、この発明の好ましい実施例はこの発明の実施に適したベストモードの単なる例として図示および説明される。理解されるように、全くこの発明の範囲から逸脱することなく、この発明には他の異なった例があり得、そのいくつかの詳細にはさまざまな明らかな局面において修正を加えることができる。したがって、本図面および明細書は本質的に例示的なものとみなされ限定的なものとみなされるものではない。
【図面の簡単な説明】
本明細書に組み入れられその一部を形成する添付の図面はこの発明を図示し、説明とともに、この発明の原理を説明するために役立つ。
図1は、イーサネットコントローラ、CPU、イーサネット接続および媒体独立インタフェース接続を備える先行技術のシステムの全体図である。
図2は、この発明のシステムの全体図である。
図3は、この発明のイーサネットコントローラの図である。
図4は、この発明のデータ構造の図である。
詳細な説明
次に図1を参照し、CPU12と、イーサネット22および媒体独立インタフェース24への接続を備えるイーサネットコントローラ14とを備える先行技術によるシステム10の概観を示す。CPU12はBUS17によりイーサネットコントローラ14に接続される。
次に図2を参照し、この発明により教示されるシステム11を示す。この図面および続く図面においては、同様の構成要素を示すため同様の番号を使用する。イーサネットコントローラ14の部分を図2に示す。イーサネットコントローラ14がこの発明により教示される機能以外にも多くの他の機能を有すること、および、この発明に関連する構成要素のみを説明することが理解されねばならない。
イーサネットコントローラ14の図示される部分の機能は、イーサネット22および/または媒体独立インタフェース24へのおよびからのデータの伝送の管理である。イーサネットコントローラ14は、CPU12、イーサネット22または媒体独立インタフェース24のいずれかへのおよびいずれかからのデータの伝送の低速化を防止するためSRAM16をバッファとして利用することにより、データ伝送を管理する。データ伝送が低速化し得るのにはさまざまな理由があるが、たとえば、CPU12の待ち時間が長く、CPU12が他の割り込みから解放されるまで、イーサネット22からのデータ伝送が停止することがあり得る。逆に、CPU12がイーサネット22を通じてデータを送信しようとするときに、イーサネット22が使用中であるかもしれず、それによってイーサネット22の使用が終わるまでCPU12からのデータが停止または一時中断されることになる。
情報の送信または受信を完了できないために生じる問題を回避するため、イーサネットコントローラ14は4つのFIFOを有し、その各々はイーサネットコントローラ14の性能を最大にするための選択されたサイズを持つ。BX FIFO26は180バイトのFIFOであり、MX FIFO28は112バイトのFIFOであり、BR FIFO30は160バイトのFIFOであり、かつMR FIFO32は108バイトのFIFOである。BX FIFO26とBR FIFO30とはイーサネットコントローラ14のBUS側にあり、かつ、MX FIFO28とMR FIFO32とはイーサネットコントローラ14のMAC(媒体アクセス制御)側にある。各FIFOは入力機能または出力機能のいずれかを管理する。BX FIFO26は、CPU12からSRAM16へのデータの伝送を管理する。MX FIFO28は、SRAM16からイーサネット22または媒体独立インタフェース24へのデータの伝送を管理する。同様に、MR FIFO32はイーサネット22または媒体独立インタフェース24のいずれかからのデータの伝送を管理する。
次に図3を参照し、イーサネットコントローラ14をより詳細に図示する。図2に関連して説明した4つのFIFOは各々論理ブロックを含むかまたは論理ブロックと関連づけされる。BX FIFO26は、SRAM16に対するアドレスを発生しかつ16ビットのデータ経路20を通じてSRAM16に送信されるべきCPUからの32ビットのデータを準備するBX LOGIC34に関連づけされ、MX FIFO28は、SRAM16から検索されるべき16ビットのデータに対するアドレスを発生しSRAM16内の16ビットのデータを読出しSRAM16から検索された16ビットのデータを32ビットに変換しかつ32ビットのデータをMX FIFO28に書込むMX LOGIC36に関連づけされている。MR FIFO32は、イーサネット22からMR FIFO32により受信されたデータを16ビットサイズに変換しかつSRAM16内に書込まれるべき16ビットのデータに対するアドレスを発生するMR LOGIC38に関連づけされ、BR FIFO30は、イーサネット22から受信されたSRAM16内のデータを読出し、データを16ビットサイズから32ビットサイズに変えかつBR FIFO30内に32ビットサイズのデータを書込むBR LOGIC40に関連づけされ、このデータはBR FIFO30からCPU12に送られるであろう。
SRAM CONTROLLER42は、4つのFIFOを制御し、かつ、コンフリクトの場合には、すなわち2つ以上のFIFOがデータ伝送のためバスを要求したときは、どのような順序でどのFIFOが優先順位を有するかを決定する予め定められたアルゴリズムに従いSRAM CONTROLLER42が調停を行なう。以下にアルゴリズムを説明する。
図3に図示するシステムの全体動作は以下のとおりである。イーサネットコントローラ14は、CPU12からイーサネット22へのデータ伝送の全体動作およびイーサネット22からCPU12へのデータ伝送を管理する。上に説明したように、イーサネット22へのおよびイーサネット22からのデータ伝送についての主要な問題の1つは、任意のこのようなデータの効率的な伝送に影響を与え得るさまざまな要因が存在することである。要因の1つは、対応しなければならない異なった速度である。0.96マイクロ秒のパケット間間隔で全二重動作をサポートする100メガビットの動作のために、イーサネット22は25MHzの最大速度で動作し、PCI BUS18は33MHzの速度で動作する。イーサネットコントローラ14の主要な機能の1つは、このようなデータの受信または送信のいずれにおいてもいかなる遅延をも最小にするような態様で、さまざまな構成要素間でのデータ転送を管理することである。たとえば、CPU12(図示せず)がイーサネット22にデータを送信したいときは、CPU12はBX FIFO26と通信しかつこれにデータを送信する。BX FIFO26は、BX REQUEST LINE44を通じてSRAM CONTROLLER42からバスにアクセスを要求する。BX LOGIC34が、BX CONTROL LINE46を通じてSRAM CONTROLLER42から許可を受信するとき、BX LOGIC34はCPU12から受信した32ビットサイズのデータを16ビットサイズのデータに変え、かつ、16ビットフォーマットでのデータの記憶のためSRAM16に対するアドレスを発生する。変換されたデータは16ビットのバス20を通じてSRAM16へ通信されかつそこに書込まれる。BX LOGIC34は、BX FIFO26からSRAM16へのデータのフローを制御する状態機械であり、かつ、一旦SRAM CONTROLLER42から許可信号を得ると動作する。BX FIFO26は32ビット幅でありかつデータバス20は16ビット幅であるため、各サイクルにおいて16ビットサイズのデータバス上では16ビットしか書込むことができないので、BX LOGIC34が16ビットサイズのデータをSRAM16に書込むには2サイクルかかるであろう。180バイトのサイズのBX FIFO26を有することによって、BX FIFO26を通じてのデータ転送が最大にされること、すなわち、BX FIFO26を通じてのデータ転送におけるいかなる遅延も最小にされることがわかっている。以下に説明するように、SRAM CONTROLLER42は、システム11の性能を最大にする調停アルゴリズムに従い、BX FIFO26を含むすべてのFIFOを通じてデータの受信および送信を管理する。
SRAM16のサイズは選択可能であり、この実施例においては64キロバイトが選択されているが、少なくとも128キロバイトまで拡張可能である。したがって、各メモリロケーションにアクセスするために16ビットのアドレスを有する必要がある。しかし、イーサネットコントローラ14は、空間を節約しかつ費用対効果をよりよくするため8ビットのアドレスポートしか有さない。この理由のため、16ビットのアドレスは上位8ビット部分と下位8ビット部分とに分割されなければならず、8ビットアドレスバスを通じて伝送され、そしてイーサネットコントローラ14の外で16ビットアドレスに再組立されなければならない。アドレス発生と伝送の詳細については図3および図4に関連し以下に説明する。
イーサネットコントローラ14は、MX FIFO28を通じてイーサネットネットワークと絶えず通信しており、使用されるプロトコルの型に依存して、システムはいつイーサネット22を通じてデータを送信し得るかを決定する。イーサネット22を通じてデータを送信し得るときには、MX FIFO28は、SRAM CONTROLLER42からMX REQUEST LINE47を通じてデータバス20へのアクセスを要求する。アクセスが許可されかつMX CONTROL LINE48を通じてMX LOGIC36に通信されるときは、SRAM16内に一時的に書込まれたかまたはMX FIFO28内にあるデータが、BX FIFO26によりCPU12から受信されたときのもとの32ビット形式に変換されるかまたは変換されており、イーサネット22を通じてMX LOGIC36により送信されるであろう。MX FIFO28は、SRAM16からMX FIFO28へのデータのフローを制御する状態機械であり、かつSRAM CONTROLLER42から許可信号を得るとき動作する。MX FIFO28は32ビット幅であり、データバス20は16ビット幅であり、したがって、MX LOGIC36が16ビットのデータを2回読出し終え、これらを倍長語(32ビット)に組立てるため論理を使用した後、書込信号がMX FIFO28に与えられる。つまり、MX FIFO28への書込みは1サイクルおきに行なわれ、かつSRAM16からの読出しは毎サイクル行なわれるということを意味する。MX LOGIC36は、SRAM16からの読出しおよびMX FIFO28への書込みを制御する。
MR FIFO32が受信されるべきイーサネットからの情報が存在することを感知するとき、MR FIFO32は、MR REQUEST LINE50を通じてSRAM CONTROLLER42からデータバス20へのアクセスを要求する。SRAM CONTROLLER42がMR CONTROL LINE52を通じてのアクセスを許可するとき、MR FIFO32により受信されたデータはMR LOGIC38により16ビットのフォーマットに変換され、16ビットデータバス20を通じてSRAM16に送信される。MR LOGIC38の動作は、先に説明したBX LOGIC34の動作と同様である。
CPUが、イーサネットから受信されたデータを受信する準備のあるときは、BR FIFO38はSRAM CONTROLLER42からBR REQUEST LINE54を通じてデータバス20へのアクセスを要求する。アクセスが許可されるとき、SRAM CONTROLLER42は、SRAM16からデータを読出し16ビットデータフォーマットで記憶されていたデータを32ビットデータフォーマットに変換し、続いてCPUにデータを送信するBR FIFO30へデータを送るBR LOGIC40と通信する。BR LOGIC40の動作は、先に説明したMX LOGIC36の動作と同様である。
次に図4を参照し、この発明のデータ構造およびイーサネットコントローラ14(図3)において高性能を提供するためのその利用法を図示する。以下の説明においては、D0からD4の5バイトのデータを含むパケットを説明し、各バイトは8ビットである。5バイトのデータは、56で示すようにCPU12により、指示されるように、メモリから受信される。BX FIFO26は32ビット幅でありかつ5バイトのデータは図4に示すように位置づけられる。一番目の4つのバイトD0からD4は、BX FIFO26の58で示される行内に位置づけられる。最後のバイトD4は、BX FIFO26内の60で示される32ビットの行の下位8ビット内に単独で位置づけられる。少なくとも1バイトのデータを含む行のすぐ後に続く62で示される行は、データがイーサネットを通じてうまく送信されたか否かを示すためシステムにより維持および更新されなければならない、S0からS3のSTATUS情報4バイトを含む。STATUS情報を含む行のすぐ後に続く64で示される行は、上位プロトコルのために、送信されたパケットの状態を更新する必要があるDESCRIPTORメモリのアドレスを含む、DA0からDA3の4バイトのDESCRIPTOR情報を含む。理解できるように、この発明のデータ構造は、データとともに「ピギーバック方式で」伝送されるべきデータのパケットに関係するSTATUS情報およびDESCRIPTOR情報をすべて有し、したがって、STATUS情報およびDESCRIPTOR情報の記憶のため別個のメモリロケーションを提供するためのいかなるシステムの要件も不要である。
BX FIFO26内のメモリの各行と、以下に説明する66で示す1ビットのタグフィールドが関連する。先に説明したように、STATUS情報およびDESCRIPTOR情報を含むデータは、示されるようにSRAM16に書込まれかつ16ビットメモリ内に書込まれる。D0からD4の5バイトのデータに加えて、SRAM16内には、パケットの終わり(EOP)情報のために予約された、68で示されるメモリの第1の行がある。第1の予約された行68内におかれたパケットの終わり情報は、パケットの最後のバイトが書込まれる、SRAM16内のロケーションの16ビットのアドレスであり、この場合には、バイトD4が書込まれるメモリロケーションは行68内に書込まれるであろう。70で示される次の行は、パケットの終わりがメモリ内に書込まれたかどうかをシステムに示す有効ビットのため予約されている。SRAM16は16ビットメモリであるため、32ビットのデータ、STATUSおよびDESRCIPTOR情報は、SRAM16内に書込まれる前に16ビットのフォーマットにフォーマット変更される。
先に説明したように、データ、STATUSおよびDESCRIPTOR情報は、MX FIFO28へと書込まれかつ図4に図示するように書込まれる。加えて、BX FIFO26に関連するタグフィールド66内の情報は、MX FIFO28に関連する72で示されるタグフィールドに通信される。読出しポインタ74により示されるようにMX FIFO28が読まれているとき、タグフィールド72の内容が読出される。タグフィールドの内容は、以下のことを示す。タグフィールド内の0は、パケットの終わりに達していないことを示し、すなわち、現在読まれているMX FIFO28内の行がパケットの最後のバイトを含んでいないことを示し、タグフィールド内の1は読まれている行内にパケットの終わりが含まれていることを示す。たとえば、ポインタ74が行76を指し示しているとき、この0はパケットの終わりが行76内にないことを示す。ポインタ74が行80を指し示しているときは、80のタグフィールド72には1が書込まれているであろう。80内の1はパケットの終わりが行82内にあることを示す。
読まれている行内にパケットの終わりが含まれていることを示すのに加えて、タグは、84で示される第1のSTATUSバイトS0内の下位4ビットが、行内の4バイトのうちどのバイトがパケットの終わりを含むかを示すことをシステムに示す。たとえば、この場合、パケットの終わりバイトは行82内の最下位バイト内に位置づけられているので、第1のSTATUSバイトS084内の下位4ビットは0001と読まれるであろう。先に説明したように、残りのSTATUS情報は、データの状態、すなわち、データがイーサネットを通じてうまく送信されたかどうかに関係する。また先に説明したように、その次の行86は、上位プロトコルのために、送信されたパケットの状態を更新する必要がある、DESCRIPTORメモリ内のロケーションに関係する4バイトのDESCRIPTOR情報を含む。
上述のこの発明の好ましい実施例の説明は、例示および説明の目的で提示された。これは包括的なものまたはこの発明を開示された形態に厳密に限定することを意図するのではない。上の教示に照らし明らかな修正例または変形例が考えられる。この実施例は、この発明の原理およびその実際の応用例の最良の例を提供し、それによって、企図される特定の用途に適したさまざまな修正を加えてさまざまな例においてこの発明を当業者が利用することを可能にするため、選択されかつ説明された。このような修正および変更は、それらが公正に、法的にかつ公平に与えられる権利の範囲により解釈されるとき添付の請求の範囲により決定されるこの発明の範囲内にある。

Claims (4)

  1. CPU(12)からイーサネット(22)へのおよびイーサネットからCPUへのデータの伝送を制御するためのイーサネットコントローラであって、
    各々32ビット幅を有する行を備える第1のFIFO(26)を含み、第1のFIFOは、32ビットのバス(18)を通じてCPUからイーサネットへ送信されるべきデータのパケットを受信し、前記イーサネットコントローラはさらに、
    第1のFIFOと関連付けらる第1のLOGIC要素(34)を含み、第1のLOGIC要素は、CPUから受信される、イーサネットへ送信されるべきデータのパケットを第1のFIFOに、8ビットバイトのフォーマットで行ごとに位置付け、前記イーサネットコントローラはさらに、
    第1のFIFO内の各行に関連付けられるタグビット(66)を含み、タグビットは、どの行の中にパケットの終わりが位置付けられているかを示し、
    第1のLOGIC要素は、パケットの終わりが位置付けられている行(60)のすぐ後の行(62)内に8ビットバイトのフォーマットで、32ビットのステータス情報を、第1のFIFO内に位置付け、
    第1のLOGIC要素は、32ビットのステータス情報が位置付けられる行のすぐ後の行(64)内に8ビットバイトのフォーマットで、32ビットの記述子情報を、第1のFIFO内に位置付け、ステータス情報および記述子情報は、イーサネットへ送信されるべきデータとともにピギーバック方式で送られ、前記イーサネットコントローラはさらに、
    16ビット幅を有するSRAM(16)を含み、
    第1のLOGIC要素は、第1のFIFO内の32ビットの情報を16ビットの情報に変換し、かつ、イーサネットへ送信されるべきデータおよびピギーバック方式で送られる情報を、SRAM内に位置付けるためのアドレスを発生し、
    イーサネットへ送信されるべき変換された32ビットのデータおよびピギーバック方式で送られる情報は、16ビットのバス(20)を通じてSRAMへ書込まれる、ことを特徴とする、イーサネットコントローラ。
  2. 前記イーサネットコントローラはさらに、
    各々32ビット幅を有する行を備える第2のFIFO(28)を含み、第2のFIFOは、イーサネットへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を16ビットのバスを通じてSRAMから受信し、前記イーサネットコントローラはさらに、
    第2のFIFOに関連付けられる第2のLOGIC要素(36)を含み、第2のLOGIC要素は、16ビットのバスを通じて受信された16ビットの情報を32ビットの情報に変換し、かつ、SRAMからの、イーサネットへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、8ビットのフォーマットで行ごとに第2のFIFO内に位置付け、前記イーサネットコントローラはさらに、
    第2のFIFO内の各行に関連付けられるタグビットを含み、タグビットはイーサネットへ送信されるべきデータのパケットの終わりがどの行内に位置付けられているかを示し、
    イーサネットへ送信されるべきデータのパケットはイーサネットへ送信される、請求項1に記載のイーサネットコントローラ。
  3. 前記イーサネットコントローラはさらに、
    各々32ビット幅を有する行を備える第3のFIFO(32)を含み、第3のFIFOは、CPUへ送信されるべきデータのパケットを、32ビットのフォーマットでイーサネットから受信し、前記イーサネットコントローラはさらに、
    第3のFIFOに関連付けられる第3のLOGIC要素(38)を含み、第3のLOGIC要素は、イーサネットから受信されたCPUへ送信されるべきデータのパケットを、8ビットバイトのフォーマットで行ごとに第3のFIFO内に位置付け、前記イーサネットコントローラはさらに、
    第3のFIFO内の各行に関連付けられるタグビットを含み、タグビットは、パケットの終わりがどの行内に位置付けられているかを示し、
    第3のLOGIC要素は、パケットの終わりが位置付けられている行のすぐ後の行内に、32ビットのステータス情報を、第3のFIFO内に位置付け、
    第3のLOGIC要素は、ステータス情報が位置付けられている行のすぐ後の行内に、32ビットの記述子情報を第3のFIFO内に位置付け、ステータス情報および記述子情報は、CPUへ送信されるべきデータとともにピギーバック方式で送られ、
    第3のLOGIC要素は、第3のFIFO内の32ビットの情報を16ビットの情報に変換し、かつ、CPUへ送信されるべきデータおよびピギーバック方式で送られる情報を、SRAM内に位置付けるためアドレスを発生し、
    CPUへ送信されるべき変換された32ビットのデータおよびピギーバック方式で送られる情報は、16ビットのバスを通じてSRAMに書込まれる、請求項2に記載のイーサネットコントローラ。
  4. 前記イーサネットコントローラはさらに、
    各々32ビット幅を有する行を備える第4のFIFO(30)を含み、第4のFIFOは、CPUへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、16ビットのバスを通じてSRAMから受信し、前記イーサネットコントローラはさらに、
    第4のFIFOに関連付けられる第4のLOGIC要素(40)を含み、第4のLOGIC要素は、SRAMから受信した16ビットの情報を32ビットの情報に変換し、かつ、SRAMからのCPUへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、8ビットのフォーマットで行ごとに第4のFIFO内に位置付け、前記イーサネットコントローラはさらに、
    第4のFIFO内の各行に関連付けられるタグビットを含み、タグビットは、CPUへ送信されるべきデータのパケットの終わりがどの行内に位置付けられているかを示し、
    CPUへ送信されるべきデータのパケットは、32ビットのバスを通じてCPUへ送信される、請求項3に記載のイーサネットコントローラ。
JP50054398A 1996-06-06 1997-02-04 高性能で複数の伝送パケットをサポートするためのデータ構造 Expired - Fee Related JP3684405B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/659,733 US5878028A (en) 1996-06-06 1996-06-06 Data structure to support multiple transmit packets for high performance
US08/659,733 1996-06-06
PCT/US1997/001858 WO1997047116A1 (en) 1996-06-06 1997-02-04 Data structure to support multiple transmit packets for high performance

Publications (2)

Publication Number Publication Date
JP2000512099A JP2000512099A (ja) 2000-09-12
JP3684405B2 true JP3684405B2 (ja) 2005-08-17

Family

ID=24646600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50054398A Expired - Fee Related JP3684405B2 (ja) 1996-06-06 1997-02-04 高性能で複数の伝送パケットをサポートするためのデータ構造

Country Status (6)

Country Link
US (1) US5878028A (ja)
EP (1) EP0903029B1 (ja)
JP (1) JP3684405B2 (ja)
DE (1) DE69729190T2 (ja)
TW (1) TW332362B (ja)
WO (1) WO1997047116A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021133A (en) * 1997-03-07 2000-02-01 Advanced Micro Devices Inc. Communication processing method using a buffer array as a virtually circular buffer
US6172984B1 (en) * 1997-06-19 2001-01-09 Siemens Information And Communication Networks, Inc. System and method for reducing the latency for time sensitive data over CSMA/CD networks
US6446173B1 (en) 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
US6308218B1 (en) 1997-09-17 2001-10-23 Sony Corporation Address look-up mechanism in a multi-port bridge for a local area network
US6252879B1 (en) 1997-09-17 2001-06-26 Sony Corporation Single counter for controlling multiple finite state machines in a multi-port bridge for local area network
US6751225B1 (en) 1997-09-17 2004-06-15 Sony Corporation Port within a multi-port bridge including a buffer for storing routing information for data packets received in the port
US6442168B1 (en) 1997-09-17 2002-08-27 Sony Corporation High speed bus structure in a multi-port bridge for a local area network
US6301256B1 (en) 1997-09-17 2001-10-09 Sony Corporation Selection technique for preventing a source port from becoming a destination port in a multi-port bridge for a local area network
US6363067B1 (en) 1997-09-17 2002-03-26 Sony Corporation Staged partitioned communication bus for a multi-port bridge for a local area network
US6617879B1 (en) 1997-09-17 2003-09-09 Sony Corporation Transparently partitioned communication bus for multi-port bridge for a local area network
US6768745B1 (en) * 1998-04-29 2004-07-27 Zhone Technologies, Inc. Flexible SONET access and transmission system
US6067300A (en) * 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
US6385211B1 (en) * 1998-08-19 2002-05-07 Intel Corporation Network controller
US7013304B1 (en) 1999-10-20 2006-03-14 Xerox Corporation Method for locating digital information files
JP2001237864A (ja) * 2000-02-25 2001-08-31 Toyo Commun Equip Co Ltd データ伝送装置及び方法
US7046628B2 (en) * 2001-09-24 2006-05-16 Intel Corporation Apparatus and method for just-in-time transfer of transmit commands to a network interface
US7346701B2 (en) * 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7826614B1 (en) 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US7757020B2 (en) * 2005-06-29 2010-07-13 Intel Corporation Point-to-point link negotiation method and apparatus
EP2736220B1 (en) * 2012-11-22 2019-10-23 NXP USA, Inc. Method and apparatus for network streaming
US9485333B2 (en) 2013-11-22 2016-11-01 Freescale Semiconductor, Inc. Method and apparatus for network streaming
DE102015213845A1 (de) * 2015-07-22 2017-01-26 Robert Bosch Gmbh Verfahren und Vorrichtung zur Validierung eines Zeitstempels einer Datenübertragung

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066566C (en) * 1989-09-08 2001-12-25 David Hitz Multiple facility operating system architecture
AU624274B2 (en) * 1989-11-20 1992-06-04 Digital Equipment Corporation Data format for packets of information
US5247626A (en) * 1990-05-29 1993-09-21 Advanced Micro Devices, Inc. Fddi controller having flexible buffer management
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
JPH0548638A (ja) * 1991-08-15 1993-02-26 Fujitsu Ltd Atm網におけるエンド・エンド間輻輳対処制御処理方式
US5461618A (en) * 1992-06-30 1995-10-24 Industrial Technology Research Institute Adapter for transmission lines using HDLC frames
US5481735A (en) * 1992-12-28 1996-01-02 Apple Computer, Inc. Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network
DE4323471C2 (de) * 1993-07-14 1996-10-17 Atecom Advanced Telecommunicat Anordnung und Verfahren zum Bearbeiten von Datenstrukturen bei deren Durchlauf durch einen Netzwerkknoten

Also Published As

Publication number Publication date
US5878028A (en) 1999-03-02
EP0903029A1 (en) 1999-03-24
EP0903029B1 (en) 2004-05-19
WO1997047116A1 (en) 1997-12-11
JP2000512099A (ja) 2000-09-12
DE69729190D1 (de) 2004-06-24
TW332362B (en) 1998-05-21
DE69729190T2 (de) 2005-05-19

Similar Documents

Publication Publication Date Title
JP3803722B2 (ja) 複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停
JP3684405B2 (ja) 高性能で複数の伝送パケットをサポートするためのデータ構造
US5247626A (en) Fddi controller having flexible buffer management
US6957269B2 (en) Method and apparatus for performing priority-based flow control
US7110359B1 (en) System and method for dynamically updating weights of weighted round robin in output queues
US6980520B1 (en) Method and apparatus for performing source-based flow control across multiple network devices
US6490280B1 (en) Frame assembly in dequeuing block
JP3746785B2 (ja) 多重ネットワーク・アドレスを備えたネットワーク・ステーション
US6625157B2 (en) Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol
US6084878A (en) External rules checker interface
US6724769B1 (en) Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames
US6393028B1 (en) Method and apparatus for providing EOF for frame modification
US6501734B1 (en) Apparatus and method in a network switch for dynamically assigning memory interface slots between gigabit port and expansion port
US6574231B1 (en) Method and apparatus for queuing data frames in a network switch port
US6741589B1 (en) Apparatus and method for storing data segments in a multiple network switch system using a memory pool
US6771654B1 (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US6597693B1 (en) Common scalable queuing and dequeuing architecture and method relative to network switch data rate
US6483844B1 (en) Apparatus and method for sharing an external memory between multiple network switches
US6947437B1 (en) Programmable output queues in a network device
US7079533B1 (en) Systems and methods for bypassing packet lookups
JP3811759B2 (ja) 複数のパケットをsram内に記憶するためのパケットの終わり検出
US6954427B1 (en) Method and apparatus for performing priority-based admission control
JP3435736B2 (ja) 通信制御装置
KR100474658B1 (ko) 다수의전송패킷들에대처하기위한어드레스생성및sram으로/으로부터의데이터경로조정
US6917623B1 (en) System and method for transferring data in a network device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040108

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: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050426

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: 20090610

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090610

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100610

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110610

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110610

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120610

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120610

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120610

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees