JPH0969855A - トランザクション・フローを制御する制御システムおよびその方法 - Google Patents

トランザクション・フローを制御する制御システムおよびその方法

Info

Publication number
JPH0969855A
JPH0969855A JP9959396A JP9959396A JPH0969855A JP H0969855 A JPH0969855 A JP H0969855A JP 9959396 A JP9959396 A JP 9959396A JP 9959396 A JP9959396 A JP 9959396A JP H0969855 A JPH0969855 A JP H0969855A
Authority
JP
Japan
Prior art keywords
slave
queue
request
transaction
master
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.)
Granted
Application number
JP9959396A
Other languages
English (en)
Other versions
JP3881054B2 (ja
Inventor
Loo William C Van
ウィリアム・シイ・ヴァン・ルー
Zahir Ebrahim
ザヒール・イーブラヒム
Satyanarayana Nishtala
サトヤナラヤナ・ニシュタラ
B Noomoir Kevin
ケヴィン・ビイ・ノーモイル
Kohn Leslie
レスリー・コーン
F Coffin Louis Iii
サード ルイス・エフ・コフィン,ザ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0969855A publication Critical patent/JPH0969855A/ja
Application granted granted Critical
Publication of JP3881054B2 publication Critical patent/JP3881054B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 システム資源の使用率およびスループットを
最大にし、システム待ち時間を最小限に抑えるパケット
交換単一プロセッサ・マルチプロセッサ・コンピュータ
・システム用のリンク・バイ・リンク・フロー制御方法
を提供する。 【解決手段】 コンピュータ・システムは、1つまたは
複数のマスタ・インタフェースと、1つまたは複数のス
レーブ・インタフェースと、各マスタ・インタフェース
ごとの専用トランザクション要求待ち行列を供給して各
スレーブ・インタフェースへのトランザクションの転送
を制御する相互接続システム・コントローラとを備え
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パケット交換マイ
クロプロセッサ・ベースのコンピュータ・システム(単
一プロセッサ)、またはそのようなコンピュータ・シス
テムのネットワーク、またはマルチプロセッサ・システ
ムでのフロー制御用の新規の方法および装置に関する。
【0002】
【従来の技術】無駄な動作を防止しコンピュータ・シス
テムが効率的に動作するのを助けるには、システム中の
マイクロプロセッサ・トランザクション(データまたは
命令、あるいはその両方を含む)の信頼できる合理的な
フロー制御が必要である。コンピュータ・システム中の
通常のパケット交換バス・インタフェースは、フロー制
御のために否定応答、またはバックプレッシャ技術を使
用する。これは、マスタがスレーブによる否定応答のた
めに再試行トランザクションを発行するか、あるいはシ
ステム資源可用性の動的な変化の関数としてバックプレ
ッシャを変えるための複雑なハンドシェーク信号を発行
する必要がある。
【0003】これらの方法は共に、実施が複雑であり、
ハンドシェークを実行し、バスに関する再調停を行い、
相互接続資源を再スケジューリングすることなどの余分
のクロック・サイクルを費やすことによってバス待ち時
間を増加させる。
【0004】ある種のシステムは、すべての受信待ち行
列を、受信することが予想される最大数のトランザクシ
ョンを含むのに十分大きなサイズのものにすることによ
って、動的(負)フィードバック(たとえば否定応答)
を完全に回避する。これは、スレーブがより高価で基本
的にスケジューリング不能なものになるという欠点があ
る。特に、それぞれ、複数の要求を行う複数の要求源が
あるときにスケジューリング不能となる。この手法は、
受信待ち行列が非常に長くなり、システム待ち時間に悪
影響を与えることがある。
【0005】プロセッサ速度の改良速度が引き続きメモ
リ速度の改良速度を上回っているので、相互接続待ち時
間を短縮することは、性能を大幅に向上させるうえでま
すます重要になっている。トランザクション受信待ち行
列のサイズを増加させることによって複雑さ、寸法、ハ
ードウェア・コストを増大させることなしに、負のフィ
ードバックを使用しなくて済むシステムを得て、その手
法に関連する非効率を回避することが特に有用である。
【0006】通信スイッチ設計やデータ通信プロトコル
など、パケット交換システム用の様々なフロー制御技術
が開発されている。大部分の既存の設計では、(1)各
下流側ノードが上流側ノードへフィードバック信号を送
信するリンク・バイ・リンク・ベースで、あるいは
(2)2つの通信端末点しかフロー制御に参加せず、宛
先からのフィードバックがあるかないかが、フローを制
御するために送信側によって使用される端末間ベース
で、送信器を停止させるためにある形態の動的フィード
バック信号を使用する。提案されている他の方法は、速
度ベースのフロー制御であり、この場合、送信側は、合
意されている率で送信速度を測定し、下流側の任意の点
によって送信側へ送信される動的フィードバック信号に
基づいて送信速度を変える。大部分のパケット交換コン
ピュータ・システムは、リンク・バイ・リンク・フロー
制御プロトコルを使用する。
【0007】リンク・バイ・リンク・フロー制御では、
下流側の受信側は、受信側のバッファ満杯状態または輻
輳状態を示すフィードバック信号を上流側の送信側に対
してアサートする。フィードバック信号は、下記の形態
のうちの1つをとることができる。 (a)送信側にしばらくの間送信を停止させ、再試行さ
せるパルス信号 (b)信号がアサートされている間、送信側が送信を行
わないようにさせるレベル信号 (c)それぞれ、送信側に送信を停止させ、再開させ
る、宛先からの停止・開始2メッセージ・フィードバッ
ク(大部分の既存のパケット交換システムはこの方法を
使用している)。
【0008】リンク・バイ・リンク・フロー制御は、下
流側の受信側が上流側の送信側に発行するクレジットを
介して動作することもでき、この場合、送信側は、クレ
ジットで許可された数の要求のみを送信し、次いで、下
流側の受信側によって送信側に新しいクレジットが発行
されるまで停止する。下流側の受信側は、受信側の受信
待ち行列容量と、受信側が検出した他の輻輳条件に基づ
いて、上流側の送信側に発行されるクレジットの数と周
波数を動的に変える。そのようなシステムの詳細につい
ては、H.T.Kung等の「The FCVC Pr
oposalfor ATM Networks」,P
roc.1993 International Co
nf.on Network Protocols,1
16ページないし127ページを参照されたい。
【0009】リンク・バイ・リンク・フロー制御は、下
流側待ち行列を受信することが予想される最大数または
項目を収容するのに十分な大きさにすることによって行
うこともできる。したがって、項目(要求)を失うこと
はなく、上流側の送信側に送信を停止させる必要はな
い。これは、高価なスケーリング不能な解決策である。
【0010】宛先から発信元へのフィードバックがある
かないかを介する端末間フロー制御は、制御・輻輳管理
用のTCPスライディング・ウィンドウ・プロトコル
と、ATMネットワークにおける輻輳制御用のBECN
/FECN提案で実施されている。
【0011】フロー制御の1つの手法は、マスタ装置を
使用して、相互接続先とのインタフェースでの待ち行列
長さの定義済み合意を用いてマスタ装置が発行できるト
ランザクションの数を追跡し、相互接続先が、トランザ
クションが完了するたびにフロー制御手段としてACK
(肯定応答)を発行することである。この手法を使用し
ているプロトコル(HDLCおよびSDLC)では、送
信側は、パケットの最終受信側の機能(特に、待ち行列
サイズ)に関する情報を有さない。また、そのようなプ
ロトコルは、待ち行列長さを事前に決定しておくことを
必要とし、したがってスケーリングすることができな
い。また、各プロセッサ(またはマスタ)が他のすべて
のプロセッサ(またはマスタ)のすべてのトランザクシ
ョンを追跡する必要があるので、この手法は多重処理環
境には適していない。
【0012】クレジット・ベースの方式では、クレジッ
トは、新しいパケットを送信できるようにするために下
流側の受信側によって発行される。そのような方式は、
(1)クレジットが非請求フィードバック・パケットと
してあるスイッチから他のスイッチに頻繁に発行され、
(2)クレジットが動的輻輳状態に基づいて変えられる
という欠点を有する。
【0013】
【発明が解決しようとする課題】したがって、単一プロ
セッサ環境、マルチプロセッサ環境、ネットワーク化環
境に適応し、効率的でスケーリング可能で費用有効なパ
ケット交換トランザクション・フロー制御を可能にする
新規の装置および方法が必要である。
【0014】
【課題を解決するための手段】本発明は、初期設定時に
システム中のすべての待ち行列の総待ち行列サイズを判
定し、マスタ(たとえばプロセッサ)がその総数の範囲
内の数のトランザクション要求しか送信できないように
する方法および装置を使用する。本発明のシステムは、
システム相互接続待ち行列を要求待ち行列、読取りデー
タ待ち行列、書込みデータ待ち行列として分類し、要求
とデータの両方の転送規則を粗に結合された事象として
判定する。1つまたは複数のマスタ(たとえば、マイク
ロプロセッサ)とスレーブ装置、たとえば入出力装置、
ディスク・ドライブ、メモリなどとの間に相互接続(シ
ステム)コントローラが接続される。この相互接続コン
トローラは各マスタごとの待ち行列を含み、各マスタ
は、そのマスタからコントローラへの未処理のトランザ
クション要求の数を示すトランザクション・カウンタを
含む。相互接続コントローラは、各下流側スレーブごと
の要求待ち行列と書込みデータ待ち行列の両方を含み、
かつコントローラからそのスレーブへの未処理の要求の
数とあるマスタからそのスレーブへの書込みデータ転送
の数とを含むトランザクション・カウンタも含む。
【0015】マスタおよびコントローラは、それぞれの
カウンタが、下流側の対応する要求待ち行列またはデー
タ待ち行列が満杯であることを示すときに、トランザク
ション要求を下流側へ発行する(あるいは書込みデータ
転送要求を開始する)ことを妨げられる。トランザクシ
ョンが完了すると(たとえば、要求されたデータ読取り
を受信し、あるいはスレーブが書込みデータを使い尽く
したとき)、関連するカウンタは、トランザクション待
ち行列または書込みデータ待ち行列中のある場所が利用
可能であることを示すように減分される。
【0016】したがって、マスタまたはシステム・コン
トローラが受信側が有する空間よりも多くのトランザク
ションまたはデータを送信することを防止することによ
って、待ち行列オーバフロー状態および輻輳状態が回避
される。データ転送が完了したことを通知すると共に下
流側待ち行列中の1つまたは複数の利用可能な空間につ
いてマスタに通知するためにハードウェア・ハンドシェ
ークが使用される。したがって、ハンドシェークは、ク
レジット・ベースの方式の場合と同様に非請求信号であ
り、この信号は動的輻輳に基づくものではない。
【0017】システム中の最大待ち行列サイズは、初期
設定時に決定され、したがって、マスタがアプリケーシ
ョンを実行する前に知られる。したがって、マスタおよ
びコントローラは常に、すぐ下流側の待ち行列中の利用
できるスポットの数に関する情報を有する。これは、最
大待ち行列サイズが事前に分からず、送信側がそれ自体
に発行されたクレジットを追跡することしかできないク
レジット・ベースの方式とは対称的である。初期設定シ
ーケンスは、(たとえば、ブートPROMによる)ソフ
トウェア駆動であり、待ち行列のサイズおよび深さは、
このシーケンスによって決定される。このシーケンス
は、システム自体を(それぞれの異なる待ち行列サイズ
を有する)それぞれの異なるスレーブ向けに再構成し、
あるいは機能していない待ち行列要素を削除するシステ
ムの適応性を与える。
【0018】このフロー制御システム中の(アドバンス
またはオーバフロー)フィードバック信号をなくする
と、余分なハンドシェーク、資源に関する再スケジュー
リングまたは再調停、マスタによる再試行がなくなるの
で、インタフェース待ち時間が短縮される。したがっ
て、プロセッサの数に応じて容易にスケーリングできる
より簡単な設計を使用することができ、待ち行列のサイ
ズが小さくなるためにトランザクションを失う恐れなし
に、価格/性能に関して考慮すべき点および所望の帯域
幅の必要に応じてスレーブ待ち行列を縮小することがで
きる。さらに、必要に応じて、単に相互接続中のそれぞ
れの待ち行列およびバッファを縮小または拡大(サイズ
設定)することによって、小型で廉価なシステムから大
型で高価なシステムまで様々なシステムを同じモジュー
ルCPUおよび入出力インタフェースから設計すること
ができる。相互接続コントローラは、所与の範囲の待ち
行列サイズを有する所与の1組のマスタおよびスレーブ
に適応するように設計されるので、マスタおよびスレー
ブを再設計する必要はない。システム・コントローラが
比較的廉価なので、システムのコストをそれほど増加さ
せずにいくつかの異なるコントローラ設計を使用するこ
とができる。このことは、プロセッサおよびスレーブ装
置が修正を必要とする場合には当てはまらない。
【0019】飽和状態の下でシステムが正しく動作する
かどうかを試験しその妥当性を検査するために必要な全
体的なシステム設計および作業(フロー制御が重要であ
るとき)も大幅に簡略化される。
【0020】
【発明の実施の形態】図1は、本発明を組み込んだコン
ピュータ・システム10のトップレベル・ブロック図で
ある。この図は、Bill van Loo,Saty
a Nishtala and Zahir Ebra
himの「UPA Interconnect Arc
hitecture」に完全に記載されている出願人の
新規のUltrasparc Architectur
eの特定の実施態様に関するものである。「Metho
d and Apparatus for FlowC
ontrol in a Packet−Switch
ed Computer System」と題する出願
人による関連特許出願の付録AとしてSunMicro
systems,Inc.のUPA Intercon
nect Architectureの内部リリース・
バージョン1.1が提出されている。この特許出願は、
1995年3月31日に米国特許庁に出願され、UPA
アーキテクチャの多数の広範囲の特徴について説明して
おり、引用によって本明細書に編入されている。
【0021】本発明は、新規のシステム相互接続アーキ
テクチャと、この相互接続を使用してマスタ装置とスレ
ーブ装置またはメモリ装置との間のトランザクション要
求およびデータ・フローを制御する、システム相互接続
アーキテクチャに付随する新規の方法を使用する。
【0022】図1で、システム10は、UPAモジュー
ル20と相互接続ネットワークまたは相互接続モジュー
ル25とを含む。相互接続ネットワークまたは相互接続
モジュール25は、本発明の異なる実施形態では、デー
タ経路に接続することも、あるいは接続しないこともあ
る。UPAモジュールは、プロセッサ30、グラフィッ
クス装置40、入出力装置50などの装置を含むことが
できる。他の装置を含めることができ、それらの装置
は、本発明のためのマスタ装置として働くことができ
る。マスタ・インタフェースは、トランザクション要求
を開始するエンティティ用のインタフェースとして定義
される。そのようなマスタの例は、メモリ要求を行うC
PUや、DMA要求を行う入出力チャネルおよびブリッ
ジである。
【0023】一般に、本出願では、マスタはプロセッサ
として例示されている。しかし、マスタは、マイクロプ
ロセッサを含むか、それとも含まないかにかかわらず、
任意のトランザクション要求装置でよい。同様に、「ス
レーブ」は、本明細書では、メモリ装置と非メモリ装置
の両方を含め、かつそれ自体がマスタとして働くことが
できるプロセッサや入出力コントローラなどの装置を含
め、トランザクション要求を受け入れることができる任
意の装置でよい。
【0024】本発明では、「トランザクション」は、マ
スタによって発行され、その後、すぐ下流側の受信側か
ら肯定パケット(選択された実施態様に応じて必ずしも
満杯のパケットではない)が発行される要求パケットと
して定義される。要求パケットにデータ転送が伴って
も、あるいは伴わなくてもよく、データ転送は要求パケ
ットと同じ1組のワイヤ上で行うことも、あるいは別々
のデータデプス・ワイ上で行うこともできる。これにつ
いては、下記に図5ないし図8に関して詳しく説明す
る。
【0025】UPAポート60は、モジュール20をシ
ステム相互接続コントローラ(SC)70に結合し、シ
ステム相互接続コントローラは、1つまたは複数のスレ
ーブ・インタフェース80に結合される。スレーブ・イ
ンタフェースは、メモリ(メイン・メモリなど)用のイ
ンタフェースでも、または入出力インタフェースでも、
またはグラフィックス・フレーム・バッファでも、また
は他の相互接続ネットワークとの1つまたは複数のブリ
ッジでも、または場合によっては、CPUが受信する実
行すべきトランザクションでもよい。一般に、実行を求
めるトランザクション要求を受け入れる装置には、従来
型のメモリ装置85や標準入出力装置95など、本発明
によるスレーブ・インタフェース80を与えることがで
きる。
【0026】好ましい実施形態では、システム・コント
ローラ70およびUPAインタフェース60が主プロセ
ッサ・チップ上に保持され、スレーブ・インタフェース
がマザーボード上に保持される。ただし、多数の変形例
が可能である。さらに一般的には、各マスタ(プロセッ
サか、それともその他の装置かにかかわらず)はUPA
マスタ・インタフェースであり、各スレーブはUPAス
レーブ・インタフェースを含む。各ケースにおいて、シ
ステム・コントローラはシステムと共に存在する。
【0027】相互接続モジュール25にはデータ経路ク
ロスバー90も含まれ、スレーブ・インタフェース、シ
ステム・コントローラ70、ポート60に結合される。
データ経路クロスバーは、簡単なバスでも、より複雑な
クロスバーでもよい(UPAポート60は、UPAモジ
ュール20の一部として構成することも、あるいは相互
接続モジュール25の一部として構成することもでき
る)。データ経路クロスバー90は、後述のようにデー
タを送信し書き込むために使用される。
【0028】ユーザ・インタフェース、データ出力など
のために、システム10の一部を形成する、1つまたは
複数の従来型メモリあるいはその他の記憶装置85およ
び1つまたは複数の入出力(I/O)装置95が設けら
れる。このような様々なスレーブ装置には、RAM、R
OM、ディスク・ドライブ、モニタ、キーボード、トラ
ック・ボール、プリンタなどを含めることができる。こ
れらのスレーブ装置はスレーブ・インタフェース80を
介して相互接続モジュール25に結合される。「スレー
ブ」の語はこの場合、そのような装置が1つまたは複数
のプロセッサからの要求を受け入れ、その要求を満たす
ことしか意味しない。
【0029】相互接続とは一般に、二地点間リンク、単
一のバスまたは複数のバス、交換ファブリクスなど、マ
スタおよびスレーブを相互接続するいくつかの異なる標
準通信トポロジーの形をとることができる。この相互接
続では、いくつかの従来型機構のうちのどれかを使用
し、1つまたは複数の単一経路を使用してトランザクシ
ョン要求をあるスレーブに切り替えることができ、交換
は、トランザクション要求パケットに含まれるアドレス
情報、または必ずしも要求パケットの内容に依存するわ
けではない他のプロトコルに基づいて行うことができ
る。相互接続には、任意の量のバッファリングが存在し
ても、あるいはバッファリングがまったく存在しなくて
もよい。
【0030】図1(および図1A、下記の議論を参照さ
れたい)に示した発明の好ましい実施形態は、すべての
マスタおよびすべてのスレーブに接続され、したがっ
て、システム要求およびデータ・トラフィックから完全
に見える中央コントローラを有する。代替実施形態で
は、分散コントローラが使用され、その場合、可視性を
維持することが望ましく、ある種の設計では、最大容量
待ち行列サイズが必要になる。
【0031】図1Aは本発明によるシステムのより汎用
的なブロック図を示す。この場合、複数のマスタがある
(3つの例示的なマスタM1ないしM3を図示した)。
これらのマスタは、ある種の状況ではスレーブとして働
くことができる。たとえば、M1がプロセッサであり、
M3が入出力コントローラである場合、そのM3は多く
の場合、後述の初期設定手順の場合と同様に、M1のス
レーブとして働く。一方、DMA(直接メモリ・アクセ
ス)動作時には、入出力コントローラM3は、図1Aで
M1...M2として表された1つないし多数のメモリ
のうちのどれかなどのメモリ装置のマスタとして働く。
【0032】スレーブ装置S1...S2(1つでも、
あるいは複数でも、あるいは多数でもよい)も設けら
れ、マスタ、メモリ、スレーブは、図1でシステム・コ
ントローラ70がマスタおよびスレーブに結合されるの
と同様にシステム・コントローラ75を介して結合され
る。SC75は、図1のデータ経路クロスバー90の場
合と同様に、データ経路制御バス77を介してデータ経
路クロスバー(または相互接続)92に結合される。制
御バス77は通常、システム・バスやデータ・バスより
も幅が狭く、たとえば、出願人のシステムの好ましい実
施形態では、データ経路の幅は72ビットまたは144
ビットであるが、SCデータ経路制御バスの幅は8ビッ
ト程度でよい。
【0033】前記で指摘したように、SC75は、すべ
てのマスタ、スレーブ、メモリに対して完全な可視性を
有する。システム・コントローラは、データ経路上に存
在する必要はないが、データ経路を制御し、かつ見るこ
とができるようにすべきである。
【0034】図1A中のSC、マスタ、メモリ、スレー
ブは、図のアドレス/制御(A/ctrl)線によって
相互接続される。アドレス/制御線は、固有の(専用二
地点間リンク)アドレス/制御線であっても、あるいは
バス接続することもできる。また、データをバス接続す
ることも、あるいはスイッチ接続することもできる。ア
ドレス/制御およびデータ線/バスは、共用アドレス/
データ・バスを設けることなどによって同じリンクを共
用することができる。
【0035】ブートPROM94はバスによって入出力
コントローラM3に接続される。入出力コントローラ
は、始動時にブートPROMを読み取り、システムを従
来の方法で初期設定(たとえば、CPU、レジスタなど
を初期設定)し、本発明の待ち行列、レジスタ、カウン
タを初期設定する。初期設定手順については下記に図5
に関して詳しく説明する。
【0036】図2は、特定の実施形態中の相互接続モジ
ュール100を示す。この場合、2つのマスタ・インタ
フェース(または「マスタ」)110および120、単
一のシステム・コントローラ(SC)130、2つのス
レーブ・インタフェース(または「スレーブ」)140
および150、データ経路クロスバー155が使用され
る。原則的に、任意の数のマスタおよびスレーブが存在
することができる。マスタは、前述のインタフェースの
うちのどれかでも、あるいは一般的に、トランザクショ
ン要求を発行することができる任意の装置、またはエン
ティティでもよい。
【0037】各スレーブ140および150は、トラン
ザクション要求を受信するスレーブ待ち行列(それぞれ
160、170)を含む。これらのスレーブ待ち行列の
最大サイズはそれぞれ、ポートIDレジスタ180およ
び190中の値によって表される。
【0038】マスタ110および120はデータ待ち行
列またはバッファ115および125を含み、スレーブ
140および150はデータ待ち行列またはバッファ1
85および195を含む。データ待ち行列またはバッフ
ァ185および195の機能については、下記の図7お
よび図8に関して詳しく説明する。スレーブ書込みデー
タ待ち行列185および195の最大サイズもそれぞ
れ、ポートIDレジスタ180および190中の値によ
って表される。要求待ち行列項目(たとえば100)と
書込みデータ待ち行列中のデータ・バッファ(たとえば
185)とが1対1の関係で対応し、書込みデータ待ち
行列がパケット全体を保持するために最大サイズを有す
る(すなわち、予想される最大のパケット・サイズを保
持できるサイズを有する)特殊なケースでは、180中
の待ち行列サイズは単一の数で表すことができる。
【0039】図2で、スレーブ140および150は、
前記で図1でスレーブ80に対して説明したスレーブ装
置のうちのどれでもよく、特に、スレーブ140および
150は任意の数のメモリ・スレーブ装置または非メモ
リ・スレーブ装置を表すことができる。
【0040】初期設定動作 初期設定時に実行される基本ステップには下記のことが
含まれる。 (1)システムに結合されたすべてのスレーブのそれぞ
れの受信待ち行列のサイズを決定する。 (2)システム・コントローラ内のレジスタにスレーブ
受信待ち行列のサイズを記憶する。 (3)システム・コントローラの受信待ち行列のサイズ
を決定する。 (4)マスタ中の所定のレジスタにシステム・コントロ
ーラ受信待ち行列のサイズを記憶する。
【0041】したがって、システム初期設定時に、初期
設定ソフトウェアは、各スレーブ中の要求待ち行列およ
び下記データ待ち行列用のサイズ・フィールドの内容を
読み取り、次いで、SC130の構成(config)
レジスタ200内部の対応するフィールドにこれらの値
をコピーする。一実施形態では、IDレジスタ170お
よび180中の値(スレーブ待ち行列サイズを表す)
は、SC130の構成(「config」)レジスタ2
00中の別々のフィールドに記憶される。また、SCI
Dレジスタ255および265の値(SC待ち行列サイ
ズを表す)はそれぞれ、マスタ・インタフェース110
および120のconfigレジスタ270および28
0に記憶される。
【0042】また、configレジスタ200は、所
与のSCで実施される各UPAポートごとの別々の構成
レジスタと交換することができる。この場合、各スレー
ブ140および150ごとに1つずつ2つの別々のco
nfigレジスタがある。
【0043】マスタ110および120はそれぞれ、S
C130との各マスタ・インタフェースから得たトラン
ザクション要求を待機させるために使用されるトランザ
クション要求出力待ち行列290および300も含む。
各マスタ110および120は、後述のように、未処理
のトランザクション要求の数を追跡するために使用され
るカウンタ(310および320)を有する。
【0044】SC130は、出力待ち行列210および
220と、それぞれに結合されたカウンタ230および
240を備える。これらの動作については下記で説明す
る。
【0045】SC130は、各マスタごとのSC命令
(またはトランザクション要求)待ち行列(SCIQ)
も含み、したがってこの場合、2つのSCIQ250お
よび260がある。各SCIQには、結合されたSCI
Qの最大サイズを表す値を含むSCIDレジスタ、すな
わちレジスタ255および265がそれぞれ結合されて
いる。
【0046】SCの動作を実施する回路は、図2ではS
C論理モジュール245によって示されており、必要な
機能を実行する従来型のハード配線論理機構またはソフ
トウェア論理機構、あるいはその両方を含むことができ
る。たとえば、本発明で使用されるトランザクション要
求の処理、待ち行列の制御、数値の比較およびカウンテ
ィングなどを実行するASICを設けることができる。
汎用プロセッサを使用し、本明細書で論じる機能を実行
するように(結合されている従来型メモリ、たとえばR
OMやRAMに記憶されたプログラム命令などによっ
て)構成することもできる。
【0047】システム・コントローラでこれらの機能を
実行するために標準ハードウェアおよびソフトウェアの
様々な組合せが可能であり、同じことが、スレーブ装置
で実行される機能(スレーブ論理モジュール142およ
び152参照)およびマスタ装置で実行される機能(マ
スタ論理モジュール112および122参照)にも当て
はまる。この場合、論理モジュールは、前述の本発明の
機能を実行するために必要なすべての回路、プログラミ
ング、メモリ、インテリジェンスを表す。本発明の機能
を実行するようにハードウェア及びソフトウェアを組み
立てることは、本発明の教示が与えられた場合、当業者
なら容易に行うことができる(マスタ装置がプロセッサ
である場合、もちろん、本発明を実施する論理機構は主
として、プロセッサ自体と、それが実行する命令とで構
成することができる)。これらの論理モジュールの特定
の実施形態と、その実施形態がソフトウェアまたはハー
ドウェアによって表される範囲は、かなり様々であり、
したがって、図2ではブロック形でのみ示されている。
【0048】次に、(アーキテクチャに関する)図1A
および図2ならびに(初期設定シーケンスのフロー制御
に関する)図7ないし図8に関して初期設定シーケンス
を説明する。初期設定シーケンス用の命令は、非揮発性
メモリ、この実施形態ではブートPROM94に記憶さ
れる。プロセッサM1は、ブートPROM94への固定
アドレスを有し、SC75へのアドレス/制御線A/c
trl−1を介して読取り要求によってブートPROM
94にアクセスする。SCは、要求をデータ経路制御線
またはバス96(たとえば、8ビット・バス)を介して
データ経路クロスバー92へ送信し、データ経路クロス
バー92は入出力コントローラM3にアクセスする。し
たがって、入出力コントローラはこの動作では、プロセ
ッサM1のスレーブとして働く。
【0049】話を明確にするために、本発明の説明の全
体にわたって、分割されたアドレスおよびデータ・バス
が仮定され図示されていることに留意されたい。しか
し、本発明は、共用アドレス/データ・バスを使用する
システムにも同様に適用することができる。
【0050】入出力コントローラM3は、ブートPRO
M94にアクセスして初期設定シーケンス用のコードを
読み取り、このコードを線A/ctrl−3を介してS
C75へ送信する。SC75はこのコードをプロセッサ
M1へ送信する。
【0051】図1Aで、SC75、マスタM1ないしM
3、スレーブS1ないしS2、メモリMem1ないしM
em2は、図2に示したように、configレジス
タ、カウンタ、SCIDレジスタ、IDレジスタ、マス
タ待ち行列、SCIQ、スレーブ待ち行列を含む。しか
し、話を明確にするために、これらの要素は図1Aには
示されていない。
【0052】プロセッサM3が初期設定シーケンス命令
をブートPROM94から検索した後、その命令が実行
される。第1の動作は、メモリおよびスレーブのIDレ
ジスタを読み取ることである。これらのIDレジスタ
は、前記で図2に関して説明したように、それぞれのス
レーブの命令待ち行列および書込みデータ待ち行列の値
を含む。この読取り動作のために使用されるフロー制御
シーケンスは、下記で図7の「スレーブ読取りフロー制
御」に関して説明するシーケンスに従い、IDレジスタ
から得たデータはデータ・バス(またはデータ経路)7
15を介して検索される。
【0053】IDレジスタ値は、システム・コントロー
ラ(図1A中の75、図2中の130)のconfig
レジスタ(configレジスタ200など)に書き込
まれる。前述のように、1スレーブ当たり1つのcon
figレジスタがあり、あるいは各スレーブごとのco
nfigレジスタ中の少なくとも1つのフィールドがあ
る。この書込み動作に関して使用されるフロー・シーケ
ンスは、下記で図8に関して論ずるとおりである。この
ためにシステム用の入出力コントローラが使用される。
したがって、図8で、この動作に関してスレーブ710
が入出力コントローラであると仮定すると、マスタ(こ
の場合はプロセッサ)700は、SC720に各スレー
ブのIDレジスタ値をそれ自体のconfigレジスタ
に書き込ませる。各ケースで、それぞれのIDレジスタ
値はプロセッサ(図8中のマスタ700または図1A中
のマスタM1)のバッファに記憶され、この値は、シス
テム・コントローラに渡され、次いで入出力コントロー
ラ(図8中のスレーブ710または図1A中のマスタ/
スレーブM3)に渡される。入出力コントローラは次い
で、このために設けられたデータ経路(図8中のデータ
・バス715)を介してこの値をシステム・コントロー
ラに書き直す。
【0054】初期設定手順の次のステップは、システム
・コントローラ(たとえば、図8に示したSCIQ0お
よび1、または図2に示したSCIQ250および26
0)の受信待ち行列のサイズを読み取ることである。受
信待ち行列サイズはSCIDレジスタ(図2に示したレ
ジスタ255および265を参照されたい)に記憶され
る。この読取り動作は、システムの入出力コントローラ
を使用して実行され、その結果、マスタ/プロセッサは
SC受信待ち行列値を、バッファまたは事前に割り当て
られたレジスタに記憶する。
【0055】最後に、これらのSCIQサイズはマスタ
configレジスタ(図2中の270や280など)
に書き込まれる。システムが単一プロセッサ・システム
である場合、プロセッサはSCID値をそれ自体のco
nfigレジスタと、マスタとして働くことができる他
の装置のconfigレジスタに書き込む。マルチプロ
セッサ・システムの場合、1つのプロセッサがマスタと
して働き、SCID値をそれ自体のconfigレジス
タおよび他のプロセッサのconfigレジスタに書き
込む。
【0056】フロー制御の一般的な動作 下記に、本発明のトランザクション要求フロー制御の一
般的な説明を与え、次いで、特定のタイプのトランザク
ション要求の初期設定シーケンスおよびフロー制御に関
する詳細を含む、本発明の好ましい実施形態のより具体
的な説明を与える。
【0057】SC130中のconfigレジスタ20
0およびマスタ中のconfigレジスタ270および
280が初期設定された後、システム100の通常の動
作を開始することができる。動作時には、SCは、スレ
ーブIDレジスタ180および190のそれぞれの値の
コピーをconfigレジスタ200に維持し、したが
って、各スレーブ・インタフェースがそのスレーブ要求
待ち行列(160または170)内で処理できるトラン
ザクション要求の最大数と、スレーブ記憶データ待ち行
列(185または195)に保持できるデータの最大量
を「知る」。所与の時間には、カウンタ230および2
40は未処理トランザクション要求の数を対応するスレ
ーブ要求待ち行列に記憶し、未処理記憶データのサイズ
をスレーブ記憶データ待ち行列に記憶する。未発行のト
ランザクション要求は、ある種の状況では、スレーブ1
40および150のために出力待ち行列210および2
20に記憶することができる。出力待ち行列210およ
び220は、任意の大きさでよく、具体的にはSCIQ
250および260よりも大きくてよい。他の状況で
は、要求は対応するSCIQで待機する。
【0058】マスタ、たとえばマスタ・インタフェース
110は、発行すべきトランザクション要求を有すると
き、まずカウンタ310中の値をconfigレジスタ
720中の値と比較する。カウンタ値がconfigレ
ジスタ値よりも小さい場合、要求を発行することができ
る。要求は、マスタの出力待ち行列290からSCIQ
250へ送信され、カウンタ310は1だけ増分され
る。
【0059】SC130は次いで、2つのスレーブ14
0および150のうちのどちら宛にトランザクション要
求を発行するかを判定し、その待ち行列用のカウンタを
検査する。たとえば、スレーブ140がトランザクショ
ン要求の宛先である場合、SC130はカウンタ210
を検査し、そこに記憶されている値を、IDレジスタ1
80に対応するconfigレジスタ200中の値と比
較する。カウンタ230値が、configレジスタに
記憶されている値よりも小さい場合、SC130はトラ
ンザクション要求を発行し、カウンタ230を増分す
る。そうでない場合、トランザクション要求は出力待ち
行列210に維持される(同じマスタからの異なる要求
に関するトランザクションの順序付け制約に関係するあ
る種のトランザクションでは、要求をSCIQ250に
残すことが望ましいことがある)。
【0060】この例でトランザクション要求が発行され
ると仮定すると、SC130はこのために、(トランザ
クション、たとえばデータの転送が完了したときに)マ
スタ110へ信号を送信し、(応答が送信されたとき
に)入力待ち行列250からトランザクション要求を除
去する。したがって、マスタ110はカウンタ310を
減分し、それによって、他の未処理トランザクション要
求を発行できるようになる。カウンタ310が最大値に
なった場合(SCIQ250が満杯になったことを示
す)、カウンタ310を減分すると、単一の追加トラン
ザクション要求をマスタ110からSC130へ送る余
裕がもたらされる。カウンタ310が最大値に達してい
ない場合、カウンタ310を減分すると、単に、マスタ
・インタフェース110が利用できるトランザクション
要求の数に1が追加される。
【0061】出力待ち行列210および220は、サイ
ズが任意であり(具体的には、必要に応じてSCIQ2
50および260ならびにスレーブ入力待ち行列160
および170よりもずっと大きくてよい)、本発明の動
作にとって好ましいが、必要ではない。2つのスレーブ
に別々の出力待ち行列(スレーブ140用に待ち行列2
10およびスレーブ150用に待ち行列220)を維持
しない場合、あるいはマスタに関する順序付け規約のた
めに待ち行列210も待ち行列220も使用できない場
合、待ち行列250および260に記憶されている順序
要求は、待ち行列からクリアされる前に、それぞれの宛
先スレーブが順序要求を受け入れられるようになるまで
待機しなければならない。
【0062】システム中のそのような順序付け制約はグ
ローバル順序付け要件でよい。すなわち、特定のシステ
ムでは、マスタ110からのスレーブ150宛の次のト
ランザクションが処理できるようになる前に、マスタ1
10からの待ち行列210中の(スレーブ140宛の)
未処理のトランザクションを処理する必要がある。
【0063】そのような順序付け要件を除いて、あるい
は、SCIQ250および260中の未処理のトランザ
クションがそれぞれの異なるマスタからのものであると
仮定すると、これらの待ち行列250および260はど
ちらも、SC出力待ち行列210および220を介して
スレーブ140および150に対する要求を放出するこ
とができ、そのため、スループットを増大することがで
きる。たとえば、SCIQ260中のスレーブ140要
求は、スレーブ140が満杯である(すなわち、その入
力待ち行列170が満杯である)場合でもSC出力待ち
行列210へ送信することができ、次いで、SCIW2
60から次のスレーブ150要求をスレーブ150へ送
信することができる。SC出力待ち行列が形成されてい
ない場合、スレーブ150要求は、発行される前にスレ
ーブ140がクリアされるのを待つ必要がある。したが
って、SC出力待ち行列は、2つのスレーブ・インタフ
ェースの真に独立した動作を可能にする。
【0064】SCIQ250および260は、マスタ・
インタフェースおよびそのそれぞれのカウンタの場合と
同様に互いに独立している。したがって、SC130
は、各マスタからの所定数の要求を処理するように構成
され、各マスタから受け入れられる要求の数は他のマス
タから受け入れられる数とは独立している。すなわち、
SCIQのサイズは互いに独立している。また、個別の
マスタは、複数の要求をそのマスタからの他の要求とは
独立に行うことができ、したがって、要求待ち行列29
0(または300)および対応するSCIQ250(ま
たは260)は各ケースで、複数の待ち行列に分割する
ことができる。
【0065】選択された任意の数のマスタおよびスレー
ブに対して、任意のマスタが、SCを介して任意のスレ
ーブとのトランザクションを要求することができる。S
Cは通常、所定の最大数のマスタ・インタフェースおよ
びスレーブ・インタフェースを有する所与のシステム向
けに構成されたASICである。これは、(システム全
体と比べて)比較的簡単で廉価なASICなので、設計
者が、それぞれ、異なるシステムの特定のニーズに調整
された、それぞれの異なるSCをそのシステム向けに低
コストで容易に構成できるようにすることによって、融
通性および経済性に優れている。
【0066】本発明を実施する論理機構は、図1に示し
たように、SC ASICならびにマスタ・インタフェ
ースおよびスレーブ・インタフェースのハードウェア/
ファームウェア論理機構と、システムのメモリ85に記
憶されているプログラム命令によって形成される。代替
実施形態は、たとえば、本発明の好ましい実施形態のマ
スタ・インタフェース、システム・コントローラ、スレ
ーブ・インタフェースによって実行されるステップを実
行するメモリおよび汎用プロセッサを設けることによっ
て、この論理機構を他の方法で実施することができる。
【0067】システム・コントローラの動作 次に図3ないし図4を参照すると分かるように、初期設
定時には(ボックス/方法ステップ400)、すべての
UPAポートIDレジスタ(たとえば、図2中のスレー
ブIDレジスタ180および190)が読み取られ、そ
の内容がSCconfigレジスタ200(または、前
述の別々の専用configレジスタ)中の適当なフィ
ールドに書き込まれる。UPA(スレーブ)ポートをポ
ートIDレジスタではなくPROMと共に構成したとき
は、単一のSC configレジスタ実施形態中の別
々のフィールドが使用される可能性が高い。本出願で
は、configレジスタのフィールドに言及するとき
はいつでも、別々のconfigレジスタを意味するも
のとみなすこともでき、逆もまた同様である。
【0068】ボックス410で、マスタ・レジスタが初
期設定される。この場合、SCIDレジスタ255およ
び265が読み取られ、(それらのレジスタに記憶され
ている)SCIQサイズがそれぞれのconfigレジ
スタ270および280に書き込まれる。
【0069】configレジスタ200のフィールド
およびconfigレジスタ270ないし280は、始
動時に(それぞれ、対応するレジスタ180ないし19
0および250ないし260を読み取れるために)少な
くとも1つのトランザクションを個別に許可しなければ
ならないので、まず、始動を「ブートストラップ」する
ために値「1」に初期設定される。したがって、読取り
IDレジスタ・トランザクション要求が発行され、カウ
ンタが減分されたときに、要求が許可される(conf
igレジスタがすべて0である場合、トランザクション
は許可されない)。それぞれのIDレジスタが読み取ら
れたとき、configレジスタ値は正しい値、すなわ
ち、レジスタに関連するIDレジスタの実際のサイズと
交換される。
【0070】ボックス420で、1つのマスタ、たとえ
ばマスタ120に未処理の新しい要求があるかどうかが
判定される。ない場合、手順はボックス422で停止す
る(しかし、新しいトランザクション要求が行われたと
きにはいつでも、ボックス420で再開することができ
る)。
【0071】ボックス424で、読取り動作を求める未
処理のトランザクション要求がある場合、システムは、
マスタ・インタフェース用のマスタ読取りデータ・バッ
ファ(下記でさらに詳しく論じる)のデータ受け入れ準
備が完了したかどうか、すなわち、マスタ読取りデータ
・バッファに、読み取るべきデータを受信するのに十分
な余裕があるかどうかを判定する。そうでない場合、シ
ステムはボックス426で、マスタ読取りデータ・バッ
ファの準備が完了するまで待機する。書込み動作が、読
取り動作に関する待機周期中に停止する必要はなく、独
立に進行でき、逆もまた同様であることに留意された
い。
【0072】書込み動作の場合、システムは、スレーブ
・インタフェースまたはメモリを介して1つのスレーブ
に書き込むべきデータが実際にマスタ書込みバッファに
書き込まれる(送信される)準備ができているかどうか
を判定する。そうでない場合、再びボックス426で、
データ項目の書込み準備が整うまで待機周期が実行され
る。
【0073】マスタ・インタフェースに関するかぎり、
読取り動作または書込み動作の準備が完了すると、ボッ
クス430で、システムは、マスタ・カウンタ(この例
ではカウンタ320)の値が、configレジスタに
記憶されている値、すなわち(最初にSCIDレジスタ
265によって提供された)関連するSCIQ260の
サイズに等しいかどうかを試験する。(マスタ・カウン
タは、configレジスタに記憶されている値を超え
ることができてはならないが、もしそうなった場合、比
較試験で「=」ではなく「≧」を使用することによって
このことが考慮される。)カウンタが、総SCIQ26
0サイズに等しい要求を発行していない場合、この試験
は偽になり、この方法はボックス440へ進む。
【0074】カウンタ値が最大許容値に達した場合、ト
ランザクション要求はSCに渡されず、この方法はボッ
クス500へ進む。この場合、マスタ・インタフェース
中の未処理のトランザクション要求は、発行できるよう
になる前に、トランザクション完了信号がSCから受信
されるまで待機する必要がある(ボックス510)。好
ましい実施形態では、このトランザクション完了信号は
S_REPLY信号の形をとる。この信号については、
下記で図5ないし図8に関して詳しく論じる。
【0075】マスタ・インタフェース110は、このト
ランザクション完了信号を受信すると(ボックス50
0)、そのSCIQに関連するカウンタを減分し(ボッ
クス530)、ボックス440のステップへ進む。
【0076】ボックス440で、カウンタ320が1だ
け増分され、ボックス450で、トランザクション要求
がマスタによってSCへ送信される。したがってこの場
合、カウンタ320は、1つの(または1つの追加)ト
ランザクション要求が送信されたことを反映する。
【0077】ボックス420ないし450および500
ないし520がすべて、マスタまたはマスタ・インタフ
ェース110および120などのマスタ・インタフェー
スによって、あるいはマスタまたはマスタ・インタフェ
ースにおいて実行される方法ステップに関係するもので
あることが理解されよう。下記で、ボックス452ない
し458および462ないし490(すなわち、図4の
ほぼすべて)が、システム・コントローラ(SC)にお
いて、あるいはSCによって実行される方法ステップに
関係するものであることが分かる。ボックス460およ
び495は、必要に応じてデータを読み取り書き込む方
法ステップに関係するものである。
【0078】SCは、要求受信待ち行列(SCIQ25
0および260など)内に未処理のトランザクション要
求があるかどうかを判定するインテリジェンスまたは論
理機構、あるいはその両方(ハードウェアまたはソフト
ウェア、あるいはその両方)を備える。未処理のトラン
ザクション要求がある場合、ボックス452で、待ち行
列の1番上にあるトランザクション要求が調べられ、ス
レーブが要求の受信側とされているかどうかが判定され
る。この待ち行列の制御および受信側の判定は、従来の
方法で実施される。
【0079】ボックス454(図4)で、この方法は未
処理の動作がメモリ動作であるか、それとも非メモリ・
スレーブ動作であるかを判定する。メモリ動作である場
合、ボックス456で、この方法は、グローバル順序付
け制約またはその他の順序付け制約が与えられた場合に
受信側メモリが妥当であるかどうかを判定する。
【0080】ある種のそのような可能な制約は、所与の
マスタによるメモリ要求またはスレーブ要求の処理を、
同じマスタによる他のメモリに対する要求またはスレー
ブに対する要求が解決されるまで遅延させることに関係
するものである。すなわち、所与のマスタ、たとえばマ
スタ1から、スレーブ1に対する一連のトランザクショ
ン要求を発行することができ、次いでスレーブ2に対す
るトランザクション要求を発行することができる。本発
明のシステムの好ましい実施形態では、(マスタ1から
の)すべての未処理のスレーブ1要求は、新しいスレー
ブ2要求が実行される前に完了する。これによって、新
しいスレーブ2トランザクションが依存するスレーブ1
動作が行われる。したがって、それぞれの異なるスレー
ブに発行された要求に対する所与のマスタからのトラン
ザクション要求の強力なグローバル順序付けが維持され
る。これは、後述のスレーブ2要求を発行する前に、S
_REPと呼ばれるスレーブ1からの信号を待つこと
を、マスタに要求することによって行われる。
【0081】他のシステムでは、マスタ1が、スレーブ
1からのS_REPLY(トランザクション完了)信号
を待たずに複数の要求を自由にスレーブ1に発行できる
ようにすることが好ましいことがある。そのようなシス
テムでも、所与のメモリまたは非メモリ・スレーブが、
ある種のトランザクション、すなわち、所定のトランザ
クション・タイプのトランザクション、または特定のマ
スタからのトランザクション、あるいはその両方を受け
入れることを一時的に拒否し、あるいは何らかの他の理
由である種のトランザクションを受け入れることを一時
的に拒否することができる、トランザクションに関する
順序付けまたはその他の制約が存在することができる。
【0082】このような理由で、受信側メモリがこの時
点で妥当なものではなく、あるいは利用できない場合、
ボックス458で、この方法は、メモリが有効になり利
用可能になるまで待機する。
【0083】受信側メモリが有効である場合、ボックス
460で、下記でさらに詳しく説明するように、データ
が必要に応じてメモリから読み取られ、あるいはメモリ
に書き込まれ、S_REPLY(トランザクション完
了)信号が送信される。
【0084】未処理のトランザクションが非メモリ・ス
レーブ・トランザクションである場合、ボックス462
で、この方法は、どのスレーブが要求を受信すべきかを
判定する。ボックス464で、前述の順序付け制約また
はその他の制約が与えられた場合に受信側スレーブがこ
の時点で有効な受信側であるかどうかが判定される。そ
うでない場合、ボックス466で、この方法はスレーブ
が有効になるまで待機する。
【0085】スレーブがこのトランザクションに関して
有効になった後、トランザクション要求が対応するSC
出力待ち行列(SCOQ)210または220へ移され
る。
【0086】未処理のトランザクションがスレーブ書込
みトランザクションである場合、この時点で(ボックス
470)、SCがデータ経路制御信号を介してデータ経
路155をイネーブルし、次いで、(トランザクション
が未処理の)マスタがデータをデータ経路を通して適当
なスレーブ入力待ち行列(185または195)へ移動
できるようになる。SCは次いで、そのトランザクショ
ン完了(S_REPLY)信号をマスタとスレーブの両
方へ送信する(下記の図8に関する議論を参照された
い)。
【0087】次いでボックス475で、SC130は、
受信側スレーブ用のカウンタ、たとえば、スレーブ15
0が未処理のトランザクション要求の宛先である場合は
カウンタ240を検査する。カウンタがconfigレ
ジスタ中の値(すなわち、初期設定時に読み取られた、
IDレジスタ180または190によって示されるサイ
ズ)以上である場合、要求はまだ許可されない。この場
合、宛先スレーブ待ち行列中の空き線が開放されトラン
ザクション要求を受信するまで、ステップ530ないし
550(基本的にステップ500ないし520と同じ)
が実行される。
【0088】適当なカウンタ(230または240)が
最大許容値に達していない場合は、1だけ増分され(ボ
ックス480)、トランザクション要求が受信側スレー
ブへ送信される(ボックス490)。
【0089】未処理のトランザクションがスレーブ読取
り要求である場合、この時点で(ボックス495)、読
取り動作が開始される。読取り動作が完了すると、スレ
ーブがP_REPLYをSCへ送信し、SCが要求側マ
スタと受信側スレーブの両方へS_REPLYを送信す
る。スレーブ読取り要求のトランザクション及びデータ
・フローに関する詳細については、下記の図7に関する
議論を参照されたい。
【0090】この時点で、この方法は図3中のボックス
420へ進み、すなわち、他のトランザクション要求が
行われているかどうかが判定される。
【0091】図3ないし図4のフローチャートは、それ
ぞれの異なるトランザクションに関する厳密に線形のシ
ーケンスを示すとは限らない(ただし、所与のトランザ
クションの場合、フローは線形である)。たとえば、好
ましい実施形態では、SCによってスレーブ・インタフ
ェースに他のトランザクション要求が発行されたときで
も、1つのマスタ・インタフェースからトランザクショ
ン要求を発行することができる。他のタイプおよび程度
の並列動作を実施することができる。
【0092】フロー制御 図5ないし図8は、本発明では4つの異なるタイプのト
ランザクションのそれぞれの場合にフロー制御がどのよ
うに行われるかを示す。 図5:メモリからの読取り動作(すなわち、スレーブ・
インタフェースがメモリ・インタフェースである場合) 図6:メモリへの書込み動作 図7:メモリ以外の装置からの読取り動作 図8:メモリ以外の装置からの書込み動作
【0093】キャッシュ読取りトランザクション(スヌ
ープバスを使用するトランザクションであり、本発明で
は重要ではない)など他の動作も可能であるが、本発明
の特徴を示すには前記の動作で十分である。
【0094】図5および図6では、話を簡単にするため
に、図2に示した待ち行列およびレジスタが図示されて
いないが、マスタ・インタフェース(UPAポート)と
システム・コントローラの両方に、図2とほぼ同じ構成
で含められているものと理解すべきである。したがっ
て、前記で図2および図3に関して説明したトランザク
ション制御が、図5−図6および図7−図8に関しても
行われる。
【0095】しかし、図5および図6に示したメモリ・
バンクが、図2に示したスレーブ待ち行列を含む必要は
なく、また、図5中のシステム・コントローラが、図2
と同様なconfigレジスタおよびカウンを含む必要
はない。その代わり、読取りトランザクション要求装置
または書込みトランザクション要求装置とメモリとの間
のフロー制御など従来型のフロー制御を、実施形態特有
のものとして使用することができる。読取り要求および
書込み要求が適切にメモリ・バンクに割り当てられるよ
うにする多くの標準設計は妥当である。この例では、図
3および図4のステップ(ボックス)470ないし49
0および530ないし550が、メモリとの間の読取り
トランザクションおよび書込みトランザクションの制御
用の等価ステップと置換される。
【0096】図5には、相互接続モジュール600の特
定の実施形態が図示されている。この場合、メモリ・バ
ンク610...620はスレーブ装置であり、合計で
m個のメモリ・バンクが下付き文字(0)...(m−
1)によって示されている。同様に、複数のマスタ・イ
ンタフェース(UPAポート)630...640があ
り、本発明の例では、32個のマスタ・インタフェース
が下付き文字0...31によって示されている。デー
タ経路クロスバー625は、メモリ・バンクを従来の方
法でUPAポートに結合する。
【0097】一般に、この操作では、トランザクション
要求の受信の順序はスレープ・インタフェースによる回
答の順序となる。
【0098】一般に、図5ないし図8では、各図ごとの
必要に応じて、事象の順序が、円で囲まれた事象参照符
号1、2、3、4によって示されている(添付の矢印
は、データ・フローまたは信号フローの方向を示す)。
図5および図6中のメモリが、図2中のスレーブのスレ
ーブ待ち行列およびIDレジスタを含まないことを除い
て、図5ないし図8に関するデータ・フローの下記の説
明は、トランザクション要求制御(図3ないし図4)に
関して説明したステップを含むものと理解すべきであ
る。したがって、各要求が発行されるたびに、適当なカ
ウンタの検査、増分、減分が実行され、要求が適当な時
間に送信されることが決定される。それぞれの待ち行列
も必要に応じて処理される。
【0099】メモリ読取り要求:図5 この読取り要求の例では、データからメモリから送られ
て来て、たとえばキャッシュからは送られて来ないもの
と仮定する。図5に示したスヌープバス上のスヌープ動
作はこの場合は検討しない。
【0100】事象1:ポスト630などのUPAマスタ
・ポートにおいて、メモリからの読取りトランザクショ
ンの準備が完了し、マスタ・カウンタが許容最大値に達
していないとき(図3−図4中のボックス430を参照
されたい)、読取りトランザクションはUPA_Add
ressbus上でUPAポート630からシステム・
コントローラ650に発行される。このことは、図5中
のUPA_Addressbus660に沿った事象1
(P_REQ)によって示され、情報の方向、すなわち
ポートからSCは、矢印の方向によって示されている。
【0101】事象2:メモリ・サイクル[すなわちRA
S(読取りアドレス・ストローブ)/CAS(列アドレ
ス・ストローブ)要求発行]がメモリ制御バス670を
介してメモリ・バンク610...620に発行され
る。バス670に沿ったベント2(「RAS/CA
S」)を参照されたい。
【0102】事象3:データ経路がデータ経路制御バス
680に沿った信号によってスケジューリングされ、そ
れに応じて、データ項目が、メモリ・データバス690
およびUPAデータバス700を介してメモリからデー
タ経路クロスバー625へ転送される。これによって読
取り要求が行われる。
【0103】メモリ書込み要求:図6 図6は、図5と同じ回路を示すものであるが、フロー
は、読取り動作ではなく(非キャッシュ)書込み動作に
関するものなので異なる。事象1では、UPAアドレス
・バス660に沿って書込み要求が発行される。
【0104】事象2では、データ経路制御信号がバス6
80を介して送信され、データ経路クロスバー625が
イネーブルされる。データ経路がスケジューリングされ
た後、データを供給するために、SC650によってS
_REPLYもバス710を介してUPAポート630
へ送信され、データ項目がUPAポート630からデー
タ・バス700を介してデータ経路クロスバーへ送信さ
れる。この場合、データ項目は、メモリ・バンクへ転送
されることに備えてバッファされる。この点で、UPA
ポート中のカウンタが減分され、システム・コントロー
ラが他のトランザクション要求を使用できることを示
す。
【0105】事象3では、メモリ・バンクが、バス67
0を介してRAS/CAS信号を使用してイネーブルさ
れ、データ項目がバス690を介してメモリ・バンクへ
送信される。これによって書込み動作が完了する。
【0106】前記の方法では、書込みデータの準備が完
了するまで書込み要求が発行されることはない。たとえ
ば、データバス695が144ビット幅であるが、バス
690が288ビット幅である場合、データ語はクロス
バーにバッファされ、288ビット・ブロックとしてア
センブルされ、次いでメモリに書き込まれる。
【0107】スレーブ読取り要求:図7 図7は、メモリ以外のスレーブ装置に対する読取りシー
ケンスを示すものであり、図2に類似しているが、この
例の場合、単一のマスタ・インタフェース710および
単一のスレーブ・インタフェース720が使用され、シ
ステム・コントローラ720およびデータ経路クロスバ
ー730によって結合されている。
【0108】事象1は、読取り要求P_REQがUPA
アドレス・バス740上でSC720に発行されること
を示す。
【0109】事象2では、SC720がP_REQをバ
ス750でスレーブ・インタフェース710へ送信す
る。これを行うには、複数のスレーブ・インタフェース
がある場合、SCはまず、アドレスを復号して、P_R
EQが正しいスレーブ・インタフェースへ送信されるよ
うにしなければならない。事象2では、データ経路を介
してデータを移動する準備を行うようスレーブ・インタ
フェースが通知される。
【0110】データ項目の準備が完了すると、事象3が
発生し、すなわちP_REPLYがバス760を介して
スレーブ710からSC720へ送信される。
【0111】事象4では、マスタ・インタフェースにデ
ータを受信させる一連のステップが実行される。SC7
20は、データ経路730をスケジューリングし、S_
REPLYをバス770を介してマスタ・インタフェー
ス700に発行する。また、SCは、S_REPLYを
バス780上でスレーブ710に発行し、データの準備
ができたときに、このデータをスレーブのUPAデータ
バス790上でデータ経路およびデータバス800を介
してマスタ・インタフェース700へドライブする。
【0112】スレーブ書込み要求:図8 図8は、図7と同じ装置を示すが、非メモリ・スレーブ
・シーケンスからマスタ・インタフェースへの書込みシ
ーケンスを示すものである。このシーケンスでは、スレ
ーブ・インタフェース710のデータ待ち行列PREQ
_DQが十分な空間を有するまでデータを転送すること
はできない。
【0113】図7および図8では、トランザクション要
求カウンタ810とデータ要求カウンタ820が共にS
C720に示されている。これらはそれぞれ、PREQ
待ち行列およびPREQ_DQ待ち行列(スレーブ出力
データ待ち行列)がどれだけ充填されているかを判定す
るカウンタである。この2つの待ち行列のサイズが異な
る場合、それらに関連するカウンタ810および820
のサイズは異なる。この2つの待ち行列のサイズが同じ
である場合、SCで単一のカウンタを使用して両方の待
ち行列がどれだけ充填されているかを判定することがで
きる。
【0114】事象1:書込み動作の第1の事象は、P_
REQがマスタ・インタフェース700によってバス7
40を介してシステム・コントローラ720に発行され
ることである。
【0115】事象2:事象2では、SCはP_REQを
バス750を介してスレーブ・インタフェース710に
発行する。P_REQは、どのくらいの量のデータが書
き込まれるかをSCに通知するのに十分な語を含む。前
述のように、スレーブ・データ待ち行列カウンタ820
は、データ待ち行列PREQ_DQがどれだけ充填され
ているかを追跡するために使用される。PREQ_DQ
が過度に充填されている場合、書込みトランザクション
は待たなければならない。
【0116】データ待ち行列PREQ_DQは、1つの
語の幅でも(たとえば16ビット)、ブロックの幅(た
とえば64ビット)でもよい。したがって、現行のシス
テムで複数の転送サイズがサポートされる。可能な待ち
行列構成には、1要求当たり最大容量、または1要求当
たり最大容量のある部分、たとえば前述の64ビット例
および16ビット例が含まれる。
【0117】待ち行列PREQ_DQが十分に得られる
場合、書込み動作は進行することができる。さらに事象
2で、SCは、データ経路制御信号「DP ctrl」
によってデータ経路730をスケジューリングし、S_
REPLYをバス770を介してマスタ・インタフェー
スに発行してマスタ・インタフェースのデータ・バス8
00でデータをドライブする。また、SCはS_REP
LYをバス780を介して発行し、スレーブ・インタフ
ェース710にそのデータ・バス790を介してデータ
を受信するよう命令する。
【0118】マスタ・インタフェースがS_REPLY
を受信し、データがバス800を介してデータ経路クロ
スバー730へ転送された後、マスタ・インタフェース
に関するかぎりトランザクションは完了する。したがっ
て、この点で、スレーブ・インタフェースがまだデータ
を受信していない場合でも、マスタ・インタフェースは
他のトランザクションの準備を行う。
【0119】アドレス経路とデータ経路が独立している
ので、要求パケット(宛先アドレスを含む)および対応
するデータを任意の順序でスレーブ・ポートへ転送する
ことができる。すなわち、データは実際には、P_RE
Qがスレーブの待ち行列PREQに到着する前に入力待
ち行列PREQ_DQに到着する。こうなった場合、デ
ータはP_REQが到着するまで待つ必要があり、その
結果、スレーブはデータに関する宛先アドレスを判定す
ることができる。もちろん、最初にP_REQが到着し
て、2番目にデータが到着することもでき、その場合、
データはただちに、P_REQによって指定された宛先
に書き込むことができる。
【0120】事象3:スレーブは、要求されたデータを
データ待ち行列からクリアし、トランザクション要求を
入力待ち行列からクリアした後、他のトランザクション
の準備が完了したことを示すP_REPLYをバス76
0を介してSCに発行する。SCは、これに応じてカウ
ンタ810および820を減分する。トランザクション
はSCの観点からは完了し、すなわち、もはやSCが実
行する動作はない。
【0121】トランザクションの順序付け トランザクションとは、本明細書では、マスタ装置また
はモジュール(ハードウェア、またはソフトウェア、ま
たはその組合せ)による任意のタイプの要求である。こ
のようなトランザクションには、読取り応答および書込
み応答に接続しなければならない読取りデータ転送、書
込みデータ転送などが含まれる。すなわち、たとえば、
各書込み要求は論理的に書込みデータ(書き込むべきデ
ータ)にリンクされる。前述の説明では、データ転送の
順序付けが書込み要求の順序によって支配されるものと
仮定されているが、他の可能性も存在する。
【0122】たとえば、書込み要求と書込みデータとの
間のリンクは、各書込み要求およびそれに対応するデー
タにトークンを割り当てることによって得られる。次い
で、このトークンを使用して、所与の書込み要求が完了
したことがシステム・コントローラおよびプロセスに通
知される。すなわち、書込みデータがそのトークンを保
持し、トークンが受信されたとき、関連するトークンを
有する書込み要求が完了したことが分かる。そのような
システムは、関連するトークンを見つけるトークン一致
論理機構を必要とする。このトークン・システムは、マ
スタが要求するトランザクションに関して前記で説明し
たシステム・コントローラの動作に適用することがで
き、トランザクション要求と要求の完了との順序付け要
件をなくする。すなわち、読取りトランザクションおよ
び書込みトランザクションは、それらが発行された順序
以外の順序で実行することができる。
【0123】いずれの場合も、データ転送があるか、そ
れともないかにかかわらずに、各トランザクションごと
に、システム・コントローラによる対応する応答があ
る。一般に、様々なトランザクションに関する事象の順
序は下記のとおりである。スレーブからの読取り:読取
り要求-->スレーブ読取り応答-->読取りデータ転送
(任意選択) マスタからの書込み:書込み要求-->SC書込み応答--
>書込みデータ転送(任意選択) スレーブからの書込み:(書込み要求/書込みデータ転
送、どちらが先でもよい)-->書込みデータが使い尽く
されたときにスレーブ応答
【0124】したがって、本発明は、多数の異なる順序
付け方式に適応させることも、あるいは実際に、特定の
順序付けが必要とされないトークン・システムなどの方
式に適応させることもできる。
【図面の簡単な説明】
【図1】 本発明を組み込んだコンピュータ・システム
の好ましい実施形態のブロック図である。
【図2】 図1に示したシステムの一部の詳細な図であ
る。
【図3】 本発明の方法の汎用実施形態を示すフローチ
ャートである。
【図4】 本発明の方法の汎用実施形態を示すフローチ
ャートである。
【図5】 それぞれの異なるタイプのトランザクション
に関する本発明によるトランザクション・フロー制御を
示すブロック図である。
【図6】 それぞれの異なるタイプのトランザクション
に関する本発明によるトランザクション・フロー制御を
示すブロック図である。
【図7】 それぞれの異なるタイプのトランザクション
に関する本発明によるトランザクション・フロー制御を
示すブロック図である。
【図8】 それぞれの異なるタイプのトランザクション
に関する本発明によるトランザクション・フロー制御を
示すブロック図である。
【符号の説明】
10 システム 20 UPAモジュール 25 相互接続ネットワークまたはモジュール 30 プロセッサ 40 グラフィックス装置 50 入出力装置 60 UPAポート 70 システム相互接続コントローラ(SC) 75 システム・コントローラ 77 データ経路制御バス 80 スレーブ・インタフェース 85 従来型のメモリ装置 90 データ経路クロスバー 94 ブートPROM 95 標準入出力装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ザヒール・イーブラヒム アメリカ合衆国 94043 カリフォルニア 州・マウンテンビュー・ガルシア アヴェ ニュ・2550 (72)発明者 サトヤナラヤナ・ニシュタラ アメリカ合衆国 95014 カリフォルニア 州・クパチーノ・カントリー スプリング コート・11522 (72)発明者 ケヴィン・ビイ・ノーモイル アメリカ合衆国 95129 カリフォルニア 州・サン ホゼ・ボリナ ドライブ・4708 (72)発明者 レスリー・コーン アメリカ合衆国 94539 カリフォルニア 州・フレモント・ローズメア ドライブ・ 43967 (72)発明者 ルイス・エフ・コフィン,ザ サード アメリカ合衆国 95124 カリフォルニア 州・サン ホゼ・ワイン コーク ウェ イ・3444

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのマスタ装置を備えた少
    なくとも1つのマイクロプロセッサと、メイン・メモリ
    と、トランザクション要求を記憶するスレーブ受信待ち
    行列を有する少なくとも1つのスレーブ装置とを有する
    コンピュータ・システム中のトランザクション・フロー
    を制御する制御システムであって、 前記少なくとも1つのスレーブ装置による転送要求を待
    機させるのに使用できる位置の数を表す第1のレジスタ
    値を記憶する第1のレジスタと、 前記スレーブ受信待ち行列に記憶されているトランザク
    ション要求の数を所与の時間に表す第1のカウンタ値を
    記憶する第1のカウンタと、 前記少なくとも1つのマスタ装置に結合された相互接続
    受信待ち行列と、 前記第1のレジスタ、前記第1のカウンタ、前記スレー
    ブ受信待ち行列に結合され、前記第1のレジスタ値を前
    記カウンタ値と比較する比較論理機構を含み、前記カウ
    ンタ値が前記第1のレジスタ値よりも小さいときに前記
    トランザクション要求を前記相互接続受信待ち行列から
    前記スレーブ装置へ転送する第1の回路とを備えること
    を特徴とする制御システム。
  2. 【請求項2】 少なくとも1つのマスタ装置と、少なく
    とも1つのスレーブ装置と、これらのマスタ装置とスレ
    ーブ装置との間に接続されたシステム相互接続機構とを
    含み、そのシステム相互接続機構は前記各マスタ装置に
    結合された少なくとも1つの相互接続要求待ち行列を有
    し、前記各スレーブ装置はシステム相互接続機構に結合
    された少なくとも1つのスレーブ要求待ち行列を含むコ
    ンピュータ・システム中のトランザクション・フローを
    制御する方法であって、 (1)第1のトランザクション要求を前記第1のマスタ
    装置から前記第1のシステム相互接続機構へ転送するス
    テップと、 (2)前記第1のシステム相互接続機構の第1の相互接
    続受信待ち行列で第1のトランザクション要求を受信す
    るステップと、 (3)前記第1のトランザクション要求に関する受信側
    スレーブ装置を判定するステップと、 (4)受信側スレーブ装置の受信側スレーブ要求待ち行
    列を使用して前記第1のトランザクション要求を受け入
    れることができるかどうかを判定し、そうである場合、
    前記トランザクション要求を前記受信側スレーブ要求待
    ち行列へ転送するステップと、 (5)前記第1のトランザクション要求を前記受信側ス
    レーブ要求待ち行列で受信するステップと、 (6)前記第1のトランザクション要求を前記受信側ス
    レーブ装置によって実行するステップと、 (7)スレーブ装置によって、前記第1のトランザクシ
    ョン要求が実行されたことをシステム相互接続機構に通
    知するステップとを含むことを特徴とする方法。
  3. 【請求項3】 さらに、ステップ1の前に、前記第1の
    相互接続受信待ち行列が前記第1のトランザクション要
    求を受け入れることができるかどうかを前記第1のマス
    タ装置によって判定する追加ステップを含むことを特徴
    とする請求項2に記載の方法。
  4. 【請求項4】 さらに、 前記受信側スレーブ要求待ち行列が受信できるトランザ
    クションの総数を表す未処理要求値を記憶するステップ
    と、 受信側スレーブ要求待ち行列に存在するトランザクショ
    ン要求の数のカウントを維持するステップとを含み、 ステップ4が、前記カウントを前記未処理要求値と比較
    して、前記カウントが前記未処理要求値よりも小さい場
    合に受信側スレーブ要求待ち行列がトランザクション要
    求を受け入れることができると判定するステップを含む
    ことを特徴とする請求項2に記載の方法。
  5. 【請求項5】 ステップ1の前に、 システム中の各スレーブごとに前記スレーブ要求の待ち
    行列サイズを判定するステップと、 前記各待ち行列サイズを表す値を前記システム相互接続
    機構中の少なくとも1つのレジスタに記憶するステップ
    とを含むことを特徴とする請求項2に記載の方法。
  6. 【請求項6】 ステップ1の前に、 前記各相互接続要求待ち行列の待ち行列サイズを判定す
    るステップと、 前記各マスタ装置に結合された相互接続要求待ち行列の
    待ち行列サイズを表す値を前記各マスタ装置のレジスタ
    に記憶するステップとを含むことを特徴とする請求項2
    に記載の方法。
  7. 【請求項7】 ステップ1の前に、 (8)前記第1の相互接続要求待ち行列がトランザクシ
    ョン要求を受け入れることができるかどうかを判定し、
    そうである場合、トランザクション要求を前記システム
    相互接続機構へ転送するステップを含むことを特徴とす
    る請求項2に記載の方法。
  8. 【請求項8】 マスタ装置とスレーブ装置とを含むコン
    ピュータ・システム中のトランザクションのフローを制
    御する制御システムであって、 所定数のトランザクション要求を受信する前記スレーブ
    装置中のスレーブ受信待ち行列と、 前記マスタ装置からトランザクション要求を受信する受
    信待ち行列を含み、前記スレーブ受信待ち行列中の未処
    理要求のカウントを維持するカウンタを含むシステム相
    互接続機構と、 前記カウントが前記所定の最大数よりも小さいかどうか
    を判定する論理機構とを備えることを特徴とする制御シ
    ステム。
  9. 【請求項9】 少なくとも第1のマスタ装置と、第1の
    スレーブ装置と、第2のスレーブ装置とを含むコンピュ
    ータ・システム中のトランザクションのフローを制御す
    る制御システムであって、 前記第1のマスタ装置によって発行された複数のトラン
    ザクション要求を記憶するように構成された相互接続受
    信待ち行列と、 前記第1のスレーブ装置に結合され、前記第1のスレー
    ブ装置へ送られる第1の所定数の前記トランザクション
    要求を記憶するように構成された第1の出力待ち行列
    と、 第2の所定数の前記トランザクション要求を受信するよ
    うに構成された第1のスレーブ受信待ち行列と、 前記第2のスレーブ装置に結合され、前記第2のスレー
    ブ装置へ送られる第3の所定数の前記トランザクション
    要求を記憶するように構成された第2の出力待ち行列
    と、 第4の所定数の前記トランザクション要求を受信するよ
    うに構成された第2のスレーブ受信待ち行列と、 前記相互接続受信待ち行列に記憶されている各トランザ
    クション要求ごとに、第1および第2のスレーブ装置の
    うちのどちらが所期の受信側スレーブ装置であるかを判
    定し、そのトランザクション用の前記判定された受信側
    スレーブ装置に結合された出力待ち行列へ前記各トラン
    ザクション要求を送信するようになされた論理機構とを
    含むことを特徴とする制御システム。
  10. 【請求項10】 さらに、 第1のスレーブ受信装置に存在するトランザクション要
    求の総数の第1のカウントを記憶する第1のカウンタと
    を含み、 論理機構がさらに、前記カウントが少なくとも前記第2
    の所定数に等しいときに、前記第1の出力待ち行列から
    前記第1のスレーブ待ち行列へのトランザクション要求
    の送信を抑制するようになされることを特徴とする請求
    項9に記載の制御システム。
JP09959396A 1995-03-31 1996-03-29 トランザクション・フローを制御する制御システムおよびその方法 Expired - Lifetime JP3881054B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/414,875 US5907485A (en) 1995-03-31 1995-03-31 Method and apparatus for flow control in packet-switched computer system
US08/414875 1995-03-31

Publications (2)

Publication Number Publication Date
JPH0969855A true JPH0969855A (ja) 1997-03-11
JP3881054B2 JP3881054B2 (ja) 2007-02-14

Family

ID=23643366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09959396A Expired - Lifetime JP3881054B2 (ja) 1995-03-31 1996-03-29 トランザクション・フローを制御する制御システムおよびその方法

Country Status (5)

Country Link
US (1) US5907485A (ja)
EP (1) EP0735476B1 (ja)
JP (1) JP3881054B2 (ja)
DE (1) DE69635598D1 (ja)
SG (6) SG75879A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030066034A (ko) * 2002-02-04 2003-08-09 삼성전자주식회사 비동기 직렬통신시스템의 통신방법
JP2007102447A (ja) * 2005-10-04 2007-04-19 Fujitsu Ltd 演算処理装置
JP2008530694A (ja) * 2005-02-10 2008-08-07 クゥアルコム・インコーポレイテッド スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748442B1 (en) * 1998-12-21 2004-06-08 Advanced Micro Devices, Inc. Method and apparatus for using a control signal on a packet based communication link
US7213061B1 (en) 1999-04-29 2007-05-01 Amx Llc Internet control system and method
US6496880B1 (en) * 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US7072817B1 (en) * 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
JP2002024195A (ja) * 2000-07-05 2002-01-25 Nec Corp 並列処理装置、及び、並列処理方法
US6853679B1 (en) * 2000-08-31 2005-02-08 The Board Of Trustees Of The Leland Stanford Junior University Interconnect circuit for data transmission in an integrated circuit
JP2002108836A (ja) * 2000-09-29 2002-04-12 Hitachi Ltd プロセッサシステム
US6618628B1 (en) * 2000-10-05 2003-09-09 Karl A. Davlin Distributed input/output control systems and methods
US20030081599A1 (en) * 2001-10-30 2003-05-01 Chui-Tsang Wu System and method for data transmission control
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US7487504B2 (en) * 2002-02-06 2009-02-03 International Business Machines Corporation Thread dispatch for multiprocessor computer systems
US7397796B1 (en) 2003-08-21 2008-07-08 Smiljanic Aleksandra Load balancing algorithms in non-blocking multistage packet switches
US7768908B2 (en) * 2004-04-15 2010-08-03 Cameron International Corporation Systems and methods of providing redundant communication to an electronic device
US7889735B2 (en) * 2005-08-05 2011-02-15 Alcatel-Lucent Usa Inc. Method and apparatus for defending against denial of service attacks in IP networks based on specified source/destination IP address pairs
EP1934720B1 (en) * 2005-09-07 2018-02-14 Open Invention Network LLC Method and computer program for device configuration
WO2010113291A1 (ja) 2009-03-31 2010-10-07 富士通株式会社 データ転送回路及びデータ転送方法
US10455041B2 (en) * 2014-02-20 2019-10-22 Rovio Entertainment Stateful service with partial replication
GB2540610B (en) * 2015-07-23 2017-12-06 Advanced Risc Mach Ltd Gathering monitoring data relating to the operation of a data processing system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US5204954A (en) * 1987-11-18 1993-04-20 International Business Machines Corporation Remote storage management mechanism and method
JPH065524B2 (ja) * 1987-11-18 1994-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置管理方法
EP0380842A3 (en) * 1989-02-03 1991-06-12 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
DE69031233T2 (de) * 1989-02-24 1997-12-04 At & T Corp Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
EP0468831B1 (en) * 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
US5119448A (en) * 1990-09-21 1992-06-02 Tacan Corporation Modular micro-optical systems and method of making such systems
US5195089A (en) * 1990-12-31 1993-03-16 Sun Microsystems, Inc. Apparatus and method for a synchronous, high speed, packet-switched bus
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
DE69230428T2 (de) * 1991-09-27 2000-08-03 Sun Microsystems Inc Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
JPH07105031A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030066034A (ko) * 2002-02-04 2003-08-09 삼성전자주식회사 비동기 직렬통신시스템의 통신방법
JP2008530694A (ja) * 2005-02-10 2008-08-07 クゥアルコム・インコーポレイテッド スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2011048838A (ja) * 2005-02-10 2011-03-10 Qualcomm Inc スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP4861339B2 (ja) * 2005-02-10 2012-01-25 クゥアルコム・インコーポレイテッド スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2012038325A (ja) * 2005-02-10 2012-02-23 Qualcomm Inc スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2007102447A (ja) * 2005-10-04 2007-04-19 Fujitsu Ltd 演算処理装置

Also Published As

Publication number Publication date
EP0735476A1 (en) 1996-10-02
SG75877A1 (en) 2000-10-24
EP0735476B1 (en) 2005-12-21
DE69635598D1 (de) 2006-01-26
SG75882A1 (en) 2000-10-24
SG75881A1 (en) 2000-10-24
SG75879A1 (en) 2000-10-24
JP3881054B2 (ja) 2007-02-14
SG75880A1 (en) 2000-10-24
US5907485A (en) 1999-05-25
SG40839A1 (en) 1997-06-14

Similar Documents

Publication Publication Date Title
EP0752667B1 (en) Method and apparatus for hybrid packet-switched and circuit-switched flow control in a computer system
US6662306B2 (en) Fast forwarding slave requests in a packet-switched computer system by transmitting request to slave in advance to avoid arbitration delay when system controller validates request
JP3881054B2 (ja) トランザクション・フローを制御する制御システムおよびその方法
US5892957A (en) Method and apparatus for interrupt communication in packet-switched microprocessor-based computer system
US6101565A (en) System for multisized bus coupling in a packet-switched computer system
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
US6023732A (en) Message transfer apparatus for controlling a message send in a packet switched interconnection network
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US7191271B2 (en) Two level multi-tier system bus
US7761529B2 (en) Method, system, and program for managing memory requests by devices
US7054987B1 (en) Apparatus, system, and method for avoiding data writes that stall transactions in a bus interface
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
US20040044877A1 (en) Computer node to mesh interface for highly scalable parallel processing system
US20040199705A1 (en) Apparatus for use in a computer systems
US7346072B2 (en) Arbitration mechanism for packet transmission
EP1367492A1 (en) Compute node to mesh interface for highly scalable parallel processing system
US7206904B2 (en) Method and system for buffering multiple requests from multiple devices to a memory
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
GB2341765A (en) Bus idle usage
GB2341699A (en) Inter-module data transfer

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060515

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061109

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term