TWI761748B - 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TWI761748B TWI761748B TW109100257A TW109100257A TWI761748B TW I761748 B TWI761748 B TW I761748B TW 109100257 A TW109100257 A TW 109100257A TW 109100257 A TW109100257 A TW 109100257A TW I761748 B TWI761748 B TW I761748B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- index
- mapping table
- group mapping
- index table
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種非揮發式記憶體的映射資訊高效管理技術。該非揮發式記憶體之控制器的一微處理器係根據一主機指示的一第一邏輯位址,自該非揮發式記憶體將一第一群組映射表載入一揮發式記憶體,據以操作該非揮發式記憶體。該微處理器令該揮發式記憶體更載有階層式的複數個指標表。該等指標表中,較高階層的指標表指示較低階層的指標表在該非揮發式記憶體的實體位址,且最低階層的一第一指標表上的一第一索引記錄該第一群組映射表在該非揮發式記憶體的實體位址。
Description
本發明係有關於非揮發式記憶體之映射資訊管理。
非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
非揮發式記憶體通常有其特殊的儲存特性。本技術領域需要相應非揮發式記憶體的儲存特性發展相應的控制技術。
本案為非揮發式記憶體揭露一種映射資訊高效管理技術。
根據本案一種實施方式實現的一資料儲存裝置包括一非揮發式記憶體以及一控制器。該控制器耦接一主機至該非揮發式記憶體,其中一微處理器根據該主機指示的一第一邏輯位址,自該非揮發式記憶體將一第一群組映射表載入一揮發式記憶體,據以操作該非揮發式記憶體。該微處理器令該揮發式記憶體更載有階層式的複數個指標表。該等指標表中,較高階層的指標表指示較低階層的指標表在該非揮發式記憶體的實體位址,且最低階層的一第一指標表上的一第一索引記錄該第一群組映射表在該非揮發式記憶體的實體位址。
一種實施方式中,該主機指示對應一第二群組映射表的一第二邏輯位址、且該第二群組映射表在該非揮發式記憶體的實體位址是由該第一指標表上的一第二索引記錄時,該微處理器根據該第二索引查詢載於該揮發式記憶體的該第一指標表,獲得該第二群組映射表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第二群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
一種實施方式中,該第一指標表在該非揮發式記憶體的實體位址是由一第二指標表上的一第三索引記錄。該主機指示對應的一第三群組映射表的一第三邏輯位址、且該第三群組映射表
在該非揮發式記憶體的實體位址是由一第三指標表上的一第四索引記錄、且該第三指標表在該非揮發式記憶體的實體位址是由該第二指標表上的一第五索引記錄時,該微處理器根據該第五索引查詢載於該揮發式記憶體的該第二指標表,獲得該第三指標表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三指標表載入該揮發式記憶體,且該微處理器更根據該第四索引查詢載於該揮發式記憶體的該第三指標表,獲得該第三群組映射表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
一種實施方式中,該微處理器是在該資料儲存裝置開機時,自該非揮發式記憶體,將最高階層的一第四指標表載入該揮發式記憶體常駐。
一種實施方式中,上述第一、第二以及第三邏輯位址是採一邏輯位址格式。該邏輯位址格式的一第一位元段用作該第四指標表的索引。該邏輯位址格式的一第二位元段用作該第二指標表的索引。該邏輯位址格式的一第三位元段用作該第一指標表以及該第三指標表的索引。該邏輯位址格式的一第四位元段用作該第一群組映射表、該第二群組映射表、以及該第三群組映射表的索引。
一種實施方式中,該微處理器更以上述第一位元段、第二位元段、以及第三位元段更新儲存於該揮發式記憶體的一
索引記錄。該微處理器係根據該索引記錄辨識該揮發式記憶體目前儲存的群組映射表。
以上控制器對非揮發式記憶體之操作也可以由其他結構實現。本案更可以前述概念實現非揮發式記憶體的控制方法。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
500:資料儲存裝置
502:快閃記憶體
504:控制器
506:主機
508:微處理器
510:揮發式記憶體
512:系統資料
514:階層L0索引記錄
516:階層L1索引記錄
702、704、706、708:位元段
Blk:區塊
HAddr:主機邏輯位址
Index1...Index5:索引
L0、L1、...L(N-2)、L(N-1):指標表各階層
L0_PT:階層L0指標表
L1_PT0...L1_PT3:階層L1指標表
L1_PTt:目標之階層L1指標表
L2P:邏輯-實體位址映射表
L2P_G0…L2P_G65535、
L2P_GforHAddr1...L2P_GforHAddr3:群組映射表
L2P_Gt:目標之群組映射表
PT1...PT4:指標表
S602...S628:步驟
第1圖根據一種實施方式圖解區塊Blk之結構;第2圖圖解群組映射表L2P_G#之定義;第3圖根據本案一種實施方式圖解管理L2P_G0…L2P_G65535的階層式指標表,係非揮發式儲存於快閃記憶體中;第4圖根據本案一種實施方式主機主機邏輯位址HAddr之格式,共30位元;第5圖圖解根據本案一種實施方式實現的一資料儲存裝置500;第6A以及6B圖為流程圖,根據本案一種實施方式圖解如何因應主機506的存取要求,在揮發式記憶體510上管理映射資訊;以及
第7A圖以及第7B圖以N階層指標管理(N大於2)進行討論,其中涉及分屬三個群組的主機主機邏輯位址HAddr1、HAddr2以及HAddr3之操作要求。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)...等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、
虛擬實境設備…等。電子裝置的運算模塊可視為一主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構資料中心。例如,伺服器可操作固態硬碟(SSD)陣列形成資料中心。伺服器即可視為一主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
快閃記憶體有其特殊的儲存特性,以下敘述之。
主機(Host)端是以邏輯位址(例如,邏輯區塊位址LBA)來區別資料,其中,一個LBA可表示512B大小的資料。連續的八個LBA(4KB資料)可以由一個主機邏輯位址HAddr所表示。至於LBA或主機邏輯位址HAddr所表示的資料實際儲存在快閃記憶體何處,則是以映射方式來記錄實體位址與LBA或主機邏輯位址HAddr的映射關連性。
快閃記憶體之物理空間是劃分為複數個區塊(Blocks)配置使用。第1圖根據一種實施方式圖解區塊Blk之結構。一區塊Blk包括複數頁面(Pages),例如,頁面0…頁面255。各頁面包括複數個區段(Sectors),例如32個區段。一頁面可供應16KB儲存空間。每一區段可儲存512B長度的使用者資料。一種實施方式中,資料管理可以4KB為單位。16KB長度的頁面儲存四個資料單位,彼此邏輯位址可以不連續。快閃記憶體的空間配置相當複雜。
特別是,快閃記憶體的資料更新並非覆寫至舊資料的儲存空間。新版本的資料須寫入空白的空間。舊空間的內容無效。這也造成快閃記憶體的空間配置複雜。
另外,快閃記憶體的儲存空間需抹除(erase)後方能再次使用,備用區塊逐漸消耗。備用區塊數量不足時(如,低於閥值),垃圾回收(Garbage Collection)需求產生。一區塊留存的零星有效資料經垃圾回收集中到其他空間。徒留無效資料的區塊則抹除釋出,拉升備用區塊數量,確保快閃記憶體之正常使用。垃圾回收也會再次變化快閃記憶體的空間配置。
由前述內容可知,快閃記憶體的空間配置必須妥善管理。一種實施方式是建立邏輯-實體位址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表),記錄上述中實體位址與LBA或主機邏輯位址HAddr的映射關連性。一種實施方式中,映射關連性或映射資訊的大小為4B。
然而,隨著製程進步,快閃記憶體尺寸越來越大。4TB的快閃記憶體,其L2P映射表會達4GB。8TB的快閃記憶體,其L2P映射表會達8GB。過分龐大的L2P映射表不容易維護。另一方面,如果資料儲存裝置並未配置DRAM,僅使用512B大小的SRAM來暫存L2P映射表,如何有效地管理、讀取以及儲存L2P映射表的內容,成為一種重要的技術課題。
本案提出多階層映射資訊管理。首先,將邏輯位址分為多個邏輯位址群組G#(#為編號),據以將L2P映射表劃分為複數個群組映射表L2P_G#。被呼叫到的目標群組映射表L2P_G#才讀取並載入至SRAM並作為參考或更新。相較於讀取並載入完整的邏輯-物理位址L2P映射表,讀取並載入目標群組映射表L2P_G#會容易許多。第2圖圖解群組映射表L2P_G#之定義。一種實施方式是以定量的邏輯位址長度切割L2P映射表,例如:以16K個主機邏輯位址HAddr為分割單位。例如:群組映射表L2P_G0記錄主機邏輯位址HAddr0~HAddr16383所對應的快閃記憶體實體位址,群組映射表L2P_G1記錄主機邏輯位址HAddr16384~HAddr32767所對應的快閃記憶體實體位址,以此類推。每一實體位址例如以4B記錄,則群組映射表L2P_G#的大小為64KB。4TB容量的快閃記憶體會有64K個群組映射表L2P_G0…L2P_G65535,尺寸共4GB。
特別是,指向群組映射表L2P_G#的是階層式指標表。以N階層指標表為例,最高階層指標表命名為L0_PT,依序遞增階層編號,最低階層指標表命名為L(N-1)_PT#。最高階層指標表L0_PT的尺寸極小,例如16B大小,可以常駐最高階層指標表L0_PT在SRAM中。操作非揮發式記憶體時,參考最高階層指標表L0_PT便可一層層自非揮發式記憶體載出相應的指標表L1_PT#…L(N-1)_PT#,最後再載出目標群組映射表L2P_G#。由於採用階層式指標表,最高階層指標表L0_PT至最低階指標表L(N-1)_PT#
總共只佔用SRAM的小量空間,而隨著資料儲存裝置的容量增大,採用階層式指標表的效益則愈顯著。
一種實施方式中,N為2。最高階層指標表L0_PT指向複數個次階層指標表(此例即最低階層指標表)L1_PT#。每一最低階層指標表L1_PT#各自指向複數個群組映射表L2P_G#。
第3圖根據本案一種實施方式圖解管理L2P_G0…L2P_G65535的階層式指標表,係非揮發式儲存於快閃記憶體中。指標表階層數量為2,包括一個最高階層指標表L0_PT以及4個最低階層指標表L1_PT#。最高階層指標表L0_PT只使用了四個索引0…3,內容(大小等於4B)分別記錄最低階層指標表L1_PT0~3所儲存的實體位址,所以最高階層指標表L0_PT的大小為16B(=4*4B)。最低階層指標表L1_PT#各自包括16384個索引(標號0…16383),內容(大小等於4B)分別記錄一個群組映射表L2P_G#所儲存的實體位址,所以最低階層指標表L1_PT#的大小為64KB(=16K*4B)。也就是說,總數高達65536(=64K)個最低階層指標表L1_PT#拆分成四組進行管理。在運作時,資料儲存裝置的控制器無須載出全部的(64K個),總計大小為256KB的最低階層指標表L1_PT#,只需要載出一組大小為64KB的最低階層指標表L1_PT#,如此一來,SRAM空間的使用量減少了4分之3,達到本發明的目的。
整理之,當資料儲存裝置僅使用256KB大小的SRAM時,取得目標群組表映射表L2P_G#所需的記憶體空間極小,約
16B+64KB+64KB=144KB,分別是常駐的最高階層指標表L0_PT#佔16B,最低階指標表L1_PT#佔64KB,目標群組表映射表L2P_G#佔64KB,達到本發明的目的。
第4圖根據本案一種實施方式主機邏輯位址HAddr,共有30位元。對應第3圖之多階層映射資訊架構,可將位元29以及28作為最高階層指標表L0_PT索引使用,用以讀取最高階層指標表L0_PT的其中之一項目(Entry),例如:位元[29-28]為”01”時,讀取最高階層指標表L0_PT的項目1所記錄的實體位址以取得最低階層指標表L1_PT1;可將位元27至位元14作為最低階層指標表L1_PT1索引使用,用以讀取最低階層指標表L1_PT1的其中之一項目,例如:位元[27-14]為”00,0000,0000,0100”時,讀取最低階層指標表L1_PT1的項目4所記錄的實體位址以取得群組映射表L2P_G163488;可將位元13至位元0作為目標群組映射表L2P_G163488索引使用,用以讀取目標群組表映射表L2P_G163488的其中之一項目,例如:位元[13-0]為”00,0000,0000,1000”時,讀取群組映射表L2P_G163488的項目8所記錄的實體位址以取得主機邏輯位址HAddr所對應的使用者資料的實體位址。最高階層指標表L0_PT長駐在SRAM中,資料儲存裝置的控制器可依據主機邏輯位址HAddr以及最高階層指標表L0_PT而取得最低階層指標表L1_PT#,再依據主機邏輯位址HAddr以及最低階層指標表L1_PT#而取得目標群組表映射表
L2P_G#,最後依據主機邏輯位址HAddr以及目標群組表映射表L2P_G#而取得主機邏輯位址HAddr所對應的使用者資料的實體位址。當然,除了讀取主機邏輯位址HAddr所對應的使用者資料,資料儲存裝置可依據上述步驟而更新主機邏輯位址HAddr所對應的使用者資料的實體位址。
第5圖圖解根據本案一種實施方式實現的資料儲存裝置500,其中以快閃記憶體502為儲存媒體,且設置有控制器504。主機506係透過控制器504讀寫快閃記憶體502。
控制器504包括微處理器508以及揮發式記憶體510。主機506要求讀寫主機邏輯位址HAddr所對應的使用者資料時,微處理器508將所需的映射資訊載入揮發式記憶體510。揮發式記憶體510可為靜態隨機存取記憶體SRAM、動態隨機存取記憶體DRAM…等。其他實施方式中,也可採用主機506端的系統記憶體(如系統DRAM)實現揮發式的資訊暫存。
快閃記憶體502除了儲存使用者資料(未顯示在圖中),更會儲存系統資料512。系統資料512包括第3圖所有表格,有:最高階層指標表L0_PT、最低階層指標表L1_PT#以及群組映射表L2P_G#。資料儲存裝置500啟動時,微處理器508自快閃記憶體502將最高階層指標表L0_PT載入並常駐於揮發式記憶體510,接下來再依據主機邏輯位址HAddr以及最高階層指標表L0_PT來決定最低階層指標表L1_PT#以及群組映射表L2P_G#的存取。
主機506要求一邏輯位址HAddr之存取時,微處理器508根據該邏輯位址HAddr的位元29以及位元28獲得一索引HAddr[29:28]。若索引HAddr[29:28]符合該揮發式記憶體510上的一階層L0索引記錄514,則代表已有相應的L1階層指標表L1_PTt暫存在該揮發式記憶體510上。
接著,微處理器508會根據該邏輯位址HAddr的位元27至位元14獲得一索引HAddr[27:14]。若索引HAddr[27:14]符合該揮發式記憶體510上的一階層L1索引記錄516,則代表已有相應的群組映射表L2P_Gt暫存在該揮發式記憶體510上。微處理器508會根據該邏輯位址HAddr的位元13至位元0所組成的索引HAddr[13:0]查詢該群組映射表L2P_Gt,獲得該邏輯位址HAddr的映射資訊(標示快閃記憶體502的實體位址)。例如,根據映射資訊自快閃記憶體502獲得使用者資料,回應主機506的讀取要求。例如,在揮發式記憶體510上修正/填入該群組映射表L2P_Gt該索引HAddr[13:0]所指的映射資訊,以回應主機506的寫入要求。
倘若,揮發式記憶體510所載的該階層L0索引記錄514確為索引HAddr[29:28],但階層L1索引記錄516並非索引HAddr[27:14],則微處理器508動作如下。微處理器508根據索引HAddr[27:14],查詢揮發式記憶體510上已載有的L1階層指標表L1_PTt,獲得快閃記憶體502的一實體位址,據以自該快閃記憶體
502取得群組映射表L2P_Gt,載入該揮發式記憶體510使用。微處理器508更將該階層L1索引記錄516更新為索引HAddr[27:14]。
倘若,揮發式記憶體510所載的該階層L0索引記錄514並非索引HAddr[29:28],則微處理器508動作如下。微處理器508根據索引HAddr[29:28],查詢揮發式記憶體510上常駐的L0階層指標表L0_PT,獲得快閃記憶體502的一實體位址,據以自該快閃記憶體502取得L1層指標表L1_PTt,載入該揮發式記憶體510。微處理器508更將該階層L0索引記錄514更新為索引HAddr[29:28]。接著,微處理器508根據索引HAddr[27:14],查詢揮發式記憶體510所載的L1層指標表L1_PTt,獲得快閃記憶體502的一實體位址,據以自該快閃記憶體502取得群組映射表L2P_Gt,載入該揮發式記憶體510使用。微處理器508更將該階層L1索引記錄516更新為索引HAddr[27:14]。
第6A、6B圖為流程圖,根據本案一種實施方式圖解如何因應主機506的存取要求,在揮發式記憶體510上管理映射資訊。
步驟S602,微處理器508接收來自主機506的主機命令,其中,主機命令包括邏輯位址HAddr。
步驟S604,微處理器508依據主機邏輯位址HAddr以及最高階層指標表而判斷次高階層指標表是否已載於揮發式記憶體510。若是,流程進行步驟S606。例如,主機邏輯位址HAddr的
位元[29-28]為”01”,微處理器508判斷最高階層指標表L0_PT的項目1所對應的最低階層指標表L1_PT1是否已載於揮發式記憶體510,其中,微處理器508可記錄揮發式記憶體510目前所儲存的最低階層指標表L1_PT#的編號,並以此作為判斷的依據。
步驟S606,微處理器508依據主機邏輯位址HAddr以及次高階層指標表而判斷目標群組映射表L2P_G#是否已載於揮發式記憶體510。若是,流程進行步驟S608,若否,流程進行步驟S612。例如,主機邏輯位址HAddr的位元[27-14]為”00,0000,0000,0100”,微處理器508判斷最低階層指標表L1_PT1的項目4所對應的目標群組映射表L2P_G163488是否已載於揮發式記憶體510,其中,微處理器508可記錄揮發式記憶體510目前所儲存的目標群組映射表L2P_G#的編號,並以此作為判斷的依據。
步驟S608,微處理器508依據主機邏輯位址HAddr以及目標群組映射表L2P_G#執行主機命令。例如,主機命令為資料讀取命令而主機邏輯位址HAddr的位元[13-0]為”00,0000,0000,1000”,微處理器508讀取目標群組映射表L2P_G163488的項目8所記錄的實體位址以取得使用者資料,並回傳此使用者資料至主機506。例如,主機命令為資料寫入命令而主機邏輯位址HAddr的位元[13-0]為”00,0000,0000,1000”,微處理
器508將資料寫入命令中的使用者資料寫入至新的實體位址,並以此實體位址更新目標群組映射表L2P_G163488的項目8的內容。
步驟S612,微處理器508依據主機邏輯位址HAddr以及次高階層指標表取得目標群組映射表L2P_G#的實體位址。例如,主機邏輯位址HAddr的位元[27-14]為”00,0000,0000,0100”,微處理器508讀取最低階層指標表L1_PT#1的項目4的內容以取得實體位址。
步驟S614,微處理器508自快閃記憶體502的實體位址將目標群組映射表L2P_G#載入揮發式記憶體510。微處理器508讀取快閃記憶體502的實體位址以取得目標群組映射表L2P_G163488,並將目標群組映射表L2P_G163488上載至揮發式記憶體510中。接著,回到步驟S608。
步驟S622,微處理器508依據主機邏輯位址HAddr以及最高階層指標表以取得次高階層指標表的實體位址。例如:主機邏輯位址HAddr的位元[29-28]為”01”時,取用最高階層指標表L0_PT的項目1所記錄的實體位址(即為最低階層指標表L1_PT1的實體位址)。
步驟S624,微處理器508自快閃記憶體502的實體位址將最低階層指標表L1_PT1載入揮發式記憶體510。依照步驟S622取得的實體位址,微處理器508讀取快閃記憶體502,取得最
低階層指標表L1_PT1,並將最低階層指標表L1_PT1上載至揮發式記憶體510中。
步驟S626,微處理器508依據主機邏輯位址HAddr以及次高階層指標表取得目標群組映射表L2P_G#的實體位址。例如,主機邏輯位址HAddr的位元[27-14]為”00,0000,0000,0100”,微處理器508讀取最低階層指標表L1_PT1的項目4的內容以取得實體位址。
步驟S628,根據步驟S626取得的實體位址,微處理器508自快閃記憶體502將目標群組映射表L2P_G#載入揮發式記憶體510。微處理器508讀取快閃記憶體502的實體位址以取得目標群組映射表L2P_G163488,並將目標群組映射表L2P_G163488上載至揮發式記憶體510中。接著,回到步驟S608。
以上內容除了可以拓展為N階層指標管理(N大於2),也可應付更大容量的快閃記憶體。例如,主機邏輯位址HAddr為32或64位元的話,可應付更大容量的快閃記憶體,N也可以為更高數值。
第7A圖以及第7B圖以N階層指標管理(N大於2)進行討論,其中涉及分屬三個群組的主機邏輯位址HAddr1、HAddr2以及HAddr3之操作要求。
第7A圖顯示快閃記憶體502上、主機邏輯位址HAddr1、HAddr2以及HAddr3之映射資訊的儲存架構。對應主機
邏輯位址HAddr1的群組映射表L2P_GforHAddr1在快閃記憶體502的實體位址是由最低階層L(N-1)的指標表PT1以索引Index1記錄。對應主機邏輯位址HAddr2的群組映射表L2P_GforHAddr2在快閃記憶體502的實體位址也是由指標表PT1記錄,但是對應索引Index2。指標表PT1在快閃記憶體502的實體位址則是由更上一階層L(N-2)的指標表PT2以索引Index3記錄。對應主機邏輯位址HAddr3的群組映射表L2P_GforHAddr3在快閃記憶體502的實體位址是由最低階層L(N-1)的另一指標表PT3以索引Index4記錄。指標表PT3在快閃記憶體502的實體位址也是由指標表PT2記錄,但是對應索引Index5。最高階層L0僅具單一指標表PT4。
主機邏輯位址HAddr的格式劃分N個位元段,用於存取如此多階層映射資訊管理的內容。位元段702用作最高階層L0的指標表PT4之索引。位元段706用作階層L(N-1)的指標表(包括PT1、PT3)之索引。位元段708用作群組映射表L2P_G#(包括L2P_GforHAddr1~L2P_GforHAddr3)之索引。
第7B圖相應主機邏輯位址HAddr1、HAddr2以及HAddr3之存取要求,顯示揮發式記憶體510內的儲存內容。除了常駐的最高階層L0指標表PT4,此例中,階層L(N-2)的指標表PT2也都載於揮發式記憶體510。
主機506要求存取的是主機邏輯位址HAddr1時,根據位元段704組成的索引Index3,微處理器508查詢揮發式記憶體
510上已載的指標表PT2,在索引Index3取得一實體位址,據以自快閃記憶體502將指標表PT1載入該揮發式記憶體510。接著,根據位元段706組成的索引Index1,微處理器508查詢新載入揮發式記憶體510的指標表PT1,在索引Index1取得一實體位址,據以自快閃記憶體502將群組映射表L2P_GforHAddr1載入該揮發式記憶體510。
主機506要求存取的是主機邏輯位址HAddr2時,根據位元段706更新的索引Index2,微處理器508查詢揮發式記憶體510所載的指標表PT1,在索引Index2取得一實體位址,據以自快閃記憶體502將群組映射表L2P_GforHAddr2載入該揮發式記憶體510。
主機506要求存取的是主機邏輯位址HAddr3時,根據位元段704更新的索引Index5,微處理器508查詢揮發式記憶體510上已載的指標表PT2,在索引Index5取得一實體位址,據以自快閃記憶體502將指標表PT3載入該揮發式記憶體510。接著,根據位元段706組成的索引Index4,微處理器508查詢新載入揮發式記憶體510的指標表PT3,在索引Index4取得一實體位址,據以自快閃記憶體502將群組映射表L2P_GforHAddr3載入該揮發式記憶體510。
群組映射表L2P_GforHAddr1、L2P_GforHAddr2、以及L2P_GforHAddr3的載出都相當節省揮發式記憶體510空間。
以上記憶體控制器504對快閃記憶體502之操作設計也可以由其他結構實現。凡是根據前述概念達到多階層映射資訊管理的技術,都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
500:資料儲存裝置
502:快閃記憶體
504:控制器
506:主機
508:微處理器
510:揮發式記憶體
512:系統資料
514:階層L0索引記錄
516:階層L1索引記錄
L0_PT:階層L0指標表
L1_PT0...L1_PT3:階層L1指標表
L1_PTt
:目標之階層L1指標表
L2P_G0…L2P_G65535:群組映射表
L2P_Gt
:目標之群組映射表
Claims (12)
- 一種資料儲存裝置,包括:一非揮發式記憶體;以及一控制器,耦接一主機至該非揮發式記憶體,其中一微處理器根據該主機指示的一第一邏輯位址,自該非揮發式記憶體將一第一群組映射表載入一揮發式記憶體,據以操作該非揮發式記憶體,其中:該微處理器令該揮發式記憶體更載有階層式的複數個指標表;該等指標表中,較高階層的指標表指示較低階層的指標表在該非揮發式記憶體的實體位址,且最低階層的一第一指標表上的一第一索引記錄該第一群組映射表在該非揮發式記憶體的實體位址;該微處理器更於該揮發式記憶體動態維護一索引記錄,記錄該揮發式記憶體所載的階層式的該等指標表間,較高階層的指標表係哪一索引對應較低階層的指標表;且該微處理器係根據該揮發式記憶體動態維護的該索引記錄辨識該揮發式記憶體目前儲存的群組映射表。
- 如申請專利範圍第1項所述的資料儲存裝置,其中:該主機指示對應一第二群組映射表的一第二邏輯位址、且該第二群組映射表在該非揮發式記憶體的實體位址是由該第一指標表上的一第二索引記錄時,該微處理器根據該第二索引查詢載於該揮發式記憶體的該第一指標表,獲得該第二群組映射表在該非揮 發式記憶體的實體位址,據以自該非揮發式記憶體將該第二群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
- 如申請專利範圍第2項所述的資料儲存裝置,其中:該第一指標表在該非揮發式記憶體的實體位址是由一第二指標表上的一第三索引記錄;該主機指示對應的一第三群組映射表的一第三邏輯位址、且該第三群組映射表在該非揮發式記憶體的實體位址是由一第三指標表上的一第四索引記錄、且該第三指標表在該非揮發式記憶體的實體位址是由該第二指標表上的一第五索引記錄時,該微處理器根據該第五索引查詢載於該揮發式記憶體的該第二指標表,獲得該第三指標表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三指標表載入該揮發式記憶體,且該微處理器更根據該第四索引查詢載於該揮發式記憶體的該第三指標表,獲得該第三群組映射表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
- 如申請專利範圍第3項所述的資料儲存裝置,其中:該微處理器是在該資料儲存裝置開機時,自該非揮發式記憶體,將最高階層的一第四指標表載入該揮發式記憶體常駐。
- 如申請專利範圍第4項所述的資料儲存裝置,其中:上述第一、第二以及第三邏輯位址是採一邏輯位址格式; 該邏輯位址格式的一第一位元段用作該第四指標表的索引;該邏輯位址格式的一第二位元段用作該第二指標表的索引;該邏輯位址格式的一第三位元段用作該第一指標表以及該第三指標表的索引;且該邏輯位址格式的一第四位元段用作該第一群組映射表、該第二群組映射表、以及該第三群組映射表的索引。
- 如申請專利範圍第項5所述的資料儲存裝置,其中:該微處理器更以上述第一位元段、第二位元段、以及第三位元段更新儲存於該揮發式記憶體的該索引記錄。
- 一種非揮發式記憶體控制方法,包括:根據一主機指示的一第一邏輯位址,自一非揮發式記憶體將一第一群組映射表載入一揮發式記憶體,據以操作該非揮發式記憶體;且令該揮發式記憶體更載有階層式的複數個指標表,其中:該等指標表中,較高階層的指標表指示較低階層的指標表在該非揮發式記憶體的實體位址,且最低階層的一第一指標表上的一第一索引記錄該第一群組映射表在該非揮發式記憶體的實體位址;該揮發式記憶體更動態維護有一索引記錄,記錄該揮發式記憶體所載的階層式的該等指標表間,較高階層的指標表係哪一索引對應較低階層的指標表;且 該揮發式記憶體動態維護的該索引記錄係用於辨識該揮發式記憶體目前儲存的群組映射表。
- 如申請專利範圍第7項所述的非揮發式記憶體控制方法,更包括:在該主機指示對應一第二群組映射表的一第二邏輯位址、且該第二群組映射表在該非揮發式記憶體的實體位址是由該第一指標表上的一第二索引記錄時,根據該第二索引查詢載於該揮發式記憶體的該第一指標表,獲得該第二群組映射表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第二群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
- 如申請專利範圍第8項所述的非揮發式記憶體控制方法,該第一指標表在該非揮發式記憶體的實體位址是由一第二指標表上的一第三索引記錄,且該主機指示對應的一第三群組映射表的一第三邏輯位址、且該第三群組映射表在該非揮發式記憶體的實體位址是由一第三指標表上的一第四索引記錄、且該第三指標表在該非揮發式記憶體的實體位址是由該第二指標表上的一第五索引記錄時,包括以下步驟:根據該第五索引查詢載於該揮發式記憶體的該第二指標表,獲得該第三指標表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三指標表載入該揮發式記憶體;且 根據該第四索引查詢載於該揮發式記憶體的該第三指標表,獲得該第三群組映射表在該非揮發式記憶體的實體位址,據以自該非揮發式記憶體將該第三群組映射表載入該揮發式記憶體,用以操作該非揮發式記憶體。
- 如申請專利範圍第9項所述的非揮發式記憶體控制方法,更包括:在該資料儲存裝置開機時,自該非揮發式記憶體,將最高階層的一第四指標表載入該揮發式記憶體常駐。
- 如申請專利範圍第10項所述的非揮發式記憶體控制方法,其中:上述第一、第二以及第三邏輯位址是採一邏輯位址格式;該邏輯位址格式的一第一位元段用作該第四指標表的索引;該邏輯位址格式的一第二位元段用作該第二指標表的索引;該邏輯位址格式的一第三位元段用作該第一指標表以及該第三指標表的索引;且該邏輯位址格式的一第四位元段用作該第一群組映射表、該第二群組映射表、以及該第三群組映射表的索引。
- 如申請專利範圍第項11所述的非揮發式記憶體控制方法,更包括:以上述第一位元段、第二位元段、以及第三位元段更新儲存於該揮發式記憶體的該索引記錄。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100257A TWI761748B (zh) | 2020-01-06 | 2020-01-06 | 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 |
CN202010080363.6A CN113076265A (zh) | 2020-01-06 | 2020-02-05 | 多阶层映射资讯管理的数据储存装置以及非挥发式存储器控制方法 |
US17/112,027 US11416151B2 (en) | 2020-01-06 | 2020-12-04 | Data storage device with hierarchical mapping information management, and non-volatile memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100257A TWI761748B (zh) | 2020-01-06 | 2020-01-06 | 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202127258A TW202127258A (zh) | 2021-07-16 |
TWI761748B true TWI761748B (zh) | 2022-04-21 |
Family
ID=76609086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109100257A TWI761748B (zh) | 2020-01-06 | 2020-01-06 | 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11416151B2 (zh) |
CN (1) | CN113076265A (zh) |
TW (1) | TWI761748B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022063466A (ja) * | 2020-10-12 | 2022-04-22 | キオクシア株式会社 | メモリシステム及び情報処理システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW591385B (en) * | 2001-06-05 | 2004-06-11 | Infineon Technologies Ag | Apparatus and method for determining a physical address from a virtual address by using a hierarchical mapping regulation with compressed nodes |
TW200710654A (en) * | 2005-06-08 | 2007-03-16 | Micron Technology Inc | Robust index storage for non-volatile memory |
CN108139902A (zh) * | 2015-10-16 | 2018-06-08 | 科内克斯实验室公司 | 用于提供混合模式来访问ssd驱动器的方法和装置 |
US20190188124A1 (en) * | 2017-12-14 | 2019-06-20 | Micron Technology, Inc. | Multilevel addressing |
US20190236003A1 (en) * | 2016-09-06 | 2019-08-01 | Toshiba Memory Corporation | Storage device that maintains a plurality of layers of address mapping |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170235681A1 (en) * | 2016-02-12 | 2017-08-17 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
JP2019159791A (ja) * | 2018-03-13 | 2019-09-19 | 東芝メモリ株式会社 | メモリシステム |
-
2020
- 2020-01-06 TW TW109100257A patent/TWI761748B/zh active
- 2020-02-05 CN CN202010080363.6A patent/CN113076265A/zh active Pending
- 2020-12-04 US US17/112,027 patent/US11416151B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW591385B (en) * | 2001-06-05 | 2004-06-11 | Infineon Technologies Ag | Apparatus and method for determining a physical address from a virtual address by using a hierarchical mapping regulation with compressed nodes |
TW200710654A (en) * | 2005-06-08 | 2007-03-16 | Micron Technology Inc | Robust index storage for non-volatile memory |
CN108139902A (zh) * | 2015-10-16 | 2018-06-08 | 科内克斯实验室公司 | 用于提供混合模式来访问ssd驱动器的方法和装置 |
US20190236003A1 (en) * | 2016-09-06 | 2019-08-01 | Toshiba Memory Corporation | Storage device that maintains a plurality of layers of address mapping |
US20190188124A1 (en) * | 2017-12-14 | 2019-06-20 | Micron Technology, Inc. | Multilevel addressing |
Also Published As
Publication number | Publication date |
---|---|
US11416151B2 (en) | 2022-08-16 |
CN113076265A (zh) | 2021-07-06 |
TW202127258A (zh) | 2021-07-16 |
US20210208798A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US11854612B1 (en) | Lifetime mixed level non-volatile memory system | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US7962687B2 (en) | Flash memory allocation for improved performance and endurance | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
US20140122781A1 (en) | Hierarchical flash translation layer | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI761748B (zh) | 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 | |
US11392489B2 (en) | Data storage device and non-volatile memory control method | |
TWI766194B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI724483B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI705328B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11080203B2 (en) | Data storage device and control method for non-volatile memory | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI771926B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20240233816A1 (en) | Lifetime mixed level non-volatile memory system |