Skip to content

408 计算机组成原理

408

计算机组成原理

CO-01-02 性能指标(CPI/MIPS/FLOPS/主频/吞吐量)


一、定位信息

项目内容
所属圈层核心层
考点热度H级(高频重点) — 近5年真题中出现 ≥4 次,单次分值2–5分;选择题和综合计算题均有涉及,是第一章最核心的考点
前置知识回顾需了解"指令"的基本概念(一条指令完成一个基本操作)、"时钟周期"的概念(CPU完成一个最基本操作所需的时间)。若不了解,可先阅读CO-01-01中关于指令系统的简要描述
知识网络定位本单元是衡量计算机系统性能的核心工具,后续CPU流水线性能分析(CO-05-07)、存储器性能(CO-03-08 Cache命中率)、总线带宽(CO-06-03)等均以本单元公式为基础

二、知识点讲解

2.1 基本时间单位

在讨论性能指标之前,需要明确以下时间单位的关系:

术语符号定义说明
时钟周期TclkT_{clk}时钟信号的一个完整周期CPU完成一个最基本操作所需的时间,单位通常为ns
时钟频率(主频)ff每秒时钟周期数f=1/Tclkf = 1/T_{clk},单位为Hz,现代CPU主频通常为GHz级别
CPICPI\text{CPI}执行一条指令平均需要的时钟周期数Clock Cycles Per Instruction
指令条数NN程序中执行的指令总条数由程序和编译器共同决定

主频:主频是CPU时钟信号的频率,反映CPU内部时钟的快慢。主频越高,每个时钟周期越短,CPU执行操作的速度越快。但主频不等于性能——相同主频下,不同架构的CPU每条指令完成的工作量不同(CPI不同),因此实际性能也不同。

2.2 核心性能指标

(1)CPU执行时间

CPU执行一个程序所需的时间是最根本的性能度量:

TCPU=N×CPI×TclkT_{CPU} = N \times \text{CPI} \times T_{clk}

或等价地:

TCPU=N×CPIfT_{CPU} = \frac{N \times \text{CPI}}{f}

其中:

  • NN:程序执行的指令总条数
  • CPI\text{CPI}:每条指令的平均时钟周期数
  • TclkT_{clk}:时钟周期
  • ff:时钟频率(主频)

理解要点:CPU执行时间由三个因素共同决定——指令条数(与ISA和编译器有关)、CPI(与微架构有关)、主频(与电路工艺有关)。提高任何一个因素都能缩短执行时间。

(2)CPI(Cycles Per Instruction)

CPI=执行程序所需的时钟周期总数指令总条数=i=1n(CPIi×Ni)N\text{CPI} = \frac{\text{执行程序所需的时钟周期总数}}{\text{指令总条数}} = \frac{\sum_{i=1}^{n}(CPI_i \times N_i)}{N}

其中 CPIiCPI_i 是第 ii 类指令的CPI,NiN_i 是第 ii 类指令的执行次数,N=NiN = \sum N_i 是指令总条数。

关键理解

  • CPI是一个平均值,不同类型的指令CPI不同(如访存指令比寄存器指令慢)。
  • CPI与ISA、微架构、编译器优化都有关。
  • CPI越小,说明每条指令平均需要的时钟周期越少,CPU效率越高。

(3)MIPS(Million Instructions Per Second)

MIPS=NTCPU×106=fCPI×106\text{MIPS} = \frac{N}{T_{CPU} \times 10^6} = \frac{f}{\text{CPI} \times 10^6}

其中:

  • NN:指令总条数
  • TCPUT_{CPU}:CPU执行时间(秒)
  • ff:主频(Hz)
  • CPI\text{CPI}:平均每条指令的时钟周期数

MIPS的含义:每秒执行多少百万条指令。MIPS值越高,表示CPU处理指令的速度越快。

MIPS的局限性

  • MIPS依赖于指令集——不同ISA的计算机,一条指令完成的工作量不同,MIPS不可直接比较。
  • 同一计算机执行不同程序时MIPS可能不同。
  • MIPS可能与实际性能矛盾(如某程序优化后指令数减少,MIPS可能下降但执行时间缩短)。

(4)FLOPS(Floating-Point Operations Per Second)

FLOPS=浮点运算次数TCPU\text{FLOPS} = \frac{\text{浮点运算次数}}{T_{CPU}}

FLOPS的含义:每秒执行多少次浮点运算。主要用于衡量科学计算、图形处理等浮点密集型任务的性能。

常用单位:

单位缩写数值
千次浮点运算/秒kFLOPS10310^3 FLOPS
百万次浮点运算/秒MFLOPS10610^6 FLOPS
十亿次浮点运算/秒GFLOPS10910^9 FLOPS
万亿次浮点运算/秒TFLOPS101210^{12} FLOPS

