指令集|贴吧大神是如何自制CPU的?

指令集|贴吧大神是如何自制CPU的?
文章插图

编者按:本文来自微信公众号雷科技(ID:leitech),作者:雷科技互联网组,创业邦经授权转载,图源:摄图网。
如果有人和你说要“手搓”一颗CPU,我想大多数对于CPU行业有所了解的朋友第一反应都是“你在做什么梦?”。因为就算是目前成本最低的芯片,至少都采用微米级工艺,不管是设计还是制作都需要专业机器的辅助,靠原始工具来制造几乎不可能成功。
不过,如果是古董级别的CPU,那么人工自制的成功可能性还是有的,毕竟人类第一台计算机就是由一群工程师和科学家徒手打造的,最多就是用上了诸如焊枪等工具。如果说几十年前的人可以完成,那么在现代更发达的微电子工程学的指导下,制作一颗古董级处理器并不是一件困难的事情。
比如一位贴吧大神就自制了一颗CPU,并且成功运行了自己手写的二进制程序,被网友称为“肝上长了个人”“焊武帝”,如果你好奇他是怎么自制CPU的,小雷今天就带你一起看看吧。
如何手搓一颗CPU?手搓CPU之前,首先要了解CPU的基本构造,虽然经过数十年的发展,现代CPU在工艺上已经与最早的CPU有了很大区别,但是在基本构造上还是大致相同的。比如用于逻辑计算的运算逻辑部件,用于暂存指令、数据和地址的寄存器部件以及用于控制和分析指令的控制部件,小到普通的灯控芯片,大到超级计算器的处理器核心,基本上都遵循这个设计。
指令集|贴吧大神是如何自制CPU的?
文章插图

在弄清楚了CPU的主要构造后,挡在面前的第一道拦路虎是电路设计,否则就连如何接线,接在哪里都会成为问题,更谈不上打造一颗处理器。可以用于CPU设计的软件有不少,这位手搓CPU的肝帝使用的Quartus就是一款由英特尔推出的设计软件,拥有强大的辅助功能。
指令集|贴吧大神是如何自制CPU的?
文章插图

在翻出了数年前用Quartus设计的原理图后,naiweide(贴吧手搓CPU的大神ID)开始打造移位寄存器,也就是我们上面提到的CPU关键部件之一。 输入的数据会在经过并被分配到该去的位置,按照naiweide的描述“就像是现在马路中间的交警,指挥着数据什么时候该往哪里走”。
【 指令集|贴吧大神是如何自制CPU的?】可以说,如果移位寄存器出现问题,那么数据就会无法输入到正确的位置,导致无法正确执行指令,就像是出了“车祸”一样,无法通行。
大家可以感受一下这个移位寄存器的大小。
指令集|贴吧大神是如何自制CPU的?
文章插图

指令集|贴吧大神是如何自制CPU的?
文章插图

基本上用到的零件主要是二极管、三极管和电阻,此外还有作为地基的门电路,实际上后续的几个部件基本上也只需要这些零件即可,只不过是数量多寡的区别。
在完成了寄存器的制作后,naiweide开始制作程序计数器,也就是上面提到的运算逻辑部件,这个模块可以说整个第一阶段最困难的,某种程度上来说也是最“劝退”的一个阶段(naiweide自称为此耗费了半个脑袋的头发,为他的头发默哀一下)。
指令集|贴吧大神是如何自制CPU的?
文章插图

程序计数器涉及到的零件数量远超寄存器,只要其中一个零件出现问题那么就会影响整个系统,而且缺乏有效的debug机制,想要找到故障位置也是相当困难。而在实际的焊接过程中,受焊锡量、焊接时间等因素的影响,看似正常的各个零件在实际运行时都可能出现意想不到的问题。

推荐阅读