一、SoC调度概览:手机SoC架构演进、大小核架构与DSU、调度器核心目标

大家好,我是你们的老朋友。今天咱们正式开讲这门课的第一章。

说实话,做了这么多年芯片底层,我见过太多工程师一上来就扎进调度算法里,结果连SoC长什么样都没搞清楚。嗯,这就像你连方向盘都没摸熟,就想去跑赛道——不翻车才怪。

所以这一章,我们先打好地基。我会带你从手机SoC的架构演进讲起,再深入大小核与DSU的设计逻辑,最后聊聊调度器到底在追求什么。

1.1 手机SoC架构演进:从单核到异构多核

手机SoC的发展史,说白了就是一场「既要马儿跑,又要马儿少吃草」的博弈。

早期手机芯片,比如ARM Cortex-A8时代,大家都是单核。那时候功耗低,发热小,但性能也弱。后来大家发现,光靠提高主频不行——频率一高,功耗直接爆炸。我记得当年某款芯片为了冲高频,散热片都快赶上手机厚了,用户体验极差。

于是,多核架构登场了。

但多核也有坑。你想想看,四个大核全开,性能是上去了,可电池撑不过半天。所以后来ARM搞出了big.LITTLE架构——大小核混搭。大核负责重活,小核处理轻任务,这才算找到了平衡点。

到了近两年,ARM又推出了DSU(DynamIQ Shared Unit)架构。这玩意儿把大小核的调度灵活性又提升了一个档次。我项目中遇到过一款旗舰SoC,用了DSU后,能效比直接提升了15%以上。

核心演进路线: 单核 → 同构多核 → big.LITTLE异构 → DSU动态异构

1.2 大小核架构与DSU:到底怎么分工?

大小核架构,听起来简单,但实际设计起来门道很多。

先看一张我手绘的架构图,帮你理清思路:

DSU (DynamIQ Shared Unit) 大核集群 (Cortex-X / A7xx) Core 0 Core 1 Core 2 L2 Cache (共享) 小核集群 (Cortex-A5xx) Core 3 Core 4 Core 5 L2 Cache (共享) 系统缓存 (System Cache / L3) 内存控制器 (DDR Controller) CCI/CMN 总线

这张图里,DSU是大脑,负责协调所有核心。大核集群(比如Cortex-X系列)主频高、性能强,但功耗也大。小核集群(Cortex-A5xx系列)省电,适合后台任务。

我个人的习惯是,把DSU理解成一个「智能管家」。它手里握着系统缓存(L3),所有核心共享。当一个大核需要数据时,DSU会先查L3,命中就直接拿,不用去内存里翻——这能省不少电。

避坑指南: 我曾经在调试一款手机时,发现大核频繁唤醒小核,导致功耗异常。后来查了半天,原来是DSU的缓存一致性协议没配好。记住:DSU的共享缓存是双刃剑,用好了是神器,用不好就是电老虎。

1.3 调度器核心目标:性能、功耗、温控的三角博弈

调度器到底在干什么?说白了就三件事:

  • 性能: 该快的时候必须快,不能卡顿
  • 功耗: 不该快的时候省着点,别让电池崩了
  • 温控: 别让芯片烫到能煎鸡蛋

这三者是个不可能三角。你追求极致性能,功耗和温度必然飙升。你拼命降频省电,用户就会骂你手机卡成PPT。

所以调度器的核心目标,就是在这三者之间找到「动态平衡点」。

举个例子,你刷微博时,调度器会把任务扔给小核。但当你点开一个大型游戏,调度器会迅速把大核唤醒,甚至把频率拉到最高。这个过程有多快?我实测过,从检测到负载变化到完成迁移,Linux内核的调度器大概需要1-2毫秒。

调度器三大核心指标:
  • 响应延迟: 用户操作后,多久能感受到反馈
  • 能效比: 每瓦功耗能产出多少性能
  • 温度平滑度: 温度变化是否剧烈,会不会触发降频

你想想看,如果调度器只盯着性能,那手机就是个暖手宝。如果只盯着功耗,那手机就是个老年机。真正优秀的调度策略,是让用户「感觉不到」调度器的存在——该快时快,该省时省。

我记得有一次帮某厂商调优,他们的调度器在游戏场景下频繁触发温控降频,导致帧率像过山车。后来我改了一下负载预测算法,让调度器提前0.5秒预判升温趋势,提前降频而不是等温度爆了再降。效果立竿见影,帧率稳了,温度也没超限。

注意: 调度器不是万能的。它只能做「软控制」,真正的硬件限制(比如散热能力、电池放电能力)是调度器无法突破的天花板。所以做调优时,一定要先摸清硬件底牌。

1.4 本章小结

这一章我们聊了三个核心点:

  1. SoC从单核演进到DSU架构,本质是性能和功耗的博弈
  2. 大小核分工明确,DSU是协调中枢,系统缓存是共享资源池
  3. 调度器的目标是在性能、功耗、温控之间找平衡,而不是追求单一极致

嗯,地基打好了。下一章我们会深入Linux内核的调度器源码,看看CFS调度器到底是怎么工作的。到时候我会带你看一段实际的代码,手把手分析调度流程。

今天就到这里。有问题随时在群里问我,我看到就会回。


专注资料整理