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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值