历史上的今天
今天是:2025年06月05日(星期四)
2018年06月05日 | SC2440虚拟地址到物理地址的转换
2018-06-05 来源:eefocus
声明:本文得出的结论皆来自于《嵌入式linux完全开发手册》,是在尝试自己理解其含义之后用自己的语言总结出来的,以便于更好的去理解本节内容。
VA:虚拟地址
WVA:经过转换后的虚拟地址
PA:物理地址
PID:进程标识号,由CP15的C13取得。
1、 虚拟地址得到转换后虚拟地址
若VA < 32M,则MVA = VA | (PID << 25),
其他情况VA = MVA。
32M = 2^25,所以PID要左移25位以便得到不重复的物理地址空间。
Tip:那个VA < 32M,至于为什么是32,我觉得可能是程序运行时的代码空间不会超出后面32M的虚拟地址空间。由于这种取得MVA的方法就是为了简化防止拥有重叠的虚拟地址的不同进程映射到同一物理地址空间所做的工作,而32M之后的虚拟内存空间存放系统组件以及动态链接库等,可以为不同进程所共享,所以就不需要专门去为每个进程区分32M之后的虚拟地址空间所对应的物理地址空间了。
2、 页表分类
2.1、一级页表条目
标识低2位 条目类型 00 无效条目 01 粗页表条目 10 段条目 11 细页表条目 2.2、二级页表条目
标识低2位 条目类型 00 无效条目 01 大页条目 10 小页条目 11 极小页条目 3、 各页表之间关系
3.1、指向关系
其中可以理解为段、大页、小页、极小页属于同一级别,因为由它们可以直接得到物理地址。
粗页表、细页表属于二级页表,页表属于一级页表。3.2、包含关系
(1)页表可以包含有4096个段条目(即段描述符),每个段存放有1M的物理地址空间。(2)页表可以包含有4096个粗页表
1.每个粗页表包含256个条目,每个条目可以索引4K的物理地址
2.一个大页可以索引64K物理地址,粗页表每16个条目可以指向同1个大页
3.一个小页可以索引4K的物理地址,粗页表每1个条目可以指向1个小页
4.一个极小页可以索引1K的物理地址,粗页表不可指向极小页(3)页表可以包含有4096个细页表
1.每个细页表包含1024个条目,每个条目可以索引1K的物理地址
2.一个大页可以索引64K物理地址,细页表每64个条目可以指向同1个大页
3.一个小页可以索引4K的物理地址,细页表每4个条目可以指向1个小页
4.一个极小页可以索引1K的物理地址,细页表每1个指向1个极小页4、索引步骤
(1)段方式
从CP15的C2(页表基址寄存器)取得一级页表物理地址(位[31:14]),由MVA的[31:20]位索引到一级页表中的对应的段描述符,从段描述符的[31:20]位得到对应段的物理地址,由MVA的[19:0]位在该段中索引要操作的物理地址。(2)粗页表方式(保存的是大页)
从CP15的C2(页表基址寄存器)取得一级页表物理地址(位[31:14]),由MVA的[31:20]位索引到一级页表中的对应的粗页表描述符,由该粗页表描述符的[31:10]得到对应粗页表的物理地址,由MVA的[19:12]位在该粗页表中索引到一个大页描述符,从该大页描述符的[31:16]位得到大页的物理地址,由MVA的[15:0]位在该大页中索引到要操作的物理地址。
大页保存在细页表中的索引方式雷同(3)粗页表方式(保存的是小页)
从CP15的C2(页表基址寄存器)取得一级页表物理地址(位[31:14]),由MVA的[31:20]位索引到一级页表中的对应的粗页表描述符,由该粗页表描述符的[31:10]得到对应粗页表的物理地址,由MVA的[19:12]位在该粗页表中索引到一个小页描述符,取出描述符[31:12]得到小页表的物理地址,然后由MVA的[11:0]索引到小页表中存放的物理地址。(4)细页表(保存的是极小页表)
从CP15的C2(页表基址寄存器)取得一级页表物理地址(位[31:14]),由MVA的[31:20]位索引到一级页表中的对应的细页表描述符,由该细页表描述符的[31:12]位索引到一个极小页表的基址,再由MVA的[19:10]索引到该极小页表中的一个描述符,取出该描述符的[31:10]索引到极小页的物理地址,再由MVA的[9:0]在该极小页中索引到要操作的物理地址。综述:
段索引:
TTB[31:14] MVA[31:20] 得到段描述符
DUB[31:20] MVA[19:0] 得到物理地址粗页表大页:
TTB[31:14] MVA[31:20] 得到粗页表描述符
SOB[31:10] MVA[19:12] 得到大页表描述符
BIB[31:16] MVA[15:0] 得到物理地址细页表大页:
TTB[31:14] MVA[31:20] 得到细页表描述符
FIB[31:12] MVA[19:12] 得到大页表描述符
BIB[31:16] MVA[15:0] 得到物理地址粗页表小页:
TTB[31:14] MVA[31:20] 得到粗页表描述符
SOB[31:10] MVA[19:12] 得到小页表描述符
SMB[31:12] MVA[11:0] 得到物理地址细页表小页:
TTB[31:14] MVA[31:20] 得到细页表描述符
FIB[31:12] MVA[19:12] 得到小页表描述符
SMB[31:12] MVA[11:0] 得到物理地址细页表极小页:
TTB[31:14] MVA[31:20] 得到细页表描述符
FIB[31:12] MVA[19:10] 得到极小页描述符
VSB[31:10] MVA[9:0] 得到物理地址Tip:
SOB: coarse base
FIB: fine base
DUB: section base
SMB: small base
VSB: very small base
BIB: big base
史海拾趣
|
对低照度的定义众说纷纭,莫衷一是,彩色摄像机从0.0004LUX~1LUX,黑白摄像机从0.0003~0.1LUX均有,(若搭配红外线,则均可达0LUX),这就是国内市场在CCTV产业的技术规格方面并无统一标准,而产生各说各话的情况。 行业内人士强调,照度能低到多 ...… 查看全部问答> |
|
iCAN协议分层结构 iCAN协议全称“Industry CAN-bus Application Protocol”,即工业CAN-bus应用层协议。iCAN协议沿用了CAN协议标准所规定的总线网络的物理层和数据链路层,对CAN-bus报文中的帧标识符和数据域进行了重定义。iCAN协议位于OSI ...… 查看全部问答> |
|
为什么sigma的程序都是(包括大部分变量)都是rm开头,rm是什么意思? 例如:typedef struct { RMuint8 Alpha; RMuint8 Y; RMuint8 Cb; RMuint ...… 查看全部问答> |
|
我刚刚接触AT指令,在研究如何在超级终端里实现手动控制实现上网 我是初级用户,好像还没有分可送,只能先在心中感谢各位大侠了,以后有了分再报答。 我尽量把问题描述的清楚一点,请耐心看,呵呵 我用的模块是WAVECOM的Q24PLUS Q24PL002 ,产品 ...… 查看全部问答> |
|
网上看到的很多价格都是开发板的,我想知道对于最后的成品,硬件价格能够控制到什么程度? CPU性能要求不高,存储容量要大一点,SDRAM 8M以上,另外还有步进电机,红外遥控等。… 查看全部问答> |




