第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。
小學數學。
但要讓一堆泥巴和紅石粉算出這個結果,需要信號穿過上萬個邏輯門,經過幾十個時鐘周期的流水線處理。
他深吸了一口氣,按下了時鐘信號發生器旁邊的那個石製按鈕。
。了亮號信石紅
。聲」哢、哢、哢「的悶沉出發,縮伸地奏節有始開塞活,力接地級一級一器繼中。散擴方八麵四向線總著沿,發出器生發鐘時從芒光的色紅暗
。來過了活機算計台整
。動不動一,幕屏著盯桑伊
。態狀轉翻沿鐘時在器發觸的器存寄。遞傳級逐鏈位進的器加全,行穿裡ULA在號信
。塊模個一每著動驅地確精,號信製控成解拆令指把器碼解的元單製控
。秒十二
。秒十三
。秒五十四
」。嗒哢「
。來下靜安器機台整。止停號信鐘時。行執令指機停
。端出輸的器發觸D個六十那看頭低,置位的C器存寄到飛桑伊
、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、滅、亮、亮、亮:位高到位低從
。滅
。0001000000000000:位進二
。8:位進十
。鐘秒十有概大,動沒動一,上子椅在坐,把火石紅的著亮個幾那著盯他
。話句一了說,板花天室驗實的蕩蕩空著對,背椅回靠,機耳下摘他後然
」。了通跑「
。的聽己自給說是像,輕很音聲
。字行一了打裡群drocsiD在,機手起拿他
」。常正標指項各塊模有所。功成算計次首。8=5+3「
。分二十點三晨淩
。點綠了起亮續陸裡群
」。槽臥「
「