• 沒有找到結果。

Implementation Issues

Chapter 3 ON-LINE SELF-TUNING

3.4 Implementation Issues

Wear leveling 的 Self-Tuing 的機制執行的流程就同下圖(8)所示。我們修改原本使 用固定 Threshold 值的 lazy wear leveling,每經過一段固定的週期,週期可以設 定為快閃記憶體每寫入定量的資料,就會呼叫 K-estimation。進入 K-esitimation 程序後,它會暫時將 wear leveling 的 Threshold 值設定為 16,並且統計出 Threshold 值為 16 時,wear leveling 所帶來的額外的 erase count,也就是 wear leveling 在 Threshold = 16 時的成本,在依照上節所述的求出 K 值。K-esitimation 的統計時 間是非常快速的,只需要 8GB 以下的資料寫入就可以得到結果。

14 Using LWL with decided Δ

Calculate Δ Set Δ

K – estimation

(need 8GB data at most)

Reach period?

YES No

圖(8) self-tuning 流程

得到 K 值後就可直接 g(Δ) = K/(2Δ)得到成本-TH 的模擬關係曲線。計算出建議的 Threshold 值過程也相當快速,只須帶入簡單的微分公式求出斜率為-0.1 的 Δ 值。

g’(Δ) = -2K/(Δ^ -2) = -0.1 20K = Δ^ 2

Δ = √(20K)

最後再變更 Lazy wear leveling 的 Threshold 值設定為所求出的 Δ 值,即為完成一 次的 self-tuning 的執行區間。

K-esitamation 所需要的成本是相當低的,我們僅需要幾個額外的變數來計算是否 累積到定量的寫入資料,儲存 K 和 Δ 值,以及記錄 wear leveling 所帶來額外的 erase count 和 overhead,若每個變數使用 4 byte 也僅需要 20 byte 的記憶體空間。

至於 K-esitamation 蒐集完資料後,計算時間只需複雜度 O(1)就可完成,最佳 Threshold 值的決定也可在 O(1)間完成,所以 self-tuning 的機制幾乎不會帶來多 餘的成本。

15

4. Experiment Result

4.1 Experiment Setup and Metrics

我們的實驗所使用的 NAND flash memory 是以 4 個 channels 的架構為基礎,假 設 erase 時所有的 channel 會一起動作,而存取則不需要所有 channel 一起運作,

規格如下表(2)所示:

表(2)快閃記憶體規格

而所使用的 FTL 為一個 log block 只能對應到一個 data block 的更新的 Block Chain。在實驗測詴的過程中,我們使用的 workload 是從筆電所擷取下來的一個 月內的 read/write 存取指令,環境如下表(3)所示:

OS Windows XP

File system NTFS Total writes 1772339 Disk volume size 20GB

表(3)workload 資訊

我們的比較對象包括了以下表格所列出的的方法,而比較的結果我們將會使用圖 示以及與比較對象和暴力法的帄方和差距的方式來呈現。

名稱 方法

暴力法 在固定環境下,將所有的

Threshold 值一個一個逐一分別測 量,每一個 Threshold 值使用 20G 的資料測量

Stepping - 1G/4G 在固定環境下,將所有 Threshold 值由大到小連續測量。

每一個 Threshold 值使用 1G/4G 的 資料測量

Partition - 2/4/8 parts 將 NAND flash memory 分割成同 等大小的 2/4/8 等份,每一個部分 測量不同的 Threshold 值,每一個 等份使用的資料量為 20G

表(4)實驗對照組列表

Page Size 4K Bytes

Block Size 512K Bytes x4 = 2M Bytes Pages Per Block 128

Total Size 20G Bytes Over-Provision 1.25%

16

實驗的內容包含了在不同 Workload,FTL,Flash Geometry 和 Over-provision 的 比例下,會分別對 lazy wear leveling 產生怎樣不同的影響,而本篇 paper 的方法 又會以這些影響為依據,找出最適合當下環境的 Threshold 值。在後面的章節中,

我們會依照這些因素對 wear leveling 影響力的大小呈現實驗結果。

4.2 Using Different Host Workloads 4.2.1 Workload Introduction

不同的 Workload 會對 wear leveling 有不同的影響,所以我們的實驗選擇了 NB,

IOmeter[17],Multimedia,這三種特性相差甚大的 workload,來囊括所有快閃記 憶體在使用時可能會遭受到的各種存取案例。

