简介
CISC是指採用一整套电脑指令进行操作的电脑。而后又出现了精简指令集电脑,它精简了指令集,只保留了那些常用的指令,这样电脑能以更快的速度执行操作。
CISCCISC早期的电脑部件比较昂贵,主频低,运算速度慢。为了提高运算速度,人们不得不将越来越多的复杂指令加入到指令系统中,以提高电脑的处理效率,这就逐步形成复杂指令集电脑体系。为了在有限的指令长度内实现更多的指令,人们又设计了操作码扩展。然后,为了达到操作码扩展的先决条件--减少地址码,设计师又发现了各种定址方式,如基址定址、相对定址等,以最大限度地压缩地址长度,为操作码留出空间。Intel公司的X86系列CPU是典型的CISC体系的结构,从最初的8086到后来的Pentium系列,每出一代新的CPU,都会有自己新的指令,而为了兼容以前的CPU平台上的软体,旧的CPU的指令集又必须保留,这就使指令的解码系统越来越复杂。CISC可以有效地减少编译代码中指令的数目,使取指操作所需要的记忆体访问数量达到最小化。此外CISC可以简化编译器结构,它在处理器指令集中包含了类似于程式语言结构的复杂指令,这些复杂指令减少了程式语言和机器语言之间的语义差别,而且简化了编译器的结构。
为了支持复杂指令集,CISC通常包括一个复杂的资料通路和一个微程式控製器。微程式控製器由一个微程式存储器、一个微程式计数器(MicroPC)和地址选择逻辑构成。在微程式存储器中的每一个字都表示一个控製字,并且包含了一个时锺周期内所有资料通路控製信号的值。这就意味着控製字中的每一位表示一个资料通路控製线的值。例如,它可以用于载入暂存器或者选择ALU中的一个操作。此外每个处理器指令都由一系列的控製字组成。当从记忆体中取出这样的一条指令时,首先把它放在指令暂存器中,然后地址选择逻辑再根据他来确定微程式存储器中相应的控製字顺序起始地址。当把该起始地址放入MicroPC中后,就从微程式记忆体中找到相应的控製字,并利用它在资料通路中把资料从一个暂存器传送到另一个暂存器。由于MicroPC中的地址并发递增来指向下一个控製字,因此对于序列中的每个控製器都会重复一遍这一步骤。最终,当执行完最后一个控製字时,就从记忆体中取出一条新的指令,整个过程会重复进行。
CISC由此可见,控製字的数量及时锺周期的数目对于每一条指令都可以是不同的。因此在CISC中很难实现指令流水操作。另外,速度相对较慢的微程式存储器需要一个较长的时锺周期。由于指令流水和短的时锺周期都是快速执行程式的必要条件,因此CISC体系结构对于高效处理器而言不太合适的。
(百度名片内容和图片来源:)
发展历史
在电脑指令系统的最佳化发展过程中,出现过两个截然不同的最佳化方向: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技术的精华就是通过简化电脑指令功能,使指令的平均执行周期减少,从而提高电脑的工作主频,同时大量使用通用暂存器来提高子程式执行的速度。
CISC从电脑诞生以来,人们一直沿用CISC指令集方式。早期的桌面软体是按CISC设计的,并一直沿用。桌面电脑流行的x86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路,包括Intel、AMD,还有其他一些现在已经更名的厂商,如TI(德州仪器)、Cyrix以及VIA(威盛)等。在CISC微处理器中,程式的各条指令是按顺序串列执行的,每条指令中的各个操作也是按顺序串列执行的。顺序执行的优点是控製简单,但电脑各部分的利用率不高,执行速度慢。CISC架构的伺服器主要以IA-32架构(IntelArchitecture,英特尔架构)为主,而且多数为中低档伺服器所採用。
区别
CISC(复杂指令集电脑)和RISC(精简指令集电脑)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计製造微处理器的两种典型技术,虽然它们都是尝试在体系结构、操作运行、软体硬体、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但採用的方法不同,因此,在很多方面差异很大,它们主要有:
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机器则更适合于通用机。
特点
指令系统庞大,指令功能复杂,指令格式、定址方式多;绝大多数指令需多个机器周期完成;各种指令都可访问存储器;採用微程式控製;有专用暂存器,少量;难以用最佳化编译技术生成高效的目标代码程式;CISC存在的问题 :指令系统庞大,指令功能复杂,指令格式、定址方式多;执行速度慢;难以最佳化编译,编译程式复杂; 80%的指令在20%的运行时间使用;无法并行;无法兼容;导致CISC指令系统复杂的主要原因 :减少语义差距减少存储空间,提高速度为了向上兼容 带来的后果电路复杂,编译效率低无法并行;无法兼容 典型的CISC产品 项目 VAX11/780 1978年 Intel80386 1985年 MC68020 1984年 指令条数 304 111 101 定址方式 24 11 16 指令格式 变长(2-57byte) 变长(1-17byte)16从CISC到RISC CISC指令系统存在的问题:20%与80%规律 CISC中,大约20%的指令佔据了80%的处理机时间。其余80%指令:使用频度只佔20%的处理机运行时间 VLSI技术的发展引起的问题 VLSI工艺要求规整性,RISC正好适应了VLSI工艺的要求主存与控存的速度相当,简单指令没有必要用微程式实现,复杂指令用微程式实现与用简单指令组成的子程式实现没有多大区别;由于VLSI的集成度迅速提高,使得生产单晶片处理机成为可能。 软硬体的功能分配问题复杂的指令使指令的执行周期大大加长一般CISC处理机的指令平均执行周期都在4以上,有些在10以上 CISC增强了指令系统功能,简化了软体,但硬体复杂了,设计周期加长。
缺点
採用复杂指令系统的电脑有着较强的处理高级语言的能力.这对提高电脑的性能是有益的.当电脑的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司设在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为它当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能。1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克利分校开展这一研究.结果表明,CISC存在许多缺点. 首先.在这种电脑中.各种指令的使用率相差悬殊:一个典型程式的运算过程所使用的80%指令.只佔一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.
CISC同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水準,但也很难把CISC的全部硬体做在一个晶片上,这也妨碍单片电脑的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于採用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度. 因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的构想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持作业系统和高级语言.按照这个原则发展而成的电脑被称为精简指令集电脑(ReducedInstructionSetComputer-RISC).简称RISC.
问题
(1)指令的2/8规律
CISC电脑系统中,各种指令的使用频率相差悬殊。大量的统计数位表明,大概有20%的比较简单的指令被反复使用,使用量约佔整个程式的80%;而有80%左右的指令则很少使用,其使用量约佔整个程式的20%。
VLSI製造工艺要求CPU控製逻辑的规整性
进入20世纪80年代后,VLSI技术的发展非常迅速,往往每3到4年集成度就提高了一个数量级。VLSI工艺要求规整性,而CISC处理器中,为了实现大量复杂的指令,控製逻辑极不规整,给VLSI工艺造成很大困难。
此外,以CISC处理器中,大量使用微程式技术以实现复杂的指令系统。20世纪70年代之前一般採用磁芯做主存储器,採用半导体做控製存储器,两者的速度相差5~10倍。从70年代后期开始,大量使用DRAM(动态随机存储器)做主存储器,使主存与控製存储器的速度相当,从而使许多简单指令没有必要用微程式来实现。而复杂的指令,用微程式实现和简单指令组成的子程式实现已经没有多大区别。
软硬体的功能划分
在CISC中,为了支持目标程式的最佳化,支持高级语言和编译程式,增加了许多复杂的指令,用一条指令来替代一串指令。这些复杂指令简化目标程式,缩小了高级语言与机器指令之间的语义差距。但是,增加了这些复杂指令并不等于缩短了程式的执行时间。
为了实现复杂的指令,不仅增加了硬体的复杂程式,而且使指令的执行周期大大加长。例如,为了支持编译程式的对称性要求,一般的运算型指令都能直接访问主存储器,从而使指令的执行周期数增加,资料的重复利用率降低。据统计,一般CISC处理器的指令平均执行周期都在4以上,有些在10以上,如Intel公司的8088等。
这裏有一个软体与硬体的功能如何恰当分配的问题。在CISC中,通过增强指令系统的功能,简化了软体,增加了硬体的复杂程度。然而,由于指令复杂了,指令的执行时间必然加长,从而有可能使整个程式的执行时间反而增加,因此,在电脑体系结构设计中,软硬体功能划分必须核实。
RISC 和CISC 是目前设计製造微处理器的两种典型技术,虽然它们都是尝试在体系结构、操作运行、软体硬体、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效
的目的,但採用的方法不同,因此,在很多方面差异很大,它们主要有:
(1) 指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 电脑的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2) 存储器操作:RISC 对存储器操作有限製,使控製简单化;而CISC 机器的存储器操作指令多,操作直接。
(3) 程式:RISC 汇编语言程式一般需要较大的记忆体空间,实现特殊功能时程式复杂,不易设计;而CISC 汇编语言程式编程相对简单,科学计算及复杂操作的程式让设计相对容易,效率较高。
(4) 中断:RISC 机器在一条指令执行的适当地方可以回响中断;而CISC 机器是在一条指令执行结束后回响中断。
(5) CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6) 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于採用最新技术;CISC 微处理器结构复杂,设计周期长。
(7) 使用者使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8) 套用範围:由于RISC 指令系统的确定与特定的套用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。













