JPH08508592A - 通信ネットワークのデータステーション内のデータバッファ方法および装置 - Google Patents

通信ネットワークのデータステーション内のデータバッファ方法および装置

Info

Publication number
JPH08508592A
JPH08508592A JP4511938A JP51193892A JPH08508592A JP H08508592 A JPH08508592 A JP H08508592A JP 4511938 A JP4511938 A JP 4511938A JP 51193892 A JP51193892 A JP 51193892A JP H08508592 A JPH08508592 A JP H08508592A
Authority
JP
Japan
Prior art keywords
data
packet
storage
data packet
packet number
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.)
Pending
Application number
JP4511938A
Other languages
English (en)
Inventor
ヘンデル,アリエル
ダブリュー. ブリンカーホフ,ケネス
Original Assignee
スタンダード マイクロシステムズ コーポレーション
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 スタンダード マイクロシステムズ コーポレーション filed Critical スタンダード マイクロシステムズ コーポレーション
Publication of JPH08508592A publication Critical patent/JPH08508592A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

(57)【要約】 データ通信コントローラ環境におけるデータパケットバッファ方法および装置を開示している。一般に、通信コントローラはホストプロセッサとの間でインタフェース形成可能であり、通信媒体へのアクセスのための制御ユニットを含む。送信または受信すべき各データパケットには固有のパケット番号が付与される。パケット番号付与は、各付与ずみのパケット番号にバッファメモリ内で対応データパケットの蓄積のための一つまたはそれ以上のページを動的に割り当てるメモリ管理ユニットによって行うのが好ましい。要求された蓄積スペースが要求時点で得られない場合は、メモリ管理ユニットは1ページまたはそれ以上のページをそれらページが空きになり次第利用可能なパケット番号に割り当てる。付与ずみのパケット番号が発せられると、バッファメモリ蓄積スペースの割当てページの物理的アドレスがホストプロセッサおよび上記制御ユニットの両方に透視可能な形で発生される。これら物理的アドレスにより、データパケットをバッファメモリから簡単にアクセスできる。各データパケットのローディング動作が終ると、対応のパケット番号がパケット番号待ち行列に蓄積され、対応データパケットを蓄積した物理的アドレスを発生するための後続の読出しに供される。ホストプロセッサが決定するデータパケット送信の任意の所定回数の終了の度ごとにホストプロセッサへの送信割込みを自動的に発生する機構も併せて開示してある。この機構は第1および第2の除去位置をもつ送信パケット番号待ち行列を利用する。この機構は、各送信記録またはデータパケット列に関連したデータパケットの送信に伴って送信割込みを自動的に発生できるので有利である。

Description

