據(jù)公開消息,龍芯和飛騰最新的產(chǎn)品都與去年年底開始流片,也就是說,新產(chǎn)品即將與國人見面。那么,在飛騰的ARM芯片和龍芯3A3000即將完成流片之時,筆者將從自主知識產(chǎn)權(quán)、裸CPU性能和軟件方面對飛騰和龍芯上一代產(chǎn)品——飛騰1500A和龍芯3A2000做一個對比,特別是之前有媒體對比龍芯3A2000和飛騰1500A總體上比較客觀,但在局部也有一些紕漏,筆者趁機在此做一下修正。
|先從自主知識產(chǎn)權(quán)談起
檢驗自主可控的標(biāo)準(zhǔn)——信息安全不受制于人,產(chǎn)業(yè)發(fā)展不受制于人。因此,這就必須做到具有指令集的發(fā)展權(quán)、微結(jié)構(gòu)是自主設(shè)計、利潤不受制于人等要素。
指令集的發(fā)展權(quán)
龍芯的指令集是loongISA,共有共1907條指令。
源自MIPS:
216條MIPS基礎(chǔ)指令,獲得永久授權(quán)。
311條DSP指令,獲得永久授權(quán)。
自主指令:
MIPS基礎(chǔ)指令擴(kuò)展——148條loongEXT,
虛擬機擴(kuò)展——5條loongVM指令,
二進(jìn)制翻譯擴(kuò)展——213條loongBT,
向量指令擴(kuò)展——1014條loongSIMD
顯而易見,龍芯獲得的是永久授權(quán),并擁有自行擴(kuò)展指令集的權(quán)力。另外龍芯還就此申請了100+專利。而在MIPS公司破產(chǎn)后,被Imagination收購,雖然在嵌入式芯片方面有P5600這樣的產(chǎn)品,但至今卻未曾開發(fā)高性能CPU,有步惠普收購康柏進(jìn)而獲得Alhpa的后塵之趨勢。
這直接導(dǎo)致龍芯是MIPS陣營里唯一的高性能CPU,加上龍芯不失時機的向開源組織捐獻(xiàn)了一批機器,致使一些開源軟件以龍芯作為MIPS的代表做適配。
因此,在Imagination發(fā)展力度小+龍芯獲得MIPS永久授權(quán)+自行擴(kuò)展指令且申請專利+開源軟件針對龍芯做適配,共同導(dǎo)致龍芯在指令集上受MIPS的鉗制已然微乎其微,基本可以為認(rèn)為走上了單飛的道路。
而國內(nèi)ARM陣營IC設(shè)計公司僅僅能購買ARM64指令集,而無法買到ARM32位指令集授權(quán),而且ARM64指令集授權(quán)期限為5年,沒有自主擴(kuò)展的權(quán)力,也僅僅能用于設(shè)計服務(wù)器芯片。
微結(jié)構(gòu)是否自主設(shè)計
龍芯3A2000的微結(jié)構(gòu)是GS464E,芯片代碼均自主設(shè)計,除標(biāo)準(zhǔn)單元和Memory Compiler生產(chǎn)的RAM之外,不存在第三方IP。
而飛騰1500A的微結(jié)構(gòu)是ARM Cortex A57。由于芯片的安全性、性能、功耗很大程度上取決于微結(jié)構(gòu),因此很難說飛騰1500A符合安全可控和自主知識產(chǎn)權(quán)的要求。當(dāng)然,也有網(wǎng)絡(luò)消息稱飛騰1500A用的是飛騰自主設(shè)計的“小米”,與“火星”、“地球”是同一個微結(jié)構(gòu),但筆者認(rèn)為此消息為謠傳,具體原因在下文分析。
利潤不受制于人
購買ARM指令集授權(quán)的價格非常昂貴,據(jù)筆者了解僅僅ARM64指令集每5年的授權(quán)費就高達(dá)上千萬美元乃至近億美元。而恰恰是如此高昂的授權(quán)費致使由U.C. Berkeley等幾個大學(xué)推出RISC-V指令集,Google、惠普、Oracle、西部數(shù)據(jù)等公司成立RISC-V基金會的原因——
RISC-V指令集是一個沒有專利問題和沒有歷史包袱的全新指令集,并且以BSD許可證發(fā)布。任何公司都可以在自己的產(chǎn)品中免費使用,而修改也無需再開源。
購買ARM IP核授權(quán),比如ARM的A53或A57,集成自己的SOC,這種做法雖然能依附于AA體系,有利于市場化運營,能賺快錢,但在利潤方面也被外商控制。因為在購買IP要支付授權(quán)費,每生產(chǎn)一片芯片還要支付專利費。而且每個環(huán)節(jié)做什么,有多少利潤,在AA體系中已經(jīng)形成潛規(guī)則,國內(nèi)IC設(shè)計公司依附于AA體系基本上淪為外商的馬仔。這也是國內(nèi)ARM陣營IC設(shè)計公司雖然營業(yè)收入不低,但利潤普遍不高的原因之一。相比之下,龍芯不僅不需要向MIPS公司購買IP,反而可以對外出售IP,海信、海爾就向龍芯購買了200萬套IP用于智能家電和機頂盒。
下圖為懶人包,簡要概括了龍芯3A2000和飛騰1500A在知識產(chǎn)權(quán)方面的差別。
飛騰1500A的微結(jié)構(gòu)是A57
有網(wǎng)絡(luò)消息稱飛騰1500A用的是飛騰自主設(shè)計的“小米”,與“火星”、“地球”是同一個微結(jié)構(gòu),不過筆者認(rèn)為此消息為謠傳,主要有以下幾點:
1、時間上來不及
眾所周知,如果一款CPU從頭開始設(shè)計,研發(fā)周期一般要3年,而如果像海思、展訊那樣購買ARM的IP授權(quán)做集成,研發(fā)周期也要1年至2年,而飛騰在購買ARM 64位指令集授權(quán)后,不到2年的時間里就拿出了飛騰1500A,就開發(fā)周期來看,飛騰1500A這款芯片很有可能是直接采用ARM Cortex A57。
2、飛騰1500A與“火星”的SPEC2006測試成績差距過大
根據(jù)第三方測試,飛騰1500 spec06測試的整數(shù)為10(@1.8G),換算一下就是5.5/G,而根據(jù)飛騰在2015年的發(fā)布后上公布的消息,“小米”的測試結(jié)果是9.6/G,雖然不談測試環(huán)境的SPEC測試跑分都是耍流氓——因為不同的測試環(huán)境的原因,SPEC測試分?jǐn)?shù)會有一定浮動,但74.5%的跑分差距實在過于駭人——即便是技術(shù)實力強如Intel,在擁有ICC的神優(yōu)化,以及向量指令優(yōu)化等因素的情況下,也只能是自己CPU的spec06測試整數(shù)跑分增加40%。因此,筆者認(rèn)為飛騰1500A的微結(jié)構(gòu)并非“小米”。
3、時間對不上
據(jù)公開消息,飛騰1500A在2014年流片,2015年與體制內(nèi)單位簽訂的合同標(biāo)為1000萬元,而“小米”和“火星”目前還依舊在流片。在發(fā)布會上,火星的SPEC06測試也只有模擬器成績,而非實物。
4、ARM在指令集授權(quán)中會配套一個內(nèi)核
雖然飛騰和ARM的合同上沒有購買IP內(nèi)核授權(quán)的內(nèi)容,但由于ARM在做指令集授權(quán)的時候都會給出配套的一個內(nèi)核參考。因此,有人以合同沒寫明購買IP核,所以飛騰1500A的微結(jié)構(gòu)為自主設(shè)計的辯解無法成立。
當(dāng)然以上都是筆者的猜測。鑒于飛騰1500A已經(jīng)商用,希望飛騰能公開飛騰1500A的用戶手,提供內(nèi)部寄存器等定義資料。效法龍芯將CPU的用戶手冊和技術(shù)資料放在網(wǎng)上供國人自由下載,以打消國人的疑惑。
| 裸CPU性能指標(biāo)對比
裸CPU性能將用單線程性能、多線程性能以及訪存性能等主要指標(biāo)進(jìn)行對比。
單線程性能
龍芯3a2000的微結(jié)構(gòu)為GS464E,根據(jù)中電集團(tuán)的報告顯示:
龍芯GS464E在使用GCC4.8編譯器跑分為:整數(shù)768/G、浮點1153/G;
龍芯GS464E使用LCC編譯器跑分為:整數(shù)828/G、浮點1578/G。
而龍芯的主頻恰恰為1G,因此,GCC4.8編譯器跑分為:整數(shù)768、浮點1153;LCC編譯器跑分為:整數(shù)828、浮點1578。
而因為測試環(huán)境不同,ARM Cortex A57的測試分?jǐn)?shù)則比較多,華為在麒麟950發(fā)布會上就給出A57 Spec2000整數(shù)跑分780/G的測試成績。
而根據(jù)國外網(wǎng)站對三星7420的實測,筆者將12項測試成績累乘,再開12次方后得到分值為1376.8分,再除以7240中A57 2.1G的主頻,得到跑分為655/G。而根據(jù)另一個測試,A57的測試跑分甚至不足600/G,浮點跑分為700+/G。
這些測試分?jǐn)?shù)差距的原因就在于不同的測試環(huán)境——畢竟開啟auto parallel會將原本單線程執(zhí)行的程序并行化給多個處理器執(zhí)行,導(dǎo)致SEPC2006整數(shù)分?jǐn)?shù)增益。另外,編譯器的不同,是否定制編譯優(yōu)化策略等都會對跑分結(jié)果造成很大影響。
考慮到華為公布的SPEC分?jǐn)?shù)一向偏高——華為公布的A72 spec2000 整數(shù)跑分為820/G,而根據(jù)國外網(wǎng)站實測,麒麟950的實測成績,A72 spec2000 整數(shù)跑分為749/G。筆者猜測,華為公布的A57 spec2000 780/G, A72 spec2000 820/G,A57 spec2006 6/G,A72 spec2006 6.7/G很有可能是使用ARMCC編譯器,并在最優(yōu)測試環(huán)境下,得出的結(jié)果。
另外,就某網(wǎng)文中的SPEC06測試成績而言,A57 sepc06 整數(shù)5.5/G,GS464E sepc06 整數(shù)6.5/G都并非在最優(yōu)環(huán)境下測試的分?jǐn)?shù)。根據(jù)華為公布的數(shù)據(jù),A57 sepc06整數(shù)為6/G,A72為6.7/G。據(jù)筆者了解,龍芯GS464E sepc06整數(shù)最優(yōu)環(huán)境下測試成績?yōu)?.5/G。
因此,筆者選擇一個適中的測試跑分:整數(shù)655/G,浮點分?jǐn)?shù)因為華為和國外網(wǎng)站都沒有公布跑分,筆者以上圖測試中的700+/G適當(dāng)上浮。飛騰1500A的主頻為1.8G,那么最后的測試結(jié)果為整數(shù)1179,浮點1300+。
很顯然,雖然GS464E強于A57,但由于飛騰1500A在主頻上比龍芯3A2000高80%,使得最終在整數(shù)跑分上,龍芯3A2000即便使用LCC編譯器測試成績,面對飛騰1500A依舊略遜一籌。
多線程性能和訪存性能對比
在同使用GCC編譯器下,飛騰1500A(@1.8GHz)SPEC CPU 2000 rate成績?yōu)椋赫麛?shù)41.5,浮點34.
而龍芯3A2000(@1GHz)的成績?yōu)椋赫麛?shù)30.9,浮點43.9。
在使用LCC編譯器后龍芯3A2000(@1.0GHz)整數(shù)34,浮點60.7。
很顯然,龍芯3A2000雖然在主頻上處于劣勢而導(dǎo)致在整數(shù)上低于飛騰1500A,但在浮點性能上卻異常強悍。
至于訪存性能,則如下圖,優(yōu)劣一目了然。
飛騰1500A (1.8GHz,四核) VS. LS-3A2000 (1.0GHz,四核):
| 軟件生態(tài)情況
龍芯和飛騰在軟件生態(tài)上選擇了完全不同的道路:龍芯選擇嘗試主導(dǎo)生態(tài)建設(shè),并在軟件上投入了很多精力。而飛騰選擇兼容ARM生態(tài),采取跟隨ARM產(chǎn)業(yè)生態(tài)的策略。
國內(nèi)支持龍芯的操作系統(tǒng)有中標(biāo)麒麟、普華軟件、深度軟件、開源社區(qū)(Fedora、CentOS、Debian、Loongnix社區(qū)版),國內(nèi)支持飛騰的操作系統(tǒng)有中標(biāo)麒麟和Ubuntu。
辦公軟件
實際測試顯示,在政府機關(guān)使用最為廣泛的辦公軟件上,使用龍芯3A2000打開一個1M的word文件,需要2秒,而使用飛騰1500A則需要3秒;打開一個10M的word文件,龍芯3A2000需要3.5秒,而飛騰1500A需要8.2秒。在PPT的使用上,龍芯也處于優(yōu)勢,打開同樣一個PPT,龍芯3A2000所消耗的時間幾乎只有飛騰1500A的一半。不過,在電子表格上飛騰具有優(yōu)勢,特別是在打開20M的電子表格的情況下優(yōu)勢異常明顯。
JAVA虛擬機
JAVA虛擬機(JDK)是服務(wù)器上的重要平臺軟件。飛騰的JAVA虛擬機依賴于國外的開源軟件代碼,國內(nèi)沒有開發(fā)團(tuán)隊,一旦出現(xiàn)深層次問題無法維護(hù)。
龍芯在JAVA虛擬機有核心開發(fā)隊伍,并為開源社區(qū)貢獻(xiàn)8.4萬行代碼,累計已解決8個在X86平臺同樣存在的JAVA共性問題,經(jīng)過實際用戶檢驗,能夠保證企業(yè)級的穩(wěn)定性。
瀏覽器
瀏覽器是桌面操作系統(tǒng)上的重要平臺型軟件。ARM的瀏覽器(Chrome、Firefox)國內(nèi)沒有專業(yè)開發(fā)團(tuán)隊,飛騰則因為跟隨策略在此碰壁。
龍芯在兩大瀏覽器(Chrome、Firefox)平臺有專門開發(fā)團(tuán)隊,而且做了大量工作:
在HTML5、WebGL、WebRTC、Flash以及各類插件上有著專業(yè)支持;
在Firefox瀏覽器社區(qū),龍芯是ionMonkey開發(fā)的重要力量;
在Chrome社區(qū),龍芯是社區(qū)的全球14家主要成員廠商之一,是JS引擎的核心開發(fā)廠商,累計向社區(qū)貢獻(xiàn)4萬行代碼,因此龍芯在JS引擎性能對比上自然可以獲得更大的優(yōu)勢,具體性能對比如下圖:
從實際測試結(jié)果中可以看出,雖然在性能上龍芯3A2000和飛騰1500A差距不大,但龍芯卻能在JS引擎性能對比上大幅優(yōu)于飛騰,其原因就在于軟硬件整合優(yōu)化——用戶最終的體驗是軟件+硬件,相對于飛騰在軟件上跟誰ARM,只能是別人給你什么,你用什么,而龍芯則恰恰相反,選擇了自建生態(tài),這使得龍芯可以獲得軟硬件磨合優(yōu)化的機會。
正如數(shù)年前那個CPU性能相對有限的時代,蘋果能依靠基于FreeBSD/Unix二次開發(fā)的IOS,基于ARM的授權(quán)修改/開發(fā)CPU,使蘋果可以對自己開發(fā)的CPU和操作系統(tǒng)進(jìn)行系統(tǒng)優(yōu)化,并依靠軟硬件優(yōu)化取得優(yōu)于安卓用戶體驗。同理,在國產(chǎn)CPU性能普遍不強的當(dāng)下,對軟件的優(yōu)化和軟硬件磨合相對于硬件上5%—10%的提升更為關(guān)鍵。因此,相對于黨政軍辦公常用的軟件和用戶體驗而言,龍芯相對于飛騰的優(yōu)勢,則如同早年蘋果相對于安卓的優(yōu)勢。
| 結(jié)語
可以看出,在硬件方面,飛騰得益于主頻比龍芯高80%,因而在整數(shù)上具有優(yōu)勢;而龍芯的浮點性能指標(biāo)頗為亮眼;在訪存性能上,龍芯則有很大的優(yōu)勢。在軟件上,雖然飛騰可以跟隨ARM產(chǎn)業(yè)生態(tài)發(fā)展,傍上了ARM這個大款,但就黨政軍辦公而言,龍芯相對于飛騰更有優(yōu)勢。
評論
查看更多