RISC和CISC的区别

在PC发展之初,除了成熟的CISC指令架构外,IBM没有更好的选择,原因很简单,更先进的RISC架构在1975年才出现,且只针对超级计算机领 域,当时没有人意识到PC会有如此之大的发展,只是将它作为计算产品的一种补充而已。为图省事,IBM干脆就选择了Intel作为微处理器芯片的合作伙 伴,而Intel所创立的X86指令系统便属于CISC架构。 
   
我们有必要对指令架构、CISC、RISC之类的概念作明晰的解释。众所周知,微处理器的基本逻辑是运行指令的电路,计算机的任何一个程序都是由或多或少 的基本指令组成,而指令本身又是由若干个微操作构成,例如对两个二进制数进行加减运算,或者将结果送进寄存器中等等。了解汇编语言或机器语言的读者对此应 该比较清楚。这些基本指令被称为微处理器的微代码(Microcode),指令数量越多、完成微操作所需的逻辑电路就越多,芯片的结构就越复杂。每个处理 器开发商都可以自己定义出一套指令系统,但如果指令系统不相同,构成软件的指令也不相同,这样就无法实现软件兼容。在专用计算机时代,这种情况十分普遍, 各个计算机厂商都独立发展指令系统、微处理器、计算整机和软件,不同厂商的软硬件产品无法兼容使用,其原因就在于微处理器的指令系统采用不同的定义。然 而,尽管当时指令系统种类甚多,它们却都归属于CISC架构—CISC的英文全称是Complex Instruction Set Computer,意为“复杂指令系统计算机”。它的特点是指令数量庞大臃肿,每个指令不管执行频度高低都处于同一个优先级,程序员的编程工作相对容易。 但它的致命弊端是执行效率低下,处理器的晶体管被大量低效的指令所占据,资源利用率颇为低下。当IBM成功发展出RISC系统之后,CISC迅速被超级计 算机所抛弃。但机缘巧合,它却在PC上获得新生,为了保持软件兼容,PC必须一直延续X86架构无法脱离(IBM将标准制定权让给Intel,最终葬送了 自己在PC领域的前途)。后来加入微处理器战团的Cyrix、Rise、AMD、IDT等厂商无一不是如此,PC朝着X86道路渐行渐远,从8位、16 位、32位一直扩展到现在的64位,虽然它依然有旺盛的生命力,但背后的一系列缺陷也逐渐显现:芯片设计臃肿不堪,能源利用率低下,性能与晶体管规模相当 的RISC产品根本不在一个水平线上。 
   
   
   
  图1 依据80/20法则划分的“冷代码”与“热代码”概念——前者占据X86指令总量的80%,后者只占据20%。与之相应,冷代码执行单元占据绝大多数硬件 资源,而高度活跃的热代码执行单元所占据的硬件资源反而要少得多。PARROT优化之后,热代码执行单元被大大加强,冷代码单元则被相应缩减,在晶体管规 模不变的前提下实现性能的跨越式提升。 
   
   
   相比之下, RISC(全称Reduced Instruction Set Computer,精简指令系统计算机)则是一套优化过的指令架构,它是根据著名的80/20法则所订立。早在上个世纪60年代,计算机科学家们发现,计 算机中80%的任务只是动用了大约20%的指令,而剩下20%的任务才有机会使用到其他80%的指令。如果对指令系统作相应的优化,就可以从根本上快速提 高处理器的执行效率。IBM公司在1975年成功开发出第一款RISC处理器,从此RISC架构开始走进超级计算机中。由于指令高度简约,RISC处理器 的晶体管规模普遍都很小而性能强大,深受超级计算机厂商所青睐。很快,许多厂商都拿出自己的RISC指令系统,除了IBM的Power和PowerPC 外,还有DEC的Alpha、SUN的SPARC、HP的PA-RISC、MIPS技术公司的MIPS、ARM公司的ARM等等。它的应用范围也远比 X86来得广泛,大到各种超级计算机、工作站、高阶服务器,小到各类嵌入式设备、家用游戏机、消费电子产品、工业控制计算机,都可以看到RISC的身影。 只不过这些领域同普通消费者较为脱离,故而少为人知。 
   
