周煜提出的問(wèn)題,像一記重錘,敲在了所有人的心頭。
用分立元件堆砌出來(lái)的“cpu”,在低速運(yùn)行時(shí)尚能勉強(qiáng)工作,一旦試圖提升頻率,各種不確定性就像幽靈一樣冒出來(lái),讓整個(gè)系統(tǒng)變得不可控。這就像一個(gè)蹣跚學(xué)步的嬰兒,你非要他去跑百米沖刺,結(jié)果只能是摔得一塌糊涂。
“問(wèn)題出在信號(hào)的同步和穩(wěn)定性上。”鄭昊指著那塊“土制cpu”板,沉聲說(shuō)道,“每一個(gè)晶體管都有自己的開(kāi)關(guān)延遲,每一個(gè)焊點(diǎn)都有微小的電阻和電容效應(yīng)。當(dāng)這些成千上萬(wàn)個(gè)微小的延遲和效應(yīng)疊加起來(lái),就會(huì)導(dǎo)致時(shí)鐘信號(hào)和數(shù)據(jù)信號(hào)之間產(chǎn)生偏差,從而引發(fā)邏輯錯(cuò)誤。”
“我們嘗試過(guò)縮短導(dǎo)線長(zhǎng)度,優(yōu)化布局,甚至用上了當(dāng)時(shí)能找到最好的屏蔽措施,但效果甚微。”孫宇補(bǔ)充道,他的臉上寫(xiě)滿了疲憊和無(wú)奈。
實(shí)驗(yàn)室里一片寂靜。大家你看看我,我看看你,眼神中都帶著一絲迷茫。這條“土法煉鋼”的路,似乎走到了盡頭。
“難道,我們真的要放棄總線架構(gòu),轉(zhuǎn)回單板機(jī)嗎?”一個(gè)小張喃喃自語(yǔ),聲音里帶著不甘。
鄭昊沒(méi)有回答,他走到黑板前,陷入了沉思。他知道,放棄總線架構(gòu),意味著他們將失去未來(lái)拓展的潛力,也意味著之前所有的努力都將白費(fèi)。
他腦海中飛速閃過(guò)前世關(guān)于集成電路設(shè)計(jì)、時(shí)序分析、以及各種容錯(cuò)機(jī)制的知識(shí)。這些知識(shí),在現(xiàn)在這個(gè)連像樣的示波器都稀缺的年代,顯得如此遙遠(yuǎn)和不切實(shí)際。
“我們不能放棄。”鄭昊突然開(kāi)口,聲音不大,但卻像一道閃電,劃破了實(shí)驗(yàn)室里的沉悶。
所有人都看向他。
“我們之前的思路,是試圖用分立元件去‘模擬’一個(gè)完整的集成電路cpu。”鄭昊在黑板上畫(huà)了一個(gè)大大的方框,里面寫(xiě)著“cpu”,“但這條路,在當(dāng)前條件下,是行不通的。”
他擦掉了那個(gè)方框,重新畫(huà)了幾個(gè)小方框,并用線連接起來(lái)。
“既然我們?cè)觳怀鲆粋€(gè)完整的‘大腦’,那我們就先造出它的‘神經(jīng)元’和‘神經(jīng)節(jié)’!”鄭昊的眼神再次變得明亮起來(lái),他想到了一個(gè)大膽而又符合實(shí)際的方案。
“我們不強(qiáng)求用分立元件去實(shí)現(xiàn)整個(gè)cpu的復(fù)雜邏輯,那太過(guò)龐大和脆弱。我們把cpu最核心的功能,再次進(jìn)行拆解!”
他指著黑板上的小方框:“我們可以用分立元件,或者我們能搞到的最簡(jiǎn)單的ttl邏輯門(mén)芯片,去實(shí)現(xiàn)最基本的運(yùn)算單元,比如一個(gè)8位的加法器,一個(gè)簡(jiǎn)單的寄存器組,一個(gè)程序計(jì)數(shù)器”
“這些單元,它們的規(guī)模相對(duì)較小,邏輯結(jié)構(gòu)相對(duì)簡(jiǎn)單,用分立元件搭建起來(lái),它的穩(wěn)定性更容易控制。”
“然后呢?”周煜的眼睛亮了起來(lái),他似乎捕捉到了鄭昊的思路。
“然后,我們不把它們?nèi)考稍谝粔K板子上,而是將它們做成一個(gè)個(gè)獨(dú)立的、可插拔的‘功能模塊’!”鄭昊在黑板上畫(huà)出幾個(gè)獨(dú)立的模塊,每個(gè)模塊都帶有一排插針。
“比如,一個(gè)‘加法器模塊’,一個(gè)‘寄存器模塊’,一個(gè)‘指令譯碼模塊’,一個(gè)‘程序計(jì)數(shù)器模塊’。這些模塊之間,通過(guò)我們?cè)O(shè)計(jì)好的‘內(nèi)部總線’進(jìn)行連接!”
他看向?qū)O宇和錢(qián)浩:“孫宇同志,錢(qián)浩同志,你們要負(fù)責(zé)設(shè)計(jì)這些模塊的物理接口和電路布局,確保它們之間的信號(hào)傳輸穩(wěn)定可靠。這些模塊的規(guī)模小了,信號(hào)傳輸距離短了,串?dāng)_和延遲的問(wèn)題就會(huì)大大減輕!”
他又看向周煜的團(tuán)隊(duì):“周煜同志,你們要負(fù)責(zé)設(shè)計(jì)這些模塊之間的‘內(nèi)部總線協(xié)議’。它比整個(gè)系統(tǒng)總線要簡(jiǎn)單得多,只負(fù)責(zé)模塊內(nèi)部的數(shù)據(jù)傳輸和控制信號(hào)。同時(shí),你們還要負(fù)責(zé)設(shè)計(jì)一個(gè)‘微程序控制器’,它不需要是完整的cpu,只需要通過(guò)一系列簡(jiǎn)單的控制信號(hào),去協(xié)調(diào)這些功能模塊的工作,讓它們按照指令的順序,一步一步地完成運(yùn)算!”