TWI791309B - Non-volatile memory and programming method thereof - Google Patents

Non-volatile memory and programming method thereof Download PDF

Info

Publication number
TWI791309B
TWI791309B TW110139883A TW110139883A TWI791309B TW I791309 B TWI791309 B TW I791309B TW 110139883 A TW110139883 A TW 110139883A TW 110139883 A TW110139883 A TW 110139883A TW I791309 B TWI791309 B TW I791309B
Authority
TW
Taiwan
Prior art keywords
programming
memory
state
volatile memory
memory cells
Prior art date
Application number
TW110139883A
Other languages
Chinese (zh)
Other versions
TW202305595A (en
Inventor
曾柏皓
李峯旻
李永駿
Original Assignee
旺宏電子股份有限公司
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
Application filed by 旺宏電子股份有限公司 filed Critical 旺宏電子股份有限公司
Application granted granted Critical
Publication of TWI791309B publication Critical patent/TWI791309B/en
Publication of TW202305595A publication Critical patent/TW202305595A/en

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)

Abstract

A non-volatile memory and a programming method thereof are provided. The programming method of the non-volatile memory includes the following steps. A coarse programming procedure is performed for programing all of a plurality of memory cells in an erase state to 2^N-1 or 2^N program states. N is a positive integer. A fine programming procedure is performed for pushing all of memory cells into 2^N-1 or 2^N verify levels.

Description

非揮發記憶體及其編程方法 Non-volatile memory and its programming method

本揭露是有關於一種記憶體及其操作編程方法,且特別是有關於一種非揮發記憶體及其編程方法。 The present disclosure relates to a memory and its operation programming method, and in particular to a non-volatile memory and its programming method.

隨著半導體技術的發展,記憶體之儲存密度不斷增加。傳統上,需要透過錯誤糾正(error correcting code,ECC)電路來更正記憶體之錯誤,以確保資料正確性。在長時間運作與多次編程/抹除之後,資料的可靠度通常會降低。 With the development of semiconductor technology, the storage density of memory keeps increasing. Traditionally, memory errors need to be corrected through an error correcting code (ECC) circuit to ensure data accuracy. After a long time of operation and multiple programming/erasing, the reliability of the data usually decreases.

隨著位元數的增加,需要更強的ECC電路。然而,ECC電路會占用記憶體面積且增加解碼延遲時間。為了改善面積使用率與加速解碼速度,研究人員正致力於開發一種不需要ECC電路的記憶體或者只需要小面積ECC電路的記憶體。 As the number of bits increases, stronger ECC circuits are required. However, ECC circuits occupy memory area and increase decoding delay time. In order to improve the area utilization rate and speed up the decoding speed, researchers are working on developing a memory that does not require an ECC circuit or a memory that only requires a small area of the ECC circuit.

本揭露係有關於一種非揮發記憶體及其編程方法,其在編程方法的執行過程中移除了抹除狀態,故抹除狀態與編程 狀態之間的位元錯誤大幅減少,因此ECC電路已經不再需要或者可以縮小。 This disclosure relates to a non-volatile memory and its programming method, which removes the erasing state during the execution of the programming method, so the erasing state is related to the programming method Bit errors between states are greatly reduced, so ECC circuits are no longer needed or can be scaled down.

根據本揭露之一方面,提出一種非揮發記憶體之編程方法。非揮發記憶體之編程方法包括以下步驟。執行一粗略編程程序(coarse programming procedure),以將所有位於一抹除狀態(erase state)之數個記憶胞編程至2^N-1或2^N個編程狀態(program state)。N係為一正整數。執行一精細編程程序(fine programming procedure),以將所有記憶胞推至2^N-1或2^N個驗證位準(verify level)。 According to one aspect of the present disclosure, a programming method of a non-volatile memory is provided. The programming method of the non-volatile memory includes the following steps. Executing a coarse programming procedure to program all the memory cells in an erase state to 2^N-1 or 2^N program states. N is a positive integer. A fine programming procedure is performed to push all memory cells to 2^N-1 or 2^N verify levels.

根據本揭露之另一方面,提出一種非揮發記憶體。非揮發記憶體包括一記憶體陣列及一控制器。記憶體陣列包括數個記憶胞。控制器用以執行一粗略編程程序,以將所有位於一抹除狀態(erase state)之數個記憶胞編程至2^N-1或2^N個編程狀態(program state);並執行一精細編程程序(fine programming procedure),以將所有記憶胞推至2^N-1或2^N個驗證位準(verify level)。N係為一正整數。 According to another aspect of the present disclosure, a non-volatile memory is provided. The non-volatile memory includes a memory array and a controller. The memory array includes several memory cells. The controller is used to execute a rough programming procedure to program all memory cells in an erase state (erase state) to 2^N-1 or 2^N programming states (program state); and execute a fine programming procedure (fine programming procedure) to push all memory cells to 2^N-1 or 2^N verification levels. N is a positive integer.

