為嵌入式應(yīng)用選擇、實現(xiàn)NAND閃存海量存儲
在嵌入式應(yīng)用中,海量存儲密度正在以前所未有的速度增長。像便攜式媒體播放器、蜂窩電話、數(shù)碼相機、便攜式導(dǎo)航設(shè)備、無線網(wǎng)卡、閃盤這樣的消費產(chǎn)品由于需要處理越來越多的多媒體內(nèi)容而要求更高的海量存儲密度。
NAND閃存已經(jīng)成為消費類應(yīng)用中用作海量存儲的主要選擇,因為它相比NOR閃存而言具有單位比特成本更低、存儲密度更高的優(yōu)勢,并且具有比硬盤更小的尺寸、更低的功耗以及更可靠的優(yōu)勢。
因為NAND閃存在消費市場上的需求量很高,因而存儲成本下降得很快,像POS(銷售點)終端、打印機以及其他應(yīng)用可以用NAND存儲器以更低的成本達到更高的密度。
然而,由于這些嵌入式應(yīng)用對更高NAND閃存密度的要求在不斷提高,設(shè)計師需要從各種NAND閃存類型、密度、供應(yīng)商以及發(fā)展路線圖和實現(xiàn)方式中作出合理選擇。
使用NAND閃存的第一個也是最重要的選擇標(biāo)準(zhǔn)是NAND控制器的實現(xiàn)。所有的NAND閃存器件都需要位于軟件中的維護開銷和作為硬件的外部控制器以確保數(shù)據(jù)可靠,使NAND閃存器件的壽命最大,并提高性能。NAND控制器的三個主要功能是壞塊管理、損耗均衡以及糾錯編碼(ECC)。
NAND閃存以簇的形式進行數(shù)據(jù)存儲,即所謂的塊。大多數(shù)NAND閃存器件在制造測試時就會發(fā)現(xiàn)有一些壞塊,這些壞塊在供應(yīng)商的器件規(guī)格說明中是有標(biāo)記的。
此外,好的塊也可能會在NAND生命周期內(nèi)降低性能,因此必須通過軟件進行跟蹤,并進行壞塊管理。此外,對特定的塊進行不斷的讀寫操作可能導(dǎo)致該塊很快“磨損”而變成壞塊。為了確保NAND器件最長的壽命,限制磨損塊的數(shù)量,需要利用損耗均衡技術(shù)讓所有的塊讀寫次數(shù)均衡。
最后,由于某個單元的休止或操作可能產(chǎn)生誤碼,因此必須以軟件或硬件方式實現(xiàn)ECC來發(fā)現(xiàn)并糾正這些誤碼。ECC通常被業(yè)界定義為每528字節(jié)扇區(qū)中能糾正的代碼比特數(shù)。在一個系統(tǒng)中,這種NAND控制器可以按照圖1所示的三種不同配置方式與NAND進行組合。
除了從圖1所示的三種NAND解決方案中作出選擇外,設(shè)計師還必須在兩種NAND閃存器件-SLC NAND和MLC NAND中作出選擇,它們各有優(yōu)缺點。
SLC NAND的每個塊都具有更長的使用壽命和可靠性,因此需要較少的ECC,并能提供優(yōu)異的性能。MLC NAND性能則較低,而且難以實現(xiàn),因為它需要更高等級的壞塊管理、損耗均衡和ECC。
然而就單比特的價格來說,它大約只有SLC NAND的1/3。由于SLC和MLC NAND之間成本差距越來越大,大多數(shù)應(yīng)用開始轉(zhuǎn)向MLC NAND,特別是較高密度的應(yīng)用,這樣可以大大地降低材料成本。
圖1中的三選一需要考慮多種因素,包括微處理器對NAND控制器的支持、所采用的NAND類型(SLC或MLC)以及平臺所要求的NAND密度。
圖1:NAND架構(gòu)選擇。
如果平臺中使用了帶完整NAND接口和控制器的微處理器,設(shè)計師通常傾向于第一種選擇。大多數(shù)當(dāng)代的微處理器即使支持NAND的話,通常也只支持較低密度的SLC NAND存儲器。
工藝技術(shù)限制了SLC或MLC NAND裸片上能夠?qū)崿F(xiàn)的存儲量,而當(dāng)前每個裸片能支持的密度大約為1GB。因此為了支持更高密度的NAND,控制器必須支持多個NAND。
通常這需要通過使用交織處理和多個芯片使能管腳實現(xiàn)。而增加多個芯片使能腳以支持多個NAND將使微處理器的引腳數(shù)量增多,因此在微處理器中包含該類型的NAND控制器不是十分流行。
而且MLC NAND接口在微處理器上很難看到,這有幾方面的原因。隨著MLC NAND工藝技術(shù)節(jié)點的持續(xù)縮小,支持這種NAND存儲器所需的ECC等級變得越來越高。
目前MLC NAND所需的ECC等級為4比特,但是很快就會提高到8比特和12比特。更多數(shù)量的ECC需要NAND控制器中的硬件支持。然而,微處理器的發(fā)展步伐比快速發(fā)展的MLC NAND遲緩得多。
對很多不同的嵌入式和可插拔式存儲器而言,“受控NAND”方法(選項2)非常有用。所有的便攜式SD/MMC卡都是這種實現(xiàn)方法,而市場上的嵌入式受控 NAND也有幾種選擇。這種方法有其優(yōu)勢,因為微處理器只需要支持一種SD/MMC類型接口就能使系統(tǒng)支持SLC或MLC NAND。
控制器是與NAND存儲器堆疊在一起的,負責(zé)處理所有的壞塊管理、損耗均衡以及NAND所需的ECC。目前受控的NAND實現(xiàn)密度在嵌入式應(yīng)用中大約為4GB,在移動卡中為8GB。
這種方法的缺點是不同的供應(yīng)商在他們的各種受控NAND上支持不同的接口(有的供應(yīng)商可能使用SD、有的供應(yīng)商可能使用MMC,也有供應(yīng)商可能使用專用接口),因此更換NAND供應(yīng)商的時候需要對軟件作大量修改
選項3讓設(shè)計師在選擇NAND類型以及選擇不同供應(yīng)商時具有最大的自由度。幾乎所有的NAND控制器都支持不同類型、不同供應(yīng)商和不同密度的NAND,而且由于NAND控制器總是使用相同的接口連接處理器,因此設(shè)計師可以自由選擇不同的NAND類型和供應(yīng)商,而不需要修改軟件。
圖2所示的框圖提供了使用具有完整SLC和MLC NAND管理功能的多媒體海量存儲控制器的西橋(West Bridge)實現(xiàn)方式。
圖2:利用Cypress公司的Astoria器件實現(xiàn)西橋的方法。
使用一個“與電腦設(shè)計中用到的南橋相似特性和目標(biāo)”的西橋接口可以支持多個處理器接口,例如SRAM、ADMUX、SPI和NAND,并支持來自任何供應(yīng)商、ECC為4比特的多達16個SLC或MLC NAND器件。
設(shè)計師因此能夠靈活地在密度方面作出選擇,并能隨時改變NAND供應(yīng)商,只需很少甚至不用修改微處理器上運行的軟件。使用一個外部NAND控制器還具有其他好處。
例如,支持高速USB接口的西橋可以將主處理器旁路掉,并在便攜式媒體播放器或手機等應(yīng)用中提供從PC到海量存儲器的直接路徑,從而實現(xiàn)最佳的側(cè)邊加載性能。如果系統(tǒng)微處理器僅限于SDIO接口的話, 對SD、MMC和SDIO接口的支持還能夠幫助設(shè)計師連接SDIO類型的器件,例如WiFi或藍牙。
當(dāng)考慮系統(tǒng)的NAND預(yù)算的各種要求(比如密度、成本、尺寸和靈活性)時,設(shè)計師有好幾種NAND實現(xiàn)選項,它們各有優(yōu)劣。如果系統(tǒng)微處理器有內(nèi)置的SLC或MLC控制器,就不需要外部器件或邏輯。[!--empirenews.page--]
否則受控NAND方法也不錯,因為它由NAND供應(yīng)商執(zhí)行封裝,同樣不需要外部邏輯或芯片。然而,為了獲得最大的靈活性,開發(fā)商可以利用外部NAND控制器來支持所有的NAND類型和偏好。這種方法還能提供性能和接口等方面的其他好處,但是需要外部芯片。