TWI626541B - 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 - Google Patents
將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 Download PDFInfo
- Publication number
- TWI626541B TWI626541B TW106129653A TW106129653A TWI626541B TW I626541 B TWI626541 B TW I626541B TW 106129653 A TW106129653 A TW 106129653A TW 106129653 A TW106129653 A TW 106129653A TW I626541 B TWI626541 B TW I626541B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- data page
- flash memory
- page
- record table
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
Abstract
本發明揭露了一種將一資料寫入至一快閃記憶體模組的方法,其中該快閃記憶體模組中的每一快閃記憶體晶片包含多個區塊,每一區塊包含多個資料頁,且該方法包含有:建立一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁是否毀損;當該資料需要被寫入至該特定區塊時,參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損;當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,不將該資料寫入至該特定資料頁。
Description
本發明係有關於快閃記憶體,尤指一種將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器。
當快閃記憶體在資料寫入的過程時突然發生斷電時,除了目前正在寫入的資料頁可能會發生毀損之外,與目前正在寫入的資料頁位在同一條字元線上的其他資料頁亦會同時產生毀損。舉例來說,假設上述的快閃記憶體為一三層式儲存(Triple-Level Cell,TLC)快閃記憶體晶片,且該快閃記憶體中每一條字元線構成一最低有效位元(Least Significant Bit,LSB)資料頁、中間有效位元(Central Significant Bit,CSB)資料頁與最高有效位元(Most Significant Bit,MSB)資料頁,則若是一字元線上的最低有效位元資料頁在資料寫入的過程中發生非預期斷電(Sudden Power Off)而毀損時,則該字元線上的中間有效位元資料頁及最高有效位元資料頁亦會發生毀損。
因此,非預期斷電修復(Sudden Power-Off Recovery,SPOR)程序對於維護快閃記憶體之資料可靠度顯得至關重要。
因此,本發明的目的之一在於提供一種將資料寫入至快閃記憶體模組的方法,其可以在有資料頁毀損的情形下有效地繼續完成後續的非預期斷電修復程序以及資料寫入,以解決先前技術中的問題。
在本發明的一個實施例中,揭露了一種將一資料寫入至一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁,以及該方法包含有:建立一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁是否毀損;當該資料需要被寫入至該特定區塊時,參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損;當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,不將該資料寫入至該特定資料頁。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一記憶體,其中該唯讀記憶體用來儲存一程式碼;該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;以及該記憶體用以儲存一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁中的資料是否毀損。此外,當一資料需要被寫入至該特定區塊時,該微處理器參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損,並當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,該微處理器將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,該微處理器不將該資料寫入至該特定資料頁。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁;該快閃記憶體控制器係用來存取該快閃記憶體模組,並用以建立一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁是否毀損;其中當來自一主裝置的一資料需要被寫入至該特定區塊時,該快閃記憶體控制器參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損,並當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,該快閃記憶體控制器將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,該快閃記憶體控制器不將該資料寫入至該特定資料頁。
請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行抹除等運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM, SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
在本實施例中,快閃記憶體模組120所包含之複數個區塊中至少包含了多層式儲存(Multiple-Level Cell,MLC)區塊或是三層式儲存(Triple-Level Cell,TLC))區塊,而在以下的實施例中,係以三層式儲存區塊來作為說明。請參考第2圖,第2圖為依據本發明一實施例之快閃記憶體模組120中一區塊200的示意圖。如第2圖所示,區塊200係為三層式儲存架構,亦即區塊200具有N條字元線WL0~WLN,每一條字元線可構成三個資料頁,故區塊200共包含有3*N個資料頁(P0~P(3N-1))。第2圖中的每一個儲存單元(亦即每一個浮動閘極電晶體202)可以儲存三個位元,亦即包含最低有效位元(LSB)、中間有效位元(CSB)與最高有效位元(MSB)的三個位元;而每一條字元線WL0~WLN上的多個儲存單元所儲存的最低有效位元構成了該字元線對應的第一個資料頁(最低有效位元資料頁(LSB page))、所儲存的中間有效位元構成了該字元線對應的第二個資料頁(中間有效位元資料頁(CSB page))、以及所儲存的最高有效位元構成了該字元線對應的第三個資料頁(最高有效位元資料頁(MSB page))。在一般的狀況下,同一條字元線上的三個資料頁不一定會具有連續的序號,舉例來說,字元線WL1上的多個儲存單元所儲存的最低有效位元構成了資料頁P1,字元線WL1上的多個儲存單元所儲存的中間有效位元構成了資料頁P10,以及字元線WL1上的多個儲存單元所儲存的最高有效位元構成了資料頁P11。
一般而言,若是字元線WL1上的最低有效位元資料頁(亦即,P1)在資料寫入的過程中發生非預期斷電而毀損時,則字元線WL1上的中間有效位元資料頁(亦即,P10)及最高有效位元資料頁(亦即,P11)亦會發生毀損,因此,在一實施例中,在上述的資料頁P1發生毀損之後,若是後續仍然要將資料寫入至區塊200的後續資料頁時,為了避免將資料誤寫到字元線WL1上的資料頁P10、P11,快閃記憶體控制器110可以從資料頁P1開始一直寫入無效的資料直到資料頁P11為止,之後再從資料頁P12開始寫入有效資料。如上所述,雖然此方式可以避免資料寫入錯誤,但資料頁P2~P9也浪費掉了。特別是在快閃記憶體模組120為立體NAND型快閃記憶體時,字元線之最低有效位元資料頁、中間有效位元資料頁及最高有效位元資料頁的距離可能會更遠(亦即,資料頁序號的差異會較大),因此上述資料頁浪費的情形會更嚴重。
為了解決上述因為非預期斷電而導致後續資料頁浪費的問題,本發明另外提出了以下的實施例,以在非預期斷電的修復程序後能夠更有效率地利用區塊200中的資料頁。請參考第3圖,其為根據本發明一實施例之將資料寫入到一區塊的流程圖,在以下的實施例中,係以區塊200來作為說明。首先,在步驟300中,流程開始,快閃記憶體控制器110係規畫區塊200為目前準備進行資料寫入的區塊。在步驟302中,快閃記憶體控制器110建立了一資料頁狀態記錄表,其用來記錄區塊200中的資料頁是否毀損,並將資料頁狀態記錄表暫時儲存在緩衝記憶體116之中。舉例來說,參考第4圖,資料頁狀態記錄表可以包含了多個位元B0~B(3N-1),其分別用來記錄資料頁P0~P(3N-1)是否毀損,例如當位元B0具有數位值“0”的時候代表資料頁P0沒有毀損,而當位元B0具有數位值“1”的時候代表資料頁P0已毀損;當位元B1具有數位值“0”的時候代表資料頁P1沒有毀損,而當位元B1具有數位值“1”的時候代表資料頁P1已毀損,…,以此類推。而在步驟302中,由於區塊200本身尚未有資料進行寫入,故資料頁狀態記錄表中的每一個位元B0~B(3N-1)的值均為預設值“0”,亦即代表資料頁P0~P(3N-1)並未毀損。
需注意的是第4圖所示的資料頁狀態記錄表僅是一個範例說明,而非是作為本發明的限制。只要資料頁狀態記錄表可以用來表達資料頁P0~P(3N-1)是否毀損,其細節內容可以有不同的變化,而這些設計上的變化均應隸屬於本發明的範疇。在本發明的另一個實施例中,資料頁狀態記錄表可以只記錄有毀損的資料頁,亦即在一開始區塊200本身尚未有資料進行寫入時,資料頁狀態記錄表並未記錄任何相關的資料頁毀損資訊,而是等到後續有資料頁被判斷毀損之後才需要記錄。
在步驟304中,快閃記憶體控制器110收到來自主裝置130的一寫入命令,此時,快閃記憶體控制器110根據該寫入命令以將資料從資料頁P0開始循序寫入。此時,假設快閃記憶體控制器110在將資料寫入到資料頁P1的時候記憶裝置100突然發生斷電,則此時資料頁P1中的資料可能會發生錯誤,且儲存在緩衝記憶體116中的資料頁狀態記錄表也因此遺失。
在步驟306中,記憶裝置100重新上電,且快閃記憶體控制器110與快閃記憶體模組120進行上電後的初始化操作。在步驟308中,快閃記憶體控制器110重新建立對應於區塊200的資料頁狀態記錄表。在重新建立資料頁狀態記錄表的過程中,首先,快閃記憶體控制器110會依序讀取區塊200中有資料寫入之資料頁中資料,並判斷這些資料頁的資料品質,以及針對該些已經有資料寫入之資料頁中的任一資料頁,當判斷該資料頁的資料品質不符合一標準時,在該資料頁狀態記錄表中記錄該資料頁毀損,並直接將與該資料頁位在同一條字元線上的其他資料頁也記錄為毀損。舉例來說,快閃記憶體控制器110首先會讀取資料頁P0中的資料,並使用解碼器134來對所讀取的資料進行解碼(亦即,進行錯誤更正操作),而若是解碼成功,則判斷資料頁P0的資料品質符合標準;而若是解碼失敗,則判斷資料頁P0的資料品質不符合標準。在本實施例中,假設資料頁P0的資料品質符合標準,故在重新建立的資料頁狀態記錄表中的位元B0的數值為“0”。接著,快閃記憶體控制器110會讀取資料頁P1中的資料,並使用解碼器134來對所讀取的資料進行解碼,並根據解碼的失敗與否來判斷資料頁P1的資料品質是否符合標準,在本實施例中,假設資料頁P1的資料品質因為先前的斷電而不符合標準,故在重新建立的資料頁狀態記錄表中的位元B1的數值為被設為“1”。此時,由於資料頁P1所對應的位元B1被標記為“1”(資料頁毀損),則與資料頁P1具有同一條字元線WL1的另外兩個資料頁P10、P11所對應到的位元B10、B11也同樣被標記為“1”(資料頁毀損);另一方面,由於資料頁P2~P9、P12~P(3N-1)尚未有資料寫入,故其相對應的位元B2~B9、B12~B(3N-1)維持預設值“0”。第5圖為本實施例之重新建立的資料頁狀態記錄表的示意圖。
在步驟310中,快閃記憶體控制器110參考資料頁狀態記錄表以將資料寫入到區塊200中。詳細來說,快閃記憶體控制器110先參考資料頁狀態記錄表中的位元B2,而由於位元B2的數值為“0”,亦即資料頁P2並未毀損,故快閃記憶體控制器110便直接將資料寫入到資料頁P2之中。接著,快閃記憶體控制器110先參考資料頁狀態記錄表中的位元B3~B9,並將直接將資料寫入到資料頁P3~P9之中。接著,當快閃記憶體控制器110欲將資料寫入到下一個資料頁P10之前,快閃記憶體控制器110參考資料頁狀態記錄表中的位元B10,而由於位元B11的數值為“1”,亦即資料頁P10已經毀損,故快閃記憶體控制器110便將資料頁P10寫入冗餘資料(dummy data);接著,快閃記憶體控制器110參考資料頁狀態記錄表中的位元B11,而由於位元B11的數值為“1”,亦即資料頁P11已經毀損,故快閃記憶體控制器110也將資料頁P11寫入冗餘資料。接著,快閃記憶體控制器110參考資料頁狀態記錄表中的位元B12,而由於位元B12的數值為“0”,亦即資料頁P12並未毀損,故快閃記憶體控制器110便直接將資料寫入到資料頁P12之中。
在步驟312中,快閃記憶體控制器110判斷區塊200中是否所有可允許寫入的資料頁都完成資料寫入,亦即最後一個有效的資料頁(例如,資料頁P(3N-1))已完成資料寫入,若否,則流程回到步驟310繼續在區塊200進行資料寫入;若是,則流程進入步驟314。
在步驟314中,快閃記憶體控制器110將對應到區塊200的資料頁狀態記錄表自緩衝記憶體116中刪除。
在完成區塊200的寫入操作之後,若是後續快閃記憶體控制器110需要再將資料寫入到另一個區塊,則可以重複第3圖的流程以建立另一個對應於該另一個區塊的資料頁狀態記錄表,以供參考來進行資料寫入操作。
需注意的是,由於快閃記憶體控制器110不一定會連續地將區塊200中的所有資料頁寫完,因此,在區塊200暫時不需要寫入,及/或緩衝記憶體116中的空間因為其他因素而需要釋放時,快閃記憶體控制器110可以將對應到區塊200的資料頁狀態記錄表儲存至快閃記憶體模組120中的一個區塊(例如,區塊200或是晶片中的單層式儲存(Single-Level Cell,SLC)區塊)之中。而後續需要將資料再次寫入至區塊200時,快閃記憶體控制器110可以再次將資料頁狀態記錄表自快閃記憶體模組120中讀取出來,並再根據資料頁狀態記錄表來對區塊200進行資料寫入。
簡要歸納本發明,在本發明之將資料寫入至快閃記憶體模組的方法中,如以上第3~5圖的實施例所述,當快閃記憶體控制器110準備將資料寫入至一特定資料頁時(例如,此特定資料頁為目前狀況下區塊200中具有最小序號的空白資料頁),會先參考資料頁狀態記錄中所記錄之該特定資料頁的狀態(亦即,毀損或是沒有毀損)以判斷該特定資料頁是否可供寫入。因此,區塊200中只有被標記為毀損的資料頁不會有有效資料寫入,而其餘的資料頁均可用來儲存資料(亦即,第3~5圖的實施例中只有資料頁P1、P10、P11不會寫入有效資料),故區塊200中資料頁可以被充分的利用,以提升資料頁的使用率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
130‧‧‧主裝置
132‧‧‧編碼器
134‧‧‧解碼器
200‧‧‧區塊
202‧‧‧浮動閘極電晶體
300~314‧‧‧步驟
B0~B(3N-1)‧‧‧位元
P0~P(3N-1)‧‧‧資料頁
WL1~WLN‧‧‧字元線
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為具有三層式儲存架構的區塊的示意圖。 第3圖為根據本發明一實施例之將資料寫入到一區塊的流程圖。 第4圖為根據本發明一實施例之資料頁狀態記錄表的示意圖。 第5圖為根據本發明一實施例之因為斷電而重建後之資料頁狀態記錄表的示意圖。
Claims (19)
- 一種將一資料寫入至一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁,以及該方法包含有:建立一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁是否毀損;當該資料需要被寫入至該特定區塊時,參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損;當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,不將該資料寫入至該特定資料頁。
- 如申請專利範圍第1項所述之方法,另包含有:當該資料頁狀態記錄表指出該特定資料頁毀損時,參考該資料頁狀態記錄表以將該資料寫入至距離該特定資料頁最近且沒有毀損的資料頁。
- 如申請專利範圍第1項所述之方法,其中建立該資料頁狀態記錄表的步驟包含有:讀取該特定區塊中已經有資料寫入的資料頁;判斷該些已經有資料寫入之資料頁的資料品質;針對該些已經有資料寫入之資料頁中的任一資料頁,當判斷該資料頁的資料品質不符合一標準時,在該資料頁狀態記錄表中記錄該資料頁毀 損,並直接將與該資料頁位在同一條字元線上的其他資料頁也記錄為毀損。
- 如申請專利範圍第3項所述之方法,其中該特定區塊為一三層式儲存(Triple-Level Cell,TLC)區塊,該特定區塊中每一條字元線構成一最低有效位元(Least Significant Bit,LSB)資料頁、中間有效位元(Central Significant Bit,CSB)資料頁與最高有效位元(Most Significant Bit,MSB)資料頁;以及當該最低有效位元資料頁、中間有效位元資料頁與最高有效位元資料頁中有任一個資料頁被判斷資料品質不符合該標準時,其餘的兩個資料頁也會在該資料頁狀態記錄表中被標記為毀損。
- 如申請專利範圍第1項所述之方法,其中該特定區塊為目前正在準備進行資料寫入的區塊。
- 如申請專利範圍第5項所述之方法,另包含有:將該資料頁狀態記錄表寫入至該快閃記憶體模組中。
- 如申請專利範圍第5項所述之方法,另包含有:當該特定區塊所有可允許寫入的資料頁都完成資料寫入之後,刪除該資料頁狀態記錄表。
- 如申請專利範圍第1項所述之方法,其中該資料頁狀態記錄表包含了多個位元,每一個位元對應到該特定區塊的一個資料頁,且每一個位元的兩個數位值分別用來表示所對應的資料頁毀損或是沒有毀損。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一記憶體,用以儲存一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁中的資料是否毀損;其中當一資料需要被寫入至該特定區塊時,該微處理器參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損,並當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,該微處理器將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,該微處理器不將該資料寫入至該特定資料頁。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中當該資料頁狀態記錄表指出該特定資料頁毀損時,該微處理器參考該資料頁狀態記錄表以將該資料寫入至距離該特定資料頁最近且沒有毀損的資料頁。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該資料頁狀態記錄表係透過該微處理器執行以下操作來建立:讀取該特定區塊中已經有資料寫入的資料頁;判斷該些已經有資料寫入之資料頁的資料品質;針對該些已經有資料寫入之資料頁中的任一資料頁,當判斷該資料頁的資 料品質不符合一標準時,在該資料頁狀態記錄表中記錄該資料頁毀損,並直接將與該資料頁位在同一條字元線上的其他資料頁也記錄為毀損。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中該特定區塊為一三層式儲存(Triple-Level Cell,TLC)區塊,該特定區塊中每一條字元線構成一最低有效位元(Least Significant Bit,LSB)資料頁、中間有效位元(Central Significant Bit,CSB)資料頁與最高有效位元(Most Significant Bit,MSB)資料頁;以及當該最低有效位元資料頁、中間有效位元資料頁與最高有效位元資料頁中有任一個資料頁被判斷資料品質不符合該標準時,其餘的兩個資料頁也會在該資料頁狀態記錄表中被標記為毀損。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該特定區塊為目前正在準備進行資料寫入的區塊。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該微處理器將該資料頁狀態記錄表寫入至該快閃記憶體模組中。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中當該特定區塊所有可允許寫入的資料頁都完成資料寫入之後,刪除該資料頁狀態記錄表。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該資料頁狀態記錄表包含了多個位元,每一個位元對應到該特定區塊的一個資料頁,且 每一個位元的兩個數位值分別用來表示所對應的資料頁毀損或是沒有毀損。
- 一種電子裝置,包含有:一快閃記憶體模組,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個區塊,每一個區塊包含了多個資料頁,該快閃記憶體晶片中每一條字元線構成了多個資料頁;以及一快閃記憶體控制器,用來存取該快閃記憶體模組,並用以建立一資料頁狀態記錄表,其中該資料頁狀態記錄表記錄了一特定區塊中至少一部分資料頁是否毀損;其中當來自一主裝置的一資料需要被寫入至該特定區塊時,該快閃記憶體控制器參考該資料頁狀態記錄表以判斷目前欲寫入的一特定資料頁是否毀損,並當該資料頁狀態記錄表指出該特定資料頁沒有毀損時,該快閃記憶體控制器將該資料寫入至該特定資料頁;以及當該資料頁狀態記錄表指出該特定資料頁毀損時,該快閃記憶體控制器不將該資料寫入至該特定資料頁。
- 如申請專利範圍第17項所述之電子裝置,其中當該資料頁狀態記錄表指出該特定資料頁毀損時,該快閃記憶體控制器參考該資料頁狀態記錄表以將該資料寫入至距離該特定資料頁最近且沒有毀損的資料頁。
- 如申請專利範圍第17項所述之電子裝置,其中該快閃記憶體控制器係透過以下操作來建立該資料頁狀態記錄表:讀取該特定區塊中已經有資料寫入的資料頁; 判斷該些已經有資料寫入之資料頁的資料品質;針對該些已經有資料寫入之資料頁中的任一資料頁,當判斷該資料頁的資料品質不符合一標準時,在該資料頁狀態記錄表中記錄該資料頁毀損,並直接將與該資料頁位在同一條字元線上的其他資料頁也記錄為毀損。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129653A TWI626541B (zh) | 2017-08-31 | 2017-08-31 | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US15/865,269 US20190065361A1 (en) | 2017-08-31 | 2018-01-09 | Method for writing data into flash memory module and associated flash memory controller and electronic device |
CN201810673590.2A CN109426451A (zh) | 2017-08-31 | 2018-06-26 | 将数据写入闪存模块的方法及相关闪存控制器与电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129653A TWI626541B (zh) | 2017-08-31 | 2017-08-31 | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI626541B true TWI626541B (zh) | 2018-06-11 |
TW201913381A TW201913381A (zh) | 2019-04-01 |
Family
ID=63255772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106129653A TWI626541B (zh) | 2017-08-31 | 2017-08-31 | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190065361A1 (zh) |
CN (1) | CN109426451A (zh) |
TW (1) | TWI626541B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI677879B (zh) * | 2018-09-03 | 2019-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020037612A1 (zh) * | 2018-08-23 | 2020-02-27 | 深圳市汇顶科技股份有限公司 | 嵌入式程序的安全引导方法、装置、设备及存储介质 |
CN110580130A (zh) * | 2019-08-21 | 2019-12-17 | 天津大学 | 一种防止电源中断影响的将数据写入闪存模块的方法 |
CN113110794B (zh) * | 2020-01-10 | 2023-09-08 | 株洲中车时代电气股份有限公司 | 一种用于NandFlash的数据存储方法与系统 |
TWI748507B (zh) * | 2020-06-08 | 2021-12-01 | 瑞昱半導體股份有限公司 | 資料存取系統及操作資料存取系統的方法 |
CN115357521A (zh) * | 2022-08-10 | 2022-11-18 | 山东华芯半导体有限公司 | 一种动态规避nand的刷新读到未写页的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
TW201401052A (zh) * | 2012-06-18 | 2014-01-01 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關的記憶裝置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
US8122319B2 (en) * | 2007-01-24 | 2012-02-21 | Charles I. Peddle | Page-based failure management for flash memory |
KR101434567B1 (ko) * | 2007-05-18 | 2014-08-27 | 삼성전자 주식회사 | 비휘발성 메모리의 맵핑 테이블 관리 장치 및 방법 |
US20090259806A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using bad page tracking and high defect flash memory |
US9384125B2 (en) * | 2012-06-18 | 2016-07-05 | Silicon Motion Inc. | Method for accessing flash memory having pages used for data backup and associated memory device |
MX364783B (es) * | 2012-11-20 | 2019-05-07 | Thstyme Bermuda Ltd | Estructuras de unidades de estado sólido. |
CN104103318B (zh) * | 2013-04-12 | 2019-11-05 | 三星电子株式会社 | 操作存储控制器的方法和包括存储控制器的数据存储设备 |
-
2017
- 2017-08-31 TW TW106129653A patent/TWI626541B/zh active
-
2018
- 2018-01-09 US US15/865,269 patent/US20190065361A1/en not_active Abandoned
- 2018-06-26 CN CN201810673590.2A patent/CN109426451A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
TW201401052A (zh) * | 2012-06-18 | 2014-01-01 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關的記憶裝置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI677879B (zh) * | 2018-09-03 | 2019-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US10818371B2 (en) | 2018-09-03 | 2020-10-27 | Silicon Motion, Inc. | Data storage devices and data processing methods |
Also Published As
Publication number | Publication date |
---|---|
TW201913381A (zh) | 2019-04-01 |
CN109426451A (zh) | 2019-03-05 |
US20190065361A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324789B2 (en) | Flash memory controller and memory device for accessing flash memory module, and associated method | |
TWI626541B (zh) | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI696074B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI545571B (zh) | 存取快閃記憶體的方法及相關的控制器與記憶裝置 | |
TWI664634B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
CN109390027B (zh) | 解码方法及相关的闪存控制器与电子装置 | |
TWI674586B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 | |
CN111399751B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN110069362B (zh) | 数据储存装置与数据处理方法 | |
TWI722938B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
TWI811130B (zh) | 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置 | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI787627B (zh) | 電子裝置、快閃記憶體控制器及其存取方法 | |
TWI831297B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI667656B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 | |
TWI760094B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI836610B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
TWI492052B (zh) | 存取快閃記憶體的方法以及相關的記憶裝置 | |
TWI768336B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |