程序,指令和指令系统的概念
指令系统的评价
(1)完备性:常用指令齐全,编程方便
(2)高效性:程序占主存空间少,运行速度快
(3)规整性:指令和数据使用规则统一简单
(4)兼容性:同一系列的低档计算机的程序能在高档计算机上直接运行,即向后兼容
指令系统的结构层定主要定义了计算机的存储模式,寄存器组织,数据类型,I/O模式,指令类型等信息。
1.存储模式
存储模式的定义包括存储器结构,特殊存储区(堆栈等),数据存储顺序,边界对齐等的确定。
数据存储顺序
边界对齐
所谓边界对其,是指数据存储在地址为2的整数倍(16位字长),4的整数倍(32位字长),或8的整数倍(64位字长)起始的连续存储单元中。当所存数据不能满足此对齐限制要求时,可填充一个或多个空白字节。
在数据未对齐的计算机中,数据的存储将跨两个边界对齐的存储单元,此时读/写一个完整数据需要访问两次存储器(花费两个总线周期)。所以为了简化硬件实现,缩短存储器访问时间,通常选择多字节的数据在主存中存放时满足边界对齐的要求。
堆栈(stack)
计算机主存中堆栈的概念有别于数据结构中堆栈的概念,数据结构中堆和栈是两种不同的数据结构,而计算机主存中所说的堆栈是指类似于数据结构中栈的结构,即后进先出,先进后出的顺序存储结构。
冯·诺伊曼结构和哈佛结构
缺点是指令存储器和数据存储器可能得不到充分利用。
2.寄存器组织(略)
3.数据类型(略)
4.指令类型(略)
5.I/O模式(略)
对所有指令均使用相同位数的二进制数进行编码,例如某计算机的指令系统需要N条指令,若所采用定长编码的方式,所有指令都用n位二进制数进行编码,则应满足关系: N ≤ 2 n N\le2^n N≤2n
对于不同类型的指令操作码用不固定长度的二进制数进行编码
霍夫曼编码算法的内容在数据结构中有详细学习,这里只简单举例介绍:
编码思想:使用频率较高的指令采用较短的位数进行编码,使用频率较低的指令采用较长的位数进行编码,并且较短的指令不能是较长指令的前缀。
特点:霍夫曼编码的结果不是唯一的,但是其平均码长是唯一且在所有编码方式中最优。
缺点:编码长度种类太多,硬件控制器译码电路设计复杂
如图所示,假如对出现概率较大的指令采用3位二进制编码,对出现概率较小的指令采用5位二进制编码,则编码结果和平均码长如下:
对于指令字长度固定的指令系统,为了充分利用指令的二进制位,操作码长度一般随地址码数量多少而变化。