我曾经尝试过在各个地方进行搜索,但是我找不到用于查找以下参数的任何示例或公式。下面是一个问题的示例,但是我从实际问题中省略了虚拟地址。
给出具有以下规范的虚拟内存系统:
如果CPU发出以下虚拟地址:(一些十六进制数字)
将十六进制数转换为二进制后,我迷路了。如何找到虚拟页面偏移量?虚拟页面偏移量和物理页面之间的区别是什么?如何找到物理页面的值?
我认为TLB标签是VPO和PPO之后的剩余数字,但是我需要知道如何首先获取VPO和PPO。我不确定什么是TLB索引。 VPN是其中一些答案的组合,但我不确定哪个。
如果将集合关联更改为2路TLB,会发生什么?会改变我找到这些值的方式吗?
最后,如果为我提供了两路设置的关联TLB和具有上述相同信息的页表,我如何确定是否存在页错误?据我了解,如果有TLB命中,就不会出现页面错误,但是如果没有,我该如何确定呢?他还谈到了实际地址,找到该地址的过程是什么?
答案 0 :(得分:0)
什么是虚拟页面偏移量?
地址MOD页面大小
物理页面偏移量的值是什么?
地址/页面大小
TLB标签的值是什么?
您所提供的内容未知。
TLB索引的值是什么?
您所提供的内容未知。
虚拟页码的值是多少? (二进制答案)
地址/页面大小
答案 1 :(得分:-1)
什么是虚拟页面偏移量?
物理页面偏移量的值是什么?
VPO是页面内字节的地址。关于物理页面,它们通常称为框架,但是偏移量定义是相同的。
VPO = VAdr % PageSize
TLB标签的值是什么?
TLB索引的值是什么?
TLB索引将VAdr映射到TLB集。
Number-of-sets = number-of-TLB-entries / number-of-ways
和ìndex-size =log_2(number-of-sets)
TLB标签是虚拟地址中剩余的MS位
虚拟页码的值是什么?
虚拟页数=虚拟地址/页面大小
如果地址为二进制abdefghijklmnopq
,则其解释为(TLBTag,TLBidx,VPO)
为(abdefghij,kl,mnopq)
,虚拟页面地址为abdefghijkl
。
如果将集合关联更改为2路TLB,会发生什么?会改变我找到这些值的方式吗?
如果条目数保持不变,这会将集合数除以2,并向TLBIdx
加一位(并从TLBTag
中删除一位)。
最后,如果为我提供了两路设置的关联TLB和具有上述相同信息的页表,我如何确定是否存在页错误?据我了解,如果有TLB命中,就不会出现页面错误,但是如果没有,我该如何确定呢?
如果有TLB命中,则没有页面错误。如果存在TLB未命中,则必须通过查看过程页面表来生成页面地址。这些表指示虚拟和逻辑页面地址之间的对应关系,以及页面是否在内存中或已交换到磁盘。如果页面已交换到磁盘,则这是页面错误。这样会产生异常,操作系统必须将页面写回到内存中。
他还谈到了一个实际地址,找到这个地址的过程是什么?
对于像您这样的简单情况,它可以只是一个表查找。页地址为11位宽,并且2048个条目表指示相应物理帧的地址。在实际系统中,这更为复杂,通常涉及多个级联表。