在第18屆中國(guó)國(guó)際工業(yè)博覽會(huì)上,上海兆芯公司的ZX-C處理器獲得了金獎(jiǎng)。在2017年3月,更是接連榮獲“2017年度大中華IC設(shè)計(jì)成就獎(jiǎng)”(見(jiàn)圖22)、“第十一屆(2016年度)中國(guó)半導(dǎo)體創(chuàng)新產(chǎn)品和技術(shù)獎(jiǎng)”。在國(guó)家十二五科技創(chuàng)新成就展中兆芯的宣傳材料顯示,“兆芯國(guó)產(chǎn)X86通用處理器的成功自主研發(fā)和量產(chǎn),令國(guó)產(chǎn)處理器在性能方面完成了一次跨越式的提升,從十二五初期的不足國(guó)際整體水準(zhǔn)的10%提升到了目前的80%”。

眾所周知,Intel對(duì)X86的授權(quán)有著極為嚴(yán)格的限制,那么上海兆芯的X86芯片技術(shù)到底從何而來(lái)?ZX-C目前的短板在哪里?在性能上和Intel相差多遠(yuǎn)呢?
兆芯C4600 cpuinfo的信息顯示:設(shè)計(jì)廠商為美國(guó)Centaur,微結(jié)構(gòu)是VIA的以賽亞
在Linux系統(tǒng)中命令cat /proc/cpuinfo可以讀出芯片的一些信息和特性。其命令和Windows系統(tǒng)中cpu-z軟件獲得的信息類似。芯片cpuinfo的信息是通過(guò)CPUID指令讀出來(lái)的。例如eax=1時(shí),讀出的是處理器的信息以及特征位(CPUID指令的使用,見(jiàn)en.wikipedia.org/wiki/CPUID)。
從圖1兆芯C4600芯片cpuinfo的信息可以看出,這個(gè)芯片的廠商(vendor_id)為CentaurHauls,即Centaur公司。其中cpu family表示那一代芯片,其中的family 6表示VIA的Nano系列。其中的model表示型號(hào),也就是采用哪種微結(jié)構(gòu),15表示以賽亞。model name為處理器的型號(hào),圖中為C-QuadCore C4600@2.0GHz。表示4核芯片C4600,主頻為2GHz。

圖1兆芯C4600芯片cpuinfo的信息

圖2威盛Nano U3500芯片cpuinfo的信息
圖2給出了威盛公司的Nano U3500芯片cpuinfo的信息,其model name為VIA Nano U3500@1000MHz。對(duì)比vendor_id的信息可以看出都是VIA的Centaur公司,對(duì)比cpu family和model的信息,也可以看出都是family 6和model 15,即都是 “以賽亞”架構(gòu)。

圖3 威盛Nano U3500芯片的信息
從圖3可以看出U3500芯片屬于VIA Nano系列。其中的微架構(gòu)為Isaiah(以賽亞)。支持的指令集到SSE4.1為止,并且支持x86-64指令集。
從C4600芯片cpuinfo的信息可以看出,C4600的設(shè)計(jì)廠商(vendor_id)還是VIA的Centaur公司,而沒(méi)有改為ZX的標(biāo)志。
美國(guó)Centaur公司和Glenn Henry根據(jù)維基的資料顯示:Centaur(半馬人)科技公司,創(chuàng)立于1995年,創(chuàng)建者為Glenn Henry, Terry Parks, Darius Gaskins和Al Sato,其獲得的投資來(lái)自于IDT公司。其公司的目標(biāo)是開(kāi)發(fā)兼容的x86處理器,目標(biāo)定位為開(kāi)發(fā)比Intel公司的x86芯片價(jià)格更低,功耗更小的芯片。早期的產(chǎn)品稱為WinChip,1999年9月,Centaur被IDT公司出售給VIA公司,其后續(xù)的產(chǎn)品為VIA C3和VIA C7,以及VIA Nano。Centaur公司的芯片主要面向嵌入式市場(chǎng),包括移動(dòng)市場(chǎng),也就是面積更小、價(jià)格更便宜,功耗更低的x86芯片市場(chǎng)。Centaur的設(shè)計(jì)理念是對(duì)于面向特定市場(chǎng)需求“夠用就好”。VIA Nano Isaiah(以賽亞),是Centaur第一款超標(biāo)量、亂序執(zhí)行的CPU,第一款64位的CPU,Nano芯片這時(shí)更為強(qiáng)調(diào)性能,而不再是追隨性能功耗比的等式,但是其維持和C7相同的功耗(TDP)。
根據(jù)Centaur(半馬人)公司的網(wǎng)站的介紹,Centaur(半馬人)科技公司,位于德克薩斯-奧斯丁。主要設(shè)計(jì)高性能、低功耗的x86兼容的微處理器,號(hào)稱具有最快的設(shè)計(jì)流程,設(shè)計(jì)周期是競(jìng)爭(zhēng)對(duì)手廠商的三分之一。該公司沒(méi)有管理者,所有的工程師直接向Centaur公司的創(chuàng)建者和總裁Glenn Henry匯報(bào),Glenn Henry是前DELL公司的CTO和IBM的工程系列的Fellow(20年的Fellow)。1999年8月,Centaur公司被VIA公司收購(gòu)。但是這次收購(gòu)沒(méi)有改變Centaur的文化,也就是Centaur作為VIA公司的子公司獨(dú)立地運(yùn)營(yíng),而不會(huì)受到VIA的影響。在Cyrix解散后,VIA公司的x86芯片的設(shè)計(jì)都是來(lái)自于Centaur公司,而VIA QuadCore C4650芯片也是出自Centaur公司的Glenn Henry之手。

圖4 Glenn Henry
這里介紹以下Glenn Henry。Glenn Henry于1967年加入IBM,在IBM干了21年,擔(dān)任首席架構(gòu)師,是RISC工作站、AIX操作系統(tǒng)和AS/400等創(chuàng)新產(chǎn)品的主要研發(fā)管理者,于1985年獲得IBM fellow的稱號(hào),1988年離開(kāi)IBM加入DELL公司,為DELL公司負(fù)責(zé)研發(fā)的副總和CTO,1994年離開(kāi)DELL公司,擔(dān)任MIPS公司的咨詢顧問(wèn),試圖把x86和MIPS架構(gòu)結(jié)合在一起,1995年Henry獲得了來(lái)自IDT公司的投資,創(chuàng)建了Centaur公司,設(shè)計(jì)低功耗、低成本的x86處理器。
揭開(kāi)以賽亞神秘的面紗正如Intel在研發(fā)出酷睿2后一舉翻身,AMD在開(kāi)發(fā)出Zen之后終于做出能與Intel相比較的產(chǎn)品,一款CPU最關(guān)鍵的就在于其微結(jié)構(gòu),那么QuadCore C4650芯片的微結(jié)構(gòu)究竟怎么樣呢?

圖5 The VIA Isaiah Architecture
Centaur公司的靈魂人物和總裁和Glenn Henry撰寫的一篇文章“The VIA Isaiah Architecture”(圖5),文章中分析了為什么采用3發(fā)射、亂序執(zhí)行結(jié)構(gòu),和Intel的Core比較起來(lái)有什么優(yōu)勢(shì),為了降低功耗,采用了什么樣的權(quán)衡。文章介紹的非常詳細(xì),有興趣的網(wǎng)友可以找原文品讀。
從圖6中可以看出,以賽亞采用類似于Core架構(gòu)的設(shè)計(jì),7個(gè)部件,2個(gè)定點(diǎn)I1和I2,2個(gè)浮點(diǎn)MA和MB,1個(gè)取數(shù)LD,1個(gè)存數(shù)ST和1個(gè)SA地址計(jì)算。也就是2個(gè)定點(diǎn)、2個(gè)浮點(diǎn)、2個(gè)訪存。屬于中規(guī)中矩的設(shè)計(jì)。

圖6 以賽亞微結(jié)構(gòu)框圖
Cache的設(shè)計(jì)為64KB+64KB L1 cache,16路組相聯(lián),2MB的uninclusive的L2 cache。保留站的項(xiàng)數(shù)為76項(xiàng)(micro-ops,其micro-ops類似Intel處理器的uops,每條X86指令對(duì)應(yīng)1-3條uops),規(guī)模和Intel的Core以及AMD的K10基本相當(dāng)。其也采用了大量的低功耗技術(shù),例如為了降低功耗,分支預(yù)測(cè)器的表項(xiàng)只有4K項(xiàng),取指令時(shí)只取16字節(jié)大小等。
從文章中介紹和測(cè)試數(shù)據(jù)來(lái)看,該處理器結(jié)構(gòu)在2008年而言是非常棒的微架構(gòu),兼顧了低功耗和適度性能。從性能上可以打贏當(dāng)時(shí)的按序發(fā)射的Intel Atom,但是由于技術(shù)團(tuán)隊(duì)人數(shù)有限,在功耗控制實(shí)現(xiàn)上不是那么完美,所以導(dǎo)致其市場(chǎng)定位高不成低不就。在高性能上沒(méi)法和Intel的Core和AMD的K10抗衡,在低功耗上又不能做到無(wú)風(fēng)扇設(shè)計(jì),沒(méi)法和Atom以及近年來(lái)崛起的ARM相比。導(dǎo)致Nano的芯片主要用于上網(wǎng)本等市場(chǎng),但是由于出貨量較少,每片的成本相對(duì)較高,隨著上網(wǎng)本市場(chǎng)的消亡,Nano芯片基本也退出了主流市場(chǎng)。
Glenn Henry曾在2008年接受記者Dave Altavilla的采訪,在采訪中Glenn Henry對(duì)低功耗的以賽亞架構(gòu)處理器的一些解釋(“VIA's Glenn Henry Speaks On New Low Power Isaiah Processor,by Dave Altavilla, January, 2008”)。以下為采訪鏈接:

圖7 Glenn Henry介紹“以賽亞”架構(gòu)

圖8 “以賽亞”架構(gòu)Nano處理器版圖
ZX-C QuadCore C4600和VIA QuadCore C4650關(guān)系密切,根據(jù)媒體報(bào)道:
《真正走向市場(chǎng)化,揭秘中國(guó)兆芯X86處理器》
《國(guó)貨新貴 兆芯X86處理器來(lái)了!--開(kāi)先ZX-C C4600處理器體驗(yàn)》
《兆芯傅城:國(guó)產(chǎn)X86通用處理器已接近國(guó)際水平》
這三篇報(bào)道算是比較全面的介紹兆芯的X86處理器。文章中介紹了是兆芯公司打造了中國(guó)X86 CPU,也介紹了兆芯ZX-C四核心處理器,ZX-C處理器是國(guó)家“十二五”核高基重大科技專項(xiàng)創(chuàng)新成果,采用28nm工藝等內(nèi)容。
不過(guò),這些報(bào)道中的一些內(nèi)容經(jīng)不起對(duì)敲,比如文章中稱:兆芯ZX-C四核處理器的推出,讓國(guó)產(chǎn)處理器的性能完成了從“十二五”初期不足國(guó)際主流水準(zhǔn)10%到目前80%的跨越性提升。
其實(shí),這段話并非媒體妄言,而是出自兆芯(VIA Alliance Semiconductor)在“十二五”科技成果展上的宣傳資料。不過(guò),兆芯官方宣傳資料中達(dá)到國(guó)際主流水準(zhǔn)的80%是不客觀的。
但經(jīng)過(guò)實(shí)際測(cè)試,即便是兆芯ZX-C四核處理器中主頻達(dá)到2.0G的C4600,與Intel G1840和I5 4460相比較。從圖10可以看出,就定點(diǎn)而言,I5 4460是ZX-C的3.3倍,G1840是ZX-C的2.4倍。就浮點(diǎn)而言,I5 4460是ZX-C的4.4倍,G1840是ZX-C的2.8倍。在這種情況下,宣稱ZX-C達(dá)到國(guó)際主流80%,存在虛假宣傳行為。

(圖10)
言歸正傳,一起先來(lái)探究以下ZX-C處理器和VIA QuadCore C4650的關(guān)系。
根據(jù)2014年的報(bào)道“Report: VIA’s quad-core, 64-bit Isaiah II chip coming this summer -- 07/07/2014 by Brad Linder”。2014年的VIA的2GHz的Isaiah II QuadCore處理器的性能基本和AMD Kabini的Athlon 5350和Intel Atom的Z3770相當(dāng),詳細(xì)參數(shù)見(jiàn)圖11。

(圖11)
以下為鏈接:根據(jù)2015年的一篇文章,“VIA’s New 28nm C4650 QuadCore x86 Processor Spotted – Gaming and General Purpose Benchmarks Surface, Impressive Low-End Performance”。從中可以推測(cè)在至少在2015年,VIA已經(jīng)有了VIA QuadCore C4650。
以下為鏈接:在2016年,兆芯宣布開(kāi)始將量產(chǎn)100萬(wàn)套ZX-C四核X86處理器。這里先介紹下C4600和ZX-C的關(guān)系。根據(jù)兆芯官網(wǎng)資料,ZX-C可分為C4200/4210、C4400/4410、C4600/C4610三個(gè)類別,之間的差別在于主頻,C4600是ZX-C系列處理器的2.0G主頻版本,兆芯官方截圖見(jiàn)圖12和圖13。

(圖12)

(圖13)
而且之前已經(jīng)介紹了,從C4600芯片cpuinfo的信息可以看出,C4600的設(shè)計(jì)廠商(vendor_id)還是VIA的Centaur公司,而沒(méi)有改為ZX的標(biāo)志。
兆芯的C4600與VIA公司的QuadCore C4650有非常緊密的聯(lián)系。這種聯(lián)系存在兩種可能:
第一種可能是,Centaur公司已經(jīng)由威盛公司完全出售給了兆芯公司了,所以直接使用Centaur公司的標(biāo)志,Centaur公司的技術(shù)成果也就順理成章的成為國(guó)家“十二五”核高基重大科技專項(xiàng)創(chuàng)新成果。
第二種可能是,通過(guò)VIA的關(guān)系,兆芯直接把QuadCore C4650的設(shè)計(jì)或版圖買過(guò)來(lái),或者直接拿過(guò)來(lái),重新在臺(tái)積電流片,然后改頭換面變成了國(guó)家“十二五”核高基重大科技專項(xiàng)創(chuàng)新成果。
以賽亞和以賽亞2到底有多少差異
根據(jù)資料顯示:兆芯ZX-A處理器,如C4350AL的微結(jié)構(gòu)是“以賽亞”,而ZX-C系列處理器,比如C4600的微結(jié)構(gòu)是“以賽亞2”。那么,以賽亞和以賽亞2到底有多少差異呢?
下面對(duì)VIA Nano X2 C4350AL和兆芯C4600在進(jìn)行測(cè)試。實(shí)驗(yàn)中為了盡可能較少不同的因素,將C4600和C4350al的頻率都降到1.33GHz。不過(guò),受條件有限的原因,還是有一些區(qū)別的——C4600使用內(nèi)存為DDR3-1600,C4350al使用的內(nèi)存為DDR3-1333,C4600編譯選項(xiàng)最高采用SSE4.2,而C4350al編譯選項(xiàng)最高支持到SSE4.1,另外,兩個(gè)平臺(tái)的前端總線(FSB)頻率也不同,C4600為1333MHz,C4350al為1066MHz。

(圖14)
從圖14的對(duì)比可以看出,在相同主頻下,C4600和C4350al的SEPC2006的分值基本相當(dāng),也就是兩者在相同頻率下的性能基本相同。拋開(kāi)主頻的影響和編譯器的影響,處理器性能的差別在于微結(jié)構(gòu)的差別。
由于即便是同一款處理器跑兩次SEPC2006的分值也有有少許上下浮動(dòng)。因而可以推斷出兆芯的C款處理器C4600和兆芯的A款處理器VIA Nano C4350AL采用了相同的微架構(gòu),或者說(shuō)以賽亞和以賽亞2的差異微乎其微,以至于在性能上處于原地踏步狀態(tài)。
除了前端總線的頻率和工藝的差別,各種微結(jié)構(gòu)的參數(shù)都沒(méi)有任何變化,也就是說(shuō)“以賽亞2”和“以賽亞”其實(shí)是同一個(gè)東西,或者說(shuō)修改的地方微乎其微,以至于在性能上處于原地踏步狀態(tài),修改可以忽略不計(jì)。
必須說(shuō)明是是實(shí)驗(yàn)中,C4600的定點(diǎn)性能比C4350al略高一些,主要原因是C4600的前端總線的頻率提高了,C4600浮點(diǎn)性能反而略有下降,主要原因是由于其采用的SSE4.2指令集沒(méi)有硬件的邏輯實(shí)現(xiàn),并且DDR3-1600帶寬的提升反而彌補(bǔ)不了延遲的略微增加,以至于浮點(diǎn)性能下降。
兆芯C4600和VIA以賽亞的短板
Centaur公司設(shè)計(jì)的以賽亞在當(dāng)時(shí)是立足差異化競(jìng)爭(zhēng)的產(chǎn)物,以賽亞也是一個(gè)輕量級(jí)的架子,雖然在2009年的時(shí)候這個(gè)設(shè)計(jì)還是挺不錯(cuò)的。但隨著技術(shù)的進(jìn)步,以賽亞在今天就有點(diǎn)不夠看了,面對(duì)ARM Cortex A57/A72/A73就難以招架了。下面簡(jiǎn)單介紹一下兆芯C4600和VIA以賽亞的短板:
短板一:沒(méi)有對(duì)最新的指令系統(tǒng)在微結(jié)構(gòu)和硬件上進(jìn)行改動(dòng)
根據(jù)VIA官方資料,VIA Nano只支持到SSE4.1指令集系統(tǒng),至于原因只要回溯Intel指令集系統(tǒng)的發(fā)展歷史就明了了:MMX(1996), SSE(1999), SSE2(2001), SSE3(2004),SSSE3(2006), SSE4.1(2006)SSE4.2(2007), AES, AVX(2011), F16C(2009), ACE, PCLMUL(2010), VMX, BMI1, BMI2, AVX2(2013)。
正是因?yàn)闅v史原因以及Intel對(duì)外的X86授權(quán)因素,當(dāng)時(shí)的VIA公司沒(méi)有拿到Intel最新指令集系統(tǒng)的授權(quán),所以2009年的Nano處理器最高支持到SSE4.1。
相比之下,VIA QuadCore C4650和兆芯C4600處理器支持后續(xù)的SSE4.2和最新的AVX和AVX2等指令集系統(tǒng)。
對(duì)于VIA QuadCore C4650和兆芯C4600支持最新的AVX和AVX2等指令集系統(tǒng),可能的原因是VIA已經(jīng)買到了Intel公司最新指令集系統(tǒng)的授權(quán)。不過(guò)VIA如何將指令集授權(quán)轉(zhuǎn)讓給兆芯,這個(gè)問(wèn)題無(wú)論是Intel,還是VIA、兆芯都沒(méi)有任何公開(kāi)聲明。
誠(chéng)然,這個(gè)不是本文關(guān)注的重點(diǎn)。本文關(guān)注的是緣何增加了AVX和AVX2等指令集系統(tǒng)C4600的性能反而下降了。
Intel和AMD的CPU在使用了最新的256位的AVX/AVX2向量指令集后,性能有所提高——Intel和AMD處理器采用向量指令(128位和256位),INT2006的性能平均可以提高5%,F(xiàn)P2006的性能平均可以提高16-18%。而從128位的SSE,增加到256位的AVX/AVX2指令,INT2006的性能可以提高2-3%,F(xiàn)P2006的性能可以提高6-8%。
必須說(shuō)明的是,采用向量指令提高性能的前提是處理器的訪存通路能供應(yīng)上足夠?qū)挼臄?shù)據(jù),如Haswell為了支持256位的AVX/AVX,采用了3個(gè)訪存的端口,同時(shí)支持2個(gè)256位的load操作和1個(gè)256位的store操作。
與Intel和AMD的CPU相反,C4600處理器兼容了Intel最新的256位向量指令A(yù)VX/AVX2等(不支持乘加FMA指令)。在編譯時(shí)打開(kāi)了AVX2, AVX, bmi等最新指令集編譯選項(xiàng),但編譯出來(lái)的程序?qū)崪y(cè)性能反而下降。具體成績(jī)?yōu)閳D15。
>
(圖15)
從圖15中可以看出,采用最新的指令集系統(tǒng),對(duì)于大部分CPU2006的程序,其性能反而下降了。對(duì)于INT2006,幾何平均的性能下降了1.76%,如401.bzip2下降了5.01%,456.hmmer下降了3.74%,462.libquantum下降了13.04%;對(duì)于FP2006,幾何平均的性能下降了4.82%。416.games下降了7.52%,433.milc下降了8.93%,435.gromacs下降了8.12%,454.calculix下降了11.18%,454.calculix下降了14.06%,459.GemsFDTD下降了6.98%,482.sphinx3下降了16.41%。而這些程序正好是易于被向量化的程序,其采用了256位的AVX指令。例如459.GemsFDTD中256位的Packed Double動(dòng)態(tài)指令數(shù)占到16.53%。
為什么采用新型的指令集系統(tǒng),SPEC CPU2006程序性能反而有所下降呢?很可能是兆芯C4600處理器保留了Centaur公司的原始設(shè)計(jì),沒(méi)有對(duì)最新的指令系統(tǒng)在微結(jié)構(gòu)和硬件上進(jìn)行改動(dòng),也就是在微結(jié)構(gòu)上除了指令譯碼部分,在數(shù)據(jù)通路和訪存通路上沒(méi)有變化。而這也作證了之前提到的:以賽亞2和以賽亞其實(shí)是同一個(gè)東西,或者說(shuō)修改的地方微乎其微。
首先來(lái)看處理器在指令譯碼部分怎么支持最新的指令集系統(tǒng),在當(dāng)前的CISC指令集系統(tǒng)的實(shí)現(xiàn)都是將外部CISC指令翻譯為內(nèi)部的類RISC,即uops,通常一條CISC指令可以在內(nèi)部被翻譯為1-3條內(nèi)部的uops指令。uops指令在“以賽亞”被稱為micro-ops,見(jiàn)VIA Isaiah Architectural文章中“microcode subsystem”,“以賽亞”架構(gòu)中的微碼子系統(tǒng)(microcode subsystem)包括24K微指令加上一個(gè)強(qiáng)大的打補(bǔ)丁(patch)的功能,使得微碼能被更新,每個(gè)ROM中的微碼指令被翻譯為最多3條融合的微操作(fused micro-ops)??梢钥闯觥耙再悂啞奔軜?gòu)仍然在沿用X86處理器早期的部分復(fù)雜X86指令微碼實(shí)現(xiàn)的方式,如果要支持新的如AVX的指令,就可以通過(guò)更新微碼的方式來(lái)實(shí)現(xiàn),再通過(guò)微碼指令轉(zhuǎn)換為內(nèi)部的微操作指令實(shí)現(xiàn)。
第二,256位寄存器的實(shí)現(xiàn),既然要支持AVX指令,需要實(shí)現(xiàn)256位的體系結(jié)構(gòu)可見(jiàn)的寄存器和256位的重命名物理寄存器,我們猜測(cè)其內(nèi)部實(shí)現(xiàn)為僅實(shí)現(xiàn)了體系結(jié)構(gòu)可見(jiàn)的寄存器,而沒(méi)有實(shí)現(xiàn)256位的重命名物理寄存器,這不會(huì)增加太多的開(kāi)銷。在數(shù)據(jù)通路和訪存通路的實(shí)現(xiàn)上,在內(nèi)部很可能是將256位的向量指令拆分為多條128位的類SSE指令實(shí)現(xiàn)的,這種方法在第一代AMD的推土機(jī)實(shí)現(xiàn)256位的AVX指令和第一代的K8實(shí)現(xiàn)128位的SSE指令也是這么做的,通過(guò)內(nèi)部拆分在數(shù)據(jù)通路上支持新的指令集系統(tǒng),但是這樣做的結(jié)果是,新的指令系統(tǒng)對(duì)性能不但沒(méi)有好處,反而會(huì)有性能的下降,因?yàn)閿?shù)據(jù)通路和訪存通路根本就沒(méi)有實(shí)現(xiàn)更寬的設(shè)計(jì),就好比本身很窄的馬路,可以通過(guò)2個(gè)車道,這時(shí)候同時(shí)來(lái)4輛車,這4輛車就得排成兩排,順序通過(guò)。另外,更寬的向量操作導(dǎo)致其架構(gòu)的訪存和供數(shù)能力跟不上,這也造成了新指令集有時(shí)性能下降的原因。
短板二:前端總線設(shè)計(jì)和帶寬
限制兆芯C4600芯片的一大瓶頸是Centaur公司延續(xù)了其前端總線(VIA V4 bus)的設(shè)計(jì),而且沒(méi)有將內(nèi)存控制器集成到處理器上。
前端總線(front-side bus,F(xiàn)SB)是早期Intel芯片的計(jì)算機(jī)通信的接口,和AMD公司的EV6類似,其連接CPU和北橋芯片,內(nèi)存控制器通常集成在北橋中。PCI,AGP等各種設(shè)備以及內(nèi)存都是通過(guò)北橋和CPU進(jìn)行通訊。
前端總線出現(xiàn)在1995-2006,用于Intel的Atom,Celeron,Pentium,Core2芯片以及早期的Xeon芯片,其很快被現(xiàn)代處理器中AMD的HT(HyperTransport)和Intel的QPI(QuickPath Interconnect)以及DMI(Direct Media Interface)所取代。
前端總線為64位,8個(gè)字節(jié),每拍能傳輸4次。前端總線的速度是當(dāng)時(shí)計(jì)算機(jī)系統(tǒng)一個(gè)重要的衡量指標(biāo),當(dāng)前,前端總線最高的頻率為333~400MHz,每個(gè)周期能進(jìn)行4次傳輸。由于設(shè)計(jì)的缺陷,前端總線的頻率沒(méi)法得到進(jìn)一步提升。假設(shè)前端總線的實(shí)際頻率為333MHz,也就是通常廠家說(shuō)的1333MHz,其峰值理論帶寬為10.65GB/s,即8 bytes/transfer × 333 MHz × 4 transfers/cycle = 10656MB/s。
前端總線的設(shè)計(jì),使得CPU需要等待來(lái)自內(nèi)存中的數(shù)據(jù),對(duì)于每個(gè)元素需要的大量復(fù)雜計(jì)算的應(yīng)用,這樣的應(yīng)用訪存不是那么的密集,前端總線能跟上CPU的速度。而對(duì)于圖像、音頻、視頻、游戲、FPGA綜合以及科學(xué)應(yīng)用等應(yīng)用,通常是對(duì)于大工作集的少部分?jǐn)?shù)據(jù)進(jìn)行操作,這樣前端總線就成為一個(gè)主要的性能瓶頸。
圖16比較了2.0GHz的兆芯C4600、1.5GHz的龍芯3A3000、1.5GHz的AMD K10三款處理器訪存帶寬測(cè)試程序STREAM的帶寬分值,從中可以看出,單線程STREAM的測(cè)試,C4600的STREAM帶寬基本為4-5GB/s,而3A3000為8+GB/s,K10為6-7GB/s。多線程STREAM的測(cè)試,C4600的STREAM帶寬基本為3+GB/s,而3A3000為12-13GB/s,K10位6+GB/s。

