大多数程序只使用指令集的一小部分,去除复杂、难以实现(且很少使用)的指令,剩余指令就可以运行的更快,功耗更低,但是效率不如复杂指令集。
X86服务器架构采用模块化设计,主板上的组件可插拔、替换。CPU及其他组件(例如显卡和GPU、内存控制器、存储器或处理内核)针对特定功能进行了优化,并且可以轻松替换和扩展。不过由于硬件组件是更同质化的系统架构,可以让黑客利用“一次编写、随意执行”的漏洞快速攻击系统。
ARM架构的处理器则采用了不同的方法,CPU内核不再是将处理器单元与硬件的其余部分分开。而是成为集中电路物理平台的一部分。其余硬件功能均位于统一平台,通过内部总线集成在一起。这些组件放置在同一集成电路上,称为系统级芯片。
与X86架构不同,ARM架构基于精简指令集(Reduced Instruction Set Computing),成为移动设备和嵌入式系统的理想选择。
ARM商业模式和IP授权模式
作为半导体企业,ARM独特的商业模式是不设计和制造整芯片,而是专注处理器内核架构的授权。ARM处理器架构授权主要分为指令集授权和处理器架构授权两个层次。
ARM的授权体系:
ARM指令集授权是指将ARM RISC 精简指令集授权给受让方。受让方可以对ARM指令集进行大幅度改造,可以扩展或缩减。之后,受让方根据自己改进过的指令集研发处理器架构。例如,苹果的A系列,目前苹果Mac电脑转向使用公司自主研发的ARM架构处理器。
ARM 处理器内核IP授权是指ARM将自行设计的处理器内核IP授权给客户。客户可以直接将内核(Register Transition Level)代码在芯片前端设计时集成在芯片处理器模块中,客户对处理器缓存、核数、频率等进行配置。通过总线与其它的功能模块、外设接口、主存等连接,生成完整的芯片。
ARM演进概述:
- ARM架构的演变过程是从ARMv4, ARMv5, ARMv6, ARMv7, ARMv8-A,ARMv9
- 其中芯片的命名从ARM11开始使用新的命名规范Cortex,比如现在最新的高通SM865使用的是ARMv8-A架构,Cortex-A77的core
- ARMv4到ARMv7都是只支持32位,从ARMv8-A开始支持64位,就是我们常说的AArch64。同时ARMv8也为了兼容ARMv7的应用,也支持32位
- 虚拟化(Virtualization)也是在ARMv7后面开始引入,在ARMv8-A已经开始全面支持
- TrustZone技术在ARMv7和ARMv8已经大范围使用
ARMv8包含的模块,以Cortex-A57举例:
华为麒麟芯片采用的ARM架构,华为采用ARMv8的永久授权,可以自主研发自己的芯片,不受ARM的限制。然而最新的V9架构的授权众说纷纭。
目前ARM公司的产品用Cortex命名,并分为A、R和M三类。A系列面向尖端的基于虚拟内存的操作用户应用;R系列针对实时系统;M系列对微控制器