JP3803722B2 - 複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停 - Google Patents

複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停 Download PDF

Info

Publication number
JP3803722B2
JP3803722B2 JP50054098A JP50054098A JP3803722B2 JP 3803722 B2 JP3803722 B2 JP 3803722B2 JP 50054098 A JP50054098 A JP 50054098A JP 50054098 A JP50054098 A JP 50054098A JP 3803722 B2 JP3803722 B2 JP 3803722B2
Authority
JP
Japan
Prior art keywords
fifo
data
bit
ethernet
network controller
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
JP50054098A
Other languages
English (en)
Other versions
JP2000511726A (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 JP2000511726A publication Critical patent/JP2000511726A/ja
Application granted granted Critical
Publication of JP3803722B2 publication Critical patent/JP3803722B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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/128Program 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

Description

発明の背景
1.発明の分野
この発明は、一般に、イーサネットへのおよびイーサネットからの情報の局による伝送の制御のための方法および装置に関し、より特定的には、情報伝送の性能を上げるための方法および装置に関し、さらにより特定的には、データを第1のビット幅から第2のビット幅に変換し、変換されたデータに対するアドレスを発生し、かつSRAMバッファへのおよびからの読出または書込アクセスのためのデータ経路へのアクセスを調停するための方法および装置に関する。
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が、どのデータを最初に受信または送信するか、かつどのような順序で続くデータを送信または受信するかについてインテリジェントな選択をする必要がある。
メモリ装置内での記憶のため32ビットから16ビットにデータのサイズを効率的に変える方法、SRAM内に記憶されるべき16ビットのデータに対するアドレスを発生するための方法、SRAMからの検索および検索された32ビットデータに対しアドレスを発生するために16ビットから32ビットにデータのサイズを効率的に変える方法、およびイーサネットコントローラにより制御されるさまざまな書込および読出機能の間の調停をする方法が必要である。
EP−A−150 084は、メモリと、データ伝送を管理するためのFIFOと、FIFOを制御するアービタとを含む、ネットワークとCPUとの間でのデータ伝送を制御するためのネットワークコントローラを開示する。しかし、この文献は、イーサネットネットワークを開示していない。
この発明は、CPUを有する局とネットワークとの間でのデータ伝送を制御するためのネットワークコントローラであって、
メモリと、
データの伝送を管理するための少なくとも1つのFIFOと、
FIFOまたは各FOIFOを制御するためのアービタとを含み、
前記ネットワークはイーサネットネットワークであることと、
前記少なくとも1つのFIFOは、
CPUからメモリへのCPUデータの伝送を管理するための第1のFIFOおよびCPUデータを第1のビットサイズから第2のビットサイズに変換しかつ第2のビットサイズのCPUデータをメモリに書込むためアドレスを発生するための、第1のFIFOに関連付けられる第1の論理と、
メモリからイーサネットへのCPUデータの伝送を管理するための第2のFIFOおよびメモリ内のCPUデータを読出すためアドレスを発生しかつデータを第2のビットサイズから第1のビットサイズに変換するための、第2のFIFOに関連付けられる第2の論理とを含み、前記アービタは各FIFOを制御するよう適合され、アービタは各FIFOを通じての伝送を選択されるバイト数に限定し、アービタは伝送に対する要求が未決であるか否かを決定するため選択されるバイト数の伝送後に各FIFOをポーリングすることを特徴とする、データ伝送を制御するためのネットワークコントローラを提供する。
イーサネットコントローラは、局のCPUからバッファメモリへの、バッファメモリからイーサネットへの、イーサネットからバッファメモリへの、およびバッファメモリから局のCPUへのデータ伝送を管理する関連付けられる論理形式を備える4つのFIFOを含む。イーサネットコントローラは、どのFIFOがデータの伝送に対し優先順位を有するかを調停するアービタを含む。
各FIFOに関連付けられる論理は、データのビットサイズを第1のビットサイズから第2のビットサイズに変換し、バッファメモリへの書込またはバッファメモリからの読出のためアドレスを発生する。論理はまた、8ビットのアドレスバスを通じての通信のため16ビットのアドレスを2つの8ビット部分に変換し、かつまた2つの8ビット部分を元の16ビットアドレスに変換する。
アービタは、各FIFOの要求あたり32バイトの伝送に制限しかつ各32バイトの伝送の後に伝送に対し未決の要求があるか否かを決定するため他のFIFOをポーリングする。アービタは、調停アルゴリズムにより要求を許可する。
各FIFOは、イーサネットコントローラの性能を最大にするため選択された、選択されたサイズを有する。
この発明は、添付図面に関連し以下の詳細な説明を考慮するとよりよく理解される。以下の説明から当業者には容易に明らかとなるであろうように、この発明の好ましい実施例はこの発明の実施に適したベストモードの単なる例として図示および説明される。理解されるように、全くこの発明の範囲から逸脱することなく、この発明には他の異なった例があり得、そのいくつかの詳細にはさまざまな明らかな局面において修正を加えることができる。したがって、本図面および明細書は本質的に例示的なものとみなされ限定的なものとみなされるものではない。
【図面の簡単な説明】
本明細書に組み入れられその一部を形成する添付の図面はこの発明を図示し、説明とともに、この発明の原理を説明するために役立つ。
図1は、CPUとイーサネット接続および媒体独立インタフェース接続を備えるイーサネットコントローラとを備える先行技術によるシステムの全体図である。
図2は、この発明により教示されるシステムの図である。
図3は、イーサネットコントローラのより詳細な図である。
図4は、読出および書込アクセスの順序を調停するためイーサネットコントローラが使用する調停アルゴリズムの図である。
図5は、異なったサイズのメモリロケーション内に異なったビットサイズのデータが位置づけられる態様を示す図である。
図6は、SRAMバッファメモリへデータを書込むためアドレスを発生する方法を示す図である。
図7は、SRAMバッファメモリからデータを検索するためアドレスを発生する方法を示す図である。
詳細な説明
次に図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ビットアドレスに再組立されなければならない。アドレス発生と伝送の詳細については図6および図7に関連し以下に説明する。
イーサネットコントローラ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 FIFO28により送信されるであろう。MX FIFO28は、SRAM16からMX FIFO28へのデータのフローを制御する状態機械であり、かつSRAM CONTROLLER42から許可信号を得るとき動作する。MX FIFO28は32ビット幅であり、データバス20は16ビット幅であり、したがって、MX LOGIC36が16ビットのデータを2回読出し終え、これらを倍長語(32ビット)に組立てるため論理を使用した後、書込信号がMX FIFO28に与えられる。つまり、MX FIFO28への書込みは1サイクルおきに行なわれ、かつSRAM16からの読出しは毎サイクル行なわれるということを意味する。MX FIFO28は、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 FIFO30はSRAM CONTROLLER42からBR REQUEST LINE54を通じてデータバス20へのアクセスを要求する。アクセスが許可されるとき、SRAM CONTROLLER42は、SRAM16からデータを読出し16ビットデータフォーマットで記憶されていたデータを32ビットデータフォーマットに変換し、続いてCPUにデータを送信するBR FIFO30へデータを送るBR LOGIC40と通信する。BR LOGIC40の動作は、先に説明したMX LOGIC36の動作と同様である。
次に図4を参照し、同時に複数の要求があった場合にどのような順序でSRAM CONTROLLER42(図4)がバスに対する要求を処理するのかを示す調停アルゴリズム56が示される。SRAM CONTROLLER42は、4つの論理ブロックすべてからの要求を処理するため図4に示す調停図式を使用する。
加えて、この発明は、イーサネットコントローラ42内の構成要素間で伝送されるべきバイトの最適数があることを教示する。このバイトの最適数が約32であることが分かっている。つまり、たとえばBX FIFO26によりバスに対する要求がなされる前に、BX FIFO26内にはデータが32バイト集められているべきである(唯一の例外は、転送されるべき最後のバイトがBX FIFO26内にあると検出されるときである)。加えて、1構成要素から次の構成要素に転送されるべきバイトの最適数が32バイトであることが分かっている。限界に、この場合には32バイトに達するとき、システムは送信または受信のいずれかを停止し、送信または受信する必要のある他の情報があるか否かを決定するため他の機能をポーリングするであろう。
再び図4を参照し、同時に複数の要求が存在しシステムがアイドルである第1の場合が58で示され、システムはまず最初に60で示される受信側を見、最初に62で示されるMAC側受信のアクセスを許可する。もし62に未決の要求がなければ、システムは次に64で示される送信側に行き、もし66で示されるバス送信に未決の要求があれば、バス送信にアクセスを許可するであろう。もしバス送信に未決の要求がなければ、システムは逆戻りして受信側60に行き、68で示されるバス受信にアクセスを許可する。もし68に未決の要求がなければ、システムは次に送信64を見、次に70で示されるMAC送信を見る。
システムがデータバスに対し未決の要求があるか否かを決定するため他の機能をポーリングするために停止する場合には、システムは、先に説明したのと同じ順序で未決要求に許可を出す。次に図5を参照し、システム内のさまざまな構成要素内にバイトサイズのデータが記憶される態様を図示する。FIFO内の72および74で示されるロケーション内に記憶される5バイトのデータD0からD4を備えるBX FIFO26の小さな部分が示される。また、76で示されるロケーション内に8ビットバイトとして記憶されるSTATUSデータ32ビット、S0からS3が示される。78で示されるメモリロケーション内には8ビットバイトとして記憶されるDESCRIPTORデータ32ビット、DA0からDA3が示される。BX LOGIC34は、BX FIFO26からの32ビットのデータを読出し、これを80において16ビットサイズに変換し、16ビットのデータを16ビットデータバス20へ送る。16ビットのデータはSRAM16内に書込まれ、図示するように書込まれる。82で示す第1のメモリロケーションは、システムにより予約され、かつどこにパケットの終わりが位置するか、すなわちどのメモリロケーション内にデータバイトD4が位置するかに関する情報を表わす、EOP0およびEOP1とラベル付けされた2つの8ビットバイトを含む。84で示す第2のメモリロケーションもまたシステムにより予約され、かつこの例においては上位バイトロケーションにおいてHEX10であり下位バイトロケーションにおいてHEX00である2つの8ビットバイトを含む。データ、D0からD4は86で示されるメモリロケーション内にあり、それにSTATUSデータの4つの8ビットバイト(S0−S3)が位置する、88および90で示される2つの16ビットメモリロケーションが続く。STATUSデータ情報メモリロケーションに続くのは、92および94で示されるメモリロケーション内に位置するDESCRIPTORデータの4つの8ビットバイト(DA0−DA3)である。
先に説明したように、MX FIFO28がデータバス20へのアクセスを許可されるとき、16ビットのデータがSRAM16から読出され、96において32ビットのデータに変換され、そしてMX FIFO28に送られる。
上の説明は、イーサネットコントローラ14のバス側からMAC側へのデータ伝送、すなわち、CPU12(図示せず)から、BX FIFO26へ、SRAM16へ、MX FIFO28へ、そしてイーサネット22へのデータ伝送を説明する。データが、MR FIFO32で受信され、SRAM16に送信され、BR FIFO30により読出され、そしてCPU12に送信されるときも同じ説明が当てはまることが理解されよう。
次に図6を参照し、データがSRAM16に書込まれるときのアドレス発生の方法を図示する。BX LOGIC26のアドレス発生部が破線98内に図示され、MR LOGIC38(図3)のアドレス発生部も同様であろう。SRAM16に対するアドレスを発生する方法は、BX WRITE POINTER100が次の情報のパケットが書込まれるであろうメモリロケーションを指し示すことで始まる。メモリへのパケットの書込みが始まるとき、その開始メモリロケーションがレジスタのSTART PACKET POINTER102内に記憶される。したがって、START PACKET POINTER102は、BX LOGIC26がパケットの書込を開始するSRAM16内のメモリロケーションのアドレスを保持する。開始メモリロケーションは、パケットの終わりのメモリロケーションとともに書込まれる。16ビットのアドレスが8ビットのアドレスバスを通じて通信されなければならないので、16ビットのアドレスは2つの8ビット部分に分割されなければならない。データの書込に伴いアドレスを発生するため、各バイトの書込に伴いアドレスの下位8ビット部分をインクリメントすることが必要である。上位8ビット部分はページが書込まれるごとに、すなわち下位の8ビットがHEXFFであるときごとにインクリメントされる。したがって、BX WRITE POINTER100は、バイトがSRAM16に書込まれるごとにBX WRITE POINTER100をインクリメントする下位インクリメント入力104と、新しいページが始まるごとに、すなわち下位アドレスバイトがHEXFFの値に達した後ごとにBX WRITE POINTER100をインクリメントする上位インクリメント入力とを有する。BX WRITE POINTER100はこのときちょうど書込まれたばかりのバイトが書込まれているメモリロケーションの16ビットのアドレスを含む。16ビットのアドレスが8ビットのアドレスバスを通じて通信されるので、MUX108は、16ビットのアドレスを、110で表わされる8ビットのバスを通じて、一部分が破線112内に図示されるSRAM16へ通信される上位8ビット部分と下位8ビット部分とにフォーマット変更する。SRAM16は114において2つの8ビットアドレス部分を、116で示される16ビットのアドレスに変換する。パケットの終わりがSRAM16に書込まれたとき、パケットの終わりが書込まれているメモリロケーションが、START PAKET POINTER102内に記録された開始メモリロケーションに書込まれる。
次に図7を参照し、SRAM16からデータを読出すための読出アドレスを発生するMX LOGIC36の破線124内に示される読出アドレス発生部が図示される。(破線127内に図示される)SRAM16の部分内の読出ポインタ126は、読出されたばかりのバイトが位置づけられている16ビットのメモリロケーションを指し示す。16ビットのメモリロケーションは、MUX128により130で示される8ビットのアドレスバス上に位置づけられるべき2つの8ビット部分に変換される。2つの8ビットアドレス部分は、MX LOGIC36により受信され、フリップフロップ132によって134で示される16ビットのアドレスに再組立される。
上述のこの発明の好ましい実施例の説明は、例示および説明の目的で提示された。これは包括的なものまたはこの発明を開示された形態に厳密に限定することを意図するのではない。上の教示に照らし明らかな修正例または変形例が考えられる。この実施例は、この発明の原理およびその実際の応用例の最良の例を提供し、それによって、企図される特定の用途に適したさまざまな修正を加えてさまざまな例においてこの発明を当業者が利用することを可能にするため、選択されかつ説明された。このような修正および変更は、それらが公正に、法的にかつ公平に与えられる権利の範囲により解釈されるとき添付の請求の範囲により決定されるこの発明の範囲内にある。

Claims (16)

  1. CPUを有する局とネットワークとの間でのデータ伝送を制御するためのネットワークコントローラであって、
    メモリと、
    データの伝送を管理するための少なくとも1つのFIFOと、
    FIFOまたは各FOIFOを制御するためのアービタ(42)とを含み、
    前記ネットワークはイーサネットネットワークであることと、
    前記少なくとも1つのFIFOは、
    CPUからメモリへのCPUデータの伝送を管理するための第1のFIFO(26)およびCPUデータを第1のビットサイズから第2のビットサイズに変換しかつ第2のビットサイズのCPUデータをメモリに書込むためアドレスを発生するための、第1のFIFOに関連付けられる第1の論理(34)と、
    メモリからイーサネットへのCPUデータの伝送を管理するための第2のFIFO(28)およびメモリ内のCPUデータを読出すためアドレスを発生しかつデータを第2のビットサイズから第1のビットサイズに変換するための、第2のFIFOに関連付けられる第2の論理とを含み、前記アービタは各FIFOを制御するよう適合され、アービタは各FIFOを通じての伝送を選択されるバイト数に限定し、アービタは伝送に対する要求が未決であるか否かを決定するため選択されるバイト数の伝送後に各FIFOをポーリングすることとを特徴とする、データ伝送を制御するためのネットワークコントローラ。
  2. イーサネットからメモリへのイーサネットデータの伝送を管理するための第3のFIFO(32)と、
    メモリからCPUへのイーサネットデータの伝送を管理するための第4のFIFO(30)とをさらに含み、アービタは、第3のFIFOおよび第4のFIFOを制御する、請求項1に記載のデータ伝送を制御するためのネットワークコントローラ。
  3. イーサネットデータを第1のビットサイズから第2のビットサイズに変換しかつ第2のビットサイズのイーサネットデータをメモリに書込むためアドレスを発生するための、第3のFIFOに関連付けられる第3の論理(38)と、
    メモリ内のイーサネットデータを読出すためアドレスを発生しかつイーサネットデータを第2のビットサイズから第1のビットサイズに変換するための、第4のFIFOに関連付けられる第4の論理(40)とをさらに含む、請求項2に記載のデータ伝送を制御するためのネットワークコントローラ。
  4. 選択されたバイト数は32バイトである、請求項1から3のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  5. アービタは、調停アルゴリズムに従いFIFOからの要求を許可する、請求項1から4のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  6. 調停アルゴリズムは、第1のレベルにおいて、受信FIFOのアクセスに対し優先順位を与え、受信FIFOの間で、調停アルゴリズムはイーサネットコントローラの媒体アクセス側の未決の要求を持つ受信FIFOに優先順位を与え、調停アルゴリズムは、第1のレベルにおいて、送信FIFOに第2の優先順位を与え、送信FIFOの間で、調停アルゴリズムはイーサネットコントローラのバス側の未決の要求を持つ送信FIFOに優先順位を与える、請求項5に記載のデータ伝送を制御するためのネットワークコントローラ。
  7. 第1のFIFOは第1の選択されたサイズを有する、請求項1から6のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  8. 第1の選択されたサイズは180バイトである、請求項7に記載のデータ伝送を制御するためのネットワークコントローラ。
  9. 第2のFIFOは第2の選択されたサイズを有する、請求項1から8のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  10. 第2の選択されたサイズは112バイトである、請求項9に記載のデータ伝送を制御するためのネットワークコントローラ。
  11. 第3のFIFOは第3の選択されたサイズを有する、請求項2および請求項7から10のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  12. 第3の選択されたサイズは108バイトである、請求項11に記載のデータ伝送を制御するためのネットワークコントローラ。
  13. 第4のFIFOは第4の選択されたサイズを有する、請求項2および請求項7から12のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  14. 第4の選択されたサイズは160バイトである、請求項13に記載のデータ伝送を制御するためのネットワークコントローラ。
  15. 8ビットのアドレスバスを通じての伝送のため、16ビットのアドレスを、第1の8ビット部分と第2の8ビット部分とにフォーマット変更するための第1の手段をさらに含む、請求項1から14のいずれかに記載のデータ伝送を制御するためのネットワークコントローラ。
  16. 8ビットのアドレスバスを通じて伝送された後、第1の8ビットアドレス部分と第2の8ビットアドレス部分とを、16ビットのアドレスにフォーマット変更するための第2の手段をさらに含む、請求項15に記載のデータ伝送を制御するためのネットワークコントローラ。
JP50054098A 1996-06-06 1997-02-04 複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停 Expired - Fee Related JP3803722B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/659,728 1996-06-06
US08/659,728 US5818844A (en) 1996-06-06 1996-06-06 Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
PCT/US1997/001634 WO1997046944A1 (en) 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets

Publications (2)

Publication Number Publication Date
JP2000511726A JP2000511726A (ja) 2000-09-05
JP3803722B2 true JP3803722B2 (ja) 2006-08-02

Family

ID=24646577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50054098A Expired - Fee Related JP3803722B2 (ja) 1996-06-06 1997-02-04 複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停

Country Status (6)

Country Link
US (1) US5818844A (ja)
EP (1) EP0976054B1 (ja)
JP (1) JP3803722B2 (ja)
DE (1) DE69706443T2 (ja)
TW (1) TW313732B (ja)
WO (1) WO1997046944A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363076B1 (en) * 1998-01-27 2002-03-26 International Business Machines Corporation Phantom buffer for interfacing between buses of differing speeds
US6345345B1 (en) * 1999-01-26 2002-02-05 Advanced Micro Devices, Inc. Data communications device and associated method for arbitrating access using dynamically programmable arbitration scheme and limits on data transfers
US6694417B1 (en) 2000-04-10 2004-02-17 International Business Machines Corporation Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address
US6791555B1 (en) 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7003638B2 (en) * 2002-12-11 2006-02-21 Standard Microsystems Corporation Memory bus interface for use in a peripheral device
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7107415B2 (en) 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7181584B2 (en) 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7213082B2 (en) 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US8190796B2 (en) * 2004-11-02 2012-05-29 Standard Microsystems Corporation Hardware supported peripheral component memory alignment method
FR3042049A1 (ja) * 2015-10-01 2017-04-07 Upmem

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3582934D1 (de) * 1984-01-03 1991-07-04 Texas Instruments Inc Prozessorarchitektur zur intelligenten steuerung von datenuebertragungsadaptern.
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
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
US5313582A (en) * 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
JPH08180006A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd ネットワークインタフェースおよび計算機ネットワークシステム
US5729681A (en) * 1995-10-10 1998-03-17 Intel Corporation Method of communicating data from a host to a network controller

Also Published As

Publication number Publication date
JP2000511726A (ja) 2000-09-05
DE69706443T2 (de) 2002-06-13
DE69706443D1 (de) 2001-10-04
EP0976054A1 (en) 2000-02-02
EP0976054B1 (en) 2001-08-29
WO1997046944A1 (en) 1997-12-11
TW313732B (en) 1997-08-21
US5818844A (en) 1998-10-06

Similar Documents

Publication Publication Date Title
JP3803722B2 (ja) 複数の伝送されるパケットに対処するためのアドレス発生およびsramへのおよびsramからのデータ経路の調停
JP3684405B2 (ja) 高性能で複数の伝送パケットをサポートするためのデータ構造
US5247626A (en) Fddi controller having flexible buffer management
US6651119B2 (en) Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status
JP3336816B2 (ja) マルチメディア通信装置及び方法
EP0617368B1 (en) Arbitration process for controlling data flow through an I/O controller
US6957269B2 (en) Method and apparatus for performing priority-based flow control
US6084856A (en) Method and apparatus for adjusting overflow buffers and flow control watermark levels
US6111875A (en) Apparatus and method for disabling external frame forwarding device for use with a network switch
US6980520B1 (en) Method and apparatus for performing source-based flow control across multiple network devices
US5933413A (en) Adaptive priority determination for servicing transmit and receive in network controllers
JPH0731649B2 (ja) 端末装置サーバアーキテクチャ
US4593281A (en) Local area network interframe delay controller
US6084878A (en) External rules checker interface
US5811995A (en) Circuit for switching between different frequency clock domains that are out of phase
US6574231B1 (en) Method and apparatus for queuing data frames in a network switch port
US6895015B1 (en) Dynamic time slot allocation in internal rules checker scheduler
US6061748A (en) Method and apparatus for moving data packets between networks while minimizing CPU intervention using a multi-bus architecture having DMA bus
US6108694A (en) Memory disk sharing method and its implementing apparatus
US6256313B1 (en) Triplet architecture in a multi-port bridge for a local area network
US6990535B1 (en) Device and method for multi-ported, single bus-mastering data buffer management
JP3811759B2 (ja) 複数のパケットをsram内に記憶するためのパケットの終わり検出
KR100474658B1 (ko) 다수의전송패킷들에대처하기위한어드레스생성및sram으로/으로부터의데이터경로조정
US6954427B1 (en) Method and apparatus for performing priority-based admission control
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: 20060314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060405

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

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

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees