admin 管理员组

文章数量: 887031

【RISC

修订历史

2023.7.19 

一、前言

  • 提醒:全文 5 千字,预计阅读时长 8 分钟;
  • 读者:对 RISC-V 架构感兴趣的小伙伴;
  • 关键词 :RISC-V架构、指令集 ISA、总线、调试、虚拟化、M 模式、S 模式、 U 模式;
  • 相关推荐:如果你对 RISC-V 组织感兴趣,建议阅读RISC-V International RISC-V China

二、术语、缩略语

ISA,Instruction Set Architecture,指令集架构

CISC,Complex Instruction Set Computer,复杂指令集计算机;

RISC,Reduced Instruction Set Computer,精简指令集计算机

RISC-V,Reduced Instruction Set Computer v5,第五代精简指令集计算机;

SBI: supervisor binary interface,管理二进制接口,用来实现 RISC-V 的管理模式程序可以在不同的 RISC-V 实现上移植;

SoC,System on a Chip,将计算机或其他电子系统集成到单一芯片的集成电路,也称片上系统


三、计算机体系结构概念

3.1 计算机体系结构

3.1.1 冯诺依曼架构

  • ​冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的 8086 中央处理器的程序指令和数据都是16 位宽。

  • 数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。​

3.1.2 哈佛架构

  • 哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。 简介 与两个存储器相对应的是系统的 4 条总线:程序和数据的数据总线与地址总线。

3.2 指令集架构 ISA

        ISA 是计算机硬件与系统软件之间的接口,指机器语言程序员或操作系统、编译器、解释器设计人员所看到的计算机功能特性和概念性结构,ISA 是计算机体系结构中非常重要的部分,通常是一套规范。

        ISA 规定了数据类型、寄存器、字节次序、指令格式、指令集、寻址方式、协处理器/理指令集扩展、异常处理方式。

        下图是普林斯顿大学软硬件的层次抽象,从图中可以看到 ISA 作为软硬件的接口存在,其下是微架构、寄存器/逻辑门、晶体管设备、物理实现。

3.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

3.2.1 精简指令集 RISC

  • Arm ISA、RISC-V ISA、LoongArch ISA

3.3 微架构

        ISA 是一套规范,微架构是 ISA 的具体实现

  • x86-64 -> Intel Alder lake(golden cove & gracement)、AMD Zen 5
  • Arm -> Armv8-M33Armv8-A710
  • RISC-V ->芯来 N308、SiFive E76-MC、平头哥玄铁
  • LongArch -> GS464E 

3.4 片上系统 SoC

        SoC(system on Chip)是包含了微架构以及周围电路实现的片上系统

  • Intel 12 代 i7
  • ST stm32、TI TDA4
  • 芯昇 CM32M43xR
  • 玄铁 C908

四、RISC-V 指令集架构

4.1 简介

        RISC-V 架构:指的是第五代精简指令集架构,是面向下一代处理器的体系结构。因为没有向前兼容的历史包袱,所以 RISC-V 架构相比 Arm、 x86 等其他架构,可以从零开始设计,简单便成了 RISC-V 架构的设计哲学。

新机会:曾经死磕 x86、Arm、LoongArch 指令集未果的小伙伴们,看了 RISC-V 的模块化指令集架构,你会发现体系机构原来可以设计的如此简单。

方法:学习 RISC-V 方法论应以指令集为抓手:从核心/基础指令集,到扩展/升级指令集,以自顶向下的思维方法逐步了解指令集 -> 微架构 -> 组件 -> 代码,以特定处理器分析为主线,掌握 RISC-V 体系结构。

4.2 模块化指令集

  • RV [32, 64, 128] I, M, A, F, D, G, Q, L, C, B, J, T, P, V, N; DSA

  • 特定领域架构

4.3 清晰的指令格式

指令格式包括:R,I,S,B,U,J 指令;

  • R 型指令——用于寄存器与寄存器之间算术运算操作;

  • I 型指令——用于寄存器与立即数之间算术运算和读存储器操作;

  • S 型指令——用于写存储器;

  • B 型指令——用于分支转移操作(属于 S 型指令的变体);

  • U 型指令——用于高 20 比特位立即数操作;

  • J 型指令——用于直接跳转(属于U型指令的变体)

4.4 清晰的权限层级

        RISC-V 架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用场景。用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择 RV32IC 组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如 RV32IMFDC 的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。

  • 用户 U 模式

  • 管理 S/HS 模式

  • 机器 M 模式

上面特权级别可以分别对应 Arm 的 EL0~EL3。

4.5 整齐划一的标准

        现代操作系统都做了特权级指令和用户级指令的分离,特权指令只能操作系统调用,而用户级指令才能在用户模式调用,保障操作系统的稳定。RISC-V提供了特权级指令和用户级指令,同时提供了详细的RISC-V特权级指令规范和RISC-V用户级指令规范的详细信息,使开发者能非常方便的移植linux和unix系统到RISC-V平台。

  • 特权规范
  • 非特权规范

