国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

AMD即將推出的四核處理器技術(shù)介紹(1)
2007-07-28   網(wǎng)絡(luò)

在幾年前Intel在P6核心獲得重大勝利之后,開始對它的處理器開發(fā)部門進行劃分,其中一個隊伍著重在NetBurst架構(gòu),而另一個則是在低功耗、高集成度核心方面,代表產(chǎn)品就是大家熟悉的用于筆記本平臺的Pentium M處理器。

當(dāng)Intel的NetBurst架構(gòu)處理器在性能和功耗方面受到全面挑戰(zhàn)后,Intel不得不考慮把高性能的Pentium M處理器架構(gòu)移向桌面平臺,Israel Development Center (IDC,以色列研發(fā)中心)把Dothan的架構(gòu)重新調(diào)整,讓它轉(zhuǎn)換為原生的雙核,不過Dothan到Y(jié)onah的架構(gòu)調(diào)整遠比從Banias到 Dothan要大,除了雙核外,Yonah在微架構(gòu)方面有很大的調(diào)整,并且針對桌面平臺,也推出類似架構(gòu)的Core 2。


498)this.style.width=498;" border=1 twffan="done">

Barcelona架構(gòu)特性全覽

而AMD則經(jīng)歷了從K7到K8的變化,未來預(yù)計是K9和K10。就目前來說,AMD將在年中發(fā)布的Barcelona處理器是一個很好的反擊機會,第三季度會推出桌面的版本,Intel則會在年底推出轉(zhuǎn)換到45nm工藝的Penryn,相信今年將是處理器非常熱鬧的一年。接下來,就讓我們來詳細了解一下 Barcelona的微架構(gòu)情況。

Barcelona是AMD的第一款四核處理器,它不像Intel的四核Kentsfield由兩個雙核Die拼接而成,這也是為什么AMD把它稱為“原生”的原因。同時在工藝方面,它也采用65nm工藝,較K8在制造設(shè)計上要復(fù)雜很多,Barcelona需要總共 11層金屬層,而K8則為9層、Core 2也只有8層,更多的金屬層會增加制造方面復(fù)雜程度,但是對最終消費者沒有太明顯的負面效應(yīng)。


498)this.style.width=498;" border=1 twffan="done">

在具備四個核心和2MB L3 cache后,Barcelona總共擁有463M個晶體管,較Kentsfield的582M要少119M。更少的晶體管給cache容量帶來了局限性,每個Barcelona核心具備128KB L1 cache和512KB L2 cache,再對四核共享的2MB L3 cache進行一下分割,算起來核心總共有4.5MB cache,而Kentsfield的每個核心則擁有64KB L1 cache和一個共享的4MB L2 cache,整個Kentsfield擁有8.25MB cache,較Barcelona擁有超過80%的容量,這也是在晶體管方面多25.6%的原因。

但是Barcelona又不是簡單的一個帶L3 cache的四核K8,我們可以計算一下它們的晶體管數(shù)目,除去cache的晶體管,一個雙核Athlon 64 X2晶體管數(shù)目大概在94M,而Barcelona則在247M,雙倍一下也達不到Barcelona的水平,而且簡單的雙倍計算也不是非常準(zhǔn)確的,因為 Barcelona只有一個Northbridge設(shè)計,所以多出的60M的晶體管是由于架構(gòu)改進加強后的結(jié)果。

每一代CPU性能的提升,最大的根源都是架構(gòu)方面有非常大的調(diào)整。從表中對比K8架構(gòu),Barcelona可以說是加強了很多,規(guī)格幾乎都是成倍的增長。首先是SSE指令執(zhí)行位寬,現(xiàn)在被AMD稱為SSE128。在K8架構(gòu)處理器中,兩個SSE指令是并行處理的,SSE執(zhí)行單元只有64-bits寬度,一個128-bit SSE指令操作,它不得不分割成兩個64-bit指令操作,同樣的一個128-bit SSE指令被獲取后,它被首先解碼成兩個微操作(micro-ops),這會給這個指令帶來多余的解碼部分,效率上可想而知。


