自制CPU的频率限制


15

在研究一些定制的CPU时,我注意到与现代CPU相比,它们的工作频率相对较低(约数MHz)。有电子工程学上的限制的原因,例如面包板吗?如果是,如何确定设计可以达到的最大频率?


像...自制VLSI芯片?我想这是一个成本限制。数百万美元的设备提供的精度无法在家中复制,因此芯片运行速度必须更慢。
Nate 2012年

4
@Nate,我想他是指由TTL构建的自制多芯片CPU。例如: homebrewcpu.com
Alfred Centauri

@Nate我已经更新了我的问题,以更具体。
Eugen

@AlfredCentauri-是的,您是对的;)
Eugen

Answers:


16

它主要与互连的长度和通过门的传播延迟有关。如果将CPU精简到本质,它就是一台反馈机。一堆组合逻辑电路在机器的当前状态上计算一些布尔函数,这些函数确定新状态,当新的时钟沿到达时,新状态由时序电路锁存。组合电路都有延迟。时钟周期不能短于通过这些门的最慢路径产生稳定结果所花费的时间,因为单个错误的位会停止显示。

此外,顺序逻辑具有时序要求。在时钟边沿到达之前,有一些最小建立时间,输入必须稳定,然后在一定的保持时间内保持稳定。如果违反这些,状态将变为垃圾。

传播延迟是由诸如寄生电容能够充电的速度,面对电感时能够建立多快的电流以及硅器件能够转换的速度之类的因素引起的。例如,具有较小基极的双极晶体管的开关速度可以比具有较大基极的双极晶体管的开关速度快,因此芯片上的微小晶体管将比分立晶体管快。

在我删除的较早答案中,我写了关于传输线效果的文章。但是我不认为这些影响甚至没有以我们正在讨论的速度出现在画面中,因为例如在10 Mhz时,波长仍然约为30米。因此,在普通尺寸的电路板上,几兆赫兹的脉冲仍然同时到达铜网的所有部分。

因此,如果您使用分立组件制造CPU,您将无法以快速的开关时间实现相同的小型组件,而相同的接近度却可以最大限度地减少杂散电容和电感。

尽管如此,在1960年代,古老的分立组件机器的确比这些自制机器运行得快得多。花了一些时间和狡猾到达那里。例如,IBM 360 Model 44(1964)的运行速度为4 Mhz。那可能仍然是“自制速度”,但是几年后的1969年发布的CDC 7600超过了36 Mhz。Wikipedia的文章http://en.wikipedia.org/wiki/CDC_7600暗示了一些技巧,例如:

“与往常一样,Cray的设计还集中于减小尺寸,缩短信号路径,从而提高工作频率的封装。……每个电路模块实际上由多达六块PC板组成,每块PC板上装有超小型电阻器,二极管六块板堆叠在一起,然后沿它们的边缘互连,从而形成了非常紧凑但基本上不可修复的模块。”

因此,由于一些与构建质量和布局有关的混杂影响,自制CPU不一定能发挥其真正的潜力。不过,任何人都应该赞扬那些使用独立的集成电路和运行在几兆赫兹的分立组件来构建CPU的人。


根据数据路径的复杂性,我认为自制设备应能够使用现代技术和传统技术轻松地以20Mhz或更高的频率进行时钟输入。不是多GHz的,但不是总的。但是,我怀疑在大多数情况下使用自制CPU时,故障排除的简便性比速度更重要。顺带一提,最初的Pong(R)品牌街机的主时钟晶体为14.3818Mhz,尽管很早就被分割了下来。我认为唯一受速度限制的东西是运动场的中心线。
2012年

1
许多自制CPU使用EPROM来存储微代码,但也使用它们来实现复杂的逻辑和/或真值表(其中许多甚至具有由一个或多个ROM组成的ALU)。ROM的访问速度可能会极大地限制机器的最高速度,但之所以受欢迎,是因为它们使调试,调整用途和调整处理器变得很容易,而无需大量重新布线。
Alexios

15

作为一名前高中生,他用7400系列TTL建造了专用计算机,并在科学博览会上获得了一些殊荣,我观察到了这些因素,这些问题使计算机无法尽快运行:

  • 面包板上的杂散电容。每对相邻的连接器之间有几个pF。有限的脉冲边沿上升/下降时间并在某些地方增加了串扰。这可能是最大的因素。

  • 抓斗筹码的变化。(任何人还记得Poly-Paks吗?)74LSxx,74Hxx,74xx具有不同的传播延迟和其他特性,使得不可能以高于几MHz的时钟速度使信号保持同步。

  • Cheapo静态存储芯片,同样来自抓包或其他不合格来源。他们只是无法可靠地读取或写入超出特定速率的数据。

  • 我的测试仪器仅限于自制信号发生器,5MHz带宽示波器和临时陪审团操纵的数字电路。难以检查已被低通滤波成颤抖糊状的数字信号的信号完整性,时序,幅度。

