[go: up one dir, main page]

TWI410974B - Multi-state memory having data recovery after program fail - Google Patents

Multi-state memory having data recovery after program fail Download PDF

Info

Publication number
TWI410974B
TWI410974B TW95111576A TW95111576A TWI410974B TW I410974 B TWI410974 B TW I410974B TW 95111576 A TW95111576 A TW 95111576A TW 95111576 A TW95111576 A TW 95111576A TW I410974 B TWI410974 B TW I410974B
Authority
TW
Taiwan
Prior art keywords
data
memory
page
programming
write
Prior art date
Application number
TW95111576A
Other languages
Chinese (zh)
Other versions
TW200707443A (en
Inventor
Yan Li
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/097,517 external-priority patent/US7158421B2/en
Priority claimed from US11/304,960 external-priority patent/US7420847B2/en
Priority claimed from US11/304,783 external-priority patent/US7345928B2/en
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW200707443A publication Critical patent/TW200707443A/en
Application granted granted Critical
Publication of TWI410974B publication Critical patent/TWI410974B/en

Links

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

於編程失敗後具有資料回復之複數狀態記憶體Complex state memory with data recovery after programming failure

本發明大體上係關於諸如電子可擦可編程唯讀記憶體(EEPROM)及快閃EEPROM的非揮發性半導體記憶體,且具體言之係關於建構快速通過寫入或其他多相編程技術之方法。The present invention generally relates to non-volatile semiconductor memories such as electronic erasable programmable read only memory (EEPROM) and flash EEPROM, and in particular to methods for constructing fast pass write or other multiphase programming techniques. .

能夠不揮發儲存電荷之固態記憶體(尤其以封裝成小外型尺寸卡之EEPROM及快閃EEPROM形式)最近已變成各種行動及手持式裝置(特別是資訊電氣設備及消費型電子產品)中之首選儲存裝置。與亦為固態記憶體之RAM(隨機存取記憶體)不同,快閃記憶體係非揮發性的,從而使得甚至在斷電之後仍保留其所儲存之資料。雖然成本較高,但是快閃記憶體正被越來越多地用於大量儲存器應用中。基於諸如硬碟機及軟磁碟之旋轉磁性媒體的習知大量儲存器不適用於行動及手持式環境。此係因為傾向於龐大的硬碟機易於發生機械故障且具有長的等待時間及高功率要求。此等不良屬性使得基於磁碟之儲存裝置在大部分行動及攜帶型應用中變得不實際。另一方面,因為係嵌埋式並呈抽取式卡形式的快閃記憶體具有小尺寸、低功率消耗、高速及高可靠性的特徵,所以其理想地適用於行動及手持式環境中。Solid-state memory capable of non-volatile storage of charge (especially in the form of EEPROM and flash EEPROM packaged in small form factor cards) has recently become a mobile and handheld device (especially for information electrical equipment and consumer electronics). Preferred storage device. Unlike RAM (random access memory), which is also a solid-state memory, the flash memory system is non-volatile, so that even after it is powered off, it retains its stored data. Although costly, flash memory is being used more and more in mass storage applications. Conventional mass storage devices based on rotating magnetic media such as hard disk drives and floppy disks are not suitable for use in mobile and handheld environments. This is because it tends to be a large hard disk drive that is prone to mechanical failure and has long waiting times and high power requirements. These undesirable attributes make disk-based storage devices impractical in most mobile and portable applications. On the other hand, since the flash memory in the form of a buried card and a removable card has the characteristics of small size, low power consumption, high speed, and high reliability, it is ideally suited for use in mobile and handheld environments.

EEPROM及電子可編程唯讀記憶體(EPROM)係可擦除且可在其記憶體單元中寫入或"編程"入新資料的非揮發性記憶體。兩者皆利用了場效電晶體結構中的位於源極與汲極區域之間、半導體基板中之通道區域上方的浮動(未連接)導電閘極。隨後,在該浮動閘極上方提供控制閘極。電晶體之臨限電壓特徵由保留於該浮動閘極上之電荷量控制。亦即,對於浮動閘極上給定位準之電荷,存在一必須在接通電晶體以允許其源極與汲極區域之間導電之前被施加至控制閘極的對應電壓(臨限值)。EEPROM and electronically programmable read-only memory (EPROM) are non-volatile memories that can be erased and can be written or "programmed" into new data in their memory cells. Both utilize floating (unconnected) conductive gates in the field effect transistor structure between the source and drain regions, above the channel region in the semiconductor substrate. A control gate is then provided over the floating gate. The threshold voltage characteristic of the transistor is controlled by the amount of charge remaining on the floating gate. That is, for a charge that is positioned on the floating gate, there is a corresponding voltage (proximity) that must be applied to the control gate before the transistor is turned on to allow conduction between its source and drain regions.

浮動閘極可固定一定範圍內的電荷且因此可被編程為臨限電壓窗內之任何臨限電壓位準。臨限電壓窗之大小由裝置之最小及最大臨限位準來界定,最小及最大臨限位準又對應於可被編程至浮動閘極上的電荷之範圍。臨限窗通常取決於記憶體裝置之特徵、操作條件及歷史。原則上,窗內之每一不同、可解析臨限電壓位準範圍可用於表示單元之確定的記憶體狀態。The floating gate can fix a range of charges and can therefore be programmed to any threshold voltage level within the threshold voltage window. The threshold voltage window is defined by the minimum and maximum threshold levels of the device, which in turn correspond to the range of charges that can be programmed onto the floating gate. The threshold window usually depends on the characteristics, operating conditions and history of the memory device. In principle, each distinct, analyzable threshold voltage level range within the window can be used to represent the determined memory state of the cell.

用作記憶體單元之電晶體通常由兩機制中之一者來編程為"經編程"狀態。在"熱電子注入"中,施加至汲極的高電壓使得電子加速穿過基板通道區域。同時,施加至控制閘極的高電壓將熱電子經由薄閘極介電質拉至浮動閘極上。在"穿隧注入"中,將高電壓施加至相對於基板之控制閘極。以此方式,電子被自基板拉至介入浮動閘極。A transistor used as a memory cell is typically programmed into a "programmed" state by one of two mechanisms. In "hot electron injection", the high voltage applied to the drain causes electrons to accelerate through the substrate channel region. At the same time, the high voltage applied to the control gate pulls the hot electrons through the thin gate dielectric onto the floating gate. In "tunneling injection", a high voltage is applied to the control gate relative to the substrate. In this way, electrons are pulled from the substrate to the intervening floating gate.

可藉由若干機制來擦除記憶體裝置。對於EPROM而言,藉由使用紫外輻射將電荷自浮動閘極移除來大量擦除記憶體。對於EEPROM而言,藉由將高電壓施加至相對於控制閘極之基板以致於誘發浮動閘極中之電子經由薄氧化物穿隧至基板通道區域(意即,Fowler-Nordheim穿隧)來電擦除記憶體單元。通常,可一個位元組接著一個位元組來擦除EEPROM。對於快閃EEPROM而言,可所有同時電擦除記憶體或一次電擦除一或多個區塊來電擦除記憶體,其中一區塊可由記憶體之512個位元組或更多來組成。The memory device can be erased by several mechanisms. For EPROMs, the memory is largely erased by removing the charge from the floating gate using ultraviolet radiation. For EEPROM, by applying a high voltage to the substrate relative to the control gate, the electrons in the floating gate are induced to tunnel through the thin oxide to the substrate channel region (ie, Fowler-Nordheim tunneling) In addition to the memory unit. Typically, the EEPROM can be erased with one byte followed by one byte. For flash EEPROM, all of the memory can be erased at the same time or one or more blocks can be erased at one time. One block can be composed of 512 bytes or more of the memory. .

非揮發性記憶體單元之實例Example of a non-volatile memory unit

記憶體裝置通常包含可安裝於卡上之一或多個記憶體晶片。每一記憶體晶片包含由周圍電路(諸如解碼器及擦除、寫入及讀取電路)支持的一記憶體單元陣列。較複雜之記憶體裝置亦具有執行智慧型及較高位準記憶體操作及接合的控制器。存在許多今天仍使用之在商業上取得成功的非揮發性固態記憶體裝置。此等記憶體裝置可利用不同類型之記憶體單元,每一類型具有一或多個電荷儲存元件。The memory device typically includes one or more memory chips mountable on the card. Each memory chip contains a memory cell array supported by surrounding circuitry such as a decoder and erase, write and read circuitry. More complex memory devices also have controllers that perform intelligent and higher level memory operations and engagement. There are many non-volatile solid state memory devices that are still commercially successful today. These memory devices can utilize different types of memory cells, each type having one or more charge storage elements.

圖1A至1E示意性說明非揮發性記憶體單元之不同實例。Figures 1A through 1E schematically illustrate different examples of non-volatile memory cells.

圖1A示意性說明一具有用於儲存電荷之浮動閘極之EEPROM單元形式的非揮發性記憶體。電子可擦及可編程唯讀記憶體(EEPROM)具有與EPROM類似之結構,但是其額外提供了當施加適當電壓時可電載入電荷至其浮動閘極以及自其浮動閘極電移除電荷而無需曝露於UV輻射下的機制。美國專利第5,595,924號中提供此等單元之實例及製造此等單元之方法。Figure 1A schematically illustrates a non-volatile memory in the form of an EEPROM cell having a floating gate for storing charge. Electronically erasable and programmable read-only memory (EEPROM) has a similar structure to EPROM, but additionally provides for electrically loading charge to its floating gate and electrically removing charge from its floating gate when an appropriate voltage is applied. There is no need to expose to UV radiation. Examples of such units and methods of making such units are provided in U.S. Patent No. 5,595,924.

圖1B示意性說明具有選擇閘極與控制或操縱閘極的快閃EEPROM單元。記憶體單元10在源極14與汲極16擴散區之間具有"分裂通道"12。由兩個串聯的電晶體T1及T2有效形成一單元。T1用作具有浮動閘極20及控制閘極30的記憶體電晶體。該浮動閘極能夠儲存可選擇數量之電荷。可流過T1之通道部分的電流量取決於控制閘極30上之電壓及介入浮動閘極20上擁有之電荷量。T2用作具有選擇閘極40之選擇電晶體。當藉由選擇閘極40處之電壓接通T2時,其允許T1之通道部分中之電流在源極與汲極之間穿過。選擇電晶體以獨立於控制閘極處之電壓的方式沿源極-汲極通道提供一開關。一優勢在於,其可用於斷開當控制閘極電壓為零時仍導電(由於其浮動閘極處的電荷耗盡(正性))之彼等單元。其他優勢在於其允許更易於實施源極側注入編程。FIG. 1B schematically illustrates a flash EEPROM cell having a select gate and a control or steering gate. The memory cell 10 has a "split channel" 12 between the source 14 and the drain 16 diffusion region. A unit is effectively formed by two transistors T1 and T2 connected in series. T1 is used as a memory transistor having a floating gate 20 and a control gate 30. The floating gate is capable of storing a selectable amount of charge. The amount of current that can flow through the channel portion of T1 depends on the voltage on the control gate 30 and the amount of charge that is present on the floating gate 20. T2 is used as the selection transistor with the selected gate 40. When T2 is turned on by selecting the voltage at the gate 40, it allows the current in the channel portion of T1 to pass between the source and the drain. The transistor is selected to provide a switch along the source-drain channel in a manner independent of the voltage at the control gate. One advantage is that it can be used to disconnect those cells that are still conducting when the control gate voltage is zero (due to the charge depletion (positive) at their floating gate). Another advantage is that it allows for easier implementation of source side injection programming.

分裂通道記憶體單元之一簡單實施例係其中選擇閘極及控制閘極連接至由圖1B中所展示之虛線所示意性指示的相同字線。此係藉由使電荷儲存元件(浮動閘極)位於通道之一部分上並使控制閘極結構(其為字線之一部分)位於其他通道部分上以及電荷儲存元件上來完成。此有效形成具有串聯之兩電晶體的單元,其中一者(記憶體電晶體)具有電荷儲存元件上之電荷量與控制電流(其可流過其通道部分)量之字線上之電壓的組合,且另一者(選擇電晶體)僅具有充當其閘極的字線。美國專利第5,070,032、5,095,344、5,315,541、5,343,063及5,661,053號中提供此等單元之實例、其在記憶體系統中之使用及製造其之方法。A simple embodiment of a split channel memory cell is where the select gate and control gate are connected to the same word line as indicated by the dashed line shown in Figure 1B. This is accomplished by having the charge storage element (floating gate) on one portion of the channel and the control gate structure (which is part of the word line) on the other channel portion and the charge storage element. This effectively forms a cell having two transistors in series, one of which (memory transistor) has a combination of the amount of charge on the charge storage element and the voltage on the word line of the amount of control current (which can flow through its channel portion), And the other (selective transistor) has only the word line that acts as its gate. Examples of such units, their use in a memory system, and methods of making the same are provided in U.S. Patent Nos. 5,070,032, 5,095,344, 5,315,541, 5,343,063, and 5,661,053.

圖1B中所展示之分裂通道單元之一較改進實施例係當選擇閘極及控制閘極係獨立的且不由其之間的虛線連接時。一實施例在連接至垂直於字線之控制(或操縱)線的單元陣列中具有一行控制閘極。效應係當讀取或編程選定單元時使字線無需同時執行兩功能。彼等兩功能係:(1)充當選擇電晶體之閘極,從而要求適當電壓以接通及斷開選擇電晶體,及(2)經由耦合於字線與電荷儲存元件之間的電場(電容)來將電荷儲存元件之電壓驅動至所要位準。通常難以使用單一電壓以最佳方式執行此等兩功能。在單獨控制該控制閘極及該選擇閘極的情況下,字線僅需要執行功能(1),而所添加之控制線執行功能(2)。此能力允許其中使得編程電壓適於目標資料的較高效能編程的設計。在(例如)美國專利第5,313,421及6,222,762號中描述快閃EEPROM陣列中之獨立控制(或操縱)閘極之使用。One of the modified embodiment of the split channel unit shown in FIG. 1B is when the select gate and the control gate are independent and are not connected by dashed lines therebetween. One embodiment has a row of control gates in a cell array that is connected to a control (or steering) line that is perpendicular to the word line. The effect is that the word line does not need to perform both functions simultaneously when reading or programming the selected cell. These two functions are: (1) acting as the gate of the selection transistor, requiring an appropriate voltage to turn the selection transistor on and off, and (2) via an electric field coupled between the word line and the charge storage element (capacitance) ) to drive the voltage of the charge storage element to the desired level. It is often difficult to perform these two functions in an optimal manner using a single voltage. In the case of separately controlling the control gate and the selection gate, the word line only needs to perform the function (1), and the added control line performs the function (2). This capability allows for a design in which the programming voltage is adapted to the higher performance programming of the target material. The use of independent control (or steering) gates in flash EEPROM arrays is described in, for example, U.S. Patent Nos. 5,313,421 and 6,222,762.

圖1C示意性說明具有雙浮動閘極及獨立選擇及控制閘極的另一快閃EEPROM單元。記憶體單元10除了有效具有三個串聯電晶體之外與圖1B中記憶體單元類似。在此類型單元中,兩儲存元件(意即,T1-左側及T1-右側的儲存元件)係包括於源極與汲極擴散之間的其通道上,其中兩儲存元件之間具有一選擇電晶體T1。記憶體電晶體分別具有浮動閘極20及20'及控制閘極30及30'。選擇電晶體T2由選擇閘極40控制。在任一時間,僅存取該對記憶體電晶體之一者以用於讀取或寫入。當儲存單元T1-左側被存取時,接通T2與T1-右側以允許T1-左側之通道部分中的電流在源極與汲極之間穿過。類似地,當儲存單元T1-右側被存取時,接通T2及T1-左側。藉由使一部分選擇閘極多晶矽非常靠近浮動閘極並將大體上正電壓(例如,20 V)施加至選擇閘極以使得浮動閘極內所儲存之電子可穿隧至選擇閘極多晶矽來實現擦除。FIG. 1C schematically illustrates another flash EEPROM cell having dual floating gates and independently selecting and controlling gates. The memory cell 10 is similar to the memory cell of Figure 1B except that it effectively has three series transistors. In this type of unit, two storage elements (ie, T1-left and T1-right storage elements) are included in the channel between the source and the drain diffusion, with a selection of electricity between the two storage elements. Crystal T1. The memory transistors have floating gates 20 and 20' and control gates 30 and 30', respectively. The selection transistor T2 is controlled by the selection gate 40. At any one time, only one of the pair of memory transistors is accessed for reading or writing. When the left side of the memory cell T1- is accessed, T2 and T1-right are turned on to allow current in the channel portion of the T1-left side to pass between the source and the drain. Similarly, when the right side of the storage unit T1- is accessed, T2 and T1-left are turned on. This is achieved by having a portion of the selected gate polysilicon very close to the floating gate and applying a substantially positive voltage (eg, 20 V) to the select gate such that electrons stored in the floating gate can tunnel to the select gate polysilicon. Erase.

圖1D示意性說明經組織成NAND單元的一串記憶體單元。NAND單元50由一系列記憶體電晶體M1、M2、...Mn(n=4、8、16或更高)組成,該等記憶體電晶體由其源極及汲極來菊式鏈接。一對選擇電晶體S1、S2控制記憶體電晶體鏈經由NAND單元之源極終端54及汲極終端56與外部之連接。在一記憶體陣列中,當接通源極選擇電晶體S1時,源極終端被耦接至源極線。類似地,當接通汲極選擇電晶體S2時,NAND單元之汲極終端被耦接至記憶體陣列之位元線。鏈中之每一記憶體電晶體具有一電荷儲存元件以儲存給定量之電荷以表示預期之記憶體狀態。每一記憶體電晶體之控制閘極在讀取及寫入操作時提供控制。選擇電晶體S1、S2中每一者之控制閘極分別經由其源極終端54及汲極終端56來對NAND單元提供控制存取。FIG. 1D schematically illustrates a string of memory cells organized into NAND cells. NAND cell 50 is comprised of a series of memory transistors M1, M2, ... Mn (n = 4, 8, 16 or higher) that are daisy chained by their source and drain. A pair of select transistors S1, S2 controls the connection of the memory transistor chain to the outside via the source terminal 54 and the drain terminal 56 of the NAND cell. In a memory array, when the source select transistor S1 is turned on, the source terminal is coupled to the source line. Similarly, when the drain select transistor S2 is turned on, the drain terminal of the NAND cell is coupled to the bit line of the memory array. Each memory transistor in the chain has a charge storage element to store a given amount of charge to represent the expected memory state. The control gate of each memory transistor provides control during read and write operations. The control gates of each of the transistors S1, S2 are selected to provide controlled access to the NAND cells via their source terminals 54 and gate terminals 56, respectively.

當在編程期間讀取並驗證NAND單元內之定址記憶體電晶體時,對其控制閘極供應適當電壓。同時,NAND單元50中之非定址記憶體電晶體的剩餘部分藉由在其控制閘極上施加足夠電壓來完全接通。以此方式,自個別記憶體電晶體之源極至NAND單元之源極終端54有效產生導電路徑,且同樣地,自個別記憶體電晶體之汲極至單元之汲極終端56亦有效產生導電路徑。美國專利第5,570,315、5,903,495、6,046,935中描述具有此等NAND單元結構之記憶體裝置。When the addressed memory cell in the NAND cell is read and verified during programming, the control gate is supplied with the appropriate voltage. At the same time, the remainder of the unaddressed memory transistor in NAND cell 50 is fully turned on by applying sufficient voltage across its control gate. In this manner, the source path from the source of the individual memory transistor to the source terminal 54 of the NAND cell effectively produces a conductive path, and likewise, the drain from the drain of the individual memory transistor to the gate terminal 56 of the cell is also effective to produce a conductive path. A memory device having such NAND cell structures is described in U.S. Patent Nos. 5,570,315, 5,903,495, 6,046,935.

圖1E示意性說明具有用於儲存電荷之介電層的非揮發性記憶體。使用一介電層而非先前所描述之導電浮動閘極元件。Eitan等人之"NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell,"(IEEE Electron Device Letters,21卷,第11期,2000年11月,第543至545頁)中已描述利用介電儲存元件之此等記憶體裝置。ONO介電層延伸穿過源極與汲極擴散之間的通道。用於一資料位元之電荷係位於鄰近於汲極之介電層中,且用於其他資料位元之電荷係位於鄰近於源極之介電層中。舉例而言,美國專利第5,768,192及6,011,725號揭示具有夾於兩二氧化矽層之間之收集介電質的非揮發性記憶體單元。藉由單獨讀取介電質內經空間分離之電荷儲存區域的二元狀態來實施複數狀態資料儲存。Figure 1E schematically illustrates a non-volatile memory having a dielectric layer for storing charge. A dielectric layer is used instead of the previously described conductive floating gate elements. The use of dielectrics has been described in "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," by Eitan et al. (IEEE Electron Device Letters, Vol. 21, No. 11, November 2000, pp. 543-545). These memory devices that store components. The ONO dielectric layer extends through the channel between the source and the drain diffusion. The charge for one data bit is located in the dielectric layer adjacent to the drain and the charge for other data bits is in the dielectric layer adjacent to the source. For example, U.S. Patent Nos. 5,768,192 and 6,011,725 disclose non-volatile memory cells having a dielectric sandwiched between two cerium oxide layers. The complex state data storage is performed by separately reading the binary state of the space-separated charge storage region within the dielectric.

記憶體陣列Memory array

記憶體裝置通常包括配置成列及行且可由字線及位元線定址的記憶體單元之二維陣列。可根據NOR型或NAND型架構形成該陣列。A memory device typically includes a two-dimensional array of memory cells arranged in columns and rows and addressable by word lines and bit lines. The array can be formed according to a NOR type or NAND type architecture.

NOR陣列NOR array

圖2說明記憶體單元之NOR陣列的實例。已由圖1B或圖1C中所說明之類型的單元來實施具有NOR型架構之記憶體裝置。每一列記憶體單元由其源極及汲極以菊鏈方式連接。此設計有時被稱作假接地設計。每一記憶體單元10具有一源極14、一汲極16、一控制閘極30及一選擇閘極40。列中之單元的選擇閘極連接至字線42。行中之單元的源極及汲極分別連接至選定位元線34及36。在其中記憶體單元的控制閘極及選擇閘極獨立受控的一些實施例中,操縱線36亦連接至行中之單元的控制閘極。Figure 2 illustrates an example of a NOR array of memory cells. A memory device having a NOR type architecture has been implemented by a unit of the type illustrated in FIG. 1B or FIG. 1C. Each column of memory cells is daisy-chained by its source and drain. This design is sometimes referred to as a fake ground design. Each memory cell 10 has a source 14, a drain 16, a control gate 30 and a select gate 40. The select gate of the cell in the column is connected to word line 42. The source and drain of the cell in the row are connected to selected bit lines 34 and 36, respectively. In some embodiments in which the control gates and select gates of the memory cells are independently controlled, the steering line 36 is also coupled to the control gates of the cells in the row.

使用其中每一記憶體單元由其控制閘極及選擇閘極連接在一起來形成的記憶體單元來實施許多快閃EEPROM裝置。在此狀況下,不需要操縱線且字線僅連接沿每一列之單元的所有控制閘極及選擇閘極。美國專利第5,172,338及5,418,752號中揭示此等設計之實例。在此等設計中,字線主要執行兩功能:列選擇及將控制閘極電壓供應至列中所有單元以用於讀取或編程。Many flash EEPROM devices are implemented using a memory cell in which each memory cell is formed by its control gates and select gates connected together. In this case, there is no need to manipulate the lines and the word lines only connect all of the control gates and select gates of the cells along each column. Examples of such designs are disclosed in U.S. Patent Nos. 5,172,338 and 5,418,752. In these designs, the word line performs two main functions: column selection and supplying the control gate voltage to all cells in the column for reading or programming.

NAND陣列NAND array

圖3說明記憶體單元之NAND陣列的實例,諸如圖1D中所示。沿NAND單元之每一行,位元線被耦接至每一NAND單元之汲極終端56。沿NAND單元之每一列,源極線可連接所有其源極終端54。又,沿一列之NAND單元的控制閘極係連接至一系列對應字線。可藉由經由所連接之字線用一整列NAND單元之控制閘極上的適當電壓接通該對選擇電晶體(參看圖1D)來定址該整列NAND單元。當讀取NAND單元鏈內之記憶體電晶體時,鏈中之剩餘記憶體電晶體經由其相關字線被穩固接通,以使得流過該鏈之電流主要取決於正被讀取之單元中所儲存之電荷位準。美國專利第5,570,315、5,774,397及6,046,935號中發現作為記憶體系統之部件的NAND架構陣列及其操作的實例。Figure 3 illustrates an example of a NAND array of memory cells, such as shown in Figure ID. Along each row of the NAND cell, a bit line is coupled to the drain terminal 56 of each NAND cell. Along the NAND cell, the source line can connect all of its source terminals 54. Also, the control gates of the NAND cells along a column are connected to a series of corresponding word lines. The entire column of NAND cells can be addressed by turning on the pair of select transistors (see FIG. 1D) with appropriate voltages on the control gates of an entire column of NAND cells via the connected word lines. When the memory transistor in the NAND cell chain is read, the remaining memory transistors in the chain are firmly turned on via their associated word lines such that the current flowing through the chain is primarily dependent on the cell being read The stored charge level. An example of a NAND architecture array and its operation as a component of a memory system is found in U.S. Patent Nos. 5,570,315, 5,774,397 and 6,046,935.

區塊擦除Block erase

