大学生がBluespecでアウトオブオーダーRISC-V CPUをゼロから作り、xv6を起動させた
Building an Order RISC-V CPU from scratch
工学部4学期に退屈した筆者が、Ryzen 9の中身に憧れて着手したSpeculaは、Bluespec SystemVerilogで書かれた32ビットのアウトオブオーダー・投機実行RISC-Vプロセッサ。レジスタリネーミング、リオーダーバッファ、gshare分岐予測を備え、途中で教育用OSのxv6を動かすため特権モードやSv32仮想記憶、UART、PLIC、VirtIOまで実装。Artix-7 FPGAでの合成まで漕ぎ着けた記録だ。
Speculaは、私がこれまで独学で読んで理解しようとしてきたものとはまるで違い、Bluespecでの2つ目のプロジェクトでした……しかもBluespecをまだ学んでいる最中に。
- Joker_vD
一般的な参考として、こちら[0](PDF)に、単純なRISC ISA向けのアウトオブオーダー実装について、やや詳細な説明があります(つまり、この特定の実装が直面する問題をどう解決しているかを実際に論じています)。言うまでもなく、これは古典的な5段RISCパイプラインとはそれほど共通点がありません。
- Narishma
タイトルは「Out of Order RISC-V core from scratch - Specula」であるべきです。なぜ変更されたのか分かりません。
- OhMeadhbh
私はRISC-Vの投稿にはしばしば否定的な態度を取るのですが、これは本当に気に入りました。資料の提示が素晴らしいです。図が良く、テキストが読みやすく、テキストの下部に参考文献があります。私はもっと小さなCPUを非常に安価なプロセスノードで動かすことに注力してきましたが、これは素晴らしかったです。