北大计算机系课件 cache
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课件
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
计算机系统结构
层次之间应满足的原则
一致性原则
处在不同层次存储器中的同一个信息应保持相同的值。
包含性原则
处在内层的信息一定被包含在其外层的存储器中,反 之则不成立, 即内层存储器中的全部信息,是其相邻 外层存储器中一部分信息的复制品
北京信息科技大学
计算机系统结构
“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的速度和性能提高很快而主存速度较低且价格高,第二就是程序执行的局部性特点。因此,才将速度比较快而容量有限的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
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
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课件
.
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存储器)要点课件
当缓存满了,需要替换数据块时,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浪费的问题。
cache的基本原理
cache的基本原理Cache的基本什么是Cache?•Cache(缓存)是一种存储数据的技术,它提供了一种快速访问数据的方式。
•作为一种高速缓存,Cache通常是位于主存(main memory)和处理器之间的存储器,存储着最常用或者最近使用的数据。
•Cache通过减少对主存的访问,提高了计算机系统的性能。
Cache的工作原理•当程序需要访问数据时,计算机会优先检查Cache中是否存在需要的数据。
•如果Cache中有请求的数据,称为命中(hit),计算机直接从Cache中获取数据,而不必访问主存。
•如果Cache中没有请求的数据,称为未命中(miss),计算机就会从主存中读取数据,并将数据存储到Cache中。
Cache的基本原理局部性原理•Cache的原理基于计算机程序的局部性原理。
•局部性原理分为时间局部性和空间局部性:–时间局部性:如果程序中某个数据项被访问,那么在不久的将来它极有可能再次被访问。
–空间局部性:如果程序中某个数据项被访问,那么在不久的将来其附近的数据极有可能被访问。
•Cache利用局部性原理,将经常使用的数据存储在靠近处理器的快速存储器中,提高了数据的访问速度。
Cache的层次结构•Cache的设计通常采用多级层次结构,例如L1、L2、L3 Cache等。
–L1 Cache是离处理器最近的Cache,速度最快。
–L2 Cache位于L1 Cache之后,容量更大,速度较慢。
–L3 Cache相对L2 Cache再远一些,容量更大,速度更慢。
•多级Cache的设计是为了兼顾容量和速度的平衡,提高整体系统性能。
Cache的替换策略•Cache的容量是有限的,当Cache已满时,需要替换掉一些数据来为新数据腾出空间。
•常见的替换策略包括:–最近最少使用(LRU):替换最近最久未使用的数据。
–最不经常使用(LFU):替换使用频率最低的数据。
–随机替换:随机选择一个数据进行替换。
Cache的写策略•当处理器需要写入数据时,Cache可以采用以下两种策略:–写回(write back):只将数据更新写入Cache,并在有需要时再一次性写回主存。
Cache基础知识介绍ppt课件
5
Cache与主存之间可以采取的地址映射方式有 以下三种:
+ 全相联映射方式 + 直接相联映射方式 + 组组相联映射方式
9
10
+ 块:块是cache与主存的传输单位。 + 路(way): 路是组相联映射方式的cache结构中的
基本存储单位,每一路存储一个块的数据。 + 组(entry):组是组相联映射方式的cache对块进行
管理的单位。 + 区 (tag) :块的地址对应的主存储器中的区。 + 块内偏移地址(offset): 用来标示块内一个字节的
存。 优点:速度较高。 缺点:可靠性较差,控制操作比较复杂。
20
+ 对于多个主设备的共享存储总线系统,如带有DMA 的系统,或者多处理器系统,由于其他的主设备也 可以改变主存的内容,而这种改变是cache无法得知 的,因此必须对cache的一致性问题进行处理。
CPU
Cache
X`
DMA
主存储器
X``
7
+ 直接相联方式 地址映射规则: 主存储器中一块只能映射到 cache的一个特定的块中。 (1) 主存与cache分成相同大小的数据块。 (2) 主存容量应是cache容量的整数倍,将主存 空间按cache的容量分成区,主存中每一区的 块数与cache的总块数相等。 (3) 主存中某区的一块存入cache时只能存入缓 存中块号相同的位置。 优点:地址映射方式简单,数据访问时,只需 检查区号是否相等即可,因而可以得到比较快 的访问速度,硬件设备简单。 缺点:替换操作频繁,命中率比较低。
存储层次--CACHE基本知识PPT48页
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
存储层次--CACHE基本知识
16、人民应该为法律而战斗,就像为 了城墙 而战斗 一样。 ——赫 拉克利 特 17、人类对于不公正的行为加以指责 ,并非 因为他 们愿意 做出这 种行为 ,而是 惟恐自 己会成 为这种 行为的 牺牲者 。—— 柏拉图 18、制定法律法令,就是为了不让强 者做什 么事都 横行霸 道。— —奥维 德 19、法律是社会的习惯和思想的结晶 。—— 托·伍·威尔逊 20、人们嘴上挂着的法律,其真实含 义是财 富。— —爱献 生
cache计算机组成原理
cache计算机组成原理小伙伴们!今天咱们来唠唠计算机组成原理里超级有趣的一个东西——Cache(高速缓冲存储器)。
你可以把计算机想象成一个超级大的办公室。
这里面有各种各样的员工(部件)在忙忙碌碌地干活。
而Cache呢,就像是办公室里最机灵的小秘书。
为啥这么说呢?你想啊,CPU(中央处理器)这个大老板,每天都要处理好多好多的数据,就像大老板每天要做各种决策一样。
这些数据呢,原本是放在内存这个大仓库里的。
可是呀,内存离CPU有点远,每次CPU要找个数据,就像大老板要从老远的大仓库里找个文件一样,特别费时间。
这时候,Cache就闪亮登场啦。
Cache这个小秘书特别聪明,它就在CPU的身边,离得超级近。
它就像有个超能力,会提前猜一猜CPU这个大老板接下来可能会用到哪些数据。
然后呢,它就偷偷地从内存这个大仓库里把那些可能会用到的数据拿过来,放在自己这里。
当CPU说:“我要找个数据啦。
”Cache就会特别快地说:“老板,你要的是不是这个呀?”然后一下子就把数据给CPU了。
这速度,就像闪电一样快。
Cache这个小秘书呀,它的存储空间可没有内存那么大。
它就像是一个小巧精致的文件柜,虽然装不了太多东西,但是放的都是最最常用的文件。
比如说,你每天都要用到的办公软件的一些小设置之类的。
它把这些常用的数据放在身边,就为了能让CPU快速拿到。
那Cache是怎么知道哪些数据是常用的呢?这就像是小秘书有自己的小秘诀。
它会根据数据被访问的频率呀,还有一些算法来判断。
就好像小秘书会观察,哪些文件大老板经常看,哪些偶尔才看一次。
经常看的就牢牢放在自己身边的小文件柜里,不常看的就先放一边。
有时候呀,也会出点小状况。
比如说,Cache以为CPU会用到某个数据,就把它从内存里拿过来了,结果CPU要的是另外一个数据。
这就像小秘书猜错了大老板的心思。
不过没关系呀,Cache会很快调整自己的策略,再去内存里找正确的数据。
而且呢,Cache还有不同的级别。
存储层次--CACHE基本知识48页PPT
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,但 是经过 统计学 和成功 人士的 分析得 出,乐 观是成 功的第 三要素 。
39、没有不老的誓言,没有不变的承 诺,踏 上旅途 ,义无 反顾。 40、对时间的价值没有没有深切认识 的人, 决不会 坚韧勤 勉。
21、要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。——培根 22、业精于勤,荒于嬉;行成于思,毁于随。——韩愈
23、一切节省,归根到底都归结为时间的节省。——马克思 24、意志命运往往背道而驰,决心到最后会全部推倒。——莎士比亚
25、学习是劳动,是充满思想的劳动。——乌申斯基
谢!
cache
cacheCache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRandonAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRandomAccessMemory静态存储器)组成。
它是位于CPU与内存间的一种容量较小但速度很高的存储器。
CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上CACHE存储器 - 技术分析Cache 的逻辑结构存储层次结构1.读取顺序CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。
正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。
这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。
总的来说,CPU 读取数据的顺序是先Cache后内存。
缓存2.缓存分类Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。
在以往的观念中,L1Cache是集成在CPU中的,被称为片内Cache。
在L1中还分数据Cache(I-Cache)和指令Cache(D-Cache)。
它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。
Cache的基本知识PPT学习教案
5.2 Cache 基本知识
第20页/共45页
5 . 两 种 写策 略的比 较
◆
写回法的优点:速度快,所使用的存 储器频
◆
写直达法的优点:易于实现,一致性 好。
带较低;
第21页/共45页
6. 写缓冲 器
7. “写”操作时的调块
⑴ 理想 Cache (命中 率为100 %)情 况下的CPI 为2.0 ,时钟 周期为 2ns, 平均每 条指令 访存1 .3次。
⑵ 两种 Cache 容量均 为64K B,块 大小都 是32 字节 。
5.2 Cache 基本知识
第38页/共45页
⑶ 图5.10说明 ,在组 相联Cache中 ,我们 必须增 加一 个多路 选择器 ,用于 根据标 识匹配 结果 从相 应组的 块中选 择所需 的数据 。因为CPU 的速 度直接 与Cach e命中 的速度 紧密相 关,所 以对 于组相 联Cach e,由 于多路 选择器 的存 在而 使CPU的时钟 周期增 加到原 来的1.1 0倍。
CPU时间=IC×[CPIexe+每条指令 的平均 存储 器停顿周期数]×时钟周期时间
5.2 Cache 基本知识
第34页/共45页
例5.2 我们用 一个和 Alpha AXP类 似的机 器作为
第一个例 子。假 设Cach e失效 开销为 50个时 钟 周期,当 不考虑 存储器 停顿时 ,所有 指令的 执行时间 都是2.0 个时钟 周期, Cach e的失 效 率为2%, 平均每 条指令 访存1.33次 。试分 析 Cache对 性能的 影响。
5.2 Cache 基本知识
CPU时间2路 ───── = ─── ── = 1.01
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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