根據本揭露之再一方面,提出一種非揮發記憶體之編程方法。非揮發記憶體之編程方法包括以下步驟。執行一粗略編程程序(coarse programming procedure),以將位於一抹除狀態(erase state)之數個記憶胞中的每一個編程至2^N-1或2^N個編程狀態(program state)之其中之一。N係為一正整數。執行一精細編程程序(fine programming procedure),以將所有 記憶胞的每一個推至2^N-1或2^N個驗證位準(verify level)之其中之一。 According to yet another aspect of the present disclosure, a programming method of a non-volatile memory is provided. The programming method of the non-volatile memory includes the following steps. Execute a coarse programming procedure to program each of the memory cells in an erase state to one of 2^N-1 or 2^N program states one. N is a positive integer. Execute a fine programming procedure to integrate all Each of the memory cells is pushed to one of 2^N-1 or 2^N verify levels.

為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下: In order to have a better understanding of the above and other aspects of the present disclosure, the following specific embodiments are described in detail in conjunction with the attached drawings as follows:

100,200:非揮發記憶體 100,200: non-volatile memory

110:記憶體陣列 110: memory array

120:放大器電路 120: amplifier circuit

130:周邊電路 130: peripheral circuit

140:控制器 140: Controller

150:頁面緩衝器 150: page buffer

160:電壓調節器 160: voltage regulator

170:ECC電路 170: ECC circuit

EV:抹除狀態 EV: erase state

S110,S120,S210:步驟 S110, S120, S210: steps

PV1,PV2,PV3,PV4,PV5,PV6,PV7,PV8:編程狀態 PV1, PV2, PV3, PV4, PV5, PV6, PV7, PV8: programming status

VR1,VR2,VR3,VR4,VR5,VR6,VR7,VR8:驗證位準 VR1, VR2, VR3, VR4, VR5, VR6, VR7, VR8: verification level

第1圖繪示根據一實施例之非揮發記憶體的方塊圖。 FIG. 1 shows a block diagram of a non-volatile memory according to an embodiment.

第2A圖示例說明非揮發記憶體在執行粗略編程程序後之臨界電壓分佈圖。 FIG. 2A illustrates an example of the threshold voltage distribution of a non-volatile memory after performing a rough programming procedure.

第2B圖示例說明非揮發記憶體在執行精細編程程序後之臨界電壓分佈圖。 FIG. 2B illustrates the threshold voltage distribution diagram of the non-volatile memory after executing the fine programming procedure.

第3圖說明第2B圖之非揮發記憶體在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖。 FIG. 3 illustrates the threshold voltage distribution of the non-volatile memory in FIG. 2B after heating, long-term use, or multiple programming/erasing.

第4圖繪示根據另一實施例之非揮發記憶體的方塊圖。 FIG. 4 shows a block diagram of a non-volatile memory according to another embodiment.

第5圖繪示根據第4圖實施例之非揮發記憶體之編程方法的流程圖。 FIG. 5 shows a flow chart of the programming method of the non-volatile memory according to the embodiment in FIG. 4 .

第6A圖示例說明根據第5圖實施2^N-1個編程狀態之非揮發記憶體在執行粗略編程程序後的臨界電壓分佈圖(N例如是3)。 FIG. 6A illustrates the threshold voltage distribution of the non-volatile memory with 2̂N−1 programmed states according to FIG. 5 after performing the rough programming procedure (N is 3 for example).

第6B圖示例說明根據第5圖實施2^N-1個編程狀態之非揮發記憶體在執行精細編程程序後的臨界電壓分佈圖(N例如是 3)。 FIG. 6B illustrates the threshold voltage distribution diagram of the non-volatile memory implementing the 2^N-1 programming states according to FIG. 5 after executing the fine programming procedure (N is, for example, 3).

第7圖示例說明根據第6B圖實施2^N-1個編程狀態之非揮發記憶體在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖(N例如是3)。 FIG. 7 illustrates the threshold voltage distribution (N is 3, for example) of a non-volatile memory with 2^N-1 programmed states according to FIG. 6B after heating, long-term use, or multiple programming/erasing.

第8A圖示例說明根據第5圖實施2^N個編程狀態之非揮發記憶體在執行粗略編程程序後的臨界電壓分佈圖(N例如是3)。 FIG. 8A illustrates the threshold voltage distribution diagram of a non-volatile memory implementing 2̂N programming states according to FIG. 5 after performing a rough programming procedure (N is 3, for example).

第8B圖示例說明根據第5圖實施2^N個編程狀態之非揮發記憶體在執行精細編程程序後的臨界電壓分佈圖(N例如是3)。 FIG. 8B illustrates the threshold voltage distribution diagram of the non-volatile memory implementing 2̂N programming states according to FIG. 5 after executing the fine programming procedure (N is 3 for example).

第9圖示例說明根據第8B圖實施2^N個編程狀態之非揮發記憶體在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖(N例如是3)。 FIG. 9 illustrates the threshold voltage distribution diagram of the non-volatile memory implementing 2^N programmed states according to FIG. 8B after heating, long-term use or multiple programming/erasing (N is eg 3).

第10圖繪示根據另一實施例之非揮發記憶體之編程方法的流程圖。 FIG. 10 is a flow chart of a programming method of a non-volatile memory according to another embodiment.

