同样ARM架构,苹果处理器更强的原因详解

发布者:beta12最新更新时间:2020-09-14 来源: elecfans关键字:ARM架构  苹果处理器  Swift 手机看文章 扫描二维码
随时随地手机看文章

苹果在2008 年4 月23 日,冒着极大风险硬着头皮发表初代iPhone 的隔年,耗费2 亿7,800 万美元,购并了专注开发高效能Power 处理器的PA Semi,组成其处理器研发团队的骨干,然后在2012 年9 月发表的iPhone 5,其心脏「A6」处理器,终于不再使用来自ARM授权的核心,采用自家的「Swift」微架构(Micro Architecture)。


再以世界上首款抢滩登陆智慧型手机与平板的64 位元ARM 处理器「A7」(Cyclone 微架构)为起点,苹果自家SoC 开始逐渐展现压倒ARM Cortex 家族(与躺着中枪的Qualcomm 自有核心)效能优势,且随着时间演进,差距越拉越开。

同样ARM架构,苹果处理器更强的原因详解

接着,每代iPhone 发表后,各大科技媒体网站的报导,与底下的读者回应,只会有两种制式的单细胞生物反应:


文章高高挂着「众人都惊呆了,连开发效能测试软件的人都不知道发生了什么事」如内容农场般的标题,再来继续机械化的炒作「苹果会不会用自家芯片取代Intel处理器」的多年冷饭。


底下的读者留言鸡同鸭吵成一团,上演「Android 自由主义」和「苹果神权政治」信徒大对决,没有人讲到任何值得注意的重点,连一丝一毫的学理成分都没有,宗教信仰就是如此奇妙。


笔者不啰唆,直接在这里讲结论:

藉由牢牢把持软硬件平台的「封闭性」先天优势,苹果掌握了ARM 指令集迈向64 位元带来的机会,打造出一系列同时间能够有效处理更多指令的先进微架构。


看起来好像微言大义到接近废话的程度?如果你真的这样想,那你就更有继续读下去的必要。


拨乱反正:做为电脑语言的「指令集架构」vs. 执行语言载具的「处理器核心微架构」

近年来拜ARM 为首的授权IP 商业模式之所赐,越来越多人搞不懂这两者的差别,完全混在一起,这些年来笔者已经听过太多让人完全笑不出来的笑话,所以在此特别重述一次。

支配智慧型手机市场的ARM 又是怎么一回事呢?以32 位元ARMv7-A 指令集为例,在手机上常见的微架构(核心),总计有:

ARM 本家卖IP 授权给别人的Cortex-A5 / A7 / A9 / A12 / A15 / A17 这几种核心微架构。


Qualcomm 自行打造的Scorpio / Krait。

苹果并购PA Semi 后关起门来搞出的A6「Swift」,iPhone 5 的心脏。

换成64 位元ARMv8-A,就变成以下场景:

ARM 本家卖IP 授权给别人的Cortex-A35 / A53 / A57 / A72 / A73 这几种核心微架构。

增加半精度浮点支援和系统可靠度机能的ARMv8.2-A 指令集:Cortex-A55 / A75。

Qualcomm 自行打造的Kyro。

nVidia 的Project Denver。

苹果继续关起门来搞出的A7「Cyclone」,与之后的众多芯片,如A8「Typhoon」、A9「Twister」、A10「Fusion」(Hurricane + Zephyr)、A11「Bionic」(Monsoon + Mistra) 。


为了伺服器而量身订做的特殊微架构,如Qualcomm Centriq 2400 的「Falkor」,和Cavium Thunder X 系列的核心。


只要作业系统相同(如同版本Android 或iOS),这些核心微架构应当正确执行使用ARM 指令集撰写或编译出来的软件,讲的更专业或更假掰一点,它们拥有相同的应用程式二进位执行档介面(ABI,Application Binary Interface),如同Intel 与AMD 的x86 处理器都应可正确安装Windows 作业系统,理所当然执行Office 等应用软件和Battlefield 等套装游戏。


至于Qualcomm、苹果和nVidia,是否根本自身特殊需求,自行定义「非官方」ARM 指令,那就后头有空再讨论了。


高效能之路:让核心微架构同时间内能够有效处理更多的指令

在执行相同指令集「语言」的前提之上,相容处理器的效能要能够胜出,只有微架构设计能否比竞争对手有效处理更多的指令。方向不外乎:

