复杂和精简指令集
指令的分类
数据传送指令:树妖实现主存和寄存器之间,或者寄存器和寄存器之间的数据传送
一般传送指令: MOV AX,BX
数据交换指令: XCHG
堆栈操作指令: PUSH,POP
运算类指令
算术运算指令: 定点和浮点的算术运算,大型机有向量运算指令
逻辑运算指令:无符号数的位操作,代码的转换、判断及运算
程序控制类指令
程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。
输入和输出指令、字符串处理指令、特权指令、其他指令
基本指令系统的操作
20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。
VLSI(超大规模集成电路)工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。
现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。
CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当
复杂指令系统计算机CISC
Complex Instruction Set Computer
指令系统庞大,指令条数可达几百条
指令长度不固定,指令格式种类多,寻址方式种类多
能够访存的指令不受限制
各种指令使用频度差别大
各种指令执行时间差别大,不利于流水线
一般采用微程序控制
难以优化编译生成高效目标代码
复杂指令系统给很多运算设置了独立的指令。比如二进制加减法有指令,十进制加减法也有自己的指令(而不是使用二进制加减法实现),甚至十六进制也有自己的指令。或者乘除法也有自己的指令而不是通过加减法指令实现
属于复杂指令集的处理器有CDC 6600、System/360、VAX、PDP-11、Motorola 68000家族、x86、AMD Opteron等。
精简指令系统计算机RISC
Reduced Instruction Set Computer
选取使用频率最高的简单指令,指令条数少
指令长度固定,指令格式种类少,寻址方式种类少
只有取数/存数指令访存。其余指令都在寄存器之间进行
指令功能简单,控制器多使用硬布线
CPU中通用寄存器多,减少访存
大部分指令能在一个机器周期完成,利于流水线
使用硬布线控制逻辑,控制器简单,留出更多芯片空间来实现大容量cache
注重编译的优化
即指实现简单的指令。复杂指令通过简单指令的组合实现
目前常见的精简指令集微处理器包括DEC Alpha、ARC、ARM、AVR、MIPS、PA-RISC、Power ISA(包括PowerPC、PowerXCell)、RISC-V和SPARC等。
扩展阅读
ARM 高级精简指令集机器 (Advanced RISC Machine)
RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构
Last updated

