为什么 CPU 性能以频率而不是兆比特每秒来计算?频率在计算机术语中不太常见。
答案1
为了可靠运行,许多数字集成电路(包括 CPU)都使用脉冲发生器(称为时钟)来生成一系列脉冲。各种并且,或者,也不等,IC 中的逻辑门根据它们看到的脉冲序列部分来检测它们的输入并更新它们的输出。时钟速度是有限的,因为逻辑门需要时间来更新它们的输出,并且它们的输出信号在下一次更新发生之前需要时间从电路的一个部分传输到另一个部分。IC 制造商将指定 IC 可靠运行的最大时钟频率。因此,根据逻辑电路的时钟频率对逻辑电路的速度进行分类是很自然的。
另一方面,每秒传输多少位取决于 CPU 正在做什么。如果它正在执行 NOP,它可能根本没有传输任何位。如果它正在传输位,速度通常更多地取决于位来自哪里或去往哪里,而不是 CPU。因此,每秒位数并不是对 CPU 速度进行分类的自然方法。
不过,作为 CPU 速度的衡量标准,时钟速度只是一部分。有些 CPU 在一个时钟周期内完成的任务比其他 CPU 多。因此,如果想知道有多少每秒浮点运算次数 (FLOPS)CPU 可以执行的操作是将时钟速度除以完成某些浮点运算所需的时钟周期数。这种测量比原始时钟速度更有意义。
由于时钟频率是明确定义的,无论 CPU 是忙于进行算术运算还是懒惰地将数据传输到外围设备,因此电气工程师很自然地会根据时钟频率对 CPU 进行分类。
那么,CPU 移动位的速度有多快?
为了说明为 CPU 定义每秒位数的复杂性,下面是一张桌子完成 8086 CPU 中许多数据传输操作中的一些数据传输所需的时钟周期数: 如您所见,8086 中的一些数据传输操作可能需要 2 个时钟周期,而有些则需要 16 个时钟周期以上才能完成。因此,即使对于这种有限范围的 CPU 指令,每秒位数也不是一个定义明确的数字。
答案2
不,频率是计算机研究的重要组成部分。从 CPU 的角度来看,mbps 只是一个不恰当的测量单位。
如果你研究电子产品,那么电子产品的电气层面就必须有某种同步机制。
假设我们有 2 位加法器:
C 1 0
C 1 1
-----
1 0 1
C is Carry, with initial carry=0,
00+11 produces Resulting Carry = 0,
10+11 produces Resulting Carry = 1; basic maths.
对吧?但是,0 是什么,1 是什么?确切的问题是,WHEN the electronics decide that there is a 0/1 on the line?
所以,在进一步讨论之前,让我画出该基础加法器的示意图:
上述问题实际上有两个问题。第一个是WHEN
,第二个是。从AdderXthe decision of data
示例来看,Xn 或 Yn 线上有 0/1,因为它们来自其他电路的输出。它们只是电压!。从 CPU 的角度来看,1.25V 是逻辑 1,低于该值的任何值都是逻辑 0。因此,1.25V 等于逻辑 1 称为。而该决定称为。when
decides
what is 0, what is 1?
the decision
Sampling
when
synchronisation
从这里开始,加法器必须对 x、y 和 c 线上的电压进行采样,以驱动它们通过逻辑,并且必须决定时间。这是因为,基本上the data, actually the voltage can change in time!
::
将 1.25 伏电压驱动至 y1 线。不是1,25伏即刻。它是梯度的。或者将 1.25 伏特降到 0,它不是立即变为 0V。在某些电路中,梯度上升/下降以皮秒 (10^-12) 为单位测量,在某些电路中以纳秒 (10^-9) 为单位测量。由于这种梯度,集成电路 -> 逻辑门 -> 晶体管延迟。
回到加法器。想象一下,采样是连续进行的,但问题是决定它是正确样本还是错误样本。这个门什么时候产生正确的结果?这里同步进来了。给门足够的时间,然后采样它的输出。这是怎么做到的?有一个Clock
!The System Timer
还记得吗?那个计时器在主板上?
我说的这个钟,是指每一个每一个CPU 中的 IC 是同步的。进一步说,您可能已经注意到系统计时器的频率,例如 133 Mhz,而我们谈论的是 2.4 GHz CPU。这是因为,由于 CPU 可以比 MB 更快地工作,它们基本上将 SysTimer 乘以 15 到 20,即 CPU 乘数。
由于 CPU 与该定时器频率完全同步,是否有可能以比该频率更快的速度计算 0 + 1?不,不可能。因此,当我们说a CPU can do ONE job per ONE timer tick
:时,这是正确的cylce
。
想象一下将 1 个字节从内存移动到 CPU。这需要几个作业才能完成。因此,需要几个时钟周期才能完成。假设是 5 个周期。那么 1 秒内可以完成多少次移动操作?但是,关键部分来了:求和运算怎么样?必须有 2 个操作数,它们恰好在内存中,需要移动到 CPU,然后进行计算,存储回结果等。假设操作由 21 个周期完成。但是,嘿,我已经在 5 个周期内完成了 8 位操作,但 24 位(8 位操作 1、8 位操作 2、8 位结果)却在 21 个周期内!难道不应该是 15 个吗?
那么指令获取呢?微指令。这远远超出了更深层次的范围。
那么在时钟频率相同的不同 CPU 中,实际操作又如何呢?例如,给定相同的规格、频率、缓存等,执行最困难的除法运算需要多少个周期?一个可以在 10 个周期内完成 5/2,另一个可以在 8 个周期内完成。那么频率就足够了吗?很遗憾,不够。这就是频率的作用所在FLOPS (Floating Point Operations per Second)
。
总结一下:
Xbps 还不够,也不准确。它必须更具体、更准确。频率测量是具体的,但也不准确。FLOPS 既具体又准确。
答案3
除了 John1024 和 The_aLiEn 提供的可靠答案外,我想指出使用 mbps 的一个更大问题。在这种情况下,这是一个毫无意义的测量。
首先,数据吞吐量是频率和宽度的乘积。由于系统布局内的不同总线具有不同的位宽,因此测量结果很奇怪。
其次,系统的不同部分以不同的频率工作,但时钟相同。当锁相环频率缩放器为频率时,它更容易理解... 3.3 Ghz 实际上是 300Mhz x 11。
第三,即使考虑到指令所需的时间不同,不同指令也有不同量的输入和输出,因此即使利用率为 100%,数据吞吐量仍取决于您尝试执行的操作。
第四,现代 CPU 采用流水线方法,可以同时处理多个指令。它处理流水线指令的能力取决于实际处理的指令。
对于大多数芯片来说,频率是关键测量指标,而不是 FLOP、MIPS 或 Mbps,这仅仅是因为时钟频率是电路的最低公分母:它始终具有合理的意义。