广告

“爆肝”纯手工自制CPU:纯手写最原始代码,可运行程序

2021-07-28 15:08:54 综合报道 阅读:
随着挖矿的兴趣,显卡价格一路水涨船高,再加上CPU也价格不菲,因此很多爱好组装电脑的网友表示买了显卡就买不起CPU,那么能否用手工做一个能用的CPU呢?B站UP主@奶味的 说:可以!这位Up主,耗时整整半年,手工“逐点”焊接,最终打造出了一个完整CPU,并且纯手写最原始代码,成功让这块“自主研发”的CPU跑了起来……

随着挖矿的兴趣,显卡价格一路水涨船高,再加上CPU也价格不菲,因此很多爱好组装电脑的网友表示买了显卡就买不起CPU,那么能否用手工做一个能用的CPU呢?cs3ednc

B站UP主@奶味的 说:可以!cs3ednc

这位Up主,耗时整整半年,手工“逐点”焊接,最终打造出了一个完整CPU,并且纯手写最原始代码,成功让这块“自主研发”的CPU跑了起来。cs3ednc

cs3ednc

详细视频:cs3ednc

cs3ednc

据这位Up主介绍,他主要采用了3个原材料:cs3ednc

二极管、三极管和电阻。cs3ednc

cs3ednc

通常来讲,CPU的结构可以大致分为运算逻辑部件、寄存器部件和控制部件等。cs3ednc

@奶味的 首先工作是验证门电路cs3ednc

cs3ednc

cs3ednc

理论通过之后,先从最容易的做起,先造一个移位寄存器,数据从一个方向进,一个时钟周期移动一个位置,最后从另一个方向出。这个就像是现在马路中间的交警,指挥着数据什么时候该往哪里走.cs3ednc

@奶味的 设计了一个6位的移位寄存器:cs3ednc

cs3ednc

Up主处理的第二个结构,是程序计数器 (PC)。cs3ednc

它作用简单来说,就是记录程序运行的位置。cs3ednc

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

cs3ednc

程序计数器涉及的功能那可就多了。cs3ednc

CPU重启就是要将它的计数清零。用它来实现挨个字节读取指令和数据,每操作一次,计数自动加一,还可实现直接跳转、调用函数,函数返回的功能。cs3ednc

@奶味的 表示:同时它也是最容易出问题的一个模块,造了一个月的时间,修了一个多月,虚焊特别多。焊反过一个二极管,结果看起来正常,用手机拍下来慢放之后发现执行速度忽快忽慢,找了一个星期才找到那倒过来的玩意,在最深处。还有各种玄学性的问题,造出这个,简直是用了半个脑袋的头发,不过当结果正常显示之后,特别开心,感觉一切都是值得的。cs3ednc

上电测试也没有问题:cs3ednc

cs3ednc

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

这是CPU外的比较庞大两个部分要手搓一个不太现实。cs3ednc

因此,Up主用上了比较容易操作的hm628512来做ROM和RAM:cs3ednc

cs3ednc

左:RAM和指针 右:ROMcs3ednc

再将ROM和RAM组装上去,现在CPU的基础模块已经基本完成了。cs3ednc

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

它主要是用于把传到这里的CPU指令,进行解析运行:cs3ednc

cs3ednc

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

cs3ednc

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

cs3ednc

现在,这个全部由三极管、二极管和电阻焊接而成的CPU就完成了!cs3ednc

看到这密密麻麻的元件,工程量的浩大就不用多说。cs3ednc

还有纯手写最原始代码

@奶味的 表示因为这个CPU的指令集和架构都是自主研发的,所以没有适配的编程语言。cs3ednc

cs3ednc

那怎么能让它跑起来呢?@奶味的 选择纯手写最原始代码——二进制编程!cs3ednc

cs3ednc

随后,@奶味的 开启了上古编程模式——“扣”程序!cs3ednc

cs3ednc

一切准备工作就绪。cs3ednc

接下来,便是见证奇迹的时刻。cs3ednc

亮灯,跑起!cs3ednc

但最开始,程序的运行并不是一帆风顺。cs3ednc

重启了几次,跑马灯的效果偶尔还是出现问题。cs3ednc

cs3ednc

但bug很快被找到了:cs3ednc

有个地方断开了。cs3ednc

与此同时,因为还没有I/O接口,所以测试使用的灯是临时寄存器的灯。cs3ednc

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

因此,流水灯的效果就不是非常明显。cs3ednc

于是,@奶味的 重新编程,使CPU跳转到0X0F处运行。cs3ednc

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

cs3ednc

一切修改完毕,重新“扣”程序,启动!cs3ednc

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

cs3ednc

走进“肝帝”大神

UP主@奶味的 原名林乃卫,广西北海人。cs3ednc

做这个项目的灵感,来源于在他写代码时分析可执行文件中的二进制。cs3ednc

那时候大神便萌生出了一想法:cs3ednc

CPU是怎么执行这一串0101的?cs3ednc

在结合数电课程的知识之后,大神猜测到了大致的原理,于是就想试一试。cs3ednc

最初他想用门级电路来做的,但是感觉难度不是很高,又想把整个过程从零开始理解透。cs3ednc

于是,便决定从最基础的模拟电路开始。cs3ednc

而整个过程最难的部分,便是“器件每一级的连接”和“CPU的运行速度”:cs3ednc

在此之前没有看过关于CPU原理方面的书籍,是靠自己对门电路的理解而设计的一套电路 ,想设计一套属于自己的架构。cs3ednc

