首頁 分類 排行榜 閱讀記錄 我的書架
第305章 奠定理論基礎

簡單休息一會,進入了第三議題,如何設計上萬只電晶體?

夏先生親自主持這個議題。

他展示了一張104計算機的佈線圖,那是一張巨大的圖紙,上面密密麻麻畫著邏輯閘和連線,像一幅複雜的迷宮地圖。

“手工畫版圖,我們最多能處理幾十個電晶體。”夏培肅說,“當規模達到幾百、幾千、甚至上萬時,必須靠數學方法和自動化工具。”

他在黑板上寫下三個方向。

邏輯設計自動化,用布林代數和卡諾圖進行邏輯化簡,但需要演算法處理多變數問題。

佈局問題,將邏輯閘放置到晶片上,屬於組合最佳化,可能要用到線性規劃或啟發式搜尋。

佈線問題,在避免短路和寄生效應的前提下連線所有門,是圖論中的斯坦納樹問題。

“這些都是組合爆炸問題。”夏先生說,“沒有多項式時間的最優解演算法。我們必須尋找啟發式方法,在合理時間內得到可接受的解。”

北大的程教授發言:“邏輯化簡,我們可以借鑑演算法,但需要改進以處理多輸出函式。佈局問題,或許可以借鑑力導向佈局的思想——把邏輯閘看作帶電粒子,連線看作彈簧,透過模擬物理系統的平衡來尋找較優佈局。”

清華的徐教授補充:“佈線問題,可以轉化為網路流問題。把佈線區域網格化,每個網格邊有容量限制,源點和匯點是需要連線的引腳,求最小代價的最大流。”

“但還要考慮時序。”高先生插話,“連線長度會影響訊號延遲。我們的佈線演算法不僅要保證連通性,還要滿足時序約束,關鍵路徑的延遲不能超過時鐘週期的70%。”

“這又變成一個帶約束的最佳化問題。”陳教授再次輕聲說道,“我們可以建立數學模型:目標函式是最小化匯流排長,約束條件包括連通性、無短路、佈線層容量、時序要求等。然後設計分支定界或割平面演算法來求解。”

這時,徐教授點名呂辰:“我聽說,呂辰同志在哈工大調研時,針對DJS-2計算機,設計了用二維打孔卡片作為計算機輸入介質。”

他從公文包裡翻出一張卡片的草圖:“接到康教授的電話後,我這些天一直在想,這種二維編碼的思想,能不能用在晶片設計上?我們把晶片劃分成網格,每個網格可以放置一個邏輯閘或一段連線。然後用類似的方法編碼,不是用孔,而是用金屬層、多晶矽層、擴散層的圖案組合。”

夏先生眼睛一亮:“你是說,把晶片設計問題轉化為二維圖案的編碼和最佳化問題?”

“對!”徐教授走到黑板前,快速畫出一個網格示意圖,“我們可以把晶片看作一個二維平面,劃分成N×M的網格。每個網格的狀態可以用幾位二進位制編碼表示:比如001表示放置一個與非門,010表示放置一個或非門,100表示放置一個觸發器......,連線也用類似的編碼,表示水平金屬線、垂直金屬線、通孔等。”

高先生激動地站起來:“這個思路好!把複雜的幾何佈局問題,轉化為離散的編碼最佳化問題。數學上更容易處理!”

夏先生點頭:“這個思路完全沒問題,而且我建議分層設計。不同的工藝層,擴散層、多晶矽層、金屬層,可以看作不同的二維平面。這些平面上的圖案需要滿足設計規則:比如最小間距、最小寬度、通孔對齊等。這些規則可以轉化為編碼的約束條件。”

陳先生迅速在稿紙上推演:“如果每個網格用k位二進位制編碼,那麼整個晶片的狀態就是一個N×M×k的三維二進位制矩陣。設計規則轉化為對這個矩陣的約束條件。最佳化目標是最小化面積、延遲、功耗等。這本質上是一個大規模組合最佳化問題......”

夏先生點名呂辰:“小呂,這個二維卡是你第一個提出來的,你來說說看。”

