JPH09172460A - パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置 - Google Patents

パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置

Info

Publication number
JPH09172460A
JPH09172460A JP19417396A JP19417396A JPH09172460A JP H09172460 A JPH09172460 A JP H09172460A JP 19417396 A JP19417396 A JP 19417396A JP 19417396 A JP19417396 A JP 19417396A JP H09172460 A JPH09172460 A JP H09172460A
Authority
JP
Japan
Prior art keywords
slave
transaction request
master
request
slave device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP19417396A
Other languages
English (en)
Inventor
Loo William C Van
ルー ウィリアム・シイ・ヴァン
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 JPH09172460A publication Critical patent/JPH09172460A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

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

Abstract

(57)【要約】 【課題】 コンピュータネットワークにおける、ローカ
ル・スレーブ装置に送信されたプロセッサ要求の処理効
率を向上させる改良を加える。 【解決手段】 要求をスレーブ装置にただちに転送し、
それと同時に、スレーブの入力キューがそれを受け入れ
ることが可能か否かを含む当該スレーブに対する要求の
有効性を判断することによって、プロセッサからそのプ
ロセッサのローカル・アドレス・バス上のスレーブ装置
に対して行われるトランザクション要求の処理の高速化
を可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パケット交換マイ
クロプロセッサ・ベースのコンピュータ・システム(ユ
ニプロセッサ)、そのようなコンピュータ・システムの
ネットワーク、またはマルチプロセッサ・システムにお
けるフロー制御のための新規な方法および装置に関す
る。特に、本発明は、プロセッサからそのローカル・ア
ドレス・バス上のスレーブへのスレーブ要求が特に効率
的に処理されるマルチプロセッサ・アーキテクチャにお
ける効率的なパケット交換制御を行える新規なフロー制
御設計に係わる。
【0002】
【従来の技術】好ましい実施形態における本発明のシス
テムは、本出願人の係属米国特許出願である1995年
3月31日出願のエブラヒム等による出願番号第08/
414875号「Method and Appara
tus for Flow Control in a
Packet−Switched Computer
System」に記載されているシステムを基礎にして
おり、同出願は参照により本明細書に組み込まれる。
【0003】第414875号出願は、負帰還、ハンド
シェイク、および同出願に記載されているその他の欠点
のない、パケット交換フロー制御のための新規なシステ
ムを提供することによって、従来のシステムに見られる
多くの欠点の解決策を提示している。しかし、同出願で
は、マルチプロセッサ環境においては、プロセッサ要求
は、ローカル・スレーブ、すなわち送信側プロセッサの
ローカル・アドレス・バス上のスレーブ宛に送信された
ものであっても、システム上のすべてのシステム・コン
トローラに転送される点において、さらに改良と効率を
向上させる余地がある。
【0004】
【発明が解決しようとする課題】したがって、'875
号出願のシステムには、ローカル・スレーブ装置に送信
されたプロセッサ要求の処理効率を向上させる改良を加
える必要がある。
【0005】
【課題を解決するための手段】本発明は、システム内の
マスタおよびスレーブの入出力要求と組み合わせて機能
する、新規のシステム・コントローラにおけるフロー制
御決定を集中化する方法および装置を採用する。このシ
ステム・コントローラは、初期設定時にシステム内のす
べての要求の合計キュー・サイズを判断し、マスタ(た
とえばプロセッサ)がその合計数までしかトランザクシ
ョン要求を送信することができないようにする。本発明
のシステムは、システム相互接続キューを、要求キュ
ー、読取りデータ・キュー、および書込みデータ・キュ
ーに分類し、疎結合事象として要求とデータの両方の転
送の規則を判断する。1つまたは複数のマスタ(たとえ
ばマイクロプロセッサ)とスレーブ装置との間に相互接
続(システム)コントローラを接続する。スレーブ装置
としては、入出力機構、ディスク・ドライブ、メモリな
どが考えられる。相互接続コントローラは各マスタのキ
ューを備え、各マスタはそのマスタからコントローラへ
の未解決トランザクション要求の数を示すトランザクシ
ョン・カウンタを備える。相互接続コントローラはさら
に、各下流スレーブの要求キューと書込みデータ・キュ
ーの両方を備え、コントローラから当該スレーブへの未
解決要求数と、いずれかのマスタから当該スレーブへの
未解決の書込みデータ転送数を示すトランザクション・
カウンタを備える。
【0006】マスタとコントローラは、それぞれのカウ
ンタが、下流の対応する要求キューまたはデータ・キュ
ーがいっぱいになっていることを示しているときは、下
流のトランザクション要求の発行(または書込みデータ
転送要求の開始)を行うことができない。トランザクシ
ョンが完了すると(たとえばスレーブが要求した読取り
データを受け取ったときや書込みデータが尽きたときな
ど)、該当するカウンタが減少し、トランザクション・
キューまたは書込みデータ・キューに入れる余地がある
ことを示す。
【0007】したがって、マスタまたはシステム・コン
トローラが、受信側の空きを超えるトランザクションま
たはデータを送信することができないようにすることに
よって、キュー・オーバーフロー条件およびキュー輻輳
条件が回避される。ハードウェア・ハンドシェイクを使
用して、データ転送の完了を通知するだけでなく、下流
キューにもう1つ空きがあることをマスタに通知する。
したがって、ハンドシェイクはクレジット・ベース方式
の場合のように請求信号ではなく、信号は動的輻輳に基
づいていない。
【0008】システム内の最大キュー・サイズは初期設
定時に判断されるため、マスタがアプリケーションを実
行する前に認識される。したがって、マスタとコントロ
ーラは、すぐ下流のキュー内の空き場所の数に関する情
報をいつでも持っており、これはクレジット・ベース方
式とは異なる。クレジット・ベース方式では最大キュー
・サイズが事前にわからず、送信側は送信側に対して発
行されたクレジットを追跡することしかできない。初期
設定シーケンスは(たとえばブートPROMによる)ソ
フトウェア駆動式であり、このシーケンスによってキュ
ー・サイズとキュー内項目数が判断され、これによって
システムは(異なるキュー・サイズを有する)様々なス
レーブに合わせて再構成したり、機能していないキュー
要素を構成から除外したりする適応性が得られる。
【0009】本発明のフロー制御システムでは(アドバ
ンスまたはオーバーフロー)帰還信号をなくしたことに
より、余分なハンドシェークがなく、資源の再スケジュ
ールや再アービトレーション、マスタによる再試行がな
いため、インタフェース待ち時間が短縮される。したが
って、プロセッサ数に応じて容易に拡張することができ
るより単純な設計を使用することができ、価格/性能比
上の考慮と所望の帯域幅に合わせて所望によりスレーブ
・キューを縮小することができ、縮小したキュー・サイ
ズによってトランザクションが失われる恐れがない。さ
らに、希望に応じて相互接続におけるそれぞれのキュー
とバッファを縮小または拡大するだけで、小型/低価格
システムから大型/高価格のシステムまで様々なシステ
ムを同じモジュラーCPUおよび入出力インタフェース
から設計することができる。相互接続コントローラは、
所与の範囲のキュー・サイズを有するマスタとスレーブ
の所与の1組に適合するようにカスタム設計されるた
め、マスタとスレーブは再設計の必要がまったくない。
システム・コントローラは比較的安価なため、システム
の費用をそれほどかさませずにいくつかの異なるコント
ローラ設計を使用することができる。プロセッサとスレ
ーブ装置を変更する必要があるとしたなら、そのように
はいかないはずである。
【0010】システム設計全体と、飽和条件下(フロー
制御が重要なとき)での正常なシステム動作の試験と検
証に必要な作業も大幅に簡略化される。
【0011】このパケット交換機構は、以前に本出願人
の係属出願第'875号に記載されているもの(以下基
本パケット交換システムと呼ぶ)と同じであるが、本発
明では、プロセッサからローカル・システム・コントロ
ーラと同じアドレス・バス上にあるスレーブへのトラン
ザクション要求が宛先のスレーブにただちに自動的に転
送されるように改善されている。スレーブの要求受信キ
ューがいっぱいになっていない、グローバルな順序づけ
要件を満たしているなど、スレーブがそのような要求を
受け取るための適切な基準が満たされているか否かをシ
ステム・コントローラが判断し、満たしている場合に
は、そのスレーブに接続されている別個に設けられた線
で、そのスレーブによる即時受信するのに有効であるか
要求を検証する。これによって、基本パケット交換フロ
ー制御システムよりも数クロック・サイクル節約され
る。基本パケット交換フロー制御システムでは、トラン
ザクション要求を送信するためにシステム・コントロー
ラが要求の有効性を考慮しなければならず、次にアドレ
ス・バスの要求アービトレーションを考慮しなければな
らない。
【0012】
【発明の実施の形態】
1.基本パケット交換フロー制御システム この第1節の本発明の説明では、本出願人の係属出願'
875号に記載されている本発明の基本パケット交換実
施態様について説明する。後の第2節では、改良された
より効率の高い本発明の実施態様について説明する。
【0013】図1は、本発明を組み込んだコンピュータ
・システム10の最上位レベルのブロック図である。こ
の図は、Bill van Loo、Satya Ni
shtala、およびZahir Ebrahimによ
る「UPA Interconnect Archit
ecture」という文書に詳しく記載されている本出
願人の新しいUltrasparcアーキテクチャの特
定の実施形態に関する。サン・マイクロシステムズ・イ
ンコーポレイションの「UPAインターコネクト・アー
キテクチャ」国内リリース版1.1が、Ebrahim
等による「Packet−Switched Cach
e−Coherent Multiprocessor
System」という名称の本出願人の関連特許出願
第08/415175号の「付録A」として提出されて
いる。当該出願は1995年3月31日に米国特許特許
庁に提出され、UPAアーキテクチャの主要な特徴の多
くが記載されており、参照により本明細書に組み込まれ
る。
【0014】本発明は、新規のシステム相互接続アーキ
テクチャと、その相互接続を使用してマスタ装置とスレ
ーブまたはメモリ装置との間のトランザクション要求お
よびデータのフローを制御する、それに付随する新規の
方法を使用する。
【0015】図1において、システム10はUPAモジ
ュール20と相互接続ネットワークまたはモジュール2
5を含み、これは本発明の様々な実施態様でデータパス
に接続されていてもいなくてもよい。UPAモジュール
は、プロセッサ30、グラフィクス機構40、入出力機
構50などの装置を含む。その他の機構も含めることが
でき、本発明におけるマスタ機構として機能する。マス
タ・インタフェースとは、トランザクション要求を開始
する任意の実体のためのインタフェースであると定義さ
れる。このようなマスタの例としては、メモリ要求を行
うCPUやDMA要求を行う入出力チャネルおよびブリ
ッジがある。
【0016】一般に本出願では、プロセッサをマスタの
例として使用する。しかし、マスタはマイクロプロセッ
サを備えているか否かを問わず、任意のトランザクショ
ン要求装置とすることができる。同様に、本明細書では
「スレーブ」とは、メモリ装置と非メモリ装置の両方を
含み、それ自体がマスタとして機能することができるプ
ロセッサおよび入出力制御装置などの装置をも含む、ト
ランザクション要求を受け入れることができる任意の装
置を指す。
【0017】本明細書では、「トランザクション」とは
マスタが発行した要求パケットの後に、すぐ下流の受信
側からの確認応答パケット(選定した実施態様によって
は必ずしも完全パケットではない)が続いたものである
と定義することができる。要求パケットに伴うデータ転
送がある場合もない場合もあり、データ転送は要求パケ
ットと同じ1組の線で行われることも別個のデータパス
線で行われることもある。これについては、図5ないし
図8を参照しながら後で詳述する。
【0018】モジュール20はUPAポート60によっ
てシステム相互接続コントローラ(SC)70に結合さ
れ、システム相互接続コントローラは、1つまたは複数
のスレーブ・インタフェース80に結合されている。ス
レーブ・インタフェースは、メモリ(メイン・メモリな
ど)用のインタフェース、入出力インタフェース、グラ
フィクス・フレーム・バッファ、他の相互接続ネットワ
ークへの1つまたは複数のブリッジとすることができ、
あるいは処理するトランザクションを受信するCPUと
することさえもできる。本発明によると、一般に、従来
のメモリ装置85や標準入出力装置95など、処理する
トランザクション要求を受け入れるどのような装置にも
スレーブ・インタフェース80を与えることができる。
【0019】好ましい実施形態では、システム・コント
ローラ70とUPAインタフェース60は、主プロセッ
サ・チップに実装され、スレーブ・インタフェースはマ
ザーボード上に実装されるが、多くの別形態様が可能で
ある。一般的には、各マスタ(プロセッサであるか他の
何らかの装置であるかを問わず)はUPAマスタ・イン
タフェースを有し、各スレーブはUPAスレーブ・イン
タフェースを備える。各事例において、システム・コン
トローラはシステムと共に置かれる。
【0020】相互接続モジュール25にはデータパス・
クロスバ90も含まれ、スレーブ・インタフェース、シ
ステム・コントローラ70、およびポート60に結合さ
れている。データパス・クロスバは単純なバスまたはよ
り複雑なクロスバとすることができる。UPAポート6
0はUPAモジュール20または相互接続モジュール2
5の一部として構成することができる。データパス機構
90を使用して読取りデータと書込みデータの伝送が後
述の方式で行われる。
【0021】システム10の一部を形成する、1つまた
は複数の従来のメモリまたはその他のデータ記憶装置8
5と1つまたは複数の入出力(I/O)装置95が、ユ
ーザ・インタフェース、データ出力などのために設けら
れている。これらの様々なスレーブ装置には、RAM、
ROM、ディスク・ドライブ、モニタ、キーボード、ト
ラック・ボール、プリンタなどを含めることができる。
これらはスレーブ・インタフェース80を介して相互接
続モジュール25に結合される。この場合、「スレー
ブ」という名称は、そのような装置が1つまたは複数の
プロセッサから要求を受け入れてそれらの要求を満たす
ということを意味するに過ぎない。
【0022】一般に、相互接続ネットワークは、2地点
間リンク、単一バス、多重バス、またはスイッチング構
造など、マスタとスレーブを相互接続するいくつかの異
なる標準通信トポロジの形態をとることができる。この
相互接続は、1つまたは複数の信号経路を使用してトラ
ンザクション要求をスレーブにスイッチングするいくつ
かの従来の機構のいずれでも使用することができ、スイ
ッチングはトランザクション要求パケットに含まれてい
るアドレス指定情報に基づくか、または要求パケットの
内容に必ずしも依存しないその他のプロトコルに基づい
て行うことができる。相互接続には、いかなる量のバッ
ファリングがあってもよく、バッファリングがまったく
なくてもよい。
【0023】図1(A、B)に示す本発明の好ましい実
施形態は、すべてのマスタおよびすべてのスレーブに接
続する集中コントローラを有し、したがって、システム
要求およびデータ・トラフィックに対する完全な可視性
を有する。他の実施態様では分散制御を使用し、その場
合は可視性を維持することが望ましく、ある種の設計で
は最大容量キュー・サイズを必要とすることがある。
【0024】図1Bに、本発明によるシステムの一般的
なブロック図を示す。この場合は、複数のマスタ(3つ
の例示的マスタM1〜M3が図示されている)がある。
これらのマスタは、特定の状況でスレーブとして機能す
ることができる。たとえば、M1がプロセッサでM3が
I/O制御装置の場合、後述する初期設定プロシージャ
のように、M3はしばしばM1に対するスレーブとして
機能する。一方、DMA(直接メモリ・アクセス)動作
中は、I/O制御装置M3は、図1BでM1...M2
として示されている1個ないし多数個のメモリのうちの
任意のメモリなど、メモリ装置に対するマスタとして機
能する。
【0025】スレーブ装置S1...S2(1個、数
個、または多数個のスレーブ装置とすることができる)
も備えられており、図1Aでシステム・コントローラ7
0がマスタとスレーブに結合されているのと同様にし
て、システム・コントローラ75を介してマスタ、メモ
リ、およびスレーブが結合されている。SC75は、図
1Aのデータパス・クロスバ90の場合のように、デー
タパス制御バス96を介してデータパス・クロスバ(ま
たは相互接続)92に結合されている。制御バス96は
典型的にはシステム・バスまたはデータ・バスよりもか
なり狭い。たとえば、本出願人のシステムの好ましい実
施形態では、データパスは72ビットまたは144ビッ
ト幅であるのに対し、SCデータパス制御バスは8ビッ
ト幅に過ぎない。
【0026】前述のように、SC75はすべてのマス
タ、スレーブ、およびメモリに対して完全な可視性を有
する。システム・コントローラはデータパス上にある必
要はないが、データパスに対する制御と可視性を有して
いなければならない。
【0027】図1BのSC、マスタ、メモリ、およびス
レーブは、図のようにアドレス/制御(A/ctrl)
線によって相互接続されている。これらの線は固有(専
用の2地点間リンク)アドレス/制御線とするか、また
はまとめてバス化することができる。データもバス接続
またはスイッチ接続することができる。アドレス/制御
およびデータ線/バスは、共用アドレス/データ・バス
を設けるなどして、同じリンクを共用することができ
る。
【0028】I/O制御装置M3にはブートPROM9
4がバスによって接続されており、I/O制御装置は起
動時にブートPROMを読み取って従来の方式でシステ
ムを初期設定(たとえばCPU、レジスタなどを初期設
定)し、さらに本発明のキュー、レジスタ、およびカウ
ンタを初期設定する。この初期設定プロシージャについ
ては以下で図5を参照しながら詳述する。
【0029】図2に、2つのマスタ・インタフェース
(または「マスタ」)110および120と、単一のシ
ステム・コントローラ(SC)130と、2つのスレー
ブ・インタフェース(または「スレーブ」)140およ
び150と、データパス・クロスバ155を使用した特
定の実施態様における相互接続モジュール100を示
す。原則としてはマスタとスレーブの数はいくつでもよ
い。マスタは、前述のインタフェースのうちのいずれと
することもでき、ないしは一般的にトランザクション要
求を出すことができる任意の装置または実体とすること
ができる。
【0030】各スレーブ140および150は、トラン
ザクション要求を受信するスレーブ・キュー(それぞれ
160および170)を備える。これらのスレーブ・キ
ューの最大サイズは、それぞれポートIDレジスタ18
0および190内の値によって表される。
【0031】マスタ110および120はデータ・キュ
ーまたはバッファ115および125を備え、スレーブ
140および150はデータ・キューまたはバッファ1
85および195を備えている。これらの機能について
は以下で図7および図8を参照しながら詳述する。スレ
ーブ書込みデータ・キュー185および195の最大サ
イズも、それぞれポートIDレジスタ180および19
0内の値によって表される。要求キュー項目(たとえば
100)および書込みデータ・キュー(たとえば18
5)内のデータ・バッファについて1対1の対応があっ
て、書込みデータ・キューがパケット全体が入る最大サ
イズ(すなわち企図された最大パケット・サイズを収容
することができるような大きさ)になっている特殊な場
合は、180内のキュー・サイズは単一の数値で表すこ
とができる。
【0032】図2で、スレーブ140および150は、
図1のスレーブ80について前述したスレーブ装置のう
ちのいずれであってもよく、特定のスレーブ140およ
び150で任意の数のメモリまたは非メモリ・スレーブ
装置を表すことができる。
【0033】初期設定動作 初期設定で行われる基本ステップは以下のものが含まれ
る。 (1)システムに結合されているすべてのスレーブのそ
れぞれの受信キューのサイズを判断し、(2)スレーブ
の受信キューのサイズをシステム・コントローラ内のレ
ジスタに格納し、(3)システム・コントローラの受信
キューのサイズを判断し、(4)システム・コントロー
ラの受信キューのサイズをマスタ内の所定のレジスタに
格納する。
【0034】したがって、システム初期設定時には、初
期設定ソフトウェアが各スレーブ内の要求キューと書込
みデータ・キューのサイズ・フィールドの内容を読み取
って、それらの値をSC130の構成(config)
レジスタ200内の対応するフィールドにコピーする。
1つの実施形態では、IDレジスタ180および190
内の値(スレーブ・キュー・サイズを表す)をSC13
0の構成(config)レジスタ200の別個のフィ
ールドに格納する。さらに、SCIDレジスタ255お
よび265の値(SCキュー・サイズを表す)を、マス
タ・インタフェース110および120のconfig
レジスタ270および280にそれぞれ格納する。
【0035】あるいは、configレジスタ200
を、所与のSC内に実装された各UPAポートの別個の
構成レジスタに置き換えることもできる。その場合、各
スレーブ140および150用に1つずつ、2つの別個
のconfigレジスタが存在することになる。
【0036】マスタ110および120は、それぞれト
ランザクション要求出力キュー290および300も備
えており、各マスタ・インタフェースからSC130へ
のトランザクション要求をキューイングするために使用
される。各マスタ110および120は、後述するよう
に未解決トランザクション要求の数を追跡するために使
用されるカウンタ(310および320)を有する。
【0037】SC130は出力キュー210および22
0と、それぞれに関連するカウンタ230および240
を備え、その動作については後述する。
【0038】SC130は、各マスタのSC命令(また
はトランザクション要求)キュー(SCIQ)も備えて
いる。したがってこの場合は2つのSCIQ250およ
び260がある。各SCIQにはSCIDレジスタ、す
なわちレジスタ255および265がそれぞれ関連づけ
られており、関連するSCIQの最大サイズを表す値が
入る。
【0039】SCの動作を行う回路は、図2のSC論理
モジュール245によって示されており、必要な機能を
実行するための従来のハードウェア論理またはソフトウ
ェア論理あるいはその両方を備えることができる。たと
えば、本発明で使用するトランザクション要求処理、キ
ュー制御、数値比較およびカウントなどを実行するAS
ICを備える。あるいは、汎用プロセッサを使用し、
(関連する従来のメモリ、たとえばROMまたはRAM
に記憶されたプログラム命令などによって)本明細書で
説明する機能を実行するように構成することもできる。
【0040】システム・コントローラでこれらの機能を
実行する標準ハードウェアおよびソフトウェアの多くの
組合せが可能である。同じことが、スレーブ装置(スレ
ーブ論理モジュール142および152参照)およびマ
スタ装置(マスタ論理モジュール112および122参
照)で実行される機能にも当てはまる。ここで、論理モ
ジュールは、本明細書に記載されているように本発明の
機能を実行するのに必要なすべての回路、プログラミン
グ、メモリ、およびインテリジェンスを表す。そのよう
にハードウェアおよびソフトウェアを構築するのは、当
発明の教示があれば当業者にとってわかりきった作業で
ある。マスタ装置がプロセッサである場合、本発明を実
施する論理は、当然、大部分はプロセッサ自体とそれが
実行する命令とによって構成することができる。これら
の論理モジュールの特定の実施態様およびそれがソフト
ウェアまたはハードウェアによって表される程度には広
範囲な幅があり、したがって図2にはブロック形態での
み示す。
【0041】以下に、初期設定シーケンスについて図1
Bおよび図2(アーキテクチャに関して)および図7な
いし図8(初期設定シーケンスのフロー制御に関して)
を参照しながら説明する。初期設定シーケンスのための
命令は不揮発性メモリ、この実施形態ではブートPRO
M94に記憶されている。プロセッサM1は、ブートP
ROM94を指す固定アドレスを有し、アドレス/制御
線A/ctrl−1を介したSC75に対する読取り要
求によってブートPROM94にアクセスする。SCは
データパス制御線またはバス96(8ビット・バスとす
ることができる)を介して要求をデータパス・クロスバ
92に送り、データパス・クロスバ92はI/O制御装
置M3にアクセスする。したがってこの動作ではI/O
制御装置はプロセッサM1に対するスレーブとして機能
する。
【0042】本明細書の説明全体を通して、わかりやす
いようにアドレス・バスとデータ・バスとを別にして例
示するが、本発明は共用アドレス/データ・バスを使用
するシステムにも等しく適用可能であることに留意され
たい。
【0043】I/O制御装置M3は、ブートPROM9
4にアクセスして初期設定シーケンスのコードを読み取
り、それを線A/ctrl−3を介してSC75に送
る。SC75はさらにそれをプロセッサM1に送る。
【0044】図1Bで、SC75、マスタM1〜M3、
スレーブS1〜S2、およびメモリMem1〜Mem2
は、図2に図示するconfigレジスタ、カウンタ、
SCIDレジスタ、IDレジスタ、マスタ・キュー、S
CIQ、およびスレーブ・キューを備える。しかし、わ
かりやすくするためにこれらの要素は図1Bでは図示し
ていない。
【0045】プロセッサM3がブートPROM94から
初期設定シーケンス命令を取り出すと、それらの命令が
実行される。最初の動作は、メモリおよびスレーブのI
Dレジスタを読み取ることである。これらのIDレジス
タには、図2に関して前述したようにそれぞれのスレー
ブの命令キューと書込みデータ・キューの値が入ってい
る。この読取り動作のために従うフロー制御シーケンス
は、以下で図7の「スレーブ読取りフロー制御」につい
て説明する通りであり、IDレジスタからのデータはデ
ータ・バス(またはデータパス)715を介して取り出
される。
【0046】IDレジスタ値は、システム・コントロー
ラ(図1Bの75、図2の130)のconfigレジ
スタ(configレジスタ200など)に書き込まれ
る。前述のように、1つのスレーブについて1つのco
nfigレジスタ、または各スレーブについてconf
igレジスタ内に少なくとも1つのフィールドがある。
この書込み動作のために従うフロー・シーケンスは、以
下で図8に関して説明する通りである。このためにシス
テムのI/O制御装置を使用する。したがって、図8
で、この動作の場合はスレーブ710はI/O制御装置
であり、マスタ(この場合はプロセッサ)700がSC
720に各スレーブからのIDレジスタ値をSC自体の
configレジスタに書き込ませる。それぞれの場合
において、それぞれのIDレジスタ値がプロセッサ(図
8のマスタ700または図1BのマスタM1)のバッフ
ァに格納され、その値がシステム・コントローラに渡さ
れ、I/O制御装置(図8のスレーブ710または図1
Bのマスタ/スレーブM3)に渡されて、I/O制御装
置はそのために設けられたデータパス(図8のデータ・
バス715)を介してシステム・コントローラにその値
を書き戻す。
【0047】初期設定プロシージャにおける次のステッ
プは、システム・コントローラ(たとえば図8に図示す
るSCIQ0および1または図2のSCIQ250およ
び260)の受信キューのサイズを読み取ることであ
る。受信キューのサイズはSCIDレジスタ(図2のレ
ジスタ255および265を参照)に格納されている。
この読取り動作は、システムのI/O制御装置を使用し
て実行され、その結果、マスタ/プロセッサがSC受信
キュー値をバッファまたは事前割り当てされたレジスタ
に格納する。
【0048】最後に、これらのSCIQサイズがマスタ
のconfigレジスタ(図2の270および280な
ど)に書き込まれる。システムがユニプロセッサ・シス
テムの場合、これはプロセッサがSCID値をそれ自体
のconfigレジスタと、マスタとして機能すること
ができる他の装置のconfigレジスタとに書き込む
ことになる。システムがマルチプロセッサ・システムの
場合は、1つのプロセッサがマスタとして機能し、SC
ID値をそのプロセッサ自体のconfigレジスタと
他のプロセッサのレジスタの両方に書き込む。
【0049】フロー制御の一般的動作 以下で、本発明におけるトランザクション要求フロー制
御について一般的な説明を行い、その後で特定のタイプ
のトランザクション要求の初期設定シーケンスおよびフ
ロー制御に関する詳細を含む本発明の好ましい実施形態
の具体的な説明を行う。
【0050】SC130内のconfigレジスタ20
0とマスタ内のconfigレジスタ270および28
0の初期設定後、システム100の通常の動作を開始す
ることができる。動作中、SCはそのconfigレジ
スタ200でスレーブIDレジスタ180および190
のそれぞれの値のコピーを維持し、したがって各スレー
ブ・インタフェースがそのスレーブ要求キュー(160
または170)内で処理することができるトランザクシ
ョン要求の最大数と、そのスレーブ・データ・キュー
(185または195)内に保持することができるデー
タの最大量を「知っている」。所与の時点で、カウンタ
230および240が、対応するスレーブ要求キュー内
の未解決トランザクション要求の数と、スレーブの記憶
データ・キュー内の未解決記憶データのサイズを格納す
る。ある状況ではスレーブ140および150の未発行
トランザクション要求を出力キュー210および220
に格納することができる。これらの出力キューは任意の
大きさとすることができ、特にSCIQ250および2
60より大きくすることができる。また、ある状況で
は、要求は対応するSCIQにエンキューされたままで
ある。
【0051】マスタ、たとえばマスタ・インタフェース
110が、発行するトランザクション要求を持っている
場合、そのマスタはまずそのカウンタ310内の値をc
onfigレジスタ270内の値と比較する。カウンタ
値がconfigレジスタ値よりも小さい場合は要求を
発行することができる。その要求はマスタの出力キュー
290からSCIQ250に送られ、カウンタ310が
1だけ増加する。
【0052】次に、SC130がその要求の宛先が2つ
のスレーブ140および150のうちのいずれであるか
を判断し、そのキューのカウンタを調べる。たとえばト
ランザクション要求の宛先がスレーブ140である場
合、SC130はカウンタ210を調べ、そこに格納さ
れている値を、IDレジスタ180に対応するconf
igレジスタ200内の値と比較する。カウンタ230
の値がconfigレジスタに格納されている値よりも
小さい場合、SC130はトランザクション要求を発行
し、カウンタ230を増加させる。そうでない場合は、
トランザクション要求は出力キュー210内に保持され
ている。同じマスタからの異なる要求についてトランザ
クションの順序づけ制約に関するある種のトランザクシ
ョンにおいては、その要求をSCIQ250に残してお
くことが望ましいことがある。
【0053】この例でトランザクション要求が発行され
たとすると、SC130は(トランザクション、たとえ
ばデータの転送が完了したとき)マスタ110にその意
味の信号を送り、(応答を送信したとき)その入力キュ
ー250からそのトランザクション要求を除去する。マ
スタ110はそれに応じてそのカウンタ310を減少さ
せ、それによって他の未解決のトランザクション要求を
発行することができるようになる。カウンタ310がそ
の最大値(SCIQ250がいっぱいになったことを示
す)だった場合、このカウンタ310の値の減少によっ
て、マスタ110からSC130への追加のトランザク
ション要求を1つ入れる余地ができる。カウンタ310
がその最大値になっていなかった場合は、このカウンタ
310の減少によって、マスタ・インタフェース110
が発行できるトランザクション要求の数が1つ追加され
るだけである。
【0054】任意のサイズとすることができる(特に、
所望であればSCIQ250および260とスレーブ入
力キュー160および170よりもかなり大きくするこ
とができる)出力キュー210および220が好ましい
が、本発明の動作にとって必須ではない。この2つのス
レーブのために別々の出力キュー(スレーブ140用に
キュー210とスレーブ150用にキュー220)を保
持していない場合、またはマスタの順序づけ制約によっ
てキュー210および220の両方を使用することがで
きない場合、キュー250および260に入れられてい
るトランザクション要求は、それぞれの宛先スレーブが
それらを受け入れることができるようになるまで待って
からでなければ、それぞれのキューからクリアすること
ができない。
【0055】システムにおけるこのような順序づけ制約
は、グローバルな順序づけ要件であることがある。つま
り、特定のシステムにおいて、キュー210に入ってい
るマスタ110からの(スレーブ140宛の)未解決ト
ランザクションを処理してからでなければ、マスタ11
0からスレーブ150に宛てた後続のトランザクション
を処理することができない場合がある。
【0056】このような順序づけ要件は別にして、すな
わち、SCIQ250および260内の未解決トランザ
クションが異なるマスタからのものであるとすると、こ
れらのキュー250および260のいずれも、SC出力
キュー210および220を介してスレーブ140およ
び150のいずれに対する要求でも発行することがで
き、それによってスループットが向上する。たとえば、
スレーブ140がいっぱいになっている(すなわちその
入力キュー170がいっぱいになっている)場合であっ
ても、SCIQ260内のスレーブ140の要求をSC
出力キュー210に送ることができ、次にSCIW26
0からの後続のスレーブ150要求をスレーブ150に
送ることができる。SC出力キューが設けられていない
とすれば、スレーブ150要求はスレーブ140がクリ
アするのを待ってからでなければ発行することができな
いことになる。したがって、これらのSC出力キューに
よって、2つのスレーブ・インタフェースの真に独立し
た動作を実現することができる。
【0057】SCIQ250と260は互いに独立して
おり、マスタ・インタフェースとそのそれぞれのカウン
タも同様に独立している。したがって、SC130は、
各マスタから受け入れることができる要求の数を他から
独立させて、各マスタからの所定の数の要求を処理する
ように構成される。すなわち、SCIQのサイズは互い
に独立している。さらに、個々のマスタがそのマスタか
らの他の要求とは独立した複数の要求を出すことがで
き、したがって要求キュー290(または300)とそ
れに対応するSCIQ250(または260)をそれぞ
れの場合について複数のキューに分割することができる
ようにすることが可能である。
【0058】選択された任意の数のマスタおよびスレー
ブで、SCを介してどのマスタもどのスレーブにでもト
ランザクションを要求することができる。SCは、典型
的には所定の最大数のマスタ・インタフェースおよびス
レーブ・インタフェースを有する所与のシステム用に構
成されたASICとなる。これは(システム全体と比較
すれば)比較的単純で安価なASICであるため、設計
者はそれぞれのSCが当該システム特有の必要に合わせ
て調整された、異なるシステムのための異なるSCを低
コストで容易に構成することができることによって、柔
軟性が大きく経済的である。
【0059】本発明を実行する論理は、図1に示すよう
に、SC ASICとマスタ・インタフェースおよびス
レーブ・インタフェースのハードウェア/ファームウェ
アによって、およびシステムのメモリ85に記憶された
プログラム命令によって実現される。他の実施形態では
この論理を他の態様、たとえば、本発明の好ましい実施
形態のマスタ・インタフェース、システム・コントロー
ラ、およびスレーブ・インタフェースによって実行され
るステップのいずれかを実行するメモリと汎用プロセッ
サを設けることによって実施することもできる。
【0060】このような論理(ハードウェアまたはソフ
トウェア)を、それぞれのプロセッサ、システム・コン
トローラ、スレーブ、またはその他のシステム構成要素
に結合された「論理モジュール」と一般的に呼び、その
ようなモジュールとその付随機能をハードウェアまたは
ソフトウェア、あるいはその何らかの組合せとして実施
することができることを示す。ハードウェア論理(プロ
セッサを含む)上で実行されるソフトウェアの場合、必
要に応じてレジスタまたはメモリあるいはその両方に記
憶された構成要素手段に「結合され」、従来の方式で実
行される。
【0061】システム・コントローラの動作 次に図3〜4を参照すると、初期設定時(ボックス/方
法ステップ400)に、すべてのUPAポートIDレジ
スタ(たとえば図2のスレーブIDレジスタ180およ
び190)が読み取られ、その内容がSC confi
gレジスタ200の適切なフィールド(または前述のよ
うな別個の専用configレジスタ)に書き込まれ
る。UPA(スレーブ)ポートをポートIDレジスタで
はなくPROMで構成する場合は、おそらく単一のSC
configレジスタ実施態様における別個のフィー
ルドの方を使用することになるであろう。本出願でco
nfigレジスタのフィールドについて言及する場合
は、別個のconfigレジスタを意味するものともと
ることができ、またその逆も可能である。
【0062】ボックス410で、次にマスタ・レジスタ
が初期設定される。これはSCIDレジスタ255およ
び265からの読取りと、(それらのレジスタに格納さ
れている)SCIQサイズをそれぞれのconfigレ
ジスタ270および280に書き込むことを必要とす
る。
【0063】始動時、configレジスタ200フィ
ールドとconfigレジスタ270〜280は(それ
ぞれ対応するIDレジスタ180〜190および250
〜260を読み取るように)それぞれ少なくとも1つの
トランザクションを可能にしなければならず、最初に値
「1」に初期設定されて、始動を「ブートストラップ」
する。次に、IDレジスタ読取りトランザクション要求
が発行されてカウンタが減少すると、その要求が可能に
なる。configレジスタがすべて0であるとすれ
ば、どのトランザクションも可能にならないことにな
る。それぞれのIDレジスタが読み取られると、そのc
onfigレジスタ値が正しい値、すなわちそれらに関
連するIDレジスタの実際のサイズに置き換えられる。
【0064】ボックス420で、マスタのうちの1つ、
たとえばマスタ120で新しいトランザクション要求が
未解決になっているか否かが判断される。未解決になっ
ていない場合は、このプロシージャはボックス422で
停止する(しかし、新しいトランザクション要求が行わ
れればいつでもボックス420で再開することができ
る)。
【0065】ボックス424で、未解決のトランザクシ
ョン要求が読取り動作要求である場合、システムはマス
タ・インタフェースのマスタ読取りデータ・バッファ
(以下で詳述する)がデータを受け入れ可能状態になっ
ているか否か、すなわち読み取るデータを受信するのに
十分な余地がマスタ読取りデータ・バッファにあるか否
かを判断する。ない場合は、システムはボックス426
のように、マスタ読取りデータ・バッファが受け入れ可
能になるまで待つ。読取り動作の待ち期間の間、書込み
動作を保留にする必要はなく、独立して進めることがで
き、その逆のことも言えることに留意されたい。
【0066】書込み動作の場合、システムはスレーブ・
インタフェースまたはメモリを介してスレーブの1つに
書き込むデータが実際にマスタ書込みバッファに書き込
み(送信)可能な状態になっているか否かを判断する。
なっていない場合には、そのデータ項目が書込み可能に
なるまで、再びボックス426で待ち期間が実行され
る。
【0067】マスタ・インタフェースに関する限り読取
り動作または書込み動作が可能な状態である場合、ボッ
クス430でシステムはマスタ・カウンタ(この例では
カウンタ320)の値が、configレジスタに格納
されている値、すなわち関連するSCIQ260のサイ
ズ(最初にSCIDレジスタ265によって提供されて
いるサイズ)と等しいか否かを検査する。マスタ・カウ
ンタはconfigレジスタに格納されている値を決し
て超えることができてはならないが、万一超えた場合は
比較検査で「=」ではなく「≧」を使用することによっ
てそれを勘案することができる。カウンタが合計SCI
Q260サイズと等しい要求数を発行していない場合、
この検査は偽となり、ボックス440に進む。
【0068】カウンタ値がその可能最大値に達した場
合、トランザクション要求はSCに渡されず、この方法
はボックス500に進む。この場合、マスタ・インタフ
ェース内にある未解決のトランザクション要求は、SC
からトランザクション完了信号を受信するのを待ってか
らでなければ発行することができない(ボックス51
0)。好ましい実施形態では、このトランザクション完
了信号は、S_REPLY信号の形式を取り、これにつ
いては以下で図5〜図8を参照しながら詳述する。
【0069】マスタ・インタフェース110がこのトラ
ンザクション完了信号を受信すると(ボックス50
0)、マスタ・インタフェースは当該SCIQに関連す
るカウンタを減少させ(ボックス530)、ボックス4
40のステップに進む。
【0070】ボックス440で、カウンタ320を1だ
け増加させ、ボックス450でマスタがトランザクショ
ン要求をSCに送信する。したがってカウンタ320は
これで1つ(または1つの追加の)トランザクション要
求の送信を反映することになる。
【0071】ボックス420〜450およびボックス5
00〜520はすべて、マスタ、またはマスタ・インタ
フェース110および120などのマスタ・インタフェ
ースによって、又はその中で行われる方法のステップに
関することが理解されよう。以下で、ボックス452〜
458およびボックス462〜490(すなわち図4の
ほとんどすべて)は、システム・コントローラ(SC)
によって、またはその中で)行われるステップに関する
ことがわかるであろう。ボックス460および495
は、しかるべくデータの読取りと書込みの方法ステップ
に関する。
【0072】SCは、その要求受信キュー(SCIQ2
50および260など)内に未解決のトランザクション
要求が入っているか否かを判断するインテリジェンスま
たは論理あるいはその両方(ハードウェアまたはソフト
ウェアあるいはその両方)を備える。未解決トランザク
ションが入っている場合は、ボックス452で、キュー
の先頭にあるトランザクション要求を調べてその要求の
受信側としてどのスレーブが意図されているかが判断さ
れる。この要求制御と受信側の判断は、従来の方式で行
われる。
【0073】ボックス454で(図3)で、この方法は
未解決の操作がメモリ操作と非メモリ・スレーブ操作の
いずれであるかを判断する。メモリ操作の場合は、ボッ
クス456で、グローバル制約またはその他の順序づけ
制約があるとして、受信側メモリが有効であるかを判断
する。
【0074】このような考えられる制約の中には、所与
のマスタによるメモリ要求またはスレーブ要求の処理
を、同じマスタによるそれぞれ他のメモリまたはスレー
ブに対する要求が解決されるまで遅延させることに関す
るものがある。つまり、所与のマスタ、たとえばマスタ
1からスレーブ1に対する一連のトランザクション要求
が発行され、次にスレーブ2に対するトランザクション
要求が発行される場合がある。本発明のシステムの好ま
しい実施形態は、(マスタ1からの)未解決のスレーブ
1の要求がすべて完了してから、新しいスレーブ2の要
求が実行されるようにする。これによって、新しいスレ
ーブ2のトランザクションがそれに依存している可能性
があるスレーブ1の要求が確実に実行済みになっている
ことになる。したがって、異なるスレーブに対して発行
された要求に対する所与のマスタからのトランザクショ
ン要求の強力なグローバル順序づけが維持される。これ
は、後述するように、マスタがスレーブ2の要求を出す
前にスレーブ1からのS_REPという信号を待たなけ
ればならないようにすることによって行われる。
【0075】他のシステムでは、マスタ1がスレーブ1
からのS_REPLY(トランザクション完了)信号を
待たずにスレーブ1に複数の要求を自由に発行すること
ができることが好ましい場合がある。そのようなシステ
ムであっても、所与のメモリまたは非メモリ・スレーブ
が、所定のトランザクション・タイプのトランザクショ
ンまたは特定のマスタからのトランザクションあるいは
その両方、またはその他の何らかの理由で、特定のトラ
ンザクションを受け入れることを一時的に禁止すること
ができる、トランザクションに対する順序づけ制約また
はその他の制約がある場合がある。
【0076】上記のいずれかの理由でこの時点で受信メ
モリが有効でないかまたは使用不能の場合、ボックス4
58でこの方法はそのメモリが有効または使用可能にな
るまで待つ。
【0077】受信側メモリが有効な場合、ボックス46
0で必要に応じてメモリのデータ読取りまたは書込みが
行われ、以下で詳細に説明するようにS_REPLY
(トランザクション完了)信号が送信される。
【0078】未解決のトランザクションが非メモリ・ス
レーブ・トランザクションの場合、ボックス462でこ
の方法は要求を受け取るべきスレーブを判断する。ボッ
クス464で、前述の順序づけまたはその他の制約があ
るとして、受信スレーブがこの時点で有効なスレーブで
あるか否かが判断される。有効でない場合、この方法は
ボックス466でそのスレーブが有効になるまで待つ。
【0079】スレーブがこのトランザクションについて
有効になると、トランザクション要求は対応するSC出
力キュー(SCOQ)210または220に移される。
【0080】未解決のトランザクションがスレーブ書込
みトランザクションの場合、この時点で(ボックス47
0)、SCはデータパス制御信号を使用してデータパス
155をイネーブルし、マスタ(未解決のトランザクシ
ョンを有する)はそのデータパスを介して適切なスレー
ブ入力キュー(185または195)にデータを移動さ
せることができる。次にSCはトランザクション完了
(S_REPLY)信号をマスタとスレーブの両方に送
る(以下の図8に関する説明を参照)。
【0081】ボックス475で、SC130は次に受信
スレーブのカウンタ、たとえばカウンタ240を調べ
て、スレーブ150がその未解決トランザクション要求
の宛先であるか否かを判断する。カウンタがconfi
gレジスタ内の値(すなわち初期設定時に読み取られた
IDレジスタ180または190によって示されるサイ
ズ)と等しいかそれ以上である場合、要求はまだ可能で
はない。その場合は、宛先スレーブ・キューにそのトラ
ンザクション要求を受け取る空きラインが使用可能にな
るまでステップ530〜550(本質的にステップ50
0〜520と同じ)をたどる。
【0082】適切なカウンタ(230または240)が
その可能最大値に達していない場合は、そのカウンタを
1だけ増加させ(ボックス480)、トランザクション
要求が受信スレーブに送信される(ボックス490)。
【0083】未解決のトランザクションがスレーブ読取
り要求の場合、この時点(ボックス495)で読取り操
作が開始される。それが完了すると、スレーブはSCに
P_REPLYを送信し、SCは要求側マスタと受信側
スレーブの両方にS_REPLYを送信する。スレーブ
読取り要求のトランザクションおよびデータ・フローの
詳細は、以下の図7に関する説明を参照されたい。
【0084】この時点で、この方法は次に図3のボック
ス420に進む。すなわち、他のトランザクション要求
が行われたか否かを判断する。
【0085】図3〜4のフロー・チャートは(所与のト
ランザクションの場合にはこのフローは直線的である
が)様々なトランザクションに関して必ずしも厳密に直
線的なシーケンスを示していない。たとえば、好ましい
実施形態では、SCによってスレーブ・インタフェース
に他のトランザクション要求が発行されているときで
も、マスタ・インタフェースの1つからトランザクショ
ン要求を発行できるようにすることが可能である。その
他のタイプおよび程度の並行動作も実施することができ
る。
【0086】フロー制御 図5〜図8に、本発明で4種類のトランザクションにつ
いてフロー制御がどのように行われるかを示す。図5
は、メモリからの読取り操作(すなわちスレーブ・イン
タフェースはメモリ・インタフェースである)であり、
図6は、メモリへの書込み操作、図7はメモリ以外の装
置からの読取り操作、図8はメモリ以外の装置への書込
み操作である。
【0087】キャッシュ読取りトランザクション(本発
明の対象ではないスヌープバスを必要とする)などのそ
の他の操作も可能であるが、本発明の特徴を例示するに
は上記の操作で十分である。
【0088】図5および図6では、簡略化するために図
2に図示されているキューおよびレジスタは図示してい
ないが、マスタ・インタフェース(UPAポート)とシ
ステム・コントローラの両方に図2と本質的に同じ構成
で含まれているものと理解されたい。したがって、図2
および図3に関して前述したトランザクション制御は、
図5〜図6および図7〜図8についても行われる。
【0089】しかし、図5および図6に示すメモリ・バ
ンクは、図2に図示するようにスレーブ・キューを含む
必要はなく、図5のシステム・コントローラは図2のよ
うなconfigレジスタおよびカウンタを含む必要は
ない。読取りまたは書込みトランザクション要求装置と
メモリとの間のように従来のフロー制御を使用すること
ができ、そのフロー制御は実施態様固有のものとなる。
読取り要求および書込み要求がメモリ・バンクに適切に
割り当てられるようにする多くの標準設計が適合する。
この例では、図3〜4のステップ(ボックス)470〜
490および530〜550が、メモリとの間の読取り
トランザクションおよび書込みトランザクションの制御
のための同等のステップによって置き換えられる。
【0090】図5に、メモリ・バンク610...62
0がスレーブ装置であり、下付き数字(0)...(m
−1)によって示されている合計m個のメモリ・バンク
を備えた、相互接続モジュール600の特定の実施形態
を図示する。同様に複数のマスタ・インタフェース(U
PAポート)630...640があり、この例では3
2個のマスタ・インタフェースが下付き数字0...3
1によって示されている。メモリ・バンクはデータパス
・クロスバ625によって従来の方式でUPAポートに
結合されている。
【0091】この動作では、原則としてトランザクショ
ン要求の受信順序はスレーブ・インタフェースによる応
答の順序となる。
【0092】図5〜図8では一般に、事象の順序は円で
囲んだ事象番号1、2、3、および4で各図ごとに示す
(付随する矢印によってデータまたは信号の流れの方向
を示す)。図5および図6のメモリは図2に示すスレー
ブ・キューおよびスレーブのIDレジスタを備えていな
い点を除いて、以下の図5〜図8に関するデータ・フロ
ーの説明はトランザクション要求制御(図3〜図4参
照)に関して説明したステップを含むものと理解された
い。したがって、発行された各要求について、適切なカ
ウンタ参照、増加、および減少が行われて、適切な時点
で要求が送信されるように決定される。それぞれのキュ
ーも適切に処理される。
【0093】メモリ読取り要求:図5 この読取り要求例は、データはたとえばキャッシュから
ではなくメモリから送られるものと仮定する。図5に図
示するスヌープバス上のスヌープ操作はここでは考慮に
入れない。
【0094】事象1:ポート630のようなUPAマス
タ・ポートが発行可能な状態のメモリ読取りトランザク
ションを持っており、マスタ・カウンタがその許容最大
値(図3〜4のボックス430参照)になっていない場
合、その読取りトランザクションはUPAポート630
からUPA_アドレスバスでシステム・コントローラ6
50に対して発行される。これは図5でUPA_アドレ
スバス660を通る事象1(P_REQ)で示されてお
り、情報の方向は矢印で示され、すなわちポートからS
Cに向かう方向である。
【0095】事象2:メモリ・サイクル[すなわちRA
S(読取りアドレス・ストローブ)/CAS(列アドレ
ス・ストローブ)要求発行]が、メモリ制御バス670
を介してメモリ・バンク610...620に発行され
る。バス670を通る事象2(「RAS/CAS」)を
参照されたい。
【0096】事象3:データパス制御バス680を通る
信号によってデータパスがスケジュールされ、それに従
ってデータ項目がメモリからメモリ・データバス690
およびUPAデータバス700を介してデータパス・ク
ロスバ625に配信される。これによって読取り要求が
満たされる。
【0097】メモリ書込み要求:図6 図6に、図5と同じ回路を図示する。しかしこれは読取
り操作ではなく(非キャッシュ)書込み操作に関するも
のなのでフローは異なる。事象1はUPAアドレス・バ
ス660を通る書込み要求の発行である。
【0098】事象2では、バス680を介してデータパ
ス制御信号が送信され、データパス・クロスバ625を
イネーブルする。また、SC650によってバス710
を介してS_REPLYがUPAポート630に送信さ
れ、データパスがスケジュールされた後でデータをソー
スし、データ項目がデータ・バス700を介してUPA
ポート630からデータパス・クロスバに送信される。
ここで、それらのデータ項目がメモリ・バンクへの転送
に備えてバッファリングされる。この時点でUPAポー
ト内のカウンタを減少させてシステム・コントローラが
別のトランザクション要求を処理することができること
を示す。
【0099】事象3では、RAS/CAS信号を使用し
てバス670を介してメモリ・バンクがイネーブルさ
れ、データ項目がバス690を介してメモリ・バンクに
送信される。これによって書込み操作が完了する。
【0100】以上の方法によって、書込みデータが書込
み可能になるまで書込み要求が発行されなくなる。たと
えば、データバス695が144ビット幅であるが、バ
ス690は288ビット幅の場合、データ・ワードはク
ロスバ内でバッファリングされ、288ビットのブロッ
クに編成されてからメモリに書き込まれる。
【0101】スレーブ読取り要求:図7 図7にメモリ以外のスレーブ装置に対する読取りシーケ
ンスを示す。これは図2と類似しているが、この例の場
合はシステム・コントローラ720とデータパス・クロ
スバ730によって結合された単一のマスタ・インタフ
ェース710と単一のスレーブ・インタフェース720
を使用する。
【0102】事象1は、SC720へのUPAアドレス
・バス740上の読取り要求P_REQの発行を示す。
【0103】事象2で、SC720はアドレス/制御バ
ス750でスレーブ・インタフェース710に対してP
_REQを送信する。そのためには、いくつかのスレー
ブ・インタフェースがある場合に、SCはまずアドレス
をデコードしてP_REQが正しいスレーブ・インタフ
ェースに送られるようにしなければならない。事象2に
よって、データをデータパスで送る準備をするようにス
レーブ・インタフェースに通知しなければならない。
【0104】データ項目の準備が整うと、事象3が行わ
れる。すなわち、バス760を介してスレーブ710か
らSC720にP_REPLYを送信する。
【0105】事象4で、一連のステップが実行され、そ
れによってマスタ・インタフェースがデータを受信す
る。SC720がデータパス730をスケジュールし、
バス770を介してマスタ・インタフェース700にS
_REPLYを発行する。さらに、SCはS_REPL
Yをバス780を介してスレーブ710に発行し、デー
タを駆動し、データが送信可能になると、スレーブのU
PAデータバス790でデータパスを介して送り、デー
タバス800を介してマスタ・インタフェース700ま
で送る。
【0106】スレーブ書込み要求:図8 図8に、図7と同じ装置を示すが、非メモリ・スレーブ
・インタフェースからマスタ・インタフェースへの書込
みシーケンスが図示されている。このシーケンスは、ス
レーブ・インタフェース710のデータ・キューPRE
Q_DQに十分なスペースができるまでデータを送信す
ることができないようにする。
【0107】図7および図8では、SC720にトラン
ザクション要求カウンタ810とデータ・キュー・カウ
ンタ820の両方が図示されている。これらは、それぞ
れPREQキューとPREQ_DQキュー(スレーブ出
力データ・キュー)がどの程度満たされているかを判断
するカウンタである。この2つのキューのサイズが異な
る場合、それらに関連するカウンタ810および820
のサイズは異なる。この2つのキューのサイズが同じ場
合は、SCで単一のカウンタを使用して両方のキューが
どの程度満たされているかを監視することができる。
【0108】事象1:書込み操作の最初の事象は、マス
タ・インタフェース700がバス740を介してシステ
ム・コントローラ720にP_REQを発行することで
ある。
【0109】事象2:事象2では、SCがアドレス/制
御バス750を介してスレーブ・インタフェース710
にP_REQを発行する。このP_REQには、書き込
むデータの量をSCに通知するのに十分なワードが含ま
れている。前述のように、スレーブ・データ・キュー・
カウンタ820を使用して、データ・キューPREQ_
DQがどの程度満たされているかを追跡する。PREQ
_DQキューが一杯になり過ぎている場合、書込みトラ
ンザクションは待たなければならない。
【0110】データ・キューPREQ_DQの幅は1ワ
ード(たとえば16ビット)またはブロック(たとえば
64ビット)とすることができる。したがって現行シス
テムで複数の転送サイズがサポートされる。可能なキュ
ー構成としては、1要求当たりの最大容量かまたは1要
求当たりの最大容量の数分の1、たとえば前記の例の6
4ビットと16ビットなどが含まれる。
【0111】キューPREQ_DQの空きが十分な場
合、書込み操作を進めることができる。事象2ではさら
に、SCがデータパス制御信号「DPctrl」を使用
してデータパス730をスケジュールし、バス770を
介してマスタ・インタフェースにS_REPLYを発行
し、そのデータ・バス800上のデータを駆動する。さ
らにSCはバス780を介してS_REPLYを発行
し、スレーブ・インタフェース710にそのデータ・バ
ス790を介してデータを受信するように指示する。
【0112】このトランザクションは、マスタ・インタ
フェースがS_REPLYを受信し、データがバス80
0を介してデータパス・クロスバ730に送信される
と、マスタ・インタフェースに関する限り完了する。し
たがって、この時点でスレーブ・インタフェースがまだ
データを受信していなくても、マスタ・インタフェース
は別のトランザクションのために準備される。
【0113】アドレス・パスとデータパスが独立してい
るため、要求パケット(これには宛先アドレスが含まれ
ている)とそれに対応するデータを任意の順序でスレー
ブ・ポートに転送することができる。すなわち、スレー
ブのキューPREQにP_REQが到着する前にデータ
が実際に入力キューPREQ_DQに到着する場合があ
る。これが起こった場合、スレーブがデータの宛先アド
レスを判断することができるように、データはP_RE
Qが到着するまで待たなければならない。あるいは、当
然、P_REQが先に到着し、次にデータが到着するこ
ともあり、その場合はP_REQによって指定された宛
先アドレスにただちにデータが書き込まれる。
【0114】事象3:スレーブは、要求されたデータを
そのデータ・キューからクリアし、トランザクション要
求をその入力キューからクリアすると、バス760を介
してSCにP_REPLYを発行して、別のトランザク
ションを処理可能な状態になったことを示す。SCは、
それに応じてそのカウンタ810および820を減少さ
せる。SCから見るとトランザクションはこれで完了す
る。すなわち、SCがとるべき処置はそれ以上はない。
【0115】トランザクションの順序づけ 本明細書におけるトランザクションは、マスタ装置また
はモジュール(ハードウェア、ソフトウェア、またはそ
の組合せ)によるあらゆるタイプの要求である。これに
は読取りデータ転送、書込みデータ転送などが含まれ、
それらを読取り応答および書込み応答と結合しなければ
ならない。すなわち、たとえば各書込み要求を論理的に
書込みデータ(すなわち書き込むデータ)とリンクす
る。前述の説明では、データ転送の順序づけが書込み要
求の順序によって決まるものとしたが、他の可能性も存
在する。
【0116】たとえば、各書込み要求とそれに対応する
データにトークンを割り当てることによって書込み要求
と書込みデータの間のリンクを行うことができる。その
場合、トークンを使用してシステム・コントローラとプ
ロセッサに所与の書込み要求の完了を通知することにな
る。すなわち、書込みデータはそのトークンをいっしょ
に携えて、それが受信されると、関連するトークンを有
する書込み要求が完了したことがわかる。このようなシ
ステムは、関連するトークンを見つけるためにトークン
突き合わせ論理を必要とする。このトークン・システム
をマスタによって要求される任意のトランザクションの
ために前述のシステム・コントローラ動作に適用するこ
とができ、要求の完了に関するトランザクション要求の
順序づけ要件から解放する。すなわち、読取りトランザ
クションおよび書込みトランザクションをそれらが発行
された順序とは異なる順序で実行することができる。
【0117】いずれの場合も、データ転送の有無を問わ
ず、各トランザクションについてシステム・コントロー
ラによる対応する応答が存在することになる。一般に、
様々なトランザクションの事象の順序は以下のようにな
る。 スレーブからの読取り:読取り要求−−>スレーブ読取
り応答−−>読取りデータ転送(任意選択) マスタからの書込み:書込み要求−−>SC書込み応答
−−>書込みデータ転送(任意選択) スレーブからの書込み:(書込み要求/書込みデータ転
送をいずれかの順序で)−−>書込みデータが尽きたと
きにスレーブ応答
【0118】したがって、本発明のシステムは多くの異
なる順序づけ方式に合わせて、あるいはそれどころか特
定の順序づけを必要としないトークン・システムに合わ
せて調整可能である。
【0119】II.マスタ装置からローカル・スレーブ
装置へのトランザクション要求の高速転送 第I節で説明したシステムを修正して、特にプロセッサ
からそれ自体のアドレス・バス上のスレーブに対して送
られるトランザクション要求が非ローカル・スレーブの
ためのプロセッサによって指定されるマルチプロセッサ
・アーキテクチャにおいて、全体的な帯域幅を改善する
ことができる。
【0120】図9に、アドレス・バス840を介してス
レーブ装置820とシステム・コントローラ830とに
結合されたプロセッサ810を含むマルチプロセッサ・
システム800を示す。これは、簡略化したブロック図
であり、前記の第I節のシステムで述べたすべての機
構、特に図2に示した機構を備えるものと理解された
い。本発明のこの改良をわかりやすくするために詳細は
省いてあるが、動作は以下で述べる点を除くすべての点
において同じである。
【0121】本発明のシステムは、第I節で述べたシス
テムが使用していない機構を追加する。すなわちSC8
30からスレーブ820までの単一の検証線825であ
り、その使用法については以下で述べる。
【0122】スレーブ装置870とシステム・コントロ
ーラ860にはアドレス・バス880を介してもう1つ
のプロセッサ850が結合されており、このプロセッサ
はSC860からスレーブ装置870への検証線865
を備える。この場合も、ハードウェアとその使用法は第
I節で説明している通りであり、後述する改良が加えら
れている。(図2に、本発明の機構を実施する検証線2
31および232を設けることができる。)
【0123】プロセッサ810がP_REQを発行する
と、アドレス・バス840を介してシステム・コントロ
ーラ830に送信される。基本システムでは、この要求
は、グローバル順序づけ要件および宛先スレーブの要求
キューの使用可能性など、要求の有効性の検査を含めて
SC830によって処理される。有効性要件が満たされ
ている場合、P_REQは受信スレーブの要求入力キュ
ーに入れられ、この方法は前の方法と同様に進む。
【0124】しかし、SC830がP_REQを宛先ス
レーブ(たとえばスレーブ820)の要求キューに入れ
るためには、SC830はまずアドレス・バス840の
アービトレーションを要求しなければならず、そのバス
を受け取ると、それを使用してP_REQを送信するこ
とができる。このアービトレーション・プロシージャに
は、典型的には約2クロック・サイクルを要し、P_R
EQをスレーブ820に転送する際にさらに1サイクル
が使われる。
【0125】この改良では、P_REQはプロセッサ8
10(またはそれを発行したいずれかのマスタ装置)か
ら送られるときにSC830と受信スレーブ820の両
方に分岐する。図10を参照すると、ボックス423で
要求がローカル・スレーブ装置、すなわちトランザクシ
ョン要求を発行しているマスタ装置と同じアドレス・バ
ス上のスレーブ装置に宛てられたものか否かが判断され
る。これは、SC830が、P_REQの有効性を検査
するときに行うことが好ましい。
【0126】図10〜11において、図3から4のボッ
クスと同じ番号が付いている各ボックスは同じステップ
を反映している。図12のフロー・チャートとの間の分
岐を含む特定のボックスが追加されている。
【0127】図10のボックス423における判断が否
定の場合、この方法は前の方法と同様にボックス424
以降に進む。図9のプロセッサ810からスレーブ装置
820に送られるP_REQの場合のように肯定の場合
は、この方法は図12に図示されているプロシージャ9
00に進む。
【0128】図12のボックス920で、P_REQは
システム・コントローラ830とスレーブ装置820の
両方によって受信され、ボックス930でSCがその要
求をデコードし、そのスレーブ装置の要求入力キューに
もう1つ要求を受け入れる余地があるか否かを含めて、
所定の有効性基準を検査する。基準が満たされていない
場合、ボックス940でこの方法はボックス950に進
み、SCは要求を打ち切り、図10のボックス424で
通常の(非高速転送)プロシージャに戻る。
【0129】要求が有効になると、SC830は線82
5を介してスレーブ820に有効性信号を送り(図12
のボックス960)、スレーブはその信号を受け取り
(ボックス970)、それによって、すでにそのスレー
ブの入力要求キューに到着している要求を処理すること
ができるようになる。次にこの方法は、図11のステッ
プ468に進んで、第I節で説明したようにさらに実行
を続ける。
【0130】有効性信号が送られたときにP_REQは
すでにスレーブにあり、プロセッサ810によって要求
バス840で最初にアサートされたときにあらかじめそ
こに送信済みであるため、SCはアドレス・バスのアー
ビトレーションを要求する必要がなく、したがってロー
カル・スレーブ装置に対する1要求当たり約2クロック
・サイクルの節約になる。さらに、P_REQはSC自
体の内部アドレス・バス上の他の要求と競合せず、ロー
カル・スレーブに対するこのようなP_REQ1つにつ
いて少なくともさらに1クロック・サイクルが節約され
る。最後に、P_REQをSCからスレーブ装置に送信
する必要がないため少なくとも1クロック・サイクルが
節約される。P_REQは有効性信号が送信されるとき
にすでにスレーブ装置にある。この場合、P_REQが
送信されると、SCはそれを転送する必要がないためそ
れをドロップする。すなわち、スレーブ820はすでに
P_REQを受け取っているため、P_REQをSC出
力キューに入れたりアドレス・バス840を介して宛先
スレーブ820に転送したりすることなく、SC入力キ
ュー内のP_REQの場所を、占有することができるよ
うになる。また、SCは(通常のS_REPLYおよび
その他のプロシージャは実行されるが)このトランザク
ション要求の処理を打ち切る。この場合、トランザクシ
ョン要求がSCによってアドレス・バス840を介して
転送されないため、アドレス・バスのアービトレーショ
ンにサイクルを使う必要がない。
【0131】P_REQを発行するマスタに関連するS
C入力キューがいっぱいになっている場合、P_REQ
は通常の方式、すなわち第I節で基本システムについて
説明したようにしてドロップされ、後で要求を再発行す
るために前述のような方法がとられる。
【0132】SC830に到着したP_REQが別の装
置、たとえば図9の装置870に宛てられている場合、
線825で有効性信号は送られず、この方法は通常の方
式で進み、P_REQはバス890を介してSC860
に送られ、スレーブ装置870に送られる。すなわち、
SC830はトランザクション要求をスレーブ装置87
0によって処理されるように(SC860を介して)ス
レーブ装置870に有効に転送する。
【0133】ユニプロセッサ・システムにおいては、す
べてのスレーブがプロセッサのローカル・アドレス・バ
ス上にあるため、この方法は特に有利である。したがっ
て、この方法は、発行されたそのようなスレーブ要求1
つ当たり数サイクルを節約することができる。マルチプ
ロセッサ・システムでは、時間の経過とともに節約され
るサイクルの合計数は発行されたプロセッサ要求の何割
がそれぞれのローカル・アドレス・バス上のスレーブ装
置に宛てられたものであるかによって異なる。
【図面の簡単な説明】
【図1】 本発明を組み込んだコンピュータ・システム
の好ましい実施形態のブロック図である。
【図2】 図1に示すシステムの一部の詳細図である。
【図3】 組み合わせると本発明の方法の一般化された
実施形態を示すフローチャートを構成する図である。
【図4】 組み合わせると本発明の方法の一般化された
実施形態を示すフローチャートを構成する図である。
【図5】 様々なタイプのトランザクションのための本
発明によるトランザクション・フロー制御を示すブロッ
ク図である。
【図6】 様々なタイプのトランザクションのための本
発明によるトランザクション・フロー制御を示すブロッ
ク図である。
【図7】 様々なタイプのトランザクションのための本
発明によるトランザクション・フロー制御を示すブロッ
ク図である。
【図8】 様々なタイプのトランザクションのための本
発明によるトランザクション・フロー制御を示すブロッ
ク図である。
【図9】 マルチプロセッサ実施形態を示すブロック図
である。
【図10】 プロセッサからローカル・アドレス・バス
上のスレーブへのトランザクション要求をより効率的に
処理することができるプロシージャを示すフロー・チャ
ートである。
【図11】 プロセッサからローカル・アドレス・バス
上のスレーブへのトランザクション要求をより効率的に
処理することができるプロシージャを示すフロー・チャ
ートである。
【図12】 プロセッサからローカル・アドレス・バス
上のスレーブへのトランザクション要求をより効率的に
処理することができるプロシージャを示すフロー・チャ
ートである。
【符号の説明】
10 システム 20 UPAモジュール 30 プロセッサ 60 UPAポート 70 システム・コントローラ 75 システム・コントローラ 80 スレーブ 85 メモリ 90 データパス・クロスバ 92 データパス・クロスバ 94 ブートPROM 95 I/O装置 110 マスタ・インタフェース 115 バッファ 140 スレーブ・インタフェース 160 スレーブ要求入力キュー 185 スレーブ書込みデータ・キュー 231 検証線 232 検証線 290 トランザクション要求出力キュー 610 メモリ・バンク 625 データパス・クロスバ 630 UPAポート 650 システム・コントローラ 700 マスタ・インタフェース 710 スレーブ・インタフェース 720 システム・コントローラ 730 データパス・クロスバ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのマスタ装置を備える少
    なくとも1つのプロセッサと、メイン・メモリと、複数
    のスレーブ装置とを有し、前記各スレーブ装置が少なく
    とも1本のアドレス・バスを介して前記少なくとも1つ
    のマイクロプロセッサに結合されているコンピュータ・
    システムにおけるトランザクション・フローを制御する
    制御システムであって、 前記トランザクション要求を所定の基準に従って処理
    し、前記所定の基準が満たされているときに前記トラン
    ザクション要求をそれぞれの指定スレーブ装置に転送す
    るように構成された第1の論理と、 第1の前記トランザクション要求が前記第1のトランザ
    クション要求を発行するプロセッサと同じアドレス・バ
    ス上の第1の前記スレーブ装置に向けられているか否か
    を判断し、そうである場合には前記第1のスレーブ装置
    に対して有効性信号を発行して、前記所定の基準が満た
    されている場合には前記第1のトランザクション要求が
    前記第1のスレーブ装置が処理するのに有効であること
    を示すように構成された第2の論理とを含む制御システ
    ム。
  2. 【請求項2】 少なくとも1つのマスタ装置と、少なく
    とも1つのスレーブ装置と、前記マスタ装置とスレーブ
    装置の間に接続されたシステム・コントローラとを備
    え、各前記スレーブ装置がアドレス・バスを介して少な
    くとも1つの前記マスタ装置に結合されているコンピュ
    ータ・システムにおけるトランザクション・フローを制
    御する方法であって、 (1)第1の前記トランザクション要求が第1の前記ス
    レーブ装置によって処理するように指定され、第1の前
    記マスタ装置から第1の前記アドレス・バスを介して第
    1の前記システム・コントローラに前記第1のトランザ
    クション要求を発行するステップと、 (2)前記第1のシステム・コントローラにおいて、お
    よび前記第1のアドレス・バスに結合されている任意の
    前記スレーブ装置において、前記第1のトランザクショ
    ン要求を受信するステップと、 (3)前記第1のスレーブ装置が前記第1のトランザク
    ション要求を処理する所定の有効性基準が満たされてい
    るか否かを判断し、満たされている場合にはステップ
    (4)に進み、満たされていない場合には前記第1のト
    ランザクション要求の処理を少なくとも一時的に停止す
    るステップと、 (4)前記第1のスレーブ装置が前記第1のアドレス・
    バスに結合されているか否かを判断し、結合されている
    場合はステップ(6)に進み、結合されていない場合に
    はステップ(5)に進むステップと、 (5)前記第1のスレーブ装置によって前記第1のトラ
    ンザクション要求を処理し、ステップ(7)に進むステ
    ップと、 (6)前記第1のスレーブ装置に配信するために前記ト
    ランザクション要求を前記システム・コントローラから
    転送するステップと、 (7)前記システム・コントローラによる前記第1のト
    ランザクション要求の処理を終了するステップとを含む
    方法。
  3. 【請求項3】 ステップ(4)の後、ステップ(5)の
    前に、前記システム・コントローラから前記第1のスレ
    ーブ装置に有効性信号を送信して第1のトランザクショ
    ン要求が前記第1のスレーブ装置によって処理するのに
    有効であることを示すステップを含む請求項2に記載の
    方法。
  4. 【請求項4】 前記第1のスレーブ装置による前記有効
    性信号の受信時に、前記第1のトランザクション要求を
    処理するステップを含む請求項3に記載の方法。
  5. 【請求項5】 プロセッサと、 前記プロセッサに結合されたメモリと、 少なくとも1つのトランザクション要求を前記プロセッ
    サから受けるように構成され、アドレス・バスを介して
    前記プロセッサに結合されたスレーブ装置と、 前記プロセッサと前記スレーブ装置とに結合され、少な
    くとも1つの所定の基準に従って前記トランザクション
    要求を処理し、前記所定の基準が満たされているときに
    は前記トランザクション要求を前記スレーブ装置に転送
    するように構成された第1の論理を含むシステム・コン
    トローラと、 前記スレーブ装置と前記プロセッサが両方とも前記アド
    レス・バス上にあるか否かを判断し、そうである場合に
    は前記スレーブ装置に対して有効性信号を発行して、前
    記所定の基準が満たされている場合には前記第1のトラ
    ンザクション要求が前記第1のスレーブ装置が処理する
    のに有効であることを示すように構成されている第2の
    論理とを備えるコンピュータ・システム。
