JP2000500895A - 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置 - Google Patents

重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置

Info

Publication number
JP2000500895A
JP2000500895A JP10514430A JP51443098A JP2000500895A JP 2000500895 A JP2000500895 A JP 2000500895A JP 10514430 A JP10514430 A JP 10514430A JP 51443098 A JP51443098 A JP 51443098A JP 2000500895 A JP2000500895 A JP 2000500895A
Authority
JP
Japan
Prior art keywords
agent
bus
arbitration
level
agents
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10514430A
Other languages
English (en)
Inventor
エイノ ジェイコブス
ツンレン ツェン
Original Assignee
フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
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 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ filed Critical フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
Publication of JP2000500895A publication Critical patent/JP2000500895A/ja
Pending legal-status Critical Current

Links

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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

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

Abstract

(57)【要約】 重み付きの帯域幅配分を備えたバス・アービトレーションのための方法及び装置が開示される。各々のバス・エージェントは、当該エージェントに割り付けられたバス帯域幅のパーセンテージを管理する重みを割り当てられる。エージェントは、少なくとも部分的にはその重みに基づいて、バス・ベースの制御を許可される。その重みは、各々の状態がバス制御の許可を表わすように成して、エージェントに割り付けられた幾つかのアービトレーション状態に対応する。第1のエージェントに重みWが割り当てられ、エージェントの全体に総計の重みZが割り当てられる場合、アービタは、第1エージェントがバス制御をリクエストするように成して、Z個のアービトレーションの中から少なくともW個のアービトレーションに関して第1エージェントに対するバス制御を保証する。この機構を採用すれば、第1エージェントは、バス帯域幅の分数W/Zを保証される。帯域幅配分のフレキシビリティを確保するために、その重みは、従来的なメモリ・マッピング技術を使用してプログラムされ得ることになる。本発明のアービトレーション機構は、各々のレベルにおけるアービトレーションが独立状態の機械によって制御されるように成した、複数のレベルの階層に分割されることが可能である。エージェントが1つのレベルにおいてアービトレーションを獲得すると、それは、当該レベルにおけるその他のエージェントとバス・アクセスに関して競合するように成して、次のより高いレベルに移動される。バス・エージェントは、リクエストの緊急度に基づいて、そのリクエストの優先順位を繰り上げることも可能である。所定の待機期間の満了の後に低い優先度のリクエストが確認応答されない場合には、エージェントは、そのリクエストを高い優先順位のリクエストに繰り上げることになる。その待機期間は、エージェントがリクエストの表明の後における最悪の場合の呼び出し時間の期間内においてバスに対するアクセスを保証されるようにして、選択されるのである。

Description

