[计算机组成原理]计算机系统性能评价

  • Post author:
  • Post category:其他




一、非时间指标



1、机器字长:指机器一次能处理的二进制位数

ALU

(1)由加法器、寄存器的位数决定;

(2)一般与内部寄存器的位数相等(字长);

(3)字长越长,表示数据的范围就越大,精确度越高;

(4)目前常见的有32位和64位字长。



2、总线宽度:数据总线一次能并行传送的最大信息的位数

总线

(1)一般指运算器与存储器之间的数据总线位数。

(2)有些计算机内部与外部数据总线宽度不一致

  • 8086、80286、80386内外数据总线等宽;
  • 8088、80386SX 外部总线宽度8位,内部总线宽度16位;
  • Pentium外总线64位,内总线32位(两条32位流水线)



3、主存容量与存储带宽


主存容量

:是指一台计算机主存所包含的存储单元总数。


存储带宽

:指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)



二、时间指标



1、主频f/时钟周期T,外频、倍频


主频f

指CPU内核工作的时钟频率,即CPU内数字脉冲信号振荡的速率,与CPU实际的运算能力之间不是唯一的、直接关系;


时钟周期T

也称节拍周期,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作;


f与T的关系

互为倒数,f越高,T就越小(f=100MHz时T=10ns,f=1GHz时T=1ns)。


外频

指CPU(内存)与主板之间同步的时钟频率(系统总线的工作频率);


倍频

CPU主频与外频之间的倍数;




=

×

主频 = 外频 × 倍频














=
















×





















:Pentium 4 2.4G CPU主频




2400

M

=

133

M

×

18

2400M = 133M(外频)× 18(倍频)






2


4


0


0


M




=








1


3


3


M
















×








1


8


















2、CPI(Clock cycles Per Instruction)

  • 执行一条指令(平均)需要的时钟周期数(即T周期的个数)
  • 单条指令CPI,一段程序中所有指令的CPI、指令系统CPI等




C

P

I

=

=

(

C

P

I

×

)

CPI = \frac{程序中所有指令的时钟周期数之和}{程序指令总数} = ∑(程序中各类指令的CPI×程序中该类指令的比例)






C


P


I




=




















































































































=











(


























C


P


I




×






































)





CPI举例


例1

某计算机指令系统中各类指令所占比例及CPI如下表所示,求程序的CPI。

指令类型 CPI 指令比例
算术和逻辑 1 60%
Load/Store 2 18%
转移 4 12%
Cache缺失访存 8 10%




根据公式可知




C

P

I

=

1

60

%

+

2

18

%

+

4

12

%

+

8

10

%

=

2.24

CPI = 1 * 60\% + 2 * 18\% + 4 * 12\% + 8 * 10\% = 2.24






C


P


I




=








1













6


0


%




+








2













1


8


%




+








4













1


2


%




+








8













1


0


%




=








2


.


2


4





IPC(Instruction Per Clock)


每个时钟周期内执行的指令条数(并行)


实际上频率和IPC在真正影响CPU性能


准确的CPU性能判断应该是:




C

P

U

=

I

P

C

(

C

P

U

)

×

(

M

H

z

)

CPU性能 = IPC(CPU每一时钟周期内所执行的指令多少) × 频率(MHz时钟速度)






C


P


U










=








I


P


C


(


C


P


U















































)




×














(


M


H


z














)




—–由英特尔提出并被业界广泛认可

如果将英特尔用于企业级服务器的主频为800MHz的安腾处理器(英特尔最高系列CPU)与用于台式机的主频为1800MHz的奔腾4处理器进行对比,我们就会发现:主频仅为800MHz的安腾处理器在性能上竟然比主频高达1800MHz的奔腾4处理器还强大。



3、MIPS(Million Instructions Per Second)

每秒钟CPU能执行的指令总条数(单位:百万条/秒)




M

I

P

S

=

×

1

0

6

=

C

P

U

f

×

1

0

6

MIPS = \frac{指令条数}{执行时间 × 10^6}= \frac{指令条数}{\frac{所有指令CPU时钟周期数之和}{f} × 10^6}






M


I


P


S




=
































×


1



0










6






















































=
































f




























C


P


U








































×


1



0










6























































=



f

C

P

I

×

1

0

6

