成年人在线免费观看/超碰av导航/成人久久久久久/国产极品性感美女在线 - 99久久婷婷国产综精品喷水

新聞動態

NEWS

公司新聞

首頁 > 新聞動態 > 公司新聞

SSD背后的秘密:SSD基本工作原理

2019/12/6

SSD主要由SSD控制器,FLASH存儲陣列,板上DRAM(可選),以及跟HOST接口(諸如SATA,SAS, PCIe等)組成。

SSD主控通過若干個通道(channel)并行操作多塊FLASH顆粒,類似RAID0,大大提高底層的帶寬。舉個例子,假設主控與FLASH顆粒之間有8個通道,每個通道上掛載了一個閃存顆粒,HOST與FLASH之間數據傳輸速率為200MB/s。該閃存顆粒Page大小為8KB,FLASH page的讀取時間為Tr=50us,平均寫入時間為Tp=800us,8KB數據傳輸時間為Tx=40us。那么底層讀取最大帶寬為(8KB/(50us+40us))*8 = 711MB/s,寫入最大帶寬為(8KB/(800us+40us))*8 = 76MB/s。從上可以看出,要提高底層帶寬,可以增加底層并行的顆粒數目,也可以選擇速度快的FLASH顆粒(或者讓速度慢的顆粒變快,比如MLC配成SLC使用)


HOST是通過LBA(Logical Block Address,邏輯地址塊)訪問SSD的,每個LBA代表著一個Sector(一般為512B大小),操作系統一般以4K為單位訪問SSD,我們把HOST訪問SSD的基本單元叫用戶頁(Host Page)。而在SSD內部,SSD主控與FLASH之間是FLASH Page為基本單元訪問FLASH的,我們稱FLASH Page為物理頁(Physical Page)。HOST每寫入一個Host Page, SSD主控會找一個Physical Page把Host數據寫入,SSD內部同時記錄了這樣一條映射(Map)。有了這樣一個映射關系后,下次HOST需要讀某個Host Page 時,SSD就知道從FLASH的哪個位置把數據讀取上來。

對絕大多數SSD,我們可以看到上面都有板載DRAM,其主要作用就是用來存儲這張映射表。也有例外,比如基于Sandforce主控的SSD,它并不支持板載DRAM,那么它的映射表存在哪里呢?SSD工作時,它的絕大部分映射是存儲在FLASH里面,還有一部分存儲在片上RAM上。當HOST需要讀取一筆數據時,對有板載DRAM的SSD來說,只要查找DRAM當中的映射表,獲取到物理地址后訪問FLASH從而得到HOST數據.這期間只需要訪問一次FLASH;而對Sandforce的SSD來說,它首先看看該Host Page對應的映射關系是否在RAM內,如果在,那好辦,直接根據映射關系讀取FLASH;如果該映射關系不在RAM內,那么它首先需要把映射關系從FLASH里面讀取出來,然后再根據這個映射關系讀取Host數據,這就意味著相比有DRAM的SSD,它需要讀取兩次FLASH才能把HOST數據讀取出來,底層有效帶寬減半。對HOST隨機讀來說,由于片上RAM有限,映射關系Cache命中(映射關系在片上RAM)的概率很小,所以對它來說,基本每次讀都需要訪問兩次FLASH,所以我們可以看到基于Sandforce主控的SSD隨機讀取性能是不太理想的。


一塊剛買的SSD,你會發現寫入速度很快,那是因為一開始總能找到可用的Block來進行寫入。但是,隨著你對SSD的使用,你會發現它會變慢。原因就在于SSD寫滿后,當你需要寫入新的數據,往往需要做上述的垃圾回收:把若干個Block上面的有效數據搬移到某個Block,然后擦掉原先的Block,然后再把你的Host數據寫入。這比最初單純的找個可用的Block來寫耗時多了,所以速度變慢也就可以理解了。

在SSD內部,有一種叫磨損平衡(Wear Leveling,WL)的機制來保證這點。
WL有兩種算法:動態WL和靜態WL。所謂動態WL,就是在使用Block進行擦寫操作的時候,優先挑選PE 數低的;所謂靜態WL,就是把長期沒有修改的老數據(如前面提到的只讀文件數據)從PE數低的Block當中搬出來,然后找個PE 數高的Block進行存放,這樣,之前低PE數的Block就能拿出來使用。
下面這張圖詮釋了無WL,動態WL和靜態WL下的FLASH耐久度的區別 (假設每個Block最大PE數為10,000)

可見,使不使用WL,以及使用何種WL算法,對SSD的壽命影響是很大的。


請關注云儲微信
深圳云儲科技有限公司? 工廠地址:深圳市龍華新區龍觀東路28號樺浩泰工業園E棟?? 版權所有?粵ICP備12002917號-1粵公網安備 44030902003735號