如何看待龍芯對外公開的LoongArch指令集?:先簡單總結(jié)一下胡偉武報(bào)告中關(guān)于LoongArch的內(nèi)容: 1、LoongArch 是全新的指令集,不是在 MIPS 上:-loongarch,龍芯,
先簡單總結(jié)一下胡偉武報(bào)告中關(guān)于LoongArch的內(nèi)容:
1、LoongArch 是全新的指令集,不是在 MIPS 上做的擴(kuò)展。包含基礎(chǔ)指令 337 條、虛擬機(jī)擴(kuò)展 10 條、二進(jìn)制翻譯擴(kuò)展 176 條、128 位向量擴(kuò)展 1024 條、256 位向量擴(kuò)展 1018 條,共計(jì) 2565 條原生指令。相對于MIPS,摒棄了部分不適合現(xiàn)代CPU的指令,又做了大量改進(jìn)和擴(kuò)展。例如單條指令支持的立即數(shù)從MIPS的最大16位擴(kuò)展到最大24位,分支跳轉(zhuǎn)偏移也從64K擴(kuò)展到1M字節(jié),以及尋址空間從固定分段改變?yōu)閱我黄矫娴,都有效減少了編譯結(jié)果的目標(biāo)指令條數(shù)和訪存次數(shù),提高了效能。
2、LoongArch 仍為RISC指令集,32位定長指令、32個通用寄存器、32個浮點(diǎn)/向量寄存器。MIPS只有3種指令格式,LoongArch重新設(shè)計(jì)了指令格式 ,使可用的格式多達(dá)10種 ,其包含3種無立即數(shù)格式和7種有立即數(shù)格式。重新設(shè)計(jì)的指令格式可以包含更多的指令槽,有利于以后的長遠(yuǎn)發(fā)展。LoongArch的指令系統(tǒng)在設(shè)計(jì)時,以先進(jìn)性、擴(kuò)展性、兼容性為目標(biāo),其中兼容性是指融合MIPS/x86/ARM指令系統(tǒng)的主要特點(diǎn),高效支持二進(jìn)制翻譯。
3、龍芯提供基于 LoongArch 的 Linux 操作系統(tǒng),在此操作系統(tǒng)中除了運(yùn)行原生的 LoongArch 程序,還能通過翻譯的方式兼容 MIPS、x86、ARM、RISC-V 這幾種指令集的 Linux 程序。使用LoongArch翻譯任何指令時大致流程都相同,只是隨著指令系統(tǒng)的差異而在效率上也會有所差異。其中MIPS盡管二進(jìn)制編碼與LoongArch不同,但大部分LoongArch基礎(chǔ)指令仍與MIPS相似,因此翻譯開銷極小。對ARM和RISC-V的翻譯效率也比x86更高。龍芯還會提供以LoongArch為目標(biāo)架構(gòu)的編譯器,已知編譯器已經(jīng)實(shí)現(xiàn)把 MIPS 匯編代碼編譯為 LoongArch 二進(jìn)制,內(nèi)嵌MIPS匯編的C/C++源代碼甚至不用修改就能編譯。
4、龍芯的二進(jìn)制翻譯與 qemu 的軟件翻譯不同,龍芯是軟硬件結(jié)合方式。例如對x86標(biāo)志寄存器的支持、RISC-V原子同步指令的支持、內(nèi)存地址虛實(shí)轉(zhuǎn)換的支持等都有專門的硬件實(shí)現(xiàn)。qemu 軟件跨體系翻譯一般只有 5% ~ 20% 的性能,龍芯的翻譯相對于 qemu 在整數(shù)運(yùn)算方面有數(shù)倍提升,而在浮點(diǎn)運(yùn)算方面有數(shù)十倍的性能提升,這都是CPU中增加專門的硬件處理帶來的性能改善。
5、翻譯執(zhí)行 MIPS 目標(biāo)為 100% 的原生性能,翻譯執(zhí)行 ARM 目標(biāo)為 90% 原生性能,翻譯執(zhí)行 x86 目標(biāo)為 80% 原生性能,并可通過某種方式安裝運(yùn)行 Windows,對 Windows 的整體翻譯執(zhí)行目標(biāo)為 70% 原生性能。
6、從當(dāng)前已有的測試結(jié)果來看,把 C/C++ 代碼編譯為 MIPS 和 LoongArch 分別運(yùn)行測試,LoongArch 比 MIPS 有近 17% 的性能提升,翻譯執(zhí)行 MIPS 平均性能在 100% 左右。
7、龍芯 2020 年之后生產(chǎn)的 CPU 都不再原生支持 MIPS,但因?yàn)榭梢?100% 翻譯執(zhí)行 MIPS,所以以前的 MIPS 生態(tài)仍然完全兼容,但以后會以發(fā)展 LoongArch 原生生態(tài)為主。
8、將會組建自主指令系統(tǒng)聯(lián)盟,聯(lián)盟成員免費(fèi)使用 LoongArch 指令集,聯(lián)盟成員可以免費(fèi)獲得龍芯的低于 ARM A53 性能的那些CPU核心設(shè)計(jì),聯(lián)盟成員之間不發(fā)生指令系統(tǒng)訴訟(防止Intel/ARM等擠進(jìn)來,它們一旦加入就相當(dāng)于x86/ARM指令集充公了)。
再說說個人的看法:
龍芯推出LoongArch是有多年準(zhǔn)備的,并非倉促而為,二進(jìn)制翻譯部分和向量加速部分,都有10年以上的技術(shù)儲備。但以前并未下定決心設(shè)計(jì)自己的指令集,而是想以MIPS為基礎(chǔ)發(fā)展自己獨(dú)立生態(tài)。但隨著時間推移,各種情況發(fā)生變化,龍芯的發(fā)展路線也必須調(diào)整,從而利用多年的積累,推出了獨(dú)立的指令集LoongArch。不能因?yàn)辇埿粳F(xiàn)在使用LoongArch,就以當(dāng)下的視角去否定龍芯曾經(jīng)的MIPS路線,而應(yīng)該以當(dāng)時的實(shí)際情況去看待當(dāng)時發(fā)生的事情。龍芯并未否定MIPS授權(quán)的積極作用,例如MIPS寬松的授權(quán)模式促進(jìn)了龍芯的獨(dú)立發(fā)展,例如不需面對針對MIPS的任何知識產(chǎn)權(quán)訴訟。龍芯推出LoongArch也并非完全與MIPS分道揚(yáng)鑣,而是以20年來對MIPS的實(shí)現(xiàn)經(jīng)驗(yàn)做到了平均100%效率的翻譯執(zhí)行MIPS指令,以前及將來的MIPS軟件都可以完全兼容,不會因?yàn)楦鼡Q了指令系統(tǒng)就出現(xiàn)生態(tài)真空的情況。令龍芯下定決心推出新的指令系統(tǒng),個人認(rèn)為有以下的幾點(diǎn)原因:
1、時至今日,MIPS的設(shè)計(jì)顯得有些老邁,不能完全適合現(xiàn)代的CPU設(shè)計(jì)和操作系統(tǒng),例如對實(shí)現(xiàn)睿頻不友好、跳轉(zhuǎn)偏移量范圍小、部分老舊指令拉低性能等等。MIPS經(jīng)過龍芯多年擴(kuò)展,傳聞指令槽已經(jīng)用完,會影響今后的發(fā)展。龍芯想要進(jìn)一步提高性能,就需要對指令系統(tǒng)進(jìn)行較大改動,并預(yù)留足夠今后繼續(xù)擴(kuò)展的指令槽。事實(shí)證明,龍芯對指令系統(tǒng)的重新設(shè)計(jì)非常成功,在仿真測試中,只是修改了CPU譯碼部分,其他部分完全沒變,LoongArch就比MIPS平均提高了超過16%的性能;
2、MIPS再弱小,也會對龍芯造成很大的干擾。在使用原生MIPS指令集的時候,龍芯無法對外授權(quán)自己的擴(kuò)展指令集,因?yàn)樽鳛榛A(chǔ)的MIPS指令集龍芯沒有權(quán)利對第三方授權(quán)。龍芯甚至不能公開指令集詳細(xì)規(guī)范的手冊,因?yàn)闀址钢鳈?quán)。以MIPS為基礎(chǔ)時,龍芯指令集手冊大部分內(nèi)容只能對著MIPS的指令集手冊照抄,即使只有擴(kuò)展指令集的內(nèi)容,也不可避免地會引用到MIPS基礎(chǔ)指令集的相關(guān)說明,這很為難。還有更深層的原因,龍芯大量的擴(kuò)展指令被用在軍方項(xiàng)目中,會有保密的需要,甚至早年開放過的LoongMMI擴(kuò)展,現(xiàn)在外界也沒有了詳細(xì)的資料。在常規(guī)項(xiàng)目中,大量的向量計(jì)算只能使用MIPS的MSA指令集,而MSA的詳細(xì)規(guī)范也只能去看MIPS手冊,龍芯不能越俎代庖。另外,在當(dāng)前的國際形勢下,使用來自美國的指令集,也會引起客戶的疑慮,很難向客戶對CPU自主程度進(jìn)行解釋;
3、雖然開源社區(qū)對MIPS的貢獻(xiàn)越來越少,但相對于龍芯,開源社區(qū)更認(rèn)可MIPS是不爭的事實(shí)。盡管各種重要的基礎(chǔ)軟件項(xiàng)目的MIPS分支,幾乎已經(jīng)是龍芯和其合作伙伴們在維護(hù),但使用到龍芯擴(kuò)展指令的代碼卻很少。當(dāng)然這也這龍芯無法公開自己的擴(kuò)展指令集有很大關(guān)系,不能公開指令集的原因上面有提到?傊埿居糜谔嵘阅艿臄U(kuò)展指令幾乎沒有用武之地,影響了性能的發(fā)揮,這也是民間測試往往達(dá)不到的龍芯官方分值的重要原因。而使用自己重新設(shè)計(jì)的指令集,就不需要再考慮代碼是否與MIPS標(biāo)準(zhǔn)兼容,也與某些保密項(xiàng)目沒有直接關(guān)系,不再有其它的顧忌,只要完成了知識產(chǎn)權(quán)風(fēng)險(xiǎn)評估,就可以開放完整的指令集手冊,易于社區(qū)開發(fā)人員的參與,形成合力。對開源項(xiàng)目建立新架構(gòu)的分支,對任何開源項(xiàng)目都能擁有極高的自主權(quán),可以毫無限制地優(yōu)化代碼性能,減少因?yàn)檐浖䞍?yōu)化不夠而導(dǎo)致CPU性能發(fā)揮不好的問題;
4、當(dāng)年美國寧愿把MIPS剝離,也不準(zhǔn)賣給中國,在當(dāng)時可以理解為美國限制中國發(fā)展的常規(guī)手段。但近年國際情況的變化加劇,中美對抗已經(jīng)明朗化,MIPS所有權(quán)不在中國,就可能隨時變成會爆炸的暗雷。盡管龍芯擁有MIPS的永久授權(quán),但以美國現(xiàn)在不要臉的程度,有可能以龍芯參與軍用設(shè)備研制為理由,單方面宣布授權(quán)取消,那么龍芯的合法性在中國之外就會受到質(zhì)疑。龍芯必須未雨綢繆,消除隱患;
5、提高獨(dú)立性,龍芯的核心設(shè)計(jì)都是自己完成,如果指令集也完全是自己完成的獨(dú)立系統(tǒng),加上較老的工藝制程,那么就完全杜絕了被人卡脖子的可能。龍芯長期依賴提高核心設(shè)計(jì)能力來提高單核性能,能使用老工藝就不使用新工藝 ,這種策略 不但節(jié)省了有限的資金,也一定程度上保障了生產(chǎn)制造環(huán)節(jié)的安全;
6、自建獨(dú)立軟件生態(tài),龍芯的操作系統(tǒng)還是Linux,基礎(chǔ)庫雖然和其它的Linux一樣來自開源,但龍芯上許多的辦公軟件都是來自國內(nèi)企業(yè)的開發(fā)和移植。龍芯以兼容方式保留現(xiàn)有生態(tài),鼓勵合作企業(yè)把軟件編譯為LoongArch,就可以得到更高性能的原生程序。且不會出現(xiàn)ARM桌面生態(tài)建設(shè)的尷尬——國內(nèi)企業(yè)的努力,都是為ARM添磚加瓦,一旦國產(chǎn)ARM無法生產(chǎn),那么就容易被國外的ARM產(chǎn)品替代,之前的勞動就都成了資敵的笑話。
7、更好的為中國信息安全兜底。保障中國信息安全是龍芯的初衷,也是龍芯20年來堅(jiān)守的底線 。從3A1000開始,龍芯的新款CPU生產(chǎn)工藝,都堪堪壓著國內(nèi)當(dāng)時生產(chǎn)能力的底線,可能不完全是因?yàn)槿卞X 。當(dāng)前美國越來越瘋狂,如果因?yàn)槟承┰颍瑢?dǎo)致很多部門單位不能再使用x86和arm處理器,那么只要換成可以兼容各種指令集的龍芯,就可以做到連軟件都不用修改,工作生產(chǎn)繼續(xù)進(jìn)行 ;
8、龍芯開放指令集,并免費(fèi)提供相當(dāng)于ARM A53以下性能的IP,既為了助力聯(lián)盟內(nèi)企業(yè)嵌入式芯片的發(fā)展,也能對自己的生態(tài)建設(shè)起到良好的推動作用。免費(fèi)IP的舉動也會對ARM形成沖擊,因?yàn)橹械投饲度胧紺PU用量遠(yuǎn)遠(yuǎn)超過手機(jī)中用的中高端CPU,ARM的很大一部分收入來源于授權(quán)中低端IP。龍芯也是國內(nèi)唯一一家,能夠?qū)ν馐跈?quán)指令集和IP的通用CPU企業(yè) ,龍芯的自主可控程度是國產(chǎn)的其它CPU無法企及的 。
9、龍芯翻譯執(zhí)行其它指令集程序的穩(wěn)定性及性能即使達(dá)不到預(yù)定目標(biāo),也不需要擔(dān)心。只要能保證對MIPS的兼容性沒有問題,那么龍芯的軟件生態(tài)就與當(dāng)前沒有任何區(qū)別,龍芯仍然能在保持現(xiàn)有生態(tài)的同時,慢慢建立獨(dú)立的軟硬件生態(tài)。因此懷疑指令集翻譯的穩(wěn)定性和效率根本沒有意義,即使不兼容x86/ARM或者翻譯效率低下,在最差情況下,也可以把使用LoongArch的新款CPU當(dāng)作一次常規(guī)的性能升級。如果指令集翻譯基本有效,只要能在龍芯上正常運(yùn)行部分x86和ARM軟件,哪怕只是兩三款,也是對龍芯軟件生態(tài)的有益補(bǔ)充。就算翻譯效率低于50%也沒有關(guān)系,Intel Atom CPU 的性能要比 i3 還低幾個等級,它們之間還有奔騰和賽揚(yáng),龍芯新款CPU如果性能接近相同核心數(shù)量的 i5,那它的 50% 性能肯定比相同核心數(shù)量的 Atom 高得多,運(yùn)行常規(guī)辦公軟件沒有壓力。何況指令集翻譯本身只是過渡的手段,為了增加用戶群體,隨著龍芯的獨(dú)立軟件生態(tài)逐漸強(qiáng)大,指令集翻譯就會越來越邊緣化,成為錦上添花之舉。
一天中什么時候運(yùn)動減肥效果好抓 小孩能不能練啞鈴多大的孩子適合 小孩嘴唇起皮怎么辦怎樣才能預(yù)防 孩子的羅圈腿是怎么形成的三大因 孩子早戀怎么辦如何有效疏導(dǎo)孩子 醫(yī)生婆婆稱自己專業(yè)孩子的事必須 兒子成人禮送什么禮物好呢給你孩 有孩子的夫妻千萬不要離婚對于孩 小孩千萬別讓老人帶的說法正確嗎 自卑缺乏安全感的孩子怎么改善 怎么讓孩子開口說話 這幾個方法 怎么讓孩子吃飯 教你如何讓孩子 怎么管教不聽話的孩子 家長首先 頑皮的孩子怎么管教的 這些方法 叛逆期的孩子怎么管教 引導(dǎo)孩子 孩子性格軟弱怎么辦 懦弱的性格 孩子性格偏激怎么辦 孩子性格偏 孩子性格固執(zhí)怎么辦 家長們不妨 愛惹事的孩子怎么管教 不妨試試 養(yǎng)育優(yōu)秀的孩子具備特征,家長要 高考數(shù)學(xué)難出新天際,可有的孩子 “做胎教”和“不做胎教”的孩子 花費(fèi)十幾萬只考了302分 媽媽覺得 甘肅作弊考生留下來的疑團(tuán),是怎 一舉奪魁!高三學(xué)生離校時,校領(lǐng) 高考釘子戶:26次參加高考,今年 D2809次列車因泥石流脫線!此類 “女兒16歲,學(xué)校宿舍里分娩了” 扭曲邪門的內(nèi)容,頻頻出現(xiàn)在教科 川渝地區(qū)幾所大學(xué)實(shí)力很牛!四川