手把手教你写Cache模拟器

Introduction

项目地址:


也放到了CacheSim-开源中国
这个专辑记录了写一个非常简单的cache模拟器的过程。
主要是因为我要做的研究里,使用gem5来跑程序太慢了,所以只能自己在项目里实现一个简易的cache模拟器,获得一些实验数据。
正好加州大学圣迭戈分校(University of California, San Diego,简称为UCSD,又常译为加州大学圣地亚哥分校)有一门Principles of Computer Archictecture的课程,其中有个cache 模拟器的实验,本专辑最一开始参考的代码即是某位同学的代码,并在他的基础上,进行了错误纠正和优化完善。
本项目的整个代码以及文章编写都在B站上进行了直播,地址:
FindHao的直播间

本专辑正在编写,大概7.24完成。行文仓促,如有纰漏,恳请指正。

1. Cache背景知识简介

本文简单介绍了Cache的相关背景知识,包括cache的来源以及结构,说明了组相联的地址映射方式和地址划分。并解释了模拟器中地址字段位数的设定。

2. Cache模拟器类的设计

本文说明了模拟Cache需要完成的功能,以及大体框架设计。介绍了头文件的内容

3. Cache模拟器详细实现

主要介绍了读入trace文件、分析指令、构造函数、检查命中函数等

4. Cache模拟器详细实现2

主要说明了cache miss以后的操作,包括set_cache_lineget_cache_free_line函数。

5. 实验数据总结

本文通过python脚本对实验数据进行了统计,以图表形式进行了说明。

6. 增加Cache locking技术的支持(代码中已经实现,以及L1,L2多级cache的设计,文章还未补充)

文章版权归 FindHao 所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明作者 FindHao 和本文原始地址:
https://www.findhao.net/easycoding/1717

你可能喜欢:(相似内容推荐和广告都使用了谷歌的推荐系统,需要对本站取消广告屏蔽才能显示。感谢点击↓广告支持博主~)

Find

新浪微博(FindSpace博客)QQ群:不安分的Coder(375670127) 不安分的Coder

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*