TW202011195A - 映射表更新方法 - Google Patents

映射表更新方法 Download PDF

Info

Publication number
TW202011195A
TW202011195A TW108102140A TW108102140A TW202011195A TW 202011195 A TW202011195 A TW 202011195A TW 108102140 A TW108102140 A TW 108102140A TW 108102140 A TW108102140 A TW 108102140A TW 202011195 A TW202011195 A TW 202011195A
Authority
TW
Taiwan
Prior art keywords
data
mapping table
host
block
controller
Prior art date
Application number
TW108102140A
Other languages
English (en)
Other versions
TWI703438B (zh
Inventor
許貴松
孫健瑋
鄒定衡
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Publication of TW202011195A publication Critical patent/TW202011195A/zh
Application granted granted Critical
Publication of TWI703438B publication Critical patent/TWI703438B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一種映射表更新方法,執行於資料儲存裝置中,資料儲存裝置包括非揮發性記憶體與控制器,且所述映射表更新方法包括如下步驟。首先,令控制器處理自於主機所下達的命令,並且當命令為寫入命令時,判斷是否觸發執行部分垃圾回收程序。如果是,控制器依照分段條件來將至少一來源區塊內的局部有效資料複製到目的區塊中,並且以所複製的局部有效資料的邏輯位址,及該局部有效資料所在目的區塊的物理位址來更新資料儲存裝置的邏輯至物理位址映射表,然後返回執行令控制器處理自於主機所下達的命令。

Description

映射表更新方法
本發明是有關於一種映射表更新方法,且特別是一種能夠因應垃圾回收(Garbage Collection,GC)程序的邏輯至物理位址(Logical-to-Physical Address)映射表更新方法。
一般來說,資料儲存裝置是由控制器與非揮發性記憶體,例如快閃記憶體(Flash Memory)所構成,且非揮發性記憶體的使用情況又主要以映射表來作管理,例如邏輯至物理位址映射表即用來顯示主機端的邏輯位址與非揮發性記憶體端的物理位址的映射關係。因此,如何來維護映射表為本領域的一項重要課題,尤其是當資料儲存裝置因應垃圾回收程序而複製來源區塊(Source Block)內的有效資料到目的區塊(Destination Block)時,本領域亟需一種能夠準確更新邏輯至物理位址映射表的方法。
為達上述目的,本發明實施例提供一種映射表更新方法,執行於資料儲存裝置中,資料儲存裝置包括非揮發性記憶體與控制器,且所述映射表更新方法包括如下步驟。首先,令控制器處理自於主機所下達的命令,並且當命令為寫入命令時,判斷是否觸發執行部分垃圾回收程序。如果是,控制器依照分段條件來將至少一來源區塊內的局部有效資料複製到目的區塊中,並且以所複製的局部有效資料的邏輯位址,及該局部有效資料所在目的區塊的物理位址來更新資料儲存裝置的邏輯至物理位址映射表,然後返回執行令控制器處理自於主機所下達的命令。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用來說明本發明,而非對本發明的權利範圍作任何的限制。
在下文中,將藉由圖式說明本發明之各種實施例來詳細描述本發明。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。此外,在圖式中相同參考數字可用以表示類似的元件。
首先,請參閱圖1,圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖。資料儲存裝置1包括非揮發性記憶體110與控制器120,且非揮發性記憶體110包括多個區塊(未繪示),每一區塊又包含複數個頁面(Pages),而每一頁面則用來儲存一筆主機資料或是多筆主機資料。在本實施例中,一筆主機資料較佳為4KB,但本發明並不以此為限制。總而言之,頁面即為寫入或讀取資料時的最小單元,而區塊則為資料抹除的最小單元。因此,區塊依據其功能又可區分為閒置(Spare)區塊、主動(Active)區塊與資料區塊,其中閒置區塊為可被選取並寫入資料的區塊,主動區塊為已被選取並正在寫入資料的區塊,資料區塊則為完成資料寫入且不再寫入資料的區塊。需要說明的是,本發明並不限制區塊及頁面的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。此外,在本實施例中,非揮發性記憶體110較佳是以快閃記憶體來實現,但本發明亦不以此為限制。
控制器120電性耦接於非揮發性記憶體110,並且用來控制非揮發性記憶體110內的資料存取。必須瞭解的是,資料儲存裝置1通常是會與主機2一起使用,並且根據主機2所下達的寫入/讀取命令,來將主機資料寫入到非揮發性記憶體110中,或者從非揮發性記憶體110中讀取主機資料。因此,在本實施例中,控制器120較佳相應為快閃記憶體控制器(Flash Controller),且其包括介面邏輯122、微處理器124以及控制邏輯126。微處理器124電性耦接於介面邏輯122與控制邏輯126,並用以透過介面邏輯122來接收自於主機2所下達的寫入/讀取命令,以及透過控制邏輯126來存取非揮發性記憶體110中的主機資料。另外,在本實施例中,資料儲存裝置1更可包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)130,電性耦接於控制器120,並且用來作為資料緩存器。又或者是,在其它實施例中,資料儲存裝置1的控制器120也可直接使用主機2的DRAM(未繪示)來作為資料緩存器。
如同前面內容所述,為了進行資料的管理與存取,因此,資料儲存裝置1必須建立及儲存至少一映射表,例如邏輯至物理位址映射表,在本實施例中將它簡稱為L2P表,並且於資料儲存裝置1運作時,微處理器124會從非揮發性記憶體110中讀取L2P表,並且上傳到DRAM 130或主機2的DRAM中,以增加資料管理與存取上的效率。但對於DRAM 130或主機2的DRAM的大小不足以儲存一整個L2P表的資料儲存裝置1而言,亦即在DRAM 130或主機2的DRAM只能儲存局部L2P表的情況下,微處理器124就必須頻繁地去存取非揮發性記憶體110中的L2P表,以交換(Swap)或替代暫存在DRAM 130或主機2的DRAM中的局部L2P表。因此,為了有效管理L2P表,L2P表較佳可分割成多個子L2P表,例如1024個子L2P表,如此一來,控制器120便可依據DRAM 130或主機2的DRAM的大小,而上傳全部或多個子L2P表到DRAM 130或主機2的DRAM中。
另外,L2P表所顯示的主機端的邏輯位址是能夠以多種形式,例如邏輯區塊位址(Logical Block Address,LBA)或全域主機頁面(Global Host Page,GHP)來實現,且邏輯區塊位址LBA及全域主機頁面GHP較佳分別對應於不同大小的主機資料,例如512B及4KB的主機資料。此外,L2P表較佳可依照全域主機頁面GHP的順序而建立,也就是說全域主機頁面GHP可為項目(索引)值,而非揮發性記憶體110的物理位址就為項目(索引)的內容值,如此一來,L2P表的大小亦可有效降低。然而,為了方便以下說明,本實施例的L2P表較佳是以全域主機頁面GHP來作索引,並且記錄各全域主機頁面GHP的主機資料是被儲存在非揮發性記憶體110的哪個物理位址,亦即哪個區塊的哪個頁面,但本發明並不以此為限制。
另一方面,非揮發性記憶體110有一種特殊的物理特性,那就是資料的更新並非會在同一物理位址上作複寫,而是將更新的主機資料寫入於閒置的物理位址中,並將全域主機頁面GHP對應至新的物理位址,此時原物理位址的舊主機資料就可轉為無效資料。如此一來,頻繁的寫入操作必會使得非揮發性記憶體110充斥著無效資料,所以垃圾回收程序才因應而發展出。在本實施例中,執行垃圾回收程序的觸發條件可例如是非揮發性記憶體110的閒置區塊的總數低於第一臨界值,或者是任一資料區塊的讀取次數高於第二臨界值,又或者是任一資料區塊的建立時間長於第三臨界值,但本發明均不以此為限制。總而言之,本發明並不限制執行垃圾回收程序的觸發條件,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。接著,圖2將用來解釋本實施例的垃圾回收程序的運作原理,其中圖2的斜線部分即用來表示無效資料。
如圖2所示,假如當兩資料區塊,例如,區塊Blk2與區塊Blk3先後被選作為來源區塊時,資料儲存裝置1就會連續地將來源區塊Blk2與來源區塊Blk3內的全部有效資料,例如全域主機頁面GHP0~GHP5的主機資料複製到因應垃圾回收程序而選取的目的區塊,例如區塊Blk10中,以完成整個垃圾回收程序。可以理解的是,該目的區塊Blk10較佳選自於包含多個閒置區塊的一閒置區塊池(未繪示),但本發明並不以此為限制,並且在執行垃圾回收程序時,目的區塊Blk10將可被重新定義為主動區塊,所以其標號可同樣表示為Act1,但本發明亦不以此為限制。另外,當來源區塊Blk2或來源區塊Blk3內的有效資料都已複製成功後,資料儲存裝置1還可來對來源區塊Blk2或來源區塊Blk3進行抹除動作,並將其重新定義為閒置區塊,以釋出儲存空間。又或者是,在其它實施例中,資料儲存裝置1也可先將來源區塊Blk2或來源區塊Blk3重新定義為閒置區塊,之後當區塊Blk2或區塊Blk3被選為主動區塊時,才進行上述抹除動作,總而言之,本發明亦不限制抹除來源區塊時的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
然而,為了簡化垃圾回收程序的複雜度,習知的映射表更新方法是在目的區塊Blk10已寫滿資料並被重新定義為資料區塊後,亦即來源區塊Blk2與來源區塊Blk3內的全部有效資料都已複製成功,並使目的區塊Blk10寫滿資料後,資料儲存裝置1才「一次性地」將目的區塊Blk10中的邏輯位址及物理位址更新至L2P表。但因為在更新L2P表的期間內,資料儲存裝置1無法處理/回應自於主機2所下達的寫入/讀取命令,以致於造成資料儲存裝置1的整體效能明顯下降,而此下降的幅度在僅配置小量資料緩存器的資料儲存裝置1中更為顯著,這是因為在更新L2P表的過程中,微處理器124還必須頻繁地去對非揮發性記憶體110作存取,即讀取適當的子L2P表,並將更新後的子L2P表寫回至非揮發性記憶體110,所以就會有更長的時間而沒有辦法處理/回應來自主機2所下達的寫入/讀取命令。
圖3是本發明實施例所提供的映射表更新方法的流程示意圖,需要說明的是,圖3的映射表更新方法是可執行於圖1的資料儲存裝置1中,但本發明並不限制圖3的映射表更新方法僅能夠執行於圖1的資料儲存裝置1中。另外,如同前面內容所述,本發明並不限制執行垃圾回收程序的觸發條件,但為了及時處理來自主機2所下達的寫入/讀取命令,所以本實施例的垃圾回收程序乃分段執行,而每段垃圾回收程序又稱為部份垃圾回收程序,並且於執行每段的部份垃圾回收程序間控制器120亦可處理來自主機2所下達的寫入/讀取命令。首先,在步驟S300中,本實施例令控制器120處理自於主機2所下達的命令,並且當該命令為寫入命令時,本實施例則接續執行步驟S310,如果不是,即返回執行步驟S300。在步驟S310中,控制器120判斷是否觸發執行部分垃圾回收程序。如果是,即接續執行步驟S320,如果不是,則返回執行步驟S300。
在步驟S320中,控制器120依照一分段條件來將至少一來源區塊內的局部有效資料複製到目的區塊中,例如請一併參閱圖2,當第一次執行到步驟S320時,控制器120可先複製來源區塊Blk2與來源區塊Blk3內的2筆有效資料到目的區塊Blk10中,之後當第二次執行到步驟S320時,控制器120可再複製來源區塊Blk2與來源區塊Blk3內的另2筆有效資料到目的區塊Blk10中;或者當第一次執行到步驟S320時,控制器120可先複製來源區塊Blk2與來源區塊Blk3內的64個頁面中的有效資料到目的區塊中,而此時的這64個頁面中可能全部或僅部份儲存有有效資料,但本發明均不以此為限制,之後當第二次執行到步驟S320時,控制器120可再複製來源區塊Blk2與來源區塊Blk3內的另64個頁面中的有效資料到目的區塊中。總而言之,本發明並不限制該分段條件的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。另外,來源區塊內的有效資料所複製到目的區塊的位置則較佳可由控制器120所決定。
另一方面,在步驟S320中,控制器120更可建立一邏輯至物理位址備份表,在本實施例中將它簡稱為L2P備份表,以用來記錄所複製的該局部有效資料的邏輯位址,及該局部有效資料所在來源區塊的物理位址,並且為了有效管理L2P備份表,控制器120較佳可將L2P備份表儲存於一表格區塊(未繪示)中,而該表格區塊則同樣選自於包含多個閒置區塊的閒置區塊池,但本發明亦不以此為限制。接著,在步驟S330中,控制器120以所複製的該局部有效資料的邏輯位址,及該局部有效資料所在目的區塊的物理位址來更新L2P表,並且返回執行步驟S300。可以理解的是,當某一主機資料儲存至某一主動區塊的頁面時,控制器120較佳可將該主機資料的邏輯位址記錄至該主動區塊的閒置區域(Spare Area),或者記錄至該主動區塊的區塊關閉資訊(End of Block,EOB)中。接著,在該主動區塊被重新定義為資料區塊以及被選取為來源區塊後,當該主機資料被視為有效資料而複製到目的區塊時,控制器120就較佳可自前述閒置區域或區塊關閉資訊中,取得該主機資料的邏輯位址,並且配合該主機資料所被複製在目的區塊的物理位址來直接更新L2P表。
仔細地說,如果步驟S300的命令為非寫入命令的話,本實施例就不會接續執行步驟S310,也就是返回執行步驟S300,直到當控制器120處理到主機2的寫入命令時,本實施例才接續執行步驟S310。另外,為了方便以下說明,本實施例將先探討步驟S320的分段條件是指每次僅複製2筆有效資料到目的區塊中,但其並非用以限制本發明。因此,請一併參閱圖4A~圖4C,圖4A~圖4C是圖3的映射表更新方法中步驟S320~步驟S330的運作示意圖,其中圖4A~圖4C又採用如同圖2的來源區塊的例子來作說明,但其亦非用以限制本發明。如圖4A所示,在控制器120判斷觸發執行第一段的部分垃圾回收程序後,控制器120可將來源區塊Blk2與來源區塊Blk3內的2筆有效資料,例如來源區塊Blk2內的全域主機頁面GHP0~GHP1的主機資料,複製到目的區塊Blk10的頁面P#0~P#1中,然後控制器120以所複製的主機資料的邏輯位址,及該主機資料所在目的區塊Blk10的物理位址來直接更新L2P表。也就是說,此時的L2P表即記錄邏輯位址為全域主機頁面GHP0~GHP1的主機資料是儲存在目的區塊Blk10的頁面P#0~P#1中,但L2P備份表(未繪示)則依舊記錄邏輯位址為全域主機頁面GHP0~GHP1的主機資料是儲存在來源區塊Blk2的頁面P#0及P#2中。
然而,為了避免資料儲存裝置1一直處於執行垃圾回收程序而無法回應自於主機2所下達的命令,因此,在圖4A的更新L2P表後,控制器120就可轉而用來處理自於主機2所下達的其他命令,例如讀取命令。接著,如果控制器120又再處理到(下個)寫入命令的話,控制器120就會判斷是否觸發執行第二段的部分垃圾回收程序。在本實施例中,控制器120較佳可於執行每段的部分垃圾回收程序前穿插處理預設數量的主機命令,但本發明並不以此為限制。也就是說,在本實施例中,執行部分垃圾回收程序的觸發條件還可例如是已處理過的主機命令超過該預設數量,或者是當步驟S300的執行時間超過預設時間長度時,控制器120就可再度執行步驟S320,亦即執行下一段的部分垃圾回收程序。總而言之,本發明並不限制控制器120處理主機命令,以及判斷是否觸發執行(每段的)部分垃圾回收程序時的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
接著,如圖4B所示,在控制器120再度執行步驟S320時,即執行第二段的部分垃圾回收程序,控制器120則將來源區塊Blk2與來源區塊Blk3內的另2筆有效資料,例如來源區塊Blk2內的全域主機頁面GHP2~GHP3的主機資料,複製到目的區塊Blk10的頁面P#2~P#3中,然後控制器120以所複製的主機資料的邏輯位址,及該主機資料所在目的區塊Blk10的物理位址來直接更新L2P表,所以此時的L2P表即記錄邏輯位址為全域主機頁面GHP2~GHP3的主機資料是儲存在目的區塊Blk10的頁面P#2~P#3中,但L2P備份表則依舊記錄邏輯位址為全域主機頁面GHP2~GHP3的主機資料是儲存在來源區塊Blk2的頁面P#4及P#5中。
類似地,如圖4C所示,在控制器120又再度執行步驟S320時,即執行第三段的部分垃圾回收程序,控制器120則將來源區塊Blk2與來源區塊Blk3內的另2筆有效資料,例如來源區塊Blk3內的全域主機頁面GHP4~GHP5的主機資料,複製到目的區塊Blk10的頁面P#4~P#5中,然後控制器120以所複製的主機資料的邏輯位址,及該主機資料所在目的區塊Blk10的物理位址來直接更新L2P表,所以此時的L2P表即記錄邏輯位址為全域主機頁面GHP4~GHP5的主機資料是儲存在目的區塊Blk10的頁面P#4~P#5中,但L2P備份表則依舊記錄邏輯位址為全域主機頁面GHP4~GHP5的主機資料是儲存在來源區塊Blk3的頁面P#1及P#4中。
綜上所述,本實施例採用部分垃圾回收程序來將來源區塊Blk2與來源區塊Blk3內的有效資料,例如全域主機頁面GHP0~GHP3以及全域主機頁面GHP4~GHP5的主機資料,分段地複製到目的區塊Blk10中,並且根據所複製的局部有效資料來直接更新資料儲存裝置1的L2P表,而非等到目的區塊Blk10寫滿主機資料後,例如全域主機頁面GHP0~GHP5的主機資料都已複製成功後,才一次性地更新L2P表。另外,在執行每段的部分垃圾回收程序前(或稱執行複製/更新前),控制器120更可穿插處理自於主機2所下達的命令,以藉此達到改善整體效能低落的目的。
在其它實施例中,執行部分垃圾回收程序所複製的主機資料也可來自於不同來源區塊,例如若同樣以圖2的來源區塊Blk2與來源區塊Blk3作說明,並且假設分段條件是改指每次複製3筆有效資料到目的區塊Blk10的話,因此,在執行第一段的部分垃圾回收程序時,控制器120可複製來源區塊Blk2的全域主機頁面GHP0~GHP2的主機資料到目的區塊Blk10中,但在執行第二段的部分垃圾回收程序時,控制器120則複製來源區塊Blk2的全域主機頁面GHP3的主機資料,以及來源區塊Blk3的全域主機頁面GHP4~GHP5的主機資料到目的區塊Blk10中。總而言之,如同前面內容所述,本發明並不限制該分段條件的具體實現方式,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
另一方面,考量到目的區塊Blk10可能因為異常事件,例如斷電事件,或者寫入/讀回失敗,而必需予以丟棄。為了避免上述問題,本發明的映射表更新方法可再進一步改良,請參閱圖5,圖5是本發明另一實施例所提供的映射表更新方法的流程示意圖。需要說明的是,圖5的映射表更新方法是可同樣執行於圖1的資料儲存裝置1中,但本發明亦不限制圖5的映射表更新方法僅能夠執行於圖1的資料儲存裝置1中。另外,圖5中部分與圖3相同的流程步驟以相同的圖號標示,故於此便不再多加詳述其細節。相較於圖3的步驟S310,在控制器120判斷觸發執行部分垃圾回收程序後,圖5的映射表更新方法更可包括步驟S312及步驟S314。
在步驟S312中,控制器120判斷目的區塊是否曾發生異常事件。如果是,則先執行步驟S314,然後再接續執行步驟S320與步驟S330;如果不是,則直接執行步驟S320與步驟S330。在步驟S314中,控制器120根據L2P備份表來回復(Roll Back)資料儲存裝置1的L2P表,也就是說回復L2P表乃以L2P備份表所記錄的邏輯位址為準,將L2P備份表內的邏輯位址所對應的物理位址(來源區塊)替代掉L2P表內的邏輯位址所對應的物理位址(目的區塊)。
圖6是圖5的映射表更新方法中根據L2P備份表來回復L2P表的運作示意圖。例如,在控制器120執行部分垃圾回收程序後,來源區塊Blk2與來源區塊Blk3內的全域主機頁面GHP0~GHP5的主機資料被分段地複製到目的區塊Blk10中,並且分段地來直接更新L2P表,但如果此時發生了異常事件,造成控制器120必需得丟棄目的區塊Blk10的話,控制器120則根據L2P備份表來回復資料儲存裝置1的L2P表,使得L2P表回復成記錄來源區塊Blk2與來源區塊Blk3的主機資料的邏輯位址與非揮發性記憶體110的物理位址的映射關係。由於邏輯位址與物理位址的映射關被正確地回復(或替代),因此,丟棄目的區塊Blk10並不會造成主機資料的遺失或者資料管理上的困擾。
當然地,由於目的區塊Blk10已被丟棄,為了執行部分垃圾回收程序,控制器120較佳會從閒置區塊池中選擇另一閒置區塊,例如區塊Blk12(未繪示)來作為新的目的區塊,而且在接續的步驟S320中,控制器120較佳也會選擇由第一段的部分垃圾回收程序來從頭執行,亦即依照分段條件將區塊Blk2內的全域主機頁面GHP0~GHP1的主機資料再複製到(新的)目的區塊Blk12中,並且直接更新L2P表,然後返回執行令控制器120處理自於主機2所下達的命令,直到控制器120再度執行步驟S320,控制器120則將區塊Blk2內的全域主機頁面GHP2~GHP3的主機資料再複製到目的區塊Blk12中,以此類推。總而言之,在每次執行步驟S330前,控制器120更利用L2P備份表來備份L2P表中所記錄有關本次複製的有效資料的映射關係。
必須瞭解的是,建立L2P備份表所需的資源或成本雖然很小,但卻可以有效克服異常事件所產生的技術課題,以256GB大小的資料儲存裝置1為例,L2P表的大小為256MB,但L2P備份表的大小卻可能只要小於4MB。另外,本發明並不限制異常事件的種類,異常事件可能是指斷電事件,或者寫入/讀回失敗等等,總而言之,本技術領域中具有通常知識者應可依據實際需求或應用來進行相關設計。
綜上所述,本發明實施例所提供的映射表更新方法是會採用部分垃圾回收程序來將至少一來源區塊內的有效資料分段地複製到目的區塊中,並且根據所複製的局部有效資料來直接更新資料儲存裝置的L2P表,而非等到來源區塊內的全部有效資料都已複製成功後才一次性地更新L2P表,並且在執行每次複製/更新前穿插處理自於主機所下達的命令,以達到改善整體效能低落的現象。除此之外,在執行每次複製前(或稱執行每段的部分垃圾回收程序前),本實施例更會去檢查是否須根據所建立的L2P備份表來回復L2P表,以避免更新後的L2P表指向曾因發生突發的斷電事件,或者寫入/讀回失敗而中止的目的區塊,並且在執行每次更新前,本實施例都利用L2P備份表來備份L2P表中所記錄有關本次複製的有效資料的映射關係。
以上所述僅為本發明之實施例,其並非用以侷限本發明之專利範圍。
1:資料儲存裝置 110:非揮發性記憶體 120:控制器 122:介面邏輯 124:微處理器 126:控制邏輯 130:動態隨機存取記憶體 2:主機 Blk2、Blk3、Blk10:區塊 Act1:主動區塊 GHP0~GHP5:全域主機頁面 P#0~P#5:頁面 S300~S330:流程步驟
圖1是本發明實施例所提供的資料儲存裝置的功能方塊示意圖; 圖2是本發明實施例所提供的垃圾回收程序的運作示意圖; 圖3是本發明實施例所提供的映射表更新方法的流程示意圖; 圖4A~圖4C是圖3的映射表更新方法中步驟S320~步驟S330的運作示意圖; 圖5是本發明另一實施例所提供的映射表更新方法的流程示意圖; 圖6是圖5的映射表更新方法中根據L2P備份表來回復L2P表的運作示意圖。
S300~S330:流程步驟

