ARM9的MMU

一 页表

  1. 页表是放置在RAM(一般为DRAM)中的一个数据段。

  2. ARM的地址空间为2^32字节,即4G字节。

  3. 一级页表总共有4096条记录,每条记录对应的地址块为1M,一级页表中的记录将虚拟的连续4G寻址空间等分。

  4. 一级页表中的每条记录的内容就是虚拟的4G寻址空间的物理地址,举例如下:

    a. 将一级页表基址设置为:0x31000000,则从基址开始,之后的4096 * 4字节对应一级页表。

    b. 一级页表的第0条记录对应着虚拟地址的0x0000,0000~0x000F,FFFF,第1条记录对应着虚拟地址的0x0010,0000~0x001F,FFFF,依次类推。

    c. 相应的,一级页表的第0条记录(高12位)的内容对应虚拟地址0x0000,0000~0x000F,FFFF的物理地址(基地址),第1条记录(高12位)对应虚拟地址  0x0010,0000~0x001F,FFFF的物理地址(基地址),每条记录中的低位中都包含着权限访问控制位。

二 TLB(Translation Lockaside buffer):快表

  快表可理解为页表的cache,页表是存在于RAM中的一段数据,访问延迟较高,将相邻的页表加载到快表中可极大的加速MMU合成地址。

三 Cache

  未完待续...

N 关于MMU的启动

  若将页表设置为虚拟地址 = 物理地址,则开启MMU后代码的运行、数据的存储于读取、堆栈等不受影响,代码将继续地正确运行。

时间: 2025-01-10 07:54:14

ARM9的MMU的相关文章

嵌入式linux面试题解析(一)——ARM部分二

嵌入式linux面试题解析(一)--ARM部分二 1.描述一下嵌入式基于ROM的运行方式基于RAM的运行方式有什么区别. 基于RAM的运行方式:需要把硬盘和其他介质的代码先加载到ram中,加载过程中一般有重定位的操作: 基于ROM:没有上面的操作. 基于ROM:速度较基于RAM的慢,因为会有一个把变量,部分代码等从存储器(硬盘,flash)搬移到RAM的过程:可用RAM资源比基于RAM的多: 基于RAM:速度较基于ROM的快,可用RAM比基于ROM的少,因为所有的代码,数据都必须存放在RAM中.

嵌入式助理工程师(软件+硬件)考试试题及答案

一.填空题 在linux系统中,以 文件 方式访问设备 . 前台起动的进程使用 ctrl+c 终止. 安装linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 . 利用gdb进行调试时,可通过step或next命令进行单步执行. DHCP可以实现动态 IP 地址分配. Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 . vi编辑器具有两种工作模式: 命令模式 和 输入模式 . 在使用ls命令时,用八进制形式显示非打印字符应使用

S3C2440之MMU

转自:http://blog.chinaunix.net/uid-23193900-id-3187782.html 1.MMU简介 MMU(Memory Management Unit),内存管理单元,主要职责:将虚拟地址映射为物理地址,提供硬件机制的内存访问权限检查. 2.基本概念 虚拟地址(Virtual Address,VA),修改后的虚拟地址(Modified VA),物理地址(Phisical Address) VA是CPU使用的地址,MVA是MMU.Caches使用的,PA是内存设备

u-boot分析(五)----I/D cache失效|关闭MMU和cache|关闭看门狗

u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文档: Arm9内核手册:http://download.csdn.net/detail/wrjvszq/8358867 Arm11内核手册:http://download.csdn.net/detail/wrjvszq/8358877 Arm a8内核手册:http://download.csdn.

arm9特点

ARM9主要特点 ARM 处理器凭借它的低功耗.高性能等特点,被广泛应用于个人通信等嵌入式领域,而ARM7 也曾在中低端手持设备中占据了一席之地.然而,ARM7 的处理性能逐渐无法满足人们日益增长的高性能功能需求的处理,它开始退出主流应用领域,取而代之的是性能更加强大的ARM9 系列处理器. 新一代的ARM9 处理器,通过全新的设计,能够达到两倍以上于ARM7 处理器的处理能力.它的主要特点如下所述. (1)5 级流水线ARM7处理器采用的3级流水线设计,而ARM9则采用5 级流水线设计, 通过

MMU内存管理单元

arm-linux学习-(MMU内存管理单元) 什么是MMU MMU(Memory Management Unit)主要用来管理虚拟存储器.物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权.多任务多进程操作系统.(来自百度百科,对其几个点不熟悉,因此可以只考虑加粗部分) 发展历史 注意:学习一个知识点,很重要的一步是了解其为什么而存在?它的存在是为了解决什么问题?然后,在学习的过程中带着这些问题去理解.去思考. 在许多年以前,还是使用DOS或一些古老的操作系

关于MMU的一些事

页表在内存中的什么地方OS最清楚,MMU也应该是清楚的.而线性地址就是在寻址页表,这个线性地址也是由OS产生,然后cpu把这个线性地址传递给mmu,因为通过计算线性地址才能得到址页表集合中的索引,从而寻址这个页表.MMU把这个页表取出来,自己通过计算页表与线性地址的某些标志位,得出这是不是一个有效的页表.通常情况下MMU会从tlb中得到页表,如果计算得出这个页表无效,就会从内存中取出这个页表,并刷新tlb,将新页表写到TLB中.然后MMU解析出物理地址交给cpu.其实cpu对于MMU而言,cpu

ARM9嵌入式学习日志--20170828

2017年8月25日(星期五),入手天祥ARM9开发板. 周末两天一直没时间进行整机测试.今天晚上,根据配套视频讲解,尝试对开发板的基本功能进行验证. 带着明确的目的,跳跃式的观看视频. 首先了解PC与目标板的连线:一条USB下载线,一条USB转串口线,一条网线,一个J-TAG模块通过并口与PC相连). 自己的PC光驱已坏,随板附赠的光盘无法使用,幸好在百度网盘上找到了相关资源.USB下载站的驱动是光盘资料中提供的,而USB转串口的驱动需要自己搜集.

【2440】虚拟地址MMU

head.s文件 @************************************************************************* @ File:head.S @ 功能:设置SDRAM,将第二部分代码复制到SDRAM,设置页表,启动MMU, @ 然后跳到SDRAM继续执行 @************************************************************************* .text .global _start