Tomasulo’s Approach

When we issue instructions in-order but execute them out-of-order, RAW, WAR and WAW hazard will emerge. By forcing every instruction to await its operands and track the instructions which  produce those operands, RAW is eliminated. WAR and WAW are attacked by register renaming.

How to accomplish it is depicted in page191 of CAAQA, and the item that must be noticed is all instructions are issued in-order but executed out-of-order.

1.Eliminating WAW hazard:

DIV        F1,F2,F3           ;F2/F3->F1

ADD       F1,F4,F5          ;F4+F5->F1

We know DIV operation takes longer time than ADD’s, and ADD surely will finish before DIV here. Does F1 have the correct value ultimately? We say yes, because these two instructions are issued in-order, and register F1 will first track the result of DIV, and when ADD is issued, F1 will turn to track the result of ADD, so when ADD finishes, it’s result will be stored to F1 with CDB, but when DIV subsequently finishes, it will never influence the value of register F1, because the result can only be stored into a place which is tracking this result. So WAW hazard is eliminated.

2.Eliminating WAR hazard is much easier, unnecessary to post nonsense here.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值