一、 课程介绍:
为什么软件工程师需要理解CPU?
现代软件开发早已不止于“写出能跑的代码”。在追求性能优化、高并发处理、资源隔离和安全保障的今天,工程师必须理解代码在底层是如何执行的。而这些执行逻辑,背后是不断演进的CPU 微架构机制——乱序执行、缓存体系、指令并行、原子操作、内存模型、安全隔离……这些技术看似遥远,实则直接决定了你写的程序是否高效、是否安全、是否可扩展。
更重要的是,尽管今天主流平台种类繁多,如x86、ARM、RISC-V,但它们在微架构层面应对这些问题时,有高度一致的设计理念:
► 都有多级缓存(L1/L2/L3)与 Cache 一致性协议
► 都支持乱序执行、分支预测、TLB、原子操作等机制
► 都面临内存模型弱序带来的并发问题
► 都提供 SIMD 加速与硬件原语来优化性能
► 都有特权模式区分用户态/内核态,支持系统调用
► 都提供类似的性能分析手段和屏障指令语义
这说明:理解这些微架构原理,是跨平台的、长期有效的技能。
本课程围绕这三类主流架构,从共性入手,适时对比差异,构建出一套面向软件工程师的硬件感知型编程学习路径。你将从CPU 的视角审视自己的代码——理解瓶颈在哪,问题为什么发生,又该如何调优。最终写出更高效、稳健、平台适应性强的代码。
本课程将原理和实践结合,会讲解20个左右的工程案例,并提供上机操练。课程赠送树莓派4b电路板一套,用于上机操练。尽管操练的平台是ARM64,但是相关问题和调试分析方法是跨越x86、ARM和RISC-V的。
二、主办单位:
北京中际孚歌科技有限公司
北京中际赛威文化发展有限公司
三、研修时间:2026年7月16-17日 (两天授课)
四、研修地点:上海
五、适合人群:
1.芯片/平台BSP、驱动工程师:需在 x86、ARM、RISC-V 上做软件移植或调优;
2.性能优化工程师:需要深入理解 CPU 执行流程,定位程序瓶颈;
3.系统开发者:从事操作系统、驱动、内核模块或嵌入式开发;
4.并发程序设计者:关注多线程安全、原子性、内存模型和锁优化;
5.高性能应用开发者:希望提升底层理解力,写出更高效、可靠代码。
六、课程大纲
第1章 CPU流水线
1.1 前端与后端的划分:解码、取指 vs 执行、访存
1.2 Core-bound vs Memory-bound:计算密集与内存受限型程序的识别
1.3 分支预测与乱序投机:预测失败对性能的影响
1.4 取指与指令缓存的作用
1.5 Top-down微架构性能分析模型
1.6 CPU内部提供的PMU(Performance Monitoring Unit,性能监控单元
1.7实战分析:如何定位瓶颈在前端或后端
第2章 cache结构
2.1 I-cache 与 D-cache 区别与优化方法
2.2 多级 Cache(L1/L2/L3)的延迟特征
2.3 Cache一致性协议(MESI、MOESI等)概述
2.4 Cache miss 的性能代价及预取技术
2.5 Cache一致性带来的延迟与锁竞争
2.6 False Sharing:多线程程序常见性能陷阱
2.7 实战分析:代码层面如何减少cache同步开销
2.8 实例分析:典型操作系统spinlock实现的演进
第3章 RISC和CISC
3.1 CISC 特点与指令复杂性(如 x86)
3.2 RISC 特点与简化流水线设计(如 ARM)
3.3 RISC-V 与 ARM 的异同与趋势对比
3.4 融合趋势:x86 内部的 RISC 样式解码路径
第4章 乱序执行与指令依赖
4.1 什么是乱序执行(Out-of-Order Execution)
4.2 数据/控制依赖与乱序带来的并发语义问题
4.3 实战分析:编写理解硬件行为的正确代码
第5章 内存模型与屏障指令
5.1内存弱序、强序、乱序
5.2平台对比:x86、ARM、RISC-V、Alpha 的内存语义
5.3 x86、ARM、RISC-V的内存屏障指令
5.4各种内存屏障深入理解
5.5 实例分析什么场景应该用什么内存屏障
第6章 原子操作(Atomic Operations)
6.1 为什么硬件不能简单保证所有 Read-Modify-Write 的原子性?
6.2 各主流架构的原子指令支持(x86、ARM、RISC-V)
6.3 原子操作的成本分析与优化建议
第7章 单指令流多数据流
7.1 什么是 SIMD?与线程并行的区别
7.2 向量指令支持对比(x86:SSE/AVX,ARM:NEON/SVE,RISC-V:RVV)
7.3 ARM 架构的 SIMD:NEON 与 SVE 的对比与应用
7.4 RISC-V 的向量扩展(RVV):指令与硬件解耦的优势
7.5 SIMD实现向量运算的实例分析
第8章 CPU超线程
8.1 超线程(SMT)的基本原理与资源共享机制
8.2 安全问题:Spectre、Meltdown、PortSmash 的案例分析
8.3 Core-scheduling 与容器中的 SMT 安全策略
第9章 CPU的各种模式
9.1 为什么需要特权等级与 CPU 模式切换
9.2 x86 的 Ring0-Ring3 设计原理与中断门
9.3 ARM 的模式与 Exception Level(EL0-EL3)
9.4 RISC-V 的 Machine/Supervisor/User 模式划分
9.5 系统调用实现原理:int 0x80、syscall、svc、ecall 等方式对比
9.6 虚拟化和安全支持TEE(Trusted Execution Environment)
第10章 内存管理、页表和TLB
10.1 典型页表结构(X86、ARM、RISC-V的共性)
10.2 TLB miss 的性能影响与页表遍历代价
10.3 如何提高 TLB 命中率:热页、分页策略、绑核优化
10.4 大页(HugePage、Transparent HugePage)机制与性能提升分析
七、主讲专家:
宋宝华:Linux布道者,《Linux设备驱动开发详解》作者,曾为思科、阿尔卡特、朗讯、四方、意法半导体、富士施乐、代傲电子、飞利浦、南瑞、宝信、美国国家仪器、ABB、中国建设银行等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于 Linux社区,Linux内核SCHED_CLUSTER、per-numa CMA、ARM64 BATCHED_UNMAP_TLB_FLUSH、多个mTHP关键feature的作者,累计给Linux主线贡献400+个补丁。已给Linux官方内核贡献了逾3万行代码,是给Linux官方内核贡献代码最多的华人之一。
八、培训费用及注意事宜:
1.培训费:4600元/人 (含培训费、开发板一块、午餐费、资料费、证书费)。
3990元/人 (含培训费、午餐费、资料费、证书费)
2.培训期间食宿统一安排,费用自理。
3.收款、开发票、培训会务工作由北京中际孚歌科技有限公司负责。
九、证书颁发:培训结束后由主办单位向学员颁发结业证书。
十、课程咨询:010-64113137