[理工] 计组_p.386

楼主: fmtshk (fmtshk)   2019-09-02 01:40:25
https://i.imgur.com/CbZfsJI.jpg
答案是False
想请问 edge-triggered 是什么意思,以及这题错在哪?
作者: FXW11314 (soukai)   2019-09-02 02:09:00
edge-triggered的意思是在信号改变的瞬间触发动作mips是在0→1的时候执行write,1→0的时候执行read举个例子,考虑这句程式码:addi $1 $1 123则CU会在某个clock从1→0的时候把$1的内容读出来丢给ALU,然后在下一个cycle从0→1的时候写入$1因此从头到尾只需要一个register*只需要一个register file
楼主: fmtshk (fmtshk)   2019-09-02 11:01:00
好像有想起上课讲过@@https://i.imgur.com/V13iNxT.jpg↑这样脑补正确吗?
作者: ok8752665 (dd8752665)   2019-09-02 11:08:00
顺便问一下 那structural hazard也可以这样解吗0→1 做Load/Store 1→0读指令?
作者: FXW11314 (soukai)   2019-09-02 15:07:00
图应该没错,简单来说你可以把register file想像成一个有入口跟出口两扇门的房间,这两扇门不可以同时打开不然资料会错误如果发生需要打开两扇门的情况就要用一些方式解决,MIPS的解决方法是edge triggered,就是一半的时间开放入口一半的时间开放出口有些架构则是用shadow register之类的方式然后structural hazard应该是pipeline类型的问题,张凡上课讲得很模糊,实际上可以再分成两种,第一种是像我刚刚的比喻,假设register file只有一个门,但是在pipeline的情况下有可能发生两个人同时要进来的情况,这是第一种structural hazard也就是张凡上课讲的,多开几个门就好了edge triggered反而解决不了问题第二种就是你讲的状况,但是pipeline里面对register的存取都需要一整个clock cycle所以也没办法分成两半来用,我想应该是这样
作者: ok8752665 (dd8752665)   2019-09-02 16:10:00
所以我问的这种关于memory 的 structural hazard不能靠增加clock cycle time 让它可以在一个clock里面做完吗
作者: mistel (Mistel)   2019-09-02 16:53:00
你有考虑到control unit要怎么设memWrite跟memRead的讯号吗?像lw同时要写跟读,所以你在同一个clock下,MemREAD跟MemWRITE同时打开的情况下,如果再做IF会不会把奇怪的资料弄进memory? 我觉得应该会有问题吧
作者: ok8752665 (dd8752665)   2019-09-02 19:34:00
好吧
作者: antagonism   2019-09-02 23:33:00
Reg file 可设计成clock的前半周期做写 后半周期做读是因为 进出此零件的资料很小 而structure harzard的mem若也如此设计的话 例如sw在ME阶段 其他指令在IF阶段 会造成一个clock cycle过长 因为进出mem的资料可到Gb等级 大大降低pipeline 效能 这样就失去管线化之目的若是lw在ME 其他指令在IF 他们本来就在抢mem来access因此本来就无法solve by延长clock cycle
作者: ok8752665 (dd8752665)   2019-09-03 07:48:00
了解 谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com