[体系结构学习笔记1-2] 计算机系统的设计技术
[1.2.1] 计算机系统的定量原理
在设计计算机系统时,一般应遵循如下的定量设计原理:
- 哈夫曼(Huffman)压缩原理
- 在计算机系统的设计中经常要在不同的方法之间进行折中,尽可能加速处理高概率时间远比加速处理低概率时间对性能的提高要显著(例如,CPU在运算中发生溢出的概率是很低的,为此,设计时可考虑加快不溢出时的运算速度,而对溢出时的运算速度不予考虑)
- Amdahl定律
- 系统中某一部件由于采用更快的执行方式后,整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关
-
- 假设
T
0
T_0
T0为改进前整个任务的执行时间,则改进后整个任务的执行时间为:
- T n = T 0 ⋅ ( 1 − F e + F e / S e ) T_n=T_0⋅(1−F_e+F_e/S_e ) Tn=T0⋅(1−Fe+Fe/Se)
- 改进后整个系统的加速比为:
- S n = T 0 / T n = 1 / ( 1 − F e + F e / S e ) S_n=T_0/T_n =1/(1−F_e+F_e/S_e ) Sn=T0/Tn=1/(1−Fe+Fe/Se)
- 系统中某一部件由于采用更快的执行方式后,整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关
- CPU性能公式
- 程序执行的总指令条数𝐼𝐶(Instruction Counter):取决于指令集结构和编译技术
- 平均每条指令的时钟周期数𝐶𝑃𝐼(Cycles Per Instruction):取决于计算机组成和指令集结构
- 时钟主频
f
c
f_c
fc:取决于硬件实现技术和计算机组成
- T C P U = I C × C P I × 1 f c T_{CPU}=IC×CPI×\frac{1}{f_c} TCPU=IC×CPI×fc1
- 𝑛种指令,每种指令的时钟周期数
C
P
I
i
CPI_i
CPIi,出现次数
I
i
I_i
Ii :
- T C P U = ∑ i = 1 n ( C P I i × I i ) f c T_{CPU}=\frac{∑_{i=1}^n(CPI_i×I_i)}{f_c} TCPU=fc∑i=1n(CPIi×Ii)
- 平均指令时钟周期数:
- C P I = ∑ i = 1 n ( C P I i × I i ) I C = ∑ i = 1 n ( C P I i × I i I C ) CPI=\frac{∑_{i=1}^n(CPI_i \times I_i)}{IC}=\sum_{i=1}^n (CPI_i \times \frac{I_i}{IC}) CPI=IC∑i=1n(CPIi×Ii)=i=1∑n(CPIi×ICIi)
- 局部性分时间局部性和空间局部性
- 时间局部性:程序中近期被访问的信息项很可能马上将被再次访问。
- 空间局部性:指那些在访问地址上相邻近的信息项很可能会被一起访问。
例如,程序执行时间的90%都是在执行程序中10%的代码;存储器体系的构成就是以访问的局部性原理为基础的
[1.2.2] 计算机设计者的任务
- 确定用户对计算机系统的功能、价格和性能要求
- 软硬件平衡
- 设计出符合发展趋势的系统结构
[1.2.3] 计算机系统设计方法
-
方法1:由上向下
- 对于所面向的应用领域,性能和性能价格比很高。随着通用计算机价格降低,目前已经很少采用
-
方法2:由下向上
- 容易使软件和硬件脱节,整个计算机系统的效率降低
-
方法3:中间开始
- 软硬件人员结合、同时设计,软硬件功能分配合理