推土機(jī)架構(gòu)分析
推土機(jī)”將采用32nmSOI工藝,這讓“推土機(jī)”相比“馬尼庫(kù)爾”皓龍?zhí)幚砥骺梢栽诓辉黾庸牡那疤嵯略黾?3%的核心數(shù)量、增加50%的吞吐量。與AMD之前所有處理器都有所不同的是,“推土機(jī)”采用了“模塊化”的設(shè)計(jì),每個(gè)“模塊”包含兩個(gè)處理器核心,這有些像一個(gè)啟用了SMT的單核處理器。每個(gè)核心具有各自的整數(shù)調(diào)度器和四個(gè)專(zhuān)有的管線(xiàn),兩個(gè)核心共享一個(gè)浮點(diǎn)調(diào)度器和兩個(gè)128位FMAC乘法累加器。 所不同的,在K10架構(gòu)中,ALU和AGU共享三個(gè)管線(xiàn)(平均1.5個(gè)),“推土機(jī)”中每個(gè)核心整數(shù)單元管線(xiàn)的數(shù)量增加為4個(gè),2個(gè)AGU專(zhuān)有、2個(gè)ALU專(zhuān)有。L1緩存也有所不同,在K10架構(gòu)中,每個(gè)核心具有64KB L1指令緩存和64KB L1數(shù)據(jù)緩存;而“推土機(jī)”每個(gè)核心具有16KBL1數(shù)據(jù)緩存、每個(gè)模塊具有64KB雙向L1指令緩存,至于減小的L1緩存是否會(huì)影響性能還有待觀察。兩個(gè)核心共享L2緩存,模塊之間共享L3緩存及北橋。 AMD“推土機(jī)”模塊 “模塊”和“核心”,這讓我們不免會(huì)產(chǎn)生混淆,實(shí)際對(duì)于用戶(hù)們來(lái)說(shuō),沒(méi)必要去刻意的關(guān)注“模塊”的概念,這只不過(guò)是AMD在設(shè)計(jì)上的稱(chēng)謂,而當(dāng)產(chǎn)品投放市場(chǎng)的時(shí)候,依舊會(huì)以核心數(shù)量為標(biāo)識(shí),比如我們說(shuō)采用推土機(jī)架構(gòu)的“Interlagos”服務(wù)器處理器具有16個(gè)核心,而不會(huì)說(shuō)是8個(gè)模塊。對(duì)于為何采用這種“模塊”設(shè)計(jì)的主要原因,AMD表示是“為了減少CPU的冗余電路”。
如果采用CMP的方式,隨著核心數(shù)量的增加,CPU的核心面積也會(huì)越來(lái)越大,重復(fù)的電路也會(huì)越來(lái)越多,功耗也會(huì)隨之增加——因?yàn)镃MP是采用復(fù)制核心的方式。而采用“模塊”設(shè)計(jì)可以大大減少冗余電路,這對(duì)核心的大量增加很有意義。比如“推土機(jī)”,兩個(gè)核心共享浮點(diǎn)部分,對(duì)于大部分服務(wù)器應(yīng)用來(lái)說(shuō),整數(shù)運(yùn)算的部分要遠(yuǎn)遠(yuǎn)高于浮點(diǎn)運(yùn)算(高性能計(jì)算除外),所以將浮點(diǎn)執(zhí)行單元共享并不會(huì)影響大多數(shù)應(yīng)用中的性能。而整數(shù)部分則不是共享的,否則會(huì)造成瓶頸。 上文我們回顧過(guò)CMP和SMT設(shè)計(jì)的特點(diǎn),我們可以把AMD“推土機(jī)”架構(gòu)看做是介于這兩種之間的一種設(shè)計(jì):兩個(gè)線(xiàn)程(核心)共享浮點(diǎn)執(zhí)行單元,但是各自具有獨(dú)立的整數(shù)執(zhí)行資源。這看上去像是SMT的另一種形式,或者說(shuō)是經(jīng)過(guò)AMD改良的一種“AMD式的第三種方式”。但與傳統(tǒng)的SMT設(shè)計(jì)不同,SMT僅僅復(fù)制的是核心的存儲(chǔ)部分,一個(gè)線(xiàn)程一個(gè)存儲(chǔ)模塊(registerfile),而AMD“推土機(jī)”架構(gòu)中,每個(gè)線(xiàn)程復(fù)制的是完整的整數(shù)執(zhí)行單元硬件,一個(gè)線(xiàn)程具有一個(gè)存儲(chǔ)模塊(registerfile)和一組完整的整數(shù)執(zhí)行單元。 AMD“推土機(jī)”核心架構(gòu)的一些特性 每個(gè)線(xiàn)程具有獨(dú)立的整數(shù)執(zhí)行單元是AMD“推土機(jī)”和雙線(xiàn)程SMT設(shè)計(jì)的主要區(qū)別。不過(guò)從“推土機(jī)”的設(shè)計(jì)來(lái)看,這并不像真正意義上的“CMP雙核”,畢竟兩個(gè)核心還要共享浮點(diǎn)執(zhí)行單元,或者可以稱(chēng)之為“1.5核”。這樣設(shè)計(jì)的好處就是能夠大大節(jié)省晶體管的數(shù)量、降低核心面積和功耗,同時(shí)降低成本。即使不是真正的“雙核”,但不難想象這樣的設(shè)計(jì)要比SMT更加高效,相比之下,傳統(tǒng)的SMT設(shè)計(jì)可以稱(chēng)之為是一種“1.2核”的設(shè)計(jì)。 AMD表示平均計(jì)算下,一個(gè)單獨(dú)的“推土機(jī)”核心執(zhí)行兩個(gè)線(xiàn)程可以達(dá)到1.8核CMP的效率,但是,這樣的數(shù)字也是要依賴(lài)于負(fù)載情況。雖然“推土機(jī)”的模塊設(shè)計(jì)要比傳統(tǒng)的SMT設(shè)計(jì)在執(zhí)行效率上更高,但是增加的整數(shù)執(zhí)行單元也提高了成本和能耗。另外,沒(méi)有意外的話(huà),AMD“推土機(jī)”應(yīng)該具備很好的浮點(diǎn)計(jì)算性能。AMD表示雖然FPU是被兩個(gè)線(xiàn)程共享的一個(gè)部分,如果給予足夠的內(nèi)存帶寬,芯片將具有很高的浮點(diǎn)運(yùn)算能力。