見出し画像

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を載せたり?そこまで実施する予定はないです。参考まで。

いいなと思ったら応援しよう!