深度分析國(guó)產(chǎn)龍芯新架構(gòu)CPU:自主崛起 力拼英美
- 來(lái)源:驅(qū)動(dòng)之家
- 作者:liyunfei
- 編輯:liyunfei
談到國(guó)產(chǎn)CPU產(chǎn)品龍芯,圍繞它最大的爭(zhēng)議就是性能。雖然龍芯的早期產(chǎn)品并沒(méi)有讓大家滿意,但隨著新架構(gòu)GS464E的披露,以及采用該架構(gòu)的新一代CPU“3B2000”的正式問(wèn)世,外界開(kāi)始非常期待它倍增的性能究竟和Intel的主流產(chǎn)品存在哪些優(yōu)勢(shì)和差距。
在前一次《信息科學(xué)雜志》給出的數(shù)據(jù)測(cè)試結(jié)果中,早期編譯的GS464E已經(jīng)接近Intel、AMD現(xiàn)在市場(chǎng)上的主流架構(gòu)性能,與Intel Core i3-550和AMD FX-8320基本相當(dāng),與Intel Core i5-2300略有差距,同時(shí)明顯強(qiáng)于Intel Atom、VIA Nano、ARM Cortex-A57等低功耗架構(gòu)。
而近日,《微型計(jì)算機(jī)》雜志6月刊中進(jìn)行了更深入地分析。那么,龍芯的性能究竟到了何種地步,其設(shè)計(jì)水準(zhǔn)距離國(guó)際競(jìng)爭(zhēng)對(duì)手還差多遠(yuǎn),龍芯選擇MIPS究竟出于何種考慮,為何今日的龍芯不是基于現(xiàn)在的當(dāng)紅小生一ARM架構(gòu)?針對(duì)這些外界爭(zhēng)論多時(shí)的問(wèn)題,本文將用專業(yè)而詳盡的分析予以解答。
一黑一白,今日孰是孰非?
坦白來(lái)說(shuō),龍芯近年來(lái)在輿論中受到圍攻已經(jīng)不是新聞,今年初一篇名為《國(guó)產(chǎn)龍芯究竟水平如何?》的文章在網(wǎng)上掀起軒然大波,直指號(hào)稱面向高性能服務(wù)器開(kāi)發(fā)的龍芯3B-1500處理器尚不如今日ARM Cortex-A57手機(jī)處理器。
耐人尋味的是,不到一個(gè)月過(guò)后,該文的作者再次撰寫了一篇《詳解,新一代“龍芯”能否挑戰(zhàn)Core i7?》,筆鋒一轉(zhuǎn)為尚未正式公開(kāi)露面的下一代龍芯大唱贊歌。
GS464E取指部件
在不訴諸陰謀論的前提下,筆者認(rèn)為這樣劇烈起伏的輿情其實(shí)都指向一個(gè)事實(shí):對(duì)于龍芯的現(xiàn)狀,其實(shí)外界并不了解,一般公眾并不具備從龍芯組公開(kāi)發(fā)表的艱深論文中推斷其結(jié)構(gòu)設(shè)計(jì)水平的能力,亦并不知曉編譯器,相關(guān)軟件系統(tǒng)與所用基準(zhǔn)測(cè)試程序的偏好,因此對(duì)性能的對(duì)比也多有偏頗。
例如被抨擊為不如Cortex-A57的龍芯3B-1500雖然流片于2012年,但其核心卻是2006年左右完成的設(shè)計(jì),當(dāng)時(shí)其制定的競(jìng)爭(zhēng)目標(biāo)主要是Intel的奔騰3和早期奔騰4處理器,自然會(huì)落后于今日的手機(jī)CPU旗艦。
而被其描述為可以在IPC上與Ivy Bridge一戰(zhàn)的新一代龍芯微結(jié)構(gòu)GS464E,雖然相比上一代產(chǎn)品取得了突破性的進(jìn)步,但在頻率指標(biāo)取得突破之前,又將憑借什么與Intel抗衡呢?
歷史原因 為何選擇MIPS指令集?
目前已經(jīng)推出的龍芯核心主要分為三大系列,型號(hào)為GS1XX,GS2XXX和GS3XX,其中GS132系列對(duì)標(biāo)ARM CortexM0和CortexM3,GS232和GS264對(duì)標(biāo)ARM9,ARM11與Cortex-A12,GS464E也就是本文即將介紹的最新版龍芯核心,將對(duì)標(biāo)Intel Ivy Bridge。
先前被認(rèn)為不如手機(jī)CPU的龍芯3A 1000與龍芯3B1500均使用上一代GS464和其向量增強(qiáng)型GS464V核心設(shè)計(jì),性能差距較大。
上述所有龍芯系列產(chǎn)品都兼容MIPS指令集,注意這里的兼容并不是如同外界謠傳的那樣指代龍芯使用了來(lái)自MIPS的核心,而是僅僅讓龍芯的產(chǎn)品能夠運(yùn)行MIPS所定義的指令集,例如000000在MIPS中代表加法操作碼,在龍芯處理器上也代表加法操作碼,僅此而已。
硬件方面,從龍芯的微結(jié)構(gòu)到電路、版圖設(shè)計(jì)均為獨(dú)立自主進(jìn)行。
很多人也有疑惑,為何龍芯沒(méi)有選擇當(dāng)下如日中天,隱隱與Intel形成分庭抗禮之勢(shì)的ARM指令集呢?
其實(shí)龍芯項(xiàng)目開(kāi)始前期調(diào)研的時(shí)間點(diǎn)是2000年前后,當(dāng)時(shí)ARM的確有被列入考慮范圍之內(nèi),但是面對(duì)龍芯要求實(shí)現(xiàn)高性能的初始目標(biāo)相比,ARM公司的定位則顯得不合時(shí)宜,彼時(shí)的ARM能拿出的最強(qiáng)核心設(shè)計(jì)是ARM11,沒(méi)有亂序執(zhí)行,沒(méi)有多發(fā)射,沒(méi)有今天這樣先進(jìn)的緩存系統(tǒng)。
ARM旗下第一款支持雙發(fā)射的Cortex-A8設(shè)計(jì)是2005年才對(duì)外公布的,在此基礎(chǔ)上加入亂序執(zhí)行的Cortex-A9則更是到2007年前后才宣告面世。這倒不完全是因?yàn)锳RM在高性能設(shè)計(jì)上實(shí)力孱弱,而更多地是因?yàn)锳RM將自己的產(chǎn)品定位為面向嵌入式計(jì)算的產(chǎn)品,極為緊張的面積和功耗預(yù)算使得許多高性能設(shè)計(jì)上常見(jiàn)的特征難以實(shí)現(xiàn)。隨著技術(shù)的進(jìn)步以及嵌入式計(jì)算能力需求的暴增,ARM才開(kāi)始著手打造高性能CPU。
GS464E微結(jié)構(gòu)框架圖,紅色方框部分為亂序執(zhí)行引擎
上世紀(jì)90年代,MIPS和DEC Alpha等幾大廠商都于1995年前后陸續(xù)實(shí)現(xiàn)了亂序四發(fā)射的設(shè)計(jì),風(fēng)頭甚至壓過(guò)當(dāng)時(shí)的Intel、MIPS的R4000、R10000以及DEC Alpha 21164。
其中21264放眼今日仍然是有志于處理器微結(jié)構(gòu)設(shè)計(jì)的后學(xué)晚輩們所必看的經(jīng)典之作,深度流水線,分支預(yù)測(cè),寄存器重命名,Load-Store推測(cè),一應(yīng)俱全。雖然在90年代后期MIPS和DEC Alpha逐漸式微,但虎落平陽(yáng)余威猶在。在x86陣營(yíng)經(jīng)營(yíng)多年的專利壁壘無(wú)法攻破的情況下,高性能CPU廝殺的戰(zhàn)場(chǎng)上為當(dāng)時(shí)蹣跚起步的中國(guó)CPU提供的選擇著實(shí)不多。
以當(dāng)年的情況看,ARM在多年內(nèi)都無(wú)力進(jìn)攻嵌入式以外的市場(chǎng),這意味著ARM的指令集系統(tǒng)在嵌入式以外幾乎等同于無(wú)根之水,沒(méi)有人會(huì)愚蠢到量產(chǎn)基于ARM11的個(gè)人電腦和服務(wù)器。單純憑借一個(gè)國(guó)產(chǎn)項(xiàng)目力圖對(duì)抗wintel聯(lián)盟的鐵桶江山與蚍蜉撼樹(shù)別無(wú)二致。
而與Intel正面交戰(zhàn)過(guò)并且曾經(jīng)享有勝者頭銜的MIPS和DEC Alpha所留下的軟件生態(tài)環(huán)境自然要比ARM強(qiáng)大許多,國(guó)內(nèi)先后上馬的龍芯和申威兩大擁有政府支持的CPU項(xiàng)目就是分別采用了MIPS與DEC Alpha指令集。
因此筆者認(rèn)為,在堅(jiān)持高性能設(shè)計(jì)并且想要獲取市場(chǎng)支持的前提下,選擇MIPS/DEC Alpha是一個(gè)正確的決策,以今日ARM的崛起來(lái)拷問(wèn)當(dāng)時(shí)的選擇難免有馬后炮的嫌疑,無(wú)人能夠超越歷史局限預(yù)估到十年之后的未來(lái)。
正像無(wú)人能夠預(yù)見(jiàn)到2000年正踩在鋼絲線上生死未卜的蘋果公司能夠在十年后登上浪潮之巔一樣。但是歷史終究已成歷史,今日龍芯面臨的困境也是眾人皆知的,那么龍芯團(tuán)隊(duì)能不能實(shí)現(xiàn)自己當(dāng)初的目標(biāo),他們拿出的新一代GS464E又是什么樣的呢?
喜憂參半 新一代GS464E架構(gòu)之前端取指
縱觀全局,取指部件是新一代龍芯GS464E中改動(dòng)最大的幾個(gè)地方之一。大體框架上,一級(jí)指令緩存(取指部件圖的下半部分)為了追求速度被設(shè)計(jì)為并行訪問(wèn)的結(jié)構(gòu),在IF2階段和IF3階段同時(shí)讀取指令(IC Cache Data)和相關(guān)的地址標(biāo)記(IC Cache tag),在IF4階段判斷是否命中,取出命中的指令。從取指部件部分的框架圖來(lái)粗略判斷,前端部分的效率仍是喜憂參半。
令人欣喜的地方有三個(gè),在這三個(gè)方面龍芯GS464E的結(jié)構(gòu)設(shè)計(jì)都達(dá)到甚至超越了國(guó)際水準(zhǔn)。
第一,指令緩存的大小達(dá)到了64KB(四路組關(guān)聯(lián)),超越了IBM Power7的32KB(四路組關(guān)聯(lián));
第二,取指寬度已經(jīng)達(dá)到了每周期8條指令,考慮到龍芯以MIPS32作為基礎(chǔ)指令集,以每條指令32位寬計(jì)算,一級(jí)指令緩存的取指寬度達(dá)到了每周期32字節(jié),而Intel Haswell處理器的一級(jí)指令緩存僅能達(dá)到每周期16字節(jié)的吞吐率(但存儲(chǔ)解碼后指令的uop cache能達(dá)到32字節(jié)/周期的吞吐率);
第三,GS464E也加入了Intel從SandyBridge期間開(kāi)始配備的循環(huán)檢測(cè)器和循環(huán)指令緩沖區(qū),這種結(jié)構(gòu)設(shè)計(jì)允許CPU在不斷取指令的同時(shí),去識(shí)別哪些指令構(gòu)成了一個(gè)循環(huán),在發(fā)現(xiàn)循環(huán)再次出現(xiàn)的時(shí)候關(guān)掉指令緩存,僅從循環(huán)緩沖區(qū)中取用。筆者相信GS464E的循環(huán)緩沖區(qū)設(shè)計(jì)從Intel的SandyBridge中獲取了一些靈感,巧妙地把它與負(fù)責(zé)解耦取指部分和解碼部分的Instruction Queue做成了一個(gè)模塊,與SandyBridge一樣支持存儲(chǔ)56條內(nèi)層循環(huán)指令。
-
傳奇歲月
-
原始傳奇
-
斗羅大陸(我唐三認(rèn)可0.1折)
-
妖神記之巔峰對(duì)決
-
坦克兄弟連(0.1折瘋狂千抽)
-
深淵契約
-
貓狩紀(jì)0.1折
-
同城麻將
玩家點(diǎn)評(píng) (0人參與,0條評(píng)論)
熱門評(píng)論
全部評(píng)論