Page表中的1 Mb部分是什么?

阿米特·辛格·托马尔(Amit Singh Tomar)

我对ARM MMU的了解很低,试图了解ARM MMU中的Page表是如何组织的。

页表是在系统启动时创建的,可以将其视为线性一维数组,其中每个条目的长度为4个字节,但我不知道页表中对应的1 MB SECTION是什么?

如果我们有三级页表,我们的第一级页表(PGD)会包含此1 MB的部分,还是第一级页表(1 MB的部分)是第三级页表(PTE)的一部分?

以下语句也意味着什么:

页表的开头是0x40200000,每个条目的长度为4个字节,每个条目对应于1MB的内存部分。页表中的第一个条目(0x40200000)表示您尝试访问0x00000000到0x00100000范围之间的内存时发生的情况,第二个条目(表中0x40200004的4个字节)表示内存范围0x00100000到0x00200000,依此类推。

因此,要查找与内存区域0x40200000至0x40200000 + 1MB(这是内存的第402 MB)关联的页表,您需要将页表列表遍历402个条目,但是每个条目的长度为4个字节,因此需要时间这个数字乘以4。

老旧的计时器

首先,在ram的已知位置有一张表,使用驱动mmu的物理地址。我更喜欢文档的图表版本而不是表格。

启用mmu并从处理器进行访问,访存或数据访问,读取或写入时,将从该虚拟地址中提取的一些位数提取并添加到上述mmu表的基址中。mmu表中存储位置的内容告诉mmu该访问如何处理。有些条目是唯一的访问权限,有些则需要再次进行第二个mmu表访问,这需要从第一级访问中获取一些位,并将这些位添加到上述mmu表基地址中以获得第二个条目。

在一天结束时,您将拥有一个带有基本地址的mmu表(该地址必须在某个边界上对齐)。来自处理器访问的虚拟地址中的位用于索引该表。表中的最终值表示将虚拟地址转换为物理地址的替换地址位,以及表示是否可缓存的某些控制位以及权限等。他们将术语应用于诸如1MB之类的术语,或者理想情况下基于表中一项控制的ram数量。但是,当然16MB功能会误导您,因为您需要16个1MB条目才能使用它(但是如果您忽略16mb术语并严格查看地址位以及它们来自何处或从何处知道,您可以控制多少内存通过每个mmu表条目)。

所以他们说的是对于某人在某个时间点创建的某个表。表位置的物理地址为0x40200000。1MB大小的条目(对于我来说,我认为您应该查看条目的低两位以了解它是什么类型,但是我必须查看一下,并且不同的体系结构添加了不同的功能,因此没有一条适合所有人的规则,您必须查看核心文档)4个字节或1个字宽,并且AFAIK mmu表中的所有条目均为1个字宽。因此,他们说一个特定的条目是从0x00000000到0x000FFFFF的虚拟地址空间中1MB的ram的地址,而mmu表将其映射到某个物理地址。他们显示的下一个条目可能是1MB虚拟地址空间0x00100000到0x001FFFFF,依此类推。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bootstrap 4中的class =“ mb-0”是什么?

gdb 中的“堆栈”部分是什么

ELF中特殊部分的格式是什么

RISCV中的内存映射部分是什么

多部分电子邮件中的“部分”是什么?

kickstart 文件中 $post 部分的顺序是什么

URI中特定于方案的部分是什么?

此HTTP响应中每个部分的含义是什么?

C标准中命名宏的每个部分是什么?

管理部分中的Model Token的目的是什么?

是什么导致此 SQL 中的多部分连接错误?

ELF中“ .note.ABI-tag”部分的意义是什么?

DNS中的“附加部分”是什么以及它如何工作?

DevExpress中此组件的组成部分是什么?

在appsettings.production.json中,排除部分是什么?

通过查询最大 1MB 的 DynamoDB 可以获得的最佳性能是什么?

创建1MB字符串的好方法是什么?

在笔记本电脑内存中,“ on MB”是什么意思?

oracle解释计划中tempspc的意义是什么,它的度量是M = MB和K = KB?

Bash在Ubuntu中默认PS1的主要部分是什么意思?

python中的[:,:-1]是什么?

从计算着色器写入 1 MB 并在片段着色器中读取它的最有效方法是什么?

在多部分表单调用中,OKHttp中参数的正确位置是什么?

angular 中 app.module 中声明部分的用途是什么

在Swift中调用函数时,每个部分是什么意思?

Libre Office打印首选项中的“渐变条纹”部分是什么意思?

OpenCL中的mul_hi函数:“上半部分”是什么意思?

project.json中两个依赖项部分之间的区别是什么

perror 手册页中的 SYNOPSIS 部分是什么意思?