在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

栗子 晓查 发自 凹非寺

量子位 报道 | 公众号 QbitAI

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

一块小小的CPU里有多少个晶体管?几十亿个。

单枪匹马造出一个CPU乃至完整的电脑需要多长时间?有位大牛在《我的世界》游戏里用实际行动回答了这个问题:可能要花费一年多

这篇造计算机的教程一经转载就在知乎上火了。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

这并不是一篇游戏攻略,而是来自复旦大学的季文瀚,写的一篇课程论文。他在大二时就有了大胆的设想,经过一年的精心营造,建起了一个计算机雏形,取名Alpha21016

虽然它不能与现实中的计算机相比,只能实现一些简单的功能,但这台计算机体积惊人,光看它复杂的结构就已经能感受工程量的巨大。

有网友感叹,发课程论文可惜了,简直可以发学术论文啊。

这台计算机能做什么

季文瀚计算机使用的是哈佛结构,而非更常见的冯·诺依曼结构。程序储存器和数据储存器分开放置。程序储存器1kb,数据储存器0.5kb。

它可以实现各种函数运算:加减乘除、三角函数还有矩阵运算。它包含一个16bit的CPU和一个32bit的浮点运算单元 (FPU) 。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

从硬件上看,它是个超大规模集成电路,逻辑门总数大概在5万-10万门之间。光是存储器堆叠起来就有8层。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

要造出这样一台计算机,数字电路、微机原理、汇编语言、编译原理都不能少。想想你挂过哪几门课,从学会到熟练运用就更难了。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

有了专业知识的支持,就能将计算机拆解成基本的部件。

我们都知道计算机的基础是数字电路,数字电路的基础是“门”,季文瀚用游戏里基本的“红石电路”搭建出了逻辑门。

从逻辑门出发,再搭建出组合电路、时序电路、触发器,有了这些就能组成CPU的一些基本单元,最终造出整个计算机。

现实世界中,晶体管是数字电路的基础;在《我的世界》中,红石电路是构成复杂电路的基本单元。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

红石电路玩家,只用火把和方块,就能造出基本的逻辑门:或门和非门。或门和非门的组合可以造出与门异或门等任意逻辑门。

但仅仅知道怎么制造逻辑门离造出计算机还很远,可能大致相当于造出汉字笔画到写出《红楼梦》的距离。

季文瀚先给自己的CPU架构画了一个草图:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

其中每一个方框都代表一个或若干个硬件单元,小一点的大约一两百个门电路,大的有几千个门电路。这个密密麻麻的部分,也只是架构的右半部分而已:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

知道了CPU的基本架构,再按照架构图分别造出每个部分,比如CPU的重要模块“算数逻辑单元”(ALU)和“指令寄存器”(IR),工程量很大。

算数逻辑单元还能进一步拆解,它的加法器由数个全加器组成,上面基本的逻辑门可以组成加法器中最基本的全加器 (下图) 。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

全加器也是计算机的一个核心部件。

同时,《我的世界》还提供的基于活塞机械的断路,用信号控制电路的通断,也就是继电器。利用继电器和逻辑门的组合可以造出存储器。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

计算器→单片机→计算机

大概是因为太复杂,季文瀚一开始也没想直接搭个计算机。

最初,他的目标是造出一台16 bit的简单计算器。

但做到一半,他就觉得可以实现更复杂的东西,于是想改成单片机:这是具有“图灵完备性”,可以执行一切计算机程序的简单计算机。

他规划了指令集架构,储存器架构,以及指令发射方式等等。

后来,触发器、可读写储存器、缓冲队列等等重要电路,季文翰都设计成功了。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

有了这些,少年又做了更雄伟的计划:做个16 bit的CPU

CPU旁边,还有一个包含超越函数的单精度32 bit浮点处理器 (FPU) 。

这里,计算器作为片外系统,并没有被抛弃。季文翰把16 bit计算器,改成了完全时序逻辑电路控制、且有溢出判断的计算器——这在Minecraft红石电路玩家里,已是前所未有

它借用CPU的ALU部分进行运算,并经过总线传输数据。

