跳转至

SPR 完整参考

本页列出工具链可识别的 185 个命名 SPR 编码。编码号用于选择特殊寄存器,不是寄存器的运行时值。该名称表覆盖多个后端特性,不等于每个名称都能在 dav-c220-vecdav-c220-cube 上读写。

公共语法使用符号名,例如 MOV X0, STATUSMOV CTRL, X0,不是 SPR[n]。访问方向、910B 可用接口和编程约束见 配置寄存器与隐式状态,可机读原表见 spr_encoding.csv

名称、编码、访问权限是三件不同的事

一个名称出现在本表中,只说明它占有工具链编码槽。汇编器仍可能把它限制为只读或只写、要求另一种 CPU,也可能要求 MOVEMASK 等专用指令。不要从编码号推断字段布局或权限。

名称族

  • MASK0/1CMPMASK0/1:向量执行/比较掩码。
  • FMATRIX*CUBE_CTRL_*ACC_VAL:Cube/矩阵形状和累加控制。
  • AIPP_SPR_*:图像预处理参数组。
  • MEMMAP_*SMMU_*:地址映射和 IOMMU 流标识。
  • AIC_ERROR*:错误状态/屏蔽。
  • THREAD_ID/DIMSUBBLOCKID/DIM:线程和子块身份。

完整编码表

编码 名称
2 STATUS
3 CTRL
4 PARA_BASE
5 DATA_MAIN_BASE
6 DATA_UB_BASE
7 DATA_SIZE
8 LPCNT
9 BLOCKDIM
10 FMATRIX
11 CONDITION_FLAG
12 DEQSCALE
13 PADDING
14 L2_VADDR_BASE
15 L0_SET_VALUE
16 COREID
17 VMS4_SR
18 L2_IN_MAIN
19 RPN_COR_IR
20 ARCH_VER
21 SMMU_TAG_VER
22 L1_3D_SIZE
23 AIPP_SPR_0
24 AIPP_SPR_1
25 AIPP_SPR_2
26 AIPP_SPR_3
27 AIPP_SPR_4
28 AIPP_SPR_5
29 AIPP_SPR_6
30 AIPP_SPR_7
31 AIPP_SPR_8
32 AIPP_SPR_9
33 AIPP_SPR_10
34 AIPP_SPR_11
35 AIPP_SPR_12
36 AIPP_SPR_13
37 AIPP_SPR_14
38 AIPP_SPR_15
39 AIPP_SPR_16
40 AIPP_SPR_17
41 AIPP_SPR_18
42 AIPP_SPR_19
43 AIPP_SPR_20
44 AIPP_SPR_21
45 AIPP_SPR_22
46 AIPP_SPR_23
47 AIPP_SPR_24
48 DATA_EXP_0
49 DATA_EXP_1
50 DATA_EXP_2
51 DATA_EXP_3
52 LOW_PRE_TBL
53 SMASK_INDEX
54 K_NUM
55 RPN_OFFSET
56 FCOL2IMG
57 RSVD_CNT
58 L3D_RPT
59 COND
60 PNT_COE
61 LRELU_ALPHA
62 VPIPE
63 MAX_MIN_CNT
64 FPC
65 QUANT_PRE
66 QUANT_POST
67 SYS_VA_BASE
68 STACK_PHY_BASE
69 VSP
70 MOV_PAD_VAL
72 SYS_CNT
73 VL
74 AR
75 SAFETY_CRC_EN
76 SAFETY_CRC_DATA
77 SAFETY_CRC_EXCP
78 AIPP_SPR_25
79 AIPP_SPR_26
80 AIPP_SPR_27
81 AIPP_SPR_28
82 AIPP_SPR_29
83 AIPP_SPR_30
84 AIPP_SPR_31
85 THREAD_ID
86 THREAD_DIM
87 ACC_VAL
88 FIXP_ADDR
89 FMATRIX_DUAL_0
90 ST_ATOMIC_CFG
91 ICACHE_PRL_ST
92 FMATRIX_B
93 PCIE_RD_CTRL
94 PCIE_WR_CTRL
95 SUBBLOCKDIM
96 SUBBLOCKID
97 ND_PARA
98 FMATRIX_DUAL_1
99 FFTS_BASE_ADDR
100 MASK0
101 MASK1
102 UNZIP_INDX_BASE
103 UNZIP_INDX_LEN
104 CMPMASK0
105 CMPMASK1
106 AIC_ERROR_MASK
107 CUBE_CTRL_0
108 CUBE_CTRL_1
109 SMMU_STREAMID
110 SMMU_SUBSTREAMID
111 MEMMAP_0
112 MEMMAP_1
113 MEMMAP_2
114 MEMMAP_3
115 MEMMAP_4
116 MEMMAP_5
117 MEMMAP_6
118 MEMMAP_7
119 MEMMAP_8
120 MEMMAP_9
121 MEMMAP_10
122 MEMMAP_11
123 MEMMAP_12
124 MEMMAP_13
125 MEMMAP_14
126 MEMMAP_15
127 MEMMAP_16
128 MEMMAP_17
129 MEMMAP_18
130 MEMMAP_19
131 MEMMAP_20
132 MEMMAP_21
133 MEMMAP_22
134 MEMMAP_23
135 MEMMAP_24
136 MEMMAP_25
137 MEMMAP_26
138 MEMMAP_27
139 MEMMAP_28
140 MEMMAP_29
141 MEMMAP_30
142 MEMMAP_31
143 MEMMAP_32
144 MEMMAP_33
145 MEMMAP_34
146 MEMMAP_35
147 MEMMAP_36
148 MEMMAP_37
149 MEMMAP_38
150 MEMMAP_39
151 MEMMAP_40
152 MEMMAP_41
153 MEMMAP_42
154 MEMMAP_43
155 MEMMAP_44
156 MEMMAP_45
157 MEMMAP_46
158 MEMMAP_47
159 MEMMAP_48
160 MEMMAP_49
161 MEMMAP_50
162 MEMMAP_51
163 MEMMAP_52
164 MEMMAP_53
165 MEMMAP_54
166 MEMMAP_55
167 MEMMAP_56
168 MEMMAP_57
169 MEMMAP_58
170 MEMMAP_59
171 MEMMAP_60
172 MEMMAP_61
173 MEMMAP_62
174 MEMMAP_63
175 AIC_ERROR_0
176 AIC_ERROR_1
177 AIC_ERROR_2
178 AIC_ERROR_3
179 AIC_ERROR_4
180 AIC_ERROR_5
181 AIC_ERROR_MASK_0
182 AIC_ERROR_MASK_1
183 AIC_ERROR_MASK_2
184 AIC_ERROR_MASK_3
185 AIC_ERROR_MASK_4
186 AIC_ERROR_MASK_5
187 UNDEF

使用约束

  1. 先在正确的 dav-c220-vecdav-c220-cube 目标下,用 MOV Xd, NAMEMOV NAME, Xn 单条交给 -cc1as,确认方向权限。
  2. 写入控制 SPR 前确认字段、保留位和同步要求;本表不能提供这些行为规范。
  3. MEMMAPSMMU、错误和线程身份寄存器可能由 runtime/固件管理,不应仅因汇编器接受就由普通内核改写。
  4. AIPP_SPR_25AIPP_SPR_31VLAR 等名称属于更大的后端名称空间,当前 dav-c220 目标不会因此自动获得相应 feature。
  5. UNDEF 不应在源码中使用。