第237章 他们在 MC 里,造了一台能算数的机器
RAM组是最疯的。
组长是个卡内基梅隆的硕士,网名“内存泄漏”,名字就很有自知之明。他的方案是用粘性活塞的伸缩状态来存储比特:活塞伸出代表1,缩回代表0。
一个字节八个活塞,256字节就是2048个活塞。加之寻址电路、读写控制线、数据总线接口,整个RAM模块铺开之后,面积相当于一个足球场。
“我觉得我在盖数据中心。”“内存泄漏”在Discord里发了条消息,配了张俯瞰截图。
截图里,密密麻麻的活塞数组排列成整齐的矩阵,红石线像血管一样在其间蜿蜒。从高空看,确实象一块巨大的内存芯片的版图。
只不过分辨率是一米见方的方块。
伊桑每天晚上都会飞到服务器上空,俯瞰整个工地。
ALU在西边,寄存器在北边,RAM在东边,控制单元在南边。四个模块之间留着宽阔的空地,那是给总线组预留的走线信道。
整个布局象一张展开的芯片版图。
他截了张图,没发到任何社交媒体上。”。
第十五天,ALU组完成了加法和减法功能的搭建与验证。
“硅”在语音里报告:“16位加法,全部真值表通过。减法用补码实现,也没问题。
延迟大概三秒半一个周期。”
“比预期快。”伊桑说。
“走线优化了一下,省了几个中继器。”
“位运算呢?”
“与、或做完了,异或还差两天。移位器————”“硅”顿了一下,“移位器有点麻烦。桶形移位器的面积太大了,我在想要不要改成逐位移位,用时钟周期换面积。”
“用时钟换。面积不够了。”
“收到。”
第二十天,寄存器组完成。四个16位寄存器,读写功能正常,时钟同步没有毛刺。
第二十五天,RAM组完成了前64字节的搭建和验证。“内存泄漏”说剩下的192字节是重复劳动,结构一样,就是体力活。
“我现在右手食指按鼠标按出了腱鞘炎的前兆。”他在Discord里说。
没人回复。大家都差不多。
第三十天。
控制单元组交付了指令译码器的初版。支持八条指令:加、减、与、或、加载、存储、跳转、停机。
极其精简。但够了。
伊桑看着指令集表格,在白板上又加了一行字。
“第三十天。所有模块功能正常。开始集成。”
总线组开始动了。
这是最脏最累的活。把四个独立的模块用16位宽的红石数据总线连起来,每一根线都要手动铺设,穿过预留的信道,接入每个模块的接口端。
十六根数据线,加之地址线、控制线,总共将近五十根红石线并排铺设。
从空中看,象一条红色的高速公路。
铺到一半,有根线出了问题。信号传到第三十格的时候衰减了,中继器漏放了一个。
排查花了四个小时。
“找到了,”总线组的人在语音里说,声音疲惫得象三天没睡,“X坐标负1847那个位置,少了个中继器。”
“补上。”
“补了。通了。”
没有人欢呼。只是继续铺下一根线。
第三十八天。
凌晨三点,波士顿时间。
伊桑一个人坐在实验室里,面前的屏幕上是MC的服务器。
所有模块已经连接完毕。从出生点飞到整个计算机的上空,需要将近一分钟。
它太大了。
占地面积超过了游戏里一个中型村庄。密密麻麻的红石线、中继器、活塞和方块,组成了一个极其壮观的矩阵。
伊桑在RAM里手动写入了一段程序。
很简单:把寄存器A设为3,寄存器B设为5,执行加法,结果存入寄存器C,停机。
小学数学。
但要让一堆泥巴和红石粉算出这个结果,需要信号穿过上万个逻辑门,经过几十个时钟周期的流水线处理。
他深吸了一口气,按下了时钟信号发生器旁边的那个石制按钮。
红石信号亮了。
暗红色的光芒从时钟发生器出发,沿着总线向四面八方扩散。中继器一级一级地接力,活塞开始有节奏地伸缩,发出沉闷的“咔、咔、咔”声。
整台计算机活了过来。
伊桑盯着屏幕,一动不动。
信号在ALU里穿行,全加器的进位链逐级传递。寄存器的触发器在时钟沿翻转状态。
控制单元的译码器把指令拆解成控制信号,精确地驱动着每一个模块。
二十秒。
三十秒。
四十五秒。
“咔嗒。”
停机指令执行。时钟信号停止。整台机器安静下来。
伊桑飞到寄存器C的位置,低头看那十六个D触发器的输出端。
从低位到高位:亮、亮、亮、灭、灭、灭、灭、灭、灭、灭、灭、灭、灭、灭、灭、
灭。
二进位:0000000000001000。
十进位:8。
他盯着那几个亮着的红石火把,坐在椅子上,一动没动,大概有十秒钟。
然后他摘下耳机,靠回椅背,对着空荡荡的实验室天花板,说了一句话。
“跑通了。”
声音很轻,象是说给自己听的。
他拿起手机,在Discord群里打了一行字。
。首次计算成功。所有模块各项指标正常。”
凌晨三点十二分。
群里陆续亮起了绿点。
“卧槽。”
“我们居然真的做到了。
“截图呢?”
伊桑把俯瞰图发了上去。
从五百格的高空往下看,整台红石计算机象一块被放大了一百万倍的集成电路,铺满了整个视野。红色的信号线纵横交错,活塞数组排列成整齐的矩阵,在方块世界的白色平原上,构成了一幅极其震撼的图景。
Discord里安静了大概三十秒。
然后“内存泄漏”发了条消息:“我要把这张图打印出来贴在我导师办公室门上。”
“硅”跟了一条:“附议。”
伊桑没有把这张截图发到Reddit上。”。
T
然后关掉计算机,去睡觉了。
闹钟定的早上七点。他还有一篇论文的截止日期在下周。
但纸包不住火。
团队三十七个人,总有管不住嘴的。
第二天下午,一个伯克利的组员在自己的推特小号上,发了一张红石计算机局部特写的截图。没加任何说明,只配了一个表情符号:。
转发量在两个小时内破了一万。
因为任何一个学过数字电路的人,一眼就能看出那张截图里的东西是什么。
那不是什么花里胡哨的红石机关。
那是一个标准的16位算术逻辑单元。
评论区的画风跟普通游戏帖完全不同。
“这是桶形移位器还是逐位移位?看结构象是后者。”
“右下角那个是进位选择加法器?谁设计的?走线很干净。”
“等等,这东西的规模————你们是在造CPU?”
截图被转到了HackerNews。
标题被编辑改成了:“MIT的学生似乎正在《我的世界》里用红石逻辑搭建一台功能完备的16位处理器。”
四个小时,八百条评论,冲上了HN主页第一。
伊桑看到的时候,正在食堂吃三明治。
他嚼了两下,把三明治放下,打开Discord。
“谁发的推特?”
沉默了十秒。
伯克利那哥们儿弱弱地冒了个泡:“————我的锅。”
伊桑没发火。他想了一下,说:“算了。反正迟早的事。但从现在开始,所有对外信息由我统一发布。”
“收到。”
“收到。”
“抱歉,老大。”
伊桑关掉Discord,把三明治吃完了。
他知道这件事瞒不住。三十七个人的项目,涉及六所高校,保密本来就是奢望。
但他没想到会这么快。
更没想到的是,这条消息传回大洋彼岸的速度。
知乎热榜,当天下午。
“如何评价MIT博士生团队在《我的世界》中用红石搭建16位CPU?”
问题下面,那个之前提出“图灵完备”猜想的清华微电子系ID,第一个写了回答。
“我之前的猜想被证实了。红石系统是图灵完备的。这意味着,《我的世界》不仅仅是一个游戏,它是一个可编程的物理仿真器。
陆云,或者说他的团队,在一个面向大众的沙盒游戏里,埋了一套完整的计算基础设施。这件事的意义,远超游戏本身。”
回答很短,但赞数在一小时内破了两万。
评论区里,平时只潜水的技术大佬们纷纷冒头。
“说个更恐怖的事实:这台红石CPU的指令集架构,和早期的RISC处理器高度相似。
也就是说,如果有人愿意花时间,理论上可以在MC里跑一个极简的作业系统。”
“楼上别吓人了。”
“我没吓人。我在认真分析可行性。”
B站这边反应更直接。
有UP主连夜做了个科普视频,标题是《MIT疯子在马赛克游戏里造了台计算机,这意味着什么?》。
视频里用动画演示了红石逻辑门的工作原理,从与门讲到全加器,再到CPU的基本架构。最后放出了那张泄露的截图。
弹幕在ALU特写出现的那一刻彻底失控。
“我特么大学数电挂了两次,现在在游戏里看懂了。
“陆云:我做了个游戏。MIT:我们在你的游戏里做了台计算机。”
“所以这游戏的上限到底在哪???”
播放量一夜破五百万。
而在海城陆达总部,陆云刷到这条新闻的时候,正靠在沙发上喝茶。
他看着屏幕上那张红石CPU的俯瞰图,嘴角微微勾了一下。
没说话。
把茶杯放下,切回了工作邮箱。
沉妙妙从旁边探过头来,瞄了一眼他的屏幕。“你不激动吗?MIT在你的游戏里造计算机误。”
“意料之中。”陆云说。
“切,装。”沉妙妙白了他一眼,缩回去继续挖她的矿洞。