其他分享
首页 > 其他分享> > 2021年10月24日 计组

2021年10月24日 计组

作者:互联网

1. 局部性原理及性能分析

 

1.1 局部性原理

 

1.2 性能分析

 

 1.3 总结

2 Cache-地址映射

 

 

2.1 全相联映射

2.2 直接映射

2.3  组相联映射

2.4 总结

 

3. 替换算法

 

3.1 全相联映射替换算法

3.2 直接映射替换算法 

标记位用来区分是命中Cache块还是替换Cache块(同一个标记代表是内存中的同一行数据或者地址)

 

3.3 二路组相联映射

3.4 图表理解替换算法 

3.5 Cache工作原理

 

3.6 写策略

 

 

 

 3.6.1 写策略小结

3.6.2  写策略优化

 

4. Cache回顾 

Cache是为了解决CPU和主存之间速度不匹配而被提出

 

5. Cache总例题

 全相联映射

 直接映射

 二路相联映射

 不同的替换策略

 5.1 总结

 

6. Cache工作原理

7.  Cache容量

 

 

总结

1. 什么是Cache?谈谈Cache-主存体系中的命中率的概念?该体系的平均访问时间?

  主存以块为单位放到Cache当中,提高CPU访问主存数据的速度。命中率就是CPU能直接从Cache访问到数据的概率,平均访问时间=命中率×访问Cache的时间+失效率×访问主存的时间(或者是访问主存的时间+访问Cache的时间,取决于访问模式的设计)

2. 为什么要有Cache-地址映射?常见的Cache-地址映射的策略有哪些?

  Cache的容量远小于主存,因此不能把内存中的所有存储行放入Cache中,因此需要一个内存和Cache之间的地址映射策略,这样计算机就可以知道Cache中一行的数据是来自主存中的哪一行。常见的Cache-地址映射策略有全相联、直接映射、组相联映射

3. 为什么要有替换算法?为什么要有写策略?相联存储器的作用?

    CPU每次访存先去Cache中找对应的数据,如果找不到再去主存中找,找完之后再把这个数据放到Cache中,因此Cache内的数据会被实时动态更新,因此提出了一系列的替换算法(随机算法,FIFO(每行一个计数器,Cache被命中则清零,否则加1,在需要的时候踢出计数器最大的值),LRU(只有Cache被命中就+1,否则不变,在需要的时候踢出计数器最小的值),LFU)。

  在CPU访问主存或者Cache时有时会进行写操作,这个时候就会出现同一个数据在Cache副本中与主存中不匹配,因此通过添加脏位的写回法或者添加缓冲器的全写法解决。

  相联存储器的作用是在CPU访存的时候,根据映射到的Cache组号并行地比较Cache组内标记,若标记位为1,则Cache命中,CPU直接从Cache中拿数据。若这个标记位不匹配,则可能在尽可能的情况下先把数据放入符合标准的Cache行,失败的话则执行替换算法。

4. 一个Cache块有哪几个地址块组成?

  标记项(有效位+标记位)+组地址/Cache字块地址+字块内地址。

5. 谈谈你是如何在二进制和十进制的角度理解Cache命中?

  在二进制的角度来说,只要标记位相同那么就可以Cache命中。在十进制的角度来说,由于一个Cache行即一个Cache块的大小为多个字节,而主存又是按照字节编址,因此一个Cache块可以包含多个主存行,所以只要CPU访存的时候在同一个Cache块的多个字节编号内(标记位相同)即为Cache命中。

6. 谈谈相联映射和直接映射的区别?

  本质上都是为了把某次CPU访存的数据放到合适的Cache块中,直接映射在相联的映射的基础上还需要额外的比特位来确定将每次访存的数据放到哪个Cache块上。相联映射存在替换算法,而直接映射不存在替换算法。

  直接映射虽然标记位会更少,但是Cache命中率会更低,因为对CPU访存的这次数据放入Cache的方式要求更高。

7. 谈谈CPU访问主存和访问Cache的区别?

  CPU通过数据线访问主存是以字为单位的,CPU访问Cache是以块为单位的,比字要大

标签:24,10,主存,映射,Cache,替换算法,2021,CPU,相联
来源: https://blog.csdn.net/dsfxvbdfs/article/details/120941711