This repository has been archived by the owner on Jul 6, 2023. It is now read-only.
Releases: TonyCrane/CraneCPU
Releases · TonyCrane/CraneCPU
Final RV64 CPU with MMU and kernel
- 64 位 RISC-V 五级流水线 CPU
- 支持 RV64IZicsr 指令集的全部指令(fence ebreak wfi 除外)
- 使用预测不跳转的分支冒险处理方式
- 包含 Supervisor 和 User 两个特权级,支持异常处理、特权态切换
- CSR 实现了 sstatus, sepc, stvec, scause, sscratch, satp
- 使用了 MMU,支持 RISC-V Bare 和 Sv39 模式虚拟内存管理
- 实现了 Sv39 模式规定的 4KB、2MB、1GB 三种分页粒度页表的查询
- 冯诺依曼架构存储,目前采用 2MB 物理地址空间
- 支持串口输出,MMIO 写入地址为 0x10000000
- 最终 CPU 通过了和 qemu 对比的简易 difftest 测试
- 可以运行起简易的操作系统
- 在给定操作系统上添加了用户态进程、系统调用、串口输出
Full Changelog: v2.2.0...v2.3.0
PipelinePriviledged
流水线 CPU(基本 RV32I 指令),使用 forwarding 处理数据冒险,stall 处理控制冒险 + 少部分特权级指令,支持 ecall、非法指令的异常处理
Full Changelog: v2.1.0...v2.2.0
PipelineForwarding
流水线 CPU(基本 RV32I 指令),使用 forwarding 处理数据冒险,stall 处理控制冒险
Full Changelog: v2.0.0...v2.1.0
Pipeline
流水线 CPU(基本 RV32I 指令)不处理冒险,需要手动插入 nop 避免数据冒险和控制冒险
Full Changelog: v1.0.0...v2.0.0
SingleCyclePriviledged
单周期 CPU(RV32I 基本功能)+ 少部分特权级指令,支持 ecall、非法指令的异常处理
Full Changelog: v1.0.0...v1.1.0
SingleCycle
单周期 CPU(RV32I 基本功能)
Full Changelog: https://github.com/TonyCrane/CraneCPU/commits/v1.0.0