基于CELL Broadband Engine開發(fā)高性能應(yīng)用
cell be處理器包括一個基于powerpc架構(gòu)的控制處理單元power processing element (ppe)以及8個simd的協(xié)處理器單元——synergistic processing elements (spe),以及用以連接ppe, 輸入輸出單元以及spe的高速環(huán)形數(shù)據(jù)總線——element interconnect bus (eib)。cell be同時還提供了dma指令和控制機(jī)制以用于在不同處理單元之間提供高效的通信。ppe和spe均為risc結(jié)構(gòu),指令字長為32位,尋址空間為64位。spe提供最高128位寬的simd的數(shù)據(jù)通路。工作在3.2ghz主頻下,單個spe對8位整型可提供51.2 billion的峰值計算速度,對單精度浮點可提供25.6 gflops的峰值計算速度。 為了提高內(nèi)存訪問速度,cell be采用rambus xdr dram內(nèi)存,提供2個32位的數(shù)據(jù)訪問通道,每個通道的訪問速率為12.8gb/s。為了提高i/o訪問速度,在cell be中采用了高速、可配置的i/o接口——7個發(fā)射通道和5個接收通道的rambus prac flexio,flexio工作5ghz下時,其發(fā)送帶寬和接收帶寬分別為35gb/s和25gb/s。
本文引用地址:http://butianyuan.cn/article/21497.htm ppe和spe都是基于risc架構(gòu),雙發(fā)射的simd處理器。cell be中所有的處理單元,i/o控制器,內(nèi)存控制器都通過高速的eib(4路128位寬的環(huán)形總線)互聯(lián)。xio接口提供與rambus
xdr內(nèi)存的高速互連,flexio提供了高速i/o通道。ppe是一個兼容powerpc 970架構(gòu)的兩路并發(fā)多線程處理器,包含一個32kb的l1
cache(32kb的數(shù)據(jù)cache和32kb的指令cache), 256kb的l2 cache以及一個vmx(vmx是powerpc上的altivec多媒體擴(kuò)展,apple稱為velocity
engine。vmx本身就是一個向量處理單元,或者說是類似于intel的sse,sse2的simd擴(kuò)展。)單元。操作系統(tǒng)運行于ppe上,ppe負(fù)責(zé)對spe進(jìn)行調(diào)度,而spe則負(fù)責(zé)主要的計算工作。spe直接訪問本地的local
storage(ls)。它通過dma方式訪問主存,由dma負(fù)責(zé)將指令和數(shù)據(jù)搬到ls。這種方式能夠有效地減小內(nèi)存讀寫延遲對處理器利用率的影響,因為spe的計算和dma傳輸可以并行地進(jìn)行。spe是一個高度可配置的處理單元,spe可以被配置成不同的運行方式和存儲保護(hù)(isolation)模式。在存儲保護(hù)模式下,ppu和其它spe不能訪問該spe的ls,從而在硬件層次上提供了安全機(jī)制。這種機(jī)制在一些場合是非常有用的,如drm。
cell be編程模型
對spe的編程,可以采用高級語言,如c和c++。并且cell be的編譯器及開發(fā)包已經(jīng)對c/c++進(jìn)行了擴(kuò)展,以提供對vector/simd的支持。
實際上,對于應(yīng)用程序的開發(fā)者來說,可以簡單的將cell be看作一個9路的多處理器。由于ppe是一個雙線程雙發(fā)射、順序執(zhí)行的risc處理單元,它的一個時鐘周期可以處理來自兩個線程的指令(即所謂硬件多線程smt),因此加上8個spe,同一時刻可以有10個任務(wù)在同時運行??偟膩碚f,ppe適合作為控制和任務(wù)調(diào)度處理器,spe則用于處理計算任務(wù)。
cell be 存在多種編程模型,對于簡單的spe程序("small" spe program)來說,與普通的應(yīng)用程序編程是類似的。我們需要將任務(wù)進(jìn)行劃分,針對不同的spe編寫不同的代碼,每個spe完成一個特定的任務(wù)。這種方式下,spe不需要訪問主存,只需訪問ls就夠了。在這種方式下,spe的數(shù)據(jù)段、代碼段的大小限制為256kb
(ls的大小)。
評論