請參照第1圖,其繪示根據一實施例之非揮發記憶體100的方塊圖。非揮發記憶體100例如是一NAND快閃記憶體、一NOR快閃記憶體,一浮動閘極記憶體或一SONOS記憶體。非揮發記憶體100可以是一多層單元(Multi-Level Cell,MLC)記憶體、一三層單元(TLC)記憶體、一四層單元(Quad-Level Cell,QLC)記憶體或一五層單元(Penta-Level Cell,PLC)記憶體。 此外,非揮發記憶體100可以是一二維快閃記憶體或一三維快閃記憶體。 Please refer to FIG. 1 , which shows a block diagram of a non-volatile memory 100 according to an embodiment. The non-volatile memory 100 is, for example, a NAND flash memory, a NOR flash memory, a floating gate memory or a SONOS memory. The non-volatile memory 100 can be a multi-level cell (Multi-Level Cell, MLC) memory, a triple-level cell (TLC) memory, a four-level cell (Quad-Level Cell, QLC) memory or a five-layer Unit (Penta-Level Cell, PLC) memory. In addition, the non-volatile memory 100 can be a two-dimensional flash memory or a three-dimensional flash memory.

非揮發記憶體100例如是包括一記憶體陣列110、一放大器電路120、一周邊電路130、一控制器140、一頁面緩衝器150、一電壓調節器160及一ECC電路170。記憶體陣列110包括數個記憶胞。放大器電路120用於感測記憶胞中的低電壓訊號,並對其進行放大,以便正確解讀出1或0之資料。控制器140用以控制電路去執行編程方法、讀取方法與抹除方法。頁面緩衝器150用以暫存資料。電壓調節器160用以提供適當的電壓。 The non-volatile memory 100 includes, for example, a memory array 110 , an amplifier circuit 120 , a peripheral circuit 130 , a controller 140 , a page buffer 150 , a voltage regulator 160 and an ECC circuit 170 . The memory array 110 includes several memory cells. The amplifier circuit 120 is used to sense the low voltage signal in the memory cell and amplify it so as to correctly interpret the data of 1 or 0. The controller 140 is used to control the circuit to execute the programming method, the reading method and the erasing method. The page buffer 150 is used for temporarily storing data. The voltage regulator 160 is used to provide proper voltage.

非揮發記憶體之編程方法包括一粗略編程程序(coarse programming procedure)與一精細編程程序(fine programming procedure)。請參照第2A~2B圖,第2A圖示例說明非揮發記體在執行粗略編程程序後之臨界電壓分佈圖,第2B圖示例說明非揮發記憶體在執行精細編程程序後之臨界電壓分佈圖。在第2A~2B圖中,非揮發記憶體例如是一三層單元(Triple-Level Cell,TLC)三維NAND快閃記憶體。 The programming method of the non-volatile memory includes a coarse programming procedure and a fine programming procedure. Please refer to Figures 2A~2B. Figure 2A illustrates the threshold voltage distribution diagram of the non-volatile memory after the rough programming procedure is executed, and Figure 2B illustrates the threshold voltage distribution of the non-volatile memory after the fine programming procedure is executed. picture. In Figures 2A-2B, the non-volatile memory is, for example, a triple-level cell (Triple-Level Cell, TLC) three-dimensional NAND flash memory.

如第2A圖所示,在粗略編程程序的過程中,一些記憶胞會被編程至編程狀態(program state)PV1~PV7,一些記憶胞會維持於抹除狀態(erase state)EV。在粗略編程程序中,由於只需要將記憶胞粗略分為數個群集,故會採用較大的步階電壓。 As shown in FIG. 2A , during the rough programming process, some memory cells will be programmed to the program state (program state) PV1~PV7, and some memory cells will be maintained in the erase state (erase state) EV. In the coarse programming procedure, since the memory cells only need to be roughly divided into several clusters, larger step voltages are used.

如第2B圖所示,在精細編程程序中,會採用較小的步階電壓將記憶胞小心地向前推至驗證位準(verify level)VR1~VR7。因此,最後可以獲得抹除狀態EV與編程狀態PV1~PV7等8種狀態,位於這8種狀態之記憶胞用以進行資料儲存。 As shown in FIG. 2B, in the fine programming process, the memory cells are carefully pushed forward to the verify levels (verify levels) VR1~VR7 by using smaller step voltages. Therefore, finally, 8 states such as the erasing state EV and the programming states PV1-PV7 can be obtained, and the memory cells located in these 8 states are used for data storage.

請參照第3圖,其說明第2B圖之非揮發記憶體在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖。在加熱、長時間使用或多次編程/抹除之後,抹除狀態EV會發生電荷增益而向右移動。在另一方面,編程狀態PV1~PV7分布則會向左移動。因此需要ECC電路170來避免在抹除狀態EV與編程狀態PV1之間因重疊而造成位元錯誤。 Please refer to FIG. 3, which illustrates the threshold voltage distribution of the non-volatile memory in FIG. 2B after heating, long-term use, or multiple programming/erasing. After heating, prolonged use, or multiple program/erase cycles, the erased state EV shifts to the right due to charge gain. On the other hand, the distribution of programming states PV1~PV7 will shift to the left. Therefore, the ECC circuit 170 is needed to avoid bit errors due to overlap between the erase state EV and the program state PV1.

