在 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. 记hashmap

    hashmap是map接口的一个实现类,在同步的情况下hashmap的性能是比较好的 hashmap就是一个kv键值对的集合,将数值散列均匀的存储在哈希表中.插入方法为map.put(k,v),读取方 ...

  2. RS485总线防雷保护方案(转)

    RS485作为最为最常用的电表通讯方式之一.日常生活中雷电和静电干扰已经成为485通信总线在实际工程经常遇到的问题.故如何对芯片以及总线进行有效的保护,是摆在每一个使用者面前的一个问题.在这里,我们主 ...

  3. docker nginx容器的均衡负载

    创建三个docker容器以实现nginx的负载均衡 编写nginx的dockfile [root@docker nginx]# cat Dockerfile FROM nginx RUN echo ' ...

  4. Tomcat日志信息有乱码的处理方法

    1.问题描述 1.1.Idea中的tomcat日志有乱码 1.2.直接启动tomcat的日志有乱码 1.3.原因分析 问题是由于tomcat使用的编码和操作系统使用的编码不一致导致: Windows1 ...

  5. 【MySQL】 批量更改库,表,字段的字符集

    库一级的更改: -- 单个库字符集更改 ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ALTER ...

  6. 【Keepalived】KP + NGINX 多机热备学习

    案例搭建 环境是三台机器,两台也可以 最后一个IP是测试的VIP 192.168.124.21 centos6-1 192.168.124.22 centos6-2 192.168.124.23 ce ...

  7. 【JS】06 语法补充

    严格模式(use strict) 其实就是就是对JS随意的语法做一个强制规范要求 开启严格模式: "use strict"; 注意,只有在第一行声明才会有效,. 否则在严格模式之前 ...

  8. nvidia 机器人仿真环境Isaac Sim

  9. 【转载】流形学习 (Manifold Learning) ——(学习笔记)

    第一篇:   摘抄自:https://zhuanlan.zhihu.com/p/54516805 从度量空间到拓扑空间 拓扑这门学科的一个方向涉及到去研究集合在"连续变形"下一些不 ...

  10. 安装python库roboschool运行报错:ImportError: libpcre16.so.3: cannot open shared object file——解决方法

    如题: 运行roboschool运行报错. 操作系统: Ubuntu ImportError: libpcre16.so.3: cannot open shared object file: No s ...