MIPS下CPU和RAM的数据流动情况详解
这是计算机硬件间的数据路径(即数据流动的路径),下面将较详细分析此图:
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的数据流动情况详解相关推荐
- java编程数据溢出问题_Java数据溢出代码详解
Java数据溢出代码详解 发布时间:2020-10-05 15:08:31 来源:脚本之家 阅读:103 作者:Pony小马 java是一门相对安全的语言,那么数据溢出时它是如何处理的呢? 看一段代码 ...
- 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...
- 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...
- 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解
负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...
- Discuz3.数据库数据表字典详解(完整版)
Discuz3.数据库数据表字典详解(完整版) 转自:https://discuzt.cr180.com/discuzcode-db.html pre_common_admincp_cmenu后台菜单 ...
- linux在vi创建文件,Linux下创建文本文件(vi/vim命令使用详解)
vi test.txt 或者 vim test.txt 再或者 touch test.txt vim是vi的升级版,指令更多,功能更强. 下面是收集的vim用法,当在vim里面要实现退出,首先要做的是 ...
- mysql8.0.20 64位安装教程_windows 64位下MySQL 8.0.15安装教程图文详解
先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置 指向my ...
- props传递对象_vue组件中使用props传递数据的实例详解
在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递.父组件通过 props 给子组件下发数据,子组件通过事件给父组件发送消息.看看它们是怎么工作的. 一.基本用法 组件不仅仅是 ...
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...
salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...
最新文章
- Linux上安装dotnetcore2.0
- 鸿蒙os系统被推送,鸿蒙来了!华为大规模推送鸿蒙OS系统,造成网站一度瘫痪...
- pytorch实战案例-手写数字分类-卷积模型——深度AI科普团队
- linux多级反馈队列的实现,多级反馈队列调度算法的实现
- javascript学习之数组的使用一 push pop shift unshift 方法
- MongoDB,无模式文档型数据库简介
- vos3000下载java_昆石VOS3000_2.1.4.0完整安装包及安装脚本
- 音视频处理入门基础知识
- 遗传算法应用--基于遗传算法的神经网络结构改进
- ai怎么做盒子效果图_仅需5步!手把手教你如何用AI绘制3D效果形象
- vue 如何下载 xlsx文件 这里介绍两种 一种是命名文件夹再下载 一种是不命名随机名称下载
- [其他] 月份, 星期英文
- 利用Python将视频文件转成语音文件
- 无线充电产业爆发点到来 概念股迎机遇
- 从 sketch 中获取颜色、字体组件内容
- 在线生成二维码 case
- 基于时频变换的脑波信号(EEG)处理方法
- Dew Lab Studio MtxVec DSP Master Stats Master Data Miner
- STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板
- 三星t5移动硬盘,升级mac系统后,一直提示断开链接
热门文章
- JS制作日历小事件和数码时钟--JavaScript实例集锦(初学)
- CIFAR-10 dataset 的下载与使用
- [NOIP2014]飞扬的小鸟
- Fragment 横竖屏切换问题
- SharePoint 2013 workflow cannot start automatically when you logged in site as a system account
- Delphi IDE使用的一些主要技巧
- MySql命令行基本操作
- 进程的创建与可执行程序的加载
- wchar_t 的输出问题
- 和搜狗输入法快捷键冲突_这款输入法被调教多年不输搜狗,爱了奥里给!