Ⅰ 什麼是"緩存",有什麼作用都有什麼規格的
CPU緩存(Cache Memory)是位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內存儲器(緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。
最早先的CPU緩存是個整體的,而且容量很低,英特爾公司從Pentium時代開始把緩存進行了分類。當時集成在CPU內核中的緩存已不足以滿足CPU的需求,而製造工藝上的限制又不能大幅度提高緩存的容量。因此出現了集成在與CPU同一塊電路板上或主板上的緩存,此時就把 CPU內核集成的緩存稱為一級緩存,而外部的稱為二級緩存。一級緩存中還分數據緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數據和執行這些數據的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。英特爾公司在推出Pentium 4處理器時,用新增的一種一級追蹤緩存替代指令緩存,容量為12KμOps,表示能存儲12K條微指令。
隨著CPU製造工藝的發展,二級緩存也能輕易的集成在CPU內核中,容量也在逐年提升。現在再用集成在CPU內部與否來定義一、二級緩存,已不確切。而且隨著二級緩存被集成入CPU內核中,以往二級緩存與CPU大差距分頻的情況也被改變,此時其以相同於主頻的速度工作,可以為CPU提供更高的傳輸速度。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由於不能准確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那麼還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。目前的較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存後未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內容應該按一定的演算法替換。一種較常用的演算法是「最近最少使用演算法」(LRU演算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU演算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁調用後再不需要的數據淘汰出緩存,提高緩存的利用率。
CPU產品中,一級緩存的容量基本在4KB到64KB之間,二級緩存的容量則分為128KB、256KB、512KB、1MB、2MB等。一級緩存容量各產品之間相差不大,而二級緩存容量則是提高CPU性能的關鍵。二級緩存容量的提升是由CPU製造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上集成更大的緩存,對製造工藝的要求也就越高。
雙核心CPU的二級緩存比較特殊,和以前的單核心CPU相比,最重要的就是兩個內核的緩存所保存的數據要保持一致,否則就會出現錯誤,為了解決這個問題不同的CPU使用了不同的辦法:
Intel雙核心處理器的二級緩存
目前Intel的雙核心CPU主要有Pentium D、Pentium EE、Core Duo三種,其中Pentium D、Pentium EE的二級緩存方式完全相同。Pentium D和Pentium EE的二級緩存都是CPU內部兩個內核具有互相獨立的二級緩存,其中,8xx系列的Smithfield核心CPU為每核心1MB,而9xx系列的Presler核心CPU為每核心2MB。這種CPU內部的兩個內核之間的緩存數據同步是依靠位於主板北橋晶元上的仲裁單元通過前端匯流排在兩個核心之間傳輸來實現的,所以其數據延遲問題比較嚴重,性能並不盡如人意。
Core Duo使用的核心為Yonah,它的二級緩存則是兩個核心共享2MB的二級緩存,共享式的二級緩存配合Intel的「Smart cache」共享緩存技術,實現了真正意義上的緩存數據同步,大幅度降低了數據延遲,減少了對前端匯流排的佔用,性能表現不錯,是目前雙核心處理器上最先進的二級緩存架構。今後Intel的雙核心處理器的二級緩存都會採用這種兩個內核共享二級緩存的「Smart cache」共享緩存技術。
AMD雙核心處理器的二級緩存
Athlon 64 X2 CPU的核心主要有Manchester和Toledo兩種,他們的二級緩存都是CPU內部兩個內核具有互相獨立的二級緩存,其中,Manchester核心為每核心512KB,而Toledo核心為每核心1MB。處理器內部的兩個內核之間的緩存數據同步是依靠CPU內置的System Request Interface(系統請求介面,SRI)控制,傳輸在CPU內部即可實現。這樣一來,不但CPU資源佔用很小,而且不必佔用內存匯流排資源,數據延遲也比Intel的Smithfield核心和Presler核心大為減少,協作效率明顯勝過這兩種核心。不過,由於這種方式仍然是兩個內核的緩存相互獨立,從架構上來看也明顯不如以Yonah核心為代表的Intel的共享緩存技術Smart Cache。
緩存(Cache memory)是硬碟控制器上的一塊內存晶元,具有極快的存取速度,它是硬碟內部存儲和外界介面之間的緩沖器。由於硬碟的內部數據傳輸速度和外界介面傳輸速度不同,緩存在其中起到一個緩沖的作用。緩存的大小與速度是直接關繫到硬碟的傳輸速度的重要因素,能夠大幅度地提高硬碟整體性能。當硬碟存取零碎數據時需要不斷地在硬碟與內存之間交換數據,如果有大緩存,則可以將那些零碎數據暫存在緩存中,減小外系統的負荷,也提高了數據的傳輸速度。
硬碟的緩存主要起三種作用:一是預讀取。當硬碟受到CPU指令控制開始讀取數據時,硬碟上的控制晶元會控制磁頭把正在讀取的簇的下一個或者幾個簇中的數據讀到緩存中(由於硬碟上數據存儲時是比較連續的,所以讀取命中率較高),當需要讀取下一個或者幾個簇中的數據的時候,硬碟則不需要再次讀取數據,直接把緩存中的數據傳輸到內存中就可以了,由於緩存的速度遠遠高於磁頭讀寫的速度,所以能夠達到明顯改善性能的目的;二是對寫入動作進行緩存。當硬碟接到寫入數據的指令之後,並不會馬上將數據寫入到碟片上,而是先暫時存儲在緩存里,然後發送一個「數據已寫入」的信號給系統,這時系統就會認為數據已經寫入,並繼續執行下面的工作,而硬碟則在空閑(不進行讀取或寫入的時候)時再將緩存中的數據寫入到碟片上。雖然對於寫入數據的性能有一定提升,但也不可避免地帶來了安全隱患——如果數據還在緩存里的時候突然掉電,那麼這些數據就會丟失。對於這個問題,硬碟廠商們自然也有解決辦法:掉電時,磁頭會藉助慣性將緩存中的數據寫入零磁軌以外的暫存區域,等到下次啟動時再將這些數據寫入目的地;第三個作用就是臨時存儲最近訪問過的數據。有時候,某些數據是會經常需要訪問的,硬碟內部的緩存會將讀取比較頻繁的一些數據存儲在緩存中,再次讀取時就可以直接從緩存中直接傳輸。
緩存容量的大小不同品牌、不同型號的產品各不相同,早期的硬碟緩存基本都很小,只有幾百KB,已無法滿足用戶的需求。2MB和8MB緩存是現今主流硬碟所採用,而在伺服器或特殊應用領域中還有緩存容量更大的產品,甚至達到了16MB、64MB等。
大容量的緩存雖然可以在硬碟進行讀寫工作狀態下,讓更多的數據存儲在緩存中,以提高硬碟的訪問速度,但並不意味著緩存越大就越出眾。緩存的應用存在一個演算法的問題,即便緩存容量很大,而沒有一個高效率的演算法,那將導致應用中緩存數據的命中率偏低,無法有效發揮出大容量緩存的優勢。演算法是和緩存容量相輔相成,大容量的緩存需要更為有效率的演算法,否則性能會大大折扣,從技術角度上說,高容量緩存的演算法是直接影響到硬碟性能發揮的重要因素。更大容量緩存是未來硬碟發展的必然趨勢。
Ⅱ Intel的CPU二級緩存是1M,2M的表示,而AMD的CPU的二級緩存是512*2表示,請問二者有什麼區別
i的雙核心處理器是共享式二級緩存,就是說兩個核心都可以調用二級緩存中的數據,因此對每一個核心來說可用的二緩都是你說的1M或2M,而A的雙核心處理器是獨享式二級緩存,每個核心獨自使用512kB二緩,表示成512*2,兩部分二級緩存中的數據不能互通有無,從這個意義上來說A的雙核處理器執行效率不如i的高,但相比INTEL如此之依賴二級緩存的容量來提高執行效率,AMD通過在處理器內集成內存控制器〔INTEL平台上為其主板的北橋晶元組〕使其執行效率不至落後intel過多,而二級緩存的減小對處理器的成本控制和工藝要求都小很多,使其成為低端處理器王者,手機打字手軟,給分吧
Ⅲ 共享二級緩存與獨享二級緩存相比,優勢主要體現在哪些方面
intel在沒有共享L2的時候,核心1和核心2之間要交換數據是通過內存來交換,這個速度就相當慢了,AMD要好點,核心1和核心2是通過HT匯流排來交換數據的,要好點,但仍然很慢,兩個核心之間缺乏聯系造成的區別就是在處理多任務的時候處理器交換數據慢,單任務的時候兩個核心之間協調不好.
當共享了L2以後,處理器兩個核心之間的數據交換就是通過處理器內部的L2來交換的了,雙核心之間數據交流非常好,協調好,優勢明顯,多任務的時候兩個核心的工作就能分配的比較明顯了.
Ⅳ 一級緩存和二級緩存是什麼意思
一級緩存(Level
1
Cache)簡稱L1
Cache,位於CPU內核的旁邊,是與CPU結合最為緊密的CPU緩存,也是歷史上最早出現的CPU緩存。由於一級緩存的技術難度和製造成本最高,提高容量所帶來的技術難度增加和成本增加非常大,所帶來的性能提升卻不明顯,性價比很低,而且現有的一級緩存的命中率已經很高,所以一級緩存是所有緩存中容量最小的,比二級緩存要小得多。
一般來說,一級緩存可以分為一級數據緩存(Data
Cache,D-Cache)和一級指令緩存(Instruction
Cache,I-Cache)。二者分別用來存放數據以及對執行這些數據的指令進行即時解碼,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。目前大多數CPU的一級數據緩存和一級指令緩存具有相同的容量,例如AMD的Athlon
XP就具有64KB的一級數據緩存和64KB的一級指令緩存,其一級緩存就以64KB+64KB來表示,其餘的CPU的一級緩存表示方法以此類推。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
Ⅳ 二級緩存容量的重要意義
緩存工作的原則,就是「引用的局部性」,這可以分為時間局部性和空間局部性。空間局部性是指CPU在某一時刻需要某個數據,那麼很可能下一步就需要其附近的數據;時間局部性是指當某個數據被訪問過一次之後,過不了多久時間就會被再一次訪問。對於應用程序而言,不管是指令流還是數據流都會出現引用的局部性現象。
舉個簡單的例子,比如在播放DVD影片的時候,DVD數據由一系列位元組組成,這個時候CPU會依次從頭處理到尾地調用DVD數據,如果CPU這次讀取DVD數據為1分30秒,那麼下次讀取的時候就會從1分31秒開始,因此這種情況下有序排列的數據都是依次被讀入CPU進行處理。從數據上來看,對於Word一類的應用程序通常都有著較好的空間局部性。用戶在使用中不會一次打開7、8個文檔,不諱在其中某一個文檔中打上幾個詞就換一個。大多數用戶都是打開一兩個文檔,然後就是長時間對它們進行處理而不會做其他事情。這樣在內存中的數據都會集中在一個區域中,也就可以被CPU集中處理。 介於從處理器內部到一級緩存、二級緩存最後到內存的所需時間會越來越慢,所以緩存的命中率和主頻在理論上也會影響到緩存的性能表現,但實際使用中,純理論的情況會出現嗎?下面就通過測試來檢驗一下。
在《Quake4》的測試中,主頻共同提升到3.2G之後,512KB與1MB的性能差距從原有的23%下降到了20%。2MB與4MB的性能差距則有微弱的提升,從原有的8%提高到了9%。512KB與6MB的性能差距則沒有變化,主頻從2.66G提高到3.2G之後,兩者的性能差距依舊保持在相同的59%上。
在《半條命2》的測試中,512KB與1MB的性能差距從原有的23%提高到了25%。2MB與4MB的性能差距則有提升,從原有的25%提高到了28%。512KB與6MB的性能差距提升相對明顯,性能差距從2.66G主頻下的102%提高到了3.2G下的120%,有18%的提高。
在《英雄連》的測試中,提升頻率之後的512KB二級緩存和1MB二級緩存的性能差距為40%,略高於在2.66G主頻下的37%。而2MB與4MB的性能差距則從原有的14%提高到了16%。512KB與6MB的性能差距從原有的123%提高到了131%,可見在《英雄連》這種對處理器非常敏感的游戲中,主頻越高,越能更好的發揮出大二級緩存的優勢。
通過上面的測試我們可以大致了解到,隨著主頻的提高,在大多數情況下,不同容量的二級緩存在性能上確實會有更大的性能差距。但是與主頻的提升並不成正比,在原有的基數比例下,當主頻同步提升20%的情況下,游戲中大致會出現8%左右的緩存性能增長,最高時也僅僅達到18%(《半條命2》中)。 假設有一個運算任務,要從「1」一直遞加到「999999」。在傳統的「實數據讀寫緩存」架構下,這一系列數據中最先用到的數據(如「1、2……449、450」)將存儲在CPU一級數據緩存中,更多的數據(如「451、452……899999、900000」)存儲在CPU二級緩存中,其餘的數據(如「900001、999002……999998、999999」)暫存在內存中,CPU將按照一級數據緩存、二級緩存和內存的順序讀取這些數據。
一級緩存的存儲方式
但是由於其一級數據緩存不存儲數據,數據存儲在二級緩存中,因此對二級緩存容量的依賴非常大,所以CPU需要更大的二級緩存容量才能發揮出應有的性能。在實際應用中,CPU處理的數據中大多數都是0KB~128KB大小的數據,128KB~256KB的數據約有10%,256KB~512KB的數據有5%,512KB~1MB的數據僅有3%左右。所以對於這種CPU來說,二級緩存容量從0KB增加到256KB對CPU性能的提高幾乎是直線性的;增加到512KB對CPU性能的提高稍微小一些;從512KB增加到1MB,普通用戶就很難體會到CPU性能有提高了。正因為如此,大家能感受到Pentium 4 C(512KB二級緩存)與Celeron(128KB二級緩存)的性能差異,卻很難感受到Pentium 4C(512KB二級緩存)與Pentium 4 E(1MB二級緩存)的性能差異了。
例如,同為2.8GHz主頻的Celeron D(256KB二級緩存)和Pentium 4 E(1MB二級緩存)運算104萬位的耗時分別為56秒和48秒 ,除去外頻(前者為133MHz,後者為200MHz)的差異和超線程技術的影響,兩者的性能差距只有10%左右,對於普通用戶而言這樣的性能差距 是微不足道的;只有對CPU運算性能要求「苛刻」的玩家來說更大的二級緩存容量才是必須的。
相對的,由於AMD的Athlon 64/Athlon XP/Sempron/Duron系列產品的一級數據緩存直接存儲數據,而且128KB的容量在大多數情況下就 可以承擔CPU所急需的數據,所以其二級緩存對CPU性能的影響並沒有那麼大。這也就解釋了為什麼主頻和外頻相同的Athlon XP(256KB或512KB二級緩存)和Duron(64KB二級緩存)雖然二級緩存容量差異巨大,但實際性能差距不大的原因。而且Athlon 64/Sempron 系列CPU在內存控制器、流水線長度、頻率、匯流排架構和擴展指令集等諸多方面與以前的產品都有差異,因此在性能上受二級緩存容量的影響就 更小了。綜上所述,在CPU性能方面,並非只從二級緩存容量上作對比就可以得到准確的答案,實際上還要考慮到緩存的總體設計結構、一級數 據緩存容量等因素。雖然從總體上來講,二級緩存容量越大越好,但是並不是二級緩存容量提高一倍就能使CPU性能提升一倍。因此對於一般家 庭用戶來說,電腦主要是用來上網、欣賞音樂和電影以及文字處理,二級緩存為256KB的Celeron D或Sempron已經足夠了。只有對3D游戲、辦公軟體和多媒體編輯性能要求較高的用戶才需要更大二級緩存的CPU。 所謂處理器緩存,通常指的是二級高速緩存,或外部高速緩存。即高速緩沖存儲器,是位於CPU和主存儲器DRAM(Dynamic RAM)之間的規模較小的但速度很高的存儲器,通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴於速度較慢的DRAM(動態隨機存儲器)。L2高速緩存一直都屬於速度極快而價格也相當昂貴的一類內存,稱為SRAM(靜態RAM),SRAM(Static RAM)是靜態存儲器的英文縮寫。由於SRAM採用了與製作CPU相同的半導體工藝,因此與動態存儲器DRAM比較,SRAM的存取速度快,但體積較大,價格很高。
PC及其伺服器系統的發展趨勢之一是CPU主頻越做越高,系統架構越做越先進,而主存DRAM的結構和存取時間改進較慢。因此,緩存(Cache)技術愈顯重要,在PC系統中Cache越做越大。廣大用戶已把Cache做為評價和選購PC系統的一個重要指標。
Ⅵ cpu的二級緩存有什麼作用
評定一顆CPU的性能,除了看主頻以外,緩存也非常重要,什麼是緩存?簡單的說:因為CPU的速度很快了,其它硬體如內存、硬碟的速度跟不上,CPU讀取數據時就要等待,而設置緩存能預先把CPU要讀取的數據放在緩存中,緩存的速度很快,這樣就顯著提高了CPU的運行效率。那麼緩存容量越大,CPU的執行效率也就越好,由於現在的CPU速度越來越快,為了發揮性能,又有了一級緩存和二級緩存。
你一定知道奔騰和賽揚吧,它們往往GHz是一樣的,但為什麼一個那麼貴,另一個那麼便宜?因為奔騰的綜合性能要比賽揚好很多!為什麼好很多?關鍵就是它們的一級緩存和二級緩存相差了很多!
我想,說到這里,你應該明白了吧,看CPU的性能,既要看它的主頻,又要看它的緩存。
Ⅶ 二級緩存是什麼
二級緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。二級緩存的容量分為128KB、256KB、512KB、1MB、2MB等。Intel雙核心處理器的二級緩存,Intel的雙核心CPU主要有Pentium D、Pentium EE、Core Duo三種,其中Pentium D、Pentium EE的二級緩存方式完全相同。Pentium D和Pentium EE的二級緩存都是CPU內部兩個內核具有互相獨立的二級緩存。
二級緩存的作用:
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由於不能准確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那麼還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。目前的較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存後未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內容應該按一定的演算法替換。一種較常用的演算法是「最近最少使用演算法」(LRU演算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU演算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁調用後再不需要的數據淘汰出緩存,提高緩存的利用率。