[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

TW201818248A - 可應用於資料儲存裝置之記憶體管理方法 - Google Patents

可應用於資料儲存裝置之記憶體管理方法 Download PDF

Info

Publication number
TW201818248A
TW201818248A TW105137285A TW105137285A TW201818248A TW 201818248 A TW201818248 A TW 201818248A TW 105137285 A TW105137285 A TW 105137285A TW 105137285 A TW105137285 A TW 105137285A TW 201818248 A TW201818248 A TW 201818248A
Authority
TW
Taiwan
Prior art keywords
memory space
management method
tables
child
reserved
Prior art date
Application number
TW105137285A
Other languages
English (en)
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 慧榮科技股份有限公司
Priority to TW105137285A priority Critical patent/TW201818248A/zh
Priority to US15/785,264 priority patent/US10678685B2/en
Priority to CN201711120617.7A priority patent/CN108073524B/zh
Publication of TW201818248A publication Critical patent/TW201818248A/zh
Priority to US16/822,032 priority patent/US11455241B2/en

Links

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/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/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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • 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/7202Allocation control and policies
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提出一種可應用於資料儲存裝置之記憶體管理方法,此方法包括下列步驟:向主機請求記憶體空間;記錄主機所預留之記憶體空間;將對照表分割成複數個子對照表;判斷預留之記憶體空間的容量是否足夠儲存所有子對照表;以及當判斷為是時,透過介面邏輯而上傳複數個子對照表至預留之記憶體空間。

Description

可應用於資料儲存裝置之記憶體管理方法
本發明是有關於資料儲存之相關技術,尤其是有關於一種可應用於資料儲存裝置之記憶體管理方法。
一般而言,資料儲存裝置包括控制單元、快閃記憶體(Flash memory)與動態隨機存取記憶體(Dynamic random access memory,DRAM)等許多電子元件,而此類資料儲存裝置已被廣泛地運用在各種需資料儲存的場合中。設置有DRAM的資料儲存裝置具有較高的效能,然而,也具有較高的硬體成本。而為降低成本,現已有些資料儲存裝置的製造商已設置DRAM,而僅以控制單元中內建靜態隨機存取記憶體(Static random access memory,SRAM)作為資料緩衝器。
然而,由於內建於控制單元的靜態隨機存取記憶體的容量都很小,導致這類資料儲存裝置的效能不佳。因此,如何解決這個問題便是一個很重要的課題。
本發明之一目的在提供一種可應用於資料儲存裝置之記憶體管理方法,其可提高未採用動態隨機存取記憶體的資料儲存裝置的效能。
本發明提出一種可應用於資料儲存裝置之記憶體管理方法,此方法包括下列步驟:向主機請求記憶體空間;記錄主機所預留之記憶體空間;將對照表分割成複數個子對照表;判斷預留之記憶體空間的容量是否足夠儲存所有子對照表;以及當判斷為是時,透過介面邏輯而依序上傳複數個子對照表至預留之記憶體空間。
由於本發明乃是自主機取得記憶空間,並將此記憶空間當作資料儲存裝置之記憶體緩衝器,同時又透過特定方式來使記憶空間保持其所儲存的子對照表具有相對高的讀取次數,因此本發明可提高未採用動態隨機存取記憶體的資料儲存裝置的效能。
圖1繪有依照本發明一實施例之資料儲存裝置及其與主機的電性耦接關係。請參照圖1,主機100主要包括有中央處理單元110、連接介面120與揮發性儲存媒體130,其中揮發性儲存媒體130例如是以動態隨機存取記憶體來實現。連接介面120適於電性耦接資料儲存裝置200。中央處理單元110電性耦接連接介面120與揮發性儲存媒體130,並用以透過連接介面120傳送命令、資料給資料儲存裝置200,例如是傳送讀取命令給資料儲存裝置200,或是傳送寫入命令及欲寫入資料儲存裝置200的資料給資料儲存裝置200。而在此例中,主機100包括以電腦、手機、平板、相機或是其他具運算功能的手持式電子裝置來實現。
資料儲存裝置200主要包括有控制單元210與非揮發性儲存媒體220。控制單元210係電性耦接非揮發性儲存媒體220,並用以控制非揮發性儲存媒體220的操作(例如進行資料的存取與抹除)。在此例中,非揮發性儲存媒體220例如是以快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)等具有長時間資料保存之記憶體裝置來實現。控制單元210主要包括有介面邏輯212、微處理器214、控制邏輯216與揮發性儲存媒體218,其中揮發性儲存媒體218例如是以靜態隨機存取記憶體來實現。微處理器214電性耦接介面邏輯212與控制邏輯214,並用以透過控制邏輯216存取非揮發性儲存媒體220與揮發性儲存媒體218中的資料,且微處理器214還用以透過介面邏輯212接收來自主機100之命令或資料,例如:寫入命令、欲寫入資料儲存裝置200的資料、讀取命令、抺除命令等。
圖2即為依照本發明一實施例之可應用於資料儲存裝置之記憶體管理方法的流程圖。步驟S202:向主機請求一私人記憶體空間。在資料儲存裝置200初次電性耦接至主機100之後,資料儲存裝置200的控制單元210便會與主機100的中央處理單元110、基本輸入輸出系統(Basic Input/Output System,BIOS)或是統一可延伸韌體介面(Unified Extensible Firmware Interface,UEFI)進行溝通,並要求中央處理單元110或UEFI在揮發性儲存媒體130中預留(reserve)指定大小的私人記憶體空間給予控制單元210使用,例如:64MB大小的記憶體空間。在另一實施例中,控制單元210僅對中央處理單元110、BIOS或UEFI提出預留一個私人記憶體空間給予控制單元210使用,並未指定私人記憶體空間的大小。
步驟S204:記錄主機所回應的預留記憶體空間。主機100的中央處理單元110、BIOS或UEFI可能拒絕控制單元210的請求,也可能同意控制單元210的請求並給予一個預留記憶體空間(例如:64MB),此預留記憶體空間的大小等於步驟S202所請求的私人記憶體空間的大小,然而,中央處理單元110、BIOS或UEFI也可能同意控制單元210的請求但是所給予的預留記憶體空間(例如:48MB)的大小小於步驟S202所請求的私人記憶體空間的大小。當預留記憶體空間給予後,控制單元210便可自行利用此記憶體空間,例如,可將此預留記憶體空間作為控制單元210的資料緩衝器或記憶體。預留記憶體空間較佳用一組或數組實體位址(physical address)起點以及終點來表示,例如:0x100,0000以及0x17F,FFFF,預留記憶體空間500共計有8MB(Byte),其中,0x 表示16進位(hexadecimal)數值。預留記憶體空間500亦可以實體位址起點加上記憶體容量來顯示,例如:0x100,0000以及8MB。圖3為揮發性儲存媒體130上預留記憶體空間500的示意圖,斜線所示的5個區域即為揮發性儲存媒體130上的預留記憶體空間500,每一區域由一組實體位址起點以及終點來表示。由於預留記憶體空間乃由中央處理單元110或UEFI所決定,因此,預留記憶體空間500可能是揮發性儲存媒體130上的一個實體位址連續的區域,亦可能是分散而實體位址不連續的數個區域。
圖4為控制單元210記錄預留記憶體空間500的表格,即記錄圖3所示的預留記憶體空間500。第1區域的記憶體位址起點為0x100,0000,記憶體位址終點為0x17F,FFFF,記憶體容量8MB,依此類推,第2-5區域的記憶體容量分別為8MB以及16MB,因此,預留記憶體空間500為5個區域的記憶體容量的加總,總記憶體容量為64MB。
步驟S206:將對照表分割成複數個子對照表。控制單元210會產生及維護邏輯位址至實體位址對照表(Host logical address to Flash physical address mapping table,H2F 對照表,以下簡稱對照表)以管理非揮發性儲存媒體220上所儲存的資料。基本上對照表的大小與非揮發性儲存媒體220的資料容量有關,例如:對照表的大小為非揮發性儲存媒體220的資料容量的1/1000,非揮發性儲存媒體220的資料容量如果是128GB,則對照表的大小為128MB。控制單元210可將對照表分割(邏輯分割)成預設數量個子對照表,例如20個子對照表,即子對照表#0~19;或者,控制單元210較佳乃將對照表以預設大小進行分割,例如預設大小較佳等於64KB。
步驟S208:判斷預留記憶體空間500的容量是否足夠儲存所有子對照表,如果是則執行步驟S210,如果不是則步驟S212。假設非揮發性儲存媒體220的資料容量為64GB,由於預留記憶體空間500為64MB,因此,預留記憶體空間500的容量剛好足夠儲存所有子對照表。相反地,假設非揮發性儲存媒體220的資料容量為128GB而預留記憶體空間500為64MB,此時預留記憶體空間500的容量將不足以儲存128MB的所有子對照表。
步驟S210:透過介面邏輯而依序上傳複數個子對照表至預留記憶體空間500,其中,介面邏輯符合PCI Express、SATA、USB、MIPI M-PHY、或MIPI D-PHY等通信標準。介面邏輯212與連接介面120皆符合PCI Express、SATA、USB、MIPI M-PHY、或MIPI D-PHY等通信標準,因此,控制單元210藉由介面邏輯212以及連接介面120而與中央處理單元110進行資料及指令的傳送及接收,例如將資料封包傳送至中央處理單元110,再由中央處理單元110將複數個子對照表從資料封包中取出,最後依序將複數個子對照表儲存於指定的揮發性儲存媒體130的實體位址中。另外,為了降低中央處理單元110的負荷以及增加資料傳送的速度,控制單元210可以向中央處理單元110內建的直接記憶體存取(Direct Memory Access,DMA)控制器進行溝通,如此一來,控制單元210可以透過介面邏輯212以及連接介面120而與中央處理單元110的DMA控制器進行通信以上傳複數個子對照表至預留記憶體空間500。
步驟S212:將預留記憶體空間500劃分成一動態記憶體空間以及一靜態記憶體空間,其中,動態記憶體空間的大小較佳小於等於靜態記憶體空間的大小;或靜態記憶體空間的大小為預設值,例如40MB;或動態記憶體空間以及一靜態記憶體空間的大小為固定比例,例如1:1;或者,動態記憶體空間以及一靜態記憶體空間的大小可依一效能參數而調整。在完成步驟S204之後,控制單元210知道預留記憶體空間500的容量為64MB,因此,控制單元210將預留記憶體空間500分成動態記憶體空間510,例如8MB,以及靜態記憶體空間520,例如56MB,如圖5所示。或者,控制單元210將預留記憶體空間500的40MB定義為靜態記憶體空間520,剩下的24MB定義為動態記憶體空間510;或者,控制單元210將預留記憶體空間500均分成二部份,第一部份為靜態記憶體空間520,大小為32MB,第二部份為動態記憶體空間510,大小為32MB。
步驟S214:透過介面邏輯而依序上傳複數個子對照表至靜態記憶體空間以及部份剩餘複數子對照表至動態記憶體空間,其中,部份複數個子對照表先上傳至靜態記憶體空間後,再將部份剩餘複數子對照表上傳至動態記憶體空間;或者,複數個子對照表先上傳至靜態記憶體空間後,再將具有較高的讀取次數(Read count)的部份剩餘複數子對照表上傳至動態記憶體空間。一般而言,非揮發性儲存媒體220並不會填滿資料,例如,非揮發性儲存媒體220的資料容量為256GB,但僅儲存32GB資料,因此,控制單元210將管理這32GB資料的複數個子對照表上傳至靜態記憶體空間520。如果一個子對照表為64KB,管理這32GB資料需要500個子對照表,即子對照表#0~499,則控制單元210將這500個子對照表上傳至靜態記憶體空間520。假設非揮發性儲存媒體220所儲存的資料增加至64GB,此時管理這64GB資料的子對照表共計1000個,即子對照表#0~999。由於靜態記憶體空間520僅可容納的875個子對照表,因此,控制單元210再將複數個子對照表,包括子對照表#500~874,上傳至靜態記憶體空間520,最後,將剩下的125個子對照表,即子對照表#875~999,上傳至動態記憶體空間510。假設非揮發性儲存媒體220所儲存的資料超過64GB,例如:128GB,此時管理非揮發性儲存媒體220所儲存的資料所需的子對照表共計2000個。控制單元210保留儲存在靜態記憶體空間520上的875個子對照表,即子對照表#0~874,並依據管理新增、更新或刪除資料所需的子對照表,例如子對照表#1000~1100,替代或交換(swap)儲存在動態記憶體空間510上的子對照表,例如子對照表#875~999。換句話說,靜態記憶體空間520所儲存的子對照表是不會替代或交換的,而動態記憶體空間510所儲存的子對照表是可替代或交換的。由於不需執行子對照表替代或交換的步驟,所以,控制單元210可以較佳地效率來管理56GB以下的資料,即具有較小LBA的56GB資料。當資料量超過56GB時,仍有56GB的資料以較佳地效率來管理,使得資料儲存裝置200的系統效能能持在一個較佳的水平。
另外,當執行子對照表替代或交換的步驟時,控制單元210較佳以具有較高讀取次數(Read count)的子對照表來替代或交換儲存在動態記憶體空間510的子對照表,以增加資料存取時動態記憶體空間510中子對照表的命中率(hit rate),增加資料儲存裝置200的系統效能。
在本發明可應用於資料儲存裝置之記憶體管理方法中,如何快速而正確地自預留記憶體空間500,包括:動態記憶體空間510以及靜態記憶體空間520,中找到所需的子對照表,對於資料儲存裝置200的系統效能有決定性的影響。在本發明中,控制單元210建立並維護一個快取找查表,如圖6所示,快取找查表乃較佳依據圖4所記錄的資訊而建立。假設動態記憶體空間510為8MB,靜態記憶體空間520為56MB,子對照表為64KB,非揮發性儲存媒體220的資料容量為128GB,則子對照表的總數為2000個,而快取找查表中可記錄1000筆與子對照表相關的記錄,包括:子對照表的編號、實體位址起點、讀取次數等資訊。由於控制單元210不對靜態記憶體空間520中的子對照表執行替代或交換程序,因此,讀取次數的資訊可略而不計,或以任意值,例如:FF,來替代。或者,控制單元210僅以快取找查表來記錄儲存於動態記憶體空間510的子對照表相關的資訊,而不記錄儲存於靜態記憶體空間520的子對照表相關的資訊。藉由讀取快取找查表,控制單元210可以快速而正確地自預留記憶體空間500存取子對照表以對非揮發性儲存媒體220所儲存的資料進行存取。
另外,控制單元210亦可依照效能參數而調整靜態記憶體空間520在預留記憶體空間500的占比,其中,效能參數可以與預留記憶體空間500大小有關,例如:預留記憶體空間500愈小,則靜態記憶體空間520的占比愈小;效能參數可以與儲存在非揮發性儲存媒體220的實際資料量有關,例如,非揮發性儲存媒體220所儲存的實際資料量愈大,則靜態記憶體空間520的占比愈小,或者,直接歸零,即預留記憶體空間500等於動態記憶體空間510。
藉由上述,由於本發明乃是自主機取得記憶空間,並將此記憶空間當作資料儲存裝置之記憶體緩衝器,同時又透過特定方式來使記憶空間保持其所儲存的子對照表具有相對高的讀取次數,因此本發明可提高未採用動態隨機存取記憶體的資料儲存裝置的效能。
100‧‧‧主機
110‧‧‧中央處理單元
120‧‧‧連接介面
130、218‧‧‧揮發性儲存媒體
200‧‧‧資料儲存裝置
210‧‧‧控制單元
212‧‧‧介面邏輯
214‧‧‧微處理器
216‧‧‧控制邏輯
220‧‧‧非揮發性儲存媒體
500‧‧‧記憶體空間
510‧‧‧動態記憶體空間
520‧‧‧靜態記憶體空間
S202~S214‧‧‧步驟
圖1繪有依照本發明一實施例之資料儲存裝置及其與主機的電性耦接關係; 圖2為依照本發明一實施例之可應用於資料儲存裝置之記憶體管理方法的流程圖; 圖3為揮發性儲存媒體130上預留記憶體空間500的示意圖; 圖4為控制單元210記錄預留記憶體空間500的表格; 圖5繪示將預留記憶體空間500分成動態記憶體空間510與靜態記憶體空間520; 圖6為依照本發明一實施例之找查表。

