[理工] 計組_p.386

看板Grad-ProbAsk作者 (fmtshk)時間6年前 (2019/09/02 01:40), 編輯推噓11(11036)
留言47則, 5人參與, 6年前最新討論串1/1
https://i.imgur.com/CbZfsJI.jpg
答案是False 想請問 edge-triggered 是什麼意思,以及這題錯在哪? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.96.199 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1567359627.A.AC8.html

09/02 02:09, 6年前 , 1F
edge-triggered的意思是在信號改變的瞬間觸發動作
09/02 02:09, 1F

09/02 02:09, 6年前 , 2F
mips是在0→1的時候執行write,1→0的時候執行read
09/02 02:09, 2F

09/02 02:14, 6年前 , 3F
舉個例子,考慮這句程式碼:
09/02 02:14, 3F

09/02 02:14, 6年前 , 4F
addi $1 $1 123
09/02 02:14, 4F

09/02 02:14, 6年前 , 5F
則CU會在某個clock從1→0的時候把$1的內容讀出來丟給AL
09/02 02:14, 5F

09/02 02:14, 6年前 , 6F
U,然後在下一個cycle從0→1的時候寫入$1
09/02 02:14, 6F

09/02 02:14, 6年前 , 7F
因此從頭到尾只需要一個register
09/02 02:14, 7F

09/02 04:12, 6年前 , 8F
*只需要一個register file
09/02 04:12, 8F

09/02 11:01, 6年前 , 9F
好像有想起上課講過@@
09/02 11:01, 9F

09/02 11:02, 6年前 , 10F

09/02 11:02, 6年前 , 11F
↑這樣腦補正確嗎?
09/02 11:02, 11F

09/02 11:08, 6年前 , 12F
順便問一下 那structural hazard也可以這樣解嗎
09/02 11:08, 12F

09/02 11:08, 6年前 , 13F
0→1 做Load/Store 1→0讀指令?
09/02 11:08, 13F

09/02 15:07, 6年前 , 14F
圖應該沒錯,簡單來說你可以把register file想像成一個
09/02 15:07, 14F

09/02 15:07, 6年前 , 15F
有入口跟出口兩扇門的房間,這兩扇門不可以同時打開不
09/02 15:07, 15F

09/02 15:07, 6年前 , 16F
然資料會錯誤
09/02 15:07, 16F

09/02 15:07, 6年前 , 17F
如果發生需要打開兩扇門的情況就要用一些方式解決,MIP
09/02 15:07, 17F

09/02 15:07, 6年前 , 18F
S的解決方法是edge triggered,就是一半的時間開放入口
09/02 15:07, 18F

09/02 15:07, 6年前 , 19F
一半的時間開放出口
09/02 15:07, 19F

09/02 15:07, 6年前 , 20F
有些架構則是用shadow register之類的方式
09/02 15:07, 20F

09/02 15:58, 6年前 , 21F
然後structural hazard應該是pipeline類型的問題,張凡
09/02 15:58, 21F

09/02 15:58, 6年前 , 22F
上課講得很模糊,實際上可以再分成兩種,第一種是像我
09/02 15:58, 22F

09/02 15:58, 6年前 , 23F
剛剛的比喻,假設register file只有一個門,但是在pipe
09/02 15:58, 23F

09/02 15:58, 6年前 , 24F
line的情況下有可能發生兩個人同時要進來的情況,這是
09/02 15:58, 24F

09/02 15:58, 6年前 , 25F
第一種structural hazard也就是張凡上課講的,多開幾個
09/02 15:58, 25F

09/02 15:58, 6年前 , 26F
門就好了
09/02 15:58, 26F

09/02 15:58, 6年前 , 27F
edge triggered反而解決不了問題
09/02 15:58, 27F

09/02 15:58, 6年前 , 28F
第二種就是你講的狀況,但是pipeline裡面對register的
09/02 15:58, 28F

09/02 15:58, 6年前 , 29F
存取都需要一整個clock cycle所以也沒辦法分成兩半來用
09/02 15:58, 29F

09/02 15:58, 6年前 , 30F
,我想應該是這樣
09/02 15:58, 30F

09/02 16:10, 6年前 , 31F
所以我問的這種關於memory 的 structural hazard不能靠
09/02 16:10, 31F

09/02 16:10, 6年前 , 32F
增加clock cycle time 讓它可以在一個clock裡面做完嗎
09/02 16:10, 32F

09/02 16:53, 6年前 , 33F
你有考慮到control unit要怎麼設memWrite跟memRead的訊號
09/02 16:53, 33F

09/02 16:53, 6年前 , 34F
嗎?
09/02 16:53, 34F

09/02 16:56, 6年前 , 35F
像lw同時要寫跟讀,所以你在同一個clock下,MemREAD跟Mem
09/02 16:56, 35F

09/02 16:56, 6年前 , 36F
WRITE同時打開的情況下,如果再做IF會不會把奇怪的資料弄
09/02 16:56, 36F

09/02 16:56, 6年前 , 37F
進memory? 我覺得應該會有問題吧
09/02 16:56, 37F

09/02 19:34, 6年前 , 38F
好吧
09/02 19:34, 38F

09/02 23:33, 6年前 , 39F
Reg file 可設計成clock的前半週期做寫 後半週期做讀
09/02 23:33, 39F

09/02 23:33, 6年前 , 40F
是因為 進出此零件的資料很小 而structure harzard的
09/02 23:33, 40F

09/02 23:33, 6年前 , 41F
mem若也如此設計的話 例如sw在ME階段 其他指令在IF階
09/02 23:33, 41F

09/02 23:33, 6年前 , 42F
段 會造成一個clock cycle過長 因為進出mem的資料可
09/02 23:33, 42F

09/02 23:33, 6年前 , 43F
到Gb等級 大大降低pipeline 效能 這樣就失去管線化之
09/02 23:33, 43F

09/02 23:33, 6年前 , 44F
目的
09/02 23:33, 44F

09/02 23:37, 6年前 , 45F
若是lw在ME 其他指令在IF 他們本來就在搶mem來access
09/02 23:37, 45F

09/02 23:37, 6年前 , 46F
因此本來就無法solve by延長clock cycle
09/02 23:37, 46F

09/03 07:48, 6年前 , 47F
瞭解 謝謝
09/03 07:48, 47F
文章代碼(AID): #1TR0ABh8 (Grad-ProbAsk)