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