Arm架构解析,了解你所不知道的?

2019年04月23日 作者:mido

本文将解析Arm架构的组成,包括其ISA,执行状态,体系结构和处理器系列。

Arm在处理器行业无人不知无人不晓,而且无处不在,你几乎可以在目前的大多数电子产品中找到关于Arm的核心,包括网络路由器,打印机,智能手机,台式机显示器,医疗设备,机器人,甚至是冰箱,洗衣机等这些我们常见的家电设备。说白了,Arm核已经在住宅,商业和工业应用等众多领域中都有使用,不过但随着Armv8的出现,该架构的功能和市场潜力发生了根本转变。如果您对Armv8感兴趣,可以阅读最新的Arm Architecture参考手册:一个7500页左右的说明文档。

考虑到这一点,下面我们就来看看Arm计算机架构是如何从高级别以及Armv8这些特性来改变我们对以前的Arm处理器的了解。

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 ISA和执行状态

随着第一个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。

又比如现在最新的单板计算机树莓派3B+同样使用了Armv8核心,但由于操作系统和内存限制,它在AArch32状态下运行,核心为Cortex-A53。

1 2

相关文章

tracer