您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機配件>cpu>

寄存器與緩存的區(qū)別

2019年06月03日 14:04 lq 作者: 用戶評論(0

寄存器與緩存的區(qū)別

這里的緩存是指的CPU的緩存。

按與CPU遠近來分,離得最近的是寄存器,然后緩存,最后內(nèi)存。

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

(寄存的意思是,暫時存放數(shù)據(jù),不中每次從內(nèi)存中取,它就是一個臨時放數(shù)據(jù)的空間,火車站寄存處就是這個意思)

而寄存器的數(shù)據(jù)又來源于內(nèi)存。于是 CPU《---》寄存器《-----》內(nèi)存 這就是它們之間的信息交換。

那為什么有緩存呢?

因為如果老是操作內(nèi)存中的同一址地的數(shù)據(jù),就會影響速度。于是就在寄存器與內(nèi)存之間設(shè)置一個緩存。

緩存就把從內(nèi)存提取的數(shù)據(jù)暫時保存在里面,如果寄存器要取內(nèi)存中同一位置的東西,就不用老遠巴巴地跑到內(nèi)存中去取,直接從緩存中提取。

因為從緩存提取的速度遠高于內(nèi)存。當然緩存的價格肯定遠遠高于內(nèi)存,不然的話,機器里就沒有內(nèi)存的存在,只有緩存的存在了,但如果全是緩存,相信沒有幾個人買 得起計算機了。

由此可以看出,從遠近來看: CPU〈------〉寄存器〈----》緩存《-----》內(nèi)存

注意一下,寄存器并不每次數(shù)據(jù)都可以從緩存中取得數(shù)據(jù),萬一不是同一個內(nèi)存地址中的數(shù)據(jù),那寄存器還必須

直接繞過緩存從內(nèi)存中取數(shù)據(jù)。所以并不每次都得到緩存中取數(shù)據(jù),這就是緩存的命中率,從緩存中取就命中,不從緩存中取從內(nèi)存中取,就沒命中。當然關(guān)于緩存命中率又是一門學問,哪些留在緩存中,哪些不留在緩存中,都是命中的算法。

從經(jīng)濟和速度的綜合考慮,又有了一級緩存和二級緩存,當然一級緩存價格遠高于二級緩存,它們的作用類似,但速度上一級緩存速度明顯高于二級緩存,因為價格的原因就設(shè)置了二級緩存,也不知道將來 會不會能三級緩存呢?

磁盤緩存和內(nèi)存緩存的區(qū)別

內(nèi)存緩存

高速緩存(英語:cache,英語發(fā)音:/k??/ kash [1][2][3],簡稱緩存),其原始意義是指訪問速度比一般隨機存取存儲器(RAM)快的一種RAM,通常它不像系統(tǒng)主存那樣使用DRAM技術(shù),而使用昂貴但較快速的SRAM技術(shù)。

原理

Cache一詞來源于1967年的一篇電子工程期刊論文。其作者將法語詞“cache”賦予“safekeeping storage”的涵義,用于電腦工程領(lǐng)域。

當CPU處理數(shù)據(jù)時,它會先到Cache中去尋找,如果數(shù)據(jù)因之前的操作已經(jīng)讀取而被暫存其中,就不需要再從隨機存取存儲器(Main memory)中讀取數(shù)據(jù)——由于CPU的運行速度一般比主內(nèi)存的讀取速度快,主存儲器周期(訪問主存儲器所需要的時間)為數(shù)個時鐘周期。因此若要訪問主內(nèi)存的話,就必須等待數(shù)個CPU周期從而造成浪費。

提供“緩存”的目的是為了讓數(shù)據(jù)訪問的速度適應CPU的處理速度,其基于的原理是內(nèi)存中“程序執(zhí)行與數(shù)據(jù)訪問的局域性行為”,即一定程序執(zhí)行時間和空間內(nèi),被訪問的代碼集中于一部分。為了充分發(fā)揮緩存的作用,不僅依靠“暫存剛剛訪問過的數(shù)據(jù)”,還要使用硬件實現(xiàn)的指令預測與數(shù)據(jù)預取技術(shù)——盡可能把將要使用的數(shù)據(jù)預先從內(nèi)存中取到緩存里。

CPU的緩存曾經(jīng)是用在超級計算機上的一種高級技術(shù),不過現(xiàn)今電腦上使用的的AMDIntel微處理器都在芯片內(nèi)部集成了大小不等的數(shù)據(jù)緩存和指令緩存,通稱為L1緩存(L1 Cache即Level 1 On-die Cache,第一級片上高速緩沖存儲器);而比L1更大容量的L2緩存曾經(jīng)被放在CPU外部(主板或者CPU接口卡上),但是現(xiàn)在已經(jīng)成為CPU內(nèi)部的標準組件;更昂貴的CPU會配備比L2緩存還要大的L3緩存(level 3 On-die Cache第三級高速緩沖存儲器)。

概念的擴充

如今緩存的概念已被擴充,不僅在CPU和主內(nèi)存之間有Cache,而且在內(nèi)存和硬盤之間也有Cache(磁盤緩存),乃至在硬盤與網(wǎng)絡(luò)之間也有某種意義上的Cache──稱為Internet臨時文件夾或網(wǎng)絡(luò)內(nèi)容緩存等。凡是位于速度相差較大的兩種硬件之間,用于協(xié)調(diào)兩者數(shù)據(jù)傳輸速度差異的結(jié)構(gòu),均可稱之為Cache。

地址鏡像與變換

主條目:CPU緩存#組相聯(lián)

由于主存容量遠大于CPU緩存的容量,因此兩者之間就必須按一定的規(guī)則對應起來。地址鏡像就是指按某種規(guī)則把主存塊裝入緩存中。地址變換是指當按某種鏡像方式把主存塊裝入緩存后,每次訪問CPU緩存時,如何把主存的物理地址(Physical address)或虛擬地址(Virtual address)變換成CPU緩存的地址,從而訪問其中的數(shù)據(jù)。

緩存置換策略

主條目:CPU緩存#置換策略、分頁和緩存文件置換機制

主存容量遠大于CPU緩存,磁盤容量遠大于主存,因此無論是哪一層次的緩存都面臨一個同樣的問題:當容量有限的緩存的空閑空間全部用完后,又有新的內(nèi)容需要添加進緩存時,如何挑選并舍棄原有的部分內(nèi)容,從而騰出空間放入這些新的內(nèi)容。解決這個問題的算法有幾種,如最久未使用算法(LRU)、先進先出算法(FIFO)、最近最少使用算法(LFU)、非最近使用算法(NMRU)等,這些算法在不同層次的緩存上執(zhí)行時擁有不同的效率和代價,需根據(jù)具體場合選擇最合適的一種。

磁盤緩存

磁盤緩存

16MB緩沖區(qū)的硬盤

磁盤緩存(Disk Buffer)或磁盤快?。―isk Cache)實際上是將下載到的數(shù)據(jù)先保存于系統(tǒng)為軟件分配的內(nèi)存空間中(這個內(nèi)存空間被稱之為“內(nèi)存池”),當保存到內(nèi)存池中的數(shù)據(jù)達到一個程度時,便將數(shù)據(jù)保存到硬盤中。這樣可以減少實際的磁盤操作,有效的保護磁盤免于重復的讀寫操作而導致的損壞。

磁盤緩存是為了減少CPU透過I/O讀取磁盤機的次數(shù),提升磁盤I/O的效率,用一塊內(nèi)存來儲存存取較頻繁的磁盤內(nèi)容;因為內(nèi)存的存取是電子動作,而磁盤的存取是I/O動作,感覺上磁盤I/O變得較為快速。

相同的技巧可用在寫入動作,我們先將欲寫入的內(nèi)容放入內(nèi)存中,等到系統(tǒng)有其它空閑的時間,再將這塊內(nèi)存的資料寫入磁盤中。

大小

現(xiàn)在的磁盤通常有32MB或64MB緩存。舊的硬盤則有8MB或16MB。

非常好我支持^.^

(20) 100%

不好我反對

(0) 0%

( 發(fā)表人:李倩 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?