问题 单项选择题

以下关于CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是______。

A.在CISC中,复杂指令都采用硬布线逻辑来执行
B.一般而言,采用CISC技术的CPU,其芯片设计复杂度更高
C.在RISC中,更适合采用硬布线逻辑执行指令
D.采用RISC技术,指令系统中的指令种类和寻址方式更少

答案

参考答案:A

解析:在计算机系统结构发展的过程中,指令系统的优化设计有两个截然相反的方向,一个是增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现,这种计算机系统称为复杂指令系统计算机(Complex Instruction Set Computer,CISC);另一个是尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段子程序来实现,这种计算机系统称为精简指令系统计算机(Reduced Instruction Set Computer,RISC)。
①CISC指令系统的特点
CISC指令系统的主要特点如下。
·指令数量众多。指令系统拥有大量的指令,通常有100~250条左右。
·指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。
·支持很多种寻址方式。支持的寻址方式通常有5~20种。
·变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
·指令可以对主存单元中的数据直接进行处理。典型的CISC通常都有指令能够
直接对主存单元中的数据进行处理,其执行速度较慢。
·以微程序控制为主。CISC的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
②目标程序的优化
目标程序是由指令直接组成的,是要在处理机中直接执行的,因此,面向目标程序优化的指令系统是提高计算机系统性能最直接的方法。优化目标程序的目的主要有两个:一个是缩短程序的长度,即减少程序的空间开销;另一个是缩短程序的执行时间,即减少程序的时间开销。
优化目标程序的主要途径是增强指令的功能,包括数据传送指令、运算类指令和程序控制指令。具体方法是,对大量的程序及其执行情况进行统计分析,找出那些使用频率高、执行时间长的指令和指令串。对于那些使用频率高的指令,用硬件加快其执行,就能缩短整个程序的执行时间。对于那些使用频率高的指令串,用一条新的指令来代替它,这样,不但能缩短整个程序的执行时间,而且能缩短整个程序的长度,从而减少程序的空间开销。
③对高级语言和编译程序的支持
高级语言和一般计算机的机器语言的语义差距比较大,通常用高级语言编写的程序经编译程序编译后生成的目标程序,与直接用机器语言或汇编语言编写的程序相比,时间和空间的开销都要大一个数量级。因此,改进指令系统,增加对高级语言和编译程序的支持,缩小高级语言与机器语言之间的差距,就能提高整个计算机系统的性能。
面向高级语言和编译程序增强指令系统的途径主要有两个:一是增强对高级语言和编译程序支持的指令的功能,增强体系结构的规整性,减少体系结构中各种例外情况;二是设计高级语言计算机,在这种计算机中,用高级语言编写的程序不需要经过编译,直接由机器的硬件来执行。例如,LISP计算机和PROLOG计算机等。
④操作系统的优化实现
任何一种计算机系统都必须有操作系统的支撑才能工作,而操作系统又必须用指令系统来实现。所以操作系统的优化必须要通过指令系统的优化才能实现。
⑤CISC指令系统的缺陷
CISC指令系统主要存在如下三个方面的问题。
·80-20规律。在CISC中,各种指令的使用频率相差很悬殊,大量的统计数字表明,大约有20%的指令使用频率比较大,占据了80%的处理机时间。换句话说,有80%的指令只在20%的处理机运行时间内才被用到。
·超大规模(甚大规模、极大规模)集成电路技术的发展引起的问题。超大规模集成电路工艺要求规整性,而在CISC中,为了实现大量的复杂指令,控制逻辑极不规整,给超大规模集成电路工艺造成很大困难。在CISC中,大量使用微程序技术以实现复杂的指令系统。由于超大规模集成电路的集成度迅速提高,使得生产单芯片处理机成为可能。在单芯片处理机内,希望采用规整的硬布线控制逻辑,不希望用微程序。
·软硬件的功能分配问题。在CISC中,为了支持目标程序的优化,支持高级语言和编译程序,增加了许多复杂的指令,用一条指令来代替一串指令。这些复杂指令简化了目标程序,缩小了高级语言与机器指令之间的语义差距。然而,为了实现这些复杂的指令,不仅增加了硬件的复杂程度,而且使指令的执行周期大大加长。例如,为了支持编译程序的对称性要求,一般的运算类指令都能直接访问主存,从而使指令的执行周期数增加,数据的重复利用率降低。
RISC不是简单地把指令系统进行简化,而是通过简化指令的途径使计算机的结构更加简单、合理,以减少指令的执行周期数,从而提高运算速度。
①RISC指令系统的特点
RISC要求指令系统简化,操作在单周期内完成,指令格式力求一致,寻址方式尽可能减少,并提高编译的效率,最终达到加快机器处理速度的目的。RISC指令系统的主要特点如下。
·指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了LOAD(从存储器中读数)和STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在CPU的寄存器之间进行。
·指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
·指令长度固定,指令格式种类少。因为RISC指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。
·以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
·单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如,LOAD/STORE指令因为需要访问存储器,其执行时间就会长一些。
·优化的编译器:RISC的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。
·CPU中的通用寄存器数量多,一般在32个以上,有的可达上千个。
大多数RISC采用了Cache方案,使用Cache来提高取指令的速度。而且,有的RISC使用两个独立的Cache来改善性能。一个称为指令Cache,另一个称为数据Cache。这样,取指令和取数据可以同时进行,互不干扰。
②RISC的核心思想
计算机执行一个程序所用的时间可表示为:
P=I×CPI×T
其中,P是执行这个程序所使用的总时间,I是这个程序所需执行的总的指令条数,CPI是每条指令执行的平均周期数,T是一个周期的时间长度。
·由于RISC的指令都比较简单,CISC中的一条复杂指令所完成的功能在RISC中可能要用几条指令才能实现。对于同一个源程序,分别编译后生成的动态目标代码,显然RISC的要比CISC的多。但是,由于CISC中复杂指令使用的频率很低,程序中使用的指令绝大多数都是与RISC一样的简单指令,因此,实际上的统计结果表明,RISC的I长度只比CISC的长20%~40%。
·由于CISC一般是用微程序实现的,一条指令往往要用好几个周期才能完成,一些复杂指令所要的周期数就更多。根据统计,大多数CISC的指令平均执行周期数CPI在4~10之间;而RISC的大多数指令都是单周期执行的,它们的CPI应该是1,但是,由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1。
·由于RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单,所以,CISC的T通常是RISC的3倍左右。
综合以上三点,可以大致计算出,RISC的处理速度要比同规模的CISC提高3~5倍。其中的关键在于RISC的指令平均执行周期数CPI减小了,这正是RISC设计思想的精华。减小CPI是多个方面共同努力的结果。在硬件方面,采用硬布线控制逻辑,减少指令和寻址方式的种类,使用固定的指令格式,采用LOAD/STORE结构,指令执行过程中设置多级流水线等,软件方面十分强调优化编译技术的作用。
③RISC的关键技术
RISC要达到很高的性能,必须有相应的技术支持。目前,在RISC处理机中采用的主要技术有如下几种。
·延时转移技术。在RISC处理机中,指令一般采用流水线方式工作。流水线技术所面临的一个问题就是转移指令的出现,这时,有可能使流水线断流。其中一个解决办法是在转移指令之后插入一条有效的指令,而转移指令好像被延迟执行了,因此,把这种技术称为延迟转移技术。
·指令取消技术。采用指令延时技术,遇到条件转移指令时,调整指令序列非常困难,在许多情况下找不到可以用来调整的指令。有些RISC处理机采用指令取消技术。在使用指令取消技术的处理机中,所有转移指令和数据变换指令都可以决定下面待执行的指令是否应该取消。如果指令被取消,其效果相当于执行了一条空操作指令,不影响程序的运行环境。为了提高程序的执行效率,应该尽量少取消指令,以保持指令流水线处于充满状态。
·重叠寄存器窗口技术。在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的三个窗口和一个公共的窗口,而在这些窗口中,有一个窗口是与前一个过程共用,还有一个窗口是与下一个过程共用的。与前一个过程共用的窗口可以用来存放前一个过程传送给本过程的参数,同时也存放本过程传送给前一个过程的计算结果;与下一个过程共用窗口可以用来存放本过程传送给下一个过程的参数和存放下一个过程传送给本过程的计算结果。
·指令流调整技术。为了使RISC处理机中的指令流水线高效率地工作,尽量不断流。编译器必须分析程序的数据流和控制流,当发现指令流有断流可能时,要调整指令序列。对有些可以通过变量重新命名来消除的数据相关,要尽量消除。这样,可以提高流水线的执行效率,缩短程序的执行时间。
·逻辑实现以硬件为主,固件为辅。R[SC主要采用硬布线逻辑来实现指令系统。对于那些必须的复杂指令,也可用固件实现。
在实际应用中,商品化的RISC机器并不是纯粹的RISC。为了满足应用的需要,实用的RISC除了保持RISC的基本特色之外,还必须辅以一些必不可少的复杂指令,例如,浮点运算、十进制运算指令等。所以,这种机器实际上是在RISC基础上实现了RISC与CISC的完美结合。
本题考查CISC与RISC的区别,这是一种常见的考题,两者的区别总结如表所示。

CISC与RISC的区别
指令系统类型 指 令 寻址方式 实现方式 其 他
CISC(复杂) 数量多,使用频率差别大,可变艮格式 支持多种 微程序控制技术
RISC(精简) 数量少,使用频率接近,定长格式,大
部分为单周期指令,操作寄存器,只有
Load/Store操作内存
支持方式少 增加了通用寄存
器;硬布线逻辑控制
为主;采用流水线
优化编
译,有效支
持高级语言

单项选择题 案例分析题
单项选择题 A1/A2型题