不同的 Workload 因為存取的特性不同,所以會在快閃記憶體上所造成的現象也 不同,下圖(9)是三種 Workload 在沒有 wear leveling 干涉下,造成的快閃記憶體 上 block 的 erase count 分布圖。IOmeter 是一個非常隨機的 access pattern,它會 非常分散但是帄均的將資料寫入不同的位置,所以會讓快閃記憶體各個 block 的 erase count 分布呈現常態分布的現象,沒有 block 的 erase count 會特別高或是特 別低。

NB trace 有明顯的 locality,所以有些位置會一直重複的被寫入,而有些位置都沒 有被寫到,因此會有 erase count 分布非常不帄均的現象。Multimedia 則是一個比 較循序的 access pattern,除了一些因為作業系統所造成的少數一直寫入的 hot data 和一部分沒有被寫到的區塊之外,在沒有 wear leveling 的介入下,它幾乎呈現非 常帄均且集中的 erase cycle 分布。

AVG

AVG

AVG

圖(9)不同 workload 的 erase count 分布圖

17

4.2.2 Workload Experiment Result

在本節中,我們先討論不同的 access pattern 會對 wear leveling 的效果產生不同的 影響以及比較不同的實驗結果。下圖(10)是我們使用 K-estimation 所模擬出的成 本-TH 的關係圖和暴力法的比較。

Trace RSS of K-estimation

NB 13.4399

Multimedia 1.967 IOmeter 163.167

表(5)K-estimation 的 RSS 值

可以看出,K-estimation 所模擬出的成本-TH 曲線在直接觀察下,其實和暴力法 的曲線看起來並沒有相差太多,造成的 RSS 也數值也很小,見表(5),唯一差距 較大的是 IOmeter,但是我們之前有提過當 Threshold 值很小時,K-estimation 所 估計的 overhead 會偏大,此部分所佔的誤差佔了全體誤差的 75%以上,所以捨 去端點部分不看,K-estimation 的模擬結果依舊是相當接近。

0

18

圖(11.a)NB 圖(11.b)Multimedia 圖(11.c) IOmeter

Trace RSS of Stepping(4G)

NB 0.41

Multimedia 17591 IOmeter 0.33 右,Stepping - 4G 幾乎不具有實用的價值。第二,Stepping 對於循序檔案的測量 效果表現得很差,從圖(11.b)中就可以看出它的曲線跟實際情況根本嚴重失真,

造成如此結果的原因就在於 Stepping 是在執行中連續測量 Threshold 值,所以前 一個 Threshold 值的測量結果就有可能會影響到下一個 Threshold 值的結果。這 個現象在 Multimedia 中特別的嚴重,因為 Multimedia 的寫入是很循序的,所以 大部分的 block 它的 erase count 都是很均勻的一起上升著,就算是有 wear leveling 的介入也不會改變這個趨勢,而且之前見圖(9)就已經看到 Multimedia 它 的 erase count 分布非常集中,所以隨著 Stepping 測量的 Threshold 值越來越小,

當測量的 Threshold 值進入 erase count 分布很集中的地帶時,反而會造成 wear leveling 太容易引發而產生高 overhead。

19

最後是使用 Partition 所得到的實驗結果。

從實驗的圖表中,可見 Partition 在 Multimedia 時依舊延續了上一段所提到的缺 點,所以 Partition 在 Multimedia 上幾乎有和 Stepping 一樣情況的誤差。Partition 在 NB 時我們從圖(12.a)中可以看到,當我們將快閃記憶體切成越多部分,測量 出的曲線誤差就越大,原因就在於因為 NB 這個 trace 具有高度 locality,當切成 越多等份測量時,就越容易受到 NB 的 locality 影響,造成每個 Threshold 值的測 量環境差異很大,失去公帄性。同理,因為 IOmeter 完全沒有 locality 的問題,

所以測量出來的結果不管將快閃記憶體切成多少等份結果都相差不大。

再來表(7)是我們使用 K-estimation 在不同 worload 下所得到的 Threshold 值。

以使用暴力法測量 IOmeter,Multimedia,和 NB 所測量到的成本-TH 關係圖以及 標準差-TH 關係圖 ,見圖(13)。

圖(12.a)NB 圖(12.b) Multimedia 圖(12.c)IOmeter

Workload K Threshold

NB 1.0268 23

Multimedia 1.0092 23

Iometer 2.06 32

20 leveling 對帄均的定義有關,所以基本上 Threshold 值越小的話,block 之間的 erase count 分布也就越帄均。

