`本文将解释Arm计算机体系结构是如何组织的,包括它的ISA、执行状态、体系结构和处理器系列。
Arm在处理器行业中是一个无处不在的名字,Arm核心几乎可以在任何需要计算能力的现代设备中找到。这包括网络路由器、打印机、智能手机、桌面显示器、医疗设备、机器人,甚至冰箱。Arm核心已经用于住宅、商业和工业应用,但随着Armv8的出现,该架构的性能和市场潜力发生了根本性的变化。如果你对Armv8感兴趣,你可以轻松阅读最新的Arm架构参考手册:它只有区区7500页。
考虑到这一点,回过头来看看Arm计算机架构是如何从高层次组织起来的,以及Armv8是如何改变我们以前对Arm核心的了解的,这可能是一个好主意。
Arm计算机体系结构
由于Arm将其架构授权给第三方,因此Arm设计的微架构和第三方微架构都有。Arm发布了一个架构,其他公司可以在自己的设计中实现它。事实上,Arm参考手册并没有列出任何具体的微架构,而是定义了“被称为处理元素的抽象机器的行为”。只要实现符合这个定义的行为,它们就可以被认为是Arm核心。例如,苹果、英伟达、高通和三星等公司都设计了自己的Arm微架构,实现了特定的Arm架构。
Arm核心被组织成家庭。系列封装了使用特定指令集的特定架构。最初的Arm家族是Arm1,它使用了Armv1体系结构,以及简单称为Arm的32位ISA。
随着体系结构的发展,添加了一些新特性,包括Armv4T体系结构中的一个新的指令集。这个指令集叫做Thumb,是Arm ISA的一个16位重新编码的子集。拇指比Arm允许更大的代码密度。它的后继者Thumb-2既支持16位指令,也支持32位指令,同时提供比Arm更大的代码密度,性能也比Thumb更好。
图1
为了保持与早期版本的兼容性,Armv8引入了两个新的执行状态:AArch32和AArch64。它们实际上分别是32位和64位模式。在AArch32状态下,使用A32和T32指令集,而AArch64使用A64。
ARM架构 Arm架构很容易识别,因为它们的名字中总是有一个“v”。如前所述,Armv1是第一个Arm架构,而Armv4T引入了Thumb指令集。Arm11之后,家族被重组为
Cortex 系列。到目前为止,三个Cortex 家族包括所有Armv7和Armv8结构。
图2-Apple A7和Raspberry Pi都使用了Armv8架构的实现。图片来自维基百科的Apple_A7和Raspberry_Pi文章
Cortex系列 现代Arm系列是Cortex系列,包括三个架构:Cortex- a、Cortex- r和Cortex- m。任何具有这种名称的核心都是由Arm内部设计的微架构。
Cortex-R系列,架构Armv7-R和Armv8-R,为高性能实时应用进行了优化。这些处理器有更好的容错性和工作在安全关键的应用,包括医疗设备,工业控制系统,和安全仪表系统。
图3-Arm架构由ISA、架构和家族组织。图片由Arm提供
如果您不熟悉底层架构和分类,那么为您的设计或项目选择合适的Arm处理器可能会很困难和令人困惑。现在你已经知道了所有这些字母和数字的含义,你可以花更多的时间来修改,而不用再挠头了。 `
|