JP4705171B2 - 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション - Google Patents

転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション Download PDF

Info

Publication number
JP4705171B2
JP4705171B2 JP2008527165A JP2008527165A JP4705171B2 JP 4705171 B2 JP4705171 B2 JP 4705171B2 JP 2008527165 A JP2008527165 A JP 2008527165A JP 2008527165 A JP2008527165 A JP 2008527165A JP 4705171 B2 JP4705171 B2 JP 4705171B2
Authority
JP
Japan
Prior art keywords
bus
channel
master device
arbitration
bandwidth
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.)
Expired - Fee Related
Application number
JP2008527165A
Other languages
English (en)
Other versions
JP2009505296A (ja
Inventor
シャッファー、マーク・マイケル
ホフマン、リチャード・ジェラード
ガナサン、ジャヤ・パラカシュ・サブラマニアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009505296A publication Critical patent/JP2009505296A/ja
Application granted granted Critical
Publication of JP4705171B2 publication Critical patent/JP4705171B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、一般にプロセッサの分野に関し、特に、データ転送方向およびバスチャネルの帯域幅の消費を考慮するバス・アービトレーションの方法に関する。
携帯用電子デバイスは、精巧さおよび計算パワーが増大し続け、ユーザにますます高まる機能性を提供している。最新の携帯用電子デバイスは、無線データおよび音声の通信、写真およびビデオのキャプチャおよび再生、位置測定および地理的経路案内、精巧なグラフィックのゲーム遊戯、高忠実度音声受信および再生等などを含む。近い将来、携帯用電子デバイスは、ユビキタス・アドホックデータ通信(例えば、IEEE 802.11,ブルートゥース等)、仮想現実ユーザインターフェース、および多数の他の進歩を支援すると予想される。多くの場合、そのような多面的機能性は、1つ以上の主プロセッサに加え、専用処理回路で実装される。例えば、グラフィック・コプロセッサ、MPEGビデオ符号化器/復号化器、GPS受信機プロセッサ、および/または他の専用プロセッサが、携帯用電子デバイスに備わっていてよく、メモリ、ユーザインターフェース・エレメント等などのシステムリソースを共有し得る。
機能ユニット間の効率的なデータ転送は、携帯用電子デバイスを含むあらゆるデジタルシステムの基本的動作である。ディスクからメモリに、プロセッサにプログラムをデータ転送すること、グラフィックエンジンからフレームバッファに、ビデオ表示回路にデータ送信すること、ならびにキーパッド、マウスまたはタッチスクリーンからプロセッサに入力を送信することは、全てコンピューティングシステム内のデータ転送の一般的な例である。
図1は、全体として数字10で示された、公知のシステムバス・アーキテクチャの簡略図を示す。システムバス12は、システムユニットを相互接続する。このシステムバス12は、アドレス、データおよび制御のチャネルを含んでよく、双方向(例えば、読み出しおよび書き込み)のデータ転送を実行し得る。CPU14またはDMAエンジン16等のマスターデバイスは、メモリ18および入力/出力回路20等のスレーブデバイスに向かって、またはそこから、バス12の1つ以上のチャネルを介したデータ転送−本明細書ではバス・トランザクションと呼ぶ−を開始する。2つ以上の独立したマスター14、16がバス12に接続される場合、それらのバスへのアクセスは、アービタ22によって制御される。
当技術分野で公知であるように、1つ以上のマスターデバイス14、16は、アービタ22にバス要求を主張する。このアービタ22は、バス上の動作を監視し、バス12が利用可能になると、要求するマスターデバイス14、16のうちの1つにバス許可を送信する。そして許可されたマスターデバイス14、16は、1つ以上のスレーブデバイス18、20に向けた、読み出しまたは書き込み等のバス12の1つ以上のチャネルを介したトランザクションを開始し得る。
多数のバス・アービトレーションのアルゴリズムは、当技術分野で公知である。参照により本明細書にその全文が組み込まれる、2004年4月27日に出願され、本発明の譲受人に譲渡された同時係属中の米国特許出願第10/833,716号は、各マスターデバイスがプログラム可能な重みを初期に割り当てられる、バス・アービトレーション・スキームを開示する。各マスターデバイスがバスへのアクセスを許可される際にその重みレジスタが減算され、保留中の要求に関して他のマスターデバイスに相対するそのマスターデバイスの要求優先度が効果的に低減される。このアービタは、同じ重みを有するマスターデバイスの間でのラウンドロビン選択と共に、より高い重みを有するマスターデバイスが、より低い重みを有するマスターデバイスより優先度の高い、重み付きラウンドロビンのアルゴリズムを実装する。一旦、全てのマスターデバイスがそれらの重みレジスタを零に減算されると、その満了時に全てのマスターデバイスがそれらの初期のプログラム可能な重み付けを再割り当てされる重み付け期間の継続期間の間は、公平なラウンドロビン・アービトレーションが実装される。
一実施形態では、2以上の階層のマスターデバイスが規定され得る。より高い層のマスターデバイスのプログラム可能な重み付けは、より低い層のマスターデバイスのプログラム可能な重み付けよりもより高い頻度で更新され得る。即ち、重み付け期間の間、各マスターデバイスにバスのトランザクション・サイクルが許可される際に、マスターデバイスの重み付けが減算されるので、より高い層のマスターデバイスはより高い頻度の基準で初期の重み付けにリセットされ得て、より高い層のマスターデバイスに全体的に見て高い優先度が与えられる。
このアービトレーション・スキームは、多数のマスターデバイスの間でバスリソースを公平に共有すること、ごく稀にだけバスにアクセスするマスターが高い優先度に保持されること、および大量のバス・トランザクションを実行するデバイスが迅速に相対的な優先度を使い果たすことにその効果がある。
しかしながら、マスターデバイスによって実行されるバス・トランザクションの数は、そのマスターデバイスの利用可能なバスの帯域幅の消費の概算である。例えば、16個のデータ転送サイクル、または「ビート(beats)」(即ち、64ビットのデータバスに対し128バイト)を含む読み出しバーストは、1つだけのバスビートを必要とする一のバイト読み出しよりもはるかに大きいバス帯域幅を消費する。しかしながら、上述したアービトレーション・スキームは、いずれの場合にも、マスターデバイスの重み付けレジスタを同じ量ずつ減算する。
さらに、最新の高性能バスは、独立した読み出しおよび書き込みのバスチャネルを備えることが可能であり、マスターデバイスはこの読み出しおよび書き込みのバスチャネルを様々な量で利用する。上述したアービトレーション・アルゴリズムは、マスターデバイスがどのチャネルを利用しているかを考慮していないので、そのアービトレーション・スキームが、マスターデバイスの実際のバス帯域幅の消費を正確に反映していない。
米国特許出願第10/833,716号広報 米国特許出願第10/921,053号広報
1つ以上の実施形態では、バス・アービトレーション・アルゴリズムは、バス・トランザクションによるバス・チャネルの方向、および/またはバス・チャネルの帯域幅の消費を考慮することによって、各マスターデバイスに割り当てられる相対的なバスチャネルの帯域幅を正確に制御する。少なくとも1つの重み付けレジスタが各マスターデバイスに関連付けられ、一実施形態では、バス・チャネルごとに1つの重み付けレジスタとなる。このレジスタは、利用可能なバス帯域幅に比例する配分(share)で周期的にロードされる。バス・チャネル上のバス・トランザクションが許可されると、対応する重み付けレジスタは、そのトランザクションによるバス・チャネルの帯域幅の消費を反映する量だけ減算され、その量はそのトランザクションを完了するために必要なバスデータ転送サイクルの数または転送されるデータ量によって測定される。相対的な帯域幅の配分の初期割り当てが同等である場合、バス・チャネルの帯域幅を消費するマスターデバイスが相対的に低い優先度を有し、バス・チャネルの帯域幅を消費しないマスターデバイスは相対的に高い優先度を保持する。
一実施形態は、複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。バス帯域幅に比例する配分が、各マスターデバイスに割り当てられる。各マスターデバイスのバス帯域幅の消費は、マスターデバイスによって実行されるバス・トランザクションの長さに応じて、マスターデバイスに割り当てられた配分を減算することによって追跡される。各マスターデバイスの残りの帯域幅の配分は、バスに対するアービトレーションにおける優先度として用いられる。
別の実施形態は、別個の送信および受信のチャネルを有するバス上の複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。アービトレーション優先度は、各マスターデバイスに対して送信および受信チャネルに関して独立に割り当てられる。各マスターデバイスの送信および受信のチャネルの優先度は、各々のチャネル上のマスターによって実行されるバス・トランザクションに応じて独立に減算される。
別の実施形態は、各マスターデバイスが各チャネルに対応する重み付けレジスタに関連付けられている、別個の送信および受信のチャネルを有するバス上の複数のマスターデバイスの間でバス・アービトレーションを実行する方法に関する。各マスターデバイスに関連付けられた送信チャネル重み付けレジスタおよび受信チャネル重み付けレジスタは、各チャネル上の帯域幅の相対的な比例的配分がロードされる。重み付けレジスタの内容によって反映されているとおりの現在の帯域幅の配分に基づいて、バス・チャネル上のバス・トランザクションを要求するマスターデバイスの間でアービトレーションが実行される。マスターデバイスがバス・チャネルへのアクセスを許可されると、許可されたそのマスターデバイスに関連付けられた、そのチャネルに対応する重み付けレジスタは、許可されたバス・トランザクションにおいて消費するバス・チャネル帯域幅だけ減算される。
別の実施形態は、電子デバイスに関する。このデバイスは、データ転送バス、データ転送の関係においてこのバスに接続された少なくとも2つのマスターデバイス、およびデータ転送の関係においてこのバスに接続された少なくとも1つのスレーブデバイスを含む。このデバイスは、各マスターデバイスに関連付けられたアービトレーション優先度レジスタをさらに含み、アービトレーション優先度レジスタは、初期値がロードされるように動作し、バス上のバス・トランザクションがマスターデバイスに許可されるのに応じて、バス・トランザクションにより消費されるバスの帯域幅を反映する量だけ減算するように動作する。このデバイスは、関連付けられたアービトレーション優先度レジスタに最高値を有する要求するマスターデバイスにバスを許可するように動作するバス・アービタをさらに含む。
別の実施形態は、少なくとも2つのマスターデバイスおよび少なくとも1つのスレーブデバイスを含む電子デバイスに関する。このデバイスは、マスターデバイスからスレーブデバイスに情報を転送するように動作する送信バスチャネルと、スレーブデバイスからマスターデバイスに情報を転送するように動作する受信バスチャネルとを含む。このデバイスは、各マスターデバイスに関連付けられた送信および受信バスチャネルの各々に関するアービトレーション優先度レジスタをさらに含む。アービトレーション優先度レジスタは、初期値がロードされるように動作し、各バス・チャネル上のバス・トランザクションがマスターデバイスに許可されるのに応じて減算するように動作する。このデバイスは、バス・チャネルを、そのチャネルに関する関連付けられたアービトレーション優先度レジスタにおいて最高値を有する要求するマスターデバイスに許可するように動作するバス・アービタをさらに含む。
図2は、4つのマスターデバイス:プロセッサ102、グラフィック・コプロセッサ104、DMAエンジン106、およびMPEG符号化器/復号化器エンジン108を有する電子デバイス100を示す。図示されたこれらのマスターデバイスは、代表的なだけであり、電子デバイス100は、様々な機能性を有する任意の数のマスターデバイスを含み得る。マスターデバイス102、104、106、108は、メモリ110およびI/O回路112等の代表的なスレーブデバイスからの読み出しまたはそこへの書き込みを行う。データは、全体として115で示されるシステムバスを介してマスターおよびスレーブデバイスの間を転送される。
図2に示される実施形態では、システムバス115は、マスターデバイス102、104、106、108からスレーブデバイス110、112にデータを転送する書き込みバスチャネル114を含む。システムバス115は、スレーブデバイス110、112からマスターデバイス102、104、106、108にデータを転送する読み出しバスチャネル116をさらに含む。明瞭化のために、別個のアドレスおよび制御信号のチャネルは図2から省略されている。システムバス115の書き込みチャネル114および読み出しチャネル116への分割は、代表的なだけであり、制限的なものではない。例えば、アドレスチャネル(図示せず)が、書き込みチャネル114と一体化されてよい。代替的に、バスチャネル114、116が単一の双方向チャネルに一体化されてよい。
マスターがシステムバス115を介してバス・トランザクションを実行することを望む場合、各マスターデバイス102、104、106、108は、バス・アービタ118に要求信号を送信する。バス・アービタは、この場合には2つのバスチャネル114、116に関し、マスターデバイス102、104、106、108の間でアービトレーションを実行し、各バスチャネル114、116に対し、1つのマスターデバイス102、104、106、108に排他的な許可信号を出す。要求および許可の信号の図2の描写は、代表的なだけである。あらゆる特定の実装において、これらの論理信号が任意の数の実際の信号線を含み得る。
プロセッサ102は、読み出しチャネル・アービトレーション重み付けレジスタ120および書き込みチャネル・アービトレーション重み付けレジスタ122を含む。同様に、マスターデバイス104は、読み出しチャネル重み付けレジスタ124および書き込みチャネル重み付けレジスタ126を含み、マスターデバイス106は、読み出しチャネル重み付けレジスタ128および書き込みチャネル重み付けレジスタ130を含み、マスターデバイス108は、読み出しチャネル重み付けレジスタ132および書き込みチャネル重み付けレジスタ134を含む。これらの読み出しチャネル重み付けレジスタ120、124、128、132および書き込みチャネル重み付けレジスタ122、126、130、134は、バス115のアービトレーションを実行するのにデータ転送方向(即ち、いずれのバスチャネル114、116であるか)および消費されるバス帯域幅(即ち、関連するチャネル114、116を介した転送されるデータの量)の両方を考慮する独創的なバス・アービトレーション機構を実装する。
多くのコンピューティング・システムでは、書き込みチャネル114および読み出しチャネル116は同等に利用されていない。むしろ、読み出しチャネル116の動作が支配的である。さらに、多くのマスターデバイス102、104、106、108は、特徴的に異なる書き込みチャネル114および読み出しチャネル116の利用速度を有し得る。例えば、直接的にディスプレイに結合されたグラフィック・コプロセッサ104またはMPEG復号化器108は、メモリから大量のデータを読み出すが、書き込みは相対的に少ない可能性がある。書き込みチャネル114および読み出しチャネル116、ならびに対応する書き込みチャネル重み付けレジスタ122、126、130、134および読み出しチャネル重み付けレジスタ120、124、128、132を分離することによって、各マスターデバイス102、104、106、108の相対的なアービトレーション優先度を各チャネル114、116上で別個に制御することができ、システム能力のより細かい調整が可能になる。
一実施形態によれば、読み出しチャネル116の帯域幅が、読み出しチャネル重み付けレジスタ120、124、128、132に各々書き込まれた値によって、マスターデバイス102、104、106、108の間で周期的に比例的に割り当てられる。例えば、読み出しチャネル重み付けレジスタ120が40の値を受取り、読み出しチャネル重み付けレジスタ124、128および132が各々20の値を受取ってよい。これによって、読み出しチャネル116の100のバスビートのアービトレーション期間の間、マスターデバイス102に読み出しチャネル116の帯域幅の40%が割り当てられ、マスターデバイス104、106および108の各々に読み出しチャネル116の帯域幅の20%が割り当てられる。
要求するマスターデバイス102、104、106、108に読み出しチャネル116上のバス・トランザクションが許可される場合、そのマスターデバイスの読み出しチャネル重み付けレジスタ120、124、128、132は、そのバス・トランザクションによって消費される読み出しチャネル116の帯域幅に対応する量だけ減算される。読み出しチャネル116のアービトレーションでのマスターデバイス102、104、106、108の優先度は、そのようにして、そのマスターデバイスがスレーブデバイス110、112から大量のデータを転送することによって、読み出しチャネル116の帯域幅を消費するため、減少する。周期的に、または代替的に全ての重み付けレジスタ120、124、128、132が尽きた場合、これらのレジスタが各初期値に(または読み出しチャネル116の帯域幅に相対的に比例する別の配分に)リセットされ得る。
一実施形態では、マスターデバイス102、104、106、108に読み出しチャネル116のバス・トランザクションが許可されたのに応じて、対応する読み出しチャネル重み付けレジスタ120、124、128、132が、バイト数等のデータ転送のサイズだけ減算される。しかしながら、この場合、64ビット幅データ経路を有する読み出しバスチャネル116に対し、1から8バイトのいずれの転送も同じ量のバスチャネル116の帯域幅、即ち、単一のデータ転送サイクルまたは「ビート」を消費する。本明細書で用いられるように、データ転送サイクル、またはビートは、バスチャネル114、116を介して送り元から送り先にデータを転送するために必要な継続時間である。1つのバスビートが単一のバス・クロックサイクルを含むのが好ましいが、単一のバスビートが2以上のバス・クロックサイクルに及んでもよい。
別の実施形態によれば、バスチャネル114、116の帯域幅の消費をバイトではなくビートで測定することによって、バス・トランザクションにおいてマスターデバイス102、104、106、108によって消費される関連するバスチャネル114、116の実際の帯域幅が、マスターデバイスの相対的なアービトレーション優先度に反映される。即ち、1から8バイトの読み出しをするために読み出しチャネル116のバス・トランザクションを許可されたマスターデバイス102、104、106、108は、全てのバス・トランザクションが読み出しチャネル116で帯域幅の1ビートを消費するので、全て、それらの読み出しチャネル重み付けレジスタ120、124、128、132を1ずつ減算する。
即ち、一実施形態では、マスターデバイス102、104、106、108に読み出しバスチャネル116へのアクセスが許可される際に、読み出しチャネル重み付けレジスタ120、124、128、132は、要求されたトランザクションを完了するために必要とされる読み出しバスチャネル116を介したビートの数だけ減算される。例えば、読み出しバスチャネル116の1ビートを必要とする、1から8バイトの読み出しは、関連する読み出しチャネル重み付けレジスタ120、124、128、132を1だけ減算する。16個のバーストは、関連する読み出しチャネル重み付けレジスタ120、124、128、132を16だけ減算する。この方法によって、各マスターデバイス102、104、106、108のアービトレーション優先度重み付けは、そのマスターデバイスに初期に割り当てられた関連する読み出しチャネル116の帯域幅と、そのマスターデバイスの読み出しチャネル116の実際の利用との両方を反映する。
動作中、読み出しチャネル116上で長いバーストまたは大量のバス・トランザクションのいずれかを実行する(いずれの場合も、読み出しチャネル116の帯域幅を消費する)マスターデバイス102、104、106、108は、他のマスターデバイスと比較してより低いアービトレーション優先度を有する。読み出しチャネル116を大量に利用しないマスターデバイス102、104、106、108は、大量に利用するマスターデバイスと比較して読み出しチャネル116に対してより高い優先度を保持する。これによって、マスターデバイス102、104、106、108が、それらに割り当てられた相対的な比例的帯域幅の配分と、それらの読み出しチャネル116上の実際の帯域幅消費との両方に相応に読み出しチャネル116にアクセスすることが確実になる。
同様に、書き込みチャネル重み付けレジスタ122、126、130、134に各々、値を書き込むことによって、各マスターデバイス102、104、106、108は、初期に(および周期的に)書き込みチャネル114の比例的な配分が割り当てられる。マスターデバイスの書き込みチャネル114に関する初期の優先度は、読み出しチャネル116に関する初期の優先度と異なっていてもよい。各マスターデバイス102、104、106、108に関する書き込みチャネル重み付けレジスタ122、126、130、134は、書き込みチャネル114上のバス・トランザクションが許可されるのに応じて、一実施形態では、許可されたバストランザクションが完了するのに必要とされるビートの数だけ、減算される。それゆえに、任意の所与の時間で、書き込みチャネル114および読み出しチャネル116上のマスターデバイスの相対的な優先度は、マスターデバイスに初期に割り当てられた相対的な帯域幅の配分と、関連するバスチャネル114、116の帯域幅のマスターデバイス自身の実際の利用の両方を反映する。
要求するマスターデバイス102、104、106、108と関連付けられた読み出しチャネル重み付けレジスタ120、124、128、132または書き込みチャネル重み付けレジスタ122、126、130、134の全てが同じ値を有する場合、アービタ118は、ラウンドロビン・アービトレーション・アルゴリズムに切り替えてよい。特に、これは、重み付けレジスタ120〜134を再ロードする際に、全てのマスターデバイスに1つ以上のチャネル114、116の同等の比例的な帯域幅の配分が割り当てられた場合に、生じ得る。さらに、ラウンドロビン・アービトレーションは、読み出しチャネル重み付けレジスタ120、124、128、132または書き込みチャネル重み付けレジスタ122、126、130、134の全てが、完全に零に減算された場合に用い得る。読み出しチャネル重み付けレジスタ120、124、128、132および書き込みチャネル重み付けレジスタ122、126、130、134は、バスビートの数または時間で測定され得るアービトレーション期間の満了とともにそれらの初期値に更新されてよい。
一実施形態では、1つ以上のマスターデバイス102、104、106、108が、より高い層のマスターデバイスとして規定されてよく、その読み出しおよび書き込みチャネル重み付けレジスタ120〜134は、他のマスターデバイスよりも高い頻度で更新される。即ち、より高い層のマスターデバイスに対するアービトレーション期間がより低い層のマスターデバイスに対するアービトレーション期間より短くてよい。一般に、任意の数の階層が、対応する関連付けられたアービトレーション期間と共に規定されてよい。
この方法によって、各バス・トランザクションの消費される帯域(例えば、ビートで)および方向(即ち、書き込みチャネル114および読み出しチャネル116に対する別個の優先度を保持する)の両者は、各バスチャネル114、116上の各マスターデバイス102、104、106、108のアービトレーション優先度を調整するのに用いられる。これによって、各マスターデバイスに割り当てられたシステム・バス115の帯域幅の関連する配分のより優れた制御が提供される。以下の表は、4つのマスタデバイス(M0〜M3)の各々に対する読み出しおよび書き込みチャネル重み付けの中身を示しており、一実施形態によるアービトレーション・アルゴリズムの動作の代表的な例を示す:
Figure 0004705171
Figure 0004705171
上記の例では、5つの読み出しチャネル116のトランザクションおよび5つの書き込みチャネル114のトランザクションに対する以下のアービトレーションの後に、マスターデバイスM3(108)は、バス115のトランザクションが許可されたおかげで、書き込みチャネル114に対する最高のアービトレーション優先度と、読み出しチャネル116に対する最低のアービトレーション優先度とを有する。他のマスターデバイス102、104、106は、それらのチャネル114、116の実際の利用を反映する(この例では、それらに初期に割り当てられた両チャネル114、116に対する比例的な帯域幅の配分は同等であった)、バス・チャネル114、116に関するアービトレーション優先度を有する。
読み出しチャネル重み付けレジスタ120、124、128、132または書き込みチャネル重み付けレジスタ122、126、130、134の全てが、アービトレーション期間の満了の前に使い果たされた場合、アービタ118は、ラウンドロビン・アービトレーション・アルゴリズムまたは当技術分野で公知である他の何らかのアービトレーション・アルゴリズムが実装し得る。一実施形態では、読み出しチャネル重み付けレジスタ120、124、128、132または書き込みチャネル重み付けレジスタ122、126、130、134にそれらの初期値を再ロードすることは、各重み付けレジスタの全てが完全に零に減算されたことによって引き起こされてよく、これは全てのマスターデバイス102、104、106、108が割り当てられたチャネル114、116の帯域幅の配分を完全に消費したことを示す。
一実施形態では、読み出しチャネル重み付けレジスタ120、124、128、132および書き込みチャネル重み付けレジスタ122、126、130、134は、アービタ118によって対応するマスターデバイス102、104、106、108にバス・トランザクションが許可される際に、バス115のトランザクションのビートの数だけ減算されてよい。当業者は、代替的に、バス・トランザクションの中断またはそれ以外の理由で未完了であることによってマスターデバイスのアービトレーション優先度が減算されない場合に、あたかもバス・トランザクションが完了したかのように、バス転送の完了またはバス転送の各ビートの完了の際に、重み付けレジスタ120〜134が減算されてもよいことを容易に理解するであろう。さらに、図2は、重み付けレジスタ120〜134がマスターデバイス102〜108の内部にあるように示されているが、別の実施形態では、重み付けレジスタ120〜134が、バス・アービタ118内、相互接続マトリクス(図示せず)内、または電子デバイス100内部のどこか別の場所に存在していてよい。
別の実施形態では、チャネル重み付けレジスタ120、124、128、132および書き込みチャネル重み付けレジスタ122、126、130、134は、許可されたバス115のトランザクションの各々で1回だけ減算される。この実施形態では、各マスターデバイス102、104、106、108の書き込みチャネル114および読み出しチャネル116の利用が別個に追跡されるが、データ転送の長さに基づく区別はされておらず、それゆえに、実際の帯域幅消費は考慮されていない。さらに別の実施形態では、各マスターデバイス102、104、106、108は、データ転送が読み出しまたは書き込みの動作のいずれかであるかに関わらず、各データ転送のビートに対して減算する、単一のチャネル重み付けレジスタ(図示せず)だけを含む。この実施形態では、マスターデバイスのバス115の帯域幅の総量の配分が追跡され、それに応じて、いずれのチャネルで(即ち、いずれの方向で)転送が生じているかに関わらず、アービトレーション優先度が調整される。この実施形態は、読み出しおよび書き込みの転送が同じデータ回線を利用する、図1に示されるような統合されたデータバスを有するシステムバスに特に適している可能性がある。
上記で説明され、図2で示された電子デバイス100は、分離された書き込みチャネル114、読み出しチャネル116、およびアドレスチャネル(図示せず)を利用する。種々の実施形態において、転送方向および/または帯域幅消費を考慮するアービトレーション・アルゴリズムが種々のバス構造に有益に適用され得る。例えば、参照により本明細書にその全文が組み込まれる、2004年8月17日に出願され、本発明の譲受人に譲渡された同時係属中の同時係属中の米国特許出願第10/921,053号は、バスの特定の実装の帯域幅要求に依存しない、共通のバス・アーキテクチャおよびシグナリング・プロトコルを用いるシステムオンチップ(SOC)設計に関するバス・アーキテクチャを開示する。本明細書では、このアーキテクチャをスケーラブルなバス・アーキテクチャと呼ぶ。
スケーラブルなバス・アーキテクチャは、バス幅およびクロック周波数の両方でスケーラブルであり、そのシグナリング・プロトコルは、用いられるあらゆる上位層バス・プロトコルにも依存しない。これは、バスのシグナリング・プロトコルを、バスを介した情報の送信または受信のいずれかに必要とされる必須の信号だけに低減することによって達成される。シグナリング・プロトコル自体から、上位層プロトコル仕様を除去したことによって、同一の基本となるシグナリング・プロトコルを用いるあらゆるバス・アーキテクチャを実装することが可能になる。さらに、このアーキテクチャのスケーラビリティによって、同じシグナリング・プロトコルを用いる種々の実装が可能になる。
従来技術のオンチップ・バス・アーキテクチャは、アドレスバス、転送修飾子バス(transfer qualifier bus)、書き込みデータバス、書き込みデータバス・イネーブル、読み出しデータバスを含むことが多い。これらのバスの各々は、独自のシグナリング・プロトコル、バス幅、および転送プロトコルを備えた独立したチャネルとして実装され得る。各バスチャネルは、バスを介したデータの流れを制御するために必要なハンドシェーキングを可能にする少数の制御信号を含む。
図3に示すスケーラブルなバス・アーキテクチャでは、アドレス、転送修飾子、書き込みデータ、および書き込みデータ・イネーブルは全て、送信デバイス150から受信デバイス152に転送される情報と考えられる。この情報は、全て、同じ転送プロトコルを用いて、示されているように単一の送信チャネル154または複数の送信チャネル上を、転送される。読み出しデータは、同じシグナリング・プロトコルを用いて、受信チャネル156上を受信デバイス152から送信デバイス150に転送される。全てのバス転送プロトコルは、送信チャネル154および受信チャネル156を介して情報を転送することによって通信を行う送信デバイス150および受信デバイス152の基本動作に分解することが可能である。時分割多重方式では、異なる種類の情報が送信デバイス150から受信デバイス152にブロードキャストされ得る。
スケーラブルなアーキテクチャでは、前記送信デバイス150は、アドレス保有期間の間、送信チャネル154上で、1つまたは複数のアドレスをブロードキャストすることによって、読み出しまたは書き込みの転送、あるいはそれらの任意の組み合わせを開始するための送信チャネル154上のアドレス、転送修飾子、書き込みデータ、または書き込みデータ・イネーブルを含む情報を送信する。書き込み転送の場合、アドレス、転送修飾子、書き込みデータおよび書き込みデータ・イネーブルは全て、送信チャネル154上で転送され、受信チャネル152は利用されない。読み出し転送の場合、アドレスおよび転送修飾子が送信チャネル154上を転送される。受信デバイス152は、このブロードキャストを肯定応答し、その後に、受信チャネル156上に読み出しデータをブロードキャストすることによって要求データを提供する。
図4は、スケーラブルなバス・アーキテクチャを利用する代表的なSOC設計を示す。このシステム160は、スレーブデバイスのDRAMコントローラ168からまたはそこにデータの読み出しおよび書き込みをする、2つのマスターデバイスのCPU162およびDMAコントローラ164を含む。データ転送は、オンチップ・バス相互接続166を介して生じる。CPU162は、送信チャネル172および受信チャネル17によってオンチップ・バス166に接続する。同様に、DMAコントローラ164は、送信チャネル176および受信チャネル178によってオンチップ・バス166に接続する。そして、オンチップ・バス166は、送信チャネル180および受信チャネル182を介してスレーブDRAMコントローラに接続する。このDRAMコントローラ168は、アドレスバス184、制御信号186、および双方向データバス188を含む従来式のインタフェースを介して、オフチップDRAM170の読み出しおよび書き込みを行う。
送信チャネル172、176および180は、アドレス保有期間、転送修飾子、および書き込みデータ保有期間を転送する。受信チャネル174、187および182は、読み出しデータ保有期間を搬送する。オンチップ・バス166は、許可されたマスターデバイス162、164の各々のバスチャネル172、174または176、178を、スレーブデバイス168の対応するバスチャネル180、182に接続する相互接続である。例えば、オンチップ・バス相互接続166内に存在し得るアービタ(図示せず)は、マスターデバイス162、164の間でアービトレーションを実行し、転送方向および/またはバスチャネルの消費される帯域幅を考慮することによって、それらの間でオンチップ・バス166の帯域幅を正確に割り当てる。
一実施形態では、CPU162が、送信チャネル重み付けレジスタ190および受信チャネル重み付けレジスタ192を含む。同様に、DMAコントローラ164が、送信チャネル重み付けレジスタ194および受信チャネル重み付けレジスタ196を含む。重み付けレジスタ190〜196内の値は、マスターデバイス162、164の各々の送信および受信のバスチャネルに関するアービトレーション優先度を決定する。重み付けレジスタ190〜196は、各マスターデバイスに割り当てられた各チャネルに関するオンチップ・バス166の帯域幅の相対的な比例的配分を反映する初期値が周期的にロードされる。
一実施形態では、書き込み動作を実行するためにマスターデバイス162、164に対してバス166を許可すると、許可されたマスターの送信チャネル重み付けレジスタ190、194は、アドレス保有期間に対して1だけ減算され、転送修飾子の転送に対して2回目の減算が行われ、次に、送信チャネル172、176、180を介した各書き込みデータ転送または各ビートに対して1度の減算が行われる。読み出し動作の場合、許可されたマスターの受信チャネル重み付けレジスタ192、196は、受信チャネル174、178、182上の各データビートに対して1だけ減算される。さらに、許可されたマスターの送信チャネル重み付けレジスタ190、194は、アドレス保有期間に対して1だけ減算され、送信チャネル172、176、180を介した転送修飾子の転送に対して1だけ減算される。
この方法によって、送信および受信チャネル重み付けレジスタ190〜196は、バス・トランザクションを完了するのに必要とされる送信チャネル172、176、180および受信チャネル174、178、182の各々を介した転送の正確な数に基づいて減算される。この方法で重み付けレジスタ190〜196を減算することによって、システムは、送信および受信の両チャネル172〜182の上で各マスターに割り当てられる帯域幅を正確に制御し得る。
別の実施形態では、書き込み動作の場合、許可されたマスターの送信チャネル重み付けレジスタ190、194は、送信チャネル172、176、180を介した書き込みデータビートに関してだけ減算され、許可されたマスターの受信チャネル重み付けレジスタ192、196は、受信チャネル174、178、182上の読み出しデータビートに関してだけ減算される。この実施形態では、読み出しおよび書き込み動作の両方に関する送信チャネル172、176、180上の転送修飾子およびアドレス保有期間の転送は、システムのオーバーヘッドとみなされ、バス・アービトレーションを実行する際に、マスターデバイス162、164の間でのバス帯域幅の割り当てが特に追跡されない。これによって、より低い正確さの帯域幅の割り当て制御機構が提供されるが、実装が単純化されて制御のオーバーヘッドは低減され得る。
一実施形態では、各マスターデバイス162、164の単一のバス重み付けレジスタが、オンチップ・バス166を介したいずれの方向においても、各情報転送ビートまたは各データビートのみに関して減算されてもよく、即ち、送信チャネル172、176、180および受信チャネル174、178、182の個々の利用でなく、全体のバス利用が追跡される。別の実施形態では、各マスター162、164は、別個の送信チャネル重み付けレジスタ190、194および受信チャネル重み付けレジスタ192、196を含み得るが、レジスタ190〜194は、各マスターデバイス162、164が関連するデータ転送に関してオンチップ・バス166が許可されると一度だけ減算される。この実施形態では、オンチップ・バス166のマスターデバイスの利用は、データ転送の各方向に関して別々に追跡されるが、そのような転送の各々の長さ−およびそれゆえにマスターデバイスのバス166の帯域幅の実際の消費−は追跡されない。
図5は、一実施形態による、アービトレーション方法を流れ図の形式で示す。各バスチャネルに対する重み付けレジスタにバスチャネル帯域幅の相対的な比例的配分がロードされる(ブロック200)。これは、統合型バスのようなものに関する単一の重み付けレジスタ、または送信(書き込み)および受信(読み出し)のバスチャネルに対して別個の重み付けレジスタをロードすることを含んでよい。1つ以上のレジスタが、各バスチャネル上のバス・トランザクションに関するアービトレーションに参加し得る各マスターデバイスに関連付けられ、これらのレジスタは比例的帯域幅の配分を保持する。マスターデバイスがチャネル上のバス・トランザクションを要求する際に、アービタはそれらの間でアービトレーションを実行し、現在の割り当てられている最高の帯域幅の配分を有するマスターデバイスに、要求されたバスチャネルを許可する(ブロック202)。バスチャネルを要求するマスターデバイスの全てが、同一の現在の割り当てられている帯域幅の配分を有する場合、ラウンドロビン・アービトレーション・アルゴリズムが用いられ得る。
マスターデバイスが要求するバスチャネル上のバス・トランザクションを許可される際に、関連付けられた割り当てられた帯域幅の配分は、転送されたデータ量またはバスチャネルのビートに関して、バス・トランザクションによる消費されたチャネル帯域幅だけ減算される(ブロック204)。アービトレーション期間の満了時、または代替的に、バスチャネルに対する全てのマスターデバイスの割り当てられた帯域幅の配分が完全に減算された場合に(ブロック206)、レジスタにマスターデバイスの相対的な比例的に割り当てられた帯域幅の配分が再ロードされる(ブロック200)。そうでなければ、バス・アービトレーションは、継続される(ブロック202)。
本明細書で1つ以上の実施形態に関して説明されたアービトレーション方法は、従来技術のバスシステムおよびアービトレーション方法に勝る多数の利点を示す。このアービトレーションは、読み出しおよび書き込みのデータチャネル帯域幅の別個の、および独立した重み付けを可能にする。多くのシステムでは、読み出しデータチャネルは、全体のシステム性能の制限要因である。読み出し転送が許可された場合にだけ減算される個々の重み付け係数を提供することによって、読み出しデータチャネル上の帯域幅の割り当ての制御がより正確なレベルで可能になり、即ち、可能性としてより向上された全体のシステム性能が可能になる。
多くのオンチップ・バス・アーキテクチャでは、単一の要求保有期間を備えた読み出しまたは書き込みのデータチャネル(例えば、読み出しおよび書き込みの「バースト」)のいずれかの上で複数のビート転送を要求することが可能である。関連する重み付け係数を要求されたビートの数だけ減算することによって、重み付け係数が、アドレス保有期間の数の代わりに、読み出しおよび書き込みデータバス上で要求されたデータ保有期間の数を示すことが可能になる。重み付け係数は、各バスチャネル上で実際の帯域幅とより厳密に一致し、マスターデバイスが種々の異なるデータ転送サイズを有するバス・トランザクションを要求する場合、均等化する効果を提供する。
実施形態によっては、読み出しおよび書き込みのバスチャネルに対する個々の重み付けレジスタの利用が、要求されたデータビートの数で測定された消費される帯域幅に基づく重み付けレジスタの減算との組み合わせにより、マスターデバイスにプログラミングされた重み付け係数と、マスターデバイスに割り当てられる読み出しおよび書き込みのバスチャネルの実際の帯域幅との間の直接的な相関関係を提供する。これによって、帯域幅の割り当てがより正確になり、プログラマーは各マスターデバイスに割り当てられる実際の帯域幅を思い通りに制御することが可能になる。
個々のアドレス、読み出しデータ、および書き込みデータチャネルに関してバースト・プロトコルを利用する多くの最新のオンチップ・バス構造では、アドレスチャネルは低稼働であり、システムの最大の達成可能な帯域幅を決定する制限要因ではない。むしろ、読み出しデータチャネルが制限要因であることが多く、従って、読み出しデータチャネル帯域幅をより正確に制御する能力を有することが、より高い全体のシステム性能を導く、より最適なアービトレーション・スキームを可能にする。
本明細書では、本発明がその特定の特性、態様および実施形態に関して説明されたが、本発明の広範な範疇の範囲内で種々の変形、変更、および他の実施形態が可能であり、従って、全ての変形、変更および実施形態が本発明の範疇の範囲内にあるとみなされるべきであることは明らかであろう。それゆえに、本実施形態は、全ての態様において例示的であり、限定的なものでないとみなされるべきであり、添付の特許請求の意味および同等の範疇の範囲内に入る全ての変更は、その中に包含されるべきであることが意図される。
図1は、従来技術のバスのブロック図である。 図2は、電子デバイスの機能ブロック図である。 図3は、スケーラブルなバス・アーキテクチャのブロック図である。 図4は、スケーラブルなバス・アーキテクチャを実装する単一チップ・コンピュータのブロック図である。 図5は、バス・アービトレーションの方法の流れ図である。

Claims (40)

  1. 複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える:
    各マスターデバイスにバス帯域幅の比例的配分を割り当てること;
    前記マスターデバイスにより実行されるバス・トランザクションがデータ転送のために消費したバス・クロックサイクルの数に応じて、割り当てられた配分を減算することによって、各マスターデバイスの前記バス帯域幅の消費を追跡すること;および、
    各マスター・デバイスの残存する前記バス帯域幅の配分を、前記バスに対するアービトレーションの優先度として利用こと。
  2. 請求項1記載の方法、ここにおいて、
    前記バスが別個の送信および受信のチャネルを含み、
    各チャネルの前記帯域幅の比例的配分が、別個に各マスターに割り当てられ、
    各チャネル上で実行されるバス・トランザクションがデータ転送のために消費したバス・クロックサイクルの数に応じて減算され、
    各チャネル上のバス・トランザクションに対するアービトレーションに用いられる。
  3. 請求項2記載の方法、ここにおいて、
    前記送信チャネル上で書き込み動作が行われ、前記受信チャネル上で読み込み動作が行われる。
  4. 前記バスが別個のアドレスチャネルをさらに備える、請求項2に記載の方法。
  5. アドレス情報および書き込みデータが、前記送信チャネル上で送信される、請求項2記載の方法。
  6. 請求項1記載の方法、ここにおいて、
    前記マスターデバイスにより実行されるバス・トランザクションがデータ転送のために消費したバス・クロックサイクルの数が、前記バス・トランザクションで転送されるデータの量によって測定される。
  7. 各マスターデバイスにバス帯域幅の比例的分配を再割り当てすることをさらに備える、請求項1に記載の方法。
  8. 前記再割り当てが、アービトレーション期間の満了時に生じる、請求項7に記載の方法。
  9. 請求項8記載の方法、ここにおいて、
    前記アービトレーション期間が、バスデータ転送サイクルで、全てのマスターデバイスの割り当てられた配分の合計である。
  10. 請求項8記載の方法、ここにおいて、
    少なくとも1つのマスターデバイスへの前記再割り当てが、少なくとも1つの他のマスターデバイスへの前記再割り当てよりも高い頻度で行われる。
  11. 請求項7記載の方法、ここにおいて、
    全てのマスターデバイスが、バス帯域幅の割り当てられた配分を完全に減算された場合に、前記再割り当てが行われる。
  12. 請求項1記載の方法、ここにおいて、
    全てのマスターデバイスの残存する帯域幅の配分が同等である場合に、ラウンドロビンに基づくアービトレーションが実行される。
  13. 別個の送信および受信チャネルを有するバス上で、複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える:
    各マスターデバイスに割り当てたバス帯域幅の比例的配分を、前記各マスターデバイスに対して前記送信および受信チャネルに関するアービトレーション優先度として独立的に割り当てること;および、
    各チャネル上で前記マスターにより実行されるバス・トランザクションによるバス・クロックサイクルの消費に応じて、各マスターデバイスの送信および受信チャネルの優先度を独立的に減算すること。
  14. 請求項13記載の方法、ここにおいて、
    各マスターデバイスに割り当てられた各チャネルに対する前記アービトレーション優先度は、前記チャネルの帯域幅の相対的な比例的配分である。
  15. 請求項14記載の方法、ここにおいて、
    各マスターデバイスに対する各チャネル優先度が、前記マスターデバイスによって消費されたチャネル帯域幅の量に応じて減算される。
  16. 請求項15記載の方法、ここにおいて、
    前記消費された帯域幅が、前記バス・トランザクションの前記チャネル上でのデータ転送の量で測定される。
  17. 請求項15記載の方法、ここにおいて、
    前記消費された帯域幅が、前記バス・トランザクションを実行するために必要とされる前記チャネル上での情報転送サイクルで測定される。
  18. 請求項17記載の方法、ここにおいて、
    前記消費された帯域幅が、前記バス・トランザクションを実行するために必要とされる前記チャネル上のデータ転送サイクルで測定される。
  19. 更に下記を備える請求項13記載の方法:
    各マスターデバイスに対して前記送信および受信チャネルに関するアービトレーション優先度を再割り当てすること。
  20. 請求項19記載の方法、ここにおいて、
    各チャネルに対する前記アービトレーション優先度が、アービトレーション期間の満了時に再割り当てされる。
  21. 請求項20記載の方法、ここにおいて、
    少なくとも1つのチャネルに対する前記アービトレーション優先度は、少なくとも1つの別異のマスターデバイスに前記チャネル優先度が再割り当てされるよりも高い頻度で、少なくとも1つのマスターデバイスに再割り当てされる。
  22. 請求項19記載の方法、ここにおいて、
    全てのマスターデバイスの前記送信、または受信チャネルに関する前記優先度が完全に減算される際に、前記アービトレーション優先度が、各マスターデバイスに再割り当てされる。
  23. 請求項13記載の方法、ここにおいて、前記バスは下記を備える:
    書き込みデータ、および書き込みイネーブルを転送する送信チャネル;
    読み出しデータを転送する受信チャネル;、ならびに
    アドレスおよび転送修飾子情報を転送するアドレスチャネル。
  24. 請求項23に記載の方法、ここにおいて、前記バスは下記を備える:
    書き込みデータ、書き込みイネーブル、アドレス、および転送修飾子情報を転送する送信チャネル;および、
    読み出しデータを転送する受信チャネル。
  25. 更に下記を備える請求項13記載の方法:
    前記送信および受信チャネルを要求するマスターデバイスに関する各チャネルの優先度が同じである場合、ラウンドロビン・アービトレーション・アルゴリズムを用いて前記要求するマスターデバイスの間のアービトションをすること。
  26. 各マスターデバイスが各チャネルに対応する重み付けレジスタに関連付けられており、別個の送信および受信チャネルを有するバス上で複数のマスターデバイスの間のバス・アービトレーションを実行する方法、該方法は下記を備える:
    各マスターデバイスに関連付けられた前記送信チャネル重み付けレジスタおよび受信チャネル重み付けレジスタに、前記各チャネル上の帯域幅の相対的な比例的配分をロードすること;
    前記重み付けレジスタの内容によって反映されているとおりの現在の帯域幅の配分に基づいて、前記バス・チャネル上のバス・トランザクションを要求するマスターデバイスの間のアービトレーションをすること;および、
    マスターデバイスがバスチャネルへのアクセスを許可されると、前記許可されたマスターデバイスに関連付けられた、そのチャネルに対応する重み付けレジスタを、前記許可されたバス・トランザクションの前記バス・チャネルの消費されたバス・クロックサイクル数だけ減算すること。
  27. 請求項26記載の方法、ここにおいて、
    要求するマスターデバイスの間のアービトレーションをすることは、下記を備える:
    前記要求されているバスチャネルに対応する全ての重み付けレジスタが同等である場合に、ラウンドロビン・アービトレーション・アルゴリズムを採用すること。
  28. 更に下記を備える請求項26記載の方法:
    前記各チャネル上の帯域幅の相対的な比例的配分を、前記重み付けレジスタに、周期的に再ロードすること。
  29. 前記重み付けレジスタが、アービトレーション期間の満了時に再ロードされる、請求項28に記載の方法。
  30. 請求項28記載の方法、ここにおいて、
    バス・チャネルに対する全ての重み付けレジスタが完全に減算される場合に、前記重み付けレジスタが再ロードされる。
  31. 下記を備える電子デバイス:
    データ転送バス;
    データ転送の関係において前記バスに接続されている少なくとも2つのマスターデバイス;
    データ転送の関係において前記バスに接続されている少なくとも1つのスレーブデバイス;
    各マスターデバイスに関連付けられ、前記各マスターデバイスに対して割り当てられた帯域幅の相対的な比例的配分が初期値としてロードされるように動作し、
    前記バス上のバス・トランザクションが前記マスターデバイスに許可されるのに応じて、前記バス・トランザクションにより消費される前記バス帯域幅を反映するバス・クロックサイクル数だけ減算するように動作する、
    アービトレーション優先度レジスタ;および、
    関連付けられたアービトレーション優先度レジスタにおいて最高値を有する前記要求するマスターデバイスに前記バスを許可するように動作するバス・アービタ。
  32. 請求項31記載のデバイス、ここにおいて、
    前記バス・アービタが、全ての要求するマスターデバイスに関連付けられたアービトレーション優先度レジスタの値が同等である場合、ラウンドロビンに基づいて、要求するマスターデバイスに前記バスを許可するようにさらに動作する。
  33. 請求項31記載のデバイス、ここにおいて、前記データ転送バスは下記を備える:
    書き込みデータを転送するように動作する送信チャネル;
    読み出しデータを転送するように動作する受信チャネル;さらに、
    各マスターデバイスに関連付けられている各チャネルに関する別個のアービトレーション優先度レジスタ、ここで、各レジスタはバス・トランザクションによって消費された前記チャネル帯域幅を反映する量だけ減算するように動作し、ここで、前記アービタは各チャネルに関するアービトレーションをする。
  34. 前記送信チャネルが、アドレスを転送するようにさらに動作する、請求項33に記載のデバイス。
  35. 前記アービトレーション優先度レジスタが、再ロードされるようにさらに動作する、請求項31に記載のデバイス。
  36. 前記アービトレーション優先度レジスタが、アービトレーション期間の満了時に再ロードされるように動作する、請求項35に記載のデバイス。
  37. 請求項35に記載のデバイス、ここにおいて、
    前記アービトレーション優先度レジスタが、前記送信および受信チャネルに関する前記アービトレーション優先度レジスタの全てが完全に減算される場合に、再ロードされるように動作する。
  38. 下記を備える電子デバイス:
    少なくとも2つのマスターデバイス;
    少なくとも1つのスレーブデバイス;
    マスターデバイスからスレーブデバイスに情報を転送するように動作する送信バスチャネル;
    スレーブデバイスからマスターデバイスに情報を転送するように動作する受信バスチャネル;
    各マスターデバイスに関連付けられた前記送信および受信バスチャネルの各々に関するアービトレーション優先度レジスタ、ここで、
    該レジスターは前記各マスターデバイスに対して割り当てられた帯域幅の相対的な比例的配分が初期値としてロードされるように動作し、
    前記各バスチャネル上のバス・トランザクションが前記マスターデバイスに許可されるのに応じて、前記バス・トランザクションにより消費される前記バス帯域幅を反映するバス・クロックサイクル数だけ減算するように動作する;および、
    そのチャネルに対する関連付けられたアービトレーション優先度レジスタに最高値を有する前記要求するマスターデバイスにバスチャネルを許可するように動作するバス・アービタ。
  39. 請求項38に記載のデバイス、ここにおいて、
    各チャネルに関する前記アービトレーション優先度レジスタが、許可されたバス・トランザクションにおけるそのチャネル上の関連付けられたマスターデバイスの帯域幅の消費を反映する量だけ減算するように動作する。
  40. 前記送信チャネル上でマスターデバイスからスレーブデバイスに転送される前記情報が、アドレスを含む、請求項38に記載のデバイス。
JP2008527165A 2005-08-19 2006-08-18 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション Expired - Fee Related JP4705171B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/208,089 US7395361B2 (en) 2005-08-19 2005-08-19 Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
US11/208,089 2005-08-19
PCT/US2006/032302 WO2007024677A2 (en) 2005-08-19 2006-08-18 Weighted bus arbitration based on transfer direction and consumed bandwidth

Publications (2)

Publication Number Publication Date
JP2009505296A JP2009505296A (ja) 2009-02-05
JP4705171B2 true JP4705171B2 (ja) 2011-06-22

Family

ID=37772199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008527165A Expired - Fee Related JP4705171B2 (ja) 2005-08-19 2006-08-18 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション

Country Status (8)

Country Link
US (1) US7395361B2 (ja)
EP (1) EP1917601A2 (ja)
JP (1) JP4705171B2 (ja)
KR (1) KR101012213B1 (ja)
CN (1) CN101288057B (ja)
HK (1) HK1122628A1 (ja)
TW (1) TWI309358B (ja)
WO (1) WO2007024677A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519060B2 (en) * 2003-03-19 2009-04-14 Intel Corporation Reducing inter-packet gaps in packet-based input/output communications
US9367493B2 (en) * 2005-12-09 2016-06-14 Globalfoundries Inc. Method and system of communicating between peer processors in SoC environment
FR2894696A1 (fr) * 2005-12-14 2007-06-15 Thomson Licensing Sas Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant
DE602006019005D1 (de) * 2006-06-27 2011-01-27 Thomson Licensing Verfahren und vorrichtung zur durchführung der arbitrierung
WO2008013968A2 (en) 2006-07-28 2008-01-31 Vast Systems Technology Corporation Virtual processor generation model for co-simulation
WO2008091575A2 (en) * 2007-01-22 2008-07-31 Vast Systems Technology Corporation Method and system for modeling a bus for a system design incorporating one or more programmable processors
US7987437B2 (en) 2007-10-23 2011-07-26 International Business Machines Corporation Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US7668996B2 (en) * 2007-10-23 2010-02-23 International Business Machines Corporation Method of piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US8032678B2 (en) * 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
US8156274B2 (en) * 2009-02-02 2012-04-10 Standard Microsystems Corporation Direct slave-to-slave data transfer on a master-slave bus
EP2416254A4 (en) * 2009-03-31 2012-10-17 Fujitsu Ltd ARBITRATION PROCEDURE, ARBITRATION SWITCHING AND ARBITRATION SWITCHING DEVICE
US8984198B2 (en) * 2009-07-21 2015-03-17 Microchip Technology Incorporated Data space arbiter
US20120089759A1 (en) * 2010-10-08 2012-04-12 Qualcomm Incorporated Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)
US9064050B2 (en) 2010-10-20 2015-06-23 Qualcomm Incorporated Arbitrating bus transactions on a communications bus based on bus device health information and related power management
US9094326B2 (en) 2010-11-02 2015-07-28 Qualcomm Incorporated Systems and methods for communicating in a network
FR2968878A1 (fr) * 2010-12-14 2012-06-15 Thomson Licensing Procede et dispositif pour generer des images comportant du flou cinetique
US20120155273A1 (en) * 2010-12-15 2012-06-21 Advanced Micro Devices, Inc. Split traffic routing in a processor
KR101841173B1 (ko) * 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
JP5784353B2 (ja) * 2011-04-25 2015-09-24 オリンパス株式会社 画像表示装置
CA2874899C (en) 2012-06-01 2017-07-11 Blackberry Limited Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems
US9479275B2 (en) * 2012-06-01 2016-10-25 Blackberry Limited Multiformat digital audio interface
CN103077141B (zh) * 2012-12-26 2015-08-26 西安交通大学 一种基于amba总线的自适应实时加权优先仲裁方法及仲裁器
US9280503B2 (en) * 2013-04-12 2016-03-08 Apple Inc. Round robin arbiter handling slow transaction sources and preventing block
US8973073B2 (en) * 2013-05-20 2015-03-03 Telefonaktiebolaget L M Ericsson (Publ) Weighted ingest policy management in a content distribution network
US9377958B2 (en) * 2014-08-12 2016-06-28 Facebook, Inc. Allocation of read/write channels for storage devices
US20160196231A1 (en) * 2015-01-07 2016-07-07 Qualcomm Incorporated System and method for bus bandwidth management in a system on a chip
US9558528B2 (en) * 2015-03-25 2017-01-31 Xilinx, Inc. Adaptive video direct memory access module
US10102094B2 (en) * 2016-01-22 2018-10-16 Sony Interactive Entertainment Inc. Simulating legacy bus behavior for backwards compatibility
US10649813B2 (en) * 2018-03-29 2020-05-12 Intel Corporation Arbitration across shared memory pools of disaggregated memory devices
JP7401050B2 (ja) * 2018-09-18 2023-12-19 キヤノン株式会社 バス制御回路
US11210104B1 (en) 2020-09-11 2021-12-28 Apple Inc. Coprocessor context priority
US11809289B2 (en) * 2021-10-15 2023-11-07 Dell Products L.P. High-availability (HA) management networks for high performance computing platforms
CN114840458B (zh) * 2022-07-06 2022-09-20 北京象帝先计算技术有限公司 读写模块、片上系统和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901234A (en) * 1987-03-27 1990-02-13 International Business Machines Corporation Computer system having programmable DMA control
JP2000500895A (ja) * 1996-09-19 2000-01-25 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置
US20020002646A1 (en) * 1998-10-15 2002-01-03 Joseph Jeddeloh Method and apparatus for efficient bus arbitration
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US20040193767A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method and apparatus for bus access allocation
JP2005216308A (ja) * 2004-01-26 2005-08-11 Toshiba Corp 帯域幅成形システム及び方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03177953A (ja) * 1989-12-07 1991-08-01 Yokogawa Medical Syst Ltd データ転送方式
US6223244B1 (en) * 1998-12-10 2001-04-24 International Business Machines Corporation Method for assuring device access to a bus having a fixed priority arbitration scheme
US6415369B1 (en) * 2000-08-29 2002-07-02 Agere Systems Guardian Corp. Shared devices and memory using split bus and time slot interface bus arbitration
US6751684B2 (en) * 2000-12-21 2004-06-15 Jonathan M. Owen System and method of allocating bandwidth to a plurality of devices interconnected by a plurality of point-to-point communication links
US20040153591A1 (en) * 2003-01-07 2004-08-05 Yoshiteru Tanaka Bus arbiter

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901234A (en) * 1987-03-27 1990-02-13 International Business Machines Corporation Computer system having programmable DMA control
JP2000500895A (ja) * 1996-09-19 2000-01-25 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置
US20020002646A1 (en) * 1998-10-15 2002-01-03 Joseph Jeddeloh Method and apparatus for efficient bus arbitration
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US20040193767A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method and apparatus for bus access allocation
JP2005216308A (ja) * 2004-01-26 2005-08-11 Toshiba Corp 帯域幅成形システム及び方法

