以前計算機是兩層儲存結構:主存和輔存。
現在大多出計算機中的三層儲存結構是:快取記憶體cache、主 儲存器和輔助儲存器。
那為什麼要提出快取記憶體呢?
主要的原因是為了提高儲存器的平均訪問速度。使儲存器的速度與cpu的速度想匹配。
那快取記憶體是如何提高儲存器的速度?
首先介紹一下快取記憶體,名叫cache,cache有兩部分組成:控制部分和cache部分。cache部分用來存放主存的部分複製資訊。(後面會介紹)控制部分的功能是:判斷cpu要訪問的資訊是否在cache中。
cpu與cache之間的資料交換是以字交換的,而cache與主儲存器之間的資料交換是以塊交換的。乙個資料塊是由若干個字組成的。
所以當cpu訪問主存的乙個資訊時,於是把資訊的記憶體位址通知給cache和主存。此時cache中的cache部分(上面提到的)會根據記憶體位址判斷此資訊是否在cache中,若在,則命中,即直接把資訊從cache傳給cpu,若不在,則未命中。那如何辦呢?首先主存會把此資訊的傳遞給cpu,然後再把此資訊的資料塊存放到cache,防止cpu下次讀取。
其實cpu訪問的過程中,若是cache未命中,主存把資訊資料塊存放到cache中,涉及到區域性性原理。
那既然提到了區域性性,那麼我們介紹一下區域性性原理,記得這在作業系統中虛擬儲存器頁面置換中提到過。
區域性性可以分為時間區域性性和空間區域性性。
時間區域性性是指:當乙個資料訪問完之後,在最近一段時間內再次訪問。
這種情況我們可以想想迴圈,迴圈就是此種情況。
空間區域性性是指:當乙個資料訪問完之後,在最近一段時間內會訪問它周圍的資料。
這種情況我們可以想想陣列,是不是這種情況哈。
剛才提到命中,理論是有了,那如何計算命中率呢?
命中率=cache完成訪問的次數/cache完成訪問的次數+主存完成的次數
h=n/n+m
= 命中率*cache的週期+(1-命中率)*主存的週期
主存與cache的位址對映:若是cache中未命中,為了防止下次訪問,則需要把主存中的字存放到cache中,那如何定位主存的位址呢?
介紹一下這三種的原理。
首先cache中的資料塊稱為行,而主存中的資料塊稱為塊。
在直接對映中,cache把主存塊位址s分為兩部分:r和s-r,其中r位作為cache的行位址, s-r位作為標記(tag)與塊資料(字)儲存在此行。若cpu訪問主存中的資料,則cache用r位找到此行,然後用位址中的s-r 的標記部分與cache中r行的標記部分做對比,若相等則命中,否則失中。
在全相聯對映中,cache把主存位址s直接作為標記部分。若訪問,直接把位址中的標記部分和cache中的標記部分進行比較。
在組相聯對映中,主存位址首先確定分到cache的那個組(採用直接對映),然後分到確定組的任意行(採用全相聯對映)。
直接相聯優點:位址變換簡單。
缺點:位址變換複雜。
組相聯:集上述兩種優點一身。
漫談計算機組成原理(五)高速緩衝儲存器
老樣子,在正式開始介紹 高速緩衝儲存器 之前,我們先來了解一下其相關的資訊。這種結構進一步的驗證了儲存器的層次結構 高速緩衝儲存器位於暫存器之下的特點。好了,說了這麼多,那讓我們來看看高速緩衝儲存器的工作原理吧!實際上,cache的工作原理非常簡單,就是利用了對映的方式來獲取主存資訊。我們知道,主存...
計算機組成原理 高速緩衝儲存器與輔助儲存器
cache的標記部分實際上標記了主存塊和cache塊之間的對應關係,如果乙個主存塊調入到cache當中,可講主存塊號寫到標記當中。cpu要從cache中訪問這個資料,要先確定要訪問的塊號是不是已經被送到cache當中,拿給出位址的主存塊號與標記進行比較,若正好相等,並且cache是有效的,則這個塊裡...
計算機組成 儲存器
儲存器的分類 按儲存介質分 分為半導體儲存器 sram,dram,rom 和磁表面儲存器 磁碟,磁帶 按訪問方式分 隨機儲存器 訪問時間與儲存單元的物理位置無關 和順序儲存器 磁帶,磁碟是半順序儲存器 按儲存內容可變性分 唯讀儲存器 rom 和隨機讀寫儲存器 ram 按資訊易失性 磁性材料做成的儲存...