【発明の詳細な説明】 通信ネットワークのデータステーション内の データバッファ方法および装置発明の背景 発明の分野 この発明は通信ネットワークのデータステーション内におけるデータバッファ の方法および装置に関し、とくに各データステーションが、プロセッサ割込み待 ち時間の影響をそれほど受けることなく、しかもメモリを最適に用いるとともに ホストプロセッサのオーバーヘッド動作およびストラクチュア相互間のデータコ ピイの必要性を最小限に抑えて、連続データパケットの送受信をできるようにし たこの種の方法および装置に関する。 ローカルエリアネットワーク(LAN)はコンピュータワークステーションな どのデータ処理装置が通信(例えば伝送)媒体を通じて互いに通信できるように する通信システムである。そのようなネットワークにおけるデータ処理装置は典 型的にはノードまたはデータステーションと呼ばれるものであり、それらデータ ステーションの多くは割合に自律的であり他のデータステーションとの通信はと きどきしか必要としない。他のデータステーションはより頻繁に通信を必要とす ることもあり得るが、特定のデータステーションの所要通信量は時間の経過とと もに変化するものである。 ローカルエリアネットワークでは、データステーションの付加、除去、および そのネットワーク内の一つの箇所から他の箇所への移動は容易に行われる。現在 周知のローカルエリアネットワークは多数あるが、それらは大まかに2つの型に 分類できる。第一の型は、ネットワークプロトコルをインプリメントする集中ネ ットワークコントローラの要求によって特徴づけられる「集中型ネットワーク」 である。第二の型は「分散型ネットワーク」と呼ばれ、集中ネットワークコント ローラを必要とせず、代わりに、各通信コントローラ内のネットワークプロトコ ルを非集中的にインプリメントする媒体アクセス制御(MAC)ユニットをもつ 通信コントローラをそのネットワーク内の各データステーションに備える。 分散型ローカルエリアネットワークでは、そのネットワークの通信資源を多数 の送受信中のデータステーションに動的に割り当てるための技術として一般にパ ケット変換技術が用いられる。この技術によると、データステーション間で伝え られるメッセージは(送信側のデータステーションのプロセッサによって)一定 の最大データサイズをもつパケットに区分される。これらパケットには次にデー タステーション(すなわち送信元)識別子が付けられる。次に、これらパケット はそのデータステーションの通信コントローラによって通信媒体に配置さる。そ れらパケットはそのネットワーク内の宛先データステーションの通信コントロー ラによって検出され、選択的に処理される。 一つのデータステーションからもう一つのデータステーションへのパケットは 、いずれも、所定のネットワークプロトコルにより特定された種々の情報フィー ルドを含んでいる。この情報には、送信元識別子、宛先識別子、およびその他そ のパケットの特徴に関する種々の情報が通常含まれる。ネットワークプロトコル に従って通信媒体に多数の互いに異なる型のパケットの現われるネットワークプ ロトコルもある。それらパケットは、通常、通信制御機能かデータ転送機能に関 する。 分散型ローカルエリアネットワークのデータステーションに使われている従来 の通信コントローラに付随する諸問題をよりよく理解するために、第1図乃至第 3図を参照されたい。 第1図には、ケーブルなどの通信媒体に動作可能な状態で結合された複数のデ ータステーション(すなわち、ノード)102AB乃至102Mを含む分散型ロ ーカルエリアネットワーク100が示してある。第2図には、それらデータステ ーションの各々が、ホストプロセッサ(例えばCPU)104、プログラムメモ リ105、システムメモリ106、通信コントローラ107、システムバス10 8および通信媒体インタフェースユニット109を一般的に含むものとして示し てある。このプロセッサ、プログラムメモリおよびシステムメモリの各々はシス テムバス108に結合されており、一方、そのシステムバスは図示のとおり通信 コントローラ107との間でインタフェースを形成す る。通信コントローラは通信媒体インタフェースユニットにより通信媒体との間 でインタフェースを形成する。通信媒体インタフェースユニットはネットワーク に用いられる通信媒体の特定の特性に適合させてある。 通信コントローラ、とくにLANコントローラは、互いに独立の2つのデータ 待ち行列、すなわち、送信待ち行列および受信待ち行列をソフトウェアでサポー トする手段を備えることにより、システムアーキテクチュアおよびソフトウェア 環境に通常一体化されている。各待ち行列にはプロセス、すなわち、低レベルソ フトウェア通信ドライバの送信処理および受信処理が関連づけてある。 送信待ち行列はそのソフトウェアが送信しようとしているエレメントを保持す る。ローカルエリアネットワークのパケット交換環境では、これらエレメントは 、通常は、送信データのブロックやそのブロックの宛て先のようにそれに関連す る情報を含むデータパケットである。受信待ち行列はデータステーションの受信 したエレメント、すなわち通常はデータのブロックとそのブロックの送り元など 関連情報とを含むパケットを保持する。 これらエレメントは、情報送信をソフトウェアドライバが必要とするときはい つでも、そのソフトウェアにより送信待ち行列に加えられる。それらエレメント は送信が支障なく行われたとみなされたのち送信待ち行列から除去される。エレ メントの除去は低レベルソフトウェアドライバか通信コントローラによって行わ れる。一方、関連パケット の受信の度ごとに、通信コントローラによってエレメントが受信待ち行列に加え られ、そのパケットの処理の終了時に低レベルソフトウェアドライバによって除 去される。 送信待ち行列および受信待ち行列はシステムメモリ内のソフトウェアにより管 理され、最終的には通信コントローラに達する。これら待ち行列と通信コントロ ーラとの間のインタフェースが受信エレメントの付加および送信エレメントの除 去の期間の待ち行列の振舞を決める。 通信コントローラのレベルでの送信および受信待ち行列エレメントの管理はい ろいろの方法で試みられてきた。 例えば、ある種の従来技術による通信コントローラは単一エレメント待ち行列 、すなわち一つの送信エレメントおよび一つの受信エレメントだけをコントロー ラが同時に扱うことができ、待ち行列へのエレメント供給にホストプロセッサの 関与が必要な単一待ち行列と同等に単純である。この型の従来技術の代表はニュ ーヨーク州ハウプパウグ所在のスタンダードマイクロシステムズコーポレーショ ン発売の90C65型通信コントローラである。この型の通信コントローラの主 な欠点はホストコンピュータの割込み待ち時間に非常に影響されやすいことであ る。 従来技術のもう一つの型の通信コントローラは、その通信コントローラと結合 したランダムアクセス可能なメモリ内の対応データパケットを蓄積する一方で送 信コマンドおよび受信コマンド用の待ち行列を用いる。この型の従来技術の代表 はスタンダードマイクロシステムズ社発売の 90C66通信コントローラである。この通信コントローラは上述の通信コント ローラに比べて割込み待ち時間の影響をかなり受けにくい。 この従来技術は、上述のコマンド待ち行列機構とは全く異る技術を用い、送信 待ち行列および受信待ち行列を通信コントローラのデータパケットバッファメモ リ内の送受信データ待ち行列によりシミュレートすることによって送信データ待 ち行列および受信データ待ち行列のこの通信コントローラへの拡張を狙ったもの である。この一般化したメモリ管理技術をインプリメントするのに、いくつかの 他の手法もある。 例えば、一つの手法によると、多数の送受信データエレメントを「リングバッ ファ」、すなわち順次割当ておよび順次アクセスの可能な多数の記憶素子として データパケットバッファメモリを配置したバッファとして管理できる。この手法 による従来技術の代表例には、ナショナル セミコンダクタ コーポレーション発 売の8390型NIC通 通信コントローラなどがある。この「リングバッファ」通信コントローラの重大 な短所および不利な点は不十分なメモリ活用、CPUのオーバーヘッド動作負担 の大きいこと、およびメモリ細分化である。 送受信データ待ち行列を通信コントローラレベルでシミュレートする代替の手 法によると、メモリ記憶位置のばらばらのアレイを「リンク・リスト」に従って コンパイルし たアドレスポインターの使用により互いにリンクさせる。その種の従来の「リン ク・リスト」通信コントローラ107′の主要な下位構成要素を第3図に示す。 一般に、通信コントローラ107′はCPUインタフェースユニット110と、 リンク・リストプロセッサ111と、媒体アクセスコントロール(MAC)ユニ ット112と、MACインタフェースユニット114とを備える。このコントロ ーラにはデータパケットバッファメモリ(RAM)113が結合してある。CP Uインタフェースユニットは、図示のとおり、システムバス108とリンク・リ ストプロセッサおよびデータパケットメモリバッファとの間のアドレスおよびデ ータバスによるインタフェースを形成する。MACインタフェースユニットは、 図示のとおり、媒体アクセス制御ユニット109とリンク・リストプロセッサお よびデータパケットバッファメモリとの間のアドレスおよびデータバスによるイ ンタフェースを形成する。この型の装置の従来例の代表はインテルコーポレーシ ョン発売の82586型および82596型通信コントローラなどである。 リンク・リスト通信制御装置がパケットの始まるメモリ蓄積位置および(その パケットを含む)各バッファの蓄積位置を見出せるようにするために、ソフトウ ェアドライバは多数の計算を行わなければならない。このようなパケットアドレ ス計算および多数のアドレスポインタの管理の必要性のために、多大のソフトウ ェアオーバーヘッドが生ずる。また、この従来技術の手法ではメモリ利用効率が 低い。 すなわち、ポインタおよびリンク・リスト構成がメモリを利用するほかリンク・ リストが送信待ち行列・受信待ち行列間で固定のメモリ割当てを用いるからであ る。 上述のとおり、この技術分野では、データパケットバッファメモリの管理およ びシステムメモリ内の送受信待ち行列間のインタフェースを効率的に行うことが できるとともに、データパケットのバッファ蓄積を、単純性、高性能、柔軟性、 低いソフトウェアオーバーヘッドおよび効率的メモリ利用に特徴づけられた方法 で行うことのできる通信コントローラに対する需要が大きい。 したがって、本発明の主な目的は、上述の基準を概ね満たす方法で通信コント ローラ内のデータパケットのバッファ動作を行う方法および装置を提供すること である。 この発明のもう一つの目的は、送受信待ち行列の管理をホストプロセッサ(C PU)とは独立に、したがってその割込み待ち時間の影響を受けることなく行う ことのできるこの種の通信コントローラ内データパケットバッファ方法および装 置を提供することである。 この発明のさらに他の目的は、データパケットバッファメモリの割当てをホス トプロセッサへの負荷なしにメモリ利用を最適化するように動的に行うこの種の 通信コントローラ内データパケットバッファ方法および装置を提供することであ る。 この発明のさらに他の目的は、データパケットバッファメモリがホストプロセ ッサから見ると送信待ち行列用およ び受信待ち行列用にそれぞれリニアにマップされた二つの固定長メモリ領域に見 えるものの、実際にはバッファメモリの大きさはずっと大きく各データパケット のためのデータページ蓄積位置が任意に割り当てられ、互いに隣接している必要 はなく、その数が蓄積すべきデータパケットの実際の長さに依存する、この種の 通信コントローラ内データパケットバッファ方法および装置を提供することであ る。 この発明のさらに他の目的は、メモリ利用最適化のために送受信待ち行列間で バッファメモリスペースを共用し動的に割り当てるこの種の方法および装置を通 信コントローラの形で提供することである。 この発明のさらに他の目的は、バッファメモリの動的割当てがホストコンピュ ータおよび通信コントローラ内媒体アクセス制御ユニットに見透し可能なこの種 の通信コントローラを提供することである。 この発明のこれらの目的およびそれ以外の目的は下記の記載で明らかになろう 。 発明の要約 この発明の一つの側面によると、通信コントローラ内のデータパケットのバッ ファ方法が提供される。ここに説明する実施例では、通信コントローラはデータ パケット処理用のプロセッサとインタフェースを形成する通信媒体アクセス用の 制御ユニットを含む。 一般に、この方法は通信コントローラと動作できるように結合されたデータパ ケット蓄積手段を備えることを含ん でいる。このデータ蓄積手段は複数のデータページ蓄積位置を含む。一つまたは それ以上のこれらデータページ蓄積位置に蓄積すべきデータパケットにパケット 番号を付与する。次に、一つまたはそれ以上のデータページ蓄積位置にデータパ ケットを蓄積する。これら一つまたはそれ以上のデータページ蓄積位置はデータ パケットに割り当てられた対応のパケット番号で特定される。データパケット蓄 積ののち、そのデータパケットに割り当てられたパケット番号を通信コントロー ラ間に保持されたパケット番号待ち行列に蓄積する。パケット番号待ち行列は蓄 積されたデータパケットと一対一対応のパケット番号を一つまたはそれ以上蓄積 できる。次に、しばらくの時間経過後、そのパケット番号がパケット番号待ち行 列から読み出され、その読出出力のパケット番号の特定する一つまたはそれ以上 のデータページ蓄積位置のデータパケットへのアクセスに使われる。 一つの好適な実施例においては、パケット番号待ち行列は、データパケット蓄 積手段に蓄積されたデータパケットに各々が対応する複数のパケットの待ち行列 に十分な深さを備える。各データパケットが蓄積(すなわちロード)され、その あと読み出(すなわちアンロード)されるために、上述の処理が順次にとは限ら ないが行われる。 データ蓄積位置およびパケット番号を動的に割り当てるのが好ましい。そのよ うな実施例では、各データパケットの蓄積に必要なデータページ蓄積位置の数が 初めに決められる。次に、空きのデータページ蓄積位置の所要数がデー タパケット蓄積用に割り当てられる。さらに、割り当てられたデータページ蓄積 位置の各々に特有のパケット番号が与えられる。パケット番号およびページ蓄積 位置の動的割当てに加えて、データパッケージ蓄積手段内のメモリアクセスウィ ンドウ形成のために、リニアアドレスから物理的アドレスへのアドレス変換を用 いる。この方法によって、データパケット蓄積手段に対する書込みまたは読出し は、アクセス対象である物理的な蓄積位置が実際にはバッファメモリ内のどこか にあるときでも、固定の蓄積スペースのアクセスであるように見え、プロセッサ にも媒体アクセス制御ユニットにも認識されない。 好ましくは、一対のパケット番号待ち行列を送信データパケットおよび受信デ ータパケットにそれぞれ付与ずみのパケット番号について互いに独立に維持する 。パケット番号およびパケットページの動的割当ての使用により、可変長送受信 データパケット待ち行列をデータパケット蓄積バッファにこのように効率的に維 持できる。結果的にメモリ利用は先着順の原則によることになる。 この発明のもう一つの側面によると、高性能通信コントローラが提供される。 後述の実施例では、この通信コントローラはホストプロセッサとインタフェース を形成でき、一つまたはそれ以上のデータパケットの蓄積用の複数のデータペー ジ蓄積位置を含むデータパケット蓄積手段に動作可能な形で供給される。 一般に、通信コントローラは、制御ユニットと、メモリ 管理手段と、データパケット転送手段と、パケット番号待ち行列と、パケット番 号転送手段とを含む。制御ユニットは通信媒体へのアクセス用である。メモリ管 理手段は、蓄積すべき各データパケットにパケット番号を与えることおよび各デ ータパケット蓄積用に一つまたはそれ以上のデータページ蓄積位置を割り当てる ことによって、データパケット管理手段を管理する。パケット番号はプロセッサ および制御ユニットの片方または両方からアクセス可能である。 データパケット転送手段はプロセッサとデータパケット蓄積手段との間で一つ またはそれ以上のデータパケットを転送するために備えられている。また、この データパケット転送手段はデータパケット蓄積手段と制御ユニットとの間の一つ またはそれ以上のデータパケットの転送を容易にする。パケット番号待ち行列は 、各々が蓄積データパケットに対応する一つまたはそれ以上のパケット番号の蓄 積を容易にする。一方、パケット番号転送手段は、パケット番号待ち行列と制御 ユニットおよびプロセッサの少なくとも一方との間、ならびにメモリ管理ユニッ トと制御ユニットおよびプロセッサの少なくとも一方との間のパケット番号の転 送を容易にする。 後述の実施例の一つにおいては、送信データパケットおよび受信データパケッ トの両方にパケット番号待ち行列が備えられ、メモリ管理手段によりパケット番 号が与えられる。メモリ管理手段は、実際の物理的蓄積位置がプロセッサおよび 制御ユニットに透視可能になるようにメモリアク セスウィンドウをデータパケット蓄積手段に提供する。このようなメモリアクセ スウィンドウは、リニアアドレスを物理的アドレスにマップするリニアアドレス ・物理的アドレス変換ユニットをメモリ管理手段に備えることにより実現する。 この発明のさらに他の側面によると、ホストプロセッサの定めた所定数のデー タパケット送信の終了に伴いホストプロセッサに送信割込みを自動的に生じさせ る機構を備えたデータ通信コントローラが開示される。この機構は、パケット番 号除去のための第一および第二の蓄積位置を有する送信パケット番号待ち行列構 成を利用している。一つの実施例においては、ホストプロセッサの送信した特定 の記録またはパケット列関連のデータパケットの送信の終了に伴い送信割込みを 自動的に生ずるのにこの機構は適合している。 図面の簡単な説明 この発明のより完全な理解のために下記図面に関連して実施例の詳細な説明を 次に述べる。すなわち、 第1図は複数のデータステーションがネットワークプロトコルに従って割り当 てられた共用の通信媒体にアクセスできるようにしたローカルエリアネットワー クシステムの概略的表示であり、 第2図は第1図のローカルエリアネットワーク内の従来技術によるデータステ ーションの主要構成部分を示す機能ブロック図であり、 第3図は第2図の従来技術によるデータステーションの機能ブロック図であり 、その中に含まれるリンク・リスト通信コントローラの機能サブユニットを示す 。 第4図はこの発明により構成した通信コントローラの上位レベルの概略的表示 であって、データ通信動作中にホストコンピュータ(すなわちCPU)および媒 体アクセス制御ユニットが利用する基本パラメータを示し、 第5図は第4図に示した通信コントローラの上位レベルの概略的表示であって 、この発明の好適な実施例において順次的データ・バイト転送を容易にするため にホストプロセッサおよび媒体アクセス制御ユニットの側にリニアアドレス発生 機能を付加した状態を示し、 第5A図はこの発明の通信コントローラであって、ホストコンピュータおよび 媒体アクセス制御ユニットから見たとき、データバイト数最大値までのデータパ ケットの転送のための図示のリニア順序のアドレスをもつメモリアクセスウィン ドウを備える通信コントローラの上位レベルの概略的表示であり、 第6図および第6′図は、併せて、この発明の第1の実施例によるデータバッ ファ方法の概略的表示を構成し、システムメモリにおけるデータパケット待ち行 列、パケット番号付与、データパケットバッファメモリに転送されるべきデータ パケットへのリニアアドレス発生、およびデータパケット蓄積のためのリニアア ドレス・物理的アドレス変換を示し、 第7図はこの発明の第1の実施例による通信コントローラの機能ブロック図で あって、互いに一体化されホストプロセッサおよび媒体アクセス制御ユニットと の間でインタフェースを形成する下位構成要素を示し、 第7A図は第7図の通信コントローラのメモリ管理ユニットの機能ブロック図 であり、 第7B図は第7A図に示したアドレス変換ユニット内にインプリメントしてあ るアドレス変換テーブルの概略的表示であり、 第7C図は第7A図に示したページ割当て管理ユニット内にインプリメントし てあるパケット番号および物理的ページ割当てテーブルの概略的表示であり、 第8A図は上述の実施例の通信コントローラのデータパケットバッファメモリ 内に用いられているデータパケット蓄積フォーマットの概略的表示であり、 第8B図は図示の実施例の通信コントローラがネットワーク通信媒体を通じた データパケットの送信中に用いるデータパケット送信フォーマットの概略的表示 であり、 第9図および第9′図は、併せて、この発明の第2の実施例によるデータパケ ットバッファ方法の概略的表示を構成し、システムメモリにおけるデータパケッ ト待ち行列、パケット番号付与、外部バッファメモリに転送されるべきデータパ ケットへのリニアアドレス発生、およびデータパケット蓄積のためのリニアアド レス・物理的アドレス変換を示し、 第10図はこの発明の第2の実施例による通信コントローラの機能ブロック図 であって、ホストプロセッサおよび媒体アクセス制御ユニットとの間でインタフ ェースを形成する下位構成要素と、メモリ管理ユニットおよび他の下位構成要素 との間でインタフェースを形成する外部バッファメモリとを示し、 第10A図は第10図の通信コントローラのメモリ管理ユニットの機能ブロッ ク図であり、 第10B図は第10A図に示したアドレス変換ユニット内にインプリメントし てあるアドレス変換テーブルの概略的表示であり、 第10C図は第10A図に示したページ割当て管理ユニット内にインプリメン トしてあるパケット番号およびページ割当てテーブルの概略的表示であり、 第11図はこの発明の第3の実施例による通信コントローラの機能ブロック図 であって、送信パケット番号待ち行列および受信パケット番号待ち行列を、ホス トプロセッサへの送信割込みを柔軟な形で自動的に生ずるようにCPUインタフ ェースユニットとの動作可能な結合状態で示し、 第11A図は第11図の通信コントローラの一つの実施例の送受信パケット番 号待ち行列およびCPUインタフェースユニットの機能ブロック図を示し、 第11B図は第11図の通信コントローラの代替実施例の送受信パケット番号 待ち行列およびCPUインタフェースユニットの機能ブロック図であり、 第12A図は第7図、第10図および第11図の通信コントローラのデータパ ケットバッファメモリへの送信データパケットのロード期間中にホストプロセッ サが行う動作を示す制御の流れ図であり、 第12B図は第7図、第10図および第11図の通信コントローラのデータパ ケットバッファメモリからの送信データパケットのアンロード期間中に媒体アク セス制御ユニットが行う動作を示す制御の流れ図であり、 第12C図は割込み受信の際に特定の送信データパケットの状態の決定のため にホストコンピュータが行うオプション動作を示す制御の流れ図であり、 第13A図は第7図の通信コントローラのデータパケットバッファメモリへの 入来受信パケットのロード期間中に媒体アクセス制御ユニットが行う動作を示す 制御の流れ図であり、 第13B図は第7図の通信コントローラのデータパケットバッファメモリから の受信データパケットのアンロード期間中にホストプロセッサが行う動作を示す 制御の流れ図である。 実施例の詳細な説明 第4図を参照すると、この発明によるデータパケットバッファの方法および装 置がホストプロセッサ(すなわちCPU)および通信コントローラ3の媒体アク セス制御(MAC)ユニット2に関連して概略的に示してある。図示のとおり、 送信データパケット待ち行列4および受信データ パケット待ち行列5はホストプロセッサによる制御の下でソフトウェアベースの 下位レベルドライバーによりデータステーションのシステムメモリ内で管理され る。表示してないが、媒体アクセス制御ユニットは、ネットワークプロトコルを 達成し結果的に通信コントローラの通信媒体へのアクセスを達成するマイクロプ ログラムまたは状態マシン(すなわちアルゴリズム)を走らせるマイクロプロセ ッサを通常含んでいる。ネットワークプロトコルを実行するには、各データステ ーションの通信コントローラの各媒体アクセス制御ユニットが同一のアルゴリズ ムを実行しなければならない。通信コントローラが供給するプロセッサ「割込み 」は基本的時間順序を定める事象であり、この事象に基づき送受信待ち行列と通 信コントローラとの間のデータパケットの流れを下位レベルドライバが管理する 。 第4図に示したとおり、この発明の通信コントローラは、概括的には、送信お よび受信データパケット待ち行列形成用のデータパケットバッファメモリ6と、 図示のとおりアドレス変換(すなわちマッピング)ユニット8を含むバッファメ モリ管理ユニット(すなわち設備)7と、送信および受信データパケットにそれ ぞれ付与されたパケット番号の待ち行列形成用の送受信パケット番号待ち行列と を含む。アドレス変換ユニット8はバッファメモリ6に動作可能な状態で結合さ れ、入力としてパケット番号NTiおよびNRjを受け、バッファメモリ6内の利用 可能な蓄積スペース(すなわち位置)を定義する一組の物理的アドレスを発生 する。 ホストプロセッサ側にはパケット番号転送手段11が備えられ、ホストプロセ ッサから送信パケット番号待ち行列9およびアドレス変換ユニット8へのパケッ ト番号転送を行う。受信パケット番号待ち行列10からホストプロセッサへ、ま たホストプロセッサからアドレス変換ユニット8へのパケット番号転送のために パケット番号転送手段12も備えられている。 媒体アクセス制御ユニット側にはパケット番号転送手段13が備えられ、パケ ット番号待ち行列9から媒体アクセス制御ユニットへ、また媒体アクセス制御ユ ニットからアドレス変換ユニット8へのパケット番号転送を行う。媒体アクセス 制御ユニットからアドレス変換ユニット8および受信パケット番号待ち行列10 へのパケット番号転送のためにパケット番号転送手段14も備えられている。送 信パケット待ち行列4とバッファメモリ6との間、およびバッファメモリ6と媒 体アクセス制御ユニットとの間のデータパケット転送のために、データパケット 転送手段15も備えられている。また、受信パケット待ち行列5とバッファメモ リ6との間、およびバッファメモリ6と媒体アクセス制御ユニットとの間のデー タパケット転送のために、データパケット転送手段16が備えられている。この 技術分野で周知のとおり、データパケット転送手段15および16はデータバス の形をとる。 原理的には、メモリ管理ユニット7がバッファメモリの 中のどの蓄積位置が利用可能かを決定するとともに、利用可能なパケット番号に それら蓄積位置を任意ながら十分な数だけ動的に割り当てて対応データパケット の蓄積を可能にする。送信待ち行列4の中のi番目の送信データパケットDTiは パケット番号NTiをメモリ管理ユニットのアドレス変換ユニットに発することに よってバッファメモリ6に蓄積される。次に、アドレス変換ユニット8は一組の 物理的アドレスATi′を発生し、これらアドレスがバッファメモリ内に割り当て られた対応蓄積位置へのアクセスを可能にする。これら物理的アドレスが発生さ れると、ホストプロセッサは送信待ち行列4から送信データパケットDTiをコピ ーし、アドレス変換処理を通じて割当てパケット番号により特定された物理的ア ドレスに供給する。次に、パケット番号NTiが送信パケット番号待ち行列9に挿 入され、パケットアンロード動作中の媒体アクセス制御ユニットにおける使用に 供される。 送信データパケットDTi対応のパケット番号はホストプロセッサ(および受信 データパケットDRj用の媒体アクセス制御ユニット)により割り当て可能ではあ るが、図示の実施例ではメモリ管理ユニットが全部のパケット番号を割り当てる 。この機能を達成するために、メモリ管理ユニットはメモリ蓄積要求RTiおよび RRjをホストコンピュータおよび媒体アクセス制御ユニットからそれぞれ受けて 復号するパケット番号割当てユニット17を備える。パケット番号割当てユニッ トは1つのパケット番号をメモリ蓄積要 求のあった各対応のデータパケットに割り当てる。一方、パケット番号NTiおよ びNRjがホストプロセッサおよび媒体アクセス制御ユニットにそれぞれ発せられ る。実施例においては、各パケット番号は通信コントローラ内部およびホストプ ロセッサ内部でディジタル値で表示された特有の数である。 各メモリ蓄積要求RTiをホストプロセッサからパケット番号割当てユニット1 7に転送するために要求転送手段18が備えてある。各割当てパケット番号NTi をパケット番号割当てユニット17からホストプロセッサに転送するために、パ ケット番号転送手段19が備えてある。同様に、各メモリ蓄積要求RRjを媒体ア クセス制御ユニットからパケット番号割当てユニット17に転送するために要求 転送手段20が備えてあり、各割当てパケット番号NRjを媒体アクセス制御ユニ ットに転送するためにパケット番号転送手段21が備えてある。 上述の方法に従って多数の送信データパケットDTiをバッファメモリ6にロー ドしたのちは、送信パケット番号待ち行列9は、待ち行列に最初に挿入された番 号はその待ち行列から最初に除去されるというように順次に配列された多数のパ ケット番号を含む。送信パケット番号待ち行列のパケット番号NTi対応の各送信 データパケットDTiはホストプロセッサおよび媒体アクセス制御ユニットに完全 に透視可能な形で透視可能な位置に蓄積される。送信パケット番号待ち行列4の 中の付与ずみのパケット番号はバッファ メモリ6に蓄積されている送信データパケットに関するあらゆる待ち行列情報を 保持している。 媒体アクセス制御ユニットは、送信パケット番号待ち行列から最初に除去され るべきパケット番号対応の送信データパケットをバッファメモリ6からアンロー ドするために次の処理を行う。 媒体アクセス制御ユニットはi番目のデータパケット番号NTiを送信パケット 番号待ち行列4の除去位置からまず読み出す。この読み出されたパケット番号は アドレス変換ユニット8に供給され、このユニット8が対応データパケットDTi のデータバイトを蓄積すべき物理的蓄積位置を特定する物理的アドレスATi′を 発生する。バッファメモリの中のこれらアクセスを受けた蓄積位置から、送信デ ータパケットDTiを含むデータバイトが媒体アクセス制御ユニットにより読み出 され、次に通信媒体103に送出される。データパケットDTiの送信ののちは、 媒体アクセス制御ユニットは、データパケットDTiの読出しを受けた物理的蓄積 位置と関連した蓄積位置に送信ステータスデータを書き込むことができる。バッ ファメモリ6に送信ステータスデータが書き込まれたのち、ホストプロセッサへ の割込み信号が発生する。ホストプロセッサは、割当てパケット番号NTiのソフ トウェア待ち行列を維持しながら、そのソフトウェア待ち行列の中の除去位置か らパケット番号NTiを選択することによって、物理的蓄積位置の送信ステータス データへのアクセスを得る。選択されたパケット番号NTiは アドレス変換ユニットによって割当て物理アドレスATi′に変換される。送信ス テータスデータがホストプロセッサに読み出され利用されたあと、ホストプロセ ッサは、パケット番号NTiに割り当てられていたバッファメモリ内蓄積位置を解 放するために、解放コマンドF(NTi)をパケット番号割当てユニット7に発す る。このようにして、これら解放された蓄積位置は空きとなり、送信データパケ ットまたは受信データパケットへの割当てに備える。 この発明の通信コントローラは受信データパケットDRjのロードおよびアンロ ードについてもほぼ同様に動作する。例えば、媒体アクセス制御ユニットは、バ ッファメモリ内でj番目の入力受信データパケットDRjの蓄積に十分な多数の蓄 積位置を割り当てるように要求RRjをメモリ管理ユニットに発する。この要求RRj に応答して、パケット番号NRjがj番目の受信データパケットDRjに付与され 、媒体アクセス制御ユニットに供給される。媒体アクセス制御ユニットは、付与 されたパケット番号NRjをメモリ管理ユニットのアドレス変換ユニットに発し、 この変換ユニットが、バッファメモリ6内でパケット番号NRj対応の受信データ パケットを蓄積すべき蓄積位置を特定しその位置へのアクセスを可能にする一組 の物理的アドレスARjを生ずる。バッファメモリ6内の割当て蓄積位置へのアク セスによって、j番目の受信データパケットDRjが媒体アクセス制御ユニットか ら読み出され割当て蓄積位置に蓄積される。受信データパケットDRjのバッファ メモリへのロードののち、対 応のパケット番号NRjが通信コントローラの受信パケット番号待ち行列10の挿 入位置に導かれる。受信データパケットDRjに関する受信ステータスデータは受 信パケット番号NRjに割当てられた一つまたはそれ以上の蓄積位置に書き込むこ とができる。このような受信ステータスデータの性質は上述のデータパケットの 一貫性または型と関連し得る。次に、ホストプロセッサへの割込み、すなわち受 信データパケットのアンロードがホストプロセッサ指定の時点で生じ得ることを 示す割込みが発生する。しかし、パケットアンロード動作の前に、ホストプロセ ッサはバッファメモリに蓄積されている受信ステータスデータを上述の送信ステ ータスデータ蓄積および読出しと同様に読み出せる。また、受信パケット番号待 ち行列10の中のパケット番号NRj対応の各受信データパケットDRjは、媒体ア クセス制御ユニットおよびホストプロセッサに完全に透視可能な方法および位置 で送信データパケットとともにバッファメモリ6に蓄積される。上述の蓄積され た送信データパケットの場合と同様に、受信パケット番号待ち行列10の中の付 与ずみのパケット番号は、バッファメモリに蓄積されている受信データパケット 関連のすべての待ち行列情報を保持している。 送信パケット待ち行列10から最初に除去されるべきパケット番号に対応する 受信データパケットをバッファメモリ6からアンロードするために、ホストプロ セッサは次の処理を行う。 ホストプロセッサは受信パケット番号待ち行列10の除去位置からj番目のデ ータパケット番号NRjをまず読み出す。読み出された番号NRjはアドレス変換ユ ニット8に供給され、このユニット8が、対応データパケットDRjのデータおよ びステータスバイトを蓄積すべき物理的位置を特定する物理的アドレスARj′を 発生する。割込みが発生すると、受信ステータスバイトがホストプロセッサによ りバッファメモリ6の蓄積位置から読み出される。ホストプロセッサは、受信デ ータパケットDRjの一貫性をチェックしそれをバッファメモリから受信データパ ケット待ち行列5に転送したのち、パケット番号NRjに割り当てられていたバッ ファメモリ6の中の蓄積位置を解放するためにパケット番号付与ユニット17に 解放コマンドF(NRj)を発する。このようにして、これら解放された蓄積位置 は空きとなり、送受信データパケットへの割当てに備える。 上述の本発明の重要な特徴は、データパケットのローディングおよびアンロー ディング動作中の全期間にわたり、バッファメモリ6の中の物理的蓄積位置がホ ストプロセッサおよび媒体アクセス制御ユニットの両方に透視できることである 。ホストプロセッサおよび媒体アクセス制御ユニットは、パケット番号をメモリ 管理ユニットに供給するとともに対応のデータパケットを必要に応じてバッファ メモリに転送しまたは同メモリから転送することによって、バッファメモリ6へ の必要なアクセスを得る。パケット番号の物理的アドレスへの変換およびバッフ ァメモリ中での空 き蓄積位置の決定および割当ては、ホストプロセッサおよび媒体アクセス制御ユ ニットに完全に透視できる状態で起こる。これによって、ソフトウェアベースの 下位レベルドライバおよびアルゴリズムベースの媒体アクセス制御ユニットのオ ーバーヘッドを大幅に削減でき有利になる。 通信コントローラにおける上述のデータパケットバッファ方法および装置は、 ホストコンピュータおよび媒体アクセス制御ユニットがデータパケット(DTiお よびDRj)を完全なエレメントとして通信コントローラのバッファメモリに転送 することおよび同メモリから転送することができるものと仮定している。従来の ホストプロセッサおよび媒体アクセス制御ユニットはそれぞれのデータバスを通 じた一度に数バイトまでのデータ転送に通常限られており、データパケットDTi およびDRjは通常多数のデータバイトを含む。したがって、データパケットの長 さに応じて、データパケットをホストプロセッサとバッファメモリとの間または 媒体アクセス制御ユニットとバッファメモリとの間で完全に転送するために、各 データパケットDTiおよびDRjは特定の数のデータバイト「転送動作」を必要と する。このデータ転送要求は次に述べる本発明のもう一つの側面によって充たさ れる。 この発明の上述の第一の実施例において、パケット長はデータパケットあたり 64乃至1518バイトの範囲で変動する可能性があり、バッファメモリ6(す なわちRAM)は各々が256バイトの蓄積位置を含む18のページに分 割されている方が有利である。このような実施例において、各蓄積位置は1バイ トのデータを蓄積するのに十分なビット長を有する。物理的蓄積位置をホストプ ロセッサおよび媒体アクセス制御ユニットに透視可能な状態に維持し、しかもデ ータバイト転送を可能にするために、ウィンドウ型メモリアクセス手法を用いる 。この手法は本質的にホストプロセッサおよび媒体アクセス制御ユニットを含み 、これらプロセッサおよびユニットにより、バッファメモリ内の蓄積位置の見か け上は固定のリニアアドレス付きウィンドウにデータバイトのパケットを書き込 みまたはそのウィンドウからデータバイトのパケットを読み出すものである。し かし、実際には、通信コントローラのメモリ管理ユニットにより対応のパケット 番号に予め割り当てられてあった他の物理的蓄積位置にそれらデータバイトは書 き込まれまたはそれら位置から読み出される。この発明のこの特徴を明確に説明 するために、第5図、とくに第5A図を参照されたい。 第5図において、第4図に示したものと同様の通信コントローラ3がホストプ ロセッサおよび媒体アクセス制御ユニット2とのインタフェースを形成した形で 示してある。第5A図にはこの発明による通信コントローラ3が概略的に示して あり、この図では、バッファメモリがホストプロセッサおよび媒体アクセス制御 ユニットの両方により一対の送受信メモリ蓄積領域またはメモリアクセスウィン ドウWCPUおよびWMACと見なされ、これら領域またはウィン ドウの各々がアドレス特定については固定に見え、バッファメモリへのアクセス の「ウィンドウ」を提供するという事実を強調してある。とくに、メモリアクセ スウィンドウWCPUおよびWMACの各々は最小値から最大値にわたるリニアアドレ スであって各隣接アドレスが一定のアドレス増分だけ互いに離れているリニアア ドレスの固定した組で定義されている。実施例では、この11ビットリニアアド レス範囲は{00000000000}からバッファメモリ中の蓄積位置の8ページ(例え ば2キロバイト範囲)の最大範囲を特定する{11111111111}に及ぶ。なお、各 ページは256バイトの蓄積位置を含む。第5A図に示すとおり、メモリアクセ スウィンドウWCPUおよびWMACはホストプロセッサおよび媒体アクセス制御ユニ ットのリニアアドレス発生器23および24によりそれぞれ発生する。これらリ ニアアドレス発生器は上述の規格に従って動作し、データパケットの長さとその 中の各バイトの相対位置とを定義するリニアアドレスを発生する。 メモリアクセスウィンドウWCPUは2つの主要な機能をもつ。すなわち、この ウィンドウは、ホストプロセッサがバッファメモリ6のページ内の蓄積位置のバ イトにランダムにアクセスできるようにする。その目的は、バッファメモリ内の 各割当てページの物理的位置への配慮なしに、(i)送信パケットDTiを蓄積す ること、および(ii)各受信パケットDRjを読み出すことである。メモリアクセ スウィンドウWMACも同様の2つの機能をもつ。すなわち、 このウィンドウは、媒体アクセス制御ユニットがバッファメモリのページ内の蓄 積位置のバイトにランダムにアクセスできるようにすることである。その目的は 、バッファメモリ内の各割当てページの物理的位置への配慮なしに、(i)各送 信データパケットDTiを読み出すこと、および(ii)各受信データパケットDRj を蓄積することである。本発明のこの実施例によると、リニアアドレスATiまた はARjとの組合せの形の各割当てパケット番号NTiまたはNRjが通信コントロー ラのアドレス変換ユニットに提供され、固定リニアアドレスATiおよびARjをバ ッファメモリ6内部で定義される物理的アドレスATi′およびARj′にそれぞれ 変換するのにともに使われる。この方法により、ホストプロセッサがメモリアク セスウィンドウWCPU内のリニアに配置された一組の蓄積位置にデータパケット のバイトを単に書き込むだけで、それらバイトが実際には、バッファメモリ6内 で任意に割り当てられた蓄積位置の動的に割り当てられたページにマップされ、 それら蓄積位置が送信データパケットおよび受信データパケットに共用される。 第6図および第6′図を参照すると、メモリアクセスウィンドウWCPUを通じ てバッファメモリ6にアクセスする処理がバッファメモリの一つまたはそれ以上 のページへの送信データパケットの蓄積に関連して示してある。第6図に示すと おり、4つの送信パケットDT0乃至DT3が送信データパケット待ち行列4に配列 され、バッファメモリ6に蓄積できる状態になっている。データパケットは1つ ずつ 特有のパケット番号を付与され、送信データパケットDTiについてはATiと表示 されるひと組のリニアアドレスを付与される。理解されるとおり、各データパケ ットDTiの長さはそのデータパケットに含まれるバイトの数に比例し、データパ ケット内に含まれるバイト数の多いことは、データパケットウィンドウWCPUへ のデータパケットDTiの書込みの際により大きい範囲のリニアアドレスATiが必 要となることを意味する。説明の目的に限るが、送信データパケットDT0には6 ページのデータバイトが含まれるものとする。このメモリアクセスをデータパケ ットウィンドウWCPUに書き込むために発生すべきリニアアドレスの範囲は図示 のとおり{00000000000}で始まり{10111111111}あたりで終る。一方、データ パケットDT3およびDT4の各々は約2ページ半のデータバイトを含み、したがっ て、各データパケットをメモリアクセスウィンドウWCPUに書き込むために発生 すべきリニアアドレスの範囲は図示のとおり{00000000000}で始まり{0100011 1111}あたりで終る。 第6図および第6′図に示した実施例では、送信データパケットDTiのための リニアアドレスの各組はATiと表示してあり、図示のとおり、2つの構成部分を 有する。すなわち、ATiの上位3ビット(MSBから)を含む第1のアドレス構 成部分A1と下位8ビット(LSBから)を含む第2のアドレス構成部分A2との 2つである。より詳しく後述するとおり、第1の実施例のメモリ管理ユニットの 内部ではアドレスの構成部分A1がデータバイト所属のデー タパケットのページ(例えば第1,第2,第3など)を表示し、構成部分A2が 特定のページ(例えばオフセットしたページ)の中のバイトアドレスを表示する 。同様に、各受信データパケットDRjのためのリニアアドレスの各組はARjで表 示され、ATiと同様に、2つの構成部分、すなわちARjの上位3ビットを含む第 1のアドレス構成部分A1とARjの下位8ビットを含む第2のアドレス構成部分 A2とを有する。上述の実施例において、アドレス構成部分A1およびA2はこの 特定の実施例のメモリ管理ユニット内で定義された同様の特徴を表わす。しかし 、リニアアドレス発生器23および24については、いかなるページ区別もなさ れないし識別されない。メモリ管理ユニット内部に限ってページの区別がなされ る。 第6図に示すとおり、各データパケットはリニアアドレス発生の前にパケット 番号付与を受ける。上述のとおり、この番号付与は、ホストプロセッサが要求RTi をメモリ管理ユニットに送り、パケット番号NTiがデータパケットDTiに付与 されることを伴う。このデータパケットには、バッファメモリ6内部でデータバ イト蓄積位置の1ページ分またはそれ以上のページ分が動的に割り当てられる。 この動的割当て処理を、この発明による通信コントローラの特定の実施例に関連 してより詳細に次に述べる。データパケットDTiに付与されたパケット番号NTi およびリニアアドレスの組ATiを、次にメモリ管理ユニットが用いて、そのデー タパケットのバイトの蓄積に十分なバッファメモリ6内 部の物理的アドレスの組ATi′を生ずる。この発明の動的メモリの特徴により、 データパケット内のデータバイトの各ページは、第6′図に示すとおり、隣接ペ ージ蓄積位置に蓄積する必要はなくまた実際にそれら位置には蓄積されない。 この段階でこの発明につき2つの重要な点を指摘する必要がある。第1に、メ モリ管理ユニット内におけるリニアアドレス・物理的アドレス変換処理がホスト プロセッサおよび媒体アクセス制御ユニットの両方に完全に透視可能であること である。したがって、データパケットの各々がバッファメモリ内のどこに蓄積さ れることになるかはホストプロセッサにも媒体アクセス制御ユニットにも分から ない。ホストプロセッサおよび媒体アクセス制御ユニットに供給されるのは、バ ッファメモリ6内のどこかに蓄積されたデータパケットに付与されたそのパケッ ト対応のパケット番号だけである。第2に、ホストプロセッサおよび媒体アクセ ス制御ユニットの各々が(i)送受信パケット番号待ち行列9および10のパケ ット番号にアクセスできること、および(ii)リアアアドレスの限定範囲で定義 さた固定メモリアクセスウィンドウ(WCPUおよびWMAC)への書込み読出しがで きることである。したがって、ホストプロセッサおよび媒体アクセス制御ユニッ トから見て・バッファメモリ6は、互いに隣接しメモリアクセスウィンドウWCP U およびWMACと等しい長さ、例えば2キロバイトの長さをもつバイト蓄積位置か ら成る一組の独立のメモリエリアと 見なされる。 第7図を参照すると、この発明の第1の実施例の通信コントローラの下位レベ ル表示が示してある。図示のとおり、通信コントローラ3′は中央処理装置(C PU)インタフェースユニット30、媒体アクセス制御(MAC)インタフェー スユニット31、媒体アクセス制御ユニット2、送信パケット番号待ち行列32 、受信パケット番号待ち行列33、データパケットバッファメモリ34、マルチ プレクサの形式の6個のスイッチ装置M1乃至M6およびメモリ管理ユニット35 を備える。図示の実施例においては、この発明をわかりにくくしないように、デ ータ線およびアドレス線だけを示し、制御線は除いてある。また、図示の実施例 では、媒体アクセス制御ユニット2のためのネットワークプロトコルとして、衝 突検出付き搬送波検出多元接続(CSMA/CD)を選んだ。次の説明から明ら かになるとおり、第1および第2の実施例の間にはいくつかの相違点がある。例 えば、第7図乃至第7C図の第1の実施例においては、上記構成部分はすべて、 周知のIC製造技術を用いて単一チップ上に集積化したディジタル回路として実 現できるであろう。第10図乃至第10C図に示した第2の実施例においては、 バッファメモリを除いて他の構成部分はすべて単一チップに実現し、入出力ポー トを外部とのインタフェース付きの(すなわち外付けの)バッファメモリ用にそ のチップに併せて形成することができる。第1の実施例には開示されているもの の第2の実施例には開示さ れていない、あるいはその逆の関係で開示されているこの発明の原理は、この発 明の真意に包含されるこれら以外の実施例を提供するのに多様に組み合わせるこ とができる。 第7図において、CPUインタフェースユニット30は、マルチプレクサM2 ,M3,M4およびM6を含み、システムバス37のアドレス線、データ線および 制御線とバッファメモリ34、メモリ管理ユニット35および送受信パケット番 号待ち行列32および33との間にインタフェースを形成するのに適した論理回 路を含む。図には示されていないが、CPUインタフェースユニット30は、送 信割込み蓄積レジスタ、受信割込み蓄積レジスタ、MMU割込み蓄積レジスタお よび割込み発生回路を含む。各蓄積レジスタは割込みコードを蓄積するようにな っている。各蓄積レジスタの出力は割込み発生回路により読み出され、読出し出 力に応じてその発生回路は割込みを発生し指定の線38を通じてホストプロセッ サに供給する。より詳細に以下に述べるとおり、送受信割込み蓄積レジスタへの 割込みコードが送受信パケット番号待ち行列32および33から供給される。M MU割込み蓄積レジスタへの割込みコードはメモリ管理ユニット35から供給さ れる。割込み発生回路は特定の条件の下でホストプロセッサに各割込みを生ずる ようになっている。第1の条件は受信割込みを生ずるものであり、データパケッ ト受信後に媒体アクセス制御ユニットが受信ステータスバイトをバッファメモリ 34に書き込んだあとで生ずる。第2の条件は送信割込みを生ずるもの であり、媒体アクセス制御ユニットが一つまたはそれ以上の送信データパケット を送信したあとで生じ、バッファメモリにより多くの送信データパケットを蓄積 する時点にあたっている。第3の条件はMMU割込みを生ずるものであり、要求 された空きページがバッファメモリ6で利用可能になりパケット番号が送信デー タパケットに割り当てられたあと生ずる。ホストプロセッサの実行する下位レベ ルドライバが割込みを受信すると、そのドライバがホストプロセッサに割込みの 出所の決定を指示する。割込み発生の機構はあとでより詳細に述べる。 バッファメモリ34は複数のデータバイト蓄積位置を有するランダムアクセス メモリ(RAM)を含むのが好ましい。第1の実施例、すなわちメモリ内蔵のラ ンダムアクセスバッファメモリによる実施例では、メモリの総容量は例えば46 08バイトである。メモリ各ページが256バイトの容量を有するので、460 8バイトのメモリは18ページ分を形成する。図示の実施例においては、第7A 図の「アドレス変換テーブル」の実現のためにさらに144個の5ビット記憶位 置が、また第7C図の「パケット番号およびメモリページ割当て」表の実現のた めに18個の6ビット蓄積位置がそれぞれ必要になる。これら表の両方について より詳細に後述する。 第8A図を参照すると、バッファメモリ34内のデータパケットDTiまたはDRj の蓄積フォーマットが示してある。{000000000000}から{111111111111}の 範囲のリニアア ドレスで特定されるとおり、1つのデータパケットには、バッファメモリ34に 蓄積すべきデータとして最大8ページ分のデータバイトが含まれる。第8A図に 示した蓄積フォーマットによると、初めの2つのデータバイト蓄積位置は送受信 ステータスバイト用に指定されている。その次の2バイト蓄積位置はパケットの データバイトカウント用に指定されている。それに引き続く蓄積位置はすべてデ ータパケットのデータバイト蓄積用に指定されている。図示の実施例では、この データカウントは64バイトから1518バイトの範囲にある。 上述のとおり、これら実施例の媒体アクセス制御ユニットは、CSMA/CD プロトコルの実行に必要な制御動作のすべてを行う状態マシンを含む。一方、媒 体アクセス制御ユニットは通信媒体とインタフェースを形成し、また媒体アクセ ス制御ユニットはMACインタフェースユニット31と図示のとおりインタフェ ースを形成する。 MACインタフェースユニット31は、マルチプレクサM1,M3,M5、およ びM6を含み、MACバス39のアドレス線、データ線および制御線とバッファ メモリ34、メモリ管理ユニット35および送受信パケット番号待ち行列32お よび33との間にインタフェースを形成するのに適した論理回路を含む。また、 MACインタフェースユニット31はデータバス39と接続したデータパケット 蓄積レジスタ(図示してない)を含む。 図示の実施例では、送受信パケット番号待ち行列32お よび33は第1および第2の入力順出力型(FIFO)蓄積ユニットによりそれ ぞれ実現される。FIFOユニット32および33の各々は複数のパケット番号 蓄積位置を有する。この実施例では各FIFOユニットは18ビットの深さを有 する。しかし、他の実施例では、これらユニットの深さは特定の用途に応じて1 8ビットよりも大きくても小さくてもよい。第1の実施例では、各蓄積位置の長 さは5ビット分であるが、これは、バッファメモリ34内のメモリのページ総数 対応の18個のパケット番号の範囲をディジタル表示するのに十分である。 第7図には示されていないが、システムバス37からのデータ線はCPUイン タフェースユニット30を通って線41A,41B,41C,41Dおよび41 Eとして延び、第1のFIFO蓄積ユニット32のデータ入力、マルチプレクサ M2の第1の入力、マルチプレクサM4の第1の入力、マルチプレクサM5の第1 の入力およびマルチプレクサM6の第1の入力にそれぞれ接続される。同様に、 MACバス39からのデータ線はMACインタフェースユニット31を通って線 42A,42B,42C,42Dおよび42Eとして延び、第2のFIFO蓄積 ユニット33のデータ入力、マルチプレクサM1の第1の入力、マルチプレクサ M4の第2の入力、マルチプレクサM5の第2の入力およびマルチプレクサM6の 第2の入力にそれぞれ接続さる。図示していないが、CPUインタフェースユニ ット30には第1のリニアアドレス発生器が、MACインタフェー スユニット31には第2のリニアアドレス発生器がそれぞれ含まれている。第1 のリニアアドレス発生器をメモリ管理ユニット35と動作可能な状態で結合する ために、CPUインタフェースユニット30からの11ビットアドレス線43が マルチプレクサM3の第1の入力に接続されている。同様に、第2のリニアアド レス発生器をメモリ管理ユニット35と動作可能な状態で結合するために、11 ビットアドレス線44がMAC31から延びマルチプレクサM3の第2の入力に 接続される。図示してないが、従来の調停回路(図示してない)からの制御ライ ンがこの技術分野で周知の方法によりマルチプレクサM3,M4,M5およびM6の 制御入力に接続される。同様に、図示してないが、マルチプレクサM1は媒体ア クセス制御ユニットにより制御され、マルチプレクサM2はCPUインタフェー スユニットにより制御される。 ホストプロセッサ(CPU)から見ると、第1のFIFO蓄積ユニット32内 の各蓄積位置は論理的には通信コントローラの同じアドレスに位置する。同様に 、媒体アクセス制御装置から見ると、第2のFIFO蓄積ユニット33内の各蓄 積位置は論理的には通信コントローラの同じアドレスに位置する。一般に、FI FO蓄積ユニット32の蓄積位置は各パケット番号NTiの書込み先である第1の 挿入蓄積位置と、各パケット番号NTiの読出し元である第1の除去蓄積位置とを 含む。実際には、挿入および除去位置はFIFO蓄積ユニット32の実現の際に 用いたアドレスシ ステムのポインタで指示する。第1の挿入蓄積位置は、パケット番号をFIFO 蓄積ユニット32に書き込む際にホストプロセッサが進ませる。一方、第1の除 去蓄積位置は、FIFO蓄積ユニット32からパケット番号を読み出す際に媒体 アクセス制御ユニットが進める。このような構成により、パケット番号をホスト プロセッサによりFIFO蓄積ユニット32の挿入蓄積位置に書き込むことがで き、FIFO蓄積ユニット32に蓄積されたパケット番号を媒体アクセス制御ユ ニットにより選択的に読み出すことができる。FIFO蓄積ユニット32はFI FO蓄積ユニットにパケット番号が蓄積されていないときに「空き」信号を出す ポートも備えている。図示のとおり、この「空き」信号は線45からCPUイン タフェースユニット30の送信割込み蓄積レジスタおよびMACインタフェース ユニットの両方に伝送される。 同様に、第2のFIFO蓄積ユニット33の蓄積位置は、各パケット番号NRj の書込み先である第2の挿入蓄積位置と、上記各パケット番号読出し元である第 2の除去蓄積位置とを含む。FIFO蓄積ユニット33の挿入および除去位置は 上述のとおり上記アドレスシステムのポインタで指示される。この第2の挿入蓄 積位置はパケット番号NRjをFIFO蓄積ユニット33に書き込む際に媒体アク セス制御ユニットが進ませる。第2の除去蓄積位置もFIFO蓄積ユニット33 からのパケット番号の読出しの際にホストプロセッサが進ませる。このような構 成により、パケット 番号を媒体アクセス制御ユニットによりFIFO蓄積ユニットの蓄積位置に書き 込むことができ、除去蓄積位置に蓄積されたパケット番号をホストプロセッサに より選択的に読み出すことができる。FIFO蓄積ユニット32と同様に、FI FO蓄積ユニット33も、1つ以上のパケットを蓄積しているとき、「空きでな い」信号を線46から出すポートを備える。図示のとおり、この「空きでない」 信号はCPUインタフェースユニット30内の受信割込み蓄積レジスタに伝送さ れる。 第7図に示すとおり、FIFO蓄積ユニット32の出力は線47を通じてマル チプレクサM1の第2の入力に供給され、FIFO蓄積ユニット33の出力は、 線48Aおよび48をそれぞれ通じて、CPUインタフェースユニットおよびマ ルチプレクサM2の入力の両方に供給される。マルチプレクサM1およびM2の出 力は線49および50を通じてマルチプレクサM3の第1および第2の入力に供 給され、CPUインタフェースユニット30およびMACインタフェースユニッ ト31からそれぞれ延びる11ビットアドレス線43および44はマルチプレク サM3の入力に供給される。線51Aおよび51Bを通じて、マルチプレクサM3 の2つの出力はメモリ管理ユニットの2つの入力、すなわち図示のとおりアドレ スATiまたはARjのために、およびパケット番号NTiまたはNRjのために指定さ れた2つの入力に供給される。 要求RTiおよびRRjをメモリ管理ユニットに選択的に伝 送するために、マルチプレクサM4の出力とメモリ管理ユニット35の要求入力 ポートとの間にデータ線52が備えてある。付与されたパケット番号NTiおよび NRjをメモリ管理ユニットからホストプロセッサおよび媒体アクセス制御ユニッ トにそれぞれ発するために、図示のとおりデータ線53Aおよび53Bが設けて ある。ページ解放F(NTi)およびF(NRj)をメモリ管理ユニットに選択的に 伝送するために、マルチプレクサの出力とメモリ管理ユニットの解放入力ポート との間にデータ線54が設けてある。 ホストプロセッサおよび媒体アクセス制御ユニットに単一ポートバッファメモ リ34への選択的アクセスを与えるために、マルチプレクサM6の出力は線55 によりバッファメモリ34のデータポートに接続してある。メモリ管理ユニット の物理的出力は、図示のとおり線56によりバッファメモリ34のアドレス入力 ポートに供給される。 上述の構成において、ホストプロセッサはパケット番号NTiおよびNRjをマル チプレクサM2およびM3の選択的制御によりメモリ制御ユニット35に転送でき る。媒体アクセス制御ユニットはパケット番号NTiおよびNRjをマルチプレクサ M1およびM3の選択的制御によりメモリ制御ユニット35に転送できる。ウィン ドウWCPUおよびWMACへのリニアアドレスの転送はM3の選択的制御により行う 。 第7A図、第7B図および第7C図を参照してこの発明の第1の実施例のメモ リ管理ユニットの種々の機能的下位構成部分を次に述べる。 第7A図に示すとおり、第1の実施例のメモリ管理ユニット35はアドレス変 換ユニット60と、ページ割当て管理ユニット61と、パケット番号付与ユニッ ト62とを備える。メモリ管理ユニットおよびその機能的下位構成要素の機能お よび動作は、この発明の各実施例の内部におけるデータパケット蓄積期間中にホ ストプロセッサおよび媒体アクセス制御ユニットに要求される動作の説明から最 もよく理解される。 一般に、バッファメモリ34にデータパケットを蓄積するには、蓄積スペース 要求RTiまたはRRjをまず発生しなければならない。これら各要求は、(i)デ ータパケットの蓄積に必要なデータバイト蓄積位置のページ数(M)を特定し、 (ii)バッファメモリの中のM個の空きページの割当て対象となる特有のパケッ ト番号を要求する。要求が満たされると、付与されたパケット番号NTiまたはNRj がバス線53A,53Bから得られる。図示の実施例では、メモリ蓄積要求を 満たすためには、ページ割当てユニット61およびパケット番号付与ユニット6 2がいくつかの臨界的動作に協力的に係わる必要がある。 とくに、ページ割当て管理ユニット61はバッファメモリ34内の空きページ に関する情報を蓄積し、この情報を解放(すなわちF(NTi)、F(NRj)また は蓄積位置要求RTi,RRj)の発生時に更新できる。このページ割当て情報は第 7C図に示した型のテーブルに蓄積できる。上述のとおり、第1の実施例のバッ ファメモリは256個のデ ータバイト蓄積位置28ページ分を有する。したがって、バッファメモリの各ペ ージは図示のとおり0乃至17の範囲のCKでテーブルの1行目に表示してある 。CKの値は10進法で示してあるが、実際には、後述の説明から明らかになる とおり5ビットの2進数で表示される。 第7C図の2行目にはページ番号の下にそのページのステータスが示してある 。例えば、ページCKに空きがなくなると、テーブル記入位置の関連箇所にパケ ット番号がなくなる。一方、ページCKが空き状態にある場合は、第11,12 ,13ページについて図示のとおり空き表示またはフラグ「F」が記入される。 第7C図の3行目には特定のページを占めたデータパケットがテーブルの記入位 置へのパケット番号の記入により表示してある。例えば、データパケットDT0に はバッファメモリの中の6ページ、すなわち第0,1,2,9,10,15ペー ジが割り当てられているから、データパケット番号NTi=0が図示のとおり第0 ,1,2,9,10および15ページの列に記入してある。このように、このテ ーブルを参照するだけで、(i)バッファメモリ内のどのページが空きであるか 、(ii)任意の特定のメモリページにどんなデータパケット(パケット番号で表 示)が割り当てられたのかをすぐに判断できる。このテーブルの使用により、特 定のパケット番号に割り当てられたバッファメモリを解放することも可能である 。必要なことは、3行目で特定のパケット番号(例えばNTi=0)をサーチし、 このパケット番号の各発生点を除去し、除去 されたパケット番号の各々の上の2行目に空き表示「F」を挿入することだけで ある。 ホストプロセッサからのMページ分の空きページの要求がパケット番号付与ユ ニットに現われると、一連の動作が行われる。まず、パケット番号付与ユニット 62が「ページ要求」信号を発生し、線63を通じてページ割当て管理ユニット 61に伝送する。このページ要求信号に応答して、第7C図のテーブルの2行目 がサーチされ、ある利用可能なパケット番号への割当て用の空きページの有無が 判断される。ページ要求信号の時点で空きページが利用可能な場合は、データパ ケットDTiに利用可能なパケット番号をつけ、その番号を空きページの下のテー ブル3行目に書き込む。次にページ割当て管理ユニット61がパケット番号付与 ユニット62に線64を通じて「ページ要求受入」信号を伝送し、パケット番号 付与ユニット62はその信号を受けると、付与ずみのパケット番号にそのページ が割り当てられたとみなす。このページ割当て処理は各ページ要求について順次 に、すなわちページ要求受入れにより1ページずつ空き状態のMページ全部が割 り当てられるまで行われる。各空きページの割当てののち、付与ずみのパケット 番号がテーブルの3行目で割当てずみの空きページの下に書き込まれる。付与ず みのパケット番号に対するページ割当てMページ分が終ると、パケット番号付与 ユニット62は付与ずみのパケット番号NTiをデータバス線53Aに送出する。 この「有効な」パケット番号はCPUインタフェー スユニット30に伝送され、その中のMMU割込み蓄積レジスタに蓄積される。 このレジスタの内容はホストプロセッサにも読み出せる。 しかし、第7C図のテーブルの何回かにわたる順次サーチのあと現時点でバッ ファメモリに空き状態のMページがないと判断された場合は、ページ割当て管理 ユニット61が「ページ要求拒否」信号を発生しパケット番号付与ユニット62 に伝送する。これに応答してパケット番号付与ユニット62は「無効」パケット 番号をデータ線53Aに送出する。この無効パケット番号はCPUインタフェー スユニット30に伝送され、その中のMMU割込み蓄積レジスタに蓄積される。 上述のとおり、このレジスタは割込み発生回路に読み出され、この回路がその読 出し出力に応答してホストプロセッサへのMMU割込みを発生する。ホストプロ セッサはこの5ビットMMU割込み蓄積レジスタを読み出して、自らの発した要 求RTiの受入れが拒否されたと判断する。しかし、ホストプロセッサは送信デー タパケットの蓄積に十分なバッファ能力を備えているので、ページ割当て管理ユ ニット61は第7C図のテーブルの2行目(すなわちページステータス行)の順 次サーチを継続し、要求のあった空きページを1ページずつそれらページの解放 に伴って割り当てていく。各追加の空きページの割当てごとに「ページ要求受入 れ」信号が発生されパケット番号付与ユニット62に伝送される。パケット番号 付与ユニット62がM枚の空きページを割り当て終えたとみなすと、 このユニット62は付与ずみの(有効な)パケット番号をデータバス線53Aに 送出する。付与ずみのパケット番号はCPUインタフェースユニット30に伝送 されMMU割込みレジスタに蓄積される。上述のとおり、割込み発生ユニットは このレジスタを読み出し、その出力に応答してホストプロセッサへのMMU割込 みを発生し、ホストプロセッサに、MMU割込み蓄積レジスタを読み出させると ともに要求のあったバッファメモリスペースが利用可能であり蓄積レジスタ内の パケット番号に割り当てずみであることを認識させる。このパケット番号は、ホ ストプロセッサが送信データパケットをシステムメモリ内の送信待ち行列からバ ッファメモリ34内に保持中の送信待ち行列に伝送するのに使うことができる。 パケット番号が媒体アクセス制御ユニットに不要になると、これらパケット番 号に割り当てられていたページは、解放F(NTi)またはF(NRj)をパケット 番号とともにページ割当て管理ユニット61に伝送することにより解放できる。 この解放動作は、第7C図のテーブルの3行目の付与ずみパケット番号NTi,NRj の各々を除去し、各対応列の2行目に空き表示「F」を挿入するだけの動作で ある。 メモリ管理ユニット35の動作は、パケット番号およびバッファメモリ34内 の蓄積位置を求める媒体アクセス制御ユニットからの要求RRjを満たそうとす るときは異なってくる。パケット番号および既知の長さの送信データパケット用 の蓄積スペースを求めるホストプロセッサからの要 求RTiの場合と異なり、入来するデータパケットの長さは、 のプロトコルを実行する媒体アクセス制御ユニットには通常わからない。また、 データカウント情報の供給を伴うIEEE 802.3プロトコルを用いたネッ トワークでも、媒体アクセス制御ユニットは原理的にこの情報に依存することを 避ける。したがって、入来データパケットの受信の際には、メモリ蓄積要求のた めの代替処理を第1の実施例のメモリ管理ユニットが行う。この代替処理を次に 述べる。 媒体アクセス制御ユニットからのメモリ蓄積要求RRjが図示のとおりパケット 番号付与ユニット62に現われると、一連の動作が行われる。まず、「ページ要 求」信号が発生され、ページ付与管理ユニット61に伝送される。このページ要 求信号に応答して第7C図のテーブルの2行目がサーチされ、利用可能なパケッ ト番号用の空きページの有無が判断される。送信パケット要求の場合と同様に、 ページ要求信号の時点で利用可能な空きページがあれば入来データパケットDRj に利用可能なパケット番号が付与され、第7C図のテーブルの3行目の空きペー ジの下に書き込まれる。次に、ページ割当て管理ユニット61がパケット番号付 与ユニット62に「ページ要求受入れ」信号を伝送し、パケット番号付与ユニッ ト62はこの信号を受けて第1ページが付与ずみのパケット番号に割り当てられ たとみなす。処理のこの段階では、メモリ管理ユニットには、バッファメモリの 1ページで入来データパケットの蓄積に十分かど うかわからない。しかし、バッファ1ページで十分であると想定して、パケット 番号付与装置61は付与ずみのパケット番号NRjをデータ線53Bに送出する。 この付与ずみのパケット番号はMACインタフェースユニット31に伝送されパ ケット番号レジスタ(図示してない)に蓄積される。媒体アクセス制御ユニット はこのレジスタを読み出し、このパケット番号をデータバイトの第1ページをバ ッファメモリ34内の第1の割当てページにロードするのに用いる。パケットロ ーディングの処理は、変換ユニット60上のパケット番号およびアドレスを用い たリニアアドレス・物理アドレス変換を伴う。第1ページ(すなわち256バイ ト)対応のリニアアドレスだけが入来データパケットの第1ページへの書込みの ために発生されアドレス変換ユニットに供給されることに注意されたい。このア ドレス変換処理をより詳細に次に述べる。 入来データパケットの蓄積にバッファメモリのあと1ページ分が必要である場 合は、媒体アクセス制御ユニットはパケット番号付与ユニット62に追加のメモ リページを当初付与ずみのパケット番号に割り当てるよう2回目の要求を出す。 上述のページ割当て処理はページ要求信号をページ割当て管理ユニット61に再 び伝送することによって行う。第7C図のテーブルのサーチののち追加の空きペ ージが見出されればそのページが当初付与ずみのパケット番号に割り当てられ、 第7C図のテーブルのデータがアドレス変換ユニット60内のページ割当て情報 の更新に使われる。 次に、ページ要求受入れ信号がパケット番号付与ユニット62に伝送される。こ れに応答して、付与ずみのパケット番号が線53Bに再び送出され、MACイン タフェースユニット内のパケット番号蓄積レジスタに現われる。これに応答して 、媒体アクセス制御ユニットが入来データパケットの第2ページをバッファメモ リ34に書き込む。この動作は、アドレス変換ユニットに、付与ずみのパケット 番号と入来データパケット内のデータバイトの第2ページ対応の一組のリニアア ドレスとを供給するだけで達成できる。入来データパケットの蓄積に必要な追加 のページの各々について、追加ページ要求、ページ割当て、アドレス変換情報更 新、リニアアドレス発生およびパケット番号送出の上述の処理が行われる。十分 なページが割り当てられ入来データパケット全体の受信およびメモリ34への蓄 積が終ると、第7C図のデータパケットおよびページ割当てテーブルは完全とな り、このテーブルを使って、アドレス変換関係の情報が完全に更新される。この 段階において、媒体アクセス制御ユニットは付与ずみのパケット番号NRjを第2 のFIFO蓄積ユニット33の挿入蓄積位置に書き込む。このようにして、付与 ずみのパケット番号NRjがFIFO蓄積ユニット33からデータパケットアンロ ード期間中にホストプロセッサによって読み出されると、このパケット番号とそ のリニアアドレス全範囲が対応のデータパケットへのアクセスを、それがバッフ ァメモリに物理的に蓄積されている限り、保証する。次に、データパケットがバ ッフ ァメモリ34に蓄積ずみでアンロード可能であることをホストプロセッサに知ら せるために、ホストプロセッサへの受信割込みが上述のとおり自動的に発生され る。 しかし、上述のページ要求および割当て処理の期間中に空きページが得られな かった場合は、入来データパケットの受信は行われない。媒体アクセス制御ユニ ットが十分なバッファ能力を備えていないからである。この場合能力が十分にあ れば、バッファメモリの空きページが利用可能になるのを待つ間に入来データバ イト1ページ分をバッファ蓄積できる。空きページが得られなければ、ページ割 当て管理ユニット61が「ページ要求拒否」信号を生じ、パケット番号付与ユニ ット62に伝送する。これに応答して、無効パケット番号がデータ線53Bに送 出され、媒体アクセス制御ユニットが、不十分なバッファ蓄積スペースのために 「失われた」入来データパケット対応の付与ずみのパケット番号に割り当てられ たすべてのページを解放するために、空きF(NRj)をページ割当て管理ユニッ ト61に送出する。この解放動作は、第7C図のテーブルの3行目の付与ずみの パケット番号の各々を検出し、対応列の2行目に空き表示「F」を挿入するだけ の動作である。 第1の実施例のメモリ管理ユニットにおけるページ割当ておよびパケット番号 付与の機能および動作を上に述べてきたので、アドレス変換ユニットを次に述べ る。 一般に、アドレス変換ユニット60は特定のデータパケットにつき発生したリ ニアアドレスの各組をバッファメモ リ34の物理的アドレスの対応する組に変換する。重要なことは、その動作がホ ストプロセッサおよび媒体アクセス制御ユニットに完全に透視可能なやり方で行 われることである。このアドレス変換動作の実行のために、アドレス変換ユニッ ト60は各パケット番号(NTiまたはNRj)と任意の特定の時点における割当て ページとの間の関係に関する情報を必要とする。もちろん、この情報は静的でな く時間の経過とともに動的に変化する。例えば、パケット番号NTi=0が長い送 信データパケットに付与された時点ではこのパケット番号は8ページ(CK)の 割当てを受けているであろう。ところが、パケット番号NRj=0が短いデータパ ケットに付与された後続の時点では、このパケットへの割当てページは1ページ だけであろう。ページ割当ておよびパケット番号付与がこのように時間により変 動する性質がこの発明の動的ページ割当ておよび動的パケット番号付与の特徴で ある。 第7B図に図示したとおり、この図のアドレス変換テーブルは各有効パケット 番号とページ割当て管理ユニット61により割り当てられたページとの間の関係 に関する不可欠の情報を具体化したものである。このアドレス変換テーブルはメ モリ割当て期間中に第7C図の含む情報を使って同時に作成される。必要なデー タ転送機能を達成するために、書込み線65およびデータ線66が図示のとおり ユニット60および61の間に設けられている。 図示のとおり、アドレス変換テーブルは各パケット番号 につき1つの列、すなわち全部で18個の列を有する。初期状態では、0から1 7の範囲のこれらパケット番号は、上述のとおり、先着順に両方の型のパケット に割当てできる。図示のとおり、アドレス変換テーブルには、パケット内のデー タ1ページ(例えば256バイト)に各々が対応する8つの列がある。各データ パケットについて、バッファメモリに蓄積ずみであるか蓄積直前であるかに関ら ず、パケット番号が付与ずみであり、データパケットのデータの各ページがバッ ファメモリの同じページに蓄積される可能性はほとんどない。例えば、パケット 番号“0”を付与ずみの送信データパケットDT0を含むデータバイトは第0,1 ,2,9,10および15ページ(CK)に蓄積される。このテーブルの付与ず みのパケット番号をサーチすることにより、バッファメモリ内の物理的位置(す なわちCK)が簡単に判定される。 第6図および第7A図に示したとおり、各リニアアドレスは第1のリニアアド レス構成部分と第2のリニアアドレス構成部分とを有する。上述のとおり、メモ リ管理ユニット内の第1のリニアアドレス構成部分はデータパケット内の特定の データバイトのページを表示し、第2のリニアアドレス構成部分は特定のページ 内の特定のデータバイトの位置を表示する。この関係を用いて、アドレス変換ユ ニット60は、やはり2つの構成部分、すなわち物理的ページ位置CKである第 1の物理的アドレス構成部分A1′および物理的ページ位置CKの中の各バイトの 物理的位置であ る第2の物理的アドレス構成部分A2′をもつ物理的アドレスA′を発生する。 この処理は、送信データパケットについて、(i)パケット番号および第7B図 のアドレス変換テーブルの使用により、3ビットのリニアアドレス構成部分A1 をそのリニアアドレス構成部分A1割当てずみの5ビットの物理的アドレス構成 部分CKに「飛行中に」変換し、(ii)8ビットのリニアアドレス構成部分A2を 同時に出力に送って8ビット物理的アドレス構成部分A2′を生ずることによっ て達成される。処理の結果は13ビットの物理的アドレスATi′={CK,A2} である。ここでCKは上位5ビットを表示し、A2は下位8ビットを表示する。こ の13ビット物理的アドレスATi′は次にバッファメモリ34のアドレスポート に供給され対応データパケットのデータバイトの読出し書込みを容易にする。上 述のアドレス変換処理は各受信データパケットDRjについて同様に行われ、各リ ニアアドレスARj={A1,A2}は物理的アドレスARj′={CK,A2}に変換 される。 上述のこの発明の第1の実施例は、バッファメモリの一つまたはそれ以上の固 定長ページ(256バイトの)へのデータパケットのマッピングを完全に透視可 能でメモリ使用効率を高めたやり方で可能にすることを特徴とする。この手法は 、バッファメモリを単一チップ通信コントローラに備えることを必要とし、通信 コントローラ内の大容量のデータパケット待ち行列よりもメモリ利用効率を高め ることのほうに重要性があるような用途に好適である。この発 明の代替的な第2の実施例では、通信コントローラ内のデータパケット待ち行列 形成の高度化をメモリ利用効率を犠牲にして行うことが可能である。これは、バ ッファメモリ内の各ページの蓄積容量をメモリアクセスウィンドウWCPUおよび WMACのバイト長、すなわち第2の実施例の場合の2キロバイト、と等しくする だけで達成できる。次に、第9,9′,10,10A,10Bおよび10C図を 参照して、本発明の第2の実施例を説明する。 第9図および第9′図にはこの発明の第2の実施例によるバッファメモリアク セス処理が示してある。この第2の実施例におけるデータパケットの待ち行列形 成は第1の実施例の場合と同じである。しかし、パケット番号付与処理は、バッ ファメモリ内で単一の空きページが割当て用に利用できる限りパケット番号がデ ータパケットに付与される点において、第2の実施例では少し異なっている。そ のような空きページがあれば、利用可能なパケット番号にそのページが割り当て られ、そのパケット番号が以後バッファ蓄積スペースおよびパケット番号を要求 するデータパケットに割り当てられる。特定の長さのデータパケットの蓄積に十 分なバッファメモリを割り当てるために2つ以上のページ要求をメモリ管理ユニ ットが発生する必要はない。 第2の実施例におけるリニアアドレス発生は第1の実施例の場合と同じである 。リニアアドレス発生処理の目的は、ここでも、データパケットの長さを定義す る一組のリニアアドレスを発生するとともに、それらリニアアドレスを、 特定のパケット番号を付与されたデータパケットのメモリアクセスウィンドウWCPU またはWMACに対する書込みおよび読出しのために用いることである。 第9′図に示すとおり、第2の実施例におけるアドレス変換は一つの重要な点 において異なっている。すなわち、メモリアクセスウィンドウWCPUまたはWMAC に書き込まれまたはこれらウィンドウから読み出される各データパケットはバッ ファメモリの単一のページ内、すなわちこの例では2キロバイトの長さのページ 内に蓄積されようとしているか蓄積されている点である。このアドレス変換処理 の詳細を第2の実施例の通信コントローラに関連して次に述べる。 この発明の第2の実施例による通信コントローラ3′を第10図に示す。この 実施例の構成要素は、第1の実施例の単一チップ通信コントローラに関連して第 7図に示したものとすべて同一である。そのために、同一の構成要素は同一の参 照数字で示してある。第10図に示した明確な相違点は、バッファメモリ34′ が通信コントローラ3′に内蔵されてなく、第2の実施例の通信コントローラチ ップ3′とインタフェースを形成する外付けのICチップに実現されていること である。 第10A図はこの発明の第2の実施例のメモリ管理ユニットの機能的下位構成 要素を示す。図示のとおり、このメモリ管理ユニット35′は、アドレス変換ユ ニット60′と、メモリ割当て管理ユニット61′と、パケット番号付 与ユニット62′とを含み、これらはいずれも第7A図のメモリ管理ユニットに おける各対応ユニットと機能的に類似のものである。 パケット番号付与ユニット62′はホストプロセッサおよび媒体アクセス制御 ユニットから要求RTiおよびRRjをそれぞれ受け、それに応答してこの要求関連 のデータパケットのサーチおよび同パケットへの空きページ割当てをメモリ割当 て管理ユニット61′に行わせる。空きページがある場合は、第10C図のテー ブルの3行目に書き込んである利用可能なパケット番号にそのページが割り当て られる。このテーブルは、第7C図のテーブルと同様のやり方でメモリ割当て管 理ユニットに維持される。また、第10C図には、このテーブルによる各ページ 要求サーチの期間の空きページ特定を容易にするために、メモリの各空きページ を空き表示「F」で示してある。第10C図のテーブルは外付けバッファメモリ 34′に32ページを想定しているほかに、各パケット番号に物理的ページ位置 (すなわちCK)が1つだけ割り当てられている点において上述の実施例と大き く異なっている。この点は、データパケットの各々を割当てずみのバッファメモ リの1つのページに全部蓄積できるようにするという方針に沿ったものである。 ホストプロセッサがパケット番号付与ユニット62′に要求RTiを発すると、 このパケット番号付与ユニットはページ要求信号をメモリ割当て管理ユニット6 1′に送り、これに応答してこのユニット61′は最初の空き表示「F」 を見出すように第10C図のテーブルの2行目をサーチする。最初の空き表示「 F」が見出されると、その空き番号を記入した列と同じ列の3行目に利用可能な パケット番号を書き込む。空き表示は次に検出され、ページ要求受入れ信号がパ ケット番号付与ユニット61′に伝送される。これに応答して、パケット番号付 与ユニット61が付与ずみのパケット番号をデータ線53Aに送出し、これを通 じてパケット番号はCPUインタフェースユニット30内の送信割込み蓄積レジ スタに伝送される。ホストプロセッサはこの要求を直ちに読み出し付与ずみのパ ケット番号を得る。 メモリ割当て管理ユニット62′が第10C図のテーブルのサーチにおいてバ ッファメモリ34′内に空きページを全く見出さなかった場合は、ページ要求拒 否信号がパケット番号割当てユニット61′に送られ、これに応答してユニット 61′がインタフェースユニット30内の送信割込み蓄積レジスタに無効パケッ ト番号を送る。ホストプロセッサは、このレジスタを読み出して、バッファメモ リが送信データパケットの蓄積に現在使えないこと、したがってMMU割込みの 発生を待つ必要があることを確認する。ページ要求拒否信号の送信のあと、ペー ジ割当て管理ユニット62′は第10C図のテーブルの2行目のサーチを空き表 示を見出すまで継続する。空き表示が見出された時点で、利用可能なパケット番 号に対応のページが割り当てられ、パケット番号付与ユニットが付与ずみの(有 効な)パケット番号をデータ線53Aを通じてMMU割込み蓄積レ ジスタに送る。割込み発生器がこのレジスタを読み出し、それに応答してホスト プロセッサへのMMU割込みを発生し、バッファメモリ34′内のデータ蓄積ス ペース要求に対しパケット番号が付与されたことを知らせる。 媒体アクセス制御ユニットが要求RRjをパケット番号付与ユニット62′に発 した場合は、パケット番号付与ユニットがページ要求信号をメモリ割当て管理ユ ニット61′に送る。ページ割当てユニット61′は空きページをサーチし、そ れが見出されれば、要求RTiを満たしたのと同じやり方でページ割当てを行う。 その結果、パケット番号がMACインタフェースユニット31内の受信割込み蓄 積レジスタに送られ、媒体アクセス制御ユニットに読み出される。しかし、空き ページがなければ、メモリ割当て管理ユニットは空きページのサーチを継続せず 、したがって、入来データパケットは失われる。 第1の実施例のメモリ管理ユニットの場合と同様に、割当てずみのページの解 放は、ホストプロセッサまたは媒体アクセス制御ユニットからページ割当て管理 ユニット62′に、第7図の通信コントローラに関連して前述したとおりの対応 パケット番号と同期した解放F(NTi)、F(NRj)を送ることによって行う。 解放のあとは、バッファメモリ34′内の解放ずみの各ページは、第10C図の テーブルの各対応ページ書込み位置に空き表示「F」を保ち続ける。 データパケットウィンドウWCPUおよびWMACに対する書込みおよび読出しの際 は、リニアアドレスは上述のとお り物理的アドレスに変換しなければならない。アドレス変換ユニット60′で行 われるアドレス変換処理は第10B図のアドレス変換テーブルを用いる。このテ ーブルは機能的には第7B図のアドレス変換テーブルと類似である。必要なデー タ転送を達成するために、ユニット60′および61′の間に図示のとおり書込 み線65およびデータ線66を設ける。第10B図のテーブルのデータはすべて 第10C図のテーブルから得られたものであり、第10C図のテーブルはページ 割当てが新たに行なわれる度ごとのアドレス変換テーブルの更新、およびメモリ 割当て管理ユニット61′内のページ解放動作に使われる。 アドレス変換ユニット60′をインプリメントする手段としては、テーブルを 用いる代わりに、CK=NTiなどの単純な1対1恒等式をリニアアドレス・物理 的アドレス変換の達成のために使うことができる。この代替的手法は第10B図 のテーブルの使用を不要にし、第10C図のテーブルを第3行の除去を可能にし て著しく単純化する。 第10A図に示すとおり、各リニアアドレスATi(およびARj)は11ビット から成り、第2の実施例のメモリ管理ユニット内でデータパケットの中の特定の データバイトの物理的位置を表示する。バッファメモリ内のページはこれらリニ アアドレスでは特定されない。送信データパケットについては、アドレス変換処 理は、(i)パケット番号および第10Bのアドレス変換テーブル(または式CK =NTi)を用いてパケット番号NTiを「飛行中に」パケット 番号NTi付与ずみの5ビット物理的アドレス構成部分CKに変換し、(ii)11 ビットアドレス構成部分A2を表わす11ビットリニアアドレス構成部分ATiを 出力線56に同時に通過させることによって行う。出力として得られる16ビッ トの物理的アドレスATi′={CK,ATi}はバッファメモリ34のアドレスに 供給され、対応データパケットのバイトの書込みおよび読出しを容易にする。上 述のアドレス変換処理は受信データパケットDRjの場合、すなわち各11ビット のリニアアドレスARjを16ビットの物理的アドレスARj={CK,ARj}に変 換したのと同様に行われる。 上述の実施例の通信コントローラはそれぞれ送受信パケット番号待ち行列32 および33からの空き信号および非空き信号を検出してホストプロセッサへの送 信割込みおよび受信割込みを生ずる。この技術を用いて、送信パケット番号待ち 行列32全体が空きのときだけ送信割込みを発生し、受信パケット番号待ち行列 33に少なくとも1つのパケット番号があればいつでも受信割込みを発生する。 しかし、ある用途には、データパケット送信の度ごと、または特定の記録または 伝送中のデータパケット列のデータを構成する所定数(M)のデータパケット送 信の終了の度ごとに、送信割込みを発生することが望ましい場合または要求され る場合があろう。受信割込みの発生は、送信割込みと違いほとんどあらゆる用途 において、データパケットの受信ごとに求められる。これは、後続のデータパケ ット受信 がいつ起こるか、また実際にそれが起こるのかどうか不確かであるからである。 上述の柔軟な送信割込み発生機能のほかに、対応パケット番号のバッファ蓄積が 、送信ステータス監視動作用のシステムメモリ内のソフトウェアベースのパケッ ト番号待ち行列維持の必要を回避するために求められよう。この目的の達成のた めの送信割込み発生機構のいくつかを次に述べる。 第11図にこの発明の通信コントローラの第3の実施例を示す。この通信コン トローラ3″の主な構成要素はすべて第7図図示のものと同一である。第11図 に示したものの主要な相違点は、第1のパケット番号待ち行列32′が機能的に 独立なFIFO蓄積ユニット32A′を有し、このユニットが機能的に独立なF IFO蓄積ユニット32B′の挿入蓄積位置に接続されていることだけである。 送信パケット番号待ち行列32′の第1の除去位置はマルチプレクサM1の第1 の入力に線47′により接続されている。FIFO蓄積ユニット32B′の除去 蓄積位置は送信パケット番号待ち行列32′の除去位置を提供し、送信ステータ ス監視動作中に必要に応じてホストプロセッサにパケット番号を供給するために 、線70によりCPUインタフェースユニット30に接続される。媒体アクセス 制御ユニットへの送信割込みを発生するために(すなわち、送信データパケット のアンロードを始めるために)、FIFO蓄積ユニット32A′の「空きなし」 ポートは線45A′によりMACインタフェースユニット31に接続される。同 様 に、ホストプロセッサ(CPU)への送信割込みを発生するために、FIFO蓄 積ユニット32B′の「空きなし」ポートは線45B′によりCPUインタフェ ース30に接続される。 この発明のこの側面による送信割込み発生機構のより明確な理解のために、通 信コントローラ3″内のパケット番号待ち行列の実施例を示す第11A図を参照 されたい。送信パケット番号待ち行列32A′は、第11図に示した方法で構成 した一対のディスクリートなFIFO蓄積レジスタユニットとしてインプリメン トできるが、より効率の高い手法が第11A図に示してある。とくに、蓄積の深 さ18の単一のFIFO蓄積ユニットが、単一の挿入位置と第1および第2の除 去位置とをもつ送信パケット番号待ち行列を機能的にエミュレートするポインタ 制御システム72を用いてアドレスされる。図示のとおり、ポインタ制御システ ム72は、それぞれ割込み信号WP1Tと読出し信号RP1TおよびRP2Tとに応答 して、ポインタP1T,2TおよびP3Tを発生する。書込み信号WP1Tはホストプ ロセッサ(CPU)により発生され、ポインタP1Tを動かす(進める)ためにポ インタ制御ユニット72に供給される。この動作により、ポインタP1Tは各時間 ごとに挿入位置を指定(すなわちアドレス)し、それら位置で送信パケットロー ド動作の終了後ホストプロセッサにより各パケット番号NTiがFIFO蓄積ユニ ット71に書き込まれるようにすることができる。書込み信号RP2Tは媒体制御 ユニットにより発生 され、ポインタP2Tを動かすためにポインタ制御ユニット72に供給される。こ の動作により、ポインタP2Tは各瞬間ごとに第1の除去位置を指定し、第11図 図示のとおり各パケット番号の読出しおよびマルチプレクサM1への供給が行わ れるようにすることができる。各パケット番号が送信待機中の次のデータパケッ ト番号に対応していることに注目されたい。一方、読出し信号RP3Tはホストプ ロセッサにより発生され、ポインタP3Tの移動のためにポインタ制御ユニット7 2に供給される。この動作により、ポインタP3Tは各瞬間ごとに第2の除去位置 を指定し、図示のとおり各パケット番号NTi2TがCPUインタフェースユニ ット30に読み出されるようにすることができる。 パケット番号が送信待ち行列の第2の部分(すなわちポインタP2TおよびP3T の間)にあるとき「空きなし」信号を発生するために、演算ユニット73および 比較器ユニット74が備えてある。動作の際は、演算ユニット73がポインタPT3 およびPT2を比較し(すなわちδ2T=P3T−P2Tを計算する)、この値δ2Tを 比較器ユニット74に供給する。図示の実施例においては、ポインタP1T,P2T およびP3Tはいずれも5ビットのワードである。送信待ち行列の第2の部分が空 きでないことを示すδ2T≠0の場合は論理値「1」が発生し、それ以外の場合は 論理値「0」が発生する。比較器ユニット74の出力はCPUインタフェースユ ニット30の割込み発生回路75に供給される。比較器ユニット74の出力が論 理値「1」のときだけ、ホストプ ロセッサへの送信割込みが発生される。図示のとおり、第2の除去位置における パケット番号NTi2TがCPUインタフェースユニット30により読み出され る。 第11A図に示すとおり、受信パケット番号待ち行列33は蓄積の深さ18の 単一のFIFO蓄積ユニット80を含む点において従来型のものである。FIF O蓄積ユニット80は1つの挿入位置と、1つの除去位置と、1つの空きなし信 号ポートとを備える。ポインタ制御ユニット81は書込み信号WP1Rおよび読出 信号RP2Rにそれぞれ応答してポインタP1RおよびP2Rを生ずる。書込み信号W P1RはMACインタフェースユニット31により発生され、ポインタを動かす( すなわち進める)ためにポインタ制御ユニット81に供給される。この動作によ り、ポインタP1Rは各瞬間ごとに、挿入位置を指定し、各パケット番号NRjが媒 体アクセス制御ユニットによって受信パケットロード動作終了後にFIFO蓄積 ユニット80に書き込まれるようにすることができる。一方、読出信号RP2Rは ホストプロセッサにより発生され、ポインタP2Rを動かすためにポインタ制御ユ ニット81に供給される。この動作によって、ポインタP2Rは各瞬間ごとに、単 一の除去位置を指定し、各パケット番号がそこからマルチプレクサM2に供給さ れ第11図図示のとおりCPUインタフェースユニット30により読み出される ようにすることができる。それら各パケット番号がホストプロセッサによるアン ロードを待機中の次の受信データパケットに対応することに注目されたい。 パケット番号が受信パケット待ち行列の中(すなわち、ポインタP1RおよびP2R の間でアドレスされた位置)にあるとき「空きなし」信号を発生するために、 演算ユニット82および比較器ユニット83が備えられている。動作の際には、 演算ユニット82がポインタP2RおよびP1Rを比較し(すなわち、δ2R=P2R− P1Rを計算し)、この値δ2Rを比較器83に供給する。図示の実施例ではポイン タP1RおよびP2Rはともに5ビットのワードである。送信待ち行列の場合と同様 に、受信待ち行列が空きではないことを表わすδ2R≠であれば、論理値「1」が 発生され、それ以外の場合は論理値「0」が発生される。比較器83の出力は割 込み発生回路75に図示のとおり供給される。比較器83の出力が論理値「1」 のときだけ、ホストプロセッサへの受信割込みが発生される。図示のとおり、受 信待ち行列33の単一の除去位置におけるパケット番号NRj2RがCPUイン タフェースユニット30に供給され、ホストプロセッサに読出し可能な受信パケ ット番号蓄積レジスタ(図示してない)に蓄積される。 第11A図に示し上に述べてきた送信待ち行列構成により、各パケット番号に つき送信割込みが自動的に発生され、それら各パケット番号がホストプロセッサ に、システムメモリ内の発送ずみパケット番号{NTi}の列の蓄積を要すること なく、アクセス可能になる。 図示していないが、送信パケット番号待ち行列のポインタ制御システムは、第 11図に図示のとおり線45A′を 通じてMACインタフェースユニット31に供給される「空きなし」信号を発生 する上述の型の演算ユニットと比較器ユニットとを含む。 ホストプロセッサ割込み発生により大きい柔軟性を与え、とくに特定数のデー タパケットの送信後に送信割込みを選択的に発生するために、第11図および第 11A図の通信コントローラを第11B図に示すとおりさらに変形する。この変 形実施例において、第11B図の送信パケット番号待ち行列32′および受信パ ケット番号33は第11A図に示したものと同じであり、後述の送信パケット番 号待ち行列31″に軽微な変形を加えただけである。 より詳細に述べると、第11B図におけるFIFO蓄積ユニット71′の各蓄 積位置の長さは第11A図では5ビットであったのに対して6ビットである。対 応送信データパケットの送信ののち「送信割込み」の発生をコード化するために 、最上位から6番目のビットが供給される。図示の実施例では、CPUインタフ ェースユニット30′へのコード化パケット番号{NTi}の流れを生ずるために 、付与ずみの各5ビットのパケット番号NTiに、ホストプロセッサが割込み発生 ビット(例えば「1」)または割込み発生なしビット(例えば「0」)のいずれ かを付加する。送信割込み発生のためにどのパケット番号をコード化するかは、 例えば、各特定の記録または伝送すべきパケット列の既知の長さに基づいて決定 する。このように、送信メッセージが5つのデータパケットを含む場合は、5番 目の(す なわち最後の)データパケット番号NT4だけを特定のデータパケット列の送信の 終了とともに送信割込みの発生のためにコード化すればよい。この例では、送信 待ち行列33′に送出され蓄積されたパケット番号列は、例えば{000000,0000 01,000010,000011,100101}となる。パケット番号NT4の割込み発生ビットの 検出に伴ってホストプロセッサに発せられる送信割込みは、この特定のデータパ ケット列が送信されたことをホストプロセッサに知らせるものである。 第11B図に示すとおり、CPUインタフェースユニット30′もいくつかの 重要な点においてCPUインタフェースユニット30とは異なっている。まず、 最上位(MSB)から6番目のビットを比較する比較器ユニット85が備えられ 、「第2の除去位置」でのパケット番号NTi2Tの6番目のビットが割込み発 生表示の「1」かまたは「0」かを判断していることである。第6ビット比較器 出力からのパケット番号NTi2Tの6ビット全部がホストプロセッサにより読 出し可能である。比較器ユニット74および83の出力は図示のとおり割込み発 生器86に供給される。受信パケット番号待ち行列80の単一の除去位置から読 み出された5ビットのパケット番号NRj2Rもホストプロセッサに読出し可能 である。 CPUインタフェースユニット30′が、第2の部分の送信待ち行列内のパケ ット番号の第6ビットの中に割込み発生ビット(すなわち論理値「1」)を見出 すまで送信パ ケット番号待ち行列71′を順次にサーチできるようにするために、読出ポイン タ(P3)シーケンサ87が備えてある。図示のとおり、読出しポインタシーケ ンサは2つの入力、すなわち比較器74の出力および第6ビット比較器ユニット 85の出力の2つの供給を受ける。読出ポインタシーケンサ87の出力は論理O Rゲート88の第1の入力に供給される。送信ステータス判断のための読出し信 号RSTがORゲート88の第2の入力に供給される。ORゲート88の出力は読 出しパルス信号RP3Tであり、ポインタP3Tの動きの選択的制御のためにポイン タ制御ユニット72に供給される。 読出しポインタシーケンサ87は次のとおり動作する。このシーケンサ87の 出力は、(i)δ2Tが「0」に等しくない(送信待ち行列の第2の部分が空きで ないことを示す)とき、および(ii)第6ビット比較器ユニット85の出力が「 0」であるときだけ論理値「1」になる。このような条件の下では、読出しポイ ンタP3は送信パケット番号待ち行列71′を通じて順次に進む。この動作は、 読出しパルス信号RP3TをORゲート88によりポインタ制御ユニット72に順 次供給することによって達成する。この期間は、CPUインタフェースユニット 30′は送信ステータス読出し信号RSTを論理「0」に維持する。第6ビット比 較器85の出力が、ポインタP3指示中のパケット番号に割込み発生ビットのあ ることを示す「1」である場合は、読出しポインタシーケンサ87はシーケンス 動作を止 め、ホストプロセッサへの送信割込みが割込み発生ユニット86から発生される 。この状態におけるポインタP3の位置が割込みコード化を受けたパケット番号 読出し位置である第2の除去位置を定義し、バッファメモリ34内の対応データ パケットから、送信ステータスデータを読み出すのに使える。この送信割込みが 、特定の記録またはパケット列関連のデータパケットが支障なく送信されたこと の確実な表示であることに注目されたい。また、パケット番号待ち行列71′の 第2の部分が空きであるときはいつでもδ2T=0であり、したがって読出しポイ ンタシーケンサ87はシーケンス動作を止める。 送信待ち行列の発生の際にはパケット番号待ち行列71′の中の各パケット番 号の上位から6番目のビットだけを考慮するが、媒体アクセス制御ユニットはパ ケット番号NTi′の下位5ビットだけを考慮すればよい。したがって、この発明 のこの特定の実施例では、各パケット番号の第6ビットを、媒体アクセス制御ユ ニットはその動作中無視することができる。 この発明の第1,第2および第3の実施例の通信コントローラの詳細な説明を 完結させるために、媒体アクセス制御ユニットについて述べる。 媒体アクセス制御ユニット2は、それ自体が達成する通信制御機能についての 説明により最もよく説明できる。しかし、媒体アクセス制御ユニットの制御動作 の理解はCSMA/CDプロトコルをより完全に理解することによって 達成できる。 CSMA/CDプロトコルでは、通信媒体を通じて送出または伝送できる「デ ータパケット」の型は1つだけである。この機構におけるデータパケットの送信 フォーマットを第8B図に示す。図示のとおり、データパケット送信フォーマッ トは共通の通信チャネルに送出されたオクテット列から成る。 この送信フォーマットによると、7つのオクテットを通信チャネル経由でまず 送信する。これら7つのオクテットはプリアンブルとして作用し、各データステ ーションの媒体アクセス制御ユニットをデータパケット受信中か否かの判断のた めの「検出」モードに導く。次のオクテットはフレームデリミターの始まり(S FD)である。付に、データパケットの宛先アドレスを表示する2つまたは6つ のオクテットが順次送信される。各データステーションの媒体アクセス制御ユニ ットはこのデータを処理して、この宛名アドレスが自己のアドレスと同一か否か を判断する。同一でなければ各データステーションはアイドル状態に戻る。パケ ットの宛先のデータステーションではそのステーション内の媒体アクセス制御ユ ニットが後続のオクテットを次のとおり処理する。すなわち、次の2つまたは6 つのオクテットは送信元のアドレスを定義し、その媒体アクセス制御ユニットに より判断されて蓄積される。その次の2つのオクテットはデータパケットの長さ またはカウントを定義する。その後は、各後続オクテットはデータパケットの中 のバイトを含む。これらデータバイトの最後に4つのオクテットがパケットチェ ック(すなわちCRC)シーケンスとして送信される。 図示の実施例の通信コントローラの構成および機能を上に述べてきたので、こ の通信コントローラの動作をデータ送信および受信の両モードにおけるデータパ ケットのローディングおよびアンローディングに関連してここで述べるのが適切 であろう。この動作説明は第1,第2および第3の実施例に同様にあてはまるが 、第7図の通信コントローラを図示の便宜上選んで示してある。 第5A,7,8Aおよび11A図を参照して、送信パケットをホストプロセッ サによりバッファメモリ34にロードする動作を説明する。 第12A図に示すとおり、データパケットのロード動作の第1段階ではホスト プロセッサがメモリ管理ユニットからの特定数のページの割当てを要求する。こ の要求RTiは、要求ページ数が割り当てられ付与ずみのパケット番号がホストプ ロセッサに発せられるまで継続する。次に、付与ずみのパケット番号がメモリ管 理ユニットのパケット番号入力ポートに書き込まれる。次に、パケットバイトカ ウントがパケットウィンドウWCPUの第3および第4のバイト位置に書き込まれ る。次に、パケットDTiのデータバイトがシステムメモリ内の送信データ待ち行 列からコピーされウィンドウWCPUの第5のデータバイト蓄積位置を開始点とし て蓄積される。バッファメモリ34へのデータパケット のロード動作ののち、ホストプロセッサは送信データパケットのロードに用いた パケット番号を送信データパケット番号待ち行列32の蓄積位置に挿入する。ホ ストプロセッサはこのあと定常動作に戻り、送信割込みの発生まで、ロード動作 を済ませたばかりのパケット番号について何らの処理も行わない。 第12B図にはバッファメモリからの送信データパケットのアンロードに係わ る動作が示してある。媒体アクセス制御ユニットは、それ自身がデータパケット 受信モードにないときは、第1のFIFO蓄積ユニット(すなわち送信パケット 番号待ち行列)32の除去蓄積位置にパケット番号があればバッファメモリ34 からの送信データパケットをアンロードできる。この条件に合致するか否かを判 断するために、FIFO蓄積装置32′から線45経由でMACインタフェース ユニット31に伝送されてきた「空き」信号をチェックしてその値を決定する。 この値が論理値「0」であればFIFO蓄積ユニット32に少なくとも1つのパ ケット番号NTiがあり、「1」であればFIFO蓄積ユニットは空きであり送信 パケットアンロード動作は不可能である。これに応答して、媒体アクセス制御ユ ニットはFIFOユニット12の除去蓄積位置からパケット番号をまず読み出す 。このパケット番号はメモリ管理ユニットのパケット番号入力ポートに伝送され 、蓄積ずみのデータパケット対応の物理的アドレスを発生する。次に、メモリア クセスウィンドウWMAC内の第3および第4のバイト蓄 積位置のバイトカウントが媒体アクセス制御ユニットにより読み出され蓄積され る。このバイトカウントが、蓄積ずみのパケットのデータバイトの読出しのため に必要なリニアアドレスのリニア長を示す。次に、蓄積ずみのデータバイトがメ モリアクセスウィンドウWMACからバイトカウント指定の長さのリニアアドレス 発生により読み出される(コピーされる)。これらアンロードされたデータバイ トは通常は通信媒体経由で送信される。送信が支障なく行われれば、アンロード され送信されたデータパケットに割り当てられていたページを媒体アクセス制御 ユニットが解放する。代替的には、送信「通過」ステータスバイトをホストプロ セッサへのウィンドウWMACの第1および第2のバイト位置に書き込むこともで きる。 第1のFIFO蓄積ユニット32が空きであれば、この状態を表わす信号がユ ニット32からCPUインタフェースユニットに送られ、この信号がホストプロ セッサへの送信割込みの発生に用いられる。この割込みは、ホストプロセッサに 、システムメモリからの送信データパケットをバッファメモリにロードできるこ と、およびその時点に至る送信はすべて完結していることを知らせる作用をもつ 。 第13A図を参照して、バッファメモリ34への受信データパケットのロード 動作を述べる。入来データパケットが受信中であるとの表示があると、媒体アク セス制御ユニットはメモリ管理ユニットに対し割当メモリの最初のページおよび 付与パケット番号の要求RRjを発する。割当てに 支障があれば入来パケットは受信され得ない。割当てに支障がなければ、付与ず みのパケット番号は一時的に蓄積され、メモリアクセスウィンドウWMACにその 5番目のバイト位置を開始点として252バイトまでのデータバイトを書き込む のに使われる。後続の入来バイトがなければ、受信データ確認のために誤りチェ ッキング(CRC)コードが用いられ、その確認動作に基づき、受信ステータス バイトがメモリアクセスウィンドウWMACの第1および第2のバイト位置に書き 込まれる。また、バイトカウントがメモリアクセスウィンドウの第3および第4 のバイト位置に書き込まれる。最後に、受信パケット番号が第2のFIFO蓄積 ユニット33の挿入位置に書き込まれ、ホストプロセッサへの受信割込みが第2 のFIFO蓄積ユニット32から線46経由でCPUインタフェースユニット3 0に伝送されてきた「空きなし」信号により発生される。 後続の入来バイトが受信中であれば、メモリアクセス制御ユニットは、同じ付 与ずみのパケット番号を用いて、バッファメモリの第2の空きページの要求を出 す。この第2のページが割り当てられると、上記後続のデータバイトがその新し いページに書き込まれる。ページ要求および割当て処理とデータバイト蓄積処理 は、入来データパケットの蓄積のために、必要に応じて8回にわたり繰り返され る。受信データ(CRC経由)の有効性チェックおよび受信ステータスデータお よびバイトカウントデータのメモリアクセスウィンドウWMACの初めの四つのバ イト位置への書込 みのあと、パケット番号は第2のFIFO蓄積ユニット33の挿入位置に書き込 まれ、ホストプロセッサへの受信割込みが上述のとおり発生される。CRCが無 効であった場合は、あるいはいかなる蓄積要求も拒否された場合は、付与ずみの パケット番号関連の割当てページはすべて解放される。 第13B図を参照して受信データパケットのアンロード動作を次に述べる。受 信割込みを受けると、ホストプロセッサは第2のFIFO蓄積ユニット33の除 去位置からパケット番号を読み出す。受信パケット番号はマルチプレクサM2に も供給される。次に、受信ステータスデータがウィンドウWCPUの第1および第 2のバイト位置から読み出される。この受信ステータスデータに関連データパケ ットがアンロードに値することが示されている場合は、バイトカウントがウィン ドウWCPUの第3および第4のバイト位置から読み出され蓄積される。次に、バ ッファメモリ34の第5のバイト位置からこのバイトカウントの指示するバイト 位置に至るバイト位置からパケットのデータバイトが読み出される。ホストプロ セッサはそのあと解放コマンドF(NRj)を発し、パケット番号NRjへの割当て ページを解放する。 この発明の上述の実施例において、送信および受信パケット番号待ち行列の蓄 積ユニットはFIFO蓄積ユニット32および33で構成した。しかし、適宜変 形を加えた他の型の蓄積装置でも良好な性能を保って使うことができる ものと期待される。 上に図示し述べてきた特定の実施例はデータ通信技術の広い応用分野で有用で あるが、ここに開示したこの発明の諸変形はこの発明関係の技術分野の当業者に は想到されるであろう。それら変形はいずれも添付請求項記載のこの発明の範囲 および真意に含まれるものと解釈されるべきものである。
───────────────────────────────────────────────────── 【要約の続き】 号がパケット番号待ち行列に蓄積され、対応データパケ ットを蓄積した物理的アドレスを発生するための後続の 読出しに供される。ホストプロセッサが決定するデータ パケット送信の任意の所定回数の終了の度ごとにホスト プロセッサへの送信割込みを自動的に発生する機構も併 せて開示してある。この機構は第1および第2の除去位 置をもつ送信パケット番号待ち行列を利用する。この機 構は、各送信記録またはデータパケット列に関連したデ ータパケットの送信に伴って送信割込みを自動的に発生 できるので有利である。

