中文区中文字幕免费看,麻豆av天堂一二三区视频,无码人妻av一区二区三区波多野,成人亚洲性情网站www在线观看,无遮挡啪啪摇乳动态图gif

 
 
關(guān)注手機(jī)移動(dòng)微站
  
轉(zhuǎn)繁體
中國(guó)芯片專家胡偉武搬出《毛選》搞研發(fā)
   日期 2020-10-20 

作者:尹潔 周盛楠2020年10月20日來(lái)源:環(huán)球人物

原標(biāo)題:華為慘遭“斷供”?中國(guó)芯片專家有絕招,搬出《毛選》搞研發(fā)

談到國(guó)產(chǎn)芯片如何擺脫被卡脖子的狀態(tài),胡偉武說(shuō):“在實(shí)力懸殊的時(shí)候,我們應(yīng)該采取‘農(nóng)村包圍城市’路線!

中科院計(jì)算所研究員、龍芯中科董事長(zhǎng)胡偉武寫(xiě)過(guò)一篇文章《我們的CPU》,講述了中國(guó)科學(xué)院計(jì)算所研發(fā)“龍芯1號(hào)”的過(guò)程。這是我國(guó)首枚擁有自主知識(shí)產(chǎn)權(quán)的通用高性能微處理芯片,胡偉武當(dāng)時(shí)是研制組組長(zhǎng)。

這篇寫(xiě)于2001年8月的文章,最近又開(kāi)始在國(guó)內(nèi)網(wǎng)絡(luò)上流傳。在美國(guó)政府對(duì)中國(guó)企業(yè)華為圍追堵截,甚至下發(fā)芯片“斷供令”的當(dāng)下,大眾回憶和追溯著中國(guó)人在過(guò)去幾十年里面臨的每一個(gè)艱難時(shí)刻、每一次自力更生、每一段奮斗歷程,并期待所有埋頭苦干的人能為今天的困境開(kāi)辟新的道路和希望。

這也是胡偉武20多年來(lái)致力的事業(yè),讓他從一名博士畢業(yè)生成長(zhǎng)為國(guó)內(nèi)芯片行業(yè)的代表性人物,在時(shí)不我待的歲月中青絲變白發(fā)。

封面 | 2020年10月10日,胡偉武在北京接受記者采訪。(本刊記者 陳昊/攝)

1

“中國(guó)人要有自己的CPU”

1996年,胡偉武從中國(guó)科學(xué)院博士畢業(yè),成為中科院計(jì)算技術(shù)研究所(下稱計(jì)算所)的助理研究員。4年后,已晉升為副研究員的他回到自己的本科母校中國(guó)科技大學(xué)招生。在曾經(jīng)做過(guò)課題的實(shí)驗(yàn)室里,胡偉武看到了10年前自己和同學(xué)用手工焊接的芯片電路。

“我原來(lái)做的機(jī)器還靜靜地躺在那里。面對(duì)與當(dāng)年一樣凌亂的實(shí)驗(yàn)室和滿桌觸手可及的芯片、電容、電阻、電烙鐵,我有一種重操舊業(yè)的沖動(dòng),因?yàn)?0年前那些沒(méi)日沒(méi)夜地與邏輯門(mén)、觸發(fā)器、譯碼器、選擇器玩命的日子有一種深深的誘惑,至今我還可以如數(shù)家珍地說(shuō)出好多當(dāng)時(shí)用過(guò)的集成電路芯片的引腳定義!焙鷤ノ湓凇段覀兊腃PU》中這樣寫(xiě)道。

激情澎湃的胡偉武給自己的師兄、計(jì)算所系統(tǒng)結(jié)構(gòu)室主任唐志敏打了一個(gè)電話,他當(dāng)時(shí)正在進(jìn)行計(jì)算所一個(gè)CPU設(shè)計(jì)項(xiàng)目的籌備工作,“我開(kāi)玩笑說(shuō),一兩年之內(nèi)不把通用操作系統(tǒng)啟動(dòng)起來(lái),提頭來(lái)見(jiàn)”。

2001年,胡偉武正式出任龍芯CPU首席科學(xué)家。在計(jì)算所前輩們的指引下,他帶領(lǐng)幾十名年輕骨干日夜奮戰(zhàn)。那段時(shí)間,他形容自己“比周扒皮還狠”,課題組的成員們也很玩命。有好幾次,胡偉武在早上六七點(diǎn)鐘打開(kāi)實(shí)驗(yàn)室的門(mén),發(fā)現(xiàn)有些人手摸著鼠標(biāo)靠在椅子上睡著了。

“當(dāng)時(shí)就是滿腔熱情,覺(jué)得中國(guó)這么大一個(gè)國(guó)家,一定要有自己的CPU!胡偉武對(duì)《環(huán)球人物》記者說(shuō)。

有一次,成員們?cè)谏钜沟却?jì)算機(jī)的運(yùn)行結(jié)果時(shí)聊到了生死!按蠹叶加幸环N觀點(diǎn),我們現(xiàn)在落后這么多,別人不比我們笨,如果大家都每周5天、每天8小時(shí)上班,恐怕很難趕上人家,唯有像當(dāng)年搞‘兩彈一星’一樣拼命,甚至得累死一批人才能趕上。唯有這樣,我們才能不受欺負(fù),我們的子孫才有希望重新做到‘犯我大漢者,雖遠(yuǎn)必誅之’!

2002年9月28日,中國(guó)第一枚通用CPU“龍芯1號(hào)”成功發(fā)布,終結(jié)了中國(guó)人只能用外國(guó)人的CPU造計(jì)算機(jī)的歷史。

在技術(shù)領(lǐng)域之外,胡偉武還有一個(gè)愛(ài)好——鉆研毛澤東著作,用他自己的話說(shuō),要“用毛澤東思想武裝龍芯課題組”“用毛澤東思想搞龍芯研發(fā)”。

在他擔(dān)任董事長(zhǎng)的龍芯中科公司大樓里,長(zhǎng)長(zhǎng)的走廊兩側(cè),墻壁上高掛著毛澤東語(yǔ)錄,每一條都印在一塊牌子上,配以火紅的底色,一眼望去就像兩排士兵在站崗。

工作人員告訴記者,大樓共有五層,每一層的走廊都是這樣布置的,而且“每一條語(yǔ)錄都是胡老師選的”。

2

“徹底不被卡脖子還需兩個(gè)五年”

《環(huán)球人物》:您怎么看美國(guó)政府對(duì)華為的限制行為?

胡偉武:這提醒我們,技術(shù)核心要素要自己掌握,形成循環(huán),不能依賴別人,過(guò)去的很多幻想都要拋棄。

還有一個(gè)警示是,從集成電路來(lái)說(shuō),我們過(guò)去一直跟著國(guó)外發(fā)展,這個(gè)方向要改變,要在已有的工業(yè)水平下強(qiáng)調(diào)自主性。先把短板補(bǔ)上,做出自己的生態(tài)體系,暫時(shí)不要太追求技術(shù)的先進(jìn)性。尤其是工業(yè)技術(shù),不要太追求5納米、3納米,先把14納米、28納米這些我們已掌握技術(shù)的自主化問(wèn)題解決好,形成閉環(huán)、形成迭代之后再前進(jìn),會(huì)比原來(lái)快得多。

如果沒(méi)有自己的生態(tài)體系,等于是在別人的地上種莊稼,現(xiàn)在我們要自己弄塊地來(lái)種。

《環(huán)球人物》:您估計(jì)國(guó)產(chǎn)芯片需要多長(zhǎng)時(shí)間能擺脫被卡脖子的狀態(tài)?

胡偉武:芯片研發(fā)就像蓋樓一樣,人家已經(jīng)蓋到三層了,你說(shuō)那我們一樓、二樓都不蓋,直接蓋三層吧,不可能的。我們和國(guó)外的差距就是基礎(chǔ)很薄弱。有一段時(shí)間,我們覺(jué)得造不如買(mǎi),所以CPU不做了、操作系統(tǒng)不做了,都基于國(guó)外的產(chǎn)品做整機(jī)、做應(yīng)用。做得是都不錯(cuò),但問(wèn)題就是會(huì)被卡脖子。

