2.深入剖析地址转化

发布者:VelvetSoul最新更新时间:2024-11-04 来源: cnblogs关键字:MMU 手机看文章 扫描二维码
随时随地手机看文章

  1. 地址转化总体分析:

  2. TTB的配置:

在ATM920T的芯片手册里,在第三章:

就是关于内存管理单元的知识的,在里面有这要这个原理图:

上面这幅图就是2440虚拟内存到物理内存的转换过程,这过程适用于6410,210等。

 

3.段式转换:

知道,当最后两位为'10',表示接下来的转化过程按照段方式来进行的。

可以看到当最后两位是'10'的时候就是采用段方式来转化的。前面的12位表示段的物理基地址。

整个段转化的过程:

段转化,cpu根据段式转换,把32位寄存器里的值的前12位作为一级页表的索引值,找到一级页表的表项,作为基地址。虚拟地址剩下的20位作为偏移值,大小是1M。所以段内数据的地址是:基地址+偏移量。结构如上图。

 

4.页式转化:

流程图:

上面就是MMU进行页式转化的流程,就是物理页基地址+页内偏移。上面可以看到MMU对内存的管理非常依赖这些页表等信息,这些都是由工程师设定好的。


关键字:MMU 引用地址:2.深入剖析地址转化

上一篇:3.MMU的配置和使用
下一篇:1.MMU功能解析

推荐阅读最新更新时间:2026-03-20 11:41

专题1-MMU-lesson2-深入剖析地址转化
1、地址转化总体分析 level one fetch和level two fetch分为一级转换和二级转换。 由上图右边可以看出,首先通过TTB(Translation Table Base)寄存器找到转换表基地址,该表有4096项,然后用虚拟地址的 位来找该表里面的表项,再检查该表项最后两位如果为00,则无效转换,如果为01,则是粗页转换,为10为段转换,为11为细页转换。 关于转换表的简单描述 首先,转换表是存放在内存当中的;然后,这张表是由工程师来编写的,工程师然后把该表的首地址放到TTB中,然后把TTB的值写入cp15寄存器中的c2寄存器,那么在MMU工作的时候,会直接去cp15的c2寄
[单片机]
专题1-<font color='red'>MMU</font>-lesson2-深入剖析<font color='red'>地址</font><font color='red'>转化</font>
2.深入剖析地址转化
地址转化总体分析: TTB的配置: 在ATM920T的芯片手册里,在第三章: 就是关于内存管理单元的知识的,在里面有这要这个原理图: 上面这幅图就是2440虚拟内存到物理内存的转换过程,这过程适用于6410,210等。 3.段式转换: 知道,当最后两位为'10',表示接下来的转化过程按照段方式来进行的。 可以看到当最后两位是'10'的时候就是采用段方式来转化的。前面的12位表示段的物理基地址。 整个段转化的过程: 段转化,cpu根据段式转换,把32位寄存器里的值的前12位作为一级页表的索引值,找到一级页表的表项,作为基地址。虚拟地址剩下的20位作为偏移值,大
[单片机]
2.深入剖析<font color='red'>地址</font><font color='red'>转化</font>
S5PV210 uboot中的 MMU代码分析
1:经过上一节的分析,如果采用SECTION虚拟地址映射的话; 程序员只需要做的事情: (1) 建立转换表,Tanslation Table; (2) 将TTB(转换表基地址Tanslation Table Base)写入协处理器CP15的C2寄存器,这里要注意转换表 基地址为16K对齐的(因为4096*32bit=16K)所以TTB的bit0-bit13为0。 (3) 使能MMU,将CP15的C1寄存器0bit写1; (4) 设置域的访问权限;设置C3寄存器; CPU/MMU做的事情: (1) CPU核心看到和用到的只是虚拟地址VA,至于VA如果去对应物理地址PA,CPU核心不理会,MVA是除CPU核心 外的其他部分看到的虚拟地
[单片机]
S5PV210 uboot中的 <font color='red'>MMU</font>代码分析
3.MMU的配置和使用
前面的基础知识中使用了物理地址来点亮LED灯的,现在,学习了MMU的有关知识,下面就是利用MMU的知识,用虚拟地址来点亮LED灯。而且前面还关闭了MMU所以接下来要使用MMU就得打开MMU。 在前面的学习知道,从虚拟地址映射成物理地址有三种方式的: 段的方式 粗页的方式 细页的方式 接下来就是使用段的映射方式来实现虚拟地址到物理地址的转化。 段的方式的实现步骤: 1、建立一张Translation table: 可以看到段的方式的表的信息。 2、建立了这张表之后,还要把这张表的基地址TTB(Translation Table Base)写到CP15的c2寄存器里,这样MMU才能找得到这张表。 3、就是打开M
[单片机]
3.<font color='red'>MMU</font>的配置和使用
专题1-MMU-lesson3-MMU配置与使用
1、段方式MMU 利用虚拟地址然后找到物理地址,通过物理地址访问到led,其过程如下: 一个段的大小是 总共有1M的地址空间。 从上面可知对应GPIO的段物理基地址是0x7f000000.那么要在虚拟地址当中找一个段与之形成对应关系,那么这个段是多少呢,假如是0xa0000000这个段,把这两个段关联起来,那么通过页表来建立这个关系。那么这个页表存放在内存的起始地址0x50000000。接下来就要建立该页表的页表项,要建立页表项就要知道它在页表当中的位置,它的位置实际上就是页表的起始地址+虚拟地址的高12位, 找具体表项里面的内容看芯片手册 保存的段的物理基地址的高12位, should be zero固定为零。
[单片机]
专题1-<font color='red'>MMU</font>-lesson3-<font color='red'>MMU</font>配置与使用
Part5核心初始化_lesson4---关闭mmu
1、ARM存储体系 2、cache 3、虚拟地址 那么谁来完成把虚拟地址转换成物理地址呢? 4、这个工作就由MMU来转换!! 5、关闭MMU和cache 他们都是通过cp15协处理器来控制的!应该在ARM核的手册里面搜索CP15 1、首先要使I/Dcache里面的数据无效 2、关闭I/D cache以及mmu 代码:
[单片机]
Part5核心初始化_lesson4---关闭<font color='red'>mmu</font>
s3c6410_MMU地址映射过程详述
参考: 1)《ARM1176 JZF-S Technical Reference Manual》: Chapter 3 System Control Coprocessor Chapter 6 Memory Management Unit 2)u-boot源码: u-boot-x.x.x/cpu/s3c64xx/start.S u-boot-x.x.x/board/samsung/smdk6410/lowlevel_init.S 1. ARMv6 MMU简述 1)MMU由协处理器CP15控制; 2)MMU功能:地址映射(VA- PA),内存访问权限控制; 3)虚拟地址到物理地址的转换过程:M
[单片机]
s3c6410_<font color='red'>MMU</font><font color='red'>地址</font>映射过程详述
MMU 和 MPU的区别
S3C2440里面带的是MMU,而现在流行的Cortex-M3/4 里面带的是MPU。 MMU vs MPU 内存是现代计算机最重要的组件之一。因此,它的内容不能被任何错误的应用所篡改。这个功能可以通过MMU(Memory Management Unit)或者MPU(Memory Protection Unit)来实现。尽管这个两个东西有同样的基本功能,但是它们之间还是存在一些不同。MMU被认为是比MPU更先进的设备。MMU能完成MPU的所有工作,并且它还具备MPU没有的一些高级特性。 MMU具备而MPU不具备的特性包括:缓存控制,总线仲裁,bank切换。这些特性是更复杂的计算机所需要的,以便信息处理流程更顺畅无误。通过使用
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved