RISC和CISC的比较&VLIW、EPIC

来源:互联网 发布:淘宝实时访客软件 编辑:程序博客网 时间:2024/06/05 16:16

RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。

RISC设计思想准则

1. 指令集----RISC处理器减少指令集的种类,通常一个周期一条指令,也就是说指令的周期是固定的,编译器或程序员通过几条指令完成一个复杂的操作;CISC的指令长度通常不固定。

2. 流水线----流水线的本质就是CPU并行运行,只是并行运行不像FPGA中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC指令的执行需要调用一个微程序,明显没有RISC的指令吞吐量大。

3. 寄存器----RISC的寄存器拥有更多的通用寄存器,寄存器操作较多,例如ARM具有27个寄存器,CISC的寄存器都是用于特定目的的。

4. Load-store结构----处理器只处理寄存器中的数据,这是因为访问存储器很耗时,同时对外部存储器的读写会影响其寿命;CISC能够在存储器中直接运行

5. 寻址方式简化,不像CISC那样的复杂众多的寻址方式


背景知识:

指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC)精简指令集(RISC)两部分。相应的,微处理随着微指令的复杂度也可分为CISC及RISC这两类。

CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系——包括Intel的80x86和Motorola的68K系列等。即通常所说的X86架构就是属于CISC体系的。 RISC是为了提高处理器运行的速度而设计的晶片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在晶片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU。像HOLTEK MCU系列等。 ARM ( Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。而ARM体系结构目前被公认为是业界领先的32 位嵌入式RISC 微处理器结构。 所有ARM处理器共享这一体系结构。 因此我们可以从其所属体系比较入手,来进行X86指令集与ARM指令集的比较。

 

一、复杂指令集电脑CISC(Complex Instruction Set Computer)

 

CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。早期的电脑使用组合语言编程,由于记忆体速度慢且价格昂贵,使得CISC体系得到了用武之地。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系──包括Intel的80x86和Motorola的68K系列等。

 

1.CISC体系的指令特征

 

使用微代码。指令集可以直接在微代码记忆体(比主记忆体的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程式。

 

庞大的指令集:可以减少编程所需要的代码行数,减轻程式师的负担。高阶语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的指令。

 

2.CISC体系的优缺点

 

优点:能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软体。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。

 

缺点:指令集以及晶片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。

 

二、精简指令集电脑RISC(Reduce Instruction Set Computer)

 

RISC是为了提高处理器运行的速度而设计的晶片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在晶片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU,像HOLTEK MCU系列等。

 

1.RISC体系的指令特征

 

精简指令集:包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。

同样长度的指令:每条指令的长度都是相同的,可以在一个单独操作里完成。

单机器周期指令:大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。

 

2.RISC体系的优缺点

 

优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度将是CISC的2~4倍。由于RISC处理器的指令集是精简的,它的记忆体管理单元、浮点单元等都能设计在同一块晶片上。RISC处理器比相对应的CISC处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。

 

缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快记忆体,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。

 

综合上面所述,若要再进一步比较CISC与RISC之差异,我们可以由以下几点来分析:

 

1、指令的形成

CISC因指令复杂,故采微指令码控制单元的设计,而RISC的指令90%是由硬体直接完成,只有10%的指令是由软体以组合的方式完成,因此指令执行时间上RISC较短,但RISC所须ROM空间相对的比较大,至于RAM使用大小应该与程序的应用比较有关系。

 

2、定址模式

CISC的需要较多的定址模式,而RISC只有少数的定址模式,因此CPU在计算记忆体有效位址时,CISC占用的汇流排周期较多。

 

3、指令的执行

CISC指令的格式长短不一,执行时的周期次数也不统一,而RISC结构刚好相反,故适合采用管线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。显然的,在设计上RISC较CISC简单,同时因为CISC的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以就效能而言RISC较CISC还是站了上风,但RISC因指令精简化后造成应用程式码变大,需要较大的程式记忆体空间,且存在指令种类较多等等的缺点。

 


 

精简指令系统计算机RISC的指令系统精简了,复杂指令系统计算机CISC的一条指令,在RISC中要用一串指令才能实现,可是,RISC执行程序的速度比CISC还要快。

任何一个程序在计算机上的执行时间可以用下面的公式来计算:
    P=I·CPI·T

其中:
  P是执行这个程序所使用的总的时间;
  I是这个程序所需执行的总的指令条数;
  CPI是每条指令执行的平均周期数;
  T是一个周期的时间长度。
  表2.12列出了CISC与RISC的三个参数I、CPI和T的比较情况。从这三个参数的比较中可以得出如下结论:

表2.12 CISC与RISC的I、CPI和T的比较

类 型

指令条数 I

指令平均周期数 CPI

周期时间 T

CISC

1

2~15

33ns~5ns

RISC

1.3~1.4

1.1~1.4

10ns~2ns

 

1、  对于程序所执行的总的指令条数I。

由于RISC的指令都比较简单,CISC中的一条复杂指令所完成的功能在RISC中可能要用几条指令才能实现。对于同一个源程序,分别编译后生成的动态目标代码,显然RISC的要比CISC的多。但是,由于CISC中复杂指令使用的频度很低,程序中使用的绝大多数指令都是与RISC一样的简单指令,因此,实际上的统计结果表明,RISC的I长度只比CISC的长30%至40%。

 

2、对于指令平均执行周期数CPI。

由于CISC一般是用微程序实现的,一条指令往往要用好几个周期才能完成,一些复杂指令所要的周期数就更多。根据统计,大多数CISC处理机,指令平均执行周期数CPI在4到6。而RISC的大所数指令都是单周期执行的,它们的CPI应该是1,但是,由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1。据报道,SUN公司的SPARC处理机的CPI为1.3到1.4,SGI公司的MIPS处理机的CPI为1.1到1.2。

 

3、  对于一个周期的时间长度T。

由于RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单,所以,RISC的T通常要比CISC的T小。从报道中也可以看到,目前使用中RISC处理机的工作主频一般要比CISC处理机高。

从表2.12中可以很快计算出,RISC的速度要比CISC快3倍左右。其中的关键在于RISC的指令平均执行周期数CPI减小了,这正是RISC设计思想的精华。

 


 

 

三、超长指令集架构VLIW(Very Long Instruction Word)

VLIW是美国Multiflow和Cydrome公司于20世纪80年代设计的体系结构,现在主要应用于Trimedia(全美达)公司的Crusoe和Efficeon系列处理器中。AMD最新的的Athlon 64处理器系列也是采用这一指令系统,包括其服务器处理器版本Operon。

同样Intel最新的IA-64架构中的EPIC(清楚并行指令计算,下面将周详介绍)也是从VLIW指令系统中分离出来的。VLIW架构采用了先进的EPIC(清晰并行指令)设计,我们也把这种构架叫做“IA-64架构”。每时钟周期例如IA-64可运行20条指令,而CISC通常只能运行1-3条指令,RISC能运行4条指令,可见VLIW要比CISC和RISC强大的多。

 

1、 VLIW简介

 

VLIW体系结构采用多个独立的功能部件,每一个指令周期在没有相关存在并符合硬件条件的情况下可以同时流出多条指令,可同时流出的操作类型与数目是确定的,所以指令调度是由编译器静态调度完成(在其它方法中均由硬件实现的)以减少硬件开销,因此指令可同时流出的最大数目越大,超长指令字的性能优势就越明显。但是,只要是并行处理,就一定会受到更多相关性的限制。这种相关是有程序本身造成的,分为控制相关和数据相关两种,指令在调度时,必须遵循它们之间的依赖关系,防止冲突发生。

 

2、VLIW的优缺点

 

优点:简化了处理器的结构,删除了处理器内部许多复杂的控制电路,这些电路通常是超标量芯片(CISC和RISC)协调并行工作时必须使用的,VLIW的结构简单,也能够使其芯片制造成本降低,价格低廉,能耗少,而且性能也要比超标量芯片高得多。VLIW是简化处理器的最新途径,VLIW芯片无需超标量芯片在运行时间协调并行执行时所必须使用的许多复杂的控制电路。而是将许多这类负担交给了编译器去承担。

 

缺点:基于VLIW指令集字的CPU芯片使得程式变得很大,需要更多的内存。更重要的是编译器必须更聪明,一个低劣的VLIW编译器对性能造成的负面影响远比一个低劣的RISC或CISC编译器造成的影响要大。目前基于这种指令架构的微处理器主要有Intel的IA-64和AMD的x86-64两种。

 


 

四、并行指令代码EPIC(Explicitly Parallel Instruction Code)

 

EPIC是英特尔的64位芯片架构,本身不能执行x86指令,但能通过译码器来兼容就有的x86指令,只是运算速度比真正的32位芯片有所下降。

 

EPIC简介

EPIC最基本的特点是直接从VLIW继承而来的:支持有编译器来设计理想的执行方案(POE ,plan of execution),并提供足够的指令使执行方案能和硬件联系起来,这两个和CLIW结合最紧密的特点联合起来提供支持 MultiOp(多操作流出)的能力。

 

EPIC风格的体系结构避免了再多处理器情况下占据很大比例的相关性检查和分组逻辑,它技术灵活的分组机制解决了元吃的VLIW的过多的代码扩充和缺乏可扩展性问题。Intel公司的IA-64体系结构和HP公司的HPL-PD体系结构就是两个应用EPIC思想的成功例子。

 

在传统的体系结构中,分支指令是一个单独的操作(虽然它包含着处理器的多个动作),由于分支指令的不确定性,执行时会造成很长的延迟,在多流出的处理器中由于每周期可发射更多操作,使得问题更加严重,会浪费大量的发射槽(Issue Slot)。故控制相关往往是限制VLIW处理器性能发挥的瓶颈所在。EPIC将分支指令拆分成三部分:计算机分支条件,形成分支地址,从分支处或分支失败处去指令译码(真正的分支操作)。各个部件可以重叠执行,为编译器的静态调度优化提供了良好的基础。

0 0
原创粉丝点击