TWI696188B - 混合式記憶體系統 - Google Patents

混合式記憶體系統 Download PDF

Info

Publication number
TWI696188B
TWI696188B TW108109072A TW108109072A TWI696188B TW I696188 B TWI696188 B TW I696188B TW 108109072 A TW108109072 A TW 108109072A TW 108109072 A TW108109072 A TW 108109072A TW I696188 B TWI696188 B TW I696188B
Authority
TW
Taiwan
Prior art keywords
memory
host
data
hybrid
memory system
Prior art date
Application number
TW108109072A
Other languages
English (en)
Other versions
TW201941197A (zh
Inventor
達妮羅 卡拉西歐
路卡 波齊歐
羅伯特 伊茲
馬可 達拉波拉
丹尼爾 巴路奇
帕歐羅 阿瑪托
艾曼紐 康伐隆尼力
Original Assignee
美商美光科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商美光科技公司 filed Critical 美商美光科技公司
Publication of TW201941197A publication Critical patent/TW201941197A/zh
Application granted granted Critical
Publication of TWI696188B publication Critical patent/TWI696188B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一實例設備包括用以耦合至一主機之一混合式記憶體系統及耦合至該混合式記憶體系統之一控制器。該控制器可經組態以回應於該主機之一主記憶體經歷臨限值量之資源利用之一判定而致使與該主機之一虛擬記憶體位置相關聯之資料選擇性地傳送至該混合式記憶體系統。

Description

混合式記憶體系統
本發明一般而言係關於半導體記憶體及方法,且更特定而言係關於與一混合式記憶體系統相關之設備及方法。
記憶體裝置通常被提供為計算系統中之內部半導體積體電路。存在諸多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要電力以維持其資料(例如,主機資料、錯誤資料等)且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體(SDRAM)及閘流體隨機存取記憶體(TRAM)以及其他。非揮發性記憶體可在不被供電時藉由存留經儲存資料而提供永久資料,且可包含NAND快閃記憶體、NOR快閃記憶體及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM))、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM)(諸如自旋轉矩轉移隨機存取記憶體(STT RAM))以及其他。
計算系統通常包含可擷取及執行指令且將所執行指令之結果儲存至一適合位置之若干個處理資源(例如,一或多個處理器)。一處理資源可包括(舉例而言)可用於執行指令以操作計算系統之若干個功能單元,諸如算術邏輯單元(ALU)電路、浮點單元(FPU)電路及一組合式邏輯區塊。
在將指令提供至功能單元電路以用於執行中可涉及一計算系統中之若干個組件。可(例如)由諸如一控制器及/或主機處理器之一處理資源執行指令。此外,由於可在一個或多個時脈循環中透過功能單元電路執行不同類型之操作,因此亦可對指令及資料之中間結果進行定序及/或緩衝。
在一實施例中,用於一混合式記憶體系統之一設備包含用以耦合至一主機之一混合式記憶體系統及耦合至該混合式記憶體系統之一控制器。該控制器經組態以回應於該主機之一主記憶體經歷一臨限值量之資源利用之一判定而致使將與該主機之一虛擬記憶體位置相關聯之資料選擇性地傳送至該混合式記憶體系統。
在一實施例中,用於一混合式記憶體系統之一系統包含耦合至一主機之一混合式記憶體系統,其包括一控制器、一第一記憶體資源及一第二記憶體資源。該控制器經組態以致使將該混合式記憶體系統之一部分配置以儲存對應於一調換操作之資料。該控制器進一步經組態以藉由選擇性地自該主機傳送對應於該調換操作之資料至該混合式記憶體系統之該經配置部分而致使該調換操作之執行。
在一實施例中,一種用於操作一混合式記憶體憶系統之方法包含配置一混合式記憶體系統之一部分以儲存對應於一主機之一虛擬記憶體位置之資料,及將藉由與該主機相關聯之一虛擬記憶體位置參考之資料選擇性地傳送至該混合式記憶體系統之該經配置部分。
100:計算系統/系統
102:主機
104:記憶體系統
110:框架
111:系統呼叫組件
112:虛擬檔案系統/虛擬檔案系統組件
113:檔案系統組件/檔案系統
114:區塊裝置組件
115:驅動程式組件
200:計算系統/混合式記憶體系統/主機
202:主機
204:記憶體系統/混合式記憶體系統
206:控制器
208-1:記憶體資源
208-N:記憶體資源
209:主記憶體
210-1:通訊頻道
210-N:通訊頻道
312:方塊
313:實例流程圖
314:方塊
315:方塊
316:方塊
317:實例流程圖
318:方塊
319:方塊
320:方塊
321:方塊
422:方塊
423:實例流程圖
424:方塊
525:實例流程圖
526:方塊
528:方塊
529:實例流程圖
530:方塊
532:方塊
533:實例流程圖
534:方塊
536:方塊
540:實例流程圖
542:方塊
544:方塊
圖1係根據本發明之若干項實施例,呈一計算系統之形式之一設備之一方塊圖,該計算系統包含一框架、主機及記憶體系統。
圖2係根據本發明之若干項實施例,呈一計算系統之形式之一設備之一方塊圖,該計算系統包含一主機(其包含一主記憶體)及記憶體系統。
圖3A圖解說明根據本發明之若干項實施例用以將一邏輯區塊位址範圍映射至一混合式記憶體系統之一實例流程圖。
圖3B圖解說明根據本發明之若干項實施例,將混合式記憶體系統之部分映射至主機記憶體(例如,與主機相關聯之主記憶體)之一實例流程圖317。
圖3C圖解說明回應於一程式碼分頁操作之執行,而將資料選擇性地傳送至一混合式記憶體系統之一實例流程圖。
圖4圖解說明根據本發明之若干項實施例,將命令訊務選擇性地傳送至一混合式記憶體系統之一實例流程圖。
圖5A圖解說明根據本發明之若干項實施例,將命令選擇性地轉向一混合式記憶體系統之一實例流程圖。
圖5B圖解說明根據本發明之若干項實施例,將命令訊務選擇性地轉向一混合式記憶體系統之一實例流程圖。
圖5C圖解說明根據本發明之若干項實施例,將具有一經識別寫入型樣之命令訊務選擇性地轉向一混合式記憶體系統之一實例流程圖。
圖5D圖解說明藉由一經識別命令特性選擇性地轉向一混合式記憶體系統之一實例流程圖。
本發明包含與一混合式記憶體系統相關之設備及方法。一實例設備包含用以耦合至一主機之一混合式記憶體系統及耦合至該混合式記憶體系統之一控制器。控制器可經組態以將一敏感度指配至一命令且至少部分地 基於經指配敏感度而致使該命令選擇性地轉向混合式記憶體系統。
計算系統(諸如個人電腦、膝上型電腦、平板電腦、平板電話、智慧電話、物聯網(IoT)啟用裝置等)可包含一或多個記憶體資源以儲存與計算系統相關聯之資料及/或指令。如本文中所使用,「IoT啟用裝置」包含實體裝置、運載工具、家用器具及嵌入有電子裝置、軟體、感測器、致動器及/或使得此等物件能夠連接及交換資料之網路連接性之其他裝置。IoT啟用裝置之實例包含可穿戴式技術、智慧家居裝置、智慧購物系統及監視裝置以及其他網路實體系統。此外,計算系統可包含一或多個處理資源以執行系統軟體(諸如一作業系統)來為在計算系統上運行之應用程式提供共同服務。作業系統之實例包含Linux®、Unix®、Windows®等。
在操作期間,計算系統可執行諸如韌體、電腦程式碼、後設程式碼、框架檔案等之指令以將功能性提供至計算系統。較之其他指令,可更頻繁地執行此等指令中之至少某些指令,及/或可在計算系統之操作之特定時間時執行此等指令中之至少某些指令。
舉例而言,若計算系統多次嘗試讀取指令之一相同部分,則可發生一例外(例如,一故障)。在某些方法中,產生此等例外之指令可經由一預讀機制(或其他適合預取機制)載入至與計算系統相關聯之一快取記憶體中以減少計算系統在多次存取指令中使用之時間量。儘管已經歷一例外(或可能經歷一例外)之預取指令可減少計算系統在多次存取指令中使用之時間量,但在此等方法中利用之快取記憶體通常不與其他記憶體資源一樣快。
在某些實施例中,當部署在一使用者空間及/或一核心服務或程式庫中之一程式(例如,一應用程式)嘗試存取儲存在與計算系統或計算系統之 一處理器相關聯之一內部快取記憶體中之一指令時,且當存取指令之嘗試發生時,指令不存在於計算系統之一記憶體(例如,一RAM)中,可發生諸如一頁故障之一例外。可藉由存取一儲存裝置(指令儲存於其上)及載入與來自儲存裝置之指令相關聯之記憶體頁來補救此等例外。若由計算系統進行預讀操作,則可藉由載入與來自儲存裝置之指令相關聯之連續記憶體來補救此等例外。
作為另一實例,若實體記憶體資源變得過度利用(舉例而言,當在虛擬記憶體中執行多個程序時),則在執行之前,指令可映射至實體記憶體(例如,實體記憶體頁)。然而,若不存在足夠的用以映射指令之實體記憶體,則實體記憶體資源可變得過度利用,此可導致經減小計算系統效能及/或計算系統之經增加讀取/寫入時間。
在仍另一實例中,當操作計算系統時,某些寫入型樣可係共同的。舉例而言,某些指令可展現重複及/或可預測寫入型樣;然而,在某些方法中,關於此等寫入型樣之資訊不可由計算系統存取。因此,在某些方法中,可在重複地提取及寫入具有重複及/或可預測讀取或寫入型樣之指令中消耗時間及/或處理資源。
相比而言,本文中之實施例可減少在定址當多次存取一指令時發生之例外中消耗之一時間量及/或一處理資源量,可利用虛擬記憶體定址提供一計算系統之計算速度及/或讀取/寫入時間之一增加,及/或可緩解由一計算系統在重複地提取展現重複及/或可預測讀取或寫入型樣之指令中所消耗之時間及/或處理資源。
舉例而言,在某些實施例中,可以一混合式儲存裝置之形式來部署與計算系統相關聯之一或多個記憶體資源。舉例而言,至少一種記憶體資 源可包括一特定類型之記憶體資源,而至少另一種記憶體資源可包括一不同的特定類型之記憶體資源。作為一非限制性實例,與計算系統相關聯之一種記憶體資源可係一非揮發性記憶體資源,諸如一3D Xpoint非揮發性記憶體,且一第二記憶體資源可係一不同的非揮發性記憶體資源,諸如一快閃記憶體(例如,一儲存磁碟區)。然而,實施例不限於此等特定實例;包括混合式儲存裝置之記憶體資源可包含其他類型之非揮發性記憶體(例如,ROM、PROM、EPROM、EEPROM、NVRAM等)及/或揮發性記憶體(例如,RAM、DRAM、SRAM等)之組合。
在某些實施例中,如本文中更詳細闡述,可自第一記憶體資源或第二記憶體資源儲存及/或存取經判定以展現某些特性之指令。舉例而言,在某些實施例中,回應於若自第一記憶體資源儲存及/或存取指令則可由計算系統達成之一較低延時之一判定,可自第一記憶體資源儲存及/或存取某些指令。
在本發明之以下詳細說明中,參考形成本發明之一部分且其中以圖解說明方式展示可如何實踐本發明之一或多項實施例之附圖。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例,且可在不違背本發明之範疇之情形下作出程序、電及/或結構改變。如本文中所使用,特定地關於圖式中之參考編號之指定符(諸如,N,等)指示可包含如此指定之若干個特定特徵。如本文中所使用,「若干個」一特定事物係指一或多個此等事物(例如,若干個記憶體陣列可係指一或多個記憶體陣列)。「複數個」意欲係指一個以上此等事物。
本文中之各圖遵循其中第一個數字或前幾個數字對應於圖式之的圖 編號且其餘數字識別圖式中之一元件或組件之一編號慣例。可藉由使用類似數字來識別不同圖之間之類似元件或組件。舉例而言,在圖1中,104可指代元件「04」,且在圖2中可將一類似元件指代為204。如將瞭解,可添加、交換及/或消除本文中之各項實施例中所展示之元件以便提供本發明之若干個額外實施例。另外,如將瞭解,各圖中所提供之元件之比例及相對標度還意欲圖解說明本發明之特定實施例且不應視為一限制意義。
圖1係根據本發明之若干項實施例,呈一計算系統100之形式之一設備之一方塊圖,計算系統100包含一框架110、主機102及記憶體系統104。如本文中所使用,一框架110、主機102及/或記憶體系統104亦可被單獨視為一「設備」。在某些實施例中,記憶體系統104可係如結合圖2所闡述之一混合式記憶體系統。
系統100包含耦合(例如,連接)至記憶體系統104之一主機102,記憶體系統104包含如本文中圖2圖解說明之一或多個記憶體資源。主機102可係一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一智慧電話、一記憶卡讀取器、IoT啟用裝置以及各種其他類型之主機。主機102可包含一系統母板及/或底板,且可包含若干個處理資源(例如,一或多個處理器、微處理器或某一其他類型之控制電路)。系統100可包含單獨積體電路,或主機102及記憶體系統104兩者可在相同積體電路上。系統100可係(舉例而言)一伺服器系統及/或一高效能計算(HPC)系統及/或其之一部分。
為清晰起見,系統100已被簡化以聚焦於與本發明特定相關之特徵。記憶體系統104可包含一或多個記憶體資源,諸如一DRAM陣列(例如,一2T2C DRAM陣列、一3T DRAM陣列等)、FeRAM、SRAM陣列、STT RAM陣列、PCRAM陣列、TRAM陣列、RRAM陣列、NAND快閃陣列、3D Xpoint記憶體、NOR快閃陣列及/或包含(例如)一控制器、一3D Xpoint記憶體部分及一NAND快閃部分之一儲存子系統。
框架110可包含指令,該等指令可由與主機102相關聯之一處理資源執行以促進系統100之操作。舉例而言,框架可包含:可由主機102之處理資源執行以控制計算操作(諸如,讀取、寫入、打開、關閉等)以提供一或多個檔案系統(例如,一虛擬檔案系統、諸如一擴展檔案系統之一檔案系統等)之指令;及/或對應於一區塊裝置之一或多個指令。在某些實施例中,框架110可係一Linux®框架,諸如一Android®框架。此外,框架110還可包含驅動程式(例如,一或多個軟體驅動程式),其可執行以允許在主機102上運行之一作業系統與耦合至主機102之一或多個裝置通訊。
在某些實施例中,框架110可表示一作業系統。舉例而言,框架110可表示具有與其相關聯之一Linux®核心之一作業系統。在此等實施例中,框架110可被視為一「軟體儲存堆疊」(例如,框架110可表示一作業系統之一基於軟體之核心實施方案)。因此,框架110可具有與其相關聯之一或多個記憶體資源以儲存可執行以操作計算系統100之指令及/或框架110可包含經虛擬化之記憶體資源,其上儲存由框架110用於計算系統100之操作之指令。然而,實施例並不受限於此,且由框架110利用之指令可儲存在記憶體系統104中或自其存取,或儲存在主機之一主記憶體中,如本文中進一步詳細闡述。
如上文所闡述,框架110可包含經組態以執行某些任務及/或操作之各種組件。舉例而言,框架110可包含一系統呼叫組件111、一虛擬檔案系統組件112、一檔案系統組件113、一區塊裝置組件114及/或驅動程式組件 115。
系統呼叫組件111可包含可由一處理資源(例如,與主機相關聯之一處理資源)執行之指令及/或可佈建有硬體資源,在其上指令可最終經執行以向將執行指令之作業系統之核心請求一或多個服務。在某些實施例中,可經由一應用程式程式化介面存取系統呼叫組件111。當實施時,與系統呼叫組件111相關聯之指令可將對計算系統100之控制自使用者空間傳送至核心空間。在某些實施例中,可回應於一軟體中斷而發生控制之此傳送。
虛擬檔案系統組件112可包含可由一處理資源(例如,與主機相關聯之一處理資源)執行之指令及/或可佈建有硬體資源,在其上指令可最終經執行以在檔案系統組件113之頂部上提供一抽象層。舉例而言,虛擬檔案系統組件112可包含可經執行以存取本端及/或網路儲存裝置之指令。在某些實施例中,虛擬檔案系統112可包含可經執行以透明地(例如,沒有一用戶端應用程式互動)存取本端及/或網路儲存裝置之指令。與虛擬檔案系統組件112相關聯之指令可規定核心與檔案系統組件113之間之一介面。
檔案系統組件113可包含可由一處理資源(例如,與主機相關聯之一處理資源)執行之指令及/或可佈建有硬體資源,在其上指令可最終經執行以控制如何儲存及/或擷取與計算系統100相關聯之資料。舉例而言,檔案系統組件113可包含可執行以自記憶體系統104儲存及/或擷取資料之指令,如本文中更詳細論述。
區塊裝置組件114可儲存可由一處理資源(例如,與主機相關聯之一處理資源)執行之指令及/或可佈建有硬體資源,在其上指令可最終經執行以參考與計算系統100相關聯之一特定記憶體位置或多個記憶體位置。在 某些實施例中,區塊裝置組件114可包括可提供至計算系統100之經緩衝存取之一硬碟機及/或固態磁碟機。舉例而言,與區塊裝置組件114相關聯之指令可經執行以提供至與計算系統100相關聯之一裝置(例如,記憶體系統104)之存取。
驅動程式組件115可包含可由一處理資源(例如,與主機相關聯之一處理資源)執行之指令及/或可佈建有硬體資源,在其上指令可最終經執行以為與計算系統100相關聯之各種組件提供驅動程式支援。舉例而言,驅動程式組件115可經組態以執行指令以載入及/或更新與主機102、記憶體系統104及/或可與計算系統100相關聯之其他周邊裝置(未展示)相關聯之驅動程式。
在某些實施例中,框架110之各種組件可展現不同存取型樣,其中至少某些存取型樣可展現可預測及/或重複行為,如本文中更詳細闡述。因此,本文中所闡述之實施例可允許一混合式儲存系統促進各種組件及/或與框架110、主機102及/或記憶體系統104之各種組件相關聯之存取型樣之管理。
框架110可經由主機102耦合至記憶體系統104。舉例而言,主機102可包含一或多個處理資源(例如,諸如一中央處理單元之電腦處理器及/或其他電腦處理器),其經組態以執行儲存在框架110中之指令(例如,與系統呼叫組件111、虛擬檔案系統組件112、檔案系統組件113、區塊裝置組件114及/或驅動程式組件115相關聯之指令)。
圖2係根據本發明之若干項實施例,呈一計算系統200之形式之一設備之一方塊圖,計算系統200包含一主機202(其包含一主記憶體209)及記憶體系204(例如,一混合式記憶體系統)。主記憶體209可係諸如RAM、 DRAM、SRAM等之揮發性記憶體,其可用於儲存與計算系統200之操作相關聯之一或多個資料頁。然而,實施例不限於揮發性記憶體,且除揮發性記憶體或其替代之外,主記憶體還可包含非揮發性記憶體。
如在圖2中所圖解說明,混合式記憶體系統204可包含耦合至一控制器206之一或多個記憶體資源208-1、…、208-N。如在圖2中所展示,控制器206經由各別通訊頻道210-1、…、210-N通訊地耦合至記憶體資源208-1、…、208-N。通訊頻道210-1、…、210-N可允許在控制器206與記憶體資源208-1、…、208-N之間傳送資料及/或命令。在各種實施例中,控制器206負責致使來自框架(例如,圖1中圖解說明之框架110)及/或主機202之指令被執行及/或定序至記憶體系統204之存取。
控制器206可係一狀態機、定序器或某一其他類型之控制器,且包含呈一應用特定積體電路(ASIC)、場可程式化閘陣列等形式之硬體及/或韌體(例如,微碼指令)。舉例而言,控制器206可控制指令之存取型樣,其經執行以促進計算系統200之操作。如本文中所使用,一主機202、記憶體系統204、控制器206及/或記憶體資源208-1、…、208-N亦可單獨被視為一「設備」。
在某些實施例中,記憶體系統204可係一混合式儲存系統且可包含一或多個記憶體資源208-1、…、208-N。記憶體資源208-1、…、208-N可係不同種類之記憶體資源。舉例而言,記憶體資源208-1可係一新興非揮發性記憶體資源,諸如一3D Xpoint記憶體資源、鐵電RAM(FeRAM)等,而記憶體資源208-N可係一NAND記憶體資源。實施例不限於此等特定實例,且記憶體資源208-1及/或記憶體資源208-N可包括其他適合類型之記憶體資源。
在計算系統200之操作期間,記憶體系統204可用於程式碼分頁。如本文中所使用,「程式碼分頁」係一記憶體管理方案,計算系統200藉此自記憶體系統204儲存及擷取資料以供由主機202之主記憶體209(例如,系統記憶體)使用。在某些實施例中,可儲存在主機202之主記憶體209中之可執行以促進程式碼分頁之指令可執行為計算系統200之操作之部分。
然而,在計算系統200之操作期間,可執行用以存取主記憶體209之一相同部分之多個指令(例如,用以自主記憶體209儲存及/或擷取資料之一指令)。此可導致由計算系統200產生之一例外(例如,一故障)。在某些實施例中,一程式可存取未映射至計算系統200之主記憶體209中之資料及/或指令。在此情形中,可自記憶體系統204存取資料及/或指令,藉此處置由於不可自主記憶體209存取資料及/或指令而發生之一頁故障。在某些方法中,可藉由提供至不同於主記憶體209之一記憶體位置之讀取及/或寫入存取而處置(例如,補救)此例外。舉例而言,在某些方法中,可利用一預讀機制來預取已經歷一例外之指令集及將其等儲存在與計算系統200及/或主機202相關聯之一快取記憶體中以供後續執行。
此等例外在計算系統200之操作中可係極其常見的。舉例而言,在多處理計算環境中,且可產生一極大量之讀取及/或寫入資料一在某些實例中,高達每天數百十億位元組。在某些實施例中,為了緩解在讀取/寫入操作(其可導致產生一例外)中消耗之處理資源及/或時間,儲存指令(其在一記憶體資源(例如,記憶體資源208-1)中產生一臨限值數目個例外)以減少讀取/寫入延時,及減少在預取指令集中消耗之一處理資源量(如在一預讀機制之利用中發生)可係有益的。
舉例而言,在某些實施例中,控制器206可經組態以判定將發生(或 已發生)對應於對一特定資料集之一讀取或寫入存取請求之一例外,且致使該特定資料集寫入至記憶體資源208-1以供由計算系統200後續執行及/或擷取。在某些實施例中,特定資料集可儲存在記憶體資源208-1中之一分割區或LBA區塊中。分割區及/或LBA區塊可經配置(例如,保留)使得不同於特定資料之資料(例如,不對應於讀取或寫入存取請求之資料)不儲存在分割區及/或LBA區塊中,如本文中結合圖3A、3B及3C更詳細闡述。
如上文所闡述,主機之主記憶體209可係一實體記憶體資源,諸如一揮發性記憶體資源(例如,RAM、DRAM、SRAM等)、非揮發性記憶體資源(例如,一HDD、快閃記憶體、鐵電RAM等)或其組合。因此,可儲存在主記憶體209中之資料之量可歸因於主記憶體209之實體屬性而受到限制。舉例而言,主記憶體209可包含其中可儲存資料之一有限量之空間。
因此,在某些操作條件下,當主機202嘗試在主記憶體209中儲存太多資料時,主記憶體209可變得已滿及/或可展現經減小效能。此可在利用虛擬記憶體技術抽象化記憶體資源(例如,主記憶體209)之系統中進一步加劇,從而形成記憶體空間之量大於由主記憶體209界定之實體記憶體空間之實際量之一錯覺。
在此等實施方案中,可使用邏輯對實體定址技術來管理虛擬位址空間(例如,藉由諸如與主機202相關聯之一記憶體管理單元之控制電路)。舉例而言,虛擬位址可指配至對應實體位址,其可對應於主記憶體209(一程序可最終在其上執行)之一實體位置(例如,一或多個記憶體頁等)。然而,當多個虛擬記憶體位址映射至一相同實體記憶體位址時,計算系統200可經歷經減小效能及/或可懸而不決(例如,程序可被終止及/或可表現為非預期行為)。
舉例而言,在利用虛擬記憶體技術之計算實施方案中,一或多個程序可參考一或多個虛擬記憶體位置(例如,記憶體頁、記憶體區塊等),其可映射至主記憶體209之實體記憶體位置上。此外,當主記憶體209已滿時,可能不能呼叫虛擬記憶體頁,此乃因不存在充足實體記憶體資源可用於執行程序。
在某些方法中,此可藉由將主記憶體209中之資料頁傳送至一調換空間以空出主記憶體209之實體記憶體資源來緩解。舉例而言,在某些方法中,作業系統之核心可包含一機制以釋放經配置用於匿名頁之主記憶體209之實體記憶體資源。如本文中所使用,「匿名頁」係不具有一相關聯檔案之記憶體頁。舉例而言,一匿名頁可係並非由一檔案支援之一記憶體頁(例如,不具有一經規定檔案之一記憶體頁)。然而,儘管一匿名頁可不與一檔案相關,但一匿名頁可與一程序及/或一程序工作集相關。程序及程序工作集之非限制性實例包含諸如堆積、堆疊、常數等之資料結構。如本文中所使用,一程序工作集包含主機之一虛擬位址空間中之一或多個資料頁,其儲存在主機之實體記憶體中,諸如,主機之主記憶體。舉例而言,程序工作集含有對主機之主記憶體可見之記憶體頁(例如,最近由主機參考之頁)。
在此等方法中,頁(例如,匿名頁)之相關內容可暫時傳送(例如,複製)至一調換空間及/或一調換裝置。在隨後頁被參考之情形下,頁可傳送(例如,複製)回至主記憶體209。然而,歸因於與將頁自主記憶體209傳送至調換空間或調換裝置且接著隨後將頁自調換空間或調換裝置傳送回至主記憶體209相關聯之時間及能量消耗,傳統調換技術可係較不合意的,尤其在其中重複利用此等技術之實施方案中。如本文中所使用,一程序工作 集包含在主機之一虛擬位址空間中之一或多個資料頁,其儲存在主機之實體記憶體中,諸如,主機之主記憶體。舉例而言,程序工作集含有對主機之主記憶體可見之記憶體頁(例如,最近由主機參考之頁)。
為促進資料(諸如,對應於記憶體頁之資料)之選擇性傳送,在某些實施例中,混合式記憶體裝置204之一部分可經組態以操作為一調換裝置(例如,可經組態以允許記憶體頁之至及自混合式記憶體系統204之部分之選擇性傳送)。舉例而言,記憶體資源208-1之一部分可經組態以操作為一調換裝置,使得記憶體頁選擇性地傳送至記憶體資源208-1之部分。在某些實施例中,記憶體資源208-1之一或多個記憶體頁或與記憶體資源208-1相關聯之一或多個邏輯區塊位址可經配置以執行調換操作,如結合圖4進一步詳細闡述。當製造混合式記憶體系統204時(例如,在混合式記憶體系統204經供給以銷售至一最終使用者之前),可配置一或多個記憶體頁及/或一或多個邏輯區塊位址,或當初始化混合式記憶體系統204時(例如,當啟動計算系統200時),可配置一或多個記憶體頁及/或一或多個邏輯區塊位址。然而,實施例不受限於此;且在某些實施例中,當混合式記憶體系統204動態地處於計算系統200之運行時間期間時,可配置一或多個記憶體頁及/或一或多個邏輯區塊位址。
在某些實施例中,配置為一調換裝置之混合式記憶體系統204之部分可係具有較混合式記憶體系統200之其他部分低之一存取時間之混合式記憶體系統200之一部分。舉例而言,歸因於記憶體資源208-1係一新興類型記憶體資源(諸如,一3D Xpoint記憶體資源),記憶體資源208-1可具有較記憶體資源208-N低之一存取時間。此外,在某些實施例中,配置為一調換裝置之混合式記憶體系統204之部分可係具有較混合式記憶體系統200 之其他部分高之一耐久性之混合式記憶體系統200之一部分。
在某些實施例中,由主機202執行之程序及/或應用程式可依賴於一資料庫管理系統(DBMS),諸如NoSQL、SQLite、一基於雲端之DBMS或其他適合DBMS。DBMS可允許一最終使用者建立、讀取、更新及/或刪除與計算系統200相關聯之一資料庫中之資料。在某些實施例中,DMBS可根據可允許達成資料一致性及/或系統持久性之一日誌登載原則操作。DBMS可具有與其相關聯之命令。在某些實施例中,與DBMS相關聯之命令至少部分地基於指配至DBMS命令之一敏感度,可選擇性地轉向混合式記憶體系統之一部分。
日誌登載系統可係保持追蹤尚未提交至檔案系統(例如,本文中圖1中圖解說明之檔案系統113)之改變之一日誌登載檔案系統。在計算系統200之操作期間,日誌登載系統可遭受多次隨機寫入,其可使記憶體系統204及/或主記憶體209處於壓力下。舉例而言,日誌登載系統可遭受多次同步隨機及頻繁寫入,其可過度利用計算系統200之記憶體及/或主記憶體209,藉此使計算系統200之記憶體及/或主記憶體處於壓力下。
歸因於在前台中執行之維護操作(例如,在寫入命令執行期間),此等隨機及頻繁寫入可遭受長延時,尤其在基於快閃記憶體之記憶體系統中。在某些條件下,諸如當基於快閃記憶體之記憶體系統正滿負荷或接近滿負荷操作時及/或當基於快閃記憶體之記憶體系統已操作達一延長時段時,此等延時可在基於快閃記憶體之記憶體系統中進一步加劇。相比而言,隨著時間及/或當混合式記憶體系統204正滿負荷或接近滿負荷操作時,混合式記憶體系統204可遭受較基於快閃記憶體之記憶體系統低之延時。
為了緩解與基於快閃記憶體之記憶體系統相關聯之缺陷,某些實施 例允許控制器206判定由DBMS處置之命令訊務之一敏感度,且基於訊務之經判定敏感度將一指示符應用於某些類型之命令訊務。命令訊務之敏感度可基於命令訊務之特性,諸如一特定命令之執行頻率、命令之大小、命令之執行所消耗之資源(例如,記憶體資源及/或處理資源)之量、可執行命令之速度或其他適合敏感度特性。在某些實施例中,敏感度可基於與命令之執行相關聯之一寫入延時。在此實例中,回應於與命令之執行相關聯之一寫入延時超過一臨限寫入延時之一判定,命令可選擇性地轉向混合式記憶體系統204。
一旦控制器206已將指示符附加至一命令,命令便可選擇性地轉向計算系統200之一合適記憶體位置。舉例而言,重複、隨機及/或頻繁地執行之命令訊務(諸如,在計算系統200之操作期間,由日誌登載系統遭受之同步的小頻繁及隨機寫入)可選擇性地轉向混合式記憶體裝置204。在某些實施例中,命令訊務可基於指示符選擇性地轉向與混合式記憶體系統204相關聯之複數個記憶體資源208-1、…、208-N中之一特定記憶體資源(例如,記憶體資源208-1)。
與其中不選擇性地轉向命令訊務之方法或其中由一基於快閃記憶體之記憶體系統處置命令訊務之方法相比,藉由將命令訊務之某些部分選擇性地轉向混合式記憶體系統204,可達成較低延時及/或經增加效能。
在某些實施例中,計算系統200之檔案系統(例如,圖1中圖解說明之虛擬檔案系統112、圖1中圖解說明之檔案系統113)可係諸如一快閃友好型檔案系統(F2FS)之一快閃檔案系統或諸如Ext4之一日誌登載檔案系統,儘管檔案系統不限於此等特定實例。檔案系統可藉由當更新一檔案時更新之特定後設資料更新來維持其等結構。舉例而言,計算系統200之檔案系統 可包括諸如表、樹、資料陣列等之資料結構,且可在與其相關聯之檔案更新時經更新以維持檔案系統之結構。
當檔案系統被更新時(例如,當回應於一檔案更新而將後設資料更新應用於檔案系統時),以小隨機寫入來執行更新。如上文所闡述,此等類型之小隨機寫入可使記憶體系統204及/或主記憶體209處於壓力下。歸因於在前台中執行之維護操作(例如,在寫入命令執行期間),此等隨機寫入可遭受長延時,尤其在基於快閃記憶體之記憶體系統中。在某些條件下,諸如當基於快閃記憶體之記憶體系統正滿負荷或接近滿負荷操作時及/或當基於快閃記憶體之記憶體系統已操作達一延長時段時,此等延時可在基於快閃記憶體之記憶體系統中進一步加劇。相比而言,隨著時間及/或當混合式記憶體系統204正滿負荷或接近滿負荷操作時,混合式記憶體系統204可遭受較基於快閃記憶體之記憶體系統低之延時。
舉例而言,在某些實施例中,與檔案系統更新(例如,檔案系統後設資料更新)相關聯之命令訊務可選擇性地轉向計算系統200之一合適記憶體位置。在某些實施例中,計算系統200之合適記憶體位置可係混合式記憶體系統204之一部分,諸如記憶體資源208-1。在某些實施例中,控制器206可經組態以致使檔案系統更新選擇性地轉向混合式記憶體系統204之部分。
與其中不選擇性地轉向檔案系統寫入之方法或其中由一基於快閃記憶體之記憶體系統處置檔案系統寫入之方法相比,藉由將檔案系統寫入選擇性地轉向混合式記憶體系統204,可達成較低延時及/或經增加效能。
在計算系統200之操作期間,某些檔案系統(例如,圖1中圖解說明之虛擬檔案系統112、圖1中圖解說明之檔案系統113)可展現重複及/或可預 測寫入型樣。舉例而言,F2FS檢查點及/或日誌登載系統可以一可預測方式重複地寫入某些命令及/或資料。可以小隨機寫入來寫入此等命令及/或資料,如上文所闡述。
如上文所闡述,歸因於在前台中執行之維護操作(例如,在寫入命令執行期間),此等小隨機寫入可遭受長延時,尤其在基於快閃記憶體之記憶體系統中。在某些條件下,諸如當基於快閃記憶體之記憶體系統正滿負荷或接近滿負荷操作時及/或當基於快閃記憶體之記憶體系統已操作達一延長時段時,此等延時可在基於快閃記憶體之記憶體系統中進一步加劇。相比而言,隨著時間及/或當混合式記憶體系統204正滿負荷或接近滿負荷操作時,混合式記憶體系統204可遭受較基於快閃記憶體之記憶體系統低之延時。
為了緩解與基於快閃記憶體之記憶體系統相關聯之缺陷,某些實施例允許將小隨機寫入選擇性地轉向混合式記憶體系統204之一部分。舉例而言,計算系統200(或其部分)可經組態以判定一寫入操作(例如,一小隨機寫入)之一源。在某些實施例中,與計算系統200相關聯之一檔案系統及/或與計算系統200相關聯之驅動程式可經組態以使一提示(例如,一指示符)關聯至後設資料寫入及/或資料結構。提示可被傳送至一寫入命令中,且包含提示之寫入命令可被傳送至混合式記憶體系統204。在某些實施例中,在寫入命令及與其相關聯之提示被傳送至混合式記憶體系統204之後,控制器206可進一步經組態以將此等檔案系統寫入(或後設資料寫入)轉向混合式記憶體系統204,以減少存取時間及/或避免其對主記憶體209之耐久性,藉此增加計算系統200之效能。
在某些實施例中,控制器206可經組態以將檔案系統寫入選擇性地轉 向最適合處置轉向其之命令訊務之混合式記憶體系統204之部分。舉例而言,某些檔案系統可展現可由特定類型之記憶體最有效地處置之特定命令訊務型樣。作為一非限制性實例,在F2FS中,可以一可判定存取型樣來執行日誌結構檔案系統(LFS)寫入,其中資料依序地寫入在可極適合NAND記憶體之未經映射LBA上。相比而言,可以一可判定存取型樣來執行鬆弛空間再循環(SSR)寫入,其中資料隨機地寫入在可極適合低延時記憶體(諸如3D Xpoint記憶體)之經映射LBA上。
因此,在某些實施例中,控制器206可將與可判定寫入型樣相關聯之命令訊務選擇性地轉向最適合處置一特定類型之檔案系統寫入之混合式記憶體系統204之一部分。舉例而言,控制器206可經組態以將LFS寫入轉向記憶體資源208-N(其可係一NAND記憶體),及/或控制器206可經組態以將SSR寫入轉向記憶體資源208-1(其可係一低延時新興記憶體資源),如本文中所闡述。
在某些方法中,不可能將對應於一存取語意之資訊傳輸至與計算系統200相關聯之一記憶體裝置。舉例而言,在某些方法中,對應於一寫入存取請求是否與使用者資料或檔案系統後設資料相關聯之資訊不傳輸至與計算系統200相關聯之一記憶體裝置。因此,在某些方法中,與計算系統200相關聯之記憶體裝置可不具備關於若一特定LBA或LBA範圍儲存在執行分頁程序之一儲存位置中,則該特定LBA或LBA範圍將是否由讀取或寫入命令頻繁地存取之任何知識。
相比而言,本文中之實施例允許控制器206判定一寫入存取請求是否(舉例而言)與使用者資料或檔案系統後設資料相關聯,及/或判定一特定LBA或LBA範圍是否由讀取或寫入命令頻繁地存取且是否將具有特定性 質之讀取或寫入命令選擇性地轉向混合式記憶體系統204。
在某些實施例中,混合式記憶體系統204可經組態以根據非揮發性記憶體快速(NVMe)規格操作。舉例而言,混合式記憶體系統204之記憶體資源208-1、…、208-N中之一或多者可經組態以根據NVMe規格操作。將瞭解,NVMe規格將某些功能性提供至一非揮發性記憶體裝置(諸如,混合式記憶體系統204),如下文表1中所展示。
Figure 108109072-A0305-02-0023-2
在某些實施例中,表1中所闡述之功能性可促進混合式記憶體系統204與計算系統200之一經最佳化整合。舉例而言,NVMe規格之LBA範圍類型功能性可經利用以指示係一經規定檔案系統((例如,名稱空間),諸如圖1中圖解說明之虛擬檔案系統112及/或檔案系統113)之部分之LBA範圍之類型及/或屬性。在某些實施例中,LBA範圍之類型可包含RAID、頁檔案、調換檔案及/或可係供應商特定LBA範圍類型。此外,LBA範圍之屬性可包含經利用以指示是否可覆寫LBA範圍及/或LBA範圍是否對計算系統200之作業系統及/或BIOS可見之語意。
表1中所展示之資料集管理功能可經利用以傳輸與歸屬於一特定量之 LBA之命令及/或資料訊務型樣相關之資訊。舉例而言,資料集管理功能可包含與歸屬於一特定量之LBA之資料及/或命令訊務型樣之一命令存取大小、寫入準備、序列寫入範圍、序列讀取範圍、存取延時、存取頻率等相關之功能。在某些實施例中,資料集管理功能可基於LBA範圍、讀取命令及/或寫入命令而操作。
指示詞可包含串流指示詞,其可使得主機202能夠向控制器206提供一指示,一寫入或讀取命令中之經規定邏輯區塊係相關聯資料之一單個群組之部分。此外,指示詞還可達成主機202與混合式記憶體系統204之間之後設資料之交換。在某些實施例中,指示詞可促進資料同時寫入至混合式記憶體系統204,此可繼而促進同時抹除被同時寫入之資料之邏輯區塊。與其中不利用指示詞將資料讀取或寫入至混合式記憶體系統204之方法相比,此可最小化廢料收集操作及/或可導致經減少寫入放大。
圖3A圖解說明根據本發明之若干項實施例用以將一邏輯區塊位址範圍映射至一混合式記憶體系統之一實例流程圖。在方塊312處,計算系統(例如,圖2中圖解說明之計算系統200)可經組態以配置主機(例如,圖2中圖解說明之主機200)之主記憶體(諸如,圖2中圖解說明之主記憶體209)之一部分(例如,一分割區),以供在計算系統之某些操作條件下使用。在某些實施例中,計算系統可經組態以配置主機之主記憶體之一部分用於分頁程序及/或例外(例如,故障)之處置。在某些實施例中,控制器(例如,圖2中圖解說明之控制器206)或與主機相關聯之一控制器可經組態以配置主記憶體之部分用於分頁程序及/或在計算系統之操作期間發生之例外之處置。
舉例而言,計算系統可經組態以配置一記憶體頁、一記憶體頁之一 部分、一或多個記憶體區塊及/或主記憶體之若干個記憶體儲存位置用於分頁程序及/或在計算系統之操作期間發生之例外之處置。在某些實施例中,經配置用於分頁程序及/或在計算系統之操作期間發生之例外之處置之主記憶體之部分可係主記憶體之一邏輯分割區。
在方塊314處,計算系統可經組態以將已經配置用於分頁程序及/或在計算系統之操作期間發生之例外之處置之主記憶體之部分映射至與混合式記憶體系統相關聯之一LBA範圍。舉例而言,與主記憶體之經配置部分相關聯之邏輯位址可映射至一特定LBA範圍。在某些實施例中,LBA範圍可包括一連續序列之邏輯位址,其規定其中儲存與分頁程序及/或例外之處置相關聯之資料之位置(例如,混合式記憶體系統之邏輯儲存位置)。在某些實施例中,控制器(例如,圖2中圖解說明之控制器206)或與主機相關聯之一控制器可經組態以將混合式儲存系統之部分映射至當執行時可分頁至主記憶體之一特定LBA範圍。
在方塊316處,計算系統可經組態以將主記憶體之LBA範圍映射至混合式記憶體系統之(例如,圖2中圖解說明之混合式記憶體系統204)一部分。與主記憶體相關聯之LBA範圍可映射至之混合式記憶體系統之部分可包括混合式記憶體系統之一頁(或一頁之部分)、一子區段、一或多個LBA、若干個區塊等。
在某些實施例中,控制器(例如,圖2中圖解說明之控制器206)或與主機相關聯之一控制器可經組態以將與主記憶體相關聯之LBA範圍映射至混合式記憶體系統之部分。舉例而言,控制器可經組態以配置混合式記憶體系統之一部分來儲存經映射LBA範圍,其對應於用於分頁程序及例外處置之記憶體之實體位置(例如,實體位址)。
在某些實施例中,映射至混合式記憶體系統之LBA範圍可映射至係混合式記憶體系統之一新興非揮發性記憶體資源之記憶體資源(例如,記憶體資源208-1、…、208-N)中之一者。舉例而言,LBA範圍可映射至經組態以展現較混合式記憶體系統之其他記憶體資源低之一讀取(或寫入)延時之混合式記憶體系統之一記憶體資源。藉由將LBA範圍選擇性地映射至展現較混合式記憶體系統之其他記憶體資源低之一讀取或寫入延時之混合式記憶體系統之一記憶體資源,可改良計算系統之效能,如上文結合圖2所闡述。
圖3B圖解說明根據本發明之若干項實施例將混合式記憶體系統之部分映射至主機記憶體(例如,與主機相關聯之主記憶體)之一實例流程圖317。在某些實施例中,計算裝置之一作業系統可能夠判定對應於程式碼檔案(例如,應用程式可執行檔案、核心動態程式庫等)之資訊。程式碼檔案可儲存在計算裝置之混合式記憶體系統之一專用LBA範圍中。若與儲存在混合式記憶體系統中之程式碼檔案相關之指令被參考且發生一頁故障,則可讀取混合式記憶體系統之LBA範圍。在某些實施例中,儲存程式碼檔案之混合式記憶體系統之LBA範圍可映射至混合式記憶體系統之一低延時部分上,藉此促進程式碼分頁操作。
在方塊318處,計算系統可經組態以判定程式碼讀取內容作為一分頁程序之部分。舉例而言,計算系統可經組態以判定主記憶體之程式碼讀取內容作為由計算系統執行之一分頁程序之部分。然而,實施例不限於判定主記憶體之程式碼讀取內容作為分頁程序之部分,且在某些實施例中,計算系統可經組態以判定已執行(或將執行)一預讀操作,如本文中結合圖2更詳細闡述。如本文中所使用,「程式碼讀取內容」係與一檔案或一命令 相關聯之資料,其用作計算系統之一讀取操作之部分。
舉例而言,控制器(例如,圖2中圖解說明之控制器206)或與主機相關聯之一控制器可經組態以辨識與作為一分頁程序之部分被讀取(或將被讀取)之一檔案或一命令相關聯之資料,或控制器(例如,圖2中圖解說明之控制器206)或與主機相關聯之一控制器可經組態以辨識由計算系統執行之預讀操作,如本文中結合圖2更詳細闡述。
在方塊320處,計算系統可經組態以將含有經判定程式碼讀取內容之主機記憶體(例如,圖2中圖解說明之主記憶體209)之部分映射至混合式記憶體系統。在某些實施例中,含有經判定程式碼讀取內容之主機記憶體之部分可映射至經配置(例如,由控制器)以儲存對應於經判定程式碼讀取內容之資料之混合式記憶體系統之一經配置部分。舉例而言,混合式記憶體系統之一部分可經配置以儲存對應於經判定程式碼讀取內容之一LBA範圍。
在某些實施例中,經配置以儲存對應於程式碼讀取內容之一LBA範圍之混合式記憶體系統之部分可映射至係混合式記憶體系統之一新興非揮發性記憶體資源之記憶體資源(例如,記憶體資源208-1、…、208-N)中之一者。舉例而言,LBA範圍可映射至經組態以展現較混合式記憶體系統之其他記憶體資源低之一讀取(或寫入)延時之混合式記憶體系統之一記憶體資源。藉由將LBA範圍選擇性地映射至展現較混合式記憶體系統之其他記憶體資源低之一讀取(或寫入)延時之混合式記憶體系統之一記憶體資源,可改良計算系統之效能,如上文結合圖2所闡述。
圖3C圖解說明回應於一程式碼分頁操作之執行將資料選擇性地傳送至一混合式記憶體系統之一實例流程圖313。在方塊315處,一混合式記 憶體系統之一部分可經配置以供在一程式碼分頁操作中使用。經配置以供在一程式碼分頁操作中使用之混合式記憶體系統之部分可在計算系統之初始化(例如,起動、再啟動時等)時配置,或在計算系統之操作期間(例如,在計算系統之運行時間期間)動態地配置,或在混合式記憶體系統之製造期間(例如,在一最終使用者購買計算系統或混合式記憶體系統之前)配置。
混合式記憶體系統之經配置部分可係一或多個記憶體頁、一或多個LBA及/或一或多個記憶體區塊。舉例而言,控制器可經組態以配置混合式記憶體系統之一特定LBA範圍以供在一程式碼分頁操作中使用。在某些實施例中,經配置以供在一程式碼分頁操作中使用之混合式記憶體系統之部分可係展現混合式記憶體系統之記憶體資源當中之一最低存取時間之記憶體資源(例如,圖1中圖解說明之記憶體資源208-1、208-N等)之一部分。舉例而言,經配置以供在一程式碼分頁操作中使用之混合式記憶體系統之部分可係一新興記憶體系統之混合式記憶體系統之一記憶體資源(例如,圖2中圖解說明之記憶體資源208-1)之一部分(例如,藉由較混合式記憶體系統之一不同部分低之一存取時間及/或高之一耐久性表徵之混合式記憶體系統之一部分),如上文結合圖2所闡述。
在方塊319處,回應於一主機已經歷一故障例外之一判定,可執行程式碼分頁操作。舉例而言,控制器可經組態以判定已發生一故障例外。故障例外可由主機或計算系統經歷,如上文結合圖2所闡述。
在方塊321處,回應於程式碼分頁操作之執行,可將資料自主機選擇性地傳送至混合式記憶體系統之一經配置部分。舉例而言,在某些實施例中,控制器可經組態以判定將發生(或已發生)對應於用於一特定資料集之 一讀取或寫入存取請求之一例外,且致使特定資料集寫入至記憶體資源(例如,主機之主記憶體)以供由計算系統後續執行及/或擷取。在某些實施例中,特定資料集可儲存在記憶體資源中之一分割區或LBA區塊中。分割區及/或LBA區塊可經配置(例如,保留)使得不同於特定資料之資料(例如,不對應於讀取或寫入存取請求之資料)不儲存在分割區及/或LBA區塊中。在某些實施例中,資料可選擇性地傳送至與混合式記憶體系統相關聯之一特定邏輯區塊位址範圍。
在某些實施例中,控制器可經組態以判定由主機讀取之一程式碼之內容作為程式碼分頁操作之部分。判定由主機讀取之程式碼之內容之後,控制器可經組態以將主機之一記憶體之部分(例如,主機之一主記憶體)選擇性地映射至混合式記憶體系統之經配置部分。在某些實施例中,回應於控制器判定主機正參考經傳送資料,控制器可進一步經組態以致使資料自混合式記憶體系統之經配置部分傳送回至主機。
圖4圖解說明根據本發明之若干項實施例,將資料選擇性地傳送至一混合式記憶體系統之一實例流程圖423。在方塊422處,可配置混合式記憶體系統之一部分。舉例而言,混合式記憶體系統之一部分(例如,圖2中圖解說明之混合式記憶體系統204)可經配置以用作一調換空間及/或一調換裝置,如上文所闡述。
舉例而言,與混合式記憶體系統相關聯之控制器(例如,圖2中圖解說明之控制器206)可經組態以配置混合式記憶體系統之部分以用作一調換空間及/或調換裝置。經配置以用作一調換空間及/或調換裝置之混合式記憶體系統之部分可在計算系統之初始化(例如,起動、再啟動時等)時配置,或可在計算系統之操作期間(例如,在計算系統之運行時間期間)動態 地配置,或可在混合式記憶體系統之製造期間(例如,在一最終使用者購買計算系統或混合式記憶體系統之前)配置。
混合式記憶體系統之經配置部分可係一或多個記憶體頁、一或多個LBA及/或一或多個記憶體區塊。舉例而言,控制器可經組態以配置混合式記憶體系統之一特定LBA範圍以用作一調換空間及/或調換裝置。在某些實施例中,經配置以用作一調換空間及/或調換裝置之混合式記憶體系統之部分可係在混合式記憶體系統之記憶體資源當中展現一最低存取時間之記憶體資源(例如,圖2中圖解說明之記憶體資源208-1、208-N等)之一部分。舉例而言,經配置以用作一調換空間及/或調換裝置之混合式記憶體系統之部分可係一新興記憶體系統之混合式記憶體系統之一記憶體資源(例如,圖2中圖解說明之記憶體資源208-1)之一部分。
當多個虛擬位址映射至一相同實體記憶體位址時,計算系統可經歷經減小效能及/或可懸而不決(例如,程序可被終止及/或可表現為非預期行為)。藉由將混合式記憶體系統之一部分配置為一調換空間及/或調換裝置,可在主機與混合式記憶體系統之間傳送資料頁以緩解效能減小,該效能減小與至映射至與一相同實體記憶體位址之多個虛擬位址之同時呼叫相關聯,如下文結合方塊424進一步詳細闡述。
在方塊424處,計算系統及/或控制器可經組態以致使資料選擇性地傳送至混合式記憶體系統之經配置部分。舉例而言,資料頁(諸如,匿名頁)可自主機(例如,主機之主記憶體)傳送至混合式記憶體系統之經配置部分。實施例不限於傳送資料頁,且在某些實施例中,對應於混合式記憶體系統之一特定LBA範圍之資料區塊及/或資料可自混合式記憶體系統選擇性地傳送至主機。如上文所闡述,資料可作為一調換操作之部分來傳 送,且若資料隨後由主機參考,則可因此自混合式記憶體系統傳送回至主機。
藉由選擇性地傳送資料(例如,資料頁、資料區塊、LBA範圍等),可達成計算系統之經改良效能。舉例而言,與不利用一混合式記憶體系統之方法相比及/或與其中記憶體資源中之一或多者不係一新興類型記憶體資源之方法相比,藉由配置對應於記憶體資源(其係新興類型記憶體資源)之混合式記憶體系統之部分,且隨後在主機與混合式記憶體系統之間選擇性地傳送資料作為一調換操作之部分,可增加記憶體耐久性及/或可減少與執行一調換操作相關聯之一時間量。
圖5A圖解說明根據本發明之若干項實施例將命令選擇性地轉向一混合式記憶體系統之一實例流程圖525。在方塊526處,可將一敏感度指配至一命令。在某些實施例中,可藉由控制器(例如,圖2中圖解說明之控制器206)將敏感度指配至命令。如上文結合圖2所闡述,控制器可經組態以基於命令訊務之特性(諸如一特定命令之執行頻率、命令之大小、執行命令所消耗之資源之量、可執行命令之速度或其他適合敏感度特性)判定命令之敏感度。
在某些實施例中,控制器可經組態以將一指示符應用於命令從而指示命令之經判定敏感度。舉例而言,控制器可基於命令之經判定敏感度將一指示附加至命令。指示符可係具有附加至命令之一特定值之一旗標或數位,然而,實施例不受限於此,且指示符可係附加至命令之一數位序列或允許控制器判定是否將命令轉向混合式記憶體系統之其他適合指示符。
在方塊528處,命令可選擇性地轉向混合式記憶體系統。在某些實施例中,命令可基於該命令之經指配敏感度選擇性地轉向混合式記憶體系 統。舉例而言,控制器可經組態以判定命令之經指配敏感度,且基於指配至命令之敏感度將命令選擇性地轉向混合式記憶體系統。一旦控制器已將指示符附加至一命令,命令便可選擇性地轉向計算系統之一合適記憶體位置。舉例而言,重複、隨機及/或頻繁地執行之命令訊務(諸如,在計算系統之操作期間,日誌登載系統遭受之同步的小頻繁及隨機寫入)可選擇性地轉向混合式記憶體裝置。
作為一實例,控制器可經組態以判定命令具有對應於附加至其之經指配敏感度之一特定指示符。例如,控制器可判定附加至命令之指示符對應於具有一高敏感度之一命令(例如,重複、隨機及/或頻繁地執行之一命令),且可隨後致使命令選擇性地轉向混合式記憶體系統。相比而言,控制器可判定附加至命令之指示符對應於具有一低敏感度之一命令(例如,非重複、隨機及/或頻繁地執行之一命令),且可不採取關於具有指示附加至其之一低敏感度之指示符之命令之行動(例如,可不致使命令選擇性地轉向混合式記憶體系統)。
如上文結合圖2更詳細闡述,與其中不選擇性地轉向命令訊務之方法或其中命令訊務由一基於快閃記憶體之記憶體系統處置之方法相比,藉由將命令訊務之某些部分選擇性地轉向混合式記憶體系統,可達成較低延時及/或經增加效能。
圖5B圖解說明根據本發明之若干項實施例將命令訊務選擇性地轉向一混合式記憶體系統之一實例流程圖529。在方塊530處,可識別檔案系統後設資料。在某些實施例中,檔案系統後設資料可由控制器(例如,圖2中圖解說明之控制器206)識別。舉例而言,如上文結合圖2所闡述,控制器可經組態以識別由多個小隨機寫入表徵之命令訊務,諸如,對應於應用 於檔案系統之後設資料更新之命令訊務。
在某些實施例中,控制器可經組態以藉由識別對應於後設資料之資料結構來識別對應於後設資料更新之命令訊務。舉例而言,可基於其中組織後設資料之資料結構之類型來識別後設資料。藉由識別對應於其中組織後設資料之資料結構之類型之資料結構,控制器可識別對應於後設資料之命令訊務。一旦控制器已識別對應於後設資料之命令訊務,控制器便可進一步經組態以識別何時將後設資料更新應用於檔案系統。在某些實施例中,控制器可經組態以基於將與檔案系統相關聯之後設資料更新且應用於檔案系統之一判定來識別檔案系統已更新(或正在更新)。
控制器可經組態以識別對應於命令訊務之一指示符,該命令訊務對應於諸如回應於一檔案更新而應用於檔案系統之後設資料更新之檔案系統更新訊務。指示符可係具有附加至命令訊務之一特定值之一旗標或數位;然而,實施例不受限於此,且指示符可係附加至命令訊務之一數位序列或允許控制器判定是否將命令訊務轉向混合式記憶體系統之其他適合指示符。
在方塊532處,與經識別檔案系統後設資料相關聯之命令訊務可選擇性地轉向混合式記憶體系統之一部分。在某些實施例中,控制器可經組態以致使與經識別檔案系統後設資料相關聯之命令訊務選擇性地轉向混合式記憶體系統之一部分。控制器可經組態以基於附加至命令訊務之指示符致使與經識別檔案系統後設資料相關聯之命令訊務選擇性地轉向混合式記憶體系統之一部分,該命令訊務對應於諸如回應於一檔案更新而應用於檔案系統之後設資料更新之檔案系統更新訊務。
類似於本文中圖4之闡述,混合式記憶體系統之一部分可經配置以用 於在計算系統之製造時或計算系統之操作期間選擇性地轉移與經識別檔案系統後設資料相關聯之命令訊務。在某些實施例中,混合式記憶體系統之部分可係一或多個記憶體頁、一或多個LBA及/或一或多個記憶體區塊。舉例而言,控制器可經組態以配置與經識別檔案系統後設資料相關聯之命令訊務將轉向其的混合式記憶體系統之一特定LBA範圍。在某些實施例中,混合式記憶體系統之部分可係在混合式記憶體系統之記憶體資源當中展現一最低存取時間之記憶體資源之一部分(例如,圖1中圖解說明之記憶體資源208-1、208-N等)。因此,在某些實施例中,與其中不將對應於檔案系統後設資料更新之命令訊務選擇性地轉向一混合式記憶體系統之某些方法相比,可減少計算系統之延時。
圖5C圖解說明根據本發明之若干項實施例將具有一經識別寫入型樣之命令訊務選擇性地轉向一混合式記憶體系統之一實例流程圖533。在方塊534處,可識別一重複及/或可預測寫入型樣。對應於某一命令訊務之可預測及/或重複寫入型樣可由控制器(例如,圖2中圖解說明之控制器206)來識別。
舉例而言,在計算系統之操作期間,某些檔案系統(例如,圖1中圖解說明之虛擬檔案系統112、圖1中圖解說明之檔案系統113)可展現重複及/或可預測寫入型樣。舉例而言,F2FS檢查點及/或日誌登載系統可以一可預測方式重複地寫入某些命令及/或資料。可以小隨機寫入來寫入此等命令及/或資料,如上文所闡述。
在某些實施例中,控制器可經組態以藉由在計算裝置之核心與記憶體(例如,主記憶體及/或混合式記憶體系統)之間提供一較嚴密耦合來識別此等重複及/或可預測寫入型樣。舉例而言,在某些實施例中,控制器可 存取計算系統之一或多個語意部分,此可允許控制器識別在計算系統之操作期間發生之重複及/或可預測寫入型樣。
一旦對應於重複及/或可預測寫入型樣之命令訊務由控制器識別,控制器便可經組態以識別對展現可預測及/或重複寫入型樣之命令訊務之一指示符。指示符可係具有附加至命令訊務之一特定值之一旗標或數位;然而,實施例不受限於此,且指示符可係附加至命令訊務之一數位序列或允許控制器判定是否將命令訊務轉向混合式記憶體系統之其他適合指示符。
在方塊536處,與重複及/或可預測寫入型樣相關聯之命令訊務可選擇性地轉向混合式記憶體系統或其之一部分。如先前所闡述,混合式記憶體系統之一部分可經配置以用於在計算系統之製造時或計算系統之操作期間選擇性地轉向與重複及/或可預測寫入型樣相關聯之命令訊務。在某些實施例中,混合式記憶體系統之部分可係一或多個記憶體頁、一或多個LBA及/或一或多個記憶體區塊。舉例而言,控制器可經組態以配置與重複及/或可預測寫入型樣相關聯之命令訊務將轉向其的混合式記憶體系統之一特定LBA範圍。在某些實施例中,混合式記憶體系統之部分可係在混合式記憶體系統之記憶體資源當中展現一最低存取時間之記憶體資源之一部分(例如,圖1中圖解說明之記憶體資源208-1、208-N等)。因此,在某些實施例中,與其中不將展現重複及/或可預測寫入型樣之命令訊務選擇性地轉向一混合式記憶體系統之某些方法相比,可減少計算系統之延時。
圖5D圖解說明藉由一經識別命令特性選擇性地轉向一混合式記憶體系統之一實例流程圖540。在方塊542處,可識別一特定類型之命令訊務。舉例而言,可識別對應於檔案系統後設資料更新之命令訊務及/或展現一重複及/或可預測寫入型樣之命令訊務,如上文結合圖5B及5C所闡 述。在某些實施例中,控制器可經組態以識別特定類型之命令訊務。
在方塊544處,可致使命令訊務選擇性地轉向一混合式記憶體系統。在某些實施例中,命令訊務可對應於由可耦合至混合式記憶體系統之一主機執行之命令訊務。控制器可經組態以將命令訊務選擇性地轉向混合式記憶體系統之一部分,如本文中所闡述。舉例而言,混合式記憶體系統之部分可係在混合式記憶體系統之記憶體資源當中展現一最低存取時間之記憶體資源之一部分(例如,圖1中圖解說明之記憶體資源208-1、208-N等)。因此,在某些實施例中,與其中不將特定類型之命令訊務選擇性地轉向一混合式記憶體系統之某些方法相比,可減少計算系統之延時。
儘管本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,旨在達成相同結果之一配置可替代所展示之具體實施例。本發明意欲涵蓋本發明之一或多項實施例之修改或變化形式。應理解,已以一說明性方式而非一限制性方式作出以上說明。在審閱以上說明後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,本發明之一或多項實施例之範疇應參考所附申請專利範圍,連同授權此等申請專利範圍之等效內容之全部範圍來判定。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單項實施例中。本發明之此方法不被解釋為反映本發明之所揭示實施例必須使用在每一請求項中明確陳述之更多特徵之一意圖。而是,如以下申請專利範圍所反映:發明性標的物在於少於一單個所揭示之實施例之所有特徵。因此,特此將以下申請專利範圍併入實施方式中,其中每一請求項獨立地作為一單獨實施例。
100‧‧‧計算系統/系統
102‧‧‧主機
104‧‧‧記憶體系統
110‧‧‧框架
111‧‧‧系統呼叫組件
112‧‧‧虛擬檔案系統/虛擬檔案系統組件
113‧‧‧檔案系統組件/檔案系統
114‧‧‧區塊裝置組件
115‧‧‧驅動程式組件

