有关访问多个存储体的内核准则 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

DDR 存储器资源分布在平台的超级逻辑区域 (SLR) 上。由于可用于跨 SLR 的连接数量有限,因此一般准则是:任一内核都应与连接最多的 DDR 存储器资源布局在同一个 SLR 内。这样即可减少跨 SLR 的连接竞争,并避免消耗与跨 SLR 关联的额外逻辑资源。

图 1. 内核和存储器位于同一 SLR 中
注释: 左图显示了映射到单个存储体的单个 AXI 接口。右图显示了映射到同一存储体的多个 AXI 接口。

如上图所示,当内核具有仅映射单个存储体 (memory bank) 的单一 AXI 接口时,platforminfo 实用工具 中所描述的 platforminfo 实用工具会列出与该内核的存储体关联的 SLR,因此,最好将该内核布局在此 SLR 中。在此情况下,设计工具可能会自动将内核布局在该 SLR 中,而无需额外输入;但是,在以下条件下您可能需要为某些内核提供显式 SLR 分配:

  • 设计包含大量访问同一存储体的内核。
  • 内核需要一些专用逻辑资源,而这些资源在存储体所在的 SLR 中不可用。

当一个内核有多个 AXI 接口并且该内核的所有接口都访问同一个存储体时,处理方式与具有单一 AXI 接口的内核处理方式非常类似,并且该内核应与其 AXI 接口正在映射的存储体驻留在相同 SLR 中。

图 2. 存储体位于相邻 SLR 中
注释: 左图显示当内核布局在 SLR0 中时,需要跨一次 SLR。右图显示内核访问多个存储体需要跨两次 SLR。

当内核具有多个 AXI 接口并访问位于不同 SLR 内的多个存储体时,建议将该内核布局在包含其访问的大部分存储体的 SLR 中(如上图所示)。这样可以最大程度减少此内核需要跨 SLR 的次数,从而可保留更多 SLR 交汇资源,以供设计中的其它内核用于访问存储体。

当内核在映射来自不同 SLR 的存储体时,请显式指定 SLR 分配,如 内核 SLR 和 DDR 存储器分配 中所述。

图 3. 相距 2 个 SLR 的存储体
注释: 左图显示,访问所有存储器映射的存储体需要跨两次 SLR。右图显示,访问所有存储器映射的存储体需要跨三次 SLR。

如上图所示,当平台包含 2 个以上的 SLR 时,内核可能会将位于非相邻 SLR 中的存储体映射到其最常用的存储器映射存储体。出现这种情况时,对远处存储体进行的存储器访问必须跨多个 SLR 边界,从而将产生额外的 SLR 交汇资源成本。为了避免此类成本,将内核布局在中间 SLR 中可能会更好,因为在中间 SLR 中跨相邻 SLR 所需的成本更低。