電荷儲存記憶體裝置之編程僅可導致將較多電荷添加至其電荷儲存元件。因此,在編程操作之前,必須移除(或擦除)電荷儲存元件中之現有電荷。提供擦除電路(未圖示),以擦除一或多個區塊記憶體單元。當整個單元陣列或顯著組之陣列單元一起經電擦除(意即,在一快閃中)時,諸如EEPROM之非揮發性記憶體被稱作"快閃"EEPROM。一旦經擦除,則隨後可重新編程該組單元。可一起擦除之該組單元可組成一或多個可定址擦除單元。擦除單元或區塊通常儲存一或多頁資料(頁為編程及讀取的單位),但是在一單一操作中可編程或讀取一頁以上。每一頁通常儲存一或多個區段的資料,區段之大小由主機系統來界定。一實例係512位元組區段,其係由使用者資料、接著係由磁碟驅動器建立之標準、加上關於使用者資料及/或區塊(其中儲存使用者資料)之若干數目位元組之附加項資訊所組成。Programming of the charge storage memory device can only result in more charge being added to its charge storage element. Therefore, the existing charge in the charge storage element must be removed (or erased) prior to the programming operation. An erase circuit (not shown) is provided to erase one or more of the block memory cells. Non-volatile memory such as EEPROM is referred to as a "flash" EEPROM when the entire cell array or a significant group of array elements are electrically erased together (ie, in a flash). Once erased, the set of cells can then be reprogrammed. The set of cells that can be erased together can form one or more addressable erase units. An erase unit or block typically stores one or more pages of data (pages are programmed and read units), but can be programmed or read more than one page in a single operation. Each page typically stores data for one or more segments, the size of which is defined by the host system. An example is a 512-bit tuple segment, which is a user profile, followed by a standard established by the disk drive, plus a number of bits for user data and/or blocks (where user data is stored). The group's additional information is composed of information.

讀取/寫入電路Read/write circuit

在慣用兩狀態EEPROM單元中,建立至少一電流斷點位準以將導電窗分割成兩區域。當藉由施加預定、固定電壓來讀取一單元時,藉由使其源極/汲極電流與斷點位準(或參考電流IR E F )相比較來將其解析為記憶體狀態。若所讀取之電流高於斷點位準之電流,則將該單元判定為處於一邏輯狀態(例如,"零"狀態)。另一方面,若電流低於斷點位準之電流,則將該單元判定為處於另一邏輯狀態(例如,"一"狀態)。因此,此兩狀態單元儲存一位元之數位資訊。可外部編程之參考電流源通常提供為記憶體系統之部件以產生斷點位準電流。In a conventional two-state EEPROM cell, at least one current breakpoint level is established to divide the conductive window into two regions. When a cell is read by applying a predetermined, fixed voltage, it is resolved to a memory state by comparing its source/drain current to a breakpoint level (or reference current I R E F ). If the current being read is higher than the current at the breakpoint level, the unit is determined to be in a logic state (eg, a "zero" state). On the other hand, if the current is lower than the current at the breakpoint level, the unit is determined to be in another logic state (eg, "one" state). Therefore, the two state units store digital information of one bit. An externally programmable reference current source is typically provided as part of the memory system to generate a breakpoint level current.

為了增加記憶體容量,隨著半導體技術提高狀態進步,正以越來越高之密度來製造快閃EEPROM裝置。用於增加儲存容量之另一方法是使每一記憶體單元儲存多於兩種狀態。In order to increase the memory capacity, as semiconductor technology improves its state, flash EEPROM devices are being manufactured at ever higher densities. Another method for increasing storage capacity is to store more than two states per memory unit.

對於複數狀態或複數級位EEPROM記憶體單元而言,藉由一個以上斷點將導電窗分割成兩個以上區域,使得每一單元能儲存一位元以上的資料。因此,給定EEPROM陣列可儲存之資訊隨著每一單元可儲存之狀態的數目而增加。美國專利第5,172,338號中已描述具有複數狀態或複數級位記憶體單元之EEPROM或快閃EEPROM。For a complex state or complex level EEPROM memory cell, the conductive window is divided into more than two regions by more than one breakpoint, so that each cell can store more than one bit of data. Thus, the information that can be stored for a given EEPROM array increases with the number of states that each cell can store. An EEPROM or flash EEPROM having a complex state or a plurality of levels of memory cells has been described in U.S. Patent No. 5,172,338.

實務上,通常讀取一單元之記憶體狀態方式為:當將參考電壓施加至控制閘極時,感測跨單元之源極與汲極電極的導電電流。因此,對於單元之浮動閘極上的每一給定電荷,可相對於固定參考控制閘極電壓來偵測對應導電電流。類似地,可編程至浮動閘極上之電荷範圍界定對應之臨限電壓窗或對應之導電電流窗。In practice, the memory state of a cell is typically read by sensing the conduction current across the source and drain electrodes of the cell when a reference voltage is applied to the control gate. Thus, for each given charge on the floating gate of the cell, the corresponding conduction current can be detected relative to the fixed reference control gate voltage. Similarly, the range of charge programmable to the floating gate defines a corresponding threshold voltage window or corresponding conductive current window.

或者,可能在控制閘極處為測試中之給定記憶體狀態設定臨限電壓並偵測導電電流低於還是高於臨限電流,而不是在被分割之電流窗中偵測導電電流。在一實施例中,藉由檢驗導電電流經由位元線之電容的放電速率來實現相對於臨限電流偵測導電電流。Alternatively, it is possible to set a threshold voltage at a control gate for a given memory state in the test and to detect if the conduction current is below or above the threshold current, rather than detecting the conduction current in the divided current window. In one embodiment, the conduction current is detected relative to the threshold current by verifying the rate of discharge of the conduction current through the capacitance of the bit line.

圖4說明四個不同電荷Q1至Q4之源極-汲極電流ID 與控制閘極電壓VC G 之間的關係,對於該等四個電荷而言,可在任一時刻選擇性儲存浮動閘極。四個固體ID 對VC G 曲線表示可編程於記憶體單元之浮動閘極上之四個可能電荷位準,該等四個可能電荷位準分別對應於四個可能記憶體狀態。如一實例,一定數量單元之臨限電壓窗可自0.5 V變化至3.5 V。在每一0.5 V間隔中,可藉由將臨限窗分割成五個區域來分界六個記憶體狀態。舉例而言,若如所展示使用2 μA參考電流IR E F ,則可認為由Q1編程之單元處於記憶體狀態"1",因為其曲線與由VC G =0.5 V及1.0 V所分界之臨限窗區域中之IR E F 相交。類似地,Q4處於記憶體狀態"5"。Figure 4 illustrates the relationship between the source-drain current I D of four different charges Q1 to Q4 and the control gate voltage V C G for which the floating gate can be selectively stored at any one time. pole. For four solid I D V C G in the four upper curves represent the programmable floating gate memory cell of the possible charge level, these four possible charge level respectively corresponding to four possible memory states. As an example, a threshold voltage window for a certain number of cells can vary from 0.5 V to 3.5 V. In each 0.5 V interval, six memory states can be delimited by dividing the threshold window into five regions. For example, if a 2 μA reference current I R E F is used as shown, the cell programmed by Q1 can be considered to be in the memory state "1" because its curve is delimited by V C G = 0.5 V and 1.0 V. The I R E F in the threshold window area intersects. Similarly, Q4 is in the memory state "5".

如可自以上描述看出,使一記憶體單元儲存越多狀態,其臨限窗就被劃分得越精細。此將要求編程及讀取操作之較高精確度以能實現所要求之解析度。As can be seen from the above description, the more the memory cells are stored, the finer the threshold window is. This will require a higher degree of precision in programming and read operations to achieve the desired resolution.

美國專利第4,357,685號揭示編程2狀態EPROM之方法,其中當將一單元編程為給定狀態時,其經受連續編程電壓脈衝,其中每一次將增量電荷添加至浮動閘極。在脈衝之間,單元經讀回或經驗證以判定其相對於斷點位準之源極-汲極電流。當電流狀態經驗證達到所要狀態時,編程停止。所使用之編程脈衝串可具有增加之週期或振幅。No. 4,357,685 discloses a method of programming a 2-state EPROM in which when a cell is programmed to a given state, it is subjected to a continuous programming voltage pulse, each time adding a delta charge to the floating gate. Between pulses, the cell is read back or verified to determine its source-drain current relative to the breakpoint level. Programming stops when the current state is verified to reach the desired state. The programming pulse train used can have an increased period or amplitude.

先前技術編程電路僅僅施加編程脈衝,以便自擦除或接地狀態階躍穿過臨限窗,直至達到目標狀態。實際上,為了允許實現充分之解析度,每一經分割或經分界之區域將要求橫穿至少約五個編程步驟。該效能對於2狀態之記憶體單元為可接受的。然而,對於複數狀態單元而言,所要求之步驟數目隨著分割之數目增加而增加,且因此,必須增加編程精確度或解析度。舉例而言,16狀態單元平均而言可要求至少40個編程脈衝來編程至目標狀態。The prior art programming circuit only applies a programming pulse to step through the threshold window from the erase or ground state until the target state is reached. In fact, in order to allow for sufficient resolution, each segmented or demarcated region will be required to traverse at least about five programming steps. This performance is acceptable for a 2-state memory unit. However, for a complex state cell, the number of steps required increases as the number of partitions increases, and therefore, programming precision or resolution must be increased. For example, a 16-state unit may, on average, require at least 40 programming pulses to program to a target state.

圖5示意性說明具有可由讀取/寫入電路170經由列解碼器130及行解碼器160來存取記憶體陣列100之典型配置的記憶體裝置。如結合圖2及圖3所描述,可經由一組選定字線及位元線來定址記憶體陣列100中之記憶體單元的記憶體電晶體。列解碼器130選擇一或多個字線且行解碼器160選擇一或多個位元線以將適當電壓施加至經定址之記憶體電晶體的個別閘極。提供讀取/寫入電路170以讀取或寫入(編程)經定址之記憶體電晶體的記憶體狀態。讀取/寫入電路170包含可經由位元線連接至陣列中之記憶體元件的若干讀取/寫入模組。FIG. 5 schematically illustrates a memory device having a typical configuration in which the memory array 100 can be accessed by the read/write circuit 170 via the column decoder 130 and the row decoder 160. As described in connection with Figures 2 and 3, the memory transistors of the memory cells in memory array 100 can be addressed via a set of selected word lines and bit lines. Column decoder 130 selects one or more word lines and row decoder 160 selects one or more bit lines to apply an appropriate voltage to the individual gates of the addressed memory transistors. A read/write circuit 170 is provided to read or write (program) the memory state of the addressed memory transistor. The read/write circuit 170 includes a number of read/write modules connectable to memory elements in the array via bit lines.

圖6A係個別讀取/寫入模組190之示意性方塊圖。基本上,在讀取或驗證期間,感測放大器判定流過經由選定位元線連接之經定址記憶體電晶體之汲極的電流。該電流取決於記憶體電晶體中所儲存之電荷及其控制閘極電壓。舉例而言,在複數狀態EEPROM單元中,可將其浮動閘極充電至若干不同位準之一者。對於4位準單元而言,其可用於儲存兩位元資料。由感測放大器所偵測之位準由位準至位元轉換邏輯轉換成待儲存於資料鎖存器中的一組資料位元。FIG. 6A is a schematic block diagram of an individual read/write module 190. Basically, during reading or verification, the sense amplifier determines the current flowing through the drain of the addressed memory transistor connected via the selected location line. This current depends on the charge stored in the memory transistor and its control gate voltage. For example, in a complex state EEPROM cell, its floating gate can be charged to one of several different levels. For a 4-bit unit, it can be used to store two-dimensional data. The level detected by the sense amplifier is converted from level to bit conversion logic to a set of data bits to be stored in the data latch.

影響讀取/寫入效能及精確度之因素Factors affecting read/write performance and accuracy

為了改良讀取及編程效能,可並行地讀取或編程陣列中之多個電荷儲存元件或記憶體電晶體。因此,記憶體元件之邏輯"頁"被一起讀取或編程。在現有記憶體架構中,一列通常含有若干交錯頁。一頁之所有記憶體元件將被一起讀取或編程。行解碼器將選擇性地將交錯頁之每一者連接至對應數目之讀取/寫入模組。舉例而言,在一實施例中,記憶體陣列經設計以具有532個位元組(512個位元組加20個附加項位元組)的頁大小。若每一行含有汲極位元線且每一列存在兩交錯頁,則此相當於8512行,其中每一頁與4256行相關聯。將存在4256個可連接以並行讀取或寫入所有偶數位元線或奇數位元線的感測模組。以此方式,自該頁記憶體元件讀取一頁並行之4256個位元(意即,532個位元組)資料或將該等資料編程至該頁記憶體元件中。形成讀取/寫入電路170之讀取/寫入模組可配置成各種架構。To improve read and program performance, multiple charge storage elements or memory transistors in the array can be read or programmed in parallel. Therefore, the logical "pages" of the memory elements are read or programmed together. In existing memory architectures, a column typically contains a number of interlaced pages. All memory elements of a page will be read or programmed together. The row decoder will selectively connect each of the interleaved pages to a corresponding number of read/write modules. For example, in one embodiment, the memory array is designed to have a page size of 532 bytes (512 bytes plus 20 additional item bytes). If each row contains a drain bit line and there are two interleaved pages per column, this is equivalent to 8512 rows, with each page associated with 4256 rows. There will be 4256 sensing modules that can be connected to read or write all even bit lines or odd bit lines in parallel. In this manner, a page of 4256 bits (i.e., 532 bytes) of data in parallel is read from the page memory element or programmed into the page memory element. The read/write modules forming the read/write circuit 170 can be configured in a variety of architectures.

參看圖5,讀取/寫入電路170經組織成讀取/寫入堆疊180之組。每一讀取/寫入堆疊180係讀取/寫入模組190之一堆疊。在一記憶體陣列中,行間距由佔據該行間距之一或兩個電晶體之尺寸來確定。然而,如可自圖6A看出,將可能使用較多電晶體及電路元件來建構讀取/寫入模組之電路,且因此,其將佔據許多行上的空間。為了服務被佔據行中之一個以上之行,將多個模組向上堆疊於彼此之上。Referring to FIG. 5, read/write circuit 170 is organized into a set of read/write stacks 180. Each read/write stack 180 is stacked on one of the read/write modules 190. In a memory array, the line spacing is determined by occupying one of the line spacings or the size of two transistors. However, as can be seen from Figure 6A, it will be possible to use more transistors and circuit elements to construct the circuitry of the read/write module and, therefore, it will occupy a lot of space on the line. To service more than one line of the occupied line, multiple modules are stacked on top of each other.

圖6B展示習知由讀取/寫入模組190之堆疊建構的圖5之讀取/寫入堆疊。舉例而言,讀取/寫入模組可在十六個行上延伸,隨後具有八個讀取/寫入模組之堆疊的讀取/寫入堆疊180可用於並行地服務八個行。讀取/寫入堆疊可經由行解碼器耦接至組中之八個奇數(1、3、5、7、9、11、13、15)行或八個偶數(2、4、6、8、10、12、14、16)行。FIG. 6B shows the read/write stack of FIG. 5 conventionally constructed from a stack of read/write modules 190. For example, the read/write module can be extended over sixteen rows, and then the read/write stack 180 with a stack of eight read/write modules can be used to serve eight rows in parallel. The read/write stack can be coupled to eight odd (1, 3, 5, 7, 9, 11, 13, 15) rows or eight even numbers (2, 4, 6, 8) in the group via a row decoder. , 10, 12, 14, 16) lines.

如以上所提及,習知記憶體裝置藉由以整體並行方式同時在所有偶數或所有奇數位元線上操作來改良讀取/寫入操作。由兩交錯頁組成之此列架構將有助於緩和配合讀取/寫入電路之區塊的問題。其亦由考慮控制位元線至位元線電容耦接來指示。區塊解碼器係用於將讀取/寫入模組集多路傳輸至偶數頁或奇數頁。以此方式,只要一組位元線被讀取或編程,則可將交錯集接地以最小化直接鄰近耦接。As mentioned above, conventional memory devices improve read/write operations by operating simultaneously on all even or all odd bit lines in an overall parallel manner. This column architecture consisting of two interleaved pages will help alleviate the problem of aligning the blocks of the read/write circuits. It is also indicated by considering the control bit line to the bit line capacitance coupling. The block decoder is used to multiplex the read/write module set to even or odd pages. In this manner, as long as a set of bit lines are read or programmed, the interlace set can be grounded to minimize direct proximity coupling.

然而,交錯頁架構在至少三個方面中係不利的。首先,其要求額外多工電路。第二,其效能緩慢。為了完成由字線連接或連接成一列之記憶體單元的讀取或編程,要求兩個讀取或兩個編程操作。第三,當在不同時間(諸如分別在奇數頁及偶數頁中)編程兩鄰近電荷儲存元件時,定址諸如在浮動閘極位準之鄰近電荷儲存元件之間之場耦合的其他干擾效應亦不是最佳的。However, the interleaved page architecture is disadvantageous in at least three respects. First, it requires additional multiplexed circuits. Second, its effectiveness is slow. In order to complete the reading or programming of memory cells connected by word lines or connected in a column, two read or two programming operations are required. Third, when programming two adjacent charge storage elements at different times (such as in odd and even pages, respectively), other interference effects such as field coupling between adjacent charge storage elements at floating gate levels are not The best.

鄰近場耦合之問題隨著記憶體電晶體之間的間距更靠近而變得更顯著。在一記憶體電晶體中,電荷儲存元件夾於通道區域與控制閘極之間。在通道區域中流動之電流係由在控制閘極及電荷儲存元件處之場所影響之所得電場的函數。在密度日益增加的情況下,記憶體電晶體形成得越來越小型。來自鄰近電荷元件之場隨後變成對受影響單元之所得場的顯著貢獻者。鄰近場取決於編程至鄰近者之電荷儲存元件中的電荷。由於此擾動場隨著鄰近者之受編程狀態而改變,故其本質上係動態的。因此,受影響單元可視鄰近者之改變狀態而在不同時間不同地讀取。The problem of adjacent field coupling becomes more pronounced as the spacing between memory cells is closer. In a memory transistor, a charge storage element is sandwiched between the channel region and the control gate. The current flowing in the channel region is a function of the resulting electric field that is affected by the location at the control gate and the charge storage element. In the case of increasing density, memory transistors are becoming smaller and smaller. The field from adjacent charge elements then becomes a significant contributor to the resulting field of the affected unit. The adjacent field depends on the charge programmed into the charge storage element of the neighbor. Since this disturbance field changes as the neighbor's programmed state changes, it is inherently dynamic. Therefore, the affected unit can be read differently at different times depending on the changed state of the neighbors.

交錯頁之習知架構惡化由鄰近浮動閘極耦接所引起之錯誤。因為偶數頁及奇數頁係以獨立於彼此方式被編程及讀取,所以視與此同時介入頁所發生之情況而定,可在一組條件下編程一頁而在完全不同之一組條件下讀回該頁。所讀取之錯誤將隨著增加之密度而變得更嚴重,從而要求更精確之讀取操作及對複數狀態建構之臨限窗進行更粗糙之分割。效能將受損害且複數狀態建構中之潛在性能受到限制。The conventional architecture of interlaced pages deteriorates errors caused by the coupling of adjacent floating gates. Since even-numbered pages and odd-numbered pages are programmed and read independently of each other, it is possible to program one page under a set of conditions and in a completely different set of conditions depending on the situation in which the intervening page occurs. Read back the page. The errors read will become more severe with increasing density, requiring more accurate read operations and coarser segmentation of the threshold window of complex state construction. Performance will suffer and the potential performance in the construction of complex states is limited.

美國專利公開案第US-2004-0060031-A1號揭示效能高但小型之非揮發性記憶體裝置,該記憶體裝置具有一個大的讀取/寫入電路區塊以並行讀取及寫入對應之記憶體單元區塊。詳言之,記憶體裝置具有將讀取/寫入電路區塊中之冗餘減小至最小的架構。藉由將讀取/寫入模組之區塊重新分配成讀取/寫入模組核心部分之區塊,實現了空間以及功率之顯著節省,該等讀取/寫入模組核心部分並行操作同時以時間-多工方式與小得多的共同部分之組互動。詳言之,由共用處理器來執行複數個感測放大器與資料鎖存器之間之讀取/寫入電路中的資料處理。U.S. Patent Publication No. US-2004-0060031-A1 discloses a high performance but small non-volatile memory device having a large read/write circuit block for parallel read and write correspondence. The memory unit block. In particular, the memory device has an architecture that minimizes redundancy in the read/write circuit blocks. By redistributing the blocks of the read/write module into blocks in the core portion of the read/write module, significant space and power savings are achieved, with the core portions of the read/write modules being parallel The operation also interacts with a much smaller group of common parts in a time-multiplexed manner. In detail, the data processing in the read/write circuit between the plurality of sense amplifiers and the data latches is performed by the shared processor.

當編程操作失敗時,在一或多個單元未能驗證為被正確編程到目標狀態的意義上,除非將待寫入之資料保留於一組緩衝器中直至編程操作完成,否則其被丟失。此在當兩個或兩個以上位元被編程於一個實體單元中、尤其當此等位元經配置為獨立頁(諸如上部頁/下部頁配置)時尤其如此。當上部頁編程失敗時,下部頁資料亦受到損壞。由於可能在相當長時間之前下部頁已被編程,故其可能不被保持於緩衝器中且將被丟失。又,將目標資料保留於緩衝器中直至編程操作完成的需要導致管線運算能力較低、緩衝要求較高或兩者。When a programming operation fails, one or more of the cells fail to verify that they are correctly programmed to the target state, unless the data to be written is retained in a set of buffers until the programming operation is completed, otherwise it is lost. This is especially true when two or more bits are programmed into one physical unit, especially when the bits are configured as separate pages (such as an upper page/lower page configuration). When the upper page fails to program, the lower page data is also damaged. Since the lower page may have been programmed a considerable amount of time before, it may not be held in the buffer and will be lost. Again, the need to keep the target data in the buffer until the programming operation is completed results in lower pipeline computational power, higher buffering requirements, or both.

因此,對高效能及高容量非揮發性記憶體存在一般需要。詳言之,需要小型非揮發性記憶體,該記憶體之編程效能具有在假使一編程失敗時而回復資料的改良之能力。Therefore, there is a general need for high performance and high capacity non-volatile memory. In particular, small non-volatile memory is required, the programming performance of which has the ability to recover data in response to a programming failure.

根據本發明之一態樣,提供一種用於操縱非揮發性記憶體中之多相編程過程的方法及對應電路。更具體言之,例示性實施例使用其中使用單一編程通過之快速通過寫入技術,但是由於記憶體單元接近其目標值,故改變選定記憶體單元之偏壓以減緩編程。在每一編程脈衝之後,在第一、較低驗證值驗證該記憶體,隨後在第二較高位準進行第二驗證。第二位準係用於封鎖選定單元以防進一步編程。第一、較低驗證位準係用於改變編程相。在例示性實施例中,提高選定記憶體單元之通道的電壓位準進行此。本發明之主要態樣引入與讀取/寫入電路相關之鎖存器,該讀取/寫入電路可沿用於儲存在此較低位準之驗證結果的對應位元線連接至每一選定記憶體單元。在N狀態記憶體中,經選擇用於編程之每一記憶體單元將與其N+1鎖存器、N鎖存器相關聯以記住目標資料並與(N+1)鎖存器相關聯以用於操縱編程相。In accordance with an aspect of the present invention, a method and corresponding circuitry for manipulating a multi-phase programming process in a non-volatile memory is provided. More specifically, the exemplary embodiment uses a fast pass write technique in which a single program pass is used, but since the memory cell is near its target value, the bias of the selected memory cell is changed to slow down programming. After each programming pulse, the memory is verified at the first, lower verification value, and then the second verification is performed at the second higher level. The second level is used to block selected units from further programming. The first, lower verification level is used to change the programming phase. In an exemplary embodiment, increasing the voltage level of the channel of the selected memory cell proceeds to this. The main aspect of the present invention introduces a latch associated with a read/write circuit that can be connected to each selected bit along a corresponding bit line for storing the verification result at this lower level Memory unit. In N-state memory, each memory cell selected for programming will be associated with its N+1 latch, N-latch to remember the target data and associated with the (N+1) latch for manipulation Programming phase.

例示性實施例係NAND型記憶體,尤其是在所有位元線架構中之NAND型記憶體。沿選定字線應用上升階梯形式之編程波形。在初始編程相中,選定記憶體單元藉由將其對應位元線設定接地來將其通道設定為接地以促進編程。一旦在較低驗證位準存在一成功驗證,則在例示性實施例中經由一組位元線箝位上之位準提高位元線電壓,從而使得允許選定記憶體單元之通道達到較高電壓位準,進而減慢編程。例示性實施例利用位元線箝位來調整位元線上之偏壓位準。與每一位元線相關聯之讀取/寫入堆疊具有一組可用於操縱寫入過程之資料鎖存器(其中此等鎖存器之一者用於儲存在較低位準之驗證結果並藉此操縱編程相)以及足以監視標準編程過程的鎖存器。The illustrative embodiments are NAND type memories, especially NAND type memories in all bit line architectures. The programmed waveform in the form of a rising ladder is applied along the selected word line. In the initial programming phase, the selected memory cell is programmed to ground by setting its corresponding bit line to ground to facilitate programming. Once a successful verification exists at the lower verification level, the bit line voltage is increased via the level of a set of bit line clamps in the exemplary embodiment, thereby allowing the channel of the selected memory cell to reach a higher voltage. Level, which slows down programming. The illustrative embodiment utilizes bit line clamps to adjust the bias level on the bit line. The read/write stack associated with each bit line has a set of data latches that can be used to manipulate the write process (where one of these latches is used to store the verify result at a lower level) And thereby manipulate the programming phase) and the latches sufficient to monitor the standard programming process.

根據本發明之其他態樣,記憶體能無需維護資料之複本直至寫入完成而假使一編程失敗時回復資料。因此,由於可維護資料之完整性而無須儲存複本,故緩衝器可被釋放以用於其他資料或甚至可予以排除,從而減少需要專用於資料緩衝之控制器空間的量。在例示性實施例中,藉由將維護於資料鎖存器中之用於(失敗)寫入過程的驗證資料與一或多個讀取操作之結果邏輯組合以重新建構資料來回復資料。According to other aspects of the invention, the memory can be recovered without the need to maintain a copy of the data until the writing is completed and if a programming fails. Thus, since the integrity of the maintainable data is not required to store the copy, the buffer can be released for use with other data or even excluded, thereby reducing the amount of controller space that is dedicated to data buffering. In an exemplary embodiment, the data is re-constructed by logically combining the verification data for the (failed) write process maintained in the data latch with the result of one or more read operations to reconstruct the material.

