美文网首页
第七讲 存储层次结构(Memory Hierarchy)

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

作者: Lynn_4f26 | 来源:发表于2020-01-13 02:21 被阅读0次

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

1. 存储层次结构概况

  • 外部记录介质R,运算器CA,存储器M

  • 存储器特性:非易失性,可读可写,随机访问,访问时间,容量,价格,功耗...

    CPU 通用寄存器(Byte量级) 更小、更快、单位字节成本更高
    SRAM 高速缓存(KB~MB量级)
    DRAM 主存(MB~GB量级)
    Disk 本地二级存储(GB~TB量级) 更大、更慢、单位字节成本更低

2. DRAM

  • DRAM的基本存储单元(1bit)
    • 电容存在漏电效应,经过一段时间后电容上的电荷会流失,导致所存信息丢失
    • 定期对所有单元进行刷新(refresh),使原来表示逻辑"1"电容上的电荷得到补充,而原来表示逻辑"0"的电容仍保持无电荷状态
  • DRAM的特点
    • 优点:集成度高,功耗较低,价格较低
    • 缺点:速度较慢,定时刷新
  • 现代PC机大多采用DRAM作为主存

3. SRAM

  • SRAM的基本存储单元
    • 6个晶体管,双稳态触发器,无需更新
  • SRAM的特点
    • 优点:速度较快
    • 缺点:集成度低,功耗较大,价格较高
  • 现代CPU中的高速缓存通常用SRAM实现

4. 主存

  • SDRAM的关键性能参数(PC133标准)
    • tRCD(Row to Column Delay):从行选到列选的延迟时间
      • 23T,约1223ns
    • CL(CAS Latency):从列选到数据输出的延迟周期数
      • 23T,约1223ns
    • tRP(RAS Precharge):行预充电(关闭行)的延迟时间
      • 23T,约1223ns
  • SDRAM读操作的典型访问过程


    SDRAM读操作的典型访问过程.png

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低

相关文章

网友评论

      本文标题:第七讲 存储层次结构(Memory Hierarchy)

      本文链接:https://www.haomeiwen.com/subject/imfgactx.html