体系结构笔记------流水线相关与冲突
五段流水线
这里介绍和分析的流水线是一个五段的精简指令集(RISC)流水线,即每一个程序指令的执行都分为五段来执行(一般情况下每个阶段(周期)占用一个时钟周期)。
阶段划分
取指周期(IF)
这一阶段是将PC(程序计数器指向当前运行指令的下一条指令)中对应地址的指令取出并放入指令寄存器(IR)中,并将PC加四指向下一条要运行的指令。(这里的一条指令占4个字节)
译码与读数周期(ID)
这一阶段是将之前获取到的指令进行译码,同时在指令中可能还有数据,比如指向不同的寄存器,在MIPS指令架构下寄存器共有32个,以一个五位的数据来表示(0~31),在译码的过程中,通过这一编码来获取对应的寄存器中的数据,这一阶段的访存是对通用寄存器组的访问。
计算与执行周期(EX)
在这一阶段是对之前获取的数据进行运算处理,但是不同的指令中含有的数据类型不同,比如有的指令中含有的是寄存器类型的数据,有的含有的是立即数。在这一阶段中主要的操作部件是ALU运算器。根据指令类型与数据类型有以下分类。
存储器访存
可能是寄存器的寻址,或者是寄存器与偏移量的相对寻址,这时候可能需要将有关的立即数进行符号扩展或无符号扩展,使得其与寄存器中的数据位数相同,再交由ALU进行加运算产生有效地址。<