×
×

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

2020-05-12 13:06:07 來源:EETOP整理自technews

本文將帶你了解:

? 前蘇聯計算機工業象征的Elbrus電腦系列

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

論「世界上第一個非循序指令執行的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 指令集相容處理器)。

蘇聯解體后,理所當然的,美國人一定對老對手的計算機技術深感興趣。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 的傳說。

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萬。天知道前蘇聯到底藏了哪些不為人知的「黑科技」,但這也太夸張了,怎么看都不像是真的。

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

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

在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。

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

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

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

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

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

但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位元),也充滿了超級電腦的色彩。

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

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

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

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

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

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

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

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

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

  1. EETOP 官方微信

  2. 創芯大講堂 在線教育

  3. 創芯老字號 半導體快訊

相關文章

全部評論

玩呗麻将牌怎么下载 今天广东36选7开奖号 河北体彩11选五走势图一定 北京快乐8是骗局 江苏十一选五前三组选 山西11选5玩法及奖金 云南十一选五500期一彩图 瑞安股票配资 湖南快乐十分apk 国际期货配资网 七星彩开奖直播现场 江西时时彩五星走势 北京快中彩中奖详情 北京快三的和值走势图 股票指标 黑龙江快乐十分开奖数据 股票分析师张磊博客