Claims (18)

  1. 一種可應用於資料儲存裝置之記憶體管理方法,其包括: 向一主機請求一私人記憶體空間; 記錄該主機所給予的一預留記憶體空間; 將一對照表分割成複數個子對照表; 判斷該預留記憶體空間的容量是否足夠儲存該些子對照表;以及 當判斷為是時,透過一介面邏輯上傳該些子對照表至該預留記憶體空間。
  2. 如申請專利範圍第1項所述之記憶體管理方法,其中該預留記憶體空間的容量等於或小於該私人記憶體空間的容量。
  3. 如申請專利範圍第1項所述之記憶體管理方法,其中該些子對照表的一總數為一預設值。
  4. 如申請專利範圍第1項所述之記憶體管理方法,其中每一該些子對照表的一大小為一預設值。
  5. 一種可應用於資料儲存裝置之記憶體管理方法,其包括: 向一主機請求一私人記憶體空間; 記錄該主機所給予的一預留記憶體空間; 將一對照表分割成複數個子對照表; 判斷該預留記憶體空間的容量是否足夠儲存該些子對照表;以及 當判斷為否時,將預留之該記憶體空間劃分成一動態記憶體空間以及一靜態記憶體空間,並透過一介面邏輯上傳部份該些子對照表至該靜態記憶體空間。
  6. 如申請專利範圍第5項所述之記憶體管理方法,其更包括: 透過該介面邏輯上傳部份剩餘該些子對照表至該動態記憶體空間。
  7. 如申請專利範圍第5項所述之記憶體管理方法,其更包括: 透過該介面邏輯隨機上傳部份剩餘該些子對照表至該動態記憶體空間。
  8. 如申請專利範圍第5項所述之記憶體管理方法,其更包括: 透過該介面邏輯依據剩餘該些子對照表的複數讀取次數的大小依序上傳部份剩餘該些子對照表至該動態記憶體空間。
  9. 如申請專利範圍第5項所述之記憶體管理方法,其中該預留記憶體空間的容量等於或小於該私人記憶體空間的容量。
  10. 如申請專利範圍第5項所述之記憶體管理方法,其中該動態記憶體空間的大小小於等於該靜態記憶體空間的大小。
  11. 如申請專利範圍第5項所述之記憶體管理方法,其中該動態記憶體空間與該靜態記憶體空間的大小為固定比例。
  12. 如申請專利範圍第5項所述之記憶體管理方法,其中該動態記憶空間與該靜態記憶空間的大小包括依據一效能參數而調整。
  13. 如申請專利範圍第5項所述之記憶體管理方法,其中該效能參數係與預留之該記憶體空間的大小有關。
  14. 如申請專利範圍第5項所述之記憶體管理方法,其中該效能參數係與儲存在一非揮發性儲存媒體的資料容量有關。
  15. 如申請專利範圍第5項所述之記憶體管理方法,其更包括: 建立並維持一快取找查表以管理已上傳至該預留記憶體空間的部份剩餘該些子對照表。
  16. 如申請專利範圍第5項所述之記憶體管理方法,其中該預留記憶體空間的容量等於小於請求的該記憶體空間的容量。
  17. 如申請專利範圍第5項所述之記憶體管理方法,其中該些子對照表的一總數為一預設值。
  18. 一種可應用於資料儲存裝置之記憶體管理方法,其包括: 向一主機請求一私人記憶體空間; 記錄該主機所給予的一預留記憶體空間; 將一對照表分割成複數個子對照表; 判斷該預留記憶體空間的容量是否足夠儲存該些子對照表; 當判斷為是時,透過一介面邏輯上傳該些子對照表至該預留記憶體空間;以及 當判斷為否時,將預留之該記憶體空間劃分成一動態記憶體空間以及一靜態記憶體空間,並透過該介面邏輯上傳部份該些子對照表至該靜態記憶體空間。