請參照第4圖,其繪示根據另一實施例之非揮發記憶體200的方塊圖。在此實施例中,控制器140在編程方法的執行過程中移除了抹除狀態EV,故抹除狀態EV與編程狀態PV1之間的位元錯誤能夠大幅減少,因此ECC電路170已經不再需要或者可以將ECC電路170之面積縮小。控制器140之運作將透過流程圖說明如下。 Please refer to FIG. 4 , which shows a block diagram of a non-volatile memory 200 according to another embodiment. In this embodiment, the controller 140 removes the erase state EV during the execution of the programming method, so bit errors between the erase state EV and the program state PV1 can be greatly reduced, so the ECC circuit 170 is no longer It is necessary or possible to reduce the area of the ECC circuit 170 . The operation of the controller 140 will be described through a flowchart as follows.

請參照第5~6B圖。第5圖繪示根據第4圖實施例非揮發記憶體200之編程方法的流程圖。第6A圖示例說明根據第5圖實施2^N-1個編程狀態之非揮發記憶體在執行粗略編程程序後的臨界電壓分佈圖(N例如是3)。第6B圖示例說明根據第5圖實施2^N-1個編程狀態之非揮發記憶體在執行精細編程程序後的臨 界電壓分佈圖(N例如是3)。控制器140用以至少執行此編程方法。 Please refer to Figures 5~6B. FIG. 5 shows a flow chart of the programming method of the non-volatile memory 200 according to the embodiment shown in FIG. 4 . FIG. 6A illustrates the threshold voltage distribution of the non-volatile memory with 2̂N−1 programmed states according to FIG. 5 after performing the rough programming procedure (N is 3 for example). Figure 6B illustrates the imminent behavior of a non-volatile memory with 2^N-1 programming states implemented according to Figure 5 after performing a fine programming procedure Boundary voltage distribution map (N is 3 for example). The controller 140 is used to at least execute the programming method.

在步驟S110中,控制器140執行粗略編程程序,以將所有位於抹除狀態之記憶胞編程至2^N-1(或2^N)個編程狀態。N係為一正整數,N>1。在粗略編程程序中,由於只需要將記憶胞粗略分為數個群集,故會採用較大的步階電壓。若非揮發記憶體係為多層單元(MLC)記憶體,則N為2;若非揮發記憶體係為三層單元(TLC)記憶體,則N為3;若非揮發記憶體係為四層單元(QLC)記憶體,則N為4;若非揮發記憶體係為五層單元(PLC)記憶體,則N為5。 In step S110, the controller 140 executes a rough programming procedure to program all the memory cells in the erased state to 2^N-1 (or 2^N) programming states. N is a positive integer, N>1. In the coarse programming procedure, since the memory cells only need to be roughly divided into several clusters, larger step voltages are used. If the non-volatile memory system is a multi-level cell (MLC) memory, N is 2; if the non-volatile memory system is a triple-level cell (TLC) memory, N is 3; if the non-volatile memory system is a quad-level cell (QLC) memory , then N is 4; if the non-volatile memory system is a five-level cell (PLC) memory, then N is 5.

如第6A圖所示,非揮發記憶體200係為三層單元記憶體且N為3。舉例來說,在執行粗略編程程序之後,所有位於抹除狀態EV之記憶胞EV可被編程為7個(2^3-1)編程狀態PV1~PV7。各個編程狀態PV1~PV7不同於抹除狀態EV。此處的「不同於」表示任何一個編程狀態PV1~PV7的臨界電壓不同於原來之抹除狀態EV的臨界電壓。在執行粗略編程程序之後,沒有任何記憶胞位於抹除狀態EV,並且位於抹除狀態EV之記憶胞的數量係為0。 As shown in FIG. 6A , the non-volatile memory 200 is a triple-level cell memory and N is 3. For example, after performing the rough programming procedure, all the memory cells EV in the erase state EV can be programmed into 7 (2̂3−1) programming states PV1˜PV7. Each of the programming states PV1-PV7 is different from the erasing state EV. The "different" here indicates that the threshold voltage of any programming state PV1-PV7 is different from the threshold voltage of the original erasing state EV. After performing the coarse programming procedure, there is no memory cell in the erased state EV, and the number of memory cells in the erased state EV is zero.

然後,在步驟S120中,控制器140執行精細編程程序,以將所有記憶胞推至2^N-1(或2^N)個驗證位準(verify level)。如第6B圖所示,在精細編程程序中,會採用較小的步階 電壓將記憶胞小心地向前推至驗證位準(verify level)VR1~VR7。 Then, in step S120, the controller 140 executes a fine programming procedure to push all the memory cells to 2^N−1 (or 2^N) verify levels. As shown in Figure 6B, in the fine programming procedure, smaller steps are used The voltage carefully pushes the memory cells forward to the verify level (verify level) VR1~VR7.

