--- tags: - 计算机系统结构 - 重点复习 - CPU性能 - CPI - MIPS create time: 2026-06-16 21:21 --- # 大题 1 — CPU 性能参数计算 ## 概述 本题考查 **CPU 性能参数**的计算方法,包括 **CPI**(每条指令平均时钟周期数)的计算、根据 CPI 求 **MIPS**(每秒百万条指令数),以及 CPU 执行时间的计算。这是课程最基础的计算题,几乎每年必考。 > [!tip] 考试重点 > 熟练掌握三个核心公式:$T = IC \times CPI \times \tau$、$MIPS = \frac{f}{CPI \times 10^6}$、$CPI = \sum_{i=1}^{n}(CPI_i \times F_i)$。计算时注意单位换算。 ## 正文 ### 一、核心公式体系 ```mermaid graph TD T["CPU Time = IC x CPI x tau"] --> IC["IC: Instruction Count"] T --> CPI["CPI: Cycles Per Instruction"] T --> tau["tau: Clock Period"] MIPS["MIPS = f / (CPI x 10^6)"] --> f["f: Clock Frequency"] MIPS --> CPI2["CPI"] T -->|"T = IC / (MIPS x 10^6)"| MIPS ``` #### 1.1 CPU 执行时间 $$T_{CPU} = IC \times CPI \times \tau$$ | 符号 | 含义 | 单位 | |:----:|------|------| | $T_{CPU}$ | CPU 执行时间 | 秒 (s) | | $IC$ | 指令条数 (Instruction Count) | 条 | | $CPI$ | 每条指令平均时钟周期数 | 周期/条 | | $\tau$ | 时钟周期时间 (Clock Period) | 秒/周期 | 等价形式: $$T_{CPU} = \frac{IC \times CPI}{f}$$ 其中 $f = 1/\tau$ 为主频(单位 Hz)。 #### 1.2 MIPS 的计算 $$MIPS = \frac{f}{CPI \times 10^6}$$ 或者等价地: $$MIPS = \frac{IC}{T_{CPU} \times 10^6}$$ | 符号 | 含义 | 单位 | |:----:|------|------| | $MIPS$ | 每秒百万条指令 | 百万条/秒 | | $f$ | 时钟频率 | Hz | | $CPI$ | 每条指令平均时钟周期数 | 周期/条 | #### 1.3 加权 CPI 的计算 当程序包含多种类型的指令时,CPI 需要**加权平均**: $$CPI = \sum_{i=1}^{n} CPI_i \times F_i$$ | 符号 | 含义 | |:----:|------| | $CPI_i$ | 第 $i$ 类指令的时钟周期数 | | $F_i$ | 第 $i$ 类指令在程序中的占比(频率) | | $n$ | 指令类型的数量 | ### 二、典型例题(参考例 1.3) > [!example] 例题 1:由指令类型占比求 CPI 和 MIPS > > **题目**:某计算机有四类指令,各类指令的 CPI 和在程序中的比例如下: > > | 指令类型 | CPI | 占比 | > |:--------:|:---:|:----:| > | 算术逻辑 | 1 | 60% | > | Load/Store | 2 | 18% | > | 分支 | 4 | 12% | > | 访存 | 3 | 10% | > > 时钟频率为 500MHz。求:(1) 平均 CPI;(2) MIPS;(3) 执行 1000 万条指令需要多少时间? > > **解题步骤**: > > **Step 1:计算加权平均 CPI** > > $$CPI = 1 \times 0.60 + 2 \times 0.18 + 4 \times 0.12 + 3 \times 0.10$$ > $$= 0.60 + 0.36 + 0.48 + 0.30 = \mathbf{1.74}$$ > > **Step 2:计算 MIPS** > > $$MIPS = \frac{f}{CPI \times 10^6} = \frac{500 \times 10^6}{1.74 \times 10^6} = \frac{500}{1.74} \approx \mathbf{287.4}$$ > > **Step 3:计算执行时间** > > $$T = \frac{IC}{MIPS \times 10^6} = \frac{10 \times 10^6}{287.4 \times 10^6} = \frac{10}{287.4} \approx \mathbf{0.0348 \text{ 秒}} \approx 34.8 \text{ ms}$$ > > 或者直接: > $$T = IC \times CPI \times \tau = 10^7 \times 1.74 \times \frac{1}{500 \times 10^6} = 0.0348 \text{ 秒}$$ > [!example] 例题 2:两种方案的性能对比(参考 A/B 卷风格) > > **题目**:同一程序在两种处理器 X 和 Y 上运行,时钟频率均为 2GHz。 > > | 参数 | 方案 X | 方案 Y | > |:----:|:------:|:------:| > | 指令条数 IC | 50 亿条 | 10 亿条 | > | 平均 CPI | 1.2 | 5.0 | > > (1) 哪个方案执行时间更短?(2) MIPS 分别是多少? > > **解题步骤**: > > **Step 1:计算执行时间** > > $$T_X = \frac{IC \times CPI}{f} = \frac{5 \times 10^9 \times 1.2}{2 \times 10^9} = \mathbf{3.0 \text{ 秒}}$$ > > $$T_Y = \frac{1 \times 10^9 \times 5.0}{2 \times 10^9} = \mathbf{2.5 \text{ 秒}}$$ > > 方案 Y 更快,加速比 $= 3.0/2.5 = \mathbf{1.2}$ 倍。 > > **Step 2:计算 MIPS** > > $$MIPS_X = \frac{2 \times 10^6}{1.2} \approx \mathbf{1666.7}$$ > > $$MIPS_Y = \frac{2 \times 10^6}{5.0} = \mathbf{400.0}$$ > > **分析**:方案 X 的 MIPS(1666.7)远高于方案 Y(400),但方案 X 的执行时间反而更长!这说明 **MIPS 不能单独作为性能比较指标**——它不考虑指令的功能复杂度差异。CPI 低不等于性能好,必须综合考虑 $IC \times CPI \times \tau$。 ### 三、MIPS 的局限性 > [!warning] 考试常考 > MIPS 的局限性包括: > > | 问题 | 说明 | > |------|------| > | 不同 ISA 不可比 | RISC 的 MIPS 通常高于 CISC,但不代表性能更好 | > | 不反映指令功能差异 | 一条复杂指令和一条简单指令在 MIPS 中等价 | > | 程序依赖性 | 不同程序在同一机器上的 MIPS 不同 | > | 可被人为优化 | 减少指令数量但增加 CPI 可能导致 MIPS 上升但性能下降 | ### 四、练习题 > [!example] 练习 1 > > 某处理器主频 800MHz,执行某程序共 2000 条指令,平均 CPI 为 4。 > > (1) CPU 执行时间是多少?(2) MIPS 是多少? > > > [!abstract]- 答案 > > (1) $T = \frac{2000 \times 4}{800 \times 10^6} = \frac{8000}{8 \times 10^8} = 10^{-5} \text{ 秒} = 10 \text{ μs}$ > > > > (2) $MIPS = \frac{800}{4} = 200$ 百万条/秒 > [!example] 练习 2(A 卷原题改编) > > 某计算机主频 600MHz,执行 2000 条指令,每条指令平均时钟周期数为 4。求 MIPS。 > > > [!abstract]- 答案 > > $MIPS = \frac{f}{CPI \times 10^6} = \frac{600 \times 10^6}{4 \times 10^6} = \mathbf{150}$ > [!example] 练习 3 > > 某程序在处理器 A 上运行需要 10 秒,处理器 A 的主频为 2GHz,CPI 为 1.5。 > > (1) 该程序有多少条指令?(2) 如果处理器 B 的主频为 3GHz,CPI 为 2.0,执行同一程序需要多长时间? > > > [!abstract]- 答案 > > (1) $IC = \frac{T \times f}{CPI} = \frac{10 \times 2 \times 10^9}{1.5} \approx 1.333 \times 10^{10}$ 条 > > > > (2) $T_B = \frac{1.333 \times 10^{10} \times 2.0}{3 \times 10^9} \approx \mathbf{8.89 \text{ 秒}}$ > > > > 处理器 B 主频更高但 CPI 也更高,最终反而更慢! ## 关联笔记 - [[计算机系统结构/复习文档/计算机系统结构基础与定量原理]] - [[大题4-Cache性能计算]] - [[小题1-冯氏分类法与并行度]]