山东大学RISC-V公共开放平台开发记录
risc-V模拟器-1
本次实验全部基于RISC-V 64I指令集,参考的指令集标准是RISC-V Specification 2.2。
使用riscv-tools安装risc-gnu-toolchain和riscv-qemu
并使用-march=rv64i让编译器针对RV64I标准指令集生成ELF文件。
需求分析
-
编译器的健壮性要求:必须能够处理各种非法输入,包括不正常的访存,不正常的ELF文件,非法指令,非法的访存地址等等。编写细致全面的错误处理不仅有助于锻炼系统编程能力,也有助于在早期发现细微的程序错误。
-
简单性:模拟器的实现必须简单、易于理解和易于调试。此模拟器是一个课程项目级别的模拟器,允许的实现时间有限,因此代码实现必须简单,调试系统必须完备,从而尽可能地减少编写程序和调试程序所需要的时间。
-
实用性:模拟器实现的主要目的是能够被用于简单性能评测,因此必须能够尽可能贴近流水线硬件,并可以扩展出分支预测和缓存模拟等各种功能,便于在真正的程序上实验和评测流水线的性能,以及各种分支预测和缓存模拟策略。