苹果Apple Watch智能手表拆机之芯片S1详细解析
apple watch 上市已经有一段时间了,这款设备配备的是 s1 芯片,在这款尺寸为 26 毫米×28 毫米的芯片内有 30 个独立的组件,这绝对称得上“让人惊叹”。其中还包括了 nxp 的 nfc 芯片、ams 的 nfc 信号放大器及maxin的音频放大器。今天外媒与我们一起从更专业的角度来了解这款芯片。目前开发和销售智能手表的 oem 很多都是智能手机厂商,所以我们会看到这些厂商通常都是直接将智能手机的部件“塞到”智能手表里面。
很多android wear 手表使用的都是调制解调器的高通 snapdragon 400 芯片。而 a7 芯片从散热设计功耗的角度来说是适合智能手表的。android wear 手表的电池容量大约为 400 mah,可续航 1-2 天,但是对于市场来说这些手表太大,这种时候就需要特别针对智能手表的外形和大小设计的 soc 片上系统。
对于 apple watch s1 芯片,目前还没有合适的跑分测试工具,但是从这款设备的拆解我们可以看到,该 soc 使用的是三星 28nm lp 制程,使用的只可能是 hkmg 或 poly sion 栅极结构。选择不同的结构功率效率也会不同,因为 hkmg 制程的漏泄功率更小。和使用 20/14nm 制程的成本相比,这两种制程的成本差异并不大,另外参考 tsmc 在 snapdragon 600 和 800 芯片上从 28lp 制程换成 28hpm 后对电池续航的影响,基本可以确定苹果的这款芯片使用的是 hkmg 制程。
我们也已经知道二进制文件是为手表的 armv7k 处理器进行编译,可惜目前关于该指令集架构并没有相关记录。watchos 是在 ios/darwin 的基础上开发出来的,也就是说为了获得存储保护和关键抽象,比如虚拟内存,它需要内存管理单元mmu,这就排除了使用像 armv7m 这样的 mcu isa 的可能性,我们猜测苹果使用的可能是衍生的 armv7-a,精简掉不必要的指令,以减小功率消耗。
至于设备的 gpu 就不那么神秘了,从出现在 apple watch 中的 powervr 驱动器来看,s1使用的可能是 powervr series 5 gpu,具体哪款尚未清楚,有可能是 powervr sgx543mp1。不过我更倾向于 powervr gx5300,因为它是特别针对穿戴设备优化的 gpu,使用的驱动器也一样。但是不管怎样,在 watchos 2 到来之前 apple watch 都无法原生运行应用这一点来看,我们目前能够深入挖掘的东西很少,而且即使 watchos 2 发布,图形跑分可能还是不好测试。
接下来我们可以来了解一下 cpu 的分级存储器体系,对于需要优化以确保代码能有足够时间和/或空间局部性来保证代码性能的应用来说,这是一项非常重要的信息。
如图所示, 在 dram 28kb 和 64kb 之间有一个非常大的波动变化,因为我们已经清除了 l1 数据缓存的本地最大值,我们基本可以确定 l1 数据缓存大小为32kb,目前市场上很多产品的 l1 数据缓存也在 32 和 64kb 之间。而在 224kb 左右的地方再次出现大变化,我们也可以确定 l2 的数据缓存为 256kb,和目前大型智能手机 cpu 的 1-2mb 共享缓存相比小了很多,但是和 a5 或者 a7 相比则恰好合适。
apple watch 的 cpu 最大频率是520 mhz。我们接下来看看它的架构。在关于整数运算这方面,整数添加延迟是一个循环,而整数乘法延迟则是三个循环。但是因为流水线整数乘法的吞吐量能输出一个时钟周期结果。同样的比特移位需要两个周期来完成,而吞吐只需要一个时钟周期。乘法和加法交错吞吐量将只有一半。我们可以猜测这是因为整数加法 block 和整数乘法 block 相同,然而这并没有什么意义,因为从逻辑层面来说,加法和乘法区别太大了。
从数据类型的角度来说,整数只是一个因素,还有布尔值、字符、字符串和不同大小的整数,但是说到十进制,应用程序仍然使用浮点来编译。像这款低功率 cpu,浮点通常比整数慢,因为浮点运算的相关法则比较复杂。
如果你打开的网页的延迟和吞吐时间是针对 cortex a7 的,你可能猜测它是 cortex a7,那你可能就猜对了。同时加载存储意味着这些是 xor 运算,不能以平行方式执行。乘法运算和加法运算也是一样。虽然 cortex a7 和 cortex a5 有相同点,但也不能说明为什么可以每时钟周期可增加两次立即值/恒定值和累加寄存器。
从这些数据我们可以确定它就是单核 cortex a7。虽然只是 cortex a7 但是最大时钟速度较低,也就是说逻辑设计上相比性能他更重视功率效率。标准电池可以利用某些技术和风格,这些技术实际会影响 2+ ghz 芯片的性能,但是却非常适合使用在 520 mhz 芯片中、从衡量能源效率与性能的角度来说,cortex a7 是一个有利于 perf/w(performance per watt,每瓦性能)的设计,因此我认为未来关键的不同点将在于执行方法,而不是架构。虽然我也希望 apple watch 能够使用更为先进的制程,比如 14lpp/16ff+,但是在 apple watch 第二代或者第三代出来之前基本都没有这种可能。