risc-v c仿真器如何工作?

时间:2020-05-09 07:29:02

标签: emulation riscv riscv32

我正在运行基于x86的Linux虚拟机。 我正在使用RISC-V编译器和仿真器进行交叉编译(目标:RISC-V)。 我想知道RISC-V仿真器(C文件)如何在没有真正的RISC-V cpu的情况下仿真RISC-V指令。

1 个答案:

答案 0 :(得分:0)

CPU模拟器是一个程序,它将二进制可执行文件作为输入,并执行与本机CPU相同的步骤来执行它。在RISC-V情况下,它将获取程序计数器(PC)指向的存储器,并根据RISC-V指令集规范对32位字进行解码。接下来,根据它是哪条指令(加载,存储,寄存器操作),它在软件中执行该操作,然后递增PC(或者,如果指令是跳转或返回,则对其进行设置),并获取下一条要执行的指令。仿真CPU中的寄存器和内存只是仿真器中32位(对于RISC-V 64为64位)整数的数组。

如果您对CPU的工作方式感到好奇,那么为一个人编写一个基本的模拟器是一项有趣(而且很有启发性)的练习。您可以使用任何编程语言编写CPU模拟器。

相关问题