首页 > 代码库 > 地址映象和变换(二)之cache

地址映象和变换(二)之cache

这里的地址映象和变换不同于主存与虚存之间的地址映象和变换。


地址映象:

是将每个主存块按某种规则装入Cache,并建立主存地址与Cache地址之间的对应关系。


地址变换:

是主存块按照这种映象关系装入Cache后,每次访Cache,如何将主存地址变换成Cache地址。


四种方式:

  • 全相联映象与变换
主存中的任意一块都可以映象到Cache中的任意一块。


  • 直接映象与变换
主存中一块只能映象到Cache的一个特定的块中。


  • 组相联映像与变换
各组之间是直接映象,组内各块间是全相联映象。


  • 段相联映象
组间全相联,组内直接映象。


四种方式间的区别:

  • 全相联:
冲突概率低
空间利用率高
地址变换复杂

  • 直接相联:
硬件简单
冲突概率高
出现大量空闲块
很少使用

  • 组相联:
块的冲突概率比较低
块的利用率大幅度提高
块失效率明显降低

实现难度和造价要比直接映象方式高

  • 段相联:
减少相联目录表的容量,降低成本,提高地址变换速度