曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!


3樓貓 發佈時間:2025-02-03 18:25:29 作者:鑽石鎬爺爺 Language

 EETOP整理自:technews    作者 痴漢水球


推薦閱讀:

  • 臺灣處理器拾遺:超級摳門的Centaur造就了威盛x86

  • 臺灣處理器拾遺(下):唯偏執狂得以倖存,但卻不會成功

  • 揭秘曾經的黑科技:前蘇聯的三進制計算機

本文將帶你瞭解:

  前蘇聯計算機工業象徵的Elbrus電腦系列

  Elbrus崛起路上的兩位重量級大人物

  1999年初倍受爭議的《俄羅斯人來了》

  充滿俄國式暴力美學的Elbrus 2000

  高性能能處理器的研製能力仍為國家安全的重中之重

2019年,俄羅斯制「Elbrus」處理器執行遊戲《上古卷軸III》畫面在網路曝光,提醒世人,俄羅斯並未放棄將處理器視為核心技術、企圖掌握自主研發能量的努力。

注:Elbrus為高加索山脈主峰,為歐洲最高峰,中文翻譯:厄爾布魯士峰

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第0張

這30年來,坊間也一直不缺「很少有人知道,Intel的Pentium和Itanium處理器,在世界上最著名的技術源頭,其實來自於蘇聯的超級電腦與優秀工程師」之類的鄉野謠傳。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第1張

從1947年到1991年的冷戰,世界分成兩大陣營,在這將長達近半世紀的時間內,前蘇聯也建立起和西方世界分廳抗拒的計算機工業技術體系。回顧歷史,不可否認,前蘇聯在計算機技術的發展中,取得相當重要的成就。

各位想想看,蘇聯早在1957年就發射人類第一顆太空衛星,震撼了整個西方世界,1965年更創下人類史上第一次的太空漫步,看在龐大的國家核心重工業份上,加上航空航天和核能等琳琅滿目的先進科技研究,難道蘇聯的科學家都非得自己用紙筆,去算那些有字天書般的數學方程式嗎?無論如何,蘇聯非得自行打造高效能電腦,以滿足尖端科技的計算需求不可。(EETOP編輯)

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第2張

早從1948年,蘇聯就建造了用於研發彈道與火箭的MESM(Malaya Elektronno-Schetnaya Mashina,雖然以今天觀點來看可是一點都不小的「小型電子計算機」),1950到1960年代,再由5,000個真空管組成的BESM(Bolshaya Elektronno-Schetnaya Mashina)系列接替。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第3張

BESM系列相當長壽,做為末代機種的BESM-6,從1968年到1987年,總計生產了多達355臺,在1992年才陸續被技術領先好幾代的Elbrus-1K2取代。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第4張

至於一般民用的計算機產品,畢竟蘇聯在這段時期,在怎麼說也是僅次於美國的世界第二大經濟體,就算計算機技術著重在軍工產業,也不代表蘇聯人民就沒電腦和網路可用。但冷戰結束後,直至今日,卻仍然有不少人依然對此偏見深信不疑。

在1980年代,蘇聯陸續仿照西方世界的產品,研製民用電腦與電子遊戲機,像普及的DEC PDP-11 和Apple II 都成為蘇聯「借鑑」的對象。1984年,蘇聯大學與高等學術機構的數學和物理相關科系,普遍設置電腦教室。共產世界的網際網路服務和廣域無線通訊,也在1991年蘇聯解體前陸續實用化。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第5張

但整體看來,前蘇聯在電子工業和半導體產業,遠遠落後於西方陣營和日本,一直是不爭的事實,因為俄國人認為集成電路在核子戰爭的可靠度與抗干擾都不佳,走向了偏好小型化真空管的路線(但這不代表沒在研發集成電路,只是投入優先權較低),從此被西方陣營按在地上摩擦了好幾十年。

1976年9月6日,一架蘇聯空軍的Mig-25突破日本防空網,迫降在日本北海道的函館,向美國和日本投誠,當然馬上被拆個一乾二淨,好好的研究一番。讓西方世界大吃一驚的,除了蘇聯的最先進戰鬥機「竟然是鋼做的(被戲稱「飛得比飛彈還快的不鏽鋼」)」,再就是航電系統「還在用真空管」!(EETOP編輯)

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第6張