4.6 灵活的商业模式

  • x86 架构是闭源的

  • Arm 架构是闭源或授权的

  • RISC-V 架构允许闭源、授权、开源


五、RISC-V 微架构

5.1 芯来

5.1.1 丰富的可配置性

  • Adapt the Core to the System
  • Incorporate Only Needed Features

5.1.2 稳健的编码格式

  • Verilog based
  • Friendly for debug, PPA optimization

5.1.3 良好的扩展性

  • RISC-V B/K/P/V -extensions
  • User-defined Instruction Extension

5.1.4 完整的信息安全方案

  • TEE supported
  • Physical security package

5.1.5 健全的功能安全方案

  • ASIL-B & ASIL-D supported
  • Function safety Package

5.1.6 灵活的商业模式及技术支持

  • CPU subsystem available
  • Local support with fast response

5.2 赛昉

5.2.1 昉•天枢处理器内核

        昉·天枢(Dubhe)是全球已交付性能最高的 64 位 RISC-V CPU Core IP,采用 11 +级流水线、超标量、深度乱序执行等设计,支持标准 RISC‐V RV64GCBH 扩展,同时还针对性能和频率做了深度的优化,SPECint2006 可达 9.2/GHz。昉·天枢经过核芯复合体(Core Complex)预集成及验证,提供具备内存一致性的集群内单核、双核或四核的配置选择,简化了 SoC 开发工作,可广泛用于数据中心、PC、移动设备、高性能网络通讯、机器学习等高性能计算场景、设备。

5.2.2 昉·天璇

        昉·天璇采用了 10+级流水线、三发射乱序执行的 设计,支持丰富级流水线、三发射乱序执行的 设计,支持丰富RV64GCBVH RISC-V指令集。昉·天璇 SPEC2006int分数可达 7.0/GHz,专为高能效的计算场景设计,满足移动、桌面人工智能和汽车应用的需求。

5.2.3 昉·星链

5.3 平头哥

5.3.1 玄铁 902 

        E902兼容RISC-V架构,采用2级极简流水线并对执行效率等方面进行了增强,可进一步选配安全执行环境以增强系统安全性,适用于对功耗和成本极其敏感的IoT、MCU等领域

5.3.2 玄铁 E906

        E906兼容RISC-V架构,采用5级整型流水线,并可选性能优异的单精度或单双精度浮点单元以及32位标量DSP计算单元,适用于无线接入、音频、
TWS、中高端MCU、导航等应用领域

5.3.3 玄铁 E907

        E907兼容RISC-V架构,是玄铁MCU处理器中的性能最高的处理器核。E907主要面向语音入口MCU、TWS、MPU、导航、多模无线接入等应用领域

5.4 晶心科技

5.4.1 AndeStar V3

RISC-V ISA is an innovation for industry because it is open, compact, modular and extensible; also 64-bit is natively defined. However, RISC-V is merely an instruction set architecture. It needs microarchitecture implementation and other associated products (such as compiler, development tools, and platform) to provide complete CPU IP solution. Andes sees the potential of RISC-V. Andes is joining forces with partners of RISC-V community to grow the ecosystem by bringing Andes' CPU IP experiences together with RISC-V's technology:

  • Andes becomes one of the Founding members of RISC-V Foundation (2016) and Premier member of RISC-V International(2020).
  • Andes is a RISC-V major tool-chain contributor (and maintainer).
  • Andes will provide a complete product portfolio with RISC-V CPU IP. Andes is your reliable RISC-V core IP business partner.
  • Andes provides world's leading customer-instruction extension capable RISC-V core IP (Andes 25-series cores) and tool.
  • Andes provides RISC-V cores that runs Linux.
  • Through years of interaction with customers, Andes is professional in designing details important to SoCs.

5.4.2 AndeStar V5

        Andes RISC-V处理器基于完全兼容于RISC-V的AndeStar™V5架构,并承袭了其精简、模块化和可扩充的优点。此外,AndeStar™V5架构更结合在V3 AndesCore™处理器中已被验证有效的Andes延伸功能,有助于在嵌入式应用中增强性能、降低执行代码大小和提供更好的开发支持。Andes RISC-V核心包括适用于入门级MCU和深度嵌入式协议处理的超精简型N22;适用于高速控制任务的N25 / NX25;适合浮点密集型多元应用的N25F / NX25F,和支持Linux应用的A25 / AX25。


六、官网

RISC-V International – RISC-V: The Open Standard RISC Instruction Set Architecture (live-risc-v.pantheonsite.io)


七、总结

RISC-V 架构是非常有前景的指令集架构,值得我们花些时间学习。


参考

  • RISC-V 开源指令集 中文
  • RISC-V SBI 接口
  • RISC-V 特权指令集、非特权指令集、扩展指令集

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~

下一篇 「RISC-V Arch」RISC-V 指令集架构 ISA

本文标签: RISC