TWI862437B - 用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 - Google Patents
用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 Download PDFInfo
- Publication number
- TWI862437B TWI862437B TW113111121A TW113111121A TWI862437B TW I862437 B TWI862437 B TW I862437B TW 113111121 A TW113111121 A TW 113111121A TW 113111121 A TW113111121 A TW 113111121A TW I862437 B TWI862437 B TW I862437B
- Authority
- TW
- Taiwan
- Prior art keywords
- pages
- page
- physical
- logical
- memory controller
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種進行預定通訊架構中的記憶體裝置的資料存取管理的方法,該方法借助利用虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復,並可包含:在發生非預期斷電事件之後,因應非預期斷電事件來利用記憶體控制器進行非預期斷電恢復程序,例如,更新對應第一主動區塊的暫時實體至邏輯位址映射表以攜帶對應至少一組損壞頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標;以及在因應非預期斷電事件來進行非預期斷電恢復程序之後,利用記憶體控制器將後續資料寫入至損壞頁面群組的至少一組後續頁面中。
Description
本發明係有關於記憶體控制,且尤指一種用以進行預定通訊架構中的記憶體裝置的資料存取管理的方法以及相關裝置,以借助利用虛擬旗標(dummy flag)的多表控制來提升基於頁面群組之磁碟陣列(redundant array of independent disks, RAID)保護的非預期斷電恢復(sudden power off recovery, SPOR)。
記憶體裝置可包含有快閃記憶體以供儲存資料,而針對快閃記憶體的存取管理相當複雜。舉例來說,記憶體裝置可以是一記憶卡、一固態硬碟(solid state drive, SSD)或一嵌入式儲存裝置(例如符合通用快閃儲存(universal flash storage, UFS)規範的嵌入式儲存裝置)。記憶體裝置可用以將不同檔案(例如系統檔案以及使用者檔案)儲存至主機的檔案系統中,由於某些檔案可能會被頻繁地存取,因此某些資料可能會變為無效資料,並且需要釋放更多儲存空間以供進一步的使用,於存取該些檔案的期間,可能會相對應地改變內部管理資訊,其中內部管理資訊可具有不同類型。當發生非預期斷電(sudden power off, SPO)事件時,相關處理可能會相當耗時,舉例來說,在記憶體裝置具備某種類型的磁碟陣列保護機制的情況下,可能會增加總處理時間,先前技術嘗試解決此問題,然而,可能引入了更多問題(例如某些副作用),因此,需要一種創新的方法以及相關架構來在不引入副作用的情況下或藉由不太可能引入副作用的方式解決該些問題。
因此,本發明的一目的在於提供一種用來進行預定通訊架構(例如通用快閃儲存通訊架構)中的記憶體裝置的資料存取管理的方法以及相關裝置,以借助利用虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復並解決上述問題。
本發明至少一實施例提供了一種用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法,其中該方法借助利用虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復,並可應用於記憶體裝置的一記憶體控制器,記憶體裝置可包含有記憶體控制器以及一非揮發性記憶體,非揮發性記憶體可包含有至少一非揮發性記憶體元件,以及至少一非揮發性記憶體元件可包含有複數個區塊。該方法可包含有:在發生一非預期斷電事件之後,因應非預期斷電事件來利用記憶體控制器以進行一非預期斷電恢復程序;以及在因應非預期斷電事件來進行非預期斷電恢復程序之後,利用記憶體控制器來將後續資料寫入至一損壞頁面群組中的至少一組後續頁面中。舉例來說,非預期斷電恢復程序可包含有:判斷損壞頁面群組的一起始位置;更新對應於一第一主動區塊的一暫時實體至邏輯位址映射表以攜帶對應於至少一組損壞頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標,以供指示應省略損壞頁面群組中的至少一組損壞頁面的磁碟陣列編碼;將至少一組虛擬頁面寫入至第一主動區塊中;以及更新暫時實體至邏輯位址映射表以攜帶對應於至少一組虛擬頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標,以供指示應省略損壞頁面群組中的至少一組虛擬頁面的磁碟陣列編碼。
除了上述方法之外,本發明亦提供了一種記憶體裝置的記憶體控制器,其中記憶體裝置包含有記憶體控制器以及一非揮發性記憶體,非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),以及至少一非揮發性記憶體元件可包含有複數個區塊。此外,記憶體控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制記憶體控制器,以允許主機裝置透過記憶體控制器來存取非揮發性記憶體,並進行預定通訊架構中的記憶體裝置的資料存取管理,以借助利用虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復。舉例來說,在發生一非預期斷電事件之後,記憶體控制器因應非預期斷電事件來進行一非預期斷電恢復程序;以及在因應非預期斷電事件來進行非預期斷電恢復程序之後,記憶體控制器將後續資料寫入至一損壞頁面群組中的至少一組後續頁面中。非預期斷電恢復程序可包含有:判斷損壞頁面群組的一起始位置;更新對應於一第一主動區塊的一暫時實體至邏輯位址映射表以攜帶對應於至少一組損壞頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標,以供指示應省略損壞頁面群組中的至少一組損壞頁面的磁碟陣列編碼;將至少一組虛擬頁面寫入至第一主動區塊中;以及更新暫時實體至邏輯位址映射表以攜帶對應於至少一組虛擬頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標,以供指示應省略損壞頁面群組中的至少一組虛擬頁面的磁碟陣列編碼。
除了上述方法外,本發明亦提供了一種包含有上述記憶體控制器的記憶體裝置,其中記憶體裝置包含有:非揮發性記憶體,用以儲存資訊;以及記憶體控制器,耦接於非揮發性記憶體,並用以控制記憶體裝置的操作。
除了上述方法外,本發明亦提供了一種包含有上述記憶體裝置的電子裝置,其中電子裝置另包含有耦接於記憶體裝置的主機裝置。主機裝置可包含有:至少一處理器,用以控制主機裝置的操作;以及一電源供應電路,耦接於至少一處理器,並用以提供電源給至少一處理器以及記憶體裝置。此外,記憶體裝置提供儲存空間給主機裝置。
根據某些實施例,該裝置可包含有電子裝置的至少一部分(例如一部分或全部),舉例來說,該裝置可包含有記憶體裝置內的記憶體控制器,又例如,該裝置可包含有記憶體裝置,又例如,該裝置可包含有電子裝置。
根據某些實施例,記憶體裝置可為主機裝置儲存資料,其中可能需要更新儲存資料之中的某些資料。為了解決先前技術的問題,可根據該方法的至少一控制方案(例如一個或多個控制方案)來操作記憶體裝置以進行相關操作,尤其是,執行該方法的多個程序來進行利用虛擬旗標的多表控制,以提升整體效能。
本發明的方法以及相關裝置可保證記憶體裝置在不同情況下可適當地操作,舉例來說,記憶體控制器可因應非預期斷電事件來進行非預期斷電恢復程序,以記錄虛擬旗標來指示應省略損壞頁面與虛擬頁面的磁碟陣列編碼,並參考非預期斷電恢復程序中所產生的虛擬旗標來進行其它程序(例如表更新程序以及磁碟陣列解碼程序),以保證資料的正確性、減少相關處理的總處理時間以及提升整體效能。此外,本發明的方法以及相關裝置可在不引入副作用的情況下或藉由不太可能引入副作用的方式解決先前技術所遇到的問題。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有至少一處理器(例如一個或多個處理器;其可被統稱為處理器52)、電源供應電路54以及傳輸介面電路58,其中處理器52與傳輸介面電路58可透過匯流排而彼此耦接,並且可耦接於電源供應電路54來取得電源。處理器52可用以控制主機裝置50的操作,以及電源供應電路54可用以提供電源至處理器52、傳輸介面電路58以及記憶體裝置100,並輸出一個或多個驅動電壓至記憶體裝置100。記憶體裝置100可用以提供儲存空間給主機裝置50,並且可自主機裝置50取得一個或多個驅動電壓以作為記憶體裝置100的電源。主機裝置50的範例可包含有但不限於:多功能手機、平板電腦、可穿戴裝置以及個人電腦,例如桌上型電腦以及筆記型電腦。記憶體裝置100的範例可包含有但不限於:可攜式記憶體裝置(例如符合SD / MMC、CF、MS或XD規範的記憶卡、固態硬碟(solid state drive, SSD)以及不同類型的嵌入式記憶體裝置(例如符合通用快閃儲存(universal flash storage, UFS)規範或嵌入式多媒體卡(embedded multi media card, eMMC)規範的嵌入式記憶體裝置)。根據本實施例,記憶體裝置100可包含有一控制器,諸如記憶體控制器110,並且可另包含有非揮發性記憶體120(為簡潔起見,在第1圖中標記為“NV記憶體”),其中記憶體控制器110係用以存取非揮發性記憶體120,以及非揮發性記憶體120係用以儲存資訊。非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、以及122-N(為簡潔起見,在第1圖中分別標記為“NV記憶體元件”),其中“N”可以代表大於1的正整數。舉例來說,非揮發性記憶體120可以是快閃記憶體,並且複數個非揮發性記憶體元件122-1、122-2、…、以及122-N可以是複數個快閃記憶體晶片或複數個快閃記憶體裸晶(die),但是本發明不限於此。
如第1圖所示,記憶體控制器110可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory, ROM)112M;為簡潔起見,標記為“ROM”)、控制邏輯電路114、錯誤校正碼(error correction code, ECC)電路115E、磁碟陣列(redundant array of independent disks, RAID;或稱為獨立磁碟冗餘陣列)電路115R、隨機存取記憶體116(random access memory, RAM;為簡潔起見,標記為“RAM”,舉例來說,其可以藉由靜態隨機存取記憶體(static random access memory, SRAM)來實現,但是本發明不限於此)以及傳輸介面電路118,其中上述元件之至少一部分(例如一部分或全部)可通過匯流排彼此耦接。隨機存取記憶體116可用以提供內部儲存空間給記憶體控制器110(例如可暫時地儲存資訊)。此外,本實施例之唯讀記憶體112M係用以儲存程式碼112C,並且微處理器112係用以執行程式碼112C以控制非揮發性記憶體120的存取,要注意的是,程式碼112C也可被儲存於隨機存取記憶體116或任一類型的記憶體中。此外,控制邏輯電路114可用以控制非揮發性記憶體120,錯誤校正碼電路115E可用以進行錯誤校正碼編碼以及錯誤校正碼解碼以保護資料及/或為一實體頁面內的多個子儲存單元的任一個子儲存單元來進行錯誤校正,其中該多個子儲存單元中的每一個子儲存單元的大小可等於一預定大小。磁碟陣列電路115R可進行磁碟陣列編碼以及磁碟陣列解碼以保護資料及/或為一實體頁面群組來進行錯誤校正。傳輸介面電路118可包含有多個子電路,並且該多個子電路可彼此互動以進行通訊,傳輸介面電路118可符合不同通訊規範(例如序列先進技術附件(Serial Advanced Technology Attachment, SATA)規範、通用序列匯流排(Universal Serial Bus, USB)規範、快捷外部連接標準(Peripheral Component Interconnect Express, PCIe)規範、嵌入式多媒體卡規範或通用快閃儲存規範)之中的一個或多個通訊規範,並可為記憶體裝置100來根據該一個或多個通訊規範與主機裝置50(例如傳輸介面電路58)進行通訊。類似地,傳輸介面電路58可符合該一個或多個通訊規範,並可為主機裝置50來根據該一個或多通訊規範與記憶體裝置100(例如傳輸介面電路118)進行通訊。舉例來說,傳輸介面電路118的該多個子電路可包含有通用快閃儲存控制器118C(為簡潔起見,標記為“UFS控制器”)、標準化通訊協定(Unified Protocol,通常稱為UniPro)電路118U(為簡潔起見,標記為“UniPro電路”)以及一實體層(physical layer, PHY)電路(例如符合MIPI聯盟相關規格之M實體層(M-PHY)電路118M),並且傳輸介面電路58可被實現為具有與傳輸介面電路118之電路架構類似或相同的電路架構(例如多個相對應的子電路),但是本發明不限於此。
在本實施例中,主機裝置50可以藉由將複數個主機命令以及相對應的邏輯位址傳送至記憶體控制器110來間接地存取記憶體裝置100內的非揮發性記憶體120,記憶體控制器110接收複數個主機命令以及相對應的邏輯位址,並且分別將複數個主機命令轉換成複數個記憶體操作命令(其可簡稱為操作命令),再利用複數個操作命令來控制非揮發性記憶體120,以對非揮發性記憶體120內特定實體位址的記憶體單元或資料頁面(data page)進行讀取或寫入/編程等等,其中實體位址可以與邏輯位址相關。舉例來說,記憶體控制器110可產生或更新至少一邏輯至實體(logical-to-physical, L2P)位址映射表來管理實體位址與邏輯位址之間的關係,非揮發性記憶體120可儲存全域(global)邏輯至實體位址映射表120T以供記憶體控制器110控制記憶體裝置100來存取非揮發性記憶體120中的資料,但是本發明不限於此。此外,記憶體控制器110可產生或更新至少一實體至邏輯(physical-to-logical, P2L)位址映射表(例如暫時實體至邏輯位址映射表117T),舉例來說,當需要時,記憶體控制器110可參考暫時實體至邏輯位址映射表117T來進行某些內部管理操作(例如垃圾回收(garbage collection, GC)操作)。
為了更好的理解,全域邏輯至實體位址映射表120T可位於非揮發性記憶體122-1元件內的一預定區域(region)(例如一系統區域)中,但是本發明不限於此。舉例來說,全域邏輯至實體位址映射表120T可被劃分成複數個局部(local)邏輯至實體位址映射表,並且該複數個局部邏輯至實體位址映射表可儲存於非揮發性記憶體元件122-1、122-2以及122-N的一個或多個非揮發性記憶體元件中,尤其是,可分別儲存於非揮發性記憶體元件122-1、122-2以及122-N中。當需要時,記憶體控制器110可將全域邏輯至實體位址映射表120T的至少一部分(例如一部分或全部)加載至隨機存取記憶體116或其它記憶體中,舉例來說,記憶體控制器110可將該複數個局部邏輯至實體位址映射表之中的一局部邏輯至實體位址映射表(例如一第一局部邏輯至實體位址映射表)加載至隨機存取記憶體116中以作為一暫時邏輯至實體位址映射表116T,以供根據儲存為暫時邏輯至實體位址映射表116T的該局部邏輯至實體位址映射表來存取非揮發性記憶體120中的資料,但是本發明不限於此。
隨機存取記憶體116的記憶體區域可包含有多個子區域以供暫時地儲存不同資訊(例如緩衝資料、暫時邏輯至實體位址映射表116T以及暫時實體至邏輯位址映射表117T),並且記憶體區域的多個子區域之中的至少一部分的子區域(例如一部分的子區域或全部的子區域)可視為資料緩衝器,舉例來說,以供暫時地儲存緩衝資料的子區域可視為資料緩衝器,但是本發明不限於此。根據某些實施例,全部的記憶體區域(例如以供暫時地儲存緩衝資料、暫時邏輯至實體位址映射表116T以及暫時實體至邏輯位址映射表117T的多個子區域)可視為資料緩衝器。
此外,上述至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1, 122-2, …, 122-N})可包含有複數個區塊,其中記憶體控制器110可對非揮發性記憶體120進行資料抹除操作的最小單位為一區塊,並且記憶體控制器110可對非揮發性記憶體120進行資料寫入操作的最小單位為一頁面,但是本發明不限於此。舉例來說,非揮發性記憶體元件122-1、122-2、…以及122-N之中的任一個非揮發性記憶體元件122-n(符號“n”可代表在區間[1,N]中的任一整數)可包含有複數個區塊,並且該複數個區塊內的一區塊可包含並記錄一特定頁面數量,其中記憶體控制器110可根據一區塊位址以及一頁面位址來存取該複數個區塊內某個區塊的某個頁面。
根據某些實施例,記憶體控制器110可分別監控該複數個區塊的至少一部分(例如一部分或全部)的有效頁面計數,以供後續處理(例如垃圾回收操作)來使用。針對資料接收,記憶體控制器110可將非揮發性記憶體120中的至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1, 122-2, …, 122-N})的該複數個區塊之中的至少一區塊(例如一個或多個區塊)配置為至少一主動區塊(active block;例如一個或多個主動區塊),並利用上述至少一主動區塊來自主機裝置50接收並儲存資料(諸如主機寫入資料(host-write data))。舉例來說,該資料(例如主機寫入資料,諸如待寫入至非揮發性記憶體120中的資料)可包含有複數組部分資料(partial data),並且上述至少一主動區塊可包含有一第一主動區塊,其中暫時實體至邏輯位址映射表117T可對應於第一主動區塊,尤其是,可針對第一主動區塊來儲存相關映射資訊以供指示實體至邏輯位址映射關係。此外,記憶體控制器110可維持(例如產生或更新)暫時實體至邏輯位址映射表117T以進行相關內部管理。
第2圖為依據本發明一實施例之表處理控制方案的示意圖。於自主機裝置50接收並儲存資料(例如主機寫入資料,諸如待寫入至非揮發性記憶體120中的資料)的期間,記憶體控制器110可利用第一主動區塊(例如主動區塊220)來接收並儲存該複數組部分資料之中的一組或多組部分資料,並將相關映射資訊(例如實體至邏輯表項目(entry))記錄至對應於主動區塊220的暫時實體至邏輯位址映射表117T(為簡潔起見,在第2圖中標記為“P2L表”)中,以供指示針對主動區塊220的實體至邏輯位址映射關係。藉由實體至邏輯表項目所指示的實體至邏輯位址映射關係可包含有邏輯位址與實體位址之間的實體至邏輯位址映射關係,其中主機裝置50將該一組或多組部分資料寫入至該邏輯位址中,以及該實體位址指示該一組或多組部分資料儲存至第一主動區塊中的位置。當達到一第一預定條件(criterion;例如主動區塊220被完整地編程,或主動區塊220中的預定數量的頁面被編程)時,記憶體控制器110可進行一組表處理操作,並且該組表處理操作可包含有:
(1)一第一表處理操作:根據對應於主動區塊220的暫時實體至邏輯位址映射表117T(為簡潔起見,在第2圖中標記為“P2L表”)來更新全域邏輯至實體位址映射表120T(為簡潔起見,在第2圖中標記為“L2P表”),尤其是,根據暫時實體至邏輯位址映射表117T中的實體至邏輯表項目(為簡潔起見,在第2圖中標記為“P2L表項目”)來更新全域邏輯至實體位址映射表120T中的某些邏輯至實體表項目(為簡潔起見,在第2圖中標記為“L2P表項目”),以供指示針對主動區塊220的邏輯至實體位址映射關係;
(2)一第二表處理操作:將暫時實體至邏輯位址映射表117T(例如其中的實體至邏輯表項目)儲存至非揮發性記憶體120中,以產生或更新一第一實體至邏輯位址映射表(例如實體至邏輯位址映射表227T;為簡潔起見,在第2圖中標記為“P2L表”)。舉例來說,藉由將記錄於暫時實體至邏輯位址映射表117T中的所有實體至邏輯表項目寫入至實體至邏輯位址映射表227T中以進行上述的後續處理,其中實體至邏輯位址映射表227T可作為暫時實體至邏輯位址映射表117T的備份(backup)版本;以及
(3)一第三表處理操作:在進行第一表處理操作(例如根據暫時實體至邏輯位址映射表117T來更新全域邏輯至實體位址映射表120T)以及第二表處理操作(例如將暫時實體至邏輯位址映射表117T儲存於非揮發性記憶體120中)之後,清除(clear)暫時實體至邏輯位址映射表117T(例如其中的實體至邏輯表項目)以重複使用暫時實體至邏輯位址映射表117T及/或隨機存取記憶體116中的相對應儲存空間;
但是本發明不限於此。根據某些實施例,第一表處理操作可包含有將全域邏輯至實體位址映射表120T內的某個局部邏輯至實體位址映射表(例如第一局部邏輯至實體位址映射表)加載至隨機存取記憶體116中來作為暫時邏輯至實體位址映射表116T,更新暫時邏輯至實體位址映射表116T中的一個或多個邏輯至實體表項目來指示針對主動區塊220的多個邏輯至實體位址映射關係之中的一個或多個邏輯至實體位址映射關係,以及根據暫時邏輯至實體位址映射表116T來更新全域邏輯至實體位址映射表120T(例如其中的該局部邏輯至實體位址映射表)。
在上述至少一主動區塊之中的任一個主動區塊(例如主動區塊220)被完整地編程之後,記憶體裝置100(例如記憶體控制器110)可關閉(close)上述任一個主動區塊來使得上述任一個主動區塊變成一非主動(inactive)區塊,並擇取一空白區塊(blank block;例如抹除區塊(erased block))來作為上述任一個主動區塊的代替,以供進行對應於上述任一個主動區塊的後續資料接收操作。此外,上述後續處理可包含有進行一垃圾回收程序來將非主動區塊中的所有資料之中的有效資料寫入至另一個空白區塊(例如另一個抹除區塊)中,但是本發明不限於此。
根據某些實施例,由於藉由上述至少一實體至邏輯位址映射表(例如暫時實體至邏輯位址映射表117T或實體至邏輯位址映射表227T)中的實體至邏輯表項目所指示的實體至邏輯位址映射關係以及藉由邏輯至實體位址映射表120T中的相關邏輯至實體表項目所指示的邏輯至實體位址映射關係彼此應為逆(inverse)位址映射關係,因此記憶體控制器110可根據上述至少一實體至邏輯位址映射表中的實體至邏輯表項目所攜帶的最新映射資訊(例如邏輯位址)來決定邏輯實體位址映射表120T中的相關邏輯至實體表項目所攜帶的最新映射資訊(例如實體位址)。
根據某些實施例,可根據一個或多個控制方案來操作記憶體控制器110以進行記憶體裝置100的內部管理,尤其是,以產生並更新有效頁面計數(valid page count, VPC)表226T以及群組磁碟陣列編碼頁面(group RAID-encoded page, GREP)表228T(為簡潔起見,在第2圖中分別標記為“VPC表”以及“GREP表”),以供分別記錄該複數個區塊的多個有效頁面計數以及主動區塊220中的利用磁碟陣列保護的多個頁面群組之多個頁面的多個頁面磁碟陣列編碼參與指示(RAID-encoding-participation indication)。舉例來說,該多個頁面磁碟陣列編碼參與指示可實作為多個磁碟陣列編碼頁面位元以分別指示該多個頁面群組的該多個頁面是磁碟陣列編碼還是非磁碟陣列編碼,但是本發明不限於此。根據某些實施例,主動區塊220可藉由多個超級區塊(superblock){XB}(例如超級區塊{XB(0), XB(1), …})之中的一超級區塊XB來實現,在此情況下,有效頁面計數表226T中的該多個有效頁面計數可代表該多個超級區塊{XB}的有效超級頁面(superpage)計數,以及群組磁碟陣列編碼頁面表228T中的該多個頁面磁碟陣列編碼參與指示可分別代表主動區塊220中的多個頁面群組的多個超級頁面的多個超級頁面磁碟陣列編碼參與指示。舉例來說,該多個超級頁面磁碟陣列編碼參與指示可實作為多個磁碟陣列編碼超級頁面位元以分別指示該多個頁面群組的該多個超級頁面是磁碟陣列編碼或非磁碟陣列編碼。
舉例來說,非揮發性記憶體元件122-1、122-2、…以及122-N可分別實作為複數個快閃記憶體晶片(例如晶片#0與#1)或複數個快閃記憶體裸晶(例如裸晶#0與#1),其中非揮發性記憶體元件122-1、122-2、…以及122-N可包含有至少兩個記憶體元件122-1與122-2,以及非揮發性記憶體元件122-1、122-2、…以及122-N的記憶體元件計數CNT_m(例如複數個快閃記憶體晶片的晶片計數或複數個快閃記憶體裸晶的裸晶計數)可以根據非揮發性記憶體120的不同配置來改變。上述非揮發性記憶體元件122-1、122-2、…以及122-N內的任一個非揮發性記憶體元件122-n可包含有多個平面(plane;例如平面#0與#1),該多個平面之中的任一個平面可包含有其本身的區塊{BLK(0), BLK(1), …},以及該多個區塊{BLK(0), BLK(1), …}之中的任一個區塊BLK( )可包含有其本身的頁面{Page(0), Page(1), …}。記憶體控制器110可將所有非揮發性記憶體元件的所有平面(例如平面#0與#1)中的多組相對應區塊{{BLK(0)}, {BLK(1)}, …}分別結合(combine)至超級區塊{XB(0), XB(1), …}中,並將所有非揮發性記憶體元件的所有平面中的多組相對應頁面{{Page(0)},{Page(1)}, …}分別結合至超級頁面{XP(0), XP(1), …}中。此外,記憶體控制器110可根據實體區塊位址(physical block address, PBA)XBlk(r0)來存取(例如讀取或寫入)超級區塊XB(r0)的一組相對應區塊{BLK(r0)},尤其是,根據實體區塊位址XBlk(r0)以及實體頁面位址(physical page address, PPA)XPg(r1)來存取超級區塊XB(r0)中的超級頁面XP(r1)的一組相對應頁面{Page(r1)},其中“r0”與“r1”可以是非負整數。
第3圖為依據本發明一實施例之用來進行預定通訊架構(例如通用快閃儲存通訊架構)中的記憶體裝置(例如記憶體裝置100)的資料存取管理的方法之保護控制方案的示意圖,其中該方法借助利用虛擬旗標(dummy flag)的多表控制(multiple-table control)來提升基於頁面群組(page-group-based)之磁碟陣列保護的非預期斷電恢復(sudden power off recovery, SPOR)。記憶體控制器110可利用超級區塊XB(例如超級區塊XB(0))以作為主動區塊220來接收並儲存主機寫入資料至超級區塊XB的頁面群組{GRP}(例如頁面群組{GRP(0), GRP(1), …})中,頁面群組{GRP}之中的每一個頁面群組GRP可包含有G個超級頁面{XP},並且G個超級頁面{XP}的前(G – 1)個超級頁面以及最後的超級頁面可分別用以儲存資料(例如主機寫入資料的部分資料)以及該資料的同位(parity;例如同位碼),其中參數G可以是大於一的正整數,並且可用以指示每一頁面群組的超級頁面計數。舉例來說,頁面群組GRP(0)可包含有超級頁面{XP(0), XP(1), …, XP(G - 2), XP(G - 1)},頁面群組GRP(1)可包含有超級頁面{XP(G), XP(G + 1), …, XP((2 * G) - 2), XP((2 * G) - 1)},其餘可以此類推。在第3圖所示之實施例中,記憶體元件計數CNT_m(例如晶片計數或裸晶計數)可等於2,並且非揮發性記憶體元件122-n中的多個平面的平面計數CNT_p可等於2,但是本發明不限於此。根據某些實施例,記憶體元件計數CNT_m及/或平面計數CNT_p可以變化。
第4圖為依據本發明一實施例之該方法的恢復控制方案的示意圖。在處理電路(例如微處理器112)的控制下,記憶體控制器110可根據該方法來進行預定通訊架構中的記憶體裝置100的資料存取管理,尤其是,根據該方法的保護控制方案、恢復控制方案等等來操作以借助利用虛擬旗標DUMMY_FLAG的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復。舉例來說,在發生一非預期斷電(sudden power off, SPO)事件之後,記憶體控制器110可因應非預期斷電事件來進行一非預期斷電恢復程序。在因應非預期斷電事件來進行非預期斷電恢復程序之後,記憶體控制器110可進行一表更新程序來管理針對記憶體裝置10的內部管理之至少一表,其中上述至少一表可被儲存於該複數個區塊之中的至少一表區塊中。以第2圖所示之架構為例,上述至少一表可包含有上述至少一邏輯至實體位址映射表(例如邏輯至實體位址映射表120T)、實體至邏輯位址映射表227T(為簡潔起見,在第2圖中分別標記為“L2P 表”以及“P2L表”)以及其它類型的表(例如有效頁面計數表226T以及群組磁碟陣列編碼頁面表228T)。
表一
表二
表三
| 實體位址 | 邏輯位址 |
| XBlk(4), XPg(0), PL(0) | LPage2 |
| XBlk(4), XPg(0), PL(1) | LPage5 |
| XBlk(4), XPg(0), PL(2) | LPage8 |
| XBlk(4), XPg(0), PL(3) | LPage9 |
| XBlk(4), XPg(1), PL(0) | LPage10 |
| XBlk(4), XPg(1), PL(1) | LPage11 |
| XBlk(4), XPg(1), PL(2) | LPage12 |
| XBlk(4), XPg(1), PL(3) | LPage13 |
| XBlk(4), XPg(2), PL(0) | DUMMY_FLAG |
| XBlk(4), XPg(2), PL(1) | DUMMY_FLAG |
| XBlk(4), XPg(2), PL(2) | DUMMY_FLAG |
| XBlk(4), XPg(2), PL(3) | DUMMY_FLAG |
| XBlk(4), XPg(3), PL(0) | DUMMY_FLAG |
| XBlk(4), XPg(3), PL(1) | DUMMY_FLAG |
| XBlk(4), XPg(3), PL(2) | DUMMY_FLAG |
| XBlk(4), XPg(3), PL(3) | DUMMY_FLAG |
| XBlk(4), XPg(4), PL(0) | LPage2 |
| XBlk(4), XPg(4), PL(1) | LPage5 |
| XBlk(4), XPg(4), PL(2) | LPage8 |
| XBlk(4), XPg(4), PL(3) | LPage9 |
| XBlk(4), XPg(5), PL(0) | LPage10 |
| XBlk(4), XPg(5), PL(1) | LPage11 |
| XBlk(4), XPg(5), PL(2) | LPage12 |
| XBlk(4), XPg(5), PL(3) | LPage13 |
| XBlk(4), XPg(6), PL(0) | (下一個主機寫入 LPage) |
| XBlk(4), XPg(6), PL(1) | (下一個主機寫入LPage) |
| XBlk(4), XPg(6), PL(2) | (下一個主機寫入LPage) |
| XBlk(4), XPg(6), PL(3) | (下一個主機寫入LPage) |
| … | … |
| 實體位址 | 有效超級頁面位元 |
| XBlk(4), XPg(0) | 1 |
| XBlk(4), XPg(1) | 1 |
| XBlk(4), XPg(2) | 0 |
| XBlk(4), XPg(3) | 0 |
| XBlk(4), XPg(4) | 1 |
| XBlk(4), XPg(5) | 1 |
| XBlk(4), XPg(6) | 1 |
| … | … |
| 邏輯位址 | 實體位址 |
| LPage0 | |
| LPage1 | |
| LPage2 | XBlk(4), XPg(4), PL(0) |
| LPage3 | |
| LPage4 | |
| LPage5 | XBlk(4), XPg(4), PL(1) |
| LPage6 | |
| LPage7 | |
| LPage8 | XBlk(4), XPg(4), PL(2) |
| LPage9 | XBlk(4), XPg(4), PL(3) |
| LPage10 | XBlk(4), XPg(5), PL(0) |
| LPage11 | XBlk(4), XPg(5), PL(1) |
| LPage12 | XBlk(4), XPg(5), PL(2) |
| LPage13 | XBlk(4), XPg(5), PL(3) |
| LPage14 | |
| LPage15 | |
| … | … |
表一繪示了隨機存取記憶體116中的暫時實體至邏輯位址映射表117T的範例,表二繪示了群組磁碟陣列編碼頁面表228T的範例,以及表三繪示了全域邏輯至實體位址映射表120T內的第一邏輯至實體位址映射表的範例,其中符號“…”可指示表一至表三的某些表內容可被刪除,以及表一與表三所示的實體位址中的平面位址{PL(0), PL(1)}以及{PL(2), PL(3)}可分別指示晶片/裸晶#0的平面#0與平面#1以及晶片/裸晶#1的平面#0與平面#1,但是本發明不限於此。根據某些實施例,表一至表三之中的任一個表的表內容及/或表形式可以變化,舉例來說,表一所示之暫時實體至邏輯位址映射表117T中的表內容的排序或排列可對應於實體位址,並且表一的欄位“
實體位址”可被刪除。又例如,表二所示之群組磁碟陣列編碼頁面表228T中的表內容的排序或排列可對應於實體位址,並且表二的欄位“
實體位址”可被刪除。又例如,表三所示之第一邏輯至實體位址映射表中的表內容的排序或排列可對應於邏輯位址,並且表三的欄位“
邏輯位址”可被刪除。
記憶體控制器110可將主機寫入資料以及相對應的元資料(metadata)分別寫入至主動區塊220的多個實體頁面中,其中儲存於該多個實體頁面之中的任一個實體頁面中的資料的元資料可包含有儲存於上述任一個實體頁面之資料的邏輯位址。以第4圖所示之架構為例,在非預期斷電事件之前,記憶體控制器110可將主機寫入資料之中的邏輯位址{LPage2, LPage5, LPage8, LPage9}的第一資料以及該第一資料的元資料寫入至超級頁面XP(0),並將主機寫入資料之中的邏輯位址{LPage10, LPage11, LPage12, LPage13}的第二資料以及該第二資料的元資料寫入至超級頁面XP(1),以使得超級頁面XP(0)與XP(1)的頁面中的元資料分別攜帶有邏輯位址{LPage2, LPage5, LPage8, LPage9}以及邏輯位址{LPage10, LPage11, LPage12, LPage13}。在非預期斷電事件之後,記憶體控制器110可進行非預期斷電恢復程序來將虛擬資料寫入至超級頁面XP(3)中,尤其是,將該第一資料及其元資料寫入至超級頁面XP(4)中,並將該第二資料及其元資料寫入至超級頁面XP(5)中,以使得超級頁面XP(4)與XP(5)的頁面中的元資料分別攜帶有邏輯位址{LPage2, LPage5, LPage8, LPage9}以及邏輯位址{LPage10, LPage11, LPage12, LPage13}。此外,由於超級頁面XP(2)係損壞的,因此沒有元資料可正確地自超級頁面XP(2)的頁面讀取出來(為簡潔起見,在第4圖中標記為“xxxxxxxx”)。此外,由於超級頁面XP(3)被寫入為一虛擬超級頁面,因此記憶體控制器110可簡單地將虛擬資料寫入至超級頁面XP(3)的頁面中,而無需寫入任一筆元資料(為簡潔起見,在第4圖中標記為“xxxxxxxx”)。根據某些實施例,只要該方法的實現,記憶體控制器110可以省略在元資料中攜帶邏輯位址。
根據第4圖所示之實施例,上述任一個實體頁面中的元資料可用以攜帶主機裝置50之一邏輯儲存單元的邏輯位址(例如邏輯位址{LPage2, LPage5, LPage8, LPage9}與{LPage10, LPage11, LPage12, LPage13}之中的任一個邏輯位址),以供指示上述任一個實體頁面儲存著該邏輯儲存單元的資料,但是本發明不限於此。根據某些實施例,上述任一個實體頁面中的元資料可用以攜帶主機裝置50之至少一邏輯儲存單元的至少一邏輯位址,以供指示上述任一個實體頁面儲存著該至少一邏輯儲存單元的資料,尤其是,上述任一個實體頁面可足夠大以儲存主機裝置50之多個邏輯儲存單元(例如多個邏輯區塊)的資料,並且上述任一個實體頁面中的元資料可用以攜帶該多個邏輯儲存單元的多個邏輯位址(例如多個邏輯區塊位址(logical block address, LBA)),以供指示上述任一個實體頁面儲存著該多個邏輯儲存單元的資料。舉例來說,該多個邏輯儲存單元之中的一邏輯儲存單元的資料大小可以等於4千位元組(kilobyte, KB),並且該多個邏輯儲存單元的總資料大小可等於16千位元組,在此情況下,上述任一個實體頁面中的元資料可用以攜帶4個邏輯儲存單元(例如4個邏輯區塊)的4個邏輯位址(例如4個邏輯區塊位址),以供指示上述任一個實體頁面儲存著4個邏輯儲存單元的資料。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
針對磁碟陣列編碼的進一步的詳細細節描述如下,根據某些實施例,於接收並儲存主機寫入資料置主動區塊220之期間的某個時間點,記憶體控制器110可接收並儲存主機寫入資料至主動區塊220的頁面群組{GRP}的目前頁面群組GRP。於接收並儲存主機寫入資料至目前頁面群組GRP的期間,記憶體控制器110可利用磁碟陣列電路115R來產生並更新儲存於一組或多組無損壞且非虛擬頁面(例如一個或多個無損壞且非虛擬超級頁面{XP}的頁面)中的資料的同位PRT,諸如資料的逐位元(bitwise)互斥或(exclusive OR, XOR)結果,以供保護該一組或多組無損壞且非虛擬頁面並準備完成目前頁面群組GRP的磁碟陣列編碼。舉例來說,同位PRT可視為一磁碟陣列同位,記憶體控制器110可暫時地將同位PRT(例如逐位元互斥或結果)儲存於隨機存取記憶體116的同位區域116R中,並隨著該一組或多組無損壞且非虛擬頁面數量的增加來更新同位PRT,尤其是,隨著目前頁面群組GRP的已寫入頁面計數(written page count)WPC(例如已寫入頁面的數量)的增加來更新同位PRT,其中無論目前頁面群組GRP是否有著任一個損壞頁面或任一個虛擬頁面,已寫入頁面計數WPC皆可根據目前頁面群組GRP的所有已寫入頁面來被計數。當已寫入頁面計數WPC達到一預定頁面計數WPC1時,記憶體控制器110可將最新的同位PRT(例如隨機存取記憶體116中的同位PRT的最新版本)寫入至目前頁面群組GRP的一組同位頁面(例如最後超級頁面XP的頁面)中,以完成目前頁面群組GRP的寫入以供保戶資料。已寫入頁面計數WPC以及預定頁面計數WPC1可以超級頁面為單位來量測,其中WPC1 = (G - 1),但是本發明不限於此。
此外,當於寫入目前頁面群組GRP的期間沒有發生非預期斷電事件時,記憶體控制器110可根據超級頁面XP(WPC)的資料以及超級頁面{XP(0), …, XP(WPC - 1)}的同位PRT(WPC - 1)來產生超級頁面{XP(0), …, XP(WPC)}的同位PRT(WPC),尤其是,對超級頁面XP(WPC)的資料以及同位PRT(WPC - 1)進行一逐位元互斥或操作,以產生一逐位元互斥或結果來作為同位PRT(WPC)。當於寫入目前頁面群組GRP的期間發生非預期斷電事件時,記憶體控制器110可省略任一個損壞或虛擬超級頁面XP(WPC_d)的磁碟陣列編碼,將同位PRT(WPC_d)維持為與同位PRT(WPC_d - 1)相等,並為目前頁面群組GRP中的其它超級頁面{XP}來產生同位PRT(WPC)(例如藉由對超級頁面XP(WPC)的資料與同位PRT(WPC - 1)進行一逐位元互斥或操作來產生一逐位元互斥或結果以作為同位PRT(WPC))。
以第4圖所示之頁面群組GRP(0)來作為目前頁面群組GRP的範例來說,當WPC = 1時,記憶體控制器110可能已經寫入超級頁面XP(0)並可將超級頁面XP(0)的資料寫入至隨機存取記憶體116中來作為超級頁面XP(0)的同位PRT(0);當WPC = 2時,記憶體控制器110可能已經寫入超級頁面{XP(0), XP(1)} 並可對超級頁面XP(1)的資料與同位PRT(0)進行一逐位元互斥或操作來產生一逐位元互斥或結果以作為超級頁面{XP(0), XP(1)}的同位PRT(1);當WPC = 3時,可能在時間點t1時發生非預期斷電事件,並且記憶體控制器110可在非預期斷電恢復程序中根據自超級頁面{XP(0), XP(1)}讀取的資料來重新產生同位PRT(1),以恢復隨機隨取記憶體116的同位PRT(1)並維持PRT(2) = PRT(1),其中由於暫時實體至邏輯位址映射表117T中的相關實體至邏輯表項目攜帶的虛擬旗標DUMMY_FLAG所指示,損壞超級頁面XP(2)的磁碟陣列編碼應被省略;當WPC = 4時,記憶體控制器110可寫入虛擬超級頁面XP(3)並維持PRT(3) = PRT(2),其中由於暫時實體至邏輯位址映射表117T中的相關實體至邏輯表項目攜帶的虛擬旗標DUMMY_FLAG所指示,虛擬超級頁面XP(3)的磁碟陣列編碼應被省略;當WPC = 5時,記憶體控制器110可能已經寫入超級頁面{XP(0), …, XP(4)}(其包含有損壞超級頁面XP(2)以及虛擬超級頁面XP(3))並可對超級頁面XP(4)的資料與同位PRT(3)(例如PRT(3) = PRT(2) = PRT(1))進行一逐位元互斥或操作,以產生一逐位元互斥或結果來作為同位PRT(4);當WPC = 6時,記憶體控制器110可能已經寫入超級頁面{XP(0), …, XP(5)}(其包含有損壞超級頁面XP(2)以及虛擬超級頁面XP(3))並可對超級頁面XP(5)的資料與同位PRT(4)進行一逐位元互斥或操作,以產生一逐位元互斥或結果來作為同位PRT(5);其餘可以此類推,舉例來說,當WPC = WPC1時,記憶體控制器110可能已經寫入超級頁面{XP(0), …, XP(WPC1 - 1)}(其包含有損壞超級頁面XP(2)以及虛擬超級頁面XP(3))並可對超級頁面XP(WPC1 - 1)與同位PRT(WPC1 - 2)進行一逐位元互斥或操作,以產生一逐位元互斥或結果來作為上述最新同位(例如同位PRT(WPC1 - 1))。為了更好的理解,假設G = 20,並且記憶體控制器110可將同位PRT(18)寫入至一組同位頁面(例如頁面群組GRP(0)的超級頁面XP(19)的頁面),以完成頁面群組GRP(0)的寫入。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第5圖為依據本發明一實施例之該方法的主要工作流程的示意圖。舉例來說,記憶體控制器110可利用超級區塊XB(4)以作為主動區塊220來接收並儲存主機寫入資料至目前頁面群組GRP(例如頁面群組GRP(0))中,尤其是,可在時間點t1時接收並儲存一組部分資料至超級頁面XP(2)中,並且在時間點t1時可能發生非預期斷電事件。
在步驟S11中,在時間點t1之後,記憶體控制器110可進行非預期斷電恢復程序,因此,記憶體控制器110可處理後續超級頁面XP(3)、XP(4)以及XP(5)。在非預期斷電恢復程序中,目前頁面群組GRP可視為受非預期斷電事件所影響的一損壞頁面群組GRP,在因應非預期斷電事件來進行非預期斷電恢復程序之後,記憶體控制器110可將後續資料寫入至損壞頁面群組GRP(例如頁面群組GRP(0))中的至少一組後續頁面中。尤其是,在包含有步驟S12~S17的迴圈中,記憶體控制器110可執行步驟S12一次或多次來將至少一組後續資料寫入至損壞頁面群組GRP中的至少一組後續頁面(例如後續超級頁面{XP(6), …, XP(G - 2)}的頁面)中。
在步驟S12中,因應來自主機裝置50的一第一命令(例如一寫入命令),記憶體控制器110可將後續資料寫入至非揮發性記憶體120中,尤其是,將後續資料寫入至主動區塊220(例如超級區塊XB(4))中,其中該第一命令可指示要求將後續資料寫入至非揮發性記憶體120中。舉例來說,在上述時間點t1時可能發生非預期斷電事件,而記憶體控制器110可自超級頁面XP(6)開始將後續資料寫入至超級區塊XB(4)中。
在步驟S13中,記憶體控制器110可判斷目前頁面群組GRP的已寫入頁面計數WPC是否達到預定頁面計數WPC1,如果是(例如WPC = WPC1),進入步驟S14;如果否(例如WPC < WPC1),則進入步驟S15。已寫入頁面計數WPC以及預定頁面計數WPC1可以超級頁面為單位來量測,舉例來說,當G = 20時,WPC1 = (G - 1) = 19,但是本發明不限於此。根據某些實施例,已寫入頁面計數WPC以及預定頁面計數WPC1可以實體頁面為單位來量測,舉例來說,當G = 20且CNT_m = CNT_p = 2時,WPC1 = ((G - 1) * (CNT_m * CNT_p)) = (19 * (2 * 2)) = 76。
在步驟S14中,記憶體控制器110可將最新同位(例如隨機存取記憶體116中的同位的最新版本)寫入至非揮發性記憶體120中,尤其是,將最新同位寫入至目前頁面群組GRP的一組同位頁面(例如最後超級頁面XP的頁面)中,以完成目前頁面群組GRP的寫入。
在步驟S15中,記憶體控制器110可判斷是否達到至少一預定條件,如果是,進入步驟S16;如果否,則進入步驟S17。
在步驟S16中,當達到上述至少一預定條件時,記憶體控制器110可進行表更新程序。舉例來說,上述至少一預定條件之中的一第一預定條件可包含有達到一預定實體至邏輯表項目計數的暫時實體至邏輯位址映射表117T的一實體至邏輯表項目計數,其中預定實體至邏輯表項目計數可代表暫時實體至邏輯位址映射表117T的一預定表大小。當暫時實體至邏輯位址映射表117T的實體至邏輯表項目計數達到預定實體至邏輯表項目計數時,記憶體控制器110可進行表更新程序。
在步驟S17中,記憶體控制器110可判斷是否自主機裝置50接收到任一個新的第一命令(例如任一個寫入命令),如果是,進入步驟S12;如果否,則進入步驟S18。
在步驟S18中,因應來自主機裝置50的一組第二命令,記憶體控制器110可自非揮發性記憶體120讀取儲存資料,其中該組第二命令可指示要求自非揮發性記憶體120讀取儲存資料。
在步驟S19中,因應一目標頁面群組GRP_t的一不可更正錯誤校正碼(uncorrectable error correction code, UECC)錯誤的發生,記憶體控制器110可進行一磁碟陣列解碼程序,舉例來說,目標頁面群組GRP_t可代表一超級區塊XB之所有頁面群組{GRP}之中的儲存著資料的某一個頁面群組GRP,諸如主動區塊220中的目前頁面群組GRP或某一個非主動區塊中的一頁面群組GRP。
為了更好的理解,該方法可藉由第5圖所示之工作流程來闡明,但是本發明不限於此。根據某些實施例,一個或多個步驟可於第5圖所示之工作流程中增加、刪除或修改。
根據某些實施例,已寫入頁面計數WPC以及預定頁面計數WPC1可以實體頁面為單位來量測,尤其是,當CNT_m = CNT_p = 1時,頁面群組{GRP}之中的每一個頁面群組GRP可包含有G個頁面,諸如儲存著資料的前(G - 1)個頁面以及儲存著該資料之同位的最後頁面,其中參數G可指示每一頁面群組的頁面計數。舉例來說,當G = 20且CNT_m = CNT_p = 1時,WPC1 = ((G - 1) * (CNT_m * CNT_p)) = (19 * (1 * 1)) = 19。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第6圖為依據本發明一實施例之第5圖所示之主要工作流程的非預期斷電恢復程序的示意圖。舉例來說,非預期斷電恢復程序可包含有步驟S20~S27的操作。
在步驟S20中,記憶體控制器110可判斷主動區塊220(例如第4圖所示之超級區塊XB(4))中的哪一個頁面群組GRP是損壞頁面群組GRP,尤其是,判斷損壞頁面群組GRP的起始位置。舉例來說,於接收並儲存主機寫入資料至主動區塊220中的期間,記憶體控制器110可記錄並更新一完成頁面群組計數CNT_cpg,諸如已經寫入至主動區塊220中的完成頁面群組{GRP}(例如包含有其本身的同位頁面的頁面群組{GRP})的數量,並將完成頁面群組計數CNT_cpg儲存於非揮發性記憶體120中,其中完成頁面群組計數CNT_cpg可以是一非負整數。當執行步驟S20時,記憶體控制器110可將損壞頁面群組GRP的初始位置判斷為超級頁面XP(CNT_cpg * G)。
在步驟S21中,記憶體控制器110可搜尋主動區塊220中的最後一組的錯誤校正碼通過(ECC-pass)頁面以判斷至少一組損壞頁面(例如損壞超級頁面XP(2)的頁面)的位置。舉例來說,記憶體控制器110可自損壞頁面群組GRP的起始位置(或第一個超級頁面XP)開始嘗試讀取損壞頁面群組GRP中的一組或多組頁面(例如一個或多個超級頁面{XP}),以判斷是否發生任一個不可更正錯誤校正碼錯誤,尤其是,將不具有不可更正錯誤校正碼錯誤的任一組錯誤校正碼通過頁面(例如任一個錯誤校正碼通過超級頁面XP的頁面)備份至該複數個區塊之中的另一個區塊中並嘗試讀取下一組頁面(例如下一個超級頁面XP),直到搜尋到上述具有任一個不可更正錯誤校正碼錯誤的至少一組損壞頁面(例如損壞超級頁面XP(2)的頁面)。此外,記憶體控制器110可記錄並更新一無損壞頁面計數CNT_ndp以供指示在步驟S21的操作中所搜尋到的錯誤校正碼通過超級頁面{XP}的數量,並可在搜尋到上述任一個錯誤校正碼通過超級頁面XP時以一增量(例如1)來對無損壞頁面計數CNT_ndp進行遞增,其中無損壞頁面計數CNT_ndp可具有一初始值(例如0),並且可以超級頁面為單位來量測,但是本發明不限於此。根據某些實施例,無損壞頁面計數CNT_ndp可以實體頁面為單位來量測。
在步驟S22中,記憶體控制器110可更新對應於主動區塊220(例如超級區塊XB(4))的暫時實體至邏輯位址映射表117T來攜帶對應於上述至少一組損壞頁面(例如損壞超級頁面XP(2)的頁面)的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標DUMMY_FLAG。
在步驟S23中,記憶體控制器110可將至少一組虛擬頁面(例如虛擬超級頁面XP(3)的頁面)寫入至主動區塊220(例如超級區塊XB(4))中。記憶體控制器可將上述至少一組虛擬頁面之中的任一組虛擬頁面(例如虛擬超級頁面XP(3)的頁面)寫入至主動區塊220中並嘗試讀取上述任一組虛擬頁面以判斷是否發生任一個不可更正錯誤校正碼錯誤。舉例來說,倘若沒有發生不可更正錯誤校正碼錯誤的話(其代表步驟S23的操作係完成的),對於損壞頁面群組GRP的任一個後續位置(例如超級頁面XP(4)的位置)來說,記憶體控制器110可防止重複進行寫入上述任一組虛擬頁面並嘗試讀取上述任一組虛擬頁面的操作,其中上述至少一組虛擬頁面可包含有單一組虛擬頁面(例如第4圖所示之虛擬超級頁面XP(3)的頁面);否則,記憶體控制器110可為損壞頁面群組GRP的一後續位置(例如超級頁面XP(4)的位置)來重複進行該些操作直到沒有不可更正錯誤校正碼錯誤的發生,其中上述至少一組虛擬頁面可包含有兩組或多組虛擬頁面(例如超級頁面XP(3)、XP(4)等等的頁面)。
在步驟S24中,記憶體控制器110可更新暫時實體至邏輯位址映射表117T來攜帶對應於上述至少一組虛擬頁面(例如虛擬超級頁面XP(3)的頁面)的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標DUMMY_FLAG。
在步驟S25中,記憶體控制器110可判斷無損壞頁面計數CNT_ndp是否大於0,如果是,進入步驟S26;如果否,則第6圖所示之工作流程結束。於執行步驟S21的期間,記憶體控制器110可判斷至少一組第一無損壞頁面(例如上述任一個錯誤校正碼通過超級頁面XP的頁面)是否存在於損壞頁面群組GRP中。舉例來說,對於在步驟S21的操作中搜尋到上述任一個錯誤校正碼通過超級頁面XP的案例來說,上述至少一組第一無損壞頁面(例如錯誤校正碼通過超級頁面{XP}的頁面,諸如無損壞超級頁面XP(0)與XP(1)的頁面)可能已經備份至其它區塊中,並且其備份資料可受保護於該其它區塊中以防止步驟S23之操作所造成的任一個可能的資料遺失,因此,該備份資料已準備好被讀出以進行步驟S26的操作。
在步驟S26中,當CNT_ndp > 0時,記憶體控制器110可將上述至少一組第一無損壞頁面的備份資料寫入至主動區塊220(例如超級區塊XB(4))中以產生至少一組第二無損壞頁面(例如超級頁面XP(4)與XP(5)的頁面),以供在完成損壞頁面群組GRP(例如頁面群組GRP(0))的磁碟陣列編碼之後受一組同位頁面(例如超級區塊XB(4)中的超級頁面XP(G - 1)的頁面)所保護。
在步驟S27中,記憶體控制器110可更新暫時實體至邏輯位址映射表117T以產生對應於上述至少一組第二無損壞頁面(例如超級頁面XP(4)與XP(5)的頁面)的至少一實體至邏輯表項目。
為了更好的理解,非預期斷電恢復程序可藉由第6圖所示之工作流程來闡明,但是本發明不限於此。根據某些實施例,一個或多個步驟可於第6圖所示之工作流程中增加、刪除或修改。
針對磁碟陣列編碼的某些實施細節可描述如下,根據某些實施例,在第5圖所示之工作流程中執行步驟S12多次以將後續資料寫入至超級頁面{XP(6), …, XP(G - 2)}(例如超級頁面{XP(6), …, XP(WPC1 - 1)})中並執行步驟S14以將同位PRT(G - 2)(例如同位PRT(WPC1 - 1))寫入至超級頁面XP(G - 1)中之後,記憶體控制器110可能已經完成頁面群組GRP(0)之磁碟陣列編碼的操作,諸如利用磁碟陣列電路115R來對超級頁面{XP(0), XP(1), XP(4), XP(5), XP(6), …, XP(G - 2)}的資料進行磁碟陣列編碼以產生相對應的同位PRT(G - 2)並將同位PRT(G - 2)儲存至超級頁面XP(G - 1)中的操作。舉例來說,假設G = 20並且超級區塊XB(4)中沒有其它損壞頁面群組GRP,在完成超級區塊XB(4)中的頁面群組GRP(0)、GRP(1)、GRP(2)等等的磁碟陣列編碼之後,記憶體控制器110可利用超級頁面XP(19)中的同位PRT(18)來保護超級頁面{XP(0), XP(1), XP(4), …, XP(18)}的資料,利用超級頁面XP(39)中的同位PRT(38)來保護超級頁面{XP(20), …, XP(38)}的資料,並利用超級頁面XP(59)中的同位PRT(58)來保護超級頁面{XP(40), …, XP(58)}的資料,其餘可以此類推。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第7圖為依據本發明一實施例之第5圖所示之主要工作流程的表更新程序的示意圖。因應達到上述至少一預定條件,記憶體控制器110可進行表更新程序,其中表更新程序可包含有步驟S31~S34的操作。
在步驟S31中,記憶體控制器110可根據暫時實體至邏輯位址映射表117T的多個實體至邏輯表項目來更新全域邏輯至實體位址映射表120T的多個邏輯至實體表項目,以供指示最新位址映射關係。
在步驟S32中,記憶體控制器110可更新有效頁面計數表226T來記錄相關的有效頁面計數。
在步驟S33中,記憶體控制器110可更新群組磁碟陣列編碼頁面表228T來記錄主動區塊220中的多組頁面的多個頁面磁碟陣列編碼參與指示,以供分別指示該多組頁面是有效的還是無效的。舉例來說,因應對應於上述至少一組損壞頁面(例如損壞超級頁面XP(2)的頁面)的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標DUMMY_FLAG的存在,記憶體控制器110可記錄該多個頁面磁碟陣列編碼參與指示之中的對應於上述至少一組損壞頁面的至少一第一頁面磁碟陣列編碼參與指示(例如表二所示之群組磁碟陣列編碼頁面表228T的位元{1, 1, 0, 0, 1,…}之中的第一個位元“0”)來作為一第一預定磁碟陣列編碼參與指示(例如位元“0”),以供指示上述至少一組損壞頁面是無效的。
又例如,因應對應於上述至少一組虛擬頁面(例如虛擬超級頁面XP(3)的頁面)的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標DUMMY_FLAG的存在,記憶體控制器110可記錄該多個頁面磁碟陣列編碼參與指示之中的對應於上述至少一組虛擬頁面的至少一第二頁面磁碟陣列編碼參與指示(例如表二所示之群組磁碟陣列編碼頁面表228T的位元{1, 1, 0, 0, 1,…}之中的第二個位元“0”)來作為該第一預定磁碟陣列編碼參與指示(例如位元“0”),以供指示上述至少一組虛擬頁面是無效的。
又例如,因應對應於上述至少一組第二無損壞頁面(例如超級頁面XP(4)與XP(5)的頁面)的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的虛擬旗標DUMMY_FLAG的不存在,記憶體控制器110可記錄該多個頁面磁碟陣列編碼參與指示之中的對應於上述至少一組第二無損壞頁面的至少一其它頁面磁碟陣列編碼參與指示(例如對於超級頁面XP(4)的案例來說,表二所示之群組磁碟陣列編碼頁面表228T的位元{1, 1, 0, 0, 1,…}之中的第三個位元“1”)來作為一第二預定磁碟陣列編碼參與指示(例如位元“1”),以供指示上述至少一組第二無損壞頁面是有效的。
在步驟S34中,記憶體控制器110可將暫時實體至邏輯位址映射表117T的實體至邏輯表項目寫入至非揮發性記憶體120中以更新實體至邏輯位址映射表227T,並清除暫時實體至邏輯位址映射表117T中的實體至邏輯表項目。
為了更好的理解,表更新程序可藉由第7圖所示之工作流程來闡明,但是本發明不限於此。根據某些實施例,一個或多個步驟可於第7圖所示之工作流程中增加、刪除或修改。
第8圖為依據本發明一實施例之第5圖所示之主要工作流程的磁碟陣列解碼程序的示意圖。舉例來說,當嘗試讀取目標頁面群組GRP_t中的具有某些錯誤的一組錯誤頁面(例如一錯誤超級頁面XP)時,記憶體控制器110可能無法成功地利用錯誤校正碼電路115E來校正該些錯誤,並因此判斷不可更正錯誤校正碼錯誤的發生。因應目標頁面群組GRP_t的不可更正錯誤校正碼錯誤的發生,記憶體控制器110可進行磁碟陣列解碼程序,其中磁碟陣列解碼程序可包含有步驟S41~S44的操作。
在步驟S41中,記憶體控制器110可判斷是否已經完成目標頁面群組GRP_t的一組同位頁面(例如最後一組的頁面,諸如最後超級頁面XP的頁面)中的一同位PRT(例如同位PRT(WPC1 - 1))的產生,如果是,進入步驟S42;如果否,則進入步驟S43。舉例來說,根據是否已經完成目標頁面群組GRP_t的該組同位頁面的同位PRT的產生,記憶體控制器110可判斷是否參考群組磁碟陣列編碼頁面表228T或至少一實體至邏輯位址映射表來自目標頁面群組GRP_t擇取磁碟陣列編碼頁面(RAID-encoded page;例如磁碟陣列編碼超級頁面{XP}的頁面)。
在步驟S42中,當已經完成目標頁面群組GRP_t的該組同位頁面的同位PRT的產生時,記憶體控制器110可根據群組磁碟陣列編碼頁面表228T來決定目標頁面群組GRP_t中的磁碟陣列編碼頁面。舉例來說,記憶體控制器110可能已經利用相關的頁面磁碟陣列編碼參與指示來更新群組磁碟陣列編碼頁面表228T以正確地指示目標頁面群組GRP_t中的磁碟陣列編碼頁面,並因此可根據群組磁碟陣列編碼頁面表228T來分辨目標頁面群組GRP_t的所有頁面之中的磁碟陣列編碼頁面。
在步驟S43中,當還沒有完成目標頁面群組GRP_t的該組同位頁面的同位PRT的產生時,記憶體控制器110可根據上述至少一實體至邏輯位址映射表來決定目標頁面群組GRP_t中的磁碟陣列編碼頁面,尤其是,分別檢查上述至少一實體至邏輯位址映射表中的對應於目標頁面群組GRP_t的實體至邏輯表項目是否攜帶有虛擬旗標DUMMY_FLAG,以決定目標頁面群組GRP_t中的磁碟陣列編碼頁面。舉例來說,倘若暫時實體至邏輯位址映射表117T已經被清除而變空(empty)的話,則上述至少一實體至邏輯位址映射表可包含有暫時實體至邏輯位址映射表117T的備份(例如實體至邏輯位址映射表227T)。此外,當暫時實體至邏輯位址映射表117T不為空時,上述至少一實體至邏輯位址映射表可包含有暫時實體至邏輯位址映射表117T。
由於記憶體控制器110能夠利用虛擬旗標DUMMY_FLAG來標記上述至少一實體至邏輯位址映射表中的一個或多個實體至邏輯表項目,以供指示應省略目標頁面群組GRP_t中的對應於該一個或多個實體至邏輯表項目的至少一組頁面(例如上述至少一組損壞頁面以及上述至少一組虛擬頁面)的磁碟陣列編碼,因此記憶體控制器110可擇取目標頁面群組GRP_t的所有已寫入頁面之中的其它組頁面,諸如對應於其它實體至邏輯表項目(例如不具有虛擬旗標DUMMY_FLAG的實體至邏輯表項目)的一組頁面,以作為目標頁面群組GRP_t的磁碟陣列編碼頁面。
在步驟S44中,記憶體控制器110可利用磁碟陣列電路115R來對目標頁面群組GRP_t的磁碟陣列編碼頁面進行解碼以恢復目標頁面群組GRP_t中的具有不可更正錯誤校正碼錯誤的該組錯誤頁面(例如錯誤超級頁面XP)。舉例來說,倘若剛執行完步驟S42的話,則記憶體控制器110可利用磁碟陣列電路115R來對該組錯誤頁面(例如錯誤超級頁面XP)之外的磁碟陣列編碼頁面以及該組同位頁面中的同位PRT進行磁碟陣列解碼,以恢復該組錯誤頁面。又例如,倘若剛執行完步驟S43的話,則記憶體控制器110可利用磁碟陣列電路115R來該組錯誤頁面(例如錯誤超級頁面XP)之外的磁碟陣列編碼頁面以及隨機存取記憶體116中的同位PRT進行磁碟陣列解碼,以恢復該組錯誤頁面。
為了更好的理解,磁碟陣列解碼程序可藉由第8圖所示之工作流程來闡明,但是本發明不限於此。根據某些實施例,一個或多個步驟可於第8圖所示之工作流程中增加、刪除或修改。舉例來說,為了取得步驟S41的判斷結果,記憶體控制器110可判斷目標頁面群組GRP_t是否位於主動區塊220。當目標頁面群組GRP_t係位於某個非主動區塊而不是主動區塊220時,記憶體控制器110可判斷已經完成目標頁面群組GRP_t的該組同位頁面中的同位PRT的產生,並因此進入步驟S42。當目標頁面群組GRP_t係位於主動區塊220(其代表包含有目標頁面群組GRP_t的超級區塊XB係作為主動區塊220)時,記憶體控制器110可判斷目標頁面群組GRP_t是否屬於完成頁面群組(例如完成頁面群組計數CNT_cpg所指示的第一CNT_cpg頁面群組)。倘若目標頁面群組GRP_t屬於完成頁面群組的話,則記憶體控制器110可判斷已經完成目標頁面群組GRP_t的該組同位頁面中的同位PRT的產生,並因此進入步驟S42;否則,代表目標頁面群組GRP_t不是一個完成頁面群組,記憶體控制器110可判斷還沒有完成目標頁面群組GRP_t的該組同位頁面中的同位PRT的產生,並因此進入步驟S43。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,記憶體控制器110可讀取目標頁面群組GRP_t的該組同位頁面(例如最後一組的頁面,諸如最後超級頁面XP的頁面)來判斷該組同位頁面是否為空白頁面,以判斷是否已經完成該組同位頁面中的同位PRT的產生。當該組同位頁面不是空白頁面時,記憶體控制器110可判斷已經完成目標頁面群組GRP_t的該組同位頁面中的同位PRT的產生,並因此進入步驟S42。當該組同位頁面是空白頁面時,記憶體控制器110可判斷還沒有完成目標頁面群組GRP_t的該組同位頁面中的同位PRT的產生,並因此進入步驟S43。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,記憶體控制器110可利用磁碟陣列電路115R來產生或重新產生隨機存取記憶體116中的同位PRT,但是本發明不限於此。此外,記憶體控制器110可將目前頁面群組GRP的同位{PRT(0), …, PRT(WPC1 - 1)}的至少一部分(例如一部分或全部)備份至非揮發性記憶體120的某個區塊(例如其它區塊)中,以供在步驟S44的操作中使用。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
在第6圖至第8圖所示之實施例中,在某些步驟提及的一組頁面,諸如步驟S21中的該最後一組的錯誤校正碼通過頁面之中的任一組頁面、步驟S22中的上述至少一組損壞頁面、步驟S23中的上述至少一組虛擬頁面、步驟S26中的上述至少一組第一無損壞頁面以及上述至少一組第二無損壞頁面以及步驟S41中的該組同位頁面,可包含有藉由一實體頁面位址來存取的一超級頁面XP中的多個實體頁面,但是本發明不限於此。根據某些實施例,當CNT_m = CNT_p = 1時,該多個實體頁面可藉由利用實體頁面位址來存取的單一實體頁面來代替。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主機裝置
52:處理器
54:電源供應電路
58,118:傳輸介面電路
100:記憶體裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
115E:錯誤校正碼電路
115R:磁碟陣列電路
116:隨機存取記憶體
116R:同位區域
116T:暫時邏輯至實體位址映射表
117T:暫時實體至邏輯位址映射表
118C:通用快閃儲存控制器
118M:M實體層電路
118U:標準化通訊協定電路
120:非揮發性記憶體
120T:全域邏輯至實體位址映射表
122-1~122-N:非揮發性記憶體元件
PRT:同位
220:主動區塊
226T:有效頁面計數表
227T:實體至邏輯位址映射表
228T:群組磁碟陣列編碼頁面表
XP(0)~XP(G-1):超級頁面
XB(0),XB(4):超級區塊
GRP(0):頁面群組
S11~S27,S31~S34,S41~S44:步驟
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2圖為依據本發明一實施例之表處理控制方案的示意圖。
第3圖為依據本發明一實施例之用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法之保護控制方案的示意圖,其中該方法借助利用虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列保護的非預期斷電恢復。
第4圖為依據本發明一實施例之該方法的恢復控制方案的示意圖。
第5圖為依據本發明一實施例之該方法的主要工作流程的示意圖。
第6圖為依據本發明一實施例之第5圖所示之主要工作流程的非預期斷電恢復程序的示意圖。
第7圖為依據本發明一實施例之第5圖所示之主要工作流程的表更新程序的示意圖。
第8圖為依據本發明一實施例之第5圖所示之主要工作流程的磁碟陣列解碼程序的示意圖。
S11~S19:步驟
Claims (16)
- 一種用來進行一預定通訊架構中的一記憶體裝置的資料存取管理的方法,該方法係借助利用一虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列(redundant array of independent disks, RAID)保護的非預期斷電恢復,並係應用於該記憶體裝置的一記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該方法包含有: 在發生一非預期斷電事件之後,因應該非預期斷電事件來利用該記憶體控制器以進行一非預期斷電恢復程序,其中該非預期斷電恢復程序包含有: 判斷一損壞頁面群組的一起始位置; 更新對應於一第一主動區塊的一暫時實體至邏輯位址映射表以攜帶對應於至少一組損壞頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的該虛擬旗標,以供指示應省略該損壞頁面群組中的該至少一組損壞頁面的磁碟陣列編碼; 將至少一組虛擬頁面寫入至該第一主動區塊中;以及 更新該暫時實體至邏輯位址映射表以攜帶對應於該至少一組虛擬頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的該虛擬旗標,以供指示應省略該損壞頁面群組中的該至少一組虛擬頁面的磁碟陣列編碼;以及 在因應該非預期斷電事件來進行該非預期斷電恢復程序之後,利用該記憶體控制器來將後續資料寫入至該損壞頁面群組中的至少一組後續頁面中。
- 如申請專利範圍第1項所述之方法,其中該非預期斷電恢復程序另包含有: 判斷該損壞頁面群組中是否存在至少一組第一無損壞頁面; 因應該損壞頁面群組中存在該至少一組第一無損壞頁面,將該至少一組第一無損壞頁面的資料寫入至該第一主動區塊中以產生至少一組第二無損壞頁面,以供在完成該損壞頁面群組的磁碟陣列編碼之後受一組同位頁面所保護;以及 更新該暫時實體至邏輯位址映射表來產生對應於該至少一組第二無損壞頁面的至少一實體至邏輯表項目。
- 如申請專利範圍第2項所述之方法,其中將該至少一組第一無損壞頁面的該資料寫入至該第一主動區塊中以產生該至少一組第二無損壞頁面的步驟另包含有: 將該至少一組第一無損壞頁面的該資料備份至該複數個區塊之中的另一個區塊中,以作為該至少一組第一無損壞頁面的備份資料;以及 將該至少一組第一無損壞頁面的該備份資料寫入至該第一主動區塊中,以產生該至少一組第二無損壞頁面。
- 如申請專利範圍第1項所述之方法,其中該非預期斷電恢復程序另包含有: 在該第一主動區塊中搜尋最後一組的錯誤校正碼通過頁面,以決定該至少一組損壞頁面的一位置。
- 如申請專利範圍第4項所述之方法,其中在該第一主動區塊中搜尋該最後一組的錯誤校正碼通過頁面,以決定該至少一組損壞頁面的該位置的步驟另包含有: 自該損壞頁面群組的該起始位置開始讀取該損壞頁面群組中的一組或多組頁面,以判斷是否發生任一個不可更正錯誤校正碼錯誤;以及 將不具有不可更正錯誤校正碼錯誤的任一組錯誤校正碼通過頁面備份至該複數個區塊之中的另一個區塊中並讀取下一組頁面,直到尋找到具有該任一個不可更正錯誤校正碼錯誤的該至少一組損壞頁面。
- 如申請專利範圍第1項所述之方法,其中該記憶體控制器係用以進行多個程序,該多個程序包含有該非預期斷電恢復程序以及一表更新程序;以及該方法另包含有: 在因應該非預期斷電事件來進行該非預期斷電恢復程序之後,利用該記憶體控制器來進行該表更新程序以針對該記憶體裝置的內部管理來管理至少一表,其中該至少一表係儲存於該複數個區塊之中的至少一表區塊中,該至少一表包含有至少一邏輯至實體位址映射表以及一群組磁碟陣列編碼頁面表;以及該表更新程序包含有: 因應達到至少一預定條件,根據該暫時實體至邏輯位址映射表的多個實體至邏輯表項目來更新該至少一邏輯至實體位址映射表的多個邏輯至實體表項目;以及 因應達到該至少一預定條件,更新該群組磁碟陣列編碼頁面表來記錄該第一主動區塊中的多組頁面的多個頁面磁碟陣列編碼參與指示,以供分別指示該多組頁面係有效的或無效的,其中因應對應於該至少一組損壞頁面的該至少一實體至邏輯表項目的該每一個實體至邏輯表項目中的該虛擬旗標的存在,該記憶體控制器係用以記錄該多個頁面磁碟陣列編碼參與指示之中的對應於該至少一組損壞頁面的至少一第一頁面磁碟陣列編碼參與指示,以作為一第一預定磁碟陣列編碼參與指示來指示該至少一組損壞頁面係無效的。
- 如申請專利範圍第6項所述之方法,其中因應對應於該至少一組損壞頁面的該至少一實體至邏輯表項目的該每一個實體至邏輯表項目中的該虛擬旗標的存在,該記憶體控制器係用以記錄在該多個頁面磁碟陣列編碼參與指示之中的對應於該至少一組虛擬頁面的至少一第二頁面磁碟陣列編碼參與指示,以作為該第一預定磁碟陣列編碼參與指示來指示該至少一組虛擬頁面係無效的。
- 如申請專利範圍第6項所述之方法,其中該非預期斷電恢復程序另包含有: 判斷該損壞頁面群組中是否存在至少一組第一無損壞頁面; 因應該損壞頁面群組中的該至少一組第一無損壞頁面的存在,將該至少一組第一無損壞頁面的資料寫入至該第一主動區塊中以產生至少一組第二無損壞頁面,以供在完成該損壞頁面群組的磁碟陣列編碼之後受一組同位頁面所保護;以及 更新該暫時實體至邏輯位址映射表以產生對應於該至少一組第二無損壞頁面的至少一實體至邏輯表項目; 其中因應對應於該至少一組第二無損壞頁面的該至少一實體至邏輯表項目的該每一個實體至邏輯表項目中的該虛擬旗標的存在,該記憶體控制器係用以記錄該多個頁面磁碟陣列編碼參與指示之中的對應於該至少一組第二無損壞頁面的至少一其它頁面磁碟陣列編碼參與指示,以作為一第二預定磁碟陣列編碼參與指示來指示該至少一組第二無損壞頁面係有效的。
- 如申請專利範圍第6項所述之方法,其中該至少一預定條件之中的一第一預定條件包含有該暫時實體至邏輯位址映射表的一實體至邏輯表項目計數達到一預定實體至邏輯表項目計數。
- 如申請專利範圍第6項所述之方法,其中該至少一表另包含有一有效頁面計數表以供記錄該複數個區塊的有效頁面計數,以及該表更新程序另包含有: 因應達到該至少一預定條件,更新該有效頁面計數表。
- 如申請專利範圍第6項所述之方法,其中因應一目標頁面群組的一不可更正錯誤校正碼錯誤的發生,該記憶體控制器係用以進行一磁碟陣列解碼程序,以及該磁碟陣列解碼程序包含有: 判斷是否已經完成該目標頁面群組的一組同位頁面中的一同位的產生; 根據是否已經完成該目標頁面群組的該組同位頁面中的該同位的產生,來判斷是否參考該群組磁碟陣列編碼頁面表或至少一實體至邏輯位址映射表以自該目標頁面群組擇取磁碟陣列編碼頁面;以及 對該磁碟陣列編碼頁面進行解碼以恢復該目標頁面群組中的具有該不可更正錯誤校正碼錯誤的一組錯誤頁面。
- 如申請專利範圍第11項所述之方法,其中: 倘若已經完成該目標頁面群組的該組同位頁面中的該同位的產生的話,則該記憶體控制器係用以根據該群組磁碟陣列編碼頁面表來決定該目標頁面群組中的該磁碟陣列編碼頁面;以及 倘若還沒完成該目標頁面群組的該組同位頁面中的該同位的產生的話,則該記憶體控制器係用以檢查該虛擬旗標是否分別被該至少一實體至邏輯位址映射表中的對應於該目標頁面群組的多個實體至邏輯表項目所攜帶,以決定該目標頁面群組中的該磁碟陣列編碼頁面,其中該至少一實體至邏輯位址映射表包含有該暫時實體至邏輯位址映射表或該暫時實體至邏輯位址映射表的一備份。
- 如申請專利範圍第1項所述之方法,其中將該至少一組虛擬頁面寫入至該第一主動區塊的步驟另包含有: 將該至少一組虛擬頁面之中的任一組虛擬頁面寫入至該第一主動區塊中,並讀取該任一組虛擬頁面來判斷是否發生任一個不可更正錯誤校正碼錯誤;以及 倘若發生該任一個不可更正錯誤校正碼錯誤的話,則重複對該損壞頁面群組中的一後續位置的寫入該任一組虛擬頁面並讀取該任一組虛擬頁面的操作;否則,防止重複對該損壞頁面群組中的任一個後續位置的寫入該任一組虛擬頁面並讀取該任一組虛擬頁面的該操作。
- 一種記憶體裝置的記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該記憶體控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該記憶體控制器,以允許該主機裝置透過該記憶體控制器來存取該非揮發性記憶體,其中該處理電路係用以進行一預定通訊架構中的該記憶體裝置的資料存取管理,以借助利用一虛擬旗標的多表控制來提升基於頁面群組之磁碟陣列(redundant array of independent disks, RAID)保護的非預期斷電恢復; 其中: 在發生一非預期斷電事件之後,該記憶體控制器因應該非預期斷電事件來進行一非預期斷電恢復程序,其中該非預期斷電恢復程序包含有: 判斷一損壞頁面群組的一起始位置; 更新對應於一第一主動區塊的一暫時實體至邏輯位址映射表以攜帶對應於至少一組損壞頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的該虛擬旗標,以供指示應省略該損壞頁面群組中的該至少一組損壞頁面的磁碟陣列編碼; 將至少一組虛擬頁面寫入至該第一主動區塊中;以及 更新該暫時實體至邏輯位址映射表以攜帶對應於該至少一組虛擬頁面的至少一實體至邏輯表項目的每一個實體至邏輯表項目中的該虛擬旗標,以供指示應省略該損壞頁面群組中的該至少一組虛擬頁面的磁碟陣列編碼;以及 在因應該非預期斷電事件來進行該非預期斷電恢復程序之後,該記憶體控制器將後續資料寫入至該損壞頁面群組中的至少一組後續頁面中。
- 一種記憶體裝置,其包含有申請專利範圍第14項所述之記憶體控制器,其中該記憶體裝置包含有: 該非揮發性記憶體,用以儲存資訊;以及 該記憶體控制器,耦接於該非揮發性記憶體,並且用以控制該記憶體裝置的操作。
- 一種電子裝置,其包含有申請專利範圍第15項所述之記憶體裝置,並且另包含有: 該主機裝置,耦接於該記憶體裝置,其中該主機裝置包含有: 至少一處理器,用以控制該主機裝置的操作;以及 一電源供應電路,耦接於該至少一處理器,並且用以提供電源給該至少一處理器以及該記憶體裝置; 其中該記憶體裝置提供儲存空間給該主機裝置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/202,304 | 2023-05-26 | ||
| US18/202,304 US12131035B1 (en) | 2023-05-26 | 2023-05-26 | Method and apparatus for performing data access management of memory device in predetermined communications architecture to enhance sudden power off recovery of page-group-based redundant array of independent disks protection with aid of multi-table control using dummy flag |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI862437B true TWI862437B (zh) | 2024-11-11 |
| TW202447433A TW202447433A (zh) | 2024-12-01 |
Family
ID=93217160
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113111121A TWI862437B (zh) | 2023-05-26 | 2024-03-26 | 用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12131035B1 (zh) |
| CN (1) | CN119025020A (zh) |
| TW (1) | TWI862437B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20240057337A (ko) * | 2022-10-24 | 2024-05-02 | 에스케이하이닉스 주식회사 | 쓰기 데이터를 복수의 메모리 영역에 분산 저장하는 장치 및 방법 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210026547A1 (en) * | 2019-07-26 | 2021-01-28 | Micron Technology, Inc. | Runtime memory allocation to avoid and delay defect effects in memory sub-systems |
| US20210377590A1 (en) * | 2020-06-01 | 2021-12-02 | Western Digital Technologies, Inc. | Storage System and Method for Media-Based Fast-Fail Configuration |
| US20220269437A1 (en) * | 2021-02-19 | 2022-08-25 | Western Digital Technologies, Inc. | Data Storage Device and Method for Predetermined Transformations for Faster Retrieval |
| TWI799221B (zh) * | 2021-09-29 | 2023-04-11 | 慧榮科技股份有限公司 | 寫入資料到閃存記憶體的方法及裝置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11416338B2 (en) * | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
-
2023
- 2023-05-26 US US18/202,304 patent/US12131035B1/en active Active
-
2024
- 2024-03-26 TW TW113111121A patent/TWI862437B/zh active
- 2024-04-10 CN CN202410425984.1A patent/CN119025020A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210026547A1 (en) * | 2019-07-26 | 2021-01-28 | Micron Technology, Inc. | Runtime memory allocation to avoid and delay defect effects in memory sub-systems |
| US20210377590A1 (en) * | 2020-06-01 | 2021-12-02 | Western Digital Technologies, Inc. | Storage System and Method for Media-Based Fast-Fail Configuration |
| US20220269437A1 (en) * | 2021-02-19 | 2022-08-25 | Western Digital Technologies, Inc. | Data Storage Device and Method for Predetermined Transformations for Faster Retrieval |
| TWI799221B (zh) * | 2021-09-29 | 2023-04-11 | 慧榮科技股份有限公司 | 寫入資料到閃存記憶體的方法及裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US12131035B1 (en) | 2024-10-29 |
| TW202447433A (zh) | 2024-12-01 |
| CN119025020A (zh) | 2024-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11113149B2 (en) | Storage device for processing corrupted metadata and method of operating the same | |
| US8788876B2 (en) | Stripe-based memory operation | |
| KR101491943B1 (ko) | 트랜잭션 로그 복구 | |
| TWI866827B (zh) | 用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| TW201928685A (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
| TWI898899B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及記憶體裝置 | |
| TW201926049A (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
| TWI862437B (zh) | 用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| TW202145243A (zh) | 資料儲存裝置與資料處理方法 | |
| US11886741B2 (en) | Method and storage device for improving NAND flash memory performance for intensive read workloads | |
| US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
| CN111984462A (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
| TWI867743B (zh) | 借助表錯誤校正來進行預定通訊架構中的記憶體裝置的表管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| TWI866812B (zh) | 一種借助彈性表頁面群組來進行一預定通訊架構中的一記憶體裝置之表管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| TWI857926B (zh) | 借助系統區域垃圾回收來進行預定通訊架構中的記憶體裝置的表管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| TW202509747A (zh) | 借助多表檢查來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
| CN120179156A (zh) | 基于写入数据模式生成检查点的存储器装置和操作方法 |