第321章從零開始的「長城二號」
# 第321章從零開始的「長城二號」
正月十六,清晨六點。
陳星睜開眼睛時,有那麼幾秒鐘不知道自己身在何處。
不是陝北窯洞低矮的土炕,不是火車硬座車廂搖晃的座椅,而是一張真正的床。
雖然只是基地臨時宿舍的鐵架床,鋪著薄薄的褥子,但平整,乾淨。
他猛地坐起來,環顧四周。
十平米左右的房間,擺著四張床,其他三張都空著。
靠窗有張舊桌子,桌上擺著他昨晚修改到凌晨的設計圖。
不是夢。
他真的在這裡,在香山基地,在中國計算機技術的最前沿。
陳星跳下床,用最快的速度洗漱。
水龍頭裡流出的自來水冰涼刺骨,但他毫不在意,甚至覺得清醒。
換上那身不太合身的舊軍裝,他小心翼翼地把設計圖疊好,裝進布包。
王技術員說了,今天上午要開項目啟動會。
推開房門,走廊裡已經有人走動。
穿著藍色工裝的技術員們端著搪瓷缸子,匆匆走向食堂。陳星跟著人流,心裡有些忐忑。
食堂裡熱氣騰騰。
大桶裡是玉米粥,筐裡是窩頭,還有一小盆鹹菜。
陳星學著別人的樣子,打了一份,找了個角落坐下。
剛吃兩口,對面坐了個人。
「新來的?」對方三十多歲,戴著眼鏡,頭髮有些亂,像是一夜沒睡。
「嗯,我叫陳星,昨天剛報到。」陳星連忙說。
「楊振華。」對方簡單自我介紹,咬了口窩頭,含糊不清地說,「聽說你是自學的?」
「是……自學的,可能有很多不足。」
楊振華推了推眼鏡,仔細打量他:「趙總工說你畫了個4位處理器架構圖,能給我看看嗎?」
陳星趕緊放下窩頭,從布包裡拿出那沓紙。
楊振華接過來,一邊吃一邊看。
他的閱讀速度極快,幾乎是一目十行,但偶爾會停下來,盯著某處思考幾秒。
「這裡,」他指著一處電路設計,「你用二極體做與門,理論上沒錯,但實際應用中會有壓降問題。為什麼不用電晶體?」
「我……我沒學過電晶體電路。」陳星臉紅了,「那本書只講到電子管和二極體。」
楊振華抬起頭,看了他一會兒,忽然笑了:「半本書,學到這個程度,很不錯了。」
他把圖紙還給陳星:「吃完飯去會議室。今天啟動『長城二號』項目,你是設計組的。」
「設計組?」陳星愣住,「我才剛來……」
「趙總工點的名。」楊振華站起來,端著空碗,「抓緊吃,八點準時開會。」
看著楊振華離開的背影,陳星心跳加速。
設計組?
他能行嗎?
上午八點,會議室裡坐滿了人。
陳星找了個角落的位置坐下,儘量不引人注意。
但陳啟明一進來就看見了他,招手讓他坐到前面。
「過來,坐這兒。」陳啟明指著身邊的位置,「一會兒要分組討論,你跟緊我。」
「陳老師,我……」
「別叫我老師。」陳啟明拍拍他肩膀,「咱們都是同事。」
「趙總工說了,你是設計組的,那就得參與核心討論。別怕,有什麼不懂就問。」
陳星點頭,手心卻在出汗。
八點整,趙四準時推門進來。
他今天穿了件灰色的中山裝,顯得很精神,但眼下的陰影透露出昨晚又熬夜了。
「人都到齊了,咱們開始。」趙四走到黑板前,沒有寒暄,直接進入主題。
「今天會議只有一個議題:『長城二號』8位微處理器項目,正式啟動。」
他在黑板上寫下幾個大字:
目標:Intel8080級別
集成度:5000電晶體
主頻:1MHz
時間:三年,1979年底前完成設計定型
會議室裡響起低低的議論聲。
「安靜。」趙四敲了敲黑板,「我知道大家在想什麼。難,太難了。」
「咱們的『長城一號』只有2300電晶體,良品率才15%,現在直接翻一倍還多,是不是太冒進了?」
他頓了頓,環視全場:「我告訴大家,不是我們冒進,是形勢逼人。」
「國際市場上,Intel的8080已經量產,Zilog的Z80馬上要發布,MOSTechnology的6502也出來了。」
「8位處理器時代已經到來,我們再抱著4位不放,等咱們造出來,市場早就淘汰了。」
張衛東舉手:「趙總工,工藝跟不上怎麼辦?」
「咱們現在最多做到5微米製程,要集成5000電晶體,至少得3微米。」
「工藝漸進。」趙四寫下這四個字,「這就是我們的策略。不追求一步到位,而是分階段提升。」
「第一階段,用現有工藝,通過優化布局,先做到集成4000電晶體。」
「第二階段,等新光刻機到位,再往3微米走。」
林雪皺眉:「可是布局優化有極限,5000電晶體真的可能嗎?」
「可能。」說話的是楊振華。
他站起來,走到黑板前,拿起粉筆,「我昨晚算了一夜。如果我們採用新的單元庫設計,把標準單元的面積縮小20%,再優化布線,在5微米工藝下,極限可以做到4800電晶體。」
他在黑板上飛快地畫著草圖:「看,這是傳統的布局方式,浪費了大量空間。」
「如果我們改成這樣,用蛇形走線,這裡,這裡,都能節省面積。」
陳星緊緊盯著黑板。
那些複雜的圖形和公式,有些他能看懂,有些完全陌生。
但他強迫自己記住每一個細節,就像在窯洞裡記那些電路圖一樣。
「楊工的計算給了我們信心。」趙四接著說,「但光有硬體設計還不夠。這次『長城二號』項目,我要成立一個『軟體小組』。」
「軟體小組?」下面有人疑惑。
「對。」趙四點頭,「咱們過去只關注硬體,晶片造出來,怎麼用?誰來編程?有什麼軟體能跑?」
「這些問題,以前可以不想,但現在必須想。因為晶片的價值,最終要靠軟體實現。」
他看向張衛東:「衛東,軟體小組你來牽頭。」
「任務有三個:第一,開發『長城二號』的彙編語言和編譯器;」
「第二,設計一個最簡化的作業系統內核;
「第三,編寫基礎的應用軟體,比如文本編輯器、簡單計算器。」
張衛東深吸一口氣:「趙總工,這任務……比硬體設計還難。」
「咱們現在懂軟體的人,一隻手數得過來。」
「所以要從頭培養。」趙四說,「從今天起,每個硬體設計師,每周至少要花一天時間學軟體。」
「反過來,軟體組的人也要學硬體原理。我要的是複合型人才,是既懂晶片又懂編程的人。」
會議室裡安靜下來。
這個要求,超出了很多人的認知範圍。
在他們看來,硬體是硬體,軟體是軟體,就像鉗工和電工,各幹各的活。
「我知道大家不習慣。」趙四的聲音緩和下來,「但這就是未來。」
「計算機不是孤立的晶片,它是一個系統。」
「硬體是軀體,軟體是靈魂。沒有靈魂的軀體是行屍走肉,沒有軀體的靈魂是無根浮萍。」
他走到窗邊,推開窗戶。
冷風吹進來,帶著早春的氣息。
「同志們,咱們在做的,不是一份工作,是一場革命。一場從『製造』到『創造』,從『跟跑』到『並跑』的革命。這條路沒人走過,所以每一步都得我們自己摸索。」
「可能會摔跤,會走彎路,會被人笑話。但如果我們不走,就永遠只能跟在別人後面,吃別人剩下的。」
他轉過身,目光掃過每一個人:「現在,願意跟我走這條路的,留下。覺得太難想退出的,我不怪你,可以申請調去其他項目。」
沒有人動。
陳啟明第一個站起來:「趙總工,我跟你走。」
林雪第二個:「我也跟。」
張衛東推了推眼鏡:「軟體這塊,我拼了命也得搞出來。」
楊振華慢條斯理:「算法我負責,沒問題。」
王技術員眼圈紅了:「我老婆子不懂什麼軟體硬體,我就知道,趙總工指的路,準沒錯。」
一個接一個,所有人都站了起來。
陳星也站起來了。
他站得筆直,手在微微發抖,但眼神堅定。
趙四看著這一張張臉,年輕的臉,不再年輕的臉,都有同樣的光芒。
「好。」他只說了一個字。
但足夠了。
會議持續到中午。
分組討論時,陳星被分到陳啟明的設計一組。
「咱們組負責CPU核心設計。」
陳啟明在白板上畫著框圖,「算術邏輯單元、寄存器堆、指令解碼器、控制單元……小陳,你對哪塊最熟?」
陳星老實說:「我都……都不熟。書上只講了原理,沒講具體設計。」
旁邊一個年輕技術員笑了:「那你來幹什麼?」
「小劉!」陳啟明瞪了他一眼,轉向陳星,「沒關係,誰都是從不會開始的。」
「這樣,你先跟我做指令集設計。這是晶片的靈魂,也是最考驗設計功力的地方。」
他遞給陳星一本厚厚的筆記:「這是我這些年收集的Intel8080指令集分析,還有Z80的一些資料。你先看,有問題隨時問我。」
陳星接過筆記,沉甸甸的。
翻開第一頁,工整的字跡,詳細的注釋,還有手繪的時序圖。
「陳老師,這……」
「叫老陳就行。」陳啟明拍拍他肩膀,「抓緊看,下午咱們要開討論會。」
「記住,咱們不是簡單仿製,是要設計自己的指令集。」
「既要考慮兼容性,又要考慮擴展性,還要考慮易用性。這可是個大學問。」
整個上午,陳星都泡在那本筆記裡。
他像一塊乾渴的海綿,瘋狂吸收著知識。
很多概念他第一次接觸。
尋址方式、中斷處理、流水線設計。
但他強迫自己理解,不懂就問,問陳啟明,問組裡其他人。
午飯時,他端著飯盒,一邊吃一邊看筆記。
楊振華坐過來,看了眼他正在看的內容。
「指令編碼這一章?」楊振華問。
「嗯,看不懂。」陳星老實說,「為什麼要設計這麼多尋址方式?直接尋址、間接尋址、立即尋址、變址尋址……太複雜了。」
「為了靈活。」楊振華拿過他的筆,在桌上畫起來,「你看,假如你要處理一個數組。」
「如果用直接尋址,你得知道每個元素的具體地址,太麻煩。」
「但用變址尋址,只需要一個基地址,一個偏移量,循環起來方便多了。」
他簡單幾筆,畫出了一個循環讀取數組的示例。
陳星恍然大悟:「原來是這樣……那中斷又是為什麼?」
「讓CPU能同時處理多個任務。」楊振華繼續畫,「比如你在計算,突然有鍵盤輸入。」
「如果沒有中斷,你得不停地去查鍵盤有沒有按,浪費CPU時間。」
「有了中斷,鍵盤按下去,發個信號,CPU暫停手頭工作,先去處理輸入,處理完再回來繼續計算。」
「我明白了!」陳星眼睛發亮,「就像……就像一個人本來在看書,突然電話響了,他接完電話再回來看書。」
「對,就是這個意思。」楊振華笑了,「你很會比喻。搞技術的人,有時候缺的就是這種把複雜問題簡單化的能力。」
陳星不好意思地撓撓頭:「我是真不懂,所以只能想些土辦法理解。」
「土辦法才是好辦法。」楊振華認真說,「技術歸根結底,是為了解決實際問題。能解決問題的辦法,就是好辦法。」
吃完飯,陳星繼續看筆記。
下午的討論會,他坐在角落裡,認真聽,拼命記。
討論很激烈。
關於指令集應該設計多少條指令,大家爭得面紅耳赤。
「指令越多,功能越強!」一個技術員說。
「但電路越複雜,成本越高,出錯概率越大!」另一個反駁。
「要兼顧,既不能太少,也不能太多……」
陳啟明聽著,偶爾插話引導,但大多數時間讓年輕人自己爭論。
等大家吵得差不多了,他才開口:「小陳,你說說看。」
所有人都看向陳星。
陳星愣住了。
他一個新人,剛來第一天,哪有資格在這種問題上發言?
「別怕,想到什麼說什麼。」陳啟明鼓勵道。
陳星深吸一口氣,站起來。
他想起在陝北的日子,想起老鄉們用算盤算帳的樣子。
「我……我覺得,指令就像工具。」他慢慢說,「一個木匠,不需要一百種刨子,但常用的那幾種必須好用。」
「咱們設計指令集,是不是也應該這樣?」
「最常用的操作,比如加減乘除、數據搬運、邏輯判斷,這些指令要設計得高效、快速。、」
「不常用的操作,可以簡化,甚至不要。」
他頓了頓,聲音更堅定了些:「我在農村,看老鄉們用算盤。」
「算盤只有加減乘除,但能解決大多數問題。太複雜的計算,他們也不用算盤,用筆算。」
「晶片是不是也可以這樣?把基礎功能做紮實,複雜功能讓軟體去實現?」
會議室裡安靜了幾秒。
楊振華第一個鼓掌:「說得好!這就是RISC思想的前身。精簡指令集。雖然現在國際上流行CISC,但你這個思路,很有前瞻性。」
陳啟明也點頭:「小陳這個比喻很形象。指令集不是越複雜越好,是要好用。好用的標準是什麼?是讓編程的人舒服,讓晶片跑得快。」
討論繼續,但方向清晰了很多。
陳星的話像一顆石子,讓爭論的漩渦找到了出口。
散會時,陳啟明叫住陳星:「今天表現不錯。晚上有空嗎?」
「有!」
「來我辦公室,我給你補補課。指令集設計,門道多著呢。」
「謝謝陳老師!」
「說了叫老陳。」陳啟明笑著走了。
晚上八點,陳星敲開陳啟明辦公室的門。
屋裡堆滿了書和圖紙,幾乎沒有下腳的地方。
陳啟明正在一張大圖紙上畫著什麼,見他進來,招招手:「過來,看這個。」
那是一張極其複雜的晶片布局圖,上面密密麻麻的線條,像一座微縮城市。
「這就是『長城一號』的版圖。」陳啟明說,「2300個電晶體,咱們花了兩年時間。現在要做5000個,你覺得關鍵在哪裡?」
陳星仔細看著圖紙,許久才說:「布線……布線太複雜了。」
「對!」陳啟明一拍桌子,「就是布線。電晶體可以畫小,但線不能太細,否則電阻大,容易斷。線不能太密,否則幹擾大。線不能太長,否則延遲大。」
他抽出一張白紙,開始畫:「所以咱們得重新設計單元庫。把常用的邏輯門。與門、或門、非門、觸發器。做成標準模塊,像搭積木一樣組合。每個模塊的接口要規範,這樣布線才容易。」
他一邊畫一邊講,從電晶體原理講到版圖設計,從功耗計算講到時序分析。
陳星聽得如饑似渴,遇到不懂的就問,陳啟明也不厭其煩地解釋。
講到夜裡十一點,陳啟明忽然停下:「差不多了,今天先到這兒。你回去消化消化,明天繼續。」
陳星站起來,深深鞠躬:「謝謝陳老師!」
「說了叫老陳。」陳啟明擺擺手,「趕緊回去休息,明天任務更重。」
走出辦公樓,夜風很冷。
但陳星心裡是熱的。
他抬頭看天,北京的夜空比陝北明亮得多,能看到更多的星星。那些星星有的亮,有的暗,有的聚成團,有的孤零零。
他想,自己現在就像其中一顆。
也許不是最亮的,但至少發光了。
回到宿舍,同屋的另外三個人都回來了。
都是年輕人,一個來自清華,一個來自北大,還有一個從上海微電子所調來的。
「你就是陳星?」清華的那個上下打量他,「聽說你是自學成才?」
「談不上成才,還在學。」陳星老實說。
「別謙虛了。」北大的那個遞給他一個蘋果,「趙總工特招的人,肯定有兩把刷子。以後多指教。」
上海來的那個推了推眼鏡:「聽說你懂電路設計?我正好有個問題……」
四個人圍在一起,討論起技術問題。
蘋果在桌上傳來傳去,誰渴了咬一口。
圖紙攤了滿床,鉛筆在紙上沙沙作響。
夜深了,樓管來催熄燈。他們才意猶未盡地收拾。
躺在黑暗裡,陳星睡不著。
他想起了陝北的窯洞,想起煤油燈下那半本破書,想起隊長恨鐵不成鋼的眼神,想起爹信裡「安分守己」的囑咐。
如果那時放棄了,現在會怎樣?
大概還在黃土高原上,日出而作,日落而息,等著不知道什麼時候才能到來的回城機會。
但現在,他在這裡。在中國計算機技術的核心,參與著一個偉大項目的起步。
這一切,像夢,又不是夢。
隔壁床傳來輕微的鼾聲。陳星翻了個身,看著窗外透進來的月光。
他想,這就是科學的春天吧。
不是陽光普照的溫暖,而是冰雪消融時,種子在凍土下積蓄力量,等待破土而出的那一刻。
而他,就是其中一顆種子。
雖然小,雖然不起眼,但終究,發芽了。
閉上眼睛時,陳星默默許了個願:三年後,當「長城二號」成功的那天,他要回陝北一趟,告訴隊長,告訴爹,告訴所有說他「不務正業」的人。
看,這條路,我走通了。
不只是我,還有千千萬萬像我一樣的人,都在走。
走一條從零開始的路。
走一條中國人自己的