IEEE Explorerにて、上記の論文が公開されていた。最近の命令拡張の動向についてあまりよく知らなかったので、せっかくなので読んでみることにした。 続き。
- Section I. Introduction
- Section II. RISC-V Application
- Section III. Progress of official RISC-V ISA extension specification
- Non-privileged ISA extension
- M拡張:整数乗除算命令セット拡張
- A拡張:アトミック命令セット拡張。Atomic Fetch & Memory Operation, Load-Reserved & Store Conditional
- F拡張:単精度浮動小数点命令と、ステータスレジスタ、浮動小数点レジスタ
- D拡張:倍精度浮動小数点命令
- Q拡張:4倍精度浮動小数点命令
- L拡張:10進数浮動小数点命令。現在ドラフト段階であり、RISC-V Internationalは未承認の状態
- C拡張:圧縮命令セット拡張
- Counter拡張:読み取り専用CSRレジスタによる、最大32個の64ビットカウンタ。CYCLE, TIME, INSTRETに加えて、プログラマブルイベントカウンタが定義されている。
- B拡張:ビット操作命令セット拡張。zba, zbb, zbc, zbsなどのサブ拡張から構成される。ビットカウント、シフト、ローテート、ビット挿入、ビット抽出、Permutationなど。
- J拡張:動的に変換される命令を含んでいる。Just In Time Compilationなどで使用される。動的チェック、ガベージコレクション、JITアクセラレーションなどをの機能をサポートする
- T拡張:トランザクションメモリ拡張。トランザクションメモリ操作をサポートするための命令を提供する。
- P拡張:Packed Single Instruction Multiple Data (Packed-SIMD)命令拡張。整数・固定小数点SIMD/DSP命令を提供する。
- V拡張:ベクトル拡張。現在産学両面での研究のホットスポットとなっている。
- Zcsr拡張:CSR命令セットの拡張。CSRをアトミックに読み書きするための命令を提供している。
- Zfencei拡張:命令フェッチ・フェンス拡張。FENCE.Iという命令のみを規定しており、命令メモリへの書き込みと、命令フェッチを明示的に同期させることができる。
- Zam拡張:Misaligned Atomic命令セット拡張。ミスアラインのアトミックメモリ操作をサポートするための拡張。
- Ztso拡張:トータルストアオーダリング拡張。Weak Memoryオーダリングとは異なり、RISC-V Total Store Ordering (RVTSO)メモリモデルを提供することにより、SPARCやx86で採用されているものと小津陽な、厳密な順序付けのルールを備えている。
- Privileged ISA extension
- ハイパーバイザー拡張:ゲストOSをType-1、Type-2、ハイパーバイザーの下で実行できるようにすること、および再帰的仮想化を提供することである。
- スーパーバイザーモード(S-mode)→ ハイパーバイザー拡張スーパーバイザーモード(HS-mode)
- 仮想スーパーバイザーモード(VS-mode)および仮想ユーザーモード(VU-mode)を導入する
- ハイパーバイザーはHSモードで、ゲストオペレーティングシステムはVSモードで、ユーザーアプリケーションはVU-モードで実行される
- 仮想メモリ拡張:
- RISC-Vはメモリ仮想化の実装を支援するために、Svnapot、Svpbmt、Svinvalといった仮想メモリ拡張を提供している。
- Svnapot拡張:スーパーバイザレベルISAのNAPOT(Naturally Aligned Power-of-Two)
- 仮想アドレスから物理アドレスへの連続変換を実現でき、変換範囲はベースページサイズより大きなNAPOT粒度でなければならない。
- Svpbmt拡張:スーパーバイザレベルISAのページベースメモリタイプ拡張で、キャッシュ可能性、べき乗、順序などの属性が異なる複数のメモリタイプを指定するものである。
- Svinval拡張は、fine-grained address-translation cache invalidation拡張である
- スーパーバイザーモードとハイパーバイザーモードのメモリフェンス命令を、より正確な無効化処理と順序付け処理に分割し、特定の高性能実装クラスでより効率的にバッチ処理またはパイプライン処理できるようにするものである。
- ハイパーバイザー拡張:ゲストOSをType-1、Type-2、ハイパーバイザーの下で実行できるようにすること、および再帰的仮想化を提供することである。
- Non-privileged ISA extension