作者:-1????發(fā)布時(shí)間:2022-11-11 13:55 ????瀏覽次數(shù) :
3.2 Cleaning
使用flash blocks作為allocation pool中的自然分配單元,在任何給定時(shí)間內(nèi),一個(gè)pool中可以具有很多可用于保持寫入的active blocks,為了支持繼續(xù)分配新的活動(dòng)塊,我們需要一個(gè)垃圾收集器來(lái)枚舉以前使用過(guò)的塊,這些塊必須被擦除和回收。如果logical page size小于閃block size, 則必須在擦除之前清除閃存塊。Cleaning可以這樣總結(jié),當(dāng)完成一個(gè)page寫入,那么之前page映射的page 位置將被取代,因?yàn)檫@個(gè)位置的內(nèi)容現(xiàn)在已經(jīng)被更新了。在回收候選的block時(shí),所有未被取代的page必須在擦除前寫入其他位置。
最壞的情況下,當(dāng)被取代的頁(yè)面均勻地分布在所有塊上時(shí),必須為每個(gè)新數(shù)據(jù)寫入發(fā)出N-1個(gè)cleaning寫入( 每個(gè)塊有N個(gè) 頁(yè)面)。當(dāng)然,大多數(shù)工作負(fù)載會(huì)產(chǎn)生寫入活動(dòng)的集群,當(dāng)數(shù)據(jù)被覆蓋時(shí),會(huì)導(dǎo)致一個(gè)block上有多個(gè)被取代的頁(yè)。我們引入術(shù)語(yǔ)cleaning efficiency來(lái)量化塊清理期間取代頁(yè)面與總頁(yè)面的比率。盡管存在許多用于選擇用于回收的候選塊的可能算法,但都是優(yōu)化cleaning efficiency。值得注意的是,使用條帶化來(lái)增強(qiáng)順序地址的并行訪問(wèn)可以抵消被取代頁(yè)面的集群。