ARM 架构 和 Intel x86 架构 能量感知调度

ARM 架构 和 Intel x86 架构 能量感知调度 1. 设计哲学RISC vs CISC这是两者最底层的技术分歧。x86复杂指令集 - CISC追求“力大砖飞”。x86 的指令非常复杂一条指令可能包含多个操作比如“去仓库把砖搬过来并直接砌在墙上”。优点单个指令能干很多事处理复杂计算和高性能任务能力极强。缺点硬件解码器庞大内部设计极其复杂导致功耗高、发热大。ARM精简指令集 - RISC追求“少做多跑”。ARM 的指令极其简单且基础比如将上述任务拆分为“去拿砖”、“搬砖”、“砌砖”三条独立指令。优点硬件设计相对简单执行效率极高极度省电、发热小。缺点面对同等复杂的重度任务需要执行更多的基础指令来完成早期绝对性能上限不如 x86。2. 商业模式卖芯片 vs 卖图纸它们赚钱和发展生态的方式完全不同。x86 是“封闭”的x86 架构基本被Intel 和 AMD两家公司垄断存在严格的交叉授权壁垒。你要么买 Intel 的芯片要么买 AMD 的芯片。其他公司几乎不被允许自行设计和制造 x86 处理器。ARM 是“开放”的授权模式ARM 公司自己不制造也不卖物理芯片。他们只设计架构图纸然后把这些知识产权IP授权给全世界的公司。苹果M系列芯片、高通骁龙、联发科、华为麒麟等都是买来 ARM 的图纸加入自己的专属设计再找台积电或三星代工生产出来的。3. 传统领地移动端霸主 vs PC/服务器霸主因为设计哲学的不同它们各自拿下了最适合自己的市场ARM 移动与物联网帝国因为对功耗控制到了极致全世界 99% 的智能手机、平板电脑、智能手表、汽车车机以及物联网设备内部跳动的都是 ARM 架构的芯。x86 PC 与数据中心霸主因为性能强悍且拥有几十年的 Windows/Linux 软件生态底蕴几乎所有的传统台式机、笔记本电脑、以及支撑互联网运转的数据中心服务器都是 x86 架构的天下。4. 现状互相入侵与打破次元壁以前它们井水不犯河水但现在关系变成了“直接的全面竞争”ARM 正在向上入侵 x86 的领地苹果的 M 系列芯片彻底颠覆了 PC 市场证明了基于 ARM 架构不仅能做到极度省电还能爆发出比肩甚至超越 x86 的桌面级性能。此外亚马逊AWS Graviton、谷歌等巨头也在数据中心大规模部署自研的 ARM 服务器芯片以此降低高昂的电费成本。x86 也在学习 ARM 的长处x86 曾经尝试进入手机市场Intel Atom 系列但因功耗过高而惨败。现在x86 开始深刻汲取 ARM 的低功耗理念。比如我们前面讨论的Intel 14 代处理器采用的“大小核P-core E-core”设计本质上就是 x86 阵营向 ARM 经典的 big.LITTLE 架构学习并妥协的产物。总结对比表对比维度ARM 架构x86 架构全称Advanced RISC Machine80x86 (源自 Intel 8086)指令集类型RISC (精简指令集)CISC (复杂指令集)核心优势极低功耗、高能效比极强单核性能、复杂计算能力商业模式IP 授权 (卖设计方案给各家)垄断制造 (Intel/AMD 直接卖成品芯片)统治级市场手机、平板、物联网、智能家居桌面电脑、传统笔记本、企业级服务器代表产品/厂商苹果 A/M 系列、高通、联发科Intel Core (酷睿)、AMD Ryzen (锐龙)简单来说ARM 和 x86 就像是交通工具里的“高能效混动轿车”和“大马力重型卡车”。曾经它们各司其职但在现在的科技战场上轿车造出了能拉货的高性能版卡车也装上了省油的混动系统两者正在未来的计算领域展开正面对决。回到顶部ARM 架构和Intel x86 架构能量感知调度虽然手机Android和普通的电脑如 Ubuntu底层都跑着 Linux 内核但由于ARM 架构和Intel x86 架构的设计哲学完全不同它们在处理“大小核异构核心”调度时走的是两条截然不同的道路。我们可以用一句话来概括它们的核心差异手机端是“软件内核当家做主”而 PC 端是“硬件CPU提供情报软件按图索骥”。为了更直观地对比我为您整理了如下表格和详细总结核心差异对比表对比维度手机端 (ARM 架构 Android/Linux)PC 端 (Intel 混合架构 桌面 Linux)底层架构名称big.LITTLE / DynamIQ性能核 (P-core) 能效核 (E-core)核心调度机制EAS(能量感知调度)ITMT(非对称容量调度) HFI(硬件反馈)调频驱动 (Governor)schedutil(软件算法驱动)intel_pstate(硬件 HWP 自动控制)功耗数据的来源静态能量模型 (Energy Model)写死在设备树(DTS)中基于出厂测试。动态硬件反馈 (Thread Director)CPU 内部微控制器实时测量并告诉内核。决策大脑Linux 内核每次调度都要算一笔复杂的“功耗 vs 性能”数学账。CPU 硬件 内核硬件给出核心优先级排序内核无脑把重任务丢给高分核心。首要设计目标绝对省电在严格的发热和电池限制下尽量维持流畅。性能优先兼顾能效优先保证桌面级的高性能输出闲时再省电。1. 手机端 (ARM)在手机上电池容量非常有限散热全靠被动没有风扇。因此Linux 内核必须充当一个精打细算的管家。完全依赖软件计算内核手里拿着一张厂商出厂时给的“功耗价目表”Energy Model。预测未来每次一个任务比如微信来消息了需要运行内核的 EAS 算法都要预测“如果放小核跑要多久耗多少电放大核呢”综合算力需求和电量消耗后才做出决定。缺点这种纯软件的计算本身也会消耗一点点 CPU 资源且无法做到微秒级的极速响应。2. PC 端 (Intel)Intel 觉得让 Linux 内核去猜功耗太慢了直接在 CPU 硅片里塞进了一个专门的微控制器硬件级别的“调度秘书”即 Intel Thread Director。硬件主动汇报 (HFI)这个硬件秘书每隔几毫秒就会对当前的温度、供电、每个核心的负载进行评估然后给内核发一张“实时能力榜单”HFI 表格告诉内核“现在 P 核性能最高E 核最省电”。内核轻松分配 (ITMT)Linux 内核通过 ITMT 机制收到这张榜单后工作就变得非常简单了。不需要做复杂的数学运算只需要“按榜抓人”前台打游戏的重型线程直接分给榜单上排第一的 P 核后台下载文件的线程直接扔给榜单垫底的 E 核。硬件自己控频 (intel_pstate)至于 CPU 跑多少频率内核不管了交给 CPU 自己HWP根据负载瞬间完成升降频。总结手机 (EAS)像是纯手工记账每一笔计算任务分配都要查表比对为了省电做到了极致的微操。Linux PC (ITMT/HFI)则是高度自动化CPU 硬件把最难的功耗评估工作做完了Linux 内核只需要配合硬件的“暗示”去分配任务即可效率极高。回到顶部Intel 混合架构查看是否感知并开启了大小核调度在Intel 混合架构如14 代酷睿的 Linux 系统上查看是否感知并开启了大小核调度的正确方法可以精简总结为以下三个核心验证步骤。请彻底抛弃 ARM 架构的ENERGY_AWAREEAS概念只需关注 Intel 专属的底层机制第一步验证调频驱动是否由 Intel 硬件接管 (最基础)您需要确认 CPU 的频率升降控制权是否已经交给了硬件而不是由内核软件如schedutil去猜。执行命令cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver成功标志输出intel_pstate。您的状态已成功。这意味着 CPU 会根据底层硬件反馈自动且极速地调节频率。第二步验证非对称容量调度是否开启 (最关键)这是判断 Linux 内核是否知道“谁是大核、谁是小核”的最核心指标。内核通过 ITMTIntel Turbo Boost Max Technology 3.0机制为每个核心分配不同的优先级得分。执行命令cat /proc/sys/kernel/sched_itmt_enabled成功标志输出1。您的状态已成功根据您上一轮的反馈。输出1代表内核在调度时会明确把高性能任务优先扔给得分更高的 P 核大核。第三步检查内核日志中的硬件反馈接口 (可选辅助)Intel 处理器内部有一个微控制器Thread Director会通过 HFI硬件反馈接口给内核发送实时的能效榜单。执行命令dmesg | grep -i intel_hfi成功标志看到类似intel_hfi: HFI configured and enabled的日志。您的状态未查到正常现象。您的dmesg输出里只有asymmetric key这是 Linux 加密子系统的日志与 CPU 无关。没查到 HFI 日志通常是因为开机时间较长早期的内核启动日志已经被滚动覆盖了。只要第二步的 ITMT 是1就说明底层接口已经通了。总结挂载 debugfs 报错提示already mounted是正常的Ubuntu 默认已经挂载好了。查ENERGY_AWARE没结果完全正常。在 Intel x86 平台上它必须是关闭状态或者无输出因为 Intel 不用手机 ARM 架构的那套算法。