TWI745695B - 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 - Google Patents
用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 Download PDFInfo
- Publication number
- TWI745695B TWI745695B TW108117590A TW108117590A TWI745695B TW I745695 B TWI745695 B TW I745695B TW 108117590 A TW108117590 A TW 108117590A TW 108117590 A TW108117590 A TW 108117590A TW I745695 B TWI745695 B TW I745695B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- block
- expansion
- extended
- controller
- Prior art date
Links
Images
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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用來進行無預警斷電復原管理之方法、相關之記憶裝置及其控制器以及相關之電子裝置。該方法可包含:觸發寫入一擴展區塊;針對一目標區塊,設定預計以二元搜尋處理的一頁面數以及一起始頁面編號;至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面;於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋,以尋找該目標區塊中的最後一個有效頁面;依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍;以及對該放棄範圍中的全部的擴展頁面進行虛擬編程。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來進行無預警斷電復原(Sudden Power Off Recovery,SPOR)管理之方法、相關之記憶裝置及其控制器以及相關之電子裝置。
快閃記憶體可廣泛地應用於各種可攜式或非可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell,SLC)、多階細胞(multiple level cell,MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的記憶裝置產品可採用三階細胞(triple level cell,TLC)快閃記憶體,甚至四階細胞(quadruple level cell,QLC)快閃記憶體。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,由於快閃記憶體之容量隨著某些規格之變化而增加,這些記憶裝置的針對無預警斷電(Sudden Power Off,SPO)事件之管理機制需要更多的時間進行相關運作,這可能導致很長的開機時間或開機失敗。因此,需要一種新穎的
方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現能順暢地運作之大容量記憶裝置。
本發明之一目的在於提供一種用來進行無預警斷電復原(Sudden Power Off Recovery,SPOR)管理之方法、相關之記憶裝置及其控制器以及相關之電子裝置,以解決上述問題。
本發明之另一目的在於提供一種用來進行無預警斷電復原管理之方法、相關之記憶裝置及其控制器以及相關之電子裝置,以在沒有副作用或較不可能帶來副作用之狀況下實現能順暢地運作之大容量記憶裝置。
本發明之至少一實施例提供一種用來進行無預警斷電復原管理之方法,其中該方法係應用於一記憶裝置,該記憶裝置包含一非揮發性記憶體(non-volatile memory,NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。該方法可包含:觸發寫入一擴展(expansion)區塊,其中該記憶裝置將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,其中於寫入該擴展區塊的期間,一無預警斷電(Sudden Power Off,SPO)事件發生,且該記憶裝置被重新上電;針對一目標區塊(target block),設定預計以二元搜尋(binary search)處理的一頁面數(page count)以及一起始頁面編號(start page number);至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面(empty page);針對該目標區塊,檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋(page-by-page search),以尋找該目標區塊中的最後一個有效頁面(valid page);
依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍(abandonment range);以及對該放棄範圍中的全部的擴展頁面進行虛擬編程(dummy programming)。
本發明之至少一實施例提供一種記憶裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作。該控制器可包含一處理電路,而該處理電路可依據來自一主裝置的複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如:該控制器觸發寫入一擴展區塊,其中該控制器將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,其中於寫入該擴展區塊的期間,一無預警斷電事件發生,且該記憶裝置被重新上電;針對一目標區塊,該控制器設定預計以二元搜尋處理的一頁面數以及一起始頁面編號;該控制器至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面;針對該目標區塊,該控制器檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,該控制器於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋,以尋找該目標區塊中的最後一個有效頁面;該控制器依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍;以及該控制器對該放棄範圍中的全部的擴展頁面進行虛擬編程。
依據某些實施例,本發明另提供一種包含上述之記憶裝置的電子裝置,其中該電子裝置包含該主裝置,且該主裝置與該記憶裝置彼此耦接。例如,該主裝置可包含:至少一處理器,用來控制該主裝置之運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝
置;其中該記憶裝置提供儲存空間給該主裝置。
本發明之至少一實施例提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含一處理電路,而該處理電路可依據來自一主裝置的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如:該控制器觸發寫入一擴展區塊,其中該控制器將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,其中於寫入該擴展區塊的期間,一無預警斷電事件發生,且該記憶裝置被重新上電;針對一目標區塊,該控制器設定預計以二元搜尋處理的一頁面數以及一起始頁面編號;該控制器至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面;針對該目標區塊,該控制器檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,該控制器於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋,以尋找該目標區塊中的最後一個有效頁面;該控制器依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍;以及該控制器對該放棄範圍中的全部的擴展頁面進行虛擬編程。
本發明的好處之一是,本發明能針對該控制器的運作進行妥善的控制,尤其,實現能順暢地運作之大容量記憶裝置。當突然斷電事件發生時,依據該控制器中的高效能斷電復原機制可順暢地運作,以使記憶裝置快速地變為可用的,以供使用者使用。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化效能。
10:電子裝置
50:主裝置
100:記憶裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:緩衝記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...122-N:非揮發性記憶體元件
200:工作流程
202、210、212、214、216、218、
220、222:步驟
DIE#0、DIE#1:裸晶
PL#0、PL#1:平面
FBLK#0、FBLK#1、...:實體區塊
FP#0、FP#1、FP#2、FP#3、FP#4、FP#5、FP#6、FP#7、...:實體頁面
XBLK#0、XBLK#1、...:擴展區塊
XP#0、XP#1、XP#2、XP#3、XP#4、XP#5、XP#6、XP#7、XP#8、XP#9、XP#10、XP#11、XP#12、XP#13、XP#14、XP#15、XP#16、XP#17、XP#18、XP#19、XP#20、XP#21、XP#22、XP#23、XP#24、XP#25、XP#26、XP#27、XP#28、XP#29、XP#30、XP#31...:擴展頁面
S11、S12、S13、S14、S15、S16、S17、S18、S19、S1A、S1B、S1C、S1D、S1E、S1F、S21、S22、S23、S24、S25、S2A、S2B、S2C、S2D:步驟
第1圖為依據本發明一實施例之一種電子裝置的示意圖,其中該電子裝置包含一主裝置(host device)與一記憶裝置。
第2圖為依據本發明一實施例之一擴展(expansion)控制方案。
第3圖為依據本發明一實施例之一種用來進行無預警斷電復原(Sudden Power Off Recovery,SPOR)管理之方法的工作流程。
第4圖繪示依據本發明一實施例之如第3圖所示方法的一第一管理方案的某些讀取操作。
第5圖繪示該第一管理方案的其它讀取操作。
第6圖繪示該第一管理方案的某些後續操作。
第7圖繪示該第一管理方案的某些實施細節。
第8圖繪示依據本發明一實施例之如第3圖所示方法的一第二管理方案的某些讀取操作。
第9圖繪示該第二管理方案的某些後續操作。
第10圖繪示該第二管理方案的某些實施細節。
第1圖為依據本發明一第一實施例之一種電子裝置10的示意圖,其中電子裝置10可包含一主裝置(host device)50以及一記憶裝置100,而記憶裝置100可用來為主裝置50儲存資訊。依據本實施例,記憶裝置100可用來提供儲存空間給主裝置50,且可從主裝置50取得一或多個驅動電壓作為記憶裝置100之電源,但本發明不限於此。主裝置50可包含:至少一處理器(例如一或多個處理
器),其可通稱為處理器52,以及相關電路諸如隨機存取記憶體(Random Access Memory,RAM)、匯流排等;以及一電源供應電路54,其中處理器52與電源供應電路54彼此耦接。處理器52可用來控制主裝置50的運作,而電源供應電路54可用來提供電源給處理器52以及記憶裝置100。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。
依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory,NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(NV memory element)(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、...與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、...與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明不限於此。記憶裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(Solid State Drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。
如第1圖所示,記憶體控制器110可包含一處理電路諸如微處理器112、一儲存器諸如唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯電路114、一緩衝記憶體116與一傳輸介面電路118,其中這些元件中之至少一部分(例如一部分或全部)可透過匯流排彼此耦接。緩衝記憶體116係以隨機存
取記憶體(RAM)來實施,例如可為靜態隨機存取記憶體(Static RAM,SRAM),其中該隨機存取記憶體可用來提供內部儲存空間給記憶體控制器110,例如可暫時地儲存資料,但本發明不限於此。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可用來控制非揮發性記憶體120。控制邏輯電路114可包含一錯誤更正碼(Error Correction Code,簡稱ECC)電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIe)標準、嵌入式多媒體記憶卡(embedded Multi Media Card,eMMC)標準、或通用快閃記憶體儲存(Universal Flash Storage,UFS)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送複數個主裝置指令(host command)與對應的邏輯位址予記憶體控制器110來存取記憶裝置100中之非揮發性記憶體120。記憶體控制器110接收該複數個主裝置指令與上述對應的邏輯位址,並將該複數個主裝置指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(write)/編程(Program)非揮發性記憶體120當中某些實體位址之記憶單位(memory unit),其中實體位址可被關聯於邏輯位址。尤其,記憶體控制器110可產生或更新至少一邏輯對實體位址映射表(logical-to-physical address mapping table,簡稱H2F表)來管理實體位址與邏輯位址之間的關係,但本發明不限於此。例如,於上述至少一H2F表中的多個欄位之各自的相對位置可對應於該些邏輯位址,且該多個欄位可分別用來記錄該些實體位址以指出該些實體位址與該些邏輯位址之間的關係,其中該
多個欄位中的每一欄位於建立上述少一H2F表的一開始可等於一預設值諸如0xFFFFFFFF,而該預設值不會等於任何有效的實體位址。較佳地,上述至少一H2F表可實施成至少一頁面位址鏈結表(page address linking table),以供控制非揮發性記憶體120當中的該複數個非揮發性記憶體元件122-1、122-2、...與122-N的複數個區塊(block)之各自的頁面(page)之存取。微處理器112可依據多個局部頁面位址鏈結表(local page address linking table)來建立一全域頁面位址鏈結表(global page address linking table),以記錄或更新該些實體位址與該些邏輯位址之間的關係。
例如,於非揮發性記憶體120中,非揮發性記憶體元件122-1、122-2、...與122-N中之任一非揮發性記憶體元件122-n(符號「n」可代表區間[1,N]中之任一整數)可包含多個區塊,且該多個區塊中之一區塊可包含且可記錄特定數量的頁面(page)。在一實體位址包含一區塊位址諸如一區塊編號(block number)以及一頁面位址諸如一頁面編號(page number)的情況下,記憶體控制器110可依據該區塊編號以及該頁面編號來存取非揮發性記憶體120中之某一區塊中的某一頁面。
又例如,上述任一非揮發性記憶體元件122-n可包含多個平面(plane),該多個平面中之一平面可包含一組區塊諸如上述該多個區塊,且該組區塊中之一區塊可包含且可記錄特定數量的頁面。在一實體位址包含一平面編號(plane number)、一區塊編號以及一頁面編號的情況下,記憶體控制器110可依據該平面編號、該區塊編號以及該頁面編號來存取非揮發性記憶體120中之某一平面中的某一區塊中的某一頁面,但本發明不限於此。在多平面(multi-plane)架構中,總區塊數可增加,且非揮發性記憶體120的儲存容量可變得更大。
基於非揮發性記憶體120的架構,記憶體控制器110對非揮發性記憶體120進行抹除資料之運作的最小單位可為區塊,而記憶體控制器110對非揮發
性記憶體120進行寫入資料之運作的最小單位可為頁面,但本發明不限於此。由於存在上列運作的最小單位之間的差異,記憶體控制器110可被設計成具有各種管理機制,以確保記憶裝置100能正確地運作。
關於製造非揮發性記憶體120,有多種技術可供採用,諸如:將記憶細胞排列成單層之平面NAND型快閃(2D/Planar NAND Flash)技術;以及將記憶細胞排列成多層垂直堆疊之立體NAND型快閃(3D NAND Flash)技術。例如,非揮發性記憶體120可被實施成具有單層排列的記憶細胞之平面NAND型快閃架構。又例如,非揮發性記憶體120可被實施成具有以多層垂直堆疊的記憶細胞之立體NAND型快閃架構。此狀況下,非揮發性記憶體120的儲存容量可變得非常巨大。
相較於從非揮發性記憶體120讀取資料的操作,將資料寫入(尤其,編程)到非揮發性記憶體120中的操作可以是耗時且耗電的。第2圖為依據本發明一實施例之一擴展(expansion)控制方案。記憶體控制器110可將分別屬於不同晶片之各自的不同平面之多組實體區塊彼此關聯以形成一組擴展區塊,以透過一或多種平行處理諸如管線處理(pipelining)、交錯處理(interleaving)等來提升非揮發性記憶體120的存取速度。為了便於理解,以雙平面架構的快閃裸晶作為上述非揮發性記憶體元件122-1、122-2、...122-N中之兩個非揮發性記憶體元件的例子,記憶體控制器110可將分別屬於裸晶DIE#0與DIE#1之各自的平面PL#0與PL#1之四組實體區塊{{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...}}彼此關聯以形成一組擴展區塊{XBLK#0,XBLK#1,...},但本發明不限於此。依據本實施例,擴展區塊XBLK#0中的擴展頁面XP#0、XP#1、XP#2與XP#3代表分別屬於裸晶DIE#0與DIE#1之各自的平面PL#0與PL#1之四個實體區塊FBLK#0的各自的實體頁面FP#0,擴展區塊XBLK#0中的擴展頁面XP#4、XP#5、XP#6與XP#7代表分別屬於裸晶DIE#0與
DIE#1之各自的平面PL#0與PL#1之四個實體區塊FBLK#0的各自的實體頁面FP#1,依此類推;擴展區塊XBLK#1中的擴展頁面XP#0、XP#1、XP#2與XP#3代表分別屬於裸晶DIE#0與DIE#1之各自的平面PL#0與PL#1之四個實體區塊FBLK#1的各自的實體頁面FP#0,擴展區塊XBLK#1中的擴展頁面XP#4、XP#5、XP#6與XP#7代表分別屬於裸晶DIE#0與DIE#1之各自的平面PL#0與PL#1之四個實體區塊FBLK#1的各自的實體頁面FP#1,依此類推;並且其餘依此類推。此外,於該組擴展區塊{XBLK#0,XBLK#1,...}中的每一擴展區塊中,擴展頁面XP#0、XP#1、XP#2與XP#3的組合可視為該擴展區塊中的第一個超級頁面(super page),擴展頁面XP#4、XP#5、XP#6與XP#7的組合可視為該擴展區塊中的第二個超級頁面,依此類推。
為了便於理解,該複數個區塊中的每一者(例如該四組實體區塊{{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...},{FBLK#0,FBLK#1,...}}中的每一實體區塊)可包含Nfp個實體頁面諸如實體頁面FP#0、FP#1、...與FP#(Nfp-1),且該組擴展區塊{XBLK#0,XBLK#1,...}中之每一擴展區塊可包含Nxp個擴展頁面諸如擴展頁面XP#0、XP#1、...與XP#(Nxp-1),其中符號「Nfp」與「Nxp」可代表正整數。例如,於第2圖所示之該擴展控制方案中,Nxp=(4 * Nfp),但本發明不限於此。
於寫入一擴展區塊(例如:該組擴展區塊{XBLK#0,XBLK#1,...}中之某一擴展區塊)的期間,當無預警斷電(Sudden Power Off,SPO)事件發生時,全部的進行中的操作被迫停止。為了便於理解,假設缺乏妥善的復原機制。此狀況下,這個擴展區塊及其內的資料可能變得無法使用,且先前已經進行過的寫入操作可能被迫要重新進行,這會浪費使用者的時間(例如,當大量資料已被寫入這個擴展區塊)。因此,當無預警斷電事件發生之後,如何快速地恢復(resume)被中斷的任務以繼續服務該使用者已成為技術上的一門重要課題。
本發明至少一實施例揭露一種用來進行無預警斷電復原(Sudden Power Off Recovery,SPOR)管理之方法,此方法可應用於記憶裝置100,並由記憶裝置100的記憶體控制器110所執行,且可快速地恢復被中斷的任務以繼續服務該使用者,例如透過其高效率的工作流程200,如第3圖所示。
於步驟202中,記憶體控制器110開始將資料(例如使用者資料)搬移到一擴展區塊,諸如該組擴展區塊{XBLK#0,XBLK#1,...}中之某一擴展區塊。當記憶體控制器110將該資料中的某一組頁面資料(例如使用者資料中的一頁面的資料)寫入該擴展區塊中之某一擴展頁面時,記憶體控制器110可將這組頁面資料寫入該擴展頁面所代表的某一實體頁面中的一資料區,且於該實體頁面中的一備用區記錄這組頁面資料的邏輯位址資訊,其中該邏輯位址資訊包含邏輯位址諸如邏輯頁面編號。
依據本實施例,記憶體控制器110於步驟202中觸發寫入該擴展區塊,其中於寫入該擴展區塊的期間,一無預警斷電事件發生、且之後記憶裝置100被重新上電(於第3圖中標示為「無預警斷電及重新上電」,以求簡明)。
於步驟210中,針對一目標區塊(target block),記憶體控制器110可設定預計以二元搜尋(binary search)處理的頁面數(page count)NP及起始頁面編號(start page number)SP,其中頁面數NP及起始頁面編號SP屬於該二元搜尋的參數。
於步驟212中,依據該二元搜尋的參數,諸如頁面數NP及起始頁面編號SP,記憶體控制器110可對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面(empty page)。依據本實施例,由於任何已寫入該目標區塊的資料(例如使用者資料)是從該目標區塊的最開始起依序寫入該目標區塊,故從該目標區塊的最開始起到該第一個空頁面的範圍都曾被寫入、且不是空的,且從該第一個空頁面起到該目標區塊中的最後可寫入資料(例如使用者資料)的
部分都是空的、且未曾被寫入。透過該二元搜尋,記憶體控制器110可盡快尋找到該第一個空頁面。
於步驟214中,針對該目標區塊,記憶體控制器110可檢查是否滿足一放棄條件、或該目標區塊全滿或全空。記憶體控制器110可依據該第一個空頁面以及至少一門檻值(例如一或多個門檻值)來進行此檢查操作。例如,記憶體控制器110可依據該第一個空頁面於該目標區塊中的頁面編號是否小於一第一門檻值來判斷該放棄條件是否被滿足,其中若該第一個空頁面的該頁面編號小於該第一門檻值(這可指出已被寫入該擴展區塊的資料之資料量很小),記憶體控制器110可判斷該放棄條件被滿足,否則,記憶體控制器110可判斷該放棄條件未被滿足,但本發明不限於此。又例如,當該第一個空頁面是該目標區塊中的第一個頁面時,記憶體控制器110可判斷該目標區塊全空。再例如,當未能找出該第一個空頁面時,記憶體控制器110可判斷該目標區塊全滿。如果滿足該放棄條件、或該目標區塊全滿或全空,工作流程200結束;否則,進入步驟216。
於步驟216中,因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,記憶體控制器110可於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋(page-by-page search),以尋找該目標區塊中的最後一個有效頁面(valid page),其中往回進行該逐頁面搜尋可包含:沿著一往回(backward)方向,諸如頁面編號減少的方向,來進行該逐頁面搜尋。例如,於進行該逐頁面搜尋的期間,當記憶體控制器110於讀取某一頁面時,沒有發生不可更正的(Uncorrectable)ECC錯誤(簡稱UECC錯誤)。此狀況下,記憶體控制器110可將這個頁面決定為該最後一個有效頁面。
於步驟218中,記憶體控制器110可依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍(abandonment range)。舉例來說,該放棄範圍可包含(nxp2-nxp1)個擴展頁面諸如擴展頁面XP#(nxp1+1)、
XP#(nxp1+2)、...與XP#nxp2,其中符號「nxp1」與「nxp2」中之每一者可代表區間[0,(Nxp-1)]中之一整數,且nxp1<nxp2。該放棄範圍中的該(nxp2-nxp1)個擴展頁面可包含被該無預警斷電事件影響(例如損壞)的擴展頁面。
於步驟220中,記憶體控制器110可將一實體對邏輯位址映射表(physical-to-logical address mapping table,簡稱F2H表)中的對應於該放棄範圍的任何條目(entry)記錄為一無效標籤(invalid tag)諸如0xFFFFFFFF,以無效化該放棄範圍中的任何擴展頁面。舉例來說,當將一組資料(例如使用者資料)寫入一實體頁面時,記憶體控制器110可於該F2H表中將該組資料的一邏輯位址記錄成為對應於該實體頁面之一條目,以指出這個實體頁面中的該組資料對應於(例如關聯於或儲存於)這個邏輯位址,但本發明不限於此。由於該無效標籤諸如0xFFFFFFFF不會等於任何有效的邏輯位址,故記憶體控制器110可透過將該F2H表中的某一條目記錄為該無效標籤,來無效化一對應的擴展頁面。
於步驟222中,記憶體控制器110可對該放棄範圍中的全部的擴展頁面進行虛擬編程(dummy programming),尤其,將虛擬資料(dummy data)諸如非使用者資料編程至這些擴展頁面,以使被該無預警斷電事件影響到的這些擴展頁面變得更穩定。記憶體控制器110可針對該擴展區塊更新該F2H表以使該擴展區塊變為可用的(available)而可供繼續使用(這表示記憶體控制器11o完成無預警斷電復原),尤其,可於該擴展區塊中從該放棄範圍之前的最後一個擴展頁面XP#nxp1起沿著擴展頁面編號遞減的方向逐一讀取擴展頁面XP#nxp1、XP#(nxp1-1)、XP#(nxp1-2)、...與XP#0之各自的備用區(spare region),以從記憶體控制器110於步驟202中已記錄於這些備用區中的邏輯位址資訊提取邏輯位址諸如邏輯頁面編號,以供更新該F2H表,例如,將這些邏輯位址諸如這些邏輯頁面編號記錄於該F2H表中,直到完成補充記錄該F2H表中未更新的部分。之後,工作流程200結束。
為了更好地理解,該方法可用第3圖所示之工作流程200來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第3圖所示之工作流程200中增加、刪除或修改。
為了便於理解,於以下說明中的某些實施例中,假設步驟202中所述之該擴展區塊可包含擴展頁面XP#0、XP#1、XP#2、XP#3、XP#4、XP#5、XP#6、XP#7、XP#8、XP#9、XP#10、XP#11、XP#12、XP#13、XP#14、XP#15、XP#16、XP#17、XP#18、XP#19、XP#20、XP#21、XP#22、XP#23、XP#24、XP#25、XP#26、XP#27、XP#28、XP#29、XP#30與XP#31,被彼此關聯以形成這個擴展區塊的四個對應的實體區塊中的每一實體區塊可包含實體頁面FP#0、FP#1、FP#2、FP#3、FP#4、FP#5、FP#6與FP#7,但本發明不限於此。例如,擴展頁面XP#0、XP#1、...與XP#15已被成功地編程且可視為有效頁面,且其內的資料沒有損壞。之後,記憶體控制器110觸發寫入或編程擴展頁面XP#16、XP#17、XP#18與XP#19,但該無預警斷電事件發生,使得擴展頁面XP#16成為有效但不穩定的頁面、且擴展頁面XP#17與XP#18成為毀損頁面,其中擴展頁面XP#19、XP#20、...與XP#31仍維持空的,也就是空頁面。基於該方法,記憶體控制器110可適當地選擇一區塊作為該目標區塊,以快速地恢復被中斷的任務以繼續服務該使用者。
第4圖繪示依據本發明一實施例之如第3圖所示方法的一第一管理方案的某些讀取操作(例如步驟S11、S12、S13、S14與S15之各自的讀取操作),第5圖繪示該第一管理方案的其它讀取操作(例如步驟S16、S17、S18與S19之各自的讀取操作),並且第6圖繪示該第一管理方案的某些後續操作(例如步驟S1E與S1F之各自的操作)。為了便於理解,假設於工作流程200(尤其,步驟210)中,記憶體控制器110可選擇步驟202中所述之該擴展區塊作為該目標區塊,但本發明不限於此。此狀況下,該目標區塊可代表該擴展區塊,頁面數NP可代表該擴展區塊中的擴展頁面XP#0、XP#1、...與XP#(Nxp-1)的數量Nxp,諸如本實
施例之擴展頁面XP#0、XP#1、...與XP#31的擴展頁面數32,且起始頁面編號SP可等於0。
例如,記憶體控制器110可對該目標區塊諸如該擴展區塊進行該二元搜尋以尋找該擴展區塊中的第一個空頁面,尤其,依序於步驟S11、S12...與S15中進行五次讀取操作以判斷擴展頁面XP#19是該擴展區塊中的該第一個空頁面,如第4圖所示,其中步驟S11、S12...與S15可視為步驟212的子步驟。另外,記憶體控制器110可於該目標區塊諸如該擴展區塊中從該第一個空頁面起往回進行該逐頁面搜尋以尋找該擴展區塊中的最後一個有效頁面,尤其,依序於步驟S16、S17...與S19中進行四次讀取操作以判斷擴展頁面XP#15是該擴展區塊中的該最後一個有效頁面,如第5圖所示,其中步驟S16、S17...與S19可視為步驟216的子步驟。於是,記憶體控制器110於步驟S11、S12...與S19中總共進行九次讀取操作。此外,步驟S1E與S1F之操作可分別等同於步驟220與222之操作,且可使擴展頁面XP#16、XP#17、XP#18與XP#19變為無效且虛擬編程的。為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
第7圖繪示該第一管理方案的某些實施細節,其中步驟S1A、S1B、S1C與S1D可視為步驟218的子步驟,但本發明不限於此。
於步驟S1A中,記憶體控制器110可檢查(於該目標區塊諸如該擴展區塊中的)該最後一個有效頁面是否對齊一超級頁面(例如,位於其所在的該超級頁面中的最後一個擴展頁面)。如果該最後一個有效頁面對齊該超級頁面(例如,位於其所在的該超級頁面中的最後一個擴展頁面),進入步驟S1C;否則,進入步驟S1B。
於步驟S1B中,記憶體控制器110可將(於該目標區塊諸如該擴展區塊中的)該最後一個有效頁面所在的該超級頁面中的第一個擴展頁面決定為該放棄範圍中的一起始擴展頁面。
於步驟S1C中,記憶體控制器110可將(於該目標區塊諸如該擴展區塊中的)該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的該起始擴展頁面。
於步驟S1D中,記憶體控制器110可將(於該目標區塊諸如該擴展區塊中的)該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
第8圖繪示依據本發明一實施例之如第3圖所示方法的一第二管理方案的某些讀取操作(例如步驟S21、S22、S23、S24與S25之各自的讀取操作),並且第9圖繪示該第二管理方案的某些後續操作(例如步驟S2C與S2D之各自的操作)。相較於該第一管理方案,該第二管理方案能進一步提升記憶裝置100的效能。例如,於工作流程200(尤其,步驟210)中,記憶體控制器110可選擇被彼此關聯以形成步驟202中所述之該擴展區塊的對應的實體區塊中的最後一個實體區塊,諸如上述四個對應的實體區塊中的屬於裸晶DIE#1的平面PL#1之實體區塊,作為該目標區塊,但本發明不限於此。此狀況下,該目標區塊可代表該最後一個實體區塊,頁面數NP可代表該最後一個實體區塊中的實體頁面FP#0、FP#1、...與FP#(Nfp-1)的數量Nfp,諸如本實施例之實體頁面FP#0、FP#1、...與FP#7的實體頁面數8,且起始頁面編號SP可等於0。
例如,記憶體控制器110可對該目標區塊諸如該最後一個實體區塊進行該二元搜尋以尋找該最後一個實體區塊中的第一個空頁面,尤其,依序於步驟S21、S22...與S24中進行四次讀取操作以判斷該最後一個實體區塊中的實體頁面FP#4(其等同於擴展頁面XP#19)是該最後一個實體區塊中的該第一個空頁面,如第8圖所示,其中步驟S21、S22...與S24可視為步驟212的子步驟。另外,記憶體控制器110可於該目標區塊諸如該最後一個實體區塊中從該第一個空頁面起往回進行該逐頁面搜尋以尋找該最後一個實體區塊中的最後一個有效頁
面,尤其,於步驟S25中只進行一次讀取操作以判斷該最後一個實體區塊中的實體頁面FP#3(其等同於擴展頁面XP#15)是該最後一個實體區塊中的該最後一個有效頁面,如第8圖所示,其中步驟S25可作為步驟216的例子。於是,記憶體控制器110於步驟S21、S22...與S25中總共進行五次讀取操作。此外,步驟S2C與S2D之操作可分別等同於步驟220與222之操作,且可使擴展頁面XP#16、XP#17、XP#18與XP#19變為無效且虛擬編程的。為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
第10圖繪示該第二管理方案的某些實施細節,其中步驟S2A與S2B可視為步驟218的子步驟,但本發明不限於此。
於步驟S2A中,記憶體控制器110可將(於該目標區塊諸如該最後一個實體區塊中的)該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的該起始擴展頁面。例如,該最後一個實體區塊中的該最後一個有效頁面可為該最後一個實體區塊中的實體頁面FP#3,也就是擴展頁面XP#15,且因此該最後一個實體區塊中的該最後一個有效頁面的該下一個擴展頁面就是擴展頁面XP#16。
於步驟S2B中,記憶體控制器110可將(於該目標區塊諸如該最後一個實體區塊中的)該第一個空頁面決定為該放棄範圍中的該結束擴展頁面。例如,該最後一個實體區塊中的該第一個空頁面可為該最後一個實體區塊中的實體頁面FP#4,也就是擴展頁面XP#19。
為了簡明起見,本實施例與前述實施例相仿的內容在此不重複贅述。
於上述實施例中,該最後一個實體區塊可代表被彼此關聯以形成步驟202中所述之該擴展區塊的上述對應的實體區塊中的具有最大裸晶編號(die number)且具有最大平面編號的實體區塊,諸如上述四個對應的實體區塊中的屬於裸晶DIE#1的平面PL#1之實體區塊,但本發明不限於此。於某些實施例中,
該最後一個實體區塊可代表被彼此關聯以形成步驟202中所述之該擴展區塊的上述對應的實體區塊中的用來儲存該擴展區塊的各個超級頁面的各自的最後一筆資料之實體區塊。為了簡明起見,這些實施例與前述實施例相仿的內容在此不重複贅述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200:工作流程
202、210、212、214、216、218、220、222:步驟
Claims (20)
- 一種用來進行無預警斷電復原(Sudden Power Off Recovery,SPOR)管理之方法,該方法係應用於一記憶裝置,該記憶裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含有:觸發寫入一擴展(expansion)區塊,其中該記憶裝置將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,而該擴展區塊包含複數個擴展頁面,其中於寫入該擴展區塊的期間,一無預警斷電(Sudden Power Off,SPO)事件發生,且該記憶裝置被重新上電;針對一目標區塊(target block),設定預計以二元搜尋(binary search)處理的一頁面數(page count)以及一起始頁面編號(start page number),其中該目標區塊包含複數個頁面;至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面(empty page);針對該目標區塊,檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋(page-by-page search),以尋找該目標區塊中的最後一個有效頁面(valid page);依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍(abandonment range);以及對該放棄範圍中的全部的擴展頁面進行虛擬編程(dummy programming)。
- 如申請專利範圍第1項所述之方法,其中該目標區塊代表該擴展區 塊,該目標區塊中的第一個空頁面代表該擴展區塊中的第一個空頁面,且該最後一個有效頁面代表該擴展區塊中的最後一個有效頁面。
- 如申請專利範圍第2項所述之方法,其中依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的該放棄範圍包含:檢查於該擴展區塊中的該最後一個有效頁面是否對齊一超級頁面(super page);因應於該擴展區塊中的該最後一個有效頁面對齊該超級頁面,將於該擴展區塊中的該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的一起始擴展頁面;以及將於該擴展區塊中的該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
- 如申請專利範圍第2項所述之方法,其中依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的該放棄範圍包含:檢查於該擴展區塊中的該最後一個有效頁面是否對齊一超級頁面(super page);因應於該擴展區塊中的該最後一個有效頁面並未對齊該超級頁面,將於該擴展區塊中的該最後一個有效頁面所在的該超級頁面中的第一個擴展頁面決定為該放棄範圍中的一起始擴展頁面;以及將於該擴展區塊中的該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
- 如申請專利範圍第1項所述之方法,其中該目標區塊代表該多個實體 區塊中的一實體區塊,該目標區塊中的第一個空頁面代表該實體區塊中的第一個空頁面,且該最後一個有效頁面代表該實體區塊中的最後一個有效頁面。
- 如申請專利範圍第5項所述之方法,其中依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的該放棄範圍包含:將於該實體區塊中的該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的一起始擴展頁面;以及將於該實體區塊中的該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
- 如申請專利範圍第1項所述之方法,其中該至少一非揮發性記憶體元件包含複數個非揮發性記憶體元件,該複數個非揮發性記憶體元件中的每一非揮發性記憶體元件包含多個平面,且該多個平面中的每一平面包含所述至少一非揮發性記憶體元件的該複數個區塊中之一組實體區塊;以及所述至少一非揮發性記憶體元件的該複數個區塊中的該多個實體區塊代表分別屬於不同的非揮發性記憶體元件之各自的平面之實體區塊。
- 如申請專利範圍第7項所述之方法,其中該複數個非揮發性記憶體元件分別是複數個記憶體裸晶(memory die);以及該目標區塊代表該多個實體區塊中的具有最大裸晶編號(die number)且具有最大平面編號的實體區塊。
- 如申請專利範圍第1項所述之方法,其中該目標區塊代表該多個實體 區塊中的用來儲存該擴展區塊的各個超級頁面的各自的最後一筆資料之實體區塊。
- 如申請專利範圍第1項所述之方法,其另包含:將一實體對邏輯位址映射表(physical-to-logical address mapping table)中的對應於該放棄範圍的任何條目(entry)記錄為一無效標籤(invalid tag),以無效化該放棄範圍中的任何擴展頁面。
- 一種記憶裝置,包含有:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作,其中該控制器包含:一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中:該控制器觸發寫入一擴展(expansion)區塊,其中該控制器將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,而該擴展區塊包含複數個擴展頁面,其中於寫入該擴展區塊的期間,一無預警斷電(Sudden Power Off,SPO)事件發生,且該記憶裝置被重新上電;針對一目標區塊(target block),該控制器設定預計以二元搜 尋(binary search)處理的一頁面數(page count)以及一起始頁面編號(start page number),其中該目標區塊包含複數個頁面;該控制器至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面(empty page);針對該目標區塊,該控制器檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,該控制器於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋(page-by-page search),以尋找該目標區塊中的最後一個有效頁面(valid page);該控制器依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍(abandonment range);以及該控制器對該放棄範圍中的全部的擴展頁面進行虛擬編程(dummy programming)。
- 如申請專利範圍第11項所述之記憶裝置,其中該目標區塊代表該擴展區塊,該目標區塊中的第一個空頁面代表該擴展區塊中的第一個空頁面,且該最後一個有效頁面代表該擴展區塊中的最後一個有效頁面。
- 如申請專利範圍第12項所述之記憶裝置,其中該控制器檢查於該擴展區塊中的該最後一個有效頁面是否對齊一超級頁面(super page);依據 該擴展區塊中的該最後一個有效頁面是否對齊該超級頁面,該控制器選擇性地將於該擴展區塊中的該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的一起始擴展頁面,其中若該擴展區塊中的該最後一個有效頁面對齊該超級頁面,該控制器將於該擴展區塊中的該最後一個有效頁面的該下一個擴展頁面決定為該放棄範圍中的該起始擴展頁面,否則,該控制器將於該擴展區塊中的該最後一個有效頁面所在的該超級頁面中的一擴展頁面決定為該放棄範圍中的該起始擴展頁面;以及該控制器將於該擴展區塊中的該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
- 如申請專利範圍第13項所述之記憶裝置,其中於該擴展區塊中的該最後一個有效頁面所在的該超級頁面中的該擴展頁面代表於該擴展區塊中的該最後一個有效頁面所在的該超級頁面中的第一個擴展頁面。
- 如申請專利範圍第11項所述之記憶裝置,其中該目標區塊代表該多個實體區塊中的一實體區塊,該目標區塊中的第一個空頁面代表該實體區塊中的第一個空頁面,且該最後一個有效頁面代表該實體區塊中的最後一個有效頁面。
- 如申請專利範圍第15項所述之記憶裝置,其中該控制器將於該實體區塊中的該最後一個有效頁面的下一個擴展頁面決定為該放棄範圍中的一起始擴展頁面;以及該控制器將於該實體區塊中的該第一個空頁面決定為該放棄範圍中的一結束擴展頁面。
- 如申請專利範圍第11項所述之記憶裝置,其中該至少一非揮發性記 憶體元件包含複數個非揮發性記憶體元件,該複數個非揮發性記憶體元件中的每一非揮發性記憶體元件包含多個平面,且該多個平面中的每一平面包含所述至少一非揮發性記憶體元件的該複數個區塊中之一組實體區塊;所述至少一非揮發性記憶體元件的該複數個區塊中的該多個實體區塊代表分別屬於不同的非揮發性記憶體元件之各自的平面之實體區塊;該複數個非揮發性記憶體元件分別是複數個記憶體裸晶(memory die);以及該目標區塊代表該多個實體區塊中的具有最大裸晶編號(die number)且具有最大平面編號的實體區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中該目標區塊代表該多個實體區塊中的用來儲存該擴展區塊的各個超級頁面的各自的最後一筆資料之實體區塊。
- 一種包含如申請專利範圍第11項所述之記憶裝置的電子裝置,另包含:該主裝置,耦接至該記憶裝置,其中該主裝置包含:至少一處理器,用來控制該主裝置之運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置;其中該記憶裝置提供儲存空間給該主裝置。
- 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有: 一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中:該控制器觸發寫入一擴展(expansion)區塊,其中該控制器將該至少一非揮發性記憶體元件的複數個區塊中的多個實體區塊彼此關聯以形成該擴展區塊,而該擴展區塊包含複數個擴展頁面,其中於寫入該擴展區塊的期間,一無預警斷電(Sudden Power Off,SPO)事件發生,且該記憶裝置被重新上電;針對一目標區塊(target block),該控制器設定預計以二元搜尋(binary search)處理的一頁面數(page count)以及一起始頁面編號(start page number),其中該目標區塊包含複數個頁面;該控制器至少依據該頁面數以及該起始頁面編號,對該目標區塊進行該二元搜尋以尋找該目標區塊中的第一個空頁面(empty page);針對該目標區塊,該控制器檢查是否滿足一放棄條件、或該目標區塊全滿或全空;因應該放棄條件並未被滿足、且該目標區塊並不是全滿且不是全空,該控制器於該目標區塊中從該第一個空頁面起往回進行逐頁面搜尋(page-by-page search),以尋找該目標區塊中的最後一個有效頁面(valid page);該控制器依據該最後一個有效頁面以及該第一個空頁面決定於該擴展區塊中的一放棄範圍(abandonment range);以及該控制器對該放棄範圍中的全部的擴展頁面進行虛擬編程(dummy programming)。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108117590A TWI745695B (zh) | 2019-05-22 | 2019-05-22 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
US16/846,384 US11347433B2 (en) | 2019-05-22 | 2020-04-12 | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device |
CN202010287661.2A CN111984462B (zh) | 2019-05-22 | 2020-04-13 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108117590A TWI745695B (zh) | 2019-05-22 | 2019-05-22 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202044257A TW202044257A (zh) | 2020-12-01 |
TWI745695B true TWI745695B (zh) | 2021-11-11 |
Family
ID=73442198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108117590A TWI745695B (zh) | 2019-05-22 | 2019-05-22 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11347433B2 (zh) |
CN (1) | CN111984462B (zh) |
TW (1) | TWI745695B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210154401A (ko) * | 2020-06-12 | 2021-12-21 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
CN113220502B (zh) * | 2021-05-07 | 2023-10-31 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150186224A1 (en) * | 2013-12-26 | 2015-07-02 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9213627B2 (en) * | 2005-12-21 | 2015-12-15 | Nxp B.V. | Non-volatile memory with block erasable locations |
US9940045B2 (en) * | 2016-02-01 | 2018-04-10 | SK Hynix Inc. | Address mapping table recovery upon power failure |
US20180336104A1 (en) * | 2017-05-16 | 2018-11-22 | SK Hynix Inc. | Data storage device and operating method thereof |
US20180336088A1 (en) * | 2017-05-19 | 2018-11-22 | SK Hynix Inc. | Data storage device and operating method thereof |
US20190146705A1 (en) * | 2017-11-13 | 2019-05-16 | Silicon Motion, Inc. | Data Storage Device and Methods for Processing Data in the Data Storage Device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101288056A (zh) * | 2006-03-13 | 2008-10-15 | 松下电器产业株式会社 | 闪速存储器用的存储控制器 |
US9612954B2 (en) * | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
TWI459198B (zh) * | 2011-07-08 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
TWI470432B (zh) * | 2011-11-21 | 2015-01-21 | Mstar Semiconductor Inc | 電子系統及其快閃記憶體管理方法 |
KR102127284B1 (ko) * | 2013-07-01 | 2020-06-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 관리 방법 |
KR20150015621A (ko) * | 2013-07-31 | 2015-02-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6402647B2 (ja) * | 2015-02-20 | 2018-10-10 | 富士通株式会社 | データ配置プログラム、データ配置装置およびデータ配置方法 |
TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
KR20190019675A (ko) * | 2017-08-18 | 2019-02-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10854299B2 (en) * | 2018-05-31 | 2020-12-01 | Micron Technology, Inc. | Data erase operations for a memory system |
KR20200120159A (ko) * | 2019-04-11 | 2020-10-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 동작 방법 |
-
2019
- 2019-05-22 TW TW108117590A patent/TWI745695B/zh active
-
2020
- 2020-04-12 US US16/846,384 patent/US11347433B2/en active Active
- 2020-04-13 CN CN202010287661.2A patent/CN111984462B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213627B2 (en) * | 2005-12-21 | 2015-12-15 | Nxp B.V. | Non-volatile memory with block erasable locations |
US20150186224A1 (en) * | 2013-12-26 | 2015-07-02 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9645894B2 (en) * | 2013-12-26 | 2017-05-09 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9940045B2 (en) * | 2016-02-01 | 2018-04-10 | SK Hynix Inc. | Address mapping table recovery upon power failure |
US20180336104A1 (en) * | 2017-05-16 | 2018-11-22 | SK Hynix Inc. | Data storage device and operating method thereof |
US20180336088A1 (en) * | 2017-05-19 | 2018-11-22 | SK Hynix Inc. | Data storage device and operating method thereof |
US20190146705A1 (en) * | 2017-11-13 | 2019-05-16 | Silicon Motion, Inc. | Data Storage Device and Methods for Processing Data in the Data Storage Device |
Also Published As
Publication number | Publication date |
---|---|
TW202044257A (zh) | 2020-12-01 |
US11347433B2 (en) | 2022-05-31 |
US20200371716A1 (en) | 2020-11-26 |
CN111984462A (zh) | 2020-11-24 |
CN111984462B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI643066B (zh) | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 | |
TW202101226A (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置及主裝置 | |
US10754585B2 (en) | Method for performing writing management in a memory device, and associated memory device and controller thereof | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US11733895B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
CN114528226A (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US20160054935A1 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI745695B (zh) | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 | |
TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
TWI655640B (zh) | 資料儲存裝置與資料處理方法 | |
CN103513930A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
TWI709855B (zh) | 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器 | |
TWI644215B (zh) | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 | |
CN112988069B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TWI721365B (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
TWI664527B (zh) | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
TW202125206A (zh) | 記憶體管理方法與記憶體裝置 | |
US10169224B2 (en) | Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit | |
CN104598167A (zh) | 存储器抹除方法、存储器控制器与存储器储存装置 |