www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 產(chǎn)業(yè)資訊 > 芯鮮事
[導讀]本文是由龍芯中科董事長胡偉武寫于2001年8月,中國自主研發(fā)的龍芯1號FPGA成功地運行了LINUX操作系統(tǒng)?!褒埿尽钡恼Q生有其時代特殊性和復雜的背景,其背負的歷史使命也是前所未有的。本文主要講述的就是這段令人懷念的奮斗歷史。

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

我參與計算所的CPU開發(fā)項目,源于2000年10月一個偶然的機緣。

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

2001年8月19日,我們設(shè)計的GodsonCPU成功地把LINUX操作系統(tǒng)boot起來。當“l(fā)ogin:”的提示符出現(xiàn)在屏幕上時,計算所北樓309房間一片歡呼。到9月中旬,一個用我們自己設(shè)計的CPU的完整計算機系統(tǒng)已經(jīng)浮出水面,該系統(tǒng)運行完整的LINUX操作系統(tǒng),內(nèi)核版本為2.4,可以做其他運行LINUX操作系統(tǒng)的計算機所支持的一切事情,包括運行g(shù)cc編譯器,X-Window視窗系統(tǒng),WEB服務器,SPEC CPU2000基準程序等。

龍芯中科董事長胡偉武:這段CPU奮斗史很燃!

(2001年10月全國人大常委副委員長路甬祥視察計算所)

我們最引以為豪的還是該CPU的系統(tǒng)結(jié)構(gòu)設(shè)計。Godson的結(jié)構(gòu)設(shè)計起點較高,采用了動態(tài)流水線、亂序執(zhí)行等技術(shù)。雖然目前我們只是基于FPGA的設(shè)計,主頻也不高,但當我們的CPU運行到12.5MHz時,其性能已經(jīng)不比50MHz主頻的Intel486差(當然,我們的主板比486主板要好),確切地說,浮點性能比486強一點,定點性能比486差。值得一提的是,當我們用一個叫“偏執(zhí)狂(Paranoia)”的測試程序測試CPU的浮點部件是否符合IEEE754標準時,奔IV處理器測出了浮點不嚴格符合IEEE754標準而我們的CPU完全符合標準。

此外,在Godson中還專門針對網(wǎng)絡(luò)攻擊進行了安全設(shè)計,可以有效防止利用緩沖區(qū)的網(wǎng)絡(luò)攻擊。應該指出的是,我們只是完成了一個CPU的邏輯設(shè)計,當時是用FPGA對這個邏輯設(shè)計進行驗證,只是一個階段性成果,還沒有進行投片。用李國杰所長的話說,“三分之二的工作還在后面”。如果我們對當時的工作沾沾自喜,那是很膚淺的。但即使是這個成果的取得,也來之不易。個中滋味,酸甜苦辣俱全,很難為外人所體會?;仡櫸覀冮_發(fā)Godson處理器的過程,雖然不長,但既有教訓,也有經(jīng)驗,總結(jié)一下,對以后的工作是有好處的。

我們做CPU設(shè)計緣起于計算所所長李國杰院士的直接推動。李老師是我接觸過的院士中比較令人欽佩的一位,因為他能夠站在如何發(fā)展整個國家的信息產(chǎn)業(yè)的角度來考慮問題,而不是一個局部的角度?,F(xiàn)在我慢慢知道,他推動計算所做CPU設(shè)計是很不容易的。CPU設(shè)計技術(shù)是核心技術(shù),但市場壁壘很高,即使現(xiàn)在已經(jīng)投片出來很好的CPU,如果沒有人用就會走入以前“鑒定會就是追悼會”的怪圈。但我相信李老師在信息產(chǎn)業(yè)界的經(jīng)驗和影響力,所以決心做下去。

