龍芯將兩款CPU核開源 助計算機教育從“用”向“造”突破
應用開發(fā)人才充足,底層研發(fā)人才匱乏
本文引用地址:http://www.ex-cimer.com/article/201611/339766.htm龍芯首席科學家胡偉武指出,我國計算機領域的教育更多的還是教學生如何“用”計算機而不是“造”計算機,而且絕大多數高校只能培養(yǎng)應用程序員,而且是對計算機系統(tǒng)底層知之甚少的應用程序員。這直接導致國內IT人才結構失衡,應用開發(fā)型人才充足,但底層基礎系統(tǒng)研發(fā)人才卻極度匱乏,使中國龐大的IT產業(yè)建立在國外軟硬件系統(tǒng)平臺之上——在硬件上,完全依賴國外的X86和ARM,在軟件上,也存在大而不強的現實狀況。
軟件產業(yè)強大與否,并不是取決于該國程序員數量,更不取決于軟件產業(yè)創(chuàng)造的GDP,而在于產業(yè)標準制定權,以及是否擁有核心技術。一流企業(yè)做標準,二流企業(yè)做品牌,三流企業(yè)做產品,掌握了標準的制定權就能獲取高額利潤并立于不敗之地。而國內軟件業(yè)從教學到產業(yè),基本上跟著西方的技術標準走,沒有自己的一套技術標準。像程序員常用的編程語言、編譯器、軟件開發(fā)工具,基本上用的都是國外產品。
軟件產業(yè)大而不強的另一個表現就是產品缺乏核心技術。以我們每天都用的手機和瀏覽器來說,國內各家公司推出了不少瀏覽器,但基本上是國外瀏覽器的“馬甲”,所謂的國產瀏覽器都沒有國人自己編寫的瀏覽器內核。手機操作系統(tǒng)也是如此,雖然很多國產手機都有諸如Emtion、nubia之類的系統(tǒng),但撥開現象看本質,這些還都是安卓操作系統(tǒng)的馬甲,只能算是一個UI(系統(tǒng)界面)。而BAT等互聯(lián)網巨頭推出的操作系統(tǒng),其本質也是基于安卓的二次開發(fā),編寫的代碼僅限于重寫了虛擬機。
類似的例子還有很多,某家以殺毒軟件起家的互聯(lián)網公司,其殺毒軟件的用的是羅馬尼亞的BitDefender引擎。不少廠商隔三差五就會出現于媒體聚光燈下的云解決方案,其實上也是國外開源軟件(Openstack/Xen)的馬甲,有些廠商雖然也貢獻了少量代碼,但含金量遠不及宣傳中那么足。國內有幾十萬JAVA程序員,卻鮮有具備JAVA核心技術——JAVA虛擬機的研發(fā)能力。國內從事瀏覽器應用的團隊數以千計,卻少有掌握瀏覽器底層JS引擎研發(fā)技術,寫QT的也很多,但QT庫卻沒多少人干……國內IT企業(yè)極少參加系統(tǒng)相關標準制定,國內軟件人才向國際開源社區(qū)貢獻的代碼也相對偏少。
因此,雖然中國軟件產業(yè)和互聯(lián)網企業(yè)創(chuàng)造了海量的GDP,演繹了一批造富神話,吸納了大批就業(yè)崗位,但依附于西方技術標準、沒有自己編譯器和軟件開發(fā)工具、應用軟件強而基礎軟件弱已成為中國軟件產業(yè)的內傷。
底層研發(fā)人才匱乏的另一個表現就是圍繞國產硬件平臺的應用開發(fā)能力和適配軟件優(yōu)化能力嚴重不足,國內非常多做手機APP、網游、頁游的程序員,你讓他們在國外技術框架下寫能在X86、ARM芯片上跑的APP、網游、頁游程序,他們沒問題。但你讓他們脫離國外技術框架去給走自主路線的龍芯、申威開發(fā)軟件,就未必能做出來了,至于針對龍芯、申威平臺進行軟硬件磨合優(yōu)化則根本無所適從,缺乏對國產系統(tǒng)架構平臺的適配調優(yōu)能力。由于不掌握從硬件角度進行軟件開發(fā)與調優(yōu)的能力,一旦遭遇基礎軟件系統(tǒng)不完善,就不知該如何解決。在上層應用系統(tǒng)與系統(tǒng)結構的磨合適配方面也存在一定問題——應用開發(fā)對X86架構形成依賴和慣性,而應用設計的不足被X86平臺強大的性能掩蓋。
推行計算機教育改革試點
若要系統(tǒng)能力的培養(yǎng)則需要從硬件開源做起,讓學生有更多機會了解并設計自己的處理器,使學生掌握如何“造”計算機而不是如何“用”計算機,使學生對計算機系統(tǒng)融會貫通——當鼠標點一下屏幕打開一個網頁的過程中,搞清楚有關瀏覽器、圖形系統(tǒng)、操作系統(tǒng)內核等是如何協(xié)同工作的,在完成這些工作過程中指令和數據是如何在硬件系統(tǒng)的CPU、GPU、南北橋中流動的,CPU的微結構中取指、運算、訪存等各個模塊是如何配合的。
對此,中國科學院大學為首的高校聯(lián)合產業(yè)界共同編撰涵蓋本科、碩士、博士的《計算機體系結構》課程。在本科階段,主要強調基礎性和系統(tǒng)性,學習作為軟硬件界面的指令系統(tǒng)結構,包含CPU、GPU、南北橋協(xié)同的計算機硬件結構,CPU的微結構,并行處理結構,計算機性能分析等五部分主要內容。在碩士階段,主要介紹CPU微結構,包括指令系統(tǒng)結構、二進制和邏輯電路、靜態(tài)流水線、動態(tài)流水線、多發(fā)射流水線、運算部件、轉移猜測、高速緩存、TLB、多核對流水線的影響等。在博士階段,主要強調實踐性,通過設計真實的(而不是簡化的)CPU,運行真實的(而不是簡化的)操作系統(tǒng),對結構設計、物理設計、操作系統(tǒng)做到融會貫通。目前,該課程已經在中國科學院大學講授。
將知識融會貫通,就離不開具體實踐,在龍芯將GS132和GS232兩款CPU核向高校和學術界開源后,大學老師可以基于龍芯平臺設計實驗課程,使學生可以在真實的CPU上運行真實的操作系統(tǒng),在龍芯實驗平臺上啟動操作系統(tǒng)并進行性能分析。在流水線設計方面,讓學生把GS132的三級靜態(tài)流水線改造成五級靜態(tài)流水線。在TLB和Cache設計方面,讓學生在五級GS132處理器核上按MIPS32規(guī)范實現TLB及Cache,運行通用操作系統(tǒng),進行有/無Cache的性能分析。在雙發(fā)射結構設計方面,把GS132處理器核改造成雙發(fā)射CPU,進行單發(fā)射和雙發(fā)射性能比較。在動態(tài)流水線設計方面,在GS232基礎上改寫部分模塊(如乘法器、保留站等)進行靜態(tài)單發(fā)射、靜態(tài)雙發(fā)射、動態(tài)雙發(fā)射的性能分析。
此外,龍芯還研發(fā)了CPU實驗平臺、操作系統(tǒng)實驗平臺、并行處理實驗平臺等數款龍芯教學平臺,通過為高校提供完整的線上、線下實驗環(huán)境,助力教學改革和計算機專業(yè)學生的系統(tǒng)能力培養(yǎng),實現“設計真實處理器,運行真實操作系統(tǒng)”。
據了解,復旦大學、南開大學、南京航空航天學院、東北林大、金陵科技學院、大連海洋大學將開展基于龍芯平臺的教育試點。雖然中國計算機人才質量不高、行業(yè)技術原創(chuàng)少、依附跟隨外國技術等問題不是僅僅設計一個專業(yè)課程,增加學生工程規(guī)模的系統(tǒng)實踐就能解決的,但這畢竟是一個好的開始,筆者還是衷心希望本次的計算機教育改革試點能解決部分現存的問題,為國家培養(yǎng)更多的專業(yè)人才。
評論