論軍用電子科技,過去約定俗成的「蘇聯落後西方十年」都還是太過客氣的說法,直到Su-27戰鬥機,都還發生雷達嚴重過重,導致重新設計機體的狀況。不過今日的音響愛好者,可能得多多感謝當年俄國人的錯誤決定,讓他們還買得到便宜耐用的蘇聯軍規真空管,聽說還包括Mig-25專用的高檔貨色。

蘇聯解體後,俄羅斯繼承了其計算機工業的主體,但也失去了國家的全力支持,人才大量外流,既有的技術研發團隊也急著尋求資金投入,這也埋下了在1999年2月,做為蘇聯計算機工業象徵的Elbrus,在《微處理器報導》(Microprocessor Report)的爭議性亮相。

蘇聯計算機工業象徵的Elbrus電腦系列

Elbrus(厄爾布魯士峰)山位於俄羅斯西南部大高加索山脈,其海拔5,642公尺的最高峰,不僅是俄羅斯的最高點,更是歐洲第一高峰。俄國人以Elbrus命名蘇聯用來開發飛彈系統、核子武器和太空計劃的超級電腦,可見地位之崇高與期待之殷切。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第7張

(Source:Koshmarov at Russian Wikipedia / CC BY-SA)

時下關於計算機組織結構的主流歷史與課堂上使用的教科書,清一色都是出自於西方世界(尤其是美國)的產物。幾乎成立於1950到1960年代,做為蘇聯計算機工業象徵的Elbrus電腦系列(現屬於MCST,Moscow Center for SPARC Technologies,莫斯科SPARC技術中心),其產品歷程堪稱其縮影。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第8張

論「世界上第一個非循序指令執行的RISC處理器」,一般的制式答案是1990年的IBM Power1(限於浮點運算指令),或者1993年的IBM PowerPC 601。但在1978年完成的蘇聯Elbrus-1,就已經使用結合超標量、非循序執行與預測執行的RISC處理器了,領先美國人整整13年,這應該會顛覆很多人對前蘇聯計算機技術水準的刻板想像。(EETOP編輯)

諷刺的是,因俄國人「太早體驗」超越時代的先進處理器架構,覺得這類硬件設計太過複雜,反而轉向超長指令集架構(VLIW),企圖將複雜度轉嫁到軟件,才催生了在1999年讓眾人瞠目結舌的Elbrus 2000。

Elbrus崛起路上的兩位重量級大人物

在這裡必須介紹被譽為「俄羅斯的克雷(Cray)」、蘇聯超級電腦之父Boris Babayan,出生於1933年,現已高齡87歲,從1950年代就歷經蘇聯早期計算機與超級電腦的研發,擔任Elbrus- 1 與Elbrus-2的副首席設計師,並負責超長指令集架構的Elbrus-3,和後繼的Elbrus 2000(Elbrus-3的單芯片實作)與Elbrus90micro(Elbrus的SPARC v9 指令集相容處理器)。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第9張

(Source:Ggbabayan / CC BY-SA)

蘇聯解體後,理所當然的,美國人一定對老對手的計算機技術深感興趣。Boris Babayan 從1992年開始,在當年成立的MCST(Moscow Center of SPARC Technologies)與Sun一同研發UltraSPARC處理器架構、操作系統(包含Solaris)、編譯器與多媒體函式庫,間接或直接的幫助了Sun的崛起。

據說,原本先找上門洽談合作的是惠普(HP),那時HP和Intel正展開IA-64指令集與Itanium處理器的研發,但Boris Babayan 早在1989年,就跟Sun創辦人Scott McNealy 碰頭了。

Boris Babayan 在2004年8月加入Intel,擔任Intel莫斯科研發中心的微處理器研發主管,也成為第二位獲得Intel院士(Fellow)頭銜的歐洲人。此外,他也得到兩項前蘇聯的最高榮譽,1974年在電腦輔助設計(CAD)的成就拿到「十月革命勳章」,1987年因Elbrus-2超級電腦取得「列寧勳章」,看起來很威。