我的師兄唐志敏是系統(tǒng)結(jié)構(gòu)室的室主任,他把握著整項工作的大局,領(lǐng)導著整個CPU設(shè)計的總體規(guī)劃。他的大度與謙和能夠把一批非常能干的年輕人團結(jié)在一起,使大家互相之間從無猜忌?,F(xiàn)在,在科技界有一種奇怪的現(xiàn)象,就是一個年輕人做出一些成果之后,就喜歡獨立門戶,結(jié)果造成了科研力量分散,干不成大事的局面。在我們的項目組中,卻有一批本身也很厲害,能夠獨當一面的年輕人緊緊地團結(jié)在一起,同心協(xié)力干一件事情。這其中一個重要的原因在于唐志敏是一個能夠容人的領(lǐng)導。舉一個簡單的例子,所里曾設(shè)立過一個CPU設(shè)計的項目,我是項目負責人,但包括項目申請書、每月一次的課題進展狀況及支出情況表、以及鑒定會材料等,我一個字也沒有寫過,全是唐志敏代勞,使我有90%以上的時間能夠用在編程和邏輯設(shè)計。

這只是一件小事,但我在計算所十來年,見了不少下屬幫領(lǐng)導寫報告的事,卻從未見過領(lǐng)導幫下屬寫報告的。唐志敏在全局的把握和總體規(guī)劃上也有獨到的見解。關(guān)于我們做出的CPU的未來用途,我的主張是自己做高性能工作站,但做出來干什么以及如何與別人競爭卻難說。唐志敏心中卻非常有數(shù),他說現(xiàn)在我們所的軟件室正在做電子政務,以后結(jié)合在一起做,至少在安全方面是國外產(chǎn)品無法競爭的。我當時覺得這種眼光真是“高瞻遠矚、高屋建瓴”。

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

雖然我們所籌備CPU設(shè)計由來已久(從2000年初就開始做預研),討論了許多輪。但我們真正開始動手設(shè)計是2000年11月。剛開始是唐志敏和我領(lǐng)著七、八名研究生做系統(tǒng)結(jié)構(gòu)設(shè)計,主要是確定指令系統(tǒng)以及流水線結(jié)構(gòu)。在開始設(shè)計之初,李所長在全所會議上就定了“高性能、通用、一步到位”的目標。后來,唐志敏和我又確定了兼容以及采用RISC結(jié)構(gòu)這兩個具體目標。當時雖然IA-64結(jié)構(gòu)炒得挺熱,但我們還是決定采用RISC結(jié)構(gòu),現(xiàn)在看來,這是對的。

關(guān)于指令系統(tǒng),起初我建議與Alpha兼容,但唐志敏定為與MIPS兼容。說實在的,從2000年11月到2001年4月這段時間,我對CPU這個項目還不夠重視,因為我原來做機群及共享存儲系統(tǒng)也覺得挺有意思。在項目開始的一段時間里,我自己還花一部分時間在做機群方面的事情,寫了一些論文,4月底還到美國開了一個并行處理方面的國際會議。5月初從美國回來后開始全力投入做CPU設(shè)計。由于時間緊,在確定流水線結(jié)構(gòu)時,沒有看多少論文也沒有做多少實驗,主要是憑感覺和過去的積累,遇到權(quán)衡得失確定不了的事情,就與唐志敏討論。不過,現(xiàn)在回過頭去看,由于當時沒有參考別人的方案,也就少一些禁錮?,F(xiàn)在有了一點時間開始看別人的做法,發(fā)現(xiàn)我們設(shè)計的基于操作隊列復用的動態(tài)指令流水線還是很先進的。

我們的工作真正全面鋪開是在2001年五一放假后。一方面,系統(tǒng)結(jié)構(gòu)已經(jīng)基本定型,用C語言寫的模擬器已經(jīng)完成得差不多了,可以運行簡單的指令和短程序了;另一方面,6月份突然接到所里的通知說今年10月份計算所45周年慶要展示我所在CPU設(shè)計方面的成果。6月起,我們便開始了夜以繼日的三個月。在此期間,隊伍迅速擴大到三五十人。雖然只是一個邏輯設(shè)計,但能夠在三個月內(nèi)從無到有地設(shè)計出完整的通用CPU,我自己也覺得吃驚?,F(xiàn)在回想起來,成功的原因有三條:一是技術(shù)路線正確,二是有一支高素質(zhì)舍得玩命的隊伍,三是計算所良好的環(huán)境和雄厚的技術(shù)儲備。

