1.2计算机系统的设计

1. 4个定量设计原理

(1)以经常性事件为重点

对经常发生的情况进行优化,获得整体性能提升——设计的核心原则。

比如:程序中80%的时间执行20%的代码,因此重点优化这20%的核心代码。


(2)Amdahl定律(★★★必考计算,核心:性能改进的递减规则)

加快某部件执行速度的系统加速比,受限于该部件的执行时间占总时间的比例。
简单说:对非核心部分的优化,再极致也无法大幅提升整体性能。

核心公式
  • 系统加速比:
    \(S_n = \dfrac{T_0}{T_n}\)

  • 改进后时间:
    \(T_n = T_0\left(1-F_e + \dfrac{F_e}{S_e}\right)\)

  • Amdahl 定律:
    \(S_n = \dfrac{1}{(1-F_e) + \dfrac{F_e}{S_e}}\)

符号说明
  • \(F_e\)可改进比例(改进前,可改进部分的执行时间/总执行时间,\(0<F_e\le 1\));
  • \(S_e\)部件加速比(改进前可改进部分执行时间/改进后,\(S_e>1\));
  • \(1-F_e\)不可改进比例(系统中无法优化的部分)。
核心推论

若仅对部分任务优化,最大加速比不超过 \(\dfrac{1}{1-F_e}\)

比如某部件占总时间40%(\(F_e=0.4\)),则无论该部件加速多少,系统最大加速比
\(\le \dfrac{1}{1-0.4} \approx 1.67\) 倍。


例题

  • 例1:将某功能处理速度加快15倍(\(S_e=15\)),该功能占总运行时间40%(\(F_e=0.4\)),求系统性能提升倍数?

解:
\(S_n = \dfrac{1}{(1-0.4) + 0.4/15} = \dfrac{1}{0.6 + 0.0267} \approx 1.59\) 倍。

  • 例2:浮点运算部件加速25倍(\(S_e=25\)),系统整体性能提升4倍(\(S_n=4\)),求浮点操作占总执行时间的比例 \(F_e\)

解:

\(4 = \dfrac{1}{(1-F_e) + F_e/25}\)
推导得 \(F_e = \dfrac{25}{32} \approx 0.9286\)(92.86%)。


(3)CPU性能公式(★★★必考计算,核心:CPU时间的三要素)

执行一个程序的CPU时间
= 指令条数(IC) × 每条指令平均时钟周期数(CPI) × 时钟周期时间(\(T_c\))

  • 时钟周期时间 \(T_c = 1/f\)\(f\) 为时钟频率,如主频3GHz,\(T_c=1/(3×10^9)\ \text{s}\))。
  • CPI(Cycles Per Instruction):平均每条指令的时钟周期数。
  • IC(Instruction Count):程序执行的总指令条数,与指令集、编译技术相关。
扩展公式(多指令类型)

若系统有 \(n\) 种指令,第 \(i\) 种指令的CPI为 \(CPI_i\),出现次数为 \(IC_i\),则:

\(CPI = \sum_{i=1}^n CPI_i × \dfrac{IC_i}{IC}\)

\(IC_i/IC\) 为第 \(i\) 种指令的出现比例

衍生指标:MIPS(每秒百万条指令)

\(MIPS = \dfrac{f}{CPI × 10^6} = \dfrac{IC}{CPU时间 × 10^6}\)

  • 含义:每秒能执行的百万条指令数,MIPS值越高,指令执行速度越快
  • 缺点:未考虑指令的功能差异(如乘法指令和加法指令的复杂度不同),仅适用于同架构处理器的性能比较。
posted @ 2026-03-12 19:17  weixinye  阅读(2)  评论(0)    收藏  举报