无论在执行效率、芯片功耗还是制造成本上,选择RISC都比沿用X86更加英明。我们不妨作一番实际的比较:目前Intel公司最快的处理器是 Prescott核心的Pentium 4 XE系列,它的晶体管总数在1亿7800万个以上,最高功耗达到130W,但它的运算能力不超过20GigaFlops(FLoating point Operations per Second,每秒浮点运算)。而目前最快的RISC处理器是IBM刚刚推出的Cell,它的晶体管总数为2.34亿个,在采用90纳米工艺制造时芯片面 积为221平方毫米,但它的运算力高达2560GigaFlops,整整是Pentium 4 XE的128倍。Intel将在年中推出双核心的Smithfield,性能最多能有80%的提升,而芯片规模将达到与Cell相同的水平。由此可见,二 者完全不是一个层面上的对手,X86指令系统的低效性在这里一览无遗。与此对应,RISC产品在成本上优势明显—半导体芯片的制造成本同芯片面积三次方成 正比。在工艺相同的情况下,芯片面积大小取决于所集成的晶体管规模。RISC处理器核心精简、效率更高,只要很少的晶体管就能达到与X86产品媲美的效 能,制造成本可大大低于现有的X86处理器。而小晶体管规模亦有助于保持较低的能耗值,RISC处理器在这方面表现相当杰出,现在的嵌入式设备几乎都采用 RISC产品,原因就在于这类产品的功耗值超低。 
   
   过去,PC钟情于X86的原因在于软件兼容,尤其是微软只为X86 PC开发Windows系统,这也被认为是PC采用RISC架构的最大障碍。这个障碍最终也将被解除,Linux操作系统逐渐发展成熟,Mac OS X的综合水准更远在Windows之上,办公、图形、网络、多媒体相关的各类跨平台应用软件极大丰富。如果你是一个游戏玩家,RISC平台一定会令你大呼 过瘾,将于2005-2006年发布的索尼PS3、任天堂Revolution和微软XBOX2等新一代游戏机产品将全面转入RISC体系(有趣的是,三 种游戏机都采用IBM所设计的处理器,指令系统相同),短时间内许多品质一流的配套游戏软件将会大量涌现。只要指令系统相同,这些游戏完全可以实现平滑移 植。 
   
单从技术角度考虑,以RISC取代X86作为PC的主力架构的确是非常英明的选择,更高的效率、更快的速度、更低的成本以及同样丰富的软件支持, RISC PC将展现出勃勃生机。然而,这一切似乎不容易实现,无论Intel、AMD还是微软,它们的辉煌成就都构建在X86的基础之上,转向RISC对它们来说 无异于釜底抽薪。目前执著发展RISC PC的只有苹果公司,它们的全系列PC都基于IBM的PowerPC指令架构。不幸的是,尽管苹果公司大名鼎鼎,但它对整个市场的影响力极其有限,PC转 向RISC最大的障碍不在于技术或兼容性,而是缺乏一个实质性的领导者,但有迹象表明,蓝色巨人对此有着强烈的意愿,RISC能否把握住PC的下一个三十年尽皆取决于它。 
   
  即便不采用RISC架构,我们仍然可以借助它的思想对X86处理器进行结构性改良。事实上,X86处理器一直都 从RISC产品中获取灵感,包括 EV6总线、整合内存控制器、超线程技术、双核心等等新技术新概念都是首先在RISC产品中得到成功应用,之后才被Intel/AMD引入到X86处理器 当中。实践证明,这种做法往往对X86处理器的性能提升有着决定性的影响,而从RISC汲取营养也就成为X86业界的习惯做法。 
   
不过,上述这些技术改良都只停留在应用层面,指令体系的根本差异成为X86与RISC之间的壁垒,若能借助RISC理念对X86处理器进行结构性改良,也 许可获取更大的效益。Intel在IDF技术峰会上提出的“PARROT”概念便充分体现了这种思想。PARROT的全称是“Power AwaReness thRough selective dynamically Optimized Traces”,从其名称不难得知,PARROT是一项借助“动态优化执行路径”来提高处理器执行效率的技术。它的理论基础也是著名的80/20法则,但 与RISC不同,X86处理器无法从指令系统层面上实现这一点。,Intel另辟蹊径,提出了一个全新的发展思路,将20%的常用指令定义为“热代码 (Hot Code)”,剩余的80%指令使用频率没那么高,被定义为“冷代码(Cold Code)”。对应的CPU也在逻辑上被划分为两个部分:一是热核(Hot Spot),只针对调用到热代码的程序;另一部分则是冷核(Cold Spot),负责执行20%的次常用任务。由于热核部分要执行80%的任务,设计者便可以将它设计得较为强大,占据更多的晶体管资源。而冷核部分任务相对 简单,没有必要在它身上花费同样的功夫。理论上说,设计者可以将80%的晶体管资源用在热核上面,使之高效率执行任务,剩余的20%晶体管资源则用于仅完 成20%任务的冷核。相比之下,现在的X86处理器完全没经过结构优化,所有指令地位对等,80%的次常用指令占据了大量的晶体管资源,又没有创造出相应 的价值,芯片内只有20%的区域处于活跃状态,这显然不够科学。 
   
