计算机组成原理__第1章计算机系统概述__计算机系统性能评价

本文 讲解一个方面的知识

                                 用 CPU 执行时间进行性能评估

从执行时间来考虑,完成同样工作量所需时间最短的那台计算机性能是最好的。

操作系统在对处理器进行调度时,一段时间内往往会让多个程序轮流使用处理器, 因此在某个用户程序执行过程中,可能同时还会有其他用户程序和操作系统程序在执行。所以,用户感觉到的某个程序的执行时间并不是其真正的执行时间。 通常把用户感觉到的执行时间分成以下两部分:CPU时间和其他时间。 CPU时间 指CPU用于程序执行的时间,它又包括以下两部分: (1) 用户CPU时间, 指真正用于运行用户程序代码的时间;(2)系统 CPU 时间,指为了执行用户程序而需要CPU运行操作系统程序的时间。 其他时间指等待 I/O 操作完成的时间或 CPU用于执行其他用户程序的时间。

   计算机系统的性能评价主要考虑的是CPU性能。 系统性能和CPU性能不等价, 两者有一些区别。系统性能是指系统的响应时间,它与CPU外的其他部分也有关系; 而 CPU 性能是指用户CPU时间, 它只包含CPU运行用户程序代码的时间。

有以下几个重要的概念和指标

  1. 时钟周期, 计算机执行一条指令的过程被分成若干步骤,由每一步中相应的操作来完成指令功能。每一步操作都要有相应的控制信号进行控制,用于对控制信号进行定时的同步信号就是CPU的时钟信号, 其宽度为一个时钟周期 (clock cycle).
  2. 时钟频率, CPU的主频就是CPU时钟信号的时钟频率 (clock rate) ,  是 CPU 时钟周期的倒数。 单位通常为MHz, GHz.
    主频为1MHz表示每秒钟发生1000 000个时钟信号, 其时钟周期为1 us(微秒)
    主频为1GHz表示每秒钟发生1000 000 000个时钟信号,因此时钟周期为1 ns(纳秒)
  3. CPI, 表示执行一条指令所需的时钟周期数(cycles per instruction ).
    对于一条特定指令而言,其 CPI 指执行该条指令所需的时钟周期数,此时CPI是一个确定的值;
    对于一个程序或一台机器来说, 其CPI 指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时,CPI是一个平均值,通常称为综合CPI.

    可以通过以下公式来计算用户程序的CPU时间
    CPU 执行时间  = 程序所含时钟周期数 / 时钟频率
                              = 程序所含时钟周期数  * 时钟周期


    上述公式中,程序所含时钟周期可由程序所含指令条数 和 相应的 CPI求得。
    如果已知程序总的指令条数 和综合CPI,  则可用如下公式计算程序的总时钟周期数。

         程序总时钟周期数 = 程序所含指令条数  *  CPI

    如果已知程序中共有 n 种不同类型的指令, 第 i 种指令的条数和CPI分别为Ci  和 CPIi,则

程序的综合 CPI 也可由以下公式求得, 其中, Fi 表示第 i 种指令在程序中所占的比例

因此, 若已知程序综合 CPI 和指令条数, 则可用下列公式计算 CPU 时间

CPU 执行时间 =  CPI  *  程序总指令条数 * 时钟周期  

有了CPU执行时间, 就可以评判两台计算机性能的好坏。 计算机的性能可以看成是 CPU 时间的倒数。

因此两台计算机性能之比就是 CPU 时间之比的倒数。 若计算机M1 和 M2的性能之比为n, 则说明 "计算机M1 的速度是计算机M2 的速度的n倍", 也就是说,“在计算机M2上执行程序的时间是在计算机M1上执行时间的 n 倍”。

对于解决同一个问题的不同程序, 即使是在同一台计算机上, 指令条数最少的程序也不一定执行得最快。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

看一个例子

例1 : 假设某个频繁使用的程序P 在机器M1上运行需要10s,  M1 的时钟频率为2GHz,  设计人员想开发一台与M1具有相同ISA的新机器M2,  采用新技术可使M2的时钟频率增加,  但同时也会使CPI增加。

假定程序P 在M2上执行时的时钟周期数是在M1上的1.5倍, 则 M2的时钟频率至少达到多少才能使程序P 在M2上的运行时间缩短为 6 s?

解:程序P 在机器M1上的时钟周期数为CPU 执行时间 * 时钟频率 = 10 * 2 G = 20 G. 因此,程序P在机器 M2 上的时钟周期数为1.5 * 20G = 30G. 

要使程序P 在M2上运行时间缩短到 6 s, 则M2的时钟频率至少应为程序所含时钟周期数 / CPU执行时间 =30G/6 s = 5GHz.

由此可见  M2的时钟频率是M1的2.5倍, 但M2的速度却只是M1的1.67倍。

上例说明, 由于时钟频率的提高可能会对CPU结构带来影响, 从而使其他性能指标降低, 因此, 虽然时钟频率提高会加快CPU执行程序的速度,但不能保证执行速度有相同倍数的提高。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

例2: 假设计算机M的指令集中包含A、B、C三类指令, 其CPI分别为1,2,4, 某个程序P在M上被编译成两上不同的目标代码序列P1和P2, P1所含A、B、C三类指令的条数分别为8、2、2,P2所含A、B、C三类指令的条数分别为2、5、3. 请问:哪个代码序列指令条数少?  哪个执行速度快? 它们的CPI分别是多少?

解:P1 和 P2的指令条数分别为 12 和10, 所以, P2的指令条数少。

P1 的时钟周期数为 8*1 + 2*2 + 2*4 = 20

P2 的时钟周期数为2*1 + 5*2 + 3*4 = 24.

因为两个指令代码序列在同一台机器上运行, 所以时钟周期一样, 故时钟周期数少的代码序列所用时间短、执行速度快。显然,P1比P2快。

从上述结果来看,指令数少的代码序列执行时间并不更短。

CPI = 程序总时钟周期数/ 程序所含指令条数, 因此, P1的CPI为 20 / 12约= 1.67, P2的CPI为24/10 = 2.4.

上述例2说明, 指令条数少并不代表执行时间短,同样,时钟频率高也不说明执行速度快。在评价计算机性能时,仅考虑单个因素是不全面的,必须三个因素同时考虑。三个因素是指 时钟周期、指令条数、CPI。

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值