JP2518986B2 - 汎用アダプタ - Google Patents

汎用アダプタ

Info

Publication number
JP2518986B2
JP2518986B2 JP4017502A JP1750292A JP2518986B2 JP 2518986 B2 JP2518986 B2 JP 2518986B2 JP 4017502 A JP4017502 A JP 4017502A JP 1750292 A JP1750292 A JP 1750292A JP 2518986 B2 JP2518986 B2 JP 2518986B2
Authority
JP
Japan
Prior art keywords
packet
bus
data
queue
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4017502A
Other languages
English (en)
Other versions
JPH04336729A (ja
Inventor
ポール・チャン
ギャリー・スコット・デルプ
ハナフィー・エル=サイード・メレイス
ラファエル・マンティラ・モンタルヴォ
デーヴィッド・イズリアル・セイドマン
アハメド・ナスレッディン・タンタウィ
ドミニク・アンソニー・ズンボ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04336729A publication Critical patent/JPH04336729A/ja
Application granted granted Critical
Publication of JP2518986B2 publication Critical patent/JP2518986B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9026Single buffer per packet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一の媒体上のデータ・
フローを他の媒体と互換性のあるデータ・フローに変換
するためのハードウェア/ソフトウェア構成体に係り、
更に詳細に説明すれば、システム・バス、交換装置、伝
送媒体、及び種々のローカル・エリア・ネットワーク
(LAN)のうち少なくとも2つの間のデータ・インタ
フェースを提供するための、高帯域の汎用アダプタ(以
下「汎用アダプタ」と略記)に係る。
【0002】
【従来の技術】従来技術では、通信アダプタの速度の方
が、使用可能な伝送速度よりも高かった。伝送技術の最
近の進歩によってこの平衡が破られ、伝送媒体の能力が
上回るようになった。通信速度が計算速度に接近し又は
これを上回るようになってきたから、代替の通信アーキ
テクチャを探求することが必要となってきた。このよう
な探究は、新しいプロトコルと、既存のプロトコルの最
適化という2つの領域に集中している。
【0003】伝送技術の進歩によって、以前よりも遥か
に高いデータ転送速度のみならず、以前よりも遥かに低
いエラー率も実現されるようになった。既存の通信プロ
トコルは、高い媒体エラー率と、計算速度よりも遥かに
低いデータ伝送速度とを前提に設計されていた。低速の
伝送媒体を過度に使用することを回避するため、エラー
回復能力を提供することに重点が置かれていた。基本的
な前提が次第に実態に合わなくなってくるにつれて、既
存の通信プロトコルは、新しい伝送媒体について益々不
適切になってきた。伝送能力とプロトコルの不整合に寄
与している他の要因は、既存の多くの通信プロトコル
が、「汎用プロセッサ/ソフトウェア」による実現のた
めに設計されていたという事実に由来する。これらのプ
ロトコルの「ソフトウェア向き」の設計手法は、通信プ
ロトコルのプロセッサを、データ伝送の隘路にした。
【0004】既存の通信プロトコルに見られるこれらの
設計上の欠点を是正するため、高速ではあるが、間に合
わせ的なプロトコルが幾つか提案されている。既存の通
信プロトコルと比較すると、これらのプロトコルは、高
いデータ・スループットに重点を置き、複雑なエラー回
復方式には重点を置いていない。更に、これらの間に合
わせ的なプロトコルは、VLSIハードウェアによる実
現を念頭において設計されている。
【0005】前述の設計上の欠点に加えて、既存の通信
プロトコルのデータ・スループットは、現在の多くのプ
ロトコル実現形態に見られる他の欠点によって妨げられ
ている。この実現形態の欠点は、最悪の状況を想定した
設計原理、即ち良好な振る舞いのデータ・パケット(以
下「パケット」と略記)と悪い振る舞いのパケットとを
区別せずに、全てのパケットに対し一律にペナルティを
課すという原則の下に、全てのパケットを同等に扱わな
ければならない、という設計原理に由来する。順序通り
でエラーのないパケットも、順序外のパケットや変造パ
ケットと殆ど同じソフトウェア経路を通過する。この設
計原理が、伝送速度が低く且つ減衰量が大きいネットワ
ークの環境で正当化される理由は、このような環境では
エラー率が高く、しかも通信の待ち時間に対するソフト
ウェア経路長の影響が最小であるという点にある。しか
し、現在の伝送技術では、エラー率が非常に小さくなっ
ているから、良好な振る舞いのパケットの確率が非常に
増大していて、潜在的なパケット到着率が大きく増加し
ている。従って、このことを反映するように、プロトコ
ルの実現形態を調整しなければならない。
【0006】この領域の活動は、主として、良好な振る
舞いのパケットを優遇し且つ悪い振る舞いのパケットだ
けにペナルティを課すように、既存のプロトコル実現形
態を修正することに向けられていた。また、これらの実
現形態は、パケット動作のパイプライン化と、ハードウ
ェアの機能的支援を含んでいる。
【0007】高速の通信アダプタの場合、前述のスルー
プット問題は、次の制約に起因して一層複雑となってい
る。
【0008】 (1)既存のプロトコル及び実現形態との互換性: 高速の通信アダプタは、新しい通信技術をサポートする
とともに、既存の通信技術に対する下方互換性を提供す
ることが期待される。ここで、下方互換性とは、既存の
通信プロトコルをサポートするのみならず、既存のプロ
トコルが実現している方法又はアーキテクチャをもサポ
ート可能であることを意味する。
【0009】 (2)確立されたシステム・バス及び/又はチャネルと
の互換性: 通信アダプタは、ホスト・システム用の通信フロント・
エンドとして動作することが多い。このことは、通信ア
ダプタの殆どのパケット・データが、確立されたシステ
ム・バス又は入出力チャネルを通して、これに接続され
たホスト・システムと授受されることを意味する。終端
間の性能上の見地から云えば、通信アダプタとそれに接
続されたホスト・システムとの間のデータ転送は、終端
ノード間の通信経路の他の部分よりも重要ではないとし
ても、これと同程度には重要である。高速の通信アダプ
タは、永年にわたって確立された(一のファミリーを構
成する)システム・バス及び入出力チャネル上の高速デ
ータ転送をサポートするとともに、これらのバス及びチ
ャネルのアーキテクチャ規則を順守可能であることが期
待される。
【0010】
【課題を解決するための手段】従って、本発明の主目的
は、将来の通信アダプタのファミリーをサポートする潜
在能力を有する処の、新規なアーキテクチャを提供する
ことである。これらの通信アダプタは、既存の制約を満
足するとともに、ホストの負荷を軽減しつつ、高いデー
タ・スループットを提供しなければならない。本明細書
で説明する汎用アダプタのアーキテクチャが汎用的(ge
neric)であると称せられる所以は、その入出力ポート
が、システム・バス、入出力チャネル、交換装置又は通
信ネットワークの何れに接続されるかとは関係なく、こ
れらの入出力ポートに対し統一的なインタフェースを提
供するという点にある。
【0011】このアーキテクチャが実現している高速プ
ロトコル用の幾つかの重要な設計原理には、反復的な通
信機能のためのハードウェア援助と、バッファ、パケッ
ト及び待ち行列管理のためのハードウェア援助と、異常
に悪い振る舞いのパケットを処理する手段を備えた良好
な振る舞いのパケットに対する最適設計とが含まれてい
る。このため、このアーキテクチャは、高いデータ転送
速度をサポートすることができるようになっている。
【0012】また、このアーキテクチャを定義する過程
において、既存のVLSI技術で以てこのアーキテクチ
ャを容易に実現することができるように、注意深く考慮
が払われている。即ち、このアーキテクチャの非常に重
要な特徴は、これが実現しやすいことである。
【0013】本発明の他の目的は、データ通信がしばし
ばデータ・パケットの形式で行われることを認識して設
計され、従ってアーキテクチャ上のプリミティブとして
パケットの処理をサポートできるように設計された、汎
用アダプタのアーキテクチャを提供することである。こ
のアーキテクチャの機能目標は、次のことを含んでい
る。 (1)汎用アダプタへの、又はそれを介する、又はそれ
からの、パケットの高速トランスポートの提供 (2)バッファ及び待ち行列の管理とデータ移動のため
のハードウェア援助 (3)複数の優先順位レベルと複数種類のサービスのサ
ポート (4)広範囲のバス及び伝送技術に対応する、統一的な
バッファ/パケット/待ち行列/サーバ管理方式の提供 (5)持続的な高スループットのサポート (6)高水準ソフトウェア・インタフェースの提供に起
因する、通信に対する非常に低いホスト負荷の可能性 (7)複数の並行プロトコル・スタックのサポート (8)パケットに基づく、新しい伝送技術の迅速なプロ
トタイプ化の提供
【0014】この汎用アダプタは、種々のシステム相互
接続に対するサポートを提供するように構成されてい
る。可能な相互接続の幾つかには、次のものが含まれて
いる。 マイクロ・チャネル: 800Mbps(ストリーミ
ング・モード) クロスバー交換機: 非常に低い待ち時間 240
Mbps/ポート 直列入出力チャネル: 200Mbps SPDバス: 80Mbps 370チャネルOEMI:24Mbps
【0015】この汎用アダプタの構成は、パケット向き
の伝送技術を容易にサポートできるようになっている。
次の伝送技術は、この汎用アダプタに簡単に組み込むこ
とができ、又は近い将来に組み込むことができる筈であ
る。 ハードウェア・データ・リンク制御:
400Mbps FDDI(ANSIファイバ・トークン・リング):
100Mbps DS3(クリア・チャネルT3):
45Mbps トークン・リング:
16/4Mbps イーサネット:
10Mbps
【0016】この汎用アダプタは、幾つかのプロトコル
をサポートするための並列機構を提供する。リンク、ネ
ットワーク及びトランスポート・レベルのプロトコルの
ポリシーを実現するために、オンボード・プロセッサを
使用することができる。次のリストは、この汎用アダプ
タによるサポートの候補を示している。 APPN/SNA APPC TCP/IP ISO/TP及びISO/IP 広帯域ISDN VTAMサポートの一部
【0017】本明細書で説明する教示に従って、本発明
の汎用アダプタは、可変長のデータ・ストリーム・パケ
ットの形式でデータを搬送する処のバス、チャネル、プ
ロセッサ、交換装置及び/又は通信ネットワークのうち
少なくとも2つの間のデータ通信のために、統一的なア
ーキテクチャを提供する。各パケットは、ヘッダ情報部
を含むほか、通信すべきデータ用のデータ部を含むこと
ができる。前者のヘッダ情報部は、情報交換を調停する
のに使用される通信プロトコルがこれを必要とする。汎
用アダプタ内のプロセッサ・サブシステムは、パケット
のヘッダ情報部を処理するためのプロセッサを含んでい
る。このプロセッサは、汎用アダプタの1つ以上の入出
力ポートに到着するパケットを記憶する処の、パケット
・メモリ(PM)をアクセスすることができる。このパ
ケット・メモリは、複数のバッファに分割され、各パケ
ットは、その長さに応じて1つ以上のバッファに記憶さ
れる。汎用アダプタ・マネージャ(GAM)は、汎用ア
ダプタの諸管理機能を遂行し且つこれらの機能を同期さ
せるために設けられている。これらの管理機能は、プロ
セッサ・サブシステムによる処理又は汎用アダプタの入
出力ポートとの転送のために、複数のバッファを(各パ
ケット対応に連係してこれらのバッファのグループに対
応する)一のパケットに編成し且つ複数のパケットを
(各待ち行列対応に連係してこれらのパケットのグルー
プに対応する)一の待ち行列に編成することによって、
パケット・メモリ内にデータ構造を実現することを含ん
でいる。汎用アダプタの各入出力ポートに関連する一の
パケット・メモリ・インタフェース(PMI)は、各パ
ケットをパケット・メモリと授受するために設けられて
いる。例えば、一のパケットが一の入出力ポートで受信
される場合、このパケットは、パケット・メモリに転送
され、そこで処理のために待ち行列化されるようになっ
ている。
【0018】詳述すると、プロセッサ・サブシステム
と、パケット・メモリと、汎用アダプタ・マネージャ
と、入出力ポートとを相互に接続するために、汎用アダ
プタ・バス(GAB)が設けられている。このプロセッ
サ・サブシステムのローカル・メモリは、(一の通信プ
ロトコルの状態マシンとして構成することが可能な)通
信コードと、(この通信コードをサポートするために使
用されるデータ構造、例えばオープンされている各通信
接続のための接続制御ブロックに相当する)コード即値
制御データとを保持する。一のローカル・バスが、プロ
セッサとそのローカル・メモリとを相互に接続する。ま
た、このプロセッサ・サブシステムは、プロセッサの動
作に必要な補助回路として、ハードウェア・タイマや、
割り込みコントローラや、ローカル・メモリ・コントロ
ーラなどを含んでいる。パケット・データの移動と並行
して通信コードの大部分を処理できるように、プロセッ
サ・サブシステムのローカル・バスから汎用アダプタ・
バスを分離し且つ必要に応じてこれらのバスを相互に接
続するための、第1のアイソレータが設けられている。
第2のアイソレータは、汎用アダプタ・マネージャとそ
のローカル・メモリへの選択的アクセスのために設けら
れている。
【0019】また、汎用アダプタ・マネージャは、諸デ
ータ構造を記憶するためのローカル・メモリと、汎用ア
ダプタ・マネージャをそのローカル・メモリに結合する
ためのローカル・バスとを含んでいる。なお、これらの
データ構造は、パケット・メモリ内の複数のバッファを
(各パケット対応に連係してこれらのバッファのグルー
プに対応する)一のパケットに編成し且つ複数のパケッ
トを(各待ち行列対応に連係してこれらのパケットのグ
ループに対応する)一の待ち行列に編成するために、使
用されるものである。更に、汎用アダプタ・マネージャ
は、これらのバッファや、パケットや、待ち行列を包含
する処のデータ構造をパケット・メモリ内で実現するた
めの汎用アダプタ・マネージャのカーネルと、優先順位
又はラウンド・ロビン方式に基づき、汎用アダプタ・バ
スの制御権を一のバス要求元(バス・マスタ)に付与す
るための汎用アダプタ・バス用のアービタと、パリティ
検査のため及び一のバス要求元に対し汎用アダプタ・バ
スの制御権が付与された後のバス・サイクル(GABサ
イクル)の時間長を検査するために汎用アダプタ・バス
を監視するためのモニタとを含んでいる。
【0020】パケット・メモリ・コントローラ(PMコ
ントローラ)は、汎用アダプタ・バスとパケット・メモ
リとの間をインタフェースする。PMコントローラは、
パケット・メモリとの間でエラー訂正を提供し、また汎
用アダプタ・バスとの間でパリティを供給する。単一サ
イクル及び高速ページ・モード・サイクルのアクセスが
与えられる。パケット・メモリを構成するためにダイナ
ミックRAMが使用される場合、PMコントローラは、
メモリ・リフレッシュ・サイクルを提供する。
【0021】各パケット・メモリ・インタフェース(P
MI)は、到着する各パケットをパケット・メモリ内に
記憶するとともに、パケット・メモリから各パケットを
読み出して、その関連する入出力ポートに渡すために、
汎用アダプタ・マネージャから必要なバッファを獲得す
るための手段を含んでいる。更に、各パケット・メモリ
・インタフェースは、異なるデータ伝送速度を有する入
出力ポートに接続装置を相互接続できるように、速度調
整用のステージング・バッファを含んでいる。
【0022】状況通知手段は、それぞれの待ち行列セッ
トを形成する複数の待ち行列のうち少なくとも1つの待
ち行列内のパケットの存在を、パケット・メモリ・イン
タフェースに通知するために使用される。この状況通知
手段を構成する一の状況レジスタ内の各ビットは、一の
待ち行列に対応していて、この待ち行列が空であるか否
かを指示する。この状況レジスタの状態変更は、汎用ア
ダプタ・バスを通して、全てのパケット・メモリ・イン
タフェースに同報通信される。
【0023】汎用アダプタ・マネージャは、複数のパケ
ットを(各待ち行列対応に連係してこれらのパケットの
グループに対応する)一の待ち行列に編成する。この場
合において、この待ち行列は、所定の優先順位を有し且
つ同じ論理入出力ポートを宛先とする複数のパケットの
連係リスト、又はプロセッサ・サブシステムによって同
様の態様で処理すべき複数のパケットの連係リストから
構成される。汎用アダプタ・マネージャは、各入出力ポ
ートごとに一の待ち行列セットを定義する。この待ち行
列セットは、所定の動作用の1つのオペランドとして一
括して処理可能な、待ち行列のグループから成る。パケ
ット・メモリは、プロセッサ用の複数の待ち行列と、パ
ケット・メモリ・インタフェース用の複数の出力待ち行
列とを含んでいる。それぞれのパケットは、パケット・
メモリから送信された後に出力待ち行列から廃棄される
のが普通であるが、一のパケット又は一のパケット・グ
ループを循環式として指定することも可能であり、その
場合、このように指定されたパケット又はパケット・グ
ループは、送信後も廃棄されないで、再び待ち行列化さ
れることになる。
【0024】更に、同一のヘッダ情報部を幾つかのパケ
ットに付加する場合のように、これらのバッファを複数
のパケットに連係することができる。また、一のデータ
部を使用する最後のパケットが送信されるまで、複数の
パケットのデータ部を複製又は削除することなく、これ
らのデータ部を互いに異なるヘッダ情報部に連係するこ
ともできる。
【0025】各入出力ポートは、入力(インバウンド)
パケットの内容を検査して、そのパケットをエンキュー
すべき適正な待ち行列を決定する。この特徴は、本発明
の汎用アダプタを、複数の状態を有するパケット交換シ
ステムとして使用することを可能にする。
【0026】元の待ち行列に新しいベース・アドレスを
割り当てることによって、この元の待ち行列から代替的
な待ち行列へ切り替えるための、待ち行列再構成機構が
設けられる。この待ち行列再構成機構によれば、入力パ
ケットの送信元に通知する必要なしに、かかる入力パケ
ットを代替的な待ち行列に連係することができる。
【0027】新しいパケット・メモリ・インタフェース
用の待ち行列セットのベース・アドレスを、古いパケッ
ト・メモリ・インタフェース用の待ち行列セットのベー
ス・アドレスに設定することによって、各パケット・メ
モリ・インタフェースが、一の待ち行列のサービスを代
行することができるようにするための、待ち行列再構成
機構が設けられる。また、古い待ち行列の先頭(第1)
パケットを新しい待ち行列に移動させることによって、
他のパケット・メモリ・インタフェースによってサービ
スされるように、一の待ち行列をまとめて移動させるた
めの、待ち行列再構成機構が設けられる。
【0028】本明細書で説明する教示に従って、本発明
の汎用アダプタがユーザ(例えば、一のパケット・メモ
リ・インタフェース)にサービスを提供するために利用
される場合、各ユーザは、汎用アダプタ・マネージャの
ローカル・メモリ内にある指定されたアドレスを定義す
る処の、現サービス要求を汎用アダプタ・マネージャに
送信する。汎用アダプタ・マネージャは、予想されるサ
ービス要求に対する応答を前以って準備するとともに、
これらの応答をそのローカル・メモリ内の指定されたア
ドレスに記憶している。この現サービス要求に応答し
て、汎用アダプタ・マネージャは、前以って準備し且つ
指定されたアドレスに記憶しておいた一の応答を返送す
る。一般に、汎用アダプタ・マネージャは、現サービス
要求の関数として、将来に予想されるサービス要求に対
する応答を前以って準備するとともに、これらの応答を
そのローカル・メモリ内の指定されたアドレスに記憶す
る。詳述すると、一のアドレスを指定するサービス要求
がアドレス・バスを通して汎用アダプタ・マネージャに
送信される場合、汎用アダプタ・マネージャは、このサ
ービス要求に応答して、そのアドレスによって指定され
るローカル・メモリ内の位置に前以って記憶しておいた
一の応答を返送するのである。一般に、汎用アダプタ・
マネージャは、汎用アダプタ・バスを通して要求元ユー
ザに現応答が送信されるのと同時に、将来の応答が準備
され且つ記憶されるように、将来に予想されるサービス
要求に対する応答を準備して、これらの応答をそのロー
カル・メモリ内の指定された位置に記憶しておく。
【0029】将来の可能な応答は、汎用アダプタ・マネ
ージャ内の論理回路によって準備される。これらの論理
回路は、前景論理回路及び背景論理回路を含んでいる。
後者の背景論理回路は、次のフリー・バッファのポイン
タ及び次のフリー・パケットのポインタを準備し且つこ
れらのポインタを一のレジスタに記憶することによっ
て、プリミティブの形式で受け取られるサービス要求よ
り1ステップ先んじるように動作する(§4.6の「G
AM18の応答 − 同期式と非同期式の対比」に記載
の「背景段階」の説明を参照)。前景論理回路は、この
レジスタをアクセスして、現サービス要求に対する適時
の応答を生成し且つこれをパケット・メモリ・インタフ
ェースを通して供給することができる(§4.6の「G
AM18の応答 − 同期式と非同期式の対比」に記載
の「クリティカル段階」の説明を参照)。サービスを要
求するユーザは、同じ同期バス・サイクルの間にローカ
ル・メモリ内の指定されたアドレスのデータを読み出す
処の読み出し動作の形式で、その現サービス要求を送信
する。
【0030】
【実現例】§1.0: 概要 汎用アダプタは、高速の通信アダプタ用に設計された、
統一的なアーキテクチャを実現する。汎用アダプタは、
バス、チャネル及び通信ネットワークを相互接続するた
めの開発プラットホームを提供する。各汎用アダプタの
最大構成は、制限されているが、各汎用アダプタ上の一
の入出力ポートに接続された交換装置を使用する複数の
汎用アダプタを相互接続することによって、任意の大き
さのシステムを構築することができる。
【0031】本章では、汎用アダプタとその主要な構成
要素を概説する。
【0032】§1.1: 汎用アダプタの通信環境 汎用アダプタは、広範囲のトラヒックを搬送可能な通信
ネットワーク環境内に常駐するように設計されている。
このトラヒックは、時間的にクリティカルな緊急トラヒ
ック及び帯域幅にクリティカルな同期トラヒックから、
時間的にクリティカルでない非同期の背景トラヒックま
で及んでいる。この統合ネットワークは、同種でもよ
く、又は高帯域のバックボーン・ネットワークを通して
相互接続された互いに異なる複数のローカル・エリア・
ネットワークから成ってもよい。ネットワーク接続装置
は、端末やプリンタのような簡単な装置から、メインフ
レーム・ホストやネットワーク・コントローラのような
インテリジェント・デバイスまで及んでいる。このよう
な環境内のネットワーク相互接続は、同種のローカル・
エリア・ネットワークを接続する簡単なブリッジ・デバ
イスに基づくか、又は2つの異種ネットワークを接続す
るのみならず、別々に管理されるドメインの相互接続に
必要なプロトコル変換及びネットワーク経路指定をも提
供する複雑な高水準ゲートウェイに基づくことができ
る。
【0033】このネットワークを流れるトラヒックは、
そのタイプとは無関係に、パケットと呼ばれるデータ・
ストリーム・セグメントの形式で搬送される。2つのネ
ットワーク・ノードが、このネットワークを通して情報
を交換することを望んでいる場合、これらのノードは、
それぞれの情報をパケットの形式で送信する。最適のパ
ケット・サイズを決定する基本的な要因の1つは、ネッ
トワーク伝送媒体のビット・エラー率である。同軸ケー
ブル及び光ファイバー・リンクのようにエラー率が低い
場合、パケット・サイズを数キロバイト程度の大きさに
することができる。パケット・サイズに影響する他の要
因は、終端ノードで実行中のアプリケーションの待ち時
間の要件である。待ち時間の要件が小さければ小さいほ
ど、パケット・サイズは小さくなる。
【0034】各パケットは、その2つの構成要素とし
て、ヘッダ情報とデータとを保持するのが普通である。
このデータは、2つの通信終端ノード上で実行中のユー
ザ・レベルのアプリケーションによって供給される。ヘ
ッダ情報は、情報交換を調停するのに使用される通信プ
ロトコルがこれを必要とする。ヘッダ情報は、各パケッ
トがアプリケーション・プロセスに渡される前に、通信
プロトコル・プロセッサによって解釈される。ヘッダ情
報は、実際には符号化されたメッセージであって、デー
タが所期の宛先に正しく到着したことを確認するため
に、対等なプロトコル要素間で交換される。通信プロト
コルは、エラーを伴って到着したパケットを再送する責
任を有することが多い。
【0035】各パケットは、その宛先に到着する前に、
幾つかの中間ネットワーク・ノードを通して伝送され
る。中間ノードにおいて、各パケットは、ネットワーク
・レベルのプロトコル・エンティティに到着する前に、
幾つかのソフトウェア層とハードウェア層によって影響
を及ぼされる。中間ノード内のネットワーク層エンティ
ティは、各パケット内のヘッダ情報に基づいて、このパ
ケットをどの出力(アウトバウンド)リンクに経路指定
すべきかを決定することができる。一旦、この経路指定
が決定されると、このパケットは、同じソフトウェア層
とハードウェア層を、再び逆方向に流れることが多い。
各パケットがこれらの層の境界で滞ることを防止するた
め、ネットワーク・ノード内のソフトウェアとハードウ
ェアは、所期のパケット到着速度で各パケットを処理可
能でなければならない。
【0036】汎用アダプタは、前述の通信環境用に設計
されている。一のパケットが汎用アダプタの1つの入出
力ポートで受信される場合、この入出力ポートは、受信
パケットを汎用アダプタ内のパケット・メモリに移動さ
せ、汎用アダプタ内のプロセッサによる処理のために、
このパケットを待ち行列化する。このプロセッサが使用
可能である場合、このプロセッサは、パケット・メモリ
内のパケットを処理する。このプロセッサは、各パケッ
ト内のヘッダ情報とプログラムされた通信層の機能とに
基づいて、このパケットがその最終宛先に到着したか否
かを決定することができる。もし、一のパケットがその
最終宛先に到着すれば、このプロセッサは、処理済みの
パケットを、システム・バス又はシステムの入出力チャ
ネルに接続された入出力ポートに転送する。他方、一の
パケットがその最終宛先に到着していなければ、このプ
ロセッサは、このパケットを経路指定すべきリンク又は
ネットワークを決定するとともに、このパケットを目標
のネットワーク・リンクに接続された入出力ポートに転
送する。どちらの場合でも、他の入出力ポートの1つ
は、送出の準備を完了しているパケットが存在する旨の
通知を受ける。この通知を受けた入出力ポートは、この
パケットをパケット・メモリから移動させて、パケット
伝送を制御する。
【0037】§1.2: 汎用アダプタの構成要素 図1に示すように、汎用アダプタは、高性能の汎用アダ
プタ・バス(GAB)12によって相互に結合された、
次の4つの主要な構成要素を有する。 プロセッサ・サブシステム(P)14 パケット・メモリ(PM)及びコントローラ16 汎用アダプタ・マネージャ(GAM)18 パケット・メモリ・インタフェース(PMI)20を有
する入出力ポート
【0038】§1.2.1: プロセッサ・サブシステ
ム(P)14 P14は、通信コードを実行し且つパケットの待ち行列
を処理するために使用される。P14は、次のものを含
んでいる。 (1)通信コードと即値制御データが常駐する、プロセ
ッサ(P)ローカル・メモリ22 (2)P14をGAB12に接続するアイソレータ24 (3)P14をGAMローカル・バスに接続するアイソ
レータ26 (4)幾つかのハードウェア・タイマ、割り込みコント
ローラ、ローカル・メモリ・コントローラを含む、P1
4の動作に不可欠な補助回路(便宜上、参照番号14が
付されている)
【0039】P14は、アイソレータ24及び26を利
用することによって、汎用アダプタ内の任意のメモリを
アクセスすることができる。汎用アダプタの内部には、
少なくとも3つのメモリ・ブロック、即ちPM16と、
GAMローカル・メモリ30と、Pローカル・メモリ2
2とがある。更に、汎用アダプタ内の各入出力ポート
は、そのPMI20を通してアクセス可能なメモリを有
する。この機構は、PMI20の機能の1つであって、
これについては、§7.0の「パケット・メモリ・イン
タフェース(PMI)20」で説明する。
【0040】Pローカル・メモリ22は、コードとコー
ド即値制御データを記憶するのに使用される。Pローカ
ル・メモリ22の一部は、不揮発性メモリであって、電
源投入時の自己診断コードとIPL(初期プログラム・
ロード)用のコードを記憶するのに使用される。汎用ア
ダプタの電源が投入されると、P14は、この不揮発性
メモリからその実行を開始し、IPLコードを実行し
て、通信コードをPローカル・メモリ22にロードす
る。このプログラム・ロードが完了すると、IPLコー
ドは、このロード済みの通信コードから実行を継続する
ように、P14を強制する。また、P14は、割り込み
コントローラや、幾つかのハードウェア・タイマや、ロ
ーカル・メモリ・コントローラのような補助回路を含ん
でいる。これらの補助回路は、P14の諸機能を首尾よ
く実行するのに不可欠である。これらの補助回路の詳細
については、§8.0の「プロセッサ・サブシステム
(P)14」を参照されたい。
【0041】汎用アダプタのアーキテクチャの指導原理
は、P14が、各パケット内のヘッダ情報部だけを見れ
ばよく、各パケット内のデータ部をPローカル・メモリ
22内に持ち込む必要がない、ということである。各P
MI20内に含まれているハードウェアは、この原理を
サポートするために、各パケットのデータ部に関する検
査和情報を供給する。PMI20による検査和のサポー
トについては、§7.0の「パケット・メモリ・インタ
フェース(PMI)20」を参照されたい。
【0042】§1.2.2: パケット・メモリ(P
M)とコントローラ16 各入出力ポートに到着したパケットは、PM16内に記
憶されて、それぞれの処理を待機する。PM16は、高
速のRAMから構成されていて、GAB12に接続され
ている。PM16内のメモリには、16メガバイトとい
う実現上の制限がある。説明中の実現形態では、このメ
モリは1組の256バイト・バッファに分割されてい
る。各パケットは、PM16内の1つ以上のバッファに
記憶された後、P14によって削除されるか、又は1つ
の入出力ポートに経路指定することができる。各パケッ
トは、一のPMI20を通して、PM16と授受され
る。PM16内にあるバッファ空間の管理は、GAM1
8の責任である。
【0043】PMコントローラは、PM16のために、
GAB12へのインタフェース機能を提供する。PMコ
ントローラは、パリティ生成や応答生成のようなGAB
12の要件から、PM16を分離する。PMコントロー
ラの詳細については、§3.0の「パケット・メモリ
(PM)とコントローラ16」を参照されたい。
【0044】§1.2.3: 入出力ポートとパケット
・メモリ・インタフェース(PMI)20 汎用アダプタ内の各入出力ポートごとに、一のPMI2
0が存在する。各汎用アダプタには、最大4つの入出力
ポートを設けることができる。各PMI20は、GAB
12に接続され、各パケットをPM16と授受するため
の機構を提供する。例えば、一のPMI20に接続され
たマイクロチャネル・インタフェースは、PS/2シス
テムに対し、パケットを通信ネットワークに引き渡すた
めの経路を提供する。汎用アダプタのネットワーク接続
は、GAB12に接続されたPMI20を通して行われ
る。PMI20の主要な機能は、着信パケットをPM1
6内に記憶するために、GAM18から必要なバッファ
を獲得することである。また、PMI20は、PM16
からパケットを読み出し、これらのパケットを通信フロ
ント・エンドに渡すこともできる。PMI20は、汎用
アダプタの個々の入出力ポートと残りの部分との間の、
唯1つのインタフェースである。PMI20の機能の詳
細については、§7.0の「パケット・メモリ・インタ
フェース(PMI)20」を参照されたい。
【0045】§1.2.4: 汎用アダプタ・バス(G
AB)12 GAB12は、汎用アダプタの主要な全ての構成要素を
相互に接続する。GAB12上の全ての信号は一のバス
・クロックに同期されているから、GAB12は、物理
的な信号インタフェース・レベルでは同期バスである。
しかし、GAB12は、非同期式に、即ちコマンド/応
答方式で動作する。一のバス・コマンドに対する応答
は、任意のバス・サイクルの間に戻すことができる。G
AB12の速度は、汎用アダプタの最もクリティカルな
性能パラメータの1つであって、これを汎用アダプタの
スループット要件と合致させる必要がある。汎用アダプ
タのアーキテクチャの目標の1つは、高性能のGAB1
2上の干渉を減少させることである。
【0046】GAB12上のバス信号の定義とバス動作
のタイミングの詳細については、§6.0の「汎用アダ
プタ・バス(GAB)12」を参照されたい。なお、以
下の記述を簡潔にするため、GAB12を「バス」と略
称することもある。
【0047】§1.2.5: 汎用アダプタ・マネージ
ャ(GAM)18 GAM18は、汎用アダプタの管理機能を遂行する幾つ
かの機能的な構成要素を含んでいる。次の各項で説明す
るこれらの構成要素は、GAMカーネルと、GAB12
用のアービタと、GAB12用のモニタと、GAMロー
カル・メモリ30である。
【0048】§1.2.5.1: GAMカーネル GAMカーネルは、PM16内にデータ構造を実現する
とともに、全てのデータ管理機能を遂行する。GAM1
8が操作する3つの主要なデータ構造として、図2のバ
ッファ32と、パケット34と、待ち行列36がある。
GAM18は、これらの3つのデータ構造に基づいて、
幾つかの重要な機能(例えば、パケット・トラヒック制
御、バッファ/パケット管理、及び入出力待ち行列のス
ケジューリング)を遂行する。
【0049】P14又は一のPMI20が、一のパケッ
トを受信するためにバッファ空間を必要とする場合、P
14又はこのPMI20は、GAM18に対しフリー・
バッファ要求を行う。GAM18は、P14又はこのP
MI20から連続して要求された複数のバッファ32を
(各パケット対応に連係して、これらのバッファのグル
ープに対応する)一のパケット34に編成する。更に、
複数のパケット34を(各待ち行列対応に連係してこれ
らのパケットのグループに対応する)一の待ち行列36
に編成する。各PMI20には、入力用と出力用の複数
の待ち行列が割り当てられる。一のパケットがPM16
内に移動された後、一のPMI20は、このパケットを
特定の待ち行列内に置くようにGAM18に指令する。
最終的に、GAM18は、P14上で実行中の(プロト
コル処理用の)通信コードに対し、処理すべきパケット
が使用可能であることを通知する。この場合、P14上
で実行中のこの通信コードは、これらのパケットをデキ
ューし、処理した後に、出力待ち行列にエンキューす
る。
【0050】この動作は、P14によるポーリングに基
づいて行うこともできる。GAM18は、全ての待ち行
列化動作を処理するとともに、出力待ち行列の状況をそ
れぞれのPMI20に通知する。また、GAM18に対
し、一のパケットの解放を要求することもでき、その場
合は、この特定のパケットに属する全てのバッファが、
フリー・バッファ・プールに戻される。
【0051】GAMカーネル機能の詳細については、§
4.0の「汎用アダプタ・マネージャ(GAM)18」
を、待ち行列のスケジューリング・ポリシー及び機構の
詳細については、§5.0の「待ち行列のスケジューリ
ングと通知」をそれぞれ参照されたい。
【0052】§1.2.5.2: GAB12用のアー
ビタ P14及びPMI20の全ては、GAB12を使用して
通信する。GAB12用のアービタは、(GAB12の
使用に関し)最高のバス優先順位を有するバス要求元に
対し、GAB12の制御権を付与する。汎用アダプタで
採用されているバス優先順位方式は、予めプログラムさ
れたデフォルトの優先順位方式と、ラウンド・ロビンの
均等優先順位方式の組み合わせである。汎用アダプタ内
の5つの潜在的なバス要求元、即ちP14と4つのPM
I20のうちから選択された1つのバス要求元が、常に
最高のバス優先順位を有することができる。残りの4つ
の潜在的なバス要求元は、ラウンド・ロビン方式で、バ
ス優先順位を共有する。汎用アダプタの電源投入時に
は、P14が、デフォルトの最高優先順位を有するバス
要求元となる。しかし、P14は、GAM18に対し一
の要求を発行することによって、任意のPMI20が最
高優先順位のバス要求元になるように、いつでも優先順
位の体系を変更することができる。GAB12の制御権
の要求/付与プロセス及びバス優先順位方式の詳細につ
いては、§6.0の「汎用アダプタ・バス(GAB)1
2」を参照されたい。
【0053】§1.2.5.3: GAB12用のモニ
タ バス調停機能とバッファ管理機能を遂行することに加え
て、GAM18は、GAB12用のモニタとしても動作
し、次の監視機能を遂行する。 (1)パリティ検査: GAM18は、常にGAB12を監視する。GAB12
上でバス動作が行われている場合、GAM18は、GA
B12を構成するアドレス・バス上のパリティとデータ
・バス上のパリティの両方を検査する。もし、パリティ
・エラーが検知されれば、GAM18は、GAB12上
のバス・エラー信号線を付勢して、汎用アダプタの他の
部分に対し、そのエラーを通知する。 (2)バス・サイクル長検査: GAM18は、一のバス要求元に対しGAB12の制御
権を付与した後、直ちに一のカウンタを起動する。この
カウンタは、BCLKと呼ばれるバス・クロックによっ
てクロックされる。もし、現バス・マスタがGAB12
の制御権を解放する前に、このカウンタが所定の限界値
に達すれば、GAM18は、GAB12上のバス・エラ
ー信号線を付勢する。このバス・サイクルの限界値は、
GAM18の内部レジスタへの書き込みを通して、P1
4によってプログラム可能である。
【0054】GAB12上のバス・エラーが発生する
と、GAM18は、その時点のバス・アクセス・アドレ
ス、現バス・マスタ、及びバス・エラーの原因を、GA
M18の内部記憶域にログする。この情報は、後でエラ
ー分離と回復を行うために、P14がこれを検索するこ
とができる。GAB12用のモニタとしてのGAM18
の機能については、§4.0の「汎用アダプタ・マネー
ジャ(GAM)18」を参照されたい。
【0055】§1.2.5.4: GAMローカル・メ
モリ30 複数のバッファ32を(各パケット対応に連係してこれ
らのバッファのグループに対応する)一のパケット34
に編成し且つ複数のパケット34を(各待ち行列対応に
連係してこれらのパケットのグループに対応する)一の
待ち行列36に編成するために、GAM18が使用する
データ構造は、GAMローカル・メモリ30内に記憶さ
れている。GAB12を通して行われる並行的なパケッ
ト転送を妨害しないように、GAM18は、GAMロー
カル・バス28を通してGAMローカル・メモリ30を
アクセスする。また、P14は、アイソレータ26を通
して、又はGAB12に関するプリミティブの要求を使
用して、GAMローカル・メモリ30をアクセスするこ
とができる。プリミティブの詳細については、§4.5
の「GAM18のプリミティブ」を参照されたい。
【0056】GAMローカル・メモリ30は、16ビッ
ト幅であり、好ましくはスタティックRAMで実現され
る。PM16内にあるメモリの1メガバイトごとに、少
なくとも8K×16ビットのGAMローカル・メモリ3
0が必要である。
【0057】§2.0: 汎用アダプタのアーキテクチ
ャ上の特徴とデータ・フロー 図1には、汎用アダプタのアーキテクチャが示されてい
る。高いスループットと汎用性の要件を満足するため
に、このアーキテクチャは、次の特徴を備えている。 (1)最小の干渉: 汎用アダプタ内には、最大3種類の主要な同時的なデー
タ・フローが、互いに干渉することなく、存在すること
ができる。これらの3つのデータ・フローは、次の通り
である。 PMI20とPM16との間のパケット・データ移
動 GAM18とGAMローカル・メモリ30との間の
GAM18の動作 PM16とPローカル・メモリ22との間のP14
の動作 更に、汎用アダプタの各入出力ポート内には、他のフロ
ーが無数にある。
【0058】(2)並列動作: パケット動作は、次の2つのレベルで並列に実行され
る。 パケット受信中、P14が以前に受信されたパケッ
トを処理している間に、GAM18とPMI20とは、
追加の入力パケットをPM16内に移動させることがで
きる。パケット送信中、P14がPM16内の次の入力
パケットを処理するように進行している間に、GAM1
8とPMI20とは、PM16から出力パケットを移動
させることができる。 第2の並列性のレベルは、GAM18とPMI20
との間のバッファ・レベルで生ずる。一のPMI20が
パケット移動を開始する場合、このPMI20は、フリ
ー・バッファ要求を行う。このフリー・バッファ要求を
受け取ると、GAM18は、同じバス・サイクルの間
に、このPMI20に対し、新しいバッファ・ポインタ
を供給する。この新しいバッファ・ポインタを受け取っ
た後、このPMI20は、直ちにそのパケット移動を開
始することができる。これと同時に、GAM18は、現
要求を完了するとともに、その動作を背景段階で続行し
て、次の要求に対する応答を準備することができる。
【0059】(3)機能的成長の可能性と広範囲の自己
診断能力: このアーキテクチャの主要な設計原理の1つは、汎用ア
ダプタ内の他のハードウェア部分によって行われる任意
のパケット・メモリ機能を、必要に応じて、P14が遂
行できるようにすることである。この原理は、P14が
汎用アダプタ内の全てのメモリをアクセス可能でなけれ
ばならないことを暗示している。この原理の意味は、次
の通りである。 機能的成長の可能性: P14は、任意のメモリ内
の任意のデータを変更可能であり、しかも任意のデータ
・バス上でバス・マスタとして動作することができるか
ら、必要となるような全ての新しいパケット・メモリ管
理機能(例えば、パケット暗号化、データ・カプセル
化、物理アドレス変換)を実現することができる。この
アーキテクチャは、汎用アダプタのハードウェアとコー
ドとの間の柔軟なモジュール式インタフェースのみなら
ず、一層重要な機能的成長の可能性も提供する。 広範囲の自己診断能力: このアーキテクチャを用
いると、P14は、汎用アダプタ内の他の任意のハード
ウェア部分によって行われる任意の機能を再実行して、
その結果をハードウェアによる結果と比較することがで
きる。P14は、一のデータ記憶位置に意図的にエラー
を注入することによって、汎用アダプタ内のハードウェ
アのエラー検出及び回復能力を検査することができる。
この結果、汎用アダプタの自己診断能力の重要な部分を
コードで実現して、汎用アダプタの潜在的な信頼性、可
用性及び保守容易性の要件を満たすことができるように
なる。自己診断コードは、電源投入時の自己診断のため
にこれを不揮発性メモリに記憶し、またオンラインの問
題決定のためにこれをRAMにロード可能なフォーマッ
トで記憶することができる。
【0060】§2.1: 汎用アダプタのデータ・フロ
ー 汎用アダプタの内部には、3本の異なる内部データ・バ
スとして、GAB12と、Pローカル・バス40と、G
AMローカル・バス28とが設けられている。これらの
内部バスのうちの1本を使用して、汎用アダプタ内にあ
る任意の2つの構成要素の間でデータを交換することが
できる。或る時点では、1本の内部バス上で唯1つのデ
ータ交換が存在し得るに過ぎない。しかし、3本の異な
る内部データ・バスは、同時にデータ交換に携わること
ができる、即ち、GAB12上のパケット移動と、Pロ
ーカル・バス40上のP14の処理と、GAMローカル
・バス28上のGAM18の処理とを、同時に行うこと
ができるのである。
【0061】ここで、汎用アダプタ内の6つのデータ・
フローを概説すると、次の通りである。 (1)パケット移動: 起点 − PMI20 宛先 − PM16 実行地 − GAB12上 説明: 一のPMI20は、パケットの受信中及び送信
中に、パケット移動を使用して、PM16との間でパケ
ットを授受する。パケット移動の速度は、汎用アダプタ
の性能にとってクリティカルであって、汎用アダプタの
最大データ・スループット要件の少なくとも2倍の総合
スループットをサポート可能でなければならない。GA
B12は、ストリーム・モード動作をサポートして、こ
のタイミング要件を満足する。
【0062】(2)GAM18のプリミティブとその応
答: 起点 − P14又はPMI20 宛先 − GAM18 実行地 − GAB12 説明: GAM18のプリミティブ(以下「プリミティ
ブ」と略記))が呼び出されるのは、P14又は一のP
MI20が、パケットのエンキュー/デキュー又はフリ
ー・バッファの割り当てのような、PM16の管理機能
の遂行をGAM18に要求する場合である。プリミティ
ブの要求及びその応答情報は、GAB12上のMM/I
O(メモリ・マップド入出力)動作を通して発行され
る。GAM18内の処理は、単一スレッド式である。即
ち、一旦GAM18がP14又は一のPMI20から一
の要求を受理すると、GAM18がこの現要求を完了す
るまで、他の要求は受理されないのである。GAM18
の応答は、同期式又は非同期式の何れでもよい。同期式
応答とは、バス要求元がその要求と同じバス・サイクル
の間に、その応答を受け取ることができることを意味す
る。他方、非同期式応答とは、バス要求元が、その要求
に対するGAM18の応答を、単一のバス・サイクルの
間に受け取ることができないことを意味する。従って、
このバス要求元は、後の折衝を通して取り決められた一
のバス・サイクルの間に、専用の応答レジスタからその
応答を検索しなければならないのである。
【0063】(3)GAM18のローカル動作: 起点 − GAM18又はP14 宛先 − GAMローカル・メモリ30 実行地 − GAMローカル・バス28 説明: GAMローカル・メモリ30は、GAM18が
PM16の管理機能を実行するのに不可欠の、全てのデ
ータ構造を記憶するのに使用される。P14及びPMI
20からの要求を処理するために、GAM18は、GA
Mローカル・メモリ30の読み書きを行えなければなら
ない。更に、汎用アダプタのアーキテクチャでは、広範
囲の自己診断能力と将来のGAM機能の強化をもたらす
ために、P14がGAMローカル・メモリ30をアクセ
スすることも可能である。
【0064】(4)P14の直接制御メッセージ: 起点 − P14 宛先 − PMI20及び入出力ポート 実行地 − GAB12 説明: P14は、この直接制御メッセージを使用し
て、PMI20及び入出力ポートの内部にあるハードウ
ェアを制御するとともに、これをプログラムする。この
直接制御メッセージは、GAB12上のMM/IOバス
動作を通して発行される。この直接制御メッセージの適
用例には、PMI20の内部にある状況レジスタの読み
書きと、入出力ポートの内部にある通信フロント・エン
ドの制御レジスタの読み書きが含まれる。
【0065】(5)P14のローカル動作: 起点 − P14 宛先 − Pローカル・メモリ22 実行地 − Pローカル・バス40 説明: P14のローカル動作は、プロセッサ命令の取
り出しと、即値制御データの読み書きを含んでいる。P
ローカル・バス40のタイミングは、アイドル状態の導
入なしに、所期のメモリ・アクセス時間とP14のMI
PS(100万命令/秒)レートをサポート可能でなけ
ればならない。Pローカル・メモリ22のデータの読み
書き動作は、P14の内部で実行する通信コードによっ
て遂行される。
【0066】(6)P14のパケット処理: 起点 − P14 宛先 − PM16 実行地 − GAB12 説明: 一のパケットが一の入出力ポートによって受信
される場合、このPMI20は、このパケット内のデー
タをそのヘッダ情報とともにPM16内に記憶する。こ
のヘッダ情報は、P14内の通信コードが種々のプロト
コル層の機能を遂行するのに不可欠である。P14は、
PM16のデータの読み出し/書き込みを行わなければ
ならない。このデータ・フローは、GAB12上の一連
のストリーム・モード動作として行われる。
【0067】§3.0: パケット・メモリ(PM)と
コントローラ16 PM16は、入力パケット及び出力パケット用のバッフ
ァ記憶域として使用される。一のパケットが1つの入出
力ポートで受信される場合、この入出力ポートに関連す
るPMI20は、このパケットをPM16内に記憶す
る。その後、P14内の通信コードは、そのプロトコル
層の機能に従って、PM16内にある受信パケット内の
ヘッダ情報を処理する。一のパケットがP14によって
処理された後、他の入出力ポート上のPMI20は、こ
のパケットをPM16から移動させて、このパケットの
送信を開始する。但し、一のパケットを1つのPMI2
0で受信し、このパケットをPM16内に記憶し、その
後、P14の処理を行わずに、このパケットを他のPM
I20を通して直ちに送信することも可能である。
【0068】§3.1: PM16の編成 PM16は、パケットの記憶専用である。PM16のサ
イズには、16メガバイトという実現上の制限がある。
PM16は、複数のバッファに編成される。説明中の実
現形態における各バッファは、連続する256バイトに
相当する容量を有し、一のバッファ境界から開始する
(各バッファの開始アドレスの下位8ビットは、全てゼ
ロである)。PM16内の全てのバッファは、GAM1
8によって管理される。GAM18の詳細については、
§4.0の「汎用アダプタ・マネージャ(GAM)1
8」を参照されたい。
【0069】PM16の速度は、汎用アダプタの性能に
とって非常に重要である。PM16のアクセス時間は、
遅延の導入なしに、GAB12の所期のサイクル時間を
サポート可能でなければならない。
【0070】§3.2: PM16のサイズ PM16のサイズは、次の要因に基づいて決定しなけれ
ばならない。 コスト カード面積 パケット・サイズ 活動状態にある論理リンク・ステーションの数 論理リンク・ステーションのウィンドウ・サイズ 往復タイマや再送タイマのようなリンク・ステーション
の他の属性 所望の性能レベル その他
【0071】§3.3: PMコントローラ PM16は、スタティックRAM又はダイナミックRA
Mで実現することができる。もし、PM16がスタティ
ックRAMで実現されていれば、信号インタフェースを
除く主要な機能を、PMコントローラによって遂行する
必要はない。他方、PM16がダイナミックRAMで実
現されていれば、PMコントローラは、次の機能を遂行
しなければならない。 ダイナミック・メモリ・リフレッシュ ECCコードの生成/訂正/検査 行アドレス及び列アドレス制御の選択 GAB12上のパリティ生成 その他
【0072】§3.4: PM16のデータ保全性の保
護 もし、PM16がスタティックRAMで実現されていれ
ば、メモリ内容のデータ保全性は、パリティ・メモリ・
ビットによって保護しなければならない。PM16の書
き込み動作を行う場合、これらのパリティ・メモリ・ビ
ットは、GAB12のデータ・パリティ・ビットに従っ
てセットされる。他方、PM16の読み出し動作を行う
場合、パリティ・メモリ・ビットの内容は、GAB12
のデータ・パリティ線上を伝播する。もし、メモリ内容
の改ざんがあれば、GAM18内のモニタが一のパリテ
ィ・エラーを検知して、バス・エラー信号線を付勢す
る。
【0073】もし、PM16がダイナミックRAMで実
現されていれば、データ保全性は、7ビットのECCコ
ードによって保護しなければならない。このECCコー
ドは、1ビット・エラーを訂正し、2ビット・エラーを
検知することができる。PM16の書き込み動作を行う
場合、PMコントローラは、7ビットのECCコードを
生成して、これらのビットをPM16内に記憶する。他
方、PM16の読み出し動作を行う場合、PMコントロ
ーラは、ECCコードの検査を遂行する。もし、1ビッ
ト・エラーがあれば、PMコントローラは、その1ビッ
ト・エラーを訂正して、読み出し動作を継続する。しか
し、PMコントローラは、このエラー状況を指示するた
めに、P14に対しマスク可能な割り込みを生成する。
もし、2ビット・エラーがあれば、PMコントローラ
は、それ自体を内部的にロックするから、それ以降のP
M16の読み出し/書き込み動作に応答できなくなる。
このことが起こると、次のバス・サイクルの間にPM1
6をアドレスするバス・マスタは、そのコマンド/要求
に対する応答を受け取ることができない。所定の設定時
間の後に、GAM18内のモニタは、この「無応答」状
態を検知して、GAB12上にバス・エラー信号を生成
する。§4.0の「汎用アダプタ・マネージャ(GA
M)18」で説明するように、GAM18は、このバス
・エラーの間のアクセス・アドレスをログする。P14
は、この情報に基づいて、このバス・エラーの原因を突
き止めることができる。
【0074】§4.0: 汎用アダプタ・マネージャ
(GAM)18 本章と§5.0の「待ち行列のスケジューリングと通
知」では、GAM18が提供する機能及び特徴並びにそ
のインタフェース及び内部的なデータ構造を詳述する。
但し、GAM18の待ち行列スケジューリングについて
は、本章では説明せずに、§5.0の「待ち行列のスケ
ジューリングと通知」において、これを詳述する。
【0075】§4.1: GAM18の主要な機能 バッファ32の管理 パケット34の管理 待ち行列36のスケジューリング 事象の制御 トラヒックの制御 P14及びPMI20のインタフェース マルチキャスト・パケット機能のサポート 多重インタリーブ式のパケット送信/受信 GAB12用のアービタ GAB12用のモニタ
【0076】§4.2: GAM18の設計目標 (1)P14及びPMI20のハードウェアに対し統一
的なインタフェースを提供する (2)P14の通信コードに対し統一的なインタフェー
スを提供する (3)P14及びPMI20の設計をPM16の内部に
ある制御ブロック構造から独立させる (4)反復的な機能に関するP14内のコードのオーバ
ヘッドを減少させる (5)将来の機能拡張のための汎用プラットホームを提
供する (6)GAB12のデータ移動に対する干渉を最小にす
る (7)汎用アダプタのスループットと応答時間性能の目
標をサポートする (8)マルチキャスト・パケットのサポートのような通
信機能の実現形態をサポートする
【0077】§4.3: GAM18の性能目標 (1)応答時間 GAM18の応答時間とは、GAM18が一の要求を受
け取ってからその応答を与えるまでの、時間間隔として
定義される。次に掲げる時間的にクリティカルな要求に
対するGAM18の応答は、この要求が行われるのと同
じバス・サイクルの間に準備される。 パケット受信要求(REQ_RX) フリー・バッファ要求(REQ_BUF) 次の送信バッファ要求(NXT_BUF)
【0078】(2)スループット GAM18に対する最悪状況のスループット要件は、汎
用アダプタが一連の(サイズが256バイト以下の)短
いパケットを受信する場合に相当する。一の短いパケッ
トを受信するためには、GAM18は、次の2つの要求
を処理する必要がある。 パケット受信要求(REQ_RX) パケットのエンキュー/受信後(ENQ_PKT/R) GAM18が汎用アダプタの隘路とならずに最悪状況の
データ・フローを維持するためには、これらの2つの要
求に対する総処理時間は、一の短いパケットの送信時間
よりも小さくなければならない。
【0079】§4.4: バッファ32、パケット3
4、待ち行列36 本節では、汎用アダプタ内のバッファ32、パケット3
4、及び待ち行列36の意味を定義するとともに、これ
らの相互の関係と、GAM18がどのようにしてこれら
を互いに論理的に連係するかを説明する。バッファと
は、PM16内で割り当て可能な最小の論理メモリ・エ
ンティティである。パケットとは、互いに論理的に連係
されたバッファのグループである。更に、パケットのグ
ループが互いに論理的に連係されると、一の待ち行列が
形成される。
【0080】§4.4.1: バッファ32とバッファ
・テーブル・エントリ(BTE) §3.0の「パケット・メモリ(PM)とコントローラ
16」で説明したように、汎用アダプタ内のPM16
は、複数のバッファ32に分割されている。各バッファ
は、一のバッファ境界で開始する処の、連続する256
バイトであると定義される。PM16内の各バッファご
とに、GAMローカル・メモリ30内で定義されている
処の、対応する1つのバッファ・テーブル・エントリ
(BTE)が存在する。各BTEは4バイト長であっ
て、その最初の2バイトは、「次のバッファ・ポイン
タ」を保持する。汎用アダプタの初期設定中に、全ての
バッファは、フリー・バッファとして初期設定され、そ
してフリー・バッファ・プール内の全てのフリー・バッ
ファは、BTE内の「次のバッファ・ポインタ」によっ
て互いに連係されて、一のフリー・バッファ・リストを
形成する。この場合、一のフリー・バッファに対応する
BTE内の「次のバッファ・ポインタ」は、このフリー
・バッファ・リスト内の次のフリー・バッファを指定す
る。パケット・データを記憶するために、P14又はP
MI20が、複数のフリー・バッファを割り当てる場
合、これらのフリー・バッファは、パケット・バッファ
になる。一のパケット・バッファに対応するBTE内の
「次のバッファ・ポインタ」は、同じパケット内の次の
パケット・バッファを指定する。但し、後者のパケット
・バッファが、一のパケット内の最終バッファである場
合は例外であって、この場合には、最終パケット・バッ
ファに対応するBTE内の「次のバッファ・ポインタ」
は、ゼロにセットされる。BTEとバッファとは、1対
1の関係にある。即ち、BTE#1はバッファ#1に対
応し、BTE#2はバッファ#2に対応し、以下同様で
ある。しかし、BTE#0とそのアドレスは、GAM1
8による内部的な使用のために予約されているから、P
M16内のバッファ#0は、通常のようには使用されな
い。
【0081】各BTEは、「次のバッファ・ポインタ」
に加えて、1バイトの「バッファ・オフセット」及び1
バイトの「バッファ・バイト・カウント」情報を保持す
る。これらの2バイト情報は、対応するバッファがフリ
ー・バッファである場合は、何の意味も持たない。他
方、対応するバッファがパケット・バッファである場合
には、これらの2バイト情報は、有効なパケット・デー
タがこのパケット・バッファ内で開始する位置と、この
パケット・バッファ内で有効なデータのバイト数とを指
示する。
【0082】§4.4.2: パケット34とパケット
・テーブル・エントリ(PTE) 一のパケット34は、接続されたネットワーク又はシス
テムと汎用アダプタとの間で授受されるデータの単位で
ある。各パケットは、どのような長さであってもよい。
一のパケットをPM16に記憶すべき場合、これを順次
に記憶する必要はない。その代り、PM16内の各パケ
ットは、一のバッファ・グループとして記憶され、その
グループ内のバッファの数は、このパケットの長さによ
って決定される。このグループ内のバッファを、順次に
配置する必要はない。というのは、GAM18におい
て、複数のパケット・バッファが、BTE内の「次のバ
ッファ・ポインタ」を通して互いに論理的に連係される
からである。一旦パケットがPM16に記憶されると、
このパケットは、GAM18によって1単位として処理
される。この単位を表すために、GAM18は、PM1
6内に存在する各パケットごとに1つのパケット・テー
ブル・エントリ(PTE)を、GAMローカル・メモリ
30内に有する。従って、GAM18からすれば、PM
16内の各パケットは、一のPTE+互いに連係された
幾つかの関連するBTEとして見えることになる。GA
M18内のPTEの数は、GAMローカル・メモリ30
のサイズによって決定される。各PTEは、16バイト
長であって、パケット状態や、先頭(第1)パケット・
バッファや、最終パケット・バッファのような情報を保
持する。
【0083】§4.4.3: 待ち行列36と待ち行列
制御ブロック(QCB) 汎用アダプタ内の一の待ち行列36は、順次に記憶され
た複数のパケットのリストである。各待ち行列は、ヘッ
ドとテイルとを有する。各パケットは、待ち行列のヘッ
ド(緊急トラヒックの場合)又は待ち行列のテイル(同
期及び非同期トラヒックの場合)の何れかからエンキュ
ーすることができるが、各パケットは、待ち行列のヘッ
ドからだけデキューすることができる。パケットのエン
キュー及びデキュー動作を制御するため、GAM18
は、汎用アダプタ内で定義されている待ち行列ごとに1
つの待ち行列制御ブロック(QCB)を有する。各QC
B内には、対応する待ち行列内の先頭パケットを指定す
るヘッド・ポインタと、この待ち行列内の最終パケット
を指定するテイル・ポインタとがある。
【0084】§4.4.4: バッファ32とパケット
34と待ち行列36の関係 図2には、GAM18から見た場合のバッファ32、パ
ケット34及び待ち行列36の論理的関係が示されてお
り、また複数のバッファ32を(各パケット対応に連係
してこれらのバッファのグループに対応する)一のパケ
ット34に編成する態様及び複数のパケット34を(各
待ち行列対応に連係してこれらのパケットのグループに
対応する)一の待ち行列36に編成する態様が示されて
いる。
【0085】§4.5: GAM18のプリミティブ 本節では、GAM18がサポートする全プリミティブの
リストを提供する。GAM18内で定義されている各プ
リミティブについては、以下の各項で別々に説明する。
各項では、先ず要求フォーマットについて説明し、次に
機能とプリミティブの応答とを説明する。プリミティブ
の要求と応答とは、GAB12上のMM/IO動作を通
して発行されるから、要求及び応答のフォーマットは、
GAB12を構成するデータ・バス線及びアドレス・バ
ス線を使用して説明する。GAB12上の信号の詳細に
ついては、§6.0の「汎用アダプタ・バス(GAB)
12」を参照されたい。なお、以下の記述において、記
号「A」は、GAB12を構成するアドレス・バス線を
表し、記号「D」は、GAB12を構成するデータ・バ
ス線を表し、記号「B」は、これに並記されたアドレス
・バス線上の2進値を表すものとする。例えば、「A2
2〜A19: B‘0000’」という表記は、GAB
12を構成するアドレス・バス線22〜19上の2進値
が「0000」であることを意味する。
【0086】(注): GAB12用のアービタとして
も動作するGAM18は、要求を受信する時にどのバス
・マスタがプリミティブを発行したかを正確に知ってい
るから、どのバス・マスタがプリミティブを発行するか
を要求フォーマット中で指定する必要はない。
【0087】§4.5.1: REQ_RX(パケット
受信要求) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
000’ 要求識別子 − 3ビット、A18〜A16(§4.1
0の「多重インタリーブ式の並行的なパケット送信/受
信」を参照) 予約済み(ゼロ) − A15〜A02 機能: パケット及びバッファの空間をGAM18から
要求するために、このプリミティブがP14又はPMI
20によって呼び出されるシナリオとしては、次の2つ
のものがある。 パケット受信: 一の入出力ポートをアドレス指定
する入力パケットがあると、この入出力ポート上のPM
I20は、パケット受信を設定するために、このプリミ
ティブをGAM18に対し発行する。 新しいパケット生成: 多くの状況において、P1
4内の通信コードは、汎用アダプタ内で新しいパケット
を生成し、この新しく生成されたパケットを「コマン
ド」又は「肯定応答」として、ネットワーク上に送信す
る必要がある。このような状況が生じると、P14は、
パケット受信の場合にPMI20が行うのと同様に、こ
のプリミティブを発行して、新しいパケットの生成を設
定することができる。この要求を受け取る場合、GAM
18は、使用可能な最初のPTEと、フリー・バッファ
・プール内の最初のフリー・バッファを割り当てるとと
もに、割り当てられたフリー・バッファのポインタを、
GAM応答内に含めて戻す。このバッファ・ポインタを
受け取ると、P14又はPMI20は、そのパケット・
データ移動を直ちに開始することができる。この要求
は、GAB12上のMM/IO読み出し動作を通して発
行される。 〈応答フォーマット〉: パケット・ポインタ − 16ビット、D31〜D16
(もし、D31〜D16が全てゼロであれば、この要求
は拒否された) バッファ・ポインタ − 16ビット、D15〜D00
(もし、D15〜D00が全てゼロであれば、この要求
は拒否された)
【0088】§4.5.2: REQ_TX(パケット
送信要求) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
001’ 要求識別子 − 3ビット、A18〜A16 待ち行列識別子 − 8ビット、A09〜A02 予約済み(ゼロ) − A25、A15〜A10 機能: 一の出力待ち行列にサービスする準備ができる
と、PMI20は、パケット送信を開始するために、こ
のプリミティブを発行する。この要求を受け取る場合、
GAM18は、この出力待ち行列(その識別子はこの要
求の一部として渡される)のヘッドを見つけ、先頭バッ
ファのオフセット、先頭バッファのカウント及び先頭バ
ッファのポインタを、GAM応答に含めて戻す。この要
求は、GAB12上のMM/IO読み出し動作を通して
発行される。 〈応答フォーマット〉: バッファ・オフセット − 8ビット、D31〜D24 バイト・カウント − 8ビット、D23〜D16 バッファ・ポインタ − 16ビット、D15〜D00
(もし、D15〜D00が全てゼロであれば、この要求
が拒否されたか、又はこのパケット内にこれ以上バッフ
ァが存在しない)
【0089】§4.5.3: REQ_BUF(フリー
・バッファ要求) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
010’ 要求識別子 − 3ビット、A18〜A16 予約済み(ゼロ) − A15〜A02 機能: パケット受信中又は新しいパケットの生成中
に、一層多くのバッファ空間の割り当てを要求するため
に、PMI20又はP14が、このプリミティブを発行
する。この要求を受け取る場合、GAM18は、フリー
・バッファ・プール内の先頭のフリー・バッファを割り
当てるとともに、この割り当てられたフリー・バッファ
のポインタをGAM応答に含めて戻す。この応答を受け
取る場合、P14又はPMI20は、この割り当て済み
のバッファにパケット・データを移動させることができ
る。この要求は、GAB12上のMM/IO読み出し動
作を通して発行される。 〈応答フォーマット〉: 予約済み − D31〜D16 バッファ・ポインタ − 16ビット、D15〜D00
(もし、D15〜D00が全てゼロであれば、この要求
が拒否された)
【0090】§4.5.4: NXT_BUF(次の送
信バッファ要求) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
011’ 要求識別子 − 3ビット、A18〜A16 予約済み(ゼロ) − A15〜A02 機能: パケット送信中に、送信パケット内の次のバッ
ファ・ポインタをGAM18から要求するために、一の
PMI20が、このプリミティブを発行する。この要求
を受け取る場合、GAM18は、現送信パケット内の次
のバッファ・ポインタを探し、このバッファ・ポイン
タ、バッファ・オフセット及びバッファ・バイト・カウ
ントを、GAM応答に含めて戻す。この応答を受け取る
場合、このPMI20は、送信のためにPM16からの
パケット移動を設定することができる。この要求は、G
AB12上のMM/IO読み出し動作を通して発行され
る。 〈応答フォーマット〉: バッファ・オフセット − 8ビット、D31〜D24 バイト・カウント − 8ビット、D23〜D16 バッファ・ポインタ − 16ビット、D15〜D00
(もし、D15〜D00が全てゼロであれば、この要求
は拒否された)
【0091】§4.5.5: ENQ_PKT/R(パ
ケットのエンキュー/受信後) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
100’ 要求識別子 − 3ビット、A18〜A16 トラヒック・タイプ − 2ビット、A15〜A14
(§4.8の「トラヒック・タイプと制御」を参照) A15−A14 = B‘00’ : 非同期トラヒッ
ク A15〜A14 = B‘01’ : 同期トラヒック A15〜A14 = B‘10’ : 緊急トラヒック A15〜A14 = B‘11’ : 未使用 パケット・タイプ − 2ビット、A11〜A10(§
4.7の「パケット・タイプ」を参照) A15〜A14 = B‘00’ : 未使用 A11〜A10 = B‘01’ : タイプ1のパケ
ット A11〜A10 = B‘10’ : タイプ2のパケ
ット A11〜A10 = B‘11’ : タイプ3のパケ
ット 待ち行列識別子 − 8ビット、A09〜A02 先頭バッファ・オフセット − 8ビット、D31〜D
24 最終バッファ・カウント − 8ビット、D23〜D1
6 次のバッファ・ポインタ − 16ビット、D15〜D
00 このフィールドは、通常のパケット受信中はゼロにセッ
トしなければならない。マルチキャスト・パケットをサ
ポートする状況では、このフィールドは、元のマルチキ
ャスト・パケット内の先頭バッファのポインタを保持し
なければならない(詳細については、§4.9の「マル
チキャスト・パケット機能のサポート」を参照)。 予約済み(ゼロ) − A13〜A12 機能: パケット受信後又は新しいパケット生成の完了
後に、パケットをエンキューすることを要求するため
に、P14又はPMI20が、このプリミティブを呼び
出す。もし、このパケットのトラヒック・タイプが緊急
であれば、GAM18は、一の待ち行列のヘッドに、こ
のパケットをエンキューする。さもなければ、このパケ
ットは、一の待ち行列のテイルにエンキューされる。こ
の要求は、GAB12上のMM/IO書き込み動作を通
して発行される。 〈応答〉 − なし
【0092】§4.5.6: ENQ_PKT/N(パ
ケットのエンキュー/通常) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
101’ 待ち行列識別子 − 8ビット、A09〜A02 パケット識別子 − 16ビット、D15〜D00 予約済み(ゼロ) − A18〜A10、D31〜D1
6 機能: 一のパケットのエンキューを要求するために、
P14が、このプリミティブを呼び出す。もし、このパ
ケットの(最初のエンキュー時に指定された)トラヒッ
ク・タイプが緊急であれば、GAM18は、このパケッ
トを待ち行列のヘッドからエンキューする。さもなけれ
ば、このパケットは待ち行列のテイルにエンキューされ
る。この要求は、GAB12上のMM/IO書き込み動
作を通して発行される。 〈応答〉 − なし
【0093】§4.5.7: DEQ_PKT(パケッ
トのデキュー) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
110’ 待ち行列識別子 − 8ビット、A09〜A02 予約済み(ゼロ) − A18〜A10 機能: 一のパケットを一の待ち行列からデキューする
ために、P14が、このプリミティブを呼び出す。この
待ち行列識別子は、この要求の一部として渡される。こ
の要求は、GAB12上のMM/IO読み出し動作を通
して発行される。 〈応答フォーマット〉: パケット・ポインタ − 16ビット、D31〜D16
(もし、D31〜D16が全てゼロであれば、この要求
が拒否された) 先頭バッファ・ポインタ − 16ビット、D15〜D
00(もし、D15〜D00が全てゼロであれば、この
要求が拒否された)
【0094】§4.5.8: REL_PKT(パケッ
トの解放) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘0
111’ パケット識別子 − 16ビット、D15〜D00 予約済み(ゼロ) − A18〜A02、D31〜D1
5 機能: 一のパケットをフリー・バッファ・プールに戻
すために、P14が、このプリミティブを呼び出す。パ
ケット・ポインタは、この要求の一部として渡される。
この要求を受け取る場合、GAM18は、このパケット
及びこれに関連する全てのバッファをフリー・プールに
解放する。この要求は、GAB12上のMM/IO書き
込み動作を通して発行される。 〈応答〉 − なし
【0095】§4.5.9: FLUSH(パケットの
フラッシュ) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
000’ 要求識別子 − 3ビット、A18〜A16 予約済み(ゼロ) − A15〜A02 機能: 現パケットをフラッシュするために、P14又
はPMI20が、このプリミティブを呼び出す。パケッ
ト受信中又は新しいパケット生成中に、もし、一のPM
I20又はP14が何らかの理由で進行中の動作を完了
できないと決定すれば、そのPMI20又はP14は、
その処理を終了させるために、このプリミティブを発行
することができる。この要求を受け取る場合、GAM1
8は、割り当てられた全てのバッファを解放し、これら
のバッファをフリー・バッファ・プールに戻し、PTE
をフリー・パケット・プールに戻す。この要求は、GA
B12上のMM/IO書き込み動作を通して発行され
る。 〈応答〉 − なし
【0096】§4.5.10: END_TX(送信終
了) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
001’ 要求識別子 − 3ビット、A18〜A16 予約済み(ゼロ) − A15〜A02 機能: パケット送信中にパケット移動の終了を知らせ
るために、一のPMI20が、このプリミティブを呼び
出す。このプリミティブを受け取る場合、GAM18
は、送信パケットのタイプに応じてこれを処理する(§
4.7の「パケット・タイプ」を参照)。この要求は、
GAB12上のMM/IO書き込み動作を通して発行さ
れる。 〈応答〉 − なし
【0097】§4.5.11: ENQ_ENT(事象
のエンキュー) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
010’ 予約済み(ゼロ) − A18〜A02 事象データ − 32ビット、D31〜D00 機能: 一の事象をGAM18内にある事象FIFOに
置くために、一のPMI20又はP14が、このプリミ
ティブを呼び出す。この要求を受け取る場合、GAM1
8は、4バイトの事象データをその内部にある事象FI
FOに置くとともに、必要に応じてこの事象を処理する
ようにP14を「覚醒」させる(§4.12の「事象の
制御」を参照)。この要求は、GAB12上のMM/I
O書き込み動作を通して発行される。 〈応答〉 − なし
【0098】§4.5.12: DEQ_ENT(事象
のデキュー) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
011’ 予約済み(ゼロ) − A18〜A02 機能: 事象データをGAM18から検索するために、
P14が、このプリミティブを呼び出す。この要求を受
け取る場合、GAM18は、その内部にある事象FIF
Oから事象データの最初の4バイトを検索して、処理の
ためにこの情報をP14に戻す。この要求は、GAB1
2上のMM/IO読み出し動作を通して発行される。 〈応答フォーマット〉: 事象データ − 32ビット、D31〜D00(もし、
事象がなければ、D31〜D00は全てゼロである)
【0099】§4.5.13: RD_RSR(応答状
況レジスタの読み出し) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
100’ 予約済み(ゼロ) − A18〜A02 機能: 以前のGAM要求に対する応答を検索するため
に、P14又は一のPMI20が、このプリミティブを
呼び出す。このGAM応答の詳細については、§4.6
の「GAM18の応答 − 同期式と非同期式の対比」
を参照されたい。この要求は、GAB12上のMM/I
O読み出し動作を通して発行される。 〈応答フォーマット〉: 応答状況レジスタ − 32ビット、D31〜D00
【0100】§4.5.14: RD_QSR(待ち行
列状況レジスタの読み出し) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
101’ オフセット − 3ビット、A04〜A02 予約済み(ゼロ) − A18〜A05 機能: P14又は一のPMI20がサービスしている
待ち行列セットのビット・マップを検索するために、P
14又はこのPMI20が、このプリミティブを呼び出
す。待ち行列セットと待ち行列状況レジスタの詳細につ
いては、§5.0の「待ち行列のスケジューリングと通
知」を参照されたい。入力パラメータであるオフセット
は、この待ち行列状況レジスタのどの32ビットが望ま
れているかを指示するために使用される。例えば、もし
オフセット=0であれば、待ち行列#0〜待ち行列#3
1に対応する待ち行列状況レジスタの内容が、応答に含
めて戻される。他方、オフセット=1であれば、待ち行
列#32〜待ち行列#63に対応する待ち行列状況レジ
スタの内容が戻され、以下同様である。この要求は、G
AB12上のMM/IO読み出し動作を通して発行され
る。 〈応答フォーマット〉: 待ち行列状況レジスタ − 32ビット、D31〜D0
【0101】§4.5.15: RD_GAM(GAM
内容の読み出し) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
110’ アドレス − 18ビット、A25、A18〜A02 機能: GAM18の内部にあるメモリ及びレジスタを
読み出すために、P14が、このプリミティブを呼び出
す。この要求は、GAB12上のMM/IO読み出し動
作を通して発行される。 〈応答フォーマット〉: 予約済み − 16ビット、D31〜D15 GAM内容 − 16ビット、D15〜D00
【0102】§4.5.16: WT_GAM(GAM
内容の書き込み) 〈要求フォーマット〉: 要求コード − 4ビット、A22〜A19: B‘1
111’ アドレス − 18ビット、A25、A18〜A02 データ − 16ビット、D15〜D00 予約済み(ゼロ) − D31〜D16 機能: GAM18の内部にあるメモリとレジスタに書
き込むために、P14が、このプリミティブを呼び出
す。このプリミティブの要求元は、P14でなければな
らない。さもなければ、如何なるデータも書き込まれな
い。この要求は、GAB12上のMM/IO書き込み動
作を通して発行される。 〈応答〉 − なし
【0103】§4.6: GAM18の応答 − 同期
式と非同期式の対比 GAM18に対する要求(GAM要求)には、GAM1
8が応答を戻すことを必要とするものと、必要としない
ものとがある。応答を必要とする要求については、GA
M18は、この応答を同期式に戻すか、非同期式に戻す
かというオプションを有する。同期式又は非同期式応答
の定義を提示する前に、GAM18の動作に関する基本
的事項の説明を以下に掲げておく。
【0104】GAM18の全ての活動は、単一スレッド
式である。即ち、一旦要求が受理されると、GAM18
は、現要求に対するサービスを完了するまで、他の要求
を受理しない。一の要求をサービスするために、GAM
18は、一連の動作を実行する必要がある。この一連の
動作は、2つの段階に分けることができる。第1の動作
段階は、「クリティカル段階」であって、短い期間内に
一の応答を生成してこれを要求元に戻すのに必要とされ
る全ての本質的動作を含んでいる。第2の動作段階は、
「背景段階」であって、このサービスを完了するのに必
要とされる残りの動作を含んでいる。
【0105】GAM18が一のGAM要求に対する一の
同期式応答を生成するには、次の条件が満足されなけれ
ばならない。 (1)この要求が、応答を必要とすること。 (2)この応答は、要求元がその処理を継続するために
決定的であること。 (3)この要求及びそれに関連する入力パラメータを、
21ビットのアドレス・バス線及び4ビットのバイト・
イネーブル線を通して搬送可能であること(GAM要求
については、アドレス・バス線24及び23上の2進ビ
ット値は、図10に示されているように、GAM18を
宛先とするためその値が‘11’に固定されているか
ら、この要求を搬送するためにこれらのビットを使用す
ることはできない)。もし、これらの条件が満たされる
ならば、要求元は、一の「読み出し」動作を通してその
要求を行い、これと同じバス・サイクルの間に、GAB
12のデータ・バスから応答を検索することができる。 (4)「クリティカル段階」動作の持続時間が、予め定
義された期間よりも短いこと。この持続時間は、実現形
態に依存する。
【0106】もし、これらの条件が満たされなければ、
GAM応答は非同期式でなければならない。非同期式応
答の場合、要求元は、「RD_RSR(応答状況レジス
タの読み出し)」プリミティブを発行して、後に(即
ち、GAM18がこの要求に対するサービスを完了した
時に)その応答を検索しなければならない。GAM18
は、その内部に幾つかの応答状況レジスタを備えてお
り、その1つはP14用であり、それ以外はPMI20
用である。
【0107】同期式応答は、次の特徴を有する。 (1)一の同期式応答に対応する要求は、GAB12上
のMM/IO読み出し動作を通して発行された。 (2)この応答は、この要求と同じバス・サイクルの間
にデータ・バスに戻すことができる。
【0108】同期式応答を伴うGAM要求は、次のもの
を含んでいる。 REQ_RX REQ_BUF REQ_TX NXT_BUF DEQ_PKT DEQ_ENT RD_QSR RD_RSR RD_GAM WT_GAM
【0109】現在、非同期式応答を必要とするGAM要
求は存在しない。
【0110】§4.7: パケット・タイプ 汎用アダプタ内でサポートされるパケットには、タイプ
1〜タイプ3がある。これらの3つのタイプのパケット
は、パケット送信の終了時を除き、GAM18から殆ど
同じ扱いを受ける。
【0111】タイプ1のパケットの場合、パケット送信
の終了時に、GAM18は、このパケット及びこれに関
連する全てのバッファを、フリー・プールに自動的に解
放する。タイプ1のパケットをサポートする意図は、コ
ネクションレス型パケットに関するP14のオーバヘッ
ドを減少させることにある。
【0112】タイプ2のパケットの場合、パケット送信
の終了時に、諸パケット・バッファは、フリー・バッフ
ァ・プールに自動的には戻されない。このことが生ずる
のは、GAM18が「REL_PKT(パケットの解
放)」要求を受け取る場合だけである。これが生ずる
と、パケット送信の完了後に、諸パケット及びこれに関
連する全てのバッファが、フリー・プールに戻される。
【0113】タイプ3のパケットの場合、パケット送信
の終了時に、GAM18は、このパケットを現パケット
待ち行列のテイルに自動的にエンキューする。タイプ3
のパケットをサポートする意図は、FDDIネットワー
ク内のクレーム・パケットやビーコン・パケットのよう
な反復的な循環パケットに関連するP14のオーバヘッ
ドを減少させることにある。なお、反復的な循環パケッ
トとは、何回も再送されるように、現パケット待ち行列
のテイルに自動的にエンキューされるパケットを意味す
る。この場合、P14の介在は不要であるから、その結
果として、P14のオーバヘッドが減少することにな
る。
【0114】§4.8: トラヒック・タイプと制御 汎用アダプタは、緊急、同期、及び非同期という3つの
タイプの通信トラヒックをサポートする。同期トラヒッ
クをサポートするために、汎用アダプタは、同期トラヒ
ックの帯域幅と記憶域を保証しなければならない。同期
トラヒックの帯域幅を保証するために汎用アダプタが採
用するポリシーは、汎用アダプタに流れ込む非同期トラ
ヒックを制限することである。このポリシーは、次のよ
うに作用する。
【0115】§3.0の「パケット・メモリ(PM)と
コントローラ16」で説明したように、汎用アダプタ内
のPM16は、複数のバッファに分割される。汎用アダ
プタの初期設定中に、全てのバッファはフリー・バッフ
ァとして初期設定される。同期トラヒックのパケット
は、必要に応じて、幾つでもフリー・バッファを使用す
ることができる。他方、非同期トラヒックのパケット
は、指定された数までのフリー・バッファしか使用する
ことができない。この数は、非同期バッファの閾値であ
って、P14によってプログラム可能である。このポリ
シーは、GAM18によって、次のように適用される。 (1)一のPMI20が入力パケットを受信するか、又
は、P14が新しいパケットを生成する必要がある場
合、このPMI20又はP14は、「REQ_RX」プ
リミティブ及び/又は「REQ_BUF」プリミティブ
を発行して、GAM18からフリー・バッファを要求す
る。もし、使用可能なフリー・バッファがあれば、GA
M18は、先頭のフリー・バッファをバッファ要求元に
与える。 (2)もし、使用可能なフリー・バッファがなければ、
この要求は拒否され、このPMI20又はP14は、空
白のバッファ・ポインタを受け取る。この状況におい
て、このPMI20又はP14は、直ちにデータ送信を
フラッシュするか又はこれを阻止する。 (3)また、GAM18は、その内部にフリー・バッフ
ァ・カウンタを維持している。このカウンタは、汎用ア
ダプタ内で現に使用可能なフリー・バッファの総数を指
示する。初期設定中、このフリー・バッファ・カウンタ
は、汎用アダプタ内のバッファの総数に等しくなるよう
にセットされる。「REQ_RX」プリミティブ又は
「REQ_BUF」プリミティブが受け取られるたび
に、このカウンタは1だけ減分される。また、パケット
が解放されるたびに、このカウンタは、そのパケット・
バッファのカウント分だけ増分される。もし、このカウ
ンタの値が、(P14によってプログラム可能な)予め
定義されたフリー・バッファの閾値以下になれば、GA
M18は、「BELOW」と呼ばれるGAB12上の信
号線を付勢して、「閾値以下のフリー・バッファ」状況
を指示する。これが生ずる場合、P14及びPMI20
は、「短いパケットの受信ポリシー」を採用するか、又
はバッファ輻輳が解消するまで、一時的にそれ以上のパ
ケット受信を拒否する(本節で後述する「バッファ輻輳
の解消」を参照)。 (4)もし、一のPMI20又はP14が、必要な全て
のバッファをGAM18から獲得して、PM16へのパ
ケット・データの転送を完了すれば、このPMI20又
はP14は、そのパケットを目標の待ち行列内に置くた
めに、「ENQ_PKT/R」プリミティブを発行す
る。この「ENQ_PKT/R」要求を受け取る場合、
GAM18は、このパケットを目標の待ち行列内にエン
キューする。もし、このエンキューされたパケットのト
ラヒック・タイプが同期式であれば、これ以上の処理は
行われない。他方、これが非同期トラヒックであれば、
GAM18は、そのパケット・バッファ・カウントを、
GAM18の内部にある他のバッファ・カウンタ、即ち
非同期バッファ・カウンタ内で累計する。もし、この非
同期バッファ・カウンタが閾値を超えれば、GAM18
は、「ABABV」と呼ばれるGAB12の他の信号線
を付勢して、P14と全てのPMI20に対し、「閾値
以上の非同期バッファ」状況を指示する。この状況が生
ずると、P14とPMI20は、それ以上の非同期式デ
ータ転送を拒否する。
【0116】緊急トラヒックのパケットは、バッファの
割り当てについては、同期トラヒックのパケットと同じ
ようにGAM18によって処理される。しかし、緊急ト
ラヒック・タイプについて、「ENQ_PKT/R」プ
リミティブ又は「ENQ_PKT/N」プリミティブを
受け取る場合、GAM18は、このパケットを、対応す
る待ち行列のテイルではなく、ヘッドからエンキューす
る。このようにして、緊急トラヒックは、速い応答時間
を受け取ることができる。
【0117】〈アーキテクチャの留意点 − バッファ
輻輳の解消〉: 汎用アダプタがバッファ輻輳状況に陥る場合、GAB1
2の信号線である「BELOW」が付勢される。もし、
このバッファ輻輳が、過大な入力トラヒック量に起因す
るのであれば、汎用アダプタのリンク層ソフトウェア
は、一の「ローカル・ビジー」パケットを遠隔ステーシ
ョンに送信して、パケット送信の停止を要求するという
オプションを有する。他方、このバッファ輻輳が、過大
な量の肯定応答済みでない送信パケットに起因するので
あれば、汎用アダプタの通信コードは、「ローカル・ビ
ジー」の指示を遠隔ステーションに送信した後に、パケ
ット・ポーリング・ビット(ポーリング要求)をオンに
転ずることによって、肯定応答を明示的に送信請求する
ことができる。このポーリング要求信号を受け取ると、
遠隔ステーションは、明示的な肯定応答パケットを送信
して、パケットの受信を確認しなければならない。公知
の殆どのリンク層プロトコルについては、これらの明示
的な肯定応答パケットは、短いパケットとなる傾向があ
る。これらの肯定応答パケットが汎用アダプタ内に到着
する場合、PMI20は、これらのパケットをPM16
内に移動させてP14によって処理するため、「短いパ
ケットの受信ポリシー」を実現する(即ち、短いパケッ
トだけを受信する)必要がある。
【0118】「FLUSH(パケットのフラッシュ)」
プリミティブは、バッファ輻輳状況中に「短いパケット
の受信ポリシー」を実現するため、PMI20によって
次のように使用することができる。 (1)入出力ポートをアドレス指定する一の入力パケッ
トが存在する場合、この入出力ポート内のPMI20
は、GAM18に対し「REQ_RX」プリミティブを
発行して、一のフリー・バッファ・ポインタを受け取
る。 (2)一のフリー・バッファ・ポインタを受け取った
後、このPMI20は、割り当てられたフリー・バッフ
ァ内の予め定義されたバッファ・オフセットから順に受
信パケットの移動を開始することができる。 (3)もし、このパケット・データの移動が割り当てら
れたバッファの終わりに達する前に、入力パケットの受
信が完了すれば(即ち、受信パケットの長さが、バッフ
ァ・サイズの256バイトとバッファ・オフセットの差
よりも小さければ)、このPMI20は、「ENQ_P
KT/R」プリミティブを発行して、この受信された短
いパケットをPM16にエンキューすることができる。 (4)他方、このPMI20がバッファ境界に達すると
き、入力パケット内にまだ受信すべきデータが残ってい
れば、この入力パケットは、短いパケットと見なされな
い。この状況の場合、このPMI20は、GAM18に
「FLUSH」プリミティブを発行してこの入力パケッ
トを廃棄するか、又は単にこのバッファを次のパケット
用に再使用することができる。
【0119】「短いパケットの受信ポリシー」と、ポー
リング要求と、ローカル・ビジー指示とを組み合わせる
と、多くのアプリケーションにおいてバッファ輻輳を解
消することができる。
【0120】§4.9: マルチキャスト・パケット機
能のサポート 汎用アダプタは、多くの通信プロトコルが使用するマル
チキャスト・パケットをサポートしなければならない。
例えば、汎用アダプタが、データ・リンク層をサポート
するのであれば、汎用アダプタは、グローバルSAP
(サービス・アクセス・ポイント)パケット又はグルー
プSAPパケットを処理可能でなければならない。一の
グローバル/グループSAPパケットを受信する場合、
汎用アダプタは、このパケットを(接続された幾つかの
ホスト・システム上で実行可能な)幾つかの異なるアプ
リケーション層のプログラムに送らなければならない。
他の例では、汎用アダプタがネットワーク・ルータとし
て構成されていれば、経路指定用の同報通信パケットを
受信する場合に、汎用アダプタは、このパケットを全て
の接続ネットワーク(但し、この元のマルチキャスト・
パケットの送信元を除く)に送信することになる。
【0121】汎用アダプタがこのマルチキャスト・パケ
ット機能をサポートできるようにする、2つの可能なア
プローチがある。次に説明するように、その一方は逐次
式であり、他方は並列式である。 (1)逐次式のアプローチ: 一のマルチキャスト・パケットを受信する場合、P14
は、一のループを設定して、所期の宛先#1へのパケッ
ト送信を開始することができる。宛先#1へのパケット
送信が完了すると、P14は、このパケットを次の所期
の宛先#2へ送信する。この処理は、所期の全ての宛先
へのパケット送信が完了されるまで、反復される。この
アプローチの欠点は、低速であり、引渡し時間に大きな
ばらつきがあり、しかもP14の大量の処理サイクルを
消費することである。 (2)並列式のアプローチ: 一のマルチキャスト・パケットを受信する場合、P14
は、元のパケットの複数のコピーを作成し、これらの複
製パケットを、所期の全ての宛先に同時に送信する。こ
のアプローチは、応答時間が高速であり、引渡し時間の
ばらつきが小さく、潜在的に遥かに少ないP14の処理
サイクルしか必要としない。しかし、パケットの複製
は、ハードウェアのサポートなしでは、非常に高コスト
になり得る。以下では、汎用アダプタ内でマルチキャス
ト・パケット機能をサポートするために、P14とGA
M18が相互作用する方式を説明する。 (1)GAM18から一のマルチキャスト・パケットを
デキューする場合、P14は、「REQ_RX」プリミ
ティブ及び「REQ_BUF」プリミティブを発行し
て、P14が生成する必要のある各複製パケットごと
に、一のパケット及び一のバッファ・ポインタをGAM
18から獲得する。 (2)GAM18から(各複製パケットごとに)このバ
ッファ・ポインタを受け取ると、P14は、パケットの
ヘッダ情報を書き込み、元のマルチキャスト・パケット
の先頭バッファの内容を、GAM18から獲得したばか
りのバッファにコピーする。その後、P14は、「EN
Q_PKT/R」プリミティブを発行して、この複製パ
ケットを宛先の出力待ち行列にエンキューすることがで
きる。しかし、「ENQ_PKT/R」プリミティブを
発行すると、P14は、元のマルチキャスト・パケット
内の先頭バッファ・ポインタに関する情報をGAM18
に通知しなければならない。このようにすれば、GAM
18は、この複製パケット内の先頭バッファを元のマル
チキャスト・パケットの(第2バッファから始まる)残
りのバッファにどのようにして連係するかを知ることが
できるからである(§4.5.5の「ENQ_PKT/
R(パケットのエンキュー/受信後)」を参照)。 (3)前述のプロセスは、全ての複製パケットが生成さ
れ、出力待ち行列にエンキューされるまで、反復され
る。その後、P14は、元のマルチキャスト・パケット
を処分するために、次のような可能なシナリオを有す
る。 もし、パケット送信の順序を保証できるように、汎
用アダプタが構成されていれば、P14は、単に、元の
パケットを最後に出力される複製パケットとしてエンキ
ューする。 他方、パケットの順序を保証できないように、汎用
アダプタが構成されていれば、P14は、各複製パケッ
トを(パケット送信の終了時に自動的に解放される)タ
イプ1のパケットとしてエンキューし、そして元のマル
チキャスト・パケットを全くエンキューしないように選
択することができる。全ての複製パケットがエンキュー
された後にP14が行わなければならないのは、単に待
機用タイマを設定して、このタイマを満了させるだけで
あるに過ぎない。このタイマが満了すると、P14は、
元のマルチキャスト・パケットを解放する。 この方式の欠点は、待機用タイマの設定が短かすぎ
れば、最後の少数の複製パケットが送信される前に、元
のマルチキャスト・パケットが解放され得ることであ
る。この状況が発生すると、最後の少数の複製パケット
のデータ保全性を保証することができない。 もし、パケット順序を保証できないように、汎用ア
ダプタが構成されているにも拘わらず、P14がパケッ
ト・データの保全性を保証することを望んでいれば、P
14は、各複製パケットを(パケット送信の終了時に自
動的に解放されない)タイプ2のパケットとしてエンキ
ューし、そして元のマルチキャスト・パケットを全くエ
ンキューしないように選択することができる。全ての複
製パケットがエンキューされた後に、P14は、各複製
パケットの状況を周期的にポーリングすることができ
る。各複製パケットはタイプ2のパケットとしてエンキ
ューされたから、タイプ2のパケットが送信された後に
GAM18が行うのは、単にそのパケット状態を「専用
(leased)」に変更することだけである。「RD_GA
M」プリミティブを使用することによって、P14は、
各複製パケットのパケット状態を検査する。全ての複製
パケットの状態が「専用」に変更された後に、P14
は、元のマルチキャスト・パケットを全ての複製パケッ
トとともに解放することができる。
【0122】図3には、GAM18内のマルチキャスト
・パケットの構造が示されている。元のマルチキャスト
・パケットはPTE#Mから構成され、このPTE#M
は、先頭バッファ(BUF#1)を指定し、次に第2の
バッファ(BUF#2)が、その次に第3のバッファ
(BUF#3)が、以下同様にしてマルチキャスト・パ
ケット内の最終バッファ(BUF#L)が指定される。
第1の複製パケットはPTE#D1から構成され、この
PTE#D1は、それ自体の先頭バッファ(BUF#D
1)を指定し、次に元のマルチキャスト・パケットの第
2のバッファ(BUF#2)が指定される。第2の複製
パケットは、PTE#D2から構成され、このPTE#
D2は、BUF#D2を指定し、そしてBUF#D2の
BTEがBUF#2を指定する。最後の複製パケット
は、PTE#DNから構成され、このPTE#DNは、
BUF#DNを指定し、次にBUF#2が指定される。
【0123】§4.10: 多重インタリーブ式の並行
的なパケット送信/受信 アプリケーションによっては、P14又は一の入出力ポ
ートが、多重インタリーブ式並行パケットを同時に送信
又は受信することを必要とするものがある。例えば、P
14内で同時に実行される幾つかのデータ・リンク層の
スレッドが存在することが可能であり、そして複数のリ
ンク層のスレッドが、応答パケットの生成に同時に従事
することが可能である。タイム・スパンという観点から
見ると、このことは、新しいパケットを生成する複数の
プロセスが、P14内でインタリーブされることを意味
する。他の例では、入出力ポートの設計は、それがサー
ビスする各出力待ち行列ごとに1つの「REQ_TX」
プリミティブを必要とし、更には、伝送待ち時間を減少
するために、各送信パケットからのデータの一部をそれ
自体の内部バッファへ先取りすることもある。(ネット
ワーク・プロトコルによって)送信することを許される
場合、この入出力ポートは、どのパケットを送出すべき
かに関する決定を迅速に行い、そのパケットの送信を直
ちに開始することができる。
【0124】汎用アダプタの内部でP14と各PMI2
0に対する多重インタリーブ式並行パケットの送信/受
信をサポートするためには、「要求識別子」と呼ばれる
情報を、GAM18とP14又はこのPMI20との間
で交換しなければならない。一のパケットを受信する準
備ができている場合、P14又はこのPMI20は、一
の要求識別子を生成するとともに、この情報を「REQ
_RX」プリミティブの一部としてGAM18に渡さな
ければならない。このパケットを受信するための後続の
「REQ_BUF」プリミティブも、この情報を担持す
る必要がある。GAM18は、この要求識別子から、同
じパケットに属する全てのバッファを互いに連係するこ
とができる。このようにして、P14又はこのPMI2
0が、正しい要求識別子をGAM18に供給することが
できる限り、P14又はこのPMI20は、多重インタ
リーブ式パケットを受信することができる。
【0125】また、この機構は、多重インタリーブ式パ
ケット送信のためにも使用することができる。この場
合、要求識別子は、GAM18とこのPMI20との間
を流れる「REQ_TX」プリミティブ、「NXT_B
UF」プリミティブ及び「END_TX」プリミティブ
の各々において、渡されなければならない。
【0126】このアーキテクチャでは、P14及び各P
MI20において送信中及び受信中のパケットの最大数
が、8である(即ち、P14又は各PMI20につい
て、8つの並行な送信パケットと8つの平行な受信パケ
ットが存在する)と定義している。
【0127】§4.11: GAM18の状態マシン
− パケットのライフ・サイクル 本節では、GAM状態マシンの核心であるパケットのラ
イフ・サイクルについて説明する(図4を参照)。GA
M状態マシン内には、パケットが存在できる5つの主な
状態と2つの副状態がある。これらの状態を、次に説明
する。§4.11.1: フリー・パケット 〈状態の説明〉: 一のパケットが「フリー・パケット」状態にあると、そ
のパケットはGAM18だけに属する。GAM18に属
する全てのフリー・パケットは、互いに連係され、フリ
ー・パケットのポインタによって指定される。汎用アダ
プタの初期設定中、汎用アダプタの全てのパケットは、
フリー・パケット状態に初期設定される。 〈状態のエントリ〉: RESET信号によって任意の状態から T50:「REL_PKT」要求によって「待ち行列化
パケット」状態から T40:「REL_PKT」要求によって「専用パケッ
ト」状態から T60:「FLUSH」要求によって「受信ビジー・パ
ケット」状態から T10:タイプ1のパケットのみについて、「END_
TX」要求によって「送信ビジー・パケット」状態から T30:「END_TX」要求によって「ビジー及び解
放済みパケット」状態から 〈状態の遷移〉: T06:「REQ_RX」要求によって「受信ビジー・
パケット」状態へ§4.11.2: 送信ビジー・パケ
ット 〈状態の説明〉: 一のパケットが「送信ビジー・パケット」状態にあると
いうことは、一のPMI20がこのパケットの所有権を
有していて、このパケットのデータをPM16から移動
させる作業中であることを意味する。このパケット移動
が完了する場合、このPMI20は、作業完了の指示と
して、GAM18に対し「END_TX」要求を生成す
ることが期待される。一のパケットが、パケット移動の
ために一のPMI20によって現に使用されている場
合、これは、パケット状態を変更しない。他方、パケッ
ト送信中に、「送信ビジー・パケット」状態にあるP1
4から「ENQ_PKT/N」要求又は「REL_PK
T」要求が受け取られるのであれば、GAM18は、要
求元を減速化することなく、直ちにその要求にサービス
しなければならない。この高速化を容易にするために、
2つの副状態をGAM状態マシン内で生成して、パケッ
ト送信中にP14からの送信ビジー・パケットに対する
「ENQ_PKT/N」要求及び「REL_PKT」要
求を処理する。詳細については、§4.11.4の「ビ
ジー及び解放済みパケット」と§4.11.3の「ビジ
ー及び待ち行列化パケット」を参照されたい。 〈状態のエントリ〉: T51:「REQ_TX」要求によって「待ち行列化パ
ケット」状態(及び待ち行列のヘッド)から 〈状態の遷移〉: T12:パケット送信中(即ち、「REQ_TX」要求
の後)、P14からの「ENQ_PKT/N」要求によ
って「ビジー及び待ち行列化パケット」状態へ T13:パケット送信中(即ち、「REQ_TX」要求
の後)、P14からの「REL_PKT」要求によって
「ビジー及び解放済みパケット」状態へ T15:タイプ3のパケットについて、一のパケット送
信後の「END_TX」要求によって「待ち行列化パケ
ット」状態へ T14:タイプ2のパケットのみについて、「END_
TX」要求によって「専用パケット」状態へ T10:タイプ1パケットのみについて、「END_T
X」要求によって「フリー・パケット」状態へ§4.11.3 : ビジー及び待ち行列化パケット 〈状態の説明〉: この「ビジー及び待ち行列化パケット」状態は、§4.
11.2の「送信ビジー・パケット」に記載の高速化を
提供するために設計された、2つの送信ビジー・パケッ
ト副状態のうちの1つである。パケット送信中に「送信
ビジー・パケット」状態にあるP14から「ENQ_P
KT/N」要求を受け取る場合、GAM18は、そのパ
ケット状態を「送信ビジー」から「ビジー及び待ち行列
化」に変更するとともに、パケット移動の完了を待たず
に、要求された待ち行列にそのパケットをエンキューす
る。その後、このPMI20は、パケット移動の完了を
指示するために、「END_TX」要求を生成すること
が期待される。このPMI20から「END_TX」要
求を受け取ると、GAM18は、単にそのパケット状態
を「ビジー及び待ち行列化」から「待ち行列化」に変更
するに過ぎない。 〈状態のエントリ〉: T12:パケット送信中(即ち、REQ_TXの後)、
P14からの「ENQ_PKT/N」要求によって「送
信ビジー・パケット」状態から 〈状態の遷移〉: T25:「END_TX」要求によって「待ち行列化パ
ケット」状態へ§4.11.4: ビジー及び解放済み
パケット 〈状態の説明〉: この「ビジー及び解放済みパケット」状態は、§4.1
1.2の「送信ビジー・パケット」に記載の高速化を提
供するために設計された、もう1つの「送信ビジー・パ
ケット」副状態である。パケット送信中、「送信ビジー
・パケット」状態にあるP14から「REL_PKT」
要求を受け取ると、GAM18は、一のPMI20がこ
のパケットを処理しているという理由で、そのパケット
を直ちに解放することができない。その代わり、GAM
18は、そのパケット状態を「送信ビジー」から「ビジ
ー及び解放済み」に変更する。その後、パケット移動が
完了すると、GAM18は、一のPMI20から「EN
D_TX」要求を受け取る。この「END_TX」要求
を受け取ったときだけ、GAM18はパケットの解放動
作を行う。即ち、そのパケット状態を「ビジー及び解放
済み」から「フリー」に変更し、そのパケット及びこれ
に関連する全てのバッファをフリー・プールに解放す
る。 〈状態のエントリ〉: T13:パケット送信中(即ち、REQ_TXの後)、
P14からの「REL_PKT」要求によって「送信ビ
ジー・パケット」状態から 〈状態の遷移〉: T30:「END_TX」要求によって「フリー・パケ
ット」状態へ§4.11.5: 専用パケット 〈状態の説明〉: 一のパケットがこの「専用パケット」状態にあると、こ
のパケットは、P14に属するが、どの待ち行列にもエ
ンキューされない。 〈状態のエントリ〉: T54:「DEQ_PKT」要求によって「待ち行列化
パケット」状態から T14:タイプ2パケットのみについて、「END_T
X」要求によって「送信ビジー・パケット」状態から 〈状態の遷移〉: T45:「ENQ_PKT/N」要求によって「待ち行
列化パケット」状態へ T40:「REL_PKT」要求によって「フリー・パ
ケット」状態へ§4.11.6: 待ち行列化パケット 〈状態の説明〉: 一のパケットが「待ち行列化パケット」状態にあると、
このパケットは、一の待ち行列にエンキューされる。 〈状態のエントリ〉: T45:「ENQ_PKT/N」要求によって「専用パ
ケット」状態から T65:パケット受信中、「ENQ_PKT/R」要求
によって「受信ビジー・パケット」状態から T15:タイプ3パケットのみについて、パケット送信
後に、「END_TX」要求によって「送信ビジー・パ
ケット」状態から T25:「ENQ_TX」要求によって「ビジー及び待
ち行列化パケット」状態から 〈状態の遷移〉: T54:「DEQ_PKT」要求によって「専用パケッ
ト」状態へ T50:「REL_PKT」要求によって「フリー・パ
ケット」状態へ T51:「REQ_TX」要求によって「送信ビジー・
パケット」状態へ§4.11.7 : 受信ビジー・パケット 〈状態の説明〉: 一のパケットが「受信ビジー・パケット」状態にあると
いうことは、一のPMI20又はP14が、そのパケッ
トの所有権を有していて、このパケット・データをPM
16へ移動させる作業中であることを意味する。このパ
ケット移動が完了すると、P14又はこのPMI20
は、作業完了の指示として、GAM18に対し「ENQ
_PKT/R」要求を生成することが期待される。 〈状態のエントリ〉: T06:「REQ_RX」要求によって「フリー・パケ
ット」状態から 〈状態の遷移〉: T65:「ENQ_PKT/R」要求によって「待ち行
列化パケット」状態へ、 T60:「FLUSH」要求によって「フリー・パケッ
ト」状態へ
【0128】§4.12: 事象の制御 一の入出力ポート内で生ずる一の事象が、P14と通信
すべき小さなデータ・セグメントの交換を必要とする場
合、この入出力ポートに関連するPMI20は、GAM
18に対し「ENQ_ENT(事象のエンキュー)」プ
リミティブを発行する。一の「ENQ_ENT」要求を
受け取ると、GAM18は、この要求内の4バイトの事
象データを、GAM18の内部に設けられた事象処理専
用のFIFO内の使用可能な次のエントリに記憶する。
もし、この事象FIFOが、当該「ENQ_ENT」動
作の結果として、半分まで満たされるのであれば、「事
象FIFO1/2フル(EF_HF)」と呼ばれるGA
B12上の信号線が付勢される。この「EF_HF」信
号は、P14に対する割り込みを生成するために、P1
4が使用することができる。
【0129】割り込み方式又はポーリング方式の何れか
によって、その旨の通知を受け取る場合、P14は、事
象を処理する準備ができていることを条件として、GA
M18内の事象FIFOから事象データを読み出すこと
ができる。P14は、この事象FIFOが空になるか、
又は他の高優先順位の作業を有するようになるまで、そ
の事象処理を継続することができる。
【0130】§4.13: GAB12用のアービタ GAM18は、全てのバッファ、パケット、及び待ち行
列のサポート機能に加えて、GAB12用のアービタと
しても動作する。このため、GAM18は、GAB12
の調停ロジックをサポートするための論理を含んでい
る。GAB12の制御権の要求/付与プロセスと優先順
位方式の詳細については、§6.0の「汎用アダプタ・
バス(GAB)12」を参照されたい。
【0131】§4.14: GAB12用のモニタ 汎用アダプタ内部のデータ保全性を確実にするため、1
バイト当たり1ビットの奇数パリティ方式が、GAB1
2内のデータ及びアドレスの両方について使用される。
GAM18は、GAB12上のバス動作ごとに、汎用ア
ダプタの2つの構成要素のうちどの構成要素がGAB1
2上のバス動作に関係するかとは無関係に、パリティを
検査する。
【0132】§6.0の「汎用アダプタ・バス(GA
B)12」で説明するように、GAB12上のバス動作
は、ノン・プリエンプティブ方式である。GAB12の
利用の公平を図るため、汎用アダプタには、GAB12
の各バス・マスタがGAB12を支配できる時間制限を
各バス動作ごとに設定するだけではなく、バス・マスタ
のうちの1つが動作しない時にも公平さを強制すること
ができる機構を設けることが必要である。
【0133】GAM18は、GAB12に関するこれら
の2つの監視機能を実現するための、汎用アダプタ内の
構成要素である。以下では、GAM18がGAB12の
監視機能をどのようにしてサポートできるかを説明す
る。 (1)パリティ検査について: GAB12上の動作が存在するたびに、GAM18は、
データとアドレスの両方のパリティを検査する。もし、
GAM18が一のパリティ・エラーを検知すれば、バス
・エラー(−BERR)と呼ばれるGAB12上の信号
線が、GAM18によって付勢される。 (2)バスの公平について: GAB12の制御権が一のバス・マスタに付与されるた
びに、GAM18は、一のカウンタを起動して、バス・
サイクルをカウントする。もし、このバス・マスタが、
所定数のバス・サイクルが経過した後もGAB12を解
放しなければ、GAM18は、(パリティ・エラーの場
合と同様に)バス・エラー信号線を付勢する。GAM1
8内にあるバス・サイクルの限界は、「WT_GAM」
プリミティブを使用することによって、P14からプロ
グラム可能である。
【0134】GAB12上のバス・エラー信号線が付勢
されると、GAM18自体を含む汎用アダプタの全ての
構成要素は、進行中の全ての処理を打ち切る。このバス
・エラー信号線が付勢されるのと同時に、GAM18
は、バス・アドレス、バス・マスタ及びそのバス・エラ
ーの原因を、その内部記憶にログする。もし、エラーの
分離及び回復が望まれるのであれば、P14は、「RD
_GAM」プリミティブを使用して、この情報を後で検
索することができる。
【0135】§5.0: 待ち行列のスケジューリング
と通知 汎用アダプタは、複数のパケット待ち行列及び複数のサ
ーバに論理的に編成される。これらのパケット待ち行列
は、PMI20及びP14からパケットを受理し、保持
し、PMI20及びP14へ解放する。これらのPMI
20及びP14は、待ち行列のサーバとして動作する。
【0136】汎用アダプタ内にある複数のPMI20
(PMI#0〜PMI#N)は、汎用アダプタの他の部
分と通信する。各PMI20は、それ自体の1組の出力
待ち行列を有する。これらの出力待ち行列は、汎用アダ
プタの初期設定中にP14によって割り当てられ、相互
に排他的である必要はない。即ち、一の出力待ち行列
は、2つの異なるPMI20に属することができ、2つ
の待ち行列サーバによって同時にサービスすることがで
きる。更に、各PMI20は、入力パケットのエンキュ
ーと、その出力待ち行列のサービスを同時に行うことが
できる。即ち、一のPMI20は、パケットの送信と受
信を混在させることができ、そしてGAM18は、この
全二重能力をサポートすることができる。
【0137】また、汎用アダプタ内のP14は、入力待
ち行列と呼ばれる1組の待ち行列をも有する。PMI2
0と同様に、GAM18は、P14内の全二重能力をも
サポートする。即ち、P14は、パケットのエンキュー
と、その入力待ち行列のサービスとを同時に行うことが
できる。
【0138】パケットが到着する場合、一のPMI20
は、先ず、到着パケットをP14の入力待ち行列にエン
キューする。次に、P14は、パケットをデキューし、
処理し、PMI20の出力待ち行列にエンキューする。
最後に、このPMI20は、処理済みのパケットをその
出力待ち行列からデキューする。
【0139】また、一のPMI20が、パケットを他の
PMI20の出力待ち行列に直接エンキューすることも
可能である。この場合、P14の処理は介在せず、PM
16は一時記憶として使用される。
【0140】汎用アダプタ内の各待ち行列は、空又は非
空の2つの状態のうちの1つをとり得る。全てのパケッ
ト待ち行列の状態は、GAM18の内部記憶に記憶さ
れ、GAM18によって管理される。
【0141】本章では、待ち行列のスケジューリングと
通知の機構について説明する。しかし、待ち行列サービ
ス・ポリシーの実現形態は、アプリケーションに依存す
るから、本章では待ち行列サービス・ポリシーについて
は説明しない。
【0142】§5.1: 待ち行列状況の通知機構 待ち行列サーバの資源を最も効率的に使用するために、
GAM18は、待ち行列セットの状況をサーバに通知す
る機構を使用しなければならない。(専用の状態マシン
としての)PMI20と(汎用プロセッサとしての)P
とは、それぞれの性質が互いに異なるから、GAM18
は、異なる待ち行列サーバに対して異なる通知機構を適
用する。
【0143】(1)出力待ち行列: サーバ − PMI20 サーバの性質 − 専用 一のPMI20によって遂行される最も重要な機能の1
つは、PM16との間でパケット・データを高速に移動
させることであり、PMI20は、この機能専用であ
る。 サーバの目標 − 高速のサービス応答時間 各PMI20は、出力待ち行列専用のサーバであるか
ら、その主目標は、汎用アダプタの待ち時間が少なくな
るように、出力待ち行列内の出力パケットをできる限り
速く処理することである。 通知機構 − 一の待ち行列の状態が変更される場合、GAM18は、
GAB12の信号線上に「QSRC(待ち行列状況レジ
スタ変更)」と呼ばれるパルスを生成するとともに、G
AB12上にその待ち行列のアドレスの最上位ビットを
渡す。この待ち行列のアドレス情報は、GAB12上の
3本の線、即ちQA0〜QA2によって搬送される。 待ち行列状況の提示 − 待ち行列状況レジスタ GAM18は、その内部に一の待ち行列状況レジスタを
維持する。この待ち行列状況レジスタの長さは、汎用ア
ダプタ内の待ち行列の数に等しく、各待ち行列ごとに1
ビットである。このレジスタ内の1ビットがオンである
と、これは、対応する待ち行列内に少なくとも1つのパ
ケットがあって、サービスを待機していることを意味す
る。もし、このビットがオフであれば、対応する待ち行
列は空である。一の待ち行列状況が変更されるたびに、
GAM18は、GAB12の信号線QSRC上に一のパ
ルスを生成するとともに、その待ち行列のアドレス情報
を、GAB12上の3本の線QA0〜QA2上に置く。
これらの線QA0〜QA2は、どの待ち行列が状況を変
更されたかを指示するための、アドレス線として使用さ
れる。もし、これらの3本の線QA0〜QA2が全てゼ
ロであれば、これは、汎用アダプタ内の最初の32個の
待ち行列のうちの1つが状況を変更されたことを指示す
る。他方、これらの3本の線QA0〜QA2の2進値が
‘001’に等しければ、これは、汎用アダプタ内の第
2の32個の待ち行列のうちの1つが状況を変更された
ことを指示する。 通知後のサーバの反応 − 一のPMI20が、QSRC線上のパルスを検知する場
合、このPMI20は、GAB12上に置かれている待
ち行列のアドレス情報と、それ自体の待ち行列セットの
識別子とを比較することができる。もし、両者の情報が
一致すれば、このPMI20は、どの待ち行列が処理す
べきパケットを有するかを決定するために、「RD_Q
SR(待ち行列状況レジスタの読み出し)」プリミティ
ブを発行するとともに、他の「REQ_TX」プリミテ
ィブを発行することによって、その待ち行列のパケット
処理を開始することができる。
【0144】(2)入力待ち行列の場合: サーバ − P14 サーバの性質 − 非専用 汎用アダプタの全ての入力待ち行列にサービスするのに
加えて、P14は、通信コードを実行して、通信機能を
遂行する必要がある。P14は、それ自体を入力待ち行
列のサービスに完全に専用化することはできない。 サーバの目標 − 高速のサービス応答時間とP14の
資源の効率的な使用とのバランス P14の諸資源が高価であること及びP14に対する割
り込みに関連するオーバヘッドのために、汎用アダプタ
の入力待ち行列に入力パケットが到着するたびに、P1
4に割り込みをかけることは望ましくない。他方、入力
待ち行列内の各入力パケットは、高速のパケット応答時
間のために、P14から即時のアテンションを受けるに
値する。これらの2つの要件をバランスさせるため、G
AM18は、2つのパラメータ、即ち経過時間とパケッ
ト・カウントとに基づいて、入力待ち行列サーバ通知機
構を実現する。このパケット・カウントは、「全ての入
力待ち行列内に現に存在するパケットの総数」であり、
この経過時間は、「これらの入力待ち行列内に少なくと
も1つのパケットが存在していたときの最後のリセット
からの経過時間」と定義される。 通知機構 − QSRC/QA0〜QA2、又は次の状
況の1つが生ずるときにGAM18が生成するP14に
対する割り込み タイマ満了 − 経過時間が、予め定義されたタイ
ム・アウト値に達する。このタイム・アウト値は、「W
T_GAM」プリミティブを用いるP14によってプロ
グラム可能である。 閾値超過 − パケット・カウントが、予め定義さ
れたパケット閾値を超える。この閾値も、前記の「WT
_GAM」プリミティブを用いるP14によってプログ
ラム可能である。 待ち行列状況の表示 − 待ち行列状況レジスタ 出力待ち行列状況の提示と同じ。 通知後のサーバの反応 − GAM18からの割り込みを受け取ると、P14は、そ
の割り込み禁止ビットをオンにして、待ち行列状況レジ
スタを読み出すことができる。この待ち行列状況レジス
タの情報に基づき、P14は、それ自体の待ち行列サー
ビス・ポリシーを実現することができる。P14は、一
の待ち行列識別子を有する「DEQ_PKT」要求をG
AM18に発行して、待ち行列のサービスを開始するこ
とができる。この「DEQ_PKT」要求を受け取る
と、GAM18は、要求された待ち行列内の先頭パケッ
トをデキューし、パケット・カウントを1だけ減分し、
その結果に応じて待ち行列状況レジスタを更新する。こ
の「DEQ_PKT」要求の後に、GAM18からパケ
ット識別子を受け取ると、P14は、そのプログラムさ
れた通信層の機能に従って、このパケットの処理を開始
することができる。このパケットの処理が完了すると、
P14は、待ち行列状況レジスタを再び読み出して、全
ての入力待ち行列が空になるか、又は他の高優先順位の
要件のためにその処理を中断しなければならなくなるま
で、前述の処理を反復することができる。この待ち行列
サービスを完了(又は終了)すると、P14は、その割
り込み禁止ビットをオフにして、GAM18からの次の
待ち行列通知を受け取ることができるようにする。
【0145】§5.2: データ・フロー/制御フロー
の例 本節では、一の新しいパケットがPMI#1で受信され
た時点から、一のパケットがPMI#2を通して送出さ
れる時点までの、事象シーケンスを各ステップごとに説
明する。
【0146】(1)PMI#1が、GAM18から一の
バッファを要求する。もし、使用可能なバッファが存在
しなければ、PMI#1は、この転送をフラッシュする
(その間、GAM18は、PM16内の割り当て済みの
任意のバッファを解放する)。
【0147】他方、バッファが使用可能であれば、PM
I#1は、このバッファがフルになるまで、PM16内
にデータを記憶する。このバッファがフルになった時点
で、PMI#1は、GAM18から新しいバッファを要
求する。完全な一のパケットがPM16内に記憶される
まで、このプロセスが継続する。その間に、もしフリー
・バッファ・カウンタが閾値以下に減少すれば、GAM
18は、「BELOW」と呼ばれるGAB12上の信号
線を付勢して、P14と全てのPMI20に対し、この
状況を通知する。一のPMI20がこの信号を受け取る
と、このPMI20は、バッファ輻輳が解消されるま
で、そのパケット受信を一時的に保留することができ
る。
【0148】(2)PMI#1が、GAM18に対し、
一の「ENQ_PKT/N」要求を送る。もし、この要
求により、非同期バッファ・カウンタが閾値を超えれ
ば、GAM18は、GAB12上の信号線ABABVを
付勢して、「閾値以上の非同期バッファ」状況を指示す
る。この状況では、PMI20は、後続の全ての非同期
パケット転送を拒否するように選択することができる。
【0149】(3)もし、このパケットが一の入力待ち
行列にエンキューされるのであれば、GAM18は、先
ず、入力待ち行列パケット・カウントを1だけ増分し、
次に、これが全ての入力待ち行列中で唯一のパケットで
あるか否かを検査する。もし、これが入力待ち行列内の
先頭パケットであれば、GAM18は、直ちに一の入力
待ち行列タイマを起動する。
【0150】(4)もし、この入力待ち行列タイマが満
了するか、又は入力待ち行列パケット・カウントが閾値
を超えれば、GAM18は、P14に対する割り込みを
生成する。
【0151】(5)通知を受け取る場合、P14は、先
ず、その割り込み禁止ビットをオンにした後、待ち行列
状況レジスタを読み出す。P14は、どの待ち行列が非
空であるかを見出し、待ち行列の優先順位に従って、行
うべき作業をスケジュールする。P14が一の入力パケ
ットをデキューするたびに、GAM18は、入力待ち行
列タイマを再起動する。
【0152】(6)P14は、最高優先順位を有する非
空の待ち行列が空になるまで、その待ち行列から、パケ
ットをデキューする。その待ち行列が空になった時点
で、P14は、その次の高優先順位を有する非空の待ち
行列からパケットをデキューするように進む。
【0153】もし、新しいパケットが到着して、パケッ
ト・カウントが閾値を超えるか、又はタイマが満了する
のであれば、GAM18は、再びP14に通知する。
【0154】(7)また、パケット処理中、P14は、
新しい出力パケットを生成するために、GAM18から
バッファを要求することもできる。
【0155】パケットを処理した後に、P14は、PM
I#2によってサービスされる待ち行列内にパケットを
エンキューするように要求する。このエンキュー要求を
受け取ると、GAM18は、それに応じて待ち行列状況
レジスタを更新する。もし、このエンキューの結果、一
の出力待ち行列の状態が空から非空に変更されるのであ
れば、GAM18は、GAB12のQSRC線上に一の
パルスを生成することによって、全てのPMI20に通
知するとともに、GAB12の線QA0〜QA2上にそ
の待ち行列のアドレス情報を置く。
【0156】(8)QSRC線上の一のパルスを受け取
るとき、PMI#2は、待ち行列状況レジスタを読み出
して、どの待ち行列が非空であるかを見出すことができ
る。PMI#2は、それ自体のサービス・ポリシー及び
待ち行列状況レジスタ内の情報に従って、これらの出力
待ち行列のサービスを開始することができる。
【0157】§6.0: 汎用アダプタ・バス(GA
B)12 GAB12は、同期バスであって、その全てのバス信号
がBCLKと呼ばれる一のバス・クロックに同期されて
いる。しかし、GAB12のバス動作は、非同期式であ
る。なぜなら、一のバス「コマンド」に対する「応答」
を、任意のBCLKサイクルのエッジで戻すことができ
るからである。GAB12上のデータ移動は、コマンド
/応答ハンドシェーク機構を使用する、GAB12のデ
ータ・バスとアドレス・バス上の信号交換によって達成
される。典型的な読み出し/書き込みバス動作は、一の
バス・スレーブがその応答を戻すことができる速度に応
じて、2つ以上のBCLKサイクルを要する。高速のデ
ータ移動をサポートするため、GAB12内で、「スト
リーム・モード」と呼ばれる信号(−SM)が定義され
る。一のバス・スレーブは、この信号を使用して、一の
バス・マスタに対し、その「ストリーム・モード」動作
のサポート能力を指示する。GAB12上でストリーム
・モードが確立されていると、追加の各32ビットのデ
ータ移動を完了するのに、1BCLKクロックを余分に
要するに過ぎない。更に、このストリーム・モード信号
は、パイプライン式の読み出し動作を可能にするため
に、低速のバス・マスタによって使用することができ
る。
【0158】データ移動信号の他に、GAB12は、次
の機能をサポートするための、他のバス信号を含んでい
る。 GAB12の制御権(以下「制御権」と略記)の要求/
付与プロセス 割り込み要求 バス・エラーの指示 待ち行列状況変更の指示 バス・スレーブ応答の有効性の指示 GAMビジーの指示 PM16内のバッファ状況の指示
【0159】§6.1: GAB12上のバス信号 (1)バス・クロック:BCLK 単一の源 バス・クロック生成論理回路によって駆動される 他の全てのバス信号はBCLKと同期される
【0160】(2)データ・バス:D00〜D31 トライステート 正の論理 高インピーダンスで終端される 書き込みサイクル中は、バス・マスタによって駆動され
る 読み出しサイクル中は、バス・スレーブによって駆動さ
れる D00が最下位ビットであり、D31が最上位ビットで
ある
【0161】(3)データ・パリティ:PD0〜PD3 奇数パリティ トライステート 正の論理 高インピーダンスで終端される PD0は、D00〜D07用 PD1は、D08〜D15用 PD2は、D16〜D23用 PD3は、D24〜D31用
【0162】(4)アドレス・バス:A02〜A25 トライステート 正の論理 高インピーダンスで終端される 常にバス・マスタによって駆動される A02が最下位ビットであり、A25が最上位ビットで
ある アドレス空間分割の実現: A25 A24 A23 0 0 − P14のアドレス空間 0 1 0 未使用のアドレス空間 0 1 1 GAM18のアドレス空間 1 0 − PM16のアドレス空間 1 1 0 入出力ポートのアドレス空間 1 1 1 GAM18のアドレス空間
【0163】(5)アドレス・パリティ:PA0〜PA
2 奇数パリティ トライステート 正の論理 高インピーダンスで終端される PA0は、A02〜A09用 PA1は、A10〜A17用 PA2は、A18〜A25用
【0164】(6)バイト・イネーブル:BE0〜BE
3 これらの4本の線は、アドレス指定された位置にある個
々のバイトの選択を制御するために、バス・マスタによ
って使用される。BE0が最下位バイトの選択を制御
し、BE3が最上位バイトの選択を制御する。これらの
4つの選択ビットが与えられているので、バス・マスタ
は、選択された位置において、バイト幅、半ワード幅
(16ビット)及びワード幅(32ビット)のアドレス
指定を行うことができる。 トライステート 「ハイ」が付勢状態 高インピーダンスで終端される バス・マスタによって駆動される 個々のバイト選択用
【0165】(7)バイト・イネーブル・パリティ:B
EP BE0〜BE3用の奇数パリティ トライステート 正の論理 高インピーダンスで終端される
【0166】(8)コマンド:−CMD トライステート 「ロー」が付勢状態 高インピーダンスで終端される バス・マスタによって駆動される 読み出し動作の場合:このコマンド線が付勢されている
BCLKサイクルの間、アドレス・バスが有効である 書き込み動作の場合:このコマンド線が付勢されている
BCLKサイクルの間、データ・バスとアドレス・バス
の両方が有効である
【0167】(9)読み出し/−書き込み:R/−W トライステート 書き込みサイクルの場合は「ロー」であり、読み出しサ
イクルの場合は「ハイ」である 高インピーダンスで終端される バス・マスタによって駆動される コマンド線が付勢されているBCLKサイクルの間、有
効である
【0168】(10)応答:−RESP トライステート 「ロー」が付勢状態 高インピーダンスで終端される バス・スレーブによって駆動される バス動作完了の肯定応答 読み出し動作の場合:この応答線が付勢されているBC
LKサイクルの間、データ・バスが有効である
【0169】(11)バス要求:−BR0〜−BRN これらの要求線は、GAB12の制御権を争奪するため
に、複数のバス・マスタによって使用される。−BRN
はP14用の要求線であり、−BR0はPMI#0用の
要求線であり、−BR1はPMI#1用の要求線であ
り、以下同様である。 直接駆動 「ロー」が付勢状態 高インピーダンスで終端される バス・マスタによって駆動される (GAM18内の)バス・アービタによって受け取られ
る 制御権の争奪用
【0170】(12)バス付与:−BG0〜−BGN これらのバス付与線は、バス争奪者に制御権を付与する
ために、バス・アービタによって使用される。−BGN
はP14用のバス付与線であり、−BG0がPMI#0
用、−BG1がPMI#1用、以下同様である。このバ
ス・マスタが制御権の争奪に勝って、バス・アービタか
ら制御権を受け取ると、このバス・マスタは、次のサイ
クルで動作を開始することができる。 直接駆動 「ロー」が付勢状態 高インピーダンスで終端される バス・アービタによって駆動される バス・マスタによって受け取られる 制御権の付与用
【0171】(13)バス・ビジー:−BUSY このバス・ビジー線は、バス・ビジー状態を指示するた
めに、バス・マスタによって使用される。一のバス・マ
スタが制御権の争奪に勝って、バス・アービタから制御
権を受け取ると、このバス・マスタは、このバス・ビジ
ー線を付勢することによってその動作を開始することが
できる。現バス・マスタが、その動作を完了すると、こ
のバス・マスタは、このバス・ビジー線を解放して、制
御権の終了を指示することができる。この時点におい
て、バス・アービタは、次の制御権を、他の争奪者に付
与することができる。 トライステート 「ロー」が付勢状態 高インピーダンスで終端される バス・マスタによって駆動される バス・ビジー状況用
【0172】(14)バス・エラー:−BERR このバス・エラー線は、現バス動作中に(GAM18に
より検知される)エラーが存在することを指示するため
のものである。直接駆動 「ロー」が付勢状態 高インピーダンスで終端される GAM18によって駆動される バス・エラー状態の指示用
【0173】(15)待ち行列状況レジスタの変更とア
ドレス:QSRC、QA0〜QA2これらの線は、GA
M18が使用して、待ち行列のサーバであるP14及び
PMI20に対し、それらの待ち行列状況レジスタに変
更があることを通知する。待ち行列状況レジスタの1つ
に変更があると、GAM18は、1バス・サイクルの間
にQSRC線を付勢するとともに、変更された待ち行列
のアドレスをQA0〜QA2線上に置く。 直接駆動 GAM18によって駆動される QA0が最下位ビットであり、QA2が最上位ビットで
ある 待ち行列のサーバであるP14及びPMI20によって
受け取られる 待ち行列状況レジスタの変更の指示用
【0174】(16)割り込み要求:−INT0〜−I
NTN+1 これらの割り込み要求線は、P14のアテンションを要
求するために、割り込み元であるGAM18、PMI2
0及びPMコントローラ16によって使用される。 一の割り込み元がP14のアテンションを必要とする場
合、この割り込み元は、その割り込み要求線をハイにす
る。この割り込み要求線は、割り込みの理由がP14に
よってクリアされるまで、ハイに留まる。−INTN+
1はPMコントローラ16からの割り込み要求線であ
り、−INTNはGAM18からの割り込み要求線であ
り、−INT0はPMI#0からの割り込み要求線であ
り、−INT1はPMI#1からの割り込み要求線であ
り、以下同様である。 直接駆動 「ロー」が付勢状態 高インピーダンスで終端される 割り込み元(GAM18、PMI20、PMコントロー
ラ16)によって駆動される P14によって受け取られる
【0175】(17)ストリーム・モード:−SM このストリーム・モード線は、バス・スレーブがストリ
ーム・モード動作の準備ができていることをバス・マス
タに指示するために、バス・スレーブによって使用され
る。 トライステート 「ロー」が付勢状態 高インピーダンスで終端される バス・スレーブによって駆動される ストリーム・モード動作用
【0176】(18)応答有効:−RV0〜−RVN−
1 これらの線は、オプションであり、低速の入出力ポート
上の直接制御動作をサポートするように設計されてい
る。一のバス・マスタが一の低速入出力ポートをアクセ
スする場合、応答信号が戻されるまでに時間を要するこ
とがある。その間、GAB12はアイドルで、他のバス
動作を行うことはできない。この応答有効線が設けられ
ていると、入出力ポートの論理は、次の機構を実現する
オプションを有する。このバス・マスタが一の入出力ポ
ートをアドレスすると、この入出力ポートは、その要求
をラッチして、応答信号を直ちに戻すことができる。次
に、その入出力ポートは、前のバス・サイクル中にラッ
チされた要求済みの動作を、その内部論理で以て実行す
ることができる。この要求された動作が完了し且つその
応答の準備ができると、この入出力ポートは、この応答
有効線を付勢することができる。この応答有効線が付勢
されていると、前のバス・マスタは、必要であれば、こ
の応答を読み出すための他のバス動作を実行することが
できる。−RV0は、PMI#0用の応答有効線であ
り、−RV1は、PMI#1用の応答有効線であり、以
下同様である。 直接駆動 「ロー」が付勢状態 高インピーダンスで終端される PMI20によって駆動される
【0177】(19)閾値以下のフリー・バッファ:B
ELOW フリー・バッファ・プールが所定の閾値以下に減少する
と、GAM18は、この指示としてこの線を付勢する。
この線は、PMI20又はP14によって監視される。
この線が付勢されていると、PMI20は、長い入力パ
ケットの廃棄を選択することができる。 直接駆動 「ハイ」が付勢状態 GAM18によって駆動される PMI20又はP14によって監視される 閾値以下のフリー・バッファ・プール指示用
【0178】(20)閾値以上の非同期バッファ:AB
ABV 非同期トラヒック用に割り当てられたバッファの数が閾
値に達すると、GAM18は、この指示としてこの線を
付勢する。この線は、PMI又はP14によって監視さ
れる。この線が付勢されていると、PMI20は、入力
非同期パケットの廃棄を選択することができる。 直接駆動 「ハイ」が付勢状態 GAM18によって駆動される PMI20又はP14によって監視される 閾値以上の非同期バッファ数の指示用
【0179】(21)事象FIFO1/2フル:EF_
HF GAM18内の事象FIFOが半分まで満たされると、
GAM18は、この指示としてこの線を付勢する。この
線は、これらの事象を可能な限り迅速に処理するための
指示として、P14によって使用される。直接駆動 「ハイ」が付勢状態 GAM18によって駆動される P14によって監視される 事象FIFO1/2フルの指示用
【0180】(22)リセット:RESET このリセット線は、汎用アダプタのマスタ・リセット用
である。このリセット線が付勢されると、汎用アダプタ
内の全ての構成要素がリセットされる。このリセット線
は、電源投入時リセット及びP14によって付勢され
る。このリセット信号の持続時間は、20マイクロ秒以
上であることが保証される。 直接駆動 「ハイ」が付勢状態 電源投入時リセット又はP14によって駆動される 汎用アダプタの全ての構成要素によって監視される 汎用アダプタのマスタ・リセット用
【0181】(23)GAMビジー:−GBUSY このGAMビジー線は、GAM18の内部状態を、GA
B12上の他の構成要素、即ちP14とPMI20に指
示するために、GAM18によって使用される。このG
AMビジー線が付勢されると(ロー)、これは、GAM
18が現に一のGAM動作に従事しており、他のGAM
要求を受入れることができないことを指示する。GAM
18からのサービスを必要とするバス・マスタは、この
GAMビジー線を監視する。一のGAM動作を要求する
バス・マスタは、このGAMビジー線が付勢されていな
い場合には、バス要求のみを行うことができるに過ぎな
い。バス・マスタのうちの1つが制御権の争奪に勝っ
て、制御権を受け取ると、そのバス・マスタは、GAB
12上にGAM要求を置くことができ、そのバス・サイ
クルが完了すると、GAB12を解放する。GAM18
は、一のGAM要求を受け取った時点で、このGAMビ
ジー線を付勢する。制御権の争奪に勝てなくて、なおG
AM18のサービスを必要とするバス・マスタは、この
GAMビジー線が活動的になるのを知った時点で、(そ
の要求線を消勢することによって)バス要求を取り消
す。GAM18は、要求されたGAM動作を完了し、必
要に応じて、非同期要求状況をその状況レジスタに置く
と、このGAMビジー線を消勢する。このGAMビジー
線が消勢される時点で、なおGAM18のサービスを必
要とするこれらのバス・マスタは、再びそのバス要求を
行うことができる。 直接駆動 「ロー」が付勢状態 GAM18によって駆動される P14及びPMIによって監視される
【0182】§6.2: GAB12の制御権の争奪と
付与のプロセス P14又は一のPMI20が、GAB12をアクセスす
る必要がある場合、P14又はこのPMI20は、最初
に、GAB12の制御権を獲得しなければならない。汎
用アダプタ内の潜在的な各バス・マスタは、バス・アー
ビタに対する個別のバス要求線を有しており、またバス
・アービタは、潜在的な各バス・マスタに対する個別的
なバス付与線を有する。各バス・サイクル中、バス・ア
ービタは、付勢されているバス要求線から制御権の獲得
者を選択する。各バス・マスタは、バス付与線及びバス
・ビジー線の両方を監視する。もし、一のバス・マスタ
が、バス・ビジー線が付勢されていない一のバス・サイ
クル中に、制御権を付与されれば、そのバス・マスタ
は、バス・ビジー線を付勢することによって、制御権を
獲得することができる。また、バス・アービタは、バス
・ビジー線を監視して、制御権の争奪サイクルごとに、
制御権の獲得者をログする。この情報は、(§6.3の
「GAB12のバス優先順位方式」に記載の)ラウンド
・ロビン式のバス優先順位方式を実現するのに使用さ
れ、そしてバス・エラー発生時には(§4.14の「G
AB12用のモニタ」に記載の)ログ情報として使用さ
れる。
【0183】§6.3: GAB12のバス優先順位方
式 GAB12について採用されているバス優先順位方式
は、予めプログラムされた優先順位と、ラウンド・ロビ
ン式の公平さを兼ね備えている。汎用アダプタの初期設
定中、P14は、GAB12の可能なバス・マスタのう
ちのどれが常に最高のバス優先順位を有するかを決定す
ることができる。この場合、他のバス・マスタは、サイ
クル単位のラウンド・ロビン方式に従って、バス優先順
位を共有する。デフォルトの最高優先順位を有するバス
・マスタは、汎用アダプタの電源投入後は、P14であ
る。しかし、P14は、GAM18に対し「WT_GA
M」プリミティブを発行することによって、最高優先順
位のバス・マスタを任意のPMI20に変更することが
できる。
【0184】ラウンド・ロビン式の優先順位方式は、次
のように作用する。即ち、最高優先順位のバス・マスタ
が選択された後に、他の4つのバス・マスタの各々は、
0〜3までの通し番号を割り当てられる。もし、ラウン
ド・ロビンのバス・マスタXが、現バス・サイクル内の
制御権の争奪に勝てば、次のバス・サイクルに対するバ
ス優先順位は(最高から最低への順番に)、 選択さ
れた最高優先順位のバス・マスタ、 バス・マスタ
(X+1)モジュロN、 バス・マスタ(X+2)モ
ジュロN、 バス・マスタ(X+3)モジュロ
N、...、 バス・マスタXになる。但し、モジュ
ロNは、Nによる剰余を表す。他方、選択された最高優
先順位のバス・マスタが、現バス・サイクル内のGAB
12の制御権の争奪に勝てば、次のバス・サイクルに対
する優先順位は変更されない。
【0185】§6.4: GAB12のバス動作方式と
サイクル制限 一のバス・マスタがGAB12の制御権を獲得すると、
このバス・マスタは、バス・ビジー線を付勢し、そのバ
ス動作を開始する。バス・ビジー線が付勢された時点か
ら制御権が自発的に解放される(バス・ビジー線が消勢
される)時点までの期間中、このバス・マスタは、GA
B12の全体を制御するから、この間は、他の如何なる
バス・マスタ動作も許可されない。この種のバス動作
は、ノン・プリエンプティブ方式と呼ばれる。この非優
先方式を用いる場合、制御権ごとに許可されるBCLK
サイクルの数は、他のバス・マスタの長時間の停止状態
を回避するために、一の制限を有さなければならない。
このアーキテクチャは、制御権ごとに許可されるBCL
Kサイクルの最大数を定義しない。個々の各実現形態
が、この時間の制限を定義しなければならない。この制
限は、「WT_GAM」プリミティブを使用するP14
によって、プログラム可能である。
【0186】汎用アダプタ内の任意のバス・マスタは、
この制限に達する前に、自発的に制御権を解放する。も
し、この制限に達した段階で、バス・ビジー線が依然と
して付勢状態にあれば、GAM18は、バス・エラー線
を付勢する。このバス・エラー線が付勢されると、汎用
アダプタ内の全ての構成要素は、進行中の任意の処理を
打ち切り、そしてP14は、マスク不能割り込みを受け
取る。
【0187】§6.5: GAB12のバス動作とサイ
クル・タイミング 以下の項では、GAB12のバス信号の相互作用と、異
なるバス動作のタイミングを説明する。
【0188】§6.5.1: 単一の読み出し/書き込
み動作 図5には、1つの読み出し動作と1つの書き込み動作と
の信号の相互作用が示されている。なお、図中の参照番
号は、以下の各項目の番号に対応する。 (1)バス要求: バス・マスタが、GAB12の制御
権を要求する。 (2)バス付与: 1サイクル後に、GAM18が、制
御権を付与する。 (3)動作開始: 制御権の付与の1サイクル後に、バ
ス・マスタは、バス・ビジー線を付勢するとともに、コ
マンド線を付勢し且つ有効なアドレスをアドレス・バス
上に置くことによって、一の読み出し動作を開始する。 (4)応答レディ: コマンド線とアドレス・バスは、
1サイクルの間だけ、有効に留まる。次のサイクルの間
に、バス・スレーブは、要求を完了し、応答線を付勢
し、有効なデータをデータ・バス上に置く。 (5)バス解放: 応答線とデータ・バスは、1サイク
ルの間だけ、有効に留まる。この例の場合、バス・マス
タは、これ以上の要求を有していないから、バス・ビジ
ー線を消勢することによって、GAB12を解放する。 (6)他の動作の開始: 制御権の要求及び付与プロセ
スの他のサイクルの後、バス・マスタは、再び制御権を
受け取る。このバス・マスタは、バス・ビジー線、コマ
ンド線、及び書き込み線を付勢した後、有効なデータと
有効なアドレスをデータ・バスとアドレス・バス上に置
く。 (7)コマンドの消勢: このバス・マスタによって制
御される全ての信号が、1バス・サイクル後に消勢され
る。 (8)応答レディ: バス・スレーブは、この書き込み
要求を完了し、応答線を付勢する。 (9)バス解放: 動作が完了する。バス・マスタがG
AB12を解放する。
【0189】§6.5.2: ストリーム・モードの読
み出し動作 図6には、ストリーム・モードの読み出し動作中の信号
の相互作用が示されている。図6中の参照番号は、以下
の各項目の番号に対応する。 (1)動作開始: GAB12の制御権を獲得した後、
バス・マスタは、コマンド線を付勢するとともに、有効
なアドレスをアドレス・バス上に置く。 (2)ストリーム・モード・レディ: 最初の応答を供
給する1サイクル前に、バス・スレーブは、ストリーム
・モード線を付勢して、ストリーム・モード動作をサポ
ートできることを指示する。 (3)他の動作の開始: バス・マスタは、再びコマン
ド線を付勢することによって、第2の読み出し動作を開
始する。 (4)応答レディ: バス・スレーブは、第2の読み出
し動作に対する応答を生成する。 (5)確立されたストリーム・モード動作: コマンド
線と応答線は、両者ともに、ストリーム・モード動作の
間、ロー・レベルに留まる。データは、バス・スレーブ
からバス・マスタへ、1サイクル当たり32ビットのレ
ートで流れる。 (6)コマンド除去: バス・マスタは、その要求の全
てを完了し、コマンド線を消勢する。 (7)応答除去: コマンド線が消勢されてから1サイ
クル後に、バス・スレーブは、応答線を消勢する。 (8)バス解放: 応答線が消勢されるサイクルの終了
時に、バス・マスタは、GAB12を解放する。 (9)ストリーム・モード除去: コマンド線が消勢さ
れた後、バス・スレーブは、ストリーム・モード線を消
勢する。
【0190】§6.5.3: ストリーム・モードの書
き込み動作 図7には、ストリーム・モードの書き込み動作中の信号
の相互作用が示されている。図7中の参照番号は、以下
の各項目の番号に対応する。 (1)動作開始: GAB12の制御権を獲得後、バス
・マスタは、コマンド線を付勢し、データとアドレスの
両方をデータ・バスとアドレス・バス上に置くことによ
って、その書き込み動作を開始する。 (2)応答レディ: 最初の応答を供給する1サイクル
前に、バス・スレーブは、ストリーム・モード線を付勢
して、このバス・スレーブがストリーム・モード動作を
サポートできることを指示する。 (3)ストリーム・モード動作開始: バス・マスタ
は、再びコマンド線を付勢することによって、第2の書
き込み動作を開始する。 (4)確立されたストリーム・モード動作: バス・ス
レーブは、第2の書き込み動作に対する応答を生成し
て、ストリーム・モード動作を確立する。 (5)ストリーム・モード動作中断: もし、バス・ス
レーブが、これ以上ストリーム・モード動作をサポート
しないと決定すれば、このバス・スレーブは、ストリー
ム・モード線を消勢することができる。 (6)コマンド除去: ストリーム・モード線が消勢さ
れた1サイクル後に、バス・マスタは、コマンド線を消
勢する。 (7)応答除去: コマンド線が除去された1サイクル
後に、バス・スレーブは、応答線を消勢する。 (8)他の動作の開始: バス・マスタは、ストリーム
・モードの中断後に、再びコマンド線を付勢して、次の
バス動作を開始する。 (9)応答レディ: バス・スレーブは、最後のバス動
作に対する応答を生成する。 (10)バス解放: バス・マスタは、その全ての動作
を完了し、GAB12を解放する。
【0191】§6.5.4: ストリーム・モードのパ
イプライン式読み出し動作 図8には、ストリーム・モードのパイプライン式読み出
し動作の信号の相互作用が示されている(この図面は、
低速のバス・スレーブが、ストリーム・モード信号を使
って、その複数の読み出し動作をパイプライン化するこ
とができる方法を示すためのものである)。図8中の参
照番号は、以下の各項目の番号に対応する。 (1)バス要求: バス・マスタが、GAB12の制御
権を要求する。 (2)バス付与: 1サイクル後に、GAM18が、制
御権を付与する。 (3)動作開始: 制御権が付与されてから1サイクル
後に、バス・マスタは、バス・ビジー線を付勢し、コマ
ンド線を付勢し且つ有効なアドレスをアドレス・バス上
に置くことによって、読み出し動作を開始する。 (4)ストリーム・モードの活動化: バス・スレーブ
は、応答を十分高速に生成できないとしても、ストリー
ム・モード線を付勢して、次のアドレスを要求すること
ができる。 (5)パイプライン動作の開始: ストリーム・モード
線が付勢された1サイクル後に、バス・スレーブは、前
のバス動作に対する応答を生成する。これと同時に、バ
ス・マスタは、コマンド線を付勢して、次の読み出し動
作を開始する。 (6)パイプライン動作の続行: バス・スレーブは、
ストリーム・モード線をトグルして、パイプライン動作
を継続する。 (7)最終応答レディ: バス・スレーブは、最後のバ
ス動作に対する応答を生成する。 (8)バス解放: バス・マスタは、全ての読み出し動
作を完了して、GAB12を解放する。
【0192】§7.0: パケット・メモリ・インタフ
ェース(PMI)20 各汎用アダプタは、最大N個の入出力ポートを有するこ
とができる。これらの入出力ポートは、PM16内の待
ち行列及びP14との相互作用を通して、互いに通信す
る。各入出力ポートとシステムの残り部分との通信は、
この入出力ポートに関連するPMI20によって管理さ
れる。PM16は、バッファのグループとして編成さ
れ、そしてこれらのバッファは、GAM18と個々のP
MI20との相互作用によって、各パケット対応に連係
される。一の通信フロント・エンドからの入力(インバ
ウンド)データ・ストリーム又はパケットは、GAM1
8から獲得されたバッファ内のアドレスを使用して、こ
のPMI20によってPM16内に記憶される。出力
(アウトバウンド)データは、PMIによってPM16
から読み出され、パケットの形式でこの通信フロント・
エンドに与えられる。
【0193】PMI20は、特定の通信フロント・エン
ド(即ち、伝送線インタフェース、LANインタフェー
ス、交換装置接続、又はシステム・バス接続機構)と、
汎用アダプタの残り部分と間の変換手段である。PMI
20は、GAB12に対する統一的なインタフェースを
与えて、種々の相互接続をサポートするようにカストマ
イズ可能な、通信フロント・エンドに対する汎用インタ
フェースを提供する。本章では、このインタフェースの
汎用部分を説明する。特定の実現形態は、本明細書の種
々の部分に記載されている。
【0194】§7.1: PMI20の汎用機能 PMI20が存在するのは、通信ポートの「フロント・
エンド」を、GAB12の特定の要件から分離するため
である。この分離をサポートするためにPMI20が遂
行する機能には、次のものが含まれている。 (1)GAB12のバス・マスタ状況を獲得するための
調停信号を含む、GAB12の複数の信号を駆動すると
ともに、これを受け取る。 (2)パケットを組み立てるとともに、最大8つの並列
パケットを多重化するためのコントローラとして動作す
る。この8という数は任意であり、しかも小さな数(も
し、一の資源が提供されるのであれば、この資源のイン
スタンスの数が、0若しくは1又は相対的に無限でなけ
ればならないとする、このアーキテクチャの原理に違反
する)であるように思えるかもしれないが、多くのアプ
リケーションについては、8で十分である。これらの8
本の「サブチャネル」の使用に関する検討は、特定の実
現形態に関する説明の箇所に見出される。8本のサブチ
ャネルだけを提供することの主たる利点は、制御情報と
データ・ステージング・バッファの両方を、単一のPM
Iチップ内に含めることができる点にある。 (3)各PMI20がサービスする出力待ち行列セット
用の、待ち時間が少ないステージング・バッファとして
動作する。このPMI20は、待ち行列セットの各待ち
行列ごとに完全な一のパケットを記憶するのではなく、
GAB12の調停の待ち時間なしに、伝送帯域幅の使用
可能性に応答するのに十分なだけ、各待ち行列からのパ
ケットを記憶するに過ぎない。1つの実現形態では、任
意のパケットについて任意の時間に、高々64バイトが
PMI20内に記憶されるに過ぎない。このバッファリ
ングは、GAB12上でバースト・モード転送を利用す
る能力を与える。サイズが小さいステージング・バッフ
ァは、このバッファを通しての待ち時間が小さいことを
保証する。 (4)入力パケットをPM16内に記憶し且つGAM1
8と相互作用することによって、これらの入力パケット
をエンキューする。 (5)パケット・タイプと送信元情報をPM16内の待
ち行列識別子に変換するために、マッピング情報を維持
する。これは、制限された能力である。マッピングされ
たセット内には、16個程度の入力待ち行列が存在でき
るに過ぎないからである。この特定のマッピング機能
は、通信フロント・エンド内で実現されている。 (6)プリミティブの要求を発行する。 (7)PM16内のデータ・バッファの移動を遂行す
る。PMI20は、一のバス・マスタとして働き、GA
B12の使用を調停し、GAM18との以前の通信に基
づいてアドレスを生成する。 (8)GAB12上のエラー、P14の非同期要求、及
びPMI20の通信フロント・エンドからの要求に基づ
いて、GAB12の割り込みを生成する。 (9)GAB12の使用に関するそれ自体の要求を調停
するために、GAMビジー信号を監視する。もし、GA
M18が現にビジーであれば、PMI20は、GAM1
8と通信するためのGAB12の使用を要求しない。 (10)パケット用のバッファ空間がある時に限って、
これらのパケットが入力されることを保証するために、
「閾値以上の非同期バッファ(ABABV)」信号と
「閾値以下のフリー・バッファ(BELOW)」信号を
監視する。 (11)「待ち行列状況レジスタ変更(QSRC)」信
号を監視する。各PMI20は、このPMI20がサー
ビスしている待ち行列用の、待ち行列状況レジスタの部
分のシャドウ・コピーを維持する。一の待ち行列状況レ
ジスタを更新する場合、GAM18は、QSRC信号で
以て、この事象を指示する。もし、QA線がPMI20
の内部レジスタである待ち行列識別子レジスタと一致す
る間に、QSRC信号が付勢されるのであれば、PMI
20は、そのシャドウ・コピーを更新するために待ち行
列レジスタの読み出し要求を開始する。 (12)他のバス・マスタの要求を復号し、これに応答
する。殆どの場合、これらはP14からの要求である。
このPMI20は、バス・スレーブとして動作する。即
ち、その内部レジスタへの読み出し要求又は書き込み要
求に応答するか、或いはその通信フロント・エンドの制
御レジスタに至る一の経路を提供する。 (13)入力トラヒックと出力トラヒックについて、任
意のバイト境界整列の調節を遂行する。 (14)オプションとして、入力トラヒックと出力トラ
ヒックについて、任意のデータ・フィルタリング機能を
遂行する。 (15)オプションとして、他の入出力ポート、PM1
4、GAM18、及びPローカル・メモリ22と直接通
信するために、通信フロント・エンド用の一の経路を提
供する。
【0195】§7.2: PMI20の概要 図9には、PMI20のブロック図が示されている。図
9からわかるように、PMI20は、GAB12と汎用
通信フロント・エンド・インタフェースとの間の変換手
段として動作する。この変換の説明は、6つの部分に分
けて行われる。即ち、概説の後に、出力データ経路、入
力データ経路、同期レジスタ・インタフェース、非同期
レジスタ・インタフェース、及び割り込み機構の各々に
ついて、それぞれ詳述する。
【0196】2つのデュアルポート・メモリは、柔軟性
をもたらすだけでなく、PM16と授受されるパケット
・データ用のステージング・バッファを提供する。これ
らのデータ・バッファの各々は、その入力側に、アドレ
ス生成/バイト境界整列論理を有する。これらのデータ
・バッファの一方又は両方の出力側には、特別のデータ
・フィルタを設けることができる。出力データ・バッフ
ァの入力側にあるバイト境界整列論理は、PM16内で
任意のバイト境界上で境界整列されたパケットの転送を
可能にする。入力データ・バッファの入力側にあるバイ
ト境界整列論理は、ネットワーク・インタフェース又は
ローカル・バス・インタフェースからのワード内におけ
るバイトの任意の境界整列を可能にする。データ・フィ
ルタは、このアーキテクチャのオプション部分である。
例えば、入力データ・バッファの出力側には、一の検査
和モジュールを結合することができる。このモジュール
は、TCP及びISO/TPクラス4の検査和を生成し
且つ検査するために、P14が使用する情報を提供する
ことができる。データ・フィルタ・モジュールの他の使
用例は、FDDIサポート用のチップである。出力デー
タ経路は、既存のFDDIチップで以て全二重式のFD
DI動作を可能にするために、一のFDDIフレーム検
査シーケンス生成器を有することができる。
【0197】これらのレジスタとカウンタは、PM16
用のアドレスを生成したり、GAM要求を構築したり、
P14の要求を処理するのに使用される。
【0198】§7.3: PMI20のバス活動 PMI20は、バス・マスタとして、またバス・スレー
ブとしても動作する。P14がPMI20と相互作用す
る場合、このPMI20は、P14に対してバス・スレ
ーブとして動作する。これらのバス活動は、PMI20
のバス・サブシステム内で最高優先順位を有する。
【0199】このバス・サブシステムの2番目に高い優
先順位を有する唯一のタスクは、PMI20が、GAM
18に対し、一の事象を書込むためのものである。これ
は、PMI20のデバイス固有部分の要求に応じて行わ
れる。一の32ビット・ワードが、GAM18に書き込
まれると、GAM18は、このデータをP14のために
エンキューする。
【0200】3番目に高い優先順位を有するバス活動
は、PMI20が、そのシャドウ待ち行列状況レジスタ
を更新するためのものである。一の待ち行列状況ビット
を更新する場合、GAM18は、待ち行列状況レジスタ
変更(QSRC)線を使用して、複数のPMI20に通
知を行う。もし、この変更が、このPMI20によって
サービスされている待ち行列に対応するのであれば、こ
のPMI20は、一のシャドウ待ち行列状況更新サイク
ルを開始する。
【0201】このPMI20は、その時間の殆どを、最
低優先順位のバス活動としてデータ転送機能の遂行に費
やす。このPMI20は、入力及び出力転送のスケジュ
ーリングを、ラウンド・ロビン方式で行う。GAM18
とPMI20との間の入力及び出力データ転送の相互作
用については、§4.0の「汎用アダプタ・マネージャ
(GAM)18」及び§5.0の「待ち行列のスケジュ
ーリングと通知」で詳述されている。
【0202】次のテーブルは、PMI20のバス活動を
要約したものである。これらのバス活動は、優先順位の
順にリストされている。□を付記したバス活動は、GA
M18がビジーである間は、試みられない。 優先順位1: バス・スレーブの活動 P14によるレジスタの書き込み P14によるレジスタの読み出し P14による非同期データの書き込み P14による非同期データ要求の開始 P14による非同期データの読み出し P14による同期データの書き込み P14による同期データの読み出し □優先順位2: PMI20によるGAM18への事象
の書き込み □優先順位3: PMI20によるシャドウ・レジスタ
の更新 優先順位4: 入力/出力パケット・データの転送 (ラウンド・ロビン) 入力 □受信要求 □フリー・バッファ要求 PM16へのパケット・データの書き込み PM16へのフィルタ・データの書き込み □パケットのエンキュー □パケットのフラッシュ 出力 □送信要求 □次バッファ PM16からの読み出し □送信終了
【0203】§7.3.1: PMI20 −− GA
Bアドレスに対する応答 図10に示されているように、GAB12のアドレス空
間は、4つの主要な部分、即ちPローカル・メモリ2
2、PM16のアドレッシング、GAM18のアドレッ
シング及びPMI20のアドレッシングに分割されてい
る。また、PMI20のアドレッシングは、そのPMI
識別子(PMI−ID)に従って、複数の範囲に分割さ
れている。各PMI20は、そのPMI識別子レジスタ
を使用して、それぞれ異なるアドレス範囲に反応する。
各PMI20のアドレス空間は、4つの範囲に分割され
ており、これらの範囲の各々は、通信フロント・エンド
の同期インタフェースと非同期インタフェースにそれぞ
れ1つ、PMI20内にある汎用の内部レジスタとデバ
イス固有の内部レジスタにそれぞれ1つずつ割り当てら
れている。
【0204】§7.3.2: PMI20 −− GA
Bインタフェース信号 GAB12に対するPMI20の接続は、以下にリスト
する諸信号から成る並列接続である。先ず、このリスト
について、若干の一般的説明を行う。このリストの各エ
ントリのフォーマットは、次の通りである。 1 名前 −−(I) このエントリは、単一の入力信
号の例である。この例について説明すると、最初の数値
「1」は、この信号グループのピンの数を表し、2番目
の「名前」は、この信号グループの名前を、3番目の
「I」は、入力/出力の区別を表し、最後の文章は、こ
の信号グループの説明を表す。名前の最初の文字として
ハイフン(−)を有する信号は、「ロー」が付勢状態で
あるものと仮定する。 (I)のラベルを付した全てのピンは、PMI20への
入力である。 (O)のラベルを付した全てのピンは、PMI20から
の出力である。 (I/O)のラベルを付した全てのピンは、バス・サイ
クルに依存して、入力又は出力の何れかであり得る。こ
れらの依存性は、PMI20が、そのサイクル中にバス
・マスタとして又はバス・スレーブとして動作するかと
いうこと、及びそのサイクルが読み出しサイクル又は書
き込みサイクルのどちらであるか、ということである。
以下の記述では、この信号が入力である場合、それが出
力である場合、及びPMI20がこのピンを(高インピ
ーダンスに)トライステート化した場合を説明する。 (O/T)のラベルを付した全てのピンは、出力である
か、又は高インピーダンスである。これらのピンは、駆
動されるけれども、監視されないピンである。
【0205】PMI/GABインタフェースの各ピンを
詳述すると、次の通りである。
【0206】1 BCLK −− (I) GAB12
は、同期バスであって、その全ての状態遷移は、このB
CLK信号の立下りエッジで発生する。このBCLK信
号が「ハイ」である間、諸信号は安定状態にあるものと
仮定する。
【0207】1 −BR −− (O) PMI20
は、このバス要求線をローに駆動することによって、G
AB12の制御権を要求する。潜在的な各バス・マスタ
ごとに、別々のバス要求線がある。
【0208】1 −BG −− (I) GAB12用
の調停論理は、各BCLKサイクルごとに、全てのバス
要求に応答する。このバス付与信号の各々は、バス要求
信号の各々に対応する。PMI20に加わるバス付与信
号は、このPMI20がバス・マスタになれるか否かを
決定するために、このPMI20によって次のバス・ビ
ジー信号とともに使用される。(このPMI20の)バ
ス付与信号が付勢されており且つバス・ビジー信号が付
勢されていないと、このPMI20は、GAB12の制
御権を有する。
【0209】1 −BUSY −− (I/O) GA
B12の制御権を獲得しているPMI20が、このバス
・ビジー信号を「ロー」に駆動する。GAB12の使用
を終了すると、このPMI20は、このバス・ビジー線
を1サイクルの間ハイに駆動する。そのサイクルの終了
時に、このPMI20は、そのバス・ビジー線のピンを
トライステート化する。
【0210】1 −CMD −− (I/O) このコ
マンド信号は、GAB12の制御権を獲得し且つ一のバ
ス・スレーブに対するバス動作の開始を望んでいるPM
I20によって、駆動される。このPMI20がバス・
マスタでないと、このコマンド信号は、潜在的なバス・
スレーブ・サイクルの開始を決定するために監視され
る。
【0211】1 R/−W −− (I/O) この読
み出し/書き込み信号は、バス・マスタであるPMI2
0によって駆動される。この読み出し/書き込み信号が
「ハイ」に駆動されると、このサイクルは読み出しサイ
クルであり、「ロー」に駆動されると、このサイクルは
書き込みサイクルである。
【0212】1 −RESP −− (I/O) バス
・コマンドについてアドレス一致を検知すると、このP
MI20は、この要求に応答する。この応答信号のタイ
ミングについては、バス・プロトコルの説明を参照され
たい。この応答信号は、バス・スレーブ・モードでは、
出力であり、PMI20が制御権を有している間は、入
力である。もし、PMI20が、一のパリティ・エラー
又はバス・エラー・サイクルを検知すれば、この応答信
号は駆動されない。
【0213】1 −SM −− (I/O) このスト
リーム・モード信号は、バス・スレーブであるPMI2
0によって、「ハイ」に消勢される。PMI20は、バ
ス・スレーブのストリーム・モードへの移行を提供しな
い。しかし、パケット・データ転送中にPM16がこの
ストリーム・モード信号を駆動するから、PMI20が
バス・マスタである間は、このストリーム・モード信号
が監視される。
【0214】3 SLOT−ID[0:2] (I)
これらのスロット識別子入力は、ハードワイヤ接続され
たピンである。PMI20を構成するために使用される
場合、これらのピンは、コマンド識別子レジスタと待ち
行列識別子レジスタのデフォルト内容を供給する。これ
らのスロット識別子入力の3ビットは、電源投入時リセ
ット及びソフトウェア・リセットの際に、これらのレジ
スタにロードされる。
【0215】24 ADDR[02:25] −−
(I/O) これらのアドレス・ピンは、GAB12の
制御権を有するPMI20によって、出力として駆動さ
れる。これらのアドレス・ピンは、コマンド線が付勢さ
れているバス・サイクルの間だけ、有効である。バス・
マスタでないPMI20は、これらのアドレス・ピンを
監視する。もし、一のバス・コマンドが、そのアドレス
として(ADDR[25]=1 && ADDR[2
4]=1 && ADDR[23]=0 && ADD
R[20:22]=PMI−ID[0:2])を有する
のであれば、PMI20は、このバス・サイクルの間、
バス・スレーブになる。
【0216】3 PA[0:2] −− (O/T)
これらのアドレス・パリティ線は、バス・マスタである
PMI20によって、出力として駆動される。これらの
アドレス・パリティ線では、奇数パリティが使用され
る。即ち、PA[0]が、ADDR[02:09]を保
護し、PA[1]が、ADDR[10:16]を保護
し、PA[2]が、ADDR[17:25]を保護す
る。
【0217】4 BE[0:3] −− (I/O)
これらのバイト・イネーブル信号は、バス・マスタであ
るPMI20によって、駆動される。このPMI20に
よって開始されたメモリ読み出しサイクルの間、全ての
転送が32ビットの読み出しであるという理由で、これ
らの4つのバイト・イネーブル信号が全て駆動される。
メモリへの書き込みサイクルを部分書き込みにするとい
うオプションがあるが、PMI20内のバッファリング
は、部分ワード書き込みの必要性を排除する。このた
め、全てのPMI20がバス・マスタである場合の全て
の書き込みサイクルの間には、これらの4本のバイト・
イネーブル線の全てが駆動される。
【0218】1 BEP −− (O/T) このバイ
ト・イネーブル・パリティ線は、バス・マスタであるP
MI20によって、前述のバイト・イネーブル信号BE
[0:3]の奇数パリティで以て駆動される。
【0219】1 −BERR −− (I) このバス
・エラー線は、GAM18内のバス・エラー・モニタに
よって駆動される。もし、任意のバス・サイクルの間
に、このバス・エラー線が付勢されるのであれば、現バ
ス・サイクルが打ち切られ、バス・エラー・ビットが内
部の状況レジスタ内にセットされる。このビットは、こ
の状況レジスタへの書き込みによってクリアすることが
できる。バス・エラー・ビットが付勢されていると、こ
のPMI20と通信フロント・エンドとの間では如何な
るデータ移動も行われず、また通信フロント・エンドに
よって試みられる転送は、打ち切られるか又はフラッシ
ュされる。このPMI20が、バス・エラーのためにバ
ス・トランザクションを打ち切る場合、バス打ち切りビ
ットが内部の状況レジスタ内にセットされる。
【0220】32 DATA[00:31] −−
(I/O) GAB12のこれらのデータ・ピンは、こ
のPMI20がバス・マスタであり且つサイクルが書き
込みサイクルであるときに、駆動される。これらのデー
タ・ピンは、コマンド線が付勢されているクロック・サ
イクルの間だけ、有効である。他のバス・マスタによっ
て開始された一の読み出しサイクルに応答するバス・ス
レーブとして動作している場合、このPMI20は、こ
れが応答線を駆動するクロック・サイクルの間、GAB
12上のこれらのデータ・ピンを駆動する。
【0221】4 PD[0:3] −− (O/T)
GAB12上のデータ・ピンが駆動されると、GAB1
2上のこれらのデータ・パリティ・ピンが、PMI20
によって駆動される。奇数パリティ方式を基礎とするP
D[0]がDATA[00:07]を保護し、PD
[1]がDATA[08:15]を保護し、PD[2]
がDATA[16:23]を保護し、PD[3]がDA
TA[24:31]を保護する。
【0222】1 −GBUSY −− (I) このG
AMビジー信号は、GAB12の制御権を要求するか否
か、及びどのタイプのサイクルを開始するかを決定する
ために、PMI20によって使用される。このGAMビ
ジー信号が付勢されている間、このPMI20は、GA
B18との新しい相互作用バス・サイクルを開始するこ
とを試みない。
【0223】1 QSRC −− (I) この待ち行
列状況レジスタ変更ピンは、PMI20の一部分によっ
て監視される。この待ち行列状況レジスタ変更信号は、
一の待ち行列の状況が変更される場合に、GAM18に
よって駆動される。
【0224】3 QA[0:2] −− (I) これ
らの待ち行列アドレス線も、一の待ち行列状況ビットを
更新するとき、GAM18によって駆動される。このP
MI20は、これらの待ち行列アドレス・ビットと、そ
の内部の待ち行列識別子レジスタとを比較する。もし、
前述の待ち行列状況レジスタ変更線が付勢されている時
に、これらの2つの3ビット値が一致すれば、このPM
I20は、「シャドウ待ち行列状況レジスタ更新」サイ
クルを開始する。
【0225】1 −RV −− (O) 一のPMI2
0の非同期インタフェースからの読み出しを他のバス・
マスタが開始すると、この読み出しのアドレスが、その
PMI20の非同期インタフェース・アドレス・バッフ
ァに記憶され、その入出力ポートのフロント・エンド
が、この非同期要求を通知される。このフロント・エン
ドが、その要求に解答するための対応するデータを非同
期インタフェース・データ・バッファに書込むと、この
PMI20は、この応答有効信号を付勢する。この応答
有効信号は、他のバス・マスタが、この非同期インタフ
ェースのデータ・バッファの内容を読み出すときに、ク
リアされる。一般的に説明すれば、この応答有効信号
は、非同期インタフェースのデータ・バッファへの書き
込みが行われるときにセットされ、この非同期インタフ
ェースのデータ・バッファからの読み出しが行われると
きにクリアされる。
【0226】1 −INT −− (O) このPMI
20の割り込み要求信号は、割り込みマスク・レジスタ
内の諸ビットと、状況レジスタ内の諸ビットとの論理和
から駆動される。
【0227】1 ABABV −− (I) この「閾
値以上の非同期バッファ」入力は、GAM18によって
駆動され、(付勢されていると)非同期パケットが、そ
れらに割り当てられたものよりも大きな空間を、PM1
6内で占有することを指示する。この条件が真である
と、このPMI20は、「フル・フラッシュ」状況ビッ
トの値に依存して、「非同期待ち行列マスク」ビットを
セットされている待ち行列に記憶されたであろう、諸パ
ケットをフラッシュするか、又はこれらのパケットの記
憶を停止する。
【0228】1 BELOW −− (I) この「閾
値以下のフリー・バッファ」入力は、GAM18によっ
て駆動され、(付勢されていると)同期パケットが、そ
れらに割り当てられたものよりも大きな空間を、PM1
6内で占有することを指示する。この条件が真である
と、このPMI20は、「フル・フラッシュ」状況ビッ
トの値に依存して、「同期待ち行列マスク」ビットをセ
ットされている待ち行列に記憶されたであろう、諸パケ
ットをフラッシュするか、又はこれらのパケットの記憶
を停止する。
【0229】1 RESET −− (I) このリセ
ット・ピンは、このPMI20に対し、実行中の任意の
トランザクションを打ち切らせるとともに、それ自体を
電源投入時の状態に完全にリセットさせる。内部にある
全ての状態マシンは、そのリセット状態に移行し、全て
のレジスタには、デフォルト値がロードされる。割り込
みマスク・レジスタがクリアされ、状況レジスタ内のリ
セット・ビットがセットされる。
【0230】§7.4: PMI20の通信フロント・
エンド・インタフェース PMI20の特定の実現形態は互いに相違するけれど
も、PMI20のバッファリングと通信フロント・エン
ドとの間のインタフェースは、汎用的な形態を取る。即
ち、このインタフェースは、特定の実現形態に制限され
るのではなくて、汎用性を有するのである。図11に示
されているこのインタフェースには、次のための信号が
含まれている。通信フロント・エンドからPM16へ、
パケット・データを移動させる。PM16から通信フロ
ント・エンドを通して外部へ、パケット・データを移動
させる。同期式と非同期式のタイミング方式を使用し
て、通信フロント・エンドの制御データの読み出し及び
書き込みを行う。通信フロント・エンドからP14へ、
割り込みを渡す。非同期の事象データを、GAM18に
書き込む。
【0231】汎用インタフェースのこれらの部分は、以
下で説明する信号とレジスタとから構成されている。以
下の説明は、可能なインタフェース機能の全範囲を示す
ものである。もし、特定の通信フロント・エンドが、P
MI20の全能力を必要としなければ、フルセットの信
号と機能を提供する必要はない。
【0232】入力パケット・データ −− パケット・
データは、PMI20を通して、8つの別個の制御チャ
ネルのうち任意の制御チャネル上に到着する。この制御
チャネルは、PM16へのパケットの経路指定を処理す
る。一のパケットが完全に受信された後、このPMI2
0は、このパケットをPM16内の待ち行列にエンキュ
ーする。以下の信号は、通信フロント・エンドからPM
I20への、パケット・データの転送を管理するために
使用されるものである。
【0233】32 IDATA[00:31] −−
(I) これらの入力データは、パリティによって保護
される。このため、余分に4つの信号が追加される。入
力データ経路は、論理的には4バイト幅であるが、物理
的には1バイト幅、2バイト幅又は4バイト幅でよい。
ワード内のこれらのバイトの順序は、ハードウェアの制
御下で、変更することができる(§7.5.13の「入
力バイト順序レジスタ」の説明を参照)。
【0234】4 IDATAP[0:3] −−
(I) これらの入力データ・パリティは、対応するデ
ータ・バイトとともに記憶され、GAB12に渡され
る。
【0235】1 ID_READY −− (O) こ
の入力データ・レディ信号は、バッファリング空間の使
用可能性を、通信フロント・エンドに通知するのに使用
される。この入力データ・レディ信号を生成するため
に、GAM18からの「閾値以上の非同期バッファ(A
BABV)」信号及び「閾値以下のフリー・バッファ
(BELOW)」信号が監視される。この入力データ・
レディ信号は、転送すべきデータについて付勢されなけ
ればならない。この入力データ・レディ信号は、後述の
「入力データ・チャネル識別子」が変更されてから1サ
イクル後に、対応するチャネルについて正しく付勢され
る。
【0236】1 ID_CLOCK −− (I) 通
信フロント・エンドのコントローラが、この入力データ
・クロックを供給する。PMI20は、この入力データ
・クロックを使用して、データをその内部バッファにラ
ッチする。
【0237】3 ID_CID[0:2] −−
(I) この「入力データ・チャネル識別子」は、どの
論理チャネルが現データ・バーストを経路指定すべきか
を通信するのに使用される。パケットを多重化するため
には、並行パケットの各々は、それぞれ異なる論理チャ
ネルの制御下になければならない。
【0238】1 ID_QSELV −− (I) こ
の「入力データ待ち行列セレクタ有効」信号の説明につ
いては、下記を参照されたい。
【0239】8 ID_QSEL[0:7] −−
(I) 前述の「入力データ待ち行列セレクタ有効」信
号が付勢されているサイクルの間に、この「入力データ
待ち行列セレクタ」信号が、読み出される。この「入力
データ待ち行列セレクタ」信号は、入力待ち行列マップ
をインデックスして、現チャネル上の現パケットを、そ
の完了時にどの待ち行列に記憶すべきかを決定するため
に使用される。GAM18内には256個の待ち行列が
あり、可能な「入力データ待ち行列セレクタ」信号の組
み合わせは256通りあるけれども、1対1のマッピン
グは不要である。しばしば、入力データの待ち行列識別
子の多くの組み合わせが、同じ待ち行列にマッピングさ
れる。P14は、汎用アダプタのIPL時に、マッピン
グ・レジスタを設定する。入力待ち行列マップは、電源
投入時リセットの間に、ゼロにされる。このアーキテク
チャの幾つかの実現形態は、8本未満のセレクタ線を使
用する。
【0240】1 ID_LAST −− (I) この
「入力データ最終」信号は、現在転送中のワードが、一
のパケットの最終ワードであることを指示する。
【0241】4 ID_BV[0:3] −− (I)
これらの「入力データ・バイト有効」信号は、一の通
信フロント・エンドがワード境界整列されていないパケ
ットを供給し得る場合に、使用することができる。この
PMI20は、PM16内の隣接する記憶位置を利用す
るために、これらのワードを再パックする。
【0242】1 ID_FLUSH −− (I) も
し、通信フロント・エンドが、現パケットを記憶すべき
でないことを決定すれば、この通信フロント・エンド
は、この「入力データ・フラッシュ」信号を付勢するこ
とができる。この場合、現パケットの記憶が停止され、
そしてPM16の任意のメモリが使用されていたのであ
れば、このPMI20は、GAMプリミティブの「パケ
ットのフラッシュ」を使用して、そのメモリを解放す
る。
【0243】1 ID_ABORT −− (O) も
し、PMI20が、一のパケットの受信中に任意のエラ
ー(GABエラー、PM16内のバッファの不足、又は
パリティ・エラー)を検知すれば、このPMI20は、
この「入力データ打ち切り」信号を付勢して、そのパケ
ットをフラッシュする。通信フロント・エンドは、その
入力チャネル上で、「入力データ最終」信号を付勢した
後、次の新しいパケットを用いて、そのチャネル上で伝
送を再開しなければならない。
【0244】図12には、複数の入力チャネルとそれら
が入力を供給する待ち行列との関係が概略的に示されて
いる。一のパケットは、PMI20がこのパケット用の
待ち行列識別子を伴う「ENQ_PKT」プリミティブ
をGAM18に送るまで、PM16内にエンキューされ
ない。各チャネルは、異なるパケットのデータ・フロー
をそれぞれ制御している。
【0245】出力パケット・データ。入力データ経路
が、個々のパケットを処理するための複数の制御チャネ
ルと、パケットの複数のグループを保持するための複数
の待ち行列を有するのと全く同様に、出力データ経路
も、複数の待ち行列と複数の制御チャネルとを使用す
る。各PMI20は、一の待ち行列グループにサービス
し、それらの待ち行列からパケットを取り除き、その内
部の制御チャネルを使用して、これらのパケットから通
信フロント・エンドへデータを転送する。
【0246】PMI20は、待ち行列を制御チャネルと
関連付け、これらの制御チャネルへデータを先取りする
ことにより、通信フロント・エンドが、最小の待ち時間
でパケット・データを使用できるようにする。最も簡単
な形式では、制御チャネルに対する待ち行列の関連付け
は、1対1のマッピングである。こうすることにより、
通信フロント・エンドは、これらの待ち行列からのパケ
ットの順序付けを、完全に制御することができる。この
アーキテクチャでは、一層複雑な形式のマッピングも、
使用可能である。
【0247】PMI20内の待ち行列状況レジスタ(Q
SR)が更新されるのは、このPMI20がサービスし
ている待ち行列のうち1つの待ち行列の状況がGAM1
8内で変更される場合である。GAM18は、「QSR
C(待ち行列状況レジスタ変更)」信号を使用してこの
変更を指示し、その場合、このPMI20はそのシャド
ウ・コピーを更新する。更新されるセットは、潜在的に
は待ち行列セットの全体と同じ大きさ(256)であ
る。実際の実現形態では、その数を量子化された32個
の待ち行列の範囲に制限して、その範囲の待ち行列の待
ち行列状況が、GAM18からの1回のバス読み出しで
更新されるようにする。
【0248】一の待ち行列状況レジスタの幅が出力制御
チャネルの数よりも大きいと仮定すると、複数の待ち行
列を複数の制御チャネルに割り当てるために、マッピン
グが必要である。PMI20の特定の実現形態は、所望
のどのようなマッピングを使用してもよい。このアーキ
テクチャでは、各制御チャネルが、ラウンド・ロビン方
式又は修正された優先順位方式に基づいてその複数の待
ち行列にサービスするように、任意のマッピングが可能
である。修正された優先順位方式は、一の制御チャネル
がサービスしている一の待ち行列内にエンキューすべき
最初のパケットが、この制御チャネルに先取りされると
いうものである。この制御チャネルがフリーであると、
この制御チャネルは、最高優先順位の待ち行列から次の
パケットを取る。これは、プリエンプティブ方式によら
ない優先順位である。
【0249】図13には、諸待ち行列と諸出力制御チャ
ネルとの間のマッピングの例が示されている。この例に
関連して留意すべきは、待ち行列(ベース+)#0がチ
ャネル#0によってサービスされ、待ち行列(ベース
+)#1がチャネル#1とチャネル#2によってサービ
スされ、待ち行列#2と待ち行列#4〜#N−1はサー
ビスされず(他のPMI20によってサービスされても
よい)、待ち行列(ベース+)#3がチャネル#3とチ
ャネル#4によってサービスされ、待ち行列#Nがチャ
ネル#5〜#7によってサービスされる、ということで
ある。
【0250】待ち行列とチャネルとの間の1対1のマッ
ピングを使用することにより、通信フロント・エンド
は、必要に応じて、プリエンプティブ方式の優先順位を
実現することができる。
【0251】次の信号が、出力パケット・データを実際
に転送するのに使用される。
【0252】8 OCSR[0:7] −− (O)
この出力チャネル状況レジスタは、通信フロント・エン
ド用の関連情報を実際に有するレジスタである。一の出
力チャネル用のチャネル状況ビットがセットされるの
は、FIFO式のステージング・バッファがその待ち行
列のために少なくとも半分満たされている場合か、又は
最終バイトが受信されているが一のチャネルから送信さ
れていない場合である。通信フロント・エンドは、シャ
ドウ待ち行列状況レジスタではなく、この状況情報を使
用する。なぜなら、この状況情報は、通信フロント・エ
ンドに対する割り込みなしに、実際にデータを供給可能
な待ち行列を反映するからである。
【0253】32 ODATA[00:31] −−
(O) この出力データ・バスは、論理的には32ビッ
ト幅であり、各クロック・サイクルごとに新しい1つの
32ビット・ワードを供給することができるが、実現済
みのバスは、パリティを保持することがあり、また実現
済みのインタフェースは、同じ8本(9本)又は16本
(18本)の信号線上で順次に多重化される複数のバイ
トを有することがある。このデータは、このインタフェ
ースから後述の「出力データ・クロック」によってクロ
ック・アウトされ、後述の「出力データ・レディ」線が
付勢されている場合は、常に有効である。
【0254】4 ODATAP[0:3] −−
(O) 出力データは、パリティによって保護される。
この出力データ・パリティは、データがFIFO式のス
テージング・バッファに挿入される際にGAB12上で
検査されるが、データがPMI20から出力される際に
は検査されない。
【0255】1 OD_CLOCK −− (I) 前
述のように、この出力データ・クロックは、PMI20
から通信フロント・エンドの制御論理へデータを移動さ
せる。もし、新しいデータが使用可能であれば、そのデ
ータは、出力データ・レジスタに移動され、次のクロッ
ク・サイクルの間、後述の「出力データ・レディ」線が
付勢される。
【0256】3 OD_CR[0:2] −− (I)
この出力データ・チャネル要求信号は、通信フロント
・エンドの論理が次のデータ・バーストをそこから受信
したいチャネルを指示する。
【0257】1 OD_READY −− (O) 前
述のように、出力データ・レジスタの出力でデータが有
効であると、この出力レディ信号が付勢される。この出
力レディ信号は、前述の出力データ・チャネル要求信号
が変更されてから1クロック・サイクル後に、付勢され
る。
【0258】1 OD_LAST −− (O) この
出力データ最終信号は、パケット・データの最終バイト
の転送中に、付勢される。
【0259】4 OD_BV[0:3] −− (O)
この出力データ・バイト有効信号は、32ビットにパ
ッドされていないパケットを有することがある、32ビ
ット又は16ビットのインタフェース上で有用である。
この出力データ・バイト有効信号は、現出力データ・バ
イトのどれが有効であるかを指示する。
【0260】1 OD_FLUSH −− (O) も
し、一のパケット転送中に、GABエラーが発生すれ
ば、PMI20は、この出力データ・フラッシュ信号を
付勢して、現パケットの送信を停止する。PMI20
は、P14によってリセットされるまで、それ以上のパ
ケットを送信しない。
【0261】1 OD_ABORT −− (I) も
し、通信フロント・エンドが、パケットを送信できない
ことを検知すれば、この通信フロント・エンドは、この
出力データ打切り信号を付勢することができる。このP
MI20は、パケットの送信を停止し、出力打切り状況
ビットをセットするとともに、このチャネルをロックす
る。このPMI20は、このパケットのデキューを行わ
ない。これは、P14によって行わなければならない。
【0262】同期レジスタ・インタフェース。この同期
レジスタ・インタフェースが使用されるのは、一の応答
の待ち時間がバス・サイクルの上限以下であることを通
信フロント・エンドが保証することができる場合であ
る。この応答がこの上限に近くなる場合でさえ、即ち転
送データが殆どないか、又は待ち時間が不確定であるこ
とが判っている場合でさえ、非同期インタフェースを使
用することができる追加的な設計上の理由が存在する。
この同期インタフェースは、通信フロント・エンドの諸
レジスタに対する、非常に簡単なソフトウェア・インタ
フェースを提供する。P14は、単にこのレジスタの読
み出し又は書き込みを行うに過ぎない。
【0263】16 SYNC_ADDR[00:15]
−− (O) この同期アドレスは、GAB12のア
ドレス・バス・ビット[02:17]から構成される。
これらのビットは、通信フロント・エンドの論理に使用
可能である。
【0264】32 SYNC_ODATA[00:3
1] −− (O) この同期出力データは、GAB1
2のデータ・バス・ビット[00:31]から構成され
る。これらのビットは、通信フロント・エンドの論理に
使用可能である。
【0265】32 SYNC_IDATA[00:3
1] −− (I) この同期入力データは、通信フロ
ント・エンドの論理から戻される。このPMI20は、
GAB12のデータ・バス線[00:31]上で、この
データを多重化し、ラッチし、駆動する。幾つかの実現
形態では、駆動されるデータ・バス線が32本未満のこ
とがあり得る。これらの実現形態では、このPMI20
は、残りのデータ・バス線をゼロでパッドする。
【0266】1 SYNC_REQ −− (O) こ
のPMI20は、その同期インタフェースに対する一の
バス要求を認識すると、この同期要求信号を生成する。
【0267】1 SYNC_RESP −− (I)
同期データが有効であると、通信フロント・エンドは、
この同期応答信号を生成する。同期データは、同期応答
クロック・サイクルの全体にわたって、有効でなければ
ならない。一の同期読み出しサイクルの間、この同期応
答信号は、同期データがもはや必要でないことを指示す
る。
【0268】1 SYNC_RW −− (O) この
同期読み出し/書き込み信号は、GAB12上の読み出
し/書き込み(R/−W)信号のシャドウである。
【0269】非同期レジスタ・インタフェース。前述の
ように、この非同期インタフェースが使用されるのは、
応答の待ち時間が未知の場合である。内部の応答有効レ
ジスタは、P14のサポート装置との通信に使用され
る。P14によって一の非同期要求が行われる場合、こ
の応答有効レジスタがリセットされ、そして通信フロン
ト・エンドの論理は、保留中の非同期要求が存在するこ
とを通知される。非同期データ・レジスタ内の非同期デ
ータは、P14に使用可能である。非同期転送に使用さ
れる諸信号は、次の通りである。
【0270】16 ASYNC_ADDR[00:1
5] −− (O) この非同期アドレスは、GAB1
2のアドレス・バス・ビット[02:17]からラッチ
される。これらのビットは、GAB12の次の非同期要
求がこのPMI20を宛先とするまで、通信フロント・
エンドの論理に使用可能である。
【0271】32 ASYNC_ODATA[00:3
1] −− (O) この非同期出力データは、GAB
12のデータ・バス・ビット[00:31]から構成さ
れる。非同期の書き込み時には、これらのビットは、G
AB12の次の非同期要求がこのPMI20を宛先とす
るまで、通信フロント・エンドの論理に使用可能であ
る。
【0272】1 ASYNC_REQ −− (O)
このPMI20は、その非同期インタフェースに対する
バス要求を認識すると、この非同期要求信号を生成す
る。この非同期要求信号がラッチされるのは、通信フロ
ント・エンドが、この非同期要求信号を付勢することに
よって、この要求を読み出したことを指示するまでであ
る。
【0273】1 ASYNC_RW −− (O) こ
の非同期読み出し/書き込み信号は、非同期要求を開始
したサイクルからの、GAB12上の読み出し/書き込
み(R/−W)信号のラッチされたシャドウである。
【0274】32 ASYNC_IDATA[00:3
1] −− (I) この非同期入力データは、通信フ
ロント・エンドの論理から戻される。このPMI20
は、この非同期入力データをラッチし、このPMI20
を宛先とする次のGAB非同期読み出しサイクルの間、
この非同期入力データをGAB12のデータ・バス線
[00:31]上に駆動する。
【0275】1 ASYNC_RESP −− (I)
通信フロント・エンドは、非同期入力データが有効で
あると、この非同期応答信号を生成する。非同期データ
は、非同期応答クロック・サイクルの全体にわたって、
有効でなければならない。通信フロント・エンドがこの
非同期応答信号を付勢すると、PMI20が、応答有効
信号をセットする。このPMI20は、このPMI20
を宛先とするGAB12の次の非同期読み出しサイクル
の間に、「応答有効」信号をリセットする。
【0276】事象インタフェース。通信フロント・エン
ドは、(GAM18に転送されなければならない)事象
データを、非同期的に生成することがある。通信フロン
ト・エンドの事象データ用のインタフェースは、相当簡
単である。32ビットのラッチは、保留中の事象データ
を保持する。単一ビットのラッチは、この事象ラッチが
空又はフルのどちらであるかを指示する。特定の通信フ
ロント・エンドは、事象伝送用の別個のインタフェース
を提供してもよく、又は事象インタフェースは、レジス
タ・インタフェースの一部であってもよい。事象インタ
フェース内で使用される諸信号は、次の通りである。
【0277】29 EVENT_DATA[00:2
8] −− (I) この事象データは、PMI20が
この事象データをGAM18に書き込むことができるま
で、この事象データを保持する。GAM18に書きこま
れる事象データの3つの上位ビットは、PMI識別子レ
ジスタから取られる。こうすることにより、事象待ち行
列のプロセッサは、事象データの送信元を識別すること
ができる。
【0278】1 −WR_EVENT −− (I)
通信フロント・エンドがこの事象書き込み信号を付勢す
る場合、事象データは、事象データ・レジスタにストロ
ーブされ、そして事象保留レジスタがセットされる。
【0279】1 EVENT_PENDING −−
(O) この事象保留信号がセットされるのは、データ
が事象データ・レジスタにストローブされる場合であ
り、この事象保留信号がリセットされるのは、PMI2
0がそのデータをGAM18に書き込むことができる場
合である。通信フロント・エンドは、この出力を使用し
て、通信フロント・エンドによる事象レジスタの使用を
ゲートする。
【0280】割り込みインタフェース。状況マスク・レ
ジスタ内でマスクされていない状況ビットは、PMI2
0からの割り込み線を駆動する。通信フロント・エンド
は、状況ビットを直接的に駆動することができる。
【0281】1 FE_INT −− (O) 前述の
ように、このフロント・エンド割り込み信号が付勢され
るのは、状況レジスタ内の付勢済みビットが、フロント
・エンド割り込みマスク内の付勢済みビットに対応する
場合である。
【0282】レジスタFRONT_END_INTER
RUPT_MASK −−(I) このフロント・エン
ド割り込みマスクは、P14又は通信フロント・エンド
の論理によってセットすることができる。通信フロント
・エンドの論理は、以下で説明するレジスタ・インタフ
ェースを使用して、このレジスタをセットする。
【0283】1 CFE_INT −− (I) この
通信フロント・エンド割り込み信号は、通信フロント・
エンドによって生成可能な信号であって、PMI20の
割り込み状況レジスタ内に反映され、割り込みマスク・
レジスタの設定に依存して、通信フロント・エンド又は
P14の何れかに対する割り込みを生成させるために使
用される。§7.5.1の「PMI割り込み状況レジス
タ」は、この機構について説明する。
【0284】16 CFE_STATUS[00:1
5] −− (I) これらの通信フロント・エンド状
況信号は、通信フロント・エンドによって生成可能な状
況信号の一のグループであって、PMI20の割り込み
状況レジスタ内に反映され、割り込みマスク・レジスタ
の設定に依存して、通信フロント・エンド又はP14の
何れかに対する割り込みを生成させるために使用され
る。§7.5.1の「PMI割り込み状況レジスタ」
は、この機構について説明する。
【0285】レジスタ・インタフェース。通信フロント
・エンドは、P14がアクセス可能なPMI20の任意
のレジスタを対象として、読み出し又は書き込みを行う
ことができる。これらのレジスタに対するアクセスは、
P14からの「LOCK(ロック)」信号と通信フロン
ト・エンドからの原子的信号を使って、インターロック
される。これらの汎用レジスタとそれらの機能のリスト
については、次の節で説明する。
【0286】9 REG_ADDR[0:8] −−
(I) これらのレジスタ・アドレス線は、読み出し又
は書き込みを行うべきレジスタを選択するために使用さ
れる。
【0287】1 REG_RW −− (I) この信
号の「ハイ」状態は、読み出し要求を指示し、「ロー」
状態は、書き込み要求を指示する。
【0288】1 REG_REQ −− (I) 通信
フロント・エンドは、このレジスタ要求信号を付勢し
て、一のレジスタ動作を開始させる。
【0289】1 REG_ACK −− (O) この
PMI20は、このレジスタ肯定応答信号を付勢して、
データが一のレジスタに読み込まれたか、又はデータが
一のレジスタからの読み出しに使用可能であるかの何れ
かを指示する。
【0290】32 REG_IDATA[00:31]
−− (I) レジスタ入力データは、これらの線か
ら読み出される。必要な数のビットだけが、読み出され
る。
【0291】32 REG_ODATA[00:31]
−− (O) レジスタ出力データは、これらの線か
ら読み出すことができる。このレジスタ内にある数のビ
ットだけが、有効である。
【0292】1 REG_LOCK −− (I) こ
のレジスタ・ロック信号は、通信フロント・エンド上
で、一の読み出し/修正/書き込みサイクルが生じてい
ることを指示する。通信フロント・エンドのプロセッサ
がPMI20の内部レジスタ内の値を原子的に修正する
ことを試みていると、このプロセッサは、このレジスタ
・ロック信号を駆動しなければならない。同様の信号
が、P14によって生成される(GAB12上のLOC
K信号)。PMI20のロック状態マシンは、PMI2
0の内部レジスタを対象とする読み出し/修正/書き込
みサイクルが原子的であることを保証する。こうするこ
とにより、PMI20の内部レジスタを使用して、通信
フロント・エンドとP14との間で、信頼性のある通信
を行うことができる。
【0293】§7.5: PMI20の内部レジスタ PMI20は、本章で説明する所定のレジスタ・セット
を有する。PMI20のデバイス固有の実現形態は、追
加のレジスタを有し、本章で説明する幾つかのレジスタ
が該当しないことがある。
【0294】§7.5.1: PMI割り込み状況レジ
スタ 用途: この割り込みレジスタは、一の事象が発生した
こと、又は通信フロント・エンド又はP14が知ってい
なければならない条件が存在することを、通信フロント
・エンド又はP14に通知するために使用される。この
レジスタは、実際に割り込み信号を生成するために、G
AB12の割り込みマスク・レジスタ及び通信フロント
・エンドの割り込みマスク・レジスタとともに使用され
る。 長さ: 32ビット タイプ:読み出し/部分書き込み(個々のビットの説明
を参照) 説明: ビット0 RESPONSE_VALID(応答有
効) 非同期データ・レジスタが、有効なデータを保
持することを指示する。非同期データ・レジスタを読み
出すと、このビットがクリアされる。 ビット1 FRONT_END_INTERRUPT
(フロント・エンド割り込み) 通信フロント・エン
ドが、一の割り込みを生成中であることを指示する。通
信フロント・エンドは、このビットをクリアしなければ
ならない。 ビット2 BERROR(バス・エラー) このP
MI20が、リセットされていない一のバス・エラーを
検知したことを指示する。この副次的効果は、PMI2
0がパケット・データを全く転送しないことである。こ
のビットは、直接的にクリアしなければならない。 ビット3 BABORT(バス打ち切り) パリテ
ィ・エラー又はタイミング・エラーに起因して、このP
MI20が、一のバス・トランザクションを打ち切らな
ければならなくなったことを指示する。このビットは、
直接的にクリアしなければならない。 ビット4 RESET(リセット) このビットが
セットされると、PMI20は、電源投入時リセットを
実行した後、このビットをクリアする。 ビット5 OD_ABORT(出力データ打ち切り)
PMI20が、リセットされていない出力データ打
切り信号を受け取ったことを指示する。このビットは、
直接的にクリアしなければならない。 ビット6 ID_ABORT(入力データ打ち切り)
バッファ空間の不足に起因して、このPMI20
が、通信フロント・エンドに対し、入力データ打切り信
号を発生しなければならなくなったことを指示する。こ
のビットは、直接的にクリアしなければならない。 ビット7 OD_FLUSH(出力データのフラッシ
ュ) 一のバス・エラー条件に起因して、このPMI
20が、通信フロント・エンドに対し、出力データ・フ
ラッシュ信号を発生しなければならなくなったことを指
示する。このビットは、直接的にクリアしなければなら
ない。 ビット8 ID FLUSH(入力データのフラッシ
ュ) このPMI20が、通信フロント・エンドから
入力データ・フラッシュを受け取ったことを指示する。
このビットは、直接的にクリアしなければならない。 ビット9 EVENT_REGISTER_FULL
(事象レジスタ・フル)事象レジスタに何かが書き込ま
れていることを指示する。このことは、そのレジスタの
現内容が有効であることを意味するものではない。この
ビットは、これがリセットされた最後の時間以降に、通
信フロント・エンドが任意の事象を生成したか否かを決
定するために使用することができる。このビットは、直
接的にクリアしなければならない。 ビット10 GAB_INT(GAB割り込み) こ
のビットがセットされていると、GAB12のP14に
対する割り込みを生成することができる。このビットが
一の割り込みを生成するには、GAB12の割り込みマ
スクが、このビットをイネーブルしなければならない。 ビット11 CFE_INT(通信フロント・エンド割
り込み) このビットがセットされていると、通信フ
ロント・エンドに対する割り込みを生成することができ
る。このビットが一の割り込みを生成するには、通信フ
ロント・エンドの割り込みマスクがこのビットをイネー
ブルしなければならない。 ビット12:15 予備 読み出し時には、無視すべ
きであり、割り込み状況レジスタに書き込む時には、以
前の値に復元しなければならない。P14のビット・セ
ット動作及びビット・クリア動作を使用すると、これを
行うことができる。 ビット16:31 CFE_Specific(通信フ
ロント・エンドに固有)特定の通信フロント・エンドに
よって特定される。これらのビットは、割り込みを生成
するために使用することができる状況ビットである。こ
れらの状況ビットについては、既に説明した。 電源投入時リセットの値: 通信フロント・エンドに依
存し、16進数‘00000000’でなければならな
い。
【0295】§7.5.2: GAB割り込みマスク・
レジスタ 用途: P14に対して生成される割り込みを制限す
る。 長さ: 32ビット タイプ:読み出し/書き込み 説明: このレジスタは、割り込み状況レジスタととも
に使用され、どの割り込み状況ビットが実際にP14に
割り込むかを決定する。P14に対する割り込みを生成
するためには、このマスク・レジスタ内のビットと状況
レジスタ内のビットは、両者ともセットされなければな
らない。 電源投入時リセットの値: 16進数‘0000 00
00’
【0296】§7.5.3: 通信フロント・エンド割
り込みマスク・レジスタ 用途: 通信フロント・エンドに対して生成される割り
込みを制限する。 長さ: 32ビット タイプ:読み出し/書き込み 説明: このレジスタは、割り込み状況レジスタととも
に使用され、どの割り込み状況ビットが実際に通信フロ
ント・エンドに割り込むかを決定する。通信フロント・
エンドに対する割り込みを生成するためには、このマス
ク・レジスタ内のビットと状況レジスタ内のビットは、
両者ともセットされなければならない。 電源投入時リセットの値: 16進数‘0000 00
00’
【0297】§7.5.4: 待ち行列識別子レジスタ 用途: このPMI20内のシャドウ待ち行列状況レジ
スタのベース・アドレスを決定する。 長さ: 3ビット タイプ:読み出し/書き込み 説明: このレジスタの設定は、GAM18が生成する
QA[0:2]信号を監視するために使用される。待ち
行列状況レジスタ変更信号が付勢されており、しかもこ
のレジスタとQA(待ち行列アドレス)信号が一致する
と、このPMI20は、待ち行列識別子レジスタを使用
して要求アドレスを生成することにより、シャドウ待ち
行列状況レジスタの更新サイクルを開始する。 電源投入時リセットの値: SLOT_ID[0:2]
【0298】§7.5.5: PMI識別子レジスタ 用途: どのバス・アドレスのバス・スレーブとして動
作するかを決定するのに使用される。 長さ: 3ビット タイプ:読み出し/書き込み 説明: このレジスタを使用して、一のPMI20を他
のPMI20と置換することができる。このレジスタ
は、GAM18のトランザクションにおけるバス要求元
のアドレスを生成するために使用される。 電源投入時リセットの値: SLOT_ID[0:2]
【0299】§7.5.6: 待ち行列マップ入力レジ
スタ[0:255] 用途: 通信フロント・エンドの機能待ち行列アドレッ
シングとGAB12の物理的待ち行列アドレスとの間の
マッピング。 長さ: 256×10ビット タイプ:読み出し/書き込み 説明: 各エントリは、10ビット長である。ビット
[0:7]は、待ち行列のアドレスであり、ビット8が
セットされると、これが一の非同期待ち行列であること
を指示し、ビット9がセットされると、これが一の同期
待ち行列であることを指示する。 電源投入時リセットの値: テーブルの全体に対して1
6進数‘000’
【0300】§7.5.7: バス・バースト長レジス
タ 用途: バス・バースト内のワード数を制限する。 長さ: 8ビット タイプ:読み出し/書き込み 説明: これは、各バス・マスタ・サイクルの開始時に
セットされる、一のダウン・カウンタ用の初期値として
使用される。各ワードが転送される場合、このカウンタ
が減分される。このカウンタが0に達する場合、このサ
イクルが終了する。 電源投入時リセットの値: 8
【0301】§7.5.8: バス・バースト時間レジ
スタ 用途: このPMI20がGAB12の制御権を保持し
ようと試みるバス・サイクルの数を制限する。 長さ: 8ビット タイプ:読み出し/書き込み 説明: これは、バス・マスタの各サイクルの開始時に
セットされる、一のダウン・カウンタの初期値として使
用される。このカウンタは、各バス・クロックのサイク
ルごとに減分される。このカウンタが0に達する場合、
このサイクルが終了する。 電源投入時リセットの値: 16
【0302】§7.5.9: シャドウ待ち行列状況レ
ジスタ 用途: どの待ち行列がパケットを有しているかを、P
MI20に通知する。 長さ: 32ビット タイプ:読み出し/書き込み 説明: このレジスタは、GAM18に記憶されるデー
タから、PMI20によって自動的にロードされる。 電源投入時リセットの値: 16進数‘0000 00
00’
【0303】§7.5.10: ステージ化されたチャ
ネル状況レジスタ 用途: このレジスタは、どのチャネルが出力転送すべ
きデータの準備を完了しているかを決定するため、通信
フロント・エンドによって使用される。 長さ: 8ビット タイプ:読み出し/書き込み 説明: 各ビットは、対応するチャネルが少なくとも半
分満たされているか否かを指示する。 電源投入時リセットの値:16進数‘00’
【0304】§7.5.11: 非同期インタフェース
・アドレス・バッファ 用途: 非同期要求のアドレスを保持するレジスタ。 長さ: 16ビット タイプ:読み出し/書き込み 電源投入時リセットの値: 16進数‘0000’
【0305】§7.5.12: 非同期インタフェース
・データ・バッファ 用途: 非同期インタフェースの一部である、両方向デ
ータ・バッファ。 長さ: 32ビット タイプ:読み出し/書き込み 電源投入時リセットの値: 16進数‘0000 00
00’
【0306】§7.5.13: 入力バイト順序レジス
タ 用途: 32ビット・ワード内の諸バイトがPM16に
向かって移動する際の、これらのバイトの順序を決定す
るのに使用される。 長さ: 16ビット タイプ:読み出し/書き込み 説明: 各4ビットは、対応するバイトの送信元を決定
する。電源投入時リセットの値は、再順序付けされな
い。 電源投入時リセットの値: 16進数‘8421’
【0307】§7.5.14: 出力バイト順序レジス
タ 用途: 32ビット・ワード内の諸バイトが通信フロン
ト・エンドに向かって移動する際の、これらのバイトの
順序を決定するのに使用される。 長さ: 16ビット タイプ:読み出し/書き込み 説明: 各4ビットは、対応するバイトの送信元を決定
する。電源投入時リセットの値は、再順序付けされな
い。 電源投入時リセットの値: 16進数‘8421’
【0308】§7.5.15: 入力メモリのベース・
アドレス・レジスタ 用途: パケットを記憶する際、又はPローカル・メモ
リ22をアクセスする際、PMI20によってアドレス
を生成するために、GAM18をバイパスするのに使用
される。 長さ: 24ビット タイプ:読み出し/書き込み 説明: もし、入力メモリの転送カウント・レジスタ内
に非ゼロのカウントがあれば、このレジスタは、チャネ
ル#0上で受け取られるデータの記憶アドレスを生成す
るのに使用される。このレジスタの値は、使用のたびに
増分される。 電源投入時リセットの値:16進数‘00 0000’
【0309】§7.5.16: 入力メモリの転送カウ
ント・レジスタ 用途: パケットを記憶する際、又はPローカル・メモ
リ22をアクセスする際、PMI20によってアドレス
を生成するために、GAM18をバイパスするのに使用
される。 長さ: 16ビット タイプ:読み出し/書き込み 説明: このカウント・レジスタは、チャネル#0か
ら、入力メモリのベース・アドレス・レジスタによって
生成される増分アドレスに転送すべきワード(32ビッ
ト)の数を決定するのに使用される。このカウント・レ
ジスタの値は、使用のたびに減分される。このカウント
値がゼロである場合、チャネル#0は、正常に振る舞
う。 電源投入時リセットの値: 16進数‘0000’
【0310】§7.5.17: 出力メモリのベース・
アドレス・レジスタ 用途: データ送信の際、PMI20によってアドレス
を生成するために、GAM18をバイパスするのに使用
される。 長さ: 24ビット タイプ:読み出し/書き込み 説明: もし、出力メモリの転送カウント・レジスタ内
に非ゼロのカウントがあれば、このレジスタは、チャネ
ル#0上で送信すべきデータの記憶アドレスを生成する
のに使用される。このレジスタの値は、使用のたびに増
分される。 電源投入時リセットの値: 16進数‘00 000
0’
【0311】§7.5.18: 出力メモリの転送カウ
ント・レジスタ 用途: データ送信の際、PMI20によってアドレス
を生成するために、GAM18をバイパスするのに使用
される。 長さ: 16ビット タイプ:読み出し/書き込み 説明: このカウント・レジスタは、出力メモリのベー
ス・アドレス・レジスタによって生成される増分アドレ
スからチャネル#0に転送すべきワード(32ビット)
の数を決定するために使用される。このカウント・レジ
スタは、使用のたびに減分される。このカウントがゼロ
である場合、チャネル#0は、正常に振る舞う。 電源投入時リセットの値: 16進数‘0000’
【0312】§7.6: PMI20のエラー動作とリ
セット動作 これらの動作は、前述の通りである。電源投入時リセッ
トの際には、複数の識別子レジスタが再ロードされる。
エラー発生時には、バス・サイクルが打ち切られ、通信
フロント・エンドの動作が打ち切られる。P14は、バ
ス・エラー・ビットをクリアすることによって、PMI
20を再起動しなければならない。この通信フロント・
エンドのレジスタ・インタフェースは、活動状態に留ま
る。こうすることによって、PMI20の他方の側にあ
る一のプロセッサが、このPMI20をリセットできる
ようになり、またネットワークのIPL動作を行うこと
が可能になる。
【0313】§8.0: プロセッサ・サブシステム
(P)14 1つの実現形態では、汎用アダプタ内のプロセッサ・サ
ブシステム(P)14は、インテル社製の80386プ
ロセッサを中心に構築される。この80386は、32
ビットの高性能プロセッサであって、マルチタスク動作
のサポート、メモリ管理、パイプライン式アーキテクチ
ャ、アドレス変換用のキャッシュ及び高速のバス・イン
タフェースを包含している。これは、最大4ギガバイト
の物理メモリ(32本のアドレス線)をアクセスするこ
とができる。
【0314】80386のほかに、実現済みのP14
は、次の構成要素からなる。 Pローカル・メモリ22とコントローラ ROS/EEROS 補助回路 GAB12のアイソレータ24 GAMローカル・バス28のアイソレータ26
【0315】§8.1: Pローカル・メモリ22とコ
ントローラ P14用のPローカル・メモリ22は、P14のオペレ
ーティング・システム、通信コード、及びコード即値制
御データ用の記憶域を提供する。Pローカル・メモリ2
2は、スタティックRAM又はダイナミックRAMの何
れかで実現することができる。もし、Pローカル・メモ
リ22がスタティックRAMで実現されていれば、如何
なる主要な機能も、そのコントローラによって遂行する
必要はない。他方、ダイナミックRAMが使用されるな
らば、Pローカル・メモリ22のコントローラは、次の
機能を遂行しなければならない。 ダイナミック・メモリ・リフレッシュ ECCコードの生成/訂正/検査 行アドレスと列アドレスの制御選択 P14の命令キャッシュ・バッファ(必要である場合) Pローカル・メモリ22のサイズは、汎用アダプタの構
成とコードの記憶要件とに基づいて、決定されなければ
ならない。
【0316】§8.2: ROS/EEROS 汎用アダプタが電源投入される場合、汎用アダプタ内の
P14が、電源投入時の手順を開始する。この電源投入
時の手順は、汎用アダプタを、最初の「電源投入」状態
から、ハードウェア・エラーが検知されないことを条件
として「動作」状態にするか、又は1つ以上のハードウ
ェア・エラーが検知されることを条件として「エラー回
復」状態にする処の、一連のプロセスである。この電源
投入時の手順は、次のプロセスを含むことがある。 電源投入時の自己試験を遂行する P14を初期設定する PM16を初期設定する GAM18を初期設定する 各PMI20及びその入出力ポートを初期設定する ホストとの接続を確立する ネットワーク・サーバとの接続を確立する 汎用アダプタの構成を報告する 汎用アダプタのオペレーティング・コードのロードを開
始する 汎用アダプタのオペレーティング・コードを初期設定す
る 汎用アダプタの検知済みのエラーを報告する
【0317】この電源投入時の手順に不可欠であるP1
4の全てのコードは、不揮発性メモリ、即ちROS又は
EEROSに記憶しなければならない。更に、このRO
S又はEEROSは、汎用アダプタの重要情報として、
48ビットのLANアドレスや、汎用アダプタの部品番
号や、汎用アダプタの通し番号などを記憶するためにも
使用することができる。
【0318】この不揮発性メモリの実際のサイズは、汎
用アダプタの初期設定要件に応じて変わることがある。
しかし、このROS又はEEROSは、P14の最上位
のアドレス空間に配置されなければならない。なぜな
ら、電源投入時リセットの間、80386プロセッサ
は、その実行を16進アドレス‘FFFFFFF0’か
ら開始するからである。
【0319】§8.3: P14の補助回路 前述のPローカル・メモリ22及びROS/EEROS
に加えて、P14は、その動作要件をサポートするため
に、次の補助回路を備えなければならない。
【0320】(1)ソフトウェア・プログラム可能タイ
マ P14の補助回路でサポートしなければならない2つの
ソフトウェア・プログラム可能タイマとして、次の2つ
のものがある。
【0321】 ソフトウェア・タイマ・ティック このタイマ・ティックは、諸タスクをスケジューリング
し、通信コードに対しタイマ・サービスを提供するため
に、汎用アダプタのオペレーティング・システム・コー
ドによって使用される基本的なタイマである。そのティ
ック間隔は、汎用アダプタのオペレーティング・システ
ム・コードによってプログラム可能であり、このタイマ
が満了する場合、マスク可能割り込みがP14に対して
生成され、その後、このタイマはそれ自体で自動的に再
起動する。
【0322】このタイマは、100マイクロ秒の細分性
をサポート可能でなければならない。電源投入時リセッ
トの間、このタイマは、ゼロにセットされ、汎用アダプ
タのコードによって最初に初期設定されるまで、如何な
る割り込みも生成してはならない。
【0323】 ソフトウェア・ウオッチドッグ・タイ
マ このタイマは、P14によってプログラム可能であり、
汎用アダプタの電源投入時の手順の間に、予め定義され
た値にセットされなければならない。このタイマは、こ
れが満了する前に、P14のコードによって周期的にリ
セットされることが期待される。もし、このタイマが満
了すれば、マスク不能割り込みがP14に対して生成さ
れて、このコードを可能なハング条件から解放する。
【0324】このタイマは、1ミリ秒程度の細分性をサ
ポート可能でなければならない。電源投入時リセットの
間、このタイマは、ゼロにセットされ、汎用アダプタの
コードによって最初に初期設定されるまで、如何なる割
り込みも生成してはならない。
【0325】(3)ハードウェア・ウオッチドッグ・タ
イマ このタイマは、汎用アダプタを可能なハング条件から解
放するためのものである。このタイマは、80386の
−ADS(アドレス状況)信号が活動的になった時に開
始し、80386の−READY信号が活動的になった
時に停止する。汎用アダプタのハードウェア・エラーが
あるか、又は汎用アダプタのコードが存在しない位置を
アドレス指定しようとする場合、この−READY信号
は決して活動的にならないから、このタイマが満了する
ことになる。このタイマが満了する場合、マスク不能割
り込みが、P14に対して直ちに生成される。このタイ
マの細分性は、1マイクロ秒程度でなければならない。
このタイマは、プログラム可能な間隔を有するように、
実現されなければならない。電源投入時リセットの間、
このタイマは、一定の間隔にデフォルトされるが、この
間隔は、汎用アダプタのコードによって後で変更するこ
とができる。このタイマの典型的な大きさは、10マイ
クロ秒程度でなければならない。
【0326】(4)汎用タイム・クロック 前述の全てのタイマ・サポートに加えて、1マイクロ秒
の細分性を有する汎用タイマ・クロックも必要である。
P14の補助回路には、32ビットのクロック・カウン
タがある。このクロック・カウンタは、P14による読
み出し及び書き込みが可能であり、1マイクロ秒ごとに
1つずつ増分する。36億マイクロ秒の値に達する場
合、このクロック・カウンタは、自動的にゼロにリセッ
トされる。この場合、このクロック・カウンタは、P1
4の補助回路内にある他のカウンタ(時間カウンタ)を
1つずつ増分させる。P14は、このクロック・カウン
タと時間カウンタとを使用して、性能評価や、事象追跡
や、プログラム追跡や、パケット追跡のような、アプリ
ケーション用の汎用タイム・スタンプを生成することが
できる。
【0327】(5)割り込みコントローラ P14の割り込みコントローラは、次の割り込み源をサ
ポートしなければならない。 ソフトウェア・タイマ・ティック割り込み ソフトウェア・ウオッチドッグ・タイマ割り込み ハードウェア・ウオッチドッグ・タイマ割り込み PMI#0〜PMI#N−1の事象割り込み(GAB信
号:−INT0〜−INTN−1) PMI#0〜PMI#3の応答有効割り込み(GAB信
号:−RV0〜−RVN−1) GAM入力パケット閾値割り込み(GAB信号:−IN
TN) 閾値以下のフリー・バッファ割り込み(GAB信号:B
ELOW) 閾値以上の非同期バッファ割り込み(GAB信号:AB
ABV) 事象FIFO1/2フル割り込み(GAB信号:EF_
HF) 待ち行列アドレスと一致した待ち行列状況レジスタ変更
割り込み(GAB信号:QSRC、QA0〜QA2) PM16のECC1ビット・エラー割り込み(GAB信
号:−INTN+1) Pローカル・メモリ22のECC1ビット・エラー割り
込み Pローカル・メモリ22のECC2ビット・エラー割り
込み 更に、P14の割り込みコントローラは、次の動作要件
をもサポートしなければならない。 割り込み状況レジスタ: この32ビットの割り込
み状況レジスタは、割り込みが生成されたときに、どの
割り込み源が付勢されていたかを指示する。このレジス
タは、P14によって読み出し可能でなければならず、
P14は、このレジスタに‘ゼロ’を書込むことによっ
て、これをクリア可能でなければならない。 プログラム可能な割り込み優先順位: この割り込
みコントローラは、各割り込み源の優先順位を、P14
がプログラムできるようにしなければならない。 プログラム可能な割り込みマスク: P14は、そ
の選択に応じて、或る優先順位以下の任意の割り込みを
マスクする能力を持たなければならない。 プログラム可能な割り込み源フォーマット: 割り
込み源には、「ハイ」が付勢状態であるものと「ロー」
が付勢状態であるものとがあり、またエッジ・センシテ
ィブのものとレベル・センシティブのものとがある。こ
の割り込みコントローラは、これらの4つの割り込みフ
ォーマットの異なる組み合わせをサポート可能でなけれ
ばならず、また各割り込み源ごとにP14がフォーマッ
トを個々に選択することを可能にしなければならない。
【0328】(6)Pアドレス・デコーダ Pアドレス・デコーダによって遂行される機能は、P1
4のアクセス要求を復号して、目標のバス・スレーブに
対して適当な制御信号を生成することである。
【0329】(7)パリティ生成 P14からの任意のGABアクセスについて、GAB1
2のアドレス・バス上に奇数パリティを生成しなければ
ならない。もし、このアクセスが書き込み動作であれ
ば、GAB12のデータ・バス上にも奇数パリティを生
成しなければならない。他方、このアクセスが読み出し
動作であれば、如何なるデータ・パリティも生成されな
い。パリティは、GAB12用のモニタ(GAM18)
によって検査される。もし、一のパリティ・エラーが検
知されるのであれば、このモニタは、一のバス・エラー
を発生し、そして進行中のプロセスが直ちに打ち切られ
る(詳細については、§8.4の「GAB12のアイソ
レータ24」を参照)。
【0330】§8.4: GAB12のアイソレータ2
4 このアイソレータ24は、386プロセッサのローカル
・バス40とGAB12との間の信号分離を提供するの
みならず、次の機能をも提供する。
【0331】(1)PM16のキャッシュ・バッファ・
コントローラ GAB12の制御権の争奪を減少させ、P14によるパ
ケット・ヘッダ情報の処理を高速化するためには、1つ
以上のスヌープ式キャッシュ・バッファの32バイト・
バンクが必要となる。このスヌープ式キャッシュ・バッ
ファは、次のように動作する。
【0332】 P14がPM16に対して最初の読み
出し要求を行う場合、キャッシュ・バッファ・コントロ
ーラは、32バイトのデータがPM16から読み出され
るか、又はその読み出し要求のアドレスが32バイト境
界に達するまで、PM16に対してバースト読み出し要
求を行う。その後、PM16から読み出されたデータ
が、キャッシュ・バッファに記憶される。
【0333】 それ以降、P14がPM16のアクセ
ス要求を行うたびに、キャッシュ・バッファ・コントロ
ーラは、そのアクセス・アドレスを検査して、キャッシ
ュ・ヒットが存在するか否かを調べる。もし、一のキャ
ッシュ・ヒットが存在し且つこのアクセス要求が読み出
し要求であれば、キャッシュ・バッファ・コントローラ
は、キャッシュ・バッファ内に記憶されたデータをP1
4に直ちに戻す。もし、キャッシュ・ヒットが存在する
が、このアクセス要求が書き込み要求であれば、キャッ
シュ・バッファ・コントローラは、新しいデータをキャ
ッシュ・バッファに書き込み、キャッシュを「ダーテ
ィ」としてマークする。他方、P14のアクセス要求が
キャッシュ・ミスを生じさせるのであれば、キャッシュ
・バッファ・コントローラは、先ずそのキャッシュ・バ
ッファが「ダーティ」であるか否かを検査する。もし、
キャッシュ・バッファが「ダーティ」であれば、キャッ
シュ・バッファ・コントローラは、キャッシュ・バッフ
ァ内の全てのデータをPM16に書き戻し、キャッシュ
・バッファをフラッシュした後に、新しいキャッシュ・
サイクルを開始する。
【0334】(2)GAB12のエラー・ハンドラ §4.0の「汎用アダプタ・マネージャ(GAM)1
8」で既述したように、GAB12上のエラーは、次の
場合にいつでも発生することがある。バス・パリティ・
エラーが存在するGAB12の制御権当たりのバス・サ
イクルの数が限界を超える特定の実現形態によって決定
される他の条件
【0335】バス・エラー信号が付勢される場合、汎用
アダプタ内のGAM18と全てのPMI20は、直ちに
進行中の任意のプロセスを打ち切る。また、このバス・
エラー・ハンドラは、P14に対してマスク不能割り込
みを生成しなければならない。GAB12のバス・エラ
ー割り込みがP14によって受け取られる場合、P14
は、直ちにそのパケット処理を放棄し、ホストにそのエ
ラーを報告した後、(実現形態により必要とされている
ことを条件として)エラー回復手順を開始しなければな
らない。
【0336】§8.5: GAMローカル・バス28の
アイソレータ26 このアイソレータ26が遂行する機能には、次の2つが
ある。 (1)386プロセッサのローカル・バス40とGAM
ローカル・バス28との間の信号分離 (2)GAMローカル・バス28の制御権の争奪の調停
【図面の簡単な説明】
【図1】本発明に従った汎用アダプタの主要な構成要素
を示す概略ブロック図である。
【図2】汎用アダプタ内のバッファ/パケット/待ち行
列の関係を示し、更に詳細に説明すれば、諸バッファが
諸パケットへ編成され、諸パケットが諸待ち行列へ編成
される態様を示す図である。
【図3】汎用アダプタ・マネージャ(GAM)内のマル
チキャスト・パケットの構造を示す図である。
【図4】汎用アダプタ・マネージャ(GAM)の状態マ
シン内でパケットが存在することができる主要な状態を
示す図である。
【図5】単一の読み出し及び書き込み動作中の信号の相
互作用を示す図である。
【図6】ストリーム・モードの読み出し動作中の信号の
相互作用を示す図である。
【図7】ストリーム・モードの書き込み動作中の信号の
相互作用を示す図である。
【図8】ストリーム・モードのパイプライン式読み出し
動作の信号の相互作用を示すとともに、低速のバス・ス
レーブが、ストリーム・モード信号を使用して、その読
み出し動作をパイプライン化する方法を示す図である。
【図9】パケット・メモリ・インタフェース(PMI)
の汎用部分の概略ブロック図である。
【図10】汎用アダプタ・バス(GAB)のアドレス空
間の割り当てを示す図である。
【図11】パケット・メモリ・インタフェース(PM
I)内にある通信フロント・エンド・インタフェースを
示す図である。
【図12】通信フロント・エンドからパケット・メモリ
・インタフェース(PMI)を介するデータ経路を示す
とともに、入力チャネルとそれから入力データの供給を
受ける待ち行列との関係を概略的に示す図である。
【図13】パケット・メモリ・インタフェース(PM
I)による、諸待ち行列と諸出力制御チャネルとの間の
マッピングの例を示す図である。
【符号の説明】
12 汎用アダプタ・バス(GAB) 14 プロセッサ(P)及び補助回路 16 パケット・メモリ(PM)及びそのコントローラ 18 汎用アダプタ・マネージャ(GAM) 20 パケット・メモリ・インタフェース(PMI) 22 プロセッサ(P)ローカル・メモリ及びそのコン
トローラ 24 アイソレータ 26 アイソレータ 30 GAMローカル・メモリ 32 バッファ 34 パケット 36 待ち行列 38 GAMローカル・バス 40 プロセッサ(P)ローカル・バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ギャリー・スコット・デルプ アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、クロトン・ハイ ツ・ロード、ルート1、ボックス123 (72)発明者 ハナフィー・エル=サイード・メレイス アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、イースタン・ク ローズ 325番地 (72)発明者 ラファエル・マンティラ・モンタルヴォ アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、ファーサンド・ ドライブ 2584番地 (72)発明者 デーヴィッド・イズリアル・セイドマン アメリカ合衆国10023、ニューヨーク州 ニューヨーク、ウエスト・エンド・アヴ ェニュー 142番地 (72)発明者 アハメド・ナスレッディン・タンタウィ アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、チェストナッ ト・コート 397番地 (72)発明者 ドミニク・アンソニー・ズンボ アメリカ合衆国10604、ニューヨーク州 ホワイト・プレーンズ、マディソン・ス トリート 35番地 (56)参考文献 特開 平1−181355(JP,A)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】バス、チャネル、プロセッサ、交換装置及
    び通信ネットワークのうち少なくとも2つの間で、ヘッ
    ダ情報部及びデータ部を含む可変長のデータ・パケット
    によってデータが搬送されるデータ通信のための統一ア
    ーキテクチャを提供する汎用アダプタにおいて、 データ・パケットの前記ヘッダ情報部を処理するための
    プロセッサを含み、パケット・メモリ手段に記憶された
    データ・パケットをアクセスすることができるプロセッ
    サ・サブシステムを備え、 前記パケット・メモリ手段は、複数のバッファに分割さ
    れていて、前記汎用アダプタの少なくとも1つの入出力
    ポートに到着するデータ・パケットを、その長さに応じ
    て、1つ以上の前記バッファ内に記憶するように構成さ
    れており、 更に、前記プロセッサ・サブシステムによる処理のた
    め、又は前記少なくとも1つの入出力ポートとの転送の
    ために、前記複数のバッファを各データ・パケット対応
    に連係してこれらのバッファのグループに対応するデー
    タ・パケットに編成し且つ複数の前記データ・パケット
    を各待ち行列対応に連係してこれらのデータ・パケット
    のグループに対応する待ち行列に編成することによっ
    て、各データ・パケットを編成する前記複数のバッファ
    の連係リストを下位の階層レベルとし且つ各待ち行列を
    編成する前記複数のデータ・パケットの連係リストを上
    位の階層レベルとする多レベルの階層的なデータ構造を
    前記パケット・メモリ手段内に実現することを含む、前
    記汎用アダプタの複数の管理機能を遂行するとともに、
    当該待ち行列のエンキュー及びデキュー動作並びに前記
    パケット・メモリ手段の管理動作が原子的に遂行される
    ように、当該複数の管理機能を同期させるための汎用ア
    ダプタ・マネージャ手段と、 前記少なくとも1つの入出力ポートに対応して設けら
    れ、一のデータ・パケットが当該対応する入出力ポート
    で受信されるとき、このデータ・パケットが前記パケッ
    ト・メモリ手段に転送され且つ処理のために待ち行列化
    されるように、前記パケット・メモリ手段との間でデー
    タ・パケットの転送を行うためのパケット・メモリ・イ
    ンタフェースとを備えた、汎用アダプタ。
  2. 【請求項2】前記プロセッサ・サブシステム、前記パケ
    ット・メモリ手段、前記汎用アダプタ・マネージャ手段
    及び前記少なくとも1つの入出力ポートを相互接続する
    ための汎用アダプタ・バスを含むことを特徴とする請求
    項1記載の汎用アダプタ。
  3. 【請求項3】前記汎用アダプタ・マネージャ手段は、前
    記多レベルの階層的なデータ構造を記憶するためのロー
    カル・メモリ手段と、当該汎用アダプタ・マネージャ手
    段及び当該ローカル・メモリ手段を相互接続するための
    ローカル・バスとを含むことを特徴とする請求項1記載
    の汎用アダプタ。
  4. 【請求項4】各パケット・メモリ・インタフェースは、
    前記少なくとも1つの入出力ポートに当該入出力ポート
    とは異なるデータ伝送速度を有する接続装置を相互接続
    できるようにするための速度調整用のステージング・バ
    ッファを含むことを特徴とする請求項1記載の汎用アダ
    プタ。
  5. 【請求項5】前記パケット・メモリ手段の前記複数のバ
    ッファは、1つ以上のバッファ・プールに含まれ、当該
    各プール内の各バッファは、それぞれ同一の一定サイズ
    を有することを特徴とする請求項1記載の汎用アダプ
    タ。
  6. 【請求項6】前記汎用アダプタ・マネージャ手段は、複
    数の待ち行列を編成し、当該待ち行列の各々は、所定の
    優先順位を有し且つ同じ入出力ポートを宛先とする複数
    のデータ・パケットの連係リスト、又は前記プロセッサ
    ・サブシステムによって同様に処理される複数のデータ
    ・パケットの連係リストから成ることを特徴とする請求
    項1記載の汎用アダプタ。
  7. 【請求項7】前記パケット・メモリ手段は、前記プロセ
    ッサ用の複数の待ち行列と、前記パケット・メモリ・イ
    ンタフェース用の複数の出力待ち行列を含むことを特徴
    とする請求項1記載の汎用アダプタ。
JP4017502A 1991-02-06 1992-02-03 汎用アダプタ Expired - Lifetime JP2518986B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US651894 1991-02-06
US07/651,894 US5367643A (en) 1991-02-06 1991-02-06 Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets

Publications (2)

Publication Number Publication Date
JPH04336729A JPH04336729A (ja) 1992-11-24
JP2518986B2 true JP2518986B2 (ja) 1996-07-31

Family

ID=24614670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4017502A Expired - Lifetime JP2518986B2 (ja) 1991-02-06 1992-02-03 汎用アダプタ

Country Status (4)

Country Link
US (2) US5367643A (ja)
EP (1) EP0498201A3 (ja)
JP (1) JP2518986B2 (ja)
BR (1) BR9200413A (ja)

Families Citing this family (238)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5469542A (en) * 1991-07-22 1995-11-21 International Business Machines Corporation Serial diagnostic interface bus for multiprocessor systems
DE4223600C2 (de) * 1992-07-17 1994-10-13 Ibm Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems
US7835989B1 (en) 1992-12-09 2010-11-16 Discovery Communications, Inc. Electronic book alternative delivery systems
US5990927A (en) 1992-12-09 1999-11-23 Discovery Communications, Inc. Advanced set top terminal for cable television delivery systems
US7849393B1 (en) 1992-12-09 2010-12-07 Discovery Communications, Inc. Electronic book connection to world watch live
US7509270B1 (en) 1992-12-09 2009-03-24 Discovery Communications, Inc. Electronic Book having electronic commerce features
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
DE4323405A1 (de) * 1993-07-13 1995-01-19 Sel Alcatel Ag Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
US5551052A (en) * 1993-08-02 1996-08-27 Xerox Corporation Data bus protocol for high speed chip to chip data transfer
DE4328862A1 (de) * 1993-08-27 1995-03-02 Sel Alcatel Ag Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung
US5528763A (en) * 1993-09-14 1996-06-18 International Business Machines Corporation System for admitting cells of packets from communication network into buffer of attachment of communication adapter
US5600820A (en) * 1993-12-01 1997-02-04 Bell Communications Research, Inc. Method for partitioning memory in a high speed network based on the type of service
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US7861166B1 (en) 1993-12-02 2010-12-28 Discovery Patent Holding, Llc Resizing document pages to fit available hardware screens
US7865567B1 (en) * 1993-12-02 2011-01-04 Discovery Patent Holdings, Llc Virtual on-demand electronic book
US8095949B1 (en) 1993-12-02 2012-01-10 Adrea, LLC Electronic book with restricted access features
US5640504A (en) * 1994-01-24 1997-06-17 Advanced Computer Applications, Inc. Distributed computing network
US5544325A (en) * 1994-03-21 1996-08-06 International Business Machines Corporation System and method for generating messages for use in transaction networks
US5983275A (en) * 1994-05-04 1999-11-09 Cirrus Logic, Inc. Apparatus for and method of providing interrupts to a host processor in a frame receiving system
FR2720210B1 (fr) * 1994-05-20 1996-07-19 Sextant Avionique Procédé et dispositif de transmission de données asynchrone au moyen d'un bus synchrone.
JP3172387B2 (ja) * 1994-06-01 2001-06-04 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 入出力通信サブシステム及び方法
US5521913A (en) * 1994-09-12 1996-05-28 Amber Wave Systems, Inc. Distributed processing ethernet switch with adaptive cut-through switching
US5781551A (en) * 1994-09-15 1998-07-14 Texas Instruments Incorporated Computer communications system with tree architecture and communications method
US5613096A (en) * 1994-11-04 1997-03-18 Canon Information Systems, Inc. Network protocol sensor
US5541919A (en) * 1994-12-19 1996-07-30 Motorola, Inc. Multimedia multiplexing device and method using dynamic packet segmentation
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
US5682553A (en) * 1995-04-14 1997-10-28 Mitsubishi Electric Information Technology Center America, Inc. Host computer and network interface using a two-dimensional per-application list of application level free buffers
GB9509484D0 (en) * 1995-05-10 1995-07-05 Gen Datacomm Adv Res Atm network switch
US5644733A (en) * 1995-05-18 1997-07-01 Unisys Corporation Dual coupled partitionable networks providing arbitration logic for managed access to commonly shared busses
US6549942B1 (en) * 1995-05-25 2003-04-15 Audiohighway.Com Enhanced delivery of audio data for portable playback
US5841979A (en) * 1995-05-25 1998-11-24 Information Highway Media Corp. Enhanced delivery of audio data
US5752078A (en) * 1995-07-10 1998-05-12 International Business Machines Corporation System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
JP3545858B2 (ja) * 1995-12-01 2004-07-21 株式会社東芝 ネットワーク間接続装置及び情報検索装置
US5870631A (en) * 1995-12-15 1999-02-09 International Business Machines Corporation System for operating system software providing input buffer for receiving variable-length bit stream with a header containing synchronization data recognized by universal serial controller
US5875329A (en) * 1995-12-22 1999-02-23 International Business Machines Corp. Intelligent batching of distributed messages
US5793983A (en) * 1996-01-22 1998-08-11 International Business Machines Corp. Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel
US5907717A (en) * 1996-02-23 1999-05-25 Lsi Logic Corporation Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof
US6222822B1 (en) * 1996-04-23 2001-04-24 Cisco Systems, Incorporated Method for optimizing a digital transmission network operation through transient error monitoring and control and system for implementing said method
US5781745A (en) * 1996-05-20 1998-07-14 3Com Corporation High speed communication bus
US5758087A (en) * 1996-06-14 1998-05-26 International Business Machines Corporation Apparatus and method for predicted response generation
US6683876B1 (en) * 1996-09-23 2004-01-27 Silicon Graphics, Inc. Packet switched router architecture for providing multiple simultaneous communications
US6366958B1 (en) 1996-10-21 2002-04-02 International Business Machines Corporation NETBIOS protocol support for a DCE RPC mechanism
USRE39501E1 (en) 1996-10-31 2007-03-06 Nvidia Corporation Multiple network protocol encoder/decoder and data processor
US5995605A (en) * 1996-12-06 1999-11-30 Ameritech Corporation Method and network for providing access to an information network
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US6493347B2 (en) * 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US5850556A (en) * 1996-12-26 1998-12-15 Cypress Semiconductor Corp. Interruptible state machine
US5949799A (en) * 1996-12-27 1999-09-07 Cypress Semiconductor Corp. Minimum-latency data mover with auto-segmentation and reassembly
US6233246B1 (en) 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with statistics read accesses
US6260073B1 (en) * 1996-12-30 2001-07-10 Compaq Computer Corporation Network switch including a switch manager for periodically polling the network ports to determine their status and controlling the flow of data between ports
US5961605A (en) 1997-02-06 1999-10-05 Gte Laboratories Incorporated Method and apparatus for acknowledging TCP data packets
US6230245B1 (en) 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
US5892922A (en) * 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6175894B1 (en) 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US6101192A (en) * 1997-04-25 2000-08-08 Advanced Micro Devices, Inc. Network router with partitioned memory for optimized data storage and retrieval
US6098123A (en) * 1997-05-08 2000-08-01 International Business Machines Corporation Method and apparatus for dynamic allocation of bandwidth to/from network adapter memory amongst active input/output ports
US5923898A (en) * 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
US6289388B1 (en) 1997-06-02 2001-09-11 Unisys Corporation System for communicating heterogeneous computers that are coupled through an I/O interconnection subsystem and have distinct network addresses, via a single network interface card
US6473803B1 (en) 1997-06-02 2002-10-29 Unisys Corporation Virtual LAN interface for high-speed communications between heterogeneous computer systems
US6073181A (en) * 1997-06-03 2000-06-06 International Business Machines Corporation Multi-buffer error detection for an open data-link interface LAN adapter
US5996043A (en) 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US6484244B1 (en) 1997-06-17 2002-11-19 Micron Technology, Inc. Method and system for storing and processing multiple memory commands
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
KR100251712B1 (ko) 1997-07-11 2000-04-15 윤종용 전전자교환기에서 엑스.25 프로토콜 통신을 위한 엑스.25망정합장치
US5982997A (en) * 1997-08-14 1999-11-09 International Business Machines Inc. Data stream protocol for immediate job switching
US6018515A (en) * 1997-08-19 2000-01-25 Ericsson Messaging Systems Inc. Message buffering for prioritized message transmission and congestion management
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US7107371B1 (en) 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6088370A (en) 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US6198724B1 (en) 1997-10-02 2001-03-06 Vertex Networks, Inc. ATM cell scheduling method and apparatus
US6115749A (en) * 1997-10-14 2000-09-05 Lucent Technologies Inc. System and method for using a window mechanism to control multicast data congestion
US6101420A (en) * 1997-10-24 2000-08-08 Compaq Computer Corporation Method and apparatus for disambiguating change-to-dirty commands in a switch based multi-processing system with coarse directories
US6088777A (en) * 1997-11-12 2000-07-11 Ericsson Messaging Systems, Inc. Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages
US6202119B1 (en) 1997-12-19 2001-03-13 Micron Technology, Inc. Method and system for processing pipelined memory commands
US5974465A (en) * 1998-01-21 1999-10-26 3Com Corporation Method and apparatus for prioritizing the enqueueing of outbound data packets in a network device
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6105122A (en) * 1998-02-06 2000-08-15 Ncr Corporation I/O protocol for highly configurable multi-node processing system
US6178486B1 (en) * 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller
JP4076724B2 (ja) * 1998-02-24 2008-04-16 シーゲイト テクノロジー エルエルシー ダイナミック半二重によるループ・フェアネスの保持
EP1068708B1 (en) * 1998-03-16 2012-03-07 Schneider Automation Inc. Communication system for a control system over ethernet and ip networks
US6088745A (en) * 1998-03-17 2000-07-11 Xylan Corporation Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space
US6272551B1 (en) * 1998-04-08 2001-08-07 Intel Corporation Network adapter for transmitting network packets between a host device and a power line network
US6714553B1 (en) 1998-04-15 2004-03-30 Top Layer Networks, Inc. System and process for flexible queuing of data packets in network switching
US6182174B1 (en) * 1998-04-13 2001-01-30 International Business Machines Corporation Memory card interface method using multiplexed storage protect key to indicate command acceptance
US6160812A (en) * 1998-05-04 2000-12-12 Cabletron Systems, Inc. Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6233619B1 (en) 1998-07-31 2001-05-15 Unisys Corporation Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems
US6182228B1 (en) 1998-08-17 2001-01-30 International Business Machines Corporation System and method for very fast IP packet filtering
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
US6341302B1 (en) * 1998-09-24 2002-01-22 Compaq Information Technologies Group, Lp Efficient inter-task queue protocol
US7010604B1 (en) 1998-10-30 2006-03-07 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6839759B2 (en) 1998-10-30 2005-01-04 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6272563B1 (en) 1998-11-03 2001-08-07 Intel Corporation Method and apparatus for communicating routing and attribute information for a transaction between hubs in a computer system
US6175884B1 (en) 1998-11-03 2001-01-16 Intel Corporation Efficient communication of transaction types using separate and orthogonal attribute fields in packet headers transferred between hubs in a computer system
US6549938B1 (en) * 1998-12-10 2003-04-15 Nokia Corporation System and method for prioritizing multicast packets in a network service class utilizing a priority-based quality of service
US6178531B1 (en) 1998-12-18 2001-01-23 Ncr Corporation Method and apparatus for remotely testing token ring local area networks
US6636883B1 (en) * 1999-02-22 2003-10-21 International Business Machines Corporation Mechanism for passing information between queuing and de-queuing processes
JP3995131B2 (ja) * 1999-05-11 2007-10-24 シャープ株式会社 データ出力回路
US6757744B1 (en) 1999-05-12 2004-06-29 Unisys Corporation Distributed transport communications manager with messaging subsystem for high-speed communications between heterogeneous computer systems
US6591316B1 (en) * 1999-05-20 2003-07-08 Marconi Communications, Inc. Avoiding fragmentation loss in high speed burst oriented packet memory interface
US6378051B1 (en) * 1999-06-14 2002-04-23 Maxtor Corporation Interrupt signal prioritized shared buffer memory access system and method
AU6089700A (en) * 1999-07-13 2001-01-30 Alteon Web Systems, Inc. Apparatus and method to minimize incoming data loss
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
US6650650B1 (en) * 1999-09-16 2003-11-18 Ut Starcom, Inc. Method and apparatus for transmitting voice data over network structures
US6912586B1 (en) * 1999-11-12 2005-06-28 International Business Machines Corporation Apparatus for journaling during software deployment and method therefor
US6418526B1 (en) 1999-11-15 2002-07-09 Ncr Corporation Method and apparatus for synchronizing nodes in massively parallel systems
US6412002B1 (en) 1999-11-15 2002-06-25 Ncr Corporation Method and apparatus for selecting nodes in configuring massively parallel systems
US6519697B1 (en) 1999-11-15 2003-02-11 Ncr Corporation Method and apparatus for coordinating the configuration of massively parallel systems
US6745240B1 (en) 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
US6615274B1 (en) 1999-12-09 2003-09-02 International Business Machines Corporation Computer network control systems and methods
US6704782B1 (en) 1999-12-09 2004-03-09 International Business Machines Corporation System and methods for real time progress monitoring in a computer network
US6588011B1 (en) 1999-12-14 2003-07-01 International Business Machines Corporation Apparatus for automatically generating restore process during software depolyment and method therefor
US7191208B1 (en) 1999-12-14 2007-03-13 International Business Machines Corporation Methods of selectively distributing data in a computer network and systems using the same
US6604237B1 (en) 1999-12-14 2003-08-05 International Business Machines Corporation Apparatus for journaling during software deployment and method therefor
US6832265B1 (en) * 2000-01-07 2004-12-14 Cisco Technology, Inc. Methods and apparatus for moving data elements within a data communications device
US6584518B1 (en) 2000-01-07 2003-06-24 International Business Machines Corporation Cycle saving technique for managing linked lists
US7165257B2 (en) * 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7032226B1 (en) * 2000-06-30 2006-04-18 Mips Technologies, Inc. Methods and apparatus for managing a buffer of events in the background
US7082552B2 (en) * 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
US7042887B2 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Method and apparatus for non-speculative pre-fetch operation in data packet processing
US7502876B1 (en) 2000-06-23 2009-03-10 Mips Technologies, Inc. Background memory manager that determines if data structures fits in memory with memory state transactions map
US7058064B2 (en) * 2000-02-08 2006-06-06 Mips Technologies, Inc. Queueing system for processors in packet routing operations
US7649901B2 (en) * 2000-02-08 2010-01-19 Mips Technologies, Inc. Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing
US7076630B2 (en) * 2000-02-08 2006-07-11 Mips Tech Inc Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management
US7065096B2 (en) * 2000-06-23 2006-06-20 Mips Technologies, Inc. Method for allocating memory space for limited packet head and/or tail growth
US7058065B2 (en) 2000-02-08 2006-06-06 Mips Tech Inc Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing
US7155516B2 (en) 2000-02-08 2006-12-26 Mips Technologies, Inc. Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory
US7139901B2 (en) * 2000-02-08 2006-11-21 Mips Technologies, Inc. Extended instruction set for packet processing applications
US20010052053A1 (en) * 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
AT408382B (de) * 2000-03-02 2001-11-26 Fts Computertechnik Gmbh Rechnerknotenarchitektur mit dediziertem middleware computer
WO2001071514A2 (en) * 2000-03-21 2001-09-27 Siemens Energy & Automation, Inc. A communication interface system, method and apparatus
US7065580B1 (en) * 2000-03-31 2006-06-20 Sun Microsystems, Inc. Method and apparatus for a pipelined network
WO2001082204A1 (en) * 2000-04-26 2001-11-01 Venice Technologies, Inc. Methods and systems for securing computer software
US7213077B2 (en) * 2000-07-21 2007-05-01 Hughes Network Systems, Inc. Method and system for providing buffer management in a performance enhancing proxy architecture
US6831916B1 (en) 2000-09-28 2004-12-14 Balaji Parthasarathy Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US6775719B1 (en) 2000-09-28 2004-08-10 Intel Corporation Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US7181541B1 (en) 2000-09-29 2007-02-20 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7107359B1 (en) 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7095744B2 (en) * 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
US20100223295A1 (en) * 2000-12-06 2010-09-02 Io Informatics, Inc. Applied Semantic Knowledgebases and Applications Thereof
US20020156756A1 (en) * 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs
US20020071450A1 (en) * 2000-12-08 2002-06-13 Gasbarro Dominic J. Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
US6643747B2 (en) * 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
AU2002233500A1 (en) * 2001-02-14 2002-08-28 Clearspeed Technology Limited An interconnection system
US7324509B2 (en) * 2001-03-02 2008-01-29 Broadcom Corporation Efficient optimization algorithm in memory utilization for network applications
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7287649B2 (en) 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
WO2003021443A1 (en) * 2001-08-31 2003-03-13 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US6868466B2 (en) * 2001-09-27 2005-03-15 Intel Corporation Apparatus and method for packet ingress interrupt moderation
US7362751B2 (en) * 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
US6723359B2 (en) * 2001-10-18 2004-04-20 Firmenich Sa Spray-dried compositions and method for their preparation
US20030081599A1 (en) * 2001-10-30 2003-05-01 Chui-Tsang Wu System and method for data transmission control
US8312117B1 (en) 2001-11-15 2012-11-13 Unisys Corporation Dialog recovery in a distributed computer system
US7480239B1 (en) 2001-11-27 2009-01-20 Cisco Technology, Inc. Method and apparatus for true priority based connection establishment within a PNNI ATM network
US7158964B2 (en) 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US20030135575A1 (en) * 2002-01-14 2003-07-17 Richard Marejka Self-monitoring and trending service system with cascaded pipeline linking numerous client systems
US7996507B2 (en) * 2002-01-16 2011-08-09 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7177963B2 (en) 2002-02-01 2007-02-13 Broadcom Corporation System and method for low-overhead monitoring of transmit queue empty status
US7352741B2 (en) 2002-02-21 2008-04-01 Sun Microsystems, Inc. Method and apparatus for speculative arbitration
US6836808B2 (en) * 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US7177322B2 (en) 2002-05-28 2007-02-13 International Business Machines Corporation Technique for controlling selection of a peek adapter or a read adapter from multiple adapters connected to a high speed switch
US7161954B2 (en) * 2002-05-28 2007-01-09 International Business Machines Corporation Technique for controlling selection of a write adapter from multiple adapters connected to a high speed switch
US7065628B2 (en) * 2002-05-29 2006-06-20 Intel Corporation Increasing memory access efficiency for packet applications
US7243184B1 (en) * 2002-06-14 2007-07-10 Juniper Networks, Inc. Maintaining packet order using hash-based linked-list queues
US6948104B2 (en) * 2002-06-26 2005-09-20 Microsoft Corporation System and method for transparent electronic data transfer using error correction to facilitate bandwidth-efficient data recovery
US7162564B2 (en) * 2002-07-09 2007-01-09 Intel Corporation Configurable multi-port multi-protocol network interface to support packet processing
US20040019882A1 (en) * 2002-07-26 2004-01-29 Haydt Robert J. Scalable data communication model
DE10246732A1 (de) * 2002-10-07 2004-04-15 OCé PRINTING SYSTEMS GMBH Verfahren und Vorrichtung zum Synchronisieren von Aktionen, die über ein lokales, mehrere Mikrokontroller aufweisendes Datennetz gesteuert werden, sowie Verfahren und Vorrichtung zum Senden von Nachrichten über ein solches Datennetzwerk
US7782885B1 (en) * 2002-12-10 2010-08-24 Cisco Technology, Inc. System and method for queue management using queue sets
US20050259807A1 (en) * 2003-02-28 2005-11-24 Pita Madoch Method and network for providing access to an information network
US7286526B2 (en) * 2003-03-14 2007-10-23 International Business Machines Corporation Uniform management of mixed network systems
US7586938B2 (en) * 2003-10-24 2009-09-08 Microsoft Corporation Methods and systems for self-describing multicasting of multimedia presentations
US7617332B2 (en) * 2003-05-01 2009-11-10 International Business Machines Corporation Method and apparatus for implementing packet command instructions for network processing
US7701949B1 (en) * 2003-06-24 2010-04-20 Cisco Technology, Inc. System and method for switching high priority traffic with low latency
DE602004021807D1 (de) * 2003-07-10 2009-08-13 Computer Ass Think Inc System und verfahren zum puffern von daten variabler länge
US7532574B1 (en) 2003-10-02 2009-05-12 Cisco Technology, Inc. Method and apparatus for improved priority based connection establishment within a PNNI ATM network
US7899913B2 (en) * 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US7624198B1 (en) 2003-12-19 2009-11-24 Nvidia Corporation Sequence tagging system and method for transport offload engine data lists
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US7260631B1 (en) 2003-12-19 2007-08-21 Nvidia Corporation System and method for receiving iSCSI protocol data units
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US8665719B2 (en) * 2004-05-03 2014-03-04 Alcatel Lucent Variable packet-size backplanes for switching and routing systems
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
JP4791733B2 (ja) * 2005-01-14 2011-10-12 株式会社東芝 半導体集積回路装置
US7548513B2 (en) * 2005-02-17 2009-06-16 Intel Corporation Techniques to provide recovery receive queues for flooded queues
US7693145B2 (en) * 2005-02-28 2010-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for direct reception of inbound data
US20060193318A1 (en) * 2005-02-28 2006-08-31 Sriram Narasimhan Method and apparatus for processing inbound and outbound quanta of data
US8073042B1 (en) 2005-04-13 2011-12-06 Cypress Semiconductor Corporation Recursive range controller
EP2383661A1 (en) * 2005-04-21 2011-11-02 Violin Memory, Inc. Interconnection system
US20070038834A1 (en) * 2005-07-25 2007-02-15 Rolf Fritz Method and System for Managing the Sending of Data Packets Over a Data Path
US20070053349A1 (en) * 2005-09-02 2007-03-08 Bryan Rittmeyer Network interface accessing multiple sized memory segments
US8176179B2 (en) * 2006-04-03 2012-05-08 Secure64 Software Corporation Method and system for data-structure management
US7987462B2 (en) * 2006-11-16 2011-07-26 International Business Machines Corporation Method for automatic throttling of work producers
US7861014B2 (en) 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US7840748B2 (en) 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7818497B2 (en) 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7865674B2 (en) 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US8019919B2 (en) 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
CN101803268B (zh) * 2007-09-14 2013-03-27 日本电气株式会社 时钟同步系统及其方法和程序
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US7925824B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7925825B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US8140936B2 (en) 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7930470B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7925826B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US7770077B2 (en) 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US8443411B2 (en) * 2008-11-26 2013-05-14 At&T Intellectual Property I, Lp System and method to distribute video-on-demand content
US20110129201A1 (en) * 2009-11-30 2011-06-02 International Business Machines Corporation Customized playback of broadcast media
KR101877595B1 (ko) * 2013-10-28 2018-07-12 주식회사 케이티 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법
US9961019B2 (en) * 2014-12-22 2018-05-01 Intel Corporation Adaptively switched network-on-chip
US10089255B2 (en) * 2015-07-24 2018-10-02 SK Hynix Inc. High performance host queue monitor for PCIE SSD controller
KR20180018886A (ko) * 2016-08-09 2018-02-22 삼성전자주식회사 스토리지 시스템의 동작 방법 및 호스트의 동작 방법
US10367752B2 (en) * 2016-11-18 2019-07-30 International Business Machines Corporation Data packet management in a memory constrained environment
US20180341494A1 (en) * 2017-05-26 2018-11-29 Intel Corporation Accelerating network security monitoring
CN112286488B (zh) * 2020-09-17 2023-06-16 昆明理工大学 一种基于数据包效用值的缓存替换方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371924A (en) * 1979-11-09 1983-02-01 Rockwell International Corp. Computer system apparatus for prefetching data requested by a peripheral device from memory
US4621362A (en) * 1984-06-04 1986-11-04 International Business Machines Corp. Routing architecture for a multi-ring local area network
ES2047483T3 (es) * 1986-07-28 1994-03-01 Bull Hn Information Syst Un controlador para controlar multiples tipos de redes de area local (lan).
US4715030A (en) * 1986-08-04 1987-12-22 General Electric Company Local area network bridge
JPH01132246A (ja) * 1987-08-31 1989-05-24 Toshiba Corp トラヒックの片寄りを無くすことができるデータ伝送システム
US5086426A (en) * 1987-12-23 1992-02-04 Hitachi, Ltd. Communication network system having a plurality of different protocal LAN's
JPH01181355A (ja) * 1988-01-14 1989-07-19 Fujitsu Ltd ネットワーク通信方式
US4947390A (en) * 1989-03-22 1990-08-07 Hewlett-Packard Company Method for data transfer through a bridge to a network requiring source route information
CA2011935A1 (en) * 1989-04-07 1990-10-07 Desiree A. Awiszio Dual-path computer interconnect system with four-ported packet memory control
US5187780A (en) * 1989-04-07 1993-02-16 Digital Equipment Corporation Dual-path computer interconnect system with zone manager for packet memory
US5058109A (en) * 1989-06-28 1991-10-15 Digital Equipment Corporation Exclusionary network adapter apparatus and related method
US5088090A (en) * 1990-01-31 1992-02-11 Rad Network Devices Ltd. Routing system to interconnect local area networks
US5043981A (en) * 1990-05-29 1991-08-27 Advanced Micro Devices, Inc. Method of and system for transferring multiple priority queues into multiple logical FIFOs using a single physical FIFO
US5247626A (en) * 1990-05-29 1993-09-21 Advanced Micro Devices, Inc. Fddi controller having flexible buffer management
US5153884A (en) * 1990-08-15 1992-10-06 Allen-Bradley Company, Inc. Intelligent network interface circuit
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets

Also Published As

Publication number Publication date
EP0498201A3 (en) 1996-09-11
BR9200413A (pt) 1992-10-13
US5367643A (en) 1994-11-22
JPH04336729A (ja) 1992-11-24
US5634015A (en) 1997-05-27
EP0498201A2 (en) 1992-08-12

Similar Documents

Publication Publication Date Title
JP2518986B2 (ja) 汎用アダプタ
US5600799A (en) Status batching and filtering in a media access control/host system interface unit
US7751402B2 (en) Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7434221B2 (en) Multi-threaded sequenced receive for fast network port stream of packets
US7865652B2 (en) Power control by a multi-port bridge device
US7277449B2 (en) On chip network
US6408341B1 (en) Multi-tasking adapter for parallel network applications
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
US5386517A (en) Dual bus communication system connecting multiple processors to multiple I/O subsystems having a plurality of I/O devices with varying transfer speeds
CA2124452C (en) Method and apparatus for processing data within stations of a communication network
US7676597B2 (en) Handling multiple network transport service levels with hardware and software arbitration
US7120712B2 (en) Communications system and method with multilevel connection identification
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US7139860B2 (en) On chip network with independent logical and physical layers
US7200137B2 (en) On chip network that maximizes interconnect utilization between processing elements
US7051150B2 (en) Scalable on chip network
US6775719B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US5519883A (en) Interbus interface module
US6976095B1 (en) Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
JPH0865334A (ja) マルチメディア通信装置及び方法
JPH04233352A (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
WO2002031672A2 (en) Method and apparatus for interprocessor communication and peripheral sharing
JP2004318901A (ja) データ処理モジュール相互間の高速制御およびデータバスシステム
JPH076107A (ja) インターフェース装置および方法並びに通信アダプタ
WO2001067713A1 (en) A packet format independent computer network controller