A. 二級緩存是干什麼用的
先我們來簡單了解一下一級緩存。目前所有主流處理器大都具有一級緩存和二級緩存,少數高端處理器還集成了三級緩存。其中,一級緩存可分為一級指令緩存和一級數據緩存。一級指令緩存用於暫時存儲並向CPU遞送各類運算指令;一級數據緩存用於暫時存儲並向CPU遞送運算所需數據,這就是一級緩存的作用
那麼,二級緩存的作用又是什麼呢?簡單地說,二級緩存就是一級緩存的緩沖器:一級緩存製造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的數據。同樣道理,三級緩存和內存可以看作是二級緩存的緩沖器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級緩存、三級緩存還是內存都不能存儲處理器操作的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而餘下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。
根據工作原理的不同,目前主流處理器所採用的一級數據緩存又可以分為實數據讀寫緩存和數據代碼指令追蹤緩存2種,它們分別被AMD和Intel所採用。不同的一級數據緩存設計對於二級緩存容量的需求也各不相同,下面讓我們簡單了解一下這兩種一級數據緩存設計的不同之處。
一、AMD一級數據緩存設計
AMD採用的一級緩存設計屬於傳統的「實數據讀寫緩存」設計。基於該架構的一級數據緩存主要用於存儲CPU最先讀取的數據;而更多的讀取數據則分別存儲在二級緩存和系統內存當中。做個簡單的假設,假如處理器需要讀取「AMD ATHLON 64 3000+ IS GOOD」這一串數據(不記空格),那麼首先要被讀取的「AMDATHL」將被存儲在一級數據緩存中,而餘下的「ON643000+ISGOOD」則被分別存儲在二級緩存和系統內存當中(如下圖所示)。
需要注意的是,以上假設只是對AMD處理器一級數據緩存的一個抽象描述,一級數據緩存和二級緩存所能存儲的數據長度完全由緩存容量的大小決定,而絕非以上假設中的幾個位元組。「實數據讀寫緩存」的優點是數據讀取直接快速,但這也需要一級數據緩存具有一定的容量,增加了處理器的製造難度(一級數據緩存的單位製造成本較二級緩存高)。
二、Intel一級數據緩存設計
自P4時代開始,Intel開始採用全新的「數據代碼指令追蹤緩存」設計。基於這種架構的一級數據緩存不再存儲實際的數據,而是存儲這些數據在二級緩存中的指令代碼(即數據在二級緩存中存儲的起始地址)。假設處理器需要讀取「INTEL P4 IS GOOD」這一串數據(不記空格),那麼所有數據將被存儲在二級緩存中,而一級數據代碼指令追蹤緩存需要存儲的僅僅是上述數據的起始地址(如下圖所示)。
由於一級數據緩存不再存儲實際數據,因此「數據代碼指令追蹤緩存」設計能夠極大地降CPU對一級數據緩存容量的要求,降低處理器的生產難度。但這種設計的弊端在於數據讀取效率較「實數據讀寫緩存設計」低,而且對二級緩存容量的依賴性非常大。
在了解了一級緩存、二級緩存的大致作用及其分類以後,下面我們來回答以下硬體一菜鳥網友提出的問題。
從理論上講,二級緩存越大處理器的性能越好,但這並不是說二級緩存容量加倍就能夠處理器帶來成倍的性能增長。目前CPU處理的絕大部分數據的大小都在0-256KB之間,小部分數據的大小在256KB-512KB之間,只有極少數數據的大小超過512KB。所以只要處理器可用的一級、二級緩存容量達到256KB以上,那就能夠應付正常的應用;512KB容量的二級緩存已經足夠滿足絕大多數應用的需求。
這其中,對於採用「實數據讀寫緩存」設計的AMD Athlon 64、Sempron處理器而言,由於它們已經具備了64KB一級指令緩存和64KB一級數據緩存,只要處理器的二級緩存容量大於等於128KB就能夠存儲足夠的數據和指令,因此它們對二級緩存的依賴性並不大。這就是為什麼主頻同為1.8GHz的Socket 754 Sempron 3000+(128KB二級緩存)、Sempron 3100+(256KB二級緩存)以及Athlon 64 2800+(512KB二級緩存)在大多數評測中性能非常接近的主要原因。所以對於普通用戶而言754 Sempron 2600+是值得考慮的。
反觀Intel目前主推的P4、賽揚系列處理器,它們都採用了「數據代碼指令追蹤緩存」架構,其中Prescott內核的一級緩存中只包含了12KB一級指令緩存和16KB一級數據緩存,而Northwood內核更是只有12KB一級指令緩存和8KB一級數據緩存。所以P4、賽揚系列處理器對二級緩存的依賴性是非常大的,賽揚D 320(256KB二級緩存)與賽揚 2.4GHz(128KB二級緩存)性能上的巨大差距就很好地證明了這一點;而賽揚D和P4 E處理器之間的性能差距同樣十分明顯。
最後,如果您是狂熱的游戲發燒友或者從事多媒體製作的專業用戶,那麼具有1MB二級緩存的P4處理器和具有512KB/1MB二級緩存的Athlon 64處理器才是您理想的選擇。因為在高負荷的運算下,CPU的一級緩存和二級緩存近乎「爆滿」,在這個時候大容量的二級緩存能夠為處理器帶來5%-10%左右的性能提升,這對於那些要求苛刻的用戶來說是完全有必要的。
來自:http://..com/question/2126810.html?si=1
B. Hibernate二級緩存的作用是什麼
使用緩存,是需要對應用系統進行性能優化而常採用的一種重要手段。合理地運用緩存,可以極大的提高應用系統的運行效率。
Hibernate中應用緩存:因為應用程序訪問資料庫,讀寫數據的代價非常高,而利用持久層的緩存可以減少應用程序與資料庫之間的交互,即把訪問過的數據保存到緩存中,應用程序再次訪問已經訪問過的數據,這些數據就可以從緩存中獲取,而不必再從資料庫中獲取。同時如果資料庫中的數據被修改或者刪除,那麼是、該數據所對應的緩存數據,也會被同步修改或刪除,進而保持緩存數據的一致性。
Hibernate的二級緩存由SessionFactory對象管理,是應用級別的緩存。它可以緩存整個應用的持久化對象,所以又稱為「SessionFactory緩存」。
hibernate二級緩存中的緩存對象可以被整個應用的Session對象共享,即使關閉當前Session對象,新建的Session對象仍可使用。使用Hibernate的二級緩存之後查詢數據,Session對象會首先在以及緩存中查找有無緩存數據被命中。如果沒有,則查找二級緩存。如果有,則直接返回所命中的數據;否則查詢資料庫。
C. 二級緩存的用處是什麼用什麼數據能體現出來
CPU緩存(Cache Memoney)位於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處理器時,還新增了一種一級追蹤緩存,容量為12KB.
隨著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到18KB之間,二級緩存的容量則分為128KB、256KB、512KB、1MB等。一級緩存容量各產品之間相差不大,而二級緩存容量則是提高CPU性能的關鍵。二級緩存容量的提升是由CPU製造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上集成更大的緩存,對製造工藝的要求也就越高。
D. 二級緩存的作用是什麼
緩存在cpu與內存之間,容量比cpu中寄存器大,速度比內存快,這樣把內存中活躍的部分復制到緩存里,cpu就可以從緩存中高速的調用(從緩存中調入比從內存中調入快多了)
這就是緩存的工作原理,至於二級緩存,同理吧,多一級緩存應該是增加了容量
自己寫的,不想做不厚道的人,但你覺得不夠周到的話請看以下鏈接
http://..com/question/2145245.html
E. cpu的二級緩存的作用
A. L2Cache(CPU二級緩存的簡寫)主要用來存放電腦運行時操作系統的指令、程序數據以及地址指針等數據,二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
二級緩存的作用到底多大:CPU處理的數據中大多數都是0KB~128KB 大小的數據,128KB~256KB的數據約有10%,256KB~512KB的數據有5%,512KB~1MB的數據僅有3%左右。所以對於這種CPU 來說,用戶就很難體會到CPU性能有提高了。正因為如此,大家能感受到 Pentium 4 C(512KB二級緩存)與Celeron(128KB二級緩存)的性能差異,卻很難感受到Pentium 4 C(512KB二級緩存)與Pentium 4 E(1MB二級緩存)的性能差異了。
例如:同為2.8GHz主頻的Celeron D(256KB二級緩存)和Pentium 4 E(1MB二級緩存)運算super π 104萬位的耗時分別為56秒和48秒,除去外頻(前者為133MHz,後者為200MHz)的差異和超線程技術的影響,兩者的性能差距只有10%左右。
由此看出:在CPU性能方面,並非只從二級緩存容量上作對比就可以得到准確的答案,實際上還要考慮到緩存的總體設計結構、一級數據緩存容量等因素。雖然從總體上來講,二級緩存容量越大越好,但是並不是二級緩存容量提高一倍就能使CPU性能提升一倍。
選購方面:一般家庭用戶,電腦主要是用來上網、欣賞音樂和電影以及文字處理,二級緩存為256KB的Celeron D或Sempron已經足夠了。只有對3D游戲、辦公軟體和多媒體編輯性能要求較高的用戶才需要更大二級緩存的CPU.
B . CPU尋找數據的「快捷方式」.簡單的說,緩存是數據由內存通往CPU的橋梁。它的速度比內存快得多,但是容量也比內存小的多。同時緩存依據讀取速度和容量進一步分為一級和二級。在CPU需要數據的時候,遵循一級緩存→二級緩存→內存的順序,從而盡量提高讀取速度。這樣「緩存+內存」的系統就同時兼具了速度和容量的優點。
我們可以打個比方,假設CPU是一名「老師」,她現在的任務就是要盡快在一幢「教學樓」(內存)中找到眾多「學生」(數據)中的一個。當她可能要找的「學生」(數據)都提前被安排進一間「教室」(一級緩存)中的時候,CPU「老師」找起來自然就快多了。如果很不幸「教室」(一級緩存)中找不到那名「學生」(數據),她會再去「小禮堂」(二級緩存)中找找看,都找不到的話,最後再去碩大的「教學樓」(內存)中慢慢搜索。
AMD和Intel:巨大差異皆因設計不同
提到二級緩存容量的差距,還得從兩大CPU巨頭對一級緩存的理解說起。對,沒看錯,就是平常曝光率遠遜於二級緩存的「一級緩存」!它才是造成上面提到巨大差異的「罪魁禍首」。
現今的CPU中,Intel對一級緩存的理解是「數據代碼指令追蹤緩存」,即是說一級緩存中存儲的其實只是二級緩存中數據和指令的地址,而不是這些數據和指令的復制。我們還用上面的比喻形象說明一下,Intel老師在「教室」(一級緩存)中並不會看到任何一名學生,而只有一張寫著「學生名字」和「所在座位號」的座次表(數據地址)。Intel老師會在拿了座次表之後,去那間「小禮堂」(二級緩存)中按照「座位號」尋找那名「學生」(數據)。在這樣的架構下,Intel老師自然需要更大的「禮堂」來按順序坐下更多地學生。也就是說,二級緩存的容量相當程度上影響了Intel CPU的性能。
相比之下,AMD對一級緩存的定位是「實數據讀寫緩存」,即二級緩存中的一部分數據都要在一定的規則下搬到一級緩存中。對於前面的比方,AMD老師在「教室」中總能看到剛剛從「禮堂」(二級緩存)那邊趕來的「學生」(數據)。這樣子的結構下,AMD老師也就不需要太大的「禮堂」來坐下更多地「學生」了。二級緩存的容量自然對AMD CPU的整體性能影響小些。相對的,AMD則總是試圖把一級緩存這間「教室」擴建的更大些。
不僅在一級緩存的工作方式上有區別,而且AMD的CPU在一級緩存的大小上還佔有優勢,以AMD Athlon64 X2 6000+ AM2(盒)為例,兩個內核各配備64KB數據高速緩存、64KB指令高速緩存。而價格稍高的Intel Core 2 Duo E6320 (三年盒),兩個內核各配備32KB數據高速緩存、32KB指令高速緩存。
當然,上面只是Intel的AMD的CPU二級緩存巨大差異的主要原因。事實上CPU對二級緩存容量的「敏感」與否還受到諸如內存控制器,流水線長度、頻率、匯流排架構和指令集等等多方面的影響。在多核CPU中還關乎各個物理內核之間的數據交換問題(簡單的說就是兩位「老師」能不能查找同一間「禮堂」)。
在多核心CPU中,對二級緩存的利用效率有高有低。簡單的說,Intel新一代Core架構二級緩存的利用最為優秀,AMD的Athlon X2系列次之,較老的Pentium D(Pentium EE)系列最差。
越大越好?夠用就好!
幾年時間里,二級緩存從小小的64KB一舉增長到了8MB,整整128倍!越來越大的二級緩存是不是真的換來了CPU性能同樣「突飛猛進」發展?還是只不過是Intel和AMD聯手玩的數字游戲?
其實,二級緩存容量對性能的影響是漸漸減弱的,當二級緩存從沒有增長到128KB時,帶來的性能提升可能是直線上升的。但是當它從2MB增長到4MB的時候,可能使用者甚至感覺不到性能的提升。這是因為在當前CPU所處理數據的過程中,幾乎無時不刻需要用到128KB以下的緩存,但是需要用到1MB以上緩存的時候很少(2%左右)。因此雖然二級緩存越漲越大,實際上對CPU性能的影響卻是越來越小的。像文章開頭的兩款CPU,二級緩存巨大的差異並不會最終表現在CPU速度上。因此,完全不必要盲目追求二級緩存的高容量,夠用就好。
F. 二級緩存是干什麼的
CPU緩存(Cache Memory)位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內存儲器(緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。 緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。 正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。 歡迎快來加入電腦醫院團隊喲!團隊地址為: http://wenwen.soso.com/t/TeamHome.e?sp=371410
G. 電腦中的二級緩存有什麼用它跟電腦內存的功能各是什麼對電腦的性能有什麼影響
更大的二級緩存以及前端匯流排帶寬使得電腦具備了更好的游戲性能。
在游戲中,L2使得一些圖形晶元處理國家流暢,尤其是3D浮點運算能力的增加,最好的例子就是DOOM3的彈道預測!
更多:
說到CPU,不得不說的就是CPU緩存,目前CPU的緩存已經成了衡量CPU性能的一個必要指標,那麼CPU緩存到底對CPU性能的影響有多大呢?
我們知道,CPU執行指令時,會將執行結果放在一個叫「寄存器」的元件中,由於「寄存器」集成在CPU內部,與ALU等構成CPU的重要元件,因此寄存器中的指令很快被CPU所訪問,但畢竟寄存器的容量太小,CPU所需的大量指令和數據還在內存(RAM)當中,所以CPU為了完成指令操作,需要頻繁地向內存發送接收指令、數據。
由於內存的處理速度遠遠低於CPU,所以傳統的系統瓶頸在這里就產生了,CPU在處理指令時往往花費很多時間在等待內存做准備工作。
為了解決這個問題,人們在CPU內集成了一個比內存快許多的「Cache」,這就是最早的「高速緩存」。
L1高速緩存是與CPU完全同步運行的存儲器,也就是我們常說的一級緩存,如果CPU需要的數據和指令已經在高速緩存中了,那麼CPU不必等待,直接就可以從一級緩存(L1)中取得數據,如果數據不在L1中,CPU再從二級緩存(L2)中提取數據,大大提高了系統的工作效率。
趣談CPU緩存工作原理
沒有CPU緩存前
我們可以形象地把CPU的運算單元想像成是一間坐落在城市中心的工廠,把內存看成是工廠設置在郊區的一間面積很大的倉庫A。
工廠生產所需要的原材料每次都要花時間去遠處的倉庫A調運,而且到達倉庫後,還要等待倉庫准備好材料,中間浪費了不少時間。這就是CPU頻率未變的情況下,CPU與內存的數據交換不同步的現象。
而突然有一天,由於資金短缺,倉庫A從近郊區「搬到」了遠郊區,這樣原料和成品在工廠與倉庫A之間的運輸所花費的時間就更長了,工廠生產所需的原料供應不足,經常處於空運轉的狀態下。這就是說當CPU頻率增加後,CPU與內存交換數據等待需時間會變得更長。
增加L1Cache
要解決CPU與內存交換數據不同步這個系統瓶頸問題,其中一個辦法是在靠近工廠的市區設置一個小型的倉庫B(L1Cache)。
平時把生產最迫切需要、用得最多的原材料(指令和數據)從倉庫A(內存)調配到倉庫B(L1Cache),這樣工廠生產所需要的原材料就可以很快地調配過來,減少空運轉的時間。當所需的原材料在倉庫B中找不到(緩存未命中)時,仍然要到倉庫A(內存)里調配,雖然無可避免地使工廠又進入空運轉,或部分空運轉(CPU等待若干個時鍾周期),但這樣畢竟使等待時間大大降低了。
小知識:緩存有一個「預讀」功能,也就是可以通過一定的演算法,猜測接下來所要的數據,並預先取入緩存。
再添L2Cache
隨著CPU的頻率提高,與內存之間交換數據不同步的現象更明顯了,可以理解為倉庫A(內存)搬離郊區,遷到更遠的地方了。解決這一問題的一個更好的辦法就是在城市的邊緣再設立一個比倉庫B大的倉庫C,也就是我們說的二級緩存。
它的作用是把郊區之外的倉庫A(內存)中最迫切用的材料(指令)運到倉庫C,而工廠如果在倉庫B中找不到所需的材料,就可以到倉庫C中找,而不必老遠跑到倉庫A那裡找,節省了不少時間。
通常情況下,L2包括L1所有的數據,另外還有一些附加的數據。換言之,L1與L2、L2與內存之間是子母關系,所以CPU緩存的出現更有效地解決了CPU空等待所造成的資源浪費問題。
CPU緩存越大越好?
當然,CPU緩存並不是越大越好,因為緩存採用的是速度快、價格昂貴的靜態RAM(SRAM),由於每個SRAM內存單元都是由4~6個晶體管構成,增加緩存會帶來CPU集成晶體管個數大增,發熱量也隨之增大,給設計製造帶來很大的難度。所以就算緩存容量做得很大,但如果設計不合理會造成緩存的延時,CPU的性能也未必得到提高
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面積上集成更大的緩存,對製造工藝的要求也就越高
H. 二級緩存是干嗎用的
先我們來簡單了解一下一級緩存。目前所有主流處理器大都具有一級緩存和二級緩存,少數高端處理器還集成了三級緩存。其中,一級緩存可分為一級指令緩存和一級數據緩存。一級指令緩存用於暫時存儲並向CPU遞送各類運算指令;一級數據緩存用於暫時存儲並向CPU遞送運算所需數據,這就是一級緩存的作用
那麼,二級緩存的作用又是什麼呢?簡單地說,二級緩存就是一級緩存的緩沖器:一級緩存製造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的數據。同樣道理,三級緩存和內存可以看作是二級緩存的緩沖器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級緩存、三級緩存還是內存都不能存儲處理器操作的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而餘下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。
I. CPU2級緩存是干什麼的
CPU緩存:
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面積上集成更大的緩存,對製造工藝的要求也就越高