- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Cache和主存之间的映像
3.7.3 Cache和主存之间的映像方式
为了把信息放到Cache中,必须应用某种函数把主存地址映像到Cache中定位,称为地址映像(映射)。而将主存地址变换成Cache地址,称做地址变换,它们之间是密切相关的。常用的地址映像方式有三种,分别是全相联映像、直接映像和组相联映像。 1.全相联映像 全相联映像是指将内存和Cache按照固定的相同的大小进行分块。内存的块和Cache的块可以任意对应,即内存的任何一块都可以映像到Cache的任何一块。在Cache的存储空间被占满的情况下,也允许确实已被占满的Cache存储器中替换出任何一个旧块,具体如图3-14所示。 2.直接映像 直接映像先将Cache分成若干块,每个块的大小相同,并对每个块进行编号。同时根据Cache容量大小将内存分成若干区(页),每个区的容量都跟Cache的容量相同,然后对内存进行分块,每块的大小跟Cache块的大小相同,同样对区内的块进行编号。映像时,内存的某个区的块只能保存在与其块号相同的Cache块中。如图3-15所示,内存各区中的第0块只能映像到Cache的第0块,而不能映像到其他块。
3.组相联映像 组相联映像实际上是直接映像和全相联映像的折中方案。组相联映像方式先将Cache分成大小相同的若干区(组),对每个区按照直接映像的方式进行分块,并且编号,因此,Cache中有多个编号相同的块。对内存按照Cache区的大小进行分页,再对每页按照Cache块的大小进行分块,每个内存块可以对应不同Cache区中的相同块号的块。如图3-16中内存第0页的第0块,可以对应Cache的第0区的第0块,也可以对应第j区的第0块。 在三种方式中,全相联映像方式比较灵活,Cache的块冲突概率最低、空间利用率最高,但是地址变换速度慢,而且成本高,实现起来比较困难;直接映像方式是最简单的地址映像方式,成本低,易实现,地址变换速度快,而且不涉及其他两种映像方式中的替换算法问题。但这种方式不够灵活,Cache的块冲突概率最高、空间利用率最低;组相联映像实际上是全相联映像和直接映像的折中方案,其优点和缺点介于全相联和直接映像方式的优缺点之间。
知识点:Cache与主存地址映像
?
Cache和主存都被分成若干个大小相等的块,每块由若干个字节组成,主存和Cache的数据交换是以块为单位,需要考虑二者地址的逻辑关系。
?
地址映像:把主存地址空间映像到Cache地址空间,即按某种规则把主存的块复制到Cache中。
?
一、全相连映像
?
主存中任何一个块均可以映像装入到Cache中的任何一个块的位置上。主存地址分为块号和块内地址两部分,Cache地址也分为块号和块内地址。Cache的块内地址部分直接取自主存地址的块内地址段。主存块号和Cache块号不相同,Cache块号根据主存块号从块表中查找。Cache保存的各数据块互不相关,Cache必须对每个块和块自身的地址加以存储。当请求数据时,Cache控制器要把请求地址同所有的地址加以比较,进行确认。
?
特点:灵活,块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache利用率高。但地址变换机构复杂,地址变换速度慢,成本高。
?
公式:
????? 主存地址位数=块号+块内地址;
????? Cache地址位数=块号+块内地址。
?
二、直接映像
?
把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中唯一指定的块中,即相同块号的位置。主存地址分为三部分:区号、块号和块内地址,Cache地址分为:块号和块内地址。直接映像方式下,数据块只能映像到Cache中唯一指定的位置,故不存在替换算法的问题。它不同于全相连Cache,地址仅需比较一次。
?
特点:地址变换简单、速度快,可直接由主存地址提取出Cache地址。但不灵活,块冲突率较高,Cache空间得不到充分利用。
?
公式:
???? 主存地址位数=区号+区内分块号+块内地址;
???? Cache地址位数=块号+块内地址。
?
三、组相连映像
?
组相连映像是前两种方式的折衷。主存按Cache容量分区,每个区分为若干组,每组包含若干块。Cache也进行同样的分组和分块。主存中一个组内的块数与Cache中一个组内的块数相等。组间采用直接方式,组内采用全相连方式。组的容量=1时,即直接映像,组的容量=整个Cache的容量时,即全相连映像。Cache的存在对于程序员透明,Cache的地址变换和数据块的替换算法都采用硬件实现。
?
公式:
?
主存地址位数=区号+组号+主存块号+块内地址;
Cache地址位数=组号+组内
文档评论(0)