初始提交:cache 命中率优化实验(计算机组成原理,大二下)
计算机组成原理课程实验(大二下):在给定 Cache 结构下优化矩阵转置的访存行为,降低 miss 数。
本实验源自 CMU CS:APP cachelab 的 Part B(transpose)。目标 Cache 为 32 组直接映射、块大小 32 字节(s=5, E=1, b=5),统计三种尺寸矩阵转置过程中的 miss 数并按阈值评分。实验要求与约束(提炼自实验报告):
trans.c 中 transpose_submit 的优化思路:
transpose_submit
依赖:64 位 x86-64 Linux、gcc、python3、valgrind;另需课程提供的参考模拟器 csim-ref(二进制,不入库,test-trans 内部调用它统计 miss)。
csim-ref
make # 编译 test-trans 和 tracegen ./test-trans -M 32 -N 32 # 单独测某个尺寸 ./test-trans -M 64 -N 64 ./test-trans -M 61 -N 67 python3 driver.py # 一键测三种尺寸并计分 python3 cal_set_num.py # 打印矩阵元素到 cache 组号的映射 make clean # 清理生成物
说明:实验原始目录中另有 csim-ref、test-trans、tracegen、trans.o 等编译产物或课程二进制,以及 23MB 的 valgrind 中间 trace 文件 trace.tmp 与 trace.f0/f1,均为运行时生成物,不入库,需要时由 make 与 test-trans 重新生成。
make
计算机组成原理实验:CMU cachelab 风格的矩阵转置 cache 命中率优化(trans.c)
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
cache 命中率优化实验
任务背景
本实验源自 CMU CS:APP cachelab 的 Part B(transpose)。目标 Cache 为 32 组直接映射、块大小 32 字节(s=5, E=1, b=5),统计三种尺寸矩阵转置过程中的 miss 数并按阈值评分。实验要求与约束(提炼自实验报告):
trans.c 中
transpose_submit的优化思路:内容结构
运行方法
依赖:64 位 x86-64 Linux、gcc、python3、valgrind;另需课程提供的参考模拟器
csim-ref(二进制,不入库,test-trans 内部调用它统计 miss)。说明:实验原始目录中另有 csim-ref、test-trans、tracegen、trans.o 等编译产物或课程二进制,以及 23MB 的 valgrind 中间 trace 文件 trace.tmp 与 trace.f0/f1,均为运行时生成物,不入库,需要时由
make与 test-trans 重新生成。来源声明
transpose_submit及三种尺寸的分块策略、cal_set_num.txt 的输出结果为本人完成;