cache的标记位怎么求

如题所述

主存字块标记位数的计算方式为:4*1024*1024=2^2*2^10*2^10=2^22。在计算时,主存为1MB,为2的20次方,故主存地址为20位,cache是16kb,为2的14次方,故cache地址位为14位,由于块大小是512B,为2的9次方,故块内地址为9位,由此得出cache的地址结构为:块号(14-9=5位)+块内地址(9位)。
据cache的结构,将其分为下面几个部分:
cache存储器:它由n个cache行组成,每个cache行都有下面3个部分组成:

目录存储段(directory store):cache使用目录存储段来记录当前行对应主存中的位置。也就是我们常说的cache标签(cache-tag).
数据项段(data section):此段就是用来缓存主存内容的。我们通常所说的32K的cache指的就是数据项段的大小。
状态信息段(status infomation):用来记录数据项段的状态信息。常见的状态位有
有效位(valid bit):标记当前cache行内容是最初从主存中获取到的数据,可以为cpu使用。
脏位(dirty bit):标记cache行的内容与主存中相应的内容是否一致。
cache控制器:它根据cpu的读写命令自动完成查找、缓存等工作。它将cpu的访问地址分为了下面3个部分:
标签域(tag field):用来与目录存储段比较,查找此地址中的内容是否在cache中存在.
组索引域(set index filed):当命中时,用来定位命中(hit)在具体的那一cache行上。
数据索引域(data index field):当命中时,用来定位命中在具体中行的哪个字节里。
温馨提示:答案为网友推荐,仅供参考
相似回答