Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >计算机组成原理:第四章 指令系统

计算机组成原理:第四章 指令系统

作者头像
Here_SDUT
发布于 2022-08-11 00:53:16
发布于 2022-08-11 00:53:16
1.8K0
举报

4.1 指令系统的发展与性能要求

4.1.1 指令系统的发展

1. 指令在计算机系统中的地位

  • 是软件和硬件分界面的一个主要标志,硬件设计人员采用各种手段实现它;软件设计人员则利用它编制各种各样的系统软件和应用软件
  • 是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。

2. 指令系统的基本概念

指令: 就是要计算机执行某种操作的命令。从计算机组成的层次结构分为:

  • 微指令:是微程序级的命令,它属于硬件;
  • 宏指令:由若干条机器指令组成的软件指令,它属于软件;
  • 机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算等操作。

一台计算机中所有机器指令的集合,称为这台计算机的指令系统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。

3. 发展情况

  • 复杂指令系统计算机,简称CISC。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。
  • 精简指令系统计算机:简称RISC(Apple的M1),人们又提出了便于VLSI技术实现的精简指令系统计算机。

出现CISC到RISC转变的原因:,2/8现象(只有20%的指令使用率达到80%),控制器设计难度下降

4.1.2 对指令系统性能的要求

  • 完备性: 完备性是指用汇编语言编写各种程序时,指令系统提供的指令足够使用,而不必用软件来实现。采用硬件指令的目的是提高程序执行速度,便于用户编写程序。
  • 有效性: 有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。
  • 规整性: 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
    • 对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;
    • 匀齐性是指:一种操作性质的指令可以支持各种不同的数据类型;
    • 指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。
  • 兼容性: 系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。

4.1.3 低级语言与硬件结构的关系

4.2 指令格式

操作码字段+地址码字段,左边为高位,右边为低位。

4.2.1 操作码

设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码OP表示该指令应进行什么性质的操作。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令,按照操作码长度分为:

  • 等长:指令规整,译码简单,固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。
  • 变长:指令不规整,译码复杂,效率高

4.2.2 地址码

根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。

  • 三地址指令:第一操作数,第二操作数,结果地址(a+b=c;)
  • 二地址指令:第一操作数,第二操作数,结果存在第一操作数下(a+=b;),按照操作数的物理位置不同分为:
    • RR:寄存器-寄存器类型
    • RS:寄存器-存储器类型
    • SS:存储器-存储器类型
  • 单地址指令:第一操作数(a++;)
  • 零地址指令:如停机、清除等控制指令

4.2.3 指令字长度

指令字长度:一条指令字包含二进制代码的位数,即操作码+地址码 机器字长:计算机能直接处理的二进制数据的位数。 按照指令字和机器字长的关系分为:单字长指令(指令字长等于机器)、半字长指令(指令字长等于半个机器)、双字长指令。

指令字长度相等的称为等长指令,随指令功能而异的称为非等长指令。

  • 指令系统中指令采用等长指令的优点:各种指令字长度是相等的,指令字结构简单,且指令字长度是不变的 ;
  • 采用非等长指令的的优点:各种指令字长度随指令功能而异,结构灵活,能充分利用指令长度,但指令的控制较复杂 。

op占7位,可表示的操作数有128条。

只有一行,所以是单字长指令,存在源寄存器和目标寄存器,为二地址指令,为RR型。

op占6位,可表示的操作数有64条。

有两行,所以是双字长指令,存在源寄存器和变址寄存器,为二地址指令,其中,变址寄存器和位移量用于查找主存中的地址,所以为RS型。

4.2.4 指令助记符

由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。 为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。

4.3 操作数类型

地址数据: 地址实际上也是一种形式的数据。(无符号) 数值数据: 计算机中普遍使用的三种类型(定点、浮点和十进制数)的数值数据。 字符数据: 文本数据或字符串,目前广泛使用ASCII码。 逻辑数据: 一个单元中有多位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。

4.4 指令和数据的寻址方式

4.4.1 指令寻址

4.4.2 数据寻址

一般格式:

1. 立即寻址

寻址特征为“#”,表示是立即数寻址,形式地址放的就是操作数,执行时无需访存,立即数以补码的形式表示,A的位数限制了立即数的大小。

2. 直接寻址

有效地址直接放在形式地址处,执行阶段进行一次访存,A决定了操作数的寻址范围,操作数的地址不易修改(要先找到这条指令,然后将指令上的有效地址修改,较为麻烦)

3. 隐含寻址

其中一个操作数的地址隐含在操作码中,另外一个操作数采用直接寻址的方式给出,指令字中少一个地址字段,可以缩短指令字长。

ACC(累加器)在加法中存放被加数/和,在减法中存放被减数/差,在乘法中存放乘积高位,除法中存储被除数/余数,ACC存在与ALU中。

4. 间接寻址

