<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MMU on To the Moon</title><link>https://pycv.github.io/blog/tags/mmu/</link><description>Recent content in MMU on To the Moon</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 13 Mar 2026 09:52:02 +0800</lastBuildDate><atom:link href="https://pycv.github.io/blog/tags/mmu/index.xml" rel="self" type="application/rss+xml"/><item><title>从0到1吃透MMU与分页：内存管理的底层原理</title><link>https://pycv.github.io/blog/excerpts/2026-03-13-mmu-paging-memory/</link><pubDate>Fri, 13 Mar 2026 08:53:00 +0800</pubDate><guid>https://pycv.github.io/blog/excerpts/2026-03-13-mmu-paging-memory/</guid><description>&#10; &lt;blockquote&gt;&#10; &lt;p&gt;本文由 AI 自动摘录整理，原始链接：&lt;a class="link" href="https://mp.weixin.qq.com/s/rKKseQQeHcPQzlv76gnUAw" target="_blank" rel="noopener"&#10; &gt;从0到1吃透MMU与分页：内存管理的底层原理&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;推荐指数&lt;/strong&gt;：8/10（推荐读原文）&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="背景"&gt;背景&#10;&lt;/h2&gt;&lt;p&gt;这是一篇系统讲解 MMU（内存管理单元）与分页机制的技术文章。从硬件结构到软件实现，详细解释了虚拟地址到物理地址的映射过程，适合嵌入式开发者、操作系统学习者和想夯实底层基础的技术从业者。&lt;/p&gt;&#10;&lt;h2 id="核心观点"&gt;核心观点&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;MMU 是&amp;quot;翻译官&amp;quot;&lt;/strong&gt;：负责将 CPU 发出的虚拟地址翻译成物理内存能识别的物理地址，同时管理内存访问权限（只读、可读写、可执行等）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;分页机制解决内存碎片&lt;/strong&gt;：将虚拟内存和物理内存划分为固定大小的页（Page）和页框（Page Frame），通过页表建立映射关系，有效解决内存碎片化和地址空间不足问题&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;TLB 是性能关键&lt;/strong&gt;：转换后备缓冲器缓存常用的地址映射，命中率直接影响系统性能。利用程序的空间局部性（顺序访问数组）可显著提高 TLB 命中率&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;多级页表节省内存&lt;/strong&gt;：Linux 采用四级页表结构（PGD→PUD→PMD→PTE），只有实际使用的页表部分才会分配内存，避免单级页表的巨大内存占用&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="补充要点"&gt;补充要点&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;缺页异常处理&lt;/strong&gt;：当访问的页面不在物理内存中时触发，操作系统会从磁盘加载页面并更新页表&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;大页内存（Huge Pages）&lt;/strong&gt;：使用 2MB/1GB 大页可减少 TLB 缺失，提升数据库等内存密集型应用的性能&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;进程内存隔离&lt;/strong&gt;：每个进程拥有独立的虚拟地址空间，MMU 确保不同进程的内存互不干扰&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;内存映射（mmap）&lt;/strong&gt;：将文件直接映射到进程虚拟地址空间，像访问内存一样访问文件&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ASID/PCID 技术&lt;/strong&gt;：避免进程切换时刷新整个 TLB，提升多任务性能&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>