初心迥异 | ARM和X86的系统架构差异分析(篇一)

作者 | 衍云

本周项目组有探讨到ARM和X86的架构最大差异点是什么?

差异很可能在最早的时候就已经确定了,那就是他们的初“心”(体系架构)。

ARM和X86之间的体系架构分歧明显,架构的各自优点也确定了它们各自在市场中的地位。而如今处理器的底层技术却又不断的在融合,市场也出现了交集。

曾经的两条平行线,如今终于要交叉,面临厮杀。现在ARM让IntelX86感到了压力,但是螳螂捕蝉黄雀在后,新出来的RISV-V却又让ARM难受很多。

本系列分析这三者体系架构差异和具体处理器微架构之间的差异,也是《国产处理器的架构现状和演进》续,也是又一次探讨和进一步抛砖,那么让“初心”开始,也回归技术的初心。

PS:ARM架构和优化专题:
https://www.atatech.org/specials/698?spm=ata.13269424.0.0.83c15f857Fk0zv

本系列涉及的面比较多,有些点到为止,有些则有细化讨论。都是在周末连续的大块时间中素材提炼和文字整理的,信息量个人感觉还有挺多,建议同学们进行收藏,茶余饭后慢慢看。

初心迥异——篇一

处理器(Central Processing Unit)本身其主要由运算器、控制器、寄存器三部分组成,完成程序控制、操作控制、时间控制、数据加工,所有设备都围绕它展开。大逻辑上其实非常简单,但细化开来确是那么的复杂,其主要组成部分如下图所示。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
正如很多疑难问题,从顶层设计向下看底层的时候可以抽象的相对简单,但是当立足底层视角的时候,总会碰到一些难题。

上篇中,我们先来看看ARM和Intel,他们的迥异初心。

ARM

ARM公司最早是由赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry在1978年创立(早期全称是 Acorn RISC Machine)。最早ARM公司在争取英国BBC教育项目中,寻找Intel与其286处理器合作,但是被Intel拒绝, 这间接导致了早期的ARM公司开始自主研发RISC(当然得益于BSD的RISC的研究) 芯片。

不过,ARM公司实现第一枚硅片(Acorn RISC Machine),被同年Intel 386吊打。意外的是,虽然性能差了点意思,但是芯片功耗很低(是386功耗的1/20),这样误打误撞从此就走入了移动市场。

1990年苹果(2000年后苹果公司通过出售该股票渡过了苹果的财务危机)等入资Acorn公司,接着改名为现在的ARM公司(Advanced RISC Machine),也开始进行IP授权。授权模式是三种:处理器、POP和架构授权。处理器授权只能调整功率和功耗,POP则是定制性能优化版本,架构授权则是授权厂商使用自己的架构设计处理器(高通/苹果/华为),当然华为目前是没有拿到ARMv9架构的授权的。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
其实在97年之前ARM也不算不上一帆风顺,直到诺基亚6110(1997年上市产品)用上ARM芯片,这才让ARM和诺基亚一飞冲天。继而,2007年的iphone上市,及08年的android手机上市等都采用的ARM处理器,终于完成了蜕变,拥有了今天的地位。

ARM公司的初心,基于精简指令集(RISC)架构,定位于嵌入式,轻量级、目的单一明确的程序,在移动设备上得心应手。因为指令集数量少,从而可简化硬件逻辑的设计,减少晶体管数量,也减少了功耗,形成了一个市场闭环。

在之前的移动环境下,例如平板、ipad、智能手机。应用程序,相对逻辑简单功能单一,“计算”较少(现在也正在发现变化,移动端的应用在不断的复杂化)。

当前ARM公司的产品演化了几个大系列:

系列 场景 备注
Cortex-A 最佳功率下的卓越性能 华为鲲鹏自研核,和该系列比较近
Cortex-R 可靠的关键任务性能
Cortex-M 最节能的嵌入式设备
Neoverse 可扩展且灵活的云到边缘基础架构 安培处理器的核是基于Neoverse N1原生核
SecurCore 物理安全应用程序的解决方案
Ethos 机器学习推理的场景

Cortex-A主要面向手机平板市场,看重能效比。Neoverse-N主打服务器、网络市场,要求更高的性能和更高的可靠性。Neoverse N1面向高性能设备,是平台名称,与之对应的CPU核心架构名称也是Neoverse N1处理器。平台包含处理器、总线、多核心系统等。Neoverse N1和相对应的处理器代表了ARM首款专为服务器和基础设施市场设计的专用IP,面向消费市场以Cortex为主,面向行业客户则由Neoverse披挂上阵。安培服务器就是基于Neoverse N1核的。