(圖16)
國(guó)際主流CPU都在十年前把內(nèi)存控制器集成在CPU芯片中,而兆芯C4600繼續(xù)把內(nèi)存控制器集成在橋片上,訪存帶寬受限于前端總線。VIA 以賽亞系列處理器從2009年開(kāi)始一直采用VIA V4 BUS的前端總線設(shè)計(jì),而沒(méi)有將內(nèi)存控制器集成到芯片上,即使是2014年對(duì)Nano X2的改版也不愿意去動(dòng)其結(jié)構(gòu)和設(shè)計(jì)。只是從40nm工藝提高到28nm TSMC的工藝,同時(shí)把V4總線的頻率從800MHZ提高到1333MHz,也就是其前端總線的理論帶寬為10.6GB/s。所以其內(nèi)存帶寬不高原因也就可以解釋。
另外,多線程的情況下,多個(gè)CPU核以及I/O等會(huì)競(jìng)爭(zhēng)前端總線,前端總線和內(nèi)存控制器的預(yù)期機(jī)制截然不同,造成訪存序的紊亂。所以在多個(gè)線程尤其是訪存壓力很大的情況下,其性能會(huì)急劇下降。這也是C4600多線程帶寬反而不如單線程帶寬的原因。
對(duì)于C4600,1-2個(gè)核基本上就吃滿了訪存帶寬,對(duì)于龍芯3A3000而言,訪存帶寬具備顯著的優(yōu)勢(shì),其能滿足4-8個(gè)處理器核的需求。所以,在單線程性能差距不大的情形下,龍芯3A3000的SPEC CPU2006多線程rate的性能,明顯超過(guò)了C4600的rate性能。具體參數(shù)見(jiàn)圖17

