內存、緩存、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找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,如果還找不到就只有到內存中找了

  二、內存和cpu

CPU是負責運算和處理的,內存是交換數據的。
當程序或者操作者對CPU發出指令,這些指令和數據暫存在內存里,在CPU空閑時傳送給CPU,CPU處理后把結果輸出到輸出設備上,輸出設備就是顯示器,打印機等。在沒有顯示完之前,這些數據也保存在內存里,如果內存不足,那么系統自動從硬盤上划分一部分空間作為虛擬內存來用。但寫入和讀取的速度 跟物理內存差的很遠很遠,所以,在內存不足的時候,會感到機器反應很慢,硬盤一直在響。
512M的物理內存如果增加到2GB,你會感到電腦變得飛快。但內存512,即使你把CPU從單核換成雙核,加速感覺也不明顯。
如果你本來就有2G內存,再增加2G,使用起來幾乎沒有多少性能的改變。
在理論上,物理內存太大反而會減慢速度,因為它增加了尋址的時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM