作者NTUmaki (西木野真姬)
看板Grad-ProbAsk
標題[理工] 計組 多重管線迴圈展開
時間Tue Aug 11 10:33:38 2020
https://i.imgur.com/yfPB5rA.jpg
https://i.imgur.com/V6BQQL0.jpg
我認為排程前後的執行結果應該是不一樣的
如我第一張圖畫的 Memory 示意圖(上面增加、下面減少)
排程前應該會動到s1上面的記憶體區塊
但是排程後 他確實先往下再回算上面的記憶體區塊
這樣兩者應該會錯開一個區塊(排程前會多上面4個、排程後會多下面4個)
不知道哪邊有想錯,還是真的就是不一樣
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.35.73 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1597113220.A.58D.html
1F:推 Alex548291: 那個0應該是綁在一起 沒減到16 08/11 17:18
2F:→ Alex548291: 補充完整一點好了 08/11 17:29
3F:→ Alex548291: 他是只跑4次迴圈 08/11 17:29
4F:→ Alex548291: 因此迴圈跑完s1會變s1-16 08/11 17:29
5F:→ Alex548291: 其中t0存在0(s1) 08/11 17:29
6F:→ Alex548291: 展開後排程 08/11 17:29
7F:→ Alex548291: 他把s1-16往前拉 08/11 17:29
8F:→ Alex548291: 所以後面要加回來(表格clock cycle 5) 08/11 17:29
9F:→ Alex548291: 才能讓t0存到0(s1) 08/11 17:29
10F:→ Alex548291: 不知道這樣你可以理解嗎? 08/11 17:29
11F:→ Alex548291: 講得更直白一點就是 08/11 17:32
12F:→ Alex548291: 展開後的s1就變s1-16了 08/11 17:32
13F:→ Alex548291: 因為題目就說這迴圈就跑4次而已 08/11 17:32
14F:→ NTUmaki: 我看不太懂, 我的意思是 你看我畫的圖 按照排程前的code 08/11 19:17
15F:→ NTUmaki: 他應該是對S1+16、S1+12....那邊做運算 ;但是排程後變 08/11 19:17
16F:→ NTUmaki: 成圖中S1所指的那塊開始往下數四格 08/11 19:17
17F:→ NTUmaki: 他排程 第一個lw抓到的起始位置還是S1 之後三個抓到S1-16 08/11 19:18
18F:→ NTUmaki: 然後你看我畫的圖 他排程前後 第一個迴圈操作的記憶體就 08/11 19:18
19F:→ NTUmaki: 不同了 08/11 19:18
20F:→ NTUmaki: 講簡短一點 我看起來排程前的code是對上面圈起來的地方做 08/11 19:19
21F:→ NTUmaki: 運算;排程後是對下面圈起來的 這樣他們即使跑了4次迴圈 08/11 19:19
22F:→ NTUmaki: 最後還是會錯開一塊 08/11 19:19
23F:推 Alex548291: 我懂你的意思 08/11 19:21
24F:→ Alex548291: 我是覺得他印錯了 08/11 19:21
25F:→ Alex548291: 應該把s1-16那個指令往上寫 08/11 19:21
26F:→ Alex548291: 但老師應該是要表達他等等會把s1-16拉上來 08/11 19:21
27F:→ Alex548291: 反正你把他s1當s1-16去理解就沒問題了 08/11 19:22
28F:→ NTUmaki: Ok 感謝 08/11 19:23
29F:→ Alex548291: 排程前的code你要不要補一下 08/11 19:24
30F:→ Alex548291: 看上面展開的code應該是往下存欸 08/11 19:24
31F:→ Alex548291: 展開前是往上存嗎? 08/11 19:24
32F:→ Alex548291: 喔喔 沒事我懂了 加油 08/11 19:24
33F:→ ti51120: 這兩段的s1不會是一樣的初始值,但執行結果是一樣的 08/13 04:36
嗯嗯嗯 如果是這樣的話就合理
※ 編輯: NTUmaki (110.26.43.209 臺灣), 08/13/2020 09:22:29