ARM 阵营的自主微架构或采用标准 Cortex-A 微架构到底差在哪?
在稍早 ARM 宣布 64 位元强化版指令集 ARMv8-A 以及全新的高阶微架构 Cortex-A72 时,初始共同宣示的合作伙伴少了过去常见的亲密伙伴三星,虽然 ARM 表示有高达 10 家以上的合作伙伴成为首波授权伙伴,不过日前就不断有传闻三星将开始自行设计微架构,也不能排除三星打算追随苹果、高通、 NVIDIA 走向自主架构之路的可能,然而有便利的 Cortex-A 微架构授权,为何还要另起炉灶?
ARM 的架构如其全称 Advanced RISC Machine 一样,就是基于精简型指令集架构 RISC 为基础所设计,不过随着市场需求改变,智慧手机兴起之后整个市场对于 ARM 架构的效能需求快速攀升,故也渐渐走向复杂化的运算级架构,像是稍早发布的 Cortex-A72 微架构,就声称比起五年前的高阶架构效能攀升 50 倍。
然而现在的情况是, ARM 的 Cortex-A 微架构虽然是只要花钱授权就可取得的微架构,为何会有厂商愿意仅授权 ARMv7 与 ARMv8 指令集重新设计属于自己的微架构?这边就先简单介绍一下原因。
虽然架构复杂可以靠著制程方式降低功耗与发热,不过自去年 Cortex-A15 架构的产品逐渐问世后其实也间接证实效能与功耗难以兼得,是故才会有大小核架构的诞生;大小核借由较为简单但功能仍旧齐全的 Cortex-A7 作为在低负载状态下的系统运作架构,等到需要高效能时才转换到 Cortex-A15 。
不过终究来说,大小核的出现也反映 ARM 的设计在高效能与低功耗之间还无法取得平衡点,关键就在于其基础架构缺乏核心独立管理的设计,然而这在 PC 的 x86 处理器却已经是多核处理器必备的设计。
在 ARM 的标准微架构下,虽然功能已经比初期开放许多,不过基本上就是以最多四个核心成为一个群组,该群组内的核心将依照相同的时脉与电压运作,后期则是开放各核心可单独进行休眠的,然而仍不能像 x86 的多核心设计一样各个核心以不同的电压与时脉运作。
这样的架构产生的问题是即便现在的工作需求仅超越单核心 10% 的效能,当开启第二个核心时,仍需要将两个核心以相同的高时脉处理工作,无法依工作量调配第二核心的时脉与电压;同时大核心架构也由于过于复杂,待机功耗也无法降低,才因此设法透过第二组低功耗的核心做为平时运作的核心。
所以如高通的 32 位元自主微架构 Krait 的其中一项特色,其实就是将四个核心拆开视为四个独立的核心群组,避开 ARM 标准微架构下必须四核心同步的状况,同时也借由独立可变电压与独立时脉管理,借此降低功耗同时取得效能上的平衡点;不过也由于架构略为复杂化,导致 Krait 的时脉效能转换始终不及原生的 Cortex-A 微架构。
另一个促使各家厂商投入自主微架构开发的诱因,就是效能的改善,最显著的例子就是苹果的 A 系列处理器;苹果已经透过授权方式取得 ARM 指令集重新设计核心好一阵子,从结果论来看,虽然在纯运算效能上不及高时脉的 ARM 微架构,然而若以相同时脉换算的效能比却相当的惊人。
另一个例子则是 NVIDIA 在去年底所推出的 Tegra K1 双 Denver 版本, Denver 是 NVIDIA 依循 ARMv8 指令集重新设计的 64 位元微架构,在多个测试成绩也是少数与苹果 A8 所采用的核心设计效能相当的,虽然该处理器核心时脉设定较高,但也别忘了苹果还有系统架构最佳化的优势,也证实若有能力设计自主微架构,也能改善 ARM 标准微架构的功耗效能比。
然而每一家厂商各有擅场,也非得要自行设计架构才能创造商品差异化,毕竟运算核心不过只是整个 SoC 的一部分,即便两家厂商使用相同的 ARM Cortex-A 搭配同级的 Mali GPU 并且以相同制程生产,由于其他周边架构规划的不同,在实际体验仍会有显著的不同。
故采用自主架构的意义不光只是改善效能,更有一部份更是借由自主架构与标准微架构的比较,借此证实在研发与技术上的实力,但也非每一家厂商都有能力规划出良好的架构,毕竟像是 NVDIA 借助于延揽全美达的工程师, AMD 则有其 x86 架构经验为基础,所以多半的厂商仍宁可使用速成的 Cortex-A 微架构。
但相较于 x86 架构由少数厂商垄断架构技术, ARM 则透过可选择授权指令集以及授权微架构的方式,同时不硬性规范整个 SoC 设计的方式,使市场上采用 ARM 指令集架构的晶片得以差异化,也因此不致使 ARM 架构处理器的产品发展落入僵化。
你或许会喜欢
成为「简报大师」的第一步!iCIRROUND iShowPin 多功能蓝牙简报控制器动手玩!
没想到MiniCooper的3C周边产品那么多元啊~~
年终不够用?添好运拉霸帮你加码!