ARM前不久发布了一款新的核心架构——Cortex-A17。从名称来看,Cortex-A17应该在Cortex-A15之上,远高于Cortex-A12。但实际上,Cortex-A17仅仅是Cortex-A12的小改版而已,基本技术结构和Cortex-A12如出一辙,只是在有关总线、big.LITTLE技术上进行改变。Cortex-A17更像是ARM的一款“马甲”产品,而且据传它和联发科有很深的渊源……
2014年2月中,ARM发布了一个全新的架构,命名为Cortex-A17。在这个架构发布后,ARM的Cortex-A系列产品线就拥有了Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A12、Cortex-A15、Cortex-A17以及64 bit的Cortex-A53Cortex-A57一共九个架构。根据ARM对产品命名的一般规则来看,Cortex-A系列架构可提供的高性能是按照架构的数字大小进行排列的,那么Cortex-A17的性能应该比性能强大的Cortex-A15更强。但事实并非如此,Cortex-A17完全没有Cortex-A15那样庞大、彪悍的内部结构,它仅仅是Cortex-A12的改进版本,性能无法和Cortex-A15相提并论。那么ARM推出Cortex-A17的用意何在?Cortex-A17又有哪些值得我们关注的地方呢?
ARM在发布Cortex-A17时并没有详细提及它所采用的架构。但我们仍可从已有的资料中发现,相比Cortex-A12,Cortex-A17基本上没有对CPU内核做出任何调整,依旧沿用了Cortex-A12的设计。这就让人有些疑惑,Cortex-A17的改进究竟在哪里呢?
在了解新的东西之前,我们先来回顾一下Cortex-A12的一些情况。Cortex-A12在发布时被ARM官方介绍是用于替代Cortex-A9的新架构,其设计更接近于Cortex-A15,管线更为“乱序”,同时也更长,因此官方预测它的性能大概超出Cortex-A9约40%。
根据ARM提供的官方数据,Cortex- A17的性能在“特定的频率和工艺下”(注意这个描述),相比新的Cortex-A9r4提升大约60%,相比Cortex-A12也有大约20%的性能提升,也就是说它的性能达到了和Cortex-A15一样的档次。为了更清晰地说明Cortex-A17的性能,我们参考ARM官方数据中使用的DMIPS/MHz来衡量它们的性能水平(需要特别说明的是,使用DMIPS/MHz来衡量不同核心的性能实际上并不是好的方法,DMIPS/MHz的衡量手段比较老旧,很难在复杂的实际应用中反映出CPU核心的性能。不过在单纯比较ARM CPU架构的时候,DMIPS/MHz还是可以作为一个参考数据来使用,这也是之前ARM官方使用过的衡量方法。所以在这里为了让读者有更直观的感受,我们还是引入了该数据以供说明和参考),Cortex-A17性能的估计值大概是4.0 DMIPS/MHz,目前性能强大的Cortex-A57大概为5.0DMIPS/MHz,而Cortex-A9的性能为2.5DMIPS/MHz,Cortex-A15也是4.0DMIPS/MHz,比较差的Cortex-A7差不多在1.9DMIPS/MHz左右。从这个数据来看,Cortex-A17的性能还是很不错的。
不过令人遗憾的是,由于ARM还没有给出有关Cortex-A17具体改进的介绍,因此无法进行详细的结构对比。但就目前已知的资料来看,Cortex-A17可能在内存和总线系统上做出了改进,使得Cortex-A17能在计算核心不变的情况下获得更高的性能。此外,Cortex-A17的总线采用了AMBA4 ACE,终于正式支持big.LITTLE技术。相比Cortex-A12没有提供对big.LITTLE技术的支持,Cortex-A17能更好地适应ARM未来的异构计算发展计划,在不同的环境下提供不同的核心以达到尽可能高的性能功耗比的目的。
这样看来,Cortex-A17的实际改进相比Cortex-A12并不明显,性能提升幅度也不够大,但为什么Cortex-A17能够在型号编号上力压Cortex-A15呢?
Cortex-A17可以和Cortex-A7组建big.LITTLE大小核心,图为ARM以Cortex-A17和Cortex-A7、Mali-T720组建的ARM SoC的架构示意图。
瑞芯微在发布RK3288时所使用的广告牌,明显可见Cortex-A12的“2”并非原生打印,而是事后改写的。
回顾ARM架构的发展历程,可以发现ARM习惯于在一个架构下进行多次改进和微调,同架构前后代次不同,性能表现也有比较大的差异。以Cortex-A9为例,早的Cortex-A9版本极限频率在1.2GHz左右,高也不过1.5GHz,功耗和性能表现只能说是普普通通。而新Tegra 4i上的Cortex-A9 r3p1版本的核心频率已经飙升至2.3GHz,性能功耗比由于多项能耗控制技术的应用也变得更为令人满意。同样的事情也发生在Cortex-A15身上,早期的Cortex-A15性能功耗比堪称所有Cortex-A家族中差的,可新的Cortex-A15 r4版本在这方面也有了很大的改善。虽然其中有工艺进步、制程改进的原因,但是不能不说ARM本身对架构的改进也有很大的帮助。
不过ARM采用的这种技术改进方式,对市场宣传来说可能并没有太大优势。比如Cortex-A9核心,在三四年前就开始使用其初版本,到了2014年如果用户购买到的手机使用的还是Cortex-A9核心,肯定会感觉有些过时。但实际上新的Cortex-A9核心和初的Cortex-A9核心变化还是相当大的。仅凭面向技术研发人员的“r4p1”这样的版本号来进行核心的命名显得不够“时髦”。
因此,在Cortex-A17上,ARM很可能是听取了合作伙伴的意见,在市场运作方面使用了新的策略。无独有偶,在2014年年初的时候,瑞芯微发布了一款全新的处理器,型号为RK3288。当时瑞芯微的展板广告牌上宣称这款产品使用了“Cortex-A17”架构以及Mali-T624的GPU。要知道Cortex-A17的发布时间是在2014年2月,难不成在2014年1月的时候,瑞芯微就已经提前拿到了这一新架构?这在英特尔或者AMD的合作伙伴上是有可能发生的,毕竟他们销售的是实体硬件芯片,但是对于架构授权厂商的ARM来说,没有产品,只有设计图的营销方式意味着即使秘密发布给某些合作伙伴意义也不大,甚至会损害其他合作伙伴的利益。
但是很快瑞芯微就将展板上的“7”用标签纸盖住,改成了“2”,然后对外宣称是文案错误。一些媒体记者以此求证ARM,ARM也对此矢口否认,声称:“没有!瑞芯微的图片发错了,他们已经改过了。”随后瑞芯微在官方宣传中也改为Cortex-A12。但令人更为疑惑的是,直到2月中旬Cortex-A17正式发布后,瑞芯微的官方也没有宣称自己使用的是Cortex-A17架构,反而在一篇引用媒体的文章中称之以“全新架构”。
从一开始“不小心使用Cortex-A17”,到“宣称没有Cortex-A17”,终“正式发布Cortex-A17”,三部曲接连上演,真是好戏纷呈。与此有关的是,Cortex-A17的产品将很快出现在市场上。几乎就在ARM发布Cortex-A17的同时,作为ARM处理器普及型产品大厂的联发科MTK,迅速发布了自己旗下的MT6595,这在之前是几乎不可能的。因为作为设计厂商的ARM,在新架构发布后,往往需要合作厂商经过较长时间将其实现成为具体产品,比如Cortex-A57,2013年就发布了,厂商的产品大多会在2014年中期发布,真正到实际产品面世乐观的估计可能要到2014年年底。但是这次Cortex-A17的架构发布和产品出现几乎同步,实际产品甚至已经有样品出现了,不得不说是一个“奇迹”。
有消息显示,Cortex-A17架构可能是专门为联发科定制的核心。联发科需要这样一颗核心来打入中高端市场,以提升它的品牌影响力,改变其以往给消费者的低端形象。Cortex-A17支持big.LITTLE也正中联发科的下怀,毕竟Cortex-A17搭配Cortex-A7组成“4+4”的核心,其具体表现应该是相当不错的,很适合放到主流市场中去。如果此报道属实的话,不但可以解释联发科为什么能这么快推出实际的产品,也能很好地解释为什么瑞芯微的宣传文案中直到现在都只能说自己的核心是“全新架构”,而闭口不提Cortex-A17的原因了——联发科如果真的和ARM有相关的协议,那么应该是具有排他性的,在某个时间点之前,别的厂商不能使用Cortex-A17的名称。这样一分析,目前的情况也就说得通了。
瑞芯微官方网站资料显示,RK3288使用了“全新架构”
这是Cortex-A12发布时ARM官方规划图,Cortex-A12是用于代替Cortex-A9的产品。不过Cortex-A17出现后,Cortex-A12的日子并不好过,应该会迅速过渡到Cortex-A17。
Cortex-A17将在未来很长一段时间内扮演起32位ARM架构主力的角色。
有关处理器的制程,ARM表示目前成熟的28nm才是经济、性能、效率优的选择,直到下下一代16/14nm工艺才会有显著的进展。
从产品命名的角度来看,Cortex-A17的序号比Cortex-A15要高。两者的理论性能都是4.0DMIPS/s,Cortex-A17受益于更低的功耗表现,因此产品序号比Cortex-A15高还算基本合理。不过仔细推敲下来,同频率下Cortex-A15得益于更大规模的架构,性能表现应该会更为出色,毕竟Cortex-A17只是Cortex-A12的改进版本而已。
如果说Cortex-A15受到的威胁还算可以忍耐的话,Cortex-A17对Cortex-A12所形成的威胁就更为直接了。在Cortex-A17发布前,厂商就有可能会停止推出有关Cortex-A12的产品,全面转向Cortex-A17——毕竟这两个核心架构如此接近,小改进就能获得大提升,何乐而不为呢?于是,在去年ARM发布Cortex-A12时,那个宣称是“替代A9”、“未来主力产品”的新架构就很有可能会在接下来的时间中被厂商果断抛弃。除非已经设计定型的产品,未来应该不太可能再有厂商推出基于Cortex-A12架构的处理器了。不过ARM官方倒是比较乐观,他们认为Cortex-A17在2015年才能正式接班,在这之前Cortex-A12的市场还是非常广阔的。不过考虑到联发科和瑞芯微的实际产品以及ARM市场激烈的竞争,ARM官方的话听听就好了。
虽然今年不论是厂商还是消费者,关注的重点都是64位产品。但正如我们在今年2月下刊对64位处理器的前瞻报道中分析的那样,64位处理器从实际产品到软件应用环境,距离成熟都还有较长的一段距离,也就是说它离消费者还比较远,32位处理器依旧会是2014年市场的主角。而根据ARM的规划,我们可以看到Cortex-A17将在未来的3~5年内,担负起中低端市场主流产品的任务。ARM认为,在ARM平台从32位过渡到64位的3~4年间,ARMv7-A架构都将会是市场的主流产品。2013年有超过10亿台手机出货,这些设备将平均拥有3年多的使用寿命,拥有超过100万应用程序兼容ARMv7-A架构。在这么长的时间和如此庞大的市场中,ARMv7-A的设备依旧具有广泛的发展空间。因此,以Cortex-A17为代表的ARMv7-A架构肯定会长期获得用户的青睐。
无论Cortex-A17是改名后的马甲也好,革了Cortex-A12表现都很不错:性能甚至直逼高端的Cortex-A15,功耗却向Cortex-A9看齐。相信凭借这两点,Cortex-A17就已经拥有了在主流市场中很强的话语权。在未来很长一段时间内,可能Cortex-A17都会伴随着我们,成为移动产品重要的核心架构,也改变着我们生活的方方面面。
对于Cortex-A12在架构方面的改进,可以简单归纳如下:
Cortex-A12的指令集使用了更新的ARMv7-A,相比之前Cortex-A9的ARMv7,新版本的CPU内存寻址空间可以提升至1TB。其他技术方面,ARMv7-A可以支持单周期执行两条ARM指令,NENO SIMD指令集可以操作128bit寄存器,NENO可以高同时操作16个8bit数据、支持虚拟化技术、支持128bit的AXI4总线。
Cortex-A12流水线深度为10~12级,L2缓存彻底内置,所有核心共享L2缓存,整体架构更为先进。在浮点能力方面,Cortex-A12采用了第四版NENO单元和vFP单元,性能更强。架构方面,Cortex-A12前端采用了双Decoder单元,兼顾功耗和性能。在分支单元上,Cortex-A12的分支单元相比之前的Cortex-A9要强很多,分支预测能力更为优秀。在计算单元部分,Cortex-A12的三个指令排序单元分别跟着两个乱序整数ALU、两个乱序地址产生单元和两个乱序的FP/NENO单元—Cortex-A12还将Cortex-A9上原本为顺序的浮点和地址单元改成了乱序执行,配合更为强大的指令排序单元,进一步加强了CPU的性能和效率。
从整体架构改进的角度来看,Cortex-A12相比之前的Cortex-A9,在特定的频率和工艺下,性能提升大约有30%~40%。Cortex-A12和Cortex-A9在架构继承上的关系不明显,内核部分反倒更像Cortex-A15的缩减版本。
Cortex-A12架构图。双指令发射和尽量偏向性能功耗比的设计使得其定位被限制在主流市场。
作为目前首款发布并有实物展示的Cortex-A17架构的产品,联发科MT6595可谓出尽了风头。这颗SoC采用了big.LITTLE技术,集成了四颗Cortex-A17核心和四个Cortex-A7核心,CPU高频率达到2.2GHz~2.5GHz。GPU方面使用了PowerVR G6200系列GPU,这颗GPU曾经被使用在苹果A7上,即使联发科使用的GPU规模有所缩水,但性能肯定也不容小觑。尤其值得一提的是,MT6595集成了全新基带,支持LTERelease9 Cat.4,并支持TD-LTE、FDD-LTE以及HSPA+、TDSCMDA、EDGE、GSM等几乎全通讯模式。