问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

RISC-V、ARM与x86微处理器之间有什么区别?

创作时间:
作者:
@小白创作中心

RISC-V、ARM与x86微处理器之间有什么区别?

引用
1
来源
1.
https://m.eeworld.com.cn/circuit/view/104001

RISC-V、ARM和x86是当前主流的三种处理器架构,它们在计算架构、功耗与性能、安全性、预测执行、虚拟化以及ISA扩展等方面存在显著差异。本文将从多个维度对这三种架构进行对比分析,帮助读者全面了解它们的特点和应用场景。

Intel的x86架构也在AMD的CPU上提供,ARM处理器和IP由ArmLimited提供,RISC-V国际组织正在开发RISC-V。英特尔、AMD、ARM和RISC-V之间的两个非常显着的区别在于商业模式和计算架构。英特尔、AMD和ARM基于专有IP,并且这些公司销售和/或许可他们的产品。RISC-V是一个开放的规范和平台;它不是开源处理器。可以使用开源RISC-V内核,但也有商业许可的内核。

RISC-V和ARM处理器在计算架构上基于RISC概念,而Intel和AMD的x86处理器则采用CISC设计。

RISC与CISC的计算

RISC体系结构具有可以在单个计算机时钟周期内执行的简单指令。因此,完成一项特定任务往往需要执行多条指令。同样的任务可以在CISC处理器上用更少的指令(甚至单个指令)完成。

CISC计算力求用尽可能少的代码行完成一项任务。一条CISC指令可能需要多个计算机时钟周期才能完成。例如,CISC处理器的两个数相乘可以用一条指令完成:

MUL 1200, 1201

“MUL”是一个复杂的指令。它不需要程序员显式使用任何调用、加载或存储函数。它直接在计算机的内存上运行,类似于高级编程语言中的命令。RISC处理器上的乘法不能用单个命令完成;需要几个更简单的指令来从内存中的特定位置加载每个操作数(下面示例中的1200和1201),将数字相乘,然后存储结果:

Load A, 1200
Load B, 1201
MUL A, B
Store 1200, A

在此示例中,Load指令将来自内存位置1200和1201的数据分别存储到寄存器A和B。MUL指令将两个寄存器中的值相乘。它将结果保存在A中,Store指令将A的值存储在内存位置1200(或任何其他指定的内存位置)中。在RISC处理器中,诸如MUL之类的操作仅在寄存器上执行,而不是直接在内存上执行。虽然这增加了指令数,但它允许使用更简单的指令。

功率与性能

与CISC指令相比,执行更简单的RISC指令消耗的功率更少。CISC处理器试图以每条指令的计算机时钟周期数为代价来最小化每个程序的指令数。RISC采用相反的方法,使用可以在单个时钟周期内执行的简单指令,但需要更多的指令。以下等式显示了计算机的性能能力(运行程序的时间)与每条指令的周期数以及每条程序的指令数之间的关系:

从这个等式来看,有两种方法可以提高性能,最小化每个程序的指令数或减少每个指令的周期数。一般而言,RISC方法在降低整体功耗方面更为成功,有时会以降低性能为代价。然而,分歧正在缩小。ARM添加了更复杂的指令来提高处理器性能(以更高的功耗为代价)。英特尔将其一些操作码分解为类似于RISC的微操作,以实现更低的功耗。

安全性

权限环(有时称为保护环)是为保护数据和功能免受故障、提高容错能力和提高安全性免受恶意操作而建立的分层域。环按照从最高特权或最受信任到最低特权或最不受信任的层次结构设置。零环通常是最高特权级别,直接与CPU内核和内存交互。

x86架构包括四个级别的特权环。ARMv7架构包括三个特权级别;应用程序、操作系统和管理程序。ARM和RISC-V都使用隔离机制的概念。ARM采用基于硬件的安全性,其中域被硬编码到硬件中,而RISC-V使用软件定义的隔离域。

OP-TEE是实现ARMTrustZone技术的开源可信执行环境(TEE)。OP-TEE已被移植到许多ARM设备和平台,包括ARMv8。RISC-VMultiZone安全软件模型很小,因此速度更快。RISC-V内置了多种安全机制,包括四级权限环、安全中断处理和独特的物理内存保护(PMP)机制。RISC-V还提供了商用安全增强功能,包括加密库、信任根和多域TEE。

RISC-V的开源特性导致专有ISA缺乏的透明度,并为另一个级别的安全性提供了可能性。RISC-V社区庞大而多样,许多设计人员不断研究安全环境和潜在威胁向量。一旦识别出安全风险,它通常会与开放社区共享,使专家能够快速开发或提出解决方案。