(圖17)
結(jié)語(yǔ):雖然在一系列兆芯官方宣傳和中文宣傳資料上,兆芯一直宣傳自主安全可控(見(jiàn)圖18),在其官方網(wǎng)站上也標(biāo)明自主可控(見(jiàn)圖19)。但與兆芯相關(guān)的英文材料卻標(biāo)明:Based on Centaur Technologie’s microarchitecture designs (見(jiàn)圖20)。

(圖18)

(圖19)

(圖20)
在微結(jié)構(gòu)源自Centaur公司,指令集授權(quán)也模糊不清的情況下,就宣布兆芯自主安全可控,未免有點(diǎn)超之過(guò)急——即便是走技術(shù)引進(jìn)道路,也要在憑借自己的能力完成消化吸收再創(chuàng)新之后,才能稱得上自主可控安全。比如在充分消化Centaur公司設(shè)計(jì)的以賽亞之后,憑借境內(nèi)設(shè)計(jì)團(tuán)隊(duì)設(shè)計(jì)出可以匹敵Intel SNB或者AMD Zen的產(chǎn)品,這才真的稱得上再創(chuàng)新。拿Centaur公司設(shè)計(jì)的以賽亞,改制程堆核心數(shù)提升總線頻率做出一款CPU就宣傳自主可控,無(wú)非是自欺欺人而已。

(圖21)

(圖22)

(圖23)