如今,除非是古董买家,否则很难找到5MHz示波器。即使在0.1英寸间隔的DIP封装中,各种更好的芯片也一样容易获得,除了我很长时间以来没有以抓斗的方式见过很多。然而,插座式面包板并没有太大变化。对于任何前卫的创意数字项目,杂散电容仍然是一个速度杀手。

通过使用自制的PCB避免面包板是避免杂散电容的最佳方法,但是当然需要更多的精力和时间。


4

我认为主要原因是随着频率的增加,面包板连接的阻抗也会增加并限制电路的最终速度。

面包板中的每个连接都具有低但非零的电感。随着频率越来越高,您需要考虑这些影响。电线的阻抗可通过以下方式找到:

这个公式

其中L是导线的电感。最终,Z将变得足够高,以至于没有电流流过,并且电路将停止工作。要找到该数字的确切数值将非常复杂,尤其是因为面包板的走线彼此相邻,并且从该公式中可以稍微改变每根导线的阻抗。如果您确实想要一个(不精确的)数字,您可以在这里尝试计算导线的电感(因此阻抗)。如果知道部件可以使用的最低电流,则可以在达到该极限之前确定最大频率。


您能解释一下阻抗与电路速度之间的关系吗?
欧根(Eugen)

那么,这如何解释像Intel Core I7之类的CPU以2.5GHz的时钟速度工作而基于面包板的CPU无法达到该速度呢?我最初以为CPU和RAM芯片之间的线长是有联系的。
欧根(Eugen)

不否认物理定律,但我不认为电感确实是速度的主要限制因素。之后,在家庭无线电和其他项目中以更高的频率使用了类似长度范围的类似导线。一个只是要小心匹配阻抗,长度,布局,避免意外联轴器等
DarenW

1
@DarenW:杂散电感和电容确实是问题。在无线电系统中,通常只有一根非平凡长度的电线。在处理器实现中,您有数百个,互感取决于间隔。由于复杂性,依赖于频率的交互无法处理。特性阻抗在很大程度上取决于与地面走线的距离等……在面包板上的控制不佳。
Ben Voigt 2012年

1
我认为您是对的,我想大概应该只是电抗。电容会导致类似的问题,但对于诸如上升/下降沿和状态变化这样的情况而言。但是,用于找到阻抗的方程式是相似的,并且如果他想要一个数字答案,则可以以类似的方式来应用。
Nate 2012年

3

其他人回答了“为什么”。这是确定最大速度的方法。

  1. 对于每个触发器,请查询到Q的时钟。
  2. 从触发器到下一个触发器的所有导线的导线总长度。将此长度改为时间。电线是光速的〜2/3
  3. 总计所有门延迟,包括通过异步RAM。
  4. 在下一个触发器上建立时间。
  5. 加1-4。这是您的最小时钟周期。反转以获得频率。
  6. 考虑时钟偏斜。如果时钟到达第一个ff之前的第二个ff,则以1-4相加。
  7. 如果时钟到达第一个ff之前的第二个ff,请计算1-3的最小值。确保它们小于第二秒所需的保持时间加上时钟偏斜。

您在说哪条电线长度:从电源到CPU输出引脚的长度,从CPU输出引脚到RAM芯片的长度...?我也不清楚我在第一步中的意思。
欧根(Eugen)2012年

2
@Eugen-我认为(但不是我的专业领域)他指的是内部传播延迟-从计时到稳定输出的时间。
无条件

1

除了限制速度的所有电气原因外,在逻辑层面上还有一个原因:

您不能投入太多的资源来使事情更快地运行,例如带有分支预测的流水线操作,更快的算术等等。如果缓存不比您的主内存快,那么它们也没有多大意义。


1

对于自制机器,它归结为两个因素。您正在使用的芯片的传播延迟以及在通过CPU设计的最长路径上需要使用的芯片数量。

例如,74HC574(8位寄存器)的最大传播延迟约为41ns(摘自其数据手册)。现在,让我们说通过CPU设计的最长路径要求它经过8个不同的芯片。将这8个信号中的每个信号的传播延迟加起来,可以想象一下它的延迟时间为333ns。如果1000ns与1Mhz相同,则最高速度为3Mhz。

在实践中,您可能希望将自己的速度限制在2Mhz之类,以确保稳定的设计。即使您认为每十亿周期只错过一次计时,您仍然会遇到麻烦。100亿除以300万意味着您每3333秒执行一次错误,大约每小时一次。每小时崩溃一次的机器是不好的!

为了使其运行更快,您可以使用速度更快的芯片和/或更改设计以减少最慢路径中的芯片数量。您看到的最快的自制速度约为4Mhz,这使您可以在250ns的时间内完成每个周期。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.