例示性實施例係用於以獨立上部頁、下部頁形式之格式以及2位元形式來儲存複數狀態資料的記憶體單元。可回復上部頁與下部頁資料並隨後將其按獨立頁或全序列寫入之一部分寫入記憶體中之新位置。此可在無需使用控制器的情況下藉由記憶體上之感測放大器區域中的狀態機及資料鎖存器來完成。對將資料各種編碼至上部頁及下部頁中提供過程實例。The illustrative embodiment is for a memory unit that stores complex status data in a separate upper page, lower page format, and 2-bit form. The upper page and lower page data can be replied to and then written to a new location in the memory as a separate page or a full sequence of writes. This can be done without the use of a controller by the state machine and data latches in the sense amplifier region on the memory. A process example is provided for encoding various materials to the upper and lower pages.

將自對本發明之較佳實施例的以下描述來瞭解本發明之額外特徵及優勢,應結合隨附圖式來進行該描述。The additional features and advantages of the invention will be apparent from the following description of the preferred embodiments of the invention.

圖7A示意性說明具有一組經分割之讀取/寫入堆疊的小型記憶體裝置,其中建構了本發明之經改良處理器。記憶體裝置包括記憶體單元二維陣列300、控制電路310及讀取/寫入電路370。可由字線經由列解碼器330且可由位元線經由行解碼器360來定址記憶體陣列300。讀取/寫入電路370係建構為一組經分割之讀取/寫入堆疊400且允許並行讀取或編程記憶體單元之區塊(亦被稱作"頁")。在較佳實施例中,由連續之記憶體單元列構成頁。在其中一記憶體單元列被分割成多個區塊或頁的另一實施例中,提供區塊多工器350以將讀取/寫入電路370多路傳輸至個別區塊。Figure 7A schematically illustrates a small memory device having a set of segmented read/write stacks in which an improved processor of the present invention is constructed. The memory device includes a two-dimensional array of memory cells 300, a control circuit 310, and a read/write circuit 370. Memory array 300 can be addressed by word lines via column decoder 330 and by bit lines via row decoder 360. The read/write circuit 370 is constructed as a set of partitioned read/write stacks 400 and allows blocks of parallel reading or programming of memory cells (also referred to as "pages"). In the preferred embodiment, the pages are formed from successive columns of memory cells. In another embodiment in which one of the memory cell columns is divided into a plurality of blocks or pages, a block multiplexer 350 is provided to multiplex the read/write circuit 370 to the individual blocks.

控制電路310與讀取/寫入電路370合作以對記憶體陣列300執行記憶體操作。控制電路310包括狀態機312、晶片上位址解碼器314及功率控制模組316。狀態機312提供記憶體操作之晶片位準控制。晶片上位址解碼器314在主機或記憶體控制器所使用之位址與解碼器330及370所使用之硬體位址之間提供位址介面。功率控制模組316控制在記憶體操作期間供應至字線及位元線的功率及電壓。Control circuit 310 cooperates with read/write circuit 370 to perform a memory operation on memory array 300. Control circuit 310 includes state machine 312, on-chip address decoder 314, and power control module 316. State machine 312 provides wafer level control of memory operations. The on-chip address decoder 314 provides an address interface between the address used by the host or memory controller and the hardware address used by the decoders 330 and 370. Power control module 316 controls the power and voltage supplied to the word lines and bit lines during memory operation.

圖7B說明圖7A中所展示之小型記憶體裝置的較佳配置。在陣列之相對側上以對稱方式建構各種周邊電路對記憶體陣列300之存取以使得每一側上之存取線及電路被減少一半。因此,列解碼器分裂成列解碼器330A及330B,且行解碼器分裂成行解碼器360A及360B。在其中一記憶體單元列經分割成多個區塊的實施例中,區塊多工器350分裂成區塊多工器350A及350B。類似地,讀取/寫入電路分裂成自底部連接至位元線的讀取/寫入電路370A及自陣列300之頂部連接至位元線的讀取/寫入電路370B。以此方式,讀取/寫入模組之密度且因此經分割之讀取/寫入堆疊400之密度大體上減少一半。Figure 7B illustrates a preferred configuration of the small memory device shown in Figure 7A. Access to the memory array 300 by various peripheral circuits is constructed symmetrically on opposite sides of the array such that the access lines and circuitry on each side are reduced by half. Therefore, the column decoder is split into column decoders 330A and 330B, and the row decoder is split into row decoders 360A and 360B. In an embodiment where one of the memory cell columns is divided into a plurality of blocks, the block multiplexer 350 splits into block multiplexers 350A and 350B. Similarly, the read/write circuit is split into a read/write circuit 370A connected from the bottom to the bit line and a read/write circuit 370B connected from the top of the array 300 to the bit line. In this manner, the density of the read/write modules and thus the density of the segmented read/write stack 400 is substantially reduced by half.

圖8示意性說明圖7A中所展示之讀取/寫入堆疊中之基礎組件的一般配置。根據本發明之一般架構,讀取/寫入堆疊400包含用於感測k個位元線的一感測放大器堆疊212、一用於經由I/O匯流排231輸入或輸出資料的I/O模組440、一用於儲存所輸入或輸出資料的資料鎖存器堆疊430、一用以處理及儲存讀取/寫入堆疊400中之資料的通用處理器500及一用於在堆疊組件中通信的堆疊匯流排421。讀取/寫入電路370中之一堆疊匯流排控制器經由線411提供用於控制讀取/寫入堆疊中之各種組件的控制及時序訊號。Figure 8 schematically illustrates the general configuration of the base components in the read/write stack shown in Figure 7A. In accordance with the general architecture of the present invention, the read/write stack 400 includes a sense amplifier stack 212 for sensing k bit lines, and an I/O for inputting or outputting data via the I/O bus bar 231. A module 440, a data latch stack 430 for storing input or output data, a general purpose processor 500 for processing and storing data in the read/write stack 400, and a The stack bus 421 of communication. One of the stack bus controllers in the read/write circuit 370 provides control and timing signals for controlling various components in the read/write stack via line 411.

圖9說明圖7A及圖7B中所展示之讀取/寫入電路中之讀取/寫入堆疊的一較佳配置。每一讀取/寫入堆疊400對一組k個位元線並行操作。若一頁具有p=r*k個位元線,則將存在r個讀取/寫入堆疊400-1、...、400-r。Figure 9 illustrates a preferred configuration of a read/write stack in the read/write circuit shown in Figures 7A and 7B. Each read/write stack 400 operates in parallel for a set of k bit lines. If a page has p = r * k bit lines, there will be r read/write stacks 400-1, ..., 400-r.

並行操作之整組經分割之讀取/寫入堆疊400允許並行讀取或編程沿一列的一區塊(或頁)之p個單元。因此,對於整列單元而言將存在p個讀取/寫入模組。由於每一堆疊服務k個記憶體單元,故組中之讀取/寫入堆疊的總數目由r=p/k給出。舉例而言,若r係組中之堆疊數目,則p=r*k。一實例記憶體陣列可具有p=512個位元組(512×8個位元)、k=8且因此r=512。在較佳實施例中,區塊係整列單元之運行。在另一實施例中,區塊係列中之單元的子集。舉例而言,單元之子集可為整列之一半或整列之四分之一。單元之子集可為連續單元或每一其他單元或每一預定數目之單元的運行。The entire set of divided read/write stacks 400 operating in parallel allows for parallel reading or programming of p cells along a block (or page) of a column. Therefore, there will be p read/write modules for the entire column of cells. Since each stack serves k memory cells, the total number of read/write stacks in the group is given by r=p/k. For example, if r is the number of stacks in the group, then p = r * k. An example memory array can have p = 512 bytes (512 x 8 bits), k = 8 and thus r = 512. In the preferred embodiment, the block is the operation of the entire column of cells. In another embodiment, a subset of the cells in the block series. For example, a subset of cells can be one-half of an entire column or a quarter of an entire column. A subset of the units may be a contiguous unit or each other unit or each predetermined number of units of operation.

每一讀取/寫入堆疊(諸如400-1)主要含有並行服務k個記憶體單元中之片段(segment)的一感測放大器堆疊212-1至212-k。美國專利公開案第2004-0109357-A1號中揭示較佳感測放大器,該揭示案之全文以引用之方式併入本文中。應注意,此僅是一特定實施例,其中k作為位元組中之位元數目且r為集合在一起的位元組之數目。在本發明中,只要足夠數目之資料鎖存器尤其是用於可儲存於單元上之每一位元的一資料鎖存器可連接至位元線,則特定資料鎖存器結構對於本發明之各種態樣而言並非基本的。Each read/write stack (such as 400-1) primarily contains a sense amplifier stack 212-1 through 212-k that serve segments in k memory cells in parallel. A preferred sense amplifier is disclosed in U.S. Patent Publication No. 2004-0109357-A1, the entire disclosure of which is incorporated herein by reference. It should be noted that this is only a specific embodiment, where k is the number of bits in the byte and r is the number of bytes that are grouped together. In the present invention, a specific data latch structure is provided for the present invention as long as a sufficient number of data latches, particularly a data latch for each bit storable on the cell, can be connected to the bit line The various aspects are not essential.

堆疊匯流排控制器410將控制及時序訊號經由線411提供至讀取/寫入電路370。堆疊匯流排控制器其自身經由線311而依賴於記憶體控制器310。每一讀取/寫入堆疊400中之通信由互連堆疊匯流排431實現且由堆疊匯流排控制器410控制。控制線411將來自堆疊匯流排控制器410之控制及時脈訊號提供至讀取/寫入堆疊400-1之組件。The stack bus controller 410 provides control and timing signals to the read/write circuit 370 via line 411. The stack bus controller itself relies on the memory controller 310 via line 311. The communication in each read/write stack 400 is implemented by interconnect stack bus 431 and is controlled by stack bus controller 410. Control line 411 provides control timing signals from stack bus controller 410 to the components of read/write stack 400-1.

在較佳配置中,堆疊匯流排經分割成用於通用處理器500與感測放大器堆疊212之間之通信的SABus 422及用於處理器與資料鎖存器堆疊430之間之通信的DBus 423。In a preferred configuration, the stack bus is split into SABus 422 for communication between the general purpose processor 500 and the sense amplifier stack 212 and DBus 423 for communication between the processor and the data latch stack 430. .

資料鎖存器堆疊430包含資料鎖存器430-1至430-k,用於每一記憶體單元之一資料鎖存器與該堆疊相關。I/O模組440使得資料鎖存器能經由I/O匯流排231與外部交換資料。The data latch stack 430 includes data latches 430-1 through 430-k for which one of the data latches of each memory cell is associated with the stack. The I/O module 440 enables the data latch to exchange data with the outside via the I/O bus 231.

通用處理器亦包括用於輸出指示記憶體操作狀態(諸如錯誤條件)之狀態訊號的輸出端507。狀態訊號係用於驅動依靠Wired-Or組態中之旗標匯流排509的n電晶體550的閘極。旗標匯流排較佳由控制器310預充電且當狀態訊號由讀取/寫入堆疊之任一者確定時將被下拉(pull down)。The general purpose processor also includes an output 507 for outputting a status signal indicative of a memory operational state, such as an error condition. The status signal is used to drive the gate of the n-cell 550 that relies on the flag bus 509 in the Wired-Or configuration. The flag bus is preferably pre-charged by controller 310 and will be pulled down when the status signal is determined by either of the read/write stacks.

圖10說明圖9中所展示之通用處理器之改良實施例。該通用處理器500包含處理器匯流排、用於與外部電路通信之PBUS 505、輸入邏輯510、處理器鎖存器PLatch 520及輸出邏輯530。Figure 10 illustrates a modified embodiment of the general purpose processor shown in Figure 9. The general purpose processor 500 includes a processor bus, a PBUS 505 for communicating with external circuitry, input logic 510, a processor latch PLatch 520, and output logic 530.

輸入邏輯510自PBUS接收資料且將該等資料作為變換資料輸出至BSI節點,該等資料視經由訊號線411來自堆疊匯流排控制器410之控制訊號而呈邏輯狀態"1"、"0"或"Z"(浮動)之一者。隨後設定/重設鎖存器PLatch 520鎖存BSI,從而產生一對互補輸出訊號為MTCH及MTCHThe input logic 510 receives the data from the PBUS and outputs the data as a transformed data to the BSI node. The data is in a logical state "1", "0" or a control signal from the stack bus controller 410 via the signal line 411. One of the "Z" (floating). The set/reset latch PLatch 520 then latches the BSI, thereby generating a pair of complementary output signals MTCH and MTCH * .

輸出邏輯530接收MTCH及MTCH 訊號且在PBUS 505上輸出變換資料,該等資料視經由訊號線411來自堆疊匯流排控制器410之控制訊號而呈邏輯狀態"1"、"0"或"Z"(浮動)之一者。The output logic 530 receives the MTCH and MTCH * signals and outputs the transformed data on the PBUS 505. The data is in a logical state "1", "0" or "Z" depending on the control signal from the stack bus controller 410 via the signal line 411. "One of the (floating).

在任何時間,通用處理器500處理與給定記憶體單元相關之資料。舉例而言,圖10說明耦接至位元線1之記憶體單元的狀況。對應感測放大器212-1包含一其中感測放大器資料出現之節點。在較佳實施例中,該節點假定儲存資料之SA鎖存器214-1之形式。類似地,對應資料鎖存器430-1集儲存與耦接至位元線1之記憶體單元相關聯的輸入或輸出資料。在較佳實施例中,該資料鎖存器430-1集包含用於儲存n位元資料之足夠的資料鎖存器434-1、...、434-n。At any time, general purpose processor 500 processes the data associated with a given memory unit. For example, FIG. 10 illustrates the condition of a memory cell coupled to bit line 1. Corresponding sense amplifier 212-1 includes a node in which sense amplifier data is present. In the preferred embodiment, the node assumes the form of the SA latch 214-1 storing the data. Similarly, the corresponding data latch 430-1 sets the input or output data associated with the memory cells coupled to bit line 1. In the preferred embodiment, the data latch 430-1 set contains sufficient data latches 434-1, ..., 434-n for storing n-bit data.

通用處理器500之PBUS 505在傳送閘極501由一對互補訊號SAP及SAN致能時能夠經由SBUS 422存取SA鎖存器214-1。類似地,PBUS 505在傳送閘極502由一對互補訊號DTP及DTN致能時能夠經由DBUS 423存取資料鎖存器430-1集。訊號SAP、SAN、DTP及DTN係清楚說明為來自堆疊匯流排控制器410之控制訊號的部分。The PBUS 505 of the general purpose processor 500 is capable of accessing the SA latch 214-1 via the SBUS 422 when the transmit gate 501 is enabled by a pair of complementary signals SAP and SAN. Similarly, PBUS 505 can access data latch set 430-1 via DBUS 423 when transmit gate 502 is enabled by a pair of complementary signals DTP and DTN. Signals SAP, SAN, DTP, and DTN are clearly illustrated as part of the control signal from stack bus controller 410.

圖11A說明圖10中所展示之通用處理器之輸入邏輯的較佳實施例。輸入邏輯520在PBUS 505上接收資料且視控制訊號而具有相同或反向或浮動的輸出BSI。輸出BSI節點主要受到傳送閘極522之輸出或包含串聯至Vd d 之p電晶體524及525的上拉電路或包含串聯至地面之n電晶體526及527的下拉電路的影響。上拉電路具有至分別受訊號PBUS及ONE控制之p電晶體524及525的閘極。下拉電路具有至分別受訊號ONEB<1>及PBUS控制之n電晶體526及527的閘極。Figure 11A illustrates a preferred embodiment of the input logic of the general purpose processor shown in Figure 10. Input logic 520 receives data on PBUS 505 and has the same or reverse or floating output BSI depending on the control signal. Output BSI node mainly by the transfer gate 522 or the output stage comprises a transistor connected in series to the p 524 V d d of the pull-up circuit 525 or a series to affect the surface of the n transistors 526 and 527 of the pull-down circuit. The pull-up circuit has gates to p transistors 524 and 525 that are controlled by signals PBUS and ONE, respectively. The pull-down circuit has gates to n transistors 526 and 527 controlled by signal ONEB<1> and PBUS, respectively.

圖11B說明圖11A之輸入邏輯的真值表。該邏輯受PBUS控制及為來自堆疊匯流排控制器410之控制訊號之部分的控制訊號ONE、ONEB<0>、ONEB<1>控制。基本上,支持三種傳送模式,通過(PASSTHROUGH)、反向(INVERTED)及浮動(FLOATED)。Figure 11B illustrates a truth table for the input logic of Figure 11A. The logic is controlled by the PBUS and controlled by the control signals ONE, ONEB<0>, ONEB<1> from the control signals of the stack bus controller 410. Basically, three transfer modes are supported, passing (PASSTHROUGH), reverse (INVERTED), and floating (FLOATED).

在其中BSI與輸入資料相同之PASSTHROUGH模式的狀況下,訊號ONE處於邏輯"1",ONEB<0>處於"0"且ONEB<1>處於"0"。此將去能上拉或下拉但是致能傳送閘極522以在PBUS 505上將資料傳遞至輸出端523。在其中BSI係輸入資料之反向的INVERTED模式的狀況下,訊號ONE處於"0",ONEB<0>處於"1"且ONE<1>處於"1"。此將去能傳送閘極522。又,當PBUS處於"0"時,下拉電路將被去能同時上拉電路將被賦能,從而導致BSI處於"1"。類似地,當PBUS處於"1"時,上拉電路被去能而下拉電路被賦能,從而導致BSI處於"0"。最後,在FLOATED模式之狀況下,輸出BSI可藉由使訊號ONE處於"1"、ONEB<0>處於"1"且ONEB<1>處於"0"來得以浮動。儘管實務上不使用FLOATED模式,但是為完整性而將其列出。In the case of the PASSTHROUGH mode in which the BSI is the same as the input data, the signal ONE is at logic "1", ONEB<0> is at "0" and ONEB<1> is at "0". This will either pull up or pull down but enable the transfer gate 522 to pass data to the output 523 on the PBUS 505. In the case of the INVERTED mode in which the BSI input data is inverted, the signal ONE is at "0", the ONEB<0> is at "1", and the ONE<1> is at "1". This will remove the gate 522. Also, when PBUS is at "0", the pull-down circuit will be de-energized and the pull-up circuit will be enabled, causing the BSI to be "1". Similarly, when PBUS is at "1", the pull-up circuit is disabled and the pull-down circuit is enabled, resulting in BSI at "0". Finally, in the FLOATED mode, the output BSI can be floated by setting the signal ONE to "1", the ONEB<0> to "1", and the ONEB<1> to "0". Although the FLOATED mode is not used in practice, it is listed for completeness.

圖12A說明圖10中所展示之通用處理器之輸出邏輯的較佳實施例。將在BSI節點處來自輸入邏輯520的訊號鎖存於處理器鎖存器PLatch 520中。輸出邏輯530自PLatch 520之輸出端接收資料MTCH及MTCH ,並視控制訊號而以PASSTHROUGH、INVERTED或FLOATED模式在PBUS上輸出。換言之,四個分支充當用於PBUS 505之驅動器,主動將其拉至高、低或浮動狀態。此由四個分支電路(即,用於PBUS 505之兩上拉及兩下拉電路)來完成。第一上拉電路包含串聯至Vd d 之p電晶體531及532,且其能在MTCH處於"0"時上拉PBUS。第二上拉電路包含串聯至地面之p電晶體533及534,且其能在MTC H處於"1"時上拉PBUS。類似地,第一下拉電路包含串聯至Vd d 之n電晶體535及536,且其能在MTCH處於"0"時下拉PBUS。第二上拉電路包含串聯至地面之n電晶體537及538,且其能在MTCH處於"1"時上拉PBUS。Figure 12A illustrates a preferred embodiment of the output logic of the general purpose processor shown in Figure 10. The signal from input logic 520 at the BSI node is latched in processor latch PLatch 520. The output logic 530 receives the data MTCH and MTCH * from the output of the PLatch 520 and outputs it on the PBUS in the PASSTHROUGH, INVERTED or FLOATED mode depending on the control signal. In other words, the four branches act as drivers for the PBUS 505, actively pulling them to a high, low, or floating state. This is done by four branch circuits (ie, two pull-ups for the PBUS 505 and two pull-down circuits). The first pull-up circuit includes p transistors 531 and 532 connected in series to V d d and is capable of pulling up PBUS when MTCH is at "0". The second pull-up circuit includes p-transistors 533 and 534 connected in series to the ground and is capable of pulling up PBUS when MTC H is at "1". Similarly, the first pull-down circuit includes n transistors 535 and 536 connected in series to V d d and is capable of pulling down PBUS when MTCH is at "0". The second pull-up circuit includes n transistors 537 and 538 connected in series to the ground, and it can pull up the PBUS when the MTCH is at "1".

本發明之一特徵在於用PMOS電晶體建構上拉電路並用NMOS電晶體建構下拉電路。由於NMOS提供之拉力遠遠強於PMOS提供之拉力,故在任何競爭中下拉將始終勝過上拉。換言之,節點或匯流排可始終預設至上拉或"1"狀態,且若需要,則其可始終藉由下拉轉換至"0"狀態。One feature of the present invention resides in constructing a pull-up circuit with a PMOS transistor and constructing a pull-down circuit with an NMOS transistor. Since the pulling force provided by the NMOS is much stronger than the pulling force provided by the PMOS, the pull-down will always outweigh the pull-up in any competition. In other words, the node or bus can always be preset to the pull-up or "1" state, and if necessary, it can always be toggled to the "0" state.

圖12B說明圖12A之輸出邏輯的真值表。該邏輯受來自輸入邏輯經鎖存的MTCH、MTCH 控制及為來自堆疊匯流排控制器410之控制訊號之部分的控制訊號PDIR、PINV、NDIR、NINV控制。支持四種操作模式:通過(PASSTHROUGH)、反向(INVERTED)、浮動(FLOATED)及預充電(PRECHARGE)。Figure 12B illustrates a truth table for the output logic of Figure 12A. The logic is controlled by control signals PDIR, PINV, NDIR, NINV from the input logic latched MTCH, MTCH * control and for the control signals from the stack bus controller 410. Four modes of operation are supported: pass (PASSTHROUGH), reverse (INVERTED), float (FLOATED), and precharge (PRECHARGE).

在FLOATED模式中,去能所有四個分支。此藉由具有訊號PINV=1、NINV=0、PDIR=1、NDIR=0(此等亦為預設值)來完成。在PASSTHROUGH模式中,當MTCH=0時,其將要求PBUS=0。此藉由僅賦能具有n電晶體535及536之下拉分支來完成,其中除了NDIR=1以外所有控制訊號處於其預設值。當MTCH=1時,其將要求PBUS=1。此藉由僅賦能具有p電晶體533及534之上拉分支來完成,其中除了PINV=0以外所有控制訊號處於其預設值。在INVERTED模式中,當MTCH=0時,其將要求PBUS=1。此藉由僅賦能具有p電晶體531及532之上拉分支來完成,其中除了PDIR=0以外所有控制訊號處於其預設值處。當MTCH=1時,其將要求PBUS=0。此藉由僅賦能具有n電晶體537及538之下拉分支來完成,其中除了NINV=1以外所有控制訊號處於其預設值。在PRECHARGE模式中,PDIR=0及PINV=0之控制訊號設定將在MTCH=1時賦能具有p電晶體531及532之上拉分支或在MTCH=0時賦能具有p電晶體533及534之上拉分支。In FLOATED mode, go to all four branches. This is done by having the signals PINV=1, NINV=0, PDIR=1, NDIR=0 (these are also preset values). In the PASSTHROUGH mode, when MTCH=0, it will require PBUS=0. This is accomplished by energizing only the n-transistors 535 and 536, where all control signals are at their default values except for NDIR=1. When MTCH = 1, it will require PBUS = 1. This is accomplished by having only the pull-up branches with p-transistors 533 and 534, with all control signals except their PINV=0 at their default values. In the INVERTED mode, when MTCH=0, it will require PBUS=1. This is accomplished by having only the pull-up branches with p-transistors 531 and 532, with all control signals except their PDIR=0 at their default values. When MTCH = 1, it will require PBUS = 0. This is accomplished by energizing only the n-transistors 537 and 538, where all control signals are at their default values except for NINV=1. In the PRECHARGE mode, the control signal settings for PDIR=0 and PINV=0 will be enabled with p-transistor 531 and 532 pull-up branches when MTCH=1 or p-transistors 533 and 534 when MTCH=0. Pull the branch above.

美國專利申請案第11/026,536號(2004年12月29日)中較充分地開發了通用處埋器操作,該案之全文以引用方式的併入本文中。Universal buried device operation is more fully developed in U.S. Patent Application Serial No. 11/026,536, issued Dec. 29, 2004, which is incorporated herein in its entirety by reference.

所有位元線架構中之快速通過寫入Fast pass writes in all bit line architectures

非揮發性記憶體之效能的一重要態樣係編程速度。此部分論述改良複數狀態非揮發性記憶體之編程效能的方法且在具有一所有位元線(ABL)架構之NAND記憶體的內容中呈現此部分。具體言之,描述了使用圖10中所展示之通用處理器的暫存器來建構快速通過寫入。An important aspect of the performance of non-volatile memory is the programming speed. This section discusses ways to improve the programming performance of complex state non-volatile memory and present this portion in the content of a NAND memory with an all-bit line (ABL) architecture. In particular, the use of a scratchpad of the general purpose processor shown in FIG. 10 to construct a fast pass write is described.