在實(shí)力懸殊的時(shí)候,我們應(yīng)該采取“農(nóng)村包圍城市”路線。國(guó)際巨頭就像中心城市,我們只能在山里打游擊,但也能活。等發(fā)展好一點(diǎn)了,打下幾個(gè)縣城,更好一點(diǎn)了,打下幾個(gè)省會(huì),最后才是三大戰(zhàn)役。根據(jù)我自己的判斷,被卡脖子的問(wèn)題三五年內(nèi)會(huì)有初步緩解,但要得到根本性解決,還需要兩個(gè)五年的努力。

《環(huán)球人物》:您曾說(shuō)國(guó)內(nèi)高校的計(jì)算機(jī)專業(yè)都在教學(xué)生怎么用計(jì)算機(jī),而沒(méi)有教學(xué)生怎么造計(jì)算機(jī),這種情況現(xiàn)在有好轉(zhuǎn)嗎?

胡偉武:有初步好轉(zhuǎn)。我在中科大上學(xué)的時(shí)候,教我計(jì)算機(jī)的老師是造過(guò)計(jì)算機(jī)的,還有老師造過(guò)打印機(jī)、運(yùn)算器、流水線。而現(xiàn)在很多國(guó)內(nèi)計(jì)算機(jī)專業(yè)的老師,已經(jīng)沒(méi)有這個(gè)能力了。近年來(lái),我們一直努力推動(dòng)這方面的改變,而且我發(fā)現(xiàn)即使是計(jì)算機(jī)本科生,能力也很強(qiáng),可以在老師指導(dǎo)下做出水平比較高的CPU,而過(guò)去他們只會(huì)編程。

另外,我發(fā)現(xiàn)國(guó)內(nèi)中小學(xué)的信息化課程基本就是微軟培訓(xùn)班,這對(duì)我們建設(shè)自主生態(tài)體系是不利的,也需要改革。

3

用《毛選》管理團(tuán)隊(duì)

《環(huán)球人物》:您是從什么時(shí)候開(kāi)始看《毛選》的?

胡偉武:是我在中科院讀研究生時(shí)開(kāi)始的,越研究越覺(jué)得它有用。三四年前,我們團(tuán)隊(duì)的薪酬只是國(guó)際同行的幾分之一,甚至是級(jí)數(shù)的差距。能堅(jiān)持下來(lái)的關(guān)鍵,就是解決了“為誰(shuí)做龍芯”的問(wèn)題。我們?yōu)槭裁匆鲎灾黧w系?如果是為了上市賺錢(qián)、發(fā)財(cái),就不用那么辛苦搞自主研發(fā)了,買(mǎi)國(guó)外技術(shù)做個(gè)芯片,拿去賣(mài)就行。

我們是為人民做龍芯。別人不支持,我們也要堅(jiān)持做自己的生態(tài)體系。企業(yè)要設(shè)立一個(gè)高于賺錢(qián)的目標(biāo)才能長(zhǎng)遠(yuǎn)發(fā)展。所以我經(jīng)常說(shuō),發(fā)軍餉的舊軍隊(duì),打不過(guò)不發(fā)軍餉的紅軍、八路軍、解放軍。

《環(huán)球人物》:對(duì)于國(guó)產(chǎn)芯片的發(fā)展速度、技術(shù)水平,網(wǎng)上有一些爭(zhēng)論,也有不太善意的評(píng)價(jià),您是怎么看的呢?

胡偉武:這個(gè)沒(méi)關(guān)系,有時(shí)候反而說(shuō)明我們的選擇是對(duì)的。有些人不了解情況,覺(jué)得只要國(guó)家投入,很快就能趕上國(guó)外。我說(shuō)這件事沒(méi)那么快。打個(gè)比方,一家外國(guó)巨頭研發(fā)芯片50多年了,我們?nèi)绻麖牧闫鸩剑豢赡?年就達(dá)到他們的水平,但經(jīng)過(guò)努力,當(dāng)他們干到60年的時(shí)候,我們達(dá)到他們2/3的水平是有可能的。

《環(huán)球人物》:現(xiàn)在國(guó)際環(huán)境變化很快,如果未來(lái)外國(guó)一些政策發(fā)生變化,中國(guó)科技企業(yè)面對(duì)的壓力變小了,我們?cè)撊绾螒?yīng)對(duì)呢?

胡偉武:外國(guó)人是怎么對(duì)我們的?當(dāng)你沒(méi)有技術(shù)的時(shí)候,他們對(duì)你封鎖技術(shù);當(dāng)你努力了10年,開(kāi)始在市場(chǎng)上對(duì)他們形成威脅了,他們就來(lái)找你合資了。

“咱倆合伙辦個(gè)企業(yè),你控股行不行?”“我給你技術(shù)授權(quán),你直接用行不行?”2010年之前,很多國(guó)外大企業(yè)找過(guò)我,核心思想就是:我知道你龍芯做得還不錯(cuò),但沒(méi)有我的好,不如你直接用我的算了,源代碼都可以給你一部分。這就是個(gè)誘惑。

《環(huán)球人物》:您是怎么抵擋住的?

胡偉武就是想清楚“誰(shuí)拿槍桿子”的問(wèn)題。誘惑背后都是4個(gè)字——繳槍不殺。你用了他的東西,自己的技術(shù)能力就會(huì)受到損傷,就沒(méi)有自主研發(fā)的需求了,開(kāi)始不斷地跟著他發(fā)展。他每升級(jí)一代,就給你個(gè)好一點(diǎn)的,但永遠(yuǎn)不會(huì)把最好的給你。

《環(huán)球人物》:您對(duì)年輕人有什么寄語(yǔ)嗎?

胡偉武:就是三句話:耐得住寂寞,擋得住誘惑,受得了委屈。我們搞科研的,尤其是做一些需要長(zhǎng)期堅(jiān)持的科研項(xiàng)目,必須經(jīng)得起這三句話的考驗(yàn)。前兩句不容易做到,但第三句更難。

我們的CPU

胡偉武

注:本文寫(xiě)于2001年8月,中國(guó)自主研發(fā)的龍芯1號(hào)FPGA成功地運(yùn)行了LINUX操作系統(tǒng)。“龍芯”的誕生有其時(shí)代特殊性和復(fù)雜的背景,其背負(fù)的歷史使命也是前所未有的。本文主要講述的就是這段令人懷念的奮斗歷史。

我參與計(jì)算所的CPU開(kāi)發(fā)項(xiàng)目,源于2000年10月一個(gè)偶然的機(jī)緣。

10月中旬,所領(lǐng)導(dǎo)派我到我的母校中國(guó)科技大學(xué)去進(jìn)行招生宣傳。這是我1991年畢業(yè)后第一次回到母校。我回到了我原來(lái)工作過(guò)的實(shí)驗(yàn)室,十年前在那里,我曾經(jīng)和另外一名同學(xué)一起做過(guò)一個(gè)與8086指令級(jí)兼容的處理器作為本科畢業(yè)設(shè)計(jì)。這是一個(gè)用400多個(gè)74LS系列的芯片搭起來(lái)的電路,能夠運(yùn)行8086指令系統(tǒng)中除了十進(jìn)制和除法指令以外的所有指令。由于沒(méi)有制版的費(fèi)用,所有的連線都是手工焊的。這次回去,我看到了我原來(lái)做的機(jī)器還靜靜地躺在那里。面對(duì)與十年前一樣凌亂的實(shí)驗(yàn)室和滿桌觸手可及的芯片、電容、電阻、電烙鐵,我有一種重操舊業(yè)的沖動(dòng),因?yàn)槭昵澳切](méi)日沒(méi)夜的與邏輯門(mén)、觸發(fā)器、譯碼器、選擇器玩命的日子有一種深深的誘惑,至今我還可以如數(shù)家珍般地說(shuō)出好多當(dāng)時(shí)我用過(guò)的集成電路芯片的引腳定義。我想到了我們所正在籌備的CPU設(shè)計(jì)項(xiàng)目,于是我給我的師兄唐志敏打電話,他是計(jì)算所系統(tǒng)結(jié)構(gòu)室的室主任,目前正負(fù)責(zé)計(jì)算所CPU設(shè)計(jì)項(xiàng)目的準(zhǔn)備工作。我開(kāi)玩笑說(shuō)一兩年之內(nèi)不把通用操作系統(tǒng)boot(啟動(dòng))起來(lái),提頭來(lái)見(jiàn)。于是回計(jì)算所后,我就開(kāi)始考慮CPU的指令系統(tǒng)和流水線等問(wèn)題。

