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 的区别的更多相关文章

  1. ARM指令和Thumb指令区别

    Thumb指令集 ]的问题而提出的,它具有16为的代码密度.Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而不支持ARM指令集.因此,Thumb指令只需要支持通用功能,必要时, ...

  2. ARM与X86 CPU架构区别

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...

  3. DSP处理器和ARM处理器的区别以及各自应用在那些领域

    由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核.那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域? DSP:digital signal proc ...

  4. iommu系列之---概念解释篇

    本文会对iommu中的一些容易引起疑惑的概念进行阐述,内核版本为4.19. 先上简写: DMAR - DMA remapping DRHD - DMA Remapping Hardware Unit ...

  5. 如何在 arm 官网上找到合适的手册

    http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...

  6. GNU ARM 汇编基础

    ARM GNU汇编基础 0 前言 全文补充提醒: 笔者在阅读ARM官方文档及查阅实际的u-boot源码中的汇编代码后,发现了一些不同于ARM官方文档中的汇编语法,查阅相关资料后,才发现主要由于汇编器的 ...

  7. ARM伪指令与伪操作

    一.伪指令 ARM伪指令有四个,分别是LDR.ADR.ADRL和NOP,下边对其分别介绍. 1.1 LDR LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器 .形式如  LDR{con ...

  8. ARM学习1

    ARM相关概念 1.ARM的发展史 1. 1978年,CPU公司 Cambridge processing Unit 2. 1979年 Acorn 3. 1985年, 32位,8MHz, 使用的精简指 ...

  9. 【原创】Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...

  10. rust-vmm 学习

    V0.1.0 feature base knowledge: Architecture of the Kernel-based Virtual Machine (KVM) 用rust-vmm打造未来的 ...

随机推荐

  1. win10远程桌面连接报错:出现身份验证错误,要求的函数不受支持(CredSSP)

    问题 解决办法 找到路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 在Syste ...

  2. 如何在AS中实现mysql查询并输出在视图上

    新建子线程启用mysql new Thread(){ @override public void run(){ //在这里进行数据库调用 } }.start(); handler简单使用方法 hand ...

  3. 【MySQL】MGR高可用搭建

    MySQL8.0.27如何安装 https://www.cnblogs.com/mindzone/p/15450312.html 部署过程中各种问题可参考的解决方案 我遇见的搭建问题,解决方案参考下面 ...

  4. 【Spring-Security】Re14 Oauth2协议P4 整合SSO单点登陆

    创建一个SSO单点登陆的客户端工程 需要的依赖和之前的项目基本一致: <?xml version="1.0" encoding="UTF-8"?> ...

  5. Implementation of Reinforcement Learning with Meta-Critic Networks and GAE in a Human-Centered Framework

    论文<Future of AI and Empowering Reinforcement Learning with Meta-Critic Networks and GAE in a Huma ...

  6. Python报错:WARNING conda.models.version:get_matcher(542): Using .* with relational operator is superfluous and deprecated and will be removed in a future version of conda.

    参考: https://blog.csdn.net/weixin_45685859/article/details/132916216 报错: [23:59:14](pytorch) devil@OM ...

  7. 代码随想录Day7

    454.四数相加Ⅱ 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k ...

  8. 解决input自动填充账号密码时的背景色

      input:-webkit-autofill { box-shadow:0 0 0 1000px white inset !important; } input:-internal-autofil ...

  9. 神经网络之卷积篇:详解更多边缘检测内容(More edge detection)

    详解更多边缘检测内容 已经见识到用卷积运算实现垂直边缘检测,在本博客中,将看到如何区分正边和负边,这实际就是由亮到暗与由暗到亮的区别,也就是边缘的过渡.还能了解到其他类型的边缘检测以及如何去实现这些算 ...

  10. 瑞芯微 | 摄像头ov13850移植笔记

    <1.瑞芯微rk356x板子快速上手> <2.Linux驱动|瑞芯微rtc-hym8563移植笔记> <3.Linux驱动 | Linux内核 RTC时间架构-基于瑞芯微 ...