第236章 六十人垒故宫,三十七人造 CPU
进度极慢。
慢到令人发指。
光是午门的台基,十二个人就磨了整整四天。不是因为技术难度,而是鲁班七号这个完美主义的疯子,要求每一层汉白玉栏杆的望柱间距,必须严格按照《营造法式》里的记载换算。
差一个方块都不行。
““X1247那根望柱歪了,往东挪一格。”
““哥,那是一个方块的事儿,肉眼根本看不出来。“”
““我看得出来。挪。“”
没人跟他争。建筑系的人都有这毛病。
周三凌晨两点,午门的地基终于铺完了。从服务器的高空俯瞰,一个巨大的“凹“字形轮廓,端端正正地卡在中轴在线。
鲁班七号截了张图,发到群里。没说话,就一张图。
群里安静了几秒,然后有人回了句:“操,象那么回事了。”
这是他们收到的最高评价。
每天都有新的截图流出来。午门的城墙开始往上长了,用深红色混凝土一层一层垒上去,顶上铺着黄色陶瓦。远看糊成一片马赛克,但轮廓和比例,已经有了那个味道。
负责斗拱的哥们儿最惨。故宫的斗拱结构是中国古建筑里最变态的部分,层层叠叠,榫卵咬合。在MC里没有斜面方块,只能用楼梯、半砖和栅栏硬凑。
他在语音频道里骂了三天娘,拆了建,建了拆,最后用橡木楼梯和云杉半砖的组合,勉强拼出了一个七铺作的斗拱截面。
从正面看,居然有七八分神似。
““行了,就这样吧。““鲁班七号看了半天,说。
那哥们儿如释重负,直接趴桌上睡着了。
消息开始往外漏。
不是官方宣传,就是有人在NGA随手发了个帖。标题很随意:“有群疯子在MO
里盖紫禁城,目前完成了午门的地基。”
配了三张截图。半成品,糙得很,到处都是脚手架一样的临时方块没拆干净。
帖子沉得很快,没几个人看。
评论区零零散散几条回复。
““这工程量————怕不是要肝到明年吧。”
““午门地基就这么大?后面太和殿怎么办?
最底下有个人说:““等他们盖完,我第一个去参观。“”
没人当回事。
鲁班七号也没在意这些。他现在满脑子都是太和殿的屋顶怎么收。重檐庑殿顶,上下两层飞檐,四角翘起,脊上还得蹲一排脊兽。
用方块怎么做弧线?
他盯着故宫博物院官网上太和殿的侧面照片,在草稿纸上画了一晚上,铅笔芯断了两根。
最后的方案是:用不同朝向的楼梯方块逐级递进,每隔三格抬高一格,形成视觉上的曲线错觉。远看是弧,近看是锯齿。
但在MC里,远看就够了。
““就这么干。““他在群里说。
没人反对。
太和殿的柱子开始立了。三十六根金柱,用去皮的云杉原木一根根竖起来,间距严格按图纸。有人在语音里书着数,““三十四、三十五、三十六,齐了。”
站在殿内往上看,密密麻麻的原木柱子撑起一片空旷的穹顶空间。虽然全是方块,但那种庄严肃穆的空间感,已经隐隐约约地透了出来。
鲁班七号站在中轴在线,前后左右看了一圈,没说话。
旁边有人问:““怎么样?”
““柱子没问题。“他顿了一下,“但地砖的颜色不对,太亮了。换成深色花岗岩试试。“”
又是三天的返工。
没人抱怨。这帮人已经疯了。
与此同时,服务器的另一个角落里,有个测绘专业的哥们儿,正拿着坐标在空地上跑来跑去。他在标定金水河的走向。
故宫的金水河是弯的。
方块世界里没有曲线。
他蹲在计算机前,对着AutoCAD里的河道矢量图,一个方块一个方块地在地图上点。每点一个,就在坐标本子上划一笔。
点了六个小时,河道拐了第一个弯。
他站起来活动了一下脖子,看着屏幕上那条由蓝色方块组成的锯齿状河流,自言自语:““凑合吧。”
这条暗线,暂时就这么不声不响地往前推着。没有热搜,没有流量,只有六十多个人在一个没几个人知道的服务器里,一块一块地垒。
大洋彼岸。
波士顿,麻省理工学院,计算机科学与人工智能实验室。
凌晨一点,32号楼三层的灯还亮着。
一个留着络腮胡、穿着洗到发白的MIT连帽衫的博士生,盯着屏幕上MC红石系统的技术文档,已经保持这个姿势超过四十分钟了。
。计算机体系结构方向,博三,导师是搞RISC—V的。
屏幕上是他自己搭的一个红石测试存盘。地面上铺满了密密麻麻的红石粉、
中继器和比较器,象一块被拆开的印刷电路板。
他刚刚用红石火把和中继器的延迟特性,成功搭出了一个RS锁存器。
这不难。任何学过数电的本科生都能做到。
但他在意的不是这个。
他在意的是,当他把两个RS锁存器串联起来,加之时钟信号之后,它的行为和一个标准的D触发器完全一致。
输入,时钟沿,输出。严丝合缝。
伊桑靠回椅背,盯着天花板看了一会儿。
然后他站起来,走到实验室角落那块满是公式残骸的白板前,拿起马克笔,在空白处写下一行字。
““Project: Redstone CPU.“”
他在下面又加了一行小字,潦草得只有自己能看懂。
““If it“s Turing colete, I can build a processor.“”
笔帽没盖,他就这么拿着笔站在白板前,盯着那行字,眼睛越来越亮。
伊桑没睡。
白板上那行字写完之后,他直接回到工位,打开了一个空白存盘,开始系统性地测试红石组件的每一种组合。
红石火把的特性他已经摸清了:它本质上是一个非门。给它供电,它灭:断电,它亮。反直觉,但逻辑自洽。
两个非门串一个,与门。并一个,或门。交叉反馈,锁存器。
他花了三天时间,把七种基本逻辑门全搭了一遍,每一种都反复验证了真值表。没有一个例外。
第四天,他搭出了一个全加器。两个输入位,一个进位,输出一个和与一个进位。
占地大概是游戏里六乘八的面积,用了四十多个红石组件。丑得要命,但跑起来严丝合缝。
他盯着那个全加器看了很久。
然后打开Reddit,在MC板块发了个帖。
标题很直接:““l“going to build a 16—bit couter inside
Minecraft. Who“sin?“”
他在正文里没写太多废话。贴了全加器的截图,附了一张手绘的16位CPU架构草图,列了需要的模块清单:ALU、寄存器组、程序计数器、指令译码器、RAM。
最后一行:““This is not a joke. I need people who know digital
logic.“”
帖子发出去四十分钟,三百条评论。
一个小时,冲上了Reddit全站热榜。
评论区的画风跟游戏论坛完全不一样。没有卧槽牛逼“,全是极其冷静的技术讨论。
““你的ALU打算支持哪些运算?加减和位移够了,乘除用软件实现吧,不然面积爆炸。“”
““寄存器用RS锁存器还是D触发器?D触发器稳定但体积大一倍。”
“RAM怎么做?我之前试过用活塞数组做可寻址存储,八位地址线,理论上能寻址256字节。够不够?”
伊桑一条一条回,回到凌晨四点。
第二天,他建了个Discord服务器,取名““RedstoneCoutingProject““。
人数在四十八小时内涨到了三十七人。
MIT的有六个,斯坦福三个,卡内基梅隆两个,剩下的散布在伯克利、佐治亚理工、普渡,还有几个已经在英特尔和AMD上班的工程师,用的匿名号。
分工是伊桑定的。他在Discord里发了一张表格,简洁到近乎粗暴。
ALU组:八人。负责搭建16位算术逻辑单元,支持加法、减法、与、或、异或、移位六种运算。
寄存器组:五人。四个通用寄存器,每个16位宽,用D触发器数组实现。
RAM组:六人。256字节可寻址内存,基于活塞状态存储。
控制单元组:七人。指令译码器、程序计数器、时钟信号发生器。
总线组:四人。负责把所有模块用红石数据总线连起来。
测试组:七人。写测试用例,跑验证,排错。
没有人讨价还价。领了任务就开干。
操。
这阵仗,比他们实验室里流片前的RTL验证还正经。
专用服务器开在AWS上,伊桑自己掏的钱。地图是一片被指令刷平的超平坦世界,白茫茫一片,象一块无限大的面包板。
ALU组最先动工。
组长是斯坦福的一个博二,网名“Silicon““,研究方向是高性能计算。他把16位全加器的设计拆成了四个4位模块,每个模块由四个全加器级联,进位链串行传递。
听起来简单。
搭起来要命。
一个全加器占六乘八的面积。四个级联,加之进位线的走线空间,一个4位模块就是一片小广场。四个模块再串起来,整个16位加法器铺开之后,从头走到尾要跑将近两分钟。
““这特么也太大了。““Silicon在语音里说。
““红石的传输延迟是个问题,““伊桑回,““每十五格信号衰减一次,必须插中继器。中继器本身有一到四刻的延迟。加法器越长,延迟越高,时钟频率就越低。“”
““那能跑多快?“”
伊桑算了一下。““乐观估计,一个时钟周期大概————四到五秒。”
语音里安静了两秒。
““五秒一个周期。““Silicon重复了一遍。
““对。“”
““我导师的实验室里那台测试芯片跑三个G赫兹。”
““我知道。“”
““行吧。““Silicon说,““五秒就五秒。又不是不能用。“”
他开始搭了。
寄存器组那边更安静。五个人几乎不说话,各自认领了一个寄存器,埋头用D
触发器数组一位一位地垒。十六位宽的寄存器,十六个触发器,每个触发器由两个RS锁存器加时钟门控组成。
一个寄存器搭完,占地面积相当于游戏里一栋两层小楼。
四个寄存器并排放好,中间留出走线信道,看起来象一排整齐的服务器机柜O
只不过是用泥巴和红石粉搭的。