2001年8月19日,前蘇聯(lián)解體的十周年紀(jì)念日,我們?cè)O(shè)計(jì)的Godson CPU成功地把LINUX操作系統(tǒng)boot起來(lái)。當(dāng)“l(fā)ogin:”的提示符出現(xiàn)在屏幕上時(shí),計(jì)算所北樓309房間一片歡呼。到9月中旬,一個(gè)用我們自己設(shè)計(jì)的CPU的完整計(jì)算機(jī)系統(tǒng)已經(jīng)浮出水面,該系統(tǒng)運(yùn)行完整的LINUX操作系統(tǒng),內(nèi)核版本為2.4,可以做其他運(yùn)行LINUX操作系統(tǒng)的計(jì)算機(jī)所支持的一切事情,包括運(yùn)行g(shù)cc編譯器,X-Window視窗系統(tǒng),WEB服務(wù)器,SPEC CPU2000基準(zhǔn)程序等。我們最引以為豪的還是該CPU的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)?梢哉f(shuō)目前世界上最先進(jìn)CPU的系統(tǒng)結(jié)構(gòu)技術(shù),該有的Godson都有,不少地方還有創(chuàng)新。雖然目前我們只是基于FPGA的設(shè)計(jì),主頻也不高,但當(dāng)我們的CPU運(yùn)行到12.5MHz時(shí),其性能已經(jīng)不比50MHz主頻的Intel486差(當(dāng)然,我們的主板比486主板要好),確切地說(shuō),浮點(diǎn)性能比486強(qiáng)一點(diǎn),定點(diǎn)性能比486差。值得一提的是,當(dāng)我們用一個(gè)叫“偏執(zhí)狂(Paranoia)”的測(cè)試程序測(cè)試CPU的浮點(diǎn)部件是否符合IEEE754標(biāo)準(zhǔn)時(shí),奔IV處理器測(cè)出了浮點(diǎn)不嚴(yán)格符合IEEE754標(biāo)準(zhǔn)而我們的CPU完全符合標(biāo)準(zhǔn)。此外,在Godson中還專門(mén)針對(duì)網(wǎng)絡(luò)攻擊進(jìn)行了安全設(shè)計(jì),可以有效防止利用緩沖區(qū)。應(yīng)該指出的是,我們只是完成了一個(gè)CPU的邏輯設(shè)計(jì),當(dāng)時(shí)是用FPGA對(duì)這個(gè)邏輯設(shè)計(jì)進(jìn)行驗(yàn)證,只是一個(gè)階段性成果,還沒(méi)有進(jìn)行投片。用李國(guó)杰所長(zhǎng)的話說(shuō),“三分之二的工作還在后面”。如果我們對(duì)當(dāng)時(shí)的工作沾沾自喜,那是很膚淺的。但即使是這個(gè)成果的取得,也來(lái)之不易。個(gè)中滋味,酸甜苦辣俱全,很難為外人所體會(huì)。回顧我們開(kāi)發(fā)Godson處理器的過(guò)程,雖然不長(zhǎng),但既有教訓(xùn),也有經(jīng)驗(yàn),總結(jié)一下,對(duì)以后的工作是有好處的。

我們做CPU設(shè)計(jì)緣起于計(jì)算所所長(zhǎng)李國(guó)杰院士的直接推動(dòng)。李老師是我接觸過(guò)的院士中比較令人欽佩的一位,因?yàn)樗軌蛘驹谌绾伟l(fā)展整個(gè)國(guó)家的信息產(chǎn)業(yè)的角度來(lái)考慮問(wèn)題,而不是一個(gè)局部的角度,F(xiàn)在我慢慢知道,他推動(dòng)計(jì)算所做CPU設(shè)計(jì)是很不容易的。也許是由于前幾年的反復(fù)折騰給外界留下了不好的印象,使得很多人覺(jué)得計(jì)算所沒(méi)有能力做CPU,李老師最后只能把CPU設(shè)計(jì)作為計(jì)算所的一個(gè)內(nèi)部項(xiàng)目先做起來(lái)。我在計(jì)算所連讀書(shū)帶工作十來(lái)年,也是第一次體驗(yàn)不用立項(xiàng)申請(qǐng)而直接開(kāi)始做一個(gè)課題。CPU設(shè)計(jì)技術(shù)是核心技術(shù),但市場(chǎng)壁壘很高,即使現(xiàn)在已經(jīng)投片出來(lái)很好的CPU,如果沒(méi)有人用就會(huì)走入以前“鑒定會(huì)就是追悼會(huì)”的怪圈。但我相信李老師在信息產(chǎn)業(yè)界的經(jīng)驗(yàn)和影響力,所以決心做下去。

我的師兄唐志敏是系統(tǒng)結(jié)構(gòu)室的室主任,他把握著整項(xiàng)工作的大局,領(lǐng)導(dǎo)著整個(gè)CPU設(shè)計(jì)的總體規(guī)劃。他的大度與謙和能夠把一批非常能干的年輕人團(tuán)結(jié)在一起,使大家互相之間從無(wú)猜忌,F(xiàn)在,在科技界有一種奇怪的現(xiàn)象,就是一個(gè)年輕人做出一些成果之后,就喜歡獨(dú)立門(mén)戶,結(jié)果造成了科研力量分散,干不成大事的局面。大家都在沾沾自喜地干一些幾十萬(wàn)、頂多上百萬(wàn)的項(xiàng)目,形成不了很大的力量。在我們的項(xiàng)目組中,卻有一批本身也很厲害,能夠獨(dú)當(dāng)一面的年輕人緊緊地團(tuán)結(jié)在一起,同心協(xié)力干一件事情。這其中一個(gè)重要的原因在于唐志敏是一個(gè)能夠容人的領(lǐng)導(dǎo)。舉一個(gè)簡(jiǎn)單的例子,所里曾設(shè)立過(guò)一個(gè)CPU設(shè)計(jì)的項(xiàng)目,我是項(xiàng)目負(fù)責(zé)人,但包括項(xiàng)目申請(qǐng)書(shū)、每月一次的課題進(jìn)展?fàn)顩r及支出情況表、以及鑒定會(huì)材料等,我一個(gè)字也沒(méi)有寫(xiě)過(guò),全是唐志敏代勞,使我有90%以上的時(shí)間能夠用在編程和邏輯設(shè)計(jì)。這只是一件小事,但我在計(jì)算所十來(lái)年,見(jiàn)了不少下屬幫領(lǐng)導(dǎo)寫(xiě)報(bào)告的事,卻從未見(jiàn)過(guò)領(lǐng)導(dǎo)幫下屬寫(xiě)報(bào)告的。唐志敏在全局的把握和總體規(guī)劃上也有獨(dú)到的見(jiàn)解,至少是我所不能及的。關(guān)于我們做出的CPU的未來(lái)用途,我的主張是自己做高性能工作站,但做出來(lái)干什么以及如何與別人競(jìng)爭(zhēng)卻難說(shuō)。唐志敏心中卻非常有數(shù),他說(shuō)現(xiàn)在我們所的軟件室正在做電子政務(wù),以后結(jié)合在一起做,至少在安全方面是國(guó)外產(chǎn)品無(wú)法競(jìng)爭(zhēng)的。我當(dāng)時(shí)覺(jué)得這種眼光真是“高瞻遠(yuǎn)矚、高屋建瓴”。

