ARM与x86–Wintel帝国
作者 陈怀临 | 2010-11-27 11:31 | 类型 弯曲推荐, 芯片技术, 行业动感 | 没有用户评论 »
系列目录 ARM与x86【陈怀临注:原文可参阅sailing的新浪博客:http://blog.sina.com.cn/s/blog_6472c4cc0100kq84.html 】 The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air. 从1978年开始的PC帝国,以Intel最终战胜AMD为标志,正式步入后PC时代。这个帝国的成员们各司其职,在可预料的未来中这个帝国并无大事。Intel会一代代推出新的PC处理器,Tick-Tock计划[i]将如期而至。每一年都将是平淡的一年。 在半导体领域,Intel继续一览众小。Intel依然无奈。半导体领域霸主的无奈在于只要PC依然重要,罗伯特·诺伊斯所创建的这个公司就不会有太大的忧虑;半导体领域霸主的无奈在于对手并不在半导体领域,或者说对手是剩余的所有。 ARM处理器的崭露头角正在开创一个属于更多参与者的帝国。在不远的将来这个新的帝国与PC帝国间必有一战[ii]。我们无法预知x86或者ARM获胜,却可以感受这个世界正在变化。世间最可怕的事,莫过于等待。有些人更愿意去预测,去揣度,去逃避这些无休止的等待。即便结果是上帝不经意间的偶然,也依然执着,愿意为逼近明天而重温历史。也许已经发生的和正在发生的事情,揭示了未来。 Wintel帝国 Wintel诞生是一个自然的过程。几十年前,一个富有朝气的公司选择了另外一个富有朝气的公司。在他们所涉及的应用领域中,打遍天下无敌手,创建了令所有对手望而生畏的时代,一个只属于这两个公司的时代,Wintel帝国时代。帝国有着铁血般纪律。帝国的组成部件各司其职,彼此互不渗透,有功必赏,有过必罚。帝国没有衰退的前兆,内部也没有太多不和谐的声音。 在PC帝国中,Intel是处理器的最重要的供货商,AMD占据着为数不多的市场份额,更少的一部分份额留给了台湾的VIA[iv]。PC处理器大多使用Windows操作系统,也有些PC安装着其他操作系统,如Linux和BSD。在中国,预装Linux系统的这些PC机,在购买后,基本上会被重新安装。在国外,使用Linux系统的也不过是一些爱好者。Linux给Wintel帝国的运行制造了一些困难,却没有触及帝国的根本。 帝国的日常经营由一些OEM(Original Equipment Manufacture)厂商、ODM(Original Design Manufacture)厂商和BIOS厂商协助打理。因为Linux的存在,还出现了一些OSV(OS Vendor),如Redhat、Ubuntu(Canonical)和SuSE。这些OSV将来自开源社区的代码与Linux内核集成为Linux发布包,提供给OEM使用。 帝国的OEM也都是一些知名公司,如Dell,HP,Acer,Lenovo和Asus等。ODM多集中在台湾。BIOS厂商数量并不多,却也能及时地为这些OEM/ODM服务。整个PC帝国协调有序发展。 帝国内也不时有些出人意料之外的事件。曾经第一个尝试AMD处理器,昔日的OEM霸主Compaq悄然离去。Dell从一个网络直销商,几乎一夜间横空出世。IBM将PC业务转移给了Lenovo。Acer日益壮大。新人来,旧人去,PC帝国依然是铁打的营盘。 Intel的领导人进行了多次更替,先是罗伯特·诺伊斯,后是戈登·摩尔,安迪·格罗夫,克雷格·贝瑞特,到现在的保罗·欧德宁。诺伊斯和摩尔无论是技术还是商业都有领袖才能。诺伊斯是集成电路的发明者。摩尔创造的定律至今尚不过时,这个定律更像是一个商业定律,引导着Intel一代又一代的工程师为捍卫理想,奋勇向前。 格罗夫是Intel的第一个员工,特殊的经历决定了他独特的性格。有人说如果他母亲碍着了他,他也会把她解雇。Intel的前两代领导人恐怕不会这么做。也有人说诺伊斯过于慈善,这也使得格罗夫的闪亮登场成为必然。帝国总需要有些人苛刻一些,严厉一些。 依靠严明的纪律,Intel度过了1986年的寒冬,顺利地从存储器领域过渡到处理器领域,将在其后紧随而且随时可将之超越的日本人抛于脑后[3]。这个决策拯救了Intel。多年之后,更加拼命,更加执着的韩国人在存储器领域彻底战胜了日本人。格罗夫留给Intel的“唯偏执狂才能生存”是许多员工的座右铭,当然真正的偏执狂反而并不认同这句话。前三界领导人性格的互补,使得Intel渡过难关,日益壮大。 1984年,Intel遇到了创建以来的第一次危机,存储器危机。在上世纪七十年代,Intel是存储器芯片的主要提供商。在那个年代Intel在存储器领域的市场占有率几乎是100%,远超过Intel今天在PC领域的市场占有率。 从上世纪80年代起,Intel的存储器危机初露端倪。日本人迅速掌握了存储器设计与生产这个门槛并不是很高的技术核心,借助其特有的高效与后发优势,在短短的两三年时间,大肆吞噬着Intel在存储器领域的市场份额。Intel几乎从存储器领域的统治者沦为一个二流存储器芯片供应商。 1984年,Intel生产的存储器芯片在库房里堆积如山。1986年,Intel迎来了自公司创建以来的第一次亏损。格罗夫与摩尔对此早已先知先觉。 1985年,格罗夫在一次公司会议中问摩尔,“如果我们无法渡过这次危机,被迫下台,下一届领导人将怎么做?”。 “他们将抛弃存储器业务。”摩尔回答着。 “我们为什么不自己动手?”[3]。 也许格罗夫在科技的前瞻性上无法与摩尔相提并论,但是他如岩石的执着,如烈火的果敢,化解了Intel面临的第一次危机,PC开始进入寻常百姓家。从Intel今天在PC领域的领袖地位上看,格罗夫这个决策似乎顺理成章。只有将历史回溯到1985年时,我们才能更加容易地体会到格罗夫的艰难与不得已。 在那个年代,中小型机大行其道。DEC公司的VAX机是所有处理器厂商难以逾越的高峰,Motorola半导体的68K处理器如日中天。很少有人相信Intel能在处理器领域有所作为。在那个年代,Intel推出的每款处理器都是学术界奚落的对象。1986年Intel推出的386处理器遭到了整个学术界的诟病。这些学者的这些技术观点多数是对的。从技术的角度上看,386处理器并不成熟,也给Intel留下了向前兼容,这个堪称伟大的包袱。 技术并不是早期x86处理器的长处。在上世纪80年代至90年代,几乎全部处理器都被技术上绝对领先,绝对强势的Alpha系列处理器[v]压得喘不过气来。竞争对手每推出一个处理器芯片,DEC都会推出另外一个强大到令人放弃追赶的新一代Alpha。 Intel真正的优势是格罗夫虽百折而不挠,我行我素,笼罩当世的大气魄。 1987年,格罗夫正式成为Intel的CEO。格罗夫开始与另外一个更加耀眼的企业领袖比尔·盖茨联手创建了Wintel这个事实上的铁血联盟。无论是Intel还是Microsoft都不承认Wintel联盟的存在,但却无法否认这个词汇在整个处理器行业制造的恐慌与肃杀[vi]。在那个时代,对于处于这个帝国之外妄图涉足PC领域的其他厂商,Wintel这个词汇本身就是一个魔咒,使之望而却步。 1978年,23岁的比尔·盖茨与42岁的格罗夫第一次见面,当时的Microsoft仅有11名员工,而Intel已经推出8086处理器,员工已过万人。公司间的不对等很难给比尔·盖茨带来荣誉,两个人在个性中的共同点使得争吵时有发生。在某个晚宴上,两个人争吵引起了所有人的关注,包括在厨房工作的服务人员。格罗夫能够有条不紊地尽享美餐,而盖茨却吃饱了一肚子气[3]。 在许多情况下,公司间的合作与领导人的恩怨无关。格罗夫与盖茨间的不和谐并不影响Intel和Microsoft在各自的领域成为巨人,也不影响Wintel这个事实联盟的不断前行。从工作划分上看,Intel领导着OEM/ODM提供底层硬件平台,而Microsoft提供操作系统和上层软件,彼此互不干扰,也没有太多的直接冲突。Wintel帝国的各个成员也都相安无事。这是一段属于PC帝国的美好年代。Wintel联盟双方相互间存在的依赖,相互成就了对方的事实,维持着Wintel帝国的稳定。 如同所有联盟,合作和冲突永远并存。只有面对强敌时,两个弱者间的联盟才最为可靠。弱者一定程度的上的妥协是维护联盟的必要条件,如同赤壁之战前孙刘联盟。随着Wintel帝国的前行,Microsoft已经不再弱小,市值逐渐超过Intel,也更加富有。而牢牢掌控着底层硬件平台的Intel对OEM/ODM却在联盟内有着最大的话语权。 这一切使得Wintel帝国内部的冲突更加频繁。Microsoft率先发难。Windows NT开始支持x86处理器的竞争对手,RISC处理器,包括MIPS R3000/R4000, Alpha和PowerPC。Microsoft也多次断言RISC处理器替代Intel x86是大势所趋[4]。 面对这场危机,Intel开始动摇,着手研发抗衡RISC处理器的产品,安腾(Itanium)和Pentium Pro处理器[vii]。采用向前兼容的Pentium Pro处理器在CISC vs. RISC战争中的大获全胜,而抛弃了向前兼容的安腾最终被抛弃。Pentium Pro的胜利和安腾的失败化解了Wintel帝国面临的最大一次危机。对“向前兼容”的依赖,使帝国的这两个重要成员重归蜜月期。1996年,比尔·盖茨在公开场合承认,“最近的两年内,英特尔与微软在合作方面所花的时间比前十年加在一起还要多”。 新贵对盟主地位的追求永不休止。1997年11月20日,Joachim Kempin[viii]在给盖茨的Email中明确地提出微软应该收购AMD或者Cyrix[ix] (Nsemi)以对抗来自Intel的威胁[5]。格罗夫在卸任时也承认自己犯下的最大错误就是使Intel过分地依赖Microsoft[3]。而近些年发生的一些事件[x]更加表明Wintel联盟虽然没有分崩离析,却早已貌合神离。事实上,在IT这个激烈竞争的行业里,只有后浪推前浪,没有永远的合作,更没有永远的联盟。 格鲁夫之后,材料学出身的克雷格·贝瑞特于1997年5月成为Intel的第四任CEO[6]。在他并不长的8年任期中,带给Intel的影响超越了多数评论家的想象。并不夸张地说,如果在未来的某一天Intel走向衰退,贝瑞特将是始作俑者。 贝瑞特给Intel留下了“Copy Exactly”的成产哲学。如果Intel将来要走一条富士康或者台积电的道路,“Copy Exactly”是必须的,而且需要更加强烈的,更加令人窒息的纪律。这个哲学一经推出就饱受质疑。连Intel的员工也问贝瑞特,既然您坚持“Copy Exactly”,为什么还要我们“Innovate”? 在“Copy Exactly”的大背景下,Intel有史以来最失败的芯片Pentium IV诞生了。过分迷信工艺的力量,使得Pentium IV的主频一再挑战着CPU主频的极限。这并没有改变Pentium IV高频低能的结局。AMD的x86 64与多核处理器几乎摧毁了Intel。2006年,Intel业绩步入谷底,也改变了贝瑞特向互联网进军的蓝图。 贝瑞特接任后,开始了预谋已久的“互联网”计划。1997年DEC将StrongARM内核正式出售给Intel[7]。StrongARM内核基于ARM V4 ISA(Instruction Set Architecture),由DEC和ARM联合开发。Intel使用这个内核替代了自己的i860和i960处理器,并在此基础上创建了基于ARM V5 ISA的XScale架构。 XScale架构得Intel正式进入了嵌入式领域。随后Intel大手笔推出了基于XScale架构的一系列处理器,用于手持领域的处理器PXA210, PXA25X, PXA26X, PXA27X和PXA3XX,用于网络存储的I/O处理器IOP31X, IOP32X, IOP33X和IOP34X。 在基于XScale构架的所有处理器中,IXP网络处理器令思科,爱立信和华为这些通信厂商至今还在心痛[xi]。IXP网络处理器的技术源自DEC,Intel保留了DEC网络处理器的整个研发团队,并以XScale架构为核心,设计出第一颗芯片IXP1200[8]。在IXP1200芯片中含有一个类StrongARM SA1100处理器和6个微引擎ME(Micro Engine)。 这颗芯片的亮点是6个微引擎,许多研究资料[9][10][11]表明IXP1200确有较强的网络报文处理能力。一时间网络处理器也成为通信半导体厂商的宠儿,Motorola半导体(Freescale)和IBM也分别收购了几个刚刚Start-up的公司,主推网络处理器[xii]。 XScale构架没有获得预想中的成功。2006年6月27日,Intel将PXA系列手持处理器作价$600M出售给了Marvell[12]。2007年11月12日,Intel将IXP1200,IXP2400,IXP2800这些网络处理器转交给了Netronome这个刚刚Start-up的公司,并向已有的客户承诺将继续生产这些网络处理器,并持续到2012年[13]。I/O处理器无疾而终。 XScale构架并不是贝瑞特“互联网”计划中最重要的一环。2007年10月19日,ITU接纳WiMAX作为3G标准[14][15]。3G领域至此又增加了一个新成员,这个新成员至今还活跃在通信领域。只是后来这个新成员在推广过程中的举步维艰,使得更多的人相信“在美国的某个城市需要贴钱才能卖出去的房产,并不是最糟糕的资产,一个产品最大的悲哀并不是消亡,而是僵而不死”。 遍览整个IT史册,只有摩托罗拉的铱星计划能与贝瑞特的“互联网”计划媲美。铱星计划的失败已经成为MBA的经典案例。Intel的WiMAX仍在持续,只是更多的客户开始质疑Intel的耐心,质疑Intel在Wintel帝国之外的坚忍与能力。 贝瑞特卸任前留给Intel真正有价值的是“Tick-Tock”计划。“Tick-Tock”是一个象声词,如果将正弦时钟波形在音箱中播放时,可以听到连续不断的“Tick-Tock”。Intel从2006年1月5日使用已经成型的65nm技术推出“Core Microarchitecture”,这也标志着Tick-Tock计划的开始[16]。 在Tick-Tock中,Tick指工艺的提高,从65nm,45nm,32nm,22nm,16nm和11nm。数学功底稍微好些的人不难发现,相邻的两个数字之间的倍数大约是1.414[xiii]。Intel继续延续着摩尔提出的“集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍”的定律。Tock指CPU内核的进步,工艺的提高使得之前只能出现在经典论文中的技术得以实现。Tick-Tock计划规划了Intel x86处理器直到2016年的Roadmap。一个长达十年的路标。 表1 Intel的Tick-Tock计划[17]
Intel的Tick-Tock计划已经执行到Westmere处理器,Sandy Bridge处理器将很快如期而至。Intel将以庞大的人力,充实的物力继续着这个计划。所有这一些都是贝瑞特留给Intel的第五任CEO保罗·欧德宁的。欧德宁必须有所作为。 PC领域再无对手的Intel,目光重新锁定在嵌入式领域,Atom处理器应运而生。这颗芯片上承载着Intel的希望,所有人都在关注Atom能否解开Intel在嵌入式领域的无奈,嵌入式领域的另一个处理器巨头ARM也在枕戈待旦。 Wintel帝国的另一个主角Microsoft已完成政权更替。比尔·盖茨于2008年6月28日正式离任[18]。虽然比尔·盖茨强调将一如既往地关心着Microsoft的一切,并尽可能地提供帮助,Microsoft股东们也应该双手合十,祈祷盖兹永远不要归来。因为那时的微软,处境绝对不会比苹果请回乔布斯时更好。 死灰复燃的苹果,咄咄逼人的谷歌,是微软挥之不去的梦魇。而最为Intel和Microsoft担忧的是Wintel联盟的生死。Intel已经提前做好准备,率先研制基于Linux的Moblin操作系统[19],在2010年与Nokia,将Moblin和Maemo合并为Meego[20]。 对于Microsoft,Windows和ARM何时走到一起的讨论从Windows 7诞生以来,从来都没有停息过。Microsoft明确表示Windows 7不会支持ARM-based的上网本Smart Book)[21]之后,却带来了更多有关Windows和ARM的传言。更多的人想知道Windows 8或者9是否支持ARM[22]处理器。对于ARM,这些期待已经不再重要。WebOS,Andriod的异军突起,使得Microsoft更加尴尬。此时的ARM还需要Windows吗? ——————————————————————————– [i] Tick-Tock计划是Intel在2007年开始的一项计划,Tick指工艺的进步,而Tock指处理器内核的革新[1]。 [ii] ARM与x86处理器之间的战争早已打响。许多预测家声称,这场战争最终会彻底消灭其他处理器内核,如PowerPC和MIPS,只留下x86和ARM处理器。 [iii] x86处理器的芯片提供商除了Intel,还有AMD和VIA。 [iv] 1998年,VIA收购了Cyrix的大部分资产,并依此进入x86处理器领域。 [v] Alpha处理器也是我第一次接触的第一个高端处理器,…是一个充满激情的岁月。 [vi] 今天的Microsoft总有被Google欺负的感觉。而在盖茨年轻的时候,Microsoft却是不可战胜的。当年有一个工程师向盖茨提了这样一个问题,“我不愿意加入微软,但是我加入的其他公司,不是被您收购,就是被您挤垮。我需要买一个带花园的小房子,需要一份工作。请问在软件领域,有哪些方面是您不愿意涉足的?”。 [vii] Pentium Pro是Intel一颗具有里程碑意义的处理器。这颗处理器将复杂的CISC指令分解成为μops指令(一种RISC指令),之后采用了RISC指令流水线,加大提高了x86处理器的性能。在某种意义上说,这颗处理器拯救了Intel。 [viii] Joachim Kempin当时是Microsoft的高级副总裁。 [ix] AMD和Cyrix是Intel当时的主要竞争对手。从今天AMD和Cyrix的状况上看,盖茨没有采纳Joachim的意见是无比正确的。 [x] 2010年7月23日,Microsoft正式宣布与ARM展开战略级合作[23]。Intel与Nokia联手开发用于手机的Meego操作系统。 [xi] 这些网络通信厂商在Intel网络处理器上投入了大量的人力物力,而Intel却却中断了该产品的后续研发。 [xii] 网络处理器没有一个得到善终。IBM将网络处理器卖给了Hifn,不过近期IBM发布了一颗16核的Wire-Speed网络处理器。Motorola半导体从C-Port手中收购了网络处理器,却无法阻挡Intel在IXP网络处理器的低价格策略。 [xiii] 1.414约等于sqrt(2)。Intel使用这些数字的主要原因是继续捍卫摩尔定律。 | |||||||||||||||||||||||||||||||||||||||||||
ARM与x86–ATOM的前生今世
作者 陈怀临 | 2010-11-27 09:51 | 类型 弯曲推荐, 芯片技术, 行业动感 | 55条用户评论 »
系列目录 ARM与x86【陈怀临注: 我会在最近的一段时间,with some reasons,比较深入的去学习和了解Cortex-A9。这也是我在弯曲评论会开始多谈谈ARM的原因。我个人以前是对IXP或者说ARMV5比较熟悉。Cortex-A9是ARMV7。Sailing(http://blog.sina.com.cn/sailingxr)关于ARM的文章相当不错和专业。希望读者都能收益。弯曲评论发展到今天,就应该广泛的吸收天下人的智慧,这才是凝聚力量和发扬光大的唯一方式,靠和只靠编辑自己是不现实的,也是不应该的。。。另外,弯曲评论前端时间也有专门的关于ATOM的分析文章,可参阅:Intel ATOM处理器剖析与研究】
ATOM的前生今世
世间本没有PC处理器和嵌入式处理器。这两种处理器在同一天诞生。 1976年5月,Intel开始设计8086处理器。工程师没有想到这颗处理器将给后世带来如此深远的影响。如同许多改变人类命运的设计一样,设计者最初并没有太大的追求,诸多的不经意与偶然促成了一个伟大的产品[24]。1978年6月8日,Intel正式推出8086处理器[25]。1981年8月12日,基于8088处理器的IBM PC诞生[26]。很快PC席卷了整个世界。 嵌入式处理器这个称呼也随出现。从广义的角度上讲,所有处理器都是嵌入式处理器,包括用于服务器,PC和嵌入式领域的处理器。PC的日益普及,使得PC处理器从广义的嵌入式领域中脱颖而出,成为单独的一个产业,也就有了PC处理器。 在不久的将来手机也将从广义的嵌入式领域中独立,也会有单独的手机处理器,而不再是嵌入式处理器在手机中的应用。ARM处理器在手机领域的强势地位使得越来越多的人将其贴上了手机处理器的标签。更多的人认为将来的PC是揣在兜里的,而不是装在包里的。这些猜测触动了Intel这个巨人的心,失去未来的PC是Intel无法承受之重。 巨人的行动并非永远迟缓。2004年,地处Texas州的Intel Austin研发队伍启动了代号为Silverthorne的项目,这个项目所研发的芯片将取代A100和A110这两个低功耗处理器(A100和A110处理器的项目代号为Stealey,基于90nm工艺,是Pentium M的派生芯片[27])。这颗芯片也将是第一颗Atom处理器。Silverthorne项目的启动为两年后Intel毅然抛弃XScale构架埋下了伏笔。拥有顶尖处理器设计能力的Intel绝不允许ARM在旁酣睡。 Austin的研发队伍在项目启动时收到了来自高层的三条指令。Atom处理器必须是一个低功耗芯片,TDP(Thermal Design Power)约为ULV(Ultra Low Volatage) Dothan(即Intel Celeron M ULV)内核的十分之一(Dothan的TDP约为21瓦)。同时这颗处理器必须有足够的性能可以快速地浏览网页,流畅地运行高端操作系统[34]。这两条指令虽然苛刻,毕竟合理,也是可以通过努力实现的。 Austin的研发人员为此热血沸腾,也许他们将有机会创造一个完全不同的处理器,也许他们将有机会再一次改变这个世界。最容易想到的是使用RISC架构。从Pentium Pro开始,x86处理器使用了RISC流水线,在这条流水线中运行的是μops,并不是程序员使用的CISC指令。在流水线的开始阶段,x86处理器将CISC指令转换为μops,之后进入指令流水线运行。 如果能够将μops作为指令集直接提供给程序员使用,Austin的研发人员可以抛掉所有包袱,创造一颗完全不同的处理器。这个处理器可以自由地使用Intel从Pentium Pro开始的,并经过若干次改进而调优的μops流水线。Intel引以为傲的PCI/PCIe局部总线架构也可抛弃,毕竟PCIe设备的耗电量远大于ARM的AMBA设备。 主推一个新的指令集ISA(Instruction Architecture)是一件异常困难的事情。对于Intel这并非不可实现的。使用μops作为新的ISA,不过是将原先由硬件进行的指令翻译过程(Instruction Transforming)转交给编辑器。之前基于x86处理器的程序只需经过重新编译,就可以运行在新的处理器平台上。一旦放弃了CISC指令集,Austin的工程师可以自由地使用Intel所有的技术积累,更重要的是这颗处理器可以借鉴整个处理器界的成果。在多数情况下,新设计的处理器总比之前的好些。 所有这一切不过是研发人员的一厢情愿。来自高层的指令坚定而且明确,这颗低功耗处理器还必须严格实现x86向前兼容。这意味着具有30多年历史的x86指令集,必须要不打一丝折扣地在这颗芯片上实现。向前兼容是Intel巨大的利润来源,也是摆在这个星球上最顶级处理器设计人员面前的一个不可逾越的山峰。在Intel并不长的历史中,违背向前兼容的例子只有以惨败而告终的Itanium。 多少年来,Intel的领袖集团都很偏执,偏执的侧重各有不同。格罗夫偏执着改变,将Intel从一个存储器厂商塑造为处理器厂商,更多的偏执着使用了三十多年的x86指令集。 Intel处理器的开发史是工程师与向前兼容不断斗争的奋斗史。许多年之前,Intel凭借向前兼容这一利器,打败了所有RICS厂商,包括DEC,SUN,Motorola和IBM,一统PC与服务器领域。这并不意味着CISC处理器战胜了RISC处理器,事实上x86处理器进化成为RISC处理器,只是依然披着CISC指令的外衣。 对CISC指令的向前兼容需要许多额外的晶体管,更重要的是Intel从1978年使用至今的CISC指令绝非完美,PowerPC和ARM用区区两三百页就能描述清楚的指令集,x86处理器需要使用1千6百多页。x86处理器的指令不仅冗长,更糟糕的是并不等长。处理这些不等长引发的对界问题是众多IC程序员的技术噩梦。 Itanium处理器决定放弃向前兼容,却成了Intel的一场商业噩梦。Intel至今没有醒来,也不敢在Atom处理器上重新进行尝试。一次错误并不意味着下一次依然错误。也许Atom处理器已经错过了再次改变世界的良机。也许Intel错过了丢弃这个糟糕指令集的机会,失去了这个可能的伟大变革,也可能失去了整个世界。 变革不仅需要勇气,更多的是能力。放弃向前兼容的变革也许会使Intel再次获得历史赋予的机会,也许会毁掉Intel。这样的决定,是勇气,是梦想,是坚贞,是决别。这样的决定,诺伊斯可以做,摩尔可以做,格鲁夫可以做,贝瑞特不敢做,欧德宁不敢想。 Intel这样的大公司,只有创始人才敢做,也有能力做出一些伟大的变革,只有他们才有毁掉这个公司的勇气。领袖有了雄威之气,剩下的人才可能有雄威之气。贝瑞特和欧德宁们恐怕做梦都没有考虑过这些可能毁掉Intel的决定,虽然这个决定也可能是上天赐给Intel的机会。睡梦中的格罗夫也许曾无数次被怒火激醒,“再锋利的剑,到了你们手里只能是一把生锈的钝刀!”。 Intel使用了三十多年的CISC指令又一次被强加在Atom处理器中。失落的设计人员需要再一次为向前兼容付出惨重代价。Intel天才的工程师需要再一次直面这些为处理CISC指令而带来的古怪逻辑。Atom处理器再一次被套上枷锁。Intel再一次丧失了和ARM站在同一起跑线上的机会。 与RISC构架使用的定长指令集不同,Intel的CISC指令的长度从16b到120b不等[35]。变长的指令为指令译码部件带来了额外的负担,而且基于CISC指令的流水线很难进一步提高速度和并发指令条数。从Pentium Pro开始,Intel抛弃了CISC指令流水线,而使用μops流水线,为此在x86处理器中需要使用一个特别的指令译码部件,首先将CISC指令转换为内部指令流水线可以识别的μops[33] [36],然后再送入μops流水线中执行。 x86处理器的绝大多数CISC指令可以方便地翻译成一条或者多条μops指令,也可能是多条CISC指令被优化成为一条μops指令。仍有为数不多的过于复杂的CISC指令需要借助Microcode ROM进行查表译码,x86处理器处理这些指令的效率极低,但是这些指令出现的频率极低,并不会影响指令译码效率[33]。 Silverthorne处理器可以使用两种方法实现严格的向前兼容,或者使用μops流水线,或者使用CISC流水线。使用μops流水线也意味着Atom处理器必须保留将CISC指令转换为μops指令的逻辑,也必须保留在绝大多数时间可以安然入睡的Microcode ROM。对于已经集成了23亿个晶体管的Nehalem EX处理器,增加这些古怪的逻辑并不会极大地增加功耗。对于TDP的设计目标仅有2.1瓦的Atom处理器,这些逻辑是不可能被接受的,因为这些古怪逻辑本身使用的功耗已经超过了一些低端ARM处理器[i]。 来自Austin的设计人员必须另辟蹊径。他们试图在Atom处理器中使用Intel最新的工艺,直接执行复杂的CISC指令,这也重新揭开了上世纪九十年代开始的RISC与CISC构架之争。在那场战争中,Intel打败了所有RISC厂商,这并不意味着CISC处理器战胜了RISC处理器。在PC服务器领域,Intel的x86处理器最终被RISC处理器同化,而在剩余的几乎所有领域中CISC构架被RISC构架屠杀。 面对CISC构架的举步维艰,Pentium Pro做出了折中选择。Atom处理器却要继续扛起CISC的大旗。所有这一切并不是因为CISC构架仍有可能优于RISC构架,而是Austin的工程师面对向前兼容的不得已。 也许使用第一流工艺可以化腐朽为神奇,也许使用最顶尖的工程师可以将一个O(N2)算法实现得比普通工程师实现O(N×LogN)算法更为快速。也许这些“也许”永远都是“也许”。虽千万难,吾独往矣。帝国启动了赌局。 第一个需要改变的是Power设计理念。多年以来,Intel在PC和服务器上有关Power和Performance性能的设计理念是,处理器提升1%性能,Power可以提高2~3%。在Atom处理器中,这个比例是1比1,处理器每提升1%性能,相应的Power不能提高1%[37]。 Atom处理器被迫抛弃了许多在Core 2和Nehalem处理器使用中的高效设计,从零开始。与诸多传说并不一致,Atom并不是削减版的Pentium M或者Core 2。虽然Atom处理器是Intel自Pentium处理器以来最为简单的设计,也是一个全新的设计。这个全新的设计使用了Intel最为古老的CISC流水线。 无奈的工程师们面对由来已久的向前兼容,剩下的选择除了无奈,还是无奈。没有人愿意直面x86处理器这些乖张,谬妄,怪僻,荒诞的CISC指令,也没有人敢甚至去说说挑战“向前兼容”的不合理。 使用μops流水线无法越过Power的天堑,剩下的只有CISC流水线。无奈的设计人员第一个想到的是1989年发布的486处理器[ii],这颗处理器使用了单发射(single-issue),顺序执行(in-order)的CISC流水线。 即使在当年486也不是一个顶级处理器,Atom处理器必须对此加以补充。多发射技术仍是必须的,Atom处理器支持双发射。而现代处理器常用的乱序执行(Out-of-Order Execute)对于追求低功耗的Atom处理器是奢侈的,经过简单地评估,Austin的设计人员暂时放弃了乱序执行这个已经被广泛验证,可以显著提高流水线执行效率的功能。同时486处理器使用的5级流水线并不利于处理器主频的提升,Atom处理器将其提高到16级,如图1所示。 图1 Atom处理器的流水线[34] 这不是Atom处理器流水线的全部。Atom处理器还含有两级预先译码部件(Predecoder)。传统的x86指令并不等长,而是16b~120b,Predecoder部件的作用是划分指令边界,然后将其导入L1指令Cache。因此虽然Atom处理器L1指令Cache的大小为36KB,而实际可利用大小仅为32KB,剩余的4KB用来存放SOI(Start of Instruction),EOI(End of Instruction),等一些TAG信息[34]。 Atom处理器可以直接处理多数CISC指令,但是仍然有一些过于复杂的CISC指令被分解为若干个μops,再进入指令流水线。Atom处理器的流水线并非没有可取之处,这颗处理器可以直接执行ALU/Memory指令。这类指令首先被分解为ALU和Memory两个微操作,然后成对进入流水线,虽然Memory操作仍不能先于ALU操作执行完毕,也明显提高了这类指令的执行效率。Atom的指令流水线远不如RISC架构那样完美,但这是Intel的工程师在向前兼容的大前提下,为降低功耗而进行的一次大胆尝试。 Atom使用按序执行流水线,使得HT(Hyper-Threading)技术的引入成为必然。HT技术是Intel对SMT(Simultaneous Multithreading)技术的一种称呼。在现代处理器的设计中,可以使用两种技术在节约整个设计成本的前提下大幅提高并行度,一种是提高ILP(Instruction Level Parallelism),一种是增强TLP(Thread Level Parallelism)[38]。 Superscalar技术是提高ILP最常用的方法,Superscalar技术是指在同一个时钟周期CPU可以发射多条指令。这一技术最早出现在1964年,Seymour Cray的CDC6600就使用了这一技术[39]。这一方法在绝大多数高端处理器中得到了广泛的应用。Intel的高端处理器可以并发执行3~4条指令。 TLP技术最常用的实现手段即为SMT。来自DEC的工程师准备在Alpha21464(EV8[iii])上率先实现SMT技术。Alpha21464还没有完成最终的Tape-Out,就因为需要为Itanium让路而被迫取消[40][41]。这也是在学术领域无所不能的Alpha处理器的最后绝唱。DEC的这些工程师经过多次辗转,最终在Pentium IV上实现了HT技术。此后MIPS MT和Power5处理器也实现了SMT技术。 HT技术的本质是在同一个CPU中支持多个线程,每一个线程都具有独立的通用寄存器,Local APIC等其他资源,所有的线程共享同一条流水线,可以是一个线程的指令处于流水线的译码阶段,而另一条线程的指令处于执行阶段。当某个线程因为需要执行一些耗时较长的指令时,流水线可以切换到另外一个线程继续执行以避免流水线的阻塞[iv]。对于某些需要大量访问共享资源的应用,使用SMT技术不仅不能提高流水线效率,反而会降低。 Intel声称使用了HT技术的Atom处理器,可以提高36~47%的效率[34]。这也无法回避某些Benchmark的结果,使用HT的结果更加糟糕。有一点是可以肯定的,不支持乱序执行的Atom处理器如果还不支持HT,其执行效率是不值得去评估的。 体系结构上的缺陷很难用任何技术去弥补。Intel依然坚持尝试。在Atom处理器的L1 Cache中的一个Cell使用8个晶体管,与使用6个晶体管的设计相比,这种设计显然将占用相对较大的die size,但是却可以使用更低的工作电压,从而最终降低功耗[28]。但是这些优化不能弥补Atom为支持“向前兼容”而带来的,来自体系结构上的先天缺陷。 第一代Atom处理器,Silverthorne和Diamondville早已问世。基于Atom处理器的Asus EeePC和Acer Aspire One取得了不俗的战绩。第二代Atom处理器,Pineview也得到了帝国各个成员的拥戴。向前兼容策略持续着过去的成功。PC领域因此多了两个新的成员,Netbook和Nettop。这两个新成员被赋予了一个新的名字,上网本。 Asus的第一个上网本EeePC预装着Linux操作系统[31],这个产品并没有被Wintel帝国看好。而EeePC的成功出乎他们意料之外,2007年EeePC的销量达到300,000台[32],并迅速地向百万台销售目标进军。Microsoft如梦初醒,迅速作出反应,在EeePC上预装WinXP,很快在EeePC上Linux与WinXP的预装比例达到了1:9。这个比例依然没有完全反映Linux在上网本中所占的比例,毕竟许多预装着Linux的上网本是销往中国的。随后比WinXP更加秀丽的Win7也出现在上网本中。 Wintel再一次统治了上网本市场,也亲手毁掉了这个市场。最初灵巧便携的EeePC已经成为历史,越来越多的人们看到的是上网本中Atom处理器的低速与Windows的臃肿。上网本的唯一优点只剩下价格。至此上网本成为廉价笔记本的简称。当Apple的Jobs拿出第一个iPad时,属于Wintel的上网本盛宴已经结束。一个新的名词平板电脑(Tablet)被万众瞩目。ARM处理器和Apple却是主角。 Wintel帝国并没有彻底失败。Intel所需要的并不是上网本。Intel并不需要这样的产品去瓜分Laptop市场。帝国的终极目标依然是可以手持的PC。上网本不过是技术尚不成熟的临时产品。Intel很清楚的意识到初期的Atom并不能离开Windows,向前兼容依然重要。只是向前兼容这个紧箍咒套上容易脱离难。 Intel的Moorestown平台终于浮出水面。这是Intel为手持PC开发的第一款产品,与ARM的单芯片解决方案并不相同。Moorestown平台由两个芯片组成,分别是代号为Lincroft的处理器和代号为Langwell的芯片组。Lincroft中包含一个Atom处理器、GPU和存储器控制器,用Intel的45nm工艺实现,而在Langwell芯片组中包含手持PC中常用的外部设备,如摄像机接口、USB接口、1080p HDMI接口和NAND控制器等[29]。 Intel为了更快的推出Langwell芯片组,并没有使用自己的生产工艺,而是依靠TSMC的65nm工艺。这引发了人们无限的猜想,在诸多半导体厂商中,Intel始终坚持“in-house-design”的思路,一个芯片从设计到生产都在Intel内部完成,而且Intel有太多的工厂可以生产65nm的芯片。Intel究竟需要从TSMC获得什么? Intel的Roadmap揭示Moorestown平台仅是一个权宜之计,在并不久远的将来,Medfield平台会将Lincroft和Langwell合二为一,这也将是Intel有史以来第一个单芯片处理器[29][30]。这颗芯片依然采用Intel的“in-house-design”的设计理念吗? 这一切并不重要,从体系结构的角度上看,Moorestown和Medfield平台使用的依然是Atom处理器内核,并以某种方式连接着手持PC使用的外部设备。从性能/功耗比的角度上,基于ARM AMBA总线的外部设备目前是最优的,远胜过追求性能的PCIe设备。 Moorestown和Medfield平台与ARM处理器平台最终需要一决胜负的依然是处理器内核。与在SPECint_base_rate2006 benchmark程序获得117高分的Nehalem处理器(在此之前没有任何处理器获得100以上的分数)不同[42],性能并不是Atom处理器的优势。并不出乎体系结构专家的意外,在许多Benchmark程序下,Atom处理器落后于Cortex A9处理器[43],如下表所示。而Atom处理器使用的功耗与ARM处理器目前并没有可比之处。
Youtube上有一个流传已久的视频[44],一个1.6GHz的Atom处理器(很可能是N270)与一个双核500MHz的Cortex A9平台在相同的分辨率,相同的主存储器大小,相同的操作系统环境下,浏览网页的速度几乎不分上下。采用RISC架构的Cortex A9依然有非常大的潜力可以进一步提升性能,而在体系结构上强调向前兼容的Atom处理器早已被捆住手脚。 失去性能优势的ARM处理器,还有功耗。而失去了性能优势的Atom处理器,只剩下向前兼容。越来越多的人们开始发问,在手持式领域,向前兼容是不是如Intel所料那样重要?虽然Intel一再宣称x86处理器拥有最大的软件Ecosystem,但是目前已有的x86兼容的程序究竟有多少可以不加修改地移植到手持式设备中,又有多少硬件IP可以与PCIe总线直接互连? 如果在手持式设备中,“向前兼容”也不再重要,Atom处理器剩下的只有Intel耗费重金打造的芯片生产工艺。多年以来IT技术被归于高科技领域,这并不是指架个微机编写软件。半导体芯片的制作使用了人类有史以来最复杂的工艺。 首先是硅的提炼,硅原料被投入一个巨大的硅熔炉中,然后再植入一个精度极高的硅种,被融化的硅原料将围绕这个硅种生长,最后形成一个纯度至少为99.9999%的单晶硅锭(圆柱体)。这个硅锭的直径一般为8英寸或者12英寸。之后这个硅锭被切割为一个个Wafer(硅晶片),Wafer再被切割为一个个正方形的Die。每一个Atom处理器将使用一个Die。 这些Die将被多次影印(Photolithography),蚀刻(Etching),最后形成一个多层3D结构。至此Foundry完全结束。经过Foundry处理后的Die,将经过封装,测试等流程,最终成为一个个半导体芯片。 所谓纳米工艺是发生在Etching阶段,Etching也是半导体工艺技术的重中之重。经过影印后,硅晶片将被涂上一层光敏抗蚀膜,之后使用极短的紫外线曝光光敏抗蚀膜。最后用化学溶剂清除已曝光的光敏抗蚀膜连同其下的一层硅。曝光的硅最后将被原子轰击,以生成N井或者P井,最终实现门级电路。 45nm,32nm技术是指MOS晶体管栅极的宽度。这个宽度越低,在相同大小的Die中就可以集成更多的晶体管。贝瑞特时代的Intel抓住了半导体工艺的发展启动机遇,在诸多半导体厂商中脱颖而出。但是这种领先很难持久。半导体成产工艺是材料科学,化学工业,光学技术和精工机械的集大成者,本质上是一门实验科学,需要大量的资金投入。 Intel取得了先机,也毕竟是在以一隅敌全国。Intel率先在Westmere处理器上实现了32nm工艺,22nm也将在2011年中期实现[45][46]。这些成功并没有使Intel在工艺上扩大领先优势,这一优势反而在逐步缩小。ARM Cortex A9已经可以使用Global Foundry提供的28nm工艺。当22nm技术来临时,Intel在生产工艺上的领先优势将不复存在。 Intel率先推出45nm时,是与其他半导体厂商差距最大的时刻,在工艺上几乎领先其他半导体厂商一代。而技术的革新与进步总是开头最难,中期发展阶段最快,至末期的举步维艰。种种迹象表明硅晶片的制造工艺已日趋极限。 如果Atom处理器连工艺的领先都无从谈起,在技术上将没有任何优势可言。一个产品成败并不完全取决于技术。也许二十年前Intel战胜所有RISC厂商的故事可能再次发生,也许偏执的力量可以战胜顶尖的技术。 只是Intel已无格鲁夫。 | ||||||||||||||||||||||||||||||
ARM芯片系列的微结构图
作者 陈怀临 | 2010-11-26 16:00 | 类型 芯片技术, 行业动感 | 1条用户评论 »
|
【陈怀临注:这里收集了ARM7,9,11和Cortex-A(8,9,15)和R,M的微结构图。希望有兴趣的读者喜欢。。。。通常而言,ARM9 Core是基于ARMV5TE指令集。Marvell的XScale也是ARMV5TE指令集的芯片。首席对XScale比较(或者说相当的)熟悉。。。ARM11是基于ARMV6指令集的;大致来说,Cortex-[A|R|M]都是基于ARMV7指令集的。A,R和M的意思就是ARMV7的Subset。A:Application;R:Realtime;M:Microcontroller。在基于ARM5,6,7结构的处理器核中,其中ARM7多是3级流水线;ARM9多是5级流水线;ARM11是8级流水线;Cortex-A8多达14级流水线。Cortex-A9回到了8级流行线。可见Pipeline是祸害呀。。。Cortex-A15似乎又上去了,多余20级流水线。。。】 | |
千人计划第一至三批(2008-2010)名单
作者 陈怀临 | 2010-11-26 11:28 | 类型 千人计划, 行业动感 | 10条用户评论 »
|
创业类: 第二批 2009年度(2009年9月公布)共204人 高校工作的77人,到科研机构工作的23人,到企业工作的36人,到金融机构工作的9人;自主创业的59人 创业类: 第三批2009年度(2010年3月公布)共204人 创业类: | |
ARM与x86:Eagle’s coming!
作者 陈怀临 | 2010-11-26 08:55 | 类型 弯曲推荐, 行业动感, 读者文摘 | 74条用户评论 »
系列目录 ARM与x86
【陈怀临注:通过读者推荐,看到了来自Intel的sailing关于ARM的系列文章。非常的优秀。现转载若干以飨读者。Eagle是ARM Cortex-A15的codename。是目前ARM阵容里最强悍的CPU,是A9的下一代。估计会在2012年有芯片。。。】 EAGLE is Coming!ARM的崛起使Intel陷入长考。 PC领域尚无需担忧,这个领域尚属Wintel帝国。帝国的成员历经过多次优胜劣汰,Wintel制定的多数策略都能得到这些成员的支持,更重要的是使他们最终受益。Intel从PC领域切走了最大的一块蛋糕,却是众望所归,这与Intel在这个领域的付出成正比。PC帝国偶尔出现的纰漏,总能够被Intel及时发现并加以修补。进入PC帝国的大门被Windows系统牢牢把持,ARM阵营虽多次试探,最终仍被拒之门外。 在手机领域,Intel还不是局中人。XScale架构之后,世上没有任何一款手机正在使用Intel制造的处理器。在这个领域,手机厂商,代工厂商,芯片提供商,操作系统提供商,相互交融,有合作也有竞争,尚未形成动态平衡。Nokia仍然暂居最大的手机市场份额,却在智能手机输给了Apple和Andriod。 Apple执着的封闭式系统在这个领域取得了意想不到的成功。Google的加入使得本已混乱的市场,变得更加难以琢磨。Microsoft在这个市场中屡战屡败依然不离不弃。2010年10月11日Microsoft正式发布了Windows Phone7[105],Google Android 2.3即将到来的谣言也在漫天飞舞。 乱哄哄你方唱罢我登场,却是处理器领域之外的故事。 在手机处理器领域,ARM是最大的收益者。无论是Nokia,Apple,HTC还是Motorola都在使用ARM处理器。Intel对这个市场垂涎三尺,也无可奈何。已经发布的Atom系列处理器,无论是Silverthorn(Atom Z5xx)系列,Diamondville(Atom N2xx,2XX和3XX),Pineview(Atom N4xx, D4xx和D5xx)距离手机领域都很遥远。 Intel近期发布的代号为Lincroft的Atom Z6xx系列处理器,却应者聊聊。基于这个内核的Moorestown平台,难显Intel昔日的振臂一呼。尚未有任何一个手机厂商宣布使用这个平台生产手机。正在业界似乎还在等待Intel即将在2011年推出的Medfield平台,这个平台将沿用Atom Z6xx内核,采用32nm工艺,进一步提高性能功耗比[107]。Intel却很难选择继续等待,因为Intel的后院再一次燃起了熊熊烈火。 借助ARM处理器,Apple的iPad已率先向Intel发难。这也标志着手机领域和PC领域融合的开始。融合的进度虽然缓慢,绝大多数参与者却已先知先觉。Intel选择在手机领域进行反击,经过一系列的合作与收购,进军手机领域一支的先头部队已悄然组建。 Intel的这一系列动作,不足以改变手机领域的格局,却足以使其震惊。这个领域的既得利益者很难接收这位巨人。Intel的能力不容置疑,胃口却太大了些。过小的手机上放满了运营商和生产厂商的Logo,实在无法再加入一个Intel inside。 Intel并不在乎这些阻力。在短时间内,Intel的Atom处理器依然无法在性能功耗比上压倒Cortex处理器,对于Intel这确实是一个长期而艰巨的任务。这一些并不值得担忧。性能功耗比这个词汇是ARM发明的,主要目的是为了掩盖ARM处理器当时过于低下的性能。 这个词汇无法阻碍Intel进军手机领域的步伐。Intel很清楚只要Atom处理器能够在功耗上满足手机领域的需求,就可以利用自身强大的Ecosystem逐步切入手机领域。加以时日增强对手机领域的理解,Intel完全可以在手机领域向ARM阵营发起强有力的挑战。 Cortex系列处理器的横空出世打乱了Intel的部署。Intel在最不应该失败,也最失败不起的性能上,莫名其妙地输给了ARM。从Cortex A9起,ARM处理器实现了对Atom内核性能上的反超[i],而Cortex A15完成了对Atom内核的全面超越。虽然目前尚未有基于Cortex A15内核的处理器,但这只是时间问题。 Intel的时间所剩无几。如果在Moorestown/Medfield平台上使用的处理器内核性能没有明显超过Cortex系列处理器。Intel近期的所有努力将付之东流。在今后两到三年左右的时间,Intel必须发布一个全新的Atom内核[ii],在性能上需要明显高于Cortex A15内核。Intel必须在本质上提高Atom内核的性能,这需要一个激进的变革,而不是渐变。Intel可以暂时依靠并不完美的Atom内核在商务上取得成功,但是商业与技术不会长久背离。Cortex系列处理器的出现敲响了Intel的警钟。 第一颗Cortex内核于2004年10月19日发布[108],这个内核并不是Cortex-A8,而是Cortex-M3。Cortex A8内核于2005年10月4日发布[109]。随后ARM在2006年5月15日发布了Cortex-R4内核[110]。至此Cortex内核完成了在嵌入式领域的布局。Cortex M,R和A内核都使用ARMv7的指令集,应用于嵌入式的不同领域。M内核[iii]应用在一些对成本较为敏感的微控制器领域,R内核主要应用在实时控制领域,而A内核用于手机与PC领域。 ARM11之后,ARM处理器内核不再以ARM作为前缀[iv]。ARM公司取消这个前缀完全是出于迷信的考虑[v]。在ARM的历史上,所有以偶数结尾的ARM内核,包括ARM2,6,8和10,都没有获得成功。ARM不想使用12,而13似乎更加糟糕,于是换了一个新名字。ARM这个单词并没有在Cortex系列中消失,Cortex的三大系列M-R-A,合起来就是ARM。 更换前缀后的内核,已焕然一新。Cortex A8内核的DMIPS指标达到了2.0DMIPS/MHz,相比ARM11取得了巨大的进步。Cortex A8处理器在大幅提高性能的同时依然保持了低功耗优势。一个含有32KB的指令和数据Cache,256KB的L2 Cache的Cortex A8,在使用600MHz的时钟频率时,总功耗仅为300mW。 Cortex A8内核不再使用简单的Enhanced DSP指令,而是引入了NEON部件。NEON的功能与Intel的SSE类似,用于支持SIMD类指令。Cortex A8是第一颗引入Superscaler技术的ARM处理器。在每个时钟内,Cortex A8可以并行发射两条指令[111]。出于降低功耗的考虑,Cortex A8内核依然使用了静态调度的流水线和顺序执行方式。 为了进一步提高时钟频率,Cortex A8内核使用了13级的整型指令流水线和10级NEON指令流水线,流水线级数高于ARM11内核的8级。流水线级数的增加有利于处理器主频的提高,却对指令分支预测的成功率提出了更高的要求。 Cortex A8在ARM11的基础上,将BTB使用的Entry数目从64增加到512,同时设置了GHB(Global History Buffer)和RS(Return Stack)部件。这些措施极大提高了指令分支预测的成功率,从ARM11的88%提高到Cortex A8的95%[112]。 Cortex A8在Cache的设计中,首次引入了Way-Prediction部件。在现代处理器中,Cache由多个Way组成,如8-way,16-way或者32-way。Way-Prediction部件的主要功能是预测当前Cache访问将使用哪个Way,从而可以暂时关闭不使用的Cache行,从而到达节电的目的。Intel从Pentium M处理器起使用了这种Cache访问方式,并一直应用到x86处理器的后续产品中。Atom处理器也可能使用了这种方式。 与ARM11相比,Cortex A8内核在Cache Memory系统上,进行了较大的优化。Cortex A8内核访问L1 Cache只需要一个时钟,而ARM11需要使用两个。Cortex A8支持L2 Cache,大小为128KB~1MB,ARM11虽然也支持L2 Cache,却几乎没有被SoC厂商使用。Cortex A8可以使用64位或者128位总线连接外部设备,而ARM11只能使用64位总线。 Cortex A8使用Architecture-Gating和Functional-Gating两种技术进一步降低功耗。所谓Architecture-Gating是指,处理器内核执行WFI(Wait for Interrutp)指令之后,将进入idle-loop模式。Cortex A8的Functional-Gating技术的本质是使用Clock-Gating,分离各个功能部件。当处理器运行运算时,与其不相关的功能部件,如Cache,指令队列,Write Buffer和NEON所使用的时钟可以临时关闭,以达到节电的目的。Clock-Gating技术的大规模使用使得Cortex A8内核获得了300mw/MHz的功耗频率比[111]。 在前45nm时代,Clock-Gating技术也已经在x86处理器上得到了广泛的使用,Cortex A8之所以获得了高于x86处理器的性能功耗比的重要原因,一是使用了更少的晶体管,二是因为没有象x86处理器那样去挑战处理器运算能力的极限。 在Cortex A8之后,ARM加快了处理器内核的更新速度,每3年就会推出一个A系列处理器内核。这个速度远低于Intel的Tick-Tock。而对于人数不满两千,同时要兼顾Cortex R和M系列内核升级的ARM,已经是一个不小的奇迹。 2007年10月3日,Cortex A9正式推出[113]。Cortex A9具有两个版本,一个是传统的单内核,另一个是MPCore,最高主频可达2.0GHz,最多支持4个内核。Cortex A9的整型运算的性能在Cortex A8的基础上提高了25%,达到了2.5DMIPS/MHz和2.9CM/MHz[43][114],恰好超过Atom处理器的2.4DMIPS/MHz和2.8CM/MHz[vi]。 Cortex A9采用了更高的成产工艺,整型流水线的级数虽然只有8级[vii],时钟频率却高于Cortex A8。在Cortex A9中,ARM引入了高端处理器常用的乱序执行(Out-of-Order)和猜测执行(Speculative Execution)机制,进一步扩大了L2 Cache的容量(128KB~8MB),可使用Snooping和Directory两种机制实现Cache的一致性。 与Cortex A8相同,Cortex A9依然使用MESI模型进行Cache的共享一致性,但是对MESI模型进行了许多优化,支持更多的Cache-to-Cache传送方式,进一步减少了处理器对主存储器的访问[114][115]。 这些更新极大地提高了Cortex A9的性能。从Cortex A9开始,ARM处理器正式完成了对Intel Atom内核性能上的超越,Cortex A9在性能上超越的不仅是Atom,还包括同时代用于嵌入式系统的处理器,如PowerPC和MIPS处理器[115]。ARM依靠性能功耗比的日子已一去不复还。但是Cortex A9距离Intel的主流处理器,Nehalem,Westmere和Sandy Bridge处理器依然有不小的差距。 ARM并没有停下脚步,2010年9月8日,代号为Eagle的Cortex A15正式发布[116]。对于Intel而言,狼外婆终于来了。Cortex A15内核并不是Cortex A9的继承者,事实上Cortex A9虽然与Cortex A8的功能较为相近,也不是完全的继承关系。 与Intel频繁更新处理器内核的策略并不相同,ARM的内核具有更长的生命期。1993年发布的ARM7内核仍然在被大规模使用。依次估计,Cortex A8,A9和A15这三颗内核所关注的领域虽然有所重复,这三颗内核仍将在相当长的一段时间里并存,深入到嵌入式应用的各类高端领域。 Cortex A15已经拥有足够的性能,具备进军了Laptop和Server领域的能力。在未来的3到5年里,Cortex A9和Cortex A15组成的ARM处理器阵营将与Intel的Atom,Sandy Bridge处理器展开全方位的较量。 Cortex A15最高主频将达到2.5GHz,最多可支持8个内核,采用Superscaler流水线技术,具有1TB的物理地址空间,支持虚拟化技术,乱序执行,寄存器重命名,并行设置了多个执行单元。几乎在现代高端处理器技术中涉及的技术都可以在这颗芯片中找到。 Cortex A15内核的性能将在Cortex A9的基础上继续提高50%。ARM公司尚未公开Cortex A15的功耗指标,但是可以预计在性能大幅提高的前提下,Cortex A15的功耗也必随之大幅提高。 首先是处理器主频的提高。Cortex A15使用了超长的24级流水线结构[viii],前12级用于指令预取,译码与分发,这部分指令流水是顺序执行的;后3~12级用于指令的执行,在这一阶段,指令可以乱序执行[117][118]。 超长的流水线结构利于处理器主频的提高,但是与Cortex A8相比,在使用相同的工艺时Cortex A15的主频仅仅提高了10%[117],以此推测Cortex A15使用的超长流水线,可能为了降低功耗。 Cortex A15另外40%的性能提高,需要流水线其他部件和Cache Memory系统的协调工作。Cortex A15必须极大增强分支指令的预测命中率。过长的流水线也意味着巨大的流水线中断惩罚。Cortex A15分支预测部件的工作原理与Cortex A8/9基本相同,只是将BTB的条目增加到了2K个,而且采用2-way组相连结构。 Cortex A15的GHB由Taken阵列,Not Taken阵列和Seletor阵列[ix]组成。Cortex A15对非直接跳转指令进行了一些优化,设置了256个Entry的BTB阵列,每一个Entry可以存放多个目标地址。除此之外Cortex A15还引入了64个Entry全互连结构的MicroBTB。Cortex A15的这些功能增强进一步提高了转移指令的命中率,但是与Nehalem处理器的分支预测单元相比仍有不小的差距[117]。 Cortex A15的流水线与Cortex A8的基本结构较为类似,由Fetch,Decode,Rename,Dispatch,Neon/VFP,Interger Issue和Load/Store Issue等部件组成,只是在Cortex A15中,指令需要更多的时钟节拍才能通过这些部件[117]。例如在Cortex A15中,Fetch单元由5级组成,Decode单元由3级组成[117]。 Cortex A15的指令预取总线的宽度为128b,一次可以预取4~8条指令,与Cortex A9相比,提高了一倍。Decode部件一次可以译码3条指令,而Cortex A9一次可以译码2条指令。 Cortex A15引入了Micro-Ops的概念。Micro-Ops指令与x86的μops指令表现形式不同,但是基本想法较为类似。在x86处理器中,指令译码单元将复杂的CISC指令转换为等长的μops指令,再进入指令流水线中运行;而在Cortex A15中,指令译码单元将RISC指令进一步细分为Micro-Ops,以充分利用指令流水线中的多个并发执行单元。Cortex A15的Decode部件在一个时钟节拍内可以同时译码3条指令,并将这3条指令转化为5个micro-ops[117]。 Cortex A15进一步扩大了Interger Issue部件的发射能力,从Cortex A9的3条提高到4条。Cortex A15分离了Cortex A9的Load/Store Issue部件,具有独立的Load和Store部件,并开始在流水线使用128位宽的数据总线。 Cortex A15还使用了32个Entry的Loop Buffer,当处理器执行一段较长的循环指令时,指令流水线将直接从Loop Buffer中获得Micro-Ops,而无需使用Fetch和Decode部件。此时这两个部件可以暂时关闭,以节约功耗。Intel也在Core 2架构中使用了相同的机制[119]。 从体系结构的角度上看,Cortex A15相对与ARM处理器自身而言是一次飞跃,但是与Intel的Nehalem/Sandy Bridge处理器相比,仍处于入门阶段。上文所提到的在Cortex A15中出现的技术,对于Nehalem处理器而言都是微不足道,更不用说是Sandy Bridge处理器。但是Cortex A8/9+Cortex A15依然可以凭借性能功耗比向Atom+Nehalem/Sandy Bridge处理器发起强有力的冲击。 制约x86处理器继续向前发展的主要原因有两个。一是Intel已经处于处理器体系结构的最前沿,每前进一步的代价过于巨大,Cortex A15虽然取得了巨大进步,但是仍处于高端处理器的入门阶段,仍有巨大的潜力。更重要的是,跟随者可以以更小的代价获得最新的技术。另外一个原因就是Intel的向前兼容策略,在某种程度上束缚了Intel前进的步伐。 ARM公司一再强调Cortex系列处理器的性能功耗比的优势,也在不自觉地掩饰ARM处理器相对较为简单的架构。从处理器体系结构本身出发,决定一个处理器功耗的最直接的要素依然是使用的晶体管数目。x86系列处理器功耗较高的主要原因是集成了较多的晶体管。在ARM处理器中使用的低功耗技术没有哪一个是独门绝技,这些技术也出现在x86系列的处理器中,包括Atom处理器。 从低功耗的设计理论上讲,一个处理器的功耗主要由动态功耗和静态功耗两部分组成。而对于CMOS电路,动态功耗主要由开关功耗和短路功耗两部分组成,公式描述如下。 Pdyn = (CL × Ptrans × Vdd2 × fclock) + (tsc × Vdd × Ipeak × fclock) [120] 其中CL指电路总负载电容,Ptrans指工作电路所占的比例,Vdd指工作电压,fclock指工作频率。而tsc指PMOS和NMOS同时打开的时间,在多数情况之下tsc的值较小,因此上述公司的后半段几乎可以忽略不计,因此Pdyn ≈ (CL × Ptrans × Vdd2 × fclock)。 其中CL参数由电路设计的复杂度决定,这也是x86处理器和ARM处理器目前功耗差距的最重要来源。Ptrans参数由处理器设计的电源管理策略决定,这也引出了另外一个低功耗设计的热点问题,处理器的低功耗设计更应侧重于在不同的场景之下,功耗的使用情况,而不应关注平均值。放之四海而皆准的电源管理最优策略并不存在,没有人能做到又让马儿跑,又让马儿不吃草。 Vdd参数的降低可以有效的降低功耗,近些年Vdd的值在不断下降,从5.0V,3.3V,2.5V到1.2V和0.8V。Vdd的不断下降,导致Vt[x]也随之降低,不断降低的Vt最终导致Isub[xi]呈指数上升,反而极大了增加了静态功耗,这个现象在45nm及以下工艺的设计中更为凸现。fclock更似一面双刃剑。频率的提升有利于性能的提高,却也极大提高了功耗。 从CL和Ptrans两个指标上分析,不难发现ARM在CL层面上做得更好,更简练的设计决定了ARM处理器的低功耗。而在Ptrans层面上分析,x86更胜一筹,x86处理器在ACPI规范中定义了一系列处理器状态,运比ARM处理器定义的状态复杂。x86处理器获得了较低的Ptrans值,但也无法掩盖因为较高的CL而获得的总功耗。 随着处理器制作工艺的不断前进,静态功耗所占的比例在不断地提高,这使得一些可以显著降低动态功耗,却提高了静态功耗的技术不再适用。静态功耗是指在晶体管处于上电状态时,晶体管的漏电流(Leakage)引发的功耗。漏电流主要由ISUB,IGATE,IGIDL和IREV组成。使用45nm工艺时的静态功耗是90nm工艺的6.5倍,使用32nm,22nm工艺时,静态功耗所占的比例呈指数上升[120]。 这些变化使低功耗的设计从降低动态功耗逐步转移到降低静态功耗上,在管理策略上从Clock Gating逐步转移到Power Gating。在Cortex A8处理器中,ARM将Clock Gating技术发挥到了极致,而由于缺乏工艺上的领先,在Power Gating领域上落后于Intel。从纯技术的角度上看,无论在降低动态功耗还是静态功耗的领域上看,Intel都是领先的。Intel在工艺上领先的事实,也在一定程度上说明了从门级电路的实现上看,天下半导体厂商的合力尚不足与之抗衡。 Intel却没能实现性能功耗比最优的处理器,这是技术之外的故事。在商业上,Intel一直坚持着向前兼容。多年以来Intel依靠向前兼容,战胜了一个又一个对手。向前兼容需要额外使用更多的晶体管数量,在服务器领域,因为保留向前兼容所浪费的晶体管并不是太大的问题,在手机领域却不容忽视。 Pentium Pro处理器大约使用了30%的晶体管数目处理x86向前兼容,包括Microcode ROM,指令译码和控制逻辑[121],而Pentium Pro处理器一共使用了5.5M个晶体管数目[36]。但是不要认为x86处理器在处理向前兼容时仅仅需要使用1.65M颗晶体管。因为除了进行指令变化(Instruction Transforming)这段逻辑之外,随着L1指令Cache的增加,向前兼容所付出的代价也在等比例上升。更重要的是由于乱序存储器访问模型的出现,向前兼容需要付出更大的代价。 Atom处理器在实现中使用了In-Order的流水线,并没有采用乱序执行的μops指令流水线,在很大程度上也在回避着因为向前兼容而带来的巨大惩罚[xii]。x86处理器继续背着向前兼容的大山,与针对性能功耗比进行了一轮又一轮优化的Cortex系列之间的竞争并不公平。 对Intel更不公平的是其长期坚持的通用平台战略。因为Intel的努力,PC处理器更加标准,更加通用,更加廉价。通用平台使得Intel获得了巨大的成功,却在一定程度上阻碍了Intel进军嵌入式领域。 嵌入式领域是一个备受Intel通用平台战略挤压的系统,通用处理器每进一步,嵌入式处理器便后退一步。嵌入式处理器在不断后退,不断细分的过程中,顽强地活了下来,更加根深蒂固地坚守了自己的阵地,回首却发现一直在前进的通用处理器x86,生活在最大孤岛中,被其包围得密不透风。这一次x86处理器需要从孤岛中游回彼岸,却无法使用ARM阵营的细分市场策略。 Intel和ARM两个公司本身并不具备可比性。Intel自1992年起,一直在半导体厂商中排名第一,而ARM公司从来没有进入过半导体厂商的排名,甚至可以说ARM并不是一个半导体厂商,因为ARM没有生产过一颗商用处理器。Intel一年的销售额是几十个Billion,而ARM仅为几百个Million。Intel有7,8万名员工,而ARM仅有1700余名员工。 虽然单独的ARM没有办法与Intel比较,但是ARM阵营所蕴含的能量却足以与Intel的x86阵营抗衡。在2009年排名TOP20的半导体厂商,除了Intel,AMD和Elpida之外,全部License了ARM内核。不仅如此ARM阵营还包括Apple,Microsoft和Google。诸多形态各异厂商的参与使ARM阵营更加立体化。 在x86处理器阵营中,AMD近期很少有声音[xiii],VIA在持续的亏损,真正努力的只剩下Intel。在Intel的Ecosystem中,除了Intel和提供基础BOIS的厂商外,其他的OEM/ODM并没有在处理器体系结构方面给予Intel必要的帮助。有些OEM厂商更像是依托在x86处理器之上的寄生虫。 严酷的外部环境使得Intel更加需要使用统一平台战略进入嵌入式市场,虽然这个策略与嵌入式系统要求的进一步定制,进一步细分的原则背道而驰。Intel不能在统一平台上有所动摇,目前以及在很远的将来,x86处理器阵营都无法向ARM处理器那样深入到嵌入式的每一个领域。多数嵌入式领域所提供的空间也无法容纳Intel这样的庞然大物。 Intel的目标非常明晰,就是进军手机处理器。虽然ARM处理器在手机领域处于垄断地位,在技术上Intel也并非没有任何机会。与ARM处理器相比,Intel的Atom处理器性能功耗比相对较为落后,但这并不是Intel在技术上的最大劣势。从整型运算的角度上看,Cortex A9略高与Atom处理器,而Atom处理器在Cache memory的表现更优。内核上的相比,两者各有千秋。 最使Intel尴尬的是,x86处理器并没有一个与AMBA总线类似的SoC平台总线,这是Intel进军嵌入式领域一个不小的障碍。Intel或者定义一条全新的SoC平台总线,或者集成AMBA总线。从加速推出产品的角度上,直接使用AMBA总线无疑是一条捷径。而世上没有捷径,从更长远的时间上看,借用AMBA总线,会使ARM阵营更加强大。最初的所谓捷径不过是为他人做的嫁衣裳。 Intel却很难有其他选择。在x86处理器系统中广泛应用的PCIe总线,不能使用在SoC内部。这条总线的设计目标是作为局部总线,连接片外的外部设备。PCIe总线可以提供巨大的带宽,也带来了较大的传送延时。更为重要的是与基于AMBA总线的外部设备相比,实现基于PCIe总线的外部设计需要更多的资源,也因此带来了巨大的功耗。 基于PCIe总线的低功耗设备,与基于AMBA总线的低功耗设备,在性能功耗比上没有可比性。AMBA总线是一个在SoC领域使用的事实上的标准。AMBA总线阵营的强大超乎多数人的想象。 AMBA总线V1.0于1995年正式发布[122],用于SoC内部各个模块间的互联,支持多个主设备,支持芯片级别测试。AMBA V1.0定义了两条总线,ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。V1.0还定义了一个连接存储器的外部接口,这个外部接口还可以用做测试。 ASB总线是一个快速总线接口,使用独立的地址数据总线,支持流水传送方式,支持多个主设备与从设备,采用集中译码和仲裁方式。ASB总线的主要作用是连接CPU,DMA引擎,内部存储器和一些快速外部设备。而APB总线连接一些慢速设备,APB是ASB的Secondary Bus,两者的关系如图4所示。 从今天的技术上看,AMBA V1.0总线十分简陋,设计这样的总线标准甚至可以作为几个研究生的毕业论文。而AMBA总线是一个开放标准,使用AMBA总线用户不需支付任何费用[123]。开放的总线标准使AMBA总线迅速普及的同时,极易吸收整个半导体业界的成果。 1999年AMBA总线更新到V2.0[124],增加了一个新的总线AHB(Advanced High-Performance Bus)。AHB取代了ASB在系统中的位置,并使ASB进一步下移,增加了Split传送方式进一步提高了存储器读的效率,总线宽度最高可达128位。 2001年,ARM发布了AMBA V3.0总线规范,引入ATB(Advacned Trace Bus)和AXI(Advanced eXtensible Interface)总线。AXI总线的引入,使得AMBA总线迈向新的台阶,性能已经可以与IBM的CoreConnect抗衡[126]。 AXI是一条现代总线。AXI总线分离了一个总线周期的地址阶段和数据阶段,更便于实现在现代总线中常用的Pipelining和Split技术。AXI总线进一步分离了总线通路,将AHB的单通路分解为Read Data,Read Address,Write Data,Write Address和Write Response共5个独立通路,进一步加速了对存储器的读写访问。 AXI总线接口逻辑设计较为复杂,与AHB总线相比多使用了50%的资源。AXI的一次总线周期至少需要传送64字节的数据,而AHB总线是16字节,这也导致AXI总线的传送延时高于AHB总线[125]。AXI总线的目标不是用于替换AHB总线,事实上在一个SoC中,AXI总线和AHB依然并存,只是AXI总线更接近ARM内核,而AHB总线更贴近外部设备。 AMBA总线阵营已经统治了整个嵌入式的平台总线,而且正在日益壮大。2010年3月8日,ARM正式推出AMBA V4.0总线,引入了QoS机制,进一步增强了多层结构,将AXI总线细分为AXI4,AXI-Lite和AXI-Stream[127]。 AMBA总线标准提供的AXI,AHB,ASB,APB和ATB总线,不仅使用在ARM处理器系统中,MIPS和PowerPC处理器也开始使用AMBA总线。除了嵌入处理器之外,TI,Freescale的DSP也在使用AMBA总线。AMBA总线已经无孔不入,在整个嵌入式领域,没有可以向其挑战的对手[xiv]。 面对ARM内核,Intel并不畏惧,面对AMBA总线阵营,Intel只能剩下无奈。可以预计在相当长的一段时间里,Intel无法推出一条能和AMBA总线抗衡的SoC平台总线。Intel只能暂时向AMBA总线示弱。Intel自身具有强大的图形处理芯片,却在Moorestown平台中不得已使用了PowerVR SGX 535[128][129]图形处理芯片。PowerVR SGX 535也是Apple A4,Samsung Hummingbird和TI的OMAP4处理器使用的图形处理芯片。 基于低功耗的考虑,Intel依然需要依赖ARM阵营提供的外部设备。而如果最终的结局是Atom处理器依赖AMBA外设战胜了Cortex内核,Atom处理器也会被ARM阵营重新绑架。对于多数厂商,通过简单的系统集成,快速推出市场需要的产品是第一位的,而这些厂商却无法获得更高利润。 ARM的廉价License策略实际上已经清楚地向Intel转告了一个事实,单纯依靠处理器内核无法在嵌入式领域取得暴利。而无法获取暴利的领域是不会有持续的资金注入。Intel并不会例外。 也许Intel一直等待Medfield平台的成熟。但是不要给予这个平台太多的期望。Medfield,这颗Intel有史以来第一个基于Atom处理器单芯片解决方案[130],如果仅是将Moorestown平台的Lincroft处理器和Langwell和二为一,前景并不光明。Medfield平台所提供的外设,很难与ARM平台的外设抗衡,最多只是打个平手。 在外部设备领域,ARM不是一个人在战斗,而是利用AMBA总线控制了整个半导体界。整个世界已有的用于手机的处理器平台都在使用基于AMBA总线的各类外设,而没有一个使用PCI/PCIe总线的外部设备。 Intel的Medfield平台可能的优势依然是在处理器内核上全面战胜Cortex A9和A15。而这一切对于Atom Z6xx内核来说几乎是一件不可能完成的任务。可以预见,Medfield平台诞生后,依然与基于Cortex A9内核的手机平台旗鼓相当。而对于后入者,仅靠旗鼓相当,很难获取太多的市场份额。 而在抛开技术之后,Intel所面临的处境更加艰难。Intel所主导的Wintel帝国统治IT世界已有多年,芸芸众生对Wintel帝国产生了严重的审美疲劳。Intel需要进入的手机领域,与其说被ARM把持,不如说被剩余的几乎所有半导体厂商把持。Intel动了ARM的奶酪也意味着动了全天下半导体厂商的奶酪。Intel的进军手机领域更像是一场大的赌博,没有人知道结局。可以肯定的是,Intel再放弃了XScale架构之后,不会轻易地放弃Atom架构。 也许Intel需要急迫解决的并不仅是技术问题。与许多巨型公司相似,在更多时候,最大障碍不在颛臾而在萧墙之内。与不到2000员工的ARM相比,来自Intel内部的故事复杂得多,也深刻得多。 多年以来,Intel在PC领域取得巨大成功的同时,也滋生了巨大的执拗。x86处理器之前取得的辉煌,使得改变成为Intel一个尽力回避的观念。Medfield平台的成功,对于Intel可能不是一件好事。也许Intel需要的是一场大的失败,因为使用失败统一内部意见往往比使用胜利容易得多。 2011年,Intel将发布Medfield平台。ARM阵营也许依然会战胜Medfield平台。这仅是决战的开始。永远不要低估Intel这颗巨人的心。 [i] 有关Atom处理器与Cortex A9的性能对比见ATOM的前生今世。 [iii] M内核实际上不是ARM内核,而是16位的Thumb 2内核。 [iv] 对我而言这是一件非常快乐的事情。从这时起,我再也不用写ARM公司的ARM7内核这样绕口的文字了。 [v] 没有找到ARM的官方说法,所以没有列出参考文献。这个说法很可能是网上的谣言。 [vi] 我更相信这是Cortex A9处理器的预谋。Cortex A9可以超过的更多,不过ARM选择将更多的风头留给Cortex A15。 [vii] 8级流水做到了2.0GHz,又是乱序,又是猜测访问,又是多发射,实在是佩服。 [viii] 使用了这么长的流水线,却不是为了提高主频,想必是基于降低功耗的考虑。应该有些独特的设计,目前尚无找到详细描述。Cortex A15的这种做法有别于x86。 [ix] 在多数处理器中,GHB具有4个状态Taken,Not Taken,Weekly Taken和Weekly Not Taken,Cortex A15将后两种状态合并。采用这种方法可以进一步减少晶体管数目,但其效果仍需观察,目前尚未找到采用这种方法的最终量化分析结果。 | |
给力吧,x86(1)——11月10日测试记录
作者 老韩 | 2010-11-25 23:28 | 类型 互联网, 网络安全, 通讯产品 | 99条用户评论 »
|
系列内容:
测试环境 DUT:DIY的Panabit,其中
测试仪:Spirent Avalanche 2900 / IXIA 1600T 测试结果
Avalanche2900只有4个电口,自环后直接接在DUT的4个口上,配置不变直接打,得到100000的结果,验证为测试仪性能瓶颈。DUT的CLI下把拆链接Timeout时间置为0,测的90000左右稳定值,测试仪取样峰值90014。 瞎想
摘抄一句新闻稿:英特尔公司推出的六款英特尔® 凌动™ E600系列系统芯片(研发代号“Tunnel Creek”),能帮助客户轻松设计差异化定制产品,加快产品上市速度。今天,英特尔公司进一步发布了可配置的英特尔凌动处理器 E600C 系列,它将英特尔凌动E600 处理器和 Altera* 现场可编程逻辑门阵列(FPGA)融入了一个封装内。 关于这个E600C,以及传说中Intel倡导下,风河6Wind推出的基于x86的高性能网络软件基础架构,欢迎大家发表见解。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ARM的演化–64位计算与高端服务器市场
作者 陈怀临 | 2010-11-25 23:15 | 类型 行业动感 | 15条用户评论 »
|
ARM的演化从1981年开始酝酿,从1985年4月25日的第一个ARM流片,ARM一路走来。没人能想到ARM的今天;ARM自己也没有想到自己的今天。系统是演化出来的;系统是长出来的。没人能在1985年设计出ARM的今天。目前ARM公司自己的演化主要是ARM7, ARM9, ARM11 and Cortex(A,R,M)。其中Cortex-A9的MP可以支持1-4个多核。在9月份,ARM也宣布了其Cortex-A15,与A9 MP类似,A15可以支持更大的cache和其他的一些MMU特性,和最重要的:硬件虚拟化技术;基于A15的芯片估计会在2012年才能有芯片。据说A15的性能可以比A8好5倍。。。下面是A15的微结构图一览: 这几天,媒体有透露出一个重大新闻–64bit的ARM芯片要出来了。而且据说已经流片出样品了!!! 这是个非常重要的事情。这其实意味这ARM要正式的进军服务器行业了!!! 相关的谣言新闻如下: Rumours hint at imminent ARM 64-bit processor 64bit计算对于大型数据库,数据处理等是非常重要的。这也是EM64T和CSI(现在的QPI)是Intel得以咸鱼翻身的重要技术环节。AMD没有牢牢抓住在64位的领先和HT互联的优越,确实令人可惜。。。。。。 | |
云计算背后的秘密(1)-MapReduce
作者 吴朱华 | 2010-11-25 22:32 | 类型 弯曲推荐, 行业动感 | 9条用户评论 »
系列目录 云计算的秘密之前在IT168上已经写了一些关于云计算误区的文章,虽然这些文章并不是非常技术,但是也非常希望它们能帮助大家理解云计算这一新浪潮,而在最近几天,IT168的唐蓉同学联系了我,希望我能将云计算背后的一些核心技术介绍给IT168的读者,虽然我本身已经忙于其它事务,但是由于云计算的核心技术是我最熟悉和最擅长,而且宣传这些技术也是我写《剖析云计算》一书和建立PeopleYun.com站点的初衷,所以我毫不犹豫地接受了这个邀请,这就是“云计算背后的秘密”这个系列的由来。 在这个新系列中将介绍多种云计算所涉及到的核心技术,包括分布式处理、分布式数据库、分布式锁、分布式文件系统、多租户架构和虚拟化等,而且将会介绍这些技术相关的产品和用例,以帮助大家进一步理解这些技术。预计每周会更新一篇,总长度会在10篇左右,希望大家能喜欢,而本文则是这个系列的第一篇。
在Google数据中心会有大规模数据需要处理,比如被网络爬虫(Web Crawler)抓取的大量网页等。由于这些数据很多都是PB级别,导致处理工作不得不尽可能的并行化,而Google为了解决这个问题,引入了MapReduce这个分布式处理框架。 技术概览MapReduce本身源自于函数式语言,主要通过”Map(映射)”和”Reduce(化简)”这两个步骤来并行处理大规模的数据集。首先,Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作,且原始列表不会被更改,会创建多个新的列表来保存Map的处理结果。也就意味着,Map操作是高度并行的。当Map工作完成之后,系统会接着对新生成的多个列表进行清理(Shuffle)和排序,之后,会这些新创建的列表进行Reduce操作,也就是对一个列表中的元素根据Key值进行适当的合并。下图为MapReduce的运行机制: 图1. MapReduce的运行机制 接下来,将根据上图来举一个MapReduce的例子来帮助大家理解:比如,通过搜索引擎的爬虫(Spider)将海量的Web页面从互联网中抓取到本地的分布式文件系统中,然后索引系统将会对存储在这个分布式文件系统中海量的Web页面进行平行的Map处理,生成多个Key为URL,Value为html页面的键值对(Key-Value Map),接着,系统会对这些刚生成的键值对进行Shuffle(清理),之后,系统会通过Reduce操作来根据相同的key值(也就是URL)合并这些键值对。 优劣点谈到MapReduce的优点,主要有两个方面:其一,通过MapReduce这个分布式处理框架,不仅能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,比如,自动并行化、负载均衡和灾备管理等,这样将极大地简化程序员的开发工作;其二,MapReduce的伸缩性非常好,也就是说,每增加一台服务器,其就能将差不多的计算能力接入到集群中,而过去的大多数分布式处理框架,在伸缩性方面都与MapReduce相差甚远。而 MapReduce最大的不足则在于,其不适应实时应用的需求,所以在Google最新的实时性很强的Caffeine搜索引擎中,MapReduce的主导地位已经被可用于实时处理Percolator系统所代替,其具体细节,将在本系列接下来的文章中进行介绍。 相关产品除了Google内部使用的MapReduce之外,还有,由Lucene之父Doug Cutting领衔的Yahoo团队开发,Apache管理的MapReduce的开源版本Hadoop,而且一经推出,就受到业界极大的欢迎,并且衍生出HDFS、ZooKeeper、Hbase、Hive和Pig等系列产品。 实际用例在实际的工作环境中,MapReduce这套分布式处理框架常用于分布式grep、分布式排序、Web访问日志分析、反向索引构建、文档聚类、机器学习、数据分析、基于统计的机器翻译和生成整个搜索引擎的索引等大规模数据处理工作,并且已经在很多国内知名的互联网公司内部得到极大地应用,比如百度和淘宝。 最后,如果大家对MapReduce感兴趣的话,可以到Hadoop的官方站点上下载并试用。
| |













(1个打分, 平均:4.00 / 5)
2008年12月中央下发《关于实施海外高层次人才引进 计划的意见》以来,千人计划已经实施 3批引进662名海外高层次创新创业人才,而第四批申报工作已经结束,预计有160人左右入选。入选人数有如下分布:
(4个打分, 平均:4.75 / 5)


