第二章 嵌入式处理器选型:ARM、RISC-V、MIPS架构对比与选型考量

做嵌入式系统这么多年,我经常被问到的一个问题是:「老张,我这项目该用哪个核?」

说实话,这个问题没有标准答案。但如果你理解了ARM、RISC-V、MIPS这三家的底牌,选型其实就变成了一个权衡游戏。今天我就把这几年的实战经验掰开揉碎,跟你聊聊。

2.1 三大架构的「家底」对比

先看一张我整理的对比表,这样你心里有个谱:

维度 ARM RISC-V MIPS
指令集 精简指令集(RISC),但实际很「重」 极简RISC,模块化设计 经典RISC,指令规整
授权模式 IP授权,费用高 开源免费,商业版可选 IP授权,费用中等
生态成熟度 ★★★★★ 最成熟 ★★★☆☆ 快速成长 ★★☆☆☆ 逐渐萎缩
典型功耗 0.1mW ~ 5W(Cortex-M到A系列) 0.05mW ~ 3W(取决于实现) 0.2mW ~ 2W
性能天花板 极高(服务器级) 中高(正在追赶) 中等
代表芯片 STM32、i.MX、高通骁龙 SiFive、GD32V、博流BL602 龙芯、Microchip PIC32MZ

核心观点:ARM是「老大哥」,生态无敌但贵;RISC-V是「新势力」,灵活免费但生态尚在建设中;MIPS是「老将」,稳定但市场在萎缩。

2.2 ARM:为什么它成了事实标准?

ARM的成功,说白了就是「生态护城河」挖得够深。

我2015年做智能家居网关时,选的是Cortex-M4。为什么?因为当时市面上能找到的RTOS、驱动库、调试工具,几乎全是围绕ARM做的。你想想看,一个项目从立项到量产,如果每个底层驱动都要自己写,那得累死。

2.2.1 ARM的优势

  • 生态碾压:Keil、IAR、STM32CubeMX、mbed OS……工具链多到用不完。我习惯先看有没有现成的HAL库,没有才自己写。
  • 性能分级清晰:Cortex-M0(超低功耗)→ M4(带DSP)→ M7(高性能)→ A系列(应用处理器)。选型就像点菜,丰俭由人。
  • 功耗控制成熟:我记得有个电池供电的传感器项目,用Cortex-M0+,深度睡眠功耗做到了0.1μA。嗯,这个数据当时让客户很满意。

2.2.2 ARM的坑

  • 授权费贵:如果你是芯片公司,每颗芯片要交版税。小公司做量产,这笔钱很肉疼。
  • 指令集闭源:你没法改指令集。想加个自定义加速指令?对不起,不行。

我的建议:如果你的产品生命周期长、对生态依赖高、不差钱,闭眼选ARM。尤其是初学者,ARM的文档和社区支持是最好的「拐杖」。

2.3 RISC-V:开源新贵,真的能打吗?

RISC-V这几年火得不行。我2019年第一次接触它时,心里也犯嘀咕:一个开源的指令集,能跟ARM掰手腕?

后来我在一个IoT项目里试用了GD32V(基于RISC-V的MCU),发现事情没那么简单。

2.3.1 RISC-V的核心优势

  • 完全开源免费:没有授权费,没有版税。对于初创芯片公司,这简直是救命稻草。
  • 模块化设计:你可以只选你需要的指令集扩展。比如做AI加速,可以加向量扩展;做安全,可以加加密扩展。说白了,就像搭乐高。
  • 灵活定制:我有个朋友做专用DSP芯片,直接在RISC-V核上加了自定义指令,性能翻了3倍。这在ARM上想都别想。

2.3.2 现实中的「骨感」

  • 工具链还在完善:虽然GCC、LLVM都支持了,但调试器、IDE的体验跟ARM比还有差距。我曾经被一个GCC版本兼容问题折腾了两天……嗯,后来换了官方推荐的版本才搞定。
  • 生态碎片化:不同厂商的RISC-V核,外设寄存器地址可能不一样。你从GD32V换到博流BL602,代码移植工作量不小。
  • 高性能核少:目前RISC-V在低功耗MCU领域表现不错,但跑到1GHz以上的应用处理器还不多。

避坑指南:我曾经在一个量产项目里用RISC-V,结果发现某个外设的官方驱动有bug,社区也没人修。最后只能自己啃手册写驱动。所以,选RISC-V前,先确认你需要的驱动和中间件是否成熟。

2.4 MIPS:老将迟暮,但仍有「绝活」

MIPS?说实话,现在新项目用MIPS的越来越少了。但你不能说它不行。

