多核處理器基礎:SMP、AMP和BMP 以及 AP、BP和CP

原文鏈接:https://www.cnblogs.com/zamely/p/4334979.html

多核處理器也稱片上多核處理器(Chip Multi-Processor,CMP)。

 

1.多核處理器的流行

多核出現前,商業化處理器都致力於單核處理器的發展,其性能已經發揮到極致,僅僅提高單核芯片的速度會產生過多熱量且無法帶來相應性能改善,但CPU性能需求大於CPU發展速度。儘管增加流水線提高頻率,但緩存增加和漏電流控制不力造成功率大幅增加,性能反而不如之前低頻率的CPU。功率增加,散熱問題也嚴重了,風冷已經不能解決問題了。

那麼新技術必須出現-多核處理器。早在1996年就有第一款多核CPU原型Hydra。2001年IBM推出第一個商用多核處理器POWER4,2005年Intal和AMD多核處理器大規模應用。

多核處理器越來越流行,無論在服務器、桌面、上網本、平板、手機還是醫療設備、國防、航天等方面。

我們來了解一下基礎知識。

 

2.多核處理器分類-同構、異構

從硬件的角度來看,多核設計分爲兩類。如果所有的核心或CPU具有相同的構架,那麼定義爲同構多核(homogeneous);如果架構不同,那麼稱爲異構(heterogeneous)多核。

從應用來看,同構多核處理器中大多數由通用處理器核構成,每個核可以獨立運行,類似單核處理器。而異構多核處理器往往同時繼承了通用處理器、DSP、FPGA、媒體處理器、網絡處理器等。每個內核針對不同的需求設定的,從而提高應用的計算性能或實時性能。

目前的異構多處理器有:TI的達芬奇平臺DM6000系列(ARM9+DSP)、Xilinx的Zynq7000系列(雙核Cortex-A9+FPGA)、Cell處理器(1個64位POWERPC+8個32位協處理器)等等。

同構多處理器就比較多了,Exynos4412,freescale i.mx6 dual和quad系列、TI的OMAP4460等,Intel的Core Duo、Core2 Duo等。

 

3. 多核處理器運行模式-SMP、AMP、BMP

從軟件的角度來看,多核處理器的運行模式有三種:

SMP-對稱多處理,symmetric multi-processing。

AMP-非對稱多處理,asymmetric multi-processing

BMP-邊界多處理(翻譯不確定),bound multi-processing

以下是三種模式的特點和優點:

 

簡單的解釋一下:

AMP-多個核心相對獨立的運行不同的任務,每個核心可能運行不同的操作系統或裸機程序,或者不同版本的操作系統。但是有一個主要核心,用來控制整個系統以及其它從核心。具有主從模式。舉個例子,比如一個主要核心控制用戶界面UI,從核心控制數據採集以及輸出。還有POS機,一個負責UI,一個負責交易。也就是兩者負責不同的任務。每個核心有自己的內存空間(同時會有共享的內存空間),另外兩者之間還有一定的通信機制。從硬件上來說,這種多處理模式可能是同構的,也可能是異構的,但大多情況是異構多處理器。如MCU+DSP,MCU+FPGA等。同構的當然也有。比如Xilinx就提供了案例,Sun公司的Solari4.1.3系統也支持AMP模式(從主從角度來看,而不是多個操作系統)。Mars Board也可以運行AMP模式。

 

SMP-對稱多處理,這個是目前用的最多的,一個OS同等的管理各個內核,爲各個內核分配工作負載。目前,大多數的系統都支持SMP模式,如Linux,Vxworks,windows。這種模式就是簡單提高運行性能。比如PC機上雙核、四核運行windows,linux等。所有的核心共享內存。另外,這種模式的通常都是同構多核處理器,因爲異構的結構不同,實現比較複雜。

 

