パイプライン処理
逐次制御方式ではない。複数の命令を並行して実行。
次々と命令を先読みして実行していると、先読みが無駄になる事がある。
このようなパイプライン処理の乱れをハザードという。
ハザードの種類
- 分岐命令に起因する制御(分岐)ハザード
- ハードウェアの競合に起因する構造ハザード
- 後継の命令で用いるデータが、他の命令の結果待ちになるデータハザード
分岐予測と投機実行
この分岐が実行されるのか、次の命令はどれか予測することで無駄な待ち時間を生じさせないようにすることを分岐予測という。その予測に基づいて後々無駄になるかもしれないが、多分これだから先にやっておこうという分岐の命令を実行開始する手法が投機実行である。
スーパーパイプライン
各ステージの中身をさらに細かくステージを分類することで、パイプライン処理の効率アップを図る
スーパースカラ
パイプライン処理を行う回路を複数持たせることで、全く同時に複数の命令を実行できるようにしたもの
VLIW
very long instruction world
ソフトウェア処理に重点を置いた高速化手法がVLIWである。
同時に実行可能な複数の動作をまとめて一つの命令にすることで、複数の命令を同時に実行させる手法
コンパイル時に一つの命令語にまとめる。
規定の長さにまとまらない場合はNOP命令を入れる→効率は落ちる
CISCとRISC
CPUには高度な機能を持つCISCと単純な命令のみで構成するRISCという2つのアーキテクチャという。
CISC
complex instruction set computerの略
CPUに高機能な命令を持たせることによってひとつの命令で複雑な処理を実現するアーキテクチャ
命令の実行速度は遅い
命令の長さや実行速度はバラバラ
命令の追加や変更が容易
便利な命令が揃っているので機械語のプログラム作成がラク
回路そのものは簡単にして、マイクロプログラムで実装するイメージ
RISC
reduced instruction set computerの略
CPU内部に単純な命令しか持たない代わりに、それらをハードウェアのみで実装してひとつの命令を高速に処理するアーキテクチャ
命令の追加や変更は難しい
手作業による機械語のプログラム作成は困難
命令の長さや実行速度がほとんど等しい
パイプライン処理の実行速度がめちゃんこ早くなる