另一位張志敏老師在我們的CPU設(shè)計(jì)中負(fù)責(zé)工程管理,他是李所長(zhǎng)請(qǐng)來(lái)的客座研究員。根據(jù)分工,在我們?cè)O(shè)計(jì)CPU的隊(duì)伍中,唐志敏是總負(fù)責(zé),我負(fù)責(zé)設(shè)計(jì),張老師負(fù)責(zé)工程管理。張老師是責(zé)任心非常強(qiáng)的人,很義氣,工程經(jīng)驗(yàn)也非常豐富。我最佩服張老師兩點(diǎn),一是他把個(gè)人利益看得很輕,他放棄了原來(lái)工資更高的工作到我們這里來(lái)做這個(gè)事情;二是他做事情很實(shí)在、很專一。我有一個(gè)觀點(diǎn),一個(gè)人一輩子只做好一件事情已經(jīng)不容易,因此比較討厭一些一會(huì)兒這邊,一會(huì)兒那邊,想兩邊都得好處的人。但張老師不是這樣的人,他做事情很實(shí)在。在我們基本完成Godson的邏輯設(shè)計(jì)后,需要一個(gè)模擬主板的環(huán)境,以便在邏輯設(shè)計(jì)上通過(guò)軟件模擬啟動(dòng)LINUX。我覺(jué)得這個(gè)事情很難,但張老師加班加點(diǎn)一兩個(gè)星期就寫(xiě)出來(lái)了。我和張老師配合得非常好,簡(jiǎn)直是最佳搭檔:他的工程經(jīng)驗(yàn)很豐富,我的理論上強(qiáng)一點(diǎn);做事情他比較穩(wěn)重,我比較激進(jìn)。在每周一上午的例會(huì)上,我布置完本周的工作后,總要慷慨激昂地動(dòng)員一番,張老師總是要擺一些困難潑潑冷水,真是一張一弛。以至于有一次他不潑冷水了,大家都不習(xí)慣。

雖然我們所籌備CPU設(shè)計(jì)由來(lái)已久(從2000年初就開(kāi)始做預(yù)研),討論了許多輪。但我們真正開(kāi)始動(dòng)手設(shè)計(jì)是2000年11月。剛開(kāi)始是唐志敏和我領(lǐng)著七、八名研究生做系統(tǒng)結(jié)構(gòu)設(shè)計(jì),主要是確定指令系統(tǒng)以及流水線結(jié)構(gòu)。在開(kāi)始設(shè)計(jì)之初,李所長(zhǎng)在全所會(huì)議上就定了“高性能、通用、一步到位”的目標(biāo)。后來(lái),唐志敏和我又確定了兼容以及采用RISC結(jié)構(gòu)這兩個(gè)具體目標(biāo)。當(dāng)時(shí)雖然IA-64結(jié)構(gòu)炒得挺熱,但我們還是決定采用RISC結(jié)構(gòu),現(xiàn)在看來(lái),這是對(duì)的。關(guān)于指令系統(tǒng),起初我建議與Alpha兼容,但唐志敏定為與MIPS兼容。說(shuō)實(shí)在的,從2000年11月到2001年4月這段時(shí)間,我對(duì)CPU這個(gè)項(xiàng)目還不夠重視,因?yàn)槲以瓉?lái)做機(jī)群及共享存儲(chǔ)系統(tǒng)也覺(jué)得挺有意思。在項(xiàng)目開(kāi)始的一段時(shí)間里,我自己還花一部分時(shí)間在做機(jī)群方面的事情,寫(xiě)了一些論文,4月底還到美國(guó)開(kāi)了一個(gè)并行處理方面的國(guó)際會(huì)議。5月初從美國(guó)回來(lái)后開(kāi)始全力投入做CPU設(shè)計(jì)。由于時(shí)間緊,在確定流水線結(jié)構(gòu)時(shí),沒(méi)有看多少論文也沒(méi)有做多少實(shí)驗(yàn),主要是憑感覺(jué)和過(guò)去的積累,遇到權(quán)衡得失確定不了的事情,就與唐志敏討論讓他定奪。不過(guò),現(xiàn)在回過(guò)頭去看,由于當(dāng)時(shí)沒(méi)有參考別人的方案,也就少一些禁錮,F(xiàn)在有了一點(diǎn)時(shí)間開(kāi)始看別人的做法,發(fā)現(xiàn)我們?cè)O(shè)計(jì)的基于操作隊(duì)列復(fù)用的動(dòng)態(tài)指令流水線還是很先進(jìn)的,有不少創(chuàng)新點(diǎn),我個(gè)人覺(jué)得比MIPS R10000的指令流水線要強(qiáng)。

