[轉]談NAND Flash的底層結構和解析

這裏我想以一個純玩家的角度來談談關於NAND Flash的底層結構和解析,可能會有錯誤的地方,若是有這方面專家強烈歡迎指正。


NAND Flash做爲一種比較實用的固態硬盤存儲介質,有本身的一些物理特性,須要有基本的管理技術才能使用,對設計者來講,挑戰主要在下面幾點:

1.須要先擦除才能寫入。
2.損耗機制,有耐久度限制。
3.讀寫時候形成的干擾會形成數據出錯。
4.數據的保存期。
5.對初始和運行時候的壞塊管理。

只有至少知足這些基本的管理技術,才能讓NAND Flash成爲一款可使用的固態存儲介質。(這裏尚未談到任何關於性能的地方,由於那是這些基本條件知足後的事。)

當知足了上面的5點後,才該談到穩定,性能,耐久度,影響這些的5大因素爲:

1.SLC和MLC
2.平衡磨損算法
3.透過壞塊管理技術確保數據的完整性。
4.使用錯誤檢測和校訂技術
5.寫入放大


只有知足了這些條件,才能獲得一款理想中的完美的固態硬盤。



-----------------------------------------------------------------------


Flash全名叫作Flash Memory,屬於非易失性存儲設備(Non-volatile Memory Device),與此相對應的是易失性存儲設備(Volatile Memory Device)。關於什麼是非易失性/易失性,從名字中就能夠看出,非易失性就是不容易丟失,數據存儲在這類設備中,即便斷電了,也不會丟失,這類設備,除了Flash,還有其餘比較常見的如硬盤,ROM等,與此相對的,易失性就是斷電了,數據就丟失了,好比你們經常使用的內存,不管是之前的SDRAM,DDR SDRAM,仍是如今的DDR2,DDR3等,都是斷電後,數據就沒了。

Flash的內部存儲是金屬-氧化層-半導體-場效晶體管(MOSFET),裏面有個懸浮門(Floating Gate),是真正存儲數據的單元。

1.jpg 算法

 



數據在Flash內存單元中是以電荷(electrical charge) 形式存儲的。存儲電荷的多少,取決於圖中的控制門(Control gate)所被施加的電壓,其控制了是向存儲單元中衝入電荷仍是使其釋放電荷。而數據的表示,以所存儲的電荷的電壓是否超過一個特定的閾值Vth 來表示。

1.對於NAND Flash的寫入(編程),就是控制Control Gate去充電(對Control Gate加壓),使得懸浮門存儲的電荷夠多,超過閾值Vth,就表示0。

2.對於NAND Flash的擦除(Erase),就是對懸浮門放電,低於閥值Vth,就表示1。


NAND Flash的架構:

2.jpg 編程

 




如上圖所示,這是一個8Gb 50nm的SLC顆粒內部架構。

每一個page有33,792個單元,每一個單元表明1bit(SLC),因此每一個page就是4096Byte + 128Byte(SA)。
每一個Block有64個page組成,因此每一個Block容量爲262,114Byte + 8192Byte (SA)

