PCIe Switch Fabric 技术解析
PCIe Switch Fabric1. 引言为什么需要 Fabric2. 核心概念NT2.0 与 NTB 的关系2.1 NTBNon-Transparent Bridging基础2.2 NT2.0第二代非透明桥接3. 三层地址空间模型物理域、全局域与本地域3.1 物理域Physical Domain3.2 全局域Global Domain3.3 本地域Local Domain3.4 三层模型的协同4. Fabric 数据通路详解Address Trap 与 DLUT 机制4.1 Address Trap4.2 DLUTDomain Lookup Table域查找表4.3 Hardware Traps地址转换的执行者5. 跨域数据包生命周期一次完整的 P2P 传输5.1 传输前准备控制面5.2 数据面传输流程5.3 关键路径总结6. 管理与控制SM API 与硬件协同管理架构7. 技术边界与限制7.1 错误报告缺失7.2 配置一致性要求7.3 并发安全限制8. 总结1. 引言为什么需要 Fabric在传统的 PCIe 架构中系统被限制为单一的树状拓扑Root Complex → Switch → Endpoint。这种结构存在根本性局限单主机限制一个 PCIe 树只能有一个 Root ComplexHost无法实现多主机对等通信地址空间冲突两个独立 Host各自枚举设备时可能分配相同的地址或 BDF导致冲突P2P 壁垒不同子树间的 EndpointEP无法直接通信必须经过Host 中转造成延迟和带宽浪费Atlas2 Fabric 是 Broadcom 提出的解决方案通过将多个物理上独立的 Atlas2 交换机互联形成一个可编程的 PCIe 交换网络。这不仅支持传统的主机-设备通信更实现了两大突破NT2.0 over Fabric不同 Host 之间的直接通信Host-to-HostPeer-to-Peer overFabric跨交换机的 EP 直接数据交换如 GPU 间 DMA2. 核心概念NT2.0 与 NTB 的关系2.1 NTBNon-Transparent Bridging基础NTB 是 PCIe 标准中的一种桥接技术用于解决多主机互连的根本问题。在透明桥Transparent Bridge中Host 可以枚举并访问下游所有设备但在多主机场景下如果两个 Host 通过透明桥相连它们会同时尝试枚举对方导致地址冲突和系统崩溃。NTB 通过非透明方式解决此问题每个 Host 将对方视为一个Endpoint 设备而非可枚举的桥每个 Host 拥有独立的地址空间LocalDomain彼此隔离通过特殊的 BARBase Address Register映射和 Doorbell 机制实现受控的数据交换2.2 NT2.0第二代非透明桥接NT2.0 是 Broadcom 在 NTB 基础上的第二代实现深度集成于 Atlas2 芯片中。与传统 NTB 相比NT2.0 实现了三大演进特性传统 NTBNT2.0拓扑支持点对点或简单级联支持多交换机 Fabric 拓扑Mesh、Dual Tree管理接口简单的寄存器读写完整的 SM APISystem Management API支持动态配置功能范围仅 Host-to-Host同时支持 Host-to-Host 和跨域 P2P 管理关键区别NT2.0 不仅是数据通道更是管理面代理。在 Atlas2 架构中NT EPNon-Transparent Endpoint是 Host 访问芯片管理功能的入口Host 通过 NT Driver 发送 SM API 来配置 Fabric 路由详见第 6 节。3. 三层地址空间模型物理域、全局域与本地域理解 Atlas2 Fabric 的关键在于其三层的地址空间抽象。这解决了多主机环境下的寻址冲突问题。3.1 物理域Physical Domain定义单个 Atlas2 switch及其直连设备构成的硬件边界。每个物理域拥有唯一的 Domain ID如 Domain 1、Domain 2对应一个独立的 PCIe 子树包含 Host Port、Fabric Port 和 Downstream Port物理上通过 Fabric Link通常为 Slimline线缆与其他物理域互联类比物理域如同一座拥有独立行政系统的城市通过高速公路Fabric Link与其他城市相连。3.2 全局域Global Domain定义由 Atlas2 内部 ARM 处理器统一枚举和维护的跨物理域统一地址空间。形成过程Synthetic ModeAtlas2 内部 ARMmCPU首先枚举所有下游设备包括其他switch后的设备ARM 为每个设备分配全局地址如3400_0000h和全局 BDF如 16:0.0构建覆盖所有物理域的合成树Synthetic Tree即全局域关键特性**跨域唯一性**无论设备连接到哪个物理域其全局地址和 ID 在整个 Fabric 中唯一P2P 通信基准EP 间直接通信使用全局地址作为目标对 Host 透明Host 操作系统 unaware of 全局域的存在类比全局域如同世界地图为每个城市物理域中的建筑EP分配全球唯一的 GPS 坐标。3.3 本地域Local Domain定义单个 Host 操作系统看到的地址空间是 Host 标准 PCIe 枚举的结果。形成过程ARM 完成全局枚举后将合成树呈现给 HostHost 进行标准的系统枚举形成自己的内存映射分配本地地址如 8400_0000h和本地 BDF如 3B:00.0关键特性域内有效本地地址仅在当前 Host 的地址空间内有效Host 视角Host A 认为 GPU1 在 8400_0000hHost B 认为 GPU2 在 CF00_0000h边界清晰Host PortHP是本地域与全局域的分界线**类比**本地域如同你手机中的城市地图只显示本地街道不包含其他城市的地理信息。3.4 三层模型的协同转换机制当数据包穿越 Host PortHP边界时Atlas2 内部的Hardware Traps自动完成地址和 ID 的翻译。这个过程对软件完全透明确保 Host 无需修改操作系统即可工作。4. Fabric 数据通路详解Address Trap 与 DLUT 机制在 Fabric 中跨域数据包的路由依赖两大硬件表项的协同工作。这是实现 P2P over Fabric 的核心。4.1 Address Trap功能定位P2P 路由的开关决定数据包是否允许绕过 Host 直接跨域传输。技术背景PCIe 标准定义了 ACSAccess Control Service默认情况下禁止下游端口DSP间的 P2P 路由强制所有流量经过 Root ComplexHost。这是为了安全性和一致性考虑但阻碍了高性能 P2P 应用。工作机制表项结构每个 DSP 端口维护一组 Address Trap 表项记录允许 P2P 的地址范围匹配动作当 DSP 收到数据包时检查目标地址是否命中 Trap 表项命中数据包被重定向到 Fabric Port绕过 Host未命中按默认路径发往 Host或根据 ACS 规则丢弃配置特性通过 SM APIStation/Index 定位每个 Trap 通过站点端口号 索引唯一标识重叠检测添加时硬件检查地址范围是否重叠防止路由歧义权限控制只有用户添加的 Trap 可删除系统默认 Trap 不可修改关键限制没有 Address TrapP2P 路由永远被禁用。4.2 DLUTDomain Lookup Table域查找表功能定位跨域路由的地图决定数据包应该通过哪个 Fabric Port 发送到目标 Domain。工作机制查询逻辑当数据包需要跨域时DLUT 根据目标 Domain ID 查询对应的出口 Fabric Port 编号与 Choice 寄存器配合每个 Station端口的 Choice 寄存器选择该端口关联的 Fabric Port实现灵活的路径选择4.3 Hardware Traps地址转换的执行者功能定位在 Host Port 边界执行地址和 ID 的自动翻译。转换内容地址转换Local Address ↔ Global Address如 8400_0000h ↔ 3400_0000hID转换Local BDF ↔ Global BDF如 3B:00.0 ↔ 16:0.0执行时机数据包从 Host 进入 FabricLocal → Global数据包从 Fabric 到达 HostGlobal → Local纯 P2P 流量EP 到 EP通常只需 ID 转换地址保持全局一致5. 跨域数据包生命周期一次完整的 P2P 传输以 GPU1Domain 1, Port 32向 GPU2Domain 2, Port 48发起 DMA 写操作为例详解数据包的完整旅程。5.1 传输前准备控制面Host 通过 SM API 完成以下配置配置 Address Trap在 SW0 的 Port 32 上添加表项允许目标地址 3200_0000hGPU2 的 BAR0的 P2P 流量配置 DLUT在 SW0 上设置 Domain 2 → Port 28 的映射在 SW1 上设置 Domain 1 → Port 28 的映射双向5.2 数据面传输流程第一步发起与入口检查GPU1 生成 TLP 包目标地址为全局地址 3200_0000h数据包进入 SW0 的 Port 32DSPAddress Trap 检查命中 GPU2 地址范围 → 触发 P2P 路由绕过 Host A第二步路由决策SW0 查询 DLUT目标 Domain 2 → 出口为 Port 28Fabric Port数据包被导向 Fabric Port准备跨域第三步跨域传输与地址转换数据包通过 Slimline 线缆到达 SW1 的 Port 28硬件陷阱转换在边界处完成必要的地址/ID 翻译确保 Host B 的地址空间一致性第四步出口投递SW1 识别目标地址 3200_0000h 属于本地 Domain 2内部交换矩阵将数据包导向 Port 48数据包到达 GPU2完成传输全程无需 Host 介入Host A 和 Host B 的 CPU 不参与数据搬运实现了真正的硬件级 P2P。5.3 关键路径总结6. 管理与控制SM API 与硬件协同管理架构Fabric 的可编程性通过SM APISystem Management API 实现提供 Inband 和 OOB 两种管理通道。Inband 路径Host 上的客户应用通过 NT Driver 发送 SM APINT Driver 提供透传机制不解析 API 内容数据包通过 NT EP 到达 Atlas2 内部的 SM API Handler最终由硬件写入 Address Trap 和 DLUT 表项OOB 路径BMC 通过 I2C 连接 Atlas2使用 ScrutinylibSL API封装 SM API适合带外管理无需 Host操作系统参与7. 技术边界与限制7.1 错误报告缺失Link Up/Down 事件Fabric Link 的状态变化不会上报给 HostAERAdvanced Error Reporting跨域传输中的 PCIe 错误无法透传排障困难7.2 配置一致性要求资源变更需重配如果系统重新分配了 GPU 的 BAR 地址必须重新编程对应的 Address Trap 和 DLUT无自动发现Atlas2 无法自动检测对端 Domain 的 Bus 号配置必须由软件确保输入参数正确7.3 并发安全限制内存请求在途风险添加/删除 Address Trap 时如果目标地址范围内有未完成的内存请求可能导致乱序执行或数据不一致操作原子性必须确保配置时目标地址范围无活动流量8. 总结Atlas2 Fabric 通过三层抽象物理域/全局域/本地域和两大机制Address Trap/DLUT将传统的 PCIe 树状结构扩展为可编程的多主机交换网络。核心价值NT2.0 解决了多主机互连的地址隔离问题实现了 Host-to-Host 通信P2P over Fabric 打破了子树边界使 GPU 等高性能设备能够跨交换机直接 DMA绕过了 Host 瓶颈SM API 提供了灵活的控制面支持动态配置路由规则技术本质这是在 PCIe 物理层之上叠加了网络层路由功能类似以太网的 VLAN 和路由表通过硬件加速的地址转换Hardware Traps实现高效转发。虽然引入了网络的概念Domain、路由表、拓扑但底层传输仍是标准的 PCIe TLP保留了 PCIe 的可靠性和性能特征。这种架构特别适合 GPU 集群、分布式存储等需要大规模 P2P 通信的场景在保持 PCIe 生态兼容的同时实现了类似 InfiniBand 的交换能力。

