跳转至

Scalar 指令

每个条目给出完整 32 位固定/可变布局、c220 后端实际接受的文本形式、立即数约束和架构周期模型。 没有“c220 汇编器接受”标记的条目不能把目录占位符直接复制进源码。

目录速览

ID 解码名 助记符 格式 作用 状态
0 ADD ADD S-RRR 标量加法。 c220 汇编器接受
1 SUB SUB S-RRR 标量减法。 c220 汇编器接受
2 MUL MUL S-RRR 标量乘法。 c220 汇编器接受
3 MADD MADD S-RRR 标量乘加;累加源和目标绑定由具体格式与后缀定义。 c220 汇编器接受
4 DIV DIV S-RRR 标量除法。 c220 汇编器接受
5 REM REM S-RRR 标量余数。 c220 汇编器接受
6 MAX MAX S-RRR 选择两个标量中的较大值。 c220 汇编器接受
7 MIN MIN S-RRR 选择两个标量中的较小值。 c220 汇编器接受
8 SEL SEL S-RRR 按隐式条件状态在两个标量源之间选择。 c220 汇编器接受
9 AND AND S-RRR 逐位与。 c220 汇编器接受
10 OR OR S-RRR 逐位或。 c220 汇编器接受
11 XOR XOR S-RRR 逐位异或。 c220 汇编器接受
12 CMP CMP S-CMP-RR 比较两个标量并更新条件状态。 c220 汇编器接受
13 CMPN CMPN S-CMP-RR 执行带否定或反向条件的标量比较,谓词方向由 cond 编码选择。 仅机器格式;无 c220 公共语法
14 LD_XD_XN LD S-LDST-R 从所示地址空间加载到标量寄存器。 c220 汇编器接受
15 ST_XD_XN ST S-LDST-R 把标量寄存器写入所示地址空间。 c220 汇编器接受
16 LD_DDR LD_DDR S-LDST-R 从所示地址空间加载到标量寄存器。 c220 汇编器接受
17 ST_DDR ST_DDR S-LDST-R 把标量寄存器写入所示地址空间。 c220 汇编器接受
18 DC_PRELOAD_XN_XM DC_PRELOAD S-LDST-R 按基址和寄存器偏移发出数据缓存预加载提示。 c220 汇编器接受
19 LD4_XD_XN LD4 S-LDST-R 四路/四单元加载;寄存器偏移和步长由该格式的控制字段指定。 仅机器格式;无 c220 公共语法
20 ST4_XD_XN ST4 S-LDST-R 四路/四单元存储;寄存器偏移和步长由该格式的控制字段指定。 仅机器格式;无 c220 公共语法
21 SQRT SQRT S-RR 标量平方根。 c220 汇编器接受
22 NEG NEG S-RR 标量取负。 c220 汇编器接受
23 ABS ABS S-RR 标量绝对值。 c220 汇编器接受
24 NOT NOT S-RR 逐位取反。 c220 汇编器接受
25 SHL SHL S-RR 标量逻辑左移。 仅机器格式;无 c220 公共语法
26 SHR SHR S-RR 标量右移;有符号后缀决定算术/逻辑扩展。 c220 汇编器接受
27 SBCNT SBCNT S-RR 对标量源执行置位计数类位操作。 c220 汇编器接受
28 SFF SFF S-RR 在标量源中查找首个置位位置。 c220 汇编器接受
29 SBITSET SBITSET S-RR 执行标量位设置操作。 c220 汇编器接受
30 CLZ CLZ S-RR 统计前导零。 c220 汇编器接受
31 SFLBITS SFLBITS S-RR 执行由该格式控制字段指定的标量位域或位重排操作。 c220 汇编器接受
32 CONV CONV S-RR 标量数据类型转换;后缀编码源/目标类型与舍入模式。 c220 汇编器接受
33 MOV_XD_XN MOV S-RR 移动或构造标量/控制值。 c220 汇编器接受
34 MOV_XD_SPR MOV S-SPR 移动或构造标量/控制值。 c220 汇编器接受
35 MOV_SPR_XN MOV S-SPR 移动或构造标量/控制值。 c220 汇编器接受
36 SIGNEXT SIGNEXT S-RR 符号扩展。 c220 汇编器接受
37 ZEROEXT ZEROEXT S-RR 零扩展。 c220 汇编器接受
38 INSERT_XD_XN INSERT S-BIT 把源寄存器位域插入目标寄存器。 c220 汇编器接受
39 INSERT_XD INSERT S-BIT 把立即数/位域插入目标寄存器。 c220 汇编器接受
40 LD_XD_XN_IMM LD S-LDST-I 从所示地址空间加载到标量寄存器。 c220 汇编器接受
41 ST_XD_XN_IMM ST S-LDST-I 把标量寄存器写入所示地址空间。 c220 汇编器接受
42 LD4_XD_XN_IMM LD4 S-LDST-I 四路/四单元加载;立即数和控制字段指定偏移与步长。 仅机器格式;无 c220 公共语法
43 ST4_XD_XN_IMM ST4 S-LDST-I 四路/四单元存储;立即数和控制字段指定偏移与步长。 仅机器格式;无 c220 公共语法
44 MOV_XD_IMM MOV S-RI 移动或构造标量/控制值。 c220 汇编器接受
45 MOVK MOVK S-RI 把立即数字段写入目标寄存器的指定半字位置。 c220 汇编器接受
46 ADD_IMM ADD S-RRI 标量加法的立即数形式。 c220 汇编器接受
47 MUL_IMM MUL S-RRI 标量乘法的立即数形式。 c220 汇编器接受
48 SUB_IMM SUB S-RRI 标量减法的立即数形式。 c220 汇编器接受
49 DC_PRELOAD_XN_IMM DC_PRELOAD S-LDST-I 按基址和立即数偏移发出数据缓存预加载提示。 c220 汇编器接受
50 CMP_IMM CMP S-CMP-RI 标量比较的立即数形式,并更新条件状态。 c220 汇编器接受
51 LDP_XI_XJ_XN LDP S-PAIR 成对加载两个标量寄存器。 c220 汇编器接受
52 STP_XI_XJ_XN STP S-PAIR 成对存储两个标量寄存器。 c220 汇编器接受
53 UNDEF53 R 内部/保留解码槽位,不定义公共语义。 保留/内部
54 UNDEF54 R 内部/保留解码槽位,不定义公共语义。 保留/内部
55 STI_XN_XM STI S-SPECIAL 使用寄存器索引执行专用存储。 仅机器格式;无 c220 公共语法
56 STI_XN_IMM STI S-SPECIAL 使用立即数索引执行专用存储。 仅机器格式;无 c220 公共语法
57 ST_ATOMIC_XN_XM ST_ATOMIC S-LDST-R 原子存储,控制量来自寄存器。 c220 汇编器接受
58 ST_ATOMIC_XN_IMM ST_ATOMIC S-LDST-I 原子存储,控制量来自立即数。 c220 汇编器接受
59 ST_DEV_XD_XN_IMM12 ST_DEV S-LDST-I 向设备地址空间存储。 c220 汇编器接受
60 LD_DEV_XD_XN_IMM12 LD_DEV S-LDST-I 从设备地址空间加载。 c220 汇编器接受
61 MOVX8_XD_IMM MOVX8 S-RI 构造/移动扩展的 8 位立即数字段。 c220 汇编器接受
62 MOV_SPR_IMM MOV S-SPR 把立即数写入特殊寄存器。 仅机器格式;无 c220 公共语法

