您好, 訪客   登錄/注冊

基于固態硬盤的閃存轉換層概述

來源:用戶上傳      作者:

  摘要:近年來,基于閃存的固態硬盤SSD(Flash-based Solid State Disk)在存儲市場中已占據了主要地位。隨著NAND Flash 工藝技術的快速發展,容量不斷提升,SSD中實現的閃存轉換層FTL(Flash Translation Layer)可克服硬件技術上的限制,在軟件算法上來解決固態盤壽命和可靠性的問題,其主要功能包括地址映射、磨損平衡及垃圾回收等。本文主要FTL不同的實現機制進行了分析和概述。
  關鍵詞:固態硬盤;FTL;地址映射;磨損平衡;垃圾回收
  1.前言
  隨著存儲技術的發展,相對于傳統的機械硬盤,SSD在讀寫速度、功耗、體積、防震能力、移動性等方面體現出優勢。當前使用較為普遍的是基于NAND 閃存的SSD,與之前的存儲介質不同,NAND閃存以頁、塊、平面、晶圓的結構組織,可執行讀、寫、擦除操作[1]。頁大小一般為2KB/4KB/8KB,是讀寫操作的基本單位;塊大小一般為64/128個頁,是擦除的基本單位?;陂W存讀寫擦除粒度和時序不同、寫操作異地更新且擦除次數有限等物理特性,在SSD中設計了閃存轉換層FTL,它位于文件系統和物理介質之間,把閃存的操作虛擬成以傳統硬盤的扇區進行操作,以適應當前的文件系統。FTL一般由地址映射、垃圾回收和磨損平衡三個模塊組成,在系統啟動時構造存放邏輯地址和物理地址之間映射信息的登記表,并在運行過程中進行維護。
  2.地址映射
  基于閃存塊的特殊結構,從閃存塊外訪問到最小的存儲單位需要經歷多個層級,而每一次更新現有的數據都需要另選閃存頁重寫并將原有數據區擦除掉。所以,要構建一個固態盤對外的邏輯地址來將固態盤內部的實際物理地址屏蔽掉,而地址映射就是將主機發出的邏輯地址轉換成固態存儲盤內部的實際物理地址,根據映射顆粒度可分為頁級映射、塊級映射和混合映射。
  頁級映射以物理頁為基本映射單元,邏輯頁與物理頁的對應是全相聯的,每個邏輯頁都有一個映射關系,邏輯頁的數據可以存放在任何位置的物理頁面中。空間利用率高,可以比較快速地查找到邏輯地址所對應的物理地址并且操作相對簡單。但是,映射表作為需要經常讀寫的元數據,在固態盤運行時需要將其放在內存中,頁級映射的映射表較大,占用了較大的內存空間。
  塊級映射是以物理塊為基本映射單元,邏輯頁與物理頁是組相聯的,邏輯頁的數據只能存放在某個物理塊特定偏移的物理頁中。每個塊都有一個映射關系,而一個邏輯塊通常包括幾十上百多個邏輯頁。相對于頁級映射,塊級映射的映射表較小,其大小通常是頁級映射的映射表的幾十上百分之一,只占用較小的內存空間,可以都放入到內存,映射關系的查找也較快。但是,為了維護塊內映射數據頁的偏移量,塊級映射在進行垃圾回收過程中需要執行大量的數據塊合并操作,需要進行大量的復制和移動,會存在更新沖突的問題,從而觸發更多的垃圾回收過程,具有較差的隨機小寫操作性能。
  混合映射是把所有的物理塊分成兩個日志塊和數據塊兩個部分,日志塊采用頁級映射策略,數據塊采用塊級映射策略。在混合映射中,將初次寫入的數據請求寫到數據塊中,可節省映射表空間;當該數據需要更新時,則將更新的頁寫到日志塊,可提高空間的利用率。但是,因為日志塊的數量較少,僅占閃存容量的3%。當日志塊區滿時,將日志塊和數據塊進行合并,多次的合并操作會降低固態盤的整體性能。
  3.磨損平衡
  NAND閃存擦除次數一定,對相同的存儲單元不斷地進行編寫和擦除會導致該存儲單元受到永久性的物理損害。為了有效避免對固態盤中某一區塊的頻繁讀寫造成該區塊的老化加速,磨損平衡可以將擦除/寫入循環平均地分配到所有存儲單元中,使數據平均地分布在整個內存單元中,而不會造成某一區塊成為信息讀寫的熱點從而影響到整個SSD的壽命[2]。
  針對磨損平衡算法,將固態盤中塊單元可以分為數據塊和空閑塊。數據塊是閃存的主要部分,受到磨損平衡算法和數據存儲器的影響;空閑塊的數目在整個閃存中占百分之二,主要用于緩沖該算法,閃存會根據磨損平衡算法在數據塊池和空閑塊池相互轉換。FTL不僅實現對邏輯地址到物理地址映射的管理,同時對閃存和無效塊映射進行擦除計數管理。每個塊的擦除次數都會被記錄在一個叫做擦除計數表(ECT)的表格中。當塊進行一次擦除時,ECT都會將該塊的擦除次數自動加1。在做磨損平衡會瀏覽該計數表,以此來決定哪些塊必須從數據塊池轉移到空閑塊池,或者相反。當需要轉換操作時,轉換表會把邏輯塊地址重新分配給物理塊地址,同時在新的塊組中重新組合塊地址和擦除計數值。
  磨損平衡算法通常有兩種類型:動態磨損平衡和靜態磨損平衡。動態磨損平衡只處理動態數據,如數據改寫時才會觸發數據遷移的動作。靜態磨損平衡可以均衡靜態數據,當后臺任務發現損耗較低的靜態數據時,將其遷移到其他的數據塊上并將這些快放入空閑池中使用。經典的磨損均衡算法都是整合了動態和靜態的功能,雙池算法就是將物理塊分成了冷區和熱區,在最初時采用鏈表的方式將空閑塊組成一個隊列完成動態磨損均衡,同時記錄下每個塊的寫入次數,當熱區塊的最大擦除次數超出冷區塊的最小擦除次數一個閾值之后,則將熱區的最大擦除次數的那個塊放入冷區,并將冷區的塊置為空閑。
  4.垃圾回收
  固態硬盤不具備直接覆蓋舊數據的能力[3],如果想讓存儲無用數據的塊寫入新數據,就需要先把整個塊刪除,才可以寫入新的數據。所以,當操作系統中刪除文件時,它只是在其內部文件表中做標記表示該文件已刪除,當前無效的數據仍然保留在硬盤上,這樣就會產生大量的失效數據,成為數據垃圾,這時就需要進行垃圾回收。對于固態硬盤來說,垃圾回收相當于碎片整理功能,把現存數據重新轉移到其他閃存位置,并且把一些無用的數據徹底刪除。當固態盤進行垃圾回收操作時,由于內部的數據搬移操作,固態盤對外的性能表現會急劇下降,所以一般選擇系統長時間沒有響應,或讀寫操作較少時進行垃圾回收,避免影響性能。
  5.結語
  本文主要分析了固態硬盤SSD中地址映射、磨損平衡和垃圾回收三大閃存管理策略,FTL的這些軟件算法變更速度快,機動性高,升級容易,還可發展更多定制化服務??梢姡骺厮惴ǖ倪M步則可以更好地發揮SSD的性能,所以需要更加優秀的FTL算法,而這將是我們未來研究所需面臨的挑戰之一。
  參考文獻
  [1]陸游游,舒繼武.閃存存儲系統綜述[J].計算機研究與發展,2013,50(1):49-59.
  [2]潘沁,周新志,魏剛.磨損均衡算法在NAND Flash管理中的改進[J].微計算機信息,2007,23(7):301-302.
  [3]杜晨杰,李君,姚英彪.緩沖區管理層對固態盤的有效性研究[J].浙江萬里學院學報,2017,30(2):72-77.
  作者簡介:陳妍霖(1994-),女,重慶市人,哈爾濱市黑龍江大學,信息與通信工程專業2017級,碩士在讀,研究方向:嵌入式系統;程海(1979-),男,黑龍江哈爾濱人,博士,副教授,研究方向:保密通信,信息安全;
  通訊作者:劉嵩巖(1969-),男,黑龍江哈爾濱人,博士,副教授,研究方向:嵌入式系統。
轉載注明來源:http://www.hailuomaifang.com/1/view-14850401.htm

?
99久久国产综合精麻豆