当前位置: 首页 > news >正文

RISC-V ISA

目录
  • RISC-V ISA
    • ISA基本介绍
    • RISC-V ISA
      • RISC-V特点
      • 命名规范
      • 增量ISA
      • 模块ISA
        • 基本整数(Integer)指令集
        • 扩展模块指令集
      • 通用寄存器(General Purpose Registers)
      • HART
      • 特权级别(Privileged Level)
      • Control and Status Registers (CSR)
      • 内存管理与保护
        • 物理内存保护(Physical Memory Protection,PMP)
        • 虚拟内存(Virtual Memory)
      • 异常和中断

RISC-V ISA

本文内容来自软件所汪辰老师的课程

ISA基本介绍

ISA:Instruction Set Architecture

是底层硬件电路面向上层软件程序提供的一层接口规范

image-20260126220330278

ISA 是一种标准,定义了:基本数据类型、寄存器、指令、寻址模式、异常或中断处理方式

为上层软件提供一层抽象,制定规则和约束,让编程者不用操心具体的电路结构。

ISA宽度是指cpu中通用寄存器的宽度(二进制位数),决定了寻址范围的大小,数据运算能力

指令编码长度与ISA宽度无关

RISC-V ISA

RISC-V基金会

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)指令集

唯一强制要求实现的基础指令集,其他指令集都是可选的扩展模块

image-20260126225320973

扩展模块指令集

RISC-V 允许在实现中以可选的形式实现其他 标准化和非标准化的指令集扩展

特定组合“IMAFD”被称为 “通用(General)” 组合,用英文字母 G 表示

image-20260126225603997

通用寄存器(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)

image-20260126230815910

Machine 级别是最高的级别,所有的实现都需要支持

可选的 Debug 级别

image-20260126230920307

Control and Status Registers (CSR)

不同的特权级别下时分别对应各自的一套 Registers (CSR),用于控制(Control)控制和获取相应 Level 下的处理器工作状态

高级别的特权级别下可以访问低级别的 CSR, 譬如 Machine Level 下可以访问 Supervisor/User Level 的 CSR,以此类推;但反之不可以

RISC-V 定义了专门用于操作 CSR 的指令

RISC-V 定义了特定的指令可以用于在不同 特权级别之间进行切换

image-20260126231447322

内存管理与保护

物理内存保护(Physical Memory Protection,PMP)

允许 M 模式指定 U 模式可以访 问的内存地址

支持 R/W/X,以及 Lock

虚拟内存(Virtual Memory)

需要支持 Supervisor Level

用于实现高级的操作系统特性

多种映射方式 Sv32/Sv39/Sv48

image-20260126231932789

异常和中断

异常(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 外部(例如外设、平台中断控制器等)

image-20260126232139554

区分异常和中断的区别

http://www.jsqmd.com/news/305090/

相关文章:

  • 可能解决天堂2-6章铁幕降临长时间游戏FPS降低,内存占用高,卡死的方法
  • 4G通信模组和引擎应该怎么用?
  • 快速上手Mobile库:几行代码搞定移动通信
  • 掌握Air780EHV核心板的OTP核心库API的用法
  • 构建LCD从硬件到UI的高效开发全流程
  • 亲测好用!继续教育8款一键生成论文工具测评
  • P2440 木材加工
  • 固件烧录故障排查指南
  • Leanote 蚂蚁笔记 + cpolar,随时随地管理你的知识库
  • 大数据领域Spark的集群扩展与升级方案
  • 学长亲荐9个AI论文软件,助你搞定研究生论文写作!
  • 基于STM32单片机智能浇花 蓝牙传输 光照补偿 土壤湿度 声光报警 风扇降温
  • 基于STM32单片机智能点滴控制 WIFI 点滴 温度 液位 声光
  • 基于STM32单片机语音识别 垃圾分类 智能垃圾桶 舵机控制系统
  • 基于STM32单片机语音识别 智能台灯系统
  • 基于STM32单片机智能消毒柜 蓝牙传输 紫外线消毒 声光提醒
  • 基于STM32单片机智能窨井盖井报警系统 倾斜角度水位气体WIFI DIY
  • 基于STM32单片机智能药盒 定时定量提醒 GSM短信 蜂鸣器提醒
  • PySpark on Linux系统配置 Hadoop3.1.3+Spark3.4.4(PySpark3)
  • 2023 团体程序设计天梯赛 L1,L2,L3-2
  • 基于STM32单片机智能农业温湿度 大棚灌溉 监测物联网成品设计定做成品
  • 从高AI率到轻松通过:5款降重神器详细教程,有效降低AI疑似率!
  • 基于STM32单片机智能垃圾桶 烟雾金属检测 液晶垃圾显示 超声检测
  • Day4—循环高级综合+数组
  • 环状路径计数——传球游戏
  • 基于STM32单片机智能垃圾桶 语音播报 超声波满溢检测
  • C++二分细节敲定规则
  • 基于STM32单片机智能垃圾桶 语音识别 垃圾分类 WIFI无线蓝牙成品
  • RabbitMQ 如何限流?一文搞懂消费端流量控制(Spring Boot + Java 实战详解)
  • 基于STM32单片机智能手环 运动时间 里程提醒 蓝牙 时钟 血氧