计算机组成原理讨论报告——三种映射方式

  • 一  相关基本概念

 1.1地址映像:为了把信息存放到cache中,必须应用某种函数把主存地址映像到cache

1.2地址变换:在信息按照这种映像关系装入cache之后,执行程序时,应将主存地址变换成cache地址,这个变换过程叫做地址变换、

1.3字块 :  Cache和主存都被分成若干个大小相等的块,每块由若干个字节组成,主存和Cache的数据交换是以块为单位,1个字块包含n个字(n≥1),字块是主存与cache交换的最小单位。

1.4标记 :cache中存放的主存块地址称为标记。指明了它是主存哪一块副本,内容相当于主存块中的编号。

1.5有效位:每个标记还应至少设置一个有效位,来判断cache块中确实没有包含有效信息。例如,当一个处理器启动时,cache中没有数据,标记域中的值就没有意义,甚至在执行了一些指令后,cache中的一些块依然为空。因此需要增加一个有效位来标识一个块是否含有一个有效地址。

1.6组 :多个字块组成的一个逻辑整体称为组。

二    直接映像

2.1  把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中唯一指定的块中,即相同块号的位置。例如,主存的第0块、第2c块、……、第2c+1块,只能映射到Cache的第0块;而主存的第1块、第2c+ 1块、……、第2c+1+1块,只能映射到Cache的第1块……

 

2.2  主存地址与cache地址

(1)主存地址:

包括块标记、字块地址、字块内地址三部分。其中,块标记为字块在主存中的地址,字块地址为字块在cache中的地址;字块内地址为字在字块中的地址。


主存地址结构划分:

主存块号

块内地址

主存字块标记(t位) + cache行号(c位)

b

(2)cache地址:

包括字块地址字块内地址两部分:其中,字块地址为字块在cache中的地址,字块内地址为字在字块中的地址。

注意:cache地址中的字块地址字块内地址和主存地址中的相同。

2.3   映像函数

直接映像:函数j=i mod 2c,其中,i为Cache块地址,j为主存块地址, mod表示求余运算。

Eg:一个块数为8的Cache,取模运算之后得到的就是主存块地址中的第三位。例如存储器地址11101被映射到Cache中的101位置,如下图:

从图中可以看出一个CPU给出的地址的地位是用来检索到Cache中的位置

 

2.4   直接映像方式主存-Cache的读出过程:

1. 寻找Cache页号 :CPU访问时,送来主存地址和读/写命令,首先根据主存地址中的c位,即cache字块地址,作为cache地址,从而找到cache字块。

2. 检查:找到Cache字块后,检查它的标记和主存的高t位(即主存字块标记)是否一致。并判断其有效位为0还是1。

3.- 一致(符合且有效位为1):一致则命中,再根据b位块地址(即字块内地址),从Cache中取得所需指令或数据。

   - 不一致(不符合或者有效位为0):不一致则未命中,就从主存读入新的字块来代替cache中的旧字块,并将块中CPU所需数据送往CPU,同时修改cache标记,假如原来有效位为0,还要将有效位改置为1。

 

2.5直接映像优缺点

优点:

1)映像函数简单,实现硬件简单,无需相联存储器,实现成本较全相联映像方式低;

(2)地址变换速度快且简单,可直接由主存地址提取出Cache地址。(如果命中且字块有效,那么主存地址去掉区号后的低位部分就是cache地址)

缺点:

(1)不够灵活且块冲突率高,每个主存块只能固定的对应某个缓存块,即使缓存内还空着许多位置也不能占用,使缓存的存储空间得不到充分的利用。

(2)如果程序恰好要重复访问对应同一缓存位置的不同主存块,就要不停的进行替换,且降低命中率。

三    全相联映像

3.1基本思路允许主存中的每个字块映像到cache的任何一个字块位置上,也允许从确实已被占满的cache中替换出任何一个旧字块。

 

3.2 

 主存地址格式:主存块号+块内偏移地址

cache地址格式: cache行号+行内偏移地址

cache标记tag:主存块号

3.3   特点

(1)与直接映像相比,它的标记位数从t位增加到t+c位使得cache标记容量加大

(2)在访问cache时需要和cache的全部标记进行比较,才能判断出所访主存地址的内容是否已经存在cache中,由于cache速度要求过高,故所需要的逻辑电路过多,以至于无法应用于cache中。且成本太高不能采用

四.组相联映像

4.1 基本概念

(1)组相联映像方式为前两种方式的折衷。其主存按Cache容量分区,每个区分为若干组,每组包含若干块。Cache也进行同样的分组和分块。

(2)主存中一个组内的块数与Cache中一个组内的块数相等。

(3)组间采用直接映像方式,组内采用全相联方式。当组的容量=1时,即直接映像,组的容量=整个Cache的容量时,即全相联映像。

 

4.2  主存地址和cache地址

主存地址:

主存地址包括主存字块标记、组号和字块内地址三部分。其中主存字块标记为字块在主存中的地址,组号为cache分的组的组号,字块内地址为字在字块中的地址。

cache地址:

cache地址包括组号、字块号和字块内地址三部分组成。其中,组号为cache分组的组号,字块号为每组内字块的地址,字块内地址为字在字块中的地址。

注意:主存地址和cache地址中的组号和字块内地址相同。

4.3  一次内存访问示意图

注意事项:

  • TLB采用组相联
  • 页表采用两级页表
  • cache采用组相联
  • cache仅考虑L1 d-cache,不考虑L1 i-cacheL2 cacheL3 cache
  • 未考虑页表缺页
  • 简化了cache未命中情况

 

4.特点:

(1)该映射方式实现较为容易,块的冲突概率比较低,块的利用率大幅度提高,命中率介于直接映射方式与全相联映射方式之间。被普遍采用

(2)因为是两种映像方式的折衷,因此地址结构较为复杂,比较的情况较多,需要引入相联存储器;

(3) 兼顾了映像的灵活性和操作的复杂程度

(4)实现难度和造价要比直接映象方式高。

                                                                                                      图片均来自网上,侵权删

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值