栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【五级流水线CPU】—— 5. 转移指令(14条)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【五级流水线CPU】—— 5. 转移指令(14条)

转移指令(14)

一共14条指令,分为两类:

  • 跳转指令(绝对转移):jr、jalr、j、jal
  • 分支指令(相对转移):b、bal、beq、bgez、bgezal、bgtz、blez、bltzal、bne
1. 延迟槽

不MEM进行判断,直接在译码阶段进行判断

在流水线译码阶段进行转移判断,并且转移发生,那么会有1条无效指令,导致浪费了一个时钟周期。为了减少损失,规定转移指令后面的指令位置为“延迟槽”,延迟槽中的指令被称为“延迟指令”。延迟指令总是被执行,与转移发生与否没有关系。

2. 转移分支指令 2.1 分析

主要修改两个地方:
(1) 译码阶段增加转移判断
(2) PC的取值变为三种情况:
情况一:PC=PC+4
情况二:PC不变(流水线暂停时)
情况三:PC为转移判断的结果(转移指令,满足转移条件)

相对应在系统结构图里,若满足转移条件,ID模块branch_target_address_o给出转移地址送PC;同时,设置next_inst_in_delayslot_o,表示下一条是延迟槽指令,经过一个周期,通过ID/EX模块送回ID模块

2.2 测试8 转移指令

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号