我們的工作真正全面鋪開(kāi)是在2001年五一放假后。一方面,系統(tǒng)結(jié)構(gòu)已經(jīng)基本定型,用C語(yǔ)言寫(xiě)的模擬器已經(jīng)完成得差不多了,可以運(yùn)行簡(jiǎn)單的指令和短程序了。另一方面,6月份突然接到所里的通知說(shuō)今年10月份計(jì)算所45周年慶要展示我所在CPU設(shè)計(jì)方面的成果。6月起,我們便開(kāi)始了夜以繼日的三個(gè)月。在此期間,隊(duì)伍迅速擴(kuò)大到三五十人。雖然只是一個(gè)邏輯設(shè)計(jì),但能夠在三個(gè)月內(nèi)從無(wú)到有地設(shè)計(jì)出完整的通用CPU,我自己也覺(jué)得吃驚,F(xiàn)在回想起來(lái),成功的原因有三條:一是技術(shù)路線正確,二是有一支高素質(zhì)舍得玩命的隊(duì)伍,三是計(jì)算所良好的環(huán)境和雄厚的技術(shù)儲(chǔ)備。教訓(xùn)有兩條:一是工程經(jīng)驗(yàn)不足,初期管理不善;一是對(duì)工具重視不夠。我覺(jué)得,我們的技術(shù)路線在三個(gè)方面是很成功的。一是所長(zhǎng)關(guān)于高性能通用CPU的定位。不少人認(rèn)為,處理器最大的市場(chǎng)在嵌入式方面,中國(guó)的處理器設(shè)計(jì)應(yīng)該定位在嵌入式上,沒(méi)必要或沒(méi)能力做通用處理器設(shè)計(jì)。誠(chéng)然,嵌入式處理器的需求量很大,但大市場(chǎng)不一定能賺錢(qián),小市場(chǎng)有時(shí)反而能賺大錢(qián),因?yàn)楹笳呤呛诵募夹g(shù),別人做不了。Intel就是一個(gè)典型的例子,Intel處理器數(shù)量也只占全球市場(chǎng)的1.5%。其次,中國(guó)不是小國(guó),核心技術(shù)自己不掌握不行。我倒是覺(jué)得像嵌入式處理器這樣的東西可做可不做,因?yàn)閯e人的嵌入式處理器價(jià)格很低,且不會(huì)卡我們的“脖子”。有的國(guó)外公司甚至主動(dòng)提出,只要我們用他們的生產(chǎn)線,他們可以免費(fèi)提供嵌入式的IP核。至于有人覺(jué)得我們做不了高性能通用處理器,我的回答是,等我們用自己的處理器做出一臺(tái)曙光機(jī)來(lái)再說(shuō)。雖然在我們做高性能通用處理器上還很落后,但我覺(jué)得我們現(xiàn)在比當(dāng)年計(jì)算所做757和8920的條件好得多,工具要好得多,工作量要小得多。任何事情,關(guān)鍵是要有人靜下心來(lái)認(rèn)真地去做。我們?cè)诩夹g(shù)路線上第二個(gè)成功之處是兼容;仡欀袊(guó)計(jì)算機(jī)發(fā)展的歷史,應(yīng)該說(shuō),我們的“祖上”也是挺“闊”的,直到80年代初,我們的處理器設(shè)計(jì)技術(shù)不比人家差多少。落到今天這個(gè)地步,很大程度上是吃了不兼容的虧。因?yàn)楝F(xiàn)在計(jì)算機(jī)中絕大部分費(fèi)用不是花在硬件上,而是花在軟件上。自己設(shè)計(jì)指令系統(tǒng),只能圖一時(shí)痛快,與其他主流指令系統(tǒng)兼容,確實(shí)很麻煩,有時(shí)為了一條指令就得修改數(shù)據(jù)通路,增加不少東西,但卻可以一勞永逸。在我們組里,有一個(gè)很精干的操作系統(tǒng)組,才四個(gè)人,在3個(gè)月內(nèi)搞定一切與軟件有關(guān)的東西,包括BIOS、LINUX2.4內(nèi)核、gcc編譯器、X-Window、調(diào)試工具、Web Server等等,就是得益于我們的兼容設(shè)計(jì)。當(dāng)然,這四個(gè)人都是絕對(duì)的LINUX高手。我們甚至做到了與別人的處理器引腳級(jí)兼容,只要把別人的拔下來(lái),自己的插上去就行。因此,目前主板也是用別人的。當(dāng)然現(xiàn)在我們也在做主板設(shè)計(jì),因?yàn)槲覀円院笙胱鯥nfinite Band,不能不掌握主板。我們?cè)诩夹g(shù)路線上第三個(gè)成功之處是穩(wěn)扎穩(wěn)打的設(shè)計(jì)方法,即從系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、到C模擬器設(shè)計(jì)、到Verilog仿真、到FPGA驗(yàn)證、到標(biāo)準(zhǔn)單元投片、再到全定制投片的方法。在系統(tǒng)結(jié)構(gòu)方案確定后,我們就設(shè)計(jì)了一個(gè)Cycle-by-Cycle的C語(yǔ)言模擬器。該模擬器詳細(xì)描述了Godson處理器的系統(tǒng)結(jié)構(gòu),能夠模擬處理器每一拍中每一位信號(hào)的變化。設(shè)計(jì)模擬器有三個(gè)明顯的好處,一是驗(yàn)證設(shè)計(jì)的正確性,我們先后在C模擬器上運(yùn)行了LINUX2.2、LINUX2.4、gcc等一系列系統(tǒng)軟件,發(fā)現(xiàn)了設(shè)計(jì)過(guò)程中的大量錯(cuò)誤。二是用C語(yǔ)言描述系統(tǒng)結(jié)構(gòu)更加嚴(yán)格,沒(méi)有二義性,比用文字寫(xiě)的文檔更加明確。我們?cè)贑語(yǔ)言模擬器驗(yàn)證正確后,把C語(yǔ)言模擬器的每個(gè)模塊對(duì)應(yīng)地轉(zhuǎn)換成Verilog語(yǔ)言的模塊花了不到一個(gè)月的時(shí)間。而且由于設(shè)計(jì)上的錯(cuò)誤都在調(diào)試模擬器的過(guò)程中剔除了,在Verilog描述階段沒(méi)有再出現(xiàn)設(shè)計(jì)上的錯(cuò)誤。第三個(gè)好處是C語(yǔ)言模擬器為軟件開(kāi)發(fā)提供了一個(gè)平臺(tái),為我們開(kāi)發(fā)諸如BIOS等軟件提供了很大的便利。在把C語(yǔ)言的模擬器轉(zhuǎn)換成Verilog設(shè)計(jì)后,我們又在Verilog的運(yùn)行平臺(tái)上成功地運(yùn)行了LINUX操作系統(tǒng)。然后再綜合并形成FPGA的燒制文件。經(jīng)過(guò)上述反復(fù)的驗(yàn)證,聯(lián)調(diào)時(shí)基本一次成功。如果我們不是穩(wěn)扎穩(wěn)打,而是采取跨越式的設(shè)計(jì)方法,直接進(jìn)行邏輯設(shè)計(jì),恐怕會(huì)欲速則不達(dá)。因?yàn)樵缴蠈拥脑O(shè)計(jì),調(diào)試越容易。而越底層的設(shè)計(jì),調(diào)試越困難,且剛開(kāi)始時(shí)我們甚至連Verilog語(yǔ)言都不會(huì)使用。在聯(lián)調(diào)時(shí)期,我們實(shí)驗(yàn)室的墻上,有兩句口號(hào),一句是“人生能有幾回搏”,另一句是“求實(shí)、求實(shí)、求實(shí)、創(chuàng)新”。第一句口號(hào)是我所研制曙光系列高性能計(jì)算機(jī)時(shí)用的口號(hào),我把它借了來(lái)。的確,在我們努力攻堅(jiān)的三個(gè)月中,我們課題組的成員付出了難以想象的艱辛,尤其是在幾次調(diào)試的階段。組內(nèi)好多人都有調(diào)試程序的經(jīng)驗(yàn),但很少有人調(diào)試過(guò)操作系統(tǒng),而在一個(gè)本身就可能出錯(cuò)的處理器上調(diào)試過(guò)操作系統(tǒng)的人就更少。我們的挑戰(zhàn)就在這里。當(dāng)出現(xiàn)一個(gè)錯(cuò)誤時(shí),應(yīng)用程序、操作系統(tǒng)以及處理器本身都是懷疑的對(duì)象,需要多方面的協(xié)調(diào)及分析。我們?cè)?jīng)在C模擬器、Verilog模擬環(huán)境、以及FPGA驗(yàn)證系統(tǒng)上分別都運(yùn)行了LINUX操作系統(tǒng),每次都是連續(xù)幾天幾夜的鏖戰(zhàn)。尤其是最后一次最為慘烈,因?yàn)榧词拱l(fā)現(xiàn)一個(gè)很小的錯(cuò)誤,修改一次設(shè)計(jì)再形成新的FPGA燒制文件,需要至少8個(gè)小時(shí)。只有連續(xù)24小時(shí)工作,才能保證一天有幾次修改設(shè)計(jì)的機(jī)會(huì)。我算是在課題組中睡覺(jué)不少的,但也有一個(gè)星期沒(méi)有正經(jīng)睡覺(jué)的經(jīng)歷。在8月中旬的那個(gè)星期,星期一下班前得知第二天有領(lǐng)導(dǎo)要來(lái)所里檢查工作,于是決定冒險(xiǎn)把原來(lái)定的聯(lián)調(diào)時(shí)間提前一周,希望一次成功。但怕不成功影響士氣,只找了幾個(gè)骨干在星期一晚上開(kāi)始聯(lián)調(diào)。我們只有兩次機(jī)會(huì),因?yàn)樾薷囊淮卧O(shè)計(jì)就需要8小時(shí)。星期二凌晨4點(diǎn),急忙把FPGA文件寫(xiě)入FPGA,可是沒(méi)有任何動(dòng)靜。