編程記憶體之目標係快速但精確地寫入資料。在二元記憶體中,僅需要將所有經編程之狀態寫於特定臨限位準上,而將未經編程之狀態保留於特定臨限位準之下。在複數狀態記憶體中,情形較複雜,因為對於中間狀態而言,必須將位準寫於特定臨限值之上但不能太高,否則其分佈將衝擊隨後之平衡。此問題隨著狀態之數目增加而加重,可利用臨限窗減少,或兩者皆發生。The goal of programming memory is to write data quickly but accurately. In binary memory, it is only necessary to write all programmed states to a certain threshold level while leaving the unprogrammed state below a certain threshold level. In complex state memory, the situation is more complicated, because for intermediate states, the level must be written above a certain threshold but not too high, otherwise its distribution will impact the subsequent balance. This problem is aggravated as the number of states increases, can be reduced with a threshold window, or both occur.

編程記憶體之目標係快速但精確寫入資料。在二元記憶體中,僅需要將所有經編程之狀態寫於特定臨限位準上,而將未經編程之狀態保留於特定臨限位準之下。在複數狀態記憶體中,情形較複雜,因為對於中間狀態而言,必須將位準寫於特定臨限值之上但不能太高,否則其分佈將衝擊隨後之平衡。此問題隨著狀態之數目增加而加重,可利用臨限窗減少,或兩者皆發生。The goal of programming memory is to write data quickly but accurately. In binary memory, it is only necessary to write all programmed states to a certain threshold level while leaving the unprogrammed state below a certain threshold level. In complex state memory, the situation is more complicated, because for intermediate states, the level must be written above a certain threshold but not too high, otherwise its distribution will impact the subsequent balance. This problem is aggravated as the number of states increases, can be reduced with a threshold window, or both occur.

使狀態分佈變緊的一技術係多次編程相同資料。一實例係美國專利第6,738,289號中所描述之粗糙-精細編程方法,該案以引用之方式併入本文中。圖13展示對應於相同記憶體狀態之儲存元件的兩種分佈,其中已透過使用第一、較低驗證位準VL的編程波形PW1在第一次通過中寫入單元,從而產生分佈1301。該編程波形隨後在第二次通過之較低值處重新開始。在第二次通過中,編程波形PW2使用第二、較高驗證位準VH以將此位移成分佈1303。此允許第一次通過將單元置放為粗糙分佈,隨後在第二次通過中將該粗糙分佈變緊。圖14中展示編程波形之實例。第一階梯PW1 1401使用較低驗證位準VL,而PW2使用較高驗證位準VH。雖然第二次通過(PW2 1403)可使用小的步長,如美國專利第6,738,289號中所描述,但是除不同驗證位準以外過程係相同的。One technique that tightens the state distribution is to program the same data multiple times. An example is the rough-fine programming method described in U.S. Patent No. 6,738,289, which is incorporated herein by reference. Figure 13 shows two distributions of storage elements corresponding to the same memory state in which the programming waveform PW1 using the first, lower verification level VL has been written to the cell in the first pass, resulting in a distribution 1301. The programmed waveform then resumes at the lower value of the second pass. In the second pass, the programming waveform PW2 uses the second, higher verify level VH to shift this into a distribution 1303. This allows the first pass to place the unit into a rough distribution, which is then tightened in the second pass. An example of a programming waveform is shown in FIG. The first step PW1 1401 uses a lower verify level VL, while PW2 uses a higher verify level VH. Although a small step size can be used for the second pass (PW2 1403), as described in U.S. Patent No. 6,738,289, the process is the same except for the different verification levels.

此方法之缺點在於每一編程序列要求編程波形經歷全階梯兩者,執行1401並以1403重新開始。若可能使用單一階梯則可更快速執行寫入,從而允許該分佈經受基於較低驗證VL的初始編程相,但是一旦達到此初始位準,則仍能減緩該過程並使用較高驗證VH來改進該分佈。此可經由"快速通過寫入"來實現,該"快速通過寫入"使用位元線偏壓來以編程波形的單一階梯序列編程。此演算法可實現與兩次通過寫入之演算法類似之效應且在美國專利第6,643,188號中更詳細描述此演算法,該案之全文引用的方式併入本文中。圖15中展示編程波形QPW 1501,且在第一相中,除了在VL與VH位準(詳情請參看圖18)執行驗證以外,過程如同兩次通過演算法之第一相一樣進行;然而,一旦驗證在VL發生而不是重新開始階梯波形,則階梯繼續,但是其中提昇位元線電壓以隨著其繼續來減慢過程直至單元在VH驗證。注意,此允許編程波形之脈衝單調地不降低。關於圖16進一步闡釋此。A disadvantage of this approach is that each programming sequence requires the programming waveform to go through both full steps, execute 1401 and restart at 1403. If a single step is possible, the write can be performed more quickly, allowing the distribution to be subjected to an initial programming phase based on a lower verify VL, but once this initial level is reached, the process can still be slowed down and improved using a higher verify VH The distribution. This can be accomplished via "Fast Pass Write", which uses a bit line bias to program in a single step sequence of programming waveforms. This algorithm can achieve an effect similar to that of the two-passed algorithm and is described in more detail in U.S. Patent No. 6,643,188, the disclosure of which is incorporated herein in its entirety. The programming waveform QPW 1501 is shown in Figure 15, and in the first phase, except that the verification is performed at the VL and VH levels (see Figure 18 for details), the process proceeds as if the first phase of the algorithm was used twice; however, Once verification occurs at VL instead of restarting the staircase waveform, the ladder continues, but where the bit line voltage is boosted to slow down the process as it continues until the cell is verified at VH. Note that this allows the pulses of the programmed waveform to monotonically not decrease. This is further explained with respect to Figure 16.

圖16展示所有位元線架構中之NAND型陣列及其周邊電路的一部分。雖然此與若干前述圖中所展示之配置類似,但是此處僅提供與當前論述相關之元件,其中省略其他元件以簡化論述。圖16亦清楚地將位元線箝位621展示為與讀取/寫入堆疊之其他元件分離。標題為"Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations"之美國專利申請案(2005年3月16日申請)且尤其是美國專利申請案第11/015,199號(2004年12月16日申請)中進一步描述字線箝位的詳情,以上該等申請案皆以引用的方式併入本文中。應注意,雖然主要根據使用所有位元線架構之NAND型陣列來論述本發明,但是本發明不限制於此。如將在下文中看出,本發明係關於快速通過寫入或更一般係關於兩相編程過程及用以監視及控制此過程之資料鎖存器的使用。因此,雖然此係基於用於說明性目的之特定實施例來描述,但是其可更一般化地應用。Figure 16 shows a portion of a NAND-type array and its peripheral circuitry in all bit line architectures. Although this is similar to the configuration shown in several of the foregoing figures, only elements related to the present discussion are provided herein, with other elements omitted to simplify the discussion. Figure 16 also clearly shows the bit line clamp 621 as being separate from the other elements of the read/write stack. U.S. Patent Application (Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations), filed on March 16, 2005, and in particular, U.S. Patent Application Serial No. 11/015,199 (2004) The details of the word line clamps are further described in the application on the 16th of the application, which is incorporated herein by reference. It should be noted that although the present invention is mainly discussed in terms of a NAND type array using all bit line architectures, the present invention is not limited thereto. As will be seen hereinafter, the present invention relates to fast pass writes or more generally to two phase programming processes and the use of data latches for monitoring and controlling this process. Thus, although this is described in terms of a particular embodiment for illustrative purposes, it can be applied more generally.

圖16展示三個NAND串610A至610C,其中NAND串610A至610C之每一者沿對應位元線經由位元線箝位621連接至個別感測放大器SA-A至SA-C 601A至C。每一感測放大器SA 601具有一清楚指示之資料鎖存器DLS 603,該鎖存器對應於以上SA鎖存器214(例如,圖10)。位元線箝位621係用於控制沿對應NAND串之位元線的電壓位準及電流且陣列部分中之不同箝位通常由電壓VB L C 來控制。在每一NAND串610中,源極選擇閘極(SGS 615)及汲極選擇閘極(SGD 611)被清楚展示且分別由整列之VS G D 及VS G S 來控制。沿字線WL 625之單元列(613)係用作用於以下描述之例示性選定列。16 shows three NAND strings 610A through 610C, with each of NAND strings 610A through 610C being connected to individual sense amplifiers SA-A through SA-C 601A-C via bit line clamps 621 along corresponding bit lines. Each sense amplifier SA 601 has a clearly indicated data latch DLS 603 that corresponds to the above SA latch 214 (e.g., Figure 10). Bit line clamp 621 is used to control the voltage level and current along the bit line of the corresponding NAND string and the different clamps in the array portion are typically controlled by voltage V B L C . In each NAND string 610, the source select gate (SGS 615) and the drain select gate (SGD 611) are clearly shown and are controlled by the entire column of V S G D and V S G S , respectively. The column of cells (613) along word line WL 625 serves as an exemplary selected column for the following description.

諸如613A之選定記憶體單元藉由在控制閘極與通道之間建立電壓差、從而引起電荷在浮動閘極上累積來編程。沿選定字線WL 625來應用圖15之編程波形QPW 1501。考慮其中沿WL 625之單元待編程於串A及B而非串C中的狀況。對於待編程之單元,諸如列A及B中之單元613A及613B,將通道保持為低(接地)以建立所需要之電位差。此藉由以下步驟完成:由下拉電路將位元線BL-A及BL-B設定為接地(對應於經編程之資料,"0");藉由設定VB L C =VS G D =Vd d +VT (其中VT 為適當臨限電壓)來接通位元線箝位621及汲極側選擇電晶體;及藉由降低VS G S 來斷開源極側選擇閘極。此將NAND-A及NAND-B中之通道保持接地且在613A及613B之閘極處之編程脈衝將傳送電荷至浮動閘極。A selected memory cell, such as 613A, is programmed by establishing a voltage difference between the control gate and the channel, thereby causing charge buildup on the floating gate. The programming waveform QPW 1501 of Figure 15 is applied along selected word line WL 625. Consider the situation in which the cells along WL 625 are to be programmed into strings A and B instead of string C. For the cells to be programmed, such as cells 613A and 613B in columns A and B, the channel is held low (ground) to establish the required potential difference. This is accomplished by setting the bit lines BL-A and BL-B to ground (corresponding to the programmed data, "0") by the pull-down circuit; by setting V B L C =V S G D = V d d +V T (where V T is the appropriate threshold voltage) to turn on the bit line clamp 621 and the drain side selection transistor; and turn off the source side selection gate by lowering V S G S . This keeps the channels in NAND-A and NAND-B grounded and the programming pulses at the gates of 613A and 613B will transfer charge to the floating gate.

對於將不被編程或編程受抑制之單元613C(對應於被擦除之資料或被封鎖之資料"1")而言,將相同電壓施加於位元線箝位、選擇閘極及字線;然而,基於鎖存至感測放大器中之資料"1"將箝位621-C上之位元線BLC設定為Vd d 。由於621-C之閘極處於VB L C =Vd d +VT ,故此有效切斷電晶體621-C,從而允許NAND-C之通道浮動。因此,當將編程脈衝施加至613C時,通道被上拉且編程受到抑制。For cell 613C (corresponding to erased data or blocked data "1") that will not be programmed or programmed to be suppressed, the same voltage is applied to the bit line clamp, the select gate and the word line; However, the bit line BLC on the clamp 621-C is set to V d d based on the data "1" latched into the sense amplifier. Since the gate of 621-C is at V B L C = V d d + V T , the transistor 621-C is effectively cut off, thereby allowing the channel of the NAND-C to float. Therefore, when a program pulse is applied to 613C, the channel is pulled up and programming is suppressed.

如迄今所描述,此程序很大程度與將為兩次通過編程之第一次通過及為標準單一通過編程所進行的程序相同。在編程脈衝之間,執行一驗證。是否將編程一單元對應於目標狀態之VH值。在兩次通過編程演算法中,第一次通過之驗證使用較低VL位準,而第二次通過之驗證使用VH位準。當前技術與兩次技術之不同之處在於VL與VH位準皆用於在脈衝之間執行的驗證且在於一旦單元在此較低位準驗證所將發生的情況。在兩次通過技術中,在較低VL位準成功驗證之後,編程波形重新開始但是驗證現在使用VH位準;在此,編程波形繼續,但是改變位元線偏壓,提昇該偏壓以減慢編程速率。(在快速通過寫入之變化中,一旦第二相開始,則可丟棄較低驗證,僅留下VH驗證。類似地,在第一少許脈衝上,可省略VH驗證。然而,由於此增加操作之複雜性且節省相對小,故當前實施例在給定寫入過程期間將包括VL與VH驗證。)As described so far, this procedure is largely identical to the one that will be the first pass through two programming passes and the standard single pass programming. A verification is performed between the programming pulses. Whether a unit is programmed to correspond to the VH value of the target state. In the two pass programming algorithms, the first pass verification uses the lower VL level, and the second pass verification uses the VH level. The current technique differs from the two techniques in that both the VL and VH levels are used for verification performed between pulses and in what would happen once the unit was verified at this lower level. In the two pass technique, after the lower VL level is successfully verified, the programming waveform is restarted but the verification now uses the VH level; here, the programming waveform continues, but the bit line bias is changed and the bias is boosted to reduce Slow programming rate. (In the fast pass write change, once the second phase begins, the lower verify can be discarded, leaving only the VH verify. Similarly, on the first few pulses, the VH verification can be omitted. However, due to this increase operation The complexity and savings are relatively small, so the current embodiment will include VL and VH verification during a given write process.)

因此,在編程脈衝開始時設定位元線偏壓的程序將使用資料鎖存器中之編程驗證VH資料以在感測放大器鎖存器603-i中設置資料從而將位元線BL-i充電為0(以編程選定單元)或Vd d (以抑制非選定單元),其中位元線箝位已被設定於VB L C =Vd d +VT 以允許位元線電荷高至非選定位元線上之全Vd d 值。隨後可藉由在位元線箝位621-i(其中電晶體621-i充分接通)上將電壓VB L C 自VB L C =Vd d +VT 移動至VB L C =VQ P W +VT 來提昇位元線值,其中VQ P W 小於Vd d 。一旦單元之一者在目標狀態之VL位準驗證,且此結果隨後被傳送回至感測放大器鎖存器603-i,則位元線電壓位準隨後得以提昇。對於選定位元線而言,此將位元線自接地提昇至VQ P W ,從而減慢編程;對於受抑制之位元線而言,此等保持浮動。雖然非選定單元將仍為編程受抑制的,但是選定NAND串中之通道將稍微提昇,從而即使沿WL 625供應之編程電壓波形繼續沿階梯上升,亦減慢編程速率。Therefore, the program that sets the bit line bias at the beginning of the programming pulse will use the program verify VH data in the data latch to set the data in the sense amplifier latch 603-i to charge the bit line BL-i. Is 0 (selected by programming) or V d d (to suppress unselected cells), where the bit line clamp has been set to V B L C =V d d +V T to allow the bit line charge to be unselected The full V d d value on the bit line. The voltage V B L C can then be moved from V B L C =V d d +V T to V B L C =V by the bit line clamp 621-i (where the transistor 621-i is fully turned on). Q P W + V T to increase the bit line value, where V Q P W is less than V d d . Once one of the cells is verified at the VL level of the target state and this result is then passed back to the sense amplifier latch 603-i, the bit line voltage level is then boosted. For a selected locating element line, this raises the bit line from ground to V Q P W , thereby slowing down programming; for a suppressed bit line, these remain floating. While the unselected cells will still be program inhibited, the channels in the selected NAND string will be slightly boosted, thereby slowing down the programming rate even though the programming voltage waveform supplied along WL 625 continues to rise stepwise.

一旦位元線電壓被提昇,則第二相沿相同編程波形繼續,但是脈衝間驗證使用目標狀態之較高VH位準。由於單元個別地驗證,故由於對應鎖存器DLS 603翻轉而使該等單元被封鎖且位元線被提昇至Vd d 。該過程繼續直至完成寫入整頁。Once the bit line voltage is boosted, the second phase continues along the same programming waveform, but inter-pulse verification uses the higher VH level of the target state. Since the verification unit individually, so that the corresponding latch DLS 603 since the reversing of such unit is blocked and the bit line is raised to V d d. The process continues until the entire page is written.

圖17描述用以建構此過程的例示性所有位元線架構之430(圖10)的資料鎖存器434-i的使用。圖17僅重新產生圖10之選定項(其係配置成例示性拓樸)以簡化論述。此等包括連接至資料I/O線231之資料鎖存器DL0 434-0、藉由線423連接至通用處理器500之資料鎖存器DL1 434-1、通常藉由線435與其他資料鎖存器相連接之資料鎖存器DL2 434-2及藉由線422連接至通用處理器500之感測放大器資料鎖存器DLS 603(相當於圖10之214)。Figure 17 depicts the use of data latch 434-i of an exemplary all bit line architecture 430 (Figure 10) to construct this process. Figure 17 only reproduces the selected items of Figure 10 (which are configured as an exemplary topology) to simplify the discussion. These include a data latch DL0 434-0 connected to the data I/O line 231, connected to the data latch DL1 434-1 of the general purpose processor 500 via line 423, typically by line 435 and other data locks. The data latch DL2 434-2 connected to the register is coupled to the sense amplifier data latch DLS 603 of the general purpose processor 500 (corresponding to 214 of FIG. 10) via line 422.

雖然僅兩資料位元經編程至每一記憶體儲存元件中,但是每一位元線具有三個相關資料鎖存器。(在更一般化之n位元狀況中,資料鎖存器之數目將為n+1)。額外鎖存器DL2434-2之引入係用於管理快速通過寫入演算法正執行兩編程相之哪一相。如以上所描述,且在其他所併入之文獻中,資料鎖存器DL0 434-0及DL1 434-1係用於基於"標準"驗證位準VH而將兩資料位元寫入單元中:當下部頁正被編程時,僅嚴格要求此等鎖存器之一者,但是當上部頁正被編程時,將此等鎖存器之一者用於上部頁之資料且將其他鎖存器用於先前經編程之下部頁,因為上部頁之編程取決於此配置中下部頁的狀態。藉由引入額外鎖存器DL2 434-2,可將一鎖存器用於指示在較低VL位準之驗證結果,依據該驗證結果,快速通過寫入之第一相(其中將選定元件之通道保持為低)變化為第二相(其中提昇通道位準以減慢編程)。Although only two data bits are programmed into each memory storage element, each bit line has three associated data latches. (In a more general n-bit situation, the number of data latches will be n+1). The introduction of the extra latch DL2434-2 is used to manage which phase of the two programming phases are being executed by the write algorithm. As described above, and in other incorporated documents, the data latches DL0 434-0 and DL1 434-1 are used to write two data bits into the cell based on the "standard" verification level VH: When the lower page is being programmed, only one of these latches is strictly required, but when the upper page is being programmed, one of these latches is used for the upper page and the other latches are used. The lower page was previously programmed because the programming of the upper page depends on the state of the lower page in this configuration. By introducing an additional latch DL2 434-2, a latch can be used to indicate the result of the verification at the lower VL level, according to which the first phase of the write is quickly passed (where the selected component is channeled) Keep low) Change to the second phase (where the channel level is raised to slow down programming).

在圖17中,標記暫存器434-i以用於下部頁之快速通過寫入,與二元記憶體之狀況類似地建構該下部頁。將下部頁原始資料沿I/O線231載入至DL0 434-0,並將該資料傳送至用於VH驗證的DL1 434-1中,並隨後傳送至DLS 603(其中其用於判定位元線是經編程賦能還是編程受抑制)中。鎖存器DL2 434-2係用於VL封鎖。In Fig. 17, the tag register 434-i is used for fast pass writing of the lower page, and the lower page is constructed similarly to the condition of the binary memory. The lower page original data is loaded along the I/O line 231 to the DL0 434-0, and the data is transferred to the DL1 434-1 for VH verification, and then transmitted to the DLS 603 (where it is used to determine the bit) Whether the line is programmed or disabled.) Latch DL2 434-2 is used for VL blocking.

可由諸如圖18中較詳細展示之應用於選定字線WL 625的波形來在編程脈衝之間執行編程驗證。該波形被自接地(1801)提昇至第一、較低驗證位準VL(1803)且隨後進一步被提昇至較高VH(1805)。陣列上之其他電壓位準處於如以上所併入之文獻中所描述的典型讀取值。此允許根據以下步驟來連續進行兩編程驗證:(1)第一驗證位準使用較低驗證位準VL(1803),其中隨後將資料傳送至資料鎖存器DL2 434-2。Program verification may be performed between programming pulses by a waveform such as that applied to selected word line WL 625 as shown in greater detail in FIG. The waveform is boosted from ground (1801) to a first, lower verify level VL (1803) and then further boosted to a higher VH (1805). Other voltage levels on the array are typical read values as described in the literature incorporated above. This allows two program verifications to be performed continuously according to the following steps: (1) The first verification level uses a lower verification level VL (1803), where the data is subsequently transferred to the data latch DL2 434-2.

(2)第二驗證係在驗證波形處於1805時所執行之較高驗證位準。VH之結果將被傳送至資料鎖存器DL1 434-1。在編程脈衝期間,位元線偏壓設置將取決於VL與VH驗證結果。(2) The second verification is the higher verification level performed when the verification waveform is at 1805. The result of VH will be transferred to the data latch DL1 434-1. During the programming pulse, the bit line bias setting will depend on the VL and VH verification results.

(3)VH驗證結果被傳送至SA資料鎖存器DLS 603以將位元線充電至0或Vd d(3) The VH verification result is transmitted to the SA data latch DLS 603 to charge the bit line to 0 or V d d .

(4)NDL中之VL驗證結果被傳送至SA資料鎖存器DLS 603以將位元線自0充電至VQ P W (若單元經驗證)或將位元線保持於0(若資料處於"0")。(4) The VL verification result in the NDL is transferred to the SA data latch DLS 603 to charge the bit line from 0 to V Q P W (if the cell is verified) or to keep the bit line at 0 (if the data is in "0").

圖19之流程圖中更詳細描述該過程。This process is described in more detail in the flow chart of Figure 19.

圖19係基於例示性所有位元線實施例之讀取/寫入堆疊之鎖存器的編程/驗證序列的流程圖。在步驟701至703中建立資料鎖存器之初始條件,在步驟711至717中設定編程偏壓條件並應用編程波形,且在步驟721至725中驗證相。本文中之次序係例示性實施例之次序且只要(例如)在使得字線跳動之前建立校正偏壓位準,則可重新排列許多步驟之次序。在步驟701中,在線231上將資料讀入鎖存器DL0 434-0中且隨後在步驟702中將資料傳送至鎖存器DL1 434-1。在步驟703中,將資料進一步傳送至鎖存器DL2 434-2中。此為寫入過程設定目標資料,其中習知使用的是"0"值對應於編程且"1"值對應於編程抑制。19 is a flow diagram of a programming/verification sequence based on a latch of a read/write stack of all of the bit line embodiments. The initial conditions of the material latch are established in steps 701 to 703, the program bias conditions are set in steps 711 to 717 and the program waveform is applied, and the phases are verified in steps 721 to 725. The ordering herein is in the order of the illustrative embodiments and the order of the many steps may be rearranged as long as the corrective bias level is established, for example, prior to causing the word line to jump. In step 701, the data is read into latch DL0 434-0 on line 231 and then the data is transferred to latch DL1 434-1 in step 702. In step 703, the data is further transferred to the latch DL2 434-2. This sets the target data for the write process, where it is conventional to use a value of "0" corresponding to programming and a value of "1" corresponding to program suppression.

編程相自基於鎖存器設定校正偏壓條件開始。在步驟711中,將至位元線箝位線之電壓設定於快速通過寫入之第一相的正常編程位準Vd d +VT ,且在步驟712中,將鎖存器DL0/DL1中保持之值傳送至感測放大器之鎖存器DLS 603中,其中"0"值(編程)將導致位元線保持接地且"1"值(抑制)將影響位元線值Vd d 。此(步驟713)將電壓設定為處於Vd d +VT 之位元線箝位線以使得沿選定位元線之通道保持接地以用於編程且使得沿非選定位元線之通道浮動以抑制編程。在步驟714中,使箝位電壓自VB L C =Vd d +VT 降低至VB L C =VQ P W +VT 。在步驟715中,將DL2 434-2中之值傳送至感測放大器資料鎖存器DLS 603。在第一週期期間,此將為設定於DL2中之初始值。一旦單元在VL驗證,則在正被編碼之單元中,步驟714中所設定之降低的VB L C 值將隨後引起位元線位準自0上升至VQ P W ,進而減慢編程速率並過渡至第二快速通過寫入相。The programming phase begins by setting a correction bias condition based on the latch. In step 711, the voltage to the bit line clamp line is set to the normal programming level V d d +V T of the first phase of the fast pass write, and in step 712, the latch DL0/DL1 is placed. holding the values to the latch DLS 603 of the sense amplifier, wherein "0" value (program) will result in the bit line held at ground and a value "1" (inhibition) will affect the value of bit line V d d. This (step 713) is set to the voltage V d d + V T of the bit line so that clamps along the channel of the selected bit line held at ground for programming and that the channel along the floating unselected bit line to inhibit program. In step 714, from the clamp voltage V B L C = V d d + V T is reduced to V B L C = V Q P W + V T. In step 715, the value in DL2 434-2 is passed to sense amplifier data latch DLS 603. This will be the initial value set in DL2 during the first cycle. Once the cell is verified in VL, the reduced V B L C value set in step 714 will subsequently cause the bit line level to rise from 0 to V Q P W in the cell being encoded, thereby slowing down the programming rate. And transition to the second fast pass write phase.

