RISC-V ISA
RISC-V ISA
本文内容来自软件所汪辰老师的课程
原文链接:https://github.com/tuling1900/note/blob/main/riscv/riscv-isa.md
ISA基本介绍
ISA:Instruction Set Architecture
是底层硬件电路面向上层软件程序提供的一层接口规范
ISA 是一种标准,定义了:基本数据类型、寄存器、指令、寻址模式、异常或中断处理方式
为上层软件提供一层抽象,制定规则和约束,让编程者不用操心具体的电路结构。
ISA宽度是指cpu中通用寄存器的宽度(二进制位数),决定了寻址范围的大小,数据运算能力
指令编码长度与ISA宽度无关
RISC-V ISA
RISC-V特点
简单、清晰的分层设计、模块化、稳定、社区化
命名规范
RV[###][abc....xyz]
RV:用于标识 RISC-V 体系架构的前缀,即 RISC-V 的缩写
[###]:{32, 64, 128} 用于标识处理器的字宽,也就是 处理器的寄存器的宽度(单位为 bit)
[abc…xyz]:标识该处理器支持的指令集模块集合。
增量ISA
增量 ISA: 计算机体系结构的传统方法,同一个体系架构下的新一代处理 器不仅实现了新的 ISA 扩展,还必须实现过去的所有扩展,目的是为了 保持向后的二进制兼容性。典型的,以 80x86 为代表
增量ISA会使指令越来越负责
模块ISA
模块化 ISA: 由 1 个基本整数指令集 + 多个可选的扩展指令集组成。基 础指令集是固定的,永远不会改变。
RISC-V是模块化ISA
基本整数(Integer)指令集
唯一强制要求实现的基础指令集,其他指令集都是可选的扩展模块
扩展模块指令集
RISC-V 允许在实现中以可选的形式实现其他 标准化和非标准化的指令集扩展
特定组合“IMAFD”被称为 “通用(General)” 组合,用英文字母 G 表示
通用寄存器(General Purpose Registers)
RISC-V 的 Unprivileged Specification 定义了 32 个通用寄存器以及一个 PC
RISC-V PC不暴露给程序员
如果实现支持 F/D 扩展则需要额外支持 32 个浮点(Float Point)寄存器
每个寄存器具体编程时有特定的用途以及 各自的别名。由 RISC-V Application Binary Interface (ABI) 定义
HART
HART = HARdware Thread 硬件线程
一个HART对应一个指令执行流
From the perspective of software running in a given execution environment, a hart is a resource that autonomously fetches and executes RISC-V instructions within that execution environment.
特权级别(Privileged Level)
RISC-V 的 Privileged Specification 定义了三个特权级别(privilege level)
Machine 级别是最高的级别,所有的实现都需要支持
可选的 Debug 级别
Control and Status Registers (CSR)
不同的特权级别下时分别对应各自的一套 Registers (CSR),用于控制(Control)控制和获取相应 Level 下的处理器工作状态
高级别的特权级别下可以访问低级别的 CSR, 譬如 Machine Level 下可以访问 Supervisor/User Level 的 CSR,以此类推;但反之不可以
RISC-V 定义了专门用于操作 CSR 的指令
RISC-V 定义了特定的指令可以用于在不同 特权级别之间进行切换
内存管理与保护
物理内存保护(Physical Memory Protection,PMP)
允许 M 模式指定 U 模式可以访 问的内存地址
支持 R/W/X,以及 Lock
虚拟内存(Virtual Memory)
需要支持 Supervisor Level
用于实现高级的操作系统特性
多种映射方式 Sv32/Sv39/Sv48
异常和中断
异常(Exception):“an unusual condition occurring at run time associated with an instruction in the current RISC-V hart”
在当前 hart 上、与“当前正在执行的指令”相关、运行时出现的不寻常情况(同步事件)
中断(Interrupt):“an external asynchronous event that may cause a RISC-V hart to experience an unexpected transfer of control”
异步发生,不依赖/不等待当前指令的执行结果,来自 hart 外部(例如外设、平台中断控制器等)
区分异常和中断的区别

浙公网安备 33010602011771号