許多人認為,“快取”是記憶體的一部分
許多技術文章都是這樣教授的
但是還是有很多人不知道快取在什麼地方,快取是做什麼用的
其實,快取是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的一部分,它存在於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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了