http://www.36kr.com/p/200031.html

“人生五十年,如梦亦如幻。有生斯有死,壮士何所憾?”之所以没有遗憾,是因为有了理想。

公元 1582 年,日本战国时期最著名的霸主,织田信长,吟唱着这首诗歌,于烈火中逝去。织田虽死,却留下了一支精锐无敌的火枪兵队。几年后,其家臣,羽柴秀吉凭此统一日本全境。

公元 2011 年,科技时代的盟主乔布斯离世。在他留下的宝藏里,以 A 字冠名的 CPU 成为移动领域里最强的利器。数月之后,苹果公司在新领袖库克的率领下,市值攀上世界的巅峰。

可又有谁知道,在那些苍翠的路上,他们历遍了多少创伤 [1]?苹果对于掌控顶尖处理器的渴望由来已久,这种带着伤痕的渴望起源于自己在八十年代后期于 PC 战场上被 Wintel 联盟打得一败涂地。Windows 抄袭了 Mac 的界面,乔布斯还可以用起诉来对付,但眼看着无论是采用摩托的 68K 处理器,还是采用 IBM 的 PowerPC 处理器,都被 Intel 的奔腾拉开了好几个档次。这个难题,可不是让律师们吵吵架就能解决掉的。

1990 年 ARM 公司在英国成立,苹果参股其中,正式拉开了进军移动处理器的大幕。虽然在 2006 年的时候,苹果宣布 Mac 电脑全线采用 Intel 的 CPU,但千万不要低估了苹果在处理器上的壮志雄心。次年,苹果推出划时代的 iPhone,在前三代里均采用三星设计的 ARM 处理器,但此时的苹果已经悄悄开始了自行设计处理器的计划。

2008 年,苹果收购 PA Semi,并立刻购买 ARM 的架构级授权(Architecture License)[2],开始着手设计一款拥有全新微架构(Microarchitecture)的 CPU。2010 年,微架构的前端设计完毕。同年,苹果收购拥有丰富后端设计经验的公司 Instrinsity,开始了长达一年的处理器后端设计。2012 年 iPhone5 问世,冠绝天下,所使用的正是这款耗时四年,名字叫做 A6 的处理器。

当一众黑客黑掉 A6,看到其中的布线结构时,完全震精了:这简直是一款近乎“纯手工”打造的 CPU!

“纯手工”,这是一个怎样的概念?在如今这个集成度肆意飚升的年代里,单个芯片上集成数亿个晶体管早已屡见不鲜,靠手工来布线是个几乎不可能的任务,所有的设计都是在 EDA(电子设计自动化)工具的辅助下完成。当然,在芯片设计的后端,设计师们也会再用手工做出布局上的少量调整,工作量一般在 3~6 个月。

然而!然而!苹果竟耗费大量的设计师和大把的光阴来“纯手工”优化后端设计,仅在布线上就花了整整一年的时间!还请不要忘记,苹果的设计师们本已是以一当十的高手了。为了推出这款登峰造极的产品,真不知,乔布斯和他的苹果究竟有着多大的理想与雄心,而又付出了多少的辛苦与努力?

时光仿佛回到了 1953 年,我正站在威斯敏斯特教堂里,看那加冕中的伊丽莎白女王,风采迷人,芳华绝代 [3]。而她的身上正披着一件由数名设计师,耗时 16 个月,纯手工制成的登基礼服。唯有如此,才配得上四个字:完美无缺。

乔布斯的理想也是如此的完美无缺,因其追索求达之艰难,才成为亘古永恒的不朽。当我们这些俗人,慢慢长大,习惯了唱着“背弃理想,谁人都可以 [4]”的时候,又是否会在某个夜晚倏然醒来,仰望那片没有了理想的星空,而轻轻哭泣。

[1] 此句改编自 Beyond《大地》。
[2] ARM 提供两种授权方案:应用授权(Implementation License)和架构授权(Architecture License)。架构授权是更高更抽象的授权,对设计能力的要求也最高。获权厂商会重新定义整个内核的微架构(Microarchitecture),如果足够强悍的话,设计出来的处理器在性能上甚至会超越 ARM 公司本身所提供的处理器。苹果,高通,三星都是在架构授权的基础上,自行开发的处理器。
[3] 1953 年,伊丽莎白二世,在 Westminster Abbey,正式加冕英联邦女王。
[4] 此句出自 Beyond《海阔天空》。

