-
系統緩存
鎖定
- 中文名
- 系統緩存
- 作 用
- 解決CPU速度和內存速度的速度差
- 所屬領域
- 計算機
- 實 質
- 臨時文件交換區
系統緩存產生原因
如果將CPU比作一個城裏的傢俱廠,而將存儲系統比作郊區的木料廠,那麼實際情況就是木料廠離傢俱廠越來越遠,即使使用更大的卡車來運送木料,傢俱廠也得停工來等待木料送來。
在這樣的情況下,一種解決方法是在市區建立一個小型倉庫,在裏面放置一些傢俱廠最常用到的木料。這個倉庫實際上就是傢俱廠的“Cache”,傢俱廠就可以從倉庫不停的及時運送需要的木料。當然,倉庫越大,存放的木料越多,效果就越好,因為這樣即使是些不常用的東西,也可以在倉庫裏找到。如果我們需要的木料,倉庫裏沒有,就要從城外的木料廠裏繼續找,而傢俱廠就得等着了。
我想大家已經明白了我的意思,倉庫就相對於L1緩存,可以由CPU及時快速的讀寫,所以存儲的是CPU最常用代碼和數據(後面我們會介紹一下如何挑選“最常用”)。L1緩存的速度比系統內存快的多是因為使用的是SRAM,這種內存單晶元使用四到六個晶體管。這也使得SRAM的造價相當的高,所以不能拿來用在整個存儲系統上。
在大多數CPU上,L1緩存和核心一起在一塊芯片上。如果在我們傢俱廠的例子中,就好比工廠和倉庫在同一條街上。這樣的設計使CPU可以從最近、最快的地方得到數據,但是也使得“城外的木料廠”到“倉庫”和到“傢俱廠”的距離差不多遠。這樣如果CPU需要的數據,不在L1緩存中,也就是“Cache Miss”,從存儲設備取數據就要很長時間了。處理器速度越快,兩者之間的差距就越大。如果使用Pentium4那樣的高頻率處理器,從內存中取得數據,就相當於“木料廠”位於另一個國家。
系統緩存物理內存
系統緩存注意事項
這裏要特別指出的是:
1.因為緩存只是內存中少部分數據的複製品,所以CPU到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存複製到緩存中去),這時CPU還是會到內存中去找數據,這樣系統的速度就慢下來了,不過CPU會把這些數據複製到緩存中去,以便下一次不要再到內存中去取。
被訪問得最頻繁的數據不是一成不變的
2.因為隨着時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是説,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,後來又不頻繁了,所以説緩存中的數據要經常按照一定的算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的
關於一級緩存和二級緩存
為了分清這兩個概念,我們先了解一下RAM。
RAM和ROM是相對的,RAM是掉電以後,其中信息就消失的那一種,ROM是掉電以後,信息也不會消失那一種。
RAM又分兩種,一種是靜態RAM,SRAM;一種是動態RAM,DRAM。
前者的存儲速度要比後者快得多,我們使用的內存一般都是動態RAM。
有的菜鳥就説了,為了增加系統的速度,把緩存擴大不就行了嗎,擴大的越大,緩存的數據越多,系統不就越快了嗎。