,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点很明显:控制简单,但缺点也很突出:计算机各部分的利用率不高,执行速度慢。
而由ib提出的精简指令集构架则不同,比如说应用了精简指令集构架的盘古芯片,它的基本特点是:包含大量的寄存器、指令数和字符,以及可视的管道延时时隙。这些特性使精简指令集架构能够提供最高的每平方毫米性能和当今soc设计中最低的能耗。
可是在微型计算机发展之初,除了成熟的复杂指令集构架外,设计芯片构架时没有更好的选择。
原因很简单,更先进的精简指令集架构是在1975年才在ib出现,且只针对超级计算机领域
而且到现在还没有人意识到,精简指令集构架出现,对微型计算机的意义,很多国外微型计算机厂商只是将它作为计算产品的一种补充而已。
甚至为图省事,今年ib干脆就选择了英特尔作为微处理器芯片的合作伙伴,而英特尔所创立的x86指令系统便属于复杂指令集构架。
在这里,我有必要对指令架构、复杂指令、精简指令之类的概念作明晰的解释。
众所周知,微处理器的基本逻辑是运行指令的电路,计算机的任何一个程序都是由或多或少的基本指令组成,而指令本身又是由若干个微操作构成,例如对两个二进制数进行加减运算,或者将结果送进寄存器中等等。了解汇编语言或机器语言的在座专家对此应该比较清楚。
这些基本指令被称为微处理器的微代码(icrode),指令数量越多、完成微操作所需的逻辑电路就越多,芯片的结构就越复杂。
每个处理器开发商都可以自己定义出一套指令系统,但如果指令系统不相同,构成软件的指令也不相同,这样就无法实现软件兼容。
在以前的专用计算机时代,这种情况十分普遍,各个计算机厂商都独立发展指令系统、微处理器、计算整机和软件,不同厂商的软硬件产品无法兼容使用,其原因就在于微处理器的指令系统采用不同的定义。
然而,尽管这些指令系统种类甚多,它们却都归属于复杂指令集架构。
它的特点是指令数量庞大臃肿,每个指令不管执行频度高低都处于同一个优先级,程序员的编程工作相对容易。但它的致命弊端是执行效率低下,处理器的晶体管被大量低效的指令所占据,资源利用率颇为低下。
早在60年代,计算机科学家们发现,计算机中80的任务只是动用了大约20的指令,而剩下20的任务才有机会使用到其他80的指令。如果对指令系统作相应的优化,就可以从根本上快速提高处理器的执行效率。
依据8020法则划分“冷代码”与“热代码”的概念,冷代码占据复杂指令集指令总量的80,热代码只占据20。与之相应,冷代码执行单元占据绝大多数硬件资源,而高度活跃的热代码执行单元所占据的硬件资源反而要少得多。
如果能经过特意的优化,将热代码的执行单元大大加强,冷代码的单元相应缩减,在晶体管规模不变的前提下能够实现性能的跨越式提升。
精简指令构架就是这样一套优化过的指令架构,它是根据著名的8020法则所订立。
所以当ib在75年成功发展出精简指令构架系统之后,复杂指令构架系统迅速被超级计算机所抛弃。
本来按照这个趋势发展下去,精简指令构架系统将会由超级计算机慢慢向下延伸,从大型计算机一直延伸到微型计算机(c)领域。
可就在今年发生一件非常机缘巧合的事,ib为图一时方便,选择了英特尔作为微处理器芯片的合作伙伴,也将标准制定权拱手让给了英特尔,正是这件事让复杂指令集构架又有了新的希望,甚至可能在c上获得新生。
当标准一但确立,为了保持软件兼容,c就必须一直延续x86架构无法脱离。
也许在座的有些不以为然,认为这不过是计算机的一个细分领域,和ib的主业超级计算机、大型计算机相比,根本就不值一提。
可我要告诉你们的是,你们错了。
这是一片还处在开拓中的市场,虽然目前它的市场份额很小,可它的市场未来将会远超超级计算机和大型计算机之和。
因为它们一个面对的对象是政府、研究机构和企业,一个面对的对象却是个人。这个世界,前者数量是有限的,哪怕单个价值再高也是有限的。而后者却是以全球数十亿人为基础,哪怕现在c对绝大数人来说还是奢侈品,可随着生产力的进步,它终究会降到普通人都能买得起的,如同牙膏牙刷一般的日常消费品。
可以说如今的一代霸主ib,为图一时方便,即将自己葬送了自己的霸业。
这是黎明前最黑暗的一刻,旧的秩序即将终结,新的秩序还未到来,群雄争霸的时代已经降临。
”
第4章 群雄逐鹿[2/2页]