• 沒有找到結果。

我們的演算法系統會是一個虛擬硬碟,當系統讀寫硬碟時,我們系統會 攔截系統 I/O 資料,由我們的系統(block driver)取代原本的硬碟驅動程 式。我們的系統架構如圖表 3 所示,硬體部分包含一個快閃記憶體,以及 一個硬碟。軟體部分(稱為 Block Driver)包含 3 個部份,分別為一個控制 快閃記憶體以及硬碟的 Driver,以及我們的演算法本身。

我們的硬體包含兩個部份,一個傳統硬碟以及一個快閃記憶體。傳統硬 碟在我們系統中扮演的角色為儲存裝置,儲存系統裡所有的讀寫資料,當 系統在快閃記憶體中找不到所需的資料時,才會到硬碟中讀取資料,如果 在快閃記憶體中可以讀取到所需資料時,硬碟會一直維持在 spin down 狀 態,硬碟維持啟動的時間長短將會跟我的演算法命中率相關。而快閃記憶 體在我們的系統中扮演的角色較類似 PC 系統裡的快取記憶體。在快閃記憶 體中,將會存放我們演算法所預測的資料,也就是我們預測硬碟中將來會 被系統讀取的資料,根據我們演算法會在適當時機點開始對未來系統的讀 取資料做出預測,然後會將這些演算法所預測的資料搬進快閃記憶體中,

當系統在未來讀取資料時,將會先到快閃記憶體中讀取,當系統所需的資 料不在快閃記憶體中時,才會到傳統硬碟中讀取資料。

我們演算法軟體的部份是一個 Block driver,用來取代系統原本的硬 碟驅動程式,攔截系統對虛擬硬碟的 I/O 動作,分為 3 個部份,其中包含 兩個需由系統提供的部份,分別為硬碟的驅動程式,以及快閃記憶卡的驅 動程式。硬碟的驅動程式用來控制我們系統中的硬碟資料讀寫;快閃記憶 卡驅動程式則用來控制快閃記憶卡的資料讀寫。第三部份則是我們演算法 部份。我們的演算法在 Block driver 中有三種作用,分別是仲裁、統計系 統讀取行為、預測系統未來讀取資料的角色,當系統 I/O 進來時,我們演 算法會判斷要到快閃記憶體或是硬碟中讀取資料;另一個功能是針對系統 讀取行為資料的統計,以做為預測將來資料的依據;另外演算法會根據統 計資料,預測將來系統將會讀取哪些資料。我們演算法會根據快閃記憶體 的 endurance 限制以及系統效率,決定何時開始針對讀取資料做出預測,

並將演算法預測出的資料搬進快閃記憶體中。

因此我們的演算法系統會分為兩個部份。第一部份處理正常的讀取動作 (圖表 3 紅色部份),我們演算法會將系統 I/O 過濾,一般的 I/O 讀寫將會 被直接到硬碟當中讀寫資料。當判斷系統讀取資料為隨機讀取時,我們的 演算將會啟動機制,先判斷系統所讀取的資料是否在快閃記憶體中,若資 料已在快閃記憶體中,則到快閃記憶體中讀取資料;若資料不在快閃記憶 體中,則到硬碟中讀取資料,完成系統讀寫資料的程序,同時將資料被讀 取的頻率記錄下來,做為系統預測的憑據。演算法第二部份(圖表 3 綠色部 份),當系統須做資料預測時機來到,系統會針對目前資料被讀取頻率的統 計資料,預測出未來將被讀取的 Cylinder 是那些,並根據演算法評估這些 Cylinders 是否值得被搬進快閃記憶體中,若 Cylinders 值得被搬進快閃記 憶體中,我們演算法才將這些 Cylinders 搬進快閃記憶體中。在這同時若 本次預測時機是在硬碟 Hot period 開始時,我們演算法還必須依據系統讀 取效能以及快閃記憶體 endurance 限制,設定下次系統須在次做預測的時 機,在系統讀取效能以及快閃記憶體 endurance 限制之間取得最佳的平衡 點。

圖表 3 System structure of our thesis

相關文件