【発明の詳細な説明】 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置 技術分野 本発明は、請求項1のプリアンブル部に記載されているような情報処理装置に 関するものである。本発明は、更には、バスに接続されるエージェント間のアー ビトレーションのためのアービタに関するものであり、バスに接続されるエージ ェント間のアービトレーションのための方法に関するものでもある。 背景技術 成長しつつあるマルチメディア・ソフトウェアの流行は、高い帯域幅でリアル タイムのデータ転送を処理するためのコンピュータ・システムの必要性を増大さ せてきた。マルチメディア・システムは、ユーザーとの高度なリアルタイム対話 性によって従来的なコンピュータ・システムとは区別される。この対話性は、相 対的に短い期間において大量のデータ(例えばビデオ・データ)を転送しなけれ ばならないような、入力/出力(入出力)装置を介して達成される。コンピュー タ・システムは、これら入出力装置と共有データ資源のための他の機能ユニット との間の競合を管理しなければならないが、同時に、入出力装置及び他のプロセ ッサ・コンポーネントに関するリアルタイムのデータ転送の制約条件が満たされ ることをも保証しなければならない。 データは、コンピュータ・バスを通じて様々なコンピュータ・コンポーネント 及び周辺装置の間で通信される。バスは、マイクロプロセッサのチップ上に組み 込まれることが可能であり、CPU、様々なキャッシュ・メモリ及び周辺機器イ ンターフェースを互いに接続し、最終的にはオンチップ・インターフェースを介 してメイン・メモリに接続する。各バスは、マイクロプロセッサ・チップの外部 に位置することもまた可能であり、様々なメモリ及び入出力ユニット及び/又は プロセッサの全体をマイクロプロセッサ・システムの中において接続する。例え ば、プロセッサは、データ及び命令の供給源として、更には、結果を記憶するた めの宛先位置としてメモリを利用することが可能である。各プロセッサは、入出 力装置を外界との通信のための資源と見做すことも可能であり、それら自身、及 びメモリ又は入出力装置間の通信経路としてバスを利用することもまた可能であ る。 バス・エージェント(CPUのようにバスに対して接続される装置)がもう1 つのエージェントと通信することを求めるとき、第1のエージェントは、第2の エージェントに応答させる信号を、バスを通じて送信する。これらの信号は、集 合的にアドレス又は識別性と呼ばれる。通信を開始させるエージェントは、マス ターと呼ばれ、応答するエージェントは、スレイブと呼ばれる。幾つかのエージ ェントは、マスターとしてのみ機能し、幾つかのものは、スレイブとしてのみ機 能し、その他のものは、マスター又はスレイブのいずれかとして機能する。マス ターのスレイブに関するアドレッシングがスレイブによって確認応答される場合 に、データ転送通路が確立されるのである。 一度に1つのみのエージェントが、バスを通じて通信し得ることになる。2つ のエージェントがバスに同時にアクセスしようと試みるとき、アービトレーショ ン機構即ちプロトコルは、いずれのエージェントがバスに対するアクセスを許可 されることになるかを決定しなければならない。従来的なバス・アービトレーシ ョン機構は、一般に、エージェント間に一定で不変の優先度の割当てを実行する 。各々のエージェントは、アービトレーションの各ラウンドの後も同じものとし て留まることになる独特の優先度を割り当てられる。この機構の下では、低い優 先度の装置は、それらが各々のアービトレーションの試みの間においてしばしば 高い優先度の装置と競合しなければならない場合には、稀にしかバス制御を許可 され得ないことになる。この不公平は、アービトレーションを獲得するエージェ ントがバス・アクセスを許可された後に非常に低い優先度に割り当て直され、結 果として、当該エージェントを或る期間に渡って先行の低い優先度のエージェン トとの競合から取り除いておくように成した、ラウンドロビン・アービトレーシ ョン機構を実行することによって解決されることが可能である。 少なくともマイクロプロセッサ技術における所定のコンピユータ・システムは 、バス・エージェントが異なった優先度を有する各クラスに分割されるように成 し た、混合式のアービトレーション機構を実行する。1つのクラス内における装置 は、同じ優先度を有するものであり、概ね、ラウンドロビン式の等しい機会の様 式でバスに対してアクセスするようにしてスケジュールされる。高い帯域幅と少 ない呼び出し時間(リクエストとバス制御の許可の間における待機期間)とを必 要とする装置は、それらの装置が最小限の帯域幅と最大限の呼び出し時間とを割 り付けられることを保証する適切な優先度のクラスに割り当てられなければなら ない。この混合式のアービトレーション機構は、比較的精巧なものであるが、こ の技術を使用してバス帯域幅の適切な配分を保証することは、厄介であり融通性 を欠くものである。特定の構成に関する帯域幅要求事項に対して更に容易にカス タマライズされることが可能である更に融通の効くシステムが所望される。 発明の開示 本発明に拠る情報処理装置は、請求項1の特徴記述部分によって特徴付けられ る。各々のバス・エージェントは、当該エージェントに割り付けられたバス帯域 幅のパーセンテージを管理する重みを割り当てられる。エージェントは、少なく とも部分的にはその重みに基づいて、バス・ベースの制御を許可される。その重 みは、各々の状態がバス制御の許可を表わすように成して、エージェントに割り 付けられたアービトレーション状態の数に対応する。第1のエージェントに重み Wが割り当てられ、全体としてのエージェントに総計の重みZが割り当てられる 場合、本発明のアービタは、第1エージェントがバス制御をリクエストするよう に成して、Z個のアービトレーションの中から少なくともW個のアービトレーシ ョンに関して第1エージェントに対するバス制御を保証する。この機構を採用す れば、第1エージェントは、バス帯域幅の分数W/Zが保証される。帯域幅配分 のフレキシビリティを確保するために、その重みは、従来的なメモリ・マッピン グ技術を使用してプログラムされ得ることになる。 本発明のアービトレーション機構は、各々のレベルにおけるアービトレーショ ンが独立状態の機械によって制御されるように成した、複数のレベルの階層に分 割されることが可能である。エージェントが1つのレベルでアービトレーション を獲得すると、それは、当該レベルにおけるその他のエージェントとバス・アク セスに関して競合するように成して、次のより高いレベルに移動される。例えば 、第1エージェントが、対応する第2のレベルであるレベル2を占め、第2レベ ルにおいてアービトレーションを獲得する場合、第1エージェントは、レベル2 の上の第1のレベルであるレベル1においてアービトレーションについて競合す ることになる。第1エージェント及びその他のすべてのレベル2のエージェント は、レベル2の優先度と重みを割り当てられる。レベル2におけるアービトレー ションを獲得するためには、第1エージェントは、リクエストを表明するレベル 2のエージェントの間において最も高いレベル2の優先度を有するものでなけれ ばならない。一般に、第1エージェントが、対応するk番目のレベルを占め、k 番目のレベルの重みを割り当てられる場合、第1エージェントは、少なくともW kに基づいてバス・ベースの制御を許可される。詳細には、k番目のレベルにお けるエージェントの全体に総計の重みZkが割り当てられる場合、第1エージェ ントは、第1エージェントがバス制御をリクエストし、k番目のレベルのエージ ェントがバス制御を獲得するように成して、Zk個のアービトレーションの中か ら少なくともWk個のアービトレーションに関するバス制御を保証される。重み Wkは、k番目のレベルにおけるZk個のアービトレーション状態の総計の中か らk番目のレベルにおけるWk個のアービトレーション状態に対応する。この機 構は、第1エージェントに対するレベルkにおける帯域幅の分数Wk/Zkを保 証するのである。 第1エージェントが、レベル2のアービトレーションを獲得する場合、それは 、レベル2を獲得するエージェントとしてレベル1に移動される。レベル1では 、レベル2を獲得するエージェント及びその他のすべてのレベル1のエージェン トは、レベル1の優先度と重みを割り当てられる。レベル2を獲得するエージェ ントに対して割り当てられたレベル1の優先度と重みは、例えば第1エージェン トであるアービトレーション・ラウンドを獲得する特定のレベル2のエージェン トに対しては割り当てられないが、レベル1に移動されるレベル2のエージェン トのクラスに対して割り当てられる。レベル2を獲得するエージェントがリクエ ストを表明するレベル1のエージェント間で最も高いレベル1の優先度を有する 場合、レベル2を獲得するエージェントは、レベル1においてアービトレーショ ン を獲得し、バスの制御を許可されることになる。 本発明は、バス・エージェントが、リクエストの緊急度に基づいて、そのリク エストの優先順位を繰り上げることをも許容する。本発明に拠れば、バス・エー ジェントは、そのリクエストの優先順位が低いものであるか或いは高いものであ るかを表示することが可能である。バス・エージェントがデータ転送を開始する ことを求めるとき、それは、初めに調節可能な低い優先度のリクエストを通知す る。所定の待機期間の満了の後にリクエストが確認応答されない場合には、エー ジェントは、そのリクエストを高い優先順位のリクエストに繰り上げるのである 。一般に、高い優先度のリクエストが確認応答されることになる最悪の場合の呼 び出し時間の期間は、特定のコンピュータ・システムに関しては知られている。 従って、その待機期間は、エージェントがリクエストの表明の後における最悪の 場合の呼び出し時間の期間内においてバスに対するアクセスを保証されるように して、選択されるのである。本発明のこの優先順位繰上げ技術は、いかなるアー ビトレーション機構の中にも組み込まれ得るものであり、特には、上述のような 重み付きのアービトレーション機構に対して組み込まれることが可能である。 本発明の目的、特徴及び利点は、以下のような図面が本発明の構造及び機能の 具体例を提供するように成した詳細な説明を検討すれば、当該分野における熟練 者には明白になるであろう。 図面の簡単な説明 第1図は、本発明のアービトレーション機構を組み込んだコンピュータ・シス テムを示している。 第2図は、本発明のメイン・メモリ・インターフェースに関する機能ブロック 図である。 第3図は、本発明の優先順位繰上げ機能を実行するためのバス・エージェント に関する主要な機能ブロックを示している。 第4図は、従来的なラウンドロビン・アービトレーションを示している状態図 である。 第5図は、第4図のラウンドロビン・アービトレーションの中への本発明の優 先順位繰上げ機能の組込みを示している。 第6図は、本発明による重み付きのラウンドロビン・アービトレーションを示 している状態図である。 第7図は、本発明による重み付きのラウンドロビン・アービトレーションに関 するもう1つの実施例を示している状態図である。 第8図は、第6図のラウンドロビン・アービトレーションの中への優先順位繰 上げの組込みを示している。 第9図は、本発明による階層的なアービトレーションを示している。 第10図は、本発明による階層的なアービトレーションに関するより詳細な説 明図である。 発明を実施するための最良の形態 本発明は、バス帯域幅をバス・エージェントに対して柔軟に割り付けるバス・ アービトレーション機構を提供するものである。以下の説明では、本発明の完全 な理解を可能にするために、数多くの詳細な事柄が述べられる。しかしながら、 本発明を実行するためにはこれらの特殊な詳細な事柄が必要とされないものであ ることが、当該分野における通常の熟練者には理解されるであろう。更に、周知 の要素、装置及びプロセス・ステップなどは、本発明を曖昧にすることを避ける ために述べられないものとする。 第1図は、本発明のアービトレーション機構を組み込んだコンピュータ・シス テムの1つの実施例に関する主要な機能ブロックを示している。マイクロプロセ ッサ・チップ100は、メイン・メモリ・バス104を通じてメイン・メモリ1 02に対して結合される。メイン・メモリ102は、同期DRAM(SDRAM )として実装されることが可能である。マイクロプロセッサ・チップ100は、 命令キャッシュ・メモリ108及びデータ・キャッシュ・メモリ110を組み込 んだ中央処理装置(CPU)106を包含する。CPU106及びその夫々のキ ャッシュ・メモリは、内部CPUバス112を通じてその他のオンチップ・コン ポーネントと連絡する。メイン・メモリ・インターフェース114は、内部バス 112の制御に関する様々なオンチップ機能ユニットのアービトレーションを制 御 するものであり、更に、内部バス112とメイン・メモリ102との間における データの転送をも調整する。 多くのオンチップ・ユニットは、マルチメディア処理において採用される入出 力インターフェースを提供する。ビデオ入力ユニット116は、バス112及び メイン・メモリ・インターフェース114を介してメイン・メモリ102の中に 記憶されるべく転送されることが可能であるオフチップ・ビデオ・データを受け 入れる。ビデオ出力ユニット118は、ビデオ・ディスプレイ(図示略)のよう な外部入出力ユニットに対するチップ100からのビデオ・データの転送の責任 を負う。同様にして、オーディオ入力ユニット120は、チップ100の中への オーディオ・データの転送を処理するが、オーディオ出力ユニット122は、サ ウンド・カード(図示略)のようなオフチップ・オーディオ・ユニットに対する チップ100からのオーディオ・データの転送を調整することになる。 当該マイクロプロセッサは、さもなければCPU106を長い期間に渡って占 有してしまうことになる複雑な画像処理作業を実行するための専用のものである 画像コプロセッサ124をも更に包含する。VLD(可変長デコーダ)コプロセ ッサ126は、ビデオ・データを圧縮解除するために好適に採用されるMPEG アルゴリズムの計算をスピードアップするために使用される。更に、PCI(周 辺コンポーネント相互接続)インターフェース・ユニット128は、オンチップ ・ユニットがPCIバスに対して連結されることを許容する。最後に、ブート・ ユニット130は、パワーアップ又はリセットに応じて外部EPROMからのブ ート・ルーチンをメイン・メモリ102にロードするのである。 第2図は、メイン・メモリ・インターフェース114の機能ブロック図を示し ている。メイン・メモリ・インターフェース114は、メモリ・コントローラ2 00及びアービタ202を包含する。アービタ202は、内部CPUバス112 に対するアクセスに関して競合するいずれのバス・エージェントがバス112の 制御を許可されることになるかを決定する。メモリ・コントローラ200は、当 該エージェントとその他のバス・エージェント又はメイン・メモリ102との間 におけるデータの転送を調整するものである。汎用プロトコル 内部バス112を通じてメイン・メモリの転送を実行するために本発明によっ て採用される汎用プロトコルは、1つの実施例では、以下の通りに説明されるこ とが可能である: 1. バス・マスターが、バス112の制御に関するリクエストを表明する。 以下で説明されるように、本発明は、高い優先度のリクエストREQ HI及び 低い優先度のリクエストREQ LOという2つのリクエスト信号を採用する。 メモリ・コントローラ200は、転送を開始する準備が整っていることを表示す る開始(START)信号を発信し、これが、アービタに対してアービトレーシ ョンを実行することを要求する。 2. 同じサイクル又は後のサイクルにおいて、アービタ202は、確認応答 信号ACKを表明することによってバス・マスターに応答する。この信号は、内 部バス112がリクエストを表明するものにとって利用可能であることと、当該 リクエストが処理されることになることとを表示する。そのバスが占有されてい る場合、確認応答は、遅延されることになる。同様に、アービタ202は、リク エストが受理され首尾良くアービトレーションされた後、メモリ・コントローラ 200に対してRAM ACK信号を表明する。 3. リクエストを表明するものは、すべてのその他のバス・エージェントと 共に共有される3状態アドレス・バスを通じてアドレスを送信することによって 、ACK信号に応答する。そのアドレスは、転送に関連するメイン・メモリ・ア ドレスを表示する。同時に、リクエストを表明するものは、これもまたすべての その他のバス・エージェントと共に共有される3状態演算コード・バスを使用し て転送の形式(読取り又は書込み)を表示する。アービタ202は、このサイク ルではACKを撤回する。 4. ACKの撤回の後、リクエストを表明するものは、リクエスト信号を撤 回するが、そのアドレス及び演算コード信号は、転送信号が表明されるまでは表 明されたままに留まる。 5. メイン・メモリの呼び出し時間の期間の後、メモリ・コントローラ20 0は、転送信号を表明する。その転送信号は、ACK信号の後の1サイクルにお いて出現することが可能であり、或いは、更に後に出現することも可能である。 6. 転送の後の1サイクルにおいて、データのブロックの最初のワードは、 バス・エージェントとメイン・メモリ102との間のデータ・バスを通じて転送 される。このサイクルでは、すべての制御信号が撤回され、そのアドレス及び演 算コード・バスは、3状態化される。 7. 後続のサイクルにおいて、ワード転送のシーケンスは、バス・エージェ ントとメイン・メモリ102との間におけるブロック転送の残りを完成すべく発 生する。そのブロック寸法は、一定であり、メモリ・コントローラ200及びバ ス・エージェントの設計においてハード・コード化される。転送の順序は、信号 演算コード(読取り又は書込み)によって提供される。従って、バス・エージェ ントとメモリ・コントローラ200の両者は、ブロック寸法と転送順序を報告さ れるので、バス・トランザクションを完成させるための更なるハンドシェイキン グは不要である。 メモリ・マッピング式の入出力転送を調整するためのプロトコルは、本質的に は、メイン・メモリの転送のためのものと同じである。メモリ・マッピング式の 入出力転送の具体例は、ビデオ入力ユニット116におけるデータ・キャッシュ ・メモリ110と制御レジスタとの間の転送である。メモリ・マッピング式の入 出力の場合、メモリ・コントローラ200は、ACKの後にMMIO信号(図示 略)を表明して、MMIOトランザクションが始まっていることをバス112上 におけるすべての装置に対して表示する。MMIOが表明された後、あらゆるM MIO装置は、それがアドレスされているか否かを決定すべく、バス112上に おけるアドレスを検査する。アドレスされた装置は、アービタに対してMMIO 回答信号(図示略)を表明して、MMIO転送の準備が整っていることを表示す ることになる。優先順位の繰上げ この適切な背景を備えて、ここで、本発明の優先順位繰上げ機能が説明される ことになる。一般に、最良のCPU性能は、キャッシュ・メモリ回避が内部バス 112上の入出力トラフィックに関して優先権を得る場合に、達成される。しか しながら、キャッシュ・メモリ優先権は、入出力ユニットの競合するリアルタイ ム制約条件に対してバランスされなければならない。例えば、ビデオ出力装置は 、外部ディスプレイに高品質の画像を提供すべく、最悪の場合の最大限の呼び出 し時間の期間内においてバスの制御を許可されなければならない。 第3図は、本発明の優先順位繰上げ機能を実行するためのバス・マスター30 0の主要な機能ブロックを示している。バス・マスター300における関連する 各ブロックは、タイムアウト・レジスタ302、タイマー回路304及び制御論 理回路306を包含する。タイムアウト・レジスタ302は、タイムアウト値を 記憶するものである。タイムアウト・レジスタ302は、一定のタイムアウト値 を記憶することが可能であり、或いは、従来的なメモリ・マッピング技術に従っ てプログラムされることも可能である。 本発明のコンピュータ・システムにおける入出力装置又はその他のユニットは 、そのリクエストの優先度が低いものであるか或いは高いものであるかを表示す ることが可能である。画像コプロセッサからのようなキャッシュ・メモリ・リク エスト及び緊急の入出力リクエストは、高い優先度を割り当てられるべきである 。優先度の低い入出力リクエストは、低い優先度を割り当てられるべきである。 低い優先度のバス・エージェント300がデータ転送を開始することを求めると き、制御ユニット306は、初めに調節可能な低い優先度のリクエストREQ LOを通知する。制御ユニット306は、同時に、タイマー304に対して開始 信号を発信し、タイマー304のカウントダウンを開始させる。タイムアウト・ レジスタの中に記憶されるタイムアウト期間即ち待機期間は、エージェント30 0がリクエストの表明の後における最悪の場合の呼び出し時間の期間内において バスに対するアクセスを保証されるようにして、選択されることになる。そのタ イムアウト期間は、典型的にはプロセッサ・クロック・サイクルにおいて表現さ れ、高い優先度のリクエストがアービトレーションを獲得する最悪の場合の待機 時間を減じた最悪の場合の呼び出し時間の期間として選択される。 アービタ202からの確認応答がタイムアウト期間内に受理されなかった場合 、タイマー304は、制御ユニット306に対してタイムアウト信号を発信する 。それに応じて、制御ユニット306は、そのリクエストを高い優先度のリクエ ス トREQ HIに繰り上げるのである。一般に、ラウンドロビンのようなアービ トレーション機構では、エージェント300は、その他の高い優先度の装置に対 してアービトレーションを獲得することになる。その他の装置は、典型的には、 エージェント300よりも最近にバス・アクセスを許可されたものであることに なり、その結果、ラウンドロビン・アルゴリズムに従ってエージェント300よ りも低い優先度へと回転されているのである。更に、エージェント300からの 高い優先度のリクエストは、当然ながら、低い優先度のリクエストに対してアー ビトレーションを獲得することになる。従って、優先順位の繰上げは、最悪の場 合の呼び出し時間の期間内においてエージェント300に対するバス・アクセス を保証するのである。 優先順位の繰上げは、任意のアービトレーション機構の中に組み込まれること が可能である。例えば、第4図及び第5図は、ラウンドロビン・アービトレーシ ョンにおける優先順位の繰上げを示している。第4図は、従来的なラウンドロビ ン・アービトレーションを図示している。状態Aでは、バス・エージェントAが バスを制御しているが、状態Bでは、バス・エージェントBが制御している。状 態Aから状態Bへの円弧は、エージェントAがバスを所有していて、エージェン トBからのリクエストが表明されるときに、状態Bへの移行が生じること、即ち バスの所有権がエージェントAからエージェントBへ移動することを表示してい る。アービトレーションが状態Aにあって、エージェントAがリクエストを表明 するが、エージェントBはリクエストを表明しないときには、エージェントAが バスの制御を保持する。アービトレーションが状態Aにあって、AとBの両方の エージェントがリクエストを表明しているときには、バスの所有権がエージェン トBに移動して、所有権の公平な配分を形成することになる。 ラウンドロビン機構又はその他の任意の機構に関するアービトレーション状態 の移行は、優先度によって観察されることが可能である。第4図を参照すると、 状態Aにあるとき、エージェントBは、エージェントAよりも高いラウンドロビ ン優先度を有している。即ち、AとBの両方がリクエストを表明する場合には、 所有権がBへ移動するのである。移行の後、制御を許可されたエージェント(B )は、優先度の順位において最も低いラウンドロビン優先度へと回転される。結 果 として、ここで、Aは、最も高いラウンドロビン優先度を割り当てられ、Aは、 AとBの両方がリクエストを表明する場合に再びバスの制御を獲得することにな る。このようにして、ラウンドロビン機構は、各々のアービトレーションの後に おいてラウンドロビン優先度を回転させることとして観察されることが可能なの である。 第5図は、第4図の単純なラウンドロビンの具体例に対する優先順位繰上げの 組込みを示している。バス・エージェントAは、一定の高い優先度を割り当てら れるものとして想定される。例えば、バス・エージェントAは、命令のキャッシ ュ・メモリ又はデータ・キャッシュ・メモリであることが可能であり、これは、 最適のCPU性能を達成すべく、最小限の呼び出し時間を有するものでなければ ならない。更に、バス・エージェントBは、第3図で示されたような優先順位繰 上げ回路を組み込んだ入出力装置であると想定される。 第5図を参照すると、Aがバスを制御し、Bが低い優先度のリクエストを表明 するが、Aはリクエストを表明しない場合には、Bがアービトレーションを獲得 してバスの制御を許可される。しかしながら、Aが制御して、Bが低い優先度の リクエストを表明するが、Aがその高い優先度のリクエストを表明する場合には 、Aが再びバスの制御を許可される。この状況は、多くのアービトレーション・ サイクルに渡って継続し得ることになり、本質的にBをバスに対するアクセスか らシャットアウトするのである。優先順位繰上げ機構に拠れば、所定の待機期間 の後、Bは、そのリクエストを高い優先度のリクエストに繰り上げることになる 。その時点で、A及びBは、ラウンドロビン機構において完全に等しいものであ ることになり、Aが同時に高い優先度のリクエストを表明する場合であっても、 制御は、Bに移動するのである。 この具体例に基づけば、一般には、エージェントAは、それが高い優先度のリ クエストを表明するが、エージェントBが低い優先度のリクエストを表明する場 合に、アービトレーションを獲得するものであると理解され得ることになる。A とBの両方が同じ優先度のリクエストを表明する場合には、アービトレーション は、従来的な様式に従って解決される。見方を換えれば、エージェントBは、A とBの両方のエージェントが高い優先度のリクエストを表明する場合に、アービ トレーションを獲得するのであり、エージェントBは、AとBの両方のエージェ ントが低い優先度のリクエストを表明している場合にも、アービトレーションを 獲得することになるのである。重み付きのラウンドロビン・アービトレーション 優先順位の繰上げは、本発明のアービトレーション機構において採用される1 つの技術であるに過ぎない。それに加えて、或いは独立した代替例として、本発 明は、従来的なラウンドロビン機構を改良して、各バス・エージェントの帯域幅 及び呼び出し時間の要求事項が異なるという事実に対処する。上述のように、キ ャッシュ・メモリは、バス帯域幅の最大の割当て部分を割り付けられるべきであ り、従って最小限の呼び出し時間を割り付けられるべきである。何故なら、最良 のCPU性能は、キャッシュ・メモリ回避がバスに対する最も高い優先度のアク セスを付与される場合に達成されるからである。これに対して、オーディオ装置 は、比較的低い帯域幅で機能するので、データ転送に関して相対的に長時間待機 することが可能である。 本発明のもう1つの実施例に拠れば、バス・エージェントの優先度は、重みを 付けられ、各エージェントは、ラウンドロビン・アービトレーションの間に不均 一な帯域幅の割当て部分を割り付けられ得ることになる。第6図は、バス・エー ジェントAがバス・エージェントBの2倍の帯域幅を割り付けられるように成し た、重み付きのラウンドロビン・アービトレーションを示している状態図である 。通常のラウンドロビン機構に拠れば、バス・エージェントAは、アービトレー ションの第1のラウンドを獲得した後、低い(好ましくは最も低い)ラウンドロ ビン優先度に割り当て直されることになる。しかしながら、第6図の具体例では 、バス・エージェントAは、2という重みを割り当てられる。この2倍の重みは 、バス・エージェントAが3状態移行ノードA1、A2及びBによって表現され る3つのラウンドの中から合計で2つのアービトレーション・ラウンドに渡って その高い優先度の状態を保持し得るものであることを表示する。従って、バス・ エージェントAがアービトレーションの第1のラウンド(状態A1)を獲得した 後、バス・エージェントAは、Aが再びバスに対するアクセスをリクエストする 場合 に、アービトレーションの第2のラウンド(状態A2)を獲得することになる。 しかしながら、この第2のラウンドの間に、Aはバス・アクセスをリクエストし ないが、Bがリクエストする場合には、バス・エージェントBが、アービトレー ションの第2のラウンドを獲得することになる。Aは2という重みを割り当てら れるに過ぎないので、状態A2(Aが2つのラウンドに渡ってアービトレーショ ンを獲得することになった)の後に、Bは、Bがバス・アクセスをリクエストす る場合、次のアービトレーション・ラウンドを獲得することになるのである。一 般に、すべてのバス・エージェントに割り当てられる総計の重みがZである場合 には、重みWを有するバス・エージェントは、当該エージェントがバス・アクセ スをリクエストするように成したZ個のアービトレーション・ラウンドの中から 少なくともW個のアービトレーション・ラウンドに渡って最も高い優先度を割り 当てられることになる。 第7図は、本発明の重み付きラウンドロビン・アービトレーション機構のより 複雑な実行を示している状態図である。バス・エージェントA、B及びCは、2 :1:1の比率に応じて比例して重みを付けられる。すべてのエージェントがバ ス・アクセスをリクエストしていると仮定すると、状態移行シーケンスは、A1 、B、A2、Cである。ここでは、総計の重みは、Z=4である。この重み付け の故に、エージェントAは、Aがバス制御をリクエストするように成した4つの アービトレーション・ラウンドの中から少なくとも2つのアービトレーション・ ラウンドに渡って最も高い優先度を保持することが可能なのである。 重み付きラウンドロビン・アービトレーションは、本発明の優先順位繰上げ機 構と組合せられることが可能である。第8図は、第6図の重み付きラウンドロビ ン・アービトレーションに対して組み込まれた優先順位の繰上げを示している。 各エージェントが7つのレベルの優先度のみを表明し得るように成した第6図の 事例では、状態A1において始まるようにAとBの両方がリクエストを表明する 場合には、Aが状態A2への移行を通じてアービトレーションを獲得する。しか しながら、第8図に拠れば、エージェントの一方が(それを調節可能な低い優先 度から繰り上げた後)高い優先度のリクエストを表明し、もう一方のエージェン トがリクエストを表明しないか或いは低い優先度のリクエストを表明する場合に は、高い優先度でリクエストするエージェントが、アービトレーション・ラウン ドを獲得する。例えば、状態A1において始まるように、Bは、Bがその調節可 能な低い優先度のリクエストを高い優先度のリクエスト(BH)に繰り上げ、A がリクエストを表明しないか或いは低い優先度のリクエストを表明する(AL) 場合に、アービトレーションを獲得するのである。同様に、状態A2において、 Aが高い優先度のリクエスト(AH)を表明し、Bがリクエストを表明しないか 或いは低い優先度のリクエストを表明する(BL)場合に、Aは、第6図のラウ ンドロビン機構の下においてさえも、状態A2に留まり、アービトレーションは 、状態Bに移行してしまうことになる。AとBの両方が同じ優先度のレベルのリ クエストを表明する場合には、アービトレーションは、第6図の状態移行図に追 従する。更に、低い優先度のリクエストを表明するエージェントであっても、他 のエージェントが何もリクエストしない場合には、当然ながら、アービトレーシ ョンを獲得するのである。アービトレーションの階層 本発明のアービトレーション機構は、第9図で示されたように、複数のレベル の階層に分割されることが可能である。各々の階層のレベルは、第10図で概略 的に示されるように、独立したアービトレーション状態の機械を構成する。装置 が1つのレベルにおいてアービトレーションを獲得するとき、それは、それがバ ス・アクセスに関して当該レベルにおいて他の装置と競合することになる次のレ ベルへと移動される。このプロセスは、エージェントが最終的にバスの制御を獲 得することになる最も高いレベルのアービトレーションまで継続される。 第9図は、本発明に従った重み付きラウンドロビン式の4レベルのアービトレ ーションの階層の具体例を示している。第1図の各々の装置は、1つの階層レベ ルに対して割り当てられ、その割り当てられたレベル内において重みを付けられ る。メモリ・マッピング入出力(MMIO)のデータ・キャッシュ・メモリ及び 命令キャッシュ・メモリ装置は、好ましくは、キャッシュ・メモリ・アービタ9 00の制御を受けて互いの間において一定の重み(即ち1)を付けてアービトレ ーションされる。好ましくは、これらの装置の各々は、高い優先度のリクエスト REQ HIを表明することだけが可能である。レベル1の902において、キ ャッシュ・メモリ・アービトレーションの勝者は、1、2又は3というプログラ ム可能な重みを割り当てられる。キャッシュ・メモリ・アービトレーションの勝 者は、レベル2のアービトレーションの勝者とレベル1の900においてバスに 関して競合するものであり、レベル2の勝者は、レベル1の902において、1 、2又は3というプログラム可能な重みを有することになる。レベル2のアービ トレーションを生き残るリクエストは、低い優先度か又は高い優先度を有するこ とが可能である。 レベル2の904は、画像コプロセッサ(ICP)124及びPCIバス・イ ンターフェース128を包含する。画像コプロセッサ124は、好ましくは、1 、3又は5というプログラム可能な重みを割り当てられるが、PCIバスは、1 という重みを割り当てられる。これらの装置は、レベル3のアービトレーション の勝者と競合する。レベル2において、レベル3のアービトレーションの勝者は 、好ましくは、1、3又は5というプログラム可能な重みを割り当てられる。 レベル3の906は、ビデオ・イン116、ビデオ・アウト118及びVLD コプロセッサ126という高い帯域幅の各ビデオ装置を包含する。ビデオ・イン 信号のYUVビデオ・コンポーネントは、ラウンドロビンYUVアービタ908 におけるアービトレーションに関して競合する。同様にして、ビデオ・アウト信 号のYUVコンポーネントは、ラウンドロビンYUVアービタ910におけるア ービトレーションに関して競合する。Yビデオ・コンポーネントは、好ましくは 、2という重みを割り当てられる。何故なら、それが、大部分のビデオ情報を搬 送するのに対して、U及びVのコンポーネントが、夫々に1という重みを割り当 てられるからである。各々の統合YUV信号は、レベル3の906において2と いう重みを有する。それらのビデオ装置は、レベル3において1という重みを割 り当てられるレベル4のアービトレーションの勝者とレベル3において競合する 。 レベル4の912は、オーディオ・ユニット120及び122とブート・ユニ ット130とを含むようにして、低い帯域幅の各装置を包含する。それらのオー ディオ・ユニットとブート・ユニットは、好ましくは、夫々に1という重みを割 り当てられる。 第10図は、第9図のアービトレーションの階層の一部をより詳細に示してい る。各々のレベルにおけるアービトレーションは、或る状態機械において実行さ れる。プログラム可能な重み付けが特定のレベルにおいて採用される場合には、 当該レベルにおけるアービトレーションは、プログラム可能な状態機械を使用し て実行されるべきなのである。プログラム可能な状態機械は、当該分野では周知 であり、プログラマブル・ロジック・アレイ(PLA)又は類似の装置において 具体化されることも可能である。一定の重み付けが所望される場合には、一定の 論理が利用されることもまた可能である。アービトレーションの重みは、装置の 重みに等しいアービトレーション状態機械における多くの状態ノードを装置に付 与することによって割り当てられる。プログラム可能な重みの場合には、状態機 械におけるノードは、活性化され或いは非活性化されることが可能である。 第9図及び第10図の具体例に拠れば、プログラム可能な重み付けを必要とす ることになる帯域幅における大きな変動は、初めの2つのレベルにおける装置の タイプに関してのみ予測される。十分な性能は、第3及び第4のレベルに関して 一定の重みを採用することによって達成されることが可能である。当該分野にお ける熟練者は、状態機械のプログラム可能な性格又はプログラム不能な性格が、 帯域幅における異なった変動の期待値に適応するようにして設計を変更され得る ことを理解するであろう。 第1及び第2のレベルにおける各装置の重み及び従ってその帯域幅もまた、所 望の重みをメモリ・マッピング式の帯域幅制御レジスタ1002の中に書き込む ことによってプログラムされることが可能である。この具体例では、帯域幅制御 レジスタ1002は、レベル1の902におけるキャッシュ・メモリ・アービト レーション及びレベル2のアービトレーションの2つの夫々の勝者に関する重み 、レベル2の904における画像コプロセッサの重み、及びレベル3の906の アービトレーションの勝者のレベル2の904における重みを選択するようにし て4つのフィールドを包含する。上述のように、装置の重みを変化させることは 、状態機械におけるノードを活性化し或いは非活性化する。例えば、第6図にお けるエージェントAの重みは、ノードA2を非活性化することによって2から1 に変更されることになり、これは、第4図の状態図を生じることになるのである 。 第10図は、各々の状態機械に対するリクエスト・ラインが、一般に高い優先 度と低い優先度のリクエストに分割されることをも示している。低いレベルのア ービトレーションを獲得する装置を識別する装置識別番号は、当該装置からの低 い優先度か又は高い優先度のリクエストと共に次のレベルに移動される。第9図 で示されたすべてのリクエスト・ラインが第10図において詳細に示されている ものではないことが留意される。 一般に、第10図の状態機械の各々は、好ましくは、優先順位の繰上げを備え た重み付きのラウンドロビン・アービトレーションを実行する。エージェントが 1つのレベルにおいてアービトレーションを獲得すると、それは、次のより高い レベルに移動され、当該レベルにおけるアービトレーションに関して競合する。 例えば、画像コプロセッサ124は、レベル2の904におけるアービトレーシ ョンに関して、PCIインターフェース128及びレベル3のアービトレーショ ンの勝者と競合するのである。レベル2の状態機械904は、画像コプロセッサ 124がレベル2のアービトレーションを獲得するか否かを決定するために、幾 つかのファクタを考慮しなければならない: 即ち、リクエストを表明するその 他のレベル2のエージェントのレベル2のラウンドロビン優先度と比較される画 像コプロセッサ124のレベル2におけるラウンドロビン優先度; 更には、画 像コプロセッサ124が本発明の優先順位繰上げ技術に従って調節可能な低い優 先度又は高い優先度のリクエストを表明しているか否かというファクタである。 これらのファクタを考慮した後、画像コプロセッサ124がレベル2におけるア ービトレーションを獲得するものであるとレベル2の状態機械904が決定する 場合には、画像コプロセッサ124のリクエストは、レベル2を獲得するエージ ェントのリクエストとしてレベル1の状態機械902に対して提示される。 レベル1の902において、レベル2を獲得するエージェントは、アービトレ ーションに関して、キャッシュ・メモリ・アービトレーションの勝者と競合する 。レベル2を獲得するエージェントがレベル1におけるアービトレーションを獲 得するか否かを決定するために、レベル1の状態機械902は、以下のファクタ を考慮しなければならない: 即ち、キャッシュ・メモリ・アービトレーション の勝者レベル1の優先度と比較されるレベル2を獲得するエージェントのレベル 1 におけるラウンドロビン優先度; 更には、レベル2を獲得するエージェントが 本発明の優先順位繰上げ技術に従って調節可能な低い優先度又は高い優先度のリ クエストを表明しているか否かというファクタである。レベル1のアービトレー ションの勝者は、バスの制御を許可されることになる。特定のレベルにおいてア ービトレーションを獲得することと、レベル1のアービトレーションの獲得にお いてのみ生じることになる、最終的にバスの制御を許可されることとの間におけ る相違に留意することが重要である。 この具体例では、画像コプロセッサ124がバスの制御を許可される場合には 、「ホーム」レベル2の904において、レベル2の状態機械904は、アービ トレーションの次のラウンドの間に次の状態への移行を経験することになる。レ ベル2の904では、画像コプロセッサ124は、W2が画像コプロセッサ12 4のレベル2の重みであり、Z2がレベル2におけるすべての装置に関する総計 のレベル2の重みであるように成して、Z2個のノードの中からW2個の状態移 行ノードを占有する。この具体例に関して優先順位の繰上げがないと仮定すると 、この構成は、画像コプロセッサ124がバス制御をリクエストしてレベル2の エージェントがバス制御を獲得するように成して、Z2個のアービトレーション の中から少なくともW2個のアービトレーションに関して画像コプロセッサ12 4に対するバス制御を保証するのである。 レベル1では、レベル2を獲得するエージェントに対するバス制御の許可もま た、レベル1の状態機械902に次の状態への移行を経験させることになる。レ ベル2を獲得するエージェントは、W1がレベル2を獲得するエージェントのレ ベル1の重みであり、Z1がレベル1におけるすべての装置に関する総計のレベ ル1の重みであるように成して、レベル1におけるZ1個のノードの中からW1 個の状態移行ノードを占有する。この構成は、レベル2を獲得するエージェント がバス制御をリクエストするように成して、Z1個のラウンドの中から少なくと もW1個のアービトレーション・ラウンドに関してレベル2を獲得するエージェ ントに対するバス制御を保証するのである。 レベル2を獲得するエージェントは、レベル2のアービトレーションを獲得す るレベル1におけるレベル2のエージェントのクラスを指し示すものであり、た またま特定のアービトレーション・ラウンドを獲得することになる個別的なレベ ル2のエージェントを指し示すものではないことに留意することが重要である。 レベル1の状態機械902において移行を経験するものは、レベル1の状態機械 902に対するレベル2の入力であり、例えば画像コプロセッサ124のように 、たまたまアービトレーション・ラウンドを獲得することになる単なる特定のレ ベル2のエージェントではないのである。帯域幅の配分 帯域幅は、あらゆるレベルにおいて各装置の重みに対して割り付けられる。装 置xの帯域幅の断片は: Fx=Wx/ZLである。 ここで、Wxは、装置xの重みであり、ZLは、装置xが属するレベルLにおけ るすべての装置の重みの合計である。例えば、レベル4は、レベル3の帯域幅の 1/6を占有するのである。 装置xに関して保証される最小限の帯域幅は: Bx=Fx×BLである。 ここで、BLは、レベルLにおいて利用可能である総計の帯域幅である。 装置に関して予測される利用可能な帯域幅は、アプリケーションに応じて、保 証される最小限の帯域幅とは異なるものである。特定の装置がその帯域幅のすべ てを使用しない場合には、同じレベルにおけるその他の装置が、それに応じてよ り多くの帯域幅を獲得することになる。帯域幅が1つのレベルにおいてすべてが 使用されない場合には、より高いレベルが、より多くの帯域幅を採用することも 可能であることになる。 最小限の帯域幅は、最大限の呼び出し時間と密接に関連する。装置xに関する 最大限の呼び出し時間Lxは: Lx=ceil(ZL/Wx)×(Btot/BL−1)×T(クロック・サイ クル)である。 ここで、Btotは、総計のバス帯域幅であり、 ceilは、シーリング、即ち次のより大きな整数関数であり、 Tは、1つのトランザクションの転送時間である(メイン・メモリの帯域幅が1 サイクル当り4バイトであり、転送サイズが64バイトである場合に、T=16 サイクルである)。 予測される呼び出し時間は、通常、最悪の場合の最大呼び出し時間よりも遥か に少ないことが留意される。何故なら、多くの装置が全く同じ時間にリクエスト を表明することは稀だからである。 関連するファクタの数を与えるならば、アービトレーションの重みのプログラ ミングは、先ず異なった重みのセットを想定し、その対応する装置に関して結果 として生じる帯域幅を決定することによって最も有効に実行される。その結果、 最適な重みのセットは、所望の帯域幅配分に最も接近して適合することになる、 それに対応して結果として生じる帯域幅に基づいて選択される。 例えば、400MB/sのメイン・メモリ帯域幅とT=16サイクルの転送時 間とを有するコンピュータ・システムを想定する。更に、レベル1における1: 1の帯域幅重み付け、及びレベル2における1:1:1の帯域幅重み付けをも想 定する。残りの帯域幅重み付けは、第9図の一定の重み付け機構に追従する。こ の重み付けは、異なったレベルの階層に対して以下のような帯域幅配分を生じる ことになる: レベル1: 200MB/s レベル2: 133MB/s レベル3: 56MB/s レベル4: 11MB/s 所定の個別的な装置の場合、帯域幅及び呼び出し時間は、以下の通りである: MMIO (命令又はデータ・キャッシュ・メモリ回避が何もないもの と仮定する) 帯域幅=1/2×400=200MB/s 最大呼び出し時間=(2/1−1)×16=16サイクル 命令キャッシュ・メモリ、データ・キャッシュ・メモリ (唯1つのキャッシュ・メモリ回避があり、MMIOアクセ スは何もないものと仮定する) 帯域幅=1/2×400=200MB/s 最大呼び出し時間=(2/1−1)×16=16サイクル 画像コプロセッサ (すべてのユニットが最大レートでリクエストを表明するも のと仮定する) 帯域幅=1/3×200=66MB/s 最大呼び出し時間=(3/1×400/200−1)× 16 =80サイクル VLD (すべてのユニットが最大レートでリクエストを発信するも のと仮定する) 帯域幅=1/6×1/3×200=11MB/s 最大呼び出し時間=(6×400/67−1)×16 =560サイクル オーディオ (すべてのユニットが最大レートでリクエストを表明するも のと仮定する) 帯域幅=1/3×1/6×1/3×200 =3.7MB/s 最大呼び出し時間=(3/1×36−1)×16 =1,712サイクル 具体例として、表1は、レベル1におけるキャッシュ・メモリと周辺ユニット との間のパーセンテージ帯域幅配分を示している。表2は、画像コプロセッサ、 PCIインターフェース、及びレベル3のアービトレーションの勝者の間におけ る帯域幅配分を示している。 本発明は、幾つかの実施例に関連して説明されたが、当該分野における熟練者 は、本発明の概念及び範囲から離れることなく、様々な修正及び変更が為され得 ることを認識するであろう。例えば、以上の記述は、説明の目的のために、内部 PCIに関するアービトレーションの具体例を提示するものであるが、当該分野 における熟練者に拠れば、本発明は、任意の通信バスの制御ばかりでなく、任意 の共有資源のアクセッシングに対しても一般に適用可能であることが理解される であろう。更に、当該分野における熟練者は、本文において開示された原理が、 任意個数のバス・エージェント、バス・エージェント当りの任意個数の重み、任 意個数の階層レベル、及び各々のリクエストに関する任意個数の優先度レベルを 有するシステムに対して適用可能であることを理解するであろう。
───────────────────────────────────────────────────── 【要約の続き】 のレベルにおけるアービトレーションが独立状態の機械 によって制御されるように成した、複数のレベルの階層 に分割されることが可能である。エージェントが1つの レベルにおいてアービトレーションを獲得すると、それ は、当該レベルにおけるその他のエージェントとバス・ アクセスに関して競合するように成して、次のより高い レベルに移動される。バス・エージェントは、リクエス トの緊急度に基づいて、そのリクエストの優先順位を繰 り上げることも可能である。所定の待機期間の満了の後 に低い優先度のリクエストが確認応答されない場合に は、エージェントは、そのリクエストを高い優先順位の リクエストに繰り上げることになる。その待機期間は、 エージェントがリクエストの表明の後における最悪の場 合の呼び出し時間の期間内においてバスに対するアクセ スを保証されるようにして、選択されるのである。

