鄭昊走到了會議室前方的小黑板旁,拿起一支粉筆。他沒有急著去講那份厚厚的報告,而是在黑板上畫了一個簡單的方框。
“各位領導,各位專家,在討論如何‘制造’之前,我們首先要明確,我們要制造什么。”他轉過身,目光清澈而坦誠,“這就是我們設計的cpu,代號華芯一號。”
他沒有說任何豪言壯語,只是用最平實的話語,開始闡述他的設計理念。
“目前,國際主流的cpu設計思路,是復雜指令集,也就是cisc。它的特點是,用一條復雜的硬件指令,去完成一個復雜的軟件功能。這樣做的好處是,編程相對簡單。但缺點是,硬件設計極其復雜,譯碼困難,執行效率在某些情況下并不高,而且,非常非常難以實現。”
他話鋒一轉,在方框旁邊,畫了幾個更小的、連接在一起的方塊。
“我們的華芯一號,反其道而行之。我們大膽地舍棄了絕大部分復雜指令,只保留了最核心、最基礎的幾十條指令,比如加載、存儲、加法等等。我們將這種思路,稱為精簡指令集。”
“精簡指令集?”一個來自滬上某計算機研究所的老專家皺起了眉頭,提出了質疑:“小鄭同志,這不就是開倒車嗎?指令越少,意味著要實現一個功能,需要寫的軟件代碼就越多、越復雜,這對我們的軟件開發人員,是巨大的負擔啊!我們的軟件水平,本來就落后于人!”
這個問題非常尖銳,立刻引起了在場不少專家的共鳴。
鄭昊似乎早有預料,他微笑著點了點頭:“這位專家提得非常好。是的,表面上看,這確實給軟件增加了負擔。但是,請大家想一個問題,我們造計算機,是為了讓程序員輕松,還是為了讓機器本身運行得更快、更高效、更容易被我們制造出來?”
他沒有等大家回答,便繼續說道:“精簡指令集,帶來的好處是顛覆性的。第一,硬件設計難度幾何級下降!因為指令簡單,譯碼電路就簡單,邏輯門數量就少,布線就容易。第二,執行效率極高!每一條指令都可以在一個時鐘周期內完成,大大提升了cpu的運算速度。第三,也是最重要的一點——它給了我們一個可以實現的入口!”
他用粉筆重重地點了點那個由小方塊組成的結構:“我們可以通過軟件的組合,搭建出任何復雜的功能!是的,這會累著我們的第一代程序員,但它能讓我們的硬件,從零,走到一!這就像我們打算蓋一座九層高塔,我們可以選擇一開始就去設計那華麗的頂層,然后發現連地基都打不了;也可以選擇先夯實地基,搭好第一層的框架。我們選擇后者!”
他的比喻通俗易懂,將在場許多并非專攻cpu設計的專家都說得連連點頭。那種化繁為簡、以退為進的哲學思想,深深地契合了他們那一代人解決問題的智慧。
“紙上談兵!”王成棟冷哼一聲,再次發難,“說得天花亂墜!就算你的設計思路有那么點道理,我們回到最根本的問題——制造!沒有光刻機,一切都是零!你們的五年規劃里,第一步是造一臺‘接觸式光刻掩模對準器’。我請問,你們憑什么造?精度如何達到要求,你們拿什么保證?光源的均勻性怎么解決?工件臺的精密移動誰來做?這些都不是靠嘴皮子能解決的!”