第1关:Part A

任务描述
本关任务:完成csim.c文件,实现一个cache simulator,模拟Cache的访问过程。替换算法采用最近最少使用替换策略(LRU)。

可参考资料:官网实验文档 。

相关知识
为了完成本关任务,你需要掌握:1.Cache的基本工作原理,2.最近最少使用替换算法(LRU)。

Cache的基本工作原理
使用Cache改善系统性能的依据是程序的局部性原理。通常采用相联存储器。

根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。

系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。
CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。

命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。

更多有关Cache的内容可以参考《深入理解计算机系统》第三版第六章中有关高速缓存器的介绍。

最近最少使用替换算法
LRU是Least Recently Used的缩写。它是基于“如果一个数据在最近一段时间内使用次数很少,那

《深入理解计算机系统》:Cache Lab相关推荐

  1. 深入理解计算机系统(CSAPP)含lab详解 完结

    文章目录 深入理解计算机操作系统-第一章 1.1 信息就是位 + 上下文 1.2 程序被其他程序翻译成不同的格式 1.3 了解编译系统如何工作是大有益处的 1.4 处理器读并解释储存在内存中的指令 1 ...

  2. 《深入理解计算机系统》实验二Bomb Lab下载和官方文档机翻

    前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是实验二Bomb Lab的Writeup机翻. 原文:http://cs ...

  3. 《深入理解计算机系统》实验二Bomb Lab

    前言 <深入理解计算机系统>实验二Bomb Lab的下载和官网文档的机翻请看 <深入理解计算机系统>实验二Bomb Lab下载和官方文档机翻 用的调试工具是gdb,用到的指令如 ...

  4. 《深入理解计算机系统》实验四Architecture Lab下载和官方文档机翻

    前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是是实验四Architecture Lab中的Writeup(archl ...

  5. 《深入理解计算机系统》Y86-64实验四Architecture Lab环境安装

    前言 第四章提到的Y86-64和实验四Architecture Lab的环境安装. 先从官网下载文件: <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/l ...

  6. 深入理解计算机系统(CSAPP) 实验详解:CacheLab

    近一段时间项目太忙导致没有继续,还好最近空下来一些,咱们继续冲! 更新历史 20210104开始更新 20210107完成实验一内容 本文介绍的是CSAPP书籍中的第四个lab: Cache lab. ...

  7. 【组队学习】【32期】深入理解计算机系统

    深入理解计算机系统 航路开辟者:李岳昆.易远哲 领航员:初晓宇 航海士:叶前坤.沈豪 基本信息 开源内容:https://github.com/datawhalechina/team-learning ...

  8. bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。

    文章目录 深入理解计算机系统笔记(2) 第一次代码重构 可变参数输出print函数 bitmap学习 P10 有限自动机 指令周期 递归求和函数c语言和汇编语言 回调函数的实现 call和ret指令的 ...

  9. bilibili深入理解计算机系统笔记(1):汇编模拟器能跑了

    文章目录 深入理解计算机系统笔记 P1笔记 p2笔记 p3笔记 p4笔记 汇编模拟器(p5-7) 封装访存接口 输出计算机状态 实现指令 call指令的实现 bug 积累 include重复包含的bu ...

最新文章

  1. native 关键的理解
  2. golang 文件服务器 实现
  3. 关于i++和++i的实验结果解释
  4. Laravel 上传图片及多张图片到七牛云
  5. destoon入门实例与常见问题汇总
  6. python 卷积神经网络 应用_卷积神经网络在目标定位中的应用
  7. Awesomium源码及编译
  8. c语言中的 #ifndef/#define/#endif的作用
  9. 电脑正下方显示桌面和计算机,电脑桌面下方的显示栏怎么设置
  10. 计算机控制 英文 论文,计算机论文英文翻译
  11. 记在2019,winter is coming
  12. 云原生数据库 Amazon DynamoDB 十年创新回顾
  13. Android 之注册Facebook开发者账号
  14. el-form表单对象内还嵌套对象,绑定的prop规则校验会失效
  15. 聚类dbi指数_聚类-K-Means
  16. 《周志明的软件架构课》学习笔记 Day15
  17. python的idle怎么运行_python中的idle是如何运行的
  18. torch.nn.modules.activation.ReLU is not a Module subclass
  19. 有哪些网站上传视频是不会插入广告的?
  20. 乐鑫 ESP32-H2 SoC 与 Thread SDK 通过 Thread 1.3.0 认证

热门文章

  1. 普乐蛙大型5d动感影院4d影院设备价格4d动感影院座椅
  2. java登录无线路由器_路由器的使用
  3. dma_alloc_coherent 申请内存用法和问题总结
  4. 曾仕强《领导的沟通艺术》读书笔记
  5. 9种常见的INTERNET接入方式
  6. 英汉对照名言隽语(四)
  7. 什么是黑盒测试和白盒测试、灰盒测试?
  8. 淘宝/天猫API接口,获得淘宝商品详情高级版
  9. layUI中使用layer.open,在content打开数据表格,获取值并返回
  10. 学习国家颁布的三部信息安全领域法律,理解当前工作中的信息安全合规要求