Claims (1)

  1. 【特許請求の範囲】 1. 情報処理装置であって、 − バスと; − 当該バスに結合されたエージェントと; − 前記エージェントの2つ以上が同時に前記バスの制御をリクエストする場 合に、これらエージェントのいずれが前記バスの制御を許可されることになるか を決定するためのアービタとを含む情報処理装置において、当該アービタが、こ れらエージェントの夫々に割り当てられた相対的な重みに基づいて、これらエー ジェントのいずれが制御を許可されることになるかを決定することを特徴とする 情報処理装置。 2. 前記エージェントの間の第1のエージェントが、重みWを割り当てられ、 エージェントの全体が、総計の重みZを割り当てられ、当該アービタが、第1エ ージェントが前記バスの制御をリクエストするように成して、Z個のアービトレ ーションの中から少なくともW個のアービトレーションに関して第1エージェン トに対するバス制御を保証するようにしたことを特徴とする請求項1に記載の情 報処理装置。 3. 前記エージェントの間の第1のエージェントが、重みWを割り当てられ、 エージェントの全体が、総計の重みZを割り当てられ、当該アービタが、少なく ともZ個のアービトレーション状態を有して、各々のアービトレーション状態が 前記エージェントの対応するものに対するバス制御の許可を表わすようにしたこ とを特徴とする請求項1に記載の情報処理装置。 4. 当該アービタが、ラウンド・ロビン機構に従って前記アービトレーション 状態への移行に優先権を付与するようにしたことを特徴とする請求項3に記載の 情報処理装置。 5. 当該アービタが、これらエージェントを各レベルにおいてグループ付けし 、k番目のレベルにおける前記エージェントの間においてアービトレーションを 獲得するエージェントが、より高いk−1番目のレベルにおけるアービトレーシ ョンに関して競合するようにしたことを特徴とする請求項1に記載の情報処 理装置。 6. これらエージェントの間の第1のエージェントが、前記バスの制御に関し て低い優先度のリクエストと高い優先度のリクエストとを表明する手段を有し、 第1エージェントが、前記低い優先度のリクエストが所定の待機期間の後にも許 可されない場合には、前記低い優先度のリクエストを前記高い優先度のリクエス トに繰り上げるようにしたことを特徴とする請求項1に記載の情報処理装置。 7. バスに結合されたエージェントの間でアービトレーションするためのアー ビタであって、前記エージェントの2つ以上が同時に前記バスの制御をリクエス トする場合に、これらエージェントのいずれが前記バスの制御を許可されること になるかを決定するようにしたアービタにおいて、前記エージェントの夫々に割 り当てられた相対的な重みに基づいて、これらエージェントのいずれが制御を許 可されることになるかを決定することを特徴とするアービタ。 8. 2つ以上のエージェントが同時にバスの制御をリクエストする場合に、前 記バスに結合された前記エージェントの間でアービトレーションする方法におい て、前記エージェントの夫々に割り当てられた相対的な重みに基づいて、前記エ ージェントのいずれが制御を許可されることになるかということが決定されるよ うにしたことを特徴とするアービトレーションする方法。 9. 前記エージェント内の第1のエージェントが、重みWを割り当てられ、こ れらエージェントの全体が、総計の重みZを割り当てられ、当該方法が、第1エ ージェントが前記バスの制御をリクエストするようにして、Z個のアービトレー ションの中から少なくともW個のアービトレーションに関して第1エージェント に対するバス制御を保証するようにしたことを特徴とする請求項8に記載の方法 。 10.前記エージェントが、各レベルにおいてグループ付けされ、k番目のレベ ルにおける前記エージェント間でアービトレーションを獲得するエージェントが 、より高いk−1番目のレベルにおけるアービトレーションに関して競合するよ うにしたことを特徴とする請求項8に記載の方法。
