一个基于 NEMU 的模拟器扩展项目

代码仓库

BorderRegion/nemu-ext: 基于 NEMU 的模拟器扩展,聚焦 RISC-V32 完整通路、LoongArch(32/64)深度实现,以及 LoongArch64 的 Hybrid DBT 原型,并包含系统模式设备实验。


这个项目是计算机系统结构课程的大作业,基于 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 原型。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