UB 子系统学习笔记
学习要点总结
- 协议栈四层:TA(事务)→ TP(传输)→ NL(网络)→ DL_PHY(链路+物理),每层职责清晰
- 三种分发场景:URMA(Host-Host Jetty 编程)、NIC/UNIC(Socket)、UB Memory(内存语义,无 EID 或全局 EID)
一、总体架构
1.1 协议栈四层(自顶向下)
Transaction(TA) → Transport(TP/CTP) → Network(NL) → DataLink+Physical(DL_PHY)
↓
H112 SerDes
| 层 | 模块 | 核心功能 |
|---|
| TA | JFS/JFC/JFR、MsgQ、TM、INT、RAS、Cfg | Jetty 队列调度、WQE 拆解发送、枚举/配置/管理消息、流量管理、远端/本端中断 |
| TP | Reliable/Unreliable Transport、QOS、SCC、Load/Store | RC/RM 可靠/不可靠传输、多流负载均衡、DCQCN 拥塞控制 |
| UMMU | MAPT(权限表)、MATT(翻译表) | UBA→PA 翻译 + 权限校验 |
| BA | Master Adapter、Slave Adapter | 控制器与系统总线 Master/Slave 方向交互 |
| NL | Tx Buf/Rx Buf、PPP、PM | 流控 + Buf 缓存 + 组包/解包、可编程表项查询 |
| DL_PHY | Retry Buf、PCS、LTSM | 链路层重传 Buf、物理编码子层、链路训练状态机 |
1.2 9 种工作模式(4 大类)
| 类 | Mode | Transport | Network | 用途 |
|---|
| URMA | 1-4 | TP/CTP | IPv4/v6 或 CNA24 | Host-Host 远端内存访问,Jetty 编程 |
| NIC/UNIC | 5-6 | 无 | IPv4/v6 | Socket 编程(UB Link 或 Eth Link) |
| Host-Device | 7-8 | CTP | CNA16 | MMIO Load/Store 或 CDMA |
| UB Memory | 9 | 无 | CNA16/24 | 内存语义,XPU/HA 直接发起 |
1.3 5 种互连角色
TP / CTP / UBmem / UBoE / NC —— 分别承担处理器卡和交换芯片互连功能。(与 9 种模式属两个维度)
二、TA 事务层
2.1 编程接口
| 接口 | 用途 |
|---|
| Mailbox | 控制面表项创建/修改/读取/注销(IMP 4 寄存器 / CTRL CPU 并行) |
| Doorbell | 通知硬件执行任务、更新指针。硬 DB(写地址空间)、软 DB(写内存硬件读) |
| DirectWQE | 低延时直接下发 WQE(64B 或 128B) |
2.2 Jetty 队列体系
- JFS(Send):最大 64K/Entity,队列深度 1~32K
- JFR(Receive):最大 64K/Entity,队列深度 64~32K
- JFC(Completion):最大 64K,CQE 深度 64~1M,大小 Normal 64B
- Jetty Group:最大 64K/Entity,每组 32 Jetty,Hash 选 JFR
- DirectWQE / WQE Lock Buffer:
- WQE Lock Buffer:4K×64B 片上,仅存 DirectWQE,Starvation-Free
- Stars Lock Buffer:128×64B,与 WQE Lock Buffer Jetty 范围不交叠
- WQE 切片:Write/Read 可切片给 TP(最大 64KB),Send/Atomic/Raw 不切片
2.3 URMA 操作语义
| 操作 | 最小 | 最大 |
|---|
| Send | 0B | 64KB(TP)/ 1 MTU(CTP) |
| Write | 0B | 256MB |
| Read | 0B | 256MB |
| Atomic CAS | 4B | 16B |
| Atomic FetchAdd | 4B | 8B |
| Write/Read with Reduce | — | ≤ MTU |
| Write with AtomicStoreAdd | 单/两 WQEBB | 昇腾自定义 opcode 0x19/0x1A |
三、TP 传输层
3.1 TP vs CTP
| 项 | TP | CTP |
|---|
| 端到端重传 | 支持 | 无(仅 Link 层重传) |
| 消息速率 | 较低 | 较高 |
| 适用 | 框间、需可靠 | 框内直连、低延时 |
3.2 RC / RM 模式
- RM(Model-1,Reliable Messaging):消息保序,需回 TAACK
- RC(Model-3,Reliable Connection):连接保序,无需 RC Credit,无 TAACK
3.3 多路径
- TP 多路径:一个连接只通过一个端口发包,可走多网络路径,接收侧 TP 保序
- CTP 多路径:基于 Jetty 设单/多路径,只保证包内序
- CTP RC 多路径:线路乱序传输,接收端定制逻辑保序(CCU counter+flag)
四、NL 网络层
4.1 路由
PA Router 按报文 CFG 类型选择转发策略:
- CAM 表:NL 共用 128 条匹配表项,从低到高顺序匹配
- 路由优先级:源路由 > 路由(最长匹配)> 地址路由 > 默认路由
- 支持主路径 + 备份路径切换
| CFG | 含义 | 路由表转发 | 多路径 |
|---|
| 3 | IPv4 | Yes | Yes |
| 4 | IPv6(128bit 截 32bit) | Yes | Yes |
| 6 | CNA16 带内控制 | Yes | No(控制无多路径) |
| 7 | CNA24 Clan 网络 | Yes | Yes |
| 9 | UB Memory CNA16 | Yes | Yes |
五、UMMU 内存管理单元
输入:DstEID + TokenID + UBA + {NSE, NS}
↓
1. 配置信息查找:DstEID → TECT(Entity 信息)
TokenID → TCT(地址空间级,≤ 进程)
↓
1. 地址翻译:UBA → PA(ARM Arch MMU 兼容页表)
↓
1. 权限校验
↓
输出:PA + 属性
关键术语对照
| 术语 | 含义 | 注意 |
|---|
| UB | Unified Bus 协议 A.782 / r0.9 / DBOX 367 | |
| URMA | Unified Remote Memory Access | Jetty 编程 |
| TA/TP/NL/DL_PHY | 协议四层 | |
| TP/CTP | 可靠传输 / 简易传输(无端到端重传) | CTP 更快 |
| RC/RM | Reliable Connection / Messaging | Model-3 / Model-1 |
| UMMU | UB 内存管理 | UBA→PA + 权限 |
| TECT/TCT | Target Entity/Context Config Table | UMMU 两级配置 |
| DstEID | 目的 Entity ID | 128bit(URMA)/20bit(Host-Device) |
| TokenID | 地址权限空间标识 | |
| UBA/PA/IPA/VA | UB/Physical/Intermediate/Virtual Address | |
| CNA/DCNA | Clan Network Address / Dst CNA | 16/24bit |
| MPT / MPW | MultiPath Table / Window | 多路径表 |
| PMT | Performance Monitoring Table | PMU 统计,勿混 MPT |
| GQM | Global Queue Manager | 硬件队列 |
| SMAP | Security MAP | 热页频次统计 |
| RSW | RemoteSyncWrite | 远端保序写,0.5 RTT |
| EOD | Exactly Once Delivery | 恰好一次交付 |
| MLT | Max Lifetime | 报文最大生存时间 |
| BA | Bus Adapter | Master/Slave 适配 |
| VDM | Vendor Defined Message | 设备管理消息(CFG6 payload) |
| C2C/C2M | Chip-to-Chip/Memory | |
| HiMAC | MAC 控制器 V700 Combo | 10G~800G |
| JFS/JFR/JFC | Jetty 三种队列 | Send/Receive/Completion |
| WQE/CQE/SQE/RQE | 队列元素 | WQEBB=64B |
| TM/SCC/DCQCN/LDCP | 流量管理/拥塞控制 | |
| NPI/UPI | 网络端口/分区标识 | |
所有评论(0)