本發(fā)明涉及一種閃存裝置及其編程操作(programming operation)的初始化方法,特別是涉及一種閃存的遞增步階脈沖編程(Incremental Step Pulse Programming,ISPP)操作的初始化方法。
背景技術(shù):
隨著電子產(chǎn)品的普及化,為因應(yīng)使用者大量的信息需求,提供高品質(zhì)的數(shù)據(jù)儲存媒介成為電子產(chǎn)品重要的規(guī)格之一。在現(xiàn)今的技術(shù)領(lǐng)域中,可提供數(shù)據(jù)寫入以及讀取能力的閃存成為電子產(chǎn)品必備的數(shù)據(jù)儲存媒介。
在針對閃存進(jìn)行編程的過程中,可以通過遞增步階脈沖編程操作來進(jìn)行。遞增步階脈沖編程操作通過多個遞增電壓的脈沖來對存儲單元進(jìn)行編程操作,并通過控制脈沖的電壓值、提供脈沖的次數(shù)以及提供脈沖的時間寬度來控制編程后存儲單元的臨界電壓的分布狀態(tài)。為了有效的控制編程后存儲單元的臨界電壓的分布范圍,且有效控制編程操作所需的時間,設(shè)定一個啟始編程電壓為本領(lǐng)域的技術(shù)人員的一個重要的課題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種閃存裝置及其編程操作的初始化方法,可有效計算出起始編程電壓值及編程脈沖電壓遞增值。
本發(fā)明的閃存編程操作的初始化方法,包括:使用編程非遮蔽方案,提供多個脈沖編程電壓以對閃存的多個存儲單元進(jìn)行多個編程操作,其中脈沖編程電壓的電壓值依次遞增;在各編程操作后依據(jù)編程驗證電壓對存儲單元執(zhí)行對應(yīng)的編程驗證操作,并依據(jù)編程驗證操作的驗證結(jié)果以記錄各編程操作所對應(yīng)的脈沖編程電壓的電壓值為記錄編程電壓值;在編程操作后,提供多個脈沖讀取電壓以對存儲單元進(jìn)行多個讀取操作,其中脈沖讀取電壓的電壓值依次遞增;依據(jù)各讀取操作的讀取結(jié)果來記錄對應(yīng)的各脈沖讀取電壓的電壓值為記錄讀取電壓值;以及,依據(jù)記錄編程電壓值、記錄讀取電壓值以 及編程驗證電壓的電壓值來獲得起始編程電壓值及編程脈沖電壓遞增值。
在本發(fā)明的一實施例中,上述的依據(jù)編程驗證操作的驗證結(jié)果以記錄各編程操作所對應(yīng)的脈沖編程電壓的電壓值為記錄編程電壓值的步驟包括:使用編程非遮蔽方案,當(dāng)編程驗證操作驗證出臨界值小于編程驗證電壓的存儲單元的數(shù)量小于預(yù)設(shè)參考值時,記錄編程驗證操作對應(yīng)的編程操作所對應(yīng)的脈沖編程電壓的電壓值為記錄編程電壓值。
在本發(fā)明的一實施例中,上述的依據(jù)各讀取操作的讀取結(jié)果來記錄對應(yīng)的各脈沖讀取電壓的電壓值為記錄讀取電壓值的步驟包括:使用遞增步階脈沖讀取操作,當(dāng)讀取操作中,臨界值大于對應(yīng)的各脈沖讀取電壓的電壓值的存儲單元的數(shù)量小于預(yù)設(shè)參考值時,記錄對應(yīng)的脈沖讀取電壓的電壓值為記錄讀取電壓值。
在本發(fā)明的一實施例中,上述的依據(jù)記錄編程電壓值、記錄讀取電壓值以及編程驗證電壓的電壓值來獲得起始編程電壓值的步驟包括:設(shè)定起始編程電壓值=Vn–RDm+PVn+Voffset,其中,Vn為記錄編程電壓值,RDm為記錄讀取電壓值,PVn為一般性編程驗證操作的電壓值,Voffest為預(yù)設(shè)的偏移電壓值。
在本發(fā)明的一實施例中,上述的初始化方法,其中該偏移電壓值大于、小于或等于0伏特。偏移電壓值取決于存儲單元編程電壓臨界值預(yù)期分布及存儲單元抹除編程后預(yù)期衰減量。
在本發(fā)明的一實施例中,編程操作的初始化方法中還包括:依據(jù)記錄讀取電壓值、編程驗證電壓的電壓值以及預(yù)設(shè)的編程次數(shù)以計算出編程脈沖電壓遞增值。
在本發(fā)明的一實施例中,編程操作的初始化方法中還包括:儲存記錄編程電壓值、記錄讀取電壓值、編程驗證電壓的電壓值以及一般性編程驗證操作的電壓值至閃存的控制器中。
本發(fā)明的閃存裝置包括多個存儲單元、感測電路以及控制器。存儲單元組成存儲單元陣列,感測電路耦接存儲單元陣列,控制器耦接感測電路及存儲單元??刂破魈峁┒鄠€脈沖編程電壓以對該閃存的多個存儲單元進(jìn)行多個編程操作,其中,脈沖編程電壓的電壓值依次遞增;在各編程操作后依據(jù)編程驗證電壓對存儲單元執(zhí)行對應(yīng)的編程驗證操作,并依據(jù)編程驗證操作的驗證結(jié)果以記錄各編程操作所對應(yīng)的脈沖編程電壓的電壓值為記錄編程電壓 值;在編程操作后,提供多個脈沖讀取電壓以對存儲單元進(jìn)行多個讀取操作,其中脈沖讀取電壓的電壓值依次遞增;依據(jù)各讀取操作的讀取結(jié)果來記錄對應(yīng)的各脈沖讀取電壓的電壓值為記錄讀取電壓值;以及,依據(jù)控制器記錄編程電壓值、記錄讀取電壓值以及編程驗證電壓的電壓值來獲得起始編程電壓值及編程脈沖電壓遞增值。
綜上所述,本發(fā)明通過針對存儲單元進(jìn)行無遮蔽式的多次的編程操作,并藉由編程驗證操作來獲得記錄編程電壓值,并通過多次的讀取操作讀取結(jié)果來獲得記錄讀取電壓值。最后,依據(jù)記錄編程電壓值、記錄讀取電壓值以及編程驗證電壓的電壓值可計算出起始編程電壓值,以完成編程操作的初始化操作。
在本發(fā)明一實施例中,其中,控制器操作可由外接測試裝置或外接控制單元發(fā)送指令,控制器執(zhí)行相對操作。外接測試裝置或外接控制單元記錄編程電壓值、記錄讀取電壓值以及編程驗證電壓的電壓值來獲得起始編程電壓值及編程脈沖電壓遞增值。
為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細(xì)說明如下。
附圖說明
圖1繪示本發(fā)明一實施例的閃存的編程操作的初始化方法的流程圖。
圖2A繪示本發(fā)明實施例的編程操作的初始化步驟的波形示意圖。
圖2B繪示本發(fā)明實施例的編程操作的初始化步驟中,存儲單元的臨界電壓分布狀態(tài)示意圖。
圖3繪示本發(fā)明一實施例的閃存裝置的示意圖。
附圖標(biāo)記說明:
S110~S150:步驟
PP1~PPn、RP1~RPm:脈沖
TP1~TPn、TV1~TVn、TR1~TRm:時間周期
V1~Vn:脈沖編程電壓的電壓值
PV0:編程驗證電壓
Z1:抹除的狀態(tài)
Z2:被編程的狀態(tài)
RD1~RDm:脈沖讀取電壓
300:閃存裝置
301:測試裝置或外接控制單元
310:存儲單元陣列
320:控制器
330:感測電路
340:行地址解碼器
350:列地址解碼器
360:電源產(chǎn)生器。
具體實施方式
請參照圖1,圖1繪示本發(fā)明一實施例的閃存的編程操作的初始化方法的流程圖。其中,步驟S110使用編程非遮蔽方案,提供多個脈沖編程電壓以對閃存的多個存儲單元進(jìn)行多次的編程操作,其中,脈沖編程電壓的電壓值是依次遞增的。具體來說明,請同時參照圖2A,其中圖2A繪示本發(fā)明實施例的編程操作的初始化步驟的波形示意圖。其中,對應(yīng)步驟S110,圖2A中在連續(xù)的時間周期TP1~TPn中,多個脈沖PP1~PPn分別被提供以對閃存的存儲單元進(jìn)行編程操作。并且,脈沖PP1~PPn的脈沖編程電壓的電壓值V1~Vn依次增加。也就是說,電壓值V1<電壓值V2<..<電壓值Vn。
值得注意的,所謂的編程非遮蔽方案,是在進(jìn)行初始化操作的過程中,所進(jìn)行的編程操作是未執(zhí)行遮蔽功能(without inhibit function)的編程操作,也就是說,所有的存儲單元都會執(zhí)行被編程的操作。
請重新參照圖1,在另一方面,步驟S120中,在各編程操作后依據(jù)編程驗證電壓對存儲單元執(zhí)行對應(yīng)的編程驗證操作,并依據(jù)編程驗證操作的驗證結(jié)果以記錄各編程操作所對應(yīng)的脈沖編程電壓的電壓值為記錄編程電壓值。對照圖2A,其中在時間區(qū)間TP1~TPn間距有多個連續(xù)的時間區(qū)間TV1~TVn,其中的每兩個相鄰的時間區(qū)間(例如時間區(qū)間TP1、TP2)間,據(jù)有一個時間區(qū)間(例如時間區(qū)間TV1)。時間區(qū)間TV1~TVn用以進(jìn)行編程驗證操作。在時間區(qū)間TV1~TVn中,等于編程驗證電壓PV0的多個脈沖分別提供以進(jìn)行存儲單元的編程驗證操作。
在圖2A中,其中的時間區(qū)間TV1~TVn中所進(jìn)行的編程驗證操作是用來驗證臨界值(threshold value)小于編程驗證電壓PV0的存儲單元數(shù)量是否小于第一預(yù)設(shè)參考值。當(dāng)在具有小于編程驗證電壓PV0的臨界值的存儲單元的數(shù)量小于第一預(yù)設(shè)參考值時,表示足夠多的存儲單元都已完成編程的操作,也表示編程操作可以被結(jié)束。在圖2A中,在時間區(qū)間TVn前所進(jìn)行的編程驗證操作都是不成功的,具體來說,也就是在時間區(qū)間TPn前,臨界值小于編程驗證電壓PV0的存儲單元數(shù)量是大于第一預(yù)設(shè)參考值的。而在時間區(qū)間TVn時所進(jìn)行的編程驗證操作則表示臨界值小于編程驗證電壓PV0的存儲單元數(shù)量是小于第一預(yù)設(shè)參考值,也就是足夠多的存儲單元都已完成編程的操作,在接下來的時間區(qū)間中不需要進(jìn)一步提供脈沖以執(zhí)行編程的操作。
附帶一提的,上述的預(yù)設(shè)的參考值可以為0,也可以為大于0的數(shù)值。其中,預(yù)設(shè)的參考值的設(shè)置可用來排除因尾端位(tail bit)所造成的影響。具體來說明,在閃存中,常具有一個或數(shù)個存儲單元被編程時所產(chǎn)生的臨界電壓的偏移能力過小,而無法被有效的被編程的情況。通常這些存儲單元的位就是所謂的尾端位。在本實施例中,為提升閃存的效能,這些尾端位的存儲單元可被排除。而本實施例中的第一預(yù)設(shè)參考值的大小可以依據(jù)尾端位的存儲單元的數(shù)量來設(shè)置。
在此請同時參照圖2B,其中圖2B繪示本發(fā)明實施例的編程操作的初始化步驟中,存儲單元的臨界電壓分布狀態(tài)示意圖。在編程操作的初始化步驟未執(zhí)行前,存儲單元的臨界電壓分布在被抹除的狀態(tài)Z1,而通過步驟S110、S120的執(zhí)行,并在時間區(qū)間TVn后,存儲單元的臨界電壓分布變更為被編程的狀態(tài)Z2。其中,被編程的狀態(tài)Z2中的存儲單元的臨界電壓大部分大于編程驗證電壓PV0。
請重新參照圖1,在前述的編程操作都完成后,執(zhí)行步驟S130,并提供多個脈沖讀取電壓以對存儲單元進(jìn)行多個讀取操作,其中,脈沖讀取電壓的電壓值依次遞增。具體來說明,請參照圖2A,其中,在時間區(qū)間TR1~TRm中,分別提供多個脈沖RP1~RPm以對存儲單元進(jìn)行多個讀取操作。其中。脈沖RP1~RPm分別具有多個脈沖讀取電壓RD1~RDm,且脈沖讀取電壓RD1<脈沖讀取電壓RD2<<脈沖讀取電壓RDm。
接著,在步驟S140中,依據(jù)各讀取操作的讀取結(jié)果來記錄對應(yīng)的各脈 沖讀取電壓的電壓值為記錄讀取電壓值。也就是說,在時間區(qū)間TR1~TRm,分別判別對應(yīng)執(zhí)行的讀取操作的讀取結(jié)果,舉例來說明,當(dāng)在時間區(qū)間TRm前所進(jìn)行的讀取操作的讀取結(jié)果非皆每個位都等于“1”時,表示讀取結(jié)果為失敗而需進(jìn)行下一次的讀取操作。而當(dāng)在時間區(qū)間TRm時所進(jìn)行的讀取操作的讀取結(jié)果為每個位都等于“1”時,表示讀取結(jié)果為成功而不需進(jìn)行下一次的讀取操作。
在本實施例中,當(dāng)在時間區(qū)間TRm中,依據(jù)脈沖讀取電壓RDm所進(jìn)行讀取的結(jié)果是成功的,表示在圖2B中,被編程的狀態(tài)Z2中的存儲單元中,具有臨界電壓大于脈沖讀取電壓RDm的存儲單元的數(shù)量小于第二預(yù)設(shè)參考值。也就是說,在扣除尾端位的影響下,此時的存儲單元的臨界電壓的最大值約等于脈沖讀取電壓RDm。在此同時,讀取操作可以被停止,且此時的脈沖讀取電壓RDm被記錄為記錄讀取電壓值。
附帶一提的,第一預(yù)設(shè)參考值與第二預(yù)設(shè)參考值的數(shù)值可依據(jù)閃存的存儲單元的物理狀態(tài)來設(shè)定,第一預(yù)設(shè)參考值與第二預(yù)設(shè)參考值可以相同,也可以不相同。
重新參照圖1,在獲得記錄編程電壓值、記錄讀取電壓值后,步驟S150可依據(jù)記錄編程電壓值、記錄讀取電壓值以及編程驗證電壓的電壓值來獲得起始編程電壓值。其中,起始編程電壓值=Vn–RDm+PVn+Voffset。其中,PVn為一般性編程驗證操作的電壓值,Voffest為預(yù)設(shè)的偏移電壓值。
值得注意的,預(yù)設(shè)的偏移電壓值Voffest可以由工程人員依據(jù)需求及閃存的實際狀態(tài)來加以設(shè)定,其中,預(yù)設(shè)的偏移電壓值Voffest可以大于、小于或也可以等于0伏特。
在另一方面,若閃存的編程次數(shù)是固定的,則閃存要對存儲單元進(jìn)行編程操作時,所通過的遞增步階脈沖編程中,每次脈沖編程電壓所需遞增的電壓值則可等于(RDm-PV0)/COUNT,其中的COUNT為編程次數(shù)。
并且,上述的記錄編程電壓值Vn、記錄讀取電壓值RDm、編程驗證電壓PV0的電壓值以及一般性編程驗證操作的電壓值PVn都可以被儲存在閃存的控制器中,如此一來,當(dāng)閃存要進(jìn)行自身存儲單元的編程操作時,就可以應(yīng)用所記錄的記錄編程電壓值Vn、記錄讀取電壓值RDm、編程驗證電壓PV0的電壓值以及一般性編程驗證操作的電壓值PVn來設(shè)定初始編程電壓值以及每次脈沖編程電壓所需遞增的電壓值以執(zhí)行遞增步階脈沖編程操作。
請參照圖3,圖3繪示本發(fā)明一實施例的閃存裝置的示意圖。閃存裝置300包括由多個存儲單元所組成的存儲單元陣列310、控制器320、感測電路330、行地址解碼器340、列地址解碼器350以及電源產(chǎn)生器360。感測電路330耦接存儲單元陣列310,控制器320耦接感測電路330、存儲單元陣列310、行地址解碼器340、列地址解碼器350以及電源產(chǎn)生器360。
在本實施例中,控制器320另耦接至測試裝置或外接控制單元301。測試裝置301發(fā)送測試指令并通過控制器執(zhí)行320如圖1實施例中的各個編程操作的初始化步驟。值得一提的,測試裝置301可以是閃存裝置300外部的測試機(jī)臺,也可以是內(nèi)建在控制器320內(nèi)部的內(nèi)建測試電路(Built-In Self Test,BIST)的至少一部分。
關(guān)于編程操作的初始化步驟的實施細(xì)節(jié)在前述的實施例中已有詳細(xì)的說明,以下恕不多贅述。
綜上所述,本發(fā)明所提供的編程操作的初始化方法,通過多個編程操作來獲得記錄編程電壓值,并通過多個讀取操作來獲得記錄讀取電壓值。通過記錄編程電壓值以及記錄讀取電壓值可以得知被編程后的存儲單元的臨界電壓的分布狀態(tài),如此一來,可以有效的設(shè)定起始編程電壓值,并使閃存的編程操作可以更有效率的達(dá)成。
雖然本發(fā)明已以實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作些許的更改與修飾,故本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。