高速缓存-CA

本文介绍了存储层次的基本概念,CPU与RAM的速度差距以及摩尔定律的影响。文章详细讲解了Cache的结构、性能优化,包括降低失效率、Miss Penalty、Hit Time的方法,并探讨了常见处理器的存储层次。通过对Cache的工作原理和优化策略的分析,揭示了解决处理器与内存速度不匹配问题的关键所在。
摘要由CSDN通过智能技术生成

存储层次的基本概念

CPU与RAM的速度剪刀差

(1)摩尔定律:
• CPU的频率和RAM的容量每18个月翻一番
• 但RAM的速度增加缓慢

(2)通过存储层次来弥补差距:
• 寄存器、Cache、存储器、IO

处理器和内存速度剪刀差

  • 早期Alpha处理器Cache失效延迟:
    • 1st Alpha (7000): 340 ns/5.0 ns = 68 clks x 2 or 136
    • 2nd Alpha (8400): 266 ns/3.3 ns = 80 clks x 4 or 320
    • 3rd Alpha (t.b.d.): 180 ns/1.7 ns =108 clks x 6 or 648
  • 当前主流处理器主频2GHz以上:
    • IBM Power 6主频6GHz以上
    • 内存延迟50ns左右
    • 访存延迟>100拍
  • 多发射加剧了访存瓶颈

摩尔定律使CPU的内容发生了变化

(1)冯诺依曼结构的核心思想:
• 存储程序:指令和数据都存放在存储器中

(2)计算机的五个组成部分:
• 运算器、控制器、存储器、输入、输出
• 运算器和控制器合称中央处理器(CPU)

(3)为了缓解存储瓶颈,把部分存储器做在片内:
• 现在的CPU芯片:控制器+运算器+部分存储器
• 片内Cache占了整个芯片的很大一部分面积

计算机硬件系统的组成

在这里插入图片描述

CPU中RAM的面积和晶体管比例

在这里插入图片描述

RAM所占的面积比例小于晶体管:因为RAM很规则,可以做到很密,而普通逻辑不行;

存储层次基本原理

在这里插入图片描述

  • 程序访问的局部性:时间局部性和空间局部性
    • 新型的应用(如媒体)对传统的局部性提出了挑战

Cache结构

cache的结构

(1)cache特征:

  • Cache的内容是主存储器内容的一个子集
  • Cache没有程序上的意义,只是为了降低访存延迟
  • 处理器访问Cache和访问存储器使用相同的地址

(2)cache结构特点:
在这里插入图片描述

  • 同时存储数据和地址以及在cache中的转态;
  • 通过地址的比较判断相应数据是否在Cache中 ;
  • 需要考虑所需要的数据不在Cache中的情况:替换机制,写策略等;

(3)cache分类:
1)cache块的位置:同一单元在不同结构Cache中的位置
在这里插入图片描述

  • 全相联
    命中率高;硬件复杂、延迟大;
    在这里插入图片描述
  • 直接相联:
    命中率低;硬件简单、延迟最小;
    在这里插入图片描述
  • 组相联:
    介于全相联和直接相联之间;
    在这里插入图片描述
  • 例题:
    在这里插入图片描述

2)Cache替换算法:

  • 常见的替换算法:随机替换、LRU最近最少使用、FIFO先进先出
  • 对直接相联Cache不存在替换算法问题
  • 每1000条指令失效次数统计
    • SPEC CPU2000中的gap, gcc, gzip, mcf, perl, applu, art, equake, lucas, swim 10个程序
    • Aplha结构,块大小64B

3)写命中时采取的策略:

  • 写穿透(Write Through)
    • 写Cache的同时写内存
    • 内存里的数据永远是最新的,Cache替换时直接扔掉
    • Cache块管理简单,只需有效位
  • 写回(Write-back)
    • 只写Cache不写内存
    • 替换时要把Cache块写回内存
    • Cache块状态复杂一些,需要有效位和脏位
  • 写回/写穿透的使用:(CPU<—>L1(常在CPU内)<—>L2<—>内存)
    • L1到L2用写穿透的多,L2较快
    • L2到内存用写回的多,内存太慢了
    • 龙芯2号两级都采用写回策略

4)写失效时采取的策略:

  • 写分配( Write Allocate )
    • 先把失效块读到Cache,再在Cache中写
    • 一般用在写命中时采用写回策略的Cache中
  • 写不分配(Write Non-allocate)
    • 写Cache失效时直接写进内存
    • 一般用在写命中时采用写穿透的Cache中

Cache性能优化

Cache性能分析

在这里插入图片描述

  • CPU执行时间与访存延迟的关系
  • 平均访存时间AMAT = Average Memory Access Time
  • CPIALUOps 不包括访存指令

Cache性能优化

  1. 降低失效率(MissRate)
  2. 降低失效延迟(MissPenalty)
  3. 降低命中延迟(HitTime)
  4. 提高Cache访问并行性

降低失效率

(1)引起Cache失效的因素(3C/4C)

  • 冷失效(Cold Miss或Compulsory Miss)
    • CPU第一次访问Cache块时Cache中还没有该Cache块引起的失效;
    • 冷失效是不可避免的,即使Cache容量再大也会有;
  • 容量失效(Capacity Miss) :
    • 程序执行过程中,有限的Cache容量导致Cache放不下时替换出部分Cache块,被替换的Cache块再被访问时引起失效;
    • 一定容量下全相联Cache中的失效;
  • 冲突失效(Conflict Miss)
    • 直接相联或组相联Cache中,不同Cache块由于index相同引起冲突;
    • 在全相联Cache不存在;
  • 一致性失效(Coherence Miss)
    • 由于维护Cache一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值