Linux 64位元 SoC 嵌入式

硬體虛擬化技術發威 MIPS架構加速64位元時代來臨

2015-02-02
Linux已成為全球最廣泛使用的作業系統(OS)之一。一開始,Linux是為了支援英特爾(Intel)x86 PC所開發的免費作業系統,不過目前已逐漸擴大應用範圍,現今可在絕大部分的電腦硬體平台上執行。
此外,Linux也是MIPS架構最常使用的作業系統之一。過去30年來,支援32位元與64位元MIPS處理器的Linux軟體生態系統已成熟發展,並涵蓋從家庭網路路由器到骨幹網路等各類產品。

目前Linux核心可支援多種運算架構,並能在從行動電話到超級電腦等不同型態的裝置上執行。由於此作業系統的通用性,因此不管是嵌入式單核心晶片、內建多顆處理器核心的伺服器系統單晶片(SoC)、或是包含數百顆處理器核心的基地台設備,都是其部署目標。

優異的擴充性是Linux能夠如此成功的原因之一,這也是為什麼它能廣泛地促進應用程式的發展;讓支援Linux的使用者應用程式能夠輕鬆地移植到速度更快、功能更強大的處理器上。

為了充分發揮軟體的可移植性並最大化其擴充性,任何一種軟體,都須要能強化其重複使用性以及可靠性,才能加速產品上市時程。尤其,為了快速、輕鬆地開發穩固耐用的產品,讓32位元軟體能在64位元的環境中重複使用是非常重要的。

回顧PC產業從32位元朝64位元運算的移轉過程,可以發現在硬體與作業系統過渡到64位元之後,仍將會持續使用32位元軟體。產業已經花了30年的時間撰寫、並最佳化適用於32位元架構的軟體,因此,在移轉到64位元的世界之前,必須能盡可能地重複使用這些32位元架構的軟體。

提升CPU運算能力 硬體虛擬化技術漸露頭角

未來的高效能處理平台是以64位元多核心中央處理器(CPU)為基礎。MIPS是第一款可支援64位元指令與資料的CPU IP架構;其最新版本(Release 6)採用既有的純粹精簡指令集(RISC)架構,並進一步簡化設計,為下一代應用帶來高效能與功率效率;另外,其指令集也已經過簡化,同時也改善運算碼對映(Opcode Map),以便未來持續擴展。

最近發布的MIPS I6400 64位元CPU就是以MIPS Release 6為基礎,並包括專為因應行動、家庭娛樂、汽車、網路和許多其他市場需求所設計的多項特性。這些特性包括了同步多執行緒作業、128位元單指令多重資料(SIMD)指令集、完整的硬體虛擬化、先進的功率管理,以及支援多重的可信任執行環境(Trusted Execution Environment, TEE)。

幸運的是,像硬體虛擬化及硬體多執行緒等對嵌入式設計來說還算新的技術,現正逐漸成為主流,有助於整個處理平台能更輕鬆地同時提升效能與可靠性。

透過朝多核心與多執行緒移轉,使用者能運用的CPU運算能力將會增強。除此之外,虛擬化技術能讓應用程式毋須修改就能執行,使得將一個執行緒或核心專供於某特定應用程式來使用變為可行。

當64位元Linux在SoC上執行時,使用者可透過虛擬化技術來設定一個虛擬機,以用來執行既有執行在單處理器上的Linux,以及未修改的使用者應用程式。這能讓既有的軟體以完整的效能執行;將此方法與多核心設計結合,僅需簡單的任務分割便能進一步地提升效能。

舉例來說,有些行動電話的應用處理器會採用高達八顆64位元核心,不管使用者是否都認同這麼多的核心的必要性,但該設計已成為市場的基準要求。這一部分是因為有些執行Linux的Android應用程式被視為基本的建構模塊,能從一顆擴充到八顆核心。

然而,在大部分的32位元應用程式都被移植到64位元處理器之前,這類最新款的八核心手機在可預見的未來還是只能執行相同的32位元應用程式。

此外,網路設備一直是多核心與多執行緒處理器的主要使用者。網路軟體的一個重要特性是,它在本質上是多執行緒的,且通常會執行三項重要任務:傳送、接收及處理資料封包。

MIPS高擴充性有助整合多個處理器

