组成原理(五):缓存,辅存

学习重点

  • 程序局部性原理
  • Cache工作原理
  • Cache基本结构
  • Cache读写
    • 读流程
    • 写直达法
    • 写回法
  • Cache改进
  • Cache与主存映射
    • 直接相连
    • 全相连
    • 组相连
  • 替换算法

1.概述

  1. 引入Cache原因:提高访存速度,避免cpu空等

  2. 示意图:

    • 缓存:容量小,速度快
    • 主存:容量大,速度慢
  3. 程序局部性原理:

    • 时间局部性原理:当前用的指令和数据在未来会用到
    • 空间局部性原理:当前用的指令和数据相邻的指令和数据未来会用到

2.Cache工作原理

  1. 主存与缓存编址示意图

    • 标记:放对应的主存块号
    • 主存块与缓存块的块内地址相同
  2. 命中与未命中:

    • 命中,主存块调入缓存
    • 未命中,主存块未调入缓存
  3. 命中率:命中的/所有的
    命中率和Cache容量和块长有关

  4. 字块长:
    每个字块中字的数量,一个字包含n个位(bit)

3.Cache基本结构

  • 地址映射变换机构:执行映射变换(主存块号—>缓存块号映射)
  • 替换机构:执行缓存替换

4.Cache读写

  1. 读:

  2. 写:

    • 写直达法
      写操作及写入Cache又写入主存
    • 写回法
      写操作只把数据写入Cache,Cache被替换时再把数据写回主存

5.Cache改进

  1. 增加Cache级数
    • 现代计算机每个核有自己的Cache,一般为3级
    • 分为片载Cache和片外Cache
  2. 统一缓存变为分立缓存:
    • 指令Cache
    • 数据Cache

6.Cache主存地址映射

6.1 直接相联映射

主存中任意给定块只能放到给定的Cache块中。

  • Cache地址取出标记与主存字块标记对比,相等命中,否则不命中
  • 优缺点:
    • 查询快
    • Cache利用率低
    • 冲突概率大

6.2 全相联映射

主存中任意一个块可以放到任意一个Cache块中。

  • 主存字块标记和Cache中所有标记对比,相同命中
  • 优缺点:
    • 查询慢
    • Cache利用率高
    • 冲突(替换)概率小

6.3 组相联映射

直接相连和全相连的折中。
把Cache块分为若干组,每组2^i个块(i=1,2,3...),几个块称为几路组相连。
主存中任意给定块只能放到给定的组中。

  • 主存字块标记和组地址对应组中所有标记做对比,有相同命中
  • 全相连和直接相连的折中方式
  • 分1组:全相连(多级缓存中远离Cpu的Cache)
  • 每组只有1块:直接相连(多级缓存中靠近Cpu的Cache)

7.替换算法

  1. FIFO:先进先出
  2. LRU:最近最久未使用
  3. 随机替换

8.辅助存储器

  1. 特点:
    不直接与CPU交换信息
    辅助存储器位置见第一张图

  2. 硬磁盘:

    主机:cpu+主存
    磁盘控制器:

    • 和主机使用总线相连
    • 对硬盘(磁盘)直接控制
  3. 软盘:已退出市场

  4. 光盘:
    一代:热作用,不可擦写
    二代:热磁效应,可擦写

原文地址:https://www.cnblogs.com/kenshine/p/14514384.html