というか昔からずっと昔から公開していたのだけれども、場所を全く公開していなかっただけで。
RISC-Vのベクトル拡張命令の仕様がかなり固まってきた。現在は0.7.1が公開されている。と思ったら以下のドキュメントをよく見てみると0.7.2に更新されているのでどっちが正しいのかな?まあいいや。
とりあえず、上記の資料を読みながらちまちまと日本語化してみた。これは別に営利目的などではなく、完全に自分の趣味で理解のために翻訳してみたかったところがある。しかし翻訳しながら「なんじゃこりゃ?」な部分はとりあえず飛ばして先に進んだりしたので、すべて理解をしているかというとそれは違う。また復習しないと。
しかも今見直すとなんだか「ベクトル要素」だったり「ベクトルエレメント」だったり表記ゆれが多々見られる。
- RISC-V “V” Extension 日本語版
RISC-V “V” Extension — riscv-v-spec-japanese ドキュメント
この資料の問題点は図が非常に少ないこと。ベクトル命令は図がないと理解が進まない。なんだか良く分からない部分が多々あった。 正式な文章になっている部分と、コメントとしてコラムのようなテンションで記述されている部分があり、コラムの方は「何を言っている?」みたいな言い回しがあって分かりにくい。これは単純に私の英語力の問題。
とりえあず、Google翻訳には頼らず、99%は自力で翻訳したが、おかげてTypoやら、誤訳やら多数あると思うのでこの辺は修正していくつもり。 というか、翻訳しても理解した気にならないので、実際にシミュレータでも作ってみないと本当の理解には届かない気がする。テストパタンってあったっけ。
翻訳版を見てもらうと分かるが、20章で構成されており、それぞれ以下のようになっており非常にボリュームがある。というか考えうるものをすべて突っ込んだな、という印象。
- イントロダクション
- 実装により決定される定数パラメータ
- ベクトル拡張のプログラミングモデル
- ベクトル要素のベクトルレジスタへの割り付け
- ベクトル命令フォーマット
- コンフィグレーション設定命令
- ベクトルロードストア命令
- ベクトルAMO操作(Zvamo)
- ベクトルメモリのアライメント制約
- ベクトルメモリのコンシステンシモデル
- ベクトル算術演算命令フォーマット
- ベクトル整数算術演算命令
- ベクトル固定小数点演算命令
- ベクトル浮動小数点命令
- ベクトルリダクション操作
- ベクトルマスク命令
- ベクトル並べ替え命令
- 例外処理
- 要素分割拡張命令 (‘Zvediv’)
- ベクトル命令一覧 付録A: ベクトルアセンブリコード例