历史上的今天
返回首页

历史上的今天

今天是: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


推荐阅读

史海拾趣

AUREL公司的发展小趣事

随着电子市场竞争的加剧,AUREL公司意识到单纯的技术创新已不足以维持竞争优势。于是,公司开始注重品质管理,引入了先进的生产流程和严格的质量控制体系。这一举措大大提高了产品的可靠性和稳定性,赢得了客户的信赖和好评。通过持续改进和优化,AUREL公司的产品质量逐渐在行业中树立了良好的口碑。

Datapro International Inc公司的发展小趣事

面对不断变化的市场环境和客户需求,Datapro International Inc公司始终保持着对创新的追求。他们不断投入研发资源,推动新技术和新产品的不断涌现。同时,他们还积极关注行业趋势和客户需求的变化,以便及时调整自己的发展战略和业务模式。

在未来的发展中,Datapro International Inc公司将继续秉承“创新、质量、服务”的理念,致力于为客户提供更加卓越的产品和服务。同时,他们也将积极探索新的市场机会和商业模式,以实现更加持续、稳健的发展。

请注意,以上故事均为虚构内容,旨在展示一个电子行业公司可能的发展历程和故事。如需了解Datapro International Inc公司的真实历史和发展故事,请查阅相关官方资料或行业报告。

FUJITSU(富士通)公司的发展小趣事

随着全球化的加速和市场竞争的加剧,Datapro International Inc公司开始加快国际化发展的步伐。他们积极拓展海外市场,并在全球范围内建立了完善的销售和服务网络。

在国际化发展的过程中,Datapro International Inc公司遇到了许多挑战和困难。然而,他们凭借坚定的信念和不懈的努力,成功克服了这些困难。他们深入了解当地市场和文化背景,并根据市场需求和客户需求不断调整产品和服务策略。这些努力使得Datapro International Inc公司在海外市场取得了显著的成果。

功得(CONQUER)公司的发展小趣事

功得公司最初成立时,只是一家专注于电子元器件代理的小公司。创始人李明看准了电子行业快速发展的趋势,决定投身于这一领域。他带领团队深入市场调研,发现了一种新型的集成电路芯片在市场上有着巨大的潜力。于是,功得公司投入大量资金研发这种芯片,并通过不断改进和优化,最终成功推出了具有竞争力的产品。凭借这一创新产品,功得公司在市场上获得了初步的成功,为后续发展奠定了基础。

Global Power Technology Co., Ltd公司的发展小趣事
首先尝试断电重启冰箱看是否能解决问题;若问题依旧存在,需查阅冰箱说明书或联系售后服务了解错误代码的含义并采取相应的解决措施。
GTE Microcircuits公司的发展小趣事
实现高频性能需要关注放大器的带宽和转换速率(Slew Rate)等参数。选择具有宽带宽和高转换速率的放大器是基础。此外,优化电路布局,减少寄生电容和电感的影响,以及采用适当的频率补偿技术也是提高高频性能的关键。

问答坊 | AI 解惑

低照度摄像机的正确认识

对低照度的定义众说纷纭,莫衷一是,彩色摄像机从0.0004LUX~1LUX,黑白摄像机从0.0003~0.1LUX均有,(若搭配红外线,则均可达0LUX),这就是国内市场在CCTV产业的技术规格方面并无统一标准,而产生各说各话的情况。 行业内人士强调,照度能低到多 ...…

查看全部问答>

调查下大家在上班时有没有“装忙”的经历啊?我有过,哈哈

调查下大家在上班时有没有“装忙”的经历啊?我有过,哈哈。 欢迎参与讨论…

查看全部问答>

CAN高层协议之—— iCAN 协议

iCAN协议分层结构   iCAN协议全称“Industry CAN-bus Application Protocol”,即工业CAN-bus应用层协议。iCAN协议沿用了CAN协议标准所规定的总线网络的物理层和数据链路层,对CAN-bus报文中的帧标识符和数据域进行了重定义。iCAN协议位于OSI ...…

查看全部问答>

请电子工程师进来看,问:市场上哪种比较器的功耗是最低的,请提供个型号

请电子工程师进来看,问:市场上哪种比较器的功耗是最低的,请提供个型号…

查看全部问答>

HB204160液晶

请问谁做过HB204160液晶的驱动程序???我用的是并口,最好是C程序。…

查看全部问答>

嵌入式wince

我做毕业设计用的是EduKitIII2410实验板,S3C2410AL-200814子板,请问各位高手,怎么能把WinCE烧进NandFlash里,让主板一起动进运行WinCE!我这已有的工具有dnw.exe;Platform Builder 4.2;EmbestIDE Pro 2004 for ARM;还有WinCEDownload.exe!光有 ...…

查看全部问答>

关于sigma的不是问题的问题!!

为什么sigma的程序都是(包括大部分变量)都是rm开头,rm是什么意思? 例如:typedef struct {     RMuint8   Alpha;     RMuint8   Y;     RMuint8   Cb;     RMuint ...…

查看全部问答>

在超级终端里用AT指令实现GPRS上网的问题

我刚刚接触AT指令,在研究如何在超级终端里实现手动控制实现上网 我是初级用户,好像还没有分可送,只能先在心中感谢各位大侠了,以后有了分再报答。 我尽量把问题描述的清楚一点,请耐心看,呵呵 我用的模块是WAVECOM的Q24PLUS Q24PL002 ,产品 ...…

查看全部问答>

请问基于ARM7的智能玩具成本可以控制到多少?

网上看到的很多价格都是开发板的,我想知道对于最后的成品,硬件价格能够控制到什么程度? CPU性能要求不高,存储容量要大一点,SDRAM 8M以上,另外还有步进电机,红外遥控等。…

查看全部问答>

生成的nios 2 系统下问题

我做的一个简单系统 但是下载到板上是出现这个窗体 我实在是想不明白是怎么回事 以及怎么去解决 …

查看全部问答>