精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎么使用SSD才能避免越寫越慢?

SSDFans ? 來源:未知 ? 作者:胡薇 ? 2018-06-02 10:58 ? 次閱讀

垃圾回收(Garbage Collection,GC)是FTL的一個重要任務。我們虛構一個小小的SSD空間,來講垃圾回收原理,以及與之緊密聯系的WA(Write Amplification,寫放大)和OP (Over Provisioning,預留空間)等概念。

麻雀雖小五臟俱全。翠花,上麻雀。

圖1-1 虛構的小小SSD空間

我們假設該SSD底層有4個通道(Channel,CH0-CH3),連接著4個Die (每個Channel上的Die可并行操作),假設每個Die只有6個閃存塊(Block0-Block5),所以一共24個閃存塊。每個閃存塊內有9個小方塊,每個小方塊的大小和邏輯頁大小一樣。24個閃存塊中,我們假設其中的20個閃存塊大小為SSD容量,就是主機端看到的SSD大小;另外4個閃存塊是超出SSD容量的預留空間,我們稱之為OP (Over Provisioning)。

好,一個SSD擺在我們面前,蛋蛋開始寫小電影了。

圖1-2 主機寫入4個邏輯頁數據后

我們順序寫入4個邏輯頁,分別寫到不同通道上的Die上,這樣寫的目的是增加底層的并行性,提升寫入性能。

用戶繼續順序寫入,固件則把數據交錯寫入到各個Die上,直到寫滿整個SSD空間(主機端看到的)。如下:

圖1-3 用戶空間寫滿后的SSD

整個盤寫滿了(從用戶角度來看整個用戶空間寫滿了,但在閃存空間,由于OP的存在,并沒有寫滿),如果蛋蛋想放入更多的小電影,怎么辦?不能怎么辦,只能把看過的小電影割愛刪除了,騰出空間放新的小電影。

繼續拷入小電影。

圖1-4 刪除4個邏輯頁后再次寫入4個邏輯頁

假設還是從邏輯頁1開始寫入。這個時候,SSD會把新寫入的邏輯頁寫入到所謂的OP空間。對SSD來說,不存在什么用戶空間和OP空間,它只看到閃存空間。主機端來數據,SSD就往閃存空間寫。上面有人紅了,怎么回事?因為邏輯頁1-4的數據已更新,寫到新的地方,那么之前那個位置上的邏輯頁1-4數據就失效了,過期了,變垃圾了。用戶更新數據,由于閃存不能在原位置覆蓋寫,固件只能另找閃存空間寫入新的數據,因此導致原閃存空間數據過時,形成垃圾。

繼續順序寫入,紅色方塊越來越多(垃圾數據越來越多)。所有閃存空間都寫滿后,小SSD世界就是下面這個樣子:

圖1-5 閃存空間寫滿

等所有Die上的Block 5寫滿后,所有Die上的Block 0也全紅了(這些數據都是垃圾)。

現在不僅整個用戶空間都寫滿,整個閃存空間都滿了。如果用戶想繼續寫入后續的邏輯頁(36之后的) ,怎么辦?

這個時候,就需要垃圾回收了。我們暫時從之前的SSD系統中走出來,看看什么是垃圾回收。

這里需要說明的是,實際中是不會等所有閃存空間都寫滿后才開始做GC的,而是在滿之前就觸發GC,這里只是為描述GC而做的假設。

垃圾回收,就是把某個閃存塊上的有效數據(圖4-19中綠色的)讀出來,重寫,然后把該閃存塊擦除,就得到新的可用閃存塊了。

圖1-6 垃圾回收示例

圖中,Block x上面有效數據為A,B,C,Block y上面有效數據為D,E,F,G,紅色方塊為無效數據。垃圾回收機制就是先找一個可用Block z,然后把Block x和Block y的有效數據搬移到Block z上面去,這樣Block x和Block y上面就沒有任何有效數據,可以擦除變成兩個可用的閃存塊。

