RISC-V 指令集架构🚁
By: howardlau1999, Purple Power
RISC-V 是一种精简指令集架构,其支持32位和64位,及各种扩展。如 rv32im
指 32位 RISC-V 架构并支持 I拓展(整数运算,所有 RISC-V 架构必须支持) 和 M拓展(乘法支持)。
本实验中,我们将实现最基础的 RISC-V 32位架构的 CPU,并支持整数运算。
在此之前,您需要先了解 RISC-V 指令的格式。
指令格式🚁
RISC-V 有六种基本的指令类型:
- R 类型指令,用于寄存器-寄存器操作
- I 类型指令,用于短立即数和访存 load 操作
- S 类型指令,用于访存 store 操作
- B 类型指令,用于条件跳转操作
- U 类型指令,用于长立即数
- J 类型指令,用于无条件跳转
这些指令支持基本的整数运算,您可以通过 risc-v reference card 以快速查阅其格式或汇编指令语法,下面给出的两个 refcards 第一页就能基本覆盖实验所需,您也可以在 Google 搜索 RISC-V reference card 等关键词以查找。
RISC-V Assembly Reference Card
TODO: asm example and godbolt showcase
Spike 模拟器🚁
TODO: more
Spike 是一个 RISC-V ISA 模拟器,支持多种 RISC-V 扩展,通常被人们拿来作为参考实现,以验证自己实现的正确性。