一旦線路的傳輸速度和處理需求增加,平行任務的數量也會隨之增加。在高階網路應用中--從網際網路骨幹交換器到行動基地台,經常可以看到高達數百個或甚至數千個MIPS處理器核心的數量。

例如,MIPS I6400能從一個擴充到超過一千五百個虛擬核心,並建置新的省電技術,讓系統設計人員能在核心及叢集(Cluster)層級來控制嵌入式處理器。目前業者已建置高度的可擴充性,因為在未來幾年內,隨著Multi-gigabit網際網路更為成熟,核心數量也會持續地增加,企業網路用的多核心處理器也將整合專用的協同處理器與封包處理加速器、記憶體模組、介面,以及複雜的互連設計。

舉例來說,資料平面(Data Plane)卸載能利用一個I-class MIPS處理器叢集,以及一組可配置的硬體功能,或是專用的晶片上的(On-chip)加速器來執行。基於Release 6架構的MIPS CPU建置了功能強大、無延遲間隙的緊密分支(Compact Branch),以及多種適用於HPC應用的新指令,如資料庫搜尋、多媒體處理和科學應用。

對更特定的任務來說,系統設計人員還能增加晶片上的加速器,讓多核心MIPS CPU僅執行控制平面的功能;雖然這意味著一定程度的軟體開銷,但能為封包分類(編輯、轉發等)、流量微管理、資料流控制或資料緩衝器的管理等任務顯著提升效能。

晶片上的加速器也針對網路應用建置了一系列的安全解決方案,包括簡單的安全模塊(對稱/非對稱加密、認證引擎)、高效能協定處理引擎(針對IPSec、MACSec和安全通訊端階層(SSL)/資料包傳輸層安全性(DTLS)卸載),以及SoC的安全基礎架構。

最後,高度整合的網路和通訊SoC可以加入可編程的無線電處理器,其中內建可動態支援802.11和藍牙等多種通訊標準的特性,以取代多個硬布線(Harewired)的引擎。這些無線電處理器建置的結構比較不適合於執行訊號降頻轉換和先進錯誤修正的這類軟體,但能在不同的標準間重複使用。

數位用戶迴路(DSL)閘道器和無線路由器這類的家庭應用,一直是採用單核心MIPS處理器--現在正成為速度瓶頸。這些裝置大部分都是執行Linux,以及以軟體撰寫的合格語音和DSL編解碼器。

事實上,對下一代的路由器和閘道器來說,只須移轉到新的多核心64位元處理器,便能為編解碼器提供加倍的處理器運算能力。透過利用相同的32位元軟體,升級的SoC毋須重新認證便能加快上市腳步。隨著軟體最佳化設計的持續進展,不同的編程技巧將能用來進一步發揮多執行緒或多核心擴充性的優勢。

目前市場上有兩種Linux版本,單處理器(Uniprocessor)Linux及多處理器(SMP)Linux。即使是單處理器系統,使用者也應該積極採用SMP Linux。SMP Linux是專為多核心處理器所設計,同時也是Linux可擴充性的基礎,雖然SMP Linux會消耗一小部分的效能開銷,但能為未來產品奠定基礎,提供裝置製造商過渡到多執行緒軟體所需的時間,以便實現更高的效能並增加新的特性。

日前成立的prpl基金會也將協助推動此技術移轉,並專注於推動下一代「資料中心到裝置」的可移植軟體與虛擬化架構。

現有的單核心Linux使用者能從prpl獲得SMP Linux的更新版程式碼,同時社群也將協助業者朝SMP Linux移轉。一旦Linux作業系統移植成功,每個任務或應用程式都能利用「任務集」指令將其設定為使用特定的處理器。

圖1 單處理器走向多處理器路線示意圖

至於執行Linux以及在單一處理器上執行多重應用程式(如內容切換負擔)的固有運算處理的開銷,會被分散到多個處理器中;因此,應用程式會有更多的CPU運算能力可使用,而不再倚賴單一處理器。圖1所示為從單處理器朝多處理器核心移轉的可能路徑及其帶來的相關效益。

業界正快速從單核心朝多核心處理器的世界邁進。像虛擬化這類的新技術,透過能為包括Linux在內的現有軟體建立多個虛擬世界,既有軟體毋須任何修改,就能在新型的多核心晶片上執行,將能讓業界朝多處理器的移轉過程變得更為簡單。

(本文作者為Imagination Technologies處理器技術行銷總監)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!