第239章 六十人垒故宫,三十七人造 CPU 让你做飞行模拟,你做成跳伞吃鸡
伊桑靠回椅背,盯著天花板看了一会儿。
然后他站起来,走到实验室角落那块满是公式残骸的白板前,拿起马克笔,在空白处写下一行字。
““project: redstone cpu.“”
他在下面又加了一行小字,潦草得只有自己能看懂。
““if it“s turing complete, i can build a processor.“”
笔帽没盖,他就这么拿著笔站在白板前,盯著那行字,眼睛越来越亮。
伊桑没睡。
白板上那行字写完之后,他直接回到工位,打开了一个空白存档,开始系统性地测试红石元件的每一种组合。
红石火把的特性他已经摸清了:它本质上是一个非门。给它供电,它灭:断电,它亮。反直觉,但逻辑自洽。
两个非门串一个,与门。並一个,或门。交叉反馈,锁存器。
他花了三天时间,把七种基本逻辑门全搭了一遍,每一种都反覆验证了真值表。没有一个例外。
第四天,他搭出了一个全加器。两个输入位,一个进位,输出一个和与一个进位。
占地大概是游戏里六乘八的面积,用了四十多个红石元件。丑得要命,但跑起来严丝合缝。
他盯著那个全加器看了很久。
然后打开reddit,在mc板块发了个帖。
標题很直接:““l“puter 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伺服器,取名““redstonecomputingproject““。
人数在四十八小时內涨到了三十七人。
mit的有六个,斯坦福三个,卡內基梅隆两个,剩下的散布在伯克利、乔治亚理工、普渡,还有几个已经在英特尔和amd上班的工程师,用的匿名號。
分工是伊桑定的。他在discord里发了一张表格,简洁到近乎粗暴。
alu组:八人。负责搭建16位算术逻辑单元,支持加法、减法、与、或、异或、移位六种运算。
寄存器组:五人。四个通用寄存器,每个16位宽,用d触发器阵列实现。
ram组:六人。256位元组可寻址內存,基於活塞状態存储。
控制单元组:七人。指令解码器、程序计数器、时钟信號发生器。
总线组:四人。负责把所有模块用红石数据总线连起来。
测试组:七人。写测试用例,跑验证,排错。
没有人討价还价。领了任务就开干。
操。
这阵仗,比他们实验室里流片前的rtl验证还正经。
专用伺服器开在aws上,伊桑自己掏的钱。地图是一片被指令刷平的超平坦世界,白茫茫一片,像一块无限大的麵包板。
alu组最先动工。
组长是斯坦福的一个博二,网名“silicon““,研究方向是高性能计算。他把16位全加器的设计拆成了四个4位模块,每个模块由四个全加器级联,进位链串行传递。
听起来简单。
搭起来要命。
一个全加器占六乘八的面积。四个级联,加上进位线的走线空间,一个4位模块就是一片小广场。四个模块再串起来,整个16位加法器铺开之后,从头走到尾要跑將近两分钟。
““这特么也太大了。““silicon在语音里说。
““红石的传输延迟是个问题,““伊桑回,““每十五格信號衰减一次,必须插中继器。中继器本身有一到四刻的延迟。加法器越长,延迟越高,时钟频率就越低。“”
““那能跑多快?“”
伊桑算了一下。““乐观估计,一个时钟周期大概————四到五秒。”
语音里安静了两秒。
““五秒一个周期。““silicon重复了一遍。
““对。“”
““我导师的实验室里那台测试晶片跑三个g赫兹。”
““我知道。“”
““行吧。““silicon说,““五秒就五秒。又不是不能用。“”
他开始搭了。
寄存器组那边更安静。五个人几乎不说话,各自认领了一个寄存器,埋头用d
触发器阵列一位一位地垒。十六位宽的寄存器,十六个触发器,每个触发器由两个rs锁存器加时钟门控组成。
一个寄存器搭完,占地面积相当於游戏里一栋两层小楼。
四个寄存器並排放好,中间留出走线通道,看起来像一排整齐的伺服器机柜o
只不过是用泥巴和红石粉搭的。