@

目录

  • 一、静态测试
  • (1)存储器的性能指标
  • <1>概念
  • <2>补充
  • (2)CPU的性能指标
  • <1>概念
  • <2>例题
  • <3>IPS和FLOPS
  • <4>注意
  • (3)系统整体的性能指标
  • 二、动态测试
  • 三、知识回顾


这一节,我们来学习几个度量计算机性能的指标。

一、静态测试

(1)存储器的性能指标

<1>概念

最常见的就是存储器容量问题

存储 性能监控 存储性能指标_时钟周期

①MAR:地址寄存器

MAR的位数,可以反映存储体中存储单元的个数。

②MDR:数据寄存器

MDR的位数,可以反映每一个存储单元可以存放多少个二进制(bit)位。


所以,根据上面两个指标,我们就可以求得整个存储器可以存放多少个二进制位(bit)了。同样,bit/8就是多少字节。

如下:

存储 性能监控 存储性能指标_时钟周期_02

比如:

存储 性能监控 存储性能指标_存储单元_03

MAR是32位。32位的二进制数,最多可以表示2^32的二进制数,也就是这么多地址。每一个地址对应一个存储单元。所以,存储单元的总数量最多是2^32个(考试时只需要按照最多来计算即可)。

MDR是8位。也就是每一个存储单元可以存储8个bit位。

那么相乘,就可以得到存储器的总容量是4GB。

<2>补充

❓为什么32位的二进制数最多只能表示2^32个地址?

先来看这个问题,n个二进制位能表示多少种不同的状态?

如果只有一个二进制位,那么很显然,只有两种(2^1)状态:0,1。

如果有两个二进制位,那么会有四种(2^2)状态:00,01,10,11。

如果有三个二进制位,那么会有八种(2^3)状态:000,001,010,011;100,101,110,111。

... ...

那么,如果有n个二进制位,那么会有2^n种状态。

存储 性能监控 存储性能指标_存储 性能监控_04

所以,32位的二进制数最多只能表示2^32个地址,也就是对应这么多存储单元。


记住2^12^10,考试经常出现。

存储 性能监控 存储性能指标_存储单元_05

还需要记住,下面几个单位转换。

存储 性能监控 存储性能指标_时钟周期_06

1KB,这个K,就是2^10

1KB即1024B(字节)。

1b(比特)是一个二进制位。

1B(字节)=8b(比特)

(2)CPU的性能指标

<1>概念

接下来认识几个概念:

存储 性能监控 存储性能指标_时钟周期_07

每一个波峰是一个数字脉冲信号,CPU的数字脉冲信号是有规律、有节奏地发生。

CPU主频:CPU内数字脉冲信号振荡的频率。

脉冲信号:指挥CPU内部所有的部件,一步一步工作的节奏。

CPU的时钟周期:每一个脉冲信号的时间。通常以微秒、纳秒为单位。

CPU主频和CPU时钟周期互为倒数。

主频为10HZ,意思就是每一秒有10个脉冲信号。


结合之前的例子,CPU在执行一条指令的时候,需要做很多工作。这些工作的执行是有一定先后顺序的。每一个动作完成之后,才会开始下一个动作。

CPU的脉冲信号其实就是给这些动作的执行带来节奏。当然,有的动作可能在一个脉冲的时间内完成不了。

存储 性能监控 存储性能指标_存储 性能监控_08


对于两个相同型号的CPU,如果它们的指令系统还有用硬件系统生成指令的方式都一样。那么,主频越高的CPU,速度就会越快。

CPU主频很大程度上反映了CPU的性能,但并不是主频越高,CPU性能就越强。除了主频,还有其他因素会影响CPU的性能。

比如CPI,即每一条指令的执行需要多少时钟周期。

存储 性能监控 存储性能指标_二进制数_09

比如:

存储 性能监控 存储性能指标_时钟周期_10

对于B这个CPU来说,1秒可以执行1G条指令。(G=10^9)

而对于A这个CPU来说,1秒可以执行0.2G(2/10)指令。

所以,主频高的CPU不一定比主频低的CPU快。

再来问一下:

存储 性能监控 存储性能指标_存储单元_11

既然CPI相同,B每秒可以执行1G条指令,A每秒可以执行2G条指令。

A更快吗?也不一定。

因为不同的CPU的指令系统可能不一样。


还是拿这个例子看一下。

取数指令总共需要9个步骤完成。

存储 性能监控 存储性能指标_存储单元_12

乘法指令总共需要11个步骤。

存储 性能监控 存储性能指标_存储单元_13