呂辰起身致謝道:“各位老師,其實關於這個二維卡,我覺得最大的借鑑思路是模組化。”

呂辰詳細描述了在哈工大用硬紙卡打孔矩陣實現快速輸入的過程,以及那張“迭代函式卡片”如何呼叫“餘弦函式卡”完成複雜計算。

“妙啊!”程教授拍案叫絕,“這不只是輸入方式的創新,更是一種‘可組合計算’的思想!一張卡片代表一個函式或一個資料集,多張卡片組合就能完成複雜任務。這種思想如果用在晶片設計上......”

“模組化設計!”高先生也讚歎道,“我們可以把常用的功能模組,比如加法器、乘法器、暫存器堆設計成標準的單元。設計晶片時,就像拼圖一樣組合這些單元。每個單元的內部版圖是預先設計好的、經過驗證的,我們只需要處理卡片之間的連線問題。”

夏先生點頭:“小呂同志這個思路有價值!它不僅僅是一種設計方法,更是一種設計哲學,把複雜問題分解、標準化、再組合。”

“我建議,”夏先生說,“我們立即把這個思路納入設計研究。第一階段,先定義一套標準的‘邏輯閘單元’庫;第二階段,開發能自動組合這些單元的佈局演算法;第三階段,擴充套件到更復雜的功能模組。”

這個提議獲得一致透過。

隨後,決定成立“積體電路設計自動化研究小組”,由數學系、計算所和紅星所共同組成。

第一階段目標就是基於二維網格編碼和標準單元庫的思想,開發能處理百電晶體級佈局佈線的演算法原型。

到了第四個議題,高先生走到右邊的黑板前。

他在黑板上畫出兩個對比表格,複雜指令集(CISC)和簡化指令集,細數了國際上先進研究優缺點。

“我們該走哪條路?”高先生問,“是追隨西方的主流,還是探索簡化指令集這條新路?”

會議室裡再次陷入激烈辯論。

支援CISC的一方認為,科學計算程式需要複雜的浮點運算、向量操作,CISC指令集能提供更直接的支援;而且現有的編譯器、程式設計經驗都基於CISC。

支援簡化指令集的一方反駁,複雜指令在編譯器中很少被直接使用,編譯器更傾向於用簡單指令的組合;簡化指令集的規整性讓流水線設計變得簡單,能極大提高主頻;而且簡化指令集對編譯器的最佳化更友好。

程教授再次展示那份算題統計,“我們分析了104計算機上執行的科學計算程式,發現80%的時間都在執行20%的指令,主要是取數、存數、加法和乘法。”

呂辰提出了一個“常用功能固化”的思路,說道:“高先生,如果統計是對的,80%時間執行20%的指令,那我們為甚麼不最佳化這20%的指令,讓它們極快,其餘指令用軟體子程式實現?常用函式做成專用模組,不常用的臨時組合。”

高先生眼睛一亮,他興奮地在黑板上寫下一系列原則。

指令長度固定(如16位或32位),格式規整;只有載入/儲存指令可以訪問記憶體,運算指令只操作暫存器;硬連線控制,不用微碼;注重流水線設計,目標是一條指令一個週期。

“如果我們走這條路,我們可能和美國同行站在同一起跑線上。”高先生說,“甚至,因為我們的包袱更小,可能走得更快。”

辯論持續了一個小時。

最終,會議達成共識,“星河計劃”首款晶片將採用“簡約指令集”理念,設計一套名為“星河-1”的指令集架構。

由高先生牽頭,數學組和電路組共同參與,三個月內完成指令集手冊初稿。

很快就到了第五個議題,如何容錯。

清華數學系的何教授主持,他是機率論與數理統計專家。

“同志們,當整合度提高,單個電晶體的失效率即使極低,整體晶片的失效機率也會累積升高。”

何教授在黑板上寫下一個公式:P_system = 1 - (1 - p)^N

其中p是單個電晶體的失效率,N是電晶體總數。

“當N達到一萬、十萬、百萬時,即使p很小,P_system也會變得不可接受。”何教授說,“我們必須用數學方法保證可靠性。”

他介紹了三個概念,冗餘設計、糾錯碼、自測試,並介紹了這些概念方法。

