TWI687930B - 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 - Google Patents
快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 Download PDFInfo
- Publication number
- TWI687930B TWI687930B TW107139505A TW107139505A TWI687930B TW I687930 B TWI687930 B TW I687930B TW 107139505 A TW107139505 A TW 107139505A TW 107139505 A TW107139505 A TW 107139505A TW I687930 B TWI687930 B TW I687930B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- data
- block
- successfully decoded
- specific block
- Prior art date
Links
Images
Classifications
-
- 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
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭露一種快閃記憶體控制器,其包含有一唯讀記憶體、一微處理器以及一解碼器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對一快閃記憶體模組之存取。在該快閃記憶體控制器的操作中,當該快閃記憶體控制器上電時,該快閃記憶體控制器自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料,且該解碼器對該多個資料頁中的資料進行解碼;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器關閉該特定區塊,並提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
Description
本發明係有關於快閃記憶體控制器。
當快閃記憶體控制器以及快閃記憶體模組在發生不正常斷電(例如,斷電後回復(power off recovery,POR)或是突發斷電後回復(sudden power off recovery,SPOR)的狀況後,考量到不正常斷電可能會對先前正在寫入之區塊造成品質上的影響,在快閃記憶體控制器上電之後會立刻針對上電前最後寫入的區塊進行資料回存(data restore)操作,亦即將該些資料讀取出來後再重新寫回至快閃記憶體模組中。然而,隨著立體快閃記憶體模組的發展,每一個區塊所包含的資料頁也越來越多,因此若是要將上電前最後寫入的區塊內的所有資料頁都進行資料回存的話,有可能會造成上述資料回存的時間過長,進而影響到電子裝置的開機時間,造成使用者在使用電子裝置時的不適。
因此,本發明的目的之一在於提供一種種快閃記憶體控制器,其可
以在快閃記憶體控制器上電之後僅將上電前最後寫入的區塊內的一部分資料搬移至另一暫存區塊中,以加速電子裝置的開機時間;此外,快閃記憶體控制器同時也會提升上電前最後寫入的區塊進行垃圾收集操作的優先順序,以在快閃記憶體控制器空閒時優先對上電前最後寫入的區塊進行垃圾收集操作以確保資料的正確性。透過本發明可以在不延長電子裝置開機時間的情形下,同時對不正常斷電時正在寫入之區塊的內容進行保護,以解決先前技術中所述的問題。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其包含有一唯讀記憶體、一微處理器以及一解碼器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對一快閃記憶體模組之存取。在該快閃記憶體控制器的操作中,當該快閃記憶體控制器上電時,該快閃記憶體控制器自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料,且該解碼器對該多個資料頁中的資料進行解碼;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器關閉該特定區塊,並提升該特定區塊進行垃圾收集操作的優先順序。
在本發明的另一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個區塊,以及該方法包含有以下步驟:當該快閃記憶體模組上電時,自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料;對該多個資料頁中的資料進行解碼;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,關閉該特定區塊,並提升該特定區塊進行垃圾收集操作的優先順序。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快
閃記憶體模組以及一快閃記憶體控制器。在該電子裝置的操作中,當該快閃記憶體控制器以及該快閃記憶體模組上電時,該快閃記憶體控制器自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料,並對該多個資料頁中的資料進行解碼;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該快閃記憶體控制器關閉該特定區塊,並提升該特定區塊進行垃圾收集操作的優先順序。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
200:區塊
202:浮閘電晶體
BL1、BL2、BL3:位元線
WL0~WL2、WL4~WL6:字元線
P0、P1、P2、P3、P36、P41、P42、P44:資料頁
Vt1~Vt7:臨界電壓
400~412:步驟
500:特定區塊
600:暫存區塊
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之快閃記憶體中一區塊的示意圖。
第3圖為資料頁中多個寫入電壓位準以及多個臨界電壓的示意圖。
第4圖為根據本發明一實施例之管理快閃記憶體模組的流程圖。
第5圖為決定特定區塊中無法成功解碼的資料頁以及不安全資料頁的示意圖。
第6圖為將特定區塊中的不安全資料頁搬移至暫存區塊的示意圖。
第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),而快閃記憶體控制器110對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)模組。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash
Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
第2圖為依據本發明一實施例之快閃記憶體模組120中一區塊200的示意圖,其中快閃記憶體模組120為立體NAND型快閃記憶體。如第2圖所示,區塊200包含了多個記憶單元(例如圖示的浮閘電晶體202或是其他的電荷捕捉(charge trap)元件),其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮閘電晶體構成了至少一資料頁,字元線WL1上的所有浮閘電晶體構成了另至少一資料頁,而字元線WL2的所有浮閘電晶體構成了再另至少一資料頁...以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮閘電晶體僅對應到單一邏輯資料頁;當使用雙層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到兩個邏輯資料頁;當使用三層式儲存(Triple-Level Cell,TLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到三個邏輯資料頁;以及當使用四層式儲存(Quad-Level Cell,QLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到四個邏輯資料頁。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
在第2圖所示的架構中,會將多條字元線定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條
字元線上的浮閘電晶體發生失敗時(寫入失敗),可能會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤。在一實施例中,位於同一個平面上的字元線會被設定為一字元線組,參考第2圖,假設同一個平面上有四個位元線,則字元線WL0~WL3會被歸於第一字元線組,而字元線WL4~WL7會被歸於第二字元線組...以此類推。假設快閃記憶體控制器110將資料寫入到第一字元線組的資料頁中時係循序將資料寫入到字元線WL0、WL1、WL2、WL3中的浮閘電晶體202,而假設字元線WL0、WL1、WL2上的資料都成功寫入,但是當資料寫入字元線WL3時發生寫入錯誤,則可能會連帶使得字元線WL0、WL1、WL2上原本寫入成功的資料也發生錯誤。此外,假設快閃記憶體控制器110將資料寫入到第二字元線組的資料頁中時係循序將資料寫入到字元線WL4、WL5、WL6、WL7中的浮閘電晶體202,而假設字元線WL4上在寫入資料的時候發生錯誤,則也會連帶使得字元線WL5、WL6、WL7不穩定而不適合再繼續寫入資料。
第3圖為使用三層式儲存區塊來作為區塊200時多個寫入電壓位準L1~L8以及多個臨界電壓Vt1~Vt7的示意圖。如第3圖所示,每個浮閘電晶體202可以被程式化(programmed(為具有電壓位準L1(亦即(MSB,CSB,LSB)=(1,1,1))、電壓位準L2(亦即(MSB,CSB,LSB)=(1,1,0)、電壓位準L3(亦即(MSB,CSB,LSB)=(1,0,0))、電壓位準L4(亦即(MSB,CSB,LSB)=(0,0,0))、電壓位準L5(亦即(MSB,CSB,LSB)=(0,1,0))、電壓位準L6(亦即(MSB,CSB,LSB)=(0,1,1))、電壓位準L7(亦即(MSB,CSB,LSB)=(0,0,1))或是電壓位準L8(亦即(MSB,CSB,LSB)=(1,0,1))。當快閃記憶體控制器110需要讀取浮閘電晶體202中的最低有效位元(LSB)時,快閃記憶體控制器110會使用臨界電壓Vt1、Vt5去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來產生“1”或是“0”,類似地,當快閃記憶體控制器110需要讀取浮閘電晶體202中的中間有效位元
(CSB)時,快閃記憶體控制器110會使用臨界電壓Vt2、Vt4與Vt6去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來產生“1”或是“0”,以供解碼器134進行解碼。類似地,當快閃記憶體控制器110需要讀取浮閘電晶體202中的最高有效位元(MSB)時,快閃記憶體控制器110會使用臨界電壓Vt3與Vt7去讀取浮閘電晶體202,並根據浮閘電晶體202的導通狀態(是否有電流產生)來判斷最高有效位元是“1”或是“0”,以供解碼器134進行解碼。在本實施例中,當浮閘電晶體202具有電壓位準L1時可以被稱為具有抹除狀態(erase state),而當浮閘電晶體202具有電壓位準L2~L8的任一時可以被稱為具有寫入狀態(program state)。
需注意的是,第3圖所示的範例僅是用來說明快閃記憶體控制器讀取浮閘電晶體202的過程,而其實施方式並非是本發明的限制,具體來說,上述最低有效位元、中間有效位元以及最高有效位元可以具有不同的編碼方式,且快閃記憶體控制器可以另外使用額外的輔助電壓來讀取浮閘電晶體202以提供更多的資訊給解碼器134進行解碼。此外,由於本領域具有通常知識者應可在閱讀過上述第3圖的相關內容之後了解到如何將上述實施例應用在單層式儲存區塊、雙層式儲存區塊以及四層式儲存區塊,相關細節在此不再贅述。
一般而言,在快閃記憶體控制器110以及快閃記憶體模組120在上電時,會先對在上電前最後一個寫入的區塊進行掃描以判斷資料品質,並據以判斷先前是否有發生不正常斷電。若是判斷有發生不正常斷電狀況時,會針對上電前最後寫入的區塊的資料進行資料回存的操作,然而,因為不正常斷電的影響,上電前最後寫入區塊可能會有許多資料頁的品質會受到影響,造成上述資料回存的時間過長,進而影響到電子裝置的開機時間。因此,為了解決此一問
題,本實施例中的快閃記憶體控制器110以及快閃記憶體模組120在上電後僅先針對上電前最後寫入區塊的一部分資料頁進行資料回存,並將上電前最後寫入區塊關閉且提升其進行品質檢測或是垃圾收集操作的優先順序,以在後續快閃記憶體控制器110空閒時優先對上電前最後寫入區塊進行品質檢測或是垃圾收集操作以確保資料的正確性。
具體來說,第4圖為根據本發明一實施例之管理快閃記憶體模組120的流程圖。在步驟400中,流程開始。在步驟402中,快閃記憶體控制器110以及快閃記憶體模組120上電並進行初始化操作,此時,快閃記憶體控制器110可以判斷在上電前是否發生不正常斷電的情形。舉例來說,當記憶裝置100在正常關機/斷電的情形下,快閃記憶體控制器110會將儲存在緩衝記憶體116中的多個暫存表格及資料儲存到快閃記憶體模組120中,且其中包含了一個用來標示記憶裝置100是否正常關機的標籤(flag),因此,快閃記憶體控制器110在上電後可以透過讀取儲存在快閃記憶體模組120中的上述標籤來判斷記憶裝置100之前是否有遭遇到不正常斷電的情形,例如,當上述標籤並未被正確設定時便判斷先前有遭遇到不正常斷電。在另一實施例中,快閃記憶體控制器110可以依序讀取記憶裝置100上電前最後寫入之區塊(以下稱,特定區塊)內的所有資料頁,以判斷是否有資料頁的資料無法正確的讀取(亦即,無法使用錯誤更正碼來更正),而當有資料頁的資料無法正確的讀取時便判斷記憶裝置100先前有遭遇到不正常斷電。在另一實施例中,快閃記憶體控制器110可以依序讀取記憶裝置100上電前該特定區塊內最後一個寫入之字元線組的多個資料頁、或是最後兩個寫入之字元線組的多個資料頁,以判斷是否有資料頁的資料無法正確的讀取(亦即,無法使用錯誤更正碼來更正),而當有資料頁的資料無法正確的讀取時便判斷記憶裝置100先前有遭遇到不正常斷電。在本實施例及以下的說明中,係假設記憶裝置
100遭遇到不正常斷電。
在步驟404中,透過對該特定區塊之至少一部分資料頁的解碼操作,快閃記憶體控制器110決定出至少一個無法成功解碼的資料頁以及多個不安全的資料頁,其中無法成功解碼的資料頁指的是解碼器無法完全地對其中的資料進行解碼,而不安全的資料頁指的是與無法成功解碼的資料頁歸屬於同一個字元線組、或是相鄰字元線組的資料頁。以第5圖來做為說明,其為特定區塊500的示意圖,假設快閃記憶體控制器110在讀取特定區塊500內之資料頁的過程中僅有資料頁P45無法被成功解碼,則快閃記憶體控制器110便會將資料頁P45判斷為無法成功解碼的資料頁,且與資料頁P45屬於同一個字元線組的其他資料頁P36~P44以及P46~P47判斷為不安全資料頁。在另一實施例中,與資料頁P45相鄰的字元線組內所包含的資料頁P24~P35也可被判斷為不安全資料頁。
在步驟406中,微處理器112在快閃記憶體模組120中開啟一個新的暫存區塊,例如第6圖所示的暫存區塊600,並將特定區塊500內的不安全資料頁P36~P44以及P46~P47搬移至暫存區塊600的資料頁P0~P10中。具體來說,微處理器112可以讀取特定區塊500中的資料頁的不安全資料頁P36~P44以及P46~P47,並透過解碼器134進行解碼後,將解碼後的資料寫入到暫存區塊600的資料頁P0~P10(在假設都可以成功解碼的情形下)。需注意的是,本實施例中係假設特定區塊500內屬於同一個字元線組的資料頁P36~P47都有儲存資料,若是資料頁P45是記憶裝置100上電前最後一個寫入的資料頁,則資料頁P46~P47便可判斷是空白資料頁而不需要搬移至暫存區塊600中。
在快閃記憶體模組120的操作中,若是在有資料寫入的區塊中存在著
包含大部分具有抹除位準(亦即,第3圖所示的電壓位準L1)之浮閘電晶體的資料頁,則很有可能會造成相鄰資料頁的不穩定。在本實施例中,由於資料頁P45係為無法成功解碼的資料頁,因此其內部所儲存的資料以及每一個浮閘電晶體的電壓位準是屬於無法確定的狀態,因此,為了避免資料頁P45內的大部分浮閘電晶體具有抹除位準,在步驟408中,微處理器112會刻意將隨機資料或是其他資料重新寫入到資料頁P45中,以確保資料頁P45內的大部分浮閘電晶體是具有寫入位準(亦即,第3圖所示的電壓位準L2~L8)而非抹除位準。
由於在不正常斷電的情形下與資料頁P45歸屬於同一個字元線組的資料頁都有是不安全資料頁,因此,若是資料頁P45之後有屬於同一個字元線組、或甚至是下一個字元線組內的空白資料頁,因此在步驟410中微處理器112會將這些空白資料頁都寫入無效資料(dummy data),以使得整個特定區塊500的資料品質能夠更穩定。舉例來說,假設資料頁P45是最後一個寫入的資料頁,則微處理器112可以將資料頁P46、P47寫入無效資料,或甚至將下一個字元線組所包含的資料頁P48~P59也寫入無效資料。
在步驟412中,考量到特定區塊500本身可能會因為不正常斷電而處於不穩定狀態,因此,微處理器112會將特定區塊500關閉,並提升特定區塊進行品質檢測或是垃圾收集操作的優先順序。具體來說,微處理器112可以將特定區塊500在緩衝記憶體116中所對應的一實體位址至邏輯位址映射表(physical address to logical address mapping table)內的資料整理後儲存至快閃記憶體模組中,並將該實體位址至邏輯位址映射表自緩衝記憶體116中移除,來關閉特定區塊500比避免微處理器112繼續將來自主裝置130的資料寫入到特定區塊500中。此外,微處理器112可以透過修改緩衝記憶體116中的一表格或是一序列以提升
特定區塊500進行垃圾收集操作的優先順序。舉例來說,微處理器112可以在緩衝記憶體116建立一個垃圾收集優先序列,並直接將特定區塊500設定在其中;在另一例子中,緩衝記憶體116內會儲存一讀取次數記錄表,其中該讀取次數記錄表記錄了每一個區塊被讀取的次數,而微處理器112可以直接修改該讀取次數記錄表以使得特定區塊500具有很高的讀取次數(例如,1萬次);而由於快閃記憶體控制器110在空閒的時候會讀取該讀取次數記錄表以優先對具有高讀取次數的區塊進行品質偵測(因為高讀取次數代表著區塊可能有讀取干擾而資料不穩定),因此,可以讓特定區塊500優先地被判斷是否需要進行品質檢測或是垃圾收集操作。
在一實施例中,在快閃記憶體控制器110後續空閒的時候,微處理器根據該讀取次數記錄表以優先判斷特定區塊500是否需要進行垃圾收集操作,則此時若是微處理器112判斷特定區塊500內的有效資料頁的數量很低時,則微處理器112便可以直接將特定區塊500設為優先進行垃圾收集操作。另一方面,若是微處理器112判斷特定區塊500內的有效資料頁的數量很高時,則微處理器112可以依序讀取特定區塊500內的每一個有效資料頁,並判斷其中的錯誤位元數量、無法解碼成功之資料頁數量、臨界電壓漂移量、...等等區塊品質因素以決定是否將特定區塊500設為優先進行垃圾收集操作。舉例來說,當區塊500的資料品質很差時,微處理器112可以將特定區塊500設為優先進行垃圾收集操作;而當區塊500的資料品質符合標準時,則微處理器112則再次修改該讀取次數記錄表以使得特定區塊500具有較低的讀取次數(例如,0次)。
簡要歸納本發明,在本發明之快閃記憶體控制器及相關的管理方法中,快閃記憶體控制器上電之後僅將上電前最後寫入的區塊內的一部分資料搬
移至另一暫存區塊中,以加速電子裝置的開機時間;此外,快閃記憶體控制器同時也會提升上電前最後寫入的區塊進行垃圾收集操作的優先順序,以在快閃記憶體控制器空閒時優先對上電前最後寫入的區塊進行品質檢測操作或是垃圾收集操作以確保資料的正確性。透過本發明可以在不延長電子裝置開機時間的情形下,同時對不正常斷電時正在寫入之區塊的內容進行保護。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
400~412:步驟
Claims (19)
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個區塊,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一解碼器;其中當該快閃記憶體控制器上電時,該微處理器自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料,且該解碼器對該多個資料頁中的資料進行解碼以判斷該資料是否可以由對應的錯誤更正碼來進行更正以正確地被讀取;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器關閉該特定區塊,並提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該特定區塊係為該快閃記憶體模組上電前最後寫入的區塊,且該多個資料頁至少包含了該特定區塊中最後多個資料頁。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器先在該快閃記憶體模組開啟一暫存區塊,並將該特定區塊之該多個資料頁中可以成功解碼的至少一部份資料頁的資料搬移至該暫存區塊中。
- 如申請專利範圍第3項所述之快閃記憶體控制器,其中該快閃記憶體 模組係為一立體快閃記憶體模組,且該微處理器僅將與無法成功解碼之資料頁屬於同一字元線組或是相鄰字元線組之可以成功解碼的資料頁的資料搬移至該暫存區塊中。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該記憶體控制器另包含了一緩衝記憶體,該微處理器修改該緩衝記憶體中的一表格或是一序列以提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第5項所述之快閃記憶體控制器,其中該表格記錄了該特定區塊的一讀取次數,以及該微處理器修改該讀取次數以提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器對無法成功解碼的資料頁進行再次資料寫入(re-program)。
- 如申請專利範圍第7項所述之快閃記憶體控制器,其中當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器對無法成功解碼的資料頁進行隨機資料寫入。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該微處理器將與無法成功解碼之資料頁屬於同一字元線組或是相鄰字元線組之空白資料頁寫入無效資料。
- 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個區塊,以及該方法包含有:當該快閃記憶體模組上電時,自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料;對該多個資料頁中的資料進行解碼以判斷該資料是否可以由對應的錯誤更正碼來進行更正以正確地被讀取;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,關閉該特定區塊,並提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第10項所述之方法,其中該特定區塊係為該快閃記憶體模組上電前最後寫入的區塊,且該多個資料頁至少包含了該特定區塊中最後多個資料頁。
- 如申請專利範圍第10項所述之方法,另包含有:當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,在該快閃記憶體模組開啟一暫存區塊;以及將該特定區塊之該多個資料頁中可以成功解碼的至少一部份資料頁的資料搬移至該暫存區塊中。
- 如申請專利範圍第12項所述之方法,其中該快閃記憶體模組係為一立體快閃記憶體模組,且該方法另包含有:僅將與無法成功解碼之資料頁屬於同一字元線組或是相鄰字元線組之可以 成功解碼的資料頁的資料搬移至該暫存區塊中。
- 如申請專利範圍第10項所述之方法,其中提升該特定區塊進行垃圾收集操作的優先順序的步驟包含有:修改一緩衝記憶體中的一表格或是一序列以提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第14項所述之方法,其中該表格記錄了該特定區塊的一讀取次數,且提升該特定區塊進行垃圾收集操作的優先順序的步驟包含有:修改該讀取次數以提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
- 如申請專利範圍第10項所述之方法,另包含有:當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,對無法成功解碼的資料頁進行再次資料寫入(re-program)。
- 如申請專利範圍第16項所述之方法,其中對無法成功解碼的資料頁進行再次資料寫入的步驟包含有:對無法成功解碼的資料頁進行隨機資料寫入。
- 如申請專利範圍第10項所述之方法,另包含有:當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,將與無法成功解碼之資料頁屬於同一字元線組或是相鄰字元線組之空白資料頁 寫入無效資料。
- 一種電子裝置,包含有:一快閃記憶體模組,包含多個區塊;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中當該快閃記憶體控制器以及該快閃記憶體模組上電時,該快閃記憶體控制器自該快閃記憶體模組中一特定區塊讀取多個資料頁中的資料,並對該多個資料頁中的資料進行解碼以判斷該資料是否可以由對應的錯誤更正碼來進行更正以正確地被讀取;以及當該多個資料頁中有任一資料頁有發生無法成功解碼的情形時,該快閃記憶體控制器關閉該特定區塊,並提升該特定區塊進行品質檢測或是垃圾收集操作的優先順序。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107139505A TWI687930B (zh) | 2018-11-07 | 2018-11-07 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
CN201910003603.XA CN111159069B (zh) | 2018-11-07 | 2019-01-03 | 闪存控制器、管理闪存模块的方法及相关的电子装置 |
US16/675,166 US11113201B2 (en) | 2018-11-07 | 2019-11-05 | Flash memory controller, method and associated electronic device for managing priority of quality detection or garbage collection of block |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107139505A TWI687930B (zh) | 2018-11-07 | 2018-11-07 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI687930B true TWI687930B (zh) | 2020-03-11 |
TW202018718A TW202018718A (zh) | 2020-05-16 |
Family
ID=70459587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107139505A TWI687930B (zh) | 2018-11-07 | 2018-11-07 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11113201B2 (zh) |
CN (1) | CN111159069B (zh) |
TW (1) | TWI687930B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200388242A1 (en) * | 2019-06-05 | 2020-12-10 | Novatek Microelectronics Corp. | Timing controller device and data reading-writing method |
TWI733568B (zh) * | 2020-08-27 | 2021-07-11 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377119C (zh) * | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
US20140304454A1 (en) * | 2013-04-05 | 2014-10-09 | Sandisk Enterprise Ip Llc | Data hardening in a storage system |
US20180074708A1 (en) * | 2016-09-09 | 2018-03-15 | Western Digital Technologies, Inc. | Trim management in solid state drives |
US20180307496A1 (en) * | 2017-04-21 | 2018-10-25 | Silicon Motion, Inc. | Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100789406B1 (ko) * | 2006-11-03 | 2007-12-28 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
CN108595345B (zh) * | 2012-07-25 | 2021-11-23 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
US9946483B2 (en) * | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
KR20180076765A (ko) * | 2016-12-28 | 2018-07-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-11-07 TW TW107139505A patent/TWI687930B/zh active
-
2019
- 2019-01-03 CN CN201910003603.XA patent/CN111159069B/zh active Active
- 2019-11-05 US US16/675,166 patent/US11113201B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377119C (zh) * | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
US20140304454A1 (en) * | 2013-04-05 | 2014-10-09 | Sandisk Enterprise Ip Llc | Data hardening in a storage system |
US20180074708A1 (en) * | 2016-09-09 | 2018-03-15 | Western Digital Technologies, Inc. | Trim management in solid state drives |
US20180307496A1 (en) * | 2017-04-21 | 2018-10-25 | Silicon Motion, Inc. | Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same |
Also Published As
Publication number | Publication date |
---|---|
US11113201B2 (en) | 2021-09-07 |
CN111159069A (zh) | 2020-05-15 |
TW202018718A (zh) | 2020-05-16 |
CN111159069B (zh) | 2021-11-30 |
US20200142835A1 (en) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301373B2 (en) | Reconstruction of address mapping in a host of a storage system | |
CN110147295B (zh) | 存取闪存模块的方法、闪存控制器以及记忆装置 | |
TWI664634B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
TW202011392A (zh) | 資料儲存裝置與資料處理方法 | |
CN108241473B (zh) | 存取闪存的方法及相关的控制器 | |
TWI533305B (zh) | 將資料寫入至快閃記憶體的方法及相關的記憶裝置與快閃記憶體 | |
TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TW201913381A (zh) | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI782644B (zh) | 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置 | |
TWI734063B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
TWI687930B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
US10809943B2 (en) | Data processing method for improving utilization rate and program time after sudden power off event and associated data storage device | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
TWI722938B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
TWI759580B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI746927B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
TWI787627B (zh) | 電子裝置、快閃記憶體控制器及其存取方法 | |
TWI831297B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI691967B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 |