Claims (17)

  1. 一種半導體設備,其包括:一混合式記憶體系統,其包括一第一非揮發性記憶體(NVM)資源、一第二NVM資源及一控制器,其中該控制器經組態以:配置該混合式記憶體系統之一部分以儲存與一主機之一主記憶體相關聯及對應於一調換操作之資料,該主機與該混合式記憶體系統分開且可耦合至該混合式記憶體系統,其中:該混合式記憶體系統之該部分經配置至該第一NVM資源或該第二NVM資源之一者,該者經組態以展現比該第一NVM資源或該第二NVM資源之另一者的一較低存取延時及一較高耐久性;及該混合式記憶體系統之該部分經組態以允許該資料在該混合式記憶體系統之該經配置部分與該主機之間傳送;及回應於該主機之一主記憶體經歷一臨限值量之資源利用之一判定藉由映射與該主機之該主記憶體相關聯之一邏輯區塊位址(LBA)至該第一NVM資源或該第二NVM資源之經組態以展現該較低存取延時及該較高耐久性之該者,將與該主機之一虛擬記憶體位置相關聯之資料選擇性地傳送至該混合式記憶體系統之該第一NVM資源或該第二NVM資源。
  2. 如請求項1之設備,其中該控制器進一步經組態以致使將該資料選擇性地傳送至該混合式記憶體系統之一特定邏輯區塊位址範圍。
  3. 如請求項1之設備,其中該控制器進一步經組態以藉由在該混合式記憶體系統中選擇性地傳送該資料而最佳化該資料之一執行速度。
  4. 如請求項1至3中任一項之設備,其中該資料包含對應於一程序工作資料集之資料。
  5. 如請求項1之設備,其中該第一NVM資源與該第二NVM資源之至少一者包括一電阻可變記憶體裝置及該第一NVM資源與該第二NVM資源之另一者包括一快閃記憶體裝置。
  6. 一種半導體系統,其包括:一混合式記憶體系統,其包括一第一非揮發性記憶體(NVM)資源、一第二NVM資源及一控制器,該控制器經組態以:配置該混合式記憶體系統之一部分以儲存與一主機之一主記憶體相關聯及對應於一調換操作之資料,該主機與該混合式記憶體系統分開且可耦合至該混合式記憶體系統,其中:該混合式記憶體系統之該部分經配置至該第一NVM資源或該第二NVM資源之一者,該者經組態以展現比該第一NVM資源或該第二NVM資源之另一者的一較低存取延時及一較高耐久性;及該混合式記憶體系統之該部分經組態以允許該資料在該混合式記憶體系統之該經配置部分與該主機之間傳送;藉由將對應於該調換操作之資料自該主機選擇性地傳送至該混 合式記憶體系統之該經配置部分而執行該調換操作;及至少部分基於該調換操作之執行藉由映射與耦合至該混合式記憶體系統之該主機之該主記憶體相關聯之一邏輯區塊位址(LBA)至該第一NVM資源或該第二NVM資源之經組態以展現該較低存取延時及該較高耐久性之該者,選擇性地儲存於該混合式記憶體系統之該第一NVM資源或該第二NVM資源。
  7. 如請求項6之系統,其中該第一NVM資源係藉由比該第二NVM資源之一較快存取時間及一較高記憶體耐久性之至少一者來表徵。
  8. 如請求項6或7之系統,其中該控制器經組態以藉由將該資料選擇性地傳送至該混合式記憶體系統之該經配置部分而最佳化與該調換操作之執行相關聯之一時間量。
  9. 如請求項6或7之系統,其中該控制器經組態以回應於該資料由該主機參考之一判定而將該資料傳送回至該主機。
  10. 如請求項6或7之系統,其中對應於該調換操作之該資料對應於由與該主機相關聯之一虛擬記憶體頁存取之一程序工作資料集。
  11. 如請求項10之系統,其中該控制器經組態以回應於對應於該程序工作集之一記憶體量已超過一臨限記憶體消耗值之一判定而致使該調換操作之執行。
  12. 一種操作一混合式記憶體系統之方法,其包括:配置包括一快閃記憶體裝置及一電阻可變記憶體裝置之該混合式記憶體系統之一部分以儲存對應於一主機之一虛擬記憶體位置之資料;配置該混合式記憶體系統之一部分以儲存與該主機之一主記憶體相關聯及對應於一調換操作之資料,該主機與該混合式記憶體系統分開且可耦合至該混合式記憶體系統,其中:該混合式記憶體系統之該部分經配置至該快閃記憶體裝置或該電阻可變記憶體裝置之一者,該者經組態以展現比該快閃記憶體裝置或該電阻可變記憶體裝置之另一者的一較低存取延時及一較高耐久性;及該混合式記憶體系統之該部分經組態以允許該資料在該混合式記憶體系統之該經配置部分與該主機之間傳送;及藉由映射與耦合至該混合式記憶體系統之該主機之該主記憶體相關聯之一邏輯區塊位址(LBA)至該快閃記憶體裝置或該電阻可變記憶體裝置之經組態以展現該較低存取延時及該較高耐久性之該者,將由與該主機相關聯之一虛擬記憶體位置參考之該資料選擇性地傳送至該混合式記憶體系統之該快閃記憶體裝置或該電阻可變記憶體裝置之該經配置部分。
  13. 如請求項12之方法,其中配置該混合式記憶體系統之該部分以儲存資料進一步包括配置該混合式記憶體系統之一邏輯區塊位址範圍以儲存該資料。
  14. 如請求項12或13之方法,其中該資料包括一匿名資料頁。
  15. 如請求項14之方法,其中該匿名資料頁包含對應於一程序工作資料集之資料。
  16. 如請求項12或13之方法,其進一步包括回應於判定該主機正參考該資料而將該資料自該混合式記憶體系統之該經配置部分傳送回至該主機。
  17. 如請求項12或13之方法,其進一步包括回應於判定與該主機相關聯之一實體記憶體位置由與該主機相關聯之一個以上虛擬記憶體位置參考而將該資料自該主機選擇性地傳送至該混合式記憶體系統之該經配置部分。
