「コンピュータアーキテクチャ技術入門」読書会#5
2.2 プロセッサの基本構造
パイプラインプロセッサの構造を図で学んだ
- 命令の読み出し(IFサイクル)
- 命令の解釈(DEサイクル)
- オペランドの読み出し(OPサイクル)
- 演算の実行(EXサイクル)
- 演算結果の書き込み(WBサイクル)
これらのサイクルを実際に行うハードウェアについて学ぶ章でした。
フェッチユニット
- 次に実行する命令を取得するユニット
- 命令切り出しユニットが命令のバイト列から次に実行する命令1つを取得する
デコードユニット
- フェッチユニットから受け取った命令の実行を制御するユニット
- 資源予約表、レジスタ状態表を使って、命令に必要なI/Oユニット、レジスタが使用できる状態なのか確認して、問題なければ命令を実行パイプラインへ渡す
実行パイプライン
- デコードユニットから出力レジスタ番号、動作、入力レジスタ番号を受け取って命令の実行を行うユニット
- 動作の種類に応じて加減算ユニット、乗算ユニット、論理演算ユニット、ロード/ストアユニットに振り分けられる
ロード/ストアユニット
- メモリへのアクセスを司るユニット
- デコードユニットから受け取った入力レジスタ1、入力レジスタ2の値を加算器で計算し、対象のメモリアドレスを求める
- 対象のメモリアドレスのデータがキャッシュメモリにあれば、そちらを優先して使用する
条件分岐命令の処理
- レジスタ内にCondition codeと呼ばれる欄があり、条件判定する値を格納する
- 分岐ユニットで条件を判定し、分岐処理を行う
分岐ユニット
- 分岐条件、分岐先命令のアドレス、条件判定する値(CC欄)を受け取り、分岐処理を行う
- 条件判定に使用する値(CC欄)が確定するまで、それと条件判定が終了し次の命令が確定するまで、サイクル単位では処理を待ったり、キャンセルが発生したりする