計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式 担当:三浦康之
基本的な命令 データ転送命令 2. 演算命令 3. プログラム制御命令 CPUのレジスタと、メモリ等との間のデータ転送を 行う。 行う。 2. 演算命令 四則演算、算術シフト、大小比較などの算術演算 や論理演算、論理シフト、ビット操作などの論理演 算を行う。 3. プログラム制御命令 プログラムの分岐やサブルーチンの呼び出しなどを行う。
1. データ転送命令 CPUのレジスタと、メモリ等との間のデータ転送を行う。
2. 演算命令 四則演算、算術シフト、大小比較などの算術演算 や論理演算、論理シフト、ビット操作などの論理演 算を行う。
3. プログラム制御命令 ※ 「無条件分岐」「条件付分岐」「サブルーチン呼び出し」「サブルーチンからの復帰」などがある。 分岐命令は、プログラムカウンタの値を書き換える。
3. プログラム制御命令(続き) ・ 「サブルーチン呼び出し」は、プログラムカウンタ(PC)の 元の値を保存してPCを書き換える。
命令の形式 以下の2つの部分により構成される オペコード 命令や操作の種類を示す オペランド 操作の対象を示す 操作の対象を示す 例: LD REG, (100) オペランド1 オペランド2 オペコード
命令の構成によるCPUの分類 CISC RISC VLIW 複数の処理を盛り込んだ復合命令により、さまざまな用途に応じた命令を実現する。命令長や命令当たりのクロック数が一定でなく、制御回路が複雑になるために動作周波数を上げにくい。 RISC 基本的に命令長が一定で、複数命令を同時実行しやすい。構造的に最大周波数をあげやすい反面、複雑な命令を組み合わせて実現するため、CISC以上に最大周波数を上げる必要がある。 VLIW
命令の構成によるCPUの分類2
命令の構成によるCPUの分類3 VLIW 複数の命令を128ビットなどの長い命令長の複合命令として構成する。
アドレス指定とアドレス修飾
即値アドレス指定方式 オペランドをデータそのものとして扱う。
直接アドレス指定 メモリのアドレスをオペランドとして直接指定する。
間接アドレス指定 オペランドで指定したアドレスに格納されている値を、さらにメモリアドレスとして使用する。 オペランドで指定したアドレスに格納されている値を、さらにメモリアドレスとして使用する。 メモリを経由するメモリ間接と、レジスタを経由するレジスタ間接がある。
指標指定方式 オペランドにレジスタの数値を指定し、 「レジスタの値+数値」を対象のアドレスにする。 配列などを扱うのに使う。
ベースアドレス指定 プログラムやデータが格納してある領域の先頭アドレス(ベースアドレス)からの変位分をオペランドで指定する。 プログラムやデータが格納してある領域の先頭アドレス(ベースアドレス)からの変位分をオペランドで指定する。 これは、プログラムなどをメモリの別の場所に置いても実行できるようにするための方式である。
相対アドレス指定 現在実行中の命令アドレスに、オペランドで指定した値を加えた値を対象のアドレスにする。