近日,有传闻称iPhONe 5S会带有双核 64位处理器A7,大约比iPhone 5快出31%,因此,当下人们都非常关心5S或者A7的性能数据,这时回顾一下苹果的软/硬件和SoC研发策略你会发现很有意思。
苹果在芯片研发上的优势(很可能没有之一)就是能将A7/A8的设计与自家的app/服务架构强力对接,而不需要做任何普适性的妥协。
所谓普适性的妥协,看看高通就知道了——高通的一款芯片是为数以百计甚至千计的Android机型设计的,但A7只会用在iPhone,iPad,再有就是iPod和iTV。高通芯片需要兼顾众多潜在客户的配置,所以必然遵循80/20的市场原则,苹果可以在芯片上砍掉所有它不想要的配置,然后再加上自己特制的单元——比如DSP或者是针对iOS的图形处理单元。
苹果在A7上会保持双核还是增加到四核呢?来看看这背后的动因。
当下推动多核架构的内因有三个:降低能耗,提升性能以及增加内存带宽。但移动平台的性能衡量注重的还是一点——单位能耗下的性能输出。
打个比方,多核处理器的驾驭有点像厨子用4个小火的炉灶代替原先的大锅。各个炉灶都单独烹饪,厨子可以更好地调理食材和火候——比如你可以关掉其中的一两个炉灶(降低能耗),或者将食材在不同火候的炉上移动(根据任务属性丢给不同的处理单元)。
但这么做的代价就是软件复杂性。放回到上面的case就是你需要一个足够智慧的厨子。芯片不仅要协调不同核心间的通信,还要决策和编译哪一部分的代码在哪一个单元上处理。标准化的软件设计工艺难以应付这样的外在限制。事实上,当下计算设计领域的难题之一就是软件并行。
这样的设计难度后落在了围绕app设计、测试、优化和API设计的软件架构堆栈上。在操作系统之上,你的设计需要将驱动和应用紧密结合。由于从多核中榨取“免费”性能首要解决的是软件复杂性,这时在堆栈上拥有整合度的公司就体现出优势。
比如Facebook的iOS app,他们采用一个主线程带动UI以及处理触屏事件,另外一个线程在后台计算“重劳力”的任务。后台的线程处理类似网络活动和JSON解析这样的工作,但丝毫不会拖累主UI线程的响应。
所以不同的线程会交由不同的核心处理,在类似Android的模块化平台上代码本身当然不会自动地利用芯片的架构设计。对开发者来说,编译器和API与底层操作系统和芯片/驱动堆栈的整合度越高,那么他们想要进行性能优化就越容易。可想而知,app开发者们希望有一个苹果这样的平台。
我们都知道苹果并非是互联网中服务做得好的一个,Google、Spotify、Dropbox等都各有特色。但就OS层的软/硬件设计,苹果绝对是强的。
不管怎样,再有两周时间,iPhone 5S和A7都会揭晓。无论它会是双核/多核,还是32位/64位,苹果必然会将它和自家的服务高度整合。