RISC-Vに未来はあるか?先人たちが抱える設計上の課題
RISC-V: They should have known better
RISC-V: They should have known better
RISC-Vというオープンソースアーキテクチャが急速に普及していますが、一部の専門家からは「彼らはもっと賢明な選択ができたはずだ」という辛辣な意見も上がっています。既存のアーキテクチャが長年かけて学んできた教訓を、なぜRISC-Vは活かせなかったのか。技術的な負債や設計の思想について、議論が白熱しています。
要するに、またMIPSの二の舞ってことだね。結論は正直だし、どんなISAでも強引に役割に当てはめようとすればできるのは当然。昔はそれが理由でx86が大嫌いだったけど、歳をとった今はその「ゲーム」を尊重してるよ。
安価なマイコンコアには何が必要か?何に使われているか考えてみよう。典型的なユースケースは、MP3プレイヤー、SDカード、USBメモリのような、より大きなチップ内にあるハードウェアブロックを素早く接続・再設定すること。面倒な作業はカスタムIPがやってくれるわけで、CPUコアはたまにレジスタを叩いたり設定をいじったりするためだけに存在するんだ。
電子タバコ(Vape)を忘れてるぞ。
じゃあ……RISC-Vをかかし(比較対象)にして、こうした弱点のないコミュニティベースのRISC-6を作ればいいんじゃないか?定着しきってしまう前に今入っておくほうがいい。
RVA23ハードウェアはすでにあるよ(SpacemiT K3など)。
彼の主張は間違いなく理解できる。とはいえ、RISC-Vはx86よりうまくやっている部分が多いと今でも信じてるけどね……。アーキテクチャが最終的にこれを修正できることを強く願うよ。全てがクローズドになるよりは、オープンなISAが存在するほうがマシだと思う。
何度も説明を求められた後、次に聞かれたときにリンクを貼るだけで済むように、全てを1か所にまとめることにした。
ブックマークしたよ、自分も同じ情報を必要としていたから。これの何が最悪かって、彼らはもういい加減わかっているべきだったってこと。1980年なら未知の領域だったからこういうミスをしても仕方なかったけど、2020年にもなってこれじゃ、愚かか無知か、あるいはその両方だ。
RISC-Vは元々アカデミックな演習として始まった(権威あるグループによるものとはいえ)のは明らかで、それを産業界で使えるようにするために、こうしたハックを後付けしなきゃいけなかったんだよ。悲しいね。
Rivosのアクセラレータコアはどうなったんだろう?
この批判の多くは完全にその通りだと思う。でも、大げさすぎるとも感じるね。ISAは確かに重要だけど、こうした小さなミスはMシリーズクラスのチップを作る上で決定的な障害にはならないはず。まだ実現していない理由は単純に時間の問題だよ。それレベルの性能まで積み上げるには、本当に途方もない時間がかかるんだから。
ただ、オプションの多さに関してはやりすぎだとは思う。実際のCPU設計にはそこまで影響しないかもしれないけど、検証やポータブルなソフトウェアを書くのがものすごく面倒になる。プロファイルは確かに助けになるけど、それでもね……。
あ、あと他のどんなISAに対しても同じくらい説得力のあるダメ出しリストを作れる気がするよ。欠点があるからといって、それが悪いものだということにはならないしね。
最近RV64IMAエミュレータを書いたよ。Linuxを起動できる仮想CPUコアが必要だっただけで、RV64IMAが一番手っ取り早いと思ったんだ。それは概ね正しいと思う。
でもその後、市販のツールチェーンやバイナリと互換性を持たせたくて、ISAプロファイルをRV64GCまで拡張しなきゃいけなくなった。そこまで大きな手間じゃなかったけど、softfloatライブラリを組み込む必要があった。そこまでやってAlpine Linuxを起動できたよ。
さらにUbuntuを起動したくなって、それにはRVA23が必要だった。これはベクタ命令セットなんかを含めなきゃいけなくて、比較にならないほど大仕事だった。この時点でもう、aarch64をエミュレートした方がマシだったんじゃないかと思ってる。