有效地址由形式地址间接提供,分为一次间址,和多次间址,有效地址在主存中的地址存在A中,在主存中找到有效地址后再次访存找到操作数,故执行指令需要两次访存,优点是可以扩大寻址范围(因为EA可以很长),便于编程(操作数修改方便,只要修改EA即可)。

5. 寄存器寻址

有效地址为寄存器编号,直接访问寄存器即可得到操作数,执行阶段不访存,执行速度快,并且寄存器个数有限,可以缩短指令字长。

6. 寄存器间接寻址

有效地址在寄存器中, 操作数在存储器中,执行阶段访存,便于编制循环程序。

7. 基址寻址

采用专用寄存器作基址寄存器(隐式寻址): 计算机内专门设有一个基址寄存器BR,用户使用时不用明显指出该基址寄存器,只要由指令的寻址特征位反映出基址寻址即可。

BR 为基址寄存器,,A为偏移量,实际有效地址为基址+偏移量,可扩大寻址范围,BR 内容由操作系统或管理程序确定,在程序的执行过程中 BR 内容不变,形式地址 A 可变。用户不必考虑自己的程序存在于主存的那个空间区域,有利于多道程序设计。

问:为什么利于多道程序设计? 用户无需考虑程序存放在主存中的哪里,只要指出哪个寄存器作为某个程序的基址寄存器即可,由操作系统或管理程序自动分配。分别用不同的寄存器表示多道程序的基址寄存器,程序执行时用户不知道程序在主存中的位置,也不可修改基址寄存器的内容,确保系统安全可靠地运行。

采用通用寄存器作基址寄存器: 在一组通用寄存器中,由用户指出哪个寄存器用来作为基址寄存器。

由用户指定哪个通用寄存器作为基址寄存器,基址寄存器的内容由操作系统确定,在程序的执行过程中 R_0 内容不变,形式地址 A 可变。

8. 变址寻址

IX 为变址寄存器(专用),通用寄存器也可以作为变址寄存器。可扩大寻址范围,IX 的内容由用户给定,在程序的执行过程中 IX 内容可变,形式地址 A 不变,便于处理数组问题。

为何便于处理数组问题? 答:循环时只要修改寄存器中的内容即可,指令字内存放数组的首地址,只需一个指令就可以完成一次循环操作。如果采用其他的寻址方式,需要不断修改指令字中的形式地址。

9. 相对寻址

A 是相对于当前指令的位移量(可正可负,补码),A 的位数决定操作数的寻址范围,适合程序浮动,广泛用于转移指令。

浮动程序技术是指在多道程序设计的系统中,要求每道程序存放在主存的任何区域都能正确执行,甚至在执行过程中,当程序的存放区域被改变,也要求其执行不受影响。也就是说,程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行。

问:跟随指令改变地址,如何保证操作数的准确性? 偏移量A是不停变化的,随着PC的跳转,A也相应加减,使得PC+A指向的数据不变。

10. 堆栈寻址

若用 SP 表示堆栈指示器,指向栈顶,M_{sp}表示堆栈指示器指定的存储器的单元,A 表示通用寄存器

入栈操作描述为:(A)->M_{sp},(SP-1)->SP,表示先将A中的数据存入到栈顶的存储单元中,然后将SP指针向上移动(堆栈默认栈底地址高,栈顶地址底)

出栈操作描述为:(SP+1)->SP,(M_{sp})->A,表示先将指针向下移动一位,然后将其中的数据放入寄存器A中.

4.5 典型指令

4.5.1 指令的分类

  • 数据传送指令:树妖实现主存和寄存器之间,或者寄存器和寄存器之间的数据传送
    • 一般传送指令:   MOV AX,BX
    • 数据交换指令:   XCHG
    • 堆栈操作指令:   PUSH,POP
  • 运算类指令
    • 算术运算指令: 定点和浮点的算术运算,大型机有向量运算指令
    • 逻辑运算指令:无符号数的位操作,代码的转换、判断及运算
  • 程序控制类指令
    • 程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。
  • 输入和输出指令、字符串处理指令、特权指令、其他指令

4.5.2 基本指令系统的操作

20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。

VLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。

现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。

CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当

4.5.3 RISC

三大最大特点:

  • 选取使用频率最高的一些简单指令,指令条数少;
  • 指令长度固定,指令格式种类少,寻址方式种类少;
  • 只有取数/存数两条指令访问存储器,其余指令的操作都在寄存器中进行。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-4-14 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算机组成原理总结及知识网图
