这是计算机硬件间的数据路径(即数据流动的路径),下面将较详细分析此图:

PC(program counter, 程序计数器)是一个用于记录当前计算机正在执行的指令的地址的寄存器(register),当前指令执行完后,PC的值加4(因为一条指令占4个字节),PC指向下一条指令。

PC根据指令地址找到对应的指令后(Read address),指令( Instruction)流向Register File,R-format指令需要读取两个寄存器,I-format指令则需要读取一个。

在执行R-format指令时,Read data 1 与 Read data 2,即两个寄存器的值, 作为ALU(Arithmetic and Logic Unit,算术逻辑单元)的inputs;在执行I-format指令时,一个input来自经过Sign-extend后的常量。

在执行Beq(branch if equal)或Bne(Branch if not equal)时,若需要branch,PC的值需要被替换为Branch target的地址,Branch target的地址经过红框内的步骤后计算出

(branch target address = (PC+4)+ offset_value*4)。

在执行lw(load word)指令时,根据ALU计算出来的地址值访问对应的Data Memory 单元,获取存在该单元里的数据,存到Register File中;在执行R-format时,直接将ALU的计算结果存到Register File中(Write data)。

转载于:https://www.cnblogs.com/liuyongdun/p/7040026.html

MIPS下CPU和RAM的数据流动情况详解相关推荐

  1. java编程数据溢出问题_Java数据溢出代码详解

    Java数据溢出代码详解 发布时间:2020-10-05 15:08:31 来源:脚本之家 阅读:103 作者:Pony小马 java是一门相对安全的语言,那么数据溢出时它是如何处理的呢? 看一段代码 ...

  2. 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  3. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  4. 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解

    负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...

  5. Discuz3.数据库数据表字典详解(完整版)

    Discuz3.数据库数据表字典详解(完整版) 转自:https://discuzt.cr180.com/discuzcode-db.html pre_common_admincp_cmenu后台菜单 ...

  6. linux在vi创建文件,Linux下创建文本文件(vi/vim命令使用详解)

    vi test.txt 或者 vim test.txt 再或者 touch test.txt vim是vi的升级版,指令更多,功能更强. 下面是收集的vim用法,当在vim里面要实现退出,首先要做的是 ...

  7. mysql8.0.20 64位安装教程_windows 64位下MySQL 8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向my ...

  8. props传递对象_vue组件中使用props传递数据的实例详解

    在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递.父组件通过 props 给子组件下发数据,子组件通过事件给父组件发送消息.看看它们是怎么工作的. 一.基本用法 组件不仅仅是 ...

  9. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...

    salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...

最新文章

  1. Linux上安装dotnetcore2.0
  2. 鸿蒙os系统被推送,鸿蒙来了!华为大规模推送鸿蒙OS系统,造成网站一度瘫痪...
  3. pytorch实战案例-手写数字分类-卷积模型——深度AI科普团队
  4. linux多级反馈队列的实现,多级反馈队列调度算法的实现
  5. javascript学习之数组的使用一 push pop shift unshift 方法
  6. MongoDB,无模式文档型数据库简介
  7. vos3000下载java_昆石VOS3000_2.1.4.0完整安装包及安装脚本
  8. 音视频处理入门基础知识
  9. 遗传算法应用--基于遗传算法的神经网络结构改进
  10. ai怎么做盒子效果图_仅需5步!手把手教你如何用AI绘制3D效果形象
  11. vue 如何下载 xlsx文件 这里介绍两种 一种是命名文件夹再下载 一种是不命名随机名称下载
  12. [其他] 月份, 星期英文
  13. 利用Python将视频文件转成语音文件
  14. 无线充电产业爆发点到来 概念股迎机遇
  15. 从 sketch 中获取颜色、字体组件内容
  16. 在线生成二维码 case
  17. 基于时频变换的脑波信号(EEG)处理方法
  18. Dew Lab Studio MtxVec DSP Master Stats Master Data Miner
  19. STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板
  20. 三星t5移动硬盘,升级mac系统后,一直提示断开链接

热门文章

  1. JS制作日历小事件和数码时钟--JavaScript实例集锦(初学)
  2. CIFAR-10 dataset 的下载与使用
  3. [NOIP2014]飞扬的小鸟
  4. Fragment 横竖屏切换问题
  5. SharePoint 2013 workflow cannot start automatically when you logged in site as a system account
  6. Delphi IDE使用的一些主要技巧
  7. MySql命令行基本操作
  8. 进程的创建与可执行程序的加载
  9. wchar_t 的输出问题
  10. 和搜狗输入法快捷键冲突_这款输入法被调教多年不输搜狗,爱了奥里给!