概述
指令集:一些指令的集合,每条指令都是直接由CPU硬件执行
指令的表示方法:1.二进制格式 2.物理存储空间组织方式是位、字节、字和多字等
当前的指令字长有:16、32、64位
可变长格式和固定长度格式
绝大多数RISC处理器的每条指令的长度都是固定的,像MIPS处理器每条指令的长度是32位的,X86是不固定的
指令的特点
1.指令的操作十分简单,其操作由操作码编码表示
2.每个操作需要的操作数个数为0-3个不等
2.1 操作数是一些存储单元的地址
2.2 典型的存储单元通常有:主存、寄存器、堆栈和累加器
3.操作数地址隐含表示或显示表示
指令集与计算机的性能关系
指令集结构的分类
一般来说,可以从如下五个因素考虑对计算机指令集结构进行分类,即:
1.在CPU中操作数的存储方法
2.指令中显式表示的操作数个数
3.操作数的寻址方式
4.指令集所提供的操作类型
5.操作数的类型和大小
一般来说,第一个因素是分类的主要依据。下面主要看按照这个怎样进行分类?
CPU中用来存储操作数的存储单元主要有:
堆栈 累加器 一组寄存器
指令中的操作数可以被明确地显式给出,也可以按照某种约定隐式地给出。
堆栈型:把操作数只放在堆栈里,从堆栈中取出源操作数,结果也放到堆栈中,这些数都在栈顶上
累加器型:累加器中保存ALU处理地结果,又可以做下次ALU操作的源操作数。也就是说,对于ALU运算,它的一个操作数默认是累加器中的内容,它的结果也写回累加器中
寄存器型:1.(寄存器-存储器)
2.(寄存器-寄存器)
早期的大多数机器都是采用堆栈型或累加器型指令集结构,但是自1980年以来的大多数机器均采用的是寄存器型指令集结构。主要有两个方面的原因:
1.集成电路技术飞速发展
2.寄存器和CPU内部其它存储单元一样,要比存储器快
3.对编译器而言,有了一套算法,可以更容易有效地分配和使用寄存器
寄存器型指令集按照不同的标准(见上)又可以细分:
寄存器-寄存器型(R-R)
寄存器-存储器型(R-M)
存储器-存储器型(M-M)
前两种比较流行。
随着流水线技术的使用,可以并行执行,指令条数多这个缺点可以被掩盖了
像MIPS和PowerPC这样典型的RISC处理器,他们所使用的就是R-R型指令集系统,而像X86这样的典型的CISC处理器,他们使用的就是R-M型指令集系统