張平
俄羅斯在自研處理器方面有著悠久的歷史,至少?gòu)?011年開始,俄羅斯就致力于研發(fā)一款全新的處理器,希望可以用于俄羅斯政府或者其相關(guān)單位的服務(wù)器和PC等設(shè)備,從而實(shí)現(xiàn)設(shè)備的全面自主可控。這款處理器的名稱就叫Elbrus,名稱來源可能是大高加索地區(qū)的一座山峰,其技術(shù)來源則沒有詳細(xì)的說明,但是據(jù)一些業(yè)內(nèi)人士猜測(cè),Elbrus的架構(gòu)可能來自SPARC,因?yàn)樵O(shè)計(jì)Elbrus處理器的公司簡(jiǎn)寫是MCST,全稱是MoscowCenterofSPARCTechnologies,可以看出名稱中和SPARC有一定淵源。SPARC全稱是ScalableProcessorARChitecture,也就是可擴(kuò)展處理器架構(gòu)的簡(jiǎn)寫。這是一種RISC架構(gòu),最早出現(xiàn)在SUN公司在1985年推出的處理器上。SPARC在隨后的數(shù)十年發(fā)展中,秉承了開放和可授權(quán)的發(fā)展理念,包括德州儀器、富士通、ORACLE等廠商都是用SPARC的授權(quán)開發(fā)自己的產(chǎn)品。SPARC架構(gòu)在2008年左右就已經(jīng)徹底停止發(fā)展,但是其開源的架構(gòu)和技術(shù)設(shè)計(jì)規(guī)范、設(shè)計(jì)思想等依舊在業(yè)內(nèi)持續(xù)流傳。
言歸正傳,接下來本文正式介紹有關(guān)Elbrus處理器和相關(guān)產(chǎn)品的內(nèi)容。需要說明的是,目前的相關(guān)資料主要來自2015年9月份“RussianSupercomputingDays”中發(fā)布的有關(guān)Elbrus處理器的相關(guān)內(nèi)容,以及2020年發(fā)布的“Руководствопоэффективномупрограммированиюнаплатформе?Эльбрус?”也就是“Elbrus平臺(tái)編程語言概述”,因此可能和目前Elbrus處理器的真實(shí)發(fā)展情況存在很大的偏差,畢竟5年前的架構(gòu)介紹和今年的編程環(huán)境文件本身包含的信息都不夠新、不夠完善。
四代產(chǎn)品發(fā)展史:Elbrus家族和產(chǎn)品簡(jiǎn)介
Elbrus和相關(guān)產(chǎn)品家族的內(nèi)容雖然出現(xiàn)得比較早,但是一直以來都比較神秘。根據(jù)2015年的資料,Elbrus家族的產(chǎn)品和技術(shù)目前包含微處理器,也就是被稱作Elbrus的CPU和一些被稱作MCST-RLine的輔助產(chǎn)品,以及控制芯片(南橋)、計(jì)算機(jī)或者計(jì)算機(jī)模塊等。在軟件支持方面,Elbrus擁有完整的操作系統(tǒng),支持三路并行編譯的編譯器和軟件開發(fā)包,以及二進(jìn)制兼容執(zhí)行技術(shù)和相關(guān)安全執(zhí)行技術(shù)等。
2011年:90nm的Elbrus-2C+
2011年第二季度流片的Elbrus-2C+處理器在2012年正式上市。其相關(guān)規(guī)格包括采用TSMC90nm工藝制造,10層金屬層,核心面積為17.2×16.8mm,運(yùn)行頻率為500MHz,設(shè)計(jì)功耗為25W。處理器內(nèi)包含了2個(gè)Elbrus架構(gòu)的核心和4個(gè)DSP多核心架構(gòu)的核心。性能方面的指標(biāo)是單精度浮點(diǎn)計(jì)算能力為28GFLOPS,雙精度浮點(diǎn)計(jì)算能力為8GFLOPS,其中雙精度計(jì)算能力全部來自2個(gè)CPU核心,單精度計(jì)算能力方面CPU核心貢獻(xiàn)了16GFLOPS,DSP核心貢獻(xiàn)了12GFLOPS。從產(chǎn)品命名可以看出,Elbrus處理器極有可能早在2011年之前就已經(jīng)有至少2個(gè)版本的產(chǎn)品完成了研發(fā),否則其命名不太可能以“2C+”這樣的后綴出現(xiàn)。這樣的后綴一般會(huì)被認(rèn)為這款產(chǎn)品屬于Elbrus家族第二代產(chǎn)品C型的加強(qiáng)版。因此,Elbrus的研發(fā)歷史比目前披露出來的還要長(zhǎng)許多。
除了處理器之外,和Elbrus-2C+搭配的產(chǎn)品還包括南橋芯片KPI-1,采用TSMC130nm工藝制造,9個(gè)金屬層,運(yùn)行頻率為250MHz,功耗為5W,芯片面積為10.6×10.6mm,流片時(shí)間為2010年,實(shí)際上市時(shí)間在2011年第一季度。相關(guān)技術(shù)特性包括擁有14個(gè)連接界面,包括系統(tǒng)連接(可能是和CPU連接的總線),PCIe支持、PCI支持、網(wǎng)絡(luò)支持(10/100/1000)、SATA2.0支持、USB2.0支持、RS232/485并口支持等。具體到每個(gè)功能分配了多少個(gè)接口,這里沒有相關(guān)信息。
由于Elbrus-2C+的實(shí)際上市時(shí)間是2012年,因此我們可以用2012年市面上銷售的AMD和英特爾處理器進(jìn)行一些對(duì)比。2012年英特爾主流的處理器是32nm的SandyBridge和剛發(fā)布的22nm工藝IvyBridge,也就是第二代、第三代酷睿處理器,基礎(chǔ)頻率一般超過2.0GHz,市售主流產(chǎn)品核心數(shù)量一般是2~4個(gè)。相比之下,Elbrus-2C+的處理器采用的是90nm工藝,這大概是英特爾在2005年使用的工藝技術(shù),Elbrus-2C+大概落后英特爾4代左右(90nm、65nm、45nm、32nm、22nm),頻率上也難以提升。性能方面,SandyBridge架構(gòu)的Corei7-2600的理論浮點(diǎn)計(jì)算能力大約是50GFLOPS左右,也遠(yuǎn)遠(yuǎn)超過有DSP加持的Elbrus-2C+。
2013年:Elbrus-4C
2013年,Elbrus-4C誕生了,并于2014年正式上市。這一次,Elbrus-4C中包含了4個(gè)核心,沒有再加入DSP核心。Elbrus-4C采用了臺(tái)積電65nm工藝,核心面積大幅度增加到了380平方毫米,運(yùn)行頻率提升至800MHz,功耗為40W。緩存方面,Elbrus-4C加入了8MB的L2緩存,每個(gè)核心分配2MB。內(nèi)存方面采用了不多見的3通道DDR3內(nèi)存,最大可以提供38.4GB/s的帶寬。性能方面,Elbrus-4C的性能提升至理論單精度計(jì)算能力50GFLOPS,理論雙精度計(jì)算能力25GFLOPS。值得注意的是,這是在頻率不到1GHz的情況下取得的性能數(shù)據(jù),這顯示出新的處理器架構(gòu)大幅度加強(qiáng)了浮點(diǎn)計(jì)算能力。
除了處理器之外,在設(shè)備方面,由于有了Elbrus-2C+和Elbrus-4C這兩個(gè)平臺(tái),研發(fā)Elbrus處理器的MCST還開發(fā)出了一體機(jī)、緊湊小型機(jī)和全尺寸臺(tái)式機(jī)、服務(wù)器以及可擴(kuò)展刀片服務(wù)器等設(shè)備。其中Elbrus-4C被使用在一款臺(tái)式設(shè)備中,除了處理器外,主板采用了傳統(tǒng)的Micro-ATX設(shè)計(jì),擁有一個(gè)PCIe1.0x8插槽以及2個(gè)PCI插槽,千兆網(wǎng)卡和3個(gè)SATA2.0接口。此外,無論是早期的Elbrus-2C+還是Elbrus-4C,都搭配了相關(guān)2D和3D加速卡,不過現(xiàn)在并不清楚這些2D和3D加速設(shè)備的相關(guān)參數(shù),極有可能只能提供最基本的2D和3D加速能力。
除了個(gè)人電腦外,Elbrus-4C處理器還被使用在服務(wù)器產(chǎn)品中,被稱作ServerElbrus-4.4。ServerElbrus-4.4的一個(gè)機(jī)架中布置了4顆Elbrus-4C處理器,總計(jì)16個(gè)核心,與之相配的是2個(gè)南橋。內(nèi)存方面擁有12根DDR3-1600內(nèi)存,總?cè)萘窟_(dá)96GB。性能方面,整個(gè)機(jī)架能夠帶來大約200GFLOPS的單精度計(jì)算能力。進(jìn)一步擴(kuò)展的話,ServerElbrus-4.4還可以實(shí)現(xiàn)一個(gè)大型機(jī)柜配置,整個(gè)設(shè)備最多可以擴(kuò)展64個(gè)機(jī)架、256顆處理器和1024顆核心,內(nèi)存容量可以擴(kuò)展至6~12TB,硬盤容量可以擴(kuò)展至32~64TB。這些處理器之間的互聯(lián)同樣由MCST設(shè)計(jì)的FPGA互聯(lián)加速芯片完成。功耗方面,這類機(jī)柜的最大功耗為20kW,采用風(fēng)冷散熱,峰值性能最高可達(dá)13.8TFLOPS。
2015年:Elbrus-8C
2015年,Elbrus又誕生了全新的Elbrus-8C。新的處理器內(nèi)部包含了8個(gè)核心,每個(gè)周期可以運(yùn)行30個(gè)OPS,性能較之前的產(chǎn)品大幅提升。這一次,處理器采用了臺(tái)積電28nm工藝制造,核心面積為321.4平方毫米,頻率來到了1.3GHz的水平,功耗暫時(shí)還沒有提及,但是應(yīng)該不會(huì)太高。緩存方面的改進(jìn)在于為每顆核心配備了512KBL2緩存,還加入了16MBL3共享緩存。由于核心數(shù)量、頻率等大幅度提升,因此Elbrus-8C的理論單精度、雙精度性能達(dá)到了250GFLOPS和125GFLOPS。
相比之下,2015年英特爾的典型處理器是Corei7-6700K,這款處理器采用4核心8線程設(shè)計(jì),頻率為4.0~4.2GHz,其Whetstone實(shí)測(cè)單精度性能大約是110GFLOPS,雙精度性能大約在80GFLOPS左右。當(dāng)然,理論數(shù)據(jù)和實(shí)測(cè)數(shù)據(jù)基本不具有可比性,僅供參考。
為了進(jìn)一步提高性能,Elbrus平臺(tái)配置的南橋芯片也得了更新。新的南橋芯片被稱為KPI-2,采用臺(tái)積電65nm工藝制造。KPI-2和CPU連接帶寬提升到了16GB/s,擁有新的PCIe控制器,能夠提供“8+8+4”的PCIe通道配置。此外還加入了3個(gè)千兆網(wǎng)絡(luò)接口、8個(gè)SATA3.0接口和8個(gè)USB2.0接口,另外還有SPMC控制器和中斷控制器等。這款南橋芯片在2015年第四季度流片,2016年第一季度正式上市。
2018年:Elbrus-8V
在2015年的產(chǎn)品介紹內(nèi)容中,還提到了2018年新處理器的發(fā)展。2018年的新處理器核心數(shù)量依舊是8顆,但是核心架構(gòu)發(fā)生了較大的變化,因此型號(hào)后綴的字母改成了V,處理器型號(hào)全稱為Elbrus-8V。相比上代產(chǎn)品,新的Elbrus-8V每周期執(zhí)行指令能力大幅提升了多達(dá)66%左右,現(xiàn)在每周期可以執(zhí)行50條ops,核心頻率也提升至1.5GHz。緩存配置上依舊維持了Elbrus-8C的方案,那就是為每顆核心配備512KBL2緩存,搭配16MBL3共享緩存。工藝方面,Elbrus-8V和Elbrus-8C采用了同樣的臺(tái)積電28nm工藝,但是,Elbrus-8V的核心面積大幅度提升至435平方毫米,相比前代產(chǎn)品差不多大了1/3。性能方面,Elbrus-8V的峰值單精度、雙精度性能分別是512+GFLOPS和256+GFLOPS。2018年第二季度流片,2018年第四季度上市。
不過上述情況在2020年的“Elbrus平臺(tái)編程語言概述”發(fā)生了變化。新的文件顯示,最新的處理器型號(hào)采用了Elbrus-8CB的命名方式,工藝依舊是臺(tái)積電的28nm,核心面積333平方毫米(顯著小于Elbrus-8V),具有8顆1.5GHz的內(nèi)核,內(nèi)存方面使用DDR4-2400四通道設(shè)計(jì),內(nèi)存總帶寬達(dá)68.3GB/s。緩存方面,整個(gè)處理器具有獨(dú)立的L1和L2緩存。L1數(shù)據(jù)緩存64KB、L1指令緩存128KB,L2緩存512KB,L3緩存則是由所有核心共享16MB。性能方面,處理器單精度計(jì)算能力提升至576GFLOPS,遠(yuǎn)遠(yuǎn)超過之前的Elbrus-8C的性能。
目前,我們尚不清楚在Elbrus-8C和Elbrus-8V、Elbrus-8CB之間發(fā)生了什么故事。但是從上述參數(shù)可以看出,Elbrus-8V似乎被取消了,換成了Elbrus-8CB,后者在核心面積上沒有大幅度增加的情況下也達(dá)到了Elbrus-8V預(yù)期的性能,這應(yīng)該是現(xiàn)有條件下比較合理的解釋了。
目前得到的有關(guān)Elbrus家族處理器的信息就是這樣了。在性能提升方面,Elbrus家族的產(chǎn)品現(xiàn)在基本上是2年更新一代架構(gòu),其中2013年的架構(gòu)相比2011年,性能提升了3倍左右,2015年是進(jìn)步幅度最大的架構(gòu),相比2013年提升了大約4~5倍,2018年則在2013年的基礎(chǔ)上提升了大約2倍。從最早期的單精度計(jì)算能力16GFLOPS到現(xiàn)在的512+GFLOPS,Elbrus用大約7年時(shí)間完成了性能的飛躍。
不過依舊需要值得注意的是,Elbrus和相關(guān)家族產(chǎn)品目前沒有對(duì)外公布太多的信息,因此其理論性能可能和實(shí)際測(cè)試存在比較大的差異。另外由于架構(gòu)差異,Elbrus處理器和英特爾、AMD這些我們熟悉的處理器之間的性能數(shù)據(jù)對(duì)比只能作為參考來看,在它們運(yùn)行在統(tǒng)一環(huán)境下的測(cè)試開始之前,大部分性能和參數(shù)對(duì)比的意義都不算太大。
僅有的信息:Elbrus架構(gòu)初探
Elbrus處理器在性能上的進(jìn)步速度還是非??斓?,但是在架構(gòu)設(shè)計(jì)上,這款處理器顯然并不是ARM、X86、MIPS等我們熟知的處理器架構(gòu)中的任何一個(gè)。在本文開始的時(shí)候,我們?cè)岬剿赡懿捎玫氖荢PARC架構(gòu),更直接一些的話,Elbrus處理器采用的是類VLIW,也就是VeryLongInstructionWord,超長(zhǎng)指令字架構(gòu)。所謂VLIW,是指一種非常長(zhǎng)的指令組合,這種組合會(huì)把很多指令連接在一起一次性處理,從而提高計(jì)算的速度。VLIW是指令級(jí)并行,因此非常依賴于編譯器的能力。一般來說,在GPU這樣擁有大量固定類型計(jì)算的應(yīng)用場(chǎng)景中,VLIW是非常容易使用的,但是依舊需要編譯器的配合。
Elbrus帶來了一些自己處理器架構(gòu)的相關(guān)信息。比如每核心、每周期最多25個(gè)標(biāo)量操作,每核心每周期可以執(zhí)行12個(gè)雙精度浮點(diǎn)計(jì)算、支持多核心架構(gòu)、支持高速緩存相關(guān)的非一致性內(nèi)存訪問(CacheCoherentNon-UniformMemoryAccess,ccNUMA)等技術(shù)。此外,它還支持二進(jìn)制兼容性功能、安全程序執(zhí)行等功能。
在兼容性方面,Elbrus通過基于透明的動(dòng)態(tài)二進(jìn)制編譯技術(shù),實(shí)現(xiàn)了對(duì)x86和x86-64指令集的支持,但是具體實(shí)現(xiàn)方式未知。不過一些文件顯示Elbrus可以實(shí)現(xiàn)不同的指令動(dòng)態(tài)編譯級(jí)別,比如最簡(jiǎn)單的指令使用模板就能完成編譯,速度最快。中等難度的指令需要基于Region進(jìn)行編譯,速度比較快。最高難度的需要使用到處理器的并行架構(gòu)才能完成處理。此外Elbrus的編譯模塊還能夠高效地執(zhí)行多線程計(jì)算,并和操作系統(tǒng)實(shí)現(xiàn)對(duì)異步異常的處理和中斷,將部分代碼保留在編譯庫(kù)中用于重復(fù)執(zhí)行,通過反饋控制調(diào)整性能,從而實(shí)現(xiàn)對(duì)性能有嚴(yán)重影響的代碼重新編譯等。
不僅如此,Elbrus得到了20多種操作系統(tǒng)的支持,包括WindowsXP、Windows7、Linux、QNX、PS/2等。由于在操作系統(tǒng)上支持的廣泛性,因此Elbrus能夠運(yùn)行超過1000種現(xiàn)有的應(yīng)用程序。不過,任何的兼容和轉(zhuǎn)換都需要產(chǎn)生性能開銷,Elbrus在2015年的文件中宣稱,研發(fā)人員希望將這種轉(zhuǎn)換x86和x86-64帶來的性能損失控制在20%以內(nèi)。
在內(nèi)核方面,Elbrus給出了有關(guān)Elbrus-8CB核心的一些信息。整個(gè)Elbrus-8CB的內(nèi)核執(zhí)行部分擁有6個(gè)端口,并且這些端口幾乎都是復(fù)合功能設(shè)計(jì)。舉例來說,其中四個(gè)端口可以執(zhí)行LD加載操作,2個(gè)端口可以執(zhí)行ST存儲(chǔ)操作,但是所有的端口都可以執(zhí)行整數(shù)計(jì)算,四個(gè)端口可以執(zhí)行浮點(diǎn)、矢量和比較操作等。這種復(fù)合型的端口設(shè)計(jì)在現(xiàn)代處理器架構(gòu)中不算少見,但是每一個(gè)端口都是復(fù)合型的設(shè)計(jì)則很少見了,這可能和Elbrus-8CB采用的類VLIW指令集相關(guān)。
在安全特性方面,Elbrus也做出了一些加強(qiáng),對(duì)所有的指針都添加了標(biāo)簽保護(hù)使得惡意操作無法偽造,并支持高級(jí)語言范圍、對(duì)象邊界由描述符控制等。其他一些該處理器的信息還包括:Elbrus處理器的架構(gòu)擁有256個(gè)寄存器用于整數(shù)和實(shí)數(shù)數(shù)據(jù),32個(gè)寄存器用于全局?jǐn)?shù)據(jù),224個(gè)寄存器用于過程堆棧。
目前本文對(duì)Elbrus的架構(gòu)的了解和描述還非常粗淺。出現(xiàn)這種問題的原因還是其披露的資料太少且太老。其實(shí)不光是處理器架構(gòu),對(duì)整個(gè)Elbrus處理器家族和相關(guān)的產(chǎn)品,目前也沒有太多的信息對(duì)外透露,尤其是具體的設(shè)計(jì)參數(shù)、性能等方面,因此對(duì)其究竟達(dá)到了怎樣的水平高度難以有準(zhǔn)確的判斷。
獨(dú)特的設(shè)計(jì),神秘的產(chǎn)品
x86通用處理器的設(shè)計(jì)在這么多年以來都很少看到新的企業(yè)入場(chǎng),除了英特爾和ARM,也就只有中國(guó)的威盛電子以及上海兆芯有相關(guān)產(chǎn)品推出。x86架構(gòu)廣泛的兼容性和高聳的專利墻既吸引著用戶加入,又讓設(shè)計(jì)人員和廠商望“墻”興嘆。本次Elbrus的出現(xiàn),讓人們看到一個(gè)特殊的可能性,且不說最終具體實(shí)現(xiàn)的效果如何,Elbrus最起碼通過數(shù)代產(chǎn)品,實(shí)現(xiàn)了兼容x86和x86-64架構(gòu)的一種全新方式,路是一步一步走的,能走通,最起碼比沒希望要好不少。
對(duì)Elbrus處理器而言,其應(yīng)用范圍主要是俄羅斯的政府和相關(guān)部門,可見其在市場(chǎng)方面也避開了英特爾和AMD這樣的巨頭,主要以定向銷售為主。這一方面意味著Elbrus處理器可能會(huì)存在很長(zhǎng)一段時(shí)間,但另一方面也意味著我們要進(jìn)一步更深入地了解它就顯得更為困難了,尤其是除了一些程序編譯說明外,Elbrus的不少介紹文件還是2015年的。神秘有時(shí)候既是一種武器,也是一種防御,希望未來我們能看到更多Elbrus處理器的技術(shù)與性能信息。