第七讲 存储层次结构(Memory Hierarchy)

2020-01-13  本文已影响0人  Lynn_4f26

内容要点:高速缓存,主存

1. 存储层次结构概况

2. DRAM

3. SRAM

4. 主存

5. 高速缓存的工作原理

  1. 程序的局部性原理(经验性总结)

    • 时间局部性(Temporal locality):最近被访问的存储器单元(指令或数据)很快还会被访问
    • 空间局部性(Spatial locality):正在被访问的存储器单元附近的单元很快会被访问
  2. Cache的基本原理

    1. Cache对空间局部性的利用

      • 从主存中取回待访问数据时,会同时取回与位置相邻的主存单元的数据
      • 数据块(block)为单位和主存进行数据交换
    2. Cache对时间局部性的利用

      • 保存近期频繁被访问的主存单元的数据
    3. Cache读操作过程示例

      MOV AL, [2011H] # 1.未命中,读主存地址2010H,分配表项1(倒数第2位),读出A1H(倒数第1位)
      MOV BL, [4011H]# 2.未命中,读主存地址4011H,分配表项1,覆盖前面的,读出B1H
      MOV CL, [3732H]# 3.未命中,读主存地址3732H,分配表项3,读出C2H
      MOV DL, [401FH]# 4.命中表项1,读出BFH
      
      有效位 标签 (数据)字节0 字节1 字节2 字节3 ... 字节15
      表项0 0
      表项1 1 20H
      40H
      A0H
      B0H
      A1H√
      B1H√
      A2H
      B2H
      A3H
      B3H
      ... AFH
      BFH√
      表项2 0 37H C0H C1H C2H√ C3H ... CFH
      表项3 1
      ...
      表项5 0
  1. Cache的写策略

    • ”Cache命中“时的写策略
      • 写穿透(Write Through):数据同时写入Cache和主存
      • 写返回(Write Back):数据只写入Cache,仅当该数据块被替换时才将数据写回主存
    • ”Cache失效“时的写策略
      • 写不分配(Write Non-Allocate):直接将数据写入主存
      • 写分配(Write Allocate):将该数据所在的块读入Cache后,再将数据写入Cache
    • (写返回,写分配) (写穿透,写不分配)
  1. 高速缓存的组织结构


    Cache的访问过程.png
    1. Average Memory Access Time = Hit Time + Miss Penalty * Miss Rate
    2. Cache Miss 原因:
      • 义务时效(Compulsory Miss):无法有效避免
        • 第一次访问某一数据块
        • 也称为冷启失效(Cold Start Miss)
      • 容量失效(Capacity Miss):可通过增加Cache容量缓解
        • Cache无法保存程序访问所需的所有数据块
      • 冲突失效(Conflict Miss)
        • 多个存储器位置映射到同一Cache位置
    3. Cache的映射策略
      1. 直接映射Cache,二路组相联Cache,...
      2. Cache替换算法
        • 随机(Random)
          • 硬件随机选择一个Cache替换
        • 轮转(Round-Robin)
          • 按照预先设定的顺序依次选择Cache块替换
        • 最近最少使用(LRU)
          • 硬件记录访问历史信息
          • 选择距离现在最长时间未被访问的Cache块替换
    4. 存储容量的计算
      • K: 2^{10}, M: 2^{20}, G: 2^{30}
      • 内部存储器容量
        • 高速缓存:32KB = 32 * 1024Byte
        • 内存:4GB = 4 * 1024^3Byte
      • 外部存储器容量
        • 优盘:4GB = 4 * 1000^3Byte
        • 硬盘:1TB = 1*1000^6Byte
      • 数据传输率、时钟频率
        • 以太网:100Mbps = 100 * 1000^2bits per second
        • CPU主频:3GHz = 3*1000^3HZ

quiz:

  1. 循环通常具有很好的空间局部性 & 时间局部性
  2. 数组通常具有很好的空间局部性
  3. 64-bit数据宽度的DDR-400 SDRAM的峰值带宽为3.2GB/s,核心时钟频率为200MHz,芯片内部采用了2位数据预取技术,其接口频率是多少?200MHZ
  4. SRAM和DRAM区别:
    1. DRAM结构比SRAM简单
    2. DRAM要刷新,SRAM不要
    3. DRAM功耗比SRAM低
上一篇下一篇

猜你喜欢

热点阅读