问:CPU性能由主频决定吗?
答:CPU主频只是决定其性能的因素之一,但不是唯一因素。
比如:你40M的51单片机,性能是比不少20M的STM32单片机。
决定CPU主频的因素有很多,其中CPU主频是一个很重要的因素,但除主频之外,还有很多因素都会影响CPU的性能。
1.主频/时钟周期
CPU的工作节拍受主时钟控制,主时钟不断产生固定频率(f)的时钟,称为CPU的主频,度量单位是GHz,MHz。
主频的倒数称为CPU的时钟周期,T = 1 / f,度量单位是μs,ns。
2.CPU执行时间
表示CPU执行一般程序所占用的时间。
CPU执行时间 = CPU时钟周期数 x CPU时钟周期
3.CPU的位宽
CPU的位宽暂时没有严格的定义,但是一般从数值上来讲:
CPU的位宽 = 数据总线的位宽 = CPU内部通用寄存器的位宽 = 机器字长
机器字长:
机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数,通常也是CPU数据通道的宽度,通常等于CPU的通用寄存器位宽。机器字长会影响机器的运算速度。倘若CPU字长较短,又要运算位数较多的数据,那么必须经过两次或多次运算才能完成。这样势必会影响整机的运行速度。
总线宽度
一般指CPU中运算器与存储器之间互相连接的总线的二进制位数。
4.CPI
CPI:Characters Per Inch,即执行一条指令所需的平均时钟周期数。
CPI = 执行程序所需的时钟周期数 / 程序包含的指令条数;
5.MIPS
MIPS:Million Instructions Per Second,即平均每秒执行百万条指令数:MIPS = 指令数 / (程序执行时间 x 10⁶)
之前分享过《STM32性能对比测试》的文章。
DMIPS:Dhrystone Million Instructions executed Per Second。用来计算同一秒内系统的处理能力,它的单位以百万来计算,也就是(MIPS)。主要用于测整数计算能力。
其中还有一个类似的CoreMark是用来衡量嵌入式系统中中心处理单元(CPU,或叫做微控制器MCU)性能的标准。
6.FLOPS
FLOPS:Floating-point Operation Per Second,即每秒执行浮点操作的次数,用来衡量机器浮点操作的性能。
Floats = 程序中的浮点操作次数 / 程序执行时间
例:
对于给定的一个程序,I 表示执行程序的指令总数,t表示执行程序所需的CPU时间,T为时钟周期,f为时钟频率,N为时钟周期数。
t = N x T = N / f = CPI x I x T;
CPI = N / I;
MIPS = I /(t x 10⁶)= I / (N x T x 10⁶) = 1 /(CPI x T x 10⁶);
N = CPI x I ;
这些算是决定性能的主要因素,其实,还有很多的因素,欢迎大家留言说出你认为决定CPU性能的因素。
免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。
------------ END ------------