基于CELL Broadband Engine開(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ù)總線(xiàn)——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)存訪(fǎng)問(wèn)速度,cell be采用rambus xdr dram內(nèi)存,提供2個(gè)32位的數(shù)據(jù)訪(fǎng)問(wèn)通道,每個(gè)通道的訪(fǎng)問(wèn)速率為12.8gb/s。為了提高i/o訪(fǎng)問(wèn)速度,在cell be中采用了高速、可配置的i/o接口——7個(gè)發(fā)射通道和5個(gè)接收通道的rambus prac flexio,flexio工作5ghz下時(shí),其發(fā)送帶寬和接收帶寬分別為35gb/s和25gb/s。
本文引用地址:http://cafeforensic.com/article/21497.htm ppe和spe都是基于risc架構(gòu),雙發(fā)射的simd處理器。cell be中所有的處理單元,i/o控制器,內(nèi)存控制器都通過(guò)高速的eib(4路128位寬的環(huán)形總線(xiàn))互聯(lián)。xio接口提供與rambus
xdr內(nèi)存的高速互連,flexio提供了高速i/o通道。ppe是一個(gè)兼容powerpc 970架構(gòu)的兩路并發(fā)多線(xiàn)程處理器,包含一個(gè)32kb的l1
cache(32kb的數(shù)據(jù)cache和32kb的指令cache), 256kb的l2 cache以及一個(gè)vmx(vmx是powerpc上的altivec多媒體擴(kuò)展,apple稱(chēng)為velocity
engine。vmx本身就是一個(gè)向量處理單元,或者說(shuō)是類(lèi)似于intel的sse,sse2的simd擴(kuò)展。)單元。操作系統(tǒng)運(yùn)行于ppe上,ppe負(fù)責(zé)對(duì)spe進(jìn)行調(diào)度,而spe則負(fù)責(zé)主要的計(jì)算工作。spe直接訪(fǎng)問(wèn)本地的local
storage(ls)。它通過(guò)dma方式訪(fǎng)問(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不能訪(fǎng)問(wèn)該spe的ls,從而在硬件層次上提供了安全機(jī)制。這種機(jī)制在一些場(chǎng)合是非常有用的,如drm。
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è)雙線(xiàn)程雙發(fā)射、順序執(zhí)行的risc處理單元,它的一個(gè)時(shí)鐘周期可以處理來(lái)自?xún)蓚€(gè)線(xiàn)程的指令(即所謂硬件多線(xiàn)程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)用程序編程是類(lèi)似的。我們需要將任務(wù)進(jìn)行劃分,針對(duì)不同的spe編寫(xiě)不同的代碼,每個(gè)spe完成一個(gè)特定的任務(wù)。這種方式下,spe不需要訪(fǎng)問(wèn)主存,只需訪(fǎng)問(wèn)ls就夠了。在這種方式下,spe的數(shù)據(jù)段、代碼段的大小限制為256kb
(ls的大小)。
評(píng)論