本文主要是介绍Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一, 什么是MMU?
MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。
其工作原理如下:
- 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。
- 然后,MMU根据页表等数据结构将逻辑地址转换为物理地址。
- 接着,MMU将物理地址发送给内存控制器进行实际的内存读写操作。
- 最后,内存控制器将数据返回给MMU,再由MMU将数据返回给程序。
二,什么是IOMMU?
IOMMU(input/output memory management unit 输入/输出内存管理单元)是一个更广泛的概念,用于多种架构(包括x86/x64和ARM),其原理与CPU中的MMU相似,管理设备的内存访问请求,实现地址转换和内存保护。
它的主要作用之一是控制设备DMA(Direct Memory Access)地址到机器物理地址
这篇关于Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!