从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍

文章目录

目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。

前提

这个系列的大部分文章和知识来自于:完结 循序渐进,学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春,以及相关的github地址

在这个过程中,这个系列相当于是我的学习笔记,做个记录。

ISA的基本介绍

ISA是什么

指令集架构(ISA)是底层硬件电路向上层软件程序提供的一层接口规范。这样就为上层软件提供了一层抽象,让使用者不用操心具体的电路结构。

CISC vs RISC

复杂指令集(CISC):它针对特定的功能实现特定的指令,导致指令数目多,但生成的程序长度较短。

精简指令集(RISC):只定义常用指令,对复杂的功能采用常用指令组合进行实现。导致指令数目比较精简,但是生成的程序长度较长。'

ISA的宽度

这块需要重点理解。

ISA(处理器)的宽度指的是CPU中通用寄存器 的宽度(bit数),这决定了寻址范围的大小,以及数据运算的能力。

举个例子:32位的CPU,它的通用寄存器的宽度为32bit。如果我们给内存中的每一个空间进行编号,那么我们最多可以有多少个编号呢?(也就是最多可以找到多个地址呢?)

答案应该是 2 32 2^{32} 232个编号。假如通用寄存器的宽度位2bit,最多可以有 2 2 = 4 2^2=4 22=4个编号,00,01,10,11。这里也就可以回答为什么32位的CPU的内存空间最大是4GB,因为CPU最多可以寻址的内存单元数量为2的32次方,即4,294,967,296个单元,同时由于内存寻址是以字节为单位的,因此32位寻址架构可以寻址的最大内存量为4GB(4,294,967,296字节)。

注:ISA的宽度和指令编码长度无关。

RISC-V指令集

RISC-V 代表这Berkeley所研发的第五代精简指令集,该项目2010年始于加州大学伯克利分校。

RISC-V ISA的命名规范

ISA的命名格式:RV###abc...xyz

其中:RV用于表示RISC-V体系结构的前缀,即RISC-V的缩写;[xxx] {32,64,128},处理器的通用寄存器的宽度;[abc..xyz]标识该处理器支持的指令集模块集合。

模块化的ISA

RISC-V的ISA是模块的ISA,模块化ISA的概念是:由1个基本整数指令集+多个可选的扩展指令集组成。基础指令集是固定的,永远不会变。

通用寄存器

RISC-V的非特权规格书(Unprivileged Specification)定义了32个通用寄存器以及一个PC寄存器(无法访问),寄存器的宽度由ISA指令,RV32的寄存器宽度为32bit,RV64的寄存器宽度为64bit。

Hart

HART = Hardware Thread()

这个属于是RISC-V中自己建立的,我的理解就是我们所说的CPU中核的概念,一个CPU有几个核对应到RISC-V中就是有几个Hart。

特权级别

RISC-V的特权规格书(Privileged Specification)定义了三个特权级别。这个可以理解为CPU的三种状态。我们知道Linux操作系统中有用户态和内核态。当我们的程序运行在用户态时,对应的就是进入User态,当运行在内核态,对应的就是进入Supervisor态。如果这里不太理解,可参考视频中的P4节。

Machine(机器态)级别是最高的,所有的实现都需要支持。

不同特权级别下分别对应各自的一套Registers(CSR),用于控制和获取相应Level下的处理器工作状态。高级别的特权级别下可以访问低级别的CSR,例如Machine可以访问Supervisor/User的CSR,但反之不可以。RISC-V定义了专门用于操作CSR的指令,同时也定义了特定的指令用于在不同级别中进行切换。

内存管理与保护

物理内存保护

虚拟内存:启用虚拟内存需要支持Supervisor Level。物理内存和虚拟内存之间的映射实际上是通过硬件实现的,我们称之为MMU(内存管理单元)

异常和中断

异常(Exception),当遇到异常指令时,CPU会执行一段异常处理程序。处理完毕后,它会再次执行这条异常指令,然后继续向下执行。主动触发

中断(Interrupt),当遇到中断时,CPU会执行中断程序,处理完毕后,它会从中断指令的下一条指令开始执行。被动触发

相关推荐
硅农程序猿8 天前
从需求到硅片| 一文讲清数字芯片设计流程
arm开发·硬件架构·risc-v
hongmai66688813 天前
ESP32-WROVER-B-N8R8:8MB PSRAM加持的经典双核模组,现在还值得选吗?
单片机·嵌入式硬件·物联网·智能路由器·risc-v
hongmai66688813 天前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
2301_8059629315 天前
在昉星光2(RISC-V)上构建每日短视频自动生成器
音视频·risc-v
hongmai66688816 天前
聊聊ESP32-C3-WROOM-02-N8这颗8MB Flash的RISC-V模组
笔记·嵌入式硬件·物联网·智能路由器·risc-v
hongmai66688816 天前
耐高温小钢炮:ESP32-C3-MINI-1U-H4模组选型分享
笔记·单片机·嵌入式硬件·物联网·risc-v
国科安芯18 天前
卫星星务计算机数据管理中SEU容错机制的技术实现研究——以AS32S601存储器ECC架构为例
网络·单片机·算法·fpga开发·架构·云计算·risc-v
QYR-分析19 天前
RISC-V AI加速器SoC行业研究报告:开放架构赋能AI芯片,高增赛道开启国产化新机遇
人工智能·架构·risc-v
hongmai66688821 天前
ESP8684-WROOM-02C:一块被低估的RISC-V Wi-Fi模组
单片机·嵌入式硬件·物联网·5g·智能路由器·risc-v
深圳市爱派派智能科技有限公司23 天前
“进迭时空 RISC-V 集群服务器 CSB1-N10SPK3:10 节点 K3,600 TOPS 绿色算力“
运维·服务器·risc-v·k3·进迭时空·集群服务器