RISC-Vのベクトル命令を使ってアプリケーションを記述するのに、いろいろとドキュメントを見て回るのが面倒だと思っている。
まず、 - どのような命令があるのか調べる(公式ドキュメント) - 本当に自分の意図とあっているのか確認する(Spikeの実装をチェックする) - どういうintrinsic関数がそろっているのか調べる(RVV Intrinsic Documentをチェックする)
それぞれでドキュメント間を行ったり来たりするのが面倒なので、自分でこれらの情報をまとめたページを作って公開することにした。 まだ完全な状態ではないのだが、如何にページを公開している。
ポイントとしては、上記の3つの問題点を解決できるように対処した。
- 全命令を1つのページにまとめたことにより、PDFファイル内を検索して回る必要がなくなった。
- 命令の説明欄はまだ完全ではないので、ある程度あてをつけて検索する必要はあるが
- Spikeの実装に対するリンクを作成した。これで、命令の本来の動きをすぐに確認できるようになった。
- とはいえ、Spikeのモデルはdefineマクロなどを使ってかなり簡略的に書いてあるので、SAIL形式などで明確に定義してやる必要があると思っている。
- intrinsic関数の一覧を載せた。
- これが一番やりたかったことで、とにかくRVVのIntrinisc関数は量が多くPDFファイルも重くて検索が大変なので、各命令に関連づいたintrinsic関数群をその場に乗せておくことにした。
また、Wavedromを使って命令の機械語割り当てをかなりきれいに書くことができ、ページ全体としてはかなり満足の構成になっていると思う。
残っているのは、命令の定義をきちんとSAIL形式で記述することと、細かな間違いなどを修正していくことかな。
今回、Wavedromがかなりきれいに図を描いてくれることが分かったので、今まで管理していた以下の命令一覧ページも更新したくなってきた。