マルチコアCPUは非同期調整をどのように実装しますか?


8

私はコンピュータサイエンスの出身で、非同期回路設計で使用するプロセス計算を勉強したいと考えています。

それで、非同期回路の現在の慣行を見回しています。クロック速度を上げることができないとマルチコアCPUアーキテクチャにつながると言う記事はたくさんあります。ただし、コア間の非同期調整がどのように達成されるかについては、実際には誰も述べていません。

現在のマルチコアCPUが非同期調整をどのように処理するかについて、以下の仮定を確認/修正してください。

  1. 各コアには個別のクロック信号があり、互いに同相である必要はありません。そうでなければ、クロック信号の分配の問題は本当に解決されないでしょうか?
  2. コアはプログラミングレベルでのみ調整します。つまり、一部のメモリ(RAMまたはレジスタ)でテストと設定を行います。ランデブー回路を使用したハンドシェイクプロトコルのような低レベルのものではありません。

1
大規模なシングルコアCPUには、電力削減のために使用される複数のクロックがあります。一部のクロックはゲートされ、一部は動的にスローダウンされます。別のコアを追加すると、もちろん複数のクロックがあります。より簡単なクロック分配は副作用ですが、複数のクロックがある理由ではありません。

2
異なる周波数間でクロックドメインをクロスする方法については、このペーパーをご覧ください。w2.cadence.com
whitepapers

1
(クロック信号の分布について:すべてのリーフノードがソースからの伝播時間が等しいバッファーツリーが解決策です。これをアルゴリズムで構築できます。簡単ではありませんが、機能します)
pjc50

1
バッファツリーの欠点はたくさんあります。それは、電力の大部分を消費し、使用可能な領域の10〜30%を消費する可能性があります。しかし、私たちのスタートアップが発見したように、非同期設計の主な問題は、それを効果的に使用するためにソフトウェアツールチェーン全体を変更する必要があることです。製造コストと故障のリスクがあるため、IC企業は驚くほど保守的です。
pjc50 2013年

1
@ pjc50 ISTRは、一部のグリッドレイアウト、メッセージパッシング指向のプロセッサ(おそらくTileraの?)がクロックを左から右に、下から上に「フロー」していたことを示しています。さまざまなグローバル非同期ローカル同期)。
ポールA.クレイトン

回答:


1

デジタル回路理論では、非同期回路とマルチコアプロセッサという2つの独立した(直交する)アイデアを組み合わせます。

非同期回路:複数のクロックがあり、クロックが非同期である(つまり、一定でなく予測不可能な位相関係がある)回路。

一部の回路は2つのクロックを使用する場合があります(たとえば)が、一方は他方の2による分周にすぎません。クロックの周波数は異なりますが、2つのクロック間に既知の位相関係があるため、これらの回路は非同期ではありません。

非同期クロックの少ないシングルコアCPUと、すべてのコアが同じクロックで実行されているマルチコアCPU(後者は単なる仮想CPUです-実際のマルチコアCPUはすべて、相互に複数のクロックで構成される多くのクロックを持っています)非同期クロックセット)。

非同期回路は、デジタル設計における主要なトピックです。上記の説明は基本的なものです。

マルチコアCPU:高性能を達成するために高度なハードウェアとソフトウェアを使用する、並列接続されたいくつかのマイクロプロセッサ(コア)。

通常の方法では、クロック/電力/実行/その他に関して、コアをできるだけ独立させます。これにより、システムの実際のニーズに合わせて、CPUアクティビティ(消費電力)を(実行時に)動的に調整できます。

あなたが探しているのは、非同期回路ではなく、マルチコアCPUについての説明であるという印象です。

このトピックは、答えに入れることができるものよりはるかに大きく、はるかに大きいです。

ただし、質問への回答は次のとおりです。

  1. (私の知る限り)異なるコアで使用されるクロックは、同じソース(複数の場合があります:クリスタル、VCOなど)を持っています。各コア(通常)には、相互に非同期のクロックセットはほとんどありません。各コアには専用のクロックゲーティングおよびスロットリングロジックがあり、コアごとに独立してクロックをオフまたはスローできます。繰り返しますが、コアの並列処理のアルゴリズム的な側面のみに関心がある場合は、クロックについては(今のところ)忘れてください。
  2. コアの並列処理の主な側面を示しました。複数のコアを効率的に並列実行するにはどうすればよいですか。このトピックは非常に大きく、ハードウェアとソフトウェアの両方のソリューションが含まれています。HWの観点から見ると、コアは共通メモリを変更し、制御ロジックとステータス信号をシーケンスロジックを使用して交換します。キャッシュの存在により、状況はかなり複雑になります。キャッシュから読み取り、次にコヒーレンシを読み取り、マルチコアシステムのキャッシュから読み取ることをお勧めします。

お役に立てれば。


CPUが異なる速度で実行する必要があるという事実は、CPUが非同期である必要があることを意味するものではありません。信号が変化しないことが保証されているときに、各クロックの周りにウィンドウがあることは非常に便利です。2つのモジュールのクロックレートが互いに倍数ではない場合でも、デバイスが両方を生成して、スイッチが近すぎないようにすると便利です。
スーパーキャット2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.