第七講 存儲(chǔ)層次結(jié)構(gòu)(Memory Hierarchy)

內(nèi)容要點(diǎn):高速緩存,主存

1. 存儲(chǔ)層次結(jié)構(gòu)概況

  • 外部記錄介質(zhì)R,運(yùn)算器CA,存儲(chǔ)器M

  • 存儲(chǔ)器特性:非易失性,可讀可寫,隨機(jī)訪問(wèn),訪問(wèn)時(shí)間,容量,價(jià)格,功耗...

    CPU 通用寄存器(Byte量級(jí)) 更小、更快、單位字節(jié)成本更高
    SRAM 高速緩存(KB~MB量級(jí))
    DRAM 主存(MB~GB量級(jí))
    Disk 本地二級(jí)存儲(chǔ)(GB~TB量級(jí)) 更大、更慢、單位字節(jié)成本更低

2. DRAM

  • DRAM的基本存儲(chǔ)單元(1bit)
    • 電容存在漏電效應(yīng),經(jīng)過(guò)一段時(shí)間后電容上的電荷會(huì)流失,導(dǎo)致所存信息丟失
    • 定期對(duì)所有單元進(jìn)行刷新(refresh),使原來(lái)表示邏輯"1"電容上的電荷得到補(bǔ)充,而原來(lái)表示邏輯"0"的電容仍保持無(wú)電荷狀態(tài)
  • DRAM的特點(diǎn)
    • 優(yōu)點(diǎn):集成度高,功耗較低,價(jià)格較低
    • 缺點(diǎn):速度較慢,定時(shí)刷新
  • 現(xiàn)代PC機(jī)大多采用DRAM作為主存

3. SRAM

  • SRAM的基本存儲(chǔ)單元
    • 6個(gè)晶體管,雙穩(wěn)態(tài)觸發(fā)器,無(wú)需更新
  • SRAM的特點(diǎn)
    • 優(yōu)點(diǎn):速度較快
    • 缺點(diǎn):集成度低,功耗較大,價(jià)格較高
  • 現(xiàn)代CPU中的高速緩存通常用SRAM實(shí)現(xiàn)

4. 主存

  • SDRAM的關(guān)鍵性能參數(shù)(PC133標(biāo)準(zhǔn))
    • tRCD(Row to Column Delay):從行選到列選的延遲時(shí)間
      • 23T,約1223ns
    • CL(CAS Latency):從列選到數(shù)據(jù)輸出的延遲周期數(shù)
      • 23T,約1223ns
    • tRP(RAS Precharge):行預(yù)充電(關(guān)閉行)的延遲時(shí)間
      • 23T,約1223ns
  • SDRAM讀操作的典型訪問(wèn)過(guò)程


    SDRAM讀操作的典型訪問(wèn)過(guò)程.png

