1 / 23

Ch.7 記憶體

Ch.7 記憶體. 7.1 記憶體簡介. 使用者想要一個”大又快”的記憶體 impossible 不可能同時滿足兩者 例子 圖書館,書桌,書,人 磁碟、記憶體 (DRAM) 、快取 (SRAM) 、 CPU. 記憶體技術. 標準的存取時間. 每 Mbyte 的價錢 (1997 年 ). SRAM. 5-25 ns. $ 100 - $250. DRAM. 60-120 ns. $ 5 - $10. 磁碟機. 10-20 百萬 ns. $ 0.10 - $0.20. 7.1 記憶體簡介.

mercia
Download Presentation

Ch.7 記憶體

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ch.7記憶體

  2. 7.1 記憶體簡介 • 使用者想要一個”大又快”的記憶體 • impossible • 不可能同時滿足兩者 • 例子 • 圖書館,書桌,書,人 • 磁碟、記憶體(DRAM)、快取(SRAM)、CPU

  3. 記憶體技術 標準的存取時間 每Mbyte的價錢(1997年) SRAM 5-25 ns $ 100 - $250 DRAM 60-120 ns $ 5 - $10 磁碟機 10-20 百萬 ns $ 0.10 - $0.20 7.1 記憶體簡介 區域性原則(principle of locality) : • 時間區域性(Temporal locality) • 時間區域性就是當一筆資料被使用到時,在短時間內此筆資料將會再度被使用到的機會很大 • 空間區域性(Spatial locality) • 當一筆資料被使用到時,此資料附近位址的資料也會被使用到的機會很大 慢 便宜

  4. 7.1 記憶體簡介 階層式記憶體(memory hierarchy)基本架構 : 快 小 貴 較高層次 CPU CACHE RAM DISK 慢 大 便宜 較低層次

  5. 7.2 快取記憶體的基礎概念 區塊(block) : 儲存資訊最小單位 Hit : 處理器需要的資料出現在記憶體層次中的某個區塊裡. Miss : 沒有在較高層次的記憶體中找到需要的資料. Hit ratio : 能在較高層次的記憶體中找到需要資料的比例. Miss ratio : (1 - hit ratio) Hit time: 存取較上層記憶體所花費的時間 Miss penalty: 到較低層次的記憶體尋找並載入到較高層次記憶體的時間

  6. 7.2 快取記憶體的基礎概念 • 快取記憶體(SRAM) v.s. 主要記憶體 (DRAM) • 快取參考(cache reference): 尋到(hit)或誤失(miss) • 處理器要求不存在快取記憶體裡的 Xn • 這個需求會造成誤失 • Xn(區塊) 會由主要記憶體傳入快取記憶體內 • 快取記憶體的寫入 • 間接寫入(write back) v.s. 直接寫入(write through) • 寫入尋到(write hit) v.s. 寫入誤失(write miss) • 此時我們有兩個問題存在: • 我們如何知道資料是否在快取記憶體內? • 如果是的話,我們要如何才能找到這筆資料? 間接寫入(write back) : 寫入時,僅將新值寫入快取的區塊中,當該區塊被替換時,才會寫入到記憶體,硬體製作複雜,效能較高. 直接寫入(write through) : 同時將資料寫入記憶體與快取,可保持兩者資料一致,方法簡單但效能不高,可用寫入緩衝器(write buffer)增加效能. 1

  7. 7.2快取記憶體的基礎概念 • 直接對映 • 將每個主記憶體的位置恰好對應到快取記憶體的一個位置 • 幾乎所有採用直接對映的快取記憶體使用底下的對映方式: • (區塊位址)同餘 (快取記憶體中的區塊數目) • Ex. 學生的座位 • 圖 7.5 顯示初一個採用直接對映的8個字組的快取記憶體。 • 說明介於0與 31的記憶體字元位址對映到相同的快取記憶體位置。 • 主要記憶體中的最低的3個位元用來選取快取記憶體的區塊。 • 最高的2個位元當作標籤。 標籤中包含了位址資訊,可以用來 辨別快取記憶體中的字組是否對應到我們要求的字組。 • 有效位元( valid bit )用來標示快取記憶體內的某個區塊是否 存放著有效的位址。 索引(ndex) V 標籤(tag) 資料(data) 2

  8. 7.2快取記憶體的基礎概念 • 圖 7.5 直接對映 標籤(tag) 2 bit 索引(ndex) 3 bit 3

  9. 7.2快取記憶體的基礎概念 • 範例 • 圖7.6 說明了一個8字組大小, 採用直接對映的快取記憶體如何 • 回應處理器一連串的需求。 • 時間區域性: • 以最近被存取到的字組取代最近較少參考到的字組。 4

  10. 7.2快取記憶體的基礎概念 4

  11. 7.2快取記憶體的基礎概念 • 假設一個 32位元的記憶體, 一個資料儲存量為 2n字組,且 • 每個區域大小為 1 字組的直接對映快取記憶體需要一個大小為 • 32-(n+2)的標籤欄位。 • n個位元用來當作索引 , 2 個位元當作Byte offset , 其餘為標籤. 標籤(其餘) n Byte offset 32-(n+2) n 2 6

  12. 圖 7.7 展示一個參考位址的分割情形

  13. 7.2快取記憶體的基礎概念 • 採用空間區域性 ( spatial locality )的優點 • 使用多重字組的快取記憶體區塊 • 當誤失發生時, 相鄰的多個字組便會被擷取出來 • 其他的字組馬上就會被使用到的機率相當大 • 一個 64 KB快取記憶體區塊包含: • 每個區塊有4個字組 (16 位元組) • 4K 區塊 • 一個 32-位元 位址可解譯為 • 標籤 (16-位元) • 索引 (12-位元) • 區塊偏移量 (2-位元) • 位元組位移量 (2-位元) • 範例 • 64個區塊的快取,區塊大小為16Byte,位元位址1200對映到哪個區塊? 8

  14. 7.2快取記憶體的基礎概念 • 圖 7.10 說明對一個特殊的位址如何找到需要的快取記憶體區塊的方法 9

  15. 7.2快取記憶體的基礎概念 增大區塊miss penalty 會增加! • 誤失率 v.s. 區塊大小 • IF 時間 =快取記憶體存取時間+誤失率 *誤失代價 • 增加區塊大小與問題的關連性 • 誤失所付出的額外的時間代價 勝過大區塊誤失率的減少 10

  16. 7.3 改進快取記憶體的效能 • 區塊置換 • 直接映射(Direct mapped) • 一個記憶體區塊可以放置到快取記憶體一個確切的位置 • 完全關聯式(full associative) • 一個記憶體區塊可和快取記憶體中的任何項目產生關聯 • 要找到一個區塊,必須搜尋所有快取記憶體中的項目 • 集合關聯式(Set associative) • 每個區塊可以放置的位置數目是固定的 • n-way集合關聯式快取 • 一個記憶體中的區塊可以映射至快取記憶體的一個集合中 ,然後此區塊可以放置到集合中的任一個位置。 13

  17. 7.3改進快取記憶體的效能 • 範例 • 圖7.15 顯示出根據直接映射、集合關聯式、完全關聯式的放置方法 • ,來將12個區塊放到快取記憶體的8個區塊中的某個位置。(12 % 8=4) 14

  18. 7.3改進快取記憶體的效能 • 範例 快取的關聯性 • 有三個小容量的快取記憶體,每個都包含4個1個字組的區塊。第一個 • 為完全關聯式,第二個為2-way集合關聯式,第三個為直接映射。給定 • 下面序列的區塊位址:0、8、0、6、8,試找出每種快取結構的誤失數目。 • 解答: • 狀況I. 直接映射 • 5 個誤失 15

  19. 7.3改進快取記憶體的效能 • 解答 (續) • 狀況 II. 2-way 集合關聯式 • 在集合中最久沒有被使用的區塊會被取代 • 4 個誤失 16

  20. 7.3改進快取記憶體的效能 • 解答 (續) • 狀況 III.完全關聯式 • 在集合中最久沒有被使用的區塊會被取代 • 3個誤失 17

  21. 7.3改進快取記憶體的效能 • 圖 7.19 展示一個 4-way集合關聯式的快取記憶體的製作 • 利用索引來選擇包含我們所要尋找的位址的集合 • 這集合中所有區塊的標籤都必須被平行的搜尋過 • 在這個例子中需要4個比較器及4對一的多工器來從4個集合 • 中選擇可能的資料 • 結論 • 增加關聯性程度的好處是通常可以減少誤失率, 可由以上 • 的例子得知 • 關聯式的快取記憶體所需付出的額外成本為比較及延遲 18

  22. 7.3改進快取記憶體的效能 19

  23. 使用多層快取(Multilevel Caches) 假設有一處理器(CPI=1 500Mhz),存取主記憶體的時間為200ns,每個指令的miss rate為5%,若加上第二層快取,這第二層快取無論hit或miss均需20ns的存取時間,並可以減少miss rate到2%,試問此計算機可以快多少? ANS: 500Mhz = 2ns/cycle , 所以主要記憶體的miss penalty = 200/2 = 100 cycles 單一層cache => 總共CPI = 1+5%x100 = 6 (完全不會發生誤失的CPI = 1) 第二層cache hit或miss均需要 20/2 = 10 cycles 兩層式cache => 總共CPI = 1+5%x10+2%x100 = 3.5 效能快了6/3.5 = 1.7倍

More Related