浅谈高速缓存(Cache)及其映像方式

在此之前,我们先了解一下存储系统

在理想情况下,存储器应该具备执行快,容量足和价格便宜等特点,但目前的技术无法同时满足这三个目标,因此由不同的存储器构成的层次结构的存储系统,将这些存储器通过适当的硬件和软件有机的组合在一起。如下图所示:

 

存储器顶层为CPU的寄存器,速度与CPU相当。第二层为高速缓冲存储器Cache和CPU速度接近。第三层为主存储器。第四层为磁盘。

Cache和主存构成Cache存储系统,主存和磁盘构成虚拟存储系统。

高速缓存

高速缓存(Cache)用来存放当前最活跃的程序和数据,其特点是:容量一般在几千字节到几兆字节之间,速度一般比主存块五到十倍,其内容是主存局部域的副本,对程序员来说是透明的。

Cache一般位于CPU和主存之间,主要包括管理模块,由相联存储器构成的存储表以及小容量高速存储器。如下图:

 

 

在具体应用中,首先要判断CPU要访问的信息是否在Cache存储器中,若在就是命中,做不在就是没有命中,命中时直接对Cache存储器寻址,未命中时,安装替换原则处理。

高速缓存的映像地址:

CPU工作时给出的是主存的地址,要从Cache存储器中读写信息,就要将主存地址转换为Cache存储器的地址,这种地址转换称之为地址映像。主要有三种方法

一:直接映像:就是主存的块与Cache块对应关系是固定的。主存地址中的主存区号与Cache中的主存区号相同。就表示访问Cache命中,命中之后,主存地址中的区内块号可得到要访问的Cache存储器的块,块内地址就是主存地址中的低位地址。

 

主存地址:  主存区号 区内块号 块内地址

优点:地址变换简单

缺点:不灵活

二:全相联映像: 主存和Cache存储器均分成容量相同的块,这种方式允许主存的任意一块都可以调入Cache存储器的任何一个块的空间里面。

 

优点:主存的块调入Cache的位置不受限制,灵活多变

缺点:变换复杂

三:组相联映像: 将Cache的块再分组。规定组采用直接映像而块采用全相联映像。 主存任何区的0组只能存到Cache的0组中,1组只能到Cache1组中,但是组内的块采用全相联映像方式,一组内的块可以任意存放,就是主存一组中的任意一块可以存入Cache相对于的组的任意一块。

高速缓存的替换算法:

随机替换算法,先进先出算法,优化替换算法,近期最少使用算法

高速缓存的性能分析:

命中率为Cacha的一个重要指标。

资料来源于:数据库系统工程师教程

以上内容为学习总结,若有错误望及时指正。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值