Board logo

标题: Zt <向intel迁移 上 中>,求下! [打印本页]

作者: iceliking    时间: 2013-5-26 15:59     标题: Zt <向intel迁移 上 中>,求下!

文/王越
2005年,苹果宣布其芯片向Intel迁移,在这背后夹杂着错综复杂的缘由,从Intel的诞生、精简指令集与复杂指令集之争到AIM与Wintel两大联盟之争,几十年来计算机芯片行业背后的故事由此展开……
2005年6月6日对于普通人而言不过是平凡的一天,但对于苹果及其粉丝而言却有着非凡的意义。在前一年接受了手术的Steve Jobs再一次登上了WWDC的舞台。他在会上宣布了一个非常具有争议性的决定-整个Mac产品线将从原本的PowerPC芯片迁移至Intel芯片。

这是Mac OS X诞生后苹果对Mac产品所做的最重要的决策,没有之一。从1994年起,苹果就在PowerPC阵营中扮演最重要的角色。这个由苹果-摩托罗拉——IBM 所团结起来的PowerPC联盟,一直是Intel——Microsoft联盟的主要对手。从1994年后,苹果几乎每个Mac产品的广告都要把Intel 芯片或Microsoft Windows/Office嘲笑一番,诸多果粉也以自己用的Mac是PowerPC芯片的而自我感觉异常良好,在这时突然倒戈,不但对果粉的高傲心理造 成了致命一击,也完全改变了整个计算机产业的框架布局。

要理解苹果这一步棋的原由,我们必须从头开始追寻近三十年来计算机芯片行业的风起云涌。

Intel的诞生

1965 年,在Fairchild Semiconductor的Gordon Moore发现,使用相同造价,每年半导体电路所能容纳的元器件数量可以多生产一倍。他把这个发现写了篇水帖往《Eletronics Magazine》上灌。Moore同学是个化学博士,没学过电器工程(如果这算那个时代的计算机系的话),他这篇灌水文的依据只有四个年份的统计数据, 他就闭着眼往图上一画说这线以后还会往上爬,全文没有任何实验、验证,甚至连个公式或代码都没有,结果不但被《Eletronics Magazine》接收了,还成为往后计算机架构课每个小朋友们必读的经典,史称摩尔定律。关键是Moore同学的论文被接收后,他还真心以为自己的文章讲的是真理,于是心一热,说从他预测的趋势来看,造计算机芯片有利可图,那么不妨开个公司生产芯片吧,于是,一家在往后五十年中后叱咤风云的Intel公司就此旦生。

但以当时Intel的实力只能造造内存,造处理器的全是大玩家,所以Intel在处理器业登场前,我们先介绍20世纪 60~70年代处理器业界的情况。当时处理器技术的发展越来越成熟也越来越复杂,这种快速发展缘于人民群众日益增长的计算需求与当时落后的编译器技术之间 的矛盾。这个时期,用编译器生成机器代码的执行效率还远不如用手写,而大家知道手写机器码是一件比较蛋疼的事,所以如果可以加入更高级的架构指令,写起来肯定比写多个低级指令来得顺手。加入可以打出组合拳的高级指令的另一个原因是,当时内存是个珍惜资源,一台计算机往往只有几千个位元,所以每一个位元都宝贵无价,而且读写速度极慢,组合若干低级指令成为一个高级编码、长度可变的指令,不但可以让程序更加紧凑,而且可以减少读写数据的频率,降低程序执行时所 需要的暂存器个数。所以大家都像“大跃进”似地把芯片逻辑设计得越来越复杂,以减轻手写机器码的强度。

RISC指令集风暴

但到了20世纪70年代末,计算机业界的发展水平有了翻天覆地的变化。内存越来越大,暂存器的代价越来越低,更重要的是编译器有了长足的发展,在大多数时 候,编译器产生机器代码的效率提高得飞快,并且随着C和Unix的流行,大家都知道手写机器码肯定不是未来科技发展的方向。所以在20世纪80年代初期, 加州大学伯克利分校的David Andrew Patterson及斯坦福大学的John LeRoy Hennessy认为,是时候让计算机架构回归简单的设计了。前者设计的RISC芯片依赖于暂存器窗口技术,使用少于其他架构一半的元器件数量,仅提供32个指令,就在跑分测试中甩开别的架构好几条街,成为后来Sun设计SPARC的基础。后者在教研究生课时一时兴起设计个芯片玩玩,玩出了MIPS芯片及后续的MIPS公司。

