JP2014514662A - 可変長アービトレーション - Google Patents

可変長アービトレーション Download PDF

Info

Publication number
JP2014514662A
JP2014514662A JP2014506518A JP2014506518A JP2014514662A JP 2014514662 A JP2014514662 A JP 2014514662A JP 2014506518 A JP2014506518 A JP 2014506518A JP 2014506518 A JP2014506518 A JP 2014506518A JP 2014514662 A JP2014514662 A JP 2014514662A
Authority
JP
Japan
Prior art keywords
request
time period
requests
logic
permission
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.)
Granted
Application number
JP2014506518A
Other languages
English (en)
Other versions
JP6041324B2 (ja
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 JP2014514662A publication Critical patent/JP2014514662A/ja
Application granted granted Critical
Publication of JP6041324B2 publication Critical patent/JP6041324B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K17/00Electronic switching or gating, i.e. not by contact-making and –breaking
    • H03K17/51Electronic switching or gating, i.e. not by contact-making and –breaking characterised by the components used
    • H03K17/56Electronic switching or gating, i.e. not by contact-making and –breaking characterised by the components used by the use, as active elements, of semiconductor devices
    • H03K17/60Electronic switching or gating, i.e. not by contact-making and –breaking characterised by the components used by the use, as active elements, of semiconductor devices the devices being bipolar transistors
    • H03K17/62Switching arrangements with several input- output-terminals, e.g. multiplexers, distributors

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

一実施形態では、方法は、複数のエンティティによって共有される共有リソースに対する複数のリクエストについて、複数のカテゴリを決定する。複数のエンティティのうちの1つのエンティティから共有リソースに対するリクエストを受信する。方法は、受信したリクエストについて、複数のカテゴリのうちの1つのカテゴリを判断する。受信したリクエストが第1カテゴリに属すると判断された場合には、方法は、受信したリクエストを、第1時間周期で調整結果を決定するように構成された第1アービトレーションスキームに送信する。受信したリクエストが第2カテゴリに属すると判断された場合には、方法は、受信したリクエストを第1時間周期とは異なる第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信する。
【選択図】図2

Description

[優先権情報]
本非仮出願は、2011年4月20日出願の米国仮出願61/477,445号"Variable Length Arbitration(可変長アービトレーション)"の優先権を主張するものであり、上記出願の内容は、参照により本明細書に組み込まれる。
本明細書に特に示されていない限り、本章において記載される方法は、本願特許請求の範囲に対する従来技術ではなく、この章に記載することによって従来技術と認めているわけではない。
コンピュータシステムは、メモリ、バスおよび通信インターフェースといった数多くの共有されるシステムリソースを含む。そして、数多くのエンティティ(例えば、ユーザおよびクライアント)が、このようなリソースを共有するようになってきている。異なるエンティティは、コンピュータシステムにおける共有リソースの使用に対して異なる要求を有する。例えば、コンピュータ処理ユニット(CPU)のようなエンティティは、命令をフェッチする場合にアクセスレイテンシに注目し、ダイレクトメモリアクセス(DMA)コントローラのような別のエンティティは、スループットに注目する。共有リソースの使用を効率的に管理し、コンピュータシステムにおける異なるエンティティの要求に最も良好に応えるようにするために、アービタ(arbiter:調整回路)が使用される。
ラウンドロビン(総当たり)、加重ラウンドロビン、最も最近使用されなかったもの(least recently used:LRU)、最も最近使用されたもの(most recently used:MRU)等、様々なアービトレーションアルゴリズムが開発されており、異なるシステムの要求に応えるべく、アービトレーションの性能および公平さが改善されてきた。しかしながら、システム速度が速くなり、アービトレーションに参加するエンティティの数が増加し、アービタがシステム設計要求に応えるのが難しくなってきている。例えば、64個のクライアントが1つのリソースを共有する場合、64ビットのリクエストとなる。アービトレーションを行うサイクルは通常固定されており、例えば、1クロックサイクル毎に行われる。しかしながら、クロック速度が大きい場合、単純なラウンドロビンアルゴリズムであっても、1周期でアービトレーションを完了させるのは難しい。
一実施形態では、方法は、複数のエンティティによって共有される共有リソースに対する複数のリクエストについて、複数のカテゴリを決定する。複数のエンティティのうちの1つのエンティティから共有リソースに対するリクエストを受信する。方法は、受信したリクエストについて、複数のカテゴリのうちの1つのカテゴリを判断する。受信したリクエストが第1カテゴリに属すると判断された場合には、方法は、受信したリクエストを、第1時間周期で調整結果を決定するように構成された第1アービトレーションスキームに送信する。受信したリクエストが第2カテゴリに属すると判断された場合には、方法は、受信したリクエストを第1時間周期とは異なる第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信する。
一実施形態では、第1時間周期は固定されており、第2時間周期は可変である。
一実施形態では、第1時間周期は可変であり、第2時間周期は可変であり、第1時間周期は、第2時間周期よりも短い。
一実施形態において、受信したリクエストが、第3カテゴリに属すると判断された場合には、方法は、受信したリクエストを、第1アービトレーションスキームに送信するべきか、または、第2アービトレーションスキームに送信するべきかを判断するべく、受信したリクエストに関連する因子を評価する段階を更に備える。
一実施形態では、装置は、複数のエンティティのうちの1つのエンティティから、共有リソースに対するリクエストを受信するロジックと、複数のエンティティによって共有される共有リソースについての複数のカテゴリのうちの1つのカテゴリを、受信されたリクエストに対して判断するロジックと、受信されたリクエストが第1カテゴリに属すると判断された場合には、受信されたリクエストを、第1時間周期で調整結果を決定するよう構成された第1アービトレーションスキームへと送信するロジックと、受信したリクエストが第2カテゴリに属すると判断された場合には、受信したリクエストを、第1時間周期とは異なる長さの第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信するロジックとを備える。
一実施形態において、システムは、共有リソースと、共有リソースへのアクセスを共有する複数のエンティティとを備える。
以下の詳細な説明および添付の図面により、本発明の本質及び利点の詳細な理解が提供される。
一実施形態に係るリソースを共有するシステムを単純化して示した図である。 一実施形態に係るアービタの単純化した例を示した図である。 一実施形態に係るリクエスト制御ブロックの詳細な例を示した図である。 一実施形態に係るレベル1アービトレーションの詳細な例を示した図である。 一実施形態に係る可変長アービトレーションを実行する方法を単純化して示したフローチャートである。
以下に、可変長アービトレーションシステムの技術について記載する。以下の記載では、説明の目的から、本発明の実施形態の完全な理解を提供するべく、数多くの例及び具体的な詳細事項が記載される。特許請求の範囲で規定される特定の実施形態は、これら例のみに記載される特徴の一部又は全て、若しくは、以下に記載されるその他の特徴との組み合わせを含んでもよく、また、以下に記載される特徴及び原理の改良及び均等物を含んでもよい。
図1には、一実施形態に係るリソースを共有する単純化されたシステム100が示されている。アービタ102は、可変クロックサイクルで、メモリ104のような共有リソース104に対してアービテーションを実行する。リソースを共有するエンティティ106には、CPU106−1、液晶ディスプレイ(LCD)コントローラ106−2、および、ダイレクトメモリアクセス(DMA)コントローラ106−3が含まれる。その他の共有リソース104およびエンティティ106も考えられる。また、共有リソース104がここではメモリ104と称されているが、その他の共有リソースも考えられる。
アービタ102は、可変長アービトレーション(variable length arbitration:VLA)を使用して、メモリ104へのアクセスをアービトレーション(調整)する。可変長アービトレーションとは、アービタ102が、例えば、エンティティ要求の現在の状態のような様々な因子に応じて可変のクロックサイクルでアービトレーションを実行することができることを意味する。以下に詳細に記載するように、アービタ102は、2つの異なるレベル(別の実施形態では、2つ以上のレベル)で調整を実行してもよい。一実施形態において、アービトレーションの第1レベルである"レベル0"およびアービトレーションの第2レベルである"レベル1"が提供される。レベル0アービトレーションは、レベル1アービトレーションが実行される周期数よりも少ない周期数で実行される。レベル0アービトレーションは、固定されていても可変であってもよく、レベル1アービトレーションは可変である。例えば、レベル0アービトレーションは、1周期で実行され、レベル1アービトレーションは、1サイクルまたは複数サイクル、例えば、2周期(2周期に限定されない)といった可変周期で実行される。レベル0アービトレーションまたはレベル1アービトレーションを提供することにより、可変長アービトレーションを提供する。
アービタ102は、リクエストを3つのカテゴリに分類する。第1カテゴリは、低いレイテンシおよび高い優先順位を要求するエンティティリクエストを含む。キャッシュラインリフィルのリクエストのようなCPUリクエストは、第1カテゴリに属するリクエストの典型的な例である。一実施形態において、第1カテゴリに属するリクエストは、レベル0リクエストにマッピングされる。
第2カテゴリは、可変優先順位および可変レイテンシ要求を有するエンティティリクエストを含む。例えば、リクエストに関連付けられた因子に基づいて、要求が低くなったり高くなったりする。第2カテゴリに属するリクエストは、現状に応じて、レベル0リクエストまたはレベル1リクエストにマッピングされてもよい。LCDコントローラ106−2からのリクエストは、第2カテゴリにマッピングされるリクエストの一例である。例えば、LCDコントローラ106−2に対してバッファされているリクエストがいくつ存在するかを示すディスプレイバッファステータスに基づいて、LCDコントローラ106−3からのリクエストの優先順位が変更されてもよい。
第3カテゴリは、DMAコントローラ106−3のような、コンピュータシステム100におけるその他のエンティティのリクエストを含む。このようなリクエストは、レベル1にマッピングされ、優先順位は高くないまたはレイテンシが低い。
図2には、一実施形態に係るアービタ102の単純化した例が示されている。アービタ102は、リクエスト制御ブロック202、レベル0アービトレーションリング204、レベル1アービトレーションリング206、および、グラント(許可)アービタ(Gnt Arb)208を備える。
リクエスト制御ブロック202は、レベル0アービトレーションリング204および/またはレベル1アービトレーションリング206にリクエストを送信する。リクエスト制御ブロック202は、現在のステータスおよび入力条件といった入力基準に基づいて、リクエストを送信してもよい。例えば、リクエスト制御ブロック202は、リクエストがどのカテゴリに属すか判断し、リクエストをレベル0アービトレーションリング204またはレベル1アービトレーションリング206に送信してもよい。例えば、カテゴリ0、カテゴリ1およびカテゴリ2の3つのカテゴリが提供される。カテゴリ0のリクエストは、レベル0アービトレーションリング204に送信され、カテゴリ2のリクエストは、レベル1アービトレーションリング206に送信される。カテゴリ1のリクエストは、レベル0アービトレーションリング204またはレベル1アービトレーションリング206に送信されてもよい。QoSおよび/または加重をカテゴリ1のリクエストに使用して、これらリクエストをレベル0アービトレーションリング204に送信すべきか、または、レベル1アービトレーションリング206に送信すべきかを決定してもよい。QoSは、優先順位およびレイテンシ要求のような、リクエストと関連付けられた因子に基づいてもよい。エンティティ106からの様々なリクエストについてのステータスは変化する場合がある。例えば、エンティティ106での状態が変化すると、優先順位またはレイテンシの要求は、重み付けに影響を与える変化となりうる。例えば、バッファが一杯になると、優先順位が高くなるといったように、リクエストに対する優先順位またはレイテンシ要求が変化する。
一実施形態において、レベル0アービトレーションリング204は、1クロックサイクルアービトレーションが行われるリクエストを受信する。例えば、レベル0アービトレーションリング204は、8個のリクエスト入力を受信する。レベル0アービトレーションリング204は、1クロックサイクルで実行することができる複数のアービトレーションアルゴリズムをサポートする。一実施形態において、リクエストおよび重み付け(weighting)が受信され、レベル0アービトレーションリング204は、重み付けに基づいて、どのリクエストに対してメモリ104へのアクセスを許可するか決定する。重み付けは、エンティティ106からの何れのリクエストが以前許可されたか(すなわち、エンティティ106から最近処理されていないリクエストの重み付けが高くなる)に基づいてもよい。
レベル1アービトレーションリング206は、リクエストを受信し、1クロックサイクルから2クロックサイクルといったように、可変長アービトレーション時間を使用する。アービトレーション時間は、現在のステータスおよび使用されるアービトレーションに依存してもよい。一実施形態では、レベル1アービトレーションリング206は、62個のリクエスト入力および1つの重み付けを受信する。重み付けは、メモリ104へのアクセスが過去に許可されたリクエストに関する情報であってもよい。レベル1アービトレーションリング206は、重み付けに基づいて、2つ(または2つ以上)のアービトレーションを行い、どのリクエストに対してメモリ104へのアクセスを許可するか決定する。
グラントアービタ208は、許可選択信号gnt_selに基づいて、最終的な許可出力を決定する。すなわち、8つのアービトレーショングループArb Group00からArb Group 07のうち、1つのアービトレーショングループのみが有効なリクエストを有している場合は、gnt_lvl1出力としてgnt_cyc1を選択し、それ以外の場合には、gnt_lvl1出力としてgnt_cyc2を選択する。
図3には、一実施形態に係るリクエスト制御ブロック202の詳細な例が示されている。リクエスト制御ブロック202は、n個のリクエストマッパ(req_mapper)302を含む。
リクエストマッパ302は、リクエストがカテゴリ0リクエストであるかを判断する。リクエストがカテゴリ0リクエストである場合、リクエストがレベル0アービトレーションリング204に送信される(req_out_lvl0[i])。さらに、重み付けW_lvl0[i]が送信される。リクエストマッパ302が、リクエストがカテゴリ2リクエストであると判断した場合、リクエストマッパ302は、リクエストをレベル1アービトレーションリング206に送信する(req_out_lvl1[i])。リクエストがカテゴリ1リクエストである場合、リクエストマッパ302は、例えば、サービス品質(QOS_in)および重み付け(weight[i])のようなリクエストに関連する因子を考慮して、選択すべきレベルを判断する。QoSは、リクエストに関連付けられた優先順位に基づいてもよい。重み付けは、様々な因子に基づいてもよく、例えば、以前にどのリクエストにアクセス許可が与えられたかに基づいてもよい。信号QOS_inがハイ(High)である場合、リクエストは、レベル0アービトレーションリング204に送信される。ハイでない場合、重み付けが閾値よりも高い場合には、リクエストがレベル0アービトレーションリング204に送信され、重み付けが閾値よりも低い場合には、レベル1アービトレーションリング206に送信される。重み付けは、以前に許可されたリクエストに基づいてもよい。リクエストマッパ302は、重み付けを更新および/または消去して(W_lvl0[i]およびW_lvll [i])、現在のステータスおよび許可信号(gnt)に基づいて信号(req_out_lvl0およびreq_out_lvl1)を出力する。
制御信号(ctrl[i])はシステムレジスタから出力される。制御信号は、リクエストイネーブル、リクエストの初期重み付け等、リクエストに対する制御情報を含む。
リクエストマッパ302のタイミングは一定であり、計算時間の全体的な複雑性に影響を与えることはない。
図4には、一実施形態に係るレベル1アービトレーションリング206の詳細な例が示されている。レベル1アービトレーションリング206が2層構造となっている個所にツリー構造が提供されている。その他の構造についても明らかである。レベル0アービトレーションリング204(図示せず)は、1つのアービトレーショングループ404であってもよい。
シフタ402は、バイトアラインされているアービトレーション開始点を判断する。例えば、シフタ402は、0から7ビットをシフトさせてもよい。シフトにより、様々なアービトレーショングループ404においてアービトレーションを開始させてもよい。
アービトレーショングループ404(arb_group0*)はそれぞれ、リクエストの一群(例えば、8個のリクエスト(req_sft[7:0]))および重み付け入力(W)を受信する。アービトレーショングループ404はそれぞれ、8個のリクエストの間の調整を行い、1つのリクエストを出力するべく選択する。
レベル1アービトレーションでは、複数のレベル0リクエスト間の調整を行うべく、アービトレーショングループ404のうちの1つが選択される。この場合、その他のアービトレーショングループは、アービテーションを行うべきリクエストを有していなくてもよい。一例では、アービトレーショングループ404−0は、8個のレベル0リクエストを受信し、これらの間の調整を行う。1つのリクエストが選択され、選択されたリクエストがロジック406を介して出力される。このリクエストが、グラントアービトレーションロジック208に転送される。グラントアービトレーションロジック208が選択信号を受信すると、リクエストが出力される。上記したプロセスが、1クロックサイクルで行われる。
レベル1アービトレーションでは、アービトレーショングループ404は、重み付け(w)を使用して8個のリクエスト間の調整を行い、調整の結果、許可を勝ち得たリクエストを出力する。アービトレーショングループ404はそれぞれ、許可を勝ち得たリクエストおよび重み付けを、第2レベルアービトレーショングループ(arb_group10)408へと出力してもよい。第2レベルアービトレーショングループ408は、受信した入力に対して第2アービトレーションを実行する。例えば、第2レベルアービトレーショングループ408は、8個のリクエスト入力および8個の対応する重み付け入力を受信し、グラントアービトレーションロジック208に出力するべき、許可を勝ち得るリクエストを決定する。グラントアービトレーションロジック208が選択信号を受信すると、アービトレーショングループ408から許可を勝ち得たリクエストが出力される。この場合、レベル1アービトレーションは、2クロックサイクルで行われる。
図5は、一実施形態に係る可変長アービトレーションを実行する方法を単純に示したフローチャート500である。段階502では、メモリ104に対する複数のリクエストについて、様々なカテゴリが決定される。メモリ104は、複数のエンティティ106によって共有される。
段階504では、アービタ102は、エンティティ106からメモリ104に対するリクエストを受信する。段階506では、アービタ102は、受信したリクエストに対するカテゴリを判断する。例えば、リクエストは、3つのカテゴリに属する可能性がある。
段階506において、アービタ102が、受信したリクエストが、カテゴリ0、カテゴリ1またはカテゴリ2のいずれに属するかを判断する。リクエストが、カテゴリ0に属する場合には、アービタ102は、受信したリクエストを、第1時間周期で調整結果(arbitration decision)を決定するように構成された第1アービトレーションスキームに送信する。例えば、アービタ102は、リクエストをレベル0アービトレーションリング204に送信する。リクエストがカテゴリ2に属する場合、アービタ102はリクエストを、第1時間周期とは異なる長さの第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信する。例えば、アービタ102は、リクエストをレベル1アービトレーションリング206に送信する。
リクエストがカテゴリ1に属する場合、アービタ102は、リクエストに関連する因子に基づいて、リクエストをカテゴリ0またはカテゴリ2に分類すべきかを判断する。例えば、アービタ102は、リクエストに対するQoSまたは重み付けを分析して、どちらのカテゴリにリクエストを分類すべきか判断する。アービタ102は、リクエストをカテゴリ0またはカテゴリ2に分類する。
上記のようにして、可変長アービトレーションが提供される。リクエストの分類に応じて、異なるアービトレーション長さを提供してもよい。これにより、リクエストの優先順位に基づいてアービトレーションの長さを変更することが可能になる。
本明細書で使用されている「1の(a、an、the)」という言葉は、文中に明確にそれが1つのみであると示されていない限り、複数を含むことを意味している。また、本明細書及び添付の特許請求の範囲で使用されている「〜の内に(in)」という言葉は、特に明記されていない限り、「〜の中に(in)」及び「〜上に(on)」という意味を含む。
上記の説明は、本発明の様々な実施形態を、本発明の側面をどのように実装するかの例と共に、例示したものである。上記の例および実施形態は、唯一の実施形態としてみなされるべきではなく、添付の特許請求の範囲によって規定される本発明の柔軟性及び利点を例示するために示されている。上記の開示および添付の特許請求の範囲に基づいて、その他の配置、実施形態、実装および均等物を、特許請求の範囲に規定される本発明の範囲内において採用可能である。

Claims (20)

  1. 複数のエンティティによって共有される共有リソースに対する複数のリクエストについて、複数のカテゴリを決定する段階と、
    前記複数のエンティティのうちの1つのエンティティからの前記共有リソースに対するリクエストを受信する段階と、
    前記受信したリクエストについて、前記複数のカテゴリのうちから1つのカテゴリを判断する段階と、
    前記受信したリクエストが第1カテゴリに属すると判断された場合には、前記受信したリクエストを、第1時間周期で調整結果を決定するよう構成された第1アービトレーションスキームへと送信する段階と、
    前記受信したリクエストが第2カテゴリに属すると判断された場合には、前記受信したリクエストを、前記第1時間周期とは異なる長さの第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信する段階とを備える、方法。
  2. 前記第1時間周期は固定されており、前記第2時間周期は可変である請求項1に記載の方法。
  3. 前記第1時間周期は可変であり、前記第2時間周期は可変であり、前記第1時間周期は、前記第2時間周期よりも短い請求項1に記載の方法。
  4. 前記第1時間周期は、前記第2時間周期よりも短い請求項1に記載の方法。
  5. 前記第1アービトレーションスキームは、
    前記受信したリクエストを含む一群のリクエストを受信する段階と、
    1つの許可を受けるリクエストを決定するべく、前記一群のリクエストの間で調整を行う段階とを有し、
    前記許可を受けるリクエストは、前記第1時間周期で決定される請求項1から4の何れか一項に記載の方法。
  6. 前記調整を行う段階は、
    少なくとも1つのアービタにおいて、前記一群のリクエストを受信する段階と、
    前記少なくとも1つのアービタにおいて、許可を受けるリクエストの候補を決定する段階と、
    前記許可を受けるリクエストの候補を前記許可を受けるリクエストとして供給する段階とを含む請求項5に記載の方法。
  7. 前記第2アービトレーションスキームは、
    前記受信したリクエストを含む一群のリクエストを受信する段階と、
    複数の許可を受けるリクエストの候補を決定するべく、前記第2時間周期における第1のクロックサイクルで前記一群のリクエスト間の調整を行う段階と、
    1つの許可を受けるリクエストを決定するべく、前記複数の許可を受けるリクエストの候補の間で調整を行う段階とを有し、
    前記許可を受けるリクエストは、前記第2時間周期における第2クロックサイクルで決定される請求項1から6の何れか一項に記載の方法。
  8. 前記一群のリクエストの間で調整を行う段階は、
    複数の第1レベルアービタにおいて、前記一群のリクエストの複数部分を受信する段階と、
    前記複数の第1レベルアービタそれぞれにおいて、許可を受けるリクエストの候補を決定するべく、前記一群のリクエストの複数部分の間で調整を行う段階とを含み、
    前記複数の許可を受けるリクエストの候補の間で調整を行う段階は、
    第2レベルアービタにおいて、前記複数の第1レベルアービタぞれぞれから、前記許可を受けるリクエストの候補を受信する段階と、
    前記第2レベルアービタにおいて、前記複数の許可を受けるリクエストの候補から前記許可を受けるリクエストを決定するべく、受信した前記複数の許可を受けるリクエストの候補の間で調整を行う段階とを含む、請求項7に記載の方法。
  9. 前記受信したリクエストが、第3カテゴリに属すると判断された場合には、前記方法は、
    前記受信したリクエストを、前記第1アービトレーションスキームに送信するべきか、または、前記第2アービトレーションスキームに送信するべきかを判断するべく、前記受信したリクエストに関連する因子を評価する段階を更に備える請求項1から8の何れか一項に記載の方法。
  10. 前記因子を評価する段階は、
    前記受信したリクエストに関する重み付けまたはステータスを使用して、前記受信したリクエストを、前記第1アービトレーションスキームに送信するべきか、または、前記第2アービトレーションスキームに送信するべきかを判断する段階を有する請求項9に記載の方法。
  11. 前記重み付けは、以前に許可を受けたリクエストに関する情報を含み、
    前記ステータスは、前記リクエストに関する優先順位またはレイテンシに関する請求項10に記載の方法。
  12. 複数のエンティティのうちの1つのエンティティから、共有リソースに対するリクエストを受信するロジックと、
    前記複数のエンティティによって共有される前記共有リソースについての複数のカテゴリのうちの1つのカテゴリを、前記受信されたリクエストに対して判断するロジックと、
    前記受信されたリクエストが第1カテゴリに属すると判断された場合には、前記受信されたリクエストを、第1時間周期で調整結果を決定するよう構成された第1アービトレーションスキームへと送信するロジックと、
    前記受信したリクエストが第2カテゴリに属すると判断された場合には、前記受信したリクエストを、前記第1時間周期とは異なる長さの第2時間周期で調整結果を決定するように構成された第2アービトレーションスキームに送信するロジックとを備える装置。
  13. 前記第1時間周期は固定されており、前記第2時間周期は可変である請求項12に記載の装置。
  14. 前記第1時間周期は可変であり、前記第2時間周期は可変であり、前記第1時間周期は、前記第2時間周期よりも短い請求項12に記載の装置。
  15. 前記第1時間周期は、前記第2時間周期よりも短い請求項13に記載の装置。
  16. 前記第1アービトレーションスキームは、
    前記受信されたリクエストを含む一群のリクエストを受信するロジックと、
    1つの許可を受けるリクエストを決定するべく、前記一群のリクエストの間で調整を行うロジックとを有し、
    前記許可を受けるリクエストは、前記第1時間周期で決定される請求項12から15の何れか一項に記載の装置。
  17. 前記調整を行うロジックは、
    少なくとも1つのアービタにおいて前記一群のリクエストを受信するロジックと、
    前記少なくとも1つのアービタにおいて、許可を受けるリクエストの候補を決定するロジックと、
    前記許可を受けるリクエストの候補を前記許可を受けるリクエストとして供給するロジックとを含む請求項16に記載の装置。
  18. 前記第2アービトレーションスキームは、
    前記受信したリクエストを含む一群のリクエストを受信するロジックと、
    複数の許可を受けるリクエストの候補を決定するべく、前記第2時間周期における第1のクロックサイクルで前記一群のリクエスト間の調整を行うロジックと、
    1つの許可を受けるリクエストを決定するべく、前記複数の許可を受けるリクエストの候補の間で調整を行うロジックとを有し、
    前記許可を受けるリクエストは、前記第2時間周期における第2クロックサイクルで決定される請求項12から17の何れか一項に記載の装置。
  19. 複数の第1レベルのアービタを更に備え、
    前記一群のリクエストの間で調整を行うロジックは、
    前記複数の第1レベルアービタにおいて、前記一群のリクエストの複数部分を受信するロジックと、
    前記複数の第1レベルアービタそれぞれにおいて、許可を受けるリクエストの候補を決定するべく、前記一群のリクエストの複数部分の間で調整を行うロジックとを含み、
    前記複数の許可を受けるリクエストの候補の間で調整を行うロジックは、
    第2レベルアービタにおいて、前記複数の第1レベルアービタそれぞれから、前記許可を受けるリクエストの候補を受信するロジックと、
    前記第2レベルアービタにおいて、前記複数の許可を受けるリクエストの候補から前記許可を受けるリクエストを決定するべく、前記複数の許可を受けるリクエストの候補の間で調整を行うロジックと含む、請求項18に記載の装置。
  20. 請求項12から19の何れか一項に記載の装置と、
    前記共有リソースと、
    前記共有リソースへのアクセスを共有する前記複数のエンティティとを備えるシステム。
JP2014506518A 2011-04-20 2012-04-18 可変長アービトレーション Expired - Fee Related JP6041324B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161477445P 2011-04-20 2011-04-20
US61/477,445 2011-04-20
PCT/US2012/034106 WO2012145416A1 (en) 2011-04-20 2012-04-18 Variable length arbitration

Publications (2)

Publication Number Publication Date
JP2014514662A true JP2014514662A (ja) 2014-06-19
JP6041324B2 JP6041324B2 (ja) 2016-12-07

Family

ID=47022148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014506518A Expired - Fee Related JP6041324B2 (ja) 2011-04-20 2012-04-18 可変長アービトレーション

Country Status (7)

Country Link
US (1) US9507742B2 (ja)
EP (1) EP2700014B1 (ja)
JP (1) JP6041324B2 (ja)
KR (1) KR101960870B1 (ja)
CN (1) CN103620568B (ja)
TW (1) TWI559228B (ja)
WO (1) WO2012145416A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268604B2 (en) 2015-07-09 2019-04-23 Oracle International Corporation Adaptive resource management in a pipelined arbiter
US11455097B2 (en) 2016-01-28 2022-09-27 Weka.IO Ltd. Resource monitoring in a distributed storage system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09269927A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp バスアクセス方法、バス、並びにバス接続システム
JP2000187639A (ja) * 1998-12-22 2000-07-04 Nec Eng Ltd バス調停装置
JP2000339269A (ja) * 1999-03-19 2000-12-08 Matsushita Electric Ind Co Ltd クロスバススイッチ装置
JP2003030134A (ja) * 2001-07-12 2003-01-31 Matsushita Electric Ind Co Ltd バスアービタ及びバスアービトレーション方法
JP2005316609A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2005316608A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2006127423A (ja) * 2004-11-01 2006-05-18 Matsushita Electric Ind Co Ltd バス制御装置、調停装置、並びに、その方法及びプログラム
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0543560B1 (en) 1991-11-19 1999-12-22 Sun Microsystems, Inc. Arbitrating multiprocessor accesses to shared resources
US5815023A (en) * 1997-03-20 1998-09-29 Sun Microsystems, Inc. Unbalanced multiplexer and arbiter combination
DE60024421T2 (de) * 2000-06-16 2006-08-03 Stmicroelectronics S.R.L., Agrate Brianza Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System
US7352741B2 (en) * 2002-02-21 2008-04-01 Sun Microsystems, Inc. Method and apparatus for speculative arbitration
CN1200344C (zh) * 2002-10-18 2005-05-04 威盛电子股份有限公司 具有并行仲裁机制的多重允许控制器及其方法
US7051135B2 (en) * 2002-11-22 2006-05-23 Ess Technology, Inc. Hierarchical bus arbitration
US7120714B2 (en) * 2003-05-27 2006-10-10 Intel Corporation High-speed starvation-free arbiter system, rotating-priority arbiter, and two stage arbitration method
US7062615B2 (en) * 2003-08-29 2006-06-13 Emulex Design & Manufacturing Corporation Multi-channel memory access arbitration method and system
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
FR2860896A1 (fr) * 2003-10-14 2005-04-15 St Microelectronics Sa Procede d'arbitrage de l'acces a une ressource partagee
US7761529B2 (en) 2004-06-30 2010-07-20 Intel Corporation Method, system, and program for managing memory requests by devices
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US7302510B2 (en) * 2005-09-29 2007-11-27 International Business Machines Corporation Fair hierarchical arbiter
US20070174529A1 (en) * 2005-12-29 2007-07-26 Intel Corporation Queue manager having a multi-level arbitrator
US20090037635A1 (en) 2006-03-17 2009-02-05 Shanghai Magima Digital Information Co., Ltd. Bus arbitration device
US7930456B1 (en) * 2006-12-23 2011-04-19 Emc Corporation Data packet arbitration system
US8024731B1 (en) * 2007-04-25 2011-09-20 Apple Inc. Assigning priorities to threads of execution
US7984202B2 (en) 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
US7680971B2 (en) * 2007-06-26 2010-03-16 International Business Machines Corporation Method and apparatus for granting processors access to a resource
JP5241384B2 (ja) * 2008-08-29 2013-07-17 ルネサスエレクトロニクス株式会社 分散共有メモリ型マルチプロセッサ及びデータ処理方法
CN101510181A (zh) * 2009-03-19 2009-08-19 北京中星微电子有限公司 一种总线仲裁方法和总线仲裁装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09269927A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp バスアクセス方法、バス、並びにバス接続システム
JP2000187639A (ja) * 1998-12-22 2000-07-04 Nec Eng Ltd バス調停装置
JP2000339269A (ja) * 1999-03-19 2000-12-08 Matsushita Electric Ind Co Ltd クロスバススイッチ装置
JP2003030134A (ja) * 2001-07-12 2003-01-31 Matsushita Electric Ind Co Ltd バスアービタ及びバスアービトレーション方法
JP2005316609A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2005316608A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
JP2006127423A (ja) * 2004-11-01 2006-05-18 Matsushita Electric Ind Co Ltd バス制御装置、調停装置、並びに、その方法及びプログラム
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム

Also Published As

Publication number Publication date
KR20140037841A (ko) 2014-03-27
EP2700014A1 (en) 2014-02-26
US9507742B2 (en) 2016-11-29
CN103620568B (zh) 2016-10-05
EP2700014A4 (en) 2014-10-01
EP2700014B1 (en) 2018-06-20
JP6041324B2 (ja) 2016-12-07
WO2012145416A1 (en) 2012-10-26
CN103620568A (zh) 2014-03-05
TW201250598A (en) 2012-12-16
TWI559228B (zh) 2016-11-21
US20120271976A1 (en) 2012-10-25
KR101960870B1 (ko) 2019-03-21

Similar Documents

Publication Publication Date Title
US7533206B2 (en) Resource management device
JP3898899B2 (ja) バスシステム
Ausavarungnirun et al. Staged memory scheduling: Achieving high performance and scalability in heterogeneous systems
US8452907B2 (en) Data processing apparatus and method for arbitrating access to a shared resource
JP5552569B2 (ja) アクセスレイテンシを低減するバスアービトレーション技法
JP2008234659A (ja) 通信チャネルを介して送られるメッセージ間の調停を行うデータ処理装置および方法
EP2625619B1 (en) Arbitrating stream transactions based on information related to the stream transaction(s)
US7664901B2 (en) Data processing apparatus and method for arbitrating access to a shared resource
EP3353663B1 (en) Providing memory management functionality using aggregated memory management units (mmus)
US8706940B2 (en) High fairness variable priority arbitration method
JP6041324B2 (ja) 可変長アービトレーション
US10289331B2 (en) Acceleration and dynamic allocation of random data bandwidth in multi-core processors
US10929322B2 (en) Prioritized arbitration using fixed priority arbiter
CN1258720C (zh) 基于专用时隙分配的存储器资源仲裁装置
CN104750640B (zh) 在多个通道之间仲裁以存取一资源的方法和装置
JP2007026022A (ja) バス調停装置及びバス調停方法
US11720404B2 (en) Systems and methods for arbitrating access to a shared resource
US20240118936A1 (en) Performance-enhanced hardware access scheduling
WO2021115326A1 (zh) 数据处理的方法、装置和电子设备、存储介质和程序产品
JPH05257873A (ja) 優先判定方法および優先判定回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160525

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161101

R150 Certificate of patent or registration of utility model

Ref document number: 6041324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees