首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MMU: AARCH64中的长描述符页表大小

MMU: AARCH64中的长描述符页表大小
EN

Stack Overflow用户
提问于 2018-10-30 02:41:35
回答 1查看 160关注 0票数 0

我想了解一下,4k粒度的AARCH64中的页表覆盖了每个级别的内存。

对于47位的VA,可以有0级到3级。

在第0级,可以有一个描述512个第1级页面表的表,现在每个第1级页面表可以描述512个第2级页面表,而且每个第2层页面表可以描述512个第3层页面表。

所以在第三级有512个页表,每个4k大小,覆盖的内存是512*4k = 2MB,这是只有一个第二级的页表可以覆盖的,如果我们有512个这样的第二级页表,那么覆盖的总内存是512*2MB =1 1GB,对吧?

类似地,1级的每个表指向512个2级页表(其中每个2级页覆盖2MB)。

所以,512*2MB=是1 GB,如果我们有512个1级页表,总内存是512 GB,对吗?

同样,0级覆盖的总内存是1024 GB,对吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 06:15:59

您似乎将单个页表条目与整个页表混淆在一起,以某种方式丢失了一个级别,并且增加了一点,而不是减少了它。

单页: 4'096

3级表: 4096*512 = 2'097'152 = 2MB

二级表: 4096*512*512 = 1'073'741'824 =1 1GB

1级表: 4096*512*512*512 = 549'755'813'888 =512 888

0级表: 4096*512*512*512*512 = 281'474'976'710'656 = 256TB

但请注意,上述内容适用于48位地址。也就是说,从地址开始,12位用于页偏移量,并且4乘以9位作为页表索引(12 + 4*9 = 48)。

对于47位,在0级表中只有256个条目,因此最终拥有128TB的可寻址内存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53051886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档