JPH10124450A - データ・バッファ・フラッシュ機能を備えたコンピュータ・システム - Google Patents
データ・バッファ・フラッシュ機能を備えたコンピュータ・システムInfo
- Publication number
- JPH10124450A JPH10124450A JP9162089A JP16208997A JPH10124450A JP H10124450 A JPH10124450 A JP H10124450A JP 9162089 A JP9162089 A JP 9162089A JP 16208997 A JP16208997 A JP 16208997A JP H10124450 A JPH10124450 A JP H10124450A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- data
- buffer
- transaction
- pci
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
Abstract
イスから要求されたデータを受取るブリッジ・デバイス
を備えるコンピュータ・システムを提供する。 【解決手段】第1のデータ・バスにおけるデータ記憶デ
バイスと、第2のデータ・バスにおけるデータに対する
要求を開始する要求側デバイスと、要求を第1のデータ
・バスに送り、かつデータ記憶デバイスから要求された
データを受取るブリッジ・デバイスとを備える。ブリッ
ジ・デバイスは、要求されたデータを一時的に記憶する
データ記憶バッファと、要求側デバイスがバッファに記
憶されたデータ以外のデータに対する新しい要求を開始
する時、バッファからデータをフラッシュするバッファ
管理要素とを含む。
Description
ステムに関し、特に、データ・バッファのフラッシュ機
能を備えたコンピュータ・システムに関する。
デオ・コントローラおよびネットワーク・インターフェ
ース・カードのような周辺要素間の特別な通信プロトコ
ルを提供する1つ以上の周辺要素インターフェース(P
CI)バスと、コンピュータ・システムの主メモリとを
含む。システム・メモリおよび周辺要素(PCIデバイ
ス)が異なるバスに常駐する時、2つのバス間のデータ
・トランザクションのフロー(流れ)を管理ためにブリ
ッジが必要とされる。PCIバス・アーキテクチャは、
参考のため援用される米国オレゴン州ポートランドのP
CI Special Interest Group
により1995年6月に発行されたPCIローカル・バ
ス仕様の改訂版2.1(「PCIスペック2.1」)に
規定されている。PCI間のブリッジ・アーキテクチャ
は、参考のため援用されるPCISpecial In
terest Groupにより1994年4月に発行
されたPCI間ブリッジ・アーキテクチャ仕様の改訂版
1.0(「PCIブリッジ・スペック1.0」)に規定
されている。PCIスペック2.1およびPCIブリッ
ジ・スペック1.0のアーキテクチャの下に、PCIブ
リッジは、次の2つの種類のトランザクションをサポー
トする。即ち、目標バスにおいて完了する前に開始(始
動)バスにおいて完了するポステド・トランザクション
(全てのメモリ書込みサイクルを含む)と、開始バスに
おいて完了する前に目標バスにおいて完了する遅延され
たトランザクション(全てのメモリ読出し要求と、全て
のI/Oおよびコンフィギュレーション読出し/書込み
要求とを含む)である。遅延された読出し要求のような
遅延されたトランザクションを開始するPCIデバイス
は、ローカルPCIバスの制御を放棄して目標デバイス
が要求された情報を返送するのを待つ。要求された情報
がPCIブリッジに到着すると、この情報は遅延される
完了バッファに格納される。要求側デバイスがバスの制
御を再び取得すると、該デバイスがその作業を完了した
後にバッファに残される任意の情報がバッファから即時
フラッシュされる。
タ記憶デバイスと、第2のデータ・バスにデータに対し
て要求を出力する要求側デバイスと、第1のデバイスに
要求を送り、データ記憶デバイスから要求されたデータ
を受取るブリッジ・デバイスを備えるコンピュータ・シ
ステムを提供する。ブリッジ・デバイスは、要求された
データを一時的に記憶するデータ記憶バッファと、要求
側デバイスがバッファに記憶されたデータ以外のデータ
に対する新たな要求を開始する時、バッファからデータ
をフラッシュするバッファ管理要素とを含む。本発明の
実施の形態は、下記の特徴を含む。バッファ管理要素
は、要求側デバイスがバッファからデータの一部を取得
したならば、データをフラッシュすることができる。バ
ッファ管理要素は、要求側デバイスにより特に要求され
たデータはフラッシュできない。バッファ管理要素はま
た、別のデバイスがデータを要求側デバイスに書込む
時、バッファからデータをフラッシュすることもでき
る。バッファ管理要素は、新たな要求が読出し要求を含
む時、あるいは要求側デバイスが多数のトランザクショ
ンを一度に保持できない時にのみ、新たな要求を受取る
と同時にバッファをフラッシュすることもできる。要求
側デバイスにより要求されるデータは、1つのバッファ
に限定される。第2のデータ・バスはPCIバスであ
り、ブリッジ・デバイスはPCI間ブリッジである。本
発明の利点は、下記のとおりである。要求されるデータ
は、要求側デバイスがバッファからデータの一部を除去
してデータ・バスの制御を放棄した後でも、一時的バッ
ファに残ることができる。デバイスが新たなデータを要
求するトランザクションを開始するまで、あるいはCP
Uのような別のデバイスが新たな関連しないデータを要
求側デバイスに提供するまで、データはバッファに残る
ことができる。その結果、良好なデータが恒久的に捨て
られることがなく、デバイスがデータ・バスの制御を再
び取得した時に要求側デバイスが利用可能である。
「_」、または「!」で始まる、あるいは終わるすべて
のシグナル・ニーモニックは、反転された論理状態を意
味する。図1に示すように、コンピュータ・システム1
0は、1次PCIバス24を含み、これが共通のデザイ
ン26であるブリッジ・チップ26a及びブリッジ・チ
ップ26bに結合されている。ブリッジ・チップ26a
は、ケーブル31を介してブリッジ・チップ48aに結
合されており、ブリッジ・チップ26bは、ケーブル2
8を介してブリッジ・チップ48bに結合されている。
ブリッジ・チップ48a及び48bは共通のデザイン4
8でありかつデザイン26とも共通であるが、デザイン
26はアップストリーム・モードであり、デザイン48
はダウンストリーム・モードである点が異なる。PCI
バス24は、システム・コントローラ/ホスト・ブリッ
ジ回路18を通じてローカル・バス22とインタフェー
スされる。システム・コントローラ/ホスト・ブリッジ
回路18は更に、システム・メモリ20へのアクセスを
制御し、システム・メモリ20もまた、CPU14及び
レベル2・キャッシュ(L2キャッシュ)16とともに
ローカル・バス22に結合されている。PCI−EIS
A(Extended Industry Standard Architecture)ブリ
ッジ15は、PCIバス24をEISAバス17にイン
タフェースしている。キーボード・コントローラ21及
び読み出し専用メモリ(ROM)23は、両方ともEI
SAバス17に結合されている。EISAバス17に接
続されている不揮発性ランダム・アクセス・メモリ(N
VRAM)70の保持している情報は、コンピュータ・
システムの電源を切っても揮発しない。オートマチック
・サーバ・リカバリ(ASR、automatic server recov
ery)タイマ72は、コンピュータ・システムの不活性
動作を監視する。システムがロックアップしたときに
は、ASRタイマ72は約10分後に切れる。キーボー
ド・コントローラ21は、キーボード19を監視して、
押下されたキーを検出する。
は、PCIバス32aへのインタフェースを備え、ブリ
ッジ・チップ48bは、PCIバス32bへのインタフ
ェースを備える。PCIバス32a及び32bは、デザ
イン30が共通の2つの拡張ボックス30a及び30b
上に存在する。各拡張ボックス30には6つのホットプ
ラグ・スロット36(36a−f)があり、これらは通
常の拡張カード807(図27A参照)を電気的機械的
に接続することができる。拡張ボックス上の1つのスロ
ット34は、ブリッジ・チップ26を持ったカード46
を接続する。各ホットプラグ・スロット36には関連し
たスイッチ回路41があり、これによってスロット36
とPCIバス32間の接続及び切断が行われる。6つの
機械的レバー802を用いて(クローズまたはラッチさ
れている場合)、カード807を対応するスロットに選
択的に固定する。これに関しては、本願と同日付で出願
された「電子装置におけるカードの固定(Securing a C
ard in an Electronic Device)」と題された米国特許
出願で更に詳しく説明されており、これをここにおいて
援用する。各拡張ボックス30は、レジスタ52及び8
2を有し、これらによりレバー802及び拡張ボックス
30の状態信号を監視し、更に、レジスタ80によっ
て、スロット36とPCIバス32間の接続及び切断を
制御する。図3を参照する。ブリッジ・チップは、26
と48のペアで使用すべく設計されており、それによ
り、1次PCIバス24と2次PCIバス32との間に
PCI−PCIブリッジを形成する。プログラミング・
モデルは、2つの階層ブリッジのモデルである。システ
ム・ソフトウェアから見れば、ケーブル28は厳密に1
つのデバイス、即ち、ダウンストリーム・ブリッジ・チ
ップ48が挿入されているPCIバスである。これによ
り、1次及び2次バスを結合する2チップPCI−PC
Iブリッジのコンフィギュレーション(環境設定)が大
幅に単純化される。CPU14に近接しているブリッジ
・チップ26は、1次PCIバス24をケーブル28に
結合する。第2のPCI−PCIブリッジ48は、拡張
ボックス30内にあり、ケーブル28を2次PCIバス
32に結合する。モード・ピンUPSTREAM_CH
IPの信号は、そのブリッジ・チップがアップストリー
ム・モードとダウンストリーム・モードのいずれで動作
するかを決定する。バス・モニタ106やSIO50内
のホットプラグ・ロジックのような一部の非ブリッジ機
能は、拡張ボックス30でのみ用いられ、アップストリ
―ム・モードのチップ26では機能しない。
ネレータ102は、1次PCIバス24上のクロックP
CICLK1に基づいてクロックを生成し、生成された
クロックの1つは、ケーブル28を経由してダウンスト
リームのブリッジ・チップ48のクロック・ジェネレー
タ122に供給される。クロック・ジェネレータ122
は、1次PCIバス24と同じ周波数で拡張ボックス3
0においてPCIクロックを生成して駆動する。その結
果、両方のブリッジ・チップ26及び48が同じ周波数
で動作する。ダウンストリームのブリッジ・チップ48
は、ケーブル28の遅延分だけアップストリ―ムのブリ
ッジ・チップ26より相(フェーズ)が遅れる。データ
がケーブル28から取り出される時点におけるアップス
トリ―ムのブリッジ・チップ26の非同期境界によっ
て、相の遅延値は制限されない(従って、ケーブルの長
さは任意である)。唯一の要件は、2つのブリッジ・チ
ップの周波数が等しいことである。各ブリッジ・チップ
のコア・ロジックは、ブリッジのロジック・ブロック
(100または120)であって、これに含まれるもの
としては、それぞれのPCIバス上でマスタとして働く
べきPCIマスタ(101または123)、それぞれの
PCIバス上でスレーブ・デバイスとして働くべきPC
Iターゲットあるいはスレーブ(103または12
1)、対応するブリッジ・チップのコンフィギュレーシ
ョン情報が入るコンフィギュレーション・レジスタ(1
05または125)、及び1次PCIバスと2次PCI
バス32間のトランザクションに関連するデータが待ち
行列(キュー)に入れられて管理されている、数個の待
ち行列が入っている待ち行列ブロック(107または1
27)がある。アップストリ―ムのブリッジ・チップ2
6とダウンストリームのブリッジ・チップ48間で転送
されるデータは、それぞれブリッジ・チップ26及び4
8内のケーブル・インタフェース104及び130でバ
ッファ記憶される。
ジックも含まれている。割り込みは8つ存在し、そのう
ち6つは2次バス・スロットから、1つはSIO回路5
0から、そしてもう1つはダウンストリームのブリッジ
・チップ48からのものである。ダウンストリームのチ
ップ48において、割り込みは、割り込み受信ブロック
132で受け取られ、シーケンシャル・タイム・スライ
スによるシリアル・ストリームとして、ケーブル28を
送られる。アップストリ―ムのブリッジ・チップ26に
おいては、割り込みを割り込み出力ブロック114が受
け取り、そして、その割り込みを割り込みコントローラ
に送る。SIO回路は、制御信号を出してLEDを点灯
し、リセットをコントロールし、選択的にスロット36
をバス32に接続する。このSIO回路には、レバー8
02の結合状態及び各スロット36のカード807の状
態を読み取るロジックも含まれている。ブリッジ回路2
6は、拡張ボックス30における割り込みもサポート
し、更に、マルチチャネル割り込みコントローラへのプ
ロプラエタリ(proprietary)・インタフェースをもっ
てホスト・システムのスロットにインストールされたと
きは、各割り込みの状態をシリアル・ストリ―ムで送出
する。また、ブリッジ回路26は、ホスト・システムの
標準スロットにインストールされた場合、標準のPCI
INTA、INTB、INTC、及びINTD信号を
駆動するように構成することもできる。各ブリッジ・チ
ップには、最大7つのバス・マスタへのアクセスを制御
するためにPCIアービタ(116または124)も含
まれている。アップストリ―ムのブリッジ26がスロッ
トにインストールされると、アップストリ―ムのブリッ
ジ・チップ26内のPCIアービタがディスエーブルさ
れる。各ブリッジ・チップには、EEPROM、温度セ
ンサ等のデバイスと通信するためのI2Cコントローラ
(108、126)と、テスト・サイクルを実施するた
めのJTAGマスタ(110、128)と、バスの利用
度や効率、及びそのブリッジ・チップのプリフェッチ・
アルゴリズムの効率を測定するためのバス・モニタ(1
06、127)と、バス履歴や状態ベクトルの情報を記
憶するため及びバス・ハング状態をCPU14に通知す
るためのバス・ウオッチャ(119、129)とが含ま
れている。各ブリッジ・チップには、使用されないため
ディスエーブルされているブロックがいくつか存在す
る。アップストリ―ムのブリッジ・チップ26では、バ
ス・ウオッチャ119、SIO118、PCIアービタ
116、及びバス・モニタ106がディスエーブルされ
ている。更に、アップストリ―ムのチップ26の割り込
み受信ブロック112及びダウンストリームのチップ4
8の割り込み出力ブロック134が、ディスエーブルさ
れている。
は、1次PCIバス24(アップストリ―ム・チッ
プ)、または2次PCIバス32(ダウンストリーム・
チップ)とケーブル・インタフェース130との間を流
れるトランザクションを管理する。(以降は特筆しない
限り、ダウンストリームのブリッジ・チップは、アップ
ストリ―ムのチップと動作が同じであることを前提にし
て言及する。)待ち行列ブロック127にはケーブル・
デコーダ146があり、これにより、2次PCIバス3
2上で完了すべきトランザクションを、ケーブル・イン
タフェース130から受け取る。トランザクションをデ
コードした後、そのデコーダ146は、トランザクショ
ンを、そのトランザクションに含まれていたすべての情
報と一緒に、3つの待ち行列140、142、及び14
4のうちの1つに入れる。各待ち行列には数個のトラン
ザクション・バッファが存在し、それらの各々が1つの
トランザクションを記憶し、従って、複数のトランザク
ションを同時に処理することができる。最初の待ち行
列、即ち、ポステド(posted)・メモリ書き込み待ち行
列(PMWQ)140は、CPUが2次バス32上での
各サイクルの実行に必要なすべての情報とともに、1次
バス上に出したポステド・メモリ書き込みサイクルを記
憶する。PMWQ140は、4つのトランザクション・
バッファを持ち、それらの各々が最大8つのキャッシュ
・ライン(256バイト)のデータを有する1つのポス
テド・メモリ書き込みトランザクションを保持してい
る。状況によっては、8つのキャッシュ・ラインを超え
るデータを有するポステド・メモリ書き込みトランザク
ションは、下に述べるように後続の1つまたは2つ以上
のバッファにオーバーフローすることがある。2番目の
待ち行列である遅延された要求待ち行列(遅延要求待ち
行列)(DRQ)142は、CPUが2次バス32上で
の各トランザクションの実行に必要なすべての情報とと
もに1次バス上に出した遅延された要求トランザクショ
ン(遅延要求トランザクション)(即ち、メモリ読み出
し(MR)要求、メモリ読み出しライン(MRL)及び
メモリ読み出しマルチプル(MRM)要求のような遅延
された読み出し要求(遅延読み出し要求)(DRR)
と、ダウンストリーム・チップにおける入出力(I/
O)読み出し/書き込みやコンフィギュレーション(c
onfig、コンフィグ)読み出し/書き込みを記憶す
る。DRQ142は、3つのトランザクション・バッフ
ァを持ち、それらの各々が遅延された書き込みのため
に、1つのダブル・ワード、つまり「dword」のデ
ータを保持することができる。
ち行列(delayed completion queue、遅延完了待ち行
列)(DCQ)144は、2次バス32上で生成された
遅延要求トランザクションに応答してアップストリ―ム
・チップが供給する遅延された完了情報(遅延完了情
報)を記憶する。遅延読み出し要求については、対応す
る完了情報に、起動デバイスが要求した読み出しデータ
及び読み出し状態(ステータス)(即ち、ターゲット・
アボートに関してパリティ・エラーが発生したか否かの
表示)が入っている。遅延された書き込みトランザクシ
ョン(遅延書き込みトランザクション)用に戻される遅
延完了情報は、遅延読み出し要求のために返されるそれ
と同じであり、異なっているのは遅延された書き込みに
対しては返されるデータが無い点である。I/O及びコ
ンフィグレーション読み出し/書き込みは、ダウンスト
リームのバス上でのみ発生するので、3つのトランザク
ションのうちの1つに対応する遅延完了情報は、アップ
ストリ―ムのDCQだけに入っている。DCQ144は
8つの完了バッファを持ち、それらの各々が、単一の遅
延された要求について最大8キャッシュ・ラインの完了
情報を保持することができる。完了情報に加えて、各完
了バッファにはその情報を生成した遅延された要求のコ
ピーが入っている。遅延された読み出しトランザクショ
ン(遅延読み出しトランザクション)については、ター
ゲットのデバイスがDCQ144にデータの供給を停止
する前に要求側デバイスが要求したデータの検索を開始
すれば、1次バス24と2次バス32の間にデータの
「ストリ―ム」を確立することができる。状況によって
は、要求側デバイスがDCQ144の対応するバッファ
から要求したデータをすべて検索するときに、DCQ1
44が自動的に更なるデータを検索又は「プリフェッ
チ」する。ストリーミングと自動プリフェッチについて
は、下に詳述する。待ち行列−PCI間インタフェース
(QPIF)148は、待ち行列140、142及び1
44からPCIバス32へ、またPCIバス32からD
CQ144へ及びケーブル・インタフェース130を経
由してアップストリ―ム・チップへ流れるトランザクシ
ョンを管理する。QPIF148は、「マスタ」モード
に入り、PMWQ140及びDRQ142からのポステ
ド・メモリ書き込みと遅延要求トランザクションとを、
2次バス上で実行する。ポステド・メモリ書き込み及び
遅延要求トランザクションの両方の実行に関して、QP
IF148は一定の条件が満たされた場合、1キャシュ
・ラインに満たないデータに係るようなトランザクショ
ン(即ち、メモリ書き込み(MW)あるいはメモリ読み
出し(MR)トランザクション)を1あるいはそれ以上
のキャシュ・ラインが求められるトランザクション(即
ち、メモリ書き込み及びインバリデイト(無効化)(M
WI)トランザクションあるいはメモリ読み出しライン
(MRL)又はメモリ読み出しマルチプル(複数)(M
RM)トランザクション)に「昇格」させる。さらにQ
PIF148は、単一キャシュ・ラインのデータに係る
読み出しトランザクション(即ち、MRLトランザクシ
ョン)を、複数キャシュ・ラインのデータに係るトラン
ザクション(即ち、MRMトランザクション)に変換す
ることができる。またQPIF148は、キャシュ・ラ
インの途中から始まるようなMRLやMRMトランザク
ションについては、そのキャシュ・ライン全体を読み取
ってデータの要求されていない部分を廃棄することによ
って、それらを「訂正」する。下に詳述するトランザク
ションの昇格及び読み出しの訂正によって、メモリ・デ
バイスからのデータ検索に要する時間が短縮され、シス
テム効率が向上する。
り、要求しているPCIデバイスにDCQ144からの
データを供給し、あるいはPCIバス32からのトラン
ザクションをDCQ144へ、またケーブルを介してア
ップストリ―ムのチップへ送る。QPIF148がバス
32からポステド書き込みトランザクションを受け取っ
た場合、トランザクション・カウンタ159のグループ
のうちの対応する1つが、下に述べるように、他方のブ
リッジ・チップのPMWQが一杯になっていない旨の表
示をすれば、QPIF148はそのトランザクションを
アップストリ―ム・チップに転送する。QPIF148
は、遅延された要求(遅延要求)を受け取った場合、ま
ずその要求をDCQ144に転送してトランザクション
が既にDCQ内に入っているかを確かめ、もしそうであ
れば、対応する遅延完了情報がDCQ144に返送され
ているかどうかを確認する。遅延完了情報がそのDCQ
内にあれば、その情報は要求しているデバイスに供給さ
れ、そのトランザクションは終了される。その要求が既
に待ち行列に繋がっていても遅延完了情報がまだ返送さ
れていなければ、要求デバイス(要求するデバイス)は
再試行され、そのトランザクションはPCIバス32上
で終了される。その要求が未だ待ち行列に繋がっていな
ければ、DCQ144がそのトランザクション用に完了
バッファを予約し、QPIF148は、対応するトラン
ザクション・カウンタ159が他方のブリッジ・チップ
が一杯になっていない旨を表示する限り、ケーブル・イ
ンタフェース130を介してそのトランザクションをア
ップストリ―ムのチップに転送する。DCQ144が、
そのバッファの1つに要求デバイス用のデータが入って
いるがそれが現在のトランザクションにおいて要求され
ているデータと異なっていると判断すれば、そのバッフ
ァをフラッシュして、要求マスタによる無効なデータの
受け取りを防止する。バッファはプリフェッチ・データ
(即ち、要求デバイスがそのデータの幾らかを検索した
後にバッファに残されているデータ、もしくはそのデバ
イスによって具体的に要求されなかったデータ)が入っ
ているとフラッシュされるが、完了データ(即ち、それ
を検索するために未だ戻っていない、1つのデバイスが
具体的に要求しているデータ)が入っている場合は、フ
ラッシュされない。バッファに完了データが入ってい
て、要求デバイスがそのバッファを「ヒット」しない要
求を出力すれば、DCQ144はそのデバイスを「マル
チスレッドの(multi-threaded)」デバイス(即ち、1
つよりも多いトランザクションを一度に維持できるデバ
イス)としてタグ付けし、新しい要求に備えて、別の完
了バッファを割り当てる。バッファのフラッシュ及び複
数バッファの割り当ての手法(スキーム)については、
下に詳述する。待ち行列ブロック127のマスタ・サイ
クル・アービタ(MCA)150は、PCIブリッジ・
アーキテクチャ仕様、バージョン2.1(PCI Bridge A
rchitecture Specification, Version 2.1)で述べてい
るように、ポステド・メモリ書き込み、遅延要求、及び
遅延された完了トランザクション(遅延完了トランザク
ション)の間の標準の序列制約条件を維持する。これら
の制約条件では、バス・サイクルが強い書き込み序列を
保ち、且つデッドロックが発生しないことが求められ
る。従って、PMWQ140におけるポステド・メモリ
書き込みトランザクション及びDRQ142における遅
延要求トランザクションのPCIバス32上での実行順
序は、MCA150が決定する。さらにMCA150
は、DCQ144内に記憶されている遅延完了情報の利
用可能性を制御する。これらの規則の遵守を保証するた
め、ダウンストリームのMCA150は、各ポステド・
メモリ書き込みサイクルに対して先に出した遅延要求サ
イクルをバイパスする機会を与え、一方、ダウンストリ
ームとアップストリ―ムの両方のMCA150は、遅延
要求及び遅延完了サイクルが先に出されたポステド・メ
モリ書き込みサイクルをバイパスすることを許さない。
MCA150によって決められるトランザクションの序
列は後で詳述する。
7のトランザクション・カウンタ159は、アップスト
リ―ムのブリッジ・チップで待ち行列に繋がっているト
ランザクションの数を計数して維持する。ポステド・メ
モリ書き込み(PMW)カウンタ160は、アップスト
リ―ムのポステド・メモリ書き込み待ち行列に保持され
ているPMWトランザクションの数を表示する。PMW
カウンタ160は、PMWトランザクションがケーブル
・インタフェース130に送られる毎に増分する。この
カウンタ160は、QPIF148がケーブル・デコー
ダ146からPMWサイクルがアップストリ―ムのPC
Iバス24上で完了した旨の信号を受け取る毎に、減分
される。アップストリ―ムのPMWQでPMWトランザ
クションの最大数(4)が待ち行列に繋がったとき、P
MWカウンタ160は、「PMWフル(一杯)」の信号
(tc_pmw_full)を発し、QPIF148に
対してPCIバス32から更なるPMWサイクルを再試
行するよう、通知する。同様に、遅延要求(DR)カウ
ンタ161は、アップストリ―ムの遅延要求待ち行列に
保持されているDRトランザクションの数をカウントす
る。DRQにDRトランザクションの最大数(3)が保
持されたとき、DRカウンタ161は、「DRフル」の
信号(tc_dr_full)を発し、QPIF148
は後続のすべてのDRトランザクションをPCIバス3
2から再試行しなければならないことを示す。遅延完了
(DC)カウンタ162は、アップストリ―ムのマスタ
・サイクル・アービタで待ち行列に繋がった(入った)
遅延完了の数をカウントする。このMCAに遅延完了の
最大数(4)が入ったとき、DCカウンタ162は「D
Cフル」の信号(tc_dc_full)を発し、ダウ
ンストリームのQPIF148による2次PCIバス3
2上での遅延要求トランザクションの実行を防止する。
「フル」の状態が解消され次第、遅延完了情報をダウン
ストリームのDCQに送ることができる。PCIインタ
フェース・ブロック152は、PCIバス32と待ち行
列ブロック127の間に常駐する。PCIインタフェー
ス152は、マスタ・ブロック123及びスレーブ(タ
ーゲット)・ブロック121を含む。このスレーブ・ブ
ロック121により、バス32上のPCIデバイスはブ
リッジ・チップの内部レジスタ(例えば、ターゲット・
メモリ範囲レジスタ155及びコンフィギュレーション
・レジスタ)にアクセスでき、DCQ144に記憶され
ている完了情報を要求でき、QPIF148及びケーブ
ル・インタフェース130を介して1次バスに渡される
トランザクションを起動することができる。スレーブ・
ブロック121は、各デバイスがそのREQ#ラインを
アサートする時にそれを認識し、そのREQ#信号をP
CIアービタ124へ送ることによって、バス32上の
PCIデバイスによるPCIバス32の利用可能性をコ
ントロールする。PCIアービタ124がバスの制御権
を持つべき要求デバイスを選択するとき、スレーブ・ブ
ロック121がデバイスのGNT#ラインをアサートす
ることによって、そのデバイスにバスの使用を許可す
る。バス32の制御権が要求デバイスに与えられて、そ
のデバイスがトランザクションの開始を示すFRAME
#信号をアサートすれば、直ちに、スレーブ・ブロック
121がトランザクション情報(例えば、アドレス、コ
マンド、データ、バイト・イネーブル、パリティ等)を
スレーブ・ラッチング・レジスタ156にラッチする。
その後、待ち行列・ブロック127は、ラッチング・レ
ジスタ156からトランザクション情報を検索すること
が可能となり、それをDCQ144及びケーブル・イン
タフェース130の一方及び両方に供給する。PCIス
レーブ・ブロック121がサポートするトランザクショ
ンを、次の表に示す。
ロック123は、待ち行列ブロック127(即ち、PM
WQ140及びDRQ142に保持されているトランザ
クション)によって開始されたサイクルのみを実行す
る。待ち行列ブロック127は、PCIマスタ123に
要求信号(q2p_req)を送って、PCIバスを要
求する。要求信号を受け取ったPCIマスタ123は、
PCIアービタ124への対応する要求信号(blre
q )をアサートするかどうかを判断する。待ち行列ブ
ロック127がロックされたサイクルを実行してなく、
PCIバス32が別のPCIデバイスにロックされてい
なければ、マスタ・ブロック123はblreq をア
サートする。PCIアービタ124が待ち行列ブロック
127を選択する場合、マスタ・ブロック123が待ち
行列ブロック127に肯定応答信号(p2q_ack)
を送り、バス32の制御権を持っていることを知らせ
る。PCIアービタ124がバス32に関し他のデバイ
スからの未処理の要求を持っていなければ、待ち行列ブ
ロック127が未だq2p_req信号をアサートして
いなくても、マスタ・ブロック123は、自動的にp2
q_ackの許可信号を待ち行列ブロック127に送
る。待ち行列・ブロック127がアービトレーションを
得て(即ち、アービタ124がblgnt_ 信号をア
サートして)トランザクションの開始を示すべくそのq
2p_frame信号をアサートすれば、PCIマスタ
123は直ちに、送出トランザクション情報(即ち、ア
ドレス、コマンド、データ、バイト・イネーブル、パリ
ティその他)をPCIインタフェース152のマスタ・
ラッチング・レジスタ158にラッチする。それからト
ランザクション情報が用いられ、そのトランザクション
はPCIバス32上で完了する。マスタ・ブロック12
3がサポート(支持)しているトランザクションを、次
の表に示す。
タとして動作する。しかし、標準のPCIブリッジと異
なり、マスタ・ブロックは、マスタ待ち時間タイマ(M
LT)が切れた後でも、キャシュ・ラインの境界に達す
るまでは、MRL、MRM、またはMWIトランザクシ
ョンを終了させない。また、マスタ・ブロック123
は、「イニシエータ(初期化)準備完了」(IRDY)
の待機状態をアサートしない。待ち行列ブロック127
がその「ロック」信号(q2p_lock)をアサート
し、待ち行列ブロック127がその「アンロック」信号
をアサートしたときにバス32上におけるロックを解除
すれば、マスタ・ブロック123は、PCIバス32上
でロックされたサイクルを実行する。さらに図57を参
照する。PCIインタフェース152には、バッファ・
フラッシュ・ロジック154が入っており、これによ
り、いつDCQ完了バッファの1つまたはすべてを待ち
行列ブロック127によってフラッシュさせるかを決定
する。PCIスレーブ121が2種類の信号を生成し、
待ち行列ブロック127がこれらを用いて完了バッファ
をフラッシュする。それらの信号は、バッファをフラッ
シュする時を示すフラッシュ信号(p2q_flus
h)、及びどのPCIデバイス(即ち、PCIバス上の
どのスロット)がフラッシュされるデータを持っている
かを示すスロット選択信号(p2q_slot[2:
0])である。次の表に、p2q_slot[2:0]
とPCIスロット番号の関係を示す。
き、待ち行列ブロック127は、p2q_slot
[2:0]が「000」に等しければDCQ144のす
べての完了バッファを、あるいはもしp2q_slot
[2:0]がその他の値を持っていれば8つの完了バッ
ファのうちの対応する1つをフラッシュする。待ち行列
ブロック127は、所与の時点において、もしあるなら
ば、どの完了バッファが各PCIスロットに対応するか
を追従する。コンフィグレーション書き込み(wr_c
fg)サイクルの発生後、またはI/O書き込み(io
wr)サイクルの発生後、あるいはメモリ書き込み(m
emwr)サイクルがコマンド・チェック状態(cmd
_chk_st)中にダウンストリームのターゲットを
ヒット(hit_tmem)した後に、p2q_flu
sh信号が、最初のPCIクロック(CLK)サイクル
の立ち上がりでアサートされる。p2q_flushを
このように作成すべく、ゲート2014、2016、2
018及び2020、及びフリップ・フロップ2022
が構成されている。アップストリ―ムのブリッジ・チッ
プにおいては(即ち、upstream_chip_i
信号がアサートされるとき)、CPUが1次PCIバス
上で唯一のマスタであるため、p2q_slot[2:
0]は常に「001」の値を持っている。ダウンストリ
ームのチップにおいては、p2q_slotの値は、フ
ラッシュ条件につながるサイクルが2次バス32から待
ち行列ブロック127へのサイクルであるかどうか(即
ち、p2q_qcycがアサートされているか)によっ
て、決まる。p2q_qcyc信号がアサートされる
と、p2q_slot[2:0]は、PCIスレーブ1
21に生成されるreq_slot[2:0]信号の値
をとる。req_slot[2:0]信号は、2次PC
Iバス32上の7つのデバイスのうちのどのデバイスに
バス32の制御権が許されるかを示す。PCIスレーブ
121は、バス32上の7つのスロットの各々へのGN
T#ラインの値をラッチして7ビットのラッチされた許
可(グラント)信号(latched_gnt_[7:
1]、待ち行列ブロックに属する8番目の許可ラインは
無視される)を形成し、latched_gnt[7:
1]をルックアップ・テーブル2006に従って次のよ
うにエンコードして、req_slot[2:0]信号
を生成する。
ブロックへのサイクルでなければ、2次バス32上のス
ロットの1つのターゲット・メモリ範囲へのI/O読み
出しまたはコンフィギュレーション読み出しでなければ
ならない。そのサイクルがI/O読み出しまたはコンフ
ィグレーション読み出し(即ち、!iowr AND
!wr_cfg)である場合、p2q_slot[2:
0]は、そのメモリ範囲がヒットされているPCIスロ
ットの値(mrange_slot[2:0])をと
る。それ以外の場合、そのサイクルはI/O書き込みま
たはコンフィグレーション書き込みであり、p2q_s
lot[2:0]は完了バッファがすべてフラッシュさ
れるように「000」に等しくセットされる。ゲート2
008及び2010、及びマルチプレクサ2002及び
2004は、p2q_flush[2:0]をこのよう
に生成すべく構成される。
ブル・インタフェースを介してトランザクションを受け
取り、各トランザクションを受容できる適切な待ち行列
を選択する。ケーブル・デコーダがデータ・フェーズに
ある場合(即ち、data_phaseまたはdata
_phaseの値を次のCLKサイクルで設定する非同
期信号であるnext_data_phaseがアサー
トされるとき)、ケーブル・デコーダ146はケーブル
経由で送られてくるコマンド・コード(cd_cmd
[3:0])を調べて、トランザクションを受け取るべ
き待ち行列を決定する。下の表に示されるように、cd
_cmd[3:0]は「1001」の値を持っていると
き、トランザクションは遅延完了であり、従ってケーブ
ル・デコーダは、cd_dcq_select信号をア
サートし、DCQに対してそのトランザクションを要求
するようにする。コマンド・コード信号(cd_cmd
[2:0])の3つのLSBが「111」であるとき、
トランザクションはポステド(ポストされた)・メモリ
書き込みであり、従ってケーブル・デコーダは、cd_
pmwq_select信号を生成し、入ってくるトラ
ンザクションについてPMWQに注意を喚起する。トラ
ンザクションがポステド・メモリ書き込みでも遅延完了
でもなく、コマンド・コードもストリーミング信号を表
していなければ、ケーブル・デコーダは、cd_drq
_select信号をアサートし、DRQに対してその
トランザクションを要求するようにする。ゲート202
4、2026、2028及び2030を、cd_dcq
_select、cd_pmwq_select及びc
d_drq_select信号をこのように生成するよ
うに構成する。各タイプのトランザクションに対応する
4ビットのコマンド・コードを、次の表に示す。
バス・マスタとの間にデータ・ストリームを設定したと
き、アップストリ―ムのケーブル・デコーダは「100
0」のコマンド・コードを受信する。このコードは、ダ
ウンストリームのチップがアップストリ―ムのチップに
対しストリーム設定完了を知らせるために生成したスト
リーミング信号を表す。ケーブル・デコーダは、このコ
マンド・コードを受け取ったときcd_stream信
号をアサートして、アップストリ―ムのデバイスのQP
IFに対してそのトランザクションを続けるよう指示す
る。ケーブル・デコーダはさらに、cd_stream
_next_data信号を生成し、アップストリ―ム
のチップに対し2次バスに別のデータを1つ供給するよ
うに指示する。cd_stream_next_dat
a信号は、cd_stream信号がアサートされると
きにアサートされ、そのトランザクションはデータ・フ
ェーズにあり(即ち、data_phaseがアサート
されている)、そして、next_data信号がダウ
ンストリーム・チップからケーブル・インタフェースを
介して受け取られている(next_data信号はc
2q_buff[3:0]信号のラインの1つに現れ、
ストリームが発生していないとき、ダウンストリームの
どのDCQバッファが現在のトランザクションに関連し
ているかを待ち行列ブロックに知らせる)。cd_st
ream_next_data信号は、cd_stre
am信号がデアサートされるか、または新しい要求がケ
ーブル・インタフェースから受け取られた(即ち、c2
q_new_reqがアサートされる)ときにデアサー
トされる。ゲート2032及び2034は、cd_st
ream及びcd_stream_next_data
信号をこのように生成すべく構成される。
(PMWQ)140は記憶エレメントであり、ターゲッ
トのバス上におけるポステド書き込みトランザクション
の実行に必要なコマンド情報がすべてこれに入ってい
る。PMWQは、各トランザクションを識別する情報を
保持するタグ・メモリ部分2036、PMWQにおける
各トランザクションに関連する書き込みデータを保持す
るデータRAM2038、及びPMWQ内外へのトラン
ザクションの流れを管理する各種の制御ブロックを含
む。次の表に示すように、PMWQにおける各トランザ
クションについて、タグ・メモリ2036は、書き込ま
れるべきアドレス、PCIコマンド・コード(MWまた
はMWI)、アドレス・パリティ・ビット、及び「ロッ
クされたサイクル」や「デュアル・アドレス・サイク
ル」の表示ビットといった情報を保存している。タグ・
メモリ2036は、さらにPMWQにおける各トランザ
クションに対応するデータのデータRAMの位置へのポ
インタも記憶している。
ンザクションはそれらが受け取られた順に実行されるべ
きことを規定しているので、タグ・メモリ2036は循
環FIFOデバイスとなる。PMWQ及び、従ってタグ
・メモリ2036は、同時に4つまでのポステド・メモ
リ書き込みのトランザクションを処理することができ
る。データRAM2038は、PMWQにおける各トラ
ンザクションに1つずつ、合計4つのデータ・バッファ
2042、2044、2046及び2048を含む。各
バッファは、最大8つのキャシュ・ライン、又は256
バイトのデータ(1キャシュ・ラインにつき8ワード)
を保持することができる。1つのバッファにおける各キ
ャシュ・ラインについて、バッファは、8つのデータ・
パリティ・ビット2040(dwordにつき1つ)及
び32のイネーブル・ビット2050(1バイトにつき
1つ)を記憶している。ケーブル・インタフェース・ブ
ロック2060は、各トランザクション及び関連するデ
ータをケーブル・デコーダから受け取り、そのトランザ
クションをタグ・メモリ2036に入れる。待ち行列イ
ンタフェース・ブロック2053は、ケーブル・インタ
フェース・ブロック2060からデータを受け取り、そ
れをデータRAM2038内の適当な位置に入れる。さ
らに待ち行列インタフェース2053はデータRAM2
038からデータを検索し、QPIFがPCIバス上で
対応するトランザクションを実行しているとき、そのデ
ータをQPIFに供給する。入力ポインタ・ロジック・
ブロック2054は、待ち行列インタフェース2053
に対して次のデータ・ワードをどこに入れるかを示す入
力ポインタを各バッファに1つずつ、合計4つ生成す
る。有効(出力)ポインタ・ブロック2056は、次に
取られるワードの位置を示す出力ポインタを各バッファ
に1つずつ、合計4つ生成する。
ジック・ブロック2052は、データRAM2038に
おいて4つのバッファの各々について8ビットの有効ラ
イン・レジスタ2062を1つずつ保持している。有効
ライン・レジスタ2062は、各バッファ内の8つのキ
ャシュ・ラインのどれに有効なデータが入っているかを
示す。1つのキャシュ・ラインの最後のワードがデータ
で充填される(即ち、valid_pointer
[2:0]が「111」に等しく、cd_next_d
ataがアサートされてそのワードが充填されているこ
とを示す)場合、8ビットのケーブル有効信号における
対応するビット(即ち、q0_cable_valid
[7:0]、q1_cable_valid[7:0]
等)がセットされる。セットすべきビットは、充填され
ているキャシュ・ラインを示す有効ポインタ(vali
d_pointer[5:3])の3つのMSBによっ
て決定される。トランザクションの終わりでケーブル・
デコーダからスロット・バリデーション(validation)
信号(validate_slot)を受け取ったと
き、ケーブル有効信号における対応するビットもセット
される。ケーブル有効信号は、最後のワードが充填され
るか又はvalidate_slot信号が受信された
後、最初のPCIクロック・サイクル(CLK)の立ち
上がりで、選択されたデータ・バッファに対応する有効
ライン・レジスタ2062にラッチされる。それ以外の
場合、有効ライン・レジスタはその現在値を維持する。
有効ライン・レジスタ2062におけるビットは、8ビ
ットの無効信号(即ち、q0_invalid[7:
0]、q1_invalid[7:0]等)の対応する
ビットがアサートされたときにクリアされる。有効フラ
グ・ロジック・ブロック2052は、pmwq_val
id[3:0]信号を生成して、この信号は、もしある
とすれば、4つのデータ・バッファのどれに少なくとも
1つの有効なデータのラインが入っているかを示す。有
効ブロック2052は、さらにpmwq_valid_
lines[7:0]信号を生成して、選択されたデー
タ・バッファの8つのキャシュ・ラインのうちのどれが
有効であるかを示す。QPIFからの待ち行列選択信号
(q2pif_queue_select[1:0])
を用いて、pmwq_valid_lines[7:
0]信号を生成するために、どのデータ・バッファの有
効ライン・レジスタ2062を用いるかを選択する。待
ち行列ブロックがバスの制御権を得て選択されたデータ
・バッファからのポステド・メモリ書き込みサイクルを
実行するとき、その待ち行列ブロックは、対応するビッ
トがpmwq_valid_lines[7:0]信号
においてセットされる各ラインのデータをすべて転送す
る。最初のデータ・バッファ(q0_valid[7:
0])に対しての有効ライン・レジスタ2062におけ
る値を設定すべく、ゲート2064、2066、206
8、2070及び2072、及びフリップ・フロップ2
074が構成される。同様の回路が、他の3つのデータ
・バッファに対しての有効レジスタの内容を決定する。
マルチプレクサ2076は、pmwq_valid_l
ines[7:0]信号の値を選択する。
ジック・ブロック2058は、4つのデータ・バッファ
の各々について8ビットのフル・ライン・レジスタ20
78を1つずつ保持している。各フル・ライン・レジス
タ2078の内容は、対応するデータ・バッファにおけ
る8つのキャシュ・ラインのどれがフル(一杯)になっ
ているかを表示する。各フル・ライン・レジスタ207
8のビットは、下に述べるフル・ライン状態マシン20
80によって生成された非同期のnext_full_
line_bit信号によってセットされる。QPIF
からの待ち行列選択信号(select_next_q
ueue[3:0])がデータ・バッファの1つを選択
し、next_full_line_bit信号がアサ
ートされた場合、有効ポインタ(valid poin
ter[5:3])の3つのMSBによって示されるキ
ャシュ・ラインに対応するフル・ライン・レジスタ20
78のビットがセットされる。3×8デコーダ2082
は3ビットの有効ポインタを何れのビットをセットする
かを決定する8ビット信号に変換する。8ビットのフル
・ライン信号(qo full line)は、対応す
るフル・ライン・レジスタ2078の内容から各データ
・バッファに対して生成される。フル・ライン信号は、
対応するデータ・バッファにおけるどのラインが満たさ
れているか、即ちフルであるかを示す。フル・ライン論
理(ロジック)ブロック2058は、また、選択された
データ・バッファの何れのキャッシュ・ラインがフルで
あるかを示すpmwq_full_line[7:0]
信号を生成する。マルチプレクサ2084及びq2pi
f queue select[1:0]信号は、pm
wq_full_line[7:0]信号を生成するた
めに用いられる。
態マシン2080は、リセットされるとIDLE状態2
086に入る。IDLE状態2086において、nex
t_full_line_bitは零にセットされる。
トランザクションがPMWQにおかれる場合、そのトラ
ンザクションは、アドレス・フェーズ(相)とデータフ
ェーズ(相)の2つのフェーズで起こる。データ・フェ
ーズが始まり(即ち、clock_second_ph
ase信号がアサートされ)、有効ポインタがキャシュ
・ラインの最初のワードを指したとき(valid_p
ointer[2:0]=“000”)、状態マシン2
080は、DATA状態2088に遷移する。DATA
(データ)状態において、next_full_lin
e_bit信号は、有効ポインタがキャシュ・ラインの
最後のワードを指し(valid_pointer
[2:0]=“111”)、cd_next_data
信号がケーブル・デコーダにアサートされ(最後のワー
ドはデータで充填されたことを示す)、ケーブル・デコ
ーダからのバイト・イネーブル信号(cd_byte_
en[3:0])が「0000」に等しい場合にのみ、
アサートされる。このような状況が発生したとき、状態
マシンもIDLE(アイドリング)状態2086に遷移
して戻る。トランザクションが終了する(即ち、cd_
completeがアサートされる)前にこのような状
況が起こらなければ、next_full_line_
bit信号はデアサートされたままとなり、状態マシン
2080はIDLE状態2086に遷移して戻る。状態
マシン2080はまた、cd_byte_en[3:
0]信号が「0000」以外の値になった場合、nex
t_full_line_bit信号をアサートせずに
IDLE状態2086に遷移する。
る。対応するデータを受信するデータ・バッファが一杯
になれば、通常はPMWQはケーブル・デコーダからの
トランザクションを終了しなければならない。しかし、
バッファがフルになった後でもケーブル・デコーダがデ
ータの送信を続けていれば、オーバーフロー・ロジック
・ブロック2090によってデータは次の空のバッファ
にオーバーフローするようにされる。オーバーフロー・
ロジック・ブロック2090は、オーバーフロー・レジ
スタ2092を維持しており、もしあるとすれば、4つ
のデータ・バッファのどれがオーバーフロー・バッファ
として使用されているかを表示する。オーバーフロー・
レジスタ2092の内容は、4ビットのオーバーフロー
信号(pmwq_overflow[3:0])の生成
に用いられる。トランザクションがデータ相にあり(即
ち、data_phaseがアサートされる)、有効ポ
インタが1つのデータ・バッファの最後のワードに達し
(即ち、valid_pointer[5:0]=“1
11111”)、ケーブル・デコーダがデータが更に入
ってくることを示し(即ち、cd_next_data
がアサートされる)、そしてケーブル・デコーダがその
トランザクションの完了を示していない(即ち、cd_
completeがアサートされていない)場合には、
最近フルになったデータ・バッファを指すselect
_next_queue[3:0]信号が使用されて、
次のデータ・バッファに対応するオーバーフロー・レジ
スタのビットがセットされる。もしこれらの条件が満た
されなければ、そのオーバーフロー・ビットがクリアさ
れる。ゲート2094及び2095がselect_n
ext_queue[3:0]信号と関連して用いら
れ、これらの条件が満たされたときに、適切なオーバー
フロー・レジスタのビットのセット及びクリアを行う。
単一のトランザクションが、最後の未使用バッファが一
杯になるまで追加のバッファに継続してオーバーフロー
することがある。複数のバッファが1つのオーバーフロ
ー・バッファとして使用される場合は、オーバーフロー
・レジスタの複数のビットがセットされる。オーバーフ
ロー・レジスタ内における連続してセットされたビット
は、1つのトランザクションが複数のバッファにオーバ
ーフローしたことを表示する。ポステド・書き込みトラ
ンザクションがPMWQに入っているとき、オーバーフ
ロー・ビットはセットまたはクリアされる。また、もし
QPIFがターゲットのバス上でPMWトランザクショ
ンの実行を開始し、データがまだPMWQに入ってきて
いる間に元のバッファを空にし始めれば、オーバーフロ
ーのトランザクションを継続するために元のバッファを
再び使用できる。オーバーフローは使用可能なすべての
バッファが一杯になるまで継続できる。
上において遅延読み出し要求(DRR)及び遅延書き込
み要求(DWR)トランザクションを完了するために必
要な情報をすべて記憶する。DRQは、読み出される又
は書き込まれるべきアドレス、PCIコマンド・コー
ド、バイト・イネーブル、アドレス及びデータのパリテ
ィ・ビット、「ロックされたサイクル」及び「デュアル
・アドレス・サイクル」表示ビット、及び完了情報用に
対する起動ブリッジ・チップにリザーブされた遅延完了
バッファのバッファ番号のような情報を含む。また、待
ち行列メモリ2100は、遅延書き込みサイクルにおい
てターゲット・バスに書き込まれるべき最大32ビット
(1ワード)のデータを保持する。遅延書き込みサイク
ルでは1ワードを超えるデータが係ることがないので、
DRQにはデータRAMが必要でない。DRQ及び待ち
行列メモリ2100は、同時に3つまでの遅延要求トラ
ンザクションを保持することができる。ケーブル・イン
タフェース・ブロック2102は、ケーブル・デコーダ
から遅延要求トランザクションを求め、それらを待ち行
列メモリ2100に入れる。DRQ待ち行列メモリ内に
維持される情報を、次の表に示す。
ロジック・ブロック2104は、DRQが待ち行列メモ
リ2100内におけるトランザクションの実行に必要な
すべての情報を受け取った時点を判定する。DRQスロ
ットの1つが対応するスロット選択信号(即ち、第1ス
ロットに対してselect_zero、第2スロット
に対してselect_one、及び第3スロットに対
してselect_two)によって選択され、val
idate_slot信号がケーブル・デコーダによる
DRQに対するトランザクションの送達の完了を表示し
てそのスロットを有効としたとき、そのスロットに対応
する有効信号(即ち、q0_valid、q1_val
id、またはq2_valid)が次のPCIクロック
(CLK)サイクルの立ち上がりでアサートされる。ス
ロットが選択されなくてvalidate_slot信
号によって有効とされない場合、そのスロットの有効信
号は、QPIFがDRQ選択信号(q2pif_drq
_select)をアサートしてそのスロット(q2p
if_quuue_select=スロット番号)を識
別することによってそのスロットを選択したが、サイク
ル・アボート信号(q2pif_abort_cycl
e)をアサートすることによってそのトランザクション
をアボートした場合には、デアサートされる。また、Q
PIFが更なるデータを待っている(即ち、q2pif
_next_dataがアサートされている)間にDR
Qがサイクル完了信号(例えば、q0_cycle_c
omplete)をアサートしてそのトランザクション
を終了すれば、そのバリッド信号はデアサートされる。
しかし、QPIFが他のブリッジ・チップに対してデー
タのストリーミングを現在行っていれば(即ち、q2p
if_streamingがアサートされている)、そ
のサイクル完了信号は無視される。それ以外の場合、そ
のスロットの有効信号がクロック・サイクルで特にアサ
ートもデアサートもされなければ、現在値が保持され
る。有効フラグ・ロジック・ブロック2104もDRQ
有効信号(drq_valid[3:0])を生成し、
これが各個別のスロットに関する有効信号を組み合わせ
ることにより(即ち、drq_valid={0,q2
_valid,q1_valid,q0_vali
d})、3つのDRQスロットのうち、もしあるとすれ
ば、どれに有効なトランザクションが入っているかを表
示する。スロットの有効信号及びDRQ有効信号をこの
ようにして生成するように、ゲート2106、210
8、2110、2112、2114、マルチプレクサ2
116、2118、及びフリップ−フロップ2120が
構成される。DRQは更にポインタ・ロジック・ブロッ
クを含み、これが遅延読み出し要求トランザクション中
にデータが読み出されるべきメモリ位置へのポインタを
保持している。遅延読み出しトランザクションが開始さ
れる位置のアドレスが待ち行列メモリ2100にロード
されたとき、有効ポインタ・ロジック・ブロック212
2が6ビットの有効ポインタを生成し、これがトランザ
クションがどこで終了するかを示す。そのトランザクシ
ョンがシングル・ワードに係るもの(例えば、メモリ読
み出し)であれば、その有効ポインタ・ロジック・ブロ
ック2122がその有効ポインタを待ち行列メモリ21
00にロードされるアドレスに等しくなるように設定す
る。メモリ読み出しライン・トランザクションについて
は、有効ポインタ・ロジック・ブロック2122が有効
ポインタに「000111」の値を設定し、これは、デ
ータの最後の有効部が開始点から8ダブル・ワード(即
ち、1キャシュ・ライン)先にあることを示す。メモリ
読み出しマルチプル・トランザクションについては、有
効ポインタが「111111」にセットされ、これは、
データの最後の有効部が開始点から64ダブル・ワード
(即ち、8キャシュ・ライン)先にあることを示す。有
効ポインタ・ロジック・ブロック2122は、DRQの
各スロットについて1つの有効ポインタを保持している
(valid_pointer_0[5:0]、val
id_pointer_1[5:0]、及びvalid
_pointer2[5:0])。下に詳述するよう
に、DRQがQPIFからストリーミング信号(q2p
if_streaming)を受信するとき、有効ポイ
ンタの位置はDRQに無視される。
4は、DRQの各スロットにつき1つずつ、合わせて3
つの出力ポインタ(output_pointer_0
[5:0]、output_pointer_1[5:
0]、及びoutput_pointer_2[5:
0])を保持し、それらはメモリから読み出されて他方
のブリッジ・チップに送られるべき次のデータのワード
を示す。このポインタは、QPIFが次のデータを読み
出す態勢にあることを表示すると(即ち、QPIFがq
2pif_next_dataをアサートする)、毎度
のワード読み出しにつき1つ増分する。ストリーミング
の状態にある場合を除き、トランザクションは出力ポイ
ンタが有効ポインタに達したとき終了(完了)する。も
しデータをすべて読み出す前(即ち、出力ポインタが入
力ポインタに達する前)にトランザクションが終了した
場合、QPIFは、トランザクションが再開するときに
出力ポインタが示す位置でピックアップを行う。出力ポ
インタが増分したが出力ポインタ・ロジック・ブロック
2124がステップバック(stepback、後退)信号(q
2pif_step_back)を受信して、QPIF
がデータの最後の部分を読み出すことができないうちに
トランザクションがPCIバス上で終了したことが表示
された場合、出力ポインタ・ロジック・ブロック212
4は、読み出されていないデータの最後の部分がトラン
ザクションが再開したときに読み出せるように、カウン
タを1つ減分する。待ち行列インタフェース・ブロック
2126は、トランザクションの情報及び有効ポインタ
と出力ポインタをQPIFに渡す。
出される各遅延された要求(遅延要求)に対するターゲ
ット・バスの応答が入っている遅延完了メッセージ(遅
延された完了メッセージ)を保持する。遅延読出し要求
(遅延された読み出し要求)に対応する遅延完了メッセ
ージは要求されたデータを含み、一方遅延書込み要求
(遅延された書き込み要求)に対応する遅延完了メッセ
ージには何も含まれていない。ケーブル・インタフェー
ス・ブロック2130はケーブル・デコーダに遅延完了
メッセージを要求し、その遅延完了情報をタグ・メモリ
2132に供給する。DCQ及び、従ってタグ・メモリ
2132は一度に最大8つの遅延完了メッセージを保持
できる。タグ・メモリ2132は、遅延完了メッセージ
の元となる要求の中に入っているPCIコマンドやアド
レス、バイト・イネーブル・ビット、アドレス及びデー
タ・パリティ・ビット、及び「ロックト・サイクル」や
「デュアル・アドレス・サイクル」ビットといった情報
を保存する。また、常に1ワードのみのデータを対象と
する遅延書込みトランザクションについては、タグ・メ
モリ2132は書き込まれたデータのコピーを保持す
る。タグ・メモリ2132内の8つのスロットの各々
は、DCQデータRAM 2134内の8つのデータ・
バッファの対応する1つへの暗示ポインタを含む。遅延
読出しトランザクションについては、返されたデータが
データRAM 2134内の対応するデータ・バッファ
2135a−hに入る。DCQ内における各トランザク
ションに関するタグ・メモリ内の情報を次の表に示す。
データ・バッファの各々が最大8キャシュ・ラインの遅
延完了データを保持する。従って、これらのバッファは
最も大きい遅延要求トランザクション(メモリ読出し多
重トランザクション)に関する完了データをすべて格納
できるほど大きい。しかし、各データ・バッファの容量
はブリッジ・チップのコンフィギュレーション・レジス
タ内のコンフィギュレーション・ビット(cfg2q_
eight_line)をセットすれば4キャシュ・ラ
インに減らされる。各データ・バッファは、単一の遅延
完了トランザクションにおけるデータで、あるいは1回
の遅延完了トランザクションですべての要求データが返
されない場合は、複数の遅延完了トランザクションにお
けるデータで満たされる。しかし、要求データを供給す
るために必要とする遅延完了トランザクションの回数に
関わらず、各データ・バッファには1つだけの元の遅延
要求に対応するデータしか入れることができない。待ち
行列インタフェース・ブロック2136は、完了データ
のDCQケーブル・インタフェース2130からデータ
RAM 2134内への、及びデータRAM2134か
らQPIFへの完了データの流れをコントロールする。
3つのロジック・ブロックがポインタを生成し、それら
によって8つのデータ・バッファに保存されるデータの
出し入れを管理する。1番めのブロックである入力ポイ
ンタ・ロジック・ブロック2138は、8つのデータ・
バッファの各々への6ビットの入力ポインタ(in_p
ointer_0[5:0]、in_pointer_
1[5:0]等)を有する。各入力ポインタは、次のデ
ータ・ワードが入るべき対応するデータ・バッファ内の
ロケーションをポイントする。2番目のブロックである
出力ポインタ・ロジック・ブロック2140は、8つの
バッファの各々について1つの6ビットの出力ポインタ
(out_pointer_0[5:0]、out_p
ointer_1[5:0]等)を有する。各出力ポイ
ンタは、QPIFによって最後に除去されたワードの直
後のデータ・ワードのロケーッションをポイントする。
選択されたデータ・バッファ用の出力ポインタは、QP
IFがデータの次の部分に対する準備が完了したことを
表示すると(即ち、q2pif_next_dataが
アサートされる)増分する。出力ポインタが増分して
も、トランザクションがQPIF以外のデバイスによっ
て終了されたためデータの最後の部分が要求しているデ
バイスに達しなければ、QPIFがステップバック信号
(q2pif_step_back)をアサートするこ
とによって出力ポインタ・ロジック・ブロック2140
がその出力ポインタを1ワード減分する。3番目のポイ
ンタ・ブロックである有効ポインタ・ロジック・ブロッ
ク2142は、8つのデータ・バッファの各々について
6ビットの有効ポインタ(valid_pointer
_0[5:0]、valid_pointer_1
[5:0]等)を有し、これによって対応するデータ・
バッファ内のQPIFに得られるべき次のデータ・ワー
ドを示す。PCIスペック2.1では、先に開始されて
いるポスティッド・メモリ書込みトランザクションの前
に読出し完了データを返せない旨が規定されているた
め、PMWQ内でポスティッド・メモリ書込みが始まろ
うとしているときにDCQ内に入れられた遅延完了デー
タは、そのポスティッドメモリ書込みがPCIバス上で
完了してPMWQから除去されるまでは要求しているデ
バイスに得られる状態にならない。従って、先に待ち行
列に入れられたポスティッド・メモリ書込みトランザク
ションがPMWQ内に残っている限り、有効ポインタは
その現在位置に留まっていなければならない。そして、
先に待ち行列に入れられたポスティッド・メモリ書込み
がすべてPMWQから除去されたとき、有効ポインタを
イン・ポインタと同じ位置に移動させることができる。
PMWQが空のときは、すべての遅延完了データはDC
Q内に入れられると直ちに有効(即ち、要求しているデ
バイスに得られる状態)となる。
インタ・ロジック・ブロック2142は、PMWQ内で
ポスティッド・メモリ書込みが始まろうとしているとき
に遅延完了待ち行列に入る遅延完了トランザクションを
すべて有効とするよう、マスタ・サイクル・アービタ
(MCA)に要求しなければならない。しかし、MCA
は一度に4つを超える遅延完了トランザクションを待ち
行列に入れられることができないので、下に述べるよう
に、有効ポインタ・ロジック・ブロック2142は一度
に4つを超えない遅延完了データ・バッファの有効性
(妥当性)検査を要求する。有効ポインタ・ロジック・
ブロック2142は、更に特定の時点にMCA内で待ち
行列に入れられた4つの遅延完了トランザクションがど
れであるかを監視していなければならない。このため
に、有効ポインタ・ロジック・ブロック2142は4ス
ロットのレジスタを2つ持っている: 即ち、DCQバ
ッファ番号レジスタ2144、及び有効性検査要求レジ
スタ2146である。バッファ番号レジスタ2144
は、MCA内で待ち行列に入れられている各遅延完了ト
ランザクションの、ケーブル・デコーダが出すDCQバ
ッファ番号信号(cd_dcq_buff_num
[2:1])で決定される3ビットのDCQバッファ番
号を保持する。有効性検査要求レジスタ2146は、バ
ッファ番号レジスタ2144の4つのスロット2148
a−d内に格納されている番号のDCQバッファの各々
について1つのトランザクション有効性検査要求ビット
を保持している。有効性検査要求レジスタ2146のス
ロット2150a−dの各々の中の要求ビットは、もし
対応する遅延完了トランザクションがMCA内で待ち行
列に入れられるとアサートされる。4つの有効性検査要
求スロット2150a−d内のビットの値は、一緒に4
ビットの有効性検査要求信号(dcq_valid
[3:0])としてMCAに供給される。
ち行列に入れることになると、それに対応するDCQバ
ッファ番号がcd_dcq_buff_num[2:
0]信号によってバッファ番号スロット2148a−d
の1つにロードされる。DCQバッファ番号がロードさ
れるスロット2148a−dは、2ビットの選択信号
(next_valid_select[1:0])に
よって選択される。選択信号の値は、有効性検査要求レ
ジスタ2146とルックアップ・テーブル2152(そ
の内容を下の表に示す)によって生成されるdcq_v
alid[3:0]信号の値によって決まる。スロット
は、それがnext_valid_select[1:
0]に選択されたときにロードされ、そのときはケーブ
ル・デコーダが既にDCQを選択しており、トランザク
ションを完了している(即ち、cd_dcq_sele
ct及びcd_completeがアサートされてい
る)。そして、PMWQ内で少なくとも1つのポスティ
ッド・メモリ書込みトランザクションが未処理となって
いる(即ち、pmwq_no_pmwがアサートされて
いない)。ゲート2154、2156、2158、21
60、2162、及び2x4デコーダ2164が、バッ
ファ番号レジスタ2144をこうしてロードするように
構成される。同様に、有効性検査要求レジスタ2146
が、ゲート2154、2156、2158、2160、
2162、及び2x4デコーダ2164の出力で設定さ
れる。
して、MCAは4ビットのDCQ実行信号(mca_r
un_dcq[3:0])を出力し、バッファ番号レジ
スタがポイントしているDCQバッファのうち、その有
効ポインタを更新するバッファを表示する。mca_r
un_dcq[3:0]信号は、pmwq_no_mp
w信号及び8つのデータ・バッファの各々のイン・ポイ
ンタとともに有効ポインタ更新ロジック・ブロック21
66に渡される。もしMCAがmca_run_dcq
[3:0]ビットの1つをアサートした後にもPMWQ
内にポスティッド・メモリ書込みトランザクションが残
っていると(これはポスティッド・メモリ書込みトラン
ザクションが遅延完了トランザクションが待ち行列化さ
れた後に待ち行列に入ったが、MCAが未だ対応するm
ca_run_dcqのビットをアサートしていなかっ
た場合に起こる)、MCA内に同じDCQバッファに対
応する他の遅延完了トランザクションが待ち行列に入れ
られていない限り、対応する有効ポインタが更新され
る。もし同じDCQバッファに関する遅延完了トランザ
クションがMCA内に待ち行列に入れられていれば、こ
のトランザクションに対応するmca_run_dcq
がアサートされたときにのみ有効ポインタが更新され
る。一方、pmwq_no_mpw信号がアサートされ
ると、遅延完了がMCA内にいまだ待ち行列に入れられ
ていてもいなくても、直ちにすべての有効ポインタが対
応するイン・ポインタにマッチするように更新される。
mca_run_dcqのビットがアサートされたと
き、妥当性検査要求レジスタ2146内の対応するビッ
トがクリアされる。ゲート2168、2170、217
2、2174及び2176は、有効性検査要求レジスタ
のビットをこうしてクリアするように構成される。
ク・ブロック2180は、PCIバス上の要求デバイス
からの遅延要求トランザクションがDCQ内の遅延完了
メッセージの1つを「ヒット」した時点を特定する。P
CIスペック2.1によれば、遅延完了が1つの要求に
マッチさせらるためには、次の属性が同一でなければな
らない: 即ち、アドレス、PCIコマンド、バイト・
イネーブル、アドレス及びデータ・パリティ、データ
(書込み・要求の場合)、REQ64#(64ビット・
データのトランザクションの場合)、及びLOCK#
(サポートされている場合)。要求がPCIスレーブに
ラッチされたとき、QPIFは要求情報を検索してそれ
をDCQに送り、そしてチェック・サイクル信号(q2
pif_check_cyc)をアサートして、要求情
報をDCQタグ・メモリ2132内に格納されている遅
延完了メッセージと比較するようDCQのヒット・ロジ
ック2180に指示する。ヒット・ロジック2180
は、64ビットのアドレス信号(q2pif_addr
_[63:2])、4ビットのPCIコマンド信号(q
2pif_cmd[3:0])、4つのイネーブル・ビ
ット(q2pif_byte_en[3:0])、デュ
アル・アドレス・サイクル・ビット(q2pif_da
c; PCIのREQ64#信号に対応するビット)、
QPIFからのロック・ビット(q2pif_loc
k)、及び、もし要求が書込み要求であれば書き込まれ
るべきデータ(q2pif_data[31:0])を
受け取る。PCIスペック2.1に規定されていない
が、QPIFは更に下に述べるように待ち行列ブロック
のバッファ・フラッシュ・ルーチンを強化するため、要
求デバイスのスロット番号(q2pif_slot
[2:0])を供給する。それからヒット・ロジック2
180は、これらの信号の各々を8つのDCQバッファ
内に保存されている遅延完了情報と比較する。もしすべ
ての信号が遅延完了メッセージのいずれかとマッチすれ
ば、ヒット・ロジック2180は8ビットのヒット信号
(dcq_hit[7:0])内の対応するビットをア
サートして、マッチする完了メッセージが入っているバ
ッファを識別する。ヒットが発生するとQPIFは完了
メッセージを検索し、それを要求しているデバイスに渡
し、もしその要求が読出し要求であれば、データRAM
2134内の対応するデータ・バッファから返された
データの除去を開始する。もしその要求情報がDCQ内
の遅延完了メッセージのいずれの完了情報ともマッチし
なければ、その要求はDCQを「ミス」し、次に利用可
能なDCQバッファに入れられ、QPIFによりケーブ
ルを介して他方のブリッジ・チップに転送される。下に
詳述するように、DCQをミスする要求を発するPCI
デバイスは、その完了メッセージが返されるまで、その
REQ#ラインをマスクしておくことができる。ヒット
・ロジック2180は多重スレッド・マスタ検出ブロッ
ク2182にもインタフェースし、もしあるとすれば、
多重スレッド・デバイスの入っているPCIスロットを
検出する。多重スレッド・デバイスは一度に複数の遅延
トランザクションを保持することができ、従って特別に
扱われなければならない。多重スレッド・マスタが検出
されると、コンフィギュレーション・レジスタ内の対応
するビットがセットされ、そのデバイスは複数の未処理
の遅延トランザクションを維持することができ、従って
そのREQ#ラインがマスクされるべきであることを表
示する。マルチスレディッド・マスタの検出については
下に詳述する。DCQは、その別の機能として1次と2
次PCIバス間に読出しデータのストリームを設定する
機会の存在する時点を判断する。ストリーミングの機会
は、ターゲット・デバイスによってまだターゲット・バ
ス上に置かれている状態のケーブル・デコーダによって
遅延完了データがDCQ内に入れられているときに存在
する。もしターゲット・デバイスがまだPCIバス上に
データを出している間にトランザクションを開始したP
CIデバイスが再びその要求を発すれば読出しストリー
ムが設定される。読出しストリーミングは1次と2次P
CIバス間におけるデータ転送の効率的な方法であるた
め、PCIブリッジ・チップはバス・アービトレーショ
ン・プロセス中にその完了データが到着しているデバイ
スに高い優先順位を与えるのみならず、ストリームが設
定される可能性を高めるために非ストリーミングのトラ
ンザクションの終了を試みる。しかし、理論的にはスト
リーミングはいずれの読出しサイクル中にでも発生し得
るが、実際上は大量のデータが係るトランザクション
(メモリ読出し多重トランザクション)中でのみ発生す
る可能性が高い。従って、待ち行列ブロックはストリー
ミングの機会に利するように、その可能性のあるストリ
ーミング・トランザクションがメモリ読出し多重トラン
ザクションであるときにのみ他のトランザクションの終
了を試行する。
リーム・ロジック・ブロック2184はストリームの機
会があるか否かを判断し、もしあると判断すればそのス
トリームのサポートに必要な信号を生成する。ストリー
ム・ロジック・ブロック2184は、可能性のあるスト
リームに利するべく、現在のトランザクションを切断す
るための信号を生成する。ケーブル・デコーダが遅延完
了トランザクションをDCQ内に格納するとき、ストリ
ーム・ロジック2184は、そのケーブル・デコーダが
供給するDCQバッファ番号信号(cd_dcq_bu
ff_num)を用いて対応するDCQバッファ内に保
存されているPCIコマンド・コード(q0_cmd
[3:0]、q1_cmd[3:1]等)を検索する。
もしそのコマンド・コードがメモリ読出し多重要求を表
すもの(即ち、”1100”)であれば、ストリーム・
ロジック2184は「ストリーム切断」信号(dcq_
disconnect_for_stream)をアサ
ートしてQPIF及びPCIインタフェースに対し、可
能性の高いストリーミングの機会のために現在のトラン
ザクションを終了するよう指示する。マルチプレクサ2
186及びコンパレータ2188はdcq_disco
nnect_for_stream信号を生成するよう
に構成される。そして、ケーブル・デコーダがDCQに
対して完了データの供給を続けでおり(即ち、cd_d
cq_select信号がアサートされたままになって
いる)、PMWQ内にポスティッド・メモリ書込みがな
い(即ち、pmwq_no_pmwがアサートされたま
まになっている)場合、ストリーム・ロジック2184
はストリーミング要求信号(q2a_stream)を
直接PCIアービタに送る。更にストリーム・ロジック
2184は、cd_dcq_buff_num[2:
0]信号を用い、選択されたDCQバッファ内に格納さ
れているPCIスロット番号を選択し(DCQバッファ
0 2135aはq0_master[2:0]、DC
Qバッファ1 2135bはq1_master[2:
0]等)、可能性のあるストリーミング・デバイス(q
2a_stream_master[2:0])のスロ
ット番号もPCIアービタに供給する。そして下に詳述
するように、PCIアービタは可能性のあるストリーミ
ング・デバイスのバス・アービトレーション優先順位を
上げる。もしストリーミングの機会が消滅する前に可能
性のあるストリーミング・マスタにバスの制御権が許さ
れなければ、その優先順位は通常に戻される。アップス
トリ―ムのバスにはマスタ・デバイスが1つ(CPU)
しかないので、アップストリ―ム・チップ内ではこの機
能はディスエーブルされている。ゲート2190及びマ
ルチプレクサ2192が、q2a_stream及びq
2a_stream_master信号を生成するよう
に構成される。要求しているデバイスがDCQ内に格納
されている遅延完了メッセージをヒットしたとき、8ビ
ットのヒット・信号(hit[7:0])の対応するビ
ットがアサートされる。hit[7:0]の信号は8つ
のDCQバッファのうち、どれが現在の要求にヒットさ
れたかを表示する。このとき、もし対応するDCQバッ
ファにデータが入っていれば(即ち、dcq_no_d
ataがアサートされていない)、ストリーム・ロジッ
ク2180はそのヒット信号の値をトランザクションの
期間中(即ち、q2pif_cyc_complete
がアサートされている限り)ラッチする。ヒット信号の
ラッチされたバージョンは、「遅延」ヒット信号(dl
y_hit[7:0])を形成する。もしヒット信号及
び遅延ヒット信号のいずれかがDCQバッファがヒット
されたことを表示すれば、3ビットのDCQストリーム
・バッファ信号(dcq_stream_buff
[2:0])がヒットされたDCQバッファのバッファ
番号を表示する。そして、もしケーブル・デコーダが、
そのバッファをヒットしたサイクルが進行中に(即ち、
cd_dcq_selectがアサートされていてcd
_dcq_buff_num[2:0]とdcq_st
ream_buff[2:0]が等しいとき)遅延完了
データをそのバッファに入れると、ストリーム・ロジッ
ク2180はストリーム接続信号(dcq_strea
m_connect)をアサートし、ストリームが設定
されたことをQPIFに知らせる。そのQPIFはター
ゲットのバス上のブリッジ・チップに対しストリームの
設定完了を通知する。下に詳述するが、もし一定の条件
が満たされれば、ターゲットのQPIFは開始QPIF
に停止を指示されるまでストリームを続ける。ゲート2
194、2196、マルチプレクサ2198、220
0、及びフリップ・フロップ2202が、この遅延ヒッ
ト信号を生成するように構成される。ゲート2204、
2206、2208、及びエンコーダ2210が、dc
q_stream_connect及びdcq_str
eam_buff[2:0]信号を生成すべく、示され
ているように構成される。
の状況のもとにおいて、PCIマスタが戻ってデータを
要求することを期待して、そのマスタのためにターゲッ
トのバスから自動的にそのデータをプリフェッチする。
DCQ内のプリフェッチ・ロジック・ブロック2212
は、読み出し中のマスタがそのDCQバッファ内のデー
タをすべて読み出したときにデータをプリフェッチ(事
前取出し)し、そのプリフェッチ・ロジック2212は
要求しているデバイスがシーケンシャルな読出し要求
(即ち、メモリ内の次々に連続したロケーションのデー
タを対象に続ける読み出しの要求)を持って戻ることを
期待する。マルチスレディッド・マスタのように、デバ
イスによっては1つのトランザクション内で要求される
データをすべて規則正しく読み出し、その後異なったシ
ーケンシャルでないデータを伴って戻るものがあるの
で、プリフェッチ・ロジック2122には予測回路を設
け、これによってデバイスにシーケンシャルな読出し要
求を出す傾向が現れるまでPCIバス上の各デバイスの
プリフェッチ機能をディスエーブルする。プリフェッチ
されたデータを受信していたデバイスがシーケンシャル
でない読出し要求を持って帰ると、この予測回路は直ち
にそのマスターのプリフェッチ機能をディスエーブルす
る。
リフェッチ・ロジック・ブロック2212はプリフェッ
チ予測レジスタ2214を含み、その出力である8ビッ
トのプリフェッチ・イネーブル信号(prefetch
_set[7:0])がPCIバス上の各デバイスに関
してプリフェッチ機能が利用可能か否かについての管理
を行う。プリフェッチ・イネーブル信号内のすべてのビ
ットは、リセット(RST)及びQPIFがすべてのD
CQレジスタの総フラッシュを指示したとき(即ち、g
eneral_flushがアサートされ、q2pif
_slot[2:0]が”000”になったとき)にク
リアされる。なお、general_flush信号に
ついては下に詳述する。ゲート2216及び2218に
よってprefetch_setのビットをリセットす
る信号を生成する。プリフェッチ・イネーブル信号内の
個々のビットは、対応するPCIスロットがq2pif
_slot信号によって選択され、次の条件が発生した
場合にセットされる: 即ち、要求しているデバイスが
DCQ内の遅延完了バッファをヒットした(即ち、cy
cle_hit[7:0])信号内のビットの1つがア
サートされた)、現在のトランザクションがメモリ読出
しラインまたはメモリ読出し多重サイクルである(即
ち、q2pif_cmd[3:0]信号が”1100”
または”11110”に等しい)、QPIFがサイクル
の完了を表示した(即ち、q2pif_cyc_com
pleteがアサートされた)、及びDCQバッファか
らデータの最終ワードが取り出された(即ち、last
_wordがアサートされた)。ゲート2220、22
22、2224、2228a−h、及びデコーダ222
6が、予測ビットをこうしてセットするように構成され
る。last_word信号は、要求しているデバイス
がDCQバッファの終わりを超えて読み出しを試みた場
合にプリフェッチ・ロジック2212によってアサート
される。これは、アウト・ポインタとイン・ポインタが
等しくて、DCQバッファの終わりに達したことを表示
している(即ち、4キャシュ・ラインのバッファについ
てout_pointer_X[4:0]がvalid
_pointer_x[4:0])に等しい、または8
キャシュ・ラインのバッファについてout_poin
ter_X[5:0]がvalid_pointer_
x[5:0]に等しく、要求しているデバイスがデータ
の次の部分を読み出そうとした(即ち、p2pif_n
ext_dataがアサートされた)ときに発生する。
ゲート2230、2232、及び2234がlast_
word信号をこうして生成するように構成される。プ
リフェッチ・イネーブル信号内の個々のビットは、まず
対応するPCIスロットが選択されて、PCIフラッシ
ュ条件が発生(p2q_flushがアサートされる)
するか、QPIFがDCQに対しそのバッファの有効ポ
インタのステップバックを指示(q2p_step_b
ackがアサートされる)するか、あるいは要求してい
るデバイスがDCQバッファをすべてミスするトランザ
クションを開始した(q2pif_check_cyc
がアサートされ、dcq_hitがディアサートされ
る)場合にクリアされる。ゲート2236、2238、
2240a−h、及びデコーダ2226が、予測イネー
ブル・ビットをこうしてクリアするように構成される。
リフェッチ機能がイネーブルされたとき、プリフェッチ
・ロジック2212はそのデバイスに対して2種類のプ
リフェッチ信号を生成することができる: 即ち、プリ
フェッチ・ライン信号(dcq_prefetch_l
ine)及びプリフェッチ多重信号(dcq_pref
etch_mul)。プリフェッチ・ライン信号は、要
求しているデバイスからのカレントのPCIコマンドが
メモリ読出しライン信号である場合に生成され、プリフ
ェッチ多重信号は、現在のPCIコマンドがメモリ読出
し多重信号である場合に生成される。いずれの場合にお
いても、次の条件が発生したときに対応するプリフェッ
チ信号が生成される。即ち、要求しているPCIスロッ
トのprefetch_setビットがセットされる;
コンフィギュレーション・レジスタ内の対応するプリフ
ェッチ・イネーブル・ビットがセットされる(cfg2
q_auto_prefetch_enable);ア
ップストリ―ム・チップ内のDRQバッファがフルにな
っていない(!tc_dc_full);DCQバッフ
ァ内に対応する量のプリフェッチ・データのための余裕
がある(!dcq_no_prefetch_roo
m);現サイクルがDCQバッファをヒットした;及び
要求しているマスタがDCQバッファの終わりを超えて
読み出しを試みた(last_word及びq2pif
_cyc_complete)。ゲート2242、22
44、2246、2248、2250、2252、デコ
ーダ2254、及びマルチプレクサ2256、2258
が、プリフェッチ信号をこうして生成するように構成さ
れる。プリフェッチ・ロジック2212がプリフェッチ
信号を生成するとき、対応するDCQバッファ(q0_
addr[63:7]はバッファ0、q1_addr
[63:7]はバッファ1、等)内に格納されているア
ドレスの上位57ビットと、そのバッファの出力ポイン
タ(out_pointer_0[4:0]等)の下位
5ビットを連結して、対応するプリフェッチ・アドレス
信号(dcq_prefetch_addr[63:
2])を生成する。デュアル・アドレス・サイクル信号
(dcq_prefetch_dac)は、そのプリフ
ェッチ・トランザクションがデュアル・アドレス・サイ
クルとシングル・アドレス・サイクルのいずれであるか
を表示する。dcq_prefetch_cycle信
号はDCQバッファ(q0_dac、q1_dac等)
内に格納されているデュアル・アドレスの値をとる。プ
リフェッチ・アドレス及びデュアル・アドレス・サイク
ル信号の両方について、適切な値がマルチプレクサ22
60または2262から出力され、現在の要求によって
ヒットされたDCQバッファを示す3ビットのDCQバ
ッファ番号信号によって選択される。
バッファはいくつかの異なった状態に在り得る。それら
の状態は、それぞれDCQ内のバッファ・ステート・ロ
ジック・ブロック2264によって決定される。次にバ
ッファのそれぞれの状態を示す。 1. Empty。割り当て時におかれるべき状態。バ
ッファはパワーアップ後、及びフラッシュされた後はE
mptyである。 2. Complete。バッファにはPCIバス上の
デバイスが出したリアル遅延要求(即ち、プリフェッチ
要求ではない)からの遅延完了のための完了情報が入っ
ている。PCIデバイスは未だ再接続されておらず、バ
ッファからデータを取り出していない。遅延完了トラン
ザクションは完了している。 3. Prefetch。バッファにはプリフェッチ要
求のための完了データ、または要求しているマスタがバ
ッファから切り離された後に残された要求データが入っ
ている。完了データはすべてターゲットから到着してい
る。 4. PartComplete。バッファは予約され
ており、リアル遅延要求(即ち、プリフェッチ要求では
ない)のための完了情報が入っている場合がある。マス
タは未だ再接続されておらず、バッファからデータを取
り出していない。ターゲットから到着している完了情報
はすべてではない。 5. PartPrefetch。バッファは予約され
ているか、あるいはプリフェッチ要求のための完了情報
が入っているか、または要求しているマスタがバッファ
から切り離された後に残された要求データが入ってい
る。ターゲットから到着している完了情報はすべてでは
ない。 6. Discard。バッファはPartPrefe
tch状態にあるときフラッシュされたが、最後の完了
データはターゲットから未だ到着していない。バッファ
は、トランザクションがターゲットのバス上で完了し、
最後のデータが到着する前に使用されるのを防止するた
めDiscard状態におかれる。QPIFが遅延要求
トランザクションのためにDCQバッファを要求する
と、バッファ状態ロジック2264はバッファを次の順
序で割り当てる。もしどのバッファもEmptyまたは
Prefetch状態にないと、要求しているマスタを
再試行しなければならない。
を開始してDCQ完了バッファが除外されると、バッフ
ァ状態ロジック2264はそのバッファの状態をPar
tCompleteに変える。DCQがプリフェッチ読
出しを開始すると、バッファの状態がPartPref
etchに変更される。完了データの最後の部分が到着
すると、バッファの状態がPartCompleteま
たはPartPrefetchから、それぞれComp
leteまたはPrefetchに変更される。要求し
ているデバイスが再試行された要求を再び出してバッフ
ァをヒットした場合、もしそのバッファがComple
te、Prefetch、PartComplete、
またはPartPrefetchの状態にあれば、有効
な完了データがマスタに与えられる。もしマスタが切断
の前にすべてのデータを取らなければ、バッファの状態
がPrefetchまたはPartPrefetchに
変更され、求められなかったデータはプリフェッチ・デ
ータと見なされる。バッファがCompleteまたは
Prefetchの状態にあるときにマスタがデータの
最後の部分を取れば、そのバッファの状態がEmpty
に変更される。バッファがPrefetch状態にある
ときにフラッシュ信号が受信されると、そのバッファ内
のプリフェッチ・データは破棄され、バッファの状態が
Emptyに変更される。バッファがPartPref
etch状態にあり、完了データの到着が続いていると
きにフラッシュ・イベントが発生すれば、プリフェッチ
・データがすべて到着するまで、そのバッファはDis
card状態に変更される。トランザクションが完了し
たとき、プリフェッチ・データは破棄されてバッファの
状態がEmptryに変更される。フラッシュ信号が受
信されたときバッファがCompleteまたはPar
tComplete状態に在ると、完了データがそのバ
ッファ内に残されて、バッファの状態は変更されない。
下に述べるように、PCIデバイスが新しい要求(即
ち、現在、待ち行列に入れられていなくて完了バッファ
をすべて「ミス」する要求)を出したためにフラッシュ
信号が発生すると、上に述べたように、DCQはそのト
ランザクションのために新しいバッファを割り当てる。
従って、1つのPCIデバイスに複数の完了バッファが
割り当てられている場合があり得る。PCIデバイスの
持っているバッファが完了データを保持しているか、ま
たはそれを待っていて(即ち、そのバッファがComp
leteまたはPartComplete状態に在
る)、そのデバイスが新しい要求を出す場合、そのPC
Iデバイスには複数のバッファを割り当てることができ
る。マルチスレディッド・デバイスは一時に複数のトラ
ンザクションを保持できる唯一のデバイスであるため、
多重スレッド・デバイスのみが同時に複数の完了バッフ
ァを予約できる。
ック2.1に規定されているポステド・メモリ書込み、
遅延要求、及び遅延完了サイクル間の序列制約条件を守
ってポステド・メモリ書込み及び遅延要求トランザクシ
ョンの実行順序を決定する。PCIスペック2.1に従
って、MCAは実行されるサイクルが明確な書き込み序
列を保ち、且つデッドロックが発生しないことを保証し
なければならない。デッドロックが起こらないことを保
証するために、ポステド・メモリ書込みサイクルは先に
待ち行列化されている遅延要求サイクルをパスすること
が許されなければならない。また、規定されている序列
制約条件に準拠するために、遅延・要求・サイクル及び
遅延・完了・サイクルには先に待ち行列化されているポ
ステド・メモリ・サイクルをパスすることを決して許し
てはならない。第85図を参照する。MCAは、トラン
ザクション実行待ち行列(TRQ)(またはトランザク
ション実行待ち行列)2270及びトランザクション順
序待ち行列(TOQ)2272という2種類のトランザ
クション待ち行列を使用して、PMWQ、DRQ、及び
DCQ内に待ち行列化されているサイクルを管理する。
MCAコントロール・ブロック2274は、PMWQ、
DRQ、及びDCQからトランザクションを4ビットの
バリデーション要求信号(pmwq_valid[3:
0]、drq_valid[3:0]、及びdcq_v
alid[3:0])のフォームで受け取り、実行コマ
ンドを4ビットの実行信号(mca_run_pmwq
[3:0]、mca_run_drq[3:0]、及び
mca_run_dcq[3:0])のフォームでアウ
トプットする。トランザクションはTRQコントロール
・ブロック2276及びTOQコントロール・ブロック
2278によって、それぞれTRQ2270及びTOQ
2272に出し入れされる。
は、それからMCAがトランザクションの実行順序を決
定する待ち行列である。TRQ2270内のトランザク
ションは、トランザクションの序列規則を侵すことなく
任意の順序で実行できるが、一旦ポステド・メモリ書込
みサイクルがTRQ2270内に入れられると、そのポ
ステド・メモリ書込みが除去されるまでは他のサイクル
をTRQ2270に入れることができない。TRQ22
70内でのトランザクションは循環的順序で試みられ、
一般にそれらが受け取られた順序で完了する。しかし、
もしTRQ2270内の1つのトランザクションがPC
Iバス上で再試行されると、MCAはPCIバス上で試
行(トライ)すべくTRQ2270内の次のトランザク
ションを選択することがある。遅延完了トランザクショ
ンはマスタ・サイクルではなくスレーブ・サイクルであ
るため、これらは決してTRQ2270内に入れられな
い。更に、遅延完了情報は、もしPMWQ内にこれから
開始されるべきポステド・メモリ書込みサイクルが無け
れば、DCQに入ると直ちに要求しているデバイスに供
されるので、下に詳述するように、遅延完了トランザク
ションはTRQ2270内にこれから開始されるべきポ
ステド・メモリ書込みサイクルがある場合にのみTOC
2272に入れられる。TRQ2270は、一度に最大
4つのトランザクションを保持することができる循環的
な待ち行列である。MCAは、規定されている序列制約
条件に従って常に少なくとも1つのポステド・メモリ書
込みトランザクションを実行できる状態になければなら
ないので、TRQ2270は決して3つを超える遅延要
求トランザクションを一度に保持することができない。
更にまた、ポステド書込みは後から開始される他のポス
テド書込みを含む、どのようなトランザクションもパス
することができないので、TRQは一度にただ1つのポ
ステド書込みトランザクションしか保持できない。TR
Q2270のスロット2280a−dの各々には3ビッ
トの情報が入っている。即ち、1ビットのサイクル・タ
イプ・インディケータ2282(ポステド・メモリ書込
みトランザクションは”1”、遅延要求トランザクショ
ンは”0”)、及び2ビットの有効インタ2284であ
り、これが表し得る4つの値で待ち行列化されたトラン
ザクションが占めているPMWQまたはDRQ内のバッ
ファを識別する。TRQ2270はI/Oイネーブル・
ブロック2286も含み、これによってTRQ 227
0にトランザクションを出し入れできる時機を判断す
る。入力ロジック・ブロック2288はトランザクショ
ンのTRQ2270への収容をコントロールし、出力ロ
ジック・ブロック2290はトランザクションのTRQ
2270からの除去をコントロールする。これらのロジ
ック・ブロックには標準的な待ち行列管理回路が入って
いる。
トランザクションを受容すべく次に利用可能なスロット
を選択する。この入力ポインタは、入トランザクション
の履歴的な順序をできるだけ維持するように循環的なも
のである。サーキュラ出力ポインタ2294は、TRQ
2270内のトランザクション間で調停を行い、それ
らの実行順序を決める。この出力ポインタ2294は、
スタートアップ時には常にTRQ 2270内のトップ
・スロットから始まってTRQ 2270内を循環的に
進む。この出力ポインタ2294は、コンフィギュレー
ション・レジスタ(cfg2q_infretry)内
の無限再試行ビットをセットまたはクリアし、それぞれ
無限再試行またはゼロ再試行モードで動作するように構
成することができる。無限再試行モードでは、出力ポイ
ンタ2294は1つのトランザクションがPCIバス上
で首尾よく実行されるまでそのトランザクションに留ま
っている。ゼロ再試行モードでは、出力ポインタ229
4は1つのトランザクションがバス上で試行される毎
に、そのトランザクションが首尾よく完了するか再試行
されるかに関わりなく増分される(即ち、q2pif_
cyc_completeが直前のPCIクロック・サ
イクルについてアサートされる)。PCIスペック2.
1ではポスティッド・メモリ書込みトランザクションに
ディレード要求トランザクションのバイパスを許すよう
に指示しているので、少なくとも1つのブリッジ・チッ
プ内の出力ポインタ2294はゼロ再試行モードで動作
するように構成されなければならない。なお、ダウンス
トリーム・チップは常にゼロ再試行モードで動作するよ
うに構成される。その代わり、無限再試行モードにおい
てPCIバス上で各トランザクションを出力ポインタが
増分される前に所定の回数(例えば、3回)だけ試行さ
れるように、この出力ポインタを無限再試行モードで動
作するよう構成することができる。アップストリ―ムと
ダウンストリーム・チップは、両方ともPCIスペック
2.1の序列制約条件を侵すことなく無限再試行モード
で動作するように構成することができる。いずれの場合
も、出力ポインタはトランザクションがターゲットのP
CIバス上で首尾よく完了できないときにのみ増分し
て、TRQ2270内に格納されているトランザクショ
ンの履歴的な順序を維持するように試行する。
書込みまたは遅延要求サイクルがTOQ2272から飛
び出されたとき(new_toq_cycleがアサー
トされる)、またはTOQ2272がイネーブルされな
くて(!toq_enabled)、MCAによって新
しいサイクルが受信されたとき(new_valid_
set)、その新しいサイクルのサイクル・タイプ・ビ
ット及び有効ビットがTRQ内の次の空のスロットにロ
ードされる。もしそのサイクルがTOQ 2272から
来ていれば、その有効ビット及びサイクル・タイプ・ビ
ットは、それぞれTOQの有効及びサイクル・タイプ信
号(toq_valid[1:0]及びtoq_cyc
le[0])に供給される。それ以外の場合、新しいサ
イクルの情報はMCAの有効及びサイクル・タイプ信号
(d_valido[1:0]及びd_cyctype
[0])によって供給される。ゲート2296、229
8、及びマルチプレクサ2300、2302が、TRQ
2270にロードされるべきサイクルの選択をコントロ
ールするように構成される。1つのサイクルがPCIバ
ス上で首尾よく実行されると、そのサイクルはトランザ
クション順序待ち行列から除去され、そのサイクル・タ
イプ・ビット及び有効ビットが、それぞれTRQのサイ
クル・タイプ及び有効信号(trq_cyctype
[0]及びtrq_valido[1:0])としてM
CAコントロール・ブロック2274に供給される。T
RQコントロール・ブロック2276はtrq_pmw
信号を生成し、TRQ2270内にポスティッド・メモ
リ書込みトランザクションが待ち行列に入れたことを表
示する。この信号がアサートされた場合、後に続いて出
される遅延要求及び遅延完了トランザクションは、下に
述べるように、TOQ 2272内に待ち行列に入れな
ければならない。MCAコントロール・ブロック227
4がTRQ2270に対して新しいポスティッド・メモ
リ書込みサイクルを待ち行列に入れるように指示したか
(trq_slot_valid_setが”000
0”に等しくなくd_trq_cyctypeが”
1”)、またはその代わりにTRQサイクル・スロット
2280a−dのいずれかに1つのサイクルが入ってお
り(trq_slot_valid[3:0]が”00
00”に等しくない)、少なくとも1つのサイクルがポ
スティッド・メモリ書込みサイクルであり(trq_c
yctypeが”1”に等しい)、そして、そのポステ
ィッド・メモリ書込みサイクルが対応するスロット22
80a−dからクリアされていない(!trq_slo
t_valid_rst[3:0])場合、trq_p
mw信号がアサートされている。ゲート2304、23
06、2308、2310、及び2312が、trq_
pmwをこうして生成するように構成される。
2は先入れ先出し(FIFO)待ち行列であり、ポステ
ド・メモリ書込みトランザクションがTRQ2270に
入れられた後にブリッジが受信するトランザクションの
履歴的な順序を保持する。すべてのトランザクションは
先に出されたポステド・メモリ書込みの実行を待たなけ
ればならないので、ポステド・メモリ書込み、遅延要
求、及び遅延完了トランザクションを含むすべてのトラ
ンザクションは、ポステド・メモリ書込みがTRQ22
70内に待機状態にされているときにはTOQ2272
内に入れられている。TOQ2272内のトランザクシ
ョンは、そのポステド・メモリ書込みトランザクション
がTRQ2270から除去されるまでTOQ2272内
に留まっていなければならない。8つのスロットを持つ
TOQ2272は、最大3つのポステド・メモリ書込み
トランザクション(4番めはTRQ2270内に格納さ
れる)、3つの遅延要求トランザクション、及び4つの
遅延完了トランザクションを保持することができる。T
OQ2272内のスロット2314a−dの各々には、
対応するトランザクションを識別する2つのサイクル・
タイプ・ビット2316(”01”はポスティッド・メ
モリ書込み、”00”は遅延要求、及び”1x”は遅延
完了)、及び対応するトランザクションが占めているP
MWQ、DRQ、及びDCQ内のバッファを識別する2
つの有効ビット2318が入っている。TOQ2272
は標準の入力及び出力ロジック・ブロック(2320及
び2322)も含み、これらでTOQ2272における
トランザクションの出入りをコントロールする。TOQ
2272内のトランザクションが入れられる位置、及び
除去される位置は、それぞれ3ビットの入力カウンタ2
326(inputr[2:0])及び3ビットの出力
カウンタ2324(outputr[2:0])によっ
て決る。両方のカウンタはTOQ2272内の最初のス
ロット2314aから始まり、トランザクションが入れ
られたり除去されるときに待ち行列を通じて増分する。
入力カウンタ2326は、TOQ2272がイネーブル
され(toq_enabledがアサートされる)、M
CAコントロール・ブロック2274がTOQ2272
に新しいサイクルを供給する(new_valid_s
etがアサートされる)毎にPCIサイクルの立上りで
増分する。新しいサイクルの各々に関する有効ビット及
びサイクル・タイプ信号は、MCAの有効及びサイクル
・タイプ信号(d_valido[1:0]及びd_c
yctype[1:0])で与えられる。出力カウンタ
2324は、MCAコントロール・ブロック2274が
TOQ2272に対して次のサイクルへ移るよう指示し
(next_toq_cycleがアサートされる)、
TOQ2272が空でない(即ち、inputr[2:
0]がoutputr[2:0]と等しくない)とき、
各PCIクロック・サイクルの立上りで増分する。TO
Q2272から出て行くサイクルは、TOQの有効及び
サイクル・タイプ信号(toq_valido[1:
0]及びtoq_cyctypeo[1:0])によっ
て表示される。ゲート2328、2330、及びコンパ
レータ2332が、入力カウンタ2326及び出力カウ
ンタ2324を適切にクロックするよう構成される。遅
延要求トランザクションまたはポステド・メモリ書込み
トランザクションがTOQ2272からポップされたと
き、そのトランザクションはTRQ2270に入れられ
て調停を待つ。しかし、遅延完了トランザクションはタ
ーゲットのトランザクションでありマスタのトランザク
ションではないので、遅延完了はTRQ2270に入れ
られない。その代わり、遅延完了は単にTOQ2272
からポップされてDCQデータ・バッファ内の対応する
データの有効性(妥当性)検査に用いられる。しかし、
ポステド・メモリ書込みトランザクションがTRQ22
70内で待ち行列に入れられている限り、2つまたはそ
れ以上の遅延完了が同じ遅延要求に対応し、従って遅延
完了バッファが同じである場合でも、上に述べたよう
に、すべての遅延完了はTOQ2272に入れなければ
ならない。
ロール・ブロック2274はMCAを経るトランザクシ
ョンの流れをコントロールする。上に述べたように、P
MWQ、DRQ、及びDCQは、それぞれ4ビットの有
効性(妥当性)検査信号pmwq_valid[3:
0]、drq_valid[3:0]、及びdcq_v
alid[3:0]をMCAに送って、その待ち行列に
保持されているトランザクションの有効性検査を要求す
る。各クロック・パルスで新しいトランザクションは1
つしか待ち行列ブロックに入れることができないので、
これらの信号のうち、各クロックパルス中に変更できる
のは1ビットのみである。従って、MCAコントロール
・ブロックはpmwq_valid、drq_vali
d、及びdcq_valid信号の中の変化するビット
を監視して新しい有効性検査要求を識別する。これを行
うため、MCAコントロール・ブロックはすべてのPC
Iクロックの立上りで各信号をラッチし、反転して遅延
信号を作成し、その遅延反転信号を現在の信号(即ち、
次のクロックパルスにおける信号)と比較する。新しく
変更されたビットのみが遅延反転信号の中のそれに対応
するものと同じ値をとっているので、MCAコントロー
ル・ブロックは変更されたビットを検出することができ
る。フリップ・フロップ2340、2342、234
4、及びゲート2346、2348、2350を用い
て、MCAコントローラはnew_pmwq_vali
d[3:0]、new_drq_valid[3:
0]、及びnew_dcq_valid[3:0]信号
を生成し、これらが一緒に各クロックパルスで、もしあ
るとすれば、PMWQ、DRQ、またはDCQが有効性
検査のために新しい信号を出したかどうか、そして対応
する待ち行列内のどのバッファにその新しいトランザク
ションが入っているかを確認する。
ール・ブロックはルックアップ・テーブル2352を用
いてnew_pmwq_valid、new_drq_
valid、及びnew_dcq_valid信号の1
2ビットを、上に述べたようにTRQ及びTOQに供給
された2ビットのd_valid[1:0]及びd_c
yctype[1:0]信号に変換する。MCAコント
ローラは、trq_pmw信号がアサートされてTRQ
内にポステド・メモリ書込みサイクルが待機状態にされ
ていることを表示しているか、またはtoq_enab
le信号が既にアサートされておりTOQが空でない
(!toq_empty)とき、toq_enable
d信号を”1”の値にラッチしてTOQをイネーブルす
る。ゲート2354、2356、及びフリップ・フロッ
プ2358が、toq_enabledをこのようにし
て生成するように構成される。MCAコントロール・ブ
ロックは、直前のクロック・サイクル中でTRQ内にポ
ステド・メモリ書込みサイクルが無く(!s1_trq
_pmw)、TOQが空でなく(!toq_empt
y)、TOQからポップされているサイクルが遅延完了
トランザクションでない(!(toq_cyctype
o[1]=”DC”))とき、new_toq_cyc
le信号をアサートし、TRQに対してTOQからポッ
プされているサイクルを待ち行列に入れるよう指示す
る。MCAコントローラは、ゲート2360を用いてn
ew_toq_cycle信号を生成する。TOQが空
でなく(!toq_empty)、TRQ内に現在待ち
行列に入れられているポステド・メモリ書込みサイクル
が無く(!s1_trq_pmw)、TOQ内における
次のサイクルが遅延完了であるか(toq_cycty
peo[1]=”DC”)、あるいは次のTOQサイク
ルがポステド・メモリ書込みまたは遅延要求トランザク
ションであり(!(toq_cyctyoe[1]=”
DC”))、直前のクロック・サイクル中でTRQ内に
ポステド・メモリ書込みサイクルが無かった(!s1_
trq_pmw)場合に、TOQカウンタをTOQ内の
次のサイクルに増分するために用いられるnew_to
q_cycle信号がアサートされる。このコントロー
ル・ブロックは、ゲート2362、2364、及び23
66を用いてnext_toq_cycle信号を生成
する。
cq[3:0]信号を生成し、TOQから遅延完了トラ
ンザクションがポップされたことを表示する。TRQ内
にポスティッド・メモリ書込みサイクルが入っておらず
(!trq_pmw)、TOQが空でなく(!toq_
empty)、そしてTOQのサイクルが遅延完了であ
る(toq_cyctyoe[1]=”DC”)場合、
上に述べたように、mca_run_dcq[3:0]
信号はデコードされたtoq_valido[1:0]
信号の値をとる。それ以外の場合、mca_run_d
cq[3:0]信号の値は”0000”に等しい。ゲー
ト2370、デコーダ2372、及びマルチプレクサ2
374が、mca_run_dcq[3:0]信号をこ
のようにして生成するように構成される。MCAコント
ロール・ブロックはnew_mca_run_dr
[3:0]及びnew_mca_run_pmw[3:
0]信号を生成して、それが待機状態にされるべき新し
い遅延要求トランザクション及びポステド・メモリ書込
みトランザクションを持っていることをそれぞれ表示す
る。new_mca_run_dr[3:0]信号は、
新しいサイクルが遅延要求サイクル(d_cyctyp
e[0]=”DR”)のとき、上に述べた2x4デコー
ダでデコードされたd_valido[1:0]信号の
値をとる。それ以外の場合、new_mca_run_
dr[3:0]信号のすべてのビットがゼロに設定され
る。同様に、new_mca_run_pmw[3:
0]信号は、新しいサイクルがポステド・メモリ書込み
トランザクションであれば2x4デコーダでデコードさ
れたd_valido[1:0]信号の値をとり、そう
でなければ”0000”にセットされる。デコーダ23
76、2380、及びマルチプレクサ2378、238
2が、new_mca_run_dr及びnew_mc
a_run_pmwをこうして生成するように構成され
る。
un_dr[3:0]及びtoq_mca_run_p
mw[3:0]信号を生成し、それぞれ新しい遅延要求
またはポステド・メモリ書込みトランザクションがTO
Qからポップされたとき、そのことを表示する。toq
_mca_run_dr[3:0]信号は、遅延要求サ
イクルがTOQからポップされた場合は2x4デコード
されたtoq_valido[1:0]の値をとり、そ
うでなければ”0000”となる。同様に、toq_m
ca_run_pmw[3:0]信号は、ポステド・メ
モリ書込みサイクルがTOQからポップされた場合は2
x4デコードされたtoq_valido[1:0]の
値をとり、そうでなければ”0000”となる。デコー
ダ2384、2388、及びマルチプレクサ2386、
2390が、toq_mca_run_dr及びtoq
_mca_run_pmwを、こうして生成するように
構成されて用いられる。MCAコントローラはtrq_
mca_run_dr[3:0]及びtrq_mca_
run_pmw[3:0]信号を生成し、それぞれ新し
い遅延トランザクションまたはポステド・メモリ書込み
トランザクションがTRQ内で調停されてPCIバス上
での実行が可能になっていれば、そのことを表示する。
trq_mca_run_dr[3:0]信号は、遅延
要求サイクルが優先的に調停されて、TRQが空でない
場合2x4デコードされたtrq_valido[1:
0]信号の値をとる。さもなくば、trq_mca_r
un_dr[3:0]の値は”0000”となる。同様
に、trq_mca_run_pmw[3:0]信号
は、ポステド・メモリ書込みサイクルが優先的に調停さ
れて、TRQが空でない場合、2x4デコードされたt
rq_valido[1:0]信号の値をとる。それ以
外の場合、trq_mca_run_pmw[3:0]
の値は”0000”となる。ゲート2392、239
8、デコーダ2394、2400、及びマルチプレクサ
2396、2402が、trq_mca_run_dr
及びtrq_mca_run_pmw信号をこうして生
成するように構成されてる。
のトランザクションをTRQに入れて実行する要求を出
すことができる。TRQもTOQも空であれば、トラン
ザクションはTRQに入れられる前にでも実行を開始す
ることができる。従ってMCAコントロール・ブロック
は、トランザクションがPCIバス上で試行できること
を表示するnew_mca_runまたはtoq_mc
a_run信号を非同期で用いられる時機を決定するロ
ジックを含む。new_mca_run及びtoq_m
ca_run信号を非同期の実行信号に変換することに
よって、MCAコントローラはPCIクロック・ウエイ
ト状態をセーブする。新しいnew_valid_se
t信号がMCAコントロール・ブロックにアサートさ
れ、TOQがイネーブルされていない(!toq_en
abled)場合、async_mca_run_dr
[3:0]及びasync_mca_run_pmw
[3:0]信号は、それぞれnew_mca_run_
dr[3:0]及びnew_mca_run_pmw
[3:0]信号の値をとる。そうでなければ、非同期の
実行信号はtoq_mca_run_dr[3:0]及
びtoq_mca_run_pmw[3:0]信号の値
をとる。MCAコントローラは、ゲート2404、及び
マルチプレクサ2406、2408を用いてこの非同期
実行信号を生成する。PCIバス・マスタが1つのトラ
ンザクションを完了し(s1_q2pif_cyc_c
ompleteがアサートされる)、TRQが空でなく
(!trq_empty)ゼロ再試行モードで動作する
ように構成されており(!cfg2q_infretr
y)、そしてTOQから新しいトランザクションがポッ
プされたか(new_toq_cycle)、あるいは
TOQがイネーブルされておらず(!toq_enab
led)、MCAが有効性検査がされるべき新しいサイ
クルを受け取った(new_valid_set)場
合、MCAはPCIバス上で実行するサイクルを選択で
きなくてmca_run_dr[3:0]及びmca_
run_pmw[3:0]信号は”0000”にセット
される。それ以外の場合、もしTRQが空で(trq_
empty)、TOQから新しいトランザクションがポ
ップされたか(new_toq_cycle)、あるい
はTOQがイネーブルされておらず(!toq_ena
bled)、そしてMCAが有効性性検査されるべき新
しいサイクル(new_valid_set)を受け取
れば、mca_run_dr[3:0]及びmca_r
un_pmw[3:0]信号は、それぞれ非同期の実行
信号async_mca_run_dr[3:0]及び
async_mca_run_pmw[3:0]信号の
値をとる。さもなくば、mca_run_dr[3:
0]はtrq_mca_run_dr[3:0]信号の
値をとり、mca_run_pmw[3:0]信号はP
MWQからの妥当性検査要求信号(pmwq_vali
d[3:0])とANDされたtrq_run_pmw
[3:0]信号の値をとる。ゲート2410、241
2、2414、2416、2418、マルチプレクサ2
420、2422、2424、2426が、MCA実行
信号をこうして生成するように構成される。
ス(QPIF) 再び第4図、及び第93図を参照する。QPIF148
は待ち行列ブロック127とPCIバス32間のトラン
ザクションの流れを管理する。更にQPIF148はP
CIバス32上で起動されたトランザクションをケーブ
ル・インタフェース130に送る。QPIF148は2
つのモードで動作する。即ち、マスタ・モードとスレー
ブ・モードである。マスタ・モードにおいては、QPI
F148がPCIバスの制御権を持ち、従ってターゲッ
ト・デバイスに意図されているトランザクションをその
バス上で実行する。QPIF148内のマスタ状態マシ
ン2500がPMWQ及びDRQからトランザクション
を検索し、QPIFがマスタ・モードに在るときは、そ
れらをPCIバス上で実行する。スレーブ・モードにお
いては、QPIF148は、いずれかのデバイスがPC
Iバス上で起動したトランザクションを受け取り、要求
された情報を(もしその情報があれば)起動デバイスに
渡すか、あるいは(もしそのトランザクションが遅延要
求であれば)起動デバイスを再試行して、そのトランザ
クションをアップストリ―ム・チップに転送する。上に
述べたように、もしトランザクション・カウンタ159
の対応する1つが他方のチップがフルであることを表示
すれば、そのトランザクションも再試行される。スレー
ブ状態マシン2502はPCIバスからの到来トランザ
クションを受け取り、DCQをチェックして対応する完
了メッセージを探し、そして/またはそのトランザクシ
ョンをケーブル・メッセージ・ジェネレータ2504に
転送し、それが今度はそのトランザクションをケーブル
を介してアップストリ―ムのブリッジ・チップに転送す
る。
Fはアドレス及びデータ・ラッチ・ロジック2506を
含む。これは、デバイスがPCIバス上で開始する各ト
ランザクションに関連する入力アドレス・フェーズ情報
及びデータ・フェーズ情報をラッチする。QPIFのス
レーブ状態マシン2502は、アドレス及びデータ・ラ
ッチ・ロジック2506の動作をコントロールする。P
CIバス上で開始された新しいトランザクションがQP
IFに意図されたものであれば、スレーブ状態マシン2
502はアドレス・フェーズ・ラッチ信号(reg_l
atch_first_request)をアサートし
て、アドレス・フェーズ情報をPCIバスからラッチす
べきであることを表示する。PCIクロック信号の次の
立下りでは、reg_latch_first_req
uest信号のアサートの結果として遅延アドレス・フ
ェーズ・ラッチ信号(dly_reg_latch_f
irst_request)がアサートされる。オリジ
ナルの、及び遅延されたアドレス・フェーズ・ラッチ信
号が両方アサートされたとき、ラッチ・ロジック250
6は最初のラッチ信号(latch1)を生成する。フ
リップ・フロップ2508及びゲート2510が、最初
のラッチ信号をこうして生成するように構成される。ラ
ッチ・ロジック2506は、最初のラッチ信号がアサー
トされたとき、アドレス・フェーズ情報をPCIバスか
ら(PCIインターフェースを介して)3つのアドレス
・フェーズ・レジスタにロードする。1番めのレジスタ
は30ビットのアドレス・レジスタ2512で、現在の
トランザクションの開始アドレスを示す。最初のラッチ
信号がアサートされたとき、PCIインタフェースから
のアドレス信号(p2q_ad[31:2])がアドレ
ス・レジスタ2512にロードされる。アドレス・レジ
スタ2512はQPIFに用いられるアドレス信号(q
2pif_addr[31:2])を出力する。2番め
のレジスタは4ビットのコマンド・レジスタ2514
で、PCIバスからのPCIコマンド・コード(p2q
_cmd[3:0])を受け取り、QPIFコマンド信
号(q2pif_cmd[3:0])をアウトプットす
る。3番めのレジスタは3ビットのスロット選択レジス
タ2516で、どのPCIデバイスが現バス・マスタで
あるかを示すp2q_slot[2:0]信号を受け取
り、QPIFスロット選択信号(q2pif_slot
[2:0])を出力する。
ーズが終わったとき、スレーブ状態マシン2502はデ
ータ・フェーズ・ラッチ信号(reg_latch_s
econd_request)をアサートし、データ・
フェーズ情報をPCIバスからラッチすべきであること
を表示する。PCIクロック信号の次の立下りで、アサ
ートされたreg_latch_first_requ
est信号の結果として遅延データ・フェーズ・ラッチ
信号(dly_reg_latch_second_r
equest)がアサートされる。オリジナルの、及び
遅延されたデータ・フェーズ・ラッチ信号が両方アサー
トされたとき、ラッチ・ロジック2506は第2のラッ
チ信号(latch2)を生成する。フリップ・フロッ
プ2518及びゲート2520が、第2のラッチ信号を
こうして生成するように構成される。ラッチ・ロジック
2506は、第2のラッチ信号がアサートされたとき、
データ・フェーズ情報をPCIバスから(PCIインタ
フェースを介して)3つのデータ・フェーズ・レジスタ
にロードする。1番めのデータ・フェーズ・レジスタは
32ビットのデータ・レジスタ2522で、PCIアド
レス/データ・ライン上における現在のトランザクショ
ンに関連するデータ(p2q_ad[31:0])を受
け取り、QPIFデータ信号(q2pif_data
[31:0])を出力する。2番めのデータ・フェーズ
・レジスタは4ビットのイネーブル・レジスタ2524
で、PCIバスからのイネーブル・ビット(p2q_c
be[3:0])を受け取り、QPIFバイト・イネー
ブル信号(q2pif_byte_en[3:0])を
出力する。3番めのレジスタは3ビットのロック・レジ
スタ2526で、現在のトランザクションはロックされ
たトランザクションとして実行すべきであることを示す
PCIロック信号を受け取り、QPIFロック信号(q
2pif_lock)を出力する。
る。QPIFは「ロック」ロジック・ブロック2528
を含み、これでQPIFの「ロック」状態をコントロー
ルする。QPIFは3つのロック状態を持つ。即ち、ア
ンロックト状態2530(lock_state[1:
0]= ”00”)はDCQ内に未処理のロックト・ト
ランザクションが無いことを示す;ロックされた状態2
532(lock_state[1:0]=”01”)
はDCQ内にロックされたトランザクションが受け取ら
れた、あるいはPCIバス上で完了中であることを示
す;アンロックされているものの再試行状態2534
(lock_state[1:0]=”10”)は、ロ
ックは除去されたが他方のブリッジ・チップ内で未処理
となっているポステド・メモリ書込みトランザクション
を実行しないと次のトランザクションが受け入れられな
いことを示す。パワーアップ及びリセット時、ロック・
ロジック2528はアンロックされた状態2530に入
り、DCQ内にロックされたトランザクションが入って
くる(dcq_lockedのアサートで表示される)
のを待つ。dcq_lockedがアサートされた後の
最初のクロック・パルスで、ロック・ロジックはロック
された状態2532に入ることにより、PCIバスから
のすべてのトランザクション要求のQPIFスレーブ状
態マシン2502による再試行を強制する。PCIイン
タフェースはロック信号(p2q_lock)もアサー
トして、それがトランザクション用にPCIバスをロッ
クしたことを表示する。ロックされたトランザクション
が完了して、要求しているデバイスがDCQからロック
された完了データを検索した後、dcq_locked
信号がデアサートされる。他方のブリッジ・チップ内に
未処理となっているポステド・メモリ書込みが無く(即
ち、pmw_empty信号がケーブル・デコーダによ
ってアサートされている)、p2q_lockがまだア
サートされているうちに、dcq_lockedがデア
サートされた後の最初のクロック・パルスで、ロック・
ロジック2528はアンロックト状態2530に戻り、
スレーブ状態マシン2502は再びトランザクション要
求を受け入れられるようになる。しかし、もしdcq_
lockedがディアサートされた後の最初のクロック
・パルスでpmw_empty信号がアサートされてい
ないと、ロック・ロジック2528はアンロックされて
いるものの再試行状態2534に入り、スレーブ状態マ
シン2502は他方のPCIバス上ポスティッド・メモ
リ書込みサイクルが完了するまで、すべてのトランザク
ションの再試行を強制される。ポステド・メモリ書込み
サイクルの完了後、pmw_empty信号がアサート
され、ロック・ロジック2528はアンロックされた状
態2530に戻る。
る。QPIFはバッファ・フラッシュ・ロジック253
6を含み、これによってDCQが何時その1つまたはす
べてのデータ・バッファからデータをフラッシュすべき
かを決定する。上に述べたように、ダウンストリーム・
チップ内のPCIインタフェースは、アップストリ―ム
・チップがダウンストリームのデバイスのターゲット・
メモリ・レンジ・レジスタ(TMRR)をヒットするI
/Oまたはコンフィギュレーション書込みまたはメモリ
書込みを出したときにp2q_flush信号を生成す
る。QPIFバッファ・フラッシュ・ロジック2536
は、p2q_flush信号が受信されたとき、(上に
述べたように、p2q_slot信号の値によって)対
応するデータ・バッファか、またはすべてのデータ・バ
ッファをフラッシュするQPIFフラッシュ・信号(g
eneral_flush)をアサートする。それ以外
の場合、このバッファ・フラッシュ・ロジック2536
は、2次バス上のデバイスがDCQコントロール・ロジ
ックによってチェックされるとき(即ち、!dcq_h
it及びq2pif_check_cycがアサートさ
れる)、DCQバッファをすべてミスする遅延された要
求(遅延要求)を出した場合にのみ、ジェネラル・フラ
ッシュ信号をアサートする。いずれの場合も、gene
ral_flush信号は、上に述べたように、「プリ
フェッチ」状態に在るバッファのみのフラッシュに用い
られる。従って、PCIインタフェースがフラッシュを
指示するまで、あるいは対応するPCIデバイスがシー
ケンシャルでない要求(即ち、DCQをミスする)を出
すまで、DCQ内にプリフェッチ・データが保持されて
いる。ゲート2538及び2540が、general
_flush信号をこうして生成するように構成され
る。1つの多重スレッデッド・デバイスに複数の完了バ
ッファが割り当てられているとき、その少なくとも1つ
にプリフェッチ・データが入っており、そのプリフェッ
チ・データはそのデバイスがDCQバッファをすべてミ
スする要求を出さない限り対応するバッファ内に残って
いる。そのデバイスが新しい要求を出せば、そのすべて
のプリフェッチ・バッファは直ちにフラッシュされる。
あるいは、多重スレッデッド・デバイスに関わるプリフ
ェッチ・バッファは、そのデバイスが別のDCQバッフ
ァをヒットする要求を出せば直ちにフラッシュされる可
能性がある。
しコマンド・ロジック・ブロック2542を含み、これ
によってPCIインタフェースからの読出しコマンド及
びDCQからのプリフェッチ・コマンドを受け取り、出
力メッセージ・コマンド信号(message_cm
d)をケーブルに供給する。非ストリーミング状態にお
いて、出力メッセージ・コマンドはPCIバスあるいは
DCQから受け取られるコマンドと同じであるか、また
は読出しコマンド・ロジック2542がそのコマンドを
大量のデータを伴うコマンドに変換する場合がある。ダ
ブルワード・バイ・ダブルワード(dword-by-word)で実
行するトランザクションは、1キャシュ・ライン分のデ
ータを扱うトランザクションに比べてホストのバス上で
完了するまでにかかる時間が長く、またシングル・キャ
シュ・ライン・トランザクションは多重キャシュ・ライ
ン・トランザクションに比べてホストのバス上で完了す
るまでにかかる時間が長いので、読出しコマンド・ロジ
ックはしばしば「小型」のコマンドを「大型」のコマン
ドに「昇格」させ、トランザクションに消費されるクロ
ック・サイクル数を減らす(「読出しプロモーショ
ン」)。例えば、2次PCIバス上の1つのデバイスが
メモリ読出しコマンドを出し、1つのキャシュ・ライン
内のすべてのダブルワード・データを求めた場合、その
PCIコマンドを1つのメモリ読出しラインにプロモー
トすることによりアップストリ―ム・チップは各ダブル
ワードを個々に読み出す代わりに、そのキャシュ・ライ
ン・データをすべて一度に読み出すことができ、読出し
コマンド・ロジック2542はホストの待ち時間を減じ
ることができる。
に、読出しストリームが設定されたことをDCQが表示
したとき(即ち、dcq_stream_connec
tがアサートされる)、読出しコマンド・ロジック25
42は”1000”のメッセージ・コマンドを生成し、
これがアップストリ―ム・チップにストリームが発生し
ていることを知らせる。ストリームが設定されていない
場合、読出しコマンド・ロジック2542はメモリ読出
し、メモリ読出しライン、またはメモリ読出し多重コマ
ンドを送るべきかどうかを判断しなければならない。も
しPCIバスから受け取ったコマンドがメモリ読出し
(MR)コマンド(q2p_cmd[2:0]=”01
10”)で、コンフィギュレーション・レジスタ内の対
応するメモリ読出しからメモリ読出しライン・プロモー
ション・ビット(cfg2q_mr2mrl)がセット
されると、読出しコマンド・ロジック2542はメモリ
読出しライン・コマンド(”1110”)を生成する。
一方、もしPCIコマンドがメモリ読出しコマンドで、
対応するメモリ読出しライン/メモリ読出し多重ビット
(memory-read-line-to-memory-read-multiple bit)
(cfg2q_mr2mrm)がセットされるか、また
はもしそのコマンドがPCIバスからのメモリ読出しラ
イン・コマンド(q2p_cmd[3:0]=”111
0”)あるいはDCQからのプリフェッチ・ライン・コ
マンド(dcq_prefetch_lineがアサー
トされる)で、対応するメモリ読出しライン/メモリ読
出し多重ビット(cfg2q_mrl2mrm)がセッ
トされるか、またはもしそのコマンドがDCQからのプ
リフェッチ多重コマンド(dcq_prefetch_
mul)であれば、読出しコマンド・ロジック2542
はメモリ読出し多重コマンド(即ち、message_
cmd=”1100”)を生成する。もしそのコマンド
がプリフェッチ・ライン・コマンドであって、対応する
メモリ読出しライン/メモリ読出し多重ビットがセット
されなければ、読出しコマンド・ロジック2542はM
RLコマンド(”1110”)を生成する。さもなく
ば、読出しコマンド・ロジック2542は受け取ったP
CIコマンド(q2pif_cmd[2:0])をメッ
セージ・コマンド信号として出力する。ゲート254
4、、2546、2548、2550、2552、25
54、2556、2558、及びマルチプレクサ256
0、2562、2564が、message_cmd信
号をこうして生成するように構成される。
タ・モードで動作しており、PMWQ内に保存されてい
るトランザクションを1つ実行すべくバスの制御権を得
ているとき、書込みコマンド・ロジック・ブロック25
66はPCIバス上で実行されるコマンド・コードを生
成する。上に述べたように、トランザクションの時間を
短縮するために、書込みコマンド・ロジックは一度に1
ダブルワードのデータ転送に関わるメモリ書込み(M
W)コマンドを、少なくとも1キャシュ・ライン一杯の
データの転送に関わるメモリ書込みおよび無効(MW
I)コマンドに変換することができる。書込みコマンド
・ロジック・ブロック2566は、例えばトランザクシ
ョンが1つのキャシュ・ラインの途中でメモリ書込みと
して始まり、それに次のキャシュ・ライン境界を越える
データが入っており、次のキャシュ・ライン内の8つの
ダブルワード・データがすべて含まれているとき、コマ
ンドをミッドストリームで変換することができる。この
状態で、書込みコマンド・ロジック2566は、メモリ
書込みトランザクションが最初のキャシュ・ライン境界
に達したときにこのトランザクションを終了し、それか
らメモリ書込み及び無効トランザクションを開始して次
のキャシュ・ライン一杯のデータを転送する。書込みコ
マンド・ロジック2566は、キャシュ・ライン境界を
越えた後、もしターゲットのバスに書き込むべきデータ
が1キャシュ・ラインに満たないとMWIを終了してM
Wに譲ることもある。
る。スレーブ状態マシン2502は、PCIバス上で開
始されたポスティッド・メモリ書込みトランザクション
を何時終了させるべきかを表示する2つのカウンタを持
っている。4Kページ境界カウンタ2594は、PCI
バスからの転送データが4Kページ境界に達したとき、
そのことを示すページ・カウント・信号page_co
unt_reg[11:2]を生成する。1回のメモリ
・アクセスは4Kページ境界を超えることが許されてい
ないので、ポスティッド書込みトランザクションは1つ
の境界に達したとき開始バス上で終了されなければなら
ない。4Kページ境界カウンタ2594には、状態マシ
ンがload_write_counter信号をアサ
ートしたとき(この信号のアサートを取り巻く状況につ
いては下に詳述する)、トランザクション・アドレス
(q2pif_addr[11:2])の3番めから1
2番めのビットがロードされる。カウンタ2594は、
そのload_write_counter信号がディ
アサートされた後、各クロック・パルスの立上りで1つ
増分する。カウンタ2594は、開始デバイスがイニシ
エータ・ウエイト状態を挿入した(即ち、p2q_ir
dyがアサートされた)間のクロック・パルスでは増分
されない。このカウンタの増分が許される時機は、ゲー
ト2592のアウトプットによって決定される。pag
e_counter_reg[11:2]信号のビット
がすべて高レベル(ハイ)のとき、トランザクションが
既に4Kページ境界に達しており、スレーブ状態マシン
はそのポステド書込みトランザクションを終了させて開
始デバイスを再試行しなければならない。
_counter[5:0]信号を生成し、1回のポス
テド書込みトランザクションの間に開始デバイスから書
き込まれたダブルワードの数を表示する。そしてpmw
_counter[5:0]信号は、オーバーフローが
発生したり、あるいはそのトランザクションが最終ライ
ンに達したとき、そのことを表示するために用いられ
る。スレーブ状態マシン2503がload_writ
e_counter信号をアサートしたとき、アドレス
信号(q2pif_addr[4:2])の3番めから
4番めまでのビットがカウンタ2598の下位3ビット
にロードされ、一方上位3ビットはゼロにセットされ
る。このアドレス・オフセットにより、そのポステド書
込みトランザクションがキャシュ・ライン内のどのダブ
ルワードで開始されていたかが表示される。そしてカウ
ンタ2598はload_write_counter
信号がデアサートされた後、各クロック・パルスの立上
りで1つ増分する。カウンタ2598は、開始デバイス
がイニシエータ・ウエイト状態を挿入した(即ち、p2
q_irdyがアサートされた)間のクロック・パルス
では増分されない。このカウンタの増分が許される時機
はゲート2596の出力によって決定される。pmw_
counter[5:0]信号のビットがすべてハイの
とき、そのポステド書込みは既に8番めのキャシュ・ラ
インの終わりに達している。
コマンド・ロジック・ブロック2566は、PCIバス
上で実行されるポステド書き込みトランザクションのコ
マンド・コードを示す4ビットの書き込みコマンド信号
(write_cmd[3:0])を生成する。PMW
Q内に入っているコマンド・コードがメモリ書き込み無
効コマンドを表すものであれば(pmwq_cmd
[3]=”1”)、書き込みコマンド・ロジック256
6は、”1111”の書き込みコマンド・コードを生成
する。PMWQのコマンド・コードがメモリ書き込みコ
マンドを示すものであれば、書き込みコマンド・ロジッ
ク2566は、対応するPCIスロットのメモリ書き込
み−メモリ書き込み無効コンフィギュレーション・ビッ
ト(cfg2q_mw2mwi)を調べる。cfg2q
_mw2mwiビットがセットされていなければ、書き
込みコマンド・ロジック2566は、メモリ書き込みコ
マンド(”0111”)を作る。このコンフィギュレー
ション・ビットがセットされていれば、書き込みコマン
ド・ロジック2566は、PMWQデータ・バッファ内
の次のラインが満たされている(pmwq_full_
lineがアサートされている)場合にはMWIコマン
ドを生成し、そうでなければMWコマンドを生成する。
マルチプレクサ2568及び2570は、このようにし
てwrite_cmd信号を生成するように構成され
る。QPIFがPCIバス上でなんらかのトランザクシ
ョンを実行し、そしてキャシュ・ライン境界に達したと
きに、書き込みコマンド・ロジック2566は、new
_write_cmd信号をアサートして、新しい書き
込みコマンドのために現在のトランザクションを終了し
なければならない旨を示すことがある。そのトランザク
ションがPMWQデータ・バッファ内の最後のキャシュ
・ラインに達したときに(即ち、pmwq_point
er[5:3]=”111”)、次のPMWQバッファ
が有効なデータの入っているオーバーフロー・バッファ
でない場合、対応するcfg2q_mw2mwiビット
がセットされていない場合、あるいは、現在のキャシュ
・ラインと次のキャシュ・ラインとに対応するfull
_lineビットが異なっていれば(即ち、pmwq_
full_line[7]とpmwq_next_fu
ll_lineが等しくない)、new_writeコ
マンド信号がアサートされて、そのトランザクションを
終了させるべきであることを示す。そのトランザクショ
ンがPMWQバッファの終わりに達していない場合、P
MWQバッファ内の次のラインに有効なデータが入って
いないか(!pmwq_valid_lines[x+
1])、あるいはcfg2q_mw2mwiビットがセ
ットされていて現在のラインと次のラインのフル・ライ
ン・ビットが異なっていれば(即ち、pmwq_ful
l_line[x]とpmwq_full_line
[x+1]が等しくない)、new_write_cm
d信号がアサートされる。ゲート2572、2574、
2576、2578、2580、及びマルチプレクサ2
582が、new_writeコマンド信号をこのよう
にして生成するように構成される。new_write
_cmd信号がアサートされた後、書き込みコマンド・
ロジック2566が保持された新書き込みコマンド信号
(held_new_write_cmd)をアサート
するまで終了されない。held_new_write
_cmd信号は、new_write_cmd信号がア
サートされ、end_of_line信号がアサートさ
れてキャシュ・ラインの終わりに達したことが表示され
た後、PCIインタフェースがそのトランザクションを
未だ終了していない限り(即ち、p2q_start_
pulseがアサートされている)、最初のクロック・
パルスでアサートされる。held_new_writ
e_cmd信号は、リセットでデアサートされ、またn
ew_write_cmd、end_of_line、
及びp2q_start_pulse信号がデアサート
され、QPIFがそのトランザクションを終了した(即
ち、非同期early_cyc_complete信号
がアサートされた)後の最初のクロック・パルスでデア
サートされる。それ以外の場合、held_new_w
rite_cmd信号はその現在値を保持している。ゲ
ート2584、2586、インバータ2588、及びフ
リップ・フロップ2590が、held_new_wr
ite_cmd信号をこのようにして生成するように構
成されている。
QPIFはオーバーフロー・ロジック・ブロック260
0を含み、これによってマスタ状態マシン2500はタ
ーゲット・バス上でポステド書き込みトランザクション
を実行しているときに、オーバーフロー・データを管理
することができる。QPIFがMCAからトランザクシ
ョン実行信号(mca_run_pmwまたはmca_
run_dr)を受け取ったとき、オーバーフロー・ロ
ジック2600は、PMWQまたはDRQ内のどのバッ
ファを選択して現在のトランザクションを実行すべきか
を示す2ビットの開始待ち行列(キュー)選択信号(s
tart_queue_select[2:0])を生
成する。次の表に、start_queue_sele
ct信号がどのように生成されるかを示す。
書き込みトランザクションを実行しているとき、2ビッ
トのQPIF待ち行列選択信号(q2pif_queu
e_select[1:0])がPMWQ内の適切なバ
ッファの選択に用いられる。そのトランザクションが起
動されるとき、マスタ状態マシン2500が待ち行列選
択信号(initial_queue_select)
をアサートすることにより、q2pif_queue_
select信号は、開始待ち行列選択信号(star
t_queue_select)の値をとる。同時に、
待ち行列選択カウンタ2602にstart_queu
e_select信号の値がロードされる。initi
al_queue_select信号がデアサートされ
た後、q2pif_queue_select信号は、
カウンタ2602により生成されたcount_que
ue_select信号の値をとる。ポステド・メモリ
書き込みトランザクションが次のPMWQバッファにオ
ーバーフローしたとき、マスタ状態マシン2500が増
分待ち行列選択信号(inc_queue_selec
t)をアサートすることにより、カウンタ2602は1
だけ増分される。その結果、q2pif_select
信号が増分され、PMWQ内の次のバッファが選択され
てトランザクションを続行する。マルチプレクサ260
4がq2pif_queue_select信号の値を
決定する。
ド・メモリ書き込みトランザクション中に、マスタ状態
マシン2500が次のPMWQバッファからの情報の引
き出しを継続すべき場合、オーバーフロー・ロジック2
600は、overflow_next_queue信
号をアサートする。q2pif_queue_sele
ct[1:0]信号を用いてどのPMWQが現在選択さ
れているかを判定し、次のPMWQバッファに対応する
有効ビット(pmwq_valid)及びオーバーフロ
ー・ビット(pmwq_overflow)がセットさ
れているときに、オーバーフロー・ロジック2600は
overflow_next_queue信号をアサー
トする。pmwq_valid及びpmwq_over
flowフラグについては上記に説明したとおりであ
る。ゲート2606、2608、2610、2612、
及びマルチプレクサ2614により、overflow
_next_queue信号がこのように発生される。
出し調整ロジック(リード・アライン・ロジック)・ブ
ロック2616を含んでおり、これによってQPIFは
メモリ書き込みライン及びメモリ読み出し多重トランザ
クションのミスアラインメントを修正することができ
る。読み出しラインの修正は、QPIFがマスタ・モー
ドで動作しているとき、1つのキャシュ・ラインの途中
から始まるMRLまたはMRMトランザクションを受け
取ったときに発生する。トランザクションの時間を短縮
するため、QPIFはキャシュ・ラインの境界でその読
み出しトランザクションを開始し、要求されているダブ
ルワード・データだけを個々に読み出す代わりに、要求
されていないダブルワードを無視する。更に102図を
参照すると、読み出し調整ロジック2616は、ali
gn_read信号をアサートして読み出し調整機能を
起動する。この信号は、対応するDRQバッファ内に格
納されているコマンドがメモリ読み出しラインまたはメ
モリ読み出し多重コマンドであるとき(即ち、drq_
cmd[3:0]が、それぞれ”1110”または”1
100”に等しい)、及びターゲットのPCIデバイス
に対応する読み出し調整コンフィギュレーション・ビッ
ト(cfg2q_read_align)がセットされ
たときに、アサートされる。ゲート2618及び262
0により、align_read信号がこのようにして
作成される。更に図103のA〜Cを参照すると、読み
出し調整ロジック2616は、キャシュ・ライン境界か
らのダブルワードをカウントし、マスタ状態マシン25
00が要求されている最初のダブルワードに達したと
き、その旨を表示する読み出し調整ダウン・カウンタ2
622を含む。このカウンタ2622は、状態マシン2
624を含み、これによってカウンタ2622の動作を
コントロールする。リセットによりカウンタ2622は
IDLE_CNT状態に入って、カウント動作は行われ
ない。MCWがQPIFに対しPCIバス上で遅延され
た要求(ディレード・リクエスト)トランザクションを
実行するよう指示したとき(即ち、mca_run_d
r[3:0]内のいずれかのビットがアサートされたと
き)、QPIFは遅延された要求実行信号(any_d
rq_run)をアサートし、それが遅延された要求ト
ランザクションの実行を試行していることを表示する。
カウンタ2622がIDLE_CNTステートに在れ
ば、any_run_drq信号がアサートされて、Q
PIFがPCIバスの制御権を得たとき(即ち、p2q
_ackがアサートされる)、トランザクション・アド
レス(drq_addr[4:2])のダブルワード・
オフセットでそのカウンタの3ビットの出力信号(th
row_ctn[2:1])がロードされる。ゲート2
623がロード・イネーブル信号を生成する。そして次
のPCIクロック・サイクルの立上りで、カウンタ26
22はCOUNT状態2628に入る。トランザクショ
ンがキャシュ・ライン境界で始まれば、ダブルワード・
オフセットが”000”に等しく、カウントは不要であ
る。読み出し調整が起動されたとき、マスタ状態マシン
2500は、各MRL及びMRMトランザクションを実
際の開始アドレスに関わらず各キャシュ・ライン境界で
開始する。
8に存在するとき、p2q_ack信号がアサートされ
ていて、throw_cntが未だゼロに達しておら
ず、トランザクションがデータ・フェーズにあり(即
ち、非同期シグナルearly_data_phase
がアサートされている)、そしてターゲット・デバイス
が未だターゲット準備待機状態(ターゲット・レディ・
ウエイト・ステート)を出していない限り(!p2q_
trdy)、そのカウンタは1クロック・パルス毎に1
つ減分する。カウンタが減分される時機は、ゲート26
25が決定する。PCIインタフェースがQPIFから
バスの制御権を取り上げれば(p2q_ackがデアサ
ートされる)、またはデータ相が終了すれば(earl
y_data_phaseがデアサートされる)、カウ
ンタ2622は減分動作を止めて再びIDLE_CNT
状態2626に入る。p2q_ack信号がアサートさ
れているうちにthrow_cntが”000”に達す
れば、カウンタ2622はカウントを停止してDONE
状態2630に入る。それ以外の場合は、カウンタはC
OUNT状態2628に留まっている。カウンタが”0
00”に達したとき、読み出し調整ロジック2616は
read_data_startをアサートし、ターゲ
ット・デバイスからデータの読み出しを開始するようマ
スタ状態マシン2500に指示する。比較器2632が
read_data_start信号を生成する。re
ad_data_start信号がアサートされた後、
カウンタ2622はデータ相が終わる(early_d
ata_phaseがデアサートされる)まで、DON
E状態2630に留まっている。
は、QPIFがマスタ・モードで動作しているとき、そ
のQPIFの動作をコントロールする。マスタ・モード
において、QPIFはPCIバス上でポステド書き込み
トランザクション及び遅延された要求トランザクション
を実行する。次の表に、マスタ状態マシン内における状
態遷移の原因となるイベントを示す。
LE状態2700に入り、その状態において、QPIF
はPCIバス上でトランザクションを実行する指示を待
つ。QPIFがMCAからラン(実行)信号を受け取り
(mca_run_pmwまたはmca_run_dr
信号がアサートされたとき、any_runがアサート
される)、ケーブルがメッセージの伝送にビジーでなく
(!cable_busy)、そしてPCIインターフ
ェースが直前のトランザクションを終了しようとしてい
ないとき(!p2q_master_dphase)、
マスタ状態マシンは、PCIバス上でのトランザクショ
ンの実行を試みる。そのトランザクションが遅延された
要求トランザクションであり(any_run_drq
がアサートされている)、その他のチップに遅延された
完了のための余地がなければ(tc_dc_fullが
アサートされている)、マスタ状態マシンはその要求を
実行することができず、MCAを次のトランザクション
にステップする。その他の場合、PCIインタフェース
ガQPIFにバスの制御権を与えていれば(p2q_a
ckがアサートされている)、マスタ状態マシンは、P
CIバス上でそのトランザクションの実行を開始する。
IDLE状態2700において、マスタは上に述べたア
ドレス相(フェーズ)情報をPCIバスに供給する。実
行すべきトランザクションがデュアル・アドレス・サイ
クル(q2pif_dac_flagがアサートされて
いる)であれば、マスタ状態マシンはMASTER_D
ACステート2702に入り、そのときアドレス情報の
後半部が供給される。トランザクションがデュアル・ア
ドレス・サイクルではなく、遅延された要求トランザク
ション(any_run_drqがアサートされてい
る)であれば、マスタ状態マシンはRDATA1読み出
し状態2704に入り、その状態において、マスタ状態
マシンは、その遅延された要求トランザクションのデー
タ・フェーズ(データ相)を開始する。トランザクショ
ンがデュアル・アドレス・サイクルでも遅延された要求
でもない場合、それはポステド・メモリ書き込みトラン
ザクションであり、従ってマスタ状態マシンは、そのポ
ステド・メモリ書き込みトランザクションのデータ・フ
ェーズに入る。
おいて、マスタ状態マシンはアドレス・フェーズ(アド
レス相)情報の後半部を供給する。そして、p2q_a
ck信号がまだアサートされていて、トランザクション
が遅延された要求であれば、マスタ状態マシンはRDA
TA1状態2704に入り、そのときそのマシンはPC
Iインタフェースから開始信号(p2q_start_
pulse)を受け取る。そのトランザクションが遅延
された要求でなければ、マスタ状態マシンはWDATA
1状態2706に入って、PCI開始パルスを受け取
る。更にマスタ状態マシンは非同期完了メッセージ信号
(early_master_send_messag
e)をアサートし、PCI開始パルスを受け取ったとき
にケーブル上で準備完了メッセージの生成(起動)も行
う。p2q_ack信号がPCIインターフェースによ
ってデアサートされていれば、マスタ状態マシンは、I
DLE状態2700に戻ってトランザクションの再試行
(リトライ)を待つ。RDATA1状態2704は、遅
延された読み出し要求及び遅延された書き込み要求の初
期状態である。この状態で、マスタ状態マシンは、PC
I開始パルスを待ってから、RBURSTバースト・デ
ータ・フェーズ(データ相)2708に入る。状態マシ
ンは、初めてRDATA1状態2704に入ったとき
に、ケーブル上で完了メッセージを生成する(MAST
ER_DAC状態2702で未だ発生されていない場
合)。そして、p2q_ack信号がPCIインターフ
ェースによってデアサートされると、マスタ状態マシン
はMCAを次のトランザクションにステップし、再びI
DLE状態2700に入る。さもなければ、PCI開始
パルスが出力されたときに、マスタ状態マシンはRBU
RST状態2708に入る態勢をとる。QPIFがトラ
ンザクションの終わりを表示するか(queue_cy
c_complete)、またはトランザクションが4
Kページ境界(バウンダリ)に達していれば(drq_
addr[11:2]信号内のすべてのビットが高レベ
ル、即ちハイのため、read_page_disco
nnectがアサートされている)、マスタ状態マシン
はQPIFのframe_信号をデアサートし、データ
の次の部分がそのデータの終わりであることを表示(e
arly_last_master_dataがアサー
トされる)してから、RBURST状態2708に入
る。マスタ状態マシンは、read_page_dis
connect_lastlineがアサートされてい
るか、またはDRQ最終ライン信号がアサートされてい
て、QPIFが他方のブリッジ・チップからストリーミ
ング信号を受け取っていなければ(cd_sreamか
stream_matchがアサートされていないか、
あるいはcfg2q_stream_disableが
セットされていない)、非同期のearly_mast
er_lastline信号もアサートして、データの
最終ラインに達したことを表示する。PCI開始パルス
がアサートされなければ、マスタ状態マシンはQPIF
がトランザクションを終了するか、あるいは4Kページ
境界に達するまで、RDATA1状態2704に留ま
る。マスタ状態マシンは、QPIFがトランザクション
を終了するか、または4Kページ境界に達することによ
り、IDLE状態2700に戻されるか、あるいはPC
I開始パルスが出るまで強制的にRBURST状態27
08におかれる。
タ状態マシンは、PCIバスにデータをバーストする。
完了メッセージが未だ発生されていなければ、マスタ状
態マシンがRBURST状態2708に入ったときに、
完了メッセージを起動する。そして、p2q_ack信
号がデアサートされるか、またはQPIFトランザクシ
ョンがPCIインターフェースによって再試行(リトラ
イ)されるか(p2q_retryがアサートされ
る)、またはPCIインターフェースがそのトランザク
ションをアボートすれば(p2q_target_ab
ortがアサートされる)、マスタ状態マシンは、PC
Iバス上のトランザクションを終了し、ケーブル上の完
了メッセージをアボートしてIDLE状態に入る。p2
q_ack試行が除去された場合、マスタ・サイクル・
アービタは現在のトランザクションの選択を継続する。
しかしトランザクションが再試行またはアボートされた
場合、マスタ状態マシンは、MCAを次のトランザクシ
ョンにステップする。p2q_ack信号がまだアサー
トされていて、QPIFトランザクションが再試行もア
ボートもされていないときであっても、4Kページ境界
に達し、ターゲット・デバイスがデータの取り出しを停
止したことをPCIインターフェースが表示すれば(p
2q_trdyが既にアサートされていない)、マスタ
状態マシンは、トランザクションを終了してIDLE状
態2700に戻る。ターゲット・デバイスがデータの最
後の部分を取り出せば、マスタ状態マシンはRBURS
T状態2708に留まる。QPIFがqueue_cy
c_complete信号をアサートしてトランザクシ
ョンの完了を表示した場合、マスタは通常、p2q_t
rdy信号がデアサートされるとそのトランザクション
を終了してIDLE状態2700に戻るか、あるいはp
2q_trdy信号がアサートされたままになっていれ
ば、最後のダブルワード・データが転送されるまで、R
BURST状態2708に留まる。しかし、そのトラン
ザクションが最終のデータ・フェーズ(データ相)では
ないデータ・フェーズにあり(p2q_master_
dphase及び!p2q_last_dphas
e)、他方のブリッジ・チップとの間にストリームが設
定されていれば(cd_stream及びstream
_match及び!cfg2_stream_disa
ble)、マスタ状態マシンは無期限にRBURST状
態に留まる。QPIFがストリーミングしているとき、
マスタ状態マシンはストリーミング信号(q2pif_
streaming)をアサートし、QPIFが他のP
CIバス上の要求しているデバイスに対し、そのデバイ
スがトランザクションを終了するまでデータの供給を継
続するよう強制する。
になっていて、p2q_retry、p2q_targ
et_abort、及びqueue_cyc_comp
lete信号のいずれもアサートされていなければ、マ
スタ状態マシンはp2q_trdy信号を調べる。この
シグナルがアサートされておらず、ターゲット・デバイ
スが既にデータの最後の部分を取り出したか又は供給し
たことを示していれば、マスタ状態マシンはその次のデ
ータ信号(early_next_data)をアサー
トすることにより、QPIFがデータの次の部分を転送
できる態勢にあることを示す。次のデータ信号は、トラ
ンザクションが訂正された読み出し(コレクティッド・
リード)でない(align_readがアサートされ
ない)、あるいはトランザクションが訂正された読み出
しであってread_data_start信号がアサ
ートされている場合にのみ、アサートされる。p2q_
trdy信号がアサートされ、ターゲットが最後のデー
タ転送を未だ行っていないことが表示された場合、状態
マシンはRBURST状態2708に留まる。WDAT
A1状態2706において、マスタ状態マシンはポステ
ド・メモリ書き込みトランザクションのデータ・フェー
ズを開始する。マスタ状態マシンがこの状態にあると
き、p2q_ack信号がデアサートされるか、p2q
_retryまたはp2q_target_abort
信号がアサートされると、トランザクションはPCIバ
ス上で終了され、状態マシンはIDLE状態2700に
戻る。p2q_ack信号がデアサートされたとき、M
CAは現在のサイクルに留まっているか、さもなくば、
マスタ状態マシンがMCAを次のトランザクションにス
テップする。
になっていて、トランザクションが再試行もアボートも
されなければ、マスタ状態マシンは、そのメモリ書き込
みの対象が単一のダブルワードであるか複数のダブルワ
ードであるかを判断しなければならない。WDATA1
状態においてqueue_cyc_complete信
号がアサートされるか、held new write
command信号がアサートされるか、end_o
f_lineとnew_write_cmd信号がアサ
ートされるか、あるいはトランザクションが最後のダブ
ルワード・データに達すれば、そのトランザクション
は、単一のダブルワードに関わるものである。この状態
において、ターゲットがデータの最後の部分を取り出し
た(!p2q_trdy)ときにのみ、そのトランザク
ションが終了し、状態マシンがIDLE状態2700に
戻る。それ以外の場合には、状態マシンはWDATA2
状態2710に留まる。トランザクションが複数のダブ
ルワード・データに関わるものであれば、マスタ状態マ
シンはWDATA2バースト・データ・フェーズ状態2
710に入る。overflow_next_queu
e信号がアサートされていれば、マスタ状態マシンはW
DATA2状態に入る直前にq2p_irdy待機状態
を挿入する。WDATA2状態2710において、マス
タ状態マシンはPCIバスに対してデータをバーストす
る。p2q_ack信号がデアサートされるか、あるい
はトランザクションがPCIインターフェースによって
アボートされると、そのトランザクションはQPIF内
で終了され、マスタ状態マシンは再びIDLE状態27
00に入る。トランザクションがPCIインターフェー
スに再試行(リトライ)されても、供給されたデータを
PCIインターフェースが取ってしまえば(!p2q_
trdy)、マスタ状態マシンは再びIDLE状態27
00に入る。それ以外の場合、状態マシンはWRETR
Yステップバック状態2712に入り、上に述べたステ
ップバック信号を生成して、PMWQ出力ポインタをデ
ータの直前の部分にステップバックする。状態マシン
は、常にWRETRY状態2712からIDLE状態2
700に再入する。
になっていてトランザクションが再試行もアボートもさ
れなければ、マスタ状態マシンはそのトランザクション
が完了しているかどうかを判断する。QPIFがトラン
ザクションの終わりを表示するか(queue_cyc
_completeがアサートされる)、またはキャシ
ュ・ラインの終わりに達して新しい書き込みコマンドが
必要であれば(end_of_line及びnew_w
rite_commandがアサートされる)、状態マ
シンはWSHORT_BURST状態2714に入り、
そのときデータの最後の部分が取り出されるか(!p2
q_trdy)、あるいはPCI開始パルスが受け取ら
れる。いずれの場合も、2つだけのダブルワード・デー
タがPCIバスに書き込まれなければならない。それ以
外の場合、状態マシンはWDATA2状態2710に留
まる。状態マシンがWSHORT_BURST状態27
14に入るとき、トランザクションが次の待ち行列にオ
ーバーフローすることができ、新しい書き込みマンドが
不要であれば、QPIFのframe_信号はアサート
されたままとなっている。WSHORT_BURST状
態2714において、マスタ状態マシンは、最後の2ダ
ブルワード・データをPCIバスに書き込む準備をす
る。p2q_ack信号がデアサートされるか、あるい
はPCIインターフェースによってサイクルが再試行ま
たはアボートされると、状態マシンはそのトランザクシ
ョンを終了してIDLE状態2700に戻る。PCI受
容(アクノリッジ)信号が消えるか、またはサイクルが
アボートしたとき、マスタ状態マシンはステップバック
信号をアサートして、PMWQ出力ポインタを直前のダ
ブルワードにステップバックすべきであることを表示す
る。トランザクションがPCIインターフェースによっ
て再試行されるとき、ターゲット・デバイスがデータの
最後の部分を取り出していない(p2q_trdyがア
サートされている)場合にのみ、出力ポインタがステッ
プバックされる。トランザクションが終了されておら
ず、それが次のPMWQバッファにオーバーフローする
ことができ(overflow_next_queue
がアサートされている)、そして新しい書き込みコマン
ドが不要であるとき、マスタ状態マシンは、QPIFフ
レーム信号をアサートされたままに保ち、ターゲット・
デバイスがデータの最後の部分を既に取り出していれば
WCOMPLETE状態2716に入り、そうでなけれ
ばWSHORT_BURST状態2714に留まる。ト
ランザクションが次の待ち行列にオーバーフローできな
いか、あるいは新しい書き込みコマンドが必要であれ
ば、状態マシンはフレーム信号をデアサートしてQPI
Fトランザクションの終わりを表示し、ターゲット・デ
バイスがデータの最後の部分を既に取り出していれば、
WCOMPLETE状態2716に入り、さもなければ
WSHORT_BURST状態2714に留まる。
て、マスタ状態マシンは、ポステド・メモリ書き込みト
ランザクションを終了させる。そのトランザクションが
PCIインターフェースによって再試行またはアボート
されると、状態マシンはIDLE状態2700に入る。
トランザクションが再試行されると、ターゲット・デバ
イスがデータの最後の部分を既に取り出している場合に
のみPMWQ出力ポインタが増分される。トランザクシ
ョンが次の待ち行列にオーバーフローすることができ、
新しい書き込みコマンドが不要であり、そしてトランザ
クションが最後のデータ・フェーズ(データ相)になけ
れば、マスタ状態マシンは待ち行列選択カウンタを増分
してからWDATA1状態2706に戻り、ターゲット
・デバイスがデータの最後の部分を既に取り出している
場合に限りオーバーフロー待ち行列からのトランザクシ
ョンを継続する。もしターゲット・デバイスがデータの
最後の部分を未だ取り出していなければ、マスタ状態マ
シンはWCOMPLETE状態2716に留まる。トラ
ンザクションが次のPMWQバッファにオーバーフロー
しないような場合、ターゲット・デバイスがデータの最
後の部分を既に取り出していれば、マスタ状態マシンは
トランザクションを終了し、IDLE状態2700に戻
る。それ以外の場合、状態マシンは上に述べた終了の原
因となるイベントのいずれかが発生するまで、WCOM
PLETE状態2716に留まる。
ンは、QPIFがスレーブ・モードで動作していると
き、そのQPIFの動作をコントロールする。該モード
において、QPIFはPCIバス上のデバイスからポス
テド書き込みトランザクション及び遅延された要求トラ
ンザクションを受け取り、これらのトランザクションを
ケーブルを介してターゲット・バスに転送する。スレー
ブ状態マシン内における状態遷移の原因となるイベント
を次の表に示す。
LE状態2720に入り、その状態において、QPIF
はトランザクションがPCIバス上のデバイスにより生
成されるのを待つ。PCIバス上で生成されたトランザ
クションがQPIFをターゲットにしていなければ(q
2p_qcycがアサートされていない)、スレーブ状
態マシンはIDLE状態2720のままで待機を続け
る。PCIバス上で生成されたトランザクションがQP
IFをターゲットにしているものであるとき、p2q_
dac_flagがアサートされていてアドレス・パリ
ティ・エラーが発生していなければ(p2q_perr
がロー)、スレーブ状態マシンはSLAVE_DACデ
ュアル・アドレス・サイクル状態2722に入る。その
トランザクションがデュアル・アドレス・サイクルでな
くポステド・メモリ書き込み要求であって、アドレス・
フェーズ(アドレス相)でパリティ・エラーが発生して
いなければ、スレーブ状態マシンは書き込みカウンタを
ロードして(即ち、load_write_count
erをアサートする)、そのトランザクションを受け入
れられるかどうかを判断する。他方のブリッジ・チップ
内のPMWQが満たされている(フル)か(tc_dc
_fullがDCトランザクション・カウンタにアサー
トされている)、またはDCQがロックされているか
(dcq_lockedがアサートされている)、また
はQPIFロック・ロジックがunlocked_bu
t_retry状態にあれば(lock_state
[1]=”1”)、スレーブ状態マシンは、PCIイン
ターフェースにq2pif_retryとして渡される
非同期の再試行信号(early_retry)をアサ
ートしてそのトランザクションを終了し、IDLE状態
2720に留まる。QPIFがそのトランザクションを
受け入れることができれば、スレーブ状態マシンはケー
ブル上にポステド・メモリ書き込みメッセージを生成し
て、PMW1状態2724に入り、そこでトランザクシ
ョンを転送すべくケーブル上に送出する
ス・サイクルやポステド・メモリ書き込み要求でなけれ
ば、スレーブ状態マシンはダブルワード・カウンタをロ
ードし(load_write_counterをアサ
ートする)、パリティ・エラーが発生していなければ、
その遅延された(ディレード)要求トランザクションを
分析する。そのトランザクションがMRLまたはMRM
トランザクションであって、QPIFロック・ロジック
がunlocked_but_retry状態になけれ
ば、スレーブ状態マシンはQPIFチェック・サイクル
信号(q2pif_check_cyc)をアサートす
ることにより、そのラッチされている要求をDCQバッ
ファ内の遅延された完了メッセージと比較するように、
DCQに指示する。その要求が空でないDCQバッファ
をヒットすれば(dcq_hit及び!dcq_no_
data)、スレーブ状態マシンはSTEP_AHEA
D状態2726に入り、そこでQPIFが要求されてい
る情報のPCIバスに対する送出を開始する。そのMR
LまたはMRM要求がDCQデータ・バッファのいずれ
も取得できず、即ちミスし(!dcq_hit)、DC
Qが満たされてなく、即ちフルでなく(!dcq_fu
ll)、他方のブリッジ・チップ内の遅延された要求待
ち行列フルでなく(!tc_dr_full)、そして
DCQ及びQPIFがロックされていなければ(!dc
q_locked及び!lock_state
[1])、スレーブ状態マシンはq2pif_retr
y信号をアサートし、その要求を転送すべくケーブルに
送出し、そしてIDLE状態2720に留まる。その要
求がDCQをミスし、要求をケーブルに送出できなけれ
ば、QPIFは単に要求しているデバイスを再試行して
IDLE状態2720に留まる。その遅延された要求が
MRLまたはMRMトランザクションでなければ、デー
タまたはバイト・イネーブルをDCQバッファの内容と
比較しなければならないので、その要求をチェックする
ために第2のクロック・サイクルが必要となり、そこで
スレーブ状態マシンはSECOND_CHECK状態2
728に入る。もしパリティ・エラーが発生するか、ま
たはロック・ロジックがunlocked_but_r
etry状態に在れば、状態マシンは要求しているデバ
イスを再試行してIDLE状態2720に留まる。
て、スレーブ状態マシンはアドレス・フェーズ(相)情
報の後半部を受け取る。もし要求しているデバイスがQ
PIFをターゲットととしていなければ、スレーブ状態
マシンはそのトランザクションを無視してIDLE状態
2720に留まる。QPIFがターゲット・デバイスで
あるとき、状態遷移イベントはIDLE状態2720に
おけるものと同じである。特に、そのトランザクション
がポステド・メモリ書き込み要求で、パリティ・エラー
が発生していなければ、スレーブ状態マシンは書き込み
カウンタをロードし、そのトランザクションを受け入れ
ることが可能かどうかを判断する。他方のブリッジ・チ
ップ内のPMWQがフルであるか(tc_pmw_fu
llがアサートされている)、DCQがはロックされて
いるか、あるいはQPIFロック・ロジックがunlo
cked_but_retry状態に在れば、スレーブ
状態マシンは、要求しているデバイスを再試行してID
LE状態2720に戻る。QPIFがそのトランザクシ
ョンを受け入れることができれば、スレーブ状態マシン
はケーブル上にポステド・メモリ書き込みメッセージを
生成し、PMW1状態2724に入る。トランザクショ
ンがポステド・メモリ書き込み要求でなければ、スレー
ブ状態マシンはダブルワード・カウンタをロードし、パ
リティ・エラーが発生していなければ、その遅延された
要求トランザクションを分析する。そのトランザクショ
ンがMRLまたはMRMトランザクションであって、Q
PIFロック・ロジックがunlocked_but_
retry状態になければ、スレーブ状態マシンはQP
IFチェック・サイクル信号をアサートする。その要求
が空でないDCQバッファをヒットすれば、スレーブ状
態マシンはSTEP_AHEAD状態2726に入る。
そのMRLまたはMRM要求がDCQデータ・バッファ
をすべてミスし、DCQがフルでなく、他方のブリッジ
・チップ内の遅延された要求待ち行列がフルなく(tc
_dr_fullがアサートされていない)、そしてD
CQ及びQPIFがロックされていなければ、スレーブ
状態マシンはq2pif_retry信号をアサート
し、その要求をケーブルに送出し、そしてIDLE状態
2720に戻る。その要求がDCQをミスし、該要求を
ケーブルに送出することができない場合は、QPIFは
単に要求しているデバイスを再試行(リトライ)してI
DLE状態2720に留まっている。
トランザクションでなければ、データまたはバイト・イ
ネーブルをDCQバッファの内容と比較しなければなら
ないので、その要求をチェックするために第2のクロッ
ク・サイクルが必要となり、そこでスレーブ状態マシン
はSECOND_CHECK状態2728に入る。パリ
ティ・エラーが発生するか、またはロック・ロジックが
unlocked_but_retry状態に在れば、
状態マシンは要求しているデバイスを再試行してIDL
E状態2720に戻る。PMW1状態2724におい
て、スレーブ状態マシンはポステド・メモリ書き込みト
ランザクションをケーブルを介してターゲット・デバイ
スに転送する。該状態マシンは、初めてPMW1状態2
724に入るときにload_write_count
erをデアサートする。ダブルワード・カウンタがポス
テド・メモリ書き込みトランザクションが最終キャシュ
・ラインに在り(pmw_conter[5:3]=”
111”)、他方のブリッジ内のPMWQがフルであり
(tc_pmw_full)、書き込みオーバーフロー
機能がデスエーブルされている(!cfg2q_wri
te_overflow)ことを表示するか、またはト
ランザクションが4Kページ境界に達しているためにw
rite_page_disconnectがアサート
されるか、またはDCQがdcq_disconnec
t_for_stream信号をアサートしており書き
込みデスコネクト機能がデスエーブルされないと(!c
fg2q_wr_discnt_disable)、ス
レーブ状態マシンはslave_lastline信号
をアサートし、現在のキャシュ・ラインが最後の転送の
対象であることを示す。それからスレーブ状態マシンは
p2q_qcyc信号がデアサートされ、トランザクシ
ョンがPCIバスで完了したことが表示されるまで、P
MW1状態2724に留まる。PMW1状態2724か
ら出た後、スレーブ状態マシンは再び、IDLE状態2
720に入る。
おいて、スレーブ状態マシンはDCQに、要求情報の第
2フェーズとDCQバッファ内の遅延された完了情報を
比較させる。トランザクションが遅延された書き込み要
求でないか(!io_write及び!config_
write)、またはパリティ・エラーが存在せず(!
p2q_perr)、そしてDCQがロックされておら
ずdwr_check_ok信号がアサートされた場
合、スレーブ状態マシンはq2pif_check_c
ycをアサートする。dwr_check_ok信号
は、トランザクションが遅延された書き込み要求でない
とき、あるいは遅延された書き込み要求であってp2q
_irdy待機状態が挿入されていなかった場合にアサ
ートされる。その要求がDCQバッファの1つをヒット
し、そのバッファが空でなければ、スレーブ状態マシン
はSTEP_AHEAD状態2726に入る。その要求
がDCQバッファをすべてミスしても、QPIFがその
メッセージをケーブルに送出することができれば、スレ
ーブ状態マシンは要求しているデバイスを再試行し、そ
のトランザクションを転送すべくケーブルに送出し、そ
して再びIDLE状態2720に入る。それ以外の場
合、その要求がDCQバッファをすべてミスし、QPI
Fがそのトランザクションをケーブルに送出できなけれ
ば、あるいは遅延された書き込み要求でパリティ・エラ
ーが起こっていれば、状態マシンは、要求しているデバ
イスを再試行してから再びIDLE状態2720に入
る。STEP_AHEAD状態2726において、スレ
ーブ状態マシンは、DCQ出力ポインタを次のダブルワ
ードに増分する。この状態は、PCIインターフェース
が!p2q_trdy信号をアサートせずに最初のダブ
ルワード・データをラッチするため、DCQバッファが
ヒットされた直後に必要となる。STEP_AHEAD
状態2726から、この状態マシンはHIT_DCQ状
態2730に入り、該状態において、最後のダブルワー
ド・データが未だ取り出されていなければ、データが適
当なDCQバッファから要求元のデバイスに供給され
る。さもなくば、状態マシンはHIT_DCQ_FIN
AL状態2732に入り、そこにおいて、DCQバッフ
ァにはもうデータが入っていないので、要求しているデ
バイスが再試行される。
れた要求トランザクションがQPIF内で終了する前に
PCIバスで終了するとき(p2q_gcycがアサー
トされる)、状態マシンはそのトランザクションをQP
IF内で終了させ、セットバック信号をアサートする。
該信号により、データの最後の部分が要求しているデバ
イスに未だ取り出されていないためにDCQ出力ポイン
タを減分すべきであることが示される。状態マシンは、
それからIDLE状態2720に入る。要求しているデ
バイスがデータの要求を続けているうちに、DCQバッ
ファにデータが無くなるか(dcq_no_data及
び!p2q_irdy)、あるいはpmw_count
erが最後のダブルワードに達したことを表示し、かつ
read_disconnect_for_strer
am信号がアサートされていれば、スレーブ状態マシン
は要求しているデバイスを再試行し、HIT_DCQ_
FINAL状態2732に入る。トランザクションが終
了してストリームが設定されると、ステップバック信号
がアサートされ、適切なDCQバッファの出力ポインタ
が減分される。他のいずれの状態においても、スレーブ
状態マシンはHIT_DCQ状態2730でデータの供
給を継続する。HIT_DCQ_FINAL状態273
2において、スレーブ状態マシンは転送に残されている
1つのダブルワードのデータを持っている。要求してい
るデバイスがデータの最後の部分を取り出す前にPCI
バスがトランザクションを終了すれば(即ち、p2q_
qcycがデアサートされる)、スレーブ状態マシンは
ステップバック信号をアサートして、IDLE状態27
20に戻る。p2q_qcyc信号がアサートされたま
まで、要求しているデバイスが開始待機(initia
tor wait)状態をアサートしていなければ(!
p2q_irdy)、データの最後の部分が取られてい
るので要求しているデバイスが再試行される。そして状
態マシンは再びIDLE状態2720に入る。さもなく
ば、状態マシンはHIT_DCQ_FINAL状態27
32に留まる。
ジ・ジェネレータは1つの状態マシンであって、マスタ
及びスレーブ状態マシンから得たトランザクション情報
からケーブル・メッセージを生成する。IDLE状態2
740に加え、ケーブル・メッセージ・ジェネレータは
デュアル・アドレス・サイクル(CABLE_DAC)
状態2742、マスタ・データ・フェーズ(MASTE
R_DPHASE)2744、及びスレーブ・データ・
フェーズ(SLAVE_DPHASE)2746も含
む。ケーブル・メッセージ・ジェネレータ内における状
態遷移の原因となるイベントを次の表に示す。
ージ・ジェネレータはIDLE状態に2740に入り、
そこにおいてマスタ又はスレーブ状態にマシンから到着
するトランザクション情報を待つ。IDLE状態に27
40からケーブル・メッセージ・ジェネレータがプリフ
ェッチ多重信号(dcq_prefetch_mul)
またはプリフェッチ・ライン信号(dcq_prefe
tch_line)を受け取れた場合は、ケーブル・ア
ドレス信号(early_cad[31:2])がプリ
フェッチ・アドレス信号dcq_prefetch_a
ddr[31:2]と等しい。さもなくば、early
_cad[31:2]がQPIFアドレス・信号(q2
pif_addr[31:2])の値をとる。ケーブル
・メッセージがマスタ状態にマシンによって開始すなわ
ち起動された場合、そのメッセージは遅延された完了メ
ッセージであり、従ってコマンド・コード(early
_ccbe[3:1])は、”1001”である。ケー
ブル・メッセージがスレーブ状態にマシンによって開始
されたとき、コマンド・コードは上に述べたmessa
ge_cmd[3:0]信号の値をとる。send_m
essage信号がアサートされてマスタ状態にマシン
とスレーブ状態にマシンのいずれかがメッセージを起動
したことが示され、かつ対応するトランザクションがデ
ュアル・アドレス・サイクルでないか、またはケーブル
・メッセージ・ジェネレータがデュアル・アドレス・サ
イクルでないプリフェッチ要求を受け取ったか、あるい
はケーブル・メッセージ・ジェネレータがストリーム接
続信号を受け取り、かつダウンストリーム(下流)のD
RQに未処理になっているCPUからの遅延された要求
が無いかのいずれかの場合、ケーブル・メッセージ・ジ
ェネレータはsent_pmw信号をアサートすること
によって、PCIバスからケーブルを介してポステド・
メモリ書き込み要求が送られてくることを表示する。D
CQによってストリームが設定されていれば、sent
_pmw信号はアサートされない。ケーブル・メッセー
ジ・ジェネレータは、スレーブ状態マシンから読み出し
要求または遅延された書き込み要求が受け取られたと
き、あるいはDCQによってストリームが設定されてい
ないときにプリフェッチ信号が受け取られたとき、se
nt_dr信号をアサートする。
cq_stream_connectがアサートされて
いる)、ケーブル信号(early_cbuff[2:
0])のバッファ番号はDCQストリーム・バッファ
(dcq_stream_buff[2:0])の値を
とり、ケーブル・コマンド・コード(early_cc
be[3:0])は”1000”に等しくセットされ、
ケーブル・メッセージ・ジェネレータは、SLAVE_
DPHASE状態に2746に入る。それ以外の場合、
QPIFがスレーブ・モードにあり、ケーブル・メッセ
ージ・ジェネレータがプリフェッチ多重信号またはプリ
フェッチ・ライン信号を受け取れば、ケーブル・バッフ
ァ信号はDCQバッファ番号(dcq_buff[2:
0])の値をとり、ケーブル・メッセージ・ジェネレー
タは、SLAVE_DPHASE状態2746に入る。
さもなくば、QPIFはマスタ・モードで動作してお
り、ケーブル・メッセージ・ジェネレータは、MAST
ER_DPHASE状態に2744に入る。ケーブル・
メッセージ・ジェネレータがsend_message
信号、及びデュアル・アドレス・サイクルであるトラン
ザクションを受け取ったとき、あるいはデュアル・アド
レス・サイクルであるプリフェッチ要求を受け取ったと
き、メッセージ・ジェネレータはCABLE_DAC状
態に2742に入る。プリフェッチ信号については、ケ
ーブル・アドレス信号がdcq_prefetch_a
ddr[63:0]信号の上位32ビットに等しくセッ
トされる。さもなくば、ケーブル・アドレスはq2pi
f_addr[63:0]シグナルの上位32ビットに
等しくなる。更に、ケーブル・メッセージ・ジェネレー
タがスレーブ状態マシンからのトランザクションを受け
取れった場合は、ケーブル・バッファ番号はDCQバッ
ファ番号に等しくなる。さもなくば、ケーブル・バッフ
ァ番号はDRQバッファ番号に等しい(ポステド・メモ
リ書き込みトランザクションについては、完了メッセー
ジが生成されない)。
て、ケーブル・メッセージ・デコーダがアドレス・フェ
ーズ情報の後半部を生成する。IDLE状態に2740
における場合と同様に、ケーブル・アドレス信号は受け
取られたトランザクションがプリフェッチ・ライン要求
またはプリフェッチ多重要求であればプリフェッチ・ア
ドレスの値をとり、そうでなければq2pif_add
r[31:2]の値をとる。メッセージ・ジェネレータ
がスレーブ状態にマシンからポステド・メモリ書き込み
トランザクションを受け取ったとき、sent_pmw
信号がアサートされ、またスレーブ状態マシンからプリ
フェッチ要求または遅延された要求を受け取ったとき、
sent_dr信号がアサートされる。プリフェッチ要
求またはスレーブ状態にマシンからの要求が受け取られ
ると、ケーブル・メッセージ・ジェネレータは、SLA
VE_DPHASE状態2746に入る。さもなくば、
メッセージ・ジェネレータは、MASTER_DPHA
SE状態2744に入る。MASTER_DPHASE
状態2744において、ケーブル・メッセージ・ジェネ
レータは、ケーブルを介して遅延された完了メッセージ
の送出を試みる。しかし、QPIFがPCIバスの制御
権を得る前にPCIインターフェースがPCIバス上の
デバイスにバスの制御権を与えていれば、ケーブル・メ
ッセージ・ジェネレータは、MASTER_DPHAS
E状態2744を出て、新しく受け取られたメッセージ
を送出しなければならない。従って、メッセージ・ジェ
ネレータがMASTER_DPHASE状態2744に
入っているうちにsend_message信号がアサ
ートされると、q2c_new_req信号がアサート
されて、新しいメッセージの開始が表示される。q2p
if_dac_flagがアサートされていると、新し
いトランザクションはデュアル・アドレス・サイクルで
あって、ケーブル・メッセージ・ジェネレータは、CA
BLE_DAC状態2742に入る。さもなくば、メッ
セージ・ジェネレータはSLAVE_DPHASE状態
2746に入る。send_message信号がアサ
ートされていなければ、ケーブル・メッセージ・ジェネ
レータがマスタ状態マシンからの遅延された完了メッセ
ージを送信中である。マスタ状態マシンがPCI間で最
後のデータ転送を完了し、ターゲット・デバイスがその
転送に肯定応答したとき(!p2q_trdy)、ある
いはマスタがケーブル上でトランザクションをアボート
したとき、ケーブル・メッセージ・ジェネレータは、s
ent_dc信号をアサートして遅延された完了メッセ
ージがケーブルを介して送出されたことを表示し、再び
IDLE状態2740に入る。さもなくば、メッセージ
・ジェネレータは、MASTER_DPHASE状態2
744に留まって、遅延された完了メッセージの生成を
続行する。
ら、アップストリ―ムのチップとのストリームが設定さ
れていて、ダウンストリームのDRQにCPUからの未
処理の遅延された要求が無く、そして要求しているデバ
イスがQPIFへのデータ転送を継続している(q2p
_qcycがアサートされている)限り、ケーブル・メ
ッセージ・ジェネレータはSLAVE_DPHASE状
態2746に留まって要求しているデバイスからのトラ
ンザクションの転送を続ける。それ以外の場合、ケーブ
ル・メッセージ・ジェネレータが遅延された要求または
プリフェッチ要求を受け取れば、ケーブル・メッセージ
・ジェネレータはその要求を転送し、遅延された書き込
み要求の場合には、1つのダブルワード・データをアッ
プストリ―ムのデバイスに送り、それからIDLE状態
2740に入る。さもなくば、ケーブル・メッセージ・
ジェネレータがポステド・メモリ書き込み要求を受け取
っている。この状態において、ケーブル・メッセージ・
ジェネレータはSLAVE_DPHASE状態2746
に留まり、early_last_slave_dat
aがアサートされ、スレーブ状態マシンによってデータ
の最後の部分が送出されたことが表示されるまで、ケー
ブルを介してそのポステド・メモリ書き込み情報の転送
を継続する。メッセージ・ジェネレータは、それからケ
ーブル・トランザクションを終了し、再びIDLE状態
2740に入る。
るために、ケーブル28を通して送られるデータは、ク
ロック・ジェネレータ102及び122からのクロック
に適正に同期されなければならない。下流(ダウンスト
リーム)のクロック・ジェネレータ122のクロック
は、ケーブル28をデータと共に下方へ送信される上流
(アップストリーム)のクロック(このクロックはPC
Iバス・クロックPCICLK1を基にする)に基づい
て発生される。その結果、ダウンストリームへ送信され
たアップストリームのデータは、ダウンストリームのブ
リッジ・チップ48において発生されたクロックに同期
される。しかしながら、アップストリームのチップ26
において発生されたメイン・クロックとダウンストリー
ムのチップ48からアップストリームへ送り戻されるデ
ータとの間のケーブル28に関連する相遅延は未知であ
る。ケーブル28の長さの範囲は10〜100フィート
(適切なインターフェース技術が用いられた場合)であ
る。アップストリームのケーブル・インターフェース1
04における受信用ロジックは、有効なアップストリー
ムのクロックに関して非同期の境界である。従って、受
信用ロジックは、ダウンストリームからアップストリー
ムへのデータを、アップストリームのクロック・ジェネ
レータ102からのクロックに再同期させる必要があ
る。
Iブリッジにおけるクロック分配スキームが示されてい
る。ブリッジ・チップ26とブリッジ・チップ48の間
を送られるトランザクション(transaction)、すなわ
ち信号は、複数の時分割多重(time-multiplexed)メッ
セージに符号化される。メッセージのフォーマットは、
PCIトランザクションのフォーマットと類似であり
(ただし、時分割多重化は相違)、バッファ数及び特別
のブリッジ・ファンクション・コマンドを示すために付
加された信号に加えて、アドレス及び1つ又は複数のデ
ータの相(フェーズ)と、変調されたハンドシェーク
(handshake)信号とを含む。ケーブル・インターフェ
ース104、130はそれぞれ、マスタ・ケーブル・イ
ンターフェース192、194及びスレーブ・ケーブル
・インターフェース196、198を含む。マスタ・ケ
ーブル・インターフェース192、194は、ケーブル
28にメッセージを送信し、スレーブ・ケーブル・イン
ターフェース196、198は、ケーブル28からメッ
セージを受信する。各ブリッジ・チップのクロック・ジ
ェネレータ102、122は、クロックを発生するため
の2つのオン−チップPLLを含む。アップストリーム
のブリッジ・チップ26のPLL184は、1次(主)
PCIバス入力クロックPCICLK1にロックする。
ダウンストリームのブリッジ・チップ48において、P
LL180は、クロック・バッファ181からのクロッ
クPCICLK2にロックする。以下の説明において、
「1Xクロック」は、クロックPCICLK1と同じ周
波数を有するクロックを意味しており、「3Xクロッ
ク」は、クロックPCICLK1の3倍の周波数を有す
るクロックを意味している。PLL184、180(ブ
リッジ・チップ26、48中)によって発生された1X
クロックPCLKは、対応するブリッジ・チップのPC
Iバス・インターフェース・ロジック188、190に
用いられ、3XクロックPCLK3は、マスタ・ケーブ
ル・インターフェース192、194のケーブル・メッ
セージ生成ロジックを動作させるために用いられる。他
のPLL186、182は、ケーブル入力クロックCA
BLE CLK1(アップストリームから)、CABLE
CLK2(ダウンストリームから)にロックするた
め、さらには入来するケーブル・データを捕らえるため
に、1XクロックCCLK及び3XクロックCCLK3
を発生するために用いられる。PLL186、182の
クロック出力はそれぞれ、スレーブ・ケーブル・インタ
ーフェース196、198に送られる。
間のスキューを最小化するために、可能な限り1Xクロ
ックと3Xクロックの均衡をとるようなレイアウトに配
置される。PLL184、180はフェーズ(相)表示
(インジケータ)信号PCLKPHI1を発生し、この
信号は、データの第1のフェーズ(がケーブル28に提
供されるべきときに、それをマスタ・ケーブル・インタ
ーフェース192、194に知らせる。アップストリー
ム側では、信号PCLKPHI1はPCIクロックPC
ICLK1を基にしており、ダウンストリーム側では、
信号PCLKPHI1はPCIクロックPCICLK2
を基にしている。PLL186、182は、ケーブル・
クロックCABLE CLK1又はCABLE CLK
2を基にするフェーズ・インジケータ信号CCLKPH
I1を発生し、データの第1のフェーズがケーブル28
を下って来たときに、それをスレーブ・ケーブル・イン
ターフェース196、198に知らせる。2次(副)の
PCIバス32に対するPCIクロックPCICLK2
は、ダウンストリームのブリッジ・チップ48のPLL
182の1XクロックBUFCLKから生成される。ク
ロックBUFCLKは、ドライバ179を通じてクロッ
ク・バッファ181を駆動する。バッファ181は、2
次のPCIバス32の6つのスロットの各々に対する個
別のクロック信号とクロックPCICLK2とを出力
し、クロックPCICLK2は、ダウンストリームのブ
リッジ・チップ48へバス入力クロックとして送り戻さ
れる。クロック・バッファ181からのクロックPCI
CLK2に基づくクロックPCLKを基準とすることに
よって、アップストリームのチップとダウンストリーム
のチップのクロック・スキームが、より類似するように
なる。これは、両方とも外部バス・クロックを基準とす
るからである。ケーブル・クロックCABLE CLK
1は、33%のデューティ・サイクルを有している。P
LL182は、最初に、BUFCLKとしての出力に対
して33%のデューティ・サイクル・クロックを50%
のデューティ・サイクル・クロックに変換する。PCI
の仕様、バージョン2.1は、PCIバス・クロックが
以下の要求に適合することを必要とする。即ち、クロッ
ク・サイクル時間が30ns以上であること、クロック
のハイ(高レベル)時間が11nsよりも大きいこと、
クロックのロー(低レベル)時間が11ns以上である
こと、及びクロック・スキュー・レートが1nsと4n
sの間であることである。
されると、アップストリームのチップ26は最後にパワ
ー・オンされ、アップストリームのPLL184は、ク
ロックCABLE CLK1をケーブル28上をマスタ
・インターフェース192を介して送り、そして、該P
LL184は、ダウンストリームのPLL182及びP
LL180によってロックされる。次にダウンストリー
ムのPLL180は、クロックCABLE CLK2を
アップストリームに送り返して、PLL186によって
ロックされるようにする。このシステムは、4つのPL
Lのすべてがロックを得るまで完全には動作しない。ア
ップストリームのブリッジ・チップ26がパワー・アッ
プ(電源供給)され且つダウンストリームのブリッジ・
チップ48がまだターン・オンされていない場合、アッ
プストリームのブリッジ・チップ26は、ダウンストリ
ームのバス(ケーブル28)に何も接続されていないP
CI−PCIブリッジとして動作する。その結果に、ア
ップストリームのブリッジ・チップ26は、ダウンスト
リームのブリッジ・チップ48がパワー・オンされ且つ
アップストリームのPLL186がケーブル・クロック
CABLE CLK2から「ロック」を得るまで、どの
ようなサイクルも受け入れない。アップストリームのブ
リッジ・チップ26は、1次バス24のPCIリセット
信号PCIRST1 のアサート(assertion)と非同
期であり、そのすべてのPCI出力バッファ及び状態マ
シン(state machine)をフローティング状態にする。
リセットの間、PLL184は、PCIバス・クロック
PCICLK1へのロックを獲得することを試みること
もある。PCIの仕様は、PCIバス・クロックが安定
した後に、信号PCIRST1 が少なくとも100μ
sは活性状態のままでいることを保証するので、PLL
184はロックを得るために約100μsを有する。ダ
ウンストリームのブリッジ・チップ48は、1次バスの
PCIRST1 信号を検出すると、すべての内部の状
態マシンをリセットする。それに応答して、ダウンスト
リームのブリッジ・チップ48はまた、2次PCIバス
32上を各スロットへ、スロット特定リセットをアサー
トし、それに加えて、2次PCIバス・リセット信号P
CIRST2 をアサートする。
z(25MHzのPCIバスに対する)と100MHz
(33MHzのPCIバスに対する)の間の出力201
(3Xクロック)を発生する電圧制御発振器(VCO)
200を含む。VCO200は、PCIバス・クロック
である基準クロック(REFCLK)197を受信す
る。各PLLは、ロック検出回路205を有し、この回
路は、PLL位相が意図された機能を行うのに十分な程
正確に、その基準クロックにロックされたことを、ロッ
ク表示ビットによって示す。ロック表示ビットは、各ブ
リッジ・チップの構成スペース105、125の状態レ
ジスタに書き込まれる。ダウンストリーム側では、電力
正常/ロック状態ビットがアップストリームのブリッジ
・チップ26に送信され、それにより、ダウンストリー
ムのブリッジ・チップ48の主エレメントが安定(電力
が安定)し、且つダウンストリームのPLLがロックさ
れたこと(2つのPLLのロック表示ビットが活性状
態)を示す。ロック表示ビットはまた、EDC状態ビッ
トでゲートされることにより、EDCエラーをPLLが
ロックされるまで報告しないようにしている。従って、
ブリッジ・チップの対は、ソフトウエアの介在なしに、
エラーのない通信状態となる。ロック表示ビットはま
た、PLLロックの不具合と他のデータ・エラーとを区
別可能な幾つかの診断情報を提供する。クロック発生回
路は、VCO出力201を3で割ったクロック(1Xク
ロック)を発生するための4状態マシン202を含む。
1Xクロックは、PLLのFBCLK入力端子203に
フィード・バックされる。
おいて、3Xクロック(PCLK3)の速度でケーブル
28を下流に移動し、1Xクロック・メッセージ転送速
度を作り出す。図7を参照すると、マスタ・ケーブル・
インターフェース192、194内のケーブル・メッセ
ージを分解及び送信するための回路は、ローカルPCL
Kに同期して送信されるメッセージをサンプリングする
レジスタ204を含む。フリップ・フロップ208は、
送信されるメッセージの第3のフェーズ(における保持
時間に関しての予備的マージンを提供し、これは、この
第3の相をPCLKの予備の半分に割り当てることによ
って、実現される。出力レジスタ212は、3Xクロッ
クPCLK3でクロッキング(クロック制御)されるの
で、1Xクロックと3Xクロックの間でスキューを制御
する必要性が低減される。フェーズ(表示信号PCLK
PHI1から、3つのフリップ・フロップ210は、連
続するPHI1信号、PHI2信号、PHI3信号を発
生し、これら信号はそれぞれ、フェーズ1、2、3を表
し、かつ60:20マルチプレクサ206を制御する。
データの3つのフェーズ(LMUXMSG[19:
0]、LMUXMSG[39:20]、LMUXMSG
[51:40]又はEDC[7:0])は、レジスタ即
ちフリップ・フロップ212に連続して順次入力され、
ケーブル28を通じて駆動される。データの第3のフェ
ーズは、レジスタ204の出力ビットLMUXMSG
[51:0]からECCジェネレータ206(図7)に
よって生成されたエラー訂正ビットEDC[7:0]を
含む。PCLK3によってクロッキングされるフリップ
・フロップ214は、PHI1信号を受信し、それをケ
ーブル・クロックCABLE CLK1又はCABLE
CLK2として出力する。マスタ・ケーブル・インタ
ーフェース192、194は、1X/3X通信インター
フェースであるので、3Xクロック分の待ち時間がかか
り、それにより、図8に示されるようにPCIバス・ク
ロックから送信されたケーブル・メッセージAの1つの
3Xクロック分の相のシフトが発生する。期間T0にお
いて、メッセージAがレジスタ204の入力に供給さ
れ、第1の相のクロック・インジケータPCLKPHI
1がハイになる。信号PHI1は、前のサイクルから変
化してハイになる。期間T1において、ケーブル・クロ
ックCABLE CLK1又はCABLE CLK2
は、信号PHI1がハイであることに応答してハイに駆
動される。PCLKPHI1のパルスによって、信号P
HI2は期間T1においてハイのパルスとされる。次
に、期間T2において、信号PHI3は信号PHI2に
応答してハイとなる。期間T3において、信号PHI1
は信号PHI3がハイであることに応答してハイとな
る。メッセージAは、期間T3のクロックPCLKの立
ち上がりでレジスタ204にロードされる。次に、期間
T4において、信号PHI1によって、マルチプレクサ
206がレジスタ212へロードするための第1のフェ
ーズのデータa1を選択するようにされる。次に、期間
T5において、第2のフェーズのデータa2が選択され
てレジスタ212へロードされる。次に、期間T6にお
いて、第3のフェーズのデータa3がレジスタ212に
ロードされる。このようなプロセスは、後続のクロック
期間において、メッセージB、C、Dに対して繰り返さ
れる。
クCABLE CLKは、33%のデューティ・サイク
ルを有する。また、ケーブル・クロックCABLE C
LKが50%の平均デューティ・サイクルを有するよう
に設計することもでき、これは、例えば、ケーブル・ク
ロックを、33%ハイ-66%ロー-66%ハイ-33%
ローとすることによって、達成できる。平均50%のデ
ューティ・サイクルを有することによって、ケーブル2
8により良い通過特性(pass characteristic)を得る
ことができる。
インターフェースの先入れ先出しバッファ(FIFO)
216は、ケーブル28から入来するデータを組み立
て、該組み立てたデータを受信側ブリッジ・チップの待
ち行列マシン及びPCI状態マシンへ送信する。FIF
O216は4エントリを格納できる深さ(大きさ)であ
り、各エントリは、完全な1つのケーブル・メッセージ
を保持することができる。FIFO216の深さは、ケ
ーブル・データがケーブル・インターフェースで有効帯
域を全く損失することなくローカルのブリッジ・チップ
のクロックと同期されることを可能にする。更に、アッ
プストリーム側において、FIFO216は、ダウンス
トリームのブリッジ・チップ48から来るケーブル・デ
ータに対して、非同期の境界を形成する。FIFO21
6は、ケーブル・データが、残りのチップに出力される
前に、PCLKに同期することを確実にする。FIFO
216のエントリは、入力ポインタ・カウンタ226か
らの入力ポインタINPTR[1:0]によって選択さ
れ、このカウンタは、信号CCLK3によってクロッキ
ングされ、信号EN INCNTがローのときにクリア
され、相インジケータCCLKPHI1によってイネー
ブルされる。PLL186又は182からの3Xクロッ
クCCLK3の負の縁部(立ち下がり縁)が、ケーブル
28から入来するデータを最初に20ビット・レジスタ
218にラッチし、次に、相1表示信号PHI1 DL
Yがアサートされる場合には、レジスタ220にラッチ
し、フェーズ2表示信号PHI2 DLYがアサートさ
れる場合には、レジスタ222にラッチする。レジスタ
220、222、218からのフェーズ1のデータ、フ
ェーズ2のデータ、フェーズ3のデータのそれぞれは、
フェーズ3表示信号PHI3 DLYがアサートされた
ときに、CCLK3の負の縁部でFIFO216の選択
されたエントリにロードされる。FIFO216からの
4セットの出力は、240:60(=4:1)マルチプ
レクサ228によって受信される。このマルチプレクサ
は、PCLKによってクロッキングされ、信号EN OU
TCNTがローのときにクリアされる出力ポインタ・カ
ウンタ224からの出力ポインタOUTPTR[1:
0]によって選択制御される。
ンタ226及び出力ポインタ・カウンタ224は、デー
タを記憶しかつ空にするため、FIFO216に連続的
に作用する。カウンタ226及び224は、有効データ
が読まれる前に該データが所定位置にあることを保証す
るように、オフセットされる。ポインタの初期設定は、
同期の不確定性に起因して、アップストリームのブリッ
ジ・チップ26に対してとダウンストリームのブリッジ
・チップ48に対してでは、異なる。フリップ・フロッ
プ236及び238は、ブリッジ・チップのクロックと
非同期であるリセット信号C CRESETを、CCL
Kクロックの同期系に同期させる。信号EN INCN
Tは、フリップ−フロップ238によって発生される。
入力ポインタ(カウンタ226の計数値)は、第1相表
示信号CCLKPKI1及び信号EN INCNTが存
在すれば、クロックCCLK3の立ち上がりで増分され
る。出力ポインタ(カウンタ224の計数値)は、FI
FO216においてデータが有効であることが保証され
たとき、後のローカルのPCLKクロック系のクロック
PCLKで開始される。アップストリームのブリッジ・
チップとダウンストリームのブリッジ・チップは、出力
ポインタ・カウンタの開始を異なって処理しなければな
らない。なぜなら、ケーブル・クロックとローカル・ク
ロックのフェーズ関係は、アップストリームのブリッジ
・チップ26には知られていないが、ダウンストリーム
のブリッジ・チップ48には知られているからである。
においては、入来するケーブル・クロックCABLE
CLK1と2次PCIバス・クロックPCICLK2と
のフェーズ関係が分かっている。これは、PCIクロッ
クPCICLK2がケーブル・クロックから発生される
からである。その結果、ダウンストリームのブリッジ・
チップ48において出力ポインタOUTPTR[1:
0]に関する同期に不利益がなく、出力ポインタは、入
力ポインタINPTR[1:0]を可能な限り近接して
追従することができる。クロックPCLKの負の縁部で
クロッキングされるフリップ・フロップ230は、PL
L182によって発生されるクロックCCLKとPLL
180によって発生されるクロックPCLKとの間のク
ロックのスキューの問題を避けるために、用いられる。
これら2つのクロックは同一の周波数を有し且つ互いに
フェーズが合っているべきであるが、2つのクロックは
異なるPLLから発生されるので、これらのクロックの
間には未知のスキューがある。ダウンストリーム側にお
いて、信号EN OUTCNTは、フリップ・フロップ
230により信号PCLKの負の縁部でラッチされる信
号EN INCNTである。マルチプレクサ234は、
信号UPSTREAM CHIPがローであるので、フ
リップ−フロップ230の出力を選択する。アップスト
リームのブリッジ・チップ26において、ケーブル・イ
ンターフェースは完全に非同期で扱われる。フェーズの
不確定性はケーブル28自身の未知の位相のシフトに起
因するものである。このような不確定性が存在するの
で、ケーブル28の長さは自由に設定できる。アップス
トリーム及びダウンストリームのブリッジ・チップのク
ロックは両方とも、アップストリームのPCIバス・ク
ロックPCICLK1を基準にしているため、同じ周波
数を有する。アップストリームのブリッジ・チップ26
において、信号EN OUTCNTは、フリップ・フロ
ップ232にクロックPCLKの正の縁部(立ち上がり
縁)でラッチされた信号EN INCNTである。マル
チプレクサ234は、信号UPSTREAM CHIP
がハイであるので、フリップ・フロップ232の出力を
選択する。フリップ・フロップ232は、ケーブル・ク
ロックCABLE CLK2及びローカルのPCIクロ
ックPCLK(1つのPCLK期間の位相シフト)の最
悪のケースに対しても、データがチップの残りの部分に
送信される前に、有効データがFIFO216にあるこ
とを確実にする。
は、スレーブ・ケーブル・インターフェース196、1
98に、3つの相の時分割多重化信号a1とa2とa
3、b1とb2とb3、c1とc2とc3として受信さ
れる。以前のトランザクションは時点T0、T1、T2
で完了される。第1のフェーズのデータa1は、時点T
3で開始してレジスタ218に供給され、第1のフェー
ズ・インジケータCCLKPHI1はハイとなる。期間
T3のCCLK3の立ち下がりで、データa1はレジス
タ218へロードされ、ローカルのフェーズ1表示信号
PHI DLYはハイとなる。期間T4において、クロ
ックの立ち下がりで、フェーズ1のデータa1はレジス
タ220にロードされ、フェーズ2のデータa2はレジ
スタ218にロードされ、フェーズ2の表示信号PHI
2 DLYはハイのパルスとなる。期間T5において、
CCLK3の立ち下がりで、フェーズ2のデータはレジ
スタ222にロードされ、フェーズ3のデータa3はレ
ジスタ218にロードされ、フェーズ3の表示信号PH
I3 DLYはハイのパルスとなる。期間T6におい
て、レジスタ220、222及び218の内容は、CC
LK3の後続の立ち下がりでFIFO216の選択され
たエントリへ、ロードされる。また、期間T6におい
て、データB1が表示信号CCLKPHI1とともにレ
ジスタ218に供給される。メッセージB及びCは後続
の期間においてメッセージAと同様にしてFIFO21
6へロードされる。
TR[1:0]は、クロックCCLK3の期間T0にお
ける立ち上がりで、値0から開始する。また、期間T0
において、メッセージAは、クロックCCLK3の立ち
下がりで、FIFO0にロードされる。ダウンストリー
ムのブリッジ・チップ48において、出力ポインタOU
TPTR[1:0]は、期間T3のクロックPCLKの
立ち上がりで値0にされる。また、期間T3において、
入力ポインタINPTR[1:0]は、クロックCCL
K3の立ち上がりで値1に増分され、メッセージBは、
CCLK3の立ち下がりでFIFO1にロードされる。
このようにして、ケーブル・データはFIFO0、FI
FO1、FIFO2及びFIFO3に循環的にロードさ
れる。アップストリーム側では、入力ポインタINPT
R[1:0]が期間T0において0である場合、出力ポ
インタOUTPTR[1:0]は、入力ポインタINP
TR[1:0]の2つのPCLK期間の後に、期間T6
において値0にされる。アップストリームのブリッジ・
チップ26での2つのPCLK期間の遅れにより、ケー
ブル28の相遅延が任意の値とすることが可能となり、
これにより、ケーブルの長さを特定の固定値にする必要
がなくなる。図13を参照すると、ケーブル・インター
フェースの入力フリップ・フロップ及び出力フリップ・
フロップが、チップ製造者によって特別な位置に配置さ
れ、ケーブル・データとクロックとの間のスキューを最
小にするようにした構成が示されている。各フリップ・
フロップとI/Oの間のワイヤの量は、すべてのケーブ
ル・インターフェース信号の間で可能な限り一致するよ
うに、維持される。
する。60ビットが20のケーブル・ラインに多重化さ
れ、10ns毎にケーブル28を経て送信される。図1
4のテーブルはビット及び各ビットが割り当てられる相
を示す。最初の3つのカラムは、アップストリームから
ダウンストリームへのデータ転送フォーマットを示し、
後ろの3つのカラムはダウンストリームからアップスト
リームへのデータ転送フォーマットを示す。以下に信号
を説明する。 EDC[7:0]: これらの信号は、ケーブル28を
通じて送信するデータにおけるエラーを検出して修正す
るために用いられる、8ビットのシンドロームである。 CAD[31:0]: これらの信号は、32ビットの
アドレス/データである。 CFRAME : この信号は、ケーブル・トランザク
ションの開始及び終了を知らせるために用いられるもの
であり、PCIのFRAME 信号と類似である。 CCBE[3:0] : 4ビット形態のバイドであ
り、或るPCIクロックの位相と他のPCIクロックの
位相のPCIコマンド又はメッセージ・コードの何れか
とをイネーブルにする。 CBUFF[3:0]: アドレスの相において、これ
ら信号は、アップストリーム及びダウンストリームの遅
延された読み取り完了(DRC)と遅延された読み取り
要求(DRR)のトランザクションを結び付けるため
に、ブリッジ・チップの遅延された完了待ち行列(DC
Q)を初期設定するためのバッファ数を示す。アドレス
の相の後に、これら信号は、パリティ・ビット、パリテ
ィ・エラー表示及びデータ準備完了信号(データ・レデ
ィ信号)を含む。 COMPLETION REMOVED: このビット
は、ケーブル28の他側のトランザクション・オーダー
化(transaction ordering)待ち行列(TOQ)から遅
延された完了が除かれたことを知らせるために用いられ
る。 PMW ACKNOWLEDGE: このビットは、通
信されたメモリ書き込み(PMW)が他側で完了し、且
つトランザクション・ラン待ち行列(TRQ)から除か
れたことを知らせるために、用いられる。 LOCK : このビットは、ロックされたサイクルを
識別するためにダウンストリームへ送信される(アップ
ストリームへは送信されない)。 SERR : このビットは、SERR 表示をアップ
ストリームへ送信するために用いられる。ダウンストリ
ームへは送信されない。 INTSYNC及びINTDATA: これらのビット
は、8の割り込みを、ダウンストリームからアップスト
リームへシリアルに多重化されたフォーマットで搬送す
るためのものである。信号INTSYNCは、割り込み
シーケンスの開始を示す同期信号であり、信号INTD
ATAは、シリアル・データ・ビットである。信号IN
TSYNC及びINTDATAは、ケーブル28を通じ
て別々のラインで送られる。 RESET SECONDARY BUS: このビッ
トは、CPU14がアップストリームのブリッジ・チッ
プ26のブリッジ制御レジスタの補助(第2の)リセッ
ト・ビットに書き込むときに、アサートされる。これに
より、ダウンストリームのブリッジ・チップ48がパワ
ー・アップ状態にリセットされるようにする。スロット
に対するリセット信号もまた、アサートされる。信号R
ESETSECONDARY BUS(2次バス・リセ
ット)は、ケーブル28を通じて別のラインで送られ
る。各PCIトランザクションのアドレス及びデータ
は、同じライン上に多重化されるので、各PCIトラン
ザクションは、アドレス・フェーズ(相)と少なくとも
1つ(バースト・トランザクションに対しては1つより
多い)のデータ・フェーズとを含む。PCIの仕様はま
た、単一アドレス・トランザクション(32ビット・ア
ドレス指定)とデュアル・アドレス・トランザクション
(64ビット・アドレス指定)とを支持する。
ザクションのアドレス相及びデータ相の間に、バスの各
部分にどの情報が現れるかを示す。単一アドレス・トラ
ンザクションに対して、第1のフェーズはアドレス・フ
ェーズであり、第2及び後続のフェーズがデータ・フェ
ーズである。遅延された読み出し/書き込み(遅延R/
W)要求トランザクションのアドレス・フェーズにおい
て、信号CBUFF[3:0]は、アップストリーム及
びダウンストリームのDRC及びDRRのトランザクシ
ョンを結び付けるために、ブリッジ・チップDCQ14
8を初期設定するためのDCQバッファ数(buff #)を
示す。アドレス・フェーズの後、信号CBUFF[0]
は、パリティ・ビット(parity)を含む。信号CCBE
[3:0] は、アドレス・フェーズにおいてPCIコ
マンド(PCI cmd)を含み、データ・フェーズにおいて
バイト・イネーブル・ビット(BE<>)を含む。ポステド
(通信された)・メモリ書き込みトランザクションに対
して、信号CBUFF[3:0]は、アドレス・フェー
ズにおいては「どうでもよい(don'tcare、ドント・ケ
ア)」であり、データ・フェーズにおいてはデータ準備
完了(data ready)表示、パリティ・エラー(parity e
rror)表示及びパリティ・ビット(parity)を含む。遅
延された読み出し/書き込み(遅延R/W)完了トラン
ザクションにおいて、信号CBUFF[3:0]は、ア
ドレス・フェーズにおいてDCQバッファ数(buff #)
を含み、データ・フェーズにおいて完了の終了(end of
completion)の表示、データ準備完了(data ready)
表示、パリティ・エラー(parity error)表示及びパリ
ティ・ビット(parity)を含む。信号CCBE[3:
0] は、アドレス・フェーズ相においてDRCトラン
ザクションを表すコードを含み、データ・フェーズにお
いてDRCトランザクションの状態ビット(status)を
含む。遅延R/W完了トランザクションは、各データ相
に対して宛て先バスの状態を返送する。データのパリテ
ィ・ビットは、CCBE[3] で送信される。他の状
態の状況は、CCBE[2:0] バス上にエンコード
され、二進値「000」は正常な完了を示し、二進値
「001」はターゲット・アボート状態を示す。アドレ
ス/データ・ビットCAD[31:0]は、アドレス・
フェーズにおいて「ドント・ケア」であり、データ・フ
ェーズにデータを含む。ストリーム接続トランザクショ
ンにおいて、信号CBUFF[3:0]は、アドレス・
フェーズにおいてバッファ数を含み、信号CBUFF
[2]は、データ相においてデータ準備完了表示を含
む。信号CCBE[3:0]は、アドレス・フェーズに
おいてストリーム接続トランザクションを表すコードを
含み、データ・フェーズにおいては「ドント・ケア」で
ある。アドレス/データ・ビットCAD[31:0]
は、ストリーム接続トランザクションの間は使用されな
い。
ランザクションに対する信号の符号化を示す。遅延R/
W要求トランザクションにおいて、信号CBUFF
[3:0]は第1及び第2のアドレス・フェーズにおい
てバッファ数を含み、信号CBUFF[0]は、データ
・フェーズにおいてパリティ・ビットを含む。信号CC
BE[3:0] は、第1のアドレス・フェーズにおい
てデュアル・アドレス・サイクルを表すコードを含み、
第2のアドレス・フェーズにおいてPCIコマンドを含
み、データ・フェーズにおいてバイト・イネーブル・ビ
ットを含む。信号CAD[31:0]は、第1のアドレ
ス・フェーズにおいて最上位アドレス・ビットを含み、
第2のアドレス・フェーズにおいて最下位アドレス・ビ
ットを含み、データ・フェーズにおいてデータ・ビット
(data)を含む。デュアル・アドレスのポステド・メモ
リ書き込みトランザクションにおいて、信号CBUFF
[3:0]は、最初の2つのアドレス・フェーズにおい
ては「ドント・ケア」であるが、信号CBUFF[1:
0]は、データ・フェーズにおいてパリティ・エラー表
示ビットとパリティ・ビットを含む。信号CCBE
[3:0] は、第1のアドレス・フェーズにおいてデ
ュアル・アドレス・サイクルを表すコードを含み、第2
のアドレス・フェーズにおいてPCIコマンド・ビット
を含み、データ・フェーズにおいてバイト・イネーブル
・ビットを含む。信号CAD[31:0]は、第1のア
ドレス・フェーズにおいて最上位アドレス・ビットを含
み、第2のアドレス・フェーズにおいて残りのアドレス
・ビット(addr)を含み、データ・フェーズにおいてデ
ータ・ビットを含む。
最後ではない、最後のケーブル転送、及び最後の要求が
ある。上記の「最後ではない」の状態は、別のデータの
ワードが呈示されていることを示すようにFRAME
が活性のときに、ビットCBUFF[2]をアサートす
ることによって示される。上記の「最後のケーブル転
送」の状態は、信号CFRAME が非活性のときにビ
ットCBUFF[2]をアサートすることによって示さ
れる。上記の「最後の要求」の状態は、信号CFRAM
E が非活性のときに、ビットCBUFF[3]及びC
BUFF[2]をアサートすることによって示される。
以下の4つのIEEE1149.1境界スキャン(Boun
dary-Scan)(JTAG)信号、すなわち、TCK(テ
スト・クロック)、TDI(テスト・データ入力)、T
DO(テスト・データ出力)、TMS(テスト・モード
選択)が、JTAGテスト・チェーンを実施するため
に、ケーブル28上に含まれる。オプションのTRST
は、ケーブルを下流方向には送られないが、TRST
は、電力良好(パワー・グッド)信号から発生される
ことができる。JTAG信号は、システムのPCIコネ
クタから、JTAGマスタ110を含むアップストリー
ムのブリッジ・チップ26を通じてダウンストリームの
ブリッジ・チップ48へのケーブル28を下流方向に、
JTAGマスタ128へ送られ、該JTAGマスタは、
JTAG信号を2次PCIバス32上の6つのPCIス
ロットの各々へ分配する。リターン経路は、JTAGマ
スタ128からアップストリームのブリッジ・チップ2
6へケーブルを上流に辿り、1次PCIバス24上のP
CIスロットへ到達する経路である。信号TDO、TC
K、TMSは、ダウンストリーム・バウンド(bound)
信号である。信号TDIは、アップストリーム・バウン
ド信号である。用いることができるケーブル28の第1
のタイプは、高性能パラレル・インターフェース(HI
PPI)標準を支持するように設計された、筒形50対
シールド・ケーブルである。ケーブルの第2のタイプ
は、シールド型50対リボン・ケーブルである。第1の
ものの利点は、標準化され、丈夫であり、信頼性をもっ
て一様に製造されることである。第2のものの利点は、
機械的柔軟性と、組み立てにおけるコネクタへの自動的
終結と、低価格とである。
仕様の幾つかを示す。グラウンド・シールドは、アルミ
ニウム・テープを覆うブレード(braid:編組)からな
り、使用されるバッファの特性に起因する最小DC電流
のみを流す。信号を伝達する方法(シグナリング方法)
は、幾つかの利点を有する真の差動(true differentia
l)形態であって差動バッファを備え、該差動バッファ
は、ケーブル28を経て信号を送信及び受信するために
用いられる。真の差動的なシグナリング方法は、このよ
うな短距離に対しては光ファイバよりも安価であり、他
のシリアル的な方法よりもインターフェースの構成が簡
単である。差動的シグナリング方法は、コモン・モード
・ノイズ免疫性及びコモン・モード動作範囲を大きくす
ることができ、且つASICにおいて使用可能であり、
且つTTLよりも高速である。ツイスト対及びシールデ
ィングを用いると、電磁気的放射を最小化することがで
きる。選択されたシグナリング・レベルは、ススケーリ
ング可能コヒーレント・インターフェース(SCI)に
対する低電圧差動信号(LVDS)に対するIEEEド
ラフト・スタンダードのドラフト1.10(1995年
5月5日)に記述されている。ケーブル・コネクタは、
AMP金属シェル100ピンコネクタであり、2行のピ
ンを備えている。行は100ミル(mil)離れており、
ピンは50ミルの中心上にある。金属シェルは、EMI
シールディングを提供し、かつケーブル・シールドから
ボード・コネクタへのグラウンド経路の接続を提供す
る。かみ合う直角ボード・コネクタは、PCIブラケッ
トに適合する。このコネクタは、コネクタが接続解除さ
れるときに信号ピンからの静電放電を分流するために、
ピンの行の間を通るバーを備えている。ケーブル・コネ
クタに取り付けられた一対の「ちょうねじ」が、該コネ
クタを固定する。
通じての通信を保護するために、各ブリッジ・チップに
備えられる。データは一対のワイヤを通じて送信される
3つの20ビット・グループに時分割多重化されている
ので、「隣接」するビット(即ち、ケーブル28の同じ
ワイヤに関連するビット)の各トリプレット(3つ組)
は、一対のワイヤ上を送信されるように構成される。E
DC手段は、3つの時分割多重化された各相における同
じビット位置において発生する単一ビット障害(failur
e)及び多重ビット障害を訂正することができる。多重
ビット障害は、典型的にハードウエア障害、例えば、破
損した又は欠陥のあるワイヤ又はブリッジ・チップ2
6、48の欠陥のあるピンと関連して発生する。ケーブ
ル28の20対のワイヤがダウンストリームの通信に用
いられ、さらに20対がアップストリームの通信に用い
られる。50対のHIPPIケーブル28の残りの10
対に関して(それらはクロック信号CABLE CLK
1及びCABLE CLK2、リセット信号、及び電力
良好/PLLロック信号のような情報を通過させる)、
エラー検出及び訂正機能は備えられない。以下はEDC
アルゴリズムに対しての基礎仮定である。殆どのエラー
は、単一ビット・エラーである。同じトランザクション
においてランダムの多重ビット・エラーを有する確率
は、極度に小さい。これは、ケーブル28が、内部又は
外部のソースからのインターフェースに影響を受けない
からである。欠陥のあるワイヤによるエラーは、そのワ
イヤ上を搬送される1つのビット又はビットのグループ
に影響する。ワイヤ障害が発生したとき、対応する差動
バッファのロジック状態は、有効ロジック状態である。
・インターフェース196、198のマルチプレクサ2
28からの出力信号FIFOOUT[59:0]が、チ
ェック・ビットCHKBIT[7:0]を発生するチェ
ック・ビット・ジェネレータ350の入力に供給され
る。チェック・ビットは、図18に示されるパリティ−
チェック・マトリクスに従って発生され、そこにおいて
は、第1行はCHKBIT[0]に対応し、第2行はC
HKBIT[1]に対応し、以下同様に対応する。行の
ビットは、データ・ビットFIFOOUT[0:59]
に対応する。チェック・ビットは、パリティ・チェック
・マトリクスにおいて「1」の値を有するすべてのデー
タ・ビットFIFOOUT[X](Xは0〜59と等し
い)の排他的ORによって発生される。従って、チェッ
ク・ビットCHKBIT[0]は、データ・ビットFI
FOOUT[7]、FIFOOUT[8]、FIFOO
UT[9]、FIFOOUT[12]、FIFOOUT
[13]、FIFOOUT[16]、FIFOOUT
[22]、FIFOOUT[23]、FIFOOUT
[24]、FIFOOUT[26]、FIFOOUT
[32]、FIFOOUT[33]、FIFOOUT
[34]、FIFOOUT[35]、FIFOOUT
[38]、FIFOOUT[39]、FIFOOUT
[45]、FIFOOUT[46]、FIFOOUT
[48]、FIFOOUT[49]、FIFOOUT
[51]、及びFIFOOUT[52]の排他的ORで
ある。同様に、チェック・ビットCHKBIT[1]
は、ビット0、1、4、5、9、10、12、14、1
5、16、23、27、35、37、38、40、4
3、46、47、48、50及び53の排他的ORであ
る。チェック・ビットCHKBIT[2:7]は、図1
8のパリティ−チェック・マトリクスに従って類似の様
式で発生される。パリティ・チェック・マトリクスは、
時分割多重化された相あたりの20のサブチャンネル
(またはワイヤ)と、蓄積されたデータにおける多重エ
ラーが時分割多重化された相の各々における同じデータ
位置に影響する故障したサブチャンネル又はワイヤに原
因がある確率とに基づいている。
2、194において、チェック・ビットCHKBIT
[7:0]は、エラー検出及び訂正ビットEDC[7:
0]として他のケーブル・データとともに提供され、ス
レーブ・ケーブル・インターフェース196、198の
エラー訂正ロジックが、データのエラーを検出して修正
することを可能にする。チェック・ビットCHKBIT
[7:0]は、図19に示すシンドローム・テーブルに
従って固定ビットFIXBIT[59:0]を発生する
固定ビット・ジェネレータ352に供給される。チェッ
ク・ビットCHKBIT[7:0]は、256(28)
の値をとることが可能である。図19のシンドローム・
テーブルは256の可能な位置を有する。シンドローム
・テーブルの256の位置の各々は2つのエントリを有
し、第1のエントリはチェック・ビットCHKBIT
[7:0]の16進値であり、第2のエントリはその位
置に関連するケーブル・データ状態を示す。従って、例
えば、16進値00はエラーのない状態を示し、16進
値01はデータ・ビット52におけるエラーを示し、1
6進値02はデータ・ビット53におけるエラーを示
し、16進値03は訂正不能エラー(UNCER)を示
す、等である。EDCロジックは、データ・ビットが隣
接している限り、即ち、同じワイヤと関連している限
り、3つまでのエラーのビットを検出することができ
る。従って、例えば、チェック・ビットCHKBIT
[7:0]が16進値3Dを含むならば、データ・ビッ
ト3、23及び43はエラーである。ケーブル28は、
ケーブル・データCABLE DATA[19:0]を
搬送する。従って、データ・ビットFIFOOUT
[3]、FIFOOUT[23]及びFIFOOUT
[43]は、ケーブル・データの第4の位置、即ち、C
ABLE DATA[3]と関連する。また、EDCの
方法は、同じケーブル・ワイヤと関連する2ビット・エ
ラーを訂正することができる。従って、例えば、16進
チェック・ビット値0Fは、CABLE DATA
[4]に関連するデータ・ビットFIFOOUT[4]
及びFIFOOUT[24]のエラーを示す。
は、信号NCERR(訂正不能エラー)及びCRERR
(訂正可能エラー)を発生する。チェック・ビットによ
ってエラーが示されていない場合、信号CRERR(訂
正可能エラー)及びNCERR(訂正不能エラー)は両
方とも、ローにされる(ローにデアサート(deassert)
される)。訂正不能状態UNCERを含むシンドローム
・テーブルのそれらの位置において、信号NCERRが
ハイにされ、信号CRERRがローにされる。これと相
違して、訂正可能データ・エラーが示されるところで
は、信号NCERRがローにされ、信号CRERRがハ
イにされる。固定ビットFIXBIT[51:0]の下
位52ビットが、52の排他的ORゲート354の1つ
の入力に提供され、該ゲート354それぞれの他方の入
力は、FIFOデータFIFOOUT[51:0]の下
位52ビットの各々を受信する。エラー検出及び訂正ビ
ットEDC[7:0]に割り当てられた上位の8つのF
IFOビットFIFOOUT[59:52]は、チェッ
ク・ビット及びシンドローム・ビットを発生するために
用いられ、エラー訂正に用いられるものではない。排他
的ORゲート354は、固定ビットFIXBIT[5
1:0]及びデータ・ビットFIFOOUT[51:
0]のビット様式(bit-wise)の排他的OR演算を行
う。データ信号FIFOOUT[51:0]が訂正可能
なエラーのデータ・ビットを含むならば、これらのデー
タ・ビットは排他的OR演算によってフリップ(flip)
される。排他的ORゲート354は、修正されたデータ
CORRMSG[51:0]をマルチプレクサ360の
1入力に提供する。マルチプレクサ360の0入力は、
データ・ビットFIFOOUT[51:0]を受信し、
マルチプレクサ360は、コンフィギュレーション(環
境設定)信号CFG2C ENABLE ECCによって
選択制御される。マルチプレクサ360の出力は、信号
MUXMSGI[51:0]を発生する。システムのソ
フトウエアが信号CFG2C ENABLE ECCを
ハイにセットすることによってエラー検出及び訂正をイ
ネーブルすると、マルチプレクサ360は、修正された
データCORRMSG[51:0]を選択して出力す
る。逆に、エラー検出及び訂正がディスエーブルされる
と、データ・ビットFIFOOUT[51:0]が用い
られる。
ータ(指示)NCERR及びCRERRはそれぞれ、A
NDゲート356と358の入力に与えられる。AND
ゲート356及び358は、信号CFG2C ENAB
LE ECCによってイネーブルされる。ANDゲート
356及び358の出力は、信号C NLERR及びC
CRERRをそれぞれに発生する。信号C NLER
R及びC CRERRはエラー検出及び訂正がイネーブ
ルされる場合にのみ、アサートされる。エラーが検出さ
れたとき、固定ビットはラッチされ、診断目的に用いら
れる。訂正可能エラーが示されると(C CRERRが
ハイ)、割り込みが割り込み受信ブロック132へ発生
され、割り込み出力ブロック114まで送られ、次にシ
ステム割り込みコントローラへ送信され、そしてCPU
14へ送信され、割り込みハンドラが呼び出される。信
号C NCERRによって示される訂正不能エラーは、
システム・エラーSERR がアサートされるように
し、それがシステム割り込みコントローラ(示さず)が
マスク不可能割り込み(NMI)をCPU14へアサー
トするようにする。ダウンストリームのブリッジ・チッ
プ48において、訂正不能エラーはまた、ケーブルを上
流方向に送信される電力良好/PLLロック表示ビット
が否定されるようにし、アップストリームのブリッジ・
チップ26がサイクルをダウンストリームへ送信しない
ようにする。パワー・アップの間及びその直後の偽りの
割り込みを避けるため、アップストリーム及びダウンス
トリームのブリッジ・チップの両方のエラー検出及び訂
正不能が、アップストリームのPLL186とダウンス
トリームのPLL182がクロックCABLE CLK
1又はCABLE CLK2にロックするまで、パワー
・アップの間ディスエーブルされる。訂正可能エラーの
割り込みに応答するシステム管理ソフトウエアは、ラッ
チされた固定ビットを読み取ることによって、原因を判
定する。もしハードウエアの故障が判定されたならば
(例えば、複数のデータ・エラー・ビットが同じケーブ
ルのワイヤに関連する)、システム管理ソフトウエア
は、ハードウエアの故障を修理するために、その状態を
ユーザに知らせることができる。システム管理ソフトウ
エアは、訂正不能エラーに起因するSERR に応答
し、システムをシャット・ダウンするか又はユーザによ
ってプログラムされた他の機能を行う。
タ(arbiter、アービトレーション手段)116、12
4を含む。アップストリームのブリッジ・チップ26は
通常はスロットに設置されるので、PCIアービタ11
6はディスエーブルされる。PCIアービタ124は、
8つのマスタ、即ち、SIO50におけるホット・プラ
グ・コントローラ(装置の電源スイッチをオンにしたま
まで電力を投入した場合、すなわち、該装置のプラグを
電源に差し込んだ場合に、該装置に事故が生じないよう
に保護するための制御装置)及び6つのPCIスロット
を含む7つの一般的PCIマスタ(REQ[7:1]
,GNT[7:1] )とブリッジ・チップ自身(B
LREQ ,BLGNT )とを支持する。信号BLR
EQ 及びBLGNT は、PCIマスタ・ブロック1
23から送られ、またPCIマスタ・ブロックへ送られ
る。2次PCIバス32をターゲットとするCPU14
からのトランザクションがアップストリーム及びダウン
ストリームのブリッジ・チップ26及び48によって受
信されたならば、ブリッジ・チップは信号BLREQ
をアサートする。SIO50に対する要求(リクエス
ト)ラインREQ[1] 及び許可(グラント)ライン
GNT[1] は、ダウンストリームのブリッジ・チッ
プ48に内部的に送られる。PCIアービタ124は、
1つのマスタに対するGNT 信号の否定と別のマスタ
に対するGNT 信号のアサートとの間に、PCICL
K2遅延を挿入する。ダウンストリームのブリッジ・チ
ップ48において、PCIアービタ124は、信号PC
IRST2 の立ち上がりにおけるREQ[7] のサ
ンプリングされた値を基にして、イネーブル又はディス
エーブルされる。もしブリッジ・チップ48がPCIR
ST2 においてREQ[7] ローをサンプリングし
たならば、該チップはPCIアービタ124をディスエ
ーブルする。PCIアービタ124がディスエーブルさ
れたならば、外部のアービタ(示さず)が用いられ、ホ
ット・プラグ要求がREQ[1] ピンに供給され、ホ
ット・プラグ許可がGNT[1] ピンに入力される。
ブリッジPCIバス要求はREQ[2] ピンに供給さ
れ、その許可(GRANT)はGNT[2] ピンに入
力される。ブリッジ・チップ48がPCIRST2 に
おいてREQ[7] ハイをサンプリングしたならば、
該チップはPCIアービタ124をイネーブルする。
位のインジケータ(表示)に対してサービスを行うため
に又はマスタのREQ 信号が否定されていることに応
答して、マスタのGNT 信号を否定する。そのGNT
信号が否定されると、現在のバスのマスタは、バスが
アイドリング状態に戻るまでバスの所有を維持する。何
れのPCIエージェントもバスを現在使用していないか
又は要求していないならば、PCIアービタ124は、
コンフィギュレーション・スペース125におけるPA
RKMSTRSELコンフィギュレーション・レジスタ
の値に依存して、2つのうちの1つを行う。即ち、レジ
スタの値が「0」ならば、PCIアービタ124は最後
の活性のマスタがバス32上に停まるようにし)、該値
が「1」ならば、バスはブリッジ・チップ48で停止さ
れる。PCIアービタ124は、すべてのGNT 信号
の最小の活性(アクティブ)時間を制御するPCI最小
(MIN)許可タイマ304(図21)を含む。タイマ
304に対するデフォールト値は16進の「0000」
であり、この値は最小許可時間要求がないことを示す。
タイマ304は、GNT ラインがアクティブであるP
CICLK2のクロック期間の数を示すように、値1か
ら255でプログラムされることができる。また、より
多くの柔軟性を与えるために、2次バス32上の各PC
Iマスタに個別の最小許可タイマを割り当てることもで
きる。最小許可時間は、現在のマスタがそのREQ 信
号をアサートしているときにのみ適用可能である。一旦
REQ 信号がデアサートされると、GNT 信号は最
小許可時間の値に関係なく排除される。
て、PCIアービタ124はラウンド−ロビン(round-
robin)優先順位スキーム(第2レベルのアービトレー
ション・スキーム)を実施する。ラウンド−ロビン・ス
キームにおける8つのマスタは、拡張ボックス30の6
つのスロット、SIO50、及びアップストリームのブ
リッジ・チップ26から送信されたメモリ書き込み(P
MW)要求へ接続された装置を含む。このスキームにお
けるPCIバス32上のすべてのマスタは、ブリッジ・
チップ48と同じ優先順位を有する。或るマスタが許可
された後に2次PCIバス32及び該マスタはFRAM
E 信号をアサートしており、バスのアービトレーショ
ンが再び行われ、現在のマスタがラウンド−ロビン・ス
タックの最下部に置かれる。もしマスタが要求を否定す
るか又は最小許可タイマ304がタイムアウトすると、
PCIバス32は次に高い優先順位のマスタへ許可され
る。ロックされたサイクルは、PCIアービタ124に
よって何ら同様に取り扱われる。特定の事象(イベン
ト)に応答して、アービトレーション・スキームは、シ
ステムの性能を最適化するために変更される。それらの
事象は、1)アップストリームからダウンストリームへ
の遅延読み出し要求(遅延された読み出し要求)又は遅
延書き込み要求(遅延された書き込み要求)が保留され
る事象と、2)ダウンストリームからアップストリーム
への遅延読み出し要求が、読み出し完了表示を提供され
ることなく保留される事象と、3)ブリッジ・チップ2
6がアップストリームのバス24上の現在のマスタであ
るときに、ストリーミンク(streaming)の可能性が存
在する事象、とを含む。遅延要求(遅延された要求)が
検出されると、ブリッジ・チップ48は、2次PCIバ
ス32を許可される次のマスタになる。一旦ブリッジ・
チップ48にバス32が許可されると、該チップは、す
べての残っている遅延要求を完了するまで又はサイクル
の1つがリトライ(再試行(retry))されるまで、バ
ス32の所有を維持する。ブリッジ・チップ48の再試
行が行われたならば、2つのレベルのアービトレーショ
ン・スキームが、アービタ124によって実現される。
ブリッジ・チップの読み出しサイクルが再試行される1
つの主な原因は、ターゲットのデバイスが、フラッシュ
(flush)される必要のある書き込みバッファをもつブ
リッジであることである。この場合において、最適の動
作は、再試行を行うターゲットにバス32を許可して、
その書き込みバッファを空にできるようにし、ブリッジ
・チップ読み出し要求を受け入れ可能にすることであ
る。
トレーション・プロトコルは、3つの可能なマスタ中
の、即ち、CPU14からの遅延された要求(CPU遅
延要求)、再試行するマスタからの要求、及びレベル2
(第2レベル)・アービトレーション・スキームによっ
て選択されたマスタの中の、ラウンド−ロビン・スキー
ムであるレベル1(第1レベル)・アービトレーション
・スキームを含む。レベル1・アービトレーション・ス
キームにおける3つのマスタの各々は、第3番目のアー
ビトレーション・スロット毎に保証される。メモリ・サ
イクルに対して、再試行するターゲットに関連するスロ
ットは、各PCIデバイスに関連するメモリ範囲を記憶
するブリッジ・チップ48のコンフィギュレーション・
スペース125におけるターゲット・メモリ範囲コンフ
ィギュレーション・レジスタから決定される。もし再試
行するマスタを決定することができないならば(I/O
読み出しの場合のように)、又は、再試行するマスタが
2次バス32を要求しないならば、レベル1・アービト
レーション・スキームが、ブリッジ・チップ48とレベ
ル2のマスタの間に存在する。再試行を行うマスタは、
レベル2のアービトレーションからマスクされない。従
って、該マスタがレベル2のアービトレーション・スキ
ームにおける次のマスタであるならば、バック−ツー−
バック(back-to-back、連続する)・アービトレーショ
ンにおいて2つの勝ちを得ることが可能である。例え
ば、アップストリームからダウンストリームへの読み出
しが再試行され、且つマスタB及びマスタEと同様にマ
スタC(再試行するマスタ)がバス32を要求している
ならば、バスの許可の順番は降順で以下のようである。
即ち、ブリッジ・チップ48がそのトランザクションを
完了することができ且つPCIアービタ124が通常の
動作に対するそのレベル2・アービトレーション・スキ
ームに戻るまで、ブリッジ・チップ48、再試行するマ
スタ(マスタC)、マスタC、ブリッジ・チップ48、
再試行するマスタC、マスタE、ブリッジ・チップ4
8、等々のようである。ブリッジ・チップの読み出しが
再試行され、且つ要求を行っている他のマスタがマスタ
AとマスタDのみであるならば(即ち、再試行するマス
タがバスを要求していないか又はI/Oスペースにアク
セスしているために識別されない)、バス要求の順番
は、ブリッジ・チップ48、マスタA、ブリッジ・チッ
プ48、マスタD、等々のようである。2つのレベルの
アービトレーション・スキームは、最高の優先順位のC
PU14から遅延された要求を与える。このアービトレ
ーションの方法はCPU14に対して大変有利である
が、最終的には、バス32上の要求を行うすべてのデバ
イスがPCIバス32を許可される。そのようにするこ
とによって、PCIブリッジ・チップの要求が再試行さ
れるときに、2次バスの他のマスタが長時間の停止状態
になることが少なくなる。
4はレベル2・ラウンド−ロビン・アービトレーション
・スキームを実施するために、L2状態マシン(レベル
2の状態マシン)302を含む。L2状態マシン302
は、現在のラウンド−ロビン・マスタを示す信号RR
MAST[2:0]を受信する。また、L2状態マシン
302は、2次PCIバス32の8つの可能なマスタに
対応するリクエスト信号RR REQ[7:0]を受信
する。現在のマスタ及び要求信号の状態を基にして、L
2状態マシン302はラウンド−ロビンの次のマスタを
表す値を発生する。L2状態マシン302の出力は、
6:3マルチプレクサ306の「0」入力に与えられ、
その「1」入力は信号Q2A STRMAST[2:
0]を受信する。マルチプレクサ306の選択(セレク
ト)入力は信号STREAM REQを受信し、この信
号は、ストリーミングの機会が存在し(Q2A STR
MASTがハイ)且つ2次PCIバス32上のストリー
ミング・マスタがその要求ラインをアサートしており
(MY REQ[Q2A STRMAST[2:0]]
がハイ)且つ遅延された要求が保留されていない(BA
L DEL REQがロー)ときに、ANDゲート30
8によってハイにされる。マルチプレクサ306の出力
は、レベル2・アービトレーション・スキームにおける
ラウンド−ロビンの次のマスタを表す信号N RR M
AST[2:0]である。信号N RR MAST
[2:0]は、L1状態マシン(レベル1の状態マシ
ン)300によって受信され、このマシンはまた以下の
信号を受信する。すなわち、信号RTRYMAST R
EQ(再試行を行うバス・マスタの要求を表す)、信号
MIN GRANT(最小許可タイマ304がタイムア
ウトしたときにアサートされる)、遅延された要求信号
BAL DEL REQ、ストリーム要求信号STRE
AM REQ、信号CURMAST REQ(現在のマ
スタがその要求信号のアサートを維持していることを示
す)、信号ANY SLOT REQ(ブリッジ・チップ
要求BLREQ を含まない要求信号REQ[7:1]
の何れかがアサートされた場合に、ハイにアサートされ
る)、及び信号L1STATE[1:0](L1状態マ
シン300の現在の状態を表す)である。L1状態マシ
ン300は、再試行するマスタ(RTRYMAST R
EQ)とブリッジ・チップ48からの遅延された要求
(BAL DEL REQ)とレベル2のマスタ(AN
Y SLOT REQ)とを含む、3つの可能なレベル
1のマスタの1つを選択する。
ST REQは、ANDゲート312から発生され、該
ANDゲートは、信号BAL DEL REQ、信号M
Y REQ[RTRY MAT[2:0]](再試行する
マスタがその要求をアサートしているかを示す)、及び
ORゲート310の出力を受けとる。ORゲート310
の入力は、信号RTRY MAST[2:0]を受けと
る。従って、再試行を行うマスタが識別されていたなら
ば(RTRY MAST[2:0]が0ではない)、遅
延された要求が存在し(BAL DEL REQがハ
イ)、再試行を行うマスタがその要求をアサートしてお
り、信号RTRYMAST REQがアサートされる。
L1状態マシン300は、信号N L1STATE
[1:0](L1状態マシン300の次の状態を表す)
と、信号N CURMAST[2:0](レベル2・ア
ービトレーション・スキームに従う次のマスタを表す)
を発生する。また、L1状態マシン300は、信号OP
EN WINDOWを発生し、この信号は、2次PCI
バス32上のマスタを変更するために許可(GNT)状
態マシン307に対して、再アービトレーションのウイ
ンドウが存在することを示す。L1状態マシン300に
よって与えられる信号ADV RR MASTは、次の
レベル2・ラウンド−ロビンのマスタを進めるために信
号RR MAST[2:0]に信号N RR MAST
[2:0]の値をロードするときに、それを許可状態マ
シン307に示す。
[7:0]とバス32の所有権が変更されることを示す
ための信号CHANGING GNTを出力する。許可
信号GNT[7:1] は、GNT[7:1]信号の反
転された信号であり、許可信号BLGNT は、GNT
[0]信号の反転である。許可状態マシン307はま
た、信号L1STATE[1:0]及び信号RR MA
ST[2:0]を発生する。最小許可タイマ304は、
信号PCLKによってクロッキングされ、信号MIN
GRANTを発生する。また、最小許可タイマ304
は、信号CHANGING GNT及びNEW FRA
ME(新しいFRAME 信号がアサートされたことを
示す)を受信する。最小許可タイマ304の初期値は、
値{CFG2A MINGNT[3:0],0000}と
してロードされ、信号CFG2A MINGNT[3:
0]は、最小許可タイマ304の初期値を規定するコン
フィギュレーション・スペース125に記憶されたコン
フィギュレーション・ビットである。最小許可タイマ3
04は、0にカウント・ダウンされて信号CHANGI
NG GNTがハイにアサートされた後に、再びロード
される。最小許可タイマ304に新しい値がロードされ
た後に、信号NEW FRAMEがハイにアサートさ
れ、且つ信号CHANGING GNTが許可状態マシ
ン307によってローにデアサートされたときに、該タ
イマは減分を開始し、これはPCIバス32上で新しい
トランザクションが開始したことを示す。信号MY R
EQ[7:1]はNORゲート314によって発生さ
れ、このゲートの入力は要求信号REQ[7:1] と
マスク信号Q2AMASKREQ[7:1]を受信す
る。マスク・ビットQ2AMASKREQ[X](X=
1〜7)のアサートは、対応するマスタの要求REQ
[X]をマスクし、これにより、PCIアービタ124
が要求信号に応答しないようにする。信号MY REQ
[0]はインバータ316から出力され、該インバータ
は、ブリッジ・リクエストBLREQ を受信する。
7は4つの状態、PARK、GNT、IDLE4GN
T、IDLE4PARKを含む。リセット信号RESE
T(PCIリセット信号PCIRST2 から発生され
る)がアサートされると、許可状態マシン307は状態
PARKとなり、信号ANY REQがデアサートされ
る間そこに停まる。PCIアービタ124への要求ライ
ンの何れかがアサートされると、信号ANY REQは
ハイにアサートされる。PARK状態において、PCI
−PCIブリッジ48は、別の要求が存在しないとき
に、PCIバス32の所有者としてとどまる。信号AN
Y REQがアサートされたならば、許可状態マシン3
07は状態PARKから状態IDLE4GNTへ遷移
し、信号CHANGING GNTがハイにアサートさ
れ、PCIアービタ124がマスタを変更していること
を示す。許可信号GNT[7:0]はすべて0にクリア
され、信号CURMAST[2:0]が次のマスタN
CURMAST[2:0]の値で更新される。更に、ラ
ウンド−ロビン・マスタ信号RR MAST[2:0]
は、信号ADV RR MASTがL1状態マシン30
0によってアサートされた場合に、次のラウンド−ロビ
ン・マスタ値N RR MAST[2:0]に更新され
る。信号ADV RR MASTがハイのときは、次の
L1マスタがL2マスタのうちの1つであることを示
す。状態IDLE4GNTから、許可状態マシン307
は次にGNT状態に遷移し、信号GNT[7:0]が新
しい許可信号NEWGNT[7:0]の状態へ設定さ
れ、信号CHANGING GNTがローになる。信号
NEWGNT[7:0]は、図24に示されるように、
現在マスタ信号CURMAST[2:0]の状態に基づ
いている。
アービトレーション・ウインドウがオープンであり(O
PEN WINDOWがハイ)、保留されている要求が
なく(ANY REQがロー)、PCIバス32がアイ
ドリング状態であり(BUS IDLEがハイ)、次のマ
スタが現在のマスタである(即ち、現在のマスタがパー
クしているマスタである)場合、許可状態マシン307
はPARK状態に戻る。GNT状態からPARK状態へ
戻るように遷移する場合、信号L1STATE[1:
0]は、信号N L1STATE[1:0]で更新され
る。しかしながら、保留されている要求がなく且つバス
がアイドリング状態であるが、現在のマスタがパークし
ているマスタではない(即ち、信号N CURMAST
[2:0]が信号CURMAST[2:0]の値と等し
くない)場合、アイドリング状態が必要であり、許可状
態マシン306は、GNT状態からIDLE4PARK
状態へ遷移する。L1状態値L1STATE[1:0]
は更新される。IDLE4PARK状態から、許可状態
マシン307はPARK状態へ遷移し、許可信号GNT
[7:0]を新しい許可信号NEWGNT[7:0]に
等しくセットして、PCIバス32を新しいマスタに許
可する。信号CHANGING GNTもまたローにさ
れる。アービトレーション・ウインドウがオープンし
(OPEN WINDOWがハイ)、且つ次のマスタが
現在のマスタではない(信号N CURMAST[2:
0]が信号CURMAST[2:0]と等しくない)場
合、許可状態マシン306は、アイドリング状態IDL
E4GNTへ遷移してバス・マスタ許可を変更する。遷
移において、信号CHANGING GNTがハイにア
サートされ、信号GNT[7:0]がすべて0にクリア
され、信号CURMAST[2:0]が次のマスタ値N
CURMAST[2:0]に更新され、L1状態信号
L1STATE[1:0]が次の状態値N L1STA
TE[1:0]に更新される。更に、信号ADV RR
MASTがハイにアサートされると、ラウンド−ロビ
ン・マスタ信号RR MAST[2:0]が次のラウン
ド−ロビン・マスタN RR MAST[2:0]に更新
される。許可信号GNT[7:0]は次に、IDLE4
GNT状態からGNT状態への遷移において、値NEW
GNT[7:0]に割り当てられる。
0(図21)は、RESET信号がアサートされたとき
に状態RRにおいて動作を開始し、状態マシン300は
遅延された要求信号BAL DEL REQがローの場
合に(遅延された要求信号が保留されていないことを示
す)状態RRに停まる。RR状態の間、信号ADV RR
MASTはハイにアサートされ、許可状態マシン30
7がラウンド−ロビン・マスタを更新することを可能に
する(即ち、信号RR MAST[2:0]を値N R
R MAST[2:0]と等しくセットする)。RR状
態は、レベル2・アービトレーション・スキームが用い
られるラウンド−ロビン状態である。RR状態の間、次
のマスタ信号N CURMAST[2:0]は次のラウ
ンド−ロビン・マスタN RR MAST[2:0]と
等しくセットされ、ストリーム要求が存在する場合(S
TREAM REQがハイ)、又は最小許可タイマ30
4がタイマ・アウトしている場合(MIN GRANT
がハイ)、又は現在のマスタがその要求を否定した場合
(CURMAST REQがローになる)に、信号OP
EN WINDOWがハイにセットされる。信号OPE
N WINDOWは、ハイにアサートされたときに、新
しいアービトレーションが行われることを可能とする。
DEL REQがハイになる)、L1状態マシン300
はRR状態からBAL状態へ遷移し、次のマスタ状態N
CURMAST[2:0]をブリッジ・チップ48と
してセットし、信号ADV RR MASTをデアサート
して、レベル2・ラウンド−ロビン・アービトレーショ
ンをディスエーブルにする。BAL状態において、遅延
された要求がデアサートされるか(BAL DEL R
EQがローになる)又は遅延された要求が再試行される
(BAL RETRIEDがハイになる)場合に、信号
OPEN WINDOWはハイにアサートされる。信号
BAL DEL REQがローにされるか、又は遅延さ
れた要求BAL DEL REQがハイにアサートさ
れ、そして再試行するマスタの要求がローにされ(RT
RYMAST REQがロー)、且つスロット・リクエ
ストANY SLOT REQがハイにアサートされる
と、L1状態マシン300はRR状態に戻るように遷移
する。この遷移において、信号ADV RR MAST
はハイにアサートされ、次のマスタ信号N CURMA
ST[2:0]は次のラウンド−ロビン・マスタN R
R MAST[2:0]と等しくセットされる。信号B
AL DEL REQがデアサートされると、それは、
アービタ124がレベル2・ラウンド−ロビン・スキー
ムへ戻るべきであることを示す。遅延された要求信号が
アサートされるが再試行を行うマスタの要求が否定され
たならば、レベル1・アービトレーション・スキームが
ブリッジ・チップ48とPCIバス32のスロットの間
に存在することになる。
再試行するマスタの要求RTRYMAST REQの両
方がアサートされると、L1状態マシン300は状態B
ALから状態RETRY MASTへ遷移し、再試行を
行うマスタは、次のマスタとしてセットされる(N C
URMAST[2:0]がRTRY MAST[2:
0]と等しくセットされる)。信号ADV RR MA
STはローに維持される。RETRY MAST状態に
おいて、PCIスロット・マスタの何れも要求をアサー
トしていないならば(ANY SLOT REQがロ
ー)、レベル1・アービトレーション・スキームは再試
行するマスタとブリッジ・チップ48の間にあることに
なり、L1状態マシン300はBAL状態に戻るように
遷移する。ブリッジ・チップ48は次のマスタとしてセ
ットされ(N CURMAST[2:0]が状態BAL
BOAと等しい)、信号ADV RR MASTがロー
に維持される。しかしながら、スロット・マスタの何れ
かが要求をアサートしていると(ANY SLOT R
EQがハイ)、L1状態マシン300は、RETRY M
AST状態からRR状態へ遷移する。遷移において、信
号ADV RR MASTはハイにアサートされ、次の
ラウンド−ロビン・マスタが次のマスタとしてセットさ
れる(N CURMAST[2:0]がN RR MA
ST[2:0]と等しくセットされる)。ブリッジ・チ
ップのストリーミング能力を利用するために、DRCに
対するデータがケーブル28から到着し始めるときに、
そのDRCに関連するマスタは、最高の優先順位のデバ
イスとなる(そのREQ がアサートされると仮定す
る)。これによって、マスタがケーブル28を下ってく
るデータ・ストリームを受信することが可能となり、そ
のとき、ウインドウはストリーミングのためにそこにあ
る。ブリッジ・チップ48がDRC待ち行列を満たす前
にマスタを接続できないならば、アップストリームのブ
リッジ・チップ24が遮断し、データの一部のみが要求
を行っているマスタに渡されてしまい、マスタがアップ
ストリームのバス24に別の読み出し要求を発生するこ
とが必要となる。ストリーミング・マスタは、DRCデ
ータがケーブル28から到着し続ける限り、最高の優先
順位を保持する。マスタが異なるサイクル/アドレスを
繰り返すならば再試行されるが、その要求がどこかへ行
ってしまうまで、又はストリーミングの機会が通過する
まで、2次PCIバス32の所有権を維持する。
デバイスであるので、ダウンストリームのバス32上の
デバイスがアップストリームのターゲットを宛て先にす
る読み出し要求を発生すると、ダウンストリームのブリ
ッジ・チップ48は、2次バス32上に再試行トランザ
クション(PCIの仕様において説明)を発生し、ケー
ブル28を上流方向に要求を送信する。再試行トランザ
クションは、要求を行っているマスタがPCIバス32
の制御を放棄するようにし、そのREQ ラインを否定
するようにする。REQ ラインを否定した後に、再試
行したマスタは、後の時間に、同じサイクルに対して要
求を再アサートし、それによって、そのGNT がアサ
ートされ(もしそのREQ ラインがマスクされていな
い場合)、且つダウンストリームのブリッジ・チップ4
8において読み出し完了表示がアサートされるまで、バ
ス・マスタが再試行される結果となる。
なサービスを避けるために、再試行された遅延された読
み出し又は書き込み要求を発生する2次バス・マスタの
REQ ラインは、遅延された完了信号が戻るまで、信
号Q2A MASK REQ[7:1](再試行されマ
スクされていないブリッジ・チップ48からの要求)の
適宜のものをアサートすることによってマスクされる。
この様式において、要求を行う他のマスタには、それら
の要求を得るための優先順位が与えられる。遅延された
完了信号と関連する第1の情報が返送されるとすぐに、
対応するマスタのREQ ラインはマスク解除され、再
試行したマスタが再びアービトレーションに入ることが
できる。しかしながら、第1のターゲットをアサートで
き、再試行されるようにし、異なる要求とともに戻って
くることが可能な、ダウンストリームのバス32(図2
6B)上の多重スレッド(multi-threaded)(又は多重
ヘッド(multi-headed))のマスタに対しては、特別な
ケースが存在する。そのような多重スレッド・バス・デ
バイスの1つは、2次PCIバス32と下位のPCIバ
ス325を接続するPCI−PCIブリッジ323であ
る。バス325は、ネットワーク・インターフェース・
カード(NIC)327Aと327Bに接続され、それ
らは2つの異なるネットワークに接続される。従って、
1次PCIバス32に対するNIC327Aからの要求
がブリッジ・チップ48によって再試行されるならば、
NIC327Bは異なる要求を発生することができる。
この場合、信号CFG2Q MULTI MASTER
[X]がハイにセットされることによって、多重スレッ
ド・マスタのREQ ラインはマスクされない。
がシングル又は多重スレッドであるかを判定する。レジ
スタ326は、リセットされると、各2次バス・デバイ
スがシングル−スレッドであると推定するためにクリア
される。次に、各スロットは、同じマスタからの或るサ
イクルが保留されているときに異なるサイクルを要求す
るかを判定するために、監視される。マスタにおいて多
重スレッドの挙動が観察されたならば、そのマスタは、
対応するビットCFG2Q MULTI MASTER
[X]をハイにセットすることによって、マスクされ
る。状態レジスタ326の入力は、14:7マルチプレ
クサ328の出力に接続され、このマルチプレクサの
「0」入力は14:7マルチプレクサ330の出力に接
続され、「1」入力はアドレス・ビットP2Q AD
[22:16]に接続される。選択信号CFGWR M
Mは、マルチプレクサ328の「0」入力と「1」入力
を選択する。信号CFGWR MMがハイにアサートさ
れると、データ・ビットP2Q AD[22:16]に
より状態レジスタ326へコンフィギュレーション書き
込みがなされ、レジスタ326のビットのソフトウエア
制御を可能にする。マルチプレクサ330の「1」入力
は多重マスタ信号MULTI MASTER[7:1]
を受信し、「0」入力はレジスタ326の出力を受信
し、そして、マルチプレクサ330は信号MULTI
SELによって制御される。信号MULTI SELは
ANDゲート338によって発生され、このゲートの第
1の入力は、信号Q2PIF CHECK CYC(2
次PCIバス32上のバス・デバイスからの遅延された
メモリ読み出し又は書き込み要求の間などに、ハイにア
サートされて、現在のトランザクション情報が待ち行列
ブロック127に記憶された情報と一致するかチェック
されるべきであることを示す)を受信し、このゲートの
他の入力は、信号DCQ HIT(現在のアドレス情報
が、DCQ148における要求を行っているマスタの保
留要求に関連するアドレス情報と一致しないことを示
す)の反転信号を受信する。従って、比較が一致しなけ
れば、信号CFG2Q MULTI MASTER
[7:1]の値が更新される。
し、且つマスタXが異なる要求とともに戻って来たなら
ば、ビットMULTI MASTER[X]はハイにア
サートされる。これは保留のトランザクション情報(例
えば、アドレス、バイト・イネーブル、書き込みのため
のデータ)と新しい要求のアドレスを比較することによ
ってをチェックされる。比較が一致しなかったというこ
とは、マスタが多重スレッドであることを示す。一旦、
多重マスタ・コンフィギュレーション・ビットCFG2
Q MULTI MASTER[X](X=1〜7)が
ハイにセットされると、このビットはハイに維持され
る。信号MULTI MASTER[7:1]は、デコ
ーダ336によって発生される。デコーダ336は信号
Q2PIF SLOT[2:0](マスタからの現在の
遅延された要求に対するスロット数)、Q[7:0]
MASTER[2:0](DCQ148における8つの
バッファの各々に関連するマスタ)、Q[7:0] C
OMPLETE(8つの待ち行列の各々の完了状態)、
及びQ[7:0] PART COMPLETE(遅延
された完了待ち行列におけるバッファの各々の部分的完
了状態)を受信する。例えば、信号Q0 MASTER
[2:0]が値4を含むならば、それは、DCQバッフ
ァ0がスロット4におけるバス・デバイスからの遅延さ
れた要求のトランザクション情報を記憶することを示
す。信号QY COMPLETE(Y=0〜7)は、ハ
イにアサートされると、DCQバッファYが遅延された
要求のトランザクションに関連するすべてのデータを受
信したことを示す。信号QY PART COMPLE
TE(Y=0〜7)は、ハイにアサートされると、マス
タのうちの1つの遅延されたトランザクションに対して
DCQバッファとしてDCQバッファYが割り当てられ
たが、その遅延されたトランザクションに関連するすべ
てのデータがまだ受信されていないことを示す。
[2:0]が8つの待ち行列のマスタの表示の信号Q
[7:0] MASTER[2:0]の何れかの値と等
しく、且つ対応するDCQバッファが完了又は部分的完
了の状態である場合には、信号DCQ HITがローで
且つ信号Q2PIF CHECK CYCがハイである
ならば、ビットMULTI MASTER[7:1]の
対応するものがハイにセットされる。即ち、例えば、信
号Q2PIF SLOT[2:0]が値2を含み、スロ
ット2におけるデバイスが遅延された要求の現在のマス
タであることを示し、DCQバッファ5がスロット2の
マスタに対する保留の要求を記憶しており(Q5 MA
STER[2:0]=5)、信号Q5 COMPLET
E又は信号Q5 PART COPMLETEの何れか
がハイであり、信号Q2PIF CHECK CYCが
ハイであり、信号DCQ HITがローであるならば、
ビットMULTI MASTER[2]はハイにセット
されて、スロット2のデバイスが多重スレッドのマスタ
であることを示す。マスク要求発生ブロック332は、
信号Q[7:0] MASTER[2:0]、Q[7:
0] STATE[3:0](遅延された完了待ち行列
0〜7の状態を示す)、SLOT WITH DATA
[7:0](遅延された完了Q0〜7が有効データを含
むかを示す)、CFG2Q MULTI MASTER
[X](X=1〜7)、CFG2Q ALWAYS M
ASK、及びCFG2Q NEVER MASKに応答
して、信号Q2A MASK REQ[X](X=1〜
7)を発生する。
生ブロック332は、信号Q2A MASK REQ
[X](X=1〜7)を発生するための2:1マルチプ
レクサ320を含む。マルチプレクサ320の「1」入
力はORゲート322の出力に接続され、「0」入力は
ロー(アース)に結合される。マルチプレクサ320の
選択制御入力は、信号MASK MUXSELである。
ORゲート322の1つの入力は、NORゲート324
の出力に接続される。このNORゲートの1つの入力
は、信号CFG2Q MULTI MASTER[X]
(多重スレッドのマスタを示す)を受信し、別の入力は
信号CFG2Q NEVER MASK(多重スレッド
のマスタが検出された場合に要求ラインがマスクされる
べきではないことを示すコンフィギュレーション・ビッ
ト)を受信する。ORゲート322の別の入力は、信号
CFG2Q ALWAYS MASKを受信し、これ
は、信号MUXSELがハイにアサートされた場合に対
応するマスク・ビットQ2A MASK REQ[X]
が常にマスクされるべきであることを示すコンフィギュ
レーション・ビットである。2次バス・マスタからの要
求が待ち行列ブロック127に既に存在するデータへの
ものではない、即ち、要求が1次バス24へ送信されね
ばならないならば、信号MASK MUXSELはハイ
にアサートされる。即ち、要求が2次PCIバス32上
のデバイスから1次PCIバス24へアップストリーム
に送信される毎に、ビットCFG2Q MULTI M
ASTER[7:1]のチェックが行われて、多重スレ
ッドのマスタが検出されたかを判定する。要求をマスク
することは、コンフィギュレーション・レジスタ125
において適当なビットをセットすることによって、オー
バーライド(override)されることができる。使用可能
なモジュールには、1)多重スレッドのマスタでない場
合に、要求のマスクがイネーブルされるノーマル・モー
ド(CFG2Q NEVER MASK=0、CFG2
Q ALWAYS MASK=0)、2)多重スレッド
であったとしても、再試行したマスタからの要求がマス
クされる常時マスク・モード(CFG2Q ALWAY
S MASK=1)、及び3)要求が決してマスクされ
ない非マスク・モード(CFG2Q NEVER MA
SK=1、CFG2Q ALWAYS MASK=0)
が含まれる。
の拡張ボックス30aおよび30bは、その各々が、コ
ンピュータ・システム10をパワーアップしたままで、
従来型の拡張カード807が(ホットプラグされて)挿
入及び取り外しできる6つのホットプラグ型スロット3
6(36a〜36f)を持つ。6つの機械式レバー80
2は、対応するホットプラグ型スロット36中に挿入さ
れる拡張カード807の内の希望するものを閉鎖(クロ
ーズ)、すなわちラッチする時に)固定するのに使用さ
れる。スロット36の内の1つから拡張カード807を
取り外したり挿入したりするためには、対応するレバー
802を開放(オープン)しなければならない、すなわ
ちラッチを外さなければならないが、レバー802が開
放している間は、対応するスロット36はパワーはダウ
ンしたままである。そのスロット36に固着しているレ
バー802を開放すると、コンピュータ・システム10
はこれを感知して、カード807がそのスロット36か
ら取り外しできるようになる前に、カード807(およ
び対応するスロット36)をパワーダウンする。パワー
ダウンされたスロット36は、カード807を保持して
いない他のスロットと同様に、コンピュータ・システム
10がそのソフトウエアで希望のスロット36をパワー
アップするまで、パワー・ダウンされたままである。カ
ード・スロット34に挿入されたカード46はブリッジ
・チップ48を有するが、このチップは、レバー802
の固定状況(開放しているか閉成しているか)を監視
し、どのカード807(および対応するスロット36)
でもレバー802で固定されていないものがあれば、パ
ワーダウンする。コンピュータ・システム10のソフト
ウエアはまた、どのスロット36でもパワーダウンでき
る。複数のカード807は、パワーアップ・シーケンス
でパワーアップされ、パワーダウン・シーケンスでパワ
ーダウンされる。パワーアップ・シーケンスでは、電力
は、パワーアップされているカード807に最初に供給
され、その後で、パワーアップされるカード807に、
PCIクロック信号が(PCIバス32を介して)入力
される。カード807の残りのPCIバス信号線は、P
CIバス32の対応するラインに結合される。最後に、
パワーアップされているカード807用のリセット信号
が反転され、これによってカード807はリセット状態
から解放される。
ーアップされるカード807の回路は、残りのPCIバ
ス信号が与えられる以前に、PCIクロック信号によっ
て完全に機能可能となる。クロック信号および残りのP
CIバス信号は、カード807に接続され、しかもカー
ド807がリセットされる以前であれば、ブリッジ・チ
ップ48はPCIバス32の制御を保有する。これらの
時間中、ブリッジ・チップ48がPCIバス32を制御
するので、パワーアップ・シーケンスによって発生する
PCIバス32への電位グリッチは、パワーアップされ
ているカード807の動作には影響しない。パワーダウ
ン・シーケンスにおいては、パワーダウンされるカード
807が最初にリセットされる。次に、PCIクロック
信号以外のPCIバス信号がカード807から除かれ
る。するとブリッジ・チップ48は、カード807がパ
ワーダウンされる前に、カード807からPCIクロッ
ク信号を除去する。パワーダウン・シーケンスによっ
て、パワーダウンされるカード807からバス32への
誤信号の伝搬が最小化されるが、これは、カード807
上の回路がPCIバス信号ラインが遮断されるまでは、
完全に機能可能であるためである。PCIクロック信号
および残りのPCIバス信号の接続が外され、カード8
07がリセットされると、ブリッジ・チップ48はPC
Iバス32を制御する。これらの時間中、ブリッジ・チ
ップ48がPCIバス32を制御するので、パワーダウ
ン・シーケンスによって起こるPCIバス32上の電位
グリッチは、パワーアップされているカード807の動
作に影響しない。
号POUT[39:16]によってスロット36のパワ
ーアップ・シーケンスとパワーダウン・シーケンスを制
御するシリアル入出力(SIO)回路50を具備する。
制御信号POUT[39:16]は、SIO回路50が
発生する40本の出力制御信号POUT[39:16]
の一部(サブ集合)である。制御信号POUT[39:
16]は、スロット・バス・イネーブル信号BUSEN
#[5:0]、スロット・パワー・イネーブル信号PW
REN[5:0]、スロット・クロック・イネーブル信
号CLKEN#[5:0]およびスロット・リセット信
号RST#[5:0](すべてSIO回路50の内部信
号であり、後述する)がラッチされたものである。制御
信号POUT[39:0]、信号BUSEN#[5:
0]、PWREN[5:0]、CLKEN#[5:0]
およびRST#[5:0]の関係を次の表に示す。
ラグ型スロット36の各々は、PCIバス32に対する
スロット36の接続および取り外しのための関連のスイ
ッチ回路41を有する。スロット36それぞれに備えら
れているスイッチ回路41には、制御信号POUT[3
9:16]の内の4つが入力される。例えば、スロット
36aの場合、制御信号POUT[28]がオンにな
る、すなわちロー・レベルであると、スロット36a
は、スイッチ回路47によってPCIバス32のバス信
号線に接続される。制御信号POU[28]がオフにな
る、すなわちハイ・レベルであると、スロット36aは
PCIバス32のバス信号ラインからその接続を外され
る。制御信号POUT[22]がオンになる、すなわち
ロー(低レベル)の場合、スロット36aは、スイッチ
回路43を介してPCIクロック信号CLKに接続され
る。制御信号POUT[22]がオフになる、すなわち
ハイの場合、スロット36aはクロック信号CLKから
その接続を外される。制御信号POUT[34]がオン
になる、すなわちハイの場合、スロット36aはスイッ
チ回路45を介してカードの電源レベルVSSに接続され
る。制御信号POUT[34]がオフになる、すなわち
ローの場合、スロット36aは、カード電源レベルVSS
からその接続を外される。制御信号POUT[16]が
オンになる、すなわちローの場合、スロット36aはリ
セットされ、制御信号POUT[16]がオフになる、
すなわちハイの場合、スロット36aはリセット状態か
ら脱出する。
張ボックス30が提供する最高128(16バイト)の
ラッチ状態信号STATUS[127:0]を選択して
監視する。状態信号STATUS[127:0]は、拡
張ボックス30の選ばれた状態の”スナップショット”
を形成する。状態信号STATUS[127:0]に
は、レバー802の個々の固定状態(開放されている
か、閉成されているか)を示す6つの状態信号STAT
US[5:0]が含まれる。SIO回路50は、状態信
号STATUS[31:0]の論理電圧レベルに変化が
ないかどうかを監視する。SIO回路50は、CPU1
4からの指示に基づいて、状態信号STATUS[12
7:32]を順次にSIO回路50に送り込む。SIO
回路50は、シリアル・データ信号NEW CSIDを
介して、状態信号STATUS[127:0]をその最
下位信号から始めて受信する。データ信号NEW CS
IDは、スロット36と共に拡張ボックス30のボード
上に位置する32ビットのパラレル入力シフトレジスタ
82のシリアル出力によって供給される。レジスタ82
は、そのパラレル入力端子から、32の最下位状態信号
STATUS[31:0]に含まれる24のパラレル状
態信号PIN[23:0](ホットプラグ型スロット3
6の各々に対して4つづずつが関連している)を受信す
る。状態信号STATUS[31:0]の内1つ以上の
信号によって示される状態、すなわち論理電圧レベルが
変化すると、ブリッジ・チップ48は、割り込み受信ブ
ロック132によって受信されたシリアル割り込み要求
信号SI INTR#をオンにする、すなわちローに駆
動することによって、CPU14に対して割り込み要求
を発生させる。状態信号PIN[23:0]には、個々
のスロット36と関連する2つのPCIカード存在信号
(PRSNT1#およびPRSNT2#)が含まれる。
ラッチされた信号、すなわち状態信号STATUS
[5:0]に対応している)は、レバー802の各々の
固定状態、すなわち契合状態(開成しているか閉成して
いるか)を示す。6つのスライディング・スイッチ80
5(図27のA〜Cを参照)は、その対応するレバー8
02の動きによって始動されて、その対応するレバー8
02の固定状態を電気的に指示するために用いられる。
スイッチ805はその各々が、グランドに結合された第
1の端子、及び状態信号PIN[5:0]の内の対応す
る1つを供給する第2の端子を有する。この第2の端子
は、6個あるレジスタ801の内の1つを介して電源電
圧VDDに結合されている。レバー802の内のいずれ
か1つが開成されており、さらにレバー802により固
定されているカード807が解放されると、状態信号P
IN[5:0]の内の対応する1つがオンとなる、すな
わちハイに駆動される。1例として、スロット36aの
場合、対応するレバー802が閉成されると、状態信号
PIN[0]はオフとなる、すなわちローに駆動され
る。スロット36a用のレバー802が開成されると、
状態信号PIN[0]はオンとなる、すなわちハイに駆
動される。レジスタ82はまた、ラッチされた状態信号
STATUS[127:32]をシリアル・ストリーム
として受信するが、これは、信号STATUS[12
7:32]のいずれか1つの論理電圧レベルが変化して
も、割り込みを掛けることはない。状態信号STATU
S[127:32]は、スロット36を持つ拡張ボック
ス30のボード上に位置する16ビットのシフトレジス
タ52から成っている。シフトレジスタ52は、自身の
パラレル入力端子から状態信号を受信し、SIO回路5
0の指示に基づいて、状態信号STATUS[127:
32]をラッチする。シフトレジスタ52は、状態信号
STATUS[127:32]をシリアル化し、信号S
TATUS[127:32]をシリアル・データ信号C
SID Iを介して、レジスタ82のシリアル入力端子に
供給する。
タ82は、状態信号PIN[23:0]をラッチし、状
態信号STATAS[31:0]を生成し、該状態信号
[31:0]、及び(CPU14から要請があれば)1
バイト以上の状態信号STATUS[127:32]
を、シリアル・データ信号NEW CSIDを介してS
IO回路50に、最下位信号第1形式で供給する。状態
信号STUTAS[127:0]は、以下の表16及び
17に示されている。なお、表17は、表16の続きで
ある。
回路50がレジスタ・ロード信号CSIL 0 をアサ
ートしたとき、即ちローに駆動したとき、シフトレジス
タ52は状態信号STATAS[127:32]をラッ
チし、シフトレジスタ82は状態信号STATUS[3
1:0]をラッチする。SIO回路50が信号CSIL
0 をハイに駆動すると、2つのレジスタ52、82
は、SIO回路50によって供給されたクロック信号C
SIC 0の正の(立ち上がり)エッジで、SIO回路
50に対して、データをシリアル転送する。クロック信
号CSIC 0は、PCIクロック信号CLKに同期し
ており、かつ該CLKの1/4の周波数である。
TUS[31:0]をモニタ即ち走査するために、SI
O回路50は、32ビット割り込みレジスタ800を用
い、該レジスタのビット位置は、信号STATUS[3
1:0]に対応する。SIO回路50は、割り込みレジ
スタ800のビットを、既にデバウンス(deboun
ce)された対応する状態信号STATUS[31:
0]となるように、更新する。これについては、以降で
詳細に説明する。2つの状態信号STATUS[7:
6]が、追加のホットプラグ・スロット36のために予
約され、また割り込みレジスタ800の7番目及び8番
目のビットが、該追加のスロット36のために予約され
る。割り込みレジスタ800は、PCIバス32に接続
されたSIO回路50のレジスタ・ロジック・ブロック
808の一部である。SIO回路50のシリアル走査入
力ロジック804は、状態信号STATUS[31:
0]を順次走査、即ち、ロジック電圧レベルの遷移によ
り示される変化をモニタする。レバー802に関連する
状態信号STATUS[5:0]の1つ又は複数の状態
が変化する場合は、シリアル走査入力ロジック807
は、ゆっくりした走査モードとなり、状態信号STAT
US[5:0]が所定のデバウンス期間内で32回、走
査される。状態信号STATUS[5:0]の1つ又は
複数が変化した場合、変化した状態信号STATUS
[5:0]が少なくともデバウンス期間、同一の論理レ
ベルを保持したときに、割り込みレベル800を更新
(そして、シリアル割り込み信号SI INTER#を
アサート)する。シリアル走査入力ロジック804は、
プログラマブル・タイマ806に接続されており、該タ
イマは、シリアル走査入力ロジック804によって開始
されたデバウンス遅延期間を経時する。デバウンス期間
を安定に保つために状態を要求することにより、状態信
号STATUS[5:0]の1つによって示される欠陥
値(即ち、「グリッチ」)に基づくホットプラグ・スロ
ット36の1つの不慮のパワーダウンを、低減すること
ができる。すべての状態信号STATUS[5:0]が
少なくともデバウンス期間中同一の論理レベルにある場
合には、シリアル走査入力ロジック804は、より高速
の走査モードで、32の状態信号STATUS[31:
0]のすべてを走査する。
号STATUS[31:6]の1つに変化が生じたこと
を検出した場合は、該ロジック804は、タイマ806
に対して他のデバウンス期間を計測するように指令し、
続いて、シリアル割り込み信号SI INTER#をア
サートし、既に変化した状態信号STATUS[31:
6]でシリアル割り込みレジスタ800を更新し、そし
て、デバウンス期間が変更されるまで、変化した状態信
号STATUS[31:6]を無視する。デバウンス期
間が経過すると、シリアル走査入力ロジック804は、
32の状態信号STATUS[31:0]における変化
を認識するために、動作を進行する。シリアル割り込み
信号SI INTER#がアサートされると、CPU1
4は割り込みレジスタ800を読みだし、どの状態信号
STATUS[31:0]が割り込みを生じたか(1つ
以上の場合もある)を判定し、変化した割り込みレジス
タ800の1つまたは複数のビットに“1”を書き込む
ことによって、シリアル割り込み信号SI INTER
#をデアサートする。CPU14は、状態信号STAT
US[31:0]によって生じた割り込み要求をマスク
することもできる。これは、32ビットの割り込みマス
ク・レジスタ810中の対応するビットに“1”を書き
込むことによって実行される。CPU14はまた、シリ
アル入力バイト・レジスタ812に、選択されたバイト
のバイト数を書き込むことによって、状態信号STAT
US[47:0]のバイトを選択的に読み出すこともで
きる。SIO回路50は、該所定のバイトをシリアル・
データ・レジスタ815に転送する。例えば、状態信号
STATUS[23:16]の3番目のバイト(バイト
番号2)を読み出すためには、CPU14は、シリアル
入力バイト・レジスタ812へ“2”を回書き込む。シ
リアル走査入力ロジック804は次いで、状態信号ST
ATUS[23:16]のバイト“2”を、シリアル・
データ・レジスタ815へ直列的にシフトする。シフト
入力バイト・レジスタ812のビジー・ビットBSは、
CPU14がシフト入力バイト・レジスタ815に該所
望のバイト番号をそきてきに書き込んだ場合には、
“1”となる。
ジスタ817の対応するビットに“1”を書き込むこと
によって、スロット36の1つをパワーアップすること
ができ、また、このビットに“0”を書き込むことによ
って、該スロットをデセーブル(不動作状態)すること
ができる。さらに、CPU14は、スロット・リセット
・レジスタ819の対応するビットに“1”を書き込む
ことによって、スロット36の1つをリセットすること
ができる。スロット・イネーブル・レジスタ817の内
容、及びスロット・リセット・レジスタ819の内容
は、信号SLOT EN[5:0]及びSLOT RST
[5:0]によって示される。スロット・イネーブル・
レジスタ817及びスロット・リセット・レジスタ81
9によって表された要求を開始するため、CPU14
は、コントロール(制御)・レジスタのSOビットに
“1”を書き込む。SOビットがアサートされた(すな
わち、GO UPDATE信号をハイに駆動する)後、
SIO回路50は、要求されたパワーダウン及びパワー
アップのシーケンスを開始し制御する。シーケンス走査
入力ロジック804は、ON/OFFコントロール・ロ
ジック820に接続されており、該ロジック820は、
パワーアップ及びパワーダウン・シーケンスを制御す
る。ON/OFFコントロール・ロジック820は、信
号BUSEN#[5:0]、CLKEN#[5:0]、
RST#[5:0]、及びPWREN[5:0]を、シ
リアル出力ロジック824へ供給する。パワーアップ及
びパワーダウン・シーケンスはそれぞれ、その他方が実
行されている期間中に4つのシフト・フェーズを含んで
いる。各シフト・フェーズにおいては、ON/OFFコ
ントロール・ロジック820が、シリアル出力ロジック
824に指令して、信号BUSEN#[5:0]、CL
KEN#[5:0]、RST#[5:0]、及びPWR
EN[5:0]を結合し、かつこれらの信号をラッチ
し、さらに、出力シフトレジスタ80のシリアル入力に
(シリアル・データ信号CSOD Oを介して)供給す
る。各シフト・フェーズの終点において、ON/OFF
コントロール・ロジック820がシフトレジスタ80に
指令して、コントロール信号POUT[35:12]を
更新させる。
0はまた、レジスタ・ロジック808および発光ダイオ
ード(LED)コントロール・ロジック822に、イン
ターフェースされる。LEDコントロール・ロジック8
22は、6つのLED54のオン/オフ状態を制御す
る。これらLED54は、対応するレバー802がラッ
チされているか否かを可視的に表示する。LED54
は、レジスタ・ロジック808のLEDコントロール・
レジスタ(不図示)を介してターンオンされたときに、
発光するようにプログラムされる。図31に示されてい
るように、シリアル走査入力ロジック804は、走査状
態マシン840を含み、該マシンは、変化に関する状態
信号STATUS[31:0]の走査を制御し、シリア
ル入力バイト・レジスタ815に、状態信号STATU
S[47:0]の選択されたバイト・のシフトを制御す
る。走査状態マシン840は、クロック信号DIV2C
LKの立ち下がりエッジでクロッキングされ、該クロッ
ク信号は、PCIクロック信号CLKに同期しており、
該CLKの1/2の周波数を有している。ロード及びク
ロック信号CSIL O及びCSIC Oはそれぞれ、走
査状態マシン840によって供給される。ビット/バイ
ト・カウンタ841は、32ビットの信号BIT AC
TIVE[31:0]により、状態信号STATUS
[31:0]のどのビットが、現在、シリアル・データ
信号NEW CSIDによって表されているのかを示
す。信号BIT ACTIVE[31:0]のアサート
されたビットは、データ信号NEW CSIDで表され
る状態信号STATUS[31:0]と同一のビット位
置を有している。カウンタ841はまた、3ビット信号
BIT[2:0]を供給するが、該信号は、走査状態マ
シン840によって現時点で走査されている状態信号S
TATUS[31:0]のバイトのビットを表してい
る。カウンタ841は、信号SHIFT ENABLE
の立ち下がりエッジでクロッキングされる。カウンタ8
41の出力は、該カウンタのクリア入力に接続されてい
るANDゲート842の出力がローに反転すると、リセ
ット即ちクリアされる。
IN IDLEを供給する。該信号のハイ状態は、走査
状態マシン840がIDLE状態でありかつ状態信号S
TATUS[127:0]のいずれも現在走査していな
いことを示している。そうでなければ、信号SCAN
IN IDLEがデアサートされる。信号SCAN I
N IDLEは、ANDゲート842の一方の入力に供
給される。該ゲートの他方の入力には、ORゲート84
3の出力が供給される。ORゲート843の入力には、
信号HOLD OFFの反転された信号、及び信号GE
TTING BYTEが供給される。信号HOLD O
FFがアサートされたとき、即ちハイの状態は、状態信
号STATUS[5:0]の1つに変化が生じ、かつシ
リアル走査ロジック804がゆっくりとした走査モード
(スロー・スキャン・モード)になったことを示してい
る。該スロー・スキャン・モードにおいては、シリアル
走査シリアル走査入力ロジック804は、状態信号ST
ATUS[31:0]を再度走査する前に、所定のスロ
ー・スキャン・インターバルの間だけ待機する。シリア
ル走査入力ロジック804は、信号STATUS[5:
0]がスロー・スキャン・モード中に走査された回数を
カウントし、得られたカウント値を用いて、デバウンス
遅延期間(インターバル)の間に状態信号STATUS
[5:0]の1つが変化しなかった時を検出する。詳細
については、以降で説明する。したがって、走査状態マ
シン840がIDLE状態にあって、信号HOLD OF
Fがデアサートされている場合か、または走査状態マシ
ン840が状態信号STATUS[47:0]の所定の
バイト(CPU14により選択された)を読み出してい
る場合に、カウンタ841のすべての出力がゼロにクリ
アされる。
ゲート844の出力から供給される。ANDゲート84
4の一方の入力はクロック信号CSIC Oを受け取
り、多能の入力は信号DIV2CLK#WO受け取る。
信号DIV2CLK#は、信号CLKDIV4の立ち下
がりエッジ(負のエッジ)でアサート、即ちローに駆動
される。ANDOゲート844の第3の入力には、信号
SCAN IN PROGRESSが供給され、該信号
のアサート状態ではハイに駆動されて、走査状態信号S
TATUS[127:0]を走査状態マシン840が現
在走査していることを表す。それ以外の場合は、該信号
SCAN IN PROGRESSはデアサートされて
いる。したがって、走査状態マシン840が状態信号S
TATUS[127:0]においてシフト動作を行って
いない場合は、カウンタ841はデセーブルされる。さ
らに、カウンタ841がイエネーブルされると、クロッ
ク信号DIV2CLKの立ち下がりエッジで、該カウン
タはクロッキングされる。割り込みレジスタ800は、
入力信号D INTR REG[31:0]をそれぞ
れ、対応する32に入力で受け取る。割り込みレジスタ
800のロード・イネーブル入力はそれぞれ、対応する
ロード・イネーブル信号UPDATE IRQ[31:
0]を受け取る。該レジスタ800は、PCIクロック
信号CLKの立ち上がりエッジ(正のエッジ)でクロッ
キングされる。各走査の後に状態信号STATUS
[5:0]のトラックを保持するために、多重ビットの
D型フリップフロップ836が状態信号SCAN SW
を供給する。フリップフロップ836のクリア入力に
は、リセット信号RSTが供給され、該フリップフロッ
プはクロック信号CLKの立ち上がりエッジでクロッキ
ングされる。フリップフロップ836の入力は、多重ビ
ットのORゲート850の出力に接続されており、該O
Rゲートの1つの入力は、多重ビットのANDゲート8
46に接続され、また他の1つの入力は多重ビットのA
NDゲート847の出力接続されている。ANDゲート
846の一方の入力は、6ビットのイネーブル信号BI
T ENABLE[5:0](これについては、後で説
明する)を受け取り、他方の入力は、シリアル・データ
信号NEW CSIDを受け取る。ANDゲート847
の入力は、反転されたビット・イネーブル信号BIT
ENABLE[5:0]、及び信号SCAN SW
[5:0]をそれぞれ受け取る。
LE[5:0]の1つだけが、走査状態マシン840が
走査しているときに一度アサートされ、該アサートされ
たビットは、対応する状態信号STATUS[31:
0]の内のいずれが信号NEW CSIDによって表され
ているかを示している。このように、走査状態マシン8
40が走査している状態では、クロック信号CLKの立
ち上がりエッジ毎に、信号SCAN SW[5:0]が
更新される。ビット・イネーブル信号BIT ENAB
LE[31:0]は、多重ビットマルチプレクサ832
の出力から供給され、該マルチプレクサはその入力にビ
ットBIT ACTIVE[31:0]を受け取る。マ
ルチプレクサ832の“0”入力には、論理0を表す3
2ビット信号が供給される。状態信号STATUS
[5:0]の変化を検出するために、多重ビットの排他
的論理和(XOR)ゲート848がスイッチ切り替え信
号SW CHG[5:0]を供給する。該信号SW C
HG[5:0]がアサート(ハイ)されると、これは、
対応する状態信号STATUS[5:0]の論理電圧が
走査中に変化したことを示している。XORゲート84
8の一方の入力はフリップフロップ836の入力に接続
され、他方の入力は信号SCAN SWを受け取る。
デバウンス遅延期間の間、選択された状態信号STAT
US[5:0]の論理電圧レベルが変化しなかったこと
を表すために、走査入力ロジック804は6つの信号L
SWITCH[5:0]を出力する。D型フリップフロ
ップ900の非反転入力により、非反転出力から信号L
SWITCH[5]が出力される。該信号LSWITC
H[5]がアサート、即ちハイに駆動された場合は、上
記した状態を表しており、その他の場合はデアサートさ
れている。フリップフロップ900は、クロック信号C
LKの立ち上がりEDGEでクロッキングされ、クリア
入力はRST信号を受け取る。フリップフロップ900
の入力はマルチプレクサ902の出力に接続されてお
り、該マルチプレクサは、信号D LSWITCH
[5]を出力する。マルチプレクサ902の選択制御入
力は、ANDゲート903の出力に接続されており、該
ゲートは、信号MAX5及びSCAN ENDを受け取
る。信号SCAN ENDは、アサート状態では走査状
態マシン840が現在の走査を完了したことを示してい
る。6つの信号MAX5、MAX4、MAX3、MAX
2、MAX1、MAX0は、対応する状態信号STAT
US[5]、STATUS[4]、STATUS
[3]、STATUS[2]、STATUS[1]、S
TATUS[0]が、少なくともデバウンス期間中に同
一の論理レベルを保持して変化がなかったかどうかを表
している。マルチプレクサ902の“0”入力が信号L
SWITCH[5]を受け取り、“1”入力が信号SC
AN SWを受け取る。信号SCAN ENDはAND
ゲート851(図32)の出力から供給される。AND
ゲート851は信号STOP SCAN及びSCAN
DONEを受け取る。信号STOP SCANは、走査
状態マシン840による走査を終了させるときに、アサ
ート(ハイ)される。これについては、後でさらに説明
する。信号SCAN ENDは、信号STOP SCAN
のパルス化(信号CLKの1サイクル)されたものであ
る。信号LSWITCH[4]〜LSWITCH[0]
及び信号D LSWITCH[4]〜D LSWITCH
[0]は、信号SCAN SW[4]〜SCAN SW
[0]及び信号MAX4〜MAX0と同様にして生成さ
れる。
されたときにこれらの信号の論理電圧レベルを更新する
ために、多重ビットのD型フリップフロップ905(図
34)が26の信号SCAN NSW[31:6]を出
力する。この場合には、信号SCAN NSW[31:
6]の1つがアサート(ハイ)され、更新しない場合に
はデアサートされる。フリップフロップ905は、クロ
ック信号CLKの立ち上がりエッジでクロッキングさ
れ、クリア入力には信号RSTが供給される。フリップ
フロップ905の入力は、多重ビットのマルチプレクサ
906に接続されている。該マルチプレクサの選択制御
入力は、反転されたCHECK SWITCH ONL
Y信号を受け取る。該信号CHECK SWITCH
ONLYは、走査状態マシン840が状態信号STAT
US[5:0]またはSTATUS[127:32]を
走査しているときだけ(即ち、信号STATUS[3
1:6]の変化を無視する)、アサートされ、それ以外
の場合はデアサートされる。マルチプレクサ906の
“0”入力は信号SCAN NSW[31:6]を受け
取り、“1〃入力は多重ビットのORゲート907に出
力に接続されている。ORゲート907の一方の入力は
多重ビットのANDゲート908の出力に接続され、他
方の入力は多重ビットのANDゲート872の出力に接
続されている。ANDゲート908の一方の入力は信号
BIT ENABLE[31:6]を受け取り、他方の
入力は多重ビットのマルチプレクサ909の出力に接続
されている。信号NEW CSIDがアサート(ハイ)
されると、マルチプレクサ909は、“h3FFFFF
F”に等しい26ビットの信号を出力し、他の場合には
“0”である32ビットの信号を出力する。ANDゲー
ト872の一方の入力はANDゲート908の出力を反
転した信号を受け取り、他方の入力は信号SCAN N
SW[31:6]を受け取る。状態信号STATUS
[31:6]の論理電圧レベルを走査毎に記憶するため
に、多重ビットのD型フリップフロップ871が26の
信号LNON SW[31:6]を供給する。該信号L
NON SW[31:6]のいずれかがアサート(ハ
イ)された場合は、走査毎に記憶することを表し、デア
サートされると、記憶されない。フリップフロップ87
1はクロック信号CLKの立ち上がりエッジでクロッキ
ングされ、クリア入力は信号RSTを受け取る。フリッ
プフロップ871の入力は多重ビットのマルチプレクサ
870の出力に接続されており、該マルチプレクサは信
号D LNON SW[31:6]を出力する。マルチ
プレクサ870の選択制御入力は、信号SCAN EN
Dを受け取る。マルチプレクサ870の“0”入力は信
号LNON SW[31:6]を受け取り、“1”入力
は信号SCAN NSW[31:6]を受け取る。
0〜MAX5を発生するために、シリアル入力ロジック
804は6つの同一構成のカウンタ831a〜831f
を備えている。各カウンタ831は、ANDゲート89
2がアサート(ハイ)されたときに、初期化される。カ
ウンタ8312aについて言えば、ANDゲート892
が信号BIT ENABLE[0]、SW CHG
[0]、及び反転されたQUICK FILTERを受
け取る。信号QUICK FILTERは、アサート
(ハイ)されると、デバウンス時間の完遂を阻止するた
めに用いられる。信号QUICK FILTERは通常
デアサートされており、ローである。カウンタ831の
クロック入力は、ANDゲート893の出力に接続され
ている。カウンタ831aに関しては、ANDゲート8
93が信号BIT ENABLE[0]、及び反転され
たSW CHG[0]を受け取る。したがって、カウン
タ831aに関しては、状態信号STATUS[0]の
論理電圧レベルが一旦変化すると、シリアル走査ロジッ
ク804がが状態信号STATUS[0]を走査するた
びに、該カウンタ831aが増分される。カウンタ83
1aが最大値に到達すると、信号MAX0がアサートさ
れ、これにより、デバウンス期間が経過したことを示
す。状態信号STATUS[0]の論理電圧レベルがカ
ウント中に変化した場合は、カウント831aは再度リ
セットされて、最初からカウントをやり直す。他のカウ
ンタ831b〜fについても同様であり、これらは、状
態信号STATUS[5:1]に関連する。HOLD
OFF信号がアサートされると、それにより、タイマ8
06の1つに指令して所定の遅い走査期間(スロー・ス
キャン・インターバル)を測定する。該スロー・スキャ
ン・インターバルでは、シリアル走査状態マシン840
がスロー・スキャン・モードで走査を行う。タイマ80
6がこの遅延インターバルの経時を終了すると、タイマ
806は、信号FTR TIMEOUTをアサート(ハ
イ)し、終了しないばあいには該信号はデアサートされ
ている。このスロー・スキャン・インターバルとカウン
タ831の最大値との積は、デバウンス期間(8ms)
に等しい。
ップ885によって生成される。該フリップフロップ8
85は、信号CLKの立ち上がりエッジでクロッキング
され、クリア入力にはRST信号が供給される。該フリ
ップフロップのJ入力はANDゲート883の出力に接
続され、K入力はANDゲート884の出力に接続され
ている。ANDゲート883の一方の入力はJK−フリ
ップフロップ896の出力に接続され、多能の入力はS
CAN END信号を受け取る。ANDゲート884の
一方の入力はANDゲート883の出力の反転信号を受
け取り、第2の入力はFTR TIMEROUT信号を
受け取り、第3の入力はSCAN IN IDLE信号を
受け取る該SCAN IN IDLE信号は、走査状態
マシン840がIDLE状態にあるときに、アアサート
される。フリップフロップ895は、クロック信号CL
Kの立ち上がりでクロッキングされ、クリア入力はRS
T信号を受け取る。フリップフロップ895のJ入力は
NANDゲート894の出力に接続され、該NANDゲ
ートは信号MAX〜MAX5を受け取る。フリップフロ
ップ895のJ入力はANDゲート826の出力に接続
され、該ANDゲートは、フリップフロップ895の反
転J入力に接続され、かつ反転されたSCAN IN
PROGRESS信号を受け取る。SCAN IN P
ROGRESS信号は、走査状態マシン840が状態信
号STATUS[31:0]を走査中のときにアサート
される。CHECK SWITCH ONLY信号を発
生するために、シリアル走査入力ロジック804にJK
フリップフロップ864が含まれている。該フリップフ
ロップは該CHECK SWITCH ONLY信号を
非反転出力から供給し、クロック信号CLKの立ち上が
りエッジでクロッキングされる。フリップフロップ86
4のクリア入力は、RST信号を受け取り、J入力はD
EBOUNCE信号を受け取る。該DEBOUNCE信
号は、アサート(ハイ)されたときに、1つ又は複数の
状態信号STATUS[31:6]の論理電圧レベルが
変化したことを表す。フリップフロップ864のK入力
は、ANDデ865の出力に接続されている。ANDゲ
ート865の一方の入力は反転されたDEBOUNCE
信号を受け取り、他の入力はSCAN IN IDLE
信号を受け取る。
信号DEBOUNCEは、JKフリップフロップ860
の非反転出力から出力される。フリップフロップ860
は、クロック信号CLKの立ち上がりエッジでクロッキ
ングされ、クロッキング入力はリセット信号RSTを受
け取る。フリップフロップ860のJ入力は、信号CH
ANGE ON INPUTを受け取る。該CHANG
E ON INPUT信号は、状態信号STATUS
[31:6]のいつに変化が生じたことをシリアル入力
ロジック804の走査の終わりで検出したときに、アサ
ート(ハイ)される。フリップフロップ860のK入力
は、ANDゲート861の出力接続され、該ANDゲー
トは、その入力の1つとして、DB TIMEOUT信
号を受け取る。ANDゲート861の他の入力は、反転
されたCHANGE ON INPUT信号を受け取
る。DB TIMEOUT信号は、デバウンス遅延時間
(DEBOUNCE信号のアサートによって初期化され
る)が経過したときに、CLK信号の1サイクル中に、
タイマ106によってアサートされる。DB TIME
OUT信号のアサートは、CLK信号の次の立ち上がり
エッジで、DEBOUNCE信号をデアサート(反転)
させる。CHANGE ON INPUT信号は、JK
−フリップフロップ866の非反転出力から供給され
る。該フリップフロップは、CLK信号の立ち上がりエ
ッジでクロッキングされる。フリップフロップ866の
クリア入力はRST信号を受け取る。フリップフロップ
866のJ入力はANDゲート869の出力に接続さ
れ、該ANDゲートの一方の入力は、SCAN END
信号を受け取り、他の入力はORゲート867の出力に
接続されている。ORゲート867は、NSWCHG
[31:6]信号のすべてのOR論理をとる。NSW
CHG[31:6]信号のビット位置は、状態信号ST
ATUS[31:6]のビット位置に対応しており、か
つアサートされた場合には、該対応する状態信号STA
TUS[31:6]が最後の走査の後に変化したかどう
かを表している。ANDゲート869はさらに、SCA
N END信号を受け取る。フリップフロップ866の
K入力は、ANDゲート868の出力に接続され、該A
NDゲートは、反転されたSCAN IN PROGR
ESS信号及びANDゲート869の出力の反転された
信号を受け取る。信号NSW CHG[31:6]は、
多重ビットであるXORゲート862の出力によって供
給され、該XORゲートは、信号D LNON SW
[31:6]及びLNON SW[31:6]を受け取
る。
の非反転出力は、シリアル・データ・レジスタ815に
たいして、ビットSI DATA[7:0]を供給す
る。フリップフロップ912のクリア入力は信号RST
を受け取り、またクロック信号CLKによってクロッキ
ングされる。フリップフロップ912の信号入力は、多
重ビットのマルチプレクサ916に接続されている。マ
ルチプレクサ916の選択制御入力は、ANDゲート9
14の出力に接続され、“0”入力はビットSI DAT
A[7:0]を受け取る。ANDゲート914は、信号
GETTING BYTE及びSHIFT ENABLE
を受け取る。したがって、シリアル走査ロジック804
が状態信号STATUS[47:0]の要求されたバイ
トにシフトしていない場合は、ビットSI DATA
[7:0]の値が保存される。マルチプレクサ916の
入力の1つは、多重ビットのマルチプレクサ910の出
力に接続されている。該マルチプレクサ910の入力の
1つは多重ビットのORゲート911の出力に接続さ
れ、“0”入力は多重ビットのANDゲート915の出
力に接続されている。マルチプレクサ910の選択制御
入力は、信号NEW CSIDを受け取る。ANDゲー
ト915の1つの入力は、ビットSI DATA[7:
0]を受け取り、該ゲート915の反転入力は、3×8
デコーダ913の出力に接続されている。該デコーダ9
13は、信号BIT[2:0]を受け取る。ORゲート
911の一方の入力はビットSI DATA[7:0]
を受け取り、他歩の入力はデコーダ913の出力を受け
取る。
号RST SWITCH[5:0](状態信号STAT
US[5:0]のビット位置に対応している)を、ON
/OFFコントロール・ロジック820に供給し、該信
号がアサートされたときに、対応するスロット36a〜
fがパワーダウンすべきであることを示す。ON/OF
Fコントロール・ロジック820は、スロット36が5
つの信号CLR SWITCH[5:0]の1つのアサ
ートによってパワーダウンされたときを、指示する。な
お、CLR SWITCH[5:0]信号のビット位置
は、RST SWITCH[5:0]信号に対応してい
る。スロット36がすでにパワーダウンしたことを示す
指示を受け取った後、シリアル・ロジック804は、対
応するRST SWITCH[5:0]信号をデアサー
トする。RST SWITCH[5:0]信号は、多重
ビットのD型フリップフロップ891(図32)の非反
転出力によって発生される。フリップフロップ891の
クリア入力はリセット信号RSTを受け取り、またクロ
ック信号CLKの立ち上がりエッジでクロッキングされ
る。フリップフロップ891の入力は、多重ビットのO
Rゲート857の出力に接続され、該ORゲートの入力
は、多重ビットのANDゲート859、855の出力に
接続されている。ANDゲート859の一方の入力はマ
ルチプレクサ853の出力に接続され、他方の入力はラ
ッチされたスロット・イネーブル信号LSLOT EN
[5:0]を受け取る。該信号LSLOT EN[5:
0]は、アサートされると、対応するスロット36a〜
fがパワーアップされたことを示す。ANDゲート85
5の一つの入力は、信号CLR SWITCH [5:
0]を受け取り、第2の入力は信号RST SWITC
H[5:0]を受け取り、第3の入力はマルチプレクサ
853の反転された出力を受け取る。
を表す6ビット信号を受け取る。該マルチプレクサの
“1”入力は、多重ビットのANDゲート849の出力
に接続されている。ANDゲート849の一方の入力は
信号D LSWITCH[5:0]を受け取り、他方の
入力は反転された信号L SWITCH[5:0]を受
け取る。マルチプレクサ853の選択制御入力は、SC
AN END信号を受け取る。SI INTER#信号
を発生するために、シリアル走査ロジック804には、
D型フリップフロップ882が備えられている。該フリ
ップフロップはその反転出力にシリアル割り込み信号S
I INTER#を出力する。フリップフロップ882
は、CLK信号の立ち上がりエッジでクロッキングさ
れ、マタクリア入力はRST信号を受け取る。フリップ
フロップ882の入力は、ORゲート881の出力に接
続され、該ORゲートは32のペンディング割り込み信
号PENDING IRQ[31:0]をを受け取る。
これらの信号PENDING IRQ[31:0]は、
アサート(ハイ)されると、状態信号STATUS[3
1:0]の対応するものがペンディングであることを示
す。それ以外の場合は、PENDING IRQ[3
1:0]はデアサートされている。
ップフロップ979が、その反転出力に、PENDIN
G IRQ[31:0]信号を出力する。フリップフロ
ップ979は、信号CLKの立ち上がりエッジでクロッ
キングされ、そして、クリア入力に信号RSTが供給さ
れる。フリップフロップ979の入力は多重ビットのA
NDゲート981の出力に接続され、該ANDゲートは
その入力に、反転された割り込みマスク信号INTR
MASK[31:0]を受け取る。信号INTR MA
SK[31:0]は、割り込みマスク・レジスタ810
の対応するビットを表している。ANDゲート981の
他の入力は、多重ビットのORゲート835の出力に接
続されている。ORゲート835の一方の入力は、多重
ビットのANDゲート862の出力に接続され、他方の
入力は多重ビットのANDゲート834の出力に接続さ
れている。ANDゲート862は、反転されたPEND
ING IRQ[31:0]信号、及びSET PIR
Q[31:0]信号を受け取る。信号SET PIRQ
[31:0]は、割り込み要求が状態信号STATUS
[31:0]の対応するものに生成されるべきであると
きに、アサートされる。したがって、信号PENDIN
G IRQ[31:0]は、信号INTR MASK
[31:0]によってマスクされない場合に、信号SE
T PIRQ[31:0]で更新される。ANDゲート
834は信号PENDING IRQ[31:0]、反
転された信号SET PIRQ[31:0]、及び反転
された信号WR INTR REG[31:0]を受け
取る。WR INTR REG[31:0]信号は、C
PU14によって割り込みレジスタ800に書き込みデ
ータが供給されたことを示す。CPUは該レジスタ80
0の対応するビットに“1”を書き込むことによって、
割り込みをクリアする。従って、このように“1”が書
き込まれ、かつ状態信号STATUS[31:0]の対
応するものに新しい割り込み要求が示されない場合に
は、PENDING IRQ[31:0]信号の対応す
るものがクリアされる。
重ビットのANDゲート839の出力から供給される。
該ANDゲートの一方の入力は信号UPDATE IR
Q[31:0]を受け取り他方の入力は多重ビットのX
ORゲート837の出力を受け取る。XORゲート83
7の一方の入力は信号D INTR REG[31:
0]を受け取り、他方の入力は信号INTR REG
[31:0]を受け取る。したがって、割り込みレジス
タ800のびっとが一方の論理状態から他方の論理状態
に変化するときに、割り込み要求が生成される。割り込
みレジスタ800のビットを更新するために、信号UP
DATE IRQ[31:0]が発生されて該レジスタ
800の対応するロード入力に供給される。信号UPD
ATE IRQ[31:0]がアサート(ハイ)される
と、対応するビットに信号D INTR REG[3
1:0]の対応するものがロードされる。信号UPDA
TE IRQ[31:0]は、多重ビットのORゲート
971の出力から発生される。該ORゲート971の一
つの入力は多重ビットのマルチプレクサ977の出力に
接続され、他の入力は反転されたPENDING IR
Q[31:0]信号を受け取る。マルチプレクサ977
の選択制御入力は、信号SCAN ENDを受け取り、
“1”入力は“hFFFFFFFF”を表す32ビット
の信号を受け取り、“0”入力は、“0”を表す32ビ
ットの信号を受け取る。したがって、走査の終点では、
信号UPDATE IRQ[31:0]により、割り込
みレジスタ800のビットがアサートされたPENDI
NG IRQ[31:0]信号に対応するように、該ビ
ットを更新することができる。ORゲート971の別の
入力は、多重ビットのANDゲート975の出力接続さ
れている。該ANDゲートの1つの入力は反転されたI
NTR MASKU[31:0]信号を受け取り、他の
入力は信号PENDING IRQ[31:0]を受け
取り、さらに別の入力は信号WR INTR REG
[31:0]を受け取る。したがって、CPU14は、
信号PENDING IRQ[31:0]のビットを選
択的にクリアすることができる。信号D INTR R
EG[5:0]は、多重ビットのマルチプレクサ830
の出力から発生される。SCAN END信号がアサー
トされると、信号D INTR REG[5:0]は、
信号D LSWITCH[5:0]と等しくなる。SC
AN END信号がデアサートされると、信号D IN
TR REG[5:0]は信号LSWITCHと等しく
なる。信号D INTR REG[31:6]は、多重
ビットのマルチプレクサ845によって出力される。S
CAN END信号がアサートされると、信号D IN
TR REG[31:6]は信号D LNON SW
[31:6]と等しくなり、デアサートされると、信号
D INTR REG[31:6]は信号LNON S
W[31:6]と等しくなる。信号SCAN ENDが
アサートされたときにのみ、割り込みレジスタ800は
新しい値をとることができる。
走査状態マシン840は、リセット信号がアサートされ
た後に、IDLE状態に入る。IDLE状態でない場合
は、走査状態マシン840は、シフトレジスタ82をク
ロッキングするために、シリアルクロック信号CSIC
Oの状態をトグルする。さらに、第1ロード状態LD
1でない場合は、走査状態マシン840はロード信号C
SIL O をアサート(ハイ)し、レジスタ82、5
2が状態信号STATUS[127:0]をSIO回路
50にシリアル供給できるようにする。IDLE状態で
は、走査状態マシン840は信号SCAN DONEを
ゼロに設定する。走査状態マシン840は、信号GET
TING BYTEがアサートされたとき、またはHO
LD OFF信号がデアサートされたときに、IDLE
状態からLD1状態に移行する。それ以外の場合は、マ
シン840はIDLE状態に止まる。LD1状態では、
走査状態マシン840は、ロード信号CSIL O を
アサート(ロー)し、該ロード信号により、レジスタ8
2、52が状態信号STATUS[127:0]を受け
取ってラッチできるようにする。走査状態マシン840
は、LD1状態から第2ロード状態LD2へ移行する。
このLD2状態では、ロード信号CSIL O はアサ
ートされたままであり、それにより、レジスタ82、5
2が状態信号STATUS[127:0]をシリアルに
シフトできる。走査状態マシン840は続いて、走査状
態SCANに移行する。このSCAN状態では、シリア
ル走査入力ロジック804が、クロック信号DIV2C
LKの立ち下がりエッジで、状態信号STATUS[1
27:0]の1つを走査する。信号STOP SCAN
がアサートされると、走査状態マシン840は、IDL
E状態に戻る。STOP SCAN信号は、以下の2つ
のいずれかの場合にアサートされる。[a]状態信号S
TATUS[127:0]の所望のバイトがシリアル・
データ・レジスタ815へシフト済みであり、即ち、レ
バー状態信号STATUS[5:0]が走査済みであ
り、かつシリアル割り込み信号SI INTR#GAア
サートされている場合。[b]状態信号STATUS
[31:0]のすべてが走査済みである場合。SCAN
状態においては、SCAN DONE信号がSTOP
SCAN信号と等しく設定される。
ントロール・ロジック820は、ON/OFF状態マシ
ン998を備えており、該マシンは、信号RST SW
ITCH[5:0]、SLOT EN[5:0]、及び
SLOT RST[5:0]を受け取る。これらの信号
の状態に応じて、ON/OFF状態マシン998は、所
定のパワーオン及びパワーダウン・シーケンスを開始し
制御する。ON/OFF状態マシン998は、コントロ
ール・ロジック999にコントロール信号を供給する。
ON/OFF状態マシン998は、シリアル出力更新信
号SO UPDATEを、シリアル出力ロジック824
に供給する。該信号SO UPDATEがアサート(ハ
イ)されると、シリアル出力ロジック824は、フェー
ス(位相)のシフト動作を開始し、かつ信号CSOD
Oを介してレジスタ80に対して、コントロール・デー
タをシリアルにシフトする。シフト出力ロジック824
は、ON/OFF状態マシン998で受け取られる信号
SO UPDATE DONEをアサートすることによ
って、フェースのシフト動作が完了したことを通知す
る。ON/OFF状態マシン998は次いで、コントロ
ール信号POUT[39:0]を、ラッチ信号CSOL
C Oをクロッキングすることによって、更新する。該
信号CSOLC Oは、レジスタ80で受信される。コ
ントロール・ロジック999は、信号PWREN[5:
0]、CLKEN#、BUSEN#[5:0]、及びR
ST#[5:0]をシリアル出力ロジック824に供給
し、そして、PCIバス許可信号CAYREQ#をアビ
ータ124に出力しかつ該アビータからPCIバス許可
信号CAYGENT#WO受け取る。OYOBIコント
ロール・ロジック820は、信号CAYREQ#をアサ
ート(ロー)してPCIバス32へ要求し、そしてアビ
ータ124が信号CAYGNT#をアサート(ロー)し
たときに、アビータ124は、ON/OFFコントロー
ル・ロー820へのPCIバス32の制御を許可する。
/OFF状態マシン998はリセット信号RSTがアサ
ートされると、待機(アイドリング)状態IDLEに入
る。IDLE状態でない場合は、ON/OFF状態マシ
ン998は、以下の3つのシーケンスを制御する。すな
わち、パワーダウン・シーケンス、パワーアップ・シー
ケンス、及び、スロット・イネーブル・レジスタ817
及びLEDコントロール・レジスタ(不図示)によって
指示されたときに、コントロール信号POUT[39:
0]を更新するために用いられるワン・パス・シーケン
スである。ON/OFF状態マシン998は、ロロード
信号CSOLC Oをアサート(ハイ]するが、これ
は、該マシン998がコントロール信号POUT[3
9:0]が更新されるべきであると判定するまで、レジ
スタ80のクロック信号CLKの1サイクルの間、アサ
ートされる。コントロール信号POUT[39:0]が
更新されるとき、ON/OFF状態マシン998は信号
CSOLC Oを反転させ、それにより、コントロール
信号POUT[39:0]が更新される。ON/OFF
状態マシン998は、ソフトウエアが少なくとも1つの
スロット36のパワーダウンを要求したとき(これは、
信号SLOT EN[5:0]のデアサートにより示さ
れる)、またはシリアル走査入力ロジック804がスロ
ット36a〜fの少なくとも1つをパワーダウンすべき
であると判断したとき(これは、信号RST SWIT
CH[5:0]によって示される)に、パワーダウン・
シーケンスを開始する。パワーダウン・シーケンスを開
始するために、ON/OFF状態マシン998は信号S
O UPDATEををアサートして、フェーズのシフト
を開始し、かつRSTON状態へIDLE状態から移行
する。RSTON状態の間、コントロール・ロジック9
99は、パワーダウンすべきスロット36に関するリセ
ット信号RST#[5:0]をネゲート(反転)させ、
かつシリアル出力ロジック824が、リセット信号RS
T#[5:0]を出力レジスタ80にシリアルにシフト
する。ON/OFF状態マシン998はまた、信号SO
UPDATEをネゲートさせる。シリアル出力ロジッ
ク824によって40のコントロール信号のすべてがレ
ジスタ80にシフトされる(SO UPDATE DO
NE信号のアサートによって示される)、ON/OFF
状態マシン998は、RSTON状態からOFF AR
B1状態へ遷移する。OFF ARB1状態では、ON
/OFF状態マシン998は、要求信号CAYREQ#
をアサートすることによって、PCIバスの制御を要求
する。ON/OFF状態マシン998は、その後、OF
F WGNT1状態に移行し、該状態において、2次P
CIバス32の制御の許可を待機する。信号CAYGN
T#のアサートによって示されるように、アビータ12
4がバス32の制御を許可すると、ON/OFF状態マ
シン998は、コントロール信号POUT[39:0]
を更新するために信号CLKの1サイクルの間、信号C
SOLC Oをネゲートし、そして、OFF LCLK
1状態に移行する。
/OFF状態マシン998は信号SO UPDATEを
アサートして、他のシフト・フェーズを開始する。ON
/OFF状態マシン998は、OFF LCLK1か
ら、バス・オフ状態BUSOFFに遷移する。このBU
SOFF状態では、コントロール・ロジック999は、
パワーダウンすべきスロット36に対するバス・イネー
ブル信号BUSEN#[5:0]をデアサート(ハイに
駆動)し、そしてシリアル出力ロジック824が該信号
BUSEN#[5:0]を出力レジスタ80に対して、
シリアルに供給する。ON/OFF状態マシン998
は、また、信号SO UPDATEをネゲートする。4
0のコントロール信号のすべてが出力ロジック80によ
ってシフトされると(信号SO UPDATE DON
Eのアサートにより示される)、ON/OFF状態マシ
ン998はBUSOFF状態からOFF ARB2状態
に遷移し、該OFF ARB2において、マシン998
は、2次PCIバスの制御を再度要求する。マシン99
8はそして状態OFF WGNT2に移行し、該状態で
はPCIバス32の許可を待機する。許可を受け取った
ならば、マシン998はOFF LCLK2状態に移行
し、該状態では、信号CLKの1サイクの間、信号CS
OLC Oをネゲートすることによって、コントロール
信号POUT[5:0]が更新される。その後、マシン
998はクロック・オフ状態CLKOFFに移行する。
ジック999が、パワーダウンすべきスロット36に対
するクロック・イネーブル信号CLKEN#[5:0]
をデアサート(ハイ)する。バス・イネーブル信号BU
SEN#[5:0]は変化せず、またシリアル出力ロジ
ック824がクロック・イネーブル信号CLKEN#を
シリアルにシフトして、出力レジスタ80に供給する。
ON/OFF状態マシン998はまた、信号SO UP
DATEをネゲートする。40のコントロール信号のす
べてが出力ロジック824によってシフトされると(信
号SO UPDATE DONEによって示される)、
マシン998はCLKOFF状態からOFF ARB3
状態に移行し、該状態において、マシン998は再度P
CIバス32の制御を要求する。そしてマシン998
は、OFF WGNT3状態に移行し、PCIバス32
の制御の許可を待つ。許可を受信した場合は、状態マシ
ン998は、OFF LCK3状態に遷移し、該状態に
おいて、コントロール信号POUT[39:0]が更新
される。これは、信号CLKの1サイクルの間、信号C
SOLC Oをネゲートすることによって更新される。
状態マシン998は次いで、パワー・オフ状態PWRO
FFに移る。PWROFF状態では、コントロール・ロ
ジック999が、パワーダウンすべきスロット36に対
するパワー・イネーブル信号PWREN[5:0]をデ
アサート(ロー)する。信号RST#[5:0]、BU
SEN#[5:0]、CLKEN#は変化しない。そし
て、シリアル出力ロー824は、パワー・イネーブル信
号PWREN[5:0]を出力レジスタ80にシフトす
る。ON/OFF状態マシン998また、信号SO U
PDATEを更新する。40のコントロール信号がすべ
て出力ロー824によってシフトされると(SO UP
DATE DONEのアサートにより示される)、ON
/OFF状態マシン998はPWROFF状態からOF
F LCLK4状態に遷移し、この状態において、信号
CLKの1サイクの間信号CSOLC Oをネゲートす
ることによって、信号POUT[39:0]を更新す
る。状態マシン998は次いで、IDLE状態に移行し
てパワーダウン・シーケンスが終了する。
れば、ON/OFF状態マシン998はパワーアップ・
シーケンスが要求されるか否かを決定する。ソフトウエ
アがスロット36の少なくとも1つをパワーアップする
ことを要求するか又は拡張ボックス30のパワーアップ
が保留であるかの何れかであれば、ON/OFF状態マ
シン998はIDLE状態からパワーオン状態PWRO
Nに遷移してパワーオン・シーケンスを開始する。パワ
ーオン・シーケンスを開始するために、ON/OFF状
態マシン998は相シフトを開始するために信号SO
UPDATEをアサートし、IDLE状態からパワーオ
ン状態PWRONへ遷移する。PWRON状態の間、制
御ロジック999はパワーアップされるべきスロット3
6に対するパワー・イネーブル信号PWREN[5:
0]をアサートし、シリアル出力ロジック824はパワ
ー・イネーブル信号PWREN[5:0]を出力レジス
タ80に対してシリアルにシフトする。ON/OFF状
態マシン998はまた信号SO UPDATEを否定に
する。信号SO UPDATE DONEのアサートに
よって示されるように、40の制御信号のすべてがシリ
アル出力ロジック824によってシフトされると、ON
/OFF状態マシン998はPWRON状態からタイマ
806初期設定状態LDCNT1へ遷移し、制御信号P
OUT[39:0]を更新するためにロード信号CSO
LC Oを否定にする。LDCNT1状態においてON
/OFF状態マシン998はタイマ806を初期設定
し、それによってタイマ806が所定の安定化遅延期間
(stabilizationdelay interval)が満了(終了)した
ときの表示を提供するようにする。この安定化遅延期間
は、電圧レベルVSSがカード807に供給されたときに
パワーアップされているカード807が安定するために
十分な時間を与える。LDCNT1状態において、ON
/OFF状態マシン998また信号CSOLC Oをア
サートする。ON/OFF状態マシン820はLDCN
T1状態からCLKON状態に遷移する。CLKON状
態の間、制御ロジック999は、パワーアップされるべ
きスロット36に対するクロック・イネーブル信号CL
KEN#[5:0]をアサートする又はローに駆動す
る。PWREN[5:0]信号は変化せず、シリアル出
力ロジック824はクロック・イネーブル信号CLKE
N#[5:0]を出力レジスタ80に対してシリアルに
シフトする。ON/OFF状態マシン998はまた信号
SO UPDATEを否定にする。安定化遅延期間が満
了すると、ON/OFF状態マシン998はCLKOF
F状態からON ARB1状態へ遷移する。
F状態マシン998は要求信号CAYREQ#をアサー
トすることによって2次PCIバス32の制御を要求す
る。ON/OFF状態マシン998次にON WGNT
1状態に遷移し、そこで2次PCIバス32の許可(グ
ラント)を待つ。CAYGNT#信号のアサートによっ
て示されるように、バス32の制御が許可されると、O
N/OFF状態マシン998は制御信号POUT[3
9:0]を更新するために信号CSOLC Oを否定に
し(negate)、ON LCLK1状態に遷移し、そこで
信号POUT[39:0]が更新される。ON/OFF
状態マシン998はON LCLK1状態からLDCN
T2状態へ遷移し、そこで、タイマ806が初期設定さ
れ、タイマ806が別の所定の安定化遅延間隔(stabil
ization delay interval)が満了(終了)したときの表
示を提供するようにする。この遅延間隔は、カード80
7のクロック信号がパワーアップ・シーケンスが続けら
れる前に安定するようにパワーアップされることを可能
にするために用いられる。ON/OFF状態マシン99
8はLDCNT2状態からバス・オン(bus on)状態B
USONに遷移する。BUSON状態の間、制御ロジッ
ク999は、パワーダウンされるべきスロット36に対
するバス・イネーブル信号BUSEN#[5:0]をア
サートする又はローに駆動する。信号CLKEN#
[5:0]及びPWREN#[5:0]は変化せず、シ
リアル出力ロジック824はバス・イネーブル信号BU
SEN#[5:0]を出力レジスタ80に対してシリア
ルにシフトする。ON/OFF状態マシン998はまた
信号SO UPDATEを否定にする。安定化遅延間隔
かせ満了すると、ON/OFF状態マシン998BUS
EN状態からON ARB2状態に遷移し、そこで状態
マシン998は再びPCIバス32の制御を要求する。
次に状態マシン998はON WGNT2状態に遷移
し、そこでバス32の許可を待つ。許可を受け取ると、
状態マシン998はON LCLK2状態に遷移し、そ
こで信号POUT[39:0]が、信号CLKの1つの
サイクルに対する信号CSOLC Oを否定にすること
によって更新される。次に状態マシン998はリセット
・オフ状態RSTOFFへ遷移する。
9は、個々のSLOT RST [5:0]に依存して
パワーアップされるべきスロット36に対するリセット
信号RST#[5:0]をアサートする又は否定にす
る。信号CLKEN#[5:0]、PWREN#[5:
0]及びBUSEN#[5:0]は変化せず、シリアル
出力ロジック824はリセット信号RST#[5:0]
を出力レジスタ80に対してシリアルにシフトする。O
N/OFF状態マシン998はまた信号SO UPDA
TEを否定にする。信号SO UPDATE DONE
のアサートによって示されるように、40の制御信号の
すべてがシリアル出力ロジック824によってシフトさ
れると、ON/OFF状態マシン998はRSTON状
態からON ARB3状態へ遷移し、そこで状態マシン9
98は再びバス32の制御を要求する。状態マシン99
8は次にON WGNT3に遷移し、そこでバス32に
対する許可を待つ。許可を受け取ると、状態マシン99
8はON LCLK3状態に遷移し、そこで信号POU
T[39:0]が、信号CLKの1サイクルに対する信
号CSOLC Oを否定にすることによって更新され
る。次に状態マシン998はIDLE状態に遷移して戻
る。
・シーケンスも要求されないならば、ON/OFF状態
マシン999は次に信号POUT[39:0]のうちの
選択されたものを更新するために1パス(ワン・パス、
one pass)・シーケンスが必要か否かを判定する。もし
GO UPDATE信号がアサートされ、もしスロット
・イネーブル・レジスタ817又はスロット・リセット
・レジスタ819の何れかのビットが変化するならば、
ON/OFF状態マシン998はONEPASS状態へ
遷移し、SO UPDATE信号をアサートする。ON
/OFF状態マシン998は、40の制御信号がレジス
タ80へシフトされるまでONEPASS状態にとどま
る。次に、ON/OFF状態マシン998はOP AR
B状態へ遷移し、そこで状態マシン998は信号CAY
REQ#をアサートすることによってPCIバス32の
制御を要求する。次に状態マシン998はOP WGN
T状態に遷移し、そこでバス32に対する許可を待つ。
許可を受け取ると、状態マシン998はOP LCLK
状態へ遷移し、そこで信号POUT[39:0]は信号
CLKの1つのサイクルに対する信号CSOLC Oを
否定にすることによって更新される。次に状態マシン9
98はIDLE状態に遷移して戻る。
ク824は、信号CSOD Oを経由でシリアル出力ロ
ジック824からシフトされた制御信号を追跡する6ビ
ット・カウンタ出力信号BIT CNTR[5:0]を
提供するシフト出力ビット・カウンタ921を含む。信
号BIT CNTR[5:0]が「39」と等しい6数
字の数と等しいとき、信号MAX CNTがアサートさ
れる。信号MAX CNTはANDゲート922の入力
に与えられる。ANDゲート922は更に信号SHIF
T4を受信し、この信号は、以下に説明する出力シフト
状態マシン920がSHIFT4状態に入ったときにア
サートされる。ANDゲート922の出力は信号SO
UPDATE DONEを提供する。出力シフト状態マ
シン920は増分カウンタ信号INC CNTRをビッ
ト・カウンタ921に供給する。INC CNTRがア
サートされると、ビット・カウンタ921は信号BIT
CNTR[5:0]によって表される値を増分する。
ロード・カウンタ信号LOAD CNTRがアサートさ
れるか又はRST信号がアサートされると、ビット・カ
ウンタ921のクリア入力に接続されたORゲート92
5の出力が信号BIT CNTR[5:0]をクリアす
る。信号BIT CNTR[5:0]は、信号CSOD
Oを供給するマルチビット・マルチプレクサ924の
選択入力に供給される。マルチプレクサ924の0から
11の入力はLED制御信号LEDS[11:0]を受
信する。マルチプレクサ924の12から15の入力は
汎用出力信号GPOA[3:0]を受信する。16から
21の入力はリセット信号RST#[5:0]を受信す
る。22から27の入力はクロック・イネーブル信号C
LKEN#[5:0]を受信する。28から33の入力
はバス・イネーブル信号BUSEN#[5:0]を受信
する。34から39の入力はパワー・イネーブル信号P
WREN{5:0]を受信する。
ト状態マシン920は、信号RSTがアサートされると
きにIDLE状態に入る。もし信号SO UPDATE
がアサートされると、出力シフト状態マシン920はI
DLE状態からSHIFT1状態へ遷移する。出力シフ
ト状態マシン920はPCIクロック信号CLKの正の
縁部でクロックされるので、出力シフト状態マシン92
0は、クロック信号CLKの周波数の4分の1であるク
ロック信号CSOSC O信号を発生するために、SH
IFT1状態、SHIFT2状態、SHIFT3状態及
びSHIFT4状態を通して遷移する。SHIFT1状
態とSHIFT2状態の間、クロック信号CSOSC O
は否定に又はローにされ、SHIFT3状態とSHIF
T4状態の間、クロック信号CSOSC Oはアサート
又はハイにされる。信号MAXCNTのアサートによっ
て示されるように、現在のシフト相が完了すると、シフ
ト状態マシン920はIDLE状態に戻り、次のシフト
相の開始までクロック信号CSOSC Oがアサートされ
る。図49に示すように、HANG PEND信号はレ
ジスタ80のクリア入力によって受信される。HANG
PEND信号のアサート又はハイへの駆動は、以下に
説明するようにPCIバス32がロック・アップ状態の
ときにすべてのスロット36をパワーダウンするために
適当な出力制御信号POUT[39:0]を非同期的に
クリアする。
32におけるハング(hang)状態を検出することができ
る。ハング状態が検出されると、バス・ウオッチャ12
9はバス・ハング保留(pending)ビットをセットし、
これによってSIO50が2次バス32上のスロットを
パワー・ダウンさせるようにし、マスク不可能割り込み
(NMI)がCPU14に送信されるようにする。CP
U14はNMIに応答してNMIルーチンを呼び出し、
ハング状態の原因であるスロット(1つ又は複数)を分
離(隔離)する。欠陥のあるスロットが識別されると、
そのスロットはディスエーブルに又はパワー・オフされ
る。ソフトウエアの診断のために、ダウンストリームの
ブリッジ・チップ48のバス・ウオッチャ129はバス
履歴(ヒストリ、history)FIFO及びバス・ベクト
ルFIFOを含む。2次PCIバス32が適正に機能す
るとき、バス履歴情報は各トランザクションにおいてバ
ス・ウオッチャ129によって記録される。バス履歴情
報には、アドレス・グループ(PCIアドレス、PCI
コマンド信号、PCIマスタ数、及びアドレス・パリテ
ィ・ビットを含む)及びデータ・グループ(PCIデー
タ、バイト・イネーブル信号C/BE[3:0] 、パ
リティ・エラー信号PERR 、データ・パリティ・ビッ
ト、バースト・サイクル表示ビット、及びデータ有効フ
ラグを含む)が含まれる。バス・トランザクションを開
始するためにPCI信号FRAME が2次PCIバス
32にアサートされたとき、アドレス・グループ及び後
続の各データ・グループはバス履歴FIFOに記憶され
る。もしトランザクションがバースト・トランザクショ
ンであるならば、バースト・サイクル表示ビットが第2
のデータ相においてアクティブにセットされる。第1の
データ相の後に、バースト・トランザクションにおける
後続のデータ・グループと関連するアドレス・グループ
のアドレス・フィールドは4で増分され、新しいアドレ
ス・グループ及びデータ・グループがバス履歴FIFO
の次の位置に記憶される。もし再試行の状態又はデータ
がなく接続解除の状態(disconnect-without-datacondi
tion)のためにデータが転送されないならば、有効デー
タ表示ビットがローにセットされる。
の両方とも2段パイプラインを通じて流れ、データ・グ
ループがデータ・パリティ・ビット及びデータ・パリテ
ィ・エラー・ビットを集める時間を可能にし、且つ次の
アドレス・グループが記録される前にデータ・パリティ
・エラーが発生するときに記録プロセスを停止すること
を可能にする。もしバスが書き込みデータ相の中間でハ
ングすると、データは記憶され、バス・ハング状態ビッ
トがコンフィギュレーション・スペースを経由でアクセ
ス可能なバス・ハング表示レジスタ482(図55)に
セットされる。もしバスが読み出しデータ相の中間でハ
ングすると、データには有効でないと印付けがなされ、
バス・ハング・ビットがセットされる。バス状態ベクト
ルは組み立てられてバス・ベクトルFIFOに記憶され
る。それらには以下のPCI制御信号、即ち、スロット
要求信号REQ[7:0] 、スロット許可信号GNT
[7:0] 、FRAME 信号、PCIデバイス選択
信号DEVSEL 、PCIイニシエータ・レディ(in
itiator ready)信号IRDY 、PCIターゲット・
レディ信号TRDY 、STOP 信号、PCIパリテ
ィ・エラー信号PERR 、PCIシステム・エラー信
号SERR 、及びLOCK 信号が含まれる。バス状
態ベクトルが変化する各PCIクロック上において、即
ち、リストされた信号の何れかが状態を変化させる各P
CIクロック上において、新しいベクトルがバス・ベク
トルFIFOに記憶される。バス・ウオッチャ129
は、2次バス32がロック・アップ(lock up)された
か否かを判定するためにウォッチ−ドッグ(watch-do
g)・タイマ454(図53)を含む。ウォッチ−ドッ
グ・タイマ454が満了になると(きれると)、バス3
2はハングされる。以下は、ウォッチ−ドッグ・タイマ
454によって検出することができるバス・ハング状態
の例である。FRAME 信号がハイ又はローに置かれ
る。信号TRDY がIRDY に応答してアサートさ
れない。PCIアービタ124が何れのマスタにもバス
の許可を与えない。バス32を要求するマスタは再試行
を行い続ける。
ると、バス・ハング保留ビットがバス・ハング表示レジ
スタ482においてアクティブにセットされる。アクテ
ィブにセットされると、バス・ハング保留ビットはバス
・ウォッチャ129をディスエーブルにする。次に、S
IO50のスロット・イネーブル・ビットがクリアさ
れ、スロットがパワー・オフされることとなる。SIO
50は次にシステム・エラー信号SERR をアサート
する。バス・ハング状態の原因を分離するために、シス
テム・エラー信号SERR は、システムの割り込みロジ
ックがCPU14に対してNMIを発行するようにす
る。図50を参照すると、NMIハンドラは最初に、バ
ス・ハング表示レジスタ482を読むことによってバス
・ハング保留ビットがセットされたか否かを判定する
(400)。セットされていたならば、NMIハンドラ
は欠陥のあるスロット(1つ又は複数)を分離するため
にBIOS分離ハンドラを呼び出す(401)。そうで
ない場合は、別のNMIプロシージャを呼び出す(40
2)。フェールセーフ機構として、コンピュータ・シス
テムはまた、特定のソフトウエア・ルーチンがオペケー
ティング・システムによって実行されるときにクリアさ
れる自動サーバ回復(ASR)(automatic server rec
overy)タイマ72を含む。ASRタイマが満了したな
らば(例えば、10分後)、それは、オペケーティング
がロック・アップしたことを示す。2次PCIバス23
のハングはシステムのロック・アップが原因であり得、
その場合にNMIはCPU14に届かない。もとASR
タイマが満了すると、ASRによって発生されるリブー
ト(reboot)が発生する。ASRタイマはまた、BIO
S分離ハンドラがPCIバス32上の故障のスロットを
分離する最中にあり且つコンピュータ・システムがAS
Rリブートをするようにハングするならば、分離ルーチ
ンがASRタイムアウト事象のすぐ前に停止さたところ
でピックアップできることを確実にする。
ンドラがASRリブート状態に応答して呼び出される。
ASRハンドラは最初に、分離進行中(isolation-in-p
rogress)事象変数(EV)が、分離プロセスがASR
タイムアウト事象の前に進行中であったことを示すアク
ティブ情報を含むか否かを判定するためにチェックを行
う(444)。分離進行中EVは不揮発性メモリ(NV
RAM)70に記憶され、且つ分離プロセスが開始され
たことを示すためにアクティブにセットされるヘッダ情
報を含む。分離進行中EVはまた、検査されているスロ
ット、故障のスロット、及びイネーブルにされているス
ロットを含む分離プロセスの現在の状態で更新される。
もし分離プロセスが進行中であったならば、BIOSの
ASRハンドラは、ASR事象の直前にイネーブルにさ
れたものを除くすべてのスロットを再びイネーブルにし
(488)、これは分離進行中EVから決定される。A
SRのリブートの前にイネーブルにされたスロットはA
SRロック・アップの原因であり得る。結果として、そ
れらのスロットはディスエーブルに(即ち、パワー・オ
フ)される。次に、ディスエーブルにされたスロットの
番号が、NVRAMに記憶される故障状態情報としてロ
グ(記録)され、分離進行中EVがクリアされる(45
0)。次にBIOSのASRハンドラはバス・ハング保
留(ペンディング)ビットがセットされたか否かを判定
するために検査を行う(452)。セットされていたな
らば、バス・ハング保留ビットはクリアされ(2次PC
Iバス32上でI/Oサイクルを行うことによる)バス
・ウォッチャ129を再びイネーブルにする。444に
おいて、もし分離進行中EVがアクティブ状態にセット
されておらず、ASR事象が発生したときに分離プロセ
スが実行されていなかったことが示されるならば、ルー
チンはバス・ハング保留ビットがセットされたか否かを
判定する(446)。セットされていないならば、BI
OSのASRハンドラを終える。446において、バス
・ハング保留ビットがセットされ、ASR事象の前にバ
ス・ハング状態が発生したことを示すならば、BIOS
のASRハンドラはBIOS分離ハンドラを呼び出して
故障のスロット(1つ又は複数)を分離する。
ラは最初にNVRAMの故障状態情報部分にバス・モニ
タ127の履歴FIFO及びベクトルFIFOに記録さ
れたバス履歴及びバス・ベクトル情報をログする。(4
08)。バス履歴FIFO及びバス状態ベクトルFIF
Oが読まれ、それらの内容がNVRAMに転送される。
次に、分離進行中事象変数のヘッダ情報がセットされて
分離プロセスが進行中であることを示す(410)。バ
ス・ハング保留ビットがクリアされ(所定のコンフィギ
ュレーション・アドレスへの書き込みによる)てバス・
ウオッチャ129が再びイネーブルにされる。次に、分
離ルーチンは最初にポピュレートされた(populated)
スロット(即ち、PCIデバイスが接続されたスロッ
ト)を再びイネーブルにし(即ち、パワー・アップ
し)、そのデバイスのPCIコンフィギュレーション・
スペースからの読み出し及び書き込みを行う(41
2)。スロットはスロット・イネーブル・レジスタ81
7(図29)への書き込みによって再びイネーブルにさ
れる。次に、ルーチンは、バス・ハング保留ビットがア
クティブにセットされて、スロットに接続されたデバイ
スがバスから読み出している間にバスをハングさせる原
因となることを示すか否かを判定する(414)。もし
セットされていなければ、ルーチンはポピュレートされ
たすべてのスロットの検査が行われたか否かを判定する
(416)。もし検査されていなければ、最初にポピュ
レートされたスロットがディスエーブルにされ(41
8)、分離進行中EVが更新され、最初にポピュレート
されたスロットがBIOS分離ルーチンによって試され
たことを示す(420)。もしルーチンが414でバス
・ハング保留ビットがアクティブにセットされたと判定
すると、スロットは、NVRAMの故障状態情報部分に
おいて故障しているものとして示される(例えば、その
スロットに対する故障フラグをアクティブにセットす
る)。次に、ポピュレートされたすべてのスロットの検
査がなされるまでステップ412、414、416、4
18及び420からなるループが実行される。
ットが検査されたと判定された場合、ルーチンは、何れ
かのスロットがNVRAMの故障状態情報部分において
故障したものとして示されているか否かを判定するため
に検査を行う(424)。もしセットされたならば、ル
ーチン398は故障していないスロットのみを再びイネ
ーブルにする(426)。次に、分離進行中EVがクリ
アされ(428)、BIOS分離ルーチンが完了する。
424で何れのスロットも故障していないと判定された
場合、これはバス・ハング状態が1つのスロットによっ
て起こったものではないことを示すが、1つよりも多く
のデバイスが同時にアクティブ状態にあったであろうこ
とが原因であり得る。それを確かめるために、BIOS
分離ハンドラは最初にすべてのスロットをディスエーブ
ルにし(パワー・ダウンし)、この情報で分離進行中E
Vを更新する(430)。次に、BIOS分離ハンドラ
はカウント変数を0にクリアし、カウント変数IをNの
値にセットする(431)。カウント変数Nはポピュレ
ートされたスロットのカウントを表す。BIOS分離ハ
ンドラはポピュレートされたスロットI(最初はスロッ
トN)を再びイネーブルにし(即ち、パワー・アップ
し)、そのPCIコンフィギュレーション・スペースに
対しての読み出し及び書き込みを行う(432)。次
に、ハンドラはバス・ハング保留ビットがセットされた
か否かを判定するために検査を行う(438)。もしセ
ットされていなければ、ハンドラは変数Iを決定し(4
33)、変数Iが0より大きい又は0と等しいか否かを
検査する(434)。もし0以上であるならば、ハンド
ラは分離進行中EVを更新し(435)、次のポピュレ
ートされたスロットIを再びイネーブルにして読み出し
及び書き込みを行う(432)。次にハンドラは該次の
スロットに対してバス・ハング保留ビットがセットされ
たか否かを検査する(438)。このようにして、イネ
ーブルにされる各スロットNに対して、以前にイネーブ
ルにされたスロットもまた、スロットの組み合わせが故
障の原因であるか否かを判定するために一度に1つずつ
パワーオンされる。ブロック434において、変数Iが
ゼロより小さいくなると決定されれば、ブロック436
において、ハンドラは全ての母集団化されたスロットは
イネーブルされたか否かを決定する。そうでなければ、
ブロック437においいて、変数Nは増加され、ブロッ
ク439において、分離進行中EVは更新され、ブロッ
ク441において、変数IはNの値と等しく再度セット
される。ブロック440において、もしバス停止保留ビ
ットが438活動にセットされるなら、潜在的に2つの
スロットがディスエーブルされる:スロットN(現在イ
ネーブルされているスロット)及びスロットI(現在読
出しおよび書込みされているスロット)。ブロック43
6において、I及びNの値が同じならば、スロットNだ
けがディスエーブルされている。ハンドラが全ての母集
団化されたスロットがイネーブルされること(そして、
障害が識別され得ない)を決定すれば、ブロック442
において、ハンドラはNVRAMにおいて障害を隔離す
るためにその無力をログする。次に、ブロック428に
おいて、ハンドラは分離進行中EVを消去する。
atch−dog)・タイマ454は、出力信号WD_
TMR_OUT[17:0](タイマカウタの値)、H
ANG_PEND(バスハング条件の存在)、EN_C
AP(ソフトウエアがバスの補足可能性およびベクトル
・ヒストリ情報を有する)、TIME_OUT(ウオッ
チードッグ・タイマ454はタイムアウトする)、信号
HANG_RCOVR_EN(ソフトウエアによりバス
・ウオッチャ129およびSIO 50において停止回
復ロジックをイネーブルするようにハイにセット)及び
信号CAP_ILLEG_PROT(PCTバス32上
の違法サイクルを示す)を供給する。信号HANG_P
ENDは,SIO 50に供給され,第2のバス・スロ
ットを遮断する。ウオッチドッグ・タイマ454への入
力信号は、PCIバス信号のいくつか、信号WRT_E
N_CAP_1(バス・ヒストリの補足及び障害分離ブ
ロック129によるバス・ベクトル情報が再びイネーブ
ルされるようにソフトウエアによりハイにパルスされ
る)、そして電源良好インディケーター信号(コンピュ
ータ・システムにおける電力が安定していることを示
す)を含む。
HANG_PEND、TIME_OUT及びHANG_
RCOVER_ENをウオッチードッグ・タイマ454
から受け取る。回復状態マシーン456はまたPCI信
号のいくつかを受け取る。バス停止回復状態マシーン4
56からの出力信号は、PCI信号DEVSEL_、P
CI信号STOP_を駆動する信号STOP_O、シス
テム・エラー信号SERR_のアサーションをイネーブ
ルする信号SERR_EN、信号BR_M_ABORT
(バス・ウオチャ129がマスタ打切りにより回復した
こを示す)、信号BR_T_ABORT(バス・ウオチ
ャ129がターゲット打切りにより回復したことを示
す)、および信号RCOVR_ACTIVE(バス停止
回復状態マシーン456が活動状態になる時を示すため
の)を含む。バス停止回復状態マシーン456は、第2
のPCIバス32が障害スロットを分離することをソフ
トウエアに許容するためアイドル状態にもどることを保
証する。停止条件が検出される時に、SIO 50は第
2のバス・スロットをパワーダウンし、このスロット
は、ハング条件が生じる時にスロット・デバイスの1つ
がバス・マスタの1つであったならばバス32をアイド
ル状態に自動的に置く。しかし、バス停止が生じる時に
スロット・デバイスの1つがターゲットであった(そし
てブリッジ・チップ48がマスタであった)ならば、そ
のときブリッジ・チップ48はバス上に留まる。ブリッ
ジ・ップをバスから取除くために、回復状態マシーン4
56は信号STOP_をアサートすることによりPCI
バス32上に再試行サイクルを強制する。バス・ヒスト
リ(バス履歴)捕捉ブロック458はトランザクション
のためにPCIバス32を監視し、そしてバス・ヒスト
リ情報を、BUS_HIST_DATA3[31:0]
(バス・ヒストリアドレス)、BUS_HIST_DA
TA2[31:0)(バス・ヒストリデータ)、BUS
_HIST_DATA1[15:0](パリテイエラー
信号 !PERR_、パリテイビットPAR、有効デー
タ・ビットVALID_DAT、アドレス・パリテイビ
ットADDRPAR、バースト・インディケーターBU
RST、マスタ番号MASTER[2:0]、バイト・
イネーブルビット[3:0]及び命令ビットCMD
[3:0])の出力信号上に表す。バス・ヒストリ補足
ブロック458は、信号HIST_RDYを、正常なト
ランザクションにおける各データ・フェーズの終端にお
いて真である、BUS_HIST_DATA信号上にデ
ータが利用できる時に、またはタイムアウト信号TIM
E_OUTのアサーションの間に、もしトランザクショ
ンがマスタ打切り、再試行により終了するなら信号HI
ST_RDYをアサートする。
ずれかのこれらの制御信号が状態を変更する時に、ある
PCI制御信号の状態を補足する。ベクトルが補足さ
れ、信号BUS_VECT_DATA[20:0]とし
て出力し、該出力信号は、要求信号!REQ[7:0]
_、!承諾信号GNT[7:0]_、タイムアウト信号
TIME_OUT、ロック信号LOCK_、システムエ
ラー信号SERR_、パリテイエラー信号PERR_、
停止信号STOP_、ターゲット準備信号TRDY_、
開始レディー信号IRDY_、デバイス選択信号DEV
SEL_及びフレーム信号FRAME_を含む。バス・
ベクトルBUS_VECT_DATA[24:0]のい
ずれかが変化するかまたはウオッチドッグ・タイマ45
4が満了した(TIME_OUTはハイ)ならば、バス
・ベクトル捕捉ブロック460は信号VECT_RDY
をアサートする。バス・ヒストリ及びバス・ベクトル信
号が、2デープ(2−deep)・バス・ヒストリFI
FOと4デープ・ベクトル・ヒストリFIFOを含む、
バス・ウオッチャFIFOの入力に生じる。バス・ヒス
トリFIFOの出力は、信号BUS_HIST_REG
1[31:0]、BUS_HIST_REG2(31:
0]及びBUS_HIST_REG3[31:0]とし
て生じる。ベクトル・ヒストリFIFOの出力は信号B
US_VECT_REG[31:0]として生じる。シ
ステム・ソフトウエアは、アサートされるべき信号BU
S_HIST_RD1生じさせるI/0読出しサイクル
を発生させることによりバス・ヒストリFIFOの出力
を読出し、そしてアサートされるべき信号BUS_VE
CT_RDを生じるI/O読出しサイクルを発生させる
ことによりベクトルFIFOの出力を読出す。
56は、SYNC_POWEROKは、電力がいまだ安
定していないことを示す、否定されたロウ(low)で
ある時に、状態IDLEにおいて開始する。状態マシー
ンは、信号HANG_PENDがロウである間は状態I
DLEに留まる。状態IDLEにおいて、信号BR_M
_ABORT、信号BR_T_ABORT、信号RCO
VR_ACTIVEは否定されたロウである。信号RO
CVR_ACTIVEは、他の状態WAIT、ABOR
T及びPEND_OFFにおいて活動のハイである。信
号SET_HANG_PENDがハイをアサートするな
らば、状態マシーンは状態WAITに遷移する。その遷
移において、信号DEVSEL_0はデバイス選択信号
DEVSEL_の反転状態に等しくセットされる。これ
は、デバイス選択信号DEVEL_がバス停止条件前の
ターゲットによりアサートさるならば、回復状態マシー
ン456はアサートされた信号DEVSEL_を維持す
る。状態WAITにおいて、信号DEVSEL_0は、
信号DEV_SEL_WAS_0の状態に等しくセット
され、該信号DEV_SEL_WASは、信号DEVS
EL_がターゲットによりWAIT状態への状態マシー
ン遷移の前にアサートされるなら、ハイにセットされ
る。状態WAITから、バス停止回復マシーン456
は、PCIバス32がアイドルになった(すなわち、F
RAME_IRDY_およびIRDY_の両方が否定ハ
イ)ことを示す、信号PCI_IDLEがアサートされ
るならば、PEND_OFF状態に変換する。該変換に
おいて、信号BR_M_ABORTがハイにセットさ
れ、停止条件およびスロット・デバイスを電力ダウンし
てPCIバスをアイドル状態にする前にスロット・デバ
イスの1つがマスタであることを表示する。信号SER
_ENはまたハイにセットされ、もしINTA_がイネ
ーブルされるならばシステムエラー信号SERR_or
のアサーションをイネーブルする。
ターゲットであるならば、バス・マスタはPCIバス3
2留まる。バス・マスタをPCIバスから外すために、
バス停止回復状態マシーン456は、PCIバス32上
の再試行を行う。カウンタ457は、信号HANG_P
ENDがハイにアサートされた後にPCLK期間(例え
ば、15PCLK期間)の所定数をカウントする。15
PCLK期間は、FRAME_およびIRDY_上の十
分な立上がり時間を保証し、信号にアイドル状態への復
帰する時間を与える。15PCLK期間が経過した時
に、カウンタ457は信号TIME_OUT15をアサ
ートする。信号TIME_OUTがハイをアサートし、
信号PCI_IDLEがロウに留まる場合には、状態マ
シーンはW状態AITから状態ABORTに移行する。
その移行において、信号STOP_0信号はハイをアサ
ートし、PCI STOP信号を活動状態に駆動してバ
ス・マスタを再試行させる。状態マシーンは、バス・マ
スタがロウにアサートされたFRAME_信号を維持す
る間は状態ABORTに留まる。状態ABORTにおい
て、STOP_0信号はハイに維持される。バス・マス
タが再試行状態に応答してFRAME信号をアサートし
ないと、状態マシーンは状態ABORTから状態PEN
D_OFFに移行する。該移行において、信号BR_T
_ABORTはハイをアサートされ、バス32をアイド
ル状態に置くためにバス停止条件の後にターゲット打切
りが必要であつたことを表示する。また、信号SSER
R_ENがハイをアサートされて、INTA_がイネー
ブルであるなら、信号SERR_orのアサーションを
イネーブルする。状態マシーンは、信号WRT_EN_
CAP_1が状態IDLEに逆移行する時にハイにアサ
ートされるまで、状態PEND_OFFに留まる。シス
テム・ソフトウエアはBR_M_ABORTおよびBT
_T_ABORT信号の値を読出SUことができ、バス
停止に含まれたスロット・デバイスがマスタまたはスレ
ーブであったかを決定する。
イマ454は、信号PCLKによりクロックされる18
ビットLSFRカウンタ464を含む。ANDゲート4
67がハイにアサートされる時にカウンタ464はイネ
ーブルされ、それは新しいマスタが要求(ANY_RE
Qはハイ)を送り、バス・サイクルが開始し(信号FR
AME_およびIRDY_は共にアサートされる)、イ
ネーブル捕捉信号EN_CAPがアサートされ、そして
信号TIME_OUTはロウになる。ORゲート466
は、信号ANY_REQと信号FRAME_およびIR
DY_の反転状態を受ける。ANDゲート467は、O
Rゲート466の出力、信号EN_CAPおよび信号T
IME_OUTの反転状態を受ける。カウンタの出力
は、信号WD_TMR_OUT[17:0]を駆動し、
そしてタイムアウト条件が検出された(TIME_OU
Tはハイ)時、データ転送が開始した(両信号IRDY
_とTRDY_がロウにアサートされる)時、またはカ
ウンタ464の全ての出力ビットがハイである(違法条
件である)時に消去される。消去条件はORゲート47
0により示され、該ORゲートは信号TIME_OU
T、信号WD_TMR_OUT[17:0]のビット単
位AND、およびANDゲート472の出力を受ける。
ANDゲート472の入力は、信号IRDY_の反転状
態および信号TRDY_の反転状態を受ける。信号TI
ME_OUTは、タイマ信号WD_TIMR_OUT
[17:0]が2進値100000000000000
0までカウントするときにタイムアウト検出器474に
よりハイにアサートされる。信号TIME_OUTは、
ORゲート476のひとつの入力に与えられ、その出力
はANDゲート478の入力に接続されている。AND
ゲート478の他方の入力は、信号WRT_EN_CA
P_1の反転状態を受け(バス・ヒストリおよびバス・
ベクトル獲得を再イネーブルするためにソフトウエアに
より制御される)、そしてその出力はD型フリップ・フ
ロップ488のD入力に接続されている。フリップ・フ
ロップ488は信号PCLKによりクロックされ、そし
てORゲート476の他方の入力にフィードバックされ
る、出力信号WD_TIMR_OUTを駆動する。フリ
ップ・フロップ488は、電力良好信号SYNC_PO
WEROKが否定される時に消去される。このため、A
SRリセットは信号WD_TMR_OUTを消去しな
い。
・フロップ482によりハイにアサートされ、そのD入
力は、ANDゲート484の出力に接続され、そして信
号PCLKによりクロックされる。ANDゲート484
のひとつの入力は、ORゲート486の出力に接続さ
れ、そして他方の入力は信号WRT_EN_CAP_1
の反転状態を受ける。ORゲート486のひとつの入力
は、信号HANG_PENDに接続され、そして他の入
力はANDゲート488の出力に接続されている。AN
Dゲート488の出力は信号TIME_OUTおよびイ
ネーブル信号HANG_RCOVR_ENを受ける。こ
のため、もしシステム・ソフトウエアがバス停止回復
(HANG_RCOVR_ENはハイである)をイネー
ブルするならば、そのときタイムアウト条件は信号HA
NG_PENDをハイにセットされるように惹起するで
あろう。信号HANG_PENDは、システム・ソフト
ウエアがアサートされるべき信号WRT_EN_CAP
_1を生じるか(バス32上のI/Oサイクルを実行す
る)または信号SYNC_POWEROKが否定される
時に、消去される。ビットHANG_PENDはASR
リブートにより否定される。イネーブル獲得信号EN_
CAPはD型フリップ・フロップ490により発生さ
れ、そのD入力はANDゲート492の出力を受ける。
ANDゲート492はORゲート494の出力に接続さ
れ、そしてその他の入力は信号CLR_EN_CAPの
反転状態に接続されている。ORゲート494のひとつ
の入力は、信号EN_CAPにルートバックされ、そし
て他の入力は信号WRT_EN_CAP_1を受ける。
フリップ・フロップ490は、信号PCLKによりクロ
ックされ、そして信号SYNC_POWEROKがロウ
に否定されるときにハイにセットされる。信号EN_C
APは、信号 WRT_EN_CAP_1を経てソフト
ウエアによりハイにセットされるとすぐに、それはハイ
に維持される。信号CLR_EN_CAPがアサートさ
れて信号EN_CAPを消去し(情報のディスエーブル
捕獲)、それはタイムアウトが発生した時に生じ(TI
ME_OUTはハイ)、システム・エラーが発生し(S
ERR_はロウ)、パリティ・エラーが発生し(PER
R_はロウ)、または違法バス・プロトコルが検出され
る(CAP_ILLEG_PROTはハイ)。信号CA
P_ILLEG_PROTはD型フリップ・フロップ4
83により発生され、そのD入力はANDゲート485
の出力を受ける。ANDゲートのひとつの入力は、信号
WRT_EN_CAP_1の反転状態を受け、そして他
の入力は、ORゲート487の出力を受ける。ORゲー
ト487は信号CAP_ILLEG_PROTとSET
_ILLEG_PROTを受ける。信号SET_ILL
EG_PROTは、捕獲がイネーブルされる時(EN_
CAPがハイ)にアサートされ、状態マシーン456は
活動状態になく(RCOVR_ACTIVEはロウであ
る)、バスはアイドルであり、信号DEVSEL_、T
RDY_、またはIRDY_のいずれがロウにアサート
される。この条件は、バス・ヒストリとバス・ベクトル
情報の捕獲をトリガーする、違法条件である。
ディー信号HIST_RDYは、信号PCLKによりク
ロックされそして信号RESETにより消去される、D
型フリップ・フロップ502により発生される。フリッ
プ・フロップ502のD型入力は、ORゲート504の
出力に接続され、その入力は、信号TIME_OUT、
信号M_ABORT(一つのPCLKにより遅延された
マスタ打切り信号)、ANDゲート506の出力、およ
びANDゲート508の出力を受ける。ANDゲート5
06は、もし再試行、切断Cまたはターゲット打切りサ
イクルが第2のバス32に存在するならば、その出力を
アサートする(信号FRAME_、信号IRDY_の反
転状態、信号STOP_の反転状態、そして信号DSC
_A_Bの反転状態が全て真である)。ANDゲート5
08は、完了データ転送が生じた時にその出力をアサー
トする(信号IRDY_およびTRDY_は共にロ
ウ)。このため、ウオッチドッグ・タイマ454がタイ
ムアウトし、再試行、切断C、またはターゲット打切り
条件が存在する時にバス・ヒストリFIFOにバス・ヒ
ストリ情報はロードされ、マスタはサイクルを打切り、
またはサイクルは継続して完了する。有効データ指示信
号VALID_DATは、信号PCLKによりクロック
されそして信号RESETにより消去される、D型フリ
ップ・フロップ510により発生される。フリップ・フ
ロップ510のD入力はNORゲート512の出力に接
続され、信号TIME_OUT、マスタ打切り信号M_
ABORT、およびANDゲート506の出力を受け
る。このため、データは、タイムアウトが検出されない
ならば有効であり、マスタ打切りサイクルが発せられ、
または再試行、切断Cまたはターゲット打切りサイクル
が存在する。信号VECT_RDYは、信号PCLKに
よりクロックされそして信号RESETにより消去され
る、D型フリップ・フロップ514により発生される。
フリップ・フロップ514のD入力はORゲート516
の出力に接続され、信号TIME_OUT、およびバス
・ベクトルにおけるPCI制御信号のひとつが状態を変
化したことを表示する信号CHANGE_STATEを
受ける。このため、PCIバス32上の制御信号が状態
を変える時またはタイムアウトが生じる時に、状態ベク
トル情報がベクトルFIFOにロードされる。
(BUS_HIST_DATA3[31:0]、BUS
_HIST_DATA2[31:0]、BUS_HIS
T_DATA1[15:0])は、バス・ヒストリFI
FOの第1のステージである、バス・ヒストリ・レジス
タ540の入力に与えられる。バス・ヒストリ501は
出力信号BUS_HIST_DATA1[79:0]
を、出力信号BUS_HIST_FIFO0[79:
0]を与えるレジスタ542に与え(パイプラインの第
2のステージ)る。両バス・ヒストリ・レジスタ540
と542は信号PCLKによりクロックされ、そして電
力良好信号SYNC_POWEROKがロウである時に
消去される。バス・ヒストリ・レジスタ540と542
は、ANDゲート518の出力がハイに駆動されるとき
にロードされる。ANDゲート518はイネーブル捕獲
ビットEN_CAPとバス・ヒストリ・レディー信号H
IST_RDYおよびCAP_ILLEG_PROT信
号(ORゲート519)のORを受ける。出力信号BU
S_HIST_FIFO0[79:0]BUS_HIS
T_FIFO1[79:0]は、マルチプレクサ52
0、522、そして524の0と1入力にそれぞれ与え
られる。マルチプレクサ520、522、そして524
はそれぞれ、読出しアドレス信号HIST_FIFO_
RD_ADDRにより選択される(バス・レジスタ50
2の出力を選択するためにロウで開始し、そして各逐次
の読出しでトグルされる)。マルチプレクサ520、5
22そして524は、出力信号BUS_HIST_RE
G3[31:0]、BUS_HIST_REG2[3
1:0]、そしてBUS_HIST_REG1「15:
0]をそれぞれ駆動する。
CT_DATA[24:0]は、バス・ベクトル・レジ
スタ544の入力に与えられ、その出力はバス・ベクト
ル・レジスタ546の入力にルートされる。バス・ベク
トル・レジスタ546の出力は、バス・ベクトル・レジ
スタ548の入力にルートされ、その出力はバス・ベク
トル・レジスタ550の入力に順番にルートされる。バ
ス・ベクトル・レジスタ0−3の各々は信号PCLKに
よりクロックされ、そして信号SYNC_POWERO
Kがロウである時に消去される。バス・ベクトル・レジ
スタは、ANDゲート521がハイにアサートされる時
にロードされる。ANDゲート521は信号EN_CA
Pおよび、信号VECT_RDYとCAP_ILLEG
_PROTのOR(ORゲート523)を受ける。バス
・ベクトル・レジスタ550、548、546および5
44は、出力信号BUS_VECT_FIFO0[2
4:0]、BUS_VECT_FIFO1[24:
0]、BUS_VECT_FIFO2[24:0]、そ
してBUS_VECT_FIFO3[24:0]をそれ
ぞれ生成し、その信号は、それぞれマルチプレクサ52
6の0、1、2、そして3入力に順番に与えられる。マ
ルチプレクサ526にアドレス信号VECT_FIFO
_RD_ADDR[1:0](2進値00で開始しそし
て各継続した読出しで増分される)の状態に基づきその
入力のひとつを選択させ、マルチプレクサ526の出力
は、信号BUS_VECT_REG[31:0]を与え
る。この結果、バス・ヒストリとバス状態ベクトル情報
は、信号HIST_RDYまたはVECT_RDYにそ
れぞれ応答し、または違法バス・プロトコル状態が検出
されるならば信号CAP_ILLEG_PROTのアサ
ートに応答して、捕獲される。
ンピュータ・システム10のパワーアップ時の初期の環
境設定においては、CPU14が、スロット36に関す
るメモリ空間及びPCIバス番号を予約する。なお、該
スロットは空(カード807が挿入されていない)また
はパワーダウンされているものである。通常の場合と同
様に、CPU14は、コンピュータ・システムが最初に
パワーアップしたときに存在するPCIバス(PCIバ
ス24、32a−b、及びスロット36に挿入されかつ
電力が供給されたカード807のPCIバス)に、PC
Iバス番号を割り当てる。PCI−PCIブリッジ回路
(PCI−PCIブリッジ26、48)はそれぞれ、そ
のコンフィギュレーション・レジスタ空間1252(図
62)において、下位(従属)のバス番号レジスタ12
18及び2次バス番号レジスタ1220を有する。下位
のバス番号レジスタ1218は、PCI−PCIブリッ
ジ回路の下流の最も大きいPCIバス番号である下位バ
ス番号を含み、2次バス番号レジスタ1220は、PC
I−PCIブリッジ回路に一番近いの下流のPCIバス
の番号である2次PCIバス番号を含む。したがって、
下位バス番号レジスタ1218及び2次バス番号レジス
タ1220に格納された値は、PCI−PCIブリッジ
回路の下流におけるPCIバス番号の範囲を規定する。
コンフィギュレーション・レジスタ空間1252はま
た、1次バス番号レジスタ1222を含んでいる。該レ
ジスタ1222は、PCI−PCIブリッジ回路に一番
近い上流のPCIバスの番号を含んでいる。システム・
コントローラ/ホスト・ブリッジ回路18もまた、下位
バス番号レジスタ1218及び2次バス番号レジスタ1
220を含んでいる。環境設定の後に、回路18の下位
バス番号レジスタ1218は、コンピュータ・システム
に存在する最も大きいPCIバス番号を含んでいる。回
路18の下位バス番号レジスタ1220は、ゼロのバス
番号を含み、これは、回路18の直後の下流のPCIバ
ス(PCIバス24)が常にゼロのバス番号に割り当て
られるからである。公知のシステムと相違して、CPU
14は、スロット36の内の初期的にはパワーダウンさ
れているかまたは空の1つのスロットが、1つ又は複数
の別のPCIバス(初期的にパワダウンされているスロ
ット36に挿入されたカード807に存在する)を、コ
ンピュータ・システム10がパワーアップされて環境設
定された後に、コンピュータ・システム10に導かれる
ことを、了解する。したがって、初期の環境設定の間、
CPU14はメモリ空間、I/O空間、及び、パワーダ
ウンまたは空のスロット36に対するPCIバス番号の
所定の番号(1または3)を予約する。このようにし
て、PCI−PCIブリッジ回路は、最も直前にパワー
アップされたカード807を収容するために再度環境設
定をする必要がない。直前にパワーアップされたカード
807のPCI−PCIブリッジ回路のみが、環境設定
される必要があるだけである。コンピュータ・システム
10の他のブリッジ回路は、何ら変更を要しない。リソ
ース予約プロセスの一部分として、ROM23に記憶さ
れかつメモリ20に書き込まれ(さらに書き込み保護さ
れた)Basic Input/Output Sys
tem(BIOS)は、スロット36に対して予約され
ているリソース範囲を特定する表を構築する、この表
は、バス番号、メモリ、及びシステム10に新規に追加
されるPCIデバイスを環境設定するために用いられる
I/Oリソース範囲を含んでいる。オペレーティング・
システムは、この表を用いてんどのリソースが予約され
ているか、新規のPCIデバイスを環境設定するために
どのリソースが使用可能かを決定する。
SSIGNと称される再起的なPCI環境設定ルーチン
において、CPUC14は、PCIバス番号を割り当
て、それに応じて、PCI−PCIブリッジ回路のコン
フィギュレーション・レジスタ1252をプログラムす
る。これは、CPU14が、PCIデバイスに関するP
CIバスを一度に1つ走査することによって、実行され
る。BUS ASSIGNルーチンは、ROM23に記
憶されたBIOSの部分であり、パワアアプ語の初期の
環境設定に用いられる。CPU14はまずブロック10
00において、サーチ・パラメータPCI BUSの値
をサーチ・パラメータCURRENT PCI BUS
の値に設定し、かつサーチ・パラメータFCN及びDE
Vを初期化する。パラメータPCI BUSは、CPU
14によって現時点で走査されているPCIバスのバス
番号を表しており、またBUS ASSIGNルーチン
がCPU14によって最初に実行された場合には、パラ
メータPCI BUSは0のバス番号を示すことにな
る。パラメータCURRENT PCI BUSは、C
PUによって割り当てることが可能な、次のPCIバス
番号を示し、BUS ASSIGNルーチンがCPU1
4によって最初に実行された時には、パラメータCUR
RENT PCI BUSは0のバス番号となる。パラメ
ータFCN及びDEVはそれぞれ、CURRENT P
CI BUS14によって現在走査されている、現在の
PCI機能及びPCIデバイスを示す。
て、パラメータPCI BUSがバス番号0であるかど
うかを判定し、そうであれば、CPU14は、ブロック
1002において、システム・コントローラ/ホスト・
ブリッジ回路18の2次バス番号レジスタ1220をゼ
ロにセットする。そしてCPU14はブロック1004
において、パラメータPCI BUSによって示される
PCIバス上のパワーダウンされた又は空の、次のPC
I−PCIブロック回路またはスロット36を見つけ出
す。次に見つけ出されたPCIデバイスがPCI−PC
Iブロック回路であるか、または存在していないか(パ
ワーダウンされているか又は空のスロット)を判定する
ために、CPU14は、PCIデバイス毎のコンフィギ
ュレーション空間に位置する1ワード・ベンダーIDレ
ジスタから、値を読み出す。値”hFFFF”(”h”
は、ヘキサデシマル表現であることを示す)が予約さ
れ、かついずれのベンダーによっても使用されない。ベ
ンダーIDレジスタからの読み出しにより、”hFFF
F”が読み出された場合には、これは、PCIデバイス
が存在しないことを表す。ブロック1006において、
パラメータPCI BUSによって示されたPCIバス
上にパワーダウンまたは空のPCI−PCIブロック回
路又はスロット36が存在しないことを、CPU14が
判定すると、BUS ASSIGNルーチンノ最初に戻
る。それ以外の場合は、CPU14は、他のPCI−P
CIブリッジ回路が存在するかを判定し、存在しない場
合には、CPU14は、ブロック1010において、パ
ワーダウンまたは空のスロット36が見いだされた時
に、パラメータCURRENT PCI BUSをを増
分し、そして、パワーダウン又は空の、次のPCI−P
CIブリッジ回路又はスロット36を検出する。このよ
うにすて、パラメータCURRENT PCI BUS
を増分することによって、CPU14は、パワーダウン
又は空のスロット36に対するバス番号を予約すること
ができる。なお、このようなスロット36に対して、1
つ又は複数のバス番号を予約してもよい。CPU14が
PCI−PCIブリッジ回路を見いだした場合は、CP
U14は、ブロック1012において、該PCI−PC
Iブリッジ回路の1次バス場合はをパラメータCURR
ENT PCI BUSに設定する。そしてブロック1
014において、CPU14は、パラメータCURRE
NT PCI BUSを増分し、PCI−PCIブリッ
ジ回路の2次バス番号を、該パラメータCURRENT
PCI BUSによって支持された新しいバス番号に
設定する。
4は、見いだしたPCI−PCIブリッジ回路の下位バ
ス番号を最大のPCIバス番号にせっていする。これ
は、下位バス番号レジスタ1218に書き込むことによ
って行われる。下位バス番号レジスタ1218に対する
値は一時的なものであり、したがって、パワーダウンま
たは空の、下流の別のPCI−PCIブリッジ回路又は
スロット36を、CPU14が見つけ出してプログラム
することが可能である。ブロック1022において、パ
ラメータPCI BUS、DEV、及びFCNを保存
し、かつBUS ASSIGNルーチンを再起的に呼び
出すことによって、CPU14はパワーダウンまたは空
のPCI−PCIブリッジ回路又はスロット36を捜し
出す。CPU14は次に、ブロック1024において、
パラメータPCI BUS、DEV、FCNの値を記憶
し、そして、BUS ASSIGNルーチンの最新のコ
ールを、CPU14によって割り当てられた次のPCI
バス番号のパラメータCURRENT PCI BUS
を更新するために、リターンする。CPU14は次に、
ブロック1026において、見いだされたPCI−PC
Iブリッジ回路の下位バス番号を更新するが、これは、
該下位バス番号をパラメータCURRENT PCI
BUSに設定することによって行われる。このようにし
て、見いだされたPCI−PCIブリッジ回路へのPC
Iバス番号の割り当て、下流におけるパワーダウンまた
は空の別のPCI−PCIブリッジ回路またはスロット
36へのPCIバス番号の割り当てが完了する。CPU
14は次にブロック1004において、パワーダウンP
CI BUSによって示されたPCIバス上のパワーダ
ウンまたは空のPCI−PCIブリッジ回路又はスロッ
ト36を見いだす。
番号が割り当てられた後、CPU14は、MEM AL
LOCと称するメモリ空間割り当てルーチンを実行し
て、パワーダウン又は空のPCIファンクション(fu
nction)又はスロット36に対してメモリ空間を
割り当てる。まずCPU14は、ブロック1028にお
いて、パワーダウン又は空のPCIファンクション又は
スロット36を見つけるときにCPU14を補助したパ
ラメータをサーチする。次にブロック1030におい
て、CPU14は、パワーダウン又は空のPCIファン
クション又はスロット36を見いだす。ブロック103
2において、パワーダウン又は空のPCIファンクショ
ン及びスロット36がすべてメモリ空間に割り当てられ
ていると判断した場合は、CPU14は、MEM AL
LOCルーチンから戻る。そうでない場合は、CPU1
4はブロック1032において、PCIファンクション
が見つけられたかを判定する。見つけられた場合には、
CPU14はブロック1038において、メモリ・リソ
ースをPCIファンクションによって指定されたように
割り当てる。見つけられなかった場合は、パワーダウン
又は空のスロット36の1つが見いだされたことであ
り、CPU14はブロック1036において、スロット
36に対する欠陥メモリ・サイズ及びメモリ・アライン
メント(配置)を割り当てる。該欠陥メモリ・サイズ
は、コンピュータ・システム10のパワーアップ前に予
め決定されたサイズ、または、コンピュータ・システム
10によって要求されたメモリ・リソースの決定後に定
められたサイズのいずれかである。メモリ空間を割り当
てるとき、CPU14は、見いだされたPCIファンク
ションの上流にあるPCI−PCIブリッジ回路のレジ
スタである、メモリ基準レジスタ1212及びメモリ制
限レジスタ1214をプログラムする。CPU14はま
た、対応するPCIデバイスの基準アドレスレジスタを
もプログラムする。そしてCPU14は、ブロック10
30において、パワーダウンまたは空である次のPCI
ファンクションまたはスロット36を捜し出す。
が割り当てられた後に、CPU14は、I/O ALL
OCと称するI/O空間割り当てルーチンを実行し、そ
れにより、空のPCIファンクションまたはスロット3
6に対してI/O空間を割り当てる。このルーチンにお
いては、CPU14はまず、ブロック1040におい
て、パワーダウンまたは空のPCIファンクションまた
はスロット36を見いだすときに用いたパラメータを捜
し出す。次にCPU14は、ブロック1042におい
て、パワーダウンまたは空である次のPCIファンクシ
ョンまたはスロット36を捜し出す。ブロック1044
において、パワーダウンまたは空のPCIファンクショ
ン及びスロット36がすべてI/O空間に割り当てられ
ていると判断した場合は、CPU14はI/O ALL
OCルーチンから抜け出す。そうでない場合は、ブロッ
ク1044において、PCIファンクションが見いださ
れたどうかを判定する。見いだされた場合は、CPU1
4は、該PCIファンクションによって示されるI/O
リソースを、ブロック1050において割り当てる。見
いだされなかった場合は、パワーダウンまたは空のスロ
ット36が見いだされたことであり、CPU14は、ブ
ロック1048において、該スロット36に対して欠陥
I/Oサイズ及びI/Oアラインメントを割り当てる。
該欠陥I/Oサイズは、コンピュータ・システム10の
パワーアップ前に予め決定されたサイズ、又はコンピュ
ータ・システム10によって要求されたI/Oリソース
の決定の後に定められたサイズのいずれかである。I/
O空間の割り当てにおいては、CPU14は、PCIフ
ァンクション又はスロット36の上流にあるPCI−P
CIブリッジ回路のレジスタである、I/O基準レジス
タ1208及びI/O制限レジスタ1210をプログラ
ムする。CPU14はまた、対応するPCIデバイスの
基準アドレス・レジスタをもプログラムする。そしてC
PU14は、ブロック1042において、パワーダウン
又は空である次ののPCIファンクション又はスロット
36を探す。
設定がなされた後、レバー802の1つがオープン(解
放)又はクローズ(閉鎖)されたことを示す割り込みが
発生すると、CPU14は、CARD INTと称する
割り込みサービス・ルーチンを実行する。まずブロック
1052において、CPU14は割り込みレジスタ80
0の内容を読みだして、レバー802がオープンされた
のかクローズされたのかを判定する。割り込みを生じた
レバー802がオープンされた場合は、CPU14はこ
のCARD INTルーチンを抜け出る。クローズされ
た場合は、CPU14は、スロット・イネーブル・レジ
スタ817にブロック1054において書き込み、そし
てスロット36及び該スロット36を挿入したカード8
07のパワーアップを初期化するために、SOビットを
設定する。そして、CPU14は、カード807のパワ
ーアップを待機する(不図示)。ブロック1055にお
いて、CPU14は、カード807のPCIバスにアク
セスする(存在する場合にのみ)。ブロック1056に
おいて、その時にパワーアップされたカード807がP
CIバス(及びPCI−PCIブリッジ回路)を備えて
いるかどうかを判定する。備えている場合は、ブリッジ
1057において、カード807が挿入されてパワーア
ップされたスロット36に対して予約されている、1
次、2次及び下位バス番号を決定する。続いて、ブリッ
ジ1058において、パワーアップされたカード807
のPCI−PCIブリッジ回路を環境設定する。そし
て、ブロック1060において、スロット36に対して
予約されたI/O位置、I/Oサイズ、及びメモリ空間
を決定する。CPU14は次に、ブロック1062にお
いて、パワーアップされたカード807のPCIコンフ
ィギュレーション・ヘッダ空間における基準アドレス・
レジスタに、書き込みを行う。次にブロック1064に
おいて、カード807のコンフィギュレーション空間に
おける割り込みピン・レジスタを読みだして、カード8
07が割り込み要求を有しているかどうかを判定する。
有している場合は、ブロック1068において、割り当
てられたIRQ番号を、カード807のコンフィギュレ
ーション空間における割り込みライン・レジスタに書き
込む。CPU14は次に、ブロック1070において、
カード807のコンフィギュレーション空間に位置する
カードのコマンド・レジスタをイネーブルし、カード8
07が、PCIバス32上のメモリ・アクセス及びI/
Oアクセスに対処できるようにする。次いでブロック1
072において、割り込みレジスタ800に書き込みを
行って割り込み要求をクリアし、かつブロック1074
において、カード807に対してソフトウエア・デバイ
ス・ドライバをロードする。
24と32の間のPCI−PCIブリッジを形成する。
しかし、各ブリッジ・チップは、独立して構成されなけ
ればならないコンフィギュレーション空間を含む。ひと
つの解決は、ブリッジを形成する独立デバイス2つのブ
リッジを扱うことであるが、それはBIOSコンフィギ
ュレーション・ルーチンの修正を要求するであろう。他
の解決は、コンフィギュレーション・ルーチンが、PC
Iバス24とケーブル28の間のPCI−PCIブリッ
ジとしてアップストリーム・ブリッジ・チップ26を構
成することができるようにバスとしてケーブル28を定
義することである。この第2の解決のひとつの利点は、
事実、2つのブリッジ・チップが実際にひとつのPCI
−PCIブリッジを形成する時に、標準PCIコンフィ
ギュレーション・サイクルがあたかも2つのPCI−P
CIブリッジであるかのようにブリッジ・チップ26と
48を構成するために実行されることができることであ
る。PCIバス上に2つのタイプのコンフィギュレーシ
ョン・トランザクションがある:タイプ0とタイプ1。
タイプ0コンフィギュレーション・サイクルは、該コン
フィギュレーション・サイクルが発生されるPCIバス
上のデバイスに対して意図されており、それに対しタイ
プ1コンフィギュレーション・サイクルはブリッジを経
てアクセスされる第2のPCIバス上のデバイスに対し
てターゲットにされている。図64は、タイプ0とタイ
プ1コンフィギュレーション・サイクルのアクセス・フ
ォーマットを例示している。タイプ0コンフィギュレー
ション・コマンドは、コンフィギュレーション・サイク
ル中にPCIアドレス・ビットAD[1:0]を00に
設定することにより特定化される。タイプ0コンフィギ
ュレーション・サイクルはPCI−PCIブリッジを渡
って前進されないが、タイプ0コンフィギュレーション
・トランザクションが発生されなかったバス上にローカ
ルを留める。タイプ1コンフィギュレーション・コマン
ドはアドレス・ビットAD[1:0]を2進値01に設
定することにより特定化される。タイプ1コンフィギュ
レーション・コマンドはPCI−PCIブリッジにより
PCIバス階層において何らかのレベルへと進められ
る。結局、PCI−PCIブリッジはタイプ1コマンド
をタイプ0コマンドに変換してPCI−PCIブリッジ
の第2のインターフェースに接続されたデバイスを構成
する。ブリッジのコンフィギュレーション・レジスタ1
05または125に記憶されたコンフィギュレーション
・パラメータは、1次(主要)PCIインターフェース
(1次バス番号)と2次PCIインターフェース(2次
バス番号)と、最高の番号を付されたブリッジへのPC
Iバス従属を表示する従属バス番号を識別する。バス番
号は、PCIコンフィギュレーション・ルーチンBUS
_ASSIGN(図58)によりセットされる。例え
ば、アップストリームのブリッジ・チップ26におい
て、1次バス番号はバス24のバス番号であり、2次バ
ス番号はケーブル28の番号であり、そして従属バス番
号は2次PCIバス32の番号または存在するならばP
CIバスの番号である。ダウンストリームのブリッジ・
チップ48において、1次バス番号はケーブル・バス2
8の番号であり、2次バス番号はPCIバス32の番号
であり、そして従属バス番号はPCIバス階層において
より深層におかれたPCIバスの番号である。
ション・サイクルの検出は、それぞれアップストリーム
のブリッジ・チップ26またはダウンストリームのブリ
ッジ・チップ48においてPCIターゲット・ブロック
103または121において論理により取り扱われる。
アップストリーム・バス24上に検出されたタイプ0の
コンフィギュレーション・サイクルはANDゲート27
6により発生された信号TYP0_CFG_USをアサ
ートすることにより指示される。ANDゲート276は
信号UPSTREAM_CHIP、IDSEL(コンフ
ィギュレーション・トランザクションの間にチップ選
択)、CFGCML(検出されたコンフィギュレーショ
ン・サイクル)およびADDR00(ビット1と0は共
に零)を受信する。ダウンストリーム・ブリッジ・チッ
プ48により検出されたタイプ0コンフィギュレーショ
ン・サイクルはANDゲート278により発生された信
号TYP0_CFG_CYC_DSにより指示され、該
ANDゲート278は信号S1_BL_IDSEL(ダ
ウンストリーム・ブリッジ・チップ48用のIDSEL
信号)、信号CFGCMD、信号ADDR00、信号M
STR_ACTIVE(ブリッジ・チップ48は第2の
PCIバス32上のマスタであることを指示してい
る)、そして信号UPSTREAM_CHIPの反転状
態を受信する。
におけるPCIターゲット103によるタイプ1コンフ
ィギュレーション・サイクルの検出は、ANDゲート2
80から信号TYP1_CFG_CYC_USをアサー
トすることにより指示され、ANDゲート280は信号
CFGCMD、ADDR01(それぞれ、ビット1と0
はロウとハイ)、そしてUPSTREAM_CHIPを
受信する。ダウンストリーム・バス32上のタイプ1コ
ンフィギュレーション・サイクルの検出はANDゲート
282から信号TYP1_CFG_CYC_USをアサ
ートすることにより指示され、ANDゲートは信号CF
GCMD、ADDR01、そして信号UPSTREAM
_CHIPの反転状態を受信する。タイプ0のトランザ
クションを受信するブリッジ・チップは、コンフィギュ
レーション・トランザクション・アドレスにおいてレジ
スタ番号フィールドを使用し、適切なコンフィギュレー
ション・レジスタをアクセスする。機能番号フィールド
252は、コンフィギュレーション・トランザクション
中の多重機能デバイスにおいて実行されるべき8つの機
能のひとつを特定する。PCIデバイスは多重機能であ
りそしてハードデスク・ドライブ・コントローラ、メモ
リ・コントローラ、ブリッジ等のような機能を有する。
ブリッジ・チップ26がアップストリーム・バス26上
にタイプ1コンフィギュレーション・トランザクション
を見つける時に、いずれかのダウンストリームにトラン
ザクションを送り、トランザクションをタイプ0トラン
ザクションに翻訳し、該トランザクションを特定のトラ
ンザクションに変換するか、または該トランザクション
を無視することができる(コンフィギュレーション・レ
ジスタ105または125に記憶されたバス番号パラメ
ータに基づいて)。もしトランザクションが送出される
ならば、それは宛先ブリッジ・チップのPCIマスタに
至り、タイプ1トランザクションを対応する適当なトラ
ンザクションに変換する。もしブリッジ・チップがトラ
ンザクション自体を取扱うならば、そのときそれはPC
Iバス上に信号DEVSELをアサートすることにより
応答し、そして通常遅延トランザクションとしてそのト
ランザクションを取扱う。
番号フィールド260はPCI階層において唯一のPC
Iバスを選択する。もし信号PASS_TYP1_DS
がANDゲート284によりアサートされるならば、P
CIターゲット・ブロック103は、アップストリーム
・チップ26からダウンストリーム・ブリッジ・チップ
48へ下ってタイプ1コンフィギュレーション・サイク
ルを渡す。ANDゲート284は、信号TYP1_CF
G_CYC_USと信号IN_RANGEを受信する
(バス番号フィールド260は記憶された第2のバス番
号と等しいかそれより大きく、記憶された従属バス番号
に等しいかそれよりも小さい)。ANDゲート284の
他方の入力はORゲート286の出力に接続され、該O
Rゲート286はANDゲート288の出力に接続され
たひとつの入力と、信号SEC_BUS_MATCHの
反転状態を受信する他方の入力を有する。このため、タ
イプ1サイクルが検出されるならば、信号IN_RAN
GEがアサートされそしてバス番号フィールド260は
記憶された第2のバス番号と一致せず、信号PASS_
TYP1_DSがアサートされる。バス・フィールド2
60が記憶された第2のバス番号と一致しないならば、
そのときダウンストリーム・バスまたはその下のデバイ
スがアドレスされる。信号SEC_BUS_MATCH
がハイにアサートされるならばANDゲート288がそ
の出力をハイにアサートし、そしてデバイス番号フィー
ルド258は、タイプ1のコンフィギュレーション・サ
イクルのターゲットはダウンストリーム・ブリッジ・チ
ップ48のコンフィギュレーション空間であることを指
示する。もしこれが真であるならば、タイプ1コンフィ
ギュレーション・トランザクションは、タイプ0コンフ
ィギュレーション・トランザクションへの変換のために
ダウンストリーム・ブリッジ・チップ48に向けてケー
ブル48の下方へ送られる。ダウンストリーム・ブリッ
ジ・チップ48におけるPCIターゲット121はトラ
ンザクションに応答し、そしてタイプ0トランザクショ
ンに従ってダウンストリーム・ブリッジ・コンフィギュ
レーション・レジスタ125を読出しそして書込む。ダ
ウンストリーム・チップの制御ピンは駆動され、そして
読出しおよび書込みデータは、あたかもタイプ0トラン
ザクションがダウンストリーム上で実行しているように
ダウンストリームPCIバス32上に見える。しかし、
ダウンストリーム・バス32上の各IDSELは、デバ
イスが実際にタイプ0トランザクションに応答しないよ
うにブロックされている。
28)に等しいバス番号フィールドを有するがデバイス
0をアドレスしない(ケーブル・バス28上の他のデバ
イス用にサーチする)、アップストリーム・ブリッジ・
チップ26におけるPCIターゲット・ブロック103
がそのアップストリーム・バス24上のタイプ1のコン
フィギュレーション・トランザクションを検出するなら
ば、そのとき、ターゲット・ブロック103は1次バス
26上のトランザクションを無視する。2次バス番号と
従属バス番号(IN_RANGE)の範囲外のバス番号
フィールド260を有する、2次PCIバス32上のタ
イプ1コンフィギュレーション書込みトランザクション
(WR_high)をPCIタイプ121が検出するな
らば、そして、デバイス番号258、機能番号256、
レジスタ番号254が特殊サイクル(SP_MATCH
high)を指示するならば、そのとき信号PASS
_TYP1_USがANDゲート290によりアサート
される。ANDゲート290は、信号TYP1_CFG
_CYC_US、信号SP_MATCH、書込み/読出
しストローブWR_および信号IN_RANGEの反転
状態を受信する。アップストリーム・ブリッジ・チップ
26におけるPCIマスタ101がこのようなサイクル
を受信する時に、1次PCIバス24上の特殊サイクル
を実行する。コンフィギュレーション・トランザクショ
ンは一定の条件のもとでブリッジ・チップにより無視さ
れる。アップストリーム・ブリッジ・チップ26におけ
るターゲット・ブロック103がPCIバス24(その
アップストリーム・バス)上のタイプ1コンフィギュレ
ーション・トランザクションを検出するならば、そして
バス番号フィールド260が2次バス番号より小さいか
またはブリッジ・チップのコンフィギュレーション空間
に記憶された従属バス番号よりも大きいならば、そのと
きターゲット・ブロック103はトランザクションを無
視する。ダウンストリーム・ブリッジ・チップ48にお
けるターゲット・ブロック121が2次PCIバス32
(そのダウンストリーム)上のタイプ1コンフィギュレ
ーション・トランザクションを検出し、そしてバス番号
フィールド260が2次バス番号に等しいか大きくそし
てブリッジ・チップのコンフィギュレーション空間にお
いて記憶された従属バス番号に等しいか小さいならば、
そのときターゲット・ブロック121はトランザクショ
ンを無視する。加えて、もしタイプ1コマンドがタイプ
1コマンドにおいて特定化されたバス番号にかかわらず
特殊サイクルト・ランザクションへの変換を特定しない
ならば、アップストリームを進むタイプ1のコンフィギ
ュレーション・コマンドは無視される。
または123は、ケーブル28により転送されたコンフ
ィギュレーション・サイクルを監視する。もし、ダウン
ストリーム・ブリッジ・チップ48におけるPCIマス
タ123がアップストリーム・ブリッジ・チップ26か
らのタイプ1のコンフィギュレーション・トランザクシ
ョンを検出するならば、ブリッジ・チップ48のコンフ
ィギュレーション空間に記憶された1次バス番号および
2次バス番号とバス番号フィールド260とを比較す
る。もし、バス番号フィールド260が記憶された1次
バス番号(即ち、ケーブル28)または記憶された2次
バス番号(ダウンストリーム・バス32に直接接続され
たデバイスをアドレス指定する)のいずれかが一致する
ならば、ダウンストリーム・ブリッジ・チップ48は,
バス上のコンフィギュレーション・トランザクションを
渡すように、トランザクションをタイプ0コンフィギュ
レーション(AD[1:0]=00)に変換する。タイ
プ0トランザクションは、PCIマスタ・ブロック12
3によりPCIバス32上で実行される。次のものは、
タイプ1コンフィギュレーション・トランザクションに
おいてフィールドについて実行されるトランザクション
である。タイプ1コンフィギュレーション・トランザク
ションにおけるデバイス番号フィールド258はPCI
マスタ123によりデコードされ、図65のテーブルに
定義されるように、2次バス32上に変換されたタイプ
0トランザクションにおける唯一のアドレスを発生す
る。デバイス番号フィールド258からデコードされた
第2のアドレス・ビットAD[31:16]はPCIマ
スタ123により使用され、2次PCIバス32上にデ
バイス用の適切なチップ選択信号IDSELを発生す
る。アドレス・ビットAD[15]は1に等しく、その
ときブリッジ・チップ48はアサートされないローに全
てのビットAD[31:16]を維持する(IDSEL
はアサートされない)。レジスタ番号フィールド254
とタイプ1のコンフィギュレーション・コマンドの機能
(ファンクション)番号フィールド256はタイプ0の
コンフィギュレーション・コマンドに修正されずに渡さ
れる。機能番号フィールド256は、8つの機能のひと
つを選択し、そしてレジスタ番号フィールド254は、
選択された機能のコンフィギュレーション・レジスタ空
間におけるダブル・ワードを選択する。ダウンストリー
ム・ブリッジ・チップ48に対してターゲットされたタ
イプ1のコンフィギュレーション・トランザクションの
ために、ブリッジ・チップ48は、あたかもダウンスト
リーム・バス32上のデバイスをアドレス指定するよう
に、タイプ1トランザクションをタイプ0トランザクシ
ョンに変換する。しかしAD[31:16]ピンは、第
2のPCIバス・デバイスがIDSELを受信しないよ
うに零にセットされる。PCIマスタ・ロジック123
はANDゲート262により駆動される信号TYP1_
TO_INTOをアサートすることによりこれを検出す
る。ANDゲート262は、信号CFG_CMD(コン
フィギュレーション・コマンド・サイクルを指示す
る)、ORゲート264の出力、信号UPSTREAM
_CHIP(タイプ1からタイプ0への変換はアップス
トリーム・ブリッジ・チップ26においてディスエーブ
ルされる)の反転状態を受信する。もし信号PRIM_
BUS_MATCHがアサートされるならば(バス番号
フィールド260が記憶された1次バス番号に一致す
る)、またはもし記憶された主要バス番号CFG2P_
PRIM_BUS_NUM[7:0]が零に等しいなら
ば(ブリッジ・チップ48のコンフィギュレーション空
間において1次バス番号がまだシステムBIOSにより
構成されていなく、そして現在のタイプ1コンフィギュ
レーション・サイクルが内部コンフィギュレーション空
間に進みブリッジ・チップ48の1次バス番号をプログ
ラムすることを指示する)、ORゲート264は、その
出力をハイにアサートする。信号TYP1_TO_EX
TOがANDゲート266によりアサートされ、そして
記憶された2次のバス番号への一致に応答する。AND
ゲート266の入力は信号CFG_CMD、信号SEC
_BUS_MATCH、信号UPSTREAM_CHI
Pの反転状態、および信号SP_MATCHの反転状態
を受信する(特殊サイクルではない)。信号TYP1_
TO_EXTOは、変換されたタイプ0コンフィギュレ
ーション・トランザクションが第2のPCIバス32に
ターゲットされていることを指示する。
ルチプレクサ274の1入力に与えられる。その2入力
はローに固定され、そしてマルチプレクサ274の0入
力と3入力はD型フリップ・フロップ270から信号L
TYP1_TO_INTOを受ける。マルチプレクサ2
74の選択入力S1は、信号CMD_LATCH(PC
Iバス32上の新しいサイクル用にアサートされたFR
AME_)を受信し、そして選択入力S0は信号P2Q
_START_PULSE(ハイである時にアドレスが
PCIバス32に送られたことを指示する)を受信す
る。マルチプレクサ274の出力は、信号PCLKによ
りクロックされそして信号RESETにより消去され
る、フリップ・フロップ270のD入力に接続されてい
る。第2のバス・デバイスへのIDSEL信号は、その
入力に信号Q2P_AD[15](図6のテーブル1に
従って必要とされる非変換)、TYP1_TO_INT
OそしてLTYP1_TO_INTOを受ける。信号L
TYP1_TO_INTOは信号BLOCK_IDSE
Lのアサーション(断定)を拡張する。バス番号フィー
ルド260が記憶された2次バス番号より大きくそして
記憶された従属バス番号より小さい等しい場合の、アッ
プストリーム・ブリッジ・チップ26からのタイプ1コ
ンフィギュレーション・トランザクションをダウンスト
リーム・ブリッジ・チップ48におけるPCIマスタ1
23が受信するならば、そのときPCIマスタ・ブロッ
ク123はタイプ1のトランザクションを第2のPCI
バス32へ変化されずに進める。第2のPCIバス32
上の他のデバイス、例えば他のブリッジ・デバイス32
3(図26B)はタイプ1のコンフィギュレーション・
トランザクションを受信しそしてその第2のバス(PC
Iバス325)へ進めるであろう。PCIマスタがアッ
プストリーム・ブリッジ26からタイプ1コンフィギュ
レーション書込みトランザクションを検出しそしてバス
・フィールド260が記憶された第2のバス番号と一致
しするならば、そしてもしデバイス番号フィールド25
8、機能番号フィールド256そしてレジスタ番号フィ
ールド254が特殊サイクル(SP_MATCHはハ
イ)を指示するならば、特殊サイクルへのタイプ1コン
フィギュレーション・トランザクションが実行される。
これは、信号TYP1_TO_SPCYCをハイにアサ
ートするANDゲート268により指示される。AND
ゲート268はSP_MATCHとQ2P_CBE
[0](特殊サイクル用のコマンド・ビット)を受信す
る。タイプ1のコンフィギュレーション・トランザクシ
ョンからのデータは宛先バス上の特殊サイクル用のデー
タになる。特殊サイクル中のアドレスは無視される。
タを計算するための情報を記憶する回路を含む。パラメ
ータはバス・ユーティライゼーション(utilizatio
n)、バス効率(efficiency)及び読み出しデータ効率
を含む。バス・ユーティライゼーションは、所定のグロ
ーバル期間に対してのバスがトランザクションを行うの
にビジー(busy、使用中)な時間の比率である。バス効
率は、バスがビジーの期間の間のクロック期間の合計数
に対してのデータ転送に実際に使用されたPCIクロッ
ク期間の数の比率である。読み出しデータ効率は、ブリ
ッジ・チップ48によってマスタに対して取り出された
データのバイトの合計数に対しての遅延完了待ち行列
(DCQ)144(図4)からの2次PCIバス32上
のデバイスによってアクセスされた読み出しデータのバ
イトの数の比率であるバス・モニタ127に記憶された
情報は所望されるパラメータを計算するためにシステム
のソフトウエアによって検索される。図67Aを参照す
ると、グローバル期間タイマ1300(32ビット幅で
あり得る)はその間に多種のパラメータが計算される時
間の合計期間をカウントする。タイマ1300は16進
値FFFFFFFFにプログラムされる。もしPCIク
ロックPCICLK2が33MHzで動作しているなら
ば、タイマ期間は約2分である。タイマ1300が0に
減ると、信号GL TIME EXPIREをアサート
する。
的バス・ビジー・カウンタ1302A〜Gを含み、カウ
ンタのうちの6つは2次PCIバス32の6つのスロッ
トにそれぞれ対応し、1つはSIO50に対応する。バ
ス・ビジー・カウンタ1302A〜Gは信号GL TI
ME EXPIREがアサートされたときにクリアされ
る。どのバス・デバイスが2次バス32の制御を有する
かに依存して、バス・ビジー・カウンタ1302は2次
PCIバスのFRAME 信号又はIRDY 信号がアサ
ートされるPCIクロック毎に増分する。7つのカウン
タのうちの適切なものが許可信号GNT[7:1] の
1つによって選択される。即ち、例えば、信号GNT
[1] がローにアサートされてSIOが2次PCIバ
ス32上の現在のマスタであることを示すときにバス・
ビジー・カウンタ1302Aが選択される。2次PCI
バス32の6つのスロットとSIO50にそれぞれ対応
する7つのデータ・サイクル・カウンタ1306A〜G
は、その間にPCIバス32上でのトランザクションの
間にマスタとターゲットの間でデータ転送が実際に発生
する時間を追従(監視)する。選択されたデータ・サイ
クル・カウンタ1306は2次バスのIRDY 信号及
びTRDY 信号が両方ともローにアサートされるPC
Iクロック毎に増分される。データ・サイクル・カウン
タ1306A〜Gは信号GL TIME EXPIRE
がアサートされるときにクリアされる。DCQバッファ
にロードされたデータの量を追従(監視)するために6
つのDCQデータ・カウンタ1310A〜Fがバス・モ
ニタ127に含まれる。6つのDCQデータ・カウンタ
1310A〜Fは2次PCIバス32の6つのスロット
に対応する。選択されたDCQデータ・カウンタ131
0は遅延読み出し完了(DRC)データがケーブル28
から受信されてプリフェッチ・バッファへロードされる
PCIクロック毎に増分する。
ータ・カウンタ1314A〜Fは2次PCIバス32の
6つのスロットによって実際に使用されたDCQ144
にロードされるデータの量を監視するために用いられ
る。選択された使用済みDCQデータ・カウンタ131
4は2次バス・マスタが対応するDCQバッファからデ
ータを読み出すPCIクロック毎に増分する。DCQデ
ータ・カウンタ1310A〜F及び使用済みDCQデー
タ・カウンタ1314A〜Fは実際に転送されたバイト
の数に関係なくデータ・サイクル毎に増分する。殆どの
場合、各データ・サイクルで転送されるバイトの数は4
である。グローバル期間タイマ1300がタイムアウト
して信号GL TIME EXPIREをアサートする
と、幾つかの事象が発生する。まず、グローバル期間タ
イマ1300はその元のカウント値を再ロードし、その
値は16進値FFFFFFFFである。バス・ビジー・
カウンタ1302A〜G、データ・サイクル・カウンタ
1306A〜G、DCQデータ・カウンタ1310A〜
F及び使用済みDCQデータ・カウンタ1314A〜F
を含む他のすべてのカウンタの内容はそれぞれレジスタ
1304、1308、1312及び1316にロードさ
れる。カウンタ1302、1306、1310及び13
14は次に0にクリアされる。グローバル期間タイマ1
300は次に、元の値が再ロードされた後に再びカウン
トを開始する。信号GL TIME EXPIREは割
り込み受信ブロック132に供給され、これがこの割り
込みをケーブル28を経て割り込み出力ブロック114
へ送り、このブロックはCPU14への割り込みを発生
する。CPU14は、バスの性能分析を行うために割り
込みハンドラを呼び出すことによって割り込みに応答す
る。割り込みハンドラはレジスタ1304、1308、
1312及び1316の内容にアクセスし、6つの2次
バス・スロット及びSIO50に関連するバス・ユーテ
ィライゼーション、バス効率、プリフェッチ効率のパラ
メータを含む幾つかのパラメータを計算する。バス・ユ
ーティライゼーション・パラメータはグローバル期間タ
イマ1300の初期値、16進値FFFFFFFF、に
よって割ったバス・ビジー・カウンタ1302の値であ
る。即ち、バス・ユーティライゼーションは、その間に
バス・マスタがバス・トランザクションを行う合計グロ
ーバル時間のパーセンテージである。
ーズ(相)と少なくとも1つのデータ・フェーズとを含
む。バス・マスタはFRAME をアサートしてアクテ
ィブのバス・トランザクションの開始及び期間を示す。
信号FRAME がデアサートされると、これはトラン
ザクションが最後のデータ相にあること又はトランザク
ションが完了されたことを示す。信号IRDY は、バ
ス・マスタがバス・トランザクションの現在のデータ相
を完了することができることを示す。書き込みの間、信
号IRDY は有効データがバスにあることを示す。読
み出しの間、信号IRDY はマスタが読み出しデータ
を受け入れる準備をしたことを示す。アドレス指定され
たPCIターゲットは、信号TRDY をアサートし、
ターゲットがトランザクションの現在のデータ・フェー
ズを完了できることを示すことによって、バス・トラン
ザクションに応答する。読み出しの間、信号TRDY
は有効データがバスに存在することを示す。書き込みの
間、信号TRDY はターゲットがデータを受け入れる
準備をしたことを示す。待ち状態がアドレス・フェーズ
とデータ・フェーズの間及びバス・トランザクションの
連続するデータ・フェーズの間に挿入され得る。アドレ
ス・フェーズ又は待ち状態の間、実際のデータの転送は
発生しない。実際のデータ転送は信号IRDY とTR
DY の両方がローにアサートされたときにのみ発生す
る。データ転送のバスの効率を判定するために、割り込
みハンドラは、データ・サイクル・カウンタ1306の
値をバス・ビジー・カウンタ1302の値で割る。バス
効率は、その間にバス・トランザクションの間のデータ
転送が実際に発生する時間の量を表す。この値を計算す
ることによって、コンピュータ・システムは、多くの待
ち状態を必要とするため非効率的であるターゲット・デ
バイスを知るようにされる。
6からデータを取り出し(フェッチし)、そのデータを
DCQ144に記憶することができる。DCQ144は
8つのバッファを有し、その各々が2次バス・マスタに
割り当て可能である。例えば、1次バスでターゲットに
された2次バス・マスタによって発生されたメモリ読み
出し多重トランザクションは、ブリッジ26及び48が
メモリ20から8つのキャッシュ・ラインを取り出して
DCQ144へロードするようにさせる。メモリ読み出
しライン・トランザクションは、PCI−PCIブリッ
ジ26、48がメモリ20から1ラインのデータを取り
出すようにする。更に、図93及び図98と関連して説
明したように、PCI−PCIブリッジ・チップ26、
48は読み出しプロモーションを行うことができ、これ
は2次バス・マスタからの読み出し要求をより大きなブ
ロックのデータに対する読み出し要求に変換する。これ
らの場合において、すべてではない取り出されたデータ
がバス・マスタによって使用される可能性が存在する。
その場合、読み出されないデータはすてられ、それが読
み出しデータ効率を減少する。読み出しデータ効率を測
定することによって、システムの設計者は、どのように
してバス・マスタが1次バス24からブリッジ・チップ
26、48によって取り出された読み出しデータを用い
ているかを理解できるようになる。
は、もし信号DCQ DATA RECEIVED
[X](X=2〜7)がアサートされ、4バイトのデー
タがケーブル28からマスタXと関連するDCQバッフ
ァによって受信されたことを示すならば、クロックPC
LKの立ち上がりで増分する。カウンタ1310はカウ
ント値DCQ DATA[X][20:0](X=2〜
7)を出力し、これは信号GL TIME EXPIR
Eがアサートされたときに零にクリアされる。カウンタ
1314は、信号DCQ DATA TAKEN[X]
(X=2〜7)がアサートされ、4バイトのデータがマ
スタXと関連するDCQバッファから読み出されること
を示す場合に、クロックPCLKの立ち上がりで増分す
る。カウンタ1314は信号GL TIME EXPI
REがハイのときにクリアされる。2次PCIバス32
上のデバイスによって実際に使用されたDCQデータの
量を判定するために、プリフェッチ効率が割り込みハン
ドラによって計算される。これは、DCQデータ・カウ
ンタ1310の値に対しての使用済みDCQデータ・カ
ウンタ1314の値の比率をとることによつて判定され
る。プリフェッチ・バッファへ又はそこから転送される
データのすべてが4バイト幅であるわけではないが、そ
の比率は、すべてのデータ・フェーズが同数のバイトを
転送すると仮定することによって近似する。計算された
パラメータに応答して、ユーザ又はコンピュータ製造者
はコンピュータ・システムの性能をより理解できる。例
えば、バス効率が低いならば、関与するPCIデバイス
をコンピュータ製造者によって別の部品と置換すること
も可能である。DCQ読み出しデータ効率を知ることに
よって、コンピュータ製造者がDCQフェッチ・アルゴ
リズムを効率を向上させるために変更することも可能と
なる。
ト36a〜fに挿入された6つの拡張カードは、CPU
14に従属するバス・デバイス1704〜1708及び
I2Oプロセッサ177に従属するバス・デバイス17
01〜1702をもたらす。すべての従属バス・デバイ
ス1701〜1708は共通のPCIバス32に接続さ
れるが、I2O従属デバイス1701〜1702は、C
PU14に対しては、I2Oプロセッサ1700を通じ
てのみアドレス指定可能であり且つPCIバス32を通
じて直接にアドレス指定可能ではないように現れる。従
って、PCIバス32はI2O従属デバイス・バス及び
CPU14従属デバイス・バスの両方として働く。CP
U14がI2O従属デバイス1701〜1702をPC
Iバス32デバイスと認識するのを避ける目的のため
に、ブリッジ・チップ48は、I2O従属デバイス17
01〜1702がCPU14によって実行されるコンフ
ィギュレーション・サイクルに応答するのを避けるため
にロジック1710(図109)を含む。また、拡張ボ
ックス30は、I2O従属デバイス1701〜1702
で開始される割り込み要求がCPU14へ伝搬するのを
マスクするためにブリッジ・チップ48の割り込み受信
ブロック132と協働するマルチプレキシング回路17
12を含む。I2O従属バス・デバイス1701〜17
02から発せられる割り込み要求は割り込み受信ブロッ
ク132によってI2Oプロセッサ1700へ再送信さ
れる。I2Oプロセッサ1700はI2O従属デバイス1
701〜1702を構成(コンフィギュレーション)
し、I2O従属デバイス1701〜1702から発せら
れた割り込み要求を受信して処理し、CPU14によっ
て指示されるようにI2O従属デバイスの動作を制御す
る。
プの後且つカード807がパワーアップされたとき(即
ち、新しいバス・デバイスがPCIバス32に導入され
たとき)に、I2Oプロセッサ1700はPCIバス3
2をスキャンしてI2O従属バス・デバイスを識別す
る。バス・デバイスのタイプ(I2O従属バス・デバイ
ス又はCPU14従属デバイス)を識別する目的のため
に、I2Oプロセッサ1700はPCIバス32上でコ
ンフィギュレーション・サイクルを実行して各バス・デ
バイスのデバイス識別(アイデンティフィケーション)
ワード(Device ID(デバイスID))を読み出す。デ
バイスIDはすべてのPCIデバイスのコンフィギュレ
ーション・ヘッダ・スペースに位置する。I2Oプロセ
ッサ1700はこのスキャンの結果を、CPU14によ
ってアクセス可能なI2Oプロセッサ1700内の6ビ
ットI2O従属レジスタ1729(図112)に記憶す
る。レジスタ1729のビット0から5はそれぞれスロ
ット36a〜fと関連する。1つのビットに対する
「1」の値は関連するスロット36がCPU14に従属
するバス・デバイスを有することを示し、1つのビット
に対する「0」の値は関連するスロット36がI2Oプ
ロセッサ1700に従属するバス・デバイスを有するこ
とを示す。I2Oプロセッサ1700はスロット36a
〜fの何れにも挿入することができる。どのスロット3
6がI2Oプロセッサを含むかを、もし含む場合に識別
するために、CPU14はPCIバス32をスキャン
し、バス32に接続されたバス・デバイスのデバイスI
Dを読み出す。CPU14は、I2Oプロセッサ170
0内部のホスト・コンフィギュレーション・イネーブル
・ビット1726(図113)が、I2Oプロセッサ1
700がバス32上のI2O従属デバイス1701〜1
702の識別を完了したことをCPU14に示すまで、
バス32上の何れのデバイス1704〜1708の構成
(コンフィギュレーション)も試みない。ホスト・コン
フィギュレーション・イネーブル・ビット1726は、
CPU14によってバス32上のデバイスのコンフィギ
ュレーションをディスエーブルにするための「0」の値
(パワーアップでの値)を有し、バス32上のCPU1
4従属デバイス1704〜1708のコンフィギュレー
ションをイネーブルにするための「1」の値を有する。
CPU14がバス32上のバス・デバイスを構成(コン
フィギュレーション)するとき、CPU14は以下に説
明するようにロジック1720によってマスクされるた
めI2O従属デバイス1701〜1702を「見な
い」。
ョン・ビット1726がセットされた後、CPU14は
I2O従属レジスタ1729の内容を読み出し、読み出
した内容をブリッジ・チップ48の6ビットI2O従属
レジスタ1728(図110)へ転送する。レジスタ1
728はバス・デバイスの従属状態(subordinate stat
us)(I2Oプロセッサ1700従属又はCPU14従
属)をレジスタ1729と同じ様式で示す。CPU14
がレジスタ1728に書き込みを行う前に、レジスタ1
728はすべてに1を含み(パワーアップでの値)、こ
れはCPU14がI2Oプロセッサ1700に対してバ
ス32をスキャンすることを可能にする。割り込み受信
ブロック132はレジスタ1728を用いて、処理を行
うためにブロック132によって受信したどの割り込み
要求がCPU14へ送られるべきか、及びブロック13
2によって受信したどの割り込み要求がI2Oプロセッ
サ1700へへ送られるべきかを識別する。更に、ロジ
ック1710は、CPU14からI2O従属デバイス1
701〜1702のCPU14による認識をブロックす
るためにレジスタ1728の内容を用いる。どのバス・
デバイスがI2Oプロセッサであるかを、何れかがそう
である場合に割り込み受信ブロック132に示すため
に、CPU14は、そのビット0〜5がスロット36a
〜fにそれぞれ対応するI2Oスロット・レジスタ17
30の1ビットをセットする。ブリッジ・チップ48内
に位置するこのレジスタ1730に対して、1つのビッ
トに対する「0」の値は関連するスロット36がI2O
プロセッサを持たないことを示し、1つのビットに対す
る「1」の値は関連するスロット36がI2Oプロセッ
サを持つことを示す。
10は、コンフィギュレーション・サイクルの間にバス
32上のデバイスを選択するために信号AD IDSE
L[5:0]をバス32のアドレス/データ・ラインに
供給する多重ビットANDゲート1711を含む。AN
Dゲート1711は、I2O従属レジスタ1728のビ
ットを示し且つそれに対応するビットを有する6ビット
信号ENABLE[5:0]を受信する。また、AND
ゲートは、コンフィギュレーション・サイクルの間にバ
ス32上のデバイスを選択するためにブリッジ・チップ
48によって供給される典型的アイデンティフィケーシ
ョン選択信号SLOT IDSEL[5:0]を受信す
る。従って、信号ENABLE[5:0]は、コンフィ
ギュレーション・サイクルがCPU14によって実行さ
れるときにPCIバス32から信号SLOT IDSE
L[5:0]を選択的にマスクするために用いられる。
スロット36a〜dからの割り込み要求の宛て先の制御
のために、各スロット36によって供給される4つの標
準PCI割り込み要求信号(INTA#、INTB#、
INTC#、INTD#)がマルチプレキシング回路1
712(図107)に供給される。マルチプレキシング
回路1712はスロット36から受信したPCI割り込
み要求信号を直列(シリアル)化し、その信号を4つの
時分割多重化シリアル割り込み要求信号、INTSDA
#、INTSDB#、INTSDC#、INTSDD
#、を経由で割り込み受信ブロック132に供給する。
ブロック132はCPU14に対する割り込み要求信号
を時分割多重化シリアル割り込み要求信号INTSDC
ABLE#を経由で割り込み出力ブロック114に供給
する。割り込み受信ブロック132はI2Oプロセッサ
1700に対する割り込み要求信号を、バス32のPC
I・INTC#ライン1709を経由で供給される時分
割多重化シリアル割り込み要求信号INTSDIIO#
経由でI2Oプロセッサ1700に供給する。割り込み
出力ブロック114はCPU14が宛て先とされた割り
込み要求をPCIバス24の1つ又はそれ以上の標準P
CI割り込み要求ライン(線)(INTA#、INTB
#、INTC#、INTD#)に供給する。ブリッジ・
チップ26の外部の割り込みコントローラ1900はP
CIバス24のPCI割り込み要求線から割り込み要求
を受信する。割り込みコントローラ1900は割り込み
要求(PCIバス24上の他のデバイスからの割り込み
要求を含み得る)を優先化し、それらをCPU14に供
給する。割り込み出力ブロック114は、以下に説明す
るように、割り込み要求信号をPCIバス24の割り込
み要求線に非同期で供給するか(非同期モードのと
き)、又は割り込み要求信号をPCIバス24のINT
A#線にシリアルに供給するか(シリアル・モードのと
き)の何れかである。
シリアル・データ信号は、8つの連続的タイム・スライ
ス(T0〜T7)を含む割り込みサイクル1850を経
由でそれらのデータを表す。各タイム・スライスの期間
はPCIクロック信号CLKの1サイクルである。各タ
イム・スライスは1つ又はそれ以上の割り込み要求信号
の状態の「スナップショット」を表す。図121に示さ
れるように、信号INTSDA#はスロット36a〜f
からのサンプリングされたINTA#割り込み要求信号
を表す。信号INTSDB#はスロット36a〜fから
のサンプリングされたINTB#割り込み要求信号を表
す。信号INTSDC#はスロット36a〜fからのサ
ンプリングされたINTC#割り込み要求信号を表す。
信号INTSDD#はスロット36a〜fからのサンプ
リングされたINTD#割り込み要求信号を表す。割り
込み信号INTSDA#〜D#を信号INTSDIIO
#に組み合わせるために、割り込み受信ブロック132
は信号INTSDA#〜D#を共に論理的にAND演算
し、その間CPU14を宛て先とする割り込み要求信号
を同時にマスクする。同様に、割り込み信号INTSD
A#〜D#を信号INTSDCABLE#に組み合わせ
るために、割り込み受信ブロック132は信号INTS
DA#〜D#を共に論理的にAND演算し、その間CP
U14を宛て先とする割り込み要求信号を同時にマスク
する。別の割り込みサイクル1850が始まったときに
割り込み出力ブロック114に指示するために、割り込
み受信ブロック132は同期信号INTSYNCCAB
LE#を割り込み出力ブロック114に供給する。信号
INTSYNCCABLE#の立ち下がり又は負の縁部
は、信号INTSDCABLE#を経由で送信された割
り込みサイクル1850のタイム・スライスT0がCL
K信号の次の正の縁部で開始することを示す。信号IN
TSYNCIIO#は、信号INTSDIIO#を経由
で送信される割り込みサイクル1850の来るタイム・
スライスT0を示すために類似の様式で用いられる。信
号INTSYNCIIO#は割り込み受信ブロック13
2によってバス32のPCI・INTD#ライン171
3を経由でI2Oプロセッサ1700に供給される。別
の割り込みサイクル1850を割り込み信号INTSD
A#〜D#を経由でいつ送信するかをマルチプレキシン
グ回路1712に指示するために、割り込み受信ブロッ
ク132は同期信号INTSYNC#をマルチプレキシ
ング回路1712に供給する。信号INTSYNC#の
立ち下がり又は負の縁部は、マルチプレキシング回路1
712がCLK信号の次の正の縁部で信号INTSDA
#〜D#のタイム・スライスT0を送信するべきである
ことを示す。
シング回路1712は、信号INTSDA#、INTS
DB#、INTSDC#及びINTSDD#をそれぞれ
供給する4つのマルチプレクサ1741〜1744を含
む。マルチプレクサ1741〜1744の選択(セレク
ト)入力は、信号INTSDA#〜D#のタイム・スラ
イスT0〜T7を示すために用いられるタイム・スライ
ス信号SLICEIN[2:0]を受信する。スロット
36からのINTA〜D#割り込み要求信号はそれぞれ
にマルチプレクサ1741〜1744の入力に供給され
る。信号SLICEIN[2:0]は、PCIクロック
信号CLKの正の縁部でクロックされる3ビット・カウ
ンタ1745の出力によって供給される。割り込み同期
信号INTSYNC#はカウンタ1745のクロックさ
れたイネーブル入力によって受信される。信号INTS
YNC#の負の縁部でカウンタ1745は零にリセット
される(SLICEIN[2:0]が0と等しい)。カ
ウンタ1745はSLICEIN[2:0]信号が
「7」と等しくなるまでSLICEIN[2:0]信号
によって示された値を増分し、カウンタ1745がふた
たびINTSYNC#信号によってリセットされるまで
とどまる。
イスT0〜T7を追従(監視)するために、割り込み受
信ブロック132はCLK信号の正の縁部でクロックさ
れる3ビット・カウンタ1750を含む。カウンタ17
50は、3×8デコーダ1752の選択入力で受信され
る出力信号SL1[2:0]を供給する。デコーダ17
52は8ビット信号G CNTR[7:0]を、信号I
NTSDIIO#及びINTSDCABLE#のタイム
・スライスを示す信号G CNTR[7:0]のアサー
トされたビットとともに供給する。INTSYNC#信
号は、G CNTR[7:0]最上位ビット、G CN
TR[7]を受信するインバータ1754の出力によっ
て供給される。INTSYNC#信号はタイム・スライ
スT7の間にローにパルス化(パルシング、pulsing)
されるが、割り込み受信ブロック132は、INTSY
NC#信号をローにパルス化する前に割り込みサイクル
1850の終了の後にCLK信号の幾つかのサイクルを
交互に待つことができる。信号INTSYNCCABL
E#及びINTSYNCIIO#は両方ともビットG
CNTR[0]を受信するインバータ1755の出力に
よって提供される。CPU14に対する更なる割り込み
要求信号CAY INT#はSIO回路50によって供
給される。CAY INT#信号はタイム・スライスT
0の間にINTSDA#〜D#と論理的にAND演算さ
れる。CAY INT#信号はSIO CMPL#信
号、SI INTR#信号及びI2C INT#信号を
受信するANDゲート1756の出力によって供給され
る。SIO CMPL#信号はSIO回路50がシリア
ル出力プロセスを完了したときにアサートされる、又は
ローに駆動される。I2C INT#信号はブリッジ・
チップ48に接続されたI2Cバス(示さず)を通じて
トランザクションの完了を示すためにアサートされる、
又はローに駆動される。さもなければI2C INT#
信号はデアサートされる、又はハイに駆動される。割り
込み要求をマスクするために、割り込み受信ブロック1
32は4つのマスク信号、MASKA、MASKB、M
ASKC及びMASKDを発生する。信号INTSDA
#の特定のタイム・スライス(T0〜T7)の間にMA
SKA信号がアサートされる又はハイに駆動されると
き、その特定のタイム・スライスの間のシリアル割り込
み信号INTSDA#によって示される割り込み要求は
CPU14からマスクされる。特定のタイム・スライス
の間にもしMASKA信号がデアサートされる又はロー
に駆動されると、シリアル割り込み信号INTSDA#
によって示される割り込み要求はI2Oプロセッサ17
00によってマスクされる。MASKB〜D信号は信号
INTSDB#〜D#によって供給されるマスク割り込
み要求と類似に機能する。
758はMASKA信号を供給する。マルチプレクサ1
758の選択入力はSL1[2:0]を受信する。マル
チプレクサ1758の8つの入力はI2O従属レジスタ
1728の対応するビットを示す反転されたIIO S
UB[5:0]信号を受信する。信号IIO SUB
[5:0]はマルチプレクサ1758の適当な入力に接
続され、それによって、INTSDA#信号が特定のス
ロット36に対する割り込み状態を示すとき、MASK
A信号はそのスロット36に対するレジスタ1728の
関連するビットを同時に示す。3つの他のマルチプレク
サ1760、1762及び1764はそれぞれ信号MA
SKB、MASKC及びMASKDを供給する。MAS
KA信号の生成と同様に、信号IIO SUB[5:
0]はマルチプレクサ1760、1762及び1764
の適当な入力に接続され、それによって、MASKB、
MASKC及びMASKDは信号INTSDB#、IN
TSDC#及びINTSDD#によって表されるスロッ
トに関連するレジスタ1728のビットを示す。マルチ
プレクサ1760〜1764はそれらの選択入力で信号
SL1[2:0]を受信する。
ック132はまた、ライン1709及び1713が信号
INTSDIIO#及びINTSYNCIIO#をそれ
ぞれI2Oプロセッサ1700に供給するために用いら
れるので、I2Oプロセッサ1700のスロット割り込
みラインによって供給されるINTD#信号及びINT
DC#信号をマスクするために用いられる2つのマスク
信号、IIOTS D及びIIOTS Cを供給する2
つのマルチプレクサ1768及び1770を含む。マル
チプレクサ1768及び1770の両方の選択入力は信
号SL1[2:0]を受信し、マルチプレクサ1768
及び1770の信号入力はI2Oスロット・レジスタ1
730の対応するビットを示す信号IIOSLOT
[5:0]を受信する。信号IIOSLOT[5:0]
はマルチプレクサ1768及び1770の適当な入力に
選択され、それによって、信号INTSDC#〜D#信
号が特定のスロット36に対する割り込み状態を示すと
き、マルチプレクサ1768及び1770によって選択
されたIIOSLOT[5:0]信号はそのスロット3
6に対するレジスタ1730の関連するビットを同時に
示す。
ト1772〜1782は信号INTSDA#〜INTS
DD#を組み合わせるため及び選択された割り込み要求
信号をCPU14からマスクするために用いられる。A
NDゲート1772は反転されたECC ERR DO
WN#信号(ケーブル送信においてチップ48bによっ
て検出されたエラーを示すためにアサートされる)及び
ビットG CNTRL[0]を受信する。ANDゲート
1774は反転されたINTSDA#信号及びMASK
A信号を受信する。ANDゲート1776は反転された
INTSDB#信号及びMASKB信号を受信する。A
NDゲート1778は反転されたINTSDC#信号、
MASKC信号及びIIOTS C信号を受信する。A
NDゲート1780は反転されたINTSDC#信号、
MASKD信号及びIIOTS D信号を受信する。AN
Dゲート1782は反転されたCAY INT信号及び
G CNTRL信号を受信する。ANDゲート1772
〜1782の出力は、出力がDタイプのフリップフロッ
プ1786の信号入力へ接続されるORゲート1784
への入力として接続される。フリップフロップ1786
はCLK信号の正の縁部でクロックされ、フリップフロ
ップ1786のセット入力はRST信号を受信する。フ
リップフロップ1786の反転出力はINTSDCAB
LE#信号を供給する。4つのANDゲート1790〜
1796がINTSDA#〜D#信号を組み合わせるた
め及び選択された割り込み要求信号をI2Oプロセッサ
1700からマスクするために用いられる。ANDゲー
ト1790は反転されたINTSDA#信号及び反転さ
れたMASKA信号を受信する。ANDゲート1790
の別の入力はNORゲート1802の出力に接続され、
これはタイム・スライスT0及びT7の間INTSDA
#信号をマスクする。なぜなら、カード割り込み要求が
これらのタイム・スライスに含まれないからである。N
ORゲート1802はビットG CNTRL[0]及び
G CNTRL[7]を受信する。ANDゲート179
2は反転されたINTSDB#信号及び反転されたMA
SKB信号を受信する。ANDゲート1792の別の入
力はNORゲート1804の出力に接続され、これはタ
イム・スライスT1及びT4の間INTSDB#信号を
マスクする。なぜなら、カード割り込み要求がこれらの
タイム・スライスに含まれないからである。NORゲー
ト1802はビットG CNTRL[1]及びG CN
TRL[4]を受信する。
SDC#信号及び反転されたMASKC信号を受信す
る。ANDゲート1794の別の入力はNORゲート1
806の出力に接続され、これはタイム・スライスT2
及びT5の間INTSDC#信号をマスクする。なぜな
ら、カード割り込み要求がこれらのタイム・スライスに
含まれないからである。NORゲート1806はビット
G CNTRL[2]及びG CNTRL[5]を受信
する。ANDゲート1796は反転されたINTSDD
#信号及び反転されたMASKD信号を受信する。AN
Dゲート1796の別の入力はNORゲート1808の
出力に接続され、これはタイム・スライスT3及びT6
の間INTSDD#信号をマスクする。なぜなら、カー
ド割り込み要求がこれらのタイム・スライスに含まれな
いからである。NORゲート1808はビットG CN
TRL[3]及びG CNTRL[6]を受信する。A
NDゲート1790〜1796の出力は、出力がDタイ
プのフリップフロップ1800の信号入力へ接続される
ORゲート1798への入力として接続される。フリッ
プフロップ1800はCLK信号の正の縁部でクロック
され、フリップフロップ1800のセット入力はRST
信号を受信する。フリップフロップ1800の反転出力
はINTSDIIO#信号を供給する。
ブロック114はカウンタ1745と共通の設計の3ビ
ット・カウンタ1820を含む。カウンタ1820は信
号CLKの正の縁部でクロックされ、出力信号G CN
TR2[2:0]を供給し、INTSYNC#信号によ
ってリセットされた後に0から7までカウントを開始す
る。INTSYNCCPU#信号を供給するために、割
り込み出力ブロック114はCLK信号の正の縁部でク
ロックされるDタイプのフリップフロップ1822を含
む。フリップフロップ1822のセット入力はRST信
号を受信し、フリップフロップ1822の信号入力はI
NTSYNCCABLE#信号を受信する。フリップフ
ロップ1822の非反転出力はINTSYNCCPU#
信号を供給する。INTSDCPU#信号を供給するた
めに、割り込み出力ブロック114はCLK信号の正の
縁部でクロックされるDタイプのフリップフロップ18
24を含む。フリップフロップ1824のセット入力は
RST信号を受信し、フリップフロップ1824の信号
入力はINTSDCABLE#信号を受信する。フリッ
プフロップ1824の非反転出力はINTSDCPU#
信号を供給する。割り込み受信ブロック114によって
受信された割り込み要求は非同期又はシリアルで割り込
みコントローラ1900に供給される。非同期モードに
おいて、図122に示されるように、割り込み要求はP
CIバス24の4つのPCI割り込みラインにマップさ
れる(一般に「バーバー・ポーリング(barber polin
g)」と呼ばれる)。
される割り込み情報を保持するために、割り込み出力ブ
ロック114は8ビット・レジスタ1826を含む。す
べての信号入力はINTSDCABLE#信号を受信す
る。ビット0〜7のロード・イネーブル入力はビットG
CNTR[0]〜G CNTR[7]をそれぞれ受信
する。従って、例えば、タイム・スライスT4の間、ビ
ット3にはINTSDCABLE#信号によって表され
る値がロードされる。ビット0(INT A1信号によ
って表される)及びビット4(INT A2信号によっ
て表される)はCPUINTA#信号にマップされる。
ビット1(INT B1信号によって表される)及びビ
ット5(INT B2信号によって表される)はCPU
INTB#信号にマップされる。ビット2(INT C
1信号によって表される)及びビット6(INT C2
信号によって表される)はCPUINTC#信号にマッ
プされる。ビット3(INT D1信号によって表され
る)及びビット7(INT D2信号によって表される)
はCPUINTD#信号にマップされる。4つのORゲ
ート1828〜1834は信号CPUINTA#、CP
UINTB#、CPUINTC#及びCPUINTD#
を供給し、それらはPCIバス24のPCI割り込みラ
インINTA#、INTB#、INTC#及びINTD
#にそれぞれ供給される。ORゲート1828はAND
ゲート1836の出力に接続された1つの入力を有す
る。ANDゲートは反転されたCM信号を受信する。信
号CMはブリッジ・チップ26のコンフィギュレーショ
ン・レジスタのビットによって供給され、アサートされ
る又はハイに駆動されることによって非同期モードを示
し、デアサートされる又はローに駆動されることによっ
て同期モードを示す。また、ANDゲート1836は信
号INT A1、信号INT A2及び信号ECC E
RR UP信号(ケーブル送信におけるエラーを示すた
めに用いられる)を受信する。
8の出力に接続された入力を有する。ANDゲート18
38はCM信号及びINTSDCPU#信号を受信す
る。ANDゲート1838の別の入力はORゲート18
48の出力に接続される。ORゲート1848はECC
ERR UP信号及びビットG CNTR2[0]を
受信する。ORゲート1830はANDゲート1840
の出力に接続された1つの入力と、ANDゲート184
2の出力に接続された1つの入力とを有する。ANDゲ
ート1840は反転されたCM信号、信号INT B1
及び信号INT B2を受信する。ANDゲート184
2は信号CM及び反転されたビットG CNTR2
[0](シリアル・モードの間に「sync」信号を割
り込みコントローラ1900に供給するために用いられ
る)を受信する。ORゲート1832はANDゲート1
844の出力に接続された1つの入力と、CM信号を受
信する1つの入力とを有する。ANDゲート1844は
反転されたCM信号、信号INT C1及び信号INT
C2を受信する。ORゲート1834はANDゲート
1846の出力に接続された1つの入力と、CM信号を
受信する1つの入力とを有する。ANDゲート1846
は反転されたCM信号、信号INT D1及び信号IN
T D2を受信する。
のブロック図である。
ブロック図である。
のブロック図である。
ムのブロック図である。
のブロック図である。
データを伝送するための、各ブリッジ・チップのマスタ
・ケーブル・インタフェースのブロック図である。
号のタイミング・チャートである。
ための、各ブリッジ・チップのスレーブ・ケーブル・イ
ンタフェースのブロック図である。
る受信用ロジックへの入力及び出力ポインタを生成する
ロジックのブロック図である。
る信号のタイミング・チャートである。
ブル・データの関係を示すタイミング・チャートであ
る。
ッドとフリップ・フロップの配置のブロック図である。
の図である。
ンザクションに関連するケーブル信号によって伝送され
る情報のタイプを表すテーブルの図である。Bは、デュ
アル・アドレス・サイクル・トランザクションに関連す
るケーブル信号によって伝送される情報のタイプを表す
テーブルの図である。
図である。
ビット生成用のパリティ−チェック・マトリクスの図で
ある。
生成用のシンドローム・テーブルの図である。
ン・スキームを表す状態図である。Bは、2レベル・ア
ービトレーション・スキームを示す状態図である。
図である。
図である。
ン状態マシンの状態図である。
ト)信号の生成を表すテーブルの図である。
示ビットを生成するロジックのブロック図である。
回路の論理図である。Bは、多層のバスをもつコンピュ
ータ・システムのブロック図である。
面図である。B及びCは、レバー回路の略図である。
グ状態の検出に応答して呼び出されるマスク不可能割り
込みハンドラのフローチャートである。
によって呼び出されるBIOSルーチンのフローチャー
トである。
クアップ事象に応答して呼び出されるBIOS分離ルー
チンのフローチャートである。
ロック図である。
ッチャにおけるロジックの状態図である。
る。
バス状態ベクトルFIFOの論理図である。
なときにその旨を示すための準備完了信号を生成する回
路の論理図である。
にバス番号を割り当てるルーチンのフローチャートであ
る。
を割り当てるルーチンのフローチャートである。
割り当てるルーチンのフローチャートである。
チンのフローチャートである。
レーション・スペースのブロック図である。
である。Bは、バス番号割り当てツリーの図である。
ョン・トランザクションを示すブロック図である。
ングを表すテーブルの図である。
フィギュレーション・サイクルを処理する回路の論理図
である。
に情報を記憶する回路のブロック図である。Bは、プリ
フェッチ・カウンタのブロック図である。
る。
ック図である。
の略図である。
込み待ち行列の略図である。
込み待ち行列の略図である。
込み待ち行列の略図である。
込み待ち行列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
列の略図である。
ブルの図である。
ブルの図である。
ブルの図である。
ブルの図である。
ブルの図である。
ブルの図である。
ブルの図である。
ブルの図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
ェースの略図及び状態遷移図である。
す略ブロック図である。
ック図である。
すグラフである。
である。
る。
す略ブロック図である。
Claims (20)
- 【請求項1】 コンピュータ・システムにおいて、 第1のデータ・バスに接続された第1のデータ記憶デバ
イスと、 第2のデータ・バスに上にデータ要求を提供する要求側
デバイスと、 第1のデータ・バスに要求を送り、データ記憶デバイス
から要求されたデータを受取るブリッジ・デバイスであ
って、要求されたデータを一時的に記憶するデータ記憶
バッファと、要求側デバイスが該バッファに記憶された
データ以外のデータに対する新たな要求を提供するとき
に、該バッファからのデータをフラッシュするバッファ
管理要素とを備えたブリッジ・デバイスとを含むことを
特徴とするコンピュータ・システム。 - 【請求項2】 請求項1記載のコンピュータ・システム
において、要求側デバイスがバッファからデータの一部
を取得した場合にのみ、バッファ管理要素がデータをフ
ラッシュすることを特徴とするコンピュータ・システ
ム。 - 【請求項3】 請求項1記載のコンピュータ・システム
において、バッファ管理要素が、要求側デバイスにより
特に要求されたデータをフラッシュしないことを特徴と
するシステム。 - 【請求項4】 請求項1記載のコンピュータ・システム
において、バッファ管理要素はまた、別のデバイスがデ
ータを要求側デバイスに書込むときに、バッファからデ
ータをフラッシュすることを特徴とするコンピュータ・
システム。 - 【請求項5】 請求項1記載のコンピュータ・システム
において、バッファ管理要素は、新たな要求が読出し要
求を含むときにのみ、バッファをフラッシュすることを
特徴とするシステム。 - 【請求項6】 請求項1記載のコンピュータ・システム
において、バッファ管理要素は、要求側デバイスが多数
のトランザクションを一度に保持することができないと
きにのみ、新たな要求と同時にバッファをフラッシュす
ることを特徴とするコンピュータ・システム。 - 【請求項7】 請求項1記載のコンピュータ・システム
において、ただ1つのバッファが要求側デバイスにより
要求されるデータを記憶するために用いられることを特
徴とするコンピュータ・システム。 - 【請求項8】 請求項1記載のコンピュータ・システム
において、第2のデータ・バスがPCIバスであること
を特徴とするコンピュータ・システム。 - 【請求項9】 請求項1記載のコンピュータ・システム
において、ブリッジ・デバイスがPCI間ブリッジであ
ることを特徴とするコンピュータ・システム。 - 【請求項10】 請求項1記載のコンピュータ・システ
ムにおいて、要求が遅延した読出し要求を含むことを特
徴とするコンピュータ・システム。 - 【請求項11】 コンピュータ・システムにおいて、 第1のPCIバスに接続されたデータ記憶デバイスと、 メモリ・デバイスからデータを読出す要求を提供する、
第2のPCIバスに配置されたPCIデバイスと、 第1のPCIバスに読出し要求を送り、かつデータ記憶
バッファに要求されたデータを一時的に記憶するPCI
間ブリッジであって、PCIデバイスが異なるデータに
対する新たな読出し要求を提供するとき、あるいは別の
デバイスがPCIデバイスに対するデータ書込み要求を
提供するときにのみ、バッファからデータをフラッシュ
するバッファ管理要素を備えたPCI間ブリッジと含む
ことを特徴とするコンピュータ・システム。 - 【請求項12】 請求項11記載のコンピュータ・シス
テムにおいて、PCIデバイスが1つ以上のトランザク
ションを同時に保持することができない場合にのみ、バ
ッファ管理要素がバッファをフラッシュすることを特徴
とするコンピュータ・システム。 - 【請求項13】 第1のデータ・バスにおけるデータ記
憶デバイスと、第2のデータ・バスにおける、データ要
求を出力する要求側デバイスとを備えるコンピュータ・
システムにおいて実行される方法において、 一時的記憶バッファにデータ記憶デバイスから要求され
たデータを格納するステップと、 要求側デバイスが一時的記憶バッファに格納されたデー
タ以外のデータに対する新たな要求を出力するときに、
該バッファをフラッシュするステップとを含むことを特
徴とする方法。 - 【請求項14】 請求項13記載の方法において、該方
法はさらに、別のデバイスがデータを要求側デバイスに
書込むときに、バッファをフラッシュするステップを含
むことを特徴とする方法。 - 【請求項15】 請求項13記載の方法において、デー
タが要求側デバイスにより特に要求されなかった場合に
のみ、一時的記憶バッファがフラッシュされることを特
徴とする方法。 - 【請求項16】 請求項13記載の方法において、要求
側デバイスが一時的記憶バッファからデータの一部を取
得した場合にのみ、該バッファがフラッシュされること
を特徴とする方法。 - 【請求項17】 請求項16記載の方法において、要求
側デバイスがデータを別のデバイスに書込むときでさ
え、一時的記憶バッファにデータを残すステップを含む
ことを特徴とするコンピュータ・システム。 - 【請求項18】 請求項16記載の方法において、要求
側デバイスが複数のトランザクションを同時に保持する
ことができない場合にのみ、一時的記憶バッファのフラ
ッシュが生じることを特徴とする方法。 - 【請求項19】 請求項18記載の方法において、該方
法はさらに、要求側デバイスが複数のトランザクション
を同時に保持することができないかどうかを自動的に決
定するステップを含むことを特徴とするコンピュータ・
システム。 - 【請求項20】 請求項19記載の方法において、開始
するバスがPCIバスであることを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US658704 | 1996-06-05 | ||
US08/658,704 US5987539A (en) | 1996-06-05 | 1996-06-05 | Method and apparatus for flushing a bridge device read buffer |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10124450A true JPH10124450A (ja) | 1998-05-15 |
Family
ID=24642331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9162089A Pending JPH10124450A (ja) | 1996-06-05 | 1997-06-05 | データ・バッファ・フラッシュ機能を備えたコンピュータ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5987539A (ja) |
EP (1) | EP0817088A3 (ja) |
JP (1) | JPH10124450A (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141757A (en) * | 1998-06-22 | 2000-10-31 | Motorola, Inc. | Secure computer with bus monitoring system and methods |
US7734852B1 (en) | 1998-08-06 | 2010-06-08 | Ahern Frank W | Modular computer system |
US6154803A (en) * | 1998-12-18 | 2000-11-28 | Philips Semiconductors, Inc. | Method and arrangement for passing data between a reference chip and an external bus |
US6647487B1 (en) * | 2000-02-18 | 2003-11-11 | Hewlett-Packard Development Company, Lp. | Apparatus and method for shift register rate control of microprocessor instruction prefetches |
US6594719B1 (en) * | 2000-04-19 | 2003-07-15 | Mobility Electronics Inc. | Extended cardbus/pc card controller with split-bridge ™technology |
US6513089B1 (en) | 2000-05-18 | 2003-01-28 | International Business Machines Corporation | Dual burst latency timers for overlapped read and write data transfers |
US6687779B1 (en) | 2000-07-14 | 2004-02-03 | Texas Instruments Incorporated | Method and apparatus for transmitting control information across a serialized bus interface |
US20030093608A1 (en) * | 2001-11-09 | 2003-05-15 | Ken Jaramillo | Method for increasing peripheral component interconnect (PCI) bus thoughput via a bridge for memory read transfers via dynamic variable prefetch |
US20040003164A1 (en) * | 2002-06-27 | 2004-01-01 | Patrick Boily | PCI bridge and data transfer methods |
US7136239B2 (en) * | 2002-09-20 | 2006-11-14 | Seagate Technology Llc | NRZ pipeline servo while reading or writing |
CN100514318C (zh) * | 2007-07-30 | 2009-07-15 | 威盛电子股份有限公司 | 桥接器以及电子系统的数据清理方法 |
US9451680B2 (en) * | 2013-01-29 | 2016-09-20 | Koninklijke Philips N.V. | Method of controlling a lighting system and a lighting system |
US10075284B1 (en) * | 2016-01-21 | 2018-09-11 | Integrated Device Technology, Inc. | Pulse width modulation (PWM) to align clocks across multiple separated cards within a communication system |
US10528352B2 (en) | 2016-03-08 | 2020-01-07 | International Business Machines Corporation | Blocking instruction fetching in a computer processor |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5569830A (en) * | 1978-11-20 | 1980-05-26 | Toshiba Corp | Intelligent terminal |
EP0334627A3 (en) * | 1988-03-23 | 1991-06-12 | Du Pont Pixel Systems Limited | Multiprocessor architecture |
JPH03188546A (ja) * | 1989-12-18 | 1991-08-16 | Fujitsu Ltd | バスインターフェイス制御方式 |
US5455913A (en) * | 1990-05-14 | 1995-10-03 | At&T Global Information Solutions Company | System and method for transferring data between independent busses |
US5454093A (en) * | 1991-02-25 | 1995-09-26 | International Business Machines Corporation | Buffer bypass for quick data access |
US5483641A (en) * | 1991-12-17 | 1996-01-09 | Dell Usa, L.P. | System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities |
JPH0789340B2 (ja) * | 1992-01-02 | 1995-09-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置 |
CA2080210C (en) * | 1992-01-02 | 1998-10-27 | Nader Amini | Bidirectional data storage facility for bus interface unit |
US5768548A (en) * | 1992-04-15 | 1998-06-16 | Intel Corporation | Bus bridge for responding to received first write command by storing data and for responding to received second write command by transferring the stored data |
US5491811A (en) * | 1992-04-20 | 1996-02-13 | International Business Machines Corporation | Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory |
US5579530A (en) * | 1992-06-11 | 1996-11-26 | Intel Corporation | Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus |
JP2531903B2 (ja) * | 1992-06-22 | 1996-09-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュ―タ・システムおよびシステム拡張装置 |
US5363485A (en) * | 1992-10-01 | 1994-11-08 | Xerox Corporation | Bus interface having single and multiple channel FIFO devices using pending channel information stored in a circular queue for transfer of information therein |
US5519839A (en) * | 1992-10-02 | 1996-05-21 | Compaq Computer Corp. | Double buffering operations between the memory bus and the expansion bus of a computer system |
US5463753A (en) * | 1992-10-02 | 1995-10-31 | Compaq Computer Corp. | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller |
US5535395A (en) * | 1992-10-02 | 1996-07-09 | Compaq Computer Corporation | Prioritization of microprocessors in multiprocessor computer systems |
US5381528A (en) * | 1992-10-15 | 1995-01-10 | Maxtor Corporation | Demand allocation of read/write buffer partitions favoring sequential read cache |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5396602A (en) * | 1993-05-28 | 1995-03-07 | International Business Machines Corp. | Arbitration logic for multiple bus computer system |
US5623633A (en) * | 1993-07-27 | 1997-04-22 | Dell Usa, L.P. | Cache-based computer system employing a snoop control circuit with write-back suppression |
US5613075A (en) * | 1993-11-12 | 1997-03-18 | Intel Corporation | Method and apparatus for providing deterministic read access to main memory in a computer system |
US5455915A (en) * | 1993-12-16 | 1995-10-03 | Intel Corporation | Computer system with bridge circuitry having input/output multiplexers and third direct unidirectional path for data transfer between buses operating at different rates |
US5559800A (en) * | 1994-01-19 | 1996-09-24 | Research In Motion Limited | Remote control of gateway functions in a wireless data communication network |
US5471590A (en) * | 1994-01-28 | 1995-11-28 | Compaq Computer Corp. | Bus master arbitration circuitry having improved prioritization |
US5535341A (en) * | 1994-02-24 | 1996-07-09 | Intel Corporation | Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation |
GB2286910B (en) * | 1994-02-24 | 1998-11-25 | Intel Corp | Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer |
US5530933A (en) * | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
TW400483B (en) * | 1994-03-01 | 2000-08-01 | Intel Corp | High performance symmetric arbitration protocol with support for I/O requirements |
US5586297A (en) * | 1994-03-24 | 1996-12-17 | Hewlett-Packard Company | Partial cache line write transactions in a computing system with a write back cache |
US5528766A (en) * | 1994-03-24 | 1996-06-18 | Hewlett-Packard Company | Multiple arbitration scheme |
US5623700A (en) * | 1994-04-06 | 1997-04-22 | Dell, Usa L.P. | Interface circuit having zero latency buffer memory and cache memory information transfer |
US5522061A (en) * | 1994-04-14 | 1996-05-28 | Hewlett-Packard Company | Read concurrency through transaction synthesis |
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
US5535340A (en) * | 1994-05-20 | 1996-07-09 | Intel Corporation | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge |
US5687347A (en) * | 1994-09-19 | 1997-11-11 | Matsushita Electric Industrial Co., Ltd. | Data providing device, file server device, and data transfer control method |
US5548730A (en) * | 1994-09-20 | 1996-08-20 | Intel Corporation | Intelligent bus bridge for input/output subsystems in a computer system |
US5524235A (en) * | 1994-10-14 | 1996-06-04 | Compaq Computer Corporation | System for arbitrating access to memory with dynamic priority assignment |
US5553265A (en) * | 1994-10-21 | 1996-09-03 | International Business Machines Corporation | Methods and system for merging data during cache checking and write-back cycles for memory reads and writes |
US5555383A (en) * | 1994-11-07 | 1996-09-10 | International Business Machines Corporation | Peripheral component interconnect bus system having latency and shadow timers |
US5664124A (en) * | 1994-11-30 | 1997-09-02 | International Business Machines Corporation | Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols |
US5625779A (en) * | 1994-12-30 | 1997-04-29 | Intel Corporation | Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge |
US5594882A (en) * | 1995-01-04 | 1997-01-14 | Intel Corporation | PCI split transactions utilizing dual address cycle |
US5568619A (en) * | 1995-01-05 | 1996-10-22 | International Business Machines Corporation | Method and apparatus for configuring a bus-to-bus bridge |
US5630094A (en) * | 1995-01-20 | 1997-05-13 | Intel Corporation | Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions |
US5596729A (en) * | 1995-03-03 | 1997-01-21 | Compaq Computer Corporation | First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus |
US5664150A (en) * | 1995-03-21 | 1997-09-02 | International Business Machines Corporation | Computer system with a device for selectively blocking writebacks of data from a writeback cache to memory |
US5619661A (en) * | 1995-06-05 | 1997-04-08 | Vlsi Technology, Inc. | Dynamic arbitration system and method |
US5634138A (en) * | 1995-06-07 | 1997-05-27 | Emulex Corporation | Burst broadcasting on a peripheral component interconnect bus |
US5694556A (en) * | 1995-06-07 | 1997-12-02 | International Business Machines Corporation | Data processing system including buffering mechanism for inbound and outbound reads and posted writes |
US5710906A (en) * | 1995-07-07 | 1998-01-20 | Opti Inc. | Predictive snooping of cache memory for master-initiated accesses |
US5649175A (en) * | 1995-08-10 | 1997-07-15 | Cirrus Logic, Inc. | Method and apparatus for acquiring bus transaction address and command information with no more than zero-hold-time and with fast device acknowledgement |
US5632021A (en) * | 1995-10-25 | 1997-05-20 | Cisco Systems Inc. | Computer system with cascaded peripheral component interconnect (PCI) buses |
US5673399A (en) * | 1995-11-02 | 1997-09-30 | International Business Machines, Corporation | System and method for enhancement of system bus to mezzanine bus transactions |
US5717876A (en) * | 1996-02-26 | 1998-02-10 | International Business Machines Corporation | Method for avoiding livelock on bus bridge receiving multiple requests |
-
1996
- 1996-06-05 US US08/658,704 patent/US5987539A/en not_active Expired - Lifetime
-
1997
- 1997-06-04 EP EP97303802A patent/EP0817088A3/en not_active Withdrawn
- 1997-06-05 JP JP9162089A patent/JPH10124450A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0817088A3 (en) | 1999-08-04 |
US5987539A (en) | 1999-11-16 |
EP0817088A2 (en) | 1998-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1063615A (ja) | バス性能を監視する方法およびシステム | |
JPH10116208A (ja) | 障害隔離機能を備えたコンピュータ・システム | |
JPH1055338A (ja) | コンピュータシステム | |
JPH1055336A (ja) | データ・ストリーミング制御機能を備えたコンピュータ・システム | |
JPH1083370A (ja) | 拡張カード空間を予約することができるコンピュータ・システム | |
JPH1083376A (ja) | コンピュータシステム | |
JPH10124448A (ja) | データ転送を整合するコンピュータ・システム | |
JPH10116206A (ja) | 第1と第2のサーバ間の制御の切り換え方法およびシステム | |
JPH1063611A (ja) | コンピュータシステム | |
JPH1083231A (ja) | 拡張カードの接続方法および拡張カードを接続可能なコンピュータ・システム | |
JPH10124188A (ja) | 回路カード着脱時の電力制御機能を備えたシステム及び方法 | |
JPH10124450A (ja) | データ・バッファ・フラッシュ機能を備えたコンピュータ・システム | |
JPH10187597A (ja) | データ自動事前取出しを行うコンピュータシステム | |
JPH10124451A (ja) | 従属バス・デバイスを用いるコンピュータ・システム | |
JPH1055335A (ja) | バス・デバイスを検出する装置および方法 | |
JPH10124449A (ja) | 複数バッファ割り当て機能を備えたコンピュータ・システム | |
JPH1055334A (ja) | コンピュータ・システムにおけるバス裁定 | |
JPH10124452A (ja) | コマンドのプロモートを行うコンピュータ・システム | |
JPH1063612A (ja) | バス・デバイスを構成するコンピュータ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040513 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040513 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061116 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070410 |