https://download.csdn.net/download/weixin_42104154/14922915
全栈程序员站长
2022/09/05
6181
计算机组成原理总结及知识网图
【计组不挂科】计算机组成第三章< 指令系统 >习题库(选择题&判断题&填空题&填空计算题)(含答案与解析)
A.基址寄存器内容加上形式地址(位移量) B.程序计数器内容加上形式地址 C.变址寄存器内容加上形式地址 D.变址寄存器的内容加上基址寄存器的内容
YY的秘密代码小屋
2024/12/05
2290
【计组不挂科】计算机组成第三章< 指令系统 >习题库(选择题&判断题&填空题&填空计算题)(含答案与解析)
计算机组成原理:第五章 中央处理器
数据寄存器(Data Register,DR)又称数据缓冲寄存器,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。
Here_SDUT
2022/08/11
2.3K0
计算机组成原理:第五章   中央处理器
计算机组成原理 概述
指令以二进制代码的形式事先输入计算机的主存储器,主存里面存贮的不仅有数据还有指令,而且他们的形式都是相同的
onenewcode
2024/01/16
2750
《计算机组成原理》| 第七章 指令系统 知识梳理
   地址不在指令当中,但不代表它没有,能隐含给出,用隐含寻址方式。目的是减少指令长度
Twcat_tree
2022/11/30
3210
《计算机组成原理》| 第七章 指令系统 知识梳理
计算机组成原理面试常见问题总结
本文记录了一些计算机组成原理面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考!
EmoryHuang
2022/08/24
2K0
计算机组成原理面试常见问题总结
计算机组成原理 寻址方式_计算机组成原理寻址方式的判断
一、寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,与硬件结构紧密相关,而且直接影响指令格式和指令功能。分为指令寻址和数据寻址两大类。
全栈程序员站长
2022/11/01
1.6K0
计算机组成原理 寻址方式_计算机组成原理寻址方式的判断
计算机组成与结构 第五版 复习 (二)
层次 R ROM
meihuasheng
2021/03/18
4620
计算机组成与结构  第五版  复习  (二)
计算机组成原理:第三章 存储系统
(1) 半导体存储器:TTL 、MOS,易失 (2) 磁表面存储器:磁头、载磁体 (3) 磁芯存储器:硬磁材料、环状元件 (4) 光盘存储器:激光、磁光材料
Here_SDUT
2022/08/11
2K0
计算机组成原理:第三章 存储系统
计算机组成原理 控制器
内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
onenewcode
2024/01/23
2080
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
在计算机组成原理中,指令系统扮演着至关重要的角色,它是计算机软硬件界面的核心。软件通过指令与硬件进行通信,硬件根据指令执行相应的操作。指令是软件的最底层,是计算机执行任务的基本单位,它们直接驱动硬件进行工作。
苏泽
2024/06/17
3630
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
《计算机组成原理》基础概念笔记整理
2、计数器查询;(优先级设置比较灵活,对故障不敏感,连线及控制部分过程比较复杂。)
全栈程序员站长
2022/08/23
1.5K0
大学课程 | 计算机系统结构
从计算机系统的层次结构角度来看,系统结构是对计算机系统中各级界面的定义及其上下的功能分配。计算机系统的每一级都有自己的系统结构。
Justlovesmile
2021/12/14
2.2K0
大学课程 | 计算机系统结构
计算机组织结构(十三) 指令集:寻址方式和指令格式
📚 文档目录 合集-数的二进制表示-定点运算BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 表示: A: 指令中地址字段的内容 R: 指向寄存器的指令字段的内容 EA: 被访问未知的实际(有效)地址 (X): 存储器位置 X 或者寄存器 X 的内容 立即寻址 (Immediate Addressing) 操作数存在于指令中: 操作数 = A 应用: 定义和使用常数, 或者设置变量的初始值. 优点: 获取操作书不需要访问存
Rikka
2022/01/18
9860
计算机组织结构(十三) 指令集:寻址方式和指令格式
大学课程 | 计算机系统结构精简知识点
rm :尾数的基 re :阶码的基(re =2) m: 尾数长度 (注意其含义) p: 阶码长度 【p表示数的范围大小;尾数的位数m主要影响表示值的精度】
Justlovesmile
2021/12/14
1.4K0
大学课程 | 计算机系统结构精简知识点
计算机组成原理 指令
指令含义:$ (A_1) OP (A_2) ->A_3,A_4=$下一条将要执行指令的地址
onenewcode
2024/01/20
3861
干货!计算机组成原理简介
未名编程
2024/10/12
2440
计算机组成原理期末救急--下
将记录下一条地址的职责交给程序计数器后,那么指令就变成三地址了,随之而来的就是A1,A2能表示的地址范围变大了
大忽悠爱学习
2022/06/01
7930
计算机组成原理期末救急--下
计算机指令考前小记
汇编指令movw 4(%ebp),%ax的RTL语言为:R[ax] <- M[R[ebp]+4]
WuShF
2023/11/13
3840
计算机指令考前小记
博主精心收集的计组重点知识点(一)
答:不一定。有定长指令字机器和不定长指令字机器两种。定长指令字机器中所有指令都一样长,称为规整型指令,目前定长指令字大多是32位指令字。不定长指令字机器的指令有长有短,但每条指令的长度一般都是8的倍数。所以,一个指令字在存储器中存放时,可能占用多个存储单元;从存储器读出并通过总线传输时,可能分多次进行,也可能一次读多条指令。
Regan Yue
2021/09/16
1.5K0
推荐阅读
相关推荐
计算机组成原理总结及知识网图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档