原文鏈接: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的概念容易發生混淆,其主要有以下三方面的含義
- CP:Cellular Processor = Cellular Modem = Baseband Modem ,蜂窩調制解調器,即此時和BP含義相同
- CP::CoProcessor,協處理器,協處理器的概念本身範圍較寬泛,在手機中應用中,其一般指【基帶芯片加協處理器】 或者是【多媒體加速器】。CP包括與網絡進行通信所需的所有數字組件。CP通常由一個基於ARM的處理器和一個DSP組成。它具有自己的操作系統,並通過HS(高速)串行連接與運行Android,iOS和WindowsPhone等操作系統的AP單元進行通信。其可以處理虛擬現實,增強現實,圖像處理,HIFI,HDR,傳感器等。 參考鏈接:協處理器--百度百科
- 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文件(手機的參數配置文件)作在一起的一體包。