【自用】吉林大学计算机系统结构第二章:缓存优化 曲冠南老师版 笔记

文章目录

课程

在这里插入图片描述
按写分配:先处理不命中,把主存中要写的copy到cache里,然后处理写
不按写分配:不处理不命中,直接把要写的写回去
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接映射和二路组相联映射的不同参数:1.不命中率,直接映射的失效率高于同等情况下的组相联映射。2.周期时间,组相联映射周期时间长于直接映射(因为要比较组内的Tag位)

请添加图片描述
不太会分析cpu性能,应该是两路组相联的cpu性能好(?)

在这里插入图片描述
在这里插入图片描述
程序执行周期数就是cpu时间
在这里插入图片描述
直接映像最容易导致冲突不命中
冲突不命中的直接原因是相联度不够
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/136549e37c0145848e3f6c4cebe6ca4f.png)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么增加块大小可以降低强制不命中:减少块不在cache中的情况。(老师没讲,我自己写的)
不良后果:处理失效的开销增大
一个字八个字节三十二位

在这里插入图片描述
片外cache是cpu外的cache
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
软件预取
容量8KB,2的十三次方,块大小16B,一块用掉四位,剩余2的九次方是标志位,则有512行,每个元素8B,则一块两个元素,a数组150块,b数组152块,不出现容量失效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
预取的话加指令IC会变多
在这里插入图片描述
在这里插入图片描述
利用数据访问的局部性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目的是不想访问存储器
在这里插入图片描述
局部不命中率:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
了解就行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
存在问题:多个进程的虚拟地址可能相同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决分支指令的问题
基础块:除了进和出,任何一条指令的分支指出会跳出到这个块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.降低Cache失效率有哪几种方法?简述其基本思想。
答:常用的降低Cache失效率的方法有下面几种:

(1) 增加Cache块大小。增加块大小利用了程序的空间局部性。

(2) 增加Cache的容量。

(3) 提高相联度,降低冲突失效。

(4) 伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。

(5) 硬件预取技术。在处理器提出访问请求前预取指令和数据。

(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

(7) 编译器优化,通过对软件的优化来降低失效率。

(8) “牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

7.简述减小Cache失效开销的几种方法。
让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache技术、采用二级Cache。

8.是故障性预取?什么是非故障性预取?
故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会发生异常。

非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不发生异常。

  1. (计算题)
    试推导三级Cache的平均访存时间公式,

假设:

(1)命中时间分别为HL1,HL2,HL3;

(2)失效率分别为ML1,ML2,ML3;

(3)第三级Cache的失效开销为PL3.
解:平均访存时间 = 命中时间+失效率×失效开销

只有第I层失效时才会访问第I+1。

因此:

平均访问时间TA =HL1+ML1{HL2+ML2(HL3+ML3×PL3)}

10.在伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。这时只需要1个额外的周期。假设直接映像的命中时间为1个时钟周期,失效开销为50个时钟周期;2KB直接映象Cache的失效率为9.8%,2路组相联的失效率为7.6%;128KB直接映象Cache的失效率为1.0%,2路组相联的失效率为0.7%。

(1)推导出平均访存时间的公式。

(2)利用(1)中得到的公式,对于2KBCache和128KBCache,计算伪相联的平均访存时间。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值