Cheshire 项目全景分析
Cheshire 是苏黎世联邦理工(ETHZ)与博洛尼亚大学 PULP 项目下的最小化、可运行 Linux 的 64 位 RISC-V 主机平台 ,围绕 CVA6(原 Ariane)应用级核构建。它的定位不是"又一个玩具 SoC",而是给需要主机 CPU 的系统提供一个轻量、可配置、能自主引导的宿主子系统------从极简 Linux SoC,到众核加速器(DSA / PMCAs)的控制平面。
一、架构拆解
完整配置下(hw/cheshire_soc.sv 顶层 + cheshire_pkg 参数包):
| 子系统 | 实现要点 |
|---|---|
| 计算 | 最多 31 个 CVA6 核,采用 self-invalidation 基一致性(非硬件目录一致性,靠软件/自失效协议维持) |
| 互连 | AXI4 交叉开关(地址宽/数据宽/端口数可配),最多 16 个外部 AXI4 manager 口 + 16 个 AXI/Regbus subordinate 口;简单从设备走轻量 Regbus demux,压低面积与功耗 |
| 存储 | LLC(axi_llc)可按路(per-way)运行时切换为 SPM 便签存储器 ;Boot ROM 仅 7.2 KiB(-Os + LTO) |
| 外设 | UART、I2C、SPI Host、GPIO、VGA(带内建 DMA)、全数字 chip-to-chip / D2D 串行链路、高吞吐 iDMA、SpinalHDL 实现的 USB 1.1(OHCI) |
| 中断 | CLINT、CLIC(含 vCLIC)、PLIC,支持动态中断路由与可配外部中断源/目标数 |
| 调试 | RISC-V Debug Module + JTAG TTM,可调试 CVA6 及外部任意数量 hart(如加速器里的核) |
| 实时性 | 每 manager 口独立的 AXI4 流量调节器(AXI-RT) 做带宽隔离,以及 UNBENT 总线错误单元 |
| 引导 | 被动预加载(JTAG / UART / D2D)或自主引导(SPI Flash / I2C EEPROM / 支持 GPT 分区的 SD 卡) |
内部地址空间固定在 0x0--0x2000_0000,关键节点:Debug ROM 0x0、Boot ROM 0x0200_0000、CLINT 0x0204_0000、PLIC 0x0400_0000、LLC/SPM 0x1000_0000;外部资源从 0x2000_0000 起,LLC 输出区默认 0x8000_0000。
二、核心技术亮点
1. 首个开源可综合的 RPC DRAM 接口。 这是 Cheshire 论文最大的原创贡献:全数字、工艺无关的 reduced-pin-count DRAM 控制器,PHY 仅 22 个翻转 IO、3.5 kGE 面积 ,访问能耗 250 pJ/B ,200 MHz 下峰值 750 MB/s,优于同能效区间 HyperRAM 方案;32 B 传输访问外部 DRAM 仅需 8 个周期。
**2. "敏捷"存储层次。** LLC 逐路可切换为 SPM,让主机在需要时立刻获得片上 SRAM 级延迟;配合 AXI4 + Regbus 双层互连,把"高带宽突发"与"寄存器型低复杂度外设"分流。
3. 面向异构集成的接口设计。 可配数量的 AXI4 manager/subordinate 口 + 全数字 D2D 链路,本质上是把 Cheshire 设计成可插拔的 chiplet 宿主。
4. 硅验证:Neo 芯片。 TSMC 65 nm 流片,1.2 V 下最高 325 MHz ,数据密集型负载整芯片功耗 < 300 mW,面积约 6.4 mm²。这是开源 SoC 中少见的、完成 RPC DRAM 实测表征的流片案例。
三、工程与生态
- 构建体系 :Bender 管 IP 依赖 + GNU Make 编排;依赖 GNU Make ≥3.82、CMake ≥3.24、Python ≥3.11、Bender ≥0.27.1、RISC-V GCC ≥11.2,Python 侧已有
pyproject.toml+uv可复现环境。 - 目录 :
hw(RTL)、sw(软件栈/测试)、target(仿真/FPGA/ASIC)、util、doc。 - 目标平台 :仿真(QuestaSim 为主流,另有 VCS 流程)、Xilinx FPGA(Genysys2、VCU118、VCU128 支持 Linux 启动;ZCU102 因缺 SPI Flash/SD 而无法启动 Linux)、以及作为 IP 被集成。
- 软件栈 :通过
cva6-sdk构建 GCC / OpenSBI / U-Boot / Linux,生成*.gpt.bin镜像烧录 SD 卡或 SPI。 - 许可证 :硬件与工具脚本 Solderpad 0.51,寄存器生成代码 Apache 2.0,USB OHCI 为 MIT,软件 Apache 2.0------整体商业友好。
- 生态位 :它已被 Carfield(面向汽车混合关键性 SoC)用作主 host domain,负责常驻控制、时钟/复位域管理与对外 IO;也被 Headsail 等后续芯片工作引用。
四、需要留意的短板
- IO 一致性靠软件兜底 。USB、DMA 等非一致设备直写内存时,CVA6 缓存可能看不到;RISC-V 基础 ISA 无 CMO 指令,需依赖 Zicbom 扩展(2021 年 11 月 ratified)做 clean/invalidate/flush,靠上游 Linux 驱动侧维护一致性。ETHZ 已把"在 CVA6 + HPDCache + Cheshire 上集成验证 CMO、用 OHCI 驱动打通 USB 1.1"列为明确课题------说明这仍是进行中的痛点。
- 主存带宽天花板。RPC DRAM 是"低引脚数换集成成本"的取舍,750 MB/s 远低于 LPDDR 级别,不适合当作通用算力平台的主存方案。
- 工具链部分依赖商用 EDA。主流仿真流程绑定 QuestaSim/VCS,FPGA 流程绑定 Vivado;虽有开源 RTL,但完整验证体验并不"全开源"。
- 成熟度:仓库自述"仍在早期开发,接口与约定可能无预告变更";版本节奏为 v0.1.0(2024-10)→ v0.3.0(2025-04)→ v0.3.1(2025-06),2026 年仍在持续迭代(VCU128 DRAM 修复、CI 环境迁移、用 RDL 生成地址替代硬编码等)。
五、选型建议
适合:做 DSA/加速器 chiplet 的宿主控制平面、需要可流片的 Linux-capable RV64 基线、研究缓存一致性/实时互连/低引脚 DRAM、教学与体系架构实验(参数化干净、文档齐全)。
不适合:追求高内存带宽或 SMP 强一致性的通用计算、没有商用仿真器又要完整回归验证的团队、希望开箱即用的产品级平台。
上手路径建议:先 make all + QuestaSim 跑通 helloworld.spm.elf,再切 Genesys2 板卡启动 Linux,最后读 docs/um/arch 与 cheshire_pkg.sv 理解参数化边界。