在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12524|回复: 6

关于cpu forwarding技术的问题

[复制链接]
发表于 2014-7-19 15:33:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
假设有两条mips instructions,考虑经典的5级pipeline
add r4,r0,r2 ; r4 = r0+r2
sw r4,0(r1) ; store r4 into addr (0+r1) ;


由于add和sw存在对r4的data hazard 。那么此时cpu是stall两个时钟等add的结果写到r4中,还是forwarding这个r4的结果。
如果forwarding,是在sw的ID/EX 时forwarding,还是要在MEM阶段forwarding?
 楼主| 发表于 2014-7-21 14:01:31 | 显示全部楼层
顶一下。别沉了。。。。
发表于 2014-7-22 12:27:19 | 显示全部楼层
如果有forwarding,当然不会stall. 有forwarding的时候,第一条指令在EX算出结果后,经过pipeline register,在MEM阶段的开始阶段forward给处在EX阶段的下一条,而不必等到其写回register(forwarding的意义就在于此嘛)。BTW,你是学生嘛?这个问题很基础的
 楼主| 发表于 2014-7-23 15:14:24 | 显示全部楼层
回复 3# Schweinshaxen


   当forwarding 自然是不会导致CPU stall的。我的意思是,考虑这个情况

add r4,r0,r2 ; r4 = r0+r2
sw r4,0(r1) ; store r4 into addr (0+r1) ;


由于存在WAW,对于这个情况,考虑5级pipeline,那么cpu是采取stall sw指令的情况,还是采取forwarding技术。


当采取forwarding技术时,
sw指令在EXE阶段的ALU源操作数为 r1 和 #0,因此通过源操作数是判断不到forwarding的条件,但sw的r4寄存器在SW指令ID阶段以及EXE阶段的值不是真正的r4结果(因为ADD来不及更新REG FILE)。


1.pipeline中是否会在sw的EXE阶段将ADD的MEM阶段R4值写到sw在EX/MEM的pipeline reg中?并一直等到sw的MEM阶段作为写入mem的值


2. 但是因为sw指令需要使用这个R4的值是在MEM阶段,也就是说即使在ID阶段和EXE阶段sw指令得到的R4是错误的,但是可以仅在sw的mem阶段再去forwarding这个ADD的R4结果么?
发表于 2014-7-23 19:32:35 | 显示全部楼层
最好是把ADD在EX段的结果bypass到SW的ID段。
这样相当于在EX的最后时刻加了一个mux;如果从MA bypass到EX,则相当于在EX的最开始时刻加了一个mux。从timing来看EX增加的时间是一定的,都是一个mux的时间。但是在EX末尾加mux的好处是EX其他逻辑的timing不变,否则加在EX开始的话,整个EX的所有逻辑timing都会增加mux的时间。

所以一般都是在pipeline register的d端加mux。
发表于 2014-7-24 14:56:19 | 显示全部楼层
lou zhu hao ren yi sheng ping an
发表于 2016-8-22 13:47:05 | 显示全部楼层
回复 4# AveryYoung

1.pipeline中是否会在sw的EXE阶段将ADD的MEM阶段R4值写到sw在EX/MEM的pipeline reg中?并一直等到sw的MEM阶段作为写入mem的值


2. 但是因为sw指令需要使用这个R4的值是在MEM阶段,也就是说即使在ID阶段和EXE阶段sw指令得到的R4是错误的,但是可以仅在sw的mem阶段再去forwarding这个ADD的R4结果么?
    最近在看相关的资料,给出我的粗浅理解:
1>.关于pipeline 是在sw 的EXE step or sw 的MEM阶段将r4 launch to sw,应该都能达到forwarding的结果,具体可能需要看core internal logic implementaion 方式
2>.即使是在sw 的EXE step launch 过去,也不影响的,pipeline会将这个vaule  capture 到 mem step by step.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 16:32 , Processed in 0.032124 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表