JP2000315188A - ライブ・ロック検出方法及びその装置並びに調停回路 - Google Patents
ライブ・ロック検出方法及びその装置並びに調停回路Info
- Publication number
- JP2000315188A JP2000315188A JP11125864A JP12586499A JP2000315188A JP 2000315188 A JP2000315188 A JP 2000315188A JP 11125864 A JP11125864 A JP 11125864A JP 12586499 A JP12586499 A JP 12586499A JP 2000315188 A JP2000315188 A JP 2000315188A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- transaction
- state
- master
- common
- 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
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【課題】 共通バス上の或る装置のバストランザクショ
ンのみが常にリトライ応答になるライブ・ロック状態を
検出し、その状態を解消する。 【解決手段】 バストランザクション検出部5は、共通
バス上で実行中のバストランザクションのバスマスタ、
バススレーブ、終了形態(リトライ応答,完了)を検出
する。エージェントA〜Dに1対1に対応するライブ・
ロック検出部11A〜11Dは、バストランザクションの上
記検出情報に基づき、自検出部に対応するエージェント
のバストランザクションのみが常にリトライ応答になっ
ているライブ・ロック状態を検出すると、当該エージェ
ントにのみバスを独占的に使用させるようバス独占モー
ド設定部4に要求する。バス独占モード設定部4は、各
エージェントA〜Dからのバス使用要求REQA〜RE
QDのマスク処理を行い、アービタ3で該当エージェン
トにのみバス使用権が与えられるようにする。
ンのみが常にリトライ応答になるライブ・ロック状態を
検出し、その状態を解消する。 【解決手段】 バストランザクション検出部5は、共通
バス上で実行中のバストランザクションのバスマスタ、
バススレーブ、終了形態(リトライ応答,完了)を検出
する。エージェントA〜Dに1対1に対応するライブ・
ロック検出部11A〜11Dは、バストランザクションの上
記検出情報に基づき、自検出部に対応するエージェント
のバストランザクションのみが常にリトライ応答になっ
ているライブ・ロック状態を検出すると、当該エージェ
ントにのみバスを独占的に使用させるようバス独占モー
ド設定部4に要求する。バス独占モード設定部4は、各
エージェントA〜Dからのバス使用要求REQA〜RE
QDのマスク処理を行い、アービタ3で該当エージェン
トにのみバス使用権が与えられるようにする。
Description
【0001】
【発明の属する技術分野】本発明は複数の装置が共通バ
スを介してデータを授受し合う共通バスシステムに関
し、より具体的には、或る装置のバストランザクション
のみが常にリトライ応答となる状態を検出し、それに対
して適切な対処を行うライブ・ロック検出方法及びその
装置並びに調停回路に関する。
スを介してデータを授受し合う共通バスシステムに関
し、より具体的には、或る装置のバストランザクション
のみが常にリトライ応答となる状態を検出し、それに対
して適切な対処を行うライブ・ロック検出方法及びその
装置並びに調停回路に関する。
【0002】
【従来の技術】共通バスを介してデータ転送を行う共通
バスシステムにおいては、共通バス上の信号線は或る瞬
間は1つの装置しか使用することができないため、要求
が重なった場合に調停回路によって共通バスの使用権の
調停を行い、複数の装置が時分割的に共通バスを使用で
きるようにする。要求が重なった場合の調停方法として
は、各装置に定期的にバス獲得最優先の権利が巡ってく
る巡回式バス・アービトレーション等、種々の方法があ
る。
バスシステムにおいては、共通バス上の信号線は或る瞬
間は1つの装置しか使用することができないため、要求
が重なった場合に調停回路によって共通バスの使用権の
調停を行い、複数の装置が時分割的に共通バスを使用で
きるようにする。要求が重なった場合の調停方法として
は、各装置に定期的にバス獲得最優先の権利が巡ってく
る巡回式バス・アービトレーション等、種々の方法があ
る。
【0003】バス使用権を得た装置をバスマスタと呼
び、バスマスタの転送相手となる装置をバススレーブと
呼ぶ。バスマスタは、共通バス上にアドレスを出力する
ことでバススレーブを指定し、バススレーブとの間で共
通バスを介してデータのやりとりを行う。バススレーブ
との間のデータ転送が正常終了すると、当該バスマスタ
からのバス使用権は解放され、他の装置にバス使用権が
与えられる。このようにバス上の装置は予め定められた
手順に従ってバスを使用する。この手順をバスプロトコ
ルと呼び、PCI(Peripheral Compo
nent Interconnect)など、各標準バ
ス毎に具体的な仕様が定められている。また、バス使用
要求、バスマスタからのバススレーブのアドレスの送
出、データの転送などをトランザクションと呼び、各ト
ランザクションを総称してバストランザクションと呼
ぶ。
び、バスマスタの転送相手となる装置をバススレーブと
呼ぶ。バスマスタは、共通バス上にアドレスを出力する
ことでバススレーブを指定し、バススレーブとの間で共
通バスを介してデータのやりとりを行う。バススレーブ
との間のデータ転送が正常終了すると、当該バスマスタ
からのバス使用権は解放され、他の装置にバス使用権が
与えられる。このようにバス上の装置は予め定められた
手順に従ってバスを使用する。この手順をバスプロトコ
ルと呼び、PCI(Peripheral Compo
nent Interconnect)など、各標準バ
ス毎に具体的な仕様が定められている。また、バス使用
要求、バスマスタからのバススレーブのアドレスの送
出、データの転送などをトランザクションと呼び、各ト
ランザクションを総称してバストランザクションと呼
ぶ。
【0004】共通バスシステムは、拡張性に優れている
といった各種の長所がある反面、複数の装置で唯一のバ
スを共有するために競合による性能低下が起きやすい欠
点がある。そのため、従来より競合による性能低下を防
止する技術が種々提案ないし実用化されている。例え
ば、特許第2752917号公報には、バスマスタが発
生した同じバススレーブを相手とするバストランザクシ
ョンにかかるバス使用要求がリトライ応答となった回数
をカウントし、カウント値が所定値に達したら、そのバ
スマスタに優先的にバス使用権を付与して、リトライの
繰り返しによるストール状態を防止している。同様な技
術は特開平9−114750号公報にも記載されてい
る。
といった各種の長所がある反面、複数の装置で唯一のバ
スを共有するために競合による性能低下が起きやすい欠
点がある。そのため、従来より競合による性能低下を防
止する技術が種々提案ないし実用化されている。例え
ば、特許第2752917号公報には、バスマスタが発
生した同じバススレーブを相手とするバストランザクシ
ョンにかかるバス使用要求がリトライ応答となった回数
をカウントし、カウント値が所定値に達したら、そのバ
スマスタに優先的にバス使用権を付与して、リトライの
繰り返しによるストール状態を防止している。同様な技
術は特開平9−114750号公報にも記載されてい
る。
【0005】
【発明が解決しようとする課題】ところで、バス使用権
が獲得できても、当該バストランザクションが常に成功
するとは限らない。例えば、図6に示すように、共通バ
スBUSに装置E1〜Enが接続された共通バスシステ
ムにおいて、装置E1がバス使用権を獲得して装置E2
にデータを送信する場合、装置E2内に設けられた受信
バッファBFがその時点で満杯になっていると、装置E
1から装置E2へのデータ送信にかかるバストランザク
ションは、装置E2からのリトライ応答で終了する。
が獲得できても、当該バストランザクションが常に成功
するとは限らない。例えば、図6に示すように、共通バ
スBUSに装置E1〜Enが接続された共通バスシステ
ムにおいて、装置E1がバス使用権を獲得して装置E2
にデータを送信する場合、装置E2内に設けられた受信
バッファBFがその時点で満杯になっていると、装置E
1から装置E2へのデータ送信にかかるバストランザク
ションは、装置E2からのリトライ応答で終了する。
【0006】このような場合、PCIなどにおいては装
置E1はバス使用権を一旦取下げ、所定時間後にバス使
用権を再度獲得して当該バストランザクションをリトラ
イする。このリトライが行われた時点までに受信バッフ
ァBFに充分な空き領域ができていればリトライ成功と
なる。しかし、装置E1がバス使用権を取り下げた隙に
装置E3がバス使用権を獲得して装置E2に対してデー
タ送信にかかるバストランザクションを実行すると、再
び受信バッファBFが満杯になる可能性があり、その場
合には再びリトライ応答が返されることになる。装置E
1以外の装置からの装置E2に対するデータ送信量や送
信周期、受信バッファBFの容量などの関係で、以上の
ような状況が繰り返され、装置E1のバストランザクシ
ョンが常に成功しない事態が起こり得る。
置E1はバス使用権を一旦取下げ、所定時間後にバス使
用権を再度獲得して当該バストランザクションをリトラ
イする。このリトライが行われた時点までに受信バッフ
ァBFに充分な空き領域ができていればリトライ成功と
なる。しかし、装置E1がバス使用権を取り下げた隙に
装置E3がバス使用権を獲得して装置E2に対してデー
タ送信にかかるバストランザクションを実行すると、再
び受信バッファBFが満杯になる可能性があり、その場
合には再びリトライ応答が返されることになる。装置E
1以外の装置からの装置E2に対するデータ送信量や送
信周期、受信バッファBFの容量などの関係で、以上の
ような状況が繰り返され、装置E1のバストランザクシ
ョンが常に成功しない事態が起こり得る。
【0007】このように、同じバススレーブに対して或
る装置のバストランザクションのみが常にリトライ応答
となる状態を、ライブ・ロック状態と呼ぶ。ライブ・ロ
ック状態に陥った装置E1では、最終的にはタイムアウ
ト等が発生する。
る装置のバストランザクションのみが常にリトライ応答
となる状態を、ライブ・ロック状態と呼ぶ。ライブ・ロ
ック状態に陥った装置E1では、最終的にはタイムアウ
ト等が発生する。
【0008】ライブ・ロック状態を回避する方策とし
て、上述した各公報記載に記載された技術を適用し、或
る装置の同じバススレーブに対するリトライ回数が所定
値に達したら、その装置にのみバス使用権を優先的に付
与することが考えられる。しかし、ライブ・ロック状態
が発生したことを検出せずに、単にリトライ回数に基づ
く制御を行ったのでは、リトライ応答となる原因がバス
スレーブ側の異常にある場合、異常の発生によって、特
定の装置に共通バスの使用権を優先的に付与するという
事態を招き、他の正常な装置の処理に重大な影響を与え
ることになる。つまり、図6において、装置E2に障害
が発生し、受信バッファBFが掃き出されない状態とな
った場合、装置E2にデータを送信しようとしている装
置E1,E3のうちリトライ回数が最初に所定値に達し
た装置、例えば装置E1に優先的にバス使用権が与えら
れるが、障害が続く限りリトライ成功することはないの
で、タイムアウトが発生する。そして、次にリトライ回
数が所定値に達した装置E3に優先的にバス使用権が与
えられ、これもリトライ成功することはないので、タイ
ムアウトが発生する。この間、装置E2にアクセスする
必要のない他の装置E4〜Enは共通バスを一切使用で
きず、システム全体の処理が完全に停止してしまうこと
になる。
て、上述した各公報記載に記載された技術を適用し、或
る装置の同じバススレーブに対するリトライ回数が所定
値に達したら、その装置にのみバス使用権を優先的に付
与することが考えられる。しかし、ライブ・ロック状態
が発生したことを検出せずに、単にリトライ回数に基づ
く制御を行ったのでは、リトライ応答となる原因がバス
スレーブ側の異常にある場合、異常の発生によって、特
定の装置に共通バスの使用権を優先的に付与するという
事態を招き、他の正常な装置の処理に重大な影響を与え
ることになる。つまり、図6において、装置E2に障害
が発生し、受信バッファBFが掃き出されない状態とな
った場合、装置E2にデータを送信しようとしている装
置E1,E3のうちリトライ回数が最初に所定値に達し
た装置、例えば装置E1に優先的にバス使用権が与えら
れるが、障害が続く限りリトライ成功することはないの
で、タイムアウトが発生する。そして、次にリトライ回
数が所定値に達した装置E3に優先的にバス使用権が与
えられ、これもリトライ成功することはないので、タイ
ムアウトが発生する。この間、装置E2にアクセスする
必要のない他の装置E4〜Enは共通バスを一切使用で
きず、システム全体の処理が完全に停止してしまうこと
になる。
【0009】そこで本発明の目的は、ライブ・ロック状
態の発生そのものを検出することができるライブ・ロッ
ク検出方法及びその装置並びに調停装置を提供すること
にある。
態の発生そのものを検出することができるライブ・ロッ
ク検出方法及びその装置並びに調停装置を提供すること
にある。
【0010】また本発明の別の目的は、発生したライブ
・ロック状態を速やかに解消することができるライブ・
ロック検出方法及びその装置並びに調停回路を提供する
ことにある。
・ロック状態を速やかに解消することができるライブ・
ロック検出方法及びその装置並びに調停回路を提供する
ことにある。
【0011】
【課題を解決するための手段】本発明のライブ・ロック
検出方法は、共通バスに接続された複数の装置と、該複
数の装置からのバス使用要求を調停する調停回路とを含
み、前記共通バスの使用権を得た装置がバスマスタとな
ってデータ送信相手であるバススレーブとなる装置に対
して前記共通バスを介してデータを転送する共通バスシ
ステムにおけるライブ・ロック検出方法であって、
(a)バススレーブに対するバストランザクションがリ
トライ応答となったバスマスタを検出するステップと、
(b)前記ステップaで検出されたバスマスタがバス使
用権を再度得て同じ前記バススレーブに対して前記バス
トランザクションのリトライを繰り返している期間中
に、同じバススレーブに対する他のバスマスタにかかる
バストランザクションが成功した回数を計数するステッ
プと、(c)前記計数された回数が予め設定された回数
に達したときに前記ステップaで検出されたバスマスタ
がライブ・ロック状態に陥っていると判断するステップ
とを含むことを特徴とする。
検出方法は、共通バスに接続された複数の装置と、該複
数の装置からのバス使用要求を調停する調停回路とを含
み、前記共通バスの使用権を得た装置がバスマスタとな
ってデータ送信相手であるバススレーブとなる装置に対
して前記共通バスを介してデータを転送する共通バスシ
ステムにおけるライブ・ロック検出方法であって、
(a)バススレーブに対するバストランザクションがリ
トライ応答となったバスマスタを検出するステップと、
(b)前記ステップaで検出されたバスマスタがバス使
用権を再度得て同じ前記バススレーブに対して前記バス
トランザクションのリトライを繰り返している期間中
に、同じバススレーブに対する他のバスマスタにかかる
バストランザクションが成功した回数を計数するステッ
プと、(c)前記計数された回数が予め設定された回数
に達したときに前記ステップaで検出されたバスマスタ
がライブ・ロック状態に陥っていると判断するステップ
とを含むことを特徴とする。
【0012】より具体的には、本発明のライブ・ロック
検出方法は、(a)バスマスタとなり得る装置に対応し
てステートマシンとカウンタとレジスタを準備するステ
ップと、(b)共通バス上で実行中のバストランザクシ
ョンを検出するステップと、(c)前記ステップbで検
出されたバストランザクションがリトライ応答で終了し
たとき、当該バストランザクションにかかるバスマスタ
に対応する前記レジスタに当該バストランザクションに
かかるバススレーブのIDをセットすると共に対応する
ステートマシンにRETRYステートを設定するステッ
プと、(d)前記ステップbで検出されたバストランザ
クションが完了したとき、当該バストランザクションに
かかるバスマスタに対応する前記カウンタをリセットす
ると共に対応するステートマシンにIDLEステートを
設定し、且つ、当該バストランザクションにかかるバス
マスタ以外のバスマスタであって対応する前記ステート
マシンがIDLEステートであり然も対応する前記レジ
スタに当該バストランザクションにかかるバススレーブ
と同じバススレーブのIDがセットされているバスマス
タに対応する前記カウンタを歩進すると共に対応するス
テートマシンにWAITステートを設定するステップ
と、(e)対応する前記カウンタの値が予め定められた
閾値に達したバスマスタをライブ・ロック状態に陥って
いると判断するステップとを含む。
検出方法は、(a)バスマスタとなり得る装置に対応し
てステートマシンとカウンタとレジスタを準備するステ
ップと、(b)共通バス上で実行中のバストランザクシ
ョンを検出するステップと、(c)前記ステップbで検
出されたバストランザクションがリトライ応答で終了し
たとき、当該バストランザクションにかかるバスマスタ
に対応する前記レジスタに当該バストランザクションに
かかるバススレーブのIDをセットすると共に対応する
ステートマシンにRETRYステートを設定するステッ
プと、(d)前記ステップbで検出されたバストランザ
クションが完了したとき、当該バストランザクションに
かかるバスマスタに対応する前記カウンタをリセットす
ると共に対応するステートマシンにIDLEステートを
設定し、且つ、当該バストランザクションにかかるバス
マスタ以外のバスマスタであって対応する前記ステート
マシンがIDLEステートであり然も対応する前記レジ
スタに当該バストランザクションにかかるバススレーブ
と同じバススレーブのIDがセットされているバスマス
タに対応する前記カウンタを歩進すると共に対応するス
テートマシンにWAITステートを設定するステップ
と、(e)対応する前記カウンタの値が予め定められた
閾値に達したバスマスタをライブ・ロック状態に陥って
いると判断するステップとを含む。
【0013】また本発明のライブ・ロック検出方法は、
ライブ・ロック状態に陥った前記バスマスタに前記共通
バスを独占的に使用させるステップ、前記共通バスを独
占的に使用させた前記バスマスタの前記バストランザク
ションのリトライが成功したとき、前記バスマスタに前
記共通バスを独占的に使用させる状態を解除するステッ
プを、更に含むことを特徴とする。
ライブ・ロック状態に陥った前記バスマスタに前記共通
バスを独占的に使用させるステップ、前記共通バスを独
占的に使用させた前記バスマスタの前記バストランザク
ションのリトライが成功したとき、前記バスマスタに前
記共通バスを独占的に使用させる状態を解除するステッ
プを、更に含むことを特徴とする。
【0014】本発明のライブ・ロック検出方法にあって
は、或るバスマスタがリトライを繰り返しているが毎回
リトライ応答となっているとき、そのリトライ回数をカ
ウントするのではなく、同じバススレーブに対して他の
バスマスタにかかるバストランザクションが成功した回
数をカウントしているので、同じバススレーブに対して
特定のバスマスタのバストランザクションのみが常にリ
トライ応答となっている状況、つまり、ライブ・ロック
状態を検出することができる。そして、ライブ・ロック
状態に陥ったバスマスタに対しては、共通バスを独占的
に使用させることにより、ライブ・ロック原因となる他
のバスマスタからのバストランザクションを抑止し、ラ
イブ・ロック状態を速やかに解消することができる。
は、或るバスマスタがリトライを繰り返しているが毎回
リトライ応答となっているとき、そのリトライ回数をカ
ウントするのではなく、同じバススレーブに対して他の
バスマスタにかかるバストランザクションが成功した回
数をカウントしているので、同じバススレーブに対して
特定のバスマスタのバストランザクションのみが常にリ
トライ応答となっている状況、つまり、ライブ・ロック
状態を検出することができる。そして、ライブ・ロック
状態に陥ったバスマスタに対しては、共通バスを独占的
に使用させることにより、ライブ・ロック原因となる他
のバスマスタからのバストランザクションを抑止し、ラ
イブ・ロック状態を速やかに解消することができる。
【0015】また本発明のライブ・ロック検出装置は、
共通バスに接続された複数の装置と、該複数の装置から
のバス使用要求を調停する調停回路とを含み、前記共通
バスの使用権を得た装置がバスマスタとなってデータ送
信相手であるバススレーブに対して前記共通バスを介し
てデータを転送する共通バスシステムにおいて、バスマ
スタとなり得る装置に対応して設けられたステートマシ
ン、カウンタ及びレジスタと、共通バス上で実行中のバ
ストランザクションを検出する手段と、前記検出された
バストランザクションがリトライ応答で終了したとき、
当該バストランザクションにかかるバスマスタに対応す
る前記レジスタに当該バストランザクションにかかるバ
ススレーブのIDをセットすると共に対応するステート
マシンにRETRYステートを設定する手段と、前記検
出されたバストランザクションが完了したとき、当該バ
ストランザクションにかかるバスマスタに対応する前記
カウンタをリセットすると共に対応するステートマシン
にIDLEステートを設定する手段と、前記検出された
バストランザクションが完了したとき、当該バストラン
ザクションにかかるバスマスタ以外のバスマスタであっ
て対応する前記ステートマシンがIDLEステートであ
り然も対応する前記レジスタに当該バストランザクショ
ンにかかるバススレーブと同じバススレーブのIDがセ
ットされているバスマスタに対応する前記カウンタを歩
進すると共に対応するステートマシンにWAITステー
トを設定する手段と、対応する前記カウンタの値が予め
定められた閾値に達したバスマスタをライブ・ロック状
態に陥っていると判断する手段とを含むことを特徴とす
る。
共通バスに接続された複数の装置と、該複数の装置から
のバス使用要求を調停する調停回路とを含み、前記共通
バスの使用権を得た装置がバスマスタとなってデータ送
信相手であるバススレーブに対して前記共通バスを介し
てデータを転送する共通バスシステムにおいて、バスマ
スタとなり得る装置に対応して設けられたステートマシ
ン、カウンタ及びレジスタと、共通バス上で実行中のバ
ストランザクションを検出する手段と、前記検出された
バストランザクションがリトライ応答で終了したとき、
当該バストランザクションにかかるバスマスタに対応す
る前記レジスタに当該バストランザクションにかかるバ
ススレーブのIDをセットすると共に対応するステート
マシンにRETRYステートを設定する手段と、前記検
出されたバストランザクションが完了したとき、当該バ
ストランザクションにかかるバスマスタに対応する前記
カウンタをリセットすると共に対応するステートマシン
にIDLEステートを設定する手段と、前記検出された
バストランザクションが完了したとき、当該バストラン
ザクションにかかるバスマスタ以外のバスマスタであっ
て対応する前記ステートマシンがIDLEステートであ
り然も対応する前記レジスタに当該バストランザクショ
ンにかかるバススレーブと同じバススレーブのIDがセ
ットされているバスマスタに対応する前記カウンタを歩
進すると共に対応するステートマシンにWAITステー
トを設定する手段と、対応する前記カウンタの値が予め
定められた閾値に達したバスマスタをライブ・ロック状
態に陥っていると判断する手段とを含むことを特徴とす
る。
【0016】また本発明のライブ・ロック検出装置は、
ライブ・ロック状態に陥った前記バスマスタに前記共通
バスを独占的に使用させる手段、前記共通バスを独占的
に使用させた前記バスマスタの前記バストランザクショ
ンのリトライが成功したとき、前記バスマスタに前記共
通バスを独占的に使用させる状態を解除する手段を、更
に含むことを特徴とする。
ライブ・ロック状態に陥った前記バスマスタに前記共通
バスを独占的に使用させる手段、前記共通バスを独占的
に使用させた前記バスマスタの前記バストランザクショ
ンのリトライが成功したとき、前記バスマスタに前記共
通バスを独占的に使用させる状態を解除する手段を、更
に含むことを特徴とする。
【0017】また本発明の調停回路は、共通バスに接続
された複数の装置と、該複数の装置からのバス使用要求
を調停する調停回路とを含む共通バスシステムにおける
前記調停回路において、ライブ・ロック状態に陥った装
置を検出する手段と、ライブ・ロック状態に陥った装置
にのみ前記共通バスを独占的に使用させる手段とを備え
ることを特徴とする。
された複数の装置と、該複数の装置からのバス使用要求
を調停する調停回路とを含む共通バスシステムにおける
前記調停回路において、ライブ・ロック状態に陥った装
置を検出する手段と、ライブ・ロック状態に陥った装置
にのみ前記共通バスを独占的に使用させる手段とを備え
ることを特徴とする。
【0018】前記ライブ・ロック状態に陥った装置を検
出する手段は、より具体的には、前記共通バス上で実行
中のバストランザクションを検出するバストランザクシ
ョン検出手段と、バスマスタとなり得る装置に1対1に
対応して設けられ、対応する装置がライブ・ロック状態
に陥ったか否かを検出するライブ・ロック検出手段とを
含み、前記ライブ・ロック検出手段は、ステートマシ
ン、カウンタ及びレジスタと、前記バストランザクショ
ン検出手段で検出されたバストランザクションが自検出
手段に対応する装置をバスマスタとするバストランザク
ションで、リトライ応答で終了したとき、前記レジスタ
に当該バストランザクションにかかるバススレーブのI
Dをセットすると共に前記ステートマシンにRETRY
ステートを設定する手段と、前記バストランザクション
検出手段で検出されたバストランザクションが自検出手
段に対応する装置をバスマスタとするバストランザクシ
ョンで、完了したとき、前記カウンタをリセットすると
共に前記ステートマシンにIDLEステートを設定する
手段と、前記ステートマシンにRETRYステートが設
定されており、かつ、前記バストランザクション検出手
段で検出されたバストランザクションが自検出手段に対
応する装置以外の装置をバスマスタとするバストランザ
クションで、完了し、然も前記レジスタに当該バストラ
ンザクションにかかるバススレーブと同じバススレーブ
のIDがセットされているとき、前記カウンタを歩進す
ると共に前記ステートマシンにWAITステートを設定
する手段と、前記カウンタの値が予め定められた閾値に
達したとき、自検出手段に対応する装置がライブ・ロッ
ク状態に陥っていると判断する手段とを含む。
出する手段は、より具体的には、前記共通バス上で実行
中のバストランザクションを検出するバストランザクシ
ョン検出手段と、バスマスタとなり得る装置に1対1に
対応して設けられ、対応する装置がライブ・ロック状態
に陥ったか否かを検出するライブ・ロック検出手段とを
含み、前記ライブ・ロック検出手段は、ステートマシ
ン、カウンタ及びレジスタと、前記バストランザクショ
ン検出手段で検出されたバストランザクションが自検出
手段に対応する装置をバスマスタとするバストランザク
ションで、リトライ応答で終了したとき、前記レジスタ
に当該バストランザクションにかかるバススレーブのI
Dをセットすると共に前記ステートマシンにRETRY
ステートを設定する手段と、前記バストランザクション
検出手段で検出されたバストランザクションが自検出手
段に対応する装置をバスマスタとするバストランザクシ
ョンで、完了したとき、前記カウンタをリセットすると
共に前記ステートマシンにIDLEステートを設定する
手段と、前記ステートマシンにRETRYステートが設
定されており、かつ、前記バストランザクション検出手
段で検出されたバストランザクションが自検出手段に対
応する装置以外の装置をバスマスタとするバストランザ
クションで、完了し、然も前記レジスタに当該バストラ
ンザクションにかかるバススレーブと同じバススレーブ
のIDがセットされているとき、前記カウンタを歩進す
ると共に前記ステートマシンにWAITステートを設定
する手段と、前記カウンタの値が予め定められた閾値に
達したとき、自検出手段に対応する装置がライブ・ロッ
ク状態に陥っていると判断する手段とを含む。
【0019】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
いて図面を参照して詳細に説明する。
【0020】図1は本発明を適用した共通バスシステム
の一実施例のブロック図であり、バスの使用権をバスア
ービタが集中的に管理する集中アービトレーション方式
の共通バスシステムに本発明を適用したものである。こ
の例の共通バスシステムは、共通バス1に接続された複
数のバスエージェントA〜Dと、バスエージェントA〜
Dからのバス使用要求REQA〜REQDが重なった場
合にその調停を行うバスアービタ2とから構成されてお
り、バスアービタ2からのバス使用許可信号GRANT
A〜GRANTDにてバス使用権を得たバスエージェン
トがバスマスタとなって、データ送信相手であるバスス
レーブとなるバスエージェントに対し、共通バス1を介
してデータを転送するようになっている。なお、バスエ
ージェントの台数は4台に限られず、複数であれば任意
で良い。
の一実施例のブロック図であり、バスの使用権をバスア
ービタが集中的に管理する集中アービトレーション方式
の共通バスシステムに本発明を適用したものである。こ
の例の共通バスシステムは、共通バス1に接続された複
数のバスエージェントA〜Dと、バスエージェントA〜
Dからのバス使用要求REQA〜REQDが重なった場
合にその調停を行うバスアービタ2とから構成されてお
り、バスアービタ2からのバス使用許可信号GRANT
A〜GRANTDにてバス使用権を得たバスエージェン
トがバスマスタとなって、データ送信相手であるバスス
レーブとなるバスエージェントに対し、共通バス1を介
してデータを転送するようになっている。なお、バスエ
ージェントの台数は4台に限られず、複数であれば任意
で良い。
【0021】バスアービタ2は、例えば巡回式バス・ア
ービトレーション方法を採用するアービタ3と、各バス
エージェントA〜Dからのバス使用要求REQA〜RE
QDをそのまま或いは一部マスクしてアービタ3に伝達
するバス独占モード設定部4と、アービタ3から出力さ
れるバス使用許可信号GRANTA〜GRANTD及び
共通バス1上のアドレス線,制御線の各状態を監視し、
共通バス1上で実行されているバストランザクションを
検出するバストランザクション検出部5とを有してい
る。
ービトレーション方法を採用するアービタ3と、各バス
エージェントA〜Dからのバス使用要求REQA〜RE
QDをそのまま或いは一部マスクしてアービタ3に伝達
するバス独占モード設定部4と、アービタ3から出力さ
れるバス使用許可信号GRANTA〜GRANTD及び
共通バス1上のアドレス線,制御線の各状態を監視し、
共通バス1上で実行されているバストランザクションを
検出するバストランザクション検出部5とを有してい
る。
【0022】バストランザクション検出部5は、アービ
タ3から出力されるバス使用許可信号GRANTA〜G
RANTDを監視することで、バス使用権を獲得したバ
スエージェントを認識し、そのバスエージェントのID
をバスマスタIDレジスタ6に設定する。また、バス使
用権を獲得したバスエージェントがバスマスタとなっ
て、共通バス1上のアドレス線にバススレーブとなるバ
スエージェントを指定するアドレスを送出すると、その
アドレスからバススレーブを認識し、そのエージェント
のIDをバススレーブIDレジスタ7に設定する。更
に、当該バストランザクションがバススレーブの受信バ
ッファ・フルなどが原因でリトライ応答となったとき
は、共通バス1上の制御線にリトライ応答が現れるの
で、それを検出すると、リトライ応答フラグ8をオンに
する。また、当該バストランザクションが成功すると、
共通バス1上の制御線に完了(COMPLETE)信号
が現れるので、それを検出すると、完了フラグ9をオン
にする。バストランザクション検出部5は次のバストラ
ンザクションが開始されると、バスマスタIDレジスタ
6,バススレーブIDレジスタ7の内容をNULL値に
リセットすると共にリトライ応答フラグ8及び完了フラ
グ9をオフにした後、開始されたバストランザクション
の状況に応じて、再びレジスタ6,7及びフラグ8,9
を操作する処理を繰り返す。
タ3から出力されるバス使用許可信号GRANTA〜G
RANTDを監視することで、バス使用権を獲得したバ
スエージェントを認識し、そのバスエージェントのID
をバスマスタIDレジスタ6に設定する。また、バス使
用権を獲得したバスエージェントがバスマスタとなっ
て、共通バス1上のアドレス線にバススレーブとなるバ
スエージェントを指定するアドレスを送出すると、その
アドレスからバススレーブを認識し、そのエージェント
のIDをバススレーブIDレジスタ7に設定する。更
に、当該バストランザクションがバススレーブの受信バ
ッファ・フルなどが原因でリトライ応答となったとき
は、共通バス1上の制御線にリトライ応答が現れるの
で、それを検出すると、リトライ応答フラグ8をオンに
する。また、当該バストランザクションが成功すると、
共通バス1上の制御線に完了(COMPLETE)信号
が現れるので、それを検出すると、完了フラグ9をオン
にする。バストランザクション検出部5は次のバストラ
ンザクションが開始されると、バスマスタIDレジスタ
6,バススレーブIDレジスタ7の内容をNULL値に
リセットすると共にリトライ応答フラグ8及び完了フラ
グ9をオフにした後、開始されたバストランザクション
の状況に応じて、再びレジスタ6,7及びフラグ8,9
を操作する処理を繰り返す。
【0023】またバスアービタ2は、更に、ライブ・ロ
ック状態判定用のカウントの閾値を保持する書換え可能
な閾値レジスタ10と、各エージェントA〜Dに1対1
に対応し、対応するエージェントのライブ・ロック状態
を検出するライブ・ロック検出部11A〜11Dとを有
している。
ック状態判定用のカウントの閾値を保持する書換え可能
な閾値レジスタ10と、各エージェントA〜Dに1対1
に対応し、対応するエージェントのライブ・ロック状態
を検出するライブ・ロック検出部11A〜11Dとを有
している。
【0024】各ライブ・ロック検出部11A〜11D
は、バスマスタIDレジスタ6,バススレーブIDレジ
スタ7,リトライ応答フラグ8,完了フラグ9および閾
値レジスタ10の内容を入力し、自検出部が担当するバ
スエージェントA〜Dがライブ・ロック状態に陥ったか
否かを検出する。若し、ライブ・ロック状態に陥った場
合には、自検出部が担当するバスエージェントA〜Dの
みに共通バス1を許可するバス独占モードに移行すべき
要求をバス独占モード設定部4に要求する。そして、そ
の後、自検出部が担当するバスエージェントA〜Dのバ
ストランザクションの完了を検知すると、上記の要求を
解除する。
は、バスマスタIDレジスタ6,バススレーブIDレジ
スタ7,リトライ応答フラグ8,完了フラグ9および閾
値レジスタ10の内容を入力し、自検出部が担当するバ
スエージェントA〜Dがライブ・ロック状態に陥ったか
否かを検出する。若し、ライブ・ロック状態に陥った場
合には、自検出部が担当するバスエージェントA〜Dの
みに共通バス1を許可するバス独占モードに移行すべき
要求をバス独占モード設定部4に要求する。そして、そ
の後、自検出部が担当するバスエージェントA〜Dのバ
ストランザクションの完了を検知すると、上記の要求を
解除する。
【0025】図2にバス独占モード設定部4の構成例を
示す。図2において、41は制御部であり、バスエージ
ェントA〜Dに1対1に対応するマスクフラグ42A〜
42Dを備えている。バス独占モードでない通常モード
時は、全てのマスクフラグ42A〜42Dは論理値
“0”となっている。何れかのライブ・ロック検出部1
1A〜11Dからバス独占モードに移行すべき要求が出
されると、制御部41は要求を出したライブ・ロック検
出部11A〜11Dが担当するバスエージェントA〜D
に対応するマスクフラグ以外の全てのマスクフラグを論
理値“1”に変更する。各エージェントA〜Dからのバ
ス使用要求REQA〜REQDをアービタ3に伝達する
ゲート43A〜43Dには、抑止入力があり、自ゲート
が担当するエージェントに対応するマスクフラグ42A
〜42Dの値が抑止入力に与えられている。
示す。図2において、41は制御部であり、バスエージ
ェントA〜Dに1対1に対応するマスクフラグ42A〜
42Dを備えている。バス独占モードでない通常モード
時は、全てのマスクフラグ42A〜42Dは論理値
“0”となっている。何れかのライブ・ロック検出部1
1A〜11Dからバス独占モードに移行すべき要求が出
されると、制御部41は要求を出したライブ・ロック検
出部11A〜11Dが担当するバスエージェントA〜D
に対応するマスクフラグ以外の全てのマスクフラグを論
理値“1”に変更する。各エージェントA〜Dからのバ
ス使用要求REQA〜REQDをアービタ3に伝達する
ゲート43A〜43Dには、抑止入力があり、自ゲート
が担当するエージェントに対応するマスクフラグ42A
〜42Dの値が抑止入力に与えられている。
【0026】通常モード時は、全てのマスクフラグ42
A〜42Dの値は論理値“0”なので、全てのバス使用
要求REQA〜REQDはゲート43A〜43Dで遮断
されることなく、そのままアービタ3に伝達される。し
かし、或るエージェントのみにバスを独占的に許可する
バス独占モードが要求されている場合、そのエージェン
ト以外の全てのエージェントに対応するマスクフラグの
値が論理値“1”に変更されるため、バス独占モードに
設定されているバスエージェント以外のバスエージェン
トからのバス使用要求はゲート43A〜43Dで遮断さ
れ、アービタ3には伝達されない。
A〜42Dの値は論理値“0”なので、全てのバス使用
要求REQA〜REQDはゲート43A〜43Dで遮断
されることなく、そのままアービタ3に伝達される。し
かし、或るエージェントのみにバスを独占的に許可する
バス独占モードが要求されている場合、そのエージェン
ト以外の全てのエージェントに対応するマスクフラグの
値が論理値“1”に変更されるため、バス独占モードに
設定されているバスエージェント以外のバスエージェン
トからのバス使用要求はゲート43A〜43Dで遮断さ
れ、アービタ3には伝達されない。
【0027】図3はライブ・ロック検出部11A〜11
Dの動作原理図である。各ライブ・ロック検出部11A
〜11Dの動作原理は同じなので、以下では、ライブ・
ロック検出部11Aを例に動作原理とその内部構成例を
説明する。
Dの動作原理図である。各ライブ・ロック検出部11A
〜11Dの動作原理は同じなので、以下では、ライブ・
ロック検出部11Aを例に動作原理とその内部構成例を
説明する。
【0028】ライブ・ロック検出部11Aは、自検出部
が担当するバスエージェントAの状態(ステート)を、
IDLEステート、RETRYステート、WAITステ
ートという3つのステートをとり得るステートマシンS
で管理する。IDLEステートからRETRYステート
へは、当該バスエージェントのバストランザクションが
初めてリトライ応答により終了した時点で遷移する。R
ETRYステートからWAITステートへは、他エージ
ェントが前記リトライ応答となったバススレーブと同じ
バススレーブに対してバストランザクションを実行し、
それが完了した時点で遷移する。WAITステートから
RETRYステートへは、当該バスエージェントAのト
ランザクションが再びリトライ応答で終了した時点で遷
移する。RETRYステートまたはWAITステートか
らIDLEステートへは、リトライされた当該バストラ
ンザクションが完了した時点で遷移する。
が担当するバスエージェントAの状態(ステート)を、
IDLEステート、RETRYステート、WAITステ
ートという3つのステートをとり得るステートマシンS
で管理する。IDLEステートからRETRYステート
へは、当該バスエージェントのバストランザクションが
初めてリトライ応答により終了した時点で遷移する。R
ETRYステートからWAITステートへは、他エージ
ェントが前記リトライ応答となったバススレーブと同じ
バススレーブに対してバストランザクションを実行し、
それが完了した時点で遷移する。WAITステートから
RETRYステートへは、当該バスエージェントAのト
ランザクションが再びリトライ応答で終了した時点で遷
移する。RETRYステートまたはWAITステートか
らIDLEステートへは、リトライされた当該バストラ
ンザクションが完了した時点で遷移する。
【0029】他方、ライブ・ロック検出部11Aは、自
検出部が担当するバスエージェントAに対応するカウン
タCを持つ。カウンタCは当該バスエージェントAのス
テートマシンSがRETRYステートである場合にのみ
動作し、他エージェントが同じバススレーブに対するバ
ストランザクションを完了すると、プラス1され、当該
バスエージェントAがバストランザクションを完了する
と、初期値のゼロにリセットされる。
検出部が担当するバスエージェントAに対応するカウン
タCを持つ。カウンタCは当該バスエージェントAのス
テートマシンSがRETRYステートである場合にのみ
動作し、他エージェントが同じバススレーブに対するバ
ストランザクションを完了すると、プラス1され、当該
バスエージェントAがバストランザクションを完了する
と、初期値のゼロにリセットされる。
【0030】また、ライブ・ロック検出部11Aは、カ
ウンタCの値と図1の閾値レジスタ10に相当するレジ
スタRに設定された閾値とを比較する比較器COMPを
持つ。比較器COMPは、カウンタCの値がレジスタR
に設定された閾値に達すると、当該バスエージェントA
がライブ・ロック状態に陥ったと判断し、バス独占モー
ド設定部4に対してバスエージェントAのみにバスを許
可するバス独占モードへの移行を要求する。
ウンタCの値と図1の閾値レジスタ10に相当するレジ
スタRに設定された閾値とを比較する比較器COMPを
持つ。比較器COMPは、カウンタCの値がレジスタR
に設定された閾値に達すると、当該バスエージェントA
がライブ・ロック状態に陥ったと判断し、バス独占モー
ド設定部4に対してバスエージェントAのみにバスを許
可するバス独占モードへの移行を要求する。
【0031】図4はライブ・ロック検出部11Aの内部
構成例を示すブロック図である。ステートフラグ101
はバスエージェントAのステートマシンSを保持するフ
ラグである。ステートフラグ101の出力は、IDLE
変更部102,RETRY変更部103,WAIT変更
部104を介してステートフラグ101の入力に戻され
ると共に、ステートマシンSがRETRYステートか否
かを判別するRETRY判別器105に入力される。I
DLE変更部102はゲート106の出力が論理値
“1”になると起動し、ステートフラグ101中のステ
ートマシンSをIDLEステートに変更する。RETR
Y変更部103はゲート107の出力が論理値“1”に
なると起動し、ステートフラグ101中のステートマシ
ンSをRETRYステートに変更する。WAIT変更部
104はゲート108の出力が論理値“1”になると起
動し、ステートフラグ101中のステートマシンSをW
AITステートに変更する。
構成例を示すブロック図である。ステートフラグ101
はバスエージェントAのステートマシンSを保持するフ
ラグである。ステートフラグ101の出力は、IDLE
変更部102,RETRY変更部103,WAIT変更
部104を介してステートフラグ101の入力に戻され
ると共に、ステートマシンSがRETRYステートか否
かを判別するRETRY判別器105に入力される。I
DLE変更部102はゲート106の出力が論理値
“1”になると起動し、ステートフラグ101中のステ
ートマシンSをIDLEステートに変更する。RETR
Y変更部103はゲート107の出力が論理値“1”に
なると起動し、ステートフラグ101中のステートマシ
ンSをRETRYステートに変更する。WAIT変更部
104はゲート108の出力が論理値“1”になると起
動し、ステートフラグ101中のステートマシンSをW
AITステートに変更する。
【0032】一致検出部109は、バスマスタIDレジ
スタ6に保持されているバスマスタID、つまり現バス
トランザクションのバスマスタがバスエージェントAで
あるか否かを検出する部分であり、現バストランザクシ
ョンのバスマスタがバスエージェントAであるとき、そ
の出力を論理値“1”とし、ゲート106,107を開
状態とする。ゲート106には完了フラグ9の出力が入
力されているため、バスエージェントAのバストランザ
クションが完了すると、ゲート106の出力が論理値
“1”となり、IDLE変更部102が起動される。同
時に、ゲート106の出力により、図3のカウンタCに
相当するカウンタ110がゼロにリセットされると共
に、リトライ中のバススレーブのIDを保持するための
バススレーブIDレジスタ111がリセットされる。な
お、ゲート106の出力は指示部112にも供給されて
いる。
スタ6に保持されているバスマスタID、つまり現バス
トランザクションのバスマスタがバスエージェントAで
あるか否かを検出する部分であり、現バストランザクシ
ョンのバスマスタがバスエージェントAであるとき、そ
の出力を論理値“1”とし、ゲート106,107を開
状態とする。ゲート106には完了フラグ9の出力が入
力されているため、バスエージェントAのバストランザ
クションが完了すると、ゲート106の出力が論理値
“1”となり、IDLE変更部102が起動される。同
時に、ゲート106の出力により、図3のカウンタCに
相当するカウンタ110がゼロにリセットされると共
に、リトライ中のバススレーブのIDを保持するための
バススレーブIDレジスタ111がリセットされる。な
お、ゲート106の出力は指示部112にも供給されて
いる。
【0033】また、ゲート107にはリトライ応答フラ
グ8の出力が入力されているため、一致検出部109の
出力が論理値“1”になると、つまり、現バストランザ
クションのバスマスタがバスエージェントAであり、し
かもそのバストランザクションがリトライ応答で終了す
ると、ゲート107の出力が論理値“1”になり、RE
TRY変更部103が起動される。同時に、ゲート10
7の出力により、バススレーブIDレジスタ7に保持さ
れていた当該バストランザクションにかかるバススレー
ブのIDがレジスタ111にセットされる。
グ8の出力が入力されているため、一致検出部109の
出力が論理値“1”になると、つまり、現バストランザ
クションのバスマスタがバスエージェントAであり、し
かもそのバストランザクションがリトライ応答で終了す
ると、ゲート107の出力が論理値“1”になり、RE
TRY変更部103が起動される。同時に、ゲート10
7の出力により、バススレーブIDレジスタ7に保持さ
れていた当該バストランザクションにかかるバススレー
ブのIDがレジスタ111にセットされる。
【0034】他方、不一致検出部113は、バスマスタ
IDレジスタ6に保持されたバスマスタIDがバスエー
ジェントA以外のバスエージェントのものであるか否か
を検出する部分であり、バスエージェントA以外の場合
にその出力を論理値“1”にして、ゲート114を開状
態とする。ゲート114の入力には、バススレーブID
レジスタ7の出力が入力されているため、バスエージェ
ントA以外のエージェントがバスマスタとなってバスト
ランザクションが実行されたとき、そのバストランザク
ションにかかるバススレーブのIDがゲート114を通
過して一致検出部115に入力され、若しレジスタ11
1にバスエージェントAがリトライ中のバススレーブの
IDがセットされている場合には、一致検出部115で
両者が比較される。一致検出部115は、バスエージェ
ントAがリトライ中のバススレーブと同じバススレーブ
に対する他のバスエージェントによるバストランザクシ
ョンを検出すると、ゲート108への出力を論理値
“1”にする。ゲート108には、他の入力として、完
了フラグ9の出力と、バスエージェントAのステートマ
シンがRETRYステートであるか否かを検出している
RETRY検出部105の出力が入力されており、バス
エージェントAがRETRYステートにあり、かつ、バ
スエージェントAがリトライ応答で終了したバストラン
ザクションのバススレーブと同じバススレーブに対する
他のバスエージェントによるバストランザクションが完
了した場合、ゲート108の出力が論理値“1”にな
り、WAIT変更部104が起動される。同時にゲート
108の出力により、カウンタ110がプラス1だけカ
ウントアップされる。
IDレジスタ6に保持されたバスマスタIDがバスエー
ジェントA以外のバスエージェントのものであるか否か
を検出する部分であり、バスエージェントA以外の場合
にその出力を論理値“1”にして、ゲート114を開状
態とする。ゲート114の入力には、バススレーブID
レジスタ7の出力が入力されているため、バスエージェ
ントA以外のエージェントがバスマスタとなってバスト
ランザクションが実行されたとき、そのバストランザク
ションにかかるバススレーブのIDがゲート114を通
過して一致検出部115に入力され、若しレジスタ11
1にバスエージェントAがリトライ中のバススレーブの
IDがセットされている場合には、一致検出部115で
両者が比較される。一致検出部115は、バスエージェ
ントAがリトライ中のバススレーブと同じバススレーブ
に対する他のバスエージェントによるバストランザクシ
ョンを検出すると、ゲート108への出力を論理値
“1”にする。ゲート108には、他の入力として、完
了フラグ9の出力と、バスエージェントAのステートマ
シンがRETRYステートであるか否かを検出している
RETRY検出部105の出力が入力されており、バス
エージェントAがRETRYステートにあり、かつ、バ
スエージェントAがリトライ応答で終了したバストラン
ザクションのバススレーブと同じバススレーブに対する
他のバスエージェントによるバストランザクションが完
了した場合、ゲート108の出力が論理値“1”にな
り、WAIT変更部104が起動される。同時にゲート
108の出力により、カウンタ110がプラス1だけカ
ウントアップされる。
【0035】カウンタ110のカウント値は図3の比較
器COMPに相当する比較器116において、閾値レジ
スタ10の閾値と比較され、カウント値が閾値に達する
と、その出力が論理値“1”となる。指示部112は、
比較器116の出力が論理値“1”になると、バス独占
モード設定部4に対し、バスエージェントAのみにバス
を許可するバス独占モードへ移行するよう要求する。そ
の後、バスエージェントAにバス使用権が与えられ、バ
ストランザクションがリトライされて完了すると、ゲー
ト106の出力が論理値“1”となるので、指示部11
2は、上記の要求を取り下げる。
器COMPに相当する比較器116において、閾値レジ
スタ10の閾値と比較され、カウント値が閾値に達する
と、その出力が論理値“1”となる。指示部112は、
比較器116の出力が論理値“1”になると、バス独占
モード設定部4に対し、バスエージェントAのみにバス
を許可するバス独占モードへ移行するよう要求する。そ
の後、バスエージェントAにバス使用権が与えられ、バ
ストランザクションがリトライされて完了すると、ゲー
ト106の出力が論理値“1”となるので、指示部11
2は、上記の要求を取り下げる。
【0036】図5は、ライブ・ロック状態が発生してい
る様子とそれが解消される様子を示すタイミングチャー
トの一例である。なお、閾値は「4」とした。図5を参
照すると、バスは以下のように動作している。
る様子とそれが解消される様子を示すタイミングチャー
トの一例である。なお、閾値は「4」とした。図5を参
照すると、バスは以下のように動作している。
【0037】T1;バスエージェントAは、バス使用要
求REQAをアサートすることで、バスアービタ2に対
するバス使用要求をアサートする。 T2;バスアービタ2は、バス使用許可信号GRANT
Aをアサートし、バスエージェントAにバスの使用を許
可する。 T3;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T4;(バッファフルなどの理由で)バストランザクシ
ョンはRETRYアサートによりリトライ応答で終了す
る。次のクロックで、バスアービタ2内のバスエージェ
ントA対応のステートマシンSがIDLEからRETR
Yに遷移する。 T5;バスがあいたので、バスアービタ2は、バス使用
要求REQBが出ているバスエージェントBに、バス使
用許可信号GRANTBをアサートして、バスの使用を
許可する。 T6;バスエージェントBは、バスを使用しバストラン
ザクションを実行する。 T7;バストランザクションはCOMPLETEアサー
トにより完了する。次のクロックで、バスアービタ2内
のバスエージェントA対応のステートマシンSがRET
RYからWAITに遷移し、バスエージェントA対応の
カウンタが+1される。 T8;バスがあいたので、バスアービタ2は、バス使用
要求REQAが出ているバスエージェントAに、バス使
用許可信号GRANTAをアサートして、バスの使用を
許可する。 T9;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T10;(バッファフルなどの理由で)バストランザクシ
ョンはRETRYアサートによりリトライ応答で終了す
る。次のクロックで、バスアービタ2内のバスエージェ
ントA対応のステートマシンSがWAITからRETR
Yに遷移する。 T11;バスがあいたので、バスアービタ2は、バス使用
要求REQBが出ているバスエージェントBに、バス使
用許可信号GRANTBをアサートして、バスの使用を
許可する。 T12;バスエージェントBは、バスを使用しバストラン
ザクションを実行する。 T13;バストランザクションはCOMPLETEアサー
トにより完了する。次のクロックで、バスアービタ2内
のバスエージェントA対応のステートマシンSがRET
RYからWAITに遷移し、バスエージェントA対応の
カウンタが+1される。
求REQAをアサートすることで、バスアービタ2に対
するバス使用要求をアサートする。 T2;バスアービタ2は、バス使用許可信号GRANT
Aをアサートし、バスエージェントAにバスの使用を許
可する。 T3;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T4;(バッファフルなどの理由で)バストランザクシ
ョンはRETRYアサートによりリトライ応答で終了す
る。次のクロックで、バスアービタ2内のバスエージェ
ントA対応のステートマシンSがIDLEからRETR
Yに遷移する。 T5;バスがあいたので、バスアービタ2は、バス使用
要求REQBが出ているバスエージェントBに、バス使
用許可信号GRANTBをアサートして、バスの使用を
許可する。 T6;バスエージェントBは、バスを使用しバストラン
ザクションを実行する。 T7;バストランザクションはCOMPLETEアサー
トにより完了する。次のクロックで、バスアービタ2内
のバスエージェントA対応のステートマシンSがRET
RYからWAITに遷移し、バスエージェントA対応の
カウンタが+1される。 T8;バスがあいたので、バスアービタ2は、バス使用
要求REQAが出ているバスエージェントAに、バス使
用許可信号GRANTAをアサートして、バスの使用を
許可する。 T9;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T10;(バッファフルなどの理由で)バストランザクシ
ョンはRETRYアサートによりリトライ応答で終了す
る。次のクロックで、バスアービタ2内のバスエージェ
ントA対応のステートマシンSがWAITからRETR
Yに遷移する。 T11;バスがあいたので、バスアービタ2は、バス使用
要求REQBが出ているバスエージェントBに、バス使
用許可信号GRANTBをアサートして、バスの使用を
許可する。 T12;バスエージェントBは、バスを使用しバストラン
ザクションを実行する。 T13;バストランザクションはCOMPLETEアサー
トにより完了する。次のクロックで、バスアービタ2内
のバスエージェントA対応のステートマシンSがRET
RYからWAITに遷移し、バスエージェントA対応の
カウンタが+1される。
【0038】以下、T8〜T13の動作を2回繰り返す。
この間、ライブ・ロック状態により、バスエージェント
Aはバストランザクションを完了できないでいる。
この間、ライブ・ロック状態により、バスエージェント
Aはバストランザクションを完了できないでいる。
【0039】T26;バスエージェントAに対応するカウ
ンタの値が4になり、閾値と比較して一致するため、バ
スアービタ2は、バスエージェントAがライブ・ロック
状態に陥ったと判断し、バス独占モードがアサートされ
る。従って、この後、バスアービタ2は、バスエージェ
ントAのみにバス使用権を発行する。 T29;T28でバスが解放されたが、バスエージェントA
のバス独占モードなので、バスアービタ2は、バスエー
ジェントBにバス使用権を与えない。 T30;バスアービタ2は、バス使用許可信号GRANT
Aをアサートし、バスエージェントAにバス使用を許可
する。 T31;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T32;(直前にバスエージェントBがバストランザクシ
ョンを行わなかったので、バッファフルなどの理由がな
くなり)、バストランザクションはCOMPLETEア
サートにより完了する。次のクロックで、バスアービタ
2内のバスエージェントA対応のステートマシンSがI
DLEに遷移し、バスエージェントA対応のカウンタが
クリアされる。また、本クロックでバス独占モードは終
了する。
ンタの値が4になり、閾値と比較して一致するため、バ
スアービタ2は、バスエージェントAがライブ・ロック
状態に陥ったと判断し、バス独占モードがアサートされ
る。従って、この後、バスアービタ2は、バスエージェ
ントAのみにバス使用権を発行する。 T29;T28でバスが解放されたが、バスエージェントA
のバス独占モードなので、バスアービタ2は、バスエー
ジェントBにバス使用権を与えない。 T30;バスアービタ2は、バス使用許可信号GRANT
Aをアサートし、バスエージェントAにバス使用を許可
する。 T31;バスエージェントAは、バスを使用しバストラン
ザクションを実行する。 T32;(直前にバスエージェントBがバストランザクシ
ョンを行わなかったので、バッファフルなどの理由がな
くなり)、バストランザクションはCOMPLETEア
サートにより完了する。次のクロックで、バスアービタ
2内のバスエージェントA対応のステートマシンSがI
DLEに遷移し、バスエージェントA対応のカウンタが
クリアされる。また、本クロックでバス独占モードは終
了する。
【0040】
【発明の効果】以上説明したように本発明によれば、或
る装置のバストランザクションのみが常にリトライ応答
になるというライブ・ロック状態を検出することがで
き、そして、ライブ・ロック状態を回避することができ
る。このため、ライブ・ロック状態が継続することによ
るタイムアウト等の発生を防止することができる。
る装置のバストランザクションのみが常にリトライ応答
になるというライブ・ロック状態を検出することがで
き、そして、ライブ・ロック状態を回避することができ
る。このため、ライブ・ロック状態が継続することによ
るタイムアウト等の発生を防止することができる。
【図1】本発明を適用した共通バスシステムの一実施例
のブロック図である。
のブロック図である。
【図2】バス独占モード設定部の構成例を示す図であ
る。
る。
【図3】ライブ・ロック検出部の動作原理図である。
【図4】ライブ・ロック検出部の内部構成例を示すブロ
ック図である。
ック図である。
【図5】ライブ・ロック状態が発生している様子とそれ
が解消される様子を示すタイミングチャートである。
が解消される様子を示すタイミングチャートである。
【図6】ライブ・ロック状態の説明図である。
1…共通バス 2…バスアービタ 3…アービタ 4…バス独占モード設定部 5…バストランザクション検出部 6…バスマスタIDレジスタ 7…バススレーブIDレジスタ 8…リトライ応答フラグ 9…完了フラグ 10…閾値レジスタ 11A〜11D…ライブ・ロック検出部
Claims (9)
- 【請求項1】 共通バスに接続された複数の装置と、該
複数の装置からのバス使用要求を調停する調停回路とを
含み、前記共通バスの使用権を得た装置がバスマスタと
なってデータ送信相手であるバススレーブとなる装置に
対して前記共通バスを介してデータを転送する共通バス
システムにおけるライブ・ロック検出方法であって、
(a)バススレーブに対するバストランザクションがリ
トライ応答となったバスマスタを検出するステップと、
(b)前記ステップaで検出されたバスマスタがバス使
用権を再度得て同じ前記バススレーブに対して前記バス
トランザクションのリトライを繰り返している期間中
に、同じバススレーブに対する他のバスマスタにかかる
バストランザクションが成功した回数を計数するステッ
プと、(c)前記計数された回数が予め設定された回数
に達したときに前記ステップaで検出されたバスマスタ
がライブ・ロック状態に陥っていると判断するステップ
とを含むことを特徴とするライブ・ロック検出方法。 - 【請求項2】 共通バスに接続された複数の装置と、該
複数の装置からのバス使用要求を調停する調停回路とを
含み、前記共通バスの使用権を得た装置がバスマスタと
なってデータ送信相手であるバススレーブとなる装置に
対して前記共通バスを介してデータを転送する共通バス
システムにおけるライブ・ロック検出方法であって、
(a)バスマスタとなり得る装置に対応してステートマ
シンとカウンタとレジスタを準備するステップと、
(b)共通バス上で実行中のバストランザクションを検
出するステップと、(c)前記ステップbで検出された
バストランザクションがリトライ応答で終了したとき、
当該バストランザクションにかかるバスマスタに対応す
る前記レジスタに当該バストランザクションにかかるバ
ススレーブのIDをセットすると共に対応するステート
マシンにRETRYステートを設定するステップと、
(d)前記ステップbで検出されたバストランザクショ
ンが完了したとき、当該バストランザクションにかかる
バスマスタに対応する前記カウンタをリセットすると共
に対応するステートマシンにIDLEステートを設定
し、且つ、当該バストランザクションにかかるバスマス
タ以外のバスマスタであって対応する前記ステートマシ
ンがIDLEステートであり然も対応する前記レジスタ
に当該バストランザクションにかかるバススレーブと同
じバススレーブのIDがセットされているバスマスタに
対応する前記カウンタを歩進すると共に対応するステー
トマシンにWAITステートを設定するステップと、
(e)対応する前記カウンタの値が予め定められた閾値
に達したバスマスタをライブ・ロック状態に陥っている
と判断するステップとを含むことを特徴とするライブ・
ロック検出方法。 - 【請求項3】 ライブ・ロック状態に陥った前記バスマ
スタに前記共通バスを独占的に使用させるステップを更
に含むことを特徴とする請求項1または2記載のライブ
・ロック検出方法。 - 【請求項4】 前記共通バスを独占的に使用させた前記
バスマスタの前記バストランザクションのリトライが成
功したとき、前記バスマスタに前記共通バスを独占的に
使用させる状態を解除するステップを更に含むことを特
徴とする請求項3記載のライブ・ロック検出方法。 - 【請求項5】 共通バスに接続された複数の装置と、該
複数の装置からのバス使用要求を調停する調停回路とを
含み、前記共通バスの使用権を得た装置がバスマスタと
なってデータ送信相手であるバススレーブとなる装置に
対して前記共通バスを介してデータを転送する共通バス
システムにおいて、 バスマスタとなり得る装置に対応して設けられたステー
トマシン、カウンタ及びレジスタと、 共通バス上で実行中のバストランザクションを検出する
手段と、 前記検出されたバストランザクションがリトライ応答で
終了したとき、当該バストランザクションにかかるバス
マスタに対応する前記レジスタに当該バストランザクシ
ョンにかかるバススレーブのIDをセットすると共に対
応するステートマシンにRETRYステートを設定する
手段と、 前記検出されたバストランザクションが完了したとき、
当該バストランザクションにかかるバスマスタに対応す
る前記カウンタをリセットすると共に対応するステート
マシンにIDLEステートを設定する手段と、 前記検出されたバストランザクションが完了したとき、
当該バストランザクションにかかるバスマスタ以外のバ
スマスタであって対応する前記ステートマシンがIDL
Eステートであり然も対応する前記レジスタに当該バス
トランザクションにかかるバススレーブと同じバススレ
ーブのIDがセットされているバスマスタに対応する前
記カウンタを歩進すると共に対応するステートマシンに
WAITステートを設定する手段と、 対応する前記カウンタの値が予め定められた閾値に達し
たバスマスタをライブ・ロック状態に陥っていると判断
する手段とを含むことを特徴とするライブ・ロック検出
装置。 - 【請求項6】 ライブ・ロック状態に陥った前記バスマ
スタに前記共通バスを独占的に使用させる手段を更に含
むことを特徴とする請求項5記載のライブ・ロック検出
装置。 - 【請求項7】 前記共通バスを独占的に使用させた前記
バスマスタの前記バストランザクションのリトライが成
功したとき、前記バスマスタに前記共通バスを独占的に
使用させる状態を解除する手段を更に含むことを特徴と
する請求項6記載のライブ・ロック検出装置。 - 【請求項8】 共通バスに接続された複数の装置と、該
複数の装置からのバス使用要求を調停する調停回路とを
含む共通バスシステムにおける前記調停回路において、 ライブ・ロック状態に陥った装置を検出する手段と、ラ
イブ・ロック状態に陥った装置にのみ前記共通バスを独
占的に使用させる手段とを備えることを特徴とする調停
回路。 - 【請求項9】 前記ライブ・ロック状態に陥った装置を
検出する手段は、 前記共通バス上で実行中のバストランザクションを検出
するバストランザクション検出手段と、 バスマスタとなり得る装置に1対1に対応して設けら
れ、対応する装置がライブ・ロック状態に陥ったか否か
を検出するライブ・ロック検出手段とを含み、 前記ライブ・ロック検出手段は、 ステートマシン、カウンタ及びレジスタと、 前記バストランザクション検出手段で検出されたバスト
ランザクションが自検出手段に対応する装置をバスマス
タとするバストランザクションで、リトライ応答で終了
したとき、前記レジスタに当該バストランザクションに
かかるバススレーブのIDをセットすると共に前記ステ
ートマシンにRETRYステートを設定する手段と、 前記バストランザクション検出手段で検出されたバスト
ランザクションが自検出手段に対応する装置をバスマス
タとするバストランザクションで、完了したとき、前記
カウンタをリセットすると共に前記ステートマシンにI
DLEステートを設定する手段と、 前記ステートマシンにRETRYステートが設定されて
おり、かつ、前記バストランザクション検出手段で検出
されたバストランザクションが自検出手段に対応する装
置以外の装置をバスマスタとするバストランザクション
で、完了し、然も前記レジスタに当該バストランザクシ
ョンにかかるバススレーブと同じバススレーブのIDが
セットされているとき、前記カウンタを歩進すると共に
前記ステートマシンにWAITステートを設定する手段
と、 前記カウンタの値が予め定められた閾値に達したとき、
自検出手段に対応する装置がライブ・ロック状態に陥っ
ていると判断する手段とを含むことを特徴とする請求項
8記載の調停回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11125864A JP2000315188A (ja) | 1999-05-06 | 1999-05-06 | ライブ・ロック検出方法及びその装置並びに調停回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11125864A JP2000315188A (ja) | 1999-05-06 | 1999-05-06 | ライブ・ロック検出方法及びその装置並びに調停回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000315188A true JP2000315188A (ja) | 2000-11-14 |
Family
ID=14920835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11125864A Pending JP2000315188A (ja) | 1999-05-06 | 1999-05-06 | ライブ・ロック検出方法及びその装置並びに調停回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000315188A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007087247A (ja) * | 2005-09-26 | 2007-04-05 | Nec Electronics Corp | バス制御システム |
JP2008046980A (ja) * | 2006-08-18 | 2008-02-28 | Fujitsu Ltd | リクエスト送信制御装置およびリクエスト送信制御方法 |
US7865645B2 (en) | 2008-05-14 | 2011-01-04 | Samsung Electronics Co., Ltd. | Bus arbiter, bus device and system for granting successive requests by a master without rearbitration |
-
1999
- 1999-05-06 JP JP11125864A patent/JP2000315188A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007087247A (ja) * | 2005-09-26 | 2007-04-05 | Nec Electronics Corp | バス制御システム |
JP2008046980A (ja) * | 2006-08-18 | 2008-02-28 | Fujitsu Ltd | リクエスト送信制御装置およびリクエスト送信制御方法 |
US7865645B2 (en) | 2008-05-14 | 2011-01-04 | Samsung Electronics Co., Ltd. | Bus arbiter, bus device and system for granting successive requests by a master without rearbitration |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5535341A (en) | Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation | |
JP3231596B2 (ja) | 待ち時間及びシャドー・タイマを有するバス・システム | |
US6145016A (en) | System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer | |
US5127089A (en) | Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence | |
KR910007750B1 (ko) | 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치 | |
EP0358716B1 (en) | Node for servicing interrupt request messages on a pended bus | |
JPH0625985B2 (ja) | 多重プロセッサコンピュータシステムにおけるプロセッサによるシステムリソースに対する適切なアクセスを保証するための方法及び装置 | |
US5428794A (en) | Interrupting node for providing interrupt requests to a pended bus | |
JPH06236329A (ja) | デッドロック検出およびマスキング装置 | |
JPH08255124A (ja) | データ処理システムおよび方法 | |
US4979099A (en) | Quasi-fair arbitration scheme with default owner speedup | |
WO1996036912A2 (en) | Address and data bus arbiter for pipelined transactions on a split bus | |
US6697904B1 (en) | Preventing starvation of agents on a bus bridge | |
US6275890B1 (en) | Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration | |
JPH103447A (ja) | バスブリッジ装置 | |
US5764933A (en) | Deadlock prevention in a two bridge system by flushing write buffers in the first bridge | |
USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
JP2000315188A (ja) | ライブ・ロック検出方法及びその装置並びに調停回路 | |
US6973520B2 (en) | System and method for providing improved bus utilization via target directed completion | |
US6216193B1 (en) | Apparatus and method in a network interface for recovering from complex PCI bus termination conditions | |
US5708783A (en) | Data bus arbiter for pipelined transactions on a split bus | |
JP5239769B2 (ja) | リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム | |
US7047284B1 (en) | Transfer request bus node for transfer controller with hub and ports | |
JPH09114750A (ja) | バス制御装置 | |
JPH03263158A (ja) | 共通バス調停制御方式 |