TWI657453B - Memory system and operating method thereof - Google Patents
Memory system and operating method thereof Download PDFInfo
- Publication number
- TWI657453B TWI657453B TW106114753A TW106114753A TWI657453B TW I657453 B TWI657453 B TW I657453B TW 106114753 A TW106114753 A TW 106114753A TW 106114753 A TW106114753 A TW 106114753A TW I657453 B TWI657453 B TW I657453B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- page
- programming
- memory
- controller
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種記憶體系統,包括第一快閃記憶體、第二快閃記憶體以及控制器。第一快閃記憶體包括記憶體陣列,記憶體陣列係分成複數個頁。控制器耦接第一快閃記憶體以及第二快閃記憶體,並用以:在對該第一快閃記憶體中的一特定頁作編程之前,控制該第二快閃記憶體記錄該特定頁的位址;以及在該特定頁被編程之後,控制該第二快閃記憶體記錄該特定頁的一編程狀態。 A memory system includes a first flash memory, a second flash memory, and a controller. The first flash memory includes a memory array, and the memory array is divided into a plurality of pages. The controller is coupled to the first flash memory and the second flash memory, and configured to: control the second flash memory to record the specific one before programming the specific page in the first flash memory An address of the page; and after the particular page is programmed, controlling the second flash memory to record a programming state of the particular page.
Description
本揭露一般地關於一種記憶體系統及其操作方法。 The present disclosure generally relates to a memory system and method of operation thereof.
快閃記憶體已廣泛地使用在各式電子產品中。快閃記憶體是一種能在斷電後仍維持資料的非揮發性記憶體。然而,若快閃記憶體在資料操作(例如編程/抹除操作)進行中電源突然中斷,其可能會因此停留在非完整的狀態。 Flash memory has been widely used in various electronic products. Flash memory is a non-volatile memory that retains data after a power outage. However, if the flash memory is suddenly interrupted during data operations (such as programming/erasing operations), it may therefore stay in an incomplete state.
本揭露是關於一種記憶體系統及其操作方法。記憶體系統包括第一快閃記憶體以及第二快閃記憶體。當第一快閃記憶體中的一頁欲被編程,該頁的位址,例如實體位址(physical address)將先被記錄在第二快閃記憶體中。此外,在該頁被編程之後,第二快閃記憶體亦會記錄該頁的對應編程狀態(例如編程結束標記)。之後,藉由檢查記錄在第二快閃記憶體中的資訊,即可辨識出例如因電源中斷所造成的編程不完全頁。用來處理編程不完全頁的一不完全編程處理程序(insufficient program handling procedure)可只在偵測到編程不完全頁 時執行。因此,記憶體系統的性能、啟動時間、以及寫入放大(write amplification)皆可被改善。 The present disclosure relates to a memory system and method of operation thereof. The memory system includes a first flash memory and a second flash memory. When a page in the first flash memory is to be programmed, the address of the page, such as a physical address, will be recorded first in the second flash memory. In addition, after the page is programmed, the second flash memory also records the corresponding programming state of the page (eg, a programming end flag). Thereafter, by checking the information recorded in the second flash memory, it is possible to recognize, for example, an incomplete page due to a power interruption. An insufficient program handling procedure for handling incomplete pages can only detect incomplete pages Execute. Therefore, the performance, start-up time, and write amplification of the memory system can be improved.
根據本揭露之一實施例,提出一種記憶體系統,其包括第一快閃記憶體、第二快閃記憶體以及控制器。第一快閃記憶體包括記憶體陣列,該記憶體陣列係分成複數個頁。控制器耦接第一快閃記憶體以及第二快閃記憶體,並用以:在對該第一快閃記憶體中的一特定頁作編程之前,控制該第二快閃記憶體記錄該特定頁的位址;以及在該特定頁被編程之後,控制該第二快閃記憶體記錄該特定頁的一編程狀態。 In accordance with an embodiment of the present disclosure, a memory system is provided that includes a first flash memory, a second flash memory, and a controller. The first flash memory includes a memory array that is divided into a plurality of pages. The controller is coupled to the first flash memory and the second flash memory, and configured to: control the second flash memory to record the specific one before programming the specific page in the first flash memory An address of the page; and after the particular page is programmed, controlling the second flash memory to record a programming state of the particular page.
根據本揭露之又一實施例,提出一種記憶體系統的操作方法,其中記憶體系統包括第一快閃記憶體、第二快閃記憶體以及耦接第一快閃記憶體和第二快閃記憶體的控制器,第一快閃記憶體包括記憶體陣列,記憶體陣列係分成複數個頁,該操作方法包括:在對該第一快閃記憶體中的一特定頁作編程之前,控制器控制該第二快閃記憶體記錄該特定頁的位址;以及在該特定頁被編程之後,控制器控制該第二快閃記憶體記錄該特定頁的一編程狀態。 According to still another embodiment of the present disclosure, a method of operating a memory system is provided, wherein the memory system includes a first flash memory, a second flash memory, and a first flash memory and a second flash. The controller of the memory, the first flash memory includes a memory array, and the memory array is divided into a plurality of pages, the operation method includes: controlling a specific page in the first flash memory before programming Controlling the second flash memory to record an address of the particular page; and after the particular page is programmed, the controller controls the second flash memory to record a programmed state of the particular page.
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下: In order to better understand the above and other aspects of the present invention, the following detailed description of the embodiments and the accompanying drawings
10‧‧‧記憶體系統 10‧‧‧ memory system
12‧‧‧主機裝置 12‧‧‧Host device
102‧‧‧第一快閃記憶體 102‧‧‧First flash memory
104‧‧‧第二快閃記憶體 104‧‧‧Second flash memory
106‧‧‧控制器 106‧‧‧ Controller
202‧‧‧記憶體陣列 202‧‧‧Memory array
204‧‧‧列解碼器 204‧‧‧ column decoder
206‧‧‧頁緩衝器 206‧‧ ‧ buffer
208‧‧‧控制單元 208‧‧‧Control unit
210‧‧‧行解碼器 210‧‧‧ line decoder
WL_1~WL_m‧‧‧字元線 WL_1~WL_m‧‧‧ character line
BL_1~BL_n‧‧‧位元線 BL_1~BL_n‧‧‧ bit line
302、304、402、404、406、408、410、412、414、416、418、420、502、504、506、508、510、512‧‧‧步驟 302, 304, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 502, 504, 506, 508, 510, 512 ‧ ‧ steps
P1~P10‧‧‧頁 P1~P10‧‧‧Page
ADD1~ADD5‧‧‧頁的實體位址 EJB1~ADD5‧‧‧ physical address
STA1~STA5‧‧‧頁的編程狀態 Programming status of STA1~STA5‧‧‧ pages
第1圖繪示根據本揭露一實施例的記憶體系統的方塊圖。 FIG. 1 is a block diagram of a memory system in accordance with an embodiment of the present disclosure.
第2圖繪示根據本揭露一實施例的第一快閃記憶體的方塊圖。 FIG. 2 is a block diagram of a first flash memory according to an embodiment of the present disclosure.
第3圖繪示依據本揭露一實施例的記憶體系統的操作方法的流程圖。 FIG. 3 is a flow chart showing a method of operating a memory system in accordance with an embodiment of the present disclosure.
第4圖繪示依據本揭露一實施例的記憶體系統的訊號操作時序圖。 FIG. 4 is a timing diagram of signal operation of the memory system according to an embodiment of the present disclosure.
第5圖繪示依據本揭露一實施例的記憶體系統的電源中斷恢復程序的流程圖。 FIG. 5 is a flow chart showing a power interruption recovery procedure of the memory system according to an embodiment of the present disclosure.
第6圖繪示第一快閃記憶體中頁的狀態以及第二快閃記憶體中所記錄的相關資訊。 Figure 6 is a diagram showing the state of the page in the first flash memory and the related information recorded in the second flash memory.
第1圖繪示根據本揭露一實施例的記憶體系統10的方塊圖。 FIG. 1 is a block diagram of a memory system 10 in accordance with an embodiment of the present disclosure.
記憶體系統10包括一或多個第一快閃記憶體102、一或多個第二快閃記憶體104以及控制器106。為方便說明,此處僅以一個第一快閃記憶體102以及一個第二快閃記憶體104作例子。 The memory system 10 includes one or more first flash memories 102, one or more second flash memories 104, and a controller 106. For convenience of explanation, only one first flash memory 102 and one second flash memory 104 are exemplified herein.
第一快閃記憶體102可以是反及閘(NAND)快閃記憶體。第二快閃記憶體104可以是反或閘(NOR)快閃記憶體。在一些實施例中,第一快閃記憶體102可替換成相變化記憶體(phase change memory,PCM)或其它以頁為編程單位(page-program based)的非揮發性記憶體。第二快閃記憶體104可替換成磁阻隨機存取記憶體(magnetoresistive random access memory,MRAM)或任何其他可以位元組作定址(byte-addressable)的非揮發性記憶體。 The first flash memory 102 can be a NAND flash memory. The second flash memory 104 can be a reverse OR gate (NOR) flash memory. In some embodiments, the first flash memory 102 can be replaced with a phase change memory (PCM) or other page-program based non-volatile memory. The second flash memory 104 can be replaced by a magnetoresistive random access memory (MRAM) or any other non-volatile memory that can be byte-addressable.
控制器106耦接第一快閃記憶體102以及第二快閃記憶體104。控制器106可分析並處理來自主機裝置12的要求及/或指令,並執行本揭露所描述的各種功能。 The controller 106 is coupled to the first flash memory 102 and the second flash memory 104. Controller 106 can analyze and process the requirements and/or instructions from host device 12 and perform the various functions described in this disclosure.
控制器106可以硬體、軟體或其結合來實現。舉例來說,控制器106可以微處理電路、微控制器、數位訊號處理(digital signal processing circuit,DSP)電路、可編程邏輯裝置(programmable logic device,PLD)、狀態機、獨立硬體電路或任何其他合適的控制邏輯來實現。 Controller 106 can be implemented in hardware, software, or a combination thereof. For example, the controller 106 can be a microprocessor circuit, a microcontroller, a digital signal processing circuit (DSP) circuit, a programmable logic device (PLD), a state machine, an independent hardware circuit, or any Other suitable control logic is implemented.
第2圖繪示根據本揭露一實施例的第一快閃記憶體102的方塊圖。第一快閃記憶體102包括記憶體陣列202、列解碼器204、頁緩衝器206、控制單元208以及行解碼器210。 FIG. 2 is a block diagram of a first flash memory 102 in accordance with an embodiment of the present disclosure. The first flash memory 102 includes a memory array 202, a column decoder 204, a page buffer 206, a control unit 208, and a row decoder 210.
記憶體陣列202可包括複數個記憶胞。取決於作執行的電性操作,此些記憶胞可被群組成記憶區塊(block)或頁(page)。舉例來說,記憶體陣列202中的記憶胞可被群組成複數個頁,以作為對NAND快閃記憶體執行編程操作的基本單元。 Memory array 202 can include a plurality of memory cells. Depending on the electrical operation being performed, such memory cells may be grouped into memory blocks or pages. For example, memory cells in memory array 202 can be grouped into a plurality of pages as a basic unit for performing programming operations on NAND flash memory.
列解碼器204經由一或多條字元線WL_1~WL_m耦接至記憶體陣列202。列解碼器204受控於控制單元208,可解碼來自控制器106的位址,並依據解碼結果選擇及驅動字元線WL_1~WL_m。 Column decoder 204 is coupled to memory array 202 via one or more word lines WL_1 WL WL_m. The column decoder 204 is controlled by the control unit 208, which can decode the address from the controller 106 and select and drive the word lines WL_1 WL WL_m according to the decoding result.
頁緩衝器206經由一或多條位元線BL_1~BL_n耦接至記憶體陣列202。來自控制器106的寫入資料可透過行解碼器210依序地載入頁緩衝器206當中。在對記憶體陣列202中的特定頁作編程之前,寫入資料會先存放在頁緩衝器206當中。 The page buffer 206 is coupled to the memory array 202 via one or more bit lines BL_1 BLBL_n. The write data from the controller 106 can be sequentially loaded into the page buffer 206 via the row decoder 210. The write data is first stored in the page buffer 206 prior to programming a particular page in the memory array 202.
控制單元208耦接列解碼器204以及行解碼器210。控制單元208可回應來自控制器106的控制指令,對記憶體陣列202執行一般的記憶體操作,像是編程、讀取、抹除等操作。在一實施例中,控制單元208可以是設置在第一快閃記憶體102中的裝置控制器(device controller),其可透過硬體、軟體或其結合的形式來實現。 Control unit 208 is coupled to column decoder 204 and row decoder 210. Control unit 208 can perform general memory operations, such as programming, reading, erasing, etc., on memory array 202 in response to control commands from controller 106. In an embodiment, the control unit 208 can be a device controller disposed in the first flash memory 102, which can be implemented in the form of hardware, software, or a combination thereof.
第3圖繪示依據本揭露一實施例的記憶體系統的操作方法的流程圖。為方便說明,此處的記憶體系統是以第1圖中的記憶體系統10作為例示。 FIG. 3 is a flow chart showing a method of operating a memory system in accordance with an embodiment of the present disclosure. For convenience of explanation, the memory system herein is exemplified by the memory system 10 in Fig. 1.
在步驟302,在對第一快閃記憶體102中的特定頁作編程之前,控制器106控制第二快閃記憶體104記錄該特定頁的位址,例如實體位址。 At step 302, prior to programming a particular page in the first flash memory 102, the controller 106 controls the second flash memory 104 to record the address of the particular page, such as a physical address.
特定頁泛指第一快閃記憶體102中被選擇寫入資料的頁。編程操作是由控制器106所提供的編程指令來發動。當第一快閃記憶體102從控制器106接收編程指令,寫入資料會被載入頁緩衝器206當中。第一快閃記憶體102接著會等待來自控制器106的進一步指令(例如確認指令)。當接收到確認指令,第一快閃記憶體102才會將頁緩衝器206的寫入資料編程至特定頁當中。此時,特定頁才會被編程。 A particular page generally refers to a page in the first flash memory 102 that is selected to be written to the material. The programming operation is initiated by programming instructions provided by controller 106. When the first flash memory 102 receives a programming instruction from the controller 106, the write data is loaded into the page buffer 206. The first flash memory 102 then waits for further instructions from the controller 106 (e.g., a confirmation command). When the acknowledgment command is received, the first flash memory 102 programs the write data of the page buffer 206 into a particular page. At this point, the specific page will be programmed.
依據本揭露實施例,在特定頁被編程前,也就是該特定頁尚未被編程,控制器106會控制第二快閃記憶體104記錄該特定頁的實體位址。因此,即便在對該特定頁進行編程的過程中電源突然中斷,仍可從第二快閃記憶體104所記錄的資料中找出編程不完全的該特定頁。 In accordance with an embodiment of the present disclosure, before a particular page is programmed, that is, the particular page has not been programmed, the controller 106 controls the second flash memory 104 to record the physical address of the particular page. Therefore, even if the power supply is suddenly interrupted during the programming of the specific page, the specific page whose programming is incomplete can be found from the material recorded by the second flash memory 104.
在步驟304,在特定頁被編程之後,控制器106會控制第二快閃記憶體104記錄該特定頁的編程狀態。 At step 304, after the particular page is programmed, the controller 106 controls the second flash memory 104 to record the programming state of the particular page.
舉例來說,在該特定頁被編程之後,控制器106將對該特定頁進行驗證操作(verify operation)。在驗證操作期間,係採用緊密閥電壓設定(tight threshold voltage setting)來判斷該特定頁是否編程成功。若所產生的錯誤位元計數(error bit count)低於一預定值,該特定頁係編程成功(即通過驗證操作),此時控制器106將控制第二快閃記憶體104記錄該特定頁的編程狀態。反之,若所產生的錯誤位元計數超過預定值,該特定頁係編程失敗,一失敗狀態將回報至控制器106。 For example, after the particular page is programmed, the controller 106 will perform a verify operation on the particular page. During the verify operation, a tight threshold voltage setting is used to determine if the particular page was programmed successfully. If the generated error bit count is lower than a predetermined value, the particular page is successfully programmed (ie, by a verify operation), at which time the controller 106 will control the second flash memory 104 to record the particular page. The programming state. Conversely, if the generated error bit count exceeds a predetermined value, the particular page system fails to be programmed and a failed status is reported to controller 106.
透過上述方式,若執行於特定頁的編程操作是完全的(例如在編程操作過程中並未發生電源中斷事件),該特定頁的實體位址以及編程狀態皆會被記錄在第二快閃記憶體104當中。反之,若執行於特定頁的編程操作是不完全的,例如在編程操作過程中電源突然中斷,第二快閃記憶體104可能只會記錄了該特定頁的實體位址,卻沒有記錄到該特定頁的編程狀態。因為電源中斷事件,該特定頁的編程狀態將無法記錄於第二快閃記憶體104中。因此,若一特定頁的實體位址已記錄於第二快閃記憶體,控制器106可透過檢查該特定頁的編程狀態是否出現在第二快閃記憶體104,以確認該特定頁是否被完全地編程。若該特定頁的實體位址以及編程狀態皆被記錄在第二快閃記憶體104中,該特定頁將被視為未遭受電源中斷事件的編程完全頁;反之,若第二快閃記憶體104中有該特定頁的實體位址而沒有該特定頁的編程狀態,該特定頁將被視為可能遭受電源中斷事件的編程不完全頁。 In the above manner, if the programming operation performed on a specific page is complete (for example, a power interruption event does not occur during a programming operation), the physical address and the programming state of the specific page are recorded in the second flash memory. In the body 104. On the other hand, if the programming operation performed on a specific page is incomplete, for example, the power supply is suddenly interrupted during the programming operation, the second flash memory 104 may only record the physical address of the specific page, but the physical address is not recorded. The programming state of a particular page. Because of the power interruption event, the programmed state of the particular page will not be recorded in the second flash memory 104. Therefore, if the physical address of a specific page has been recorded in the second flash memory, the controller 106 can check whether the specific page is confirmed by checking whether the programming state of the specific page appears in the second flash memory 104. Completely programmed. If the physical address and the programmed state of the particular page are recorded in the second flash memory 104, the particular page will be treated as a programmed full page that is not subject to a power interruption event; conversely, if the second flash memory There is a physical address for the particular page in 104 without the programming state of the particular page, which will be considered a programmed incomplete page that may be subject to a power interruption event.
在一實施例中,當第二快閃記憶體104被控制器106設定為禁能(或不作動),控制器106將控制第一快閃記憶體102紀錄第二快閃記憶體104的資料保持(data retention)資訊,例如第二快閃記憶體104中記憶胞的閥電壓分布。 In an embodiment, when the second flash memory 104 is set to be disabled (or not activated) by the controller 106, the controller 106 controls the first flash memory 102 to record the data of the second flash memory 104. Data retention information, such as a valve voltage distribution of memory cells in the second flash memory 104.
第4圖繪示依據本揭露一實施例的記憶體系統的訊號操作時序圖。為方便說明,此處的記憶體系統是以第1圖中的記憶體系統10作為例示。此外,繪示於此圖中上半部之包含狀態404、406、410、412、414及416的序列係代表對第一快閃記憶體102所執行的操作,而繪示於此圖中下半部之包含狀態402、408、418及420的序列係代表對第二快閃記憶體104所執行的操作。 FIG. 4 is a timing diagram of signal operation of the memory system according to an embodiment of the present disclosure. For convenience of explanation, the memory system herein is exemplified by the memory system 10 in Fig. 1. In addition, the sequence including the states 404, 406, 410, 412, 414, and 416 of the upper half of the figure represents the operations performed on the first flash memory 102, and is depicted in the figure below. The sequence of the half containing states 402, 408, 418, and 420 represents the operations performed on the second flash memory 104.
在狀態402,第二快閃記憶體140的抹除操作被暫停(suspend)。 In state 402, the erase operation of the second flash memory 140 is suspended.
具體而言,若控制器106欲對第一快閃記憶體102中的特定頁發起編程操作,控制器106會先判斷第二快閃記憶體104是否操作於適合記錄該特定頁的相關資訊的狀態。若判斷結果為否,例如第二快閃記憶體104正在進行抹除操作,控制器106將暫停此抹除操作。若判斷結果為是,控制器106將對第一快閃記憶體102傳送編程指令以發起編程操作,如狀態404所示。 Specifically, if the controller 106 wants to initiate a programming operation on a specific page in the first flash memory 102, the controller 106 first determines whether the second flash memory 104 is operating on a related information suitable for recording the specific page. status. If the result of the determination is no, for example, the second flash memory 104 is performing an erase operation, the controller 106 will suspend the erase operation. If the answer is yes, the controller 106 will transmit a programming command to the first flash memory 102 to initiate a programming operation, as indicated by state 404.
在狀態404,控制器106對第一快閃記憶體102傳送編程指令,以要求第一快閃記憶體102對特定頁進行編程。 At state 404, controller 106 transmits a programming instruction to first flash memory 102 to request first flash memory 102 to program a particular page.
在一實施例中,當判斷第二快閃記憶體104的記憶體空間不足以記錄特定頁的實體位址以及編程狀態,在對第一快閃記憶體 102傳送編程指令之前,控制器106將先等待第二快閃記憶體104完成抹除操作。 In an embodiment, when it is determined that the memory space of the second flash memory 104 is insufficient to record the physical address of the specific page and the programming state, the first flash memory is Before transmitting the programming command 102, the controller 106 will wait for the second flash memory 104 to complete the erase operation.
在狀態406,當第一快閃記憶體102接收來自控制器106的編程指令,針對該特定頁的寫入資料將載入第一快閃記憶體102的頁緩衝器206當中。 In state 406, when the first flash memory 102 receives a programming instruction from the controller 106, the write data for that particular page will be loaded into the page buffer 206 of the first flash memory 102.
同時間,在狀態408,控制器106將控制第二快閃記憶體104記錄該特定頁的實體位址,也就是資料欲寫入第一快閃記憶體102中的位置。 Meanwhile, in state 408, the controller 106 will control the second flash memory 104 to record the physical address of the particular page, that is, the location in which the data is to be written into the first flash memory 102.
在狀態410,在第二快閃記憶體104已記錄該特定頁的實體位址、且寫入資料已載入頁緩衝器206之後,控制器106將對第一快閃記憶體102傳送確認指令,以致能第一快閃記憶體102將頁緩衝器206中的寫入資料編程至記憶體陣列202中的該特定頁。 In state 410, after the second flash memory 104 has recorded the physical address of the particular page and the write data has been loaded into the page buffer 206, the controller 106 will transmit a confirmation command to the first flash memory 102. So that the first flash memory 102 programs the write data in the page buffer 206 to the particular page in the memory array 202.
由於在狀態408時第二快閃記憶體104只需以幾個位元組來登錄實體位址訊息,故對第二快閃記憶體104作實體位址訊息的登錄可以在狀態406期間內完成。換言之,在狀態406完成時,控制器106可接著對第一快閃記憶體102發送確認指令,而不影響第一快閃記憶體102的編程效能。 Since the second flash memory 104 only needs to log in the physical address information in a few bytes during the state 408, the registration of the physical address message to the second flash memory 104 can be completed during the state 406. . In other words, upon completion of state 406, controller 106 can then send a confirmation command to first flash memory 102 without affecting the programming performance of first flash memory 102.
接著,在狀態412,第一快閃記憶體102中記憶體陣列202的特定頁被編程。第一快閃記憶體102會回應接收到的確認指令,將頁緩衝器206中的寫入資料編程至特定頁當中。 Next, in state 412, a particular page of memory array 202 in first flash memory 102 is programmed. The first flash memory 102, in response to the received acknowledgment command, programs the write data in the page buffer 206 into a particular page.
在狀態414,控制器106驗證已編程的該特定頁,並接著在狀態416取得該特定頁的編程狀態。在一例子中,該特定頁的編程狀態可包括一指示特定頁已成功編程的指標。 At state 414, controller 106 verifies the particular page that was programmed, and then retrieves the programmed state of the particular page at state 416. In an example, the programming state of the particular page can include an indicator that the particular page has been successfully programmed.
接著,在狀態418,控制器106控制第二快閃記憶體104記錄已取得的該特定頁的編程狀態。 Next, at state 418, controller 106 controls second flash memory 104 to record the programmed state of the particular page that has been retrieved.
透過上述方式,只有在對該特定頁的編程結束後,第二快閃記憶體104才會記錄到該特定頁的對應編程狀態。對於實體位址已經被記錄在第二快閃記憶體104的一特定頁而言,在系統電源開啟時,控制器106可藉由檢查該特定頁的編程狀態是否有出現在第二快閃記憶體104中,以判斷該特定頁是否編程完全。若該特定頁的編程狀態有出現在第二快閃記憶體104中,表示該特定頁是正常地被編程。反之,若第二快閃記憶體104只記錄了該特定頁的實體位址,而沒有記錄對應的編程狀態,則表示該特定頁被不完全地編程。例如,在編程該特定頁的過程中發生電源中斷事件。 In the above manner, the second flash memory 104 will record the corresponding programming state of the particular page only after the programming of the particular page ends. For a specific page whose physical address has been recorded in the second flash memory 104, when the system power is turned on, the controller 106 can check whether the programming state of the specific page appears in the second flash memory. In the body 104, to determine whether the particular page is fully programmed. If the programming state of the particular page is present in the second flash memory 104, it indicates that the particular page is normally programmed. Conversely, if the second flash memory 104 only records the physical address of the particular page without recording the corresponding programming state, it indicates that the particular page is not fully programmed. For example, a power outage event occurs during the programming of that particular page.
在狀態420,在第二快閃記憶體104記錄了該特定頁的實體位址以及編程狀態之後,控制器106對第二快閃記憶體104執行抹除操作,讓第二快閃記憶體104有空間記錄下一欲編程的頁的實體位址以及編程狀態。 In state 420, after the second flash memory 104 records the physical address of the particular page and the programming state, the controller 106 performs an erase operation on the second flash memory 104 to cause the second flash memory 104 to There is space to record the physical address of the page to be programmed and the programming state.
總而地說,針對第一快閃記憶體102中每個被選擇編程的頁,控制器106將控制第二快閃記憶體104在該頁被編程前記錄該頁的實體位址,並在該頁被編程後記錄該頁的編程狀態。 In general, for each page selected for programming in the first flash memory 102, the controller 106 will control the second flash memory 104 to record the physical address of the page before the page is programmed, and The page is programmed to record the programming state of the page.
第5圖繪示依據本揭露一實施例的記憶體系統的電源中斷恢復程序的流程圖。為方便說明,此處的記憶體系統是以第1圖中的記憶體系統10作為例示。 FIG. 5 is a flow chart showing a power interruption recovery procedure of the memory system according to an embodiment of the present disclosure. For convenience of explanation, the memory system herein is exemplified by the memory system 10 in Fig. 1.
在步驟502,在電源開啟後,控制器106搜尋第二快閃記憶體104中最後被記錄的實體位址,以尋找第一快閃記憶體102中最後被編程的頁。 At step 502, after the power is turned on, the controller 106 searches for the last recorded physical address in the second flash memory 104 to find the last programmed page in the first flash memory 102.
在步驟504,控制器106檢查該最後被編程的頁的對應編程狀態是否已記錄在第二快閃記憶體104當中。若沒有,程序前進至步驟506。若有,程序前進至步驟510。 At step 504, the controller 106 checks if the corresponding programmed state of the last programmed page has been recorded in the second flash memory 104. If not, the program proceeds to step 506. If so, the program proceeds to step 510.
在步驟506,當判斷最後被編程的頁的對應編程狀態並未記錄在第二快閃記憶體104中,控制器10把該最後被編程的頁辨識成一編程不完全頁,其例如是因電源中斷所造成。接著在步驟508,控制器106對編程不完全頁執行編程不完全處理程序,以進行電源中斷恢復。 At step 506, when it is determined that the corresponding programmed state of the last programmed page is not recorded in the second flash memory 104, the controller 10 recognizes the last programmed page as a programmed incomplete page, which is, for example, due to a power supply. Caused by an interruption. Next at step 508, the controller 106 performs a programming incomplete processing procedure on the programmed incomplete page for power interruption recovery.
在一實施例,在編程不完全處理程序的過程中,控制器106先會判斷編程不完全頁是一錯誤校正(error correction code,ECC)通過頁還是一空白頁。 In one embodiment, during programming of the incomplete processing program, the controller 106 first determines whether the programming incomplete page is an error correction code (ECC) pass page or a blank page.
此處所述的ECC通過頁泛指資料通過ECC驗證操作的頁。若編程不完全頁被判斷是ECC通過頁,表示電源中斷事件可能發生在編程操作的結尾或後半段,因此,編程不完全頁中的資料仍可通過ECC驗證。另一方面,若編程不完全頁被判斷是空白頁,表示電源中斷事件可能是發生在編程操作的開始或前半段。 The ECC described herein refers to the page of the ECC verification operation through the page. If the incomplete page is judged to be the ECC pass page, indicating that the power interrupt event may occur at the end or the second half of the programming operation, the data in the incomplete page can still be verified by ECC. On the other hand, if the programming incomplete page is judged to be a blank page, it indicates that the power interruption event may have occurred at the beginning or the first half of the programming operation.
當編程不完全頁被辨識為ECC通過頁,控制器106將執行備份操作以保持該頁中的資料。舉例來說,在判斷出編程不完全頁中的資料通過ECC驗證後(也就是編程不完全頁被辨識為ECC通過頁),控制器106將在第一快閃記憶體102的新位置建立編程不完全頁的資料副本。 When the programming incomplete page is recognized as an ECC pass page, the controller 106 will perform a backup operation to maintain the material in the page. For example, after determining that the data in the incomplete page is verified by ECC (ie, the programming incomplete page is recognized as an ECC pass page), the controller 106 will establish programming at the new location of the first flash memory 102. A copy of the data for an incomplete page.
另一方面,在判斷出編程不完全頁是第一快閃記憶體102中的空白頁後,控制器106將對編程不完全頁填入空白資料(dummy data)以避免該編程不完全頁被使用。這是因為被辨識成空白頁的編程不完全頁的狀態可能因為不完全的編程而偏離正常的抹除狀態。一旦這樣的空白頁經由後續的編程操作而被寫入資料,將很可能產生錯誤資料。 On the other hand, after it is judged that the program incomplete page is a blank page in the first flash memory 102, the controller 106 will fill the incomplete page with the dummy data to avoid the incomplete page being programmed. use. This is because the state of the programmed incomplete page that is recognized as a blank page may deviate from the normal erased state due to incomplete programming. Once such a blank page is written to the data via subsequent programming operations, it is likely that an error message will be generated.
在一實施例中,除了編程不完全頁,接下來可能被編程並受電源中斷事件影響的空白頁亦會被控制器106填入空白資料。 In one embodiment, in addition to programming incomplete pages, blank pages that may be subsequently programmed and affected by a power interruption event are also populated with blank data by controller 106.
在步驟510,在判斷出最後被編程的頁所對應編程狀態已記錄於第二快閃記憶體104後,控制器106將會把該最後被編程的頁辨識成編程完全頁。由於並不需要對編程完全頁執行編程不足處理程序,程序可直接至步驟512。 At step 510, after determining that the programming state corresponding to the last programmed page has been recorded in the second flash memory 104, the controller 106 will recognize the last programmed page as a programmed full page. Since it is not necessary to execute a program under-program for programming a full page, the program can proceed directly to step 512.
在步驟512,控制器106針對第一快閃記憶體102重建邏輯位址對實體位址的映射關係。舉例來說,控制器106會將邏輯位址對實體位址的映射關係以映射表的形式作保存。控制器106可利用此映射表將主機裝置12提供的邏輯位址轉譯成第一快閃記憶體102的實體位址。 At step 512, the controller 106 reconstructs a logical address-to-physical address mapping relationship for the first flash memory 102. For example, the controller 106 saves the mapping of logical addresses to physical addresses in the form of a mapping table. The controller 106 can utilize this mapping table to translate the logical address provided by the host device 12 into the physical address of the first flash memory 102.
第6圖繪示依據第一快閃記憶體102中頁的狀態以及第二快閃記憶體104中所記錄的相關資訊。 FIG. 6 illustrates the state of the page in the first flash memory 102 and the related information recorded in the second flash memory 104.
為方便理解,此處僅以第一快閃記憶體102包括10個頁P1~P10作為例子進行說明。本例中係假設第一快閃記憶體102中的頁P1~P10是依序地被編程。 For ease of understanding, only the first flash memory 102 includes ten pages P1 to P10 as an example. In this example, it is assumed that pages P1 to P10 in the first flash memory 102 are sequentially programmed.
控制器106可讀取第一快閃記憶體102並偵測出頁P6~P10為空白頁(在圖中以具有斜線網底的矩形表示),並判斷出基於編程順序的第一個空白頁P6之前的頁P5為第一快閃記憶體102中最後被編程的頁。最後被編程的頁可以是編程完全頁或是遭受電源中斷事件的編程不完全頁。 The controller 106 can read the first flash memory 102 and detect that the pages P6~P10 are blank pages (indicated by a rectangle having a diagonal network bottom in the figure), and determine the first blank page based on the programming order. The page P5 before P6 is the last page programmed in the first flash memory 102. The last page programmed can be a programmed full page or a programmed incomplete page that is subject to a power interruption event.
如前所述,針對一個實體位址已經記錄在第二快閃記憶體104中的頁,若其對應的編程狀態存在第二快閃記憶體104中,則該頁是一編程完全頁。反之則為一編程不完全頁。如第6圖所示,頁P1~P4的實體位址ADD1~ADD4以及編程狀態STA1~STA4分別被記錄在第二快閃記憶體104中。因此,頁P1~P4將被視為編程完全頁。 As previously mentioned, a page that has been recorded in the second flash memory 104 for a physical address is a programmed full page if its corresponding programmed state exists in the second flash memory 104. The opposite is a programming incomplete page. As shown in FIG. 6, the physical addresses ADD1 to ADD4 of the pages P1 to P4 and the program states STA1 to STA4 are recorded in the second flash memory 104, respectively. Therefore, pages P1~P4 will be treated as programmed full pages.
針對最後被編程的頁,P5,其實體位址ADD5被最後記錄在第二快閃記憶體104中。控制器106可檢查頁P5的對應編程狀態是否被記錄在第二快閃記憶體104中。若是,則頁P5是一編程完全頁;若否,則頁P5是第一快閃記憶體102中的一編程不完全頁,其需要例如透過第5圖所描述的編程不完全處理程序進行復原。 For the last programmed page, P5, its physical address ADD5 is finally recorded in the second flash memory 104. The controller 106 can check if the corresponding programming state of the page P5 is recorded in the second flash memory 104. If so, page P5 is a programmed full page; if not, page P5 is a programmed incomplete page in first flash memory 102 that needs to be restored, for example, via the programming incomplete handler described in FIG. .
基於上述,本揭露提出的記憶體系統包括第一快閃記憶體以及第二快閃記憶體。當第一快閃記憶體中的一頁欲被編程,該頁 的實體位置將先被記錄在第二快閃記憶體中。此外,在該頁被編程之後,第二快閃記憶體亦會記錄該頁的對應編程狀態(例如編程結束標記)。之後,藉由檢查記錄在第二快閃記憶體中的資訊,即可辨識出例如因電源中斷所造成的編程不完全頁。用來處理編程不完全頁的一不完全編程處理程序可只在偵測到編程不完全頁時執行。因此,記憶體系統的性能、啟動時間、以及寫入放大(write amplification)皆可被改善。 Based on the above, the memory system proposed by the present disclosure includes a first flash memory and a second flash memory. When a page in the first flash memory is to be programmed, the page The physical location will be recorded first in the second flash memory. In addition, after the page is programmed, the second flash memory also records the corresponding programming state of the page (eg, a programming end flag). Thereafter, by checking the information recorded in the second flash memory, it is possible to recognize, for example, an incomplete page due to a power interruption. An incomplete programming handler that handles programming incomplete pages can only be executed when a programming incomplete page is detected. Therefore, the performance, start-up time, and write amplification of the memory system can be improved.
雖然說明書包括許多細節,但是它們不應該被解釋為對所要求或可能要求的範圍的限制,而是對針對具體實施方式的特徵的描述。在本說明書中在單獨的實施方式的情形中描述的某些特徵還可以在單個實施方式中組合實施。相反地,在單個實施方式的情形中描述的各種特徵也可以在多個實施方式中單獨實施或實施為任何合適的子組合。此外,雖然上述特徵被描述為以某些組合工作甚至初始地聲明為如此,但是所要求的組合中的一或多個特徵可以在一些情形中從組合中除去,並且所要求的組合可以涉及子組合或子組合的變化形式。類似地,雖然在附圖中以特定次序描繪了操作,這應該不被理解為為了獲得期望的結果而要求這樣的操作以所示的特定次序或順序次序執行,或要求所有示出的操作都被執行。 The description includes many specifics, and should not be construed as limiting the scope of the claimed embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can be implemented in the various embodiments or in any suitable subcombination. Moreover, while the above features are described as working in some combination even initially stated as such, one or more of the required combinations may be removed from the combination in some cases, and the required combination may involve A variation of a combination or sub-combination. Similarly, although the operations are depicted in a particular order in the figures, this should not be construed as requiring that such operations be performed in the particular order or sequence of the order shown, or that all illustrated operations are required to achieve the desired results. Executed.
僅揭露了一些例示和實現方式。基於已公開內容可以做出所描述的示例和實現方式的變化、修改和增強以及其他實現方式。 Only some illustrations and implementations have been disclosed. Variations, modifications, and enhancements of the described examples and implementations, as well as other implementations, can be made based on the disclosure.
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106114753A TWI657453B (en) | 2017-05-04 | 2017-05-04 | Memory system and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106114753A TWI657453B (en) | 2017-05-04 | 2017-05-04 | Memory system and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201843684A TW201843684A (en) | 2018-12-16 |
TWI657453B true TWI657453B (en) | 2019-04-21 |
Family
ID=65431158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106114753A TWI657453B (en) | 2017-05-04 | 2017-05-04 | Memory system and operating method thereof |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI657453B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI831366B (en) * | 2022-09-08 | 2024-02-01 | 群聯電子股份有限公司 | Data writing method, memory storage device and memory control circuit unit |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937513B1 (en) * | 2003-10-16 | 2005-08-30 | Lsi Logic Corporation | Integrated NAND and nor-type flash memory device and method of using the same |
US20090316490A1 (en) * | 2007-02-14 | 2009-12-24 | Kabushiki Kaisha Toshiba | Method of writing data into semiconductor memory and memory controller |
US20130272068A1 (en) * | 2012-04-12 | 2013-10-17 | Stmicroelectronics S.R.L. | Managing of the erasing of operative pages of a flash memory device through service pages |
US20140146606A1 (en) * | 2009-10-07 | 2014-05-29 | Spansion Llc | Parallel bitline nonvolatile memory employing channel-based processing technology |
US20150026393A1 (en) * | 2013-07-17 | 2015-01-22 | Winbond Electronics Corp. | Semiconductor Memory Device |
US20160343448A1 (en) * | 2015-05-21 | 2016-11-24 | Sandisk Technologies Inc. | System and method for memory integrated circuit chip write abort indication |
-
2017
- 2017-05-04 TW TW106114753A patent/TWI657453B/en active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937513B1 (en) * | 2003-10-16 | 2005-08-30 | Lsi Logic Corporation | Integrated NAND and nor-type flash memory device and method of using the same |
US20090316490A1 (en) * | 2007-02-14 | 2009-12-24 | Kabushiki Kaisha Toshiba | Method of writing data into semiconductor memory and memory controller |
US20140146606A1 (en) * | 2009-10-07 | 2014-05-29 | Spansion Llc | Parallel bitline nonvolatile memory employing channel-based processing technology |
US20130272068A1 (en) * | 2012-04-12 | 2013-10-17 | Stmicroelectronics S.R.L. | Managing of the erasing of operative pages of a flash memory device through service pages |
US20150026393A1 (en) * | 2013-07-17 | 2015-01-22 | Winbond Electronics Corp. | Semiconductor Memory Device |
US20160343448A1 (en) * | 2015-05-21 | 2016-11-24 | Sandisk Technologies Inc. | System and method for memory integrated circuit chip write abort indication |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI831366B (en) * | 2022-09-08 | 2024-02-01 | 群聯電子股份有限公司 | Data writing method, memory storage device and memory control circuit unit |
Also Published As
Publication number | Publication date |
---|---|
TW201843684A (en) | 2018-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679649B (en) | Memory system and operating method thereof | |
US9159441B2 (en) | Method of operating memory device assuring reliability and memory system | |
TWI660356B (en) | Data storage device and operating method thereof | |
TWI602187B (en) | Semiconductor memory devices and memory systems | |
CN101512669A (en) | Defective block isolation in a non-volatile memory system | |
JP2008226245A (en) | Memory system based on flash memory | |
CN112860178B (en) | Memory device, memory controller, memory system and operation method thereof | |
US7944747B2 (en) | Flash memory device and method for programming flash memory device having leakage bit lines | |
US10261721B2 (en) | Memory system and operating method thereof | |
TW201110138A (en) | System and method of finalizing semiconductor memory | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
US11705216B2 (en) | Data redirection upon failure of a program operation | |
WO2020072321A1 (en) | Data erasure in memory sub-systems | |
TW201907406A (en) | Memory system and method for operating semiconductor memory device | |
US20140301132A1 (en) | Storage control device, storage device, information processing system, and processing method thereof | |
JP2010067098A (en) | Information processor, information processing method, and information processing program | |
TWI657453B (en) | Memory system and operating method thereof | |
TWI681399B (en) | Data recovery method to error correction code in memory integrated circuit and a method for operating a memory on the integrated circuit | |
US9063903B2 (en) | Memory system provided with NAND flash memory and method including simultaneously writing data to first and second memory arrays | |
CN108877861B (en) | Memory system and operating method thereof | |
JP6267497B2 (en) | Semiconductor memory control device and unstable memory region detection method | |
CN110580130A (en) | A method of writing data to a flash memory module that is protected from power interruptions | |
US20250022529A1 (en) | Block health detector for block retirement in a memory sub-system | |
US12062394B2 (en) | Performing data integrity checks to identify defective wordlines | |
JP2009223941A (en) | Nonvolatile memory device, and method of controlling nonvolatile memory device |