Computer science 计算虚拟内存页表和转换查找缓冲区

Computer science 计算虚拟内存页表和转换查找缓冲区,computer-science,virtual-memory,computer-architecture,Computer Science,Virtual Memory,Computer Architecture,我正在回答一些与虚拟内存相关的问题,并希望得到一些帮助,以澄清或确认我对如何使用虚拟内存的理解 问题如下: 给定一个32位字的字节可寻址系统,4 GB的虚拟地址空间,1 GB的物理地址空间,4 KB的页面大小。假设页表条目四舍五入到4字节 a) 页面表的大小(以字节为单位)是多少 b) 现在假设实现了一个4路集合关联转换查找缓冲区,总共有256个地址转换。计算其标记和索引字段的大小 我的答覆如下: A: 页表的大小等于页表中的条目数乘以条目数 页表中的条目数等于内存大小除以页大小:2^32/2^

我正在回答一些与虚拟内存相关的问题,并希望得到一些帮助,以澄清或确认我对如何使用虚拟内存的理解

问题如下:

给定一个32位字的字节可寻址系统,4 GB的虚拟地址空间,1 GB的物理地址空间,4 KB的页面大小。假设页表条目四舍五入到4字节

a) 页面表的大小(以字节为单位)是多少

b) 现在假设实现了一个4路集合关联转换查找缓冲区,总共有256个地址转换。计算其标记和索引字段的大小

我的答覆如下:

A:

页表的大小等于页表中的条目数乘以条目数

页表中的条目数等于内存大小除以页大小:2^32/2^12=2^20

条目的大小等于字大小减去页表中用于条目数的位:32-20=12

因此,页表大小为:(2^20)*12位=12582912位=1572864字节

然而,我发现(在“页面表大小”标题下),它使用基本相同的数字

页表大小=((虚拟地址空间大小)/(页大小))*(页表条目大小) =(4 GB/4 KB)*4 B=4 MB

哪个答案是正确的

接下来,B:

我不确定如何计算B部分。我相信标签是通过添加块数、偏移量和索引来计算的。这是一个4向关联集,因此每个集合中有4个块。索引为8位,因为基本索引大小为10位,减少了2位,还因为它是一个4路关联集。但是,我不知道如何计算偏移量,这是帮助计算标记所必需的


任何帮助都将不胜感激。

对于a部分,您犯了两个错误。首先,问题明确指出“页表条目四舍五入到4字节”。第二,PTE包含根据页面对齐的地址确定物理地址所需的位。在所描述的系统中,物理地址仅为30位(1gib)。由于该系统使用4KB页面,PTE中物理地址的最低有效12位将全部为零,因此可以是隐式的。因此,对于物理地址,需要18位(30-12)

除了四舍五入到两个字节数的幂之外,大多数PTE还包括附加数据,例如有效位、修改位、访问位以及用户和主管模式的权限位;因此,即使有512MIB物理地址空间和8KIB页面(需要16位来指示物理地址),也不能使用2字节PTE

(需要注意的是,没有32位处理器会使用平面页表。对于32位地址,通常使用分层或线性页表。这会为完全占用引入一些额外的空间开销,并且可能需要多次内存访问才能找到转换,但在部分占用和密集分配的常见情况下,它们可能会被忽略。)使用更少的内存。这一点尤其重要,因为大多数处理器设计用于多地址空间操作系统,其中每个进程都有自己的页表。使用页表中几乎一半的物理内存[400 MiB]仅支持100个进程是不可理解的。)

对于b部分,您是正确的,4路集合关联意味着每个集合中有4个块,因此根据条目数从索引所需的位数中减去2位。但是,log2(256)是8而不是10,因此只有6位用于索引TLB

在数据缓存中,标记大小等于地址位数减去索引位数,再减去偏移位数(缓存块内)

对于TLB,虚拟地址与页面大小对齐(页面中的最低有效位未翻译)。对于4 KiB页面,这意味着忽略12个最低有效位。对于32位虚拟地址,这将保留20位

其中6位用于索引已经确定,因此剩下14位

对于非集群TLB,每个标记与一个转换相关联。这将相当于1字节(即0个偏移位)的数据缓存块大小。因此,标记(不包括任何地址空间ID)将为14位


(在集群TLB中[类似于扇区缓存块],为每个“条目”提供两个或多个翻译——条目变得不那么清晰,因为它可能指翻译条目或标签与该标签相关联的多个翻译的组合。[我想你应该明白这些问题并非如此复杂。]

非常感谢您的评论。我现在完全理解了b部分。但是,您对我在a部分中的错误的解释让我有点困惑。我是否在计算页面表中的条目数?basil否,您关于所需PTE的数量是正确的(对于假定的平面页面表),但从问题中所述的假设和表示页的物理地址所需的位数来看,每个PTE的位数都是错误的。(我确实提到了平面页面表格是极不可能的;从这个意义上说,页面表格的大小是不正确的,但这是问题假设的问题,而不是您的理解。)我想我明白了。那么你是说,根据你对上述物理地址的解释,条目大小将为18位?这将影响我对页表的计算(我的计算方法正确吗?)。关于页表条目四舍五入的部分仍然让我很反感,呵呵