北大计算机系课件 cache

合集下载

cache存储器.ppt

cache存储器.ppt

主存地址长度=(s+w)位 寻址单元数=2s+w个字或字节 块大小=行大小=2w个字或字节 主存的块数=2s 每组的行数=k 每组的v=2d cache的行数=kv 标记大小=(s-d)位
3、替换策略
• cache工作原理要求它尽量保存最新数据,必然要产生替换。
• 对直接映射的cache来说,只要把此特定位置上的原主存块换 出cache即可。
e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%
ta=tc/e=50ns/0.833=60ns
2、主存与cache的地址映射
无论选择那种映射方式,都要把主存和cache 划分为同样大小的“块”。
选择哪种映射方式,要考虑: •硬件是否容易实现 •地址变换的速度是否快 •主存空间的利用率是否高 •主存装入一块时,发生冲突的概率 以下我们介绍三种映射方法:
h=Nc/(Nc+Nm)
(3.4)
若tc表示命中时的cache访问时间,tm表示未命中时的主存
访问时间,1-h表示未命中率,则cache/主存系统的平均访问时
间ta为: ta=htc+(1-h)tm
(3.5)
设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有:
为提高访问效率,命中率h越接近1越好,r值以5—10为宜, 不宜太大。命中率h与程序的行为、cache的容量、组织方式、 块的大小有关。
2.Cache的设计依据:CPU这次访问过的数据,下次有很大的可 能也是访问附近的数据。
3.CPU与Cache之间的数据传送是以字为单位
4.主存与Cache之间的数据传送是以块为单位
5.CPU读主存时,便把地址同时送给Cache和主存,Cache控 制逻辑依据地址判断此字是否在Cache中,若在此字立即传送 给CPU ,否则,则用主存读周期把此字从主存读出送到CPU ,与此同时,把含有这个字的整个数据块从主存读出送到 cache中。

Cache基础知识介绍ppt课件

Cache基础知识介绍ppt课件
31 Address Tag Entry Offset 0
11
• 组相联映射方式下cache的内部结构。
Entry
Way 0 Way 1 Way 2
Address Tag 0 Address Tag 1 Address Tag 2
Data Data Data
Way n-1 Way n
Address Tag n-1 Address Tag n
14
+ 提高cache的性能也就是要降低主存的平均
存取时间 主存平均存取时间=命中时间+未命中率*未 命中惩罚
+ 提高cache的性能有以下三种方法:减少命
中时间,减少未命中率,减少未命中惩罚。
15
影响命中率的硬件因素主要有以下四点: + Cache的容量。 + Cache与主存储器交换信息的单位量(cache line size)。 + Cache的组织方式 + Cache的替换算法
+ Cache又叫高速缓冲存储器,位于CPU与内
存之间,是一种特殊的存储器子系统。 + 目前比较常见的是两极cache结构,即cache 系统由一级高速缓存L1 cache和二级高速缓 存L2 cache组成,L1 cache通常又分为数据 cache(I-Cache)和指令cache(D-Cache), 它们分别用来存放数据和执行这些数据的 指令。
9
10
+ 块:块是cache与主存的传输单位。 + 路(way): 路是组相联映射方式的cache结构中的 +
+ +
+
基本存储单位,每一路存储一个块的数据。 组(entry):组是组相联映射方式的cache对块进行 管理的单位。 区 (tag) :块的地址对应的主存储器中的区。 块内偏移地址(offset): 用来标示块内一个字节的 地址。 组相联映射方式下主存储器的地址空间由,区,组 和块内偏移地址组成。

5-1 存储系统 Cache_v1.0

5-1 存储系统 Cache_v1.0

计算机系统结构
层次之间应满足的原则
一致性原则


处在不同层次存储器中的同一个信息应保持相同的值。

包含性原则

处在内层的信息一定被包含在其外层的存储器中,反 之则不成立, 即内层存储器中的全部信息,是其相邻 外层存储器中一部分信息的复制品
北京信息科技大学
计算机系统结构
“Cache主存”和“主存辅存”层次
主存块地址 tag index
北京信息科技大学
计算机系统结构
直接映像方式


直接映像方式:是指主存的一个字块只能映像 到Cache中确定的一个字块。 举例 直接映像方式特点:



主存的字块只可以和固定的Cache字块对应,方式 直接,利用率低。 标志位较短,比较电路的成本低。如果主存空间有 2m块,Cache中字块有2c块,则标志位只要有m-c 位。而且在访问Cache时候仅需要比较一次 空间利用率最低,冲突概率最高,实现最简单。
计算机系统结构
现代计算机的层次存储器系统