在執行編程方法之後,可以獲得2^N-1(或2^N)個編程狀態,位於這些編程狀態之記憶胞用以進行資料儲存。其中,抹除狀態EV已被移除且並非用以進行資料儲存。如第6B圖所示,位於編程狀態PV1~PV7之記憶胞用以進行資料儲存。 After executing the programming method, 2^N-1 (or 2^N) programming states can be obtained, and memory cells located in these programming states are used for data storage. Wherein, the erase state EV has been removed and is not used for data storage. As shown in FIG. 6B, the memory cells in the programming states PV1-PV7 are used for data storage.

請參照第7圖,其示例說明根據第6B圖實施2^N-1個編程狀態之非揮發記憶體200在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖(N例如是3)。在加熱、長時間使用或多次編程/抹除之後,編程狀態PV1~PV7會而向左移動。由於抹除狀態EV在編程方法中已經被移除,故發生在抹除狀態EV與編程狀態PV1之間因重疊而造成的位元錯誤可以大幅減少,因此可以不需要ECC電路(如第4圖所示)。 Please refer to FIG. 7, which illustrates the threshold voltage distribution diagram of the non-volatile memory 200 after heating, long-term use, or multiple programming/erasing according to FIG. 6B implementing 2^N-1 programming states (N such as is 3). After heating, long-term use, or multiple programming/erasing, the programming states PV1~PV7 will shift to the left. Since the erasing state EV has been removed in the programming method, the bit errors caused by overlapping between the erasing state EV and the programming state PV1 can be greatly reduced, so the ECC circuit (as shown in FIG. 4 shown).

第6A~7圖係以2^N-1個編程狀態為例做說明(N例如是3)。另請參照第8A~9圖。第8A圖示例說明根據第5圖實施2^N個編程狀態之非揮發記憶體在執行粗略編程程序後的臨界電壓分佈圖(N例如是3)。第8B圖示例說明根據第5圖實施2^N個編程狀態之非揮發記憶體在實施精細編程程序後的臨界電壓分佈圖(N例如是3)。第9圖示例說明根據第8B圖實施2^N個編程狀態之非揮發記憶體200在加熱、長時間使用或多次編程/抹除之後的臨界電壓分佈圖(N例如是3)。 6A-7 are illustrated by taking 2^N-1 programming states as an example (N is 3 for example). Please also refer to Figures 8A~9. FIG. 8A illustrates the threshold voltage distribution diagram of a non-volatile memory implementing 2̂N programming states according to FIG. 5 after performing a rough programming procedure (N is 3, for example). FIG. 8B illustrates the threshold voltage distribution diagram of the non-volatile memory implementing the 2̂N programming states according to FIG. 5 after performing the fine programming procedure (N is 3 for example). FIG. 9 illustrates the threshold voltage distribution diagram of the non-volatile memory 200 implementing 2̂N programmed states according to FIG. 8B after heating, long-term use, or multiple programming/erasing (N is 3, for example).

如第8A圖所示,在執行粗略編程程序之後,所有位於抹除狀態EV之記憶胞EV被編程為8個編程狀態PV1~PV8。各個編程狀態PV1~PV8不同於抹除狀態EV。此處的「不同於」表示任何一個編程狀態PV1~PV8的臨界電壓不同於原來之抹除狀態EV的臨界電壓。在執行粗略編程程序之後,沒有任何記憶胞位於抹除狀態EV,並且位於抹除狀態EV之記憶胞的數量係為0。 As shown in FIG. 8A, after performing the rough programming procedure, all the memory cells EV in the erase state EV are programmed into 8 programming states PV1~PV8. Each of the programming states PV1-PV8 is different from the erasing state EV. The "different" here indicates that the threshold voltage of any programming state PV1-PV8 is different from the threshold voltage of the original erasing state EV. After performing the coarse programming procedure, there is no memory cell in the erased state EV, and the number of memory cells in the erased state EV is zero.

如第8B圖所示,在精細編程程序中,會採用較小的步階電壓將記憶胞小心地向前推至驗證位準VR1~VR8。 As shown in FIG. 8B, in the fine programming process, the memory cells are carefully pushed forward to the verification levels VR1~VR8 by using small step voltages.

如第9圖所示,由於抹除狀態EV在編程方法中已經被移除,故發生在抹除狀態EV與編程狀態PV1之間因重疊而造成的位元錯誤可以大幅減少,因此可以不需要ECC電路(如第4圖所示)。 As shown in Figure 9, since the erased state EV has been removed in the programming method, the bit errors caused by overlapping between the erased state EV and the programmed state PV1 can be greatly reduced, so it is unnecessary ECC circuit (as shown in Figure 4).