以这两块芯片作为基础,计算机架构界产生了一股重要的以RISC芯片命名的思潮-精简指令集(Reduced instruction set)。这批学者把别的架构都称为复杂指令集(CISC),并到处发论文、开讲座,证明精简指令集是个好思潮。

精简指令集在设计时,常会有以下特征。首先,它们都采用统一的指令编码,例如指令中的操作码都位于同样的位元位置,每条指令也必须是等长的,这大大简化了解译逻辑,使得指令在芯片内解译方便快速;其次,他们都使用统一的暂存器,所有暂存器可用于所有内容,并提供足够多的暂存器;再次,它们都有简单的寻址模 式,在CISC设计中的那些组合拳被拆散成若干条语句;最后,每条指令都很精简,大多都采用一个时钟周期执行,因此更能预测程序的执行,使得其更易被流水 并行执行。

由于RISC是个好思想,且实际也证实了RISC能够造出速度更快、性能更好的芯片,所以业界出现了一大批按照RISC思潮设计的新架构。其中著名的包括DEC Alpha、Sun SPARC、MIPS及后面会提到的IBM的Power系列架构。

艰难的转型

这时的Intel,大多数时间都在卖内存,偶尔造造微处理器,并一直标榜自己是首个微处理器生产厂商。1981年,IBM开发出第一台个人电脑,标志着个人 电脑时代正式到来,虽然大家都不知道个人电脑将在将来的三十多年里扮演多重要的角色,但上帝把这份幸运降到了Intel公司头上。IBM让Intel为其个人电脑设计了8086处理器,从此之后,Intel关掉了几乎整个内存部门,转行卖个人电脑微处理器,不断进取拓展业务,先后开发了一系列处理器,这套 架构就是我们今天所说的x86。

不幸的是,在Intel设计8086及80286的时候,搞RISC的那批学者还没发论文呢,等到IBM的个人电脑卖疯时,再推翻先前设计重新搞简化指令集己经晚了。因此,Intel当时及后继的x86芯片都是CISC的,并且80年代产生了一系列为x86架 构所写的计算机程式(很多程序在开发中还使用了大量的手写机器指令)。个人电脑不同于服务器,受众广得多,程序种类和数量也多,所以一但采用另一套指令集,就很难让用户迁移到新平台上。另外,哪怕不计应用程序重新改写、编译、发布(当时互联网离普及还早,大多程序都是靠软盘邮寄的)的代价,像DOS的操作系统完全重写迁移到另一个平台上可不是闹着玩儿的,需要漫长的改动和漫长的调试周期。所以考虑到指令集的兼容问题,后继的IBM PC及兼容机不可能再更换到另一套指令集了。

20世纪80年代晚期,RISC思潮在业界成为主流,以MIPS和Sun为代表的公司都靠它获得了可观的利润。IBM在考虑为他们的工作站和伺服器采用类似的架构,于是便有了POWER架构(POWER指Performance Optimization With Enhanced RISC)。90年代初,由于POWER架构很好很强大,所以IBM依据IBM POWER架构开发了PowerPC架构,并准备把它量产。PowerPC一发布就引起了许多厂商的兴趣。在跑分测试中,PowerPC架构的处理器都与同时代高档的Intel处理器相当甚至更快,所以很多公司都来凑热闹。例如Microsoft为之发布了Windows NT 3.51,Sun编译出一套Solaris,IBM也把AIX发布到PowerPC架构上。但刚才讲的问题没变,平台上有丰富健壮的生态系统才是王道,即使有了适合的操作系统,用户的程序都不能用还是白搭,所以这些厂商很快哪儿凉快待哪儿去了。

AIM联盟战略

但苹果携同给Mac提供处理器的摩托罗拉留了下来,他们需要下一代的技术来跟Intel及Microsoft对抗。90年代为了打击对手,Intel和 Microsoft形成了强大的Wintel联盟,吃光了个人电脑这块蛋糕,所以这次苹果准备奋起一搏,结果AIM(苹果、IBM、摩托罗拉)联盟在 1991年宣布成立。

