首先補充下CPU的知識:算法
CPU也就是中央處理器,至關於計算機的大腦;緩存
CPU是一塊超大規模的集成電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit);性能
CPU功能主要是解釋計算機指令以及處理計算機軟件中的數據;內存
中央處理器主要包括運算器(算術邏輯運算單元,ALU,Arithmetic Logic Unit)和高速緩衝存儲器(Cache)及實現它們之間聯繫的數據(Data)、控制及狀態的總線(Bus);it
CPU與內部存儲器(Memory)和輸入/輸出(I/O)設備合稱爲電子計算機三大核心部件。軟件
什麼是緩存和內存:程序
什麼是內存?方法
內存是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中全部程序的運行都是在內存中進行的,所以內存的性能對計算機的影響很是大。內存(Memory)也被稱爲內存儲器,其做用是用於暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。只要計算機在運行中,CPU就會把須要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。 內存是由內存芯片、電路板、金手指等部分組成的。數據
什麼是緩存?計算機
緩存是CPU的一部分,它存在於CPU中,CPU存取數據的速度很是的快,一秒鐘可以存取、處理十億條指令和數據(術語:CPU主頻1G),而內存就慢不少,快的內存可以達到幾十兆就不錯了,可見二者的速度差別是多麼的大。緩存是爲了解決CPU速度和內存速度的速度差別問題。內存中被CPU訪問最頻繁的數據和指令被複制入CPU中的緩存,這樣CPU就能夠不常常到象「蝸牛」同樣慢的內存中去取數據了,CPU只要到緩存中去取就好了,而緩存的速度要比內存快不少。
這裏要特別指出的是: 由於緩存只是內存中少部分數據的複製品,因此CPU到緩存中尋找數據時,也會出現找不到的狀況(由於這些數據沒有從內存複製到緩存中去),這時CPU仍是會到內存中去找數據,這樣系統的速度就慢下來了,不過CPU會把這些數據複製到緩存中去,以便下一次不要再到內存中去取。 由於隨着時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛纔還不頻繁的數據,此時已經須要被頻繁的訪問,剛纔仍是最頻繁的數據,如今又不頻繁了,因此說緩存中的數據要常常按照必定的算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的。
關於一級緩存和二級緩存
爲了分清這兩個概念,內存有RAM和ROM兩種,咱們先了解一下RAM(隨機存儲器) 和ROM(只讀存儲器).
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找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,若是還找不到就只有到內存中找了