第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在你的遊戲裡造電腦誤。」
「意料之中。」陸雲說。
「切,裝。」沈妙妙白了他一眼,縮回去繼續挖她的礦洞。
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在你的遊戲裡造電腦誤。」
「意料之中。」陸雲說。
「切,裝。」沈妙妙白了他一眼,縮回去繼續挖她的礦洞。