BMP-邊界多處理,和SMP類似,也是一個OS管理所有內核,但是不同的是,BMP中,開發者可以指定將某個任務僅在某個指定內核上執行。

 

4.多核處理器相關術語

AP-Application Processor,應用處理器

BP-Baseband Processor,基帶處理器

以上在手機中出現的比較多,有的會將兩者集成到一個硅片中。

GPU-圖像處理單元,Graphic Processor Unit,有的PC芯片會將CPU和GPU集成起來。

Soc-System On Chip,片上系統。這個定義多種,一般一個芯片上有多個內核都可以這樣說吧,這個我也不確定。有的說Xilinx Zynq7000的是Soc(CortexA9+FPGA0,有的說Exynos4412也是Soc(四核Cortex A9)。


 

 5.手機的AP、BP和CP

AP:Application Processor  ,應用處理器 ,CPU + GPU 

BP:Baseband Processor,基帶處理器

CP: CP的概念容易發生混淆,其主要有以下三方面的含義

  1. CP:Cellular Processor = Cellular Modem = Baseband Modem ,蜂窩調制解調器,即此時和BP含義相同
  2. CP::CoProcessor,協處理器,協處理器的概念本身範圍較寬泛,在手機中應用中,其一般指【基帶芯片加協處理器】 或者是【多媒體加速器】。CP包括與網絡進行通信所需的所有數字組件。CP通常由一個基於ARM的處理器和一個DSP組成。它具有自己的操作系統,並通過HS(高速)串行連接與運行Android,iOS和WindowsPhone等操作系統的AP單元進行通信。其可以處理虛擬現實,增強現實,圖像處理,HIFI,HDR,傳感器等。           參考鏈接:協處理器--百度百科
  3. CP:英文單詞couple的縮寫,網絡用語,處CP意思是指有戀愛關係的同人配對。(亂入了,開個玩笑)

爲什麼會有AP、BP之分?

FCC(美國聯邦通信委員會)認證要求將AP和BP分開,因爲射頻控制相關的功能(信號調製、編碼、射頻位移等)都是高度的時間相關的,最好能將這些函數放在一個CPU核上運行,並在這個CPU核上運行一個實時的操作系統,這樣AP核上操作系統和驅動的bug就不會導致設備發送災難性的數據到移動網絡中;並且一旦BP被設計和認證好,不管你採用的操作系統和應用軟件怎麼變化,它都可以正確的執行通訊功能,手機的設計者也可以更加自由的設計用戶界面和應用軟件;同時,AP側睡眠喚醒,BP側實時處理數據,也能有效降低功耗。

AP上面運行了我們通常的操作系統和應用軟件,如Android、Windows  phone 7這些。而我們通常所說的雙核啊、四核啊這些就是指的其AP核的多少了吧。

BP主要的作用是發送和接受各種數據,即和通信息息相關,BP中的DSP實現了協議的算法,對數據進行編解碼,BP中的CPU則負責協調控制與基站和AP的通信。BP中的電源管理模塊對手機的待機時間有很大的影響,因爲大多數時間BP的cpu都應該處於idle狀態,每隔一段時間纔打開查看paging channel上是否有呼叫進入。另外,SIM模塊也是直接和BP相連接的,對SIM卡的操作也是通過BP進行的。

有些芯片製造商,有能力將AP和BP集成在一個芯片上,AP與BP通過總線通信。而有些則是,AP是AP,BP是BP。

手機開發商,會將開發的手機軟件包分爲AP和BP兩部分,運行在Application Processor(AP)的軟件包稱爲AP包,包括操作系統、用戶界面和應用程序等;與Baseband Processor(BP)相關的軟件包稱爲BP包, 包括baseband modem的通信控制軟件等。 相應地,所謂的刷新手機AP和BP文件即是將這兩個軟件包更新到手機上。爲方便刷機,也有將AP,BP文件和flex文件(手機的參數配置文件)作在一起的一體包。

                                                                                                                          


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章