Also Published As

Publication number Publication date
TW200745865A (en) 2007-12-16
CN101288057B (zh) 2010-08-18
KR101012213B1 (ko) 2011-02-08
KR20080039499A (ko) 2008-05-07
CN101288057A (zh) 2008-10-15
JP2009505296A (ja) 2009-02-05
WO2007024677A2 (en) 2007-03-01
TWI309358B (en) 2009-05-01
EP1917601A2 (en) 2008-05-07
US20070067528A1 (en) 2007-03-22
WO2007024677A3 (en) 2007-05-31
HK1122628A1 (en) 2009-05-22
US7395361B2 (en) 2008-07-01

Similar Documents

Publication Publication Date Title
JP4705171B2 (ja) 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション
KR100440657B1 (ko) 가중된대역폭할당에의한버스중재방법및장치
CN107078959B (zh) 用于减轻分布式非核结构中的业务量引导低效的系统和方法
US6393506B1 (en) Virtual channel bus and system architecture
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
US6775727B2 (en) System and method for controlling bus arbitration during cache memory burst cycles
JP5886470B2 (ja) 共有メモリ・ファブリックを介したメモリ・アクセスの調停
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
JP3570810B2 (ja) 対称多重処理システム
US10241946B2 (en) Multi-channel DMA system with command queue structure supporting three DMA modes
JP5137171B2 (ja) データ処理装置
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
EP1820309A2 (en) Streaming memory controller
JP2016521936A (ja) クレジットに基づく調停のためのサービスレート再分配
US11055243B1 (en) Hierarchical bandwidth allocation bus arbiter
US20050010706A1 (en) Dynamic bus arbitration method and bus arbiter
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US20120137078A1 (en) Multiple Critical Word Bypassing in a Memory Controller
EP1894108A2 (en) Memory controller
JP3987750B2 (ja) メモリ制御装置及びlsi
EP3238085B1 (en) Virtual legacy wire
WO2002093392A1 (fr) Processeur de donnees
KR101013769B1 (ko) 버스 중재방법 및 장치
JP2004145593A (ja) ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法
JPH11232215A (ja) バスコントローラ、バスマスタ装置及びバス制御システムの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110310

R150 Certificate of patent or registration of utility model

Ref document number: 4705171

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees