【发布时间】:2019-03-23 14:30:18
【问题描述】:
总结:RISC-V 用户级 ISA 的最终参考或参考实现是什么?
上下文:RISC-V 网站有“The RISC-V Instruction Set Manual”,很好地解释了用户级指令,但没有给出确切的规范。我现在正在尝试构建一个用户级 ISA 模拟器,并打算稍后编写一个 FPGA 实现,所以确切的行为对我来说很重要。
参考实现就足够了,但最好尽可能简单——即我会尝试理解流水线实现仅作为最后的手段。 重要的是了解指定的 ISA 而不是单个 CPU 实现或编译器实现。
显示我的问题的一个例子是 AUIPC 指令:散文解释说“AUIPC 从 20 位 U 立即数形成一个 32 位偏移量,用零填充最低 12 位,将此偏移量添加到pc,然后将结果放入寄存器 rd。”我想知道这是指旧 PC 还是新 PC,即 AUIPC 指令或下一条指令的位置。我查看了“RISCV Angel”实现,但这似乎掩盖了(旧)PC 的低位——不仅仅是直接的——我在规范中找不到任何理由,甚至在更改规范的历史(因为天使有点老)。我现在没有答案,而是有两个关于 AUIPC 的问题。许多其他说明给我带来了类似的问题。
【问题讨论】:
标签: riscv