教訓有兩條:一是工程經(jīng)驗不足,初期管理不善;二是對工具重視不夠。我覺得,我們的技術(shù)路線在三個方面是很成功的:首先是所長關(guān)于高性能通用CPU的定位。不少人認為,處理器最大的市場在嵌入式方面,中國的處理器設(shè)計應該定位在嵌入式上,沒必要或沒能力做通用處理器設(shè)計。誠然,嵌入式處理器的需求量很大,但大市場不一定能賺錢,小市場有時反而能賺大錢,因為后者是核心技術(shù),別人做不了。Intel就是一個典型的例子,Intel PC和服務器的處理器數(shù)量也只占全球市場的1.5%。

其次,中國不是小國,核心技術(shù)自己不掌握不行。我倒是覺得像嵌入式處理器這樣的東西可做可不做,因為別人的嵌入式處理器價格很低,且不會卡我們的“脖子”。有的國外公司甚至主動提出,只要我們用他們的生產(chǎn)線,他們可以免費提供嵌入式的IP核。至于有人覺得我們做不了高性能通用處理器,我的回答是,等我們用自己的處理器做出一臺曙光機來再說。雖然我們在做高性能通用處理器上還很落后,但我覺得我們現(xiàn)在比當年計算所做757和8920時的條件好得多,工具要好得多,工作量要小得多。任何事情,關(guān)鍵是要有人靜下心來認真地去做。我們在技術(shù)路線上的第二個成功之處是兼容?;仡欀袊嬎銠C發(fā)展的歷史,應該說,我們的“祖上”也是挺“闊”的,直到80年代初,我們的處理器設(shè)計技術(shù)不比人家差多少。落到今天這個地步,很大程度上是吃了不兼容的虧。計算機中絕大部分費用不是花在硬件上,而是花在軟件上。自己設(shè)計指令系統(tǒng),只能圖一時痛快,與其他主流指令系統(tǒng)兼容,確實很麻煩,有時為了一條指令就得修改數(shù)據(jù)通路,增加不少東西,但卻可以一勞永逸。在我們組里,有一個很精干的操作系統(tǒng)組,才四個人,3個月內(nèi)搞定了一切與軟件有關(guān)的東西,包括BIOS、LINUX2.4內(nèi)核、gcc編譯器、X-Window、調(diào)試工具、Web Server等等,就是得益于我們的兼容設(shè)計。當然,這四個人都是絕對的LINUX高手。我們甚至做到了與別人的處理器引腳級兼容,只要把別人的拔下來,自己的插上去就行。

我們在技術(shù)路線上第三個成功之處,就是穩(wěn)扎穩(wěn)打的設(shè)計方法,即從系統(tǒng)結(jié)構(gòu)設(shè)計、到C模擬器設(shè)計、到Verilog仿真、到FPGA驗證、到標準單元投片、再到全定制投片的方法。在系統(tǒng)結(jié)構(gòu)方案確定后,我們就設(shè)計了一個Cycle-by-Cycle的C語言模擬器。該模擬器詳細描述了Godson處理器的系統(tǒng)結(jié)構(gòu),能夠模擬處理器每一拍中每一位信號的變化。

設(shè)計模擬器有三個明顯的好處:一是驗證設(shè)計的正確性,我們先后在C模擬器上運行了LINUX2.2、LINUX2.4、gcc等一系列系統(tǒng)軟件,發(fā)現(xiàn)了設(shè)計過程中的大量錯誤。二是用C語言描述系統(tǒng)結(jié)構(gòu)更加嚴格,沒有二義性,比用文字寫的文檔更加明確。我們在C語言模擬器驗證正確后,把C語言模擬器的每個模塊對應地轉(zhuǎn)換成Verilog語言的模塊花了不到一個月的時間。而且由于設(shè)計上的錯誤都在調(diào)試模擬器的過程中剔除了,在Verilog描述階段沒有再出現(xiàn)設(shè)計上的錯誤。第三個好處是C語言模擬器為軟件開發(fā)提供了一個平臺,為我們開發(fā)諸如BIOS等軟件提供了很大的便利。在把C語言的模擬器轉(zhuǎn)換成Verilog設(shè)計后,我們又在Verilog的運行平臺上成功地運行了LINUX操作系統(tǒng)。然后再綜合并形成FPGA的燒制文件。經(jīng)過上述反復的驗證,聯(lián)調(diào)時基本一次成功。如果我們不是穩(wěn)扎穩(wěn)打,而是采取跨越式的設(shè)計方法,直接進行邏輯設(shè)計,恐怕會欲速則不達。因為越上層的設(shè)計,調(diào)試越容易。而越底層的設(shè)計,調(diào)試越困難,且剛開始時我們甚至連Verilog語言都不會使用。在聯(lián)調(diào)時期,我們實驗室的墻上,有兩句口號,一句是“人生能有幾回搏”,另一句是“求實、求實、求實、創(chuàng)新”。