TW105137285A 2016-11-15 2016-11-15 可應用於資料儲存裝置之記憶體管理方法 TW201818248A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW105137285A TW201818248A (zh) 2016-11-15 2016-11-15 可應用於資料儲存裝置之記憶體管理方法
US15/785,264 US10678685B2 (en) 2016-11-15 2017-10-16 Data management method applicable to data storage device
CN201711120617.7A CN108073524B (zh) 2016-11-15 2017-11-14 可应用于数据储存装置的存储器管理方法
US16/822,032 US11455241B2 (en) 2016-11-15 2020-03-18 Data management method applicable to data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105137285A TW201818248A (zh) 2016-11-15 2016-11-15 可應用於資料儲存裝置之記憶體管理方法

Publications (1)

Publication Number Publication Date
TW201818248A true TW201818248A (zh) 2018-05-16

Family

ID=62106576

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105137285A TW201818248A (zh) 2016-11-15 2016-11-15 可應用於資料儲存裝置之記憶體管理方法

Country Status (3)

Country Link
US (2) US10678685B2 (zh)
CN (1) CN108073524B (zh)
TW (1) TW201818248A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039871A (ko) 2019-10-02 2021-04-12 삼성전자주식회사 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법
KR20210156090A (ko) * 2020-06-17 2021-12-24 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
DE102022100592A1 (de) 2021-02-05 2022-08-11 Samsung Electronics Co., Ltd. Betriebsverfahren eines Universal-Flash-Storage-Hosts und Betriebsverfahren eines Universal-Flash-Storage-Systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043619B1 (en) * 2002-01-14 2006-05-09 Veritas Operating Corporation Storage configurator for determining an optimal storage configuration for an application
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US8843727B2 (en) 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7587752B2 (en) * 2005-03-04 2009-09-08 Qualcomm Incorporated Methods and apparatus for providing a control channel in a data network
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20080031587A1 (en) * 2006-08-02 2008-02-07 Chia-Hung Chen Methods for searching data recorded in a storage and recording systems that allow playback utilizing trick-mode operations
WO2008150927A2 (en) * 2007-05-30 2008-12-11 Schooner Information Technology System including a fine-grained memory and a less-fine-grained memory
CN101344867A (zh) * 2007-07-13 2009-01-14 深圳市江波龙电子有限公司 提高Nand型快闪存储器数据存取速度的方法
CN101436159B (zh) * 2007-11-14 2012-11-28 深圳市朗科科技股份有限公司 存储介质管理方法
US8966176B2 (en) 2010-05-27 2015-02-24 Sandisk Il Ltd. Memory management storage to a host device
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
US20130311700A1 (en) * 2012-05-20 2013-11-21 Chung-Jwu Chen Extending Lifetime For Non-volatile Memory Apparatus
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
TWI514140B (zh) * 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
KR101821633B1 (ko) * 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
CN104346103B (zh) * 2013-08-09 2018-02-02 群联电子股份有限公司 指令执行方法、存储器控制器与存储器储存装置
CN103885728B (zh) * 2014-04-04 2016-08-17 华中科技大学 一种基于固态盘的磁盘缓存系统
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
KR20160016421A (ko) * 2014-08-05 2016-02-15 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법
TWI512467B (zh) * 2014-09-02 2015-12-11 Silicon Motion Inc 實體儲存對照表維護方法以及使用該方法的裝置
CN104281535B (zh) * 2014-09-24 2017-11-17 北京兆易创新科技股份有限公司 一种映射表在内存中的处理方法和装置
CN106033319A (zh) * 2015-03-11 2016-10-19 广明光电股份有限公司 固态硬盘动态建立转换层的方法
CN105005536B (zh) * 2015-07-01 2019-08-06 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
TWI579693B (zh) * 2016-04-29 2017-04-21 群聯電子股份有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
CN106020723B (zh) * 2016-05-19 2019-10-25 记忆科技(深圳)有限公司 一种简化NVMe固态硬盘的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法

