1.大概率事件优先原理
- 概念:对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。
这是最重要、最广泛采用的设计准则,能明显提高整个系统性能
例如在加法运算中,溢出是小概率事件而无溢出是大概率事件
2.阿姆达尔(Amdahl)定律
- 概念:系统中某一部件由于采用某种更快的执行方式后,整个系统性能的提高与这种方式的使用频率或占总执行时间的比例有关。
假设对机器进行某种改进,定义加速比为改进前后性能或时间的比值:
\[S p=\frac{T_{0}}{T_{n}}=\frac{1}{(1-F e)+F e / S e} \]
例题1:假设系统某一部件的处理速度加快10倍, 该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?
\(Fe=0.4,Se=10\),代入公式得:\(Sp=1.56\)
3.CPU性能公式
- 一个程序所花的CPU时间:
\[CPU_T = NC*t = NC/f \]
NC:CPU时间周期总数,t为时间周期长度,f为频率
\[CPU_T =IC*CPI*t=(I_N*CPI)/f \]
IC为指令的条数,CPI为每条指令的平均时钟周期数
结论:CPU的性能与3个要素有关
- 时钟频率f
- 每条指令所花的时钟周期数CPI
- 指令条数IC
其中时钟频率取决于硬件技术和组织,CPI取决于系统结构组织和指令集,指令数目取决于系统结构的指令集和编译技术
- CPI=CPU时钟周期总数/IC
IC表示一个程序的指令条数
CPI表示每条指令平均时钟周期数
例子:MOV AX,BX
:\(CPI=1\)(一个时钟周期,一条指令)
当然也有CPI小于1的,半个周期就完成了
- 计算CPU时钟周期总数Nc
\[N c=\sum_{i=1}^{n}\left(C P I_i* I_i\right) \]
式子中\(I_i\)代表\(i\)指令在程序中执行的次数,\(n\)代表指令总数
- CPI表示---用于设计方案评价:
\[C P I=\frac{\sum_{i=1}^{n}\left(C P I_i^{*} I_i\right)}{I_{C}}=\sum_{i=1}^{n}\left(C P I_i * \frac{I_i}{I_{C}}\right) \]
\(I_i/I_C\)表示i指令在程序中所占的比例
例题: 某系统中浮点操作的比例为25%,平均CPI为4.0。 其他指令的平均CPI约为1.33。浮点平方操作比例为 2%,CPI为20。 分别把浮点平方操作和其他所有浮点操作的CPI 减为2,哪个方案较好?
原系统
\[CPI=(4*0.25)+(1.33*0.75)=2.0 \]
方案1
\[CPI_1=CPI-(20-2)*0.02=1.64 \]
方案2
\[CPI_2=CPI-(4-2)*0.25=1.5 \]
4.程序访问的局部性规律
程序访问的局部性主要反映在时间和空间局部性两个方面
- 时间局部性是指程序中近期被访问的信息项可能马上将被再次访问
- 空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问