找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3800|回复: 2
打印 上一主题 下一主题
收起左侧

透过处理器看世界

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-21 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       进入2010年代以来,不管富有还是贫穷,生活在地球上的人类,几乎每个人每天都在应用处理器,与处理器对话:手机,电脑,平板,无线网络,家用电器,汽车,甚至有的开关插座,照明器具都具有处理器。可谓处理器无所不在,影响和左右着人类文明的生活习性,并不断改变人类的生活习惯。
       令人惊讶的是,处理器生态竟然和人类生态一样,有着完全相同的对称关系:人类世界并不完美,既存在不好的一面,也具有互助,彩虹般的多彩多姿,阳光笑面的一面;完美得十全十美的人和丑陋无比的人,都会绝子绝孙,只有中庸的人,才能长远源传。同样,在处理器生态中,缺陷严重,并不完美的处理器架构统治着处理器生态圈;漂亮,更具完美的处理器架构身陷囹圄,甚至死亡。下面让我们来看看处理器生态的殊死搏斗与互助吧……
        1946年2月,世界上第一台计算机在美国宾夕法尼亚大学诞生,这是一台需要上千万美刀的计算机,然而,它的爬行速度却只有5000DMIPS。对于我们这些生活在2010年代的人来说,它比乌龟还要爬的慢啊。但它既是电子管老虎,也是电老虎:大约每15分钟报废一个电子管,更是几百千瓦的耗电量。然而,它却整整爬行了9年之多。不过那时还没有处理器,所有的计算机都是通过电子管,后来是晶体管搭建的。
       1971年11月15日,Intel在为计算机厂家提供芯片开发的过程中,在Federico Faggin的主持下,开发了采用4位并行二进制数据的可编程IC芯片,命名为4004. 4004芯片基本具备了微处理器的特点,用它来做计算器,改变了传统计算器的形象。采用4004芯片后,再配用一块程序存储器,数据存储器,移位寄存器,再加上键盘和数码管,就构成了一台完整的微型计算机。但是4004并不能成为处理器,因为它是一个严重缺陷的怪胎---可以编程,但不具备指令集和处理器框架(即架构)。不过它却卖得风生水起---几乎所有的计算器都应用了它。
