CISC和RISC的区别

转载于http://blog.sina.com.cn/s/blog_9d5430ce0100x5pb.html

  RISC(Reduced Instruction Set Computer)和CISC(complex instruction set computer)是当前CPU的两种架构。

  它们的区别在于不同的CPU设计理念和方法。

  早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。今天只有Intel及其兼容CPU还在使用CISC架构。

  RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

  CISC(复杂指令集)与RISC(精简指令集)的区别

  复杂指令集计算机(CISC)

  长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式。甚至某些指令可支持高级语言语句归类后的复杂操作。至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外。还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,来处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条。

  精简指令集计算机(RISC)

  采用复杂指令系统的计算机有着较强的处理高级语言的能力,这对提高计算机的性能是有益的。当计算机的设计沿着这条道路发展时。有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能。1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究。结果表明,CISC存在许多缺点。首先,在这种计算机中,各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令,只占一个处理器指令系统的20%,事实上最频繁使用的指令是取、存和加这些最简单的指令。这样一来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器。同时,复杂的指令系统必然带来结构的复杂性。这不但增加了设计的时间与成本还容易造成设计失误。此外,尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展。在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差。由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度。因而,针对CISC的这些弊病。帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言。按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构,简称RISC。

我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?

  从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

  从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有65%以上的软件厂商代理为基于CISC体系结构的PC及其兼容机服务的,像赫赫有名的Microsoft就是其中大量的应用程序。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。

  目前CISC与RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的。他们接受CISC指令后将其分解分类成RISC指令以便在同一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。

  

时间: 2024-08-02 22:42:24

CISC和RISC的区别的相关文章

计算机指令集CISC与RISC

当接触一新CPU时商家会首先描述它是RISC指令集,这意味着什么,从这个描述你能了解多少CPU特性信息? 复杂指令集计算机(CISC) 长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各

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

本文来自http://www.cnbeta.com/articles/224544.htm ARM.ARM.ARM,没错ARM仿佛一夜之间就火了,平板.手机等领域随处可见它的影子,甚至已经有人预言未来有相当一部分原属于传统x86势力范围 的台式机份额也将被ARM占据.在这种情况下,大家不可避免地将ARM和传统的x86处理器进行比较,有力挺ARM的,也有支持x86的.事实上,ARM 并非突然冒起,它几乎和x86同时崛起于上个世纪末期. 那么,目前ARMCISC和RISC是现代微处理器的两大基础指令

CISC和RISC是什么?它们的特点和区别?

CISC的英文全称为“Complex Instruction Set Computer”,即“复杂指令系统计算机”,从计算机诞生以来,人们一直沿用CISC指令集方式.早期的桌面软件是按CISC设计的,并一直沿续到现在.目前,桌面计算机流行的x86体系结构即使用CISC.微处理器(CPU)厂商一直在走CISC的发展道路,包括Intel.AMD,还有其他一些现在已经更名的厂商,如TI(德州仪器).IBM以及VIA(威盛)等.在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作

我对risc及cisc机器的认识

说起CISC和RISC机器的,一个称之为复杂指令计算机,另外一个称之为精简指令计算机.复杂指令计算机方面主要代表有大名鼎鼎的X86架构,8位cisc嵌入式代表主要有因特尔的8051,16位的有80196,32位的有瑞萨的CISC架构,具体啥名字忘记了,相对比较非主流.精简指令计算机代表有arm,mips,sparc,powerpc,以及一些非主流的cpu. risc方面我只用过arm和mips,感觉这两家公司其实在技术方面,早期mips是完全领先于arm,体系架构设计也比arm要简单实用,并且中

risc与cisc

RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法. 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务.比如对于乘法运算,在CISC架构的CPU上,您可能需要 这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中.将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现.这种架

一文解读RISC与CISC

RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法. 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务.比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中.将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现.这种架构

简化指令与复杂指令的区别【转】

本文转载自:http://blog.vsharing.com/yxj/A1661860.html泡1杯茶 复杂指令集:1.去泡茶:2.哥,茶泡来了:精简指令集:1.去:2.拿杯子:3.放茶叶:4.泡茶:5.拿来. 显然复杂指令速度快效率高: 泡50杯茶 复杂指令集:1.去泡茶:2.哥,茶泡来了:3.去泡茶:4.哥,茶泡来了:5.去泡茶:6.哥,茶泡来了:7.去泡茶:8.哥,茶泡来了......重复道50次. 精简指令集:1.去:2.拿杯子*50,3.放茶叶*50,4.泡茶*50,5.拿来. 精简

ARM(RISC)和x86(CISC)的技术差异

RISC和CISC,这一对冤家,从诞生之日开始就处在不停的纠缠之中.直到今天,两者经过多年的发展后,都在各自领域打开了一片天地,并且相互渗透.RISC专注高性能.高性能功耗比.小体积以及移动设备领域,CISC专注桌面.高性能和民用市场.现在,RISC的代表是ARM,而CISC的代表则是我们耳熟能详的x86.那么,他们的技术差异在哪里?究竟是怎样的技术分歧带来了两者如此大的差别呢? 指令集的出现 要说清楚RISC和CISC,也就是今天热门的ARM和x86之间的差异,还得把时间往前推一些,观察计算机

CISC + RISC = Y86

最近在读深入理解计算机系统,打算把读时的心得放上来 Y86有着CISC和RISC的属性Y86可以看成是CISC(IA32),但用RISC的原理简化了 CISC和RISC的竞争引发了许多争论CISC和RISC有着各自的好处CISC有着更高级的编译器技术,流水线化处理器,简约式指令集设计RISC有着更高效的性能双方不断争论,最后事实证明了CISC和RISC最终不如结合两者思想的设计 这里就直接把书里的放上来了