CPU和计算器的大部分硬件,都在这张表格里:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

表上的40个硬件,除了指令译码器、指令发射端、异常中断响应没有做完,其他都做好了。还有一些小的硬件单元没有列出来。

目前,CPU的ALU、主储存器、和寄存器等EU部分已经完工,内部环状总线已竣工,CU部分,也就是最繁琐的部分,还没有完工。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

肉眼可见的威力

季文翰说,虽然还没完全竣工,但CPU已经可以执行许多种机器指令 (以MOV为主) :通用寄存器赋值,按字/字节 立即数/间接/直接寻址。

其中,最容易用肉眼感受到威力的,还是借用CPU的ALU完成运算的计算器

他在视频里展现了加减乘除正余弦,以及平方根的计算。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

从养着小猪的地方走楼梯下来,就是计算器的所在地了。这里有两排按钮,还有显示屏,如上图。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

屏幕后面,可以看到运转的电路。

先做加减乘除。比如加法:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

减法也是同理。只不过,负号和减号在这里分成了两个按钮。

乘法和除法的运算量比较大:三位数乘三位数,大概需要20秒;除法更慢一些,电脑还会卡。

下图就是除法,因为打了反除号 () ,所以被除数在右边。左下是商,右下是余数。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

空间限制了算力,所以计算器要有溢出判断,超过±32627的范围就会报错,显示“E”。

不论是输入的数还是计算结果,超出范围都会报错:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

除以“0”,也会报错。

注意,计算机用二进制来计算,算好之后还要从二进制转成十进制,才是最终的答案。这里用到了BCD/BIN转换算法,把二进制BIN码,转成十进制BCD码。

四则运算做完了,还有正余弦,用的是Cordic旋转迭代算法:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

需要多次迭代,所以运算比较慢,大概花了两分钟。

相比之下开根号就快许多,用的是快速平方根算法:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

20秒 (就) 开好了。

计算能力就展示到这里。

而机智的你可能已经也感受到了,显示器对于一台计算机有多重要。那么:

显示器怎么做?

游戏空间太狭窄,造显卡是不现实的:2×2个红石灯,就是游戏能控制的最小像素了。

所以,季文翰做了字符显示器

首先,用七段显示器来表示数字。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

一个“日”字,是7根小棒组成的

比如,“4”就有左上、右上、中、右下,一共四根小棒。

每根小棒又由三个方块组成。把这些方块的活塞往回抽,就显示出凹陷的“4”了。

而每个十进制数,都可以对应二进制的四位数,比如3是0011,9是1001。输入二进制数,屏幕就能显示成十进制。

数字搞定了,还有其他字符。季文翰用了自己设计的缩减版ASCII码,只有不到64个字符:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

给每个字符编个号:0,1,2,…,63。每个号码,都可以转成二进制数00000-111111。

然后,显示出来长这样:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

打开夜视,萤火一般,美不胜收。

其实,这些字是“印”在了显示器的键盘上,白天长这样:

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

也就是说,计算机有了,显示器有了,键盘也有了。

而这样的杰作,居然来自一位“业余选手”。

“我学的不是计算机”

现在来回顾一下,从逻辑门到计算机,都要经历什么:

或门,非门

→与门,异或门

→全加器,信号长度转换器,多态选择器,储存器单元,译码器单元,求补码单元,移位器单元

→可读写储存器,译码器,加法器,移位器,时钟发生器

→加减法器,乘法器,除法器,可读写储存器阵列,寄存器,程序计数器

→总线,ALU,CU

→计算机

令人意外的是,造出这项复杂工程的季文瀚,是复旦大学2011级生命科学学院的本科生,没有受过系统地计算机科学专业教育。他说,看到国外玩家的作品很感兴趣,才自学了一些专业课。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

大二便启动了Alpha21016计算机的开发,作为《网络虚拟环境与计算机应用》这门课的项目来做的。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

从他对技术细节的解读来看,那时的季文翰,已经硬件和软件上拥有无比充分的准备。

普通人的话,可能了解逻辑电路的基础。普通红石玩家的话,可以把逻辑电路的基础知识,用来搭建简单或复杂的红石电路。