498)this.style.width=498;" border=1 twffan="done">

Barcelona的SSE執(zhí)行單元則擴充為128-bits(實際上,Intel之前對于core2也是這么做的),一個128-bit SSE指令操作可以不必分割成兩個64-bit操作,這意味著更多的可利用帶寬可以被使用,那個FP scheduler也可以執(zhí)行這些128-bit SSE指令操作。

498)this.style.width=498;" border=1 twffan="done">

SSE指令執(zhí)行性能提升后也帶來了另外一個瓶頸:指令獲取帶寬(instruction fetch bandwidth),這些128-bit SSE指令變得更大,同時為了最大化并行處理的解碼數(shù)量,每周期32-bytes的帶寬可以很好的解決這個問題,32-bytes的指令獲取除了可以帶來 SSE代碼帶來好處外,同時也給整數(shù)代碼帶來了好處。

在這之后CPU可以獲取和解碼更多的指令,你需要能更多的把數(shù)據(jù)傳到核心中去處理,因此AMD也進一步提高了L1 data cache和Barcelonas SSE寄存器(registers)之間的帶寬,現(xiàn)在Barcelona可以實現(xiàn)2 x 128-bit loads/cycle的性能,同時L2 cache和內(nèi)存控制器的接口也被提升到128-bits/cycle后,總體上平衡了上面的改進所帶來的性能瓶頸。

SSE128的加強設(shè)計,和Intel對Yonah到Merom轉(zhuǎn)變過程非常相像,在Conroe/Merom之前,Yonah在FP/SSE性能方面和 K8沒法相比,在此前的同頻率下K8和Yonah的性能測試中,各項性能都可以打成平手,只有在視頻編碼方面不是這樣,直到Core 2到來之后,才全面超過了AMD,相信SSE128的設(shè)計將給未來的Barcelona帶來不錯的表現(xiàn)。

核心調(diào)整

除了以上的改進以外,Barcelona在核心調(diào)整方面還有非常多的加強設(shè)計。首先從分支預(yù)測開始,總體來說,CPU的分支預(yù)測器的準(zhǔn)確程度取決于設(shè)計的寬度和深度,在分支預(yù)測器不能有效預(yù)測的那些指令數(shù)量,決定了多少指令可以快速控制執(zhí)行單元的運行。K8處理器的分支預(yù)測單元就是非常優(yōu)秀的,而且為它的整體架構(gòu)做了良好優(yōu)化。

Barcelona追加了512-entry indirect predictor(512輸入非直接分支預(yù)測器),用來預(yù)測非直接分支。一個非直接性分支跳轉(zhuǎn),它的目的是跳轉(zhuǎn)到存儲器中的地址指向,換句話說,一個分支有幾個目標(biāo)。一個非直接分支發(fā)送CPU到存儲器的地址,它包含了指令需要被分支到的地址。

Intel追加了非直接預(yù)測器到他的Pentium M,設(shè)計靈感來源于更好的控制非預(yù)測分支數(shù)量將會帶來更高效的性能(其中包括功耗方面的表現(xiàn)),這個設(shè)計同樣也在此前的Prescott被采用,用來削弱NetBurst架構(gòu)長管線設(shè)計所帶來的性能上的損失。

在Prescott中,這個簡單追加設(shè)計帶來了在SPEC CPU2000測試軟件中12%的分支預(yù)測錯誤,但是AMD和Intel在算法結(jié)構(gòu)上的區(qū)別則不被公開,在SPEC CPU2000的253.perlbmk測試項目中,非預(yù)測分支減少是非常明顯的,達到了將近55%。

