十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

[AI][昇腾950]TA 学习

[AI][昇腾950]TA 学习 TATransaction Layer事务层学习笔记一、TA 在协议栈中的定位UB 协议栈自顶向下四层Transaction(TA) → Transport(TP/CTP) → Network(NL) → DataLinkPhysical(DL_PHY) ↓ H112 SerDesTA 是最上层面向软件负责JFS 队列调度、上下文维护WQE 拆解发送、RCE 回复 Rd Response / TAACKCQE / EQE 上报超时检测、RNR 重传、Jetty 注销、Function 级复位学习要点TA 之下还有 TP可靠传输/ CTP简易传输无端到端重传。TA 不直接碰链路它把软件下发的事务交给 TP 去搬运。二、三种编程接口TA 为软件提供三种编程入口接口用途说明Mailbox控制面表项创建/修改/读取/注销Doorbell通知硬件执行任务、更新指针、使能事件分硬 DB写地址空间 → TP LSAR → TA与软 DBrecord软件写内存硬件读DirectWQE低延时直接下发 WQE64B 或 128B不经 cache 访存Doorbell 方向速记软更 PI/CI 指软件维护的指针队列软件维护硬件维护JFSPICIJFCCIPIJFRPICIEQCIPI记忆JFS/JFR 软件生产PIJFC/EQ 软件消费CI。各队列对 DB 的支持JFS 仅硬 DBJFC 硬软JFR 仅软 DBEQ 仅硬 DB。三、Jetty / JFS / JFR / JFC 队列模型3.1 核心概念JettyURMA 编程接口对象绑定一对发送/接收队列JFSJetty For Send发送队列JFRJetty For Receive接收队列JFCJetty For Completion完成队列上报 CQE3.2 关键规格项规格每 Entity JFS/Jetty 数最大6553664KJFS/Jetty 队列深度1~3276832K2 的幂次方深度 1/2/4 仅 Normal SQE每 Entity JFR 数最大 65536JFR 队列深度64~32768JFR RQE 大小最大 4单位 16BJFR RQE Buffer Size2KB/4KB1 报文最多 4 RQEJetty Group 数每 Entity 最大 65536Jetty Group 内最大 Jetty 数32Jetty Group Hash按包头 Hint 选 JFRJFC 队列数最大 655361 JFC 绑多 JFS/JFR1 JFS/JFR 属 1 JFCJFC CQE 深度64~10485761MJFC CQE 大小Normal 64BRaw 固定 64BJFC inline 模式Send/SendImm/SendInv 时 Payload 写入 CQE最大 20B带立即数减 8BJFC PA 地址可 Bypass UMMU 降低 CQE 时延学习要点1 JFC 绑多 JFS/JFR但 1 JFS/JFR 只属 1 JFC多对一关系。JFC 可 Bypass UMMU 直接用 PA 地址用于降低 CQE 时延。四、URMA 操作语义4.1 支持的操作Send、Send with invalidate仅软件方案、Send with immediate dataCTP 最大 1 MTU、Send with inline data最大 208B、Write、Write with immediate、Write with Notify、Write with Reduce≤MTU、Write with inline最大 208B、Read、Read with Reduce≤MTU、CompareSwap Atomic4/8/16B、FetchAdd Atomic4/8B、User Data 上报 CQE、NOP。4.2 操作规格Normal SQE操作最小最大Send0BSGE_Num0可靠 TP 64KBCTP 1 MTUWrite0B256MB0x40000 KBRead0B256MBAtomic CAS4B16B操作数×2Atomic FetchAdd4B8BRaw SQE Payload0B4KBWrite/Send inline—208B4.3 WQE 切片规则Write/Read可切片给 Transport切片大小 Payload size不含包头可靠 TP 最大 6553664KB最小 1KB2 的幂次方Send / Read Response / Raw / Atomic不切片无 TP 时按 MTU 拆4.4 序模型模型说明No Order无序Strong Order强序Fence栅栏Relax Order宽松序均在 WQE 中配置。五、SQE 规格SQEBBSQE Base Block64B是计量单位Raw SQE最大 5 SQEBB最大 18 SGE每 SGE 16B用于传统 NICNormal SQE最大 4 SQEBBWrite/Send 最大 13 SGERead 最大 6 SGEAtomic 1 SGEJFS Context User Data最大 8B 填入 CQE记忆64B 是基本块。Raw 给传统 NIC 用5 BB / 18 SGENormal 是 URMA 主力4 BB。SGE 是 Scatter/Gather Element散集元素 的缩写。它是一种用于描述非连续或离散内存数据段Buffer的结构单元主要在传输请求WQE中指定数据的内存地址、长度和访问权限从而支持高效的向量化 I/O 与零拷贝数据搬移。SGE 的核心作用描述内存段每个SGE 包含一段物理或虚拟内存的起始地址Buffer Address以及数据长度Length。SGL多个 SGE 可以组合成一个散集列表Scatter/Gather List, SGL用来一次性处理分布在内存中不同位置的多个数据块。SGE 的核心字段硬件数据结构在硬件底层一个 SGE 通常占用 16 字节Bytes 或 32 字节 的固定内存空间主要由以下三个核心核心字段组成Addr (64-bit 地址)指向本段内存缓冲区的起始虚拟地址VA或物理地址。Length (32-bit 长度)指定该内存段的大小以字节为单位定义了硬件可以读取或写入的边界。Lkey (32-bit 局部密钥)这是硬件进行内存保护的核心机制。它是该内存区域在注册Memory Region, MR时生成的令牌。硬件通过检查 Lkey 来验证当前进程是否有权限读写该段内存防止非法内存越界。SGE 的组织与执行形式WQE ↔ SGL ↔ SGESGE它是通过工作队列Work Queue和散集列表SGL来协同工作的软件提交Gather / 发送端软件如应用层或网络协议栈要发送 3 块不连续的数据。软件构建一个 WQE工作队列元素并在 WQE 内部包含一个由 3 个 SGE 组成的 SGLScatter/Gather List。六、RC 表Remote Command 表存收到的远端Read / Atomic请求RM 模式需回 TAACK 的 Write/Send 也用。项规格每 Entity RC 表数最大 65536可配置每 VL 2 的幂次方深度RC 表大小Ring BufferRCE BB 固定 64B单命令占 1 RCE BB最小 64B最大 128B2 RCERC 表深度64 ~ 32768 RCEBB拥塞反馈RC 表达水线返回拥塞指示源端降速解除活锁非协议拥塞控制学习要点RC 表是接收侧用来暂存远端发来的 Read/Atomic 请求的环形缓冲。达水线会反压源端降速——注意这是解除活锁不是协议级拥塞控制。七、Direct WQE / WQE Lock Buffer / Stars Lock Buffer7.1 DirectWQE 机制硬件收到 DirectWQE 后按 Jetty 范围判断存入Stars Lock BufferWQE Lock BufferWQE cacheLock Buffer 模式下 SQE 只存片上无访存DSQE 源保证不溢出低延时场景。7.2 WQE Lock BufferXPUCPU/CCU/AIV/AICPU下发的 DirectWQE 存入使用此 Buffer 的 Jetty仅支持 DirectWQE不支持 doorbellFE 内连续 Jetty 范围静态配置start_jetty_id / end_jetty_id所有 FE 范围相同每 FE 配 1bit 使能 fe_start_buf_idxFE 内 jetty 深度相同2^bb_shift最大 2^12片上容量4K×64BJFS context 中wqe_lock_buffer_en1时 sqe_base_addr 为此 Jetty 在 Buffer 起始地址地址计算addr fe_start_buf_idx (jetty_id - start_jetty_id)*(2^bb_shift) sqebb_idx%(2^bb_shift)64B DWQEsqebb_idx DWQE.sqe_bb_idx - 1128B DWQE第 1 个 sqebb_idx sqe_bb_idx-2第 2 个 sqe_bb_idx-17.3 Stars Lock Buffer深度128×64B与 WQE Lock Buffer 的 Jetty 范围不交叠学习要点DirectWQE 是低延时关键路径。Lock Buffer 把 SQE 留在片上免访存但要付出Jetty 范围受限、不支持 doorbell的代价。八、Write with AtomicStoreAdd模式opcode结构说明单 WQEBB0x19仅 1 SGE1 WQEBBEID 32bitTokenValue 24bit不支持 UDFPayload 最大 64KBTP/ 4KBCTP≤MTUinline 最多 8BTA 不切片发 TPsge_num0 表 payload0两 WQEBB0x1A数据结构同 write with notify1 SGEsge_num0/1inline 最多 16BTP 0~64KB / CTP 0~4KBTA 固定不切片超切片大小不发送上报 AE九、流量管理 TM 4 层调度层级节点典型数量调度ShaperL5Queue (Q)128——L4Queue Set128固定一一映射 L5单桶 1Mbps~200Gbps精度 1%L3Function (VF/PF) Entity64最多 16 L4 → 1 L3SPDWRR双桶 CIR/PIRL2Function Group16最多 8 L3 → 1 L2SPDWRR双桶L1Network Port132 FG → 1SPDWRR单桶Jetty 流量控制最低1MbpsSL→VL 映射表同 FE 同 VL SQ 映射到同 FEVL Queue学习要点自底向上 L1端口→ L2FG→ L3FE→ L4QS→ L5Q。调度算法 SP严格优先级 DWRR加权轮询组合。L3/L2 用双桶CIR/PIRL1/L4 用单桶。十、性能指标10.1 昇腾场景操作RC 单向RC 双向RM 单向RM 双向Send/Rcv快最快慢快CTP 模式 4KB 打满带宽场景10 Jetty 对 10 Port4KB 打满context cache miss 时双向包率之和 80Mmps达成条件JFS 32~384RC 32~64单 Jetty WQE≥4CQE 非 inline4KB 打满带宽≤1KB 打满包率学习要点RC 比 RM 快约 2 倍。Cache hit/miss 对带宽影响巨大。十一、图速记软件 ──Mailbox──▶ [表项配置] ──IMP──▶ TA ──Doorbell──▶ [PI/CI更新] ──TP LSAR──▶ TA ──DirectWQE─▶ [低延时] ──┬─ Stars Lock Buffer (128×64B) ├─ WQE Lock Buffer (4K×64B, 昇腾) └─ WQE cache TA 内部: JFS(发送) ──SQE──▶ [拆解/切片] ──▶ TP ──▶ NL ──▶ DL_PHY JFR(接收) ◀──RQE── [收报文] ◀── TP RC表(远端命令暂存) ──RdResp/TAACK──▶ JFC(完成) ──CQE──▶ 软件 EQ(事件) ──EQE──▶ 软件
返回列表