市販のマイクロプロセッサはどのようにギガヘルツクロックでタイミングを満たしていますか?


8

比較的単純なFPGAデザイン(アルテラのCyclone IV用)を250 MHzクロックで駆動されるロジックのタイミングに適合させるのに問題があります。これにより、市販のマイクロプロセッサ(Intel Core i7など)が、1桁以上高いクロック周波数でタイミングをどのように満たすのか不思議に思います。

FPGAの250 MHzで苦労しているときに、市販のマイクロプロセッサはどのようにして3.8 GHzでタイミングを満たすことができますか?


8
fpgaとプロセッサはリンゴとオレンジです。fpgaは、相互接続された比較的大きなモジュール/セルから構築されています。fpgaのコンパイラーはソフトウェアコンパイラーよりも優れていません。つまり、パフォーマンスを向上させる余地はたくさんあります。信号は、時間のかかる大きな/遅いセルを介してルーティングされます。たとえば、プロセッサーはまさに必要なゲートであり、追加のルーティング(well jtag scanとbist)などはありません。コンパイラーと同じ問題がありますが、より優れた(高価な)チップコンパイラーがいくつかあります。
old_timer 2012

回答:


7

FPGA自体には実際には「ゲート」はありません。通常、ルックアップテーブル(LUT)があります。LUTは通常、SRAMを使用して実装されます。たとえば、Spartan 3 FPGAは16ビットSRAMを使用します。つまり、4つのアドレス入力が1つの出力信号を生成します。「プログラミング」は、SRAMに真理値表を表すビットパターンをロードすることで行われます。たとえば、2入力XORの場合、アドレス00 =出力0、アドレス01 =出力1、アドレス10 =出力1、アドレス11 =出力0。

つまり、FPGAには同じロジック機能を実行するために、実際には多くの余分な不要なゲートがあります。再プログラミングとラピッドプロトタイピングのためにFPGAが必要な場合、これは素晴らしいことです。実際、最初にFPGAにデザインを実装し、それをデバッグしてから、FPGAと同じことをしながら、より小さく、より高速で、消費電力が少ないASICに移行する人もいます。

最新のマイクロプロセッサもパイプライン化されています。たとえば、単純なFPGAプログラムでは、数回の加算とおそらく数回の乗算を伴う非常に大規模な計算と、比較が同じクロックサイクルで実行される場合があります。このすべての作業を1クロックサイクルで実行するには、クロックサイクルを長くする必要があります。パイプライン化された実装(これはFPGAに実装することが可能で、タイミングクロージャを達成するためによく使用されます)では、大きな計算がいくつかに分割され、各部分は1つのはるかに短いクロックサイクルで実行されます。計算にかかる時間はほぼ同じですが、最初のピースが計算され、最初の部分データが2番目のピースに移動した後、最初のピースがすぐに2番目のデータの処理を開始できるという利点があります。最初の計算はまだ完了するまでに多くのサイクルを要します。

つまり、簡単に言うと、CPUには特定のロジックがあり、FPGAには一般的なロジックがあります。FPGAには一般的なルーティングがあり、CPUには特定のルーティングがあります。FPGAはパイプライン化されている可能性がありますが、CPUは確実にパイプライン化されています。


6

dwlechのコメントを拡張。プロセッサーは銅線で直接接続されています。FPGAは、プログラム可能な接続を介して相互接続されます。また、プロセッサーは重要なものを隣同士に配置します。FPGAには、プログラミングを保持するSRAMのためのスペースも必要です。


3
インテルなどのサプライヤーのプロセッサーは、速度と電力のトレードオフが最先端のテクノロジーの最先端で行われていることに注意してください。また、ブライアンカールトンが指摘した特定の利点があっても、マルチギガヘルツプロセッサコアで「タイミングを満たす」ことは簡単なことではありません。
Michael Karas 2012

3
@Michael Karasが指摘していることにかかわらず、最新のFPGAは多くの場合、ファブのテクノロジーの最先端にあります。
Brian Carlton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.