原標題:微軟在計算芯片界的“至尊魔戒”終浮現!破天荒披露與高通聯手打造的全新處理器架構
“至尊魔戒統領眾戒”(One ring to rule them all)是經典魔幻電影《指環王》里最出名的一句臺詞。蟄伏的“至尊魔戒”橫空出世,便引來中土世界的一場腥風血雨。
其實電影中的故事放在當前架構頻出、方案各異的計算芯片領域也不失為一個貼切的比喻。但是否最終會出現一種統領性的架構來解決所有的計算問題?不論是運行操作系統,還是進行AI運算。其實微軟早有布局……
在最近 ISCA 2018 大會(2018 International Symposium on Computer Architecture)上,微軟破天荒披露了秘密與高通合作開發新架構處理器的計劃,而且已經長達 8 年之久,根據微軟研發人員表示,其基于全新 EDGE 架構的 E2 架構已經達到最終階段,已經可以運行包含Linux以及Windows 10等主要操作系統,同時又具備不遜于 GPU 的多工計算能力。
微軟的研發人員也表示,E2 不只要支持主流操作系統,Busybox 的和 FreeRTOS 等嵌入式系統也在支持之列。除了操作系統的支持以外,開發人員也移植了一系列的開發和建構處理器應用程序的工具包,內容包含了標準的 C/C++、Core 運行庫,Windows 內核調試器、Visual C++ 2017 的命令行工具,以及.NET 的實時編譯器 RyuJIT 等。

另外,廣泛被使用的 LLVM C/C++編譯程序和調試器,及相關的運行庫也在移植之列。該研發團隊的終極目標,是要證明即便是在這款全新的處理器架構上,開發者也不用重寫他們的軟件,而只需要重新編譯過就可順利運行。
E2 架構與目前基于 X86 的英特爾、AMD 處理器,以及 ARM 架構處理器是完全不同的架構,它也不是目前市面上可見的開源處理器的變體,而是完全由微軟主導開發出來的全新架構。該架構是基于被稱為顯式數據圖執行 (Explicit Data Graph Execution) 的指令集體系結構,這個架構也被稱為 EDGE 架構。
該架構是一種尚未被實現過的全新指令集,它可將許多單獨的指令組合成一個更大的群組,稱為 hyperblock,其中包含數百或數千個單獨的指令。這些hyperblock然后由 CPU 動態調度。EDGE 因此結合了在編譯時查找獨立數據的 VLIW 概念的優點,以及在數據可用時執行指令的超標量 RISC 概念。
現代 CPU 設計的并行性通常穩定在大約 8 個內部單元和 1 到 8 個”內核”,EDGE 原始設計可支持達數百個內部單元,并提供比現有處理器設計高數百倍的處理速度。
此架構最早是由根據美國國防部高級研究計劃局 (DARPA) 的 Polymorphous Computing Architectures 提出,并由得克薩斯大學奧斯汀分校主導 EDGE 概念的發展,其最初目標是到 2012 年實現 1 TFLOPS 性能的單芯片 CPU 設計,不過直到微軟公開 E2 處理器計劃為止,從未被真正實現過。

而參與開發的高通研究人員正在評估兩種基于 EDGE 指令集的芯片設計,一種是小型的內核,代號為 R0,另一個是運行頻率高達 2GHz,基于 10nm 工藝制造的 R1 內核,都是基于非循序處理 (Out of Order) 的架構。DT 君認為,前者可能是要針對 IoT 或比較單純的網絡通信應用,后者則是要負責主流系統運行,甚至是流行的 AI 模型計算,包含訓練與推理等工作。
由于 EDGE 架構非常擅長多任務運行,同時又能運行操作系統與一般通用計算,若以 EDGE 設計之初的目標,恐怕連英偉達的 GPU 架構也會受到嚴苛的挑戰。
傳統處理器的運作模式就像個垃圾回收機,垃圾循序進入回收機、消化后,里面有個機器人可以把消化后的廢物分組,然后再各自送到獨立的輸送帶上,再由機器的不同部分來進行最終處理。不同的流水線處理不同的工作。
目前,包括英特爾、AMD 以及 Arm 在內的主流處理器都是基于這樣的處理概念,這些處理器其實非常不擅長多任務處理,也因此,在今日的 AI 時代,傳統處理器只能當配角,但 EDGE 架構改變了這個狀況。
該核心內擁有許多小執行單元來執行這些區塊,最多可達數百個計算單元,而流水線 條。作為比較,Arm 最近才推出的 Cortex-A76 同時只能有 8 條流水線 個用于整數數學計算,2 個用于浮點計算,2 個用在訪問存儲器中的數據。因此 EDGE 的理論執行效率可以達到遠高于類似 Arm 之類的傳統 RISC 架構。

