【学习笔记】计算机组成原理(七)

指令系统

在这里插入图片描述

文章目录

  • 指令系统
    • 7.1 机器指令
      • 7.1.1 指令的一般格式
      • 7.1.2 指令字长
    • 7.2 操作数类型和操作类型
      • 7.2.1 操作数类型
      • 7.2.2 数据在存储器中的存放方式
      • 7.2.3 操作类型
    • 7.3 寻址方式
      • 7.3.1 指令寻址
        • 7.3.1.1 顺序寻址
        • 7.3.1.2 跳跃寻址
      • 7.3.2 数据寻址
        • 7.3.2.1 立即寻址
        • 7.3.2.2 直接寻址
        • 7.3.2.3 隐含寻址
        • 7.3.2.4 间接寻址
        • 7.3.2.5 寄存器寻址
        • 7.3.2.6 寄存器(间接)寻址
        • 7.3.2.7 基址寻址
        • 7.3.2.8 变址寻址
        • 7.3.2.9 相对寻址
        • 7.3.2.10 堆栈寻址
    • 7.4 指令格式举例
      • 7.4.1 设计指令时应考虑的各种因素
      • 7.4.2 举例
    • 7.5 RISC技术
      • 7.5.1 RISC的产生和发展
      • 7.5.2 RISC的主要特征
      • 7.5.3 CISC的主要特征
      • 7.5.4 RISC与CISC的比较

7.1 机器指令

计算机就是连续执行每一条机器语句而实现全自动工作的。

  • 把每一条机器语言的语句称为机器指令;

  • 又将全部机器指令的集合称为机器的指令系统 / 指令集。

    指令集就是计算机系统软件和硬件的交界面,软件通过指令系统告诉计算机的硬件做什么操作,计算机的硬件通过指令系统把运算结果和硬件的状态返回给软件。

7.1.1 指令的一般格式

指令是由操作码和地址码两部分组成的
在这里插入图片描述

  • 操作码

    操作码用来指明该指令所要完成的操作。通常,其位数反映了机器的操作种类, 也即机器允许的指令条数,如操作码占7位,则该机器最多包含27=128 条指令

    实际上操作码的作用远远不止反映机器做什么操作,很多机器的指令集当中,操作码还要指出对什么样的数据进行操作,例如IBM360的指令系统当中,同样是加法操作,因为参与加法操作的数据的类型不一样,表示的基值不一样,一个加法指令实际上是八条指令,分别对应了对定点数加法、浮点数加法、在浮点数加法中尾数的基值是二进制还是十六进制等等。
    另外在有些机器的指令集当中,操作码还指出了操作数的寻址方式。

    • 固定长

      • 将操作码集中放在指令字的一个字段内。这种格式便于硬件设计,指令译码时间短,广泛用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。
    • 可变长

      • 操作码长度不固定会增加指令译码和分析的难度,使控制器的设计复杂。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作
        码,从而在满足需要的前提下,有效地缩短指令字长。

        在这里插入图片描述

  • 地址码

    在这里插入图片描述

7.1.2 指令字长

在这里插入图片描述

7.2 操作数类型和操作类型

7.2.1 操作数类型

机器中常见的操作数类型有地址、数字、字符、逻辑数据等。

​ (1)地址

​ 地址实际上也可看做是一种数据,在许多情况下要计算操作数的地址。地址可被认为是一个无符号的整数。

​ (2)数字

​ 计算机中常见的数字有定点数、浮点数和十进制数

​ (3)字符

​ 普遍采用 ASCI 码,还有其他一些字符编码 - 扩展BCD交换码等。

​ (4)逻辑数据

​ 作逻辑运算,此时n个0和1的组合不是被看做算术数字,而是被看做逻辑数。

7.2.2 数据在存储器中的存放方式

在这里插入图片描述

字节编址

在这里插入图片描述