Claims (1)

  1. 【特許請求の範囲】 1.プロセッサとの間にインタフェースを形成可能であるとともに通信媒体へ のアクセスのための制御手段を含む通信コントローラにおけるデータパケットバ ッファ方法であって、 (a)前記通信コントローラと動作可能状態で結合され複数のデータページ蓄 積位置を含むデータパケット蓄積手段を備える工程と、 (b)一つまたはそれ以上の前記データページ蓄積位置であって対応のパケッ ト番号で特定される前記データページ蓄積位置に蓄積すべきデータパケットにパ ケット番号を付与する工程と、 (c)前記データパケットを一つまたはそれ以上のデータページ蓄積位置に蓄 積する工程と、 (d)各々が一つの前記蓄積ずみのデータパケットに対応する一つまたはそれ 以上の前記パケット番号を蓄積できるパケット番号待ち行列を前記通信コントロ ーラの中で維持する工程と、 (e)前記パケット番号待ち行列の中に、前記工程(b)で蓄積ずみのデータ パケットに付与された前記パケット番号を蓄積する工程と、 (f)前記パケット番号待ち行列から前記パケット番号を読み出す工程と、 (g)前記データパケット蓄積手段から、工程(f)に おいて読みとられた前記対応パケット番号の特定する前記一つまたはそれ以上の データページ蓄積位置に蓄積ずみの前記データパケットを読み出す工程と を含むデータパケットバッファ方法。 2.工程(d)において、前記パケット番号待ち行列が、各パケット番号の前 記パケット番号待ち行列への挿入を可能にする挿入蓄積位置と各パケット番号の 前記パケット番号待ち行列からの除去を可能にする除去蓄積位置とを含む複数の 蓄積位置を有する請求項1の方法。 3.工程(e)が前記付与されたパケット番号を前記挿入蓄積位置に蓄積する ことを含み、前記工程(f)が前記パケット番号を前記除去蓄積位置から除去す ることを含む請求項2の方法。 4.工程(e)がさらに (1)前記データパケットの蓄積に必要なデータページ蓄積位置の数を決定す ることと、 (2)前記データパケット蓄積に必要な数の空きデータページ蓄積位置を割り 当てることと、 (3)前記割り当てられたデータページ蓄積位置の各々に前記パケット番号を 付与することと を含む請求項3の方法。 5.工程(c)がさらに (1)前記付与されたパケット番号を、各々が一つまたはそれ以上の前記デー タページ蓄積位置に対応するひと組の物理的アドレスに変換することと、 (2)前記物理的アドレスの組を、前記一つまたはそれ以上のデータページ蓄 積位置へのアクセスのために前記データパケット蓄積手段に供給することと を含み、工程(g)がさらに (3)前記付与されたパケット番号を、各々が一つまたはそれ以上の前記デー タページ蓄積位置に対応するひと組の物理的アドレスに変換することと、 (4)前記対応する物理的アドレスの組を、前記一つまたはそれ以上のデータ ページ蓄積位置へのアクセスのために前記データパケット蓄積手段に供給するこ とと を含む請求項3の方法。 6.前記通信媒体に転送されるべき一つまたはそれ以上のデータパケットを蓄 積できる第1のデータパケット待ち行列を前記プロセッサによる制御の下に維持 することをさらに含み、前記工程(c)がさらに (5)前記データパケットを、前記第1のデータパケット待ち行列から、前記 物理的アドレスの対応する組により特定された前記一つまたはそれ以上のデータ ページ蓄積位置に転送することを含む請求項5の方法。 7.工程(g)がさらに (6)一つの前記データパケットを、前記物理的アドレスの対応の組が特定す る前記一つまたはそれ以上のデータページ蓄積位置から前記通信媒体の転送のた めに前記制御ユニットに転送すること を含む請求項6の方法。 8.工程(g)のさらにあとに (1)前記物理的アドレスの組を前記データパケット蓄積手段に供給すること と、 (8)前記制御手段からの送信ステータスデータを前記物理的アドレスの対応 する組の特定する前記データページ蓄積位置に書き込むことと をさらに含む請求項7の方法。 9.工程(7)および(8)のあとに (9)前記物理的アドレスの組を前記データパケット蓄積手段に供給すること と、 (10)前記物理的アドレスの対応する組の特定する前記データページ蓄積位 置に書き込まれた前記送信ステータスデータを読み出すことと をさらに含む請求項8の方法。 10.前記通信媒体から転送されてきた一つまたはそれ以上のデータパケット を含む第2のデータパケット待ち行列を前記プロセッサの制御の下に維持するこ とをさらに含み、工程(c)がさらに (5)前記データパケットを、前記制御ユニットから、前記物理的アドレスの 対応する組の特定する一つまたはそれ以上のデータページ蓄積位置に転送するこ とを含む請求項5の方法。 11.工程(g)がさらに (6)一つの前記データパケットを、前記物理的アドレスの対応する組の特定 する一つまたはそれ以上のデータペ ージ蓄積位置から前記第2のデータパケット待ち行列に転送すること を含む請求項10の方法。 12.前記工程(c)のあとに (7)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (8)受信ステータスデータを、前記制御手段から前記物理的アドレスの対応 する組の指定する一つまたはそれ以上のデータページ蓄積位置に書き込むことと をさらに含む請求項11の方法。 13.工程(7)および(8)のあとに (9)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (10)前記物理的アドレスの対応する組の特定する一つまたはそれ以上のデ ータページ蓄積位置に書き込まれた前記受信ステータスデータを読み出すことと をさらに含む請求項12の方法。 14.工程(c)の期間中に (1)最小アドレス値から最大アドレス値の範囲のリニアアドレス値の一つの 組を、前記データパケット蓄積手段に蓄積すべきデータパケットの各々につき発 生することと、 (2)前記付与されたデータパケット番号および前記リニアアドレスの組を、 前記一つまたはそれ以上のデータページ蓄積位置を定義する前記物理的アドレス の対応する組の発生のために用いることと をさらに含む請求項3の方法。 15.工程(g)の期間中に (1)最小アドレス値から最大アドレス値の範囲のリニアアドレス値の一つの 組を、前記データパケット蓄積手段に蓄積すべきデータパケットの各々につき発 生することと、 (2)前記付与されたパケット番号および前記リニアアドレスの組を、前記一 つまたはそれ以上のデータページ蓄積位置の物理的位置を定義する前記物理的ア ドレスの対応する組の発生のために用いることと をさらに含む請求項3の方法。 16.前記通信媒体に転送すべき一つまたはそれ以上のデータパケットを蓄積 できる第1のデータパケット待ち行列を前記プロセッサによる制御の下に維持す ることを含み、工程(c)がさらに (1)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (2)前記データパケットを、前記第1のデータパケット待ち行列から前記物 理的アドレスの対応する組の特定する一つまたはそれ以上のデータページ蓄積位 置に転送することと を含み、工程(g)がさらに (3)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (4)一つの前記データパケットを、前記物理的アドレスの対応する組の指定 する一つまたはそれ以上のデータペ ージ蓄積位置から前記通信媒体への転送のために前記制御手段に転送することと を含む請求項15の方法。 17.工程(g)のあとに (5)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (6)前記制御手段からの送信ステータスデータを、前記物理的データの対応 する組の指定する一つまたはそれ以上の前記データページ蓄積位置に書き込むこ とと をさらに含む請求項16の方法。 18.工程(5)および(6)のあとに (7)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (8)前記物理的アドレスの対応する組の特定する前記一つまたはそれ以上の データページ蓄積位置に書き込まれた前記送信ステータスデータを読み出すこと と をさらに含む請求項17の方法。 19.前記通信媒体から受信した一つまたはそれ以上のデータパケットを蓄積 できる第2のデータパケット待ち行列を前記プロセッサによる制御の下に維持す ることを含み、工程(c)がさらに (1)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (2)前記制御ユニットからの前記データパケットを前記物理的アドレスの対 応する組の特定する前記一つまたは それ以上のデータページ蓄積位置に転送することと を含み、工程(g)が (3)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (4)一つの前記データパケットを、前記物理的アドレスの対応する組の指定 する一つまたはそれ以上のデータページ蓄積位置から前記第2のデータパケット 待ち行列に転送することと を含む請求項3の方法。 20.工程(g)のあとに (5)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (6)前記制御手段からの受信ステータスデータを前記物理的アドレスの対応 する組の指定する一つまたはそれ以上の前記データ蓄積位置に書き込むことと をさらに含む請求項19の方法。 21.工程(5)および(6)のあとに (7)前記物理的アドレスの対応する組を前記データパケット蓄積手段に供給 することと、 (8)前記物理的アドレスの対応する組の指定する前記一つまたはそれ以上の データページ蓄積位置に書き込まれた前記受信ステータスデータを読み出すこと と をさらに含む請求項20の方法。 22.プロセッサとの間にインタフェースを形成可能であるとともに通信媒体 へのアクセスのための制御手段を含 む通信コントローラにおけるデータパケットバッファ方法であって、 (a)前記通信コントローラと動作可能状態で結合され一つまたはそれ以上の 送信データパケットおよび一つまたはそれ以上の受信データパケットの蓄積のた めの複数のデータページ蓄積位置を含むデータパケット蓄積手段を備える工程と 、 (b)一つの前記送信データパケット対応の送信パケット番号待ち行列に各々 が蓄積された一つまたはそれ以上のパケット番号を蓄積できる送信パケット番号 待ち行列を前記通信コントローラ内に維持する工程と、 (c)一つの前記受信データパケット対応の受信パケット番号待ち行列に各々 が蓄積された一つまたはそれ以上のパケット番号を蓄積できる受信パケット番号 待ち行列を前記通信コントローラ内に維持する工程と、 (d)一つまたはそれ以上の前記データページ蓄積位置に蓄積される各送信デ ータパケットにパケット番号を付与し、前記対応の送信データパケットに付与さ れた前記パケット番号により前記一つまたはそれ以上のデータページ蓄積位置を 特定する工程と、 (e)前記対応の送信パケット番号の特定する一つまたはそれ以上のデータペ ージ蓄積位置に一つの前記送信データパケットを蓄積する工程と、 (f)前記蓄積された送信データパケットに付与された前記パケット番号を前 記送信パケット番号待ち行列に蓄積 する工程と、 (g)一つまたはそれ以上の前記データページ蓄積位置に蓄積される各受信デ ータパケットにパケット番号を付与し、前記対応の受信データパケットに付与さ れた前記パケット番号により前記一つまたはそれ以上のデータページ蓄積位置を 特定する工程と、 (h)前記対応の受信パケット番号の特定する一つまたはそれ以上のデータペ ージ蓄積位置に一つの前記受信データパケットを蓄積する工程と、 (i)前記蓄積された受信データパケットに付与された前記パケット番号を前 記受信パケット番号待ち行列に蓄積する工程と、 (j)一つの前記パケット番号を前記送信パケット番号待ち行列から読み出す 工程と、 (k)工程(i)で読み出された前記対応パケット番号の特定する前記一つま たはそれ以上のデータページ蓄積位置に蓄積された前記送信データパケットを前 記データパケット蓄積手段から読み出し、前記読み出された送信データパケット を前記制御手段に供給する工程と、 (l)一つの前記パケット番号を前記受信パケット番号待ち行列から読み出す 工程と、 (m)工程(l)で読み出された前記対応パケット番号の特定する一つまたは それ以上のデータページ蓄積位置に蓄積された前記受信データパケットを前記デ ータパケット蓄積手段から読み出し、前記読み出された受信データパケ ットを前記第1のプロセッサに供給する工程と を含むデータパケットバッファ方法。 23.工程(b)において、前記送信パケット番号待ち行列が前記送信パケッ ト番号待ち行列への各パケット番号の挿入を可能にする第1の挿入蓄積位置と前 記送信パケット番号待ち行列からの各パケット番号の除去を可能にする第1の除 去蓄積位置とを含む複数の蓄積位置を有し、工程(c)において、前記受信パケ ット番号待ち行列が前記受信パケット番号待ち行列への各パケット番号の挿入を 可能にする第2の挿入蓄積位置と前記受信パケット番号待ち行列からの各パケッ ト番号の除去を可能にする第2の除去蓄積位置とを含む複数の蓄積位置を有する 請求項22の方法。 24.工程(f)が前記付与されたパケット番号を前記第1の挿入蓄積位置に 蓄積することを含み、工程(j)が一つの前記パケット番号を前記第1の除去蓄 積位置から除去することを含む請求項23の方法。 25.工程(i)が前記付与されたパケット番号を前記第2の挿入蓄積位置に 蓄積することを含み、工程(l)が一つの前記パケット番号を前記第2の除去蓄 積位置から除去することを含む請求項24の方法。 26.工程(d)がさらに (1)前記送信データパケットの蓄積に必要なデータページ蓄積位置の数を決 定することと、 (2)前記必要な数の空きデータページ蓄積位置を前記送信データパケットの 蓄積のために割り当てることと、 (3)前記対応のパケット番号を前記割り当てられたデータページ蓄積位置の 各々に付与することと を含み、工程(g)がさらに (1)前記受信データパケットの蓄積に必要なデータページ蓄積位置の数を決 定することと、 (2)前記必要な数の空きデータページ蓄積位置を前記受信データパケットの 蓄積のために割り当てることと、 (3)前記対応のパケット番号を前記割り当てられたデータページ蓄積位置の 各々に付与することと を含む請求項25の方法。 27.工程(e)がさらに (1)前記付与されたパケット番号を、各々が前記一つまたはそれ以上のデー タページ蓄積位置に対応する第1の物理的アドレスの組に変換することと、 (2)前記対応の第1の物理的アドレスの組を、前記データパケット蓄積手段 に、前記一つまたはそれ以上のデータページ蓄積位置にアクセスするように供給 することとを含み、工程(h)がさらに (3)前記付与されたパケット番号を、各々が前記一つまたはそれ以上のデー タページ蓄積位置に対応する第2の物理的アドレスの組に変換することと、 (4)前記対応の第2の物理的アドレスの組を、前記データパケット蓄積手段 に、前記一つまたはそれ以上のデータページ蓄積位置にアクセスするように供給 することと を含む請求項26の方法。 28.前記通信媒体に転送されるべき一つまたはそれ以上の送信データパケッ トを蓄積できる送信データパケット待ち行列を前記プロセッサによる制御の下に 維持することをさらに含み、工程(e)がさらに (5)前記送信データパケットを、前記送信データパケット待ち行列から、前 記対応の第1の物理的アドレスの組の決定する前記一つまたはそれ以上のデータ ページ蓄積位置に転送すること を含む請求項27の方法。 29.工程(k)がさらに (6)前記対応の第1の物理的アドレスの組を前記データパケット蓄積手段に 供給することと、 (7)一つの前記送信データパケットを、前記対応の第1の物理的アドレスの 組の特定する前記一つまたはそれ以上のデータページ蓄積位置から、前記通信媒 体への転送のために前記制御手段に転送することと を含む請求項28の方法。 30.工程(k)がさらに (8)前記対応の第1の物理的アドレスの組を前記データパケット蓄積手段に 供給することと、 (9)前記制御手段からの送信ステータスデータを、前記対応の第1の物理的 アドレスの組の指定する一つまたはそれ以上の前記データページ蓄積位置に書き 込むことと を含む請求項29の方法。 31.工程(8)および(9)のあとに (10)前記対応の第1の物理的アドレスの組を前記データパケット蓄積手段 に供給することと、 (11)前記対応の第1の物理的アドレスの組の特定する一つまたはそれ以上 のデータページ蓄積位置に書き込まれた送信ステータスデータを読み出すことと をさらに含む請求項30の方法。 32.前記通信媒体から転送されてきた一つまたはそれ以上のデータパケット を蓄積できる受信データパケット待ち行列を前記プロセッサによる制御の下に維 持することをさらに含み、工程(h)がさらに (5)前記受信データパケットを、前記制御ユニットから、前記対応の第2の 物理的アドレスの組の特定する前記一つまたはそれ以上のデータページ蓄積位置 に供給することを含む請求項27の方法。 33.前記工程(k)がさらに (6)前記対応の第2の物理的アドレスの組を前記データパケット蓄積手段に 供給することと、 (7)一つの前記受信データパケットを、前記対応の第2の物理的アドレスの 組の特定する一つまたはそれ以上のデータページ蓄積位置から前記第2のデータ パケット待ち行列への転送のために前記プロセッサに転送することと を含む請求項32の方法。 34.工程(6)および(7)のあとに (8)前記対応の第2の物理的アドレスの組を前記データパケット蓄積手段に 供給することと、 (9)前記制御手段からの受信ステータスデータを前記対応の第2の物理的ア ドレスの組の特定する一つまたはそれ以上のデータページ蓄積位置に書き込むこ とと をさらに含む請求項33の方法。 35.工程(8)および(9)のあとに (10)前記対応の第2の物理的アドレスの組を前記データパケット蓄積手段 に供給することと、 (11)前記対応の第2の物理的アドレスの組の特定する前記一つまたはそれ 以上のデータページ蓄積位置に書き込まれた前記受信ステータスデータを読み出 すことと をさらに含む請求項34の方法。 36.前記付与されたパケット番号を前記対応の第1の物理的アドレスの組に 変換することが (1)最小アドレス値から最大アドレス値の範囲の第1のリニアアドレスの組 を、前記データパケット蓄積手段に蓄積すべき対応のデータパケットの各々につ いて発生することと、 (2)前記対応のパケット番号および前記対応の第1のリニアアドレスの組を 用いて、前記一つまたはそれ以上のデータページ蓄積位置の物理的位置を定義す る前記第1の物理的アドレスの組を発生することと を含む請求項27の方法。 37.前記付与されたパケット番号を前記対応の第2の物理的アドレスの組に 変換することが (1)最小アドレス値から最大アドレス値に至る範囲で、 互いに連続するアドレス値の各対が固定のアドレス増分をもつ値を有する第2の リニアアドレスの組を、前記データパケット蓄積手段に蓄積すべき対応の受信デ ータパケットの各々について発生することと、 (2)前記付与されたパケット番号および前記対応の第2のリニアアドレスの 組を用いて、前記一つまたはそれ以上のデータページ蓄積位置の物理的位置を定 義する前記第2の物理的アドレスの組を発生することと を含む請求項36の方法。 38.プロセッサとの間にインタフェースを形成できるとともに、一つまたは それ以上のデータパケット蓄積用の複数のデータページ蓄積位置を含むデータパ ケット蓄積手段と動作可能状態で結合された通信コントローラであって、 通信媒体にアクセスする制御手段と、 前記データパケット蓄積手段を、前記プロセッサおよび制御手段の一方または 両方によりアクセス可能なパケット番号を前記データパケット蓄積手段に蓄積さ れるべき各データパケットに付与することと、一つまたはそれ以上の前記データ ページ蓄積位置を前記蓄積されるべき前記データパケットの各々の蓄積のために 割り当てることとにより、管理するメモリ管理手段と、 前記プロセッサおよび前記データパケット蓄積手段の間で一つまたはそれ以上 のデータパケットを転送するとともに、前記データパケット蓄積手段および前記 制御手段の間で一つまたはそれ以上のデータパケットを転送するデータ パケット転送手段と、 各々が一つの蓄積されたデータパケットに対応する一つまたはそれ以上のパケ ット番号を蓄積するパケット番号待ち行列と、 前記パケット番号待ち行列と前記制御手段および前記プロセッサの少なくとも 一方との間でパケット番号を転送するとともに、前記メモリ管理手段を前記制御 手段および前記プロセッサの少なくとも一方との間でパケット番号を転送する手 段と を含む通信コントローラ。 39.前記パケット番号待ち行列が、前記パケット番号待ち行列への各パケッ ト番号の挿入を可能にする第1の挿入蓄積位置と前記パケット番号待ち行列から の各パケット番号の除去を可能にする第1の除去蓄積位置とを含む複数の蓄積位 置を有する請求項38の通信コントローラ。 40.前記メモリ管理手段が 前記データパケット蓄積に必要なデータページ蓄積位置の数を決定するデータ ページ決定手段と、 前記必要な数の空きのデータページ蓄積位置を前記データパケットに動的に割 り当てるデータページ割当て手段と、 前記割り当てられた空きのデータページ蓄積位置の各々に前記対応のパケット 番号を動的に割り当てるパケット番号割当て手段と を含む請求項39の通信コントローラ。 41.前記付与されたパケット番号の各々を、各々が一 つまたはそれ以上の前記データページ蓄積位置に対応し前記データパケット蓄積 手段への供給時に前記一つまたはそれ以上のデータページ蓄積位置へのアクセス を提供する一組の物理的アドレスに変換する変換手段 をさらに含む請求項39の通信コントローラ。 42.前記物理的アドレスの組の各々が前記対応のデータパケットの各々に関 するステータスデータの蓄積のための少なくとも1バイトを特定し、前記データ パケット転送手段が前記ステータスデータを(i)前記制御手段から前記少なく とも1バイトのメモリ蓄積へ、および(ii)前記少なくとも1バイトのメモリ蓄 積から前記プロセッサヘ選択的に転送できる請求項41の通信コントローラ。 43.(i)蓄積すべき前記対応のデータパケットに付与された前記データパ ケット番号および(ii)蓄積すべき前記対応のデータパケットの各々への一組の リニアアドレスビットに基づきひと組の物理的アドレスを発生する物理的アドレ ス発生手段をさらに含み、前記物理的アドレスの組の各々が一つまたはそれ以上 のデータページ蓄積位置に対応して前記データパケット蓄積手段への供給時に前 記一つまたはそれ以上のデータページ蓄積位置へのアクセスを提供する 請求項40の通信コントローラ。 44.前記リニアアドレスビットの組が、最小アドレス値から最大アドレス値 に至る範囲で、互いに連続するアドレス値の各対が固定のアドレス増分をもつ値 を有する請求 項43の通信コントローラ。 45.前記リニアアドレスビットの組の最上位から第1の所定数のビットが前 記データパケット蓄積手段の一つの前記データパケットページ位置に蓄積される パケットデータの1ページを表示し、前記リニアアドレスビットの組の最下位か ら第2の所定数のビットが前記データパケット蓄積手段の前記データパケットペ ージの各々に蓄積される前記パケットデータのページの各々に含まれるデータバ イトの範囲を表示する請求項44の通信コントローラ。 46.前記メモリ管理手段が 前記データページ割当て手段と動作可能な状態で結合され、前記対応のパケッ ト番号への割当てデータページ蓄積位置を、前記パケット番号との関連でなされ る解放要求に応答して解放する解放手段 をさらに含む請求項40の通信コントローラ。 47.前記データページ決定手段が、受信データパケットの入来データの受信 の進行中に、最初のページ要求および一つまたはそれ以上の追加のページ要求に 応答できる請求項40の通信コントローラ。 48.前記パケット番号待ち行列がFIFO蓄積装置を含む請求項38の通信 コントローラ。 49.前記メモリ管理手段が 前記データパケット蓄積手段の中の空きデータページ蓄積位置を前記データパ ケットの蓄積のために動的に割り当てるデータページ割当て手段と、 前記対応のパケット番号を前記割り当てられた空きのデータページ蓄積位置に 動的に付与するパケット番号付与手段と を含む請求項38の通信コントローラ。 50.(i)蓄積すべき前記対応のデータパケットに付与された前記データパ ケット番号および(ii)対応の前記蓄積すべきデータパケットの各々についての 一組のリニアアドレスビットに基づき一組の物理的アドレスを発生する物理的ア ドレス発生手段をさらに含み、前記物理的アドレスの組の各々が一つまたはそれ 以上のデータページ蓄積位置に対応して前記データパケット蓄積手段への供給時 に前記一つまたはそれ以上のデータページ蓄積位置へのアクセスを提供する 請求項49の通信コントローラ。 51.前記リニアアドレスビットの組が最小アドレス値から最大アドレス値の 範囲にありアドレス値の連続する各対の間が固定のアドレス増分である値を有す る請求項50の通信コントローラ。 52.前記リニアアドレスビットの組の最上位から第1の所定数のビットが前 記データパケット蓄積手段の一つの前記データパケットページ位置に蓄積される パケットデータの1ページを表示し、前記リニアアドレスビットの組の最下位か ら第2の所定数のビットが前記データパケット蓄積手段の前記データパケットペ ージの各々に蓄積される前記パケットデータのページの各々に含まれるデータバ イト の範囲を表示する請求項51の通信コントローラ。 53.前記メモリ管理手段が 前記データページ割当て手段と動作可能な状態で結合され、一つの前記パケッ ト番号への割当てデータページを、前記パケット番号との関連でなされる解放要 求に応答して解放する解放手段を さらに含む請求項52の通信コントローラ。 54.(i)蓄積すべき前記対応のデータパケットに付与された前記データパ ケット番号および(ii)対応の前記蓄積すべきデータパケットの各々についての 一組のリニアアドレスビットに基づき一組の物理的アドレスを発生する物理的ア ドレス発生手段をさらに含み、前記物理的アドレスの組の各々が一つまたはそれ 以上のデータページ蓄積位置に対応して前記データパケット蓄積手段への供給時 に前記一つまたはそれ以上のデータページ蓄積位置へのアクセスを提供する 請求項40の通信コントローラ。 55.前記リニアアドレスビットの組が最小アドレス値から最大アドレス値の 範囲にありアドレス値の連続する各対の間が固定のアドレス増分である値を有す る請求項43の通信コントローラ。 56.前記リニアアドレスビットの組の最上位から第1の所定数のビットが前 記データパケット蓄積手段の一つの前記データパケットページ位置に蓄積される パケットデータの1ページを表示し、前記リニアアドレスビットの組の 最下位から第2の所定数のビットが前記データパケット蓄積手段の前記データパ ケットページの各々に蓄積される前記パケットデータのページの各々に含まれる データバイトの範囲を表示する請求項44の通信コントローラ。 57.プロセッサとの間でインタフェースを形成可能でありデータパケット蓄 積手段と動作可能な状態で結合できるとともに、一つまたはそれ以上の送信デー タパケットおよび一つまたはそれ以上の受信データパケットを蓄積する複数のデ ータページ蓄積位置を含む通信コントローラであって、 通信媒体にアクセスする制御ユニットと、 前記データパケット蓄積手段に蓄積される前記送信および受信データパケット の各々に前記プロセッサおよび前記制御ユニットからアクセス可能なパケット番 号を付与するとともに、蓄積されるべき前記送信データパケットおよび受信デー タパケットの各々に一つまたはそれ以上のデータページ蓄積位置を割り当てるこ とによって前記データパケット蓄積手段を管理するメモリ管理手段と、 一つまたはそれ以上の前記送信データパケットを前記プロセッサと前記データ パケット蓄積手段との間および前記データパケット蓄積手段と前記制御ユニット との間で転送するとともに、一つまたはそれ以上の前記受信データパケットを前 記制御ユニットと前記データパケット蓄積手段との間および前記データパケット 蓄積手段と前記プロセッサとの間で転送するデータパケット転送手段と、 一つまたはそれ以上のパケット番号を、前記データパケット蓄積手段に蓄積さ れた一つの送信データパケットに前記パケット番号の各々が対応する形で蓄積す る送信パケット番号待ち行列と、 一つまたはそれ以上のパケット番号を、前記データパケット蓄積手段に蓄積さ れた一つの受信データパケットに前記パケット番号の各々が対応する形で蓄積す る受信パケット番号待ち行列と、 パケット番号を前記プロセッサと前記メモリ管理ユニットとの間で転送し、パ ケット番号を前記プロセッサと前記送信パケット番号待ち行列との間で転送し、 パケット番号を前記制御ユニットと前記送信パケット番号待ち行列との間で転送 し、パケット番号を前記制御ユニットと前記メモリ管理手段との間で転送し、パ ケット番号を前記制御ユニットと前記受信パケット番号待ち行列との間で転送し 、パケット番号を前記受信パケット番号待ち行列と前記プロセッサとの間で転送 するパケット番号転送手段と を含む通信コントローラ。 58.前記送信パケット番号待ち行列が、前記送信パケット番号待ち行列への 各パケット番号の挿入を可能にする第1の挿入蓄積位置と前記送信パケット待ち 行列からの各パケット番号の除去を可能にする第1の除去蓄積位置とを含む複数 の蓄積位置を有し、前記受信パケット番号待ち行列が、前記受信パケット番号待 ち行列への各パケット番号の挿入を可能にする第2の挿入蓄積位置と前記受信パ ケッ ト待ち行列からの各パケット番号の除去を可能にする第2の除去蓄積位置とを含 む複数の蓄積位置を有する請求項57の通信コントローラ。 59.前記送信パケット番号待ち行列が第1のFIFO蓄積装置を有し、前記 受信パケット番号待ち行列が第2のFIFO蓄積装置を有する請求項58の通信 コントローラ。 60.前記メモリ管理手段が 前記データパケットの蓄積に必要なデータページの数を決定するデータページ 決定手段と、 前記必要数の空きデータページ蓄積位置を前記データパケットに動的に割り当 てるデータページ割り当て手段と、 前記対応のパケット番号を前記割り当てられた空きデータページ蓄積位置に動 的に付与するパケット番号付与手段と を含む請求項58の通信コントローラ。 61.前記付与されたパケット番号の各々を、各々が一つまたはそれ以上の前 記データページ蓄積位置に対応し前記データパケット蓄積手段への供給時に前記 一つまたはそれ以上のデータページ蓄積位置へのアクセスを提供する一組の物理 的アドレスに変換する変換手段 をさらに含む請求項59の通信コントローラ。 62.前記物理的アドレスの各々が前記対応のデータパケットの各々に関する ステータスデータの蓄積のための少なくとも1バイトを特定し、前記データパケ ット転送手段が前記ステータスデータを(i)前記制御ユニットから前 記少なくとも1バイトのメモリ蓄積へ、および(ii)前記少なくとも1バイトの メモリ蓄積から前記プロセッサへ選択的に転送できる請求項61の通信コントロ ーラ。 63.(i)蓄積すべき前記対応のデータパケットに付与された前記データパ ケット番号、および(ii)蓄積すべき前記対応のデータパケットの各々への一組 のリニアアドレスビットに基づき一組の物理的アドレスを発生する物理的アドレ ス発生手段をさらに含み、前記物理的アドレスの組の各々が一つまたはそれ以上 のデータページ蓄積位置に対応して前記データパケット蓄積手段への供給時に前 記一つまたはそれ以上のデータページ蓄積位置へのアクセスを提供する 請求項58の通信コントローラ。 64.前記リニアアドレスビットの組が最小アドレス値から最大アドレス値に 至る範囲で、互いに連続するアドレス値の各対が固定のアドレス増分をもつ値を 有する請求項63の通信コントローラ。 65.前記リニアアドレスビットの組の最上位から第1の所定数のビットが前 記データパケット蓄積手段の一つの前記データパケットページ位置に蓄積される パケットデータの1ページを表示し、前記リニアアドレスビットの組の最下位か ら第2の所定数のビットが前記データパケット蓄積手段の前記一つのデータパケ ットページに蓄積される前記パケットデータのページの各々に含まれるデータバ イトの範囲を表示する請求項64の通信コントローラ。 66.前記メモリ管理手段が 前記データページ割当て手段と動作可能な状態で結合され、一つの前記パケッ ト番号への割当てデータページを、前記パケット番号との関連でなされる解放要 求に応答して解放する解放手段 をさらに含む請求項60の通信コントローラ。 67.前記データページ決定手段が、受信データパケットの入来データの受信 の進行中に、最初のページ要求および一つまたはそれ以上の追加のページ要求に 応答できる請求項60の通信コントローラ。 68.前記パケット番号待ち行列がFIFO蓄積装置を含む請求項57の通信 コントローラ。 69.前記メモリ管理手段が 前記データパケット蓄積手段の中の空きデータページ蓄積位置を前記データパ ケットの蓄積のために動的に割り当てるデータページ割当て手段と、 前記対応のパケット番号を前記割り当てられた空きのデータページ蓄積位置に 動的に付与するパケット番号付与手段と を含む請求項57の通信コントローラ。 70.(i)蓄積すべき前記対応のデータパケットに付与された前記データパ ケット番号、および(ii)対応の前記蓄積すべきデータパケットの各々について の一組のリニアアドレスビットに基づき一組の物理的アドレスを発生する物理的 アドレス発生手段をさらに含み、前記物理的アド レスの組の各々が一つまたはそれ以上のデータページ蓄積位置に対応して前記デ ータパケット蓄積手段への供給時に前記一つまたはそれ以上のデータページ蓄積 位置へのアクセスを提供する 請求項69の通信コントローラ。 71.前記リニアアドレスビットの組が最小アドレス値から最大アドレス値の 範囲にありアドレス値の連続する各対の間が固定のアドレス増分である値を有す る請求項70の通信コントローラ。 72.前記リニアアドレスビットの組の最上位から第1の所定数のビットが前 記データパケット蓄積手段の一つの前記データパケットページ位置に蓄積される パケットデータの1ページを表示し、前記リニアアドレスビットの組の最下位か ら第2の所定数のビットが前記データパケット蓄積手段の前記データパケットペ ージの各々に蓄積される前記パケットデータのページの各々に含まれるデータバ イトの範囲を表示する請求項71の通信コントローラ。 73.前記メモリ管理手段が 前記データページ割当て手段と動作可能な状態で結合され、一つの前記パケッ ト番号への割当てデータページを、前記パケット番号との関連でなされる解放要 求に応答して解放する解放手段を さらに含む請求項72の通信コントローラ。 74.プロセッサとの間でインタフェースを形成できるとともに一つまたはそ れ以上の送信データパケット蓄積用 の複数のデータページ蓄積位置を含むデータパケット蓄積手段と動作可能状態で 結合できる通信コントローラであって、 通信媒体にアクセスする制御手段と、 一つまたはそれ以上のパケット番号を、前記データパケット蓄積手段に蓄積さ れた一つの送信データパケットに各々が対応する形で蓄積するとともに、前記プ ロセッサによるパケット番号の書込みを受ける挿入蓄積位置とパケット番号の読 出しを行う第1および第2の除去蓄積位置とを含み、前記第1の除去蓄積位置に おける各パケット番号の読出しおよび前記制御手段への供給が可能であり、前記 第2の除去蓄積位置における各パケット番号の読出しおよび前記プロセッサへの 供給が可能である送信パケット番号待ち行列と を含む通信コントローラ。 75.前記送信パケット番号待ち行列が一つのパケット番号を各々が蓄積可能 な複数の蓄積位置を有し、前記送信パケット番号待ち行列が 前記挿入蓄積位置と前記第1および第2の除去蓄積位置にアドレスするポイン タの位置を制御するポインタ制御手段と、 前記第1および第2の除去蓄積位置の間に蓄積される少なくとも一つのパケッ ト番号を表わす信号を発生する信号発生手段と をさらに含む請求項74の通信コントローラ。 76.前記送信パケット番号待ち行列の中の前記蓄積位置の各々が送信割込み 発生または送信割込み不発生のためにコード化された少なくとも1ビットを有す るパケット番号を蓄積でき、 前記第2の除去蓄積位置をアドレスするポインタを一つの前記送信割込み発生 ビットが見出されるまで順次に動かすとともに前記送信割込み発生ビットの蓄積 された蓄積位置で前記ポインタを止めるポインタシーケンス手段と、 前記割込み発生ビットの各々が前記送信パケット番号待ち行列の中に見出され たときは前記プロセッサへの送信割込みを発生する送信割込み発生手段と をさらに含む請求項75の通信コントローラ。 77.前記プロセッサおよび前記制御手段によりアクセス可能なパケット番号 を前記データパケット蓄積手段に蓄積すべき前記送信データパケットの各々に付 与し、一つまたはそれ以上のデータページ蓄積位置を蓄積すべき前記送信データ パケットの各々に割り当てることにより前記データパケット蓄積手段を管理する メモリ管理手段 をさらに含む請求項74の通信コントローラ。
