コラムIntelとAMDと同じような内容ですが技術的にみてどうなのかと言う感じで、今現在の実際のCPUを交えて書いてみたいと思います。その前にまずCPUの能力はどのようにして決まるのかと言うことから始めたいと思います。
CPUは「Central Processing Unit」の略で、メモリに格納されたプログラムを取り出してその命令を解読し命令内容に従って処理したり、メモリやハードディスクなどのI/Oを制御する制御装置とプログラムがデータに対して四則演算や論理演算を行う演算装置から構成されています。(I/O制御装置に関しては最近はAPICという優秀な秘書がやってくれるので演算に集中しやすいです)
プログラムの命令が実行されるには命令の取り出し段階と実行段階の2つの動作を繰り返し、このことを命令サイクルと言います。基本的な命令サイクルの流れは
「1.命令の取り出し」->「2.命令の解読」->「3.計算と命令の実行」->「4.演算結果をメモリに書く」
の4つあり個々の過程をステージと言います。
基本的には1つの命令はこの4つのステージを経て終了し、1つ終わってから次の命令へと行くのですが、これでは莫大な命令を処理するのは大変です。そこで考え出されたのが複数の命令を各ステージにずらして処理していけば命令1つ分の時間は変わりませんが、複数ずらして処理していきますので少ない時間で沢山処理できることになります。前者のことを逐次制御方式を言い後者は先行制御方式と言います。現在のCPUはほぼすべて先行制御方式を採用しています。
| ・逐次制御方式 | ||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
命令1 |
F |
D |
E |
W |
||||
命令2 |
F |
D |
E |
W |
||||
| ・先行制御方式 | ||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
命令1 |
F |
D |
E |
W |
||||
命令2 |
F |
D |
E |
W |
||||
命令3 |
F |
D |
E |
W |
||||
命令4 |
F |
D |
E |
W |
||||
命令5 |
F |
D |
E |
W |
||||
| F:命令の取り出し D:命令の解読 E:命令の実行演算 W:演算結果をメモリに書く |
||||||||
逐次制御方式が2つの命令を実行している間に先行制御方式では5つの命令を実行しています。先行制御方式という言い方はとても日本語的ですが一般的にはこのことをパイプラインと言います。
▲このページのTopに戻る