更高的时脉:虽然往往计算机概论会教你「指令管线阶段越多,代表处理器同时执行更多的指令,只是这些指令位处于不同的阶段」,但实际上最多还是一个时脉周期「吐出」一个被执行完毕的指令,所以现实层面的「加深指令管线」,实际上跟「提高运行时脉」讲的是同一件事。很不幸的,智慧型手机因严格的功耗限制,透过积极追求高时脉以提高效能,是比较不切实际的方向。


更宽的管线:一个便当吃不够,你可以吃第二个,嫌执行一个指令不够看,你也可以同时执行第二个,这就是源自1966年CDC6600的「超纯量」(Superscalar)架构。另外也有纯软件方式、让编译器去一个萝卜一个坑塞指令到不同执行单元的「超长指令集」(VLIW),这就不在本文的讨论范围内了。


足以喂饱嗷嗷待哺执行单元的高效能记忆体子系统:包含系统主记忆体、快取记忆体、连结多个处理器核心的汇流排、举足轻重的快取记忆体资料一致性协定(Cache Coherence Protocol) ,甚至可以非循序的存取记忆体位址(Memory Disambiguation),都是不可或缺的「基础建设」。


天底下没有白吃的午餐:两种该死的「相依性」

但「指令管线化」与「指令执行平行化」也带来了新的挑战。

控制相依性:电脑有别于计算器的最重要特征在于「条件判断」的能力,根据不同的条件执行不同的指令流,处理器如碰到分支(Branch)或跳跃(Jump),就须改变指令执行的流程,清除已经进入管线的指令,从另一个记忆体位址撷取指令,重新执行并存取相关的资料(或称为「运算元」,意指运算的目标,如特定资料暂存器或记忆体位址),而具备条件判断的分支,造成的伤害更大,因为需要管线停下来等待其结果、或着事先预测并「先斩后奏」。


解决方案:分支预测(Branch Prediction),与后面会提到、釜底抽薪减少分支指令的「条件执行」(Conditional Execution)。


资料相依性:当同时执行多个指令,最忌讳遭遇「撞衫」同时存取相同的资料暂存器与记忆体位址,特别是当指令集定义可操作的资料暂存器越少,软件手段可以尽量排除的空间越少,发生的机率也越高。


解决方案:以暂存器重新更名机制(Register Rename)为中心的非循序指令执行(Out-Of-Order Execution)。


然后根据分支预测结果而先斩后奏「预测性执行指令」(Speculative Execution),是分支预测与非循序指令执行的结合体。总之,我们尽其所能的让管线「顺畅」的像生产线不停的运转,实现最高的指令执行效率。


理所当然的,指令管线越深,一旦「筊杯」失败,要复原管线并恢复指令执行的代价,也越像火烧摩天楼一样恐怖,这也是高时脉深管线近年来不太受欢迎的另类主因,因为现实世界的应用程式,其实有很多难以预测的分支行为,越高的「代价」,更意味着更差劲的「效能/功耗」比。


LLVM 开发环境参数透露的神秘讯息

讲了那么多原理,苹果从来不公开自主微架构的技术细节,那该如何掌握他们追求高效能的设计方向?


2014 年初,当多数世人正「惊呆」A7 的64 位元与惊人的性能表现时,有人注意到苹果提交的LLVM 原始代码,不仅透露了微架构代号是「Cyclone」,更包含众多重要的规格参数:

指令发出宽度(Issue Width):6

非循序指令执行缓冲区(Reorder Buffer):192

记忆体载入延迟(Load Latency):4

分支预测错误代价(Misprediction Penalty):16(一般介于14~19)

同样ARM架构,苹果处理器更强的原因详解

在当时,这是非常惊人的规格,就算摆在今天也是同样骇人,可同时处理的指令是同时期ARM 核心足足两倍(即使64 位元的Cortex-A57 也只能3 个指令),非循序指令执行引擎的「深度」则是Intel Haswell 等级,指令管线深度则中规中矩的维持在16 阶这一般水准。


相信有些读者早已从其他网站看过相关的报导,但有个「江湖传言」倒是值得注意:部分开发iOS 应用程式的程式设计者,做了一些指令输出率的实验,察觉到「A7 一旦执行32 位元程式码,指令输出率就腰斩了」,这个「特性」一路延续到A10,直到A11 根本没有32 位元应用程式可执行为止。


后来苹果当然就没有继续「规格大放送」,Wiki上苹果处理器的规格表,一路从A7到A11,都是维持这些数字,有没有经过实测考验也不得而知,反正就大家一起无限回圈继续惊呆,苹果持之以恒的甩开和其他竞争者的差距。


