课程
CH01
第一章:计算机系统基础知识
计算机系统的实质
- 确定计算机系统中软硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能
- 指令集结构:用硬件实现的指令集,软硬件之间的主要界面;
计算机系统设计的4个定量原理:如何优化并提高计算机性能
- 以经常性事件为重点
- Amdahl定律(理解原理并能进行简单计算)
- CPU性能公式(三个参数:时钟周期时间、CPI、IC):理解不同方案性能的提高程度;
- 程序的局部性原理
计算机系统的实质
确定计算机系统中软硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
指令集结构:用硬件实现的指令集,软硬件之间的主要界面
计算机系统的设计的4个定量原理
以经常性事件为重点:对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进
- 优化是指分配更多的资源、达到更高的性能或者分配更多的电能等。
- 加快经常事件,整体事件时间减少很多
Amdahl定律
系统性能加速比(定量指标)

-
加速比依赖于两个因素
- 可改进比例(Fe):在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。它总是小于等于1。
例如:一个需运行60秒的程序中有20秒的运算可以加速,那么这个比例就是20/60。
部件加速比(Se)(引入该参数) :可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加速比是大于1的。
例如:若系统改进后,可改进部分的执行时间是2秒,而改进前其执行时间为5秒,则部件加速比为5/2。
- 改进前程序的总执行时间:T0:未改进比例 1-Fe + 改进的比例 Fe
- 改进后程序的总执行时间:Tn:未改进比例 1-Fe + 改进的比例 Fe / Se
即:Tn=T0( 1-Fe+ Fe / Se )
- 系统加速比:Sn 为改进前与改进后总执行时间之比 Sn=T0 / Tn=1 / (1-Fe+ Fe / Se )
Amdahl定律:一种性能改进的递减规则,如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过:1/(1-Fe)
例1.2 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的25倍,而系统运行某一程序的整体性能提高到原来的4倍,试计算该程序中浮点操作所占的比例。
CPU性能公式
执行一个程序所需的CPU时间
CPU时间 = 执行程序所需的时钟周期数×时钟周期时间
- 其中时钟周期时间是系统时钟频率的倒数
每条指令执行的平均时钟周期数CPI = 执行程序所需的时钟周期数/IC
- IC:所执行的指令条数
程序执行的CPU时间可以写成
CPU时间 = IC ×CPI ×时钟周期时间
- 时钟周期时间:取决于硬件实现技术和计算机组成
- CPI:取决于计算机组成和指令系统的结构
- IC:取决于指令系统的结构和编译技术
假设:计算机系统有n种指令, C P I i CPI_iCPIi表示第i种指令的处理时间, I C i IC_iICi表示在程序中第i种指令出现的次数
- (ICi / IC)反映了第i种指令在程序中所占的比例。
程序的局部性原理:程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚(程序执行时间的90%都是在执行程序中10%的代码)。
例1.3 假设FP(浮点数操作)指令的比例为25%,其中,FPSQR(浮点数平方根操作)占全部指令的比例为2%,FP操作的CPI为4, FPSQR操作的CPI为20 ,其他指令的平均CPI为1.33。现有两种改进方案,第一种是把FPSQR操作的CPI减至2,第二种是把所有的FP操作的CPI减至2,试比较两种方案对系统性能的提高程度。

没有改进之前,每条指令的平均时钟周期CPI为:
(1)采用第一种方案: FPSQR操作的CPI由 减至 ,
则整个系统的指令平均时钟周期数为:
(2)采用第二种方案: 所有FP操作的CPI由 减至 ,则整个系统的指令平均时钟周期数为(FPSQR操作不改变):
从降低整个系统的指令平均时钟周期数的程度来看,第二种方案优于第一种方案。
程序的局部性原理:
程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚(程序执行时间的90%都是在执行程序中10%的代码)。
- 程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。
- 程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息。在空间上相邻或者临近。
- 优化策略:cache引入,提高内存和CPU之间的访问效率
- 局部性实例:例如for循环














