1. 程式人生 > >暫存器與快取的區別

暫存器與快取的區別

這裡的快取是指的CPU的快取。

按與CPU遠近來分,離得最近的是暫存器,然後快取,最後記憶體。

所以,暫存器是最貼近CPU的,而且CPU只與暫存器中進行存取。

(寄存的意思是,暫時存放資料,不中每次從記憶體中取,它就是一個臨時放資料的空間,火車站寄存處就是這個意思)

而暫存器的資料又來源於記憶體。於是  CPU<--->暫存器<----->記憶體   這就是它們之間的資訊交換。

那為什麼有快取呢? 

因為如果老是操作記憶體中的同一址地的資料,就會影響速度。於是就在暫存器與記憶體之間設定一個快取。

快取就把從記憶體提取的資料暫時儲存在裡面,如果暫存器要取記憶體中同一位置的東西,就不用老遠巴巴地跑

到記憶體中去取,直接從快取中提取。

因為從快取提取的速度遠高於記憶體。當然快取的價格肯定遠遠高於記憶體,不然的話,機器裡就沒有記憶體的存在,

只有快取的存在了,但如果全是快取,相信沒有幾個人買 得起計算機了。

由此可以看出,從遠近來看:   CPU〈------〉暫存器〈---->快取<----->記憶體

注意一下,暫存器並不每次資料都可以從快取中取得資料,萬一不是同一個記憶體地址中的資料,那暫存器還必須

直接繞過快取從記憶體中取資料。所以並不每次都得到快取中取資料,這就是快取的命中率,從快取中取就命中,不從

快取中取從記憶體中取,就沒命中。當然關於快取命中率又是一門學問,哪些留在快取中,哪些不留在快取中,都是命中

的演算法。

從經濟和速度的綜合考慮,又有了一級快取和二級快取,當然一級快取價格遠高於二級快取,它們的作用類似,但速度上

一級快取速度明顯高於二級快取,因為價格的原因就設定了二級快取,也不知道將來 會不會能三級快取呢?