我记得2010年做路由器时,用的就是MIPS架构的芯片。那时候MIPS在通信设备领域可是霸主。为什么?因为它的指令集非常规整,流水线设计简单,编译器优化效率高。

2.4.1 MIPS的「最后阵地」

  • 确定性执行:MIPS的指令流水线非常「干净」,没有乱序执行等复杂机制。这对实时性要求极高的场景(比如工业控制)是优势。
  • 低功耗表现不错:MIPS的微架构设计相对简单,同等工艺下功耗可以做得比ARM Cortex-A系列低。
  • 龙芯还在用:国内龙芯处理器基于MIPS指令集,在信创领域有一定市场。

2.4.2 为什么我不推荐新项目用MIPS?

  • 生态萎缩:工具链更新慢,第三方库少。你找个MIPS的FreeRTOS移植版本,可能都比ARM的费劲。
  • 性能天花板低:ARM和RISC-V都在拼命加特性(SIMD、AI加速),MIPS基本停滞了。
  • 人才难找:现在高校教MIPS的越来越少,招个熟手很难。

一句话总结:除非你是做龙芯生态的产品,或者维护老项目,否则新项目别碰MIPS。

2.5 选型考量:四个维度,一个公式

好了,三家的情况都聊完了。那具体怎么选?我习惯用四个维度来打分:功耗、性能、成本、生态

2.5.1 功耗(Power)

  • 电池供电、长期待机:首选ARM Cortex-M0+/M4,或者RISC-V的低功耗核(如SiFive E系列)。MIPS在这块没有明显优势。
  • 高性能计算、不在乎功耗:ARM Cortex-A系列是首选。RISC-V的高性能核还在追赶。

2.5.2 性能(Performance)

  • 简单控制(LED、按键、传感器):三者都能干,选最便宜的。
  • 复杂计算(音频处理、AI推理):ARM Cortex-M7或A系列,或者带DSP扩展的RISC-V。
  • 实时性要求极高:MIPS的确定性执行有优势,但ARM Cortex-R系列也不错。

2.5.3 成本(Cost)

  • 芯片单价敏感:RISC-V因为免授权费,芯片成本可以做到很低。比如GD32V系列,价格跟同性能的STM32比有优势。
  • 开发成本敏感:ARM的生态最成熟,开发周期短,人力成本低。RISC-V可能需要更多时间踩坑。

2.5.4 生态(Ecosystem)

  • 需要快速量产:ARM是唯一选择。你几乎能找到所有现成的方案。
  • 愿意投入时间定制:RISC-V适合有自研能力的团队,可以深度优化。
  • 维护老项目:MIPS,但建议尽快迁移。

我的选型公式:总分 = 功耗权重 × 功耗分 + 性能权重 × 性能分 + 成本权重 × 成本分 + 生态权重 × 生态分。每个维度1-10分,权重根据项目需求定。最后总分最高的,就是你的答案。

2.6 实战案例:一个智能门锁的选型过程

去年我帮朋友做了一款智能门锁,需求是这样的:

  • 电池供电,待机电流要低于5μA
  • 支持指纹识别、蓝牙通信
  • 成本敏感,BOM要控制在20元以内
  • 开发周期3个月

我当时的分析过程:

  1. 功耗:ARM Cortex-M0+和RISC-V低功耗核都能满足。MIPS待机功耗偏高,排除。
  2. 性能:指纹识别需要一定的算力,M0+勉强够,但最好带硬件加速。RISC-V的GD32VF103有硬件乘除法器,性能够用。
  3. 成本:GD32V系列芯片价格比同性能的STM32低30%左右。成本优势明显。
  4. 生态:蓝牙协议栈用ARM的比较多,但RISC-V也有移植好的版本。开发周期3个月,ARM更稳妥。

最后我选了ARM Cortex-M4(比如STM32L4系列)。为什么?因为生态成熟,蓝牙协议栈现成,3个月能搞定。虽然芯片贵一点,但开发时间就是金钱。

注意:如果这个项目是量产100万套,那我会重新考虑RISC-V。因为每颗芯片省2块钱,100万套就是200万。多花2个月开发时间,值不值?你自己算。

2.7 总结:没有最好的架构,只有最合适的

说了这么多,其实就一句话:选型不是技术问题,是商业问题。

ARM是「稳妥牌」,适合大多数项目。RISC-V是「潜力股」,适合有技术积累、想降成本的团队。MIPS是「情怀牌」,除非有特殊原因,否则别碰。

我个人习惯是:新项目优先考虑ARM,如果成本压力大或者需要定制指令,再考虑RISC-V。至于MIPS?嗯,让它活在回忆里吧。

下一章,我们会聊聊嵌入式系统的存储架构设计。到时候见。