龍芯中科董事長胡偉武:這段CPU奮斗史很燃!

(“人生能有幾回搏”的口號)

第一句口號是我所研制曙光系列高性能計算機時用的口號,我把它借了來。的確,在我們努力攻堅的三個月中,我們課題組的成員付出了難以想象的艱辛,尤其是在幾次調(diào)試的階段。組內(nèi)好多人都有調(diào)試程序的經(jīng)驗,但很少有人調(diào)試過操作系統(tǒng),而在一個本身就可能出錯的處理器上調(diào)試過操作系統(tǒng)的人就更少。我們的挑戰(zhàn)就在這里。當出現(xiàn)一個錯誤時,應用程序、操作系統(tǒng)以及處理器本身都是懷疑的對象,需要多方面的協(xié)調(diào)及分析。我們曾經(jīng)在C模擬器、Verilog模擬環(huán)境、以及FPGA驗證系統(tǒng)上分別都運行了LINUX操作系統(tǒng),每次都是連續(xù)幾天幾夜的鏖戰(zhàn)。最后一次尤為慘烈,因為即使發(fā)現(xiàn)一個很小的錯誤,修改一次設(shè)計再形成新的FPGA燒制文件,需要至少8個小時。只有連續(xù)24小時工作,才能保證一天有幾次修改設(shè)計的機會。我算是在課題組中睡覺不少的,但也有一個星期沒有正經(jīng)睡覺的經(jīng)歷。在8月中旬的那個星期,星期一下班前得知第二天有領(lǐng)導要來所里檢查工作,于是決定冒險把原來定的聯(lián)調(diào)時間提前一周,希望一次成功。但怕不成功影響士氣,只找了幾個骨干在星期一晚上開始聯(lián)調(diào)。我們只有兩次機會,因為修改一次設(shè)計就需要8小時。星期二凌晨4點,我們把燒制文件寫入FPGA,可是沒有任何動靜。

很快我們就用邏輯分析儀發(fā)現(xiàn)了問題。原來是由于啟動時與主板握手機制有缺陷,導致主板一直沒有撤掉復位信號。我們趕快修改并在中午12點形成了新的FPGA燒制文件,誰知寫入后還是沒有任何動靜。下午領(lǐng)導來檢查,開了一下午會,晚上接著調(diào)試,發(fā)現(xiàn)CPU插卡上有兩個焊點短路,去掉后主板上的液晶顯示器上如約顯示出“GODSON”的字樣,大家一片歡呼。我們決定連續(xù)作戰(zhàn),到星期三晚上11點左右,成功地啟動經(jīng)過改造的主板上的BIOS系統(tǒng),這相當于一個簡單的操作系統(tǒng),大家又是一片歡呼(這時課題組的其他成員才知道我們是在自己的CPU上運行程序)。12點時要求所有人回去睡覺,我也隨后回家。

龍芯中科董事長胡偉武:這段CPU奮斗史很燃!

(辦公室當臥室,在艱苦的條件中研制龍芯)

