MCPLive > 杂志文章 > 那些年的那些事CISC和RISC发展中的纠缠

那些年的那些事CISC和RISC发展中的纠缠

2013-01-16李实《微型计算机》2013年1月上

ARM、ARM、ARM,没错ARM仿佛一夜之间就火了,平板、手机等领域随处可见它的影子,甚至已经有人预言未来有相当一部分原属于传统x86势力范围的台式机份额也将被ARM占据。在这种情况下,大家不可避免地将ARM和传统的x86处理器进行比较,有力挺ARM的,也有支持x86的。事实上,ARM并非突然冒起,它几乎和x86同时崛起于上个世纪末期。那么,目前ARMCISC和RISC是现代微处理器的两大基础指令集结构。从技术和历史角度来看,CISC和RISC的诞生和发展并非是你死我活的关系,RISC被提出后,才将传统的指令集系统称为CISC。而结构体系上的不同又令两者在发展道路上分道扬镳,渐行渐远。在这漫长的发展过程中,RISC也曾经努力过,力求进入CISC的领域;CISC也奋斗过,希望在RISC的世界中分得一杯羹。

ARM是基于RISC的产品,而PC的代言人是x86,基于CISC。ARM、x86之争,其实就是RISC和CISC之争。RISC和CISC在长达30年的纠葛之后,再一次正面碰撞到了一起。如果说之前的RISC和CISC的碰撞都只是部分领域的小打小闹,那么现在ARM和x86有可能带来的是一场技术革命,一场全局化的战争。今天,我们将追本溯源,来看看RISC和CISC在历史上的交锋,和那些鲜为人知的故事。

今天,业内普遍认为PC性能的提升,特别是CPU性能的提升,动力来自于晶体管制造技术的不断进步。只有晶体管数量更多、运行频率更高,才能在单位时间内完成更多的工作任务,这也是上个世纪70年代以前的PC发展主流思想。当时的计算机速度很慢,特别是存储速度非常慢,广泛使用的慢速磁带存储设备以及大容量内存的缺乏,让计算机对每一字节空间的应用都很珍惜。在这样的情况下,人们倾向于在一条指令中完成更多的工作,比如“从内存和寄存器读取数据相加后,写入内存”。这实际上是四条指令,首先是从内存读取数据,其次是从寄存器读取数据,第三是相加,后才是写入内存。一条指令可以完成四项工作,这是当时计算机的主流设计方案。

在上世纪70年代左右,IBM以及其他企业的从业人员发现,目前的PC发展方向存在一定的问题。如果按照现在指令集发展的方向继续发展的话,那么现有的指令集系统会越来越复杂。而同时期编译器的流行,让这种情况发生了变化:一方面指令集越来越复杂,一方面编译器却很少使用这么多复杂的指令集。而且如此多的复杂指令,CPU难以对每一个指令都做出优化,甚至部分复杂指令本身耗费的时间反而更多。对这件事情的总结,就是后来著名的“8020”定律,也就是在所有的指令集中,只有20%常用,80%基本上罕有问津。

时间进入了1980年代, Reduced Instruction Set Computing,也就是RISC精简指令集开始出现。这种指令集的优势在于将计算机中常用的20%的指令集集中优化,而剩下的不常用的80%则采用拆分为常用指令集等方式运行。在RISC提出之后,人们才赋予了传统指令集一个正式的名称:Complex Instruction Set Computing,也就是CISC复杂指令集。一时间,掀起了关于RISC和CISC究竟谁更好的争论。

英特尔的选择

在指令集争论还没有结束的时候,英特尔在IBM不屑一顾地眼光下接下了为IBM生产民用PC的中央处理器的业务。实际上IBM并非无法自己生产CPU,而是IBM觉得个人PC远没有大型主机的利润高,自家的Power架构用在兼容机上实在是“杀鸡焉用牛刀”。英特尔于是在之前研发的C4004处理器的基础上继续开发——C4004处理器也并非英特尔自愿开发的产品,而是来自于日本一家名为Busicom的厂商的订货需求。也就是这个订货需求,为日后的x86的发展打下了基础。

兼容PC的发展,带来了全球的信息化革命大潮。
兼容PC的发展,带来了全球的信息化革命大潮。

很快英特尔生产了8086处理器,并依靠PC的快速发展一炮走红。这个时间段恰好是RISC开始崭露头角,CISC被众人鄙视的年代。在RISC提出后,业内对RISC的未来发展进行了几乎一边倒的赞扬。从教学开始,美国大学计算机原理和系统结构的教材和教学模式全部来自于RISC的发明人Hennessy的理论,介绍的内容则是Hennessy研发的以RISC为基础的MIPS架构。而当时的研发论文IEEE和ACM发表的内容也基本上都对RISC提出了各种褒扬,x86以及CISC被认为是没有什么前途的东西。

英特尔在当时的确是一个小公司,旗下只有几款产品,CPU业务也才刚起步。面对整个业界一边倒向RISC的现状,英特尔要么一条道走到黑继续兼容自己的8086下定决心做x86,要么放弃看起来没有什么希望的CISC投入RISC的怀抱。实际上当时PC刚刚起步,市场空间和前景极为庞大,如果放弃PC市场,可能对英特尔未来的发展带来巨大的不确定性。况且当时的PC用户已经有不少了,加上市场惯性,英特尔至少可以坚持开发两三代产品满足这部分PC用户的需求。在这样的情况下,英特尔毅然决定继续开发x86,于是80286和80386等产品依次出炉。后来的事情大家都知道了,英特尔依靠PC市场赚得盆满钵盈,坚定了其在x86市场继续发力的决心。

高性能的RISC没有进入通用PC市场