\frac{f}{CPI × 10^6}


















C


P


I


×


1



0










6























f






















(全性能公式)


MIPS应用举例


例2

某计算机主频为1GHz,在其上运行的目标代码包括2×10

5

条指令,分4类,各类指令所占比例和各自CPI和例1中一致,求程序的MIPS。




根据CPU全性能公式:




M

I

P

S

=

f

C

P

I

×

1

0

6

=

1

×

1

0

9

2.24

×

1

0

6

=

446.4

MIPS = \frac{f}{CPI × 10^6} = \frac{1 × 10^9}{2.24 × 10^6} = 446.4






M


I


P


S




=




















C


P


I


×


1



0










6























f





















=




















2


.


2


4


×


1



0










6























1


×


1



0










9




























=








4


4


6


.


4






4、CPU时间




=

C

P

U

+

I

/

O

+

访

+

执行一段程序所需的时间 = CPU时间 + I/O时间 + 存储访问时间 + 各类排队时延等









































=








C


P


U










+








I


/


O










+














访













+


































C

P

U

=

×

T

=

f

CPU时间 = 程序中所有指令的时钟周期数之和 × T = \frac{程序中所有指令的时钟周期数之和}{f}






C


P


U










=























































×








T




=




















f


















































































(回顾汇编语言课程中延时子程序的设计原理)


CPU时间的计算方法

(1)考虑CPI后的CPU时间




C

P

U

=

×

i

=

1

n

(

C

P

I

i

×

I

C

i

)

×

=

×

C

P

I

×

T

CPU时间 = 总指令数 × \sum_{i = 1}^n (CPI_i × \frac{IC_i}{总指令数}) × 时钟周期时间 = 总指令数 × CPI × T






C


P


U










=






















×





















i


=


1









n
















(


C


P



I










i


















×














































I



C










i

































)




×




























=






















×








C


P


I




×








T




(2)考虑MIPS后的CPU时间




M

I

P

S

=

×

1

0

6

MIPS = \frac{指令条数}{执行指令的时间 × 10^6}






M


I


P


S




=









































×


1



0










6

























































t

=

M

I

P

S

×

1

0

6

程序的执行时间 t = \frac{指令数量}{MIPS × 10^6}



























t




=




















M


I


P


S


×


1



0










6























































CPU时间应用举例


例3

在例2的基础上求程序的CPU时间。





方法1

:利用CPI




C

P

U

=

2

×

1

0

5

×

C

P

I

f

=

2

×

1

0

5

×

2.24

1

0

9

=

4.48

×

1

0

4

CPU时间 = \frac{2 × 10^5 × CPI}{f} = \frac{2 × 10^5 × 2.24}{10^9} = 4.48 × 10^{-4}(秒)






C


P


U










=




















f
















2


×


1



0










5









×


C


P


I





















=




















1



0










9























2


×


1



0










5









×


2


.


2


4





















=








4


.


4


8




×








1



0














4






















方法2

:利用MIPS




C

P

U

=

M

I

P

S

×

1

0

6

=

2

×

1

0

5

1

0

3

2.24

×

1

0

6

=

4.48

×

1

0

4

CPU时间 = \frac{指令数量}{MIPS × 10^6} = \frac{2 × 10^5}{\frac{10^3}{2.24} × 10^6} = 4.48 × 10^{-4}(秒)






C


P


U










=




















M


I


P


S


×


1



0










6






















































=
































2


.


2


4
















1



0









3

























×


1



0










6























2


×


1



0










5




























=








4


.


4


8




×








1



0














4























三、时间指标的应用思考


1、如何合理利用时间指标评测计算机性能



2、f、CPI、MIPS、CPU时间在评价计算机性能方面的特点和不足?



3、如何科学合理测试计算机系统的综合性能?有哪些常用测试工具?测试结果能否真实反映计算机的实际性能?

计算机性能指标是确定的吗?

硬件或软件指标 影响什么 如何影响
算法 CPI、MIPS、CPU时间 影响指令数量和指令类型
编程语言 CPI、MIPS、CPU时间 指令数量和指令类型
编译程序 CPI、MIPS、CPU时间 影响指令数量和指令类型
指令集体系结构 f/T、CPI、MIPS、CPU时间 全面影响



版权声明:本文为shiawaseli原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。