晚上雷聲大作,風雨交加,似乎上天在向我們表示慶賀。我興奮得難以入睡,此時始覺三個月來一直緊緊壓迫我的壓力稍有緩和。星期四上班后開始試圖啟動LINUX操作系統(tǒng),但每次都在最后進入用戶態(tài)啟動各種應用程序時出錯。懷疑是TLB的問題,因為訪問用戶空間才開始使用TLB。一直跟TLB斗爭了三天兩夜,中間發(fā)現(xiàn)了不少問題。每次充滿期望地改過來卻總是獲得失望,直到星期六吃晚飯前恍然大悟地發(fā)現(xiàn)問題,匆匆吃了幾口飯后趕快修改,8月19日凌晨2點多形成FPGA文件并寫入FPGA。2點42分,屏幕上終于出現(xiàn)了“l(fā)ogin”字樣,登錄進去隨便玩,和使用其他機器上的LINUX一樣。我當時用vi編輯了一個文件記錄這一歷史時刻,存盤退出后把它ftp到另一臺機器上發(fā)給唐志敏和所領(lǐng)導,并興奮得馬上給唐志敏打電話告訴他這個好消息。那時雖然我們都已經(jīng)極度疲憊,但在場的6個人都興奮得毫無睡意,聊天到天亮。記得那晚也是風雨交加。早上6點大家回家睡覺,不知別人怎么樣,我連續(xù)睡了20多個小時,才補上了這一星期的覺。在此之后,我們又跟前述“偏執(zhí)狂”的浮點測試程序斗爭了兩個禮拜,不過已經(jīng)沒有那么辛苦了。

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

龍芯中科董事長胡偉武:這段CPU奮斗史很燃!

(“求實、求實、求實、創(chuàng)新”的標語)

至于我們墻上的另外一句口號“求實、求實、求實、創(chuàng)新”是對計算所所訓“求實、創(chuàng)新”的一個注解和發(fā)揮。因為我感到現(xiàn)在中國科技界太浮躁,炒作的人多,做事的人少。因此,希望我們組的人把工作做扎實,少吹牛多做事。其中第一個求實是關(guān)于做學問的目的,要為了做學問而做學問,而不是為了名和利。要真正做到‘人不知而不慍’。這一點說起來容易,做起來很難。像我們在計算所工作的人,大概在利上不是非常計較,只要日子過得下去就行了,但在名上就很難看得開?!安挥嬅边@一點,我自己雖然做不到,但心向往之。第二個求實是關(guān)于做學問的態(tài)度,就是要把工作做到實處,就是要艱苦奮斗,就是不要為了發(fā)表論文而寫文章。在科研上哪怕是一點點的創(chuàng)新,都需要大量踏實的工作,這是客觀規(guī)律,誰也躲不過。我們在科研中經(jīng)常碰到有些人不愿做具體繁瑣的工作,一心想發(fā)表論文。這種現(xiàn)象很普遍,我自己以前也這樣,但以后要力戒之。第三個求實是關(guān)于做學問的方法,要勇于實踐,不要紙上談兵。就是要‘學而時習之’,就是認識和實踐的不斷循環(huán)往復。學問并不僅僅是淵博的知識,更多的是體驗和感覺。沒有對所做工作的深刻體驗,就難以發(fā)現(xiàn)問題,就難以創(chuàng)新。而這些體驗,從別人的文章里是看不來的,沒有經(jīng)過身體力行的大量實踐,是體會不到的?,F(xiàn)在很多人認為我國沒有自己的處理器,主要是因為工藝水平上不去,因此處理器設(shè)計不應是計算所的事情,而是做微電子設(shè)計的人的工作。

誠然,回顧我們國家的處理器設(shè)計歷史,在80年代后全面落后的一個重要原因是自己的制造工藝落后,導致處理器設(shè)計隊伍整體上垮掉,人員流失。但現(xiàn)在情況發(fā)生了變化,投片已經(jīng)沒有大問題,主要是沒有設(shè)計。而處理器設(shè)計決不僅僅是邏輯設(shè)計。處理器設(shè)計是大系統(tǒng),唯有對包括操作系統(tǒng)、編譯、體系結(jié)構(gòu)、I/O等在內(nèi)的整個計算機有全局的把握才能設(shè)計出高性能處理器。在通用計算機中,操作系統(tǒng)和系統(tǒng)結(jié)構(gòu)設(shè)計的配合尤為重要,有些指令專門是為操作系統(tǒng)設(shè)計的,尤其是在系統(tǒng)安全、存儲管理、原子操作、例外處理等方面。有時候通過對操作系統(tǒng)的分析,了解到一些指令的妙用,體會到設(shè)計者設(shè)置這些指令的初衷,真是讓人拍案叫絕。所以,我一直很慶幸我們采用了兼容的做法,如果自己設(shè)計指令系統(tǒng),沒有十幾年的實踐,是不會完善的。

