高速缓冲存储器

高速缓冲存储器
1.问题的提出;
由于i/o设备向主存请求的级别高于CPU访存,这就出现了CPU等待i/o设备访存的现象,使CPU空等一段时间,可以在CPU和主存之间加一级缓存,主存可将CPU要取的信息提前送到缓存,一旦主存在与i/o设备交换时CPu可以直接从缓存中读取信息,不必空等。而且主存速度的提高始终跟不上CPU的发展,所以高速缓存来解决主存与CPU速度不匹配的问题。Cache的出现使CPU可以不直接访问主存,而与高速cache交换信息。

主存和缓存都分成了若干块,每块内又包含若干个字,并使它们的块大小相同(块内的字数相同),主存的地址分为两段,高m位表示主存的块地址,低b位表示块内地址,则2^m表示主存的块数。同样缓存的地址也分为两段,高c位表示缓存的块号,低b位表示块内地址,则2^c表示缓存块数(远小于主存块数),2^b表示块的大小,也叫块长。
任何时刻都有主存块处在缓存块中,CPU想访问主存某字时,有两种可能,一种是所需的字已在缓存中,直接访问cache(CPU与cache之间通常一次传输一个字),另一种是所需的字不在cache中,此时需将该字所在的主存整个字块一次调入cache中(cache与主存之间是字块传送),如果主存块已调入缓存块,则称该主存块与缓存块之间建立了对应关系,上述第一种情况为CPU访问cache命中,第二种情况为CPU访问cache不命中,由于缓存的块数远小于主存的块数,所以一个缓存块不能唯一的,永久的只对应一个主存块,故每个缓存块需设一个标记,用来表示当前存放的是哪一个主存块,相当于主存的编号。cache的容量块长是影响cache效率的主要因素,通常用“命中率”来衡量cache的效率,指的是CPU要访问的信息已在cache中的比率

一般而言,cache的容量越大,其CPU的命中率越高,但是也不能太大,太大会增加成本。
3。cache的基本结构:
主要由cache存储体,地址映射变换机构,cache替换机构几大模块组成。
。cache存储体;
以块为单位与主存交换信息,为加速cache与主存之间的调动,主存大多采用多体结构,且cache访存的优先级最高。
。地址映射变换机构:
是将CPU送来的主存地址转换为cache地址,地址变换主要是主存的块号与cache块号之间的转换。如果转换后的cache块已与CPU欲访问的主存块建立了对应关系,即已命中,则CPU可直接访问cache存储体,如果不命中,此刻CPU在访问主存时,不仅将该字从主存取出,同时将它所在的主存块一并调入cache,供CPU使用,此刻能将主存块调入cache内,也是由于cache原来处于未被装满的状态。如果cache已被装满,就采用替换策略。
。替换机构;
当cache内容已满,就由cache内的替换机构按一定的替换算法来确定从cache内移出那个块返回主存,而把新的主存调入cache。
4.cache的读写操作:
读操作,CPU发出主存地址后,首先判断该存储字是否在cache中,若命中,直接访问cache,将该字送到CPU;若未命中,一方面要访问主存,将该字传送给CPU,同时将该字所在的主存块装入cache,若cache已满,执行替换算法。
写操作:对cache块内写入的信息,必须与被映射的主存块内信息完全一样,主要有两种方法:写直达法和写回法

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值