更快的內存控制器
我們知道AMD在K8上的成功,很大程度上是大膽的采用了集成內存控制器的做法,不過在Barcelona中它的性能又有了加強。
在Intel Xeon服務器的FB-DIMM內存架構中,可以同時執行讀和寫命令到AMB,而在標準的DDR2內存中,你只能同時進行一個操作,而且讀和寫的切換會有非常大的損失。如果是一連串的隨機混合執行的話,將會帶來非常嚴重的資源浪費,而如果是先全部讀然后再轉換到寫的話,就可以避免性能的損失。K8內存控制器就采用讀取優先于寫的策略來提高運行效率,但是Barcelona則更加智能化。
但是讀取的數據會被先存放在buffer中,而不采用先直接執行寫,但當它的容量達到了極限就會溢出,為了避免這種情況,在此之前才對讀寫之間進行切換,同時可以帶來帶寬和延遲方面效率的提高。
K8核心配備的是128-bits寬度的單內存控制器,但是在Barcelona中,AMD把它分割成兩個64-bit,每個控制器可以獨立的進行操作,因此它可以帶來效率上的不小提升,尤其是在四核執行的環境下,每個核心可以獨立占有內存訪問資源。
Barcelonas中集成的北橋部分(注意不是主板北橋)也被設計成更高的帶寬,更深的buffers將允許更高的帶寬利用率,同時北橋自身已經可以使用未來的內存技術,比如DDR3。
新的預取器
預取在很多領域的更多部件中都被廣泛采用,當NVIDIA發布nForce2的時候,它就強調了智能預取的能力,來充分利用好128-bit內存總線的性能,而更近的Intel的Core 2處理器中被重點強調的每核心三預取器(prefetchers)可以明顯減少內存的延遲。
而K8核心每個核心擁有兩個預取器,一個是指令,另一個是數據,Barcelona核心仍然保留同樣的數目,但是對他們進行了加強,最大的改變是數據預取器,現在可以把數據傳到L1數據Cache中,而不是K8核心的L2 Cache。AMD認識到K8預取器的先進性,所以他們只做了上面的處理,同時AMD也提升了L1指令緩存的靈活性,來配合這兩個高效請求的工作。
綜合來看,似乎Intel的prefetchers在規格方面更有優勢,Core 2處理器的每個核心帶有兩個數據和一個指令prefetchers,加上額外的兩個L2 cache prefetchers,可以說是更為可觀,但是不一樣的設計,最終的性能勝負還不得而知。
Barcelona核心內部擁有自己的數據和指令prefetchers,但是最主要的改進是DRAM prefetcher(內存prefetcher),它位于內存控制器里面,在此前AMD從來沒有使用過這樣的邏輯設計,這個新的DRAM prefetcher掌管了所有的內存請求和動作,由于DRAM prefetcher要協調四個核心,它就掌控了整個芯片的性能的發揮,同時它不占用L2、L3 caches,它擁有自己獨立的buffer來解決數據溢出問題,這個buffer擁有20 - 30個cache線路,其實這個buffer已經在前面提到過。
限于AMD的產能,AMD不可能和Intel那樣有實力通過采用更多的晶體管的策略進行競爭,K8通過內存控制器來實現了這個弱勢的超越,所以現在 Athlon 64 X2處理器每個核心只有512KB L2 cache,只相當于Intel 2002引進Northwood時的規格。
現在Intel的Core 2已經提到了4MB L2 cache,而目前AMD最快的CPU也只能達到一半的水平,這個限制同樣在Barcelona上進一步體現,每個核心只會有512KB L2 cache,總計2MB,而現在Intel的四核Kentsfield總共擁有8MB L2 cache,到今年年底,Intel的Penryn預計將會達到12MB L2 cache。
498)this.style.width=498;" border=1 twffan="done">
為了在性能和容量上進行平衡,AMD在設計了128KB L1 Cache和512KB L2 Cache后,多線程軟件對多核心的要求也需要更高速的緩存來保持更好的性能。
498)this.style.width=498;" border=1 twffan="done">
AMD并不想通過采用更大容量L2 cache的做法,取而代之的是追加一個第三級的Cache,而且這個Cache將被四核心所共享,在容量上也達到了2MB L3 cache。
關于緩存的工作原理大家應該比較了解:當L1 cache已經滿了之后,數據將被轉到速度稍低的L2 cache,同樣新的L3 cache類似,當L2 cache已經滿了以后,數據將會傳到L3 cache。不過控制它操作的算法則是針對四個核心,它在資源調度上有做協調,當CPU需要獲取一些代碼,一個備份將會在L3 cache中存儲下來,因為這個數據可能被四個核心所共享,純粹的數據加載則通過單獨的核心。當數據在此之前已經被共享了,cache控制器會查看歷史信息,同時保存這個備份,否則則被丟棄。
498)this.style.width=498;" border=1 twffan="done">
L1 and L2 cache的Associativity則沒有被改變,它們還是2-way和16-way,而新的L3 cache則是32-way set associative,通常在CPU-Z里面可以看到這些信息。
AMD虛擬技術加強
同時在虛擬技術方面,Barcelona也有了相應的改進,擁有了更快的虛擬地址轉換,在擁有多個客戶OS的虛擬軟件堆棧中,有一個內存地址轉換必須處理,客戶OS向系統管理程序的地址轉換,因為每個客戶OS擁有獨立的內存管理,據AMD聲稱,目前這個轉換是通過軟件來實現的,并且是基于一個叫 shadow paging的技術,而Barcelona提供的是硬件加速轉換,AMD把它稱為Nested Paging。
根據推算大約系統管理程序所消耗的75%的時間是用于shadow paging,轉換的地址是在Barcelonas TLBs中被緩存的,而且AMD指出Nested Paging并不需要太復雜的設定,這對于軟件開發商來說就變得非常簡單。
功耗管理
498)this.style.width=498;" border=1 twffan="done">
在功耗方面的設計,可以說非常值得關注,目前的Intel四核的功耗非常高,而Barcelona的四個核心工作電壓都一樣,同時內部的北橋單元則使用獨立的電壓計劃,可以根據另外一個工作情況在0.8V到1.4V之間改變,它們的電壓可以獨立管理,這將提高功耗效率。
498)this.style.width=498;" align=middle border=1 twffan="done">
獨立的核心雖然共享同樣的電壓,但是每個核心都擁有自己的PLL電路,所以它們可以根據負載情況,運行在不同的頻率下。
Barcelona每個核心支持五個獨立的p-states(頻率等級)轉換,改變只是在頻率上,p-states完全是硬件控制的,所以我們不需要驅動就可以開啟這個功耗管理特性,同時AMD也增加了clock gating(時鐘頻率比)的數量,同時65nm工藝允許AMD的首款四核的功耗表現就可以和目前的Opteron相當,表現非常的出色!
當Intel發布它的首款Core 2處理器的時候,它的性能提升是大家有目共睹的,它的成功很大程度上是因為架構方面的改進,所有的Conroe, Merom和Woodcrest全面超過了基于NetBurst架構的Pentium 4。AMD在2003年引進的K8已經確實有些老了,Intel憑借著Pentium M架構實現了Athlon 64的反超,現在就看Barcelona的了。
498)this.style.width=498;" border=1 twffan="done">
AMD Opteron處理器藍圖
對大家來說最關心的還是具體發布產品的時間了。第一款新架構產品首先將在下一代Opteron中出現,預計將會在年中問世,首度發布的產品工作頻率將在 2.1GHz到2.3GHz之間,同時到年底將會有更高頻率的產品。在桌面平臺,AMD的Agena將會基于同樣的架構,量產的時候頻率會在2.7 - 2.9GHz之間,Kuma則是雙核的版本,同時頻率將會在2.0 - 2.9GHz之間。
498)this.style.width=498;" border=1 twffan="done">
498)this.style.width=498;" align=middle border=1 twffan="done">
AMD桌面處理器藍圖
在價格方面,我們預計AMD會采取更加務實的策略,此前發布的Athlon 64 X2 6000+就是這樣,相信在這方面能夠跟競爭對手相抗衡。
498)this.style.width=498;" align=middle border=1 twffan="done">
根據此前關于AMD去年和今年第一季度的營收情況,AMD今年第一季度可能無法實現預期的目標,相信陣痛過后,將會有有更加優異的表現。讓我一起期盼Barcelona的到來吧,看看這次AMD是不是能干得很漂亮!