JP19417396A 1995-07-06 1996-07-05 パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置 Pending JPH09172460A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49872995A 1995-07-06 1995-07-06
US08/498729 1995-07-06

Publications (1)

Publication Number Publication Date
JPH09172460A true JPH09172460A (ja) 1997-06-30

Family

ID=23982261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19417396A Pending JPH09172460A (ja) 1995-07-06 1996-07-05 パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置

Country Status (3)

Country Link
US (3) US5854906A (ja)
EP (1) EP0752666A3 (ja)
JP (1) JPH09172460A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005525737A (ja) * 2002-05-13 2005-08-25 フェアチャイルド セミコンダクター コーポレイション シリアライザ及びデシリアライザ機能を有するクロスポイントスイッチ

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141692A (en) * 1996-07-01 2000-10-31 Sun Microsystems, Inc. Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol
US6230229B1 (en) * 1997-12-19 2001-05-08 Storage Technology Corporation Method and system for arbitrating path contention in a crossbar interconnect network
US6731645B1 (en) * 2000-02-29 2004-05-04 International Business Machines Corporation Methods, switches, systems, and computer program products for fair transmission of data received at multiple inputs in the order received in a queued memory switch
US6985982B2 (en) * 2000-10-27 2006-01-10 Texas Instruments Incorporated Active ports in a transfer controller with hub and ports
US7000049B1 (en) * 2000-12-28 2006-02-14 Juniper Networks, Inc. Systems and methods for reliably selecting bus mastership in a fault tolerant manner
US7085825B1 (en) 2001-03-26 2006-08-01 Freewebs Corp. Apparatus, method and system for improving application performance across a communications network
US7043533B2 (en) * 2001-12-06 2006-05-09 Sun Microsystems, Inc. Method and apparatus for arbitrating master-slave transactions
US7124410B2 (en) * 2002-01-09 2006-10-17 International Business Machines Corporation Distributed allocation of system hardware resources for multiprocessor systems
US7526595B2 (en) * 2002-07-25 2009-04-28 International Business Machines Corporation Data path master/slave data processing device apparatus and method
US7383168B2 (en) * 2003-01-06 2008-06-03 Fujitsu Limited Method and system for design verification and debugging of a complex computing system
EP1629643B1 (en) * 2003-06-02 2008-02-06 Matsushita Electric Industrial Co., Ltd. Device, method, and program for performing master/slave switching process
US7836222B2 (en) * 2003-06-26 2010-11-16 International Business Machines Corporation System and method for tracking messages between a processing unit and an external device
US6954821B2 (en) * 2003-07-31 2005-10-11 Freescale Semiconductor, Inc. Crossbar switch that supports a multi-port slave device and method of operation
KR101069605B1 (ko) * 2003-08-15 2011-10-05 톰슨 라이센싱 방송 라우터에서 변경가능한 기능
DE102004013635B4 (de) * 2004-03-19 2006-04-20 Infineon Technologies Ag Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens
US7228368B2 (en) * 2004-06-09 2007-06-05 Mediatek, Inc. Polling-based apparatus and system guaranteeing quality of service
JP2006079394A (ja) * 2004-09-10 2006-03-23 Renesas Technology Corp データ処理装置
JP4260720B2 (ja) * 2004-10-27 2009-04-30 日本テキサス・インスツルメンツ株式会社 バス制御装置
US20060176890A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric for improved communication in a data processing system
US7451231B2 (en) * 2005-02-10 2008-11-11 International Business Machines Corporation Data processing system, method and interconnect fabric for synchronized communication in a data processing system
US7483422B2 (en) * 2005-02-10 2009-01-27 International Business Machines Corporation Data processing system, method and interconnect fabric for selective link information allocation in a data processing system
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
JP2007122410A (ja) * 2005-10-28 2007-05-17 Nec Electronics Corp バス調停回路及びバス調停方法
JP4582032B2 (ja) * 2006-03-16 2010-11-17 ソニー株式会社 データ転送装置およびデータ転送システム
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
EP2416253B1 (en) * 2009-03-31 2014-07-23 Fujitsu Limited Data transmission circuit and data transmission method
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US8837493B2 (en) 2010-07-06 2014-09-16 Nicira, Inc. Distributed network control apparatus and method
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
KR101699784B1 (ko) 2010-10-19 2017-01-25 삼성전자주식회사 버스 시스템 및 그것의 동작 방법
JP5120473B2 (ja) * 2011-03-15 2013-01-16 オムロン株式会社 ネットワークシステムの設計支援装置
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
US9619410B1 (en) * 2013-10-03 2017-04-11 Jpmorgan Chase Bank, N.A. Systems and methods for packet switching
CN103729319A (zh) * 2013-12-04 2014-04-16 上海斐讯数据通信技术有限公司 基于串行总线的设备系统及数据传输方法
US9471524B2 (en) * 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4459665A (en) * 1979-01-31 1984-07-10 Honeywell Information Systems Inc. Data processing system having centralized bus priority resolution
JPS5898893A (ja) * 1981-12-09 1983-06-11 Toshiba Corp 情報処理装置
US4591982A (en) * 1983-08-29 1986-05-27 International Business Machines Corporation Storage selection override apparatus for a multimicroprocessor implemented data processing system
JPS6097458A (ja) * 1983-10-18 1985-05-31 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ転送装置
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
US5559962A (en) * 1989-10-09 1996-09-24 Yamaha Corporation Data transmission system selecting both source and destination using addressing mechanism
US5210858A (en) * 1989-10-17 1993-05-11 Jensen Jan E B Clock division chip for computer system which interfaces a slower cache memory controller to be used with a faster processor
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5269006A (en) * 1990-01-11 1993-12-07 Micral, Inc. Method and apparatus for arbitrating access to a microprocessor having real and protected modes
US5555425A (en) * 1990-03-07 1996-09-10 Dell Usa, L.P. Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
US5404137A (en) * 1991-05-09 1995-04-04 Levien; Raphael L. High speed transition signalling communication system
US5410654A (en) * 1991-07-22 1995-04-25 International Business Machines Corporation Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals
AU4454993A (en) * 1992-08-10 1994-02-17 Lucent Technologies Inc. A radio communication system and a radio base station for use in such a system
CA2116826C (en) * 1993-03-11 1998-11-24 Timothy J. Sullivan Data processing system using a non-multiplexed, asynchronous address/data bus system
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
US5548730A (en) * 1994-09-20 1996-08-20 Intel Corporation Intelligent bus bridge for input/output subsystems in a computer system
US5606672A (en) * 1995-01-27 1997-02-25 Intel Corporation Method and apparatus for multiplexing signals from a bus bridge to an ISA bus interface and an ATA bus interface
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005525737A (ja) * 2002-05-13 2005-08-25 フェアチャイルド セミコンダクター コーポレイション シリアライザ及びデシリアライザ機能を有するクロスポイントスイッチ

