FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

RISC-Vユーザレベル命令セットVer.2.1が公開

f:id:msyksphinz:20160605215109p:plain

RISC-Vのユーザレベル命令セットの改版Ver.2.1が公開された。

http://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-118.pdf

  • 64ビットよりも大きいデータを扱う命令において、RDフィールドが移動しないためのフォーマット変更
  • CSR命令を整数命令の章および浮動小数点の章に導入し、カウンタレジスタおよび浮動小数点システムレジスタを追加
  • SCALLとSBREAKはECALLとEBREAKに正式に命名変更(注: Priviledged Instructionではすでに変更済み)。
  • 浮動小数点におけるNaN処理のについての分類
  • 浮動小数点から整数への変換でオーバフローが発生したときの値の取り扱い方
  • LR/SC命令が成功失敗の分類。
  • RV32E命令(整数レジスタの本数を削減したもの)の提案
  • Calling Conversationの改定
  • ソフトフロートにおける緩いスタック操作の定義
  • C compressed extensionの改定

Ver2.1と2.0の違いを、ざっと比較しながら確認してみる。

ECALL, ERETの正式な掲載

ECALL, EBREAK命令はシステムレジスタ系の命令としては定義されていたが、今回初めて整数命令として掲載された。

f:id:msyksphinz:20160605223449p:plain

RV32E命令セット

あまり詳細は出ていなかったけれども、x0-x15の16本のレジスタを使用し、x16-x31を使用すると不正命令例外を発生させるらしい。

浮動小数点における非正規化数のサポート

正式にSubnormal(非正規化)数のサポートについて言及された。サブノーマル数についてはサポートする。

まだまだ細かいところはあるけれど、ざっと確認した限りではこんな感じ。