使用自適應編程驗證方案的閃速存儲器件和相關操作方法
【專利摘要】一種對閃速存儲器件進行編程的方法,包括:對選定的存儲單元編程;執行驗證操作,以確定選定的存儲單元是否達到了目標編程狀態;以及基于與檢測初始編程狀態的編程期間的合格比特相關聯的編程特性,來確定驗證操作的起始點。
【專利說明】使用自適應編程驗證方案的閃速存儲器件和相關操作方法
[0001]本申請是申請日為2010年12月30的題為“使用自適應編程驗證方案的閃速存儲器件和相關操作方法”的發明專利申請N0.201010622089.7的分案申請。
[0002]本申請要求在35U.S.C.§119下在2010年2月11日遞交的韓國專利申請N0.10-2010-0012894的優先權,其公開合并在此,以作參考。
技術領域
[0003]本發明原理的實施例一般地涉及半導體存儲器件。更具體地,本發明原理的實施例涉及使用自適應編程驗證方案的閃速存儲器件和相關操作方法。
【背景技術】
[0004]半導體存儲器在從衛星到消費產品的多種現代電子器件中扮演著重要角色。因此,半導體存儲器技術的進步可以導致大量技術應用的顯著提升。
[0005]根據是否在斷電時保持存儲數據,可以將半導體存儲器件粗略地劃分為兩個類另O。所述類別包括易失性半導體存儲器件和非易失性半導體存儲器件,其中易失性半導體存儲器件在斷電時丟失存儲數據,而非易失性半導體存儲器件在斷電時保持存儲數據。易失性存儲器件的示例包括靜態隨機存取存儲器(SRAM)器件和動態隨機存取存儲器(DRAM)器件。非易失性存儲器件的示例包括各種只讀存儲器(R0M),例如MR0M、PR0M、EPR0M和EEPROM0
[0006]近年來,EEPROM形式的閃速存儲器變得越來越普遍。與其他形式的非易失性存儲器相比,閃速存儲器較為廉價,并且能夠提供較高性能和數據存儲容量。此外,閃速存儲器能夠抗物理震動,使其特別廣泛地用于便攜式設備中,例如蜂窩電話、數碼相機、筆記本計算機等。
[0007]閃速存儲器具有兩種普通配置,包括NOR配置和NAND配置。具有這些配置的閃速存儲器分別被稱為NOR閃速存儲器和NAND閃速存儲器。與NAND閃速存儲器相比,NOR閃速存儲器可以提供更快的存取速度,但具有較低的存儲容量。因此,NOR閃速存儲器通常用于存儲要求快速存取的信息(例如代碼),而NAND閃速存儲器通常用于提供針對諸如多媒體信息、數據文件等信息的大量數據存儲能力。
[0008]—些閃速存儲器被設計為每個存儲單元存儲多于一比特數據。每個存儲單元存儲多于一比特數據的閃速存儲器被稱為多級單元(MLC)閃速存儲器。
[0009]—般使用稱為步增脈沖編程(incremental step pulse programming) (ISPP)的技術對MLC閃速存儲器編程。在步增脈沖編程中,利用多個編程循環(program loop)對選定的存儲單元編程,其中每個編程循環包括向選定的存儲單元施加編程電壓以修改該存儲單元的狀態的編程執行部分,以及向選定的存儲單元施加驗證電壓以確定該存儲單元是否達到目標狀態的驗證部分。通過以此方式執行編程循環,逐步對選定的存儲單元編程,并且可以防止某種類型的編程錯誤,例如重復編程(over-programming)。
【發明內容】
[0010]本發明原理的實施例提供使用自適應編程驗證方案的閃速存儲器件以及操作閃速存儲器件的方法。
[0011]根據本發明原理的實施例,一種對閃速存儲器件編程的方法包括(a)對選定的存儲單元編程,(b)執行驗證操作,以確定選定的存儲單元的閾值電壓是否達到了與目標編程狀態相對應的驗證電平,(c)根據與檢測選定的存儲單元中的初始合格比特(initial passbit)相關聯的參數,確定針對至少一個目標編程狀態的驗證起始點,和(d)根據與檢測將多個選定的存儲單元成功編程為最低的一個目標編程狀態相關聯的參數,確定針對至少一個目標編程狀態的驗證結束點。
[0012]在特定實施例中,與檢測初始合格比特相關聯的參數是:在檢測到初始合格比特的編程循環中,用于對選定的存儲單元編程的編程電壓。
[0013]在特定實施例中,驗證起始點是驗證起始循環(verificat1n start loop)。
[0014]在特定實施例中,驗證起始點根據與初始編程狀態相對應的第一閾值電壓分布和與至少一個目標編程狀態相對應的第二閾值電壓分布之間的裕度(margin)而變化。
[0015]在特定實施例中,驗證起始點根據第一和第二閾值電壓分布是否重疊而變化。
[0016]在特定實施例中,在第一和第二閾值電壓分布重疊的情況下,提高驗證起始點。
[0017]在特定實施例中,在第一和第二閾值電壓分布不重疊的情況下,降低驗證起始點。
[0018]在特定實施例中,與檢測將多個選定的存儲單元成功編程為最低的一個目標編程狀態相關聯的參數包括:在檢測到所述多個選定的存儲單元被成功編程為所述最低的一個目標編程狀態的編程循環中使用的編程電壓。
[0019]在特定實施例中,確定驗證結束點包括:預測針對至少一個目標編程狀態的合格點,以及從預測的合格點減去偏移值。
[0020]在特定實施例中,從多個目標編程狀態的預測的合格點減去相同的偏移值,以確定針對所述多個目標編程狀態的驗證結束點。
【附圖說明】
[0021]附圖示出了本發明原理的選定的實施例。在附圖中,相似的附圖標記指示相似的特征。此外,特定元件的相對尺寸可能為了清楚起見而被放大。
[0022]圖1是示出根據本發明原理的實施例的閃速存儲器件的框圖。
[0023]圖2是示出包括存儲單元陣列的閃速存儲器件的框圖,存儲單元陣列包括具有全位線結構或奇-偶位線結構的存儲塊。
[0024]圖3A到3C是示出存儲不同數量比特的存儲單元的閾值電壓分布的示意圖。
[0025]圖4是示出用于對連接到選定的字線的存儲單元編程的一系列編程脈沖的示意圖。
[0026]圖5A到5C是示出根據本發明原理的實施例對閃速存儲器件編程的方法的閾值電壓示意圖。
[0027]圖6和7是示出驗證圖5A的編程操作的方法的示意圖。
[0028]圖8和9是示出驗證圖5B的編程操作的方法的示意圖。[0029 ]圖1O和11是示出驗證圖5C的編程操作的方法的示意圖。
[0030 ]圖12A到12C是示出用于圖5A到5C的方法的編程電壓和驗證電壓的電壓示意圖。
[0031]圖13是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。
[0032]圖14是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。
[0033]圖15是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。
[0034]圖16是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0035]圖17是針對存儲多比特數據的存儲單元的閾值電壓示意圖。
[0036]圖18是示出根據本發明原理的實施例用于圖16的方法中的驗證方案的示意圖。
[0037]圖19是示出根據本發明原理的另一實施例用于圖16的方法中的驗證方案的示意圖。
[0038]圖20是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0039]圖21是示出根據本發明原理的實施例用于圖20的方法中的驗證方案的示意圖。
[0040]圖22是示出能夠執行圖20的方法的閃速存儲器件的框圖。
[0041]圖23A和23B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0042]圖24A和24B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0043]圖25A和25B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0044]圖26A和26B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0045]圖27是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0046]圖28是示出根據本發明原理的實施例用于圖27的方法中的驗證方案的示意圖。
[0047]圖29是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0048]圖30是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0049]圖31是示出根據本發明原理的實施例用于圖30的方法中的驗證方案的示意圖。
[0050]圖32是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0051]圖33是示出根據本發明原理的實施例包括閃速存儲器件的集成電路卡的框圖。
[0052]圖34是示出根據本發明原理的實施例包括閃速存儲器件的計算系統的框圖。
[0053]圖35是示出根據本發明原理的實施例的圖34的計算系統的存儲器控制器的框圖。
【具體實施方式】
[0054]以下參考附圖描述本發明原理的實施例。提供這些實施例作為教導性示例,其不應被理解為限制本發明原理的范圍。
[0055]在下面的描述中,當稱第一特征“連接到”第二特征時,第一特種可以“直接連接至Γ第二特征,或經由中間特征“電連接”到第二特征。單數形式的術語包括復數形式,除非上下文指明相反情況。術語“包括”、“包含”指的是存在某特征,而不排除其他特征。
[0056]圖1是示出根據本發明原理的實施例的閃速存儲器件的框圖。為了說明的目的,假設圖1的閃速存儲器件是NAND閃速存儲器件。但是,本發明原理的實施例不限于NAND閃速存儲器件。
[0057]參考圖1,閃速存儲器件包括存儲單元陣列100,存儲單元陣列100包括布置成連接到字線W L的行和連接到位線B L的列的存儲單元。每個存儲單元存儲I比特數據或M比特數據,其中M是大于I的整數。每個存儲單元可以使用諸如浮置柵極或電荷俘獲層的電荷存儲層、可變電阻器、或其他類型的存儲元件來存儲信息。
[0058]可以利用單層陣列結構(稱為二維陣列結構)或多層陣列結構(稱為三層陣列結構)來實現存儲單元陣列 100。題為 “SEMICONDUCTOR MEMORY DEVICE WITH MEMORY CELL SON MULTIPLE LAYERS” 的美國專利公開N0.2008/0023747和題為 “SEMICONDUCTOR DEVICEWITH THREE-DIMENS1NAL ARRAY STRUCTURE” 的美國專利公開N0.2008/0084729公開了三維陣列結構的示例,其相應公開通過引用包含于此。
[0059]行解碼器200執行針對存儲單元陣列100的行的選擇和驅動操作。電壓生成器300受控制邏輯裝置400的控制,并生成用于編程、擦除和讀取操作的電壓(例如編程電壓、合格電壓、擦除電壓和讀取電壓)。讀/寫電路500受控制邏輯裝置400控制,并且根據閃速存儲器件的各種操作模式,作為讀出放大器或寫驅動器操作。例如,在讀操作中,讀/寫電路500作為用于從選定的行的選定的存儲單元感測數據的讀出放大器操作。輸入/輸出電路600從讀/寫電路500接收讀數據,并將讀數據發送到外部目的地。在編程操作中,讀/寫電路500作為寫驅動器操作,以根據編程數據驅動選定的行的選定的存儲單元。讀/寫電路500包括與相應的位線或位線對相對應的頁緩沖器。在選定的存儲單元存儲多比特/多級數據時,讀/寫電路500的每個頁緩沖器可以包括兩個或更多個鎖存器。輸入/輸出電路600—般與諸如存儲器控制器或主機等外部設備接口。
[0060]控制邏輯裝置400控制閃速存儲器件的整體操作,并且包括合格比特檢測器410、合格/失敗確定器420,和寄存器430。
[0061]在驗證操作中,合格比特檢測器410接收已被讀/寫電路500讀取的數據。然后,合格比特檢測器410基于讀/寫電路500所讀取的數據,確定是否至少一個選定的存儲單元的閾值電壓大于等于第一編程狀態的驗證電平(即所述至少一個選定的存儲單元是否針對第一編程狀態“編程合格”)。在確定至少一個選定的存儲單元針對第一編程狀態編程合格的情況下,控制邏輯裝置400確定用于執行針對其他編程狀態的驗證操作的驗證起始點。
[0062]驗證起始點是諸如特定編程循環等編程操作中的點,其中首先執行針對特定編程狀態的驗證操作。例如,針對選定的存儲單元的編程狀態P2的驗證起始點可以是第一編程循環,在所述第一編程循環中執行驗證操作以確定選定的存儲單元是否被成功編程為狀態P2。在針對編程狀態P2的驗證起始點之前的編程循環中,省略針對編程狀態P2的驗證操作。
[0063]在特定實施例中,針對編程狀態P2的驗證起始點是根據編程電壓的保存值確定的,在編程電壓的保存值處,第一選定的存儲單元被檢測為成功編程為編程狀態Pl。例如,在一些實施例中,驗證起始點是其中編程電壓值等于保存值和預定值之和的編程循環。
[0064]寄存器430存儲來自控制邏輯裝置400的合格比特信息,所述合格比特信息指示編程合格的循環。編程合格的循環是其中至少一個選定的存儲單元針對特定編程狀態被編程合格的編程循環。合格比特信息確定針對隨后編程狀態的驗證操作的起始點,如下所述。還可以將合格比特信息提供給外部設備,例如存儲器控制器。合格/失敗確定器420基于在驗證操作期間從讀/寫電路500提供的讀數據,確定是否所有選定的存儲單元都被成功編程。
[0065]換言之,合格/失敗確定操作確定是否所有選定的要被編程為特定程序狀態的存儲單元都達到了該狀態。同時,合格比特檢測操作檢測是否至少一個選定的要被編程為特定編程狀態的存儲單元達到了該狀態。在各種備選實施例中,合格/失敗確定操作和合格比特檢測操作的順序可以改變。例如,在一些實施例中,可以在合格/失敗確定操作之前執行合格比特檢測操作,在另一些實施例中,在合格/失敗確定操作之后執行合格比特檢測操作。
[0066]圖2是示出包括存儲單元陣列的閃速存儲器件的示意圖,存儲單元陣列包括具有全位線結構或奇-偶位線結構的存儲塊。在圖2的示例中,NAND閃速存儲器設備包括具有1024個存儲塊的存儲單元陣列100。在存儲單元陣列100中,存儲在相同存儲塊中的數據被同時擦除。在每個存儲塊中,存儲單元被布置在連接到相同位線(例如IKB位線)的列中。
[0067]在全位線結構中,在讀和編程操作期間,同時選擇存儲塊的所有位線。因此,連接到公共字線和連接到所有位線的存儲單元被同時編程。在圖2的示例中,相同列中的存儲單元被串聯以形成NAND串111。NAND串111的一端通過由串選擇線SSL控制的選擇晶體管連接到相應位線,另一端通過由地選擇線GSL控制的選擇晶體管連接到公共源極線CSL。
[0068]在奇-偶結構中,將位線劃分為偶位線BLe和奇位線BLo。連接到公共字線并且連接到奇位線的存儲單元被一起編程,而連接到公共字線并且連接到偶位線的存儲單元被一起編程。可以將數據編程到不同存儲塊中,以及從不同存儲塊讀取數據。可以同時執行這些操作。
[0069]圖3A到3C是示出存儲不同數量比特的存儲單元的閾值電壓分布的示意圖。具體地,圖3A示出了針對存儲2比特數據的存儲單元的閾值電壓分布,圖3B示出了針對存儲3比特數據的存儲單元的閾值電壓分布,圖3C示出了針對存儲4比特數據的存儲單元的閾值電壓分布。圖3A到3C的閾值電壓分布對應于存儲單元的編程狀態。因此,在下面的描述中,有時將閾值電壓分布稱為編程狀態。
[0070]在將2比特數據(4級(4-level)數據或2頁(2-page)數據)存儲在一組存儲單元中的情況下(如圖3A所示),每個存儲單元具有四個閾值電壓分布10到13之一內的閾值電壓。閾值電壓分布10包括被擦除的存儲單兀的閾值電壓,閾值電壓分布11到13包括被編程的存儲單元的閾值電壓。電壓VPl到VP3是用于確定存儲單元是否被編程為相應閾值電壓分布11到13的驗證電壓。
[0071]在將3比特數據(8級數據或3頁數據)存儲在一組存儲單元中的情況下(如圖3B所示),每個存儲單元具有八個閾值電壓分布20到27之一內的閾值電壓。閾值電壓分布20包括被擦除的存儲單元的閾值電壓,閾值電壓分布21到27包括被編程的存儲單元的閾值電壓。電壓VPl到VP7是用于確定存儲單元是否被相應地編程為閾值電壓分布21到27的驗證電壓。
[0072]在將4比特數據(16級數據或4頁數據)存儲在一組存儲單元中的情況下(如圖3C所不),每個存儲單兀具有16個閾值電壓分布30到45之一內的閾值電壓。閾值電壓分布30包括被擦除的存儲單元的閾值電壓,閾值電壓分布31到45包括被編程的存儲單元的閾值電壓。電壓VPl到VP15是用于確定選定的存儲單元是否被編程為閾值電壓分布11到13的驗證電壓。
[0073]圖4是示出用于對連接到選定的字線的選定的存儲單元編程的一系列編程脈沖的示意圖。圖4的示例使用普通ISPP方案。本發明的特定實施例使用相對于圖4的普通ISPP方案有所修改的編程方案。
[0074]在普通ISPP方案中,將編程電壓Vpgm作為一系列編程脈沖施加到選定的存儲單元的控制柵極。編程脈沖的電平以連續反復的方式提高。
[0075]在編程脈沖之間的時間段中執行驗證操作(或驗證讀操作)。驗證操作確定選定的存儲單元的閾值電壓是否達到了驗證電平。
[0076]在諸如參考圖3描述的多級閃速存儲器單元的陣列中,執行驗證操作以確定選定的存儲單元是否達到了與期望邏輯狀態相對應的閾值電壓分布。例如,如圖4所示,在4級MLC中,使用驗證電壓VPl到VP3執行驗證操作,以確定選定的存儲單元是否已被成功編程為與閾值電壓分布11到13之一相對應的邏輯狀態。類似地,在8級MLC中,使用驗證電壓VPI到VP7執行驗證操作,在16級MLC中,使用15個驗證電壓VPl到VP15執行驗證操作。
[0077]使用圖4的普通編程方案執行編程操作所需的時間會與選定的存儲單元的編程狀態數量成比例地增加。此外,在這些編程操作中,驗證操作會占用總編程時間的大部分。因此,根據本發明原理的特定實施例的閃速存儲器件應用自適應驗證方案,自適應驗證方案即使在選定的存儲單元的編程狀態數量較大的情況下也能減少驗證時間。
[0078]圖5A到5C是示出根據本發明原理的實施例對閃速存儲器件編程的方法的示意圖。在圖5A到5C的實施例中,假設閃速存儲器件在每個單元中存儲4比特數據,并且根據3步編程方案執行編程操作。
[0079]在圖5A到5C的方法中,在連接到選定的字線的選定的存儲單元中同時對第一和第二頁數據編程。如圖5A所示,根據要被編程的數據,具有與擦除狀態E相對應的閾值電壓分布的選定的存儲單元被編程為與編程狀態Ql到Q3相對應的閾值電壓分布。
[0080]接著,將第三和第四頁數據同時存儲在選定的存儲單元中。如圖5B所示,根據要被編程的數據,處于擦除狀態E的選定的存儲單元被編程為與編程狀態P1’到P3’相對應的閾值電壓分布。根據要被編程的數據,圖5A的處于編程狀態Ql的選定的存儲單元被編程為與編程狀態P4’到P7’相對應的閾值電壓分布。根據要被編程的數據,圖5A的處于編程狀態Q2的選定的存儲單元被編程為與編程狀態P8’到Ρ1Γ相對應的閾值電壓分布。根據要被編程的數據,圖5A的處于編程狀態Q3的選定的存儲單元被編程為與編程狀態P12’到P15’相對應的閾值電壓分布。
[0081 ]用于確定編程狀態Pl ’到P15 ’的驗證電壓VPl ’到VP15 ’低于用于確定最終編程狀態Pl到P15的驗證電壓VPl到VP15(見圖5C)。例如,用于確定編程狀態P1’的驗證電壓VP1’低于用于確定相應的閾值電壓分布Pl的驗證電壓VPl(見圖5C)。將選定的存儲單元編程為圖5B的閾值電壓分布的操作稱為粗編程操作。
[0082]在細編程操作(或再編程操作)中,將處于編程狀態Pl’到P15 ’的選定的存儲單元編程為具有最終編程狀態Pl到Pl 5。
[0083]可以順序地或非順序地執行圖5A到5C的編程操作。這些編程操作可以具有用于確定選定的存儲單元是否被編程為目標閾值電壓分布的驗證操作。
[0084]圖6和7是示出驗證圖5A的編程操作的方法的示意圖。
[0085]參考圖6,在將編程電壓Vpgm施加到與選定的字線相連的選定的存儲單元之后,將用于驗證編程狀態Ql的驗證電壓施加到選定的字線。此時,如圖6所示,不執行針對其他編程狀態Q2和Q3的驗證操作。然后,將驗證電壓施加到選定的字線,讀/寫電路500從存儲單元讀取數據。隨后,控制邏輯裝置400的合格比特檢測器410基于讀數據,檢測是否至少一個選定的存儲單元的閾值電壓大于等于編程狀態Ql的驗證電壓VQ1。在沒有選定的存儲單元的閾值電壓大于等于驗證電壓VQl的情況下,編程電壓Vpgm提高預定量,編程操作進行到下一編程循環。否則,閃速存儲器件確定針對編程狀態Q2和Q3的驗證起始點。
[0086]參考圖7,在檢測到至少一個選定的存儲單元的閾值電壓大于等于驗證電壓VQl的情況下,控制邏輯裝置400根據編程電壓Vpgm的當前值設置編程狀態Q2的驗證起始點。具體地,控制邏輯裝置400將驗證起始點設置為以下編程循環:該編程循環的編程電壓Vpgm的值等于編程電壓Vpgm的當前值和驗證電壓VQl與VQ2之間的電壓差AV之和。此外,假設驗證電壓VQ2與VQ3之間的電壓差也是△ V,則控制邏輯裝置400將編程狀態Q3的驗證起始點設置為以下編程循環:該編程循環的編程電壓Vpgm的值等于編程電壓Vpgm的當前值和2 △ V之和。如圖6所示,在所確定的驗證起始點之前,不執行編程狀態Q2和Q3的驗證操作。
[0087]在一些實施例中,將其中檢測到合格比特的編程循環(或向被確定為合格比特的選定的存儲單元施加的編程電壓)存儲在控制邏輯裝置400的寄存器430中。或者,在控制邏輯裝置400的控制下將編程循環(或編程電壓)提供給外部設備,例如存儲器控制器。
[0088]如上所述,在執行合格比特檢測之前或之后,可以由合格/失敗確定器420執行合格/失敗確定操作。在選定的存儲單元被成功編程為其目標狀態的情況下,在隨后的編程循環中將編程禁止電壓施加到選定的存儲單元。
[0089]圖8和9是示出驗證圖5B的編程操作的方法的示意圖。
[0090]參考圖8,在將編程電壓Vpgm施加到與選定的字線相連的選定的存儲單元之后,將用于驗證編程狀態P1’的驗證電壓施加到選定的字線。此時,如圖8所示,不執行針對其他編程狀態P2’到P15’的驗證操作。然后,將驗證電壓施加到選定的字線,讀/寫電路500從選定的存儲單元讀取數據。隨后,控制邏輯裝置400的合格比特檢測器410基于讀數據,檢測是否至少一個選定的存儲單元的閾值電壓大于等于編程狀態P1’的驗證電壓VP1’。在沒有選定的存儲單元的閾值電壓大于等于編程狀態Pl ’的驗證電壓VPl ’的情況下,編程電壓Vpgm提高預定量,編程操作進行到下一編程循環。否則,閃速存儲器件確定針對編程狀態P2’到Pl5’的驗證起始點。
[0091]參考圖9,在檢測到至少一個選定的存儲單元的閾值電壓大于等于驗證電壓VP1’的情況下,控制邏輯裝置400根據編程電壓Vpgm的當前值設置編程狀態P2’的驗證起始點。具體地,控制邏輯裝置400將驗證起始點設置為其編程電壓Vpgm的值等于編程電壓Vpgm的當前值和驗證電壓VP1’與VP2’之間的電壓差AVl之和的編程循環。此外,假設驗證電壓VP2’與VP3’之間的電壓差也是Δ Vl,則控制邏輯裝置400將編程狀態P3’的驗證起始點設置為其編程電壓Vpgm的值等于編程電壓Vpgm的當前值和2 AVl之和的編程循環。如圖8所示,在相應的驗證起始點之前,不執行編程狀態P2 ’到Pl5 ’的驗證操作。
[0092]在一些實施例中,控制邏輯裝置400的寄存器430在粗編程操作期間存儲合格比特信息,例如其中檢測到合格比特的編程循環或循環的編程電壓。然后存儲在寄存器430中的合格比特信息可用于確定用于細編程操作的最終編程狀態Pl到P15的驗證起始點。
[0093]在一些實施例中,將合格比特信息輸出到外部設備,例如存儲器控制器。合格比特信息可用于執行針對選定的存儲單元的細編程操作。
[0094]圖10和11是示出驗證圖5C的編程操作的方法的示意圖。
[0095]參考圖10,控制邏輯裝置400基于在先前編程操作中檢測到的合格比特信息,確定編程狀態PI到P15的驗證起始點。例如可以從寄存器430訪問合格比特信息。參考圖11,控制邏輯裝置400基于指示在對選定的字線的先前頁編程操作中檢測到的合格比特的合格比特信息,確定編程狀態Pl的驗證起始點。控制邏輯裝置400將編程狀態P2的驗證起始點確定為以下編程循環:在該編程循環中,編程電壓Vpgm等于驗證電壓VPl與VP2之間的電壓差AV2和與在先前編程操作中檢測到的合格比特信息相對應的編程電壓Vpgm之和。此外,假設驗證電壓VP2與VP3之間的電壓差也是AV2,則控制邏輯裝置400將編程狀態Q3的驗證起始點設置為其編程電壓Vpgm等于編程電壓Vpgm的當前值和2 AV2之和的編程循環。如圖10所示,在相對應的驗證起始點之前,不執行編程狀態P2到P15的驗證操作。
[0096]在上面參考圖5描述的編程方法中,在相對應的驗證起始點之前,不執行針對編程狀態Pl到P15的驗證操作。例如,僅在當前循環到達針對相對應的編程狀態的驗證起始點之后,才將用于驗證編程狀態Pl到P15的驗證電壓施加到選定的字線。
[0097 ]圖12A是示出用于圖5A的方法的編程電壓和驗證電壓的電壓示意圖。圖12B是示出用于圖5B的方法的編程電壓和驗證電壓的電壓示意圖。圖12C是示出用于圖5C的方法的編程電壓和驗證電壓的電壓示意圖。
[0098]如圖12A所示,在編程狀態Ql的驗證操作期間檢測合格比特。一旦檢測到合格比特,控制邏輯裝置400就確定其他編程狀態Q2和Q3的驗證起始點。如圖12B所示,在編程狀態P1’的驗證操作期間檢測合格比特。一旦檢測到合格比特,控制邏輯裝置400就確定其他編程狀態P2’和P15’的驗證起始點。此時,將合格比特信息存儲在控制邏輯裝置400的寄存器430中,以確定隨后的頁編程操作(例如細編程階段)的驗證起始點。最后,如圖12C所示,基于存儲在寄存器430中的信息,確定最終編程狀態Pl到P15的驗證起始點。
[0099]在參考圖5到12描述的編程操作中,通過去掉某些驗證操作提高了編程速度。
[0100]圖13是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。在圖13的方法中,根據圖13左側所示的不同情況使用不同技術對存儲單元編程。
[0101 ]在圖13所示的兩種不同情況下,根據選定的存儲單元的先前狀態和目標狀態,可變地設置編程狀態的驗證起始點。在第一種情況下,先前狀態和目標狀態不重疊,因為先前狀態的閾值電壓分布沒有超過目標狀態的驗證電壓。在第二種情況下,先前狀態和目標狀態重疊,因為先前狀態的閾值電壓分布超出了目標狀態的驗證電壓。
[0102]在待驗證的目標狀態對應于第一種情況時,目標狀態的驗證起始點使用由到圖13的實線右側的虛線所示的驗證電壓。另一方面,在待驗證的目標狀態對應于第二種情況時,目標狀態的驗證起始點使用由到圖13的實線左側的點線所示的驗證電壓。在圖13的示例中,根據圖6或圖8的方法確定與實線相對應的驗證起始點。
[0103]將圖13的方法應用于圖5A的示例,可以通過在先狀態E和目標狀態Ql到Q3實現第一種情況。在圖5A的示例中沒有出現第二種情況,因為在彼此重疊的閾值電壓分布之間不對存儲單元編程。將圖13的方法應用于圖5B的示例,可以通過在先狀態E和目標狀態Pl,到P3 ’、在先狀態Ql和目標狀態P5’到P7 ’、在先狀態Q2和目標狀態P9 ’到PlI ’、以及在先狀態Q3和目標狀態P13 ’到Pl 5 ’實現第一種情況。可以通過在先狀態Ql和目標狀態P4 ’、在先狀態Q2和目標狀態P8、以及在先狀態Q3和目標狀態Pl2實現第二種情況。將圖13的方法應用于圖5C的示例,可以通過在先狀態Pl ’到P15’和目標狀態Pl到Pl5實現第二種情況。
[0104]圖14是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。
[0105]圖14的方法基本與圖13的方法相同,不同之處在于,基于來自對相同字線的先前頁編程操作的合格比特信息,而不是來自針對第一編程狀態Pl的合格比特檢測操作的合格比特信息,來執行驗證起始點的確定操作。
[0106]如以上對圖13和14的描述所指出的那樣,基于檢測到的合格比特、存儲的合格比特、或檢測到的合格比特或存儲的合格比特與先前狀態和目標狀態之間的關系,來確定每個編程狀態的驗證起始點。
[0107]圖15是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的示意圖。[0?08] 在圖15的方法中,根據影子編程(shadow programming)方案對選定的存儲單元編程。即使在使用影子編程方案執行編程操作時,也可以使用上述方法確定驗證起始點。例如,可以基于檢測到的合格比特、存儲的合格比特、或檢測到的合格比特或存儲的合格比特與先前狀態和目標狀態之間的關系,來確定每個編程狀態的驗證起始點。
[0109]圖16是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。圖17是示出由圖16的方法來編程的多比特數據的閾值電壓分布的示意圖。
[0110]在圖16的方法中,使用包括編程執行部分和驗證部分的編程操作對閃速存儲器件編程。編程執行部分改變選定的字線的選定的存儲單元的閾值電壓,驗證部分確定已在編程執行部分期間改變的選定的存儲單元的閾值電壓是否達到了相對應的閾值電壓。在編程執行部分期間將編程電壓施加到選定的字線,在驗證部分期間將一系列驗證電壓順序施加到選定的字線。所述一系列驗證電壓與對選定的存儲單元中的多比特數據加以表示的閾值電壓分布相對應。在編程執行部分之前將待編程的數據加載到閃速存儲器件中。可以在加載待編程的數據之前讀取先前編程的數據。
[0111]參考圖16,在操作SlOO將變量FLAG和Pi_FLAG設置為“O”。變量FLAG用于指示最低編程狀態(例如圖2的狀態Pl)是否合格,變量Pi_FLAG指示其他編程狀態是否合格。編程狀態的“合格”狀態指示與編程狀態相對應的選定的存儲單元的所有閾值電壓都大于等于編程狀態的驗證電壓。編程狀態的合格狀態不同于編程操作的編程合格。
[0112]在操作SI10執行編程操作。操作SI 10對應于編程執行部分。然后,操作S120確定變量FLAG是否被設置為“I”。如果變量FLAG未被設置為“I”(S120 =否),則方法進行到操作S130。在操作S130,針對編程狀態Pl執行驗證操作。然后,在操作S140,方法確定是否與編程狀態Pl相對應的所有選定的存儲單元的閾值電壓都大于等于驗證電壓。換言之,操作S140確定編程狀態Pl是否合格。
[0113]在確定編程狀態Pl合格的情況下(S140=是),方法進行到操作S150,其中將變量FLAG設置為“I”。此后,在進一步的編程循環的驗證部分期間省略針對編程狀態Pl的驗證操作。最后,例如在最后一個編程循環,針對編程狀態Pl執行的驗證被稱為驗證結束點或驗證結束循環。接下來,操作S160預測其余編程狀態的驗證結束點。如下預測其余編程狀態的驗證結束點。
[0114]在檢測到編程狀態Pl合格的情況下,方法確定或預測每個其余編程狀態的合格點,其中合格點指示編程狀態合格情況下的編程循環或編程電壓。然后,合格點可用于確定針對其余編程狀態的驗證結束點。
[0115]通過公式“Vpgm(i)=Vpgm(pass)+Vdiff”確定其余編程狀態的合格點,其中Vdiff指示編程狀態Pl的驗證電壓VPl與另一編程狀態的驗證電壓之間的差值電壓“N* △ V”(其中N彡I),Vpgm(i) (i彡2)指示編程狀態Pl之外的每個其余編程狀態(例如編程狀態P2到P7)的合格點的編程電壓,Vpgm(paSS)指示編程狀態Pl合格的點的編程電壓。
[0116]如圖2所示,假設每個存儲單元中存儲3比特數據,每個存儲單元具有與狀態E和Pl到P7相對應的8個閾值電壓分布中的任何一個。通過相對應的驗證電壓Vvfyl到Vvfy7確定編程狀態Pl到P7。圖2的狀態分布示意圖是在差值電壓AV在與相鄰編程狀態(例如Pl和P2)相對應的驗證電壓(例如Vvfyl和Vvfy2)之間相同的情況下示出的。但是,在其他實施例中,驗證電壓之間的差值電壓可以不同。
[0117]如上所述確定編程狀態Pl之外的企業編程狀態的合格點。基于所確定的合格點來確定其余編程狀態的驗證結束點。通過公式“Vpgm( i )_VE = Vpgm( i )_Voff set (i ),’確定驗證結束點,其中Vpgm(i)_VE指示與每個其余編程狀態的驗證結束點相對應的編程電壓,Voffset(i)指示每個其余編程狀態的偏移電壓。在不同實施例中,可以將其余編程狀態的偏移電壓設置為相同的值或不同的值。
[0118]在一些實施例中,閃速存儲器件通過將當前編程循環的編程電壓與和驗證結束點相關聯的編程電壓相比較,來確定針對特定編程狀態是否達到了驗證結束點。或者,閃速存儲器件可以通過將當前編程循環的索引(index)或其他標識符與驗證結束點的編程循環標識符相比較,來針對特定編程狀態是否達到了驗證結束點。
[0119]在一些實施例中,針對編程狀態的驗證結束點可能出現在所有相關存儲單元都被編程為該狀態之前。這是因為可以根據上文描述的預測來確定驗證結束點。在這種情況發生時,尚未被成功編程的存儲單元包括失敗比特。可以在讀取比特期間通過存儲器控制器的糾錯碼(ECC)單元校正失敗比特。失敗比特一般與具有慢編程速度的存儲單元相關聯,并且被稱為慢比特。
[0120]一旦針對其余編程狀態P2到P7確定了驗證結束點,方法就進行到操作S170。在操作S170,針對其余編程狀態P2到P7執行驗證操作,如下所述。在操作S120確定變量FLAG被設置為“1”(S120 =是)的情況下,或者操作S140確定編程狀態Pl不合格(S140 =否)的情況下,方法也進行到操作SI 70。
[0121]在操作S170執行的其余編程狀態的驗證操作基于在操作S160確定的驗證結束點而自動結束。例如,在操作S171針對下一編程狀態(例如狀態P2)執行驗證操作。操作S172確定與編程狀態P2相對應的存儲單元的閾值電壓是否大于等于驗證電壓Vvfy2。即,操作S172確定是否與編程狀態P2相對應的所有存儲單元都編程合格。在確定與編程狀態P2相對應的所有存儲單元都編程合格的情況下(S172 =是),方法進行到操作S173。否則(S172 =否),方法進行到操作S174。
[0122]在操作S174,方法確定當前編程循環是否到達了針對編程狀態P2的驗證結束點。如果是(S174 =是),則方法進行到操作S173。否則(S174 =否),方法進行到操作S175。
[0123]在操作S173,將變量Pi_FLAG設置為合格狀態,以指示在下一編程循環中省略針對編程狀態P2的驗證操作。
[0124]在操作S175,方法確定是否已執行了針對其余編程狀態P2到P7的所有驗證操作。在尚未執行針對編程狀態P2到P7的所有驗證操作(S175 =否)的情況下,方法進行到操作S176。否則(S175 =是),方法進行到操作S180。在操作S176,變量“i”增加1,方法返回操作S171o
[0125]在操作S180,方法確定是否所有編程狀態(例如Pl到P7)都合格。在確定一個或多個編程狀態不合格(S180 =否)的情況下,方法操作進行到操作S190。否則(S180 =是),方法結束。
[0126]在操作S190,指示編程循環的變量LOOP增加I,方法返回操作S110。執行隨后的編程循環,直到確定所有編程狀態都合格。
[0127]圖18是示出根據本發明原理的實施例用于圖16的方法的驗證方案的示意圖。
[0128]參考圖18,在編程狀態Pl合格的情況下,預測針對其余編程狀態P2到P7的驗證結束點。在當前編程循環(或編程電壓)與編程狀態的預測驗證結束點相對應的情況下,編程狀態合格,編程狀態的驗證操作結束。如圖18所示,在每個編程狀態到達相應的預測驗證結束點之后,省略針對該編程狀態的驗證操作。
[0129]圖19是根據本發明原理的另一實施例在圖16的方法中使用的驗證方案的示意圖。
[0130]在圖19的方法中,與多個編程狀態中的至少兩個編程狀態的合格點相關地確定其余編程狀態的驗證結束點。例如,將編程狀態劃分為“η”個組Gl到Gn。與屬于每個組的最低編程狀態的合格點相關地確定屬于該組的其余編程狀態的驗證結束點。可以如上所述確定驗證結束點。例如,在第一組Gl中,與編程狀態Pl的合格點相關地確定其余編程狀態P2到P4的驗證結束點。在第二組G2中,與編程狀態P5的合格點相關地確定其余編程狀態P6到?8的驗證結束點。
[0131]在其他實施例中,可以改變屬于每個組的編程狀態的數量。此外,可以將施加到不同組的偏移電壓設置為相同或不同,并且可以將屬于相同組的編程狀態的偏移電壓設置為相同或不同。
[0132]圖20是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0133]在圖20的方法中,在操作S200將變量FBCPS、VPS和Pi_FLAG設置為“I”。變量FBCPS指示執行失敗比特計數的編程狀態,變量VPS指示執行驗證操作的編程狀態。變量Pi_FLAG用于指示已經執行了驗證操作的編程狀態的合格狀態。
[0134]在操作S210執行編程操作。操作S210對應于編程執行部分。接著,操作S220確定變量FBCPS的值是否等于變量VPS的值。假設當前編程循環是第一編程循環,變量FBCPS的值等于變量VPS的值(S220 =是)。因此,方法進行到操作S230。在操作S230,針對編程狀態Pl執行驗證操作,方法進行到操作S240。
[0135]操作S240對在編程狀態Pl的驗證操作中讀取的數據比特中的失敗比特的數量進行計數。可以以各種方式實現對失敗比特的計數。例如,可以基于在驗證操作期間在選定的存儲單元中流動的電流量,來對失敗比特的數量計數。或者,可以使用計數器對失敗比特的數量計數。
[0136]接著,在操作S250,方法確定失敗比特的計數數量是否小于預定參考值。在失敗比特的計數數量小于預定參考值(S250 =是)的情況下,方法進行到操作S260。否則(S250 =否),方法進行到操作S270。在操作S250,根據存儲器控制器的ECC單元的糾錯能力來確定參考值。在操作S260,將變量FBCPS的值增加1,將變量Pi_FLAG設置為指示合格狀態。換言之,確定第一編程狀態Pl具有合格狀態,因此,在后續的編程循環中省略針對編程狀態Pl的驗證操作。接著,方法進行到操作S270。
[0137]如上文所述,在與編程狀態相對應的數據比特中的失敗比特的數量小于預定參考值時,確定編程狀態具有合格狀態。因此,即使在與編程狀態相對應的數據比特包括失敗比特的情況下,也可以省略編程狀態的驗證操作。失敗比特是慢比特。換言之,在與編程狀態相對應的數據比特中的失敗比特的數量小于預定參考值時,省略針對慢比特的驗證操作。
[0138]返回操作S220,在變量FBCPS的值不等于變量VPS(S220 =否)的值的情況下,方法進行到操作S280。在針對編程狀態PI的失敗比特的計數數量大于參考值的情況下,變量FBCPS的值不變。在此情況下,假設當前驗證操作與針對編程狀態P2或另一較高編程狀態的驗證操作相關聯,則對已計數了失敗比特數量的編程狀態加以指示的變量FBCPS的值不等于對執行驗證操作的編程狀態加以指示的變量VPS的值。
[0139]在操作S280,針對于變量VPS的值相對應的當前編程狀態執行驗證操作,方法進行到操作S290。在操作S290,方法確定是否所有讀數據比特都是合格數據比特。在所有讀數據比特都是合格數據比特(S290 =是)的情況下,將變量Pi_FLAG設置為指示針對當前編程狀態的合格狀態,方法進行到操作S300 ο否則(S290 =否),方法進行到操作S270。在操作S270,方法確定是否已執行了針對編程狀態的所有驗證操作。如果尚未執行針對編程狀態的所有驗證操作(S270 =否),則方法進行到操作S310。否則(S270 =是),方法進行到操作S320。
[0140]在操作S310,對要執行驗證操作的編程循環加以指示的變量VPS的值增加I,方法返回操作S220。在操作S320,方法確定是否所有編程狀態都合格。在至少一個編程狀態不合格(S320 =否)的情況下,操作S330將編程循環的值增加I,并且將變量VPS設置為“N”。在操作S330,“N”的值指示不合格的編程狀態中的最低編程狀態。在操作S330之后,方法返回操作S210。在確定所有編程狀態都合格(S320 =是)的情況下,方法結束。
[0141]在特定實施例中,可以將圖20的方法修改為在操作S230和S240之間確定編程狀態是否合格。
[0142]圖21是根據本發明原理的實施例用于圖20的方法的驗證方案的示意圖。
[0143]參考圖21,執行針對第一編程狀態Pl的比特計數操作,直到失敗比特的數量變為小于預定參考值。此時,不執行針對其余編程狀態的失敗比特計數操作。一旦第一編程狀態Pl的失敗比特的數量變為小于預定參考值,就結束針對第一編程狀態Pl的驗證操作,并且開始針對第二編程狀態P2的失敗比特計數操作。此時,不執行針對其余編程狀態(即第二編程狀態的上級編程狀態)的失敗比特計數操作。在第二編程狀態P2的失敗比特的數量小于預定參考值時,結束針對第二編程狀態P2的驗證操作,開始針對第三編程狀態P3的失敗比特計數操作。通過與圖21所示實質相同的方案,來確定針對其余編程狀態的失敗比特計數操作。
[0144]圖22是示出能夠執行圖20的方法閃速存儲器件的框圖。
[0145]圖22的器件基本上與圖1的器件相同,不同之處在于圖22的器件還包括在控制邏輯裝置400內的用于使用電流感測對失敗比特的數量進行計數的電路440。對失敗比特的數量的計數不限于電流感測,而是也可以使用諸如計數器等其他技術實現。
[0146]圖23A和23B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0147]在圖23A和23B的示例中,假設使用一個擦除狀態E和7個編程狀態Pl到P7,將3比特數據存儲在每個存儲單元中。此外,圖23的方法可以包含以上參考圖6或圖8描述的用于確定驗證起始點的方案和以上參考圖16描述的用于確定驗證結束點的方案。可以使用驗證起始點確定操作,來跳過針對快比特的驗證操作,可以通過驗證結束點確定方案,來跳過針對慢比特的驗證操作。
[0148]參考圖23A,在操作S300中,在編程操作的初始化時,將變設置為“1”,將變量P(j)_Verify_Start和P(j)_Verify_End分別設置為最大編程循環次數Max_PGM_Loop。變量i_PGM_Loop指示當前編程循環,變量P(j)_Verify_Start指示針對第j個編程狀態的驗證起始點,變量P(j)_Verify_End指示針對第j個編程狀態的驗證結束點。接著,在操作S310,在控制邏輯裝置400的控制下執行編程操作。
[0149]然后,在操作S320,在完成編程操作之后,方法確定編程狀態Pl是否合格。在驗證操作確定編程狀態Pl不合格(S320 =否)的情況下,方法進行到操作S330。
[0150]在操作S330,針對編程狀態Pl執行驗證操作,以確定是否至少一個選定的存儲單元已被成功編程為編程狀態Pl。換言之,操作S330確定選定的存儲單元是否包括合格比特。
[0151]當在編程狀態Pl的驗證操作期間檢測到合格比特(S340=是)時,方法進行到操作S350 ο否則(S340 =否),方法進行到操作S360。
[0152]操作S350實現諸如參考圖6和圖8描述的方法,以基于檢測到的合格比特,來預測其余編程狀態P2到P7的驗證起始點P( j )_Verify_Start。具體而言,操作S350包括:在操作S351將變量“j”設置為2;在操作S352預測第j個編程狀態的驗證起始點P(j)_Verify_Start;在操作S353確定“j”是否達到指示最高有效位(MSB)編程狀態P7的7;以及在“j”沒有達到7 (S353 =否)的情況下,在操作S354將“ j”增加I。
[0153]還可以根據以上已參考圖13和14描述的方案來預測驗證起始點。當在操作S350預測了其余編程狀態P2到P7的驗證起始點?(」)_¥6^€7_3七&代之后,方法進行到操作3360。
[0154]在操作S360,方法確定編程狀態Pl是否合格。在確定編程狀態Pl合格(S360=是)之后,方法進行到操作S370。否則(S360 =否),方法進行到操作S380。
[0155]操作S370使用與參考圖16描述的方法類似的方法來預測其余編程狀態P2到?7的驗證結束點P( j)_Verify_End。具體地,操作S370包括:在操作S371設置“j”以指示編程狀態P2;在操作S372預測第j個編程狀態的驗證結束點P( j )_Verify_End;在操作S373確定“j”是否達到7;以及在“j”沒有達至Ij7的情況下,在操作S374將“j”增加I。當在操作S370預測其余編程狀態P2到P7的驗證結束點P(j)_Verify_End之后,方法進行到操作S380。
[0156]在操作S380,方法將“j”設置為2,以指示編程狀態P2。接著,在操作S390,方法確定當前編程循環i_PGM_Loop是否在編程狀態P( j)的驗證起始點P( j)_Verify_Start和驗證結束點P(j)_Verify_End之間。如果是,在執行編程狀態P(j)的驗證操作。否則,省略驗證操作。
[0157]在操作S390確定當前編程循環i_PGM_Loop大于等于編程狀態P(j)的驗證結束點P(j)_Verify_End,或小于等于編程狀態P( j)的驗證結束點P( j)_Verify_End(S390 =是)的情況下,方法進行到操作S400。否則(S390 =否),方法進行到操作S410。
[0158]在操作S400,方法執行編程狀態P(j)的驗證操作,并且進行到操作S410。在操作S410,方法確定“ j”是否達到指示編程狀態P7的7。在“ j”沒有達到7 (S410 =否)的情況下,在操作S420將“j”增加1,方法返回操作S390。否則(S410 =是),方法進行到操作S430。在操作S430,方法確定是否所有編程狀態都合格。如果不是(S430 =否),則執行操作S440以將變量i_PGM_Loop增加I o否則(S430 =是),方法結束。在操作S440之后,方法返回操作S310。
[0159]圖24A和24B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0160]在圖24A和24B的方法中,假設使用一個擦除狀態E和7個編程狀態Pl到P7將3比特數據存儲在每個存儲單元中。此外,圖24的方法可以包括以上參考圖6或圖8描述的用于預測驗證起始點的方案和以上參考圖20描述的預測驗證結束點的方案。在圖24A和24B的方法中,根據驗證起始點預測方案跳過針對快比特的驗證操作,根據驗證結束點預測方案跳過針對慢比特的驗證操作。
[0161]參考圖24A,在編程操作的初始化時執行操作S500,將變量i_PGM_Loop設置為“1”,將變量P( j)_Verify_Start和P( j)_Verify_End設置為最大編程循環次數Max_PGM_Loop。變量;[_?61_]^0(^指示當前編程循環,變量P( j)_Verify_Start指示針對第j個編程狀態的驗證起始點。接著,在操作S510,在控制邏輯裝置400的控制下執行編程操作。
[0162]在編程操作之后,操作S520確定編程狀態Pl是否合格。在編程狀態Pl不合格(S520=否)的情況下,方法進行到操作S530。否則(S520 =是),方法進行到操作S560。在操作S530,方法執行針對編程狀態Pl的驗證操作并確定針對編程狀態Pl的失敗比特的數量。如以上參考圖20所述,在針對編程狀態Pl的失敗比特的數量小于等于參考值時,將編程狀態Pl設置為合格。
[0163]接著,在操作S540,方法確定在編程狀態Pl的驗證操作期間是否檢測到至少一個合格比特(即快比特)。在檢測到合格比特(S540 =是)的情況下,方法進行到操作S550。否則(S540 =否),方法進行到操作S560。操作S560包括與以上參考圖6或圖8所述類似的操作,其中,基于檢測到的合格比特,來預測其余編程狀態P2到P7的驗證起始點P(j)_Verify_Start。因此,操作S550包括:在操作S551將變量“j”設置為2;在操作S552預測第j個編程狀態的驗證起始點P( j )_Verify_Start;在操作S553確定“j”是否達到7;以及在“j”沒有達到7(S553 =否)的情況下,在操作S554將“j”增加I。可以根據以上參考圖13和14描述的方案來預測驗證起始點。當在操作S550預測其余編程狀態P2到P7的驗證起始點P(j)_Verify_Start之后,方法進行到操作S560。
[0164]在操作S560,方法將“j”設置為2以指示編程狀態P2。然后,在操作S570,方法確定編程狀態P(j)是否合格。在編程狀態P(j)不合格(S570 =否)的情況下,方法進行到操作S580。否則(S570 =是),方法進行到操作S600。在操作S580,方法確定編程狀態P(j)的預測驗證起始點是否小于等于當前編程循環i_PGM_Loop。在當前編程循小于編程狀態P(j)的驗證起始點P(j)_Verify_Start的情況下,省略編程狀態P(j)的驗證操作。在當前編程循環:1_PGM_Loop大于編程狀態P( j)的驗證起始點P( j)_Verify_Start的情況下,執行編程狀態P( j)的驗證操作。
[0165]在當前編程循大于等于編程狀態P(j)的驗證起始點P(j)_Verify_Start的情況下,方法進行到操作S590 ο在操作S590,針對編程狀態P (j)執行驗證操作,并且對針對編程狀態PU)的失敗比特的數量進行計數。如以上參考圖20所述,在編程狀態P(j)的失敗比特的數量小于等于參考值的情況下,將編程狀態P(j)設置為合格。在其他實施例中,如以上參考圖20所述,在編程狀態Pl合格之后,執行針對編程狀態P(j)的失敗比特檢測操作。在操作S590之后,方法進行到操作S600。
[0166]在操作S600中,方法確定“j”是否達到指示編程狀態P7的7。在“j”沒有達到7(S600=否)的情況下,在操作S610將“j”增加I。否則(S600 =是),方法進行到操作S620。
[0167]在操作S620,方法確定是否所有編程狀態Pl到P7都合格。如果是(S620=是),則方法結束。否則(S620 =否),則執行操作S630,以將變增加1,方法返回操作S510o
[0168]圖25A和25B是根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0169]在圖25A和25B的方法中,假設使用一個擦除狀態E和7個編程狀態Pl到P7將3比特數據存儲在每個存儲單元中。此外,圖25A和25B的方法使用以上參考圖10描述的用于預測驗證起始點的方案和以上參考圖16描述的預測驗證結束點的方案。根據驗證起始點預測方案跳過針對快比特的驗證操作,根據驗證結束點預測方案可以跳過針對慢比特的驗證操作。
[0170]參考圖25A,在編程操作的初始化時執行操作S700,以將變設置為“I”,將變量P(j)_Verify_Start和P(j)_Verify_End設置為最大編程循環次數Max_PGM_Loop。變量i_PGM_Loop用于指示當前編程循環,變量P( j)_Verify_End用于指示針對第j個編程狀態的驗證結束點。接著,在操作S710,基于來自先前頁或先前步的編程操作的合格比特信息(例如編程電壓或編程循環),來預測編程狀態Pl到P7的驗證起始點。具體地,操作S710包括:在操作S711將變量“j”設置為I;在操作S712預測編程狀態P(j)的驗證起始點;在操作S713確定“j”是否已達到指示編程狀態P7的7;如果“j”沒有達到7(S713 =否),則在操作S714將“j”增加I。在“j”已達到7(S713 =是)的情況下,方法進行到操作S720。在操作S720,在控制邏輯裝置400的控制下執行編程操作。
[0171]在編程操作之后,操作S730確定編程狀態Pl是否合格。在編程狀態Pl不合格(S730=否)的情況下,在操作S740執行針對編程狀態Pl的驗證操作。否則(S730 =是),方法進行到操作S770。
[0172]在操作S750,方法確定編程狀態Pl是否合格。在編程狀態Pl合格(S750=是)的情況下,方法進行到操作S760ο否則(S750 =否),方法進行到操作S770。
[0173]與圖16的方法類似地執行操作S760,其中預測其余編程狀態P2到P7的驗證結束點P(j )_Verify_End。具體地,操作S760包括:在操作S761將“ j”設置為2 ;在操作S762預測第j個編程狀態的驗證結束點P( j)_Verify_End;在操作S763確定“j”是否達到7;以及在“j”沒有達到7(S763 =否)的情況下,在操作S764將“j”增加I。當在操作S760預測其余編程狀態P2到P7的驗證結束點P(j)_Verify_End之后,方法進行到操作S770。
[0174]在操作S770,將“j”設置為2以指示編程狀態P2。然后,在操作S780,方法確定當前編程循是否在編程狀態P(j)的驗證起始點P(j)_Verify_Start與編程狀態P(j)的驗證結束點P(j)_Verify_End之間。如果是則在當前編程循環中執行編程狀態P(j)的驗證操作。否則,省略驗證操作。在操作S780確定當前編程循環i_PGM_Loop大于等于編程狀態P2的驗證起始點P( j )_Verify_Start并且小于等于編程狀態P2的驗證結束點P( j)_Verify_End(S780 =是)的情況下,方法進行到操作S790。否則,方法進行到操作S800。在操作S790,執行編程狀態P2的驗證操作,并且方法進行到操作S800。
[0175]操作S800確定“j”是否達到指示編程狀態P7的7。在“j”沒有達到7(S800=否)的情況下,在操作S810將“j”增加I,方法返回操作S780。否則(S800 =是),方法進行到操作S820。操作S820確定是否所有編程狀態都合格。在不是所有編程狀態都合格(S820 =否)的情況下,則執行操作S830,以將變增加1,然后方法返回操作S720。否則(S820 =是),方法結束。
[0176]圖26A和26B是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0177]在圖26A和26B的方法中,假設使用一個擦除狀態E和7個編程狀態Pl到P7將3比特數據存儲在每個存儲單元中。此外,圖26A和26B的方法可以使用以上參考圖10描述的用于預測驗證起始點的方案和以上參考圖20描述的預測驗證結束點的方案。根據驗證起始點預測方案跳過針對快比特的驗證操作,根據驗證結束點預測方案跳過針對慢比特的驗證操作。
[0178]參考圖26A,在編程操作的初始化時執行操作S900。操作S900將變量i_PGM_Loop設置為“1”,將變量P(j)_Verify_Start和P(j)_Verify_End設置為最大編程循環次數Max_PGM_Loop。變量i_PGM_Loop指示當前編程循環,變量P(j)_Verify_End指示針對第j個編程狀態的驗證結束點。接著,在操作S910,基于在先前頁或先前步的編程操作中檢測到的合格比特信息(例如編程電壓或編程循環),來預測編程狀態(例如Pl到P7)的驗證起始點。更具體地,操作S910包括:在操作S911將變量“j”設置為I ;在操作S912預測編程狀態P2的驗證起始點;在操作S913確定“j”是否已達到指示編程狀態P7的7;如果“j”沒有達到7(S913 =否),則在操作S914將“j”增加I。在“j”已達到7(S913 =是)的情況下,方法進行到操作S920。
[°179]在操作S920,對選定的存儲單元執行編程操作。然后,在操作S930,將“ j”設置為I。接著,在操作S940,方法確定編程狀態Pl的預測驗證起始點是否小于等于當前編程循環i_PGM_Loop。在當前編程循環;[_?61_]^0(^小于編程狀態Pl的驗證起始點P( j)_Verify_Start的情況下,省略編程狀態Pl的驗證操作。在當前編程循環i_PGM_Loop大于等于編程狀態Pl的驗證起始點P(j)_Verify_Start的情況下,執行編程狀態P2的驗證操作。
[0180]在當前編程循大于等于編程狀態Pl的驗證起始點P(j)_Verify_Start (S940 =是)的情況下,方法進行到操作S950。否則(S940 =否),方法進行到操作960。
[0181]在操作S950,針對編程狀態Pl執行驗證操作,并且對針對編程狀態Pl的失敗比特的數量進行計數。與圖20的方法類似,在編程狀態Pl的失敗比特的數量小于等于參考值時,認為編程狀態Pl合格。在操作S950之后,方法進行到操作S960。
[0182]在操作S960之后,方法確定“j”是否達到指示編程狀態P7的值7。在“j”沒有達到7(S960 =否)的情況下,在操作S970以將“j”增加1,方法返回操作S940。否則(S960 =是),方法進行到操作S980。在操作S980,方法確定是否所有編程狀態Pl到P7都合格。在不是所有編程狀態都合格(S980 =否)的情況下,在操作S990將變量i_PGM_Loop增加1,方法返回操作3920。否則(3980 =是),方法結束。
[0183]圖27是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0184]首先,在操作S1000,將變量FBCPS和Pi_FLAG設置為“I”。變量FBCPS指示執行失敗比特計數操作的編程狀態,變量Pi_FLAG用于指示已經執行了驗證操作的編程狀態的合格狀態。
[0185]在操作SI 100執行編程操作。進一步地,在操作SI 100中,可以對與變量FBCPS的值相對應的編程狀態進行失敗比特計數。假設當前編程循環是第一編程循環,則可以針對第一編程狀態Pl進行失敗比特計數。由于當前編程循環是第一編程循環,可以基于存儲在讀/寫電路500中的編程數據比特來進行失敗比特計數(參見圖1)。如果當前編程循環是第二編程循環,則可以基于在先前編程循環的驗證操作中讀取的數據比特來進行失敗比特計數。
[0186]在操作S1200,檢查所計數的失敗比特數量是否小于預定參考值。如果所計數的失敗比特數量小于預定參考值,則方法進行到操作S1300。在操作S1300,將與編程狀態Pl相對應的失敗比特設置為編程禁止值(例如“I”)。這意味著盡管將編程電壓施加到與編程狀態Pl相對應的失敗比特的存儲單元,然而與編程狀態Pl相對應的存儲單元也會在下一編程循環中被禁止編程。此外,在操作SI 300,將變量Pi_FLAG設置為指示合格狀態,將變量FBCPS增加I。由于變量FBCPS增加了,可以針對下一編程狀態P2而非編程狀態Pl進行失敗比特計數。在將變量Pi_FLAG設置為指示合格狀態的情況下,針對與變量Pi_FLAG的值相對應的編程狀態(例如PI)省略驗證操作。然后,方法進行到操作S1400。
[0187]返回操作S1200,如果所計數的失敗比特數量不小于預定參考值,則方法進行到操作S1400。在操作S1400中,分別針對除了合格編程狀態以外的編程狀態執行驗證操作。例如,在將P1_FLAG設置為合格狀態的情況下,分別針對除了與P1_FLAG相對應的編程狀態Pl以外的其余編程狀態執行驗證操作。在不存在合格的編程狀態的情況下,在操作S1400中分別針對所有編程狀態執行驗證操作。
[0188]操作S1500確定是否所有編程狀態都合格。如果至少一個編程狀態不合格,則方法進行到操作S1600,其中將編程循環數增加I。然后,方法進行到操作S1100。在所有編程狀態都合格的情況下,方法結束。
[0189]利用上述方法,在當前編程循環執行編程操作的同時(或者在將編程電壓施加到選定的字線的同時),使用先前編程循環的驗證結果來執行失敗比特計數操作。因此,盡管確定所計數的失敗比特數量小于預定參考值,還是將合格比特再次施加到與當前編程循環處的失敗比特相對應的存儲單元。因此,減少了與被省略(或跳過)的編程狀態相對應的失敗比特的數量。
[0190]在示例性實施例中,針對所有編程狀態使用相同的參考值,以判斷是否每個編程狀態都合格。但是,可以將不同參考值應用于編程狀態(或每行中的頁),以判斷相對應的編程狀態是否合格。
[0191]圖28是示出根據本發明原理的實施例用于圖27的方法的驗證方案的示意圖。
[0192]如上所述,執行對編程狀態Pl的比特計數操作,直到失敗比特(或稱為慢比特)的數量變得小于預定參考值。此時,不執行對其余編程狀態的失敗比特計數操作。在將編程電壓施加到選定的存儲單元的編程操作期間,對與變量FBCPS相對應的編程狀態執行比特計數操作。
[0193]例如,如圖28所示,在第N個編程循環,針對編程狀態Pl、P2和P3執行驗證操作。基于與在第N個編程循環的驗證操作處讀取的編程狀態Pl相對應的數據比特,在第(N+1)個編程循環的編程操作期間,執行對編程狀態Pl的失敗比特計數操作。如果所計數的失敗比特數量FBC大于預定參考值,則在第(N+2)個編程循環的編程操作期間再次執行對編程狀態Pl的失敗比特計數操作。如果在第(N+2)個編程循環確定所計數的失敗比特數量FBC小于預定參考值,則將與編程狀態Pl相對應的數據比特中的失敗比特設置為編程禁止值,并且在包括當前編程循環(例如第(N+2)個編程循環)在內的接下來的編程循環之后,省略對編程狀態Pl的驗證操作。當編程狀態Pl合格時,如圖28所示,針對下一編程狀態P2執行失敗比特計數操作。
[0194]從以上描述可以理解,在確定所計數的失敗比特數量小于預定參考值之后,再次將編程電壓施加到與失敗比特相對應的存儲單元。這意味著減少了與被省略(或跳過)的編程狀態相對應的失敗比特的數量。
[0195]在示例性實施例中,對于最高編程狀態,如果確定所計數的失敗比特數量小于預定參考值,則可以防止將其他編程電壓施加到與失敗比特相對應的存儲單元。
[0196]圖29是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0197]圖29的編程方法與圖27所示基本相同,不同之處在于,可以在步驟S1800之前執行步驟S1700,其中,在步驟S1800,對合格的編程狀態以外的編程狀態執行驗證操作的;在步驟S1700,進行是否所有編程狀態都合格的判斷。因此,省略對圖29的編程方法的描述。
[0198]圖30是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0199]首先,在操作S2000,將變量FBCPS和Pi_FLAG設置為“I”。變量FBCPS指示執行失敗比特計數操作的編程狀態,變量Pi_FLAG用于指示已經執行了驗證操作的編程狀態的合格狀態。
[0200]在操作S2100執行編程操作。在操作S2200,檢查所計數的失敗比特數量是否小于預定參考值。如下文所述,由圖1的控制邏輯裝置400來維護所計數的失敗比特數量。例如,作為先前編程循環的失敗比特數量,所計數的失敗比特數量可以被設置為大于預定參考值的默認值。如果所計數的失敗比特數量小于預定參考值,則方法進行到操作S2300。在操作S2300,將與編程狀態Pl相對應的失敗比特設置為編程禁止值(例如“I”)。這意味著盡管將編程電壓施加到與編程狀態Pl相對應的失敗比特的存儲單元,還是在下一編程循環處禁止對與編程狀態Pl相對應的存儲單元進行編程。此外,在操作S2300中,將變量Pi_FLAG設置為指示合格狀態,將變量FBCPS增加I。由于變量FBCPS增加了,可以針對下一編程狀態P2而非編程狀態Pl進行失敗比特計數。在將變量Pi_FLAG設置為指示合格狀態的情況下,針對與變量P i_FLAG的值相對應的編程狀態(例如PI),省略驗證操作。然后,方法進行到操作S2400。
[0201]返回操作S2200,如果所計數的失敗比特數量不小于預定參考值,則方法進行到操作S2400。在操作S2400中,分別針對除了合格的編程狀態以外的編程狀態執行驗證操作。例如,在將P1_FLAG設置為合格狀態的情況下,分別針對與P1_FLAG相對應的編程狀態Pl以外的其余編程狀態執行驗證操作。在不存在合格的編程狀態的情況下,在操作S2400中分別針對所有編程狀態執行驗證操作。此外,在操作S2400,對與變量FBCPS相對應的編程狀態執行失敗比特計數操作。將所計數的失敗比特數量存儲在控制邏輯裝置400中。使用所計數的失敗比特數量作為操作S2200中的在先編程循環的失敗比特數量。
[0202]操作S2500確定是否所有編程狀態都合格。如果至少一個編程狀態不合格,則方法進行到操作S2600,其中將編程循環數增加I。然后,方法進行到操作S1100。在所有編程狀態都合格的情況下,方法結束。
[0203]利用上述方法,當在當前編程循環處執行編程操作之后,使用先前編程循環的驗證結果來省略對編程狀態的驗證操作。因此,盡管確定所計數的失敗比特數量小于預定參考值,還是將編程電壓施加到與在當前編程循環處的失敗比特相對應的存儲單元。因此,減少了與被省略(或跳過)的編程狀態相對應的失敗比特的數量。
[0204]在示例性實施例中,針對所有編程狀態使用相同的參考值,以判斷是否每個編程狀態都合格。但是,可以將不同的參考值應用于編程狀態(或每行中的頁),以判斷相對應的編程狀態是否合格。
[0205]圖31是示出根據本發明原理的實施例用于圖29的方法的驗證方案的示意圖。
[0206]如上所述,執行對第一編程狀態Pl的比特計數操作,直到失敗比特(或稱為慢比特)的數量變得小于預定參考值。此時,不執行對其余編程狀態的失敗比特計數操作。在將編程電壓施加到選定的存儲單元的編程操作期間,對與變量FBCPS相對應的編程狀態執行比特計數操作。
[0207]例如,首先,將編程電壓施加到選定的存儲單元。然后,如圖31所示,在執行驗證操作之前,檢查失敗比特數量是否小于預定參考值。如果失敗比特數量不小于預定參考值,則在第N個編程循環針對編程狀態Pl、P2和P3執行驗證操作。基于與在第N個編程循環的驗證操作處讀取的的編程狀態Pl相對應的數據比特,在第N個編程循環期間執行對編程狀態Pl的失敗比特計數操作。可以由圖1的控制邏輯裝置400來保持所計數的失敗比特數量。
[0208]如果執行了第(N+1)個編程循環,則將編程電壓施加到選定的存儲單元。然后,在執行第(N+1)個編程循環的驗證操作之前,檢查失敗比特數量是否小于預定參考值。可以由圖1的控制邏輯裝置400來保持所計數的失敗比特數量。
[0209]如果確定所計數的失敗比特數量FBC小于第(N+2)個編程循環處的預定參考值,則將與編程狀態Pl相對應的數據比特中的失敗比特設置為編程禁止值,并且在包括當前編程循環(例如第(N+2)個編程循環)在內的接下來的編程循環之后,省略對編程狀態Pl的驗證操作。當編程狀態Pl合格時,如圖31所示,針對下一編程狀態P2執行失敗比特計數操作。
[0210]從以上描述可以理解,在確定所計數的失敗比特數量小于預定參考值之后,再次將編程電壓施加到與失敗比特相對應的存儲單元。這意味著減少了與被省略(或跳過)的編程狀態相對應的失敗比特的數量。
[0211]在示例性實施例中,對于最高編程狀態,如果確定所計數的失敗比特數量小于預定參考值,則可以防止將其他編程電壓施加到與失敗比特相對應的存儲單元。
[0212]圖32是示出根據本發明原理的另一實施例對閃速存儲器件編程的方法的流程圖。
[0213]圖32的編程方法與圖30所示的基本相同,不同之處在于,可以在操作S2800之前執行操作S2700,其中,在操作S2800,對合格編程狀態以外的編程狀態執行驗證操作;在操作S2700,判斷是否所有編程狀態都合格。因此,省略對圖32中編程方法的描述。
[0214]如圖16到21和圖27到30所述,省略(或跳過)了對確定為合格的編程狀態的驗證操作。這意味著盡管將編程電壓施加到字線,也會禁止對與確定為合格的編程狀態相對應存儲單元進行編程。換言之,可以以兩種方式進行對與慢比特(或失敗比特)相對應的存儲單元的編程禁止:圖16到21中描述的第一編程禁止方式,以及圖27到30描述的第二編程禁止方式。
[0215]圖33是示出根據本發明原理的實施例包括閃速存儲器件的集成電路的框圖。
[0216]參考圖33,諸如智能卡的集成電路包括非易失性存儲器件1000和控制器2000。非易失性存儲器件1000與圖1所示基本相同,因此省略對其的詳細描述,以避免不必要的重復。控制器2000控制非易失性存儲器件1000并且包括中央處理單元(CPU)2100、只讀存儲器(R0M)2200、隨機存取存儲器(RAM)2300和輸入/輸出(I/O)接口2400XPU 2100根據存儲在ROM 2200中的各種程序控制集成電路卡的整體操作,輸入/輸出接口2400與外部設備接口。控制器2000存儲對在非易失性存儲器件1000的編程操作期間檢測到的合格比特加以指示的信息,并將對檢測到的合格比特加以指示的信息提供給非易失性存儲器件1000。該信息可用于在上述一個或多個方法中確定驗證起始點。
[0217]圖34是示出根據本發明原理的實施例包括閃速存儲器件的計算系統的示意圖。該計算系統可采取各種形式,例如蜂窩電話、個人數字助理、數字照相機、便攜式游戲控制臺、MP3播放器、高清電視、數字視頻盤、路由器、全球定位系統(GPS)等等。
[0218]參考圖34,該計算系統包括處理單元3100、用戶接口 3200、諸如基帶芯片集等調制解調器3300、存儲器控制器3400,以及閃速存儲器件3500,它們經由總線3001彼此電連接。閃速存儲器件3500與圖1的閃速存儲器件基本相同,并且使用諸如以上描述的自適應驗證方案執行編程操作。因此,省略對閃速存儲器件3500的進一步描述以避免不必要的重復。通過存儲器控制器3400將已被處理單元3100處理或將被其處理的N比特數據(N多I)存儲在閃速存儲器件3500中。當計算系統是移動設備時,該計算系統還可以包括用于提供計算系統的操作電壓的電池3600。雖然未示出,但計算系統還可以包括應用芯片集、照相機圖像處理器(CIS),或移動動態隨機存取存儲器(DRAM)。存儲器控制器和閃速存儲器件可以形成使用非易失性存儲器來存儲數據的固態驅動器(SSD)。
[0219]圖35是示出根據本發明原理的實施例的圖32的存儲器控制器3400的框圖。
[0220]參考圖35,存儲器控制器3400在存儲介質中存儲數據,并且從存儲介質讀取數據。控制器包括主機接口 4100、存儲器接口 4200、處理單元4300、緩沖存儲器4400和糾錯碼單元4500。主機接口 4100與諸如主機等外部設備接口,存儲器接口 4200與存儲介質接口。處理單元4300控制存儲器控制器3400的整體操作。緩沖存儲器4400臨時存儲要存儲在存儲介質中的數據、或從存儲介質讀取的數據。緩沖存儲器4400還可以用作處理單元4300的工作存儲器。緩沖存儲器4400可以用于存儲從閃速存儲器件輸出的合格比特信息。糾錯碼單元4500檢測并校正從存儲介質讀取的數據中的錯誤。存儲器控制器3400還包括用于存儲代碼數據的ROM 4600。
[0221 ]在一些實施例中,利用可變電阻存儲單元來配置存儲單元。美國專利N0.7,529,124公開了可變電阻存儲單元和包括可變電阻存儲單元的存儲器件的示例,該公開通過引用包含于此。
[0222]在一些實施例中,使用具有電荷存儲層的各種單元結構之一來實現存儲單元。具有電荷存儲層的單元結構可以例如包括使用電荷俘獲層的電荷俘獲閃存結構、包括在多層中堆疊的陣列的堆疊閃存結構、不具有源-漏的閃存結構,以及針形閃存結構。美國專利N0.6,858,906、美國專利公開N0.2004-0169238和美國專利公開2006-0180851公開了具有作為電荷存儲層的電荷俘獲閃存結構的存儲器件的示例,以上公開通過引用包含于此。韓國專利N0.673,020公開了不具有源-漏的閃存結構的示例,該公開通過引用包含于此。
[0223]根據本發明原理的各種示例的器件可以安裝在多種封裝中的任何一種中。例如,可以將上述閃速存儲器件和/或存儲器控制器以多種封裝類型來安裝,例如封裝上封裝(PoP,package on package)、球棚.陣列(BGA,ball grid arrays)、芯片級封裝(CSP,chipscale package)、塑料引線芯片載體(PLCC,plastic leaded chip carrier)、塑料雙列直插封裝(PDIP,plastic dual in-line package)、華夫包內管芯(DIWP,die in wafflepack)、華夫型管芯(DIWF,die in wafer form)、板上芯片(COB,chip on board)、陶瓷雙列直插封裝(CERDIP,ceramic dual in-line package)、塑膠公制四方扁平封裝(MQFP,plastic metric quad flat pack)、小外形封裝(S0P,small outline package)、收縮小型封裝(SSOP,shrink small outline package)、薄型小外形封裝(TSOP,thin smalloutline package)、薄四方扁平封裝(TQFP,thin quad flat pack)、系統級封裝(SIP,system in package)、多芯片封裝(MCP,multi_chip package)、晶圓級堆疊封裝(WLSP,wafer-level stack package)、華夫型管芯(DIWF,die in wafer form)、華夫封裝上管芯(DOffP,die on waffle package)、晶圓級制造封裝(WFP,waf er-level fabricatedpackage)和晶圓級處理堆疊封裝(WSP,wafer_level processed stack package) 0
[0224]如上所述,在本發明原理的各種實施例中,通過省略與編程狀態相對應的驗證起始點之前的驗證操作,可以改進編程性能。此外,通過省略編程狀態的驗證結束點之后的驗證操作,可以改進編程性能。
[0225]上文是對實施例的說明,而不應理解為對其的限制。雖然描述了幾個實施例,但是本領域技術人員將容易理解,在這些實施例中可以做出很多修改而實質上不偏離本發明原理的新穎教導和優點。因此,所有這些修改都應包括在權利要求定義的本發明原理的范圍內。
【主權項】
1.一種對非易失性存儲器件編程的方法,包括: 對選定的存儲單元編程; 通過對選定的存儲單元應用第一驗證電壓來針對與最低閾值電壓相對應的第一編程狀態執行驗證操作; 檢測選定的存儲單元中的至少一個的閾值電壓是否大于或等于與所述第一編程狀態相對應的驗證電平;以及 如果選定的存儲單元中的至少一個的閾值電壓大于或等于與所述第一編程狀態相對應的驗證電平,則基于用于對選定的存儲單元編程的編程電壓的當前值和所述第一編程狀態與其他編程狀態中的一個編程狀態之間的閾值電壓差來確定針對所述其他編程狀態中的至少一個的驗證起始點。2.根據權利要求1所述的方法,其中所述驗證起始點根據與所述第一編程狀態相對應的第一閾值電壓分布和與所述其他編程狀態中的所述至少一個編程狀態相對應的第二閾值電壓分布之間的裕度而變化。3.根據權利要求1所述的方法,其中所述閾值電壓差是與所述第一編程狀態相對應的驗證電平和與所述其他編程狀態中的所述一個編程狀態相對應的驗證電平之差。
【文檔編號】G11C16/34GK105931671SQ201610245371
【公開日】2016年9月7日
【申請日】2010年12月30日
【發明人】尹翔鏞, 尹鉉竣, 金甫根, 樸起臺, 金武星
【申請人】三星電子株式會社