[理工] 100交大 計組

看板Grad-ProbAsk作者 (揪立)時間7年前 (2017/01/31 22:58), 7年前編輯推噓8(8040)
留言48則, 8人參與, 最新討論串4/4 (看更多)
http://i.imgur.com/35JOaYB.jpg
想問一下第七題該怎麼解釋呢? 看不太懂題目QQ http://i.imgur.com/3ybNH0M.jpg
上面那題軟體偵測overflow 想問一下有號數bne一下三個指令要怎麼解釋呢? 還有無號數的nor要怎麼推出2^32-t1-1? 第一次看張凡的書還是不太懂QQ 下面那個lw的時間我算1470耶 為什麼mux只要算一次呀,reg的rt寫入跟ALU的addr這樣不是兩個嗎? PC+4這個地方是每個指令都要算嗎?還是只有beq需要而已? Sign-extend同樣的問題 http://i.imgur.com/a7gfl1Z.jpg
這裡想問一下don't care跟不執行要怎麼判斷 ADD的mem部份基本上是不會執行的,那麼0跟don't care會有什麼差異呢? 下面的Data hazard,6跟7的t4不會發生嗎? 問題有點多,再麻煩各位大大QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.88.28 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1485874701.A.531.html

01/31 23:30, , 1F
第七題的意思是 這段assembly code翻譯有錯 錯在哪 答
01/31 23:30, 1F

01/31 23:30, , 2F
案有四個敘述 哪個是錯誤的原因 選那個
01/31 23:30, 2F

01/31 23:30, , 3F
例如b 意思是說 ra暫存器在這段程式碼的頭尾要做存跟
01/31 23:30, 3F

01/31 23:30, , 4F
取的動作 但題目沒有做所以 這選項指出了一個錯誤 所
01/31 23:30, 4F

01/31 23:30, , 5F
以要選
01/31 23:30, 5F

01/31 23:35, , 6F
dont care只會出現在RegDst 和MemToReg
01/31 23:35, 6F
謝謝A大,但是還是想問一下如果Add的MemRead=1會發生什麼事情呢? 因為Add不會用到Mem這樣會有關係嗎?

01/31 23:37, , 7F
overflow那個主要在比sign bit 相加完後的數字如果跟
01/31 23:37, 7F

01/31 23:37, , 8F
原本數字的sign 不同則overflow,所以t0是sum 和 t1 x
01/31 23:37, 8F

01/31 23:37, , 9F
or ,如果sign bit 不同,則t3之sign就會是1 就比0小
01/31 23:37, 9F

01/31 23:37, , 10F
則會跳到overflow
01/31 23:37, 10F

01/31 23:40, , 11F
答案有解釋
01/31 23:40, 11F

01/31 23:40, , 12F
而把0 和t1 nor起來就是t1 bar
01/31 23:40, 12F

01/31 23:52, , 13F
謝謝l大解釋,那想再問一下無號數的overflow他給一個2^32
01/31 23:52, 13F

01/31 23:52, , 14F
-1這個是怎麼得到的呢?nor完就會得到的嗎?
01/31 23:52, 14F
※ 編輯: joeboy (42.73.88.28), 01/31/2017 23:57:43

02/01 00:09, , 15F
memRead = 1 就會去讀mem內的值了呀 就可能會出錯
02/01 00:09, 15F

02/01 00:10, , 16F
至於會讀什麼 讀到哪 就要看你add的機器碼切成I type長怎
02/01 00:10, 16F

02/01 00:10, , 17F
02/01 00:10, 17F

02/01 00:38, , 18F
可是我讀了之後,後面的多工器是設定讓ALUresult過,這樣
02/01 00:38, 18F

02/01 00:38, , 19F
也不行嗎?
02/01 00:38, 19F

02/01 04:18, , 20F
其實是可以X的但課本直接看有無讀取memory來判斷
02/01 04:18, 20F

02/01 04:19, , 21F
所以就依照課本寫
02/01 04:19, 21F

02/01 07:46, , 22F
memRead = 1的話也許會多浪費時間?
02/01 07:46, 22F

02/01 07:46, , 23F
保證不浪費時間的話設0也許是最保險的,我猜拉
02/01 07:46, 23F

02/01 08:45, , 24F
pipeline 中 read不read 時間上應該是一樣的
02/01 08:45, 24F

02/01 08:49, , 25F
我還是背下來好了,反正don't care 只有兩個
02/01 08:49, 25F

02/01 08:49, , 26F
話說下面的data hazard有人知道嗎
02/01 08:49, 26F

02/01 09:04, , 27F
don't care 的原因是因為 一般regdst 和memtoreg
02/01 09:04, 27F

02/01 09:05, , 28F
都是「最後」才傳送signal 也沒問題
02/01 09:05, 28F

02/01 09:06, , 29F
發想來源是從Multi cycle 的data path 圖可以看出
02/01 09:06, 29F

02/01 09:07, , 30F

02/01 09:07, , 31F
你可以從這張圖看到 Control Unit 與 regdst 以及
02/01 09:07, 31F

02/01 09:08, , 32F
memtoreg是平行的,這可以理解成 control unit 需要
02/01 09:08, 32F

02/01 09:09, , 33F
delay time , 因此無法在此時傳輸regdst or memtoreg
02/01 09:09, 33F

02/01 09:10, , 34F
也可以理解成在multicycle中其實只要在寫回之前
02/01 09:10, 34F

02/01 09:10, , 35F
再傳送即可
02/01 09:10, 35F

02/01 09:11, , 36F
回到BEQ 為何對此兩種 signal don't care
02/01 09:11, 36F

02/01 09:11, , 37F
因為它根本不需要Write back 意思是
02/01 09:11, 37F

02/01 09:12, , 38F
「它根本不需要用到regdst or memtoreg 即可完成beq
02/01 09:12, 38F

02/01 09:13, , 39F
這部分我印象張凡沒講,聖經本也對multicycle沒有琢
02/01 09:13, 39F

02/01 09:13, , 40F
磨,是我自己當初看multi cycle data path 理解的
02/01 09:13, 40F

02/01 09:35, , 41F
想問一下k大這裡的平行說的是什麼意思呢?訊號嗎
02/01 09:35, 41F

02/01 09:37, , 42F
摁.. 以這張圖來說,你會看到control unt 和其他兩個
02/01 09:37, 42F

02/01 09:38, , 43F
mux 都在同一條直線上 ,我剛剛說的不太好
02/01 09:38, 43F

02/01 09:53, , 44F
謝謝k大,我再琢磨一下
02/01 09:53, 44F

02/01 10:31, , 45F
稍微想了一下,Pipeline beq也不會使用這兩個signal
02/01 10:31, 45F

02/01 10:32, , 46F
就不用特意繞到multicycle去想了
02/01 10:32, 46F

02/01 16:27, , 47F
6是sw 6,7的t4連data dependency都沒有
02/01 16:27, 47F

02/02 20:30, , 48F
為什麼sw不會有dependency
02/02 20:30, 48F
文章代碼(AID): #1OaAODKn (Grad-ProbAsk)
文章代碼(AID): #1OaAODKn (Grad-ProbAsk)