在步驟717中,將編程脈衝(QPW 1501,圖15)施加至選定字線WL 625,在前述步驟中已建立其他線上之偏壓。當在將選定字線提昇至VL之前建立其上各種偏壓電壓時,脈衝間驗證相在步驟721開始。在步驟722中,字線之驗證波形上升至較低範圍VL(圖18,1803),且若單元驗證,則感測放大器SA 601中之鎖存器解扣且DLS 603中之值自"0"切換至"1",隨後在步驟723中,由通用處理器500將該結果傳送至DL2 434-2。隨後在步驟724中,將驗證位準提高至較高範圍VH(1805)且若單元驗證,則設定DLS 603,隨後在步驟725中,由通用處理器將該結果傳送至DL1 434-1。In step 717, a programming pulse (QPW 1501, Fig. 15) is applied to the selected word line WL 625, in which the bias on the other lines has been established. The inter-pulse verification phase begins at step 721 when various bias voltages are established prior to raising the selected word line to VL. In step 722, the verify waveform of the word line rises to the lower range VL (Fig. 18, 1803), and if the cell is verified, the latch in the sense amplifier SA 601 is tripped and the value in the DLS 603 is from "0. "Switch to "1", then in step 723, the result is transmitted by the general purpose processor 500 to DL2 434-2. Then in step 724, the verification level is raised to a higher range VH (1805) and if the unit is verified, the DLS 603 is set, and then in step 725, the result is transmitted by the general purpose processor to DL1 434-1.

在步驟721至711中完成驗證相之後,通用處理器500需要重新建立感測放大器資料鎖存器中之偏壓條件以用於隨後脈衝;當然,除非正被編程之所有單元在VH封鎖否則編程相被終止。此藉由返回步驟711來進行。在步驟712中,傳送如由現在DL1 434-1中之值所指示的VH驗證結果;若單元在VH驗證,則其將為編程受抑制且感測放大器位元自"0"變化至"1"以使位元線變高並抑制進一步編程。在步驟715中,如現在由DL2 434-2中之值所指示的VL驗證結果被傳送至感測放大器資料鎖存器DLS 603;若單元在VL驗證,則隨後在步驟716中提昇位元線電壓。After completing the verification phase in steps 721 through 711, the general purpose processor 500 needs to re-establish the bias conditions in the sense amplifier data latch for subsequent pulses; of course, unless all of the cells being programmed are blocked at VH, otherwise programmed The phase is terminated. This is done by returning to step 711. In step 712, the VH verification result as indicated by the value in the current DL1 434-1 is transmitted; if the cell is verified at VH, it will be programmed to be suppressed and the sense amplifier bit changes from "0" to "1" "To make the bit line go high and to inhibit further programming. In step 715, the VL verification result as indicated by the value in DL2 434-2 is now passed to the sense amplifier data latch DLS 603; if the cell is verified in VL, then the bit line is subsequently raised in step 716. Voltage.

在將資料鎖存器適當設定之後,在步驟717施加下一編程脈衝。隨後,過程如之前一樣繼續;或者,過程可改變圖18中之驗證波形,且(例如)藉由一旦不再需要較低驗證及步驟722及723則將其排除。After the data latch is properly set, the next programming pulse is applied at step 717. Subsequently, the process continues as before; alternatively, the process can change the verification waveform in Figure 18 and, for example, by eliminating the lower verification and steps 722 and 723 once they are no longer needed.

先前已描述上部頁/下部頁配置之下部頁,其中每一記憶體單元儲存兩位元資訊,一位元資訊對應於上部頁且一位元資訊對應於下部頁。將類似於已關於二元狀況與其他較高複數頁配置之第一經編程頁所描述之過程來進行該過程。剩餘論述亦將基於每單元兩位元、上部頁/下部頁實施例,因為此說明了複數狀態狀況而不添加將引入更多狀態之儲存的不必要之複雜性。對於使用複數頁格式之複數狀態記憶體而言,將頁進行若干編碼至單元之狀態上係可能的且將論述此等編碼中之幾者以用於例示性上部頁/下部頁配置。標題為"Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations"的美國專利申請案(2005年3月16日申請)中論述此等不同編碼之進一步詳情、如何建構此等編碼及其相對優勢,該案以引用的方式併入本文中。The lower page of the upper page/lower page configuration has been previously described, wherein each memory unit stores two bits of information, one bit of information corresponding to the upper page and one bit of information corresponding to the lower page. This process will be performed similar to the process described for the first programmed page with binary status and other higher complex page configurations. The remaining discussion will also be based on a two-element, upper page/lower page embodiment per cell, as this illustrates the complex state of the situation without adding unnecessary complexity that would introduce more state storage. For complex state memory using a complex page format, it is possible to encode a page into a number of cells and one of these codes will be discussed for an exemplary upper page/lower page configuration. Further details of such different encodings, how to construct such encodings, are discussed in U.S. Patent Application Serial No. 5, filed on Mar. Its comparative advantage is hereby incorporated by reference.

首先使用"習知編碼"來描述使用快速通過寫入之資料之上部頁的編程,其中上部頁寫入係編程B及C狀態,該寫入隨後使用兩編程驗證週期。在先前所描述之下部頁操作中編程狀態A。圖20中展示A、B及C狀態之分佈的關係。此圖中未展示對應於資料"11"之未編程E分佈。The "practical coding" is first used to describe the programming of the upper page using the fast write data, where the upper page write is programmed with the B and C states, which then uses two program verify cycles. State A is programmed in the lower page operation described previously. The relationship of the distribution of the states A, B, and C is shown in FIG. The unprogrammed E distribution corresponding to the data "11" is not shown in this figure.

圖20展示第一分佈1301及第二分佈1303,其分別對應於快速通過寫入之第一編程相中所使用之每一狀態的較低驗證VL及第二相中所使用之較高驗證VH。在該等分佈下,提供將此等編碼狀態之"習知"編碼至上部頁及下部頁之資料中。在此編碼中,當如先前所描述編程下部頁時,在快速通過寫入中將使用位準VAL及VAH來將具有下部頁資料"0"之狀態編程為1303-A分佈。上部頁寫入係編程B及C狀態。20 shows a first distribution 1301 and a second distribution 1303 corresponding to a lower verification VL for each state used in the first programming phase of the fast pass write and a higher verify VH used in the second phase, respectively. . Under these distributions, the "preferred" of these encoding states is provided to the upper and lower pages of the material. In this encoding, when the lower page is programmed as previously described, the state with the lower page material "0" will be programmed to the 1303-A distribution using the levels VAL and VAH in the fast pass write. The upper page is written in the B and C states.

相對於圖21來描述資料鎖存器DL0至DL2之使用,雖然圖21與圖17類似,但是其中指示不同鎖存器之使用的符號相應變化。如彼處所指示,將下部頁資料讀入至DL0 434-0中,DL1 434-1係用於上部頁封鎖資料且將接收VH驗證結果,且DL2 434-2係再次用於保持VL封鎖資料。如同下部頁寫入一樣,將一鎖存器分配用於兩驗證位準之每一者,其中DL1用於實際、較高驗證結果且DL2用於用以實現快速通過寫入之相過渡的較低驗證結果。The use of the data latches DL0 to DL2 is described with respect to FIG. 21, although FIG. 21 is similar to FIG. 17, but in which the symbols indicating the use of different latches are correspondingly changed. The sub-page data is read into DL0 434-0 as indicated by the location, DL1 434-1 is used for the upper page block data and will receive the VH verification result, and DL2 434-2 is used again to maintain the VL block data. As with the lower page write, a latch is allocated for each of the two verify levels, where DL1 is used for the actual, higher verify result and DL2 is used for the phase transition to achieve fast pass writes. Low verification results.

更具體言之,VL封鎖資訊將累積於資料鎖存器DL2 434-2中,其中其初始值再次自DL1 434-1被傳送且對應於原始編程資料以指示單元是否將經歷上部頁編程。在本實施例中,B及C狀態之快速通過寫入的位元線偏壓相同:在一變化中,可引入額外鎖存器以允許B及C狀態利用不同偏壓位準。又,VL封鎖資訊僅用於暫時儲存。在傳遞每一VL驗證感測之後,資料鎖存器DL2 434-2中用於VL之資料將自"0"變化至"1"。邏輯使得其在給定編程運行期間將不允許"1"值翻轉成"0"。More specifically, the VL blockade information will be accumulated in the data latch DL2 434-2, where its initial value is again transmitted from DL1 434-1 and corresponds to the original programming material to indicate whether the cell will undergo upper page programming. In this embodiment, the fast transitions of the B and C states are the same through the written bit line bias: in a variation, additional latches can be introduced to allow the B and C states to utilize different bias levels. Also, the VL blockade information is only used for temporary storage. After passing each VL verification sense, the data for VL in data latch DL2 434-2 will change from "0" to "1". The logic is such that it will not allow the "1" value to be flipped to "0" during a given programming run.

亦經由許多不同驗證感測來累積VH封鎖。一旦位元傳遞其預期編程狀態之驗證位準,則資料鎖存器中之資料將變成"11"。舉例而言,若B狀態傳遞驗證VBH,則資料鎖存器中之資料"00"將變成"11"。若C狀態傳遞驗證VCH,則資料鎖存器中之資料"01"將變成"11"。邏輯使得其在給定編程運行期間將不允許"1"值翻轉成"0"。注意,對於上部頁編程而言,VH封鎖可僅基於一資料鎖存器而發生。The VH blockade is also accumulated via a number of different verification sensings. Once the bit passes the verify level of its intended program state, the data in the data latch will become "11". For example, if the B state passes the verification VBH, the data "00" in the data latch will become "11". If the C state passes the verification VCH, the data "01" in the data latch will become "11". The logic is such that it will not allow the "1" value to be flipped to "0" during a given programming run. Note that for upper page programming, VH blocking can occur based on only one data latch.

美國專利申請案第11/013,125號(2004年12月14日申請)描述了一種其中可重複由相同複數狀態記憶體元件集保持之複數頁之編程的方法。舉例而言,若在寫入下部頁時對應上部頁之資料變得可利用,而非等待在開始編程該上部頁之前下部頁完成,則寫入操作可切換成其中上部頁及下部頁經同時編程於實體頁中的全編程序列。快速通過寫入技術亦可應用於全序列操作。U.S. Patent Application Serial No. 11/013,125, filed on Dec. 14, 2004, describes a method in which the programming of the plurality of pages held by the same plurality of sets of state memory elements can be repeated. For example, if the data corresponding to the upper page becomes available when the lower page is written, instead of waiting for the lower page to be completed before starting to program the upper page, the write operation can be switched to where both the upper page and the lower page pass simultaneously A fully programmed sequence programmed into a solid page. Fast write-through techniques can also be applied to full sequence operations.

圖22展示用於全序列寫入之資料鎖存器DL0至DL2的使用,雖然圖22與圖17類似,但是其中指示不同鎖存器之使用的符號相應變化。如彼處所展示,DL0 434-0係用於上部頁封鎖資料且將接收對應VH驗證結果,DL1 434-1係用於下部頁封鎖資料且將接收對應VH驗證結果,且DL2 434-2係再次用於保持VL封鎖資料。與其中初始DL2 434-2值對應於初始編程資料的單一頁編程中的狀況不同,全序列過渡時的初始值將說明上部頁及下部頁資料。因此,並非亦僅將適當、單一頁原始編程資料載入至DL2 434-2中,現在若鎖存器DL0與DL1皆為"1",則僅將該資料設定為"1"。Figure 22 shows the use of data latches DL0 through DL2 for full sequence writes, although Figure 22 is similar to Figure 17, but with corresponding changes in the symbols indicating the use of different latches. As shown elsewhere, DL0 434-0 is used for the upper page blocking data and will receive the corresponding VH verification result, DL1 434-1 is used for the lower page blocking data and will receive the corresponding VH verification result, and DL2 434-2 is again Used to keep VL blocked data. Unlike the situation in single page programming where the initial DL2 434-2 value corresponds to the initial programming material, the initial values at the full sequence transition will account for the upper and lower page data. Therefore, instead of just loading the appropriate, single-page raw programming data into the DL2 434-2, if the latches DL0 and DL1 are both "1", then only the data is set to "1".

在例示性實施例中,具有快速通過寫入之全序列操作可包括以下步驟:(1)將第一頁資料載入至鎖存器DL0 434-0中且下部頁可如以上所述開始編程。In an exemplary embodiment, the full sequence operation with fast pass writes can include the steps of: (1) loading the first page of data into latch DL0 434-0 and the lower page can begin programming as described above .

(2)如上關於下部頁編程所描述,已將下部頁編程資料傳送至鎖存器DL1 434-1,鎖存器DL0 434-0可被重設且預備繼續載入另一頁,從而當可利用時允許傳送相同字線WL 625上之上部頁。(2) The lower page programming data has been transferred to the latch DL1 434-1 as described above for the lower page programming, and the latch DL0 434-0 can be reset and ready to continue loading another page, so that The upper page of the same word line WL 625 is allowed to be transferred during use.

(3)在完成上部頁資料載入之後,將可能不進行下部頁之編程。在此狀況下,根據美國專利申請案第11/013,125號中所描述之全序列編程,可將編程演算法轉換成同時編程兩位元以加速編程速度。若上部頁資料不可利用或相反不能在完成頁之寫入之前被載入,則上部頁將如上所述由其自身來編程。(3) After the completion of the loading of the upper page, the programming of the lower page may not be performed. In this case, according to the full sequence programming described in U.S. Patent Application Serial No. 11/013,125, the programming algorithm can be converted to simultaneously programming two bits to speed up the programming. If the upper page data is not available or otherwise cannot be loaded before the completion of the page write, the upper page will be programmed by itself as described above.

(4)在下部頁編程轉換成全序列轉換之前,對於通過編程驗證A之單元而言,可已將下部頁原始資料封鎖為"11"。應在A位準讀取此等資料以回復其原始資料,因為兩位元全序列寫入需要下部頁與上部頁資料兩者來編程。(4) Before the lower page program is converted to full sequence conversion, the lower page source data may have been blocked to "11" for the unit that verified A by programming. This data should be read at the A level to reply to its original data, since the two-quantity full sequence write requires both the lower page and the upper page data to be programmed.

(5)在此兩位元全序列編程演算法中,可同時或分別執行A、B及C狀態之編程驗證。兩鎖存器亦可同時封鎖該封鎖過程。(5) In this two-quantity full sequence programming algorithm, program verification of A, B, and C states can be performed simultaneously or separately. The two latches can also block the blocking process at the same time.

(6)在完成編程資料A及B之後,僅C狀態保持待編程以使得過程類似二元寫入。可將剩餘編程資料傳送至DL1,從而允許為了待載入之下一頁資料而將DL-0重新設定為"1"。(6) After programming data A and B are completed, only the C state remains to be programmed so that the process is similar to binary writing. The remaining programming data can be transferred to DL1, allowing DL-0 to be reset to "1" for the next page of data to be loaded.

使用快速通過寫入之上部頁編程的先前論述係基於將狀態E、A、B及C習知編碼成上部頁及下部頁,如圖20中所展示。如標題為"Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations"之美國專利申請案(2005年3月16日申請)中所更多地開發,其他編碼通常係有用的。圖23及圖24中展示兩實例,此等實例之第一實例展示"LM舊(old)"編碼,且第二實例展示"LM新(new)"編碼。在該等兩狀況中,虛線指示為下部頁編程之結果的中間狀態之分佈,其中在兩LM碼中皆使用快速通過寫入的下部頁寫入與以上所描述之下部頁編程類似地進行。上部頁編程隨後將單元自中間分佈移動至B或C分佈之最終目標狀態並用"01"資料將單元自"11"狀態之E分佈編程為A分佈。在兩LM編碼中使用快速通過寫入之上部頁寫入與以上關於習知編碼所描述之上部頁編程類似地進行,差異在於由於狀態B及狀態C來自中間狀態(虛線),故下部頁亦將被封鎖。The previous discussion using fast write to top page programming is based on encoding states E, A, B, and C conventionally into upper and lower pages, as shown in FIG. Other codes are generally useful, as developed in U.S. Patent Application Serial No. 5, filed on Jan. 16, 2005. Two examples are shown in Figures 23 and 24, the first example of which shows "LM old" encoding, and the second example shows "LM new" encoding. In these two conditions, the dashed line indicates the distribution of the intermediate states as a result of the lower page programming, wherein the lower page writes using fast pass writes in both LM codes are performed similarly to the lower page programming described above. The upper page programming then moves the cell from the middle distribution to the final target state of the B or C distribution and programs the E distribution of the cell from the "11" state to the A distribution with the "01" data. The use of fast pass write top page writes in two LM codes is similar to the upper page program described above with respect to conventional coding, with the difference that since state B and state C are from intermediate states (dashed lines), the lower page is also Will be blocked.

對於LM編碼之兩種變型而言,雖然以相同方式進行快速通過寫入,但是其中切換狀態之驗證以使得由於兩位元被不同地分配給四種狀態從而使得B_new=C_old且B_old=C_new。如同由習知編碼所引起之改變一樣,此改變由通用處理器500來實現。經由通用處理器500之資料傳送邏輯將取決於編碼且因此其將不同。For the two variants of LM coding, although the fast pass write is performed in the same manner, the verification of the switching state is such that B_new = C_old and B_old = C_new because the two bits are differently assigned to the four states. This change is implemented by the general purpose processor 500 as is the change caused by the conventional encoding. The data transfer logic via the general purpose processor 500 will depend on the encoding and therefore it will be different.

LM編碼之上部頁編程演算法亦與全序列快速通過寫入演算法類似,其類似之處在於VH封鎖資料皆在VH驗證之後被更新。對於LM舊編碼而言,若將下部頁與上部頁編碼進行切換,則上部頁亦與在習知編碼中一樣,在該狀況中,LM舊編碼中之上部頁與全序列編程相同。The LM code upper page programming algorithm is also similar to the full sequence fast pass write algorithm, which is similar in that the VH blockade data is updated after VH verification. For the LM old encoding, if the lower page is switched with the upper page encoding, the upper page is also the same as in the conventional encoding, in which case the upper page of the LM old encoding is identical to the full sequence programming.

圖25以類似於圖22及以上其他類似圖式之方式再次展示資料鎖存器及其LM編碼之分配。將下部頁資料讀取至DL0 434-0中,將基於VH之上部頁封鎖資料保持於DL1 434-1中,並將用於控制快速通過寫入技術之相移的VL封鎖資料再次分配給DL2 434-2。Figure 25 again shows the allocation of the data latch and its LM code in a manner similar to Figure 22 and other similar figures. The lower page data is read into DL0 434-0, the data based on the VH upper page is kept in DL1 434-1, and the VL block data for controlling the phase shift of the fast write technology is again distributed to DL2. 434-2.

由於C狀態上不存在額外狀態,故該情形與二元狀況類似,其類似之處在於重要成果是充分良好地將C分佈與其下方之分佈界定開,但是過度編程並非主要利害關係(至少直到狀態判定)。因此,對於A及B狀態而言較佳使用快速通過寫入,但是對於C狀態而言不使用快速通過寫入而僅使用此狀態之VH位準。(對於具有其他數目之狀態的記憶體而言,此等說明適用於最高能態(lying state)或更確切地說大多數經編程之狀態)。Since there is no additional state in the C state, this situation is similar to the binary state, and the similarity is that the important result is that the C distribution is well defined with the distribution below it, but over programming is not a major interest (at least until the state determination). Therefore, fast pass writes are preferred for the A and B states, but for the C state, fast pass writes are used and only the VH level of this state is used. (For memory with other numbers of states, these instructions apply to the highest lying state or, more specifically, the most programmed state).

舉例而言,若所有三種狀態皆使用快速通過寫入,則編程及驗證的建構通常較簡單:對於所有三種狀態而言皆以相同方式進行;然而,因為C狀態分佈可為寬且仍具有可接受之範圍,所以對於C狀態而言可省略快速通過寫入以縮短編程時間。For example, if all three states use fast pass writes, the programming and verification are usually simpler to construct: the same way for all three states; however, because the C state distribution can be wide and still The range is accepted, so for the C state, fast pass writes can be omitted to shorten the programming time.

如所提及,對於較低狀態而言使用快速通過寫入(QPW)但是對於C狀態而言不使用快速通過寫入可使編程演算法複雜化。舉例而言,在寫入過程之特定點,編程脈衝之後是驗證A(具有QPW)、驗證B(具有QPW)及驗證C(無QPW),接著為另一編程脈衝。由於以上所描述之快速通過寫入演算法為編程脈衝使用了兩次資料傳送(第一資料傳送用以封鎖VH且第二資料傳送用以封鎖VL),故第一資料傳送對於三種狀態皆無問題;但是在以上配置下,第二傳送將使得狀態C產生編程錯誤。因為狀態C將不在較低位準驗證VCL,所以不為此位元線更新DL2 434-2資料鎖存器。若需要在通過C狀態的高VCH驗證位準之後封鎖此位元線,則VH封鎖資料鎖存器將傳送"1"至SA資料鎖存器以在第一資料傳送之後用於編程抑制。然而,VL資料鎖存器(DL2 434-2)仍將保持資料,因為不存在驗證結果以將其更新。因此,第二資料傳送將傳送"0"至位元線之DLS 603。此將導致預充電之位元線被放電至0,從而引起此位元線過度編程。As mentioned, using fast pass write (QPW) for lower states but not fast pass writes for C states can complicate the programming algorithm. For example, at a particular point in the write process, the programming pulse is followed by verify A (with QPW), verify B (with QPW), and verify C (without QPW), followed by another programming pulse. Since the fast-passing write algorithm described above uses two data transfers for the programming pulse (first data transfer to block VH and second data transfer to block VL), the first data transfer has no problem for all three states. However, in the above configuration, the second transfer will cause state C to generate a programming error. Since state C will not verify the VCL at a lower level, the DL2 434-2 data latch is not updated for this bit line. If the bit line needs to be blocked after passing the high VCH verify level of the C state, the VH blocked data latch will transmit a "1" to the SA data latch for program inhibit after the first data transfer. However, the VL data latch (DL2 434-2) will still hold the data because there is no verification result to update it. Therefore, the second data transfer will transmit "0" to the bit line DLS 603. This will cause the precharged bit line to be discharged to zero, causing this bit line to be over programmed.

為了克服此問題,當快速通過寫入不用於C狀態時,該演算法藉由使用在VCH之高位準的C驗證來更新VL資料鎖存器(DL2 434-2)來修正。因此,若對於在VCH之C位準而言單元通過驗證,則VH與VL封鎖資料皆將變成"1"且編程將受到抑制。又,若A與B狀態完成寫入而C狀態未完成,則編程演算法可切換成無快速通過寫入或無QPW演算法之標準編程,因為僅留下C狀態且其將僅使用對應VH驗證位準。在此狀況下,將僅進行(VH位準之)單一資料傳送(未使用VL位準)。To overcome this problem, when the fast pass write is not used for the C state, the algorithm is modified by updating the VL data latch (DL2 434-2) using C-verification at the high level of the VCH. Therefore, if the unit passes the verification at the C level of the VCH, both the VH and VL blocking data will become "1" and the programming will be suppressed. Also, if the A and B states complete writing and the C state is not complete, the programming algorithm can switch to standard programming without fast pass or no QPW algorithm because only the C state is left and it will only use the corresponding VH Verify the level. In this case, only a single data transfer (VH level) will be performed (the VL level is not used).

編程失敗之後資料回復Data recovery after programming failure

在複數狀態記憶體中,一種儲存資料方式係按獨立頁來寫入記憶體,使得(在四種狀態實例中)每一2位元記憶體單元儲存來自上部頁的一位元及來自下部頁的一位元。普通配置係寫入下部頁資料且一段時間之後,在單獨過程中寫入上部頁。當上部頁之編程失敗時,下部頁資料之資料內容亦丟失。在本發明之主要態樣中,下部頁與上部頁資料皆可被回復並複製至另一位置,而無需在控制器上維護資料緩衝器之複本或需要來自控制器之其他幫助。此允許控制器上之緩衝器被釋放以用於其他資料,或允許減少控制器上待減少之緩衝器數量,其可為有價值空間。詳言之,可由記憶體之控制電路(310)中之狀態機(圖7A中之312)及感測放大器區域中之資料鎖存器(圖8及圖15中之430)在記憶體上實現該過程。應注意,雖然描述係基於此特定實施例,但是此部分中所論述之本發明之態樣僅依賴於資料鎖存器DL0 434-0及DL1 434-1(其對應於例示性實施例中之每單元所儲存之兩位元),且不需要使用DL2 434-2。隨著記憶體系統中所使用之頁大小繼續增大,所得改良甚至更大。In the complex state memory, a method of storing data is written to the memory in separate pages, such that (in the four state instances) each 2-bit memory cell stores one bit from the upper page and from the lower page. One yuan. The normal configuration writes the lower page data and after a while, writes to the upper page in a separate process. When the programming of the upper page fails, the data content of the lower page data is also lost. In the main aspect of the invention, both the lower page and the upper page material can be retrieved and copied to another location without having to maintain a copy of the data buffer on the controller or require additional assistance from the controller. This allows the buffer on the controller to be released for use in other materials, or to allow the number of buffers to be reduced on the controller to be reduced, which can be a valuable space. In detail, it can be implemented on the memory by the state machine in the memory control circuit (310) (312 in FIG. 7A) and the data latch in the sense amplifier region (430 in FIG. 8 and FIG. 15). The process. It should be noted that although the description is based on this particular embodiment, the aspects of the invention discussed in this section rely only on data latches DL0 434-0 and DL1 434-1 (which correspond to the exemplary embodiments) Two digits stored per unit), and DL2 434-2 is not required. As the page size used in memory systems continues to increase, the resulting improvements are even greater.

更具體言之,當在一實體單元上編程2位元或更多位元時,若寫入失敗,則相同資料應能被編程至另一位置而非丟失。當兩個(或更多)位元經配置於獨立頁中時所產生的問題是用以編程之一頁的失敗將影響先前編程至相同實體位置上之其他頁上的資料。舉例而言,在習知編碼(圖20)中,處於C之上部頁狀態"0"來自E狀態,以使得若其未能編程至C狀態,則其可處於E狀態與C狀態之間的任何地方且亦可能丟失下部頁資訊。由於可能很早之前下部頁已被編程為不同資料集之部分,因此亦可能丟失下部頁資訊。More specifically, when programming a 2-bit or more bit on a physical unit, if the write fails, the same data should be able to be programmed to another location instead of being lost. A problem that arises when two (or more) bits are configured in a separate page is that the failure to program one page will affect the data previously programmed to other pages on the same physical location. For example, in the conventional encoding (Fig. 20), the page state "0" above C is from the E state, so that if it fails to program to the C state, it can be between the E state and the C state. The information on the lower page may also be lost anywhere. The lower page information may also be lost because the lower page may have been programmed to be part of a different data set long ago.