IBM除了设计芯片外,本来也为丰富PowerPC的桌面应用编译了一系列Windows NT软件,本准备在1991年发布,可惜的是Windows NT的PowerPC版不断跳票,直到1995年才发布,所以一恨之下IBM决定自己把OS/2给移植到PowerPC上和微软对着干。结果这个重写花了 整整两年时间-刚才提到,把一个操作系统全部移植到新架构上可不是闹着玩儿的,取决于操作系统本身有多少对架构的依赖性。至少内核的中断、异常、bus驱动、虚拟内存等支持全得从零写起。所以等到差不多可以发布时才发现本来看PowerPC热闹的人都走光了,所以这个操作系统从未正式发布过。

苹果吸取了教训,采取了一个折中的方式,把内核紧要的代码移植到PowerPC架构上,上层空间中新写了一个模拟器来运行原先的摩托罗拉68k老架构的程序。这就是Mac OS System 7.1.2。所以在Mac OS X之前,Mac OS的用户空间一直保留着大量的68k代码,哪怕很多系统自带的程序都不是原生执行的。苹果一直试图把更多的老代码逐渐重写,重写的过程中引入的问题加重 了Mac OS操作系统的不稳定性,因为PowerPC完全使用了和68k不同的异常机制,使得Mac OS漏洞百出。一直到OS 8.5左右,大部分68k代码被替换为PowerPC代码,才使得稳定性有一定的提高。

但在商业上苹果自然会采取“老王卖瓜自卖自夸”的策略,发布了一系列的广告吹捧自己的计算机有多强大。这些广告自然不会提及Mac OS的稳定性,能拿得出手的只有PowerPC这套架构的先进性。20世纪90年代的苹果广告大多充满着对Intel架构的尖酸味,例如反映自己比 Intel核心的电脑快上许多,甚至夸张地把Intel的奔腾二说成慢如蜗牛。当然了,广告夸得再好,谁用谁知道,客户又不是傻子,真正的铁杆果粉又有几个。所以苹果在Mac OS一系列重写和修正失败后决定收购NeXT,把NeXTSTEP当作构建Mac OS X的基石(见《Mac OS X 背后的故事一》)。

NeXTSTEP迁移至PowerPC

NeXTSTEP 使用的Mach+BSD+DriverKit内核支持,属于类Unix系统,其天生具有良好的移植性(这也是当年的Solaris及AIX能那么快完成 PowerPC移植的原因)。Unix早年被设计时,为了能移植在各种大型机上,Denis Ritchie特地发明了C语言并极力减少机器码使用比重。后来的BSD系列为了能在各大学使用,也秉持了当初Unix设计的态度,并且尽可能地写平台无 关代码。例如现代的FreeBSD分支中,机器码占内核总代码的比重差不多为0.6%,而所有跟架构相关代码在内核中才占13.6%左右。这无疑为 NeXTSTEP这样的BSD分支移植到各架构上创造了得天独厚的优势。

NeXTSTEP支持 68K、x86、PA-RISC和SPARC架构,但颇有意味的是它之前不支持PowerPC架构。之前,苹果曾扶持Linux内核作为单一的服务运行在 Mach内核上,并把整套操作系统往PowerPC上移植,这就是MkLinux。MkLinux不但为Linux对PowerPC的支持作出了巨大贡 献,也为苹果使用NeXTSTEP扫清了最大的障碍。这些开发多源于开源社区,但使得苹果在很早就具备跨平台的能力(哪怕跨Intel和PowerPC这 种字节序完全不同的平台)。

NeXTSTEP另一个有趣的内核功能是支持称为胖二进制文件的技术。NeXT公司自己定制的GCC编译器可以 通过交叉编译,产生一个包含所有架构可执行码的二进制文件。这个文件可以在一个特定硬件平台上解出该平台原生版本的机器码执行。这个技术在Mac OS到Mac OS X的迁移中并没有被公布,却成为2005年往英特尔迁移时的核心技术之一。