圖1-7 擦除垃圾數據塊變成可用數據塊

回到我們的小小SSD系統中來。

上例中,由于我們是順序寫入,垃圾集中在Block 0上,上面沒有任何有效數據,我們把它們擦除就可以騰出新的寫入空間。用戶就可以把新的數據寫入到垃圾回收完成的Block 0上了。 從這個例子中,我們可以看到:順序寫,即使是閃存空間寫滿后的寫(Full Drive寫),性能也是比較好的,因為垃圾回收可以很快完成(也許僅僅只要一個擦除動作)。

但現實是殘酷的:用戶寫入數據,更多的可能是隨機寫入數據。下面是一個閃存空間經歷隨機寫滿后的樣子:

圖1-8 隨機寫滿閃存空間后的SSD

用戶如果繼續往SSD上寫入數據,那么SSD怎么處理?當然需要做垃圾回收。 可世道變了,SSD內部狀況比之前看到的復雜多了,垃圾數據分散在每個閃存塊上,而不是集中在某幾個閃存塊上。這個時候,如何挑選需要回收的閃存塊呢?是的,挑垃圾比較多的閃存塊來回收,因為有效數據少,要搬移的數據少,這樣騰出空閃存塊的速度快。

對上面每個閃存塊的垃圾數(紅色方塊)做個統計:

表1-1 每個閃存塊上垃圾數據統計

由于我們是同時往4個通道上寫,我們需要每個通道都有一個空閑的閃存塊,因此,我們做垃圾回收時,不是回收某個閃存塊,而是所有通道上都要挑一個。一般選擇每個Die上塊號一樣的所有閃存塊做垃圾回收。上例中,Block 0上的垃圾數量最多(24個紅色方塊,最多),因此我們挑Block 0作為垃圾回收的閃存塊(這里忽略PE count等因素,只看垃圾數)。 回收完畢,我們把之前Block 0上面的有效數據(綠色方塊)重新寫回到這些閃存塊(這里,我們假設回收的有效數據和用戶數據寫在同一個閃存塊,實際,它們可能是分開寫的)。

圖1-9 做完垃圾回收后的BLOCK0可以繼續寫入數據

這個時候,有了空閑的空間(白色方塊),用戶就可以繼續寫入數據了。

江湖傳言:SSD越寫越慢。沒錯,其實這是有科學依據的:可用閃存空間富裕時,SSD是無需做GC的,因為總有空閑的空間可寫。SSD使用早期,由于沒有觸發GC,無需額外的讀寫,所以速度很快。慢慢的會發現SSD變慢了,主要原因是SSD需要做GC。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SSD
    SSD
    +關注

    關注

    20

    文章

    2851

    瀏覽量

    117231
  • 固態硬盤
    +關注

    關注

    12

    文章

    1452

    瀏覽量

    57269

