精简指令集

精简指令集

RISC的英文全称是Reduced Instruction Set Computer,中文是精简指令集计算机。特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且採用流水线技术。在中高档伺服器中採用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、MIPS公司的MIPS和SUN公司的Sparc。

  • 中文名称
    精简指令系统
  • 外文名称
    Reduced Instruction Set Computer
  • 特点
    所有指令的格式都是一致
  • 採用
    流水线技术

简介

精简指令集,是电脑中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computer的缩写)。这种设计思路对指令数目和定址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。常用的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特徵让代码编写更加便捷,但这些复杂特徵需要几个指令周期才能实现,并且常常不被运行程式所採用。此外,处理器和主记忆体之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问记忆体的次数。早期,这种指令集的特点是指令数目少,每条指令都採用标準字长、执行时间短、中央处理器的实现细节对于机器级程式是可见的。

发展背景

在早期的电脑业中,编译器技术尚未出现。程式是以机器语言或汇编语言完成的。为了便于编写程式,电脑架构师造出越来越复杂的指令,可以高阶程式语言直接陈述高阶功能。当时的看法是硬体比编译器更易设计,所以复杂的东西就加进硬体了。

加速复杂化的其它因素是缺乏大记忆体。记忆体小的环境中,具有极高讯息密度的程式较有利。当记忆体中的每一位元组如此珍贵,例如储存某个完整系统只需几千位元组,它使产业移向高度编码的指令、长度不等的指令、执行多个操作的指令,和执行资料传输与计算的指令。当时指令封包问题远比易解的指令重要。

那时使用磁性技术,记忆体不仅小,而且很慢。这是维持极高讯息密度的其它原因。借着具有极高讯息密度封包,当必须存取慢速资源时可以降低频率。

CPU只有少数快取器的两个原因︰

CPU内部快取器远贵于外部记忆体。以当时的积体电路技术水準,大快取器集对晶片或电路板区域只是多余的浪费。

具有大数量的快取器将需要大数量的指令位(使用珍贵的RAM)以做为快取器指定器。

基于上述原因,CPU设计师试着令指令尽可能做更多的工作。这导致一个指令将做全部的工作︰读入两个数位,相加,并且直接在记忆体储存计算结果。其它版本将从记忆体读取两个数位,但计算结果储存在快取器。另一个版本将从记忆体和快取器各读一个数位,并再次存入记忆体。以此类推。这种处理器设计原理最终成为复杂指令集(CISC)。

当时的目标是给所有的指令提供所有的定址模式,此称为「正交性」。这在 CPU 上导致了一些复杂性,但就理论上每个可能的命令都可以单独的调试(调用,be tuned),这样使得程式员能够比用简单的命令来得更快速。

这类的设计最终可以由光谱的两端来表达, 6502 在光谱的一端,而 VAX 在光谱的另一端。单价25美元的 1MHz 6502 晶片只有单一的通用快取器, 但它的极精简的单周期记忆体介面(single-cycle memory interface)让一个位的操作效能和更高频率设计几乎相同,例如 4MHz Zilog Z80 在使用相同慢速的记忆晶片下(大约近似 300ns)。

发展分歧

在电脑指令系统的最佳化发展过程中,出现过两个截然不同的最佳化方向:CISC技术和RISC技术。CISC是指复杂指令系统电脑(Complex Instruction Set Computer);RISC是指精减指令系统电脑(Reduced Instruction Set Computer)。这裏的电脑指令系统指的是电脑的最低层的机器指令,也就是CPU能够直接识别的指令。随着电脑系统的复杂,要求电脑指令系统的构造能使电脑的整体性能更快更稳定。最初,人们採用的最佳化方法是通过设定一些功能复杂的指令,把一些原来由软体实现的、常用的功能改用硬体的指令系统实现,以此来提高电脑的执行速度,这种电脑系统就被称为复杂指令系统电脑,即Complex Instruction Set Computer,简称CISC。另一种最佳化方法是在20世纪80年代才发展起来的,其基本思想是尽量简化电脑指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程式来实现,这种电脑系统就被称为精简指令系统电脑.即Reduced Instruction Set Computer,简称RISC。RISC技术的精华就是通过简化电脑指令功能,使指令的平均执行周期减少,从而提高电脑的工作主频,同时大量使用通用暂存器来提高子程式执行的速度

精简指令集

提出原由

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

优势

RISC和CISC是设计製造微处理器的两种典型技术,虽然它们都是尝试在体系结构、操作运行、软体硬体、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但採用的方法不同,因此,在很多方面差异很大,它们主要有:

精简指令集

