TWI831623B - 借助序號分配時序控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 - Google Patents
借助序號分配時序控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 Download PDFInfo
- Publication number
- TWI831623B TWI831623B TW112106580A TW112106580A TWI831623B TW I831623 B TWI831623 B TW I831623B TW 112106580 A TW112106580 A TW 112106580A TW 112106580 A TW112106580 A TW 112106580A TW I831623 B TWI831623 B TW I831623B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- garbage collection
- blocks
- host data
- host
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000011084 recovery Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 24
- 239000000284 extract Substances 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 description 81
- 238000010586 diagram Methods 0.000 description 18
- 102220516895 Estrogen-related receptor gamma_S45A_mutation Human genes 0.000 description 9
- 102220588444 Keratin, type I cytoskeletal 18_S44A_mutation Human genes 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 102220560218 Calcium/calmodulin-dependent protein kinase type IV_S12A_mutation Human genes 0.000 description 4
- 102220571247 Cell division cycle protein 20 homolog_S41A_mutation Human genes 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 102200048773 rs2224391 Human genes 0.000 description 4
- 102220480414 Adhesion G-protein coupled receptor D1_S13A_mutation Human genes 0.000 description 3
- 102220588438 Keratin, type I cytoskeletal 18_S15A_mutation Human genes 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 101001118566 Homo sapiens 40S ribosomal protein S15a Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 102220094195 rs876660417 Human genes 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- 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/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
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種借助序號分配時序控制來進行一記憶體裝置之存取管理的方法包含:藉由備用池來管理複數個備用區塊;自備用池提取一第一區塊以作為一主機資料區塊,並進行一組第一後續操作,其中該主機資料區塊用以自一主機裝置接收資料,以及主機資料區塊的序號分配對應於完全地編程主機資料區塊的一時序;以及自備用池提取一第二區塊以作為一垃圾回收目的地區塊,並進行一組第二後續操作,其中垃圾回收目的地區塊用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及垃圾回收目的地區塊的序號分配對應於開始利用垃圾回收目的地區塊的一時序。
Description
本發明係有關於記憶體控制,且尤指一種借助序號分配時序控制來進行記憶體裝置之存取管理的方法以及相關裝置(例如記憶體裝置以及其中的記憶體控制器)。
記憶體技術的發展使得各種不同的可攜式或不可攜式記憶體裝置(例如分別符合SD/MMC、CF、MS以及XD規範的記憶卡或分別符合通用快閃儲存(universal flash storage,UFS)以及嵌入式多媒體卡(embedded multi media card,eMMC)規範的嵌入式記憶體裝置)可以廣泛地被應用,改善這些記憶體裝置的存取控制仍然是本領域有待解決的問題。
反及閘(NAND)快閃記憶體可以包含有單層單元(single level cell,SLC)快閃記憶體以及多層單元(multiple level cell,MLC)快閃記憶體,在單層單元快閃記憶體中,用作記憶體單元的每個電晶體可以儲存分別對應於邏輯值0以及
邏輯值1的兩個電荷值中的任一個,相比之下,多層單元快閃記憶體中用作記憶體單元的每個電晶體之儲存能力可以被充分利用,多層單元快閃記憶體中的電晶體可以被更高的電壓所驅動,且可以利用不同的電壓準位來記錄至少兩個位元(例如00、01、11或10)的資訊,從理論上來說,多層單元快閃記憶體的記錄密度可以達到至少兩倍於單層單元快閃記憶體的記錄密度,因此是反及閘快閃記憶體製造商的首選。
多層單元快閃記憶體的低成本和大容量意味著它比單層單元快閃記憶體更可應用於記憶體裝置中,然而,多層單元快閃記憶體有著不穩定的問題,為了確保對記憶體裝置中快閃記憶體的存取控制滿足要求的規範,快閃記憶體的控制器可以具備某些管理機制來適當地管理資料存取。
然而,即使有著上述管理機制的記憶體裝置仍可能具有某些缺陷,舉例來說,可進行一垃圾回收(garbage collection,GC)操作來解決相關技術的現有問題,其中對該垃圾回收操作之一判斷區塊上的額外最終頁面進行編程(program)可能會影響服務品質(quality of service,QoS),以及對於一企業級產品來說,此服務品質問題可能會變得更加嚴重。此外,當垃圾回收操作期間發生一非預期斷電(sudden power off,SPO)事件並且需要進行一非預期斷電恢復(sudden power off recovery,SPOR)時,上述管理機制可能無法針對垃圾回收操作的來源區塊處理一特殊案例,因此,於非預期斷電恢復期間可能會發生一錯誤操作。
因此,需要一種新穎的方法以及相關架構,以在不引入副作用的情況下或以不太可能引入副作用的方式來解決相關技術的問題。
本發明的目的之一在於提供一種借助序號分配時序控制來進行記憶體裝置之存取管理的方法以及相關裝置(例如記憶體裝置以及其中的記憶體控制器),以解決上述問題。
本發明之至少一實施例提供了一種借助序號分配時序控制來進行記憶體裝置之存取管理的方法,其中該方法係應用於記憶體裝置的一控制器。記憶體裝置可包含有控制器以及一非揮發性記憶體,並且非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),其中至少一非揮發性記憶體元件可包含有複數個區塊。該方法可包含有:藉由一備用池來管理複數個備用區塊,其中複數個區塊包含有複數個備用區塊;自備用池提取一第一區塊以作為一主機資料區塊,並且對主機資料區塊進行一組第一後續操作,其中主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自第一區塊從備用池被提取以作為主機資料區塊開始,主機資料區塊的序號分配對應於完全地編程主機資料區塊的一時序,以供指示複數個資料區塊之中主機資料區塊的一順序來作為非預期斷電恢復中進一步的使用,其中複數個區塊包含有複數個資料區塊;以及自備用池提取一第二區塊以作為一垃圾回收目的地區塊,並且對垃圾回收目的地區塊進行一組第二後續操作,其中垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自第二區塊從備用池被提取以作為垃圾回收目的地區塊開始,垃圾回收目的地區塊的序號分配對應於開始利用垃圾回收目的地區塊的一時序,以供指示複數個資料區塊之中垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用。
除了上述方法之外,本發明亦提供了一種記憶體裝置,並且記憶體裝置包含有一非揮發性記憶體以及一控制器。非揮發性記憶體係用以儲存資訊,其中非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),以及至少一非揮發性記憶體元件可包含有複數個區塊。控制器係耦接於非揮發性記憶體,並且係用以控制記憶體裝置的操作,此外,控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置透過控制器來存取非揮發性記憶體。舉例來說,控制器藉由一備用池來管理複數個備用區塊,其中複數個區塊包含有複數個備用區塊;控制器自備用池提取一第一區塊以作為一主機資料區塊,並且對主機資料區塊進行一組第一後續操作,其中主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自第一區塊從備用池被提取以作為主機資料區塊開始,主機資料區塊的序號分配對應於完全地編程主機資料區塊的一時序,以供指示複數個資料區塊之中主機資料區塊的一順序來作為非預期斷電恢復中進一步的使用,其中複數個區塊包含有複數個資料區塊;以及控制器自備用池提取一第二區塊以作為一垃圾回收目的地區塊,並且對垃圾回收目的地區塊進行一組第二後續操作,其中垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自第二區塊從備用池被提取以作為垃圾回收目的地區塊開始,垃圾回收目的地區塊的序號分配對應於開始利用垃圾回收目的地區塊的一時序,以供指示複數個資料區塊之中垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用。
根據某些實施例,本發明亦提供了一種電子裝置。該電子裝置可包
含有上述記憶體裝置,並且可另包含有:耦接於記憶體裝置的主機裝置。主機裝置可包含有:至少一處理器,用以控制主機裝置的操作;以及一電源供應電路,耦接於至少一處理器,並用以提供電源至至少一處理器以及記憶體裝置。此外,記憶體裝置可提供儲存空間給主機裝置。
除了上述方法之外,本發明亦提供了一種記憶體裝置的控制器,其中記憶體裝置包含有控制器以及一非揮發性記憶體。非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),並且至少一非揮發性記憶體元件可包含有複數個區塊,此外,控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置透過控制器來存取非揮發性記憶體。舉例來說,控制器藉由一備用池來管理複數個備用區塊,其中複數個區塊包含有複數個備用區塊;控制器自備用池提取一第一區塊以作為一主機資料區塊,並且對主機資料區塊進行一組第一後續操作,其中主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自第一區塊從備用池被提取以作為主機資料區塊開始,主機資料區塊的序號分配對應於完全地編程主機資料區塊的一時序,以供指示複數個資料區塊之中主機資料區塊的一順序來作為非預期斷電恢復中進一步的使用,其中複數個區塊包含有複數個資料區塊;以及控制器自備用池提取一第二區塊以作為一垃圾回收目的地區塊,並且對垃圾回收目的地區塊進行一組第二後續操作,其中垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自第二區塊從備用池被提取以作為垃圾回收目的地區塊開始,垃圾回收目的地區塊的序號分配對應於開始利用垃圾回收目的地區塊的一時序,以供指示複數個資料區塊之中垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用。
本發明所提供的方法以及相關裝置可以確保在不同的情況下適當地操作記憶體裝置,其中上述裝置的範例包含有:控制器以及記憶體裝置等等。舉例來說,借助序號分配時序控制,本發明所提供之方法以及相關裝置可以正確地進行非預期斷電恢復,此外,本發明所提供之方法以及相關裝置可以確保自記憶體裝置至主機裝置的即時回應(real-time response),並因此可改善整體性能。
10:電子裝置
50:主機裝置
52:處理器
54:電源供應電路
100:記憶體裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:隨機存取記憶體
116T,122T:表
118:傳輸介面電路
120:非揮發性記憶體
122-1~122-N:非揮發性記憶體元件
LPT,LPT’:邏輯至實體表
WP:寫入保護資訊
SP:備用池
BLK_Act(0):主機資料區塊
BLK_Act(1):垃圾回收目的地區塊
LinkPG:連結頁面
MapInfoPG:邏輯至實體映射存在資訊頁面
S10,S11A,S11B,S12A,S12B,S13A,S13B,S14A,S14B,S15A,S15B,S20,S21,S22,S30,S31,S32,S33,S40,S41A,S41B,S42,S43,S44A,S44B,S45A,S45B,S46,S47,S48,S49:步驟
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2圖為依據本發明一實施例之借助序號分配時序控制來進行記憶體裝置(例如第1圖所示之記憶體裝置)存取管理之方法的資料接收控制方案的示意圖。
第3圖為依據本發明一實施例之該方法的區塊連結控制方案的示意圖。
第4圖為依據本發明一實施例之該方法的序號分配控制方案的示意圖。
第5圖的下半部為依據本發明一實施例之該方法的垃圾回收時序感知(GC-timing-aware)非預期斷電恢復控制方案的下半部示意圖,其中為了更好的理解,第5圖的上半部為另一非預期斷電恢復控制方案。
第6圖為依據本發明一實施例之該方法的區塊連結校正控制方案的示意圖。
第7圖為依據本發明一實施例之該方法的映射表重建控制方案的示意圖。
第8A圖為依據本發明一實施例之該方法之工作流程的第一部分示意圖。
第8B圖為依據本發明一實施例之該方法之工作流程的第二部分示意圖。
第8C圖為依據本發明一實施例之該方法之工作流程的第三部分示意圖。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有至少一處理器(例如一個或多個處理器;其可被統稱為處理器52),並且主機裝置50可另包含有耦接於處理器52的電源供應電路54。處理器52係用以控制主機裝置50的操作,以及電源供應電路54係用以提供電源至處理器52以及記憶體裝置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,並且可另包含有非揮發性(non-volatile,NV)記憶體120(為簡潔起見,在第1圖中標記為“NV記憶體”),其中該控制器用以控制記憶體裝置100的操作並存取非揮發性記憶體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、隨機存取記憶體116(random access memory,RAM;為簡潔起見,標記為“RAM”)以及傳輸介面電路118,其中上述元件之至少一部分(例如一部分或全部)可通過匯流排彼此耦接。隨機存取記憶體116可藉由一靜態隨機存取記憶體(static random access memory,SRAM)來實現,但本發明不限於此,隨機存取記憶體116可用以提供內部儲存空間給記憶體控制器110,舉例來說,隨機存取記憶體116可作為一緩衝記憶體來緩衝資料,此外,本實施例之唯讀記憶體112M用以儲存程式碼112C,並且微處理器112用以執行程式碼112C以控制非揮發性記憶體120的存取,要注意的是,在某些實施例中,程式碼112C也可被儲存於隨機存取記憶體116或任一類型的記憶體,此外,控制邏輯電路114中的一資料保護電路(未顯示)可保護資料及/或進行錯誤校正,並且傳輸介面電路118可符合一特定通訊規範(例如序列先進技術附件(Serial Advanced Technology Attachment,SATA)規範、通用序列匯流排(Universal Serial Bus,USB)規範、快捷外部連接標準(Peripheral Component Interconnect Express,PCIE)規範、嵌入式多媒體卡規範或通用快閃儲存規範),並可根據該特定通訊規範來進行通訊。
在本實施例中,主機裝置50可以藉由將主機命令以及相對應的邏輯位址傳送至記憶體控制器110來存取記憶體裝置100,記憶體控制器110接收主機命令以及邏輯位址,並且將主機命令轉換成記憶體操作命令(其可簡稱為操作命令),再利用操作命令來控制非揮發性記憶體,以對在非揮發性記憶體120中
的有著實體位址之記憶體單元(例如資料頁面(data page))進行讀取或寫入/編程等等,其中實體位址可以與邏輯位址相關。當記憶體控制器110對複數個非揮發性記憶體元件122-1、122-2、...以及122-N之中的任一個非揮發性記憶體元件122-n(符號“n”可代表在區間[1,N]中的任一整數)進行抹除(erase)操作時,非揮發性記憶體元件122-n之多個區塊的至少一區塊會被抹除,其中該多個區塊中的每一個區塊可包含有多個頁面(例如資料頁面),並且可以對一個或多個頁面進行存取操作(例如讀取或寫入)。
根據某些實施例,處理電路(例如微處理器112)可根據來自主機裝置50的複數個主機命令來控制記憶體控制器110,以允許主機裝置50透過記憶體控制器110來存取非揮發性記憶體120。記憶體控制器110可為主機裝置50將資料儲存至非揮發性記憶體120中,因應來自主機裝置50的一主機命令(例如該複數個主機命令的其一)來讀取儲存資料,以及提供自非揮發性記憶體120讀取的資料給主機裝置50。在非揮發性記憶體120(例如快閃記憶體)中,上述至少一非揮發性記憶體元件(例如複數個非揮發性記憶體元件122-1、122-2、...以及122-N)可包含有複數個區塊,諸如在非揮發性記憶體元件122-1中的第一組實體區塊、在非揮發性記憶體元件122-2中的第二組實體區塊、...以及在非揮發性記憶體元件122-N中的第N組實體區塊。記憶體控制器110可以被設計來適當地管理該複數個區塊(例如複數組實體區塊)。
為了更好的理解,該複數個區塊(例如複數組實體區塊)可包含有複數個資料區塊(例如儲存著有效資料的複數個有效區塊)以及複數個備用(spare)區塊(例如複數個空白(blank)區塊,諸如準備好被使用的抹除後區塊),主機裝置50可傳送一第一寫入要求以供寫入資料至某一邏輯位址,並且記憶體
控制器110可將資料寫入至非揮發性記憶體120內的一第一位置(例如與該邏輯位址相關的一實體位址),接著,主機裝置50可傳送一第二寫入要求以供寫入資料至同一邏輯位址,並且記憶體控制器110可寫入資料至非揮發性記憶體120內的一第二位置(例如與該邏輯位址相關的另一實體位址),並將位於非揮發性記憶體120內之第一位置的資料判斷為無效資料,此外,記憶體控制器110可觸發一垃圾回收(garbage collection,GC)程序來丟棄複數個資料區塊之中一個或多個資料區塊中的無效資料並使得該一個或多個資料區塊中的有效資料被儲存至其它地方,尤其是,自複數個備用區塊擇取一個或多個備用區塊以作為複數個資料區塊的一個或多個新資料區塊,將來自該一個或多個資料區塊的有效區塊複製至該一個或多個新資料區塊,並且抹除該一個或多個資料區塊以作為複數個備用區塊的一個或多個新備用區塊,以準備更多儲存空間來進一步地儲存新資料。
針對至少一表(例如表116T以及表122T)中的區塊管理,記憶體控制器110可記錄、維持及/或更新區塊管理資訊,其中表116T可包含有表122T之至少一部分(例如一部分或全部)的一暫時版本。舉例來說,表122T可包含有至少一邏輯至實體(logical-to-physical,L2P)位址映射表(例如一個或多個邏輯至實體位址映射表;其可以被統稱為邏輯至實體表LPT),以供記錄邏輯位址與實體位址之間的映射關係,並且表116T可包含有邏輯至實體表LPT之至少一子表(sub-table;例如一個或多個子表)的一暫時版本,其中上述至少一子表的該暫時版本可被統稱為邏輯至實體表LPT’,但是本發明不限於此。舉例來說,針對區塊管理,記憶體控制器110可進一步地記錄、維持及/或更新寫入保護(write protection,WPRO)資訊WP以供保護記憶體控制器110的存取管理機制,尤其是,防止由於任一非預期斷電(sudden power off,SPO)事件所造成的記憶體控制器
110的存取管理機制故障(例如不正常操作)。在非預期斷電事件之後,記憶體控制器110可至少根據寫入保護資訊WP來進行非預期斷電恢復(sudden power off recovery,SPOR)。
記憶體控制器110可備份(back up)表116T至非揮發性記憶體120(例如複數個非揮發性記憶體元件122-1、122-2、...以及122-N中的一個或多個非揮發性記憶體元件)中的表122T,並且記憶體控制器110可以為了快速參考而將表122T的至少一部分(例如一部分或全部)加載至隨機存取記憶體116以成為表116T,其中表122T可以繪示於某個非揮發性記憶體元件(例如非揮發性記憶體元件122-1)中,以指示表122T可以被儲存至非揮發性記憶體元件122-1中,但是本發明不限於此。根據某些實施例,表122T可以被劃分為多個部分以儲存至複數個非揮發性記憶體元件122-1、122-2、...以及122-N中的兩個或多個非揮發性記憶體元件之中,並且表122T可以被繪示為分別儲存在兩個或多個非揮發性記憶體元件中的多個部分。
第2圖為依據本發明一實施例之借助序號分配時序控制來進行記憶體裝置(例如第1圖所示之記憶體裝置100)存取管理之方法的資料接收控制方案的示意圖。如第2圖下半部所示,根據該方法而操作的記憶體裝置100可具備一備用池SP,並且可藉由備用池SP來管理複數個備用區塊(為簡潔起見,在第2圖中標記為“區塊”),尤其是,可自備用池SP提取(pop)一第一區塊以作為一主機資料區塊BLK_Act(0),並自備用池SP提取一第二區塊以作為一垃圾回收目的地區塊(GC destination block)BLK_Act(1)。如第2圖中的虛線箭頭所示,主機資料區塊BLK_Act(0)可用以自主機裝置50接收資料,並且垃圾回收目的地區塊BLK_Act(1)可用以於垃圾回收程序期間自一垃圾回收來源區塊接收資料,舉例
來說,因應來自主機裝置50的一寫入要求(例如第一寫入要求以及第二寫入要求等等),記憶體控制器110可自主機裝置50取得資料(例如待寫入資料)並將資料寫入(例如編程(program))至主機資料區塊BLK_Act(0)中,又例如,於垃圾回收程序期間,記憶體控制器110可自垃圾回收來源區塊(例如該一個或多個資料區塊的任一個資料區塊)讀取資料並將資料寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)中。
根據該方法而操作的記憶體裝置100可有效地進行垃圾回收程序,其中對垃圾回收程序之垃圾回收目的地區塊BLK_Act(1)上額外的最終頁面進行編程不會影響服務品質(quality of service,QoS),並且根據該方法而操作的記憶體裝置100可以改善服務品質,尤其是對於記憶體裝置被實現為企業級產品的案例。此外,當於垃圾回收程序期間發生非預期斷電事件並需要進行非預期斷電恢復時,根據該方法而操作的記憶體裝置100可以在不同狀況中適當地進行非預期斷電恢復,因此,於非預期斷電恢復期間不會發生錯誤操作。
第3圖為依據本發明一實施例之該方法的區塊連結(block link)控制方案的示意圖。如第3圖上半部所示,寫入保護資訊WP可包含有至少一連結頁面(例如一個或多個連結頁面;其可被統稱為連結頁面LinkPG)以及至少一邏輯至實體映射存在(L2P-mapping-existence)資訊頁面(例如一個或多個邏輯至實體映射存在資訊頁面;其可被統稱為邏輯至實體映射存在資訊頁面MapInfoPG)。
記憶體控制器110可管理一區塊連結中的複數個資料區塊(例如區塊#1、區塊#2、區塊#3等等)以供指示區塊#1、區塊#2、區塊#3等等之各自的存取時序,以使得非預期斷電恢復根據區塊#1、區塊#2、區塊#3等等之各自的存
取時序而被進行,以保證非預期斷電恢復的正確性。為了更好的理解,非預期斷電恢復可包含有以下非預期斷電恢復操作:(1)重建某個區塊的一實體至邏輯(physical-to-logical,P2L)位址映射表來在該實體至邏輯位址映射表內的一組相對應實體至邏輯表項目(entry)正確地記錄與該區塊之一組實體頁面的一組實體位址相關的一組邏輯位址,以供指示自該組實體位址至該組邏輯位址的一組實體至邏輯映射關係;以及(2)根據該實體至邏輯位址映射表來更新邏輯至實體表LPT以正確地在邏輯至實體表LPT內的一組相對應邏輯至實體表項目正確地記錄該組實體位址,以供指示自該組邏輯位址至該組實體位址的一組邏輯至實體映射關係;其中在上述兩組映射關係(亦即自該組實體位址至該組邏輯位址的該組實體至邏輯映射關係以及自該組邏輯位址至該組實體位址的該組邏輯至實體映射關係)之中的任一組映射關係可被視為上述兩組映射關係之中另一組映射關係的一組反向(reverse)映射關係。
由於主機裝置50可傳送兩個或多個寫入要求(例如第一寫入要求以及第二寫入要求)以將資料寫入至相同邏輯位址,因此倘若該相同邏輯位址是該組邏輯位址的其一的話,上述兩組映射關係中的某組映射關係可能會變得過時(out of date;尤其是,不正確)。記憶體控制器110可利用連結頁面LinkPG來記錄區塊#1、區塊#2、區塊#3等等之一系列的區塊序號以建立區塊連結來指示區塊#1、區塊#2、區塊#3等等之各自的存取時序,並可進一步地利用邏輯至實體映射存在資訊頁面MapInfoPG來記錄區塊連結的記錄狀態(例如邏輯至實體映射存在資訊),諸如區塊連結中區塊#1、區塊#2、區塊#3等等之內的哪個區塊是最後邏輯至實體映射關係更新後區塊,其中最後邏輯至實體映射關係更新後區塊的邏輯至實體映射關係(例如該組邏輯至實體映射關係)已經被更新至邏輯
至實體表L2P以供指示區塊連接中一系列連續的邏輯至實體映射關係更新後區塊(例如自第一邏輯至實體映射關係更新後區塊(例如區塊#1)至最後邏輯至實體映射關係更新後區塊)的邏輯至實體映射關係已經根據區塊#1、區塊#2、區塊#3等等之各自的存取時序(為簡潔起見,在第3圖中標記為“存在於邏輯至實體表的映射關係”)而被更新至邏輯至實體表LPT。
當於垃圾回收程序期間發生非預期斷電事件並需要進行非預期斷電恢復時,記憶體裝置100可根據寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)來對區塊連結中區塊#1、區塊#2、區塊#3等等之中的一個或多個需要進行非預期斷電恢復的區塊(例如一個或多個開放區塊(open block))進行非預期斷電恢復操作,尤其是,根據該一個或多個需要進行非預期斷電恢復之區塊的各自的存取時序的次序(order)來進行非預期斷電恢復操作,以保證非預期斷電恢復的正確性,因此,根據該方法而操作的記憶體裝置100(例如記憶體控制器110)可始終地勝過一些最好的競爭對手。
第4圖為依據本發明一實施例之該方法的序號分配控制方案的示意圖。舉例來說,記憶體控制器110可藉由備用池SP來管理複數個備用區塊。
在步驟S10中,記憶體控制器110可判斷準備好被使用的一區塊是否為主機資料區塊BLK_Act(0),如果是(例如準備好被使用的該區塊為主機資料區塊BLK_Act(0)),進入步驟S11A;如果否(例如準備好被使用的該區塊為垃圾回收目的地區塊BLK_Act(1)而不是主機資料區塊BLK_Act(0)),則進入步驟S11B。
在步驟S11A中,記憶體控制器110可自備用池SP提取一區塊(例如一第一區塊)來作為主機資料區塊BLK_Act(0)。
在第4圖左半部所示之自步驟S11A開始的部份工作流程中,記憶體控制器110可進一步地對主機資料區塊BLK_Act(0)進行一組第一後續操作,其中主機資料區塊BLK_Act(0)可用以自主機裝置50接收資料。尤其是,針對該組第一後續操作,自該第一區塊從備用池SP被提取以作為主機資料區塊BLK_Act(0)開始,主機資料區塊BLK_Act(0)的序號分配可對應於完全地編程主機資料區塊BLK_Act(0)的一時序(例如一第一時間點),以供指示複數個資料區塊之中主機資料區塊BLK_Act(0)的一順序(rank)來在非預期斷電恢復中做進一步的使用,舉例來說,該組第一後續操作可包含有步驟S12A、S13A、S14A以及S15A的操作。
在步驟S12A中,記憶體控制器110可編程該區塊(亦即主機資料區塊BLK_Act(0),諸如該第一區塊)。
在步驟S13A中,記憶體控制器110可判斷主機資料區塊BLK_Act(0)(例如該第一區塊)是否為滿(full),如果是(例如主機資料區塊BLK_Act(0)(例如該第一區塊)被完全地編程),進入步驟S14A;如果否(主機資料區塊BLK_Act(0)(例如該第一區塊)還沒被完全地編程),則進入步驟S12A。
在步驟S14A中,因應主機資料區塊BLK_Act(0)為滿,記憶體控制器110可取得一區塊序號(例如一第一區塊序號),尤其是,分配該第一區塊序號為主機資料區塊BLK_Act(0)(例如該第一區塊)的序號。尤其是,當寫入(例如編程)區塊關閉(end-of-block,EoB)資訊至主機資料區塊BLK_Act(0)以關閉
(close)主機資料區塊BLK_Act(0)時,記憶體控制器110可取得該第一區塊序號並分配該第一區塊序號為主機資料區塊BLK_Act(0)的序號。
在步驟S15A中,記憶體控制器110可將該區塊(亦即主機資料區塊BLK_Act(0),例如該第一區塊)加入至區塊連結,舉例來說,區塊連結的最新版本可指示複數個資料區塊的次序。
在步驟S11B中,記憶體控制器110可自備用池SP提取一區塊(例如一第二區塊)來作為垃圾回收目的地區塊BLK_Act(1)。
在如第4圖右半部所示之自步驟S11B開始的部分工作流程中,記憶體控制器110可進一步地對垃圾回收目的地區塊BLK_Act(1)進行一組第二後續操作,其中垃圾回收目的地區塊BLK_Act(1)可用以於垃圾回收程序期間自垃圾回收來源區塊接收資料。尤其是,針對該組第二後續操作,自該第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)開始,垃圾回收目的地區塊BLK_Act(1)的序號分配可對應於開始利用垃圾回收目的地區塊BLK_Act(1)的一時序(例如一第二時間點),以供指示複數個資料區塊之中垃圾回收目的地區塊BLK_Act(1)的一順序來在非預期斷電恢復中做進一步的使用,舉例來說,該組第二後續操作可包含有步驟S12B、S13B、S14B以及S15B的操作。
在步驟S12B中,記憶體控制器110可取得一區塊序號(例如一第二區塊序號),尤其是,可將該第二區塊序號分配為垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)的序號。尤其是,當記憶體控制器110開放(open)垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)時,記憶體控制器110可取得該第二
區塊序號並將第二區塊序號分配為垃圾回收目的地區塊BLK_Act(1)的序號。
在步驟S13B中,記憶體控制器110可編程該區塊(亦即垃圾回收目的地區塊BLK_Act(1),例如該第二區塊)。
在步驟S14B中,記憶體控制器110可判斷垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)是否為滿,如果是(例如垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)被完全地編程),進入步驟S15B;如果否(垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)還沒被完全地編程),則進入步驟S13B。
在步驟S15B中,因應垃圾回收目的地區塊BLK_Act(1)為滿,記憶體控制器110可以將該區塊(亦即垃圾回收目的地區塊BLK_Act(1),例如該第二區塊)加入至區塊連結中,尤其是,當垃圾回收目的地區塊BLK_Act(1)(例如該第二區塊)為滿時,記憶體控制器110可將區塊關閉資訊寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)中以關閉垃圾回收目的地區塊BLK_Act(1),並根據垃圾回收目的地區塊BLK_Act(1)的區塊序號來將垃圾回收目的地區塊BLK_Act(1)加入至區塊連結中(例如根據區塊連結中其它區塊之區塊序號之中垃圾回收目的地區塊BLK_Act(1)的區塊序號來將垃圾回收目的地區塊BLK_Act(1))插入(insert)至區塊連結內正確的區塊連結位置。舉例來說,區塊連結的最新版本可指示複數個資料區塊的次序。
根據本實施例,針對時序控制,記憶體控制器110可在不同方法中分別進行主機資料區塊BLK_Act(0)的序號分配以及垃圾回收目的地區塊
BLK_Act(1)的序號分配。舉例來說,自第一區塊從備用池SP被提取以作為主機資料區塊BLK_Act(0)開始,在發生主機資料區塊BLK_Act(0)被完全地編程之後,記憶體控制器110可隨即將第一區塊序號分配為主機資料區塊BLK_Act(0)(例如第一區塊)的序號,並因此可使得主機資料區塊BLK_Act(0)的序號分配與關閉主機資料區塊BLK_Act(0)(例如第一區塊)的操作有關。又例如,在第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)之後,記憶體控制器110可隨即將第二區塊序號分配為垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)的序號,並因此可使得垃圾回收目的地區塊BLK_Act(1)的序號分配與開放垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)的操作有關。
為了更好的理解,該方法可以第4圖所示之工作流程來闡明,但本發明不限於此,根據某些實施例,一個或多個步驟可於第4圖所示之工作流程中增加、刪除或修改。
根據某些實施例,記憶體控制器110可利用一尾序號參數(tail serial number parameter)TailSerial來記錄複數個分配後區塊序號之中的最新分配後區塊序號,其中該複數個分配後區塊序號可代表複數個候選區塊序號之所有區塊序號中已經被分配的區塊序號(例如第一區塊序號以及第二區塊序號),舉例來說,在記憶體裝置100之生命期(lifetime)的一開始時(例如在記憶體裝置100的使用者擁有記憶體裝置100並開始使用記憶體裝置100之前),記憶體控制器110可將尾序號參數TailSerial預設為一初始值(例如0;諸如TailSerial=0),並當將一區塊序號分配為複數個資料區塊中任一個區塊的序號時更新尾序號參數TailSerial,舉例來說,當將一區塊序號(例如1)分配為區塊#1的序號時,記憶體控制器110可將一預定增量(例如1)增加至尾序號參數TailSerial以將尾序號參
數TailSerial更新為一新值(例如1;亦即TailSerial=1);當將一區塊序號(例如2)分配為區塊#2的序號時,記憶體控制器110可將預定增量(例如1)增加至尾序號參數TailSerial以將尾序號參數TailSerial更新為一新值(例如2;亦即TailSerial=2);以及其餘可以此類推。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,基於序號分配時序控制,記憶體控制器110可至少根據主機資料區塊BLK_Act(0)(例如第一區塊)與垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)之各自的序號來進行非預期斷電恢復,以防止於非預期斷電恢復期間的任一錯誤操作,舉例來說,當需要時,記憶體控制器110可擇取主機資料區塊BLK_Act(0)(例如第一區塊)以作為垃圾回收程序的垃圾回收來源區塊,並因此垃圾回收程序的垃圾回收來源區塊可等於主機資料區塊BLK_Act(0),在此情況中,於非預期斷電恢復期間不會發生錯誤操作。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第5圖的下半部為依據本發明一實施例之該方法的垃圾回收時序感知(GC-timing-aware)非預期斷電恢復控制方案的示意圖,其中為了更好的理解,第5圖的上半部為另一非預期斷電恢復控制方案。針對垃圾回收程序,根據垃圾回收時序感知非預期斷電恢復控制方案而操作的記憶體控制器110可感知垃圾回收時序,諸如自第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)開始,開始利用垃圾回收目的地區塊BLK_Act(1)的時序(例如第二時間點),並因此可在一情況時(例如當非預期斷電事件發生時;為簡潔起見,標記為“@SPO”)適當地維持區塊連結以分別使得區塊連結內所有區塊位於正確位置。
如第5圖上半部所示,假設記憶體裝置100(例如記憶體控制器110)可暫時地根據其它非預期斷電恢復控制方案來操作,並自第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)開始,垃圾回收目的地區塊BLK_Act(1)的序號分配可對應於完全地編程垃圾回收目的地區塊BLK_Act(1)的一時序(例如一第三時間點)。舉例來說,在區塊#1、區塊#2與區塊#3已經被完全地編程並關閉之後非預期斷電事件可能發生(其被第5圖上半部中通過區塊連接中區塊#3與區塊#5之間的部分區塊連結的垂直虛線所指示),此外,連結頁面LinkPG可能已經記錄區塊連結中區塊#1、區塊#2與區塊#3等等的一系列的區塊序號,並且邏輯至實體映射存在資訊頁面MapInfoPG可能已經記錄在非預期斷電事件中區塊連結的記錄狀態(例如邏輯至實體映射存在資訊;為簡潔起見,標記為“記錄狀態@SPO”),諸如在區塊連結中區塊#1、區塊#2與區塊#3等等之中哪個區塊(例如區塊#3)是最後邏輯至實體映射關係更新後區塊,其中最後邏輯至實體映射關係更新後區塊的邏輯至實體映射關係(例如該組邏輯至實體映射關係)已經被更新至邏輯至實體表LPT以供指示第5圖上半部的區塊連結中一系列連續的邏輯至實體映射關係更新後區塊(例如自第一邏輯至實體映射關係更新後區塊(例如區塊#1)至最後邏輯至實體映射關係更新後區塊(例如區塊#3))的邏輯至實體映射關係已經根據區塊#1、區塊#2與區塊#3等等的各自的存取時序而被更新至邏輯至實體表LPT(為簡潔起見,在第5圖中標記為“邏輯至實體表中存在的映射關係”)。在其它非預期斷電恢復控制方案中垃圾回收目的地區塊BLK_Act(1)的序號分配可能造成非預期斷電事件中的主機資料區塊BLK_Act(0)(例如第一區塊;為簡潔起見,標記為“BLK_Act(0)@SPO”),諸如區塊#5,在區塊連結中立即出現在區塊#3之後,因此非預期斷電恢復操作可能會由於區塊連結的一錯誤版本而被錯誤地進行。
如第5圖的下半部所示,在記憶體裝置100(例如記憶體控制器110)根據垃圾回收時序感知非預期斷電恢復控制方案而操作的情況中,自第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)開始,垃圾回收目的地區塊BLK_Act(1)的序號分配可對應於開始利用垃圾回收目的地區塊BLK_Act(1)的時序(例如第二時間點),舉例來說,在區塊#1、區塊#2與區塊#3已經被完全地編程並關閉之後非預期斷電事件可能發生(其被第5圖下半部中通過區塊連接中區塊#3與區塊#5之間的部分區塊連結的垂直虛線所指示),此外,連結頁面LinkPG可能已經記錄區塊連結中區塊#1、區塊#2與區塊#3等等的一系列的區塊序號,並且邏輯至實體映射存在資訊頁面MapInfoPG可能已經記錄在非預期斷電事件中區塊連結的記錄狀態(例如邏輯至實體映射存在資訊;為簡潔起見,標記為“記錄狀態@SPO”),諸如在區塊連結中區塊#1、區塊#2與區塊#3等等之中哪個區塊(例如區塊#3)是最後邏輯至實體映射關係更新後區塊,其中最後邏輯至實體映射關係更新後區塊的邏輯至實體映射關係(例如該組邏輯至實體映射關係)已經被更新至邏輯至實體表LPT以供指示第5圖下半部的區塊連結中一系列連續的邏輯至實體映射關係更新後區塊(例如自第一邏輯至實體映射關係更新後區塊(例如區塊#1)至最後邏輯至實體映射關係更新後區塊(例如區塊#3))的邏輯至實體映射關係已經根據區塊#1、區塊#2與區塊#3等等的各自的存取時序而被更新至邏輯至實體表LPT(為簡潔起見,在第5圖中標記為“邏輯至實體表中存在的映射關係”)。垃圾回收時序感知非預期斷電恢復控制方案中垃圾回收目的地區塊BLK_Act(1)的序號分配可能造成非預期斷電事件中垃圾回收目的地區塊BLK_Act(1)(例如第二區塊;為簡潔起見,標記為“BLK_Act(1)@SPO”),諸如區塊#4,在區塊連結中立即地出現在區塊#3之後,並進一步地造成在非預期斷電事件中主機資料區塊BLK_Act(0)(例如第一區塊;為簡潔起見,
標記為“BLK_Act(0)@SPO”),諸如區塊#5,在區塊連結中立即地出現在區塊#4之後,因此,非預期斷電恢復操作可根據區塊連結的一正確版本而被正確地進行。
由於自第二區塊從備用池SP被提取以作為垃圾回收目的地區塊BLK_Act(1)開始,垃圾回收目的地區塊BLK_Act(1)的序號分配可對應於開始利用垃圾回收目的地區塊BLK_Act(1)的時序(例如第二時間點),因此根據垃圾回收時序感知非預期斷電恢復控制方案而操作的記憶體控制器110可根據複數個資料區塊之中垃圾回收目的地區塊BLK_Act(1)的順序來適當地維持區塊連結,以在非預期斷電恢復中做進一步的使用,為簡潔起見,對於此實施例的類似內容在此不再重複詳細描述。
為了更好的理解,區塊#1、區塊#2、區塊#3、區塊#5、區塊#6與區塊#7等等可繪示於第5圖上半部的區塊連結中來指示區塊#1、區塊#2、區塊#3與區塊#5的次序以作為一範例並進一步地指示後續區塊(例如區塊#6與區塊#7等等)的可能趨勢,以及區塊#1、區塊#2、區塊#3、區塊#4、區塊#5與區塊#6等等可繪示於第5圖下半部的區塊連結中來指示區塊#1、區塊#2、區塊#3、區塊#4與區塊#5的次序以作為一範例並進一步地指示後續區塊(例如區塊#6等等)的可能趨勢,但是本發明不限於此根據某些實施例,區塊連結中的區塊可能會變化。
根據某些實施例,當非預期斷電事件發生時,寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)可能會不完整,尤其是,可能還沒即時地被完整儲存或更新,並因此可能變得不可靠,在
此情況中,記憶體控制器110可掃描複數個資料區塊中的所有區塊來重建寫入保護資訊WP以供決定區塊連結的最新版本(例如正確版本),為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第6圖為依據本發明一實施例之該方法的區塊連結校正控制方案的示意圖。
在步驟S20中,記憶體控制器110可判斷準備好被使用的區塊是否為垃圾回收目的地區塊BLK_Act(1),如果是(例如準備好被使用的區塊為垃圾回收目的地區塊BLK_Act(1)),進入步驟S21;如果否(準備好被使用的區塊為主機資料區塊BLK_Act(0)),則進入步驟S22。
在步驟S21中,記憶體控制器110可根據區塊連結中其它區塊的區塊序號之中垃圾回收目的地區塊BLK_Act(1)的區塊序號來將垃圾回收目的地區塊BLK_Act(1)插入至區塊連結內正確的區塊連結位置。
在步驟S22中,記憶體控制器110可進行後續處理,舉例來說,當非預期斷電事件發生時,記憶體控制器110可進行非預期斷電恢復操作。
為了更好的理解,該方法可以第6圖所示之工作流程來闡明,但本發明不限於此,根據某些實施例,一個或多個步驟可於第6圖所示之工作流程中增加、刪除或修改。
根據某些實施例,記憶體控制器110可對區塊#i進行非預期斷電恢復
操作,其中區塊索引i可以是一正整數,但是本發明不限於此。根據某些實施例,記憶體控制器110可判斷是否先對區塊#i進行非預期斷電恢復操作,舉例來說,倘若判斷在區塊#i進行非預期斷電恢復操作,則記憶體控制器110對區塊#i進行非預期斷電恢復操作;否則,記憶體控制器110略過區塊#i並防止對區塊#i進行非預期斷電恢復操作。為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第7圖為依據本發明一實施例之該方法的映射表重建控制方案的示意圖。
在步驟S30中,記憶體控制器110可將區塊索引i設置為區塊索引i的一初始值i0(為簡潔起見,標記為“i=i0”),舉例來說,初始值i0可指示於非預期斷電恢復期間記憶體控制器110應先處理區塊#i0,其中記憶體控制器110可根據寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)來決定初始值i0,但是本發明不限於此,根據某些實施例,記憶體控制器110可根據其它資訊來決定初始值i0。
在步驟S31中,記憶體控制器110可重建區塊#i的一實體至邏輯表(例如一實體至邏輯位址映射表),尤其是,重建區塊#i的實體至邏輯位址映射表來正確地記錄區塊#i之實體至邏輯位址映射表內位於一組相對應實體至邏輯表項目之與區塊#i的一組實體頁面的一組實體位址相關的一組邏輯位址,以供指示自該組實體位址至該組邏輯位址的一組實體至邏輯映射關係。
在步驟S32中,記憶體控制器110可根據區塊#i的實體至邏輯表來更
新邏輯至實體表LPT,尤其是,根據區塊#i的實體至邏輯表來更新邏輯至實體表LPT以正確地記錄邏輯至實體表LPT內位於一組相對應邏輯至實體表項目的(區塊#i之該組實體頁面的)該組實體位址,以供指示自該組邏輯位址至該組實體位址的一組邏輯至實體映射關係。
在步驟S33中,根據至少一預定狀況(例如一個或多個預定狀況)是否被滿足,記憶體控制器110可判斷非預期斷電恢復是否完成,如果是(例如上述至少一預定狀況被滿足),第7圖所示之工作流程結束;如果否(例如上述至少一預定狀況沒有被滿足),則進入步驟S31來處理下一個區塊,其中記憶體控制器110可將一預定增量(例如1)增加至區塊索引i(為簡潔起見,標記為“i++”)。
為了更好的理解,該方法可以第7圖所示之工作流程來闡明,但本發明不限於此,根據某些實施例,一個或多個步驟可於第7圖所示之工作流程中增加、刪除或修改。
根據某些實施例,上述至少一預定狀況可包含有:(1)在非預期斷電恢復中沒有待處理的滿資料區塊(full data block);以及(2)沒有開放區塊(open block);但是本發明不限於此,根據某些實施例,上述至少一預定狀況可能會變化。
根據某些實施例,記憶體控制器110可根據該方法之上述控制方案之中兩個或多個控制方案而操作,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第8A圖、第8B圖與第8C圖分別為依據本發明一實施例之該方法之工作流程的第一部分、第二部分與第三部分的示意圖,其中第8B圖所示之第二部分(例如步驟S43、S44A、S45B以及S46)可以透過節點A而連接至第8A圖所示之第一部分(例如步驟S40、S41A、S41B以及S42),以及第8C圖所示之第三部分(例如步驟S44B、S45A、S47、S48以及S49)可透過節點B、節點C與節點D而連接至第8B圖所示之第二部分。舉例來說,記憶體控制器110可根據該方法之上述控制方案中的大部分控制方案(除了該其它非預期斷電恢復控制方案)來操作,但是本發明不限於此。
在步驟S40中,記憶體控制器110可判斷是否信任(trust)寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)以供指示區塊連結中一個或多個現用區塊(active block)的狀態(為簡潔起見,標記為“寫入保護現用資訊”),如果是,進入步驟S41A;如果否,則進入步驟S41B。
在步驟S41A中,記憶體控制器110可根據寫入保護資訊WP來掃描未儲存區塊(例如在非預期斷電恢復中還未儲存的區塊,諸如在非預期斷電恢復操作中待處理的區塊)。
在步驟S41B中,記憶體控制器110可根據複數個資料區塊的區塊序號來掃描複數個資料區塊的所有區塊來取得區塊連結,尤其是,可更新寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)來指示區塊連結以及其記錄狀態。
在步驟S42中,倘若垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)
存在的話,記憶體控制器110可取得垃圾回收目的地區塊BLK_Act(1)的序號(為簡潔起見,標記為“倘若BLK_Act(1)存在的話,取得SN(BLK_Act(1))”)。接著,可透過節點A來進入第8B圖所示之步驟S43,其中記憶體控制器110可將區塊索引i設置為區塊索引i的初始值i0(為簡潔起見,標記為“i=i0”),舉例來說,初始值i0可指示於非預期斷電恢復期間記憶體控制器110應先處理區塊#i0,並且記憶體控制器110可根據寫入保護資訊WP(例如連結頁面LinkPG以及邏輯至實體映射存在資訊頁面MapInfoPG)來決定初始值i0。
在步驟S43中,記憶體控制器110可判斷是否存在任一個滿資料區塊,尤其是,判斷區塊#i是否為一滿資料區塊,如果是(例如區塊#i為滿資料區塊),步驟進入S44A;如果否(例如區塊#i不是滿資料區塊),則透過節點B進入第8C圖所示之步驟S44B。舉例來說,滿資料區塊可代表複數個資料區塊之中一資料區塊被完全地編程。
在步驟S44A中,記憶體控制器110可判斷區塊#i的序號是否大於垃圾回收目的地區塊BLK_Act(1)的序號(為簡潔起見,標記為“SN(BLK #i)>SN(BLK_Act(1))”),如果是,透過節點C進入第8C圖所示之步驟S45A;如果否,則進入第8B圖所示之步驟S45B。
在步驟S45B中,記憶體控制器110可根據一關閉區塊(例如在步驟S43中被判斷為滿資料區塊的區塊#i)的實體至邏輯頁面來建立該關閉區塊的實體至邏輯表(例如實體至邏輯位址映射表),其中實體至邏輯頁面可儲存該關閉區塊的一組實體至邏輯映射關係(例如上述實體至邏輯映射關係)。
在步驟S46中,記憶體控制器110可根據該關閉區塊(例如在步驟S43中被判斷為滿資料區塊的區塊#i)的實體至邏輯表來更新邏輯至實體表LPT。接著,進入步驟S43,其中記憶體控制器110可將預定增量(例如1)增加至區塊索引i(為簡潔起見,標記為“i++”)。
在第8C圖所示之步驟S44B中,記憶體控制器110可判斷是否存在任一個開放區塊,尤其是,判斷區塊#i是否為一開放區塊,如果是(例如區塊#i為開放區塊),進入步驟S45A;如果否(例如區塊#i不是開放區塊),則第8A圖、第8B圖與第8C圖所示之工作流程結束。
在步驟S45A中,記憶體控制器110可判斷開放區塊(例如在步驟S44B中被判斷為開放區塊的區塊#i)中是否存在一個或多個實體至邏輯頁面,如果是,進入步驟S47;如果否,則進入步驟S48。舉例來說,記憶體控制器110可能已經分別根據開放區塊中一組編程後頁面的備用區域中的元資料(metadata)來決定該組編程後頁面的一組實體至邏輯映射關係,並可能已經將該組實體至邏輯映射關係收集並記錄至一個或多個實體至邏輯頁面中,以供加速建立開放區塊的實體至邏輯表(例如實體至邏輯位址映射表),其中該組編程後頁面的備用區域中的元資料可分別指示該組實體至邏輯映射關係,但是本發明不限於此。
在步驟S47中,記憶體控制器110可根據該一個或多個實體至邏輯頁面來建立開放區塊(例如在步驟S44B中被判斷為開放區塊的區塊#i)的實體至邏輯表,尤其是,自該一個或多個實體至邏輯頁面取得該組實體至邏輯映射關係並記錄一組實體至邏輯項目至開放區塊的實體至邏輯表中,其中該組實體至邏輯項目分別指示該組實體至邏輯映射關係。
在步驟S48中,記憶體控制器110可根據開放區塊(例如在步驟S44B中被判斷為開放區塊的區塊#i)之多個編程後頁面的至少一部分(例如一部分或全部)之各自的備用區域中的元資料來建立開放區塊的實體至邏輯表,舉例來說,當步驟S45A的判斷結果為“是”時(亦即在執行步驟S47後執行步驟S48),記憶體控制器110可自開放區塊的多個編程後頁面之中的額外編程後頁面(例如除了該組編程後頁面之外,多個編程後頁面之中的剩餘編程後頁面)取得額外實體至邏輯映射關係,並記錄額外實體至邏輯項目至實體至邏輯表中,其中該額外實體至邏輯項目分別指示該額外實體至邏輯映射關係。又例如,當步驟S45A的判斷結果為“否”時(亦即在執行步驟S45後執行步驟S48,而步驟S47被略過),記憶體控制器110可自開放區塊的多個編程後頁面取得多個實體至邏輯映射關係,並記錄多個實體至邏輯項目至實體至邏輯表中,其中該多個實體至邏輯項目分別指示該多個實體至邏輯映射關係。
在步驟S49中,記憶體控制器110可根據開放區塊(例如在步驟S44B中被判斷為開放區塊的區塊#i)的實體至邏輯表來更新邏輯至實體表LPT。接著,可透過節點D來進入第8B圖所示之步驟S43,其中記憶體控制器110可將預定增量(例如1)增加至區塊索引i(為簡潔起見,標記為“i++”)。
根據本實施例,倘若垃圾回收目的地區塊BLK_Act(1)存在的話,記憶體控制器110可藉由執行步驟S42來取得區塊連結的正確版本,當輪到第8B圖所示之第二部分(例如步驟S43、S44A、S45B以及S46)的迴圈中的垃圾回收目的地區塊BLK_Act(1)時,記憶體控制器110可根據區塊連結的正確版本來取得步驟S44A的判斷結果“是”(例如透過節點C進入步驟S45A),並在包含有第8C圖
所示之步驟S45A、S47、S48與S49的部份工作流程處理非預期斷電恢復操作中的垃圾回收目的地區塊BLK_Act(1)。
為了更好的理解,該方法可以第8A圖、第8B圖與第8C圖所示之工作流程來闡明,但本發明不限於此,根據某些實施例,一個或多個步驟可於第8A圖、第8B圖與第8C圖所示之工作流程中增加、刪除或修改。
根據某些實施例,當開放垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)時,記憶體控制器110可取得第二區塊序號並將第二區塊序號分配為垃圾回收目的地區塊BLK_Act(1)的序號,並進一步地記錄此時的主機資料區塊BLK_Act(0)(例如第一區塊)的序號(例如上述第一區塊序號)。尤其是,當寫入(例如編程)資料至垃圾回收目的地區塊BLK_Act(1)之任一個頁面(例如每一個頁面)中的一資料區域中時,記憶體控制器110可將此時的主機資料區塊BLK_Act(0)(例如第一區塊)的序號(例如上述第一區塊序號)寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)之該任一個頁面中的一備用區域以作為該任一個頁面的部分元資料(例如元資料的一部分),其中記憶體控制器110可利用該任一個頁面中該備用區域的一部分備用區域(例如具有一預定大小,諸如一個或多個位元組)來儲存主機資料區塊BLK_Act(0)(例如第一區塊)的序號,但是本發明不限於此。此外,在垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)變得滿(full;例如被完全地編程)之前主機資料區塊BLK_Act(0)(例如第一區塊)可能會變得滿(例如被完全地編程),在此情況中,記憶體控制器110可將區塊關閉資訊寫入(例如編程)至第一區塊以關閉第一區塊,並自備用池SP提取另一個區塊(例如一第三區塊)以作為最新主機資料區塊BLK_Act(0),而無需將待寫入(例如待編程)的序號(例如第一區塊的第一區塊序號)插入
至(replace into)垃圾回收目的地區塊BLK_Act(1)的任一個頁面的備用區域,因此,根據第5圖下半部所示之垃圾回收時序感知非預期斷電恢復控制方案而操作的記憶體控制器110可感知此情況,並因此可適當地維持區塊連結以使得區塊連結內的所有區塊分別位於其正確的位置。
以第5圖下半部所示之區塊連結為例,在發生非預期斷電事件之前,記憶體控制器110可能已經將對應於非預期斷電事件之主機資料區塊BLK_Act(0)(為簡潔起見,在第5圖中標記為“BLK_Act(0)@SPO”)的序號(例如區塊#5的區塊序號“5”)寫入(編程)至對應於非預期斷電事件之垃圾回收目的地區塊BLK_Act(1)(例如區塊#4)的一個或多個編程後頁面之中任一個頁面中的備用區域中,以作為該任一個頁面的部分元資料(例如元資料的一部分),於非預期斷電恢復期間,記憶體控制器110可判斷在非預期斷電恢復操作中之待處理的一目標區塊(target block)是否為一等待區塊(awaiting block;例如區塊#5),其中該等待區塊是藉由記錄於對應於非預期斷電事件之垃圾回收目的地區塊BLK_Act(1)(例如區塊#4)之一個或多個編程後頁面之中任一個頁面中之備用區域中的區塊序號(例如5)所指示。倘若在非預期斷電恢復操作中之待處理的目標區塊是等待區塊(例如區塊#5)的話,則記憶體控制器110可先處理在非預期斷電恢復操作中對應於非預期斷電事件的垃圾回收目的地區塊BLK_Act(1)(例如區塊#4),接著再處理自等待區塊(例如區塊#5)開始的一個或多個後續區塊,為了簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,當將資料寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)之任一個頁面(例如每一個頁面)中的資料區域時,記憶體控制器110可將此時的主機資料區塊BLK_Act(0)(例如第一區塊)的序號(例如上述
第一區塊序號)寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)之任一個頁面中的備用區域,以作為該任一個頁面的部分元資料,此外,在垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)關閉之前,記憶體控制器110可防止利用主機資料區塊BLK_Act(0)(例如第一區塊)來作為垃圾回收程序的垃圾回收來源區塊,但是本發明不限於此,為了簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,當將資料寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)之任一個頁面(例如每一個頁面)中的資料區域時,記憶體控制器110可將此時的主機資料區塊BLK_Act(0)(例如第一區塊)的序號(例如上述第一區塊序號)寫入(例如編程)至垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)之任一個頁面中的備用區域,以作為該任一個頁面的部分元資料,此外,在垃圾回收目的地區塊BLK_Act(1)(例如第二區塊)關閉之前,記憶體控制器110可防止主機資料區塊BLK_Act(0)(例如第一區塊)被移除,當記憶體裝置100y在任一時間點開啟電源時,記憶體控制器110可利用主機資料區塊BLK_Act(0)(例如第一區塊)來作為一開始點以供參考,但是本發明不限於此,為了簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
WP:寫入保護資訊
LinkPG:連結頁面
MapInfoPG:邏輯至實體映射存在資訊頁面
Claims (9)
- 一種借助序號分配時序控制來進行一記憶體裝置之存取管理的方法,該方法係應用於該記憶體裝置的一控制器,該記憶體裝置包含有該控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該方法包含有:藉由一備用池來管理複數個備用區塊,其中該複數個區塊包含有該複數個備用區塊;自該備用池提取一第一區塊以作為一主機資料區塊,並且對該主機資料區塊進行一組第一後續操作,其中該主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自該第一區塊從該備用池被提取以作為該主機資料區塊開始,該主機資料區塊的序號分配對應於完全地編程該主機資料區塊的一時序,以供指示複數個資料區塊之中該主機資料區塊的一順序(rank)來作為非預期斷電恢復中進一步的使用,其中該複數個區塊包含有該複數個資料區塊;以及自該備用池提取一第二區塊以作為一垃圾回收目的地區塊(destination block),並且對該垃圾回收目的地區塊進行一組第二後續操作,其中該垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自該第二區塊從該備用池被提取以作為該垃圾回收目的地區塊開始,該垃圾回收目的地區塊的序號分配對應於開始利用該垃圾回收目的地區塊的一時序,以供指示該複數個資料區塊之中該垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用;其中該組第一後續操作包含有:對該主機資料區塊進行編程; 判斷該主機資料區塊是否為滿;因應該主機資料區塊為滿,取得一第一區塊序號並將該第一區塊序號分配為該主機資料區塊的一序號;以及將該主機資料區塊加入至一區塊連結,其中該區塊連結指示該複數個資料區塊的次序。
- 如申請專利範圍第1項所述之方法,其中該組第二後續操作包含有:取得一第二區塊序號並將該第二區塊序號分配為該垃圾回收目的地區塊的一序號;對該垃圾回收目的地區塊進行編程;判斷該垃圾回收目的地區塊是否為滿;以及因應該垃圾回收目的地區塊為滿,將該垃圾回收目的地區塊加入至一區塊連結,其中該區塊連結指示該複數個資料區塊的次序。
- 如申請專利範圍第1項所述之方法,其中自該第一區塊從該備用池被提取以作為該主機資料區塊開始,在發生該主機資料區塊被完全地編程之後,一第一區塊序號隨即被分配為該主機資料區塊的一序號;以及在該第二區塊從該備用池被提取以作為該垃圾回收目的地區塊之後,一第二區塊序號隨即被分配為該垃圾回收目的地區塊的一序號。
- 如申請專利範圍第1項所述之方法,另包含有:在一非預期斷電事件之後,至少根據該主機資料區塊與該垃圾回收目的地區塊之各自的序號來進行該非預期斷電恢復。
- 如申請專利範圍第4項所述之方法,其中至少根據該主機資料區塊與該垃圾回收目的地區塊之該各自的序號來進行該非預期斷電恢復,以防止於該非預期斷電恢復的期間發生任一錯誤操作。
- 如申請專利範圍第1項所述之方法,其中該主機資料區塊被擇取以作為該垃圾回收程序的該垃圾回收來源區塊。
- 一種記憶體裝置,包含有:一非揮發性記憶體,用以儲存資訊,其中該非揮發性記憶體包含有至少一非揮發性記憶體元件,以及該至少一非揮發性記憶體元件包含有複數個區塊;以及一控制器,耦接於該非揮發性記憶體,並且用以控制該記憶體裝置的操作,其中該控制器包含有:一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置透過該控制器存取該非揮發性記憶體;其中:該控制器藉由一備用池來管理複數個備用區塊,其中該複數個區塊包含有該複數個備用區塊;該控制器自該備用池提取一第一區塊以作為一主機資料區塊,並且對該主機資料區塊進行一組第一後續操作,其中該主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自該第一區塊從該備用池被提取以作為該主機資料區塊開始,該主機資料區塊的序號分配對應於完全地編程該主機資料區塊的一時序,以供指示 複數個資料區塊之中該主機資料區塊的一順序(rank)來作為非預期斷電恢復中進一步的使用,其中該複數個區塊包含有該複數個資料區塊;以及該控制器自該備用池提取一第二區塊以作為一垃圾回收目的地區塊(destination block),並且對該垃圾回收目的地區塊進行一組第二後續操作,其中該垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自該第二區塊從該備用池被提取以作為該垃圾回收目的地區塊開始,該垃圾回收目的地區塊的序號分配對應於開始利用該垃圾回收目的地區塊的一時序,以供指示該複數個資料區塊之中該垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用;其中該組第一後續操作包含有:對該主機資料區塊進行編程;判斷該主機資料區塊是否為滿;因應該主機資料區塊為滿,取得一第一區塊序號並將該第一區塊序號分配為該主機資料區塊的一序號;以及將該主機資料區塊加入至一區塊連結,其中該區塊連結指示該複數個資料區塊的次序。
- 一種電子裝置,其包含有申請專利範圍第8項所述之記憶體裝置,並且另包含有:該主機裝置,耦接於該記憶體裝置,其中該主機裝置包含有:至少一處理器,用以控制該主機裝置的操作;以及一電源供應電路,耦接於該至少一處理器,並且用以提供電源至該至少 一處理器以及該記憶體裝置;其中該記憶體裝置提供儲存空間給該主機裝置。
- 一種記憶體裝置的控制器,該記憶體裝置包含有該控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該至少一非揮發性記憶體元件包含有複數個區塊,該控制器包含有:一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置透過該控制器存取該非揮發性記憶體;其中:該控制器藉由一備用池來管理複數個備用區塊,其中該複數個區塊包含有該複數個備用區塊;該控制器自該備用池提取一第一區塊以作為一主機資料區塊,並且對該主機資料區塊進行一組第一後續操作,其中該主機資料區塊係用以自一主機裝置接收資料,以及針對該組第一後續操作,自該第一區塊從該備用池被提取以作為該主機資料區塊開始,該主機資料區塊的序號分配對應於完全地編程該主機資料區塊的一時序,以供指示複數個資料區塊之中該主機資料區塊的一順序(rank)來作為非預期斷電恢復中進一步的使用,其中該複數個區塊包含有該複數個資料區塊;以及該控制器自該備用池提取一第二區塊以作為一垃圾回收目的地區塊(destination block),並且對該垃圾回收目的地區塊進行一組第二後續操作,其中該垃圾回收目的地區塊係用以於一垃圾回收程序期間自一垃圾回收來源區塊接收資料,以及針對該組第二後續操作,自該第二區塊從該備用池被提取以作為該垃圾回收目的地區塊開始,該垃圾回收目的地區塊的序號分配對應於開始利用該垃圾回收目的地區塊的 一時序,以供指示該複數個資料區塊之中該垃圾回收目的地區塊的一順序來作為非預期斷電恢復中進一步的使用;其中該組第一後續操作包含有:對該主機資料區塊進行編程;判斷該主機資料區塊是否為滿;因應該主機資料區塊為滿,取得一第一區塊序號並將該第一區塊序號分配為該主機資料區塊的一序號;以及將該主機資料區塊加入至一區塊連結,其中該區塊連結指示該複數個資料區塊的次序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/691,137 US11899977B2 (en) | 2022-03-10 | 2022-03-10 | Method and apparatus for performing access management of memory device with aid of serial number assignment timing control |
US17/691,137 | 2022-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202336594A TW202336594A (zh) | 2023-09-16 |
TWI831623B true TWI831623B (zh) | 2024-02-01 |
Family
ID=87917590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112106580A TWI831623B (zh) | 2022-03-10 | 2023-02-23 | 借助序號分配時序控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11899977B2 (zh) |
CN (1) | CN116741239A (zh) |
TW (1) | TWI831623B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
JP2017162067A (ja) * | 2016-03-08 | 2017-09-14 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TW201915746A (zh) * | 2017-09-21 | 2019-04-16 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制非揮發性記憶體之控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830098B1 (en) * | 2016-07-11 | 2017-11-28 | Silicon Motion, Inc. | Method of wear leveling for data storage device |
CN109117383B (zh) * | 2017-06-25 | 2022-09-20 | 慧荣科技股份有限公司 | 管理闪存模块的方法和闪存控制器 |
-
2022
- 2022-03-10 US US17/691,137 patent/US11899977B2/en active Active
-
2023
- 2023-02-23 TW TW112106580A patent/TWI831623B/zh active
- 2023-03-10 CN CN202310228404.5A patent/CN116741239A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
JP2017162067A (ja) * | 2016-03-08 | 2017-09-14 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TW201915746A (zh) * | 2017-09-21 | 2019-04-16 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制非揮發性記憶體之控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US11899977B2 (en) | 2024-02-13 |
TW202336594A (zh) | 2023-09-16 |
CN116741239A (zh) | 2023-09-12 |
US20230289097A1 (en) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI643066B (zh) | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
US8812776B2 (en) | Data writing method, and memory controller and memory storage device using the same | |
TW201945934A (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
TWI446349B (zh) | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN116431059A (zh) | 存储器装置的存取控制方法、存储器装置以及控制器 | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US7234036B1 (en) | Method and apparatus for resolving physical blocks associated with a common logical block | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
TWI831623B (zh) | 借助序號分配時序控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 | |
CN111767007A (zh) | 用于闪存的写入管理机制 | |
US11809314B2 (en) | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management | |
TW202125206A (zh) | 記憶體管理方法與記憶體裝置 | |
TWI852615B (zh) | 藉助於專用資訊控制來進行記憶體裝置的垃圾收集管理之方法、記憶體控制器、記憶體裝置以及電子裝置 | |
TW202013183A (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
TWI771854B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 | |
TW202429296A (zh) | 借助自動參數設置來進行預定通訊架構中的記憶體裝置的存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
CN118312089A (zh) | 存储器装置存取管理方法、存储器控制器、存储器装置以及电子装置 | |
TW201532053A (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 |