JP2016521936A - クレジットに基づく調停のためのサービスレート再分配 - Google Patents
クレジットに基づく調停のためのサービスレート再分配 Download PDFInfo
- Publication number
- JP2016521936A JP2016521936A JP2016518310A JP2016518310A JP2016521936A JP 2016521936 A JP2016521936 A JP 2016521936A JP 2016518310 A JP2016518310 A JP 2016518310A JP 2016518310 A JP2016518310 A JP 2016518310A JP 2016521936 A JP2016521936 A JP 2016521936A
- Authority
- JP
- Japan
- Prior art keywords
- requesters
- requester
- bandwidth
- share
- inactive
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
共有システムリソースの3以上の要求者のうちの特定の要求者は、非アクティブであると決定される。3以上の要求者の各々は、それぞれシステムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを割り当てられ、特定の要求者の個々のサービスレートは、帯域幅の第1のシェアを表す第1のサービスレートである。帯域幅の第1のシェアの部分は、3以上の要求者の中のアクティブ要求者の各々に再割り当てされ、特定の要求者が非アクティブである間に、アクティブ要求者の相対サービスレートに従って帯域幅の第1の部分を分配する。
Description
本開示は、コンピューティングシステムに関し、より詳細には(排他的ではなく)コンピューティングシステムにおけるクレジットに基づく調停に関する。
コンピューティングシステムは、複数の異なるコンポーネント、チャネル及びプロセスによりアクセスされる可能性のある共有システムリソースを提供できる。このような共有リソースは、バス、メモリ、キャッシュ、及び他のリソースを含み得る。幾つかの例では、複数の「要求者」によるアクセスは、相互作用する要求者の予め設定された又は決定された動作に基づき予測できる。他の例では、複数の要求者は、共有リソースを争い、共有リソースのアクセスの試み(又は要求)は、予測できず、集中的であり、及び過度に断定的である。これらの競合コンポーネントの時には「欲張りな(greedy)」動作を管理するための解決策が開発されてきた。例えば、PCIe(Peripheral Component Interconnect Express)アーキテクチャの仕様で定められるクレジットに基づく方式のようなクレジットに基づくフロー制御方式が開発されてきた。これは、リンク毎に又は仮想チャネル(VC)毎に輻輳及び競合する要求を制御しようと試みる。幾つかの解決策は、他の例の中でも特に、共有リソース調停を有するシステムで展開されるフロー制御メカニズムと連携してCCSP(Credit Controlled Static Priority)アルゴリズムを更に利用する。
以下の説明では、本発明の完全な理解を提供するために、特定種類のプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令型、特定のシステムコンポーネント、特定の寸法/高さ、特定のプロセッサパイプラインステージ及び動作などのような多数の特定の詳細事項が説明される。しかしながら、当業者には、これらの特定の詳細事項が本発明を実施するために用いられる必要がないことが明らかである。他の例では、特定の及び代替のプロセッサア―キテクチャ、記載のアルゴリズムのための特定の論理回路/コード、特定のファームウェアコード、特定の相互接続動作、特定の論理構成、特定の製造技術及び材料、特定のコンパイラ実装、コードの中でのアルゴリズムの特定の表現、特定の電源断及び制御技術/ロジック及びコンピュータシステムの運用上の他の特定の詳細事項のような良く知られたコンポーネント又は方法は、本発明を不必要に不明瞭にすることを回避するために詳細に記載されない。
以下の実施形態は、コンピューティングプラットフォーム又はマイクロプロセッサにおけるような特定の集積回路におけるエネルギ管理及びエネルギ効率を参照して記載され得るが、他の実施形態は他の種類の集積回路及び論理素子に適用可能である。本願明細書に記載の実施形態と同様の技術及びその教示は、より良好なエネルギ効率及びエネルギ管理から利益を享受し得る他の種類の回路又は半導体装置に適用されても良い。例えば、記載の実施形態は、デスクトップコンピュータシステム又はUltrabooks(登録商標)に限定されない。また、ハンドヘルド装置、タブレット、他の薄型ノードブック、SOC(systems on a chip)装置、及び内蔵アプリケーションのような他の装置でも使用され得る。ハンドヘルド装置の幾つかの例は、携帯電話機、インターネットプロトコルデバイス、デジタルカメラ、PDA(personal digital assistant)、及びハンドヘルドPCを含む。内蔵アプリケーションは、標準的に、マイクロコントローラ、DSP(digital signal processor)、システムオンチップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、WAN(wide area network)スイッチ、又は以下に教示される機能及び動作を実行できる任意の他のシステムを含む。さらに、本願明細書に記載の装置、方法、及びシステムは、物理的コンピューティング装置に限定されず、エネルギ管理及び効率のためのソフトウェア最適化にも関連し得る。以下の説明において直ちに明らかになるように、本願明細書に記載の方法、装置、及びシステムの実施形態は(ハードウェア、ファームウェア、ソフトウェア、又はそれらの組合せを参照するかに係わらず)、性能考察と均衡のとれた「環境保全技術」の将来にとって不可欠である。
コンピューティングシステムが進歩するにつれ、その中のコンポーネントはより複雑になっている。その結果、コンポーネント間の結合し通信するための相互接続アーキテクチャも、帯域幅要件が最適なコンポーネント動作に適合することを保証するために、益々複雑さを増している。さらに、異なる市場区分が、市場の必要性に適合するために相互接続アーキテクチャの異なる態様を要求する。例えば、サーバはより高い性能を要求し、一方で、モバイルエコシステムは、電力節約のために全体的性能を犠牲にできる場合が多い。さらに、大部分の組織の単一の目的は、最大電力節約で、可能な限り高い性能を提供することである。以下で、多数の相互接続が議論される。これらは、本願明細書に記載の本発明の態様から利益を得る可能性がある。
図1は、マルチコアプロセッサを含むコンピューティングシステムのブロック図の一実施形態を示す。プロセッサ100は、コードを実行するために、マイクロプロセッサ、内蔵プロセッサ、DSP(digital signal processor)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、SOC(system on a chip)、又は他の装置のようなプロセッサ又は処理装置を有する。プロセッサ100は、一実施形態では、非対称コア又は対称コア(図示の実施形態)を含み得る少なくとも2個のコア、つまりコア101及び102を有する。しかしながら、プロセッサ100は、対称又は非対称であっても良い任意の数の処理要素を有しても良い。
一実施形態では、処理要素は、ソフトウェアスレッドをサポートするためのハードウェア又はロジックを表す。ハードウェア処理要素の例は、実行状態又はアーキテクチャ状態のようなプロセッサの状態を保持できる、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び/又は任意の他の要素を有する。言い換えると、処理要素は、一実施形態では、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードのようなコードと独立に関連付け可能な任意のハードウェアを表す。物理プロセッサ(又はプロセッサソケット)は、通常、集積回路を表し、コア又はハードウェアスレッドのような任意の数の他の処理要素を含む場合がある。
コアは、独立したアーキテクチャ状態を維持できる集積回路に配置されるロジックを表す場合が多い。ここで、それぞれ独立に維持されるアーキテクチャ状態は、少なくとも幾つかの専用実行リソースに関連付けられる。コアと対照的に、ハードウェアスレッドは、標準的に、独立したアーキテクチャ状態を維持できる集積回路に配置された任意のロジックを表す。ここで、独立に維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。分かるように、特定のリソースが共有され、他のリソースがアーキテクチャ状態のために専用であるとき、用語ハードウェアスレッドとコアとの間の線は重なり合う。さらに、オペレーティングシステムが各論理プロセッサでの動作を個々にスケジューリングできるとき、コア及びハードウェアスレッドは、オペレーティングシステムにより個々の論理プロセッサとして見られる。
物理プロセッサ100は、図1に示すように、2つのコア、つまりコア101及び102を有する。ここで、コア101及び102は、対称コア、つまり同じ構成、機能ユニット及び/又はロジックを有するコアであると考えられる。別の実施形態では、コア101はアウトオブオーダプロセッサコアを有し、一方で、コア102はインオーダコアを有する。しかしながら、コア101及び102は、ネイティブコア、ソフトウェア管理コア、ネイティブISA(Instruction Set Architecture)を実行するよう適応されたコア、変換済みISAを実行するよう適応されたコア、共同設計コア、又は他の知られているコアのような任意の種類のコアから個々に選択されても良い。異種コア環境(つまり非対称コア)では、バイナリ変換のような特定形式の変換が、一方又は両方のコアでコードをスケジューリングする又は実行するために用いられても良い。更に議論されるが、コア101の中に示す機能ユニットは、以下に更に詳細に記載される。コア102の中のユニットは図示の実施形態と同様の方法で動作する。
図示のように、コア101は、ハードウェアスロット101a及び101bとしても参照される2つのハードウェアスレッド101a及び101bを有する。したがって、オペレーティングシステムのようなソフトウェアエンティティは、一実施形態では、プロセッサ100を、4個の別個のプロセッサ、つまり4個のソフトウェアスレッドを同時に実行できる4個の論理プロセッサ又は処理要素として見る可能性がある。先に示唆したように、第1のスレッドはアーキテクチャ状態レジスタ101aに関連付けられ、第2のスレッドはアーキテクチャ状態レジスタ101bに関連付けられ、第3のスレッドはアーキテクチャ状態レジスタ102aに関連付けられ、第4のスレッドはアーキテクチャ状態レジスタ102bに関連付けられても良い。ここで、アーキテクチャ状態レジスタ(101a、101b、102a、102b)の各々は、上述のように処理要素、スレッドスロット、又はスレッドユニットとして参照されても良い。先に示唆したように、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製される。したがって、個々のアーキテクチャ状態/コンテキストは、論理プロセッサ101a及び論理プロセッサ101bについて格納できる。コア101で、命令ポインタ及びアロケータ及びリネーマブロック130の中のリネームロジックのような他の小さなリソースは、スレッド101a及び101bのために複製されても良い。順序付け/退役ユニット135の中の順序付けバッファ、ILTB120、ロード/ストアバッファ、及びキューのような幾つかのリソースは、パーティショニングを通じて共有されても良い。汎用目的内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータTLB115、実行ユニット140、及びアウトオブオーダユニット135の部分のような他のリソースは、完全に共有される可能性がある。
プロセッサ100は、完全に共有される、パーティショニングを通じて共有される、又は処理要素による専用の/それに専用の他のリソースを有する場合がある。図1に、プロセッサの説明のための論理ユニット/リソースと共に純粋に例示的なプロセッサの一実施形態が示される。留意すべきことに、プロセッサは、これらの機能ユニットのうちの任意のものを有し、又は省略しても良く、同様に、図示しない任意の他の知られている機能ユニット、ロジック、又はファームウェアを有しても良い。図示のように、コア101は、簡略代表的アウトオブオーダ(out-of-order:OOO)プロセッサコアを有する。しかし、インオーダプロセッサが異なる実施形態で用いられても良い。OOOコアは、実行され/取られるべきブランチを予測するためにブランチ目標バッファ120を、及び命令のアドレス変換エントリを格納するために命令変換バッファ(I−TLB)120を有する。
コア101は、フェッチ済み要素をデコードするためにフェッチユニット120に結合されたデコードモジュール125を更に有する。フェッチロジックは、一実施形態では、それぞれスレッドスロット101a、101bに関連付けられた個々のシーケンスを有する。通常、コア101は、プロセッサ100で実行可能な命令を定め/指定する第1のISAに関連付けられる。多くの場合、第1のISAの部分である機械コード命令は、実行されるべき命令又は動作を参照し/指定する命令(オペコードとも称される)の部分を有する。デコードロジック125は、それらのオペコードからこれらの命令を認識し及び第1のISAにより定められる処理のパイプラインの中でデコードされた命令を渡す回路を有する。例えば、以下に詳述するように、デコーダ125は、一実施形態では、トランザクション命令のような特定の命令を認識するよう設計され又は適応されたロジックを有する。デコーダ125による認識の結果、アーキテクチャ又はコア101は、適切な命令と関連付けられたタスクを実行するために、特定の所定の動作を行う。留意すべき重要なことに、本願明細書に記載のタスク、ブロック、動作及び方法のうちの任意のものは、一部が新しい又は古い命令であっても良い単一又は複数の命令に応答して実行されても良い。留意すべきことに、デコーダ126は、一実施形態では、同じISA(又はそのサブセット)を認識する。代替で、異種コア環境では、デコーダ126は、第2のISA(第1のISAのサブセット又は別個のISA)を認識する。
一例では、アロケータ及びリネーマブロック130は、命令処理結果を格納するためにレジスタファイルのようなリソースを予約するアロケータを有する。しかしながら、スレッド101a及び101bは、アウトオブオーダ実行が可能である可能性がある。ここで、アロケータ及びリネーマブロック130は、命令結果を追跡するために順序付けバッファのような他のリソースも予約する。ユニット130は、プログラムをリネームするためのレジスタリネーマ/プロセッサ100の内部の他のレジスタへの命令参照レジスタレジスタも有しても良い。順序付け/退役ユニット135は、アウトオブオーダ実行及びアウトオブオーダで実行された命令の後にインオーダ退役をサポートするために、上述の順序付けバッファ、ロードバッファ、及びストアバッファのようなコンポーネントを有する。
スケジューラ及び実行ユニットブロック140は、一実施形態では、実行ユニットでの命令/動作をスケジューリングするためにスケジューラユニットを有する。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットの一部にスケジューリングされる。実行ユニットに関連付けられたレジスタファイルも、情報命令処理結果を格納するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の知られている実行ユニットを有する。
低レベルのデータキャッシュ及びデータ変換バッファ(D−TLB)150は、実行ユニット140に結合される。データキャッシュは、メモリコヒーレント状態に保持される可能性のあるデータオペランドのような最近使用した/動作した要素を格納するためのものである。D−TLBは、最近の仮想/線形−物理アドレス変換を格納するためのものである。特定の例として、プロセッサは、物理メモリを複数の仮想ページに分けるためにページテーブル構造を有しても良い。
ここで、コア101及び102は、オンチップインタフェース110と関連付けられた第2レベルキャッシュのようなより高いレベル又は更に外側のキャッシュへのアクセスを共有する。留意すべきことに、より高いレベル又は更に外側は、実行ユニットから更に距離の遠くなる又は更に離れたキャッシュレベルを表す。一実施形態では、より高いレベルのキャッシュは、第2又は第3レベルデータキャッシュのような最終レベルデータキャッシュ、つまりプロセッサ100にあるメモリ階層の中の最後のキャッシュ、である。しかしながら、より高いレベルのキャッシュは限定的ではなく、命令キャッシュと関連付けられ又はそれを有しても良い。代わりに、トレースキャッシュ、つまり一種の命令キャッシュは、最近デコードされたトレースを格納するためにデコーダ125の後に結合されても良い。ここで、命令は、多数のマイクロ命令(マイクロ動作)にデコードされ得るマクロ命令(つまり、デコーダにより認識される汎用命令)を表す可能性がある。
図示の構成では、プロセッサ100は、オンチップインタフェース110も有する。歴史的に、以下に詳述するメモリコントローラは、プロセッサ100の外部にあるコンピューティングシステムに含まれている。このシナリオでは、オンチップインタフェース110は、システムメモリ175、チップセット(メモリ175に接続するためのメモリコントローラハブ及び周辺装置を接続するためのI/Oコントローラハブを含む場合が多い)、メモリコントローラハブ、ノースブリッジ、又は他の集積回路のようなプロセッサ100の外部にある装置と通信する。そして、このシナリオでは、バス105は、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント(例えばキャッシュコヒーレント)バス、階層プロトコルアーキテクチャ、差動バス、及びGTLバスのような任意の知られている相互接続を有しても良い。
メモリ175は、プロセッサ100に専用であるか又はシステムの中の他の装置と共有されても良い。メモリ175の種類の共通の例は、DRAM、SRAM、不揮発性メモリ(NVメモリ)、及び他の知られている記憶装置を含む。留意すべきことに、装置180は、メモリコントローラハブに結合されたグラフィックアクセラレータ、プロセッサ又はカード、I/Oコントローラハブに結合されたデータ記憶装置、無線通信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、又は他の知られている装置を有しても良い。
しかしながら、最近、SOCのように、より多くのロジック及び装置が単一のダイに統合されるにつれ、これらの装置の各々は、プロセッサ100に組み込まれ得る。例えば、一実施形態では、メモリコントローラハブは、プロセッサ100と同じパッケージ及び/又はダイにある。ここで、コアの一部(オンコア部分)110は、メモリ175又はグラフィックデバイス180のような他の装置とインタフェースする1又は複数のコントローラを有する。このような装置とインタフェースする相互接続及びコントローラを有する構成は、オンコア(又はアンコア構成)と呼ばれる場合が多い。一例として、オンチップインタフェース110は、オンチップ通信のためのリング相互接続、及びオフチップ通信のための高速シリアルポイントツーポイントリンク105を有する。さらに、SOCの環境では、高機能及び低電力消費で小さいフォームファクタを提供するために、ネットワークインタフェース、コプロセッサ、メモリ175、グラフィックプロセッサ180、及び任意の他の知られているコンピュータ装置/インタフェースのような更に多くの装置でも、単一のダイ又は集積回路に統合されても良い。
一実施形態では、プロセッサ100は、アプリケーションコード176をコンパイル、変換、及び/又は最適化して本願明細書に記載の装置及び方法をサポートし又はそれらとインタフェースするために、コンパイラ、最適化、及び/又はトランスレータコード177を実行できる。コンパイラは、ソーステキスト/コードを目標テキスト/コードに変換するためにプログラム又はプログラムセットを有する場合が多い。通常、プログラム/アプリケーションコードのコンパイラによるコンパイルは、高レベルプログラミング言語コードを低レベル機械又はアセンブリ言語コードに変換するために、複数のフェーズ及びパスで行われる。さらに、単一パスコンパイラは、単純なコンパイルのために依然として用いられ得る。コンパイラは、任意の知られているコンパイル技術を用い、字句解析、前処理、パース、意味論的解析、コード生成、コード変換、及びコード最適化のような任意の知られているコンパイラ動作を実行しても良い。
大規模コンパイラは、複数のフェーズを有する場合が多いが、これらのフェーズは次の2つの大まかなフェーズに含まれる。(1)フロントエンド、つまり、ここでは通常、構文処理、意味処理、及び何らかの変換/最適化が行われ得る。(2)バックエンド、つまり、ここでは通常、解析、変換、最適化、及びコード生成が行われる。幾つかのコンパイラは、コンパイラのフロントエンドとバックエンドとの間の描写の曖昧さを示す中間を参照する。結果として、挿入、関連付け、生成、又はコンパイラの他の動作への言及は、前述のフェーズ又はパスのうちの任意のものの中で、及びコンパイラの他の知られているフェーズ又はパスの中で行われても良い。説明のための例として、コンパイラは、呼び出し/動作のコンパイルのフロントエンドフェーズへの挿入、及び次に変換フェーズの間の呼び出し/動作の低レベルコードへの変換のように、動作、呼び出し、関数、などをコンパイルの1又は複数のフェーズに挿入する可能性がある。留意すべきことに、動的コンパイルの間、コンパイラコード又は動的最適化コードは、このような動作/呼び出しを挿入し、ランタイム中の実行のためにコードを最適化しても良い。特定の説明のための例として、バイナリコード(既にコンパイル済みのコード)は、ランタイム中に動的に最適化されても良い。ここで、プログラムコードは、動的最適化コード、バイナリコード、又はそれらの組合せを有しても良い。
コンパイラと同様に、バイナリトランスレータのようなトランスレータは、コードを最適化及び/又は変換するために、コードを静的又は動的に変換する。したがって、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行への言及は、次のことを表し得る。(1)静的又は動的にプログラムコードをコンパイルするため、ソフトウェア構造を維持するため、他の動作を実行するため、コードを最適化するため、又はコードを変換するための、コンパイラプログラム、最適化コード最適化器、又はトランスレータの実行、(2)最適化/コンパイルされたアプリケーションコードのような、動作/呼び出しを含むメインプログラムコードの実行、(3)ソフトウェア構造を維持するため、他のソフトウェア関連動作を実行するため、又はコードを最適化するための、ライブラリのような、メインプログラムコードと関連付けられた他のプログラムコードの実行、(4)これらの組合せ。
例示的な相互接続構成及びプロトコルは、特にPCIe(Peripheral Component Interconnect Express)アーキテクチャ、QPI(Intel QuickPath Interconnect)アーキテクチャ、MIPI(Mobile Industry Processor Interface)のような例を含み得る。サポートされるプロセッサの範囲は、ノードコントローラ間の複数のドメイン又は他の相互接続の使用を通じて達成され得る。相互接続構成アーキテクチャは、階層プロトコルアーキテクチャの定義を含み得る。一実施形態では、プロトコル階層(コヒーレント、非コヒーレント、及び任意で他のメモリに基づくプロトコル)、ルーティングレイヤ、リンクレイヤ、及び物理レイヤを設けることができる。さらに、相互接続は、電力管理、DFT(test and debug)のための設計、故障処理、レジスタ、セキュリティなどに関連する拡張を含み得る。例えば、図2に示した一実装では、階層プロトコルスタック200は、例えば、トランザクションレイヤ205、リンクレイヤ210、及び物理レイヤ220を含み図示される。コンピューティング装置のインタフェースは、通信プロトコルスタック200として表される。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する/含むモジュール又はインタフェースとしても言及され得る。
データは、phit、flit、パケット等として編成され、コンポーネント間で情報を通信するために用いることができる。パケットは、例えば、送信側コンポーネントから受信側コンポーネントへ情報を伝達するために、トランザクションレイヤ205及びデータリンクレイヤ210で形成され得る。送信されたパケットが他のレイヤを通るに従って、それらは、該レイヤでパケットを処理するために必要な追加情報により拡張され得る。受信側で、逆の処理が生じ、パケットはそれらの物理レイヤ220表現からデータリンクレイヤ210表現に変換され、最終的に(トランザクションレイヤパケットについては)受信側装置のトランザクションレイヤ205により処理できる形式に変換される。
一実施形態では、プロトコル又はトランザクションレイヤ205は、データリンクレイヤ210及び物理レイヤ220のような、装置の処理コアと相互接続アーキテクチャとの間のインタフェースを提供するために用いることができる。これに関し、トランザクションレイヤ205の主な責任は、パケット(つまり、トランザクションレイヤパケット又はTLP)の組立及び解体を含み得る。幾つかの実装では、トランザクションレイヤ205(又は別のレイヤ)は、TLPのためのフロー制御又は他のデータ単位のような、システム内のクレジットに基づくフロー制御を管理できる。幾つかの実装では、クレジットに基づくフロー制御方式を用いることができる。クレジットに基づくフロー制御では、装置は、トランザクションレイヤ205の中の受信バッファの各々について、初期クレジット量を公表できる。パケット又はflitが受信側へ送信されるときはいつでも、送信側は、自身のクレジットカウンタを1クレジットだけ減じる。1クレジットは、1つのパケット、flit、メッセージ、等を表す。コントローラのような、リンクの反対の端にある外部装置は、各TLP、メッセージ、要求、トランザクション、等により消費されるクレジットの数を計数できる。トランザクションがクレジット限度を超えない場合、トランザクションは送信され得る。特に、先のメッセージ又は要求に対する応答を受信することに応答して、優先度又は調停ポリシに従って、追加クレジットが発行され、装置に利用可能なクレジットを回復し得る。クレジット方式の1つの例示的な利点は、例えばクレジット限度に遭遇しないならば、クレジット返却の待ち時間が性能に影響しないことである。
一実施形態では、4個のトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入力/出力アドレス空間、及びメッセージアドレス空間を有する。メモリ空間トランザクションは、データをメモリマップ位置へ/から転送するために、1又は複数のリード要求及びライト要求を有する。一実施形態では、メモリ空間トランザクションは、2つの異なるアドレスフォーマット、例えば32ビットアドレスのような短アドレスフォーマット又は64ビットアドレスのような長アドレスフォーマット、を使用できる。構成空間トランザクションは、互換性のある装置の構成空間にアクセスするために用いられる。構成空間へのトランザクションは、リード要求及びライト要求を有し得る。メッセージ空間トランザクション(又は単にメッセージ)は、相互接続構成におけるエージェント間の帯域内通信をサポートするために定められる。さらに、メモリ空間へのアクセスは、例えば、特にメモリ帯域幅への保証サービスレートを通じて割り当てることができる。
したがって、一実施形態では、トランザクションレイヤ205は、パケットヘッダ/ペイロード206を組み立てる。リンクレイヤ210は、データリンクレイヤ210とも呼ばれ、トランザクションレイヤ205と物理レイヤ220との間の中間ステージとして動作できる。一実施形態では、データリンクレイヤ210の責任は、2つのコンポーネントリンクの間でトランザクションレイヤパケット(Transaction Layer Packet:TLP)を交換する信頼できるメカニズムを提供することである。データリンクレイヤ210の片側は、トランザクションレイヤ205により組み立てられたTLPを受付、パケットシーケンス識別子211、つまり識別番号又はパケット番号、を適用し、誤り検出コード、つまりCRC212、を計算して適用し、物理から外部装置のような別の装置へ渡る通信のために、変更したTLPを物理レイヤ220に提出する。
一実施形態では、物理レイヤ220は、外部装置へパケットを物理的に送信するために、論理サブブロック221と、電気サブブロック222と、を有する。ここで、論理サブブロック221は、物理レイヤ221の「デジタル」機能に責任を持つ。これに関し、論理サブブロックは、物理サブブロック222による送信のために送出情報を準備するために送信セクションを、及びリンクレイヤ210に渡す前に受信した情報を識別し準備するために受信セクションを、有する。
物理ブロック222は、送信機及び受信機を有する。送信機は、論理サブブロック221によりシンボルを供給される。送信機は、シンボルをシリアル化し外部装置へ送信する。受信機は、シリアル化されたシンボルを外部装置から供給され、受信した信号をビットストリームに変換する。ビットストリームは、逆シリアル化され、論理サブブロック221に供給される。幾つかの実施形態では、定義済み8b/10b送信コードが用いられるような、10ビットシンボルが送信され/受信される送信コードを用いることができる。このような例では、パケットをフレーム223でフレーム化するために、特定のシンボルを用いることができる。さらに、一例では、受信機は、入力シリアルストリームから回復されたシンボルクロックも供給する。
上述のように、トランザクションレイヤ205、リンクレイヤ210、物理レイヤ220は図2の例を参照して議論されたが、階層プロトコルスタックはこれに限定されない。実際に、階層プロトコルが含まれ/実装されても良い。一例では、階層プロトコルとして表現されるポート/インタフェースは、次のものを含む。(1)パケットを組み立てる第1のレイヤ、つまりトランザクションレイヤ、(2)パケットをシーケンス化する第2のレイヤ、つまりリンクレイヤ、(3)パケットを送信する第3のレイヤ、つまり物理レイヤ。特定の例として、CSI(common standard interface)階層プロトコルが用いられる。別の実施形態では、階層プロトコルは、プロトコル階層(コヒーレント、非コヒーレント、及び任意で他のメモリに基づくプロトコル)、ルーティングレイヤ、リンクレイヤ、及び物理レイヤを含むことができる。
物理レイヤ220は、一実施形態では、物理媒体(電気的又は光学的、等)での情報の高速転送に責任を持つ。物理リンクは、2つのリンクレイヤエンティティの間のポイントツーポイントである。リンクレイヤ210は、上位層から物理レイヤ220を取り除くことができ、データ(及び要求)を直ちに転送する能力を提供し、2つの直接接続されたエンティティの間のフロー制御を管理する。また、リンクレイヤ210は、物理チャネルを複数の仮想チャネル及びメッセージクラスに仮想化することに責任を持つ。トランザクションレイヤ205(又は幾つかの実施形態ではプロトコルレイヤ)は、物理リンクを介した転送のためにプロトコルメッセージを物理レイヤ220に渡す前にプロトコルメッセージを適切なメッセージクラス及び仮想チャネルにマッピングするために、リンクレイヤ210に依存できる。リンクレイヤ210は、要求、スヌープ、応答、ライトバック、非コヒーレントデータ、等のような複数のメッセージをサポートしても良い。
一実施形態では、複数のエージェントは、例えばホームエージェント(メモリへのオーダ要求)、キャッシング(コヒーレントメモリに対する要求及びスヌープに対する応答を発行する)、構成(構成トランザクションを扱う)、非コヒーレント(非コヒーレントトランザクションを扱う)、等を含む相互接続アーキテクチャに接続されても良い。
現代のSoC(system-on-chip)は、マルチプロセッサを含む、複数タスクを実行するために使用可能な膨大な数のコンポーネント及び素子を有し得る。メモリ要素及び相互接続構成は、システムのコンポーネントにより共有できる。しかしながら、このような共有は、これらの乏しいシステムリソースのためにコンポーネント間での競合を生じ得る。幾つかの使用例では、ソフトウェアビデオデコーディング、アプリケーションのリアルタイム要件のような厳しいリアルタイムリソースアクセスは、他のコンフリクトの中でも満たすことが困難である。システムリソースに対する要求は、CPUの環境ではプロセスを含む「要求者」、又はメモリ若しくは相互接続の例では通信チャネルにより生成され得る。このような要求者(及びそれらの要求)は、アプリケーション又はタスクを代表して生成され得る。システムでアクティブな及びそのリソースを競合するタスク及びアプリケーションの組合せは、常に変化し得る。さらに、要求者のリソースに対する要求は変動し、コンポーネント及び種々のアプリケーションについての待ち時間要件も変化し得る。
リソースアクセスは、アービトレータロジック及び付随するハードウェアにより管理できる。メモリリソースの共有アクセスのようなリソースアクセスは、アクセスを精細なレベルの粒度でスケジューリングすることを可能にし、待ち時間及びバッファを減し、高速性能を要求する。幾つかの解決策では、保証最小サービスレート及び限界最大待ち時間は、設計時に分析的に検証され、アービトレータを用いて施行するよう試みられる。アービトレータは、リソースへのアクセスのレベルを要求者(例えば、所与のプロセス又はチャネル)に保証するために、リソースへのアクセスを調整できる。アービトレータは、さらに、互いに要求を分離するよう試み、幾つかの要求者が共有リソースを過度に使用して、他の要求者のそれらに割り当てられた利用可能リソース(又は「帯域幅」)の部分へのアクセス可能性を脅かすのを防ぐことができる。
クレジットに基づく調停アルゴリズムは、メモリ又は相互接続帯域幅のような共有リソースの複数の要求者(又は「ユーザ」)にサービスレートを正確且つ公平に保証するために、デジタル回路又はソフトウェアシステムで用いることができる。1つのこのようなアルゴリズムは、CCSP(Credit Controlled Static Priority)である。SoC相互接続構成に適用されるとき、CCSPは、例えば、単一の共有メモリを用いて(オンチップ及び外部コンポーネントのような)複数のコンポーネント及び装置にサービスレートを正確に保証できる。CCSPのようなソリューションは、保証サービスレートを要求する全てのエージェントがアクティブに参加する明確な使用例を有するシステムに、又は使用例が変化する場合に(例えば、(オーディオプロセッサのような)所与のコンポーネントがオフに切り替えられて、もはやサービスを要求しないとき)CCSPサービスレートが再設定できるシステムにおいて、適する。
パーソナルコンピュータ、モバイルコンピュータ、及びサーバに基づくプラットフォームでは、システムにより実行される機能の多様性のためにシステム負荷が絶えず変化するので、再設定サービスレートは現実的ではない場合が多い。さらに、多くのコンポーネントは、一貫して(又は常に)、それらが割り当てられたよりも多くの、共有リソースの部分にアクセスしようとし得、リソースを過度に取ってしまう。結果として、幾つかの例では、ハードディスクトラフィックが要求されないので、SATA(Serial ATA)ポートのような、SoC又は別のチップ若しくはシステムの中のコンポーネントが、サービス又は帯域幅の使用を停止する場合、該コンポーネントは、帯域幅を使用し得る他のよりアクティブなコンポーネント及び要求者の間で公平に再分配され得る過剰帯域幅を残し得る。既存の調停アルゴリズムは、例えば、アルゴリズムが提供されるサービスに基づき適格を決定するので、間欠的な過剰帯域幅の再分配の処理が粗末である。したがって、システムの中の全てのコンポーネント又は要求者が、それらが元々割り当てられたより多くのリソースを求める場合、全ての対応するエージェントは、最終的にはそれらの設定されたサービスレートを超えて動作するだろう。これは、他の問題の中でも特に、過剰帯域幅の不公平な分配を生じ得る。
非アクティブになりサービスを求めるのを止める1又は複数の要求者のために割り当てられた又は帯域幅(又はサービスレート)の部分を再分配できる改良した調停方式が提供される。要求者のサービスレートは、連続的に変化する使用例に対して動的に調整できる。このようなサービスレートの再分配により、過剰サービスは、アクティブな要求者の各々について設定された相対サービスレートに従って分配でき、結果として、動的に変化する超過システムにおいてサービスの連続的な公平な分配を生じる。このような調停方式は、例えば、本願明細書に記載の例示的なシステム、アルゴリズム、ロジック、技術及びフローの原理に従って及びそれらを用いて提供され得る。
図3の例を参照すると、SoCのようなコンピューティングシステムに含まれる例示的なアービトレータの簡略ブロック図300が示される。種々のコンポーネントは、アービトレータの機能を実現するために含まれ得る。例えば、図3の特定の例では、(第1のコンポーネントのポスト済みフローのための)チャネルCh[0].P、(第1のコンポーネントの別の非ポスト済みフローのための)Ch[0].NP、(第2のコンポーネントのポスト済みフローのための)Ch[1].P、(第2のコンポーネントの別の非ポスト済みフローのための)Ch[1].NP、のような4つの要求者が提供され得る。要求(例えば、パケットとして実現される)は、キュー305で受信される。トラフィックシェーパ310は、キュー305で受信したバーストトラフィックをシェーピングして、単一の要求のみが所与のサイクルの中で認められるようにする。トラフィックシェーパ310は、各要求者に割り当てられた個々のサービスレート(又は利用可能なメモリ帯域幅の部分)に従ってトラフィックをシェーピングできる。クレジットに基づく調停が用いられ、各要求者のクレジットカウンタ315は、(例えば、各要求者の利用可能クレジットを通じて)各ポートに提供される実際の累積サービスを追跡でき、サイクル中のクレジットの使用及び新しいクレジットの割り当てに対応するために、各サイクルで各要求者のクレジットカウントを更新できる。要求者が要求を入力する番であるとき(例えば、トラフィックシェーパ310により決定されたとき)、資格付与ロジック320は、リソースが該要求者のために利用可能か否かを評価できる。これは、リソースにアクセスするためのバスの利用可能の如何を決定するステップと、利用可能な記憶空間がトランザクション要求の目標において利用可能か否かを決定するステップと、を有し得る。静的優先度キュー(static priority queue:SPQ)325は、要求者の個々のサービス割り当てに係わらず、各要求者又はポートの固定最大遅延を保証するのを支援するために、(例えば、トラフィックシェーパ310と一緒に)更に機能できる。SPQ325は、渇望している低優先度の要求者(無限の遅延を生じる可能性がある)を高優先度の要求者から守ることができる。図3の例は例示的なアービトレータの特定のコンポーネントを示したが、本願明細書に記載の特徴を可能にする他の実装が実現可能であることが理解されるべきである。さらに、図3の例と関連して記載したコンポーネントのうちの幾つかの機能は、結合され、又は他のコンポーネント、構成及びシステムに更に分割され得る。
図4は、複数の要求者(例えば、「0p」、「0np」、「1p」、「1np」)による要求405の例示的なフロー、クレジット410の要求者への割り当て、及び(リソースのアクセス及びトランザクションが分配できる頻度又は粒度について定められるような)24サイクルのシリーズに渡り(要求した共有リソースへの要求者のアクセスを許可する)要求の許可412を示すブロック図である。図4の特定の説明のための例では、4個のチャネル0p、0np、1p、1np(例えば、図3の例のチャネル)は、共有リソースのサービスのための(又は共有リソースの利用可能帯域幅の一部の)サービスレートを割り当てられ得る。例えば、コンポーネント「0」のポスト済みチャネルは、利用可能な帯域幅の2/24を割り当てられ得る。したがって、チャネルは、24サイクル毎に2回の要求を保証され得る。同様に、他のチャネルは、それら自身の個々の保証サービスレートを割り当てられ、チャネル「0np」はリソースへの最も沢山のアクセスを得られる。
種々の方式及びポリシが、帯域幅又はサービスレートの初期割り当てを決定するために適用できる。サービスレートは、例えば、どんな種類のコンポーネントが要求に関与するか、個々の要求者のバッファのサイズ(例えば、小さなバッファサイズは、バッファの安全な最大待ち時間を保証するサービスレートを促す)、要求者と関連して実行されているアプリケーション又はタスクの種類(例えば、ハード対ソフトリアルタイムアクティビティ、アクティビティのリソース集中度、等)、及び特定の要求者に対応した優先度、により影響を受け得る。要求者に割り当てられたサービスレートは、使用例、競合する要求者の数及び種類、並びに他の要因に依存して変化し得る。さらに、使用例が変化する、異なる使用例がサポートされる、新しいコンポーネントが有効にされる又は追加される、等のとき、サービスレートは、同じ要求者が同じリソースについて競合しているときでも変化し得る。幾つかの例では、使用例は、例えば、特定の現在のサービスレートが決定され割り当てられる使用例における変化について、コンポーネントの使用例を監視することにより、動的に調整できる。説明のための例として、ビデオ処理コンポーネントは、第1のインスタンスで、HD(high definition)ビデオを処理していて、第1のインスタンスにおいて帯域幅の第1の部分を割り当てられている。ユーザがSD(standard definition)設定に切り替える場合、同じビデオ処理コンポーネントは、後のインスタンスで、SDビデオを処理し始めることができる。この特定のコンポーネント(例えばビデオ処理コンポーネント)のアクティビティ及び使用例における遷移は、使用例における変化を考慮するよう動的に調整されるように、特定のコンポーネントのサービスレートをトリガし得る。さらに、(例えば使用例が変化した)特定のコンポーネントとリソースの帯域幅を共有する他のコンポーネントのサービスレートは、特に特定のコンポーネントのサービスレートの動的調整に基づき(例えば比例して)調整されるそれら個々のサービスレートを有し得る。
図4の例では、チャネル0p、0np、1p、1npの少なくとも幾つかで、(405で)バーストトラフィックが見られる。さらに、本例では、競合する要求が、実質的に同時に到着し、競合するトラフィックをシェーピングし及び要求者の集合に渡って待ち時間を最小化することに最も困難をもたらす可能性がある。例えば、チャネル0pは、要求「a」を試み、その直後に要求「e」が続き、チャネル0npは10個の要求(「b」、「f」、「i」、「l」、「o」、「q」、「s」、「u」、「w」、「x」)を連続して試みる(該チャネルに割り当てられた帯域幅の全部を使用しようとする)、などである。(410で)クレジットは、競合する要求(例えば、要求「a」〜「x」)のうちのどれが、共有リソースへのアクセスを連続して許可されるかを調停するのに使用される。(410で示すように)クレジットは、要求者(チャネル)に対する保証サービスレートに従って許可され得る。例えば、チャネル0npは、それ自身の24/10の帯域幅サービスレートに相応の、24サイクル毎に10個のクレジットを保証され得る。クレジットは、24サイクル期間に渡り(例えば、サイクル0、3、4、6、8、12、16、18、21、23で)分配され得る。クレジットの分配は、複数の競合する要求者の各々に帯域幅の十分なシェア(share)を割り当てようとするために、種々の追加ポリシに基づき、種々のアルゴリズムを用いて決定され得る。
415に示すように、1つの要求のみを、任意の1サイクルにおいて許可できる。資格付与ロジック、静的優先度キュー、及びコンポーネント及びロジックは、このような要求がどのように及びどんな順序で許可されるかを導出できる。図4の例では、各チャネルは、リソースへのアクセスを許可されるために(つまり、該チャネル自身の要求を許可させる)、(例えば、全部で又は閾を超えて)少なくとも1つの利用可能なクレジットを有する。例えば、本例で示すように、サイクル0で、チャネル0p、0np、1p、1npの各々は、少なくとも1つのクレジットを許可され、したがって、(例えば、415で)サイクル0及びそれ以降で要求の許可の前に利用可能なクレジットを有する。アービトレータで施行される優先度ポリシは、この例では競合する要求者のうちのどれが優先度を有するかを決定するために更に用いることができる。優先度は、固定又は動的であり、特に例えば個々の要求者に基づく特定の使用例又は動作に基づき、要求者の数、過剰帯域幅の利用可能性に基づき、変化し得る。この特定の図では、チャネル0pは、他の3つのチャネルに優る優先度を有し、サイクル0で最初に共有リソースへのアクセスを許可され、次にサイクル1で要求者チャネル0np、及びサイクル2でチャネル1pが続く。優先度ルールは、他の要求者が任意のサービスを受ける前に、優先度を有する他のチャネルに、(個々のクレジットの利用可能性に従って)リソースに複数回アクセスさせ得る。例えば、図4の例では、チャネル1pは、該チャネルの要求のための十分なクレジットを有しているにもかかわらず(サイクル8により2つの未使用クレジットを提供されている(例えば410でサイクル0及びサイクル6を参照))、該チャネル自身の第1の要求が許可される前にサイクル8まで待つ。幾つかの実装では、待ち時間最大値は、特に、幾つかの低優先度要求者の待ち時間が保証された最大値を超えない限り、それらがキューに入れられないことを保証するよう実施できる。図4の例に示すように、クレジットが利用可能なとき、及び優先度ポリシ、最大待ち時間保護、超過利用保護、及び不十分利用保護が実施されるとき、(405で)キューに入れられた要求は、保証サービスレートが実現されるように、(415に示すように)サイクルの期間に渡り少しずつ分散できる。
幾つかの時間サンプルにおいて、図4の例では、所与の要求者は、彼らの割り当てられた帯域幅部分を超過して又は不十分に利用していても良い。例えば、サイクル1乃至6の間で、チャネル0npは、利用可能なサービスの4/6BWを享受し、該チャネルに対して保証された10/24BWを遙かに超過している。しかしながら、サイクル7乃至12の間で、同じチャネルは1/6BWしか保証されない。同様に、他のチャネルは、より多くの、より少ない、又は正にそれらに割り当てられた帯域幅部分を消費し得る。サービスレートを保証することは、サイクル数のような特定の期間に渡りサービスレートが実質的に承諾されることを保証できる。しかしながら、特に、要求者が非アクティブであり保証されたサービスの少なくとも一部の使用の権利を失っているという点で、要求者に対して保証されたサービスは、必ずしも要求者により使用される必要はない。
図5は、複数の要求者の間の帯域幅共有の別の説明を示す。図5の例では、合計メモリ帯域幅505が利用可能であり、2つのチャネル間に割り振られる。グラフ500aで、曲線510は第1のチャネルの試みられた要求を表し、曲線515は第2のチャネルの競合する試みられた要求を表す。しかしながら、共有リソースの試みられた利用510、515の両者が、合計で、要求者に利用可能な合計帯域幅505を超過するので、2つの個々のチャネルに割り当てられるべき保証サービスレートに従って、共有リソースへのアクセスを調整するために、クレジットに基づく調停方式が用いられる。本例では、第1のチャネルは第1のサービスレート520を割り当てられ、第2のチャネルは第2の、より低いサービスレート525を割り当てられる。例えば、図5の例におけるように、第1のチャネルは2/3BWを割り当てられ、一方で第2のチャネルは1/3BWだけを割り当てられる。
2つの要求者の調停に適用される優先度ポリシに従って、曲線530により表すように、第1のチャネルは、時間t0まで利用可能な帯域幅505の全部を消費することから始める。この期間中、グラフ500bに示すように、第1のチャネルは、自身に割り当てられたクレジットを順調に消費し(曲線540により示す)、第1のチャネルのクレジットは、(例えば545で)閾クレジット損失に当たるまで、又は(曲線550の点555により示すように)第2のチャネルの閾クレジット潜在能力に当たるまで、限度542の下側を降下する。図5に示すように、第1のチャネルが、自身の有するクレジットの全部を利用し、第2のチャネルが、ある期間の間にサービスを有しないままにされるとき、(第1のチャネルの保証サービスレートに従って)使用できた可能性のあるクレジットは、貯蔵され、結果としてクレジット潜在能力を生じる。同様に、第2のチャネルが(例えばt0で)サービスを保証されるとき、第1のチャネルにより享受されるサービスの量は、減らされ又は完全に静められ、結果として、(例えば、第1のチャネルによるリソース消費がt0からt2まで停止されるとき、限度542を超えて潜在能力565まで)第1のチャネルのクレジットが補充されるにつれ、第2のチャネルの超過クレジットの(例えば560までの)降下を生じる。実際に、t1からt3まで、第2のチャネルは保証レート525を超過してサービスを許可され消費し、一方で、他の時間には(例えば、t1まで)少ないサービスを享受している。しかしながら、第1及び第2のチャネルの各々は、特定の期間の後(例えば、t4)、両方とも、それら個々のサービスレートに従って必要サービス両を消費しても良い。
上述のように、サービスレートは、特定のサービス量を保証するために各要求者に割り当てることができる。サービスレートは、分母(Denom)及び分子(Num)により指定でき、個々の要求者に割り当てられた全体の利用可能な帯域幅の比を表すことができる。
要求者がサービスを許可されると、クレジット(潜在能力)は減少する。別の要求者が許可される(及び第1の要求者へのサービスが一時的に停止される)場合、潜在能力は増大する。しかしながら、いかなるサービスも提供されない場合、潜在能力は一定のままである。潜在能力は、コマンド及びデータフェーズの両方で、サービスの各サイクルで連続的に更新され得る。さらに、要求者は、次式の場合にサービスを受ける資格があると決定できる。
アービトレータは共有リソースに対して競合する要求を解決するロジックを含むことができるが、要求者のうちの1つが一時的に非アクティブになり該要求者に割り当てられた帯域幅の部分を利用しない場合を解決するために、追加ロジックを設けることもできる。幾つかの実装では、要求者の非アクティブ期間の間に未使用の帯域幅の部分は、アクティブな要求者のサービスレートを一時的に増大し共有リソースの利用可能な帯域幅をより効率的に使用するために、一時的にアクティブな要求者に分配できる。いかなるサービスレート再設定も与えられない場合、要求者が非アクティブになると、最高優先度の要求者エージェントは、非アクティブな要求者により残された超過サービスの全体を請求しても良い。このような場合には、「富める者はさらに富み」、低優先度のアクティブな要求者のサービスレートは同じままである。これらの要求者は、超過サービスの利益を享受しない。幾つかの方式では、超過帯域幅が要求者のうちの1又は複数の非アクティブと関連して識別されるとき、超過帯域幅は、残りのアクティブな要求者に均等に提供され得る。例えば、優先度は、各々のアクティブな要求者に非アクティブな要求者のサービスの等しい部分を受けさせるために、1又は複数の要求者による非アクティブの期間中に、調整することができる。しかしながら、このような方式は、相対的に低いサービスレートを有する要求者が、より高いサービスレートを割り当てられた要求者と、再分配帯域幅において同じ量的増加を与えられるので、彼らを裕福にさせる。
上記の説明のための例を提供することを目的として、単一の4MB/sリソースに対して競合し最初に以下のサービスレートを割り当てられる6個のSATAチャネル及び3個のPCIチャネルのような、9個の要求者(及び付随するコンポーネント及びエージェント)が設けられる。
STA[0].P.DMI=0.5/11BW=0.18MB/s
STA[1].P.DMI=0.5/11BW=0.18MB/s
STA[2].P.DMI=0.5/11BW=0.18MB/s
STA[3].P.DMI=0.5/11BW=0.18MB/s
STA[4].P.DMI=0.5/11BW=0.18MB/s
STA[5].P.DMI=0.5/11BW=0.18MB/s
PCIe1.P.DMI=4/11BW=1.45MB/s
PCIe2a.P.DMI=2/11BW=0.72MB/s
PCIe2b.P.DMI=2/11BW=0.72MB/s
1つの仮説では、SATA要求者の全部が脱落して、超過サービスの3/11BW(又は1.08MB/s)が残される。超過サービスを吸収するためにより高い又は最高優先度サービスを許容するシステムでは、(SATA要求者が非アクティブの間の)結果として生じる再分配は、次のように実現され得る。
PCIe1.P.DMI=7/11BW=2.55MB/s
PCIe2a.P.DMI=2/11BW=0.72MB/s
PCIe2b.P.DMI=2/11BW=0.72MB/s
SATA要求者が非アクティブであることから生じる超過サービスが3個の残りのPCIe要求者に均等な量(例えば1/11BW)で分配される例では、結果として生じる再分配は次のように実現され得る。
PCIe1.P.DMI=5/11BW=1.82MB/s(元のレートより25.4%増加)
PCIe2a.P.DMI=3/11BW=1.09MB/s(51.5%増加)
PCIe2b.P.DMI=3/11BW=1.09MB/s(51.5%増加)
非アクティブが超過帯域幅を作り出す前に要求者の個々のサービスレートに基づき及びそれに比例して超過帯域幅を再割り当てする向上したサービス再設定及び再分配アルゴリズムが提供され得る。例えば、前述の例における要求者の個々のサービスレートに基づき及びそれに比例して超過帯域幅を再割り当てすることは、以下のサービスレートを生じ得る。
PCIe1.P.DMI=5.5/11BW=2.0MB/s(38%増加)
PCIe2a.P.DMI=2.75/11BW=1.0MB/s(38%増加)
PCIe2b.P.DMI=2.75/11BW=1.0MB/s(38%増加)
一例では、相対的なサービスレートを要求側コンポーネントに割り当てられたときのように保持するサービスレート再分配は、上述の例におけるように、次式に従って全ての非アクティブ要求者の分子を(元のサービス割り当ての)共通の分母に再分配して1又は複数の何もしていない要求者の超過帯域幅を再分配することにより、得られる。
STA[0].P.DMI=0.5/11BW=0.18MB/s
STA[1].P.DMI=0.5/11BW=0.18MB/s
STA[2].P.DMI=0.5/11BW=0.18MB/s
STA[3].P.DMI=0.5/11BW=0.18MB/s
STA[4].P.DMI=0.5/11BW=0.18MB/s
STA[5].P.DMI=0.5/11BW=0.18MB/s
PCIe1.P.DMI=4/11BW=1.45MB/s
PCIe2a.P.DMI=2/11BW=0.72MB/s
PCIe2b.P.DMI=2/11BW=0.72MB/s
1つの仮説では、SATA要求者の全部が脱落して、超過サービスの3/11BW(又は1.08MB/s)が残される。超過サービスを吸収するためにより高い又は最高優先度サービスを許容するシステムでは、(SATA要求者が非アクティブの間の)結果として生じる再分配は、次のように実現され得る。
PCIe1.P.DMI=7/11BW=2.55MB/s
PCIe2a.P.DMI=2/11BW=0.72MB/s
PCIe2b.P.DMI=2/11BW=0.72MB/s
SATA要求者が非アクティブであることから生じる超過サービスが3個の残りのPCIe要求者に均等な量(例えば1/11BW)で分配される例では、結果として生じる再分配は次のように実現され得る。
PCIe1.P.DMI=5/11BW=1.82MB/s(元のレートより25.4%増加)
PCIe2a.P.DMI=3/11BW=1.09MB/s(51.5%増加)
PCIe2b.P.DMI=3/11BW=1.09MB/s(51.5%増加)
非アクティブが超過帯域幅を作り出す前に要求者の個々のサービスレートに基づき及びそれに比例して超過帯域幅を再割り当てする向上したサービス再設定及び再分配アルゴリズムが提供され得る。例えば、前述の例における要求者の個々のサービスレートに基づき及びそれに比例して超過帯域幅を再割り当てすることは、以下のサービスレートを生じ得る。
PCIe1.P.DMI=5.5/11BW=2.0MB/s(38%増加)
PCIe2a.P.DMI=2.75/11BW=1.0MB/s(38%増加)
PCIe2b.P.DMI=2.75/11BW=1.0MB/s(38%増加)
一例では、相対的なサービスレートを要求側コンポーネントに割り当てられたときのように保持するサービスレート再分配は、上述の例におけるように、次式に従って全ての非アクティブ要求者の分子を(元のサービス割り当ての)共通の分母に再分配して1又は複数の何もしていない要求者の超過帯域幅を再分配することにより、得られる。
先の例に戻り、9個の競合するチャネルの間で共有される11の共通サービスレート分母により、6個のチャネルへの割り当てに対応する分子(6*.05=3)が分母から減算されるとき(11−3=8)、結果として生じるサービスレートは以下のように計算できる。
PCIe1.P.DMI=4/8BW=5.5/11BW=2.0MB/s(38%増加)
PCIe2a.P.DMI=2/8BW=2.75/11BW=1.0MB/s(38%増加)
PCIe2b.P.DMI=2/8BW=2.75/11BW=1.0MB/s(38%増加)
ここで、結果として生じるサービスレート分配は、残りのアクティブな要求者の間のサービス比に正確に関連する。
PCIe1.P.DMI=4/8BW=5.5/11BW=2.0MB/s(38%増加)
PCIe2a.P.DMI=2/8BW=2.75/11BW=1.0MB/s(38%増加)
PCIe2b.P.DMI=2/8BW=2.75/11BW=1.0MB/s(38%増加)
ここで、結果として生じるサービスレート分配は、残りのアクティブな要求者の間のサービス比に正確に関連する。
別の要求者の帯域幅の再分配は、要求者が非アクティブであると決定されると、トリガされ得る。非アクティブは、種々の技術に従って決定できる。一例では、要求者の潜在能力又はクレジットカウントの閾量が設定され(又は要求者の「可能な飽和」)、要求者の非アクティブは、要求者のクレジットカウントが閾に当たることに基づき識別できる。幾つかの例では、個の閾は、天井として動作し、追加で、要求者への追加クレジットの割り当てを停止させる。幾つかの例では、閾時間期間は、要求者の非アクティブを識別するために設定できる。例えば、一例では、非アクティブ及び対応する要求者のクレジットの再分配は、クレジットカウントが潜在能力飽和に当たり、特定の所定の時間期間の間、このレベルに(又は幾つかの例ではこれより上に)維持されたとき、トリガされ得る。要求者の帯域幅の再分配をトリガすべきときを決定するために、他の因子も利用できる。さらに、潜在能力飽和レベル、タイムアウト値、及び他の閾は、個々の要求者に特化して定めることができ、基本コンポーネントの特性(例えば、バッファサイズ、性能特性又は履歴、等)に合わせられるだけでなく、特定の使用例に基づくこともできる。例えば、コンポーネントは、幾つかのアプリケーションの間に要求の間欠的な遅延を、しかし他のタスクの間には一貫した要求を有することが期待され得る。したがって、特定のコンポーネント、エージェント、又はより一般的には要求者について定められた閾は、種々の因子に基づくことができ、例えば、変化する使用例の場合には競合する要求者の数、より高い又はより低い優先度の要求者の存在、等のよな因子が変化するに従い動的に調整できる。
図6の例を参照すると、グラフ600は、3つの競合する要求者、つまりチャネル「C0」、「C1」、「C2」を示す。説明を容易にするために、図6の例は、簡略な例であり、チャネルの各々は同じ初期サービスレートを割り当てられている。現実の実装では、任意の種々の異なるサービスレートは、特定の時間に要求者に割り当てられるよう設定され得る。現実の例では、実際に、競合する要求者のより複雑な多数の組合せが、種々の異なるサービスレートと共に期待され得る。図6の例に戻ると、t0で、チャネル「C0」、「C1」、「C2」は、それぞれ曲線605、610、615により表すように、サービスの消費と、再びサービスを再開するためのクレジットの待機と、を交互に生じ得る。3個の要求者が時間t0からt1までにそれらに割り振られた帯域幅の全部を効率的に消費するとき、時間t0からt1に示すように、各チャネルは、同じ量のサービスを共有できる。しかしながら、時間t1で、チャネルC2は、減速し又は要求の送信を停止し始める。したがって、チャネルC2の要求は認められず、クレジットは使用されない。しかしながら、(例えば620で)チャネルに割り当てられたサービスレートを保証するのを支援するために、クレジットは継続してチャネルに割り当てられる。結果として、図6に示すように、(625で)チャネルC2のクレジットはt1からt2まで上昇する。それらは、一例では、潜在能力(又はクレジット)飽和レベル630に達するまで、上昇できる。さらに、アービトレータは、(例えば、チャネルC2による)未使用帯域幅又はサービスが浪費されないことを保証するためのロジックを含むことができる。このロジックは、優先度に基づき超過帯域幅の全部又は大部分を(例えば、最高優先度を有する残りのアクティブなチャネルに)利用可能にさせるよう指示し又はそうさせる。図6の例では、チャネルC0は、最高優先度チャネルであり、チャネルC2により残された空所を効率的に満たし、図6に示すように625の間にチャネルC2により一時的に失われた超過帯域幅の大部分を消費する。
上述のように、潜在能力飽和又は要求者の非アクティブの他の指標は、非アクティブな要求者の帯域幅の動的な再割り当て又は分配をトリガできる。例えば、時間t2で、チャネルC2のクレジットレベルが飽和レベル630に当たるので、チャネルC2は、少なくとも一時的に非アクティブであると決定され、チャネルC2に割り当てられた全体の帯域幅の一部は、残りのアクティブなチャネルC0及びC1に分配され、一方でチャネルC2は非アクティブのままである。この特定の例では、チャネルC2の帯域幅は、次式に従って再割り当てされる。
したがって、2つのアクティブな要求者のサービスレートを表す比の分母は、1(つまり、チャネルC2のサービスレートの分子)だけ減少され、635に示すように、チャネルC0及びC1の個々のサービスレートを1/2BWに調整し、非アクティブなチャネルC2の割り当てられたサービスレートを0まで一時的に降下させる。チャネルC0及びC1の間の再割り当てされたサービスレートにより、(例えば、C0に対して過度に獲得する)いかなる超過帯域幅も残らない。代わりに、t2乃至t4の間で、チャネルC0及びC1は、メモリ帯域幅のバランスのとれた消費を享受する。注目すべきことに、再割り当てにより、C0及びC1の両者は、限度640より下のクレジットバランスを有することを許され、C2の非アクティブにより効果的に限度を再調整する。
本例を続けると、要求者C2は再びアクティブになり、再び覚醒し、又は共有リソースの要求を再開しても良い。追加トリガは、要求者が再開したこと、及び帯域幅の元の割り当てが再開されるべきであること、を決定するために定めることができる。幾つかの例では、共有サービスの要求の送信は、再割り当てされたサービスレート状態(例えば、635)の終了、及びチャネルC2の非アクティブの前にサービスレートをそれらの状態(例えば620)に戻すこと、をトリガできる。時間t3乃至t4で(645)、チャネルC2の再アクティブ化及びチャネルの大きな(例えば飽和)クレジットカウントを識別することにより、チャネルC2は、(例えば、アービトレータを用いて)共有リソースへの単独アクセスを許可され、チャネルC2が他のチャネルC0及びC1に効果的に「追い付く」ことを可能にする。この期間中、チャネルC0及びC1による要求は、チャネルが平衡に達するまで、バッファリングされ得る。したがって、C0及びC1の潜在能力は、再び正になり(例えばt4)、始めに(例えば、620)割り当てられたリソースの共有を再開できる。したがって、チャネルC0、C1、C2は、それぞれ、アクティブなチャネルの数の変化、チャネルの使用例、又は他の事象が検出されるまで、1/3BWのサービスレートに戻され(例えば、650)、共有リソースの帯域幅の再設定又は一時的再割り当てを促す。
図7の簡略フローチャートを参照すると、共有システムリソースの非アクティブ要求者に応答したサービスの再割り当てに関連する例示的な技術が示される。一例では、サービスレートは、共有システムリソースへのアクセスを獲得しようとするオンチップのエージェント又は他のシステムコンポーネントのような複数の要求者の各々に割り当てられる(705)。サービスレートは、システムリソースの帯域幅全体の比として表される。比は、分子及び分母により構成され得る。システムリソースにアクセスしようとする競合する試みは、例えばシステムのアービトレータコンポーネントを用いて調停され得る(710)。調停は、割り当てられたサービスレートを保証し、各要求者の相対的優先度を共有リソースに対して実施するために、クレジットに基づく方式に従って行われ得る。さらに、ある時間期間の間、要求者のうちの1又は複数が非アクティブになることに応答して、サービスレートを再設定する機能が提供され得る。一例では、非アクティブ要求者は、例えば非アクティブ閾に基づき識別できる(715)。非アクティブ閾は、特に、要求者が非アクティブだった時間期間に、要求者に割り当てられたクレジットの潜在能力飽和に対応し得る。非アクティブを識別するステップ(715)は、非アクティブ要求者に割り当てられた帯域幅の部分の再割り当てをトリガできる(720)。再割り当て帯域幅は、依然としてアクティブな要求者に再分配できる。したがって、帯域幅は、アクティブ要求者の相対的なサービスレートに比例して再割り当てされる。帯域幅は、非アクティブ要求者のうちの1又は複数が再びアクティブになるまで、再割り当てされたままである。前の非アクティブ要求者の再アクティブ化が識別され(725)、非アクティブ化した要求者に始めに割り当てられた再割り当て帯域幅の部分は、再アクティブ化要求者に戻され(730)、要求者の再アクティブ化に適合するために、アクティブ要求者の各々のサービスレートを再び再調整させる。要求者の任意の組合せは、非アクティブになる可能性があり、要求者の分配された帯域幅の、残りのアクティブ要求者への再割り当てをトリガする(例えば720)。したがって、相対サービスレートは、始めに要求者に割り当てられたまま保持される。したがって、各々のアクティブ要求者のサービスレートは、他の要求者がアクティブと非アクティブとの間で行ったり来たりすると変動し、各々のアクティブ要求者の要求は、現在それらに割り当てられているサービスレートに従って共有リソースへのアクセスを許可される。
留意すべきことに、上述の装置、方法、及びシステムは、前述のような任意の電子装置又はシステムに実装されても良い。特に図のように、以下の例は、本願明細書に記載の本発明を用いる例示的なシステムを提供する。
以下のシステムはより詳細に記載されるので、上述の議論と異なる多数の相互接続が開示され、記載され、再び取り上げられる。また、直ちに明らかなように、上述の利点は、これらの相互接続、構成、又はアーキテクチャに適用されても良い。
図8を参照すると、本発明の一実施形態に従う第2のシステム800のブロック図が示される。図8に示すように、マルチプロセッサシステム800は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続850を介して結合される第1のプロセッサ870及び第2のプロセッサ880を有する。プロセッサ870及び880の各々は、プロセッサの何らかのバージョンであっても良い。一実施形態では、852及び854は、IntelのQPI(Quick Path Interconnect)アーキテクチャのようなシリアルのポイントツーポイントコヒーレント相互接続構成の一部である。結果として、本発明は、QPIアーキテクチャの中で実装されても良い。
2個のプロセッサ870、880だけを有して示されるが、本発明の範囲はこれに限定されないことが理解される。他の実施形態では1又は複数の追加プロセッサが、所与のプロセッサの中に存在しても良い。
プロセッサ870及び880は、それぞれ内蔵メモリコントローラユニット872及び882を有して示される。プロセッサ870は、そのバスコントローラユニットの部分として、ポイントツーポイント(P−P)インタフェース876及び878も有する。同様に、第2のプロセッサ880は、P−Pインタフェース886及び888を有する。プロセッサ870、880は、ポイントツーポイント(P−P)インタフェース回路878、888を用いて、P−Pインタフェース850を介して情報を交換できる。図8に示すように、IMC872及び882は、個々のプロセッサにローカルに取り付けられたメインメモリの部分であっても良い個々のメモリ、つまりメモリ832及びメモリ834にプロセッサを結合する。
プロセッサ870、880は、それぞれ、ポイントツーポイントインタフェース回路876、894、886、898を用いて個々のP−Pインタフェース852、854を介して、チップセット890と情報を交換する。チップセット890も、高性能グラフィック相互接続839と平行して、インタフェース回路892を介して高性能グラフィック回路838と情報を交換する。
共有キャッシュ(図示しない)は、プロセッサの中に含まれ又は両プロセッサの外部にあり、更にP−P相互接続を介してプロセッサと接続されても良い。したがって、両プロセッサのローカルキャッシュ情報は、プロセッサが低電力モードに置かれる場合、共有キャッシュに格納されても良い。
チップセット890は、インタフェース896を介して第1のバス816に結合されても良い。一実施形態では、第1のバス816は、PCI(Peripheral Component Interconnect)バス、又はPCI Expressバス若しくは別の第三世代I/O相互接続バスのようなバスであっても良いが、本発明の範囲はこれに限定されない。
図8に示すように、種々のI/O装置814は、第1のバス816を第2のバス820に結合するバスブリッジ818と一緒に、第1のバス816に結合される。一実施形態では、第2のバス820は、LPC(low pin count)バスを有する。一実施形態では、種々の装置は、例えばキーボード及び/又はマウス822、通信装置827、及び命令/コード及びデータ830を含む場合が多いディスクドライブ若しくは他の大容量記憶装置のような記憶ユニット828を含み、第2のバス820に結合される。さらに、オーディオI/O824は、第2のバス820に結合されると示される。留意すべきことに、含まれるコンポーネント及び相互接続アーキテクチャが変化する他のアーキテクチャが可能である。例えば、図8のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス又は他のそのようなアーキテクチャを実装しても良い。
図9を参照すると、本発明に従うSOC(system on-chip)設計の一実施形態が示される。特定の説明のための例として、SOC900はユーザ機器(UE)に含まれる。一実施形態では、UEは、ハンドヘルドフォン、スマートフォン、タブレット、超薄型ノードブック、広帯域アダプタを備えるノードブック、又は任意の他の同様の通信装置のような、通信するためにエンドユーザにより使用される任意の装置を表す。UEは、基地局又はノードに接続する場合が多く、場合によっては事実上GSM(登録商標)ネットワークの中の移動局(MS)に対応する。
ここで、SOC900は2個のコア、つまり906及び907を有する。上述の議論と同様に、コア906及び907は、Intel(登録商標)Architecture Core(商標)に基づくプロセッサ、AMD(Advanced Micro Devices, Inc.)プロセッサ、MIPSに基づくプロセッサ、ARMに基づくプロセッサ設計、又はそれらのカスタマ、及びそれらのライセンシー若しくは採用者のような、命令セットアーキテクチャに従っても良い。コア906及び907は、システム900の他の部分と通信するために、バスインタフェースユニット909と関連するキャッシュコントロール908及びL2キャッシュ911に結合される。相互接続910は、IOSF、AMBA又は上述の他の相互接続のような、場合によっては記載の本発明の1又は複数の態様を実施するオンチップ相互接続を有する。
インタフェース910は、SIM(Subscriber Identity Module)カードとインタフェースするSIM930、SOC900を初期化及びブートするためにコア906及び907による実行のためのブートコードを保持するブートROM935、外部メモリ(例えばDRAM960)とインタフェースするSDRAMコントローラ940、不揮発性メモリ(例えばフラッシュ965)とインタフェースするフラッシュコントローラ945、周辺機器とインタフェースする周辺機器コントローラ950(例えばシリアル周辺機器インタフェース)、入力(例えば、タッチ入力)を表示し受信するビデオコーデック920及びビデオインタフェース925、グラフィック関連計算を実行するGPU915、等のような他のコンポーネントに通信チャネルを提供する。これらのインタフェースのうちの任意のものは、本願明細書に記載の本発明の態様を組み込んでも良い。
さらに、システムは、Bluetooth(登録商標)モジュール970、3Gモデム975、GPS985、及びWiFi985のような通信のための周辺機器を示す。上述のように、UEは通信のために無線機を有する。その結果、これらの周辺通信モジュールは全て必要ではない。しかしながら、UEの特定の形式では、外部通信のための無線機が含まれるべきである。
本発明は限られた数の実施形態に関して記載されたが、当業者は、それらから多数の変更及び変形を理解する。添付の請求の範囲は、このような変更及び変形が本発明の真の精神及び範囲に包含することが意図される。
設計は、作成から製造のためのシミュレーションまで、種々の段階を通り得る。設計を表すデータは、多くの方法で設計を表現し得る。先ず、シミュレーションで有用なので、ハードウェアは、ハードウェア記述言語又は別の機能記述言語を用いて表現されても良い。さらに、ロジック及び/又はトランジスタゲートを有する回路レベルのモデルは、設計プロセスの幾つかの段階で生成されても良い。さらに、多くの設計は、特定の段階で、ハードウェアモデルの中の種々の素子の物理的配置を表すデータのレベルに達する。従来の半導体製造技術が用いられる場合、ハードウェアモデルを表すデータは、集積回路を製造するために用いられるマスクの異なるマスクレイヤにおける種々の特徴の存在又は不在を指定するデータであっても良い。設計の任意の表現で、データは、任意の形式の機械可読媒体に格納されても良い。メモリ、又はディスクのような磁気若しくは光記憶装置は、このような情報を送信するために変調された又は生成された光若しくは電波を介して送信される情報を格納するための機械可読媒体であっても良い。コード又は設計を示す又は伝達する電気搬送波が、電気信号のコピー、バッファリング、又は再送信が実行される程度に、送信されると、新しいコピーが生成される。したがって、通信プロバイダ又はネットワークプロバイダは、本発明の実施形態の技術を具現化する、搬送波に符号化された情報のようなものを、有形機械可読媒体に少なくとも一時的に格納しても良い。
ここで用いられるモジュールは、ハードウェア、ソフトウェア、及び/又はファームウェアの任意の組合せを表す。一例として、モジュールは、マイクロコントローラにより実行されるために適応されるコードを格納するために非一時的媒体に関連付けられるマイクロコントローラのようなハードウェアを有する。したがって、モジュールへの言及は、一実施形態では、非一時的媒体に保持されるコードを認識し及び/又は実行するよう特に構成されるハードウェアを表す。さらに、別の実施形態では、モジュールの使用は、所定の動作を実行するためにマイクロコントローラにより実行されるよう特に適応されるコードを含む非一時的媒体を表す。推測できるように、更に別の実施形態では、(本例では)用語モジュールは、マイクロコントローラ及び非一時的媒体の組合せを表し得る。多くの場合、別個に図示されたモジュール境界は、一般的に変化し、場合によっては重なり合う。例えば、第1及び第2のモジュールは、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せを共有しても良く、一方で、場合によっては、幾つかの独立したハードウェア、ソフトウェア、又はファームウェアが残されても良い。一実施形態では、用語ロジックの使用は、トランジスタ、レジスタ、又はプログラマブル論理素子のような他のハードウェアのようなハードウェアを含む。
語「するために(to)」又は「するよう構成される(configured to)」の使用は、一実施形態では、指定された又は決定されたタスクを実行するために、装置、ハードウェア、ロジック、又は要素を配置する、一緒に置く、製造する、販売を提供する、インポートする、及び/又は設計することを表す。本例では、動作していない装置又はその要素は、指定されたタスクを実行するために指定され、結合され、及び/又は相互接続される場合、該指定されたタスクを実行する「よう構成される」。純粋に説明のための例として、ロジックゲートは、動作中0又は1を供給しても良い。しかし、クロックにイネーブル信号を供給する「よう構成される」ロジックゲートは、1又は0を供給し得るあらゆる可能なロジックゲートを有しない。代わりに、ロジックゲートは、動作中に1又は0出力がクロックをイネーブルにする何らかの方法で結合されるものである。ここでも、留意すべきことに、用語「よう構成される」の使用は、動作を必要としないが、代わりに、装置、ハードウェア、及び/又は要素が動作しているときに、潜在状態で該装置、ハードウェア、及び/又は要素が特定のタスクを実行するよう指定される該装置、ハードウェア、及び/又は要素の潜在状態に焦点を当てる。
さらに、表現「できる(capable of/to)」及び又は「動作する(operable to)」の使用は、一実施形態では、装置、ロジック、ハードウェア、及び/又は要素の使用を特定の方法で可能にするように設計される特定の装置、ロジック、ハードウェア、及び/又は要素を表す。留意すべきことに、上述のように、「できる(capable to)」又は「動作する(operable to)」の使用は、一実施形態では、装置、ロジック、ハードウェア、及び/又は要素は動作していないが、装置の使用を特定の方法で可能にするように設計される、特定の装置、ロジック、ハードウェア、及び/又は要素の潜在状態を表す。
本願明細書で使用されるように、値は、数、状態、論理状態、又は2進論理状態の任意の知られている表現を含む。多くの場合、論理レベル、論理値、又は論理値の使用は、単に2進論理状態を表す1及び0としても表される。
例えば、1はハイ(high)論理レベルを表し、0はロー(low)論理レベルを表す。一実施形態では、トランジスタ又はフラッシュセルのような記憶セルは、単一の論理値又は複数の論理値を保持することができる。しかしながら、コンピュータシステムにおける値の他の表現が用いられている。例えば、10進数の10は、2進数で1010として、及び16進数の文字Aとしても表すことができる。したがって、値は、コンピュータシステムにおいて保持できる情報の任意の表現を有する。
さらに、状態は、値又は値の部分により表すことができる。一例として、論理1のような第1の値は、デフォルト又は初期状態を表しても良い。一方で、論理0のような第2の値は、非デフォルト状態を表しても良い。さらに、用語リセット及びセットは、一実施形態では、それぞれデフォルト及び更新された値又は状態を表す。例えば、デフォルト値は、潜在的にハイ論理値、つまりリセットを有し、一方で、更新された値は、潜在的にロー論理値、つまりセットを有する。留意すべきことに、値の任意の組合せは、任意の数の状態を表すために用いられても良い。
上述の方法、ハードウェア、ソフトウェア、ファームウェア、又はコードセットの実施形態は、処理要素により実行可能な機械アクセス可能な、機械可読、コンピュータアクセス可能な、又はコンピュータ可読媒体に格納された命令又はコードにより実装されても良い。非一時的機械アクセス可能な/読み取り可能な媒体は、コンピュータ又は電子システムのような機械により読み取り可能な形式で情報を提供する(つまり、格納する及び/又は送信する)任意のメカニズムを有する。例えば、非一時的機械アクセス可能な媒体は、SRAM(static RAM)又はDRAM(dynamic RAM)のようなRAM(random-access memory)、ROM、磁気又は光記憶媒体、フラッシュメモリ装置、電子記憶装置、光記憶装置、音響記憶装置、一時的(伝搬)信号(例えば、搬送波、赤外線信号、デジタル信号)から受信された情報を保持する他の形式の記憶装置、等を含む。これらは、非一時的媒体であって、該非一時的媒体から情報を受信し得る非一時的媒体と区別される。
本発明の実施形態を実行するロジックをプログラミングするために用いられる命令は、DRAM、キャッシュ、フラッシュメモリ、又は他の記憶装置のような、システムの中にあるメモリに格納されても良い。さらに、命令は、ネットワークを経由して、又は他のコンピュータ可読媒体を用いて、配信できる。したがって、機械可読媒体は、機械(例えばコンピュータ)により読み取り可能な形式で情報を格納する又は送信する任意のメカニズムを有しても良いが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク、CD−ROM(Read-Only Memory)、及び光磁気ディスク、ROM(Read-Only Memory)、RAM(Random Access Memory)、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、磁気又は光カード、フラッシュメモリ、又は電気、光、音響若しくは他の形式の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号、等)を介してインターネットを介した情報送信で用いられる有形機械可読記憶装置に限定されない。したがって、コンピュータ可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で電子命令又は情報を格納又は送信するために適する任意の種類の有形機械可読媒体を有する。
以下の例は、本願明細書に従う実施形態に関連する。1又は複数の実施形態は、共有システムリソースの3以上の要求者のうちの特定の要求者が非アクティブであると決定し、前記3以上の要求者の各々は、前記システムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを表し、割り当てられるべき前記特定の要求者の前記個々のサービスレートは、前記帯域幅の第1のシェアを表す第1のサービスレートを有し、前記帯域幅の前記第1のシェアを、前記3以上の要求者の中のアクティブ要求者の各々に再割り当てして、前記アクティブ要求者の相対サービスレートに従って前記帯域幅の前記第1の部分を分配し、前記特定の要求者が非アクティブのままである間に前記帯域幅の前記第1のシェアは再割り当てされる、装置、システム、機械可読記憶装置、機械可読媒体、及び方法を提供し得る。
少なくとも一例では、前記他の要求者の前記サービスレートの各々は、前記再割り当てに従って増大され、その間に前記特定の要求者は非アクティブのままである。
少なくとも一例では、前記帯域幅の前記第1のシェアの再割り当てに続く前記特定の要求者による要求は識別され、前記要求に基づき、前記帯域幅の前記第1のシェアは前記特定の要求者に戻される。
少なくとも一例では、前記特定の要求者は非アクティブであると決定する。前記の決定は、前記特定の要求者が所定の非アクティブ閾を満たすという決定に基づき得る。前記非アクティブ閾は、前記クレジットに基づく調停に従って前記特定の要求者に割り当てられる未使用クレジットの閾数を有し得る。非アクティブ閾は、未使用クレジットの閾数における又はそれを上回る時間量に基づく閾のような、時間に基づく閾を有し得る。前記非アクティブ閾は、要求者固有閾を有し、前記3以上の要求者のうちの少なくとも2つは、異なる非アクティブ閾を有する。
少なくとも一例では、クレジットに基づく要求の調停は、前記3以上の要求者により前記共有システムリソースに対して実行される。
少なくとも一例では、前記他の要求者は、前記決定された非アクティブの前に、前記特定の要求者に割り当てられた未使用帯域幅を消費し、前記決定されたアクティブの前の前記未使用帯域幅の前記消費は、前記他の要求者の前記相対サービスレートと不均衡である。
少なくとも一例では、前記共有システムリソースへのアクセスは、前記3以上の要求者の中の前記他の要求者に対する要求者の相対優先度に少なくとも部分的に基づく。
少なくとも一例では、前記3以上の要求者のうちの個々の1つに割り当てられる帯域幅の各々のシェアは、共通の分母に対する個々の分子として表され、非アクティブ要求者の帯域幅のシェアは、次式に従って残りのアクティブ要求者に再分配され、
ServiceRate=Num_i/(Denom-SUM(Num_inactive))、
ここで、ServiceRateは前記再分配の後の残りのアクティブ要求者のサービスレートであり、Num_iは、前記アクティブ要求者の帯域幅の対応するシェアの前記分子であり、Denomは分母であり、SUM(Num_inactive)は前記3以上の要求者の中の前記非アクティブ要求者の個々の分子の和である。
ServiceRate=Num_i/(Denom-SUM(Num_inactive))、
ここで、ServiceRateは前記再分配の後の残りのアクティブ要求者のサービスレートであり、Num_iは、前記アクティブ要求者の帯域幅の対応するシェアの前記分子であり、Denomは分母であり、SUM(Num_inactive)は前記3以上の要求者の中の前記非アクティブ要求者の個々の分子の和である。
少なくとも一例では、前記3以上の要求者は、少なくとも4の要求者を有し、及び少なくとも1つの他の要求者は、前記特定の要求者が非アクティブであると決定し及び前記帯域幅の前記第1のシェアを前記アクティブ要求者に再割り当てするとき、非アクティブである。
少なくとも一例では、前記3以上の要求者による前記共有システムリソースへのアクセスは調停される。
少なくとも一例では、調停は、前記3以上の要求者の各々について前記割り当てられたサービスレートを保証する。
少なくとも一例では、前記調停は、前記3以上の要求者に割り当てられた前記個々のサービスレートに少なくとも部分的に基づき、さらに、前記共有システムリソースに対する前記3以上の要求者の各々の相対優先度に少なくとも部分的に基づく。
少なくとも一例では、前記3以上の要求者のうちの少なくとも1つの前記サービスレートは、前記要求者による前記共有システムリソースへのアクセスに関連して、前記要求者により実行される特定のアクティビティに少なくとも部分的に基づく。
少なくとも一例では、前記調停ロジックは、さらに、前記3以上の要求者に前記帯域幅の前記個々のシェアを割り当てる。
1又は複数の実施形態は、共有システムリソース、第1の装置、及びアービトレータを有するシステムを提供し得る。アービトレータは、共有システムリソースの3以上の要求者のうちの特定の1つが非アクティブであると決定できる。3以上の要求者の各々は、それぞれシステムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを割り当てられ、特定の要求者の割り当てられたサービスレートは、帯域幅の第1のシェアを表す第1のサービスレートを含み、3以上の要求者のうちの少なくとも1つは第1の装置に対応し得る。アービトレータは、帯域幅の第1のシェアを、3以上の要求者の中のアクティブ要求者の各々に再割り当てでき、特定の要求者が非アクティブである間に、アクティブ要求者の相対サービスレートに従って帯域幅の第1の部分を分配する。
少なくとも一例では、共有システムリソースは、システムの相互接続の少なくとも一部を有する。
少なくとも一例では、共有システムリソースは、共有メモリリソースを有する。
少なくとも一例では、複数のコンポーネントを有する集積回路と、優先度クレジットアルゴリズムに基づき、前記複数のコンポーネントのうちの特定のコンポーネントに特定のサービスレートを割り当てる割り当てロジックと、前記特定のコンポーネントがサービスの要求を継続しないことに応答して、前記1又は複数のコンポーネントの相対サービスレートに基づき、前記特定のコンポーネント以外の前記複数のコンポーネントのうちの1又は複数に前記特定のサービスレートを再割り当てする再割り当てロジックと、を有する装置が提供される。
本願明細書を通じて「一実施形態」又は「ある実施形態」等のような表現は、本発明の実施形態と関連して記載された特定の特徴、構造、機能又は特性が実装の少なくとも1つの実施形態に含まれることを意味する。したがって、本願明細書を通じて種々の場所に現れる「一実施形態では」又は「ある」実施形態ではという表現は、必ずしも全て同じ実施形態を参照していない。さらに、特定の特徴、構造又は特性は、1又は複数の実施形態において、任意の適切な方法で結合されても良い。
上記において、詳細な説明は、特定の例示的な実施形態への参照と共に与えられる。しかしながら、添付の請求の範囲に記載された本発明の広範な精神及び範囲から逸脱することなく種々の変更を行うことができることが明らかである。したがって本明細書と添付図面は限定的ではなく例示的であると解釈すべきである。さらに、実施形態及び他の例となる言葉の前述の使用は、必ずしも、同じ実施形態又は同じ例を参照するのではなく、異なる及び別個の実施形態を参照し、場合によっては同じ実施形態を参照しても良い。
Claims (26)
- 共有システムリソースの3以上の要求者のうちの特定の要求者が非アクティブであると決定するサービスロジックであって、前記3以上の要求者の各々は、前記システムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを表し、割り当てられるべき前記特定の要求者の前記個々のサービスレートは、前記帯域幅の第1のシェアを表す第1のサービスレートを有する、サービスロジックと、
前記帯域幅の前記第1のシェアを、前記3以上の要求者の中のアクティブ要求者の各々に再割り当てして、前記アクティブ要求者の相対サービスレートに従って前記帯域幅の前記第1の部分を分配する割り当てロジックであって、前記特定の要求者が非アクティブのままである間に前記帯域幅の前記第1のシェアは再割り当てされる、割り当てロジックと、
を有する装置。 - 前記他の要求者の前記サービスレートの各々は、前記再割り当てに従って増大され、その間に前記特定の要求者は非アクティブのままである、請求項1に記載の装置。
- 前記ロジックは、さらに、
前記帯域幅の前記第1のシェアの再割り当てに続く前記特定の要求者による要求を識別し、
前記要求に基づき、前記帯域幅の前記第1のシェアを前記特定の要求者に戻す、
請求項1に記載の装置。 - 前記ロジックは、さらに、前記特定の要求者は所定の非アクティブ閾を満たすという決定に基づき、前記特定の要求者が非アクティブであると決定する、請求項1に記載の装置。
- 前記ロジックは、さらに、前記共有システムリソースに対する前記3以上の要求者による要求のクレジットに基づく調停を実行する、請求項4に記載の装置。
- 前記非アクティブ閾は、前記クレジットに基づく調停に従って前記特定の要求者に割り当てられる未使用クレジットの閾数を有する、請求項5に記載の装置。
- 前記非アクティブ閾は、未使用クレジットの前記閾数における又はそれより上の時間量に基づく時間に基づく閾を有する、請求項6に記載の装置。
- 前記非アクティブ閾は、時間に基づく閾を有する、請求項4に記載の装置。
- 前記非アクティブ閾は、要求者固有閾を有し、前記3以上の要求者のうちの少なくとも2つは、異なる非アクティブ閾を有する、請求項4に記載の装置。
- 前記他の要求者は、前記決定された非アクティブの前に、前記特定の要求者に割り当てられた未使用帯域幅を消費し、前記決定されたアクティブの前の前記未使用帯域幅の前記消費は、前記他の要求者の前記相対サービスレートと不均衡である、請求項1に記載の装置。
- 前記共有システムリソースへのアクセスは、前記3以上の要求者の中の前記他の要求者に対する要求者の相対優先度に少なくとも部分的に基づく、請求項1に記載の装置。
- 前記3以上の要求者のうちの個々の1つに割り当てられる帯域幅の各々のシェアは、共通の分母に対する個々の分子として表され、非アクティブ要求者の帯域幅のシェアは、次式に従って残りのアクティブ要求者に再分配され、
ServiceRate=Num_i/(Denom-SUM(Num_inactive))
ここで、ServiceRateは前記再分配の後の残りのアクティブ要求者のサービスレートであり、Num_iは、前記アクティブ要求者の帯域幅の対応するシェアの前記分子であり、Denomは分母であり、SUM(Num_inactive)は前記3以上の要求者の中の前記非アクティブ要求者の個々の分子の和である、
請求項1に記載の装置。 - 前記3以上の要求者は、少なくとも4の要求者を有し、及び少なくとも1つの他の要求者は、前記特定の要求者が非アクティブであると決定し及び前記帯域幅の前記第1のシェアを前記アクティブ要求者に再割り当てするとき、非アクティブである、請求項1に記載の装置。
- 前記3以上の要求者による前記共有システムリソースへのアクセスを調停する調停ロジック、を更に有する請求項1に記載の装置。
- 調停は、前記3以上の要求者の各々について前記割り当てられたサービスレートを保証する、請求項14に記載の装置。
- 前記調停は、前記3以上の要求者に割り当てられた前記個々のサービスレートに少なくとも部分的に基づき、さらに、前記共有システムリソースに対する前記3以上の要求者の各々の相対優先度に少なくとも部分的に基づく、請求項14に記載の装置。
- 前記3以上の要求者のうちの少なくとも1つの前記サービスレートは、前記要求者による前記共有システムリソースへのアクセスに関連して、前記要求者により実行される特定のアクティビティに少なくとも部分的に基づく、請求項1に記載の装置。
- 前記調停ロジックは、さらに、前記3以上の要求者に前記帯域幅の前記個々のシェアを割り当てる、請求項1に記載の装置。
- 3以上の要求者による特定の共有システムリソースへのアクセスを調停するステップであって、前記3以上の要求者の各々は、前記システムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを割り当てられる、ステップと、
前記システムリソースの要求を行うとき、共有システムリソースの前記要求者のうちの特定の1つが非アクティブであると決定するステップと、
前記特定の要求者に割り当てられた前記個々のサービスレートに対応する前記利用可能な帯域幅の前記シェアを、前記アクティブな要求者の相対サービスレートに従って、前記3以上の要求者の中の前記アクティブな要求者に再割り当てするステップと、
を有する方法。 - 前記3以上の要求者の前記帯域幅の各シェアは、共通の分母に対する個々の分子として表され、前記利用可能な帯域幅の前記シェアを再割り当てするステップは、前記アクティブな要求者の各々について、
前記アクティブな要求者の前記帯域幅の前記シェアの前記分子を識別し、
前記3以上の要求者の中の非アクティブな要求者の前記個々の分子を加算するステップと、
次式に従って前記帯域幅の割り当てられるシェアを決定するステップであって、
ServiceRate=Num_i/(Denom-SUM(Num_inactive))
Num_iは前記アクティブな要求者の前記個々の分子であり、Denomは前記分母であり、SUM(Num_inactive)は前記3以上の要求者の中の前記非アクティブな要求者の前記個々の分子の和である、ステップと、
を有する請求項19に記載の方法。 - 前記3以上の要求者の各々に前記個々のサービスレートを割り当てるステップであって、前記特定の共有リソースへのアクセスは、前記3以上の要求者の前記個々のサービスレートを保証するために調停される、ステップ、を更に有する請求項19に記載の方法。
- 前記特定の要求者の非アクティブ化を識別するステップと、
前記非アクティブ化の識別に基づき、始めに割り当てられた前記再割り当てされた帯域幅を前記特定の要求者に戻すステップと、
を更に有する請求項19に記載の方法。 - 共有システムリソースと、
第1の装置と、
アービトレータと、
を有し、前記アービトレータは、
前記共有システムリソースの3以上の要求者のうちの特定の要求者が非アクティブであると決定し、前記3以上の要求者の各々は、前記システムリソースの利用可能な帯域幅の対応するシェアを表す個々のサービスレートを割り当てられ、前記特定の要求者の前記割り当てられたサービスレートは、前記帯域幅の第1のシェアを表す第1のサービスレートを表し、前記3以上の要求者のうちの少なくとも1つは前記第1の装置に対応し、
前記帯域幅の前記第1のシェアを、前記3以上の要求者の中のアクティブ要求者の各々に再割り当てして、前記アクティブ要求者の相対サービスレートに従って前記帯域幅の前記第1の部分を分配し、前記特定の要求者が非アクティブのままである間に前記帯域幅の前記第1のシェアは再割り当てされる、
システム。 - 前記共有システムリソースは、前記システムの相互接続の少なくとも一部を有する、請求項23に記載のシステム。
- 前記共有システムリソースは、共有メモリリソースを有する、請求項23に記載のシステム。
- 複数のコンポーネントを有する集積回路と、
優先度クレジットアルゴリズムに基づき、前記複数のコンポーネントのうちの特定のコンポーネントに特定のサービスレートを割り当てる割り当てロジックと、
前記特定のコンポーネントがサービスの要求を継続しないことに応答して、前記1又は複数のコンポーネントの相対サービスレートに基づき、前記特定のコンポーネント以外の前記複数のコンポーネントのうちの1又は複数に前記特定のサービスレートを再割り当てする再割り当てロジックと、
を有する装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/048805 WO2014209407A1 (en) | 2013-06-29 | 2013-06-29 | Service rate redistribution for credit-based arbitration |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016521936A true JP2016521936A (ja) | 2016-07-25 |
Family
ID=52117034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016518310A Pending JP2016521936A (ja) | 2013-06-29 | 2013-06-29 | クレジットに基づく調停のためのサービスレート再分配 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150007189A1 (ja) |
EP (1) | EP3014827A4 (ja) |
JP (1) | JP2016521936A (ja) |
KR (1) | KR20160004365A (ja) |
CN (1) | CN105247825A (ja) |
WO (1) | WO2014209407A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10205666B2 (en) * | 2013-07-29 | 2019-02-12 | Ampere Computing Llc | End-to-end flow control in system on chip interconnects |
US20150199279A1 (en) * | 2014-01-14 | 2015-07-16 | Qualcomm Incorporated | Method and system for method for tracking transactions associated with a system memory management unit of a portable computing device |
US10649796B2 (en) * | 2014-06-27 | 2020-05-12 | Amazon Technologies, Inc. | Rolling resource credits for scheduling of virtual computer resources |
US20160284021A1 (en) * | 2015-03-27 | 2016-09-29 | Andrew Herdrich | Systems, Apparatuses, and Methods for Resource Bandwidth Enforcement |
EP3091700B1 (en) * | 2015-05-05 | 2018-03-21 | Mitsubishi Electric R&D Centre Europe B.V. | Method for allocating time-frequency resources for transmitting data packets over a frequency selective channel |
US10445271B2 (en) | 2016-01-04 | 2019-10-15 | Intel Corporation | Multi-core communication acceleration using hardware queue device |
US10237169B2 (en) * | 2016-04-01 | 2019-03-19 | Intel Corporation | Technologies for quality of service based throttling in fabric architectures |
US10437758B1 (en) | 2018-06-29 | 2019-10-08 | Apple Inc. | Memory request management system |
US11005775B2 (en) | 2018-10-08 | 2021-05-11 | EMC IP Holding Company LLC | Resource allocation using distributed segment processing credits |
US11201828B2 (en) | 2018-10-08 | 2021-12-14 | EMC IP Holding Company LLC | Stream allocation using stream credits |
US10630602B1 (en) | 2018-10-08 | 2020-04-21 | EMC IP Holding Company LLC | Resource allocation using restore credits |
US11429526B2 (en) * | 2018-10-15 | 2022-08-30 | Texas Instruments Incorporated | Credit aware central arbitration for multi-endpoint, multi-core system |
CN111416776A (zh) * | 2019-01-07 | 2020-07-14 | 华为技术有限公司 | 传输数据的方法和网络设备 |
US11836511B2 (en) * | 2019-12-30 | 2023-12-05 | Micron Technology, Inc. | Function arbitration and quality of service for memory commands |
US20210240655A1 (en) * | 2020-11-16 | 2021-08-05 | Intel Corporation | Source ordering in device interconnects |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004289780A (ja) * | 2002-08-08 | 2004-10-14 | Sumitomo Electric Ind Ltd | 光加入者線端局装置、光加入者線終端装置およびそれらによって用いられる帯域割当方法 |
WO2011092822A1 (ja) * | 2010-01-28 | 2011-08-04 | 三菱電機株式会社 | 帯域制御方法、通信システムおよび通信装置 |
US20120089762A1 (en) * | 2002-10-08 | 2012-04-12 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594698B1 (en) * | 1998-09-25 | 2003-07-15 | Ncr Corporation | Protocol for dynamic binding of shared resources |
US6829649B1 (en) * | 2000-11-10 | 2004-12-07 | International Business Machines Corporation | Method an congestion control system to allocate bandwidth of a link to dataflows |
US6826640B1 (en) * | 2003-06-04 | 2004-11-30 | Digi International Inc. | Bus bandwidth control system |
US9264384B1 (en) * | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US8407451B2 (en) * | 2007-02-06 | 2013-03-26 | International Business Machines Corporation | Method and apparatus for enabling resource allocation identification at the instruction level in a processor system |
EP2204954B1 (en) * | 2009-01-06 | 2017-12-27 | Alcatel Lucent | Optimised bandwidth utilisation in networks |
US8305889B2 (en) * | 2010-01-31 | 2012-11-06 | Hewlett-Packard Development Company, L.P. | Method for allocating a resource among consumers in proportion to configurable weights |
US9021156B2 (en) * | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8805926B2 (en) * | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
-
2013
- 2013-06-29 US US14/126,899 patent/US20150007189A1/en not_active Abandoned
- 2013-06-29 JP JP2016518310A patent/JP2016521936A/ja active Pending
- 2013-06-29 WO PCT/US2013/048805 patent/WO2014209407A1/en active Application Filing
- 2013-06-29 CN CN201380077068.3A patent/CN105247825A/zh active Pending
- 2013-06-29 KR KR1020157033854A patent/KR20160004365A/ko not_active Application Discontinuation
- 2013-06-29 EP EP13887844.2A patent/EP3014827A4/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004289780A (ja) * | 2002-08-08 | 2004-10-14 | Sumitomo Electric Ind Ltd | 光加入者線端局装置、光加入者線終端装置およびそれらによって用いられる帯域割当方法 |
US20120089762A1 (en) * | 2002-10-08 | 2012-04-12 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
WO2011092822A1 (ja) * | 2010-01-28 | 2011-08-04 | 三菱電機株式会社 | 帯域制御方法、通信システムおよび通信装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150007189A1 (en) | 2015-01-01 |
WO2014209407A1 (en) | 2014-12-31 |
EP3014827A4 (en) | 2017-01-11 |
EP3014827A1 (en) | 2016-05-04 |
CN105247825A (zh) | 2016-01-13 |
KR20160004365A (ko) | 2016-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016521936A (ja) | クレジットに基づく調停のためのサービスレート再分配 | |
CN109154924B (zh) | 多个上行链路端口设备 | |
JP6147840B2 (ja) | ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム | |
US9563579B2 (en) | Method, apparatus, system for representing, specifying and using deadlines | |
KR101814412B1 (ko) | 데이터 버퍼와 연관된 스누프 필터링의 제공 | |
US11321264B2 (en) | Flattening portal bridge | |
KR101775569B1 (ko) | 가상 재시도 큐 | |
US9954792B2 (en) | Shared flow control credits | |
CN107078971B (zh) | 组合保证吞吐量和尽力而为的片上网络 | |
CN107003962B (zh) | 保持计算系统中高速缓存一致性的方法、装置和计算系统 | |
JP6321194B2 (ja) | リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム | |
EP3238080A1 (en) | Guaranteed quality of service in system-on-a-chip uncore fabric | |
US9189296B2 (en) | Caching agent for deadlock prevention in a processor by allowing requests that do not deplete available coherence resources | |
US8954635B2 (en) | Buffer management using freelist buffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170418 |