第二章:芯片核心架构解析
各位工程师朋友,咱们今天聊聊芯片的“五脏六腑”。
做智能驾驶芯片选型,光看算力数字可不行。你得知道里面那些计算单元——CPU、GPU、NPU、DSP、ISP、MCU——到底怎么分工,怎么协作。说白了,这就是一个异构计算架构的“团队配合”问题。
我个人习惯,拿到一颗芯片的 datasheet,先不看峰值算力,而是先看它的数据流图。为什么?因为算力再高,数据搬不动、喂不饱,那就是白搭。我在项目中就吃过这个亏,后面会细说。
2.1 六大计算单元:各司其职
先一个个认识一下这些“队员”。
| 单元 | 核心职责 | 典型场景 |
|---|---|---|
| CPU | 逻辑控制、任务调度、复杂分支 | 决策规划、传感器融合调度 |
| GPU | 大规模并行浮点运算 | 图像渲染、点云预处理 |
| NPU | 神经网络推理加速 | 目标检测、语义分割 |
| DSP | 信号处理、数学运算 | 雷达信号处理、音频降噪 |
| ISP | 图像信号处理 | RAW图转RGB、HDR合成 |
| MCU | 实时控制、安全监控 | 执行器控制、功能安全看门狗 |
嗯,这里要注意:CPU 不是万能的。你想想看,让一个大学教授去干搬砖的活,效率肯定低。CPU 擅长的是“想”,不是“算”。
CPU:大脑中的“项目经理”
CPU 负责调度一切。它跑的是 Linux 或者 QNX 系统,管理任务优先级、内存分配、中断响应。我见过一些方案,把大量图像预处理丢给 CPU 做,结果 CPU 占用率飙到 90%,导致决策规划延迟。这其实是个坑。
GPU:曾经的“算力担当”
GPU 最初是为图形渲染设计的,但它的 SIMT(单指令多线程)架构天然适合矩阵运算。在智能驾驶里,GPU 常用于点云处理、BEV 视角转换。不过,GPU 的功耗确实高。我记得有个项目,GPU 跑满时整板功耗直接飙到 150W,散热方案改了三版。
NPU:AI 时代的“特种兵”
NPU 是专门为神经网络设计的。它内部有大量的 MAC(乘加运算单元),可以一条指令完成一组矩阵乘法。选型时,我建议重点关注 NPU 的利用率,而不是只看 TOPS。有些芯片标称 100TOPS,实际跑 YOLOv5 时利用率只有 30%,那还不如 50TOPS 但利用率 80% 的芯片。
DSP:信号处理的“老黄牛”
DSP 在雷达和音频处理中不可或缺。它的 VLIW(超长指令字)架构可以一个周期执行多条指令。做毫米波雷达的朋友应该深有体会——CFAR 检测、多普勒 FFT,这些活 DSP 干得比 CPU 快一个数量级。
ISP:图像质量的“守门员”
摄像头 RAW 数据进来,ISP 负责去噪、白平衡、HDR 合成。我曾经踩过一个坑:选了一颗 ISP 能力弱的芯片,结果夜间行车时图像噪点太多,导致 NPU 的检测率直接掉了 15 个百分点。所以,ISP 的好坏直接影响感知上限。
MCU:安全的“最后一道防线”
MCU 通常跑在 ASIL-D 安全等级下。它不参与复杂计算,但负责监控主芯片是否“死机”。一旦主芯片心跳信号丢失,MCU 会立刻接管,执行紧急刹车或降级操作。这个角色,说白了就是“安全气囊”。
2.2 异构计算架构:如何让它们“说同一种语言”
六个单元各有所长,但怎么让它们高效协作?这就是异构计算架构要解决的问题。
我画了一张图,帮你理解数据是怎么流动的:
你看,数据从传感器进来,先经过 ISP 做图像预处理,然后存入 DDR。NPU 和 GPU 从 DDR 取数据做推理和计算,CPU 负责调度和决策,最后 MCU 执行控制指令。整个流程,DDR 就是那个“数据中转站”。
2.3 数据流与带宽瓶颈:算力再高也怕“堵车”
好,现在问题来了。六个单元都在抢 DDR 的带宽,谁抢得多?谁抢得急?
我举个例子。一颗 8MP 摄像头,30fps,RAW12 格式,数据量是多少?
分辨率:3840 × 2160 = 8,294,400 像素
每像素:12 bit = 1.5 Byte
单帧:8,294,400 × 1.5 = 12.44 MB
30fps:12.44 × 30 = 373 MB/s
这只是一路摄像头。如果车上装了 11 路摄像头,再加上激光雷达点云、毫米波雷达数据,总带宽需求轻松超过 5 GB/s。
核心观点:芯片的 DDR 带宽是共享资源。NPU 推理、GPU 渲染、ISP 写入、CPU 读取,全都在争抢这条“高速公路”。选型时,我建议你重点关注两个指标:
- DDR 带宽(单位 GB/s)—— 决定了数据搬运的上限
- 片内 SRAM 大小 —— 决定了能否减少 DDR 访问
为什么会这样?因为 DDR 访问的功耗远高于片内 SRAM。你想想看,数据从片外 DDR 搬进来,一次访问可能要几十纳秒,功耗是 SRAM 的 10 倍以上。所以,减少 DDR 访问次数是优化功耗和性能的关键。
我的经验:选型时,如果芯片的 NPU 有 2MB 以上的片内 SRAM,那它就能把模型权重和中间特征图“装”在片内,推理时几乎不用访问 DDR。这种芯片的实际性能,往往比那些只靠 DDR 带宽的芯片强得多。
带宽瓶颈的典型场景
我曾经遇到一个项目,芯片标称 256GB/s 的 DDR 带宽,看起来挺够用。但实际跑起来,NPU 推理 + GPU 渲染 + ISP 写入同时进行时,带宽利用率飙到 95%,导致 CPU 读取数据时频繁等待,决策延迟从 50ms 涨到了 120ms。
后来怎么解决的?我们把 ISP 的输出分辨率从 4K 降到了 1080p,同时开启了 NPU 的片内 SRAM 缓存。带宽利用率降到了 70%,决策延迟回到了 60ms。嗯,这就是典型的“带宽瓶颈”问题。
避坑指南:我曾经选过一颗芯片,只看算力没看带宽。结果发现 NPU 和 GPU 共用一条 128-bit LPDDR4 通道,带宽只有 34GB/s。跑一个 8 路摄像头 + 激光雷达的融合方案,直接卡死。后来换了支持 LPDDR5 的芯片,带宽翻倍,问题才解决。
所以,我建议你选型时,先算带宽需求,再看算力。带宽不够,算力就是空中楼阁。
2.4 异构计算的设计理念:让专业的人做专业的事
异构计算的核心思想,说白了就是“把合适的任务分配给合适的计算单元”。
- CPU:跑操作系统、做任务调度、处理复杂逻辑分支。它不擅长大量重复计算。
- GPU:做大规模并行计算,比如点云体素化、BEV 特征图生成。它功耗高,但通用性好。
- NPU:专门跑神经网络。它功耗低、效率高,但只能跑固定算子。
- DSP:做信号处理,比如 FFT、滤波。它比 CPU 快,比 GPU 省电。
- ISP:处理图像 RAW 数据。它硬件流水线固定,延迟极低。
- MCU:做实时控制和安全监控。它不跑 Linux,只跑裸机或 RTOS。
你想想看,如果让 CPU 去跑神经网络,那效率得多低?反过来,让 NPU 去处理中断响应,它也干不了。所以,异构计算就是“各司其职,各尽其能”。
我个人习惯,在设计数据流时,会画一张类似上面的 SVG 图,标出每个单元的数据输入输出、带宽需求、延迟要求。然后问自己三个问题:
- 数据从哪里来?到哪里去?
- 哪个单元处理最合适?
- 带宽够不够?有没有瓶颈?
这三个问题想清楚了,芯片选型就成功了一半。
好了,这一章我们聊了芯片的六大核心单元、异构计算的设计理念,以及数据流与带宽瓶颈。下一章,我们会深入聊聊算力评估与实测方法——毕竟,纸上谈兵终觉浅,绝知此事要躬行。
公众号:蓝海资料掘金营,微信deep3321