其他分享
首页 > 其他分享> > RISC-V处理器结构设计相关知识——01执行阶段数据冲突

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

作者:互联网

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处理器》

标签:执行,01,前序,RISC,指令,相关性,流水线,派遣,结构设计
来源: https://blog.csdn.net/qq_33766313/article/details/111100795