自問(wèn)世以來(lái),,NAND" title="NAND">NAND閃存" title="閃存">閃存對(duì)ECC" title="ECC">ECC(糾錯(cuò)碼)糾錯(cuò)能力的要求越來(lái)越高,。雖然這不是一個(gè)新問(wèn)題,,但是支持最新的多層單元(MLC)架構(gòu)和每單元存儲(chǔ)三位數(shù)據(jù)(three-bit-per-cell)技術(shù)所需的ECC糾錯(cuò)能力讓系統(tǒng)人員越來(lái)越難以應(yīng)付,。
過(guò)去,,ECC一直被用于提高NAND閃存子系統(tǒng)的整體數(shù)據(jù)可靠性,。但是,隨著NAND單元不斷縮小,,每個(gè)浮柵內(nèi)貯存的電子數(shù)量越來(lái)越少,。因此,為彌補(bǔ)更小的存儲(chǔ)單元所產(chǎn)生的更高的位誤碼率,,我們必須大幅提高ECC糾錯(cuò)能力,,以維持所需的系統(tǒng)可靠性。
隨著系統(tǒng)對(duì)ECC糾錯(cuò)要求不斷提高,,實(shí)現(xiàn)ECC邏輯所需的邏輯門(mén)數(shù)量也在增加,,同時(shí)系統(tǒng)復(fù)雜性也隨之提高。例如,,24位ECC需要大約200,,000個(gè)邏輯門(mén),而40位ECC則需要大約300,,000個(gè)邏輯門(mén),。據(jù)估計(jì),將來(lái)先進(jìn)的ECC算法可能需要近100萬(wàn)個(gè)邏輯門(mén)(如圖1所示),。
很多高性能閃存系統(tǒng)必須使用多通道NAND閃存才能實(shí)現(xiàn)理想的性能,。在這些系統(tǒng)中,每個(gè)通道都有其自己的ECC邏輯,。例如,,一個(gè)10通道固態(tài)硬盤(pán)(SSD)需要實(shí)現(xiàn)10通道的ECC邏輯。假如10路通道中的每一路通道都需要60位ECC,,那么僅ECC邏輯就需要300萬(wàn)個(gè)邏輯門(mén),。
NAND閃存接口選擇
1.傳統(tǒng)NAND接口
傳統(tǒng)的NAND閃存接口是一種異步通信接口,雖然近幾年這種接口的速度已提高到50MHz,,但是其它特性并沒(méi)有太大的變化,。
幾年前,美光(Micron)與其它幾家富有遠(yuǎn)見(jiàn)的公司共同成立了一家NAND閃存組織,,旨在簡(jiǎn)化業(yè)界存在的大量時(shí)序和指令標(biāo)準(zhǔn),。開(kāi)放式NAND閃存接口(ONFI)聯(lián)盟發(fā)布了其第一版ONFI 1.0規(guī)范,與最初的規(guī)范相比,這個(gè)接口規(guī)范的最大特點(diǎn)是主處理器能夠通過(guò)電子方式識(shí)別所連接的閃存類型,,以及其它重要的技術(shù)參數(shù),,如時(shí)序模式、頁(yè)面大小,、塊大小,、ECC要求等。該特性被所有的ONFI標(biāo)準(zhǔn)繼承下來(lái),,并且一直是所有ONFI標(biāo)準(zhǔn)的重要內(nèi)容,。
同步NAND接口的開(kāi)發(fā)是ONFI聯(lián)盟取得的另一個(gè)重要成就,這一接口規(guī)范又稱為ONFI 2,。目前,ONFI 2.2規(guī)范通過(guò)一個(gè)DDR源同步接口支持高達(dá)每秒20000萬(wàn)次傳輸(200MT/s),。通電后該接口可用于異步通信模式,。但是,對(duì)于更高的性能而言,,當(dāng)從異步模式轉(zhuǎn)換到同步通信模式時(shí),,主處理器會(huì)提前詢問(wèn)閃存設(shè)備是否支持更高速的同步通信接口。
2.Direct NAND解決方案
該方案實(shí)現(xiàn)通過(guò)將NAND閃存芯片直接連接到主處理器或SSD控制器來(lái)管理NAND閃存,。ECC算法交由硬件處理,,而軟件通常執(zhí)行所有的區(qū)塊管理和損耗均衡功能。初看起來(lái)該方案可能并不理想,,但考慮到今天的嵌入式處理器典型運(yùn)行速度達(dá)到數(shù)百兆赫茲,,很多甚至超過(guò)千兆赫茲,這些高性能處理器能夠以更快的速度執(zhí)行區(qū)塊管理,,并利用確定性多線程技術(shù)來(lái)提高閃存性能,。此外,由于主處理器直接管理閃存設(shè)備,,主處理器軟件可以做出實(shí)時(shí)決定,,這有助于避免因意外斷電而造成的風(fēng)險(xiǎn)。
如圖2所示,,ONFI 2.2接口規(guī)范(200MT/s)最多可支持16個(gè)標(biāo)準(zhǔn)NAND閃存芯片,,典型解決方案通常采用兩個(gè)8片NAND閃存封裝。標(biāo)準(zhǔn)8片100-BallBGA封裝含有兩條獨(dú)立的NAND總線(DQ[7:0]1和DQ[7:0]2),,每條總線連接4片NAND閃存,。閃存控制器通過(guò)兩個(gè)芯片使能信號(hào)控制每四片堆疊的裸片。典型設(shè)計(jì)是把兩條數(shù)據(jù)總線即DQ總線連接到一起,,為每個(gè)封裝提供一條8位數(shù)據(jù)總線,。最高配置由兩個(gè)內(nèi)置8片裸片的100-Ball BGA封裝組成。為選定一個(gè)特定的NAND裸片,每個(gè)標(biāo)準(zhǔn)100-Ball BGA封裝需要提供四個(gè)芯片使能(CE#)控制,。因此,,為支持這種配置,主處理器或SSD控制器需要提供8個(gè)芯片使能信號(hào),。
自問(wèn)世以來(lái),,NAND閃存對(duì)ECC(糾錯(cuò)碼)糾錯(cuò)能力的要求越來(lái)越高。雖然這不是一個(gè)新問(wèn)題,,但是支持最新的多層單元(MLC)架構(gòu)和每單元存儲(chǔ)三位數(shù)據(jù)(three-bit-per-cell)技術(shù)所需的ECC糾錯(cuò)能力讓系統(tǒng)人員越來(lái)越難以應(yīng)付,。
過(guò)去,ECC一直被用于提高NAND閃存子系統(tǒng)的整體數(shù)據(jù)可靠性,。但是,,隨著NAND單元不斷縮小,每個(gè)浮柵內(nèi)貯存的電子數(shù)量越來(lái)越少,。因此,,為彌補(bǔ)更小的存儲(chǔ)單元所產(chǎn)生的更高的位誤碼率,我們必須大幅提高ECC糾錯(cuò)能力,,以維持所需的系統(tǒng)可靠性,。
隨著系統(tǒng)對(duì)ECC糾錯(cuò)要求不斷提高,實(shí)現(xiàn)ECC邏輯所需的邏輯門(mén)數(shù)量也在增加,,同時(shí)系統(tǒng)復(fù)雜性也隨之提高,。例如,24位ECC需要大約200,,000個(gè)邏輯門(mén),,而40位ECC則需要大約300,000個(gè)邏輯門(mén),。據(jù)估計(jì),,將來(lái)先進(jìn)的ECC算法可能需要近100萬(wàn)個(gè)邏輯門(mén)(如圖1所示)。
很多高性能閃存系統(tǒng)必須使用多通道NAND閃存才能實(shí)現(xiàn)理想的性能,。在這些系統(tǒng)中,,每個(gè)通道都有其自己的ECC邏輯。例如,,一個(gè)10通道固態(tài)硬盤(pán)(SSD)需要實(shí)現(xiàn)10通道的ECC邏輯,。假如10路通道中的每一路通道都需要60位ECC,那么僅ECC邏輯就需要300萬(wàn)個(gè)邏輯門(mén),。
NAND閃存接口選擇
1.傳統(tǒng)NAND接口
傳統(tǒng)的NAND閃存接口是一種異步通信接口,,雖然近幾年這種接口的速度已提高到50MHz,但是其它特性并沒(méi)有太大的變化,。
幾年前,,美光(Micron)與其它幾家富有遠(yuǎn)見(jiàn)的公司共同成立了一家NAND閃存組織,,旨在簡(jiǎn)化業(yè)界存在的大量時(shí)序和指令標(biāo)準(zhǔn)。開(kāi)放式NAND閃存接口(ONFI)聯(lián)盟發(fā)布了其第一版ONFI 1.0規(guī)范,,與最初的規(guī)范相比,,這個(gè)接口規(guī)范的最大特點(diǎn)是主處理器能夠通過(guò)電子方式識(shí)別所連接的閃存類型,以及其它重要的技術(shù)參數(shù),,如時(shí)序模式,、頁(yè)面大小、塊大小,、ECC要求等,。該特性被所有的ONFI標(biāo)準(zhǔn)繼承下來(lái),并且一直是所有ONFI標(biāo)準(zhǔn)的重要內(nèi)容,。
同步NAND接口的開(kāi)發(fā)是ONFI聯(lián)盟取得的另一個(gè)重要成就,,這一接口規(guī)范又稱為ONFI 2。目前,,ONFI 2.2規(guī)范通過(guò)一個(gè)DDR源同步接口支持高達(dá)每秒20000萬(wàn)次傳輸(200MT/s),。通電后該接口可用于異步通信模式。但是,,對(duì)于更高的性能而言,當(dāng)從異步模式轉(zhuǎn)換到同步通信模式時(shí),,主處理器會(huì)提前詢問(wèn)閃存設(shè)備是否支持更高速的同步通信接口,。
2.Direct NAND解決方案
該方案實(shí)現(xiàn)通過(guò)將NAND閃存芯片直接連接到主處理器或SSD控制器來(lái)管理NAND閃存。ECC算法交由硬件處理,,而軟件通常執(zhí)行所有的區(qū)塊管理和損耗均衡功能,。初看起來(lái)該方案可能并不理想,但考慮到今天的嵌入式處理器典型運(yùn)行速度達(dá)到數(shù)百兆赫茲,,很多甚至超過(guò)千兆赫茲,,這些高性能處理器能夠以更快的速度執(zhí)行區(qū)塊管理,并利用確定性多線程技術(shù)來(lái)提高閃存性能,。此外,,由于主處理器直接管理閃存設(shè)備,主處理器軟件可以做出實(shí)時(shí)決定,,這有助于避免因意外斷電而造成的風(fēng)險(xiǎn),。
如圖2所示,ONFI 2.2接口規(guī)范(200MT/s)最多可支持16個(gè)標(biāo)準(zhǔn)NAND閃存芯片,,典型解決方案通常采用兩個(gè)8片NAND閃存封裝,。標(biāo)準(zhǔn)8片100-BallBGA封裝含有兩條獨(dú)立的NAND總線(DQ[7:0]1和DQ[7:0]2),每條總線連接4片NAND閃存,。閃存控制器通過(guò)兩個(gè)芯片使能信號(hào)控制每四片堆疊的裸片,。典型設(shè)計(jì)是把兩條數(shù)據(jù)總線即DQ總線連接到一起,,為每個(gè)封裝提供一條8位數(shù)據(jù)總線。最高配置由兩個(gè)內(nèi)置8片裸片的100-Ball BGA封裝組成,。為選定一個(gè)特定的NAND裸片,,每個(gè)標(biāo)準(zhǔn)100-Ball BGA封裝需要提供四個(gè)芯片使能(CE#)控制。因此,,為支持這種配置,,主處理器或SSD控制器需要提供8個(gè)芯片使能信號(hào)。
3.ClearNAND解決方案
圖3顯示了兩個(gè)不同的系統(tǒng)實(shí)現(xiàn):傳統(tǒng)的系統(tǒng)中主處理器或SSD控制器與NAND閃存直接相連,;另一個(gè)系統(tǒng)則采用ClearNAND閃存芯片,。兩種方案都采用相同的ONFI硬件接口和相似的100-Ball BGA封裝,不同之處是后者將一個(gè)薄型控制器與NAND閃存裸片整合在一個(gè)多芯片封裝(MCP)內(nèi),。ClearNAND 控制器用于實(shí)現(xiàn)MCP封裝中NAND閃存所需的ECC算法,。由于采用相同的ONFI異步或同步接口,設(shè)計(jì)人員可以輕松地從標(biāo)準(zhǔn)NAND閃存升級(jí)到 ClearNAND閃存,。
美光公司的ClearNAND 閃存分為標(biāo)準(zhǔn)型和增強(qiáng)型兩個(gè)版本,。標(biāo)準(zhǔn)型ClearNAND閃存主要用于消費(fèi)電子設(shè)備,可實(shí)現(xiàn)所需的ECC功能,,并提供便于閃存升級(jí)的傳統(tǒng)異步型ONFI總線,。
增強(qiáng)型ClearNAND閃存能夠管理ECC算法,并提供多個(gè)對(duì)于企業(yè)應(yīng)用頗具價(jià)值的關(guān)鍵功能,。它還支持ONFI 2.2接口的異步和同步通信標(biāo)準(zhǔn),,可用存儲(chǔ)容量高達(dá)64GB。
通過(guò)改善ECC算法,,兩款ClearNAND閃存都能夠?qū)崿F(xiàn)下一代NAND閃存所需的ECC糾錯(cuò)功能,。這使得設(shè)計(jì)人員無(wú)需反復(fù)重新設(shè)計(jì)電路來(lái)支持制造商最新的NAND ECC要求。
增強(qiáng)型ClearNAND閃存
圖4所示為增強(qiáng)型ClearNAND閃存的架構(gòu),。它支持1個(gè)ONFI 2.2接口和速度高達(dá)200MT/s的指令,、地址和數(shù)據(jù)總線。VDDI去耦電容常見(jiàn)于e,?MMC產(chǎn)品和內(nèi)含控制器的其它閃存,,用于對(duì)內(nèi)部穩(wěn)壓器進(jìn)行去耦。為向后兼容傳統(tǒng)NAND閃存,,VDDI連接放置在一個(gè)閑置引腳上,。ClearNAND控制器支持兩條內(nèi)部閃存總線,其中一條用于連接偶數(shù)編號(hào)的邏輯單元(LUN),,另一條則連接奇數(shù)編號(hào)的邏輯單元,。這兩條獨(dú)立閃存總線的速度高達(dá)200MT/s。此外,,每條總線都配有各自的ECC引擎,,可在兩條總線上同時(shí)管理讀操作或?qū)懖僮?。可以預(yù)見(jiàn),,未來(lái)的控制器還將支持面向400MT/s的ONFI 3接口規(guī)范,。
下面將討論增強(qiáng)型ClearNAND提供的四項(xiàng)高級(jí)功能:卷尋址、電子數(shù)據(jù)映像,、中斷功能和內(nèi)部回寫(xiě)(copyback),。
卷尋址
卷尋址允許一個(gè)片選或芯片啟動(dòng)信號(hào)(CE#)對(duì)16個(gè)ClearNAND卷進(jìn)行尋址。每個(gè) ClearNAND控制器支持在一個(gè)MCP封裝內(nèi)堆疊8個(gè)裸片,。ClearNAND控制器為主處理器或SSD控制器存取操作提供一個(gè)緩沖區(qū),。
如圖5所示,增強(qiáng)型ClearNAND設(shè)計(jì)將存儲(chǔ)容量擴(kuò)大八倍,,同時(shí)保持或提升了信號(hào)完整性,,并減少了所需的有效芯片使能數(shù)量。這是因?yàn)閷?duì)于SSD控制器,,一個(gè)ClearNAND控制器僅代表一個(gè)負(fù)載,,但是在一個(gè)MCP封裝內(nèi)最多可支持八個(gè)NAND裸片。
卷尋址概念有兩層含義,。第一層是為每個(gè)ClearNAND 封裝確定卷地址,。卷地址僅在初始化時(shí)分配一次,并保存到電源重啟為止,。第二層含義是卷選擇指令本身,,在這個(gè)新指令后面緊跟一個(gè)單字節(jié)(實(shí)際上只有4位)卷地址。一旦目標(biāo)地址被選擇,,該地址就會(huì)保持被選狀態(tài),直到另一個(gè)卷被選擇為止,。這可以節(jié)省很多使能引腳,。例如,一個(gè)32通道SSD需要8個(gè)使能引腳來(lái)控制兩個(gè)8裸片標(biāo)準(zhǔn)NAND封裝,。上述32通道SSD示例需要總共256個(gè)使能引腳,,而增強(qiáng)型ClearNAND卷尋址功能對(duì)相同數(shù)量的NAND閃存進(jìn)行尋址只需32個(gè)使能引腳。此外,,這相同的32個(gè)使能引腳可尋址容量是現(xiàn)有容量的八倍,。
電子數(shù)據(jù)映像
增強(qiáng)型ClearNAND支持電子數(shù)據(jù)映像,這允許通過(guò)電子方式將數(shù)據(jù)總線信號(hào)順序重映射為兩種配置之一,。這個(gè)功能對(duì)于PCB正反兩面都安裝ClearNAND閃存的高密度設(shè)計(jì)非常有用,。利用一個(gè)特殊的初始化或復(fù)位序列,ClearNAND封裝能夠以電子方式檢測(cè)閃存是安裝在PCB的正面還是背面,。例如,,通常的做法是在上電后向閃存發(fā)送一個(gè)復(fù)位或FFh指令,。為完成電子DQ映像,在執(zhí)行完FFh指令后,,主處理器必須接著執(zhí)行傳統(tǒng)的READ STATUS(70h)指令,。安裝在PCB正面的閃存檢測(cè)到FFh-70h命令序列;而安裝在PCB背面的閃存則檢測(cè)到FFh-0Eh命令序列,,并向主處理器確認(rèn)這是背面閃存封裝,,然后重新將數(shù)據(jù)總線直接排在正面閃存的后面,這不僅可以改善PCB的布線,,還能提高信號(hào)完整性,。
Ready/Busy#被重新定義為中斷
增強(qiáng)型ClearNAND閃存將現(xiàn)有的ready/busy#引腳重新定義為一個(gè)中斷引腳。如圖6所示,,interrupt#信號(hào)仍是開(kāi)漏信號(hào),,當(dāng)ClearNAND卷或裸片就緒時(shí),它提供一個(gè)實(shí)時(shí)中斷信號(hào),。設(shè)計(jì)人員可以利用這個(gè)中斷信號(hào)向主處理器或SSD控制器提供閃存實(shí)時(shí)狀態(tài),。在一條總線上支持多個(gè)ClearNAND封裝的大型配置中,interrupt#信號(hào)線可以連接在一起,。當(dāng)檢測(cè)到一個(gè)中斷信號(hào)時(shí),,主處理器或SSD控制器只要詢問(wèn)每個(gè)ClearNAND 封裝或卷,即可知道是哪個(gè)卷發(fā)送的新?tīng)顟B(tài)信息,。這個(gè)中斷功能可節(jié)省主處理器或SSD控制器上的信號(hào)數(shù)量,,同時(shí)提高SSD控制器對(duì)狀態(tài)更新的響應(yīng)能力。
內(nèi)部回寫(xiě)
內(nèi)部回寫(xiě)功能又稱為內(nèi)部數(shù)據(jù)遷移(internal data move),,是增強(qiáng)型ClearNAND 閃存最引人注目的特性之一,。閃存的損耗均衡或碎片清理操作是指整理不同的NAND閃存頁(yè)面和區(qū)塊內(nèi)的數(shù)據(jù)碎片,并將其合并成新的區(qū)塊或區(qū)塊序列,,這個(gè)功能類似老式硬盤(pán)的磁盤(pán)碎片整理工具,。對(duì)于這類操作,回寫(xiě)功能可為SSD系統(tǒng)提供巨大的優(yōu)勢(shì),。
再來(lái)看圖2,,當(dāng)使用標(biāo)準(zhǔn)NAND閃存時(shí),將數(shù)據(jù)碎片從一個(gè)區(qū)塊轉(zhuǎn)移到另一個(gè)區(qū)塊通常需要執(zhí)行下列操作:
SSD控制器發(fā)布一個(gè)READ指令和源地址以訪問(wèn)數(shù)據(jù)源頁(yè),;SSD控制器從NAND閃存讀取數(shù)據(jù),,同時(shí)執(zhí)行運(yùn)算和必要的ECC糾錯(cuò)操作,然后實(shí)現(xiàn)數(shù)據(jù)或元數(shù)據(jù)的更新操作,;SSD控制器計(jì)算并加入新的ECC信息,,然后發(fā)布新的PROGRAM指令、目的地址和數(shù)據(jù)序列,,該操作將把數(shù)據(jù)保存到新的NAND閃存區(qū)塊內(nèi),。
在這個(gè)連續(xù)的操作過(guò)程中,,當(dāng)數(shù)據(jù)從源地址移到目的地址時(shí),總線處于被占用狀態(tài),,這個(gè)操作過(guò)程需要很長(zhǎng)時(shí)間,。假設(shè)一個(gè)8K的存儲(chǔ)頁(yè),工作在200MT/s的ONFI 2.2同步總線需要大約 41μs來(lái)移動(dòng)數(shù)據(jù),。因?yàn)閿?shù)據(jù)必須移出再移進(jìn)閃存,,所以需要兩倍的時(shí)間即82μs,但這個(gè)時(shí)間不包含ECC所花費(fèi)的時(shí)間,。在執(zhí)行這個(gè)序列的過(guò)程中,,ONFI閃存總線始終處于占用狀態(tài),不能處理其它任何操作,。
與普通閃存不同,,增強(qiáng)型ClearNAND閃存支持內(nèi)部ECC。假如數(shù)據(jù)的源地址和目的地址都在ClearNAND封裝內(nèi),,采用內(nèi)部ECC可以在封裝內(nèi)部執(zhí)行回寫(xiě)操作,。SSD控制器仍負(fù)責(zé)發(fā)布指令和地址,以及經(jīng)修改的數(shù)據(jù)或元數(shù)據(jù),。ClearNAND控制器執(zhí)行數(shù)據(jù)遷移操作,,而不會(huì)占用外部的ONFI數(shù)據(jù)總線。如果SSD控制器能夠把損耗均衡和碎片清理功能整合在一個(gè)ClearNAND封裝內(nèi),,它將在性能方面具有更強(qiáng)的優(yōu)勢(shì),。
圖7所示是一個(gè)在標(biāo)識(shí)為通道0和通道1的兩路ONFI通道上采用增強(qiáng)型ClearNAND閃存的示例。在兩個(gè)SSD通道上,,我們看到有四個(gè)內(nèi)部數(shù)據(jù)遷移操作同步進(jìn)行,,數(shù)據(jù)移動(dòng)并沒(méi)有占用外部ONFI總線。在必要時(shí),,這個(gè)特性允許SSD控制器和ONFI總線在ClearNAND封裝之間遷移數(shù)據(jù),。根據(jù)用戶所使用的架構(gòu),某些操作可能需要在ClearNAND封裝之間甚至ONFI總線之間進(jìn)行,。利用內(nèi)部數(shù)據(jù)遷移操作,,可大幅提升碎片清理和損耗均衡操作的性能,。
本文小結(jié)
美光公司的增強(qiáng)型ClearNAND閃存為系統(tǒng)設(shè)計(jì)" title="系統(tǒng)設(shè)計(jì)">系統(tǒng)設(shè)計(jì)人員提供更高的性能和更多的功能,,同時(shí)緩解了NAND閃存對(duì)ECC糾錯(cuò)能力的日益嚴(yán)格的要求。增強(qiáng)型ClearNAND閃存支持與標(biāo)準(zhǔn)100-Ball BGA NAND閃存相似的焊球排列,,用戶可以設(shè)計(jì)出同時(shí)支持這兩種封裝的產(chǎn)品,。例如,該產(chǎn)品將使SSD主控制器擁有充足的ECC糾錯(cuò)能力來(lái)直接支持SLC NAND閃存,,選擇增強(qiáng)型ClearNAND閃存還能滿足ECC面臨更大挑戰(zhàn)的多級(jí)單元需求,。
增強(qiáng)型ClearNAND閃存的卷尋址特性可使用更少的引腳實(shí)現(xiàn)更大容量尋址,,從而為SSD方案中節(jié)省數(shù)百個(gè)引腳。電子數(shù)據(jù)映像功能可簡(jiǎn)化PCB設(shè)計(jì)和走線,,同時(shí)還能提高ONFI總線的信號(hào)完整性,。智能中斷功能向SSD控制器提供實(shí)時(shí)狀態(tài)更新信息,并最大限度地縮小對(duì)固件的輪詢,。兩路內(nèi)部NAND閃存總線可改善回寫(xiě)功能,,從而提高閃存的性能。