微处理器结构与设计--第13次课-2013-05-29_400107128.ppt

微处理器结构与设计--第13次课-2013-05-29_400107128.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微处理器结构与设计--第13次课-2013-05-29_400107128

事实上,我们可以把每一种放置方法看作是组相联的变体 直接映射就是1路组相联映射,即每组仅有一个位置可放Block,这时,组数(set 数)就为cache中的Block数。 全相联cache,相当于cache中仅有1组,每组有m路相联映射 Direct-mapped 直观容易,效率低;Set-associative 适中可用; Fully-associative 成本较大,可适用小cache 1个set 2个set 4个set 每组有4路,其中的1路 共2组,其中1组 举例 有1个cache,每个cache包含4个Block,每个Block包含一个word,若该cache采用全相联,2路组相联和直接映射来组织cache,请问当Blocks访问序列是0,8,0,6,8,会有多少miss和hit产生? 解:采用直接映射的情形 Hit Or Miss contents of cache blocks after reference 0 1 2 3 miss Memory[0] Address of memory block address 0 mod 4=0 8 mod 4=0 0 mod 4=0 6 mod 4=2 8 mod 4=0 miss Memory[8] miss Memory[0] miss Memory[0] Memory[6] miss Memory[8] 1 2 3 4 5 发生5次Miss 蓝色表示添加 黑色表示老的项 空白格表示无数据 2路组相联 发生4次Miss,1次hit 蓝色表示添加 黑色表示老的项 空白格表示无数据 替换规则:the least recently used block 被替换掉 发生3次Miss,2次hit 蓝色表示添加 黑色表示老的项 空白格表示无数据 全相联映射 下图显示的是一个64KB data Cache ,每个Block拥有16个word,关联映射从1路(直接映射)到8路组相联映射,运行的程序是SPEC2000的Benchmarks 表中可以看出从1路到2路,其缺失率从10.3%变到8.6%,缺失率降低了(10.3-8.6)/10.3?15% 而继续从2路到4路再到8路的组相联,性能改进微乎其微。 作业(二选一) 题1:某个cache,每个cache包含8个Block,每个Block包含一个word,若该cache分别采用全相联,2路组相联和直接映射来组织cache,请问Blocks访问序列0,8,0,6,8会有多少miss和hit产生? 题2:某个cache,每个cache包含16个Block,每个Block包含一个word,若该cache分别采用全相联,2路组相联和直接映射来组织cache,请问Blocks访问序列0,8,0,6,8会有多少miss和hit产生? 一个4路组相联cache的实现 (每个Block有1个word) 请问有多少个组? 在Cache中定位Block 确定了set或组后,每一个set中,有若干个tag(一个tag/Block),set中所有的tag的比较一定是并行进行的 用来选取那一组或哪一个set 确定组set后,用来选取哪一个Block 1 2 确定Block后,在Block中选哪一个word 3 举例 增加关联性意味着set中Block的数目增加,相应的就需要更多的比较器来进行tag的比较。 例:假定cache的大小为4K blocks,一个4-word的Block,32位的地址,请问在直接映射,2路组相联,4路组相联和全相联情况下,set的数目和tag所占bit数为多少? 解:因为每个Block有4个word,每个word有4个字节,在Block中寻址字节需要4个地址位(因为22×22=24)。也就是说,32位的地址,还剩(32-4)=28位被用来作为tag和index。 在直接的地址映射下,Set的个数与Block的个数相同,(相当于1路组相联)。 所以set的数目为4K。 而4K个Blocks,需要地址位12 bit ,因为log2(4×210)=12。这时,每个tag位长为28-12=16 位bits,总共的tag的比特数为16×4K=64K bits 在2路组相联下,即每2个Blocks组成一个set,因此Set的数目为4K/2=2K个。识别2K个sets地址位长就为 log2(2×210)=11bits.这时,tag的位长为28-11=17 bits,总的tag的比特数为17×2×2K=68Kbits 在4路组相联下,即每4个Blocks组成一个set,因此Set的数目为4K/4=1K个

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档