广告

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

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

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

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

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

pycednc

详细视频:pycednc

pycednc

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

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

pycednc

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

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

pycednc

pycednc

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

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

pycednc

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

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

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

pycednc

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

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

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

上电测试也没有问题:pycednc

pycednc

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

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

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

pycednc

左:RAM和指针 右:ROMpycednc

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

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

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

pycednc

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

pycednc

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

pycednc

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

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

还有纯手写最原始代码

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

pycednc

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

pycednc

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

pycednc

一切准备工作就绪。pycednc

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

亮灯,跑起!pycednc

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

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

pycednc

但bug很快被找到了:pycednc

有个地方断开了。pycednc

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

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

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

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

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

pycednc

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

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

pycednc

走进“肝帝”大神

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

据大神介绍:pycednc

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

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

参考链接:pycednc

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

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

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

责编:Demipycednc

  • 他是从0到1,你是1到2。如果你们PK,谁会赢?
  • 就是人家自己做着玩的,不要给予太多意义。
  • 所以说设计cpu不难,难的是怎么制造出来
  • 这个事价值不大,不如用这些时间去学习点更先进的技术,比如用FPGA等搭建CPU。
    只能说有时间,耐心,毅力,和动手能力
  • 我觉得制作费用比买CPU还高,有如此能力,完全可用淘汰下来的显卡,CPU做一个更好的!
  • 这篇文章几年前就在一本日本翻译的书上看到了,就像现在人不用现成的音响偏要自己通过三极管放大电路做一个一样的意思。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 华为天才少年稚晖君用108天打了个字,重新定义客制化键 自称“鸽王”的稚晖君终于更新啦。这次他带来的新项目则是:一把完全客制化、带屏幕模块的机械键盘!有网友表示,稚晖君的这个新项目,为键圈乃至整个键盘行业提供了新的设计思路,甚至有望改变目前客制化以换壳为本的囧境。
  • 成本100元,缓解M2 MacBook Air过热问题 国外有喜欢DIY的网友发现了一种简单且廉价的解决方案来缓解 M2 MacBook Air 过热问题的方法。但值得提醒的是,这种DIY方法会导致M2 MacBook Air的保修失效,因此,想要效仿的读者们要三思而后行哦。
  • 给廉价蒸蛋器DIY出智能温控,烧了多个仿真器和USB HUB后 笔者手上有一台型号为ZDQ-514Q1的小熊蒸蛋器,弹跳式自锁开关。由于这台蒸蛋器水烧干了,温度上升,温度开关断开停止加热;待温度降低之后,温度开关重新闭合,重新加热。 不仅不节能,也不安全。因此笔者考虑,能不能给这台“低配”电器DIY出“智能”模式……
  • 波兰网友实测+拆解:中国“最便宜”的太阳能充电器,能否 本文我将对一款最便宜的带有USB 5V输出的中国产太阳能充电器进行实际测试。该充电器采用26cm×14cm的单面板形式,并具有集成转换器——如果可能的话,应产生稳定的5V输出。在这个话题中,我将检查在阳光明媚的3月或4月是否可以用它来为手机充电,然后展示其内部逆变器的样子。测试将从典型的用户角度进行,即我将拿两部手机(三星和苹果),检查它们是否可以在阳光明媚的日子里充电到任何显著程度。
  • 用M2芯片升级M1 MacBook Pro,结果…… 虽然新款 MacBook 与上一代机型的硬件和外形尺寸大致相同,但 M2 芯片的升级带来了主要的性能和电池增益。YouTuber用户@ Luke Miani尝试使用 M2 芯片升级 M1 MacBook Pro。该UP主想知道,既然设计结构相同,那么将 M1 芯片换成 M2 芯片能否成功……
  • 给变压器烙铁DIY一个温度“稳定器” 多年来,我一直对变压器烙铁头的没有温度控制而感到恼火。可能所有使用变压器烙铁的用户都注意到,使用这种烙铁进行焊接需要大量练习,以免因温度过高而造成损失。问题在于无法控制烙铁头温度,我决定稍微DIY一下。
  • 手工耿自制“失重离心车”,硬核“手搓”齿轮 就在今天拥有百万粉丝的手工耿又带来了新作品——自制失重离心车,截至EDN电子技术设计发稿前,该视频在B站播放量已有139.8万,评论数高达3万。
  • 给苹果AirPods改造个USB-C接口,该项目已开源 我们之前已经看到一位工程师巧妙地改装了带有 USB-C 端口的 iPhone。日前,这位工程师又将 AirPods 充电盒上的 Lightning 端口换成 USB-C 端口。
  • 比亚迪更新光伏逆变专属IGBT为绿色发电助力  在“碳中和”的背景下,光伏逆变器的核心IGBT功率半导体的市场需求与日俱增,比亚迪半导体发布的两款光伏逆变IGBT有哪些参数和优势呢?
  • 21家半导体厂商在2021年研发投入超10亿美金 预计 2022 年至 2026 年间,半导体公司的研发总支出将以 5.5% 的复合年增长率 (CAGR) 增长至 1086 亿美元。
  • 拆解苹果背夹电池,网友:做工不错但容量太小 UP主不久前从闲鱼购入了一块苹果背夹电池,用了一段时间后,心血来潮想看看这款背夹电池内是否有内置一些特别的芯片,与普通充电宝有何区别。
  • 给安卓手机改造一个Lightning接口,如何绕过Apple专利保 国外DIY爱好者Ken Pillonel 曾在他的 YouTube 频道上发布了另一个名为 Exploring the Simulation (Kenny Pi) 的视频,其中他展示了给安卓手机Galaxy A51改造了一个Lightning接口,并成功充电。由于Lightning 是Apple的专有技术,因此Pillonel 曾表示改造过程中,最大的挑战是让 Lightning 接口与 Android 智能手机配套成功并实现其充电及数据传输功能。近日,他分享了整个改造过程。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了