pulpul 日本の試験

システムアーキテクト 概念書 · 組込み・コンピュータシステム

プロセッサの高速化と命令実行

プロセッサの高速化は、1命令あたりに必要なクロックサイクル数を減らすことと、クロック周期を短くすることの両面から進められる。CPU時間は命令数、CPI、クロック周期の積で求められ、この関係が性能比較の基本となる。命令の並列実行を進める方式と、命令の流れを先読みする方式が代表的な技法である。

原理・仕組み

スーパスカラは、互いに依存関係のない複数の命令を、プロセッサが動的に複数の実行器へ振り分けて並列に実行する方式である。 一つのプロセッサコアの中で複数の命令を同時に処理する点が特徴であり、複数のコアを搭載するマルチコアとは異なる。

VLIWは、コンパイラが同時実行可能と判断した複数の動作を一つの長い命令語にまとめ、プロセッサがそれを並列に実行する方式である。並列性の判断をコンパイル時に行う点が、ハードウェアが動的に判断するスーパスカラとの大きな違いである。

投機実行は、分岐条件が確定する前に分岐先を予測し、予測した経路の命令を先に実行する技法である。予測が外れた場合は、その経路での結果を破棄して正しい経路の命令を実行する。

ハーバードアーキテクチャは、命令の読取り用のバスとデータアクセス用のバスを分ける構成である。両者を分けると、命令の読取りとデータのアクセスを並行して行えるため、処理の待ち時間が減り、プログラムの実行時間を短縮しやすくなる。

主記憶からフェッチされた命令は、命令レジスタに保持されて命令デコーダへ渡される。 プログラムカウンタは次に実行する命令のアドレスを保持するレジスタであり、命令そのものは保持しない。

判断の基準や数値

性能比較は、CPU時間=命令数×CPI×クロック周期の式で行う。同じ命令セットで同じプログラムを実行する場合は命令数が等しいため、1命令あたりの時間であるCPI×クロック周期の大小で比べられる。 例えば、1命令あたり4nsのコンピュータと2nsのコンピュータでは、後者の処理時間は前者の半分となる。

平均CPIは、クロックサイクル数を命令数で割った値である。動作周波数が1.25GHzのCPUが1秒間に10億命令を実行するとき、1秒間のクロックサイクル数は12.5億であり、平均CPIは1.25となる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む