JP10514430A 1996-09-19 1997-07-15 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置 Pending JP2000500895A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/715,946 1996-09-19
US08/715,946 US6385678B2 (en) 1996-09-19 1996-09-19 Method and apparatus for bus arbitration with weighted bandwidth allocation
PCT/IB1997/000876 WO1998012645A1 (en) 1996-09-19 1997-07-15 Method and apparatus for bus arbitration with weighted bandwidth allocation

Publications (1)

Publication Number Publication Date
JP2000500895A true JP2000500895A (ja) 2000-01-25

Family

ID=24876108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10514430A Pending JP2000500895A (ja) 1996-09-19 1997-07-15 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置

Country Status (6)

Country Link
US (1) US6385678B2 (ja)
EP (1) EP0861470B1 (ja)
JP (1) JP2000500895A (ja)
KR (1) KR100440657B1 (ja)
DE (1) DE69718892T2 (ja)
WO (1) WO1998012645A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532183A (ja) * 2005-03-01 2008-08-14 クゥアルコム・インコーポレイテッド バスアクセスアービトレーションスキーム
JP2009505296A (ja) * 2005-08-19 2009-02-05 クゥアルコム・インコーポレイテッド 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション
JP2013065065A (ja) * 2011-09-15 2013-04-11 Ricoh Co Ltd アクセス制御装置、画像形成装置およびアクセス制御方法
JP2014035549A (ja) * 2012-08-07 2014-02-24 Ricoh Co Ltd バス制御装置、画像処理装置及びバス制御方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3410101B2 (ja) * 1994-11-29 2003-05-26 ユナイテッド テクノロジーズ コーポレイション 光ファイバブラッググレーティングによるコーティング消滅検出
JP3454094B2 (ja) * 1997-07-22 2003-10-06 日本電気株式会社 共有メモリ制御装置および共有メモリ制御方法
GB2336274B (en) * 1998-01-30 2003-05-21 Sgs Thomson Microelectronics A hierarchical system for accessing resources
KR100605867B1 (ko) * 1999-04-23 2006-07-31 삼성전자주식회사 동적 우선순위 조정기능을 갖는 버스 중재기와 버스 중재방법
GB9919208D0 (en) * 1999-08-13 1999-10-20 Sgs Thomson Microelectronics An arbiter and a method of arbitrating
FR2797971A1 (fr) * 1999-08-31 2001-03-02 Koninkl Philips Electronics Nv Acces a une ressource collective
US6614440B1 (en) * 1999-09-30 2003-09-02 Microsoft Corporation System and method for load balancing in a multi-channel graphics system
US6629177B1 (en) * 1999-12-27 2003-09-30 Intel Corporation Arbitrating requests on computer buses
US6859852B2 (en) * 2000-09-08 2005-02-22 Texas Instruments Incorporated Immediate grant bus arbiter for bus system
EP1348163A1 (en) 2000-12-28 2003-10-01 Koninklijke Philips Electronics N.V. System integrating agents having different resource-accessing schemes
GB0031763D0 (en) * 2000-12-29 2001-02-07 Mitel Semiconductor Ltd Arbiter for a queue management system
US7089390B2 (en) * 2001-02-16 2006-08-08 Broadcom Corporation Apparatus and method to reduce memory footprints in processor architectures
US6820152B2 (en) * 2001-04-25 2004-11-16 Matsushita Electric Industrial Co., Ltd. Memory control device and LSI
US7035294B2 (en) * 2001-06-04 2006-04-25 Calix Networks, Inc. Backplane bus
US7792534B2 (en) * 2001-06-05 2010-09-07 Ericsson Ab Multiple threshold scheduler
JP2003058272A (ja) * 2001-08-21 2003-02-28 Mitsubishi Electric Corp 半導体装置およびそれに用いられる半導体チップ
WO2003027869A2 (de) * 2001-09-26 2003-04-03 Siemens Aktiengesellschaft Verfahren zur arbitrierung eines zugriffs auf einen datenbus
US20030135632A1 (en) * 2001-12-13 2003-07-17 Sophie Vrzic Priority scheduler
US20030158985A1 (en) * 2002-02-15 2003-08-21 Edward Fried Systems and methods for fair arbitration between multiple request signals
US20030172213A1 (en) * 2002-03-06 2003-09-11 GARCIA Enrique Artificially intelligent arbitration system and process for optimizing multiple processes sharing a resource
KR100456696B1 (ko) * 2002-05-21 2004-11-10 삼성전자주식회사 집적회로장치의 버스중재기
KR100486247B1 (ko) * 2002-07-05 2005-05-03 삼성전자주식회사 버스의 사용 빈도를 제어할 수 있는 방법 및 장치
US6954811B2 (en) * 2002-07-19 2005-10-11 Calix Networks, Inc. Arbiter for an input buffered communication switch
KR100455396B1 (ko) * 2002-10-14 2004-11-06 삼성전자주식회사 마스터 블록들의 우선 순위를 결정하는 파라미터 발생회로 및 파라미터 발생 방법.
US7024506B1 (en) * 2002-12-27 2006-04-04 Cypress Semiconductor Corp. Hierarchically expandable fair arbiter
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
KR100555501B1 (ko) 2003-06-26 2006-03-03 삼성전자주식회사 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법
US7350003B2 (en) * 2003-09-25 2008-03-25 Intel Corporation Method, system, and apparatus for an adaptive weighted arbiter
US8483227B2 (en) * 2003-11-20 2013-07-09 International Business Machines Corporation Controlling bandwidth reservations method and apparatus
US7099975B2 (en) * 2003-12-09 2006-08-29 International Business Machines Corporation Method of resource arbitration
US7143220B2 (en) 2004-03-10 2006-11-28 Intel Corporation Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies
JP4480427B2 (ja) * 2004-03-12 2010-06-16 パナソニック株式会社 リソース管理装置
JP4322173B2 (ja) * 2004-06-17 2009-08-26 富士通株式会社 データ転送方法及びシステム、入出力要求装置、並びに、データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
CN100449515C (zh) * 2006-03-17 2009-01-07 上海奇码数字信息有限公司 总线仲裁方法
US20090037635A1 (en) 2006-03-17 2009-02-05 Shanghai Magima Digital Information Co., Ltd. Bus arbitration device
KR101283524B1 (ko) * 2006-06-27 2013-07-15 톰슨 라이센싱 조정을 실행하기 위한 방법 및 장치
JP4846482B2 (ja) * 2006-08-03 2011-12-28 パナソニック株式会社 バスアービトレーション装置
KR100798924B1 (ko) * 2006-09-29 2008-01-29 한국전자통신연구원 Mboa mac의 pca 구간에서 자원 분배 방법
US7930456B1 (en) * 2006-12-23 2011-04-19 Emc Corporation Data packet arbitration system
US8032678B2 (en) * 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
US8667200B1 (en) * 2009-09-22 2014-03-04 Nvidia Corporation Fast and highly scalable quota-based weighted arbitration
US8595402B1 (en) * 2010-03-02 2013-11-26 Marvell International Ltd. Dynamic arbitration schemes for multi-master memory systems
KR101949382B1 (ko) * 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
US9135179B2 (en) 2013-05-01 2015-09-15 Qualcomm, Incorporated System and method of arbitrating cache requests
KR20150106224A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 시스템-온-칩 및 그의 부하 불균형 검출 방법
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
US10496577B2 (en) 2017-02-09 2019-12-03 Hewlett Packard Enterprise Development Lp Distribution of master device tasks among bus queues
US11029859B2 (en) * 2017-08-23 2021-06-08 Toshiba Memory Corporation Credit based command scheduling
CN108199864A (zh) * 2017-12-06 2018-06-22 中国航空工业集团公司西安航空计算技术研究所 一种基于PCIe事务层数据传输的带宽分配方法
CN111767687A (zh) * 2020-06-30 2020-10-13 成都博宇利华科技有限公司 一种多路并行数据采样系统及方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4375639A (en) 1981-01-12 1983-03-01 Harris Corporation Synchronous bus arbiter
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
US5088024A (en) * 1989-01-31 1992-02-11 Wisconsin Alumni Research Foundation Round-robin protocol method for arbitrating access to a shared bus arbitration providing preference to lower priority units after bus access by a higher priority unit
US5274774A (en) 1989-01-31 1993-12-28 Wisconsin Alumni Research Foundation First-come first-serve arbitration protocol
FR2678121B1 (fr) * 1991-06-18 1994-04-29 Matra Communication Dispositif d'insertion de paquets numeriques dans un canal de transmission.
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5280591A (en) * 1991-07-22 1994-01-18 International Business Machines, Corporation Centralized backplane bus arbiter for multiprocessor systems
US5367679A (en) 1992-12-30 1994-11-22 Intel Corporation Round robin scheduler using a scheduler carry operation for arbitration
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
US5533205A (en) * 1994-03-30 1996-07-02 International Business Machines Corporation Method and system for efficient bus allocation in a multimedia computer system
US5463624A (en) * 1994-04-15 1995-10-31 Dsc Communications Corporation Bus arbitration method for telecommunications switching
US5526496A (en) * 1994-04-22 1996-06-11 The University Of British Columbia Method and apparatus for priority arbitration among devices in a computer system
US5519837A (en) * 1994-07-29 1996-05-21 International Business Machines Corporation Pseudo-round-robin arbitration for a shared resource system providing fairness and high throughput
JP3483312B2 (ja) 1994-09-21 2004-01-06 松下電器産業株式会社 バス調停装置
US5745708A (en) * 1995-09-29 1998-04-28 Allen-Bradley Company, Inc. Method for and apparatus for operating a local communications module in arbitrating for mastership of a data transfer across a back plane bus in industrial automation controller
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
US6016528A (en) * 1997-10-29 2000-01-18 Vlsi Technology, Inc. Priority arbitration system providing low latency and guaranteed access for devices

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532183A (ja) * 2005-03-01 2008-08-14 クゥアルコム・インコーポレイテッド バスアクセスアービトレーションスキーム
JP2011187069A (ja) * 2005-03-01 2011-09-22 Qualcomm Inc バスアクセスアービトレーションスキーム
JP2009505296A (ja) * 2005-08-19 2009-02-05 クゥアルコム・インコーポレイテッド 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション
JP4705171B2 (ja) * 2005-08-19 2011-06-22 クゥアルコム・インコーポレイテッド 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション
JP2013065065A (ja) * 2011-09-15 2013-04-11 Ricoh Co Ltd アクセス制御装置、画像形成装置およびアクセス制御方法
JP2014035549A (ja) * 2012-08-07 2014-02-24 Ricoh Co Ltd バス制御装置、画像処理装置及びバス制御方法
US9600426B2 (en) 2012-08-07 2017-03-21 Ricoh Company, Ltd. Bus control device, image processing apparatus, and bus control method

