计算机体系结构试验4

计算机系统结构实验4

关于结构冲突

常见的结构冲突

流水线冲突的解决方案
另外一种解决方案是将指令和数据放在不同的地方,考虑我们学过的先行读写栈其实避免了在流水线中的结构冲突

流水过程
LHI指令将立即数加到寄存器32位的高位
ADDUI指令将指令的末尾加上地址偏移量
这样在R2和R3寄存器中保存的是某个基地址,这是为了之后LD指令用寄存器偏移寻址
同时在LD f4,0x0(3)的时候下一条指令中插入了暂停,这属于LOAD-USE导致的数据冲突,解决方法是插入暂停R-stall,我们看到在LD指令MEM结束后,通过数据旁路的形式直接将数据送入了乘法器

在这里插入图片描述
这里ADDD的周期数我们设置的为2,
ADDD f2,f0,f2使用了f0的数据所以在这里还有一个数据旁路的传输方式
ADDI r2,r2,0x8这个地方在mem之前插入了一个暂停,这是为了防止结构冲突,这是第一个结构冲突

这整个指令做的事情就是从两个数组中取数据,放在f0和f4中,之后将其和累加到f2中,程序的结束判断条件是r2中的地址已经到达R3的头部,即已经到达末尾

在这里插入图片描述
这里可以看到是19个周期
在这里插入图片描述

在这里显示了一个循环中由几个STALLS,一共有四个stalls
循环周期是(0x188-0x138)/0x8 就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值