閃存壽命是以P/E次數(shù)來計(jì)算的,而WL就是確保閃存內(nèi)每個(gè)塊被寫入的次數(shù)相等的一種機(jī)制。若沒有這個(gè)機(jī)制,SSD內(nèi)的閃存顆粒就無法在同一時(shí)間內(nèi)掛掉,那對(duì)用戶來說就是災(zāi)難。
會(huì)出現(xiàn)這種情況的原因在于,用戶在LBA空間里的數(shù)據(jù)更新速度是不同的,有部分是經(jīng)常需要更新,而有些卻長(zhǎng)期不需要變更,因此若沒有WL,很顯然那些經(jīng)常被更新的數(shù)據(jù)所在的閃存壽命會(huì)首先被消耗完畢,而不怎么需要變更的數(shù)據(jù)所在的閃存損耗就要小得多。
為了避免出現(xiàn)這種狀況,便需要WL這個(gè)機(jī)制來保持SSD內(nèi)的每個(gè)閃存顆粒的磨損程度在相對(duì)一致的狀態(tài)且最后同時(shí)報(bào)廢,但由于顆粒本身也有其個(gè)體差異,因此這里說的也只是最理想的狀態(tài)。
WL技術(shù)依賴于LBA和PBA的轉(zhuǎn)換:也就是說,每次主機(jī)上應(yīng)用程序請(qǐng)求相同的邏輯頁地址時(shí),閃存控制器動(dòng)態(tài)的映射邏輯頁地址到另一個(gè)不同的物理頁地址,并把這個(gè)映射的指向存放在一個(gè)特定的“映射表”里。而之前過期的物理頁地址就被標(biāo)記為“無效”并等待隨后的擦除操作。這樣一來,所有的物理塊就能被控制在一個(gè)相同磨損范圍,并同時(shí)“老化”。
WL算法有動(dòng)態(tài)及靜態(tài)兩種,簡(jiǎn)單來說動(dòng)態(tài)WL是每次都挑最年輕的閃存塊使用,老閃存塊盡量不用。靜態(tài)WL就是把長(zhǎng)期沒有修改的老數(shù)據(jù)從年輕的閃存塊里搬出來,重新找個(gè)最老的閃存塊存放,這樣年輕的閃存塊就能再次被經(jīng)常使用,概念很簡(jiǎn)單,只是這么一句話,但實(shí)現(xiàn)起來卻非常的復(fù)雜,特別是靜態(tài)WL,而且也只有靜態(tài)WL才算是真正的全盤WL。
由上圖我們可知道,如果固態(tài)硬盤沒有WL,那耐久度就無從可提。