SMP和AMP不同的特點
隨著多核處理器的出現(xiàn),為了提高整個系統(tǒng)性能,誕生了不同的可部署技術。多處理主要有兩種類型:對稱多處理(SMP)和非對稱多處理(AMP)。
在SMP中,所有處理器或CPU內核都被認為是平等的,可以分享相同的系統(tǒng)資源,例如:操作系統(tǒng)、主存的地址空間、I/O和外部設備等;而AMP中,每個處理器或CPU有它們自己的軟件,它們獨立于其他處理器或內核來處理應用程序。
AMP的設計優(yōu)勢在于,每個CPU在處理特定的應用程序時,不會被其他CPU的任務打斷。正如前面所說,在AMP中每個處理器都有自己單獨的內核處理邏輯。這樣的設計更適合工業(yè)現(xiàn)場的實時性需求。
詳細的內容可以看文末最后對SMP和AMP不同架構的討論。
而我們提出了一種新的解決方案,通過Hypervisor技術對SMP架構的CPU進行資源劃分,讓其每個分割部分運行獨立的操作系統(tǒng)和應用程序,同時保證其不會被其他CPU的任務打斷。
在SMP架構上實現(xiàn)多操作系統(tǒng)部署
SMP架構上實現(xiàn)單操作系統(tǒng)——Linux使用多個CPU內核
在SMP中,大多數情況下一個計算系統(tǒng)運行一個單一的操作系統(tǒng),如Linux。操作系統(tǒng)可以利用多個處理器或CPU內核來運行系統(tǒng)中的各種應用程序。
02
SMP架構CPU采用共享內存
在SMP中各個CPU通過共享內存空間的方式進行數據交互,所有的處理器都可以平等地訪問內存、I/O和外部中斷。
03
SMP架構上實現(xiàn)多操作系統(tǒng)部署——實時Linux使用多個CPU內核
在工業(yè)現(xiàn)場上,單個計算系統(tǒng)上部署多個操作系統(tǒng)變得越來越普遍。在使用SMP的管理程序解決方案中,多個不同的操作系統(tǒng)(例如Windows + real-time Linux)可以各自獨立地利用一組多個處理器或CPU內核。
Hypervisor技術可以很好的管理這些CPU內核,正如之前所述的SMP的兩大特性:多核心處理單任務及共享內存。在工業(yè)控制中為了保證實時性,必須確保運行實時任務的CPU不被其他應用占用;必須保證實時任務的內存不被其他應用占用。這些都需要Hypervisor在底層邏輯上將其完全劃分開。通過Hypervisor技術,我們可以將專用的CPU和內存分配給實時操作系統(tǒng)。讓其他操作系統(tǒng)的應用不能”觸碰“這些資源,
相比于直接使用異構的CPU,SMP+Hypervisor的優(yōu)勢還在于可以按需分配整個設備資源,而AMP的異構則是在系統(tǒng)設計之初就固定的了。比如說,我的實際應用需要更強大的非實時應用,需要更多相關資源。相比之下,AMP在異構實現(xiàn)上就有很大的限制,無法按需分配,有時候不得不對應用做減法。而SMP+Hypervisor則可以靈活的傾斜更多資源給非實時應用,而給實時應用的資源可能只需要整個CPU核心的10%。
Hypervisor技術不僅僅可以構建一個實時系統(tǒng),他還可以構建多個實時系統(tǒng),只要硬件的資源足夠豐富,多個不同的操作系統(tǒng)部署在同一個硬件上面是完全可行的。
SMP和AMP不同架構的討論
對稱多處理(SMP)
SMP通常用于高端計算,這些計算環(huán)境需要大量的計算能力去執(zhí)行應用程序任務和進程,許多多處理系統(tǒng)使用SMP架構。SMP最適用于分時(timesharing)和多線程時間共享系統(tǒng)。分時是指將計算資源同時分配給多個用戶。類似地,多線程是中央處理器(CPU)的一個特性,它允許單個進程同時執(zhí)行多個任務。更具體地說,多線程允許指令的多個線程獨立執(zhí)行,所有線程共享相同的處理資源。分時操作系統(tǒng)也使用SMP。這是因為計算資源可以分配給多個用戶,多個進程可以并行運行。SMP支持該進程,SMP旨在在不同的處理單元上運行多個進程。出于同樣的原因,SMP也是多線程的。這是因為多線程同時處理多個進程,而SMP在每個處理器之間劃分線程。但是,SMP通常不會用于那些未針對多線程編程進行修改的pc或應用程序。應用程序和程序集應該設計成允許多線程。允許在不同的并行處理器上調度線程。
? SMP架構CPU采用共享內存
不對稱多處理(AMP)
傳統(tǒng)的單處理器系統(tǒng)提供的執(zhí)行環(huán)境與非對稱多處理的工作方式非常相似。它提供了一種相對簡單的方式來移植代碼,并提供了一種控制CPU使用的直接機制。在大多數情況下,你可以使用標準的調試工具和技術。AMP系統(tǒng)可以是同構的(每個CPU運行相同類型和版本的操作系統(tǒng))或異構的(每個CPU運行不同的操作系統(tǒng)或相同操作系統(tǒng)的不同版本)。此外,AMP最有可能用于不同的CPU架構對特定應用的優(yōu)化,如數字信號處理器(DSP)和微控制器(MCU)。在AMP系統(tǒng)中,可以在每個處理器或CPU內核上部署不同的操作系統(tǒng)。
如果你的操作系統(tǒng)支持特定的分布式編程模型,則可以充分利用同構環(huán)境中的多個cpu。在特定CPU上運行的應用程序將能夠與其他CPU上的應用程序和系統(tǒng)服務(例如,協(xié)議棧、設備驅動程序等)透明地通信,而不需要傳統(tǒng)的處理器間通信所帶來的高CPU負載。在異構系統(tǒng)中,必須選擇兩個共享公共基礎資源(最常見的是基于ip的)的操作系統(tǒng),或者為處理器間的通信實現(xiàn)專有的通信方案。操作系統(tǒng)還應該提供訪問共享硬件組件的機制,以幫助避免資源沖突。使用AMP,應用程序使用的共享硬件資源必須在CPU之間分配。外設、物理內存以及中斷處理等資源通常是在啟動時靜態(tài)分配的。
動態(tài)分配資源會導致CPU之間復雜的協(xié)調。在AMP系統(tǒng)中,即使其他CPU空閑,一個進程也總是運行在同一個CPU上。因此,CPU可能會輕負荷或過載。為了解決這個問題,系統(tǒng)可以允許應用程序動態(tài)地從一個CPU遷移到另一個CPU。然而,這可能涉及復雜的狀態(tài)信息檢查,如果應用程序在一個CPU上停止,而在另一個CPU上重新啟動,可能會中斷服務。此外,如果cpu運行不同的操作系統(tǒng),這樣的遷移即使不是不可能,也是非常困難的。
? 使用AMP在不同的cpu上分區(qū)內存和I/O
聯(lián)系盟通
北京盟通科技有限公司成立于2013年,是工業(yè)自動化領域的高新技術企業(yè)。公司專注于實時現(xiàn)場總線技術及工業(yè)通訊技術的研發(fā)、推廣及技術支持服務。依托于核心團隊多年的海外和行業(yè)經驗,盟通科技與歐洲多家自動化領域的佼佼者達成戰(zhàn)略合作關系,為客戶提供EtherCAT主站協(xié)議棧、OPC UA SDK軟件開發(fā)包、CANopen協(xié)議棧、FSoE協(xié)議軟件、CAN總線硬件、DINA安全模塊、艾默生Connext軟件等工業(yè)協(xié)議的標準和定制化產品。
-
處理器
+關注
關注
68文章
19312瀏覽量
230034 -
操作系統(tǒng)
+關注
關注
37文章
6838瀏覽量
123380 -
ethercat
+關注
關注
18文章
697瀏覽量
38725 -
操作系統(tǒng)內核
+關注
關注
0文章
8瀏覽量
2371
發(fā)布評論請先 登錄
相關推薦
評論