Vector 指令¶
每个条目给出完整 32 位固定/可变布局、c220 后端实际接受的文本形式、立即数约束和架构周期模型。 没有“c220 汇编器接受”标记的条目不能把目录占位符直接复制进源码。
目录速览¶
| ID | 解码名 | 助记符 | 格式 | 作用 | 状态 |
|---|---|---|---|---|---|
| 142 | MOVEVA |
MOVEVA |
V-MOVE |
移动/设置向量地址寄存器 VA。 | 仅机器格式;无 c220 公共语法 |
| 143 | VSCMERGE |
VSCMERGE |
V-MOVE |
按向量地址/步长描述合并数据。 | 仅机器格式;无 c220 公共语法 |
| 144 | VSCSPLIT |
VSCSPLIT |
V-MOVE |
按向量地址/步长描述拆分数据。 | 仅机器格式;无 c220 公共语法 |
| 145 | VGATHER |
VGATHER |
V-MOVE |
按索引聚集向量元素。 | c220 汇编器接受 |
| 146 | VPADDING |
VPADDING |
V-MOVE |
向量填充。 | 仅机器格式;无 c220 公共语法 |
| 147 | VSCATTER |
VSCATTER |
V-MOVE |
按索引散射向量元素。 | 仅机器格式;无 c220 公共语法 |
| 148 | L0C_LOCK_SET |
L0C_LOCK_SET |
V-SPECIAL |
设置 L0C 访问锁。 | 仅机器格式;无 c220 公共语法 |
| 149 | L0C_LOCK_RELEASE |
L0C_LOCK_RELEASE |
V-SPECIAL |
释放 L0C 访问锁。 | 仅机器格式;无 c220 公共语法 |
| 154 | VCSHUFFLE |
VCSHUFFLE |
V-MOVE |
向量通道重排。 | 仅机器格式;无 c220 公共语法 |
| 155 | MOVEMASK |
MOVEMASK |
V-MOVE |
在标量寄存器与 MASK[0]/MASK[1] 之间移动掩码。 | c220 汇编器接受 |
| 156 | LD_VAD |
LD_VAD |
V-SPECIAL |
加载向量地址描述 VAD。 | 仅机器格式;无 c220 公共语法 |
| 157 | VCBD |
VCBD |
V-SPECIAL |
执行向量 CBD 专用变换,输入输出类型由转换后缀选择。 | 仅机器格式;无 c220 公共语法 |
| 158 | MOVEV |
MOVEV |
V-MOVE |
向量数据/地址移动。 | 仅机器格式;无 c220 公共语法 |
| 159 | VCI |
VCI |
V-SPECIAL |
生成或变换向量索引。 | 仅机器格式;无 c220 公共语法 |
| 160 | VEXP |
VEXP |
V-UNARY |
逐 lane 指数。 | c220 汇编器接受 |
| 161 | VRSQRT |
VRSQRT |
V-UNARY |
逐 lane 倒数平方根。 | c220 汇编器接受 |
| 162 | VRELU |
VRELU |
V-UNARY |
逐 lane ReLU。 | c220 汇编器接受 |
| 163 | VREC |
VREC |
V-UNARY |
逐 lane 倒数。 | c220 汇编器接受 |
| 164 | VLN |
VLN |
V-UNARY |
逐 lane 自然对数。 | c220 汇编器接受 |
| 165 | VABS |
VABS |
V-UNARY |
逐 lane 绝对值。 | c220 汇编器接受 |
| 166 | VCADD |
VCADD |
V-REDUCE |
向量分组/归约加法。 | c220 汇编器接受 |
| 167 | VCMAX |
VCMAX |
V-REDUCE |
向量分组/归约最大值。 | c220 汇编器接受 |
| 168 | VCMIN |
VCMIN |
V-REDUCE |
向量分组/归约最小值。 | c220 汇编器接受 |
| 169 | VCGMAX |
VCGMAX |
V-REDUCE |
向量全局/分组最大值归约。 | c220 汇编器接受 |
| 170 | VCGMIN |
VCGMIN |
V-REDUCE |
向量全局/分组最小值归约。 | c220 汇编器接受 |
| 171 | VCGADD |
VCGADD |
V-REDUCE |
向量全局/分组加法归约。 | c220 汇编器接受 |
| 172 | VNCHWCONV |
VNCHWCONV |
V-MOVE |
在 NCHW 相关的分块布局之间转换。 | 仅机器格式;无 c220 公共语法 |
| 173 | VMOV |
VMOV |
V-MOVE |
向量移动。 | 仅机器格式;无 c220 公共语法 |
| 174 | VCPADD |
VCPADD |
V-REDUCE |
成对/相邻 lane 加法规约。 | c220 汇编器接受 |
| 175 | VNOT |
VNOT |
V-UNARY |
逐 lane 按位取反。 | c220 汇编器接受 |
| 176 | VRPAC |
VRPAC |
V-SPECIAL |
执行 RPN/候选框处理所需的专用向量操作。 | 仅机器格式;无 c220 公共语法 |
| 177 | VBS16 |
VBS16 |
V-SPECIAL |
执行 16 位 bit-sort/候选框专用操作。 | 仅机器格式;无 c220 公共语法 |
| 178 | VMS4 |
VMS4 |
V-SPECIAL |
四路 merge-sort 类向量操作。 | 仅机器格式;无 c220 公共语法 |
| 179 | VEXTRACT |
VEXTRACT |
V-MOVE |
从向量/通道中抽取元素。 | 仅机器格式;无 c220 公共语法 |
| 180 | VCONCAT |
VCONCAT |
V-MOVE |
拼接向量/通道。 | 仅机器格式;无 c220 公共语法 |
| 181 | VMERGECH |
VMERGECH |
V-MOVE |
合并通道。 | 仅机器格式;无 c220 公共语法 |
| 182 | RPN_COR_DIAG |
RPN_COR_DIAG |
V-SPECIAL |
RPN 对角相关专用操作。 | 仅机器格式;无 c220 公共语法 |
| 183 | VTRANSPOSE |
VTRANSPOSE |
V-MOVE |
向量块转置。 | 仅机器格式;无 c220 公共语法 |
| 184 | UNDEF184 |
— |
R |
内部/保留解码槽位,不定义公共语义。 | 保留/内部 |
| 185 | VSQRT |
VSQRT |
V-UNARY |
逐 lane 平方根。 | c220 汇编器接受 |
| 186 | VBS32 |
VBS32 |
V-SPECIAL |
执行 32 位 bit-sort/候选框专用操作。 | 仅机器格式;无 c220 公共语法 |
| 187 | VMS4V2 |
VMS4V2 |
V-SPECIAL |
第二版四路 merge-sort 类操作。 | 仅机器格式;无 c220 公共语法 |
| 188 | VCONV |
VCONV |
V-CONV |
逐 lane 类型转换;后缀包含源/目标类型及舍入/饱和模式。 | c220 汇编器接受 |
| 189 | VADD |
VADD |
V-BINARY |
逐 lane 加法。 | c220 汇编器接受 |
| 190 | VSUB |
VSUB |
V-BINARY |
逐 lane 减法。 | c220 汇编器接受 |
| 191 | VMAX |
VMAX |
V-BINARY |
逐 lane 最大值。 | c220 汇编器接受 |
| 192 | VMIN |
VMIN |
V-BINARY |
逐 lane 最小值。 | c220 汇编器接受 |
| 193 | VMUL |
VMUL |
V-BINARY |
逐 lane 乘法。 | c220 汇编器接受 |
| 194 | VMLA |
VMLA |
V-BINARY |
逐 lane 乘加/累加。 | c220 汇编器接受 |
| 195 | VDIV |
VDIV |
V-BINARY |
逐 lane 除法。 | c220 汇编器接受 |
| 196 | VADDRELUCONV |
VADDRELUCONV |
V-CONV |
向量加法、ReLU 与类型转换融合。 | c220 汇编器接受 |
| 197 | VSUBRELUCONV |
VSUBRELUCONV |
V-CONV |
向量减法、ReLU 与类型转换融合。 | c220 汇编器接受 |
| 198 | VMADD |
VMADD |
V-BINARY |
逐 lane 乘加。 | c220 汇编器接受 |
| 199 | VMADDRELU |
VMADDRELU |
V-BINARY |
逐 lane 乘加并执行 ReLU。 | c220 汇编器接受 |
| 200 | VMAXS |
VMAXS |
V-SCALAR |
向量与标量逐 lane 取最大值。 | c220 汇编器接受 |
| 201 | VMINS |
VMINS |
V-SCALAR |
向量与标量逐 lane 取最小值。 | c220 汇编器接受 |
| 202 | VSHR |
VSHR |
V-SCALAR |
逐 lane 右移。 | c220 汇编器接受 |
| 203 | VSHL |
VSHL |
V-SCALAR |
逐 lane 左移。 | c220 汇编器接受 |
| 204 | VLRELU |
VLRELU |
V-UNARY |
逐 lane Leaky ReLU。 | c220 汇编器接受 |
| 205 | VADDRELU |
VADDRELU |
V-BINARY |
逐 lane 加法并执行 ReLU。 | c220 汇编器接受 |
| 206 | VSUBRELU |
VSUBRELU |
V-BINARY |
逐 lane 减法并执行 ReLU。 | c220 汇编器接受 |
| 207 | VCMPVS |
VCMPVS |
V-CMP |
向量与标量比较并产生选择/比较掩码。 | c220 汇编器接受 |
| 208 | VGATHERB |
VGATHERB |
V-MOVE |
按字节/块索引聚集。 | 仅机器格式;无 c220 公共语法 |
| 209 | VBRCB |
VBRCB |
V-MOVE |
向量按块广播。 | c220 汇编器接受 |
| 210 | VREDUCE |
VREDUCE |
V-REDUCE |
向量归约。 | c220 汇编器接受 |
| 211 | VREDUCEV2 |
VREDUCEV2 |
V-REDUCE |
第二版向量归约。 | c220 汇编器接受 |
| 212 | VAXPY |
VAXPY |
V-SCALAR |
执行 A*X+Y 形式的逐 lane 运算。 | c220 汇编器接受 |
| 213 | VADDS |
VADDS |
V-SCALAR |
向量与标量逐 lane 加法。 | c220 汇编器接受 |
| 214 | VMULS |
VMULS |
V-SCALAR |
向量与标量逐 lane 乘法。 | c220 汇编器接受 |
| 215 | VCMP |
VCMP |
V-CMP |
比较向量元素并更新比较掩码。 | c220 汇编器接受 |
| 216 | VCMPV |
VCMPV |
V-CMP |
向量比较并将结果写为向量/掩码。 | c220 汇编器接受 |
| 217 | VOR |
VOR |
V-BINARY |
逐 lane 按位或。 | c220 汇编器接受 |
| 218 | VAND |
VAND |
V-BINARY |
逐 lane 按位与。 | c220 汇编器接受 |
| 219 | VSEL |
VSEL |
V-BINARY |
按 MASK/CMPMASK 逐 lane 选择。 | c220 汇编器接受 |
| 223 | VMOVMASK_XD |
VMOVMASK_XD |
V-MOVE |
把向量比较掩码移动到标量寄存器。 | 仅机器格式;无 c220 公共语法 |
| 224 | VMOVMASK_XN |
VMOVMASK_XN |
V-MOVE |
从标量寄存器恢复/设置向量比较掩码。 | 仅机器格式;无 c220 公共语法 |
| 225 | VMULCONV |
VMULCONV |
V-CONV |
向量乘法与类型转换融合。 | c220 汇编器接受 |
| 226 | VADDDEQRELU |
VADDDEQRELU |
V-BINARY |
向量加法、反量化与 ReLU 融合。 | 仅机器格式;无 c220 公共语法 |
| 227 | VCOPY |
VCOPY |
V-MOVE |
按向量地址/步长描述复制。 | c220 汇编器接受 |
逐指令说明¶
ID 142 — MOVEVA¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 移动/设置向量地址寄存器 VA。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000.........................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000000(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xfe000000) == 0x80000000。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 143 — VSCMERGE¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 按向量地址/步长描述合并数据。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...................001(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:3]=Xs; [2:0]=001(fixed) - 解码条件:
(word & 0xffc00007) == 0x80000001。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 144 — VSCSPLIT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 按向量地址/步长描述拆分数据。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............000.010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:4]=000(fixed); [3]=Xs; [2:0]=010(fixed) - 解码条件:
(word & 0xffc00077) == 0x80000002。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 145 — VGATHER¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | Xd=目标 UB 地址;Xn=索引地址;Xs=配置;MASK=有效 lane |
| 作用 | 按索引聚集向量元素。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............100.010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst; [16:12]=index address; [11:7]=Xs; [6:4]=100(fixed); [3]=gather control; [2:0]=010(fixed) - 解码条件:
(word & 0xffc00077) == 0x80000042。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [[Xn]], Xn, MASK |
VGATHER.b16 [X0], [[X1]], X2, MASK |
0x80001142 |
dav-c220-vec |
b32 |
[Xn], [[Xn]], Xn, MASK |
VGATHER.b32 [X0], [[X1]], X2, MASK |
0x8000114a |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 和索引访问分组;每组可因 UB 请求边界继续拆分:64/128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 146 — VPADDING¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 向量填充。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............010.010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:4]=010(fixed); [3]=Xs; [2:0]=010(fixed) - 解码条件:
(word & 0xffc00077) == 0x80000022。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 147 — VSCATTER¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 按索引散射向量元素。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............110.010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:4]=110(fixed); [3]=Xs; [2:0]=010(fixed) - 解码条件:
(word & 0xffc00077) == 0x80000062。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 148 — L0C_LOCK_SET¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 设置 L0C 访问锁。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............0010010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:0]=0010010(fixed) - 解码条件:
(word & 0xffc0007f) == 0x80000012。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 149 — L0C_LOCK_RELEASE¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 释放 L0C 访问锁。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............0011010(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:0]=0011010(fixed) - 解码条件:
(word & 0xffc0007f) == 0x8000001a。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 154 — VCSHUFFLE¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 向量通道重排。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...................111(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:3]=Xs; [2:0]=111(fixed) - 解码条件:
(word & 0xffc00007) == 0x80000007。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 155 — MOVEMASK¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | MASK[0]=目标掩码槽;Xn=标量源 |
| 作用 | 在标量寄存器与 MASK[0]/MASK[1] 之间移动掩码。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000000001......................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000001(fixed); [21:7]=mask/control; [6:2]=src; [1:0]=subop - 解码条件:
(word & 0xffc00000) == 0x80400000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
(无后缀) |
MASK[0], Xn |
MOVEMASK MASK[0], X0 |
0x80400000 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 156 — LD_VAD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 加载向量地址描述 VAD。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000010......................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000010(fixed); [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xffc00000) == 0x80800000。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 只生成读侧/控制 uop;数量由 repeat/block 与有效源决定:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 157 — VCBD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 执行向量 CBD 专用变换,输入输出类型由转换后缀选择。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000011......................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000011(fixed); [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xffc00000) == 0x80c00000。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 158 — MOVEV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 向量数据/地址移动。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.........................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xfe000000) == 0x82000000。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 159 — VCI¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 生成或变换向量索引。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00000.....01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=00000(fixed); [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000f83) == 0x82000001。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 160 — VEXP¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 指数。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00001.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00001(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000080。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VEXP.f16 [X0], [X1], X2, MASK |
0x83401088 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VEXP.f32 [X0], [X1], X2, MASK |
0x83c01088 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:32/13/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 161 — VRSQRT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 倒数平方根。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00010.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00010(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000100。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VRSQRT.f16 [X0], [X1], X2, MASK |
0x83401108 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VRSQRT.f32 [X0], [X1], X2, MASK |
0x83c01108 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 162 — VRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane ReLU。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00011.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00011(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000180。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VRELU.f16 [X0], [X1], X2, MASK |
0x83401188 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VRELU.f32 [X0], [X1], X2, MASK |
0x83c01188 |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, MASK |
VRELU.s32 [X0], [X1], X2, MASK |
0x83001188 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 163 — VREC¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 倒数。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00100.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00100(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000200。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VREC.f16 [X0], [X1], X2, MASK |
0x83401208 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VREC.f32 [X0], [X1], X2, MASK |
0x83c01208 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 164 — VLN¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 自然对数。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00101.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00101(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000280。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VLN.f16 [X0], [X1], X2, MASK |
0x83401288 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VLN.f32 [X0], [X1], X2, MASK |
0x83c01288 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:32/15/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 165 — VABS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 绝对值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10000011............00110.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10000011(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=00110(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xff000f82) == 0x83000300。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VABS.f16 [X0], [X1], X2, MASK |
0x83401308 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VABS.f32 [X0], [X1], X2, MASK |
0x83c01308 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 166 — VCADD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量分组/归约加法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............00111......0(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=00111(fixed); [6:2]=Xs; [1]=reduce_mode; [0]=0(fixed) - 解码条件:
(word & 0xfe000f81) == 0x82000380。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK, #imm |
VCADD.f16 [X0], [X1], X2, MASK, #0 |
0x83401388 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK, #imm |
VCADD.f32 [X0], [X1], X2, MASK, #0 |
0x83c01388 |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
reduce_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/21/24/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 167 — VCMAX¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量分组/归约最大值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10000011............01000.......(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10000011(fixed); [23:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01000(fixed); [6:2]=Xs; [1:0]=reduce_mode - 解码条件:
(word & 0xff000f80) == 0x83000400。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK, #imm |
VCMAX.f16 [X0], [X1], X2, MASK, #0 |
0x83401408 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK, #imm |
VCMAX.f32 [X0], [X1], X2, MASK, #0 |
0x83c01408 |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
reduce_mode |
0..3 | 2 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/9/10/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 168 — VCMIN¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量分组/归约最小值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10000011............01001.......(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10000011(fixed); [23:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01001(fixed); [6:2]=Xs; [1:0]=reduce_mode - 解码条件:
(word & 0xff000f80) == 0x83000480。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK, #imm |
VCMIN.f16 [X0], [X1], X2, MASK, #0 |
0x83401488 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK, #imm |
VCMIN.f32 [X0], [X1], X2, MASK, #0 |
0x83c01488 |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
reduce_mode |
0..3 | 2 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/9/10/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 169 — VCGMAX¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量全局/分组最大值归约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01010.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01010(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000500。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VCGMAX.f16 [X0], [X1], X2, MASK |
0x83401508 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VCGMAX.f32 [X0], [X1], X2, MASK |
0x83c01508 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/6/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 170 — VCGMIN¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量全局/分组最小值归约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01011.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01011(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000580。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VCGMIN.f16 [X0], [X1], X2, MASK |
0x83401588 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VCGMIN.f32 [X0], [X1], X2, MASK |
0x83c01588 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/6/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 171 — VCGADD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 向量全局/分组加法归约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01100.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01100(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000600。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VCGADD.f16 [X0], [X1], X2, MASK |
0x83401608 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VCGADD.f32 [X0], [X1], X2, MASK |
0x83c01608 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/13/16/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 172 — VNCHWCONV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 在 NCHW 相关的分块布局之间转换。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01101.......(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=01101(fixed); [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xfe000f80) == 0x82000680。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 NCHW 转换块和 repeat 展开:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 173 — VMOV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 向量移动。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01110.....1.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=01110(fixed); [6:2]=Xs; [1]=1(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000702。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 174 — VCPADD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | dst/src=UB 地址;Xs=分组/repeat;MASK=有效 lane |
| 作用 | 成对/相邻 lane 加法规约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01111.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src; [11:7]=01111(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000780。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VCPADD.f16 [X0], [X1], X2, MASK |
0x83401788 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VCPADD.f32 [X0], [X1], X2, MASK |
0x83c01788 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 175 — VNOT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 按位取反。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10000.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=10000(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000800。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], Xn, MASK |
VNOT.b16 [X0], [X1], X2, MASK |
0x82401808 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 176 — VRPAC¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 执行 RPN/候选框处理所需的专用向量操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10001.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=10001(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000880。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 177 — VBS16¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 执行 16 位 bit-sort/候选框专用操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10010.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=10010(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000900。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 178 — VMS4¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 四路 merge-sort 类向量操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10011.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=10011(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000980。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 179 — VEXTRACT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 从向量/通道中抽取元素。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10100.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=10100(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000a00。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 180 — VCONCAT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 拼接向量/通道。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10101.....00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=10101(fixed); [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000f83) == 0x82000a80。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 181 — VMERGECH¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 合并通道。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10110.....01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=10110(fixed); [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000f83) == 0x82000b01。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 182 — RPN_COR_DIAG¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | RPN 对角相关专用操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............10111.....1.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=10111(fixed); [6:2]=Xs; [1]=1(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000b82。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 183 — VTRANSPOSE¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 向量块转置。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............11000.....00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=11000(fixed); [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000f83) == 0x82000c00。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按转置块和 repeat 展开:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 184 — UNDEF184¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | R |
| 参数角色 | 保留机器码槽;无公共操作数 |
| 作用 | 内部/保留解码槽位,不定义公共语义。 |
| 文本语法状态 | 保留/内部 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............11000.....01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:12]=reserved/internal payload; [11:7]=11000(fixed); [6:2]=reserved/internal payload; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000f83) == 0x82000c01。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64(默认)/1(默认)/1(base 默认);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 185 — VSQRT¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | dst/src=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 平方根。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............11001.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=11001(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000c80。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, MASK |
VSQRT.f16 [X0], [X1], X2, MASK |
0x83401c88 |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, MASK |
VSQRT.f32 [X0], [X1], X2, MASK |
0x83c01c88 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:32/14/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 186 — VBS32¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 执行 32 位 bit-sort/候选框专用操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000010.......................10(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000010(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:2]=Xs; [1:0]=10(fixed) - 解码条件:
(word & 0xfe000003) == 0x84000002。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 32 位排序块、repeat 和有效列表展开:32/64/19/17(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 187 — VMS4V2¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SPECIAL |
| 参数角色 | 指令专用 VA、地址、锁、排序或控制状态 |
| 作用 | 第二版四路 merge-sort 类操作。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000010.......................11(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000010(fixed); [24:22]=mode; [21:17]=operand 0; [16:12]=operand 1; [11:7]=operand 2; [6:2]=Xs; [1:0]=11(fixed) - 解码条件:
(word & 0xfe000003) == 0x84000003。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector VMSU→4 路读→比较0→比较1→对齐/写回→Vector retire |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{read}}/L_{\mathrm{cmp}}/L_{\mathrm{align}}/L_{\mathrm{write}}\right)-t_{\mathrm{dispatch}}+1+S\) 普通 IBUF 参数不直接驱动此路径 |
| 发射间隔 | 受 VMSU busy、4 路列表、读响应和写回缓存限制 |
| uop 展开 | U=U读+U比较0+U比较1+U写回;由 4 路有效列表和列表长度决定,写回对齐缓存上限为 4 组:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 全部 VMS4V2 uop 完成且最终写回 uop 退休 |
| 动态停顿 | VMSU busy、UB 读写、四路列表不平衡、比较依赖、align_buf 满 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 188 — VCONV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CONV |
| 参数角色 | Xd=目标 UB 地址;Xn=源 UB 地址;Xs=转换配置;MASK=有效 lane;后缀指定转换与舍入 |
| 作用 | 逐 lane 类型转换;后缀包含源/目标类型及舍入/饱和模式。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000110.........................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000110(fixed); [24:22]=conversion class; [21:17]=dst; [16:12]=src; [11:7]=Xs; [6:3]=conversion mode; [2:0]=round/subop - 解码条件:
(word & 0xfe000000) == 0x8c000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
DEQ |
[Xn], [Xn], Xn, MASK |
VCONV.DEQ [X0], [X1], X2, MASK |
0x8dc0117f |
dav-c220-vec |
DEQs162b8h |
[Xn], [Xn], Xn, MASK |
VCONV.DEQs162b8h [X0], [X1], X2, MASK |
0x8dc01177 |
dav-c220-vec |
DEQs162b8l |
[Xn], [Xn], Xn, MASK |
VCONV.DEQs162b8l [X0], [X1], X2, MASK |
0x8dc0116f |
dav-c220-vec |
VDEQs162b8h |
[Xn], [Xn], Xn, MASK |
VCONV.VDEQs162b8h [X0], [X1], X2, MASK |
0x8dc01167 |
dav-c220-vec |
VDEQs162b8l |
[Xn], [Xn], Xn, MASK |
VCONV.VDEQs162b8l [X0], [X1], X2, MASK |
0x8dc0115f |
dav-c220-vec |
bf162f32 |
[Xn], [Xn], Xn, MASK |
VCONV.bf162f32 [X0], [X1], X2, MASK |
0x8c801100 |
dav-c220-vec |
bf162s32a |
[Xn], [Xn], Xn, MASK |
VCONV.bf162s32a [X0], [X1], X2, MASK |
0x8c801121 |
dav-c220-vec |
bf162s32c |
[Xn], [Xn], Xn, MASK |
VCONV.bf162s32c [X0], [X1], X2, MASK |
0x8c801123 |
dav-c220-vec |
bf162s32f |
[Xn], [Xn], Xn, MASK |
VCONV.bf162s32f [X0], [X1], X2, MASK |
0x8c801122 |
dav-c220-vec |
bf162s32r |
[Xn], [Xn], Xn, MASK |
VCONV.bf162s32r [X0], [X1], X2, MASK |
0x8c801120 |
dav-c220-vec |
bf162s32z |
[Xn], [Xn], Xn, MASK |
VCONV.bf162s32z [X0], [X1], X2, MASK |
0x8c801124 |
dav-c220-vec |
f162f32 |
[Xn], [Xn], Xn, MASK |
VCONV.f162f32 [X0], [X1], X2, MASK |
0x8c401100 |
dav-c220-vec |
f162s16a |
[Xn], [Xn], Xn, MASK |
VCONV.f162s16a [X0], [X1], X2, MASK |
0x8c401129 |
dav-c220-vec |
f162s16c |
[Xn], [Xn], Xn, MASK |
VCONV.f162s16c [X0], [X1], X2, MASK |
0x8c40112b |
dav-c220-vec |
f162s16f |
[Xn], [Xn], Xn, MASK |
VCONV.f162s16f [X0], [X1], X2, MASK |
0x8c40112a |
dav-c220-vec |
f162s16r |
[Xn], [Xn], Xn, MASK |
VCONV.f162s16r [X0], [X1], X2, MASK |
0x8c401128 |
dav-c220-vec |
f162s16z |
[Xn], [Xn], Xn, MASK |
VCONV.f162s16z [X0], [X1], X2, MASK |
0x8c40112c |
dav-c220-vec |
f162s32a |
[Xn], [Xn], Xn, MASK |
VCONV.f162s32a [X0], [X1], X2, MASK |
0x8c401121 |
dav-c220-vec |
f162s32c |
[Xn], [Xn], Xn, MASK |
VCONV.f162s32c [X0], [X1], X2, MASK |
0x8c401123 |
dav-c220-vec |
f162s32f |
[Xn], [Xn], Xn, MASK |
VCONV.f162s32f [X0], [X1], X2, MASK |
0x8c401122 |
dav-c220-vec |
f162s32r |
[Xn], [Xn], Xn, MASK |
VCONV.f162s32r [X0], [X1], X2, MASK |
0x8c401120 |
dav-c220-vec |
f162s32z |
[Xn], [Xn], Xn, MASK |
VCONV.f162s32z [X0], [X1], X2, MASK |
0x8c401124 |
dav-c220-vec |
f162s4 |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4 [X0], [X1], X2, MASK |
0x8c401140 |
dav-c220-vec |
f162s4a |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4a [X0], [X1], X2, MASK |
0x8c401141 |
dav-c220-vec |
f162s4c |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4c [X0], [X1], X2, MASK |
0x8c401143 |
dav-c220-vec |
f162s4f |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4f [X0], [X1], X2, MASK |
0x8c401142 |
dav-c220-vec |
f162s4r |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4r [X0], [X1], X2, MASK |
0x8c401140 |
dav-c220-vec |
f162s4z |
[Xn], [Xn], Xn, MASK |
VCONV.f162s4z [X0], [X1], X2, MASK |
0x8c401144 |
dav-c220-vec |
f162s8 |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8 [X0], [X1], X2, MASK |
0x8c401130 |
dav-c220-vec |
f162s8a |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8a [X0], [X1], X2, MASK |
0x8c401131 |
dav-c220-vec |
f162s8c |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8c [X0], [X1], X2, MASK |
0x8c401133 |
dav-c220-vec |
f162s8f |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8f [X0], [X1], X2, MASK |
0x8c401132 |
dav-c220-vec |
f162s8r |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8r [X0], [X1], X2, MASK |
0x8c401130 |
dav-c220-vec |
f162s8z |
[Xn], [Xn], Xn, MASK |
VCONV.f162s8z [X0], [X1], X2, MASK |
0x8c401134 |
dav-c220-vec |
f162u8 |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8 [X0], [X1], X2, MASK |
0x8c401138 |
dav-c220-vec |
f162u8a |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8a [X0], [X1], X2, MASK |
0x8c401139 |
dav-c220-vec |
f162u8c |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8c [X0], [X1], X2, MASK |
0x8c40113b |
dav-c220-vec |
f162u8f |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8f [X0], [X1], X2, MASK |
0x8c40113a |
dav-c220-vec |
f162u8r |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8r [X0], [X1], X2, MASK |
0x8c401138 |
dav-c220-vec |
f162u8z |
[Xn], [Xn], Xn, MASK |
VCONV.f162u8z [X0], [X1], X2, MASK |
0x8c40113c |
dav-c220-vec |
f322bf16a |
[Xn], [Xn], Xn, MASK |
VCONV.f322bf16a [X0], [X1], X2, MASK |
0x8c001111 |
dav-c220-vec |
f322bf16c |
[Xn], [Xn], Xn, MASK |
VCONV.f322bf16c [X0], [X1], X2, MASK |
0x8c001113 |
dav-c220-vec |
f322bf16f |
[Xn], [Xn], Xn, MASK |
VCONV.f322bf16f [X0], [X1], X2, MASK |
0x8c001112 |
dav-c220-vec |
f322bf16r |
[Xn], [Xn], Xn, MASK |
VCONV.f322bf16r [X0], [X1], X2, MASK |
0x8c001110 |
dav-c220-vec |
f322bf16z |
[Xn], [Xn], Xn, MASK |
VCONV.f322bf16z [X0], [X1], X2, MASK |
0x8c001114 |
dav-c220-vec |
f322f16 |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16 [X0], [X1], X2, MASK |
0x8c001108 |
dav-c220-vec |
f322f16a |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16a [X0], [X1], X2, MASK |
0x8c001109 |
dav-c220-vec |
f322f16c |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16c [X0], [X1], X2, MASK |
0x8c00110b |
dav-c220-vec |
f322f16f |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16f [X0], [X1], X2, MASK |
0x8c00110a |
dav-c220-vec |
f322f16o |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16o [X0], [X1], X2, MASK |
0x8c00110d |
dav-c220-vec |
f322f16r |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16r [X0], [X1], X2, MASK |
0x8c001108 |
dav-c220-vec |
f322f16z |
[Xn], [Xn], Xn, MASK |
VCONV.f322f16z [X0], [X1], X2, MASK |
0x8c00110c |
dav-c220-vec |
f322f32a |
[Xn], [Xn], Xn, MASK |
VCONV.f322f32a [X0], [X1], X2, MASK |
0x8c001101 |
dav-c220-vec |
f322f32c |
[Xn], [Xn], Xn, MASK |
VCONV.f322f32c [X0], [X1], X2, MASK |
0x8c001103 |
dav-c220-vec |
f322f32f |
[Xn], [Xn], Xn, MASK |
VCONV.f322f32f [X0], [X1], X2, MASK |
0x8c001102 |
dav-c220-vec |
f322f32r |
[Xn], [Xn], Xn, MASK |
VCONV.f322f32r [X0], [X1], X2, MASK |
0x8c001100 |
dav-c220-vec |
f322f32z |
[Xn], [Xn], Xn, MASK |
VCONV.f322f32z [X0], [X1], X2, MASK |
0x8c001104 |
dav-c220-vec |
f322s16a |
[Xn], [Xn], Xn, MASK |
VCONV.f322s16a [X0], [X1], X2, MASK |
0x8c001129 |
dav-c220-vec |
f322s16c |
[Xn], [Xn], Xn, MASK |
VCONV.f322s16c [X0], [X1], X2, MASK |
0x8c00112b |
dav-c220-vec |
f322s16f |
[Xn], [Xn], Xn, MASK |
VCONV.f322s16f [X0], [X1], X2, MASK |
0x8c00112a |
dav-c220-vec |
f322s16r |
[Xn], [Xn], Xn, MASK |
VCONV.f322s16r [X0], [X1], X2, MASK |
0x8c001128 |
dav-c220-vec |
f322s16z |
[Xn], [Xn], Xn, MASK |
VCONV.f322s16z [X0], [X1], X2, MASK |
0x8c00112c |
dav-c220-vec |
f322s32a |
[Xn], [Xn], Xn, MASK |
VCONV.f322s32a [X0], [X1], X2, MASK |
0x8c001121 |
dav-c220-vec |
f322s32c |
[Xn], [Xn], Xn, MASK |
VCONV.f322s32c [X0], [X1], X2, MASK |
0x8c001123 |
dav-c220-vec |
f322s32f |
[Xn], [Xn], Xn, MASK |
VCONV.f322s32f [X0], [X1], X2, MASK |
0x8c001122 |
dav-c220-vec |
f322s32r |
[Xn], [Xn], Xn, MASK |
VCONV.f322s32r [X0], [X1], X2, MASK |
0x8c001120 |
dav-c220-vec |
f322s32z |
[Xn], [Xn], Xn, MASK |
VCONV.f322s32z [X0], [X1], X2, MASK |
0x8c001124 |
dav-c220-vec |
f322s64a |
[Xn], [Xn], Xn, MASK |
VCONV.f322s64a [X0], [X1], X2, MASK |
0x8c001119 |
dav-c220-vec |
f322s64c |
[Xn], [Xn], Xn, MASK |
VCONV.f322s64c [X0], [X1], X2, MASK |
0x8c00111b |
dav-c220-vec |
f322s64f |
[Xn], [Xn], Xn, MASK |
VCONV.f322s64f [X0], [X1], X2, MASK |
0x8c00111a |
dav-c220-vec |
f322s64r |
[Xn], [Xn], Xn, MASK |
VCONV.f322s64r [X0], [X1], X2, MASK |
0x8c001118 |
dav-c220-vec |
f322s64z |
[Xn], [Xn], Xn, MASK |
VCONV.f322s64z [X0], [X1], X2, MASK |
0x8c00111c |
dav-c220-vec |
s162f16 |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16 [X0], [X1], X2, MASK |
0x8d401108 |
dav-c220-vec |
s162f16a |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16a [X0], [X1], X2, MASK |
0x8d401109 |
dav-c220-vec |
s162f16c |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16c [X0], [X1], X2, MASK |
0x8d40110b |
dav-c220-vec |
s162f16f |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16f [X0], [X1], X2, MASK |
0x8d40110a |
dav-c220-vec |
s162f16r |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16r [X0], [X1], X2, MASK |
0x8d401108 |
dav-c220-vec |
s162f16z |
[Xn], [Xn], Xn, MASK |
VCONV.s162f16z [X0], [X1], X2, MASK |
0x8d40110c |
dav-c220-vec |
s162f32 |
[Xn], [Xn], Xn, MASK |
VCONV.s162f32 [X0], [X1], X2, MASK |
0x8d401100 |
dav-c220-vec |
s322f32 |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32 [X0], [X1], X2, MASK |
0x8d001100 |
dav-c220-vec |
s322f32a |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32a [X0], [X1], X2, MASK |
0x8d001101 |
dav-c220-vec |
s322f32c |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32c [X0], [X1], X2, MASK |
0x8d001103 |
dav-c220-vec |
s322f32f |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32f [X0], [X1], X2, MASK |
0x8d001102 |
dav-c220-vec |
s322f32r |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32r [X0], [X1], X2, MASK |
0x8d001100 |
dav-c220-vec |
s322f32z |
[Xn], [Xn], Xn, MASK |
VCONV.s322f32z [X0], [X1], X2, MASK |
0x8d001104 |
dav-c220-vec |
s322s16 |
[Xn], [Xn], Xn, MASK |
VCONV.s322s16 [X0], [X1], X2, MASK |
0x8d001128 |
dav-c220-vec |
s322s64 |
[Xn], [Xn], Xn, MASK |
VCONV.s322s64 [X0], [X1], X2, MASK |
0x8d001118 |
dav-c220-vec |
s42f16 |
[Xn], [Xn], Xn, MASK |
VCONV.s42f16 [X0], [X1], X2, MASK |
0x8dc01157 |
dav-c220-vec |
s642f32a |
[Xn], [Xn], Xn, MASK |
VCONV.s642f32a [X0], [X1], X2, MASK |
0x8cc01101 |
dav-c220-vec |
s642f32c |
[Xn], [Xn], Xn, MASK |
VCONV.s642f32c [X0], [X1], X2, MASK |
0x8cc01103 |
dav-c220-vec |
s642f32f |
[Xn], [Xn], Xn, MASK |
VCONV.s642f32f [X0], [X1], X2, MASK |
0x8cc01102 |
dav-c220-vec |
s642f32r |
[Xn], [Xn], Xn, MASK |
VCONV.s642f32r [X0], [X1], X2, MASK |
0x8cc01100 |
dav-c220-vec |
s642f32z |
[Xn], [Xn], Xn, MASK |
VCONV.s642f32z [X0], [X1], X2, MASK |
0x8cc01104 |
dav-c220-vec |
s642s32 |
[Xn], [Xn], Xn, MASK |
VCONV.s642s32 [X0], [X1], X2, MASK |
0x8cc01120 |
dav-c220-vec |
s82f16 |
[Xn], [Xn], Xn, MASK |
VCONV.s82f16 [X0], [X1], X2, MASK |
0x8d801108 |
dav-c220-vec |
u82f16 |
[Xn], [Xn], Xn, MASK |
VCONV.u82f16 [X0], [X1], X2, MASK |
0x8dc01108 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按转换模式、repeat、block 和源/目标粒度展开:32/64/128/5/9/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 189 — VADD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 加法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000010.......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000010(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000003) == 0x84000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VADD.f16 [X0], [X1], [X2], X3, MASK |
0x8540110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VADD.f32 [X0], [X1], [X2], X3, MASK |
0x85c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VADD.s16 [X0], [X1], [X2], X3, MASK |
0x8580110c |
dav-c220-vec |
s32 |
[Xn], [Xn], [Xn], Xn, MASK |
VADD.s32 [X0], [X1], [X2], X3, MASK |
0x8500110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 190 — VSUB¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 减法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000010.......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000010(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000003) == 0x84000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUB.f16 [X0], [X1], [X2], X3, MASK |
0x8540110d |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUB.f32 [X0], [X1], [X2], X3, MASK |
0x85c0110d |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUB.s16 [X0], [X1], [X2], X3, MASK |
0x8580110d |
dav-c220-vec |
s32 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUB.s32 [X0], [X1], [X2], X3, MASK |
0x8500110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 191 — VMAX¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 最大值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000011.......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000011(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000003) == 0x86000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMAX.f16 [X0], [X1], [X2], X3, MASK |
0x8740110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMAX.f32 [X0], [X1], [X2], X3, MASK |
0x87c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMAX.s16 [X0], [X1], [X2], X3, MASK |
0x8780110c |
dav-c220-vec |
s32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMAX.s32 [X0], [X1], [X2], X3, MASK |
0x8700110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 192 — VMIN¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 最小值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000011.......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000011(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000003) == 0x86000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMIN.f16 [X0], [X1], [X2], X3, MASK |
0x8740110d |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMIN.f32 [X0], [X1], [X2], X3, MASK |
0x87c0110d |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMIN.s16 [X0], [X1], [X2], X3, MASK |
0x8780110d |
dav-c220-vec |
s32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMIN.s32 [X0], [X1], [X2], X3, MASK |
0x8700110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 193 — VMUL¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 乘法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000100.......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000100(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000003) == 0x88000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMUL.f16 [X0], [X1], [X2], X3, MASK |
0x8940110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMUL.f32 [X0], [X1], [X2], X3, MASK |
0x89c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMUL.s16 [X0], [X1], [X2], X3, MASK |
0x8980110c |
dav-c220-vec |
s32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMUL.s32 [X0], [X1], [X2], X3, MASK |
0x8900110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/8/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 194 — VMLA¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 乘加/累加。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000100.......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000100(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000003) == 0x88000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMLA.f16 [X0], [X1], [X2], X3, MASK |
0x8940110d |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMLA.f32 [X0], [X1], [X2], X3, MASK |
0x89c0110d |
dav-c220-vec |
fmix |
[Xn], [Xn], [Xn], Xn, MASK |
VMLA.fmix [X0], [X1], [X2], X3, MASK |
0x8980110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 及三源有效性展开;部分操作将写回相位设为 2:64/128/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 195 — VDIV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 除法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10001011........................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10001011(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=subop - 解码条件:
(word & 0xff000000) == 0x8b000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VDIV.f16 [X0], [X1], [X2], X3, MASK |
0x8b40110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VDIV.f32 [X0], [X1], [X2], X3, MASK |
0x8bc0110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:32/14/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 196 — VADDRELUCONV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CONV |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个源 UB 地址;Xs=配置;MASK=有效 lane;conversion_mode=融合转换模式 |
| 作用 | 向量加法、ReLU 与类型转换融合。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10001010......................0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10001010(fixed); [23:22]=conversion class; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1]=0(fixed); [0]=conversion_mode - 解码条件:
(word & 0xff000002) == 0x8a000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f162s8 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VADDRELUCONV.f162s8 [X0], [X1], [X2], X3, MASK, #0 |
0x8a40110c |
dav-c220-vec |
f322f16 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VADDRELUCONV.f322f16 [X0], [X1], [X2], X3, MASK, #0 |
0x8a80110c |
dav-c220-vec |
s162s8 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VADDRELUCONV.s162s8 [X0], [X1], [X2], X3, MASK, #0 |
0x8a00110c |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
conversion_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 融合转换/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/9/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 197 — VSUBRELUCONV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CONV |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个源 UB 地址;Xs=配置;MASK=有效 lane;conversion_mode=融合转换模式 |
| 作用 | 向量减法、ReLU 与类型转换融合。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10001010......................1.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10001010(fixed); [23:22]=conversion class; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1]=1(fixed); [0]=conversion_mode - 解码条件:
(word & 0xff000002) == 0x8a000002。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f162s8 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VSUBRELUCONV.f162s8 [X0], [X1], [X2], X3, MASK, #0 |
0x8a40110e |
dav-c220-vec |
f322f16 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VSUBRELUCONV.f322f16 [X0], [X1], [X2], X3, MASK, #0 |
0x8a80110e |
dav-c220-vec |
s162s8 |
[Xn], [Xn], [Xn], Xn, MASK, #imm |
VSUBRELUCONV.s162s8 [X0], [X1], [X2], X3, MASK, #0 |
0x8a00110e |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
conversion_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 融合转换/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/9/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 198 — VMADD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 乘加。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010011......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010011(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x93000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMADD.f16 [X0], [X1], [X2], X3, MASK |
0x9340110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMADD.f32 [X0], [X1], [X2], X3, MASK |
0x93c0110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 及三源有效性展开;部分操作将写回相位设为 2:64/128/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 199 — VMADDRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 乘加并执行 ReLU。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001001.......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000003) == 0x92000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VMADDRELU.f16 [X0], [X1], [X2], X3, MASK |
0x9340110d |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VMADDRELU.f32 [X0], [X1], [X2], X3, MASK |
0x93c0110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 及三源有效性展开;部分操作将写回相位设为 2:64/128/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 200 — VMAXS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 向量与标量逐 lane 取最大值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010110......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010110(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x96000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VMAXS.f16 [X0], [X1], X2, X3, MASK |
0x9640110c |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VMAXS.f32 [X0], [X1], X2, X3, MASK |
0x96c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], Xn, Xn, MASK |
VMAXS.s16 [X0], [X1], X2, X3, MASK |
0x9680110c |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, Xn, MASK |
VMAXS.s32 [X0], [X1], X2, X3, MASK |
0x9600110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 201 — VMINS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 向量与标量逐 lane 取最小值。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010110......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010110(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xff000003) == 0x96000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VMINS.f16 [X0], [X1], X2, X3, MASK |
0x9640110d |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VMINS.f32 [X0], [X1], X2, X3, MASK |
0x96c0110d |
dav-c220-vec |
s16 |
[Xn], [Xn], Xn, Xn, MASK |
VMINS.s16 [X0], [X1], X2, X3, MASK |
0x9680110d |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, Xn, MASK |
VMINS.s32 [X0], [X1], X2, X3, MASK |
0x9600110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 202 — VSHR¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 逐 lane 右移。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10011011......................0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10011011(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1]=0(fixed); [0]=shift_mode - 解码条件:
(word & 0xff000002) == 0x9b000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
s16 |
[Xn], [Xn], Xn, Xn, MASK, #imm |
VSHR.s16 [X0], [X1], X2, X3, MASK, #0 |
0x9b40110c |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, Xn, MASK, #imm |
VSHR.s32 [X0], [X1], X2, X3, MASK, #0 |
0x9bc0110c |
dav-c220-vec |
u16 |
[Xn], [Xn], Xn, Xn, MASK, #imm |
VSHR.u16 [X0], [X1], X2, X3, MASK, #0 |
0x9b00110c |
dav-c220-vec |
u32 |
[Xn], [Xn], Xn, Xn, MASK, #imm |
VSHR.u32 [X0], [X1], X2, X3, MASK, #0 |
0x9b80110c |
汇编器级最小示例:
立即数规则¶
| 操作数 | 范围 | 位宽/扩展 | 缩放/对齐 | 解释 |
|---|---|---|---|---|
shift_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 移位/控制模式 |
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 203 — VSHL¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 逐 lane 左移。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
100111001.....................11(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:23]=100111001(fixed); [22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1:0]=11(fixed) - 解码条件:
(word & 0xff800003) == 0x9c800003。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], Xn, Xn, MASK |
VSHL.b16 [X0], [X1], X2, X3, MASK |
0x9c80110f |
dav-c220-vec |
b32 |
[Xn], [Xn], Xn, Xn, MASK |
VSHL.b32 [X0], [X1], X2, X3, MASK |
0x9cc0110f |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 204 — VLRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-UNARY |
| 参数角色 | Xd=目标 UB 地址;Xn=源 UB 地址;Xm=标量斜率;Xs=配置;MASK=有效 lane |
| 作用 | 逐 lane Leaky ReLU。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010010......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010010(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=scalar slope; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x92000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VLRELU.f16 [X0], [X1], X2, X3, MASK |
0x9240110c |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VLRELU.f32 [X0], [X1], X2, X3, MASK |
0x92c0110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/8/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 205 — VADDRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 加法并执行 ReLU。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010100......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010100(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x94000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VADDRELU.f16 [X0], [X1], [X2], X3, MASK |
0x9440110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VADDRELU.f32 [X0], [X1], [X2], X3, MASK |
0x94c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VADDRELU.s16 [X0], [X1], [X2], X3, MASK |
0x9480110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 206 — VSUBRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 减法并执行 ReLU。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010100......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010100(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xff000003) == 0x94000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUBRELU.f16 [X0], [X1], [X2], X3, MASK |
0x9440110d |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUBRELU.f32 [X0], [X1], [X2], X3, MASK |
0x94c0110d |
dav-c220-vec |
s16 |
[Xn], [Xn], [Xn], Xn, MASK |
VSUBRELU.s16 [X0], [X1], [X2], X3, MASK |
0x9480110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 207 — VCMPVS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CMP |
| 参数角色 | Xd=目标 UB 地址;Xn=向量源;Xm=标量源;Xs=配置 |
| 作用 | 向量与标量比较并产生选择/比较掩码。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
100110........................1.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:26]=100110(fixed); [25]=vector op1; [24:22]=dtype; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1]=1(fixed); [0]=condition/subop - 解码条件:
(word & 0xfc000002) == 0x98000002。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
EQ.f16 |
[Xn], [Xn], Xn, Xn |
VCMPVS.EQ.f16 [X0], [X1], X2, X3 |
0x9a00110e |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 208 — VGATHERB¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 按字节/块索引聚集。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...................011(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:3]=Xs; [2:0]=011(fixed) - 解码条件:
(word & 0xffc00007) == 0x80000003。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按字节/块索引组与 repeat 展开:128/2/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 209 — VBRCB¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | Xd=目标 UB 地址;Xn=源 UB 地址;Xs=广播配置 |
| 作用 | 向量按块广播。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000000000...............100.100(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1000000000(fixed); [21:17]=dst; [16:12]=src; [11:7]=Xs; [6:4]=100(fixed); [3]=broadcast control; [2:0]=100(fixed) - 解码条件:
(word & 0xffc00077) == 0x80000044。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], Xn |
VBRCB.b16 [X0], [X1], X2 |
0x80001144 |
dav-c220-vec |
b32 |
[Xn], [Xn], Xn |
VBRCB.b32 [X0], [X1], X2 |
0x8000114c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按广播块与 repeat 展开:64/128/2/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 210 — VREDUCE¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个源 UB 地址;Xs=归约配置;MASK=有效 lane |
| 作用 | 向量归约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
100111010.....................11(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:23]=100111010(fixed); [22]=dtype; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=11(fixed) - 解码条件:
(word & 0xff800003) == 0x9d000003。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], [Xn], Xn, MASK |
VREDUCE.b16 [X0], [X1], [X2], X3, MASK |
0x9d00110f |
dav-c220-vec |
b32 |
[Xn], [Xn], [Xn], Xn, MASK |
VREDUCE.b32 [X0], [X1], [X2], X3, MASK |
0x9d40110f |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按归约块、repeat 与末块宽度展开:32/64/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 211 — VREDUCEV2¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-REDUCE |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个源 UB 地址;Xs=归约配置;MASK=有效 lane |
| 作用 | 第二版向量归约。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001110.......................10(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001110(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=10(fixed) - 解码条件:
(word & 0xfe000003) == 0x9c000002。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], [Xn], Xn, MASK |
VREDUCEV2.b16 [X0], [X1], [X2], X3, MASK |
0x9d00110e |
dav-c220-vec |
b32 |
[Xn], [Xn], [Xn], Xn, MASK |
VREDUCEV2.b32 [X0], [X1], [X2], X3, MASK |
0x9d40110e |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按归约块、repeat 与末块宽度展开:32/64/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 212 — VAXPY¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 执行 A*X+Y 形式的逐 lane 运算。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010101......................0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010101(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xff000002) == 0x95000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VAXPY.f16 [X0], [X1], X2, X3, MASK |
0x9540110c |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VAXPY.f32 [X0], [X1], X2, X3, MASK |
0x95c0110c |
dav-c220-vec |
fmix |
[Xn], [Xn], Xn, Xn, MASK |
VAXPY.fmix [X0], [X1], X2, X3, MASK |
0x9580110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 及三源有效性展开;部分操作将写回相位设为 2:64/128/11/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 213 — VADDS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 向量与标量逐 lane 加法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010111......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010111(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x97000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VADDS.f16 [X0], [X1], X2, X3, MASK |
0x9740110c |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VADDS.f32 [X0], [X1], X2, X3, MASK |
0x97c0110c |
dav-c220-vec |
s16 |
[Xn], [Xn], Xn, Xn, MASK |
VADDS.s16 [X0], [X1], X2, X3, MASK |
0x9780110c |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, Xn, MASK |
VADDS.s32 [X0], [X1], X2, X3, MASK |
0x9700110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/7/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 214 — VMULS¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-SCALAR |
| 参数角色 | dst/vector=UB 地址;scalar=X 源;Xs=配置;MASK=有效 lane |
| 作用 | 向量与标量逐 lane 乘法。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10010111......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10010111(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=vector src; [11:7]=scalar src; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xff000003) == 0x97000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], Xn, Xn, MASK |
VMULS.f16 [X0], [X1], X2, X3, MASK |
0x9740110d |
dav-c220-vec |
f32 |
[Xn], [Xn], Xn, Xn, MASK |
VMULS.f32 [X0], [X1], X2, X3, MASK |
0x97c0110d |
dav-c220-vec |
s16 |
[Xn], [Xn], Xn, Xn, MASK |
VMULS.s16 [X0], [X1], X2, X3, MASK |
0x9780110d |
dav-c220-vec |
s32 |
[Xn], [Xn], Xn, Xn, MASK |
VMULS.s32 [X0], [X1], X2, X3, MASK |
0x9700110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/6/8/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 215 — VCMP¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CMP |
| 参数角色 | CMPMASK=隐式目标;Xn/Xm=两个向量源;Xs=配置;MASK=有效 lane |
| 作用 | 比较向量元素并更新比较掩码。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001100.......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001100(fixed); [24:22]=dtype; [21:17]=compare control/CMPMASK; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000003) == 0x98000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 1 | X1 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
EQ.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.EQ.f16 CMPMASK, [X0], [X1], X2, MASK |
0x99400088 |
dav-c220-vec |
EQ.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.EQ.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99c00088 |
dav-c220-vec |
GE.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.GE.f16 CMPMASK, [X0], [X1], X2, MASK |
0x99480088 |
dav-c220-vec |
GE.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.GE.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99c80088 |
dav-c220-vec |
GT.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.GT.f16 CMPMASK, [X0], [X1], X2, MASK |
0x99460088 |
dav-c220-vec |
GT.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.GT.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99c60088 |
dav-c220-vec |
LE.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.LE.f16 CMPMASK, [X0], [X1], X2, MASK |
0x994a0088 |
dav-c220-vec |
LE.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.LE.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99ca0088 |
dav-c220-vec |
LT.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.LT.f16 CMPMASK, [X0], [X1], X2, MASK |
0x99440088 |
dav-c220-vec |
LT.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.LT.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99c40088 |
dav-c220-vec |
NE.f16 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.NE.f16 CMPMASK, [X0], [X1], X2, MASK |
0x99420088 |
dav-c220-vec |
NE.f32 |
CMPMASK, [Xn], [Xn], Xn, MASK |
VCMP.NE.f32 CMPMASK, [X0], [X1], X2, MASK |
0x99c20088 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 216 — VCMPV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CMP |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个向量源;Xs=配置 |
| 作用 | 向量比较并将结果写为向量/掩码。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001100.........................(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001100(fixed); [24:22]=dtype; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=condition/subop - 解码条件:
(word & 0xfe000000) == 0x98000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
EQ.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.EQ.f16 [X0], [X1], [X2], X3 |
0x9800110d |
dav-c220-vec |
EQ.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.EQ.f32 [X0], [X1], [X2], X3 |
0x9800110f |
dav-c220-vec |
GE.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.GE.f16 [X0], [X1], [X2], X3 |
0x9900110d |
dav-c220-vec |
GE.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.GE.f32 [X0], [X1], [X2], X3 |
0x9900110f |
dav-c220-vec |
GT.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.GT.f16 [X0], [X1], [X2], X3 |
0x98c0110d |
dav-c220-vec |
GT.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.GT.f32 [X0], [X1], [X2], X3 |
0x98c0110f |
dav-c220-vec |
LE.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.LE.f16 [X0], [X1], [X2], X3 |
0x9940110d |
dav-c220-vec |
LE.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.LE.f32 [X0], [X1], [X2], X3 |
0x9940110f |
dav-c220-vec |
LT.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.LT.f16 [X0], [X1], [X2], X3 |
0x9880110d |
dav-c220-vec |
LT.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.LT.f32 [X0], [X1], [X2], X3 |
0x9880110f |
dav-c220-vec |
NE.f16 |
[Xn], [Xn], [Xn], Xn |
VCMPV.NE.f16 [X0], [X1], [X2], X3 |
0x9840110d |
dav-c220-vec |
NE.f32 |
[Xn], [Xn], [Xn], Xn |
VCMPV.NE.f32 [X0], [X1], [X2], X3 |
0x9840110f |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat/block 生成特殊写回 uop,归约/比较结果可改变末 uop 标记:64/128/5/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 217 — VOR¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 按位或。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10011010......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10011010(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xff000003) == 0x9a000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], [Xn], Xn, MASK |
VOR.b16 [X0], [X1], [X2], X3, MASK |
0x9a40110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 218 — VAND¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 逐 lane 按位与。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
10011010......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:24]=10011010(fixed); [23:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xff000003) == 0x9a000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], [Xn], Xn, MASK |
VAND.b16 [X0], [X1], [X2], X3, MASK |
0x9a40110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 219 — VSEL¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 按 MASK/CMPMASK 逐 lane 选择。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001110.......................00(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001110(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=00(fixed) - 解码条件:
(word & 0xfe000003) == 0x9c000000。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f16 |
[Xn], [Xn], [Xn], Xn, MASK |
VSEL.f16 [X0], [X1], [X2], X3, MASK |
0x9d40110c |
dav-c220-vec |
f32 |
[Xn], [Xn], [Xn], Xn, MASK |
VSEL.f32 [X0], [X1], [X2], X3, MASK |
0x9dc0110c |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按选择掩码、repeat、block 与三源模式展开:64/128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 223 — VMOVMASK_XD¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 把向量比较掩码移动到标量寄存器。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1001111.......................10(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001111(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:2]=Xs; [1:0]=10(fixed) - 解码条件:
(word & 0xfe000003) == 0x9e000002。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 只生成写侧/控制 uop;数量由目标块决定:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 224 — VMOVMASK_XN¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | UB/VA/索引操作数按具体形式;Xs=配置;MASK=有效 lane |
| 作用 | 从标量寄存器恢复/设置向量比较掩码。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1001111.......................11(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001111(fixed); [24:22]=dtype/op2; [21:17]=dst/VA; [16:12]=src/VA; [11:7]=index/src; [6:2]=Xs; [1:0]=11(fixed) - 解码条件:
(word & 0xfe000003) == 0x9e000003。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 只生成读侧/控制 uop;数量由 repeat/block 与有效源决定:128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 225 — VMULCONV¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-CONV |
| 参数角色 | Xd=目标 UB 地址;Xn/Xm=两个源 UB 地址;Xs=配置;MASK=有效 lane;后缀指定融合转换 |
| 作用 | 向量乘法与类型转换融合。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1001111.......................01(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1001111(fixed); [24:22]=conversion class; [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=01(fixed) - 解码条件:
(word & 0xfe000003) == 0x9e000001。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x00000f80 |
7,8,9,10,11 |
r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11] |
| 3 | X3 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
f162s8 |
[Xn], [Xn], [Xn], Xn, MASK |
VMULCONV.f162s8 [X0], [X1], [X2], X3, MASK |
0x9e40110d |
dav-c220-vec |
f162u8 |
[Xn], [Xn], [Xn], Xn, MASK |
VMULCONV.f162u8 [X0], [X1], [X2], X3, MASK |
0x9e80110d |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:128/10/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 226 — VADDDEQRELU¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-BINARY |
| 参数角色 | dst/src0/src1=UB 地址;Xs=repeat/stride;MASK=有效 lane |
| 作用 | 向量加法、反量化与 ReLU 融合。 |
| 文本语法状态 | 仅机器格式;无 c220 公共语法 |
32 位编码布局¶
- 位 31→0 模式:
1001111011....................11(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:22]=1001111011(fixed); [21:17]=dst; [16:12]=src0; [11:7]=src1; [6:2]=Xs; [1:0]=11(fixed) - 解码条件:
(word & 0xffc00003) == 0x9ec00003。
公共文本形式¶
当前 c220 后端没有接受该目录项的完整文本形式。OP、<dtype>、<mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/10/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。
ID 227 — VCOPY¶
| 项目 | 内容 |
|---|---|
| 指令域/执行位置 | vector / Vector(pipe 1) |
| 格式类 | V-MOVE |
| 参数角色 | Xd=目标 UB 地址;Xn=源 UB 地址;Xs=复制配置;MASK=有效 lane |
| 作用 | 按向量地址/步长描述复制。 |
| 文本语法状态 | c220 汇编器接受 |
32 位编码布局¶
- 位 31→0 模式:
1000001.............01110.....0.(0/1为固定值,.为该解码项的可变位)。 - 完整分段:
[31:25]=1000001(fixed); [24:22]=dtype/op2; [21:17]=dst; [16:12]=src; [11:7]=01110(fixed); [6:2]=Xs; [1]=0(fixed); [0]=subop - 解码条件:
(word & 0xfe000f82) == 0x82000700。
X 寄存器操作数位域¶
下表通过逐个改变该 X 操作数的 5 个编号位得到;word bits 是机器字中的精确承载位。
| 操作数序号 | 样例 token | 编码掩码 | word bits | 输入位→机器位 |
|---|---|---|---|---|
| 0 | X0 |
0x003e0000 |
17,18,19,20,21 |
r0->word[17]; r1->word[18]; r2->word[19]; r3->word[20]; r4->word[21] |
| 1 | X1 |
0x0001f000 |
12,13,14,15,16 |
r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16] |
| 2 | X2 |
0x0000007c |
2,3,4,5,6 |
r0->word[2]; r1->word[3]; r2->word[4]; r3->word[5]; r4->word[6] |
c220 接受的后缀与操作数组合¶
| CPU | 后缀 | 操作数形状 | 可复制语法 | 编码 |
|---|---|---|---|---|
dav-c220-vec |
b16 |
[Xn], [Xn], Xn, MASK |
VCOPY.b16 [X0], [X1], X2, MASK |
0x82401708 |
dav-c220-vec |
b32 |
[Xn], [Xn], Xn, MASK |
VCOPY.b32 [X0], [X1], X2, MASK |
0x82801708 |
汇编器级最小示例:
周期与冲突¶
| 项目 | 架构周期模型 |
|---|---|
| 路径 | CCU Vector issue→Vector IBUF/uop→UB 读→Vector EXEU→UB/特殊目标写回→retire delay→退休 |
| 延迟/公式 | \(T=\max_{i}\!\left(t_{\mathrm{issue},i}+L_{\mathrm{rd},i}+L_{\mathrm{ex},i}+L_{\mathrm{wr,actual},i}\right)-t_{\mathrm{dispatch}}+1\) uop 可重叠,不能简单求和 |
| 发射间隔 | IBUF/EXEU/UB 端口空闲时每拍推进;同 op 相关、bank 和前序写回可限流 |
| uop 展开 | 按 repeat、block、mask、地址步长和跨 bank 拆分;空结果仍补 1 个占位 uop:64/128/1/1(base);最终由 UB 写回仲裁重算 |
| 退休 | 带末 uop 标记的 uop 完成写回;无目标路径在控制完成点退休 |
| 动态停顿 | IBUF 深度、RAW/WAW/mask hazard、UB bank/port、前序同 op 最小间隔、写回队列 |
这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义、MASK/VA 与访存和配置字。