1. 程式人生 > >SSD之OP詳解

SSD之OP詳解

當你買了一塊SSD,有沒有發現其實你得到的容量並不是SSD標稱的容量。比如你買的是128GB的SSD,你的得到的可使用容量肯定小於128GB,一般在120GB,甚至更小。到底是誰“偷”走了本應該屬於你的容量呢?經過不懈努力,警察蜀黍已經找到“真凶”,就是OP,全稱Over-Provisioning,中文名字叫做“預留空間”。 1. 預留空間OP是什麼? 當一塊SSD的資料寫滿時,需要額外的空間在啟動垃圾回收之前接受新寫入的資料,這塊額外的空間,我們就稱為預留空間。當然,這塊預留空間是對使用者不可見的。 預留空間主要分為兩個部分: 在這裡插入圖片描述 1)由於標稱容量與NAND快閃記憶體計算差異造成的本徵預留空間OP1。市場上SSD標稱的容量是按照千進位制(1000)來計算的,但是NAND快閃記憶體的容量是按照1024計算的。我們簡單列個式子計算一下: 市場SSD標稱 1GB(GigaByte)= 1000MB= 10001000KB= 1000

10001000Byte= 10^9Byte (1,000,000,000Byte). NAND快閃記憶體 1GB(GibiByte)= 1024MB= 10241024KB =102410241024Byte =2^30Byte (1,073,741,824Byte).

這兩個計算方式之間正好相差7.37%。所以說SSD本徵的預留空間就有7.37%。

2)SSD由於效能要求而預留空間OP2,這部分也是標稱OP。 這個部分預留空間主要用於垃圾回收GC,儲存SSD主控的韌體(Firmware),備用資料塊(Spare Blocks)等。 標稱預留空間OP=(SSD物理總容量-使用者資料空間)/使用者資料空間 在這裡插入圖片描述 從上面這個表格中我們看到標稱預留空間(Marketed OP)為0%的時候,其實這時的內部仍然有7%的本徵預留空間。

2. 預留空間OP有什麼好處? 預留空間犧牲了使用者資料空間,那TA要是再沒有什麼好處,使用者就真的要崩潰咯。

其實預留空間OP的好處有很多: 1)提高寫入效能 由於有預留空間的存在,寫入資料時並不需要經常做垃圾回收,加快了寫入速度。

2)降低寫放大(WA, Write Amplification) 寫放大WA這個名詞最早是Intel和SiliconSystems在2008年提出。

寫放大的計算方法: WA=最終寫入快閃記憶體的資料量/Host寫入的資料量

舉個簡單的例子:當Host要寫入4KB資料時,最壞的狀況就是一個數據塊中沒有可用空間,但是呢,這個資料塊中有一些無效資料內容能夠被擦除,這時主控的做法就是,把這個資料塊中全部的資料搬到快取,然後擦除這個塊,在快取裡update整個資料塊的內容,更新完成後,把最新的資料搬回資料塊,整個操作造成的寫放大: Host只需寫4K資料,卻帶來了整個資料塊(假設1024KB)的寫操作,寫放大就等於1024/4=256倍。

3)增加快閃記憶體使用壽命 減少資料的搬遷,就是減少NAND快閃記憶體的讀寫次數,增加使用壽命。

4)資料保護 主要提供ECC之外的資料保護,比如R.A.I.S.E.(Redundant Array of Independent Silicon Elements),由於用的少,這裡就不詳細介紹了。

3. 資料說話 用真實的測試資料來看看預留空間對SSD效能的影響。 1)128KB持續寫與預留空間OP的關係 在這裡插入圖片描述 從圖中紅色線結果看出,預留空間對持續寫的影響不大。 2)4KB隨機寫與預留空間OP的關係 在這裡插入圖片描述 從圖中紅色線結果看出,預留空間對隨機寫的影響是線性增加的。