唯一可以确定的是,笔者在自己的iPad Pro 9.7 吋A10X 上,透过配对简单指令,测出每个时脉周期可同时输出「4 个整数,2 个浮点,2 个记忆体载入」的可怕性能。此外,A10X 与A11 放弃第三阶4MB 快取记忆体,而以大型化第二阶8MB 取而代之,也暗示了苹果极可能在快取记忆体技术有了重大的突破,可兼顾高容量与低延迟。


A11?笔者没有iPhone 8 和iPhone X 可用,有机会再测测看。

让我们重新画出命案现场的人形粉笔圈,归纳出苹果的产品设计取向:

微架构以64 位元效能为优先设计考量。

既然行动处理器受制于低功耗需求,难以透过提高时脉追求效能,索性以「更宽」的指令管线取胜。

同时执行更多指令,代表要耗费更多心思去解决暂存器相依的问题。

更强力的非循序指令执行引擎。

寄望指令集本身就定义更多的资料暂存器,降低「强碰」机率。

ARM 指令集走向64 位元带来的重大改革

让ARM 指令集迈向64 位元的ARMv8-A,并非只有「将整数逻辑暂存器宽度延长到64 位元」和「提供64 位元记忆体定址空间」这么简单,抛弃昔日专注于嵌入式应用的遗产,更加的简洁优雅,更利于打造高效能微架构,引领ARM 荣登高效能的天堂,是这次指令集改版最神圣不可侵犯的绝对使命。

同样ARM架构,苹果处理器更强的原因详解

ARMv8-A 修订项目极多,但就笔者的角度,除了取消「加速重建储存CPU 状态的Context Switch 相关机制」(一堆就今日观点实在很小家子气的技术),和简化例外处理与执行特权阶层外,最重大的改革,只有两项:

倍增通用暂存器(GPR)数量,这件事在当年AMD 让x86 迈向64 位元时也发生过,意义重大。


取消涵盖整套指令集的「条件执行」(Conditional Execution),这和前者互为表里,因为总算挤出了珍贵的指令编码空间去增加暂存器数量。


其中又称为「引述式执行」(Predicated Execution,或Guarded Exectuion)的后者,目的在于减少程式中的分支,指令集提供简单扼要的条件执行指令,一次做完所有事情。

直接举例比较快。原本一个简单的If-Then-Else 循序条件判断,会需要等待确认条件结果,或着强行进行分支预测,管线才会继续动作:

if condition 

then do this 

else 

do that

就变成这样:

(condition) do this 

(not condition) do that

有没有感觉简洁多了?讲的玄一点,条件执行的中心精神在于「将控制相依性转化为资料相依性」。

然后有鉴于过去的应用程式,在这种If-Then-Else 的条件判断中,有60% 都是资料搬移指令,这也是为何指令集「事后」扩充条件执行功能,如DEC Alpha、MIPS、甚至x86,都以「条件搬移」(Conditional Move)为主。


以Alpha 为例,其指令格式统一为cmovxx(xx 代表条件),一个简单的条件搬移:

beq ra, label // if (ra) = 0, branch to 'label'

or rb, rb, rc // else move (rb) into rc

可以透过新指令,简化如下:

cmovne ra, rb, rc

在ARMv8 之前,整套ARM 指令集每道指令,都包含了4 位元的条件码,必须符合「某个条件」才会执行指令。如条件成立,执行此指令并写回运算结果。反之,指令执行结果无效,或不予执行。


回到原点,条件执行的优点很明显:

加速实际条件判断的效率,因为实际上只要比较0 与1(Bitwise)。

减少简单条件判断的分支,可以提升指令平行化执行的潜力。这也是为何很多VLIW 指令集普遍支援条件执行。甚至定义存放引述码(Predicate)的专用暂存器,以因应更复杂多样的条件判断,如摊平回圈的软件管线(Software Pipeline)。


但为何ARM 要取消看似完美的条件执行?

占用4 位元指令编码,实在是太浪费了,所以用「条件选择」(Conditional Select)取而代之。


举个范例:「CSEL W1, W2, W3, Cond」,如条件符合,W2 暂存器资料搬移到W1,如非,就W3 到W1。缺点是会稍微增加程式码体积,但绝对划算。


提高打造高效能非循序指令执行引擎的复杂度,在管线前端就要「预锁」后面所需要的相关资源,也增加后方需要「更名」的暂存器,更不利提升时脉。


A11「极可能」是纯64 位元的微架构

