3.6高速缓冲存储器;;3.6.2地址映象与变换方法;1.全相联映象及其变换
映象规则:主存的任意一块可以映象到Cache
中的任意一块。(映象关系有Cb×Mb种);地址变换规则用硬件实现非常复杂;2.直接映象及其变换
映象规则:
主存储器中一块只能映象到Cache的一个特定的块中。
Cache地址的计算公式:
b=BmodCb
其中:b为Cache块号,
B是主存块号,
Cb是Cache块数。
实际上,Cache地址与主存储器地址的低位部分完全相同。;直接映象方式的地址映象规则;直接映象方式的地址变换过程:
用主存地址中的块号B去访问区号存储器,把读出来的区号与主存地址中的区号E进行比较:
比较结果相等,有效位为1,则Cache命中;
其它情况均为Cache没有命中(即Cache失效);;直接映象方式的地址变换规则;2.直接映象及其变换的优缺点
?主要优点:
硬件实现很简单,不需要相联访问存储器
访问速度也比较快,实际上不需要进行地址变换
?主要缺点:
块的冲突率比较高。;3.组相联映象及其变换
映象规则:
主存和Cache按同样大小划分成块和组。
主存和Cache的组之间采用直接映象方式。
在两个对应的组内部采用全相联映象方式。
组相联映象方式的优点:
块的冲突概率比较低,
块的利用率大幅度提高,
块失效率明显降低。
组相联映象方式的缺点:
实现难度和造价要比直接映象方式高。;组相联映象的地址变换过程:
用主存地址中的组号G按地址访问块表存储器。
把读出来的一组区号和块号与主存地址中的区号和块号进行相联比较。
如果有相等的,表示Cache命中;
如果全部不相等,表示Cache没有命中。;组相联映象的地址变换;4.位选择组相联映象(组相联的变形之一)
地址映象规则:
主存和Cache都按同样大小分块,
Cache在分块的基础上再分组,
主存按照Cache的组容量分区。
主存的块与Cache的组之间采用直接映象方式,
主存中的块与Cache中组内部的各个块之间采用全相联映象方式。
与组相联映象方式比较:
映象关系明显简单,实现起来容易。
在块表中存放和参与相联比较的只有区号E;位选择组相联的地址映象规则;5.段相联映象(组相联的变形之二)
映象规则:
主存和Cache都按同样大小分块和段
段之间采用全相联映象方式
段内部的块之间采用直接映象方式;段相联映象地址映象规则