瘦客户端和云:ARM 领先 x86 的原因
CES2010 第一天,我来到高通展台试用 ARM 内核的智能本(Smartbook)。我用了会儿联想 Skylight 智能本,然后拿出自己的 Nexus One 作为参照物放在边上拍照。当我看着它们的时候,忽然意识到这两个 Android 产品用的都是 1GHz 的 ARM 架构 Snapdragon 处理器,我扫了一眼周遭展台,一个 ARM 处理器的游戏机正好放在 ARM 处理器的 iRex iliad 电子阅读器边上。不远处还有 PMP(便携式媒体播放器)……我意识到智能手机、上网本、电子书阅读器、PMP和游戏机——所有真正需要计算能力的流行的消费类电子产品都基于 ARM。
与此相对,Intel 目前占据着上网本、瞄准着智能手机、曾希望打进游戏机产品(Intel 曾有专门的团队为此研发 Larrabee GPU,最终失败)、对目前进入爆发式增长且由 ARM 独占的电子阅读器市场没什么兴趣(不过有一款盲人电子阅读器用了 Intel 芯片,原理是拍照——文字识别——语音输出)。
CES 让我明显感觉到一个事实——Intel VS ARM 其实不是硬件之战或指令集架构(ISA)之战,甚至连一场战争都称不上。这更像是一次从胖客户端(Rich Client)到瘦客户端(Thin Client)的根本回归——是计算的重新分工,这次回归由无处不在的宽带网络、越来越便宜的无线模块、App Store 模式的崛起、云架构的完善所带来。
刚好有足够的性能运行 UI
再看看我上面列的 ARM 平台产品列表:智能手机、上网本、电子阅读器、PMP、Zeebo 游戏机。这些都不是内容生产设备。它们全都接入互联网,为通过网络获取信息或消费内容而服务。这个事实指出了性能和 X86 处理器完全不在一个级别的 ARM 处理器之所以能够在新兴的 App Store 、云端信息、内容发布应用中获得如此成功的原因。感谢摩尔定律,ARM 那些便宜的轻量级 CPU 设计(不单指 Cortex-A8,也包括基于 ARM11 的 Nvidia Tegra)现在也足以驱动“富 UI”。现在设备只要连上网络就能以流量和续航时间换取云端的海量存储和计算能力。 CPU 的性能只要能够运行 UI 就行了。
主要结果就是网络让大范围的计算系统的分工更加有效,让计算任务在最佳地点完成。这里用两个例子说明什么是“最佳地点”:
第一个例子是最近推出的 Android 2.1 所支持的全局语音输入,手机可以把这项对计算和存储能力要求都比较高的任务简单地交给 Google 的服务器来处理。目前的网络带宽足以确保语音识别在瞬间完成,手机再也不需要通过本地存储和计算能力来完成识别。
第二个例子是在去年一次 AMD 展会上演示的 iPhone 版《显卡危机》。所有的游戏渲染工作都在远程服务器完成,通过网络将压缩后的画面推送给 iPhone,并响应玩家在手机上的操作。一个非常小的本地程序解压收到的画面、上传玩家的操作。这同样也只需要够运行 UI 的处理器性能。
当然,这种本地/远程分工并不新奇,自网络和客户端/服务器计算模式出现起就伴随着我们。这和发达国家借助通信网络将工作外包给发展中国家是一回事。
不同的是,这次向瘦客户端模式的转型中,瘦客户端生态系统(阅读器、平板、智能手机等)的巨大软硬件商业收益将直接取决于消费者。现在,除了互联网电视以外(Intel 在此领域优势明显),ARM 已经牢牢地控制住了几乎整个生态系统,所凭借的仅仅是自己最适合运行瘦客户端这一事实,而今天的瘦客户端可以在不牺牲电力续航的前提下提供响应迅速的胖客户端体验。
总的来说,Intel 不会和 ARM 作战,它甚至不会和 ARM 生态圈里的软件公司、晶圆厂、片上系统设计公司、设备制造商作战。它唯一的对手就是瘦客户端模式。Intel 不希望这次转型发生,至少在自己拿出一套能在多变的低成本市场(面向消费者的联网瘦客户端设备)竞争的片上系统之前不希望。说白了,它是在和时间竞争。
鉴于 ARM 当前的优势完全建立在高能效比之上,在休闲游戏领域,少量的指令集架构依赖(ISA lock-in)就可能让天平在长期倾向于 ARM。
跨平台游戏——从手机到游戏主机/平板
我得承认一开始用 ARM 平台的 Zeebo 游戏机和 Intel 曾希望的 Larrabee GPU PS4 相对比是用萝卜来比青菜,因为 Zeebo 根本没打算和索尼、微软、任天堂的最新产品相竞争。相反,这家公司要的是家庭娱乐与学习的掘金点,计划向发展中国家的用户推销 3G 联网的电脑/游戏平台,运行游戏和教育软件。
Zeebo 游戏机用一个 ARM11 作为主 CPU、一个 ARM9 处理音频,还有一个高通设计的 GPU。Zeebo 的性能比任天堂 DS 强不了多少,低于 Cortex A8 的 Nexus One 手机。ARM11 和 ARM9 都是非常低性能的顺序处理器,如果由我来打造这种平台,一开始想到的可能是 Intel 处理器。Atom 的性能远强于市面上任何 ARM 处理器,用 Intel 也可以借助 x86 软件桟的优势。那么,Zeebo 为什么不用Atom?
Zeebo 选择 ARM 是因为他们希望移植现在流行的休闲游戏,移植智能手机游戏。ARM 生态圈可以让 Zeebo 得到更多的休闲游戏,独立或大牌制作公司兼有。在现场演示中,我看到了 Activison 等制作公司从智能手机平台移植过来的游戏。听一个开发者说,移植成本可以低廉到 50 美元。
现在很多智能手机游戏出于性能方面的考虑用 C/C++ 进行开发。在 Android 和 webOS 平台都是如此,前者的非游戏类应用往往通过 Dalvik 开发,后者则坚持用 CSS/HTML/JavaScript 处理非游戏类应用。在移动软件市场里,游戏是少数需要底层硬件的那一类软件,也是非常有利可图的那一类。
我并不是很看到好 Zeebo 的商业前景(售价 200 美元,比 PS2 贵得多),但这不是重点。重点是 iPhone、Android 平台的游戏开发投入多到你可以做一个 ARM 平台的游戏机,只需要低廉的移植成本。同样你也可以做一个只需低廉移植成本的 ARM 平台平板电脑,事实上,现在这一波 ARM 平台平板将成为休闲游戏的好平台,这种平板游戏本身就将成为一种趋势。(今年的 CES 上,Ars 游戏编辑 Ben Kuchera 对 Nvidia Tegra 平台的平板原型机非常满意,他很好奇 Nvidia 为什么不推出自有品牌的平板电脑。这类产品就是休闲游戏的理想平台)
等 Intel 能够发掘 x86 指令集架构的潜力,做出有竞争力的智能手机的时候,休闲游戏市场将会比今天大得多,也更难击败 ARM。要预测少量指令集架构依赖对移动市场的软硬件生态系统发展方向最终有什么影响还为时过早,但我想绝对不会小。