CORE 寄存器块(MAC 核心控制)
基址:CORE_BASE + 0x3000 | 地址范围:0x3000 ~ 0x3FFF
来源:RK3588 TRM §36.4.3 Detail Registers Description
CORE 模块包含 MAC 阵列和累加器,负责卷积乘累加运算。
RKNN_core_s_status(0x3000)
执行器状态寄存器(只读)。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:18 | RO | 0x0 | — | 保留 |
| 17:16 | RO | 0x0 | status_1 | 执行器 1 状态。0:空闲;1:正在执行;2:正在执行且执行器 1 等待执行;3:保留 |
| 15:2 | RO | 0x0 | — | 保留 |
| 1:0 | RO | 0x0 | status_0 | 执行器 0 状态。编码同 status_1 |
RKNN_core_s_pointer(0x3004)
寄存器组指针与 ping-pong 控制。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:17 | RO | 0x0 | — | 保留 |
| 16 | RO | 0x0 | executer | 当前使用的寄存器组。0:执行器组 0;1:执行器组 1 |
| 15:6 | RO | 0x0 | — | 保留 |
| 5 | W1C | 0x0 | executer_pp_clear | 清除执行器组指针,写 1 清零 |
| 4 | W1C | 0x0 | pointer_pp_clear | 清除寄存器组指针,写 1 清零 |
| 3 | RW | 0x0 | pointer_pp_mode | Ping-pong 模式。0:按执行器切换;1:按指针切换 |
| 2 | RW | 0x0 | executer_pp_en | 执行器组 ping-pong 使能。0:禁用;1:使能 |
| 1 | RW | 0x0 | pointer_pp_en | 寄存器组 ping-pong 使能。0:禁用;1:使能 |
| 0 | RW | 0x0 | pointer | 当前待设置的寄存器组。0:组 0;1:组 1 |
RKNN_core_operation_enable(0x3008)
操作使能寄存器。写入此寄存器将触发 CORE 模块开始执行。此寄存器及之后的寄存器均为 ping-pong 影子寄存器。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:1 | RO | 0x0 | — | 保留 |
| 0 | RW | 0x0 | op_en | CORE 操作使能。0:禁用;1:使能 |
RKNN_core_mac_gating(0x300C)
MAC 软时钟门控寄存器。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:27 | RO | 0x0 | — | 保留 |
| 26:0 | RW | 0x7800800 | slcg_op_en | 软时钟门控信号 |
注意:复位值为
0x07800800,与其他寄存器不同。
RKNN_core_misc_cfg(0x3010)
杂项配置寄存器:精度、深度可分离、量化使能。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:20 | RO | 0x0 | — | 保留 |
| 19:14 | RW | 0x0 | soft_gating | 累加器软门控信号 |
| 13:11 | RO | 0x0 | — | 保留 |
| 10:8 | RW | 0x0 | proc_precision | 处理精度。0:int8;1:int16;2:fp16;3:bf16;6:int4;7:tf32 |
| 7:2 | RO | 0x0 | — | 保留 |
| 1 | RW | 0x0 | dw_en | 深度可分离模式使能。0:禁用;1:使能 Depthwise 模式 |
| 0 | RW | 0x0 | qd_en | 量化特征数据计算使能。0:禁用;1:使能 |
RKNN_core_dataout_size_0(0x3014)
输出特征尺寸寄存器 0:宽高。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:16 | RW | 0x0 | dataout_height | 激活后输出数据高度 |
| 15:0 | RW | 0x0 | dataout_width | 激活后输出数据宽度 |
RKNN_core_dataout_size_1(0x3018)
输出特征尺寸寄存器 1:通道数。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:16 | RO | 0x0 | — | 保留 |
| 15:0 | RW | 0x0 | dataout_channel | 激活后输出数据通道数 |
RKNN_core_clip_truncate(0x301C)
截断与舍入控制寄存器。
| Bit | 属性 | 复位值 | 字段名 | 描述 |
|---|---|---|---|---|
| 31:7 | RO | 0x0 | — | 保留 |
| 6 | RW | 0x0 | round_type | 舍入类型。0:奇入偶不入;1:0.5 向上进 1 |
| 5 | RO | 0x0 | — | 保留 |
| 4:0 | RW | 0x0 | clip_truncate | 截断位数 |