JP4511938A 1991-04-30 1992-04-28 通信ネットワークのデータステーション内のデータバッファ方法および装置 Pending JPH08508592A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/693,637 US5313582A (en) 1991-04-30 1991-04-30 Method and apparatus for buffering data within stations of a communication network
US693,637 1991-04-30
PCT/US1992/003502 WO1992020028A1 (en) 1991-04-30 1992-04-28 Method and apparatus for buffering data within stations of a communication network

Publications (1)

Publication Number Publication Date
JPH08508592A true JPH08508592A (ja) 1996-09-10

Family

ID=24785487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4511938A Pending JPH08508592A (ja) 1991-04-30 1992-04-28 通信ネットワークのデータステーション内のデータバッファ方法および装置

Country Status (6)

Country Link
US (2) US5313582A (ja)
EP (1) EP0582666B1 (ja)
JP (1) JPH08508592A (ja)
CA (1) CA2105866C (ja)
DE (1) DE69229473T2 (ja)
WO (1) WO1992020028A1 (ja)

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5452289A (en) * 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
US5796976A (en) * 1993-05-04 1998-08-18 Digital Equipment Corporation Temporary storage having entries smaller than memory bus
US6298371B1 (en) * 1993-07-08 2001-10-02 Bmc Software, Inc. Method of dynamically adjusting NCP program memory allocation of SNA network
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
US5502719A (en) * 1994-10-27 1996-03-26 Hewlett-Packard Company Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US5805924A (en) * 1994-11-08 1998-09-08 Stoevhase; Bent Method and apparatus for configuring fabrics within a fibre channel system
US5793978A (en) * 1994-12-29 1998-08-11 Cisco Technology, Inc. System for routing packets by separating packets in to broadcast packets and non-broadcast packets and allocating a selected communication bandwidth to the broadcast packets
US5867666A (en) * 1994-12-29 1999-02-02 Cisco Systems, Inc. Virtual interfaces with dynamic binding
JP3464836B2 (ja) * 1995-01-19 2003-11-10 富士通株式会社 記憶装置のメモリ管理装置
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
US5838915A (en) * 1995-06-21 1998-11-17 Cisco Technology, Inc. System for buffering data in the network having a linked list for each of said plurality of queues
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US6097718A (en) * 1996-01-02 2000-08-01 Cisco Technology, Inc. Snapshot routing with route aging
US6147996A (en) 1995-08-04 2000-11-14 Cisco Technology, Inc. Pipelined multiple issue packet switch
US5748612A (en) * 1995-08-10 1998-05-05 Mcdata Corporation Method and apparatus for implementing virtual circuits in a fibre channel system
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US6182224B1 (en) 1995-09-29 2001-01-30 Cisco Systems, Inc. Enhanced network services using a subnetwork of communicating processors
US6917966B1 (en) 1995-09-29 2005-07-12 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
US7246148B1 (en) 1995-09-29 2007-07-17 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US5592160A (en) * 1995-10-26 1997-01-07 Hewlett-Packard Company Method and apparatus for transmission code decoding and encoding
US5784559A (en) * 1995-11-06 1998-07-21 Sun Microsystems, Inc. Full duplex flow control for ethernet networks
CA2216533C (en) * 1995-12-19 2002-05-07 Motorola, Inc. Method and apparatus for rate governing communications
US6091725A (en) 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6035105A (en) * 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US5758050A (en) * 1996-03-12 1998-05-26 International Business Machines Corporation Reconfigurable data storage system
US6308148B1 (en) 1996-05-28 2001-10-23 Cisco Technology, Inc. Network flow data export
US6243667B1 (en) 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US5818844A (en) * 1996-06-06 1998-10-06 Advanced Micro Devices, Inc. Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
US6212182B1 (en) 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US6434120B1 (en) * 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US6304546B1 (en) 1996-12-19 2001-10-16 Cisco Technology, Inc. End-to-end bidirectional keep-alive using virtual circuits
US6185641B1 (en) 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US5916309A (en) * 1997-05-12 1999-06-29 Lexmark International Inc. System for dynamically determining the size and number of communication buffers based on communication parameters at the beginning of the reception of message
US6046817A (en) * 1997-05-12 2000-04-04 Lexmark International, Inc. Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer
US6356530B1 (en) 1997-05-23 2002-03-12 Cisco Technology, Inc. Next hop selection in ATM networks
US6122272A (en) * 1997-05-23 2000-09-19 Cisco Technology, Inc. Call size feedback on PNNI operation
US6487202B1 (en) 1997-06-30 2002-11-26 Cisco Technology, Inc. Method and apparatus for maximizing memory throughput
US5961606A (en) * 1997-06-30 1999-10-05 Sun Microsystems, Inc. System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US6078590A (en) 1997-07-14 2000-06-20 Cisco Technology, Inc. Hierarchical routing knowledge for multicast packet routing
US5918074A (en) * 1997-07-25 1999-06-29 Neonet Llc System architecture for and method of dual path data processing and management of packets and/or cells and the like
US6330599B1 (en) 1997-08-05 2001-12-11 Cisco Technology, Inc. Virtual interfaces with dynamic binding
US6212183B1 (en) 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
US6157641A (en) * 1997-08-22 2000-12-05 Cisco Technology, Inc. Multiprotocol packet recognition and switching
US6512766B2 (en) 1997-08-22 2003-01-28 Cisco Systems, Inc. Enhanced internet packet routing lookup
US6035335A (en) * 1997-08-26 2000-03-07 International Business Machines Corporation Optimistic, eager rendezvous transmission system and combined rendezvous system for message processing, and related data structures
US6178174B1 (en) 1997-08-26 2001-01-23 International Business Machines Corporation Optimistic, eager rendezvous transmission mode and combined rendezvous modes for message processing systems
US6031624A (en) * 1997-09-08 2000-02-29 Lexmark International, Inc. Method and apparatus for adaptive data buffering in a parallelized printing system
US6343072B1 (en) 1997-10-01 2002-01-29 Cisco Technology, Inc. Single-chip architecture for shared-memory router
US6526060B1 (en) 1997-12-05 2003-02-25 Cisco Technology, Inc. Dynamic rate-based, weighted fair scheduler with explicit rate feedback option
US7570583B2 (en) * 1997-12-05 2009-08-04 Cisco Technology, Inc. Extending SONET/SDH automatic protection switching
US6424649B1 (en) 1997-12-31 2002-07-23 Cisco Technology, Inc. Synchronous pipelined switch using serial transmission
US6111877A (en) 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US5963499A (en) * 1998-02-05 1999-10-05 Cypress Semiconductor Corp. Cascadable multi-channel network memory with dynamic allocation
US6085254A (en) * 1998-04-10 2000-07-04 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic size alteration of memory files
US7209955B1 (en) 1998-05-29 2007-04-24 Research In Motion Limited Notification system and method for a mobile data communication device
US6463463B1 (en) 1998-05-29 2002-10-08 Research In Motion Limited System and method for pushing calendar event messages from a host system to a mobile data communication device
US6779019B1 (en) * 1998-05-29 2004-08-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
US7606936B2 (en) * 1998-05-29 2009-10-20 Research In Motion Limited System and method for redirecting data to a wireless device over a plurality of communication paths
US7266365B2 (en) * 1998-05-29 2007-09-04 Research In Motion Limited System and method for delayed transmission of bundled command messages
US7209949B2 (en) * 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
US6438585B2 (en) 1998-05-29 2002-08-20 Research In Motion Limited System and method for redirecting message attachments between a host system and a mobile data communication device
US20020049818A1 (en) * 1998-05-29 2002-04-25 Gilhuly Barry J. System and method for pushing encrypted information between a host system and a mobile data communication device
US6219694B1 (en) 1998-05-29 2001-04-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device having a shared electronic address
US8516055B2 (en) * 1998-05-29 2013-08-20 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device in a wireless data network
US6370121B1 (en) 1998-06-29 2002-04-09 Cisco Technology, Inc. Method and system for shortcut trunking of LAN bridges
US6377577B1 (en) 1998-06-30 2002-04-23 Cisco Technology, Inc. Access control list processing in hardware
US7277424B1 (en) 1998-07-21 2007-10-02 Dowling Eric M Method and apparatus for co-socket telephony
US6275503B1 (en) * 1998-07-24 2001-08-14 Honeywell International Inc. Method for transmitting large information packets over networks
US6308219B1 (en) 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6182147B1 (en) 1998-07-31 2001-01-30 Cisco Technology, Inc. Multicast group routing using unidirectional links
US6101115A (en) * 1998-08-07 2000-08-08 Cisco Technology, Inc. CAM match line precharge
US6389506B1 (en) 1998-08-07 2002-05-14 Cisco Technology, Inc. Block mask ternary cam
US6493750B1 (en) * 1998-10-30 2002-12-10 Agilent Technologies, Inc. Command forwarding: a method for optimizing I/O latency and throughput in fibre channel client/server/target mass storage architectures
US6522875B1 (en) * 1998-11-17 2003-02-18 Eric Morgan Dowling Geographical web browser, methods, apparatus and systems
KR100280642B1 (ko) * 1998-11-18 2001-05-02 윤종용 이더넷 컨트롤러의 메모리 관리 장치 및 그 제어방법
US7206877B1 (en) * 1998-12-22 2007-04-17 Honeywell International Inc. Fault tolerant data communication network
US6771642B1 (en) 1999-01-08 2004-08-03 Cisco Technology, Inc. Method and apparatus for scheduling packets in a packet switch
US7899052B1 (en) * 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
US6457121B1 (en) 1999-03-17 2002-09-24 Intel Corporation Method and apparatus for reordering data in X86 ordering
US6757791B1 (en) 1999-03-30 2004-06-29 Cisco Technology, Inc. Method and apparatus for reordering packet data units in storage queues for reading and writing memory
US6760331B1 (en) 1999-03-31 2004-07-06 Cisco Technology, Inc. Multicast routing with nearest queue first allocation and dynamic and static vector quantization
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
JP3780776B2 (ja) * 1999-10-15 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
KR100343491B1 (ko) * 1999-11-30 2002-07-18 박명흠 사운드 사용중 실시간, 양방향 음성전달 시스템
AU2001250201A1 (en) * 2000-04-10 2001-10-23 Research In Motion Limited System and method for bundling information
US6850980B1 (en) 2000-06-16 2005-02-01 Cisco Technology, Inc. Content routing service protocol
US6799200B1 (en) 2000-07-18 2004-09-28 International Business Machines Corporaiton Mechanisms for efficient message passing with copy avoidance in a distributed system
US7089289B1 (en) 2000-07-18 2006-08-08 International Business Machines Corporation Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US6735620B1 (en) 2000-07-18 2004-05-11 International Business Machines Corporation Efficient protocol for retransmit logic in reliable zero copy message transport
US7076556B1 (en) * 2000-07-31 2006-07-11 Cisco Technology, Inc. Method and apparatus for storage and retrieval of connection data in a communications system
US7054324B1 (en) * 2000-09-15 2006-05-30 Ciena Corporation Interface transmitter for communications among network elements
US6754174B1 (en) * 2000-09-15 2004-06-22 Ciena Corporation Interface for communications among network elements
US6920105B1 (en) * 2000-09-15 2005-07-19 Ciena Corporation Interface receive for communications among network elements
US6633573B1 (en) * 2000-09-15 2003-10-14 Ciena Corporation Method and apparatus for generating massive interrupts in random access memory (RAM)
US6965914B2 (en) * 2000-10-27 2005-11-15 Eric Morgan Dowling Negotiated wireless peripheral systems
US7035932B1 (en) 2000-10-27 2006-04-25 Eric Morgan Dowling Federated multiprotocol communication
US6901429B2 (en) 2000-10-27 2005-05-31 Eric Morgan Dowling Negotiated wireless peripheral security systems
CA2326036A1 (en) * 2000-11-16 2002-05-16 Gemplus S.A. Method for securing electronic device data processing
US7095744B2 (en) * 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
CA2725700C (en) 2000-12-22 2015-11-24 Research In Motion Limited Wireless router system and method
US6618388B2 (en) 2001-01-05 2003-09-09 Extreme Networks Method and system for VMAN protocol
CA2368404C (en) * 2001-01-18 2005-08-09 Research In Motion Limited Unified messaging system and method
CN100367730C (zh) * 2001-02-14 2008-02-06 克利尔斯皮德科技有限公司 一种互连系统
US7103656B2 (en) * 2001-02-20 2006-09-05 Research In Motion Limited System and method for administrating a wireless communication network
CA2375844C (en) * 2001-03-09 2008-12-30 Research In Motion Limited Advanced voice and data operations in a mobile data communication device
CA2376918C (en) * 2001-03-14 2007-10-23 Research In Motion Limited Scalable and secure messaging system for a wireless network
US7058070B2 (en) * 2001-05-01 2006-06-06 Integrated Device Technology, Inc. Back pressure control system for network switch port
US20030055902A1 (en) * 2001-09-14 2003-03-20 Elan Amir Systems and methods for remotely updating e-mail message status information for messages forwarded from a host system e-mail account across a firewall to a wireless handheld device
US7317699B2 (en) * 2001-10-26 2008-01-08 Research In Motion Limited System and method for controlling configuration settings for mobile communication devices and services
DE60214590T2 (de) 2001-12-07 2007-09-13 Research In Motion Ltd., Waterloo Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen
US7076543B1 (en) 2002-02-13 2006-07-11 Cisco Technology, Inc. Method and apparatus for collecting, aggregating and monitoring network management information
US6877048B2 (en) 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
GB2387677B (en) * 2002-04-16 2005-06-22 Zarlink Semiconductor Inc Packet buffer memory with integrated allocation/de-allocation circuit
US8230026B2 (en) 2002-06-26 2012-07-24 Research In Motion Limited System and method for pushing information between a host system and a mobile data communication device
WO2004036381A2 (en) * 2002-10-18 2004-04-29 Broadcom Corporation System and method for receive queue provisioning
US20080261633A1 (en) * 2002-10-22 2008-10-23 Research In Motion Limited System and Method for Pushing Information from a Host System to a Mobile Data Communication Device
KR100489685B1 (ko) * 2003-02-20 2005-05-17 삼성전자주식회사 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법
US7536674B2 (en) * 2003-08-13 2009-05-19 Intel Corporation Method and system for configuring network processing software to exploit packet flow data locality
CN1747444A (zh) * 2004-09-10 2006-03-15 国际商业机器公司 数据处理系统网络中从主机单元分担数据流的方法及引擎
US8190796B2 (en) * 2004-11-02 2012-05-29 Standard Microsystems Corporation Hardware supported peripheral component memory alignment method
DE502005002402D1 (de) * 2005-02-28 2008-02-14 Siemens Ag Verfahren zur Reduktion von Datenpaketverlusten beim Aktualisieren einer Adresstabelle
EP1872251B1 (en) 2005-04-18 2015-10-21 BlackBerry Limited Method for providing wireless application privilege management
US7920584B2 (en) * 2005-05-04 2011-04-05 Arm Limited Data processing system
US7924858B2 (en) * 2005-05-04 2011-04-12 Arm Limited Use of a data engine within a data processing apparatus
US7630388B2 (en) * 2005-05-04 2009-12-08 Arm Limited Software defined FIFO memory for storing a set of data from a stream of source data
US7797465B2 (en) * 2005-06-10 2010-09-14 Intel Corporation Apparatus and methods to reduce frame interrupts in packet-based communication
US8255108B2 (en) * 2005-08-31 2012-08-28 Spx Corporation Dynamic file system creation for scan tools
KR101197556B1 (ko) * 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
US8179872B2 (en) 2007-05-09 2012-05-15 Research In Motion Limited Wireless router system and method
AU2008201643B1 (en) 2007-07-24 2008-08-28 Rambrandt Messaging Technologies, LP Messaging service in a wireless communications network
CN102012812B (zh) * 2010-11-24 2014-08-13 Tcl集团股份有限公司 一种实现应用程序资源分享的装置及其方法
US9152580B1 (en) * 2011-10-27 2015-10-06 Marvell International Ltd. Method and apparatus for transferring data between a host and an embedded device
CN103166873B (zh) * 2011-12-12 2018-02-27 中兴通讯股份有限公司 核间通信的方法及核处理器
US9000805B2 (en) * 2013-01-29 2015-04-07 Broadcom Corporation Resonant inductor coupling clock distribution
US9940273B2 (en) * 2014-11-19 2018-04-10 Texas Instruments Incorporated Dynamic RAM sharing in software-defined TDD communication
CN106681932B (zh) * 2016-11-14 2020-10-16 合肥兆芯电子有限公司 存储器管理方法、存储器控制电路单元及存储器存储装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1981001064A1 (en) * 1979-10-09 1981-04-16 Burroughs Corp Improvements in or relating to data communications
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
GB8304950D0 (en) * 1983-02-22 1983-03-23 Int Computers Ltd Data communication systems
US4630261A (en) * 1984-07-30 1986-12-16 International Business Machines Corp. Integrated buffer management and signaling technique
US4652874A (en) * 1984-12-24 1987-03-24 Motorola, Inc. Serial communication interface for a local network controller
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
DE3677007D1 (de) * 1986-04-30 1991-02-21 Ibm Hochgeschwindigkeitsleitungsadapter fuer eine uebertragungssteuerung.
US4704717A (en) * 1986-07-22 1987-11-03 Prime Computer, Inc. Receive message processor for a solicited message packet transfer system
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
US4855904A (en) * 1986-08-27 1989-08-08 Amdahl Corporation Cache storage queue
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
US4922503A (en) * 1988-10-28 1990-05-01 Infotron Systems Corporation Local area network bridge
US5247626A (en) * 1990-05-29 1993-09-21 Advanced Micro Devices, Inc. Fddi controller having flexible buffer management