考慮以兩頁來配置2位元的習知編碼實例,如圖26a中所示。此圖展示陣列700之一陣列或一部分及若干代表性字線,其中虛線指示兩頁可在例示性所有位元線架構中一起被寫入。頁0、1是下部頁且2、3是上部頁字線701。(0、1係寫於線上以指示其先被寫入,與其命名方式稍微相反)。若隨後頁2、3被編程而具有超出ECC修復能力的錯誤,則不僅頁2、3資料需要被編程,而且頁0、1資料亦需要被重新編程至另一位置。Consider a conventional encoding example of a 2-bit configuration in two pages, as shown in Figure 26a. This figure shows an array or portion of array 700 and a number of representative word lines, where dashed lines indicate that two pages can be written together in an exemplary all bit line architecture. Pages 0 and 1 are lower pages and 2 and 3 are upper page word lines 701. (0, 1 is written on the line to indicate that it is written first, as opposed to its naming scheme). If pages 2 and 3 are subsequently programmed to have errors that exceed ECC repair capabilities, not only pages 2 and 3 need to be programmed, but pages 0 and 1 need to be reprogrammed to another location.

較低-中間(LM)編碼(圖23及圖24)經設計以減少位元線至位元線及字線至字線的耦合效應。圖26b中展示頁配置。在此狀況中,與頁0、1共用字線701之上部頁現在是4、5而非2、3。當頁4、5被錯誤寫入且驗證失效時,頁0、1亦將需要被校正。由於上部頁之頁號碼與相同字線上之下部頁並非連續的,故使用者將不保持下部頁資訊以使得此等頁能被重新編程。The lower-middle (LM) coding (Figs. 23 and 24) is designed to reduce the coupling effects of bit line to bit line and word line to word line. The page configuration is shown in Figure 26b. In this case, the upper page of the word line 701 shared with page 0, 1 is now 4, 5 instead of 2, 3. When pages 4, 5 are erroneously written and the verification fails, pages 0, 1 will also need to be corrected. Since the page number of the upper page is not continuous with the lower page on the same word line, the user will not maintain the lower page information so that the pages can be reprogrammed.

如可參看圖24看出,LM下部頁亦受上部頁編程失敗破壞。此是由於下部頁未被初始編程至B位準而是至具有虛線A位準的分佈所引起。若下部頁被初始編程為B驗證位準,則上部頁失敗將不影響下部頁資料之完整性,但是快速下部頁編程之優勢將被排除。若即使上部頁編程失敗,亦可回復下部頁資料,則其將再次成為巨大優勢。若上部頁編程資料仍處於控制器資料緩衝器中,且若下部頁被保留,則其可被組合並複製至另一良好WL。不良資料將用於整個字線,可(使用旗標)將該等資料標記為不良的。然而,此不要求將資料維護於控制器上。圖27示意性展示此。As can be seen with reference to Figure 24, the lower page of the LM is also corrupted by the upper page programming failure. This is due to the fact that the lower page is not initially programmed to the B level but to the distribution with the dotted line A level. If the lower page is initially programmed to the B verify level, the failure of the upper page will not affect the integrity of the lower page data, but the advantages of fast lower page programming will be eliminated. If the upper page data can be replied even if the upper page fails to be programmed, it will once again become a huge advantage. If the upper page programming data is still in the controller data buffer, and if the lower page is retained, it can be combined and copied to another good WL. Bad data will be used for the entire word line, and the data can be marked as bad (using the flag). However, this does not require maintenance of the data on the controller. Figure 27 shows this schematically.

圖27係展示在自主機接收且被編程至記憶體陣列300中時資料流的示意性圖式。首先在控制器801(通常與記憶體811上之控制電路310(圖7A)不同)處接收資料,該控制器801含有一些數量之快取記憶體803以用於緩衝其所收集之資料並隨後將該等資料傳送至記憶體811上。由於此緩衝器記憶體之成本及區域的空間通常昂貴,故較佳不具有多於所需之此記憶體;然而,此係典型記憶體操作中之此緩衝需要所要求,其中控制器空間之顯著部分可專用於緩衝器記憶體。此隨頁大小增加而尤其正確。隨後將資料自控制器801傳送至記憶體811中以傳送至讀取/寫入電路370的資料鎖存器,可將資料自該電路寫入至記憶體陣列300中。Figure 27 is a schematic diagram showing the flow of data as it is received from the host and programmed into the memory array 300. Data is first received at controller 801 (typically different from control circuit 310 (Fig. 7A) on memory 811) which contains a number of cache memories 803 for buffering the data it collects and subsequently The data is transferred to the memory 811. Since the cost of the buffer memory and the space of the area are usually expensive, it is preferable not to have more than the required memory; however, this buffering is required in typical memory operations, where the controller space A significant portion can be dedicated to the buffer memory. This is especially true as the page size increases. The data is then transferred from controller 801 to memory 811 for transfer to the data latch of read/write circuit 370 from which data can be written to memory array 300.

在先前配置下,為了在編程失敗狀況下確保資料完整性,因為寫入電路370之鎖存器中的複本在寫入過程中丟失,所以需要將資料之複本維護於緩衝器803中之控制器上。根據本發明之一主要態樣,基於與一或多個讀取過程組合之鎖存器的剩餘內容,能夠在記憶體811上重新建構資料而無需借助於在控制器801中維護複本。隨後可將重新建構之資料寫入陣列300之另一位置。此允許緩衝器803被釋放以用於新資料或用於其他用途,或甚至允許減少緩衝器數量,因為該等緩衝器中不需要維護同樣多資料。In the previous configuration, in order to ensure data integrity in the event of a programming failure, since the replica in the latch of write circuit 370 is lost during the write process, a copy of the data needs to be maintained in the controller in buffer 803. on. In accordance with one aspect of the present invention, data can be reconstructed on memory 811 based on the remainder of the latch combined with one or more read processes without having to maintain a copy in controller 801. The reconstructed material can then be written to another location in array 300. This allows the buffer 803 to be freed for new data or for other uses, or even to allow for a reduction in the number of buffers since there is no need to maintain the same amount of data in the buffers.

美國專利申請案序號11/013,125(2004年12月14日申請)中描述該基本過程,其在以上以引用之方式併入本文中且本申請案為其之部份接續申請案。"Overlapped Programming of Upper and Lower MLC Pages"部分中,申請案描述自僅寫入下部頁資料切換至同時寫入上部頁與下部頁資料的能力。如彼處所描述,且如以下進一步開發,即使在隨後狀態C之編程期間存在編程失敗且吾人需要重新寫入資料,控制器亦不需要將頁n之新資料傳送至記憶體;吾人仍具有下部頁資料,且吾人可藉由簡單地讀取使用VR B 臨限值(參看圖10C)之單元狀態來回復上部頁資料。在此事件中,錯誤將被報告至控制器,下部頁n+1之所接收資料將被丟棄,且頁n之所回復資料將被寫入至由控制器所指向之新位置。This basic process is described in the U.S. Patent Application Serial No. 11/013, filed on Jan. 14, 2004, which is hereby incorporated by reference in its entirety in its entirety in its entirety in its entirety in its entirety in In the "Overlapped Programming of Upper and Lower MLC Pages" section, the application describes the ability to switch from writing only the lower page data to simultaneously writing the upper and lower page data. As described elsewhere, and as further developed below, even if there is a programming failure during the programming of subsequent state C and we need to rewrite the data, the controller does not need to transfer the new data of page n to the memory; we still have the lower part Page information, and we can reply to the upper page by simply reading the cell status using the V R B threshold (see Figure 10C). In this event, the error will be reported to the controller, the received data of the lower page n+1 will be discarded, and the reply data of page n will be written to the new location pointed to by the controller.

首先返回習知編碼(圖20),且當首先寫入下部頁接著寫入上部頁時,描述了資料回復過程之例示性實施例。The conventional encoding is first returned (Fig. 20), and an exemplary embodiment of the data recovery process is described when the lower page is first written and then the upper page is written.

圖28中展示以單一頁編程模式之鎖存器分配。在習知編碼中之單一頁編程模式中,鎖存器DL0 434-0係用於保持下部頁資料以防止在開始上部頁編程之前感測下部頁。可用若干方式處理由極緩慢位元所引起之上部頁失敗狀況:1)可雙態觸發此下部頁資訊;2)可將資訊傳送至DL1 434-1,並隨後編程至另一字線;或3)可將控制器之緩衝器803中之對應上部頁移入至讀取/寫入電路370中且可在下一字線中開始2位元編程(全序列編程)。The latch assignment in a single page programming mode is shown in FIG. In the single page programming mode in conventional encoding, latch DL0 434-0 is used to hold the lower page material to prevent sensing of the lower page before starting the upper page programming. The upper page failure condition caused by very slow bits can be handled in several ways: 1) the lower page information can be triggered in two states; 2) the information can be transferred to DL1 434-1 and then programmed to another word line; or 3) The corresponding upper page in the buffer 803 of the controller can be moved into the read/write circuit 370 and 2-bit programming (full sequence programming) can be started in the next word line.

為了節省資料傳送時間,通常較佳的是在上部頁編程失敗之後亦回復上部頁資料。In order to save data transfer time, it is generally preferred to reply to the upper page data after the upper page fails to be programmed.

圖29展示其中下部頁資料處於編程中且將被用作資料回復之第一實例的狀況。若記憶體待編程為A狀態(下部頁資料"0"),則成功寫入將在A狀態驗證位準驗證且將其置於A分佈中之某處。若單元無法驗證,則其可處於E狀態分佈與A分佈之下端之間的任何地方。當用readA之值來讀取時,若其高於readA(即使其無法驗證),則仍可將其讀作A狀態(將"1"返回至感測放大器)。若相反其處於readA位準以下某處(如由X所展示),則感測放大器將返回"0"且將單元錯誤地讀作E狀態。圖30之表格中總結該過程,其假定未編程之資料(亦即,無法驗證)將使得"0"保留於資料鎖存器中,如線(1)中所展示。若單元已完成編程,且成功驗證,則其將在資料鎖存器中改為具有"1"。Figure 29 shows a situation in which the lower page material is in programming and will be used as the first instance of data recovery. If the memory is to be programmed to the A state (lower page data "0"), the successful write will be verified in the A state verification level and placed somewhere in the A distribution. If the unit cannot be verified, it can be anywhere between the E-state distribution and the lower end of the A-distribution. When read with the value of readA, if it is higher than readA (even if it cannot be verified), it can still be read as A state (return "1" to the sense amplifier). If instead it is somewhere below the readA level (as shown by X), the sense amplifier will return "0" and the unit will be mistakenly read as the E state. The process is summarized in the table of Figure 30, which assumes that unprogrammed data (i.e., cannot be verified) will cause "0" to remain in the data latch, as shown in line (1). If the unit has been programmed and successfully verified, it will change to "1" in the data latch.

在圖30中,頂部線對應於將要被寫入單元中之下部頁資料且假定存在寫入失敗以使得將被寫為A狀態之一些單元處於readA以下,如圖29之X所展示。資料回復以正常readA邏輯開始,DL1 434-1=~SA,其中圖30之線(2)展示結果。(此論述假設DL1 434-1係維護編程封鎖資訊之資料鎖存器且符號~SA意謂SA資料之反向資料且"&"意謂邏輯及(AND)。由於X在readA以下,故線(2)為兩目標資料狀態皆讀取1。經回復之資料(線(3))係線(1)及(2)之邏輯及:DL1 434-1=~SA & DL1 434-1。In FIG. 30, the top line corresponds to the lower page data to be written in the cell and it is assumed that there is a write failure such that some cells to be written as the A state are below readA, as shown in X of FIG. The data reply starts with the normal readA logic, DL1 434-1=~SA, where line (2) of Figure 30 shows the result. (This discussion assumes that DL1 434-1 maintains the data latch for programming blockade information and the symbol ~SA means the reverse data of the SA data and the "&" means the logical AND (AND). Since X is below readA, the line (2) Read 1 for both target data states. The recovered data (line (3)) is the logical sum of lines (1) and (2): DL1 434-1=~SA & DL1 434-1.

在上部頁編程失敗之狀況下,需要為B與C狀態考慮以下編程。上部頁資料之回復使用相同邏輯來校正習知編碼中之B與C錯誤並在圖31中進行展示。該過程假定下部頁正確完成寫入。雖然下部頁將受上部頁失敗破壞,但是下部頁良好資料仍完整,因為其在上部頁編程之前讀取鎖存器。因此,僅需要回復上部頁且隨後可在另外某處重新編程下部頁與上部頁。In the case where the upper page programming fails, the following programming needs to be considered for the B and C states. The reply to the upper page data uses the same logic to correct the B and C errors in the conventional code and is shown in FIG. This procedure assumes that the lower page completes the write correctly. Although the lower page will be corrupted by the upper page failure, the lower page good data is still intact because it reads the latch before the upper page is programmed. Therefore, only the upper page needs to be replied and the lower and upper pages can then be reprogrammed somewhere else.

B狀態之標準讀取過程由以下提供:正常readB:DL1=readB=~SA。The standard read process for the B state is provided by: normal readB: DL1 = readB = ~ SA.

回復過程將由以下步驟組成:回復readB邏輯:DL1=~SA AND DL。The reply process will consist of the following steps: Reply to readB logic: DL1=~SA AND DL.

此等式展示DL1中所維護之編程資料將與感測放大器(SA)中處於B狀態之讀取資料組合。邏輯係來自SA(readB結果)之資料的反向資料與DL1中之剩餘資料的邏輯及。經邏輯組合之資料將被儲存回至DL1。This equation shows that the programming data maintained in DL1 will be combined with the read data in the B state in the sense amplifier (SA). The logic is the logical sum of the reverse data from the SA (readB result) data and the remaining data in DL1. The logically combined data will be stored back to DL1.

如圖31中所展示,此將校正B與C錯誤,因為皆需要被視作失敗寫入的B與C錯誤可使單元處於E與C分佈之間的任何地方。圖31之頂部線展示目標資料狀態且新線展示被讀入至DL0 434-0中之下部頁資料。線(1C)指示"01"狀態未成功完成編程且"0"保留於DL1中。狀態之剩餘部分已完成編程,使得"1"被保留於DL1中。在B位準(2C)感測字線之後,結果將被儲存於感測放大器SA中。可經由處理器500來進行邏輯反向,如圖25中所展示。行(3C)係將SA結果與先前DL1組合的邏輯AND運算之後的結果。行(3C)展示關於所有4種狀態之正確上部頁編碼。As shown in Figure 31, this will correct B and C errors because both B and C errors that need to be treated as failed writes can place the cell anywhere between the E and C distributions. The top line of Figure 31 shows the target data status and the new line display is read into the lower page of DL0 434-0. Line (1C) indicates that the "01" state did not successfully complete programming and "0" remains in DL1. The remainder of the state has been programmed so that "1" is retained in DL1. After the B level (2C) sense word line, the result will be stored in the sense amplifier SA. Logic inversion can be performed via processor 500, as shown in FIG. Line (3C) is the result of the logical AND operation combining the SA result with the previous DL1. Line (3C) shows the correct upper page encoding for all four states.

在圖31中所展示之兩種狀況中,最終行(2C、3C)產生正確上部頁資料("1"用於E及A狀態,"0"用於B及C狀態)。行(1B)至(3B)展示編程失敗情況下回復B位元之狀況。行(1B)中之編碼係當B狀態未完成編程時的剩餘資料。B狀態("00"狀態)中存在"0"。在與用於"01"狀態回復邏輯之完全相同的程序之後,使用邏輯AND運算將B感測結果與DL1中之剩餘資料組合。最終結果係儲存回至DL1中。行(3B)係用於所有4種狀態之上部頁的正確編碼。此說明回復邏輯可應用於編程失敗情況下的B與C上。在記憶體資料回復操作中,狀態機並非通常能明白失敗模式。因此,僅在需要一邏輯等式來在編程失敗情況下回復所有可能時,其為可行。In the two conditions shown in Figure 31, the final line (2C, 3C) produces the correct upper page data ("1" for E and A states, "0" for B and C states). Lines (1B) through (3B) show the status of the reply B bit in the case of a programming failure. The code in line (1B) is the remaining data when the B state is not programmed. "0" exists in the B state ("00" state). After the exact same procedure as for the "01" state reply logic, the B sensed result is combined with the remaining data in DL1 using a logical AND operation. The final result is stored back in DL1. Line (3B) is used for proper encoding of the top pages of all four states. This description of the reply logic can be applied to B and C in the case of programming failures. In the memory data recovery operation, the state machine does not usually understand the failure mode. Therefore, it is only feasible when a logical equation is needed to recover all possibilities in the event of a programming failure.

當同時編程兩個(或更多)位元時亦可建構以下發明。甚至在上部頁/下部頁配置中,2位元編程可作為下部頁至全序列轉換的一部分而發生,諸如美國專利申請案序號11/013,125("Overlapped Programming of Upper and Lower MLC Pages"部分)中所描述,或當編程失敗之後,同時將上部頁與下部頁寫入至新位置。2位元回復邏輯亦可用於配置成該等2位元位於相同頁上的系統中。The following invention can also be constructed when two (or more) bits are programmed simultaneously. Even in the upper page/lower page configuration, 2-bit programming can occur as part of the lower page to full sequence conversion, such as in U.S. Patent Application Serial No. 11/013,125 ("Overlapped Programming of Upper and Lower MLC Pages"). As described, or when programming fails, the upper and lower pages are simultaneously written to the new location. The 2-bit reply logic can also be used to configure the two bits to be on the same page.

在全序列編程中,寫入錯誤可在下部頁與上部頁資料上發生。圖32中展示例示性實施例之鎖存器分配並再次使用習知編碼。下部頁與上部頁資料皆需要被回復,且之後可在E與C分佈之間的任何地方結束失敗寫入。只要以習知編碼來編碼資料,則可由與用於單一頁狀況相同之讀取邏輯來回復全序列狀況。需要檢查若干組合,如圖33中所展示。如前所述,"單元資料"標題指的是以"上部頁、下部頁"格式之E、A、B及C目標狀態。In full sequence programming, write errors can occur on the lower and upper page data. The latches of the exemplary embodiment are shown in Figure 32 to allocate and reuse conventional encodings. Both the lower page and the upper page data need to be replied, and then the failed write can be ended anywhere between the E and C distributions. As long as the data is encoded in a conventional encoding, the full sequence condition can be replied to by the same reading logic as used for a single page. Several combinations need to be checked, as shown in Figure 33. As mentioned above, the "unit data" title refers to the E, A, B, and C target states in the "upper page, lower page" format.

在習知編碼中,下部頁資料之正常讀取係(readA OR~readC);亦即,readA結果與readC結果之反向結果進行邏輯或(OR),其中readA與readC(及readB)係來自感測放大器之資料的反向資料(~SA)。正常上部頁讀數正好為readB。In the conventional encoding, the normal reading of the lower page data (readA OR~readC); that is, the reverse result of the readA result and the readC result is logical OR (OR), where readA and readC (and readB) are from Reverse data (~SA) of the data of the sense amplifier. The normal upper page reads exactly readB.

在寫入錯誤之狀況下,以下步驟集可用於回復資料。以下假定下部頁資料處於DL1 434-1中且上部頁資料處於DL0 434-0中。上部頁回復讀數再次為:(i)readB;(ii)readB&DL0 → DL0;此將readB結果與DL0 434-0剩餘資料進行組合並將結果儲存於DL0 434-0中。下部頁回復將需要readA與readC回復:(i)readA;(ii)readA AND DL1 → DL1;此步驟將readA結果與DL1 434-1剩餘資料進行組合(AND邏輯)並將結果儲存於DL1 434-1中。In the case of a write error, the following set of steps can be used to reply to the data. It is assumed below that the lower page data is in DL1 434-1 and the upper page data is in DL0 434-0. The upper page returns the reading again as: (i) readB; (ii) readB&DL0 → DL0; this combines the readB result with the DL0 434-0 residual data and stores the result in DL0 434-0. The lower page reply will require readA and readC replies: (i) readA; (ii) readA AND DL1 → DL1; this step combines the readA result with the remaining data of DL1 434-1 (AND logic) and stores the result in DL1 434- 1 in.

(iii)readC;(iv)~readC| DL1 |(~DL0 & DL1) → DL1。(iii) readC; (iv)~readC| DL1 |(~DL0 & DL1) → DL1.

此步驟將反向readC結果與DL1 434-1先前資料進行組合(OR邏輯)且亦檢查位元是否為01並將結果儲存於DL1 434-1中。此處readC資料及DL1 434-1資料不足以回復原始資料。必須藉由使用AND邏輯(~DL0 & DL1)檢查DL1 434-1與DL0 434-0來確認失敗之C狀態。(在圖33中將此展示為步驟5',僅在某些情況下將其清楚地展示於彼處。)This step combines the reverse readC result with the DL1 434-1 previous data (OR logic) and also checks if the bit is 01 and stores the result in DL1 434-1. The readC data and DL1 434-1 data here are not enough to reply to the original data. The failed C state must be confirmed by checking the DL1 434-1 and DL0 434-0 using the AND logic (~DL0 & DL1). (This is shown as step 5' in Figure 33, and is shown clearly in some cases only in some cases.)

在此過程結束時,下部頁資料將已被儲存於DL1 434-1中(步驟6)且上部頁資料將已被儲存於DL0 434-0中(步驟4)。At the end of this process, the lower page data will have been stored in DL1 434-1 (step 6) and the upper page data will have been stored in DL0 434-0 (step 4).

圖33展示用於各種狀況之此等步驟的結果。在每一情況下,行4展示經回復之上部頁資料且行6展示經回復之下部頁資料。在表格中將邏輯或(OR)表示為|(例如,readA|~readC係readA OR~readC)。在表格指示"0/1"之處,此指示可視單元是否存在而返回任一結果。僅在C錯誤狀況中展示步驟5'。由於狀態機通常不能明白已發生何種類型之錯誤,故C錯誤狀況中所進行之額外邏輯運算亦適用於具有其他錯誤之狀況,儘管在此並不需要該運算。因此,所有邏輯運算適用於本文所列出之所有狀況。為簡單起見,在許多狀況中並未清楚展示步驟(5'),因為額外邏輯運算自表格中所列出之資料將不產生不同結果。Figure 33 shows the results of these steps for various conditions. In each case, line 4 shows the reply to the top page and line 6 shows the page under the reply. The logical OR (OR) is expressed as | in the table (for example, readA|~readC is readA OR~readC). Where the table indicates "0/1", this indicates whether the visual unit is present and returns any result. Step 5' is only shown in the C error condition. Since the state machine usually cannot understand what type of error has occurred, the additional logic operations performed in the C error condition also apply to situations with other errors, although this operation is not required here. Therefore, all logic operations apply to all of the conditions listed in this article. For the sake of simplicity, step (5') is not clearly shown in many cases, as additional logic operations from the data listed in the table will not produce different results.

在圖33中,以對應於實例之三種編程狀態的次序來展示各種狀況:當readA過程通過且隨後當其失敗時,A狀態錯誤、接著為B狀態錯誤、接著為C狀態錯誤。以圖33中之步驟的次序,應注意,以狀態(A、B、C)之次序來進行各種讀取過程,且因此,上部頁回復步驟屬於下部頁回復步驟之中間;亦即,步驟(1)、(2)、(5)及(6)分別對應於以上所描述之下部頁回復之步驟(i)至(iv),其中(3)及(4)對應於上部頁回復之(i)及(ii)。In Figure 33, various conditions are shown in an order corresponding to the three programming states of the example: when the readA process passes and then when it fails, the A state is incorrect, followed by the B state error, followed by the C state error. In the order of the steps in Fig. 33, it should be noted that various reading processes are performed in the order of states (A, B, C), and therefore, the upper page reply step belongs to the middle of the lower page reply step; that is, the step ( 1), (2), (5), and (6) correspond to steps (i) to (iv) of the lower page reply described above, respectively, wherein (3) and (4) correspond to the upper page reply (i) ) and (ii).

假定A狀態錯誤之狀況,DL0中之上部頁資料將皆為1,其中DL1中剩餘之下部頁資料在A("10")槽中具有錯誤的0。在步驟(1)中,readA結果將為"10"狀態產生1,當藉由邏輯將其與DL1內容組合時,引至行(2)。下部頁資料回復在步驟(5)繼續readC,隨後在行(6)根據邏輯將readC與步驟(2)之結果組合以回復下部頁資料。在行(4)中提供上部頁資料,其中因為錯誤是為本文之A狀態而假定,所以省略步驟(3)。Assuming the status of the A state is wrong, the upper page data in DL0 will all be 1, where the remaining lower page data in DL1 has the wrong 0 in the A ("10") slot. In step (1), the readA result will be 1 for the "10" state, and when combined with the DL1 content by logic, it is directed to row (2). The lower page data reply continues readC in step (5), and then combines the results of step C and step (2) according to logic in line (6) to reply to the lower page data. The upper page material is provided in line (4), wherein step (3) is omitted because the error is assumed for the A state herein.

假定B錯誤之狀況在DL0與DL1之"00"槽中產生不正確的0。在步驟(1)中,readA可視單元在何處結束而產生1或0:在任一狀況下,邏輯為行(2)中的"00"欄提供0。步驟(3)中繼續進行readB,從而為"00"產生1,從而當根據邏輯而與DL0組合時在步驟(4)中提供經回復之上部頁資料。返回至步驟(5)中之下部頁回復,獲取readC之結果並在步驟(6)中將其組合以提供正確的下部頁資料。Assume that the condition of the B error produces an incorrect zero in the "00" slots of DL0 and DL1. In step (1), the readA visual unit ends where 1 or 0 is generated: in either case, the logic provides zero for the "00" column in row (2). In step (3), readB is continued, thereby generating 1 for "00", thereby providing a reply to the upper page material in step (4) when combined with DL0 according to logic. Returning to the lower page reply in step (5), the results of readC are obtained and combined in step (6) to provide the correct lower page material.

假定C狀態錯誤,DL0中之上部頁資料在"01"行中將具有錯誤的0。假定readA運算通過,步驟(1)及(2)將為關於四種狀態正確地具有(1、0、0、0)。然而,在步驟(3)中,視單元使其距離多遠,其可在readB位準以下或以上結束且可為"01"欄提供1或0。在任一狀況下,邏輯將校正此且在行(4)中回復上部頁資料。返回至下部頁回復,因為假定錯誤處於C狀態,故步驟(5)為所有行提供0。因此,如以上所提及,在此情況下,readC資料及DL1 434-1資料不足以回復原始資料且步驟(5')係用於矯正此。隨後藉由使用AND邏輯(~DL0 & DL1)檢查DL1 434-1與DL0 434-0來確認失敗之C狀態,在步驟(6)中將其與行(2)組合以提供經回復之下部頁資料。Assuming a C-state error, the upper page data in DL0 will have an erroneous 0 in the "01" line. Assuming that the readA operation passes, steps (1) and (2) will correctly have (1, 0, 0, 0) for the four states. However, in step (3), the viewcell is how far it is, it can end below or above the readB level and can provide 1 or 0 for the "01" column. In either case, the logic will correct this and reply to the upper page data in line (4). Returning to the lower page reply, because it is assumed that the error is in the C state, step (5) provides zero for all rows. Therefore, as mentioned above, in this case, the readC data and the DL1 434-1 data are insufficient to reply to the original data and the step (5') is used to correct this. The C state of the failure is then confirmed by checking the DL1 434-1 and DL0 434-0 using the AND logic (~DL0 & DL1), which is combined with the row (2) in step (6) to provide a page after the reply. data.

假設C狀態錯誤且A狀態亦失敗(亦即,C錯誤使得單元僅得以編程於A狀態讀取位準以下),步驟(1)至(3)中每一者為"01"行提供錯誤的1。對於上部頁資料而言,如同前述之C失敗、A通過狀況一樣,在步驟(4)中回復正確資料。在步驟(5)中,readC再次為所有狀態提供0且需要藉由步驟(5')來矯正readC,從而在"01"欄中提供1,邏輯隨後將其遷移至行(6)及所回復之下部頁資料。Assuming that the C state is wrong and the A state also fails (ie, the C error causes the cell to be programmed only below the A state read level), each of steps (1) through (3) provides an error for the "01" row. 1. For the upper page data, the correct data is returned in step (4) as in the case of the aforementioned C failure and A pass condition. In step (5), readC again provides 0 for all states and needs to correct readC by step (5'), providing 1 in the "01" column, then migrating it to row (6) and replying Below the page information.

由於記憶體將意識到其以哪一編程模式(上部頁、下部頁或全序列)來操作,故當返回編程失敗時可選擇適當回復模式。在每一狀況下,回復過程涉及將鎖存器中剩餘之(失敗)驗證資料與一或多個讀數之結果進行組合。基於此等組合,隨後可僅使用資料鎖存器及狀態機而無需在控制器上(或一旦被載入鎖存器中,則在記憶體上)之緩衝器中維護資料之複本來在記憶體上回復正確資料。Since the memory will be aware of which programming mode (upper page, lower page, or full sequence) it is operating on, the appropriate reply mode can be selected when the return programming fails. In each case, the reply process involves combining the remaining (failed) verification data in the latch with the result of one or more readings. Based on these combinations, it is then possible to use only the data latches and state machines without having to maintain a copy of the data in the buffer on the controller (or on the memory once loaded into the latch) to remember Respond to the correct information.

現在描述用於"LM"編碼之程序,以圖23中所展示之"LM舊"編碼開始。在LM編碼中,頁次序通常為展示於圖26B中之次序,其中可比相同字線上之下部頁晚得多來對上部頁進行編程。因此,必須在上部頁編程開始時讀取下部頁資料。LM編碼中之上部頁編程將與習知編碼中之2位元編程狀況類似。The procedure for "LM" encoding is now described, starting with the "LM old" encoding shown in Figure 23. In LM encoding, the page order is typically the order shown in Figure 26B, where the upper page can be programmed much later than the lower page on the same word line. Therefore, the lower page data must be read at the beginning of the upper page programming. The top page programming in LM encoding will be similar to the 2-bit programming state in conventional encoding.

在LM舊編碼中,編碼與習知編碼類似,但是其中下部頁與上部頁交換:上部頁(LM舊編碼)=下部頁(習知的)。In the LM old coding, the coding is similar to the conventional coding, but the lower page is exchanged with the upper page: the upper page (LM old code) = the lower page (known).

下部頁(LM舊編碼)=上部頁(習知的)。Lower page (LM old code) = upper page (known).

上部頁正常讀數因此為readA |~readC;亦即,將readA結果與反向readC結果進行邏輯OR在一起以形成下部頁資料。下部頁正常讀數隨後為readB。因為編碼具有此類似性,所以回復方法亦與習知的相同。The upper page normal reading is therefore readA |~readC; that is, the readA result is logically ORed with the reverse readC result to form the lower page data. The normal reading of the lower page is followed by readB. Since the encoding has this similarity, the recovery method is also the same as the conventional one.

以下假定鎖存器分配為LM下部頁資料處於DL0 434-0中且上部頁處於DL1 434-1中。上部頁回復讀取:1)readA;2)readA AND DL1 → DL1;此步驟將readA結果與DL1 434-1剩餘資料(AND邏輯)組合並將結果儲存於DL1 434-1中。It is assumed below that the latch is allocated as the LM lower page data is in DL0 434-0 and the upper page is in DL1 434-1. The upper page replies to read: 1) readA; 2) readA AND DL1 → DL1; this step combines the readA result with the DL1 434-1 residual data (AND logic) and stores the result in DL1 434-1.

3)readC;4)readC| DL1 |(~DL0 & DL1) → DL1;將反向readC結果與DL1 434-1中之先前資料組合(OR邏輯),且亦檢查位元是否為01並將結果儲存於DL1 434-1中。此處readC資料及DL1資料不足以回復原始資料。必須由藉由使用AND邏輯(~DL0 434-0 & DL1 434-1)檢查DL1 434-1與DL0 434-0來確認失敗之C狀態。3) readC; 4) readC| DL1 | (~DL0 & DL1) → DL1; combine the reverse readC result with the previous data in DL1 434-1 (OR logic), and also check if the bit is 01 and the result Stored in DL1 434-1. Here the readC data and DL1 data are not enough to reply to the original data. The failed C state must be confirmed by checking DL1 434-1 and DL0 434-0 using AND logic (~DL0 434-0 & DL1 434-1).

下部頁回復讀取:1)readB;2)readB & DL0 → DL0;將readB結果與DL0 434-0剩餘資料組合並將結果儲存於DL0 434-0中。The lower page replies to read: 1) readB; 2) readB & DL0 → DL0; combines the readB result with the DL0 434-0 residual data and stores the result in DL0 434-0.

此步驟將readB結果與剩餘DL0 434-0資料組合並將結果儲存於DL0 434-0中。This step combines the readB result with the remaining DL0 434-0 data and stores the result in DL0 434-0.

3)若此字線中之上部頁未被編程,則將檢查LM旗標(指示是否以LM編碼來編程上部頁)並將執行readA。3) If the upper page of the word line is not programmed, the LM flag will be checked (indicating whether the upper page is programmed with LM code) and readA will be executed.

4)readA & DL0 → DL0。4) readA & DL0 → DL0.

此步驟將readA結果與剩餘DL0 434-0資料組合並將結果儲存於DL0 434-0中。This step combines the readA result with the remaining DL0 434-0 data and stores the result in DL0 434-0.

圖24中展示"LM新"編碼。在此編碼中,由(readA OR~readB)AND readC提供正常上部頁讀數;亦即,將首先使用OR邏輯將readA資料與反向readB資料組合,使用AND邏輯將所組合之結果進一步與readC結果組合。正常下部頁讀數正好為readB,因為儘管LM旗標需要被檢查,但是其具有LM舊編碼下部頁:在此編碼中,若上部頁未被編程且僅下部頁已被寫入至字線中,則改為使用readA。The "LM New" code is shown in Figure 24. In this encoding, the normal upper page reading is provided by (readA OR~readB) AND readC; that is, the readA data will be first combined with the reverse readB data using OR logic, and the combined result will be further combined with the readC result using AND logic. combination. The normal lower page reads exactly readB because, although the LM flag needs to be checked, it has the LM old code lower page: in this code, if the upper page is not programmed and only the lower page has been written to the word line, Then use readA instead.

程序再次假定鎖存器分配為LM下部頁資料處於DL0 434-0中且上部頁處於DL1 434-1中。下部頁之已回復資料與LM舊編碼的已回復資料相同且再次藉由以下獲得:readB AND DL1,其中DL1指的是剩餘DL1 434-1。上部頁之回復讀數對應於:((readA AND DL0)OR~readB OR(~DL0 AND DL1))AND readC AND(DL0 OR DL1)。The program again assumes that the latch is assigned to the LM lower page data in DL0 434-0 and the upper page is in DL1 434-1. The reply data of the lower page is the same as the reply data of the old code of LM and is obtained again by readB AND DL1, where DL1 refers to the remaining DL1 434-1. The response reading of the upper page corresponds to: ((readA AND DL0)OR~readB OR(~DL0 AND DL1)) AND readC AND(DL0 OR DL1).

當重複使用資料鎖存器時,此最後一等式含有運算次序;舉例而言,若將稍後之運算結果儲存回至DL0處,則應在(readA AND DL0)運算之前進行(~DL0 AND DL1)運算。在其他實施例中,運算(~DL0 AND DL1)結果可暫時儲存於另一資料鎖存器(諸如DL2)中,其可在必要時自該鎖存器與其他邏輯運算組合。圖34之表格展示用於在LM新編碼中之不同狀況下回復上部頁的過程的各種階段。When the data latch is reused, this last equation contains the order of operations; for example, if the result of the later operation is stored back to DL0, it should be done before the (readA AND DL0) operation (~DL0 AND DL1) operation. In other embodiments, the result of the operation (~DL0 AND DL1) may be temporarily stored in another data latch (such as DL2), which may be combined with other logic operations from the latch if necessary. The table of Figure 34 shows the various stages of the process for replying to the upper page under different conditions in the LM new encoding.

在圖34中,未展示一些步驟,尤其是當此等步驟產生不重要的結果時;舉例而言,DL0 OR DL1對於A錯誤而言是不重要的1(因為DL1對於所有狀況皆為1)且對於B錯誤而言是不重要的1(因為DL0對於所有情況皆為1)。在每一狀況下,上部頁之回復讀數係儲存於DL1中且下部頁資料(在編程演算法開始時被讀入)係儲存於DL0中。自A錯誤之狀況開始,在DL0中剩餘之資料的"01"欄中反映錯誤。在步驟(1)中,readA隨後在"01"欄中提供1,隨後在步驟(2)中藉由與DL0進行AND來校正其。步驟(4)隨後將~readB(來自步驟(3))與步驟(2)之結果組合,隨後在步驟(6)中將其進一步與readC(步驟(5))組合以獲得校正之上部頁資料。在此狀況中,未明確地計算表達式(~DL0 AND DL1)及(DL0 OR DL1),因為其不參與表達式。In Figure 34, some steps are not shown, especially when these steps produce unimportant results; for example, DL0 OR DL1 is not important for A errors 1 (because DL1 is 1 for all conditions) And it is not important for B error (because DL0 is 1 for all cases). In each case, the upper page's reply reading is stored in DL1 and the lower page data (read in at the beginning of the programming algorithm) is stored in DL0. Since the status of the A error, the error is reflected in the "01" column of the remaining data in the DL0. In the step (1), readA is then supplied with 1 in the "01" column, and then corrected in step (2) by ANDing with DL0. Step (4) then combines ~readB (from step (3)) with the result of step (2), and then further combines it with readC (step (5)) in step (6) to obtain correction of the upper page data. . In this case, the expressions (~DL0 AND DL1) and (DL0 OR DL1) are not explicitly calculated because they do not participate in the expression.

對於B錯誤之狀況而言,DL0現在對於"10"欄為0,其中DL1對於所有狀況而言再次為1。因此,(DL0 OR DL1)對於所有狀況而言再次為1且在步驟中將其省略。可在行(1)之前進行(~DL0 AND DL1)並將其儲存於諸如DL2之另一資料鎖存器中。(~DL0 AND DL1)之結果將為"0010",其中僅"10"行具有"1"。在步驟(1)中,readA可提供1或0,在步驟(2)中當其與DL0組合時提供(1、0、0、0)。行(3)提供~readB,其視單元被編程了多遠而可或不可提供0。在行(4)中可用OR邏輯組合所有以上結果並將其儲存回至DL0。在步驟(5)中,readC提供(1、1、1、0),無論狀態何時結束,由於其無法為B驗證,故其將低於readC。最終,用行(4)(在DL0中)將readC進行AND在行(6)中提供經回復之上部頁資料。For the B error condition, DL0 is now 0 for the "10" column, where DL1 is again 1 for all conditions. Therefore, (DL0 OR DL1) is again 1 for all conditions and is omitted in the step. It can be done before line (1) (~DL0 AND DL1) and stored in another data latch such as DL2. The result of (~DL0 AND DL1) will be "0010", of which only "10" lines have "1". In step (1), readA may provide 1 or 0, and (1, 0, 0, 0) is provided when it is combined with DL0 in step (2). Line (3) provides ~readB, how far the viewcell is programmed and may or may not provide zero. All of the above results can be combined in row (4) with OR logic and stored back to DL0. In step (5), readC provides (1, 1, 1, 0), which will be lower than readC, since the state ends when it cannot be verified for B. Finally, using row (4) (in DL0) AND of readC provides a reply to the top page data in row (6).

假定C狀態失敗,此將在DL0與DL1中提供0。若將行(1)運算結果儲存於DL0中,則在行(1)之前執行初始步驟(DL0 OR DL1)(線0)。邏輯運算(DL0 OR DL1)應儲存於諸如DL2之另一資料鎖存器中。readA之結果(此處,其與readA AND DL0相同)處於行(1)中,接著是行(2)中之~readB。隨後在步驟(3)中將行(1)與(2)進行OR。(由於此處DL0=DL1,故(~DL0 AND DL1)=0且將其省略。)由於readC在所有狀況中為1(行4),故當用行(3)進行AND時其將相同值提供回行(5)中。由於DL0=DL1=(1、1、1、0),故在行(6)中(DL0 OR DL1)=(1、1、1、0)。將行(5)與(0)進行AND隨後在線(6)中提供經回復之上部頁。正確上部頁資料再次為"1010"。Assuming the C state fails, this will provide zero in DL0 and DL1. If the row (1) operation result is stored in DL0, the initial step (DL0 OR DL1) (line 0) is executed before row (1). The logic operation (DL0 OR DL1) should be stored in another data latch such as DL2. The result of readA (here, it is the same as readA AND DL0) is in row (1), followed by ~readB in row (2). Rows (1) and (2) are then ORed in step (3). (Because DL0=DL1 here, (~DL0 AND DL1)=0 and omit it.) Since readC is 1 (row 4) in all cases, it will have the same value when AND is performed with row (3). Provide a return (5). Since DL0 = DL1 = (1, 1, 1, 0), in line (6) (DL0 OR DL1) = (1, 1, 1, 0). The lines (5) and (0) are ANDed and then the upper page is provided in the online (6). The correct upper page data is again "1010".

如已提及,圖34僅展示用於LM新編碼之上部頁回復過程。如圖23及圖24中所展示,LM舊與LM新編碼皆具有下部頁資料之相同編碼,且對於LM新編碼而言,可如以上關於LM舊編碼所描述般再次藉由(readB AND DL1)來回復下部頁資料。As already mentioned, Figure 34 only shows the upper page reply process for LM new encoding. As shown in FIG. 23 and FIG. 24, both the LM old and the LM new code have the same encoding of the lower page data, and for the LM new encoding, can be reused as described above with respect to the LM old encoding (readB AND DL1) ) to reply to the next page information.

因此,對於所有編碼而言,無論正在使用哪個編碼,皆可用以下簡單規則進行資料回復。在每一狀況中,用邏輯操作將剩餘驗證資料與一或多個讀取操作之結果組合,以藉由使用非過度寫入邏輯(其將資料鎖存器中之剩餘資料與感測結果組合)來擷取預期目標資料。Therefore, for all encodings, no matter which encoding is being used, the following simple rules can be used for data recovery. In each case, the logical data is used to combine the remaining verification data with the result of one or more read operations by using non-overwrite logic (which combines the remaining data in the data latch with the sensed result) ) to draw the expected target data.

如圖23及圖24中所展示,兩種LM編碼初始將下部頁編程為如美國專利申請案序號11/083,514中所描述之寬闊X分佈,該案以引用之方式併入本文中。在兩種情況中,由於兩種編碼將相同實體單元上之兩位元分離成兩單獨邏輯頁,故上部頁編程失敗將損壞先前被編程之下部頁資料。由於可在相當長時間之前下部頁已被編程,故資料回復變得非常重要,因為此資料不再由控制器記憶體來保持。即使下部頁相對最近地被編程,將下部頁維護於控制器中亦將要求並非較佳之大緩衝數量。As shown in Figures 23 and 24, the two LM codes initially program the lower page to a broad X distribution as described in U.S. Patent Application Serial No. 11/083,514, the disclosure of which is incorporated herein by reference. In both cases, the upper page programming failure will corrupt the previously programmed lower page data since the two encodings separate the two bits on the same physical unit into two separate logical pages. Since the lower page has been programmed a long time ago, data recovery becomes very important as this data is no longer maintained by the controller memory. Even if the lower page is programmed relatively recently, maintaining the lower page in the controller will require a lesser amount of buffer.

在習知編碼中,上部頁寫入之封鎖將僅在其中儲存上部頁編程資料之資料鎖存器上發生;因此,下部頁資料在上部頁編程封鎖過程期間係完整的。然而,在LM編碼中,下部頁被粗糙編程為中間X狀態,其中上部頁寫入等於2位元編程,因為所有A/B/C狀態皆需要被編程。在此狀況下,兩資料鎖存器DL0及DL1係用於儲存將被封鎖之2位元編程資料,其中"0"被變成"1"。在此狀況下,下部頁資訊可能永久丟失。為了避免此,以下機制可用於為使用者保持下部頁資料之良好複本。In conventional encoding, the blocking of the upper page write will only occur on the data latch in which the upper page programming data is stored; therefore, the lower page data is complete during the upper page programming blocking process. However, in LM encoding, the lower page is rough programmed to the intermediate X state, where the upper page write is equal to 2-bit programming because all A/B/C states need to be programmed. In this case, the two data latches DL0 and DL1 are used to store the 2-bit programming data to be blocked, where "0" is changed to "1". In this case, the lower page information may be permanently lost. To avoid this, the following mechanism can be used to keep a good copy of the lower page material for the user.

在第一實施例中,根據以下如圖35中之圖來分配資料鎖存器。此處,DL0 434-0係自陣列讀入之下位元資料:在LM編碼中,用於擦除及A、B、C狀態之下位元將分別為1、1、0、0。DL1 434-1將保持上部頁編程資料,其係自使用者輸入以用於當前編程。用於擦除及A、B、C狀態之上位元的LM舊編碼將分別為1、0、0、1。In the first embodiment, the material latch is allocated according to the following diagram as in Fig. 35. Here, DL0 434-0 is the bit data read from the array: in the LM code, the bits used for erasing and A, B, and C states will be 1, 1, 0, and 0, respectively. The DL1 434-1 will maintain the upper page programming data from the user input for current programming. The old LM codes used for erasing and bits above the A, B, and C states will be 1, 0, 0, 1, respectively.

由於A狀態具有比B及C狀態低之臨限電壓,故在編程演算法開始時需要編程驗證A,其中B編程驗證在若干數目之編程脈衝之後開始,如美國專利申請案序號11/013,125中更詳細描述。當具有A資料之單元完成編程時,封鎖係暫存於DL1 434-1中,其中"0"被翻轉成"1"。DL0 434-0將不改變。當B狀態開始驗證時,DL0資料亦將經改變以用於封鎖。因此,DL0中之資料在B狀態開始驗證之前的A驗證之時間週期期間將為完整的。在典型系統中,此時間通常為約150 μs,其對於使用者擷取及雙態觸發下部位元資料以將其複製至另一位置(諸如在記憶體或控制器上將其緩衝或至用於另一實體頁之鎖存器)而言係足夠的時間。對於在上部頁編程失敗期間回復下部位元編程資料而言,LM新編碼狀況將與LM舊編碼類似,因為對於兩編碼而言下部頁是被同樣地編碼。Since the A state has a lower threshold voltage than the B and C states, a program verification A is required at the beginning of the programming algorithm, where the B programming verification begins after a number of programming pulses, as in U.S. Patent Application Serial No. 11/013,125 More detailed description. When the unit with the A data is programmed, the blocking system is temporarily stored in DL1 434-1, where "0" is inverted to "1". DL0 434-0 will not change. When the B state begins to verify, the DL0 data will also be changed for blocking. Therefore, the data in DL0 will be complete during the time period of A verification before the B state begins to be verified. In a typical system, this time is typically about 150 μs, which is used by the user to capture and toggle the lower part metadata to copy it to another location (such as buffering or using it on a memory or controller). For a latch on another physical page, it is sufficient time. For the recovery of the lower part metaprogramming data during the upper page programming failure, the LM new encoding status will be similar to the LM old encoding because the lower page is equally encoded for both encodings.

在LM編碼中可用於獲得下部頁資料之良好複本的另一實施例使用額外鎖存器DL2 434-2以用於鎖存,從而允許原始資料被保持直至寫入結束。與此部分中之其他實施例不同,由於DL0、DL1及DL2皆用於此處,故此狀況中可能不允許美國專利申請案序號11/097,590中所描述之快取編程類型。圖36中展示此處之資料鎖存器分配。Another embodiment that can be used in LM encoding to obtain a good copy of the lower page material uses the extra latch DL2 434-2 for latching, allowing the original material to be held until the end of the write. Unlike the other embodiments in this section, since DL0, DL1, and DL2 are all used herein, the type of cache programming described in U.S. Patent Application Serial No. 11/097,590 may not be incorporated. The data latch assignments herein are shown in FIG.

如圖36中所展示,DL2係用於編程封鎖,而非用於快速通過寫入封鎖。因此,若亦使用快速通過寫入演算法,則將添加額外鎖存器DL3以用於QPW封鎖(VL封鎖)。在此等變化之任一者中,以此方式使用DL2允許下部頁資料在整個編程演算法期間保持完整。As shown in Figure 36, DL2 is used for program blocking, not for fast write blocking. Therefore, if a fast pass write algorithm is also used, an additional latch DL3 will be added for QPW blocking (VL blocking). In either of these variations, using DL2 in this manner allows the lower page material to remain intact throughout the programming algorithm.

應注意,LM編碼中下部頁回復之此等方法不假定編碼失敗係歸因於緩慢位元。作為之前論述中之資料回復方法之一者,其亦不要求讀取仍可執行。然而,此等最終技術假定上部頁資料將被保持於控制器中或者被緩衝。用於下部頁之此回復方法在許多狀況中可為更有用的,因為其既不假定任何特定失敗模式亦不假定記憶體單元仍可讀取。It should be noted that such methods of replying to lower pages in the LM code do not assume that the coding failure is due to slow bits. As one of the data recovery methods in the previous discussion, it also does not require reading to be executable. However, these final techniques assume that the upper page material will be held in the controller or buffered. This method of replying for the lower page can be more useful in many situations because it neither assumes any particular failure mode nor assumes that the memory unit is still readable.

對於所有前述實施例而言,應注意,主要為每單元2位元狀況描述此等。該等技術易於擴展至每單元儲存3、4或更多位元以用於複數頁格式與全序列操作的系統。舉例而言,對於相對於2位元狀況之給定實施例而言,3及4位元狀況將分別要求額外的一個及兩個資料鎖存器。For all of the foregoing embodiments, it should be noted that this is primarily described for a 2-bit status per unit. These techniques are easily extended to systems that store 3, 4 or more bits per cell for complex page format and full sequence operation. For example, for a given embodiment with respect to a 2-bit condition, the 3 and 4 bit conditions will require an additional one and two data latches, respectively.

雖然已相對於特定實施例描述了本發明之各種態樣,但是當然本發明在附加申請專利範圍之整個範疇中有權受到保護。While the invention has been described with respect to the specific embodiments thereof, it is intended that the invention

10...記憶體單元10. . . Memory unit

12...分裂通道12. . . Split channel

14...源極14. . . Source

16...汲極16. . . Bungee

20...浮動閘極20. . . Floating gate

20'...浮動閘極20'. . . Floating gate

30...控制閘極30. . . Control gate

30'...控制閘極30'. . . Control gate

34...選定位元線34. . . Selecting location line

36...選定位元線36. . . Selecting location line

40...選擇閘極40. . . Select gate

42...字線42. . . Word line

50...NAND單元50. . . NAND unit

54...源極終端54. . . Source terminal

56...汲極終端56. . . Bungee terminal

100...記憶體陣列100. . . Memory array

130...列解碼器130. . . Column decoder

160...行解碼器160. . . Row decoder

170...讀取/寫入電路170. . . Read/write circuit

180...讀取/寫入堆疊180. . . Read/write stack

190...讀取/寫入模組190. . . Read/write module

212...感測放大器堆疊212. . . Sense amplifier stack

214...SA鎖存器214. . . SA latch

231...I/O匯流排/資料I/O線231. . . I/O bus/data I/O line

300...記憶體陣列/記憶體單元二維陣列300. . . Memory array/memory unit two-dimensional array

310...控制電路/控制器310. . . Control circuit/controller

311...線311. . . line

312...狀態機312. . . state machine