可确保处理器正确执行所有软件的指令集回溯相容性,是商业上的「资产」,但也是设计处理器微架构的「包袱」。


我们有非常充分的理由相信,苹果急着驱离「32 位元低阶应用程式」,就是为了其处理器全力针对64 位元最佳化造桥铺路,而A11 如此惊世骇俗的效能表现,除了它根本是纯64 位元处理器,所有电晶体预算都砸在提升效能的刀口上,没有其他合理的解释了(新的异质多处理器排程也有影响,但没那么绝对)。「就算」A11 具备32 位元相容性,其性能表现恐怕也仅聊胜于无,不足挂齿。


无独有偶,Qualcomm 企图抢攻伺服器市场的Centriq 2400,也是纯64 位元的设计,这就是ARM 制定64 位元指令集扩充时,最希望看到的结果:雨后春笋般的高效能产品。


同场加映:Mac 改用自家芯片的可能性

关于这个「年经」(每年发表一支新iPhone)议题,笔者不会赌上爷爷的名誉做不负责任的推论,但只留下两个留待读者思考的问题:

苹果能否承担转移的成本,尤其当Mac 用户已非弱势族群的当下。

苹果是否仍希望「吸收」Windows PC 的使用者。

Mac 是否改用苹果自家芯片这档事,并不只是「效能够好」就可以一笔轻松带过的大哉问,请各位多多考量商业层面的因素。


苹果同时掌握软硬件的「不公平竞争」

最后,再重新贴出本文标题的答案:

「藉由牢牢把持软硬件平台的『封闭性』先天优势,苹果掌握了ARM 指令集迈向64 位元带来的机会,打造出一系列同时间能够有效处理更多指令的先进微架构。」

这「一体成形」的绝对优势,在可见未来的深度学习之路上,会更加的牢不可破,这就是苹果在iPhone 前景未明之际,就胆敢购并PA Semi 投资未来,所得到的丰硕成果,就算你不喜欢「果粉」,你也不能不佩服乔布斯的远见。


至于PA Semi 究竟干过哪些值得苹果冒险的好事,等以后有机会,再好好谈谈,如果真的还有机会。

关键字:ARM架构  苹果处理器  Swift 引用地址:同样ARM架构,苹果处理器更强的原因详解

上一篇:ARMv8 通过设计简化软件移植详解
下一篇:基于ARM与DSP的主从式双CPU嵌入式四轴运动控制器设计方案

推荐阅读最新更新时间:2024-11-05 06:16

为什么MIPS转向移动领域:与Art Swift对话
最近,我们拜访了MIPS的营销和业务发展副总裁Art Swift,希望发现MIPS科技在移动手机市场处在怎样的境况。这次谈话讨论的内容如下。 问:为什么MIPS在此时此刻选择扩张进入移动市场? 答:MIPS一直是公认的数字家庭产品嵌入式处理器的领导者。我们在网络领域也有非常强有力的地位。我们正在利用我们在这些市场中的领导地位扩张进入高增长的移动电话市场。市场预测表明,从2010年起智能手机和高端功能的手机出货量大幅增加。这些设备具备高性能和高端多媒体功能,使消费者能够在任何时间、任何地点快速获取高清内容。MIPS架构可以在满足这些要求方面增加重要价值。 进入移动手机市场是一个激动人心的时刻,我们之所以这样做,
[嵌入式]
苹果iPhone 5 ARM处理器遭流氓专利诉讼
北京时间11月24日消息,据苹果专利博客PatentlyApple报道,一家名为Vantage Point Technology(以下简称“Vantage”)的公司日前向德州东部地区法院递交诉状,指控苹果公司基于ARM处理器的多款iPhone、iPad 设备侵犯了其所持有的一项专利技术,并试图寻求赔偿。   据悉,Vantag称其所持有的这项专利名称为“多重指令管线和单独TLB上的数据处理系统虚拟技术转换方法及设备”,这项专利号为“5,463,750”的专利技术由Intergraph Corporation公司在1995年获得。   Vantage在诉状中称,苹果基于ARM处理器的部分产品都使用了该技术,包括搭载了苹果A6、A
[模拟电子]
2020年Q3全球智能手机应用处理器份额,苹果遥遥领先
Strategy Analytics手机元件技术(HCT)服务最新发布的研究报告《2020年Q3智能手机应用处理器市场份额追踪:收益增长32%》指出,2020年Q3全球智能手机应用处理器(AP)市场收益同比增长32%,达到74亿美元。 报告指出,2020年Q3苹果、高通、联发科、海思和三星LSI占全球智能手机应用处理器市场收益的前五名。苹果以31%的收益份额领先,其次是高通(21%)和联发科(19%)。 受5G应用处理器的推动,2020年Q3智能手机应用处理器市场收益达历史新高。智能手机内置的人工智能应用处理器芯片收益同比增长了28%。 Strategy Analytics副总监Sravan Kundojjala表示:
[嵌入式]
三星产苹果A9处理器比台积电的小10%
   9月29日消息,据国外媒体报道,众所周知,苹果用于新iPhone上的A9处理器是由三星和台积电共同提供,然而两家制造厂的工艺并不相同,所以A9实际上拥有尺寸不尽相同的两个版本。 其中,代号为APL0898的A9处理器为三星生产,制造工艺为14nm FinFET,芯片总面积为96平方毫米;而代号为APL1022的处理器为台积电生产,工艺为16nm FinFET,芯片总面积为104.5平方毫米。三星生产的处理器在面积上较台积电的小了10%,因而功耗也可能会较之后者更低。 苹果过去也曾有过同时使用两家不同供货商的经验,不过反响并不是很好。早在2011年版的Mackbook中,苹果同时使用了三星和东芝提供的SSD,然而前者
