• 沒有找到結果。

在此節中我們將分別測試不同 threshold、table size、FIFO queue size 對 wear-leveling 所造成的影響,以及何種設定將可以得到最佳解,另外,在 RLFAL 做 remap 的行為會 增加一些 write 的成本。另外,這樣的行為是否也會造成底層增加 erase 的成本,將會在 此做說明。

以下將會分別設定 Threshold、table size、FIFO queue size。Threshold 越小將越快速 的執行 sector 間的置換,使各 block 被抹除的次數越平均,但將花費較多 erase 的成本。

首先,想要確認的是,這個方法是否有效,因此就要先看它的標準差,而標準差(stdev) 則是在主要是用以衡量觀測資料與其平均數之間的差異量數,衡量值與平均值之間的離 散程度。以下的數據在 Threshold、table size、FIFO queue size 為 0 的部分皆是代表沒有 加上本論文的方法,只有 FAL 本身 wear-leveling 的情形。

給定一個較大的 table size 及 FIFO size 設為 100,再比較各個 threshold 的情形,說 明圖 5.1(a)在上層,也就是在 RLFAL 的行為下,對 FAL 造成的影響,利用觀察在各個 threshold 情況下,比較其是否會有太多的 remap 行為,以及 wear-leveling 的效果。可以 看到的是,在 threshold 各個情況下,它的標準差都不會差太多,但是它的 remap 所造成 的 write 須多出的寫入,需找到一個平衡點。圖 5.2(b)說明,在下層,也就是 device 的部 分,針對它 erase 的行為做比較,看上層的行為是否會對於 block 的 wear-leveling 的效果

22

是否有成效,且是否會造成多餘的 erase 成本。可以看到的是,在此情況下,平均的 erase count 是有下降的趨勢。這裡可以說明,在上層使用了只紀錄部分的 hot sector,並且做 了 remap 的成本,在 device 的部分並不會造成實際的過多成本,也成功了平均各 block 被磨損的效果。threshold 愈小,其 wear-leveling 的效果愈好,但是卻要額外付出一些成 本,表示其上層寫到的次數愈小就要找新的 cold sector 去交換,其交換時便會多一次 cold data 的寫入,因此,亦會造成在底層多一次的寫入。這個寫入便是一個成本。

實驗會在全部的 logical sector 皆從 0 找到最後一個 sector 的情況後,也就是說,令 所有的 logical sector 最少皆被使用過一次,去看使用過的情況,在 physical layer 的情況 也是好的,這裡先展示在 logical layer 的情況,在 wear-leveling 的情況下,可以看得出它 的效果也是比沒有加上 policy 的效果好上許多。

(a): Standard deviation of sector write (b): Total write count 圖 5.1: Wear-leveling 在 FAL 所造成的影響

從圖 5.2 可以看出,在 threshold 為 50 的情況下,得到的 erase count 以及標準差是可 以接受的範圍,因此,下面再實驗時,便以 threshold 為 50 的設定去做各個實驗。在 FAL 做 remap 的效果,也就是變更 logical sector 對映變動,是否可以達到讓 physical layer 亦 可達到相同的效果。在這個情況下,可以看到其標準差是大幅度的變小。這也代表說,

wear-leveling 是有效果的。當 table size 愈大,表示它可以掌握的 hot sector 愈準確,所以 也可以確保各個 block 磨損愈平均。圖 5.4(b)說明在各個各 table size 下,在 table 為 200 即有明顯的改善,再加大一點 table size 為 500 時即可達到一個很好的效果,若是讓 table size 加大到 fullmap,對照圖 5.3(a) (b)以 ram 的空間來換取 erase count 的減低(也就是

23

garbage collection 的效果),仍應考慮它寫入的成本。

(a): Standard deviation of block erase (b): Total erase count 圖 5.2: Wear-leveling 在 FMD 所造成的影響

除此之外,也加上了 full-map 來做比較,full-map 也是做在 RLFAL,並且跟本論文 所提出的方法相比。在 full-map 的可以很精準的控制所有的 sector,誰使用到了限定的 threshold,誰可以拿來當 cold sector 都可是被紀錄的,但是它的缺點是,多了許多的 write,雖說如此,但是它的標準差十分的好,erase count 跟其它的相較起來也較小,但 是它所付出的 ram 空間,以及 write 成本也應該考慮。