7.2.3 操作类型

  1. 数据传送

    -----
    寄存器寄存器存储器存储器
    目的寄存器存储器寄存器存储器
    例如MOVESTORELOADMOVE
    MOVEMOVE
    PUSHPOP

    置“1”,清“0”

  2. 算术逻辑操作

    加、减、乘、除、增1、减1、求补、浮点运算、十进制运算、与、或、非、异或、位操作、位测试、位清除、位求反

    如 8086ADD SUB MUL DIV INC DEC CMP NEG
    AAA AAS AAM AAD
    AND OR NOT XOR TEST

  3. 移位

    移位可分为算术移位、逻辑移位和循环移位(带进位和不带进位)三种。

    算术移位和逻辑移位分别可实现对有符号数和无符号数乘以2n(左移)或整除以2n(右移)的运算,并且移位操作所需时间远比乘除操作执行时间短,因此,移位操作经常被用来代替简单的乘法和除法运算。

  4. 转移

    (1)无条件转移

    无条件转移不受任何条件约束,可直接把程序转移到下一条需执行指令的地址。

    例如“JMP X"其功能是将指令地址无条件转至X

    (2)条件转移

    在这里插入图片描述

    (3)调用与返回

    在这里插入图片描述

    (4)陷阱(Trap)与陷阱指令

在这里插入图片描述

  1. 输入输出

    并不是每一种指令集都有输入输出指令,如果I/O端口的编址空间被作为内存编址空间的一部分,那么这个指令集就不需要输入输出指令,直接用访问内存的指令就可以对外部设备进行输入输出,如果外部设备有自己的独立地址空间单独编址,就需要单独的输入输出指令对外设进行访问。

    在这里插入图片描述

  2. 其他

    其他包括 等待指令、停机指令、空操作指令、开中断指令、关中断指令、条件码指令 等。

    为了适应计算机的信息管理、数据处理及办公自动化等领域的应用,有的计算机还设有 非数值处理指令 。如字符串传送、字符串比较、字符串查询及字符串转换等。

    在多用户、多任务的计算机系统中,还设有 特权指令 ,这类指令只能用于操作系统或其他系统软件,用户是不能使用的。

    在有些大型或巨型机中,还设有 向量指令 ,可对整个向量或矩阵进行求和、求积运算。

    在多处理器系统中还配有专门的 多处理机指令

7.3 寻址方式

确定本条指令的操作数地址

下一条要执行指令的指令地址

7.3.1 指令寻址

7.3.1.1 顺序寻址

取完一条指令后,顺序的取下一条指令。

( PC ) + 1 → PC

内存单元的编址单位是字节,每一条指令的长度是32位(四个字节),顺序存储每次加的值就是4,

如果指令的长度是64位,则PC+8。

如果指令是可变长度的话,这个1会更加复杂。

7.3.1.2 跳跃寻址

由转移指令给出下一条指令地址

在这里插入图片描述

7.3.2 数据寻址

在这里插入图片描述

7.3.2.1 立即寻址

在这里插入图片描述

7.3.2.2 直接寻址

在这里插入图片描述

7.3.2.3 隐含寻址

在这里插入图片描述

7.3.2.4 间接寻址

在这里插入图片描述

7.3.2.5 寄存器寻址

在这里插入图片描述

7.3.2.6 寄存器(间接)寻址

在这里插入图片描述

7.3.2.7 基址寻址

基址寄存器可采用隐式的和显式的两种。

所谓隐式,是在计算机内专门设有一个基址寄存器BR,使用时用户不必明显指出该基址寄存器,只需由指令的寻址特征位反映出基址寻址即可。

显式是在一组通用寄存器里,由用户明确指出哪个寄存器用做基址寄存器,存放基地址。

  • 采用专用寄存器作为基址寄存器,有效地址是基址寄存器中的内容加上形式地址(形式地址实际上就是一个偏移量)。

在这里插入图片描述

  • 采用通用寄存器作基址寄存器

在这里插入图片描述

7.3.2.8 变址寻址

在这里插入图片描述

在这里插入图片描述

7.3.2.9 相对寻址

在这里插入图片描述

在这里插入图片描述

7.3.2.10 堆栈寻址

在计算机的硬件实现的栈是高地址向低地址方向,即栈顶是低地址,栈底是高地址。

在这里插入图片描述

7.4 指令格式举例

7.4.1 设计指令时应考虑的各种因素

  1. 指令系统的 兼容性

  2. 其他因素

    操作类型 包括指令个数及操作的难易程度

    数据类型 确定哪些数据类型可参与操作

    指令格式 指令字长是否固定操作码位数,是否采用扩展操作码技术地址码位数,地址个数,寻址方式类型

    寻址方式 指令寻址、操作数寻址

    寄存器个数 寄存器的多少直接影响指令的执行时间

7.4.2 举例

  • PDP - 8

    在这里插入图片描述

  • PDP - 11

    在这里插入图片描述

  • IBM 360