1974年,Federico Faggin离开英特尔公司,自立门户,搞起了8位的ZiLog微处理器。
        虽然Federico Faggin离开了,不过Intel却从一家德州的Datapoint公司购得更先进的可编程器件,它是一个具有指令集的可编程器件-8008.这就是Intel的X86架构微处理器的指令集的最初原型。从此人类进入了具有标准指令集架构的处理器时代。也同时开创了处理器互相残杀与互相帮助的局面,延续到现在,以及未来。
       早期IC技术并不发达,处理器速度和内存速度没有任何差别。此时,采用复杂指令集(CISC)计算机架构具有相当的优势,一条指令可以实现在存储器内的多种操作。于是乎,连摩托罗拉公司的处理器,也是CISC处理器。但是,随着IC技术的发展,逻辑式IC的速度越来越快,而基于多晶体管的触发器和基于电容的存储器的速度改进发展缓慢。导致了处理器与存储器之间存在越来越严重的gap。
       在美国stanford大学内,有人提出了新的处理器架构:精简指令集(RISC),同时也很多公司开始研制新的处理器。包括DEC,IBM,惠普等。其中要算stanford大学的MIPS处理器架构最为经典,其经典性到现在处理器技术飞速发展的今天依然毫不孙色,实现了在相当小的Die面积下,小的功耗,实现了与其他很多处理器相当的处理能力。其次是IBM联盟的Power/PowerPC处理器架构,实现了最早具有自解压指令功能,实现指令密度压缩到60%,性能损耗只有5%的效果。
       ARM,这一自称RISC指令集的处理器,并不算是一个好架构。ARM原本想使用摩托罗拉的M68K处理器设计其计算机产品,但是被摩托罗拉公司拒绝,最后决定抄M68K处理器。由于版权、技术能力,最后只抄了M68K简单的指令部分,并在后来不停的增加指令,构成了后来的ARM处理器架构。
       然而,在这几十年的处理器竞争下,过上好日子的,却是黑寡妇Intel X86和年少轻狂的ARM这两个相对其他处理器架构来说相当中庸的处理器架构,其它处理器都在生存与死亡之间挣扎。同时不论是最早提出最具RISC特性的MIPS,还是后来的PowerPC、ARM等处理器架构都走向相当复杂的具有互锁特性的Multi-Issue的处理器实现上;那边厢,复杂指令集的X86处理器实现,则走向了通过不可见Cache翻译复杂指令集为精简指令集后与精简指令集具有完全相同行为的精简指令集化实现中来。大家都辅于perspective,Out of order, Superscalar(Multi-issue)等复杂特性应用到内核中。随着IC技术的进展缓慢和处理器性能要求越来越高的矛盾,处理器频率的提升,导致了IC加速产生大量的热量,温升严重;另一个严重问题则是处理器频率与内存频率的巨大差距(gap),数据从处理器寄存器到内存需要经过几百个时钟周期才能达到,提升处理器的速度变得越来越不现实,于是多核就成了处理器性能提升与技术发展不匹配的折中方案了。
       提到ARM,不得不提到Marvel和DEC,DEC通过购买ARM指令,实现了性能相当强悍的StrongARM内核,并被Intel收购后,广泛应用到消费类产品和网络处理器方面。Marvell,同样是通过购买ARM内核指令,应用到其自研的处理器内核中。Marvel之所以给我不错的好感,也许是因为,这家公司的以色列处理器架构工程师David的幽默以及北大才子之一、前Marvel中国区销售总监林斌的有才吸引了我;亦或是在与Marvel处理器架构工程师们讨论过程中,能深入讨论到处理器的架构设计,内核实现对指令效率等相当有趣而优美的处理器设计细节,有一种一起描绘阿罗多姿、优美曲线般的处理器设计蓝图的感觉。同时,Marvel其时也购买了因为Intel抛弃ARM处理器架构,专注X86处理器开发而出售给Marvel的StrongARM处理器内核。
      ARM处理器架构并不优美,而且缺陷多多:ARM处理器指令不具有对齐性,源自于ARM原本是一个只有几十个人的小公司,不像IBM那样具有前瞻性的大公司,其处理器指令,是在不断完善功能和实现客户提出的需求过程中添加,同时因为其开始客户主要是英国学校的绘图计算机需求,导致其关注连续视频流处理的能力,而具有很多Single instruction multi-data类型的指令,这种指令本身就属于复杂指令集的特性。不过正因为这种指令,让其在视频类应用获得了相对好的好评。虽然ARM一直宣称其处理器是低功耗、高性能处理器,但真与MIPS比较,ARM就显得一文不值了。在达到同样的性能下,ARM还不如PowerPC的功耗低,Die面积也比MIPS的大接近50%。ARM多核处理器的多核互连架构,不具有任何优势,4核之间采用Crossbar结构,超过4核的互连存在严重的一致性问题。
      X86是我最早接触的处理器架构,却是我最后了解的处理器架构,第二接触到ARM处理器,同时也较深入了解ARM处理器架构。第三接触到PowerPC处理器,同时开始了解PowerPC处理器架构,但是IBM的Power处理器架构却是了解的较晚。MIPS处理器架构则处于PowerPC和Power之间。
      X86处理器架构与ARM一样,名声并不好。Intel X86,世界上最大的黑寡妇,向上对王者穷追猛打,向下则以黑寡妇的优势,使劲挤压美女们的活动空间。名如其曰,黑寡妇是那么的相当不完美,Die size就是其一个致命的弱点,其次是功耗。这两个致命弱点,都源自于Intel/AMD都采用先把CISC翻译为RISC后,缓存在不可见的大cache内,同时通过大容量cache存储数据和指令,这些cache就已经占了超过50%的die size;采用太多的multi-issue(一般具有9 issue,甚至更多)及out of order实现导致增加了超过20%的Die size。之所以如此复杂,Intel美名其曰:指令兼容性;指令兼容确实给Intel带来了好处,同时也成为Intel X86架构最严重的历史包袱。同时,因为Windows的不兼容性而削弱其价值。就算Intel因为PC的巨大市场,获取了巨大好处,并投资工艺进步,令所有半导体厂商无法企及,其这一包袱依然严重影响Intel进入低功耗产品市场。

      Power处理器,是IBM独自占有的处理器架构和内核,从Power1到最新的Power7,以及今年出来的power7+, 2014年量产的Power8,一直领先所有处理器性能,堪称处理器王者。Power处理器架构,以其完美的指令对齐而显得威武挺拔,频率一直走在前端。即使工艺不及Intel,依然毫不孙色。可惜王者太过关爱自己,不愿意多使用龙体,导致龙钟繁殖缓慢,有慢慢被黑寡妇吞噬之险。从Power7开始,IBM开始了其新的cache技术:eDRAM,采用DRAM的技术,实现只有1clk的延迟,并且速度与处理器的速度保持在1/2或1/3的范围之内。由于IBM长期生产和组建多处理器大型机系统,在多个行业的应用,其迁移式cache一致性特性都优于目前所有的处理器的cache性能。
      PowerPC处理器,是IBM和摩托罗拉公司合作研发的处理器架构和内核,其E300内核具有简约、高性能、two-issue、相对低功耗,而广泛应用到工业、通信、汽车电子等行业。E500内核则以其复杂、高性能、技术先进的out of order等技术而应用到工业、通信等行业。PowerPC处理器架构和这两个内核实现也是处理器架构入门的好案例。
      当然了,保守的IBM,令其王子之身的光芒无法普照世界,失去了王子应有的光环。

      MIPS处理器架构描述:MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。是最早出现的商用RISC处理器架构。可以毫不夸张的说,MIPS是处理器架构的革命先驱。因为MIPS的die size小,功耗低,性能相对高,曾经风靡全球,应用广泛:各种家用电器,打印机,绘图仪,形形色色的游戏机,图形工作站,服务器,大型机,网络产品,电信产品,工控产品,数字电视、数字机顶盒、DVD/蓝光播放器、数码相机和宽带客户端等,无处不现其身。大有称霸处理器世界之势。不过,由于stanford大学的教授们并不懂得太多的经营,在授权方面也推出了用户可修改和增加指令集而削弱了其生态系统的生命力。提到MIPS,不得不提SGI这一做图形工作站和大型服务器的公司,可以说MIPS实现了强大的处理性能,和这家公司的需求密不可分。另外两家,分别是网络处理器芯片厂商Cavium和NetLogic(原RMI),Cavium以增加极少量的网络应用指令和多核互连,实现高性能的多核网络应用;NetLogic(RMI)则以修改内核,实现4线程见长,辅于网络应用指令,实现高性能的网络应用。由于MIPS可以客户化定制指令,使得早期MIPS应用到各行各业,同时,也严重破坏了处理器赖以生存的生态圈:编译器、汇编器、库函数等工具链、OS以及各行各业的千千万万,不计其数的应用程序的兼容性。使得MIPS的应用产品并无法持续降低运营和维护成本,迫使应用方改变方向。

     多线程技术:多线程技术,目前广泛应用的有Intel X86、Power7等、MIPS(RMI)、ARM。ARM的多线程还没有商用,依然在和高性能需求大厂商讨,而且技术相对落后效率不高。在前面三者中,最优秀的要算IBM的Power7,设置为两个线程时,效率高达198%,设置为四线程时,效率大约250%,这源自于IBM的多线程技术和其高达12个isse的执行单元。Intel X86只能设置为双线程,效率大约为190%。NetLogic(RMI)的多线程介于IBM和Intel之间,也是可以配置为双线程或四线程。在实现的基本原理上,三者之间已经没有差别,只有具体的实现上有些细微的差别。

     多核多处理器互连技术:IBM在多处理器的互连技术方面有着成熟的应用甚至已经应用到内存扩展方面,多处理器的互连技术相对更多,Crossbar,Ring,2D-Mesh,6-cube,或他们的组合;多核处理器的互连技术,则更少:主要使用线技术或面技术,由于当前IC工艺限制,无法使用3D技术。IBM和Intel都使用Crossbar的多核互连结构;Cavium使用RING+Crossbar复合结构;RMI使用RING结构;Telira的64核、100核之类的处理器则使用了2D-Mesh结构。当然核数超过8核,不适合应用Crossbar,只能采用8核内采用Crossbar,然后采用第二级互连。

     cache技术:Intel X86 Cache技术是大家都熟悉的共享型技术,cache单元采用SRAM结构,加入了低功耗控制,IBM则采用了自有专利的eDRAM 的cache存储单元,Cache一致性采用数据迁移式方式,在多核方面更具有优势。Telira的64核的cache与采用多核互连架构一致,2D-Mesh方式,一致性采用复制方式,比较浪费cache资源。不过高达64核,如果不像IBM的大型机系统那样,进行分区分割运行,处理器的性能无法发挥出来。

    专业业务模型对这些处理器的性能反应,具有可对比性的是Intel X86和IBM的Power7,MIPS、PowerPC之间因为存在多种加速引擎,他们之间可以进行性能对比。以WCDMA的RNC业务模型来分析,Intel X86 8核 3.5GHz,16线程。IBM Power7 3.5GHz 8核 分16、32线程;Freescale的E500mc,8核,Cavium MIPS64 12核;RMI 8核 32线程后面三个辅以加速引擎。Power7大约处理20000个数据面用户,Intel X86大约处理17000个数据面用户;其它三个需要根据程序优化,良好配合加速引擎,E500mc性能不好(加速引擎未配合好),Cavium和RMI的不相上下。以上处理器都是64位。

       未来处理器技术的发展:因为程序的顺序性而导致多核处理器性能无法发挥,只要处理器频率和存储器频率能提升,并且不导致大量发热而温升严重,个人应用将是以单核处理器依然是首选,并行应用和云、集群则以多核分区运行为首选。以Stanford大学、Mit、IBM等大学和公司的研究中心已经取得了石墨碳工艺技术的进展,实验室环境下,据说处理器频率超过1000GHz,温升依然小于当前大功率的处理器,处理器内通过光通信技术实现处理器与内存和外设的互连。存储器厂商则努力研究相敏和磁敏存储,从相敏和磁敏特性分析,个人认为这两种存储器的频率会有较大的提升,但依然无法达到石墨碳工艺的1000GHz,倒是以量子技术为理论基础的中子技术革新存储器,令未来的存储器达到如此之高的速度,并不再受伽马射线的影响而产生软失效,大大缩小了处理器与存储器之间的速率gap。
       在参与与某公司处理器合作的过程中,终于有机会深入窥视某公司的Power架构和内核实现,并对服务器应用与其它专业应用的巨大差别有了清晰的认知。同时也学会了如何处理和推动两艘航空母舰之间的合作进展的方法,从加入合作开始,前面两个多月,尽是和某公司各个地方的商务、研发、合作部门无休止的电话会议和邮件沟通,每每得到某公司的答复是,我没有收到邮件!或是之前不是我在开会。北京分部如是、美国分部、澳洲分部如是;上海分部作为商务,一样无法协调某公司内部的沟通,台湾分部则是主持,本应负有协调某公司内部沟通和任务落实的责任,同样没有起到作用。而每次加入到电话会议的,则多达中国区北京、香港、台湾、上海,美国东部和西部、澳大利亚。每每开完会,会上列出每个地方的任务,并以会议纪要发出去,依然没有效果。由于长时间未取得预期的进展,承受了领导传递过来的强大压力,但依然不知如何推进。一天,在与某公司台湾分部的项目负责人沟通后,依然未果。无奈之下,奋笔直书,写下了短短100字左右的邮件(邮件内容就不说了),找到某公司所有的名片,选出几个VP头衔的人物,将邮件直接发送过去,抄送给项目相关的所有人和本公司多个领导。哇塞!!!某公司的反应真快呀!连夜收到了多个VP的回复邮件,电话会议通知,第二天一大早,就是电话会议,效率真高,就定下来所有的具体责任人和时间表。某公司的技术工程师从美国多个地方、澳大利亚等地方在4天内都赶到了。那进展,简直就是一天一小变,三天一大变呀!  
        处理器研发时,部门不愿意立项做FPGA的处理器验证单板,当时倒是没有感觉到挑战。 也许我在公司呆了那么多年,依然不了解公司的流程和规范。 当发现因为没有立项,是不能获得任何资源支撑的时候,能做的事情就是忽悠,不停的忽悠。于是就开始写ppt,向需要的资源部门领导忽悠,一次不行,两次,两次不行,三次!哈哈,幸运的是,感觉还是很顺利的,最难通过的部门,也就修改了两次ppt,忽悠三次就Pass了。当然,这还得动用高铁ATP项目时与多个部门建立起来的人脉关系 。对外,依然是困难重重,最难的就是FPGA芯片的交期能否保证这一难度不亚于与某公司的合作的推动,毕竟全球就那么两家做高端FPGA的厂家,都很牛逼啊。因为交期的问题,也是动用了两艘大船的VP,并且一不小心,把对方的Sale给革职了,对这Sale,真是不好意思了啊!好了,描述完协调的事情之后,该回到技术上来啦,我本是不谦虚的人,硬件对我来说,实在是太简单的事情了,即使是4个规模膨大的FPGA,也没有什么难的。更何况还有硬件工程师,软件工程师完成,其他部门如PCB Layout,工艺,结构,EMC,线缆等的支持配合。不过爱好技术的我,还是把DDR2和DDR3的验证拿来亲力亲为了一把。结果,验证的时候,最严重的就是DDR部分啊,悲催的FPGA验证时,DDR控制器只能跑到50MHz+(因为需要验证DDR PHY,不能使用FPGA的DDR PHY),DDR芯片的厂家只保证到133MHz或以上的频率下正常运行。唯一能做的,就是计算DDR的数据刷新时间、其它各种时序及其延迟周期,经过一个多月的奋战,DDR控制器终于在50MHz左右的情况下稳定运行了。在参与这个项目的过程中,让我明白了忽悠是那么的重要,对内,对外忽悠的重要。项目完成之后,特意花了一周的时间,整理了一个16页的ppt,描述了如何通过对内各个部门,对外其它公司的协调,如何带领团队正确的完成任务,减少或避免错误出现,取得了何种成绩,美名其曰:项目总结,优秀实践!发出去,哈哈!
       多核处理器技术蓝皮书:以一个普通工程师的角色,请教公司内外的资深工程师、教授、处理器名人,这是一个令人难忘的经历。有人怀着一颗热情的心,耐心的解说、指导,并和我交流讨论,同时尽力提供资料;有人乐意帮助,并提供资料;有人愿意帮助,但不热情;有人冷冷的帮助了我;有人耍太极,当面说提供资料,后续查无回音,多次拜访依然如此;有人以工作忙,或没有了解为由,直接拒绝提供帮助。在这一过程中,需要和自己最亲近的朋友、领导请教如何打动他人,乐意提供帮助的方法,同时在遇到冷遇与拒绝时保持良好的交流心态和语气,这是一个忍受的过程。资料和信息获取到了之后,就是学习,整理,最终总结出几个未来发展方向的观点,这只要运用纸上的忽悠能力就可以解决的事情了。从IC工艺角度看,处理器未来会持续发展到现有半导体理论极限的16nm,至于Intel等提出的12nm,10nm,8nm,6nm等硅半导体工艺,暂时无法参透其半导体如何在如此之薄的晶圆上生长,难道杂质只生长一半或不到一半到硅原子内?另外,如此之薄,芯片电压也变得难于实现的0.4V或以下。同时,IBM,Stanford,MIT等研究的石墨碳工艺,则是未来半导体工艺热门的方向。处理器内部互连,则通过光通信实现处理器与内存、外设的高带宽的通信,并最终实现芯片内的WDM通信。更为突出的是,IC工艺从平面向3D方向进军,这同样会深刻影响IC技术的变革。从处理器外部硬件上看,以后的硬件将更加归一化,生命周期更短;虚拟化技术屏蔽了底层硬件的差异,实现了OS及其上层的统一性;多核处理器与内存则通过虚拟化进行分区划分运行,提升多核处理器运行效率。

