本發(fā)明涉及存儲(chǔ)設(shè)備硬件技術(shù)領(lǐng)域,尤其涉及一種Nand Flash的編程方法。
背景技術(shù):
Nand Flash是Flash內(nèi)存的一種,具有容量大,改寫速度快等優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲(chǔ)。隨著Nand Flash的發(fā)展,其存儲(chǔ)單元已由早期的單層單元(Single Level Cell,SLC)逐漸演變?yōu)槎鄬訂卧?Multi Level Cell,MLC)、三層單元(Triple-Level Cell,TLC)以及四層單元(Quad Level Cell,QLC)等,Nand Flash的存儲(chǔ)單元層次增大主要由于存儲(chǔ)單元具有的比特位個(gè)數(shù)增多,相對(duì)應(yīng)的,Nand Flash顆粒存儲(chǔ)單元比特位的狀態(tài)也由2種變?yōu)?種、8種甚至16種。
在對(duì)Nand Flash進(jìn)行操作時(shí),當(dāng)Nand Flash完成擦除操作后,若存儲(chǔ)單元的比特位處于擦除狀態(tài),則說(shuō)明可進(jìn)行編程操作。對(duì)于多比特位的Nand Flash顆粒來(lái)說(shuō),在進(jìn)行編程操作時(shí),可將編程操作分為多步,一般地,第一步先將部分存儲(chǔ)單元編程到中間狀態(tài),其余幾步編程再將余下的處于擦除狀態(tài)的存儲(chǔ)單元及處于中間狀態(tài)的存儲(chǔ)單元,分別編程到相應(yīng)的編程狀態(tài)。圖1給出了TLC Nand Flash顆粒編程操作時(shí)存儲(chǔ)單元狀態(tài)變化的示意圖,如圖1所示,在第一步編程后,部分存儲(chǔ)單元處于擦除狀態(tài),部分處于中間狀態(tài)L1;再次進(jìn)行編程操作后,存儲(chǔ)單元會(huì)處于相應(yīng)的編程狀態(tài),這些編程狀態(tài)可記為P1、P2、...、P7。
對(duì)于多比特位的Nand Flash顆粒來(lái)說(shuō),現(xiàn)有的編程方法,對(duì)選中的編程頁(yè)進(jìn)行編程操作時(shí),在進(jìn)行第一次編程達(dá)到中間狀態(tài)后,第二次進(jìn)行編程時(shí)還是從最初的編程電壓開始編程,且在加壓編程后,對(duì)存儲(chǔ)單元從第1編程狀態(tài)開始進(jìn)行驗(yàn)證,該編程操作嚴(yán)重影響了編程速度和編程精度,從而直接影響用戶 寫入數(shù)據(jù)的正確性和時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供一種Nand Flash的編程方法,以提高Nand Flash內(nèi)存的編程精度和編程速度。
本發(fā)明實(shí)施例提供了一種Nand Flash的編程方法,包括:
基于字線地址確定當(dāng)前編程頁(yè)要施加的初始編程電壓值,在設(shè)定時(shí)間內(nèi)加壓編程;
確定當(dāng)前編程頁(yè)進(jìn)行編程驗(yàn)證的起始編程狀態(tài),并啟動(dòng)編程驗(yàn)證;
若編程驗(yàn)證失敗,則以設(shè)定步進(jìn)值抬升當(dāng)前編程電壓,之后進(jìn)行編程驗(yàn)證;重復(fù)當(dāng)前步驟,直到編程驗(yàn)證成功,停止編程操作。
進(jìn)一步的,所述基于字線地址確定當(dāng)前編程頁(yè)要施加的初始編程電壓值,具體為:判定當(dāng)前編程頁(yè)的字線地址與上一編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,若是,則直接為當(dāng)前編程頁(yè)施加與上一編程頁(yè)相同的初始編程電壓;若否,則確定當(dāng)前編程頁(yè)的所屬存儲(chǔ)塊,讀取當(dāng)前編程頁(yè)所屬存儲(chǔ)塊的信息記錄,為當(dāng)前編程頁(yè)施加所述信息記錄中設(shè)定的初始編程電壓。
進(jìn)一步的,所有存儲(chǔ)塊的信息記錄以信息表的形式存放于Nand Flash的邏輯寄存器中,其中,一個(gè)存儲(chǔ)塊對(duì)應(yīng)所述信息表的一行信息記錄。
進(jìn)一步的,所述一個(gè)存儲(chǔ)塊對(duì)應(yīng)的一行信息記錄內(nèi)容為:加壓編程的初始電壓值以及編程驗(yàn)證的起始編程狀態(tài)。
進(jìn)一步的,所述一行信息記錄中包括1個(gè)加壓編程的初始電壓值和n個(gè)編程驗(yàn)證的起始編程狀態(tài),其中,n為存儲(chǔ)塊基于字線地址劃分的字線分段數(shù)。
進(jìn)一步的,每個(gè)字線分段中的待編程頁(yè)個(gè)數(shù)相同,且處于一個(gè)字線分段中的待編程頁(yè)對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息相同。
進(jìn)一步的,所述確定當(dāng)前編程頁(yè)編程驗(yàn)證的起始編程狀態(tài),具體為:確定當(dāng)前編程頁(yè)所在的字線分段,讀取所述字線分段對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息。
進(jìn)一步的,Nand Flash基于歷史編程操作信息設(shè)定存儲(chǔ)塊的信息記錄。
進(jìn)一步的,由Nand Flash的控制單元控制存儲(chǔ)塊信息記錄的讀取。
本發(fā)明實(shí)施例提供的一種Nand Flash的編程方法,是對(duì)現(xiàn)有的編程方法的改進(jìn),與現(xiàn)有方法相比,本發(fā)明的方法基于提前記錄的信息,在當(dāng)前編程頁(yè)進(jìn)入中間狀態(tài)再次編程時(shí)直接依據(jù)信息記錄中的初始編程電壓值和進(jìn)行編程驗(yàn)證的起始編程狀態(tài)進(jìn)行編程操作。利用該方法,無(wú)需再?gòu)淖畹碗妷褐甸_始加壓編程,也不用從最初編程狀態(tài)開始編程驗(yàn)證,很大程度節(jié)省了編程時(shí)間,提高了Nand Flash的編程精度和編程速度,避免了對(duì)用戶寫入Nand Flash的時(shí)間及寫入數(shù)據(jù)正確性的影響。
附圖說(shuō)明
圖1為TLC Nand Flash顆粒編程操作時(shí)存儲(chǔ)單元狀態(tài)變化的示意圖;
圖2為本發(fā)明實(shí)施例一提供的一種Nand Flash的編程方法的流程圖;
圖3A為本發(fā)明實(shí)施例二提供的一種Nand Flash的編程方法的流程圖;
圖3B為本發(fā)明實(shí)施例二提供的一種Nand Flash的編程方法在TLC Nand Flash中的編程過(guò)程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
實(shí)施例一
圖2為本發(fā)明實(shí)施例一提供的一種Nand Flash的編程方法的流程圖,該方法由Nand Flash執(zhí)行,是對(duì)現(xiàn)有編程方法的一種改進(jìn),如圖2所示,該方法包括:
步驟101、基于字線地址確定當(dāng)前編程頁(yè)要施加的初始編程電壓值,在設(shè)定時(shí)間內(nèi)加壓編程。
一般地,對(duì)于Nand Flash的編程操作,首先是選中字線,然后對(duì)選中字線的編程頁(yè)進(jìn)行加壓編程及編程驗(yàn)證等操作。在本實(shí)施例中,所述字線地址可指Nand Flash中存儲(chǔ)單元陣列組成的存儲(chǔ)頁(yè)所具有的地址,其中,多個(gè)存儲(chǔ)頁(yè)可組成一個(gè)存儲(chǔ)塊,即一個(gè)存儲(chǔ)塊內(nèi)具有多個(gè)可以編程的存儲(chǔ)頁(yè),且每個(gè)存儲(chǔ)頁(yè)都有一個(gè)相應(yīng)的字線地址。此外,在本實(shí)施例中,在選中字線后,并不直接從最低編程電壓對(duì)編程頁(yè)進(jìn)行編程,而是先基于編程頁(yè)的字線地址來(lái)確定編程的初始電壓值,之后在設(shè)定的時(shí)間內(nèi)持續(xù)為編程頁(yè)施加電壓。
進(jìn)一步的,基于字線地址確定當(dāng)前編程頁(yè)要施加的初始編程電壓值,具體為:判定當(dāng)前編程頁(yè)的字線地址與上一編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,若是,則直接為當(dāng)前編程頁(yè)施加與上一編程頁(yè)相同的初始編程電壓;若否,則確定當(dāng)前編程頁(yè)的所屬存儲(chǔ)塊,讀取當(dāng)前編程頁(yè)所屬存儲(chǔ)塊的信息記錄,為當(dāng)前編程頁(yè)施加所述信息記錄中設(shè)定的初始編程電壓。
在本實(shí)施例中,對(duì)當(dāng)前編程頁(yè)進(jìn)行編程操作前,為了節(jié)省編程操作的時(shí)間,不需要對(duì)編程頁(yè)進(jìn)行首次編程,使編程頁(yè)存儲(chǔ)單元的編程狀態(tài)處于中間狀態(tài),而是在編程操作前根據(jù)存儲(chǔ)塊對(duì)應(yīng)的信息記錄,確定當(dāng)前編程頁(yè)可以施加的最優(yōu)初始編程電壓值。確定初始編程電壓的過(guò)程可以簡(jiǎn)單描述為:先判斷當(dāng)前編 程頁(yè)的字線地址與上一編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,如果屬于同一存儲(chǔ)塊,可直接對(duì)當(dāng)前編程頁(yè)施加與上一編程頁(yè)相同的初始編程電壓,并在設(shè)定時(shí)間內(nèi)持續(xù)施加該編程電壓;如果不屬于同一存儲(chǔ)塊,則需要先確定當(dāng)前編程頁(yè)字線地址所屬的存儲(chǔ)塊,再讀取當(dāng)前編程頁(yè)所屬存儲(chǔ)塊的信息記錄,由此確定當(dāng)前編程頁(yè)要施加的初始編程電壓值。需要說(shuō)明的是,當(dāng)前編程頁(yè)可施加的初始編程電壓值的信息,記錄在所述當(dāng)前編程頁(yè)所屬存儲(chǔ)塊對(duì)應(yīng)的信息記錄中。
進(jìn)一步的,在本實(shí)施例中,所有存儲(chǔ)塊的信息記錄以信息表的形式存放于Nand Flash的邏輯寄存器中,其中,一個(gè)存儲(chǔ)塊對(duì)應(yīng)所述信息表的一行信息記錄。
具體的,為了提高Nand Flash的編程精度,同時(shí)節(jié)省編程時(shí)間,在Nand Flash的編程操作開始前,應(yīng)該先將對(duì)編程頁(yè)施加初始編程電壓的大小以及從哪里開始進(jìn)行編程驗(yàn)證這些信息作為參考值記錄下來(lái)。一般來(lái)說(shuō),同一存儲(chǔ)塊中的編程頁(yè)初始編程電壓的波動(dòng)不大,因此可以以存儲(chǔ)塊為單位進(jìn)行相關(guān)信息的記錄,最終所有存儲(chǔ)塊的信息記錄可匯成一張信息表,存放于Nand Flash的邏輯寄存器中。在本實(shí)施例中,Nand Flash的一個(gè)存儲(chǔ)塊對(duì)應(yīng)了信息表中的一行信息記錄。進(jìn)而選中字線的編程頁(yè)可以基于所屬存儲(chǔ)塊的信息記錄快速讀取所需的初始編程電壓值進(jìn)行加壓編程。
進(jìn)一步的,所述一個(gè)存儲(chǔ)塊對(duì)應(yīng)的一行信息記錄內(nèi)容為:加壓編程的初始電壓值以及編程驗(yàn)證的起始編程狀態(tài)。
在本實(shí)施例中,信息表中的信息記錄內(nèi)容具體可描述為:當(dāng)前存儲(chǔ)塊中包含的所有待編程頁(yè)加壓編程時(shí)所要施加的初始編程電壓值、以及加壓編程后開始編程驗(yàn)證時(shí),進(jìn)行編程驗(yàn)證的起始編程狀態(tài)。
示例性的,對(duì)于TLC Nand Flash內(nèi)存來(lái)說(shuō),現(xiàn)有的編程方法需要先為編程 頁(yè)首次加壓編程使Nand Flash存儲(chǔ)單元比特位狀態(tài)處于中間狀態(tài),然后對(duì)編程從首次施加的初始電壓值開始再次加壓編程,最終使存儲(chǔ)單元比特位處于應(yīng)該編程到的編程狀態(tài)。利用本發(fā)明改進(jìn)后的編程方法,在對(duì)編程頁(yè)加壓編程前,只需讀取該編程頁(yè)所在存儲(chǔ)塊對(duì)應(yīng)的信息記錄,基于信息記錄中的初始編程電壓值信息,就可對(duì)該編程頁(yè)直接加壓編程使存儲(chǔ)單元比特位處于應(yīng)該編程到的編程狀態(tài),很大程度節(jié)省了編程時(shí)間。
步驟102、確定當(dāng)前編程頁(yè)進(jìn)行編程驗(yàn)證的起始編程狀態(tài),并啟動(dòng)編程驗(yàn)證。
在本實(shí)施例中,對(duì)當(dāng)前編程頁(yè)進(jìn)行加壓編程后,需要驗(yàn)證當(dāng)前編程頁(yè)的存儲(chǔ)單元是否達(dá)到了應(yīng)該處于的編程狀態(tài)。一般地,對(duì)于多比特位的Nand Flash來(lái)說(shuō),其存儲(chǔ)單元具有多個(gè)編程狀態(tài),這些編程狀態(tài)可依次記為第1狀態(tài)、第2狀態(tài)、...、第m狀態(tài),其中,m為Nand Flash具有的編程狀態(tài)總數(shù),且m記為m=2N-1,N為Nand Flash的存儲(chǔ)單元具有的比特位個(gè)數(shù)。加壓編程后,現(xiàn)有的編程方法直接從第1狀態(tài)開始對(duì)所有編程狀態(tài)進(jìn)行編程驗(yàn)證,本發(fā)明的編程方法只需讀取該編程頁(yè)相應(yīng)存儲(chǔ)塊的信息記錄,就能確定該編程頁(yè)從哪個(gè)編程狀態(tài)開始進(jìn)行編程驗(yàn)證。
進(jìn)一步的,一行信息記錄中包括1個(gè)加壓編程的初始電壓值和n個(gè)編程驗(yàn)證的起始編程狀態(tài),其中,n為存儲(chǔ)塊基于字線地址劃分的字線分段數(shù)。
在本實(shí)施例中,一個(gè)存儲(chǔ)塊對(duì)應(yīng)一行信息記錄,該信息記錄以二進(jìn)制形式記錄了1個(gè)加壓編程的初始電壓值和n個(gè)編程驗(yàn)證的起始編程狀態(tài)信息,其中n為相應(yīng)存儲(chǔ)塊基于字線地址劃分的字線分段數(shù)。具體的,在設(shè)定信息記錄時(shí),對(duì)于一個(gè)存儲(chǔ)塊,為其設(shè)定1個(gè)加壓編程的初始電壓值即可;但為了保證編程操作時(shí)的編程精度,往往為其設(shè)定多個(gè)編程驗(yàn)證的起始編程狀態(tài)信息。其設(shè)定操作簡(jiǎn)要描述為:將一個(gè)存儲(chǔ)塊基于字線分段地址均分為n組字線分段,然后 為每組字線分段設(shè)定1個(gè)編程驗(yàn)證的起始編程狀態(tài)信息。因此信息表中的一行信息記錄就包括n個(gè)編程驗(yàn)證的起始編程狀態(tài)信息。
進(jìn)一步的,每個(gè)字線分段中的待編程頁(yè)個(gè)數(shù)相同,且處于一個(gè)字線分段中的待編程頁(yè)對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息相同。
具體的,基于字線分段地址對(duì)存儲(chǔ)塊進(jìn)行的是均分,因此存儲(chǔ)塊的每個(gè)字線分段中包含的待編程頁(yè)個(gè)數(shù)相同,且這些處于一個(gè)字線分段中的待編程頁(yè)在加壓編程后,進(jìn)行編程驗(yàn)證的起始編程狀態(tài)是相同的。
在本實(shí)施例中,基于字線分段地址均分存儲(chǔ)塊后,每個(gè)字線分段中的待編程頁(yè)進(jìn)行編程驗(yàn)證的起始編程狀態(tài)信息可優(yōu)選設(shè)定為:處于該字線分段首位的編程頁(yè)進(jìn)行編程驗(yàn)證時(shí)的起始編程狀態(tài)信息。也可理解為:該字線分段中其余的待編程頁(yè)開始編程驗(yàn)證時(shí)讀取的起始編程狀態(tài)信息與處于該字線分段首位的待編程頁(yè)的起始編程狀態(tài)信息相同。
進(jìn)一步的,所述確定當(dāng)前編程頁(yè)編程驗(yàn)證的起始編程狀態(tài),具體為:確定當(dāng)前編程頁(yè)所在的字線分段,讀取所述字線分段對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息。
具體的,如果當(dāng)前編程頁(yè)的字線地址與上一編程頁(yè)的字線地址屬于同一存儲(chǔ)塊,在直接施加與上一編程頁(yè)相同的初始編程電壓后,要確定當(dāng)前編程頁(yè)的字線地址處于所在存儲(chǔ)塊哪個(gè)字線分段中,然后依據(jù)所在字線分段對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息進(jìn)行編程驗(yàn)證;如果當(dāng)前編程頁(yè)與上一編程頁(yè)不屬于同一存儲(chǔ)塊,在確定當(dāng)前編程頁(yè)的所屬存儲(chǔ)塊并讀取初始編程電壓信息加壓編程后,還要繼續(xù)確定當(dāng)前編程頁(yè)的字線地址處于哪個(gè)字線分段中,然后再依據(jù)所在字線分段對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息進(jìn)行編程驗(yàn)證。
步驟103、若編程驗(yàn)證失敗,則以設(shè)定步進(jìn)值抬升當(dāng)前編程電壓,之后進(jìn)行 編程驗(yàn)證;重復(fù)當(dāng)前步驟,直到編程驗(yàn)證成功,停止編程操作。
在本實(shí)施例中,編程操作的結(jié)束條件為當(dāng)前編程頁(yè)中的存儲(chǔ)單元比特位所處的狀態(tài)達(dá)到了編程要求的編程狀態(tài)。存儲(chǔ)單元比特位是否達(dá)到編程狀態(tài)可通過(guò)編程驗(yàn)證查驗(yàn),當(dāng)編程驗(yàn)證未通過(guò)時(shí),需要繼續(xù)以設(shè)定步進(jìn)值抬升電壓對(duì)當(dāng)前編程頁(yè)再次進(jìn)行加壓編程,加壓編程后可依據(jù)對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息再次開始編程驗(yàn)證,重復(fù)這樣的操作直到驗(yàn)證成功才可停止編程操作。
需要說(shuō)明的是,在本實(shí)施例中,Nand Flash基于歷史編程操作信息設(shè)定存儲(chǔ)塊的信息記錄。具體的,可先基于現(xiàn)有的編程方法對(duì)存儲(chǔ)塊的編程頁(yè)進(jìn)行編程操作,編程期間需要記錄對(duì)編程頁(yè)的編程操作信息。其編程操作信息可以是存儲(chǔ)單元比特位處于中間狀態(tài)時(shí)施加給編程頁(yè)的當(dāng)前編程電壓信息、以及從哪個(gè)編程狀態(tài)開始進(jìn)行編程驗(yàn)證時(shí)其驗(yàn)證結(jié)果最優(yōu)等。依據(jù)這些操作信息可以設(shè)定出更適合編程操作的編程信息,以便再次編程操作時(shí)使用。
進(jìn)一步的,由Nand Flash的控制單元控制存儲(chǔ)塊信息記錄的讀取。具體的,在確定當(dāng)前編程頁(yè)要施加的初始編程電壓值及其當(dāng)前編程頁(yè)進(jìn)行編程驗(yàn)證的起始編程狀態(tài)時(shí),對(duì)信息記錄的讀取工作由Nand Flash的控制單元來(lái)控制操作。
本發(fā)明實(shí)施例一提供的一種Nand Flash的編程方法,對(duì)現(xiàn)有編程方法進(jìn)行改進(jìn),在編程操作前,先基于編程頁(yè)所在的存儲(chǔ)塊確定要施加的初始編程電壓值,并在加壓編程后,再基于所在的存儲(chǔ)塊字線分段確定進(jìn)行編程驗(yàn)證的起始編程狀態(tài)信息。利用該方法,可以大大降低整個(gè)編程操作的時(shí)間消耗,很大程度的提高編程速度,同時(shí)也有效提高了Nand Flash的編程精度,避免了對(duì)用戶寫入Nand Flash的時(shí)間及寫入數(shù)據(jù)正確性的影響。
實(shí)施例二
如圖3A所示,本發(fā)明實(shí)施例三提供了一種Nand Flash的編程方法的優(yōu)選實(shí) 施例,本實(shí)施例基于TLC Nand Flash,詳細(xì)說(shuō)明了本發(fā)明所提的一種Nand Flash的編程方法。具體的本實(shí)施例所提編程方法的編程示意圖如圖3B所示,下面具體結(jié)合圖3A,詳細(xì)說(shuō)明圖3B的編程操作過(guò)程,如圖3A所示,給出了本發(fā)明實(shí)施例的方法在TLC Nand Flash中進(jìn)行編程操作的流程示意圖,具體包括如下步驟:
步驟201、選中字線確定TLC Nand Flash的當(dāng)前編程頁(yè)。
示例性的,基于TLC Nand Flash的控制單元選取要編程的字線,由此確定當(dāng)前編程頁(yè)。
步驟202、判定當(dāng)前編程頁(yè)的字線地址與上一編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,若是,則執(zhí)行步驟203;若否,則執(zhí)行步驟204。
示例性的,所述當(dāng)前編程頁(yè)為TLC Nand Flash中通過(guò)選中字線獲取的編程頁(yè)。在編程操作前,先判斷當(dāng)前編程頁(yè)的字線地址與上一次編程操作時(shí)編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,由此確定加壓編程時(shí)的初始編程電壓值。
步驟203、直接為當(dāng)前編程頁(yè)施加與上一編程頁(yè)相同的初始編程電壓,并在設(shè)定時(shí)間內(nèi)持續(xù)施壓。
在本實(shí)施例中,若當(dāng)前編程頁(yè)的字線地址與上一次編程操作時(shí)編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,則執(zhí)行步驟203,可直接施加與上一編程頁(yè)相同的初始編程電壓。具體的,由TLC Nand Flash的控制單元控制電壓泵向編程頁(yè)持續(xù)施加與上一編程頁(yè)相同的電壓值,同時(shí)控制單元還控制電壓泵向編程頁(yè)施加電壓的時(shí)間,且在加壓編程時(shí)電壓泵向字線施加高電平電壓,同時(shí)保持編程頁(yè)的位線電平為0。
步驟204、確定當(dāng)前編程頁(yè)的所屬存儲(chǔ)塊,讀取當(dāng)前編程頁(yè)所屬存儲(chǔ)塊的信息記錄,為當(dāng)前編程頁(yè)施加所述信息記錄中設(shè)定的初始編程電壓,并在設(shè)定時(shí) 間內(nèi)持續(xù)施壓。
在本實(shí)施例中,如果當(dāng)前編程頁(yè)的字線地址與上一次編程操作時(shí)編程頁(yè)的字線地址是否屬于同一存儲(chǔ)塊,需執(zhí)行步驟204,先確定當(dāng)前編程頁(yè)的所屬存儲(chǔ)塊,再基于所屬存儲(chǔ)塊的信息記錄確定要施加的初始編程電壓。
具體的,在本實(shí)施例中,TLC Nand Flash中存儲(chǔ)塊的信息記錄主要基于該TLC Nand Flash的歷史編程操作中的相關(guān)信息設(shè)定。當(dāng)再次對(duì)該TLC Nand Flash進(jìn)行編程操作時(shí),在選中字線確定編程頁(yè)后,先確定當(dāng)前編程頁(yè)所屬的存儲(chǔ)塊,再基于該Nand Flash的控制單元讀取存放在邏輯寄存器中信息表的信息記錄,由此確定當(dāng)前編程頁(yè)的初始編程電壓值。其中,所述信息表包含該TLC Nand Flash所有存儲(chǔ)塊的信息記錄,一個(gè)存儲(chǔ)塊對(duì)應(yīng)信息表中的一行信息記錄,且一行信息記錄包含的內(nèi)容有:1個(gè)加壓編程的初始電壓值和n個(gè)編程驗(yàn)證的起始編程狀態(tài),n為存儲(chǔ)塊基于字線地址劃分的字線分段數(shù)。所述加壓編程的初始電壓值用于作為相應(yīng)編程頁(yè)施加的初始電壓值;所述編程驗(yàn)證的起始編程狀態(tài)用于作為當(dāng)前編程頁(yè)加壓編程后進(jìn)行編程驗(yàn)證時(shí)驗(yàn)證開始的編程狀態(tài)。
步驟205、確定當(dāng)前編程頁(yè)所在的字線分段,讀取所述字線分段對(duì)應(yīng)的編程驗(yàn)證的起始編程狀態(tài)信息。
在本實(shí)施例中,當(dāng)確定了當(dāng)前編程頁(yè)的初始電壓值,完成加壓編程后,需要對(duì)當(dāng)前編程頁(yè)進(jìn)行編程驗(yàn)證。編程驗(yàn)證的起始編程狀態(tài)可以對(duì)所屬存儲(chǔ)塊的信息記錄進(jìn)行讀取,在讀取起始編程狀態(tài)前,需先確定當(dāng)前編程頁(yè)所在的字線分段,之后再讀取所在的字線分段對(duì)應(yīng)的編程驗(yàn)證起始編程狀態(tài)信息。
在本實(shí)施例中,一個(gè)存儲(chǔ)塊的信息記錄中含有n個(gè)編程驗(yàn)證的起始編程狀態(tài)信息,即若一個(gè)存儲(chǔ)塊劃分為n個(gè)字線分段,則每個(gè)字線分段都對(duì)應(yīng)一個(gè)起始編程狀態(tài)信息。因此當(dāng)前編程頁(yè)讀取起始編程狀態(tài)信息時(shí)需先確定所在字線 分段。示例性的,在TLC Nand Flash中,其存儲(chǔ)單元具有3個(gè)比特位,所以編程狀態(tài)總數(shù)m為7,可分別記作第1狀態(tài)p1、第2狀態(tài)p2、...、第i狀態(tài)pi、...、以及第7狀態(tài)p7,同時(shí),若該TLC Nand Flash的一個(gè)存儲(chǔ)塊中具有128個(gè)待編程頁(yè),則其字線地址可表示為WL0~WL127。若將待編程頁(yè)均分為4組,則按字線分段地址可將字線分為WL0~WL31、WL32~WL63、WL64~WL95、以及WL96~WL127?;谏鲜?組字線分段,所屬存儲(chǔ)塊的信息記錄中也相應(yīng)設(shè)定了4個(gè)編程驗(yàn)證的起始編程狀態(tài)信息。優(yōu)選地,在設(shè)定起始編程狀態(tài)信息時(shí),可將每組字線分段的首個(gè)待編程頁(yè)的起始編程狀態(tài)信息看作該組所有待編程頁(yè)的起始編程狀態(tài)信息,如WL1~WL31所對(duì)應(yīng)的待編程頁(yè),其編程狀態(tài)信息就可看作是WL0待編程頁(yè)的起始編程狀態(tài)信息,從而可以依據(jù)信息記錄的起始編程狀態(tài)第4狀態(tài)P4開始進(jìn)行編程驗(yàn)證。
步驟206、啟動(dòng)編程驗(yàn)證。
在本實(shí)施例中,在確定編程驗(yàn)證的起始編程狀態(tài)后,開始從該編程狀態(tài)進(jìn)行編程驗(yàn)證。
步驟207、判斷編程驗(yàn)證是否成功,若否,則執(zhí)行步驟208;若是,則執(zhí)行步驟209。
在本實(shí)施例中,編程驗(yàn)證的過(guò)程即查驗(yàn)存儲(chǔ)單元比特位的狀態(tài)是否已處于應(yīng)該編程到的狀態(tài),如果查驗(yàn)結(jié)果不滿足編程結(jié)束條件,則需執(zhí)行步驟208,如果滿足編程結(jié)束條件則可執(zhí)行步驟209。
步驟208、以設(shè)定步進(jìn)值抬升當(dāng)前編程電壓,之后返回步驟206。
在本實(shí)施例中,如果編程驗(yàn)證沒(méi)有滿足編程結(jié)束條件,則需要抬升施加給當(dāng)前編程頁(yè)的編程電壓。一般地,以設(shè)定步進(jìn)值抬升編程電壓,所述步進(jìn)值具體可為一個(gè)固定電壓增量值,可優(yōu)選為0.5V~1.5V的任一數(shù)值。
步驟209、停止編程操作。
當(dāng)完成上述步驟后,可停止對(duì)當(dāng)前編程頁(yè)的編程操作。
本發(fā)明實(shí)施例二提供的一種Nand Flash的編程方法的優(yōu)選實(shí)施例,在該優(yōu)選實(shí)施例中,選中TLC Nand Flash的一個(gè)字線后,先確定施加給該選中字線編程頁(yè)的初始編程電壓值,加壓編程后再確定進(jìn)行編程驗(yàn)證時(shí)的起始編程狀態(tài),并從該起始編程狀態(tài)進(jìn)行編程驗(yàn)證。利用該方法,可以大大降低整個(gè)編程操作的時(shí)間消耗,很大程度的提高編程速度,同時(shí)也有效提高了Nand Flash的編程精度,避免了對(duì)用戶寫入Nand Flash的時(shí)間及寫入數(shù)據(jù)正確性的影響。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。