從智能手機、筆記本電腦、以及與各種云應(yīng)用相關(guān)的服務(wù)器,閃存存儲已經(jīng)在我們的現(xiàn)實世界中無處不在。閃存技術(shù)已經(jīng)如此普遍,我們大多數(shù)人甚至都沒有意識到閃存技術(shù)本質(zhì)上并不是一種可靠的存儲媒介。實際上,閃存單元的使用壽命有限,閃存的特性意味著需要強大的磨損平衡(wear-leveling)技術(shù)以便使其有更好的性能表現(xiàn)。
業(yè)界的好消息是,現(xiàn)代閃存控制器中的磨損平衡技術(shù)已經(jīng)有長足的進步,能夠克服閃存存儲介質(zhì)固有的弱點,并幫助發(fā)揮出閃存的優(yōu)勢。對于現(xiàn)代閃存系統(tǒng)而言,閃存控制器的選擇比閃存存儲器本身更加重要,通過為具體的應(yīng)用選擇合適的閃存控制器,可以提高系統(tǒng)的耐用性和可靠性。
這對于終端用戶和設(shè)備制造商來說是一個非常大的優(yōu)勢,因為只要選用適當(dāng)?shù)母哔|(zhì)量控制器,就可以在更關(guān)鍵的應(yīng)用中采用越來越多的低成本、高容量多級單元MLC閃存。
閃存可靠性的挑戰(zhàn)
由于我們當(dāng)今接觸到的幾乎所有電子設(shè)備都在使用閃存,很容易忘記這種技術(shù)本身其實是一種很挑剔的媒介,同樣面臨著許多可靠性挑戰(zhàn)。
雖然閃存存儲單元可以接近無限次地讀取,但是它們被編程或擦除(P/E)的次數(shù)卻很有限。閃存被編程或擦除的耐久性取決于閃存的類型,一般來說,對于SSD或eMMC等大多數(shù)采用NAND閃存存儲設(shè)備而言,其中使用的為商用MLC型閃存,通常每個單元只有數(shù)千個編程或擦除周期。
更糟糕的是,盡管閃存在讀取時沒有太多問題,但寫入閃存的過程肯定會更多。閃存可以在頁面面級寫入,大小以千字節(jié)為單位。數(shù)據(jù)在被正確地寫入之前,頁面面必須要保持清空。不幸的是,閃存一次只能被擦除一個區(qū)塊,其大小為兆字節(jié)。因此,寫入閃存之前需要首先擦除頁面面所在的大區(qū)塊閃存。如果更新某個閃存單元就需要更新區(qū)塊中的所有單元,導(dǎo)致總體使用壽命縮短。這通常被稱為寫入放大(Write Amplification)。
為了減少閃存單元的磨損,所有閃存存儲設(shè)備必須使用磨損平衡技術(shù)。這些技術(shù)旨在驅(qū)動器上均勻地分散磨損,以最大限度地提高系統(tǒng)的耐久性。DRAM、SRAM或未使用閃存單元中的臨時緩沖區(qū)都可用來跟蹤驅(qū)動器下一步要寫入的位置以及需要擦除的舊位置。
閃存驅(qū)動器的另一個主要問題是電源故障保護。臨時緩沖區(qū)包含驅(qū)動器下一步應(yīng)該寫入的數(shù)據(jù)以及必須擦除的舊位置等信息,這些存儲在易失性存儲器中,這種情況下,突然斷電會導(dǎo)致緩沖區(qū)被擦除,從而對驅(qū)動器數(shù)據(jù)造成災(zāi)難性的丟失。
隨著光刻工藝尺寸的降低以及閃存密度和性能的提高,影響閃存可靠性的最后一個問題是不斷增加的錯誤數(shù)量。最初的閃存驅(qū)動器使用單級單元(SLC)閃存,其中每個單元存儲一字節(jié),但現(xiàn)代閃存驅(qū)動器通常將一個閃存單元分成多個字節(jié),即MLC / TLC閃存。每個物理單元支持更多字節(jié)以增大存儲密度,但是會降低每個字節(jié)開/關(guān)狀態(tài)之間的閾值。這不僅會增大誤碼率,而且可降低使用壽命。隨著光刻工藝尺寸的減小,閃存密度會進一步提高,錯誤率也會增大。
高級控制器技術(shù)
盡管閃存存儲可靠性面臨著上述挑戰(zhàn),但我們?nèi)匀荒軌驅(qū)⑵溆糜谌粘5南M類、商業(yè)類甚至任務(wù)關(guān)鍵型的應(yīng)用,這在很大程度上得益于先進的閃存控制器技術(shù)。這些控制器結(jié)合了在磨損平衡、電源故障管理和糾錯等方面的先進技術(shù),使我們能夠安全可靠地使用當(dāng)今的高密度閃存。
磨損平衡
閃存轉(zhuǎn)換層(FTL)是閃存控制器其中一個最重要的方面。通過將主機的邏輯地址轉(zhuǎn)換為閃存上的物理地址,可以使SSD進行磨損平衡。例如,如果主機系統(tǒng)在相同的地址更新數(shù)據(jù),F(xiàn)TL會將該邏輯地址轉(zhuǎn)換為新的物理地址,以便在閃存驅(qū)動器上均勻地分布磨損,最大限度地提高耐用性。
FTL中邏輯到物理地址的映射粒度對性能和耐久性都有很大的影響。消費類USB和SD卡等較簡單的閃存介質(zhì)使用基于區(qū)塊的映射,在區(qū)塊(大小為兆字節(jié))級執(zhí)行映射。磨損平衡發(fā)生在區(qū)塊級,由于每個邏輯頁面面都被簡單地映射到固定的物理頁面面,因而在頁面面級不會產(chǎn)生優(yōu)化。
由于區(qū)塊的尺寸就是擦除操作的最小尺寸,所以這種映射實施起來非常簡單且負(fù)擔(dān)較低。但是,這種簡單的方法會導(dǎo)致大量的寫入放大,并縮短了器件的使用壽命。
基于頁面的映射通常用于現(xiàn)代SSD,它是將更細粒度的邏輯數(shù)據(jù)頁面(以千字節(jié)為單位)映射到數(shù)據(jù)的物理頁面。通過這種映射,邏輯頁面可以映射到區(qū)塊內(nèi)的任何物理頁面,同時實現(xiàn)區(qū)塊級和頁面級的磨損平衡。但是,對于其他形狀因數(shù),SSD基于頁面的映射尚未被廣泛使用。
頁面映射等這樣更細化的方法需要更強大的計算能力,并且必須存儲更大的映射表。但是,不斷增大的粒度可以大幅度降低寫入放大。特別是對于工業(yè)、嵌入式或物聯(lián)網(wǎng)應(yīng)用而言,較小的隨機I / O操作是常態(tài),粒度、頁面映射可以大大降低寫入放大,并延長設(shè)備的使用壽命。
斷電保護
由于SSD磨損平衡算法的映射信息通常存儲在易失性DRAM中,因此電源故障會導(dǎo)致災(zāi)難性的信息丟失和驅(qū)動器損壞。為了防止出現(xiàn)這種可能性,許多工業(yè)SSD會采用超級電容器來存儲備用電能,以防備電源故障,從而使系統(tǒng)有時間把DRAM內(nèi)容轉(zhuǎn)存到非易失性的閃存中。
雖然這種方法可行,但并不理想。依靠超級電容的備用電能,這些SSD不但增加了成本,而且還引入了另一個可能的故障點,因而影響系統(tǒng)的可靠性和使用壽命。微型SD(µSD)等更小形狀因數(shù)的設(shè)備根本不允許包括DRAM和電容器。
具備Hyperstone hyMap®技術(shù)閃存控制器的存儲設(shè)備能夠直接在非易失性存儲器中存儲映射信息,這不僅消除了DRAM和電容器的成本,而且在任何時間、任何情況下都能確保數(shù)據(jù)的安全。
糾錯
糾錯是閃存存儲可靠性難題中的最后一關(guān)。以前的閃存可以使用簡單的海明碼(Hamming-code)糾錯碼(ECC),但新一代高密度MLC閃存則需要更強的糾錯能力?,F(xiàn)代MLC ECC必須能夠校正每個扇區(qū)的多個字節(jié)。
消費類SSD可能會選擇使用質(zhì)量和成本較低的LDPC代碼來執(zhí)行這種類型的ECC,但工業(yè)級閃存具有更嚴(yán)格的要求,更傾向于采用BCH或其他更高可靠性的方法。使用96字節(jié)的BCH ECC,可以提供多字節(jié)糾錯功能,而且無需給I / O操作增加任何負(fù)擔(dān)。
控制閃存可靠性
構(gòu)建可靠的閃存充滿了挑戰(zhàn)。盡管固態(tài)存儲沒有可移動部件,物理上比硬盤更可靠。但閃存單元有限的使用壽命、電源故障以及閃存的糾錯等問題給數(shù)據(jù)的可靠性帶來了挑戰(zhàn),特別是對于嵌入式和工業(yè)驅(qū)動器等需要長壽命周期的應(yīng)用。[!--empirenews.page--]
過去,只要購買SLC型閃存就足以保證一個相對可靠的系統(tǒng)。然而,隨著工藝幾何尺寸的縮小和閃存密度的不斷提高,如今不同閃存介質(zhì)之間可靠性和錯誤率的差異已經(jīng)沒有之前那么明顯,當(dāng)今存儲系統(tǒng)可靠性的最大決定因素反而是閃存控制器的設(shè)計。
對于要求高可靠性和長使用壽命的應(yīng)用,重要的是要選擇面向嵌入式工業(yè)市場的控制器,而不是那些以犧牲使用壽命或數(shù)據(jù)完整性為代價來實現(xiàn)高性能的產(chǎn)品。通過先進的磨損平衡技術(shù)、電源故障防護設(shè)計和強大的ECC,基于Hyperstone控制器的存儲設(shè)備能夠確保實現(xiàn)高可靠度的解決方案。