下面按“技术学习卡片”帮你梳理。你这段材料的主线其实是:
SoC是什么 → SoC里有什么 → 为什么要多核 → 多核怎么分类 → 多核软件怎么部署 → 核间怎么通信1. 一句话理解 SoC
SoC,System on Chip,片上系统。
一句话:
SoC = 把一个电子系统需要的核心硬件和软件运行环境,尽量集成到一颗芯片里。过去一个系统可能需要:
CPU芯片 + DSP芯片 + 存储芯片 + 外设芯片 + 总线 + 板级互连SoC 的思路是:
把这些关键模块集成到一颗芯片上。所以 SoC 不是“一个 CPU”,而是:
一个芯片级系统。2. SoC 和普通 CPU 的区别
| 对比项 | CPU | SoC |
|---|---|---|
| 核心作用 | 通用计算 | 完整系统集成 |
| 包含内容 | 主要是处理器核和缓存 | CPU、DSP、NPU、总线、存储控制器、外设、加速器等 |
| 关注点 | 计算能力 | 系统级性能、功耗、带宽、外设、协同 |
| 典型例子 | 服务器 CPU | 手机芯片、基站芯片、嵌入式通信芯片 |
一句话:
CPU 是 SoC 里的一个重要部件,但 SoC 不等于 CPU。3. SoC 基本构成
一个典型 SoC 通常包括:
通用 CPU
DSP
网络处理器
总线 / NoC
存储系统
系统外设
专用加速器
调试接口逐个理解。
3.1 通用 CPU
作用:
运行操作系统、控制逻辑、协议栈、高层软件。适合处理:
复杂控制
分支逻辑
操作系统任务
通用业务流程例如无线系统里:
RRC、部分MAC控制、系统管理、配置控制3.2 DSP 处理器
DSP = Digital Signal Processor,数字信号处理器。
作用:
高效处理信号处理类计算。适合:
滤波
FFT/IFFT
矩阵运算
调制解调
信道估计
均衡无线通信里 DSP 很常见,因为物理层大量是信号处理。
3.3 网络处理器
作用:
处理报文转发、协议解析、包处理、队列调度等网络相关任务。适合:
高速报文收发
流表查找
QoS调度
报文分类
协议处理3.4 总线 / 片上互连
SoC 里模块很多,必须有通信通道。
总线或 NoC 负责:
CPU访问内存
CPU访问外设
加速器读写数据
多个核之间交换信息你可以把它理解为:
SoC内部的高速公路系统。如果总线设计不好,就会出现:
算力很强,但数据搬不过来。这就是典型瓶颈。
3.5 存储系统
包括:
Cache
SRAM
DDR控制器
片上共享内存
DMA存储系统决定:
数据能不能及时喂给计算单元。很多芯片性能瓶颈不是算力,而是:
访存带宽
访存延迟
Cache命中率
数据搬移开销3.6 系统外设
比如:
UART
SPI
I2C
PCIe
Ethernet
GPIO
Timer
DMA
中断控制器作用是让 SoC 和外部世界交互。
3.7 专用加速器
专用加速器是 SoC 里非常关键的一类模块。
作用:
把某些高频、重计算、固定模式的任务用硬件加速。例如:
AI加速器
加解密引擎
FEC编码/译码
FFT加速器
包处理加速器
压缩解压缩加速器优点:
速度快
功耗低
面积可控缺点:
灵活性差
适用范围窄
软件适配复杂3.8 调试接口
例如:
JTAG
Trace
性能计数器
日志接口
片上调试模块作用:
定位软件、硬件、性能、时序问题。芯片系统复杂后,调试能力非常重要。没有调试能力,SoC 不是不能跑,而是出了问题很难定位。
4. SoC 关键技术
你材料里标题有“SoC关键技术”,但内容没展开。建议你按这几个方向记:
低功耗设计
片上互连设计
存储层次设计
多核协同
硬件加速
软硬件协同
安全与隔离
可调试性4.1 低功耗设计
SoC 必须控制功耗。
常见技术:
动态电压频率调整 DVFS
时钟门控 Clock Gating
电源门控 Power Gating
多电源域
低功耗状态管理一句话:
不用的模块少供电,低负载时降频降压。4.2 片上互连
SoC 模块之间要通信。
简单系统用总线。复杂系统用 NoC。
NoC = Network on Chip,片上网络。
作用:
解决多核、多加速器、多主设备并发访问带来的互连瓶颈。4.3 存储层次设计
典型层次:
寄存器
L1 Cache
L2 Cache
L3 Cache / 共享缓存
片上 SRAM
DDR
外部存储越靠近 CPU:
速度越快
容量越小
成本越高越远离 CPU:
容量越大
速度越慢
延迟越高4.4 软硬件协同
SoC 不是单纯硬件问题。
关键是:
哪些功能放软件?
哪些功能放硬件?
哪些功能用加速器?
数据怎么搬?
中断怎么触发?
任务怎么调度?这是架构设计的核心。
5. 为什么从单核走向多核?
你材料里这部分很关键。
不是因为大家天然喜欢多核,而是单核遇到了物理限制。
5.1 功耗限制
频率提升会显著增加功耗。
粗略理解:
频率越高,动态功耗越大。
电压越高,功耗按平方增长。单核继续堆频率,会带来:
发热大
散热难
能效差
可靠性下降所以不能一直靠单核提频。
5.2 互连线延迟
芯片越来越大,线越来越长。
问题是:
晶体管变快了,但线延迟没有同比变快。结果:
数据从芯片一端传到另一端越来越慢。这限制了超大单核继续扩展。
5.3 设计复杂度
单核想继续提升性能,就要做:
更深流水线
更复杂乱序执行
更大缓存
更复杂分支预测
更多执行单元复杂度会爆炸。
相比之下,多核更容易扩展:
复制多个相对简单的核,让任务并行执行。5.4 一句话总结
多核不是单核性能路线的锦上添花,而是单核继续扩展遇到功耗、互连和复杂度瓶颈后的必然选择。6. 多核架构分类
主要分两类:
同构多核
异构多核6.1 同构多核
定义:
所有处理器核结构相同。例如:
4个一样的ARM核
8个一样的CPU核优点:
编程模型简单
任务迁移方便
软件适配容易
负载均衡容易缺点:
对不同类型任务的能效不一定最优
专用任务加速能力不足适合:
通用计算
线程并行
服务器类任务
业务类型相对统一的场景6.2 异构多核
定义:
SoC 中存在不同类型的处理器核或计算单元。例如:
CPU + DSP
CPU + NPU
CPU + GPU
CPU + 专用通信加速器优点:
不同任务放到最适合的计算单元上
性能更高
功耗更低
适合复杂业务缺点:
编程复杂
代码移植性差
核间通信开销大
调度复杂
调试复杂通信 SoC 常常是异构多核,因为无线系统里任务类型差异很大:
控制面逻辑适合CPU
信号处理适合DSP
AI推理适合NPU
FEC/FFT适合专用加速器
报文处理适合网络处理器7. AMP 和 SMP
多核软件部署主要分两类:
AMP:非对称多处理
SMP:对称多处理7.1 SMP:对称多处理
定义:
一个操作系统统一管理所有 CPU 核。特点:
所有核地位基本相同
应用不需要固定绑定某个核
操作系统负责调度任务到不同核
核间共享内存和OS资源优点:
编程简单
资源统一管理
进程线程调度方便
IPC机制成熟缺点:
对异构核支持有限
实时性控制可能弱一些
OS调度开销存在
核间竞争共享资源适合:
通用多核CPU
同构多核
Linux多核系统7.2 AMP:非对称多处理
定义:
每个 CPU 核或核组运行独立操作系统,或者运行同一操作系统的独立实例。例如:
A核跑Linux
B核跑RTOS
C核跑裸机程序
DSP跑专用任务优点:
隔离性强
实时性好
适合异构多核
每个核可以做专用任务缺点:
编程复杂
核间通信需要专门机制
资源管理复杂
调试复杂适合:
通信SoC
实时系统
CPU + DSP 异构系统
安全隔离场景7.3 SMP 和 AMP 对比
| 对比项 | SMP | AMP |
|---|---|---|
| OS 数量 | 一个 OS 管所有核 | 多个 OS 或独立运行环境 |
| 编程难度 | 较低 | 较高 |
| 实时性 | 一般 | 更好 |
| 资源管理 | OS统一管理 | 需要人工规划 |
| 核间通信 | OS IPC | IPI、共享内存、硬件队列 |
| 适合架构 | 同构多核 | 异构多核 |
一句话:
SMP 像一个领导管所有人;
AMP 像多个小团队各干各的,需要专门机制协同。8. 异构多核通信方式
异构多核最大的问题是:
不同核之间怎么通信?你材料里提到三种:
IPI中断
共享内存
硬件消息队列8.1 IPI 中断
IPI = Inter-Processor Interrupt,处理器间中断。
作用:
一个处理器主动打断另一个处理器,让它处理某件事。类比:
A核给B核打电话:你醒一下,有事处理。特点:
适合通知
不适合传大数据
延迟较低
常和共享内存配合使用典型流程:
A核把数据写到共享内存
A核发IPI通知B核
B核收到中断
B核去共享内存读取数据8.2 共享内存
定义:
多个核可以访问同一段内存地址空间。作用:
传递大量数据
共享状态
核间交换缓冲区优点:
数据传递效率高
适合大块数据
实现灵活问题:
需要同步机制
需要考虑Cache一致性
需要避免读写冲突
需要锁/信号量/环形队列你要特别记住:
共享内存不是“写进去就完事”,还要解决谁写、谁读、什么时候读、Cache是否一致。8.3 硬件消息队列
硬件消息队列是专门为核间通信设计的硬件机制。
作用:
用硬件完成消息投递、通知、排队、保序、反压等功能。优点:
比纯软件共享内存更可靠
比单纯IPI能承载更多通信语义
可以支持QoS、保序、溢出、反压适合:
核间高频消息
报文处理
多核并发任务调度
加速器与CPU协同9. IPC 邮箱
IPC = Inter-Process Communication,也可以理解为核间消息通信机制。
你材料里提到两类邮箱:
快速邮箱
普通邮箱9.1 快速邮箱
特点:
目的处理器在硬件连线时固定
不可配置
通过 mailbox 直接上报中断优点:
路径短
速度快
延迟低缺点:
灵活性差
目的核固定适合:
固定核间快速通知
实时性要求高的场景9.2 普通邮箱
特点:
源处理器和目的处理器都可配置
通过 IPC 上报中断优点:
灵活
适合多核之间动态通信缺点:
路径相对复杂
延迟可能略高10. 邮箱工作模式
你材料里提到两种模式:
自动应答
自动链接10.1 自动应答模式
核心:
一次消息传递,一个源可以指定多个目的核。
所有目的核都清除了各自中断后,才向源自动发应答中断。类比:
你发一条通知给多个同事。
只有所有同事都确认收到,系统才告诉你“全部确认完成”。适合:
一对多广播通知
需要确认所有目的核都收到的场景10.2 自动链接模式
核心:
多个消息按顺序发给目的核;
当前 mailbox 消息被确认接收后,下一条 mailbox 自动发送;
所有消息都确认后,再向源发应答。类比:
快递按顺序派送。
第一个签收后,才自动派第二个。
全部签收后,给发件人回执。适合:
多消息有顺序依赖
需要硬件自动串联发送
减少软件反复触发11. POE 队列
POE = Packet Order Enforcer,可以理解为一种支持保序的硬件消息/报文队列机制。
它解决的问题是:
多核并发处理时,报文可能乱序。
POE用于保证必要场景下的顺序。11.1 POE 两种消息类型
报文消息
支持核与核之间、加速器与核之间的报文消息交互。适合:
报文处理
网络转发
协议处理
加速器协同核间消息
支持核间自定义消息交互。适合:
控制消息
任务通知
状态同步
配置下发11.2 POE 支持 QoS 调度
说明它不仅是 FIFO 队列,还可以根据优先级管理消息。
例如:
高优先级控制消息优先处理
低优先级普通报文后处理11.3 支持报文保序
多核并发处理报文时,一个流的报文可能被不同核处理。
如果不控制,会出现:
后到的报文先处理完
先到的报文后处理完这会导致乱序。
POE 的价值是:
既允许多核并发,又尽量保证必要的报文顺序。11.4 支持消息溢出到 DDR
片上队列容量有限。
如果消息太多,可以溢出到 DDR:
队列满了,不直接丢;
部分消息暂存到DDR。代价:
DDR访问延迟更高
吞吐和实时性可能下降11.5 支持中断通知核,也支持 WFE 通知核
中断通知:
消息来了,打断CPU处理。WFE = Wait For Event。
可以理解为:
核处于等待事件状态;
消息到来后唤醒它。区别:
中断更强制;
WFE更偏低功耗等待/事件唤醒。11.6 支持消息反压
反压就是:
下游处理不过来时,通知上游慢一点或暂停发送。为什么重要?
如果没有反压:
消息越堆越多
队列溢出
丢包
延迟失控
系统雪崩反压是高吞吐系统里非常关键的稳定机制。
12. 一张图式主线
SoC
├── 处理单元
│ ├── CPU:通用控制
│ ├── DSP:信号处理
│ ├── NPU/GPU:AI/并行计算
│ └── 加速器:专用任务
│
├── 互连和存储
│ ├── 总线/NoC
│ ├── Cache/SRAM/DDR
│ └── DMA
│
├── 多核架构
│ ├── 同构多核
│ └── 异构多核
│
├── 软件部署
│ ├── SMP:一个OS管所有核
│ └── AMP:多个OS/运行环境,各核独立
│
└── 核间通信
├── IPI中断
├── 共享内存
├── IPC邮箱
└── POE消息队列13. 你最容易混的点
13.1 SoC 不是 CPU
SoC 包含 CPU,但还包括很多系统模块。
13.2 多核不是一定同构
通信芯片里异构多核非常常见。
13.3 AMP 和 SMP 的核心区别不是“核多少”
而是:
一个OS统一管理,还是多个运行环境分别管理。13.4 IPI 不是用来传大数据的
IPI 主要用来通知。
大数据一般走共享内存或硬件队列。
13.5 共享内存不是天然安全
必须考虑:
同步
互斥
Cache一致性
内存屏障
读写顺序14. 和无线通信系统的关系
SoC 架构和无线基站、终端芯片关系很强。
例如:
CPU:协议栈控制、OAM、调度控制
DSP:PHY信号处理
加速器:LDPC、Polar、FFT、加解密
网络处理器:报文转发、QoS、隧道处理
共享内存:核间数据交换
硬件队列:报文和任务分发
IPI:核间事件通知无线系统本质是:
实时性强
吞吐大
并行度高
控制逻辑复杂
信号处理密集所以非常适合异构 SoC。
15. 自测问题
Q1:SoC 和 CPU 的区别是什么?
CPU 是通用处理器,SoC 是把 CPU、DSP、存储、外设、加速器、互连等集成在一颗芯片上的系统。
Q2:为什么单核会向多核演进?
因为单核继续提升频率和复杂度会受到功耗、互连线延迟和设计复杂度限制。
Q3:同构多核和异构多核的区别是什么?
同构多核的核结构一致;异构多核包含不同类型的核,比如 CPU + DSP + 加速器。
Q4:SMP 和 AMP 的区别是什么?
SMP 是一个 OS 管理所有核;AMP 是不同核运行独立 OS 或独立实例,需要专门通信机制。
Q5:IPI 的作用是什么?
一个处理器向另一个处理器发送中断,用于通知事件。
Q6:共享内存的主要风险是什么?
同步、互斥、Cache一致性和读写顺序问题。
Q7:硬件消息队列相比 IPI 的优势是什么?
不仅能通知,还能承载消息、保序、QoS、反压、溢出管理等功能。
16. 一句话总结
SoC 是把一个完整电子系统集成到一颗芯片上。
多核是突破单核功耗、互连和复杂度瓶颈的主流路线。
通信 SoC 通常采用异构多核架构,用 CPU、DSP、加速器分别处理控制、信号处理和专用计算任务。
SMP 偏统一管理,AMP 偏独立运行;异构多核通信依赖 IPI、共享内存、IPC邮箱和硬件消息队列。你下一步不要泛泛背 SoC 概念,建议抓住这条工程主线:
任务类型 → 放到哪个计算单元 → 数据怎么搬 → 核间怎么通知 → 如何保证实时性和顺序这才是 SoC 架构真正的学习抓手。