(57)【特許請求の範囲】
【請求項１】
ＣＰＵ（１２）からイーサネット（２２）へのおよびイーサネットからＣＰＵへのデータの伝送を制御するためのイーサネットコントローラであって、
各々３２ビット幅を有する行を備える第１のＦＩＦＯ（２６）を含み、第１のＦＩＦＯは、３２ビットのバス（１８）を通じてＣＰＵからイーサネットへ送信されるべきデータのパケットを受信し、前記イーサネットコントローラはさらに、
第１のＦＩＦＯと関連付けらる第１のＬＯＧＩＣ要素（３４）を含み、第１のＬＯＧＩＣ要素は、ＣＰＵから受信される、イーサネットへ送信されるべきデータのパケットを第１のＦＩＦＯに、８ビットバイトのフォーマットで行ごとに位置付け、前記イーサネットコントローラはさらに、
第１のＦＩＦＯ内の各行に関連付けられるタグビット（６６）を含み、タグビットは、どの行の中にパケットの終わりが位置付けられているかを示し、
第１のＬＯＧＩＣ要素は、パケットの終わりが位置付けられている行（６０）のすぐ後の行（６２）内に８ビットバイトのフォーマットで、３２ビットのステータス情報を、第１のＦＩＦＯ内に位置付け、
第１のＬＯＧＩＣ要素は、３２ビットのステータス情報が位置付けられる行のすぐ後の行（６４）内に８ビットバイトのフォーマットで、３２ビットの記述子情報を、第１のＦＩＦＯ内に位置付け、ステータス情報および記述子情報は、イーサネットへ送信されるべきデータとともにピギーバック方式で送られ、前記イーサネットコントローラはさらに、
１６ビット幅を有するＳＲＡＭ（１６）を含み、
第１のＬＯＧＩＣ要素は、第１のＦＩＦＯ内の３２ビットの情報を１６ビットの情報に変換し、かつ、イーサネットへ送信されるべきデータおよびピギーバック方式で送られる情報を、ＳＲＡＭ内に位置付けるためのアドレスを発生し、
イーサネットへ送信されるべき変換された３２ビットのデータおよびピギーバック方式で送られる情報は、１６ビットのバス（２０）を通じてＳＲＡＭへ書込まれる、ことを特徴とする、イーサネットコントローラ。
【請求項２】
前記イーサネットコントローラはさらに、
各々３２ビット幅を有する行を備える第２のＦＩＦＯ（２８）を含み、第２のＦＩＦＯは、イーサネットへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を１６ビットのバスを通じてＳＲＡＭから受信し、前記イーサネットコントローラはさらに、
第２のＦＩＦＯに関連付けられる第２のＬＯＧＩＣ要素（３６）を含み、第２のＬＯＧＩＣ要素は、１６ビットのバスを通じて受信された１６ビットの情報を３２ビットの情報に変換し、かつ、ＳＲＡＭからの、イーサネットへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、８ビットのフォーマットで行ごとに第２のＦＩＦＯ内に位置付け、前記イーサネットコントローラはさらに、
第２のＦＩＦＯ内の各行に関連付けられるタグビットを含み、タグビットはイーサネットへ送信されるべきデータのパケットの終わりがどの行内に位置付けられているかを示し、
イーサネットへ送信されるべきデータのパケットはイーサネットへ送信される、請求項１に記載のイーサネットコントローラ。
【請求項３】
前記イーサネットコントローラはさらに、
各々３２ビット幅を有する行を備える第３のＦＩＦＯ（３２）を含み、第３のＦＩＦＯは、ＣＰＵへ送信されるべきデータのパケットを、３２ビットのフォーマットでイーサネットから受信し、前記イーサネットコントローラはさらに、
第３のＦＩＦＯに関連付けられる第３のＬＯＧＩＣ要素（３８）を含み、第３のＬＯＧＩＣ要素は、イーサネットから受信されたＣＰＵへ送信されるべきデータのパケットを、８ビットバイトのフォーマットで行ごとに第３のＦＩＦＯ内に位置付け、前記イーサネットコントローラはさらに、
第３のＦＩＦＯ内の各行に関連付けられるタグビットを含み、タグビットは、パケットの終わりがどの行内に位置付けられているかを示し、
第３のＬＯＧＩＣ要素は、パケットの終わりが位置付けられている行のすぐ後の行内に、３２ビットのステータス情報を、第３のＦＩＦＯ内に位置付け、
第３のＬＯＧＩＣ要素は、ステータス情報が位置付けられている行のすぐ後の行内に、３２ビットの記述子情報を第３のＦＩＦＯ内に位置付け、ステータス情報および記述子情報は、ＣＰＵへ送信されるべきデータとともにピギーバック方式で送られ、
第３のＬＯＧＩＣ要素は、第３のＦＩＦＯ内の３２ビットの情報を１６ビットの情報に変換し、かつ、ＣＰＵへ送信されるべきデータおよびピギーバック方式で送られる情報を、ＳＲＡＭ内に位置付けるためアドレスを発生し、
ＣＰＵへ送信されるべき変換された３２ビットのデータおよびピギーバック方式で送られる情報は、１６ビットのバスを通じてＳＲＡＭに書込まれる、請求項２に記載のイーサネットコントローラ。
【請求項４】
前記イーサネットコントローラはさらに、
各々３２ビット幅を有する行を備える第４のＦＩＦＯ（３０）を含み、第４のＦＩＦＯは、ＣＰＵへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、１６ビットのバスを通じてＳＲＡＭから受信し、前記イーサネットコントローラはさらに、
第４のＦＩＦＯに関連付けられる第４のＬＯＧＩＣ要素（４０）を含み、第４のＬＯＧＩＣ要素は、ＳＲＡＭから受信した１６ビットの情報を３２ビットの情報に変換し、かつ、ＳＲＡＭからのＣＰＵへ送信されるべきデータのパケットおよびピギーバック方式で送られる情報を、８ビットのフォーマットで行ごとに第４のＦＩＦＯ内に位置付け、前記イーサネットコントローラはさらに、
第４のＦＩＦＯ内の各行に関連付けられるタグビットを含み、タグビットは、ＣＰＵへ送信されるべきデータのパケットの終わりがどの行内に位置付けられているかを示し、
ＣＰＵへ送信されるべきデータのパケットは、３２ビットのバスを通じてＣＰＵへ送信される、請求項３に記載のイーサネットコントローラ。
【発明の詳細な説明】
発明の背景
１．発明の分野
この発明は、一般に、イーサネットへのおよびイーサネットからの情報の局による伝送を制御するための方法および装置に関し、特に、情報伝送の性能を上げるための方法および装置に関し、さらに特に、高性能のため複数の伝送パケットをサポートするデータ構造に関する。
２．背景技術の説明
ローカルエリアネットワーク（ＬＡＮ）とは、職場、建物または建物群などのような限定された地理区域内に位置する、パーソナルコンピュータ、ワークステーション、ファイルサーバ、リピータ、データ端末装置（ＤＴＥ）および他のこのような情報処理装置が相互に情報を電子的に転送することを可能にする通信システムである。ＬＡＮ内の各情報処理装置は、ネットワークの動作を定義する固定されたプロトコル（または規格）に従うことで、ＬＡＮ内の他の情報処理装置と通信する。
ＩＳＯオープンシステム間相互接続基本参照モデルが、ＬＡＮ内のデータ通信の７層モデルを定義する。このモデルの最下層は、（ａ）ネットワークのノードを相互接続しかつ電子的に伝送されるべきデータの通り道となる物理媒体、（ｂ）ネットワークのノードが物理的伝送媒体とインタフェースする態様、（ｃ）物理的媒体を通じてデータを転送するためのプロセスおよび（ｄ）データストリームのプロトコル、を特定するモジュールからなる物理層である。
ＩＥＥＥ規格８０２．３、衝突検出を伴う搬送波感知多重アクセス方式（Carrier Sense Multiple Access with Collision Detection（ＣＳＭＡ／ＣＤ））および物理層の仕様は、物理層に関し最も一般的に使用されている規格の１つである。一般にイーサネットと呼ばれるＩＥＥＥ企画８０２．３は、撚線対ケーブルまたは典型的には撚線対ケーブルよりも価格の高い同軸ケーブルを通じてのデータ転送を扱う。ＩＥＥＥ規格８０２．３の１０Ｂａｓｅ−Ｔプロトコルは、撚線対ケーブルを通じてのデータ転送速度を１０メガビット／秒（Ｍｂｐｓ）と定めている。
図面を参照し、図１は、ＣＰＵ１２で表わされる、ワークステーション、パーソナルコンピュータ、ファイルサーバ、データ端末装置または他のこのような情報処理装置を備える先行技術のシステム１０がどのようにイーサネット２２または媒体独立インタフェース２４で表わされる他の型のデータ通信装置に接続されるかを図示する。図１中、一般にネットワークインタフェースコントローラとしても知られるイーサネットコントローラ１４は、ＣＰＵ１２とイーサネット２２の入力（および出力）ラインとの間に位置づけられる。典型的には、イーサネット２２の接続は２対の撚線対銅ケーブルからなり、入力対は１０Ｒ、出力対は１０Ｔと呼ばれる。
イーサネットコントローラ１４は、出力対またはケーブルへの出力データの送信および入力対またはケーブルからの入力データの受信の制御の役割を持つ。たとえば、出力データは、出力対またはケーブルに送られる前に、電磁干渉を減じるためマンチェスター符号化される。マンチェスター符号化により、データストリームのいくつかの部分は１０ＭＨｚのパルスとなり、データストリームの他の部分は５ＭＨｚのパルスとなる。
より多くの情報をより高速で転送する必要性がさらに高まり同時にデータ処理能力が向上することで、１０Ｂａｓｅ−Ｔプロトコルにより規定される１０Ｍｂｐｓの速度よりもはるかに高速のデータ転送速度への拡張が必要となっている。その結果、現在の既存システムの撚線対ケーブルを通じて１００Ｍｂｐｓの有効転送速度で移動するデータに対処するため、ＩＥＥＥ規格８０２．３を拡張する１００Ｂａｓｅ−ＴＸプロトコルがある。物理転送媒体が、１００Ｂａｓｅ−ＴＸの速度およびより遅い１０Ｂａｓｅ−Ｔの速度の両方で、撚線対ケーブルを通じて転送されるデータを処理できることが望ましい場合がある。現在、０．９６マイクロ秒のパケット間間隔の全二重モード動作をサポートするため、１００メガビット／秒の動作のため最大２５ＭＨｚのイーサネット速度をサポートする必要、および、内部ＰＣＩバスにおいて３３ＭＨｚのＰＣＩ速度をサポートする必要がある。
イーサネットまたは媒体独立インタフェースを通じての様々な速度でのデータ伝送に関連する問題に加えて、パーソナルコンピュータ、ワークステーション、ファイルサーバ、リピータ、データ端末装置および他のこのような情報処理装置のデータ処理能力が相違することに関連する問題がある。たとえば、パーソナルコンピュータシステムにおいては、イーサネット２２を通じてのデータの受送信に加え、ＣＰＵ１２が処理しなければならない他の装置または任務があるかもしれない。
イーサネットコントローラ１４は、ＣＰＵ１２からイーサネット２２へのデータの伝送の制御の役割を持つ。イーサネットコントローラ１４が直面する主要な問題の１つは、さまざまな構成要素内の異なったメモリ装置のサイズが異なることである。たとえば、可能な限り半導体装置を小さく維持しようという要件がある。この理由により、装置の性能を劣化させることなく可能な限りバスのサイズを小さくすることが有利である。理解できるように、１６ビットのバスは３２ビットのバスの半分のサイズであり、もし１６ビットのバスで３２ビットのバスと同じ性能を提供できるのであればその部分を１６ビットのバスで設計することが好ましい。加えて、バスの大きさが小さければ小さいほど、バス内に欠陥が生じる可能性も低い。
図２を参照し、異なったサイズの構成要素が図示される。ＳＲＡＭ１６は１６ビットのメモリ装置であり、データバス２０は１６ビットのデータバスであり、ＰＣＩ  ＢＵＳ１８は典型的には３２ビットのバスである。現在６４ビットのＰＣＩバスが存在するが、将来のコンピュータシステムはすべて６４ビットのＰＣＩバスを標準バスサイズとして有するであろう。ＳＲＡＭ１６は、イーサネット２２からＣＰＵ１２への、またはＣＰＵ１２からイーサネット２２へのデータの伝送において遅延が生じるのを防止するため、イーサネットコントローラ１４によりバッファとして使用される。このような遅延は、たとえば、ＣＰＵ１２における長い待ち時間によって、または、送信局に送ったばかりの情報を再送信しなければならなくさせるイーサネット２２での衝突によって生じ得る。さまざまなＦＩＦＯ、ＢＸ  ＦＩＦＯ２６、ＭＸ  ＦＩＦＯ２８、ＢＲ  ＦＩＦＯ３０およびＭＲ  ＦＩＦＯ３２が、さまざまな構成要素間でのデータ伝送の制御の役割を持つ。たとえば、ＢＸ  ＦＩＦＯ２６は、ＰＣＩ  ＢＵＳ１８を通じてＣＰＵ１２からデータを受信し、１６ビットのデータバス２０を通じてＳＲＡＭ１６へ送信できるようにフォーマットを３２ビットから１６ビットに変える役割を持つ。加えて、ＢＸ  ＦＩＦＯ２６およびＭＲ  ＦＩＦＯ３２により、情報をＳＲＡＭ１６内に入れることができ、かつ、ＳＲＡＭ１６から受けとられるときの１６ビットから３２ビットにフォーマットを変える役割を持つＭＸ  ＦＩＦＯ２８およびＢＲ  ＦＩＦＯ３０によりそれぞれ効率的に取出すことができるようにアドレスを発生させる必要がある。
加えて、データを受信する必要があると同時にイーサネット２２を通じてデータを送信する必要があるかもしれず、かつまた、イーサネットコントローラ１４がＣＰＵ１２からデータを受信する必要があると同時にＣＰＵ１２へデータを送信する必要があるかもしれないので、イーサネットコントローラ１４が、どのデータを最初に受信または送信するか、かつどのような順序で続くデータを送信または受信するかについてインテリジェントな選択をする必要がある。
ＣＰＵ１２からのデータはイーサネット２２へと送信されるので、送信されているデータの状態を維持および更新する要件がある。データがうまく送信されたか、誤伝送されたか、または、うまく送信されていないかどうかなどを示すエラーコードおよびコンディションがある。
パケットの状態の維持および更新のため、パケットに対し「ピギーバック方式で送る」ことができる効率的かつ有効なデータ構造が必要とされている。
発明の概要
ＥＰ−Ａ−４５９  ７５２、ＥＰ−Ａ−４５９  ７５３およびＥＰ−Ａ−４２９  ０５５も参照されよう。
この発明は、
ＣＰＵからイーサネットへのおよびイーサネットからＣＰＵへのデータの伝送を制御するためのイーサネットコントローラであって、
各々３２ビット幅を有する行を備える第１のＦＩＦＯを含み、第１のＦＩＦＯは、３２ビットのバスを通じてＣＰＵからイーサネットへ送信されるべきデータのパケットを受信し、前記イーサネットコントローラはさらに、
第１のＦＩＦＯと関連付けられる第１のＬＯＧＩＣ要素を含み、第１のＬＯＧＩＣ要素は、ＣＰＵから受信される、イーサネットへ送信されるべきデータのパケットを第１のＦＩＦＯに、８ビットバイトのフォーマットで行ごとに位置付け、前記イーサネットコントローラはさらに、
第１のＦＩＦＯ内の各行に関連付けられるタグビットを含み、タグビットは、どの行の中にパケットの終わりが位置付けられているかを示し、
第１のＬＯＧＩＣ要素は、パケットの終わりが位置付けられている行のすぐ後の行内に８ビットバイトのフォーマットで、３２ビットのステータス情報を、第１のＦＩＦＯ内に位置付け、
第１のＬＯＧＩＣ要素は、３２ビットのステータス情報が位置付けられる行のすぐ後の行内に８ビットバイトのフォーマットで、３２ビットの記述子情報を、第１のＦＩＦＯへ位置付け、ステータス情報および記述子情報は、イーサネットへ送信されるべきデータとともにピギーバック方式で送られ、前記イーサネットコントローラはさらに、
１６ビット幅を有するＳＲＡＭを含み、
第１のＬＯＧＩＣ要素は、第１のＦＩＦＯ内の３２ビットの情報を１６ビットの情報に変換し、かつ、イーサネットへ送信されるべきデータおよびピギーバック方式で送られる情報を、ＳＲＡＭ内に位置付けるためのアドレスを発生し、
イーサネットへ送信されるべき変換された３２ビットのデータおよびピギーバック方式で送られる情報は、１６ビットのバスを通じてＳＲＡＭへ書込まれることを特徴とする、イーサネットコントローラを提供する。
この発明は、添付図面に関連し以下の詳細な説明を考慮するとよりよく理解される。以下の説明から当業者には容易に明らかとなるであろうように、この発明の好ましい実施例はこの発明の実施に適したベストモードの単なる例として図示および説明される。理解されるように、全くこの発明の範囲から逸脱することなく、この発明には他の異なった例があり得、そのいくつかの詳細にはさまざまな明らかな局面において修正を加えることができる。したがって、本図面および明細書は本質的に例示的なものとみなされ限定的なものとみなされるものではない。
【図面の簡単な説明】
本明細書に組み入れられその一部を形成する添付の図面はこの発明を図示し、説明とともに、この発明の原理を説明するために役立つ。
図１は、イーサネットコントローラ、ＣＰＵ、イーサネット接続および媒体独立インタフェース接続を備える先行技術のシステムの全体図である。
図２は、この発明のシステムの全体図である。
図３は、この発明のイーサネットコントローラの図である。
図４は、この発明のデータ構造の図である。
詳細な説明
次に図１を参照し、ＣＰＵ１２と、イーサネット２２および媒体独立インタフェース２４への接続を備えるイーサネットコントローラ１４とを備える先行技術によるシステム１０の概観を示す。ＣＰＵ１２はＢＵＳ１７によりイーサネットコントローラ１４に接続される。
次に図２を参照し、この発明により教示されるシステム１１を示す。この図面および続く図面においては、同様の構成要素を示すため同様の番号を使用する。イーサネットコントローラ１４の部分を図２に示す。イーサネットコントローラ１４がこの発明により教示される機能以外にも多くの他の機能を有すること、および、この発明に関連する構成要素のみを説明することが理解されねばならない。
イーサネットコントローラ１４の図示される部分の機能は、イーサネット２２および／または媒体独立インタフェース２４へのおよびからのデータの伝送の管理である。イーサネットコントローラ１４は、ＣＰＵ１２、イーサネット２２または媒体独立インタフェース２４のいずれかへのおよびいずれかからのデータの伝送の低速化を防止するためＳＲＡＭ１６をバッファとして利用することにより、データ伝送を管理する。データ伝送が低速化し得るのにはさまざまな理由があるが、たとえば、ＣＰＵ１２の待ち時間が長く、ＣＰＵ１２が他の割り込みから解放されるまで、イーサネット２２からのデータ伝送が停止することがあり得る。逆に、ＣＰＵ１２がイーサネット２２を通じてデータを送信しようとするときに、イーサネット２２が使用中であるかもしれず、それによってイーサネット２２の使用が終わるまでＣＰＵ１２からのデータが停止または一時中断されることになる。
情報の送信または受信を完了できないために生じる問題を回避するため、イーサネットコントローラ１４は４つのＦＩＦＯを有し、その各々はイーサネットコントローラ１４の性能を最大にするための選択されたサイズを持つ。ＢＸ  ＦＩＦＯ２６は１８０バイトのＦＩＦＯであり、ＭＸ  ＦＩＦＯ２８は１１２バイトのＦＩＦＯであり、ＢＲ  ＦＩＦＯ３０は１６０バイトのＦＩＦＯであり、かつＭＲ  ＦＩＦＯ３２は１０８バイトのＦＩＦＯである。ＢＸ  ＦＩＦＯ２６とＢＲ  ＦＩＦＯ３０とはイーサネットコントローラ１４のＢＵＳ側にあり、かつ、ＭＸ  ＦＩＦＯ２８とＭＲ  ＦＩＦＯ３２とはイーサネットコントローラ１４のＭＡＣ（媒体アクセス制御）側にある。各ＦＩＦＯは入力機能または出力機能のいずれかを管理する。ＢＸ  ＦＩＦＯ２６は、ＣＰＵ１２からＳＲＡＭ１６へのデータの伝送を管理する。ＭＸ  ＦＩＦＯ２８は、ＳＲＡＭ１６からイーサネット２２または媒体独立インタフェース２４へのデータの伝送を管理する。同様に、ＭＲ  ＦＩＦＯ３２はイーサネット２２または媒体独立インタフェース２４のいずれかからのデータの伝送を管理する。
次に図３を参照し、イーサネットコントローラ１４をより詳細に図示する。図２に関連して説明した４つのＦＩＦＯは各々論理ブロックを含むかまたは論理ブロックと関連づけされる。ＢＸ  ＦＩＦＯ２６は、ＳＲＡＭ１６に対するアドレスを発生しかつ１６ビットのデータ経路２０を通じてＳＲＡＭ１６に送信されるべきＣＰＵからの３２ビットのデータを準備するＢＸ  ＬＯＧＩＣ３４に関連づけされ、ＭＸ  ＦＩＦＯ２８は、ＳＲＡＭ１６から検索されるべき１６ビットのデータに対するアドレスを発生しＳＲＡＭ１６内の１６ビットのデータを読出しＳＲＡＭ１６から検索された１６ビットのデータを３２ビットに変換しかつ３２ビットのデータをＭＸ  ＦＩＦＯ２８に書込むＭＸ  ＬＯＧＩＣ３６に関連づけされている。ＭＲ  ＦＩＦＯ３２は、イーサネット２２からＭＲ  ＦＩＦＯ３２により受信されたデータを１６ビットサイズに変換しかつＳＲＡＭ１６内に書込まれるべき１６ビットのデータに対するアドレスを発生するＭＲ  ＬＯＧＩＣ３８に関連づけされ、ＢＲ  ＦＩＦＯ３０は、イーサネット２２から受信されたＳＲＡＭ１６内のデータを読出し、データを１６ビットサイズから３２ビットサイズに変えかつＢＲ  ＦＩＦＯ３０内に３２ビットサイズのデータを書込むＢＲ  ＬＯＧＩＣ４０に関連づけされ、このデータはＢＲ  ＦＩＦＯ３０からＣＰＵ１２に送られるであろう。
ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２は、４つのＦＩＦＯを制御し、かつ、コンフリクトの場合には、すなわち２つ以上のＦＩＦＯがデータ伝送のためバスを要求したときは、どのような順序でどのＦＩＦＯが優先順位を有するかを決定する予め定められたアルゴリズムに従いＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２が調停を行なう。以下にアルゴリズムを説明する。
図３に図示するシステムの全体動作は以下のとおりである。イーサネットコントローラ１４は、ＣＰＵ１２からイーサネット２２へのデータ伝送の全体動作およびイーサネット２２からＣＰＵ１２へのデータ伝送を管理する。上に説明したように、イーサネット２２へのおよびイーサネット２２からのデータ伝送についての主要な問題の１つは、任意のこのようなデータの効率的な伝送に影響を与え得るさまざまな要因が存在することである。要因の１つは、対応しなければならない異なった速度である。０．９６マイクロ秒のパケット間間隔で全二重動作をサポートする１００メガビットの動作のために、イーサネット２２は２５ＭＨｚの最大速度で動作し、ＰＣＩ  ＢＵＳ１８は３３ＭＨｚの速度で動作する。イーサネットコントローラ１４の主要な機能の１つは、このようなデータの受信または送信のいずれにおいてもいかなる遅延をも最小にするような態様で、さまざまな構成要素間でのデータ転送を管理することである。たとえば、ＣＰＵ１２（図示せず）がイーサネット２２にデータを送信したいときは、ＣＰＵ１２はＢＸ  ＦＩＦＯ２６と通信しかつこれにデータを送信する。ＢＸ  ＦＩＦＯ２６は、ＢＸ  ＲＥＱＵＥＳＴ  ＬＩＮＥ４４を通じてＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２からバスにアクセスを要求する。ＢＸ  ＬＯＧＩＣ３４が、ＢＸ  ＣＯＮＴＲＯＬ  ＬＩＮＥ４６を通じてＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２から許可を受信するとき、ＢＸ  ＬＯＧＩＣ３４はＣＰＵ１２から受信した３２ビットサイズのデータを１６ビットサイズのデータに変え、かつ、１６ビットフォーマットでのデータの記憶のためＳＲＡＭ１６に対するアドレスを発生する。変換されたデータは１６ビットのバス２０を通じてＳＲＡＭ１６へ通信されかつそこに書込まれる。ＢＸ  ＬＯＧＩＣ３４は、ＢＸ  ＦＩＦＯ２６からＳＲＡＭ１６へのデータのフローを制御する状態機械であり、かつ、一旦ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２から許可信号を得ると動作する。ＢＸ  ＦＩＦＯ２６は３２ビット幅でありかつデータバス２０は１６ビット幅であるため、各サイクルにおいて１６ビットサイズのデータバス上では１６ビットしか書込むことができないので、ＢＸ  ＬＯＧＩＣ３４が１６ビットサイズのデータをＳＲＡＭ１６に書込むには２サイクルかかるであろう。１８０バイトのサイズのＢＸ  ＦＩＦＯ２６を有することによって、ＢＸ  ＦＩＦＯ２６を通じてのデータ転送が最大にされること、すなわち、ＢＸ  ＦＩＦＯ２６を通じてのデータ転送におけるいかなる遅延も最小にされることがわかっている。以下に説明するように、ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２は、システム１１の性能を最大にする調停アルゴリズムに従い、ＢＸ  ＦＩＦＯ２６を含むすべてのＦＩＦＯを通じてデータの受信および送信を管理する。
ＳＲＡＭ１６のサイズは選択可能であり、この実施例においては６４キロバイトが選択されているが、少なくとも１２８キロバイトまで拡張可能である。したがって、各メモリロケーションにアクセスするために１６ビットのアドレスを有する必要がある。しかし、イーサネットコントローラ１４は、空間を節約しかつ費用対効果をよりよくするため８ビットのアドレスポートしか有さない。この理由のため、１６ビットのアドレスは上位８ビット部分と下位８ビット部分とに分割されなければならず、８ビットアドレスバスを通じて伝送され、そしてイーサネットコントローラ１４の外で１６ビットアドレスに再組立されなければならない。アドレス発生と伝送の詳細については図３および図４に関連し以下に説明する。
イーサネットコントローラ１４は、ＭＸ  ＦＩＦＯ２８を通じてイーサネットネットワークと絶えず通信しており、使用されるプロトコルの型に依存して、システムはいつイーサネット２２を通じてデータを送信し得るかを決定する。イーサネット２２を通じてデータを送信し得るときには、ＭＸ  ＦＩＦＯ２８は、ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２からＭＸ  ＲＥＱＵＥＳＴ  ＬＩＮＥ４７を通じてデータバス２０へのアクセスを要求する。アクセスが許可されかつＭＸ  ＣＯＮＴＲＯＬ  ＬＩＮＥ４８を通じてＭＸ  ＬＯＧＩＣ３６に通信されるときは、ＳＲＡＭ１６内に一時的に書込まれたかまたはＭＸ  ＦＩＦＯ２８内にあるデータが、ＢＸ  ＦＩＦＯ２６によりＣＰＵ１２から受信されたときのもとの３２ビット形式に変換されるかまたは変換されており、イーサネット２２を通じてＭＸ  ＬＯＧＩＣ３６により送信されるであろう。ＭＸ  ＦＩＦＯ２８は、ＳＲＡＭ１６からＭＸ  ＦＩＦＯ２８へのデータのフローを制御する状態機械であり、かつＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２から許可信号を得るとき動作する。ＭＸ  ＦＩＦＯ２８は３２ビット幅であり、データバス２０は１６ビット幅であり、したがって、ＭＸ  ＬＯＧＩＣ３６が１６ビットのデータを２回読出し終え、これらを倍長語（３２ビット）に組立てるため論理を使用した後、書込信号がＭＸ  ＦＩＦＯ２８に与えられる。つまり、ＭＸ  ＦＩＦＯ２８への書込みは１サイクルおきに行なわれ、かつＳＲＡＭ１６からの読出しは毎サイクル行なわれるということを意味する。ＭＸ  ＬＯＧＩＣ３６は、ＳＲＡＭ１６からの読出しおよびＭＸ  ＦＩＦＯ２８への書込みを制御する。
ＭＲ  ＦＩＦＯ３２が受信されるべきイーサネットからの情報が存在することを感知するとき、ＭＲ  ＦＩＦＯ３２は、ＭＲ  ＲＥＱＵＥＳＴ  ＬＩＮＥ５０を通じてＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２からデータバス２０へのアクセスを要求する。ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２がＭＲ  ＣＯＮＴＲＯＬ  ＬＩＮＥ５２を通じてのアクセスを許可するとき、ＭＲ  ＦＩＦＯ３２により受信されたデータはＭＲ  ＬＯＧＩＣ３８により１６ビットのフォーマットに変換され、１６ビットデータバス２０を通じてＳＲＡＭ１６に送信される。ＭＲ  ＬＯＧＩＣ３８の動作は、先に説明したＢＸ  ＬＯＧＩＣ３４の動作と同様である。
ＣＰＵが、イーサネットから受信されたデータを受信する準備のあるときは、ＢＲ  ＦＩＦＯ３８はＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２からＢＲ  ＲＥＱＵＥＳＴ  ＬＩＮＥ５４を通じてデータバス２０へのアクセスを要求する。アクセスが許可されるとき、ＳＲＡＭ  ＣＯＮＴＲＯＬＬＥＲ４２は、ＳＲＡＭ１６からデータを読出し１６ビットデータフォーマットで記憶されていたデータを３２ビットデータフォーマットに変換し、続いてＣＰＵにデータを送信するＢＲ  ＦＩＦＯ３０へデータを送るＢＲ  ＬＯＧＩＣ４０と通信する。ＢＲ  ＬＯＧＩＣ４０の動作は、先に説明したＭＸ  ＬＯＧＩＣ３６の動作と同様である。
次に図４を参照し、この発明のデータ構造およびイーサネットコントローラ１４（図３）において高性能を提供するためのその利用法を図示する。以下の説明においては、Ｄ０からＤ４の５バイトのデータを含むパケットを説明し、各バイトは８ビットである。５バイトのデータは、５６で示すようにＣＰＵ１２により、指示されるように、メモリから受信される。ＢＸ  ＦＩＦＯ２６は３２ビット幅でありかつ５バイトのデータは図４に示すように位置づけられる。一番目の４つのバイトＤ０からＤ４は、ＢＸ  ＦＩＦＯ２６の５８で示される行内に位置づけられる。最後のバイトＤ４は、ＢＸ  ＦＩＦＯ２６内の６０で示される３２ビットの行の下位８ビット内に単独で位置づけられる。少なくとも１バイトのデータを含む行のすぐ後に続く６２で示される行は、データがイーサネットを通じてうまく送信されたか否かを示すためシステムにより維持および更新されなければならない、Ｓ０からＳ３のＳＴＡＴＵＳ情報４バイトを含む。ＳＴＡＴＵＳ情報を含む行のすぐ後に続く６４で示される行は、上位プロトコルのために、送信されたパケットの状態を更新する必要があるＤＥＳＣＲＩＰＴＯＲメモリのアドレスを含む、ＤＡ０からＤＡ３の４バイトのＤＥＳＣＲＩＰＴＯＲ情報を含む。理解できるように、この発明のデータ構造は、データとともに「ピギーバック方式で」伝送されるべきデータのパケットに関係するＳＴＡＴＵＳ情報およびＤＥＳＣＲＩＰＴＯＲ情報をすべて有し、したがって、ＳＴＡＴＵＳ情報およびＤＥＳＣＲＩＰＴＯＲ情報の記憶のため別個のメモリロケーションを提供するためのいかなるシステムの要件も不要である。
ＢＸ  ＦＩＦＯ２６内のメモリの各行と、以下に説明する６６で示す１ビットのタグフィールドが関連する。先に説明したように、ＳＴＡＴＵＳ情報およびＤＥＳＣＲＩＰＴＯＲ情報を含むデータは、示されるようにＳＲＡＭ１６に書込まれかつ１６ビットメモリ内に書込まれる。Ｄ０からＤ４の５バイトのデータに加えて、ＳＲＡＭ１６内には、パケットの終わり（ＥＯＰ）情報のために予約された、６８で示されるメモリの第１の行がある。第１の予約された行６８内におかれたパケットの終わり情報は、パケットの最後のバイトが書込まれる、ＳＲＡＭ１６内のロケーションの１６ビットのアドレスであり、この場合には、バイトＤ４が書込まれるメモリロケーションは行６８内に書込まれるであろう。７０で示される次の行は、パケットの終わりがメモリ内に書込まれたかどうかをシステムに示す有効ビットのため予約されている。ＳＲＡＭ１６は１６ビットメモリであるため、３２ビットのデータ、ＳＴＡＴＵＳおよびＤＥＳＲＣＩＰＴＯＲ情報は、ＳＲＡＭ１６内に書込まれる前に１６ビットのフォーマットにフォーマット変更される。
先に説明したように、データ、ＳＴＡＴＵＳおよびＤＥＳＣＲＩＰＴＯＲ情報は、ＭＸ  ＦＩＦＯ２８へと書込まれかつ図４に図示するように書込まれる。加えて、ＢＸ  ＦＩＦＯ２６に関連するタグフィールド６６内の情報は、ＭＸ  ＦＩＦＯ２８に関連する７２で示されるタグフィールドに通信される。読出しポインタ７４により示されるようにＭＸ  ＦＩＦＯ２８が読まれているとき、タグフィールド７２の内容が読出される。タグフィールドの内容は、以下のことを示す。タグフィールド内の０は、パケットの終わりに達していないことを示し、すなわち、現在読まれているＭＸ  ＦＩＦＯ２８内の行がパケットの最後のバイトを含んでいないことを示し、タグフィールド内の１は読まれている行内にパケットの終わりが含まれていることを示す。たとえば、ポインタ７４が行７６を指し示しているとき、この０はパケットの終わりが行７６内にないことを示す。ポインタ７４が行８０を指し示しているときは、８０のタグフィールド７２には１が書込まれているであろう。８０内の１はパケットの終わりが行８２内にあることを示す。
読まれている行内にパケットの終わりが含まれていることを示すのに加えて、タグは、８４で示される第１のＳＴＡＴＵＳバイトＳ０内の下位４ビットが、行内の４バイトのうちどのバイトがパケットの終わりを含むかを示すことをシステムに示す。たとえば、この場合、パケットの終わりバイトは行８２内の最下位バイト内に位置づけられているので、第１のＳＴＡＴＵＳバイトＳ０８４内の下位４ビットは０００１と読まれるであろう。先に説明したように、残りのＳＴＡＴＵＳ情報は、データの状態、すなわち、データがイーサネットを通じてうまく送信されたかどうかに関係する。また先に説明したように、その次の行８６は、上位プロトコルのために、送信されたパケットの状態を更新する必要がある、ＤＥＳＣＲＩＰＴＯＲメモリ内のロケーションに関係する４バイトのＤＥＳＣＲＩＰＴＯＲ情報を含む。
上述のこの発明の好ましい実施例の説明は、例示および説明の目的で提示された。これは包括的なものまたはこの発明を開示された形態に厳密に限定することを意図するのではない。上の教示に照らし明らかな修正例または変形例が考えられる。この実施例は、この発明の原理およびその実際の応用例の最良の例を提供し、それによって、企図される特定の用途に適したさまざまな修正を加えてさまざまな例においてこの発明を当業者が利用することを可能にするため、選択されかつ説明された。このような修正および変更は、それらが公正に、法的にかつ公平に与えられる権利の範囲により解釈されるとき添付の請求の範囲により決定されるこの発明の範囲内にある。
【図１】
0003684405.tif 000002
【図２】
0003684405.tif 000003
【図３】
0003684405.tif 000004
【図４】
0003684405.tif 000005