閃存幾乎無處不在,特別是在移動設備中。閃存具有各種外形尺寸,隨著成本的不斷降低以及容量和工作壽命的不斷增加,閃存不斷地推動著越來越多的平臺中硬盤驅動器的發展。
NAND和NOR閃存主導著固態非易失性存儲器(NVM)市場,但是這些閃存并不是唯一可用的技術。不會明確地暴露閃存的外形尺寸是使用非閃存技術來替代的可能目標。比如,非閃存產品正在串行存儲領域中暫露頭角。
圖1:閃存具有各種外形尺寸,包括SecureDigital(a)、MicroSD(b)、Sony記憶棒(c)、緊湊型閃存(d)和mSATA(e)。它們一般都采用NAND閃存
非易失性固態存儲器
一方面是一次性可編程(OTP)存儲器。現在,OTP存儲器一般用來保存安全密鑰或網絡ID。它是采用諸如熔絲、反熔絲和浮柵等各種技術實現的。這種存儲器還可以采用標準CMOS技術來實現。
帶動NVM規模的是各種多次可編程(MTP)存儲器技術,這類技術可以寫入上百次甚至上千次。MTP存儲器一般用來實現很少更改的啟動代碼。與OTP一樣,MTP一般是采用CMOS技術實現的,這樣就可以用在數字邏輯中。
浮柵EEPROM已經在數據存儲中得到普遍的應用。由于具有寫入單字節的能力、良好的耐力和數據保持能力,浮柵EEPROM已經相當流行,但是閃存技術在密度上遠勝于浮柵EEPROM。EEPROM仿真常常被視為某些閃存實現方案的一種功能,它可以隱藏閃存的塊擦除要求,以便能夠寫入單個字節。
其他的非易失性技術正在不斷地提升閃存的優勢,包括磁阻RAM(MRAM)、鐵電RAM (FRAM)、相變存儲器(PCM)以及前途無量的NVM技術。與NAND和NOR閃存等其他NVM技術相比,這些技術都具有更高的總體性能,包括寫入速度、電壓要求、缺少頁面擦除周期、長期耐用性、數據保持能力和可擴展性。
這些技術開始是針對利基市場,在這種市場中,成本高一點并沒有什么問題(至少在初期階段是這樣),其優勢相當明顯。它們甚至會引發SRAM與DRAM之間的激烈競爭。
德州儀器(TI)公司的16位MSP430FR57xx系列以其高達16 kB的用于數據存儲和程序存儲的FRAM而著稱。該系列存儲器具有代表性地融合了SRAM、閃存和EEPROM存儲器。單個方案就可以降低庫存單位(SKU)數,并簡化開發人員的工作,使他們不再需要應付程序存儲的RAM要求。
今后,這些可供選擇的NVM技術將在更多的設計中得到應用。不過現在,閃存仍是主導的NVM技術。
閃存技術
閃存實現方案可以分成NAND和NOR方案,不同的供應商提供的方案各有不同。他們一般采用浮柵晶體管。這兩種技術都表明了晶體管是如何連接和使用的,而不是將晶體管作為數字邏輯的一部分與FPGA或定制邏輯整合在一起。
NOR閃存晶體管接地和位線,這樣就可以訪問單個位。與NAND閃存相比,它具有更好的耐寫性能。NOR閃存一般用在有代碼和數據的應用中。帶片上閃存的微控制器一般都會整合NOR閃存。
NAND閃存晶體管一般是成組連接至字線。這就可以實現比NOR閃存更高的密度。NAND閃存一般用于面向塊的數據存儲器。從晶體管的角度來看,NAND閃存不如NOR閃存可靠,因此NAND存儲平臺就需要使用錯誤檢測和校正硬件或軟件。NAND閃存一般用于高容量數據存儲。
閃存使用擦寫周期。擦除本質上是將閃存設置為1。寫入則是將位設置為0,只要現有的1被改為0,就可以寫入不同的數據。由于允許在沒有長時間的耗電擦除周期的情況下執行操作,因此閃存文件系統可以充分利用這種特性。NAND閃存一般工作在塊級別,而NOR可訪問更加精細的級別。
閃存從單級單元(SLC)數據編碼開始,每個存儲晶體管對1或0進行編碼。多級單元(MLC)閃存一般是指每單元存儲2位(而不是1位)信息的能力。在晶體管級,所有的信息都是模擬的,不過與構建MLC閃存所需要的四級檢測電路相比,構建一個兩級檢測電路更加簡單。
同樣,對MLC單元進行編程需要有產生四個不同級的能力。三級單元(TLC)閃存則更進了一步,這種閃存將3位或八級裝入單個存儲單元中,比如美光(Micron)公司的3位34nm NAND閃存芯片。
MLC或TLC存儲器的明顯優勢是密度更高。其通常會在性能上作出折衷,尤其是耐寫性能方面。
典型的SLC NAND閃存的可寫次數為10萬次,而SLC NOR閃存的可寫次數為100萬次。MLC閃存的可寫次數則僅為上述次數的10分之一,TLC閃存的可寫次數則更少。隨著技術的進步,這些可寫次數在不斷地增加。SLC具有更好的耐寫性能,而MLC和TLC的成本效益將更高。
閃存系統的使用壽命取決于多重因素,包括其托管方式。如果一個區域出現耗損時(即出現寫入失敗,無法保存正確的信息的情況時),非托管型閃存就會出現問題。錯誤檢測系統有助于確定何時出現這種情況,不過一旦出現這種情況,設備一般也毫無用處了。更糟糕的是,其失效可能會導致相當多的問題。這也就是為什么帶有內置閃存(無法跟蹤耗損情況)的微控制器等器件依賴于可寫次數較高的NOR閃存的原因。
有多種方法可以用來提高總系統壽命,比如耗損均衡。這種方法需要重新映射信息位置的能力。該方法對于面向塊的器件最有效,盡管它可以應用到塊大小的單個字中。實現耗損均衡會引起開銷,因此塊尺寸較大的話,效率就會更高。
耗損均衡可將寫入操作分布在存儲設備中。系統的使用壽命可以視為系統的總寫入容量,而不是單個塊的最大值。耗損均衡需要跟蹤塊寫入使用情況以及記錄和利用該信息的能力。如果出現缺陷的話,塊的使用壽命往往會縮短至不到其建議的寫入壽命。
在這種情況下,如果存儲器被超額配置的話,則可以使用重新映射機制。額外的塊或扇區在硬盤驅動器上很常見,對閃存可以采用同樣的方法。唯一的區別是,如果在規則的塊中檢測到不可校正的錯誤,那么就會使用額外的塊。
使用耗損均衡之后,所有的塊往往就都是存儲池的一部分。如果系統是以軟件方式實現的,也可以根據系統所需的使用壽命來選擇邏輯設備尺寸。邏輯尺寸越小,出現的“額外”塊越多。
像FRAM、MRAM和PCM等其他一些技術不會出現與閃存一樣的耐寫能力問題。但是仍然可以使用諸如存儲器過度配置和重新映射等技術,特別是在硬件缺陷等其他錯誤可能比較常見的大型設備中。
閃存軟件和控制器
對閃存的受控訪問使軟件可以忽略從擦除要求到耐寫能力等一系列支持閃存的問題。在哪里以及以何種方式實現這種控制差別很大。
閃存文件系統是開發人員處理原始閃存的一種方法。這些系統是可訪問閃存芯片接口的設備驅動器。明顯地,相對于操作系統和應用而言,驅動器處理所有的閃存常規工作,如錯誤檢測、耗損均衡和壞塊重新映射。它可以將部分閃存用于內部表,并負責說明閃存擦除和寫入特性。
驅動器可以提供一定的文件和目錄管理功能,或者只代表一個低級邏輯塊器件。這兩種方法有各自的優勢,需根據具體的應用環境來選擇。
采用硬件方案時,一般會提供塊級接口。由于軟件方案一般無法提供硬件加速,因此硬件方案還可以整合更具魯棒性的糾錯和映射系統。早期階段出現過眾多閃存控制器公司,不過現在它們都已經被致力于提供集成度更高的方案的閃存公司收購了。
將閃存放在硬件控制器后面可以起很大的作用。比如,它可以簡化設備接口、提供諸如降低功耗(包括各種休眠模式)等更加先進的功能,并實現混合存儲系統。
混合系統可在同一封裝中整合不同類型的存儲器。這種方法可以通過在混合系統中增加RAM,從而使NAND閃存等塊設備能夠在比特級或文字級進行訪問。三星(Samsung)的OneNAND將SRAM與其NAND閃存控制器整合在一起。該方案可使系統用作程序存儲器,并根據需要在SRAM中對塊設備進行緩存。
此外,RAM的速度也比閃存快,特別是寫入速度方面。它也不受閃存耐寫能力限制的影響。并且RAM不受塊訪問的限制。作為一般緩存系統使用時,混合系統兼具閃存和RAM的諸多優勢。由于在這類設計中閃存往往比RAM更多,因此必要時數據需從RAM中轉入閃存中。
希捷公司(Seagate)推出的Momentus XT硬盤驅動器表明,混合系統可以變得更加復雜。該存儲系統整合了三種存儲器:DRAM、SLC閃存和旋轉磁性存儲器。它具有SATA接口,因此除了閃存和硬盤驅動器控制器之外,還有一個SATA控制器。這對于用戶來講完全是透明的。
在閃存中使用硬件控制器還可以讓設計人員在混合系統中增加安全和加密等其他功能。硬件加速也可以從這些功能中受益。
將閃存接口標準化一定會簡化系統設計人員的工作。開放NAND閃存接口(ONFI)工作組一直在致力于這方面的工作,他們于2011年發布了OFNI 3.0規范。該規范旨在提供400Mtransfers/s的傳輸速度和雙數據速率(DDR)傳輸。其切換模式2.0可選地采用差分信令。此外,OFNI還規定了芯片級外形尺寸,不過閃存可采用的外形尺寸相當多。
閃存的尺寸
小型串行閃存設備的外形尺寸差異相當大。有支持一級(1Wire)協議的三引腳設備以及支持I2C和SPI的各種設備。四SPI(QSPI) NVM設備可將傳輸的位數增加四分之一,甚至還有微控制器,這類設備可以直接從像恩智浦半導體(NXP)公司的LPC1800系列這樣的QSPI串行存儲器中執行程序。
將程序保存在串行閃存中是相當常見的。大多數PC都將其BIOS保存在串行閃存中。芯片引導裝載程序將該程序復制到執行該程序的RAM中。NXP公司的LPC1800一次讀取存儲器中的一個指令。
串行存儲器是FRAM和MRAM等其他技術應用的首個用武之地之一。串行存儲器一般包含溫度傳感器和實時時鐘(RTC)等其他子系統。有些RTC甚至利用串行存儲器保存時間戳信息。
具有JEDEC e-MMC(嵌入式多媒體卡)外形尺寸的芯片(比如San-Disk的iNAND)采用與可移動七引腳MMC外形尺寸相同的串行接口。對于開發人員來講,其優勢在于他們可以對固定存儲器和移動存儲器使用同樣的接口。
該七引腳MMC設備可插入與九引腳SD和九引腳SDIO設備相同的插槽中,因此I/O設備可以置于該卡上。SD與MMC具有相同的引腳分布,其外沿附近增加了兩個額外的引腳。MMC接口本質上是SPI接口,SD為QSPI接口。11引腳miniSD卡和八引腳microSD卡都采用相同類型的接口,只不過封裝更小。這些串行設備的傳輸速率為832Mbps。
移動閃存也采用USB、SATA和SAS接口。SAS往往只用于驅動器上,而SATA則用于具有磁盤驅動器外形尺寸的閃存驅動器以及像Viking Technology公司的SATA Cube 3這樣的嵌入式設備中。SATA Cube 3是一堆帶閃存和控制器的電路板。電路板越多,表明存儲容量越大。
板上SATA設備還包含mSATA和Slim SATA模塊等標準。相比與SD卡等介質配合使用的SPI/QSPI 接口,SATA接口可以提供高相當多的吞吐能力。大型SATA閃存一般用于1.8、2.5和3.5英寸的硬盤驅動器外形尺寸中。
基于IDE的微型閃存仍是許多嵌入式母板上的常見功能部件。隨著微控制器從IDE和PCI轉換到SATA和PCI Express,這種情況正在發生變化。雖然攝像機往往采用SD卡,不過仍有許多移動設備(比如數碼攝像機)使用微型閃存。
USB閃存驅動器已經有效地替代了CD、DVD和軟盤。與現在的平均容量相比,首款USB 1.x閃存驅動器的存儲容量相當小。如今的高端平臺的規模相當大,并且采用USB 3.0總線標準。
容量和速度并不是隨著USB閃存驅動器的發展而變化的唯一指標。增加的功能(特別是安全領域中)更為普遍。比如,Apricorn公司的Aegis安全密鑰帶一個內置鍵盤,可用來輸入安全代碼,阻止按鍵記錄病毒捕獲代碼。它可以用在任何操作系統上。
大多數與安全相關的其他解決方案都采用在主機上運行并使用主機輸入所有解碼密鑰的設備驅動器或者應用程序。Aegis安全密鑰具有管理員和用戶密碼。這些功能可用來對加密和解密保存在閃存中的數據的密鑰進行解碼。
USB閃存驅動器一般用于便攜設備中,不過它們也廣泛地用在嵌入式設備中。許多母板都有一個內部A型連接器。大多數母板只有背板上有A型連接器。有些設備(像Eurotech公司的Helios Edge控制器)僅有用于閃存的USB接口和外設接口(請參見“Eurotech公司的Helios Edge控制器的實地操作評估”一文)。
USB頭在母板上也很常見。它們用于通過線纜和背板連接的額外外部USB接口,還可以用于USB存儲器中,比如Swissbit公司的USB存儲器(圖6)。Swissbit USB閃存模塊可插入大多數母板的標準九引腳USB頭中。母板上不一定總是使用安裝孔,但是當板可以用螺栓固定到母板上時,安裝孔確實可以提供穩固的解決方案。
像mSATA和Swissbit公司的USB閃存模塊這樣的模塊并不是基于板的唯一閃存方案。閃存還可用于雙列直插內存模塊(DIMM)和小外形DIMM (SODIMM)外形尺寸,不過與DRAM一樣,僅使用閃存的解決方案沒有標準。
另一方面,有些方案(比如Viking Technology公司的ArxCis-NV)將DRAM與閃存整合在一起。閃存作為備份,用于在斷電時保存DRAM的內容。超級電容器足以執行復制操作。
使用這些混合存儲器的難題在于軟件需要考慮非易失性。過去,具有磁芯存儲器的計算機可以在不重裝操作系統或應用程序的情況下關斷和導通。這可以節省相當長的時間,對于嵌入式應用來講非常方便。
現在,主要存儲器一般是DRAM。關斷系統后,這種存儲器中的內容就會丟失,因此默認的恢復過程就會重啟系統。與這些已經保存了DRAM先前內容的非易失性解決方案不同的是,保存在閃存中的引導程序不會丟失。
大多數這類混合解決方案的目標應用都是企業系統,不過由于它們采用標準DIMM插座,并且看起來像系統硬件的標準DDR2或DDR3 DRAM,因此這些混合方案可以輕松地整合到嵌入式應用中。
曇花一現的PCI Express
帶寬是閃存可以使用的,不過諸如USB和SATA等諸多接口都受限于無法充分利用閃存的速度。PCI Express是加快數據移動的一種方法。
非易失性內存主機控制器接口(NVMHCI)工作組開發了NVM Express標準,并管理著該標準,該標準可以提供非易失性存儲器(在這里基本上是指閃存)的接口。
SCSI Express是另一個正在準備階段的標準,該標準可將閃存直接應用到PCI Express接口中。這兩個標準的區別在于接口是SCSI適配器。SAS采用SCSI命令集,因此它可以有效地定義標準SAS接口。而傳統的SAS控制器需要其各自的供應商提供的設備驅動程序。
串行ATA 組織的SATA Express標準是一個類似的標準,不過該標準可以提供SATA接口。與SCSI Express一樣,SATA Express可以同樣輕松地通過接口實現硬盤存儲器和閃存。
NVM Express和SCSI Express標準都用于企業。支持熱插拔的板和驅動標準融合在一起。隨著這些平臺的日益普及,它們可能會在嵌入式系統中找到用武之地。由于這些平臺可以提供位于處理和網絡硬件所在的板上的高速解決方案,因此它們適合用于嵌入式應用。
標準組織
上文已經提到了大多數與閃存相關的重要組織,比如JEDEC、ONFI工作組和NVMHCI工作組。SD協會負責移動存儲器的SD卡系列。同樣,CompactFlash協會負責管理CompactFlash標準。T10則負責管理SCSI和SCSI Express標準。串行ATA組織負責管理SATA Express標準。
評論
查看更多