多方位多角度 帶您重新詮釋多核技術(shù)
在多路服務(wù)器領(lǐng)域,芯片能否具有良好的擴(kuò)展彈性至關(guān)重要,而這主要取決于以下兩大要素:第一,處理器擁有一條專門的芯片間直連總線,這樣當(dāng)系統(tǒng)中擁有多枚處理器的時候,各個處理器可借助該總線進(jìn)行通訊,從而實(shí)現(xiàn)高效的任務(wù)協(xié)作;第二,處理器是否將內(nèi)存控制器直接整合、擁有一套獨(dú)立的內(nèi)存系統(tǒng)。這方面反面的例子就是英特爾的Xeon平臺,如果要構(gòu)建多路Xeon系統(tǒng),那么就必須依賴于芯片組,多枚處理器共同分享一套內(nèi)存系統(tǒng)。
處理器之間如果需要進(jìn)行數(shù)據(jù)通訊,就必須經(jīng)由“前端總線-北橋-內(nèi)存”的鏈路,這個過程不僅耗費(fèi)了可觀的時鐘周期,也消耗了總線和內(nèi)存資源。更嚴(yán)重的是,這類系統(tǒng)存在內(nèi)存搶占和緩存同步兩個難題:內(nèi)存搶占是指當(dāng)多個處理器同時發(fā)起對內(nèi)存中的某段數(shù)據(jù)進(jìn)行存取指令時,各個處理器必須以搶占的方式獲得內(nèi)存存取權(quán)限—如果有一個處理器對某段數(shù)據(jù)進(jìn)行修改,該處理器就會鎖定這段數(shù)據(jù),其他的處理器必須等待,導(dǎo)致性能提升幅度大打折扣。
系統(tǒng)中的處理器數(shù)量越多,此種內(nèi)存搶占現(xiàn)象就會越頻繁,最糟糕的時候?qū)?dǎo)致系統(tǒng)的性能不升反降。緩存同步主要出現(xiàn)在多處理器/多內(nèi)核協(xié)作處理同一任務(wù)時,各個處理器或內(nèi)核必須進(jìn)行緩存同步。由于Xeon缺乏直接溝通渠道,緩存同步操作也必須依賴“前端總線-北橋-內(nèi)存”的鏈路進(jìn)行,效率較為低下。
相比之下,AMD的Opteron平臺就沒有這兩個問題:借助HyperTransort總線,Opteron處理器可實(shí)現(xiàn)直接通訊,加之 Opteron擁有獨(dú)立的內(nèi)存控制器,不存在內(nèi)存搶占的問題,因此該平臺非常易于擴(kuò)展。Opteron在服務(wù)器領(lǐng)域?qū)eon造成強(qiáng)大的壓力,很大程度上就是得益于此。至于RISC領(lǐng)域,芯片直連總線和整合內(nèi)存控制器也早已成為處理器的標(biāo)準(zhǔn)設(shè)計(jì),而英特爾在自己的技術(shù)藍(lán)圖上也表明將在2008年開始采用類似的設(shè)計(jì)。
對應(yīng)用于PC的X86處理器而言,處理器的擴(kuò)展彈性無關(guān)緊要,但整合內(nèi)存控制器還是非常有意義,原因在于該項(xiàng)設(shè)計(jì)能夠有效降低內(nèi)存系統(tǒng)的延遲時間。事實(shí)上,這只是整合運(yùn)動的開始,不少處理器廠商都在考慮讓處理器整合越來越多的功能,例如SUN和AMD都在考慮在下一代架構(gòu)中直接整合PCI Express控制器、I/O控制器甚至是圖形功能,借此提升系統(tǒng)的I/O性能以及降低平臺成本;P.A.Semi的PWRficient處理器則整合了 10GbE和GbE網(wǎng)絡(luò)控制器以及PCI Express控制器,目的是提高相應(yīng)服務(wù)器的網(wǎng)絡(luò)性能和I/O傳輸效能。盡管其他的處理器廠商似乎不為所動,但高度的整合無疑是未來處理器的發(fā)展方向之一。
多核處理器同軟件配合的討論
在多核心處理器如火如荼發(fā)展的時候,軟件業(yè)卻遠(yuǎn)遠(yuǎn)沒有來得及為此作準(zhǔn)備。最早發(fā)現(xiàn)問題的是PS3、Xbox 360等平臺的游戲開發(fā)商,由于兩套系統(tǒng)完全不同于前一代產(chǎn)品,游戲開發(fā)者對此怨聲載道,程序員普遍認(rèn)為對多核心處理器編程近乎是一種災(zāi)難,因?yàn)槌绦騿T必須深入了解相應(yīng)的硬件平臺,然后據(jù)此編寫代碼,而讓代碼在兩個核心之間平衡更是一大難題。
相對來說,PS3的Cell平臺難度更大,程序員首次接觸到主-從方式的多核平臺,對如何發(fā)揮出協(xié)處理器的性能優(yōu)勢缺乏經(jīng)驗(yàn),由于編碼的不到位,讓Cell平臺無法表現(xiàn)出與實(shí)際相稱的高性能。同樣的事情現(xiàn)在也出現(xiàn)在X86領(lǐng)域,雙核平臺的出現(xiàn)讓軟件開發(fā)商考慮對雙核優(yōu)化的重要性—但比較幸運(yùn)的是,諸如辦公軟件、網(wǎng)頁瀏覽器、內(nèi)容創(chuàng)建工具等常規(guī)的商務(wù)軟件對CPU性能要求不高,對雙核優(yōu)化也不見得會帶來什么實(shí)質(zhì)性的益處,因此主要的X86軟件都不需要作出變動,真正需要考慮雙核平臺的仍然是X86平臺下的游戲。
對此游戲開發(fā)商也是相當(dāng)頭疼,因?yàn)閄86多核與PS3、Xbox 360游戲機(jī)的多核平臺不同,未來的Many Core或HyperTransport協(xié)處理器平臺也許又要作出改動。為了充分發(fā)揮硬件性能,設(shè)備廠商希望開發(fā)商深入了解對應(yīng)多核處理器的細(xì)節(jié)—問題是現(xiàn)存多種多核架構(gòu),一一研究代價巨大。開發(fā)者都希望能夠利用一個硬件無關(guān)的自動化通用開發(fā)平臺進(jìn)行設(shè)計(jì)開發(fā),這樣編碼工作將變得相當(dāng)容易,同時也能夠保證代碼擁有出色的適應(yīng)性,遺憾的是,至少在目前這還是軟件工業(yè)一廂情愿的想法。
當(dāng)然,我們沒必要因此對多核平臺喪失信心,對X86 PC來說,使用多核心處理器能夠極大提升系統(tǒng)的多任務(wù)效能,你可以在相同的時間里執(zhí)行多項(xiàng)任務(wù),借此提高辦公效率—在軟件業(yè)來不及跟上的時候,辦公用戶或許能夠更多體驗(yàn)到雙核平臺的優(yōu)勢所在。
評論