傳統架構上,核心的前端會試圖在流水線上安排指令,即便是采用較先進的非循序處理架構,指令集還是必須沿著流水線處理事先被安排好的工作內容,這種亂中有序,就導致了效率的低落。就概念上,EDGE 要避免的就是流水線上的指令有排隊等待被執行的狀況,排隊的時間等于就是被浪費掉。如果流水線上的指令集都要等待前面的指令集被完成之后才能接續執行,就會有很多處理時間被浪費掉。
EDGE 架構可以把程序打散成由簡單指令組成的不同區塊,并且在代碼各自的寄存器中執行,而不會進入通用寄存器之中,通過這種切碎程序的執行方式,來達成多任務效率的提升,并同時維持相關數據的不可分割以及安全性需求。編譯程序還會對代碼進行注釋以描述數據在程序中的流向,從而允許 CPU 相應地調度指令塊。
而最重要的是,在核心處理這些模塊的許多小型執行單元中,可以一次大量執行許多在流水線上的指令,指令集需要被排隊執行的等待時間被降到最低。
E2 基本上是把 RISC 的概念做到極致化的架構,與目前市場上所有的處理架構完全不同,微軟之所以開發這樣的架構其實隱含極為龐大的野心,若利用指令集與架構的改變能帶來革命性的效能演進,那么在量子計算普及之前的半導體計算領域,就有機會以單一架構來一統目前的傳統通用與 AI 計算加速架構。
未來微軟若在自己的軟硬件生態中引入這樣的計算架構,不論要采用開源或者是自行推出處理芯片,都將對包含英特爾、AMD、Arm,甚至英偉達和 FPGA 廠商造成極大的威脅。

Tera-Op 指的是生成一個TFLOPS 處理器,它可以實現每秒萬億次浮點運算。在當時,這是一個很驚人的速度,當然,今天的 GPU 和專業的硬件加速器可以運行得更快些,但它們并不能運行操作系統。
目前只有計算機的頂級通用 CPU 才有機會接近或超越 TFLOPS 屏障。
研究工作進行十年并結束后,TRIPS 項目成功地生產并演示了一種雄心勃勃的原型芯片。微軟的研發實驗室引進了來自 TRIPS 的知識、經驗和架構理念,并融入到現在的 E2 項目中,計劃利用其新穎設計超越目前英特爾和 Arm 的芯片。
E2 已經持續開發了好幾年,但本月發生的三件至關重要的事情。首先,該團隊透露,Windows 10 已經被移植到該架構中,并為應用程序開發人員提供了大量支持材料,使他們能夠為該平臺構建應用程序。2017 年 10 月,研究人員說他們能夠得到 Linux 的權限。
其次,有消息稱,美國芯片設計巨頭高通 (Qualcomm) 正與微軟 (Microsoft) 合作。第三,微軟的網站上沒有很多關于 E2 項目的信息。上周,微軟詭異地刪除了這個項目的相關網頁,將 URL 指向一個不相關的項目。
今年計算機架構國際研討會在本月于加州舉行,會上微軟研究人員 Doug Burger 和 Aaron Smith 以及高通處理器研究部門工程高級主管 Greg Wright 走上舞臺,討論他們的前沿工作,并演示了在 E2 模擬器上運行的 Windows 操作系統。

Burger 是 TRIPS 項目的共同負責人,他曾在奧斯汀德克薩斯大學指導 Smith 博士研究 CPU 軟件設計?,F在他倆都在微軟研究院工作。
Smith 在 LinkedIn 主頁上指出,他正作為一名主要的研究經理,以及他在 E2 項目上的角色:”我開始并領導微軟研究院的 E2 項目,該項目正在研究下一代 EDGE 架構。我把這個項目從一個人團隊發展到有幾十名工程師,他們來自不同的部門、公司和國家?!?/p>
外界知道的是,E2 的指令集是幾年前完成的,現在大部分是保密的。但是,我們知道,每個代碼塊都是從全局寄存器到臨時專用寄存器的數據讀入開始,然后處理這些數據,最后將結果寫回全局寄存器。

微軟在設計芯片方面有自己的優勢。例如,HoloLens 虛擬現實眼鏡上的數學加速器。微軟還進行了大量的私人研究,有些項目已經進入了商業產品,比如在 Linux 系統 SQL Server 上的 Drawbridge;而有些則永遠停留在實驗階段。
E2 公開后,微軟的一位發言人回復了一些額外細節。她說:”E2 目前是一個研究項目,目前還沒有生產計劃?!?/p>
“E2 是一個研究項目,我們做了很多工程來了解這種類型的架構是否能運行真正的堆棧,我們結束了與高通的合作關系,因為研究問題已經得到解答?!?/p>
至于刪除的網頁,她補充說:”鑒于大部分研究工作已經結束,我們決定將網頁的內容降至最低,以減少該研究對現有合作伙伴有沖突的外界猜想?!?/p>

目前此架構已經步入開發的最終階段,可運行主流操作系統,又有不遜于 GPU 與 AI 加速芯片的性能表現是其最大特色,在單一計算架構中能兼顧通用性與多工性能表現,是目前所有計算架構單難以達到的目標。即便是量子計算,目前也多半是用來進行特殊計算的加速,而無法運行操作系統或其他通用計算工作。
高通是否可能使用該架構來進軍終端以及服務器等云端計算市場,如果是,那么該架構對外授權甚至開源的機會就很大;但如果微軟希望打造封閉系統,那么所需要的 EDGE 架構芯片將可能由高通來設計提供,畢竟終端脫離不了無線G 網絡的支持會是終端計算架構的主要發展方向,通過與高通的合作來取得第一手無線技術也是可能的選項,而高通也可能借此架構成為獨家供貨商。
當然,目前英特爾也在推動 CPU 與FPGA 的異構結合,理論上也可以同時運行操作系統與 AI 加速計算,但此架構屬于異構設計,不同計算架構之間的溝通仍需要進行轉換,在某些混合應用上,可能性能就不會那么突出。
但不論未來如何發展,微軟在操作系統與云端服務等應用生態的布局與影響力非常重大,如果真的推出完全針對自己操作系統優化的計算架構,且在單一架構上完成過去必須異構結合才有辦法處理的工作,那么這件事將對整個半導體產業以及軟件平臺生態的意義將不亞于當初 CUDA 以及量子計算產品推出的影響。