Alan Turing 在 1936 年提出了一种具有普适性的逻辑计算模型,证明通过有限状态机完成输入数据的操作,可以实现任意复杂的逻辑运算。图灵机本身描述的场景在现在看来已经没什么意义,但是他第一次完整的定义普适计算机体系机构——一卷很长很长的带子(infinite length tape)通过一个有磁头 (head) 的有限状态表 (finite state table) 进行读取/处理/改写的机器。
图灵机:带子、磁头和状态机 9 年后,Von Neumann 把带子改叫做「Memory」,状态表叫做「CPU」,磁头改叫做「Connection (Bus)」,换了一副图,就有了史称「冯诺依曼架构」的现代计算机体系结构。
教科书上会说这个结构有啥特点,这是让你背的。其实很简单,图灵-冯诺依曼架构最大的特点是把计算任务分为了 2 个部分——数据存储 (memory) 和数据处理 (processor)。处理器几乎不能存数据,存储器几乎不能算数据。两部分用一种连接方式 (bus) 按一定规则通信。泾渭分明的特点让冯诺依曼架构处理事情起来特别有条理,就像「男主外女主内」的家庭角色分配一样,在硬件资源极度受限的情况下,成为了自动化发展的中坚力量。 冯诺依曼架构有一个升级版,叫做哈佛 (Harvard) 架构,把存储空间分为了指令 (instruction) 存储和数据存储,对应不一样的操作。目前的主流嵌入式微处理器基本采用这个架构,但 Anyway 这并不重要。 冯诺依曼架构在过去的 60 年称霸人间,如果这项专利申请成功的话,这一定是史上最赚钱的专利。可是,冯诺依曼架构在经历了各种法院撕逼后,被判定为一项没有收益人的专利……(Youyou Tu 和青蒿素在这面前简直不值一提) 成也萧何 – x86 的不可一世 虽然冯老爷子在自己的架构下发明了人类第一台计算机,ENIAC 和 EDVAC,但诺依曼的真正崛起还是要归功于 x86。如果你不知道 80x86 是什么,那只能说明我们已经有代沟了,嗯,很深深的代沟。 Intel 自 1978 年推出 8086 后,x86 体系架构就一直是电脑(上到服务器,下到平板电脑)核心处理芯片的不二选择。 Intel x86 i7 版图 顺便做个普及,在冯诺依曼架构下,每个处理器会干的事情是有限制的,通常这个限制叫做指令集。它规定 CPU 的基本操作,没有指令集 (instruction set) 定义的复杂操作可以通过基本操作的组合来完成,比如指令集里没有乘法,那我们可以通过一定数量的加法来完成。 在冯老爷子的机构里,谁的指令集越大,可以访问的存储空间越大,谁就越牛逼。x86 的指令集从 8086 到 i7 不断扩张与膨胀,最终成为了一个会算双精单精、矢量图像,多核多线程多 Cache 的巨无霸。简单的说,到 2013 年的时候,史上最强 core 已经无所不能了。可是历史不断在重演一幕就是,当绝顶高手号称要独孤求败的时候,不知道哪里窜出来的毛小伙子可能一个起手式就把你撂倒了。圣经里大卫王这么干掉了 Goliath,《倚天屠龙记》里,张无忌这么称霸了光明顶。 那谁是 x86 的张无忌呢? 移动设备,RISC 的春天 独孤求败的 x86 其实有个致命的缺陷——能效,通俗地说就是「做一次」要花费的能量。可是每块肌肉都很发达的 muscleman 总是要比一般人多吃几碗饭吧。我们现在能买到的 i7 即使在省电模式也要消费超过 47W 的功耗。本省 47W 不算什么,但是苹果乔大叔的出现,让 47W 一下子很麻烦。 Iphone/Ipad 和一系列手持的充电设备对瓦级以上的功耗是非常敏感的!x86 的功耗导致它「充电 2 小时使用 5 分钟」的悲惨结局。肌肉男瘦身变成筋肉男的必然的命运。 这时,x86,或者说是 intel 的张无忌出现了—ARM Cortex RISC. 所谓 RSIC 就是精简指令集(Reduced Instruction Set),他能干的事情很有限,但是他的功耗低。X86 在其巅峰时期无数次地战胜过 RISC,以至于 ARM 出现时并有没足够重视他,那时候 Intel 还在和 AMD 抢 64 位 x86 的主导权呢。 为什么无数次败下阵来的 RISC 可以最终成功呢?因为这次,他寻找到了一个 partner——加速器。在移动端的应用设备里,其实也有很对需要强大计算消耗的进程,这是 RISC 本省无法胜任的。但是,实际应用上,往往这些进程是有固定的模式和使用场景的。比如手机在通话时的语音编解码,拍照时的图像 处理(俗称「美颜」)和无线通信是的编解码。对于这样一个经常重复,且模式固定的高通量计算,可以在总线上加入一个专用模块(ASIC)加速,在处理专用任务是 ASIC 的能效又比通用处理器高很多。下图就是 ARM 有名的产品之一 A9,除了 CPU 外,它的浮点与超标量计算(NEON)都被移到了 CPU 外(一般来说,这不能算作加速器)
这就是开头的那个故事,你每天充的电不够「超人」吃的,与只能换个块头小,但是能够指挥其他人的总管。 败也萧何 – 冯诺依曼瓶颈 (责任编辑:本港台直播) |