|
4 | 4 |
|
5 | 5 | ### 1. 内核 |
6 | 6 |
|
7 | | -C907 是一款基于 RISC-V 指令集架构的入门级 AP 处理器,主要面向家庭视觉、人机交互、网络通信 |
8 | | -等领域,例如可视门铃、智能门锁、触屏智能家电等产品。 |
| 7 | +C908MP 是基于RISC-V 指令架构的64 位高性能多核心处理器,主要面向IoT 市场日益增强的图像、视觉 |
| 8 | +处理领域,例如智慧视觉、车载视觉、行车记录仪、智能交互等。其他应用领域还包括扫地机器人、无人 |
| 9 | +机、自动化驾驶、增强现实、医疗图像、机器人工业视觉、移动互联网等产品。 |
| 10 | +C908MP 采用同构多核架构,支持多cluster,每个cluster 支持1~4 个核心。每个C908 核心采用自主设 |
| 11 | +计的微体系结构,并重点针对性能进行优化,采用按序双发射、多模式分支预测和多通道数据预取等高性 |
| 12 | +能技术。此外,C908 核心支持实时检测并关断内部空闲功能模块,降低处理器动态功耗。 |
9 | 13 |
|
10 | 14 | ### 2.特点 |
| 15 | +#### 2.1. C908MP 处理器体系结构的主要特点 |
| 16 | +• 同构多核架构,支持多cluster,每个cluster 支持1~4 个C908 核心; |
| 17 | + |
| 18 | +• 支持1 个AXI4.0 或ACE Master 接口,128 比特的总线宽度; |
| 19 | + |
| 20 | +• 支持1 个可配置的AXI4.0 低延时外设Master 接口(Low Latency Port, LLP),128 比特的总线宽度; |
| 21 | + |
| 22 | +• 支持1 个可配的AXI4.0 设备一致性接口(Device Coherence Port, DCP),128 比特的总线宽度; |
| 23 | + |
| 24 | +• 一级指令/数据缓存分别支持16KB/32KB/64KB,缓存行SIZE 为64B;可配置ECC/奇偶校验机制; |
| 25 | + |
| 26 | +• 二级高缓128KB/256KB/512KB/1MB/1.5MB/2MB/3MB/4MB,缓存行SIZE 为64B;可配置ECC 校验机制; |
| 27 | + |
| 28 | +• 一级缓存支持MESI 一致性协议,二级缓存支持MOESI 一致性协议; |
| 29 | + |
| 30 | +• 支持私有中断控制器CLINT 和公有中断控制器PLIC;支持多cluster 中断分发; |
| 31 | + |
| 32 | +• 支持RISC-V 性能计数器和计时器; |
| 33 | + |
| 34 | +• 支持Sv39 和Sv48 内存管理,支持SVNAPOT 和SVPBMT 标准扩展; |
| 35 | + |
| 36 | +• 支持8/16/32/64 表项PMP,支持ePMP; |
| 37 | + |
| 38 | +• 支持XuanTie TEE 扩展; |
| 39 | + |
| 40 | +• 支持各个核心独立下电以及cluster 下电; |
| 41 | + |
| 42 | +• 支持RISC-V 调试框架,支持多核多cluster 调试; |
| 43 | + |
| 44 | +#### 2.2. C908 核心的主要特点 |
| 45 | +• RISC-V 64GCB[V] 指令架构; |
| 46 | + |
| 47 | +• User Mode 支持RV64 和RV32 指令集; |
| 48 | + |
| 49 | +• 支持小端模式; |
| 50 | + |
| 51 | +• 9 级流水架构; |
| 52 | + |
| 53 | +• 按序双发射,按序取指、发射、执行和退休; |
| 54 | + |
| 55 | +• 两级TLB 内存管理单元,实现虚实地址转换与内存管理; |
| 56 | + |
| 57 | +• 指令高缓和数据高缓大小可配置,支持16KB/32KB/64KB,缓存行为64B; |
| 58 | + |
| 59 | +• 指令高缓可配置奇偶校验,数据高缓可配置ECC 或奇偶校验; |
| 60 | + |
| 61 | +• 指令预取功能,硬件自动检测并动态启动; |
| 62 | + |
| 63 | +• 指令高缓路预测的低功耗访问技术; |
| 64 | + |
| 65 | +• 支持2KB/4KB/8KB 的多算法分支预测器; |
| 66 | + |
| 67 | +• 支持256 表项的分支目标缓存器(BTB); |
| 68 | + |
| 69 | +• 支持8 层的硬件返回地址堆栈; |
| 70 | + |
| 71 | +• 支持256 表项的间接跳转分支预测器; |
| 72 | + |
| 73 | +• 支持循环终止预测; |
11 | 74 |
|
12 | | -• 支持 RV32 与 RV64 架构; |
13 | | -• 支持 RV64GCB + RV32GCB 指令集,兼容 RVA22; |
14 | | -• 支持 XuanTie Turbo 扩展指令集; |
15 | | -• 可选配浮点指令扩展,支持 FP16/BF16/FP32 运算格式; |
16 | | -• 可选配矢量指令扩展,支持 Vector Extention 1.0 版本,支持 INT8/INT16/INT32/INT64 以及 |
17 | | -FP16/BF16/FP32 运算格式,使用 chaining 的优化运算带宽技术; |
18 | | -• 可选配矩阵指令扩展,支持 INT4/INT8/FP16/BF16; |
19 | | -• 支持多核 SMP,可支持 1~4 核心可配置 |
20 | | -• 按序部分双发 9 级流水线,支持乱序回写; |
21 | | -• 混合分支预测机制,改进版的 G-Shared 分支预测器和 L0 BTB、 RAS; |
22 | 75 | • 支持指令融合技术; |
23 | | -• 支持指令和数据的 prefetch; |
24 | | -• 指令 cache,四路组相连结构, 64B 缓存行, 8KB-64KB 可配置, VIPT; |
25 | | -• 数据 cache,四路组相连结构, 64B 缓存行, 8KB-64KB 可配置, VIPT 模拟 PIPT; |
26 | | -• 二级 Cache, 64B 缓存行, 128KB~4MB 可配置; |
27 | | -• 支持 L1、 L2 两级 TLB, Sv39/Sv48 可配置,支持 Sv32; |
| 76 | + |
| 77 | +• 双发射按序执行Load、Store 指令; |
| 78 | + |
| 79 | +• 读、写内存分别支持8 路、12 路并发的总线访问; |
| 80 | + |
| 81 | +• 支持写合并; |
| 82 | + |
| 83 | +• 支持8 通道数据预取,支持固定stride 和规律性不定stride 数据预取; |
| 84 | + |
| 85 | +#### 2.3. 矢量计算单元的主要特点 |
| 86 | +• 遵循RISC-V V 矢量扩展; |
| 87 | + |
| 88 | +• 在4 核、2GHz 最大配置下,算力可达512 Gops (@int8)/ 256 GFlops (@FP16); |
| 89 | + |
| 90 | +• 矢量执行单元支持FP16/BFP16/FP32 浮点和INT8/INT16/INT32/INT64 整型的矢量运算; |
| 91 | + |
| 92 | +• 支持128/256 可配置的矢量寄存器位宽VLEN; |
| 93 | + |
| 94 | +• 支持矢量执行单元运算和数据存储流水线数量(1 或2)可配; |
| 95 | + |
| 96 | +• 支持128 位或256 位矢量数据存储访问位宽; |
| 97 | + |
| 98 | +• 支持segment load、store 指令; |
| 99 | + |
| 100 | +• 性能优化的非对齐内存访问; |
28 | 101 |
|
29 | 102 | ### 3.BSP支持情况 |
30 | 103 |
|
31 | 104 | - 当前BSP支持下述内核: |
32 | 105 |
|
33 | 106 | ```asciiarmor |
34 | | - c907 c907fd c907fd-rv32 c907fdv c907fdvm c907fdvm-rv32 c907fdv-rv32 c907-rv32 |
| 107 | + c908i c908 c908v |
35 | 108 | ``` |
36 | 109 |
|
37 | | -- 当前BSP默认设置的内核是c907fd,该架构支持[F] [D]扩展,可以通过menuconfig工具使能[F]扩展或者[F] [D] 扩展。 |
| 110 | +- 当前BSP默认设置的内核是c908v,该架构支持[F] [D] [V]扩展,可以通过menuconfig工具使能[F]扩展或者[F] [D] [V] 扩展。 |
38 | 111 |
|
39 | 112 | - 当使用其他内核架构时需要修改,rtconfig.py文件中的`MCPU`字段。 |
40 | 113 |
|
@@ -64,7 +137,7 @@ FP16/BF16/FP32 运算格式,使用 chaining 的优化运算带宽技术; |
64 | 137 | 生成可执行文件,可以直接在命令行启动qemu或者配置vscode脚本借助vscode强大的插件进行图形化调试,qemu的相关命令可以查看玄铁qemu的[用户手册](https://www.xrvm.cn/community/download?id=4397435198627713024),下述是启动qemu的命令,在powershell或命令行可直接执行下述命令,注意qemu需要导出至环境变量或者使用绝对路径。 |
65 | 138 |
|
66 | 139 | ```shell |
67 | | -qemu-system-riscv64 -machine smartl -nographic -kernel rtthread.elf -cpu e906 |
| 140 | +qemu-system-riscv64 -machine xiaohui -nographic -kernel rtthread.elf -cpu c908v |
68 | 141 | ``` |
69 | 142 |
|
70 | 143 | 下述是使用vscode调试的展示。 |
|
0 commit comments