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