Re: [理工] 104中央資工 計組

看板Grad-ProbAsk作者 (艾倫小叔愛拉屎)時間8年前 (2017/01/23 19:50), 8年前編輯推噓1(1024)
留言25則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《chadcoco1222 (ha)》之銘言: : http://i.imgur.com/7UhaE0B.jpg
: 想請問這一題 我trace起來怪怪的 : 因為原本的code不是loop跑完才去存值嗎 : 高銘答案給bc 這題trace許久實在兜不出答案 能否有神手能教學一下 萬分感激 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.209.122 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1485172258.A.AED.html

01/23 20:04, , 1F
原本的code應該就是把值load出來加上某個值之後存回去?
01/23 20:04, 1F

01/23 20:05, , 2F
F12是從F10加出來的,F10是從-16(R1)讀出來的,存回去
01/23 20:05, 2F

01/23 20:06, , 3F
也要存-16(R1),不過前面已經有SUBI R1,R1,#32了,
01/23 20:06, 3F

01/23 20:06, , 4F
也就是R1已經被-32了,所以這邊A要填16,最後的結果才
01/23 20:06, 4F

01/23 20:06, , 5F
會是-16
01/23 20:06, 5F

01/23 20:07, , 6F
F16是從F14加出來的,F14是從-24(R1)讀出來的,跟剛剛
01/23 20:07, 6F

01/23 20:08, , 7F
一樣,因為R1被-32了,所以這邊要填8才會是-24
01/23 20:08, 7F

01/23 20:09, , 8F
原原po覺得loop跑完才去存值應該是忘記那個SD是
01/23 20:09, 8F

01/23 20:09, , 9F
branch slot了?BNEZ要在ID階段決定是否要跳,所以安插
01/23 20:09, 9F

01/23 20:10, , 10F
一個不管要不要跳都會執行的指令在BNEZ下方,是為
01/23 20:10, 10F

01/23 20:10, , 11F
branch slot,所以應該還是loop內就會SD了
01/23 20:10, 11F

01/23 20:14, , 12F
那上面Loop程式是做什麼用的呢
01/23 20:14, 12F

01/23 20:15, , 13F
就是還沒loop unrolling前的程式碼,應該拉...
01/23 20:15, 13F

01/23 20:16, , 14F
所以A + (-32) = -16 做還原這樣嗎 有點像 stack point
01/23 20:16, 14F

01/23 20:16, , 15F
er的概念
01/23 20:16, 15F

01/23 20:16, , 16F
好的再次謝謝yu大 剛去問了張凡
01/23 20:16, 16F

01/23 20:17, , 17F
嗯嗯我認為是這樣沒錯
01/23 20:17, 17F

01/23 20:20, , 18F
好的照這樣算出來是BC沒錯 只是我目前還看不出來為什
01/23 20:20, 18F

01/23 20:20, , 19F
麼要這樣 先謝謝你! 我再想一下
01/23 20:20, 19F

01/23 20:24, , 20F
如果是在想為什麼要先SUBI再加回去的話,我的想法是因
01/23 20:24, 20F

01/23 20:24, , 21F
為要避免SUBI跟BNEZ的data hazard,所以把SUBI提前做了
01/23 20:24, 21F

01/23 20:25, , 22F
導致後面那些SD的位址都要加回來
01/23 20:25, 22F

01/23 20:26, , 23F
不不不不是那個問題 是我看不出來這個程式做這件事
01/23 20:26, 23F

01/23 20:26, , 24F
喔喔好的XD
01/23 20:26, 24F

01/23 20:29, , 25F
謝謝啦哈哈!
01/23 20:29, 25F
※ 編輯: AllenPaul (42.73.209.122), 01/23/2017 21:51:11
文章代碼(AID): #1OXUuYhj (Grad-ProbAsk)
文章代碼(AID): #1OXUuYhj (Grad-ProbAsk)