ARM SMMU Data structures之Stream Table

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
linear stream table
linear stream table是 ste 的连续数组,由 streamid 从 0 开始索引。该大小可配置为2^n ,最多为 smmu 在硬件中支持的最大 streamid 位数。 
2-level stream table
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。
在这个例子中:
• 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。


NEC推出全新Express5800系列节能机架式服务器
40亿美元!亚马逊投资OpenAI最强竞品
【赋能IoT生态系列5之4】多重网络智控模块升级方案
二极管产生反向恢复过程的原因
四路A/D转换器DS2450的性能特点和应用电路设计分析
ARM SMMU Data structures之Stream Table
独家解读:全网人气最火爆的十大蓝牙耳机品牌
网线有千兆和百兆之分您知道吗-科兰
开关模式电源电流检测——第三部分:电流检测方法
格芯扩展硅光子路线图,满足对数据中心连接的爆炸式增长需求
NINA-B4蓝牙5.1模块迎合三种流行网状技术
iphone8什么时候上市?iphone8最新消息:iphone8即将上市,Phone 8首发才400万台,全球黄牛们正虎视眈眈
基于BOOST电路供电的LED发光二极管驱动电路设计
高耐压超级结MOSFET的种类与特征
现代测试计量技术及仪器的发展
基于处理器KNL和FPGA的深度学习算法搭建
恩智浦全新Wi-Fi 6产品组合加快在物联网、汽车、接入和工业市场中的大规模采用
Molex Nano-Pitch I/O互连系统登陆贸泽 更小的尺寸 更快速的体验
详细讨论SERDES用到的各种关键技术
热风拆焊台的使用体会,焊台使用经验
s