首页
/ 【亲测免费】 推荐开源项目:NEMU - 教学目的的全系统模拟器

【亲测免费】 推荐开源项目:NEMU - 教学目的的全系统模拟器

2026-01-15 17:07:09作者:舒璇辛Bertina

项目介绍

NEMU 是一个专为教学设计的简洁而全面的全系统模拟器,由南京大学开发团队打造。它支持包括 x86、mips32、riscv32 和 riscv64 在内的多种处理器架构。除了NEMU本身,该项目还与AM项目配套,用于构建在NEMU上运行的程序。

项目技术分析

NEMU 的核心特性在于其内置的小型监控器和调试器,提供了以下功能:

  • 单步执行:允许逐步调试代码。
  • 寄存器/内存检查:查看并理解程序运行时的状态。
  • 表达式评估:即使没有符号支持也能计算表达式值。
  • 观察点:设置断点以检测特定变量或地址的变化。
  • 差异测试:与参考设计(如QEMU)进行对比测试,确保准确性。
  • 快照:保存和恢复模拟状态,便于实验比较。

CPU 核心部分,NEMU 支持大多数常用指令,但不包括某些特定模式或浮点运算:

  • x86:不支持实模式和x87浮点指令。
  • mips32:不支持CP1浮点指令。
  • riscv32:仅支持RV32IM。
  • riscv64:仅支持RV64IM。

此外,模拟器还包括了内存管理(带可选TLB,但mips32需强制开启)、中断异常处理(未实现保护机制)以及五种简化设备:串行、定时器、键盘、VGA 显示器和音频设备。I/O 模块涵盖了端口映射和内存映射两种方式。

项目及技术应用场景

NEMU 是理想的计算机体系结构教学工具,适用于教授硬件与软件交互、处理器工作原理、内存管理和设备驱动等内容。学生可以通过它实践编译器、操作系统内核或者设备驱动的开发,深入理解计算机系统的运作机制。此外,对于研究新型指令集架构或测试新硬件设计的人来说,NEMU 提供了一个快速验证概念的平台。

项目特点

  1. 教育导向:设计简单,易于理解和学习。
  2. 多架构支持:涵盖常见的CPU架构,方便跨平台学习和实验。
  3. 强大的调试功能:提供丰富的调试工具,帮助理解程序行为。
  4. 轻量级模拟:虽简化了许多功能,但足以满足基础教学需求。

总的来说,NEMU 是一个精心设计的开源项目,是计算机科学教育和研究的理想伙伴。无论你是学生还是教师,如果你想深入了解计算机底层的工作原理,NEMU 都值得你尝试。立即加入社区,开启你的模拟器探索之旅吧!

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.49 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
518
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
786
1.58 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
803
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
973
2.29 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
482
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.02 K
769
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
811
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
648
287