調停回路(電子機器)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

アービターは、共有リソースへのアクセスを割り当てる電子デバイスです。

バス調停回路

バスアービターは、マルチマスターバスシステムで使用されるデバイスであり、各バスサイクルでバスを制御できるバスマスターを決定します。最も一般的な種類のバスアービターは、システムバスシステムのメモリアービターです。

メモリアービターは、共有メモリシステムで使用されるデバイスであり、メモリサイクルごとに、どのCPUがその共有メモリにアクセスできるかを決定します。[1] [2] [3]

一部のアトミック命令は、他のCPUがアトミック読み取り-変更-書き込み命令 の「途中」でメモリを読み取れないようにするためにアービターに依存しています。

メモリアービターは通常、メモリコントローラー/ DMAコントローラーに統合されています

従来のPCIなどの一部のシステムには、「the」バスアービターとして指すことができる単一の集中型バスアービトレーションデバイスがあります。他のシステムは分散型バスアービトレーションを使用しており、すべてのデバイスが協力して次に進む人を決定します。 [4] [5]

メモリアービターに接続されているすべてのCPUのメモリアクセスサイクルが同期している場合、メモリアービターを同期アービターとして設計できます。それ以外の場合、メモリアービターは非同期アービターとして設計する必要があります。

非同期アービター

非同期回線では、非同期要求の中から共有リソースへのアクセス順序を選択するために、重要な形式のアービターが使用されます。その機能は、2つの操作が発生してはならないときに同時に発生しないようにすることです。たとえば、 コンピュータのメモリにアクセスする複数のCPUまたは他のデバイスがあり、複数のクロックがあるコンピュータでは、2つの非同期ソースからの要求がほぼ同時に着信する可能性があります。「ほぼ」は、フェムト秒未満の範囲で、時間的に非常に近い場合があります。次に、メモリアービターは、最初にサービスを提供する要求を決定する必要があります。残念ながら、これを一定の時間内に行うことはできません[Anderson1991]。[説明が必要]

IvanSutherlandJoEbergenは、記事「時計のないコンピューター」で、調停回路について次のように説明しています。

「アービターは交差点の交通官のようなもので、次に通過する車を決定します。リクエストが1つだけの場合、アービターは対応するアクションを即座に許可し、最初のアクションが完了するまで2番目のリクエストを遅らせます。アービターが2つのリクエストを受け取った場合一度に、どちらの要求を最初に許可するかを決定する必要があります。たとえば、2つのプロセッサがほぼ同時に共有メモリへのアクセスを要求すると、アービターは要求をシーケンスに入れ、一度に1つのプロセッサのみにアクセスを許可します。アービターは、衝突コースで交差点を通過する車が2台にならないようにすることで交通担当者が事故を防ぐのと同じように、一度に2つのアクションが進行しないことを保証します。」
「アービター回路は一度に複数のリクエストを許可することはありませんが、一定の制限時間内に常に決定に達するアービターを構築する方法はありません。現在のアービターは平均して非常に迅速に、通常は数秒以内に決定に達します。 100ピコ秒。[...]ただし、緊密な通話に直面した場合、回線に2倍の時間がかかる場合があり、ごくまれに、決定に必要な時間が通常の10倍になる場合があります。」[6]

非同期アービターと準安定性

アービターは関係を断ち切る。フリップフロップ回路のように、アービターには2つの選択肢に対応する2つの安定した状態があります。2つの要求が互いに数ピコ秒(現在はフェムト秒)以内にアービターに到着した場合、回路は安定状態の1つに到達してタイを解除する前に、準安定になる可能性があります。古典的なアービターは、準安定時に激しく振動せず、通常は追加の電力を使用することにより、準安定から可能な限り迅速に減衰するように特別に設計されています。安定状態に達しない確率は、入力が提供された後、時間とともに指数関数的に減少します。

この問題に対する信頼できる解決策は、1970年代半ばに発見されました。一定時間内に決定を下すアービターは不可能ですが、ハードケース(クローズコール)では少し時間がかかる場合もあります。アービターがまだ安定状態に落ち着いていないことを検出する多段同期回路を使用する必要があります。その後、アービターは安定した状態になるまで処理を遅らせます。理論的には、アービターが落ち着くまでに任意の長い時間がかかる場合がありますが(ブリダンの原理を参照)、実際には、ゲート遅延が数回以上かかることはめったにありません。回数。古典的な論文は、この問題を解決するための「3ステートフリップフロップ」の作成方法を説明する[Kinniment and Woods 1976]と、アービター設計の一般的な間違いに関するエンジニアへの警告である[Ginosar2003]です。

マルチプロセッサコンピュータはそれなしでは確実に動作しないため、この結果は実用上非常に重要です。最初のマルチプロセッサコンピュータは1960年代後半にさかのぼり、信頼できるアービターの開発に先立っています。各プロセッサに独立したクロックを備えた初期のマルチプロセッサの中には、アービターの競合状態に悩まされていたため、信頼性がありませんでした。今日、これはもはや問題ではありません。

同期アービター

アービターは、共有リソースへのアクセスを割り当てるために、同期コンテキストでも使用されます。ウェーブフロントアービターは、1つのタイプの大規模ネットワークスイッチに存在する同期アービターの例です

参照

  1. ^ マイケルフィンガーオフ。 「高位合成ブルーブック」2010.p。270.引用:「バスまたはメモリアービターは、さまざまなプロセスからの要求を処理し、誰がバス/メモリにアクセスできるかを決定します。」
  2. ^ Arten Esa、BryanMyers。 「DDR3メモリ用のアービターの設計」2013年。
  3. ^ カーニー、DA; Veldman、G. 「アイドルスキップラウンドロビンを使用したダイナミックIPコア用の同時マルチバンクメモリアービター」2003. DOI:10.1109/FPT.2003.1275789。
  4. ^ ティムダウニー。 「バス仲裁」
  5. ^ ShunYanCheung。 「バス仲裁」
  6. ^ サザランド、イワンE .; Ebergen、Jo(2002年8月)。「時計のないコンピューター」。サイエンティフィックアメリカン287(2):62–69。Bibcode2002SciAm.287b..62S土井10.1038/scientificamerican0802-62PMID12140955 _

外部リンク