利用程序的局部性原理:

以最低廉的价格提供尽可能大的存储空间 以最快速的技术实现高速存储访问
Processor Control Second Level Cache (SRAM) Main Memory (DRAM) Secondary Storage (Disk)
北京信息科技大学
计算机系统结构
Cache基本知识


高速缓冲存储器:在相对容量较大而速度较慢的主存与 高速处理器之间设置的少量但快速的存储器 基本工作原理:




把Cache和主存分成若干大小相同的块( block,行、线 line,槽slot ),Cache由块目录表及快速存储器组成 对主存地址,根据映象规则生成标签和索引;根据标签和 索引查找具体的Cache块 无(失效/缺失miss)则到主存取一个块的数据(遇到 Cache没有,空间则需要替换),并给处理器需要的部分 有(命中hit)则从Cache读取数据;如果是写入操作,需 考虑与主存数据保持一致(写入策略)

CaChe

CaChe
cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,但是造价高,又由于在cpu内不能集成太多集成电路,所以一般cache比较小,以后intel等公司为了进一步提高速度,又增加了二级cache,甚至三级cache,它是根据程序的局部性原理而设计的,就是cpu执行的指令和访问的数据往往在集中的某一块,所以把这块内容放入cache后,cpu就不用在访问内存了,这就提高了访问速度。当然若cache中没有cpu所需要的内容,还是要访问内存的。
基本简介
Cache的出现是基于两种因素:首先,是由于CPU的速度和性能提高很快而主存速度较低且价格高,第二就是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。很显然,要尽可能发挥CPU的高速度就必须CACHE用硬件实现其全部功能。
修改/etc/sysctl.conf中的vm.swappiness右边的数字可以在下次开机时调节swap使用策略。该数字范围是0~100,数字越大越倾向于使用swap。默认为60,可以改一下试试。--两者都是RAM中的数据。
简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
Cache中的内容随命中率的降低需要经常替换新的内容。替换算法有多种,例如,先入后出(FILO)算法、随机替换(RAND)算法、先入先出(FIFO)算法、近期最少使用(LRU)算法等。这些替换算法各有优缺点,就以命中率而言,近期最少使用(LRU)算法的命中率最高。
浏览器缓存
缓存用于存储一些临时的文件。在浏览网页的过程中,网页会自动存储在用户的硬盘上。下次再浏览相同的网站的时候,系统会自动从硬盘中调出该网页,既节省了时间也减少了网络的交换。用户可以自行设定缓存方便其上网的需要。电脑中还存在高速缓冲存储器和硬盘缓存。缓存的种类:本地服务器缓存、网页缓存、硬盘缓存、一级高速缓存、二级高速缓存。

cache结构与操作.ppt

cache结构与操作.ppt

e tc
tc
11
ta htc (1 h)tm h (1 h)r r (1 r)h
(4-4)
其中,r=tm/tc,表示访问主存慢于访问 Cache的倍率。r的取值一般是5-10 。
例【4-1】设CPU执行一般程序时,访问 Cache次数Nc=1500,访问主存次数Nm=90,又假 设访问Cache存取周期为50ns,访问主存存取周期 为300ns,试求h、r、ta以及e的值
存储器系统的层次关 系
2、Cache命中率
从微机系统来看,增加Cache的目 的,就是要在性能上使主存的平均访问 时间尽可能接近Cache的访问时间,即 保证在大多数情况下,CPU访问Cache, 而不是访问主存。
在 某 一 程 序 执 行 期 间 , 设 Nc 表 示 CPU 访 问 Cache 的 总 次 数 , Nm 表 示 CPU 访 问 主 存 的 总 次数,h为命中率,则
·优点:灵活,不易产生冲突; 缺点:比较电路难于实现,且效率低,速度慢
• 例:设访问存储器地址的块号序列为22、26、 22、26、16、4、16、18,采用全相联映射方 式时,Cache行分配情况
2.直接映射方式
某一主存块只能能映射到Cache的特定行
i = j mod m 其中: i:Cache的行号; j:主存的块号; m:Cache的总行数
解:
h Nc 1500 0.943
N cNm 1500 90
r tm 300 ns 6 tc 50ns
ta=htc+(1-h)tm=0.943×50ns+(1-0.943)×300ns=64.25ns
e tc 50ns 77.82% ta 64.25ns
4.6.2 Cache组织方式

13第十三讲CACHE

13第十三讲CACHE

4
一 Cache存储器概述
功能:解决CPU和主存间速度不匹配问题 采用高速SRAM构成 速度差别很大时采用两级或多级Cache系统 早期的一级Cache在CPU内,二级在主板上 现在的CPU内带L1 Cache和L2 Cache 全由硬件调度,对用户透明
程序访问的局部性原理

