硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1368|回复: 3
收起左侧

ZYNQ双核A9的MMU内存管理学习之基础介绍

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-12-10 00:33:50 | 显示全部楼层 |阅读模式

MMU的最主要功能就是地址转换,将虚拟内存的数据和代码地址转换为实际的物理地址。MMU启用任务或应用程序,不需要他们知道物理内存映射方式编写系统或可能同时运行的其他程序。

这使得编程应用程序要简单得多,因为它可以为每个应用程序使用相同的虚拟内存地址空间。这个虚拟地址空间与系统中内存的实际物理映射是分开的。

转换过程是基于转换表中存储的转换条目。MMU的两个主要的功能单元,根据存储条目自动提供地址转换:

(1)table walker 自动检索请求的正确转换表条目

(2)后备缓冲区 (look-aside buffer, TLB) 存储最近使用的转换条目,就像一个转换表的缓存。

QQ截图20211210003357.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
 楼主| 发表于 2021-12-10 01:10:55 | 显示全部楼层
Translation Tables 转换表:

    虚拟地址到物理地址的转换是基于转换表中的条目;他们经常称为页表page tables。页表包含一系列条目,每个条目描述部分内存映射的物理地址转换。转换表条目按虚拟地址组织。每个虚拟地址正好对应转换表中的一个条目。此外描述该虚拟页到物理页的转换,它们还提供访问该页或块的权限和内存属性。使用一组转换表给出适用于指令获取和数据读取的转换和内存属性。 MMU 访问页表以转换地址的过程称为page table walking。

    在开发基于表的地址转换方案时,最重要的设计之一参数是每个转换表条目描述的内存页大小。 MMU 实例支持 4 KB 和 64 KB 页面、1 MB 区和 16 MB 区。使用更大的页面尺寸意味着更小的转换表。使用较小的页面大小,4 KB,大大提高了动态内存分配和碎片整理,但需要一百万个条目才能跨越整个 4 GB 地址范围。为了调节这两个要求,Cortex-A9 处理器 MMU支持多级页表架构,具有两级页表:1级(L1)和2级(L2)

回复

使用道具 举报

39

主题

929

回帖

1051

积分

至尊会员

积分
1051
发表于 2021-12-10 09:23:01 | 显示全部楼层
以前对MMU不太了解,好像有人说使用大容量DDR4内存需要MMU支持,现在看来其实是不需要的。只不过上DDR4的场合多需要跑linux、android、windows等,是这些系统需要MMU。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
 楼主| 发表于 2021-12-10 09:33:00 | 显示全部楼层
ghslfgkkl88 发表于 2021-12-10 09:23
以前对MMU不太了解,好像有人说使用大容量DDR4内存需要MMU支持,现在看来其实是不需要的。只不过上DDR4的场 ...

有了MMU,刷应用方便。用户不用关心地址问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-7 05:07 , Processed in 0.224559 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表