- 1、本文档共150页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 特点 一个主存块只能调入cache的一个特定行中 。 优点 该映射函数实现简单,查找速度快; 主存地址的中间c位即为Cache的行地址; 在对应的块表中使用高t位地址进行比较,决定是否命中; 缺点 灵活性差; 主存的2t个字块只能对应唯一的Cache字块,即使Cache中别的字块空着也不能占用。 直接映射Cache的特点 * * 设主存共512个单元(字节), Cache共32个单元,块大小为8个字节,试用直接映射方式组织Cache。 主存512个单元,每块8字节; 主存地址需9位(29=512),共512/8=64块 主存地址包括:主存块号m=6,块内地址b=3 Cache共32个单元,每行8字节 Cache地址需5位,共32/8=4行 Cache地址为:Cache行号c=2,行内地址b=3 直接映射举例(1/3) 2位Cache行号 3位行内地址 4位主存标记 2位Cache行号 3位块内地址 * * 直接映射举例(2/3) 0000 0000 CPU发送地址:0000 01 001 ⊕ 相等 * * 直接映射举例(3/3) 若CPU发出的主存地址为0000 01 001; 先取高4位地址(主存标记0000)送往比较器的一端; 再用中间的2位地址(Cache行号01),在块表中取出该单元中保存的主存标记送往比较器的另一端; 若二者相等,则为命中,直接访问Cache的第01行中地址为001的单元,读取数据; 若二者不相等,则为未命中; 直接使用0000 01 001地址访问主存单元; 同时,将主存地址0000 01 000~ 0000 01 111的8个字节内容送到Cache的11000~11111单元中; * * 【例2】设主存容量1MB,cache容量16KB,块的大小为512B,采用直接映射方式。 块表的容量多大? 画出地址映射及变换示意图。 主存地址为CDE8FH的单元在cache中的什么位置? 行地址 行内地址 13 9 8 0 Cache地址格式 主存的地址格式 主存标记 Cache行号 块内地址 19 14 13 9 8 0 * * 【例2】设主存容量1MB,cache容量16KB,块的大小为512B,采用直接映射方式。 块表的容量多大? 块表的大小为25×6位; 画出地址映射及变换示意图。 见下页图; 主存地址为CDE8FH的单元在cache中的什么位置? 主存地址CDE8FH=1100 1101 1110 1000 1111 对应于Cache的第01111行,行内地址为010001111 * * 第0块 第1块 … 第31块 第0块 第1块 … 第31块 第0块 第1块 … 第31块 第0块 第1块 … 第31块 第0区 ? ? ? 第1区 第2区 第63区 MM 块标记 ? ? ? ? ? ? 第0行 第1行 第Y行 第30行 第31行 ? ? ? ? ? ? 6位 5位 9位 cache 块标记 cache号 块内地址 主存地址 cache地址 0 1 2 Y 30 31 比较 命中 块表 直接映射方式下的地址映射及变换示意图 * * 组相联映射是直接映射和全相联映射的一种折中方案。 映射关系 将Cache中的行等分为若干组,主存中的每一块只能映射到Cache的特定组中,但是可调入到该组的任一行中; 组间为直接映射,组内为全相联映射。 设Cache共u组,每组v行,则映射函数如下 组号 q= j mod u 当Cache的一组包含r行时,通常称为r路组相联映射。 3、组相联映射(Set-associative Mapping) j——主存块号 * * 当cache为2路组相联映射,共4组时,映射函数为q=j mod 4; 主存地址格式 特点: 灵活性:比直接映射灵活(主存可映射到组内任一块); 快速性:比全相联比较次数少,只需组内全部比较; 由于比较次数少,电路也较易于实现。 组相联映射的特点 主存块号 Cache组号 Cache组内行号 0000 00 0或1 0001 01 0或1 1010 10 0或1 1111 11 0或1 主存标记 Cache组号 块内地址 * * 组相联映射示意图 动画演示:3.35.swf * * 2MB存储器共21位地址 16位块地址,3位块内字地址,2位字节地址 16KB的Cache共14位地址 9位行地址,3位行内字地址,2位字节地址 采用直接映射,MM地址格式: 例: 某系统的存储器为
文档评论(0)