Claims (4)

  1. 一種映射表更新方法,執行於一資料儲存裝置中,該資料儲存裝置包括一非揮發性記憶體與一控制器,該映射表更新方法包括: 步驟A:令該控制器處理自於一主機所下達的一命令,並且當該命令為一寫入命令時,判斷是否觸發執行一部分垃圾回收程序; 如果是,則執行步驟B:依照一分段條件來將至少一來源區塊內的局部有效資料複製到一目的區塊中;以及 步驟C:以所複製的該局部有效資料的邏輯位址,及該局部有效資料所在該目的區塊的物理位址來更新該資料儲存裝置的一邏輯至物理位址映射表,並且返回執行該步驟A。
  2. 如請求項第1項所述的映射表更新方法,其中該非揮發性記憶體包括複數個區塊,每一該些區塊更包括複數個頁面,且該些區塊分為閒置區塊、主動區塊與資料區塊,而該至少一來源區塊即選自於該些資料區塊,且該目的區塊則選自於該些閒置區塊。
  3. 如請求項第2項所述的映射表更新方法,其中在執行該步驟B中,該控制器更建立一邏輯至物理位址備份表,以用來記錄所複製的該局部有效資料的該邏輯位址,及該局部有效資料所在該來源區塊的該物理位址。
  4. 如請求項第3項所述的映射表更新方法,其中在判斷觸發執行該部分垃圾回收程序後,該映射表更新方法更包括: 判斷該目的區塊是否曾發生異常事件,其中該異常事件包括斷電事件,或者寫入/讀回失敗; 如果是,則先執行步驟A1:根據該邏輯至物理位址備份表來回復該邏輯至物理位址映射表,然後再接續執行該步驟B與該步驟C;以及 如果不是,則直接執行該步驟B與該步驟C。
