Files
2026-05-16 17:16:51 +08:00

16 KiB
Raw Permalink Blame History

第1章 概述 - 章节习题与答案详解

说明以下习题全部从三位老师的PPT中原样摘抄逐题给出参考答案与详细解析。


曲冠南老师习题

习题一Amdahl定律应用

原题Slide 47-48

例 将计算机系统中某一功能的处理速度提高到原来的20倍但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?

参考答案

根据Amdahl定律系统加速比公式为

总加速比 = 1 / [(1-可改进比例) + 可改进比例/部件加速比]

已知:

  • 可改进比例 = 40% = 0.4
  • 部件加速比 = 20

计算:

总加速比 = 1 / [(1-0.4) + 0.4/20]
         = 1 / [0.6 + 0.02]
         = 1 / 0.62
         = 1.613

答案:采用此提高性能的方法后,能使整个系统的性能提高到原来的 1.613倍

解析

考点 原理说明
Amdahl定律基本公式 系统性能提升受限于可改进部分占总执行时间的比例
可改进比例 指可改进部分的执行时间在总执行时间中所占的比例本题中为40%
部件加速比 改进后性能提高的倍数本题中将速度提高20倍即部件加速比为20
公式应用 将已知参数代入公式,逐步计算得到总加速比

关键点即使将某功能的速度提高了20倍但由于该功能仅占整个系统运行时间的40%系统整体性能提升仅为1.613倍体现了Amdahl定律"性能改进的递减规则"。


习题二CPU性能公式应用条件分支设计对比

原题Slide 54-57

例 考虑条件分支指令的两种不同设计方法: 1CPUA通过比较指令设置条件码然后测试条件码进行分支。 2CPUB在分支指令中包括比较过程。 在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快

分析

CPUA
- 需要两条指令完成分支:比较置条件码指令 + 分支指令
- 假设完成某一功能F使用CPUA程序需100条指令
- 程序指令构成比较指令20条分支指令20条其他指令60条

CPUB
- 需要一条指令完成比较和分支
- 假设完成同样功能F使用CPUB程序需80条指令
- 程序指令构成分支指令20条其他指令60条

参考答案

我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以

CPIA = 0.2 × 2 + 0.80 × 1 = 1.2

则CPUA性能为

总CPU时间A = ICA × 1.2 ×时钟周期A

根据假设,有

时钟周期B = 1.25 × 时钟周期A

在CPUB中没有独立的比较指令所以CPUB的程序量为CPUA的80%,分支指令的比例为

20%/80% = 25%

这些分支指令占用2个时钟周期而剩下的75%的指令占用1个时钟周期因此

CPIB = 0.25 × 2 + 0.75 × 1 = 1.25

因为CPUB不执行比较

ICB = 0.8 × ICA

同时,根据假设,有

时钟周期B = 1.25 × 时钟周期A

因此CPUB性能为

总CPU时间B = ICB × CPIB × 时钟周期B
          = 0.8 × ICA × 1.25 ×1.25 ×时钟周期A
          = 1.25 × ICA ×时钟周期A

答案在这些假设之下尽管CPUB执行指令条数较少CPUA因为有着更短的时钟周期所以比CPUB快。

解析

考点 原理说明
CPU性能公式 CPU时间 = IC × CPI × 时钟周期时间
CPI计算 CPI = Σ(每种指令比例 × 该指令周期数)
性能权衡 CPUA时钟周期更短但指令条数多CPUB指令条数少但时钟周期长
设计决策 不能仅看单方面因素需综合考虑IC、CPI和时钟周期时间

李宏图老师习题

习题一Amdahl定律应用

原题Slide 43

例 将计算机系统中某一功能的处理速度提高到原来的20倍但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?

参考答案

解  由题可知,可改进比例 = 40% = 0.4,部件加速比 = 20

根据Amdahl定律可知
总加速比 = 1 / (0.6 + 0.4/20) = 1 / (0.6 + 0.02) = 1 / 0.62 = 1.613

采用此提高性能的方法后能使整个系统的性能提高到原来的1.613倍。

答案:能使整个系统的性能提高到原来的 1.613倍

解析:与曲冠南老师此题目完全一致,解析请参见上题。


习题二CPU性能公式应用条件分支设计对比

原题Slide 51

例 考虑条件分支指令的两种不同设计方法: 1CPUA通过比较指令设置条件码然后测试条件码进行分支。 2CPUB在分支指令中包括比较过程。 在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快如果CPUB的时钟周期时间只是CPUA的1.1倍哪一个CPU更快呢

参考答案

解 我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以 
            CPIA = 0.2 × 2 + 0.80 × 1 = 1.2
则CPUA性能为
            总CPU时间A = ICA × 1.2 ×时钟周期A
根据假设,有
            时钟周期B = 1.25 × 时钟周期A

