`
kongweile
  • 浏览: 507780 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

主存与Cache的地址映像

 
阅读更多

在线课件:http://210.44.176.183/jsjxy/jsjzcyl/%E6%95%99%E5%AD%A6%E8%AF%BE%E4%BB%B6/Chap03/3.5.2.htm

与主存容量相比,Cache的容量很小,它所保存的信息仅是主存信息的一个子集,且cache与主存的信息交换是以块为单位。为了把信息放到Cache中,必须事先规定好主存与cache之间的地址映像方式,即某一个Cache块可以作为哪些主存块的副本(即映像)。映像方式一旦确定,就决定了访问Cache时对主存地址的理解,因而也就决定了Cache的组织结构。目前有三种地址映像方式:直接映像、全相联映像和组相联映像。  
  1.直接映像(Direct Mapping)
  采用直接映像时,Cache的某一块只能和固定的一些主存块建立映像关系,主存的某一块只能对应一个Cache块。直接映像的优点是硬件简单、成本低;缺点是不够灵活,主存的若干块只能对应惟一的Cache块,即使Cache中还有空位,也不能利用。
  2.全相联映像(Associative Mapping)
  采用全相联映像时,Cache的某一块可以和任一主存块建立映像关系,而主存中某一块也可以映像到(2ache中任一块位置上。由于Cache的某一块可以和任一主存块建立映像关系,所以Cache的标记部分必须记录主存块块地址的全部信息。例如,主存分为2n块,块的地址为n位,标记也应为n位。 采用全相联映像方式时,主存地址被理解为由两部分组成:标记(主存块号)和块内地址。CPU 在访问存储器时,为了判断是否命中,主存地址的标记部分需要和Cache的所有块的标记进行比较。为了缩短比较的时间,将主存地址的标记部分和Cache 的所有块的标记同时进行比较。如果命中,则按块内地址访问Cache中的命中块(其标记与主存地址给出的标记相同);如果未命中,则访问主存。

全相联映像的优点是灵活,Cache利用率高。缺点有两个:一是标记位数增加了(需要记录主存块块地址的全部信息),使得Cache的电路规模变大,成本变高;二是比较器难于设计和实现(通常采用“按内容寻址的”相联存储器)。因此,只有小容量Cache才采用这种映像方式。
  3.组相联映像(Set Associative Mapping)
  组相联映像方式是介于直接映像和全相联映像之间的一种折中方案。设Cache中共有m个块,在采用组相联映像方式时,将m个Cache块分成u组(set),每组k个块(即m=u
×k),组间直接映像,而组内全相联映像。所谓组间直接映像,是指某组中的Cache块只能与固定的一些主存块建立映像关系。这种映像关系可用下式表示:
    i=j mod n其中i为Cache组的编号,j为主存块的编号,u为Cache的组数。例如,Cache第0组只能和满足i mod u=0的主存块(即第0块、第u块、第2u块……)建立映像关系,Cache第1组只能和满足i mod u=1的主存块(即第l块、第u+1块、第2u+l块……)建立映像关系。所谓组内全相联映像,是指和某Cache组相对应的主存块可以和该组内的任意一个Cache块建立映像关系。

组相联映像的性能及复杂性介于直接映像和全相联映像之间。事实上直接映像和全相联映像可看成组相联的两种极端情况:直接映像对应的是u=m、K=1,全相联映像对应的是u=1、K=m。组相联映像方式中的每组块数K一般取值较小,典型值是2、4、8、16。这种规模的K路比较器容易设计和实现,而主存块在Cache组内的存放又有一定的灵活性。因此实际应用中多数采用组相联映像方式。通常将每组K个块的Cache称为k路组相联(K-Way Set Associative Mapping)Cache。

 

 

Cache与DRAM存取的一致性

  在CPU与主存之间增加了Cache之后,便存在数据在CPU和Cache及主存之间如何存取的问题。读写各有2种方式。

贯穿读出式(Look Through)

  该方式将Cache隔在CPU与主存之间,CPU对主存的所有数据请求都首先送到Cache,由Cache自行在自身查找。如果命中,则切断CPU对主存的请求,并将数据送出;不命中,则将数据请求传给主存。

  该方法的优点是降低了CPU对主存的请求次数,缺点是延迟了CPU对主存的访问时间。

旁路读出式(Look Aside)

  在这种方式中,CPU发出数据请求时,并不是单通道地穿过Cache,而是向Cache和主存同时发出请求。由于Cache速度更快,如果命中,则Cache在将数据回送给CPU的同时,还来得及中断CPU对主存的请求;不命中,则Cache不做任何动作,由CPU直接访问主存。

  它的优点是没有时间延迟,缺点是每次CPU对主存的访问都存在,这样,就占用了一部分总线时间。

写穿式(Write Through)

  任一从CPU发出的写信号送到Cache的同时,也写入主存,以保证主存的数据能同步地更新。

  它的优点是操作简单,但由于主存的慢速,降低了系统的写速度并占用了总线的时间。

回写式(Copy Back)

  为了克服贯穿式中每次数据写入时都要访问主存,从而导致系统写速度降低并占用总线时间的弊病,尽量减少对主存的访问次数,又有了回写式。

  它是这样工作的:数据一般只写到Cache,这样有可能出现Cache中的数据得到更新而主存中的数据不变(数据陈旧)的情况。但此时可在Cache 中设一标志地址及数据陈旧的信息,只有当Cache中的数据被再次更改时,才将原更新的数据写入主存相应的单元中,然后再接受再次更新的数据。这样保证了Cache和主存中的数据不致产生冲突。

分享到:
评论

相关推荐

    Cache与主存地址映像计算例题[文].pdf

    Cache与主存地址映像计算例题[文].pdf

    软考复习笔记

    一、硬件知识 1、计算机系统的组成包括硬件系统和软件系统 ...Cache的基本结构:Cache由存储体、地址映像和替换机构组成。 4、通道是一种通过执行通道程序管理I/O操作的控制器,它使CPU与I/O操作达到更高的并行度。

    存贮层次模拟器1 Cache—主存两层存贮层

    1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。 2.要求主存容量、Cache大小、块大小以及组数等可以输入修改。 3.求出命中率;...

    存贮层次模拟器1VS存贮层次模拟器2

    1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。要求主存容量、Cache大小、块大小以及组数等可以输入修改。 2.主存—辅存:映像...

    yzx-66#Java-CS-Record#1、Cache映像及变换1

    Cache映像及变换全相联映像规则主存的任意一块可以映像到 cache 的任意一块(有 Cb * Mb 种)地址变换规则用硬件实现非常复杂维护了一个目录表,去比

    存贮层次模拟器cache

    1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。 3.要求主存容量、Cache大小、块大小以及组数等可以输入修改。 4.求出命中率;...

    Cache存储模拟器,c++

    在模拟器上实现在任意访存块地址流下Cache...1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。 3.求出命中率;显示替换的全过程;

    vc++ 6.0三级存储器层次模拟程序

    该程序用VC++ 6实现了存储器的三级存储层次管理,实现了主存到cache的LRU、FIFO在三种映像关系下的算法,同时也实现了主存到辅存的LRU、FIFO在三种映像关系下的算法,并结合起来,界面美观,算法简便。

    存贮层次模拟器 操作系统

    1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。 3.要求主存容量、Cache大小、块大小以及组数等可以输入修改。 4.求出命中率;...

    清华大学2001年计算机组成原理试题

    B1,B4,B6,B3,B0,B4,B6,B2,B4,B5(1) 写出主存地址的格式,并标出各字段的长度(3分)(2) 写出Cache地址的格式,并标出各字段的长度(3分)(3) 画出主存与Cache之间各个块的映像对应关系(3分)(4) ...

    计算机系统结构课后习题答案

    替换算法:由于主存中的块比Cache中的块多,所以当要从主存中调入一个块到Cache中时,会出现该块所映像的Cache块位置已经被占用的情况。替换算法即解决如何选择替换块的问题。 LRU:最近最少使用法。选择近期最少被...

    计算机组成原理作业.docx

    常用的CACHE地址映像方法有 直接映像 、全相联和组相联映像三种。 7.一位十进制数,用BCD码表示需___ 4 ___位二进制数表示。 8.给定一个8K*4bit的芯片,如果组成32Kx8bit的存储体,需要该芯片 8 个。 9.-85的补码...

    计算机组成原理作业.doc.doc

    常用的CACHE地址映像方法有 直接映像 、全相联和组相联映像三种。 7.一位十进制数,用BCD码表示需___ 4 ___位二进制数表示。 8.给定一个8K*4bit的芯片,如果组成32Kx8bit的存储体,需要该芯片 8 个。 9.-85的补码...

    春福师计算机原理与接口技术在线作业二样本.doc

    任意逻辑页能够映像到主存中任意页面位置称为全相联映像 B. 直接映像方式规定每个逻辑页只能映像到一个特定物理页面 C. 全相联映像能够导致存储页面的抖动 D. 组相联映像是全相联映像和直接相联映像方法的结合 满分...

    存贮层次模拟器.rar

    1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。 2.要求主存容量、Cache大小、块大小以及组数等可以输入修改。 3.求出命中率;...

    华中师范大学数学系考研复试真题

    4.理解Cache-主存地址映像方式(直接映像、全相联、组相联)。 知识点: 1.半导体存储器逻辑结构设计(计算芯片数、地址分配、片选逻辑、框图)、动态刷新(定义、刷新方式)、磁盘存储器的基本原理(信息分布、寻址...

    作业3-sol1

    1、在“Cache-主存”层次中,主存的更新算法有哪几种 2、组相联 Cache 的失效率比相同容量的直接相联映像 Cache 的失效率 3、写出三级 cach

    体系结构作业31

    1、在“Cache-主存”层次中,主存的更新算法有哪几种 2、组相联 Cache 的失效率比相同容量的直接相联映像 Cache 的失效率 3、写出三级 cach

    2017218007文华_计算机体系结构第3次作业1

    1、在“Cache-主存”层次中,主存的更新算法有哪几种 2、组相联 Cache 的失效率比相同容量的直接相联映像 Cache 的失效率低 3、写出三级 cac

    计算机系统结构中的存储体系

    页式虚拟存贮器的地址映像;LRU/FIFO/OPT替换算法进行页 面替换的过程模拟;LRU算法对页地址流的堆栈 处理模拟及性能分析;Cache存贮器的直接和组 相联地址映像;LRU替换算法的硬件实现及替换 过程模拟;Cache存贮器...

Global site tag (gtag.js) - Google Analytics