這篇宅龍本來想跟另外一個主題合併起來,但是寫完以後還是決定讓它獨立一篇出來,以免看文章看到睡著~
目前市場上你會找到的四種不同 儲存顆粒架構類型,這邊從最快的開始列舉:
SLC
MLC
TLC
QLC
這個是各位現在去市面上購買SSD最常看到的主打重點,主要是因為儲存顆粒類型對價格,速度 及 可用壽命都會有很明顯的影響。請參考下表:
這表內最重要的參數指標其實是它的擦寫次數,很明顯的可以觀察到,隨著資料密度增加,SSD 顆粒的壽命會呈現暴跌式的下降,這其中有很多技術原理在,宅龍在這邊就不講太多理論問題,我們還是著重在實用面。
SSD 的設計壽命這麼短,想當然耳,我們當然得在設計上盡可能幫它續命,這時候就輪到前面我們提過的 Cache 機制,Cache 機制有三種:
Separate DRAM Cache
HMB System RAM Cache
In-Flash SLC cache
RAM Cache
我們先講前面兩種,獨立DRAM 快取 跟 HMB (Host Memory Buffer) 快取。
上述這兩種快取有一個共通的功能,就是放置 SSD 的 FTL Table,這張表非常重要,它基本上儲存所有資料的實際位置,有這塊FTL表可以減少你存取資料的時間,也可以避免你每次存取都得去掃一次快閃顆粒,這大幅的提升了顆粒壽命。
獨立DRAM的架構下,SSD控制器有一個直接連接的快取記憶體,想當然爾的可以獲得極高的處理速度,而在HMB架構下,則是從系統記憶體中切出64MB的大小來存放常用FTL表,速度會稍慢,畢竟多走了一條PCIe通道的傳輸。
獨立DRAM相較於HMB來說,還多了一個功能,就是作為讀寫資料的緩衝區,SSD 的存取單位是 Page,如果我們寫入SSD的資料不滿一個Page,那會導致兩個問題:
空間浪費
額外的資料存取耗損
這時候DRAM就會擔任實際寫入資料前的緩衝,DRAM 基本上只有正常與損壞兩個狀態,沒有存取壽命的問題,所以SSD控制晶片可以藉由DRAM確保每次寫入的資料都會等於或是接近一個Page的空間大小,同樣的,在對SSD做最佳化的時候,DRAM也會擔任資料處理的緩衝區。
SLC Cache 架構
這個架構宅龍找了一下資料,還滿有趣的,前面有說道,SLC雖然資料密度最低,但是存取速度最快。
而 SSD控制晶片 其實可以透過指令來改變每個 Page的資料密度...
也就是說,廠商可以人為的把MLC或是TLC的存取方式從 multi bits 模擬成 SLC 的 single bit,那就可以大幅提升資料寫入的效率,所以聰明的廠商就把快閃記憶體顆粒上的空間切一部份出來模擬成SLC,在寫入資料的時候,先將資料放在SLC區段內,等到 IO 閒置時,再將 SLC區塊內的資料倒入 實際的資料位址,只要你的單次資料量小於 SLC模擬區段大小,那你實際上在操作的存取效率就是SLC的速度。
但這樣搞法其實有個很大的缺點...
那就是即便你將 存取方式模擬成SLC,也不會改變顆粒本身是 MLC/TLC,甚至可能就只是 QLC 的事實,而這幾種顆粒類型的存取循環壽命都不長,也就是說,將高密度快閃記憶體模擬成低密度的SLC,實際上是一種利用率非常低效的作法,而且還會快速累積快閃記憶體區間的擦寫循環次數,可想而知,這樣搞法,這快閃記憶體顆粒肯定要加速死亡,事實上,宅龍就遇過國內一間廠商這樣搞過頭,導致他們家的SSD壽命沒有超過半年的...
所以有些財大氣粗的廠商,就在快閃記憶體顆粒內植入 真正的SLC區塊 來作為寫入快取,雖然 SLC區間內的資料寫入次數也是會飆高,但是因為 正港SLC 的擦寫循環次數非常高,所以基本上在產品使用壽命內,消費者都可以不用擔心這個快取區段的故障問題。
快取定生死...嗎?
介紹到這邊以後,你可以想像,當你有大量資料傳輸時,如果沒有快取來做為查找資料的索引,以及資料寫入的緩衝,那這支SSD只要不是SLC架構,基本上就已經被判了死刑。
等待著它的就是快速累積然後直接爆擦寫循環的命運,但也不是說沒有快取的 SSD就毫無用武之地可言,而且,除了快取外,還有另外一個原因會嚴重影響SSD的效率與壽命,這部分宅龍就留到 選購SSD 時再來分享一下宅龍的使用方式。
Comments