4.3-高速缓冲存储器

概述

为什么使用cache

  • 避免cpu“空等”现象
  • cpu和主存(dram)的速度差异过大

Cache的工作原理

  • 主存和缓存的编址

image-主存和缓存的编址

  • 命中与未命中
    缓存共有C块
    主存共有M块  M>>C

命中    主存块 调入 缓存
        主存块与缓存块建立了对应关系
        用标记记录与某缓存块建立了对应关系的主存块号
未命中  主存块未调入缓存
        主存块与缓存块未建立对应关系

  • Cache的命中率
cpu预访问的信息在cache 中的比率
命中率与cache的容量和块长有关
一般每块可取4-8个字
块长取一个存取周期内从主存调出的信息长度

CRAY_1  16体交叉  块长取16个存储字
IBM370/168  4体交叉  块长取4个存储字
                        (64位x4=256位)
  • Cache-主存系统的效率

image-主存系统的效率

Cache的基本结构

image-Cache的基本结构

Cache的读写操作

image-Cache的读写操作

写 Cache和主存的一致性

  • 写直达法(Write-through)
    • 写操作时数据既写入cache又写入主存
    • 写操作时间就是访问主存的时间
    • cache块退出时,不需要对主存执行写操作
    • 更新策略比较容易实现
  • 写回法(Write-back)
    • 写操作时只把数据写入cache而不写入主存
    • 当cache数据被替换出去时才写回主存
    • 写操作时间就是访问cache的时间
    • cache块退出时,被替换的块要写回主存,增加了cache的复杂性

Cache的改进

  • 增加cache的级数
    • 片载(片内)cache
    • 片外cache
  • 统一缓存和分立缓存
    • 指令cache
    • 数据cache
    • 与指令执行的控制方式有关
    • 是否流水

Pentium 8K 指令 Cache 8K 数据 Cache
PowerPC620 32K 指令 Cache 32K 数据 Cache

Cache-主存的地址映射

直接映射

image-直接映射

全相联映射

image-全相联映射

组相联映射

image-组相联映射

替换算法

  • 先进先出(FIFO)算法
  • 近期最少使用(LRU)算法
posted @ 2020-04-08 12:44  Quaint  阅读(210)  评论(0编辑  收藏  举报
……