命令セット・アセンブリ

昔のMIPSなどにあった分岐遅延スロット(分岐命令の直後の1命令は、分岐するかどうかに関係なく実行される決まり)について正しいものはどれか。

  1. A分岐予測の精度を100%にするための仕組みで、今のCPUにも欠かせない
  2. BRISC-Vも採用しており、分岐の後には必ずnopを入れる必要がある
  3. C当時のパイプラインの都合をISAに持ち込んだもので、後のCPUの設計では足かせになった
答えと解説を見る

正解:C. 当時のパイプラインの都合をISAに持ち込んだもので、後のCPUの設計では足かせになった

5段の単純なパイプラインでは、分岐の結果が分かる頃には次の命令がすでに取り込まれているので、それを必ず実行する決まりにして無駄をなくしたのが分岐遅延スロットです。しかし段数が深く、分岐予測や同時発行を行う後のCPUでは利点がなくなり、互換性のために特別な扱いを続ける負担だけが残りました。RISC-Vは、内部の作りに依存する決まりをISAに入れないよう、これを採用していません。

  • A. 分岐予測とは別のもので、今のCPUには不要です。
  • B. RISC-Vは分岐遅延スロットを採用していません。
  • C. 正しい。マイクロアーキテクチャの事情をISAに固定してしまった例です。
この分野を解く 分野ページへ

命令セット・アセンブリのほかの問題

  1. 64ビットのRV64Iでlw命令を実行すると、読み込んだ32ビットの値は64ビットのレジスタにどのように入るか。
  2. ABI(アプリケーションバイナリインターフェース)の説明として正しいものはどれか。
  3. C言語の関数ポインタを使った呼び出し「(*fp)(x)」は、RISC-Vでは一般にどの命令で行われるか。
  4. 同じ命令セットアーキテクチャ(ISA)を採用した2つのCPUについて正しいものはどれか。
  5. RISC-Vのようなロード・ストア・アーキテクチャの特徴として正しいものはどれか。