(5)吞吐量与响应时间

指标定义衡量对象
吞吐量(Throughput)单位时间内完成的工作量(如处理的任务数、数据量)系统整体处理能力
响应时间(Response Time / Latency)从提交任务到得到结果所需的时间单个任务的完成速度

两者的关系

  • 响应时间关注"快不快",吞吐量关注"多不多"。
  • 提高吞吐量不一定降低响应时间(如增加CPU核心数可提高吞吐量,但单个任务的响应时间不变)。
  • 降低响应时间通常也能提高吞吐量(单位时间内可以完成更多任务)。

(6)总线带宽

总线带宽=总线宽度(位)×总线时钟频率(Hz)8(单位:B/s)\text{总线带宽} = \frac{\text{总线宽度(位)} \times \text{总线时钟频率(Hz)}}{8} \quad (\text{单位:B/s})

对于采用总线周期(每个周期传输一次)的情况:

总线带宽=总线宽度8×总线时钟频率每个总线事务占用的时钟周期数\text{总线带宽} = \frac{\text{总线宽度}}{8} \times \frac{\text{总线时钟频率}}{\text{每个总线事务占用的时钟周期数}}

2.3 性能指标之间的关系汇总

TCPU=N×CPI×Tclk=N×CPIfT_{CPU} = N \times \text{CPI} \times T_{clk} = \frac{N \times \text{CPI}}{f}

MIPS=fCPI×106\text{MIPS} = \frac{f}{\text{CPI} \times 10^6}

FLOPS=浮点运算次数TCPU\text{FLOPS} = \frac{\text{浮点运算次数}}{T_{CPU}}

重要关系推导

将CPU执行时间公式变形:

TCPU=N×CPI×TclkT_{CPU} = N \times \text{CPI} \times T_{clk}

由此可知,要提高CPU性能(缩短 TCPUT_{CPU}),可以:

  1. 减少指令条数 NN(优化ISA、改进编译器)
  2. 降低CPI(改进微架构,如采用流水线、超标量)
  3. 提高主频 ff(改进电路工艺、缩短关键路径)

三、记忆与理解辅助

技巧1:CPU时间公式的"三角形记忆法"

画一个三角形,顶上写 TCPUT_{CPU},左下写 N×CPIN \times \text{CPI},右下写 TclkT_{clk}(或 1/f1/f)。三个量的关系是:顶 = 左 × 右。遮住任意一个,剩下两个的乘积(或商)就是它。

技巧2:CPI vs MIPS 的对比记忆

对比维度CPIMIPS
含义每条指令平均时钟周期数每秒百万条指令
方向越好越好
关系MIPS=f/(CPI×106)\text{MIPS} = f / (\text{CPI} \times 10^6)CPI越小,MIPS越大
局限依赖指令集,不同ISA不可直接比同左
适用场景分析微架构效率快速估算性能

记忆口诀:"CPI低效率高,MIPS高速度快;二者互为倒数关系(与主频相关)。"

技巧3:MIPS的"反直觉"理解

MIPS可能与性能矛盾:程序优化后指令数大幅减少,执行时间缩短了(性能提升了),但MIPS可能反而下降。这是因为MIPS = 指令数 / 时间,如果指令数减少的比例大于时间减少的比例,MIPS就下降了。

所以记住:MIPS高 ≠ 性能好,MIPS只是一个参考指标。

技巧4:FLOPS只管浮点

FLOPS = Float Operations Per Second,只统计浮点运算。整数运算、逻辑运算不计入FLOPS。因此FLOPS主要衡量科学计算、图形渲染等浮点密集型场景的性能,不适合衡量通用计算性能。


四、例题与精解

例题1(基础)

题目:某计算机主频为 2GHz2\,\text{GHz},某程序共有 5×1095 \times 10^9 条指令,平均CPI为 2.52.5。求:

(1)CPU执行时间;
(2)MIPS值。

命题意图:考查CPU执行时间和MIPS的公式应用,是本单元最基础的计算题。

审题分析

  • 已知:f=2GHz=2×109Hzf = 2\,\text{GHz} = 2 \times 10^9\,\text{Hz}N=5×109N = 5 \times 10^9CPI=2.5\text{CPI} = 2.5
  • 求解:TCPUT_{CPU}MIPS\text{MIPS}

解题思路:直接代入公式即可。

完整步骤

(1) CPU执行时间

TCPU=N×CPIf=5×109×2.52×109=12.5×1092×109=6.25sT_{CPU} = \frac{N \times \text{CPI}}{f} = \frac{5 \times 10^9 \times 2.5}{2 \times 10^9} = \frac{12.5 \times 10^9}{2 \times 10^9} = 6.25\,\text{s}

