從智能手機、筆記型電腦、以及與各種云端應(yīng)用相關(guān)的服務(wù)器,快閃存儲器儲存已經(jīng)在我們的現(xiàn)實世界中無處不在??扉W存儲器技術(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è)備制造商來說是項重大的裨益,因為只要選用合適的高品質(zhì)控制器,低成本、高容量、多級單元的MLC快閃存儲器儲存器就可以大幅使用在更關(guān)鍵的應(yīng)用中。
由于當(dāng)今接觸到的所有電子設(shè)備幾乎都在使用快閃存儲器儲存器,我們很容易忘記這項技術(shù)本身其實是一種苛求完美的媒介,面臨許多可靠性的挑戰(zhàn)。
P/E次數(shù)有限為最大挑戰(zhàn)雖然快閃存儲器儲存單元可讀取接近無限次數(shù),但是它們被編程或擦除(P/E)的次數(shù)卻很有限??扉W存儲器被編程或擦除的耐久性取決于快閃存儲器儲存器的類型,一般來說,對于SSD或eMMC等大多數(shù)采用NAND快閃存儲器儲存設(shè)備而言,其中所使用的是商用MLC型快閃存儲器儲存器,通常每個單元只有數(shù)千個編程或擦除周期。
盡管快閃存儲器在讀取時沒有太多問題,但快閃存儲器寫入過程的涉入程度更高??扉W存儲器可以在頁面級寫入,大小以千位元為單位。數(shù)據(jù)在正確寫入之前,頁面必須要維持凈空。不幸的是,快閃存儲器儲存器每次只能擦除一個區(qū)塊,其大小為百萬位元。因此,寫入快閃存儲器儲存器之前首先需要擦除包含頁面在內(nèi)的大區(qū)塊存儲器。由于更新快閃存儲器某個單元就必須更新區(qū)塊中的所有單元,如此將縮短總體使用壽命。此過程通常被稱為寫入擴增(Write Amplification)。
為了減少快閃存儲器儲存器單元的磨損,所有快閃存儲器儲存設(shè)備必須使用磨損平衡技術(shù)。這些技術(shù)旨在驅(qū)動器上均勻地分散磨損,以最大幅度提高系統(tǒng)的耐久性。在DRAM、SRAM或未使用的快閃存儲器單元中的臨時緩沖區(qū)都可用來跟蹤驅(qū)動器下一步要寫入的位置以及需要擦除的舊位置。
快閃存儲器驅(qū)動器的另一個主要問題是電源故障保護。臨時緩沖區(qū)包含驅(qū)動器下一步應(yīng)該寫入的數(shù)據(jù)以及必須擦除的舊位置等訊息,這些訊息儲存在容易流失的存儲器中,在此情況下,突然斷電會導(dǎo)致緩沖區(qū)被擦除,使得傳送數(shù)據(jù)失敗造成災(zāi)難性的損失。
隨著光刻制程尺寸的降低以及快閃存儲器儲存器密度和性能的提高,影響快閃存儲器可靠性的最后一個問題是不斷增加的錯誤數(shù)量。最初的快閃存儲器驅(qū)動器使用單級單元(SLC)快閃存儲器,其中每個單元儲存一位元,但現(xiàn)代快閃存儲器驅(qū)動器通常將一個快閃存儲器單元分成多個位元,即MLC/TLC快閃存儲器。每個物理單元支持更多字節(jié)以增大儲存密度,但是會降低每個字節(jié)開/關(guān)狀態(tài)之間的閾值。這不僅會增大誤碼率,而且降低使用壽命。隨著光刻制程尺寸的減小,快閃存儲器密度會進一步提高,錯誤率也會增大。
高級控制器技術(shù)提升可靠度盡管快閃存儲器儲存可靠性面臨著上述挑戰(zhàn),但我們?nèi)匀荒軌驅(qū)⑵溆糜谌粘5南M類、商業(yè)類甚至關(guān)鍵任務(wù)性的應(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ū)塊層級(大小為百萬位元)執(zhí)行映射。由于每個邏輯頁面都直接映射到固定的物理頁面,磨損平衡發(fā)生在區(qū)塊層級,因而在頁面層級無法產(chǎn)生優(yōu)化。
由于區(qū)塊的尺寸就是擦除操作的最小尺寸,所以這種映射實施起來非常簡單且負擔(dān)較低。但是,這種簡單的方法會導(dǎo)致大量的寫入擴增,并縮短了元件的使用壽命。
基于頁面的映射通常用于現(xiàn)代SSD,它是將更細粒度的邏輯數(shù)據(jù)頁面(以千位元為單位)映射到數(shù)據(jù)的物理頁面。透過這種映射,邏輯頁面可以映射到區(qū)塊內(nèi)的任何物理頁面,同時實現(xiàn)區(qū)塊級和頁面級的磨損平衡。但是,對于其他形態(tài)因數(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會采用超級電容器來儲存?zhèn)溆秒娔?,以防備電源故障,使系統(tǒng)有時間把DRAM內(nèi)容轉(zhuǎn)存到不易流失的快閃存儲器中。
這種方法雖然可行,但并不理想。依靠超級電容的備用電能,這些SSD不但增加成本,而且還可能引入額外的故障點,因而影響系統(tǒng)的可靠性和使用壽命。微型SD(µSD)等更小形態(tài)的設(shè)備根本不允許包括DRAM和電容器。
具備Hyperstone hyMap技術(shù)快閃存儲器控制器的儲存設(shè)備能夠直接在非易失性存儲器中存儲映射訊息,這不僅消除了DRAM和電容器的成本,而且在任何時間、任何情況下都能確保數(shù)據(jù)的安全。
糾錯糾錯是快閃存儲器儲存可靠性難題中的最后一關(guān)。
以前的快閃存儲器可以使用簡單的海明碼(Hamming-Code)糾錯碼(ECC),但新一代高密度MLC快閃存儲器則需要更強的糾錯能力?,F(xiàn)代MLC ECC必須能夠校正每個扇區(qū)的多個位元。
消費類SSD可能會選擇使用品質(zhì)和成本較低的LDPC代碼來執(zhí)行這種類型的ECC,但工業(yè)級快閃存儲器具有更嚴格的要求,更傾向于采用BCH或其他更高可靠性的方法。使用96位元的BCH ECC,可以提供多位元糾錯功能,而且毋需給I/O操作增加任何負擔(dān)。
遙控器為高可靠/長壽命關(guān)鍵構(gòu)建可靠的快閃存儲器充滿了挑戰(zhàn)。盡管固態(tài)儲存沒有可移動元件,物理上比硬碟更可靠。但快閃存儲器單元有限的使用壽命、電源故障以及快閃存儲器的糾錯等問題給數(shù)據(jù)的可靠性帶來了挑戰(zhàn),特別是對于嵌入式和工業(yè)驅(qū)動器等需要長壽命周期的應(yīng)用領(lǐng)域。
過去,只要購買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)高可靠度的解決方案。