前言
- 提醒:全文10千字,预计阅读时长15分钟;
- 读者:对 RISC-V 架构感兴趣的小伙伴;
- 目的:读者利用15~30 分钟对本文沉浸式阅读理解,能够掌握 RISC-V 架构 80% 的要点;
- 关键词 :RISC-V架构、指令集 ISA、总线、调试、虚拟化、M 模式、S 模式、 U 模式;
- 相关推荐:如果你对结构、架构、系统等概念感兴趣,建议阅读架构与系统;
- 相关推荐:如果你对 RISC-V 组织感兴趣,建议阅读RISC-V International RISC-V China
摘要
本文主要探讨了 RISC-V 架构的底层逻辑,介绍了RISC-V 架构的顶层设计;以处理器核心架构为基础,以系统架构为核心,以A系列和M系列架构为典型,对关键系统组件进行的通俗易懂的描述;本文提到的 RISC-V 架构不包含 GPU、NPU 架构;
一、概念
1.1 计算机体系结构
1.1.1 冯诺依曼架构
- 冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
- 数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
1.1.2 哈佛架构
- 哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。 简介 与两个存储器相对应的是系统的4条总线:程序和数据的数据总线与地址总线。
1.2 指令集架构 ISA
ISA是计算机硬件与系统软件之间的接口,指机器语言程序员或操作系统、编译器、解释器设计人员所看到的计算机功能特性和概念性结构,ISA 是计算机体系结构中非常重要的部分,通常是一套规范。
ISA 规定了数据类型、寄存器、字节次序、指令格式、指令集、寻址方式、协处理器/理指令集扩展、异常处理方式。
1.2.1 复杂架构指令集 CISC
复杂指令由微指令组成。
- Intel :x86(IA32)、x86-64(Intel 64,兼容 IA32 的64位ISA)、IA64 不兼容IA32,安腾系列(x86,EM64T,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4A,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX)
- AMD:AMD64 ISA,第一个兼容IA32的64位 ISA
1.2.1 精简指令集 RISC
- Arm ISA、RISC-V ISA、LoongArch ISA
1.3 微架构
ISA是一套规范,微架构是ISA的具体实现。
- x86-64 -> Intel Alder lake(golden cove & gracement)、AMD Zen 5
- Arm -> Armv8-M33、Armv8-A710
- RISC-V ->芯来 N308、SiFive E76-MC、平头哥玄铁
- LongArch -> GS464E
1.4 片上系统 SoC
Soc实现计算机体系结构的实现。
- Intel 12代 i7
- ST stm32、TI TDA4
- 芯昇 CM32M43xR
- 玄铁C908
二、RISC-V 指令集架构
2.1 简介
RISC-V 架构:指的是第五代精简指令集架构,是面向下一代处理器的体系结构。因为没有向前兼容的历史包袱,所以 RISC-V 架构相比 Arm、 x86 等其他架构,可以从零开始设计,简单便成了 RISC-V 架构的设计哲学。
告别过去:曾经死磕 x86、Arm、LoongArch 指令集未果的伙计们,不要自责,看了 RISC-V 的模块化指令集架构,你就明白了到底是谁的错。
方法论:学习 RISC-V 方法论应以指令集为抓手:从核心/基础指令集,到扩展/升级指令集,以自顶向下的思维方法为核心:指令集 -> 微架构 -> 组件 -> 代码,以特定处理器分析为主线,以解放思想为原则。
2.2 模块化指令集
RV [32, 64, 128]
I, M, A, F, D, G, Q, L, C, B, J, T, P, V, N;
DSA 特定领域架构
2.3 清晰的指令格式
- 格式维度:R,I,S,B,U,J指令;
- R型指令——用于寄存器与寄存器之间算术运算操作;
- I 型指令——用于寄存器与立即数之间算术运算和读存储器操作;
- S型指令——用于写存储器;
- B型指令——用于分支转移操作(属于S型指令的变体);
- U型指令——用于高20比特位立即数操作;
- J型指令——用于直接跳转(属于U型指令的变体)。
2.4 清晰的权限层级
- 用户 U 模式
- 管理 S 模式
- 机器 M 模式
- 特权指令与非特权指令
2.5 整齐划一的标准
- 特权指令集标准
2.6 灵活的商业模式
- x86 闭源
- Arm 闭源 授权
- RISC-V 闭源 授权 开源
三、RISC-V 微架构
3.1 微架构s
3.1.1芯来 N300
3.1.2 SiFive E76-MC
3.1.3 平头哥玄铁
3.2 微架构魔法
3.2.1 虚拟化
- M 模式
3.2.2 安全
- Enclave
四、RISC-V 方法论
4.1 设计哲学
4.2 知识体系
4.3 入门方法
4.4 实践指南
总结
RISC-V 架构是非常有前景的指令集架构,值得我们花些时间学习。
参考
- RISC-V 开源指令集 中文
- RISC-V SBI 接口
- RISC-V 特权指令集、非特权指令集、扩展指令集
术语
图灵机
一个抽象的机器、思想模型;
总线
计算机各种功能部件之间传送信息的公共通信干线;
皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~