高阶红石玩家,也曾经在季文瀚的项目开始之前,造出过计算器。

但制造一台计算机,并没有多少人敢想。季文翰不但想到,还用了一整年去实现,几近完成。

毕竟,如果有个容量惊人的大脑,总归要拿来用的吧。

在《我的世界》里打造一台计算机有多难?这位大神花费了一年心血

技术博客原文传送门:

http://blog.renren.com/blog/263123705/911088369

一期视频传送门:

https://v.youku.com/v_show/id_XNTkyNTg0NTEy.html

二期视频传送门:

https://www.bilibili.com/video/av4221161/

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ\’ᴗ\’ ի 追踪AI技术和产品新动态

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年8月27日 上午9:29
下一篇 2023年8月27日 上午9:39

相关推荐

  • vue java 项目管理系统

    Vue.js Java 项目管理系统 随着互联网的快速发展,Java 应用程序开发已经成为一种流行的技术。为了更好地管理和维护Java 应用程序,开发团队需要使用一些工具来简化项目…

    科研百科 2024年12月23日
    1
  • 麻省理工科研成果(麻省理工学院科研项目)

    麻省理工学院科研项目: 探索人类大脑如何产生艺术 麻省理工学院是世界上最著名的科技类大学之一,其科研项目一直走在世界前沿。最近,该校的研究人员开始探索人类大脑如何产生艺术。 这一项…

    科研百科 2024年4月7日
    137
  • 上海中谷物流股份有限公司 关于使用部分首次公开发行股票募集资金进行现金管理到期赎回并继续进行 现金管理的公告

    证券代码:603565 证券简称:中谷物流 公告编号:2022-034 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、准确性和…

    科研百科 2022年6月3日
    210
  • 蚌医科研项目有哪些

    蚌医科研项目有哪些 随着医学技术的发展,蚌医科研项目也在不断地进行中。蚌医是中国医学科学院医学实验中心的重要组成部分,致力于开展各种科研项目,为临床和研究提供支持。 目前,蚌医科研…

    科研百科 2025年4月20日
    1
  • 翰文进度计划编制软件(翰文进度计划编制软件怎么使用)

    翰文进度计划编制破解版是款非常实用的进度图制作工具,这软件的界面十分的精致,你可以根据这软件来编制各种不同的网格图表,帮助你快速来完成工作内容,该版本支持免费下载,喜欢的用户们千万…

    2022年5月28日
    451
  • 项目管理中的系统需求

    项目管理中的系统需求 在项目管理中,系统需求是一个重要的方面,它决定了项目是否能够成功完成。系统需求是一个复杂的概念,需要考虑到许多因素,包括用户需求、性能、可靠性、安全性等等。在…

    科研百科 2025年1月12日
    3
  • 绿野花田 在线3D家居设计平台Cedreo法国办公升级设计欣赏(绿野园艺)

    随着团队的发展和办公模式的演变,2022年Cedreo对其法国南特办公场所进行了一次全面的升级改造设计。开放的布局、多元灵动的场景,鼓励员工重回办公室,促进更紧密的团队间的交流与协…

    科研百科 2023年5月12日
    285
  • 科研项目分工图表格图片

    科研项目分工图表格图片 随着科技的不断进步,科研项目分工图表格图片已经成为科研项目管理中不可或缺的一部分。一份好的科研项目分工图表格图片能够提高科研项目的效率,降低管理成本,并且有…

    科研百科 2025年4月12日
    1
  • 如何报名参加科研项目

    如何报名参加科研项目 近年来,随着科技的飞速发展,科研项目已经成为了许多学生和研究人员寻求新知识和职业发展的重要途径。那么,如何报名参加科研项目呢?本文将为您详细介绍。 首先,您需…

    科研百科 2025年2月26日
    0
  • 企业档案管理流程和方法

    企业档案管理流程和方法 企业档案管理是企业为了收集、整理和管理企业的文件、资料、财务等相关信息而建立的文件系统。合理的档案管理可以提高企业的效率,便于企业信息的查询和使用,有助于企…

    科研百科 2024年8月21日
    44