(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC电脑的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

(2)存储器操作:RISC对存储器操作有限製,使控製简单化;而CISC机器的存储器操作指令多,操作直接。

(3)程式:RISC汇编语言程式一般需要较大的记忆体空间,实现特殊功能时程式复杂,不易设计;而CISC汇编语言程式编程相对简单,科学计算及复杂操作的程式设计相对容易,效率较高。

(4)中断:RISC机器在一条指令执行的适当地方可以回响中断,但是相比CISC指令执行的时间短,所以中断回响及时;而CISC机器是在一条指令执行结束后回响中断。

精简指令集

(5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于採用最新技术;CISC微处理器结构复杂,设计周期长。

(7)使用者使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

(8)套用範围:由于RISC指令系统的确定与特定的套用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。

特征

统一指令编码(例如,所有指令中的op-code永远位于同样的位位置、等长指令),可快速解译︰

泛用的快取器,所有快取器可用于所有内容,以及编译器设计的单纯化(不过快取器中区分了整数和浮点数);

单纯的定址模式(复杂定址模式以简单计算指令序列取代);

硬体中支持少数资料型别(例如,一些CISC电脑中存有处理位元组字元串的指令。这在RISC电脑中不太可能出现)。

RISC设计上同时也有哈佛记忆体模组特色,凡指令流和资料流在概念上分开;这意味着变更代码存在的记忆体地址对处理器执行过的指令没有影响(因为CPU有着独立的指令和资料快取),至少在特殊的同步指令发出前。在另一面,这允许指令快取和资料快取同时被访问,通常能改进运行效率。

许多早期的RISC设计同样共享着不好的副作用--转移延时槽,转移延时槽是指一个跳转或转移指令之后的指令空间。无论转移是否发生,空间中的指令将被执行(或者说是转移效果被延迟)。这些指令让CPU的算术和逻辑单元(ALU)繁忙比通常执行转移所需更多的时间。现在转移延时槽被认为是实现特定RISC设计的副作用,现代的RISC设计通常避免了这个问题(如PowerPC,最近的SPARC版本,MIPS)。

结构特点

RISC是简化指令集电脑的简略缩写,其风格是强调电脑结构的简单性和高效性。RISC设计是从足够的不可缺少的指令集开始的。它的速度比那些具有传统复杂指令组电脑结构的机器快得多,而且RISC机由于其较简洁的设计,较易使用,故具有更短的研製开发周期。RISC结构一般具有如下的一些特点:

精简指令集

①单周期的执行:它统一用单周期指令。从根本上克服了CISC指令周期数有长有短,造成运行中偶发性不确定,致使运行失常的问题。

②採用高效的流水线操作:使指令在流水线中并行地操作,从而提高处理资料和指令的速度。

③无微代码的硬连线控製:微代码的使用会增加复杂性和每条指令的执行周期。

④指令格式的规格化和简单化:为与流水线结构相适应且提高流水线的效率,指令的格式必须趋于简单和固定的规式。比如指令採用16位或32位的固定的长度,并且指令中的操作码栏位、运算元栏位都尽可能具有统一的格式。此外,尽量减少定址方式,从而使硬体逻辑部件简化且缩短解码时间,同时也提高了机器执行效率和可靠性。

⑤採用面向暂存器堆的指令:RISC结构採用大量的暂存器--暂存器操作指令,使指令系统更为精简。控製部件更为简化,指令执行速度大大提高。由于VLSI技术的迅速发展,使得在一个晶片上做大量的暂存器成为可能。这也促成了RISC结构的实现。

⑥採用装入/存储指令结构:在CISC结构中。大量设定存储器--存储器操作指令,频繁地访问记忆体,将会使执行速度降低。RISC结构的指令系统中,只有装入/存储指令可以访问记忆体,而其它指令均在暂存器之间对资料进行处理。用装入指令从记忆体中将资料取出,送到暂存器;在暂存器之间对资料进行快速处理,并将它暂存在那裏,以便再有需要时。不必再次访问记忆体。在适当的时候,使用一条存储指令再将这个资料送回记忆体。採用这种方法可以提高指令执行的速度。

⑦注重编译的最佳化,力求有效地支撑高级语言程式。

通常使用的单片机中,MCS一51系列的单片机属于CISC的体系结构;AVR系列的单片机则属于RISC的体系结构。

发展前景

鑒于RISC的设计特点以及其无可比拟的优点,RISC体系结构处理器的发展方向:

一是增加处理器的并行性;

扩展指令集

二是扩展支持可伸缩并行电脑系统的功能;

三是提高工艺水準。最终RISC与DSP在嵌入式套用中完美融合,密不可分。

RISC微处理器不仅精简了指令系统,採用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。如:1987年SunMicrosystem公司推出的SPARC晶片就是一种超标量结构的RISC处理器。而SGI公司推出的MIPS处理器则採用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用。RISC处理器是当今UNIX领域64位多处理机的主流晶片。

性能特点

性能特点一:由于指令集简化后,流水线以及常用指令均可用硬体执行;

性能特点二:採用大量的暂存器,使大部分指令操作都在暂存器之间进行,提高了处理速度;

性能特点三:採用快取-主机-外存三级存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因从存储器存取信息而放慢处理速度。

套用特点

由于RISC处理器指令简单、採用硬布线控製逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和伺服器厂商均採用RISC晶片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA-8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。

运行特点

RISC晶片的工作频率一般在400MHZ数量级。时锺频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。单一指令周期容纳多部并行操作。在RISC微处理器发展过程中。曾产生了超长指令字(VLIW)微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能并行执行。VLIW处理器的基本模型是标量代码的执行模型,使每个机器周期内有多个操作。有些RISC处理器中也採用少数VLIW指令来提高处理速度。

相关词条

相关搜索

其它词条