内存管理单元——MMU(第一章节 1-2)

一,MMU的地址之间的转换(以S3C2440【ARM9内核】为例来了解)

(1)MMU的虚拟地址和物理地址的转换

ARM处理器的寻址空间为4GB,地址范围为0x0000 0000~0xffff ffff 。这段空间称为虚拟地址空间,在MMU使能开启后,ARM处理器所发出的地址都是虚拟地址VA。

ARM目标系统实际配置的存储器(包括外设)地址范围空间称为物理地址空间,其中的某个地址称为物理地址PA,它们对应的实际内存单元,CPU发出的虚拟地址最终必须转换成物理地址才能读写数据运行程序。

        ARM处理器(S3C2440)中虚拟地址到物理地址转换过程中,会涉及到3个地址概念:

1,虚拟地址(Virtual ADDress:VA)

2,变换后的虚拟地址(Modified Virtual ADDress)记为MVA

3,物理地址(Physical ADDress:PA)

注意:

在没有启动mmu时,cpu,cache,mmu,外设等,所有部件都是使用物理地址(PA)实际地址

启动mmu之后,cpu发出的都是虚拟地址(VA),虚拟地址VA由硬件变换成MVA供cache,mmu使用,通过mmu转换成物理地址(PA),最后使用PA来读写内存和外设。

其中协处理器CP15也称为系统控制协处理器,它将内核cpu发出的va转换成mva

启动mmu之后:

cpu看到的使用的都是虚拟地址va

cache,mmu看到的是(输出的是)mva,它们将mva转换成PA(物理地址)

实际内存外设没看到VA,MVA,读写它们时使用的是PA

二,S3c2440是如何将cpu发出的VA转换成MVA的?

1,CPU发出的虚拟地址(VA)包含了两部分:页表索引和页内偏移。
2,首先,s3c2440通过页表索引找到对应的页表项。页表是一个数据结构,用于存储虚拟地址与物理地址的映射关系。
3,通过页表项中的物理地址基址(Page Base Address)和页内偏移,可以计算出物理地址(MVA)。
最后,s3c2440将计算得到的物理地址(MVA)提供给存储器控制器,以完成内存访问操作。

三,mmu如何将MVA转换成PA

MMU通过页表来实现地址转换。页表是一个数据结构,它逻辑地址划分为固定大小的页,并将每个页映射到物内存中的一个或多个页帧。当访问一个逻辑地址时,MMU会根据页的映射关系将逻辑地址转为物理地址。
具体的MVA到PA的转换过程下:
1,CPU生成一个逻辑地址MVA)并发送给MMU。
2,MMU从逻辑地址中提取出页号和页内偏移。
3,MMU使用页号在页表中查找对应的页表项。
4,如果页表项有效,则从中获取对应的物理页帧号。
5,MMU将物理页帧号与页内偏移组合成物理地址(PA)。
6,MMU将物理地址返回给CPU,CPU可以使用该物理地址进行内存访问。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值