1.3计算机性能指标
@
这一节,我们来学习几个度量计算机性能的指标。
一、静态测试
(1)存储器的性能指标
<1>概念
最常见的就是存储器容量问题。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJI8Ebki-1673519845773)(D:\Typora图片\image-20230112155718611.png)]](https://img-blog.csdnimg.cn/fe6a12ee1958413baa1d0e1df9feff3d.png)
①MAR:地址寄存器
MAR的位数,可以反映存储体中存储单元的个数。
②MDR:数据寄存器
MDR的位数,可以反映每一个存储单元可以存放多少个二进制(bit)位。
所以,根据上面两个指标,我们就可以求得整个存储器可以存放多少个二进制位(bit)了。同样,bit/8就是多少字节。
如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hg7GBGnl-1673519845775)(D:\Typora图片\image-20230112155735178.png)]](https://img-blog.csdnimg.cn/5402f331cea34787b204412eb48d9c3f.png)
比如:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sdnwtlhv-1673519845776)(D:\Typora图片\image-20230112155806836.png)]](https://img-blog.csdnimg.cn/15f99e376a8643c4a3a819b6bfde9159.png)
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种状态。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RjDChVQd-1673519845776)(D:\Typora图片\image-20230112160537153.png)]](https://img-blog.csdnimg.cn/f9773ff2bea145ce810954efc3a43d05.png)
所以,32位的二进制数最多只能表示2^32个地址,也就是对应这么多存储单元。
记住2^1到2^10,考试经常出现。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiT27UgA-1673519845777)(D:\Typora图片\image-20230112160748984.png)]](https://img-blog.csdnimg.cn/4b09c65cdd5b4f48b452e9fa3c272f02.png)
还需要记住,下面几个单位转换。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dYaoetU9-1673519845777)(D:\Typora图片\image-20230112160953253.png)]](https://img-blog.csdnimg.cn/921bb68e0ca240d785920dd704249111.png)
1KB,这个K,就是2^10。
1KB即1024B(字节)。
1b(比特)是一个二进制位。
1B(字节)=8b(比特)
(2)CPU的性能指标
<1>概念
接下来认识几个概念:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doEHLE5j-1673519845778)(D:\Typora图片\image-20230112161453471.png)]](https://img-blog.csdnimg.cn/161b08a150a740fcb1356ee83f4a36ab.png)
每一个波峰是一个数字脉冲信号,CPU的数字脉冲信号是有规律、有节奏地发生。
CPU主频:CPU内数字脉冲信号振荡的频率。
脉冲信号:指挥CPU内部所有的部件,一步一步工作的节奏。
CPU的时钟周期:每一个脉冲信号的时间。通常以微秒、纳秒为单位。
CPU主频和CPU时钟周期互为倒数。
主频为10HZ,意思就是每一秒有10个脉冲信号。
结合之前的例子,CPU在执行一条指令的时候,需要做很多工作。这些工作的执行是有一定先后顺序的。每一个动作完成之后,才会开始下一个动作。
CPU的脉冲信号其实就是给这些动作的执行带来节奏。当然,有的动作可能在一个脉冲的时间内完成不了。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4Abkxq8-1673519845781)(D:\Typora图片\image-20230112162127913.png)]](https://img-blog.csdnimg.cn/766f548616724ce4b831bb598af19a88.png)
对于两个相同型号的CPU,如果它们的指令系统还有用硬件系统生成指令的方式都一样。那么,主频越高的CPU,速度就会越快。
CPU主频很大程度上反映了CPU的性能,但并不是主频越高,CPU性能就越强。除了主频,还有其他因素会影响CPU的性能。
比如CPI,即每一条指令的执行需要多少时钟周期。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRp9Eljn-1673519845782)(D:\Typora图片\image-20230112164844871.png)]](https://img-blog.csdnimg.cn/55f91a70e1184450828cdcc638e33122.png)
比如:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Qtp4veP-1673519845782)(D:\Typora图片\image-20230112181536882.png)]](https://img-blog.csdnimg.cn/2571fada3e13473a8f110f35392f1474.png)
对于B这个CPU来说,1秒可以执行1G条指令。(G=10^9)
而对于A这个CPU来说,1秒可以执行0.2G(2/10)指令。
所以,主频高的CPU不一定比主频低的CPU快。
再来问一下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OPjgn49r-1673519845782)(D:\Typora图片\image-20230112181947975.png)]](https://img-blog.csdnimg.cn/6e7be2bd61b047a68becc9ea87d8fa66.png)
既然CPI相同,B每秒可以执行1G条指令,A每秒可以执行2G条指令。
A更快吗?也不一定。
因为不同的CPU的指令系统可能不一样。
还是拿这个例子看一下。
取数指令总共需要9个步骤完成。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BgiPvnu8-1673519845783)(D:\Typora图片\image-20230112163600316.png)]](https://img-blog.csdnimg.cn/3ba75ae0b40f408abe270038f67e6b83.png)
而乘法指令总共需要11个步骤。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4f7NakZv-1673519845783)(D:\Typora图片\image-20230112163711999.png)]](https://img-blog.csdnimg.cn/47970d924d1c4ef8a39d4275fecf4fae.png)
所以,进行乘法指令和取数指令所需要的时钟周期肯定不一样。
对于同一个CPU,执行不同的指令,有可能会消耗不同的时钟周期;甚至是执行相同指令,两次消耗的时钟周期也不相同。
比如,CPU要从内存中取一个数,这个指令的执行,除了和CPU本身相关之外,还与主存、内存、当前的状态有关。如果主存当前的负荷比较大,那么CPU想要取走一个数,就需要花更多的时间,也就是需要更多的时钟周期。
而对于不同的CPU,即便执行的都是乘法指令。根据乘法指令的实际实现方式的不同,两个CPU所需要的时钟周期数量也不一样,即CPI不同。
CPI放在微观视角毫无意义,因为可以影响CPI指标的因素太多了。
一般讨论执行一条指令所需要的时钟周期,通常考虑平均情况。
只要我们知道执行一条指令,平均需要多少个时钟周期,再乘以CPU时钟周期长短,就可以算出平均执行一条指令所需要的时间。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-658e8295-1673519845784)(D:\Typora图片\image-20230112164906832.png)]](https://img-blog.csdnimg.cn/bbe97dd341724bfebb942c4aedb60689.png)
<2>例题
根据上面的讲解,我们认识了如下的定义。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y5rFPl2Q-1673519845784)(D:\Typora图片\image-20230112165144856.png)]](https://img-blog.csdnimg.cn/60625116093c47c8b550192abb90dca9.png)
下面来看一个例子:
![D:\Typora图片\image-20230112165536460.png)]](https://img-blog.csdnimg.cn/8c8621359dd042158a569740bbeb7d0c.png)](https://img-blog.csdnimg.cn/830b4f043ec84bbf973cebe7d3ec4549.png)
100条指令,平均每一条指令需要3个时钟周期。
一个时钟周期的长度是主频的倒数。
相乘之后算出,需要0.3s的时间来执行程序。
如下:

像这样,计算执行一个程序所花费的时间,也是经常考的。
有时候,会把执行整个程序的耗时称为CPU执行时间。
<3>IPS和FLOPS
下一个性能指标是IPS。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Opc1fuXM-1673519845785)(D:\Typora图片\image-20230112170122959.png)]](https://img-blog.csdnimg.cn/fe89b347b5ff4757a85b5fe158651343.png)
主频:每一秒会有多少数字脉冲,也就是会出现多少时钟周期。
主频再除以执行一条指令所需要消耗的时钟周期数。算出的结果就是每秒执行多少指令(IPS)。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ubgboI6E-1673519845786)(D:\Typora图片\image-20230112170131018.png)]](https://img-blog.csdnimg.cn/0d15a7fcb470455eacd78176dafb7bc3.png)
再下一个指标是FLOPS。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bih7DH5t-1673519845786)(D:\Typora图片\image-20230112170201926.png)]](https://img-blog.csdnimg.cn/3627276c3ffa4053b388afa274f13b11.png)
FL:一个浮点运算。
如果计算机进行科学数据的处理,经常需要进行浮点运算。
那么使用FLOPS这个指标来度量计算机的好坏,显然是更科学的。
对于IPS和FLOPS这两个指标,使用的时候,通常会在前面加上单位。
如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFkn7O5m-1673519845786)(D:\Typora图片\image-20230112170527102.png)]](https://img-blog.csdnimg.cn/6aa822930a8d4ec7a29a65676f6f2b7d.png)
注意,这里的K、M、G、T和之前谈论存储器容量那里的单位有一点区别。
此处的K是10^3。
如果说一台计算机的性能达到2MIPS,就说明这台计算机平均每秒可以执行200万条指令。
2KMIPS,就是这台计算机平均每秒可以执行2000条指令。
3TFLOPS,就是这台计算机平均每秒可以执行三万亿次浮点运算。
<4>注意
📑注意
①一般描述存储器容量或者文件大小的时候,K、M、G、T,默认的容量规则就是下面的方式:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vtFtXkZ8-1673519845787)(D:\Typora图片\image-20230112171219821.png)]](https://img-blog.csdnimg.cn/50950b589ca84524b42125c5b41269ae.png)
②如果描述的是数据处理速率,这种情况默认下面的方式:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u9Uzx63d-1673519845787)(D:\Typora图片\image-20230112171342243.png)]](https://img-blog.csdnimg.cn/3c51419299b24cf19fcda7ed6ddfc1fd.png)
描述频率属性的时候,比如CPU主频是3GHZ,这里的G就表示10^9。
(3)系统整体的性能指标
①数据通路带宽
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFOohrhD-1673519845787)(D:\Typora图片\image-20230112171553537.png)]](https://img-blog.csdnimg.cn/79906c8be3f044e1b763c6edc1aa4d27.png)
CPU与内存,内存与I/O设备之间的信息传输,都是通过数据总线来进行的。
比如一个计算机的数据通路带宽是8bit,那么要从存储体里面读出16个bit的数据送入CPU,就需要进行两次数据传输。每次只能传送 8个bit。
进行两次肯定比进行一次传输要慢。
所以,数据通路带宽直接影响到硬件之间数据传输的效率。
②吞吐量
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFUyyPL6-1673519845788)(D:\Typora图片\image-20230112172312016.png)]](https://img-blog.csdnimg.cn/f787f12e5b3d405db02c461a6a9f1ac6.png)
这里的请求比较抽象,可以理解为,一条指令就是一个请求,也可以理解为一个完整的程序是一个请求。
③响应时间
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flL1Azh1-1673519845788)(D:\Typora图片\image-20230112172547509.png)]](https://img-blog.csdnimg.cn/7108ba9a615446e390c067195644c316.png)
二、动态测试
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZIpZaQ1-1673519845788)(D:\Typora图片\image-20230112174727796.png)]](https://img-blog.csdnimg.cn/368077edb2454b07826430864975faf7.png)
这些基准程序本质上就是写好了一段程序代码。
这段程序里面,会包含各种指令,并且这些指令出现的频率不一样,它会根据你的电脑,执行这些指令,再根据耗时来给一个综合评分。
看一个问题:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mZMrRJ5X-1673519845789)(D:\Typora图片\image-20230112182131112.png)]](https://img-blog.csdnimg.cn/bad3a1829110421e8df3477e8137885a.png)
三、知识回顾
如下:

OK,这一节就说到这里。
有缘再见喽~


浙公网安备 33010602011771号