Also Published As

Publication number Publication date
US6385678B2 (en) 2002-05-07
EP0861470A1 (en) 1998-09-02
KR100440657B1 (ko) 2004-10-06
KR19990067681A (ko) 1999-08-25
WO1998012645A1 (en) 1998-03-26
DE69718892T2 (de) 2003-11-06
DE69718892D1 (de) 2003-03-13
EP0861470B1 (en) 2003-02-05
US20010056515A1 (en) 2001-12-27

Similar Documents

Publication Publication Date Title
JP2000500895A (ja) 重み付きの帯域幅配分を備えたバス・アービトレーションの方法及び装置
RU2372645C2 (ru) Схема арбитража доступа к шине
US10241946B2 (en) Multi-channel DMA system with command queue structure supporting three DMA modes
US5996037A (en) System and method for arbitrating multi-function access to a system bus
JP6755935B2 (ja) 共有メモリコントローラおよびそれを使用する方法
JP3898899B2 (ja) バスシステム
US5983302A (en) Method and apparatus for arbitration and access to a shared bus
JP4705171B2 (ja) 転送方向および消費された帯域幅に基づく重み付けバス・アービトレーション
US5168568A (en) Delaying arbitration of bus access in digital computers
US6070205A (en) High-speed processor system having bus arbitration mechanism
JP2613005B2 (ja) デバイスのアービトレーション優先レベルを切り換える方法並びに多優先レベルのアービトレーションを行うためのアダプタ及びシステム
US5528767A (en) Programmable multi-level bus arbitration apparatus in a data processing system
US6775727B2 (en) System and method for controlling bus arbitration during cache memory burst cycles
WO1998012646A1 (en) Guaranteed bandwidth allocation method in a computer system for input/output data transfers
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
JPS622345A (ja) バス裁定システム
US7013357B2 (en) Arbiter having programmable arbitration points for undefined length burst accesses and method
US7096293B2 (en) Dynamic bus arbitration method and bus arbiter
US20070089114A1 (en) Real time scheduling system for operating system
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US7552268B2 (en) Method for improving bus utilization using predictive arbitration
JPH0727507B2 (ja) チャネル選択アービトレーション
EP1811394B1 (en) An arbitrator and its arbitration method
JP2003517681A (ja) 共用資源アービトレーション方法及び装置
US6167478A (en) Pipelined arbitration system and method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060306

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061025

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080214

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090911