第一章:硬件/软件接口
一、课程基础信息¶
1.1 参考教材¶
- 《计算机组成与设计:硬件/软件接口(RISC-V版)》- John L. Hennessy & David A. Patterson
- 《通用图形处理器设计——GPGPU编程模型与架构原理》- 景乃锋、柯晶、梁晓峣 编著,清华大学出版社
1.2 评分规则¶
| 项目 | 占比 | 说明 |
|---|---|---|
| 期末考试 | 40-50% | 核心理论考核 |
| 项目/报告 | 30-40% | 核心任务:实现一个RISC-V处理器,细节后续公布 |
| 课后作业 | 20-30% | 提交周期为一周 |
1.3 课程核心目标¶
理解高级语言程序(C/Java/Python)如何翻译为机器语言、硬件如何执行程序、软硬件接口的本质,以及CPU、GPGPU、AI NPU的核心工作原理。
二、零基础前置核心铺垫(课件28页前精简内容)¶
这部分是理解后续性能知识的必备基础,仅保留核心概念。
- 冯·诺依曼架构核心:二进制、存储程序计算机,包含运算器(ALU)、控制器、存储器、输入设备、输出设备五大核心组件。
- 程序翻译链路:高级语言 → 编译器 → 汇编语言 → 汇编器 → 二进制机器语言(硬件可直接执行)。
- 软硬件抽象层级(从顶到底):应用→算法→软件/编程语言→操作系统→指令集体系结构(ISA)→微体系结构→功能部件→电路→器件。
- ISA核心定义:软硬件之间的核心接口,是程序员编写可正确执行的二进制程序所需了解的处理器全部属性;同一ISA可对应多种硬件实现(微体系结构),如x86有Intel/AMD实现,RISC-V是课程核心的开源ISA。
- CPU核心组成:数据通路(执行数据运算)、控制器(调度硬件操作)、高速缓存(Cache)。
三、核心重点内容(课件28页及以后)¶
3.1 性能的核心定义¶
性能没有唯一的“最优标准”,完全取决于应用场景,核心分为两大维度:
| 指标 | 专业定义 | 通俗理解 |
|---|---|---|
| 响应时间(Response Time) | 完成单个任务所花费的总时间,也叫执行时间、延迟 | 点击软件到完全加载完成的耗时,决定单任务的使用体验 |
| 吞吐量(Throughput) | 单位时间内完成的总工作量 | 服务器1小时处理的用户请求数,决定系统的整体处理能力 |
关键场景结论¶
- 更换更快的处理器:同时缩短响应时间、提升吞吐量
- 增加处理器核心数量:主要提升吞吐量,单任务响应时间的提升依赖并行编程优化
本课程核心聚焦:响应时间(执行时间),这是衡量单个程序性能的黄金标准。
3.2 执行时间的两类度量¶
- 总耗时(Elapsed Time)
- 定义:完成任务的完整响应时间,包含CPU计算、I/O操作、操作系统开销、空闲等待的全部时间
- 作用:决定系统的实际使用体验
- CPU时间(CPU Time)
- 定义:CPU真正用于处理该任务的时间,扣除了I/O等待、其他程序占用的时间
- 细分:用户CPU时间(程序本身的计算)+ 系统CPU时间(操作系统为程序提供的服务耗时)
- 特点:不同程序对CPU性能的敏感度差异极大
3.3 CPU时钟与周期基础¶
数字硬件的所有操作都由恒定频率的时钟同步驱动,是CPU执行指令的时间基准:
| 术语 | 定义 | 核心关系与示例 |
|---|---|---|
| 时钟周期(Clock Period) | 一个时钟脉冲的持续时间,CPU最小的时间单位 | 与时钟频率互为倒数 示例:4.0GHz主频对应时钟周期=0.25ns=250ps |
| 时钟频率(主频/Clock Rate) | 单位时间内的时钟周期数 | 单位:Hz、MHz、GHz 示例:4.0GHz = 4.0×10⁹Hz |
3.4 CPU性能核心公式(重中之重,必须掌握)¶
这是计算机架构最核心的公式,所有性能优化都围绕该公式展开。
基础公式¶
完整拆解公式¶
时钟周期数可进一步拆解为「指令总数 × 单指令平均时钟周期数」,最终得到完整公式:
术语零基础解释¶
- 指令总数(IC):程序运行过程中,CPU需要执行的机器指令总条数
- CPI(Cycles Per Instruction):每条指令执行平均需要的时钟周期数,CPI越小,指令执行效率越高
- 时钟周期时间:单个时钟周期的时长,和主频成反比,主频越高,单周期时间越短
性能优化三大核心方向¶
- 减少程序的指令总数IC
- 降低指令的平均CPI
- 提高CPU的时钟频率(缩短时钟周期时间)
设计权衡:硬件设计中,主频和CPI往往需要取舍——提升主频可能增加单指令周期数,降低主频可能减少CPI,需综合优化。
3.5 加权平均CPI详解¶
实际场景中,不同类型指令的时钟周期数差异极大(如加法1个周期,访存10个周期),需通过加权平均计算整体CPI。
总时钟周期数公式¶
含义:每类指令的CPI × 该类指令的执行数量,全部相加得到总时钟周期数。
加权平均CPI公式¶
含义:每类指令的CPI × 该类指令在总指令中的占比,相加得到平均CPI;占比越高的指令,对整体CPI的影响越大。
3.6 功耗趋势与功率墙¶
3.6.1 CMOS芯片核心功耗公式¶
现代CPU均采用CMOS集成电路,功耗的核心计算公式为:
- 核心结论:电压对功耗的影响是平方级的,是功耗最核心的影响因素;电容负载与晶体管数量正相关。
3.6.2 功耗优化示例¶
课件示例:新CPU相比旧CPU,电容负载降至85%,电压降低15%,频率降低15%,功耗变化为:
结论:新CPU功耗仅为旧CPU的52%,其中电压降低的贡献最大。
3.6.3 功率墙(Power Wall)¶
这是现代CPU设计的核心瓶颈:
- 工作电压已无法再降低(受半导体物理极限限制)
- 芯片散热能力达到上限,无法散去更高功耗
- 最终结果:无法再通过单纯提升主频来提高性能,必须寻找新的技术路径。
3.7 单处理器性能瓶颈¶
单核心处理器的性能增长已接近停滞,不同阶段的年增长率差异极大:
- 1978-1986年:年增长约25%
- 1986-2003年:年增长约52%(主频+指令级并行的黄金时代)
- 2003-2010年:年增长降至12%
- 2010年至今:年增长仅约3.5%
核心限制因素:功率墙、指令级并行上限、内存访问延迟瓶颈。
3.8 多核处理器的架构变革¶
为突破单核心性能瓶颈,行业全面转向多核/多处理器架构,这是计算机架构的重大变革。
核心定义¶
多核微处理器:在单个芯片上集成多个独立的处理器核心(Core),不再靠单核主频提升,而是通过并行计算提升整体性能。
核心特点与挑战¶
- 必须显式并行编程:
- 指令级并行:硬件自动实现,对程序员透明,无需修改代码
- 多核并行:必须由程序员手动编写并行代码,硬件无法自动完成
- 并行编程核心难点:负载均衡(任务均匀分配给核心)、通信与同步开销优化(避免并行额外开销抵消性能收益)。
3.9 SPEC标准化性能基准测试¶
客观衡量处理器性能,必须使用标准化的基准测试程序,行业最权威的是SPEC(标准性能评估机构) 制定的测试集。
3.9.1 SPEC CPU基准测试¶
- 用途:行业通用的CPU计算性能衡量标准
- 主流版本:SPEC CPU2006、SPEC CPU2017
- 测试方法:运行覆盖真实工作负载的标准程序,记录完整执行时间,相对于参考机器归一化,最终以几何均值给出综合性能评分。
3.9.2 SPEC Power基准测试¶
- 用途:衡量服务器不同负载下的功耗效率(性能/功耗比),是数据中心核心关注指标
- 核心指标:
整体ssj_ops per Watt = 总性能之和 / 总功耗之和 - 测试方法:测试0%-100%负载(每10%一个梯度)下的性能与平均功耗,计算综合功耗效率。
3.10 经典性能谬误¶
错误认知:只关注处理器空闲时的低功耗就足够了。
- 实际数据:i7处理器100%负载功耗258W,50%负载功耗170W(66%满载功耗),10%负载功耗121W(47%满载功耗)
- 真实场景:谷歌数据中心服务器大部分时间运行在10%-50%负载,仅不到1%的时间跑满100%负载
- 正确结论:必须设计功耗与负载成正比的处理器,才能在真实场景中实现最优功耗效率。
Enjoy Reading This Article?
Here are some more articles you might like to read next: