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