打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
五段式指令流水线

文章目录

机器周期的设置

流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。

注意

  1. 为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。
    即此处应将机器周期设置为100ns。
  2. 理想情况下,每个机器周期(功能段)只消耗一个时钟周期。

步骤

①IF取指
②ID译码&取数
③EX 执行
④M访存
⑤WB写回寄存器

考试中常见的五类指令:

运算类指令、LOAD指令、STORE指令、条件转移指令、无条件转移指令

下面我们对这五个指令进行介绍

常见的五类指令

运算类指令的执行过程

运算类指令

  • IF:根据PC从指令Cache取指令至IF段的锁存器
  • ID:取出操作数至ID段锁存器
  • EX:运算,将结果存入EX段锁存器
  • M:空段
  • WB:将运算结果写回指定寄存器

举例:

运算类指令举例指令的汇编格式功能
加法指令(两个寄存器相加):ADD Rs,Rd(Rs)+(Rd) → Rd
加法指令(寄存器与立即数相加):ADD #996,Rd996+(Rd) → Rd
算数左移指令:SHL Rd(Rd)<<<2 → Rd

注意:

  • Rs指源操作数(source)
  • Rd指目的操作数(destination)

LOAD指令的执行过程

LOAD指令

  • IF:根据PC从指令Cache取指令至IF段的锁存器
  • ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
  • EX:运算,得到有效地址
  • M:从数据Cache中取数并放入锁存器
  • WB:将取出的数写回寄存器

举例:

指令的汇编格式功能
LOAD Rd,996(Rs)(996+(Rs))→Rd
或简写为:LOAD Rd,mem(mem)→Rd

注意:

通常,RISC处理器只有“取数LOAD”和“存数STORE”指令才能访问主存

STORE指令的执行过程

STORE指令

  • IF:根据PC从指令Cache取指令至IF段的锁存器
  • ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
  • EX:运算,得到有效地址。并将锁存器B的内容放到锁存器 Store。
  • M:写入数据Cache
  • WB:空段

举例

指令的汇编格式功能
STORE Rs,996(Rd)Rs → (996+(Rd))
或简写为:STORE Rs,memRs → (mem)

条件转移指令的执行过程

条件转移指令(转移类指令常采用相对寻址)

  • IF:根据PC从指令Cache取指令至IF段的锁存器
  • ID:进行比较的两个数放入锁存器A、B;偏移量放入 Imm
  • EX:运算,比较两个数
  • M:将目标PC值写回PC(左图没画全)
  • WB:空段

举例:

指令的汇编格式功能
beq Rs, Rt, #偏移量若(Rs)==(Rt),则(PC)+指令字长+(偏移量×指令字长)→PC;否则(PC)+指令字长→PC
bne Rs, Rt, #偏移量若(Rs)!=(Rt),则(PC)+指令字长+(偏移量×指令字长)→PC;否则(PC)+指令字长→PC

注意:

注:通常在IF段结束止之后PC就会自动 +“1”

无条件转移指令的执行过程

无条件转移指令(转移类指令常采用相对寻址)

  • IF:根据PC从指令Cache取指令至IF段的锁存器
  • ID:偏移量放入 Imm
  • EX:将目标PC值写回PC(左图没画全)
  • M:空段
  • WB:空段

举例

指令的汇编格式功能
jmp #偏移量(PC)+指令字长+(偏移量×指令字长)àPC

例题

例题.假设某指令流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。若高级语言程序中某赋值语句为x=a+b,x、a和b均为int型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流中的执行过程如下图所示。


则这4条指令执行过程中I3的ID段和I4的IF段被阻塞的原因各是什么?

解答

I3与I1和I2存在数据相关;

I4的IF段必须在I3进入ID段后才能开始,否则会覆盖IF段锁存器的内容

收获

只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
单周期cpu设计与实现
CPU《酷能指令集》及相关专利技术介绍和讨论
arm汇编指令
ARM汇编之寄存器
中断处理流程分析
寄存器间接寻址和相对寻址有什么区别呢?其实很容易理解的
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服