Also Published As

Publication number Publication date
US11455241B2 (en) 2022-09-27
US10678685B2 (en) 2020-06-09
US20200218650A1 (en) 2020-07-09
CN108073524B (zh) 2022-08-19
US20180137048A1 (en) 2018-05-17
CN108073524A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
US11455241B2 (en) Data management method applicable to data storage device
US10977171B2 (en) Method for creating multi-namespace and accessing data therein
US11354236B2 (en) Garbage collection method for data storage device
JP2018049523A (ja) メモリシステムおよび制御方法
US11269783B2 (en) Operating method for data storage device
CN113467705B (zh) 数据组块的增强读取
TWI622890B (zh) 建立多重命名空間方法與存取多重命名空間的資料的方法
US11294824B2 (en) System and method for reduced latency of read-modify-write operations
US20220269440A1 (en) Control method for flash memory controller and associated flash memory controller and storage device
TWI428747B (zh) 非揮發性記憶體資料管理方法及使用該方法之非揮發性儲存裝置
US20230359550A1 (en) File system integration into data mining model
CN110968527B (zh) Ftl提供的缓存
TWI693517B (zh) 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器
TWI616755B (zh) 儲存裝置及其資料映射方法
CN112835820A (zh) 快速访问hmb的方法与存储设备
TWI749516B (zh) 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器
WO2016037560A1 (zh) 数据写入方法、装置及存储器
CN110968525B (zh) Ftl提供的缓存、其优化方法与存储设备
US11894046B2 (en) Alignment optimization of key value pair data storage
US20240078032A1 (en) Metadata Management In Key Value Data Storage Device
US20240289268A1 (en) Efficient consolidation for two layer ftl
TWM520684U (zh) 電腦系統及儲存裝置