在 ARM SMMU(System Memory Management Unit)中,Stream Table 是一个非常关键的数据结构,它用于管理和映射设备的内存访问请求。它的作用主要体现在以下几个方面:

1. 设备请求的流分类

- 在系统中,不同的外设可能通过 SMMU 发送内存访问请求。SMMU 将这些请求按照来源(如来自哪个外设或请求的上下文)进行分类,这种分类叫做(Stream)。每个流都有一个唯一的Stream ID,用于标识具体的外设请求来源。

- Stream Table 就是根据这些 Stream ID 来管理和记录不同流的属性和映射信息。每个流对应 Stream Table 中的一项记录。

2. 地址空间转换

- Stream Table 中的每一项记录指定了一个设备的 Stream ID 应该使用哪个上下文描述符(Context Descriptor)。上下文描述符中包含有地址转换信息,比如虚拟地址到物理地址的映射,访问权限等。

- 当一个外设发出内存访问请求时,SMMU 会根据 Stream ID 从 Stream Table 中查找对应的上下文描述符,从而决定如何将该请求的虚拟地址转换为物理地址。

3. 访问权限控制

- Stream Table 中的记录不仅用于地址转换,还包含访问控制信息。这些信息可以指定某些设备只能访问特定的内存区域,或者完全禁止访问某些内存区域,从而提高系统的安全性。

- 通过 Stream Table 的配置,可以实现对每个外设内存访问的细粒度控制,确保系统的安全和稳定性。

总结

在 ARM SMMU 中,Stream Table 的主要作用是管理和映射不同外设发出的内存访问请求。它通过记录不同流的上下文描述符和访问权限,帮助 SMMU 将虚拟地址转换为物理地址,并控制访问权限。这是实现设备内存访问虚拟化和安全性的核心机制之一。

ARM SMMU中 SteamTable的作用的更多相关文章

  1. ARM汇编程序中的伪指令

    转自http://blog.chinaunix.net/uid-13701930-id-336459.html 4.1 ARM汇编器所支持的伪指令 在ARM汇编语言程序里,有一些特殊指令助记符,这些助 ...

  2. ARM架构中的程序执行与调用

    ARM架构中的程序执行与调用 1. 几个名词 ABI : 可执行文件必须遵守的规范,以在特定执行环境中运行: 单独产生的可重定址的文件必须遵守的规范,以用来链接和执行. EABI: 适用于嵌入式环境的 ...

  3. web.xml中load-on-startup的作用

    如下一段配置,熟悉DWR的再熟悉不过了:<servlet>   <servlet-name>dwr-invoker</servlet-name>   <ser ...

  4. C#中构造函数的作用

    C#中构造函数的作用 共同点: 都是实例化对象,初始化数据的 默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有, ...

  5. MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  6. js中getBoundingClientRect的作用及兼容方案

    js中getBoundingClientRect的作用及兼容方案 1.getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元素相对于视窗的位 ...

  7. Linq中关键字的作用及用法

    Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...

  8. JAVA中protected的作用

    JAVA中protected的作用   1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是 ...

  9. url中#号的作用

    url中#号的作用就是本页面位置跳转 比如这个url地址:http://www.aaaaa.com/index.html?ad=34&m=c#red red就是index.html页面的依哥位 ...

  10. Java中hashCode的作用

    转  http://blog.csdn.net/fenglibing/article/details/8905007 Java中hashCode的作用 2013-05-09 13:54 64351人阅 ...

随机推荐

  1. docker dockerfile基础指令

    dockerfile是用来构建docker镜像文件!命令参数脚本 构建步骤 1.编写一个dockerfile文件 2.dockerbuild构建成为一个镜像 3.docker run运行镜像 4.do ...

  2. [香橙派开发系列]3b系统安装和使用vscode进行远程连接

    目录 前言 一.下载镜像和安装系统 二.使用串口助手进行调试 三.查看系统的ip地址 四.使用vscode连接香橙派 最后 前言 之前研究中断的时候一直出现问题,我怀疑是因为zero 3不支持,所以一 ...

  3. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"解决yum下载报错

    报错信息 │ (SSH client, X server and network tools) │ │ │ │ ⮞ SSH session to root@192.168.117.166 │ │ • ...

  4. 【Java】将枚举类转换为Redis字典缓存

    字典翻译框架实现看这篇: https://www.cnblogs.com/mindzone/p/16890632.html 枚举的特性 首先是枚举的一些特性: 1.枚举实例直接在枚举类中声明 2.重载 ...

  5. 【Mybatis-Plus】03 SpringBoot整合

    创建SpringBoot工程: 选择辅助三件套: 再导入MP相关依赖坐标: <!-- jdbc --> <dependency> <groupId>mysql< ...

  6. 英雄钢笔359色 EF尖 与 凌美(LAMY) 狩猎者 磨砂黑EF尖——长期使用对比

    首先说明一下,这两个钢笔我都是长期使用了,凌美用了两三年了,英雄的那个用了也快半年了. 两款钢笔细节: 英雄:https://item.jd.com/1002650.html 凌美钢笔:https:/ ...

  7. springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现

    1.背景 在实际开发中,通常来说java里面是使用驼峰的命名规则; 但是有时候在对接其他三方平台的接口时,要求使用下划线的命名规则,这时候就涉及到如何让自己的接口满足三方平台的下划线; 实现方式有 1 ...

  8. 白鲸开源CEO郭炜在2024 DataOps发展大会上获聘专家

    2024年5月15日,白鲸开源CEO郭炜在2024 DataOps发展大会上被正式聘任为DataOps专家,并获得了荣誉证书.本次大会由中国通信标准化协会主办,中关村科学城管委会提供支持,大数据技术标 ...

  9. 一步步开发Windows服务(Windows Service)[转]

    基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加. 1.创建服务 2.删除默认服务文件 3.添加自己的服务文件 4.更改启动项目 5. 引用 using System.T ...

  10. Camera | 7.瑞芯微rk3568平台摄像头控制器MIPI-CSI驱动架构梳理

    因为有拍照.录制视频.直播等刚需,现在手机的摄像头基本都是高清,支持高清摄像头的SoC都支持MIPI-CSI. 不同SoC的MIPI-CSI在实现上有一定差别,即使同一厂家设计生产的芯片也都不尽相同. ...