(57)【要約】【課題】【解決手段】バス・アービトレーション・アルゴリズムは、バストランザクションによるバスチャネルの方向、および／またはバスチャネル帯域幅消費を考慮することによって、各マスターデバイスに割り当てられる相対的バスチャネル帯域幅を正確に制御する。少なくとも１つの重み付けレジスタが各マスターデバイスに関連付けられ、一実施形態では、バスチャネルごとに１つの重み付けレジスタとなる。このレジスタは、利用可能なバス帯域幅に比例するシェアで周期的にロードされる。バスチャネル上のバストランザクションが許可されると、対応する重み付けレジスタは、そのトランザクションを完了するために必要なバスデータ転送サイクルの数または転送されるデータ量によって測定される、そのトランザクションによるバスチャネル帯域幅消費を反映する量が減算される。相対的な帯域幅シェアの初期割り当てが同等である場合、バスチャネル帯域幅を消費するマスターデバイスが相対的に低い優先度を有し、バスチャネル帯域幅を消費しないマスターデバイスは相対的に高い優先度を保持する。【選択図】      図２
2009505296.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える：
各マスターデバイスにバス帯域幅の比例的配分を割り当てること；
前記マスターデバイスにより実行されるバス・トランザクションの長さに応じて、割り当てられた配分を減算することによって、各マスターデバイスのバス帯域幅の消費を追跡すること；および、
各マスター・デバイスの残存する帯域幅の配分を、前記バスに対するアービトレーションの優先度として利用すること。
【請求項２】
請求項１記載の方法、ここにおいて、
前記バスが別個の送信および受信のチャネルを含み、
各チャネルの前記帯域幅の比例的配分が、別個に各マスターに割り当てられ、
各チャネル上で実行されるバス・トランザクションの長さに応じて減算され、
各チャネル上のバス・トランザクションに対するアービトレーションに用いられる。
【請求項３】
請求項２記載の方法、ここにおいて、
前記送信チャネル上で書き込み動作が行われ、前記受信チャネル上で読み込み動作が行われる。
【請求項４】
前記バスが別個のアドレスチャネルをさらに備える、請求項２に記載の方法。
【請求項５】
アドレス情報および書き込みデータが、前記送信チャネル上で送信される、請求項２記載の方法。
【請求項６】
請求項１記載の方法、ここにおいて、
前記マスターデバイスにより実行されるバス・トランザクションの長さが、前記バス・トランザクションで転送されるデータの量によって測定される。
【請求項７】
請求項１記載の方法、ここにおいて、
前記マスターデバイスにより実行されるバス・トランザクションの長さが、前記バス上で前記バス・トランザクションを実行するために必要な情報転送サイクルの数によって測定される。
【請求項８】
請求項７記載の方法、ここにおいて、
前記マスターデバイスにより実行されるバス・トランザクションの長さが、前記バス上で前記バス・トランザクションを実行するために必要なデータ転送サイクルの数によって測定される。
【請求項９】
各マスターデバイスにバス帯域幅の比例的分配を再割り当てすることをさらに備える、請求項１に記載の方法。
【請求項１０】
前記再割り当てが、アービトレーション期間の満了時に生じる、請求項９に記載の方法。
【請求項１１】
請求項１０記載の方法、ここにおいて、
前記アービトレーション期間が、バスデータ転送サイクルで、全てのマスターデバイスの割り当てられた配分の合計である。
【請求項１２】
請求項１０記載の方法、ここにおいて、
少なくとも１つのマスターデバイスへの前記再割り当てが、少なくとも１つの他のマスターデバイスへの前記再割り当てよりも高い頻度で行われる。
【請求項１３】
請求項９記載の方法、ここにおいて、
全てのマスターデバイスが、バス帯域幅の割り当てられた配分を完全に減算された場合に、前記再割り当てが行われる。
【請求項１４】
請求項１記載の方法、ここにおいて、
全てのマスターデバイスの残存する帯域幅の配分が同等である場合に、ラウンドロビンに基づくアービトレーションが実行される。
【請求項１５】
別個の送信および受信チャネルを有するバス上で、複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える：
各マスターデバイスに対して前記送信および受信チャネルに関するアービトレーション優先度を独立的に割り当てること；および、
各チャネル上で前記マスターにより実行されるバス・トランザクションに応じて、各マスターデバイスの送信および受信チャネルの優先度を独立的に減算すること。
【請求項１６】
請求項１５記載の方法、ここにおいて、
各マスターデバイスに割り当てられた各チャネルに対する前記アービトレーション優先度は、前記チャネルの帯域幅の相対的な比例的配分である。
【請求項１７】
請求項１６記載の方法、ここにおいて、
各マスターデバイスに対する各チャネル優先度が、前記マスターデバイスによって消費されたチャネル帯域幅の量に応じて減算される。
【請求項１８】
請求項１７記載の方法、ここにおいて、
前記消費された帯域幅が、前記バス・トランザクションの前記チャネル上でのデータ転送の量で測定される。
【請求項１９】
請求項１７記載の方法、ここにおいて、
前記消費された帯域幅が、前記バス・トランザクションを実行するために必要とされる前記チャネル上での情報転送サイクルで測定される。
【請求項２０】
請求項１９記載の方法、ここにおいて、
前記消費された帯域幅が、前記バス・トランザクションを実行するために必要とされる前記チャネル上のデータ転送サイクルで測定される。
【請求項２１】
更に下記を備える請求項１５記載の方法：
各マスターデバイスに対して前記送信および受信チャネルに関するアービトレーション優先度を再割り当てすること。
【請求項２２】
請求項２１記載の方法、ここにおいて、
各チャネルに対する前記アービトレーション優先度が、アービトレーション期間の満了時に再割り当てされる。
【請求項２３】
請求項２２記載の方法、ここにおいて、
少なくとも１つのチャネルに対する前記アービトレーション優先度は、少なくとも１つの別異のマスターデバイスに前記チャネル優先度が再割り当てされるよりも高い頻度で、少なくとも１つのマスターデバイスに再割り当てされる。
【請求項２４】
請求項２１記載の方法、ここにおいて、
全てのマスターデバイスの前記送信、または受信チャネルに関する前記優先度が完全に減算される際に、前記アービトレーション優先度が、各マスターデバイスに再割り当てされる。
【請求項２５】
請求項１５記載の方法、ここにおいて、前記バスは下記を備える：
書き込みデータ、および書き込みイネーブルを転送する送信チャネル；
読み出しデータを転送する受信チャネル；、ならびに
アドレスおよび転送修飾子情報を転送するアドレスチャネル。
【請求項２６】
請求項２５に記載の方法、ここにおいて、前記バスは下記を備える：
書き込みデータ、書き込みイネーブル、アドレス、および転送修飾子情報を転送する送信チャネル；および、
読み出しデータを転送する受信チャネル。
【請求項２７】
更に下記を備える請求項１５記載の方法：
前記送信および受信チャネルを要求するマスターデバイスに関する各チャネルの優先度が同じである場合、ラウンドロビン・アービトレーション・アルゴリズムを用いて前記要求するマスターデバイスの間のアービトションをすること。
【請求項２８】
各マスターデバイスが各チャネルに対応する重み付けレジスタに関連付けられており、別個の送信および受信チャネルを有するバス上で複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える：
各マスターデバイスに関連付けられた前記送信チャネル重み付けレジスタおよび受信チャネル重み付けレジスタに、前記各チャネル上の帯域幅の相対的な比例的配分をロードすること；
前記重み付けレジスタの内容によって反映されているとおりの現在の帯域幅の配分に基づいて、前記バス・チャネル上のバス・トランザクションを要求するマスターデバイスの間のアービトレーションをすること；および、
マスターデバイスがバスチャネルへのアクセスを許可されると、前記許可されたマスターデバイスに関連付けられた、そのチャネルに対応する重み付けレジスタを、前記許可されたバス・トランザクションの前記バス・チャネルの消費された帯域幅だけ減算すること。
【請求項２９】
請求項２８記載の方法、ここにおいて、
要求するマスターデバイスの間のアービトレーションをすることは、下記を備える：
前記要求されているバスチャネルに対応する全ての重み付けレジスタが同等である場合に、ラウンドロビン・アービトレーション・アルゴリズムを採用すること。
【請求項３０】
更に下記を備える請求項２８記載の方法：
前記各チャネル上の帯域幅の相対的な比例的配分を、前記重み付けレジスタに、周期的に再ロードすること。
【請求項３１】
前記重み付けレジスタが、アービトレーション期間の満了時に再ロードされる、請求項３０に記載の方法。
【請求項３２】
請求項３０記載の方法、ここにおいて、
バス・チャネルに対する全ての重み付けレジスタが完全に減算される場合に、前記重み付けレジスタが再ロードされる。
【請求項３３】
下記を備える電子デバイス：
データ転送バス；
データ転送の関係において前記バスに接続されている少なくとも２つのマスターデバイス；
データ転送の関係において前記バスに接続されている少なくとも１つのスレーブデバイス；
各マスターデバイスに関連付けられ、初期値がロードされるように動作し、前記バス上のバス・トランザクションが前記マスターデバイスに許可されるのに応じて、前記バス・トランザクションにより消費される前記バス帯域幅を反映する量だけ減算するように動作する、アービトレーション優先度レジスタ；および、
関連付けられたアービトレーション優先度レジスタにおいて最高値を有する前記要求するマスターデバイスに前記バスを許可するように動作するバス・アービタ。
【請求項３４】
請求項３３記載のデバイス、ここにおいて、
前記バス・アービタが、全ての要求するマスターデバイスに関連付けられたアービトレーション優先度レジスタの値が同等である場合、ラウンドロビンに基づいて、要求するマスターデバイスに前記バスを許可するようにさらに動作する。
【請求項３５】
請求項３３記載のデバイス、ここにおいて、前記データ転送バスは下記を備える：
書き込みデータを転送するように動作する送信チャネル；
読み出しデータを転送するように動作する受信チャネル；さらに、
各マスターデバイスに関連付けられている各チャネルに関する別個のアービトレーション優先度レジスタ、ここで、各レジスタはバス・トランザクションによって消費された前記チャネル帯域幅を反映する量だけ減算するように動作し、ここで、前記アービタは各チャネルに関するアービトレーションをする。
【請求項３６】
前記送信チャネルが、アドレスを転送するようにさらに動作する、請求項３５に記載のデバイス。
【請求項３７】
前記アービトレーション優先度レジスタが、再ロードされるようにさらに動作する、請求項３３に記載のデバイス。
【請求項３８】
前記アービトレーション優先度レジスタが、アービトレーション期間の満了時に再ロードされるように動作する、請求項３７に記載のデバイス。
【請求項３９】
請求項３７に記載のデバイス、ここにおいて、
前記アービトレーション優先度レジスタが、前記送信および受信チャネルに関する前記アービトレーション優先度レジスタの全てが完全に減算される場合に、再ロードされるように動作する。
【請求項４０】
下記を備える電子デバイス：
少なくとも２つのマスターデバイス；
少なくとも１つのスレーブデバイス；
マスターデバイスからスレーブデバイスに情報を転送するように動作する送信バスチャネル；
スレーブデバイスからマスターデバイスに情報を転送するように動作する受信バスチャネル；
各マスターデバイスに関連付けられた前記送信および受信バスチャネルの各々に関するアービトレーション優先度レジスタ、ここで、該レジスターは初期値がロードされるように動作し、前記各バスチャネル上のバス・トランザクションが前記マスターデバイスに許可されるのに応じて減算するように動作する；および、
そのチャネルに対する関連付けられたアービトレーション優先度レジスタに最高値を有する前記要求するマスターデバイスにバスチャネルを許可するように動作するバス・アービタ。
【請求項４１】
請求項４０に記載のデバイス、ここにおいて、
各チャネルに関する前記アービトレーション優先度レジスタが、許可されたバス・トランザクションにおけるそのチャネル上の関連付けられたマスターデバイスの帯域幅の消費を反映する量だけ減算するように動作する。
【請求項４２】
前記送信チャネル上でマスターデバイスからスレーブデバイスに転送される前記情報が、アドレスを含む、請求項４０に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロセッサの分野に関し、特に、データ転送方向およびバスチャネルの帯域幅の消費を考慮するバス・アービトレーションの方法に関する。
【背景技術】
【０００２】
携帯用電子デバイスは、精巧さおよび計算パワーが増大し続け、ユーザにますます高まる機能性を提供している。最新の携帯用電子デバイスは、無線データおよび音声の通信、写真およびビデオのキャプチャおよび再生、位置測定および地理的経路案内、精巧なグラフィックのゲーム遊戯、高忠実度音声受信および再生等などを含む。近い将来、携帯用電子デバイスは、ユビキタス・アドホックデータ通信（例えば、IEEE 802.11,ブルートゥース等）、仮想現実ユーザインターフェース、および多数の他の進歩を支援すると予想される。多くの場合、そのような多面的機能性は、１つ以上の主プロセッサに加え、専用処理回路で実装される。例えば、グラフィック・コプロセッサ、ＭＰＥＧビデオ符号化器／復号化器、ＧＰＳ受信機プロセッサ、および／または他の専用プロセッサが、携帯用電子デバイスに備わっていてよく、メモリ、ユーザインターフェース・エレメント等などのシステムリソースを共有し得る。
【０００３】
機能ユニット間の効率的なデータ転送は、携帯用電子デバイスを含むあらゆるデジタルシステムの基本的動作である。ディスクからメモリに、プロセッサにプログラムをデータ転送すること、グラフィックエンジンからフレームバッファに、ビデオ表示回路にデータ送信すること、ならびにキーパッド、マウスまたはタッチスクリーンからプロセッサに入力を送信することは、全てコンピューティングシステム内のデータ転送の一般的な例である。
【０００４】
図１は、全体として数字１０で示された、公知のシステムバス・アーキテクチャの簡略図を示す。システムバス１２は、システムユニットを相互接続する。このシステムバス１２は、アドレス、データおよび制御のチャネルを含んでよく、双方向（例えば、読み出しおよび書き込み）のデータ転送を実行し得る。ＣＰＵ１４またはＤＭＡエンジン１６等のマスターデバイスは、メモリ１８および入力／出力回路２０等のスレーブデバイスに向かって、またはそこから、バス１２の１つ以上のチャネルを介したデータ転送−本明細書ではバス・トランザクションと呼ぶ−を開始する。２つ以上の独立したマスター１４、１６がバス１２に接続される場合、それらのバスへのアクセスは、アービタ２２によって制御される。
【０００５】
当技術分野で公知であるように、１つ以上のマスターデバイス１４、１６は、アービタ２２にバス要求を主張する。このアービタ２２は、バス上の動作を監視し、バス１２が利用可能になると、要求するマスターデバイス１４、１６のうちの１つにバス許可を送信する。そして許可されたマスターデバイス１４、１６は、１つ以上のスレーブデバイス１８、２０に向けた、読み出しまたは書き込み等のバス１２の１つ以上のチャネルを介したトランザクションを開始し得る。
【０００６】
多数のバス・アービトレーションのアルゴリズムは、当技術分野で公知である。参照により本明細書にその全文が組み込まれる、２００４年４月２７日に出願され、本発明の譲受人に譲渡された同時係属中の米国特許出願第１０／８３３，７１６号は、各マスターデバイスがプログラム可能な重みを初期に割り当てられる、バス・アービトレーション・スキームを開示する。各マスターデバイスがバスへのアクセスを許可される際にその重みレジスタが減算され、保留中の要求に関して他のマスターデバイスに相対するそのマスターデバイスの要求優先度が効果的に低減される。このアービタは、同じ重みを有するマスターデバイスの間でのラウンドロビン選択と共に、より高い重みを有するマスターデバイスが、より低い重みを有するマスターデバイスより優先度の高い、重み付きラウンドロビンのアルゴリズムを実装する。一旦、全てのマスターデバイスがそれらの重みレジスタを零に減算されると、その満了時に全てのマスターデバイスがそれらの初期のプログラム可能な重み付けを再割り当てされる重み付け期間の継続期間の間は、公平なラウンドロビン・アービトレーションが実装される。
【０００７】
一実施形態では、２以上の階層のマスターデバイスが規定され得る。より高い層のマスターデバイスのプログラム可能な重み付けは、より低い層のマスターデバイスのプログラム可能な重み付けよりもより高い頻度で更新され得る。即ち、重み付け期間の間、各マスターデバイスにバスのトランザクション・サイクルが許可される際に、マスターデバイスの重み付けが減算されるので、より高い層のマスターデバイスはより高い頻度の基準で初期の重み付けにリセットされ得て、より高い層のマスターデバイスに全体的に見て高い優先度が与えられる。
【０００８】
このアービトレーション・スキームは、多数のマスターデバイスの間でバスリソースを公平に共有すること、ごく稀にだけバスにアクセスするマスターが高い優先度に保持されること、および大量のバス・トランザクションを実行するデバイスが迅速に相対的な優先度を使い果たすことにその効果がある。
【０００９】
しかしながら、マスターデバイスによって実行されるバス・トランザクションの数は、そのマスターデバイスの利用可能なバスの帯域幅の消費の概算である。例えば、１６個のデータ転送サイクル、または「ビート（beats）」（即ち、６４ビットのデータバスに対し１２８バイト）を含む読み出しバーストは、１つだけのバスビートを必要とする一のバイト読み出しよりもはるかに大きいバス帯域幅を消費する。しかしながら、上述したアービトレーション・スキームは、いずれの場合にも、マスターデバイスの重み付けレジスタを同じ量ずつ減算する。
【００１０】
さらに、最新の高性能バスは、独立した読み出しおよび書き込みのバスチャネルを備えることが可能であり、マスターデバイスはこの読み出しおよび書き込みのバスチャネルを様々な量で利用する。上述したアービトレーション・アルゴリズムは、マスターデバイスがどのチャネルを利用しているかを考慮していないので、そのアービトレーション・スキームが、マスターデバイスの実際のバス帯域幅の消費を正確に反映していない。
【特許文献１】米国特許出願第１０／８３３，７１６号広報
【特許文献２】米国特許出願第１０／９２１，０５３号広報
【発明の開示】
【００１１】
１つ以上の実施形態では、バス・アービトレーション・アルゴリズムは、バス・トランザクションによるバス・チャネルの方向、および／またはバス・チャネルの帯域幅の消費を考慮することによって、各マスターデバイスに割り当てられる相対的なバスチャネルの帯域幅を正確に制御する。少なくとも１つの重み付けレジスタが各マスターデバイスに関連付けられ、一実施形態では、バス・チャネルごとに１つの重み付けレジスタとなる。このレジスタは、利用可能なバス帯域幅に比例する配分（share）で周期的にロードされる。バス・チャネル上のバス・トランザクションが許可されると、対応する重み付けレジスタは、そのトランザクションによるバス・チャネルの帯域幅の消費を反映する量だけ減算され、その量はそのトランザクションを完了するために必要なバスデータ転送サイクルの数または転送されるデータ量によって測定される。相対的な帯域幅の配分の初期割り当てが同等である場合、バス・チャネルの帯域幅を消費するマスターデバイスが相対的に低い優先度を有し、バス・チャネルの帯域幅を消費しないマスターデバイスは相対的に高い優先度を保持する。
【００１２】
一実施形態は、複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。バス帯域幅に比例する配分が、各マスターデバイスに割り当てられる。各マスターデバイスのバス帯域幅の消費は、マスターデバイスによって実行されるバス・トランザクションの長さに応じて、マスターデバイスに割り当てられた配分を減算することによって追跡される。各マスターデバイスの残りの帯域幅の配分は、バスに対するアービトレーションにおける優先度として用いられる。
【００１３】
別の実施形態は、別個の送信および受信のチャネルを有するバス上の複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。アービトレーション優先度は、各マスターデバイスに対して送信および受信チャネルに関して独立に割り当てられる。各マスターデバイスの送信および受信のチャネルの優先度は、各々のチャネル上のマスターによって実行されるバス・トランザクションに応じて独立に減算される。
【００１４】
別の実施形態は、各マスターデバイスが各チャネルに対応する重み付けレジスタに関連付けられている、別個の送信および受信のチャネルを有するバス上の複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。各マスターデバイスに関連付けられた送信チャネル重み付けレジスタおよび受信チャネル重み付けレジスタは、各チャネル上の帯域幅の相対的な比例的配分がロードされる。重み付けレジスタの内容によって反映されているとおりの現在の帯域幅の配分に基づいて、バス・チャネル上のバス・トランザクションを要求するマスターデバイスの間でアービトレーションが実行される。マスターデバイスがバス・チャネルへのアクセスを許可されると、許可されたそのマスターデバイスに関連付けられた、そのチャネルに対応する重み付けレジスタは、許可されたバス・トランザクションにおいて消費するバス・チャネル帯域幅だけ減算される。
【００１５】
別の実施形態は、電子デバイスに関する。このデバイスは、データ転送バス、データ転送の関係においてこのバスに接続された少なくとも２つのマスターデバイス、およびデータ転送の関係においてこのバスに接続された少なくとも１つのスレーブデバイスを含む。このデバイスは、各マスターデバイスに関連付けられたアービトレーション優先度レジスタをさらに含み、アービトレーション優先度レジスタは、初期値がロードされるように動作し、バス上のバス・トランザクションがマスターデバイスに許可されるのに応じて、バス・トランザクションにより消費されるバスの帯域幅を反映する量だけ減算するように動作する。このデバイスは、関連付けられたアービトレーション優先度レジスタに最高値を有する要求するマスターデバイスにバスを許可するように動作するバス・アービタをさらに含む。
【００１６】
別の実施形態は、少なくとも２つのマスターデバイスおよび少なくとも１つのスレーブデバイスを含む電子デバイスに関する。このデバイスは、マスターデバイスからスレーブデバイスに情報を転送するように動作する送信バスチャネルと、スレーブデバイスからマスターデバイスに情報を転送するように動作する受信バスチャネルとを含む。このデバイスは、各マスターデバイスに関連付けられた送信および受信バスチャネルの各々に関するアービトレーション優先度レジスタをさらに含む。アービトレーション優先度レジスタは、初期値がロードされるように動作し、各バス・チャネル上のバス・トランザクションがマスターデバイスに許可されるのに応じて減算するように動作する。このデバイスは、バス・チャネルを、そのチャネルに関する関連付けられたアービトレーション優先度レジスタにおいて最高値を有する要求するマスターデバイスに許可するように動作するバス・アービタをさらに含む。
【発明を実施するための最良の形態】
【００１７】
図２は、４つのマスターデバイス：プロセッサ１０２、グラフィック・コプロセッサ１０４、ＤＭＡエンジン１０６、およびＭＰＥＧ符号化器／復号化器エンジン１０８を有する電子デバイス１００を示す。図示されたこれらのマスターデバイスは、代表的なだけであり、電子デバイス１００は、様々な機能性を有する任意の数のマスターデバイスを含み得る。マスターデバイス１０２、１０４、１０６、１０８は、メモリ１１０およびＩ／Ｏ回路１１２等の代表的なスレーブデバイスからの読み出しまたはそこへの書き込みを行う。データは、全体として１１５で示されるシステムバスを介してマスターおよびスレーブデバイスの間を転送される。
【００１８】
図２に示される実施形態では、システムバス１１５は、マスターデバイス１０２、１０４、１０６、１０８からスレーブデバイス１１０、１１２にデータを転送する書き込みバスチャネル１１４を含む。システムバス１１５は、スレーブデバイス１１０、１１２からマスターデバイス１０２、１０４、１０６、１０８にデータを転送する読み出しバスチャネル１１６をさらに含む。明瞭化のために、別個のアドレスおよび制御信号のチャネルは図２から省略されている。システムバス１１５の書き込みチャネル１１４および読み出しチャネル１１６への分割は、代表的なだけであり、制限的なものではない。例えば、アドレスチャネル（図示せず）が、書き込みチャネル１１４と一体化されてよい。代替的に、バスチャネル１１４、１１６が単一の双方向チャネルに一体化されてよい。
【００１９】
マスターがシステムバス１１５を介してバス・トランザクションを実行することを望む場合、各マスターデバイス１０２、１０４、１０６、１０８は、バス・アービタ１１８に要求信号を送信する。バス・アービタは、この場合には２つのバスチャネル１１４、１１６に関し、マスターデバイス１０２、１０４、１０６、１０８の間でアービトレーションを実行し、各バスチャネル１１４、１１６に対し、１つのマスターデバイス１０２、１０４、１０６、１０８に排他的な許可信号を出す。要求および許可の信号の図２の描写は、代表的なだけである。あらゆる特定の実装において、これらの論理信号が任意の数の実際の信号線を含み得る。
【００２０】
プロセッサ１０２は、読み出しチャネル・アービトレーション重み付けレジスタ１２０および書き込みチャネル・アービトレーション重み付けレジスタ１２２を含む。同様に、マスターデバイス１０４は、読み出しチャネル重み付けレジスタ１２４および書き込みチャネル重み付けレジスタ１２６を含み、マスターデバイス１０６は、読み出しチャネル重み付けレジスタ１２８および書き込みチャネル重み付けレジスタ１３０を含み、マスターデバイス１０８は、読み出しチャネル重み付けレジスタ１３２および書き込みチャネル重み付けレジスタ１３４を含む。これらの読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２および書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４は、バス１１５のアービトレーションを実行するのにデータ転送方向（即ち、いずれのバスチャネル１１４、１１６であるか）および消費されるバス帯域幅（即ち、関連するチャネル１１４、１１６を介した転送されるデータの量）の両方を考慮する独創的なバス・アービトレーション機構を実装する。
【００２１】
多くのコンピューティング・システムでは、書き込みチャネル１１４および読み出しチャネル１１６は同等に利用されていない。むしろ、読み出しチャネル１１６の動作が支配的である。さらに、多くのマスターデバイス１０２、１０４、１０６、１０８は、特徴的に異なる書き込みチャネル１１４および読み出しチャネル１１６の利用速度を有し得る。例えば、直接的にディスプレイに結合されたグラフィック・コプロセッサ１０４またはＭＰＥＧ復号化器１０８は、メモリから大量のデータを読み出すが、書き込みは相対的に少ない可能性がある。書き込みチャネル１１４および読み出しチャネル１１６、ならびに対応する書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４および読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２を分離することによって、各マスターデバイス１０２、１０４、１０６、１０８の相対的なアービトレーション優先度を各チャネル１１４、１１６上で別個に制御することができ、システム能力のより細かい調整が可能になる。
【００２２】
一実施形態によれば、読み出しチャネル１１６の帯域幅が、読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２に各々書き込まれた値によって、マスターデバイス１０２、１０４、１０６、１０８の間で周期的に比例的に割り当てられる。例えば、読み出しチャネル重み付けレジスタ１２０が４０の値を受取り、読み出しチャネル重み付けレジスタ１２４、１２８および１３２が各々２０の値を受取ってよい。これによって、読み出しチャネル１１６の１００のバスビートのアービトレーション期間の間、マスターデバイス１０２に読み出しチャネル１１６の帯域幅の４０％が割り当てられ、マスターデバイス１０４、１０６および１０８の各々に読み出しチャネル１１６の帯域幅の２０％が割り当てられる。
【００２３】
要求するマスターデバイス１０２、１０４、１０６、１０８に読み出しチャネル１１６上のバス・トランザクションが許可される場合、そのマスターデバイスの読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２は、そのバス・トランザクションによって消費される読み出しチャネル１１６の帯域幅に対応する量だけ減算される。読み出しチャネル１１６のアービトレーションでのマスターデバイス１０２、１０４、１０６、１０８の優先度は、そのようにして、そのマスターデバイスがスレーブデバイス１１０、１１２から大量のデータを転送することによって、読み出しチャネル１１６の帯域幅を消費するため、減少する。周期的に、または代替的に全ての重み付けレジスタ１２０、１２４、１２８、１３２が尽きた場合、これらのレジスタが各初期値に（または読み出しチャネル１１６の帯域幅に相対的に比例する別の配分に）リセットされ得る。
【００２４】
一実施形態では、マスターデバイス１０２、１０４、１０６、１０８に読み出しチャネル１１６のバス・トランザクションが許可されたのに応じて、対応する読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２が、バイト数等のデータ転送のサイズだけ減算される。しかしながら、この場合、６４ビット幅データ経路を有する読み出しバスチャネル１１６に対し、１から８バイトのいずれの転送も同じ量のバスチャネル１１６の帯域幅、即ち、単一のデータ転送サイクルまたは「ビート」を消費する。本明細書で用いられるように、データ転送サイクル、またはビートは、バスチャネル１１４、１１６を介して送り元から送り先にデータを転送するために必要な継続時間である。１つのバスビートが単一のバス・クロックサイクルを含むのが好ましいが、単一のバスビートが２以上のバス・クロックサイクルに及んでもよい。
【００２５】
別の実施形態によれば、バスチャネル１１４、１１６の帯域幅の消費をバイトではなくビートで測定することによって、バス・トランザクションにおいてマスターデバイス１０２、１０４、１０６、１０８によって消費される関連するバスチャネル１１４、１１６の実際の帯域幅が、マスターデバイスの相対的なアービトレーション優先度に反映される。即ち、１から８バイトの読み出しをするために読み出しチャネル１１６のバス・トランザクションを許可されたマスターデバイス１０２、１０４、１０６、１０８は、全てのバス・トランザクションが読み出しチャネル１１６で帯域幅の１ビートを消費するので、全て、それらの読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２を１ずつ減算する。
【００２６】
即ち、一実施形態では、マスターデバイス１０２、１０４、１０６、１０８に読み出しバスチャネル１１６へのアクセスが許可される際に、読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２は、要求されたトランザクションを完了するために必要とされる読み出しバスチャネル１１６を介したビートの数だけ減算される。例えば、読み出しバスチャネル１１６の１ビートを必要とする、１から８バイトの読み出しは、関連する読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２を１だけ減算する。１６個のバーストは、関連する読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２を１６だけ減算する。この方法によって、各マスターデバイス１０２、１０４、１０６、１０８のアービトレーション優先度重み付けは、そのマスターデバイスに初期に割り当てられた関連する読み出しチャネル１１６の帯域幅と、そのマスターデバイスの読み出しチャネル１１６の実際の利用との両方を反映する。
【００２７】
動作中、読み出しチャネル１１６上で長いバーストまたは大量のバス・トランザクションのいずれかを実行する（いずれの場合も、読み出しチャネル１１６の帯域幅を消費する）マスターデバイス１０２、１０４、１０６、１０８は、他のマスターデバイスと比較してより低いアービトレーション優先度を有する。読み出しチャネル１１６を大量に利用しないマスターデバイス１０２、１０４、１０６、１０８は、大量に利用するマスターデバイスと比較して読み出しチャネル１１６に対してより高い優先度を保持する。これによって、マスターデバイス１０２、１０４、１０６、１０８が、それらに割り当てられた相対的な比例的帯域幅の配分と、それらの読み出しチャネル１１６上の実際の帯域幅消費との両方に相応に読み出しチャネル１１６にアクセスすることが確実になる。
【００２８】
同様に、書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４に各々、値を書き込むことによって、各マスターデバイス１０２、１０４、１０６、１０８は、初期に（および周期的に）書き込みチャネル１１４の比例的な配分が割り当てられる。マスターデバイスの書き込みチャネル１１４に関する初期の優先度は、読み出しチャネル１１６に関する初期の優先度と異なっていてもよい。各マスターデバイス１０２、１０４、１０６、１０８に関する書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４は、書き込みチャネル１１４上のバス・トランザクションが許可されるのに応じて、一実施形態では、許可されたバストランザクションが完了するのに必要とされるビートの数だけ、減算される。それゆえに、任意の所与の時間で、書き込みチャネル１１４および読み出しチャネル１１６上のマスターデバイスの相対的な優先度は、マスターデバイスに初期に割り当てられた相対的な帯域幅の配分と、関連するバスチャネル１１４、１１６の帯域幅のマスターデバイス自身の実際の利用の両方を反映する。
【００２９】
要求するマスターデバイス１０２、１０４、１０６、１０８と関連付けられた読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２または書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４の全てが同じ値を有する場合、アービタ１１８は、ラウンドロビン・アービトレーション・アルゴリズムに切り替えてよい。特に、これは、重み付けレジスタ１２０〜１３４を再ロードする際に、全てのマスターデバイスに１つ以上のチャネル１１４、１１６の同等の比例的な帯域幅の配分が割り当てられた場合に、生じ得る。さらに、ラウンドロビン・アービトレーションは、読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２または書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４の全てが、完全に零に減算された場合に用い得る。読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２および書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４は、バスビートの数または時間で測定され得るアービトレーション期間の満了とともにそれらの初期値に更新されてよい。
【００３０】
一実施形態では、１つ以上のマスターデバイス１０２、１０４、１０６、１０８が、より高い層のマスターデバイスとして規定されてよく、その読み出しおよび書き込みチャネル重み付けレジスタ１２０〜１３４は、他のマスターデバイスよりも高い頻度で更新される。即ち、より高い層のマスターデバイスに対するアービトレーション期間がより低い層のマスターデバイスに対するアービトレーション期間より短くてよい。一般に、任意の数の階層が、対応する関連付けられたアービトレーション期間と共に規定されてよい。
【００３１】
この方法によって、各バス・トランザクションの消費される帯域（例えば、ビートで）および方向（即ち、書き込みチャネル１１４および読み出しチャネル１１６に対する別個の優先度を保持する）の両者は、各バスチャネル１１４、１１６上の各マスターデバイス１０２、１０４、１０６、１０８のアービトレーション優先度を調整するのに用いられる。これによって、各マスターデバイスに割り当てられたシステム・バス１１５の帯域幅の関連する配分のより優れた制御が提供される。以下の表は、４つのマスタデバイス（Ｍ０〜Ｍ３）の各々に対する読み出しおよび書き込みチャネル重み付けの中身を示しており、一実施形態によるアービトレーション・アルゴリズムの動作の代表的な例を示す：
【表１−１】
2009505296.tif 000003
【表１−２】
2009505296.tif 000004
上記の例では、５つの読み出しチャネル１１６のトランザクションおよび５つの書き込みチャネル１１４のトランザクションに対する以下のアービトレーションの後に、マスターデバイスＭ３（１０８）は、バス１１５のトランザクションが許可されたおかげで、書き込みチャネル１１４に対する最高のアービトレーション優先度と、読み出しチャネル１１６に対する最低のアービトレーション優先度とを有する。他のマスターデバイス１０２、１０４、１０６は、それらのチャネル１１４、１１６の実際の利用を反映する（この例では、それらに初期に割り当てられた両チャネル１１４、１１６に対する比例的な帯域幅の配分は同等であった）、バス・チャネル１１４、１１６に関するアービトレーション優先度を有する。
【００３２】
読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２または書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４の全てが、アービトレーション期間の満了の前に使い果たされた場合、アービタ１１８は、ラウンドロビン・アービトレーション・アルゴリズムまたは当技術分野で公知である他の何らかのアービトレーション・アルゴリズムが実装し得る。一実施形態では、読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２または書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４にそれらの初期値を再ロードすることは、各重み付けレジスタの全てが完全に零に減算されたことによって引き起こされてよく、これは全てのマスターデバイス１０２、１０４、１０６、１０８が割り当てられたチャネル１１４、１１６の帯域幅の配分を完全に消費したことを示す。
【００３３】
一実施形態では、読み出しチャネル重み付けレジスタ１２０、１２４、１２８、１３２および書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４は、アービタ１１８によって対応するマスターデバイス１０２、１０４、１０６、１０８にバス・トランザクションが許可される際に、バス１１５のトランザクションのビートの数だけ減算されてよい。当業者は、代替的に、バス・トランザクションの中断またはそれ以外の理由で未完了であることによってマスターデバイスのアービトレーション優先度が減算されない場合に、あたかもバス・トランザクションが完了したかのように、バス転送の完了またはバス転送の各ビートの完了の際に、重み付けレジスタ１２０〜１３４が減算されてもよいことを容易に理解するであろう。さらに、図２は、重み付けレジスタ１２０〜１３４がマスターデバイス１０２〜１０８の内部にあるように示されているが、別の実施形態では、重み付けレジスタ１２０〜１３４が、バス・アービタ１１８内、相互接続マトリクス（図示せず）内、または電子デバイス１００内部のどこか別の場所に存在していてよい。
【００３４】
別の実施形態では、チャネル重み付けレジスタ１２０、１２４、１２８、１３２および書き込みチャネル重み付けレジスタ１２２、１２６、１３０、１３４は、許可されたバス１１５のトランザクションの各々で１回だけ減算される。この実施形態では、各マスターデバイス１０２、１０４、１０６、１０８の書き込みチャネル１１４および読み出しチャネル１１６の利用が別個に追跡されるが、データ転送の長さに基づく区別はされておらず、それゆえに、実際の帯域幅消費は考慮されていない。さらに別の実施形態では、各マスターデバイス１０２、１０４、１０６、１０８は、データ転送が読み出しまたは書き込みの動作のいずれかであるかに関わらず、各データ転送のビートに対して減算する、単一のチャネル重み付けレジスタ（図示せず）だけを含む。この実施形態では、マスターデバイスのバス１１５の帯域幅の総量の配分が追跡され、それに応じて、いずれのチャネルで（即ち、いずれの方向で）転送が生じているかに関わらず、アービトレーション優先度が調整される。この実施形態は、読み出しおよび書き込みの転送が同じデータ回線を利用する、図１に示されるような統合されたデータバスを有するシステムバスに特に適している可能性がある。
【００３５】
上記で説明され、図２で示された電子デバイス１００は、分離された書き込みチャネル１１４、読み出しチャネル１１６、およびアドレスチャネル（図示せず）を利用する。種々の実施形態において、転送方向および／または帯域幅消費を考慮するアービトレーション・アルゴリズムが種々のバス構造に有益に適用され得る。例えば、参照により本明細書にその全文が組み込まれる、２００４年８月１７日に出願され、本発明の譲受人に譲渡された同時係属中の同時係属中の米国特許出願第１０／９２１，０５３号は、バスの特定の実装の帯域幅要求に依存しない、共通のバス・アーキテクチャおよびシグナリング・プロトコルを用いるシステムオンチップ（ＳＯＣ）設計に関するバス・アーキテクチャを開示する。本明細書では、このアーキテクチャをスケーラブルなバス・アーキテクチャと呼ぶ。
【００３６】
スケーラブルなバス・アーキテクチャは、バス幅およびクロック周波数の両方でスケーラブルであり、そのシグナリング・プロトコルは、用いられるあらゆる上位層バス・プロトコルにも依存しない。これは、バスのシグナリング・プロトコルを、バスを介した情報の送信または受信のいずれかに必要とされる必須の信号だけに低減することによって達成される。シグナリング・プロトコル自体から、上位層プロトコル仕様を除去したことによって、同一の基本となるシグナリング・プロトコルを用いるあらゆるバス・アーキテクチャを実装することが可能になる。さらに、このアーキテクチャのスケーラビリティによって、同じシグナリング・プロトコルを用いる種々の実装が可能になる。
【００３７】
従来技術のオンチップ・バス・アーキテクチャは、アドレスバス、転送修飾子バス（transfer qualifier bus）、書き込みデータバス、書き込みデータバス・イネーブル、読み出しデータバスを含むことが多い。これらのバスの各々は、独自のシグナリング・プロトコル、バス幅、および転送プロトコルを備えた独立したチャネルとして実装され得る。各バスチャネルは、バスを介したデータの流れを制御するために必要なハンドシェーキングを可能にする少数の制御信号を含む。
【００３８】
図３に示すスケーラブルなバス・アーキテクチャでは、アドレス、転送修飾子、書き込みデータ、および書き込みデータ・イネーブルは全て、送信デバイス１５０から受信デバイス１５２に転送される情報と考えられる。この情報は、全て、同じ転送プロトコルを用いて、示されているように単一の送信チャネル１５４または複数の送信チャネル上を、転送される。読み出しデータは、同じシグナリング・プロトコルを用いて、受信チャネル１５６上を受信デバイス１５２から送信デバイス１５０に転送される。全てのバス転送プロトコルは、送信チャネル１５４および受信チャネル１５６を介して情報を転送することによって通信を行う送信デバイス１５０および受信デバイス１５２の基本動作に分解することが可能である。時分割多重方式では、異なる種類の情報が送信デバイス１５０から受信デバイス１５２にブロードキャストされ得る。
【００３９】
スケーラブルなアーキテクチャでは、前記送信デバイス１５０は、アドレス保有期間の間、送信チャネル１５４上で、１つまたは複数のアドレスをブロードキャストすることによって、読み出しまたは書き込みの転送、あるいはそれらの任意の組み合わせを開始するための送信チャネル１５４上のアドレス、転送修飾子、書き込みデータ、または書き込みデータ・イネーブルを含む情報を送信する。書き込み転送の場合、アドレス、転送修飾子、書き込みデータおよび書き込みデータ・イネーブルは全て、送信チャネル１５４上で転送され、受信チャネル１５２は利用されない。読み出し転送の場合、アドレスおよび転送修飾子が送信チャネル１５４上を転送される。受信デバイス１５２は、このブロードキャストを肯定応答し、その後に、受信チャネル１５６上に読み出しデータをブロードキャストすることによって要求データを提供する。
【００４０】
図４は、スケーラブルなバス・アーキテクチャを利用する代表的なＳＯＣ設計を示す。このシステム１６０は、スレーブデバイスのＤＲＡＭコントローラ１６８からまたはそこにデータの読み出しおよび書き込みをする、２つのマスターデバイスのＣＰＵ１６２およびＤＭＡコントローラ１６４を含む。データ転送は、オンチップ・バス相互接続１６６を介して生じる。ＣＰＵ１６２は、送信チャネル１７２および受信チャネル１７によってオンチップ・バス１６６に接続する。同様に、ＤＭＡコントローラ１６４は、送信チャネル１７６および受信チャネル１７８によってオンチップ・バス１６６に接続する。そして、オンチップ・バス１６６は、送信チャネル１８０および受信チャネル１８２を介してスレーブＤＲＡＭコントローラに接続する。このＤＲＡＭコントローラ１６８は、アドレスバス１８４、制御信号１８６、および双方向データバス１８８を含む従来式のインタフェースを介して、オフチップＤＲＡＭ１７０の読み出しおよび書き込みを行う。
【００４１】
送信チャネル１７２、１７６および１８０は、アドレス保有期間、転送修飾子、および書き込みデータ保有期間を転送する。受信チャネル１７４、１８７および１８２は、読み出しデータ保有期間を搬送する。オンチップ・バス１６６は、許可されたマスターデバイス１６２、１６４の各々のバスチャネル１７２、１７４または１７６、１７８を、スレーブデバイス１６８の対応するバスチャネル１８０、１８２に接続する相互接続である。例えば、オンチップ・バス相互接続１６６内に存在し得るアービタ（図示せず）は、マスターデバイス１６２、１６４の間でアービトレーションを実行し、転送方向および／またはバスチャネルの消費される帯域幅を考慮することによって、それらの間でオンチップ・バス１６６の帯域幅を正確に割り当てる。
【００４２】
一実施形態では、ＣＰＵ１６２が、送信チャネル重み付けレジスタ１９０および受信チャネル重み付けレジスタ１９２を含む。同様に、ＤＭＡコントローラ１６４が、送信チャネル重み付けレジスタ１９４および受信チャネル重み付けレジスタ１９６を含む。重み付けレジスタ１９０〜１９６内の値は、マスターデバイス１６２、１６４の各々の送信および受信のバスチャネルに関するアービトレーション優先度を決定する。重み付けレジスタ１９０〜１９６は、各マスターデバイスに割り当てられた各チャネルに関するオンチップ・バス１６６の帯域幅の相対的な比例的配分を反映する初期値が周期的にロードされる。
【００４３】
一実施形態では、書き込み動作を実行するためにマスターデバイス１６２、１６４に対してバス１６６を許可すると、許可されたマスターの送信チャネル重み付けレジスタ１９０、１９４は、アドレス保有期間に対して１だけ減算され、転送修飾子の転送に対して２回目の減算が行われ、次に、送信チャネル１７２、１７６、１８０を介した各書き込みデータ転送または各ビートに対して１度の減算が行われる。読み出し動作の場合、許可されたマスターの受信チャネル重み付けレジスタ１９２、１９６は、受信チャネル１７４、１７８、１８２上の各データビートに対して１だけ減算される。さらに、許可されたマスターの送信チャネル重み付けレジスタ１９０、１９４は、アドレス保有期間に対して１だけ減算され、送信チャネル１７２、１７６、１８０を介した転送修飾子の転送に対して１だけ減算される。
【００４４】
この方法によって、送信および受信チャネル重み付けレジスタ１９０〜１９６は、バス・トランザクションを完了するのに必要とされる送信チャネル１７２、１７６、１８０および受信チャネル１７４、１７８、１８２の各々を介した転送の正確な数に基づいて減算される。この方法で重み付けレジスタ１９０〜１９６を減算することによって、システムは、送信および受信の両チャネル１７２〜１８２の上で各マスターに割り当てられる帯域幅を正確に制御し得る。
【００４５】
別の実施形態では、書き込み動作の場合、許可されたマスターの送信チャネル重み付けレジスタ１９０、１９４は、送信チャネル１７２、１７６、１８０を介した書き込みデータビートに関してだけ減算され、許可されたマスターの受信チャネル重み付けレジスタ１９２、１９６は、受信チャネル１７４、１７８、１８２上の読み出しデータビートに関してだけ減算される。この実施形態では、読み出しおよび書き込み動作の両方に関する送信チャネル１７２、１７６、１８０上の転送修飾子およびアドレス保有期間の転送は、システムのオーバーヘッドとみなされ、バス・アービトレーションを実行する際に、マスターデバイス１６２、１６４の間でのバス帯域幅の割り当てが特に追跡されない。これによって、より低い正確さの帯域幅の割り当て制御機構が提供されるが、実装が単純化されて制御のオーバーヘッドは低減され得る。
【００４６】
一実施形態では、各マスターデバイス１６２、１６４の単一のバス重み付けレジスタが、オンチップ・バス１６６を介したいずれの方向においても、各情報転送ビートまたは各データビートのみに関して減算されてもよく、即ち、送信チャネル１７２、１７６、１８０および受信チャネル１７４、１７８、１８２の個々の利用でなく、全体のバス利用が追跡される。別の実施形態では、各マスター１６２、１６４は、別個の送信チャネル重み付けレジスタ１９０、１９４および受信チャネル重み付けレジスタ１９２、１９６を含み得るが、レジスタ１９０〜１９４は、各マスターデバイス１６２、１６４が関連するデータ転送に関してオンチップ・バス１６６が許可されると一度だけ減算される。この実施形態では、オンチップ・バス１６６のマスターデバイスの利用は、データ転送の各方向に関して別々に追跡されるが、そのような転送の各々の長さ−およびそれゆえにマスターデバイスのバス１６６の帯域幅の実際の消費−は追跡されない。
【００４７】
図５は、一実施形態による、アービトレーション方法を流れ図の形式で示す。各バスチャネルに対する重み付けレジスタにバスチャネル帯域幅の相対的な比例的配分がロードされる（ブロック２００）。これは、統合型バスのようなものに関する単一の重み付けレジスタ、または送信（書き込み）および受信（読み出し）のバスチャネルに対して別個の重み付けレジスタをロードすることを含んでよい。１つ以上のレジスタが、各バスチャネル上のバス・トランザクションに関するアービトレーションに参加し得る各マスターデバイスに関連付けられ、これらのレジスタは比例的帯域幅の配分を保持する。マスターデバイスがチャネル上のバス・トランザクションを要求する際に、アービタはそれらの間でアービトレーションを実行し、現在の割り当てられている最高の帯域幅の配分を有するマスターデバイスに、要求されたバスチャネルを許可する（ブロック２０２）。バスチャネルを要求するマスターデバイスの全てが、同一の現在の割り当てられている帯域幅の配分を有する場合、ラウンドロビン・アービトレーション・アルゴリズムが用いられ得る。
【００４８】
マスターデバイスが要求するバスチャネル上のバス・トランザクションを許可される際に、関連付けられた割り当てられた帯域幅の配分は、転送されたデータ量またはバスチャネルのビートに関して、バス・トランザクションによる消費されたチャネル帯域幅だけ減算される（ブロック２０４）。アービトレーション期間の満了時、または代替的に、バスチャネルに対する全てのマスターデバイスの割り当てられた帯域幅の配分が完全に減算された場合に（ブロック２０６）、レジスタにマスターデバイスの相対的な比例的に割り当てられた帯域幅の配分が再ロードされる（ブロック２００）。そうでなければ、バス・アービトレーションは、継続される（ブロック２０２）。
【００４９】
本明細書で１つ以上の実施形態に関して説明されたアービトレーション方法は、従来技術のバスシステムおよびアービトレーション方法に勝る多数の利点を示す。このアービトレーションは、読み出しおよび書き込みのデータチャネル帯域幅の別個の、および独立した重み付けを可能にする。多くのシステムでは、読み出しデータチャネルは、全体のシステム性能の制限要因である。読み出し転送が許可された場合にだけ減算される個々の重み付け係数を提供することによって、読み出しデータチャネル上の帯域幅の割り当ての制御がより正確なレベルで可能になり、即ち、可能性としてより向上された全体のシステム性能が可能になる。
【００５０】
多くのオンチップ・バス・アーキテクチャでは、単一の要求保有期間を備えた読み出しまたは書き込みのデータチャネル（例えば、読み出しおよび書き込みの「バースト」）のいずれかの上で複数のビート転送を要求することが可能である。関連する重み付け係数を要求されたビートの数だけ減算することによって、重み付け係数が、アドレス保有期間の数の代わりに、読み出しおよび書き込みデータバス上で要求されたデータ保有期間の数を示すことが可能になる。重み付け係数は、各バスチャネル上で実際の帯域幅とより厳密に一致し、マスターデバイスが種々の異なるデータ転送サイズを有するバス・トランザクションを要求する場合、均等化する効果を提供する。
【００５１】
実施形態によっては、読み出しおよび書き込みのバスチャネルに対する個々の重み付けレジスタの利用が、要求されたデータビートの数で測定された消費される帯域幅に基づく重み付けレジスタの減算との組み合わせにより、マスターデバイスにプログラミングされた重み付け係数と、マスターデバイスに割り当てられる読み出しおよび書き込みのバスチャネルの実際の帯域幅との間の直接的な相関関係を提供する。これによって、帯域幅の割り当てがより正確になり、プログラマーは各マスターデバイスに割り当てられる実際の帯域幅を思い通りに制御することが可能になる。
【００５２】
個々のアドレス、読み出しデータ、および書き込みデータチャネルに関してバースト・プロトコルを利用する多くの最新のオンチップ・バス構造では、アドレスチャネルは低稼働であり、システムの最大の達成可能な帯域幅を決定する制限要因ではない。むしろ、読み出しデータチャネルが制限要因であることが多く、従って、読み出しデータチャネル帯域幅をより正確に制御する能力を有することが、より高い全体のシステム性能を導く、より最適なアービトレーション・スキームを可能にする。
【００５３】
本明細書では、本発明がその特定の特性、態様および実施形態に関して説明されたが、本発明の広範な範疇の範囲内で種々の変形、変更、および他の実施形態が可能であり、従って、全ての変形、変更および実施形態が本発明の範疇の範囲内にあるとみなされるべきであることは明らかであろう。それゆえに、本実施形態は、全ての態様において例示的であり、限定的なものでないとみなされるべきであり、添付の特許請求の意味および同等の範疇の範囲内に入る全ての変更は、その中に包含されるべきであることが意図される。
【図面の簡単な説明】
【００５４】
【図１】図１は、従来技術のバスのブロック図である。
【図２】図２は、電子デバイスの機能ブロック図である。
【図３】図３は、スケーラブルなバス・アーキテクチャのブロック図である。
【図４】図４は、スケーラブルなバス・アーキテクチャを実装する単一チップ・コンピュータのブロック図である。
【図５】図５は、バス・アービトレーションの方法の流れ図である。
【図１】
2009505296.tif 000005
【図２】
2009505296.tif 000006
【図３】
2009505296.tif 000007
【図４】
2009505296.tif 000008
【図５】
2009505296.tif 000009
【国際調査報告】
2009505296.tif 000010
2009505296.tif 000011