国内外处理器技术差距:从宏观的大环境看,处理器技术完全掌握在美国国内,无论是处理器芯片,还是处理器赖以生存的处理器生态系统:半导体,处理器体系结构和内核实现,工具链,OS,各种应用程序。其它国家和中国都显得那么苍白无力。从与人的对话来看,与stanford大学教授,Intel, IBM,Marvel,Freescale,Cavium,NetLogic,处理器性能评估独立人 markus.levy等的交流,都能深入的介绍处理器的体系结构差异,内核的实现细节,底层程序,应用程序如何影响处理器性能发挥,如何建立业务模型等。与国内中科院龙芯处理器教授的交流,就显得相当空洞无力,教授们大谈特谈龙芯如何成功,基于什么样的原因,诸如处理器生态系统,处理器赖以生存的工具链,OS,和应用程序来选择处理器架构和内核等,取得了国家某某奖之类空乏无力的虚吹。

企业文化:在整个处理器职业生涯中,令我印象深刻的是stanford,intel,Freescale,IBM的企业文化对雇员的影响;stanford具有相当的学术自由,里面有相当多的处理器学术派系,他们彼此表达出不同的观点,却共融而一起研究处理器技术;Freescale和IBM的雇员们,对工作怀有相当的热枕,对公司有着相当的忠诚和尊重;他们时刻不忘向客户推介他们的产品和技术,并兢兢业业的完成工作职责和任务,同时,他们坚实的技术基础和技术能力,快速解决技术问题的能力,都让我们肃然起敬。Intel的工程师们,则是完全相反的态度,公司赚钱与我一点关系都没有,工作没有热情,没有激情。带着不情愿的表情完成工作职责和任务。当然,Intel的工程师们的工作能力也是非常棒的。

透过处理器世界,我们同样看到世界的不完美,也只有不完美,才会让人类发奋努力去追求完美。

下一篇,将准备撰写 海陆空三维立体交通系统的系统和未来发展方向,或者是高铁ATP系统,也可能是通信网络的历史,现状,未来的发展,…………


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-3-7 03:19 | 只看该作者
精品好文啊,内容精辟,观点独到。51黑有你更精彩.
回复

使用道具 举报

板凳
ID:168401 发表于 2017-3-7 21:28 | 只看该作者
精品好文啊,内容精辟,观点独到。51黑有你更精彩.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表