所以,进行乘法指令和取数指令所需要的时钟周期肯定不一样。

对于同一个CPU,执行不同的指令,有可能会消耗不同的时钟周期;甚至是执行相同指令,两次消耗的时钟周期也不相同。

比如,CPU要从内存中取一个数,这个指令的执行,除了和CPU本身相关之外,还与主存、内存、当前的状态有关。如果主存当前的负荷比较大,那么CPU想要取走一个数,就需要花更多的时间,也就是需要更多的时钟周期。

而对于不同的CPU,即便执行的都是乘法指令。根据乘法指令的实际实现方式的不同,两个CPU所需要的时钟周期数量也不一样,即CPI不同。


CPI放在微观视角毫无意义,因为可以影响CPI指标的因素太多了。

一般讨论执行一条指令所需要的时钟周期,通常考虑平均情况

只要我们知道执行一条指令,平均需要多少个时钟周期,再乘以CPU时钟周期长短,就可以算出平均执行一条指令所需要的时间。

存储 性能监控 存储性能指标_二进制数_14

<2>例题

根据上面的讲解,我们认识了如下的定义。

存储 性能监控 存储性能指标_时钟周期_15

下面来看一个例子:

存储 性能监控 存储性能指标_二进制数_16

100条指令,平均每一条指令需要3个时钟周期。

一个时钟周期的长度是主频的倒数。

相乘之后算出,需要0.3s的时间来执行程序。

如下:

存储 性能监控 存储性能指标_存储 性能监控_17

像这样,计算执行一个程序所花费的时间,也是经常考的。

有时候,会把执行整个程序的耗时称为CPU执行时间

<3>IPS和FLOPS

下一个性能指标是IPS

存储 性能监控 存储性能指标_二进制数_18

主频:每一秒会有多少数字脉冲,也就是会出现多少时钟周期。

主频再除以执行一条指令所需要消耗的时钟周期数。算出的结果就是每秒执行多少指令(IPS)。

存储 性能监控 存储性能指标_时钟周期_19


再下一个指标是FLOPS

存储 性能监控 存储性能指标_时钟周期_20

FL:一个浮点运算。

如果计算机进行科学数据的处理,经常需要进行浮点运算。

那么使用FLOPS这个指标来度量计算机的好坏,显然是更科学的。


对于IPS和FLOPS这两个指标,使用的时候,通常会在前面加上单位。

如下:

存储 性能监控 存储性能指标_时钟周期_21

注意,这里的K、M、G、T和之前谈论存储器容量那里的单位有一点区别。

此处的K10^3

如果说一台计算机的性能达到2MIPS,就说明这台计算机平均每秒可以执行200万条指令。

2KMIPS,就是这台计算机平均每秒可以执行2000条指令。

3TFLOPS,就是这台计算机平均每秒可以执行三万亿次浮点运算。

<4>注意

📑注意

①一般描述存储器容量或者文件大小的时候,K、M、G、T,默认的容量规则就是下面的方式:

存储 性能监控 存储性能指标_时钟周期_22

②如果描述的是数据处理速率,这种情况默认下面的方式:

存储 性能监控 存储性能指标_时钟周期_23

描述频率属性的时候,比如CPU主频是3GHZ,这里的G就表示10^9

(3)系统整体的性能指标

数据通路带宽

存储 性能监控 存储性能指标_存储 性能监控_24

CPU与内存,内存与I/O设备之间的信息传输,都是通过数据总线来进行的。

比如一个计算机的数据通路带宽是8bit,那么要从存储体里面读出16个bit的数据送入CPU,就需要进行两次数据传输。每次只能传送 8个bit。

进行两次肯定比进行一次传输要慢。

所以,数据通路带宽直接影响到硬件之间数据传输的效率。


吞吐量

存储 性能监控 存储性能指标_二进制数_25

这里的请求比较抽象,可以理解为,一条指令就是一个请求,也可以理解为一个完整的程序是一个请求。


响应时间

存储 性能监控 存储性能指标_存储单元_26

二、动态测试

存储 性能监控 存储性能指标_存储 性能监控_27

这些基准程序本质上就是写好了一段程序代码。

这段程序里面,会包含各种指令,并且这些指令出现的频率不一样,它会根据你的电脑,执行这些指令,再根据耗时来给一个综合评分。


看一个问题:

存储 性能监控 存储性能指标_时钟周期_28

三、知识回顾

如下:

存储 性能监控 存储性能指标_时钟周期_29


OK,这一节就说到这里。

有缘再见喽~

存储 性能监控 存储性能指标_二进制数_30