一、RISC-V 前世今生:为什么是 RISC-V?

大家好,我是你们的嵌入式系统工程师老张。今天咱们聊聊 RISC-V 的来龙去脉。

说实话,我第一次接触 RISC-V 是在 2016 年。那时候我还在做 ARM Cortex-M 的项目,突然看到这个新架构,第一反应是:又来一个?后来深入了解后,我发现这东西真不简单。

1.1 开源指令集架构的诞生背景

先说说为什么会有 RISC-V。

你想想看,在 RISC-V 出现之前,主流的指令集架构(ISA)就那么几个:x86、ARM、MIPS、PowerPC。它们有个共同点——都是商业公司的私有财产。

这就带来几个问题:

  • 授权费用高:ARM 的授权费动辄几百万美元,小公司根本玩不起
  • 扩展受限:你想加个自定义指令?得看人家脸色
  • 生态绑定:用了 ARM 就很难切换到别的架构

我在 2014 年做过一个 IoT 项目,当时选型时就被 ARM 的授权费卡住了。最后只能退而求其次,用了某款国产 MCU,但性能差强人意。那时候我就想:要是有一个免费、开放的指令集该多好。

2010 年,加州大学伯克利分校的 Krste Asanović 教授和他的团队开始了这个项目。他们的目标很明确:做一个完全开放、免费的 RISC 指令集。2014 年,RISC-V 正式对外发布。

核心思想:RISC-V 不是某个公司的产品,而是一个开放标准。任何人都可以免费使用、修改、扩展。

1.2 RISC-V 的设计哲学

RISC-V 的设计理念,说白了就是「少即是多」。

它把指令集分成两部分:

  • 基础指令集(Base ISA):固定不变,保证兼容性
  • 扩展指令集(Standard Extensions):按需添加,灵活定制

举个例子,RV32I 是 32 位的基础整数指令集,只有 40 多条指令。你想想看,ARM 的指令集有上千条。但 RISC-V 用这 40 多条指令就能完成大部分工作。

我的经验:刚开始学 RISC-V 时,我总觉得指令太少,写汇编很麻烦。但用了一段时间后发现,指令少反而容易理解,调试起来也简单。少就是多,这话没错。

1.3 RISC-V 基金会与生态现状

2015 年,RISC-V 基金会成立。它的作用是管理 RISC-V 标准,推动生态发展。

现在的情况怎么样?我给大家列几个数据:

年份 里程碑事件
2015 RISC-V 基金会成立
2018 RISC-V 国际协会成立(总部迁至瑞士)
2021 RISC-V 国际协会会员超过 2000 家
2023 RISC-V 芯片出货量突破 100 亿颗

目前,RISC-V 的生态已经相当丰富:

  • 芯片厂商:SiFive、StarFive、平头哥、赛昉科技等
  • 开发工具:GCC、LLVM、OpenOCD、QEMU 都支持 RISC-V
  • 操作系统:Linux、FreeRTOS、Zephyr 都已适配
  • 软件生态:Python、Node.js、OpenCV 等都能跑在 RISC-V 上

注意:虽然生态发展很快,但和 ARM 相比还有差距。比如某些外设驱动、中间件可能还不完善。做项目前一定要先确认好软件支持情况。

1.4 为什么选择 RISC-V?

我总结了几点:

  1. 免费开放:没有授权费,没有法律风险
  2. 简洁优雅:指令少,学习成本低
  3. 可扩展:可以自定义指令,适合特定场景
  4. 生态成熟:工具链、操作系统、软件库都齐全
  5. 社区活跃:遇到问题有人帮忙,资料更新快

我曾经在一个工业控制项目里,需要做实时性要求很高的算法。用 ARM 的话,得买昂贵的实时核芯片。后来改用 RISC-V,自己加了几个自定义指令,性能直接翻倍。嗯,这就是开放架构的好处。

1.5 RISC-V 知识体系总览

下面这张图是我整理的 RISC-V 知识体系,方便大家有个整体认识:

RISC-V 知识体系 指令集架构 基础指令集 标准扩展 硬件实现 FPGA 原型 ASIC 设计 软件生态 工具链 操作系统 开放 · 简洁 · 可扩展 · 生态完善 从入门到实战,掌握 RISC-V 嵌入式开发

1.6 我的建议

如果你刚开始接触 RISC-V,我建议你:

  • 先理解基础指令集,别急着看扩展
  • 用 QEMU 模拟器跑一跑,不用买硬件
  • 多看官方文档,少看二手资料
  • 遇到问题去社区问,大家都很热心

一句话总结:RISC-V 不是来取代谁的,它给了我们一个自由选择的权利。作为工程师,多一个选择总是好事。


专注资料整理