SSD結構與工作原理

yundanfengqing_nuc發表於2020-10-29

SSD主要有三部分構成:主控(Controller), DRAM快取和NAND快閃記憶體。

主控對於SSD的作用,類似CPU對於電腦的作用,屬於大腦中樞,擁有最高指揮權,管理NAND快閃記憶體,實現資料的儲存。

 

DRAM快取是Host與SSD主控之間的資料中轉站。在Host寫入資料時,並不會直接交給主控去寫入NAND快閃記憶體,而是先把資料丟到DRAM快取中,之後再傳到主控內部的快取中,最後再由主控寫入NAND快閃記憶體,這樣做的目的是提高資料傳輸的效率。

 

是不是有點不太好理解?沒關係,舉個簡單的例子:(已經理解的同學可以略過這部分)

比如說,在網購的時候,一件A商品會產生10元郵費,如果要購買5件A商品,我們一次購買5件呢?還是分5次購買呢?很顯然,肯定會一次購買5件呀,這樣只需要付一次郵費(每個人都很聰明,我這裡只是舉個例子哈)。
同理,如果Host每發一筆資料,不管傳輸的資料大小,主控都直接響應,然後寫資料到NAND快閃記憶體,這時主控會花費了大量的精力去處理瑣碎的事情,致使SSD表現不盡如人意,最終被嫌棄。SSD又一次發揮聰明才智,將DRAM這一干將招致麾下,並給DRAM派了個任務量,在Host傳輸資料時,先送到DRAM手裡,如果沒有達到任務量,就不要給領導-主控彙報了。這樣大大地降低了主控的負擔,提高了SSD處理資料的效率。

NAND快閃記憶體是資料歸屬地,NAND顆粒的存在,賦予了SSD儲存資料的使命。為了提高儲存的效能,主控會通過不同的通道(Channel)操作NAND快閃記憶體。

DRAM與NAND的結構與原理會在後續文章中詳細介紹,今天主要分享SSD的司令官-主控。

由於Host和NAND快閃記憶體兩位人士,性格迥異,對資料處理的方式完全不一樣。此時就需要領導者-主控登場了,發揮管理智慧,打造一支和諧共贏的團隊,實現儲存資料的使命。

對於一個稱職的主控,需要有能力完成兩項艱鉅的任務:
1. 為Host和NAND提供適當的對接介面(Interface)以及協議(protocol);
2. 高效地處理資料,優化傳輸速率,同時保證資料的完整性。

目前主流SSD主控架構如下圖:

 

主要有三大部分組成:與Host對接的介面(Host interface), 快閃記憶體轉換層FTL以及快閃記憶體對接介面(Flash interface)。

Host interface採用的協議(protocol)包括SATA,PCIe/NVMe SSD協議。

 

快閃記憶體轉換層FTL是主控的核心部分,主要實現磨損平衡(Wear-leveling), 垃圾資料回收(Garbage Collection), 壞塊管理(Bad Block Management)和資料糾錯處理(ECC, Error Correction Code)。

 

Flash interface包括了SSD主控的flash controller,用來控制主控與NAND快閃記憶體之間的資料傳輸。

 

NAND快閃記憶體是資料歸屬地,NAND顆粒的存在,賦予了SSD儲存資料的使命。為了提高儲存的效能,主控會通過不同的通道(Channel)操作NAND快閃記憶體。

 

 

相關文章