2

BLTこの命令が MIPS ISA の一部ではない理由をお聞きしたいと思います。代わりに、実際にはアセンブリ プログラマ向けの疑似命令にしています。ハードウェア実装の観点からは、(MIPS ISA の一部である)BLTとの違いを認識できませんでした。BLTZ

ところで、本「コンピュータの組織と設計」には次のように書かれています。

「機器」の単純さに関するフォン・ノイマンの警告に注意して、MIPS アーキテクチャには分岐が含まれていません。これは、クロック サイクル時間が長くなるか、命令ごとに余分なクロック サイクルがかかるため、複雑すぎるためです。2 つの高速な命令は次のとおりです。より有用。

しかし、なぜそれらが起こるのか、私にはまだわかりません。

4

1 に答える 1

5

ゼロと比較する方がはるかに簡単です

ゼロ未満は実際には符号ビット チェックにすぎないため、未満は実際には

  • 減算してから、結果の符号ビットに基づいてジャンプする、または
  • 入力値のバイナリ表現の辞書式比較

どちらの方法も、単一のビット チェックよりもはるかに複雑であるため、BLTZはるかに高速です。同様に、>= 01 つの符号ビット チェックのみが必要です。<= 0別の> 0ゼロチェックが必要ですが、それはかなり簡単です。

実際、1 つの命令で直接 2 つの値のジャンプと比較をサポートするアーキテクチャは一般的ではありませんが、ほとんどの場合、0 に関連する値に基づいてジャンプします。x86 のような CISC アーキテクチャでさえ、ユーザーは比較してから比較する必要があります。ジャンプ

于 2013-11-12T08:30:35.373 に答える