[理工] 計組_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