34
4、虚存机制要解决的关键问题
——在操作系统的控制下,由硬件和系统软件负责解决 (1)调度问题:决定哪些程序和数据应被调入主存 (2)地址映射问题: 内地址变换——访问主存时把虚地址变为主存物理地址 外地址变换——访问辅存时把虚地址变成辅存的物理地 址 还要解决主存分配、存储保护与程序再定位等问题 (3)替换问题:决定哪些程序和数据应被调出主存 (4)更新问题:确保主存与辅存的一致性
21
替换策略

最不经常使用(LFU)算法 LFU算法将一段时间内被访问次数最少的那行 数据换出。每行设置一个计数器。从0开始计数,
每访问一次, 被访行的计数器增1。当需要替换
时,将计数值最小的行换出,同时将这些行的计 数器都清零。

这种算法将计数周期限定在对这些特定行两次替
换之间的间隔时间内,不能严格反映近期访问情

写一次法
基于写回法并结合全写法的写策略,写命中 与写未命中的处理方法与写回法基本相同, 只是第一次写命中时要同时写入主存。这 便于维护系统全部cache的一致性。奔腾机
27
cache命中率

命中率h: cache完成存取的总次数与CPU
访问的总次数之比。 设Nc表示cache完成存取的总次数,Nm表 示主存完成存取的总次数,h= Nc/(Nc+ Nm)

计算机物理内存的访问地址称为实地址或物理地址,其对应的 存储空间称为物理存储空间或主存空间

Cache-简介PPT课件