請參照第10圖,其繪示根據另一實施例之非揮發記憶體200之編程方法的流程圖。在步驟S210中,控制器140執行粗略編程程序,以將每一個位於抹除狀態之記憶胞編程至2^N-1(或2^N)個編程狀態之其中之一,其中N係為大於1的正整數。在此實施例中,每一個記憶胞被編程至一種編程狀態。在執行粗略編程程序之後,記憶胞所使用之編程狀態可能少於2^N-1個(或2^N)個。若非揮發記憶體係為多層單元(MLC)記憶體,則N為2;若非揮發記憶體係為三層單元(TLC)記憶體,則N為3;若非揮發記憶體係為四層單元(QLC)記憶體,則N為4;若非揮發記憶體係為五層單元(PLC)記憶體,則N為5。舉例來說,當N為3,記 憶胞所可以使用之編程狀態例如是編程狀態PV1~PV7。在此步驟中,每一個位於抹除狀態EV之記憶胞會被編程至這7個編程狀態之其中之一。有可能編程狀態PV1、PV3~PV7被使用,而沒有使用到編程狀態PV2,故在執行粗略編程程序之後,記憶胞所使用之編程狀態可能少於7個。 Please refer to FIG. 10 , which shows a flowchart of a programming method of the non-volatile memory 200 according to another embodiment. In step S210, the controller 140 executes a rough programming procedure to program each memory cell in the erased state to one of 2^N-1 (or 2^N) programming states, where N is greater than A positive integer of 1. In this embodiment, each memory cell is programmed to a programmed state. After performing the coarse programming procedure, the memory cells may use less than 2^N-1 (or 2^N) programming states. If the non-volatile memory system is a multi-level cell (MLC) memory, N is 2; if the non-volatile memory system is a triple-level cell (TLC) memory, N is 3; if the non-volatile memory system is a quad-level cell (QLC) memory , then N is 4; if the non-volatile memory system is a five-level cell (PLC) memory, then N is 5. For example, when N is 3, remember The programming states available for the memory cells are, for example, the programming states PV1-PV7. In this step, each memory cell in the erased state EV is programmed to one of the seven programmed states. It is possible that the programming states PV1, PV3-PV7 are used, but the programming state PV2 is not used, so after the rough programming procedure is executed, the used programming states of the memory cells may be less than 7.

然後,在步驟S220中,控制器140執行精細編程程序,以將每一個記憶胞推至2^N-1(或2^N)個驗證位準(verify level)之其中之一。在執行精細編程程序之後,記憶胞所使用之編程狀態可能少於2^N-1個(或2^N個)。同樣的,在此步驟中,每一個位於抹除狀態EV之記憶胞會被編程至這7個編程狀態之其中之一。故在執行精細編程程序之後,記憶胞所使用之編程狀態可能少於7個。 Then, in step S220, the controller 140 executes a fine programming procedure to push each memory cell to one of 2^N-1 (or 2^N) verify levels. After executing the fine programming procedure, the memory cells may use fewer than 2^N-1 (or 2^N) programming states. Likewise, in this step, each memory cell in the erase state EV will be programmed to one of the seven programming states. Therefore, after executing the fine programming procedure, the memory cells may use less than 7 programming states.

在另一方面,若非揮發記憶體200為四層單元(QLC)記憶體且N為4。在執行粗略編程程序之後,所有位於抹除狀態EV之記憶胞EV被編程為15(或16)個編程狀態;或者,每一個位於抹除狀態之記憶胞編程至15(或16)個編程狀態之其中之一。 On the other hand, if the non-volatile memory 200 is a quad-level cell (QLC) memory and N is 4. After executing the rough programming procedure, all memory cells EV in the erased state EV are programmed to 15 (or 16) programming states; or, each memory cell in the erased state is programmed to 15 (or 16) programming states one of them.

此外,若非揮發記憶體200為五層單元(PLC)記憶體且N為5。在執行粗略編程程序之後,所有位於抹除狀態EV之記憶胞EV被編程為31(或32)個編程狀態;或者,每一個位於抹除狀態之記憶胞編程至31(或32)個編程狀態之其中之一。 In addition, if the non-volatile memory 200 is a five-level cell (PLC) memory and N is 5. After executing the rough programming procedure, all memory cells EV in the erased state EV are programmed to 31 (or 32) programming states; or, each memory cell in the erased state is programmed to 31 (or 32) programming states one of them.

根據上述實施例,控制器140在編程方法的執行過程中移除了抹除狀態EV,故抹除狀態EV與編程狀態PV1之間的位元錯誤大幅減少,因此ECC電路已經不再需要或者可以縮小。 According to the above-mentioned embodiment, the controller 140 removes the erasing state EV during the execution of the programming method, so the bit errors between the erasing state EV and the programming state PV1 are greatly reduced, so the ECC circuit is no longer needed or can be zoom out.

綜上所述,雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。 To sum up, although the present disclosure has been disclosed above with embodiments, it is not intended to limit the present disclosure. Those with ordinary knowledge in the technical field to which this disclosure belongs may make various changes and modifications without departing from the spirit and scope of this disclosure. Therefore, the scope of protection of this disclosure should be defined by the scope of the appended patent application.

S110,S120:步驟 S110, S120: steps

Claims (10)

