(57)【特許請求の範囲】
【請求項１】
共通バスに接続された複数の装置からのバス要求を、待ち時間タイマに基いて制御する方法において、
各バス要求に関連づけられた優先レベルの高低と、現時点でバスの制御権を有する第１の装置における残りの転送データの有無とに基いて、前記第１の装置の待ち時間タイマを変更するステップを含むことを特徴とする方法。
【請求項２】
バス・コントローラが、第２の装置からの要求の受信に応答して、第２の装置から受け取った前記要求に関連づけられた優先レベルとそれに関連づけられた未処理要求信号とを第１の装置に送信するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記第１の装置がバスの制御権を獲得した時に、その待ち時間タイマのカウンタを「０」に設定するステップ、
前記待ち時間が満了したか否かを調べるステップ、
前記待ち時間カウンタが満了したと判断した場合、第２の装置からの前記要求の優先レベルが、自己の要求の優先レベルよりも高いかどうかを判断するステップ、
前記第２の装置からの要求の優先レベルが、自己の要求の優先レベルよりも高いと判断した場合、バスの制御を終了するステップ、
を含む請求項１または２記載の方法。
【請求項４】
前記第２の装置からの要求の優先レベルが、自己の優先レベル以下であると判断した場合、転送すべきデータが残っているか否かを調べるステップ、
転送すべきデータが残っていると判断した場合、待ち時間タイマの設定を変更して、第１の装置がバスの制御を続けるステップ、
を含む請求項３記載の方法。
【請求項５】
待ち時間カウンタが満了していないと判断した場合、転送すべきデータが残っているか否かを調べるステップ、
転送すべきデータが残っていると判断した場合、バスの制御を続けるステップ、
を含む請求項３記載の方法。
【請求項６】
第１の装置がバスの制御権を獲得する前に、
バス・コントローラが同時に複数の装置からバス要求を受け取るステップ、
すべての要求優先レベルを比較し、最も高い優先レベルを持つ第１の装置にバスの制御権を付与するステップ、
をさらに含む、請求項１〜５のいずれか１項記載の方法。
【請求項７】
転送すべき前記データがアプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
共通バスに接続された複数の装置からのバス要求を、各装置に備えられる待ち時間タイマに基き制御するシステムにおいて、
各バス要求に関連づけられた優先レベルの高低と、現時点でバスの制御権を有する第１の装置における残りの転送データの有無とに基いて、前記第１の装置の待ち時間タイマを変更する手段を含むことを特徴とするシステム。
【請求項９】
バス・コントローラが、第２の装置からの要求の受信に応答して、第２の装置から受け取った前記要求に関連づけられた優先レベルとそれに関連づけられた未処理要求信号とを第１の装置に送信する手段を含む、請求項８記載のシステム。
【請求項１０】
各装置が、
バスの制御を獲得した時に、その待ち時間タイマのカウンタを「０」に設定する手段と、
待ち時間が満了したか否かを調べる手段と、
待ち時間が満了したと判断した場合、第２の装置からの前記要求の優先レベルが、自己の要求の優先レベルよりも高いかどうかを判断する手段と、
前記第２の装置からの要求の優先レベルが、自己の要求の優先レベルよりも高いと判断した場合、バスの制御を終了する手段と、
を含む請求項９記載のシステム。
【請求項１１】
転送すべきデータが残っているか否かを調べる手段と、
転送すべきデータが残っていると判断した場合、待ち時間タイマの設定を変更する手段とをさらに含む、請求項１０記載のシステム。
【請求項１２】
バス・コントローラが、同時に複数の装置からバス要求を受け取る手段と、
すべての要求優先レベルを比較し、最も高い優先レベルを持つ第１の装置にバスの制御権を付与する手段とを含む、請求項８〜１１のいずれか１項記載のシステム。
【請求項１３】
転送すべき前記データがアプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、請求項８〜１２のいずれか１項記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システム・バスのパフォーマンスに関し、具体的には、バスを動的に制御してスループットを向上させ、待ち時間を少なくすることに関する。
【０００２】
【従来の技術】
チップ密度の向上に伴い、単一の集積回路チップのファンクション数が増え続けている。このような「システム・オン・チップ」集積回路は一般に、共通の共用バス・アーキテクチャを使用して「コンピュータ・システム」の様々な装置およびサブシステム間に通信リンクを設ける。共通バスは、コンピュータ・システム内の複数の装置間で共用することができるため、低コストの通信リンクとなる。しかし、複数の装置を単一のバスにリンクすることによって、最大バス・パフォーマンスに関して問題が生じることがある。
【０００３】
共用バス・アーキテクチャでは最大バス・パフォーマンスの達成は困難な場合がある。バス・パフォーマンスに重大な影響を与える要因には、システム・スループット（すなわち帯域幅）とシステム応答時間（すなわち待ち時間）が含まれる。スループットまたは帯域幅を判断する場合のバス・トランザクションとは、伝送の受信側にある装置が完了させたバス・トランザクションである。スループットまたは帯域幅は、一定期間にわたる平均バス・トランザクション数である。応答時間または待ち時間は、特定の装置が最初にバスを要求したサイクルから始まってその装置から最後のデータがバスを介して第２の装置に転送されるサイクルまでの、特定の装置のバス・トランザクションが完了するのに要する時間である。バスへのアクセスまたはバスの制御を要求し、バスを介してデータの送受信を行う装置を「マスタ」と呼ぶ場合がある。バスを介してデータの送信または受信を行い、マスタに応答するバスを、「スレーブ」と呼ぶことがある。スレーブは、バスへのアクセスやバスの制御を要求することができない。
【０００４】
高度のバス・パフォーマンスを実現するためには、スループットは高くなければならず、待ち時間は短くなければならない。さらに、高水準のバス・スループットを実現するためには、スレーブは決して遊休（ｉｄｌｅ）状態にならないことが好ましく、したがって、バスは決して遊休状態にならないことが好ましい。しかしそれに対して、待ち時間はマスタが最初にバスを要求したサイクルから始まってマスタがバスを介して最後のデータを転送するサイクルまでのバス・トランザクションを完了するのに要する時間を指すため、待ち時間にはバスが使用可能（すなわち遊休状態）になるのをマスタが待つ時間が含まれる。その結果、待ち時間はバスを遊休状態にさせることによって短縮される。
【０００５】
スループットと応答時間を含むバス・パフォーマンスの問題に対処しようとして、いくつかの異なるアーキテクチャ設計が開発されている。それらの方式の多くは、バスの制御を獲得しようとする装置の「優先（ｐｒｉｏｒｉｔｙ）」レベルに依存する。たとえば、クラフト（Ｃｒａｆｔ）等の米国特許第５４３８６６６号には、バスへのアクセスを制御するアービトレーション・システムが記載されている。クラフト等のアービトレーション・システムは、より高い優先レベルを持つ第２の装置がバスへのアクセスを要求すると、第１の装置によるバスの制御に割込む。第２の装置がバスへのアクセスを完了すると、第１の装置にバスの制御が返される。制御の移行は、アクティブなバス要求を有するバス・マスタ間の優先レベルをアービトレートするタイミング・オーバーヘッドを要せずに実現される。
【０００６】
ベスト（Ｂｅｓｔ）等の米国特許第５１４０６８０号には、共通バスを共用する複数のマスタ装置とスレーブ装置を有するコンピュータ・ネットワークのためのバス・アービトレーション・システムが記載されている。このバス・アービトレーション・システムは、各マスタ装置内にバス・アービトレーション論理回路を含み、所与の時点でどのマスタがバスへのアクセス権を持つべきかを判断する際に最も遅いマスタの動作遅延を考慮する。
【０００７】
他の例として、本発明の出願人であるインターナショナル・ビジネス・マシーンズ・コーポレイションに譲渡されているヒース（Ｈｅａｔｈ）等の米国特許第５３８８２２８号には、中央アービトレーション制御回路と、共通バスへのアクセスを求める各装置に付随するローカル・アービタとを有するアービトレーション・システムが記載されている。ヒース等は、各装置を線形モードとフェアネス・モードのいずれかで動作するようにプログラミングする備えも設けている。フェアネス・モードで動作しているときは、バスへのアクセス権を持つ第１の装置が適切な数の伝送を完了した後は、第１の装置はバス・アクセスを要求する第２の装置に応答してバスの制御を放棄し、次に高い優先レベルを持つ要求側装置がバスの制御を獲得することができるようにする。
【０００８】
共通バスの共用を含むその他の設計は、長いバースト伝送を使用してスループットを向上させると同時に、マスタ待ち時間タイマを使用してバーストの長さを制限することで待ち時間を短縮することによって、高いスループットと短い待ち時間という相反する設計要件を満たそうと試みている。待ち時間タイマは一般に、プログラマブル・レジスタとカウンタを使用してマスタ内に実装することができる。マスタが共通バスの制御または所有権を維持することができる最大クロック・サイクル数を表す初期待ち時間カウント値がプログラマブル・レジスタにロードされる。カウンタは一般に、装置がバスの制御を獲得するたびにゼロにリセットされる。カウンタの値がレジスタに格納されている値に達すると（すなわち、待ち時間タイマが満了すると）、バスの制御権を有するそれに対応する装置はシステムのバス使用条件に係わらず、制御を放棄しなければならない。
【０００９】
その結果、バス使用量が少ない（すなわちバスを介したデータ転送量が比較的少ない）システムでは、待ち時間タイマが満了した装置、したがってバスを介して転送するデータがまだある場合でもバスの制御を放棄しなければならない装置は、帯域幅（すなわちスループット）が無用に制限されることがある。さらに、様々な装置が同時にバスを要求する、バス使用量が比較的多いシステムでは、装置は待ち時間タイマが満了するまでバスを使用する可能性が高い。待ち時間タイマが満了するまでの１つの装置のバス制御のために他の装置はバスが使用可能になるのを待つことになり、したがって、待ち時間が比較的長くなる。
【００１０】
さらに、システムにおけるバス使用条件は、たとえば少ない使用量から多い使用量になってまた少ない使用量になるというように、時間の経過と共に変化することがある。したがって、最大バス・パフォーマンスを実現するために各装置の待ち時間タイマを更新する必要が生じることがある。待ち時間タイマは、レジスタとカウンタをプログラムし直すことによって更新することができる。しかし、各装置の待ち時間タイマをプログラムし直すにはかなりのオーバーヘッドを要し、定期的に行う場合には特にそうである。したがって、待ち時間タイマを使用してバス・パフォーマンスを向上させるのは、バス使用条件の動的変更のために一般には効果的ではない。
【００１１】
複数装置システムにおいて共通バスへのアクセスを制御するために現在、様々なアービトレーション方式や待ち時間タイマが使用されているが、これらの従来の設計は、高スループットと低待ち時間という相反する設計要件を有効に満たすことができない。さらに、これらの従来の設計はバス使用条件の動的変更を考慮していない。最大バス・パフォーマンスを向上させるためには、高スループットと低待ち時間という相反する問題に対処しなければならないと同時に、バス使用条件の動的変更も考慮しなければならない。
【００１２】
【発明が解決しようとする課題】
したがって、本発明の目的は、複数の装置が共通バスを共用するコンピュータ・システムにおいてバス・パフォーマンスを向上させるシステム、方法、およびコンピュータ・プログラム製品を提供することである。
【００１３】
本発明の他の目的は、共通バスを共用する複数の装置を有するコンピュータ・システムにおいて、スループットを向上させ、待ち時間を短縮するシステム、方法、およびコンピュータ・プログラム製品を提供することである。
【００１４】
本発明の他の目的は、共通バスを共用する複数の装置を有するコンピュータ・システムにおいて、バス使用条件の動的変更に対応することによって、バス・パフォーマンスを向上させるシステム、方法、およびコンピュータ・プログラム製品を提供することである。
【００１５】
【課題を解決するための手段】
上記およびその他の目的は、本発明により、コンピュータ・システムにおけるスループットを向上させると同時に待ち時間を短縮することによって、共通バスにアクセスする複数の装置を有するコンピュータ・システムにおけるバス・パフォーマンスを向上させるシステムによって達成される。
【００１６】
本発明によるシステムは、優先レベルと待ち時間の作用を組合せることと、装置の待ち時間タイマを動的に制御することによって、共通バスへの複数の装置のアクセスを動的に制御する。システムにおける各マスタは、それに関連づけられた待ち時間タイマと優先レベル標識とを持つ。待ち時間タイマは、装置がバスを制御することができる最大サイクル数を表すレジスタと、制御のサイクル数をカウントするカウンタを使用して実装することができる。優先レベル標識は装置に関連する優先レベルを表す。
【００１７】
好ましい実施例では、システムは各装置に動作可能に接続されたバス・コントローラを使用してバスを動的に制御する。このバス・コントローラは、第１の装置に関連づけられた待ち時間タイマと、第１の装置に関連づけられた優先レベルと、バス・コントローラが第２の装置から受け取った未処理の要求に関連づけられた優先レベルとの組合せに基づいて、第１の装置がバスの制御権を持つ期間を制御する。さらに、システムは、１つの装置がバスの制御権を持っている間は他のすべての装置がバスを制御しないように阻止する。バス・コントローラは、第１の装置からのバスの制御を求める要求を認める手段を含む。バス・コントローラは、第２の装置からバスの制御を求める要求とそれに関連づけられた優先レベルを受け取る手段と、第２の装置からの要求の受信に応答して第２の装置から受け取った要求に関連づけられた優先レベルを第１の装置に送るフィードバック手段も含む。最後に、バス・コントローラは、第１の装置に関連づけられた待ち時間タイマと、第１の装置の優先レベルを第２の装置からの要求に関連づけられた優先レベルと比較した結果との組合せに基づいて、第１の装置によるバス制御の存続期間を制御する手段も含む。
【００１９】
さらに、バス・コントローラは、第１の装置の待ち時間タイマがまだ満了していない場合、第２の装置の優先レベルが第１の装置の優先レベルより高い場合であっても第１の装置によるバスの制御を継続する手段も含むことができる。第１の装置に関連づけられた優先レベルが第２の装置に関連づけられた優先レベルより高いか等しい場合、第１の装置に関連づけられた待ち時間タイマが満了しても第１の装置によるバスの制御の存続期間を延長する延長手段も備える。システムは、第１の装置に関連づけられた優先第２の装置に関連づけられた優先レベルよりも低く、第１の装置に関連づけられた待ち時間タイマが満了した場合、第１の装置によるバスの制御を終了または放棄する。
【００２０】
第１の代替実施例では、本発明は、バスに動作可能に接続することができる装置を有するバスへのアクセスを動的に制御するシステムを提供する。各装置はそれに関連づけられた優先レベルを持つ。この代替実施例では、第１の装置がバスの制御件を有する。システムは第２の装置からバスを制御する要求とそれに関連づけられた優先レベルを受け取り、第１の装置以外の制御要求を送って来た各装置に関連づけられた優先レベルを比較して最も高い値を持つ優先レベルを特定する。特定された最高値を持つ優先レベルとそれに対応する未処理の要求信号が第１の装置にフィードバックされる。
【００２１】
第２の代替実施例では、本発明はバスに動的にアクセスするシステムを提供する。このシステムは、各装置がバスに動作可能に接続することができる複数の装置を含む。各装置はそれに関連づけられた優先レベルも持つ。システムは第１の装置に関連づけられた待ち時間タイマと優先レベルの組合せと、第２のバスによるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて、第１の装置によるバスへのアクセスの存続期間を制御する。さらに、第１の装置は、第１の装置を制御するバス・コントローラの要求とそれに関連づけられた優先レベルとに応答してバス・コントローラからバスの制御を受け取る。第１の装置はバス・コントローラから、バス・コントローラが第２の装置から受け取った未処理の制御要求に関連づけられた第２の優先レベルも受け取る。
【００２２】
第２の代替実施例では、第１の装置はその待ち時間タイマがまだ満了していない場合、その優先レベルが第２の装置からの要求に関連づけられた第２の優先レベルより低くてもバスの制御を継続する。第１の装置は、第１の装置に関連づけられた待ち時間タイマが満了した場合でも、第１の優先レベルが第２の装置に関連づけられた優先レベルより高いかまたは等しい場合はそれに応答してバス制御の存続期間を延長する。最後に、第１の装置は、それに関連づけられた優先レベルが第２の装置に関連づけられた優先レベルよりも低く、第１の装置に関連づけられた待ち時間タイマが満了した場合、バスの制御を放棄または終了する。
【００２３】
その結果、本発明は優先レベルと待ち時間の使用を組み合わせてバス・パフォーマンスを向上させる。バスの制御権を持つ装置の待ち時間タイマは動的に変更することができる。これは、本発明により、対応する装置の優先レベルが少なくとも未処理要求優先レベル標識と同じ高さである限り対応する装置がバスの制御を継続することができるようにして、満了した待ち時間タイマを設定変更することによって実現される。未処理要求優先レベル標識が現在バスを制御している装置の優先レベルより大きくなると、現在バスを制御している装置はバスの制御を放棄または終了することになる。
【００２４】
【発明の実施の形態】
以下に、本発明の好ましい実施例が示されている添付図面を参照しながら本発明について詳述する。しかし、本発明は多くの異なる態様で実施することができ、本明細書に記載する実施態様に限定されるものと解釈してはならず、この実施態様は本開示を十全なものにし、本発明の範囲が当業者に十分に伝わるようにするために示すものである。全体を通して、同じ番号は同じ要素を示す。
【００２５】
当業者ならわかるように、本発明は方法、システムまたはコンピュータ・プログラム製品として実施することができる。したがって、本発明は完全なハードウェア実施態様、完全なソフトウェア実施態様、またはソフトウェア態様とハードウェア態様を組み合わせた実施態様の形をとることができる。
【００２６】
図１を参照すると、本発明によるコンピュータ・システムを示すブロック図が図示されている。１００に図示されているコンピュータ・システムの例では、コンピュータ・システム１００は単一の集積回路チップ上にあることが好ましい。コンピュータ・システム１００はいくつかの装置と１本のバスを有する。具体的には、コンピュータ・システム１００は、４ＸＸ  ＰｏｗｅｒＰＣ（「ＰＰＣ」）中央処理装置（「ＣＰＵ」）１０２を含むいくつかのマスタ装置と、ダイレクト・メモリ・アクセス（［ＤＭＡ」）コントローラ１０４と、ＰｏｗｅｒＰＣローカル・バス（「ＰＬＢ」）マスタ１０６とを有する。さらに、コンピュータ・システム１００は、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）コントローラ１０８ａと入出力（「Ｉ／Ｏ」）コントローラ１０８ｂを含む外部バス・インタフェース装置（「ＥＢＩＵ」）１０８も有する。さらに、コンピュータ・システム１００は、オンチップ周辺装置バス（「ＯＰＢ」）ブリッジ１１０と、ＯＰＢマスタ１１２と、ＯＰＢスレーブ１１４と、パラレル・ポート１１６と、シリアル・ポート１１８も有する。
【００２７】
最後に、コンピュータ・システム１００は、一括して１２０に示すバス・コントローラと一括して１２２に示すバス・コントローラの２つのバス・コントローラも有する。バス・コントローラ１２０は、アービタ１３０と、フィードバック論理回路１３１と、ＰｏｗｅｒＰＣ  ４ＸＸローカル・バス１３２とを含む。バス・コントローラ１２２は、アービタ１３４とフィードバック論理回路１３５と、オンチップ周辺装置バス１３６とを含む。
【００２８】
４ＸＸ  ＰＰＣ  ＣＰＵ１０２とＤＭＡコントローラ１０４とＰＬＢマスタ１０６とは「マスタ」装置の例であり、それぞれ「マスタ１」、「マスタ２」、「マスタ３」と呼ぶことがある。ＥＢＩＵ１０８とＯＰＢブリッジ１１０は「スレーブ」装置の例である。
【００２９】
本発明によると、マスタ１  １０２、マスタ２  １０４、およびマスタ３  １０６はそれぞれバス・コントローラ１２０に動作可能に接続することができる。さらに、スレーブ１０８とスレーブ１１０もバス・コントローラ１２０に動作可能に接続することができる。１００で一般的に図示するコンピュータ・システムでは、スレーブ１１０（すなわちＯＰＢブリッジ）がスレーブ装置として機能し、マスタ１  １０２、マスタ２  １０４、およびマスタ３  １０６のうちの１つをバス・コントローラ１２２に接続する。
【００３０】
図１に示すように、本発明によって複数のマスタ装置またはファンクションと共通共用バスとの相互接続を容易にすることができる。同様に、本発明は、複数のスレーブ装置と共通共用バスとの相互接続も可能にする。マスタ・ファンクションとスレーブ・ファンクションは１つの集積チップ内に含まれることが好ましい。しかし、図１に示すように、本発明を使用して、コンピュータ・システム１００のような単一チップ上にある装置を別のチップ上にある装置に外部バス１４０を介して接続することもできる。
【００３１】
次に図２を参照しながら、バス・コントローラ１２０を含む動的制御システムの動作について説明する。各マスタ装置は待ち時間タイマを持つ。たとえば、マスタ１  １０２は待ち時間タイマ１０２ａを、マスタ２  １０４は待ち時間タイマ１０４ａを、マスタ３  １０６は待ち時間タイマ１０６ａを有する。
【００３２】
本発明の一実施例では、バス・コントローラ１２０によって実施されるバス・アービトレーション方式は動的優先レベル方式を使用する。この方式により、各マスタはそれに関連づけられた優先レベルを持つ。この特定の優先レベル方式では、優先レベルは２ビットの要求優先レベル信号によって表された４つのレベルのうちの１つとすることができる。要求優先レベルは、最高の優先レベルから最低の優先レベルの順に以下の通りである。「１１」は「高」優先レベル、「１０」は「中高」優先レベル、「０１」は「中低」優先レベル、「００」は「低」優先レベルを表す。当業者なら様々な異なる優先レベル方式が使用可能であることがわかるであろう。
【００３３】
動作中、マスタはバス要求とそれに対応する要求優先レベルをバス・コントローラ１２０に渡す。たとえば、マスタ１  １０２はバス要求を渡すときに要求信号２０２と要求優先レベル信号２０４もバス・コントローラ１２０に渡す。
【００３４】
バス・コントローラ１２０が同時に複数のマスタからバス要求を受け取った場合、アービタ１３０は、バス１３２が使用可能かどうかを判断し、すべての要求優先レベルを比較し、最も高い優先レベルを持つマスタにバス１３２の制御権を付与する。アービタ１３０が、バス要求と共に最高の要求優先レベルを渡したマスタにバス１３２の制御権を付与した後は、フィードバック論理回路１３１がまだ未処理のバス要求を持つ装置の中で最高の要求優先レベルを判断する。次に、その結果の現行未処理要求優先レベルが、別の要求が未処理であるということと共に、それぞれリンク１５１および１５２を介して各マスタにフィードバックされる。次に、現在バスの制御権を持っているマスタがこの情報を使用して、別のマスタにバスを使用させるためにデータの伝送が完了する前にバスの制御を終了させるかどうかを判断する。言い換えると、現在未処理の要求の優先レベルに応じて待ち時間タイマを動的に変更することによって（すなわちその満了した待ち時間タイマを設定変更することによって）、現在バスの制御権を持っているマスタは現在伝送する必要があるすべてのデータが伝送されるまでバスの使用を継続することができる。
【００３５】
図２を参照すると、マスタ１  １０２がそのバス要求２０２と要求優先レベル２０４をバス・コントローラ１２０に渡す。同様に、マスタ２がそのバス要求２１２と要求優先レベル２１４をバス・コントローラ１２０に渡す。最後に、マスタ３  １０６がそのバス要求２２２と要求優先レベル２２４をバス・コントローラ１２０に渡す。バス・コントローラ１２０が１つまたは複数のバス要求とそれに対応する要求優先レベルを受け取ると、バス・コントローラ１２０の構成要素であるアービタ１３０が、最高の要求優先レベルを持つバス要求を渡したマスタを識別し、それに対応するマスタにバス１３２の制御権を与える。バスを付与されたマスタは制御権付与信号を受け取り、要求信号をオフにし、バースト伝送の送信を開始する。たとえば、アービタ１３０がマスタ１  １０２が最高の優先レベルを持っていると判断したものとすると、アービタ１３０はマスタ１  １０２に制御権付与信号２０８を送り、マスタ１  １０２はその制御権付与信号２０８を受け取ってその要求２０２をオフにし、バス・コントローラ１２０への「バースト」データ２０６の送信を開始する。バス・コントローラ１２０はそのバーストをバス１３２を介してスレーブ装置１０８に送る。同様に、マスタ２  １０４が最高の優先レベルを持っていたとすれば、マスタ２  １０４が制御権付与信号２１８を受け取りその要求２１２をオフにし、「バースト」データ２１６の送信を開始する。最後に、マスタ３  １０６が最高の優先レベルを持っていた場合は、マスタ３  １０６が制御権付与信号２２８を受け取り、その要求２２２をオフにし、「バースト」データ２２６の送信を開始する。
【００３６】
フィードバック論理回路１３１が各クロック・サイクル中に残りのバス要求を処理する。具体的には、フィードバック論理回路１３１は、バス要求信号を比較してまだ未処理の要求があるかどうかを判断する。さらに、フィードバック論理回路１３１は各未処理要求の要求優先レベルも比較して、現在未処理になっている要求のうちで最高の未処理要求優先レベルを特定する。次に回路１３１は、各クロック・サイクル中に最高の現行未処理要求優先レベルの値と要求が未処理であるということを、それぞれリンク１５１および１５２で各マスタ装置に送り戻す。当業者なら、未処理要求優先レベル信号と未処理要求信号は、マスタ装置に別々にフィードバックすることも１つに結合された信号として送ることもできることがわかるであろう。
【００３７】
図３を参照すると、フィードバック論理回路１３１の好ましい実施例が図示されている。図３に示すように、マスタのバス要求、すなわちマスタ１要求２０２とマスタ２要求２１２とマスタ３要求２２２が、フィードバック論理回路１３１によって論理「ＯＲ」ゲートを２４０を使用して比較される。マスタのうちのいずれかが現在未処理のバス要求を持っている場合、ＯＲゲート２４０の出力は高すなわち論理「１」になる。論理「ＯＲ」ゲート２４０の出力は、リンク１５２で各マスタにフィードバックされる要求未処理信号を示す。
【００３８】
さらに、各マスタからのバス要求信号は「ＡＮＤ」ゲート論理回路を使用してそれらに対応する要求優先レベルと結合される。１本の通信線路（たとえばマスタ１要求優先レベル２０４と「ＡＮＤ」ゲート２４２の間の通信線路）しか図示されていないが、当業者ならこの１本の線路が「ＡＮＤ」ゲート２４２までの要求優先レベル信号のための全入力線路をまとめて表していることがわかるであろう。特定の一実施例では、マスタ１バス要求２０２は論理「ＡＮＤ」ゲート２４２を使用してそれに対応するマスタ１要求優先レベル２０４と結合される。マスタ２要求２１２とマスタ２要求優先レベル２１４が論理「ＡＮＤ」ゲート２４４を使用して結合される。最後に、マスタ３要求２２２とマスタ３要求優先レベル２２４が論理「ＡＮＤ」ゲート２４６を使用して結合される。論理「ＡＮＤ」ゲート２４２、２４４、および２４６の比較結果が、比較器２４８を使用して比較される。比較器２４８の結果は、現在未処理のすべてのバス要求のうちで最高の優先レベルを示す未処理要求優先レベル信号を表す。この未処理要求優先レベル信号はリンク１５１を介して各マスタにフィードバックされる。
【００３９】
図４は本発明による方法、システム、およびプログラム製品を示すフローチャートであり、図５はタイミング図である。タイミング図およびフローチャートの各ブロックまたはステップと、タイミング図およびフローチャートのブロックまたはステップの組合せは、コンピュータ・プログラム命令によって実施することができることがわかるであろう。これらのコンピュータ・プログラム命令をコンピュータまたはその他のプログラム可能データ処理装置にロードし、命令がコンピュータまたはその他のプログラム可能装置作成手段上で実行されてタイミング図またはフローチャートのブロックまたはステップで規定されている機能を実施するように機械を作り出すことができる。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能装置に特定の方式で機能するように指示することができるコンピュータ可読メモリに記憶し、それによってコンピュータ可読メモリに記憶されている命令がタイミング図またはフローチャートのブロックまたはステップで規定されている機能を実施する命令手段を含む製造品を作り出すことができる。コンピュータ・プログラム命令をコンピュータまたはその他のプログラム可能装置にロードしてコンピュータまたはその他のプログラム可能装置上で一連の操作ステップを実行させ、コンピュータまたはその他のプログラム可能装置上で実行される命令がタイミング図またはフローチャートのブロックまたはステップで規定されている機能を実施するステップとなるようにコンピュータ実施プロセスを作り出すこともできる。
【００４０】
したがって、タイミング図またはフローチャートのブロックまたはステップは、規定されている機能を実行する手段の組合せと、規定されている機能を実行するステップの組合せと、規定されている機能を実行するプログラム命令手段とに対応する。また、タイミング図またはフローチャートの各ブロックまたはステップおよびタイミング図またはフローチャートのブロックまたはステップの組合せは、規定されている機能またはステップを実行する特殊用途ハードウェア・ベースのコンピュータ・システムによっても実施することができ、特殊用途ハードウェアとコンピュータ命令との組合せによっても実施することができることがわかるであろう。
【００４１】
図４を参照すると、本発明による動的制御システムの動作のフローチャートが図示されている。図４のフローチャートに図示されている動作は、マスタ装置の文脈から見たものである。システムは、４０２でマスタがバス要求を行うと開始する。次にマスタは４０４で各クロック・サイクル中にチェックを開始して、アービタからのバス制御権付与信号を受け取ったかどうかを判断する。制御権付与信号を受け取っていない場合、マスタはバスの要求を続け、各クロック・サイクル中に制御権付与信号がないか調べる。４０４でマスタが制御権付与信号を受け取った場合、４０６でマスタはバスの制御を獲得し、その待ち時間カウンタを「０」に設定し、バースト伝送を開始することができる。
【００４２】
その後、４０８で各サイクル中にマスタはその待ち時間カウンタが満了していないかどうか調べる。待ち時間カウンタが満了していない場合、マスタはまだバスを制御する必要があるかどうか（たとえばバスを介して送る伝送データがそれ以上あるかどうか）を判断する（４１２）。マスタがバスを介して送る伝送データをまだ持っている場合、マスタは４１４でバーストを続け、各サイクル中に決定ブロック４０８、４１０、および４１２の動作を繰り返す。４１２でバスが必要でなくなったとマスタが判断した場合（たとえばバスを介して行う伝送データをそれ以上持っていない場合）、マスタは４１６でバスを解放し、それによってデータ伝送は完了する。
【００４３】
ステップ４０８でマスタがその待ち時間カウンタが満了したと判断した場合、４２４で未処理要求優先レベルがマスタ自体の優先レベルより高いかどうかを判断する。未処理要求優先レベルがマスタの優先レベルよりも高い場合、マスタは４３０でバスを解放する。未処理要求優先レベルがマスタ自体の優先レベルよりも高くない場合、４２６でマスタはそれ以上伝送データを持っているかどうかを判断する。行う伝送がそれ以上ある場合（またはバスの制御を継続する必要がある場合）、マスタは４２８で現行サイクル中にバーストを継続し、４２４に戻って次のサイクル中に未処理要求優先レベルとマスタ自体の優先レベルとの比較プロセスを続ける。４２６でマスタがバスが不要になったと判断した場合、マスタは４２７でバスを解放して停止する。
【００４４】
４３０でマスタがバスを解放すると、マスタは４３２で行う伝送データをそれ以上持っているかどうか（すなわち再びバスの制御が必要であるかどうか）を判断する。４３２でマスタが追加のサイクルのためにバスの制御が必要ではないと判断した場合、バス・コントローラに新しいバス要求を渡すまで処理を停止する。それに対して、４３２でマスタが追加のサイクルのためにバスの制御が必要であると判断した場合、マスタは４０２でバス・コントローラにもう１回要求を渡す。その後、前述のように処理が続けられる。
【００４５】
図５を参照すると、本発明の動作の例を示すタイミング図が図示されている。図５に図示されている特定の例では、アービタ１３０サイクル１中にマスタ１から「１０」の優先レベルを持つバス要求を受け取る。未処理の要求がほかにないため、アービタ１３０はサイクル２中にマスタ１に制御権付与信号を送り返す。マスタ１は、制御権付与信号の受信に応答してサイクル２中にその要求をオフにし、待ち時間カウンタをリセットし、バスの制御を開始する。図５に示す例では、マスタ１はサイクル２中にただちにバスを介してバーストの送信を開始する。やはりサイクル２中に、フィードバック論理回路１３１（図２参照）が、他の未処理要求がないと判断し、各マスタに「０」をフィードバックする。
【００４６】
サイクル３中に、マスタ２が「１０」の要求優先レベルを持つバス要求を渡す。フィードバック論理回路１３１は、マスタ２のバス要求が未処理であることと、その要求の優先レベルが「１０」であることを判断する。その結果、フィードバック論理回路１３１はサイクル３中に各マスタに信号を送って要求が未処理であることと未処理要求優先レベルが「１０」であることを示す。サイクル３中に、マスタ１はフィードバック論理回路１３１から未処理要求優先レベル信号と要求未処理信号を受け取る。マスタ１はそれに応答して未処理要求優先レベル「１０」をマスタ１自体の優先レベル「１０」と比較し、待ち時間タイマが満了していないか調べ、バスの制御を続けることができることを判断する。したがって、マスタ１はサイクル３中にバスの制御を続ける。
【００４７】
サイクル４中にバス・コントローラ１２０はマスタ３からバス要求を受け取る。このバス要求の優先レベルは「０１」である。それに応答して、フィードバック論理回路１３１が、バス要求が現在未処理になっていると判断し、要求優先レベルの比較も行い、最高未処理要求優先レベルが「１０」であることを判断する。その結果、フィードバック論理回路１３１は要求未処理信号を「１」に設定し、未処理優先レベル信号を最高未処理優先レベルに対応する「１０」に設定し、それらの信号を各マスタに送り返す。
【００４８】
要求未処理信号と未処理要求優先レベルの受信に応答して、マスタ１はサイクル４で未処理要求優先レベルをマスタ１自体の優先レベルと比較する。マスタ１はサイクル４の間にマスタ１自体の優先レベルが少なくとも未処理要求優先レベルと同じ高さであると判断する。しかし、やはりサイクル４中に、マスタ１は待ち時間タイマが満了していると判断する。それにもかかわらず、マスタ１の優先レベルが未処理要求優先レベルと少なくとも同じ高さであるため、マスタ１は待ち時間タイマを設定変更することによって動的に変更しバスの制御を続け、その「バースト」を続行する。このプロセスがサイクル５とサイクル６の間続く。
【００４９】
サイクル７中に、マスタ３が要求優先レベル「１１」を持つ異なるバス要求を渡すことを決定する。それに応答して、フィードバック論理回路１３１は要求が未処理であることと、最も高い要求未処理優先レベルが「１１」であることを判断する。その結果、フィードバック論理回路１３１はサイクル７の間に各マスタに要求未処理信号と要求未処理優先レベル「１１」を送り返す。
【００５０】
マスタ１はサイクル７の間にフィードバック論理回路１３１から要求未処理信号と要求未処理優先レベル「１１」を受け取る。それに応答して、マスタ１は要求未処理優先レベル「１１」をマスタ１自体の優先レベル「１０」と比較し、要求未処理優先レベルの方が高いと判断する。その結果、マスタ１はそのバーストを停止し、サイクル７の間にバスの制御を放棄する。
【００５１】
サイクル８中に、アービタ１３０はバスが使用可能であると判断し、マスタ２とマスタ３の未処理要求の優先レベルの比較に基づいて、マスタ３の方が高い未処理要求優先レベルを持っていると判断し、サイクル８の間にマスタ３にバスの制御権を付与する。その結果、マスタ３はサイクル８の間にバスの制御を開始し、バスでバーストを開始する。サイクル９と１０の間、フィードバック論理回路は前述の処理を続ける。マスタ３の優先レベルと待ち時間タイマに基づいて、マスタ３はサイクル１０中にその「バースト」が終了するまでバスを介してそのバーストを続ける。その後、マスタ３はサイクル１０中にバーストの完了と同時にバスを放棄する。
【００５２】
最後に、サイクル１１中にアービタ１３０はバスが使用可能であると判断する。その結果、アービタ１３０はマスタ２のバス要求がまだ未処理であることと、それが最高の未処理優先レベルを持っていることを判断する。アービタ１３０はサイクル１１中にマスタ２にバスの制御権を付与し、それに応答してマスタ２がサイクル１１中にバスの制御を開始しし、バスを介してバーストを開始する。
【００５３】
以上、本発明についてバスでのアプリケーション・データの伝送に関して説明したが、本発明はどのような特定のタイプのデータまたは信号にも限定されず、命令データ、アドレス・データ、データ・バス修飾子、伝送修飾子、バースト信号、バス・ロック信号など他のどのようなタイプのデータの伝送にも適用可能であることがわかるであろう。また、本発明について事前定義されたスレーブ状態およびマスタ状態を持つ装置に関して説明したが、当業者ならわかるように、どの特定の装置でも１つの操作についてスレーブ装置になり、別の操作についてマスタ装置になることができる。
【００５４】
さらに、本発明について「バースト」伝送に関して説明したが、本発明はバースト伝送には限定されず、バス・パフォーマンスに影響を与えることがあるバス・ロック機構およびバス制御に関係するその他の用途にも適用可能である。
【００５５】
さらに、本発明について正電圧が論理状態「１」に対応するように正論理に関して説明した。当業者ならわかるように、本発明はアクティブ状態とイナクティブ状態を表す適切な手段であればどのような手段でも使用して実施することができる。
【００５６】
上述のアービタ機能に関しては、当業者なら、アービタ１３０は競合する優先レベルを選択する任意の数の周知の方法を使用することができることがわかるであろう。したがって、アービタ１３０の実施態様は所望のアービトレーション方式に依存することができる。
【００５７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５８】
（１）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスを動的に制御する方法であって、
前記装置のうちの第１の装置によるバスの制御の存続期間を第１の装置に関連づけられた待ち時間タイマと優先レベルの組合せと前記装置のうちの第２の装置によるバスを制御する未処理の要求に関連づけられた優先順位とに基づいて制御するステップを含む方法。
（２）前記制御ステップが、
前記装置のうちの第１の装置からのバスを制御する要求を認めるステップと、
前記装置のうちの第２の装置から、バスを制御する要求と要求に関連づけられた優先レベルとを受け取るステップと、
第２の装置からの要求の受信に応答して、第２の装置から受け取った要求に関連づけられた優先レベルとそれの関連づけられた未処理要求信号とを第１の装置に送信するステップと、
第１の装置に関連づけられた待ち時間タイマと、第１の装置の優先レベルと第２の装置からの要求に関連づけられた優先レベルとの比較との組合せに基づいて第１の装置によるバスの制御の存続期間を制御するステップとを含む、上記（１）に記載の方法。
（３）前記制御ステップが、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して、第１の装置によるバスの制御を続けるステップと、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長するステップと、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了するステップとを含む、上記（１）に記載の方法。
（４）前記制御ステップの前に、
複数の装置から、バスを制御する少なくとも１つの要求と要求に関連づけられた優先レベルとを受け取るステップと、
装置から受け取った要求に関連づけられた優先レベルをアービトレートして、受け取った優先レベルのうちで最高値を有する第１の優先レベルを特定し、特定された第１の優先レベルに関連づけられた装置を特定するステップと、
アービトレートするステップに応答して第１の装置にバスの制御権を付与するステップとを含む、上記（１）に記載の方法。
（５）前記制御ステップに応答して第１の装置と前記バスとの間でデータを伝送するステップをさらに含む、上記（１）に記載の方法。
（６）前記データがアプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、上記（５）に記載の方法。
（７）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスへのアクセスを動的に制御する方法であって、
前記装置のうちの第２の装置からバスを制御する要求と要求に関連づけられた優先レベルとを受け取るステップと、
第２の装置からの要求の受信に応答して、第２の装置から受け取った要求に関連づけられた優先順位とそれに関連づけられた未処理要求信号とを、バスへのアクセスの制御権を有する前記装置のうちの第１の装置に送信するステップとを含む方法。
（８）第２の装置から要求を受け取る前記ステップの前に、
複数の装置から、バスを制御する少なくとも１つの要求と要求に関連づけられた優先レベルとを受け取るステップと、
装置から受け取った要求に関連づけられた優先レベルをアービトレートして、受け取った優先レベルのうちで最高値を有する第１の優先レベルを特定し、特定された第１の優先レベルに関連づけられた装置を第１の装置として特定するステップと、
アービトレートするステップに応答して第１の装置にバスの制御権を付与するステップとを含む、上記（７）に記載の方法。
（９）送信ステップの前に、
第２の装置に関連づけられた優先レベルを第１の装置以外の各装置に関連づけられた優先レベルと比較して最高のレベルを有する優先レベルを特定するステップと、
第２の優先レベルを特定された優先レベルに置き換えるステップとを含む、上記（８）に記載の方法。
（１０）バスと第１の装置との間でデータを伝送するステップをさらに含む、上記（７）に記載の方法。
（１１）前記データがアプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、上記（１０）に記載の方法。
（１２）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスに動的にアクセスする方法であって、
第１の装置に関連づけられた待ち時間タイマと優先レベルとの組合せと、前記装置のうちの第２の装置によるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて、前記装置のうちの第１の装置によるバスへのアクセスの存続期間を制御するステップとを含む方法。
（１３）前記制御ステップが、
第１の装置による要求とそれに関連づけられた優先レベルとに応答して、バス・コントローラから第１の装置によるバスの制御権を受け取るステップと、
バス・コントローラが第２の装置から受け取った未処理の制御要求に関連づけられた第２の優先レベルをバス・コントローラから受け取るステップとを含む、上記（１２）に記載の方法。
（１４）制御ステップが、第１の装置に関連づけられた待ち時間タイマと、第１の装置に関連づけられた優先レベルと第２の装置からの要求に関連づけられた第２の優先レベルとの比較との組合せに基づいて、第１の装置によるバスの制御の存続期間を制御するステップさらに含む、上記（１３）に記載の方法。
（１５）第１の装置によるバスの制御権を受け取る前記ステップの前に、
複数の装置の内の第１の装置によるバスの制御権をバス・コントローラに対して要求するステップを含み、第１の装置による要求がそれに関連づけられた優先レベルを有する、上記（１３）に記載の方法。
（１６）前記制御ステップが、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して、第１の装置によるバスの制御を続けるステップと、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長するステップと、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了するステップとを含む、上記（１２）に記載の方法。
（１７）前記制御ステップに応答して第１の装置と前記バスとの間でデータを伝送するステップをさらに含む、上記（１２）に記載の方法。
（１８）前記データがアプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、上記（１７）に記載の方法。
（１９）バスを動的に制御するシステムであって、
各装置がそれに関連づけられた優先レベルと待ち時間タイマとを有する複数の装置と、
前記各装置に動作可能に接続することができ、前記装置のうちの第１の装置に関連づけられた待ち時間タイマと優先レベルとの組合せと、前記装置のうちの第２の装置によるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて、第１の装置によるバスの制御の存続期間を制御するバス・コントローラとを含むシステム。
（２０）前記バス・コントローラが、
前記装置からのバスを制御する要求を認める手段と、
前記装置のうちの第２の装置から、バスを制御する要求と要求に関連づけられた優先レベルとを受け取る手段と、
第２の装置からの要求の受信に応答して、第２の装置と第１の装置から受け取った要求に関連づけられた優先レベルを送信するフィードバック手段と、
第１の装置に関連づけられた待ち時間タイマと、第１の装置に関連づけられた優先レベルと第２の装置からの要求に関連づけられた優先レベルとの比較との組合せに基づいて、第１の装置によるバスの制御の存続期間を制御する手段とを含む、上記（１９）に記載のシステム。
（２１）前記バス・コントローラが、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して第１の装置によるバスの制御を続ける制御続行手段と、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長する延長手段と、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了する終了手段とを含む、上記（１９）に記載のシステム。
（２２）複数の装置からバスを制御する少なくとも１つの要求と要求に関連づけられた優先レベルとを受け取る第２の受信手段と、
装置から受け取った要求に関連づけられた優先レベルを比較して、受け取った優先レベルのうちで最高値を有する第１の優先レベルを特定し、特定された第１の優先レベルに関連づけられた装置を第１の装置として特定するアービトレート手段と、
アービトレート手段に応答して、第１の装置にバスの制御権を付与する制御権付与手段とをさらに含む、上記（１９）に記載のシステム。
（２３）前記バス・コントローラに応答して、第１の装置と前記バストの間でデータを伝送する手段をさらに含む、上記（１９）に記載のシステム。
（２４）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データのうちの少なくとも１つを含む、上記（２３）に記載のシステム。
（２５）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスへのアクセスを動的に制御するシステムであって、
前記装置のうち第２の装置から、バスを制御する要求と要求に関連づけられた優先レベルとを受け取る手段と、
第２の装置からの要求の受信に応答して、第２の装置から受け取った要求に関連づけられた優先レベルをバスへのアクセスの制御権を有する前記装置のうちの第１の装置に送るフィードバック手段とを含むシステム。
（２６）前記フィードバック手段が、
そこから制御要求を受け取った第１の装置を除く、各装置に関連づけられた優先順位を比較して最高値を有する優先レベルを特定する判断手段と、
特定された優先レベルと未処理要求信号を第１の装置に送信する送信手段とを含む、上記（２５）に記載のシステム。
（２７）バスと第１の装置との間でデータを伝送する手段をさらに含む、上記（２５）に記載のシステム。
（２８）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データとのうちの少なくとも１つを含む、上記（２７）に記載のシステム。
（２９）バスに動的にアクセスするシステムであって、
各装置がバスに動作可能に接続することができ、それに関連づけられた優先順位を有する複数の装置と、
前記装置のうちの第１の装置に関連づけられた待ち時間タイマと優先レベルの組合せと、前記装置のうちの第２の装置によるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて、第１の装置によるバスへのアクセスの存続期間を制御する存続期間手段とを含むシステム。
（３０）前記存続期間手段が、
第１の装置による要求とそれに関連づけられた優先レベルとに応答して、バス・コントローラから第１の装置によるバスの制御権を受けとる手段と、
バス・コントローラが第２の装置から受け取った未処理の制御要求に関連づけられた第２の優先レベルを、バス・コントローラから受け取る手段とを含む、上記（２９）に記載のシステム。
（３１）前記存続期間手段が、第１の装置に関連づけられた待ち時間タイマと、第１の装置に関連づけられた優先レベルと第２の装置からの要求に関連づけられた第２の優先レベルとの比較との組合せに基づいて、第１の装置によるバスの制御の存続期間を制御する手段をさらに含む、上記（３０）に記載のシステム。
（３２）前記システムが、
複数の装置のうちの第１の装置によるバスの制御権をバス・コントローラに対して要求する手段をさらに含み、第１の装置による要求がそれに関連づけられた優先レベルを有する、上記（３１）に記載のシステム。
（３３）前記存続期間手段が、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して、第１の装置によるバスの制御を続ける制御続行手段と、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長する延長手段と、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了する終了手段とを含む、上記（２９）に記載のシステム。
（３４）前記存続期間手段に応答して第１の装置と前記バスとの間でデータを伝送する手段をさらに含む、上記（２９）に記載のシステム。
（３５）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データとのうちの少なくとも１つを含む、上記（３４）に記載のシステム。
（３６）各装置がそれに関連づけられた優先順位を有する、バスに動作可能に接続することができる複数の装置を有するバスを動的に制御するコンピュータ・プログラム製品であって、
媒体内に実現されたコンピュータ可読コード手段を有するコンピュータ可読記憶媒体を含み、前記コンピュータ可読コード手段が、
前記装置のうちの第１の装置に関連づけられた待ち時間タイマと優先レベルとの組合せと、前記装置の内の第２の装置によるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて、第１の装置によるバスの制御の存続期間を制御するコンピュータ命令手段を含む、コンピュータ・プログラム製品。
（３７）制御する前記コンピュータ命令手段が、
前記装置のうちの第１の装置からのバスを制御する要求を認めるコンピュータ命令手段と、
前記装置のうちの第２の装置から、バスを制御する要求と要求に関連づけられた優先レベルとを受け取るコンピュータ命令手段と、
第２の装置からの要求の受信に応答して、第２の装置から受け取った要求に関連づけられた優先レベルを前記各装置に送信するコンピュータ命令手段と、
第１の装置に関連づけられた待ち時間タイマと、第１の装置の優先レベルと第２の装置からの要求に関連づけられた優先レベルとの比較との組合せに基づいて、第１の装置によるバスの制御の存続期間を制御するコンピュータ命令手段とを含む、上記（３６）に記載のコンピュータ・プログラム製品。
（３８）制御する前記コンピュータ命令手段が、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して第１の装置によるバスの制御を続けるコンピュータ命令手段と、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長するコンピュータ命令手段と、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了するコンピュータ命令手段とを含む、上記（３６）に記載のコンピュータ・プログラム製品。
（３９）前記コンピュータ可読コード手段が、
複数の装置からバスを制御する少なくとも１つの要求と要求に関連づけられた優先レベルとを受け取るコンピュータ命令手段と、
装置から受け取った要求に関連づけられた優先レベルをアービトレートして、受け取ったレベルのうちで最高値を有する第１の優先レベルを特定し、特定された第１の優先レベルに関連づけられた装置を第１の装置として特定するコンピュータ命令手段と、
優先レベルをアービトレートするコンピュータ命令手段に応答して第１の装置にバスの制御権を付与するコンピュータ命令手段とをさらに含む、上記（３６）に記載のコンピュータ・プログラム製品。
（４０）前記コンピュータ可読コード手段が、
存続期間を制御する前記コンピュータ命令手段に応答して、第１の装置と前記バスとの間でデータを伝送するコンピュータ命令手段をさらに含む、上記（３６）に記載のコンピュータ・プログラム製品。
（４１）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データとのうちの少なくとも１つを含む、上記（４０）に記載のコンピュータ・プログラム製品。
（４２）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスへのアクセスを動的に制御するコンピュータ・プログラム製品であって、
媒体内に実現されたコンピュータ可読コード手段を有するコンピュータ可読記憶媒体を含み、前記コンピュータ可読コード手段が、
前記装置のうちの第２の装置から、バスを制御する要求と要求に関連づけられた優先レベルとを受け取るコンピュータ命令手段と、
第２の装置からの要求の受信に応答して、第２の装置から受け取った要求に関連づけられた優先レベルとそれに関連づけられた未処理要求信号とを、バスへのアクセスの制御権を有する前記装置のうちの第１の装置に送信するコンピュータ命令手段とを含む、コンピュータ・プログラム製品。
（４３）前記コンピュータ可読コード手段が、
複数の装置から、バスを制御する少なくとも１つの要求と要求に関連づけられた優先レベルとを受け取るコンピュータ命令手段と、
装置から受け取った要求に関連づけられた優先レベルをアービトレートして、受け取った優先レベルのうちで最高値を有する第１の優先レベルを特定し、特定された第１の優先レベルに関連づけられた装置を第１の装置として特定するコンピュータ命令手段と、
優先レベルをアービトレートするコンピュータ命令手段に応答して、第１の装置にバスの制御権を付与するコンピュータ命令手段とをさらに含む、上記（４２）に記載のコンピュータ・プログラム製品。
（４４）前記コンピュータ可読コード手段が、
バスと第１の装置との間でデータを伝送するコンピュータ命令手段をさらに含む、上記（４２）に記載のコンピュータ・プログラム製品。
（４５）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データとのうちの少なくとも１つを含む、上記（４４）に記載のコンピュータ・プログラム製品。
（４６）各装置がそれに関連づけられた優先レベルを有する、バスに動作可能に接続することができる複数の装置を有するバスに動的にアクセスするコンピュータ・プログラム製品であって、
媒体内に実現されたコンピュータ可読コード手段を有するコンピュータ可読記憶媒体を含み、前記コンピュータ可読コード手段が、
前記装置のうちの第１の装置に関連づけられた待ち時間タイマと優先レベルとの組合せと、前記装置のうちの第２の装置によるバスを制御する未処理の要求に関連づけられた優先レベルとに基づいて第１の装置によるバスへのアクセスの存続期間を制御するコンピュータ命令手段を含む、コンピュータ・プログラム製品。
（４７）制御する前記コンピュータ命令手段が、
第１の装置による要求とそれに関連づけられた優先レベルとに応答して、バス・コントローラから第１の装置によるバスの制御権を受け取るコンピュータ命令手段と、
バス・コントローラが第２の装置から受け取った未処理の制御要求に関連づけられた第２の優先レベルを、バス・コントローラから受け取る手段とを含む、上記（４６）に記載のコンピュータ・プログラム製品。
（４８）制御する前記コンピュータ命令手段が、
第１の装置に関連づけられた待ち時間タイマと、第１の装置の優先レベルと第２の装置からの要求に関連づけられた第２の優先レベルとの比較との組合せに基づいて、第１の装置によるバスの制御の存続期間を制御するコンピュータ命令手段をさらに含む、上記（４７）に記載のコンピュータ・プログラム製品。
（４９）前記コンピュータ命令手段が、
複数の装置のうちの第１の装置によるバスの制御権をバス・コントローラに対して要求する手段をさらに含み、第１の装置による要求がそれに関連づけられた優先レベルを有する、上記（４７）に記載のコンピュータ・プログラム製品。
（５０）制御する前記コンピュータ命令手段が、
第１の装置に関連づけられた満了していない待ち時間タイマに応答して第１の装置によるバスの制御を続けるコンピュータ命令手段と、
第２の装置に関連づけられた優先レベルと少なくとも同じ高さの第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御の存続期間を延長するコンピュータ命令手段と、
第２の装置に関連づけられた優先レベルよりも低い第１の装置に関連づけられた優先レベルと第１の装置に関連づけられた満了していない待ち時間タイマとに応答して、第１の装置によるバスの制御を終了するコンピュータ命令手段とを含む、上記（４６）に記載のコンピュータ・プログラム製品。
（５１）前記コンピュータ可読コード手段が、
存続期間を制御する前記コンピュータ命令手段に応答して第１の装置と前記バスとの間でデータを伝送するコンピュータ命令手段とをさらに含む、上記（４６）に記載のコンピュータ・プログラム製品。
（５２）前記データが、アプリケーション・データとコンピュータ・プログラム命令とアドレス・データとのうちの少なくとも１つを含む、上記（５１）に記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【図１】本発明によるコンピュータ・システムを示すブロック図である。
【図２】本発明によるマスタ装置とバス・コントローラとスレーブ装置との間の関係を示すブロック図である。
【図３】図２に示すバス・コントローラのフィードバック論理回路を示すブロック図である。
【図４】本発明による動的制御システムの動作を示すフローチャートである。
【図５】本発明による動的制御システムの動作例を示すタイミング図である。
【符号の説明】
１００  コンピュータ・システム
１０２  中央処理装置（ＣＰＵ）
１０４  ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）
１０６  ＰｏｗｅｒＰＣローカル・バス・マスタ
１０８  外部バス・インタフェース装置
１１０  オンチップ周辺装置バス・ブリッジ
１１２  オンチップ周辺装置バス・マスタ
１１４  オンチップ周辺装置バス・スレーブ
１２０  バス・コントローラ
１２２  バス・コントローラ
１３０  アービタ
１３１  フィードバック論理回路
１３２  ＰｏｗｅｒＰＣ  ４ＸＸローカル・バス
１３４  アービタ
１３５  フィードバック論理回路
１３６  オンチップ周辺装置バス
【図１】
0003596799.tif 000002
【図２】
0003596799.tif 000003
【図３】
0003596799.tif 000004
【図４】
0003596799.tif 000005
【図５】
0003596799.tif 000006