Cache-简介PPT课件
还有和写回法类似的写一次法:基本策略和写 回法相同,不过在第一次命中的时候同时更新 Cache和下级的内容。
.
37
4) 写缺失策略
Write allocate(写分配):在发生写缺 失的时候,在直接写下级Cache/主存的 同时,还将该缺失数据写入本级Cache, 此策略一般和Write Back一起使用
缺点是不够灵活。因为主存的2t个组(t 为CACHE标记的位数)只能对应于唯一的 Cache存储器行,即使Cache中有许多地 址空着也不能占用,因而使Cache存储空 间得不到充分利用。
.
21
(3)组相联映像方式
它是直接映像与全相联映像的折衷方案.它将 把Cache存储器分为若干个组,每组包含若干 个行.组间采用直接映像,而组内的则采用全 相联映像。主存的某一块可以映像到CACHE指 定组内的任意行中。
字的位数=b =LOG2(每块的字数. )=LOG2(K)
8
.
9
.
10
.
11
(2)直接映像方式
主存中的每一块只能映像到CACHE中的一 个固定行的位置。
直接映像函数可定义为: i= j mod m
其中,i是Cache的行号,j是主存的 块号,m为CACHE的行数。
.
12
主存的组数= (主存的块数/CACHE的行 数)=256/8=32组
.
48
5) cache lock & unlock
lock: 由于cache size < mem(L3) size,因此总会有不 够用替换的时候,但是某些应用场景下,我们不希望 某些读入cache的line被替换掉,引入了lock命令(通常 是tag的1 bit)
被lock的行不会在执行替换的时候被别人替换掉。 unlock: 清除lock 位 lock_en (在 lock_en=1---lock_en=0期间读入的

第十讲(cache存储器)要点课件

第十讲(cache存储器)要点课件
详细描述
当缓存满了,需要替换数据块时,LFU算法会选择最不经常使用的数据块进行替换。这种算法能够提 高缓存命中率,但实现起来较为复杂,需要记录每个数据块的访问频率。
04
Cache存储器的性能分析
Cache存储器的命中率
01
02
03
命中率
衡量Cache存储器效率的 重要指标,指程序访问 Cache成功命中的次数与 总访问次数的比值。
影响因素
Cache容量、块大小、程 序特性、替换策略等。
优化策略
根据程序特性调整Cache 容量和块大小,采用合适 的替换策略,以提高命中 率。
Cache存储器的效率
效率
指Cache存储器完成一次 访问所需的时间与直接访 问存储器所需时间的比值 。
影响因素
Cache访问速度、块大小 、Cache层次结构等。
第十讲(cache存储器)要点 课件
contents
目录
• Cache存储器概述 • Cache存储器与主存的映射方式 • Cache存储器的替换算法 • Cache存储器的性能分析 • Cache存储器的优化策略
01
Cache存储器概述
Cache存储器的定义
01
Cache存储器是一种高速缓冲存 储器,用于暂时存储CPU经常访 问的指令和数据,以便快速访问 和提高系统性能。
组相联映射
总结词
一种折中的映射方式,将主存中的块分组,每组内的 块映射到Cache的固定块位置。
详细描述
组相联映射方式中,将主存中的块分成若干组,每组 内的块具有固定的对应关系。Cache被划分为与主存 组数相同的组,每个组中的块可以存储主存中对应组 内的任意一块数据。当访问主存时,首先确定访问的 块属于哪个组,然后在Cache中查找该组对应的块, 如果有则将数据读入Cache块中,否则需要将数据从 主存中读取并替换掉Cache中的某块数据。这种方式 的优点是查找时间较短且具有一定的灵活性,缺点是 仍然存在Cache浪费的问题。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

M [00001] M [01010]
°人生名言: • 失败是成功之母: 义务失效(Compulsory Misses) - (冷启失效)
北京大学微处理器研究开发中心
Cache数据块的定义
°Cache块: 相同的cache标志所指明的cache数据 °进一步分析前面介绍的示例: • 4字节直接映射cache: 块大小 = 1 Byte • 可以利用时间局部性: 如果正在访问某一字节,那么在最近的 将来还可能再次访问这一字节。 • 不能利用空间局部性:如果正在访问某一字节,那么在最近 的将来还可能访问这一字节邻近的字节。 °为了利用空间局部性:增加数据块的大小
(失效)
失效处理: 装载数据
访问 000 01
(命中)
000 010
M [00001] M [01010]
写 Tag & Set V
访问 010 10
(失效)
000
M [00001]
访问 010 10
(命中)
000 010
M [00001] M [01010]
装载数据 写Tag & Set V
000 010 北京大学计算机科学技术系
Cache标签 示例: 0x50 作为Cache状态 的一部分存储
有效位 Cache 标签
4
0
Cache 索引 示例: 0x01
字节选择 示例: 0x00
0x50 :
北京大学计算机科学技术系
Byte 63
: :
Cache 数据 Byte 31
Byte 1
Byte 0
0 2 3
Byte 33 Byte 32 1
N
Cache 索引 假设为 0x03
2N 字节的直接映射cache
字节 0 字节 1 字节 2 0 1 2 3
0
有效位 Valid Bit
0x50
字节 3
:
北京大学计算机科学技术系
:
:
字节 2N -1 2 N- 1 北京大学微处理器研究开发中心
Cache访问示例
开始:Cache空
V 标签 数据
访问 000 01
:
:
北京大学微处理器研究开发中心
:
Byte 1023
Byte 992
31
块大小的权衡
°平均访问时间 等于: • 命中时间 x (1 -失效率) + 失效损失 x 失效率 °一般而言,数据块较大有利于利用空间局部性的优势,但是: • 较大的数据块较大的失效损失: - 需要较长的时间来填充数据块 • 如果数据块的大小相对于cache大小而言太大了,那么失效 率也将增加
有效位 Cache 标签 Cache 数据
Cache 块 0
Cache 索引 Cache 数据
Cache 块 0
Cache 标签
有效位
:
地址标签
:
:
:
:
:
比较
Sel1 1
Mux
0 Sel0
比较
或 Hit 北京大学计算机科学技术系 Cache 块 北京大学微处理器研究开发中心
组相联Cache缺点
°N路组相联Cache 与 直接映射Cache: • N个比较器 与 1个比较器 • 在输出数据时,增加了额外的多路选择延迟 • 在判断命中/失效时候,才可以得到数据 °在直接映射Cache中, Cache块在命中/失效之前就可以得到: • 可以先假设命中并继续执行,如果以后发现失效再恢复。
北京大学微处理器研究开发中心
Cache标签(Tag)和Cache索引(Index)
°假设存储器字节地址为 32位: • 2N 字节的直接映射cache:
31
- Cache索引:存储器地址的较低 N位 - Cache标签: 存储器地址的较高 (32 - N)位
Cache 标签 假设为0x50
作为cache状态的 一部分保存起来
Cache 标签 X X X
X
X
北京大学计算机科学技术系
:
:
: :
:
北京大学微处理器研究开发中心
°全相联Cache -- 将组相联的思想推广到极限! • 完全不要Cache索引 • 并行地比较所有的 Cache标签 • 示例:块大小 = 32 字节, 需要N个 27位的比较器 °根据定义: 对于全相联cache,冲突失效 = 0
31 Cache标签 (27位长) 4 0 字节选择 示例: 0x01 有效位 Cache 数据 字节 31 字节 1 字节 0 字节 63 字节 33 字节 32
页(Pages)
磁盘 文件(Files) 磁带
磁带
无限 秒 ~分 10-6
较大 较低级别
北京大学计算机科学技术系
北京大学微处理器研究开发中心
局部性原理
访问的可能性
°局部性原理: • 程序在一定的时间段内通常只会访问地址空间较小的部分。 • 例如:10%的代码将耗费90%的程序执行时间。
°两种不同类型的局部性: • 时间局部性(Temporal Locality):如果一个信息项正在 被访问,那么在近期她很可能还会被再次访问。 • 空间局部性(Spatial Locality):在最近的将来将用到的信 息很可能与现在正在使用的信息在空间地址上是临近的。
北京大学计算机科学技术系 北京大学微处理器研究开发中心
两路组相联Cache
°N路组相联: 对每个Cache索引有N个数据块(entries) • N个直接映射cache并行工作 °示例:两路组相联cache • Cache索引来选择cache中的某一组 • 该组种的两个标签进行并行比较 • 根据标签比较的结果来选择数据
°Cache失效时的替换机制 • 随机替换,LRU,FIFO
°写策略 • 写命中时:写回(Write Back)vs. 写穿透(Write Through) • 写失效时:写分配(Write Allocate)vs. 写不分配 (Write Non-allocate)
北京大学计算机科学技术系 北京大学微处理器研究开发中心
存储层次的级别
分段传 输单位
寄存器堆 指令操作数
较高级别 较快
程序/编译器 1-8 字节 Cache控制 8-128字节 操作系统 512-4K字节 用户/操作员 Mbytes
Cache
块(Blocks) 存储器
主存
M Bytes 100ns-1us $0.01~0.001
磁盘
G Bytes 毫秒 10-3~10-4美分
X块
来自处理器
北京大学计算机科学技术系
Y块
北京大学微处理器研究开发中心
基本参数: 典型数值
典型数值
块 (行)大小
命中时间 失效损失 (访问时间) (传输时间)
4 - 128字节
1 – 4处理器时钟周期 8 - 32周期 (6-10周期) (2 - 22周期)
失效率
Cache容量
1% - 20%
1 KB - 256 KB
失效损失
失效率 开发空间局部性
数据块较少: 弥补了时间局部性
平均访问时间
增加了失效损失和 失效率
块大小
北京大学计算机科学技术系
块大小
块大小
北京大学微处理器研究开发中心
另一个极端的示例
有效位 Cache 标签 Cache 数据 Byte 3 Byte 2 Byte 1 Byte 0 0
°Cache大小 = 4 bytes 块大小 = 4 bytes • cache中只能有唯一一个数据块 °真: 如果正在访问一个信息项,那么很可能在最近的将来还将访问该信息项 • 但是,通常却不会立即再次使用该信息项!!! • 那么,再次访问该信息项时,仍然很可能会失效 - 继续向cache中装入数据,但是在它们被再次使用之前会被强行排出 cache - cache设计人员最害怕出现的事情: 乒乓现象 °冲突失效(Conflict Misses)是下述原因导致的失效: • 不同的存储位置映射到同一cache索引 - 解决方案 1: 增大cache容量 - 解决方案 2: 对同一Cache索引可以有多个信息项
北京大学计算机科学技术系
北京大学微处理器研究开发中心
Cache如何工作?
°时间局部性(Temporal Locality):如果一个信息项正在被访 问,那么在近期她很可能还会被再次访问。 • 将最近被访问的信息项放在离处理器较近的地方 °空间局部性(Spatial Locality):在最近的将来将用到的信息 很可能与现在正在使用的信息在空间地址上是临近的。 • 将包括临近存储字的数据块一起移动到较高层存储中
有效位 Cache标签 直接映射Cache 数据
字节 0
字节1
字节 2 字节 3 北京大学计算机科学技术系 北京大学微处理器研究开发中心
示例: 32B数据块的1KB直接映射Cache
°对于 2 N 字节cache: • 最高的 (32 - N)位总是Cache标签
• 最低的 M位是字节选择 (块大小 = 2M) 31 9
°总结
北京大学计算机科学技术系
北京大学微处理器研究开发中心
存储系统的扩展图示
处理器
控制
Memory
Memory
Memory
Memory
数据通路
速度: 最快 容量: 最小 每位成本: 最高
北京大学计算机科学技术系
Memory
最慢 最大 最低
北京大学微处理器研究开发中心
容量 访问时间 成本
CPU寄存器 100s Bytes <10s ns Cache K Bytes 10~100 ns $0.01~0.001/bit
最简单的Cache: 直接映射Cache
相关文档
最新文档