一級緩存和二級緩存的區別
A. 一級緩存和 二級緩存有什麼區別
一般來說,一級緩存可以分為一級數據緩存(Data Cache,D-Cache)和一級指令緩存(Instruction
Cache,I-Cache)。二者分別用來存放數據以及對執行這些數據的指令進行即時解碼,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。目前大多數CPU的一級數據緩存和一級指令緩存具有相同的容量,例如AMD的Athlon
XP就具有64KB的一級數據緩存和64KB的一級指令緩存,其一級緩存就以64KB+64KB來表示,其餘的CPU的一級緩存表示方法以此類推。
並不是緩存越大越好,譬如AMD和INTER就有不同的理論,AMD認為一級緩存越大越好,所以一級比較大,而INTER認為過大會有更長的指令執行時間,所以一級很小,二級緩存那兩個公司的理論又反過來了,AMD的小,INTER的大,一般主流的INTERCPU的2級緩存都在2M左右
我們通常用(L1,L2)來稱呼
緩存又叫高速緩沖存儲器其作用在於緩解主存速度慢、跟不上CPU讀寫速度要求的矛盾。它的實現原理,是把CPU最近最可能用到的少量信息(數據或指令)從主存復制到CACHE中,當CPU下次再用這些信息時,它就不必訪問慢速的主存,而直接從快速的CACHE中得到,從而提高了得到這些信息的速度,使CPU有更高的運行效率。
緩存的大小:
一般說來,更大一點的cache容量,對提高命中率是有好處的,由於cache
是用價格很高的靜態存儲器SRAM器件實現的,而cache容量達到一定大小這後,再增加其容量,對命中率的提高並不明顯,從合理的性能/價格比考慮,cache的容量設置應在一個合理的容量范圍之內。
緩存要分一級二級 三級,是為了建立一個層次存儲結構,以達到最高性價比。而且多級組織還可以提高cache的命中率,提高執行效能。
CPU緩存(Cache
Memory)是位於CPU與內存之間的臨時存儲器,它的容量比內存小的多但是交換速度卻比內存要快得多。緩存的出現主要是為了解決CPU運算速度與內存讀寫速度不匹配的矛盾,因為CPU運算速度要比內存讀寫速度快很多,這樣會使CPU花費很長時間等待數據到來或把數據寫入內存。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內存儲器(緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。
目前緩存基本上都是採用SRAM存儲器,SRAM是英文Static
RAM的縮寫,它是一種具有靜志存取功能的存儲器,不需要刷新電路即能保存它內部存儲的數據。不像DRAM內存那樣需要刷新電路,每隔一段時間,固定要對DRAM刷新充電一次,否則內部的數據即會消失,因此SRAM具有較高的性能,但是SRAM也有它的缺點,即它的集成度較低,相同容量的DRAM內存可以設計為較小的體積,但是SRAM卻需要很大的體積,這也是目前不能將緩存容量做得太大的重要原因。它的特點歸納如下:優點是節能、速度快、不必配合內存刷新電路、可提高整體的工作效率,缺點是集成度低、相同的容量體積較大、而且價格較高,只能少量用於關鍵性系統以提高效率。
照數據讀取順序和與CPU結合的緊密程度,CPU緩存可以分為一級緩存,二級緩存,部分高端CPU還具有三級緩存,每一級緩存中所儲存的全部數據都是下一級緩存的一部分,這三種緩存的技術難度和製造成本是相對遞減的,所以其容量也是相對遞增的。當CPU要讀取一個數據時,首先從一級緩存中查找,如果沒有找到再從二級緩存中查找,如果還是沒有就從三級緩存或內存中查找。一般來說,每級緩存的命中率大概都在80%左右,也就是說全部數據量的80%都可以在一級緩存中找到,只剩下20%的總數據量才需要從二級緩存、三級緩存或內存中讀取,由此可見一級緩存是整個CPU緩存架構中最為重要的部分。
求採納為滿意回答。
B. 一級緩存、二級緩存和三級緩存有什麼區別
主要區別,就是各級緩存的速度、容量不同。將內存中選中的數據,逐級提升讀寫速度,提供給CPU使用。
1、CPU內部的這些高速SRAM存儲器,為CPU提供運算需要的數據加速,而提高CPU的運算效率,減少CPU的等待時間;
2、例舉i5 2500K處理器的 L1、L2、L3 的工作速度差別,測試結果如下圖:
① 讀速L1 =523.94GB/S,L2 = 275.16GB/S,L3 = 218.10GB/S ;
② 寫速 L1 = 262.26GB/S,L2 = 159.18GB/S,L3 = 156GB/S ;
③ 復制 L1 = 524GB;L2 = 242.91GB/S,L3 = 165.18GB/S ;
④ 其階梯式的逐級速度提升,將命中數據讀寫加速,有效的提高了數據供應效率。
3、不同廠商或型號的CPU,其內部緩存容量也不相同。如i7 7700K處理器,L1分為指令緩存 4 x 32KB,數據緩存4 x 32KB;L2為 4x256KB;L3為 8MB。
4、當CPU在緩存找不到需要的數據時,還是要去內存中讀取數據,再調入緩存,此時系統速度就會慢下來。也可以這樣理解,內存相當於四級緩存L4 。
C. 一級緩存和二級緩存有什麼區別
一級緩存是同速緩存,和CPU運行速度相同,價格極高,容量小,二級緩存是半速緩存,以CPU一半的速度運行,價格較低,容量稍大.CPU優先從一級緩存讀取數據,一級緩存優先從二級緩存讀取數據,二級緩存從3.4級緩存或者內存讀取數據
D. Hibernate的一級緩存與二級緩存的區別
一級緩存就是Session級別的緩存,一個Session做了一個查詢操作,它會把這個操作的結果放在一級緩存中,如果短時間內這個session(一定要同一個session)又做了同一個操作,那麼hibernate直接從一級緩存中拿,而不會再去連資料庫,取數據。
二級緩存就是SessionFactory級別的緩存,顧名思義,就是查詢的時候會把查詢結果緩存到二級緩存中,如果同一個sessionFactory創建的某個session執行了相同的操作,hibernate就會從二級緩存中拿結果,而不會再去連接資料庫。