NeXTSTEP有了这两个很好的条件后, 往PowerPC的移植并没经历太多的挫折,并且在前期一度准备x86平台和PowerPC平台“两手抓,两手都要硬。”1998年的MacWorld 上,乔布斯声称Rhapsody最后将成为Mac OS X Server 1.0版。而完整的Unix层代码后被释出,成为以Darwin为名的开放源代码软件。读者如果移步 http://opensource.apple.com/,会发现即使是在早期的Mac OS X 10.0代码中也是包含x86支持的。

Intel的捷径

显然,Mac OS X支持PowerPC是为了对老苹果用户负责,但对于x86平台的支持,不能不说Jobs早早地为后来的迁移做好了两手准备。的确,在早期,PowerPC这套RISC的架构确实比Intel好,无论在速度还是准确性上。跑分测试中PowrePC遥遥领先,而且,由于Intel芯片中的数表错误,造成其芯片计算浮点数运算时在某些场合会算错。Intel在20世纪90年代中后期一直力推奔腾4,但由于流水设计问题,其性能甚至不如奔腾3。 但Jobs在这时,目光却看得更实际、更远。

Intel毕竟不是傻子,他们有比别的公司多得多的钱投入研究,所以他们有足够多的资源去定下五年甚至十年后的目标(PBS电视纪录片《America Revealed》)。对于自家芯片各种设计上的缺陷,他们自己是损失者,此学得也比别家更快。例如前面提到,x86不是一个RISC的芯片,Intel在1995年发布的Pentium Pro中找到了通往RISC的捷径,把ISA换为RISC会破坏x86架构的兼容性,所以我的架构必须依然使用老指令,但这不代表我的处理器读入x86指令后,不能翻译成别的指令。Pentium Pro在取到一条x86指令时,硬件解码器会把一条CISC的x86指令解码成符合RISC风格的若干条微指令,因此,除了在起跑线上起跑慢了些以外,在解码后,Intel芯片执行的代码相对于PowerPC,技术上不存在任何劣势。指令在暂存器重命名后,通过投机执行绕过风险,便能并发、快速地进行乱序执行。

Intel是大规模量产,所以对于每块芯片的平均造价要比PowerPC低很多。PowerPC的芯片价格无疑抬高了Mac电脑的成 本,不但造成Mac用户的小众规模,同时在Intel大步迈进的同时,摩托罗拉却止步不前。尤其是Intel较早地意识到了移动芯片的重要性,开始对芯片进行节能优化设计,而PowerPC跑起来就像是个电暖炉。这使得苹果发布的笔记本电脑芯片主频一直远落后于台式机,并且在后期其台式机也需要大量泠却。

这引发了Jobs和摩托罗拉的CEO Chris Galvin的争吵(《Jobs传》)。1997年,Jobs回到苹果后,曾立即决定停止授权同类电脑制造商使用麦金塔操作系统。他打电话向Galvin提议, 如果摩托罗拉加速研发可用于笔记本电脑的芯片,那么苹果公司可能会考虑为摩托罗拉破例,授权其StarMax Mac兼容机使用麦金塔操作系统。两人的对话越来越激烈,Jobs对高尔文说,摩托罗拉的芯片烂透了。高尔文也是个有脾气的人,立即反驳,Jobs挂了他的电话,摩托罗拉从此停止生产StarMax电脑,而Jobs则开始暗中计划抛弃PowerPC芯片,转而投向Intel的怀抱。

作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名TeX开发者,非著名OpenFOAM开发者。

本文选自《程序员》杂志2013年1期,未经允许不得转载。如需转载请联系 market@csdn.net

《程序员》2013年杂志订阅送好礼活动火热进行中
作者: iceliking    时间: 2013-5-26 16:02

文/王越
苹果暗中计划放弃PowerPC芯片后,组成了秘密团队希望使每个版本的Mac OS X都能在Intel的x86平台上无缝运行,与此同时,在HP的说服下,Intel在1999年开发出了Itanium处理器,但这款处理器却存在着两个致命的缺陷,这给竞争对手AMD留下了可乘之机。
暗度陈仓,苹果系统向Intel迁移

在Steve Jobs暗中决定抛弃PowerPC芯片转投Intel时,PowerPC在技术上并非没有优势,如果Mac OS X还没成型就对底层架构作如此大的变动,会得罪所有仅存的苹果用户,让苹果面临崩溃。当时的苹果己经弱得经不起什么折腾了,同时也需要IBM和 Motorola的支持去跟Microsoft竞争。