TW108102140A 2018-09-11 2019-01-19 映射表更新方法 TWI703438B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862729556P 2018-09-11 2018-09-11
US62/729556 2018-09-11

Publications (2)

Publication Number Publication Date
TW202011195A true TW202011195A (zh) 2020-03-16
TWI703438B TWI703438B (zh) 2020-09-01

Family

ID=69719181

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108102140A TWI703438B (zh) 2018-09-11 2019-01-19 映射表更新方法
TW108111170A TWI773890B (zh) 2018-09-11 2019-03-29 資料儲存裝置及其校驗碼處理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW108111170A TWI773890B (zh) 2018-09-11 2019-03-29 資料儲存裝置及其校驗碼處理方法

Country Status (3)

Country Link
US (2) US20200081780A1 (zh)
CN (2) CN110895514A (zh)
TW (2) TWI703438B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI799718B (zh) * 2020-06-22 2023-04-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895513A (zh) * 2018-09-12 2020-03-20 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
KR102637478B1 (ko) * 2018-12-05 2024-02-15 삼성전자주식회사 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법
KR102659832B1 (ko) 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템
KR20210044564A (ko) * 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11216207B2 (en) * 2019-12-16 2022-01-04 Silicon Motion, Inc. Apparatus and method for programming user data on the pages and the parity of the page group into flash modules
CN113806133A (zh) * 2020-06-12 2021-12-17 华为技术有限公司 一种数据写入方法和装置
CN111737165B (zh) * 2020-07-02 2023-09-12 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
US11513891B2 (en) 2020-07-24 2022-11-29 Kioxia Corporation Systems and methods for parity-based failure protection for storage devices
US11087858B1 (en) * 2020-07-24 2021-08-10 Macronix International Co., Ltd. In-place refresh operation in flash memory
US11561722B2 (en) * 2020-08-25 2023-01-24 Micron Technology, Inc. Multi-page parity data storage in a memory device
CN112364273A (zh) * 2020-09-18 2021-02-12 上海泛微软件有限公司 入口页面生成方法、装置、设备及计算机可读存储介质
US11500782B2 (en) * 2020-12-18 2022-11-15 Micron Technology, Inc. Recovery of logical-to-physical table information for a memory device
CN112799765B (zh) * 2021-01-30 2022-10-11 交通银行股份有限公司 一种基于页面编码的智能跳转方法、设备及存储介质
CN112799601B (zh) * 2021-02-24 2023-06-13 群联电子股份有限公司 有效数据合并方法、存储器存储装置及控制电路单元
US11972150B2 (en) 2021-09-29 2024-04-30 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware
CN115878020A (zh) 2021-09-29 2023-03-31 慧荣科技股份有限公司 编码历程信息的存取方法和计算机可读取存储介质和装置
CN114371814B (zh) * 2021-12-08 2024-05-10 浙江华忆芯科技有限公司 数据处理的方法、装置及固态硬盘
TWI805231B (zh) 2022-02-18 2023-06-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI802279B (zh) 2022-02-18 2023-05-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN116665756A (zh) 2022-02-18 2023-08-29 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2912299B2 (ja) * 1997-06-10 1999-06-28 四国日本電気ソフトウェア株式会社 ディスクアレイ制御装置
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP2009187139A (ja) * 2008-02-04 2009-08-20 Hitachi Ltd ストレージシステム
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
CN102591737B (zh) * 2011-01-13 2015-04-22 群联电子股份有限公司 数据写入与读取方法、存储器控制器与存储器储存装置
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
US8996951B2 (en) * 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US10013203B2 (en) * 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US9535774B2 (en) * 2013-09-09 2017-01-03 International Business Machines Corporation Methods, apparatus and system for notification of predictable memory failure
WO2015173925A1 (ja) * 2014-05-15 2015-11-19 株式会社日立製作所 ストレージ装置
US20150349805A1 (en) * 2014-05-28 2015-12-03 Skymedi Corporation Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
US10387322B2 (en) * 2015-04-30 2019-08-20 Marvell Israel (M.I.S.L.) Ltd. Multiple read and write port memory
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
TWI569139B (zh) * 2015-08-07 2017-02-01 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
TWI591482B (zh) * 2016-01-30 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
CN107391026B (zh) * 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
CN108038026B (zh) * 2017-11-17 2021-11-30 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN107967125A (zh) * 2017-12-20 2018-04-27 北京京存技术有限公司 闪存转换层的管理方法、装置及计算机可读存储介质
CN108089822A (zh) * 2017-12-20 2018-05-29 北京京存技术有限公司 存储芯片的管理方法、系统、设备及存储介质
TWI670594B (zh) * 2018-01-18 2019-09-01 慧榮科技股份有限公司 資料儲存裝置
US20190243578A1 (en) * 2018-02-08 2019-08-08 Toshiba Memory Corporation Memory buffer management for solid state drives
US10970170B2 (en) * 2019-08-29 2021-04-06 Micron Technology, Inc. Shared parity protection
JP7034132B2 (ja) * 2019-12-20 2022-03-11 株式会社日立製作所 ストレージシステムおよびストレージシステムのデータ圧縮方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI799718B (zh) * 2020-06-22 2023-04-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11755242B2 (en) 2020-06-22 2023-09-12 Phison Electronics Corp. Data merging method, memory storage device for updating copied L2P mapping table according to the physical address of physical unit