相关新闻

上下文图谱、知识图谱和数据目录:它们之间究竟有什么区别?

上下文图谱、知识图谱和数据目录:它们之间究竟有什么区别?

知识图谱描绘了事物是什么,数据目录描绘了事物存在的位置,上下文图谱描绘了决策是如何运作的——这种差异改变了人工智能可以利用你的数据做的一切。这种区别听起来很细微,但它彻底改变了人工智能可以利用信息的方式。知识图谱描绘了事物是什…

2026/9/30 11:20:19 阅读更多 →
与陌生人约见不放心?邀应履约式社交消除线下社交顾虑

与陌生人约见不放心?邀应履约式社交消除线下社交顾虑

在深圳,约一个陌生人吃饭并不难,难的是“约了之后真的能见到”。微信好友几百,周末能约出来的不到三个;社交软件上聊得不错,一到线下就担心被放鸽子、担心地点不安全、担心见面尴尬。这些顾虑背后,其实是同…

2026/9/30 11:20:19 阅读更多 →
华为U1981语音网关SIP中继配置:从选型到故障排查实战指南

华为U1981语音网关SIP中继配置:从选型到故障排查实战指南

简介:面向华为 U1981 语音网关运维、调测及集成人员的实操型中继配置指南,聚焦统一网关与对端设备对接场景,重点演示 SS7 和 SIP 两种中继的配置方法。文档先厘清局向、子路由、路由、局向选择码等基础概念,再按完整流程说明如何登…