预测执行

谓词执行允许某些指令仅在特定的先前条件为真时才执行。例如,先前的结果必须大于零;否则,处理器继续执行下一条指令。ARM和x86支持各种格式的谓词执行。

宏操作融合是一种硬件优化技术,在解码之前或解码过程中,将一系列相邻的宏操作合并为一个宏操作。ARM在其最近的微体系结构中支持许多宏操作融合操作。微操作融合在处理器内部将两条指令合二为一,有效实现无需指令集帮助的谓词执行。

基本的RISC-V指令集不支持谓词执行。然而,实验性的BOOMv3乱序推测RISC-V处理器使用精简指令集与微操作融合的组合来实现预测执行。

CPU、内存和I/O的虚拟化

ARM、x86和RISC-V都支持CPU和内存的虚拟化。RISC-VISA目前不支持I/O的虚拟化。在x86生态系统中,Intel和AMD有自己的虚拟化方法。英特尔被称为虚拟化技术或VT。VT由VT-x组成,包含核心侧特征;VT-d,包含输入输出内存管理单元(IOMMU);和VT-c,它涵盖了网络接口。AMD在标签AMD-V下提供核心端虚拟化,而IOMMU称为AMD-Vi。英特尔和AMD的产品在实现细节上有所不同,但与ARM的产品相比,彼此的架构更加紧密。

与x86处理器采用的方法类似的虚拟化扩展已添加到ARM架构中。ARM虚拟化扩展使硬件方式能够使用管理程序虚拟化CPU。多个操作系统可以在每个虚拟CPU上运行。

RISC-VH(管理程序)扩展v0.6.1引入了CPU状态的完整副本:一份副本用于来宾,一份副本用于主机(类似于IntelVT-x)。RISC-V通过将敏感寄存器和指令赋予主机模式特权来支持CPU的虚拟化。从预发布版本号可以看出,RISC-V虚拟化是一项正在进行的工作。最近发布了用于嵌入式系统的Rocket芯片内核中最新版本的RISC-V虚拟机管理程序扩展的首次公开实施和评估。

与x86和ARM架构一样,RISC-V支持使用多阶段页表的内存虚拟化。此外,RISC-V为来宾表和主机表实现了相同的页表条目格式。

I/O虚拟化在RISC-V中留待指定。它主要是IOMMU和平台级中断控制器(PLIC)的一个特性,它位于RISC-VISA的域之外,需要指定。当前指定的PLIC不包括用于配置中断注入的寄存器。

RISC-V和ISA的扩展

RISC-V从一开始就设计为不仅支持基本ISA和标准扩展,而且还支持自定义ISA扩展。虽然ARM最初并未设计为使用自定义扩展,但这种情况正在发生变化,并且ARM生态系统开始使用自定义扩展。x86生态系统是封闭的,一般不支持自定义ISA扩展。

RISC-VISA被组织成指令组(基本ISA和标准扩展)。使用对标准ISA的扩展的能力可以为特定应用程序提供支持。例如,最近发布的RISC-V向量扩展(RVV)使基于RISC-VISA的处理器内核能够与传统标量运算一起处理数据数组,以加速大型数据集上单指令流的计算。适合矢量处理器的任务示例包括:

  1. 机器学习。
  2. 压缩图像、zip文件等。
  3. 密码学。
  4. 多媒体:音频、视频。
  5. 语音和手写。
  6. 奇偶校验、校验和。
  7. 散列/连接。

RISC-VISA支持自定义扩展的能力可以成为特定用例或应用程序的关键区别。使用自定义扩展不会破坏与主要ISA的合规性。支持自定义扩展的处理器也可以运行通用RISC-V软件。

上图显示了RISC-V软件堆栈中的自定义ISA扩展。操作系统(OS)可以是实时操作系统(如embOS、FreeRTOS、LynxOS等),也可以是富操作系统(如Linux、Android、Windows等)。在此示例中,App1确实需要性能增强并且不使用自定义ISA扩展。它可以符合标准编译器。App2和App3使用自定义ISA扩展来提高性能,并且必须使用包含自定义ISA扩展的编译器进行编译。

所以,x86、ARM和RISC-V微处理器之间的差异很多而且各不相同。这些差异推动了一般应用程序的适用性。来自AMD和Intel的x86处理器在计算机和服务器领域占据主导地位。在平板电脑和智能手机上,苹果和高通的ARM处理器占主导地位。ARM处理器在嵌入式应用中也很强大。随着RISC-V越来越多地用于嵌入式系统、汽车系统、磁盘驱动器、人工智能和机器学习应用程序,这种优势正在受到挑战。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号