原文標題:固態硬盤越寫越慢是真的嗎?

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SSD1289寄存器函數

    ;}這是一個例程的關于SSD1289寄存器的一個函數,有兩點不明白:1、這個 (u32)0x6c000000中的0x6c000000代表什么,為什么有這個數字,難道涉及SSD1289的寄存器地址范圍?2
    發表于 03-21 21:12

    安卓手機越慢。這是為什么呢?

    根據第三方的調研數據顯示,有77%的Android手機用戶承認自己曾遭遇過手機變慢的影響,百度搜索“Android 卡慢”,也有超過460萬條結果。在業內,Android手機一直有著“越慢
    發表于 09-05 09:50

    我是用ssd做引導盤啟動,怎么做才能用網口讀寫ssd里面的文件

    我是用ssd做引導盤啟動,怎么做才能用網口讀寫ssd里面的文件
    發表于 04-21 18:18

    急求!!!vi運行時間久,運行速率越慢怎么辦

    了其他所以的程序和窗口,不會存在內存,cpu負荷不過來的問題。挺奇怪的是一模一樣的vi我放在一臺配置較差的筆記本上跑,傳輸頻率特別穩,半小時除了鼠標沒移動的時候,其他基本都是500hz的頻率收數據。兩臺電腦labview我是安裝的同一個版本,真的是不懂為什么一臺高配電腦運行越慢
    發表于 05-01 14:51

    ALIENTEK開發板實驗28里面的實時時鐘越慢

    這個實時時鐘越慢啊,應該是軟件上面的問題,請問應該修改那個參數啊,還是說這個STM32的RTC就是不準確的啊??????請高手指點迷津!
    發表于 03-09 04:35

    EMWIN越慢的原因是什么?

    在LPC1788上跑了個EMWIN,前面幾次切換畫面(或其他動作)都很快,但在后面會越來越慢,半天沒響應,請問是怎么回事?(就是只有兩個畫面也會這樣)
    發表于 08-25 08:02

    SSD用久了速度會下降,這究竟是為什么呢?

    SSD用久了速度會下降,這究竟是為什么呢?造成SSD越慢的原因有哪些呢?
    發表于 06-18 08:49

    為什么電腦會越慢

    小白問題如“百度與360衛士同時占據任務欄”的喜劇場景讓小編哭笑不得。所以這一次,小編再次不服,于是DIY帶你走進科學的欄目又來了:為什么您的電腦越慢
    的頭像 發表于 10-23 11:06 ?4923次閱讀

    讀、、擦除是SSD對NAND的三大基本操作

    通過一系列的介紹和實驗驗證,我們看到了TRIM的價值和實現原理。在TRIM的幫助下,NVMe SSD的GC等操作效率更高,進而達到降低放大,提高產品性能和壽命的效果。
    的頭像 發表于 04-28 11:39 ?1w次閱讀

    SSD越慢怎么辦

    SSD早已是主流攢機的標配,有些更陪伴小伙伴有一段日子了,有些問題也開始暴露出來了,最明顯的當然就是明顯降速問題。為啥SSD的速度。特別是存儲速度會下降呢?有沒有啥方法能它的速度恢復正常,至少讓降速別那么夸張呢?
    的頭像 發表于 05-20 14:37 ?3143次閱讀

    SSD越慢是什么原因

    1月14日,Intel官微又雙叒來科普了。
    的頭像 發表于 01-14 11:01 ?2050次閱讀

    SSD為什么會越慢,究竟是哪方面的原因

    首先SSD的寫入方式意味著它無法直接覆蓋數據,全新的SSD因為此前無數據可以隨意寫入,但使用一段時間后,SSD就需要先進行空間回收擦除再進行寫入,會導致速度變慢。
    發表于 01-14 11:41 ?1244次閱讀

    如何衡量SSD的壽命水平?SSD硬盤多久才能寫死?

    隨著SSD閃存才MLC轉向TLC、QLC,不僅寫入性能越來低,壽命、可靠性也愈發引人關注,總有網友擔心SSD會被死,所以寫入壽命很重要。 如何衡量
    的頭像 發表于 11-27 15:54 ?6294次閱讀

    SSD越慢的原因分析

    每當選購電腦時,你會發現,配置存儲介紹總是不一樣,要么純固態(SSD),要么純機械,要么固態+機械的組合硬盤。
    發表于 01-21 10:11 ?2233次閱讀
    <b class='flag-5'>SSD</b><b class='flag-5'>越</b>用<b class='flag-5'>越慢</b>的原因分析

    憶聯SSD智慧算法關注用戶痛點,為消費級SSD帶來極致性能與功耗體驗

    隨著智能設備的演進,PC的形態越來豐富,超極本、游戲本、PC平板二合一等不斷涌現,PC端對SSD性能、功耗的要求也日益增高,用戶面臨SSD越慢
    的頭像 發表于 01-04 10:52 ?1482次閱讀