此外,如果在这时选择倒戈,很容易会使苹果沦为一家PC软件公司——之前 NeXTSTEP就是这个下场,软件数千份地卖出去,机器却卖不动,结果只能把硬件部门彻底关闭。而苹果现在的利润全在硬件上,如果宣称支持Intel, 很容易把自己逼上绝路。因此,Steve Jobs决定忍耐。

在产品上,苹果从之前跨架构的Rhapsody砍掉对x86的支持,转为只支持PowerPC一种硬件。你想用我家的Mac OS X系统?那么你只能买我的机器。

每 年的MacWorld或WWDC都会有环节不遗余力地嘲笑Wintel联盟。例如1999年他和Phil Schiller同学卖力地介绍PowerPC的AltiVec可以实现数据层面的并行,而且比Intel芯片快得多,在2001年7月18日的 MacWorld上,Steve Jobs请主管硬件的副总裁Jon Rubinstein介绍The Megahertz Myth,通过举例、列数字、作比较等各种技巧,论证虽然Intel芯片的主频比PowerPC高一倍,但Intel那群白痴使用比PowerPC长几倍 的流水,因此我们PowerPC芯片依然比Intel芯片快一倍。这次讲话通俗易懂地解释了流水、分支预测等高深的术语,简直可以称为计算机处理器知识的 科普视频。

在广告上,苹果除了之前的一些对比广告外,还推出了一系列好玩的嘲讽短片,例如Toasted Commercial,现在看来好像正好说明了PowerPC系列芯片的高功耗。

在产品介绍上,甚至很多PowerPC的缺陷都被包装成亮点,例如Power Mac G5的介绍短片,金牌设计师Jonathan Ive还专门出镜,说PowerPC太强大了发热量好高,所以我们得给它设计了一个很拉风的风扇云云……

但这只是外在的表现。这段时期,Steve Jobs在严格规划每个版本的Mac OS X时,专门秘密组织了一小班人马,这组人有个秘密代号——Marklar,最早于2002年被媒体披露,并在2005年被更多的媒体报道。这组人做的事, 就是——只要Steve Jobs一声令下,x86版的Mac OS X光盘就能送到开发者或用户手上。

先前讲到,NeXTSTEP具有 良好的移植性。但Mac OS X中,有大量源于Mac OS的代码,如Carbon等,都是存在一定的PowerPC架构依赖的(如Quick-Time、iTunes、Quartz等)。使用了大量 PowerPC特有的AltiVec功能来实现数据并行。因此移植仍具难度,需要改写至Intel的SSE指令。

在2012年的一个Quora回帖上,Kim Scheinberg介绍了苹果如何做到严格的保密措施,其中提到了Marklar的诞生。

2000 年她丈夫John为了和亲人团圆主动请缨要做Intel版本的Mac OS X。十八个月后,他回到组里报告成果,老板Joe看后大为满意,立刻拉来了分管技术的高级副总裁Bertrand Serlet。Bertrand问“如果我买个索尼的Vaio,你多长时间能把Mac OS X移植上去?”John回答“不用很长时间。” “两周还是三周?”“两三小时吧”。Bertrand Serlet遂让人买了台索尼机器,果然数小时后Mac OS X就在机器上跑起来了。于是,John的工作成为Marklar团队的起始点。

从PowerPC往Intel移植最困难的地方在于 PowerPC提供单指令多数据并行的功能AltiVec(后称为Velocity Engine)来实现高维向量、矩阵运算的硬件加速,这有点像Intel的SSE,但需要在代码里用特别的语句调用,这在QuickTime、 Quartz中常常用到。因此苹果把AltiVec包装成一个名为Accelerate的库,分别在两个架构上映射到AltiVec指令和SSE指令。这 个库提供了所有的BLAS、LAPACK功能并提供了非常高效的实现,做数值计算的同学不妨关注一下。

Itanium的诞生

有了Marklar团队的成果,接下去只是何时转换到x86架构平台的问题。但这时,Intel却持续走低,苹果似乎有了一个除Intel以外的选择——AMD。

