首页 科技 正文

bilibili焊圈:纯手工拼晶体管自制CPU,耗时半年,可跑程序。

金磊 博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI

一小我,到底能肝到甚么程度?

比来B站上大年夜火的一个视频,或许给了这个问题一个完善诠释:

纯!手!工!克己CPU!

这位叫做“奶味的”Up主,耗时整整半年,用他那双勤奋的双手,“逐点”焊接,究竟打造出了一个完全CPU!

手工做一个CPU能用么?

当然可以,他还做了一个demo显现,来看一下后果吧。

纯手工“肝”出一个CPU,还成功运行了流水灯后果,直接激起了一大年夜波网友们的惊呼:

肝帝!焊武帝!人长在肝上了!

(感到感染下这满屏的Respect)

接下来,让我们一同看下“肝帝”克己CPU的完全历程。

纯手工克己CPU

其其实发布这个视频之前,Up主便在贴吧中“开顽笑”的说了句:

CPU太贵了,买了显卡就买不起CPU,手工捏个出来……

切切没想到,真的是说干就干。

据这位Up主介绍,他主要接纳了3个原材料:

二极管、三极管和电阻。

平居来讲,CPU的布局可以大年夜致分为运算逻辑部件、寄放器部件和节制部件等。

而他最早“下手”的,就是CPU的寄放器部分。

Up主设计了一个6位的移位寄放器:

它的感化不但能用来存储,还能在时钟旌旗灯号的节制下,将数据进行进行逐次右移或左移。

简单来讲就像是一个交警叔叔,当数据从一个标的目标进来的时刻,这个移位寄放器可以指示它甚么时刻该往哪里走。

Up主措置的第二个布局,是轨范计数器(PC)。

它感化简单来讲,就是纪录轨范运行的位置。

而这也是全部项面前目今来最耗时、最复杂的部分,花了整整3个月之久。

轨范计数器触及的功能那可就多了。

像最根基的就是挨个字节读完指令后,计数要主动+1;而CPU重启今后,计数便会清零。

而且在分歧的前提之下,还要能实现直接跳转、调用函数、函数返回等功能。

听着就有够复杂的了。

何如,除此之外,还经常陪同着各类各样的“形而上学问题”。

Up主就举了个例子:

花了一个多星期才在最深处找到一只焊反的二极管……

但功夫不负有心人,在履历3个月使人头秃的光阴今后,最复杂的模块照样被他弄定了。

上电测试也没有问题:

然后就是硬盘(ROM)和内存(RAM)。

这是CPU外的较量复杂年夜两个部分要手搓一个不太实际。

是以,Up主用上了较量轻易操作的hm628512来做ROM和RAM:

△左:RAM和指针 右:ROM

再将ROM和RAM组装上去,而今CPU的根本模块已根基完成了。

接下来就是打造指令译码器。

它首假如用于把传到这里的CPU指令,进行解析运行:

再把做加减乘除的运算器(ALU)加上去:

最后还得再焊一个通用缓存上去:

而今,这个所有由三极管、二极管和电阻焊接而成的CPU就完成了!

看到这密密层层的元件,工程量的浩大年夜就不用多说。

也难怪能让一众网友直呼“肝帝”了。

还有纯手写最原始代码

认为纯手工焊接就完了?

不不不,还有更硬核的。

由于这个CPU的指令集和架构都是自立研发的,所以没有适配的编程措辞。

那怎样能让它跑起来呢?

这位Up主的对策是:

纯手写最原始代码——二进制编程!

噫吁嚱!噫吁嚱!

这一手露的,直接激起了网友们的第二波高涨:

手写指令集,牛皮!这才是真·写代码!直接上机械码,太狠了吧!

然后……然后……

Up主居然就开启了上古编程模式——“扣”轨范!

面临此情此景,怎样一句“绝绝子”了得。

……

一切筹办工作伏贴。

接下来,就是见证事业的时刻。

亮灯,跑起!

但最最早,轨范的运行并不是海不扬波。

即使大年夜神重启了几次,赛马灯的后果有时照样呈现问题。

但bug很快被找到了:

有个处所断开了。

与此同时,由于还没有I/O接口,所以测试利用的灯是一时寄放器的灯。

而且左移指令和跳转指令都利用了同一组灯。

是以,流水灯的后果就不长短常明明。

是以,大年夜神从头编程,使CPU跳转到0X0F处运行。

如此一来,在跳转时灯就是灭的,给左移指令让出了一条路。

一切点窜终了,从头“扣”轨范,启动!

这一次,就没有任何的异常了。

走进“肝帝”大年夜神

在看完这波“神级”操作今后,想必大年夜家都想体会这位大年夜神。

量子位帮你实现这个胡想。

大年夜神原名林乃卫,广西北海人。

做这个项目标灵感,

那时刻大年夜神便萌生出了一设法:

CPU是怎样履行这一串0101的?

在连络数电课程的常识今后,大年夜神意料到了大年夜致的道理,是以就想试一试。

最初他想用门级电路来做的,然则感到感染难度不是很高,又想把全部历程从零最早理解透。

是以,便决意从最根本的模拟电路最早。

而全部历程最难的部分,就是“器件每级的毗邻”和“CPU的运行速度”:

在此之前没有看过关于CPU道理方面的书本,是靠本身对门电路的理解而设计的一套电路 ,想设计一套属于本身的架构。从最根本的三极管开关到门级电路,网上找的电路图根蒂没法用,需要本身设计。当然设计好后理论颠末历程了,然则门级之间组合成功能级器件就有新的问题,功能级的电路再多个 组合起来成为功能模块又会产生新的问题,模块与模块之间毗邻更会产生新的问题。这每级的问题都很有可能要点窜根本电路,然后又会从头最早产生新的问题。由于没有专业的设备去调试,我用的是一盏LED和蜂鸣器,想尽举措也将速度提高到100kHz阁下 而已,这是十分慢的,历程也十分艰辛。

至于器件方面,大年夜神均是从网上购得,然后再将它们一点一点地焊接成为模块。

这个CPU大年夜致破费了1000多个三极管、2000多个二极管,电阻数量也到达了2000多,焊点近万。

今朝的费用大年夜概花了1000多元。

而网友在弹幕中奚弄占多数的,还有制程方面的问题。

要长短得给它定个工艺制程,那就是2.54mm,比先辈的3纳米大年夜了将近1百万倍。

最后,Up主还透露显露,将在接下来的工作中,延续完善CPU的功能,让它可以或许运行加倍复杂的轨范。

非特殊说明,本文由原创资讯网原创或收集发布。

转载请注明本文地址:http://www.ycadmc.com/kj/2430.html