−情報処理技術者キーワード−CPU高速化ここでは、CPUの高速化として、パイプライン、スーパースカラ(スパースケーラ)、VLIW、マルチプロセッサ、マルチコアについて解説します。ボトルネック)になり周波数を早くしても高速化につながらない。(動作周波数を早くすると、消費電力や熱などの問題もある。)このための対策として開発された技術がCPUと主記憶の間で高速に動作するキャッシュメモリである。CPUの動作は命令毎に「F(命令呼出し)」→「D(命令解読)」→「A(アドレス計算)」→「R(オペランド呼出し)」→「E(実行)」といったステージが順に行われる。E●パイプライン上の図を見ての通り、1つの命令を処理するのに5サイクルかかっているが、各ステージの処理は独立しているため効率的でないので、これを処理を行う部分を複数個用意し並列に処理に処理することで、見かけ上1サイクル毎に実行するようにしたものがパイプラインである。Eパイプラインは、次に処理する命令を先行して処理を解しているため、処理している命令が分岐(ジャンプ)命令だった場合、パイプラインの命令は使用することができなくなってしまう。※以前は、遅延分岐を採用したCPUが多かったが、最近は分岐予測を採用したCPUも増えてきている。(Pentium系では第6世代のPentiumProから分岐予測を採用している。Unit、ALU)を複数個にし、並列処理できるようにしたものがスーパースカラ(スーパスケーラ)である。Eスーパースカラはプログラムの連続した命令が並列処理可能であることを条件としているので、並列処理できない命令が連続していた場合は、上の図のような動作にはならない。ちなみに、スパースからでは連続した命令が並列処理可能かどうかは実行時にCPUが行っている。Word、超長命令語)CPUが命令を読み込むときに、複数の命令(群)を読み処理し、1回の実行で複数命令を並列処理するのが、VLIWである。EEEEVLIWでもスーパースカラと同じようにプログラムの連続した命令(命令群)が並列処理可能であることを条件としている。そのため、VLIWではプログラムの実行モジュールを作成するときにコンパイルが並列処理可能な命令を集め命令群を作り出すことを行っている。VLIWを採用したCPUには、Itanium(Intel)などがある。●マルチプロセッサ、マルチコアスーパースカラ技術などで高速化が実現されたが、さらなる高速化への要求と消費電力、発熱(放熱のためのファンの騒音)などの問題から、1つのボード(基板)上に複数のCPUを実装したマルチプロセッサや、1つのCPU内に複数のコアを封入したマルチコアの技術が考え出された。複数のジョブを同時に実行するマルチスレッドでは、命令の並列性などを考慮することなく、マルチプロセッサ(マルチコア)を容易に使用できるので、高速化や消費電力、熱などの問題を高レベルで解決できる技術として、普及が進んでいる。(シングルスレッドの処理をマルチプロセッサで実行させるにはスーパースカラやVLIWのように命令の並列性が問題になる。