ARM SMMU 与 IOMMU 的区别
ARM SMMU (System Memory Management Unit) 和 IOMMU (Input-Output Memory Management Unit) 都是用于管理系统内存访问和保护的硬件模块,但它们有不同的功能和用途。
1. 功能与作用
- IOMMU:IOMMU 是一个通用的内存管理单元,通常位于 CPU 和外设之间,用于管理和转换外设对内存的访问。它的主要功能是为外设提供虚拟地址到物理地址的转换,并提供内存访问保护,从而防止外设访问不该访问的内存区域。
- ARM SMMU:ARM SMMU 是 ARM 架构下特定的一种 IOMMU。它专门用于 ARM 处理器体系结构中,功能上和通用 IOMMU 类似,主要用于管理外设的内存访问,但 SMMU 具有与 ARM 体系结构深度集成的特点,能够更好地支持 ARM 的各种处理器核以及相关的内存模型。
2. 应用场景
- IOMMU:广泛应用于各种平台,不限于某个特定的处理器架构。它被用于虚拟化环境中,以确保虚拟机内的外设不能非法访问宿主机的内存,还用于提供更好的安全性和稳定性。
- ARM SMMU:专门应用于 ARM 体系结构的 SoC(系统级芯片)中。随着 ARM 处理器的广泛应用,SMMU 在移动设备、嵌入式系统以及其他 ARM 架构的设备中得到了广泛应用。
3. 特性
- IOMMU:支持虚拟化、内存隔离和保护、DMA(直接内存访问)重映射等特性,广泛适用于各种处理器和平台。
- ARM SMMU:作为 ARM 的一个实现,除了具有 IOMMU 的基本功能外,SMMU 还针对 ARM 处理器进行了优化,能够支持 ARM 特有的安全扩展(如 TrustZone)、大物理地址扩展(LPAE)等特性。
总结
IOMMU 是一个通用的概念,而 ARM SMMU 是 ARM 架构下的特定实现。SMMU 主要用于 ARM 生态系统中,并对 ARM 处理器做了专门的优化。
ARM SMMU 与 IOMMU 的区别的更多相关文章
- ARM指令和Thumb指令区别
Thumb指令集 ]的问题而提出的,它具有16为的代码密度.Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而不支持ARM指令集.因此,Thumb指令只需要支持通用功能,必要时, ...
- ARM与X86 CPU架构区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...
- DSP处理器和ARM处理器的区别以及各自应用在那些领域
由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核.那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域? DSP:digital signal proc ...
- iommu系列之---概念解释篇
本文会对iommu中的一些容易引起疑惑的概念进行阐述,内核版本为4.19. 先上简写: DMAR - DMA remapping DRHD - DMA Remapping Hardware Unit ...
- 如何在 arm 官网上找到合适的手册
http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...
- GNU ARM 汇编基础
ARM GNU汇编基础 0 前言 全文补充提醒: 笔者在阅读ARM官方文档及查阅实际的u-boot源码中的汇编代码后,发现了一些不同于ARM官方文档中的汇编语法,查阅相关资料后,才发现主要由于汇编器的 ...
- ARM伪指令与伪操作
一.伪指令 ARM伪指令有四个,分别是LDR.ADR.ADRL和NOP,下边对其分别介绍. 1.1 LDR LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器 .形式如 LDR{con ...
- ARM学习1
ARM相关概念 1.ARM的发展史 1. 1978年,CPU公司 Cambridge processing Unit 2. 1979年 Acorn 3. 1985年, 32位,8MHz, 使用的精简指 ...
- 【原创】Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...
- rust-vmm 学习
V0.1.0 feature base knowledge: Architecture of the Kernel-based Virtual Machine (KVM) 用rust-vmm打造未来的 ...
随机推荐
- app备案证明需要提供md5值和公钥的解决方案
现在app上架华为市场.小米市场.苹果市场等大型的应用商店,都需要提供国内的app备案证明.无论是安卓还是ios,都需要备案了. 但是问题是备案的时候需要填写app的bundle ID.公钥和MD5值 ...
- linux性能资源分析工具
linux性能资源分析工具 1,top 2,ps 3,uptime 4,mpstat 5,pidstat 6,vmstat 7,iostat 8,netstat 9,lsof 10,sar / nmo ...
- 加油,为Vue3提供一个可媲美Angular的ioc容器
为什么要为Vue3提供ioc容器 Vue3因其出色的响应式系统,以及便利的功能特性,完全胜任大型业务系统的开发.但是,我们不仅要能做到,而且要做得更好.大型业务系统的关键就是解耦合,从而减缓shi山代 ...
- 【RabbitMQ】10 深入部分P3 死信队列(交换机)
1.死信交换机 说是死信队列,是因为RabbitMQ和其他中间件产品不一样 有交换机的概念和这个东西存在,别的产品只有队列一说 DeadLetterExchange 消息成为DeadMessage之后 ...
- Ubuntu/Linux系统中的multi-user.target
相关: https://www.cnblogs.com/devilmaycry812839668/p/17999041 multi-user.target 是 Linux 系统中 systemd 的一 ...
- python的logging 模块的propagate设置
代码: import logging import sys LOG_FORMAT = '[%(asctime)s PID:%(process)d %(levelname)s %(filename)s ...
- Spring Boot Admin对Springboot服务进行监控
1.背景 大纲 Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件.每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin serv ...
- 如何将Linux的NIC 名称更改为 eth0 而不是 enps33 或 enp0s25,只要几秒钟
概述 我们使用Linux系统,网卡名称通常都是eth0,但是有一些新的linux发行版,网卡名字 enps33 或 enp0s25. peng@ubuntu:~$ ifconfig ens33 Lin ...
- 玩转内核链表list_head,3个超级哇塞的的例子
在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head.虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作li ...
- 电子行业MES系统流程图梳理