Also Published As

Publication number Publication date
US20200081832A1 (en) 2020-03-12
TW202011187A (zh) 2020-03-16
US11068391B2 (en) 2021-07-20
CN110895514A (zh) 2020-03-20
CN110888594A (zh) 2020-03-17
TWI703438B (zh) 2020-09-01
CN110888594B (zh) 2023-04-14
TWI773890B (zh) 2022-08-11
US20200081780A1 (en) 2020-03-12

Similar Documents

Publication Publication Date Title
TWI703438B (zh) 映射表更新方法
TWI639917B (zh) 資料儲存裝置及映射表重建方法
US10254983B2 (en) Atomic write command support in a solid state drive
US8949512B2 (en) Trim token journaling
US9513831B2 (en) Method and system for atomically writing scattered information in a solid state storage device
US8316257B2 (en) NAND power fail recovery
CN109643275B (zh) 存储级存储器的磨损均衡设备和方法
CN110908925B (zh) 高效能垃圾收集方法以及数据存储装置及其控制器
US10838629B2 (en) Solid state device with fast boot after ungraceful shutdown
US11301331B2 (en) Storage device and operating method of storage device
US20150074336A1 (en) Memory system, controller and method of controlling memory system
US10423343B2 (en) Information processing device and memory controller
GB2517435A (en) Fast data back-up and restore between volatile and flash memory
US20230044942A1 (en) Conditional update, delayed lookup
CN108509295B (zh) 存储器系统的操作方法
TWI729674B (zh) 資料儲存裝置及其垃圾蒐集方法
US10817215B2 (en) Data storage system and control method for non-volatile memory
CN110928480A (zh) 固态储存装置的数据处理方法