[手机便携]
56核最强笔记本处理器 苹果自研芯片迎来最大升级
北京时间8月8日消息,苹果公司已开始测试其最高端的下一代笔记本电脑处理器:M3 Max,为明年发布有史以来最强大的MacBook Pro做准备。 来自第三方Mac应用开发者的测试日志显示,新款M3 Max芯片包括16核中央处理器(CPU)和40核图形处理器(GPU)。其中,16核中央处理器包括12个高性能核心,用于处理视频编辑等对计算能力要求很高的任务,另外4个能效核心用于浏览网页等低强度应用。与苹果目前笔记本处理器M2系列的顶级版本相比,M3 Max多了四个高性能CPU核心和至少两个额外的图形核心。它是一款代号为J514的高端MacBook Pro笔记本的核心,该笔记本预计将于明年发布。目前正在接受测试的MacBook Pro还
[家用电子]
苹果教育版iPad拆解:A10处理器和触控笔为最大变化
    凤凰网科技讯 据科技博客AppleInsider北京时间4月4日报道,专业维修公司iFixit在周二发布的拆解报告显示,苹果公司最新发布的教育版iPad 6主要有两个重大变化,外加少量小变化。   拆解显示,新iPad的最大变化是采用了升级版A10 fusion处理器,并增加了对Apple Pencil触控笔的支持。此前,标准版iPad并不支持Apple Pencil。   iFixit发现,新iPa继续采用了A1484型号电池,与iPad 5相同,但保留了此前妨碍维修的粘合剂。另外,新平板还保留了恩智浦半导体的8461A1 Touch ID芯片。   新iPad拆解   新iPad还使用了一对博通BCM1
[手机便携]
台积电独家获得苹果A12处理器代工订单
据台湾媒体报道,供应链透露,台积电凭借7纳米制程的优良性能,独家获得苹果下一代处理器A12的代工订单。 台积电今日举办30周年庆典,包括苹果、高通、英伟达等公司高层出席,这条消息无疑给业界打了强心针。据悉,台积电股价已经创下新高,达到2000亿美元,超出了老对手英特尔。 据台积电透露,到明年底将有50款产品导入7纳米量产,除了苹果,还有高通、海思等。 一手缔造台积电盛世的教父级人物张忠谋,则宣布将于明年6月退休。
[嵌入式]
苹果iPad深度拆解分析:探寻A4处理器的奥秘
  世界因为有了Apple新产品iPad而变得更迷人?研究机构UBM TechInsights除了拆解iPad,也针对其内部由Apple自行开发的A4处理器进行深入探究;以下分析师Young Choi将带领读者解剖A4奥秘。   在看A4之前,先回顾一下Apple的应用处理器开发史:从2007年的第一代iPhone开始,Apple每年都推出两款新的移动产品,而且是iPhone与iPod Touch系列交替上市,依序是iPhone、第一代iPod Touch、iPhone 3G、第二代iPod Touch、iPhone 3GS、第三代iPod Touch,然后就是iPad。这些产品内部的应用处理器如下表:   根据UBM T
[手机便携]
<font color='red'>苹果</font>iPad深度拆解分析:探寻A4<font color='red'>处理器</font>的奥秘
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved