
Photo by
shiny_mango917
RISC-Vについて今後の情報を纏めておく
概要
RSIC-Vの設計コード、RICS-Vで動作するOSなどについての、個人的纏めです。
他のRISC-V設計コード
ここが有名そうですよね
スーパースカラCPUの設計コードです。
スーパースカラのコードを見ると
assign tmpopcode1 = {mem[pc + 3], mem[pc + 2], mem[pc + 1], mem[pc ]};
assign tmpopcode2 = {mem[pc + 7], mem[pc + 6], mem[pc + 5], mem[pc + 4]};
つまり、NアドレスのメモリデータとN+1アドレスのメモリデータを同時にREADして処理する。ということですよね。別のレジスタへのWriteなどはNデータとN+1データを同時に処理しても矛盾しないのでOKなわけだ。
スーパースカラCPU3命令実行では3つのアドレスのデータを処理します。それだけのこと。だからスーパースカラプロセッサではレジスタで構成されたM1キャッシュメモリとコントローラーが必須なのでしょう。
(私は何もかも簡単に説明してしまうのが良くない)
他のコア
Githubのコードを見ましたが当然暗号化されたコードでした。
どうやってIFを削除するのだろうか?
3つぐらいの位相を変えたCLKを使うような説明でしたが。
Kasumiコア
読みやすい5段パイプラインRISCVコアです。
RISC-Vで動作する最小OS
1000行でOSを作ってみよう
本書では、小さなOSをゼロから少しずつ作っていきます。
OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。
RV32IMは特権モードが実装されていないので追加する必要がありますね。
ldはこう書くと、
所感
OSを載せたり?そこまで実施する予定はないです。参考まで。