(2) MIPS值

MIPS=fCPI×106=2×1092.5×106=800MIPS\text{MIPS} = \frac{f}{\text{CPI} \times 10^6} = \frac{2 \times 10^9}{2.5 \times 10^6} = 800\,\text{MIPS}

或用另一种方法验证:

MIPS=NTCPU×106=5×1096.25×106=800MIPS\text{MIPS} = \frac{N}{T_{CPU} \times 10^6} = \frac{5 \times 10^9}{6.25 \times 10^6} = 800\,\text{MIPS}

两种方法结果一致。

方法反思

  • 注意单位换算:主频GHz要转为Hz(×10⁹),MIPS中的"M"是10⁶。
  • 公式的两种形式要能灵活互推。
  • 变式方向:给定MIPS和主频求CPI,或给定执行时间和MIPS求指令条数。

例题2(中等)

题目:某程序包含三类指令,各类指令的执行次数和CPI如下表所示:

指令类型执行次数CPI
A类(算术指令)2×1092 \times 10^91
B类(访存指令)1×1091 \times 10^94
C类(控制指令)1×1091 \times 10^92

若该程序在主频为 3GHz3\,\text{GHz} 的CPU上运行:

(1)求程序的平均CPI;
(2)求CPU执行时间;
(3)若通过优化编译器,将B类指令的 50%50\% 替换为等价的A类指令(A类指令数增加 1×1091 \times 10^9 条,B类指令数减少 5×1085 \times 10^8 条),优化后CPU执行时间缩短了多少?

命题意图:考查加权平均CPI的计算、CPU时间计算,以及"指令数-CPI-主频"三因素对性能影响的综合分析。

审题分析

  • 已知三类指令的次数和CPI,以及主频。
  • 需先求加权平均CPI,再求执行时间。
  • 第(3)问需要重新计算优化后的执行时间并比较。

解题思路:按公式逐步计算,第(3)问需要先算出优化后的指令分布,再重新计算。

完整步骤

(1) 平均CPI

指令总条数:

N=2×109+1×109+1×109=4×109N = 2 \times 10^9 + 1 \times 10^9 + 1 \times 10^9 = 4 \times 10^9

总时钟周期数:

总周期=(CPIi×Ni)=1×2×109+4×1×109+2×1×109\text{总周期} = \sum (CPI_i \times N_i) = 1 \times 2 \times 10^9 + 4 \times 1 \times 10^9 + 2 \times 1 \times 10^9=2×109+4×109+2×109=8×109= 2 \times 10^9 + 4 \times 10^9 + 2 \times 10^9 = 8 \times 10^9

平均CPI:

CPI=8×1094×109=2\text{CPI} = \frac{8 \times 10^9}{4 \times 10^9} = 2

(2) CPU执行时间

TCPU=N×CPIf=4×109×23×109=8×1093×1092.67sT_{CPU} = \frac{N \times \text{CPI}}{f} = \frac{4 \times 10^9 \times 2}{3 \times 10^9} = \frac{8 \times 10^9}{3 \times 10^9} \approx 2.67\,\text{s}

(3) 优化后的CPU执行时间

优化后指令分布:

  • A类:2×109+1×109=3×1092 \times 10^9 + 1 \times 10^9 = 3 \times 10^9 条,CPI = 1
  • B类:1×1095×108=5×1081 \times 10^9 - 5 \times 10^8 = 5 \times 10^8 条,CPI = 4
  • C类:1×1091 \times 10^9 条,CPI = 2(不变)

优化后总条数:

N=3×109+5×108+1×109=4.5×109N' = 3 \times 10^9 + 5 \times 10^8 + 1 \times 10^9 = 4.5 \times 10^9

优化后总时钟周期数:

总周期=1×3×109+4×5×108+2×1×109\text{总周期}' = 1 \times 3 \times 10^9 + 4 \times 5 \times 10^8 + 2 \times 1 \times 10^9=3×109+2×109+2×109=7×109= 3 \times 10^9 + 2 \times 10^9 + 2 \times 10^9 = 7 \times 10^9

优化后平均CPI:

CPI=7×1094.5×1091.56\text{CPI}' = \frac{7 \times 10^9}{4.5 \times 10^9} \approx 1.56

优化后CPU执行时间:

TCPU=N×CPIf=7×1093×1092.33sT'_{CPU} = \frac{N' \times \text{CPI}'}{f} = \frac{7 \times 10^9}{3 \times 10^9} \approx 2.33\,\text{s}

执行时间缩短:

ΔT=2.672.33=0.34s\Delta T = 2.67 - 2.33 = 0.34\,\text{s}

缩短比例:

ΔTTCPU=0.342.6712.7%\frac{\Delta T}{T_{CPU}} = \frac{0.34}{2.67} \approx 12.7\%

