美文网首页
第七讲 存储层次结构(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