十月中的北京,漫天風雪。
一輛吉普車行駛在中關村的道路上,後座上,兩名軍人荷槍實彈,把呂辰和諸葛彪擠在中間,一個箱子就放在二人懷裡。
木箱子裡裝著顯示控制晶片,整整40套,第三版的設計解決了時鐘分配網路的問題,提高了時鐘緩衝器的設計餘量,良率提升到了70%。
“計算機所已經把顯示器搭起來了!”錢蘭的聲音從前面傳來。
“用第二版?”諸葛彪接話,“效果怎麼樣?”
“他們挑了時序最穩的一套,顯示器已經能跑了,就是字元偶爾會閃,這是時鐘分配網路的毛病。”錢蘭道。
車子拐進計算所灰撲撲的主樓,呂辰掏出來的紅皮工作證,衛兵掃了一眼,揮揮手放行。
車停在主樓側面,計算機所的工作人員引著三人往總裝車間走。
呂辰來過好幾次,每次來都覺得這地方像個戰地醫院,機櫃是機櫃,線是線,板卡插得到處都是,示波器擱在板凳上,程式設計機放在木頭架子上,哪哪兒都不像一臺正經計算機該待的地方。
但今天不一樣。
呂辰三人進去的時候,車間裡亮著一盞燈,不是頭頂的日光燈,是螢幕的光。
崑崙-0的墨綠色機櫃還蹲在老地方,沉默,敦實,像一頭臥著的牛。
但機櫃右邊多了一個墨綠色的鐵皮箱子,半人高,兩尺寬,正面嵌著一塊玻璃螢幕,螢幕裡發著綠瑩瑩的光。
陳高工坐在機櫃前面的一把摺疊椅上,手裡端著一個搪瓷缸子,眼睛盯著那塊螢幕。
聽見門響,他回過頭,看見呂辰三人,嘴角翹了一下。
“來了?”
呂辰盯著那塊螢幕,螢幕上有一行一行的字,綠色的,在黑色的背景上亮著。
那是一張表,上面有數字,有字母,排得整整齊齊。
最上面一行是“KUNLUN-0 SELF TEST v1.0”,下面是一串測試專案,每個專案後面跟著“OK”,最底下是兩行“ERRORS: 0”
呂辰盯著那行字看了好幾秒。
“這是……第二版的?”他問。
“對。”陳高工站起來,走到顯示器前面,拍了拍鐵皮箱子的頂蓋,“跑了一週了,沒出過大問題。”
“跑了一週?”錢蘭的聲音帶著驚訝,“你們用第二版晶片,跑了一週?”
陳高工淺笑一聲:“第二版的毛病我們都知道。時鐘分配網路驅動能力不夠,跑一會兒就丟一個脈衝。但你們猜怎麼著?丟脈衝的時候,螢幕會閃一下。閃一下就完了,不會宕機,不會亂碼。就是閃一下。”
他指了指螢幕:“你看,這不跑得好好的?”
呂辰和諸葛彪把木箱子放在地上,走到顯示器前面,蹲下來,把臉湊到螢幕跟前。
螢幕上,字元是一格一格拼出來的,筆畫不是完全平滑的,能看見畫素的鋸齒。
但每一個字都清清楚楚,該是“K”就是“K”,該是“O”就是“O”。
他把目光從螢幕上移開,去看顯示器的機箱。
墨綠色的鐵皮,稜角包著鐵皮條,正面有一圈黑色的金屬邊框,邊框上印著一行白色的小字:“KL-DISP-01”。
螢幕下方有兩排旋鈕和開關,電源開關、亮度調節、對比度調節,還有一個標著“行頻位調”的旋鈕,上面刻著一圈刻度,被人用紅筆在中間位置畫了一道。
機箱後面拖著一捆粗粗的電纜,灰色的帆布套,十幾根線擰在一起,接頭的金屬插針磨得鋥亮。
電纜的另一頭插在崑崙-0機櫃背面的介面板上,插得死死的,旁邊還用鐵絲擰了一道。
“你們自己做了外殼?”諸葛彪蹲在機箱側面,用手摸了摸鐵皮。
“京城電子管廠的鈑金師傅敲的,敲了兩天就敲出來了。”陳高工說,“紅光廠改裝的12寸單色映象管,剛好夠用。”
他頓了頓,又說:“裡面那塊板子,是我們自己改的。你們那個版圖,視訊記憶體和字元發生器之間的距離太遠了,訊號延遲大。我們挪了一下布距,把視訊記憶體往字元發生器那邊移了半寸,好了不少。”
諸葛彪已經繞到機箱後面去了,拿起一把螺絲刀擰蓋子。
蓋子開啟,露出裡面那塊電路板,比A4紙大一圈,綠油油的基底,上面焊著一堆晶片、電阻、電容,走線密密麻麻,像一座微縮的城市。
最顯眼的是中間那幾塊晶片,銀灰色的陶瓷封裝,表面印著“KL-XC01”的字樣。第二版晶片。
陳高工走過來,用手指點了點電路板右上角一個區域:“四塊視訊記憶體拼出來的1KB,剛好夠用。”
“夠了。”錢蘭重複了一遍這個詞,聲音很輕。
呂辰站起來,退後兩步,重新看那個顯示器。
螢幕上的綠色字元安安靜靜地亮著,一明一暗,像是在呼吸。
“陳工,你們用第二版晶片,搭出這臺顯示器,花了多長時間?”
陳高工想了想:“十一月初開始搭,搭了大概三週?第一週做電路板,第二週焊元件,第三週調。調了五天,第一行字出來的時候是十一月二十八號。”
他停下來,端起搪瓷缸子喝了一口水。
“螢幕上顯示的是‘KUNLUN-0 SELF TEST’。”他把缸子放下,看著那塊螢幕,“就一行字,跑了一個小時沒閃。然後就開始閃了。但沒關係,閃就閃,字還在。”
他轉過身,看著呂辰:“你們第三版,改了甚麼?”
“時鐘分配網路。”呂辰說,“驅動能力翻了一倍。理論上,不會閃了。”
陳高工點點頭,沒說話,彎腰把那個木箱子抱起來,放在桌上,解開麻繩,掀開軍毯,開啟蓋子。
箱子裡,防靜電盒碼得整整齊齊。
他拿起最上面一個開啟,拿出一塊晶片舉到眼前,對著燈光看了看,然後用拇指摩挲了一下封裝表面,光滑,平整,沒有毛刺。
“看著比上一版好。”他說。
“工藝最佳化了一下。”錢蘭說,“中試線那邊,燒結溫度調高了一點,氣密性好了不少。”
陳高工把晶片放回盒子裡,蓋上蓋子,然後把箱子抱起來,放在旁邊的操作檯上。
“行,”他說,“下午就把這塊換上。看看它還會不會閃。”
呂辰看著那個顯示器,螢幕上,自檢程式還在跑。
測試專案一項一項地過,每一項後面都跟著“OK”,最底下還是那兩行“ERRORS: 0”
諸葛彪蹲在機箱側面,用手指敲了敲鐵皮,聽那“咚咚”的聲音。
最後還是陳高工開了口。
“你們別站著了,”他說,“過來看看這個。”
他走到操作檯前,從旁邊的檔案架上抽出一張二維卡,插進讀卡機裡,按了一下啟動鍵。
讀卡機“咔嗒”一聲,把卡片吞了進去。
顯示器上的字開始滾動。
“MATRIX MULTIPLY TEST”
“8×8 MATRIX A LOADED”
“8×8 MATRIX B LOADED”
“COMPUTING……”
然後,螢幕上開始出現數字。
一行一行,一列一列,排成方陣。
綠色的數字在黑色的背景上亮著,像棋盤上的棋子。
“這是矩陣乘法的結果。”陳高工說,“8×8的矩陣,算完了,把結果打在螢幕上。一屏全出來,一眼就看完。”
他指著螢幕右下角那行字:“你們看,47個指令週期,零錯誤。”
呂辰等人又看了一會兒,甚至拆開研究了一下電路板。
正討論著映象管的磁場,夏先生的辦事員來請。
三人來到夏先生的辦公室,夏先生給三人倒了一杯茶。
“小錢、小諸葛、小呂,顯示控制晶片做完了,恭喜你們!”
呂辰三人受寵若驚,連忙正襟危坐。
夏先生又道:“有了鍵盤輸入、有了字元顯示器、還有程式設計機,我們就有了建設崑崙1機的工具,這是一個了不起的成就。”
他頓了頓:“今天喊你們三人來,是有一個問題,想聽聽你們的意見!”
呂辰心中緊張起來:“夏先生請講!”
“鍵盤有了,字元顯示器有了,程式設計機也有了,崑崙-0機的生產就要提上日程。”
呂辰小心道:“崑崙-0的小型科研機,定型了?”
夏先生點點頭:“定型了,型號KJ-0A,這不是重點,重點是小型機出來了,分散式輔助電路設計系統就要開始建設階段,這個系統是給你們設計組用的,你們有甚麼想法。”
呂辰三人對視一眼。
過了兩秒,呂辰放下茶杯:“夏先生,其實,最近我也在想一個問題。156廠那邊要生產KJ-0A了,以後各單位都會有自己的機器。但有些單位一臺可能不夠用,所以我琢磨著,能不能兩臺機器共用一臺儲存櫃,組成一個小系統?算力翻倍,大家就不用排隊了。”
夏先生點點頭:“這個想法,跟咱們會上說的分散式系統是一個思路。兩臺機器加一個儲存櫃,就是分散式系統的最小規模。如果需求大,可以申請兩臺,自己組網。”
呂辰順著往下說:“兩臺能組網,那七八臺呢?比如說二十五研究院的雷達站,要處理幾十個通道的訊號,一臺機器算不過來,七八臺並聯,每臺負責幾個通道,最後把資料彙總。這不就是……一個專用的計算叢集?”
夏先生笑了:“你這個比喻很形象。雷達站確實需要這種算力。七八臺機器並聯,共享一個大儲存櫃,每臺算一部分,最後合併結果。這就是分散式叢集,多臺小機器拼成一臺大機器用。”
呂辰想了想,又問:“夏先生,我還有一個問題,可能不成熟。崑崙-1的算力比崑崙-0強那麼多,造出來之後,放哪兒用?如果只放在一個單位,其他單位用不上,是不是有點浪費?”
夏先生端著茶杯,沒說話,示意他繼續。
呂辰說:“我在想,能不能讓全國的KJ-0A都連到崑崙-1上?各地的科研人員在自己的終端上提交任務,崑崙-1統一排程,算完了把結果傳回去。這樣,一臺崑崙-1的算力,全國都能用上。這不就是……一個全國性的計算網路?”
他說完,自己也笑了:“我就是瞎琢磨,可能想得太遠了。”
夏先生放下茶杯,沉默了一會兒。
“你這個‘瞎琢磨’,琢磨到點子上了。”他站起來,走到書桌前,拿起鉛筆,在紙上畫了兩個圖。
第一個圖:幾個方塊圍著一個大方塊,線從大方塊連到每個小方塊。
“這是你說的雷達站方案,七八臺機器並聯,共享儲存。這叫分散式叢集,多臺小機器拼成一臺大機器。算力是疊加的,每臺都在幹活。”
他又畫了第二個圖:一個大方塊在中間,周圍一圈小方塊,線從每個小方塊連到大方塊,但小方塊之間沒有連線。
“這是你說的全國網路方案。各地的KJ-0A是終端,崑崙-1是主機。終端提交任務,主機計算,結果傳回終端。這叫主從式網路,算力集中在主機,終端只負責輸入輸出。”
他放下鉛筆,看著呂辰:“這兩個方案,對通訊協議的要求完全不一樣。”
呂辰湊過去看:“哪裡不一樣?”
夏先生指著第一張圖:“分散式叢集,機器之間要頻繁交換資料。A機算了一半,要傳給B機接著算。所以協議要支援對等通訊,任何兩臺機器之間都能直接傳資料。地址空間不用太大,七八個節點就夠了。但要求低延遲、高頻寬,不然機器都在等資料,算力疊加不起來。”
他的手指移到第二張圖:“全國網路,終端之間不用通訊,每個終端只跟主機通訊。所以協議只要支援星型拓撲就夠了,主機在中心,終端在四周。但地址空間要大,幾十個、上百個節點都得能區分。而且要考慮流量控制,幾十個終端同時提交任務,主機扛不扛得住?任務怎麼排隊?結果怎麼返回?”
他抬起頭,目光有些凝重:“你說得對,這不是一回事。分散式叢集的協議,解決不了全國網路的問題。”
呂辰點點頭:“我就是好奇。那是不是得兩套協議?一套給分散式叢集用,一套給全國網路用?”
夏先生想了想:“不一定。可以在同一套協議框架裡,定義不同的工作模式。點對點模式給叢集用,主從模式給網路用。但……”他皺了皺眉,“現在的協議,連點對點都沒做完,更別說主從了。”
他坐回椅子上,沉默了好一會兒。
“這個問題,得找理論組一起討論。陳教授他們一直在研究網路,蘇聯的文獻裡提過類似的想法。你說得對,崑崙-1的算力不能只放在一個地方,得讓全國的科研單位都能用上。”
呂辰笑道:“我就是隨口一說,具體怎麼做,還得夏先生您和陳教授他們定。”
夏先生擺擺手:“你這個‘隨口一說’,把兩個不同層次的問題分清楚了。有些人會把它們混在一起,越想越亂。你能分清楚,說明你想透了。”
呂辰三人從使用者角度,對分散式電路設計輔助系統提了一些要求,然後才離開。
回程的路上,風雪打在擋風玻璃上,雨刮器嘎吱嘎吱地響。
諸葛彪搓了搓手,呵出一口白氣。
“呂辰,你說的這個全國網路,要是真能成,那以後搞科研的人可省事了。我在想,到時候大家在自的辦公室裡,往KJ-0A裡插一張卡片,敲幾個鍵,就能調崑崙-1的算力。不用往京城跑,不用排隊等機器,不用把資料錄在磁帶上扛過去。”
他頓了頓,聲音裡帶著一種孩子氣的興奮:“這不就是……坐在家裡幹活?”
錢蘭從前座回過頭來,表情卻沒那麼輕鬆。
“想法是好,但問題也多。”她提出難題,“通訊靠甚麼?現在的電話線,通話都經常斷斷續續,傳資料能穩嗎?一個計算任務跑幾個小時,中間斷一次,全白乾。”
呂辰點點頭:“郵電部那邊一直在搞載波通訊,理論上能在電話線上同時傳語音和資料。技術不成熟,但方向對。”
錢蘭又豎起一根手指:“就算線的問題能解決,資料格式呢?崑崙-1用的是二進位制,終端這邊是鍵盤輸入的助記符,中間要有個翻譯的過程。這個翻譯程式放在哪兒?放在終端,終端的儲存晶片裝不下;放在主機,主機忙的時候顧不上。”
諸葛彪插了一句:“那就在中間加一個‘翻譯機’,專門幹這個活。終端把助記符發過去,翻譯機轉成二進位制,再發給崑崙-1。反過來也一樣。”
錢蘭看了他一眼,沒反駁,但也沒點頭。
她又問了一個難題:“保密問題怎麼解決?星河計劃那麼多涉密專案,資料在電話線上跑,萬一被人竊聽了怎麼辦?”
車裡安靜了幾秒,連兩名戰士都緊張起來。
呂辰想了想,說:“加密。資料在終端先加密,到了主機再解密。加密演算法不用太複雜,能防住普通監聽就行。真正的高等級涉密專案,還是走專線、專人押送資料。”
錢蘭沉默了一會兒,慢慢點了點頭。
“還有一個問題,”她的聲音低下來,“諸葛彪說的‘翻譯機’,如果真要做,本質上就是一臺專用的通訊處理機。這活兒,最後還不是落到咱們積體電路實驗室頭上?”
諸葛彪愣了一下,然後嘿嘿笑了:“錢師姐,你這是提前心疼自己啊。”
錢蘭瞪了他一眼:“我是心疼你。到時候你畫版圖畫到手抽筋,別來找我借人。”
諸葛彪縮了縮脖子,沒敢接話。
車子碾過一個坑,顛了一下,風雪打在車窗上,沙沙作響。
過了好一會兒,諸葛彪又開口了,這次聲音輕了很多,像是在自言自語。
“你們說,要是真有那麼一天,秦教授在西軍電,汪傳志在鞍鋼,兩個人各有一臺KJ-0A,晚上十二點,崑崙-1開放,我們同時撥號上去,它那邊怎麼分?誰的活先算,誰的活後算?”
呂辰想了想,說:“那就定個規矩。誰先連上誰先用,後面的排隊。排隊的時候,終端上顯示‘您排在第二位,預計等待15分鐘’。等輪到你了,機器‘叮’一聲,你這邊開始算。”
諸葛彪眼睛亮了:“那要是排在第一位的那個人,算到一半停電了呢?”
“那就儲存進度,等他下次上線接著算。”呂辰說,“不能讓人家白等半天,最後一無所獲。”
錢蘭也接了一句:“還要設一個‘最高優先順序’。有些任務是生產線上等著用的,耽誤一分鐘就是幾噸廢鋼。這種任務插進來,應該能排到最前面。”
諸葛彪笑了:“那這就不只是計算網路了,這是計算排程系統啊。”
“對。”呂辰說,“就是排程。崑崙-1是算力中心,KJ-0A是終端,中間加一個排程器,管排隊、管優先順序、管斷點續算。這套系統要是能跑通。”
“那就是全國的科研單位,共用一臺超級計算機。”諸葛彪把話接過去,聲音裡有一種壓不住的激動。
錢蘭沒說話,但也沒反駁。
過了一會兒,諸葛彪突然嘿嘿笑了起來。
車上人都一臉驚奇的看著他:“怎麼著?發噫症了?”
諸葛彪嘿嘿道:“錢師組、呂辰,你們想想,這崑崙1白天肯定是要用來算實時任務的,算力會在晚上開放,如果秦教授有一臺KJ-0A,每到晚上12點,他就守在KJ-0A前,撥號訪問崑崙1,你們說說,這像甚麼?”
呂辰想想一臉嚴肅的秦教授,深夜在小黑屋裡訪問崑崙1的場景,不自禁抖了一下,捶了諸葛彪一下:“你竟敢說秦教授是地下黨,當心他來找你麻煩!”
說完車上的人都笑了起來。
車窗外,風雪漸漸小了。
遠處的天際,隱隱透出一線灰白。
車輪碾過積雪,發出細碎的聲響,像某種密電碼,一長一短,一短一長,消失在1966年冬天北京的晨風裡。