1. 知識(shí)點(diǎn)回顧
前面我們已經(jīng)知道赚导,存儲(chǔ)的層次結(jié)構(gòu)尚粘,以及緩存保存的是內(nèi)存的數(shù)據(jù),且緩存的三種設(shè)計(jì)結(jié)構(gòu): 直接隱射蝇庭,組相連 和全相連醉鳖。以及緩存的工作原理。
既然我們知道存儲(chǔ)是層級(jí)結(jié)構(gòu)哮内,第i層的存儲(chǔ)器緩存的是第i+1層的存儲(chǔ)器的數(shù)據(jù)盗棵。所以就有寄存器緩存緩存器cache的內(nèi)容, cache緩存內(nèi)存的數(shù)據(jù)北发,而內(nèi)存就應(yīng)該緩存磁盤的數(shù)據(jù)
下面我們就來討論內(nèi)存如何緩存磁盤的數(shù)據(jù)纹因。
2. 緩存的整體架構(gòu)
繼續(xù)前面的討論思路, 我們將依次討論以下的緩存細(xì)節(jié)琳拨,注意次序很重要瞭恰,這個(gè)是緩存的設(shè)計(jì)過程。
- 緩存塊的大小狱庇,也就是磁盤和內(nèi)存之間數(shù)據(jù)緩存塊的大小
- 組數(shù)量的選擇
- 選擇緩存位置
2.1 緩存塊大小的選擇
緩存塊大小的大小應(yīng)該是受到程序經(jīng)常訪問的內(nèi)存密集度來決定的惊畏, 也就是局部性
2.2 緩存位置的選擇
現(xiàn)在我們來考慮內(nèi)存和磁盤結(jié)構(gòu)中的特殊術(shù)語(yǔ)——虛擬存儲(chǔ)器。
虛擬存儲(chǔ)器被設(shè)計(jì)的原因:
1. 多個(gè)進(jìn)程同時(shí)使用內(nèi)存空間密任,存儲(chǔ)容易發(fā)生破會(huì)
2. 每個(gè)進(jìn)程使用的存儲(chǔ)空間受限于物理的內(nèi)存的大小
針對(duì)上面的原因颜启,設(shè)計(jì)者提出了虛擬存儲(chǔ)器的概念。 cpu通過虛擬地址而不是物理地址訪問內(nèi)存浪讳。
該虛擬地址可以訪問的內(nèi)存空間大于物理地址空間缰盏。每個(gè)進(jìn)程仿佛肚子占用整個(gè)空間。
虛擬存儲(chǔ)器
下面是虛擬存儲(chǔ)器的特點(diǎn)