【基本情報】CPUを効率よく動かすための工夫

コンピュータの頭脳であるCPU(中央処理装置)は、命令を一つずつ順番に処理していると、どうしても「待ち時間」が多くなってしまい非効率に。
この「待ち時間」を減らして、CPUをもっと効率よく動かすために使われるのが パイプライン処理 という技術。


■ パイプライン処理とは?

パイプライン処理とは、命令の実行を「分業」させて並行で進める仕組み。
たとえば、次のようなステップに分けて処理を行う。

  1. 命令の取り出し
  2. 命令の解読
  3. データの読み出し
  4. 命令の実行

これらを同時進行で行うことで、全体の処理効率をアップさせる。


■ ただし課題も……分岐ハザードとは?

パイプライン処理では、命令をどんどん「先読み」して進めていく。
ところが、プログラムの中には「もし○○なら、△△へ進む」といった「分岐命令」があったりする。

このとき、先読みした命令が間違った分岐の方向に進んでいたら……?
せっかく先読みしていた分が ムダ になってしまう。。。これが 分岐ハザード


■ 解決策:分岐予測と投機実行

分岐ハザードを避けるために使われるのが「分岐予測」と「投機実行」。

  • 分岐予測:次に進む道を予測しておく
  • 投機実行:予測に基づいて命令を先に実行しておく

予測が当たれば効率UP、外れたらやり直しに。
つまり、「予測の精度」がCPUの性能に大きく関わるのです。


■ スーパーパイプラインとは?

パイプラインの1ステージをさらに細かく分けて、より効率的に処理する方法を スーパーパイプライン という。
1つの命令を処理する流れをさらに分業化することで、より多くの命令をスムーズに処理できる。


■ スーパースカラとは?

パイプライン自体を 複数 持たせて、複数の命令を同時に処理する方法。
これにより、同じ時間内により多くの命令を処理できるようになる。


■ CISCとRISC

CPUの設計思想には、大きく分けて以下の2つがある。

  • CISC(Complex Instruction Set Computer)
     高機能な命令を用意し、1つの命令で複雑な処理ができるようにするアプローチ。
     → 命令数は多いが、1命令で済むことも多い。
  • RISC(Reduced Instruction Set Computer)
     シンプルな命令だけを用意し、それを高速でたくさん実行することで処理を進めるアプローチ。
     → 命令は単純だが、とにかく速い。

コメント

タイトルとURLをコピーしました