• 沒有找到結果。

1 INTRODUCTION

固態硬碟(Solid State Disk, SSD)是新一代的大量資料儲存裝置,其內部使用像 是 NAND 快閃記憶體(flash memory)的固態記憶體來儲存資料。由於固態記憶體 具有體積小、低耗電以及耐震等多項優點,在加上隨著容量越來越大、價格越來 越便宜,以 NAND 快閃記憶體為基礎的 SSD 正快速發展,逐漸取代傳統的硬碟,

成為新一代大量儲存裝置的新選擇。

SSD 內部連接快閃記憶體並能夠獨立的操作快閃記憶體的連接線路稱之為 獨立通道(channel),這些線路包含匯流排及控制線。資料由匯流排進出快閃記憶 體模組的速度太小,遠不及 SSD 對 Host 端的介面傳輸速度,因此 SSD 傳輸資料 的瓶頸在於內部資料進出快閃記憶體模組的匯流排頻寬(Bandwidth)。由於 NAND 快閃記憶體的體積小,相對於硬碟來說並不會因為使用多通道並聯的平行架構而 增加體積和散熱成本,因此 SSD 內部會有許多通道平行連接到控制晶片藉以提升 效能。然而增加平行的通道雖然可以增加存取的頻寬,但是如果這些通道的常常 閒置而使得利用率不高的話就無法表現出應有的效能。SSD 內部的平行架構就像 是微型的 RAID-0[8],資料擺放的方式會做 Striping,平均分攤在每一個傳輸通道 的快閃記憶體模組上,如此可以使每一個通道被使用的機率都一樣,增加存取的 平行度而使傳輸通道的利用率上升。

而這種平行概念最簡單的實作方式就是讓這些通道同步運作,每一個通道都 在相同的位址同步執行相同的操作,在同一時間對全部的通道做存取,除了可以 提升讀取與寫入資料的效率,連快閃記憶體內部資料重整的效率也提高了。這種 處理方式對於較大的 request 來說確實可以增加存取資料的頻寬,有 N 個平行通 道,效能就會提升將近 N 倍;但是對於小的 request 來說,原本若只需要一個通 道便可以滿足存取的需求,但是卻要使所有的通道都啟動並做存取,那些原本不 需要使用的通道所做的存取動作是沒有義意的,不但沒有提升存取的速度,反而 會導致快閃記憶體模組內部空間因為額外無意義的寫入造成空間利用率不佳,使 得內部資料重整的頻率增加,拖累整體的效能。事實上在多工(multitasking)系統 環境下(windows、linux),對於儲存裝置的存取會有很多小寫入動作,即使這些 小寫入動作是一個接一個連續,但是由於多工的關係,許多程序的小寫入動作會 混雜交錯在一起,儲存裝置收到的存取模式就變成小資料的隨機寫入動作。因此 對於複雜多工系統所需要的 SSD 來說不只是大範圍的連續資料存取效能要好,小 資料的隨機寫入也要有一定水準的需求。因此強迫每次存取都同步運作的方式並 不是一個很好的方法。

如果這些通道沒有強迫同步存取,不同通道可以同時對不同的位置做不同的

2

操作。在處理大的 request 時,所有的通道也是會同時啟動運作;而處理小的 request 也不會造成無意義的額外存取。但是在處理小的 request 時,只有啟動部 分的通道來完成寫入,使得其他未啟動的通道閒置而沒有運作,造成通道利用率

圖表 1: Channel utilization

通道同步運作會使得通道做出無意義的利用,通道不強迫同步運作會使得通 道閒置沒有利用。要提高效能就必須要提高通道的有效利用率。然而當其他通道 在忙碌的時候,閒置的通道應該要怎麼利用才能提升有效的利用?第一個困難在 寫入資料時的平行度,當寫入 request 所需要使用的通道正在忙碌於寫入上一個 request 時,因為受限於 striping 資料擺放的規則,不能將 request 寫入其他閒置 的通道。另一個困難是內部資料重整的平行度,當一個通道正在執行內部資料重 整的時候,其他的通道也會處於閒置的狀態。

加入緩衝區暫存記憶體可以提升平行度。若是要先跳過目前這個因為通道忙 碌而等待的 request 而先執行下一個 request,就需要一個緩衝區來暫時存放等待 的 request。當通道忙碌的時間很長,像是執行內部資料重整,那就需要較大的 緩衝區來存放一連串等待的資料,等到緩衝區滿了還是會造成通道閒置。因此加 入緩衝區雖然可以輔助增加 request 寫入平行度但並不能決執行內部資料重整時

3

的平行度,尤其是在處理小資料的隨機寫入動作,會使得內部資料重整的時間比 較長。而且加入大量的緩衝區會大量增加硬體成本與電能消耗。

使用動態的方式排列資料可以提升平行度。若是打破 striping 的資料排列方 式,將資料以動態的方式排列,把寫入的資料存放到其他空閒的通道,這樣子可 以提高寫入時的平行度,提高通道的利用率。但是相對的會破壞讀取的平行度,

我們相當重視連續資料讀取的效能,因此本研究不考慮破壞 striping 資料的擺放 方式。

本篇論文提出一套管理獨立通道的方法,整合了通道同步運作與獨立運作互 補的優點,除了解決同步運作所產生的空間利用率不佳的問題,也改善不同步運 作下通道利用率不佳的問題。有幾項特點如下:第一,高效能的連續資料讀取:

不破壞資料 striping 擺放,所以不犧牲大範圍連續資料讀取的效能(如電影、音樂 及圖片等多媒體的檔案操作)。第二,高平行度的寫入:這個管理演算法建立在 獨立的通道上,利用小小的緩衝暫存區來增加寫入的平行度,使不同通道可以盡 可能的同時寫入有意義的資料而不造成空間浪費。第三,高平行度的內部資料重 整:類似同步運作的通道,使所有通道同時進行內部資料重整,避免通道閒置進 而提升通道的利用率也提升 SSD 整體效能。最後,穩定的回應時間:使每一次內 部資料重整所花費的時間維持穩定在可容忍的時間內,讓內部資料重整所花的時 間受管制。

本論文其他部分的組成如下:下一章為 Background,將會說明 SSD 的軟硬體 架構、特性以及其他相關的研究。第三章將會介紹本論文所提出的通道管理方 法。第四章為模擬的實驗結果。最後一個章節為結論。

4

相關文件