10月21日,教育部計算機類教學指導委員會、中國計算機學會教育專委會將2016 CNCC期間在山西太原舉辦“面向計算機系統(tǒng)能力培養(yǎng)的龍芯CPU高校開源計劃”活動,在活動中,龍芯中科宣布將GS132和GS232兩款CPU核向高校和學術界開源。
開源的CPU核性能如何?
CPU核也叫微結構,是決定CPU性能、安全、功耗、成本的最重要因素,日常我們所說的雙核、四核、八核芯片,其實是將2、4、8個CPU核的接口互聯(lián)并集成到一片硅片上,像Intel的Haswell、ARM的Cortex A72、AMD的Zen、龍芯的GS464E都是CPU核。在設計CPU的過程中,80%以上的功夫都用在CPU核上,因此,如何設計一個高性能的CPU核可以說是CPU設計中的關鍵技術之一。
目前,除了龍芯、申威、飛騰等老牌設計單位擁有自己設計的高性能CPU核之外,國內大多數(shù)IC設計公司依舊處于購買國外的IP“攢”出一個SOC的階段,擁有自主設計CPU核的單位屈指可數(shù)。而龍芯本次將兩款CPU核向高校和學術界開源,可以使學術界以龍芯的CPU核為基礎開發(fā)產(chǎn)品,并以龍芯的CPU核為模板學習怎樣設計CPU核。
龍芯開源的CPU核為GS132和GS232。GS132為單發(fā)射32位結構,采用三級靜態(tài)流水結構,性能于ARM Cortex-M0/M3/M4相當。主要用于石油、電力、鉆探、智能水表和智能電表。GS232為雙發(fā)射32位結構,采用五級動態(tài)流水線結構,性能于ARM9和ARM11相當,在龍芯1A、1B、1C、1E中使用,主要用于各種嵌入式產(chǎn)品,在智能家電、人造衛(wèi)星、工控等領域都有使用,像HS3700畫質芯片就購買了GS232的授權,該芯片被用于海信的智能電視。
Sun曾經(jīng)將T1、T2開源
1985年,Sun成功研究出了Sparc精簡指令集CPU,再輔助以基于Unix開發(fā)的服務器系統(tǒng),使Sun在工作站和服務器領域嶄露頭角,并逐漸可以對抗惠普和DEC這樣的傳統(tǒng)中式小型計算機。1992年Sun推出了市場上第一臺多處理器臺式機SPARCstation 10 system, 1993年Sun進入財富500強,至2001年Sun在全球擁有五萬雇員,市值超過兩千億美元。
Sun以硬件起家,但成也蕭何,敗也蕭何,對硬件的重視,使Sun忽略了軟件的重要性,特別是沒能對Wintel聯(lián)盟擁有足夠的警惕性。在90年代末,因互聯(lián)網(wǎng)的興起,加上Sun的工作站相對于DEC 的小型機和 IBM 的大型機具有價格優(yōu)勢,這導致雖然Sun的中小企業(yè)市場份額不斷被Wintel蠶食,但由于其工作站可以侵占DEC 和 HP 小型機的市場,其盈利模式得以延續(xù)。但在互聯(lián)網(wǎng)泡沫破裂后,加上Wintel聯(lián)盟的傾軋,Sun服務器和工作站業(yè)務則難以為繼,僅2002年上半年就營業(yè)額同比跌至3稱,并從2001年的盈利9億美元,跌至虧損5億美元,隨后Sun一蹶不振,在2009年被甲骨文以74億美元收購。在被收購前,也許是為了放手一搏,或又是為了其他什么原因,Sun將UltraSparc T1、T2開源。
T1和T2到底如何呢?根據(jù)知乎網(wǎng)友“迪迦奧特曼”介紹,Sun開源了全套的RTL代碼……拿著Sun開源的那套東西,做一些自定義修改,可以跑FPGA。學術圈里面已經(jīng)有幾個拿著OpenSPARC T1成功流片的項目,所以流片是肯定可行的…。.不過T1、T2單核性能非常差,T1相當于上世紀80年代末期的水平,而T2相當于90年代早期的水平。所以千萬不要指望T1和T2能有什么商業(yè)競爭力。OpenSPARC T1/T2現(xiàn)在最大的價值是幫助學術圈中的研究者們快速搭建一個原型系統(tǒng),并且能感受一下2002~2005年時的工業(yè)級代碼長什么樣子。知乎網(wǎng)友“迪迦奧特曼”還表示,T2的源碼存在BUG,至于是故意埋進去的,還是開源的時候沒有處理好導致的無心之失,他就不知道了。
另外,據(jù)說國防科大在充分借鑒T1和T2的源代碼后,先后開發(fā)出了飛騰1000和飛騰1500,兩款芯片分別被用于天河1號和天河2號。
IBM的OpenPOWER
Power誕生于1990年,并斬獲過多項世界第一——全球第一個雙核CPU,全球第一款刀片服務器CPU,第一個戰(zhàn)勝國際象棋冠軍加里·卡斯帕羅夫的電腦深藍所采用的CPU,第一個量產(chǎn)主頻超過5G的CPU,第一個高超線程的CPU,以及第一個5000針的CPU,以及第一個封測成本比硅片成本還高的CPU,第一個單芯片量產(chǎn)價格突破10萬美元的CPU.。..。.其應用范圍曾經(jīng)涵蓋過小型、中型、大型主機,從高端到低端的工作站都可以看見Power的身影。
此外,Power還曾占據(jù)服務器市場三分之二的市場份額。而IBM也憑借Power鞏固了自己科技巨人的地位,不僅在CPU研發(fā)上有著亂序執(zhí)行的基礎框架、寄存器重命名等一些列先驅性貢獻,在科研上曾經(jīng)一度成果斐然——在2001年,IBM獲得美國專利和商標局授權專利數(shù)量高達3411項,比HP、Intel、Sun、Microsoft、Compaq、Dell、Apple、EMC、Oracle、EDS、Accenture和AOL在內的12家最大的美國IT業(yè)公司加在一起還要多。
但就在IBM和Power芯片光芒四射的同時,Intel卻利用與微軟結成聯(lián)盟,并充分借力戴爾、康柏等整機廠,以Wintel聯(lián)盟的方式在市場上大殺四方,加上IBM太過于任性,更傾向于服務土豪用戶,沒能細分和精耕市場,對市場和研發(fā)的綜合掌握能力都不及Wintel,使Power空有一身高性能卻難以抵擋Wintel聯(lián)盟的侵蝕——從PC到工作站、服務器Power、Sparc等架構CPU的市場份額逐步被X86架構CPU蠶食。
與此同時,由于軟件廠商若要兼容多種架構CPU的成本越來越高,造成軟件廠商開始逐步放棄兼容一些架構的CPU——Power、Mips、Sparc、Alhpa等架構CPU先后被軟件廠商拋棄,而原本性能最弱的X86芯片則依靠Wintel聯(lián)盟和軟件生態(tài)的優(yōu)勢笑到了最后。即便是曾經(jīng)占據(jù)三分之二市場份額的服務器領域,低端服務器已然被Intel的X86芯片侵占,Power唯有在對可靠性、穩(wěn)定性要求非常高,在決策上也非常保守的使用場景下,比如銀行所采用的高端服務器市場尋找存在感。
正是昔日曾經(jīng)輝煌的Power有著日漸被邊緣化的趨勢,如果IBM依然完全獨占Power,其他IT公司根本不會基于Power構建基礎軟硬件。因此,IBM選擇了聯(lián)合Google、NVIDIA、TYAN、Mellanox成立了OpenPOWER聯(lián)盟和OpenPOWER基金會試圖力挽狂瀾,旨在通過開放合作的模式,將IBM的Power硬件資產(chǎn)與軟件堆棧,以及第三方聯(lián)盟伙伴的軟件堆棧深度結合,在芯片設計、系統(tǒng)設計與開源軟件三個層面推動Power生態(tài)環(huán)境的發(fā)展與壯大。
不過,相對于Sun開源T1、T2后,大家都可以免費下載源碼不同,要獲得Power的源碼,要付出不菲的代價,以2014年IBM向中國大陸中晟宏芯授權Power8源代碼為例,為了拿到Power的全套代碼和工具,據(jù)小道消息稱,中方為此支付了2億美元左右的費用。
學術界將收益于龍芯CPU開源
一直以來,我國計算機領域的教育更多的還是教學生如何“用”計算機而不是“造”計算機,這直接導致國內IT人才結構失衡,應用開發(fā)型人才充足,但底層基礎系統(tǒng)研發(fā)人才卻極度匱乏,使中國龐大的IT產(chǎn)業(yè)建立在國外軟硬件系統(tǒng)平臺之上。
龍芯將CPU核向高校和學術界開源,則給予在校大學生一個很好的學習實踐平臺——龍芯中科資助大學老師基于龍芯平臺設計實驗課程,使學生可以在真實的(而不是簡化的)CPU上運行真實的(而不是簡化的)操作系統(tǒng),在龍芯實驗平臺上啟動操作系統(tǒng)并進行性能分析。在流水線設計方面,讓學生把GS132的三級靜態(tài)流水線改造成五級靜態(tài)流水線。在TLB和Cache設計方面,讓學生在五級GS132處理器核上按MIPS32規(guī)范實現(xiàn)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)實驗平臺、并行處理實驗平臺等數(shù)款龍芯教學平臺,通過為高校提供完整的線上、線下實驗環(huán)境,助力教學改革和計算機專業(yè)學生的系統(tǒng)能力培養(yǎng),實現(xiàn)“設計真實處理器,運行真實操作系統(tǒng)”。
總之,正如知乎網(wǎng)友“迪迦奧特曼”對OpenSPARC的評價:OpenSPARC T1/T2現(xiàn)在最大的價值是幫助學術圈中的研究者們快速搭建一個原型系統(tǒng),并且能感受一下2002~2005年時的工業(yè)級代碼長什么樣子。龍芯將兩款CPU核開源的影響和作用也大致與OpenSPARC類似。
助推軟件生態(tài)建設
目前,在龍芯3A3000已經(jīng)成功流片的情況下,就黨政軍辦公市場而言,龍芯最大的問題已經(jīng)不是CPU的性能不夠用,而是缺乏軟件生態(tài)的支持,而軟件生態(tài)建設單憑龍芯自己是很難做起來的,必須依靠眾人拾柴火焰高的模式,發(fā)動合作伙伴、開源社區(qū)、以及創(chuàng)客群體共同建立。這時候適當?shù)膶煽頒PU核向高校和學術界開源,有助于讓廣大在學生學習如何圍繞龍芯進行開發(fā),在莘莘學子畢業(yè)后,自然能掌握圍繞龍芯進行開發(fā)的相關技能,這有助于龍芯軟件生態(tài)建設。
不過,將CPU核開源并不意味著一定就能把生態(tài)建立起來,以往也有一些IT公司將自己的CPU開源,比如SUN就曾經(jīng)將自己的CPU開源,國防科大還下載了源代碼,并以此為基礎開發(fā)了飛騰1000和飛騰1500,這兩款CPU還被用于天河1號和天河2號。不過即便如此,也無法挽救SPARC逐漸被邊緣化的命運,其生態(tài)至今也沒能建立起來。
在去年年底,ARM將Cortex-M0處理器開源,并以優(yōu)惠的授權費幫助初創(chuàng)廠商加快芯片開發(fā)進程。另外,還有risc-v這樣的開源產(chǎn)品,而且有越來越火的趨勢——linux、gcc、llvm甚至bsd類操作系統(tǒng)都開始支持risc-v.。..。. 正由于開源的CPU核并非只有龍芯,單純希望依靠將CPU核開源就能建起軟件生態(tài)的想法顯然是不切合實際的,要對生態(tài)建設起到積極作用,一方面需要長時間的持續(xù)投入,另一方面也需要企業(yè)、高校聯(lián)合協(xié)同,密切配合。
結語
龍芯之所以將兩款CPU核開源,一方面是為了配合國家計算機專業(yè)課程的教育改革,另一方面也是為了培養(yǎng)一批能給龍芯做基礎軟硬件開發(fā)的新鮮血液,并借此豐富龍芯的軟件生態(tài)和產(chǎn)業(yè)鏈。不過,最后究竟能取得怎樣的效果,還有待時間的檢驗。