这完全两种不同的玩法(泛制化vs定制化),自然出来的东西差别巨大。因此你甚至就不能去比较这两个成品模块。粗暴一点来打比方,就像这样:乐高搭出来的大巴车(要考虑拉很多人,带着各式行李的人,推着孩子上车的人;有人要车开得稳,有人要车开得快,有人要开得远);很显然一种大巴车不能满足要求,高通整出大巴车,面包车,小巴车,各种各样的载客车型。乐高搭出来的私家车(虽然核心需求是类似的,就是平稳/快速/续航,但是因为我只考虑带一家人,限制少了很多,苹果设计师就有余粮做各式各样的优化,全部堆在着一辆私家车上。
高通为例,他可能用标准cortex-a7x/mx,也可能用自己研发的核心(比如kryo,这个不太成功)他不用arm的mali,用自己的adreno,这个很成功;他应该用了amba, 做没做定制化不确认。他用了很多第三方的其它ip block;他要为不同的客户提供不同的套餐(好多好多种组合,snapdragon 2xx/4xx/6xx/8xx); 组合是数量级复杂的。为了最大化利用arm生态的便利,接口/外设/调试手段,他都倾向于尽量和行业主流兼容。这是典型的泛制化做法,选择太多了,有时候很痛苦(大多数客户买单吗?)。
另一些个nb的玩家(apple,海思,三星为代表),根据自己的需要,自行搭了个成品模块。和前一类玩家最大的区别是,他们不需要管其它客户的需求,只要满足自己的要求即可。他们也不需要顾及什么高中低档位的不同需求,只需要给自己家的旗舰手机供货,所以约束要少得多。因此他们可以相对不计成本地去追求自己的诗意和远方(定制化)。
以苹果为例:他使用自己研发的核心,著名的a系列;架构做了大幅度修改和优化,他不需要一定兼容arm isa 指令集;gpu使用imagination的powervr定制版本,从a11开始抛弃了imagination,等同于直接搞死。他应该使用了自己定制化的amba类bus;他也用一些第三方的其它ip block; 但是很多都是私有版本或者定制版本;他的客户就是自家兄弟,所以需求就在家里面关上门讨论解决;他的生态环境全部是封闭的,只有别人follow他的标准;
a10做例子说明:面积换取性能和功耗。面积会增加成本,但是能换取功耗和性能。其他家不是不能这么干,是成本过高无法收回。没勇气!a10是6m缓存,而在其他家一般也就2m左右。a10是六发射,a73是双发射。先不管发射宽度逐渐递减的效果,但是三倍的发射流水线宽了这么多,怎么可能没收益。其他各种包括指令预测、电源、电压、时钟控制,整套方案都精心设计过。苹果a10的cpu频率并不高,但是geekbench单核性能却接近了intel桌面处理器的性能,跑分比 a73高出一大块。arm提供各种积木块,而怎么把积木搭好,以及自行研发积木块,那是另一门大学问。
简单打个比,你去买一盒乐高积木,乐高(arm)给了你一堆积木, 包括cpu族, 比如cortex-axx,cortex mx;gpu族,比如mali-txxx/gxx;isp族,比如vxx系列总线族(amba),比如apbx/ahb/ace/chi, corelink 系列外围设备接口,类如各种controller类debug,security 等等debug tool 等等现在arm产品线已经分地非常细,ai 等ip 也有供应了。arm官网上很全。
积木块可以是rtl(代码实现)级别,门电路(原理图)级别,客户拿回去自己研究造积木块);也可以是物理形态(physical ip)级别,layout都有了,客户拿回去可以直接用。
arm还附送给你了一本手册教给你每代两三来种不同的积木模块(公版设计)。大家如果都参照这个手册,那么搭出来的是差不多的东西--十年前还有不少这样玩家,现在基本都没有了。
nb的玩家(qualcomm,mtk,展讯为代表)按照自己对于市场的了解,搭了些显著不同于手册上面的成品模块(芯片 ic),其中也使用自己研发的积木块,以及自行购买自非乐高家的第三方积木块。他们的目的是卖这些积木模块给下游n个客户去搭手机。因为要满足很多种不同需求,这几种成品积木模组必须要做很多妥协(泛制化)。
这一段是题外话,为了照顾需求急出货快,或者能力相对弱一点的客户,mtk为代表,他灵机一动,更进一步拿自己的模块(ic),整出来更高级的成品玩具(turn-key 参考设计)。客户如果不要求什么客制化的feature,拿走这个设计基本上可以做产品了,这个思路和打造一颗芯片比较类似。文章出自:西部游星