本文主要是關于amd二級緩存的介紹,探討了二級緩存的大小及其選擇范圍,希望通過本文能讓你對二級緩存有更深的了解。
二級緩存
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取并送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取并送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以后對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待??偟膩碚f,CPU讀取數據的順序是先緩存后內存。 最早先的CPU緩存是個整體的,而且容量很低,英特爾公司從Pentium時代開始把緩存進行了分類。當時集成在CPU內核中的緩存已不足以滿足CPU的需求,而制造工藝上的限制又不能大幅度提高緩存的容量。因此出現了集成在與CPU同一塊電路板上或主板上的緩存,此時就把 CPU內核集成的緩存稱為一級緩存,而外部的稱為二級緩存。一級緩存中還分數據緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數據和執行這些數據的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。
amd二級緩存多少比較好
AMD處理器處理器數據時采用有續處理,處理器一個接一個的處理,不是隨機的。每個數據幾乎都直接來自于L2,因為L2的大小是有限的,當單個數據的大小超過L2的時候,只有訪問內存,或者是上一個數據關聯的數據在內存中的時候,AMD才需要訪問內存。
舉例說明:AMD的的處理方式像從倉庫搬東西,L2是個小倉庫,內存是大倉庫,從小倉庫L2中搬東西的速度最快,處理器每次訪問數據都直接從小倉庫中版,但是偶爾也回遇到些情況,就是要搬的東西實在太大了,小倉庫裝不了,那么只有從大倉庫搬了。
由于AMD的有續處理方式,對L2的需求只需要看單個數據的大小。當L2能滿足大多數單個數據的時候,提升L2就沒有什么必要了。
cpu要處理的單個數據中0-64kb占50%,64-128kb的占25%,128-256kb占15%,256-512占8%,剩下的2%才是大于512kb的。
當512kb就能滿足絕大多說要求的時候,沒有必要為了提升很小的性能,來增加很多的成本,所以512k就夠了。
而Intel在處理器上設計的時候是采取亂處理模式的,意思是,intel的處理器在要處理一個數據的時候是隨機選擇一個數據來處理,當這個數據在L2中的時候,則直接從L2中讀取,不在L2中的時候,則需要訪問內存。要知道L2的速度比內存快很多,因此,intel很需要增大L2的容量,來提高cpu整體能力。
舉例說明:
intel的處理器像一個人在投飛標,紅心就是L2,其他地方是內存,飛標是隨便投的,投到每個地方的幾率相同。要想投中高速的紅心面積的幾率增加,那么最直接的好辦法就是增加紅心的面積,就是增大L2。因此intel的處理器顯得特別要大的L2。
amd二級緩存的選擇范圍
AMD和Intel:巨大差異皆因設計不同
提到二級緩存容量的差距,還得從兩大CPU巨頭對一級緩存的理解說起。對,沒看錯,就是平常曝光率遠遜于二級緩存的“一級緩存”!它才是造成上面提到巨大差異的“罪魁禍首”。
現今的CPU中,Intel對一級緩存的理解是“數據代碼指令追蹤緩存”,即是說一級緩存中存儲的其實只是二級緩存中數據和指令的地址,而不是這些數據和指令的復制。二級緩存的容量相當程度上影響了IntelCPU的性能。
相比之下,AMD對一級緩存的定位是“實數據讀寫緩存”,即二級緩存中的一部分數據都要在一定的規則下搬到一級緩存中。
不僅在一級緩存的工作方式上有區別,而且AMD的CPU在一級緩存的大小上還占有優勢,以AMDAthlon64X26000+AM2(盒)為例,兩個內核各配備64KB數據高速緩存、64KB指令高速緩存。而價格稍高的IntelCore2DuoE6320(三年盒),兩個內核各配備32KB數據高速緩存、32KB指令高速緩存。
當然,上面只是Intel的AMD的CPU二級緩存巨大差異的主要原因。事實上CPU對二級緩存容量的“敏感”與否還受到諸如內存控制器,流水線長度、頻率、總線架構和指令集等等多方面的影響。在多核CPU中還關乎各個物理內核之間的數據交換問題。
在多核心CPU中,對二級緩存的利用效率有高有低。簡單的說,Intel新一代Core架構二級緩存的利用最為優秀,AMD的AthlonX2系列次之,較老的PentiumD(PentiumEE)系列最差。
幾年時間里,二級緩存從小小的64KB一舉增長到了8MB,整整128倍!越來越大的二級緩存是不是真的換來了CPU性能同樣“突飛猛進”發展?還是只不過是Intel和AMD聯手玩的數字游戲?
其實,二級緩存容量對性能的影響是漸漸減弱的,當二級緩存從沒有增長到128KB時,帶來的性能提升可能是直線上升的。但是當它從2MB增長到4MB的時候,可能使用者甚至感覺不到性能的提升。這是因為在當前CPU所處理數據的過程中,幾乎無時不刻需要用到128KB以下的緩存,但是需要用到1MB以上緩存的時候很少(2%左右)。因此雖然二級緩存越漲越大,實際上對CPU性能的影響卻是越來越小的。像文章開頭的兩款CPU,二級緩存巨大的差異并不會最終表現在CPU速度上。因此,完全不必要盲目追求二級緩存的高容量,夠用就好。
二級緩存的利用率
概述
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由于不能準確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那么還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存后未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內容應該按一定的算法替換。一種較常用的算法是“最近最少使用算法”(LRU算法),它是將固定時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的算法,其計數器清零過程可以把一些頻繁調用后再不需要的數據淘汰出緩存,提高緩存的利用率。
處理器緩存
所謂處理器緩存,通常指的是二級高速緩存,或外部高速緩存。即高速緩沖存儲器,是位于CPU和主存儲器DRAM(Dynamic RAM)之間的規模較小的但速度很高的存儲器,通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴于速度較慢的DRAM(動態隨機存儲器)。L2高速緩存一直都屬于速度極快而價格也相當昂貴的一類內存,稱為SRAM(靜態RAM),SRAM(Static RAM)是靜態存儲器的英文縮寫。由于SRAM采用了與制作CPU相同的半導體工藝,因此與動態存儲器DRAM比較,SRAM的存取速度快,但體積較大,價格很高。
品牌差異
實際上,Intel和AMD處理器在一級緩存的邏輯結構設計上有所不同,所以二級緩存對CPU性能的影響也不盡相同。因為CPU讀取的數據(包括指令)中有80%的數據來自一級緩存,所以一級緩存的邏輯結構決定了CPU二級緩存容量對CPU性能的影響。Intel的Pentium 4及Celeron系列處理器的一級數據緩存被稱為“數據代碼指令追蹤(讀寫)緩存”;AMD的Athlon 64/Athlon XP/Sempron/Duron系列處理器 的一級數據緩存叫作“實數據讀寫緩存”。
結語
關于amd二級緩存的相關介紹就到這了,如有不足之處歡迎指正。
評論
查看更多