苹果最早是在 iPhone 5 的时候,第一次不再购买 ARM 的公版架构,转而以 ARM 的指令集为基础自主设计 CPU。而两年后到了 iPhone 6,苹果则转了一个方向,首次自主参与 GPU 的订制,相关的工作同时也延续到后来的 iPhone 6s,以及 iPhone 7 的 A10 Fusion。
GPU 的组成
苹果原先是与 Imagination Technologies 合作,直接以这间公司授权的 PowerVR 来负责自家 SoC 中 GPU 的运作。实际上苹果与 Imagination Technologies 也有持股关系,具有 10% 的股份,以及 30% 的营收分配,不过从 iPhone 6 开始,苹果转而以 PowerVR 为基础来客制化自己的 GPU,让 Imagination Technologies 与苹果的关系变得甚至不太像 ARM,而是以自己的团队打造独立架构。
一般来说,GPU 具有三种主要部份,首先是固定功能(fixed-function)的图像处理硬件,负责 API、三维栅格化(rasterization)与栅格输出,换言之,用来把图像转译成向量图形,再输出成像素,好形成人们看得到的影像。
第二个部份则是着色器内核(shader core),也是 GPU 的心脏。着色器的用途是透过一组程序码指令,来控制影像的颜色、明暗、特殊效果、几合构造,换言之,就是用来生成影像的重心。
至于最后一部份则是位于 CPU 上的图像驱动程序(driver),透过运作各种以 Open GL 与 Metal API 写成的图像 App,把它们转译成特定的指令,好让前述的两个部份可以协同执行。因此,CPU 上的 driver 有一大部份,都是编译器(Compiler),好进一步让着色器懂得该如何处理影像。
苹果自订了自己的 GPU 着色器与编译器
根据苹果的一些文件透露出来的资料,在 iPhone 6 之前,苹果在 GPU 核心的三个部份,都是全部交给 Imagination Technologies 包办,不过从 iPhone 6 的 A8 处理器开始,核心的着色器就几乎已经由苹果自己客制化包办。目前苹果 GPU 设计还有明显 Imagination Technologies PowerVR 痕迹的,只剩下一部份的图像硬件 。苹果甚至写出了专利的编译器与图像驱动程序。
实际上,苹果的成绩是很明显的,例如在经历两代、来到 iPhone 7 后,A10 的绘图能力已经比当初提升了 3 倍。客制化的 GPU 除了性能与省电,也帮助苹果可以进一步对 Open GL 与 Metal 优化。这一项优势最为明显的,是让手游开发者有更多工具来针苹果的 GPU 架构做最佳化,使得 iOS 设备拥有较 Android 更好的游戏顺畅度。在今年的 WWDC 上,苹果也首次在开发者文件,写下史上最详尽的说明,并推出全新的 Metal 着色器方法。
至于苹果想这么做的理由也不难想像。首先,苹果的 GPU 其实做得比 Imagination Technologies 更好。它的 SoC 整体性能,目前在业界也有明显的领先。此外,自订 GPU,也可以帮助苹果更好地配合 iPhone 一年一更的周期,既能自订一些特殊的功能,例如 Metal 优化,处理 Bug 时,也不会因为是使用公版,因而让 Imagination Technologies 的其他手机客户也能得利。
在短期之内,苹果应该仍会维持目前的手法,自行设计 GPU 着色器与其他软件,但可能会持续带给 Imagination Technologies 更多压力,好争取更好的硬件授权报价。而显然地,苹果之所以如此着重 A 系列 SoC 的 CPU、GPU 性能,甚至超过目前手游市场的普遍需求,来到部份低端笔电的等级,应该正是为了让 iPhone 能尽快成为苹果的 VR 平台。
- A Look Inside Apple’s Custom GPU for the iPhone
(首图来源:苹果)
如需获取更多资讯,请关注微信公众账号:半导体行业观察
相关文章