1. 程式人生 > >什麼是快取(cache)

什麼是快取(cache)

作業系統的任務主要是合理地調配系統的各種資源,為各種程式的執行提供環境,它可以看作是硬體和應用軟體之間的一個媒介。其中對記憶體的管理是系統的最主要的職責,怎麼樣使有限的記憶體用在刀刃上,怎麼要保證系統本身所需的記憶體(以防止宕機,在win2000和winxp裡這一點已經做的非常好了
快取是CPU的一部分,它存在於CPU中
CPU存取資料的速度非常的快,一秒鐘能夠存取、處理十億條指令和資料(術語:CPU主頻1G),而記憶體就慢很多,快的記憶體能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大
快取是為了解決CPU速度和記憶體速度的速度差異問題
記憶體中被CPU訪問最頻繁的資料和指令被複制入CPU中的快取,這樣CPU就可以不經常到象“蝸牛”一樣慢的記憶體中去取資料了,CPU只要到快取中去取就行了,而快取的速度要比記憶體快很多
一 什麼是快取區容量?
在combo中快取區容量指的是什麼?是不是數字越大,價格便越高,並且效能越高,刻壞的機率越小
這裡要特別指出的是:
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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了
2.賽揚處理器與奔騰處理器的區別再哪裡?
賽揚處理器與奔騰處理器在運算核心上完全相同,不同的地方是二級快取的大小不同。現有的桌上型電腦處理器P4的二級快取大小是512KB,而P4賽揚的二級快取大小是128KB。在筆記本上用的奔騰-M處理器的二級快取大小是1MB,新出的賽揚M處理器的二級快取大小是512KB,跟P4的一樣。奔騰-M和賽揚M處理器除了二級快取大小不同外,其餘地方一樣。
什麼是二級快取?
它是幹什麼用的? 二級快取又叫L2 CACHE,它是處理器內部的一些緩衝儲存器,其作用跟記憶體一樣。它是怎麼出現的呢? 要上溯到上個世紀80年代,由於處理器的執行速度越來越快,慢慢地,處理器需要從記憶體中讀取資料的速度需求就越來越高了。然而記憶體的速度提升速度卻很緩慢,而能高速讀寫資料的記憶體價格又非常高昂,不能大量採用。從效能價格比的角度出發,英特爾等處理器設計生產公司想到一個辦法,就是用少量的高速記憶體和大量的低速記憶體結合使用,共同為處理器提供資料。這樣就兼顧了效能和使用成本的最優。而那些高速的記憶體因為是處於CPU和記憶體之間的位置,又是臨時存放資料的地方,所以就叫做緩衝儲存器了,簡稱“快取”。它的作用就像倉庫中臨時堆放貨物的地方一樣,貨物從運輸車輛上放下時臨時堆放在快取區中,然後再搬到內部儲存區中長時間存放。貨物在這段區域中存放的時間很短,就是一個臨時貨場。最初快取只有一級,後來處理器速度又提升了,一級快取不夠用了,於是就添加了二級快取。二級快取是比一級快取速度更慢,容量更大的記憶體,主要就是做一級快取和記憶體之間資料臨時交換的地方用。現在,為了適應速度更快的處理器P4EE,已經出現了三級快取了,它的容量更大,速度相對二級快取也要慢一些,但是比記憶體可快多了。 快取的出現使得CPU處理器的執行效率得到了大幅度的提升,這個區域中存放的都是CPU頻繁要使用的資料,所以快取越大處理器效率就越高,同時由於快取的物理結構比記憶體複雜很多,所以其成本也很高。
什麼叫虛擬記憶體,它與快取有什麼異同呢 虛擬記憶體是WINDOWS作業系統用來管理記憶體的一種方法
虛擬記憶體說穿了就是把記憶體中的資訊分出去一部分存在硬碟上
這樣從表面上看就擴大了記憶體容量(難怪記憶體中存了這麼多東西,原來有一部分被轉到了硬碟上)
我們知道記憶體中存有很多資料和指令,但是這些資料和指令被訪問的頻率是不同的,有些要被經常訪問,有些卻被CPU冷落WINDOWS 是個落井下石的壞東西,它大聲的說:既然你們被CPU冷落了,乾脆把你們打入冷宮吧。於是這些被訪問頻率低或者不被訪問的資料從記憶體中被趕到了硬碟上。但WINDOWS並非鐵石心腸,它還說:如果CPU需要訪問你們時,我就把你們送入記憶體,如果你們更加熱門的時候,就可能被CPU帶入快取,如果你們被重新冷落時,我就會無情的把你們再打入冷宮。
而那個冷宮就是硬碟上的虛擬記憶體。如果你剛才還不知道什麼是虛擬記憶體是什麼東西時,那麼現在呢?
我還看到有些網友問:虛擬記憶體和快取有什麼區別呢
它們的原理都是區域性時間內被訪問的記憶體地址具有區域性性。
現在我們來看看它們的區別。
1.快取是一種硬體,是CPU的一部分;而虛擬記憶體並不是一種硬體,而是存在於硬碟上的一個檔案,是根據WINDOWS的要求生成的(二者中的資訊都是隨時變化的)
2.快取的目的是加快系統的速度,而虛擬記憶體技術是為了使更多的程式能夠在有限的記憶體中執行。本文出自 51CTO.COM技術部落格