在这里插入图片描述

  • Intel8086

    在这里插入图片描述

7.5 RISC技术

7.5.1 RISC的产生和发展

RISC (Reduced Instruction Set Computer ) 精简指令系统计算机

CISC(Complex Instruction Set Computer ) 复杂指令系统计算机

RISC技术 —— 80 - 20 规律

  • 典型程序中80%的语句仅仅使用处理机中20%的指令
  • 执行频度高的简单指令,因复杂指令的存在,执行速度无法提高
  • 能否用20%的简单指令组合不常用的80%的指令功能

7.5.2 RISC的主要特征

  • 选用使用频度较高的一些简单指令复杂指令的功能由简单指令来组合
  • 指令 长度固定、指令格式种类少、寻址方式少
  • 只有 LOAD /STORE 指令访存
  • CPU 中有多个 通用寄存器
  • 采用 流水技术 一个时钟周期内完成一条指令
  • 采用 组合逻辑 实现控制器

7.5.3 CISC的主要特征

  • 系统指令复杂庞大,各种指令使用频度相差大指令
  • 长度不固定、指令格式种类多、寻址方式多
  • 访存 指令 不受限制
  • CPU 中设有 专用寄存器
  • 大多数指令需要 多个时钟周期 执行完毕
  • 采用 微程序 控制器

7.5.4 RISC与CISC的比较

  • RISC更能 充分利用 VLSI 芯片的面积【VLSI芯片:超大规模集成电路(Very Large Scale Integration Circuit)】
  • RISC 更能 提高计算机运算速度
    • 指令数、指令格式、寻址方式少
    • 通用 寄存器多,减少访存次数
    • 采用 组合逻辑比微程序延迟小,缩短CPU周期
    • 便于实现 指令流水
  • RISC 便于设计,可 降低成本,提高 可靠性
  • RISC 不易 实现 指令系统兼容

参考:
教材:计算机组成原理 (唐朔飞).pdf
视频:
https://www.bilibili.com/video/BV1t4411e7LH?p=107&vd_source=a89593e8d33b31a56b894ca9cad33d33

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/333017.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探秘SpringBoot默认线程池:了解其运行原理与工作方式(@Async和ThreadPoolTaskExecutor)

文章目录 文章导图Spring封装的几种线程池SpringBoot默认线程池TaskExecutionAutoConfiguration(SpringBoot 2.1后)主要作用优势使用场景如果没有它 2.1版本以后如何查看参数方式一:通过Async注解--采用ThreadPoolTaskExecutordetermineAsync…

Samtec技术漫谈 | 电动自行车中的传感器和信号传输技术

【摘要/前言】 电动自行车,大家熟悉吗? 今天的话题似乎是可以唤起大家心底骑车的美好回忆,我们也曾骑车探索过大自然和社区,自行车也是我们曾经不可或缺的便捷交通工具。 怀旧思潮的影响,加持科技的进步&#xff0c…

Flask 蓝图路由的模块化开发

基于 Flask 蓝图路由的模块化开发 1. 编程目标 为了提高Flask应用的可维护性和可扩展性,我们通过使用Flask的蓝图(Blueprint)功能,可以将不同的功能模块拆分到独立的文件中,方便后续的开发和维护。 2. 项目结构 项目结构树如下&#xff1…

Uni-App开发 导入(引入)Vant-Weapp组件;支持vue3/vue2版本和微信小程序

文章目录 目录 文章目录 操作流程 小结 概要安装流程技术细节小结 概要 Vant Weapp官网:Vant Weapp - 轻量、可靠的小程序 UI 组件库 准备工作,需要确保自己的电脑上已安装Hbuilde和node 全程操作的环境都需要这些配合才能运行上,可参考作者…

M功能-支付平台(三)

target:离开柬埔寨倒计时-221day 前言 今天周六,但是在柬埔寨还是工作日,想着国内的朋友开始休周末就羡慕呀,记不清在这边过了多少个周六了,多到我已经习惯了。而且今天技术部还停电了,真的是热的受不了呀…

【MATLAB源码-第74期】基于matlab的OFDM-IM索引调制系统不同频偏误码率对比,对比OFDM系统。

操作环境: MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术,它将正交频分复用(OFDM)和索引调制(IM)相结合,以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…

Android 性能为王时代SparseArray和HashMap一争高下

文章目录 一、SparseArray 源码分析1. **类定义和构造函数**2. **基本方法**2.1 put(int key, E value)2.2 get(int key)2.3 delete(int key)2.4 removeAt(int index)2.5 gc()2.6 size()2.7 keyAt(int index) 和 valueAt(int index) 3. **辅助方法**3.1 binarySearch() 二、使用…

【SpringCloud】负载均衡

目录 负载均衡什么是负载均衡生活场景为什么需要负载均衡负载均衡手段负载均衡总的来说有两种实现手段负载均衡具体可以通过多种手段来实现 SpringCloud中的负载均衡组件Ribbon VS Nginx负载均衡区别集中式LB进程内LB RibbonRibbon的工作原理Ribbon在工作时分成两步 使用1.提供…

昔日辉煌不再,PHP老矣,尚能饭否?

导语 | 近期 TIOBE 最新指数显示,PHP 的流行度降至了历史最低,排在第 17 名,同时,在年度 Stack Overflow 开发者调查报告中,PHP 在开发者中的受欢迎程度已经从之前的约 30% 萎缩至现在的 18%。“PHP 是世界上最好的语言…

【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、系统介绍 学生管理模块 教师管理模块 竞赛信息模块 竞赛报名模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的大学生竞赛管理系统,分为管理后台和用户网页端,可以给管理员、学生和教师角色使用,包括学…

【Flutter】Dialog组件PageView组件

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月27日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

如何确保大模型 RAG 生成的信息是基于可靠的数据源?

在不断发展的人工智能 (AI) 领域中,检索增强生成 (RAG) 已成为一种强大的技术。 RAG 弥合了大型语言模型 (LLM) 与外部知识源之间的差距,使 AI 系统能够提供更全面和信息丰富的响应。然而,一个关键因素有时会缺失——透明性。 我们如何能够…

mysql中单表查询的成本

大家好。我们知道MySQL在执行一个查询时,经常会有多个执行方案,然后从中选取成本最低或者说代价最低的方案去真正的执行查询。今天我们来聊一聊单表查询的成本。 那么到底什么是成本呢?这里我们说的成本或者代价是由两方面组成的&#xff1a…

vscode插件-03 PHP

PHP Intelephense 如果php在远程计算机上,要把插件安装在远程,而不是本地。 这个插件,要求php版本大于7,且设置环境变量(好像不一定要设置)。 设置里面搜索php.executablePath,打开setting.js…

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入

解决方案: 我是form表单嵌套表格,里面的el-input输入框,输入第一个值的时候会突然失去焦点,需要再次点击输入框才能正常输入,原因是table的key值,需要改成正常的index即可,如果你是循环的&…

ESP32入门:1、VSCode+PlatformIO环境搭建

文章目录 背景安装vscode安装配置中文 安装Platform IO安装PIO 新建ESP32工程参考 背景 对于刚接触单片机的同学,使用vscodeplatformIO来学习ESP32是最方便快捷的,比IDF框架简单,且比arduino文件管理性能更好。但是platformIO安装较为麻烦&a…

gnocchi学习小结

背景 总结gnocchi 4.4版本gnocchi-metricd工作流程 入口 gnocchi.cli.metricd metricd stop after processing metric默认为0,调servicemanager run MetricdServiceManager __init__ 服务逻辑封装到MetricdServiceManager初始化中 主要由MetricProcessor, Met…

【方法】ZIP压缩文件的密码如何设置和取消?

ZIP是一种常见的压缩文件格式,今天来分享一下,ZIP压缩文件如何设置密码保护,以及如何取消密码,不清楚的小伙伴一起来看看吧! 设置ZIP文件密码: 想要给ZIP压缩包设置密码,需要用到支持ZIP格式的…

香橙派 Kunpeng Pro使用教程:从零开始打造个人私密博客

一、引言 在这个日益互联的世界中,单板计算机已经成为创新和个性化解决方案的重要载体。而在单板计算机领域,香橙派 Kunpeng Pro凭借其强大的性能和灵活的应用潜力,正逐渐吸引着全球开发者和技术爱好者的目光。 作为一款集成了华为的鲲鹏处…

【AD21】文件的整理

当所有文件输出完成后,需要对不同的文件去做一个整理,方便后续工作的交接。 在项目工程文件夹下新建名称为BOM、SMT、PRJ、Gerber和DOC的文件夹。 BOM文件夹存放BOM表发给采购人员。SMT文件夹存放装配图文件和坐标文件发给贴片厂。PRJ文件夹存放工程文件…