TWI634424B - 資料儲存裝置以及其操作方法 - Google Patents
資料儲存裝置以及其操作方法 Download PDFInfo
- Publication number
- TWI634424B TWI634424B TW106115112A TW106115112A TWI634424B TW I634424 B TWI634424 B TW I634424B TW 106115112 A TW106115112 A TW 106115112A TW 106115112 A TW106115112 A TW 106115112A TW I634424 B TWI634424 B TW I634424B
- Authority
- TW
- Taiwan
- Prior art keywords
- data storage
- storage device
- host
- logical address
- trimming
- Prior art date
Links
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/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/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
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/0608—Saving storage space on storage systems
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0658—Controller construction arrangements
-
- 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
- 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
-
- 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/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/7207—Details relating to flash memory management management of metadata or control data
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一種高效實現空間修整的資料儲存裝置。一微控制器在一主機操作下,配置一非揮發式記憶體儲存資料,並維護該主機的邏輯位址與該非揮發式記憶體之間的映射資訊。該微控制器更轉換該主機發下的一空間修整指令,使該空間修整指令的複數筆修整要求所多次指示的一目標主機區塊結合為單次被指示。該目標主機區塊的一目標主機區塊映射表自該非揮發式記憶體載出進行修正的次數因而大幅下降。
Description
本發明係有關於資料儲存裝置,特別有關於非揮發式記憶體的空間修整(trim)。
資料儲存裝置所採用的非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
資料儲存裝置的效能受限於非揮發式記憶體的操作特性。本領域一項重要議題為提升資料儲存裝置之效能。
本案揭露一種整合型空間修整技術,使得主機傳來的一空間修整指令(trim)無須過分耗費計算資源。
根據本案一種實施方式提供的一資料儲存裝置包括一非揮發式記憶體、一隨機存取記憶空間以及一微控制器。在一主機操作下,該微控制器配置該非揮發式記憶體儲存資料,並維護該主機的邏輯位址與該非揮發式記憶體之間的映射資訊。該微控制器更轉換該主機發下的一空間修整指令,使該
空間修整指令的複數筆修整要求所多次指示的一目標主機區塊結合為單次被指示。該微控制器將結合成單次被指示的該目標主機區塊的一目標主機區塊映射表自該非揮發式記憶體載出至該隨機存取記憶空間,於該隨機存取記憶空間完成該空間修整指令之上述複數筆修整要求對該目標主機區塊所要求的映射資訊無效修正,再將該目標主機區塊映射表自該隨機存取記憶空間回存該非揮發式記憶體。
在一種實施方式中,上述複數筆修整要求各自指示一長度以及一起始邏輯位址,以對應一邏輯位址段。該微控制器可更對該空間修整指令之上述複數筆修整要求所指示的上述邏輯位址段進行接合,使重疊或連續之邏輯位址段接合在一起。該微控制器更可以一修整單位裁切接合後的上述邏輯位址段,裁去不滿該修整單位的首端或/以及尾端。
另一種實施方式是實現的一種資料儲存裝置操作方法,包括:對應一資料儲存裝置提供一隨機存取空間,該資料儲存裝置包括一非揮發式記憶體;根據一主機,配置該非揮發式記憶體儲存資料,並維護該主機的邏輯位址與該非揮發式記憶體之間的映射資訊;轉換該主機發下的一空間修整指令,使該空間修整指令的複數筆修整要求所多次指示的一目標主機區塊結合為單次被指示;且將結合成單次被指示的該目標主機區塊的一目標主機區塊映射表自該非揮發式記憶體載出至該隨機存取記憶空間,於該隨機存取記憶空間完成該空間修整指令之上述複數筆修整要求對該目標主機區塊所要求的映射資訊無效修正,再將該目標主機區塊映射表自該隨機存取記憶
空間回存該非揮發式記憶體。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧快閃記憶體
102‧‧‧資料區域
104‧‧‧閒置區域
400‧‧‧資料儲存裝置
402‧‧‧控制單元
404‧‧‧主機
410‧‧‧微控制器
412‧‧‧隨機存取記憶空間
414‧‧‧唯讀記憶體
420‧‧‧在系統編程區塊池
422‧‧‧系統資訊區塊池
424‧‧‧閒置區塊池
426‧‧‧資料區塊池
430、432‧‧‧隨機存取記憶空間412所提供的空間
(BLK#,U#)‧‧‧(物理區塊編號,儲存單元編號)
BLK#1、BLK#2、BLK#Z‧‧‧物理區塊
H#3、H#4、H#5、H#6、H#7、H#H、H#K、H#L、H#M、H#N‧‧‧主機區塊
H2F‧‧‧映射表
H2F_H#1、H2F_H#2、H2F_H#N‧‧‧主機區塊映射表
j‧‧‧變數
S502…S516‧‧‧步驟
U#i、U#(i+1)、U#(i+2)、U#(i+3)‧‧‧儲存單元
第1A圖以及第1B圖根據本案一種實施方式圖解一快閃記憶體100的物理空間規劃;第2圖示意以邏輯位址(如,邏輯區塊位址LBA或全域主機頁GHP)為索引的映射表H2F;第3圖舉例說明一空間修整指令(trim command);第4圖以方塊圖圖解根據本案一種實施方式實現的一資料儲存裝置400;第5圖為流程圖,根據本案一種實施方式描述整合型空間修整;第6圖示意第3圖的空間修整指令的整合結果。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等具有長時間資料保存之記憶體裝
置。以下特別以快閃記憶體(flash memory)為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,常用來實現記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD、NVME、M.2、U.2)...等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的中央處理單元(CPU)可視為操作所述資料儲存裝置的一主機。
第1A圖以及第1B圖根據本案一種實施方式圖解一快閃記憶體100的物理空間規劃。
如第1A圖所示,快閃記憶體100的儲存空間劃分為複數個區塊(或稱物理區塊,physical blocks)BLK#1、BLK#2…BLK#Z等,Z為正整數。各物理區塊包括複數物理頁(physical pages),例如:256個物理頁。
第1B圖詳解物理頁結構。每一物理頁包括一資料區域(data area)102、以及一備用區域(spare area)104。資料區域102可劃分為複數個儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3),經配置後,對應邏輯位址儲存資料。邏輯位址有多種形式,例如,以邏輯區塊位址(Logical Block Address,簡稱LBA)、或全域主機頁(Global Host Page,簡稱GHP)編排。一種實施方式中,資料區域102尺寸為16KB,儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3)各為4KB。各4KB儲存單元對應8個
邏輯區塊位址(如LBA#0~LBA#7之類)、或一個全域主機頁。備用區域104是用來儲存元資料(metadata),包括該物理頁各儲存單元U#i、U#(i+1)、U#(i+2)、U#(i+3)所儲存的資料的邏輯位址…等。
然而,備用區域104紀錄的儲存單元至邏輯位址映射關係並非一直有效。快閃記憶體100有一種特殊的物理特性:其中資料之更新並非對同樣空間作複寫,而是將更新資料儲存在閒置空間,且原空間的儲存內容將轉為無效。因應之,快閃記憶體100之映射資訊需動態整理成映射表(如,顯示邏輯位址至物理空間映射的映射表H2F)。
第2圖示意以邏輯位址(如,邏輯區塊位址LBA或全域主機頁GHP)為索引的映射表H2F,其中記錄不同邏輯位址的資料是被儲存至快閃記憶體100哪一物理區塊BLK#之哪一儲存單元U#(物理位址)。因應龐大的儲存空間,映射表H2F可更以主機區塊(host block)為單位,對應主機區塊H#1、H#2…H#Z細分為主機區塊映射表H2F_H#1、H2F_H#2…H2F_H#Z,Z為正整數。一種實施方式中,一主機區塊映射表的長度為64KB(可儲存於4個連續物理頁中),用以記錄8K個資料的映射關係。一主機區塊映射表涉及的邏輯位址可為GPH#0~#8191、GPH#8192~#16383、GPH#16384~#24575、GPH#24576~#32767、或GPH#32768~#40959之類。該些主機區塊映射表H2F_H#1、H2F_H#2…H2F_H#Z於更新後,可依序儲存至特定的物理區塊中,例如系統資訊區塊。一種實施方式中,為了加速主機區塊映射表H2F_H的讀取,主機區塊映射表H2F_H#1、H2F_H#2…
H2F_H#Z可以一指標列表管理,或以一高階映射表(high-level mapping table)來記錄主機區塊映射表H2F_H的編號以及主機區塊映射表H2F_H所儲存的物理位址的映射資訊。映射表H2F是資料儲存裝置操控快閃記憶體100運作的重要依據。
以上映射表H2F使得空間修整指令(trim command)相當適用於快閃記憶體100。主機可發出空間修整指令至資料儲存裝置以通知某一或複數資料已不再有效。由於資料已不再有效,資料儲存裝置可自行將某一或複數資料的記錄自映射表H2F中移除(如,無效其邏輯位址的映射資訊)。僅餘無效資料的物理空間可於垃圾回收(garbage collection)操作時回收、再利用。第3圖舉例說明一空間修整指令。一空間修整指令可有高達500筆的修整要求。每一筆修整要求可指示一長度以及一起始邏輯位址,或是起始邏輯位址以及終點邏輯位址,以對應一邏輯位址段。映射表H2F中,修整要求所指示的邏輯位址段的映射資訊可被修改為一預設值,例如:0xFFFF或0x0000,以打斷或移除該邏輯位址段中所有邏輯位址至該快閃記憶體100之映射。
第3圖所示實施例更示意每筆修整要求所對應的主機區塊,依序涉及主機區塊H#5、H#6、H#7、H#3、H#4、H#5、H#6、H#7、H#3、H#4…等。由第3圖中可知,同一主機區塊可能在不同時間點被要求修整,造成系統負擔。如何優化該些修整要求成為一項技術課題。
第4圖以方塊圖圖解根據本案一種實施方式實現的一資料儲存裝置400,其中包括快閃記憶體100以及一控制單
元402。控制單元402耦接於一主機404與該快閃記憶體100之間,包括根據主機404所下達的指令操作該快閃記憶體100。控制單元402包括一微控制器410、一隨機存取記憶空間412以及一唯讀記憶體414。隨機存取記憶空間412可與微控制器410置於同一個晶粒(die)、或是分開製作,且可能空間有限(相較於大尺寸DRAM)。例如,SD卡可以512KB的靜態隨機存取記憶體(SRAM)實現所述隨機存取記憶空間412。唯讀記憶體414存有唯讀程式碼(如,ROM code)。快閃記憶體100上更可規劃有一在系統編程(in-system programming,簡稱ISP)區塊池420,載有在系統編程(ISP)程式。微控制器410執行該唯讀記憶體414所載之唯讀程式碼或/以及空間410之在系統編程(ISP)程式,以進行運作,且運作中可利用該隨機存取記憶空間412作動態資訊儲存。本案係以控制單元402對快閃記憶體100作整合型空間修整,其中涉及該隨機存取記憶空間412之詳細利用。
參閱第4圖,快閃記憶體100之物理區塊還包括以下配置:系統資訊區塊池422、閒置區塊池424以及資料區塊池426。系統資訊區塊池422之區塊儲存系統資訊,包括映射表H2F之非揮發式存儲,映射表H2F可同第2圖所示概念細分為複數個主機區塊映射表H2F_H#1、H2F_H#2…H2F_H#Z。閒置區塊池424內的區塊可經控制單元402配置來儲存資料(例如,作為主動區塊接收主機404的寫入資料、或作為垃圾回收之目標區塊),並待資料儲存完成(寫滿、或中斷不再利用)即推入資料區塊池426定義為資料區塊。資料區塊池426之區塊的斜線部分,示意空間修整指令所欲修整的(複數個)邏輯位址段。
微控制器410會利用隨機存取記憶空間412,儲存主機404傳來的一空間修整指令(trim command),再判斷空間修整指令的所有修整要求所對應的複數邏輯位址段,再判斷複數邏輯位址段所涉及的主機區塊映射表H2F_H,例如:依序包括主機區塊映射表H2F_H#N、H#H、H#K、H#L、H#M、H#N…等,H、K、L、M、N為正整數。將主機區塊映射表H2F_H予以整理,微控制器410會辨識出數個修整要求皆與主機區塊映射表H2F_H#N有關。關於涉及多筆修整要求的主機區塊映射表H2F_H#N,微控制器410從快閃記憶體100載出其主機區塊映射表H2F_H#N至該隨機存取記憶空間412,一口氣完成該些筆修整要求的邏輯位址段的映射資訊的修改(例如,填FFFF)。完成此次修改後,由於主機區塊映射表H2F_H#N的內容已被更新,微控制器410較佳將更新後的主機區塊映射表H2F_H#N自該隨機存取記憶空間412回存至該快閃記憶體100,用於該映射表H2F之非揮發式維護。經由以上技術手段,微控制器410無須反覆將主機區塊映射表H2F_H#N自快閃記憶體100之映射表H2F載出且回存,使資料儲存裝置400執行空間修整指令之效能大大提升。
一種實施方式中,微控制器410先聯集(union)複數修整要求所對應的複數邏輯位址段後,產生一聯集後邏輯位址段,再找出此聯集後邏輯位址段所對應的複數主機區塊映射表H2F_H,最後,依先後順序或依權重而選取複數主機區塊映射表H2F_H其中之一作為目標主機區塊,並執行此目標主機區塊的映射資訊的修改,依此類推。
一種實施方式中,動態隨機存取記憶體SRAM提供第一空間430以及第二空間432。第一空間430用於資料整理,以分析主機404傳來的空間修整指令。第二空間432則用於單個主機區塊映射表之動態維護。
第5圖為流程圖,根據本案一種實施方式描述整合型空間修整。步驟S502,接收來自主機的空間修整指令。步驟S504,取得空間修整指令的複數修整要求。步驟S506,取得複數修整要求所對應的複數邏輯位址段。步驟S508整理複數邏輯位址段以產生複數主機區塊映射表H2F_H,例如主機區塊映射表H2F_H#10~#20,其中,整理複數邏輯位址段以產生複數主機區塊映射表H2F_H乃將複數邏輯位址段予以接合後,再找出接合後邏輯位址段所對應之複數主機區塊映射表H2F_H;或者,記錄每一邏輯位址段所對應的主機區塊映射表H2F_H以產生複數主機區塊映射表H2F_H,其中,使每一主機區塊映射表H2F_H僅單次出現。步驟S510,讀取步驟S508整理後的複數主機區塊映射表其中之一,例如主機區塊映射表H2F_H#10,此主機區塊映射表H2F_H較佳自快閃記憶體1O0載至隨機存取記憶空間412。步驟S512:依據複數修整要求一次性修改載出的主機區塊映射表H2F_H的映射資訊。步驟S514將更新後的主機區塊映射表H2F_H回存快閃記憶體100,以避免電力中斷所造成的資料遺失。步驟S516判斷修整是否結束,是否還有需要修整的主機區塊映射表H2F_H。若修整未結束,則流程回到步驟S510,讀取另一個複數主機區塊映射表H2F_H,例如主機區塊映射表H2F_H#11,流程進行直至步驟S516判定已無欲修整的
主機區塊映射表H2F_H。
前述邏輯位址段接合可將主機404傳來的一空間修整指令(trim command)的複數筆修整要求所指示的重疊或連續邏輯位址段接合在一起。一種實施方式中,空間修整需對齊修整單位。修整單位可同第1B圖所述儲存單元U#i之大小(例如4KB)。關於欲無效其映射資料的邏輯位址段,其中不對齊儲存單元之未滿4KB的首端或尾端空間將不予處理。前述邏輯位址段接合技術,將使得尾端不滿4KB空間而未修整到的事件較少發生。
第6圖示意第3圖的空間修整指令的整合結果。為了簡明起見,此段只對第3圖所示4筆修整要求作討論。第3圖的四筆修整將經第5圖流程處理。相較於第3圖須進行主機區塊映射表H2F_H#5→H2F_H#6→H2F_H#7→H2F_H#3→H2F_H#4→H2F_H#5→H2F_H#6→H2F_H#7→H2F_H#3→H2F_H#4如此高達10回合的映射表載出、修正以及回存,所揭露的整合型空間修整將大大降低系統負擔。第6圖顯示,經本案整合型空間修整技術,第3圖所示四筆修整要求可僅藉5回合的映射表載出、修正以及回存即可進行,依序為:H2F_H#5→H2F_H#6→H2F_H#7→H2F_H#3→H2F_H#4。
其他採用上述整合型空間修整概念實現的技術都屬於本案所欲保護的範圍。基於以上技術內容,本案更涉及資料儲存裝置操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精
神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (25)
- 一種資料儲存裝置,包括:一非揮發式記憶體;一隨機存取記憶空間;以及一微控制器,在一主機操作下,配置該非揮發式記憶體儲存資料,並維護該主機的邏輯位址與該非揮發式記憶體之間的映射資訊;其中:該微控制器更轉換該主機發下的一空間修整指令,使該空間修整指令的複數筆修整要求所多次指示的一目標主機區塊結合為單次被指示;且該微控制器將結合成單次被指示的該目標主機區塊的一目標主機區塊映射表自該非揮發式記憶體載出至該隨機存取記憶空間,並於該隨機存取記憶空間一次性修正該目標主機區塊映射表,其中,僅藉單次自該非揮發式記憶體載出該目標主機區塊映射表至該隨機存取空間,該空間修整指令之上述複數筆修整要求對該目標主機區塊之多次指示所要求無效的映射資訊完成無效修正。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:上述複數筆修整要求各自指示一長度以及一起始邏輯位址,以對應一邏輯位址段。
- 如申請專利範圍第2項所述之資料儲存裝置,其中: 該微控制器更對該空間修整指令之上述複數筆修整要求所指示的上述邏輯位址段進行接合,使重疊或連續之邏輯位址段接合在一起。
- 如申請專利範圍第3項所述之資料儲存裝置,其中:該微控制器更將接合後的上述邏輯位址段轉換為主機區塊,以修正所對應的主機區塊映射表,使該非揮發式記憶體釋出可用空間。
- 如申請專利範圍第3項所述之資料儲存裝置,其中:該微控制器更以一修整單位裁切接合後的上述邏輯位址段,裁去不滿該修整單位的首端或/以及尾端。
- 如申請專利範圍第5項所述之資料儲存裝置,其中:該微控制器更將接合且裁切後的上述邏輯位址段轉換為主機區塊,以修正所對應的主機區塊映射表,使該非揮發式記憶體釋出可用空間。
- 如申請專利範圍第6項所述之資料儲存裝置,其中:該非揮發式記憶體劃分為複數個儲存單元;且該主機的邏輯位址與該非揮發式記憶體之間的映射資訊是標示該主機的邏輯位址映射上述儲存單元何者。
- 如申請專利範圍第7項所述之資料儲存裝置,其中:上述儲存單元之尺寸即用作上述修整單位。
- 如申請專利範圍第7項所述之資料儲存裝置,其中:該非揮發式記憶體包括複數個物理區塊,上述各物理區塊包括複數個物理頁,且各物理頁包括N個上述儲存單元。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器是將映射資訊設定成一預設值使之無效。
- 一種資料儲存裝置操作方法,包括:對應一資料儲存裝置提供一隨機存取空間,該資料儲存裝置包括一非揮發式記憶體;根據一主機,配置該非揮發式記憶體儲存資料,並維護該主機的邏輯位址與該非揮發式記憶體之間的映射資訊;轉換該主機發下的一空間修整指令,使該空間修整指令的複數筆修整要求所多次指示的一目標主機區塊結合為單次被指示;且將結合成單次被指示的該目標主機區塊的一目標主機區塊映射表自該非揮發式記憶體載出至該隨機存取記憶空間,並於該隨機存取記憶空間一次性修正該目標主機區塊映射表,其中,僅藉單次自該非揮發式記憶體載出該目標主機區塊映射表至該隨機存取空間,該空間修整指令之上述複數筆修整要求對該目標主機區塊之多次指示所要求無效的映射資訊完成無效修正。
- 如申請專利範圍第11項所述之資料儲存裝置操作方法,其中:上述複數筆修整要求各自指示一長度以及一起始邏輯位址,以對應一邏輯位址段。
- 如申請專利範圍第12項所述之資料儲存裝置操作方法,更包括: 對該空間修整指令之上述複數筆修整要求所指示的上述邏輯位址段進行接合,使重疊或連續之邏輯位址段接合在一起。
- 如申請專利範圍第13項所述之資料儲存裝置操作方法,更包括:將接合後的上述邏輯位址段轉換為主機區塊,以修正所對應的主機區塊映射表,使該非揮發式記憶體釋出可用空間。
- 如申請專利範圍第13項所述之資料儲存裝置操作方法,更包括:以一修整單位裁切接合後的上述邏輯位址段,裁去不滿該修整單位的首端或/以及尾端。
- 如申請專利範圍第15項所述之資料儲存裝置操作方法,更包括:將接合且裁切後的上述邏輯位址段轉換為主機區塊,以修正所對應的主機區塊映射表,使該非揮發式記憶體釋出可用空間。
- 如申請專利範圍第16項所述之資料儲存裝置操作方法,其中:該非揮發式記憶體劃分為複數個儲存單元;且該主機的邏輯位址與該非揮發式記憶體之間的映射資訊是標示該主機的邏輯位址映射上述儲存單元何者。
- 如申請專利範圍第17項所述之資料儲存裝置操作方法,其中: 上述儲存單元之尺寸即用作上述修整單位。
- 如申請專利範圍第17項所述之資料儲存裝置操作方法,其中:該非揮發式記憶體包括複數個物理區塊,上述各物理區塊包括複數個物理頁,且各物理頁包括N個上述儲存單元。
- 如申請專利範圍第11項所述之資料儲存裝置操作方法,其中是將映射資訊設定成一預設值,以使之無效。
- 一種資料儲存裝置,包括:一非揮發式記憶體;以及一微控制器,維護一映射表,記錄一主機的邏輯位址與該非揮發式記憶體的物理位址之間的映射資訊,並將該映射表細分成複數主機區塊映射表,其中,該微控制器接收一空間修整指令,並將該空間修整指令所包括的複數修整要求予以整合;且該微控制器選取該些主機區塊映射表其中之一並執行整合後的該些修整要求。
- 如申請專利範圍第21項所述之資料儲存裝置,其中,該些修整要求乃依據對應的該些主機區塊映射表而進行整合。
- 如申請專利範圍第21項所述之資料儲存裝置,其中,該些修整要求乃依據邏輯位址的先後順序而進行整合。
- 如申請專利範圍第21項所述之資料儲存裝置,其中,每一該些修整要求對應至一邏輯位址段。
- 如申請專利範圍第21項所述之資料儲存裝置,其中,執行 整合後的該些修整要求乃修改選取的主機區塊映射表中該些修整要求所涵蓋的至少一邏輯位址。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106115112A TWI634424B (zh) | 2017-05-08 | 2017-05-08 | 資料儲存裝置以及其操作方法 |
CN201710845382.1A CN108874301B (zh) | 2017-05-08 | 2017-09-19 | 数据储存装置以及其操作方法 |
US15/813,573 US10481837B2 (en) | 2017-05-08 | 2017-11-15 | Data storage device and method for operating data storage device with efficient trimming operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106115112A TWI634424B (zh) | 2017-05-08 | 2017-05-08 | 資料儲存裝置以及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI634424B true TWI634424B (zh) | 2018-09-01 |
TW201843590A TW201843590A (zh) | 2018-12-16 |
Family
ID=64015298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106115112A TWI634424B (zh) | 2017-05-08 | 2017-05-08 | 資料儲存裝置以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10481837B2 (zh) |
CN (1) | CN108874301B (zh) |
TW (1) | TWI634424B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884954B2 (en) | 2018-09-17 | 2021-01-05 | Silicon Motion, Inc. | Method for performing adaptive locking range management, associated data storage device and controller thereof |
TWI721365B (zh) * | 2018-09-17 | 2021-03-11 | 慧榮科技股份有限公司 | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |
US11030093B2 (en) | 2018-09-17 | 2021-06-08 | Silicon Motion, Inc. | High efficiency garbage collection method, associated data storage device and controller thereof |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102583592B1 (ko) * | 2018-03-27 | 2023-10-06 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20200088713A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN111610929B (zh) * | 2019-02-26 | 2023-04-14 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111611178B (zh) * | 2019-02-26 | 2023-05-26 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN112882649B (zh) | 2019-11-29 | 2024-04-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11748023B2 (en) | 2019-11-29 | 2023-09-05 | Silicon Motion, Inc. | Data storage device and non-volatile memory control method |
CN112882650B (zh) * | 2019-11-29 | 2024-04-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI742698B (zh) * | 2019-11-29 | 2021-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN113296691B (zh) * | 2020-07-27 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 数据处理***、方法、装置以及电子设备 |
CN114356793B (zh) * | 2021-11-25 | 2024-02-27 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145306A1 (en) * | 2009-12-15 | 2011-06-16 | Boyd James A | Method for trimming data on non-volatile flash media |
US20130132650A1 (en) * | 2011-11-23 | 2013-05-23 | Samsung Electronics Co., Ltd. | Storage device based on a flash memory and user device including the same |
US20130275660A1 (en) * | 2012-04-12 | 2013-10-17 | Violin Memory Inc. | Managing trim operations in a flash memory system |
US20140129758A1 (en) * | 2012-11-06 | 2014-05-08 | Spansion Llc | Wear leveling in flash memory devices with trim commands |
CN105760110A (zh) * | 2014-12-22 | 2016-07-13 | 手持产品公司 | 计算器件中所管理的nand闪速存储器的延迟修整 |
CN105760311A (zh) * | 2016-02-17 | 2016-07-13 | 珠海全志科技股份有限公司 | trim命令响应方法和***及操作*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060670B2 (en) * | 2004-03-17 | 2011-11-15 | Super Talent Electronics, Inc. | Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device |
KR20090121631A (ko) * | 2008-05-22 | 2009-11-26 | 삼성전자주식회사 | 반도체 메모리 장치, 메모리 시스템 및 그것의 데이터 복구방법 |
US20120059976A1 (en) * | 2010-09-07 | 2012-03-08 | Daniel L. Rosenband | Storage array controller for solid-state storage devices |
US11232022B2 (en) * | 2010-10-29 | 2022-01-25 | Samsung Electronics Co., Ltd. | Memory system, data storage device, user device and data management method thereof having a data management information matching determination |
US10803970B2 (en) * | 2011-11-14 | 2020-10-13 | Seagate Technology Llc | Solid-state disk manufacturing self test |
US8949512B2 (en) * | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
CN102789368B (zh) * | 2012-06-21 | 2015-10-21 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、*** |
CN106843742A (zh) * | 2015-12-03 | 2017-06-13 | 广明光电股份有限公司 | 固态硬盘及其执行删除命令的方法 |
US9927985B2 (en) * | 2016-02-18 | 2018-03-27 | SK Hynix Inc. | Method of dynamic table journaling |
-
2017
- 2017-05-08 TW TW106115112A patent/TWI634424B/zh active
- 2017-09-19 CN CN201710845382.1A patent/CN108874301B/zh active Active
- 2017-11-15 US US15/813,573 patent/US10481837B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145306A1 (en) * | 2009-12-15 | 2011-06-16 | Boyd James A | Method for trimming data on non-volatile flash media |
US20130132650A1 (en) * | 2011-11-23 | 2013-05-23 | Samsung Electronics Co., Ltd. | Storage device based on a flash memory and user device including the same |
US20130275660A1 (en) * | 2012-04-12 | 2013-10-17 | Violin Memory Inc. | Managing trim operations in a flash memory system |
US20140129758A1 (en) * | 2012-11-06 | 2014-05-08 | Spansion Llc | Wear leveling in flash memory devices with trim commands |
CN105760110A (zh) * | 2014-12-22 | 2016-07-13 | 手持产品公司 | 计算器件中所管理的nand闪速存储器的延迟修整 |
CN105760311A (zh) * | 2016-02-17 | 2016-07-13 | 珠海全志科技股份有限公司 | trim命令响应方法和***及操作*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884954B2 (en) | 2018-09-17 | 2021-01-05 | Silicon Motion, Inc. | Method for performing adaptive locking range management, associated data storage device and controller thereof |
TWI721365B (zh) * | 2018-09-17 | 2021-03-11 | 慧榮科技股份有限公司 | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |
US11030093B2 (en) | 2018-09-17 | 2021-06-08 | Silicon Motion, Inc. | High efficiency garbage collection method, associated data storage device and controller thereof |
US11360912B2 (en) | 2018-09-17 | 2022-06-14 | Silicon Motion, Inc. | Method for performing adaptive locking range management, associated data storage device and controller thereof |
Also Published As
Publication number | Publication date |
---|---|
CN108874301B (zh) | 2021-08-10 |
US20180321883A1 (en) | 2018-11-08 |
TW201843590A (zh) | 2018-12-16 |
CN108874301A (zh) | 2018-11-23 |
US10481837B2 (en) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI634424B (zh) | 資料儲存裝置以及其操作方法 | |
CN110058796B (zh) | 数据储存装置 | |
CN109426619B (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
TWI653533B (zh) | 資料儲存裝置以及其操作方法 | |
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
US20180275887A1 (en) | Data Storage Device and Operating Method of Data Storage Device | |
US10437737B2 (en) | Data storage device | |
TWI679534B (zh) | 資料儲存裝置以及資料儲存方法 | |
US9164704B2 (en) | Semiconductor storage device for handling write to nonvolatile memories with data smaller than a threshold | |
US11397669B2 (en) | Data storage device and non-volatile memory control method | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
JP4745465B1 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
CN112882649B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN115756312A (zh) | 数据访问***、数据访问方法和存储介质 | |
JP2000227871A (ja) | 不揮発性記憶装置、その制御方法、および、情報記録媒体 | |
JP5204265B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
US11461225B2 (en) | Storage device, control method of storage device, and storage medium | |
TWI742698B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
KR100479170B1 (ko) | 메모리 억세스 제어장치 및 방법 | |
CN112885397B (zh) | 数据储存装置以及非挥发式存储器控制方法 |