記憶體和快取的區別

2021-07-24 10:22:42 字數 1336 閱讀 1847

許多人認為,「快取」是記憶體的一部分 

許多技術文章都是這樣教授的 

但是還是有很多人不知道快取在什麼地方,快取是做什麼用的 

其實,快取是cpu的一部分,它存在於cpu中 

cpu訪問資料的速度非常的快,一秒鐘能夠訪問、處理十億條指令和資料(術語:cpu主頻1g),而記憶體就慢很多,快的記憶體能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大 

快取是為了解決cpu速度和記憶體速度的速度差異問題 

記憶體中被cpu訪問最頻繁的資料和指令被複製入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多 

這裡要特別指出的是: 

1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。 

2.因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的 

3.關於一級快取和二級快取 

為了分清這兩個概念,我們先了解一下ram 

ram和rom相對的,ram是掉電以後,其中才資訊就消失那一種,rom在掉電以後資訊也不會消失那一種 

ram又分兩種, 

一種是靜態ram,sram;一種是動態ram,dram。前者的儲存速度要比後者快得多,我們現在使用的記憶體一般都是動態ram。 

有的菜鳥就說了,為了增加系統的速度,把快取擴大不就行了嗎,擴大的越大,快取的資料越多,系統不就越快了嗎 

快取通常都是靜態ram,速度是非常的快, 

但是靜態ram整合度低(儲存相同的資料,靜態ram的體積是動態ram的6倍), 

**高(同容量的靜態ram是動態ram的四倍), 

由此可見,擴大靜態ram作為快取是乙個非常愚蠢的行為, 

但是為了提高系統的效能和速度,我們必須要擴大快取, 

這樣就有了乙個折中的方法,不擴大原來的靜態ram快取,而是增加一些高速動態ram做為快取, 

這些高速動態ram速度要比常規動態ram快,但比原來的靜態ram快取慢, 

我們把原來的靜態ram快取叫一級快取,而把後來增加的動態ram叫二級快取。 

一級快取和二級快取中的內容都是記憶體中訪問頻率高的資料的複製品(對映),它們的存在都是為了減少高速cpu對慢速記憶體的訪問。 

通常cpu找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找

記憶體和快取的區別

今天看書的時候又看到了記憶體和快取,之所以說又,是因為之前遇到過查過資料,但是現在又忘了 圖侵刪 所以又複習一遍,記錄一下,有所紕漏的地方,歡迎指正。同志們,上圖並不是記憶體和快取中的任何乙個,那有的小夥伴會問了,啥也不是,你怎麼強行發圖,別急,慢慢道來。上圖是 處理器即cpu的,一般來說快取都是整...

快取擊穿和快取穿透的區別 快取穿透和快取擊穿處理

為了應對越來越大的流量,快取便成為系統服務必不可少的一部分,但使用快取就會出現快取擊穿和快取穿透的威脅。背景介紹 網際網路應用逐步深入到生活的各個角落,為了滿足越來越多使用者使用網際網路應用的需求,幾乎所有網際網路公司都採用快取的方案來解決瞬時流量超高,或者長期流量過高的問題。但使用快取存在風險 快...

vuex和快取的區別

1.區別 vuex儲存在記憶體,localstorage 本地儲存 則以檔案的方式儲存在本地,永久儲存 sessionstorage 會話儲存 臨時儲存。localstorage和sessionstorage只能儲存字串型別,對於複雜的物件可以使用ecmascript提供的json物件的string...