3.性能指标

3.1存储器性能
3.1.1存储单位
  • 计算机的最小存储单位

位:比特bit,简写为b

存放一位二进制数,即 0 或 1,最小的存储单位。

  • 计算机存储容量基本单位是字节

字节:Byte,简写为B。1Byte = 8bit(1B = 8b)。

最常用的单位。 (我也常说一个字节占8位)

一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。英文标点占一个字节,中文标点占两个字节。
例如:英文句号.占1个字节的大小,中文句号占2个字节大小。


1MB/s = 8Mbps = 8Mbit/s 即兆比特每秒(Million bits per second的缩写)。

bps(bits per second),即比特率、比特/秒、位/秒、每秒传送位数,数据传输速率的常用单位。


  • 换算关系
  1. 1B(Byte 字节)=8bit,
  2. 1KB (Kilobyte 千字节)=1024B,其中1024=2^{10} ( 2 的10次方),
  3. 1MB (Megabyte 兆字节 简称“兆”)=1024KB = 2^{20}B,
  4. 1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,
  5. 1TB (Trillionbyte 万亿字节 太字节)=1024GB,
  6. 1PB(Petabyte 千万亿字节 拍字节)=1024TB,
  7. 1EB(Exabyte 百亿亿字节 艾字节)=1024PB,
  8. 1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,
  9. 1YB (Yottabyte 一亿亿亿字节 尧字节)= 1024 ZB,
  10. 1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.

注:“兆”为百万级数量单位。
   附:进制单位全称及译音
   yotta, [尧]它, Y. 10^21,
   zetta, [泽]它, Z. 10^18,
   exa, [艾]可萨, E. 10^15,
   peta, [拍]它, P. 10^12,
   tera, [太]拉, T. 10^9,
   giga, [级]咖, G. 10^6,
   mega, [兆],M. 10^3

  • 2的幂次方
1234567891011
24816326412825651210242048
  • 为什么计算机储存单位的进率是1024而不是1000?

因为目前计算机都是二进制的,让它们计算单位,只有2的整数幂时才能非常方便计算机计算,因为电脑内部的电路工作有高电平和低电平两种状态.所以就用二进制来表示信号,(控制信号和数据),以便计算机识别。而人习惯于使用10进制,所以存储器厂商们才用1000作进率。这样导致的后果就是实际容量要比标称容量少,不过这是合法的。1024是2的10次方,因为如果取大了,不接近10的整数次方,不方便人们计算;取小了,进率太低,单位要更多才能满足需求。所以取2的10次方正好。

3.1.2存储器指标
  • MAR位数 = 存储单元的个数,如MAR为10位,则有2^10=1024=1K个存储单元。
  • MDR的位数 = 存储字长 = 每个存储单元的大小,一般为字节的二次幂的整数倍。

存储字长:每个存储单元中能够存储多少bit。如果每个存储单元可存放16bit,那么 1个字(word) = 16bit。

总容量 = 存储单元个数 × 存储字长(bit)

总容量 = 存储单元个数 × 存储字长/8(Byte)

Eg: MAR为32位,MDR为8位。

总容量 = 2^{32}*8 bit = 4096MB = 4GB

3.2CPU性能

CPU时钟周期:通常为节拍脉冲或T周期,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。

主频(CPU时钟频率):CPU内数字脉冲信号震荡的频率。机器内部主时钟的频率。
是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间最短,执行指令的速度越快。
主频通常以Hz为单位,1Hz即每s一次。
C P U 时钟周期 ( s ) = 1 主频 ( C P U 时钟频率 H z ) CPU时钟周期(s)=\frac{1}{主频(CPU时钟频率Hz)} CPU时钟周期(s)=主频(CPU时钟频率Hz)1
主频高的CPU不一定比主频低的CPU快,衡量CPU运算速度的指标有很多,不能以单独的某个指标判断CPU的好坏。CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、Cache的大小等)。

CPI(Clock cycle Per Instruction):执行一条指令需要的时钟周期数。
不同的指令,CPI不同。甚至相同的指令,CPI也可能有变化。
执行一条指令耗时 = C P I ∗ C P U 时钟周期。 执行一条指令耗时 = CPI * CPU时钟周期。 执行一条指令耗时=CPICPU时钟周期。
CPU执行时间:指运行一个程序所花费的时间。
C P U 执行时间 = C P U 时钟周期 主频 = 指令条数 ∗ C P I 主频 \begin{equation}\begin{split} CPU执行时间&=\frac{CPU时钟周期}{主频}\\ &= \frac{指令条数 * CPI}{主频}\\ \end{split}\end{equation} CPU执行时间=主频CPU时钟周期=主频指令条数CPI

上式表明,CPU的性能(CPU的执行时间)取决于:主频、CPI、指令条数。

主频、CPI和指令条数是相互制约的。例如:更改指令集可减少程序所含指令的条数,但同时可能引起CPU结构的调整,从而可能会增加时钟周期的宽度(降低主频)。

Eg:某CPU主频为1000Hz,某程序包含100条指令,平均来看指令的CPI=3该程序在该CPU上执行需要多久?
耗时 = 100 ∗ 3 ∗ 1 1000 = 0.3 s 耗时 = 100 * 3 *\frac1{1000} = 0.3s 耗时=100310001=0.3s