(a): Standard deviation of write count (b): Average write count 圖 5.3: 各 table size 的 write count 比較

24

(a): Standard deviation of erase count (b): Average erase count 圖 5.4: 各 table size 的 erase count 之比較

以 erase count 的比較的部分,觀察 5.5 在 hot、cold data 置換寫入下,提供所有的 block erase 的情況,比較兩者在 Total erase 的情況下,在選取 block dirty count 的部分,是以各 個 table 的情況下,在 block 取得其 dirty count,可以看到是 dirty count 在 block 中在 table 上的表現,由於 block 所取得的 dirty count 愈高,代表它可以少 erase 幾個 block,就可 以得到所需的可用空間。所以 erase count 較低,所以這部分是說明讓 GC 更有效率的原 因。

圖 5.5: 各個 table size 上,block 的 sector dirty count 之比較

另外,參考圖 5.6 的數據,利用各個 queue size,可以少 hot sector 誤判的機會,以

25

期達到最佳的效果。可以看到的是,在 table size 為 500, threshold 為 50 的情況下,這 幾種 FIFO queue size 的效果差不多,但在 queue 為 100 的情況下,已經是最好的情形。

而 queue size 為 0 是沒有加方法,FAL 原本 wear-leveling 的效果。可以看到的是有使用 FIFO queue 與沒有使用的差別,其標準差很大,那麼要取那個值做會比較合用的值,因 此將其放大比較,可以看到當 FIFO queue 為 50 的情況下,其標準只差了一點點,但是 queue size 為 100 是此 case 中的最低點。

(a):各 FIFO queue size 的標準差之比較 (b): 各 FIFO queue size 的標準差之比較 圖 5.6: FIFO queue size 之比較

26

6 6 6

6 Conclusion Conclusion Conclusion Conclusions ss s

在 不 更 改 原 本 的 FAL 或 是 Device Driver 前 提 下 , 但 又 希 望 可 以 有 更 好 的 wear-leveling,使用在 FAL 上層做 Remap 的做法,可使得 wear-leveling 的相應上原本 Windows CE 的 FAL 的效果來得好。

利用 RLFAL 的 Remap 做法,可以將 hot、cold data 做一個有效的利用,不致於使部 分 block 被過度的磨損。並且從實驗結果可看出在 erase count 之次數及標準差,均少於 原來 Windows CE 的 FAL 的 wear-leveling 的效果,因此可證明 RLFAL 是一個簡單且有 效應用於 wear-leveling 的方法。可有效減少 Garbage Collection 的 erase count,以及平均 各個 block 磨損的程度。未來如何讓 hot、cold sector 分開,不要使 block 中的 sector 被 hot、cold sector 是一個改進的目標。

從實驗結果可以看出,不論是 erase count 或是平均各 block 磨損效果,都比原本的 FAL 好,因此證明 RLFAL 是一個可替代的做法,以增加 wear-leveling 的效果,又不用 增加過多的 Overhead。

27

參考 參考 參考

參考文獻 文獻 文獻 文獻

[1] Li-Pin Chang, “ On Efficient Wear-Leveling for Large-Scale Flash-Memory Storage Systems,

“ the 22nd ACM Symposium on Applied Computing (ACM SAC), 2007.

[2] Li-Pin Chang , “ A Stackable Wear-Leveling Module For Linux-Based Flash File Systems , ” Taiwan-Korea Data Storage Symposium, 2007

[3] Thomas Gleixner, Frank Haverkamp, and Artem Bityutskiy, “ UBI - Unsorted Block Images ,” Copyright © 2006 International Business Machines Corp

[4] Y.-H. Chang, J.-W. Hsieh, and T.-W. Kuo, “ Endurance enhancement of flash-memory storage systems: An efficient static wear leveling design, ” the 44th ACM/IEEE Design Automation Conference (DAC), San Diego, California, USA, June 2007

[5] Samsung Electronics Company, “K9F8G08UXM 1Gb * 8 Bit NAND Flash Memory Data Sheet".

[6] Samsung Electronics Company, “K9XXG08UXM 2Gb * 8 Bit /4Gb * 8 Bit/6Gb * 8 Bit/8Gb * 8 Bit NAND Flash Memory Data Sheet (Preliminary)"

相關文件