代码仓库
这个项目是计算机系统结构课程的大作业,基于 NEMU 做的一套模拟器扩展,并不是从零写一个新框架。NEMU 本身已经提供了 monitor、配置系统、内存访问框架以及多 ISA 的基本组织结构,所以我这边不需要重新实现那些基础设施,主要是在这个基础上把几条具体的架构和执行路径往下做一做。
RISC-V32。这里保留了一条比较完整的解释执行路径,寄存器访问、异常处理、monitor 调试命令,还有几个小型 demo 都放在仓库里了。整体上算是一个可以直接跑起来、也能看到效果的基础版本,不是零零散散补几条指令的那种。
LoongArch。LoongArch32R 这部分主要是先把基础通路 bring-up 起来,让最小的架构能跑通;LoongArch64 这边稍微做得深一点,除了指令和寄存器状态,还尝试扩展到了 CSR、MMU、启动参数以及设备联动这些方向。
第三块是执行引擎。原来的解释器仍保留,此外单独为 LoongArch64 做了一条 Hybrid DBT 通路。目前还处于原型阶段,基本块缓存、trace 组织、LoongArch64 子集的 IR,以及跟解释器对照的执行路径,这些内容已经完成。
第四块是系统模式相关的一些尝试。仓库里有串口、定时器、键盘、VGA、PLIC、virtio-mmio 这些方向的实验代码,也配了对应的 demo 和测试脚本。
从定位上来说,这个项目更接近于“基于 NEMU 的衍生扩展仓库”,还不是一个已经完全独立的通用模拟器。重点也不是覆盖所有方向,而是把几个自己感兴趣的点做扎实一些:一条可用的 RISC-V32 执行路径,一组 LoongArch 的扩展实现,以及一条面向 LoongArch64 的 Hybrid DBT 原型。
