1. 概述

PCIe Through(PCIe-through)是 David 芯片在 PCIe 互联场景下,Device 侧(STARS/AIC/RDMA 等)直接通过 PCIe 链路访问 Host 侧内存空间的一种数据通路机制。它区别于 PCIe DMA(使用 IOB TX ATU 进行地址翻译的常规 Outbound 事务),PCIe-through 请求不使用 IOB TX ATU,而是通过 CHI 总线直接将请求送入 PCIe 核心层,以特定的请求格式携带 VF function 等信息访问 Host。

2. 核心原理

2.1 与 PCIe DMA 的区别

维度PCIe DMAPCIe Through
地址翻译经过 IOB TX ATU 翻译地址(Untranslated – Base + Target)不经 IOB TX ATU,地址由发起者直接提供(Host IOVA 或 VA→SMMU→IOVA)
发起方Host CPU / STARS / Local CPU 通过 DMA 引擎STARS / Aicore / RDMA / 网卡等 Device 侧模块
总线接口AXI Master 接口CHI 接口
使用场景数据搬移、大块传输STARS 读 SQ/CQ、AIC 访问 Host 数据、RDMA 报 Host 中断

2.2 数据通路

STARS/AIC ──> NoC/Ring ──> PCIe CHI Slave ──> PCIe Core (TL/DL/PL) ──>  SerDes ──> Host RC
                                                                                    │
                                                                    携带 VF function、StreamID 等信息
                                                                        (不使用 IOB TX ATU)

对于 PCIe-through 请求,TL 层判断为 through 请求后直接送出,不经过 TX ATU 匹配逻辑。AP 层需要配置 CHI source 与其他 source(如 Inbound NP CPL、DMA engine、中断传输逻辑)之间的 Ordering。

3. 各类 Through 场景

3.1 STARS 访问 Host(读 SQE / 写 CQE)

PCIe 互联场景下,STARS 采用 PCIe-through 模式访问 Host 侧内存空间:

  • 配置给 STARS 的是 Host IOVA 地址(不经过 SMMU 页表翻译),STARS 直接通过 PCIe Through 请求格式携带 VF function 等信息到 PCIe 端访问 Host。
  • STARS Through 不支持 SMMU 查侧页表,开启 IO-MMU 时使用 IOVA 地址。

STARS CQE 更新到 Host 有 三种模式昇腾950 仅支持 UB WQE 模式):

模式配置场景
UB.MEM 模式wqe_en=0, cq_local_host=0CQ 队列地址配置为 UB MEM 地址,STARS 不感知 UB MEM 与 Device MEM 区别
UB WQE 模式wqe_en=1, cq_local_host=1通过写 wqe 搬运 CQE
PCIE Through 模式wqe_en=0, cq_local_host=1PCIe 直接更新至 Host 侧,需配置 Host StreamID、VF num 等

3.2 AIC 访问 Host

  • PCIe 互联场景下,配置给 AIC 的是 VA 地址;AIC 通过 SMMU 转换成 IOVA,然后以 PCIe Through 请求格式携带 VF function 等信息访问 Host。
  • AIC Through 需要支持 SMMU 查侧页表,本地建立页表实现 VA→IOVA 的转换
  • AIC 访问 Device HBM 的 SID+SSID 与 through 方式的 SID+SSID 可以相同;VA 统一由 Host APP 申请。若 AIC 访问 Host 侧内存,软件标成 TH 操作,页表配成 VA→IOVA;若访问 Device HBM,软件不标 TH,页表配成 VA→PA。
  • MTE PCIe Through burst 大小可通过配置:2'b00: 512B, 2'b01: 256B, 2'b10: 128B, 2'b11: reserved
  • MTE 标记 pcie_through enabled

3.3 RDMA 访问 Host

  • RDMA 走 PCIe-through 到主 DIE 的 PCIe 来访问 Host。

4. 使用约束

  1. STARS Through 仅支持 RTSQ 的 SQ 和 CQ 存 Host 侧:二级指针指向的 SQE 仅支持存 Device 侧。

  2. AIC Through 需 SMMU 开启:AIC 走 PCIe Through 访问 Host 时需要 SMMU 查侧页表完成 VA→IOVA 转换。

  3. MTE PCIe Through:仅受 AIV0 寄存器控制,burst 大小可配(512B/256B/128B)。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