Round 1 – 多一層比較好?L3快取可以更快嗎?
在Nehaiem上最大的特點之一就是加入了8MB的第三層快取。第一層L1 Cache於各核心之內,別都有32KB數據+32KB指令【共64KB】;第二層L2 Cache也是位在各核心中且各核心分別獨享,大小皆有256KB;第三層L3 Cache,容量達8MB,L3可供四個核心共享。
L1 Cache方面並無太大改變,一樣是8-way set associative設計,不過潛伏週期會比上一代的Penryn還高,Nehalem為4個T,Penryn僅有3個T。據瞭解降低L1的速度有利於更好的控制處理器的時脈。
相較於上一代說, L2 Cache容量則大幅減小,且不再是做共享式。每個核心擁有獨立256KB的Cache。不同於L1,L2 Cache擁有極低的潛伏期,速度將會更快,資料從 L2中存入和取出僅需10個潛伏期就可達成。
而Nehalem上的L3 Cache,在以前的P4-EE和現在的AMD CP中均有出現過,但對架構來說應該會有不樣吧【不然就沒甚麼有趣了】,當然有不一樣,Nehalem的L3 Cache為包含式(Inclusive)的架構,下面我們來看一下。
所謂『完全包含式』簡單的來說就是L3包含L1及L2的全部資料。缺點來看是浪費容量,我們知道是L3的8MB就會先消耗了1.1MB【{(32+32)+256}*4】。不過就優點來說,當某核心在L1/L2 miss數據,再向L3找也沒有,皆可確定全部CORE沒有這筆數據;反過來說,如在L3找到了數據,可以知道在哪一個Core有含這一筆【上圖右】。
相較於AMD的L3是採用互斥式快取架構【Exclusive Cache Architecture】,簡單的來說就是跟INTEL相反,L3不包含L1及L2的資料,所以當某核心在L1/L2 miss數據,再向L3找也沒有,就要花時間再向其餘Core找尋【上圖左】。
========================================================
Round 2 – LSD,解碼低延遲、耗電變更低!
LSD【Loop Stream Detector】是一指令緩衝區,Core2就有出現過的東西,在Nehalem上也有,而且做了更好的改進。我先談LSD好了,作用在於判斷資料流過時是否出現迴圈,有的話就會讓LSD存起來,不必再從L1 Cache取指令,直接從LSD取。最大的好處在於,不必再次做指令擷取動作,提升效率,進而可以達到減少電力消耗。而在Nehalem上,增加至不超過25個指令的反覆執行迴圈外,LSD也放在Decode後方,更大大的減少延遲,作用力比上一代更強。
========================================================
Round 3 – 革命革命!重砲火力 QPI 首次登場!
QPI【QuickPath Interconnect】可說是Nehalem的心臟地帶,也是INTEL多年以來最大架構上的改革,QPI也是向我們使用多年的FSB【Front Side Bus】說掰掰的時候了。對於FSB【Front Side Bus】來說,如要持續發展多核,來面對CPU、NB和DRAM三者之間的傳輸,會慢慢發現即使擁有FSB 1600MHz下的12.8GB/s是已經不夠了,所以等著被淘汰也是時間早晚的問題。為了克服這種情況,進而擁有25.6GB/s雙向資料傳輸理論頻寬QPI的誕生。
QPI是一種序列高速差動式的點對點傳輸架構。傳輸通道各自獨立,可以雙向多工傳輸,線路具擴充性。而上面提到的擁有高達25.6GB/s雙向資料傳輸理論頻寬是怎麼來的呢?讓小弟解釋一下,既然是傳輸,不免就有傳輸端【TX】與接收端【RX】,這兩端各自有20bit寬,但扣掉無效部分,實際正確傳輸寬度為16bit【2Byte】。而QPI的最高資料傳輸速度可達6.4GT/s,所以 2 × 2Byte × 6.4GT/s不正好就是25.6GB/s。
而在QPI中有84訊號線,前面提到傳輸端【TX】與接收端【RX】各自有20bit寬,再來就是雙向,所以2 × 20 × 2 = 80,那另外少的4呢?少的那4條為兩個傳輸方向各自需兩條時脈控制線,TOTAL剛好有84條囉!
QPI還有另一個重要的任務就是用來連接每個核心之間的傳遞【上圖藍線】,也因為這個優勢,兩兩核心之間皆可直接傳遞,每個Core都可以快速的經由另一個Core取到此Core記憶體中的資料,大幅度的提升效率。
那跟AMD的HyperTransport比較呢?這點容許小弟做些保留,畢竟新的QPI還是需要多一些的時間來考驗它,雙方才比較容易分出個高下。
========================================================
Round 4 – 久違了Hyper-Threading~
還記得P4上的HT【Hyper-Threading】超執行緒技術吧。那時候可以看到工作管理員中有八個邏輯處理器。所謂的超執行緒技術就是有效的利用每個核心內的閒置處理單元進行運算,進而提高運算效能。不過大家會好奇怎麼在Core2之後就沒看到它呢?因為Core架構的處理器無足夠的頻寬來利用超執行緒技術,所以短暫的被抽起來放著,有朝一日再回到戰場上戰鬥。兩年後這一日等到了,Nehalem擁有比Core更高的記憶體頻寬與更大的高速快取,此時久違的Hyper-Threading超執行緒技術又回到了戰場,且進化成新一代的Simulate Multi Threading【SMT】技術。藉由Nehalem的優勢,SMT能比它的上一代HT帶來更強大的火力。
當Nehalem開啟SMT時,每核心可以同時執行2個線程。最大的優點在於能發揮一個Core的資源就能更有效的執行多任務,所以藉由Nehalem更高的記憶體頻寬及更強的高速快取,可以說把SMT的潛能給激發出來了。小弟在PO這段時,有特地上網查詢一下目前各網站針對開啟SMT的效能測試,就目前看到的似乎還是有好有壞,最大的猜測就是可能Nehalem的技術與架構太新了,或許還要等軟體到位,整個效能才能有效的發揮,還是請大家拭目囉!
========================================================
Round 5 –雙管齊下效果好!三通道與內建記憶體控制器一起上!
如果有人問小弟Nehalem第二個值得去瞭解它的是哪個部分,我可能會毫不猶豫的跟他說,『三通道』與『內建記憶體控制器』。CPU內的頻寬可是和RAM的頻寬息息相關,前幾段提到QPI 目前最高可擁有25.6GB/s的雙向資料傳輸理論頻寬,假如就算使用雙通道的DDR2-1333,可能就會發生玩家常說的『餵不飽』,所以提升更多的記憶體頻寬,也是本次重要的目的之一。當然方式一就是採用三通道的模式。三通道模式下,搭配著DDR3-1333的記憶體,再藉著CPU與記憶體之間提供的192-bit【3×64bit】交互帶寬,那麼就會得到32GB/s【1333×3×64/8】的最大傳輸理論頻寬,對於CPU的需求可說是迎刃有餘。
內建記憶體控制器【IMC, Integrated Memory Controller】對AMD來說不是什麼稀奇的事,不過對INTEL來說可是給我們帶來第一次的驚喜。IMC最大的好處在於可以很明顯的降低記憶體的延遲,對於性能的提升是非常有幫助的。在上圖可以看得出來,Nehalem的Local端【本地】與Remote端【遠端】,記憶體延遲皆可比Harpertow n【四核Xeon】低;最好的Local端能降低40%;而Remote端的請求和回應需通過QPI,因此延遲比Local高一些,但還是比Harpertow n低。
三通道與內建記憶體控制器的出現,使得Nehalem有超大的頻寬來搭著QPI,也使得久違的SMT再次重返。硬體面來說,因為內建了記憶體控制器,所以更換了腳位更多的LGA 1366,所以想體驗Nehalem的朋友,也須更換X58主機板,使用現有的LGA 775都要打包票回去。也趁著目前已有許多記憶體廠商出的三通道KITS組,搭配三條記憶體跑三通道,我們剩下的就是希望RAM再多跌一些價格囉!
========================================================
Round 6 - 新指令才夠狠!SSE4.2!
說到SSE大家一定不陌生,歷屆幾代CPU上面都有它的存在,但到底它是甚麼東西呢?SSE是Streaming SIMD Extensions的縮寫,翻成中文意思來看就是『流型單指令多資料擴展程式』。說穿了,其實SSE就是可增強CPU向量與矩形的運算能力,進而在多媒體、圖形、3D、遊戲上有加速功用,假如軟體對CPU的指令集有優化過,那麼在執行的速度上會有相當的幫助與提升。
SSE歷史來看,進化過程為SSE/SSE2/SSE3/SSSE3/SSE4,每代都針對不同的部分進行優化。而在這次的Nehalem上,又追加了7條指令至SSE4.2,這樣加起來,整個SSE4.2共有54條指令集。再追加的7條指令中,各自都擁有不同的功用。
SSE4.2指令集可主要分為STTNI和ATA。STTNI主要是加速字符串及文本處理,例如XML應用進行高速搜尋及對比。ATA又主要分為POPCNT與CRC32,可作數據庫的加速搜尋和識別。其中POPCNT用來計算資料中0/1的數目,適用於DNA比對、聲音辨識與密碼學等應用;CRC32則可加快iSCSI資料傳輸的錯誤偵測。不過聽說AMD下一代的CPU會採用SSE5,其指令集初期就有100條,看來SSE這塊也是越後面越有看頭。
========================================================
Round 7 - 超頻不麻煩!Dymanic Speed幫你來!
Dymanic Speed在之前INTEL正式命名前稱之為Turbo Mode,從英文字面來看都可以稍微猜到它可能是跟甚麼加速有關,that's right,就是超頻囉。Dymanic Speed是首次出現在INTEL的處理器中,利用其Turbo Mode技術,能讓core進行『動態加速』。可以根據當下的需要,開啟、關閉甚至加速單個或多個內核的運行。舉個簡單的例子,如果有認真看上面的文章,大家都知道Nehalem擁有四個core,但是就目前來說,不太可能一個任務要完全動用到四個core,這時Dymanic Speed就可以發揮它的作用了,假如CPU判斷此任務只需要用到兩個Core,則會關閉另外兩個core;不僅如此,假如CPU內部判斷還有能力進行超頻,則會將開啟的那兩個CORE進行小幅度的超頻,來提升整體的能效比率。
那話說回來,CPU要怎麼判斷它關閉、開啟或超頻核心呢?由上圖得知,每個core有自己的PLL同步邏輯單元、頻率、核心電壓和感應器。而Nehalem中的PCU就是來即時監控整體的性能,並且向其發出命令請求。因此PCU可以有效的決定系統的運行狀態,是要超頻模式,還是在省電模式。
Dymanic Speed運行時,如果所有核心都處在開啟狀態時,每個core的BCLK頻率是133MHz(可以當作是外頻),同時PCU功耗控制單元要進行即時的偵測,確保TDP不會超過額定的範圍。但如果偵測到的TDP數值夠低,或者有其他的核心處在空閒的狀態,處理器的時脈會藉由增加1的倍頻來提升,進而增進效能。
下面還有3種Dymanic Speed的方式:
關掉兩個核心,如果偵測到的TDP數值夠低,再將其超頻。
偵測到的TDP數值夠低,將其四個CORE超頻。
更屌的來,四個超頻還不夠,假如TDP的數值還可以接受,在超兩個CORE。
========================================================
總結
看到這邊,不知道大家是不是很期待能體驗看看這次INTEL大改造的CPU呢?當然小弟我也是啦,從這些圖文資料看來Nehalem果然是一個殺手級的狠腳色。而在新一代X58晶片組的搭配下,兩者的擦出的火花可不只是這樣唷!假如有人有處處留意一些消息與測試的,應該不難知道,X58平台是可以使用SLI甚至3WAY-SLI的,一圓在X48、P45之前平台上不能實現的夢想,讓CFX與SLI同時出現。到目前為止,已經NDA後一個多星期了,大家可以在各處一探i7+X58的實力,而接下來小弟也會陸續送上相關的平台測試,請大家鎖定XF唷!
[/hide]
[ 本帖最後由 hyde211 於 2008-11-14 15:38 編輯 ] |