课件:存储器及其接口.ppt

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

*80386地址总线为32位,可寻址范围为232字节 (4000M字节)。 82385把来自80386引脚A31~A2输出的地址分为三部分,如下图所示: 数据读出过程: 当80386送来A31~A2主存地址时,82385便以其中的10位组地址从其内部1024个目录项中选择一个,并依据下述三个条件进行判断,若: ①其标记与地址A31~A15相等;②且标记有效位为1;③同时相应的行有效位也为1,则命中。 从而使Cache中选定的双字送80386数据总线,完成一次存储器读操作。 若其中有任一条件不符,则表示不命中,系统都会直接访问主存,而且在数据送给80386的同时写入Cache中,接着修改82385内部的相应目录项. 如果是行未命中(即80386的高17位地址与Cache目录标记相等,而且标记有效位为1,但行有效位为0),则目录修改过程很简单,只需将对应的“行有效位”改为1; 如果是标记未命中,则目录修改包括将A31~A15的值写入目录项的标记中,再将“标记有效位”置1,又将对应的“行有效位”置1,同时将其他7个“行有效位”清0。以后,再遇到这个目录项的“标记命中”而“行未命中”时,只需将对应的“行有效位”置1即可。 2. 82385控制的双路组相联方式Cache系统 82385控制的“双路组相联”方式的Cache目录、Cache和主存之间的关系示意图如图13.50所示。 第 0 组 第 1 组 第 511 组 . . . 目录 A 标记有效位 A 32 外部cache (16kBX2) 页 0 1 2 2 1 8 - 2 2 1 8 - 1 页面大小 = 16 KB 4 千兆字节主存 ( DRAM ) 图 13.50 两路组相联 Cache 组织示意图 1 8 位标记 行有效位 1 8 位标记 行有效位 目录 B 标记有效位 B 32 LRU 内部cache 目录 主存仍为4GB,Cache为32KB,分为A路和B路,每路16KB。每个双字(32位)为一行,8个双字为一组,因此每路有512组。 主存页[面]大小为16KB,4GB的主存分为256K页。 82385内部的Cache目录中,共含512×2个目录项。每个目录项27位,其中,18位标记,以区分256K个页;1位标记有效位;另外8位为行有效位。 主存每个“存储页”上处于相同位置的行对应于Cache中两路中的各一行(A行或B行)。 与这种机制相对应,82385为A路和B路的每一对目录项配置了一位“最近最少使用”位LRU(Least Recently Used)。通过此位,82385在未命中处理时判断新写入的数据是存入A路还是B路。 下图表示在双路组相联方式下,82385如何从Cache中选取一行: 读操作时,根据A13~A5从512×2个目录项选一对目录项。然后82385用A31~A14和两个所选目录项的标记比较,并检查两个目录项的标记有效位和行有效位. 注意,这两个目录项的比较和检测是同时进行的。如果检测到有一个目录项符合命中要求,那么,82385会使对应的一路Cache中的一个双字送到系统数据总线上。 如果数据在A路Cache中,则使这一对目录项的LRU位指向B;反之,则使LRU位指向A。 在80386进行写操作时,如果写入的区块(行)已映象到Cache中,则产生Cache写入命中。这时,Cache相应区块和主存一起更新内容。 如果A路Cache命中,则更新A路的区块,且使LRU位指向B路;如果B路命中,则更新B路的Cache,并使LRU位指向A路。 复位时,目录中所有的标记有效位清0。 组相联Cache的优点是命中率比直接映象方式稍高,缺点是标记占用较多的SRAM,另外,Cache控制器比较复杂。 13.5.4 Cache的更新方式及替换算法 在Cache系统中,同样一个数据可能既存在于Cache中,也存在主存中。这样,当数据更新时,可能Cache已更新,而主存未更新。这种情况会造成数据丢失。 另外,在有DMA控制器的系统和多处理器系统中,有多个部件可访问主存,这时,可能其中有些部件是直接访问主存的,也可能每个处理器配一个Cache,这样,主存的一个区块可能对应于多个Cache中的各一个区块。 于是,又会产生主存中的数据被某个总线主部件更新过,而某个Cache中的内容未更新,这种情况造成Cache中数据过时。 对前一种不一致(cache已修改,主存未修改)问题,有3个解决办法: (1)直写式(Write thr

文档评论(0)

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

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

1亿VIP精品文档

相关文档