JP3684405B2 - 高性能で複数の伝送パケットをサポートするためのデータ構造 - Google Patents
高性能で複数の伝送パケットをサポートするためのデータ構造 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
-
- 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
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
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)
- 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へ書込まれる、ことを特徴とする、イーサネットコントローラ。 - 前記イーサネットコントローラはさらに、
各々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に記載のイーサネットコントローラ。 - 前記イーサネットコントローラはさらに、
各々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に記載のイーサネットコントローラ。 - 前記イーサネットコントローラはさらに、
各々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に記載のイーサネットコントローラ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/659,733 | 1996-06-06 | ||
US08/659,733 US5878028A (en) | 1996-06-06 | 1996-06-06 | Data structure to support multiple transmit packets for high performance |
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)
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 |
US6363067B1 (en) | 1997-09-17 | 2002-03-26 | Sony Corporation | Staged partitioned communication bus for 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 |
US6446173B1 (en) | 1997-09-17 | 2002-09-03 | Sony Corporation | Memory controller 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 |
US6744728B1 (en) | 1997-09-17 | 2004-06-01 | Sony Corporation & Sony Electronics, Inc. | Data pipeline timing optimization technique in 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 |
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 |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033092D1 (de) * | 1989-09-08 | 1999-06-10 | Auspex Systems Inc Santa Clara | Betriebssystemaufbau mit mehreren verarbeitungseinheiten |
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 |
-
1996
- 1996-06-06 US US08/659,733 patent/US5878028A/en not_active Expired - Lifetime
- 1996-07-22 TW TW085108885A patent/TW332362B/zh active
-
1997
- 1997-02-04 WO PCT/US1997/001858 patent/WO1997047116A1/en active IP Right Grant
- 1997-02-04 JP JP50054398A patent/JP3684405B2/ja not_active Expired - Fee Related
- 1997-02-04 EP EP97905784A patent/EP0903029B1/en not_active Expired - Lifetime
- 1997-02-04 DE DE69729190T patent/DE69729190T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1997047116A1 (en) | 1997-12-11 |
EP0903029B1 (en) | 2004-05-19 |
TW332362B (en) | 1998-05-21 |
US5878028A (en) | 1999-03-02 |
DE69729190T2 (de) | 2005-05-19 |
EP0903029A1 (en) | 1999-03-24 |
JP2000512099A (ja) | 2000-09-12 |
DE69729190D1 (de) | 2004-06-24 |
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 | |
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 | |
US6771654B1 (en) | Apparatus and method for sharing memory using a single ring data bus connection configuration | |
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 | |
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 | |
US6963536B1 (en) | Admission control in a network device | |
JP2001257686A (ja) | 計算機システム及び計算機システムのデータ通信方法 | |
US6963571B1 (en) | Systems and methods for merging packet lookup results |
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 |