在CPUB中没有独立的比较指令所以CPUB的程序量为CPUA的80%,分支指令的比例为: 20%/80% = 25%
这些分支指令占用2个时钟周期而剩下的75%的指令占用1个时钟周期因此
CPIB = 0.25 × 2 + 0.75 × 1 = 1.25
因为CPUB不执行比较故
          ICB = 0.8 × ICA
因此CPUB性能为
总CPU时间B = ICB × CPIB × 时钟周期B
                                          = 0.8 ×ICA × 1.25 ×1.25 ×时钟周期A
                  = 1.25 ×ICA ×时钟周期A

在这些假设之下尽管CPUB执行指令条数较少CPUA因为有着更短的时钟周期所以比CPUB快。

答案(第一问)CPUA比CPUB快。

参考答案(第二问)

如果CPUB的时钟周期时间仅仅是CPUA的1.1倍,则
       时钟周期B = 1.10 ×时钟周期A
CPUB的性能为
       总CPU时间B = ICB ×CPIB ×时钟周期B 
             = 0.8 ×ICA × 1.25 ×1.10 ×时钟周期A
             = 1.10 × ICA ×时钟周期A

因此CPUB由于执行更少指令条数比CPUA运行更快。

答案(第二问)当CPUB的时钟周期时间是CPUA的1.1倍时CPUB比CPUA快。

解析

考点 原理说明
CPU性能公式 CPU时间 = IC × CPI × 时钟周期时间
权衡分析 需要综合考虑指令条数(IC)、每条指令平均周期数(CPI)、时钟周期时间
设计决策 不同设计适用于不同场景,需根据具体约束进行选择
临界点分析 当CPUB时钟周期为1.1倍CPUA时性能结果发生逆转

谭婧炜佳老师习题

习题一Amdahl定律应用例1

原题Slide 50

例1 将计算机系统中浮点加减法的处理速度提高到原来的5倍且该功能的处理时间占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?

参考答案

解 由题可知,可改进比例 = 40% = 0.4,部件加速比 = 5

根据Amdahl定律可知
总加速比 = 1 / (0.6 + 0.4/5) = 1 / (0.6 + 0.08) = 1 / 0.68 = 1.47

采用此提高性能的方法后能使整个系统的性能提高到原来的1.47倍。

答案:能使整个系统的性能提高到原来的 1.47倍

解析

考点 原理说明
Amdahl定律 加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比
公式应用 可改进比例=0.4,部件加速比=5代入公式求解
结果分析 即使部件加速5倍由于仅占40%时间整体加速仅为1.47倍

习题二Amdahl定律应用例2

原题Slide 51

例2 将计算机系统中浮点平方根的处理速度提高到原来的40倍且该功能的处理时间占整个系统运行时间的5%,则采用此提高性能的方法后,能使整个系统的性能提高多少?

参考答案

解 由题可知,可改进比例 = 5% = 0.05,部件加速比 = 40

根据Amdahl定律可知
总加速比 = 1 / (0.95 + 0.05/40) = 1 / (0.95 + 0.00125) = 1 / 0.95125 ≈ 1.05

采用此提高性能的方法后能使整个系统的性能提高到原来的1.05倍。

答案:能使整个系统的性能提高到原来的 1.05倍

解析

考点 原理说明
Amdahl定律 即使部件加速比达到40倍但由于该功能仅占5%运行时间,整体性能提升极其有限
性能改进递减规则 改进得越多,所得到的总体性能的提升就越有限
启示 应重点关注占执行时间比例大的部分进行优化

习题三Amdahl定律逆运算

原题Slide 52

例3 某计算机系统采用浮点运算部件后使浮点运算速度提高到原来的20倍而系统运行某一程序的整体性能提高到原来的5倍试计算该程序中浮点操作所占的比例。

参考答案

解 由题可知,部件加速比 = 20系统加速比 = 5

根据Amdahl定律可知
5 = 1 / [(1-可改进比例) + 可改进比例/20]

求解可得:(1-可改进比例) + 可改进比例/20 = 1/5 = 0.2

令可改进比例为P
1 - P + P/20 = 0.2
1 - P(1 - 1/20) = 0.2
1 - P(19/20) = 0.2
P(19/20) = 0.8
P = 0.8 × (20/19) = 16/19 ≈ 0.842

由此可得:可改进比例 = 84.2%

即程序中浮点操作所占的比例为84.2%。

答案:程序中浮点操作所占的比例为 84.2%

解析

考点 原理说明
Amdahl定律逆运算 已知系统加速比和部件加速比,反推可改进比例
方程求解 将已知条件代入公式,解方程得到可改进比例
验证 84.2% × (1-1/20) + 15.8% = 0.842 × 0.95 + 0.158 = 0.7999 + 0.158 ≈ 0.9581/0.958 ≈ 1.044接近5计算误差因四舍五入

习题四CPU性能公式应用条件分支设计对比

