JPH08339346A - バスアービタ - Google Patents

バスアービタ

Info

Publication number
JPH08339346A
JPH08339346A JP7143128A JP14312895A JPH08339346A JP H08339346 A JPH08339346 A JP H08339346A JP 7143128 A JP7143128 A JP 7143128A JP 14312895 A JP14312895 A JP 14312895A JP H08339346 A JPH08339346 A JP H08339346A
Authority
JP
Japan
Prior art keywords
bus
master
permitted
arbiter
masters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7143128A
Other languages
English (en)
Inventor
Takeshi Takamiya
健 高宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP7143128A priority Critical patent/JPH08339346A/ja
Priority to US08/659,255 priority patent/US5796968A/en
Publication of JPH08339346A publication Critical patent/JPH08339346A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

(57)【要約】 【目的】バスアクセス許可の途中切替えと同一バスマス
タによる不当なバス専有という2つの問題を解消し、バ
スアービトレーションの信頼性の向上を図る。 【構成】ウエイトセットレジスタ402にセットされる
時間データによってバス使用の最大時間が規定される。
この最大時間に達するまでは、現在GNTを所持してい
るマスタからのREQがアクティブである限り、他のバ
スマスタからのREQはマスク回路404によってマス
クされる。また最大時間を越えた場合には、マスク回路
404によるマスクの効果が失われ、他のバスマスタへ
のGNT切り替えが許可される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はコンピュータシステム
で使用されるバスアービタに関し、特に複数のバスマス
タそれぞれからのバスアクセス要求を調停してバス使用
を1つのバスマスタに許可するバスアービタに関する。
【0002】
【従来の技術】従来、パーソナルコンピュータに使用さ
れるシステムバスとしては、ISA(Industry
Standard Architecture)バス
やEISA(Extended ISA)バスが主流で
あった。最近では、データ転送速度の高速化や、プロセ
ッサに依存しないシステムアーキテクチャの構築のため
に、デスクトップ型のパーソナルコンピュータを中心
に、PCI(Peripheral Componen
t Interconnect)バスが採用され始めて
いる。
【0003】PCIバスにおいては、全てのデータ転送
はブロック転送を基本としており、これら各ブロック転
送はバースト転送を用いて実現されている。これによ
り、PCIバスでは、最大133Mバイト/秒(データ
バスが32ビット幅の時)のデータ転送速度を実現でき
る。したがって、PCIバスを採用すると、I/Oデバ
イス間、およびシステムメモリとI/Oデバイスとの間
のデータ転送などを高速に行うことが可能となり、シス
テム性能を高めることができる。
【0004】PCIバス上のバスマスタがデータ転送を
実行するとき、そのバスマスタはPCIバスアービタに
PCIバスの使用を要求することが必要である。PCI
バスアービタは、PCIバスの使用を要求している複数
のバスマスタの中の1つのバスマスタにバス使用を許可
する。バス使用が許可されたバスマスタは、データ転送
を開始することができる。PCIバスシステムにおける
バスマスタとPCIバスアービタとの関係を図14に示
す。
【0005】図14に示されているように、PCIバス
上に存在する全てのバスマスタ81〜86の各々は、バ
スリクエスト信号線(REQ#)およびバスアクセス許
可信号線(GNT#)からなる一対のアービトレーショ
ン線を有している。これらバスリクエスト信号線(RE
Q#)およびバスアクセス許可信号線(GNT#)は、
PCIバスアービタ91に直接接続されている。データ
転送を実行しようとするバスマスタは、そのバスリクエ
スト信号線(REQ#)をアクティブにし、バスアクセ
ス許可信号線(GNT#)がアクティブにされるのを待
つ。
【0006】PCIバスアービタ91は、アクティブに
されているバスリクエスト信号線(REQ#)の中から
バス使用権を与えるべき1つのバスリクエスト信号線
(REQ#)を所定のアービトレーションアルゴリズム
に従って決定し、そのバスリクエスト信号線(REQ
#)に対応するバスアクセス許可信号線(GNT#)を
アクティブにする。バスアクセス許可信号線(GNT
#)がアクティブにされたバスマスタは、フレーム信号
(FRAME#)をアクティブにして、ターゲットとの
間のデータ転送を開始する。必要なデータ転送が全て完
了した時、バスマスタは、バスリクエスト信号線(RE
Q#)をインアクティブにしてPCIバスを解放する。
【0007】
【発明が解決しようとする課題】このようなバスアービ
トレーションにおいては、バスアクセス要求の競合を解
消するために、各バスマスタにアービトレーションの優
先度を設定しておくことが好ましい。これにより、同時
に複数のバスリクエスト信号線(REQ#)がアクティ
ブにされた場合に、最も優先度の高いバスマスタにバス
アクセスを許可することが可能となる。
【0008】しかし、このような優先順位の設定だけで
は、バスを獲得しているバスマスタがバスリクエスト信
号線(REQ#)を出力し続けているにもかかわらず、
そのバスマスタよりも優先度の高いバスマスタからバス
リクエスト信号線(REQ#)が発生されたときにバス
アクセス許可信号線(GNT#)の切り替えが発生して
しまい、これによって実行中のデータ転送が途中で中断
されてしまうなどの不具合が生じる危険ある。
【0009】このようなバスアクセス許可信号線(GN
T#)の途中切り替えに関する問題は、バス使用権が与
えられたバスマスタがバスリクエスト信号線(REQ
#)をアクティブに維持している限りPCIバスを他の
バスマスタに解放しないような仕組みを設ければ解消す
る事ができる。
【0010】ところが、このような仕組みを採用する
と、今度は、PCIバスを獲得しているバスマスタに何
らかのエラーが発生してデータ転送終了後もバスリクエ
スト信号線(REQ#)をアクティブに維持し続けた場
合や、ターゲットデバイスがロック状態であるにも関わ
らずバスマスタがPCIバスを解放しなかった場合など
には、他のバスマスタによるバスアクセスは永久に実行
不可能となってしまう危険がある。
【0011】この発明はこのような点に鑑みてなされた
もので、バスアクセス許可の途中切り替えと同一バスマ
スタによる不当なバス専有という問題の双方をバランス
良く解決できるようにし、信頼性が高くしかもシステム
性能を十分に高めることができるバスアービタを提供す
ることを目的とする。
【0012】
【課題を解決するための手段および作用】この発明は、
複数のバスマスタそれぞれからのバスアクセス要求信号
を調停してバスの使用を1つのバスマスタに許可するバ
スアービタにおいて、同一バスマスタにバスの使用を許
可し続ける最大バス使用時間を示す値を保持する手段
と、あるバスマスタにバス使用を許可してからの経過時
間を検出する手段と、前記経過時間が前記最大時間に達
するまでの期間中は、バス使用が許可されたバスマスタ
からのバスアクセス要求信号がアクティブステートに維
持されている限りバス使用権の切り替えを禁止し、前記
経過時間が前記最大時間に達した後はバス使用権の切り
替えを許可して他のバスマスタにバス使用権を与えるバ
ス使用権切替え制御手段とを具備することを特徴とす
る。
【0013】このバスアービタにおいては、同一のバス
マスタが連続してバスを獲得し続けることができる最大
時間が規定されている。最大時間に達するまでの期間中
は、バスアクセス要求信号がアクティブに維持されてい
る限り、たとえ現在バス使用権を獲得しているバスマス
タよりも優先度の高い他のバスマスタからバスアクセス
要求信号が発生されてもバス使用権の切り替えは行われ
ない。また、その最大時間を越えた場合には、例えばバ
ス使用権を獲得しているバスマスタからのバスアクセス
要求信号がマスク回路などによって強制的に無効化され
てバスが解放され、他のバスマスタにバス使用権を与え
ることが可能となる。
【0014】このため、バスアクセス許可の途中切り替
えと同一バスマスタによる不当なバス専有という双方の
問題をバランス良く解消できるようになる。また、この
発明のバスアービタは、故障検出手段をさらに具備する
ことを特徴とする。故障検出手段は、バスサイクルが連
続して所定サイクル期間実行されていないことが検出さ
れたとき、その時にバス使用が許可されているバスマス
タに故障が発生したと判断する。そして、以降はそのバ
スマスタをバスアービトレーションの対象から除外す
る。このため、エラーが発生したバスマスタが不当にバ
スを占有した場合であっても、他のバスマスタによるバ
スアクセスが永久に実行不可能となってしまうという事
態の発生を防止することができる。
【0015】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。図1には、この発明の一実施例に係わるコンピ
ュータシステムの構成が示されている。このコンピュー
タシステムは、ノートブックタイプまたはラップトップ
タイプのポータブルパーソナルコンピュータであり、そ
のシステムボード上には3種類のバス、つまりプロセッ
サバス1、内部PCIバス2、および内部ISAバス3
が配設されており、またこのポータブルパーソナルコン
ピュータ本体のDSコネクタに接続可能なドッキングス
テーション内には、外部PCIバス4と外部ISAバス
5が配設されている。
【0016】システムボード上には、CPU11、ホス
ト/PCIブリッジ装置12、システムメモリ13、各
種PCIマスターデバイス14、内部PCI−ISAブ
リッジ装置15、PCI−DS(DS:ドッキングステ
ーション)ブリッジ装置16、PCカードコントローラ
17などが設けられている。また、ドッキングステーシ
ョン内には、DS−PCI/ISAブリッジ装置20、
PCI拡張カードを装着できるPCI拡張スロット4
1,42、ISA拡張カードを装着できるISA拡張ス
ロット51,52が設けられている。
【0017】CPU11は、例えば、米インテル社によ
って製造販売されているマイクロプロセッサ“Pent
ium”などによって実現されている。このCPU11
の入出力ピンに直結されているプロセッサバス1は、6
4ビット幅のデータバスを有している。
【0018】システムメモリ13は、オペレーティング
システム、デバイスドライバ、実行対象のアプリケーシ
ョンプログラム、および処理データなどを格納するメモ
リデバイスであり、複数のシンクロナスDRAMによっ
て構成されている。このシステムメモリ13は、32ビ
ット幅または64ビット幅のデータバスを有する専用の
メモリバスを介してホスト−PCIブリッジ装置12に
接続されている。メモリバスのデータバスとしてはプロ
セッサバス1のデータバスを利用することもできる。こ
の場合、メモリバスは、アドレスバスと各種メモリ制御
信号線とから構成される。
【0019】ホスト/PCIブリッジ装置12は、プロ
セッサバス1と内部PCIバス2との間を繋ぐブリッジ
LSIであり、内部PCIバス2のバスマスタの1つと
して機能する。このホスト/PCIブリッジ装置12
は、プロセッサバス1と内部PCIバス2との間で、デ
ータおよびアドレスを含むバスサイクルを双方向で変換
する機能、およびメモリバスを介してシステムメモリ1
3のアクセス制御する機能などを有している。
【0020】内部PCIバス2はクロック同期型の入出
力バスであり、内部PCIバス2上の全てのサイクルは
PCIバスクロックに同期して行なわれる。PCIバス
クロックの周波数は最大33MHzである。内部PCI
バス2は、時分割的に使用されるアドレス/データバス
を有している。このアドレス/データバスは、32ビッ
ト幅である。
【0021】PCIバス2上のデータ転送サイクルは、
アドレスフェーズとそれに後続する1以上のデータフェ
ーズとから構成される。アドレスフェーズにおいてはア
ドレス、および転送タイプが指定され、各データフェー
ズでは8ビット、16ビット、24ビットまたは32ビ
ットのデータが出力される。
【0022】PCIマスターデバイス14は、ホスト/
PCIブリッジ装置12と同様にPCIバス2のバスマ
スタの1つであり、イニシエータまたはターゲットとし
て動作する。このPCIマスターデバイス14として実
現されるデバイスは、例えばグラフィクスコントローラ
などである。
【0023】内部PCI−ISAブリッジ装置15は、
内部PCIバス2と内部ISAバス3との間を繋ぐブリ
ッジLSIである。内部ISAバス3には、BIOS
ROM31、リアルタイムクロック(RTC)32、キ
ーボードコントローラ(KBC)33、HDD34、I
/Oポートコントローラ35などが接続されている。
【0024】内部PCI−ISAブリッジ装置15に
は、PCIバスアービタ(PBA)151、PCIイン
タフェース(PCI I/F)152、内部デコーダ1
53、ISAコントローラ(ISAC)154、割り込
みコントローラ(PIC)155、DMAコントローラ
(DMAC)156、システムタイマ(PIT)15
7、SMI発生ロジック158、コンフィグレーション
レジスタ群(CONFIG.REG)159などが内蔵
されている。
【0025】PCIバスアービタ(PBA)151は、
内部PCIバス2に結合される全てのバスマスタ間でP
CIバス2の使用権の調停を行う。この調停には、バス
マスタデバイス毎に1ペアずつ割り当てられる内部PC
Iバス2上の信号線(バスリクエスト信号REQ#線、
グラント信号GNT#線)が用いられる。
【0026】バスリクエスト信号REQ#は、それに対
応するデバイスが内部PCIバス2の使用を要求してい
ることをPCIバスアービタ(PBA)151に通知す
るための信号である。グラント信号GNT#は、バスリ
クエスト信号REQ#を発行したデバイスに、バス使用
を許可することを通知するバスアクセス許可信号であ
る。
【0027】PCIバスアービタ(PBA)151は、
内部PCIバス2上の全てのバスマスタそれぞれに対し
てバスリクエスト信号REQ#線およびグラント信号G
NT#線により図13で示したようなポイント−ツーポ
イント形式で接続されており、バス使用権の調停はその
PCIバスアービタ(PBA)151によって集中的に
制御される。このPCIバスアービタ(PBA)151
は、次の4つの特徴を持つ。
【0028】1.最大8本のバスリクエスト信号REQ
#のアービトレーションを行う。 2.グラント信号GNT#を与える優先順位を変更する
事ができる。 3.グラント信号GNT#を与える最大時間の設定がで
きる。
【0029】4.故障検出回路を持つ。 これら機能はこの発明の特徴とする部分であり、その詳
細は図2以降で詳述する。
【0030】PCIインタフェース152は、内部PC
Iバス152との間でアドレス、データ、コマンド、お
よび各種ステータス信号の授受を行なう。内部デコーダ
153は、PCI−ISAブリッジ15内蔵のデバイス
(割り込みコントローラ155、DMAコントローラ1
56、システムタイマ157、SMI発生ロジック15
8、コンフィグレーションレジスタ群159)、および
内部ISAバス3上のテバイス(BIOS ROM3
1、リアルタイムクロック32、キーボードコントロー
ラ33、HDD34、I/Oポートコントローラ35な
ど)それぞれを選択するためのアドレスデコードを行な
う。内部デコーダ153によってデコードされるのは、
PCIバス2上に出力されるI/Oアドレス、メモリア
ドレス、コンフィグレーションアドレスである。
【0031】ISAコントローラ154は、内部ISA
バス3上のメモリおよびI/OをアクセスするためのI
SAバスサイクルを実行する。コンフィグレーションレ
ジスタ群159は、コンフィグレーションサイクルでリ
ード/ライト可能なレジスタ群であり、ここにはブリッ
ジ15内の各デバイスの動作を制御するための制御デー
タなどがセットされる。
【0032】PCI−DSブリッジ装置16は、内部P
CIバス2と、ドッキングステーションに導出されるP
CIバス相当のドッキングバスとを繋ぐブリッジLSI
である。PCカードコントローラ17は、PCIバスマ
スタの1つであり、PCMCIA/Cardバス仕様の
カードスロット61,62に装着されるPCカードを制
御する。
【0033】DS−PCI/ISAブリッジ装置20
は、DSコネクタを介してコンピュータ本体からドッキ
ングステーションに導出されるドッキングバス(PCI
バス相当)と外部PCIバス4および外部ISAバス5
とを繋ぐブリッジLSIである。このDS−PCI/I
SAブリッジ装置20は、PCカードコントローラ17
などと同じくPCIバスマスタの1つである。
【0034】DS−PCI/ISAブリッジ装置20に
は、外部PCIバスブリッジ(EPBB;Extern
al PCI Bus Bridge)201、外部I
SAバスブリッジ(EIBB;External IS
A Bus Bridge)202、およびローカルバ
スアービタ(LBA;Local Bus Arbit
er)203が設けられている。
【0035】EPBB201は、内部PCIバス2上で
発生されるメモリサイクルおよびI/OサイクルをPC
I−DSブリッジ16を経由して受け取り、それを外部
PCIバス4上へ伝える。また、外部PCIバス4上の
PCI拡張カードにバス使用権が与えられた場合は、E
PBB201は、外部PCIバス4上のバストランザク
ションをドッキングバス上に発生させる。
【0036】EIBB202は、内部PCIバス2上に
発生されるメモリサイクルおよびI/OサイクルをPC
I−DSブリッジ16を経由して受け取り、それをプロ
トコル変換して外部ISAバス5上へ伝える。また、外
部ISAバス5上の拡張ISAマスタカードにバス使用
権が与えられた場合は、EIBB202は、外部ISA
バス5上のバストランザクションをドッキングバス上に
発生させる。
【0037】LBA203は、外部PCIバス4上のP
CI拡張カードからのバス使用要求と、外部ISAバス
5上のISA拡張カードからのバス使用要求とを調停す
る。次に、PCIバスアービタ(PBA)151の具体
的な構成を説明する。
【0038】図2には、PCIバスアービタ(PBA)
151を構成する1つのユニットとして使用されるRE
Q2入力のアービトレーション回路が示されている。こ
の2入力アービトレーション回路300は、4つの入力
と2つ出力を有している。4つの入力には、それぞれ次
の信号が入力される。
【0039】REQA:バスリクエスト信号 REQB:バスリクエスト信号 FIXED:グラント切替えの優先順位を固定にする信
号 ROTATE:グラント切替えの優先順位を動的にトグ
ルする信号 アービトレーション回路300の2つの出力からはそれ
ぞれ次の信号が出力される。
【0040】GNTA:REQAに対するグラント(バ
スアクセス許可)信号 GNTB:REQBに対するグラント(バスアクセス許
可)信号 図2の2入力アービトレーション回路300による動作
タイミングを図3〜図6に示す。ここでは、REQA,
REQB,GNTA,GNTBは“H”アクティブの信
号とする。
【0041】図3は、FIXED=“0”の場合の動作
タイミングを示している。FIXED=“0”の場合、
REQAの優先度はREQBよりも高く設定される。し
たがって、図示のように、2つのバスリクエスト信号R
EQA,REQBが同時発生した場合には、優先度の高
いREQAに対応するグラント信号GNTAがアクティ
ブ“1”に設定される。REQAがインアクテイブ
“0”にされると、GNTAがインアクティブ“0”と
なる。この時、REQBがアクティブ“1”であれば、
REQBに対応するグラント信号GNTBがアクティブ
“1”に設定される。
【0042】図4は、FIXED=“1”の場合の動作
タイミングを示している。FIXED=“1”の場合、
REQAとREQBの優先順位はFIXED=“0”の
場合と逆になり、REQAの優先度はREQBよりも低
く設定される。したがって、図示のように、2つのバス
リクエスト信号REQA,REQBが同時発生した場合
には、優先度の高いREQBに対応するグラント信号G
NTBがアクティブ“1”に設定される。REQBがイ
ンアクテイブ“0”にされると、GNTBがインアクテ
ィブ“0”となる。この時、REQAがアクティブ
“1”であれば、REQAに対応するグラント信号GN
TAがアクティブ“1”に設定される。
【0043】図5は、FIXED=“0”、ROTAT
E=“0”の場合の動作タイミングを示している。RO
TATE=“0”ならば、REQAとREQBの優先順
位はトグルされない。このため、図3に示したFIXE
D=“0”の場合の動作タイミングと同様に、2つのバ
スリクエスト信号REQA,REQBが同時発生した場
合には、優先度の高いREQAに対応するグラント信号
GNTAがアクティブ“1”に設定される。グラント信
号GNTAがアクティブ“1”に設定された後も、RE
QAとREQBの優先順位の関係は変化しない。したが
って、REQAがインアクティブ“0”で、REQBが
アクティブ“1”の場合のみ、GNTBがアクティブ
“1”となる。
【0044】図6は、FIXED=“0”、ROTAT
E=“1”の場合の動作タイミングを示している。RO
TATE=“1”ならば、REQAとREQBの優先順
位は動的にトグルされる。このため、優先度の高いRE
QAに対応するグラント信号GNTAがアクティブ
“1”に設定された直後、REQAとREQBの優先順
位の関係は変化され、REQBの優先度がREQAより
も高くなる。このため、最初にREQAとREQBが同
時発生した場合にはGNTAが“1”となるが、次に、
REQAとREQBが同時発生した場合には、今度はG
NTBが“1”となる。
【0045】図7には、図2の2入力アービトレーショ
ン回路300を利用して構成した8つのREQ入力を持
つ8ビットアービタの構成が示されている。この8ビッ
トアービタ400は、8つのREQ入力(REQA〜R
EQH)とそれに対応する8つのGNT出力(GNTA
〜GNTH)を有している。8ビットアービタ400は
7個のバンク301〜307から構成されている。
【0046】バンク301〜304は、それぞれ図2で
説明したREQ2入力のアービトレーション回路300
によって構成されている。バンク305は、REQ2入
力のアービトレーション回路300を拡張したREQ4
入力のアービトレーション回路であるが、4つのREQ
のアービトレーションを個別に行うのではなく、2つの
REQ(バンク301,302の出力)の1つを選択す
る構成になっている。バンク306も、REQ2入力の
アービトレーション回路300を拡張したREQ4入力
のアービトレーション回路であり、4つのREQのアー
ビトレーションを個別に行うのではなく、2つのREQ
(バンク303,304の出力)の1つを選択する構成
になっている。バンク307は、REQ2入力のアービ
トレーション回路300をさらに拡張したREQ8入力
のアービトレーション回路であり、8つのREQのアー
ビトレーションを個別に行うのではなく、2つのREQ
(バンク305,306の出力)の1つを選択する構成
になっている。
【0047】バンク301〜307の各々は図2で説明
したFIXED,ROTATE信号の入力も有してお
り、バンク毎に優先度の固定/トグル変更を行うことが
できる。
【0048】バンク301〜307に与えられる7ビッ
トのFIXED信号とREQA〜REQHの優先順位と
の関係を図8に示す。図8では、バンク301(BAN
K0)に7ビットFIXED信号の最下位ビットを与
え、バンク302(BANK1)〜バンク307(BA
NK6)に1ビットずつ上位のビットを与える場合が想
定されている。
【0049】例えば、7ビットFIXED信号が“00
00000”(モード0)ならば、REQHが優先度が
最も高く、次に、REQG、REQF、REQE、RE
QD、REQC、REQB、REQAの順に優先度が下
がる。
【0050】また、7ビットFIXED信号が“000
0001”(モード1)ならば、REQBとREQAの
優先順位が逆転され、優先度の順位は、REQH、RE
QG、REQF、REQE、REQD、REQC、RE
QA、REQBとなる。
【0051】このようにして、7ビットFIXED信号
によって128種類の優先順位を規定する事ができる。
また、ROTATEが“1”にセットされたバンクにつ
いては、そのバンクにおける優先順位がGNT出力の度
に変化する。
【0052】図9には、GNT切り替えを制限するため
の機能を実現するための具体的な回路構成が示されてい
る。すなわち、8ビットアービタ400の後段にはウエ
イト制御回路401が設けられており、このウエイト制
御回路401によって同一バスマスタにGNTを連続し
て与えることが許可される最大時間が制御される。
【0053】ウエイト制御回路401は、ウエイトセッ
トレジスタ402、タイマ403、およびマスク回路4
04から構成されている。ウエイトセットレジスタ40
2は、CPU11によってリード/ライト可能なレジス
タであり、例えば図1のコンフィグレーションレジスタ
群159の1つとして実現されている。このウエイトセ
ットレジスタ402には、同一バスマスタにGNTを連
続して与えることを許す最大時間を示す時間データがシ
ステムパワーオン時にセットされる。
【0054】タイマ403は、ウエイトセットレジスタ
402にセットされた時間データの値を初期値として、
その値を1ずつデクリメントするダウンカウンタであ
る。タイマ403のカウント動作は、マスク回路404
からのスタート信号に応答して開始される。また、タイ
マ403のカウント値は、マスク回路404からのリセ
ット信号によってリセットされる。
【0055】マスク回路404は、8ビットアービタ4
00の8つのREQ入力(REQA〜REQH)と8つ
のGNT出力(GNTA〜GNTH)を監視しており、
REQとそれに対応するGNTが共にアクティブステー
トになった時にスタート信号を発生して、タイマ403
にカウント動作を開始させる。マスク回路404は、タ
イマ403のカウント出力が“0”になるまでのウエイ
ト期間中においては、現在GNTを所持しているマスタ
からのREQがアクティブである限り、それ以外の他の
マスタに対する8ビットアービタ400からのグラント
出力をマスクする。これにより、現在GNTを所持して
いるマスタよりも優先度の高いバスマスタからのREQ
が発生されても、それによるGNT切り替えを防止でき
る。
【0056】カウント出力が“0”になると、ウエイト
期間が終了する。このとき、マスク回路404は、それ
までGNTを所持していたバスマスタに対するGNT出
力をマスクすると共に、他のバスマスタに対するグラン
ト出力のマスクを無効化する。したがって、ウエイト期
間中にGNTを所持していたバスマスタからPCIバス
2を解放でき、他のバスマスタにバス使用権を与えるこ
とができる。
【0057】また、マスク回路404は、タイマ403
のカウント出力が“0”になる前に、それまでGNTを
所持していたバスマスタからのREQがインアクィブに
なると、タイマ403をリセットする。
【0058】このように、図9の構成によれば、ウエイ
トセットレジスタ402にセットされる時間データによ
って規定されるウエイト期間中においては現在GNTを
所持しているマスタからのREQがアクティブである限
り、他のバスマスタへのGNT切り替えは禁止され、ま
たそのウエイト期間を越えた場合には、GNT切り替え
が許可される。
【0059】また、タイマ403は、ウエイトセットレ
ジスタ402にセットされる時間データの全ビットが
“1”であれば、カウント動作を行わず、常に“1”を
出力する。マスク回路404は、タイマ403からの出
力が“1”の期間は、現在GNTを所持しているマスタ
からのREQがアクティブである限り、それ以外の他の
マスタに対するグラント出力をマスクする。したがっ
て、ウエイトセットレジスタ402にオール“1”の時
間データをセットすれば、GNTを所持しているマスタ
は、REQが出力し続ける限りGNTを永久に所持し続
けることができる。
【0060】図10には、図9の構成を持つバスアービ
タの状態遷移の様子が具体的に示されている。図10に
おける各ステートは、あるバスマスタから見た場合に次
の事を意味している。
【0061】IDLE:GNTが出力されていない状態 WAIT:GNTは出力されているが、他のバスマスタ
によってPCIバスが使用されている状態 1T:PCIバスがアイドル状態のときにGNTの切り
替えが発生した場合に1T待たせる状態 GNT1:バスマスタがREQをアクティブにしてい
て、且つGNTを所持している状態 GNT2:バスマスタはREQをインアクティブにして
いるが、GNTを所持している状態 WAIT、GNT1、GNT2のステートでは、GNT
信号がアクティブにされている。
【0062】図11には、図9の構成を持つバスアービ
タによる具体的なアービトレーション動作におけるバス
アービタの状態遷移が示されている。図11の例におい
ては、REQAの方がREQBよりも優先度が高い場合
を想定している。また、“#”の付加されている信号
は、“0”アクティブを示している。
【0063】IDLE#は、PCIバスのフレーム信号
FRAME#とイニシエータレディIRDY#が共に
“1”の時に“0”となる信号である。このIDLE#
が“0”の時のGNTの切り替えについては、1T(1
サイクル=1CYC)のウエイト処理が行われる(図中
のサイクル1)。
【0064】サイクル3,4では、REQA#,GNT
A#に対応するバスマスタ(A)がPCIバスのアクセ
スを行っており、サイクル7,8,9では、REQB
#,GNTB#に対応するバスマスタ(B)がPCIバ
スのアクセスを行っている。
【0065】図9のウエイト制御回路401によって制
御されるウエイト期間中においては、優先度に拘らず、
REQ#がアクティブにされている限りGNT#は切り
替わらない。ここでは、優先度の低いバスマスタ(B)
がウエイト期間中の間、バスマスタ(A)からREQA
#が発生されても、GNTB#がアクティブに維持され
続けられている様子が示されている。
【0066】なお、図9では、ウエイト制御回路401
を8ビットアービタ400の後段に設けてGNT出力を
マスクしたが、8ビットアービタ400の前段にウエイ
ト制御回路401を設け、REQ入力をマスクするよう
に構成する事もできる。この場合の構成例を図12に示
す。
【0067】図12において、マスク回路404は、8
ビットアービタ400の8つのREQ入力(REQA〜
REQH)と8つのGNT出力(GNTA〜GNTH)
を監視しており、REQとそれに対応するGNTが共に
アクティブステートになった時にスタート信号を発生し
て、タイマ403にカウント動作を開始させる。マスク
回路404は、タイマ403のカウント出力が“0”に
なるまでのウエイト期間中においては、現在GNTを所
持しているマスタからのREQがアクティブである限
り、それ以外の他のマスタに対する8ビットアービタ4
00へのREQ入力をマスクする。これにより、現在G
NTを所持しているマスタよりも優先度の高いバスマス
タからのREQが発生されても、それによるGNT切り
替えを防止できる。
【0068】カウント出力が“0”になると、ウエイト
期間が終了する。このとき、マスク回路404は、それ
までGNTを所持していたバスマスタからのREQ入力
をマスクすると共に、他のバスマスタからのREQ入力
のマスクを無効化する。したがって、ウエイト期間中に
GNTを所持していたバスマスタからPCIバス2を解
放でき、他のバスマスタにバス使用権を与えることがで
きる。
【0069】図13には、図9または図12のバスアー
ビタに追加設定される故障検出回路の具体的な構成が示
されている。この故障検出回路501は、バスマスタが
REQをアクティブに維持し、且つGNTも所有したま
まで、IDLE状態(バスアクセスが発生しない状態)
が例えば20サイクル以上連続した場合、そのバスマス
タに故障が発生したと判断し、以降、そのバスマスタか
らのREQをアービトレーションから除外する。
【0070】この故障検出回路501は、GNT所持検
出回路502、カウント開始検出回路503、故障検出
カウンタ504、およびマスク回路505から構成され
ている。
【0071】GNT所持検出回路502は、8ビットア
ービタ400への8つのREQ入力(REQA〜REQ
H)と8つのGNT出力(GNTA〜GNTH)を監視
しており、REQとそれに対応するGNTが共にアクテ
ィブステートになった時に、あるバスマスタがGNTを
所持したと判断し、GNT所持信号を発生する。GNT
所持信号は、カウント開始検出回路503に送られる。
【0072】カウント開始検出回路503は、GNT所
持信号に応答してPCIバス2上のバスサイクルを調
べ、バスサイクルが実行されてない時(具体的には、F
RAME#とIRDY#が共にインアクティブの時)、
カウンタイネーブル信号を出力する。また、バスサイク
ルが開始されたことを検出すると、カウント開始検出回
路503は、カウンタイネーブル信号の発生を停止す
る。
【0073】故障検出カウンタ504は、カウンタイネ
ーブル信号が発生されてからそれが停止されるまでの期
間PCIクロック数をカウントし、20サイクル経過し
た時点でエラー信号を発生する。マスク回路505は、
エラー信号が発生された時にGNTを所持しているバス
マスタからのREQを記憶し、その直後にそのREQを
マスクする。これにより、エラー信号が発生された時に
GNTを所持してたバスマスタは、以降、バスアービト
レーションの対象から除外される。マスク回路505に
よるREQのマスクは、マスクリセット信号(MASK
Reset)によって解除される。
【0074】このような故障検出回路501を設ける事
により、エラーが発生したバスマスタが不当にバスを占
有した場合であっても、それによって他のバスマスタに
よるバスアクセスが永久に実行不可能となってしまうと
いう事態を防止することができる。
【0075】この故障検出回路501は、例えば図12
におけるウエイト制御回路401の前段、またはウエイ
ト制御回路401と8ビットアービタ400との間に接
続することができる。また、図9の8ビットアービタ4
00の前段に設けても良い。
【0076】
【発明の効果】以上説明したように、この発明によれ
ば、同一のバスマスタが連続してバスを獲得し続けるこ
とができる最大時間を規定でき、最大時間に達するまで
の期間中は、バスアクセス要求信号がアクティブに維持
されている限り、たとえ現在バス使用権を獲得している
バスマスタよりも優先度の高い他のバスマスタからバス
アクセス要求信号が発生されてもバス使用権の切り替え
をは行われない。また、その最大時間を越えた場合に
は、例えばバス使用権を獲得しているバスマスタからの
バスアクセス要求信号がマスク回路などによって強制的
に無効化されてバスが解放され、他のバスマスタにバス
使用権を与えることが可能となる。このため、バスアク
セス許可の途中切り替えと同一バスマスタによる不当な
バス専有という双方の問題をバランス良く解消できるよ
うになる。また、故障検出回路をさらに設けることによ
り、エラーが発生したバスマスタが不当にバスを占有し
た場合であっても、他のバスマスタによるバスアクセス
が永久に実行不可能となってしまうという事態の発生を
防止することができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るコンピュータシステ
ム全体の構成を示すブロック図。
【図2】同実施例のコンピュータシステムのPCIバス
アービタの基本構成ユニットであるREQ2入力アービ
タの構成を説明するための図。
【図3】図2のアービタによるアービトレーション動作
の第1の例を説明するタイミングチャート。
【図4】図2のアービタによるアービトレーション動作
の第2の例を説明するタイミングチャート。
【図5】図2のアービタによるアービトレーション動作
の第3の例を説明するタイミングチャート。
【図6】図2のアービタによるアービトレーション動作
の第4の例を説明するタイミングチャート。
【図7】図2のREQ2入力アービタを利用して構成し
たREQ8入力アービタの構成を示す図。
【図8】図7のREQ8入力アービタおけるFIXED
信号とREQ入力の優先順位との関係を説明するための
図。
【図9】図7のREQ8入力アービタにウエイト制御回
路を付加した場合のアービトレーション回路の構成を示
す図。
【図10】図9のアービトレーション回路の状態遷移を
示す図。
【図11】図9のアービトレーション回路のアービトレ
ーション動作の一例を説明するタイミングチャート。
【図12】図7のREQ8入力アービタにウエイト制御
回路を付加した場合のアービトレーション回路の他の構
成例を示す図。
【図13】図7のREQ8入力アービタに故障検出回路
を付加した場合のアービトレーション回路の他の構成例
を示す図。
【図14】従来のバスアービタとバスマスタとの接続関
係を示す図。
【符号の説明】
2…PCIバス、3…内部ISAバス、11…CPU、
15…PCI−ISAブリッジLSI、151…PCI
バスアービタ、300…REQ2入力アービタ、400
…REQ8入力アービタ、401…ウエイト制御回路、
402…ウエイトセットレジスタ、403…タイマ、4
04…マスク回路、501…故障検出回路、502…G
NT所持検出回路、503…カウント開始検出回路、5
04…故障検出カウンタ、505…マスク回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のバスマスタそれぞれからのバスア
    クセス要求信号を調停してバスの使用を1つのバスマス
    タに許可するバスアービタにおいて、 同一バスマスタにバスの使用を許可し続ける最大バス使
    用時間を示す値を保持する手段と、 あるバスマスタにバス使用を許可してからの経過時間を
    検出する手段と、 前記経過時間が前記最大時間に達するまでの期間中は、
    バス使用が許可されたバスマスタからのバスアクセス要
    求信号がアクティブステートに維持されている限りバス
    使用権の切り替えを禁止し、前記経過時間が前記最大時
    間に達した後はバス使用権の切り替えを許可して他のバ
    スマスタにバス使用権を与えるバス使用権切替え制御手
    段とを具備することを特徴とするバスアービタ。
  2. 【請求項2】 プログラム可能に構成され、前記最大時
    間を示すデータが書き込まれるレジスタをさらに具備
    し、 前記最大時間の値はプログラマブルであることを特徴と
    する請求項1記載のバスアービタ。
  3. 【請求項3】 前記バス使用権切替え制御手段は、前記
    複数のバスマスタそれぞれからのバスアクセス要求信
    号、またはそれらバスマスタに送られるバスアクセス許
    可信号をマスクするためのマスク回路を含むことを特徴
    とする請求項1記載のバスアービタ。
  4. 【請求項4】 バスマスタにバス使用が許可されている
    期間におけるバスサイクルを監視し、バスサイクルが連
    続して所定サイクル以上実行されなかったとき、バス使
    用が許可されているバスマスタに故障が発生したことを
    検出し、そのバスマスタをバスアービトレーションの対
    象から除外する故障検出手段をさらに具備することを特
    徴とする請求項1記載のバスアービタ。
  5. 【請求項5】 複数のバスマスタそれぞれからのバスア
    クセス要求信号に割り当てるべきアービトレーションの
    優先度を設定する手段と、 このアービトレーションの優先度に従って、バス使用を
    許可するバスマスタを決定する手段とをさらに具備する
    ことを特徴とする請求項1記載のバスアービタ。
  6. 【請求項6】 複数のバスマスタそれぞれからのバスア
    クセス要求信号を調停してバスの使用を1つのバスマス
    タに許可するバスアービタにおいて、 前記複数のバスマスタに割り当てられた優先順位に従っ
    てバス使用を許可するバスマスタを決定する手段と、 バスマスタにバス使用を許可する度に前記複数のバスマ
    スタそれぞれの優先順位を変更する手段と、 同一バスマスタにバスの使用を許可し続ける最大バス使
    用時間を示す値を保持する手段と、 あるバスマスタにバス使用が許可されてからの経過時間
    を検出する手段と、 前記経過時間が前記最大時間に達するまで期間中、バス
    使用が許可されたバスマスタからのバスアクセス要求信
    号がアクティブステートに維持されている限り、そのバ
    スマスタにバス使用を許可し続ける手段と、 前記経過時間が前記最大時間に達したとき、バス使用が
    許可されていたバスマスタからバスを解放し、バス使用
    権を他のバスマスタに与えることを許可する手段と、 バスマスタにバス使用が許可されている期間におけるバ
    スサイクルを監視し、バスサイクルが連続して所定サイ
    クル以上実行されなかったとき、バス使用が許可されて
    いるバスマスタに故障が発生したことを検出し、以降は
    そのバスマスタをバスアービトレーションの対象から除
    外する故障検出手段とを具備することを特徴とするバス
    アービタ。
JP7143128A 1995-06-09 1995-06-09 バスアービタ Pending JPH08339346A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7143128A JPH08339346A (ja) 1995-06-09 1995-06-09 バスアービタ
US08/659,255 US5796968A (en) 1995-06-09 1996-06-07 Bus arbiter used in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7143128A JPH08339346A (ja) 1995-06-09 1995-06-09 バスアービタ

Publications (1)

Publication Number Publication Date
JPH08339346A true JPH08339346A (ja) 1996-12-24

Family

ID=15331575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7143128A Pending JPH08339346A (ja) 1995-06-09 1995-06-09 バスアービタ

Country Status (2)

Country Link
US (1) US5796968A (ja)
JP (1) JPH08339346A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189061B1 (en) 1999-02-01 2001-02-13 Motorola, Inc. Multi-master bus system performing atomic transactions and method of operating same
JP2006209707A (ja) * 2005-01-31 2006-08-10 Omron Corp 通信制御方法および制御装置
KR100768049B1 (ko) * 2000-01-20 2007-10-17 후지쯔 가부시끼가이샤 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식
JP4774152B2 (ja) * 1999-01-08 2011-09-14 インテル・コーポレーション 統合されたメモリ・アーキテクチャにおけるアービトレーションのための方法および装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805835A (en) * 1996-07-15 1998-09-08 Micron Electronics, Inc. Parallel architecture computer system and method
US6061754A (en) * 1997-06-25 2000-05-09 Compaq Computer Corporation Data bus having switch for selectively connecting and disconnecting devices to or from the bus
US5938777A (en) * 1997-07-31 1999-08-17 Advanced Micro Devices, Inc. Cycle list based bus cycle resolution checking in a bus bridge verification system
JP2000040061A (ja) * 1998-05-20 2000-02-08 Oki Data Corp バス使用権調停システム
US6317801B1 (en) * 1998-07-27 2001-11-13 Intel Corporation System for post-driving and pre-driving bus agents on a terminated data bus
US6253269B1 (en) * 1998-12-22 2001-06-26 3Com Corporation Bus arbiter system and method for managing communication buses
EP1016974B1 (en) * 1998-12-29 2006-07-19 International Business Machines Corporation A fair and high speed arbitration system based on rotative and weighted priority monitoring
DE19946716A1 (de) * 1999-09-29 2001-04-12 Infineon Technologies Ag Verfahren zum Betrieb eines Prozessorbusses
US6555660B2 (en) * 2000-01-10 2003-04-29 Maxygen Holdings Ltd. G-CSF conjugates
US6976108B2 (en) * 2001-01-31 2005-12-13 Samsung Electronics Co., Ltd. System on a chip having a system bus, an external bus, and a bus arbiter with programmable priorities for both buses, software, and method for assigning programmable priorities
JP2002366253A (ja) * 2001-06-05 2002-12-20 Fujitsu Ltd クロックモジュレーション回路を有する半導体集積回路
JP4182246B2 (ja) * 2002-11-27 2008-11-19 富士通マイクロエレクトロニクス株式会社 バス共有システム及びバス共有方法
US7024506B1 (en) * 2002-12-27 2006-04-04 Cypress Semiconductor Corp. Hierarchically expandable fair arbiter
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
KR100585116B1 (ko) * 2003-12-13 2006-06-01 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
US8478921B2 (en) * 2004-03-31 2013-07-02 Silicon Laboratories, Inc. Communication apparatus implementing time domain isolation with restricted bus access
US7552268B2 (en) * 2006-05-18 2009-06-23 Cisco Technology, Inc. Method for improving bus utilization using predictive arbitration
US7944807B2 (en) * 2006-10-17 2011-05-17 Monolithic Power Systems, Inc. System and method for implementing a single-wire serial protocol

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388228A (en) * 1987-09-30 1995-02-07 International Business Machines Corp. Computer system having dynamically programmable linear/fairness priority arbitration scheme
EP0426413B1 (en) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprocessor arbitration in single processor arbitration schemes
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
US5577214A (en) * 1992-05-18 1996-11-19 Opti, Inc. Programmable hold delay
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774152B2 (ja) * 1999-01-08 2011-09-14 インテル・コーポレーション 統合されたメモリ・アーキテクチャにおけるアービトレーションのための方法および装置
US6189061B1 (en) 1999-02-01 2001-02-13 Motorola, Inc. Multi-master bus system performing atomic transactions and method of operating same
KR100768049B1 (ko) * 2000-01-20 2007-10-17 후지쯔 가부시끼가이샤 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식
JP2006209707A (ja) * 2005-01-31 2006-08-10 Omron Corp 通信制御方法および制御装置

Also Published As

Publication number Publication date
US5796968A (en) 1998-08-18

Similar Documents

Publication Publication Date Title
JPH08339346A (ja) バスアービタ
US6493803B1 (en) Direct memory access controller with channel width configurability support
JP2552085B2 (ja) マルチプル・バスの調停論理のためのシステム及び方法
US5887194A (en) Locking protocol for peripheral component interconnect utilizing master device maintaining assertion of lock signal after relinquishing control of bus such that slave device remains locked
US5535395A (en) Prioritization of microprocessors in multiprocessor computer systems
JP3231596B2 (ja) 待ち時間及びシャドー・タイマを有するバス・システム
US5954809A (en) Circuit for handling distributed arbitration in a computer system having multiple arbiters
US5774681A (en) Method and apparatus for controlling a response timing of a target ready signal on a PCI bridge
US6513094B1 (en) ROM/DRAM data bus sharing with write buffer and read prefetch activity
JPH08297632A (ja) 分割トランザクション・バス・プロトコルを可能にするバスに対するアービトレーション方法及び装置
JP2001075918A (ja) 可変優先順位およびフェアネスを使用する、機能強化されたバス・アービタ
US5752043A (en) Interrupt control system provided in a computer
US6598104B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
JP2001502088A (ja) バス・インタフェース制御回路
JP2007058716A (ja) データ転送バスシステム
WO2011011364A1 (en) Data space arbiter
US6490638B1 (en) General purpose bus with programmable timing
US6163826A (en) Method and apparatus for non-concurrent arbitration of multiple busses
EP0784278B1 (en) Interface architecture for connection to a peripheral component interconnect bus
US5937206A (en) System for converting states of DMA requests into first serial information and transmitting information to first bus whenever a state change of a request
US6442632B1 (en) System resource arbitration mechanism for a host bridge
US6625683B1 (en) Automatic early PCI transaction retry
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
US5850529A (en) Method and apparatus for detecting a resource lock on a PCI bus
US5857081A (en) Method and apparatus for controlling a master abort in a computer system