RISCの例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/04 05:50 UTC 版)
「アドレッシングモード」の記事における「RISCの例」の解説
RISCアーキテクチャでは、メモリアクセスを減らすことが設計思想にあるため、ロード/ストア命令と命令フェッチ以外ではメモリにアクセスしないのが一般的である。また、ロード/ストア命令も一命令でのメモリアクセスが一回というのが原則であり、CISCに存在したメモリ間接モードは存在しない。以下では、PowerPCアーキテクチャでのアドレッシングモードを例として説明する。 命令アドレス指定 PC相対ディスプレースメント付き 現在の命令アドレス(PowerPCなど命令パイプラインを持つスーパースケーラプロセッサでは複数の命令が並行して処理されているためプログラムカウンタは仮想的に現在の命令を指しているものとして扱われる)に命令内で指定されたディスプレースメントを加算して実効アドレスを求める。ディスプレースメントは符号拡張されて加算される。 直接アドレス 実際にはPC相対ディスプレースメント付きでPCを考慮しないフラグが指定されている場合、この形式となる。ディスプレースメントで指定できる範囲は全アドレス空間をカバーできない。 レジスタ間接 レジスタの内容を実効アドレスとして使用する。ただし、アドレス指定に使えるレジスタは2本(リンクレジスタとカウントレジスタ)に限定されている。一般的なRISCアーキテクチャでは全ての汎用レジスタが使用できるのが普通であるが、PowerPC では条件付き分岐命令にして、さらにサブルーチンからの復帰命令を同じ命令にしているため、このような制限がある。 ロード/ストアアドレス指定 レジスタ間接を基本として、ディスプレースメントで修飾するか、インデックスレジスタで修飾する。この場合のベースレジスタは汎用レジスタであり、分岐命令のような制限はない。また、配列などの連続した領域へのアクセスを高速化するためにアップデート形式と呼ばれるものがあり、実効アドレスにアクセスした後でベースレジスタに実効アドレスを書きこむ命令もある。アドレス指定という意味ではこれだけの形式しかないが、PowerPCは、バイト順番を逆転させるロード/ストア命令(エンディアンを考慮しなければならない場合に便利)、汎用レジスタを連続で複数本ロード/ストアする命令(コンテキストスイッチなどに便利)、複数の汎用レジスタを連続したバイト列としてロード/ストアを行う命令がある。 一般命令のアドレッシングは、レジスタかイミディエイト値のみである。
※この「RISCの例」の解説は、「アドレッシングモード」の解説の一部です。
「RISCの例」を含む「アドレッシングモード」の記事については、「アドレッシングモード」の概要を参照ください。
- RISCの例のページへのリンク