您的位置 首页 设计

[ARM笔记]内存办理单元地址改换进程

1.地址的分类以前的程序很小,可以全部装入内存中运行,随着技术的发展,出现了如下两种情况:1)有的程序很大,它要求的内存空间超过了内存总容量,不能一次性装入内存中;2)多任务系统中有很

  1. 地址的分类

  曾经的程序很小,能够悉数装入内存中运转,跟着技能的开展,呈现了如下两种状况:

  1)有的程序很大,它要求的内存空间超过了内存总容量,不能一次性装入内存中;

  2)多任务体系中有许多程序需求一起运转,它们要求的内存空间超过了内存总容量,不能把一切的程序悉数装入内存中。

  实践上,一个程序在运转前,没有必要悉数装入内存,而仅需求将那些当时要运转的部分先装入内存,其余部分在用到的时分再从磁盘调入,而当内存耗光时,再将暂时不用的部分调出到磁盘。这使得一个大程序能够在较小的内存空间中运转,也使得内存中能够一起装入更多的程序并发履行,从用户的视点看,该体系所具有的内存容量比实践的内存容量大得多,人们把这样的存储器称为虚拟存储器

  虚拟存储器从逻辑上对内存容量进行了扩大,用户看到的大容量仅仅一种感觉,是虚的。在32位的CPU体系中,这个虚拟内存的地址规模是0~0xffff_ffff,咱们把这个地址规模称为虚拟地址空间,其间的某个地址称为虚拟地址。与虚拟地址空间、虚拟地址对应的是物理地址空间、物理地址,它们对应实践的内存。

  虚拟地址最张需求转化为物理地址才干读写实践的数据,这经过将虚拟地址空间、物理地址空间划分为相同巨细的一块块小空间(称为段或页),然后为这两类小空间树立映射联系。因为虚拟地址空间远大于物理空间,有或许多块虚拟地址空间映射到同一块物理地址空间,或许有些虚拟地址空间没有映射到详细的物理地址空间上去(能够在运用届时再映射)。ARM CPU的地址转化进程涉及到3个概念:虚拟地址(VA,Virtual Address)、改换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address)。

  没发动MMU时,CPU核、cache、MMU、外设等一切部件运用的都是物理地址。

  发动MMU后,CPU核对外宣布虚拟地址VA;VA被转化为MVA供cache、MMU运用,在这里MVA被转化为PA;终究运用PA读写实践设备(S3C2410/S3C2440内部寄存器或外接设备):

  1)CPU核看到的、用到的都是虚拟地址VA,至于VA怎么终究落实到物理地址PA上,CPU核是不理睬的。

  2)而cache和MMU也是看不到VA的,它们运用MVA转化得到的PA。

  3)实践的设备看不到VA、MVA,读写它们时运用的是物理地址PA。

  MVA是除CPU核外的其他部分看见的虚拟地址。

  假如VA<32M,需求运用进程标识号PID(经过读CP15的C13来取得)来转化为MVA。VA与MVA的转化办法如下:

  if (VA<32M) then

  MVA=VA | (PID<<25) //VA<32M

  else

  MVA=VA //VA>=32M

  运用PID生成MVA的意图是为了削减切换进程时的价值:不运用MVA而直接运用VA的话,当两个进程所用的虚拟地址空间(VA)有堆叠时,在切换进程时为了把堆叠的VA映射到不到的PA上去,需求重建页表、使无效caches和TLBS等,价值非常大。运用MVA后,进程切换就省劲多了;假定两个进程1、2运转的VA都是0~(32M-1),可是它们的MVA并不堆叠,分别是0x0200_0000~0x03ff_ffff、0x0400_0000~0x05ff_ffff,这样就不用进行重建页表等工作了。

  2. 虚拟地址到物理地址的转化进程

  将一个虚拟地址转化为一个物理地址,一般有两种办法:用一个确认的数学公式进行转化或用表格存储虚拟地址对应的物理地址。这类表格称为页表(Page table),页表由一个个条目(Entry)组成;每个条目存储了一段虚拟地址对应的物理地址及其拜访权限,或许下一级页表的地址。

  在ARM CPU中运用第二种办法。S3C2410/S3C2440最多会用到两级页表:以段(Section,1MB)的方法进行转化时只用到一级页表,以页(Page)的方法进行转化时用到两级页表。页的巨细有3种:大页(64KB)、小页(4KB)、极小页(1KB)。条目也被称为“描述符”(Descriptor),有:段描述符、大页描述符、小页描述符、极小页描述符——它们保存段、大页、小页或极小页的开始物理地址;粗页表描述符、细页表描述符——它们保存二级页表的物理地址。

  大约的转化进程如下:

  1)依据给定的虚拟地址找到一级页表中的条目;

  2)假如此描述符是段描述符,则回来物理地址,转化完毕;

  3)不然,假如此描述符是二级页表描述符,持续运用虚拟地址在此二级页表中找到下一个条目;

  4)假如这第二个条目是页描述符,则回来物理地址,转化完毕;

  5)其他状况犯错。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/259790.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部