放眼中國在體系結(jié)構(gòu)、操作系統(tǒng)、編譯方面的綜合力量,比計算所強的不多(我比較佩服的其他單位只有一家),因此計算所做CPU設(shè)計是很有優(yōu)勢的。雖然前幾年的折騰使計算所元氣大傷,但底子還在。在開始做CPU設(shè)計之初,我對這件事情的復雜性估計不足(這是一個深刻教訓),只是領(lǐng)著八、九個研究生做。后來在項目逐漸展開后,發(fā)現(xiàn)現(xiàn)有的人力頂多能做完邏輯設(shè)計,要把通用操作系統(tǒng)啟動起來是遠遠不夠的。無奈之下,只好從原來做機群的組和做嵌入式操作系統(tǒng)的組中調(diào)了幾個操作系統(tǒng)高手過來,事情馬上有了起色。比如,我們要在C模擬器上運行操作系統(tǒng),需要對操作系統(tǒng)內(nèi)核進行裁剪和修改(如去掉一些與主板配置緊密相關(guān)的初始化配量),這種修改沒有對操作系統(tǒng)的深入把握是無法做到的。后來,又從其他地方得到一些人員補充(我現(xiàn)在體會到電影里作戰(zhàn)的指揮員為什么非常重視預備隊)。現(xiàn)在,我們組已經(jīng)有了三五十人的規(guī)模,兵不在多而在于精,這些人全是年輕的干將,素質(zhì)很高,又很玩命。就我目前所做的事情來說,計算所幾乎是“要什么人才有什么人才”。計算所的科研環(huán)境很好,尤其是體現(xiàn)在后勤服務上。

舉幾個小例子:第一個是工作展開后通宵加班多了起來,我們自己因地制宜地在一些桌子上鋪上鋪蓋,搭了幾張簡陋的床。當鄧燕書記知道這種情況后,馬上找人騰出一間小屋子,放了六張床,大大改善了我們加班時的休息環(huán)境。鄧書記還讓人每天為加班的人準備餅干、方便面等方便食品。第二個例子是,隨著工作的不斷深入,組里需要不斷添置新的微機,但機器都是隨用隨買(因為那時沒有經(jīng)驗,不知道要買多少機器)。對此,業(yè)務處的同志們總是全力配合,保證組里及時用上新機器。最快的一次,我在上午11:30向業(yè)務處王玉杰老師提出購機申請,下午1:30機器已經(jīng)送到實驗室。這在一個財務制度健全、審批嚴格的事業(yè)單位是很難想象的,更何況是午休時間。第三個例子是有一次我們急需一塊MatroxG200顯卡,但由于用的是幾年前的產(chǎn)品,跑遍了中關(guān)村也沒有買到。萬般無奈,只得通過EMAIL向所內(nèi)的部分老師緊急求助,熱心的業(yè)務處于天波老師馬上在網(wǎng)絡(luò)上發(fā)布這個消息,不到一個小時,在王貞松老師的幫助下,就找到了這塊顯卡。這至少減掉了我們兩個星期的工作量,因為如果用其他顯卡,我們得自己再寫驅(qū)動程序。有效的后勤保障使我有時候覺得不把事情做好,對不起這些熱心幫助我們的人。

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

下面,我介紹一下Godson的技術(shù)特點。了解了這些技術(shù)特點,就可以了解為什么Godson工作在12.5MHz時就有50MHz的486的性能。Godson的流水線結(jié)構(gòu)是我自己覺得比較得意的地方。設(shè)計的時候沒有參考其他處理器的流水線,完全是憑感覺。Godson流水線包括了若干目前處理器設(shè)計中最先進的技術(shù),如流水線動態(tài)調(diào)度、Tomasulo算法、寄存器重命名、猜測執(zhí)行、精確例外處理、64位的浮點運算部件、CACHE技術(shù)等,并且在某些方面有所創(chuàng)新。流水線設(shè)計中比較困難的兩個問題是例外的處理和相關(guān)的解決。

