赞
踩
目录
Outstanding transactions per TBU
内部文档整理
MMU-500 是一个系统级的内存管理单元(Memory Management Unit, MMU),它负责将输入地址转换为输出地址,这一过程基于 MMU-500 内部寄存器和转换表中的地址映射和内存属性信息。MMU-500使用的是ARM SMMU架构v2,以下是 MMU-500 的主要功能和组件的详细解释:
地址转换阶段:
支持 ARM 架构:
转换类型:
多级地址查找:
内存属性定义:
转换阶段的禁用或旁路:
上下文识别:
第一阶段转换:
支持的页面大小:
安全和非安全转换上下文:
第二阶段转换:
转换后备缓冲器(TLB):
参考文档:
MMU-500 的关键组件:
下图给出一个系统中SMMU集成的例子:
地址虚拟化:
支持的转换:
可编程服务质量(QoS):
分布式转换支持:
转换支持的地址范围:
多事务上下文:
转换支持:
页面大小限制:
PTW 请求的仲裁:
页面表遍历的缓存:
TLB 中的页面表项缓存:
TLB 命中下未命中(HUM)支持:
可配置的 PTW 深度:
TLB 失效:
转换和保护检查支持:
故障处理、记录和信号:
AMBA 从属接口:
AMBA 主接口:
AXI4 接口:
TLB 缓存的两个级别:
错误检测和失效:
调试和性能监控事件:
TCU 核心时钟速度:
预取缓冲器:
IPA2PA 缓存:
支持每个 TBU 主接口的未完成事务:
服务质量方案中优先级提升支持:
MMU-500 的 ACE-Lite 接口的 AC 信道连接到由 CCI 驱动的 AC 信道或支持 DVM 消息的 ACE 兼容的从属接口。ARM 建议使用 DVM 信道进行 TLB 维护操作。如果系统无法访问 DVM 信道,则必须将 acvalid 信号连接到低电平,并且可以使用编程接口进行 TLB 维护操作。
当您将 MMU-500 配置为提供专用的 AXI 信道以执行 PTW 时,AC 信道必须是 PTW 信道的一部分。
注意:
在 MMU-500 中,可以有一个专用接口提供对内存的访问以进行页表遍历(PTWs)。
如果 MMU-500 配置为支持 PTWs 的专用接口,您必须将与 PTWs 相关联的从属接口的读地址和读数据信道连接到 MMU-500 PTW 信道。在这种配置中,PTW 信道包含 "_ptw" 后缀。例如,araddr_ptw 和 acaddr_ptw。
注意:
MMU-500的Clock和power domain
当TBU0与TCU sharing相同的clock或power domain时。
MMU-500 通过以下逻辑处理步骤路由每个地址转换:
您可以配置 MMU-500 绕过事务处理过程的事务,或者无论转换状态如何都使事务发生故障。
MMU-500 的主要功能是根据存储在转换表中的地址映射和内存属性信息,提供地址和内存属性转换。MMU-500 执行以下步骤以实现此目的:
注意: MMU-500 不支持配置错误。它将全局故障状态寄存器中的 CAF 位视为 RAZ(保留未用)。
在确定了 SSD 索引之后,SSD 表包含从 0 到 2^SSD 索引信号宽度 - 1 的位。 您必须按照以下方式确定位的状态:
注意:
MMU-500 支持可以访问安全和非安全 TLB 的安全调试 TLB 访问。 SSD 表最多有 32Kb 的空间,该空间被分成 32 个部分,每个 TBU 分配 1Kb。 例如,TBU0 空间是从 0-1Kb,TBU1 空间是从 1-2Kb,TBU2 空间是从 2-3Kb。 每个 TBU 生成的 SSD 索引最多为 10 位,被索引到分配给 TBU 的 1Kb 空间中。 您必须使用这些信息来编程 SSD 表。
注意:
Hit-Under-Miss (HUM) 是一种特性,它可以翻译 TLB 失效事务,并将事务传递给下游从属设备,如果翻译后的 TLB 失效事务结果为 TLB 命中。HUM 允许在 MMU-500 为先前发生 TLB 失效的事务执行翻译时,对于随后的事务如果出现 TLB 命中,可以响应主设备。以下是 HUM 对读写事务的特性:
HUM 特性提高了系统处理连续内存访问的效率,尤其是在有大量 TLB 失效和命中混合的情况下。
未完成事务定义为:
MMU-500 在主设备的访问导致 TLB 失效时生成 PTW。然而,根据配置,MMU-500 支持每个 TBU 同时进行 8 或 16 个这样的并行 PTW。如果有超过 8 或 16 个 PTW 挂起,通道上的 TLB 失效表明 MMU-500 不能在接受写入或读取通道上的额外事务。
PTW 由 TCU 为多个 TBU 发起。因此,当 TCU 中有多个未完成事务时,最高质量的 TBU 会被赋予优先权。MMU-500 重用为 PTWs 编程的 QoS 值。
arqosarb 信号,从 MMU-500 到 CCI 的边带信号,在 TCU 中所有 PTW 读取事务中具有最高的 QoS 值。
在地址转换中,MMU-500 使用已编程的服务质量(Quality of Service, QoS)值。
对于个别的预取访问,MMU-500 使用命中事务的 QoS 值。
对于具有相同 QoS 值的事务,MMU-500 采用先到先服务(First-Come, First-Served, FCFS)模型进行处理。这意味着在相同优先级级别上,事务将按照它们到达的顺序被处理。
地址宽度
进入的地址宽度固定为49位,其中 A[48] 指定虚拟地址子范围。您必须将所有未使用的位连接到零。输出地址宽度为48位,AC地址总线的宽度为48位。
注意 MMU-500不支持地址宽度大于49位的外设。
预取缓冲区 MMU-500
会提前提取 4KB 和 64KB 大小的页面到预取缓冲区中。这减少了未来 PTWs(页表步进走)的延迟。您可以配置预取缓冲区的深度。 预取缓冲区是一个单一的四路组相联缓存,您可以根据上下文启用或禁用它。预取缓冲区与宏观 TLB 缓存共享 RAM。
Page walk缓存
MMU-500 缓存部分 PTWs 以减少 TLB 失效时的 PTW 数量。PTW 缓存存在于 TCU 中,第一阶段和第二阶段的第二级 PTWs 被缓存在 PTW 缓存中。
IPA 到 PA 缓存
MMU-500 实现了一个从 IPA(中间物理地址)到 PA(物理地址)的缓存,用于第一阶段后跟第二阶段的转换。 IPA 到 PA 缓存是一个单一的四路组相联缓存,您可以根据上下文启用或禁用它。IPA 到 PA 缓存与 PTW 缓存共享 RAM。
来个赞兄弟姐妹们~
下期预告:SMMU集成指导
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。