“但這些方法都有代價。”何教授說,“冗餘設計增加面積和功耗;糾錯碼增加儲存開銷和延遲;自測試需要額外的測試電路。我們需要在可靠性和成本之間尋找平衡。”

“這又是一個最佳化問題。”陳教授第三次輕聲說道,“我們可以建立一個多目標最佳化模型,在面積、功耗、成本約束下,最大化晶片的可靠度。決策變數包括冗餘度、糾錯碼方案、測試電路比例等。”

高先生又提到“模組化”思想:“何教授,我們能不能把容錯也做成模組化的?設計一種‘帶自檢的標準單元’。每個邏輯閘卡片都內建簡單的自檢電路。當這些卡片組合成晶片時,自檢電路也自動連線成一個整體的測試網路。這樣測試成本就分攤了。”

“好思路!”何教授點頭,“而且可以根據模組的關鍵性,決定自檢的粒度。關鍵模組,比如控制單元,用細粒度、高頻次的自檢;非關鍵模組用粗粒度、低頻次的自檢。這又是一個最佳化問題......”

“這需要體系結構專家、數學家、可靠性工程師的緊密合作。”高先生總結道。

會議進行到半夜,窗外已經全黑。

劉星海教授走到黑板前,他拿起粉筆,在那些物理公式、布林代數、指令集表格之間畫了一個大圈。

“今天的會議,讓我看到了‘星河計劃’最寶貴的財富——”他的聲音不高,但異常清晰,“我們在從原理層思考問題。”

他轉過身,面對所有人:“我們不是盲目模仿,而是在問:數學的本質是甚麼?物理的邊界在哪裡?計算的規律是甚麼?”

會議室裡安靜下來,只有暖氣片的輕微嗡鳴。

“我宣佈三項決定。”劉教授說,“第一,理論組升格為‘前沿架構與基礎理論研究室’,常態化參與各工程組的技術評審。從今天起,任何重大的技術決策,都必須有理論組的評估意見。”

“第二,立即啟動‘星河-1指令集手冊’編寫,作為所有硬體和軟體設計的憲法。高同志牽頭,數學組和電路組共同參與。”

“第三,積體電路設計自動化攻關組正式成立,由數學系牽頭,計算所和紅星所參與。目標是一年內拿出網格編碼和標準單元庫的原型工具,能處理千電晶體級設計。”

他停頓片刻,目光掃過在場的每一張面孔。

“同志們,我們今天在這裡討論的,不只是幾個技術問題。我們是在定義中國電子工業的思維正規化。今天這裡敲定的每一個公式、每一條指令、每一個演算法,都將成為未來數十年中國計算機產業的基因。”

他看著在座的所有人:“幾年前,我們造出第一臺電子管計算機時,全世界都在看。後來,我們造出電晶體計算機時,有人說我們永遠追不上。今天,我們要造積體電路計算機!”

劉教授眼睛裡閃爍著光芒:“有人會說,我們太落後,沒基礎。但我要說,積體電路是一個嶄新的領域,它的理論大廈遠未封頂,它的工程路徑還有許多岔路。西方走在前面,但我們看得見他們的背影。更重要的是,我們有機會從第一性原理出發,構建一套更簡潔、更高效、更符合未來計算本質的體系。 我們今天在這裡做的,不是補課,而是參與定義這門技術的青春期。”

會議室裡響起掌聲,起初零散,然後變得熱烈。

散會時,已經是晚上10點半。

學者們陸續離開,還在激烈討論著剛才的議題。

有人約好明天繼續,有人已經掏出筆記本開始推公式。

夏先生特意走到呂辰面前,握著他的手:“小呂同志,你那個二維卡片思路,真的很有啟發性。有時間,要多來計算所走走,我們詳細聊聊怎麼把它應用到設計工具裡。”

“好的,夏先生。”呂辰鄭重答應。

高先生也過來拍拍他的肩膀:“你那種‘模組化’的思路,和RISC理念很契合。”

呂辰一一應下。

走出計算所大樓,寒風撲面而來。

夜空清澈,繁星點點。

原理之光,已經點亮。

A−
A+
護眼
目錄