很快我們就用邏輯分析儀發(fā)現(xiàn)了問(wèn)題。原來(lái)是由于啟動(dòng)時(shí)與主板握手機(jī)制有缺陷,導(dǎo)致主板一直沒(méi)有撤掉復(fù)位信號(hào)。我們趕快修改并在中午12點(diǎn)形成了新的FPGA燒制文件,誰(shuí)知寫(xiě)入后還是沒(méi)有任何動(dòng)靜。下午領(lǐng)導(dǎo)來(lái)檢查,開(kāi)了一下午會(huì),晚上接著調(diào)試,發(fā)現(xiàn)CPU插卡上有兩個(gè)焊點(diǎn)短路,去掉后主板上的液晶顯示器上如約顯示出“GODSON”的字樣,大家一片歡呼。我們決定連續(xù)作戰(zhàn),到星期三晚上11點(diǎn)左右,成功地啟動(dòng)經(jīng)過(guò)改造的主板上的BIOS系統(tǒng),這相當(dāng)于一個(gè)簡(jiǎn)單的操作系統(tǒng),大家又是一片歡呼(這時(shí)課題組的其他成員才知道我們是在我們自己的CPU上運(yùn)行程序)。于是12點(diǎn)要求所有人回去睡覺(jué),我也隨后回家。晚上雷聲大作,風(fēng)雨交加,似乎上天在向我們表示慶賀。我興奮得難以入睡,因?yàn)榇藭r(shí)始覺(jué)三個(gè)月來(lái)一直緊緊壓迫我的壓力稍有緩和。星期四上班后開(kāi)始試圖啟動(dòng)LINUX操作系統(tǒng),但每次都在最后進(jìn)入用戶態(tài)啟動(dòng)各種應(yīng)用程序時(shí)出錯(cuò)。懷疑是TLB的問(wèn)題,因?yàn)樵L問(wèn)用戶空間才開(kāi)始使用TLB。一直跟TLB斗爭(zhēng)了三天兩夜,中間發(fā)現(xiàn)了不少問(wèn)題。每次充滿期望地改過(guò)來(lái)卻總是獲得失望,直到星期六吃晚飯前恍然大悟地發(fā)現(xiàn)問(wèn)題,匆匆吃了幾口飯后趕快修改,8月19日凌晨2點(diǎn)多形成FPGA文件并寫(xiě)入FPGA。2點(diǎn)42分,屏幕上終于出現(xiàn)了“l(fā)ogin”字樣,登錄進(jìn)去隨便玩,和使用其他機(jī)器上的LINUX一樣。我當(dāng)時(shí)用vi編輯了一個(gè)文件記錄這一歷史時(shí)刻,存盤(pán)退出后把它ftp到另一臺(tái)機(jī)器上發(fā)給唐志敏和所領(lǐng)導(dǎo),并興奮得馬上給唐志敏打電話告訴他這個(gè)好消息。那時(shí)雖然我們都已經(jīng)極度疲憊,但在場(chǎng)的6個(gè)人都興奮得毫無(wú)睡意,聊天到天亮。記得那晚也是風(fēng)雨交加。早上6點(diǎn)大家回家睡覺(jué),不知?jiǎng)e人怎么樣,我連續(xù)睡了20多個(gè)小時(shí),才補(bǔ)上了這一星期的覺(jué)。在此之后,我們又跟前述“偏執(zhí)狂”的浮點(diǎn)測(cè)試程序斗爭(zhēng)了兩個(gè)禮拜,不過(guò)已經(jīng)沒(méi)有那么辛苦了。

我有時(shí)候覺(jué)得自己比周扒皮還狠,但我們課題組的成員也確實(shí)很玩命。有好幾次,我在早上六、七點(diǎn)鐘打開(kāi)實(shí)驗(yàn)室的門(mén),發(fā)現(xiàn)有些人手里扶著鼠標(biāo)就靠在椅子上睡著了。我是容易受感動(dòng)的人,看到這樣的場(chǎng)景忍不住想落淚。但我還是狠下心叫醒他們,詢問(wèn)昨天晚上的進(jìn)展并讓他們接著干。我有一個(gè)學(xué)生,近兩個(gè)月來(lái)很少在凌晨4點(diǎn)前睡覺(jué),而常常到八九點(diǎn)鐘我一上班就會(huì)把他叫起來(lái),因?yàn)槲壹庇诹私庾蛲淼倪M(jìn)展。記得有一次我們?cè)谏钜沟扔?jì)算機(jī)的運(yùn)行結(jié)果,大家聊天,說(shuō)到了生死。他說(shuō)最不希望老死,看著自己的生命一點(diǎn)點(diǎn)耗盡。我們都有一種觀點(diǎn),我們現(xiàn)在落后這么多,別人不比我們笨,如果大家都一樣一周五天一天8小時(shí)上班,恐怕很難趕上人家,唯有像當(dāng)年搞“兩彈一星”一樣拼命,至少得累死一批人。唯有這樣,我們才能不受欺負(fù),我們的子孫才有希望重新做到“犯我大漢者,雖遠(yuǎn)必誅之”。我經(jīng)常說(shuō),一盆花用水澆灌固然能夠盛開(kāi),但用心血澆灌會(huì)更鮮艷。我們的CPU事業(yè)就是一朵花,我們?cè)谟眯难獫补嗨。我們還給這個(gè)處理器取了一個(gè)很有傳統(tǒng)特色的小名叫“狗剩”,希望名字賤一點(diǎn)容易養(yǎng)大,音譯成英文就是Godson。

至于我們墻上的另外一句口號(hào)“求實(shí)、求實(shí)、求實(shí)、創(chuàng)新”是對(duì)計(jì)算所所訓(xùn)“求實(shí)、創(chuàng)新”的一個(gè)注解和發(fā)揮。因?yàn)槲腋械浆F(xiàn)在中國(guó)科技界太浮躁,炒作的人多,做事的人少。因此希望我們組的人把工作做扎實(shí),少吹牛多做事。其中第一個(gè)求實(shí)是關(guān)于做學(xué)問(wèn)的目的,要為了做學(xué)問(wèn)而做學(xué)問(wèn),而不是為了名和利。要真正做到‘人不知而不慍’。這一點(diǎn)說(shuō)起來(lái)容易,做起來(lái)很難。像我們?cè)谟?jì)算所工作的人,大概在利上不是非常計(jì)較,只要日子過(guò)得下去就行了,但在名上就很難看得開(kāi)!安挥(jì)名”這一點(diǎn),我自己雖然做不到,但心向往之。第二個(gè)求實(shí)是關(guān)于做學(xué)問(wèn)的態(tài)度,就是要把工作做到實(shí)處,就是要艱苦奮斗,就是不要為了發(fā)表論文而寫(xiě)文章。在科研上哪怕是一點(diǎn)點(diǎn)的創(chuàng)新,都需要大量踏實(shí)的工作,這是客觀規(guī)律,誰(shuí)也躲不過(guò)。我們?cè)诳蒲兄薪?jīng)常碰到有些人不愿做具體繁瑣的工作,一心想發(fā)表論文。這種現(xiàn)象很普遍,我自己以前也這樣,但以后要力戒之。第三個(gè)求實(shí)是關(guān)于做學(xué)問(wèn)的方法,要勇于實(shí)踐,不要紙上談兵。就是要‘學(xué)而時(shí)習(xí)之’,就是認(rèn)識(shí)和實(shí)踐的不斷循環(huán)往復(fù)。學(xué)問(wèn)并不僅僅是淵博的知識(shí),更多的是體驗(yàn)和感覺(jué)。沒(méi)有對(duì)所做工作的深刻體驗(yàn),就難以發(fā)現(xiàn)問(wèn)題,就難以創(chuàng)新。而這些體驗(yàn),從別人的文章里是看不來(lái)的,沒(méi)有經(jīng)過(guò)身體力行的大量實(shí)踐,是體會(huì)不到的,F(xiàn)在很多人認(rèn)為我國(guó)沒(méi)有自己的處理器,主要是因?yàn)楣に囁缴喜蝗,因此,處理器設(shè)計(jì)不應(yīng)是計(jì)算所的事情,而是做微電子設(shè)計(jì)的人的工作。誠(chéng)然,回顧我們國(guó)家的處理器設(shè)計(jì)歷史,在80年代后全面落后的一個(gè)重要原因是沒(méi)有自己的制造工藝,導(dǎo)致處理器設(shè)計(jì)隊(duì)伍整體上垮掉,人員流失。但現(xiàn)在情況發(fā)生了變化,投片已經(jīng)沒(méi)有大問(wèn)題,主要是沒(méi)有設(shè)計(jì)。而處理器設(shè)計(jì)決不僅僅是邏輯設(shè)計(jì)。處理器設(shè)計(jì)是大系統(tǒng),唯有對(duì)包括操作系統(tǒng)、編譯、體系結(jié)構(gòu)、I/O等在內(nèi)的整個(gè)計(jì)算機(jī)有全局的把握才能設(shè)計(jì)出高性能處理器。就好像經(jīng)營(yíng)一個(gè)公司,固定資產(chǎn)和資金只是其中的必要條件,關(guān)鍵還在于管理。在通用計(jì)算機(jī)中,操作系統(tǒng)和系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的配合尤為重要,有些指令專門(mén)是為操作系統(tǒng)設(shè)計(jì)的,尤其是在系統(tǒng)安全、存儲(chǔ)管理、原子操作、例外處理等方面。我在用我們自己的結(jié)構(gòu)實(shí)現(xiàn)MIPS指令系統(tǒng)的過(guò)程中,有一個(gè)深刻的體會(huì),就是一個(gè)指令系統(tǒng)十幾年來(lái)一直在發(fā)展是有它的道理的(MIPS指令系統(tǒng)經(jīng)歷了MIPS I、MIPS II、MIPS III、MIPS IV的發(fā)展過(guò)程)。有時(shí)候通過(guò)對(duì)操作系統(tǒng)的分析,了解到一些指令的妙用,體會(huì)到設(shè)計(jì)者設(shè)置這些指令的初衷,真是讓人拍案叫絕。所以,我一直很慶幸我們采用了兼容的做法,如果自己設(shè)計(jì)指令系統(tǒng),沒(méi)有十幾年的實(shí)踐,是不會(huì)完善的。