在1989年,HP认为RISC架构将来会遇到每周期只能执行一个指令的瓶颈。所以想搞一套名为EPIC的新架构。但由于HP不具备研发处理器的资本,所以在1994年拉拢Intel跟它以EPIC为基础,合搞一套叫IA-64的处理器。

先前提到,为了使代码高效地执行,当时Intel已经做出了超纯量乱序执行的Pentium Pro架构。整个框架的原理是读入一系列的指令,把每个指令分解成RISC分格的微指令,使用暂存器重命名等算法来计算并移除指令的依赖关系,然后并发执 行多条语句,达到一个时钟频率能够执行多个指令的目的。

但HP的忽悠能力比较强,它对Intel说:“为什么我们需要由硬件实现乱序执行 呢?你们的处理器为了把x86指令解成微指令,需要一个比RISC架构复杂得多的解码器。而为了达到乱序执行,你们设计了一整套复杂得多的逻辑去判断执 行,这是计算机在运行中所需要付出的代价!

现代的编译器早就足够高级了,完全能在编译时判断语句的依赖关系,并且自动进行暂存器命名等一系列的算法,所以在程序编译时就能给出一个个指令包,每个指令包包含了一系列能同时并发执行的RISC指令。

我 们完全可以设计一个新指令集,称为超长指令字架构(VLIW,Very Long Instruction Word),一个指令包中的所有指令都会转化成一个VLIW语句。这样,当VLIW语句通往芯处理器时,处理器就无需进行复杂的解码(因为指令本身是 RISC风格的)、逻辑判断(因为编译时己判断好了)、暂存器重命名、乱序执行算法,只要解开一个VLIW指令让分配器并发执行就行了。

因此,我们的编译器就能决定让这些小指令同时执行于单一周期,处理器能够简单地执行这些指令而不需要很复杂的架构去决定哪些指令能够并行执行。”

Intel被这么一忽悠觉得IA-64大有前途,如果搞出来,会被多数的企业系统制造业采用,所以开始下血本开发。由于1998年正值电影泰坦尼克号热映,Intel在1999年10月4日发布该处理器的官方名称为Itanium。

Intel 认为,Itanium将会是个终级架构,可以解决一切问题,将会是未来的发展方向。虽然指令集和x86完全不兼容,但随着服务器领域和将来的桌面领域从 32位迁移到64位,指令集肯定是需要做出重大改变的,利用这个机会,Intel自然可以自由采用一种新指令集和过去划清界限。于是索性就不用开发64位 的x86了,逼着大家都用Itanium就可以了。

正当Intel做着天上降下黄金雨的美梦时,它完全没有意识到灾难己经临近。Itanium的设计看似完美无缺,但他们没有意识到其中两个重大的问题——指令宽度和Cache。

“短板”原理在Itanium上应验

x86的好处是,虽然这是一个CISC的指令集,但这个指令集对程序执行的逻辑没有额外的限制,所以只要Intel保证产生的运算结果是一致的,就可以以任何方式实现这个指令集,例如解成RISC、增加超纯量模块、调度成乱序并行执行,Intel想怎么做都可以。

但Itanium让编译器决定一切,编译器自动判别依赖关系并产生一个个指令包,每个包内的指令不存在依赖关系,所以指令集一公布,要想改就困难了。例如每 个VLIW指令包是包着三个RISC指令的,如果若干年后做出了能并行执行六个指令的芯片,那它能一起执行两个VLIW指令吗?

醒醒吧,因为这两个VLIW指令很可能有依赖关系!那可以重新让处理器判断依赖关系后再执行吗?该吃药了——Itanium花那么多血本就是想让编译器搞定一切而不用处理器判断!

那怎么办呢?只有两个办法:其一是一次运行三条指令(即使我的机器有能力执行六个宽度),所以程序执行效率只有一半;其二是要求每有新一代的芯片出现,所有 程序都要重新编译才能完全发挥芯片设计的理论效能。这是让人无法忍受的一件事——难道今后软件发布出来,要为各个指令宽度的Itanium各做一个版本吗?

更麻烦的问题是Cache。Cache是处理器上用于减少处理器访问记忆体所需平均时间的部件。其容量远小于内存,但速度却可以接近处 理器的频率。当处理器发出内存访问请求时,会先查看Cache内是否有请求资料。如果命中,则不经访问记忆体直接返回该资料;如果不存在,则要先把记忆体中的相应资料载入Cache,再将其返回处理器。

