複製鏈接
請複製以下鏈接發送給好友

系統緩存

鎖定
系統緩存是一種緩存形式。緩存是CPU的一部分,它存在於CPU中 CPU存取數據的速度非常的快,一秒鐘能夠存取、處理十億條指令和數據(術語:CPU主頻1G),而內存就慢很多,快的內存能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大,緩存是為了解決CPU速度和內存速度的速度差異問題。
中文名
系統緩存
作    用
解決CPU速度和內存速度的速度差
所屬領域
計算機
實    質
臨時文件交換區

系統緩存產生原因

如果將CPU比作一個城裏的傢俱廠,而將存儲系統比作郊區的木料廠,那麼實際情況就是木料廠離傢俱廠越來越遠,即使使用更大的卡車來運送木料,傢俱廠也得停工來等待木料送來。
在這樣的情況下,一種解決方法是在市區建立一個小型倉庫,在裏面放置一些傢俱廠最常用到的木料。這個倉庫實際上就是傢俱廠的“Cache”,傢俱廠就可以從倉庫不停的及時運送需要的木料。當然,倉庫越大,存放的木料越多,效果就越好,因為這樣即使是些不常用的東西,也可以在倉庫裏找到。如果我們需要的木料,倉庫裏沒有,就要從城外的木料廠裏繼續找,而傢俱廠就得等着了。
我想大家已經明白了我的意思,倉庫就相對於L1緩存,可以由CPU及時快速的讀寫,所以存儲的是CPU最常用代碼和數據(後面我們會介紹一下如何挑選“最常用”)。L1緩存的速度比系統內存快的多是因為使用的是SRAM,這種內存單晶元使用四到六個晶體管。這也使得SRAM的造價相當的高,所以不能拿來用在整個存儲系統上。
在大多數CPU上,L1緩存和核心一起在一塊芯片上。如果在我們傢俱廠的例子中,就好比工廠和倉庫在同一條街上。這樣的設計使CPU可以從最近、最快的地方得到數據,但是也使得“城外的木料廠”到“倉庫”和到“傢俱廠”的距離差不多遠。這樣如果CPU需要的數據,不在L1緩存中,也就是“Cache Miss”,從存儲設備取數據就要很長時間了。處理器速度越快,兩者之間的差距就越大。如果使用Pentium4那樣的高頻率處理器,從內存中取得數據,就相當於“木料廠”位於另一個國家

系統緩存物理內存

內存條內存中被CPU訪問最頻繁的數據和指令被複制入CPU中的緩存,這樣CPU就可以不經常到像“蝸牛”一樣慢的內存中去取數據了,CPU只要到緩存中去取就行了,而緩存的速度要比內存快很多。

系統緩存注意事項

這裏要特別指出的是:
1.因為緩存只是內存中少部分數據的複製品,所以CPU到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存複製到緩存中去),這時CPU還是會到內存中去找數據,這樣系統的速度就慢下來了,不過CPU會把這些數據複製到緩存中去,以便下一次不要再到內存中去取。
被訪問得最頻繁的數據不是一成不變的
2.因為隨着時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是説,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,後來又不頻繁了,所以説緩存中的數據要經常按照一定的算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的
關於一級緩存和二級緩存
為了分清這兩個概念,我們先了解一下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找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,如果還找不到就只有到內存中找了。