此外,也值得一提Elbrus另一位重要人物Vladimir Pentkovski,1946年生,2012年逝世於美國,享年66歲。他也參與過Elbrus-1與Elbrus-2超級電腦的研發,並領導高級程序語言El-76的開發。在1986年,他帶領從事32位El-90微處理器的研製,1987年設計完成,1990年樣品問世,基於El-90的El-91C則隨著蘇聯解體而無疾而終。坊間對El-90的普遍評價是「很像稍晚出現的Intel Pentium」,江湖也流傳著Pentium此名,其實源自於Vladimir Pentkovski 的傳說。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第10張

(Source:Thebeatles84 / CC BY-SA)

Vladimir Pentkovski 在1990年代初期移民到美國,1993年進入Intel並晉升為首席工程師,主導Pentium III 的架構(重點在於新增128位元SIMD的SSE指令集,以及為此改善微架構),後來他也長眠於Pentium III 研發工作主要所在地的加州Folsom。無獨有偶,Intel下一個「升級現有處理器的製程,並趁機增加大量新指令」的45nm製程Core 2「Penryn」(SSE4指令集),也是在此地誕生。也許Intel在這裡的團隊,對這件事頗具心得,或本來就專精於此。

各位或多或少應能察覺到:冷戰結束後,在某些科技領域,美國逐步拉開與俄國的差距,前蘇聯人才大量外流,很可能是舉足輕重的因素。

總之,Elbrus以超級電腦起家,其深遠影響也就原封不動的呈現在Elbrus 2000 的特色上,讓世人見識到俄國人獨特的思考邏輯與行事風格。

1999年初倍受爭議的《俄羅斯人來了》

在1999年2月,【微處理器報導】發表了《The Russians Are Coming》一文,深入介紹當時尚無實品,仍處於VerilogRTL語言階段的Elbrus 2000 處理器。

這篇看似平凡的報導,之所以引起爭議和質疑,有3個主因:

俄國人擺明藉此來找肯掏錢的金主:Boris Babayan在英屬開曼群島,成立了號稱擁有366名成員研發團隊的Elbrus International,宣稱他們沒有足夠的資金購置EDA工具,需要6,000萬美元和3年時間,才能完成設計。然後將Verilog語言落實成真正的處理器產品,光要做出嵌入式應用的縮水版E2K處理器,就開價500萬到1,000萬美元的經費。換言之,要做好做滿完整的產品規格,開銷只會更高。

極度不可思議的超高效能、超小芯片面積與超低功耗:假設Elbrus團隊宣稱的效能為真,那將是當時的王者Alpha 21264(EV68)的2.5到3倍,而且耗電量竟然只有一半,晶體管數量也才2800萬。天知道前蘇聯到底藏了哪些不為人知的「黑科技」,但這也太誇張了,怎麼看都不像是真的。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第11張

看完這張比較表後,各位大概也不難理解,為何Intel和HP攜手合作的Itanium會出師不利了,並且被前蘇聯的VLIW專家,視為很好毆打的沙包,在宣傳文件與技術白皮書,緊緊的抓著Itanium窮追猛打。

透過二進制動態編譯的軟件手段件容x86指令集:這讓人不得不第一時間聯想到Transmeta。事實上,TransmetaCEO兼共同創辦人Dave Ditzel,在Sun任職期間,於1992年到1995年,還真的跟Elbrus團隊共事過。但在1999年,經由軟件途徑相容x86的效率,並未獲得充分的實證,更讓Elbrus團隊宣示的驚異效能,充滿了滿滿的問號。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第12張

在1999年,筆者還只是躲在學生宿舍熬夜上網混日子的文組大學生,沒事閒晃Micro Design Resources(主辦微處理器論壇與出版微處理器報導的公司)的網站,尋找計算機結構課程作業要用到的資料。一翻到這篇《The Russians Are Coming》 ,看完之後,除了滿臉黑直線,就無法有其他的生理反應了,更沒料到事隔多年,他們還真的做出如假包換的實際產品。

充滿俄國式暴力美學的Elbrus 2000

