复杂指令系统计算机(英文complexinstruction setcomputer,简称CISC)随着VLSI技术的发展,计算机的硬件成本不断下降,软件成本不断提高,使得人们热衷于在指令系统中增加更多的指令和复杂的指令,来提高操作系统的效率,并尽量缩短指令系统与高级语言的语义差别,以便于高级语言的编译和降低软件成本。另外,为了做到程序兼容,同一系列计算机的新机器和高档机的指令系统只能扩充而不能减去任意一条,因此也促使指令系统越来越复杂,某些计算机的指令多达几百条。例如,DEC公司的VAXll/780计算机有303条指令,18种寻址方式,我们称这些计算机为复杂指令系统计算机。[1] CISC的优点是能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就是可以使用较早电脑上使用的相同软体。另外微程式指令的格式与高阶语言相匹配,因而编译器并不定要重新编写;缺点是指令集以及晶片的设计比上一代产品更复杂,不同的指令需要不同的时钟周期来完成,执行较慢的指令将影响整台机器的执行效率。[2]
发展历程
复杂指令集计算机(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芯片面积,可是有些复杂指令又 用得很少,难以用优化编译生成高效目标代码。处理器的执行效率不高。指令系统与软件之间语义差别越来越大,软件设计任务十分繁重,整个设计风格不是十分经济有效的。