RISC-V处理器结构设计相关知识——01执行阶段数据冲突

执行的指令类型

单周期执行指令:交付功能和写回功能均在流水线的第二级便完成了交付,同时将结果写回regfile。

多周期执行指令:这种指令通常需要多个周期才能完成执行并写回,称为"后交付长流水线指令"

RISCV处理器一般是按顺序派遣、按顺序写回的微架构,在每条指令被进行派遣时,需要检查是否和之前的派遣执行尚未写回的指令存在数据相关性。

1 WAR(写后读)相关性

RISCV处理器一般是按顺序派遣、按顺序写回的微架构,在指令派遣时就已经从寄存器组中读取了源操作数。“后续执行的指令写回regfile操作”不可能发生在“前序执行的指令从Regfile中读取操作数”之前,因此不会发生WAR相关性造成的数据冲突。

2 RAW(读后写)相关性

正在派遣的指令处于流水线的第二级,假设之前派遣的指令(简称前序指令)是单周期执行指令(也处于流水线的第二级写回), 则前序指令肯定已经完成了执行并且将结果写回了Regfile.因此正在派遣的指令不可能产生和前序单周明指令的RAW相关性造成的数据冲突,但是假设之前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才能写回结果,因此正在派遣的指令有可能产生与前序长指令的RAW相关性。

3 WAW (Write-After-Write) 相关性

正在派遣的指令处于流水线的第二级, 假设之前派遣的指令(简称前序指令)是单周期行指令(也处于流水线的第二级写回), 则前序指令肯定已经完成了执行,并且将结果因此正在派遣的指令不可能产生和前序单周期指令的WAW相关性造成的数据冲关但是假设之 前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才回结果,因此正在派遣的指令有可能产生与前序长指令的WAW相关性。

综上,在蜂鸟E200的流水线中,“正在派遣的指令”只可能与“尚未执行完毕的长指令之间产生RAW和WAW相关性。

在这里插入图片描述
摘自:《手把手教你设计CPU——RISCV处理器》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俺是菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值