地址映像有哪三种方式

描述

  所谓地址映像方式是指如何确定Cache中的内容是主存中的哪一部分的副本,即必须应用某种函数把主存地址映像到Cache中定位。

  信息按某种方式装入Cache中后,执行程序时,应将主存地址变换为Cache地址,这个变换过程叫作地址变换。

  地址映像方式通常采用直接映像、全相联映像、组相联映像三种:

  1-直接映像

  每个主存地址映像到Cache中的一个指定地址的方式,称为直接映像方式。在直接映像方式下,主存中存储单元的数据只可调入Cache中的一个位置,如果主存中另一个存储单元的数据也要调入该位置则将发生冲突。

  地址映像的方法一般是将主存空间按Cache的尺寸分区,每区内相同的块号映像到Cache中相同的块位置。一般地,Cache被分为2N块,主存被分为大小为2MB的块,主存与Cache中块的对应关系可用如下映像函数表示:j = i mod 2N。式中,j是Cache中的块号;i是主存中的块号。

  直接映像是一种最简单的地址映像方式,它的地址变换速度快,而且不涉及其他两种映像方式中的替换策略问题。但是这种方式的块冲突概率较高,当程序往返访问两个相互冲突的块中的数据时,Cache的命中率将急剧下降,因为这时即使Cache中有其他空闲块,也因为固定的地址映像关系而无法应用。

  2-全相联映像

  主存中的每一个字块可映像到Cache任何一个字块位置上,这种方式称为全相联映像。这种方式只有当Cache中的块全部装满后才会出现块冲突,所以块冲突的概率低,可达到很高的Cache命中率,但它实现很复杂。

  当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较已确定是否命中。在数据块调入时存在着一个比较复杂的替换问题,即决定将数据块调入Cache中什么位置,将Cache中哪一块数据调出主存。为了达到较高的速度,全部比较和替换都要用硬件实现。

  3-组相联映像

  组相联映像方式是直接映像和全相联映像的一种折中方案。这种方法将存储空间分为若干组,各组之间是直接映像,而组内各块之间则是全相联映像。

  它是上述两种映像方式的一般形式,如果组的大小为1,即Cache空间分为2N组,就变为直接映像;如果组的大小为Cache整个的尺寸,就变为全相联映像。组相联方式在判断块命中及替换算法上都要比全相联方式简单,块冲突的概率比直接映像低,其命中率也介于直接映像和全相联映像方式之间。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分