[理工] 計組 多重管線迴圈展開

作者: NTUmaki (西木野真姬)   2020-08-11 10:33:38
https://i.imgur.com/yfPB5rA.jpg
https://i.imgur.com/V6BQQL0.jpg
我認為排程前後的執行結果應該是不一樣的
如我第一張圖畫的 Memory 示意圖(上面增加、下面減少)
排程前應該會動到s1上面的記憶體區塊
但是排程後 他確實先往下再回算上面的記憶體區塊
這樣兩者應該會錯開一個區塊(排程前會多上面4個、排程後會多下面4個)
不知道哪邊有想錯,還是真的就是不一樣
作者: Alex548291 (ARS·L)   2020-08-11 17:18:00
那個0應該是綁在一起 沒減到16補充完整一點好了他是只跑4次迴圈因此迴圈跑完s1會變s1-16其中t0存在0(s1)展開後排程他把s1-16往前拉所以後面要加回來(表格clock cycle 5)才能讓t0存到0(s1)不知道這樣你可以理解嗎?講得更直白一點就是展開後的s1就變s1-16了因為題目就說這迴圈就跑4次而已
作者: NTUmaki (西木野真姬)   2020-08-11 19:17:00
我看不太懂, 我的意思是 你看我畫的圖 按照排程前的code他應該是對S1+16、S1+12....那邊做運算 ;但是排程後變成圖中S1所指的那塊開始往下數四格他排程 第一個lw抓到的起始位置還是S1 之後三個抓到S1-16然後你看我畫的圖 他排程前後 第一個迴圈操作的記憶體就不同了講簡短一點 我看起來排程前的code是對上面圈起來的地方做運算;排程後是對下面圈起來的 這樣他們即使跑了4次迴圈最後還是會錯開一塊
作者: Alex548291 (ARS·L)   2020-08-11 19:21:00
我懂你的意思我是覺得他印錯了應該把s1-16那個指令往上寫但老師應該是要表達他等等會把s1-16拉上來反正你把他s1當s1-16去理解就沒問題了
作者: NTUmaki (西木野真姬)   2020-08-11 19:23:00
Ok 感謝
作者: Alex548291 (ARS·L)   2020-08-11 19:24:00
排程前的code你要不要補一下看上面展開的code應該是往下存欸展開前是往上存嗎?喔喔 沒事我懂了 加油
作者: ti51120 (豬太郎)   2020-08-13 04:36:00
這兩段的s1不會是一樣的初始值,但執行結果是一樣的

Links booklink

Contact Us: admin [ a t ] ucptt.com