`
kongweile
  • 浏览: 517319 次
  • 性别: 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与主存地址映像计算例题" Cache与主存地址映像是计算机系统结构中存储体系的一部分内容,涉及到Cache和主存之间的地址映射关系。 Cache与主存都被分成若干个大小相等的块,每块由若干个字节组成,主存和Cache...

    Cache映像策略和数据访问流性能分析

    根据提供的实验报告摘要,我们可以详细地探讨一下Cache映像策略及其对数据访问流性能的影响。 ### Cache映像策略概述 #### 全相联映像 全相联映像允许主存中的任何一块都能够映射到Cache中的任何一个块的位置上。...

    计算机组成原理与结构之cache---命中率1ppt课件.ppt

    全相联映像是将主存地址与Cache地址进行完全匹配的过程。其优点是灵活性高,但缺点是实现复杂。 组相联映像是将主存地址分组,然后将每组地址映射到Cache地址的过程。其性能和复杂性介于直接映像和全相联映像之间。...

    在模拟器上实现在任意地址流下求出在 Cache—主存两层存贮层次上的命中率

    ### 在模拟器上实现在任意地址流下求出在 Cache—主存两层存贮层次上的命中率 #### 实验目的与要求 本实验旨在帮助学生深入理解虚拟存储层次结构,掌握不同存储地址映射与变换的方法,以及熟悉常用替换算法(如...

    存贮层次模拟器cache

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

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

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

    高速缓冲存贮器(Cache)

    地址映像决定了主存块如何被分配到Cache的不同位置,而地址变换则确保CPU给出的主存地址能够正确转换为Cache内的地址。块冲突是指当主存块试图映射到已被其他块占用的Cache位置时发生的情况,这需要有效的替换策略来...

    Cache性能分析1.5.docx

    - 组相联映像:结合了全相联和直接映像的优点,将主存与Cache分组,并在组内采用全相联映像。提高了空间利用率,降低了冲突率,但实现成本较高。 - **替换算法**: - 随机法:使用随机数决定替换哪个块。 - FIFO...

    Cache存储器系统地址映象及替换算法的简单动态演示程序VC源码

    动态演示程序"Cache-Memory地址映像方式"可能是通过模拟Cache的工作过程,让使用者输入主存地址,程序根据选定的地址映象方式和替换算法动态显示Cache的状态变化,帮助理解这些概念。 在VC++环境中,可以利用C++...

    Cache的工作原理[整理].pdf

    直接映像是最简单的Cache映像方式之一。在这种映射策略下,主存的每个块只能映射到Cache的一个特定块。例如,如果主存有4096个块,Cache有16个块,那么主存的高12位(块号)可以直接决定Cache的块号。在这种情况下,...

    logisim及全相联cache设计.rar

    在计算机系统中,Cache是一种高速缓冲存储器,用于暂时存储CPU频繁访问的内存数据,以减少主存与CPU之间的通信延迟。全相联Cache( Fully-Associative Cache)是Cache组织方式的一种,与直接映射Cache和组相联Cache...

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

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

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

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

    Cache的工作原理4.pdf

    2. 直接映像Cache:每个主存块在Cache中有一个固定的位置,通过索引字段直接定位,减少了比较次数,提高了访问速度,但可能会导致冲突,即多个主存块映射到同一个Cache位置。 3. 组相联Cache:这是前两者折衷的一种...

    2013-2014年第一学期南京晓庄学院计算机组成原理期末考试回忆版.pdf

    * Cache 映像方式是指 Cache 存储器和主存之间的映像关系。 * Cache 映像方式有直接映像、全相联映像、组相联映像等。 * Cache 映像方式的选择对计算机的执行速度和存储器利用率有着重要的影响。 九、指令格式 * ...

    系统结构第四次作业

    此外,还考虑了不同配置的统一Cache(包括16KB直接映像和16KB两路组相联,以及32KB直接映像),在写回策略下,结合主存延迟、传输率、脏块比例以及数据和指令访问的特性,计算了它们的CPI。结果表明,随着Cache容量...

    Cache在嵌入式处理器中的使用问题

    进一步检查发现,存储器中写入的数据与程序编译生成的数据存在不一致,这正是由于Cache与主存数据不一致导致的。 #### 四、Cache的工作模式与一致性 为了更好地理解Cache一致性问题,我们需要了解Cache的两种基本...

Global site tag (gtag.js) - Google Analytics