TW108109072A 2018-03-21 2019-03-18 混合式記憶體系統 TWI696188B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/927,383 US10809942B2 (en) 2018-03-21 2018-03-21 Latency-based storage in a hybrid memory system
US15/927,383 2018-03-21

Publications (2)

Publication Number Publication Date
TW201941197A TW201941197A (zh) 2019-10-16
TWI696188B true TWI696188B (zh) 2020-06-11

Family

ID=67985188

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108109072A TWI696188B (zh) 2018-03-21 2019-03-18 混合式記憶體系統

Country Status (7)

Country Link
US (2) US10809942B2 (zh)
EP (1) EP3769227A4 (zh)
JP (1) JP7049476B2 (zh)
KR (1) KR102434170B1 (zh)
CN (1) CN111919201B (zh)
TW (1) TWI696188B (zh)
WO (1) WO2019182824A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705963B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10923178B1 (en) 2020-02-27 2021-02-16 Western Digital Technologies, Inc. Data storage with improved write performance for preferred user data
RU2757659C1 (ru) * 2020-06-16 2021-10-19 Александр Георгиевич Носков Накопитель магнитный с разделёнными областями
US11947839B2 (en) 2021-05-10 2024-04-02 Samsung Electronics Co., Ltd. Storage device, system, and method for customizable metadata
US11860773B2 (en) * 2022-02-03 2024-01-02 Micron Technology, Inc. Memory access statistics monitoring
CN114936007A (zh) * 2022-06-02 2022-08-23 三星(中国)半导体有限公司 存储数据的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137055A1 (en) * 2010-11-29 2012-05-31 Dong Yang Lee Hybrid memory system and method managing the same
US20170286296A1 (en) * 2016-04-01 2017-10-05 Cavium, Inc. Managing synonyms in virtual-address caches
TW201802687A (zh) * 2016-04-14 2018-01-16 美光科技公司 具有直接讀取存取之記憶體裝置

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH047763A (ja) * 1990-04-26 1992-01-13 Oki Electric Ind Co Ltd 主記憶割り当て管理方式
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US6581142B1 (en) * 2000-09-01 2003-06-17 International Business Machines Corporation Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
KR100843543B1 (ko) * 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
KR100881187B1 (ko) * 2007-01-16 2009-02-05 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
TWI338856B (en) * 2007-03-09 2011-03-11 Ite Tech Inc A flash memory storing device and a data storing method thereof
JP4781373B2 (ja) * 2007-05-14 2011-09-28 株式会社バッファロー 記憶装置
US20100169602A1 (en) * 2008-12-29 2010-07-01 Jared E Hulbert Method and Apparatus for Efficient Memory Placement
US20100241815A1 (en) * 2009-03-20 2010-09-23 Google Inc. Hybrid Storage Device
US8307151B1 (en) * 2009-11-30 2012-11-06 Micron Technology, Inc. Multi-partitioning feature on e-MMC
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US8725963B1 (en) 2011-04-15 2014-05-13 Parallels IP Holdings GmbH System and method for managing a virtual swap file for virtual environments
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
KR20130032772A (ko) * 2011-09-23 2013-04-02 삼성전자주식회사 하이브리드 메모리 장치, 이를 포함하는 컴퓨터 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법
JP5971547B2 (ja) * 2012-02-15 2016-08-17 国立大学法人 東京大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
JP2014178913A (ja) * 2013-03-15 2014-09-25 Sony Corp 電子機器、スナップショットイメージの作成方法及びプログラム
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9430386B2 (en) * 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9946495B2 (en) * 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9898410B2 (en) 2013-09-10 2018-02-20 Intel Corporation Hybrid main memory using a fine-grain level of remapping
US11733932B2 (en) * 2013-09-27 2023-08-22 Hewlett Packard Enterprise Development Lp Data management on memory modules
KR20150043102A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 하이브리드 메모리의 데이터 관리 장치 및 방법
US9430508B2 (en) 2013-12-30 2016-08-30 Microsoft Technology Licensing, Llc Disk optimized paging for column oriented databases
US9509771B2 (en) * 2014-01-14 2016-11-29 International Business Machines Corporation Prioritizing storage array management commands
KR20150089538A (ko) * 2014-01-28 2015-08-05 한국전자통신연구원 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법
US9772776B2 (en) 2014-02-27 2017-09-26 Red Hat Israel, Ltd. Per-memory group swap device
US9711194B2 (en) * 2015-01-28 2017-07-18 Xilinx, Inc. Circuits for and methods of controlling the operation of a hybrid memory system
EP3097671B1 (en) * 2015-02-18 2021-05-19 Intel Corporation Traffic class arbitration based on priority and bandwidth allocation
US9459802B1 (en) * 2015-03-30 2016-10-04 Kabushiki Kaisha Toshiba Hybrid-HDD that limits dirty data in NAND
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US9760479B2 (en) * 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
JP2017138853A (ja) * 2016-02-04 2017-08-10 株式会社東芝 情報処理装置およびプログラム
US10678704B2 (en) * 2016-03-29 2020-06-09 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10108555B2 (en) * 2016-05-26 2018-10-23 Macronix International Co., Ltd. Memory system and memory management method thereof
US11977484B2 (en) * 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10540098B2 (en) * 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10152427B2 (en) * 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10649665B2 (en) * 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
KR20180094372A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 하이브리드 메모리 시스템 및 그 제어 방법
US10901894B2 (en) * 2017-03-10 2021-01-26 Oracle International Corporation Allocating and accessing memory pages with near and far memory blocks from heterogeneous memories
US10430329B2 (en) * 2017-06-23 2019-10-01 Western Digital Technologies, Inc. Quality of service aware storage class memory/NAND flash hybrid solid state drive
US10152428B1 (en) * 2017-07-13 2018-12-11 EMC IP Holding Company LLC Virtual memory service levels
US10705963B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137055A1 (en) * 2010-11-29 2012-05-31 Dong Yang Lee Hybrid memory system and method managing the same
US20170286296A1 (en) * 2016-04-01 2017-10-05 Cavium, Inc. Managing synonyms in virtual-address caches
TW201802687A (zh) * 2016-04-14 2018-01-16 美光科技公司 具有直接讀取存取之記憶體裝置

Also Published As

Publication number Publication date
US20190294363A1 (en) 2019-09-26
US20200409607A1 (en) 2020-12-31
WO2019182824A1 (en) 2019-09-26
JP2021518605A (ja) 2021-08-02
US10809942B2 (en) 2020-10-20
CN111919201B (zh) 2024-05-14
KR20200121372A (ko) 2020-10-23
EP3769227A4 (en) 2021-12-22
KR102434170B1 (ko) 2022-08-19
JP7049476B2 (ja) 2022-04-06
TW201941197A (zh) 2019-10-16
EP3769227A1 (en) 2021-01-27
CN111919201A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
TWI696188B (zh) 混合式記憶體系統
US11340808B2 (en) Latency-based storage in a hybrid memory system
US11327892B2 (en) Latency-based storage in a hybrid memory system
US20170220482A1 (en) Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations
KR20220050177A (ko) 3단의 계층적 메모리 시스템
US11782854B2 (en) Cache architecture for a storage device
TW202030594A (zh) 混合式記憶體系統介面