逐指令说明

ID 0 — ADD

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量加法。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................00010/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0001(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000001

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-cube, dav-c220-vec f32 Xn, Xn, Xn ADD.f32 X0, X1, X2 0x00801101
dav-c220-cube, dav-c220-vec s64 Xn, Xn, Xn ADD.s64 X0, X1, X2 0x00001101

汇编器级最小示例:

.text
.a64
ADD.f32 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L_{\mathrm{f32}}=5,\quad L_{\mathrm{other}}=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/f32=5; 其他=1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 1 — SUB

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量减法。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................00100/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0010(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000002

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-cube, dav-c220-vec s64 Xn, Xn, Xn SUB.s64 X0, X1, X2 0x00001102

汇编器级最小示例:

.text
.a64
SUB.s64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L_{\mathrm{f32}}=5,\quad L_{\mathrm{other}}=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/f32=5; 其他=1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 2 — MUL

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量乘法。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................00110/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0011(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000003

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-cube, dav-c220-vec s64 Xn, Xn, Xn MUL.s64 X0, X1, X2 0x00001103

汇编器级最小示例:

.text
.a64
MUL.s64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L_{\mathrm{s64}}=2,\quad L_{\mathrm{f32}}=5,\quad L_{\mathrm{other}}=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/s64=2; f32=5; 其他=1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 3 — MADD

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量乘加;累加源和目标绑定由具体格式与后缀定义。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................01000/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0100(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000004

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-cube, dav-c220-vec s64 Xn, Xn, Xn MADD.s64 X0, X1, X2 0x00001104

汇编器级最小示例:

.text
.a64
MADD.s64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L_{\mathrm{s64}}=3,\quad L_{\mathrm{f32}}=5,\quad L_{\mathrm{other}}=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/s64=3; f32=5; 其他=1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 4 — DIV

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量除法。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................01010/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0101(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000005

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-cube, dav-c220-vec s64 Xn, Xn, Xn DIV.s64 X0, X1, X2 0x00001105
dav-c220-cube, dav-c220-vec u64 Xn, Xn, Xn DIV.u64 X0, X1, X2 0x00401105

汇编器级最小示例:

.text
.a64
DIV.s64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar 多周期 EX→可变延迟队列→notify/退休
延迟/公式 \(L_{\mathrm{f32}}=14,\quad L_{\mathrm{other}}=20\)
登记到可变延迟队列并 notify_after(L)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/f32=14; 其他=20/—
退休 多周期执行计时到期且目标写回/scoreboard 条件满足
动态停顿 I1 slot、源 RAW、目标 WAW、同类多周期执行冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 5 — REM

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 标量余数。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................01100/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0110(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000006

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-cube, dav-c220-vec s64 Xn, Xn, Xn REM.s64 X0, X1, X2 0x00001106
dav-c220-cube, dav-c220-vec u64 Xn, Xn, Xn REM.u64 X0, X1, X2 0x00401106

汇编器级最小示例:

.text
.a64
REM.s64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar 多周期 EX→可变延迟队列→notify/退休
延迟/公式 \(L_{\mathrm{f32}}=14,\quad L_{\mathrm{other}}=20\)
登记到可变延迟队列并 notify_after(L)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/f32=14; 其他=20/—
退休 多周期执行计时到期且目标写回/scoreboard 条件满足
动态停顿 I1 slot、源 RAW、目标 WAW、同类多周期执行冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 6 — MAX

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 选择两个标量中的较大值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................01110/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=0111(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000007

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-cube, dav-c220-vec f32 Xn, Xn, Xn MAX.f32 X0, X1, X2 0x00801107
dav-c220-cube, dav-c220-vec s64 Xn, Xn, Xn MAX.s64 X0, X1, X2 0x00001107

汇编器级最小示例:

.text
.a64
MAX.f32 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 7 — MIN

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 选择两个标量中的较小值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................10000/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=1000(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000008

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-cube, dav-c220-vec f32 Xn, Xn, Xn MIN.f32 X0, X1, X2 0x00801108
dav-c220-cube, dav-c220-vec s64 Xn, Xn, Xn MIN.s64 X0, X1, X2 0x00001108

汇编器级最小示例:

.text
.a64
MIN.f32 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 8 — SEL

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 按隐式条件状态在两个标量源之间选择。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................10010/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=1001(fixed)
  • 解码条件:(word & 0xff00000f) == 0x00000009

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-cube, dav-c220-vec b64 Xn, Xn, Xn SEL.b64 X0, X1, X2 0x00c01109

汇编器级最小示例:

.text
.a64
SEL.b64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 9 — AND

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 逐位与。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................10100/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=1010(fixed)
  • 解码条件:(word & 0xff00000f) == 0x0000000a

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-cube, dav-c220-vec b64 Xn, Xn, Xn AND.b64 X0, X1, X2 0x00c0110a

汇编器级最小示例:

.text
.a64
AND.b64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 10 — OR

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 逐位或。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................10110/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=1011(fixed)
  • 解码条件:(word & 0xff00000f) == 0x0000000b

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-cube, dav-c220-vec b64 Xn, Xn, Xn OR.b64 X0, X1, X2 0x00c0110b

汇编器级最小示例:

.text
.a64
OR.b64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 11 — XOR

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRR
参数角色 Xd=目标;Xn/Xm=源;dtype=标量解释方式
作用 逐位异或。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................11000/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=Xd; [16:12]=Xn; [11:7]=Xm; [6:4]=subop/control; [3:0]=1100(fixed)
  • 解码条件:(word & 0xff00000f) == 0x0000000c

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-cube, dav-c220-vec b64 Xn, Xn, Xn XOR.b64 X0, X1, X2 0x00c0110c

汇编器级最小示例:

.text
.a64
XOR.b64 X0, X1, X2

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 12 — CMP

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-CMP-RR
参数角色 Xn/Xm=比较源;cond=谓词;结果写入标量条件状态
作用 比较两个标量并更新条件状态。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000000....................11100/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=compare control; [16:12]=Xn; [11:7]=Xm; [6:4]=condition; [3:0]=1110(fixed)
  • 解码条件:(word & 0xff00000f) == 0x0000000e

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec EQ.s64 Xn, Xn CMP.EQ.s64 X0, X1 0x0000008e

汇编器级最小示例:

.text
.a64
CMP.EQ.s64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 13 — CMPN

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-CMP-RR
参数角色 Xn/Xm=比较源;cond=谓词;结果写入标量条件状态
作用 执行带否定或反向条件的标量比较,谓词方向由 cond 编码选择。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000000....................11110/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000000(fixed); [23:22]=dtype; [21:17]=compare control; [16:12]=Xn; [11:7]=Xm; [6:4]=condition; [3:0]=1111(fixed)
  • 解码条件:(word & 0xff00000f) == 0x0000000f

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 14 — LD(LD_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 从所示地址空间加载到标量寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................000....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=000(fixed); [3]=address_mode; [2:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000000

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-cube, dav-c220-vec b64 Xn, [Xn], Xn LD.b64 X0, [X1], X2 0x01c01100
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], Xn, #imm LD.b64 X0, [X1], X2, #0 0x01c01100
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], Xn LD.b8 X0, [X1], X2 0x01001100
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], Xn, #imm LD.b8 X0, [X1], X2, #0 0x01001100

汇编器级最小示例:

.text
.a64
LD.b64 X0, [X1], X2

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 15 — ST(ST_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 把标量寄存器写入所示地址空间。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................010....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=010(fixed); [3]=address_mode; [2:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000020

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-cube, dav-c220-vec b64 Xn, [Xn], Xn ST.b64 X0, [X1], X2 0x01c01120
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], Xn, #imm ST.b64 X0, [X1], X2, #0 0x01c01120
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], Xn ST.b8 X0, [X1], X2 0x01001120
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], Xn, #imm ST.b8 X0, [X1], X2, #0 0x01001120

汇编器级最小示例:

.text
.a64
ST.b64 X0, [X1], X2

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 16 — LD_DDR

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 从所示地址空间加载到标量寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................001....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=001(fixed); [3]=address_mode; [2:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000010

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-cube, dav-c220-vec b16 Xn, [Xn], Xn LD_DDR.b16 X0, [X1], X2 0x01401110
dav-c220-cube, dav-c220-vec b16 Xn, [Xn], Xn, #imm LD_DDR.b16 X0, [X1], X2, #0 0x01401110

汇编器级最小示例:

.text
.a64
LD_DDR.b16 X0, [X1], X2

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 17 — ST_DDR

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 把标量寄存器写入所示地址空间。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................011....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=011(fixed); [3]=address_mode; [2:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000030

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-cube, dav-c220-vec b16 Xn, [Xn], Xn ST_DDR.b16 X0, [X1], X2 0x01401130
dav-c220-cube, dav-c220-vec b16 Xn, [Xn], Xn, #imm ST_DDR.b16 X0, [X1], X2, #0 0x01401130

汇编器级最小示例:

.text
.a64
ST_DDR.b16 X0, [X1], X2

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 18 — DC_PRELOAD(DC_PRELOAD_XN_XM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 Xn=预取基址;Xm=寄存器偏移
作用 按基址和寄存器偏移发出数据缓存预加载提示。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................101....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=preload mode; [21:17]=preload control; [16:12]=base; [11:7]=offset; [6:4]=101(fixed); [3:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000050

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) [Xn], Xn DC_PRELOAD [X0], X1 0x010000d0

汇编器级最小示例:

.text
.a64
DC_PRELOAD [X0], X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 19 — LD4(LD4_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 四路/四单元加载;寄存器偏移和步长由该格式的控制字段指定。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000001.................100....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=100(fixed); [3:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000040

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 20 — ST4(ST4_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 四路/四单元存储;寄存器偏移和步长由该格式的控制字段指定。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000001.................110....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=110(fixed); [3:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000060

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 21 — SQRT

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量平方根。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:0]=subop/control
  • 解码条件:(word & 0xff000000) == 0x02000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec f32 Xn, Xn SQRT.f32 X0, X1 0x02801000
dav-c220-cube, dav-c220-vec s64 Xn, Xn SQRT.s64 X0, X1 0x02001000

汇编器级最小示例:

.text
.a64
SQRT.f32 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar 多周期 EX→可变延迟队列→notify/退休
延迟/公式 \(L_{\mathrm{f32}}=18,\quad L_{\mathrm{other}}=15\)
登记到可变延迟队列并 notify_after(L)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/f32=18; 其他=15/—
退休 多周期执行计时到期且目标写回/scoreboard 条件满足
动态停顿 I1 slot、源 RAW、目标 WAW、同类多周期执行冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 22 — NEG

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量取负。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00001.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00001(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000080

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn NEG.s64 X0, X1 0x02001080

汇编器级最小示例:

.text
.a64
NEG.s64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 23 — ABS

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量绝对值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00010.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00010(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000100

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec f32 Xn, Xn ABS.f32 X0, X1 0x02801100
dav-c220-cube, dav-c220-vec s64 Xn, Xn ABS.s64 X0, X1 0x02001100

汇编器级最小示例:

.text
.a64
ABS.f32 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 24 — NOT

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 逐位取反。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00011.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00011(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000180

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b64 Xn, Xn NOT.b64 X0, X1 0x02c01180

汇编器级最小示例:

.text
.a64
NOT.b64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 25 — SHL

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量逻辑左移。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000010............00100.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00100(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000200

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 26 — SHR

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量右移;有符号后缀决定算术/逻辑扩展。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00101.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00101(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000280

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn SHR.s64 X0, X1 0x020012c0
dav-c220-cube, dav-c220-vec u64 Xn, Xn SHR.u64 X0, X1 0x024012c0

汇编器级最小示例:

.text
.a64
SHR.s64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 27 — SBCNT

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 对标量源执行置位计数类位操作。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00110.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00110(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000300

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec SBCNT0.b64 Xn, Xn SBCNT0.b64 X0, X1 0x02c01300
dav-c220-cube, dav-c220-vec SBCNT1.b64 Xn, Xn SBCNT1.b64 X0, X1 0x02c01340

汇编器级最小示例:

.text
.a64
SBCNT0.b64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=2\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/2/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 28 — SFF

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 在标量源中查找首个置位位置。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............00111.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=00111(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000380

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec SFF0.b64 Xn, Xn SFF0.b64 X0, X1 0x02c01380
dav-c220-cube, dav-c220-vec SFF1.b64 Xn, Xn SFF1.b64 X0, X1 0x02c013c0

汇编器级最小示例:

.text
.a64
SFF0.b64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 29 — SBITSET

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 执行标量位设置操作。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............01000.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=01000(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000400

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec SBITSET0.b64 Xn, Xn SBITSET0.b64 X0, X1 0x02c01400
dav-c220-cube, dav-c220-vec SBITSET1.b64 Xn, Xn SBITSET1.b64 X0, X1 0x02c01440

汇编器级最小示例:

.text
.a64
SBITSET0.b64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 30 — CLZ

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 统计前导零。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............01001.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=01001(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000480

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b64 Xn, Xn CLZ.b64 X0, X1 0x02c01480

汇编器级最小示例:

.text
.a64
CLZ.b64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 31 — SFLBITS

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 执行由该格式控制字段指定的标量位域或位重排操作。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............01010.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=01010(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000500

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn SFLBITS.s64 X0, X1 0x02001500

汇编器级最小示例:

.text
.a64
SFLBITS.s64 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 32 — CONV

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 标量数据类型转换;后缀编码源/目标类型与舍入模式。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............01011.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=01011(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000580

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec f162f32 Xn, Xn CONV.f162f32 X0, X1 0x02001587
dav-c220-cube, dav-c220-vec f322f16 Xn, Xn CONV.f322f16 X0, X1 0x02001586
dav-c220-cube, dav-c220-vec f322f16o Xn, Xn CONV.f322f16o X0, X1 0x02001588
dav-c220-cube, dav-c220-vec f322s32a Xn, Xn CONV.f322s32a X0, X1 0x02001580
dav-c220-cube, dav-c220-vec f322s32c Xn, Xn CONV.f322s32c X0, X1 0x02001582
dav-c220-cube, dav-c220-vec f322s32f Xn, Xn CONV.f322s32f X0, X1 0x02001581
dav-c220-cube, dav-c220-vec f322s32r Xn, Xn CONV.f322s32r X0, X1 0x02001584
dav-c220-cube, dav-c220-vec f322s32z Xn, Xn CONV.f322s32z X0, X1 0x02001583
dav-c220-cube, dav-c220-vec s322f32 Xn, Xn CONV.s322f32 X0, X1 0x02001585

汇编器级最小示例:

.text
.a64
CONV.f162f32 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=2\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/2/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 33 — MOV(MOV_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 移动或构造标量/控制值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............10000.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=10000(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000800

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, Xn MOV X0, X1 0x02001800

汇编器级最小示例:

.text
.a64
MOV X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 34 — MOV(MOV_XD_SPR)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-SPR
参数角色 X register=通用寄存器;SPR=命名状态;方向由操作数顺序决定
作用 移动或构造标量/控制值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............10001.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=direction; [21:17]=X register; [16:12]=SPR index; [11:7]=10001(fixed); [6:0]=control
  • 解码条件:(word & 0xff000f80) == 0x02000880

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, STATUS MOV X0, STATUS 0x02002880

汇编器级最小示例:

.text
.a64
MOV X0, STATUS

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 35 — MOV(MOV_SPR_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-SPR
参数角色 SPR=目标特殊寄存器;Xn=写入值
作用 移动或构造标量/控制值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............10010.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=direction; [21:17]=SPR index; [16:12]=X register; [11:7]=10010(fixed); [6:0]=control
  • 解码条件:(word & 0xff000f80) == 0x02000900

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) CTRL, Xn MOV CTRL, X0 0x02060900

汇编器级最小示例:

.text
.a64
MOV CTRL, X0

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 36 — SIGNEXT

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 符号扩展。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............10011.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=10011(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000980

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s16 Xn, Xn SIGNEXT.s16 X0, X1 0x02401980
dav-c220-cube, dav-c220-vec s32 Xn, Xn SIGNEXT.s32 X0, X1 0x02801980
dav-c220-cube, dav-c220-vec s8 Xn, Xn SIGNEXT.s8 X0, X1 0x02001980

汇编器级最小示例:

.text
.a64
SIGNEXT.s16 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 37 — ZEROEXT

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RR
参数角色 Xd=目标;Xn=源;低位可携带转换/子操作
作用 零扩展。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............10100.......0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=dtype/conv; [21:17]=Xd; [16:12]=Xn; [11:7]=10100(fixed); [6:0]=subop/control
  • 解码条件:(word & 0xff000f80) == 0x02000a00

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec u16 Xn, Xn ZEROEXT.u16 X0, X1 0x02401a00
dav-c220-cube, dav-c220-vec u32 Xn, Xn ZEROEXT.u32 X0, X1 0x02801a00
dav-c220-cube, dav-c220-vec u8 Xn, Xn ZEROEXT.u8 X0, X1 0x02001a00

汇编器级最小示例:

.text
.a64
ZEROEXT.u16 X0, X1

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 38 — INSERT(INSERT_XD_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-BIT
参数角色 Xd=目标;Xn=源;bit_offset=目标最低位;width_minus_one=位宽减一
作用 把源寄存器位域插入目标寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............110.........0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23:22]=bit_offset; [21:17]=Xd; [16:12]=Xn; [11:9]=110(fixed); [8:5]=bit_offset; [4:0]=width_minus_one
  • 解码条件:(word & 0xff000e00) == 0x02000c00

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, Xn, #imm, #imm INSERT X0, X1, #0, #1 0x02001c01

汇编器级最小示例:

.text
.a64
INSERT X0, X1, #0, #1

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
bit_offset 0..63 6 位;零扩展/枚举 scale=1;alignment=1 目标位域最低位
width_minus_one 0..31 5 位;零扩展/枚举 scale=1;alignment=1 插入宽度减一;bit_offset + width_minus_one 不得超过 63

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 39 — INSERT(INSERT_XD)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-BIT
参数角色 Xd=目标;immediate8=被插入值;bit_offset=目标最低位;extension_mode=扩展模式
作用 把立即数/位域插入目标寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000010............1011........0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000010(fixed); [23]=extension_mode; [22]=bit_offset; [21:17]=Xd; [16:12]=bit_offset; [11:8]=1011(fixed); [7:0]=immediate8
  • 解码条件:(word & 0xff000f00) == 0x02000b00

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm, #imm, #imm INSERT X0, #1, #0, #1 0x02800b01

汇编器级最小示例:

.text
.a64
INSERT X0, #1, #0, #1

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate8 0..255 8 位;零扩展/枚举 scale=1;alignment=1 插入目标寄存器的 8 位值
bit_offset 0..63 6 位;零扩展/枚举 scale=1;alignment=1 目标位域最低位
extension_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 8 位插入的扩展/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 40 — LD(LD_XD_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 从所示地址空间加载到标量寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:000.0011........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:29]=000(fixed); [28]=address_mode; [27:24]=0011(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xef000000) == 0x03000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-vec b16 Xn, [Xn], #imm LD.b16 X0, [X1], #0 0x03401000
dav-c220-vec b32 Xn, [Xn], #imm LD.b32 X0, [X1], #0 0x03801000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm LD.b64 X0, [X1], #0 0x03c01000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm, #imm LD.b64 X0, [X1], #0, #0 0x03c01000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm LD.b8 X0, [X1], #0 0x03001000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm, #imm LD.b8 X0, [X1], #0, #0 0x03001000

汇编器级最小示例:

.text
.a64
LD.b64 X0, [X1], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 41 — ST(ST_XD_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 把标量寄存器写入所示地址空间。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:000.0100........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:29]=000(fixed); [28]=address_mode; [27:24]=0100(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xef000000) == 0x04000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm ST.b64 X0, [X1], #0 0x04c01000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm, #imm ST.b64 X0, [X1], #0, #0 0x04c01000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm ST.b8 X0, [X1], #0 0x04001000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm, #imm ST.b8 X0, [X1], #0, #0 0x04001000

汇编器级最小示例:

.text
.a64
ST.b64 X0, [X1], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值
address_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 可选地址/控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 42 — LD4(LD4_XD_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 四路/四单元加载;立即数和控制字段指定偏移与步长。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000101........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000101(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=immediate offset
  • 解码条件:(word & 0xff000000) == 0x05000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 43 — ST4(ST4_XD_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 四路/四单元存储;立即数和控制字段指定偏移与步长。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00000110........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000110(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=immediate offset
  • 解码条件:(word & 0xff000000) == 0x06000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 44 — MOV(MOV_XD_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RI
参数角色 Xd=目标;imm=立即数;部分形式另带 halfword 位置
作用 移动或构造标量/控制值。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000111........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000111(fixed); [23:22]=segment/position; [21:17]=Xd; [16]=immediate/control; [15:0]=immediate
  • 解码条件:(word & 0xff000000) == 0x07000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm MOV X0, #0 0x07000000
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm MOV X0, #1 0x07000001

汇编器级最小示例:

.text
.a64
MOV X0, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate 0..65535 16 位;零扩展/枚举 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 45 — MOVK

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RI
参数角色 Xd=目标;imm=立即数;部分形式另带 halfword 位置
作用 把立即数字段写入目标寄存器的指定半字位置。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000111.......1................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000111(fixed); [23:22]=halfword_position; [21:17]=Xd; [16]=1(fixed); [15:0]=immediate
  • 解码条件:(word & 0xff010000) == 0x07010000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm, #imm MOVK X0, #0, #0 0x07010000
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm, #imm MOVK X0, #1, #1 0x07410001

汇编器级最小示例:

.text
.a64
MOVK X0, #0, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate 0..65535 16 位;零扩展/枚举 scale=1;alignment=1 字面字段值
halfword_position 0..3 2 位;零扩展/枚举 scale=16;alignment=16 选择目标位 [16n+15:16n]

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 46 — ADD(ADD_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRI
参数角色 Xd=目标;Xn=源;imm=立即数
作用 标量加法的立即数形式。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0000100000......................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:22]=0000100000(fixed); [21:17]=Xd; [16:12]=Xn; [11:0]=immediate
  • 解码条件:(word & 0xffc00000) == 0x08000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm ADD.s64 X0, X1, #0 0x08001000
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm ADD.s64 X0, X1, #1 0x08001001

汇编器级最小示例:

.text
.a64
ADD.s64 X0, X1, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate 0..4095 12 位;零扩展/枚举 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 47 — MUL(MUL_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRI
参数角色 Xd=目标;Xn=源;imm=立即数
作用 标量乘法的立即数形式。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0000100001......................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:22]=0000100001(fixed); [21:17]=Xd; [16:12]=Xn; [11:0]=immediate
  • 解码条件:(word & 0xffc00000) == 0x08400000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm MUL.s64 X0, X1, #0 0x08401000
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm MUL.s64 X0, X1, #1 0x08401001

汇编器级最小示例:

.text
.a64
MUL.s64 X0, X1, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 48 — SUB(SUB_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RRI
参数角色 Xd=目标;Xn=源;imm=立即数
作用 标量减法的立即数形式。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0000100010......................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:22]=0000100010(fixed); [21:17]=Xd; [16:12]=Xn; [11:0]=immediate
  • 解码条件:(word & 0xffc00000) == 0x08800000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm SUB.s64 X0, X1, #0 0x08801000
dav-c220-cube, dav-c220-vec s64 Xn, Xn, #imm SUB.s64 X0, X1, #1 0x08801001

汇编器级最小示例:

.text
.a64
SUB.s64 X0, X1, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate 0..4095 12 位;零扩展/枚举 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 49 — DC_PRELOAD(DC_PRELOAD_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 Xn=预取基址;offset=有符号立即数偏移
作用 按基址和立即数偏移发出数据缓存预加载提示。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0000100011......................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:22]=0000100011(fixed); [21:17]=preload control; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xffc00000) == 0x08c00000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) [Xn], #imm DC_PRELOAD [X0], #0 0x08c00000

汇编器级最小示例:

.text
.a64
DC_PRELOAD [X0], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 相对地址寄存器的有符号字节偏移

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 50 — CMP(CMP_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-CMP-RI
参数角色 Xn=比较源;imm=有符号立即数;cond=谓词
作用 标量比较的立即数形式,并更新条件状态。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0000101.........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:25]=0000101(fixed); [24:22]=condition; [21:17]=dtype/control; [16:12]=Xn; [11:0]=immediate
  • 解码条件:(word & 0xfe000000) == 0x0a000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec EQ.s64 Xn, #imm CMP.EQ.s64 X0, #0 0x0a000000

汇编器级最小示例:

.text
.a64
CMP.EQ.s64 X0, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 51 — LDP(LDP_XI_XJ_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-PAIR
参数角色 Xi/Xj=成对数据;base=地址;其余控制依具体形式
作用 成对加载两个标量寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00001001.......................00/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00001001(fixed); [23:22]=dtype; [21:17]=Xi; [16:12]=base; [11:7]=Xj; [6:1]=offset; [0]=0(fixed)
  • 解码条件:(word & 0xff000001) == 0x09000000

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 0x00000f80 7,8,9,10,11 r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11]
2 X2 0x0001f000 12,13,14,15,16 r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b16 Xn, Xn, [Xn], #imm LDP.b16 X0, X1, [X2], #0 0x09402080
dav-c220-cube, dav-c220-vec b32 Xn, Xn, [Xn], #imm LDP.b32 X0, X1, [X2], #0 0x09802080
dav-c220-cube, dav-c220-vec b64 Xn, Xn, [Xn], #imm LDP.b64 X0, X1, [X2], #0 0x09c02080
dav-c220-cube, dav-c220-vec b8 Xn, Xn, [Xn], #imm LDP.b8 X0, X1, [X2], #0 0x09002080

汇编器级最小示例:

.text
.a64
LDP.b16 X0, X1, [X2], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -32..31 6 位;符号扩展 scale=1;alignment=1 成对访问的有符号偏移

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 52 — STP(STP_XI_XJ_XN)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-PAIR
参数角色 Xi/Xj=成对数据;base=地址;其余控制依具体形式
作用 成对存储两个标量寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00001001.......................10/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00001001(fixed); [23:22]=dtype; [21:17]=Xi; [16:12]=base; [11:7]=Xj; [6:1]=offset; [0]=1(fixed)
  • 解码条件:(word & 0xff000001) == 0x09000001

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 0x00000f80 7,8,9,10,11 r0->word[7]; r1->word[8]; r2->word[9]; r3->word[10]; r4->word[11]
2 X2 0x0001f000 12,13,14,15,16 r0->word[12]; r1->word[13]; r2->word[14]; r3->word[15]; r4->word[16]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b16 Xn, Xn, [Xn], #imm STP.b16 X0, X1, [X2], #0 0x09402081
dav-c220-cube, dav-c220-vec b32 Xn, Xn, [Xn], #imm STP.b32 X0, X1, [X2], #0 0x09802081
dav-c220-cube, dav-c220-vec b64 Xn, Xn, [Xn], #imm STP.b64 X0, X1, [X2], #0 0x09c02081
dav-c220-cube, dav-c220-vec b8 Xn, Xn, [Xn], #imm STP.b8 X0, X1, [X2], #0 0x09002081

汇编器级最小示例:

.text
.a64
STP.b16 X0, X1, [X2], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -32..31 6 位;符号扩展 scale=1;alignment=1 成对访问的有符号偏移

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 53 — UNDEF53

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 R
参数角色 保留机器码槽;无公共操作数
作用 内部/保留解码槽位,不定义公共语义。
文本语法状态 保留/内部

32 位编码布局

  • 位 31→0 模式:000.1100........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:29]=000(fixed); [28]=reserved/internal payload; [27:24]=1100(fixed); [23:0]=reserved/internal payload
  • 解码条件:(word & 0xef000000) == 0x0c000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 54 — UNDEF54

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 R
参数角色 保留机器码槽;无公共操作数
作用 内部/保留解码槽位,不定义公共语义。
文本语法状态 保留/内部

32 位编码布局

  • 位 31→0 模式:000.1101........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:29]=000(fixed); [28]=reserved/internal payload; [27:24]=1101(fixed); [23:0]=reserved/internal payload
  • 解码条件:(word & 0xef000000) == 0x0d000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 55 — STI(STI_XN_XM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-SPECIAL
参数角色 指令专用标量、地址、立即数或隐式状态
作用 使用寄存器索引执行专用存储。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00001110........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00001110(fixed); [23:0]=instruction-specific operands/control
  • 解码条件:(word & 0xff000000) == 0x0e000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 56 — STI(STI_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-SPECIAL
参数角色 指令专用标量、地址、立即数或隐式状态
作用 使用立即数索引执行专用存储。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00001111........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00001111(fixed); [23:0]=instruction-specific operands/control
  • 解码条件:(word & 0xff000000) == 0x0f000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 57 — ST_ATOMIC(ST_ATOMIC_XN_XM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-R
参数角色 data=加载目标/存储源;base=基址;offset=寄存器偏移
作用 原子存储,控制量来自寄存器。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00000001.................111....0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00000001(fixed); [23:22]=dtype; [21:17]=data; [16:12]=base; [11:7]=offset; [6:4]=111(fixed); [3]=atomic_mode; [2:0]=space/control
  • 解码条件:(word & 0xff000070) == 0x01000070

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-cube, dav-c220-vec b16 Xn, [Xn], Xn, #imm ST_ATOMIC.b16 X0, [X1], X2, #0 0x01401170
dav-c220-cube, dav-c220-vec b32 Xn, [Xn], Xn, #imm ST_ATOMIC.b32 X0, [X1], X2, #0 0x01801170
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], Xn, #imm ST_ATOMIC.b64 X0, [X1], X2, #0 0x01c01170
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], Xn, #imm ST_ATOMIC.b8 X0, [X1], X2, #0 0x01001170

汇编器级最小示例:

.text
.a64
ST_ATOMIC.b16 X0, [X1], X2, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
atomic_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 原子存储控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU atomic→D-cache/BIU 原子完成→退休
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{atomic\,serialize}}+T_{\mathrm{memory\,response}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由原子序列化和目标响应决定
退休 原子操作完成通知返回
动态停顿 atomic serialization、STB、cache/BIU、跨核竞争

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 58 — ST_ATOMIC(ST_ATOMIC_XN_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 原子存储,控制量来自立即数。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0001011.........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:25]=0001011(fixed); [24]=atomic_mode; [23:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xfe000000) == 0x16000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b16 Xn, [Xn], #imm, #imm ST_ATOMIC.b16 X0, [X1], #0, #0 0x16401000
dav-c220-cube, dav-c220-vec b32 Xn, [Xn], #imm, #imm ST_ATOMIC.b32 X0, [X1], #0, #0 0x16801000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm, #imm ST_ATOMIC.b64 X0, [X1], #0, #0 0x16c01000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm, #imm ST_ATOMIC.b8 X0, [X1], #0, #0 0x16001000

汇编器级最小示例:

.text
.a64
ST_ATOMIC.b16 X0, [X1], #0, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 有符号字节偏移
atomic_mode 0..1 1 位;零扩展/枚举 scale=1;alignment=1 原子存储控制模式

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU atomic→D-cache/BIU 原子完成→退休
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{atomic\,serialize}}+T_{\mathrm{memory\,response}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由原子序列化和目标响应决定
退休 原子操作完成通知返回
动态停顿 atomic serialization、STB、cache/BIU、跨核竞争

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 59 — ST_DEV(ST_DEV_XD_XN_IMM12)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 向设备地址空间存储。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0001100.........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:25]=0001100(fixed); [24:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xfe000000) == 0x18000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b16 Xn, [Xn], #imm ST_DEV.b16 X0, [X1], #0 0x18401000
dav-c220-cube, dav-c220-vec b32 Xn, [Xn], #imm ST_DEV.b32 X0, [X1], #0 0x18801000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm ST_DEV.b64 X0, [X1], #0 0x18c01000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm ST_DEV.b8 X0, [X1], #0 0x18001000

汇编器级最小示例:

.text
.a64
ST_DEV.b16 X0, [X1], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→STB/DSTB→UB 或 D-cache/BIU→store retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{STB\,accept}}+T_{\mathrm{visibility\,model}}+S_{\mathrm{queue}}\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/—/由 STB/DSTB、D-cache/UB/BIU 接受和完成条件决定
退休 store 达到 STB/目标接口的模型退休点;全局可见性需另由同步保证
动态停顿 STB/DSTB 满、地址相关、cache line 状态、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 60 — LD_DEV(LD_DEV_XD_XN_IMM12)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-LDST-I
参数角色 data=加载目标/存储源;base=基址;offset=有符号立即数
作用 从设备地址空间加载。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:0001101.........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:25]=0001101(fixed); [24:22]=dtype; [21:17]=data; [16:12]=base; [11:0]=offset
  • 解码条件:(word & 0xfe000000) == 0x1a000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec b16 Xn, [Xn], #imm LD_DEV.b16 X0, [X1], #0 0x1a401000
dav-c220-cube, dav-c220-vec b32 Xn, [Xn], #imm LD_DEV.b32 X0, [X1], #0 0x1a801000
dav-c220-cube, dav-c220-vec b64 Xn, [Xn], #imm LD_DEV.b64 X0, [X1], #0 0x1ac01000
dav-c220-cube, dav-c220-vec b8 Xn, [Xn], #imm LD_DEV.b8 X0, [X1], #0 0x1a001000

汇编器级最小示例:

.text
.a64
LD_DEV.b16 X0, [X1], #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
offset -2048..2047 12 位;符号扩展 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar LSU/AGU→UB 或 D-cache→BIU(需要时)→load retire
延迟/公式 \(T=T_{\mathrm{issue}}+T_{\mathrm{AGU}}+T_{\mathrm{hit/refill}}+T_{\mathrm{response}}+S_{\mathrm{queue}}\)
不能用登记 latency=1 代替
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:由 UB/D-cache hit、MSHR/refill/BIU 响应决定/—/—
退休 LSU/D-cache 返回,或预取请求达到模型定义的完成点
动态停顿 RAW/WAW、LD queue、STB forwarding、D-cache miss/MSHR、BIU outstanding、UB bank

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 61 — MOVX8(MOVX8_XD_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-RI
参数角色 Xd=目标;imm=立即数;部分形式另带 halfword 位置
作用 构造/移动扩展的 8 位立即数字段。
文本语法状态 c220 汇编器接受

32 位编码布局

  • 位 31→0 模式:00010000........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00010000(fixed); [23:22]=segment/position; [21:17]=Xd; [16]=immediate/control; [15:0]=immediate
  • 解码条件:(word & 0xff000000) == 0x10000000

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]

c220 接受的后缀与操作数组合

CPU 后缀 操作数形状 可复制语法 编码
dav-c220-cube, dav-c220-vec (无后缀) Xn, #imm MOVX8 X0, #0 0x10000000

汇编器级最小示例:

.text
.a64
MOVX8 X0, #0

立即数规则

操作数 范围 位宽/扩展 缩放/对齐 解释
immediate 0..65535 16 位;零扩展/枚举 scale=1;alignment=1 字面字段值

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字

ID 62 — MOV(MOV_SPR_IMM)

项目 内容
指令域/执行位置 scalar / Scalar(pipe 0)
格式类 S-SPR
参数角色 X register=通用寄存器;SPR=命名状态;方向由操作数顺序决定
作用 把立即数写入特殊寄存器。
文本语法状态 仅机器格式;无 c220 公共语法

32 位编码布局

  • 位 31→0 模式:00010010........................0/1 为固定值,. 为该解码项的可变位)。
  • 完整分段:[31:24]=00010010(fixed); [23:22]=direction; [21:17]=X register; [16:7]=SPR index; [6:0]=control
  • 解码条件:(word & 0xff000000) == 0x12000000

公共文本形式

当前 c220 后端没有接受该目录项的完整文本形式。OP<dtype><mode> 等占位符不是汇编语法;目录样例字只用于机器格式识别,不能作为可运行内核。

周期与冲突

项目 架构周期模型
路径 CCU I1→Scalar EX→固定延迟退休表→寄存器/SPR 写回
延迟/公式 \(L=1\)
发射间隔 无 hazard 且 I1 slot 可用时 1;多周期/FPU/访存相关由 scoreboard 限流
uop 展开 1 个 Scalar 操作;LD4/ST4/LDP/STP 可在 LSU 内产生多个存储请求:—/1/—
退休 固定延迟槽到期且写回条件满足
动态停顿 源 RAW、目标 WAW、SPR hazard、I1 slot/多周期冲突

这些数值是架构周期模型,不是 910B 芯片的实测吞吐率。设备结果状态:待目标设备执行。 数值异常、掩码、描述字和访存副作用分别见数值语义MASK/VA 与访存配置字