[理工] 关于管线的一个蠢问题

楼主: DoubleFish (他和她的童话故事)   2014-02-21 15:04:05
最近又重复习了pipeline部分
突然冒出一个疑问
可能是问题太蠢了所以爬不到有人问过的文章
只好上来请各位专家释疑
问题:
pipeline架构下
WB阶段会回写Register File所用到的register number
其决定来源为
Instruction的[20:16]rt与[15:11]rd,
以及
Control读入[31:26]op后所产生的RegDst控制信号
这三者在ID阶段都已经产生出来
为何还要都pass到EX阶段才决定出最后的register number
若在ID阶段就先产生出来 那ID/EX register就可以省下 5+1 bits
粗略看起来会在Control产生信号后多一个Mux的时间
难道是因为Control+Mux的时间会>Register File access time
所以才舍弃的嘛@@?
但pipeline架构里通常是由其他存取时间更长的stage来决定cycle time
这样想上面的理由好像不太合理呀
还请大大们不吝指教
作者: kather (Kather)   2014-02-21 15:21:00
你的问题是想把rt跟rd在ID阶段就生出来 然后把结果给EX?也就是两条线传两串资料变成一条线传一串资料?如果我没有误解你的意思的话 你EX阶段只会剩下"目的地"而不是原本的rt跟rd , 这样的话没办法做EX的forwarding
楼主: DoubleFish (他和她的童话故事)   2014-02-21 15:41:00
谢谢大大解释,不过我看白算盘(e4)的370的Figure4.56为了作Forwarding特别从ID阶段把RsRt的两个值拉到ID/EX中供forwarding使用而原本的rt,rd仍然使用于mux产出rd并未用于forwarding中耶
作者: kather (Kather)   2014-02-21 15:52:00
假设现在没有forwarding unit好了那么你的hazard detection还是需要EX阶段的rt好像怪怪的 应该不是这样 囧

Links booklink

Contact Us: admin [ a t ] ucptt.com