计算机组成原理__第5章 存储器层次结构__高速缓冲存储器cache

cache 设置在CPU 和主存之间,  可以提高CPU访问指令和数据的速度。

一 cache 的基本工作原理

cache 是一种小容量高速缓冲存储器, 由快速的 SRAM(组成随机存取存储器)组成, 直接制作在 CPU芯片内。

为便于cache 和主存间交换信息, cache和主存空间都被划分为相等的区域。   主存中的区域称为块, 也称为主存块, 它是cache 和主存之间的信息交换单位。

cache 中存放一个主存块的区域称为cache 行(line)或  槽(slot)。

下图给出带cache 的CPU执行一次访存操作的过程。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpbWFubmkxOA==,size_16,color_FFFFFF,t_70

在访存过程中, 需要判断所访问信息是否在cache中。 若CPU访问单元所在的块在cache中, 则称cache命中(Hit), 命中的概率称为命中率(Hit Rate)p, 它等于命中次数与访问总次数之比;  若不在cache中,  则为不命中或缺失,  其概率称为缺失率, 它等于不命中次数与访问总次数之比。

命中时,CPU 在cache 中直接存取信息, 所用的时间开销就是cache访问时间Tc, 称为命中时间;

缺失时,需要从主存读取一个主存块送到 cache, 并同时将所需信息送CPU, 因此,所用时间开销为主存访问时间Tm  和cache 访问时间Tc 之和。  通常把从主存读入一个主存块到cache

的时间Tm 称为缺失损失。 

 CPU 在cache —主存层次 的平均访问时间为

20210409161047189.png

由于程序访问的局部性特点, cache的命中率可以达到很高, 接近于1。  因此,虽然缺失损失 > > 命中时间。

看一个例子

假定处理时钟周期为2 ns, 某程序由 1000 条指令组成, 每条指令执行一次, 其中的4条指令在取指令时, 没有在cache 中找到, 其余指令都能在cache 中取到。 在执行指令过程中, 该程序需要 3000 次主存数据访问, 其中, 6次没有在 cache 中找到。 试问:

(1)执行该程序得到的cache 命 中率是多少?

(2)若cache 中存取一个信息的时间为1个时钟周期, 缺失损失为10个时钟周期,则 CPU 在cache ——主存层次的平均访问时间为多少?

 

解: (1) 总访问次数为 1000 + 3000 = 4000,  未命中次数为 10,故cache 命中率为(4000-10)/4000 =  99.75%。

         (2)cache—主存层次的平均访问时间为 1+(1-99.75%)* 10 =1.025 个时钟周期。即 1.025 * 2 ns = 2.05 ns。 与cache 的访问时间相近。

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值