Intel的东进与ARM的西征(4)--理想的星空,苹果处理器之野望的更多相关文章

  1. Intel的东进与ARM的西征(5)--智慧的大窗口,我们都在画里面

    http://www.36kr.com/p/200168.html 繁华又算得了什么,不过是星尘的崩碎,那一抹青青的灰.公元 79 年,意大利维苏威火山喷发,已然兴盛了 600 年的庞贝古城被完全湮没 ...

  2. 芯片史称:“长平之战”----Intel的东进与ARM的西征(3)--人生如戏,全靠演技

    http://www.36kr.com/p/177143.html 从 2003 年到 2008 年,处理器双雄 Intel 和 AMD 在 64 位 CPU 领域展开了一场长达五年,极为惨烈的科技战 ...

  3. ARM、Intel、MIPS处理器啥区别?看完全懂了

    安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小.MIPS在32位和64位嵌入式领 ...

  4. ARM、Intel、MIPS处理器啥区别?看完全懂了【转】

    转自:http://news.mydrivers.com/1/472/472317.htm 安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于 ...

  5. [转帖]从Intel和ARM争霸,谈芯片前世今生

    从Intel和ARM争霸,谈芯片前世今生 http://www.itpub.net/2019/07/24/2476/ 长文预警, 写的非常好.. 我尽量写得轻松一些,因为其实这个话题很有趣,仔细探究起 ...

  6. ARM与x86之3--蝶变ARM

    http://blog.sina.com.cn/s/blog_6472c4cc0100lqr8.html 蝶变ARM 1929年开始的经济大萧条,改变了世界格局.前苏联的风景独好,使得相当多的人选择了 ...

  7. ARM处理器:开放者的逆袭

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 1981年,英国BBC电视台策划了一系列关于计算机的电视节目.但导演发现一个问题:怎么给没见过电脑的观众画 ...

  8. 【转】ARM vs X86 – Key differences explained!

    原文:http://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/ Android supports 3 d ...

  9. ARM与X86 CPU架构对比区别

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是  CISC要用最少的机器语言 ...

随机推荐

  1. LightOJ 1422 区间DP Halloween Costumes

    d(i, j)表示第i天到第j天至少要穿多少件衣服. 先不考虑第i天和后面 i+1 ~ j 天的联系,那就是至少要穿 1 + d(i+1, j)件衣服. 再看状态转移,如果后面第k(i+1 ≤ k ≤ ...

  2. C++类指针初始化

    上面的代码会打印“A”. C++ 类指针定义的时候没有初始化的时候,居然可以安全的调用类内部的成员函数而不出错. 在网上查了一下:   初始化为NULL的类指针可以安全的调用不涉及类成员变量的类成员函 ...

  3. Python之注册表增删改查(干货)

    在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表.无所不能的python下如何完成这些 ...

  4. 【Luogu】P2258子矩阵(状态压缩,DP)

    233今天蒟蒻我连文化课都没听光想着这个了 然后我调了一下午终于过了!!! 一看数据范围似乎是状压,然而216等于65536.开一个65536*65536的二维数组似乎不太现实. 所以Rqy在四月还是 ...

  5. leetcode 319 灯泡问题

    例子:1-9 1的因子1 2       1,2 3        1,,3 4        1,2,4 5        1,5 6        1,2,3,6 7        1,7 8   ...

  6. 转载:lua和c的交互

    extern "C" { #include "lua.h" #include "lualib.h" #include "lauxl ...

  7. 王室联邦(bzoj 1086)

    Description “余”人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两个不 ...

  8. 软件包管理器(bzoj 4196)

    Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...

  9. 洛谷P2365 任务安排 [解法一]

    题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始 ...

  10. C/C++怎样传递二维数组,转载自CSDN

    用二维数组作为参数传递(用二维数组处理矩阵),但是希望接受传递二维数组参数的函数可以处理任意维度的数组(希望矩阵的行数和列数都是不固定的). [以下转帖] ---------------------- ...