轉自:https://www.cnblogs.com/zsq1993/p/5991018.html
這裏的緩存是指的CPU的緩存。
按與CPU遠近來分,離得最近的是寄存器,然後緩存,最後內存。
所以,寄存器是最貼近CPU的,而且CPU只與寄存器中進行存取。
(寄存的意思是,暫時存放數據,不中每次從內存中取,它就是一個臨時放數據的空間,火車站寄存處就是這個意思)
而寄存器的數據又來源於內存。於是 CPU<--->寄存器<----->內存 這就是它們之間的信息交換。
那爲什麼有緩存呢?
因爲如果老是操作內存中的同一址地的數據,就會影響速度。於是就在寄存器與內存之間設置一個緩存。
緩存就把從內存提取的數據暫時保存在裏面,如果寄存器要取內存中同一位置的東西,就不用老遠巴巴地跑
到內存中去取,直接從緩存中提取。
因爲從緩存提取的速度遠高於內存。當然緩存的價格肯定遠遠高於內存,不然的話,機器裏就沒有內存的存在,
只有緩存的存在了,但如果全是緩存,相信沒有幾個人買 得起計算機了。
由此可以看出,從遠近來看: CPU〈------〉寄存器〈---->緩存<----->內存
注意一下,寄存器並不每次數據都可以從緩存中取得數據,萬一不是同一個內存地址中的數據,那寄存器還必須
直接繞過緩存從內存中取數據。所以並不每次都得到緩存中取數據,這就是緩存的命中率,從緩存中取就命中,不從
緩存中取從內存中取,就沒命中。當然關於緩存命中率又是一門學問,哪些留在緩存中,哪些不留在緩存中,都是命中
的算法。
從經濟和速度的綜合考慮,又有了一級緩存和二級緩存,當然一級緩存價格遠高於二級緩存,它們的作用類似,但速度上
一級緩存速度明顯高於二級緩存,因爲價格的原因就設置了二級緩存,也不知道將來 會不會能三級緩存呢?