314...晶片上位址解碼器314. . . On-chip address decoder

316...功率控制模組316. . . Power control module

330...列解碼器330. . . Column decoder

330A...列解碼器330A. . . Column decoder

330B...列解碼器330B. . . Column decoder

350...區塊多工器350. . . Block multiplexer

350A...區塊多工器350A. . . Block multiplexer

350B...區塊多工器350B. . . Block multiplexer

360...行解碼器360. . . Row decoder

360A...行解碼器360A. . . Row decoder

360B...行解碼器360B. . . Row decoder

370...讀取/寫入電路370. . . Read/write circuit

370A...讀取/寫入電路370A. . . Read/write circuit

370B...讀取/寫入電路370B. . . Read/write circuit

400...讀取/寫入堆疊400. . . Read/write stack

410...堆疊匯流排控制器410. . . Stack bus controller

411...線411. . . line

421...堆疊匯流排421. . . Stack bus

422...線/SABus/SBUS422. . . Line / SABus / SBUS

423...線/DBus423. . . Line/DBus

430...資料鎖存器堆疊430. . . Data latch stack

434...資料鎖存器434. . . Data latch

435...線435. . . line

440...I/O模組440. . . I/O module

500...通用處理器500. . . General purpose processor

501...傳送閘極501. . . Transfer gate

502...傳送閘極502. . . Transfer gate

505...PBUS505. . . PBUS

507...輸出端507. . . Output

509...旗標匯流排509. . . Flag bus

510...輸入邏輯510. . . Input logic

520...處理器鎖存器520. . . Processor latch

522...傳送閘極522. . . Transfer gate

523...輸出端523. . . Output

524...p電晶體524. . . p transistor

525...p電晶體525. . . p transistor

526...n電晶體526. . . n transistor

527...n電晶體527. . . n transistor

530...輸出邏輯530. . . Output logic

531...p電晶體531. . . p transistor

532...p電晶體532. . . p transistor

533...p電晶體533. . . p transistor

534...p電晶體534. . . p transistor

535...n電晶體535. . . n transistor

536...n電晶體536. . . n transistor

537...n電晶體537. . . n transistor

538...n電晶體538. . . n transistor

550...n電晶體550. . . n transistor

601A...感測放大器601A. . . Sense amplifier

601B...感測放大器601B. . . Sense amplifier

601C...感測放大器601C. . . Sense amplifier

603...感測放大器鎖存器603. . . Sense amplifier latch

611...汲極選擇閘極611. . . Bungee selection gate

613A...選定記憶體單元/閘極613A. . . Selected memory unit / gate

613B...選定記憶體單元/閘極613B. . . Selected memory unit / gate

613C...選定記憶體單元/閘極613C. . . Selected memory unit / gate

615...源極選擇閘極615. . . Source selection gate

621...位元線箝位621. . . Bit line clamp

625...選擇字線625. . . Select word line

700...陣列700. . . Array

701...上部頁字線701. . . Upper page word line

801...控制器801. . . Controller

803...快取記憶體803. . . Cache memory

811...記憶體811. . . Memory

1301...分佈1301. . . distributed

1303...分佈1303. . . distributed

1401...第一階梯PW11401. . . First step PW1

1403...第二次通過PW21403. . . Second pass PW2

1501...編程波形QPW1501. . . Programming waveform QPW

1801...接地1801. . . Ground

1803...第一、較低驗證位準VL1803. . . First, lower verification level VL

1805...較高VH/較高範圍1805. . . Higher VH / higher range

圖1A至1E示意性說明非揮發性記憶體單元之不同實例。Figures 1A through 1E schematically illustrate different examples of non-volatile memory cells.

圖2說明記憶體單元之NOR陣列之實例。Figure 2 illustrates an example of a NOR array of memory cells.

圖3說明諸如圖1D中所展示之記憶體單元的NAND陣列的實例。FIG. 3 illustrates an example of a NAND array such as the memory cells shown in FIG. 1D.

圖4說明四個不同電荷Q1至Q4之源極-汲極電流與控制閘極電壓之間的關係,對於該等四個電荷而言,浮動閘極可在任一時刻儲存。Figure 4 illustrates the relationship between the source-drain current of four different charges Q1 to Q4 and the control gate voltage for which the floating gate can be stored at any one time.

圖5示意性說明可由讀取/寫入電路經由列及行解碼器來存取之記憶體陣列的典型配置。Figure 5 schematically illustrates a typical configuration of a memory array that can be accessed by a read/write circuit via a column and row decoder.

圖6A係個別讀取/寫入模組之示意性方塊圖。Figure 6A is a schematic block diagram of an individual read/write module.

圖6B展示習知由讀取/寫入模組之堆疊建構之圖5的讀取/寫入堆疊。Figure 6B shows the conventional read/write stack of Figure 5 constructed from a stack of read/write modules.

圖7A示意性說明具有一組經分割之讀取/寫入堆疊的小型記憶體裝置,其中建構了本發明之經改良處理器。Figure 7A schematically illustrates a small memory device having a set of segmented read/write stacks in which an improved processor of the present invention is constructed.

圖7B說明圖7A中所展示之小型記憶體裝置的較佳配置。Figure 7B illustrates a preferred configuration of the small memory device shown in Figure 7A.

圖8示意性說明圖7A中所展示之讀取/寫入堆疊中之基礎組件的一般配置。Figure 8 schematically illustrates the general configuration of the base components in the read/write stack shown in Figure 7A.

圖9說明圖7A及圖7B中所展示之讀取/寫入電路中讀取/寫入堆疊的一較佳配置。Figure 9 illustrates a preferred configuration of a read/write stack in the read/write circuit shown in Figures 7A and 7B.

圖10說明圖9中所展示之通用處理器之改良實施例。Figure 10 illustrates a modified embodiment of the general purpose processor shown in Figure 9.

圖11A說明圖10中所展示之通用處理器之輸入邏輯的較佳實施例。Figure 11A illustrates a preferred embodiment of the input logic of the general purpose processor shown in Figure 10.

圖11B說明圖11A之輸入邏輯的真值表。Figure 11B illustrates a truth table for the input logic of Figure 11A.

圖12A說明圖10中所展示之通用處理器之輸出邏輯的較佳實施例。Figure 12A illustrates a preferred embodiment of the output logic of the general purpose processor shown in Figure 10.

圖12B說明圖12A之輸出邏輯的真值表。Figure 12B illustrates a truth table for the output logic of Figure 12A.

圖13展示對應於低及高驗證位準之相同記憶體狀態的儲存元件的兩分佈。Figure 13 shows two distributions of storage elements corresponding to the same memory state of the low and high verify levels.

圖14說明兩次通過寫入技術中所使用之編程波形之實例。Figure 14 illustrates an example of a programming waveform used in a two pass write technique.

圖15說明快速通過寫入技術中所使用之編程波形之實例。Figure 15 illustrates an example of a programming waveform used in the fast pass write technique.

圖16展示所有位元線架構中之NAND型陣列及其周邊電路的一部分。Figure 16 shows a portion of a NAND-type array and its peripheral circuitry in all bit line architectures.

圖17描述使用圖10之資料鎖存器以為下部資料頁建構快速通過寫入。Figure 17 depicts the use of the data latch of Figure 10 to construct a fast pass write for the lower data page.

圖18展示例示性驗證波形以說明兩驗證位準。Figure 18 shows an exemplary verification waveform to illustrate two verification levels.

圖19係快速通過寫入演算法之流程圖。Figure 19 is a flow chart of a fast pass write algorithm.

圖20展示用於習知兩頁編碼之記憶體單元之分佈。Figure 20 shows the distribution of memory cells for conventional two page encoding.

圖21描述使用圖10之資料鎖存器以為習知編碼中之上部資料頁建構快速通過寫入。Figure 21 depicts the use of the data latch of Figure 10 to construct a fast pass write for the upper data page in the conventional encoding.

圖22描述使用圖10之資料鎖存器以為全序列編程建構快速通過寫入。Figure 22 depicts the use of the data latch of Figure 10 to construct a fast pass write for full sequence programming.

圖23及圖24展示交替兩頁編碼之記憶體單元之分佈。Figures 23 and 24 show the distribution of memory cells alternating between two pages.

圖25描述使用圖10之資料鎖存器以為交替兩頁編碼中之上部資料頁建構快速通過寫入。Figure 25 depicts the use of the data latch of Figure 10 to construct a fast pass write for the upper data page in an alternate two page encoding.

圖26A及圖26B展示將上部頁及下部頁分配至字線的不同方法。26A and 26B show different methods of assigning upper and lower pages to word lines.

圖27示意性說明在寫入過程中將資料自主機傳遞至記憶體。Figure 27 schematically illustrates the transfer of data from the host to the memory during the writing process.

圖28展示用於上部頁/下部頁編程之資料鎖存器分配。Figure 28 shows the data latch assignment for upper page/lower page programming.

圖29說明失敗之下部頁寫入過程。Figure 29 illustrates the failed page write process.

圖30係展示下部頁資料回復操作的表格。Figure 30 is a table showing the lower page data reply operation.

圖31係展示當使用"習知編碼"時上部頁資料回復操作的表格。Figure 31 is a table showing the upper page material reply operation when "practical encoding" is used.

圖32展示用於全序列、2位元編程之資料鎖存器分配。Figure 32 shows a data latch assignment for full sequence, 2-bit programming.

圖33係展示當使用全序列、2位元編程時之回復操作的表格。Figure 33 is a table showing the recovery operation when using full sequence, 2-bit programming.

圖34係展示當使用"LM新編碼"時之資料回復操作的表格。Figure 34 is a table showing the data reply operation when "LM new encoding" is used.

圖35及圖36展示對於兩實施例而言用以回復圖23及圖24之編碼中之下部頁資料的資料鎖存器分配。Figures 35 and 36 show data latch assignments for replying to the lower page data in the codes of Figures 23 and 24 for both embodiments.

Claims (21)

一種操作一非揮發性記憶體之方法,其包含:對一或多個非揮發性記憶體單元執行一編程操作,以將一對應目標資料狀態寫入至該等記憶體單元之每一者中,該編程操作包括在對應於該等記憶體單元之每一者之一或多個資料鎖存器中維護驗證資料,該驗證資料指示該等記憶體單元之每一者是否已經被寫入為其各自目標資料狀態;判定該編程操作是否已失敗,而無法成功驗證該等記憶體單元之一或多者被寫入為其目標資料狀態;及回應於判定該編程操作已失敗,執行一資料回復操作,該資料回復操作包括:對該等記憶體單元執行一或多個感測操作;及將該等感測操作之結果與維護於該等資料鎖存器中之該驗證資料邏輯組合,以回復該等記憶體單元之每一者的該對應目標資料狀態。 A method of operating a non-volatile memory, comprising: performing a programming operation on one or more non-volatile memory cells to write a corresponding target data state to each of the memory cells The programming operation includes maintaining verification data in one or more of the data latches corresponding to each of the memory cells, the verification data indicating whether each of the memory cells has been written as The respective target data status; determining whether the programming operation has failed, and failing to successfully verify that one or more of the memory units are written as their target data status; and in response to determining that the programming operation has failed, executing a data In response to the operation, the data recovery operation includes: performing one or more sensing operations on the memory cells; and logically combining the results of the sensing operations with the verification data maintained in the data latches, Responding to the corresponding target data status of each of the memory units. 如請求項1之方法,其中該非揮發性記憶體係一記憶體系統之部件,該記憶體系統包括一控制器及該非揮發性記憶體,且在該執行一編程操作之後,該目標資料未被維護於該控制器中。 The method of claim 1, wherein the non-volatile memory system is a component of a memory system, the memory system includes a controller and the non-volatile memory, and after the performing a programming operation, the target data is not maintained. In the controller. 如請求項2之方法,其中該目標資料係以獨立於該驗證資料方式而未被維護於該記憶體中。 The method of claim 2, wherein the target data is not maintained in the memory in a manner independent of the verification data. 如請求項1之方法,其中該等記憶體單元為複數狀態記憶體單元。 The method of claim 1, wherein the memory cells are complex state memory cells. 如請求項4之方法,其中該記憶體以一上部頁、下部頁格式儲存複數狀態資料,且該編程操作係將上部頁目標資料寫入至該等記憶體單元。 The method of claim 4, wherein the memory stores the plurality of status data in an upper page, lower page format, and the programming operation writes the upper page target data to the memory units. 如請求項5之方法,其中在該編程操作將上部頁目標資料寫入至該等記憶體單元之前,下部頁資料已被寫入至該等記憶體單元。 The method of claim 5, wherein the lower page material has been written to the memory cells before the programming operation writes the upper page target data to the memory cells. 如請求項6之方法,其中該編程操作進一步包含在將該等上部頁目標資料寫入至該等記憶體單元之前,將該等下部頁資料讀入至該等資料鎖存器中。 The method of claim 6, wherein the programming operation further comprises reading the lower page data into the data latches before writing the upper page target data to the memory cells. 如請求項5之方法,其中該資料回復操作回復該等下部頁資料與該等上部頁目標資料。 The method of claim 5, wherein the data reply operation replies to the lower page data and the upper page target data. 如請求項4之方法,其中該方法進一步包含:在該資料回復操作之後,將該等下部頁資料及該等上部頁目標資料同時編程至該記憶體中之另一位置。 The method of claim 4, wherein the method further comprises: simultaneously programming the lower page material and the upper page target data to another location in the memory after the data recovery operation. 一種用於一具有一非揮發性陣列的記憶體系統中的方法,該非揮發性陣列包括將資料儲存為獨立邏輯頁之複數個複數狀態記憶體單元,該方法包含:將一第一邏輯頁資料寫入至該陣列之一第一實體頁,其中寫入該第一邏輯頁包括將記憶體單元寫為一中間資料狀態;將用於該第一實體頁中每一單元之一第二邏輯頁資料的資料儲存於一對應第一資料鎖存器中;及執行一編程操作以將該第二邏輯頁資料寫入至該第一實體頁,其中編程該第二邏輯頁包括自該中間資料狀態 進一步編程該第一邏輯頁資料,用以寫入一第二邏輯頁資料之該編程操作包括:自該第一實體頁讀取該第一邏輯頁資料,該第一實體頁中之每一單元的該第一頁資料係儲存於一對應第二資料鎖存器中;根據該第一及該第二資料鎖存器之內容編程該第一實體頁;及在驗證該等第一資料鎖存器中之該資料之後且在開始驗證該等第二資料鎖存器中之該資料之前,複製出該第二資料鎖存器內容。 A method for use in a memory system having a non-volatile array, the non-volatile array comprising a plurality of complex state memory cells storing data as separate logical pages, the method comprising: placing a first logical page data Writing to one of the first physical pages of the array, wherein writing the first logical page comprises writing the memory unit as an intermediate data state; the second logical page to be used for each of the first physical page The data of the data is stored in a corresponding first data latch; and a programming operation is performed to write the second logical page data to the first physical page, wherein programming the second logical page includes the intermediate data state Further programming the first logical page data to write a second logical page data, the programming operation comprising: reading the first logical page material from the first physical page, each unit in the first physical page The first page of data is stored in a corresponding second data latch; the first physical page is programmed according to the contents of the first and second data latches; and the first data latch is verified The second data latch contents are copied after the data in the device and before starting to verify the data in the second data latches. 如請求項10之方法,其進一步包含:判定用以將該第二邏輯頁資料寫入至該第一實體頁的該操作是否已失敗,而無法根據該對應第一及該對應第二資料鎖存器之該內容來成功驗證該等記憶體單元之一或多者;及回應於判定用以將該第二邏輯頁資料寫入至該第一實體頁之該操作已失敗,將該等第二資料鎖存器之該複製內容寫入至一第二實體頁。 The method of claim 10, further comprising: determining whether the operation for writing the second logical page data to the first physical page has failed, and failing to perform the corresponding first and the corresponding second data lock Storing the content of the memory to successfully verify one or more of the memory cells; and in response to determining that the operation to write the second logical page data to the first physical page has failed, the The copy content of the two data latches is written to a second physical page. 一種用於一具有一非揮發性陣列的記憶體系統中的方法,該非揮發性陣列包括將資料儲存為獨立邏輯頁之複數個複數狀態記憶體單元,該方法包含:將一第一邏輯頁資料寫入至該陣列之一第一實體頁,其中寫入至該第一邏輯頁包括將記憶體單元寫為一中間資料狀態; 將用於該第一實體頁中每一單元之一第二邏輯頁資料之資料儲存於一對應第一資料鎖存器中;及執行一編程操作以將該第二邏輯頁資料寫入至該第一實體頁,其中編程該第二邏輯頁包括自該中間資料狀態進一步編程該第一邏輯頁資料,用以寫入一第二邏輯頁資料之該編程操作包括:自該第一實體頁讀取該第一邏輯頁資料,該第一實體頁中之每一單元之第一頁資料係儲存於一對應第二資料鎖存器及一對應第三資料鎖存器中;及根據該第一及該第二鎖存器之該內容編程該第一實體頁,同時將該第一實體頁中之每一單元之該第一頁資料的複本維護於該對應第三資料鎖存器中。 A method for use in a memory system having a non-volatile array, the non-volatile array comprising a plurality of complex state memory cells storing data as separate logical pages, the method comprising: placing a first logical page data Writing to one of the first physical pages of the array, wherein writing to the first logical page comprises writing the memory unit as an intermediate data state; Storing data for the second logical page material of each of the first physical page in a corresponding first data latch; and performing a programming operation to write the second logical page data to the a first physical page, wherein programming the second logical page includes further programming the first logical page material from the intermediate data state, the programming operation for writing a second logical page material comprising: reading from the first physical page Taking the first logical page data, the first page data of each unit in the first physical page is stored in a corresponding second data latch and a corresponding third data latch; and according to the first And the content of the second latch programs the first physical page, and maintains a copy of the first page material of each unit in the first physical page in the corresponding third data latch. 如請求項12之方法,其進一步包含:判定用以將該第二邏輯頁資料寫入至該第一實體頁之該操作是否已失敗,而無法根據該對應第一及該對應第二資料鎖存器之該內容來成功驗證該等記憶體單元之一或多者;及回應於判定用以將該第二邏輯頁資料寫入至該第一實體頁之該操作已失敗,將該等第三資料鎖存器之該內容複製至一第二實體頁。 The method of claim 12, further comprising: determining whether the operation to write the second logical page data to the first physical page has failed, and not according to the corresponding first and the corresponding second data lock Storing the content of the memory to successfully verify one or more of the memory cells; and in response to determining that the operation to write the second logical page data to the first physical page has failed, the The content of the three data latches is copied to a second physical page. 一種非揮發性記憶體,其包含:一記憶體陣列,其具有複數個非揮發性記憶體單元;編程電路,其可選擇性地連接至該等記憶體單元以用於將各自目標資料狀態寫入至該等記憶體單元中; 一組資料鎖存器,其之一或多者可連接至在一編程操作中正被寫入之該等記憶體單元之每一者,以維護指示該對應記憶體單元是否已被成功寫入該各自目標資料狀態的驗證資料;感測電路,其可選擇性地連接至該等記憶體單元;及邏輯電路,其回應於一或多個記憶體單元之一失敗寫入操作的一指示,將來自該感測電路對該或該等記憶體單元的一或多個讀取結果的該等結果與維護於該等資料鎖存器內之該對應驗證資料組合,使該等記憶體單元回復其已被編程的該目標資料狀態。 A non-volatile memory comprising: a memory array having a plurality of non-volatile memory cells; programming circuitry selectively connectable to the memory cells for writing respective target data states Into the memory cells; a set of data latches, one or more of which are connectable to each of the memory cells being written in a programming operation to maintain an indication of whether the corresponding memory cell has been successfully written ???a verification data of respective target data states; a sensing circuit selectively connectable to the memory cells; and a logic circuit responsive to an indication of one of the one or more memory cells failing to write operation, The results from the sensing circuit or the one or more read results of the memory cells are combined with the corresponding verification data maintained in the data latches to cause the memory cells to recover The target data status that has been programmed. 如請求項14之記憶體,其中該非揮發性記憶體係一記憶體系統之部件,該記憶體系統包括一控制器及該非揮發性記憶體,且在執行一編程操作將該目標資料寫入至該等記憶體單元之後,該等目標資料狀態未被維護於該控制器中。 The memory of claim 14, wherein the non-volatile memory system is a component of a memory system, the memory system includes a controller and the non-volatile memory, and the target data is written to the program by performing a programming operation After the memory unit, the target data status is not maintained in the controller. 如請求項15之記憶體,其中該等目標資料狀態係以獨立於該驗證資料方式而未被維護於該記憶體中。 The memory of claim 15, wherein the target data status is not maintained in the memory independently of the verification data. 如請求項14之記憶體,其中該等記憶體單元為複數狀態記憶體單元。 The memory of claim 14, wherein the memory cells are complex state memory cells. 如請求項17之記憶體,其中該記憶體以一上部頁、下部頁格式將複數狀態資料儲存於該等記憶體單元中,且該目標資料係上部頁目標資料。 The memory of claim 17, wherein the memory stores the plurality of state data in the memory unit in an upper page and a lower page format, and the target data is an upper page target data. 如請求項18之記憶體,其中在將上部頁目標資料寫入至該等記憶體單元之前,該記憶體將下部頁資料寫入至該 等記憶體單元。 The memory of claim 18, wherein the memory writes the lower page data to the memory device before writing the upper page target data to the memory unit Equal memory unit. 如請求項19之記憶體,其中感測電路在將該等上部頁目標資料寫入至該等記憶體單元之前,感測電路將下部頁資料讀入至該等資料鎖存器中。 The memory of claim 19, wherein the sensing circuit reads the lower page data into the data latches before writing the upper page target data to the memory cells. 如請求項18之記憶體,其中該邏輯電路回復該等下部頁資料與該等上部頁目標資料。 The memory of claim 18, wherein the logic circuit replies to the lower page data and the upper page target data.
TW95111576A 2005-04-01 2006-03-31 Multi-state memory having data recovery after program fail TWI410974B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/097,517 US7158421B2 (en) 2005-04-01 2005-04-01 Use of data latches in multi-phase programming of non-volatile memories
US11/304,960 US7420847B2 (en) 2004-12-14 2005-12-14 Multi-state memory having data recovery after program fail
US11/304,783 US7345928B2 (en) 2004-12-14 2005-12-14 Data recovery methods in multi-state memory after program fail

Publications (2)

Publication Number Publication Date
TW200707443A TW200707443A (en) 2007-02-16
TWI410974B true TWI410974B (en) 2013-10-01

Family

ID=49771656

Family Applications (1)

Application Number Title Priority Date Filing Date
TW95111576A TWI410974B (en) 2005-04-01 2006-03-31 Multi-state memory having data recovery after program fail

Country Status (1)

Country Link
TW (1) TWI410974B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI850658B (en) * 2020-09-24 2024-08-01 大陸商長江存儲科技有限責任公司 Configuration and method for nand memory programming design

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI416523B (en) * 2009-06-10 2013-11-21 Silicon Motion Inc Method for writing fail retry for a non-volatile memory, non-volatile memory, controller, and memory card
US9007843B2 (en) * 2011-12-02 2015-04-14 Cypress Semiconductor Corporation Internal data compare for memory verification
US11942165B2 (en) 2020-09-24 2024-03-26 Yangtze Memory Technologies Co., Ltd. Architecture and method for NAND memory programming

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504757B1 (en) * 2000-08-11 2003-01-07 Advanced Micro Devices, Inc. Double boosting scheme for NAND to improve program inhibit characteristics
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US20040057285A1 (en) * 2002-09-24 2004-03-25 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US6717857B2 (en) * 2001-10-24 2004-04-06 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device with cache function and program, read, and page copy-back operations thereof
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US20040160829A1 (en) * 1998-02-16 2004-08-19 Tetsuya Tsujikawa Semiconductor, memory card, and data processing system
US20040210729A1 (en) * 2001-07-23 2004-10-21 Renesas Technology Corp. Nonvolatile memory
US20040237000A1 (en) * 2003-05-08 2004-11-25 Micron Technology, Inc. Program failure recovery

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160829A1 (en) * 1998-02-16 2004-08-19 Tetsuya Tsujikawa Semiconductor, memory card, and data processing system
US6504757B1 (en) * 2000-08-11 2003-01-07 Advanced Micro Devices, Inc. Double boosting scheme for NAND to improve program inhibit characteristics
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US20040210729A1 (en) * 2001-07-23 2004-10-21 Renesas Technology Corp. Nonvolatile memory
US6717857B2 (en) * 2001-10-24 2004-04-06 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device with cache function and program, read, and page copy-back operations thereof
US20040057285A1 (en) * 2002-09-24 2004-03-25 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US20050047217A1 (en) * 2002-11-29 2005-03-03 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US20040237000A1 (en) * 2003-05-08 2004-11-25 Micron Technology, Inc. Program failure recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI850658B (en) * 2020-09-24 2024-08-01 大陸商長江存儲科技有限責任公司 Configuration and method for nand memory programming design

Also Published As

Publication number Publication date
TW200707443A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
US7345928B2 (en) Data recovery methods in multi-state memory after program fail
US7420847B2 (en) Multi-state memory having data recovery after program fail
CN100590743C (en) Non-volatile memory device with latch
JP5038292B2 (en) Use of data latches in non-volatile memory cache operations
CN102318007B (en) Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and across pages
CN101512668B (en) Pseudo-random and command-driven bit compensation for cycling effects in flash memory and methods thereof
US7310255B2 (en) Non-volatile memory with improved program-verify operations
US7224614B1 (en) Methods for improved program-verify operations in non-volatile memories
CN101548332B (en) Non-volatile memory and method for cache page copy
EP2070090B1 (en) Pseudo random and command driven bit compensation for the cycling effects in flash memory and methods therefor
JP4638544B2 (en) Method and apparatus for improved program verify operation in non-volatile memory
US7606966B2 (en) Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
WO2006107651A1 (en) Multi-state memory having data recovery after program fail
TWI410974B (en) Multi-state memory having data recovery after program fail

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees