基于CELL Broadband Engine環(huán)境高性能計(jì)算開(kāi)發(fā)應(yīng)用
CELL BE處理器包括一個(gè)基于Powerpc架構(gòu)的控制處理單元Power Processing Element (PPE)以及8個(gè)SIMD的協(xié)處理器單元——Synergistic Processing Elements (SPE),以及用以連接PPE, 輸入輸出單元以及SPE的高速環(huán)形數(shù)據(jù)總線——Element Interconnect BUS (EIB)。CELL BE同時(shí)還提供了DMA指令和控制機(jī)制以用于在不同處理單元之間提供高效的通信。PPE和SPE均為RISC結(jié)構(gòu),指令字長(zhǎng)為32位,尋址空間為64位。SPE提供最高128位寬的SIMD的數(shù)據(jù)通路。工作在3.2GHz主頻下,單個(gè)SPE對(duì)8位整型可提供51.2 Billion的峰值計(jì)算速度,對(duì)單精度浮點(diǎn)可提供25.6 GFlops的峰值計(jì)算速度。 為了提高內(nèi)存訪問(wèn)速度,CELL BE采用Rambus XDR DRAM內(nèi)存,提供2個(gè)32位的數(shù)據(jù)訪問(wèn)通道,每個(gè)通道的訪問(wèn)速率為12.8GB/s。為了提高I/O訪問(wèn)速度,在CELL BE中采用了高速、可配置的I/O接口——7個(gè)發(fā)射通道和5個(gè)接收通道的Rambus PRAC FlexIO,F(xiàn)lexIO工作5GHz下時(shí),其發(fā)送帶寬和接收帶寬分別為35GB/s和25GB/s。
PPE和SPE都是基于RISC架構(gòu),雙發(fā)射的SIMD處理器。CELL BE中所有的處理單元,I/O控制器,內(nèi)存控制器都通過(guò)高速的EIB(4路128位寬的環(huán)形總線)互聯(lián)。XIO接口提供與Rambus XDR內(nèi)存的高速互連,F(xiàn)lexIO提供了高速I(mǎi)/O通道。PPE是一個(gè)兼容PowerPC 970架構(gòu)的兩路并發(fā)多線程處理器,包含一個(gè)32kB的L1 Cache(32kB的數(shù)據(jù)cache和32kB的指令cache), 256kB的L2 Cache以及一個(gè)VMX(VMX是PowerPC上的AltiVec多媒體擴(kuò)展,Apple稱為Velocity Engine。VMX本身就是一個(gè)向量處理單元,或者說(shuō)是類似于Intel的SSE,SSE2的SIMD擴(kuò)展。)單元。操作系統(tǒng)運(yùn)行于PPE上,PPE負(fù)責(zé)對(duì)SPE進(jìn)行調(diào)度,而SPE則負(fù)責(zé)主要的計(jì)算工作。SPE直接訪問(wèn)本地的Local Storage(LS)。它通過(guò)DMA方式訪問(wèn)主存,由DMA負(fù)責(zé)將指令和數(shù)據(jù)搬到LS。這種方式能夠有效地減小內(nèi)存讀寫(xiě)延遲對(duì)處理器利用率的影響,因?yàn)镾PE的計(jì)算和DMA傳輸可以并行地進(jìn)行。SPE是一個(gè)高度可配置的處理單元,SPE可以被配置成不同的運(yùn)行方式和存儲(chǔ)保護(hù)(Isolation)模式。在存儲(chǔ)保護(hù)模式下,PPU和其它SPE不能訪問(wèn)該SPE的LS,從而在硬件層次上提供了安全機(jī)制。這種機(jī)制在一些場(chǎng)合是非常有用的,如DRM。
A1.jpg
CELL BE編程模型
對(duì)SPE的編程,可以采用高級(jí)語(yǔ)言,如C和C++。并且CELL BE的編譯器及開(kāi)發(fā)包已經(jīng)對(duì)C/C++進(jìn)行了擴(kuò)展,以提供對(duì)Vector/SIMD的支持。
實(shí)際上,對(duì)于應(yīng)用程序的開(kāi)發(fā)者來(lái)說(shuō),可以簡(jiǎn)單的將CELL BE看作一個(gè)9路的多處理器。由于PPE是一個(gè)雙線程雙發(fā)射、順序執(zhí)行的RISC處理單元,它的一個(gè)時(shí)鐘周期可以處理來(lái)自兩個(gè)線程的指令(即所謂硬件多線程SMT),因此加上8個(gè)SPE,同一時(shí)刻可以有10個(gè)任務(wù)在同時(shí)運(yùn)行??偟膩?lái)說(shuō),PPE適合作為控制和任務(wù)調(diào)度處理器,SPE則用于處理計(jì)算任務(wù)。
CELL BE 存在多種編程模型,對(duì)于簡(jiǎn)單的SPE程序("small" SPE program)來(lái)說(shuō),與普通的應(yīng)用程序編程是類似的。我們需要將任務(wù)進(jìn)行劃分,針對(duì)不同的SPE編寫(xiě)不同的代碼,每個(gè)SPE完成一個(gè)特定的任務(wù)。這種方式下,SPE不需要訪問(wèn)主存,只需訪問(wèn)LS就夠了。在這種方式下,SPE的數(shù)據(jù)段、代碼段的大小限制為256kB (LS的大小)。