“PARROT”创造了一种崭新的双核概念,过去我们谈论的双核心指的是在一枚芯片内集成两个对等的CPU内核,通过并行运算获得性能增益,我们可以将它 看作是横向维度的对等设计。而“PARROT”则是一种纵向维度的双核理念,热核与冷核地位并不对等,且无法独立运作,只能说是一个CPU内核中的两部分 分立逻辑。它所起到的是提高CPU的硬件资源利用率,以高执行效率达到高效能的目的,这种做法显然比目前业界鼓吹的“双核心”更具革命意义。我们不妨深入 分析“PARROT”的微架构(图2所示),处理器执行管道被分为“冷管道(Cold Pipe)”和“热管道(Hot Pipe)”两部分,二者都拥有彼此独立的取指和执行单元,当处理器读取程序指令时,会预先对其作分析,以判定它是归属于“热代码”还是“冷代码”。若为 活跃的“热代码”,则将其送入“热管道”逻辑进行高效处理;如果属于“冷代码”,那么将其送入“冷管道”逻辑处理,所得结果最终再作汇总输出。 
   
   
   
  图2 PARROT微架构,CPU被划分为相对独立的两个执行管道。 
   
   
  图3所示为“PARROT”处理器的详细执行路径情况,我们可以看到,“冷管道”部分相对简单,只有“指令缓存(Instruction Cache)”、“冷执行单元(Cold Execution)”和“分支预测单元(Branch Prediction)”,占据少量的晶体管即可。而“热管道”部分则显得相当复杂,它由“追踪缓存(Trace Cache)”、“追踪预测单元(Trace Prediction)”、“热执行单元(Hot Execution)”、“追踪优化(Trace Optimizer)”以及“追踪选择过滤&构建(Trace Select Filter&Build)”等几大逻辑单元共同构成,每个逻辑都被设计得尽可能强大。计算结果生成之后,再由“同步合成单元 (Synchronized Commit)”组合汇总,最后才通过前端总线输出给计算机内存,由此完成整个运算过程。 
   
   
   
  图3 基于PARROT思想的X86处理器逻辑结构—冷代码与热代码在执行阶段被彼此分离。 
   
   
PARROT的新奇思路令人耳目一新,通过对执行单元的结构性优化,X86处理器可以说是获得了重生。设计者可以对“热核”部分进行大大强化,使之拥有更 高的效能,在执行多数任务时用户都可感觉到立竿见影的性能提升,而对于冷核的必要压缩则大幅度节省了晶体管资源,并可达到明显降低芯片功耗的目的。设计者 可以在晶体管规模不变的前提下,让X86处理器获得数倍的效能提升。
毫无疑问,PARROT对于深陷困境的X86架构无疑是雪中送炭,X86处理器将因此出现跨越性的技术进步。而换个角度看,PARROT完全可以说是RISC思想的伟大胜利,80/20法则再度成为魔法的关键,只不过,上一次 IBM基于此建立了伟大的RISC指令系统,而这次是Intel在保持X86软件兼容的前提下,成功实现了对微处理器结构的优化,两种做法可谓是殊途同归。
据悉,PARROT技术将在2007年开始进入实用,“Merom”将成为首款基于PARROT思想的处理器内核。大家一定看过这样的新闻:2007 年Intel的服务器处理器、桌面处理器和移动处理器都将采用“Merom”内核,无论性能还是功耗都将有出色的表现,我们有足够的理由对它寄以厚望。      
发布了15 篇原创文章 · 获赞 2 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览