当前最新的基于ARMv8-a微架构处理器是A78。下图比较老,但是比较直观。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
这几年Arm成功地兑现了其所有性能、效率和面积承诺,为大多数手机旗舰设备提供了一些出色的SoC和器件。2018年Cortex-A76的推出以及随后产生的华为麒麟980以及Snap dragon 855芯片。2019年推出Cortex-A77。目前Arm的发展趋势,每一代Arm的系列CPU都将带来持续稳定的20-25%的性能提升。当然目前Arm真正的竞争对手是苹果的CPU设计团队:今年iphone 12应该是会采用5nm的A14,保持着巨大的性能和效率领先优势,可能是领先了两代微架构。

去年(2019)6月ARM发布了下一代架构设计方案其中包括:Cortex-A77 CPU/Mali-G77 GPU/ARM ML处理器。而今年的微架构就已经到A78了。

目前最新的ARM是cortex-a78微架构处理器,采用了5nm,不过规模上市预计在2022年。相比a77在性能和功耗上具有提升,如下图。
初心迥异 | ARM和X86的系统架构差异分析(篇一)

Intel

从1978年Intel发布一款新型的微处理器“8086”(16位)开始。Intel蹭着IBM的PC机大卖,一票走红,创造了一个PC处理器的时代(IBM当时也为了防止Intel垄断要求Intel授权给第二家公司可制造8086处理器,那就是AMD)。8086这块处理器也意味着x86架构的诞生,而x86也成为了一个特定的CISC计算机指令集,定义了芯片的基本使用规则。由于IBM PC机大卖,随后的各大厂家争纷开发IBM PC兼容机(都要求使用Intel处理器),以及Intel 386从16位到32位的提升,进一步为Intel处理器的起飞推波助澜。后来Intel与微软联盟组成Wintel,相互绑定(狼狈为奸)(PC处理器和PC操作系统,直到2011年微软才宣布支持ARM)。所以从开始,Intel就是在PC机市场。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
所以,Intel x86从开始就定位于PC机,应用多是计算密集型的,如多媒体、科研计算、模拟等(在1999年市值突破了5000亿美金,当然没有一家企业是顺风顺水的,在Intel 奔腾四(高频、高压、高功耗)年代(2005年+),基本是被AMD的速龙XP摁在地上打,而且后来的奔腾四双核为了追进度也是直接是胶水双核,就是将两个DIE直接封装在一起,没有专用总线,成为其历史上最愚蠢的决定之一)。从2006年的酷睿架构开始搭载笔记本电脑,Intel才开始再次的腾飞,并开始甩开AMD。

X86处理器的高效执行一直是Intel发展道路上的追求目标。另外,X86是复杂指令集(CISC)架构,本身存在很多机器指令,可以高效地完成一项专门任务(比如MMX, SSE中的指令)。

当然CISC架构也会使得硬件的逻辑复杂,晶体管数量庞大。为了进一步高效地进行运算,x86架构会有较长的流水线以达到指令级并行(ILP),而长流水线也会带来了弊端,当遇到分支时,如果预载入分支指令不是未来真实的分支,那么要清空整个流水。因此,x86有引入了复杂的分支预测机构,来确保流水线的效率。再加上多级cache,超线程、虚拟化等等技术,使得x86的复杂度越来越高,而向后兼容性也使得Intel历史包袱越来越大。

另外,AMD也会通过X86指令集的创新来反逼Intel,迫使Intel x86进行改变。而激烈的市场竞争也会不断的促进的处理器微架构升级,例如核显。从Sandy Bridge开始酷睿增加了核显,而且面积超大如下图。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
而在服务器市场主要是至强系列(从1998年就开始命名服务器市场的至强处理器),不可置疑的是,通过几十年的技术积累,x86服务器在服务器领域的地位已经独孤求败,而Intel 处理器也成为了PC处理器的代名词。
初心迥异 | ARM和X86的系统架构差异分析(篇一)
下篇ARM和X86的狭路相逢

上一篇:Kubernetes 系统架构初探\简单介绍


下一篇:预告:微软漏洞贡献榜中国第一人黄正——如何用正确的姿势挖掘浏览器漏洞|硬创公开课