Cache工作原理

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cache对系统性能的提升
14
CPU内核时钟f1=1.0GHz 内存总线时钟f2=100MHz(内存速度) L1 CACHE=32KB,工作在内核时钟频率,命中率H1=80% L2 CACHE=64KB,工作频率为内核时钟频率的一半f1'=f1/2,命中率H21=86% 内存等效平均访问周期:
T=H1/f1+(1-H1)H2/f1'+(1-H1)(1-H2)/f2 其中f1'=f1/2 内存等效平均速度 f=1/T
Cache对于顺序内存访问的作用
指令在内存中是顺序存放的,以32位CPU为例, 每次取指令的过程就是从内存中读出32位(4
字节)数据的过程。对于一段顺序执行的程序, CPU
连续的取指令过程就是以4字节为单位顺序读 取内存数据的过程。在没有Cache的情况下, 这一过程将被分解为多个独立的4字节内存读 取访问。
开始 CPU发出访问地址 是 命中? 否
如果要读的内容不在Cache上,叫做不命中,
此时需要进行Cache数据的刷新。通常采用 LRU算法,由硬件自动找出最近最少使用的 Cache行进行刷新。先把所需的内容从主存装
访问Cache 取出信息送CPU
载到Cache里,再从Cache上读取数据。
结束
6
执行刷新算法 刷新Cache行 访问Cache 取出信息送CPU
高速缓存的作用
4
高速缓冲存储器存在于主存与CPU之间,容量比较小,但速度比主存高得多。Cache和 主存储器之间信息的调度和传送是由硬件自动进行的。有了Cache,CPU对主存的访问 被分解为Cache更新主存数据和CPU对Cache的访问两个独立的操作。
CPU
Cache
容量小 速度高
主存
容量大 速度低
Cache命中率
11
H
C
表示CPU发起的数据访问命中Cache的比率。很显然,Cache容量越大,越能将更多内存数 据保存在Cache中,命中率越高。根据使用经验,Cache与内存的空间比为4:1000,如 128kB的Cache可映射32MB内存。在这种情况下,命中率可以达到90%。
指令Cache和数据Cache
Cache工作原理
目录 CONTENTS
2
1
Cache概念
2
Cache行
3
Cache的作用
4
Cache命中率
5
Cache对系统性能的提升
Cache概念
3
Cache也叫高速缓冲存储器,是指存取速度比系统主存更快的一种RAM,一般而言它不 像系统主存那样使用DRAM技术,而使用昂贵但更快速的SRAM技术。
Cache行概念
5
Cache中存放数据的最 小单位称作一个Cache 行,通常为32字节或其 整数倍。
也就是说,Cache中的 数据是以一个Cache行 作为数据块进行整体存 取的。
…… …
Cache行0 Cache行1 Cache行2
Cache行n
Cache访问
Cache打开后,CPU读写主存的时候,都是通 过Cache进行的。以读操作为例,如果在 Cache里面找到了所需的内容,叫做Cache命 中,此时直接从Cache里读取数据。

7
内存
指令1(4字节) 指令2(4字节) 指令3(4字节)
指令8(4字节)
Cache对于顺序内存访问的作用
在存在Cache的情况下,我们假设一 个Cache行是32字节,当CPU读取32 字节对齐的第一条指令时,发起的4 字节内存读取访问将首先指向Cache。 在不命中的情况下,将触发一次 Cache行的刷新。刷新操作将包含当 前访问内存地址的32个字节内存数据 一次性读出并写入一个Cache行。
702
28
根据计算,在只有一级Cache的情况下,内存的等效平均速度是没有Cache时的3倍以上。 在存在二级Cache的情况下,内存的平均等效速度是没有Cache时的7倍。
12
I Cache
Cache
D Cache
为了提高命中率和系统整体效率,通常将Cache分为指令Cache和数据Cache,分别作为指 令和数据缓存。
Cache的级联
13
CPU
L1 Cache
L2 Cache
主存
Cache的级联也是目前较常用的提高系统整体数据存取性能的方法。采用Cache级联的系统在 CPU与主存之间存在二级甚至三级缓存,每级缓存比前一级缓存速度慢且容量大。
4字节Hale Waihona Puke Baidu问
CPU
相当于把8个独立的4字节内存读取访 问合并成一次32字节内存读取访问。
Cache
指令1(4字节) 指令2(4字节) 指令3(4字节)
Cahe行刷新 32字节访问
8
内存
指令1(4字节) 指令2(4字节) 指令3(4字节)
… …
指令8(4字节)
指令8(4字节)
基于程序访问的局部性分析Cache的作用
Cache对系统性能的提升
15
L1=32KB (ns)
1
×
L2=64KB(ns) ×
2 1×80%=
×
0.8
3
0.8
2×0.2×0.86=0.344
L2=128KB(ns) × ×
内存(ns)
T(ns) f (MHz)
1000/100=10
10
100
20%×10=2
2.8
357
×
0.2×0.14×10=0. 1.424
9
指令地址的分布是连续的 循环结构在进程和数据处理任务中的广泛使用
子函数的反复调用
程序产生的内存访问 集中在存储器地址空 间的很小范围内
基于程序访问的局部性分析Cache的作用
10
4字节访问
CPU
Cache
循环程序对 应指令块
Cahe行刷新 32字节访问
内 存
循环程序对 应指令块
假设一个被多次执行的程序循环,其代码段所占内存地址空间小于Cache大小,当第一次执 行该循环时,随着CPU取指令过程,循环对应的代码段将全部被刷新进Cache。后续执行循 环时,由于指令地址全部命中Cache,将不再有Cache行刷新的动作,CPU直接从Cache中 就可以取出循环指令。这将大大缩短CPU取指令的时间。
相关文档
最新文档