【问题思考总结】TLB Page Cache 主存 的联系与辨析【从命中和访存次数的角度 及 地址转换和数据存储的对比】

前置知识

四种结构

TLB:快表,是一种虚拟地址到物理地址的地址映射结构,当CPU传出一个地址时,首先到达的就是TLB,如果TLB命中,那么隐藏的含义就是,这个虚拟地址可以直接转换为物理地址(因为快表的表项中装的就是他的实页号,而页内地址则在虚拟地址中可以找到,因此拼接起来就是物理地址)。

Page:页表,是一种虚拟地址到物理地址的地址映射结构,当CPU传出一个地址时,如果Page命中,那么隐藏的含义就是,这个虚拟地址可以直接转换为物理地址(因为页表的表项中装的就是他的实页号,而页内地址则在虚拟地址中可以找到,因此拼接起来就是物理地址)。

Cache:高速缓存,是一种储存数据信息的结构,当物理地址传出时,首先到达的就是Cache,如果Cache命中,那么隐藏的含义就是,这个块我可以直接拿走(因为Cache中保存的就是主存的副本)。

主存:主存,是一种储存数据信息的结构,当物理地址传出时,如果Cache未命中,主存命中,那么隐藏的含义就是,这个块我可以从主存中拿走(因为主存中保存的就是我要的信息,不过速度肯定是没有Cache快,有的时候会差好几个数量级)。

再往下就到外存了,这里不做过多赘述

联系

可以看到,

TLB和Page在形式上是高度相似的(他们都是地址映射的结构),Cache和主存在形式上是高度相似的(他们都是保存数据信息的结构)。

TLB和Cache在存取速度和优先级上是高度相似的(他们都是优先访问的,因为他们存取速度比较快),Page和主存在存取速度和优先级上是高度相似的(他们都是后访问的,因为他们都在主存中)

我们知道,Cache是主存的高速缓存。实际上,TLB就是页表的高速缓存

Cache用来加速数据存取,TLB用来加速地址转换。

对他们的访问均不算访问内存(因为他们的速度比访问主存快好几个数量级)。(这部分的知识对后面的访存部分有很大作用)

从命中的角度分析

基本概念

1. TLB命中标记项相等有效位是1。
2. Page命中标记项相等有效位是1。
3. Cache命中标记项相等有效位是1(如果是写回法则还需要注意脏位

命中的几种情况

全部组合

首先,TLB Cache Page,都各有两种情况,命中和不命中。
因此,全排列应该是一共是2×2×2=8种情况(1:命中,0:不命中):

TLBPageCache
111
110
101
100
011
010
001
000

不可能的组合

  1. 101:当TLB命中时,那么由前置知识可以知道,地址就已经可以转换了,副本命中了,本体当然也命中,因此不可能。
  2. 100:原因同上
  3. 001:实际上,页表保存的是所有在主存中的页的信息,因此,如果页表不命中,信息一定不在主存中。而又因为,Cache是主存的子集,因此Cache一定不命中,因此不可能。

一些思考

其实可以看到,当TLB命中时,就无所谓页表命不命中了,因为压根就没有访问页表,因此也无所谓命不命中了(其实严格来说是无法判断,因为根据定义,需要发生标记位的比较和有效位的比较才可以判断命不命中

实际上,这个题型第一次也是唯一一次出现是在2010的408真题中,也就是考408的第二年,我个人感觉是很不严谨的,而在2015年同样的知识点,他就换了一种角度,用访存次数来考同学,那么这个是更严谨的表述其实是,当然也就更加需要同学们对于这几种结构有更深刻的理解

这也充分说明,我们应该注重广度的同时,对重要的知识点,提高理解的深度

因此,在下面用访存的角度进行分析。

从访存的角度分析

排除了三种不可能之后,还剩余5种可能

首先明确,我们如果要拿到数据需要两步:1. 拿到物理地址 2. 拿到数据 下面从这两个方面进行分析。

另外:页表(在主存中)对标主存(两者较慢算访存),快表对标cache(两者较快不算访存)

  1. 111:当TLB命中时,地址有了(没访存,原因在联系部分的最后一段),Page就不用管了(地址已经有了),当Cache命中的时候,数据有了(没访存,原因在联系部分的最后一段),主存就不用管了(数据已经有了)。0+0=0访存次数0次。
  2. 110:TLB命中,地址有了。Cache没命中,去主存找,访存一次0+1=1
  3. 011:TLB未命中,去页表中找,访存一次,地址有了。Cache命中,数据有了。1+0=1
  4. 010(1):1+1=2,这里注意,虽然Cache没有,但是主存中是有的(页表和主存是同步的)。
  5. 000(0):这个最惨,直接干到外存去了。。。不要管他了
  • 26
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值