csapp:cachelab
一、实验要求
实现一个缓存模拟器,返回缓存的命中,未命中,淘汰的次数
二、预备知识
缓存的组织结构
(S、E、B、m)
-
m:存储器地址位数,M=2^m为不同的地址数量;
-
S:高速缓存组数量,S=2^s,S=1时为全相联高速缓存;
-
E:一个高速缓存组中的缓存行数量,E=1时为直接映射缓存,E>=2时为组相联缓存;
-
B:一个缓存行的数据块的字节数,B=2^b;
以组相联高速缓存为例,查看数据是否命中缓存:
-
根据s找到对应的组号
-
根据标志位tag和有效位valid找到对应的缓存行
-
根据b计算偏移量找到数据
三、实验结果
Your simulator Reference simulator Points (s,E,b) Hits Misses Evicts Hits Misses Evicts 3 (1,1,1) 9 8 6 9 8 6 traces/yi2.trace 3 (4,2,4) 4 5 2 4 5 2 traces/yi.trace 3 (2,1,4) 2 3 1 2 3 1 traces/dave.trace 3 (2,1,3) 167 71 67 167 71 67 traces/trans.trace 3 (2,2,3) 201 37 29 201 37 29 traces/trans.trace 3 (2,4,3) 212 26 10 212 26 10 traces/trans.trace 3 (5,1,5) 231 7 0 231 7 0 traces/trans.trace 6 (5,1,5) 265189 21775 21743 265189 21775 21743 traces/long.trace 27
TEST_CSIM_RESULTS=27