系統快取

系統快取

快取是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找數據或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了。

相關詞條

熱門詞條

聯絡我們