与前面那种情况相比,这需要更长的等待时间。至于什么资料是在Cache内的,完全是由计算机程序运行时决定。编译器在编译时是无法预测程序在执行时所使用Cache的情况的——这一切完全是随机的。对于一个可以乱序执行的处理器而言,如果某 条数据的结果不在Cache里,可以动态调度,先执行别的语句,从内存里取出,再执行这条语句。

像Itanium把可以并发的程序指令捆在一个包中,如果这个包中所需要的变量还在内存里,那处理器就什么都干不了,只能等从内存数据搬到Cache中。所以,Itanium的执行效率不会好于乱序执行的处理器。

正当Intel一步步坚定不移地在死路上越走越远时,Intel的竞争对手AMD却没闲着。

Intel不做x86架构的64位版?我们做(2003年AMD抢先于Intel发布了Athlon 64,随后又推出了面向主流消费市场的Athlon 64 X2)!Intel不做x86架构的多核处理器?我们做(2005年4月22日,AMD领先于Intel率先发布了拥有双核的Opteron处理器)!

跑分测试下来,AMD技术在许多方面远胜Intel,其中尤其以浮点运快著称。同时,AMD允许用户选择比Intel高的频率来跑运算(当然用户自己要承担CPU高频烧毁的风险),所以很多计算机爱好者更青睐AMD。

作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名TeX开发者,非著名OpenFOAM开发者。

本文选自《程序员》杂志2013年2期,未经允许不得转载。如需转载请联系 market@csdn.net

《程序员》2013年杂志订阅送好礼活动火热进行中
作者: iceliking    时间: 2013-5-26 16:03

下到处都找不到,不知道原作者是不是还没发表
作者: konovalov    时间: 2013-5-26 16:29

非业内科普贴
作者: hotjk    时间: 2013-5-26 16:40

同求同求同求
作者: lewx    时间: 2013-5-26 17:14

posted by wap, platform: SonyEricsson (Xperia Arc S)

@lewx mark
作者: refo    时间: 2013-5-26 17:18

http://www.cqvip.com/QK/80936A/201303/44908540.html

下在这里
作者: Jobs    时间: 2013-5-26 18:03

维普那个估计不在大学的人都看不了吧,楼主可以找【程序员2013年第3期.pdf】在杂志第129页pdf的第131页
作者: silenty    时间: 2013-5-26 18:03

要充值啊
作者: Zico2003    时间: 2013-5-26 18:08

没想到维普的账号在TG也能派上用处啊
[attach]537504[/attach]

[attach]537505[/attach]

[attach]537506[/attach]

[ 本帖最后由 Zico2003 于 2013-5-26 18:22 编辑 ]
作者: newshadow08    时间: 2013-5-26 20:31

年前就有传闻说mac os x要往arm移植了,看了这个不像是开玩笑啊。
作者: Zico2003    时间: 2013-5-26 20:34

内存和存储器是2个东西,INTEL当时的主业是制造销售存储器

70年代末,80年代初因为存储器行业整体遇到瓶颈,再加上美日存储器大战,日商大打价格战,逼得INTEL不得不转型,把副业微处理器扶正作为主业,所以才有了现在的INTEL
作者: Zico2003    时间: 2013-5-26 20:36

引用:
原帖由 newshadow08 于 2013-5-26 20:31 发表
年前就有传闻说mac os x要往arm移植了,看了这个不像是开玩笑啊。
苹果现在有两支基于ARM的CPU研发团队,随着自家处理器性能的不断提高,抛弃X86用回嫡系不是很正常么……
作者: 20060602    时间: 2013-5-26 20:43

看完了,虽然这种东西没有任何实用性,但每次都津津有味的看完,之前看过好几次 Nintendo 的故事,每次都很认真的看完了。
作者: 莫斯利安    时间: 2013-5-26 20:57

个人觉得osx 往arm上移植的可能性太低。
作者: 爱骑车的胖子    时间: 2013-5-26 21:03

INTEL的内存业务其实一直没有死
INTEL后来和另外几家弄一个厂叫 Numonyx 现在被MICRON 收购了




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0