PC市场拱手让人、甚至连专利都没有注册,堪称IBM百年来大的失误。看着自己当年随意选择的英特尔渐渐成长为可与自己匹敌的业界巨头,就连“备胎”AMD(AMD当时是IBM根据反垄断条例而选择的x86处理器第二供货商)都逐渐发展壮大,IBM后悔不迭。不过没关系,RISC还在,IBM还可以在高性能市场上呼风唤雨。

事实上,在上世纪80年代中末期,大量基于RISC的新指令集和产品的问世,让人们看到了精简指令集的威力。SGI的工作站基于MIPS,速度超群;IBM的Power系列就不用说了,堪称巨型计算机的首选产品;还有DEC Alpha架构的处理器,都是RISC的代表之作。RISC在高性能计算机上展现出的强大魅力,让用户和业界为之神往。

在这种情况下,英特尔也坐不住了。俗话说,吃着碗里的,看着锅里的。英特尔碗里面吃着x86这块大肥肉,锅里的RISC虽然是小肥牛,但也的确不错。于是,英特尔秘密开发了基于RISC的处理器80860,希望打入通用计算机市场。但问题是,谁用呢?PC已经是x86架构了,RISC连兼容的操作系统和软件都没有,从头去建立生态系统和软件圈子,当时的英特尔很难成功。但英特尔决定多做一代试试看,于是不久之后又推出了新的80960处理器,依旧是RISC架构,向下兼容80860,继续延续完全卖不动的“宿命”。于是英特尔想想干脆算了,直接做x86,一条道走到黑!

被拒绝的Acorn

乱世出英雄,在上世纪70年代末80年代初,RISC刚被提出、CISC被众人鄙视、PC刚刚起步的乱世年代,一家小公司的出现,改变了RISC和CISC在业界的态势。

就是在这间仓库中,ARM公司的几大股东在一起开会,对全球移动计算市场产生巨大震撼的ARM架构就此诞生。
就是在这间仓库中,ARM公司的几大股东在一起开会,对全球移动计算市场产生巨大震撼的ARM架构就此诞生。

这家公司始创于1978年12月5日,创始人是物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry。公司的名字也很有意思,叫做Cambridge Processing Unit,意为剑桥处理器公司,简写为CPU。

1979年,CPU公司改名了,叫做Acorn,主营业务从为市场提供电子设备,转向提供比较廉价的计算机设备。有多廉价呢?定价在500英镑以内。但是公司很快发现,摩托罗拉的CPU太慢价格又贵(摩托罗拉很快在CPU市场上被英特尔打得找不到北,惨淡收场)。于是Acorn公司去找英特尔索要80286的设计资料,打算自行搭建PC兼容机,但被英特尔无情拒绝了。

不知道英特尔会不会为这个决定而痛苦终身?被拒绝后的Acorn虽然火冒三丈,但志气滔天:不就是CPU吗!买不到还不能自己做吗?1985年,一款使用RISC指令集,名字叫做Acorn RISC Machion的CPU诞生了,它的简称就是ARM。

ARM的特点是性能功耗比非常优秀,比如苹果的首款掌上触屏个人电子设备Newton Message Pad就使用了ARM处理器,随后还生产了多个型号。可惜由于软件和硬件技术局限等问题,它没有获得太大成功。但这为ARM的发展奠定了基础。1990年,Acorn公司干脆改名为ARM。苹果出资150万英镑入股,Acorn公司以价值150万英镑的知识产权和12个工程师入股。还有一个大股东是VLSI,是一家芯片制造商。接下来由于市场不景气等原因,ARM决定开放授权,成为一家设计公司,将自己的设计和知识产权授权给其他厂商生产芯片。这成为ARM辉煌的起点。

英特尔的逆袭和ARM的扩大

英特尔终发达起来了,占据了全球PC市场的绝大部分份额,IBM再也无法撼动英特尔的地位。但CISC的性能始终是硬伤,英特尔肯定看到了这一点,如果x86的性能一直无法赶上在顶端的RISC处理器,英特尔就没有办法把触手伸到肥沃的服务器和超级计算机市场。从原理来说,x86架构基于CISC,本身问题不少,效率和发展方向都成问题。不过英特尔并不担心,在潜心研究了RISC后,英特尔开始大胆在基于CISC的x86中引入RISC的设计思想,增加了额外的一些“翻译层”。CPU外部依旧是x86,但是内部运行更为类似精简的RISC,于是CPU效能得到极大的提升。

Atom本来是英特尔进入超便携移动计算市场的利器,但是ARM成功阻击了它。
Atom本来是英特尔进入超便携移动计算市场的利器,但是ARM成功阻击了它。

在Pentium品牌推出后,英特尔开始逐渐在x86中引入RISC的设计思想。借助PC市场上攫取的巨额利润,英特尔开始疯狂提升x86处理器的性能。于是,在服务器和超级计算机市场上,英特尔的Xeon品牌开始逐渐发力,性能和当时的RISC处理器相比已不落下风甚至略有胜出。终英特尔完成了逆袭的过程,x86在服务器市场上大放光彩,甚至开始占据绝大部分市场份额,成就了CISC战胜RISC的神话。

不过在移动计算市场上,英特尔却无法复制这样的神话。高性能市场对功耗敏感度不高,性能是重要的指标,英特尔可以凭借强大的研发能力来威胁对手,获取胜利。但移动计算市场对功耗极为敏感, 英特尔几次试图进入都无法获得成功。ARM在这个领域遍地开花,从手机到平板电脑,ARM凭借自己超高的性能功耗比屡获成功。

目前,x86处理器占据了超过90%的个人电脑市场,以ARM为代表的RISC产品则同样占据了超过90%的移动计算市场。两强都想、都有希望进入对方的领地。究竟谁能胜利,我们拭目以待。

分享到:

用户评论

共有评论(1)

用户名:

密码: