【408精华知识】指令周期的数据流

在这里插入图片描述

文章目录

  • 一、取指周期
  • 二、间址周期
  • 三、执行周期
    • (一)数据传送类指令(mov/load/store)
    • (二)运算类指令(加/减/乘/除/移位/与/或)
    • (三)转移类指令(jmp/jxxx)
  • 四、中断周期

CPU每取出并且执行一条指令所需要的全部时间称为指令周期,指令周期通常包括取指周期、间址周期、执行周期、中断周期,有的指令可能不包含间址周期或者中断周期。
数据流是根据指令要求依次访问的数据序列。在指令执行的不同阶段,要求依次访问的数据序列是不同的。而且对于不同的指令,它们的数据流往往也是不同的。

·对于无条件转移指令JMPX,在执行时不需要访问主存,只包含取指阶段(包括取指和分析)和执行阶段,所以其指令周期仅包含取指周期和执行周期。
·对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存,取出操作数,所以还需包括间址周期。间址周期介于取指周期和执行周期之间。
·当 CPU采用中断方式实现主机和 I/O 设备的信息交换时,CPU 在每条指令执行结束前,都要发中断查询信号,若有中断请求,则CPU 进入中断响应阶段,也称中断周期。

为了有一个具象的认知,大家在看下面的数据流分析时可以参考这张计算机系统结构模型图
在这里插入图片描述

一、取指周期

取值周期的作用是根据PC中的内容从主存中取出指令代码并且存放在IR中,取指令的同时,PC值+1。

数据流如下:
1.PC—>内部总线—>MAR—>地址总线—>存储器,PC—>PC+1
解读:PC中存储的是要执行的指令的地址,首先通过内部总线将该地址传送到MAR中,然后MAR通过地址总线将地址传送给存储器。

2.CU发出读命令—>控制总线—>存储器
解读:CU通过控制总线将读命令传递给存储器,存储器从而开始读取数据。

3.主存—>数据总线—>MDR—>内部总线—>IR
解读:主存将读取到的数据通过数据总线传送给MDR,MDR通过内部总线传送给IR,暂存指令。

4.CU发出控制信号—>PC值+1
解读:CU发出控制信号,PC值加1

5.根据OP(IR),CU对执行周期所需的部件发出控制信号
解读:OP(IR)表示取出IR中存放的指令字的指令码字段。

二、间址周期

间址周期的作用是取操作数有效地址。以一次间址为例,将指令中的地址码送到MAR并送至地址总线,此后 CU 向存储器发出读命令,以获取有效地址并存至MDR。

数据流如下:
1.Ad(IR)(或者MDR)—>内部总线—>MAR—>地址总线—>存储器
解读:将指令中的地址码通过内部总线传送给MAR,再通过地址总线传送给存储器。其中,Ad(IR)表示取出IR中存放的指令字的地址字段。

2.CU发出读命令—>控制总线—>存储器
解读:CU通过控制总线将读命令传递给存储器,存储器从而开始读取数据。

3.主存—>数据总线—>MDR
解读:主存将读取到的数据通过数据总线传送给MDR,存放有效地址。

三、执行周期

执行周期的任务是取操作数,并根据IR中的指令字的操作码通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向,对于三类不同的指令,大致可以总结出以下几种不同的数据流向。

(一)数据传送类指令(mov/load/store)

数据传送类指令是一类在计算机中用于将数据从一个地方传送到另一个地方的指令。它们通常用于从内存中读取数据并将其加载到寄存器中,或将寄存器中的数据存储到内存中。数据传送类指令包括MOV、LDR、STR等。其中,MOV指令用于将一个操作数的值复制到另一个操作数中,LDR指令用于将内存中的数据加载到寄存器中,STR指令用于将寄存器中的数据存储到内存中。

数据流有以下几种:
1)寄存器—>寄存器
2)寄存器—>主存
3)主存—>寄存器
4)立即数—>寄存器
5)寄存器—>寄存器
6)寄存器—>寄存器

注意两点:
1.如果涉及到主存,关注读、写主存的数据流:
1)读
地址—>MAR
M(MAR)—>MDR
MDR—>目的地
CU发出读命令—>控制总线—>存储器
2)写
地址—>MAR
数据—>MDR
MDR—>M(MAR)
CU发出写命令—>控制总线—>存储器

2.关注总线占用
由于总线是临界资源,所以要合理安排控制信号。

