4-1MIPS流水线和记分牌

芯片的面积预分配。
流水线的结构风险,
流水线中的每一拍都可能受前一拍影响或者影响到后面的一拍,在流水线处理的过程中,写后写的风险可能存在。
流水线中先写后读的风险比常规出现的概率大得多,而且会真正的影响性能。

R4000系列处理器,体系结构非常成功,但商业市场不是很成功,流水线是8站式流水线,最直观的目的是提高时钟频率(流水线越长,时钟周期越短,现在inter公司的流水线是2级)。
4-1MIPS流水线和记分牌
取指令两级,指令译码、读寄存器一级,运算一级,数据写回(写两级,还有一级校验)三级。
从细节上看它还是个5站流水线(取指令,指令译码,执行,访存(只是访存细分了,因为访存太长)
,写回)。

取指令包括两部分,称之为取指令的的一部分,取指令的第二部分。第一拍,找到一个合适的PC值,然后初始化指令cache,第二拍,从指令cache中把指令取出来,因为有cache所有有两拍。
第三拍,指令译码和访问存储器,这过程要做冒险分析。
执行阶段,包括地址的计算,运算器的运算,分支目标的运算和分支条件的运算。
访存,第一拍成为数据访问,第二拍成为数据访问的第二拍,其中问题最大的是读(因为写的时候往那儿一扔就不管了,大不了后续的工作由cache自动完成,读的话在等结果,需要结果后面来用,检查标志就是把数据先取过来,再看是不是命中,一看没命中,重取,进行标识检查,最后写回寄存器,期间如果彭家Load指令,需要等待两拍,其他指令才能拿到数据,如果是分支指令,需要分支目标地址和条件)。

转移指令成功,成功何不成功允许插入一个延迟槽,一旦出现分支,后面会有好几个空转的周期,但是不是所有机器都允许插延迟槽,延迟槽里的指令是无需执行的,也就是找到一(与延迟槽数量相同)条与分支指令无关的指令;

R4000浮点流水线,有一堆部件,部有件,尾数,尾数加,除法,惩罚,四舍五入,操作数移位,

静态调度最早出现唉60年代,80年代被普及,又称为编译器调度。
动态调度,是指令加载以后,对指令进行调整。
动态调度的优点,静态调度看不出来的相关性,直接扔下动态来弄;简化编译器;动态调度使得机器的硬件和程序之间的关联变得更加稀松。
动态调度的坏处:硬件成本大大增加,增加了复杂性,不好理解,而且还要学。
两种动态调度算法:记分牌和(Tomasuio's算法)托莫索罗算法..
记分牌是采用记分牌调动,记录将来指令执行的所有状态,

你可能感兴趣的:(4-1MIPS流水线和记分牌)