计算机系统结构的分类
Flynn分类法、冯氏分类法和Handler分类法
Flynn分类法
- 单指令流单数据流SISD(Single Instruction stream Single Data stream)
- 单指令流多数据流SIMD(Single Instruction stream Multiple Data stream)
- 多指令流单数据流MISD(Multiple Instruction stream Single Data stream)
多指令流多数据流MIMD(Multiple Instruction stream Multiple Data stream)
冯氏分类法
最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数。
用平面直角坐标系中的一个点代表一个计算机系统,其横坐标表示字宽($n位$),纵坐标表示一次能同时处理的字数($m字$)。$m×n$就表示了其最大并行度。
4类不同最大并行度的计算机系统结构
- 字串位串:n=1,m=1。(第一代计算机发展初期的纯串行计算机)
- 字串位并: n>1,m=1。这是传统的单处理机,同时处理单个字的多个位,如16位、32位等。
- 字并位串:n=1,m>1。同时处理多个字的同一位(位片)。
- 字并位并:n>1,m>1。同时处理多个字的多个位。
平均并行度
与最大并行度密切相关的一个指标。取决于系统的运用程度,与应用程序有关。
- 假设每个时钟周期内能同时处理的二进制位数为$P_i$,则$T$个时钟周期内的平均并行度为
$$P_a=\frac{\sum_{i=1}^{T}{P_i}}{T}$$
- 系统在T个时钟周期内的平均利用率定义为:
$$\mu = \frac{P_a}{P_m} = \frac{\sum_{i=1}^{T}{P_i}}{TP_m}$$
Handler分类法
把计算机的硬件结构分成3个层次
- 程序控制部件(PCU)的个数k
- 算术逻辑部件(ALU)或处理部件(PE)的个数d
- 每个算术逻辑部件包含基本逻辑线路(ELC)的套数w
公式表示
$$t(系统型号)=(k,d,w)$$
改进版
$$t (系统型号)=(k×k’,d×d’,w×w’)$$
Amdahl定律
系统性能加速比:
$$加速比=\frac{系统性能_{改进后}}{系统性能_{改进前}}=\frac{总执行时间_{改进后}}{总执行时间_{改进前}}$$
依赖项
可改进比例($F_e$):
在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。
部件加速比($S_e$):
可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。
改进后程序的总执行时间$T_n$:
$$T_n=T_0(1-F_e+\frac{F_e}{S_e})$$
- $T_0$:改进前整个程序的执行时间
- $1-F_e$:不可改进比例
系统加速比$S_n$:
为改进前与改进后总执行时间之比
$$S_n=\frac{T_0}{T_n}=\frac{1}{(1-F_e)+\frac{F_e}{S_e}}$$
CPU性能公式
- CPU时间
$$CPU时间=执行程序所需的时钟周期数×时钟周期时间$$
时钟周期时间是系统时钟频率的倒数
- 每条指令执行的平均时钟周期数CPI
$$CPI = \frac{执行程序所需的时钟周期数}{IC}$$
IC:所执行的指令条数
- 程序执行的CPU时间可以写成
$$CPU时间= IC ×CPI ×时钟周期时间$$
影响cpu性能的参数
- 时钟周期时间:取决于硬件实现技术和计算机组成;
- CPI:取决于计算机组成和指令系统的结构;
- IC:取决于指令系统的结构和编译技术。
细分
计算机系统有n种指令;
$CPI_i$ :第i种指令的处理时间;
$IC_i$ :在程序中第i种指令出现的次数;
则:
$$CPU时钟周期数= \sum_{i=2}^{n} (CPI_i \times IC_i)$$
$$CPU时间=执行程序所需的时钟周期数×时钟周期时间=\sum_{i=1}^{n}(CPI_i\times IC_i)\times 时钟周期时间$$
$$CPI=\frac{时钟周期数}{IC}=\frac{\sum_{i=1}{n}(CPI_i\times IC_i)}{IC}=\sum_{i=1}^{n}(CPI_i\times \frac{IC_i}{IC})$$
$$\frac{IC_i}{IC}反映了第i种指令在程序中所占的比例。$$
性能评测
总执行时间
机器执行所有测试程序的总时间
平时执行时间
各测试程序执行时间的算术平均值
$$S_m = \frac{1}{n}\sum_{i=1}^{n}{T_i}$$
加权执行时间
各测试程序执行时间的加权平均值
$$A_m = \sum_{i=1}^{n}{W_i}\times{T_i}$$
$W_i$:比重
调和平均值法
$$H_m=\frac{n}{\sum_{i=1}^{n}\frac{1}{R_i}}=\frac{n}{\sum_{i=1}^{n}{T_i}}$$
$R_i$:由$n$程序组成的工作负荷中执行第$i$个程序的速度
$R_i=\frac{1}{T_i}$
加权调和平均值公式
$$H_m=(\sum_{i=1}^{n}\frac{W_i}{R_i})^{-1}=(\sum_{i=1}^{n}W_iT_i)^{-1}$$
几何平均值法
以某台计算机的性能作为参考标准,其他计算机性能则除以该参考标准而获得一个比值。
$$G_m=\sqrt[n]{\prod_{i=1}^{n}R_i}=\sqrt[n]{\prod_{i=1}^{n}\frac{1}{T_i}}$$
加权几何平均值
$$G_m=\prod_{i=1}^{n}(R_i)^{W_i}=(R_1)^{W_1}\times(R_2)^{W_2}\times\dots\times(R_n)^{W_n}$$
$G_m$的特性
几何平均值的比等于比的几何平均值
$$\frac{G_m(x_i)}{G_m(y_I)}=G_m\frac{x_i}{y_i}$$
0 评论