(二)运算类指令(加/减/乘/除/移位/与/或)

运算类指令是计算机中用于执行算术和逻辑运算的指令。这些指令可以执行加、减、乘、除等数学运算,以及逻辑运算,如与、或、非等。这些指令可以被CPU识别并执行,从而实现程序的运行和计算。在汇编语言中,运算类指令通常以助记符的形式表示,例如ADD、SUB、MUL等。

对于运算类指令,要关注它所使用到的部件,如下:
在这里插入图片描述

(三)转移类指令(jmp/jxxx)

转移类指令用于实现程序流程的跳转。当程序执行到转移类指令时,会根据指令中给出的跳转地址或跳转条件来改变程序执行的顺序,从而实现跳转到指定的代码位置或者循环执行某一段代码。
常见的转移类指令有无条件跳转指令jmp、条件跳转指令jxxx和子程序调用指令等。其中,无条件跳转指令可以直接跳转到目标地址,而条件跳转指令则需要根据条件是否满足来决定是否跳转到目标地址。子程序调用指令则用于在程序中调用其他函数或子程序,执行完毕后再返回到原来的程序位置。

转移类指令最重要的是改变PC值,对于条件转移,要判断是否达到条件,也就是通过cmp计算A-B,生成CF、ZF、OF、SF,根据标志位判断是否转移,如果要转移,注意以下两点:
1)注意指令寻址方式
·相对寻址:PC+偏移值(以字为单位或者以字节为单位)
·直接寻址(少见)

2)注意PC值的变化
·以字节为单位:CISC
·以指令字为单位:RISC

四、中断周期

中断周期的作用是处理中断请求。执行周期结束后,如果CPU检测到中断请求,则进入中断周期,此时需要关中断、保存断
点、修改 PC 值为中断服务程序的入口地址,并转向中断服务程序。假设程序断点存入堆栈中,并用 SP 指示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据。

数据流如下:
1.CU控制将SP减1,SP—>内部总线—>MAR—>地址总线—>存储器
解读:中断周期中的进栈操作是将SP减“I”,这和传统意义上的进栈操作相反,原因是计算机中的堆栈都是向低地址方向增长,所以进栈操作是减“1”而不是加“1”。将SP值保存进存储器中。

2.CU发出写命令—>控制总线—>存储器
解读:CU通过控制总线将写命令传递给存储器,存储器从而开始写数据。

3.PC—>内部总线—>MDR—>数据总线—>主存
解读:将程序断点存入存储器。

4.CU—>PC
解读:将中断服务程序的入口地址写入PC,接下来执行中断服务程序。

:在做题的时候经常能看见这种形式表达的数据流——(a)—>b,其含义是将a部件中存储的内容存入b部件,M(a) 表示存储器a地址存放的内容。

写在后面

这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!

参考资料
[1]王道408教材(2025版)
[2]王道暑期强化讲义

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

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

相关文章

二叉数之插入操作

首先是题目 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效…

AcWing 217:绿豆蛙的归宿 ← 搜索算法

【题目来源】https://www.acwing.com/problem/content/219/【题目描述】 给出一个有向无环的连通图,起点为 1,终点为 N,每条边都有一个长度。 数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点。 绿豆蛙从起…

Kreon: An Efficient Memory-Mapped Key-Value Store for Flash Storage——论文泛读

TOS 2021 Paper 论文阅读笔记整理 问题 持久的键值存储已经成为现代数据处理系统的数据访问路径中的一个主要组件。然而,它们表现出较高的CPU和I/O开销。 基于LSM Tree的键值存储中两个重要的CPU和I/O开销来源是: 在LSM Tree中使用压缩,不…

若依解决使用https上传文件返回http路径问题

若依通过HTTPS请求进行文件上传时却返回HTTP的文件链接地址,主要原因是使用了 request.getRequestURL 获取链接地址。 解决办法: 在nginx配置文件location处加上:proxy_set_header X-Forwarded-Scheme $scheme; 然后代码通过request.getHea…

MobaXterm下载虚拟机SSH链接超时解决(保姆级踩坑)

文章目录 为啥要用MobaXtermMobaXterm下载打开虚拟机ssh链接ssh连接失败排查linux配置windows配置 到这了,什么都干了,怎么还不成功? 更多相关内容可查看 在一个阳光明媚的下午,开启了无限踩坑的旅程 为啥要用MobaXterm 作为小编…

