緩存(cache),原始意義是指訪問速度比一般隨機存取存儲器(RAM)快的一種高速存儲器,通常它不像系統(tǒng)主存那樣使用DRAM技術(shù),而使用昂貴但較快速的SRAM技術(shù)。緩存的設(shè)置是所有現(xiàn)代計算機系統(tǒng)發(fā)揮高性能的重要因素之一。
緩存是指可以進行高速數(shù)據(jù)交換的存儲器,它先于內(nèi)存與CPU交換數(shù)據(jù),因此速率很快。L1 Cache(一級緩存)是CPU第一層高速緩存。內(nèi)置的L1高速緩存的容量和結(jié)構(gòu)對CPU的性能影響較大,不過高速緩沖存儲器均由靜態(tài)RAM組成,結(jié)構(gòu)較復(fù)雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32—256KB。L2 Cache(二級緩存)是CPU的第二層高速緩存,分內(nèi)部和外部兩種芯片。內(nèi)部的芯片二級緩存運行速率與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,普通臺式機CPU的L2緩存一般為128KB到2MB或者更高,筆記本、服務(wù)器和工作站上用CPU的L2高速緩存最高可達1MB-3MB。由于高速緩存的速度越高價格也越貴,故有的計算機系統(tǒng)中設(shè)置了兩級或多級高速緩存。緊靠CPU的一級高速緩存的速度最高,而容量最小,二級高速緩存的容量稍大,速度也稍低。
緩存只是內(nèi)存中少部分數(shù)據(jù)的復(fù)制品,所以CPU到緩存中尋找數(shù)據(jù)時,也會出現(xiàn)找不到的情況(因為這些數(shù)據(jù)沒有從內(nèi)存復(fù)制到緩存中去),這時CPU還是會到內(nèi)存中去找數(shù)據(jù),這樣系統(tǒng)的速率就慢下來了,不過CPU會把這些數(shù)據(jù)復(fù)制到緩存中去,以便下一次不要再到內(nèi)存中去取。隨著時間的變化,被訪問得最頻繁的數(shù)據(jù)不是一成不變的,也就是說,剛才還不頻繁的數(shù)據(jù),此時已經(jīng)需要被頻繁的訪問,剛才還是最頻繁的數(shù)據(jù),又不頻繁了,所以說緩存中的數(shù)據(jù)要經(jīng)常按照一定的算法來更換,這樣才能保證緩存中的數(shù)據(jù)是被訪問最頻繁的。
緩存的工作原理是當CPU要讀取一個數(shù)據(jù)時,首先從CPU緩存中查找,找到就立即讀取并送給CPU處理;沒有找到,就從速率相對較慢的內(nèi)存中讀取并送給CPU處理,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存中進行,不必再調(diào)用內(nèi)存。正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數(shù)CPU可達90%左右),也就是說CPU下一次要讀取的數(shù)據(jù)90%都在CPU緩存中,只有大約10%需要從內(nèi)存讀取。這大大節(jié)省了CPU直接讀取內(nèi)存的時間,也使CPU讀取數(shù)據(jù)時基本無需等待??偟膩碚f,CPU讀取數(shù)據(jù)的順序是先緩存后內(nèi)存。RAM(Random-Access Memory)和ROM(Read-Only Memory)相對的,RAM是掉電以后,其中的信息就消失那一種,ROM在掉電以后信息也不會消失那一種。
RAM又分兩種,一種是靜態(tài)RAM,SRAM(Static RAM);一種是動態(tài)RAM,DRAM(Dynamic RAM)。前者的存儲速率要比后者快得多,使用的內(nèi)存一般都是動態(tài)RAM。為了增加系統(tǒng)的速率,把緩存擴大就行了,擴的越大,緩存的數(shù)據(jù)越多,系統(tǒng)就越快了,緩存通常都是靜態(tài)RAM,速率是非常的快, 但是靜態(tài)RAM集成度低(存儲相同的數(shù)據(jù),靜態(tài)RAM的體積是動態(tài)RAM的6倍), 價格高(同容量的靜態(tài)RAM是動態(tài)RAM的四倍), 由此可見,擴大靜態(tài)RAM作為緩存是一個非常愚蠢的行為, 但是為了提高系統(tǒng)的性能和速率,必須要擴大緩存, 這樣就有了一個折中的方法,不擴大原來的靜態(tài)RAM緩存,而是增加一些高速動態(tài)RAM做為緩存, 這些高速動態(tài)RAM速率要比常規(guī)動態(tài)RAM快,但比原來的靜態(tài)RAM緩存慢, 把原來的靜態(tài)RAM緩存叫一級緩存,而把后來增加的動態(tài)RAM叫二級緩存。