Cache访问

全相联映射方式的优点是Cache的空间利用率高,但缺点是相联存储器庞大,比较电路复杂,因此只适合于小容量的Cache之用。 

 

 

 

访问过程: 当一个主存块调入 Cache中时,会同时将主存地址的T标志存入Cache块的标志字段中。当CPU送来一个访存地址时,首先,根据该主存地址的C字段找到Cache的相 应块,然后将该块标志字段中存放的标志与主存地址的T标志进行比较,若相符,说明主存的块目前已调入该Cache块中,则命中,于是使用主存地址的W字段 访问该Cache块的相应字单元;若不相符,则未命中,于是使用主存地址直接访主存。

 

评价: 直接相联映射方式的优点 是比较电路最简单,但缺点是Cache块冲突率较高,从而降低了Cache的利用率。由于主存的每一块只能映射到Cache的一个特定块上,当主存的某块 需调入Cache时,如果对应的Cache特定块已被占用,而Cache中的其它块即使空闲,主存的块也只能通过替换的方式调入特定块的位置,不能放置到 其它块的位置上。 

 

 

 

当一个主存块调入Cache中时,会同时将其主存块地址的前s位写入一个由相联存储器实现的快表的对应Cache块项的s字段中。例如,设主存的某块调入Cache的第1组的第2块中,则在快表的组1第3项的s字段会登记下该主存块地址的前s位。

 

 CPU访存时,首先,根据主存地址中的主存块号中的u字段找到快表的相应组,然后将该组的所有项的前s位同时与主 存地址的s字段作比较,若相符,则说明主存块在Cache中,于是将Cache中该项的v字段取出,作为Cache地址的v字段,而Cache地址的u、 W字段直接由主存地址的u、W字段形成,最后形成一个完整的访Cache地址。当然,若比较结果是没有相符项,则未命中,由主存地址直接访主存。

 

 其实,全相联映射和直接相联映射可以看成是组相联映射的两个极端情况。若u=0,v=C,则Cache只包含1组,此即全相联映射方式;若u=C,v=0,则组内的块数等于1,此即直接相联映射。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章