研發超級電腦長達數十年,「追求極致的平行化」是Elbrus的基因,所以這些俄國人對於VLIW的看法也極度的獨樹一幟,讓起源於Elbrus-3超級電腦的Elbrus 2000(E2K)看起來就不太像西方人會想出來的玩意。

從VLIW變成「VLI-CIS」:標準的VLIW處理器,假如編譯器能力不足,將會導致指令包內塞NOP(什麼都不做的No-Operation),浪費執行單元、記憶體空間與頻寬,並降低執行效能。俄國人索性就讓E2K變成像CISC一樣可變指令長度的VLIW,想跑什麼就放什麼,一絲一毫都不會浪費。

有趣的是,同樣在1999年面世的Sun MAJC(Microprocessor Architecture for Java Computing,發音是Magic)處理器,也是可變指令長度的VLIW「指令封包」,有鑑於Elbrus團隊與Sun的合作經歷,說這只是單純的巧合,大概也沒人會信吧。但MAJC被Sun用來打造XVR-1000和XVR-4000工作站專業繪圖卡,卻讓人感到有些意外。

E2K單一指令包長度,從1到15個32位指令,加上標示後面整排指令的排序與行為的32位標頭(Header),介於64位到512位。相較於E2K,僅僅3個41位元指令加上5位元指令排序碼的Intel IA-64(Itanium處理器)簡直小巫見大巫。而IA-64也曾是E2K預定「相容」的指令集之一,不限x86。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第13張

然後標頭長達32位,可存放更多的資訊,不只標定指令長度,更可定義複雜的運算行為,協助編譯器進行更積極的最佳化,實現更有效率的靜態指令排程。

一個VLIW指令包只有3個指令的IA-64,容易因多路指令排程浪費指令包空間,造成管線氣泡(Pipeline Bubble)。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第14張

相較之下,E2K單一VLIW指令包可吃1到15個指令,彈性就大多了,也具備減少呼叫副程式資料傳輸量的暫存器框格(Register Window),更額外配置了陣列資料預先擷取緩衝區(Array Prefetch Buffer,APB),以便於執行超級電腦常見的迴圈重疊(Loop Overlapping)。

Elbrus團隊號稱E2K理論上可個別做到單一時鐘週期14個整數運算、或16個浮點運算、或當迴圈重疊時24個浮點運算,光靠帳面上的數字就活活嚇死人。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第15張

雙核心化的數據Cache和暫存器:VLIW處理器內部也需相匹配的寬敞執行單元,因應超長的指令包。E2K的6個整數邏輯運算單元(不含除法)、4個浮點運算單元(加法和乘法)、4個載入回存單元、3個引述(Predicate)單元、2個MMX加法/減法單元、2個MMX乘法/搬移單元、1個整數浮點除法單元(位於ALC5)、1個分支處理單元,分散在6個執行單元(ALC 0到ALC 5)區塊。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第16張

但E2K的暫存器檔案由256個64位元所組成,整數和浮點共用(意謂80位元延伸雙倍精確度浮點數或128位元SIMD需動用兩個暫存器),如果這麼多的運算,要同時存取同一塊暫存器檔案與資料快取記憶體,勢必拉長關鍵電路路徑與存取延遲,更別提資源衝突了。

面對這個問題,俄國人索性放了兩塊內容同步的暫存器檔案(Register File,RF)和L1 Data Cache(L1D),分而治之,乍看之下還以為看到了AMD推土機家族的叢集多執行緒雙核。此外,暫存器檔案的存取接口埠,更是駭人聽聞的「20讀取,10寫入」。

採用如此暴力的高成本手段,解除潛在的效能瓶頸,的確非常的「俄式風格」,極度的「超級電腦」,也難怪當時根本沒人相信,在相近的半導體制程,E2K芯片能夠做的跟Alpha 21264 一樣小。更何況,這票俄國人對當代的先進半導體制程,也是欠缺經驗,預估的2800萬晶體管數量,實在是徹頭徹尾的樂觀過頭。

