1. 程式人生 > >page coloring小結

page coloring小結

fill 不同的 set borde vertical nts 計算機 分享 特定

頁著色是一種通過選擇性物理頁分配來實現把虛存映射到特定cache位置的軟件方法。

最早引入頁著色概念是在計算機體系結構,是為了解決地址別名問題引入的。

首先對cache是使用虛擬地址還是物理地址的問題。有非常多討論,而在使用虛擬地址時。存在一個問題叫做別名問題。所謂別名問題出現的原因就是操作系統和用戶程序可能對同一個物理地址使用兩種以上不同形式的虛擬地址來訪問,這些地址被稱作別名。他們會導致同一個數據在使用虛擬地址的cache中存在兩個副本,假設當中一個數據被改動,那麽另外一個就是錯誤的。

對於別名問題的解決的方法之中的一個就是使用頁著色,

假設強行要求別名的某些地址位同樣,就能夠用軟件非常easy地解決這一問題。比如,SUN公司的UNIX要求全部使用別名的地址最後18位都同樣。

這樣的限制被稱為頁著色。這一限制使得容量不超過2^18字節(256KB)的直接映象Cache中不可能出現Cache塊有反復物理地址的情況。全部別名將被映象到同一Cache塊位置。

這裏就是把兩個別名(兩個虛擬地址)映射到同一個cache塊位置。

技術分享

技術分享

兩個黃色的頁,具有相同的colorbits。於是相同映射到L2 CACHE中的多組中,在cache中,存儲同一個顏色的連續的多個SET叫做bin.

從圖上得出直觀的感受是

  1. color在內存中是離散存在的,每隔2^tag個頁就有一個同一個color的頁。
  2. cachecolor是連續存在的。

而與此同一時候操作系統所做的,就是把一個進程的虛擬地址空間映射到不同的物理地址中,進而映射到特定的cache位置。在上圖中。操作系統將A進程的虛擬地址空間映射到黃色的物理頁地址空間。從而A進程的頁都放置在cache中的黃色bin中。

page coloring小結