Also Published As

Publication number Publication date
EP0752666A2 (en) 1997-01-08
EP0752666A3 (en) 2004-04-28
US6662306B2 (en) 2003-12-09
US5854906A (en) 1998-12-29
US20020032796A1 (en) 2002-03-14
US6260174B1 (en) 2001-07-10

Similar Documents

Publication Publication Date Title
JPH09172460A (ja) パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置
EP0752667B1 (en) Method and apparatus for hybrid packet-switched and circuit-switched flow control in a computer system
US5892957A (en) Method and apparatus for interrupt communication in packet-switched microprocessor-based computer system
US7526626B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US5168547A (en) Distributed architecture for input/output for a multiprocessor system
JP3881054B2 (ja) トランザクション・フローを制御する制御システムおよびその方法
JPH0642225B2 (ja) Dma機能を有する計算機システム
WO1993019424A1 (en) System and method for supporting a multiple width memory subsystem
US20060010279A1 (en) Apparatus for use in a computer systems
US20030033350A1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
WO2004099995A2 (en) Hierarchical memory access via pipelining
JP2001160815A (ja) 集積回路における相互接続モジュール用の接続ポート
US7346072B2 (en) Arbitration mechanism for packet transmission
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
JP2001022711A (ja) クロスバースイッチの制御方法及び並列計算機システム
KR19990071122A (ko) 다중 프로세서 회로
WO2003014948A1 (en) System architecture of a high bit rate switch module between functional units in a system on a chip
GB2341766A (en) Bus architecture
GB2341767A (en) Bus arbitration
GB2341768A (en) Bus arbitration
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: 20051117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060516