实验 5:数据高速缓存
在此前的实验中,同学们已经实现了一个简单的流水线 CPU。在流水线 CPU 中,我们读取指令和访问内存都是通过直接访问内存来实现的。然而,直接访问内存的效率并不高,因为内存的访问速度远远低于 CPU 的执行速度。为了提高 CPU 的性能,我们通常会在 CPU 和内存之间加入一个高速缓存 Cache。
在本次实验中,我们将学习高速缓存 Cache 的组织结构和工作机理。
说明
有兴趣的同学可以自行尝试将 Cache 插入到流水线 CPU 中。由于其难度过高,在本次实验中我们不要求大家将 Cache 接入先前实验中设计的 CPU。
任务 1:二路组相连 Cache
Task 1
根据给出的直接映射 Cache 的代码,实现二路组相连 Cache,支持 LRU 替换策略,通过助教提供的读写测试。
任务 2:多样化的替换策略
Task 2
让你的 Cache 支持伪随机替换策略、FIFO 替换策略以及 LFU 三种替换策略,通过助教提供的读写测试,并与 LRU 的结果进行对比。
注意
- 请在实验报告中说明你的实现方式,以及在测试中的表现,分析不同替换策略的优劣。
任务 3:N 路组相连 Cache
Task 3
实现参数化的 N 路组相连 Cache,支持 LRU 替换策略,通过助教提供的读写测试。
N 路组相连 Cache 的定义
本次实验中的 N way 中的 N 只需要支持 2, 4, 8, 16 即可,因此这项得分包含上面的二路组相连 Cache 。
实验检查与提交
本次实验布置时间为 2025-05-07,持续两周。相应的 DDL 节点如下:
检查 DDL | 报告提交 DDL |
---|---|
2025-05-21 21:00 | 2025-05-28 23:59 |
检查与报告延迟一周以内(含)的,至多只能得到 80% 分数;延迟一周以上、两周以内(含)的,至多只能得到 60% 分数;延迟超过两周的不得分。
提醒
实验的 DDL 为当天晚上 21:00。助教有权利在 21:00 准时停止检查,请大家合理安排好自己的时间。
关于实验报告
实验报告需要大家提交 PDF 格式。我们推荐大家使用 Markdown 或者 Latex 撰写实验报告,这样可以直接导出为 PDF。大家也可以使用 Word、WPS 等进行报告撰写,最后转换为 PDF 格式。我们不推荐也不拒绝大家手写实验报告,但请将其拍照扫描成 PDF 文件后再上传。我们不接受任何因为文件格式错误而导致成绩异常的申诉请求!
在实验报告中,你需要给出每一项任务的答案,并附上必要的说明过程(或截图)。
特别地:实验报告的字数和排版与最终得分无关。影响得分的仅有内容正确性与完整性。
实验报告请提交至 BB 平台。