方法反思

  • 本题的关键是理解加权平均CPI的计算——不是简单取算术平均,而是按执行次数加权。
  • 优化编译器可以减少指令数和降低平均CPI,从而缩短执行时间。
  • 注意第(3)问的陷阱:虽然B类指令减少了,但A类指令增加了,总指令数反而增加了(从4×10⁹到4.5×10⁹)。但由于A类指令CPI远低于B类,总周期数反而减少了(从8×10⁹到7×10⁹),因此执行时间仍然缩短。这说明降低CPI比减少指令数更重要(在本例中)。
  • 变式方向:可以问"如果提高主频到4GHz,执行时间是多少?"或"如果要将执行时间缩短到2s以下,CPI需要降到多少?"

五、考情分析

项目内容
近5年考查频次选择题约3–4次,综合计算题约1–2次,是第一章考查频次最高的知识点
常见题型选择题(概念辨析,如MIPS的含义、CPI与性能的关系)和计算题(给定参数求CPU时间、MIPS等)
大致分值选择题2分;计算题4–5分
命题趋势纯概念辨析题减少,综合计算题增加。近年趋势是将性能指标与后续章节结合,如:结合流水线加速比(CO-05-07)考查、结合Cache命中率(CO-03-08)考查等。需要考生熟练掌握公式推导和灵活应用

基于大纲与命题规律推测:CPI的加权平均计算、CPU执行时间的三因素分析仍将是高频考点。可能出现与流水线性能结合的综合计算题。


六、易错点提醒

易错点1

  • 错误表现:将主频等同于性能,认为"主频越高,计算机越快"。
  • 错误原因:忽视了CPI和指令条数对CPU执行时间的影响。
  • 正确理解/做法:CPU执行时间 TCPU=N×CPI/fT_{CPU} = N \times \text{CPI} / f,主频 ff 只是三个因素之一。若主频提高但CPI也增大(如引入复杂功能),执行时间可能不降反升。正确说法是"在其他条件相同的情况下,主频越高,性能越好"。

易错点2

  • 错误表现:计算MIPS时忘记将Hz转换为MHz(即忘记除以 10610^6),或在公式 MIPS=f/(CPI×106)\text{MIPS} = f / (\text{CPI} \times 10^6) 中直接用GHz代入。
  • 错误原因:单位换算不仔细。
  • 正确理解/做法ff 的单位必须是Hz。如果给的是 2GHz2\,\text{GHz},则 f=2×109Hzf = 2 \times 10^9\,\text{Hz}。代入公式后:MIPS=2×109/(2.5×106)=800\text{MIPS} = 2 \times 10^9 / (2.5 \times 10^6) = 800。如果直接用 22 代入(即2GHz当2),会得到错误结果。

易错点3

  • 错误表现:计算平均CPI时,简单地对各类指令的CPI取算术平均(如 (1+4+2)/3=2.33(1+4+2)/3 = 2.33),而不是按执行次数加权平均。
  • 错误原因:混淆了"算术平均"和"加权平均"。
  • 正确理解/做法:平均CPI = (CPIi×Ni)/Ni\sum (CPI_i \times N_i) / \sum N_i,即用各类指令的执行次数作为权重。只有当各类指令执行次数相同时,加权平均才等于算术平均。

易错点4

  • 错误表现:认为MIPS越大,计算机的性能一定越好,用MIPS直接比较不同架构的计算机。
  • 错误原因:忽视了MIPS的局限性——不同ISA的计算机,一条指令完成的工作量不同。
  • 正确理解/做法:MIPS只能在相同ISA、相同程序的条件下比较才有意义。跨ISA比较MIPS无意义。例如,RISC处理器的MIPS通常高于CISC,但完成同一任务可能需要更多指令。CPU执行时间才是唯一可靠的性能度量

易错点5

  • 错误表现:将吞吐量和响应时间混为一谈,认为提高吞吐量就是降低响应时间。
  • 错误原因:未理解两者的定义差异。
  • 正确理解/做法:吞吐量是单位时间完成的工作量(关注"多少"),响应时间是完成单个任务的时间(关注"快慢")。例如,增加流水线级数可以提高吞吐量,但由于流水线寄存器开销增加,单条指令的延迟(响应时间)可能反而增大。

七、来源标注

  • 依据2026考研统考大纲"计算机组成原理"第一章"计算机系统概述"中关于性能指标的要求
  • 依据大学本科经典教材共识:唐朔飞《计算机组成原理》、Patterson & Hennessy《计算机组成与设计》
  • 性能指标公式及定义遵循国际通用标准

知识单元 CO-01-02 · 生成时间:2026-07-22

考研全科复习资料 - 基于2026考研统考大纲