LAB2 PB13204003 施钰婷

实验二 Cache 模拟器


实验目的

  • 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;
  • 掌握Cache容量、相联度、块大小对Cache性能的影响;
  • 掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处;
  • 理解LRU与随机法的基本思想以及它们对Cache性能的影响。

实现内容

  • 能够设置 Cache 总的大小
  • 能够设置 Cache 块的大小
  • 能够设置Cache 的映射机制:直接映射、n-路组相联
  • 能够设置 Cache 的替换策略:LRU、FIFO
  • 能够设置 Cache 的写策略:写回法、写直达法
  • 能够设置将 Cache 分为数据 Cache 和 指令 Cache
  • 能够设置预取策略

实验原理

Cache结构
  • 采用分层分级结构,越接近CPU则速度越快,存储空间越小。
Cache分层结构
Cache功能
  • Cache可以协调从CPU到主存的读写速度差异和存储空间差异,通过若干层cache,以接近CPU的速度读取主存主存大小的存储空间。
  • 提供“缓存”的目的是为了让数据访问的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”,即一定程序执行时间和空间内,被访问的代码集中于一部分。
映射机制
  • 直接映射:每一个内存块地址都可通过模运算对应到一个唯一缓存块上。这是一种多对一映射:多个内存块地址须共享一个缓存区域。
  • 组相联映射:把存储空间组织成多个组,每个组有若干数据块。通过建立内存数据和组索引的对应关系,一个内存块可以被载入到对应组内的任一数据块上。
  • 全相连:内存中的数据块可以被放置到缓存的任意区域。
n路组关联
n路组关联
换页算法

电脑内存空间的大小固定,无法容纳服务器上所有的文件,所以当有新的文件要被置换入缓存时,必须根据一定的原则来替换掉适当的文件。

  • 先进先出算法(FIFO):最先进入的内容作为替换对象
  • 最久未使用算法(LRU):最久没有访问的内容作为替换对象
写策略
  • 写回法:将缓存中的页换回主存中时,将修改过的快加载回主存。
  • 写直达法:在修改缓存中的页时,直接也写回主存。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 内存寻址 1.1 物理地址、虚拟地址以及线性地址 物理地址: 物理内存的内存单元地址 虚拟地址: 程序员看到的...
    疯狂小王子阅读 2,979评论 3 21
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,700评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,718评论 25 709
  • 皓然去年暑假到姥姥家,交了一个好朋友。 今年来姥姥家之前就惦记着这位好朋友。 一年未见,见了面很是欢喜。孩子没有成...
    一瓶花开阅读 461评论 0 1
  • 现代人的审视观念,同以往有很大的区别。造成的这种不同:一部分原因是随着科技发展,人对此的依赖性特别大,夸张说...
    笔尖跃动心仪阅读 356评论 0 2