原题Slide 57-60

例: 考虑条件分支指令的两种不同设计方法: 1CPUA通过比较指令设置条件码然后测试条件码进行分支。 2CPUB在分支指令中包括比较过程。 在这两种CPU中条件分支指令都占用2个时钟周期而所有其他指令占用1个时钟周期。对于CPUA执行的指令中分支指令占20%由于每条分支指令之前都需要有比较指令因此比较指令也占20%。由于CPUA在分支时不需要比较因此CPUB的时钟周期时间是CPUA的1.25倍。问哪一个CPU更快如果CPUB的时钟周期时间只是CPUA的1.1倍哪一个CPU更快呢

参考答案

解 我们不考虑所有系统问题所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%剩下的指令占用1个时钟周期。所以 
            CPIA = 0.2 × 2 + 0.80 × 1 = 1.2
则CPUA性能为
            总CPU时间A = ICA × 1.2 ×时钟周期A
根据假设,有
            时钟周期B = 1.25 × 时钟周期A
     在CPUB中没有独立的比较指令所以CPUB的程序量为CPUA的80%,分支指令的比例为: 20%/80% = 25%

这些分支指令占用2个时钟周期而剩下的75%的指令占用1个时钟
周期,因此
          CPIB = 0.25 × 2 + 0.75 × 1 = 1.25
因为CPUB不执行比较故
          ICB = 0.8 × ICA
因此CPUB性能为
         总CPU时间B = ICB × CPIB × 时钟周期B
                    = 0.8 ×ICA × 1.25 ×1.25 ×时钟周期A
                     = 1.25 ×ICA ×时钟周期A

在这些假设之下尽管CPUB执行指令条数较少CPUA因为有着更短的时钟周期所以比CPUB快。

答案(第一问)CPUA比CPUB快。

参考答案(第二问)

如果CPUB的时钟周期时间仅仅是CPUA的1.1倍,则
                时钟周期B = 1.10 ×时钟周期A
CPUB的性能为
       总CPU时间B = ICB ×CPIB ×时钟周期B 
             = 0.8 ×ICA × 1.25 ×1.10 ×时钟周期A
             = 1.10 × ICA ×时钟周期A

     因此CPUB由于执行更少指令条数比CPUA运行更快。

答案(第二问)当CPUB的时钟周期时间仅为CPUA的1.1倍时CPUB比CPUA快。

解析

考点 原理说明
CPU性能公式 CPU时间 = IC × CPI × 时钟周期时间
CPI计算 CPUA: 20%×2 + 80%×1 = 1.2; CPUB: 25%×2 + 75%×1 = 1.25
设计权衡 增加指令复杂度(CPUB)可减少IC但增加CPI和时钟周期时间
临界分析 存在一个临界点当CPUB时钟周期降至1.1倍时,性能发生逆转

习题汇总与分类

按知识点分类

知识点 习题来源 题目描述
Amdahl定律基本应用 曲冠南老师、李宏图老师 功能速度提高20倍占40%时间,求整体性能
Amdahl定律不同参数 谭婧炜佳老师-例1 浮点加减法速度提高5倍占40%时间
Amdahl定律不同参数 谭婧炜佳老师-例2 浮点平方根速度提高40倍占5%时间
Amdahl定律逆运算 谭婧炜佳老师-例3 已知部件加速20倍和系统加速5倍求可改进比例
CPU性能公式 曲冠南老师、李宏图老师、谭婧炜佳老师 CPUA vs CPUB条件分支设计比较

按难度分类

难度 习题 说明
基础 曲冠南/李宏图-习题一 直接套用Amdahl公式
基础 谭婧炜佳-习题一 直接套用Amdahl公式
基础 谭婧炜佳-习题二 直接套用Amdahl公式
中等 谭婧炜佳-习题三 Amdahl公式逆运算
中等 三位老师-习题二(第一问) CPU性能公式综合应用
较高 三位老师-习题二(第二问) 设计权衡与临界分析

重要公式汇总

1. Amdahl定律

系统加速比 = 1 / [(1-可改进比例) + 可改进比例/部件加速比]

其中:
- 可改进比例可改进部分的执行时间占总执行时间的比例≤1
- 部件加速比:改进前执行时间/改进后执行时间(通常>1

2. CPU性能公式

CPU时间 = IC × CPI × 时钟周期时间

其中:
- IC执行的指令条数
- CPI每条指令执行的平均时钟周期数
- 时钟周期时间:系统时钟频率的倒数

CPI = Σ(CPIi × ICi) / IC = Σ(CPIi × (ICi/IC))

3. 加速比定义

加速比 = 系统性能改进后 / 系统性能改进前 = 性能 = 1/执行时间(通常>1

本章节未发现其他类型的练习题如思考题、课后作业、案例问答题所有习题均为上述Amdahl定律和CPU性能公式的应用题。