【发布时间】:2016-01-04 16:31:17
【问题描述】:
假设我有一个程序,它有一个指令来添加两个数字,并且该操作需要 10 纳秒(常数,由门制造商强制执行)。
现在我有 3 个不同的处理器 A、B 和 C(其中 A
A 的一个时钟周期有 15 纳秒,B 有 10 纳秒,C 有 7 纳秒。
首先,我的以下假设是否正确 -
1. 加法运算占用处理器 A(慢速处理器)的 1 个完整周期,并浪费了剩余的 5 ns。
2. 加法运算需要处理器 B 的 1 个完整周期,不浪费时间。
3. 加法操作需要处理器 C(快速处理器)的 2 个完整周期(20 ns),而浪费了剩下的 20-14=7 ns。
如果上述假设是正确的,那么这是否与具有高时钟周期的处理器更快的常规假设相矛盾。
这里最快的处理器 C 实际上需要 2 个周期并浪费 7ns 而速度越慢处理器 A 只需 1 个周期。
【问题讨论】:
-
这就像在问“如果我有一辆更快的汽车,但道路迫使汽车需要 1 小时才能行驶 - 更快的汽车会浪费更多的速度吗?”。这没有意义。时钟告诉 CPU 的各个部分工作,它是使芯片的一部分不领先于另一部分的鼓声。当时钟告诉他们时,事情就会改变。如果你只是说“CPU C 有更快的时钟,但是加起来需要 10nS”,那么它是如何更快的 CPU 呢?更快的时钟在做什么?您已将时钟与其工作断开连接。添加可能需要固定的十个周期,但不是固定的10nS。
-
我提到cpu C速度更快,因此时钟频率高,这意味着每个周期的时间较短,这里是7ns。现在说,加法需要恒定的 10ns,因此它不会在一个 cpu C 周期内完成,因此需要 2 个。
-
顺便说一句,你的数学是错误的,2 个周期,每个周期 7ns 是 14 ns,浪费了 4 个。
-
我说这没有意义。如果在处理器 A 和 B 和 C 上加法需要 10nS,为什么你说 C 更快?如果做加法需要相同的时间,它不会更快。指令与时钟周期相关,而不是时间。这就是更快的时钟如何使处理器更快 - 通过每秒执行更多指令。在你的世界里,加法神奇地需要一个固定的时间,而时钟什么也不做,谁知道会发生什么。例如处理器 A 加法“需要 10nS”,也“需要 1 个完整的 15nS 周期”,还“浪费 5nS”。这只是“浪费”,因为时钟没有做任何事情。
-
@Brut3Forc3 与时钟周期相关的指令是“标准”的,因为“处理”是由电压组成的,当时钟触发它们改变时,电压就会改变。在两个寄存器中添加数字需要已知数量的电压变化(多少取决于 CPU 设计),因此需要一定数量的时钟周期。您可以更快地运行时钟并更快地添加。说它需要多少 nS 是没有意义的,因为它随时钟速度而变化。如果您正在设计一个每 nS 具有固定指令的 CPU(为什么??)那么......为什么还要改变 CPU A、B、C 的时钟速度?
标签: performance cpu clock computer-architecture