计算机内部执行add指令的过程

news/2024/10/18 12:19:51/

执行指令的示例:

  1. 指令格式:ADD R0,[6]
  2. 指令功能:通用寄存器R0的内容+地址为6的存储单元的内容=运算结果(更新到通用寄存器R0)

第一步:取指(fetch)

  1. 控制器将指令的地址送往存储器
  2. 存储器将给定的地址读出指令内容,送回控制器
    在这里插入图片描述

控制器会发出控制信号将PC(program counter)寄存器中的内容通过内部总线传送到MAR(Memory Address Register)中,MAR将会把地址送到地址总线上,与此同时控制电路会在控制总线上发送相应的控制信号(代表这一次访问存储器的操作是要读数据),这样存储器的MAR寄存器就会收到地址总线上传送来的地址并把它保存下来,存储器中的控制逻辑也会收到控制总线中传送来的控制信号(得知这一次访问操作是读操作),将存储器通过地址译码器就可以查找到对应地址0001存储的内容,并将该存储单元的内容送到MDR(Memory Data Register)寄存器中,然后存储器的控制逻辑会通过控制总线向CPU反馈当前的传输已经准备好了,同时MDR中的内容也会送到数据总线上,随后CPU中的控制电路检测到来自控制总线上准备好的Ready信号,就知道当前数据总线上已经准备好了数据,因此MDR寄存器就会把数据总线上当前传送来的数值保存下来,这就获得了我们所要取的指令,当然仅到如此是不够的,MDR中的内容还必须要传送到指令寄存器(IR)中,当指令的编码已经保存到IR寄存器中时,最后把PC寄存器更新到下一条需要访问的地址,取指阶段到此正式完成

第二步:译码(decode)

  1. 控制器分析指令的操作性质
  2. 控制器向有关部件发出指令所需的控制信号
    在这里插入图片描述

当前的指令寄存器IR中指令编码会送到指令译码部件,指令译码部件根据指令编码很快会发现这是一条加法指令,而且需要把R0和存储器中地址为6的单元的内容相加并把结果存放到R0中,由控制电路据此产生相应的电路信号发送到相关部件中,译码阶段到此完成

第三步:执行(execute)

  1. 控制器从通用寄存器或存储器取出操作数
  2. 控制器命令运算器对操作数进行指令规定的运算
    在这里插入图片描述

首先根据这条指令我们会发现还需要去取操作数,取到一个操作数在存储器中,因此这一步会在MAR中放置要访问的存储器的地址0110(随后过程类似于取指阶段的操作),MAR将地址发送到地址总线,同时控制电路会在控制总线上发送读操作的控制信号,存储器的MAR和控制逻辑会接受到相应的信号,然后查找到对应的地址(0110),对应的内容会送到MDR寄存器,然后控制逻辑会向CPU反馈当前数据已经准备好的信号,然后MDR的内容也就会放置到数据总线上,CPU会接受数据并保存在MDR寄存器中,因为这个数据要进行加法运算,所以控制器会进一步将MDR中的数据传送到ALU(算术逻辑单元)的输入端(目前会暂存到Y寄存器中),这一个操作数现在就准备好了,另一个操作数是放在R0中,因此控制器还会将R0中的数据传送到ALU的另一个输入端(X寄存器),现在两个操作数都准备好了,在控制电路的控制下ALU就会进行运算,将X和Y中的内容执行加法,计算出结果就是00000101,执行阶段到此完成

第四步:回写(write -back)

  1. 将运算结果写入通用寄存器或存储器
    在这里插入图片描述

现在运算结果还在ALU的输出端(Z寄存器)中,控制电路会给出相应的控制信号,将Z寄存器中的内容存放到R0中,R0目前的内容是之前的原操作数(00000011),随后会被新的结果所覆盖,这样我们这个加法运算的结果就已经保存在了R0寄存器中,回写阶段到此完成

然后CPU就会自动执行下一条指令


http://www.ppmy.cn/news/581064.html

相关文章

php 发送邮件 ehlo,SMTP错误:EHLO命令失败:-ERR未知命令

我正在尝试使用此PHP代码发送电子邮件: require("PHPMailer-master/src/PHPMailer.php"); require("PHPMailer-master/src/SMTP.php"); require("PHPMailer-master/src/Exception.php"); $from = "admin@mydomain.com"; $namefrom = …

android 蓝牙耳机 找不到驱动程序,bluetooth外围设备找不到驱动程序现象的解决方法介绍...

很多朋友使用蓝牙手机连接笔记本后会出现在设备管理器出现Bluetooth外围设备无法驱动,手动删除后还会出现的现象。这个问题是有办法解决的。具体问题及详细解决方法如下: 问题描述 使用蓝牙手机连接笔记本后在设备管理器出现Bluetooth外围设备无法驱动&a…

php 邮件 超时,PHPMailer连接超时

我正尝试使用PHPMailer从我的网站发送电子邮件。PHPMailer连接超时 在我的PC上本地尝试它,一切都很顺利。 SERVER -> CLIENT: 220 mail.xxx.it Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Sun, 26 Jan 2014 17:48:16 +0100 CLIENT -> SERVER: EHLO…

2020.9.17丨Chip-seq结果可视化之peak检测(下)

这一部分是使用deeptools对样品进行相关性分析以及主成分分析,同时从peak中去挖掘motif。我使用的工具是MEME-ChIP,MEME是一个工具系列,挖掘motif的工具比较丰富,MEME、DREME、TomTom、MEME-ChIP,其中MEME-ChIP可以同时…

android 代码修改wifi,Android 修改WiFi热点的默认SSID和密码

修改以下代码: fraeworks\base\wifi\java\android\net\wifi下面wifiApConfigStore.Java中的 loadApConfiguration() { .... .... config.preSharedKey in.readUTF(); >修改为希望设置的字符串密码 .... .... } git df frameworks/base/wifi/java/android/net/w…

学科前沿: 儿童型丘脑胶质瘤亚群的独特DNA甲基化特征|文献科普

易点评 儿童恶性星形细胞胶质瘤具有显著的生物学和临床多样性,而这项研究证实了弥漫性胶质瘤中一个以丘脑为主的表观遗传学亚群的存在。作者将表观遗传学和遗传学相结合,通过对大量恶性胶质瘤样本进行全基因组DNA甲基化分析,发现了一组具有E…

【深入UCSC Genome Brower】他山之石

转自:https://mp.weixin.qq.com/s?__bizMzAwMzY4MTYxNw&mid2655752921&idx1&sn159f79dde58d2145c59307e23a06b97a&scene0#wechat_redirect 这是一个神奇的网站:UCSC Genome Brower 有朋友在后台留言让介绍下UCSC Genome Browser&#x…

群体表观遗传差异

群体表观遗传差异 本文为文献阅读笔记,以下内容有个人理解,可能和原文有出入,未经允许,禁转载。 文献:Genetic source of population epigenomic variation Nature Reviews Genetics 2016 影响因子15 用chromatin s…