欢迎访问本站!

首页科技正文

欧博开户欧博开户(www.aLLbetgame.us):B站焊武帝爆火出圈:纯手工拼晶体管自制CPU,耗时半年,可跑程序

admin2021-07-2741

欧博电脑版

欢迎进入欧博电脑版(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

金磊 博雯 发自 凹非寺

量子位 报道 | 民众号 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)加上去:

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

欧博开户

欢迎进入欧博开户平台(www.aLLbetgame.us),欧博开户平台开放欧博Allbet开户、欧博Allbet代理开户、欧博Allbet电脑客户端、欧博AllbetAPP下载等业务。

现在,这个所有由三极管、二极管和电阻焊接而成的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的功效,让它能够运行加倍庞大的程序。

网友评论