IPS(Instructions Per Second):每秒执行指令条数。
C P U 主频 ( 时钟频率 H z ) = C P I ∗ I P S CPU主频(时钟频率Hz)=CPI*IPS CPU主频(时钟频率Hz)=CPIIPS
FLOPS(Floating-point Operations Per Second):每秒执行多少次浮点运算。

这里的单位现在经常在之前加上K、M,如KIPS,KFLOPS。要注意,这里的K、M是数量单位,是10的幂次。

​ K = Kilo千 = 10^3

​ M = million百万 = 10^6

​ G = giga十亿 = 10^9

​ T = Tera万亿 = 10^12

eg:2MIPS:该计算机每秒执行2百万条指令。

例题:CPU的CPI与下列()因素无关
  A.时钟频率   B.系统结构   C.指令集   D.计算机组织

答案:A; 系统结构、指令集、计算机组织都会影响CPI,时钟频率并不会影响CPI(只是决定每个CLOCK的时间),可影响指令的执行速度

例题:下列说法中,正确的是()
  1.在微型计算机的广泛应用中,会计电算化属于科学计算方面的应用
  2.决定计算机计算精度的主要技术是计算机的字长
  3.计算机“运算速度”指标的含义是每秒能执行多少条操作系统的命令
  4.利用大规模集成电路技术把计算机的运算部件和控制部件做在一块集成电路芯片上,这样的一块芯片称为单片机
  A.1,3   B.2,4   C.2   D.1,3,4

答案:C;计算机“运算速度”指标的含义是每秒能执行多少条指令;4中集成的芯片称为CPU

例题:假定基准程序A在某计算机上的运行时间为100s,其中90s为CPU时间,其余为I/O时间。若CPU速度提高50%,I/O速度不变,则运行基准程序A所耗费的时间为()

​ A.55s   B.60s   C.65s   D.70s
答案:D;CPU速度提高50%,CPU速度是原来的1.5倍而不是2倍,90/1.5+10

例题:假定计算机M1和M2具有相同的指令集体系结构(ISA),主频分别为1.5GHz和1.2GHz。在M1和M2上运行某基准程序P,平均CPI分别为2和1,则程序P在M1和M2上运行时间的比值为()

答案:1.6

例题:某台计算机只有Load/Store指令能对存储器进行读/写操作,其他指令只对寄存器进行操作。根据程序跟踪实验结果,已知每种指令所占的比例及CPI数如下

在这里插入图片描述

求上述情况下的平均CPI。假设程序由M条指令组成。算逻运算中25%的指令的两个操作数中的一个已在寄存器中,另一个必须在算逻指令执行前用Load指令从存储器中取到寄存器中。因此有人建议增加另一种算逻指令,其特点是一个操作数取自寄存器,另一个操作数取自存储器,即寄存器——存储器类型,假设这种指令的CPI等于2。同时,转移指令的CPI变为3。求新指令系统的平均CPI。

答案:CPI=0.43 * 1+0.21 * 2+0.12 * 2+0.24 * 2=1.57
增加新算逻指令后,原来的LOAD指令数减少,因此总指令数减少。设原指令总数为M,新指令总数为M-0.25*0.43M=0.8925M,计算得新的CPI为1.9076

3.3整体性能
3.3.1机器字长

机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数(一次能处理数据的位数)。机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常为字节的整数倍。


机器字长、指令字长、存储字长的区别与联系:

  • 机器字长:计算机能直接处理的二进制的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度
  • 指令字长:一个指令字中包含的二进制代码的位数
  • 存储字长:一个存储单元存储的二进制代码的长度

它们都必须是字节的整数倍。指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍(机器周期是CPU操作的最基本单位);若指令字长等于存储字长,则取指周期等于机器周期。


数据通路带宽:数据总线一次并行传送信息的二进制位数(bit)。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。

数据通路:各个子系统通过数据总线连接形成的数据传送路径称为数据通路。

吞吐量:系统单位时间处理的请求数量。
它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。

响应时间:用户向计算机发送请求,到系统做出响应的时间。
通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、/O操作、操作系统开销等时间)。

基准程序(跑分软件):用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其它计算机性能进行比较。

系列机:具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。

兼容:指计算机软件或硬件的通用性,即使用或运行在某个型号的计算机系统上的硬件/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上具有兼容性。

软件可移植性:指把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性。

固件:将程序固定在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,是软/硬件结合的产物。例如,目前OS已实现了部分固化(把软件永恒地存储于只读存储器中)。

问:主频高的CPU一定比主频低的CPU快吗?

不一定,如两个CPU,A的主频为2GHz,平均CPI=10;B的主频1GHz,平均CPI=1,

执行一条指令的耗时 = 主频*CPI,那么A就是1/2*10=5s,B是1/1*1=1s。显然B快。

问:若A、B两个CPU的平均CPI相同,那么A一定更快吗?

不一定,还要看指令系统,如A不支持乘法指令,只能用多次加法实现乘法;而B支持乘法指令。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