发 帖  
原厂入驻New

[经验] 我对ARM架构的理解

2020-9-3 17:56:36  397 ARM架构
分享
0
本文将解释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.png
图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和R.png
图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提供.png
图3-Arm架构由ISA、架构和家族组织。图片由Arm提供
<span]

如果您不熟悉底层架构和分类,那么为您的设计或项目选择合适的Arm处理器可能会很困难和令人困惑。现在你已经知道了所有这些字母和数字的含义,你可以花更多的时间来修改,而不用再挠头了。
xiaojiujiu 2020-9-4 09:11:50
讲的很详细,感谢分享,学习学习~
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表