TWI805445B - 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 - Google Patents
借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 Download PDFInfo
- Publication number
- TWI805445B TWI805445B TW111126401A TW111126401A TWI805445B TW I805445 B TWI805445 B TW I805445B TW 111126401 A TW111126401 A TW 111126401A TW 111126401 A TW111126401 A TW 111126401A TW I805445 B TWI805445 B TW I805445B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- valid data
- physical
- physical address
- volatile memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013507 mapping Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 213
- 230000008569 process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 10
- 102220588437 Keratin, type I cytoskeletal 18_S18A_mutation Human genes 0.000 description 8
- 102220588438 Keratin, type I cytoskeletal 18_S15A_mutation Human genes 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 102220492605 Numb-like protein_S17A_mutation Human genes 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 102220144835 rs148716754 Human genes 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101001118566 Homo sapiens 40S ribosomal protein S15a Proteins 0.000 description 2
- 102220470411 Thymosin beta-4_S16A_mutation Human genes 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000463 material 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
- 230000001568 sexual effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/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
- 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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
借助額外實體位址資訊來進行記憶體裝置的存取控制的方法包含有:於垃圾回收程序期間,自一來源區塊讀取有效資料,並且將來源區塊之有效資料寫入至一目的地區塊;更新至少一邏輯至實體位址映射表;自一主機裝置接收一第一讀取要求,其中第一讀取要求指示在一第一邏輯位址讀取;因應第一讀取要求,根據與第一邏輯位址相關聯的一第二實體位址來讀取目的地區塊之有效資料;自主機裝置接收一第二讀取要求,其中第二讀取要求指示在第一邏輯位址讀取;以及因應第二讀取要求,根據與第一邏輯位址相關聯的一第一實體位址來讀取來源區塊之有效資料。
Description
本發明係有關於記憶體控制,且尤指一種借助額外實體位址資訊(例如有關至少一邏輯至實體(logical-to-physical,L2P)位址映射表內的一邏輯位址的一額外實體位址)來對一記憶體裝置進行存取控制的方法以及相關裝置(例如記憶體裝置或其中的記憶體控制器)。
記憶體技術的發展使得各種不同的可攜式或不可攜式記憶體裝置(例如分別符合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)的資訊,從理論上來說,多層細胞快閃記憶體的記錄密度可以達到至少兩倍於單層細胞快閃記憶體的記錄密度,因此是反及閘快閃記憶體製造商的首選。
多層細胞快閃記憶體的低成本和大容量意味著它比單層細胞快閃記憶體更可應用於記憶體裝置中,然而,多層細胞快閃記憶體有不穩定的問題,為了確保對記憶體裝置中的快閃記憶體的存取控制滿足要求的規範,快閃記憶體的控制器可以具備某些管理機制以適當地管理資料存取。
然而,即使有著上述管理機制的記憶體裝置可能仍具有某些缺陷,舉例來說,具有多個快閃記憶體裸晶(die)的高容量架構可能已經透過多個通道進行管理,以嘗試減少讀取衝突(read collision)的影響,當需要進行一隨機讀取測試以取得一測試結果其符合一企業級要求時,對於具有大量快閃記憶體晶瑱的高容量架構來說,讀取衝突的問題可能變得更加嚴重。
因此,需要一種新穎的方法和相關架構,以在不引入副作用的情況下或以不太可能引入副作用的方式來解決相關技術的問題。
本發明的目的之一在於提供一種借助額外實體位址資訊來進行一記
憶體裝置的存取控制的方法以及相關裝置(例如記憶體裝置或其中的記憶體控制器),以解決上述問題。
本發明的至少一實施例提供了一種借助額外實體位址資訊來進行記憶體裝置的存取控制的方法,其中該方法係適用於記憶體裝置的一控制器,記憶體裝置可包含有控制器以及一非揮發性記憶體,以及非揮發性記憶體可包含有複數個非揮發性記憶體元件。該方法可包含有:於一垃圾回收程序期間,自一來源區塊讀取有效資料,並且將來源區塊之有效資料寫入至一目的地區塊,以作為目的地區塊之有效資料,其中來源區塊以及目的地區塊分別代表在複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;更新至少一邏輯至實體位址映射表,以使得至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與第一邏輯位址相關聯的一第二實體位址,其中第一實體位址指示來源區塊之有效資料在第一實體區塊中的儲存位置,以及第二實體位址指示目的地區塊之有效資料在第二實體區塊中的儲存位置;自一主機裝置接收一第一讀取要求,其中第一讀取要求指示在第一邏輯位址讀取;因應第一讀取要求,根據與第一邏輯位址相關聯的第二實體位址來讀取目的地區塊之有效資料;自主機裝置接收一第二讀取要求,其中第二讀取要求指示在第一邏輯位址讀取;以及因應第二讀取要求,根據與第一邏輯位址相關聯的第一實體位址來讀取來源區塊之有效資料。
除了上述方法之外,本發明亦提供了一種記憶體裝置,並且該記憶體裝置可包含有一非揮發性記憶體以及一控制器。非揮發性記憶體係用以儲存資訊,其中非揮發性記憶體可包含有複數個非揮發性記憶體元件。控制器係耦
接於非揮發性記憶體,並且控制器係用以控制記憶體裝置的操作,此外,控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置特過控制器存取非揮發性記憶體。舉例來說,於一垃圾回收程序期間,控制器自一來源區塊讀取有效資料,並且將來源區塊之有效資料寫入至一目的地區塊,以作為目的地區塊之有效資料,其中來源區塊以及目的地區塊分別代表在複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;控制器更新至少一邏輯至實體位址映射表,以使得至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與第一邏輯位址相關聯的一第二實體位址,其中第一實體位址指示來源區塊之有效資料在第一實體區塊中的儲存位置,以及第二實體位址指示目的地區塊之有效資料在第二實體區塊中的儲存位置;控制器自一主機裝置接收一第一讀取要求,其中第一讀取要求指示在第一邏輯位址讀取;因應第一讀取要求,控制器根據與第一邏輯位址相關聯的第二實體位址來讀取目的地區塊之有效資料;控制器自主機裝置接收一第二讀取要求,其中第二讀取要求指示在第一邏輯位址讀取;以及因應第二讀取要求,控制器根據與第一邏輯位址相關聯的第一實體位址來讀取來源區塊之有效資料。
除了上述方法外,本發明亦提供了一種記憶體裝置的控制器,其中記憶體裝置包含有該控制器以及一非揮發性記憶體,並且非揮發性記憶體可包含有複數個非揮發性記憶體元件。此外,控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置透過控制器來存取非揮發性記憶體。舉例來說,於一垃圾回收程序期間,控制器自一來源區塊讀取有效資料,並且將來源區塊之有效資料寫入至一目的
地區塊,以作為目的地區塊之有效資料,其中來源區塊以及目的地區塊分別代表在複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;控制器更新至少一邏輯至實體位址映射表,以使得至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與第一邏輯位址相關聯的一第二實體位址,其中第一實體位址指示來源區塊之有效資料在第一實體區塊中的儲存位置,以及第二實體位址指示目的地區塊之有效資料在第二實體區塊中的儲存位置;控制器自一主機裝置接收一第一讀取要求,其中第一讀取要求指示在第一邏輯位址讀取;因應第一讀取要求,控制器根據與第一邏輯位址相關聯的第二實體位址來讀取目的地區塊之有效資料;控制器自主機裝置接收一第二讀取要求,其中第二讀取要求指示在第一邏輯位址讀取;以及因應第二讀取要求,控制器根據與第一邏輯位址相關聯的第一實體位址來讀取來源區塊之有效資料。
本發明所提供之方法以及相關裝置可確保記憶體裝置在不同情況下適當地被操作,其中上述裝置的例子包含有控制器或記憶體裝置等等,此外,藉由利用額外實體位址資訊,本發明所提供之方法以及相關裝置可確保自記憶裝置至主機裝置的及時回應,並且因此可改善整體性能。
10:電子裝置
50:主機裝置
52:處理器
54:電源供應電路
100:記憶體裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:隨機存取記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1~122-N:非揮發性記憶體元件
116T,122T:表
TBL,TBL’,TBL(0),TBL(1):邏輯至實體表
S10,S11,S12,S13,S14,S15A,S16A,S17A,S18A,S15B,S16B,S17B,S18B,S19B,S16C:步驟
LPA:邏輯頁面位址
BLK#:區塊編號
PG#:頁面編號
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2A圖為依據本發明一實施例之借助額外實體位址資訊來進行記憶體裝置(例如第1圖所示之記憶體裝置)的存取控制之方法的流程圖的第一部分。
第2B圖為借助額外實體位址資訊來進行記憶體裝置的存取控制之方法的流程圖的第二部分。
第3圖為依據本發明一實施例之第2A圖以及第2B圖所示之方法的存取控制方案(繪示於第3圖的下半部分),其中為了更好的理解,另一個存取控制方案繪示於第3圖的上半部分。
第4圖為依據本發明一實施例之第2A圖以及第2B圖所示之方法的邏輯至實體位址映射控制方案。
第5圖為依據本發明一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。
第6圖為依據本發明另一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。
第7圖為依據本發明再另一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。
第8圖為依據本發明一實施例之於隨機讀取測試期間針對及時完成的讀取命令的數量與讀取命令的總數量之比值的改善。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有可以被統稱為處理器52的至少一處理器(例如一個或多個處理器),且另可包含有耦接於處理器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 MMC,eMMC)規範的不同嵌入式記憶體裝置。根據本實施例,記憶體裝置100可包含有一控制器(例如記憶體控制器110),並且可另包含有非揮發性(Non-Volatile,NV)記憶體120(為簡潔起見,於第1圖中標記為“NV記憶體”),其中控制器係用以控制記憶體裝置100的操作並存取非揮發性記憶體120,以及非揮發性記憶體120係用以儲存資訊。非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件;為簡潔起見,於第1圖中標記為“NV記憶體元件”)),例如複數個非揮發性記憶體元件122-1、122-2、...以及122-N,其中“N”可以代表大於1的正整數,舉例來說,非揮發性記憶體120可以是快閃記憶體,並且複數個非揮發性記憶體元件122-1、122-2、...以及122-N可以是複數個快閃記憶體晶片或複數個快閃記憶體裸晶(die),但是本發明不限於此。
如第1圖所示,記憶體控制器100可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory,ROM)112M;為簡潔起見,於第1圖中標記為“ROM”)、控制邏輯電路114、隨機存取記憶體(random access memory,RAM)116(為簡潔起見,於第1圖中標記為“RAM”)以及傳輸介面電路118,其中上述元件可以透過一匯流排彼此耦接。隨機存取記憶體116係藉由靜態隨機存取記憶體(static random access memory,SRAM)來實現,但是本發明不限於此,隨機存取記憶體116可用以提供內部儲存空間給記憶體控器110,舉例來說,隨機存取記憶體116可以作為一緩衝器記憶體來緩衝資料,此外,本
實施例的唯讀記憶體112M係用以儲存程式碼112C,以及微處理器112係用以執行程式碼112C來控制對非揮發性記憶體120的存取。要注意的是,在某些實施例中,在控制邏輯電路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 block),例如複數個資料區塊可以是儲存有效資料的複數個有效區塊,而複數個備用區塊可以是複數個空白區塊(諸如被抹除的區塊)以及複數個儲存有效資料及/或無效資料的無效區塊(諸如可以被抹除但還沒抹除的區塊)。記憶體控制器110可對複數個資料區塊以及複數個備用區塊進行區塊管理,舉例來說,記憶體控制器110可自複數個空白區塊選擇一空白區塊,並且改變此空白區塊以作為複數個資料區塊中的一新資料區塊,例如用以進行資料寫入的一新資料區塊。因應用以在某個邏輯位址寫入資料的一寫入要求,記憶體控制器110可在非揮發性記憶體120內的一第一位置(例如有關該邏輯位址的一實體位址)寫入資料。因應在同一個邏輯位址寫入資料的另一寫入要求,記憶體控制器110可在非揮發性記憶體120內的一第二位置(例如有關該邏輯位址的另一實體位址)寫入資料,並且判斷在非揮發性記憶體120內之第一位置的資料成為無效資料。此外,記憶體控制器110可以觸發一垃圾回收(garbage collection)程序,以丟棄複數個資料區塊內一個或多個資料區塊中的無效資料,以及使得在該一個或多個資料區塊中的有效資料被儲存至其它地方,尤其是,
自複數個空白區塊選擇一個或多個空白區塊並且變更該一個或多個空白區塊以作為複數個資料區塊的一個或多個新資料區塊,自該一個或多個資料區塊複製有效資料至該一個或多個新資料區塊,以及變更該一個或多個資料區塊以作為複數個備用區塊的一個或多個新備用區塊,以藉由抹除該一個或多個新備用區塊來準備更多的空白區塊,以供更進一步地儲存新資料。
記憶體控制器110可針對至少一表(例如表116T以及表122T)中的區塊管理來記錄、維持及/或更新區塊管理資訊,其中表116T可包含有表122T之至少一部分(例如一部分或全部)的一暫時版本。舉例來說,表122T可包含有至少一邏輯至實體(logical-to-physical,L2P)位址映射表(例如一個或多個邏輯至實體位址映射表),其可被統稱為邏輯至實體表TBL,以記錄邏輯位址以及實體位址之間的映射關係。表116T可包含有邏輯至實體表TBL之至少一子表(sub-table;例如一個或多個子表)的一暫時版本,其中上述至少一子表的該暫時版本可以被統稱為邏輯至實體表TBL’,但是本發明不限於此,舉例來說,表122T可另包含有至少一備用區塊管理表(例如一個或多個備用區塊管理表)以管理複數個備用區塊,例如用來分別管理複數個空白區塊以及複數個無效區塊的一空白區塊管理表以及一無效區塊管理表,以及表116T可包含有上述至少一備用區塊管理表的一暫時版本,例如空白區塊管理表的一暫時版本以及無效區塊管理表的一暫時版本。
記憶體控制器110可備份表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可以被繪示成分別儲存在兩個或多個非揮發性記憶體元件中的多個部分。
FIG.2A以及FIG.2B分別為依據本發明一實施例之借助額外實體位址資訊來進行記憶體裝置(例如第1圖所示之記憶體裝置100)之存取控制方法的流程圖的第一部分以及第二部分,其中節點A、B以及C可以指示FIG.2A以及FIG.2B之各自的工作流程之間的連結。該方法可適用於第1圖所示之架構(例如電子裝置10、記憶體裝置100、記憶體控制器110以及微處理器112),並且可以被記憶體裝置100的記憶體控制器110(例如微處理器112)所執行。
在步驟S10中,記憶體控制器110(例如微處理器112)可判斷是否要觸發垃圾回收程序(為簡潔起見,標記為“GC”),如果是,進入步驟S11;如果否,進入步驟S14。
舉例來說,記憶體控制器110(例如微處理器112)可根據複數個備用區塊之一備用區塊計數是否小於一預定備用區塊計數門檻來判斷是否要觸發垃圾回收程序,尤其是,選擇性地進行以下操作的其一:(1)倘若備用區塊計數係小於預定備用區塊計數門檻,則觸發垃圾回收程序;以及(2)倘若備用區塊計數係大於或等於預定備用區塊計數門檻,則避免觸發垃圾回
收程序;但是本發明不限於此。在另一例子中,記憶體控制器110(例如微處理器112)可根據複數個無效區塊的一無效區塊計數是否小於一預定無效區塊計數門檻來判斷是否要觸發垃圾回收程序,尤其是,選擇性地進行以下操作的其一:(1)倘若無效區塊計數係小於預定無效區塊計數門檻,則觸發垃圾回收程序;以及(2)倘若無效區塊計數係大於或等於無效備用區塊計數門檻,則避免觸發垃圾回收程序。
在步驟S11中,於垃圾回收程序期間,記憶體控制器110(例如微處理器112)可以自一來源區塊(例如該一個或多個資料區塊之中的任一個資料區塊)讀取有效資料,並且將該來源區塊的有效資料,例如儲存在該來源區塊的有效資料(諸如自該來源區塊讀取的有效資料),寫入至一目的地區塊(例如該一個或多個新資料區塊之中的任一個新資料區塊),以作為該目的地區塊的有效資料,例如儲存在該目的地區塊的有效資料(諸如剛寫入至該目的地區塊的有效資料),其中該來源區塊以及該目的地區塊可分別代表複數個非揮發性記憶體元件122-1、122-2、...以及122-N的一第一非揮發性記憶體元件122-n1內的一第一實體區塊以及複數個非揮發性記憶體元件122-1、122-2、...以及122-N的一第二非揮發性記憶體元件122-n2內的一第二實體區塊。舉例來說,符號“n1”以及“n2”可以代表區間[1,N]中的任兩個不同整數,但是本發明不限於此。在某些例子中,可以於複數個非揮發性記憶體元件122-1、122-2、...以及122-N之中的第一非揮發性記憶體元件122-n1以及第二非揮發性記憶體元件122-n2的選擇上增加額外限制。
在步驟S12中,記憶體控制器110(例如微處理器112)可以更新上述至少一邏輯至實體位址映射表,例如邏輯至實體表TBL以及邏輯至實體表TBL’的至少其一(諸如邏輯至實體表TBL以及邏輯至實體表TBL’),以使得上述至少一邏輯至實體位址映射表包含有與一第一邏輯位址LAdd1(i)相關聯的一第一實體位址PAdd1(i)以及與第一邏輯位址LAdd1(i)相關聯的一第二實體位址PAdd2(i),其中符號“i”可代表包含有步驟S11~S13之迴圈的一迴圈索引,以指示針對該迴圈之迭代(iteration;例如第i次迭代),該組位址{LAdd1(i),PAdd1(i),PAdd2(i)}可以跟著變化。
為了更好的理解,第一實體位址PADD1(i)可以指示該來源區塊之有效資料儲存在該第一實體區塊內的位置,舉例來說,第一非揮發性記憶體元件122-n1內的一來源位置(諸如指示第一實體區塊中之一第一實體頁面的實體位址),此外,第二實體位址PAdd2(i)可指示該目的地區塊之有效資料儲存在該第二實體區塊內的位置,舉例來說,第二非揮發性記憶體元件122-n2內的一目的地位置(諸如指示第二實體區塊中之一第二實體頁面的實體位址)。
在步驟S13中,記憶體控制器110(例如微處理器112)可判斷垃圾回收程序是否完成,如果是,進入步驟S14;如果否,回到步驟S11。
在步驟S14中,記憶體控制器110(例如微處理器112)可判斷是否自主機裝置50接收到一要求(例如複數個主機命令的其一);如果是,進入步驟S15A;如果否,回到步驟S14。
在步驟S15A中,記憶體控制器110(例如微處理器112)可判斷在步
驟S14中所提及的該要求(例如剛自主機裝置50接收到的要求)是否為一寫入要求;如果是,進入步驟S16;如果否,進入步驟S15B。
在步驟S16A中,因應在步驟S15A所提及的該寫入要求,記憶體控制器110(例如微處理器112)可以將資料寫入至非揮發性記憶體120,並且對應地更新上述至少一邏輯至實體映射表。
在步驟S17A中,基於至少一預定規則,記憶體控制器110(例如微處理器112)可判斷可再利用備用區塊(reusable spare block)的數量(例如被抹除的備用區塊之數量)是否不足夠;如果是,進入步驟S18A;如果否,回到步驟S10。
舉例來說,記憶體控制器110(例如微處理器112)可根據複數個空白區塊之一空白區塊計數是否小於一預定空白區塊計數門檻來判斷可再利用備用區塊的數量(例如被抹除的備用區塊之數量)是否不足夠,尤其是,選擇性地進行以下操作的其一:(1)倘若空白區塊計數係小於預定空白區塊計數門檻,則判斷可取得的空白區塊之數量不足夠;以及(2)倘若空白區塊計數係大於或等於預定空白區塊計數門檻,則判斷可取得的空白區塊之數量足夠;但是本發明不限於此。
在步驟S18A中,記憶體控制器110(例如微處理器112)可抹除垃圾回收程序的至少一個來源區塊(例如一個或多個來源區塊),諸如步驟S11所提及的該來源區塊,並且對應地更新上述至少一邏輯至實體位址映射表,舉例來
說,記憶體控制器110(例如微處理器112)可更新空白區塊管理表來指示剛被抹除的上述至少一來源區塊被加入以作為複數個空白區塊的至少一新空白區塊,並且更新無效區塊管理表來指示剛被抹除的上述至少一來源區塊已自複數個無效區塊中被移除(remove)。
在步驟S15B中,記憶體控制器110(例如微處理器112)可以判斷步驟S14中所提及的該要求(例如剛自主機裝置50接收到的要求)是否為一讀取要求,如果是,進入步驟S16B;如果否,進入步驟S16C。
在步驟S16B中,記憶體控制器110(例如微處理器112)可以判斷複數個非揮發性記憶體元件122-1、122-2、...以及122-N之中的一待讀取目標非揮發性記憶體元件(例如包含有目的地區塊的第二非揮發性記憶體元件122-n2)是否非繁忙(non-busy);如果是,進入步驟S17B;如果否,進入步驟S18B。
舉例來說,步驟S15B所提及的讀取要求可攜帶一目標邏輯位址,其中該目標邏輯位址可指示在目標邏輯位址進行讀取。記憶體控制器110(例如微處理器112)可自上述至少一邏輯至實體位址映射表取得與目標邏輯位址相關聯的一最新實體位址,為了更好的理解,該最新實體位址可能指向垃圾回收程序的任一個目的地區塊,並且該待讀取目標非揮發性記憶體元件可以代表包含有任一個目的地區塊的非揮發性記憶體元件,但是本發明不限於此。
在步驟S17B中,記憶體控制器110(例如微處理器112)可以在該最新實體位址進行資料讀取,尤其是,對於該最新實體位址指向垃圾回收程序之任一個目的地區塊的案例,根據與第一邏輯位址LAdd1(j)有關的第二實體位址
PAdd2(j)來自任一個目的地區塊(例如步驟S11所提及的目的地區塊)讀取該任一個目的地區塊的有效資料,其中符號”j”可以代表包含有步驟S11~S13之迴圈的迴圈索引i的一可能數值i0,以指示該組位址{LAdd1(j),PAdd1(j),PAdd2(j)}係分別對應於此迴圈之所有迭代的所有位址(例如多組位址{{LAdd1(i),PAdd1(i),PAdd2(i)}|i=0,1,...})之中對應於此迴圈之第i0次迴圈的某組位址{LAdd1(i0),PAdd1(i0),PAdd2(i0)}。
為了更好的理解,對於該最新實體位址指向任一個目的地區塊之案例來說,其讀取操作可以作為步驟S17B中所進行之資料讀取的例子,但是本發明不限於此。對於該最新實體位址不是指向任一個目的地區塊之案例來說,記憶體控制器110(例如微處理器112)可以在該最新實體位址進行資料讀取,舉例來說,自該最新實體位址所指示的一目標實體區塊(例如其中的一個或多個的實體頁面)讀取資料。
在步驟S18B中,記憶體控制器110(例如微處理器112)可判斷不同於該最新實體位址(例如與第一邏輯位址LAdd1(j)相關的第二實體位址PAdd2(j),諸如第二實體位址PAdd2(i0))之與該目標邏輯位址相關聯的一額外實體位址(例如與第一邏輯位址LAdd1(j)相關聯的第一實體位址PAdd1(j),諸如第一實體位址PAdd1(i0))是否存在於上述至少一邏輯至實體位址映射表中,如果是,進入步驟S19B;如果否,回到步驟S17B。
對於該最新實體位址指向任一個目的地區塊的案例來說,例如,只要在該額外實體位址(例如第一實體位址PAdd1(j),諸如第一實體位址PAdd1(i0))的有效資料還沒有因為任一個抹除操作(例如步驟S18A的抹除操作)而被抹除,
則記憶體控制器110(例如微處理器112)可以保留位在上述至少一邏輯至實體位址映射表中的該額外實體位址,其導致該額外實體位址的存在,並且因此步驟S18B的判斷結果“是”使得進入步驟S19B。又例如,在已經進行步驟S18A的操作而使得在該額外實體位址(例如第一實體位址PAdd1(j),諸如第一實體位址PAdd1(i0))的有效資料被抹除的情況下,記憶體控制器110(例如微處理器112)可能已更新上述至少一邏輯至實體位址映射表,以自上述至少一邏輯至實體位址映射表移除該額外實體位址,其導致該額外實體位址的不存在,並且因此步驟S18B的判斷結果“否”使得回到步驟S17B,此外,對於該最新實體位址不是指向任一個目的地區塊的案例來說,由於不會有額外實體位址存在,步驟S18B的判斷結果“否”使得回到步驟S17B。
在步驟S19B中,記憶體控制器110(例如微處理器112)可以根據與第一邏輯位址LAdd1(j)相關聯的第一實體位址PAdd1(j)來讀取某一個來源區塊(例如步驟S11中所提及的該來源區塊)的有效資料。
舉例來說,在第一邏輯位址LAdd1(j)係等於第一邏輯位址LAdd1(i0)的情況中,任一個目的地區塊可以代表在包含有步驟S11~S13之迴圈的第i0次迭代中之步驟S11中所提及的目的地區塊,尤其是,在步驟S17B所提及的與第一邏輯位址LAdd1(j)相關聯的第二實體位址PAdd2(j)可以代表在該迴圈的第i0次迭代中之步驟S12所提及的與第一邏輯位址LAdd1(i0)相關聯的第二實體位址PAdd2(j),諸如與第一邏輯位址LAdd1(i0)相關聯的第二實體位址PAdd2(i0),並且在步驟S19B中所提及的與第一邏輯位址LAdd1(j)相關聯的第一實體位址PAdd1(j)可以代表在該迴圈之第i0次迭代中之步驟S12所提及的與第一邏輯位址LAdd1(i0)相關聯的第一實體位址PAdd1(i),諸如與第一邏輯位址LAdd1(i0)相關
聯的第一實體位址PAdd1(i0)。
在步驟S16C中,因應步驟S14所提及的要求(例如剛自主機裝置50接收的要求),記憶體控制器110(例如微處理器112)可進行其它處理。
由於執行垃圾回收程序(尤指包含有步驟S11~S13的迴圈)的緣故,記憶體控制器110(例如微處理器112)可藉由記錄在上述至少一邏輯至實體位址映射表中的最新實體位址(例如第二實體位址PAdd2(j),諸如第二實體位址PAdd2(i0))以及額外實體位址(例如第一實體位址PAdd1(j),諸如第一實體位址PAdd1(i0)),使得步驟S19B所提及的來源區塊與任一個目的地區塊相關,因此步驟S19B所提及的來源區塊可以稱為任一個目的地區塊的相關來源區塊。
如第2A圖以及第2B圖所示,記憶體控制器110(例如微處理器112)可以借助額外實體位址資訊來進行記憶體裝置的存取控制,尤其是,進行以下操作:(1)自主機裝置50接收一第一讀取要求,其中第一讀取要求指示在第一邏輯位址LAdd1(j)讀取,並且第一讀取要求包含有複數個主機命令之中的一第一讀取命令;(2)因應第一讀取要求,如步驟S17B中所提及,根據與第一邏輯位址LAdd1(j)相關聯的第二實體位址PAdd2(j)來自任一個目的地區塊(例如步驟S11中所提及的目的地區塊)讀取任一個目的地區塊的有效資料;(3)自主機裝置50接收一第二讀取要求,其中第二讀取要求指示在第一邏輯位址LAdd1(j)讀取,以及第二讀取要求包含有複數個主機命令之中的一第二讀取命令;以及
(4)因應第二讀取要求,如步驟S19B中所提及,根據與第一邏輯位址LAdd1(j)相關聯的第一實體位址來自相關來源區塊(例如步驟S11中所提及的來源區塊)讀取相關來源區塊的有效資料;其中任一個目的地區塊的有效資料以及相關來源區塊的有效資料均可被使用以作為在第一邏輯位址LAdd1(j)的有效資料。
舉例來說,記憶體控制器110(例如微處理器112)可以在大部分時間維持空白區塊計數遠小於無效區塊計數,因此,典型地來說,在因應第二讀取要求而完成讀取相關來源區塊(例如步驟S11中所提及的來源區塊)的有效資料之後,來源區塊的抹除可以發生,而不妨礙相關來源區塊的資料讀取。因此,記憶體控制器110可以將任一個目的地區塊的任一個有效資料以及相關來源區塊的有效資料回傳至主機裝置50,以確保自記憶體裝置100至主機裝置50的即時回應(real-time response),以及因此可以改善整體性能,舉例來說,當滿足非繁忙情況時(例如步驟S16B的判斷結果“是”),記憶體控制器110(例如微處理器112)可以先自任一個目的地區塊(例如步驟S11中所提及的目的地區塊)讀取有效資料,以取得在第一邏輯位址LAdd1(j)的有效資料,以及當非繁忙情況不被滿足時(例如步驟S16B的判斷結果“否”),可以自相關來源區塊(例如步驟S11中所提及的來源區塊)讀取有效資料,以取得在第一邏輯位址LAdd1(j)的有效資料,但是本發明不限於此。
為了更好的理解,該方法可以由第2A圖以及第2B圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第2A圖以及第2B圖所示之工作流程中增加、刪除或修改。舉例來說,在包含有步驟S11~S13之迴圈的每一個迭代中之步驟S12中的記憶體控制器110(例如微處理器
112)更新邏輯至實體表TBL以及邏輯至實體表TBL’的操作可以是不必要的,以及當在步驟S13中判斷垃圾回收程序完成時,在進入步驟S14之前,記憶體控制器110(例如微處理器112)可以根據邏輯至實體表TBL’的最新版本來更新邏輯至實體表TBL。
根據某些實施例,預定備用區塊計數門檻可以等於預定無效區塊計數門檻以及預定空白區塊計數門檻的總和,但是本發明不限於此,此外,針對記憶體控制器110所維持的表116T以及表122T,來源區塊可以被紀錄以作為無效區塊管理表上的無效區塊,以基於上述至少一預定規則來被抹除。
根據某些實施例,當非繁忙情況滿足時(例如步驟S16B的判斷結果“是”),記憶體控制器110(例如微處理器112)可以先自相關來源區塊(例如步驟S11中所提及的來源區塊)讀取有效資料,以取得在第一邏輯位址LAdd1(j)的有效資料,並且當非繁忙情況不被滿足時(例如步驟S16B的判斷結果“否”),可以自任一個目的地區塊(例如步驟S11中所提及的目的地區塊)讀取有效資料,以取得在第一邏輯位址LAdd1(j)的有效資料。
第3圖為依據本發明一實施例之第2A圖以及第2B圖所示之方法的存取控制方案(繪示於第3圖的下半部分),其中為了更好的理解,另一個存取控制方案則繪示於第3圖的上半部分。在第3圖上半部分所示之存取控制方案中,所有的備用區塊已經被抹除,並且因此所有的備用區塊是不具有資料的空白區塊,由於備用區塊中沒有具有有效資料的無效區塊,因此自任一個的備用區塊無法得有效資料。於上述所示之隨機讀取測試期間,當讀取相同邏輯位址之資料的兩個讀取要求幾乎在同時間被接收時,由於在儲存著此資料的非揮發性記
憶體元件離開其繁忙狀態之前,沒有其它方法自儲存著此資料的該非揮發性記憶體元件取得資料,因此需要等待該兩個讀取要求之中第一個接收到的要求完成。
在第3圖下半部分所示之存取控制方案中,上述複數個備用區塊之中一部分的備用區塊(例如大多數的備用區塊)還沒被抹除,因此分別為具有有效資料的無效區塊,由於該一部分的備用區塊中的每一個備用區塊是具有有效資料的無效區塊,因此當需要時,記憶體控制器110(例如微處理器112)可自該一部分的備用區塊取得有效資料。於上述隨機讀取測試期間,當讀取相同邏輯位址之資料的兩個讀取要求(例如分別指示在第一邏輯位址LAdd1(j)讀取的第一讀取要求以及第二讀取要求)幾乎在同時間被接收時,記憶體控制器110(例如微處理器112)可以根據上述至少一邏輯至實體位址映射表(例如邏輯至實體表TBL’)來自任一個目的地區塊(例如步驟S11中所提及的目的地區塊;諸如複數個資料區塊的其一)讀取有效資料,並且自相關來源區塊(例如步驟S11中所提及的來源區塊;諸如複數個無效區塊的其一)讀取有效資料,以因應第一讀取要求以及第二讀取要求來分別將在第一邏輯位址LAdd1(j)的有效資料回傳至主機裝置50,而無需等待該兩個讀取要求之中第一個接收到的要求(例如第一讀取要求)完成。
要注意的是,於上述的垃圾回收程序期間,在完成自來源區塊讀取有效資料以及將來源區塊的有效資料寫入至目的地區塊以作為目的地區塊的有效資料之後,記憶體控制器110(例如微處理器112)可以避免立即地抹除來源區塊,並且將來源區塊保持為複數個備用區塊的一備用區塊,而無需抹除它,以及將其中所有有效資料的相關實體位址保持為額外實體位址資訊,以使得來
源區塊成為具有可讀取之所有有效資料的無效區塊,並且當需要時以供讀取。此外,基於上述至少一預定規則,在完成自來源區塊讀取有效資料並且將來源區塊的有效資料寫入至目的地區塊以作為目的地區塊之有效資料之後,記憶體控制器110(例如微處理器112)可以抹除來源區塊,上述至少一預定規則可包含有因應空白區塊計數係小於預定空白區塊計數門檻來觸發抹除來源區塊,其中空白區塊計數可指示可用以進行編程/寫入之一個或多個備用區塊的數量。舉例來說,藉由設置預定空白區塊計數門檻為一個小的數值,諸如一預定值(例如1)其遠小於預定無效區塊計數門檻(例如10或10以上)或遠小於預定備用區塊計數門檻(例如11或11以上),記憶體控制器110(例如微處理器112)可在大部分時間維持空白區塊計數盡可能小,以保持更多的無效區塊以及其中的待讀取有效資料,而無需將無效區塊抹除,並且當需要時以供讀取。當預定空白區塊計數門檻被設置為小的數值(例如1)時,上述複數個空白區塊可以被至少一空白區塊取代以涵蓋單一空白區塊的案例,為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
第4圖為依據本發明一實施例之第2A圖以及第2B圖所示之方法的邏輯至實體位址映射控制方案。上述邏輯至實體表TBL的至少一子表(例如一個或多個子表)可包含有分別對應於多個邏輯區塊(logical blocks,LBLKs)#0、#1(為簡潔起見,分別標記為“LBLK#0”以及“LBLK#1”)等等的多個子表(例如分別對應於LBLK#0以及LBLK#1的LBLK#0邏輯至實體表TBL(0)以及LBLK#1邏輯至實體表TBL(1))。
如第4圖所示,對應於LBLK#0邏輯至實體表TBL(0)以及LBLK#1邏輯至實體表TBL(1)之中某個邏輯區塊的任一個表的索引(index)可以為一邏輯頁面
位址(logical page address,LPA;其用以指示此邏輯區塊中的一邏輯頁面),當一邏輯位址包含有一邏輯區塊位址(logical block address,LBA;其用以指示此邏輯區塊,例如包含有此邏輯頁面的邏輯區塊)以及邏輯頁面位址(其用以指示此邏輯頁面)時,記憶體控制器110(例如微處理器112)可根據邏輯至實體表TBL(例如其中的一子表,諸如對應於此邏輯區塊的任一個邏輯至實體表)來對此邏輯位址進行位址映射(address mapping),以取得與此邏輯位址相關聯的至少一實體位址(例如一個或多個實體位址)。舉例來說,在步驟S12的操作中,上述至少一實體位址可包含有與第一邏輯位址LAdd1(i)相關聯的第一實體位址PAdd1(i)以及與第一邏輯位址LAdd1(i)相關聯的第二實體位址PAdd2(i)。又例如,在步驟S17B以及步驟S19B的操作中,上述至少一實體位址可包含有最新實體位址(例如與第一邏輯位址LAdd1(j)相關聯的第二實體位址PAdd2(j),諸如第二實體位址PAdd2(i0))以及額外實體位址(例如與第一邏輯位址LAdd1(j)相關聯的第一實體位址PAdd1(j),諸如第一實體位址PAdd1(i0))。
為了更好的理解,在對應於此邏輯區塊之任一個邏輯至實體表中的多個項目(entry)的任一個項目(例如每一個項目)可包含有多個欄位(field),諸如分別用以記錄兩個實體位址的兩個欄位{(BLK#,PG#);(BLK#,PG#)},其中符號“BLK#”以及“PG#”可分別代表區塊編號以及頁面編號。舉例來說,在兩個欄位{(BLK#,PG#);(BLK#,PG#)}中,一實體位址(BLK#,PG#)可包含有用以指示某一實體區塊的一實體區塊位址(例如區塊數量BLK#)以及用以指示此邏輯區塊中的某一實體頁面的一實體頁面位址(例如頁面數量PG#),並且在對應於此邏輯區塊之任一個邏輯至實體表的所有欄位之中的任一個未使用的欄位可攜帶指示一未使用狀態的一預定值(例如指示一空位置(null location)的一預設值(default value)),但是本發明不限於此,為了簡潔起見,對於此實施例的類似內容在此
不再詳細描述。
第5圖為依據本發明一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。LBLK#0邏輯至實體表TBL(0)可作為上述任一個邏輯至實體表的例子,在進行一些寫入操作之後,記憶體控制器110(例如微處理器112)可能已經更新LBLK#0邏輯至實體表TBL(0),以紀錄分別與邏輯位址(0,0)、(0,2)、(0,3)、(0,16)、(0,17)、(0,117)等等相關聯的一些實體位址(0,0)、(6,0)、(6,1)、(11,3)、(0,1)、(0,2)等等,其中這些邏輯位址可具有(LBA,LPA)的形式,但是本發明不以此為限,為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
第6圖為依據本發明另一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。LBLK#0邏輯至實體表TBL(0)仍可作為上述任一個邏輯至實體表的例子,在進行額外的寫入操作之後,記憶體控制器110(例如微處理器112)可能已經更新LBLK#0邏輯至實體表TBL(0),以記錄與邏輯位址(0,2)相關聯的另一個實體位址(256,0),其中邏輯位址(0,2)可以作為步驟S12中所提及的第一邏輯位址LAdd1(i)的例子,並且與邏輯位址(0,2)相關聯的實體位址(6,0)以及實體位址(256,0)可以分別作為與第一邏輯位址LAdd1(i)相關聯的第一實體位址PAdd1(i)以及第二實體位址PAdd2(i)的例子,但是本發明不以此為限,為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
第7圖為依據本發明再另一實施例之基於第4圖所示之邏輯至實體位址映射控制方案所記錄的一些實體位址。LBLK#0邏輯至實體表TBL(0)仍可作為上述任一個邏輯至實體表的例子,在進行一些寫入操作之後,記憶體控制器110
(例如微處理器112)可能已經更新LBLK#0邏輯至實體表TBL(0),以記錄分別對應於邏輯位址(0,16)、(0,1117)等等的一些實體位址(256,1)、(256,17)等等,其中邏輯位址(0,16)可以作為步驟S12中所提及的第一邏輯位址LAdd1(i)的例子,以及與邏輯位址(0,16)相關聯的實體位址(11,3)以及實體位址(256,1)可分別作為與第一邏輯位址LAdd1(i)相關聯的第一實體位址PAdd1(i)以及第二實體位址PAdd2(i)的例子,但是本發明不限於此,為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
根據某些實施例,當在步驟S18A的操作中將來源區塊抹除時,記憶體控制器110(例如微處理器112)可以更新上述至少一邏輯至實體位址映射表,尤其是,進行以下操作:(1)利用最新實體位址(例如目的地區塊的實體位址)來替換額外實體位址(例如來源區塊的實體位址);以及(2)利用指示未使用狀態的預定值(例如預設值)來替換最新實體位址(例如目的地區塊的實體位址)。
舉例來說,當在步驟S18A的操作中抹除來源區塊(諸如實體區塊BLK#6)時,記憶體控制器110(例如微處理器112)可以移除實體位址(6,0),尤其是,將實體位址(256,0)向左移以替換實體位址(6,0),其中先前被用來儲存實體位址(256,0)的第二欄位可以填入預設值。又例如,當在步驟S18A的操作中抹除來源區塊(例如實體區塊BLK#11)時,記憶體控制器110(例如微處理器112)可以移除實體位址(11,3),尤其是,將實體位址(256,1)向左移以替換實體位址(11,3),其中先前被用來儲存實體位址(256,1)的第二欄位可以填入預設值。為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
第8圖為依據本發明一實施例之於隨機讀取測試期間針對及時完成的讀取命令的數量與讀取命令的總數量之比值的改善。在分別繪示於第8圖的上半部分以及下半部分的兩個案例的任一個案例中,橫軸可代表讀取延遲(read latency;為簡潔起見,標記為“延遲”),諸如一讀取命令的總執行時間,以及縱軸可代表讀取命令計數(為簡潔起見,標記為“計數”),諸如讀取命令的數量,其中一快閃記憶體裸晶的讀取繁忙時間可以用以作為一單位來測量讀取延遲,並且為簡潔起見,可稱為“tR”。此外,可以根據(1 * tR)、(2 * tR)、(3 * tR)等等的各自的計數來產生直方圖,以指示讀取命令計數與讀取延遲之間的關係,並且以虛線繪示的曲線可指示讀取命令計數與讀取延遲之間的關係的趨勢,但是本發明不以此為限。
舉例來說,具有一些快閃記憶體裸晶之高容量架構可能已經透過多個通道來被管理,以嘗試減少讀取衝突(read collision)的影響。當於隨機讀取測試期間及時完成的讀取命令(例如在讀取繁忙時間tR的預定倍數內分別完成的讀取命令)的數量與讀取命令的總數量之比值需要達到一預定門檻(例如一企業級(enterprise-class)門檻,諸如99.9999%)以通過隨機讀取測試時,對於具有更大量快閃記憶體裸晶之更高容量架構來說,讀取衝突的問題會變得更加嚴重。第2A圖以及第2B圖所示之方法以及相關裝置(例如第1圖所示之架構,諸如記憶體裝置100,尤其是其中的記憶體控制器110),可以確保自記憶體裝置100至主機裝置50的即時回應,並且因此可改善整體性能。
為了更好的理解,假設第8圖上半部分所示之對應於第3圖上半部分所示之存取控制方案的比例可以達到預定門檻(例如企業級門檻,諸如99.9999%)以通過隨機讀取測試。由於直方圖的分佈可以向左壓縮以使得
99.9999%的分佈在讀取繁忙時間tR的較低倍數之下,因此第8圖下半部分所示之對應於第3圖下半部分所示之存取控制方案的比例可以達到更高門檻(例如99.99999%)以通過隨機讀取測試。為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
根據某些實施例,在進行一系列操作後,記憶體控制器110(例如微處理器112)可以觸發垃圾回收程序,並且該一系列操作可包含有:(1)自主機裝置50接收至少一第一寫入要求,其中該至少一第一寫入要求可指示分別在一邏輯位址範圍內的多個邏輯位址寫入第一資料,並且一第一邏輯位址是該多個邏輯位址的其一;(2)因應該至少一第一寫入要求,對第一非揮發性記憶體元件122-n1內的第一實體區塊進行編程;(3)自主機裝置50接收至少一第二寫入要求,其中至少一第二寫入要求可指示在該多個邏輯位址內的一個或多個邏輯位址寫入第二資料,並且該第一邏輯位址不是該一個或多個邏輯位址的其一;以及(4)因應該至少一第二寫入要求,對第一非揮發性記憶體元件122-n1內的該第一實體區塊進行編程,其中儲存於該第一實體區塊的第一資料成為無效資料但是本發明不限於此。此外,在該多個邏輯位址內的該一個或多個邏輯位址寫入第二資料可使得第一資料的第一局部(partial)資料成為無效資料,並且第一資料的剩餘局部資料可包含有來源區塊的有效資料。記憶體控制器110(例如微處理器112)可收集該第一實體區塊的無效資料總數資訊及/或無效資料存在資訊,以偵測該第一實體區塊是否適合用來作為垃圾回收程序的來源區塊,為了簡潔起見,對於此實施例的類似內容在此不再詳細描述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
S10,S11,S12,S13,S14,S15A,S16A,S17A:步驟
Claims (10)
- 一種借助額外實體位址資訊來進行一記憶體裝置之存取控制的方法,該方法係適用於該記憶體裝置的一控制器,該記憶體裝置包含有該控制器以及一非揮發性記憶體,該非揮發性記憶體包含有複數個非揮發性記憶體元件,該方法包含有:於一垃圾回收程序期間,自一來源區塊讀取有效資料,並且將該來源區塊之該有效資料寫入至一目的地區塊,以作為該目的地區塊之有效資料,其中該來源區塊以及該目的地區塊分別代表在該複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及該複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;更新至少一邏輯至實體位址映射表,以使得該至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與該第一邏輯位址相關聯的一第二實體位址,其中該第一實體位址指示該來源區塊之該有效資料在該第一實體區塊中的儲存位置,以及該第二實體位址指示該目的地區塊之該有效資料在該第二實體區塊中的儲存位置;自一主機裝置接收一第一讀取要求,其中該第一讀取要求指示在該第一邏輯位址讀取;因應該第一讀取要求,根據與該第一邏輯位址相關聯的該第二實體位址來讀取該目的地區塊之該有效資料;自該主機裝置接收一第二讀取要求,其中該第二讀取要求指示在該第一邏輯位址讀取;以及因應該第二讀取要求,根據與該第一邏輯位址相關聯的該第一實體位址來讀取該來源區塊之該有效資料; 其中該方法另包含有:於該垃圾回收程序期間,在完成自該來源區塊讀取該有效資料並且將該來源區塊之該有效資料寫入至該目的地區塊以作為該目的地區塊之該有效資料之後,避免立即地抹除該來源區塊。
- 如申請專利範圍第1項所述之方法,另包含有:基於至少一預定規則,在完成自該來源區塊讀取該有效資料並且將該來源區塊之該有效資料寫入至該目的地區塊以作為該目的地區塊之該有效資料之後,抹除該來源區塊。
- 如申請專利範圍第2項所述之方法,其中該至少一預定規則包含有:因應一空白區塊計數小於一預定空白區塊計數門檻,觸發抹除該來源資料,其中該空白區塊計數指示可供進行編程的一個或多個備用區塊的數量。
- 如申請專利範圍第1項所述之方法,其中在因應該第二讀取要求而完成讀取該來源區塊之該有效資料之後,抹除該來源區塊。
- 如申請專利範圍第1項所述之方法,其中該來源區塊被記錄於一無效區塊管理表上以作為一無效區塊,以便基於至少一預定規則來被抹除。
- 如申請專利範圍第1項所述之方法,其中在一系列的操作後會觸發該垃圾回收程序,並且該一系列的操作包含有:自該主機裝置接收至少一第一寫入要求,其中該至少一寫入要求指示在一邏輯位址範圍中的多個邏輯位址分別寫入第一資料,並且該第一邏輯 位址係該多個邏輯位址的其一;因應該至少一第一寫入要求,對該第一非揮發性記憶體元件內的該第一實體區塊進行編程;自該主機裝置接收至少一第二寫入要求,其中該至少一第二寫入要求指示在該多個邏輯位址之中的一個或多個邏輯位址寫入第二資料,並且該第一邏輯位址不是該一個或多個邏輯位址的其一;以及因應該至少一第二寫入要求,對該第一非揮發性記憶體元件內的該第一實體區塊進行編程,其中儲存在該第一實體區塊內的該第一資料成為無效資料。
- 如申請專利範圍第6項所述之方法,其中在該多個邏輯位址之中的該一個或多個邏輯位址寫入該第二資料使得該第一資料的第一局部資料成為無效資料,並且該第一資料的剩餘局部資料包含有該來源區塊之該有效資料。
- 一種記憶體裝置,包含有:一非揮發性記憶體,用以儲存資訊,其中該非揮發性記憶體包含有複數個非揮發性記憶體元件;以及一控制器,耦接於該非揮發性記憶體,並且用以控制該記憶體裝置之操作,其中該控制器包含有:一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置透過該控制器存取該非揮發性記憶體;其中:於一垃圾回收程序期間,該控制器自一來源區塊讀取有效資料,並且將該 來源區塊之該有效資料寫入至一目的地區塊,以作為該目的地區塊之有效資料,其中該來源區塊以及該目的地區塊分別代表在該複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及該複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;該控制器更新至少一邏輯至實體位址映射表,以使得該至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與該第一邏輯位址相關聯的一第二實體位址,其中該第一實體位址指示該來源區塊之該有效資料在該第一實體區塊中的儲存位置,以及該第二實體位址指示該目的地區塊之該有效資料在該第二實體區塊中的儲存位置;該控制器自一主機裝置接收一第一讀取要求,其中該第一讀取要求指示在該第一邏輯位址讀取;因應該第一讀取要求,該控制器根據與該第一邏輯位址相關聯的該第二實體位址來讀取該目的地區塊之該有效資料;該控制器自該主機裝置接收一第二讀取要求,其中該第二讀取要求指示在該第一邏輯位址讀取;以及因應該第二讀取要求,該控制器根據與該第一邏輯位址相關聯的該第一實體位址來讀取該來源區塊之該有效資料;其中於該垃圾回收程序期間,在完成自該來源區塊讀取該有效資料並且將該來源區塊之該有效資料寫入至該目的地區塊以作為該目的地區塊之該有效資料之後,該控制器避免立即地抹除該來源區塊。
- 如申請專利範圍第8項所述之記憶體裝置,其中該至少一邏輯至實 體位址映射表被儲存於該非揮發性記憶體中,以及該控制器另包含有:一隨機存取記憶體,用以儲存資訊,其中該隨機存取記憶體包含有用以儲存一暫時邏輯至實體位址映射表的一表區域,以及該暫時邏輯至實體位址映射表代表儲存於該非揮發性記憶體中的該至少一邏輯至實體位址映射表之至少一部分的一暫時版本。
- 一種記憶體裝置的控制器,該記憶體裝置包含有該控制器以及一非揮發性記憶體,該非揮發性記憶體包含有複數個非揮發性記憶體元件,該控制器包含有:一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置透過該控制器存取該非揮發性記憶體;其中:於一垃圾回收程序期間,該控制器自一來源區塊讀取有效資料,並且將該來源區塊之該有效資料寫入至一目的地區塊,以作為該目的地區塊之有效資料,其中該來源區塊以及該目的地區塊分別代表在該複數個非揮發性記憶體元件之一第一非揮發性記憶體元件中的一第一實體區塊以及該複數個非揮發性記憶體元件之一第二非揮發性記憶體元件中的一第二實體區塊;該控制器更新至少一邏輯至實體位址映射表,以使得該至少一邏輯至實體映射表包含與一第一邏輯位址相關聯的一第一實體位址以及與該第一邏輯位址相關聯的一第二實體位址,其中該第一實體位址指示該來源區塊之該有效資料在該第一實體區塊中的儲存位置,以及該第二實體位址指示該目的地區塊之該有效資料在該第二實體區塊中的儲存位置; 該控制器自一主機裝置接收一第一讀取要求,其中該第一讀取要求指示在該第一邏輯位址讀取;因應該第一讀取要求,該控制器根據與該第一邏輯位址相關聯的該第二實體位址來讀取該目的地區塊之該有效資料;該控制器自該主機裝置接收一第二讀取要求,其中該第二讀取要求指示在該第一邏輯位址讀取;以及因應該第二讀取要求,該控制器根據與該第一邏輯位址相關聯的該第一實體位址來讀取該來源區塊之該有效資料;其中於該垃圾回收程序期間,在完成自該來源區塊讀取該有效資料並且將該來源區塊之該有效資料寫入至該目的地區塊以作為該目的地區塊之該有效資料之後,該控制器避免立即地抹除該來源區塊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/568,690 | 2022-01-04 | ||
US17/568,690 US11687447B1 (en) | 2022-01-04 | 2022-01-04 | Method and apparatus for performing access control of memory device with aid of additional physical address information |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI805445B true TWI805445B (zh) | 2023-06-11 |
TW202328924A TW202328924A (zh) | 2023-07-16 |
Family
ID=82703058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111126401A TWI805445B (zh) | 2022-01-04 | 2022-07-14 | 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11687447B1 (zh) |
EP (1) | EP4206936A1 (zh) |
CN (1) | CN116431059A (zh) |
TW (1) | TWI805445B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022120527A1 (en) * | 2020-12-07 | 2022-06-16 | Micron Technology, Inc. | Techniques for accessing managed nand |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
TW201729099A (zh) * | 2016-02-05 | 2017-08-16 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201915751A (zh) * | 2017-09-18 | 2019-04-16 | 大心電子(英屬維京群島)股份有限公司 | 資料備份方法、資料恢復方法以及儲存控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
TWI450271B (zh) * | 2009-09-02 | 2014-08-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US9195591B2 (en) * | 2013-06-10 | 2015-11-24 | Kabushiki Kaisha Toshiba | Memory system |
JP2019020788A (ja) * | 2017-07-11 | 2019-02-07 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2019079464A (ja) * | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI643066B (zh) * | 2018-01-15 | 2018-12-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 |
CN114528226A (zh) * | 2018-09-17 | 2022-05-24 | 慧荣科技股份有限公司 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
US11327886B2 (en) * | 2019-07-10 | 2022-05-10 | Board Of Trustees Of The University Of Illinois | Capturing time-varying storage of data in memory device for data recovery purposes |
JP2021043908A (ja) * | 2019-09-13 | 2021-03-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11592995B2 (en) * | 2021-04-19 | 2023-02-28 | Western Digital Technologies, Inc. | Data storage device and method for preventing accidental updates and deletions using data versioning |
-
2022
- 2022-01-04 US US17/568,690 patent/US11687447B1/en active Active
- 2022-07-14 TW TW111126401A patent/TWI805445B/zh active
- 2022-07-25 EP EP22186765.8A patent/EP4206936A1/en active Pending
- 2022-09-30 CN CN202211213746.1A patent/CN116431059A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
TW201729099A (zh) * | 2016-02-05 | 2017-08-16 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201915751A (zh) * | 2017-09-18 | 2019-04-16 | 大心電子(英屬維京群島)股份有限公司 | 資料備份方法、資料恢復方法以及儲存控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20230214320A1 (en) | 2023-07-06 |
TW202328924A (zh) | 2023-07-16 |
US11687447B1 (en) | 2023-06-27 |
EP4206936A1 (en) | 2023-07-05 |
CN116431059A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634517B (zh) | 进行存取管理的方法、记忆装置、电子装置和其控制器 | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
US7174440B2 (en) | Method and apparatus for performing block caching in a non-volatile memory system | |
US8380945B2 (en) | Data storage device, memory system, and computing system using nonvolatile memory device | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
JPWO2007119267A1 (ja) | フラッシュメモリ用のメモリコントローラ | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
US20200379681A1 (en) | Memory system and operating method thereof | |
TWI805445B (zh) | 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
US11809314B2 (en) | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management | |
TW202013183A (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |