Conroe強在哪兒?Core vs K8架構(gòu)解析
在處理器頻率已經(jīng)達到3GHz甚至更高的時代,保證即將用到的指令和數(shù)據(jù)已經(jīng)在緩存中準(zhǔn)備好是處理器設(shè)計者最重要的工作之一。因為只有這樣,才能保證隨著處理器頻率的提高性能也隨之提高;否則的話,更高的處理器頻率只會使處理器花費更多的時鐘周期來等待數(shù)據(jù)。這種把數(shù)據(jù)提前裝入緩存的技術(shù)被稱為“數(shù)據(jù)預(yù)取技術(shù)”(Prefeching)。但是,之前的處理器采用的數(shù)據(jù)預(yù)取技術(shù)并不能保證每次都成功,總會有一些失敗的情況。這會導(dǎo)致處理器性能降低,特別是在運行對帶寬敏感的應(yīng)用程序的時候。
Core 微架構(gòu)所采用的數(shù)據(jù)預(yù)取技術(shù)毫無疑問是目前為止非常先進的,要優(yōu)于 Pentium 4 和 Athlon 64 所采用的技術(shù)。Core 微架構(gòu)中的每個核心至少有3組預(yù)取單元,包括2組數(shù)據(jù)預(yù)取單元和1組指令預(yù)取單元。除此之外,共享式二級緩存還擁有2組預(yù)取單元。這樣,在一個雙核心的采用 Core 微架構(gòu)的處理器中,共有8組預(yù)取單元。有一個問題是,多達8組的預(yù)取單元在進行預(yù)取工作時,很容易會妨礙到正在運行的程序的正常的 load 操作。為了避免這種情況的發(fā)生,Core 微架構(gòu)采取了預(yù)取監(jiān)測器的機制,該監(jiān)測器總會給予正在運行的程序更高的優(yōu)先級。這樣,預(yù)取單元就決不會從正在運行的程序那里“偷”走很多帶寬了。
Core 微架構(gòu)的預(yù)取機制還有更多新特性。數(shù)據(jù)預(yù)取單元經(jīng)常需要在緩存中進行標(biāo)簽查找。為了避免引起正在運行的程序進行的標(biāo)簽查找的更高的延遲,數(shù)據(jù)預(yù)取單元使用標(biāo)簽查找的 store 端口。如果你還記得,load 操作的發(fā)生頻率是 store 操作的2倍之多,那么就容易理解這樣的選擇了——store 端口的使用頻率僅為 load 端口的一半。并且,store 操作在大多數(shù)情況下并不是影響系統(tǒng)性能的關(guān)鍵,因為在數(shù)據(jù)開始寫入后,處理器可以馬上開始進行下面的工作,而不必等待寫入操作完成。緩存/內(nèi)存子系統(tǒng)會負責(zé)數(shù)據(jù)的整個寫入到緩存、復(fù)制到主內(nèi)存的過程。
Core 微架構(gòu)的緩存系統(tǒng)也令人印象深刻。二級緩存容量高達4MB,并且是由兩個核心共享的,訪問延遲僅12到14個時鐘周期。每個核心還擁有32KB的一級指令緩存和一級數(shù)據(jù)緩存,訪問延遲僅僅3個時鐘周期。從 NetBurst 微架構(gòu)開始引入的追蹤式緩存(Trace Cache)在 Core 微架構(gòu)中消失了。NetBurst 微架構(gòu)中的追蹤式緩存的作用與常見的指令緩存相類似,是用來存放解碼前的指令的,對 NetBurst 微架構(gòu)的長流水線結(jié)構(gòu)非常有用。而 Core 微架構(gòu)回歸相對較短的流水線之后,追蹤式緩存也隨之消失,因為 Intel 認為,傳統(tǒng)的一級指令緩存對短流水線的 Core 微架構(gòu)更加有用。
關(guān)注我們


