指令系统(考研笔记)

指令系统

一.指令系统概述

程序,指令和指令系统的概念

  • 程序:程序是由一系列有时间顺序,有逻辑关系的指令构成的。
  • 指令:指令是控制计算机硬件完成指定的基本操作的命令(如加减,传送等),指令是用户使用计算机和计算机本身运行的最小功能单位。
  • 指令系统(指令集):能被一台计算机执行的全部指令的集合称为该机的指令系统,也称为指令集。

在这里插入图片描述

指令系统的评价

(1)完备性:常用指令齐全,编程方便
(2)高效性:程序占主存空间少,运行速度快
(3)规整性:指令和数据使用规则统一简单
(4)兼容性:同一系列的低档计算机的程序能在高档计算机上直接运行,即向后兼容

二.指令系统的结构层

指令系统的结构层定主要定义了计算机的存储模式,寄存器组织,数据类型,I/O模式,指令类型等信息。

1.存储模式

存储模式的定义包括存储器结构,特殊存储区(堆栈等),数据存储顺序,边界对齐等的确定。


数据存储顺序

  • 大端存储:大端存储是指将数据的最低有效位存储在相应的高地址单元中,将最高字节的地址作为字地址。
  • 小端存储:小端存储是指将数据的最低有效位存储在相应的低地址单元中,将最低字节的地址作为字地址。

在这里插入图片描述


边界对齐

所谓边界对其,是指数据存储在地址为2的整数倍(16位字长),4的整数倍(32位字长),或8的整数倍(64位字长)起始的连续存储单元中。当所存数据不能满足此对齐限制要求时,可填充一个或多个空白字节。

在数据未对齐的计算机中,数据的存储将跨两个边界对齐的存储单元,此时读/写一个完整数据需要访问两次存储器(花费两个总线周期)。所以为了简化硬件实现,缩短存储器访问时间,通常选择多字节的数据在主存中存放时满足边界对齐的要求。

在这里插入图片描述


堆栈(stack)

计算机主存中堆栈的概念有别于数据结构中堆栈的概念,数据结构中堆和栈是两种不同的数据结构,而计算机主存中所说的堆栈是指类似于数据结构中栈的结构,即后进先出,先进后出的顺序存储结构。

在这里插入图片描述


冯·诺伊曼结构和哈佛结构

  • 冯诺依曼结构规定指令和数据均用二进制表示,并以同等地位混合存放在主存中。其优点是指令和数据可以共享并充分利用主存资源;缺点是不正确的数据可能会对指令造成破坏,导致程序运行异常。
  • 哈佛结构将主存分为指令存储器和数据存储器两个实体,所有程序必须存放在指令存储器的地址空间中,而数据必须存储在数据存储器的地址空间中,其结构与优点如下图:
    在这里插入图片描述

缺点是指令存储器和数据存储器可能得不到充分利用。

2.寄存器组织(略)

3.数据类型(略)

4.指令类型(略)

5.I/O模式(略)

三.指令设计

在这里插入图片描述

1.定长操作码的编码方式

对所有指令均使用相同位数的二进制数进行编码,例如某计算机的指令系统需要N条指令,若所采用定长编码的方式,所有指令都用n位二进制数进行编码,则应满足关系: N ≤ 2 n N\le2^n N2n

2.变长操作码的编码方式

变长操作码也叫扩展操作码
对于不同类型的指令操作码用不固定长度的二进制数进行编码
变长操作码的设计原则如下:

  • (1)如果指令字长固定,则长地址码对应短操作码,操作码长度随地址码长度缩短而增加
  • (2)如果指令字长可变,则以指令使用频度作为设计依据,使用指令频度高的指令用短操作码,频度低的指令用长操作码。(霍夫曼编码)
  • (3)设计总是从短码开始,并要保证短操作码不能是长操作码的前缀(目的是能有效区分)
(1)霍夫曼编码

霍夫曼编码算法的内容在数据结构中有详细学习,这里只简单举例介绍:

编码思想:使用频率较高的指令采用较短的位数进行编码,使用频率较低的指令采用较长的位数进行编码,并且较短的指令不能是较长指令的前缀。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

特点:霍夫曼编码的结果不是唯一的,但是其平均码长是唯一且在所有编码方式中最优。

缺点:编码长度种类太多,硬件控制器译码电路设计复杂

(2)基于特定规则扩展操作码

如图所示,假如对出现概率较大的指令采用3位二进制编码,对出现概率较小的指令采用5位二进制编码,则编码结果和平均码长如下:
在这里插入图片描述

(3)依据地址码数量扩展操作码

对于指令字长度固定的指令系统,为了充分利用指令的二进制位,操作码长度一般随地址码数量多少而变化。
在这里插入图片描述
在这里插入图片描述

四.寻址方式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五.综合例题解析:


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


例5.12(西电计组课后题)某指令操作系统字长16位,有零地址,一地址,二地址,三地址指令格式,每个地址字段均为4位,且三地址指令有L条,二地址指令有M条,零地址指令有N条。若采用定长操作码设计方法,一地址指令最多可以有多少条?若采用扩展操作码设计方法,一地址指令最多可以有多少条?

解答:
(1)第一问:
若采用定长操作码设计方法,则地址码长度应是固定的12位,而操作码长度固定为4位。
操作码数量最多有 2 4 2^4 24条,显然其中一地址码最多有: 2 4 − L − M − N 2^4-L-M-N 24LMN

(2)第二问:

在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值