たとえば、2.66 GHzデュアルコアCore i5が、デュアルコアでもある2.66 GHz Core 2 Duoよりも高速なのはなぜですか。
これは、より少ないクロックサイクルで情報を処理できる新しい命令によるものですか?他にどのようなアーキテクチャの変更が関係していますか?
この質問は頻繁に表示され、回答は通常同じです。この投稿は、この質問に対する明確で標準的な回答を提供することを目的としています。回答を編集して詳細を追加してください。
それは通常、新しい命令が原因ではありません。これは、同じ命令を実行するためにプロセッサが必要とする命令サイクルが少ないためです。これには多くの理由が考えられます。
キャッシュが大きいほど、メモリの待機に費やされる時間が減ります。
実行ユニットが多いほど、命令の操作開始を待機する時間が短くなります。
分岐予測の改善により、実際に実行する必要のない命令を投機的に実行するために費やされる時間が短縮されます。
実行ユニットの改善により、命令が完了するのを待つ時間が短縮されます。
パイプラインが短いほど、パイプラインの充填が速くなります。
等々。
絶対的な参照は、 Intel 64およびIA-32アーキテクチャソフトウェア開発者マニュアル です。アーキテクチャ間の変更の詳細を示しており、x86アーキテクチャを理解するための優れたリソースです。
結合されたボリューム1から3C(そのページの最初のダウンロードリンク)をダウンロードすることをお勧めします。第1巻第2.2章には、必要な情報があります。
コアからNehalem/Sandy Bridgeマイクロアーキテクチャーに至るまで、その章にリストされているいくつかの一般的な違いは次のとおりです。
完全なリストは、上記のリンク(第1巻、第2.2章)にあります。
以前に言ったすべてが本当ですが、ある程度まで。私の答えは短いです。主により大きく、より適切に構成されたキャッシュがあるため、新しい世代のプロセッサは「高速」です。これは、コンピュータのパフォーマンスの主な要因です。定量的な考慮事項については、「 Linux Magazine:HPCでパフォーマンスを促進するもの 」を参照してください。
つまり、ほとんどの一般的なアプリケーション(SPECコレクションなど)では、制限要因はメモリです。実際の持続計算が実行されている場合、キャッシュにはすべてデータが読み込まれますが、キャッシュミスが発生すると、CPU実行パイプが停止して待機します。問題は、CPUパイプラインがどれほど洗練されていても、より優れた命令であっても、命令レベルの並列処理がかなり制限されていることです(特別に高度に最適化されたプリフェッチの場合を除く)。重要な依存関係が見つかると、すべての並列処理は5-10 CPUクロックで終了します。一方、cahelineを立ち退かせてメインメモリから新しいものをロードするには、数百のCPUクロックが必要です。したがって、プロセッサは何もしないで待機します。この全体の概念はマルチコアにも当てはまります。
したがって、「より高速な」PCが必要な場合は、CPUに余裕のある最大のキャッシュを搭載したPCを購入してください。