SSD的組成:主控、閃存、緩存單元(RAM、SRAM、DRAM可選)
主控的作用:1、前端實現標準接口,與主機通信(SATA、SAS、PCIe接口); 2、后端實現與閃存的通信;3、運行SSD內部FTL算法
? ? ? ? SATA接口執(zhí)行AHCI協(xié)議;PCIe執(zhí)行NVMe協(xié)議;
閃存:非易失性存儲器,存儲單元包括SLC、MLC、TLC(分別存儲1bit、2bit、3bit數據)
?????????一個閃存有若干個Die(或者LUN)連接通道,每個Die有若干個Plane(常見的1、2、4個),每個Plane有若干個Block,每個Block有若干個Page,每個Page對應一個Wordline,每個Wordline有成千上萬個存儲單元組成
? ??????閃存的功能:讀、寫、擦(不能覆蓋寫,要先擦除;擦除以Block為單位,讀寫以Page為單位)
? ??????閃存的問題:1、閃存壞塊 ;2、讀干擾;3、寫干擾;4、存儲單元間的耦合;5、電荷泄露
SSD前端通信:通過SATA、SAS和PCIe等接口與主機相連,實現對應的ATA、SCSI和NNMe等協(xié)議
SSD后端通信:遵循ONFI或者Toggle協(xié)議,與閃存通信
FTL算法:1、壞塊管理;2、地址轉換;3、垃圾回收;4、磨損均衡;5、讀干擾處理;6、數據保持
????????壞塊管理:閃存天生有壞塊、隨著SSD的使用,壞塊越來越多。壞塊的癥狀是擦寫失敗或者讀失?。‥CC不能糾正數據錯誤),采用略過策略或替換機制。略過策略導致并行度不高,替換機制有木桶效應,受限于較差的Die
? ? ? ? 地址轉換:映射表,完成主機的邏輯地址到閃存的物理地址的轉換,映射表大小一般是SSD容量的1/1024。映射表存放在主機內存、SSD半載DRAM(常用)、或內存中。映射的方式有三種:塊映射、頁映射、混合映射。塊映射的特點是有較好的大尺寸讀寫性、較差的小尺寸數據的寫性能。頁映射的特點是有較好的讀寫性能,缺點是需要更多的空間存儲映射表?;旌嫌成渌杩臻g和性能介于塊映射和頁映射之間。
????????垃圾回收:垃圾是由于數據異地更新,原始數據無效產生的。垃圾回收是把一個或多個Block上的有效數據搬出來,集中寫到某個空閑的的Block上,有效數據搬走后,擦除這些Block。垃圾回收會引起寫放大(WA)寫放大會磨損閃存、占用帶寬,還會磨損閃存,影響壽命,寫放大越小越好。預留空間(OP)越大,寫放大越小,OP越大,每個閃存塊的有效數據越小,垃圾越多,重新寫入的數據越少,寫放大就越小。
? ? ? ? 磨損均衡:閃存有壽命,每個閃存塊擦寫次數有限制,FTL要保證每個閃存塊均衡寫入。分為動態(tài)磨損平衡和靜態(tài)磨損平衡,動態(tài)磨損平衡指將熱數據寫到年輕的塊上;靜態(tài)磨損平衡指將冷數據寫到年老的塊上(冷數據,不經常更新的數據;熱數據,經常更新胡數據;年老塊,擦寫次數較多的閃存塊;年輕塊,擦寫次數較少的閃存塊)