專利名稱:用分布式學習方法對閃速存儲器編程的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般而言涉及存儲設(shè)備,更具體而言涉及對存儲設(shè)備編程的方法。
背景技術(shù):
非易失半導(dǎo)體存儲器是典型計算機系統(tǒng)的基本構(gòu)造部件?,F(xiàn)有的一種非易失半導(dǎo)體存儲設(shè)備是閃速電擦除可編程只讀存儲器(“flashEEPROM”),而現(xiàn)有的一種閃速存儲單元(flash memory cell)包含單個場效應(yīng)管,該場效應(yīng)管包括選擇柵(select gate)、浮動柵(floating gate)、源極和漏極。通過改變存儲在浮動柵中的電荷總量,引起閃速單元的閾電壓Vt發(fā)生變化,于是信息被保存在閃速單元中。通過將一選擇電壓經(jīng)由詞線(wordline)加到選擇柵上對閃速存儲單元進行讀取。選擇電壓加上時,閃速存儲單元傳導(dǎo)的漏極電流ID是由它的閾電壓Vt決定的,該單元的狀態(tài)既可通過比較閾電壓Vt、漏極電流ID,或浮動柵上的電荷量和一個參考閃速存儲單元上的相同特征來決定。
現(xiàn)有的一個典型閃速存儲單元僅存儲一比特的數(shù)字數(shù)據(jù),但在現(xiàn)有技術(shù)中,存儲多于一比特的數(shù)據(jù)的閃速存儲單元已是公知的。存儲于閃速存儲單元的比特數(shù)取決于1)可以通過編程電路使閃速存儲單元處于不同模擬態(tài)的數(shù)目2)可以通過檢測電路(sensing circuitry)準確決定不同模擬態(tài)的數(shù)目。
理論上講,每個被浮動柵收集的電子都有一個模擬態(tài),所以在浮動柵上每收集到另一個電子,閃速存儲單元就會處于一個新的狀態(tài);但是,對閃速存儲單元的編程會受到環(huán)境因素和單元之間變化的影響。環(huán)境因素同樣影響對閃速存儲單元的檢測操作,而檢測電路的分辨率不足以精細到可以準確區(qū)分靠得很近的模擬態(tài)。因此,存儲單元所處的每個狀態(tài)典型地對應(yīng)于于某一電荷范圍,和/或?qū)?yīng)于閾電壓或漏極電流的一個相應(yīng)范圍。設(shè)備特性將編程窗口限制到一個限定范圍,編程窗口指的是閾電壓(或漏極電流)的總范圍,該范圍可以再分為兩個或更多的狀態(tài),因而需要使每一狀態(tài)所占的閾電壓(或漏極電流)的范圍變窄,以便區(qū)分更多的狀態(tài)。所以每個模擬態(tài)的“態(tài)寬”(“state width”)變窄。
圖1表示現(xiàn)有技術(shù)的一種示范性方法的流程圖,該方法將具有兩種可能模擬態(tài)(“已清除的”和“已編程的”)的閃速存儲單元置于已編程態(tài)。閃速陣列在初始化時被清除使得每一閃速存儲單元均處于已清除態(tài),在處理模塊5中其中的一個閃速存儲單元被選為處在已編程態(tài)。通常情況下幾個存儲單元被并行地編程。
編程脈沖包括在一段預(yù)定的時間內(nèi)將適當?shù)碾妷鹤饔糜诿總€被選中的閃速存儲單元的選擇柵、源極和漏極之上,在處理模塊10中一個編程脈沖作用于被選中的閃速存儲單元上。編程脈沖的持續(xù)時間(脈寬)和編程電壓決定了加在閃速存儲單元浮動柵上的電荷量。
在一些現(xiàn)有技術(shù)中,僅用單個編程脈沖可將存儲單元置于已編程態(tài)。而圖1中的編程方法使用了一個允許對編程過程做更多控制的編程校驗范例。在處理模塊15中執(zhí)行了校驗操作,其中閃速存儲單元的狀態(tài)被檢測并與參考值作了比較。如果該存儲單元并未處在已編程態(tài),那么編程脈沖將作用于該單元上直到它完全處于已編程態(tài)。程序終止于處理模塊20。
當閃速存儲單元的狀態(tài)數(shù)超過兩個,重要的是準確地將閃速存儲單元置于要求的狀態(tài)而不“編程過度”,這發(fā)生在閃速存儲單元偶然地處于超出要求的狀態(tài)時。因而編程校驗設(shè)置方案是必需的。不幸的是因為態(tài)寬變窄,編程脈寬相應(yīng)地也要變窄,這樣的結(jié)果是將用更多的編程脈沖和作更多的校驗操作。多次校驗操作導(dǎo)致明顯的開銷,這降低了對存儲設(shè)備的編程性能。
發(fā)明概述和目的所以,本發(fā)明的目的之一是給出一種方法,該方法能更快地將具有三個或更多模擬態(tài)的存儲單元置于所要求的狀態(tài)。
本發(fā)明的這一目的和其他目的都是由將存儲單元編程到所要求狀態(tài)的方法提供的。該方法包括控制引擎對存儲單元陣列的子集編程。特征信息是由對子集的編程步驟決定的,給出了存儲單元陣列中一個代表性存儲單元的編程特征。然后控制引擎利用特征信息直接對存儲單元編程使之處于要求的狀態(tài),而不必再作編程校驗操作。
本發(fā)明的其它目的、特性和優(yōu)點參見附圖和后面的詳述。
附圖簡述本發(fā)明通過示例的方式給出了圖解說明,但并不僅限于附圖中的描述,其中相同的參考標號指示相似的元件。
如下圖1表示現(xiàn)有技術(shù)下的一種編程校驗方法。
圖2表示通常的非易失存儲單元。
圖3A-3D表示存儲設(shè)備狀態(tài)的幾種可選的不同表示方法。
圖4表示一個作編程配置的閃速存儲單元。
圖5表示一族編程曲線,其中編程的漏極電壓保持不變而編程的柵極電壓改變。
圖6表示一族編程曲線,其中編程柵極電壓保持不變而編程漏極電壓改變。
圖7表示一種閃速單元在最大漏極偏壓下的碰撞電離效應(yīng)。
圖8表示按公開的編程方法可對其進行編程的一種存儲設(shè)備。
圖9表示編程的一種準確放置方法。
圖10表示用準確放置方法時,態(tài)時間函數(shù)的平均編程時間。
圖11表示根據(jù)一個實施例的分布式學習編程方法(distributedlearning method)。
圖12表示根據(jù)另一個可選實施例的分布式學習編程方法。
圖13表示根據(jù)一個實施例的預(yù)測學習編程方法。
圖14表示根據(jù)另一個可選實施例的預(yù)測學習編程方法。
圖15表示一種相關(guān)放置編程方法。
圖16表示根據(jù)一個實施例的數(shù)據(jù)流分析編程方法。
圖17表示按另一個可選實施例的數(shù)據(jù)流分析編程方法。
發(fā)明詳述公開了一些將存儲單元快速置于三個或三個以上模擬態(tài)中的某一模擬態(tài)的方法。這些方法能很容易地應(yīng)用于只有兩個可能模擬態(tài)的存儲單元。還應(yīng)提及,上述的一些方法中可快速地對存儲單元編程以保存模擬數(shù)據(jù),其中存儲單元的閾電壓值Vt對應(yīng)于一個模擬電壓值。盡管這些方法是以閃速EEPROMs為參考進行說明的,應(yīng)該注意到,其它一些不同于閃速EEPROMs的非易失存儲設(shè)備以及諸如動態(tài)隨機存取存儲器(DRAM)的易失存儲設(shè)備也能存儲三個或更多的模擬態(tài)。因此,這些已公開的方法一樣能應(yīng)用在不同于閃速EEPROMs的存儲設(shè)備上。
圖2表示一個非易失存儲單元25,它包括一個選擇柵30,一個浮動柵35,一個源極40和一個漏極45。非易失存儲單元25作為場效應(yīng)管,它的閾電壓Vt隨著電荷加到浮動柵上而增加。存儲單元漏極電流ID(“單元電流”)隨著閾電壓Vt和單元電荷量的增加而減少。存儲單元閾電壓Vt與單元電流ID之間關(guān)系可用下式表示ID∝Gm×(VG-Vt) 當VD>VG-Vt其中Gm是存儲單元的互導(dǎo);VG是存儲單元的柵極電壓;VD是存儲單元的漏極電壓;Vt是存儲單元的閾電壓。
從這個關(guān)系式可以看出,有許多不同的方法用來檢測出(“讀出”數(shù)據(jù))存儲單元浮動柵上的電荷量,包括當一常量電壓加于存儲單元的選擇柵時檢測它的單元電流;檢測需要加在選擇柵上以使單元電流達到某一期望值時的電壓;當一常量電壓加于存儲單元的選擇柵時檢測與存儲單元漏極相連接的負載上的電壓降,其中單元電流決定了負載上的電壓降;檢測需要加在選擇柵上以在與漏極連接的負載上產(chǎn)生一個期望電壓降的電壓。對存儲單元特征信息和已知參考值的比較足以決定存儲單元的模擬態(tài)。
定義存儲單元的狀態(tài)通常,非易失存儲單元的物理特征中要求有一個最小閾電壓Vtmin和一個最大閾電壓Vtmax,當達到最小閾電壓Vtmin時存儲單元被清除,當達到最大閾電壓Vtmax時存儲單元被編程。最小閾電壓Vtmin和最大閾電壓Vtmax描繪出了非易失存儲單元的最大編程窗口。最小閾電壓Vtmin取決于清除次數(shù)和柵級干擾電壓,最大閾電壓Vtmax取決于漏極干擾電壓和烘烤電量丟失(bake charge loss)。
其中編程窗口的最大寬度取決于非易失存儲單元的物理特征,編程窗口中各個模擬態(tài)的定義方式受許多因素的影響,包括編程時的溫度變動;編程時的編程電壓變動;
存儲單元在存儲陣列中的位置;通道(channel)長度的隨機微小變化;漏極干擾;柵極干擾;和用于檢測非易失存儲單元狀態(tài)的電路的分辨率。
圖3A-3D表示在同一編程窗口中幾種可選的狀態(tài)表達和定義。圖3A為給定狀態(tài)下單元數(shù)目對應(yīng)于該狀態(tài)閾電壓的編程分布圖。如圖所示,在編程窗口中定義了四個狀態(tài)即狀態(tài)0,狀態(tài)1,狀態(tài)2,和狀態(tài)3。為了方便說明的目的,圖中所示每個狀態(tài)的編程分布均為鐘型曲線,其中被編程到某一特定狀態(tài)的單元中的大多數(shù)都落在狀態(tài)中心。圖3A還表示了在各鄰近的的狀態(tài)之間有分隔區(qū)。分隔區(qū)的存在是為了更容易區(qū)分各個狀態(tài);雖然從理論上說分隔區(qū)并不需要。圖中所示的態(tài)寬和分隔區(qū)寬是相等的,這樣每個狀態(tài)和每個分隔區(qū)均占編程窗口的1/7。
圖3B表示存儲單元的一種編程分布,其中在編程窗口中有8個狀態(tài)。圖中所示的每個狀態(tài)和每個分隔區(qū)所占的閾電壓Vt范圍也是相等的,即每個狀態(tài)和每個分隔區(qū)均占總編程窗口的1/15。
盡管在圖3A和3B中態(tài)寬和分隔區(qū)寬是相等的,但態(tài)寬和分隔區(qū)寬也可以更隨意的定義,并且其它考慮因素限制了狀態(tài)被定義的方式。例如,對于靠近編程窗口邊緣的狀態(tài)可以占有較大的態(tài)寬。圖3C表示狀態(tài)0和狀態(tài)3占據(jù)了1500mv的閾電壓范圍,而狀態(tài)1和狀態(tài)2僅占據(jù)了500mv的態(tài)寬。圖3D表示在單元電流ID方式下圖3C的等同狀態(tài)分布。
圖3A-3D說明了在數(shù)字數(shù)據(jù)存儲應(yīng)用上的可能狀態(tài)分布。具有相同編程窗口的相同存儲單元可用來存儲用于諸如聲音錄制和回放的應(yīng)用的模擬數(shù)據(jù)。在模擬信號存儲應(yīng)用中,編程窗口中的每個閾電壓Vt或單元電流ID直接對應(yīng)于一個模擬輸入電壓,這樣對存儲單元實際Vt值的檢測允許輸出電路對輸入電壓的直接合成。以這種方式,聲音可以得到錄制和回放。現(xiàn)有模擬存儲體系的例子可參見美國專利號4,890,259,標題為“高密度集成電路模擬信號錄制和回放系統(tǒng)”和美國專利號5,126,967,題目為“應(yīng)用于模擬信號錄制和回放的可寫分布式非易失模擬參考系統(tǒng)和方法”。
閃速存儲器的編程特征圖4表示通過熱電子注入(hot electron injection)為編程配置的一個閃速存儲單元。閃速存儲單元25的選擇柵30連接到編程電壓VG?,F(xiàn)有閃速存儲單元的一個典型編程電壓是12.0V。
將編程電壓VG加在選擇柵30上,打開閃速存儲單元的場效應(yīng)管,使電流從漏極45流向源極40。該編程電壓VG還在基底50和浮動柵35之間產(chǎn)生一“垂直”電場。垂直電場的電子流可用箭頭符號來描述,箭頭指向浮動柵35而箭尾指向基底50。這基本上表示了在垂直電場中的電子流方向。
如圖所示,源極40連接到系統(tǒng)地VSS,漏極45連接到漏極電壓VD。在漏極45和源極40之間的電勢差產(chǎn)生一“水平”電場,它對從源極40經(jīng)通道到達漏極45的電子進行加速。對于一種實施例,VD具有比源極40的電壓高5-7V的電壓就足夠了。垂直電場的電子流可用箭頭指向漏極45、箭尾指向源極40的箭頭符號來表示。這基本上表示了穿過通道的電子流方向。被加速的或稱“熱”電子與基底50中的晶格結(jié)構(gòu)發(fā)生碰撞,其中的一些熱電子被垂直電場拉到浮動柵上。通過這種方式,浮動柵上的電荷量增加。
非易失存儲器所處的狀態(tài)取決于柵極電壓VG,漏極電壓VD,存儲單元的有效通道長度Ldff,溫度和脈寬,其中脈寬為編程柵極電壓VG和編程漏極電壓VD作用于存儲單元上的持續(xù)時間。還應(yīng)提及,其中的編程柵極電壓VG起主要作用。
圖5畫出了在不同的編程柵極電壓時存儲單元閾電壓Vt對于編程時間對數(shù)的曲線圖。編程柵極電壓決定了垂直電場的相對強度,在編程時增加柵極電壓則增加了垂直電場的強度。曲線60表示在給定編程柵極電壓VG為8V時的閾電壓Vt。曲線65表示編程柵極電壓VG為9V時的閾電壓Vt。編程柵極電壓VG為10V、11V和11.5V時的曲線分別為曲線70、75和80。
從所有5條曲線60-80可以看出,在曲線55左邊的“線性區(qū)”,閾電壓Vt呈指數(shù)增長。線性區(qū)之所以這樣稱呼是因為當閾電壓Vt以線性時間刻度劃分時,在線性區(qū)編程時閾電壓Vt隨著VG而線性增長。因此,在線性區(qū)編程時,編程脈沖持續(xù)時間的一個小增加會引起閾電壓Vt的較大增加,精確控制閾電壓Vt是困難的。
當編程處在曲線55右邊的“飽和區(qū)”時,精確控制閾電壓Vt相對容易一些。如圖所示,當存儲單元在飽和區(qū)被編程時,閾電壓Vt隨著時間緩慢地、以對數(shù)形式增長。
在飽和區(qū)操作時,如果柵極電壓VG保存不變而總編程脈沖持續(xù)時間增加,那么對存儲單元的編程是緩慢的。例如,給定一個1μs持續(xù)時間的初始編程脈沖,該初始編程脈沖的編程柵極電壓VG為8.0V,則存儲單元的閾電壓Vt約為3.7V。如果編程柵極電壓VG保持8.0V不變,則需要約10μs持續(xù)時間的編程脈沖才能使閾電壓Vt增加1.0V而升到4.7V。
如果柵極電壓VG隨著每個接下來的編程脈沖而增加,那么在飽和區(qū)的編程可以會發(fā)生得更快。事實上如圖5所示,當在飽和區(qū)編程時,對于一個不變脈寬,每增加柵極電壓VG就會增加大約相同量的閾電壓Vt。因此,給定VG為8.0V的初始1μs編程脈沖,VG為9.0V的后續(xù)1μs編程脈沖會使所有存儲單元的Vt從3.7V升到4.7V,VG的增加和Vt的增加是一一對應(yīng)的。
圖5的曲線族假定編程漏極電壓VD是固定的,它形成通道中的水平電場。圖6表示的一族曲線是在編程柵極電壓VG一定而編程漏極電壓VD改變時得到的。如圖所示,漏極電壓VD影響存儲單元進入編程飽和區(qū)的時刻。不同的通道長度會產(chǎn)生不同的曲線族;但是通過調(diào)整編程漏極電壓VD,可以使具有不同有效通道長度的存儲單元有相同的表現(xiàn)。
碰撞電離引發(fā)雙極型開啟電壓(impact ionization inducedBi-polar turn-on voltage)(VBii)限制了最大漏極偏置電平,該電壓在熱電子注入編程時會被用到。圖7表示了VBii對于閾電壓Vt的效果。對于每個電壓值VD1、VD2和VD3,編程柵極電壓VG是相同的。當漏極偏置電壓低于VBii時,增加VD僅僅影響Vt對于時間曲線的線性區(qū)域,這從曲線VD2和曲線VD1的合并可見。增加漏極偏置電壓并不影響在飽和區(qū)的最大閾電壓。而當漏極偏置電壓VD大于VBii時,飽和區(qū)的閾電壓也隨著VD的增加而增加。
示例性存儲設(shè)備這里給出的一般放置方法是參照圖8所示的一種示例性存儲設(shè)備進行說明的。存儲設(shè)備120在單個半導(dǎo)體基底上制造,包括存儲陣列125,行解碼器130,列解碼器135,檢測電路140,參考陣列145,控制引擎150,電壓開關(guān)155和命令接口160。存儲設(shè)備120經(jīng)地址線165接收地址,經(jīng)雙向數(shù)據(jù)線170接收和輸出數(shù)據(jù)。數(shù)據(jù)利用在存儲陣列125中的非易失存儲單元進行存儲,其中存儲陣列125可包括具有編程閾電壓的任何類型存儲單元,例如包括具有陷獲電介質(zhì)(trappingdielectrics)或浮動柵的存儲單元。其中存儲設(shè)備120是非易失的,控制引擎中還包括一含SRAM的可寫緩沖區(qū)152,用來臨時存儲對陣列125編程的數(shù)據(jù)。存儲設(shè)備120的最大允許功耗是決定在某一時間內(nèi)可被編程的存儲單元最大數(shù)目的首要因素,寫緩沖區(qū)152通常選為至少可存儲足夠的數(shù)據(jù)以便在某段時間內(nèi)對最大數(shù)目的單元編程。
為了檢測出存儲陣列125中的數(shù)據(jù),行解碼器130和列解碼器135按用戶經(jīng)地址線165提供的地址選出存儲陣列125中的一些存儲單元。行解碼器130選擇陣列125中的適當行,列解碼器135選擇陣列125中的適當列(或幾列)。檢測電路140比較被選存儲單元的狀態(tài)和參考陣列145中參考單元的狀態(tài)。檢測電路包括不同的比較器,它的輸出數(shù)字邏輯電平對應(yīng)于存儲單元和參考單元的比較結(jié)果。因此,存儲單元的模擬態(tài)可以數(shù)字數(shù)據(jù)的形式表示和輸出。被選存儲單元的精確Vt/ID值可被同樣確定。
控制引擎150控制存儲陣列125的清除和編程。對于其中的一種實施例,控制引擎150包含一處理器,處理器受單片存儲器中微指令的控制。可選的另一實施例是控制引擎150被用作一狀態(tài)機或通過組合邏輯實現(xiàn)。控制引擎150還可作為半導(dǎo)體設(shè)備從外部控制存儲設(shè)備120的操作來實現(xiàn)??刂埔?50的各種不同實現(xiàn)并不影響存儲單元的編程描述方法。
控制引擎150通過對行解碼器130,列解碼器135,檢測電路140,參考單元陣列145和電壓開關(guān)155的控制來管理存儲陣列125。電壓開關(guān)155控制不同的電壓值來讀出、編程和清除存儲陣列125。用戶的讀出、清除和編程命令經(jīng)命令接口160傳給控制引擎150。外部用戶發(fā)給命令接口160的命令經(jīng)由3個控制引腳輸出使能OEB,寫使能WEB和芯片使能CEB。
準確放置編程圖9是并行地對許多存儲單元編程的一種“準確放置”方法的流程圖。這種方法可選地用于連續(xù)和單獨地對多個存儲單元編程。該準確放置方法更加詳細的描述參見美國專利號5,440,505,此專利普通轉(zhuǎn)讓給California州Santa Clara的Intel公司。
本方法起始于處理模塊175,其中在編程前存儲陣列125被清除以使所有存儲單元都處于已知狀態(tài)。如果在編程前有其它機理能確知被選單元的狀態(tài),則清除這一步可以不需要。在處理模塊180,控制引擎150初始化編程變量,包括源極電壓VS,漏極電壓VD,柵極電壓VG和脈寬T。如圖9所示,源極電壓VS被初始化為系統(tǒng)地VSS,漏極電壓VD被初始化為微調(diào)漏極電壓VD_TRIM,柵極電壓VG被初始化為VG_INITIAL,脈寬T被初始化為第一個脈沖的寬度T1。選擇初始柵極電壓VG_INITIAL和初始脈寬T1,使得作用單個脈沖將導(dǎo)致能對每個被選存儲單元的編程處于該初始柵極電壓VG_INITIAL的飽和區(qū)。
在處理模塊185,一初始編程脈沖作用于被選存儲單元。在處理模塊190中接著進行校驗操作,決定被選存儲單元子集的每個存儲單元是否處于目標狀態(tài)。如果存儲單元已處于目標狀態(tài),則對存儲單元的處理終止于處理模塊205。為了避免編程過度,選擇初始編程電壓為VG_INITIAL和脈寬為T1的初始脈沖,這樣初始脈沖才不會引起編程到要求的狀態(tài)。程序接著為模塊195,該模塊中,控制引擎150將脈寬減為時間T2,將柵極電壓VG增加一柵級步進電壓ΔVG。在處理模塊200中,另一編程脈沖作用于一個或多個單元,其中柵極電壓等于VG+ΔVG,脈寬等于T2。然后在處理模塊190進行另一校驗操作。如果存儲單元已處于目標狀態(tài),則對該存儲單元的編程終止于處理模塊205。那些還未達到目標狀態(tài)的存儲單元重復(fù)處理步驟195和200。以這種方式,每過一個編程脈沖,柵極電壓就逐漸升高。
選擇柵級步進電壓ΔVG和脈寬T2的值使得柵極電壓VG的增加和閾電壓Vt的增加能一一對應(yīng)。例如,如果柵級電壓為300mv,那么每當一柵極電壓值升高的編程脈沖到來,被編程存儲單元的閾電壓Vt將升高300mv。柵級步進電壓ΔVG和脈寬T2的選擇還可以使對于柵極電壓VG的編程發(fā)生在飽和區(qū)。
閾電壓Vt和編程柵極電壓VG之間的關(guān)系由圖5中的曲線直接給出。初始脈寬T1和后繼脈寬T2之間的減少量取決于態(tài)寬和柵級步進電壓ΔVG的大小。當態(tài)寬和柵級步進電壓ΔVG減少時,脈寬的減少量趨于增加。
圖9中所示的準確放置方法是一種容易實現(xiàn)的穩(wěn)定(robust)方法。不幸的是對于給定的一個小態(tài)寬,必須執(zhí)行大量的編程脈沖。此外,每個編程脈沖后都要進行基本上為讀操作的校驗操作。如圖10所示,當態(tài)寬減少時,對存儲單元一個邏輯字節(jié)編程的平均時間會增加。該平均編程時間是脈寬、脈沖數(shù)目、電壓持續(xù)時間、校驗時間和控制引擎開銷(overhead)的函數(shù)。給定編程窗口,如果增加的狀態(tài)需要區(qū)分,則態(tài)寬必須減少。因此,增加平均編程時間是不可避免的,而尋找另一種可對具有多模擬態(tài)的存儲單元編程的方法則成為期望。
有許多方法可減少平均編程時間。例如,可減少脈沖的數(shù)目。還有,減少校驗操作的次數(shù),或?qū)顟B(tài)機的開銷分散在整個陣列。
學習方法減少總編程時間的一種方式是讓控制引擎150“學習”存儲單元的編程特征。按照第一類型學習算法,用準確放置方法對陣列存儲單元的一個統(tǒng)計有效子集編程,控制引擎150從對單元子集的編程中獲得關(guān)于陣列平均編程時間的特征信息。給定準確放置算法的脈寬參數(shù)時,特征信息中包括為達到特定目標狀態(tài)而需要的脈沖平均數(shù)目。特征信息還可簡單地從存儲單元的Vt-時間特征曲線中得到,例如圖5中的曲線族60-80。另一學習方法是預(yù)測性的,需要獲得編程中每個單元的特征信息。學習方法假定編程時環(huán)境變量保持不變。
分布式學習方法圖11表示一種分布式學習方法的流程圖。編程前,在處理模塊215中陣列被清除。在處理模塊220,控制引擎150用準確放置或類似方法對陣列子集編程。在處理模塊225,控制引擎150獲得平均陣列單元的特征信息。當特征信息確定下來后,選中的單元可被直接編程到要求的狀態(tài)。用直接編程意味著不需要校驗操作就可達到要求狀態(tài)。這就是說單個脈沖可用來對存儲單元編程達到要求狀態(tài),其中選擇柵極電壓VG和脈寬T使得編程發(fā)生在飽和區(qū)。例如,如果已得到如圖5中所示的一族曲線,則柵極電壓VG為11.0V、持續(xù)時間為1μs的單個脈沖可將一個單元直接置于如圖3C中定義的狀態(tài)3。作為選擇,直接編程還可應(yīng)用于一串脈沖,圖10中不需校驗操作的準確放置方法說明了這種情況。在處理模塊230,控制引擎150利用特征信息直接對每個陣列單元編程使之達到目標狀態(tài)。該分布式學習方法終止于步驟235。
圖12表示另一可選方案的分布式學習方法的流程圖。在處理模塊240中陣列被控制引擎150清除。在處理模塊245,控制引擎150用準確放置方法對陣列子集編程。在處理模塊250,控制引擎150獲得陣列平均單元的特征信息。在處理模塊255,控制引擎對單元編程使之處于靠近目標狀態(tài)的某一點,這給那些非正常偏離平均值的存儲單元提供了一個防止編程過度的保護帶。在模塊260控制引擎用準確放置方法完成編程,將單元放置在設(shè)計的狀態(tài),分布式學習方法終止于模塊235。
和前面描述的準確放置方法相比,這兩種分布式學習方法都大大降低了總編程時間。大部分的節(jié)省時間是因為去掉了校驗操作而得到的。
預(yù)測學習圖13表示根據(jù)一種實施例的預(yù)測學習方法的流程圖。不同于分布式學習的是,預(yù)測學習針對每個單獨的單元而執(zhí)行。因此,編程曲線族分別對每個存儲單元個別決定。
在處理模塊270中控制引擎150清除陣列。在處理模塊275中控制引擎將首個編程脈沖作用于存儲單元。在處理模塊280,控制引擎150在第一個脈沖作用后決定閾電壓Vt值。這樣的決定可簡單通過校驗操作做出。另外,控制引擎也可決定漏極電流ID。
在處理模塊285,控制引擎150將第二個脈沖作用于存儲單元,在處理模塊290控制引擎150又決定了閾電壓Vt值??刂埔?50將第一個脈沖過后和第二個脈沖過后的閾電壓Vt值相減,得到一個電壓差ΔVt,控制引擎可用該電壓差來預(yù)測存儲單元的Vt-時間特性。這樣在處理模塊295,控制引擎150可從電壓差ΔVt得到特征信息。然后控制引擎150可利用特征信息直接對單元編程使之處于目標狀態(tài),預(yù)測學習方法終止于處理模塊305。
優(yōu)選地,選擇這兩個特征編程脈沖,使編程處于飽和區(qū)。例如,這兩個特征脈沖可根據(jù)圖9中的準確放置方法來執(zhí)行。如果在編程前所選存儲單元的Vt/ID值是已知的,則只需要一個特征編程脈沖。
圖14表示根據(jù)另一可選實施例的預(yù)測學習方法的流程圖。控制引擎150在處理模塊310中清除陣列并在處理模塊315中將首個編程脈沖作用于一存儲單元。在處理模塊320中,控制引擎150在首個脈沖過后測量閾電壓Vt。然后在處理模塊325中控制引擎150將第二個編程脈沖作用于存儲單元,并在處理模塊330中測量此時的閾電壓。在處理模塊335中,控制引擎150利用電壓差ΔVt獲得單元的特征信息。于是控制引擎150用獲得的特征信息可直接對存儲單元編程使之處于靠近目標狀態(tài)的某一點,從而不需要再作校驗操作。這一步發(fā)生在處理模塊340。在處理模塊345,控制引擎150應(yīng)用準確放置方法完成對存儲單元的編程,如圖10所示。程序終止于模塊350。
預(yù)測學習方法尤其適用于快速將模擬電壓保存在存儲單元。例如,存儲單元要求的最后閾電壓Vt為Vt_target,則特征脈沖的編程電壓VGC可由下式給出VGC=Vt_target+c其中c是一選定的常量,它使得特征脈沖不會引起Vt_target值的突增(overshoot)。根據(jù)一種實施例,c等于3.5V。
當特征脈沖過后閾電壓Vtc為確定時,編程脈沖的編程電壓VGP可通過簡單確定Vt_target和Vtc之間的差、按相同量增加VGC值而確定,這可用下式表示VGP=VGC+(Vt_target-Vtc)分布式學習方法還可在保存模擬數(shù)據(jù)到非易失媒介方面獲得類似應(yīng)用。
相關(guān)放置方法準確放置方法和學習方法被視為“絕對放置”方法,因為狀態(tài)已使用預(yù)設(shè)定參考值,以目標方式定義好。一種可選的放置方法是“相對放置”方法。絕對放置方法考慮很好限定的狀態(tài)邊界和分隔區(qū),而相對放置方法僅需要互相之間相對限定的狀態(tài)。例如,給定一包含4個狀態(tài)的存儲單元,其中最低狀態(tài)為狀態(tài)0,最高狀態(tài)為狀態(tài)3,則每個狀態(tài)的柵極電壓值按下面順序給出就足夠了VG0<VG1<VG2<VG3其中VG0定義了存儲單元處在狀態(tài)0時的閾電壓,VG1定義了存儲單元處在狀態(tài)1時的閾電壓,VG2定義了存儲單元處在狀態(tài)2時的閾電壓,VG3定義了存儲單元處在狀態(tài)3時的閾電壓。實際上,每個狀態(tài)還必須定義一電壓范圍,并且電壓范圍有保護帶,使得一個狀態(tài)的最大閾電壓不比下一狀態(tài)的最小閾電壓高。
用這種狀態(tài)排序的編程方法只需將已選定柵極電壓值的一個脈沖作用在存儲單元,把存儲單元從某一狀態(tài)放置到要求狀態(tài)。脈寬還要選定為對于給定編程柵極電壓值能發(fā)生飽和編程。
圖15表示狀態(tài)排序方法的流程圖??刂埔?50在處理模塊355中清除陣列。編程變量在處理模塊360中被初始化,其中柵極電壓被初始化為VG1脈寬被初始化為T3。脈寬T3被選定為對于編程柵極電壓VG1能發(fā)生飽和編程。在處理模塊365中控制引擎150將一個脈沖作用于單個選定的單元或多個單元使之處于狀態(tài)1。在處理模塊370中控制引擎150設(shè)置編程電壓為VG2、脈寬為T4,其中T4選擇為一合適的值使得對于編程柵極電壓VG2能發(fā)生飽和編程。在處理模塊375,控制引擎150將一編程脈沖作用于選定單元,使之置于狀態(tài)2。在處理模塊380,控制引擎150設(shè)置編程柵極電壓為VG3、脈寬為T5,其中T5選擇為一合適的值使得對于給定編程柵極電壓VG3能發(fā)生飽和編程。在處理模塊382中一個脈沖用來將選定單元放置在狀態(tài)3,排序編程過程在處理模塊385中完成。該方法不需要校驗操作。
圖15中所示的方法以“漸進傳送”(“carry along”)的方式表現(xiàn),其中,所有要被編程的陣列單元接收全部編程脈沖,直到單元已接收了能使它們處于要求狀態(tài)的編程脈沖為止。例如,第一個編程脈沖作用于所有要被編程的陣列單元。那些僅需要被編程到狀態(tài)1的單元將不再被選定,以避免對它們進一步編程,而所有將要被編程到狀態(tài)2和后續(xù)狀態(tài)的單元接收第二個脈沖。狀態(tài)2的單元不再接收進一步編程。
圖15的方法還可選擇這樣的實現(xiàn)方式,即存儲單元僅接收能把它們置于要求狀態(tài)的編程脈沖。預(yù)測學習技術(shù)可用來確保每個編程脈沖對選定存儲單元的編程都處于飽和區(qū)。
數(shù)據(jù)流分析方法一種可選的放置方法為,通過對在任何給定時間內(nèi)被編程的存儲單元數(shù)目最大化來減少總的編程時間。編程通常由存儲塊基礎(chǔ)在一“塊”中進行,其中的一塊存儲單元通常包括單個可尋址字節(jié)或字的數(shù)據(jù)。對一塊存儲單元的編程發(fā)生在單個“編程周期”內(nèi)。
從統(tǒng)計意義上說,保存在一塊存儲單元中的數(shù)據(jù)是隨機的,可以包括還留在清除態(tài)(狀態(tài)0)的單元和要被編程的單元。因此,按塊編程通常導(dǎo)致在每個編程周期內(nèi)并不是一塊中的所有單元都被編程。對于僅有兩個狀態(tài)的存儲單元,平均地,每個編程周期僅有一半的塊單元被編程。對于有n個狀態(tài)的存儲單元,平均地,每個編程周期僅有1/n的塊單元被編程到特定狀態(tài)。
通過分析數(shù)據(jù)流,確保每個編程周期內(nèi)有最大數(shù)目的存儲單元(即,一整塊)被編程,則編程時間可減少。圖16是根據(jù)一種實施例的數(shù)據(jù)流分析方法的流程圖??刂埔?50在處理模塊390中清除陣列。在處理模塊395,控制引擎150分析要被編程到存儲單元中的數(shù)據(jù)的集合,決定哪些存儲單元將被編程到哪個狀態(tài),哪些存儲單元將留在清除態(tài)。對數(shù)據(jù)流的分析可在存儲設(shè)備120的外部完成,分析結(jié)果傳送給控制引擎150以便控制引擎可適當?shù)乜刂茖Υ鎯卧木幊獭?br>
當數(shù)據(jù)流經(jīng)分析后,編程從處理模塊400開始,其中控制引擎150對以狀態(tài)1為目標狀態(tài)的存儲單元進行編程,并使之達到最大數(shù)目。例如,如果要被編程存儲單元的數(shù)目是由一塊存儲器中的比特數(shù)來決定,那么控制引擎150將確保以狀態(tài)1為目標狀態(tài)的一整塊存儲單元在處理模塊400中被編程。如果以狀態(tài)1為目標狀態(tài)的單元的數(shù)目比最大數(shù)目少,則所有單元都在處理模塊400中被編程。編程可以使用任何先前描述的方法來完成。
如果在處理模塊405中還有存儲單元以狀態(tài)1作為它們的目標狀態(tài),則重復(fù)執(zhí)行處理模塊400。否則控制引擎150將確保在處理模塊410中最大數(shù)目的以狀態(tài)2為目標狀態(tài)的存儲單元被編程。在處理模塊415,如果還有以狀態(tài)2作為它們目標狀態(tài)的單元存在,則控制引擎150重復(fù)處理模塊410的步驟,直到所有這樣的單元都被編程。
在處理模塊420,控制引擎150確保最大的以狀態(tài)3為目標狀態(tài)的單元被編程。在處理模塊425,控制引擎150決定是否還有狀態(tài)3的單元要編程。如果沒有,程序終止于處理模塊430。
圖17表示另一種可選的數(shù)據(jù)流分析方法,其中具有不同目標狀態(tài)的存儲單元被同時編程。圖17的編程方法認識到被編程到除第一個狀態(tài)外的其它目標狀態(tài)的單元必須“經(jīng)過”第一個編程狀態(tài)。程序開始于處理模塊435,在處理模塊435中控制引擎150清除存儲單元陣列。在處理模塊440,控制引擎150分析要編程的數(shù)據(jù)集合??刂埔?50將忽略那些繼續(xù)留在清除態(tài)或者說狀態(tài)0的單元。在處理模塊445,控制引擎150對所有以狀態(tài)1或高于狀態(tài)1的狀態(tài)為目標狀態(tài)的單元編程,并且最大數(shù)目的單元被同時編程。因此,一些以狀態(tài)2、狀態(tài)3等作為目標狀態(tài)的單元也被初始編程到狀態(tài)1。在處理模塊450中控制引擎對所有以狀態(tài)2或高于狀態(tài)2的狀態(tài)為目標狀態(tài)的單元編程。同樣地,最大數(shù)目的單元被同時編程。在處理模塊445,控制引擎150對所有以狀態(tài)3或高于狀態(tài)3的狀態(tài)為目標狀態(tài)的單元編程。同樣地,最大數(shù)目的單元被同時編程。程序終止于處理模塊460。如果存儲單元具有4個以上的模擬態(tài),圖17表示的方法流程很容易作調(diào)整修改。
可編程單元的最大數(shù)目通常由存儲設(shè)備120的功率預(yù)算決定。用數(shù)據(jù)流分析方法的編程取決于哪些單元將要被編程,該編程獨立于陣列與寫緩沖器定義的存儲位置之間的物理一致。因為在單個編程周期內(nèi)被編程的存儲單元塊將沒有一已定義的關(guān)系(例如,每個比特不是數(shù)據(jù)中單個可尋址字節(jié)的一比特),所以存儲設(shè)備120的陣列解碼應(yīng)修改為允許對陣列單元作個別尋址,這樣在每個編程周期中一整塊存儲單元均可被編程而不必關(guān)心它們在陣列中的物理位置。
在前面的描述中,本發(fā)明是以具體的示例性實施例為參考進行說明的。然而顯然的是,可以對它作各種調(diào)整和改變而不背離本發(fā)明的較寬精神和范圍。因此,說明書和附圖更應(yīng)被視為說明性,而不是限制性的。
權(quán)利要求
1.在包含存儲單元陣列的存儲設(shè)備中,每個存儲單元有兩種以上的可能狀態(tài),一種將存儲單元編程到要求狀態(tài)的方法包括控制引擎對存儲單元陣列子集的編程;在對子集編程的步驟中決定特征信息,特征信息指出了存儲單元陣列中一個有代表性的存儲單元的編程特征;控制引擎利用特征信息可直接將存儲單元編程到近乎要求的狀態(tài),而不需要進行校驗操作。
2.權(quán)利要求1的方法,其特征在于,控制引擎直接對存儲單元編程的步驟包括控制引擎決定作用于存儲單元的編程脈沖總數(shù),使存儲單元達到與特征信息相對應(yīng)的要求狀態(tài);控制引擎將這些編程脈沖作用于存儲單元。
3.權(quán)利要求2的方法,其特征在于,控制引擎直接對存儲單元編程的步驟還包括控制引擎決定與特征信息對應(yīng)的每個編程脈沖的脈寬。
4.權(quán)利要求3的方法,其特征在于,控制引擎直接對存儲單元編程的步驟還包括控制引擎決定與特征信息相對應(yīng)的每個編程脈沖的編程電壓。
5.權(quán)利要求4的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),決定編程脈沖總數(shù)、編程脈寬、編程脈沖的編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎將這些編程脈沖作用于存儲單元的步驟導(dǎo)致存儲單元在每個編程脈沖到來時都在飽和區(qū)內(nèi)被編程。
6.權(quán)利要求1的方法,其特征在于,控制引擎直接編程存儲單元到近乎要求的狀態(tài)的步驟還包括控制引擎利用特征信息決定單個編程脈沖的脈寬和編程電壓,該編程脈沖能直接編程存儲單元到近乎要求的狀態(tài);控制引擎將該編程脈沖作用于存儲單元。
7.權(quán)利要求6的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),利用特征信息決定單個編程脈沖的脈寬和編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎對存儲單元作用單個編程脈沖的步驟導(dǎo)致存儲單元的編程發(fā)生在飽和區(qū)。
8.權(quán)利要求1的方法,還包括控制引擎在編程校驗操作后至少作用一個編程脈沖才能將存儲單元編程到要求狀態(tài)。
9.在包含存儲單元陣列的存儲設(shè)備中,每個存儲單元有兩種以上的可能狀態(tài),一種將存儲單元編程到要求狀態(tài)的方法包括控制引擎通過對存儲單元陣列的子集編程來決定特征信息,該特征信息指出了存儲單元陣列中代表性的編程特征;控制引擎利用特征信息可直接將存儲單元編程到近乎要求的狀態(tài),而不需要進行校驗操作。
10.權(quán)利要求9的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟包括控制引擎決定作用于存儲單元的編程脈沖總數(shù),使存儲單元達到與特征信息對應(yīng)的要求狀態(tài);控制引擎將這些編程脈沖作用于存儲單元。
11.權(quán)利要求10的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟還包括控制引擎決定與特征信息相對應(yīng)的每個編程脈沖的脈寬。
12.權(quán)利要求11的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟還包括控制引擎決定與特征信息相對應(yīng)的每個編程脈沖的編程電壓。
13.權(quán)利要求12的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),決定編程脈沖總數(shù)、編程脈寬、編程脈沖的編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎將這些編程脈沖作用于存儲單元的步驟導(dǎo)致存儲單元在每個編程脈沖到來時都在飽和區(qū)內(nèi)被編程。
14.權(quán)利要求9的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟包括控制引擎利用特征信息決定單個編程脈沖的脈寬和編程電壓,該編程脈沖能直接將存儲單元編程到近乎要求的狀態(tài);控制引擎將該單個編程脈沖作用于存儲單元。
15.權(quán)利要求14的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),利用特征信息決定單個編程脈沖的脈寬和編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎將單個編程脈沖作用于存儲單元的步驟導(dǎo)致存儲單元在飽和區(qū)內(nèi)被編程。
16.在包含存儲單元陣列的存儲設(shè)備中,一種在存儲單元中保存模擬電壓的方法是將存儲單元的閾電壓編程到要求的電壓,它包括控制引擎對存儲單元陣列的子集編程,從對子集編程的步驟中決定特征信息,該特征信息指出了存儲單元陣列中一個有代表性存儲單元的編程特征;和控制引擎利用特征信息直接將存儲單元的閾電壓編程到要求的電壓。
17.權(quán)利要求16的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟包括控制引擎決定作用于存儲單元的編程脈沖總數(shù),使存儲單元達到與特征信息相對應(yīng)的要求狀態(tài);和控制引擎將這些編程脈沖作用于存儲單元。
18.權(quán)利要求17的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟還包括控制引擎決定與特征信息相對應(yīng)的每個編程脈沖的脈寬。
19.權(quán)利要求18的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟還包括控制引擎決定與特征信息相對應(yīng)的每個編程脈沖的編程電壓。
20.權(quán)利要求19的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),決定編程脈沖總數(shù)、編程脈寬、編程脈沖的編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎將這些編程脈沖作用于存儲單元的步驟導(dǎo)致存儲單元在每個編程脈沖到來時都在飽和區(qū)內(nèi)被編程。
21.權(quán)利要求16的方法,其特征在于,控制引擎利用特征信息直接將存儲單元編程到要求狀態(tài)的步驟包括控制引擎利用特征信息決定單個編程脈沖的脈寬和電壓,該編程脈沖能直接將存儲單元編程到近乎要求的狀態(tài);控制引擎將該單個編程脈沖作用于存儲單元。
22.權(quán)利要求21的方法,其特征在于,存儲單元展現(xiàn)了線性的和飽和的編程特性,所以有線性編程區(qū)和飽和編程區(qū),利用特征信息決定單個編程脈沖的脈寬和編程電壓的步驟由控制引擎執(zhí)行,使得控制引擎將單個編程脈沖作用于存儲單元的步驟導(dǎo)致存儲單元在飽和區(qū)內(nèi)被編程。
全文摘要
在包含存儲單元陣列的存儲器設(shè)備中,每個存儲單元有兩種以上的可能狀態(tài),公開了一種對存儲單元編程使之處于要求狀態(tài)下的方法。該方法包括控制引擎對子集編程(220),而其中特征信息指出了存儲單元陣列中一個代表性存儲單元的編程特征(225)。于是該控制引擎可利用特征信息直接對存儲單元編程,使之處于近乎要求的狀態(tài)(230),而不必再做編程校驗操作。
文檔編號G11C11/56GK1209214SQ96199996
公開日1999年2月24日 申請日期1996年12月10日 優(yōu)先權(quán)日1995年12月14日
發(fā)明者A·法茲奧, G·E·阿特烏德, J·O·米, P·魯拜 申請人:英特爾公司