計算機組成原理之高速緩存(重要點)

這一篇也是計算機組成中比較重要的概念,高速緩存。數組

上一篇已經講了存儲層次結構,接下來看看高速緩存的原理。緩存

Cache取回數據時並不僅是取回CPU要求的單個數據,而是取回一個數據塊Block,其實這是一個預期的行爲,好比通常咱們spa

訪問數組下標爲1的數據時,接下來大可能繼續訪問下標2,3……的數據設計

另外頻繁被訪問的數據也會在Cache中被緩存下來 blog

 這是Cache的訪問過程,看起來很是像咱們寫的程序邏輯判斷。。。內存

  上圖中衡量高速緩存的是平均訪問時間=命中時間+失效代價X失效率效率

  下降平均訪問時間也是從這三個參數入手設計,然而實現目標總沒有那麼十全十美,好比想讓命中時間下降,須要讓緩存容量減少,原理

這樣能存下的緩存數據就減小了,失效率也會上去。程序

  須要知道的是指令和數據之前都是在內存中,可是指令和數據的訪存時間差距卻很大,通常指令訪存的平均時間比數據小不少,好比im

廚師如今知道了下一個菜是炒番茄雞蛋,可是收到指令好久纔有切好的番茄送過來,所以現代CPU大多數將指令和數據分放在兩個獨立的

Cache中,避免空間上相互影響。

  下圖是Corei7的緩存設計。其中路組相聯指的是高速緩存中的相同地址頭的存放策略。好比編號爲1的房間如今放着數據A,如今須要

數據B,取回來後編號也是1,那麼是增長一個房間呢仍是替換編號1房間的數據A呢,很顯然,這又是個相互制約的設計

 

 關於Cache的寫策略,只能從字面意思上去理解,具體的怎麼設置尚不清楚

相關文章
相關標籤/搜索