Qualcomm Hexagon:Scalar core、HVX 与 HMX
Hexagon 将可编程 DSP 核心、HVX 向量协处理器和 HMX 矩阵协处理器组合起来。理解其执行结构时,应先分清 scalar 的通用执行单元、HVX 的 vector context,以及 HMX 的矩阵计算资源[1][2]。
本专题以 v79 为主,保留历史版本手册供跨代核对:
- Hexagon 编程架构:Q6、HVX 与 HMX:从 instruction、寄存器、packet 与 slot 入手,结合 Q6、HVX、HMX 解释硬件线程、向量 context、指令调度、数据依赖与矩阵加速。
- 官方手册归档与版本索引:24 份不同的核心、HVX、HMX 与虚拟机手册,文档号、修订日期及 SHA256。
v79 执行与存储概览
图 1|Hexagon v79 执行单元与存储概览。上方展开 Scalar、HVX 与 HMX 的主要编程资源,下方压缩存储层级。HVX 外框内的小框同时包住 Vector 0~31、Q0~3 与执行资源,小框旁 ×6 表示 context 数量;下方资源表示 packet 约束模型,不据此断言全芯片物理 pipeline 数量;HMX 仅示意 FP16 编程数据流[1][2][3][4]。容量沿用历史设备资料,本次未重新板测diagram-source。
Scalar 左侧执行单元框包含两个 X unit 与两个 LD/ST,图中省略 slot 编号;每个 LD/ST 都支持 Load 与 Store。执行单元框与 Registers 等宽,通过双向箭头表示寄存器读写及 L1 Data Cache 访存;Instruction sequencer 单向发射指令。图中省略 Loop、Address 与 USR 等控制状态;PC 位于 Instruction sequencer 左侧。PC 八层对应项目归档的 V79 Compute DSP 所报告的 最多 8 个 hardware thread,HVX 的 ×6 对应 6 个 context;依据为 Compute DSP 原始配置查询,查询来源与本轮验证范围见编程架构 §1.2.1。下方左侧为 L1 Data Cache,右侧为 L1 Instruction Cache[1]。
Scalar→HVX 直接箭头表示指令发射与 scalar source operand 联系;HVX 的 Vector 0~31 表示 V0~V31,每个 128 B(1024 bit),Q0~Q3 每个 128 bit。Load 将数据送入向量寄存器,Store 读取寄存器写回;P0~3 与执行单元的双向箭头表示 predicate 生成和使用;HVX 的黑色双向连接概括向量/predicate 状态与计算资源之间的交互。每个 context 都有一套向量数据与 predicate 的架构状态;标题 ×6 表示导入设备记录的 context 数,不能据此推导全芯片有一套或六套物理执行资源[2]。
HMX 框按 Activation / Weight → Matrix MAC → Accumulator → Convert / Store 画出 FP16 数据流,Bias 用于输出转换;Convert / Store 将结果写入 VTCM,再由搬运路径送到 DDR,图中不再把 HMX 写出直接连到 DDR。其依据是公开手册概念与开源 FP16 指令封装[3][4]。它不是已核对的 v79 物理阵列图。
图中的 Q6 Scalar Core 表示 Hexagon DSP 核心的标量执行部分。它处理地址、循环、分支与普通算术,也为协处理器指令准备标量操作数。HVX 负责宽向量运算;HMX 从 VTCM 读取矩阵操作数并完成乘加。v73 / v79 的 HMX 实用编程入口见手册索引 §3。V81 HMX 手册明确说明指令使用 scalar registers 配置,但该手册只展开 FP16,不能作为 v79 全部精度和编码的依据[3]。
diagram-source. 导入来源为本地 eperf-exporter 的 Hexagon 文档归档与历史架构资料;设备背景、手册原始文件名与校验和保存在归档清单中。该图不是 Qualcomm 官方总图,图中设备容量没有在本知识库重新验证。 ↩
参考文献
[1] QUALCOMM TECHNOLOGIES, INC. Qualcomm Hexagon V79 Programmer Reference Manual[EB/OL]. 80-N2040-60, Rev. AB, (2025-01-16)[2026-10-14]. https://docs.alexrp.com/hexagon/hexagon_v79.pdf
[2] QUALCOMM TECHNOLOGIES, INC. Qualcomm Hexagon V79 HVX Programmer Reference Manual[EB/OL]. 80-N2040-61, Rev. AB, (2025-01-16)[2026-10-14]. https://docs.alexrp.com/hexagon/hexagon_v79_hvx.pdf
[3] QUALCOMM TECHNOLOGIES, INC. Qualcomm Hexagon V81 HMX Programmer Reference Manual[EB/OL]. 80-N2040-62, Rev. AA, (2026-03-19)[2026-10-14]. https://docs.alexrp.com/hexagon/hexagon_v81_hmx.pdf
[4] GGML-ORG. llama.cpp Hexagon backend: HMX inline instruction helpers[EB/OL]. (2026)[2026-10-15]. https://github.com/ggml-org/llama.cpp/blob/c114bd4c58a9a39eeb50f115418389a195fdd697/ggml/src/ggml-hexagon/htp/hmx-utils.h#L208-L228