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;
以组相联高速缓存为例,查看数据是否命中缓存:
    1. 根据s找到对应的组号
    2. 根据标志位tag和有效位valid找到对应的缓存行
    1. 根据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
 
 
 
 
 
posted @ 2020-06-03 20:16  skyliulu  阅读(293)  评论(0编辑  收藏  举报