放眼中國(guó)在體系結(jié)構(gòu)、操作系統(tǒng)、編譯方面的綜合力量,比計(jì)算所強(qiáng)的不多(我比較佩服的其他單位只有一家),因此計(jì)算所做CPU設(shè)計(jì)是很有優(yōu)勢(shì)的。雖然前幾年的折騰使計(jì)算所元?dú)獯髠,但底子還在。在開(kāi)始做CPU設(shè)計(jì)之初,我對(duì)這件事情的復(fù)雜性估計(jì)不足(這是一個(gè)深刻教訓(xùn)),只是領(lǐng)著八、九個(gè)研究生做。后來(lái)在項(xiàng)目逐漸展開(kāi)后,發(fā)現(xiàn)現(xiàn)有的人力頂多能做完邏輯設(shè)計(jì),要把通用操作系統(tǒng)啟動(dòng)起來(lái)是遠(yuǎn)遠(yuǎn)不夠的。無(wú)奈之下,只好從原來(lái)做機(jī)群的組和做嵌入式操作系統(tǒng)的組中調(diào)了幾個(gè)操作系統(tǒng)高手過(guò)來(lái),事情馬上有了起色。比如,我們要在C模擬器上運(yùn)行操作系統(tǒng),需要對(duì)操作系統(tǒng)內(nèi)核進(jìn)行裁剪和修改(如去掉一些與主板配置緊密相關(guān)的初始化),這種事情沒(méi)有對(duì)操作系統(tǒng)的深入把握是無(wú)法做的。后來(lái),又從其他地方得到一些人員補(bǔ)充(我現(xiàn)在體會(huì)到電影里作戰(zhàn)的指揮員為什么非常重視預(yù)備隊(duì)),F(xiàn)在,我們組已經(jīng)有了三五十人的規(guī)模,兵不在多而在于精,這些人全是年輕的干將,素質(zhì)很高,又很玩命。就我目前所做的事情來(lái)說(shuō),計(jì)算所幾乎是“要什么人才有什么人才”。計(jì)算所的科研環(huán)境很好,尤其是體現(xiàn)在后勤服務(wù)上。舉幾個(gè)小例子:第一個(gè)是工作展開(kāi)后通宵加班多了起來(lái),我們自己因地制宜地在一些桌子上鋪上鋪蓋,搭了幾張簡(jiǎn)陋的床。當(dāng)鄧書(shū)記知道這種情況后,馬上找人騰出一間小屋子,放了六張床,大大改善了我們加班時(shí)的休息環(huán)境。鄧書(shū)記還讓人每天為加班的人準(zhǔn)備餅干、方便面等方便食品。第二個(gè)例子是,隨著工作的不斷深入,組里需要不斷添置新的微機(jī),但機(jī)器都是隨用隨買(mǎi)(因?yàn)槟菚r(shí)沒(méi)有經(jīng)驗(yàn),不知道要買(mǎi)多少機(jī)器)。對(duì)此,業(yè)務(wù)處的同志們總是全力配合,保證組里及時(shí)用上新機(jī)器。最快的一次,我在上午11∶30向業(yè)務(wù)處王玉杰老師提出購(gòu)機(jī)申請(qǐng),下午1∶30機(jī)器已經(jīng)送到實(shí)驗(yàn)室。這在一個(gè)財(cái)務(wù)制度健全、審批嚴(yán)格的事業(yè)單位是很難想象的,更何況是午休時(shí)間。第三個(gè)例子是有一次我們急需一塊MatroxG200顯卡,但由于用的是幾年前的產(chǎn)品,跑遍了中關(guān)村也沒(méi)有買(mǎi)到。萬(wàn)般無(wú)奈,只得通過(guò)EMAIL向所內(nèi)的部分老師緊急求助,熱心的業(yè)務(wù)處于天波老師馬上在網(wǎng)絡(luò)上發(fā)布這個(gè)消息,不到一個(gè)小時(shí),在王貞松老師的幫助下,就找到了這塊顯卡。這至少減掉了我們兩個(gè)星期的工作量,因?yàn)槿绻闷渌@卡,我們得自己再寫(xiě)驅(qū)動(dòng)程序。有效的后勤保障使我有時(shí)候覺(jué)得不把事情做好,對(duì)不起這些熱心幫助我們的人。

我們?cè)谇耙欢螘r(shí)間的教訓(xùn)有兩個(gè):一是工程經(jīng)驗(yàn)不足,主要體現(xiàn)在以做研究的方法來(lái)做工程,以及對(duì)任務(wù)的難度估計(jì)不足,科研力量配備不夠,導(dǎo)致初期效率不高。幸虧后來(lái)工程經(jīng)驗(yàn)豐富的張志敏老師加盟,大大扭轉(zhuǎn)了我們用做研究的方法來(lái)做工程項(xiàng)目的局面,提出了“后墻不倒”的目標(biāo)。此外,也幸虧計(jì)算所技術(shù)儲(chǔ)備雄厚,使我們得以在后期提高效率。不過(guò),我們目前在文檔管理等方面還是很有問(wèn)題的。第二個(gè)教訓(xùn)是對(duì)工具重視不夠。現(xiàn)在做處理器設(shè)計(jì),EDA工具是十分重要的。由于我們不夠重視EDA工具,吃了不少虧。有一次布線布不通,其實(shí)只要修改一下設(shè)置就行,可惜我們都不會(huì)。

