网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

ARM SMMU Data structures之Stream Table

时间:2023-05-11 09:22

人气:

作者:admin

标签: ARM  STE 

导读:incoming transaction的StreamID可以找到一个STE。SMMU支持两种Stream table格式,格式由Stream table base registers设置。...

incoming transaction的StreamID可以找到一个STE。SMMU支持两种Stream table格式,格式由Stream table base registers设置。

传入的StreamID会根据指定的table size进行范围检查,StreamID超出范围,则transaction就会被terminated,并且记录事件C_BAD_STREAMID。

当支持两个Security states时,如SMMU_S_IDR1.SECURE_IMPL == 1所示,使用SEC_SID标识transaction 是 Secure or Non-secure,后续使用各自独立的软件接口和数据结构。

Linear Stream Table

bdd898a8-ef4e-11ed-90ce-dac502259ad0.jpg

Linear Stream Table

linear Stream table是 STE 的连续数组,由 StreamID 从 0 开始索引。该大小可配置为2^n ,最多为 SMMU 在硬件中支持的最大 StreamID 位数。

2-level Stream Table

bde9973e-ef4e-11ed-90ce-dac502259ad0.jpg

Two-level Stream Table with SPLIT == 8

2-level Stream table包含一个top-level table,该表包含指向多个second-level tables(STE 线性数组)的指针。整个结构涵盖的 StreamID 范围可配置为 SMMU 支持的最大数量,但second-level tables不必完全填充,并且大小可能会有所不同。这节省了内存并避免了对非常大的 StreamID 空间进行大量连续分配物理空间的要求。top-level descriptors包含指向second-level table的指针以及该second-level table表示的 StreamID 范围。每个second-level table的指针(descriptor )也可以标记为invalid。

top-level table由 StreamID[n:x] 索引,其中 n 是覆盖的最高 StreamID 位,x 是由 SMMU_(S_)STRTAB_BASE_CFG.SPLIT 给出的可配置分割点。second-level tables 的索引最多为 StreamID[x - 1:0],具体取决于每个表的跨度(span)。

SMMU_IDR0.ST_LEVEL 字段可以指示是否支持2-level Stream table。在支持2-level Stream Tables的情况下,可以使用 6、8 和 10 位的分割点。SMMU实现可以支持linear Stream Table,或者同时支持 linear和2-level Stream Table。

支持超过 64 个 StreamID(6 位 StreamID)的 SMMU 必须支持2-level Stream tables。

支持少于64个StreamID的SMMU实现也可能支持 2-level Stream Tables,但这样做通常没有用,因为所有streams 可以填充到一个second-level table。意味着当linear Stream table的最大大小而无法容纳进一个4KB页面时,就必须支持two-level tables。

be1cc852-ef4e-11ed-90ce-dac502259ad0.jpg

be2f1ef8-ef4e-11ed-90ce-dac502259ad0.png

在这个例子中:

• StreamIDs 0-1023(4 × 8-bit level 2 tables)被表示,但不是所有level 2 tables都有效。

• StreamIDs 0-255 由位于 0x1000 的 STE 数组。

• StreamIDs 256-259 由位于 0x2F20 的 STE 数组。

• StreamIDs 512-767 都是无效的。

• StreamID 768 的STE 位于0x4000。





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信