TWI693517B - 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 - Google Patents
用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 Download PDFInfo
- Publication number
- TWI693517B TWI693517B TW107140730A TW107140730A TWI693517B TW I693517 B TWI693517 B TW I693517B TW 107140730 A TW107140730 A TW 107140730A TW 107140730 A TW107140730 A TW 107140730A TW I693517 B TWI693517 B TW I693517B
- Authority
- TW
- Taiwan
- Prior art keywords
- namespace
- controller
- host
- command
- logical
- 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種用來進行儲存空間管理之方法以及資料儲存裝置及其控制器。該方法可包含:從一主機接收一辨識控制器指令;因應該辨識控制器指令,回傳一回覆至該主機,以指出支援複數個邏輯區塊位址格式,其中該複數個邏輯區塊位址格式係關於非揮發性記憶體之存取,且包含第一、第二邏輯區塊位址格式;從該主機接收一第一命名空間管理指令;因應該第一命名空間管理指令,建立採用第一邏輯區塊位址格式之第一命名空間;從該主機接收一第二命名空間管理指令;以及因應該第二命名空間管理指令,建立採用第二邏輯區塊位址格式之第二命名空間。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來進行儲存空間管理之方法以及相關之資料儲存裝置及其控制器。
快閃記憶體可廣泛地應用於各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell, SLC)、多階細胞(multiple level cell, MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的資料儲存裝置產品可採用三階細胞(triple level cell, TLC)快閃記憶體,甚至四階細胞(quadruple level cell, QLC)快閃記憶體。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。
依據相關技術,有了這些管理機制的資料儲存裝置還是有不足之處。舉例來說,當存取該資料儲存裝置時,主機(host device)於傳統模式中可能以某個大小的單位諸如0.5 KB(kilobyte;千位元組)來存取,而這些管理機制可能主要以另一個大小的單位諸如4 KB來進行該資料儲存裝置之內部管理,其中該資料儲存裝置中的既有的設計可使該資料儲存裝置相容於該傳統模式中之主機。針對較新主機之4KB原生模式(4-KB native mode),相關技術中缺乏立即可行的解決方案來使該資料儲存裝置相容於該4KB原生模式。於是,該資料儲存裝置的硬體架構被迫要被修改,換句話說,需要重新開發其新的積體電路,這可導致相關成本(諸如材料成本與人力成本)大幅地增加。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現相容於該4KB原生模式之資料儲存裝置。
本發明之一目的在於提供一種用來進行儲存空間管理之方法以及相關之資料儲存裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行儲存空間管理之方法以及相關之資料儲存裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化(optimal)效能。
本發明之至少一實施例提供一種用來進行儲存空間管理之方法,其中該方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory, NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。該方法可包含:從一主機(host device)接收一辨識控制器(identify controller)指令;因應該辨識控制器指令,回傳(return)一回覆至該主機,以指出支援複數個邏輯區塊位址格式(logical block address format, LBA format),其中該複數個邏輯區塊位址格式係關於該非揮發性記憶體之存取(access),且該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式;從該主機接收一第一命名空間管理(namespace management, NS management)指令;因應該第一命名空間管理指令,建立(establish)採用該第一邏輯區塊位址格式之一第一命名空間;從該主機接收一第二命名空間管理指令;以及因應該第二命名空間管理指令,建立採用該第二邏輯區塊位址格式之一第二命名空間。
本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收一辨識控制器指令;因應該辨識控制器指令,該控制器回傳一回覆至該主機,以指出支援複數個邏輯區塊位址格式,其中該複數個邏輯區塊位址格式係關於該非揮發性記憶體之存取,且該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式;該控制器從該主機接收一第一命名空間管理指令;因應該第一命名空間管理指令,該控制器建立採用該第一邏輯區塊位址格式之一第一命名空間;該控制器從該主機接收一第二命名空間管理指令;以及因應該第二命名空間管理指令,該控制器建立採用該第二邏輯區塊位址格式之一第二命名空間。
本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收一辨識控制器指令;因應該辨識控制器指令,該控制器回傳一回覆至該主機,以指出支援複數個邏輯區塊位址格式,其中該複數個邏輯區塊位址格式係關於該非揮發性記憶體之存取,且該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式;該控制器從該主機接收一第一命名空間管理指令;因應該第一命名空間管理指令,該控制器建立採用該第一邏輯區塊位址格式之一第一命名空間;該控制器從該主機接收一第二命名空間管理指令;以及因應該第二命名空間管理指令,該控制器建立採用該第二邏輯區塊位址格式之一第二命名空間。
本發明的好處之一是,透過動態的儲存空間管理,本發明能針對該控制器的運作進行妥善的控制,尤其,能在使用相同的硬體架構之狀況下因應使用者的各種需求(例如上述傳統模式或上述4KB原生模式)來存取非揮發性記憶體。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。
請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(host device)50的示意圖。例如:資料儲存裝置100可為固態硬碟(solid state drive, SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、…與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、…與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明並不限於此。另外,資料儲存裝置100可更包括揮發性記憶體元件以緩存資料,其中,揮發性記憶體元件較佳為動態隨機存取記憶體(Dynamic Random Access Memory,簡稱DRAM)。
如第1圖所示,記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(Read Only Memory, ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以隨機存取記憶體(Random Access Memory, RAM)來實施,較佳為靜態隨機存取記憶體(Static RAM,簡稱SRAM)。記憶體控制器110可將緩衝記憶體116作為第一外部快取(Cache),並將揮發性記憶體元件作為第二外部快取,揮發性記憶體元件的資料儲存量較佳大於緩衝記憶體116的資料儲存量,揮發性記憶體元件所緩存的資料較佳來自於緩衝記憶體116。
本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一錯誤更正碼電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主機50可藉由傳送複數個主機指令(Host Command)與對應的邏輯位址予記憶體控制器110來間接地存取資料儲存裝置100中之非揮發性記憶體120。記憶體控制器110接收該複數個主機指令與邏輯位址,並將該複數個主機指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之記憶單位(Memory Unit)或資料頁(Page),其中實體位址對應於邏輯位址。
另外,記憶體控制器110可儲存及更新至少一邏輯對實體位址映射表(logical-to-physical address mapping table,可簡稱為「L2P表」),諸如緩衝記憶體116中的L2P表116T以及非揮發性記憶體120中的L2P表120T,以管理實體位址與邏輯位址之間的映射關係,以供進行存取控制。例如,L2P表120T可包含該些映射關係的全部映射資訊。
另外L2P表120T可分割成數個群組(Group),而記憶體控制器110可依緩衝記憶體116的容量大小而將其中一個群組或全部群組載入緩衝記憶體116中作為L2P表116T,以供快速參考,但本發明不限於此。當使用者資料更新時,記憶體控制器110可依據使用者資料的最新映射關係來更新L2P表116T及/或120T。為了便於理解,L2P表120T可儲存在非揮發性記憶體元件122-1中,但本發明不限於此。
例如,記憶體控制器110可將L2P表120T儲存於非揮發性記憶體120中之任何非揮發性記憶體元件,諸如非揮發性記憶體元件122-1、122-2、…與122-N中之任一者,其中,L2P表120T的一個群組的大小較佳等於非揮發性記憶體元件122的一個頁面(Page)的大小,例如16KB。又例如,L2P表120T的一個群組的大小亦可等於多個非揮發性記憶體元件122的一個頁面(Page)的大小,例如,4個非揮發性記憶體元件122的一個頁面(Page)的大小,即64KB,此4個非揮發性記憶體元件122的頁面(Page)亦可稱為超級頁面(Super Page)。
此外,記憶體控制器110可依據不同的組態來決定L2P表116T與120T之格式。例如,基於一第一組態,例如:邏輯區塊大小等於0.5KB,記憶體控制器110可產生對應於一第一邏輯區塊位址格式之L2P表116T與120T。又例如,基於一第二組態,例如:邏輯區塊大小等於4KB,記憶體控制器110可產生對應於一第二邏輯區塊位址格式之L2P表116T與120T。因此,本發明的記憶裝置100(尤其,其內的記憶體控制器110與微處理器112)能在使用相同的硬體架構之狀況下因應各種組態的設定而正確地存取非揮發性記憶體120。
第2圖為依據本發明一實施例之一種用來進行儲存空間管理之方法的工作流程200。例如:在該處理電路諸如微處理器112的控制下,該控制器諸如記憶體控制器110可進行工作流程200的運作。為了便於理解,於工作流程200中之第一命名空間與第二命名空間分別描述為命名空間NS#1與NS#2,且對應的第一邏輯對實體位址映射表與第二邏輯對實體位址映射表分別描述為邏輯對實體位址映射表L2P#1與L2P#2。
於步驟S11中,記憶體控制器110從主機50接收一辨識指令,例如:符合NVME標準之辨識控制器指令。記憶體控制器110與主機50可直接以符合NVME標準之指令彼此溝通。又例如,記憶體控制器110與主機50可透過其它標準之指令來傳送或接收符合NVME標準之指令以彼此溝通。
於步驟S12中,因應該辨識控制器指令,記憶體控制器110回傳一回覆至主機50,以指出支援複數個邏輯區塊位址格式,其中該複數個邏輯區塊位址格式中之每一邏輯區塊位址格式可用來決定某一命名空間(例如命名空間NS#1與NS#2的其中之一)中之一邏輯區塊(尤其,每一邏輯區塊)所表示的資料量的大小。依據本實施例,該複數個邏輯區塊位址格式可包含該第一邏輯區塊位址格式與該第二邏輯區塊位址格式,該第一邏輯區塊位址格式例如為0.5KB邏輯區塊位址格式(其每一邏輯區塊的大小為0.5 KB),而該第二邏輯區塊位址格式例如為4KB邏輯區塊位址格式(其每一邏輯區塊的大小為4 KB)。
於步驟S21中,記憶體控制器110從主機50接收一第一命名空間管理指令。
於步驟S22中,因應該第一命名空間管理指令,記憶體控制器110建立採用該第一邏輯區塊位址格式之一命名空間NS#1。
於步驟S23中,記憶體控制器110從主機50接收一第一命名空間附加指令。
於步驟S24中,因應該第一命名空間附加指令,記憶體控制器110建立一邏輯對實體位址映射表L2P#1(其可作為L2P表120T的一個例子),以供管理命名空間NS#1之存取。
於步驟S25中,記憶體控制器110進行一或多個存取運作,諸如寫入運作與讀取運作。依據本實施例,因應來自主機50之一第一寫入指令,記憶體控制器110可於命名空間NS#1(例如其內之一邏輯位址LBA#(x1))寫入第一資料,且對應地更新邏輯對實體位址映射表L2P#1,以指出至少一邏輯位址(例如邏輯位址LBA#(x1))與該第一資料之間的映射關係。因應來自主機50之一第一讀取指令,記憶體控制器110可依據邏輯對實體位址映射表L2P#1(例如其內之該映射關係)從命名空間NS#1讀取該第一資料。步驟S25為非必要步驟。
於步驟S31中,記憶體控制器110從主機50接收一第二命名空間管理指令。
於步驟S32中,因應該第二命名空間管理指令,記憶體控制器110建立採用該第二邏輯區塊位址格式之一命名空間NS#2。
於步驟S33中,記憶體控制器110從主機50接收一第二命名空間附加指令。
於步驟S34中,因應該第二命名空間附加指令,記憶體控制器110建立一邏輯對實體位址映射表L2P#2(其可作為L2P表120T的另一個例子),以供管理命名空間NS#2之存取。
於步驟S35中,記憶體控制器110進行一或多個存取運作,諸如寫入運作與讀取運作。依據本實施例,因應來自主機50之一第二寫入指令,記憶體控制器110可於命名空間NS#2(例如其內之一邏輯位址LBA#(x2))寫入第二資料,且對應地更新邏輯對實體位址映射表L2P#2,以指出至少一邏輯位址(例如邏輯位址LBA#(x2))與該第二資料之間的映射關係。因應來自主機50之一第二讀取指令,記憶體控制器110可依據邏輯對實體位址映射表L2P#2(例如其內之該映射關係)從命名空間NS#2讀取該第二資料。步驟S35為非必要步驟。
另外,記憶體控制器110可將邏輯對實體位址映射表L2P#1以及L2P#2整合至全球(Global)邏輯對實體位址映射表GL2P,換句話說,以全球邏輯對實體位址映射表GL2P來包含邏輯對實體位址映射表L2P#1以及L2P#2的內容。
為了更好地理解,該方法可用第2圖所示工作流程200來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於工作流程200中增加、刪除或修改。
第3圖繪示第2圖所示方法於一實施例中之管理方案,其中命名空間311與312可分別作為命名空間NS#1與NS#2的例子,且L2P表321與322可分別作為邏輯對實體位址映射表L2P#1與L2P#2的例子。假設非揮發性記憶體120的儲存容量310為512 GB(Giga-Byte;十億位元組),命名空間311與312具有相同的儲存容量,各為256 GB。命名空間311中的第一邏輯區塊的數量LBC1等於一第一預定數量,例如512 M(mega;百萬),且該些第一邏輯區塊中的每一第一邏輯區塊的大小等於第一預定大小,例如0.5 KB,第一預定大小與第一預定數量的乘積等於命名空間311的儲存容量。另外,命名空間312中的第二邏輯區塊的數量LBC2等於一第二預定數量,例如64 M,且該些第二邏輯區塊中的每一第二邏輯區塊的大小等於第二預定大小,例如4 KB,第二預定大小與第二預定數量的乘積等於命名空間312的儲存容量。
由上述中可知,在相同儲存容量的條件下,邏輯區塊的大小與邏輯區塊的數量呈反比,例如,邏輯區塊的大小由0.5 KB變更成4 KB,變大了8倍,則邏輯區塊的數量由512 M變更成64 M,變為1/8。
另外,記憶體控制器110可以利用一預定資料量,例如0.5KB,作為資料存取量的預設值,並記錄一個倍數值以表示每一組態的邏輯區塊大小,例如,第一組態的邏輯區塊大小為0.5KB,所以倍數值為1;第二組態的邏輯區塊大小為4KB,所以倍數值為8。當記憶體控制器110存取非揮發性記憶體120,記憶體控制器110可依據預設值以及倍數值來決定存取非揮發性記憶體120的資料存取量。
如第3圖所示,命名空間311與312具有相同的儲存容量,且命名空間311與312中之每一命名空間佔有非揮發性記憶體120當中一半的儲存空間330。在命名空間311被建立之後,邏輯位址LBA#(x1)可為對應的邏輯位址{LBA#0, LBA#1, …, LBA#(LBC1 - 1)}中之任一者。記憶體控制器110可將主機50指定儲存於邏輯位址LBA#(x1)的資料儲存於非揮發性記憶體120中之某一實體位址,且將邏輯位址LBA#(x1)以及這個實體位址之間的映射關係儲存於L2P表321中。邏輯位址LBA#0可作為邏輯位址LBA#(x1)的例子。實體位址可儲存等於或超過第一預定大小的資料量。
另外,在命名空間312被建立之後,邏輯位址LBA#(x2)可為對應的邏輯位址{LBA#0, LBA#1, …, LBA#(LBC2 - 1)}中之任一者。記憶體控制器110可將主機50指定儲存於邏輯位址LBA#(x2)的資料儲存於非揮發性記憶體120中之某一實體位址,且將邏輯位址LBA#(x2)以及這個實體位址之間的映射關係儲存於L2P表322中。邏輯位址LBA#0可作為邏輯位址LBA#(x2)的例子。實體位址可儲存等於或超過第二預定大小的資料量。
第4圖繪示第2圖所示方法於一實施例中之關於存取控制之工作流程400。例如:在該處理電路諸如微處理器112的控制下,該控制器諸如記憶體控制器110可進行工作流程400的運作。
於步驟S41中,記憶體控制器110從主機50接收一存取指令。例如,該存取指令可為存取命名空間311的第一寫入指令或存取命名空間312的第二寫入指令。又例如,該存取指令可為存取命名空間311的第一讀取指令或存取命名空間312的第二讀取指令。
於步驟S42中,記憶體控制器110依據對應於命名空間識別碼(NS Identifier)NSID之控制參數進行存取控制,且選擇性地更新邏輯對實體位址映射表L2P#(y),諸如邏輯對實體位址映射表L2P#1或L2P#2。
依據本實施例,在命名空間識別碼NSID等於命名空間NS#1的識別碼
NS#1(以同名稱的斜體字表示,以便於理解)的狀況下,邏輯對實體位址映射表L2P#(y)代表邏輯對實體位址映射表L2P#1,而該些控制參數可分別等於一組第一預設參數。在命名空間識別碼NSID等於命名空間NS#2的識別碼
NS#2(以同名稱的斜體字表示,以便於理解)的狀況下,邏輯對實體位址映射表L2P#(y)代表邏輯對實體位址映射表L2P#2,而該些控制參數可分別等於一組第二預設參數。另外,當該存取指令是一寫入指令(諸如該第一寫入指令或該第二寫入指令),在記憶體控制器110將寫入指令中的使用者資料寫入非揮發性記憶體120後,或將使用者資料寫入緩衝記憶體116後,記憶體控制器110更新邏輯對實體位址映射表L2P#(y)。當該存取指令是一讀取指令(諸如該第一讀取指令或該第二讀取指令),記憶體控制器110不需要更新邏輯對實體位址映射表L2P#(y)。
於步驟S43中,記憶體控制器110回傳完成元件(Completion Element)至主機50,其中該完成元件可為符合NVME標準之完成資訊。依據本實施例,該寫入指令(諸如該第一寫入指令或該第二寫入指令)可為符合NVME通信協定的資料寫入指令,而該讀取指令(諸如該第一讀取指令或該第二讀取指令)可為符合NVME通信協定的資料讀取指令寫入指令。於執行完符合NVME通信協定的資料寫入指令或資料讀取指令以後,記憶體控制器110可寫入符合NVME通信協定的完成元件至主機50,但本發明並不限於此。
為了更好地理解,該方法中之存取控制的相關運作可用第4圖所示工作流程400來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於工作流程400中增加、刪除或修改。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50:主機
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:緩衝記憶體
116T,120T:L2P表
118:傳輸介面電路
120:非揮發性記憶體
122,122-1,122-2,…,122-N:非揮發性記憶體元件
200,400:工作流程
S11,S12,S21,S22,S23,S24,S25,S31,S32,S33,S34,S35,S41,S42,S43:步驟
310:儲存容量
311,312:命名空間
321,322:L2P表330:儲存空間
LBA#0,LBA#1,…,LBA#(LBC2-1),…,LBA#(LBC1-1):邏輯區塊位址
第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。 第2圖為依據本發明一實施例之一種用來進行儲存空間管理之方法的工作流程。 第3圖繪示第2圖所示方法於一實施例中之管理方案。 第4圖繪示第2圖所示方法於一實施例中之關於存取控制之工作流程。
200:工作流程
S11,S12,S21,S22,S23,S24,S25,S31,S32,S33,S34,S35:步驟
Claims (20)
- 一種用來進行儲存空間管理之方法,該方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含有: 從一主機(host device)接收一辨識控制器指令; 因應該辨識控制器指令,回傳(return)一回覆至該主機,以指出支援複數個邏輯區塊位址格式(logical block address format, LBA format),其中該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式; 從該主機接收一第一命名空間管理(namespace management, NS management)指令; 因應該第一命名空間管理指令,建立(establish)採用該第一邏輯區塊位址格式之一第一命名空間; 從該主機接收一第二命名空間管理指令;以及 因應該第二命名空間管理指令,建立採用該第二邏輯區塊位址格式之一第二命名空間。
- 如申請專利範圍第1項所述之方法,其另包含: 從該主機接收一第一命名空間附加(NS attachment)指令; 因應該第一命名空間附加指令,建立一第一邏輯對實體位址映射表(logical-to-physical address mapping table),以供管理該第一命名空間之存取; 從該主機接收一第二命名空間附加指令;以及 因應該第二命名空間附加指令,建立一第二邏輯對實體位址映射表,以供管理該第二命名空間之存取。
- 如申請專利範圍第2項所述之方法,其另包含: 因應來自該主機之一第一寫入指令,於該第一命名空間寫入第一資料,且對應地更新該第一邏輯對實體位址映射表。
- 如申請專利範圍第3項所述之方法,其另包含: 因應來自該主機之一第一讀取指令,依據該第一邏輯對實體位址映射表從該第一命名空間讀取該第一資料。
- 如申請專利範圍第3項所述之方法,其另包含: 因應來自該主機之一第二寫入指令,於該第二命名空間寫入第二資料,且對應地更新該第二邏輯對實體位址映射表。
- 如申請專利範圍第5項所述之方法,其另包含: 因應來自該主機之一第二讀取指令,依據該第二邏輯對實體位址映射表從該第二命名空間讀取該第二資料。
- 如申請專利範圍第1項所述之方法,其中該第一命名空間與該第二命名空間具有相同的儲存容量。
- 如申請專利範圍第7項所述之方法,其中該第一命名空間中的第一邏輯區塊的數量等於一第一預定數量,該些第一邏輯區塊中的每一第一邏輯區塊的大小等於一第一預定大小,且該第一預定大小與該第一預定數量的乘積等於所述相同的儲存容量;以及該第二命名空間中的第二邏輯區塊的數量等於一第二預定數量,該些第二邏輯區塊中的每一第二邏輯區塊的大小等於一第二預定大小,且該第二預定大小與該第二預定數量的乘積等於所述相同的儲存容量。
- 如申請專利範圍第1項所述之方法,其中該第一命名空間中的第一邏輯區塊的數量等於一第一預定數量,且該些第一邏輯區塊中的每一第一邏輯區塊的大小等於一第一預定大小;該第二命名空間中的第二邏輯區塊的數量等於一第二預定數量,且該些第二邏輯區塊中的每一第二邏輯區塊的大小等於一第二預定大小;以及該第一預定大小與該第一預定數量的乘積等於該第二預定大小與該第二預定數量的乘積。
- 如申請專利範圍第1項所述之方法,其另包含: 利用一預定資料量作為資料存取量的預設值,且記錄一個倍數值;以及 依據該預設值以及該倍數值來決定存取該非揮發性記憶體的該資料存取量。
- 一種資料儲存裝置,包含有: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作,其中該控制器包含: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一辨識控制器指令; 因應該辨識控制器指令,該控制器回傳(return)一回覆至該主機,以指出支援複數個邏輯區塊位址格式(logical block address format, LBA format),其中該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式; 該控制器從該主機接收一第一命名空間管理(namespace management, NS management)指令; 因應該第一命名空間管理指令,該控制器建立(establish)採用該第一邏輯區塊位址格式之一第一命名空間; 該控制器從該主機接收一第二命名空間管理指令;以及 因應該第二命名空間管理指令,該控制器建立採用該第二邏輯區塊位址格式之一第二命名空間。
- 如申請專利範圍第11項所述之資料儲存裝置,其中該控制器從該主機接收一第一命名空間附加(NS attachment)指令;因應該第一命名空間附加指令,該控制器建立一第一邏輯對實體位址映射表(logical-to-physical address mapping table),以供管理該第一命名空間之存取;該控制器從該主機接收一第二命名空間附加指令;以及因應該第二命名空間附加指令,該控制器建立一第二邏輯對實體位址映射表,以供管理該第二命名空間之存取。
- 如申請專利範圍第12項所述之資料儲存裝置,其中因應來自該主機之一第一寫入指令,該控制器於該第一命名空間寫入第一資料,且對應地更新該第一邏輯對實體位址映射表。
- 如申請專利範圍第13項所述之資料儲存裝置,其中因應來自該主機之一第一讀取指令,該控制器依據該第一邏輯對實體位址映射表從該第一命名空間讀取該第一資料。
- 如申請專利範圍第13項所述之資料儲存裝置,其中因應來自該主機之一第二寫入指令,該控制器於該第二命名空間寫入第二資料,且對應地更新該第二邏輯對實體位址映射表。
- 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一辨識控制器指令; 因應該辨識控制器指令,該控制器回傳(return)一回覆至該主機,以指出支援複數個邏輯區塊位址格式(logical block address format, LBA format),其中該複數個邏輯區塊位址格式包含一第一邏輯區塊位址格式與一第二邏輯區塊位址格式; 該控制器從該主機接收一第一命名空間管理(namespace management, NS management)指令; 因應該第一命名空間管理指令,該控制器建立(establish)採用該第一邏輯區塊位址格式之一第一命名空間; 該控制器從該主機接收一第二命名空間管理指令;以及 因應該第二命名空間管理指令,該控制器建立採用該第二邏輯區塊位址格式之一第二命名空間。
- 如申請專利範圍第16項所述之控制器,其中該控制器從該主機接收一第一命名空間附加(NS attachment)指令;因應該第一命名空間附加指令,該控制器建立一第一邏輯對實體位址映射表(logical-to-physical address mapping table),以供管理該第一命名空間之存取;該控制器從該主機接收一第二命名空間附加指令;以及因應該第二命名空間附加指令,該控制器建立一第二邏輯對實體位址映射表,以供管理該第二命名空間之存取。
- 如申請專利範圍第17項所述之控制器,其中因應來自該主機之一第一寫入指令,該控制器於該第一命名空間寫入第一資料,且對應地更新該第一邏輯對實體位址映射表。
- 如申請專利範圍第18項所述之控制器,其中因應來自該主機之一第一讀取指令,該控制器依據該第一邏輯對實體位址映射表從該第一命名空間讀取該第一資料。
- 如申請專利範圍第18項所述之控制器,其中因應來自該主機之一第二寫入指令,該控制器於該第二命名空間寫入第二資料,且對應地更新該第二邏輯對實體位址映射表。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140730A TWI693517B (zh) | 2018-11-16 | 2018-11-16 | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 |
CN201910046776.XA CN111198651B (zh) | 2018-11-16 | 2019-01-18 | 进行存储空间管理的方法以及数据存储装置及其控制器 |
US16/271,899 US10671322B1 (en) | 2018-11-16 | 2019-02-11 | Method for performing storage space management, associated data storage device, and controller thereof |
US16/852,526 US11188265B2 (en) | 2018-11-16 | 2020-04-19 | Method for performing storage space management, associated data storage device, and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140730A TWI693517B (zh) | 2018-11-16 | 2018-11-16 | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI693517B true TWI693517B (zh) | 2020-05-11 |
TW202020666A TW202020666A (zh) | 2020-06-01 |
Family
ID=70727599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107140730A TWI693517B (zh) | 2018-11-16 | 2018-11-16 | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10671322B1 (zh) |
CN (1) | CN111198651B (zh) |
TW (1) | TWI693517B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138169A (zh) * | 2020-08-12 | 2022-03-04 | 中兴通讯股份有限公司 | 报文处理方法、网络设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078797B2 (en) * | 1995-07-31 | 2011-12-13 | Micron Technology, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US9575882B2 (en) * | 2010-09-28 | 2017-02-21 | Sandisk Technologies Llc | Non-volatile memory interface |
TWI622890B (zh) * | 2016-12-29 | 2018-05-01 | 慧榮科技股份有限公司 | 建立多重命名空間方法與存取多重命名空間的資料的方法 |
CN108628762A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 多命名空间 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102543184B (zh) * | 2010-12-22 | 2016-06-08 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与数据写入方法 |
US9760296B2 (en) | 2013-05-20 | 2017-09-12 | Hitachi, Ltd. | Storage device and method for controlling storage device |
JP6523193B2 (ja) * | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
TWI602074B (zh) * | 2016-12-29 | 2017-10-11 | 慧榮科技股份有限公司 | 建立多重命名空間方法與存取多重命名空間的資料的方法 |
JP2018160059A (ja) * | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリコントローラ |
US10802733B2 (en) * | 2018-04-27 | 2020-10-13 | Western Digital Technologies, Inc. | Methods and apparatus for configuring storage tiers within SSDs |
-
2018
- 2018-11-16 TW TW107140730A patent/TWI693517B/zh active
-
2019
- 2019-01-18 CN CN201910046776.XA patent/CN111198651B/zh active Active
- 2019-02-11 US US16/271,899 patent/US10671322B1/en active Active
-
2020
- 2020-04-19 US US16/852,526 patent/US11188265B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078797B2 (en) * | 1995-07-31 | 2011-12-13 | Micron Technology, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US9575882B2 (en) * | 2010-09-28 | 2017-02-21 | Sandisk Technologies Llc | Non-volatile memory interface |
TWI622890B (zh) * | 2016-12-29 | 2018-05-01 | 慧榮科技股份有限公司 | 建立多重命名空間方法與存取多重命名空間的資料的方法 |
CN108628762A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 多命名空间 |
Also Published As
Publication number | Publication date |
---|---|
US20200249873A1 (en) | 2020-08-06 |
US11188265B2 (en) | 2021-11-30 |
US20200159450A1 (en) | 2020-05-21 |
TW202020666A (zh) | 2020-06-01 |
US10671322B1 (en) | 2020-06-02 |
CN111198651B (zh) | 2023-07-18 |
CN111198651A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI650644B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
US20190317892A1 (en) | Memory system, data processing system, and operating method of memory system | |
US11614885B2 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
US11733895B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US10606744B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
US20130275655A1 (en) | Memory management method and memory controller and memory storage device using the same | |
US10339045B2 (en) | Valid data management method and storage controller | |
US20240231663A1 (en) | Storage device and method of operating the same | |
TW202015057A (zh) | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 | |
TWI693517B (zh) | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 | |
TW201935232A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
TWI817315B (zh) | 映射表管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113835617B (zh) | 数据处理方法及对应的数据储存装置 | |
TWI749516B (zh) | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 | |
US11182329B2 (en) | Data processing system and operating method thereof | |
TW202013183A (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
TWI814666B (zh) | 資料儲存裝置與動態決定緩存器大小的方法 | |
TWI808010B (zh) | 資料處理方法及對應之資料儲存裝置 | |
TWI766431B (zh) | 資料處理方法及對應之資料儲存裝置 | |
KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 |