🌈个人主页:小新_-
🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
🏆所属专栏: 计算机组成原理 欢迎订阅,持续更新中~~~
✨让小新带着你快乐的学习吧~✨
目录
一、性能指标相关概念
(一)作用
(二)与软硬件关系
(三)性能指标
二、基本性能指标
(一)机器字长
(二)主存容量
(三)吞吐量
(四)响应时间
三、与运算相关的性能指标
(一)CPU时钟频率和时钟周期
(二)CPI
(三)CPU执行时间
(四)IPC
(五)MIPS
(六)MFLOPS
四、使用基准程序进行性能评估
一、性能指标相关概念
(一)作用
- 计算机系统的性能指标是用来衡量计算机系统在各种操作和任务的工作效率、执行速度以及处理能力的标准
- 计算机系统的性能指标可以帮助人们评估计算机系统的整体表现,从而更好的了解系统在不同方面的优势和限制
(二)与软硬件关系
综上所述,计算机系统的性能指标涵盖了软件和硬件俩个层面,他们之间密切相关。优化硬件可以提供更加强大的计算和传输能力,而优化软件可以更有效的利用这些硬件资源,从而实现更好的系统性能。正确的硬件选择能为软件提供更好的执行环境,反之亦然。
(三)性能指标
二、基本性能指标
(一)机器字长
1、机器字长是指CPU一次能够处理的二进制数据的位数,也就是二进制比特数
- 机器字长与CPU内部用于整数运算的ALU的位数以及通用寄存器的宽度相等
2、机器字长对计算机性能的主要影响如下:
- 字节越长,数的表示范围就越大、精度越高
- 字节越长,计算精度也越高
- 字节还会影响计算速度
3、随着硬件技术的发展,计算机的字长已经从早期的8位逐渐增加到16位,32位、64位甚至更高
(二)主存容量
1、主存容量是指主存储器(内存)能够存储的最大信息量。
- 假设主存包含M个存储单元,每个存储单元可存储N个二进制位,可以通过以下方式计算主存容量:
2、增加主存容量可以减少程序运行时对外存的访问,由于访问内存的速度远远大于访问外存速度,因此可以提高程序的执行效率,进而提高计算机性能。
(三)吞吐量
1、 吞吐量是指计算机系统在单位时间内能够处理的信息量。
2、影响吞吐量的主要因素如下:
- CPU的处理能力。
- 内存(主存)的访问速度。
- 外存(辅存,例如硬盘)的访问速度。
(四)响应时间
响应时间是指从向计算机系统提交作业开始,到系统完成作业为止所需要的时间。
三、与运算相关的性能指标
(一)CPU时钟频率和时钟周期
CPU时钟信号是一个基本定时信号,它是一种固定频率的脉冲信号,用于驱动计算机内部各组件协调工作。
- 这种脉冲信号的频率被称为CPU时钟频率(Clock Rate),基本单位为赫兹(Hz)。
- CPU时钟周期(Clock Cycle或ClockTick,也可简称为clock或tick)是CPU时钟频率的倒数,基本单位为秒(s)。
(二)CPI
CPI(Cycles Per Instruction)的意思是执行一条指令所需要的时钟周期数量。
■ 由于不同指令的功能不同,即使功能相同的指令还可能有不同的寻址方式,因此每条指令执行所需的时钟周期数量也可能不同。
□针对一条指令、一类指令、一个程序,它们各自CPI的含义如下:
- 一条指令的CPI:该指令执行所需要的时钟周期数量。
- 一类指令(例如算术运算类指令)的CPI:构成该类指令的所有指令执行所需要时钟周期数量的平均值。
- 一个程序的CPI:构成该程序的所有指令执行所需要时钟周期数量的平均值。
CPI=程序执行所需时钟周期/程序所包含的指令数量
如果知道某个程序中共有n类不同类型的指令、每类指令的CPI(用CPIi表示)、每类指令地数量在程序所包含的指令数量中所占的比列(用Pi表示),则该程序的CPI可用以下公式计算:
【例1】某个程序包含A、B、C和D共4类指令,它们各自在该程序中所占比例依次为60%、18%、12%、10%,A类指令的CPI为1,B类指令的CPI为2,C类指令的CPI为4,D类指令的CPI为8,则该程序的CPI是多少?
(三)CPU执行时间
CPU执行时间是指真正用于用户程序的执行时间,而不包括为执行用户程序而花费在操作系统、访问主存(内存)、访问辅存(外存)、访问外部设备上的时间。
【例2】机器M1与M2是基于相同指令集体系结构ISA设计的两台不同的计算机。M1的时钟周期为2ns,程序P在M1上运行时的CPI为3;M2的时钟周期为4ns,程序P在M2上运行时的CPI为2。对于程序P而言,M1与M2的运行速度关系是?
【例3】假设某计算机有A、B、C共3类指令,A类指令的CPI为1,B类指令的CPI为2,C类指令的CPI为3。现有两种不同的编译器将同一高级语言的语句编译成S1和S2两种不同类型的代码序列。S1包含A、B、C这3类指令的数量分别为2、1、2;S2包含A、B、C这3类指令的数量分别为4、1、1。S1与S2的运算速度关系是?
根据本例可以看出:仅仅通过计算机编译后目标代码中包含的指令数量来评估计算机性能是不准确的。在本例中,尽管S2包含的指令数量(4+1+1=6)比S1(2+1+2=5)多,但是由于S2中CPI小的指令(即CPI为1的A类指令)所占比例(4/6),比 S1 中CPI小的指令(即CPI为1的A类指令)所占比例(2/5)高,因此指令数量更多的 S2 实际上比指令数量较少的 S1 执行速度更快。
(四)IPC
IPC (Instructions Per Cycle)的意思是每个时钟周期能够执行的指令数量。
IPC是CPI的倒数,它与CPU架构、指令集、指令流水线技术等密切相关。
由于指令流水线技术以及多核技术的发展,目前IPC的值已经可以大于1。
(五)MIPS
MIPS (Million Instructions Per Second)的意思是每秒执行多少百万条指令。
用MIPS对不同的机器进行性能比较有时是不准确的,主要原因如下。
- 不同机器的指令集不同,并且指令的功能也不同,在某种机器上的某一条指令的功能,可能在另一种机器上需要用多条指令来实现。
- 不同机器的CPI和时钟周期也不同,因而同一条指令在不同机器上所用的时间也不同。
【例4】在某个计算机上运行某个程序,该程序包含A、B、C和D共4类指令,它们各自在该程序中所占比例依次为60%、18%、12%、10%◇A类指令的CPI为1◇B类指令的CPI为2,C类指令的CPI为4,D类指令的CPI为8,若CPU的主频为400MHz,则该机的MIPS是多少?
(六)MFLOPS
MFLOPS (Million Floating-Point Operations Per Second)的意思是每秒执行多少百万次浮点运算。
MFLOPS=(浮点运算次数÷测试程序的执行时间)÷10^6
相较于MFLOPS,衡量每秒执行浮点运算的次数还有以下更大的单位:
- GFLOPS(GigaFLOPS)的意思是每秒执行多少十亿次浮点运算。GFLOPS=10^9·FLOPS
- TFLOPS(TeraFLOPS)的意思是每秒执行多少万亿次浮点运算。TFLOPS=10^12.FLOPS
- PFLOPS(PetaFLOPS)的意思是每秒执行多少千万亿次浮点运算。PFLOPS=10^15.FLOPS
- EFLOPS(ExaFLOPS)的意思是每秒执行多少百亿亿次浮点运算。EFLOPS=10^18.FLOPS
- ZFLOPS (ZettaFLOPS)的意思是每秒执行多少十万亿亿次浮点运算。ZFLOPS=10^21
- ·FLOPS
MFLOPS不能全面反映计算机系统的性能。MFLOPS仅反映浮点运算速度,其值与所使用的测试程序相关,不同测试程序中包含的浮点运算量不同,测试得到的结果也不相同。
四、使用基准程序进行性能评估
基准程序(Benchmark)是一组特定的程序,专门用于评测计算机的性能。
- 这些程序能够有效地模拟计算机在处理实际任务时的表现。
- 在不同计算机上运行同样的基准程序,通过比较各计算机运行基准程序的时间,从而评测它们各自的性能。
不同基准程序的评测重点不同,例如CPU性能、图形性能、存储性能、浮点数计算性能、并行计算性能等。
目前国际上流行的基准程序主要有SPEC、Linpack、Dhrystone、Whetstone、NPB等。
最后,感谢大家的观看!