第240章 他們在 MC 里,造了一台能算數的機器

投票推薦 加入書籤 小說報錯

  第237章 他們在 MC 里,造了一台能算數的機器

  RAM組是最瘋的。

  組長是個卡內基梅隆的碩士,網名「內存泄漏」,名字就很有自知之明。他的方案是用粘性活塞的伸縮狀態來存儲比特:活塞伸出代表1,縮回代表0。

  一個字節八個活塞,256位元組就是2048個活塞。加上尋址電路、讀寫控制線、數據總線接口,整個RAM模塊鋪開之後,面積相當於一個足球場。

  「我覺得我在蓋數據中心。」「內存泄漏」在Discord里發了條消息,配了張俯瞰截圖。

  截圖裡,密密麻麻的活塞陣列排列成整齊的矩陣,紅石線像血管一樣在其間蜿蜒。從高空看,確實像一塊巨大的內存晶片的版圖。

  只不過解析度是一米見方的方塊。

  伊桑每天晚上都會飛到伺服器上空,俯瞰整個工地。

  ALU在西邊,寄存器在北邊,RAM在東邊,控制單元在南邊。四個模塊之間留著寬闊的空地,那是給總線組預留的走線通道。

  整個布局像一張展開的晶片版圖。

  他截了張圖,沒發到任何社交媒體上。存在本地,文件名是「day—12.png」。

  第十五天,ALU組完成了加法和減法功能的搭建與驗證。

  「矽」在語音里報告:「16位加法,全部真值表通過。減法用補碼實現,也沒問題。

  延遲大概三秒半一個周期。」

  「比預期快。」伊桑說。

  「走線優化了一下,省了幾個中繼器。」

  「位運算呢?」

  「與、或做完了,異或還差兩天。移位器————」「矽」頓了一下,「移位器有點麻煩。桶形移位器的面積太大了,我在想要不要改成逐位移位,用時鐘周期換面積。」

  「用時鐘換。面積不夠了。」

  「收到。」

  第二十天,寄存器組完成。四個16位寄存器,讀寫功能正常,時鐘同步沒有毛刺。

  第二十五天,RAM組完成了前64位元組的搭建和驗證。「內存泄漏」說剩下的192位元組是重複勞動,結構一樣,就是體力活。

  「我現在右手食指按滑鼠按出了腱鞘炎的前兆。」他在Discord里說。

  沒人回復。大家都差不多。

  第三十天。

  控制單元組交付了指令解碼器的初版。支持八條指令:加、減、與、或、載入、存儲、跳轉、停機。

  極其精簡。但夠了。

  伊桑看著指令集表格,在白板上又加了一行字。

  「第三十天。所有模塊功能正常。開始整合。」

  總線組開始動了。

  這是最髒最累的活。把四個獨立的模塊用16位寬的紅石數據總線連起來,每一根線都要手動鋪設,穿過預留的通道,接入每個模塊的接口端。

  十六根數據線,加上地址線、控制線,總共將近五十根紅石線並排鋪設。

  從空中看,像一條紅色的高速公路。

  鋪到一半,有根線出了問題。信號傳到第三十格的時候衰減了,中繼器漏放了一個。

  排查花了四個小時。

  「找到了,」總線組的人在語音里說,聲音疲憊得像三天沒睡,「X坐標負1847那個位置,少了個中繼器。」

  「補上。」

  「補了。通了。」

  沒有人歡呼。只是繼續鋪下一根線。

  第三十八天。

  凌晨三點,波士頓時間。

  伊桑一個人坐在實驗室里,面前的屏幕上是MC的伺服器。

  所有模塊已經連接完畢。從出生點飛到整個計算機的上空,需要將近一分鐘。

  它太大了。

  占地面積超過了遊戲裡一個中型村莊。密密麻麻的紅石線、中繼器、活塞和方塊,組成了一個極其壯觀的矩陣。

  伊桑在RAM里手動寫入了一段程序。

  很簡單:把寄存器A設為3,寄存器B設為5,執行加法,結果存入寄存器C,停機。


  3+5=8。

  小學數學。

  但要讓一堆泥巴和紅石粉算出這個結果,需要信號穿過上萬個邏輯門,經過幾十個時鐘周期的流水線處理。

  他深吸了一口氣,按下了時鐘信號發生器旁邊的那個石制按鈕。

  紅石信號亮了。

  暗紅色的光芒從時鐘發生器出發,沿著總線向四面八方擴散。中繼器一級一級地接力,活塞開始有節奏地伸縮,發出沉悶的「咔、咔、咔」聲。

  整台計算機活了過來。

  伊桑盯著屏幕,一動不動。

  信號在ALU里穿行,全加器的進位鏈逐級傳遞。寄存器的觸發器在時鐘沿翻轉狀態。

  控制單元的解碼器把指令拆解成控制信號,精確地驅動著每一個模塊。

  二十秒。

  三十秒。

  四十五秒。

  「咔嗒。」

  停機指令執行。時鐘信號停止。整台機器安靜下來。

  伊桑飛到寄存器C的位置,低頭看那十六個D觸發器的輸出端。

  從低位到高位:亮、亮、亮、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、

  滅。

  二進位:0000000000001000。

  十進位:8。

  他盯著那幾個亮著的紅石火把,坐在椅子上,一動沒動,大概有十秒鐘。

  然後他摘下耳機,靠回椅背,對著空蕩蕩的實驗室天花板,說了一句話。

  「跑通了。」

  聲音很輕,像是說給自己聽的。

  他拿起手機,在Discord群里打了一行字。

  「3+5=8。首次計算成功。所有模塊各項指標正常。」

  凌晨三點十二分。

  群里陸續亮起了綠點。

  「臥槽。」

  「我們居然真的做到了。

  「截圖呢?」

  伊桑把俯瞰圖發了上去。

  從五百格的高空往下看,整台紅石計算機像一塊被放大了一百萬倍的集成電路,鋪滿了整個視野。紅色的信號線縱橫交錯,活塞陣列排列成整齊的矩陣,在方塊世界的白色平原上,構成了一幅極其震撼的圖景。

  Discord里安靜了大概三十秒。

  然後「內存泄漏」發了條消息:「我要把這張圖列印出來貼在我導師辦公室門上。」

  「矽」跟了一條:「附議。」

  伊桑沒有把這張截圖發到Reddit上。

  他只是保存在本地,文件名改成了「day—38—first—run.png」。

  T

  然後關掉電腦,去睡覺了。

  鬧鐘定的早上七點。他還有一篇論文的截止日期在下周。

  但紙包不住火。

  團隊三十七個人,總有管不住嘴的。

  第二天下午,一個伯克利的組員在自己的推特小號上,發了一張紅石計算機局部特寫的截圖。沒加任何說明,只配了一個表情符號:。

  轉發量在兩個小時內破了一萬。

  因為任何一個學過數字電路的人,一眼就能看出那張截圖裡的東西是什麼。

  那不是什麼花里胡哨的紅石機關。

  那是一個標準的16位算術邏輯單元。

  評論區的畫風跟普通遊戲帖完全不同。

  「這是桶形移位器還是逐位移位?看結構像是後者。」

  「右下角那個是進位選擇加法器?誰設計的?走線很乾淨。」

  「等等,這東西的規模————你們是在造CPU?」

  截圖被轉到了HackerNews。

  標題被編輯改成了:「MIT的學生似乎正在《我的世界》里用紅石邏輯搭建一台功能完備的16位處理器。」


  四個小時,八百條評論,衝上了HN首頁第一。

  伊桑看到的時候,正在食堂吃三明治。

  他嚼了兩下,把三明治放下,打開Discord。

  「誰發的推特?」

  沉默了十秒。

  伯克利那哥們兒弱弱地冒了個泡:「————我的鍋。」

  伊桑沒發火。他想了一下,說:「算了。反正遲早的事。但從現在開始,所有對外信息由我統一發布。」

  「收到。」

  「收到。」

  「抱歉,老大。」

  伊桑關掉Discord,把三明治吃完了。

  他知道這件事瞞不住。三十七個人的項目,涉及六所高校,保密本來就是奢望。

  但他沒想到會這麼快。

  更沒想到的是,這條消息傳回大洋彼岸的速度。

  知乎熱榜,當天下午。

  「如何評價MIT博士生團隊在《我的世界》中用紅石搭建16位CPU?」

  問題下面,那個之前提出「圖靈完備」猜想的清華微電子系ID,第一個寫了回答。

  「我之前的猜想被證實了。紅石系統是圖靈完備的。這意味著,《我的世界》不僅僅是一個遊戲,它是一個可編程的物理模擬器。

  陸雲,或者說他的團隊,在一個面向大眾的沙盒遊戲裡,埋了一套完整的計算基礎設施。這件事的意義,遠超遊戲本身。」

  回答很短,但贊數在一小時內破了兩萬。

  評論區里,平時只潛水的技術大佬們紛紛冒頭。

  「說個更恐怖的事實:這台紅石CPU的指令集架構,和早期的RISC處理器高度相似。

  也就是說,如果有人願意花時間,理論上可以在MC里跑一個極簡的作業系統。」

  「樓上別嚇人了。」

  「我沒嚇人。我在認真分析可行性。」

  B站這邊反應更直接。

  有UP主連夜做了個科普視頻,標題是《MIT瘋子在馬賽克遊戲裡造了台電腦,這意味著什麼?》。

  視頻里用動畫演示了紅石邏輯門的工作原理,從與門講到全加器,再到CPU的基本架構。最後放出了那張泄露的截圖。

  彈幕在ALU特寫出現的那一刻徹底失控。

  「我特麼大學數電掛了兩次,現在在遊戲裡看懂了。

  「陸云:我做了個遊戲。MIT:我們在你的遊戲裡做了台電腦。」

  「所以這遊戲的上限到底在哪???」

  播放量一夜破五百萬。

  而在海城陸達總部,陸雲刷到這條新聞的時候,正靠在沙發上喝茶。

  他看著屏幕上那張紅石CPU的俯瞰圖,嘴角微微勾了一下。

  沒說話。

  把茶杯放下,切回了工作郵箱。

  沈妙妙從旁邊探過頭來,瞄了一眼他的屏幕。「你不激動嗎?MIT在你的遊戲裡造電腦誤。」

  「意料之中。」陸雲說。

  「切,裝。」沈妙妙白了他一眼,縮回去繼續挖她的礦洞。

章節目錄