2026/9/30 11:20:19 阅读更多 →

最新新闻

Science Skills药物化学技能集:ChEMBL、PubChem与openFDA如何驱动AI智能体完成药物研发数据查询

Science Skills药物化学技能集:ChEMBL、PubChem与openFDA如何驱动AI智能体完成药物研发数据查询

Science Skills药物化学技能集:ChEMBL、PubChem与openFDA如何驱动AI智能体完成药物研发数据查询 【免费下载链接】science-skills GDM Science Skills to speed up agentic scientific workflows with better grounding and higher token efficiency. Integrate ins…

2026/9/30 16:45:26 阅读更多 →
英飞凌TC264卡丁快跑:PMSM电机控制与GTM定时器实战解析

英飞凌TC264卡丁快跑:PMSM电机控制与GTM定时器实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 16:45:26 阅读更多 →
格西烽火:可编程串口协议解析引擎与变量驱动调试平台

格西烽火:可编程串口协议解析引擎与变量驱动调试平台

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 16:45:26 阅读更多 →
VMware虚拟机安装与使用全攻略:避坑指南与网络配置详解

VMware虚拟机安装与使用全攻略:避坑指南与网络配置详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 16:45:26 阅读更多 →
专利撰写实战:从权利要求书到说明书的核心技巧解析

专利撰写实战:从权利要求书到说明书的核心技巧解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 16:45:26 阅读更多 →
treg Idempotent-Key 多租户隔离原理:你的请求为何不会拿到别人的结果

treg Idempotent-Key 多租户隔离原理:你的请求为何不会拿到别人的结果

treg Idempotent-Key 多租户隔离原理:你的请求为何不会拿到别人的结果 【免费下载链接】treg OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn 项目地址: https://gitcode.com/GitHub_Trending/treg/treg treg 是一个面向 …

2026/9/30 16:44:21 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/30 15:27:04 阅读更多 →