從圖(13.a)中,可以看到 IOmeter 的 wear leveling 成本是高於另外兩者的,原因 就在於在上節所提到的,IOmeter 的 erase count 的分布幾乎是呈現常態分布,所 以 erase count 高於帄均值加上標準差的比例約為 17%,所以很容易就可以引發 wear leveling。但是 IOmeter 並沒有所謂 hot cold data 的分別,所以 wear leveling 很難介入這麼帄均的隨機寫入,做了效果沒有很好,反而造成很高的成本,因此 K-estimation 所測量出的 K 值較大,找出的 Threshold 值也偏大如表(7)所列,如 此可避免引發過的無謂的 wear leveling。

NB trace 有明顯的 locality 而非常不帄均,但是在 trace 中其實 hot data 佔的比例 是比較少的的,所以會引發 wear leveling 的區塊跟 IOmeter 比起來較少,又它的 hot cold data 是很明顯的,因此不需付出太多成本,wear leveling 的效果就很好,

所以 K-estimation 找出的理想 Threshold 值約為 23,正好是處在成本暴增之前的 點。

至於 Multimedia trace,因為他的 erase cycle 分布很集中且帄均,所以太大的 Threshold 值並不會啟動 wear leveling ,而太小的 Threshold 值則會大幅引發 wear leveling 。他大部分為循序寫入,只有少部分的 hot data,所以 hot data 很容易 辨識,原本 wear leveling 應該會很好做,但是 Multimedia 常常會有大範圍的循序 寫入,因此又會破壞了之前 wear leveling 的將 hot cold 資料交換的結果,,因此 整體的效果和 NB 看起來差不多。

21

4.3 Different FTL algorithms

此節我們將針對不同的 FTL 來觀察它對 wear leveling 效果的影響。

首先我們先介紹實驗中所使用的 FTL 的不同之處。

BC 和 NK 這兩種 FTL 之下的結構是很相似的,唯一的不同就只有 NK 的每一個 log block 可以吸收來自兩個 data block 的更新資料,增加些許的 log block 使用率。

所以在此我們就針對 BC 和 FAST 的部分來做比較。

FAST 的 log block 是可以以容納所有 data block 的更新資料,所以他的區塊的使 用率較佳,比較不會引發 Garbage Collection,所以在同樣的 trace 之下,FAST 的區塊被 erase 的速率比 BC 還慢了許多,帄均 erase count 也會較小,見圖(14)。

erase count

Logical Time BAST FAST

圖(14)BC 和 FAST erase count 成長速度比較

又再者,我們觀察在沒有 wear leveling 介入時,我們若使 FAST 和 BC 兩者有相 同的 erase count,則他們所造成的區塊 erase count 分布圖也不相同,從下圖(15) 中可看到 BC 的 erase count 分布較 FAST 比起來比較凌亂不集中,因此可見 FAST 的 Garbage Collection 的效果是比較好的,它本身的結構就可以讓 block 間的 erase count 分布比較帄坦。

圖(15)不同 FTL 的 erase count 分布圖

下圖(16)是我們使用 K-estimation 所模擬出的成本-TH 的關係圖和暴力法的比較。

22

FTL RSS of K-estimation

BC 13.43

FAST 15.95

NK 10.67

表(8)K-estimation RSS 值

由實驗結果的圖(14)中可以直接看出模擬曲線除了接近 Threshold 值很小的端點 部分之外,和暴力法的曲線幾乎都是重合的,而且表(8)的 RSS 在 3 個 FTL 下也 都很接近,若我們將端點部分的誤差扣除,BC,FAST,NK 的 RSS 僅剩下 2.94,

3.44,2.13 而已,所以使用 K-estimation 的結果來代替實際測量結果是相當適合 的。 Stepping (1G) Stepping(4G)

圖(17.c) NK

從 Stepping 的結果還是可明顯看出,Stepping 依舊存在著上一節所提過的相同問

23

題,當測量的資料量不足的時候,測量出的曲線就會動盪不穩定而難以用來決定 最適合的 Threshold 值,而當給定足夠的測量的資料量又會造成一次調整

Threshold 值得時間太久而不實用。

最後是 Partition 的測量的結果。 Threshold 值,則越容易受到 workload 的 locality 的影響,而且切成越多部分也 代表著用來測量的資料量越少,所以 Partition 的結果也呈現出將快閃記憶體切成 越多部分就和暴力法的結果相差越遠的趨勢。

再來是我們使用 K-estimation 在不同 FTL 下所得到的 Threshold 值,見表(9)。

再來是我們使用 K-estimation 在不同 FTL 下所得到的 Threshold 值,見表(9)。

相關文件