一種非揮發記憶體之編程方法,包括:執行一粗略編程程序(coarse programming procedure),以將所有位於一抹除狀態(erase state)之複數個記憶胞編程至2^N-1或2^N個編程狀態(program state),並移除該抹除狀態,其中N係為一正整數;以及執行一精細編程程序(fine programming procedure),以將所有該些記憶胞推至2^N-1或2^N個驗證位準(verify level)。 A programming method of a non-volatile memory, comprising: executing a rough programming procedure (coarse programming procedure) to program all multiple memory cells in an erase state (erase state) to 2^N-1 or 2^N program state (program state), and remove the erase state, where N is a positive integer; and execute a fine programming procedure (fine programming procedure) to push all the memory cells to 2^N-1 or 2^N verification levels (verify levels). 如請求項1所述之非揮發記憶體之編程方法,其中在執行該粗略編程程序之後,位於該抹除狀態之該些記憶胞的數量為0。 The programming method of the non-volatile memory according to claim 1, wherein after the rough programming procedure is executed, the number of the memory cells in the erasing state is 0. 如請求項1所述之非揮發記憶體之編程方法,其中各該編程狀態的臨界電壓不同於該抹除狀態的臨界電壓。 The programming method of the non-volatile memory as claimed in claim 1, wherein the threshold voltage of each programming state is different from the threshold voltage of the erasing state. 如請求項1所述之非揮發記憶體之編程方法,其中若該非揮發記憶體係為一多層單元(Multi-Level Cell,MLC)記憶體,N係為2,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為3或4個該些編程狀態; 若該非揮發記憶體係為一三層單元(Triple-Level Cell,TLC)記憶體,N係為3,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為7或8個該些編程狀態;若該非揮發記憶體係為一四層單元(Quad-Level Cell,QLC)記憶體,N係為4,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為15或16個該些編程狀態;以及若該非揮發記憶體係為一五層單元(Penta-Level Cell,PLC)記憶體,N係為5,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為31或32個該些編程狀態。 The programming method of the non-volatile memory as described in Claim 1, wherein if the non-volatile memory system is a multi-level cell (Multi-Level Cell, MLC) memory, N is 2, after executing the rough programming program, All of the memory cells in the erasing state are programmed into 3 or 4 of the programming states; If the non-volatile memory system is a triple-level cell (Triple-Level Cell, TLC) memory, and N is 3, after executing the rough programming procedure, all the memory cells in the erasing state are programmed to 7 Or 8 of these programming states; if the non-volatile memory system is a four-level cell (Quad-Level Cell, QLC) memory, N is 4, after executing the rough programming program, all the erased state These memory cells are all programmed to 15 or 16 these programming states; and if the non-volatile memory system is a five-layer unit (Penta-Level Cell, PLC) memory, N is 5, after performing the rough programming program , all the memory cells in the erase state are programmed to 31 or 32 of the programming states. 如請求項1所述之非揮發記憶體之編程方法,其中在執行該粗略編程程序之後,位於該編程狀態之該些記憶胞用以進行資料儲存。 The programming method of the non-volatile memory according to claim 1, wherein after executing the rough programming procedure, the memory cells in the programming state are used for data storage. 一種非揮發記憶體,包括:一記憶體陣列,包括複數個記憶胞;以及一控制器,用以執行一粗略編程程序,以將所有位於一抹除狀態(erase state)之該些記憶胞編程至2^N-1或2^N個編程狀態(program state),並移除該抹除狀態,其中N係為一正整數;及執行一精細編程程序(fine programming procedure),以將所有該些記憶胞推至2^N-1或2^N個驗證位準(verify level)。 A non-volatile memory, comprising: a memory array including a plurality of memory cells; and a controller for executing a rough programming procedure to program all the memory cells in an erase state (erase state) to 2^N-1 or 2^N programming states (program state), and remove the erasing state, wherein N is a positive integer; and execute a fine programming procedure (fine programming procedure), so that all these Memory cells are pushed to 2^N-1 or 2^N verify levels. 如請求項6所述之非揮發記憶體,其中在執行該粗略編程程序之後,位於該抹除狀態之記憶胞的數量為0。 The non-volatile memory according to claim 6, wherein the number of memory cells in the erasing state is zero after the rough programming procedure is executed. 如請求項6所述之非揮發記憶體,其中各該編程狀態的臨界電壓不同於該抹除狀態的臨界電壓。 The non-volatile memory as claimed in claim 6, wherein the threshold voltage of each programming state is different from the threshold voltage of the erasing state. 如請求項6所述之非揮發記憶體,其中若該非揮發記憶體係為一多層單元(Multi-Level Cell,MLC)記憶體,N係為2,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為3或4個該些編程狀態;若該非揮發記憶體係為一三層單元(Triple-Level Cell,TLC)記憶體,N係為3,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為7或8個該些編程狀態;若該非揮發記憶體係為一四層單元(Quad-Level Cell,QLC)記憶體,N係為4,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為15或16個該些編程狀態;以及若該非揮發記憶體係為一五層單元(Penta-Level Cell,PLC)記憶體,N係為5,在執行該粗略編程程序之後,所有位於該抹除狀態之該些記憶胞均被編程為31或32個該些編程狀態。 The non-volatile memory as described in claim item 6, wherein if the non-volatile memory system is a multi-level cell (Multi-Level Cell, MLC) memory, N is 2, and after executing the rough programming program, all located in the These memory cells in the erasing state are all programmed into 3 or 4 of these programming states; if the non-volatile memory system is a triple-level cell (Triple-Level Cell, TLC) memory, N is 3, when executing the After the rough programming procedure, all the memory cells in the erasing state are programmed into 7 or 8 programming states; if the non-volatile memory system is a quad-level cell (Quad-Level Cell, QLC) memory, N is 4, after carrying out this rough programming procedure, all these memory cells that are positioned at this erasing state are all programmed to these programming states of 15 or 16; And if this non-volatile memory system is a five-level unit (Penta -Level Cell, PLC) memory, N is 5, after executing the rough programming procedure, all the memory cells in the erasing state are programmed into 31 or 32 programming states. 一種非揮發記憶體之編程方法,包括:執行一粗略編程程序(coarse programming procedure),以將位於一抹除狀態(erase state)之複數個記憶胞中的每一個 編程至2^N-1或2^N個編程狀態(program state)之其中之一,並移除該抹除狀態,其中N係為一正整數;以及執行一精細編程程序(fine programming procedure),以將該些記憶胞的每一個推至2^N-1或2^N個驗證位準(verify level)之其中之一。 A programming method of a non-volatile memory, comprising: executing a rough programming procedure (coarse programming procedure), so that each of a plurality of memory cells in an erasing state (erase state) programming to one of 2^N-1 or 2^N programming states (program state), and removing the erase state, wherein N is a positive integer; and executing a fine programming procedure , to push each of the memory cells to one of 2^N-1 or 2^N verify levels.
TW110139883A 2021-07-20 2021-10-27 Non-volatile memory and programming method thereof TWI791309B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163223552P 2021-07-20 2021-07-20
US63/223,552 2021-07-20

