拯救医学,医生主动才有戏
|
在进行地址变换时,当主存地址高位的主存块号与高速缓存中中主存块号相比时,有相同的块号即表示命中。一旦命中,CPU 即可通过缓存存储器中的块内地址访问到相应的数据。 全相联映像能够提供非常灵活的变换方式,不受主存所在块的限制。但是同样也是由于过于灵活,导致实际在变换的时候,无法从主存块号直接获得高速缓存存储器的块号,变换过程相对比较复杂,速度也比较慢。 组相连映像 既然两者方法各有利弊,不妨我们就折中一下。因而有了中庸的组相连映像方式。 组相连方式就是将主存和高速缓存存储器中的块再分成组,组之间采用直接映像方式,而组内的块则采用全相联映像方式。具体的实现可以参考以下图示。
举例来说,主存任何区的0组只能存到高速缓存中的0组中,1组只能存到1组。这就是所谓组间的直接映像。而主存相同一组的任意一块可以存入高速缓存相同组中的任意一块。这就是所谓组内的全相联方式。 CPU高速缓存组成 当 CPU 命中缓存时,即可直接对高速缓存的存储器进行寻址;未命中时,则需要根据缓存替换算法将主存中的数据块替换到高速缓存的存储器中。 3 「接下来是地址映像方法了吧。」宫本还没从缓存的组成结构中缓过神来,就听见前座传来一声沧桑的话语。 「诶师傅,行家啊!」宫本惊讶的抬起头,正好对上后视镜中那双炯炯有神的目光。原来是宫本在学习时不自觉地自言自语起来,引起了司机师傅的注意。 「哈哈哈,早年学过,忘得差不多了。」司机师傅腼腆一笑。宫本心里一惊,没想到真是全民学编程的时代,高手无处不在。 「那您也太厉害了,我正准备了解下高速缓存中的地址映像方法呢。」宫本赞叹道。 「我之前还在当程序员的时候,就经常被拉去当面试官。关于地址映像方法啊,页面置换算法啊之类的问题基本上是必问的问题了。这也是对于计算机组成原理的基本考察。」司机师傅仿佛打开了话匣子。 「那您这功力很深厚呀,这么多年了还记得这么基础的东西。」宫本没想到这位师傅原来还是一位资深的程序员,时间过去这么久依然记得高速缓存的一些技术重点。 「其实也还好,这种基础的知识虽然实际工作中不会直接用到,但是对于理解代码还是有辅助作用的。只不过现在很多年轻人都比较忽视这方面的学习。」司机师傅略带惋惜的说道。宫本听完表示赞同的一笑,也没有接话,继续沉迷自己学习中去了。 的确也是,现在许多年轻人都是为了编程而编程,反而忽视了许多计算机基本的常识和基本思想。估计很多人可能都还不知道高速缓存中有哪些地址映像方法。 实际上地址映像方法就是为了将主存地址与高速缓存中存储器的地址对应起来,进行地址的映射,这样 CPU 在工作才能通过缓存正确地对主存数据进行快速读写。 地址映像方法有三种,直接映像,全相联映像和组相联映像。 直接映像 直接映像的图示如下,主存单元中的区块与缓存中内存块的关系是固定的,主存中的内存块只会存放在高速缓存存储器中的相同块号。因此,只要主存地址中的主存区号与缓存中的主存区号相同,则表明访问缓存命中。 这样一来,根据主存地址中的区内块号,就可以得到需要访问的高速缓存存储器中块号,从而即可从缓存中访问需要的数据。
直接映像带来的好处很明显, 地址变换很简单粗暴,主存的内存块与缓存直接映射,一整块进行对应。这样的方式虽然简单,但是灵活性很差。主存中不同区,但是块号相同的内存块不能同时被调入缓存存储器中。并且,当缓存存储器中有空着的块也无法被主存中其它的内存块替换。 (编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



