Cache-主存存储层次中,主存有0~7共8块,Cache为4块,采用组相联映像,分2组。假设Cache已先后访问并预取进了主存的第4136块,现访存地址流又为1241370256时
第六次的时候7进来,为什么替换掉的是第一组的数据块2?第五次的时候没有命中数据,且1组放了个3进来,为什么还写入1组里面?
Cache-主存存储层次中,主存有0~7共8块,Cache为4块,采用组相联映像,分2组。假设Cache已先后访问并预取进了主存的第4136块,现访存地址流又为1241370256时
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在分析Cache-主存存储层次时,通常采用组相联映射方式,意味着Cache中的每一块可以对应主存中的多个块,但不是所有块。在这个例子中,Cache被分为两组,每组有若干块。当Cache试图获取主存中的数据时,会根据访存地址找到对应的主存块,如果这个块已经在Cache的某组中了,就称为命中(Hit),否则为未命中(Miss)。当发生未命中时,主存中的相应数据块会被加载到Cache中,并可能替换掉该组中的某个现有数据块。
关于你的疑问:
对于图1和图2的内容,它们似乎描述了Cache的命中情况和对应的数据内容变化。但图中有些内容重复或不明确,例如多次出现“4”和“H”,可能是绘图时的疏忽或者是为了强调某些信息。在分析这种图时,需要关注每次访问的访存地址、Cache的命中状态以及Cache和主存的数据变化。
总的来说,Cache-主存存储层次中的替换策略和命中状态是决定数据如何进出Cache的关键因素。具体的行为和结果取决于Cache的组织方式、替换策略以及当前的Cache状态。