本文将解释Arm计算机体系结构的组织方式,包括其ISA,执行状态,体系结构和处理器系列。
Arm是处理器行业中无处不在的名称,Arm核心几乎可以在任何需要计算能力的现代设备中找到。这包括网络路由器,打印机,智能手机,台式机显示器,医疗设备,机器人,甚至冰箱。Arm芯片已经在住宅,商业和工业应用中使用。但随着Armv8的出现,该架构的功能和市场潜力发生了根本转变。
arm计算机体系结构
由于Arm许可其架构,因此有Arm设计的微体系结构和第三方微体系结构。Arm发布了一个架构,其他公司可以在自己的设计中实现它。实际上,Arm参考手册没有列出任何特定的微体系结构,而是定义了“抽象机器的行为,称为处理元素”。只要实现符合此定义的行为,它们就可以被视为Arm核心。例如,Apple,Nvidia,Qualcomm和Samsung等公司都设计了自己的Arm微体系结构,实现了特定的Arm架构。
arm系列芯片封装了使用特定指令集的特定体系结构。最初的Arm系列是Arm1,它使用了Armv1架构,以及32位ISA,简称为Arm。
随着架构的发展,增加了新功能,包括Armv4T架构中的新指令集。该指令集称为Thumb,是Arm ISA的16位重新编码子集。Thumb允许比Arm更大的代码密度。它的后继产品Thumb-2允许16位和32位指令,同时提供比Arm更高的代码密度和比Thumb更高的性能。
Arm 指令集架构和执行状态
随着第一个64位Arm架构Armv8的发布,对ISA的澄清变得恰当。最初的32位Arm ISA重新命名为A32,而新的64位ISA则被称为A64。Thumb变成了T32。A32和T32虽然向后兼容以前的版本,但在Armv8中进行了扩展。
为了保持与早期版本的兼容性,Armv8引入了两个新的执行状态:AArch32和AArch64。它们分别是32位和64位模式。在AArch32状态下,使用A32和T32指令集,而AArch64使用A64。
Arm架构
Arm架构很容易被发现,因为它们的名字总是有一个'v'。如前所述,Armv1是第一个Arm架构,而Armv4T则引入了Thumb指令集。Arm11系列包括Armv6架构以及其他一些变体,如Armv6T2和Armv6K。在Arm11之后,这些家族被重新组织成了Cortex系列。截至目前,三个Cortex系列包括所有Armv7和Armv8架构。
iPhone 5S采用了Apple-A7 SoC,其中包括一个64位Arm核心,使其成为智能手机中首款64位处理器。微架构实现了Armv8架构,由Apple设计,名为Cyclone。最新的Raspberry Pi是一款流行的单板计算机,它使用Armv8核心,但由于操作系统和内存限制,它在AArch32状态下运行。核心使用Arm设计的微架构,称为Cortex-A53。
Cortex系列
现代Arm系列是Cortex系列,包括三种架构配置文件:Cortex-A,Cortex-R和Cortex-M。具有此名称的任何核心都是由Arm内部设计的微架构。
Cortex-A系列主要被认为是具有OS和第三方应用程序支持的应用程序处理器。这意味着他们最终可能会进入应用密集型智能手机甚至是服务器。Cortex-A有32位(Armv7-A)和64位(Armv8-A)。Raspberry Pi 3使用Cortex-A53 Arm核心,实现了Armv8-A架构。
Cortex-R系列架构Armv7-R和Armv8-R针对高性能实时应用进行了优化。这些处理器具有更好的容错能力,在安全关键应用中表现良好,包括医疗设备,工业控制系统和安全仪表系统。
Cortex-M系列是一组按比例缩小的低成本32位Arm内核,由Armv6-M,Armv7-M和Armv8-M组成。该系列处理器面向微控制器,ASIC,FPGA和SoC应用。在与8位MCU市场的直接竞争中,嵌入到更大的SoC中的32位Cortex-M内核可以是一个非常强大的组合。Cortex-M还通过Arm Mbed MCU和OS等平台在物联网应用中找到了一席之地。