E2K倒是有個符合「軍事等級安全性」而承襲自Elbrus列祖列宗的特殊技能:每一筆32位元數據都附上2位元標籤,近似於x86指令集分頁表中的禁止執行位元(NX Bits),但更加堅壁清野,據稱能讓E2K可硬件進行動態型別檢查(Dynamic Type Checking),有助於保護軟件運行環境不受不必要的更改和篡改,提升系統安全性。這讓人看起來一頭霧水的功能,其真實效果和真正作用,恐怕只有前蘇聯紅軍和俄羅斯國防軍才會知道了。

預先準備分支目標指令:為了縮短分支代價,減少擷取分支目標指令的時脈週期,E2K提供了同時最多可執行3個的「分支目標準備」(Branch Preparation)指令,編譯器可將其放在分支之前,從指令快Cache預先獲取分支指令的目標。E2K的指令快取的「暴力度」亦不遑多讓,可同時送出多達4個512位元最長指令包(總長度2048位元),也充滿了超級電腦的色彩。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第17張

另外,E2K亦具有VLIW指令集常見的引述執行(Predicated Execution)機制,當可在分支發生之前,確認分支條件的結果,編譯器即可使用引述碼取代分支,來控制指令執行流程。

但假若碰到引述執行無法應付的場合,像分支發生時,來不及確定分支條件結果的話,可選擇性的啟動「雙向預測執行」,徹底揮霍執行單元,兩邊指令流一起跑。當分支條件塵埃落定,不論是否執行完畢,僅保留正確的那一邊。不愧是俄國人,有夠土豪。

動態二進位碼編譯實現x86指令集相容性:E2K並非原生x86處理器,類似系出同源的Transmeta,需藉由動態二進位碼編譯技術相容x86程式碼,必然帶來轉譯過程的效能折損,但也蘊含了對應未來新增x86指令的彈性。按照Elbrus團隊的原始計畫,E2K將同時支援x86與IA-64,但後者已被Intel宣告死亡,被x86-64取而代之,也就沒進展下去的必要。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第18張

理想與現實的差距究竟有多大

E2K遲至2005年才以0.13um製程晶片粉墨登場,即使耗電量僅6W,第一階數據快取容量從8kB激增到64kB,但時鐘頻率卻從1.2GHz大幅縮水到300MHz(那時Intel Pentium 4已進逼4GHz大關),晶體管數量從1999年的2800萬爆增到7580萬,證明當年外界的諸多質疑並非空穴來風,昔日「0.18um製程時126 mm² 晶片面積」會超標多少,就死無對證了。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第19張

雖然MCST持續增加E2K核心數量,也不間斷的微幅改進核心架構,一路將Elbrus處理器推進到16核心(硬件動態指令排程、主頻2GHz、整合南橋晶片組、60億晶體管、臺積電16nm製程、晶片面積400 mm²、功耗100W、2021年量產),但光從歷代產品的製程和芯片面積,就足以斷定Elbrus對上同期Intel與AMD的產品,俄國人的「x86相容處理器」毫無競爭優勢,絲毫佔不了便宜。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第20張

高效能處理器的研製能力仍為國家安全的重中之重

既然產品缺乏競爭力,那俄國人幹嘛死撐活撐,乖乖的掏錢購買美國人的產品不就得了?但從國家安全的角度去考量,完全不是這麼一回事,特別對俄羅斯這種長期跟西方國家對抗的大國來說,更是如此。從民生到軍事,沒有不需要高效能處理器的地方,天底下沒有任何對前途抱有企圖心的國家,會想眼睜睜的看著像處理器這樣的核心技術,完全受制於人。

以俄羅斯來說,儘管計算機技術明顯不如眾多戰略競爭者,近年來制定並實施「2013-2025年電子工業發展規劃」和「國防工業綜合體發展規劃」等產業戰略,仍盡其所能的對內採購國產電子產品,維持本國的軟硬件研發能量(筆者必須再次強調:Elbrus二進制動態轉譯技術的重要性,絕不低於處理器硬件)。否則哪天出現大規模國際衝突,甚至爆發戰爭,美國人一發動禁運,一切就都完了。

曾領先美國13年!突破封鎖/禁運,前蘇聯/俄羅斯的CPU自研之路!-第21張


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com