我是靠谱客的博主 拼搏店员,最近开发中收集的这篇文章主要介绍MIPS流水线以及分支延迟和加载延迟概念(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MIPS每条指令(如汇编指令andi t0,t1)的执行分为5个阶段,称为5级流水线,分别的IF,ID,EX,MEM,WB。每个阶段详解为:

IF: Instruction Fetch,取指,根据PC(程序计数器)指示的地址从存储器中取指令并装入到指令寄存器(IR)中,同时PC加4(MIPS每个指令都是定长的4个字节)以获取下一条指令的地址。

ID:Instruction Decode,对IF阶段取的指令译码并读取该指令的源寄存器域(rs)指定的寄存器的内容,MIPS指令结构如下(R-type指令)


EX:Execute,执行或者计算有效地址,根据指令类型分为3中情况:

       (1)如果指令是load/store指令的话,ALU把寄存器内容和偏移量相加得到访存的有效地址,该地址在MEM阶段用

        (2)如果是ALU指令,ALU根据操作码对从寄存器堆中读取的数据进行运

        (3)如果是分支指令,ALU把偏移量和PC指针相加形成转移目标的地址,同时判断分支是否成功

MEM:访存,如果是load指令,将根据前一个cycle计算得到的有效地址从存储器中读取数据。如果是store指令,根据有效地址将那个第二个寄存器中的数据写入存储器中。如果是条件分支指令,如果条件为真,将EX阶段的形成的转移目标地址赋给PC,分支指令执行完毕;否则不进行任何操作。如果指令是运算指令(ALU指令),MEM阶段空闲。

WB:Write Back,数据写回到通用寄存器中,将结果写入寄存器堆,结果可能来自存储器(对于load指令)或者来自ALU(对于ALU指令)。

综合5级流水线的运行如下(实际上ID和WB阶段个需要半个时钟周期即可完成,即MIPS一条指令4个时钟周期完成):

 
MIPS 5级流水线

参考:《see mips run》

             http://book.51cto.com/art/201112/306476.htm

             http://blog.sina.com.cn/s/blog_696b8a5a0100njbq.html

最后

以上就是拼搏店员为你收集整理的MIPS流水线以及分支延迟和加载延迟概念(一)的全部内容,希望文章能够帮你解决MIPS流水线以及分支延迟和加载延迟概念(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部