标题：复杂指令系统计算机
简介
  复杂指令系统计算机复杂指令集计算机（CISC），长期来，计算机性能的提高往往是通过增加硬件的复杂性来获得．随着集成电路技术．特别是VLSI（超大规模集成电路）技术的迅速发展，为了软件编程方便和提高程序的运行速度，硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式．甚至某些指令可支持高级语言语句归类后的复杂操作．至使硬件越来越复杂，造价也相应提高．为实现复杂操作，微处理器除向程序员提供类似各种寄存器和机器指令功能外．还通过存于只读存贮器(ROM）中的微程序来实现其极强的功能，傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能，这种设计的型式被称为复杂指令集计算机（Complex Instruction Set Computer-CISC）结构．一般CISC计算机所含的指令数目至少300条以上，有的甚至超过500条． 传统计算机大多数为复杂指令系统计算机CISC(Complex Instruction Set Computer），机器结构以存储器为中心，认为机器执行速度和程序代码大小成比例，绝大多数指令需要多个时钟周期执行完毕。计算机指令系统十分庞大和复杂（指令条数多，寻址方式多，指令格式也很多），如1973年的IBM370/168基本指令208条，寻址方式4种，指令格式2～6个字节。1978年的VAⅫ/780基本指令304条，24种寻址方式，指令格式2～57个字节，其中微代码存储器大小约480KB。指令的控制执行是采用微程序控制技术，有专用的寄存器。这样庞大的指令系统使得控制器十分复杂，占用了大量CPU芯片面积，可是有些复杂指令又用得很少，难以用优化编译生成高效目标代码。处理器的执行效率不高。指令系统与软件之间语义差别越来越大，软件设计任务十分繁重，整个设计风格不是十分经济有效的。
发展
  复杂指令系统计算机在计算机指令系统的优化发展过程中，出现过两个截然不同的优化方向：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设计的，并一直沿用。桌面计算机流行的x86体系结构即使用CISC。微处理器（CPU）厂商一直在走CISC的发展道路，包括Intel、AMD，还有其他一些现在已经更名的厂商，如TI（德州仪器）、Cyrix以及ⅥA（威盛）等。在CISC微处理器中，程序的各条指令是按顺序串行执行的，每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单，但计算机各部分的利用率不高，执行速度慢。CISC架构的服务器主要以IA-32架构（IntelArchitecture，英特尔架构）为主，而且多数为中低档服务器所采用。
缺点
  复杂指令系统计算机采用复杂指令系统的计算机有着较强的处理高级语言的能力．这对提高计算机的性能是有益的．当计算机的设计沿着这条道路发展时．有些人没有随波逐流．他们回过头去看一看过去走过的道路，开始怀疑这种传统的做法：IBM公司设在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题．因为当时已感到，日趋庞杂的指令系统不但不易实现．而且还可能降低系统性能。1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究．结果表明，CISC存在许多缺点． 首先．在这种计算机中．各种指令的使用率相差悬殊：一个典型程序的运算过程所使用的80%指令．只占一个处理器指令系统的20%．事实上最频繁使用的指令是取、存和加这些最简单的指令．这样-来，长期致力于复杂指令系统的设计，实际上是在设计一种难得在实践中用得上的指令系统的处理器．
  复杂指令系统计算机同时．复杂的指令系统必然带来结构的复杂性．这不但增加了设计的时间与成本还容易造成设计失误．此外．尽管VLSI技术现在已达到很高的水平，但也很难把CISC的全部硬件做在一个芯片上，这也妨碍单片计算机的发展．在CISC中，许多复杂指令需要极复杂的操作，这类指令多数是某种高级语言的直接翻版，因而通用性差．由于采用二级的微码执行方式，它也降低那些被频繁调用的简单指令系统的运行速度． 因而．针对CISC的这些弊病．帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令，并提供一些必要的指令以支持操作系统和高级语言．按照这个原则发展而成的计算机被称为精简指令集计算机（Reduced Instruction Set Computer-RISC）结构．简称RISC．
区别
  复杂指令系统计算机CISC（复杂指令集计算机）和RISC（精简指令集计算机）是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构，它的设计目的是要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术，虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡，以求达到高效的目的。但采用的方法不同，因此，在很多方面差异很大，它们主要有：
⑴指令系统：RISC设计者把主要精力放在那些经常使用的指令上，尽量使它们具有简单高效的特色。对不常用的功能，常通过组合指令来完成。因此，在RISC机器上实现特殊功能时，效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富，有专用指令来完成特定的功能。因此，处理特殊任务效率较高。
⑵存储器操作：RISC对存储器操作有限制，使控制简单化；而CISC机器的存储器操作指令多，操作直接。
⑶程序：RISC汇编语言程序一般需要较大的内存空间，实现特殊功能时程序复杂，不易设计；而CISC汇编语言程序编程相对简单，科学计算及复杂操作的程序社设计相对容易，效率较高。
98年 Cyrix 生产的“CPU”
⑷中断：RISC机器在一条指令执行的适当地方可以响应中断；而CISC机器是在一条指令执行结束后响应中断。
  复杂指令系统计算机⑸CPU：RISCCPU包含有较少的单元电路，因而面积小、功耗低；而CISCCPU包含有丰富的电路单元，因而功能强、面积大、功耗大。⑹设计周期：RISC微处理器结构简单，布局紧凑，设计周期短，且易于采用最新技术；CISC微处理器结构复杂，设计周期长。
⑺用户使用：RISC微处理器结构简单，指令规整，性能容易把握，易学易用；CISC微处理器结构复杂，功能强大，实现特殊功能容易。
⑻应用范围：由于RISC指令系统的确定与特定的应用领域有关，故RISC机器更适合于专用机；而CISC机器则更适合于通用机。
CISC的主要特点
指令系统庞大，指令功能复杂，指令格式、寻址方式多；绝大多数指令需多个机器周期完成；各种指令都可访问存储器；采用微程序控制；有专用寄存器，少量；难以用优化编译技术生成高效的目标代码程序。CISC存在的问题⑴指令系统庞大，指令功能复杂，指令格式、寻址方式多；
⑵执行速度慢；
⑶难以优化编译，编译程序复杂；
⑷80%的指令在20%的运行时间使用；无法并行；无法兼容；
⑸CISC强调完善的中断控制， 势必导致动作繁多，设计复杂，研制周期长；
⑹CISC给芯片设计带来很多困难，使芯片种类增多，出错几率增大，成本提高而成品率降低。导致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增强了指令系统功能，简化了软件，但硬件复杂了，设计周期加长。