Publications (2)

Publication Number Publication Date
TWI791309B true TWI791309B (en) 2023-02-01
TW202305595A TW202305595A (en) 2023-02-01

Family

ID=86661360

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110139883A TWI791309B (en) 2021-07-20 2021-10-27 Non-volatile memory and programming method thereof

Country Status (1)

Country Link
TW (1) TWI791309B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090010068A1 (en) * 2007-07-03 2009-01-08 Shih-Chung Lee Systems for Coarse/Fine Program Verification in Non-Volatile Memory Using Different Reference Levels for Improved Sensing
TW201203259A (en) * 2010-05-04 2012-01-16 Sandisk Corp Mitigating channel coupling effects during sensing of non-volatile storage elements
CN104282337A (en) * 2013-07-01 2015-01-14 三星电子株式会社 Storage device and a write method thereof
CN112599157A (en) * 2020-12-17 2021-04-02 长江存储科技有限责任公司 Three-dimensional memory and programming method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090010068A1 (en) * 2007-07-03 2009-01-08 Shih-Chung Lee Systems for Coarse/Fine Program Verification in Non-Volatile Memory Using Different Reference Levels for Improved Sensing
TW201203259A (en) * 2010-05-04 2012-01-16 Sandisk Corp Mitigating channel coupling effects during sensing of non-volatile storage elements
CN104282337A (en) * 2013-07-01 2015-01-14 三星电子株式会社 Storage device and a write method thereof
CN112599157A (en) * 2020-12-17 2021-04-02 长江存储科技有限责任公司 Three-dimensional memory and programming method thereof

Also Published As

Publication number Publication date
TW202305595A (en) 2023-02-01

Similar Documents

Publication Publication Date Title
US8355279B2 (en) Nonvolatile memory device and system, and method of programming a nonvolatile memory device
KR101893145B1 (en) Memory systems and block copy methods thereof
US8582360B2 (en) Read method for nonvolatile memory device, and data storage system using the same
US9502137B2 (en) Method and device for optimizing log likelihood ratio (LLR) used for nonvolatile memory device and for correcting errors in nonvolatile memory device
KR101530997B1 (en) Program method of non-volatile memory device for concentrating the interference between memory cells
KR101617641B1 (en) Nonvalatile memory device, memory system having its, and programming method thereof
KR101586046B1 (en) Storage device and reading method thereof
CN106448733B (en) Nonvolatile memory device, program method, and program verification method thereof
US8788908B2 (en) Data storage system having multi-bit memory device and on-chip buffer program method thereof
US9343158B2 (en) Methods of programming multi-level cell nonvolatile memory devices and devices so operating
KR101636248B1 (en) Flash memory device, flash memory system, and method of programming the flash memory device
KR20140008705A (en) Non_volatile memory device and memory system having the same and memory management, erase and programming methods thereof
US20160141036A1 (en) Nonvolatile memory and related reprogramming method
JP2011040137A (en) Controller
JP2011003263A (en) Nonvolatile memory device and programming method thereof
CN107871515B (en) Semiconductor memory device and method of operating the same
KR101967368B1 (en) Semiconductor memory device and operating method thereof
KR20110092090A (en) Non-volatile memory device and memory system including the same
US20140129902A1 (en) Apparatus and method of operating memory device
US8441862B2 (en) Program method of multi-bit memory device and data storage system using the same
KR20180029430A (en) Semiconductor memory device and operating method thereof
US11150987B2 (en) Methods of controlling operation of nonvolatile memory devices and data converters for performing the same
US11249848B2 (en) Error check code (ECC) decoder and memory system including ECC decoder
US8243519B2 (en) Writing method of a nonvolatile memory device
CN115641895A (en) Non-volatile memory and programming method thereof