4-1MIPS流水线和记分牌

本文详细解析了R4000系列处理器的流水线结构,探讨了流水线处理过程中的风险,如写后写风险及先写后读风险,并介绍了取指令、指令译码等五个主要阶段的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值