从最基础的三极管开关到门级电路,网上找的电路图根本没法用,需要自己设计。虽然设计好后理论通过了,但是门级之间组合成功能级器件就有新的问题,功能级的电路再多个 组合起来成为功能模块又会产生新的问题,模块与模块之间连接更会产生新的问题.cs3ednc

这每一级的问题都很有可能要修改基础电路,然后又会从头开始产生新的问题。cs3ednc

因为没有专业的设备去调试,我用的是一盏LED和蜂鸣器,想尽办法也将速度提高到100kHz左右 而已,这是十分慢的,过程也十分艰难。cs3ednc

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

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

目前的费用大概花了1000多元。cs3ednc

而网友在弹幕中调侃居多的,还有制程方面的问题。cs3ednc

据大神介绍:cs3ednc

要是非得给它定个工艺制程,那就是2.54mm,比先进的3纳米大了将近1百万倍。cs3ednc

最后,Up主还表示,将在接下来的工作中,持续完善CPU的功能,让它能够运行更加复杂的程序。cs3ednc

参考链接:cs3ednc

https://mp.weixin.qq.com/s/cUq8AXCkJ1EQTXSkBPYLmwcs3ednc

https://www.bilibili.com/video/BV1sy4y1j7Ue?from=search&seid=11054197044995782468cs3ednc

https://tieba.baidu.com/p/7432882849?see_lz=1cs3ednc

责编:Demics3ednc

  • 他是从0到1,你是1到2。如果你们PK,谁会赢?
  • 就是人家自己做着玩的,不要给予太多意义。
  • 所以说设计cpu不难,难的是怎么制造出来
  • 这个事价值不大,不如用这些时间去学习点更先进的技术,比如用FPGA等搭建CPU。
    只能说有时间,耐心,毅力,和动手能力
  • 我觉得制作费用比买CPU还高,有如此能力,完全可用淘汰下来的显卡,CPU做一个更好的!
  • 这篇文章几年前就在一本日本翻译的书上看到了,就像现在人不用现成的音响偏要自己通过三极管放大电路做一个一样的意思。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 从一个二十年前的电路开始,改造面包恒温发酵器 最近,读者John说他需要一种方法来控制发酵面团的温度,我很高兴他可能会考虑将我的TBH电路应用于解决他的问题,但在这种情况下,这确实有点小题大做。因此,我开始思考,是否有一种更简单的拓扑结构可以像TBH电路一样解决他的面团发酵问题,同时节省一些成本和精力···
  • 将锂金属电池寿命提高750%,竟然只需要“水”? 随着新能源汽车、移动设备等领域的快速发展,高性能电池的需求日益旺盛,锂金属作为新一代阳极材料,因具有高能量密度、轻量化等优点,备受关注。然而,锂金属电池所存在的寿命短、易起火或爆炸等问题,限制了其广泛的商业应用···
  • 按下ON还是按住OFF,将这种开关电路升级到交流电 2024年10月14日,Nick Cornford发布了一个名为“按下去再按上来,这种开关有哪些门道?”的设计实例(DI)。对于直流电压来说,这是一个非常有趣的DI,但对于交流电压呢?
  • 协同创新,助汽车行业迈向电气化、自动化和互联化的未来 汽车行业正处在电动化和智能化的转型过程中,而半导体企业站在这一变革的最前沿。这一转型带来了重大发展机遇,也带来了诸多挑战,需要颠覆性的技术以及更短的开发周期。加强半导体制造商、一级供应商和汽车制造商之间的合作,对于应对这些复杂情况及推动行业迈向电气化、自动化和互联化的未来至关重要···
  • 将单电源单端输入改成伪A/B类差分输出放大器 该放大器采用Barrie Gilbert的微混频器拓扑结构可将单端输入转换为单电源A/B类电流输出···
  • 加强低功耗FPGA的领先地位 在快速发展的技术领域,从以云端为中心到以网络边缘为中心的创新转变正在重塑数据的处理和利用方式···
  • 打造下一代家用机器人:精心构建智能化、集成化和电源优 ​​​​​​​今天的家用机器人不仅仅是工具,它们已经成为人们的生活伙伴,为日常生活增添了便利性和互动性。设计这些结构紧凑、功能强大的机器需要克服连接性、电源和外形尺寸等方面的严峻挑战,每一次突破都使我们更接近全面集成的智能家居体验···
  • 用LM337改造,让PWM DAC获得1.5 A输出能力 DAC是一种低功耗设备,其功率和电流输出能力仅限于毫瓦和毫安范围。当然,从根本上讲,它们没有理由不与合适的功率输出级配合使用,这确实也是常见的实际做法。不过,为了好玩,这个设计实例采用了不同的供电方式···
  • 意法半导体:让可持续世界从概念变为现实 最近,意法半导体人力资源和企业社会责任总裁Rajita D’Souza分享了意法半导体的可持续发展战略和近期工作重点···
  • 如何制作双变频的航空波段接收机? 随着互联网的发展,中波和短波频段的接收机已成为过去式,更不用说长波了。不过也许在无线电领域中最有趣的活动之一就是收听服务发射机,对于我这个与航空相关的人来说,主要指的是飞机的发射机和空中交通管制塔···
  • 用4200A和矩阵开关搭建自动智能的可靠性评估平台 在现代ULSI电路中沟道热载流子(CHC)诱导的退化是一个重要的与可靠性相关的问题···
  • 英特尔Ultra处理器,用普通内存也能超频到10000 MT/s+? 目前内存超频的世界记录是12666MT/s,而想要达成这样的频率不光需要降低CPU频率,还需要辅助液氮等特殊的冷却方案,对内存进行降温。但已有主板可以在没有特殊冷却方案的情况下,超频到10000 MT/s以上···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了