我有256个块,每个块16个字节。我试图根据双向组关联缓存来定义未命中或命中十六进制地址。我怀疑第二个可以错过因为双向组关联?我觉得很受欢迎,但我不确定。
2ABC10A2
2ABC10A7
4BBC10A0
2ABC10A9
所以如果我每个块有16个字节,那么我有2^4
,然后是4位,这意味着我的偏移量分别为2, 7, 0, 9
。如果我有256个块,我有2^8
然后8位索引,这意味着0A
遗骸是标签。我想我到了这里。所以我得到了桌子,但我不是因为小姐/命中部分。他们是对的吗?如果有错误,你能解决吗?我想学习。感谢。
TAG INDEX BLOCK DATA HIT/MISS
2ABC1 0A 2ABC10A0 + 16 BYTE (2ABC10A0 - 2ABC10AF ) MISS
2ABC1 0A 2ABC10A0 + 16 BYTE HIT
4BBC1 0A 4BBC10A0 + 16 BYTE MISS
2ABC1 0A 2ABC10A0 + 16 BYTE HIT
答案 0 :(得分:0)
未命中/命中部分是正确的。
索引位宽度为7而不是8.对于256个块的2路组关联高速缓存,索引位宽度为log 2 (256/2)= 7。
为了更准确,假设所有访问都是加载(读操作),则未命中/命中部分是正确的。如果包含存储(写入操作),则它取决于缓存写入策略的选择。