多核處理器也稱片上多核處理器(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)。
2015-03-14 13:59:34
zamely
hust