下面我介紹一下Godson的技術(shù)特點(diǎn)。了解了這些技術(shù)特點(diǎn),就可以了解為什么Godson工作在12.5MHz時(shí)就有50MHz的486的性能。Godson的流水線結(jié)構(gòu)是我自己覺(jué)得比較得意的地方。設(shè)計(jì)的時(shí)候沒(méi)有參考其他處理器的流水線,完全是憑感覺(jué)。Godson流水線包括了若干目前處理器設(shè)計(jì)中最先進(jìn)的技術(shù),如流水線動(dòng)態(tài)調(diào)度、Tomasulo算法、寄存器重命名、猜測(cè)執(zhí)行、精確例外處理、64位的浮點(diǎn)運(yùn)算部件、CACHE技術(shù)等,并且在某些方面有所創(chuàng)新。流水線設(shè)計(jì)中比較困難的兩個(gè)問(wèn)題是例外的處理和相關(guān)的解決。首先我們把例外處理與流水線緊密地耦合在一起,在數(shù)據(jù)通路的設(shè)計(jì)中例外結(jié)果和正常結(jié)果并行,在執(zhí)行過(guò)程中例外結(jié)果和正常結(jié)果不加區(qū)別,只有在指令結(jié)束階段才對(duì)例外結(jié)果進(jìn)行特殊處理。此外,我們把轉(zhuǎn)移指令猜測(cè)錯(cuò)誤作為一種特殊例外,利用例外處理的取消和保持現(xiàn)場(chǎng)的精確邏輯。這樣不僅可以簡(jiǎn)化設(shè)計(jì),而且可以讓轉(zhuǎn)移指令后面猜測(cè)執(zhí)行的指令盡可能地往下執(zhí)行。我們的流水線是動(dòng)態(tài)流水線,采用de-coupled結(jié)構(gòu),控制邏輯分布在每個(gè)模塊之中。在流水線的控制中,“讓流水線流起來(lái)”是我們?cè)O(shè)計(jì)的理念。在指令流水線中,數(shù)據(jù)相關(guān)和控制相關(guān)都會(huì)引起流水線等待。如后面指令用到前面指令的結(jié)果或后面指令是否執(zhí)行由前面轉(zhuǎn)移指令成功與否決定。對(duì)于因數(shù)據(jù)相關(guān)引起的等待,我們的原則是盡量推遲到不得不等的時(shí)候才等。即對(duì)于源數(shù)據(jù)未準(zhǔn)備好的指令,在指令譯碼和發(fā)射時(shí)并不停下來(lái)等待數(shù)據(jù)(簡(jiǎn)單的靜態(tài)流水線通常在譯碼時(shí)停下來(lái)等待未準(zhǔn)備好的數(shù)據(jù),堵住了后面指令的繼續(xù)執(zhí)行),而是建立數(shù)據(jù)依賴關(guān)系,由功能部件通過(guò)偵聽(tīng)結(jié)果總線解決數(shù)據(jù)相關(guān)的問(wèn)題。這樣數(shù)據(jù)結(jié)果一出來(lái),等待它的指令馬上可以進(jìn)行運(yùn)算,不用經(jīng)過(guò)寫(xiě)回到寄存器再讀出來(lái)的過(guò)程,而且前面指令的等待不會(huì)堵塞后面指令的繼續(xù)執(zhí)行。對(duì)于控制相關(guān),我們也是讓轉(zhuǎn)移分支的指令先猜測(cè)地執(zhí)行起來(lái),到不得不停下來(lái)時(shí)才等待轉(zhuǎn)移目標(biāo)的確定。如果轉(zhuǎn)移猜測(cè)成功就立即繼續(xù)前進(jìn),如果轉(zhuǎn)移猜測(cè)不成功,就利用例外處理的指令撤銷(xiāo)機(jī)制恢復(fù)正確現(xiàn)場(chǎng)。流水線設(shè)計(jì)中,“簡(jiǎn)潔、流暢”是我們追求的目標(biāo)。前者保證流水級(jí)間的控制簡(jiǎn)單、延遲少,后者保證流水線的高性能。在我們聯(lián)調(diào)成功后到現(xiàn)在,已經(jīng)對(duì)流水線進(jìn)行了4次較大調(diào)整,每次都更加簡(jiǎn)潔、流暢。我想在正式投片前還會(huì)有幾次調(diào)整。此外,Godson的浮點(diǎn)運(yùn)算部件流水線設(shè)計(jì)也有自己的特點(diǎn)。

Godson體系結(jié)構(gòu)的另外一個(gè)特點(diǎn)是結(jié)構(gòu)靈活,模塊化好,可以根據(jù)不同的需求對(duì)功能部件進(jìn)行任意裁剪以滿足不同的應(yīng)用。由于Godson的流水線采用de-coupled結(jié)構(gòu),控制邏輯分布在每個(gè)模塊之中。增加或減少功能模塊對(duì)其他部分沒(méi)什么影響。如對(duì)于某些嵌入式應(yīng)用,不需浮點(diǎn)部件,只要去掉浮點(diǎn)ALU、浮點(diǎn)乘法、以及浮點(diǎn)寄存器模塊,不用對(duì)其他模塊做任何修改。

系統(tǒng)安全設(shè)計(jì)也是Godson的一個(gè)重要特點(diǎn)。Godson系統(tǒng)除了實(shí)現(xiàn)MIPS系統(tǒng)要求的安全機(jī)制外,還針對(duì)網(wǎng)絡(luò)攻擊實(shí)現(xiàn)了一種新的訪問(wèn)限制機(jī)制。緩沖區(qū)溢出是一種非常普遍、非常危險(xiǎn)的漏洞,是目前大多數(shù)網(wǎng)絡(luò)攻擊所采取的辦法,在各種操作系統(tǒng)、應(yīng)用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,可以導(dǎo)致程序運(yùn)行失敗、系統(tǒng)死機(jī)、重新啟動(dòng)等后果。更為嚴(yán)重的是,可以利用它執(zhí)行非授權(quán)指令,甚至可以取得系統(tǒng)特權(quán),進(jìn)而進(jìn)行各種非法操作。Godson通過(guò)允許操作系統(tǒng)對(duì)堆棧段的取指進(jìn)行限制,有效地防范了利用緩沖區(qū)溢出進(jìn)行的攻擊。

當(dāng)然,Godson在目前設(shè)計(jì)上也還存在一些缺陷,主要是對(duì)CACHE重視不夠。目前的設(shè)計(jì)只有4KB的指令CACHE和4KB的數(shù)據(jù)CACHE,都是直接相聯(lián)(這與FPGA容量有關(guān),目前的設(shè)計(jì)已經(jīng)使用了150萬(wàn)門(mén)FPGA85%—90%的面積)。在性能測(cè)試時(shí)發(fā)現(xiàn)對(duì)訪存要求較高的程序Godson的性能不夠理想。如當(dāng)Godson運(yùn)行在12.5MHz時(shí),對(duì)于訪存不敏感的程序,100MHz主頻的IDT64474CPU(R4000內(nèi)核)的性能是Godson的3—5倍,但對(duì)于訪存敏感的程序,IDT64474的性能是Godson的6—8倍。IDT64474有16KB的指令CACHE和16KB的數(shù)據(jù)CACHE,都是二路組相聯(lián),無(wú)論是CACHE容量和組織方式都比Godson強(qiáng)。在投片前一定要對(duì)CACHE部分進(jìn)行改進(jìn)。

關(guān)于Godson的未來(lái)發(fā)展,我們有一個(gè)雄心勃勃的計(jì)劃。第一步是在目前設(shè)計(jì)的基礎(chǔ)上經(jīng)過(guò)優(yōu)化后進(jìn)行標(biāo)準(zhǔn)單元的投片,主頻在200MHz—300MHz左右,爭(zhēng)取2002年完成,用于個(gè)人工作站/瘦客戶端PC及電子政務(wù)等。第二步是設(shè)計(jì)雙發(fā)射64位的結(jié)構(gòu)(目前為單發(fā)射、定點(diǎn)32位、浮點(diǎn)64位),投片主頻為500MHz左右,爭(zhēng)取在2003—2004年完成。用于高性能服務(wù)器,也可以搭成機(jī)群做高性能計(jì)算。第三步爭(zhēng)取在處理器間并行上有所突破,設(shè)計(jì)基于Crossbar的大SMP結(jié)點(diǎn),每個(gè)SMP結(jié)點(diǎn)16個(gè)—64個(gè)CPU,用于高性能計(jì)算。在做處理器設(shè)計(jì)之前,我們做了近十年的共享存儲(chǔ)系統(tǒng)結(jié)構(gòu)研究,但囿于CPU和操作系統(tǒng),只能紙上談兵,頂多做做軟件實(shí)現(xiàn),F(xiàn)在自己做CPU,可以為所欲為,好像被束縛的手腳一下子得到了自由。如果能夠把我們?cè)诠蚕泶鎯?chǔ)并行系統(tǒng)方面十來(lái)年的積累做到實(shí)用系統(tǒng)中去,簡(jiǎn)直是爽呆了。如果可能的話,爭(zhēng)取實(shí)現(xiàn)串行程序采用多線程技術(shù)自動(dòng)并行化,這需要編譯、操作系統(tǒng)及系統(tǒng)結(jié)構(gòu)的全面突破。沒(méi)做多少事,寫(xiě)了這么多,是不是有點(diǎn)過(guò)分。寫(xiě)這種東西其實(shí)比寫(xiě)程序還累。

2001年8月


   關(guān)注 4412    返回
張宏良:再次向上海人民致敬!
張宏良:金無(wú)怠-中國(guó)特工的絕命悲歌
 
 
關(guān)注官方手機(jī)微站