高通微軟又有新合作?微軟獨創EDGE架構E2處理器腳步近了
全文字數:1283閱讀時間:5分鐘
微軟進行EDGE架構處理器E2研發已經很多年,但目前關於E2的消息卻很少。這是一顆怎樣的晶元,為何如此神秘?
文|小北
校對|樂川
圖源|微軟
集微網消息,據悉,微軟已經將Windows 10與Linux雙系統移植到了基於EDGE體系結構的E2晶元上。微軟自2010年開始,便致力於進行EDGE架構處理器的研發。
除了雙系統,這顆晶元還移植了Busybox與FreeRTOS,標準C/C++與.NET Core運行時庫,Windows內核調試器,Visual C++ 2017命令行工具以及.NET即時編譯器RyuJIT。
微軟還將廣泛使用的LLVM C/C++編譯器、調試器以及相關的C/C++運行時庫,移植到了E2上。微軟研發團隊希望證明一件事情,即「改變」這顆晶元不需要重新為它編寫軟體,而是只通過重新編譯程序即可。
據悉,E2處理器的原型是具有可編程能力的FPGA,這是晶元開發期間通常採用的形式。微軟團隊開發了一個能夠啟動Windows和Linux系統,並可以運行應用程序的周期精確模擬器。
顯然,微軟E2的設計思想與Arm、AMD等公司大相徑庭,它採用EDGE(Explicit Data Graph Execution)體系結構。據悉,高通研發人員正在評估兩款基於EDGE架構的晶元設計:較小的R0內核,以及運行頻率2GHz、10nm工藝的R1。目前該項目仍在進行中。
如今市面上典型主流處理器的運行規則更像是一個「垃圾回收機」:垃圾通過一條僅有的傳送帶依次進入垃圾回收機,隨後機器根據垃圾的類別進行分類,再送到不同的傳送帶進行獨立傳輸,並最終由機器的不同部分進行處理。以ARM Cortex-A76為例,其指令被分到八個傳送帶送進內核進行傳輸:四路用於整數運算,兩路用於浮點運算,兩路用於訪問存儲器中的數據。即使最前端接收到的是無序的執行指令,處理器也將有條不紊地進行指令的處理。
對於研發人員而言,他們想做的就是:避免資源浪費。舉例而言,儘管一個整數單元不進行任何運算,然而其他路指令的執行卻要進行排隊。如果一條通道的指令執行需要依賴於另外一條通道的指令執行輸出,就需停下來等待,這樣時間與資源就被浪費掉。處理器要每秒運行10億次及以上,就為了保證工作的完成。
也許E2所採用的EDGE架構能有效解決以上問題。EDGE是一種分散式結構,指令映射到多個分片上同時執行。在不同的代碼分片中,代碼使用其專用寄存器,而非全局訪問的執行模式。編譯器還會對代碼進行注釋以描述數據在程序中的流向,從而允許CPU相應地調度指令塊。
而且,EDGE可以讓核心處理器通過分片技術同時處理多個指令。這與Cortex-A76的運行方式是不同的。EDGE的目標就是比競爭對手的架構可以更快地運行軟體。就像前面提到的高通R1設計一樣。 R1是32位指令寬的亂序處理器藍圖,R0是8位寬。
E2晶元的研發已進行多年,透過目前的消息來「窺見」E2的研發進展。
去年10月份,Linux系統在E2中啟動,如今Windows 10已經被移植到該架構中,同時微軟正在與晶元巨頭高通開展合作。不過微軟官網上周刪除了E2項目的相關頁面及最新信息。
在今年美國加州舉辦的計算機體系結構國際會議上,微軟研究員Doug Burger、Aaron Smith、Greg Wright與高通處理器研究部門的高級工程主管,都發表了關於EDGE處理器的演講,並演示了Windows在E2模擬器上的運行情況。
儘管E2的指令部署已經在幾年前完成,但是現在大部分信息仍作為機密不對外公開。目前來看,外界可得知的消息就是每個代碼塊都會從全局寄存器讀取數據,並在臨時專用寄存器進行數據的處理,最終將結果寫回全局寄存器。
微軟在設計晶元方面已經有了一定的案例,例如HoloLens虛擬現實護目鏡中的數學加速器。 據推測,這種E2架構設計可能最適合在FPGA中實現「軟」處理器。
END
TAG:半導體投資聯盟 |