Also Published As

Publication number Publication date
EP0582666B1 (en) 1999-06-23
US5602995A (en) 1997-02-11
WO1992020028A1 (en) 1992-11-12
CA2105866A1 (en) 1992-10-31
CA2105866C (en) 2001-04-10
EP0582666A1 (en) 1994-02-16
US5313582A (en) 1994-05-17
DE69229473T2 (de) 2000-03-02
DE69229473D1 (de) 1999-07-29
EP0582666A4 (en) 1994-06-22

Similar Documents

Publication Publication Date Title
JPH08508592A (ja) 通信ネットワークのデータステーション内のデータバッファ方法および装置
JP2504377B2 (ja) デ―タ・パケットを貯蔵する方法及び装置
CA2124452C (en) Method and apparatus for processing data within stations of a communication network
EP1005739B1 (en) Shared memory management in a switched network element
JP3361824B2 (ja) 複数個のプロセッサとシステムメモリ手段とを含むネットワークアダプタのための装置、ネットワーク制御装置、制御方法
US7505483B2 (en) Apparatus for transmitting WPAN MAC frames and method thereof
EP0459753A2 (en) Network access controller having logical FIFO buffer
EP0797335A2 (en) Network adapter
US7012926B2 (en) Packet receiving method on a network with parallel and multiplexing capability
US7302699B2 (en) Logged-in device and log-in device
JPH10143461A (ja) 周辺装置システム
US5142628A (en) Microcomputer system for communication
CN100539538C (zh) 具有链表处理器的存储器管理系统
CN112328520B (zh) 一种pcie设备、基于pcie设备的数据传输方法和系统
US4796022A (en) Double transit bus system
JP2002521942A (ja) メモリ装置およびメモリ装置の作動方法
CN112328519B (zh) 一种pcie设备、基于sr-iov的数据包有序传输方法和系统
US6654861B2 (en) Method to manage multiple communication queues in an 8-bit microcontroller
EP1222753A1 (en) Parallel bus communications over a packet-switching fabric
JPH02268046A (ja) パケット多重化装置
CA1235229A (en) Double transit bus system
JPS59230346A (ja) 伝送装置の送受信デ−タのバツフアリング方式
JPH01129547A (ja) データ転送制御方式
JPH05268291A (ja) デ−タバッファ管理システム
CN100426258C (zh) 嵌入式系统及其缓冲器尺寸决定方法