首先,我們把例外處理與流水線緊密地耦合在一起,在數(shù)據(jù)通路的設(shè)計中例外結(jié)果和正常結(jié)果并行,在執(zhí)行過程中例外結(jié)果和正常結(jié)果不加區(qū)別,只有在指令結(jié)束階段才對例外結(jié)果進行特殊處理。我們的流水線是動態(tài)流水線,采用de-coupled結(jié)構(gòu),控制邏輯分布在每個模塊之中。在流水線的控制中,“讓流水線流起來”是我們設(shè)計的理念。在指令流水線中,數(shù)據(jù)相關(guān)和控制相關(guān)都會引起流水線等待。如后面指令用到前面指令的結(jié)果或后面指令是否執(zhí)行由前面轉(zhuǎn)移指令成功與否決定。

對于因數(shù)據(jù)相關(guān)引起的等待,我們的原則是盡量推遲到不得不等的時候才等。即對于源數(shù)據(jù)未準備好的指令,在指令譯碼和發(fā)射時并不停下來等待數(shù)據(jù)(簡單的靜態(tài)流水線通常在譯碼時停下來等待未準備好的數(shù)據(jù),堵住了后面指令的繼續(xù)執(zhí)行),而是建立數(shù)據(jù)依賴關(guān)系,由功能部件通過偵聽結(jié)果總線解決數(shù)據(jù)相關(guān)的問題。這樣數(shù)據(jù)結(jié)果一出來,等待它的指令馬上可以進行運算,不用經(jīng)過寫回到寄存器再讀出來的過程,而且前面指令的等待不會堵塞后面指令的繼續(xù)執(zhí)行。

對于控制相關(guān),我們也是讓轉(zhuǎn)移分支的指令先猜測地執(zhí)行起來,到不得不停下來時才等待轉(zhuǎn)移目標的確定。如果轉(zhuǎn)移猜測成功就立即繼續(xù)前進,如果轉(zhuǎn)移猜測不成功,就利用例外處理的指令撤銷機制恢復正確現(xiàn)場。流水線設(shè)計中,“簡潔、流暢”是我們追求的目標。前者保證流水級間的控制簡單、延遲少,后者保證流水線的高性能。在我們聯(lián)調(diào)成功后到現(xiàn)在,已經(jīng)對流水線進行了4次較大調(diào)整,每次都更加簡潔、流暢。我想在正式投片前還會有幾次調(diào)整。此外,Godson的浮點運算部件流水線設(shè)計也有自己的特點。

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

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

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

關(guān)于Godson的未來發(fā)展,我們有一個雄心勃勃的計劃。第一步是在目前設(shè)計的基礎(chǔ)上經(jīng)過優(yōu)化后進行標準單元的投片,主頻在200-300MHz左右,爭取2002年完成,用于個人工作站/瘦客戶端PC及電子政務等。第二步是設(shè)計雙發(fā)射64位的結(jié)構(gòu)(目前為單發(fā)射、定點32位、浮點64位),投片主頻為500MHz左右,爭取在2003-2004年完成。用于高性能服務器,也可以搭成機群做高性能計算。第三步爭取在處理器間并行上有所突破,設(shè)計基于Crossbar的大SMP結(jié)點,每個SMP結(jié)點16-64個CPU,用于高性能計算。

在做處理器設(shè)計之前,我們做了近十年的共享存儲系統(tǒng)結(jié)構(gòu)研究,但囿于CPU和操作系統(tǒng),只能紙上談兵,頂多做做軟件實現(xiàn)。現(xiàn)在自己做CPU,可以為所欲為,好像被束縛的手腳一下子得到了自由。如果能夠把我們在共享存儲并行系統(tǒng)方面十來年的積累做到實用系統(tǒng)中去,簡直是爽呆了。如果可能的話,爭取實現(xiàn)串行程序采用多線程技術(shù)自動并行化,這需要編譯、操作系統(tǒng)及系統(tǒng)結(jié)構(gòu)的全面突破。沒做多少事,寫了這么多,是不是有點過分。寫這種東西其實比寫程序還累。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