page是NAND Flash上最小的讀/寫單位(一個page上的單元共享一根字符線Word line),塊是最小的擦除單位(。不一樣廠牌不一樣型號顆粒有不一樣的page和block大小。

下圖是個8Gb 50nm的SLC顆粒。

3.jpg 架構

 




4KB的頁尺寸,256KB的塊尺寸。圖中4096字節用於存儲數據,另外128字節用來作管理和ECC用。


SLC 和 MLC 區別:

SLC主要針對軍工,企業級應用,有着高速寫入,低出錯率,長耐久度特性。
MLC主要針對消費級應用,有着2倍容量於SLC,低成本,適合USB閃盤,手機,數碼相機等儲存卡。現在也被用於消費級固態硬盤上。

4.jpg 性能

 




由上圖能夠看到,MLC和SLC雖然使用相同的電壓值,可是電壓之間的閥值被分紅了4份,直接影響了性能和穩定性。主要有下面幾點:

1.相鄰的存儲電荷的懸浮門間會互相干擾,形成懸浮門裏的電荷不穩定出現bit錯誤,MLC因爲閥值相比SLC更接近,形成出錯概率更大。
2.MLC讀寫性能下降,寫入更是下降50%以上,由於須要確認充入電荷的量,這須要更精確的處理。SLC只有0和1,也就是有和沒有,而MLC會有00,01,10,11 4個狀態,在充入電荷後還要去判斷是哪一個狀態,天然就慢了。
3.由於上面說的,形成額外的讀寫壓力,因此功耗明顯增大。
4.由於額外的讀寫壓力,形成閃存的寫入耐久度和數據保存期受到影響。

eMLC和eSLC的耐久度提高是用犧牲了數據保存期和增長讀寫時間換來的。(也就是性能會更差點)

-------------------------------------------------------------------

挑戰1:須要先擦除才能寫入。

5.jpg spa

 




當今的NAND Flash能夠讀/寫一個page,可是必須以block大小擦除。

擦除操做就是讓塊中全部的bit變爲1,從一個乾淨的「已擦除」狀態的block從新開始。當裏面的頁變爲0後,只有擦除整個塊才能讓這個頁變爲1。爲了儘可能減小擦除的次數,成熟的塊管理技術必不可少。


挑戰2:讀/寫干擾。

NAND Flash的電荷很是不穩定,在讀/寫中很容易對鄰近的單元形成干擾,干擾後會讓附近單元的電荷脫離實際的邏輯數值,形成bit出錯,由於閥值接近的關係,MLC相對SLC來講更容易受到干擾。

6.jpg 設計

 



讀取干擾

7.jpg blog

 



寫入干擾

讀取干擾指的是在讀取某個page時,鄰近的bit會受到升高電壓的干擾,形成bit出錯。寫入干擾指的是,某個page在寫入時,鄰近bit的電壓也被升高了,形成bit出錯。相對寫入干擾來講,讀取干擾明顯小的多。在讀/寫干擾中,可能形成某些bit被改變,結果形成數據出錯。因此須要在返回數據給主機前,用ECC/EDC算法來糾正這些bit的錯誤。隨着閃存工藝的提高,一樣大小的晶片上被封裝入更多的單元,形成干擾愈來愈厲害,因此須要更強大的ECC/EDC來糾正bit。


挑戰3:數據保存期限

數據保存期指的是當徹底斷電後,數據能在NAND Flash裏保存多久。NAND單元必須保證一個穩定的電壓水平,來保證數據是有效的。典型的SLC通常爲10年。電荷從懸浮門裏漏出,咱們叫作電子遷移,當隨着時間的流逝,電荷泄漏到必定程度,改變了NAND單元裏懸浮門的電壓對應的邏輯值,這樣就形成bit出錯。

8.jpg 內存

 




數據保存期會隨着擦寫次數的增長而明顯下降,並且從上面的原理中看出,MLC的數據保存期明顯會比SLC少。(更容易被幹擾)


挑戰4: 壞塊

NAND Flash裏有2種壞塊類型:

1,出廠壞塊:因爲爲了保證產量和控制成本,出廠的NAND Flash某些就會有壞塊。廠商保證SLC出廠壞塊低於2%,MLC出廠壞塊低於5%。
2,積累壞塊:在屢次的寫入/擦除循環中,某些NAND單元的電荷電壓被永久性的改變了,那就意味着包含這個NAND單元不可用了。

因此固態硬盤須要有壞塊管理才能使用,主控制器用壞塊表來映射出廠壞塊和積累壞塊到壞塊區內,出廠時,顆粒的第一個塊Block 0廠商會保證是可用的(至少ECC後可用)。



挑戰5:擦寫次數限制

形成NAND Flash有擦寫次數限制的主要有2個因素:

1,電荷被困在氧化層,不能進入懸浮門。
2,氧化層結構被破壞。

9.jpg it

 




如圖,一旦氧化層損壞到達必定程度,形成電荷愈來愈難在P-substrate和懸浮門之間交流。電荷被困在氧化層形成懸浮門中的電壓到不了閥值,因此說這個NAND單元就要被放入壞塊區了。

當前主流SLC的P/E爲10萬次,50nm MLC爲1萬次,3xnm的MLC爲5000次。到了這個數字並不意味着就不能用了,這個只是表明平均壽命,也就是說到了這個次數後,壞塊就會開始大量增長了。

隨着工藝提高,ECC的要求愈來愈高,50nm的SLC顆粒,三星規定1bit ECC的就夠了,而50nm MLC要4bit ECC,到了3xnm要求達到24bit ECC。


-----------------------------------------

附; ECC

影響NAND Flash穩定性和耐久度的一個主要因素就是ECC能力,目前最經常使用的三種算法是:

1.Reed-Solomon。2.Hamming。3.BCH (Bose, Ray-Chaudhuri, Hocquenghem)

無論何種ECC算法,何種主控,檢測錯誤的方式是相同的:


10.jpg 原理

 

1.每當一個page寫入NAND Flash,數據會經過ECC引擎,創造獨特的ECC簽名。2.數據和對應的ECC簽名存都存放在NAND Flash裏,數據放在數據區,ECC簽名放在 SA區。3.當須要讀取數據時,數據和ECC簽名一塊兒被送往主控制器,此時新的ECC簽名被生成。4.此時主控把2個簽名對照,若是簽名相同,說明數據沒有錯誤,數據就會被送往主機。若是簽名不一樣,數據就會先放在主控裏,而不是直接送往主機。某些主控會把改正後的數據再次寫回閃存,另外一些則不會,由於誰也不知道下次讀取會不會再出錯。ECC的能力直接關係到NAND Flash的耐久度,數據保存期。當NAND Flash的P/E數到了以後,錯誤數會愈來愈多,ECC弱的直接就報壞塊並標記退休,若是ECC能力足夠強,就能挖掘出Flash全部潛力。

相關文章
相關標籤/搜索