非直接預(yù)測器并不是Barcelona唯一的性能提升亮點,回歸堆棧(return stack)大小較K8有雙倍大小的改進,舉個例子,在一個很長的命令條中,命令代碼包括了很多子程序(比如遞歸函數(shù)),CPU實際上會用完所有空間來紀(jì)錄它的路徑,一旦開始丟失回歸地址的路徑,就會導(dǎo)致無法進行下一步的分支預(yù)測,雙倍大小的設(shè)計正好是為了解決這個問題,據(jù)說這個改進是在收到一個大型軟件公司的請求才確定的。

更多的優(yōu)化調(diào)整

當(dāng)然還有一些調(diào)整,其中Translation Lookaside Buffers簡稱為TLBs,是用于虛擬地址向物理內(nèi)存地址映射的作緩存的,TLBs的使用率是非常高的,但是因為程序變的越來越多,對內(nèi)存的要求也就需要處理器設(shè)計者對TLB容量大小進行調(diào)整,相對于K7,K8就有增大,在Barcelona上,AMD也在重復(fù)這樣的過程,比K8要大一些,但是它們現(xiàn)在支持1G pages,這對數(shù)據(jù)庫應(yīng)用和虛擬加載非常的有用,AMD同樣在Barcelona上引進了128 entry 2M L2 TLB,用于滿足更新的程序?qū)Υ笕萘康男枨蟆?/P>

Intel在Pentium M上引進的另外一個加強設(shè)計是更低的integer divide latency,盡管現(xiàn)在它的細節(jié)還不是很多,但是AMD說明他們已經(jīng)在Barcelona中減小這個延遲,我們還不清楚它的設(shè)計是不是和Intel的方法類似,但是預(yù)計在真實應(yīng)用中,不會給性能帶來太多的提升。

還有一些不需要明顯提升晶體管數(shù)目而提升性能的辦法,就是把一些指令放到特殊的快速編碼通道里面,這樣可以很大程度上縮短指令解碼的長度,作為 sideband stack optimization(邊帶堆棧優(yōu)化器,后面將具體涉及)優(yōu)化加強一部分的CALL和RET-Imm指令現(xiàn)在也做了這樣的處理,同樣從SSE registers到 integer registers的MOVs也是這樣。

提到指令,AMD也在Barcelona引進了新的擴展:LZCNT和POPCNT,這兩個指令被用于加密應(yīng)用中,AMD也是也引進了四個新的SSE擴展:EXTRQ/INSERTQ, MOVNTSD/MOVNTSS,我們將在未來Inel的Penryn處理器中看到。

邊帶堆棧優(yōu)化器

最初在Pentium M中,引進了一個叫“dedicated stack manager”(專注堆棧管理器)的特性,根據(jù)字面上解釋,它是用于控制x86堆棧操作的,比如push, pop, call, return,它的意圖就是為了把堆棧操作從所有運行代碼中分離出來,以讓處理器能夠更加有效的處理其它任務(wù)。

在Barcelona中,AMD也引進了類似的叫Sideband Stack Optimizer(邊帶堆棧優(yōu)化器)的技術(shù),以讓堆棧指令不再需要通過3-way解碼,并通過整數(shù)執(zhí)行單元的堆棧操作了,這個小小的優(yōu)化設(shè)計可以帶來整體性能的提升。

更快的加載

在以前的《新處理器之王!Core 2 Duo全面大評測》文章中,我們對Core 2的智能內(nèi)存訪問技術(shù)進行了解析,在對比系統(tǒng)內(nèi)存存取表現(xiàn),AMD K8卻因內(nèi)建內(nèi)存控制器而比Intel Core微架構(gòu)優(yōu)勝,但由于Core微架構(gòu)采用短Pipeline Stage架構(gòu)及頻率相對Netburst微架構(gòu)低,加上高容量的L2 Cache并內(nèi)建Shared Router Bus減少FSB使用,因此系統(tǒng)內(nèi)存控取的表現(xiàn)差距已不像與上代Netburst微架構(gòu)產(chǎn)品那么嚴(yán)重。而為了進一步拉近與K8架構(gòu)上的內(nèi)存性能距離, Intel還在Core微架構(gòu)中加入全新的內(nèi)存讀取技術(shù),稱為Memory Disambiguation。


498)this.style.width=498;" align=middle border=1 twffan="done">

Memory Disambiguation是一個十分聰明的設(shè)計,通過Out of Order過程把內(nèi)存讀取次序作出分析。在傳統(tǒng)的微架構(gòu)里,內(nèi)存讀取是按流程順序而被執(zhí)行,如圖上例子,Load 4是獨立的Data X讀取執(zhí)行,也必需要等待其他Store 1、Load 2及Store 3工作完畢,即使Load 4的Data X和前面的資料存取動作并無關(guān)系,因為處理器并不會得到前面的動作是否會改變Data X的數(shù)值,所以不能重新排序并分析Load 4能否提前執(zhí)行。

498)this.style.width=498;" align=middle border=1 twffan="done">

在Intel Core微架構(gòu)中通過智能的分析機制,能預(yù)知Load 4的Data X是完全獨立,并可讓它提前執(zhí)行。正因如此Memory Disambigutaion能減少處理器的等候時間減少閑置,同時減低內(nèi)存讀取的延遲值,而且它可以偵出沖突并重新讀取正確的資料及重新執(zhí)行指令,保證運作結(jié)果不會出現(xiàn)嚴(yán)重,但在正常情況下Memory Disambirutation出錯的機會率很低。

可以看出Intel Core微架構(gòu),一個主要特性是加載指令可以繞過以前加載和存儲的指令,平均來說在程序中所有指令的1/3是在加載的時候就完成了,所以如果能夠提升加載性能,你就可以全面提升程序的運行性能,在Core微架構(gòu)中,加載可以被重新排序,以確保需要這些數(shù)據(jù)的指令在存儲訪問非常繁忙的時候被執(zhí)行。

AMD K8架構(gòu)沒有上面同等的亂序執(zhí)行的協(xié)調(diào)能力。在沒有集成內(nèi)存控制器的情況下,Intel能夠很輕松的執(zhí)行更多的內(nèi)存操作,Barcelona采用了類似的方法修正了這個問題,它也能夠重新排序這些加載。但是Barcelona需要等待在決定是否這個加載可以被優(yōu)先于存儲執(zhí)行之前,才把存儲地址計算出來,通過這種方式,Barcelona不會有機會預(yù)測錯誤。AMD的設(shè)計者考慮到采用類似Intel的預(yù)測器的做法,但是好像對它的架構(gòu)并沒有太大益處,AMD 能每個周期產(chǎn)生三個存儲地址,因為它有3個AGUs (Address Generation Units),而相比Intel只有1個,所以Barcelona在這方面有優(yōu)勢。

從上面看,Barcelona的亂序執(zhí)行能力加強后,應(yīng)該會在這方面性能強于Core 2。

熱詞搜索:

上一篇:基于路由器網(wǎng)絡(luò)診斷步驟和故障排除技巧
下一篇:AMD即將推出的四核處理器技術(shù)介紹(2)

分享到: 收藏
主站蜘蛛池模板: 皮山县| 安岳县| 康保县| 沧源| 紫阳县| 望江县| 千阳县| 波密县| 平邑县| 盐源县| 新昌县| 偏关县| 鹰潭市| 额尔古纳市| 喜德县| 安康市| 连城县| 新宁县| 靖远县| 慈溪市| 墨竹工卡县| 大石桥市| 永仁县| 怀仁县| 通榆县| 延安市| 华池县| 时尚| 开平市| 华宁县| 永新县| 义乌市| 仁寿县| 华安县| 吉林省| 永和县| 遂平县| 渝中区| 舟曲县| 九龙坡区| 深水埗区|