自制 CPU 的频率限制

电器工程 频率 中央处理器
2022-01-27 17:51:07

在研究一些定制的 CPU 时,我注意到它们的运行频率与现代 CPU 相比相对较低(大约几兆赫兹)。这种限制是否存在电子工程原因,例如面包板?如果是,如何确定您的设计可以实现的最大频率?

4个回答

它主要与通过门的互连长度和传播延迟有关。如果我们将 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 的设计还侧重于封装,以减小尺寸、缩短信号路径,从而提高工作频率。... [E] 每个电路模块实际上由多达六块 PC 板组成,每块都塞满了超小型电阻器、二极管和晶体管。六块板堆叠起来,然后沿着它们的边缘相互连接,形成一个非常紧凑但基本上无法修复的模块。

因此,由于一些与构建质量和布局有关的混杂影响,自制 CPU 不一定能发挥其真正的潜力。尽管如此,任何使用单独的集成电路和分立元件构建 CPU 并以几兆赫兹频率运行的人都应该受到称赞。

作为一名前高中生,他用 7400 系列 TTL 构建了一台专用计算机,并在科学博览会上获得了某种奖项,我观察到以下因素使其无法尽可能快地运行:

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

  • 抓包筹码的变体。(有人记得 Poly-Paks 吗?) 74LSxx、74Hxx、74xx 具有不同的传播延迟和其他特性,使得信号无法在高于几 MHz 的时钟速度下保持同步。

  • 便宜的静态内存芯片,同样来自手提包或其他无质量来源。他们只是无法可靠地读取或写入超过一定的速率。

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

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

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

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

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

这个公式

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

其他人已经回答了“为什么”。以下是如何确定最大速度。

  1. 对于每个触发器,查找 Q 的时钟。
  2. 从触发器到下一个触发器的所有导线的总长度。把这个长度变成时间。电线的光速约为 2/3
  3. 总计所有门延迟,包括通过异步 RAM。
  4. 在下一个触发器上进行设置时间。
  5. 添加1-4。这是您的最小时钟周期。反转得到频率。
  6. 考虑时钟偏差。如果时钟在第一个之前到达第二个 ff,则使用 1-4 添加倾斜。
  7. 如果时钟在第一个之前到达第二个 ff,则计算 1-3 的最小值。确保它们小于第二个 ff 加上时钟偏移所需的保持时间。