→ windwaker112: 因為interleaving 是用多個bank同時讀資料到buffe 09/27 01:30
→ windwaker112: r內來增加平行度,有點像disk的多個讀寫頭同時對 09/27 01:30
→ windwaker112: 多個磁盤讀寫那樣,因為他一次可以讀進4bank的dat 09/27 01:30
→ windwaker112: a再送,所以在4個buffer皆滿(或產生conflict之前) 09/27 01:30
→ windwaker112: 他都可以把data放進buffer區 再花4clock cycle去 09/27 01:30
→ windwaker112: 送(像是上一題練習的(3)) 09/27 01:30
這邊我不太懂的地方就是 既然 bus 頻寬沒有增加
為什麼要等滿了或產生 conflict 才送呢?
上一題的(3)是一次讀一個block (4個bank同時各讀一個word) 我沒有意見
但這個各個 bank 各讀各的 word
讀到一個就應該趕快送一個才對吧?
→ windwaker112: 一旦有ref.與目前buffer的緩衝區位址衝突 就必須s 09/27 01:35
→ windwaker112: tall等到那一輪的"read/write"結束(either four r 09/27 01:35
→ windwaker112: ead or four write)才能放該位址資料到該buffer, 09/27 01:35
→ windwaker112: 可以想成buffer內有資料就是busy 因為他也不能做 09/27 01:35
→ windwaker112: 別的事 09/27 01:35
推 k2shouai: 第二個他後來有講啊 因為後面又提到CPI=1 問題你有hit 09/27 01:43
→ k2shouai: latency, CPI不可能為1. 二個矛盾,所以忽略它前面提到的 09/27 01:44
喔喔ㄛ喔,但應該說 CPI = 1 的情況本身就包含 hit latency 吧?
perfect memory system 指的應該是全部都 hit?
→ windwaker112: 因為他說either four reads or four writes 而且 09/27 01:57
→ windwaker112: 題目很擺明的告訴你會有conflict 算是隱含的說他 09/27 01:57
→ windwaker112: 說會stall的部份 ,但老師上課內容沒提到這部份詳 09/27 01:57
→ windwaker112: 細的操作就是了,但光就課本對interleaving的描述 09/27 01:57
→ windwaker112: 就是addr.來,讀讀讀讀平行4次之後一個個送,這題 09/27 01:57
→ windwaker112: 他雖然不是一次把addr 因此送好送滿是in order as 09/27 01:57
→ windwaker112: they appear on the bus,但就算他一個ref.佔一 09/27 01:57
→ windwaker112: 個cc 他還是有一個前提叫做either four reads or 09/27 01:57
→ windwaker112: four writes限制他不能讀一送一 09/27 01:57
原來如此,那我大概知道題意想說什麼惹
謝謝!
→ windwaker112: 所以"就算"他bus4倍他還是要一次four r/w 09/27 02:20
推 a19930301: 推112的圖,簡單明瞭 09/27 08:53
推薦這篇 https://goo.gl/Ar5JEs 也不錯喔!
※ 編輯: kyuudonut (220.132.251.85), 09/27/2016 11:04:30