(57)【要約】【課題】  この発明は、バス・ブリッジにＩＥＥＥ  １３９４に準拠したバスとの異なる動作バスとが接続されている場合に、ＩＥＥＥ  １３９４以外のバスにアクセス権が亘らない状況を回避することを目的とする。【解決手段】  システム内のローカルバスである１次側バスと２次側のバスに相当するバスとのインターフェースを行うブリッジデバイスであり、かつ１デバイスで２種類以上の異なる動作をサポートし、そのうちの１種類がＩＥＥＥ  １３９４に準拠したシリアルバスであるバス・ブリッジのアビトレーション方法であって、２次側のアービトレーションの状態にかかわらず、１次側から２次側へのアクセスの場合はそのアクセスを最優先することを特徴とする。【選択図】  図１
2007004824.tif 000002
【特許請求の範囲】
【請求項１】
システム内のローカルバスである１次側バスと２次側のバスに相当するバスとのインターフェースを行うブリッジデバイスであり、かつ１デバイスで２種類以上の異なる動作をサポートし、そのうちの１種類がＩＥＥＥ  １３９４に準拠したシリアルバスであるバスブリッジのアビトレーション方法であって、２次側のアービトレーションの状態にかかわらず、１次側から２次側へのアクセスの場合はそのアクセスを最優先することを特徴とするバス・ブリッジのアービトレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バスブリッジにおけるアビトレーション方法に関し、パーソナルコンピュータなどの  ＰＣＩ−ＰＣＩ  ブリッジ（Ｂｒｉｄｇｅ），ＰＣＩ−カードバス（Ｃａｒｄ  Ｂｕｓ）  Ｂｒｉｄｇｅ，ＰＣＩ−ＩＥＥＥ  １３９４（ＯＨＣＩ−Ｌｉｎｋ）  Ｂｒｉｄｇｅなどのバス・ブリッジにおけるアビトレーション方法に関する。      
【背景技術】
【０００２】
コンピュータの性能は年々加速し、それに合わせて記憶装置などの周辺機器も高速、高度化している。そして、これら周辺機器やコンピュータに使用されるインターフェースとして、ＩＥＥＥ  １３９４インターフェースがある。このＩＥＥＥ  １３９４は、コンシューマとコンピュータにまたがる次世代のマルチメディア用の高速シリアルバスとしてＩＥＥＥで規格化されたインターフェースである。
【０００３】
このＩＥＥＥ  １３９４では、１００Ｍｂｐｓから４００Ｍｂｐｓのデータ転送速度が規定されている。そして、ＩＥＥＥ  １３９４では、アイソクロナス転送が可能であり、このアイソクロナス転送を利用することでリアルタイム性の保証が得られる。即ち、ＩＥＥＥ  １３９４のアイソクロナス転送では１２５μｓごとに必ず優先権が割り当てられるため、リアルタイム性を保証した転送が行える。
【０００４】
上記したＩＥＥＥ  １３９４は、Ｉ／Ｏではなくバスであり、システムに用いる場合には、システム内のローカルバスである１次側バスと２次側バスとのバスとのインタフェースを行うバス・ブリッジが使用される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
システムにおいては、バス・ブリッジの数に制限がある場合があり、１つのバス・ブリッジにバスにＩＤを付加して２以上のバスを接続することが行われている。
【０００６】
ところで、システム内のローカルバスである１次側バスと２次側のバスに相当するバスとのインターフェースを行うブリッジデバイスにおいて、１つのバス・ブリッジで２種類以上の異なる動作をサポートし、そのうちの１種類がＩＥＥＥ  １３９４に準拠したシリアルバスに関連する動作にすることが考えられる。
【０００７】
このようなバス・ブリッジにおいて、ＩＥＥＥ  １３９４側が１次側バスに対してアクセスを始めると、比較的まとまった時間データ転送を行う必要があり、その間１次側へのアクセス権を占有してしまう。そのうえ、アービトレーションを行う際、ＩＥＥＥ  １３９４側に優先権を与えたりしていると、他の２次側バスにアクセス権が亘らない畏れがある。
【０００８】
そこで、この発明は、アクセス権（Ａｃｋｎｏｗｌｅｄｇｅ  以下、ＡＣＫという。）を出す時には少なくとも、他の２次側バスにも平等にアクセス権を与えるようにすることで、アクセス権が亘らないという状況を回避することを目的とする。
【課題を解決するための手段】
【０００９】
この発明は、システム内のローカルバスである１次側バスと２次側のバスに相当するバスとのインターフェースを行うブリッジデバイスであり、かつ１デバイスで２種類以上の異なる動作をサポートし、そのうちの１種類がＩＥＥＥ  １３９４に準拠したシリアルバスであるバス・ブリッジのアビトレーション方法であって、１次側バスに対してアクセスする場合、２種類以上の２次側バスからアクセス要求が出されている場合、優先権を与えず全て平等の割合でアクセス権を与えることを特徴とする。
【００１０】
また、この発明は、上記２次側のバスの一つがＩＥＥＥ１３９４に準拠したシリアルバスであり、他の２次側バスがカードバスであることを特徴とする。
【００１１】
上記のように構成することで、アクセス権を各バスに与えることができる。
【００１２】
この発明は、ＩＥＥＥ  １３９４に準拠したシリアルバス側に一旦アクセス権を与えると他の２次側バスからアクセス要求が来ていてもＩＥＥＥ  １３９４に準拠したシリアルバス側のアクセス権を奪わないように構成するとよい。
【００１３】
上記のように構成することで、他の２次側バスにも平等にアクセス権を与えたとしても、一旦ＩＥＥＥ１３９４側がアクセス権を取得したら、他方からアクセス要求（Ｒｅｑｕｅｓｔ  以下、ＲＥＱという。）が来ていてもむやみにアクセス権を取り上げずＩＥＥＥ  １３９４側の処理が終わるまで待機させ、ＩＥＥＥ  １３９４側の誤動作を防ぐことができる。
【００１４】
また、この発明は、２次側バスがカードバスでかつカードスロットが２スロット以上ある場合、全てのスロットとＩＥＥＥ  １３９４に準拠したシリアルバスの全てからアクセス要求が来ている場合、まずＩＥＥＥ  １３９４に準拠したシリアルバスとカードバスでアービトレーションを行い、カードバス側にアクセス権を出す条件の場合に再度カードバスの各スロットのアービトレーションを行うように構成することができる。
【００１５】
また、アクセス権を与える優先度が変更可能に構成するとよい。
【００１６】
上記のように構成することで、他の２次側バスが、カードバスで２スロット以上ある場合、通常アービトレーション回路が複雑になるが、アービトレーションを２段階に分けることにより、アービトレーション回路を簡略化することができる。
【００１７】
また、２段階にすることにより各スロットとＩＥＥＥ  １３９４では、アクセス権が平等に与えられなくなってしまうため、１段目の優先度をフレキシブルに可変できるようにすることで、優先度を平等にすることができ、またシステムの状況に応じてより効率的なアービトレーションを行うことができる。
【００１８】
また、この発明は、システム内のローカルバスである１次側バスと２次側のバスに相当するバスとのインターフェースを行うブリッジデバイスであり、かつ１デバイスで２種類以上の異なる動作をサポートし、そのうちの１種類がＩＥＥＥ  １３９４に準拠したシリアルバスであるバス・ブリッジのアビトレーション方法であって、２次側のアービトレーションの状態にかかわらず、１次側から２次側へのアクセスの場合はそのアクセスを最優先することを特徴とする。
【００１９】
システムは、１次側から２次側へのアクセスも存在しており、上記の２次側のアービトレーション実行中は当然１次側のバスはアイドル状態で、１次側から２次側へのアクセスが発生する可能性は充分ある。そのアクセスが発生するとそれと、２次側から１次側へのアクセスが衝突し、誤動作を起こす可能性があるが、上記のように構成することで、回避することができる。
【発明の効果】
【００２０】
システムにおいては、１次側から２次側へのアクセスも存在しており、上記の２次側のアービトレーション実行中は当然１次側のバスはアイドル状態で、１次側から２次側へのアクセスが発生する可能性は充分あり、そのアクセスが発生するとそれと、２次側から１次側へのアクセスが衝突し、誤動作を起こす可能性があるが、１次側から２次側へのアクセスを最優先とすることで、誤動作を回避することができる。
【発明を実施するための最良の形態】
【００２１】
以下、この発明の実施の形態につき図面を参照して説明する。
【００２２】
図１は、この実施の形態のバス・ブリッジ部分を示すブロック図であり、ここでは、ホスト１側のバスマスター１０以外に３種類のバスマスター２ａ、２ｂ、３が接続されており、そのうちの１つが対象となるバス・ブリッジ３となる。そして、１次側のバスをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、２次側のバス・ブリッジ３の一方がＩＥＥＥ  １３９４で、もう一方は２スロットのカードバス（Ｃａｒｄ  Ｂｕｓ）２３Ａ、２３Ｂとしている。この場合バス・ブリッジ３の機能としては、ＰＣＩ−ＣａｒｄＢｕｓ  Ｂｒｉｄｇｅの機能と、ＰＣＩ−１３９４（ＯＨＣＩ−Ｌｉｎｋ）  Ｂｒｉｄｇｅの２つの機能をサポートしている。
【００２３】
このバス・ブリッジ３は、ＩＥＥＥ  １３９４（ＰＨＹ）２２と２つのカードバススロット２３Ａ、２３Ｂを備える。このため、バス・ブリッジ３には、スロットＡ、スロットＢ用のカードバスブロック３３、３４とＩＥＥＥ  １３９４用のブロック３５を備える。カードバスブロック３３，３４はカードバスプロトコルに従ったインタフェースを行い、ＩＥＥＥ  １３９４ブロック３５は、ＩＥＥＥ  １３９４のプロトコルに従ったバスコントロールとＰＨＹのインタフェースとを行う。
【００２４】
カードバスブロック２３Ａ、２３Ｂ及びＩＥＥＥ  １３９４ブロック３５はアービター３６により、アクセス要求が競合したときアビトレーションされる。
【００２５】
また、バス・ブリッジ３内はバススレーブ３１及びバスマスター３２が備えられ、バススレーブ３１から１次側バス２１のデータ、アドレス等が２次側バスに与えられ、バスマスター３２を介して２次側バスから１次側バスへアドレス、データ等が与えられる。バスマスター３２を介して１次側バス２１に与えられたデータ等はホスト１がバススレーブ１１を介して取り込む。
【００２６】
カードバスブロック３３、３４は、カードバス２３Ａ及び／または２３Ｂからアクセス要求（ＣＲＥＱＱ＃）が与えられると内部のスレーブで取り込み、アービター３６にアクセス要求（ＲＥＱ）を与える。アービター３６は後述するように、アビトレーションを行い、許可するバスブロックにアクセス権（Ａｃｋ）（Ｃａｒｄ  Ａｃｋ）を出力する。カードバスブロック３３、３４は、アービター３６からのＡｃｋ（Ｃａｒｄ  Ａｃｋ）に基づき、カードバス２３Ａまたは２３Ｂに許可信号ＣＧＮＴ＃をブロック内のマスタから与える。
【００２７】
カードバス２３Ａまたは２３Ｂは許可信号ＣＧＮＴ＃に基づき、アドレス、データ等をバスブロック３３または３４に与え、バスブロック３３または３４はアドレス、データ等をバスマスター３２から１次側バス２１に与える。
【００２８】
また、ＩＥＥＥ  １３９４ブロック３５は、１３９４（ＰＨＹ）２２からアクセス要求（ＲＥＱ１３９４）が与えられると、ＲＥＱ１３９４をアービター３６に与える。アービター３６は後述するように、アビトレーションを行い、アクセス権を与える場合にはＡｃｋ１３９４を出力する。ＩＥＥＥ  １３９４ブロック３５は、アービター３６からのＡｃｋ１３９４に基づき、１３９４（ＰＨＹ）２２にアクセス権ＲＥＱ１３９４を与える。
【００２９】
１３９４（ＰＨＹ）２２はＲＥＱ１３９４に基づき、ＩＥＥＥ  １３９４ブロック３５を介してアドレス、データをバスマスター３２から１次側バス２１に与える。
【００３０】
上記したように、この実施の形態においては、カードバス２３Ａ、２３Ｂは２スロット（Ｓｌｏｔ）タイプとするため、２次側バスから１次側バスへアクセス要求（ＲＥＱ）を出すエージェントは３つあることになる。一般的にアービトレーションとは１つのバスに競合するバスマスターが複数ある場合にどのマスターにアクセス権をあたえるかの調停を意味するが、この実施の形態の場合には、２次側バスは個別に別れており２次側バスが競合しているわけではない。この実施の形態におけるアービター３６はこの３つもしくは２つが同時にアクセス要求（ＲＥＱ）を出した時、どれが１次側バス２１のバスマスターになるかを調停するものである。
【００３１】
ここで、バスの占有時間の長いＩＥＥＥ  １３９４に優先権を与えると、カードバス（Ｃａｒｄ  Ｂｕｓ）２３Ａ、２３Ｂ側にアクセス権（ＡＣＫ）を返せないもしくは  ＡＣＫが返される確率が極端に低くなり、データ転送に支障をきたす畏れがある。
【００３２】
そこで、同時に２つ以上アクセス要求（ＲＥＱ）が来ているときは、ＩＥＥＥ
１３９４ブロック３５に優先権を与えず他のブロックと平等に同じ割合でＡＣＫを与えるようにする。このため、アービター３６は、内部にカウンタ等を有し、ＲＥＱを出しているものに対して、順番にアクセス権を与えるように構成している。この結果、各２次側バスに平等に同じ割合でアクセス権（Ａｃｋ）が与えられる。そして、順番にアクセス権を与えるので、アービター３６は特殊な回路は必要としない。
【００３３】
ところで、ＩＥＥＥ  １３９４（ＲＨＹ）２２に一旦アクセス権（ＡＣＫ）を与えるとカードバス（Ｃａｒｄ  Ｂｕｓ）２３Ａ及び／または２３Ｂ側からアクセス要求（ＲＥＱ）が来ていても、ＩＥＥＥ  １３９４の動作の特徴からＩＥＥＥ  １３９４側の動作が終了するまでは止められない。
【００３４】
そこで、アービター３６はＩＥＥＥ  １３９４がビジー（Ｂｕｓｙ）の場合、アクセス権（ＡＣＫ）をとりあげないようにする。この場合、アービター３６に１３９４のＢｕｓｙ信号を入力しモニタしても良いが、図２に示すように、Ｂｕｓｙ信号をＲＥＱに反映させ、即ち、１３９４Ｂｕｓｙ信号がたち下がると、ＲＥＱ１３９４をたち下げ、ＲＥＱ１３９４のたち下がりによりＡｃｋ１３９４をたち下げるようにする。このように、ＲＥＱが取り下げられるまでＡＣＫを出し続けるようにすることで、アービター３６への入力を増やすことなくＩＥＥＥ  １３９４がＢｕｓｙの場合、ＡＣＫをとりあげないようにすることができる。
【００３５】
ここで、カードバス（Ｃａｒｄ  Ｂｕｓ）はＩＥＥＥ  １３９４とは別に孤立したバスなので、ＡＣＫを返すこともできる。しかし１次側のバス２１の使用権がないので、データ転送ができないため、リトライさせる必要がある。
【００３６】
上記した実施の形態では、Ｃａｒｄ  Ｂｕｓで説明しているが、Ｃａｒｄ  Ｂｕｓの場合カード側から、ＲＥＱ，ＡＣＫに相当するＣＲＥＱ＃，ＣＧＮＴ＃が入力されるので、これをそのままアービター３６に入力することもできる。ただし、ここまでの例とは、極性が異なる（Ｌｏｗ  Ａｃｔｉｖｅ）ので注意が必要である。
【００３７】
ところで、アクセス要求（ＲＥＱ）を出すエージェントが上記の例のように３つ以上ある場合、回路構成が複雑になってしまう。
【００３８】
そこで、図３のようにアービター３６を第１のアービター３６ａと第２のアービター３６ｂの２段階に分けて行うようにする。第１のアービター３６ａではＩＥＥＥ  １３９４とカードバス（Ｃａｒｄ  Ｂｕｓ）のアービトレーションを行い、Ｃａｒｄ＿ＡＣＫが返されたときだけ、第２のアービター３２ｂがスロットＡとスロットＢのアービトレーションを行うようにする。
【００３９】
このようにすることで、第１のアービター３６ａと第２のアービター３６ｂはどちらも２つから１つを選択するアービターとなりほとんど同じ回路で構成することが可能である。このとき、Ｃａｒｄ＿ＲＥＱは単純にＲＥＱ＿ＡとＲＥＱ＿ＢのＯＲで生成することができる。
【００４０】
上記のような構成にすると、３つのエージェントに対し、平等にアクセス権を与えることができなくなる。上記の例では、スロットＡ：スロットＢ：ＩＥＥＥ
１３９４＝１：１：２の割合になる。
【００４１】
システムによってはこのままで良いこともあると考えられるが、平等にすることが理想的なシステムにおいては、第１のアービター３６ａの比率をカードバス：ＩＥＥＥ  １３９４＝２：１とすることができる機能を持たせることでほぼ平等にすることができる。ブリッジとしては、内部レジスタにこの比率の切替えビット（ｂｉｔ）をもつだけで良い。また、アービトレーション回路も特殊な回路は必要なく、例えばカードバス側に２回アクセス権を与えた後にＩＥＥＥ  １３９４に１回与えるというという動作にするだけで良い。
【００４２】
上記したバス・ブリッジ３においては、２次側のアービトレーション中に、１次側バス２１からのアクセスが発生した場合、２次側からのアクセスを受け付けてしまうと、１次側バスで衝突が起こり誤動作する畏れがある。
【００４３】
この場合１次側のアクセスをリトライ（その時点ではアクセスを受け付けずに強制終了し、あとで同じアクセスを再発行させる）させたりせず、最優先させるように構成する。これは、１次側のバスマスターがどのような処理をするか不明なので２次側からのアクセスを優先することはできないからである。アービター３６の動作としては、２次側バスに対してＡＣＫを返さないのが理想であるが、１次側バス２１のアクセスのタイミングによってはすでにＡＣＫを出してしまっている場合がある。この時は、リトライさせて対応する。もしくは、デバイスの内部で１次側のデータ処理のパスと２次側のパスが共通ではなく、別々のパスを通るようにしておくことで、２次側のアクセスも受け付けることが可能となる。しかし、１次側のバスはアイドル状態ではないのでバス・ブリッジ３内のバスマスター３２で待機させることになる。ＩＥＥＥ  １３９４の場合、２次側でリトライすることはできないため後者となるが、１次側からのアクセスは内部レジスタのアクセスとなるためパスを分けるなどの考慮の必要はない。
【００４４】
この発明は、ＩＥＥＥ  １３９４に準拠したシリアルバスと同様なシリアルバスとしてＵＳＢにも適用できる。
【図面の簡単な説明】
【００４５】
【図１】この発明に係るバスブリッジ部分を示すブロック図である。
【図２】この発明のＩＥＥＥ  １３９４の動作タイミングを示す図である。
【図３】この発明のアービターの一例を示すブロック図である。
【符号の説明】
【００４６】
１  ホスト
３  バス・ブリッジ
２２  １３９４ＰＨＹ
２３Ａ  ２３Ｂ  カードバス
３６  アービター
【図１】
2007004824.tif 000003
【図２】
2007004824.tif 000004
【図３】
2007004824.tif 000005