5. 高速緩存的工作原理

  1. 程序的局部性原理(經(jīng)驗(yàn)性總結(jié))

    • 時(shí)間局部性(Temporal locality):最近被訪問(wèn)的存儲(chǔ)器單元(指令或數(shù)據(jù))很快還會(huì)被訪問(wèn)
    • 空間局部性(Spatial locality):正在被訪問(wèn)的存儲(chǔ)器單元附近的單元很快會(huì)被訪問(wèn)
  2. Cache的基本原理

    1. Cache對(duì)空間局部性的利用

      • 從主存中取回待訪問(wèn)數(shù)據(jù)時(shí),會(huì)同時(shí)取回與位置相鄰的主存單元的數(shù)據(jù)
      • 數(shù)據(jù)塊(block)為單位和主存進(jìn)行數(shù)據(jù)交換
    2. Cache對(duì)時(shí)間局部性的利用

      • 保存近期頻繁被訪問(wèn)的主存單元的數(shù)據(jù)
    3. Cache讀操作過(guò)程示例

      MOV AL, [2011H] # 1.未命中,讀主存地址2010H,分配表項(xiàng)1(倒數(shù)第2位),讀出A1H(倒數(shù)第1位)
      MOV BL, [4011H]# 2.未命中,讀主存地址4011H,分配表項(xiàng)1,覆蓋前面的,讀出B1H
      MOV CL, [3732H]# 3.未命中,讀主存地址3732H,分配表項(xiàng)3,讀出C2H
      MOV DL, [401FH]# 4.命中表項(xiàng)1,讀出BFH
      
      有效位 標(biāo)簽 (數(shù)據(jù))字節(jié)0 字節(jié)1 字節(jié)2 字節(jié)3 ... 字節(jié)15
      表項(xiàng)0 0
      表項(xiàng)1 1 20H
      40H
      A0H
      B0H
      A1H√
      B1H√
      A2H
      B2H
      A3H
      B3H
      ... AFH
      BFH√
      表項(xiàng)2 0 37H C0H C1H C2H√ C3H ... CFH
      表項(xiàng)3 1
      ...
      表項(xiàng)5 0
  1. Cache的寫策略

    • ”Cache命中“時(shí)的寫策略
      • 寫穿透(Write Through):數(shù)據(jù)同時(shí)寫入Cache和主存
      • 寫返回(Write Back):數(shù)據(jù)只寫入Cache,僅當(dāng)該數(shù)據(jù)塊被替換時(shí)才將數(shù)據(jù)寫回主存
    • ”Cache失效“時(shí)的寫策略
      • 寫不分配(Write Non-Allocate):直接將數(shù)據(jù)寫入主存
      • 寫分配(Write Allocate):將該數(shù)據(jù)所在的塊讀入Cache后,再將數(shù)據(jù)寫入Cache
    • (寫返回,寫分配) (寫穿透,寫不分配)
  1. 高速緩存的組織結(jié)構(gòu)


    Cache的訪問(wèn)過(guò)程.png
    1. Average Memory Access Time = Hit Time + Miss Penalty * Miss Rate
    2. Cache Miss 原因:
      • 義務(wù)時(shí)效(Compulsory Miss):無(wú)法有效避免
        • 第一次訪問(wèn)某一數(shù)據(jù)塊
        • 也稱為冷啟失效(Cold Start Miss)
      • 容量失效(Capacity Miss):可通過(guò)增加Cache容量緩解
        • Cache無(wú)法保存程序訪問(wèn)所需的所有數(shù)據(jù)塊
      • 沖突失效(Conflict Miss)
        • 多個(gè)存儲(chǔ)器位置映射到同一Cache位置
    3. Cache的映射策略
      1. 直接映射Cache,二路組相聯(lián)Cache,...
      2. Cache替換算法
        • 隨機(jī)(Random)
          • 硬件隨機(jī)選擇一個(gè)Cache替換
        • 輪轉(zhuǎn)(Round-Robin)
          • 按照預(yù)先設(shè)定的順序依次選擇Cache塊替換
        • 最近最少使用(LRU)
          • 硬件記錄訪問(wèn)歷史信息
          • 選擇距離現(xiàn)在最長(zhǎng)時(shí)間未被訪問(wèn)的Cache塊替換
    4. 存儲(chǔ)容量的計(jì)算
      • K: 2^{10}, M: 2^{20}, G: 2^{30}
      • 內(nèi)部存儲(chǔ)器容量
        • 高速緩存:32KB = 32 * 1024Byte
        • 內(nèi)存:4GB = 4 * 1024^3Byte
      • 外部存儲(chǔ)器容量
        • 優(yōu)盤:4GB = 4 * 1000^3Byte
        • 硬盤:1TB = 1*1000^6Byte
      • 數(shù)據(jù)傳輸率、時(shí)鐘頻率
        • 以太網(wǎng):100Mbps = 100 * 1000^2bits per second
        • CPU主頻:3GHz = 3*1000^3HZ

quiz:

  1. 循環(huán)通常具有很好的空間局部性 & 時(shí)間局部性
  2. 數(shù)組通常具有很好的空間局部性
  3. 64-bit數(shù)據(jù)寬度的DDR-400 SDRAM的峰值帶寬為3.2GB/s,核心時(shí)鐘頻率為200MHz,芯片內(nèi)部采用了2位數(shù)據(jù)預(yù)取技術(shù),其接口頻率是多少?200MHZ
  4. SRAM和DRAM區(qū)別:
    1. DRAM結(jié)構(gòu)比SRAM簡(jiǎn)單
    2. DRAM要刷新,SRAM不要
    3. DRAM功耗比SRAM低
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容