DockerNetwork

Docker Network Docker Network 是 Docker 引擎提供的一种功能,用于管理 Docker 容器之间以及容器与外部网络之间的网络通信。它允许用户定义和配置容器的网络环境,以便容器之间可以相互通信,并与外部网络进行连接。 Docker Network 提供了以…

【ARFoundation自学03】AR Point Cloud 点云(参考点标记)功能详解

和平面识别框架一样 1为XR Origin添加AR Point Cloud Manager组件 然后你的ar应用就具备了点云识别功能,就这么简单 2.可视化这些云点 创建一个美术效果的预制体,人家提供了预设模板 然后拖到仓库(ASSETS)创建预制体&#xff…

满足a==1a==2

网上看到的一道JS面试题,觉得很有意思 觉得很有意思的原因是,这个式子乍看之下是有些反常识的。“a1&&a2”,它的意思似乎是“a在等于1的同时又等于2”,这时我们的第一反应可能就是不成立,一个变量怎么可能同时…

前端 MVC 分层的实践

目录 前言 并未过时的 MVC MVC 的由来 不同版本的 MVC 苹果版本 微软版本 阮一峰版 原生 JS 实现 MVC Model View Controller React 中的 MVC 其他分层 Service format utils 目录 总结 前言 前面我们讲了 JavaScript 面向对象编程,这篇文章我们会…

深度学习——图像分类(CNN)—训练模型

训练模型 1.导入必要的库2.定义超参数3.读取训练和测试标签CSV文件4.确保标签是字符串类型5.显示两个数据框的前几行以了解它们的结构6.定义图像处理参数7.创建图像数据生成器8.设置目录路径9.创建训练和验证数据生成器10.构建模型11.编译模型12.训练模型并收集历史13.绘制损失…

【Text2SQL 经典模型】SQLNet

论文:SQLNet: Generating Structured Queries From Natural Language Without Reinforcement Learning ⭐⭐⭐⭐ Code: SQLNet | paperwithcodeSQLNet| GitHub 一、论文速读 这篇论文强调了一个问题:order-matters problem —— 意思是说,对…

2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(中):订阅智能体OSS实现

传送门: 《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(上):MetaGPT安装、单智能体开发》《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(下)&…

【线段图案】

描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。 输入描述: 多组输入,一个整数(1~100),表示线段长度,即“*”的数量。 输出描述…

是德科技 DSOS054A MSOS054A示波器

产品 带宽 通道数 最大存储器深度 DSOS054A 高清晰度示波器 500 MHz 4 个模拟通道 800 Mpts MSOS054A 高清晰度示波器 500 MHz 4 个模拟通道和 16 个数字通道 800 Mpts Infiniium S 系列示波…

R语言使用 ggscidca包优雅的绘制支持向量机决策曲线

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法,在2006年由AndrewVickers博士创建,我们通常判断一个疾病喜欢使用ROC曲线的AUC值来判定模型的准确性,但ROC曲线通常是通过特异度和敏感度来评价,…

vue项目报错:internal/modules/cjs/loader.js:892 throw err;

前言: vue项目中无法正常使用git,并报错情况。 报错信息: internal/modules/cjs/loader.js:892throw err;^ Error: Cannot find module D:\project\sd_wh_yth_front\node_modules\yorkie\src\runner.js 报错处理: npm install y…

夏天晚上热,早上凉怎么办?

温差太大容易引起感冒 1.定个大概3点的闹钟,起来盖被子。有些土豪可以开空调,我这个咸鱼没有空调。 2.空调调到合适的温度,比如20几度。

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十一)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 18 节) P18《17.ArkUI-状态管理Observed 和 ObjectLink》 第一件事:嵌套对象的类型上加上 Observed 装饰器…

基于网络爬虫技术的网络新闻分析(四)

目录 4.2 系统异常处理 4.2.1 爬虫异常总体概况 4.2.2 爬虫访问网页被拒绝 5 软件测试 5.1 白盒测试 5.1.1 爬虫系统测试结果 5.1.2 中文分词系统测试结果 5.1.3 中文文章相似度匹配系统测试结果 5.1.4 相似新闻趋势展示系统测试结果 5.2 黑盒测试 5.2.1 爬虫系统测…

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上,预测2022今年国赛也会与该模型相关。 1 模型描…