1. 程式人生 > >採用NAND Flash設計儲存裝置的挑戰在哪裡?

採用NAND Flash設計儲存裝置的挑戰在哪裡?

對於搞電子設計的工程師而言,NAND Flash是再熟悉不過的東西了。在電子設計的時候,NAND Flash通常作為大容量儲存介質,可以類比為PC系統中的磁碟。在電子設計領域,對於小容量儲存,還可以採用EEPROM之類的晶片;對於程式儲存,可以選擇NOR Flash。NOR Flash和NAND Flash之間的差別網上有過很多的討論,在此不一一列數。

NAND Flash作為大容量儲存,替代磁碟儲存是從消費電子和軍工領域開始的。消費電子領域追求小型化和便攜,容量普遍較小,因此非常適合採用NAND Flash作為持久化儲存介質。軍工領域追求高可靠性,機械硬碟無法滿足要求,因此只能採用NAND Flash替代機械硬碟。機械硬碟在企業級儲存領域一直佔據著主導地位,其最主要原因有如下幾個方面:

1、容量大。自從巨磁阻效應被應用到磁碟之後,磁碟容量一直在不斷增長,在不久的將來,4TB/6TB盤將會被大量使用。此外,磁碟容量還有增長空間,充氦磁碟亦可以在現有基礎上增加碟片數量,從而提升單盤容量。

2、價格便宜。雖然磁碟容量在不斷增加,但是單盤的價格沒有提升。因此,每GB容量的價格在不斷下降,磁碟在這幾年還有很大的價格優勢。

3、應用支援。基本上企業級的儲存軟體都是針對磁碟進行優化設計的,而這種軟體又不能直接簡單移植到NAND Flash儲存上。

正因為上述幾個原因,導致在企業級儲存領域,磁碟一直處於領導地位,以NAND Flash為核心的儲存盤無法撼動磁碟的地位。但是,從長遠來看,NAND Flash有望替代磁碟,其最主要的原因是NAND Flash屬於半導體儲存,具有很好的效能優勢。其容量的增長將符合摩爾定律。半導體工藝的進步,封裝技術的進步都將促使NAND Flash單晶片容量不斷快速增長。截止到2013年底,Samsung公司已經推出了V-NAND晶片,即將NAND Flash晶圓進行垂直3D封裝,從而使得單晶片的NAND Flash容量成倍增長。目前,很多NAND Flash廠商已經可以提供單晶片128GB的Flash晶片。如此高的單晶片容量,很容易將2.5寸SSD做到TB級以上。半導體晶片的價格決定於產量,因此,一旦產量上去之後,NAND Flash晶片將可以做到非常廉價,因此,磁碟的價格在可見的未來不再具有優勢。到那時,大容量的NAND Flash還不能替代機械磁碟嗎?

答案當然是肯定可以替代機械磁碟。現在的問題是如何在NAND Flash基礎上做好儲存裝置。基於NAND Flash設計儲存系統的挑戰到底在哪裡?

要回答這個問題,其實就是要了解NAND Flash的內部結構和特徵。首先來看一下NAND Flash的內部結構:

wKioL1OZvDux04fYAAF97jET23w010.jpg

NAND Flash內部可以分成無數的Page頁,這些Page頁是讀寫的最小單元。多個連續的Page頁構成一個Block,這些Block塊是擦除的最小單元。在寫一個Page頁的時候,首先需要將這個Page頁所在的Block擦除,否則無法對這個Page進行寫入(程式設計)操作。對於NAND Flash而言,讀操作最快,在20us左右;寫操作慢於讀操作,在200us左右;而擦除操作非常耗時,在1ms左右的數量級。因此,如果在寫入資料的時候進行擦除操作,將會引入兩大問題:第一,寫效能受到擦除操作的影響變得很差;第二,由於擦除操作的基本單元是block塊,因此,一個page頁的寫入操作將會引起整個塊資料的遷移,這就是典型的寫放大問題。更為嚴重的也是大家一直討論和關心的壽命問題,NAND Flash內部的塊是有擦寫次數的,即每個塊都有一定的壽命。通常SLC的NAND Flash有10萬次的擦寫壽命,MLC的Flash有1萬次的壽命,而TLC的Flash只有幾千次的擦除壽命。這些限制似乎使得NAND Flash看起來不可用,資料存在NAND Flash中是否可靠?綜上歸納起來,NAND Flash主要有以下幾個方面的問題:

1、不對稱的效能。讀的效能最好;寫效能次之;擦除效能最差。

2、讀寫基本單元是Page頁,而擦除基本單元是block塊。

3、Block塊內部只能採用順序方式進行寫入。

4、每次page頁寫的時候都需要進行擦除操作。

5、塊擦除有壽命限制。

NAND Flash的問題的確很多,不像Memory一樣可以在任意地址進行隨意的讀寫操作,而且還有壽命問題。因此在採用NAND Flash設計儲存裝置時需要進行合理設計才能發揮Flash的優勢,避免Flash的問題。例如,擦除操作比較耗時,那麼可以採用虛擬化的技術,將擦除操作在後臺完成,而不是在寫入操作的時候進行擦除操作。Page頁寫操作時,需要首先進行塊擦除操作,因此,不能對Flash進行in-place-update的操作,只能採用out-of-place的寫方式。塊擦除的壽命問題可以通過wear-leveling演算法均衡所有塊的壽命,從而使得整個儲存系統的壽命不低於當前磁碟系統的壽命。寫擦除操作可能會引起bit-error等問題,因此,可以採用多級編碼、動態編碼的方式增強資料可靠性。不管怎麼樣,雖然,NAND Flash存在很多問題,但是她的優勢更加的迷人,因此,聰明的工程師一定能夠想出很多方法克服問題,基於NAND Flash研製出效能卓越、可靠的儲存系統。

NAND Flash憑藉著效能優勢、密度優勢、能耗優勢即將登上企業儲存的舞臺,您準備好了嗎?