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