2021:その他の命令

 あると便利な命令。

対象がビット列で結果は整数で返す。
・POPC (Population count) 立っているビットの数を数える
・CLZ (Count Leading Zero) MSB側から続く0のビットの数を数える
・CTZ (Count trailing zero) LSB側から続く0のビットの数を数える
https://en.wikipedia.org/wiki/Find_first_set

十進補正命令 整数演算の後で補正を行うとBCD演算が可能になる。
https://en.wikipedia.org/wiki/Binary-coded_decimal

複合命令 PA-RISCにはCOMPARE AND CLEARやSHIFT ADDといった複数の動作を1つにした命令がある。このおかげもあってか同時期のSPARCよりもPA-RISCは高速だった印象がある。
https://keisanki.at.webry.info/201205/article_2.html
https://keisanki.at.webry.info/201205/article_3.html

SIMD命令
SIMD命令は汎用レジスタを分割し、それぞれについて同じ演算を行うことで並列化を行う。整数演算・浮動小数点演算に加えて分割したデータを入れ替えたりする命令群がある。

使われなくなった命令
・レジスタを連結して演算やロードストアを行う命令。64bitアーキ以降はこのような工夫をしなくとも大きなデータを扱えるため。
・遅延分岐命令 遅延分岐自体、新規のアーキテクチャでは採用されなくなった。
・アドレッシングモード。CISC系で多数あったアドレッシングモードはロードストアアーキテクチャではアドレス演算を汎用レジスタで行うことになった。
・浮動小数点演算の関数。古いコプロセッサでは三角関数や対数などは命令で持っていた。これらは数値演算コプロセッサ内のマイクロ命令で処理されていた。現在は主にソフトウェアで実現する。関数演算のための補助命令を持っている場合もある。

以上から考えた必要なもの:
・取捨選択
・構造に強く依存したものはいずれなくなる
・高性能化のために命令を融合したり分割したりすることがある

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント