TW202248862A - 管理記憶體系統的方法以及用於頁面遷移的裝置及系統 - Google Patents

管理記憶體系統的方法以及用於頁面遷移的裝置及系統 Download PDF

Info

Publication number
TW202248862A
TW202248862A TW111118546A TW111118546A TW202248862A TW 202248862 A TW202248862 A TW 202248862A TW 111118546 A TW111118546 A TW 111118546A TW 111118546 A TW111118546 A TW 111118546A TW 202248862 A TW202248862 A TW 202248862A
Authority
TW
Taiwan
Prior art keywords
memory
page
monitoring
migration
pages
Prior art date
Application number
TW111118546A
Other languages
English (en)
Inventor
朴熙權
R 皮楚马尼
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 TW202248862A publication Critical patent/TW202248862A/zh

Links

Images

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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種管理記憶體系統的方法可包括:對第一類型的第一記憶體的頁面進行監視;基於所述監視來確定頁面的使用;以及基於頁面的使用來將頁面遷移至第二類型的第二記憶體。對頁面進行監視可包括對頁面的映射進行監視。對頁面的映射進行監視可包括對所述頁面自邏輯位址至物理位址的映射進行監視。確定頁面的使用可包括確定頁面的更新頻率。確定頁面的使用可包括將頁面的更新頻率與臨限值進行比較。對頁面進行遷移可包括向裝置驅動器發送中斷。對頁面進行遷移可包括為頁面設定寫入保護狀態。

Description

管理記憶體系統的方法以及用於頁面遷移的裝置及系統
本揭露大體而言是有關於記憶體系統,且更具體而言是有關於用於記憶體系統中的頁面遷移的系統、方法及設備。 [相關申請案的交叉參考]
本申請案主張於2021年6月1日提出申請且名稱為「用於記憶體系統中的頁面遷移的系統、方法及裝置(Systems, Methods, and Devices for Page Migration in Memory Systems)」的序列號為63/195,708的美國臨時專利申請案的優先權及權益,所述美國臨時專利申請案併入本案供參考。
在一些實施例中,異質記憶體系統可使用二或更多種類型的記憶體,其中每一種類型的記憶體皆可適用於特定目的。舉例而言,異質記憶體系統可包括可在電源循環期間保持資料的非揮發性記憶體。作為另一實例,異質記憶體系統可包括可在不具有壽命損耗限制的情況下被頻繁更新的揮發性記憶體。
在此先前技術部分中揭露的以上資訊僅用於增強對本發明的背景的理解,且因此其可能含有不構成先前技術的資訊。
一種管理記憶體系統的方法可包括:對第一類型的第一記憶體的頁面進行監視;基於所述監視來確定所述頁面的使用;以及基於所述頁面的所述使用來將所述頁面遷移至第二類型的第二記憶體。對所述頁面進行監視可包括對所述頁面的映射進行監視。對所述頁面的所述映射進行監視可包括對所述頁面自邏輯位址至物理位址的映射進行監視。確定所述頁面的所述使用可包括確定所述頁面的更新頻率。確定所述頁面的所述使用可包括將所述頁面的所述更新頻率與臨限值進行比較。對所述頁面進行遷移可包括向裝置驅動器發送中斷。對所述頁面進行遷移可包括為所述頁面設定寫入保護狀態。對所述頁面進行遷移可更包括由頁面錯失處置器基於所述寫入保護狀態對所述頁面進行遷移。可由所述頁面錯失處置器基於寫入所述頁面來對所述頁面進行遷移。所述第一記憶體可包括裝置附接記憶體。所述裝置附接記憶體可經由記憶體協定而被暴露。所述記憶體協定可包括同調記憶體協定。所述方法可更包括在所述裝置附接記憶體中儲存所述頁面的使用資訊。所述頁面可由主機進行遷移,且所述方法可更包括由所述主機基於對所述頁面進行遷移來對所述頁面的所述使用資訊進行更新。所述第一記憶體可包括非揮發性記憶體,且所述第二記憶體可包括揮發性記憶體。
一種裝置可包括記憶體及裝置控制器,所述裝置控制器被配置成:對所述記憶體的頁面進行監視;基於所述監視來確定所述頁面的使用;以及基於所述頁面的所述使用發送指示。所述裝置控制器可被配置成藉由對所述頁面的映射進行監視來對所述頁面進行監視。所述裝置控制器可被配置成藉由對所述頁面的邏輯位址至物理位址映射進行監視來對所述頁面的所述映射進行監視。所述裝置控制器可被配置成藉由確定所述頁面的更新頻率來確定所述頁面的所述使用。所述裝置控制器可被配置成藉由將所述頁面的所述更新頻率與臨限值進行比較來確定所述頁面的所述使用。所述裝置控制器可被配置成基於所述頁面的所述使用發送中斷。所述裝置可包括儲存裝置,且所述記憶體可包括非揮發性記憶體。所述記憶體可經由記憶體協定而被暴露。所述記憶體協定可包括同調記憶體協定。所述裝置控制器可被配置成在所述記憶體中儲存所述頁面的使用資訊。所述裝置控制器可被配置成接收更新訊息且基於所述更新訊息對所述使用資訊進行更新。
一種系統可包括:主機處理器;第一類型的第一記憶體,被佈置成由所述主機處理器進行存取;以及裝置介面,被配置成向所述主機處理器暴露第二類型的第二記憶體;以及遷移邏輯,被配置成接收遷移訊息且基於所述遷移訊息將所述第二記憶體的頁面遷移至所述第一記憶體。所述遷移邏輯可包括被配置成接收所述遷移訊息的裝置驅動器。所述裝置驅動器可被配置成基於所述遷移訊息為所述頁面設定寫入保護狀態。所述裝置驅動器可被配置成在所述頁面的頁面表項中設定所述寫入保護狀態。所述遷移邏輯可包括被配置成將所述頁面自所述第二記憶體遷移至所述第一記憶體的頁面錯失處置器。所述遷移邏輯可被配置成基於將所述頁面自所述第二記憶體遷移至所述第一記憶體而藉由裝置介面發送更新訊息。
在根據本揭露實例性實施例的異質記憶體系統中,可基於確定出記憶體頁面的使用模式(usage pattern)來將記憶體頁面自第一類型記憶體(例如,非揮發性記憶體)遷移至第二類型記憶體(例如,揮發性記憶體)。舉例而言,可對非揮發性記憶體的一或多個頁面的使用模式進行監視,以辨識出相較於其他頁面可被更頻繁地存取的頁面。被確定為被頻繁存取的頁面(可被稱為熱頁面(hot page))可自非揮發性記憶體遷移至揮發性記憶體,例如以減少頁面寫入(此可增加非揮發性記憶體的壽命)、改善系統效能(例如,藉由使負載平衡)及/或達成類似優點。
在一些實施例中,第一類型記憶體(例如,非揮發性記憶體)可在儲存裝置(例如固態驅動機(solid state drive,SSD))處被實施為裝置附接記憶體。可例如藉由對記憶體頁面的邏輯至物理(logical-to-physical,L2P)映射的改變進行監視而在SSD處對裝置附接記憶體的一或多個頁面的使用模式進行監視。舉例而言,若特定頁面的L2P映射相較於臨限水準被更頻繁地更新,則所述特定頁面可被確定為熱頁面,所述臨限水準可例如基於SSD的一些頁面或所有頁面的平均值來確定。SSD可例如藉由向主機處的裝置驅動器發出中斷來發起對一或多個熱頁面的遷移。
在一些實施例中,可使用頁面錯失處置器將熱頁面自第一類型記憶體遷移至第二類型記憶體。舉例而言,具有裝置附接記憶體的儲存裝置的裝置驅動器可為第一類型記憶體的已被確定為熱頁面的一或多個頁面設定寫入保護狀態。對受寫入保護頁面中的一者進行的後續寫入可使頁面錯失處置器將被存取的頁面自第一類型記憶體遷移至第二類型記憶體。在一些實施例中,可例如藉由在指向熱頁面的頁面表項中設定寫入保護位元來為熱頁面設定寫入保護狀態。
在一些實施例中,用於對裝置附接記憶體的一或多個頁面的使用模式進行監視的資訊可儲存於裝置附接記憶體中。舉例而言,裝置附接記憶體的一部分可被預留用於寫入計數或用於可用於確定使用模式的其他度量。可由裝置及/或主機對預留的所述一部分進行存取。舉例而言,當頁面的L2P映射發生改變時,裝置可對每一頁面的寫入計數進行更新。當頁面被解除分配且因此可不再被主機處的應用及/或過程使用時,主機可對頁面的寫入計數進行重置。
圖1例示出根據本揭露實例性實施例的其中主機可對裝置附接記憶體進行存取的系統的實例性實施例。圖1中所例示的系統可包括主機102及裝置104。主機102可包括具有記憶體控制器106的中央處理單元(central processing unit,CPU)105以及系統記憶體110。在一些實施例中,CPU 105可執行軟體(例如裝置驅動器、頁面錯失處置器及/或如下所述的其他系統軟體)。可使用任何類型的記憶體(例如揮發性記憶體,例如動態隨機存取記憶體(dynamic random access memory,DRAM)、靜態隨機存取記憶體(static random access memory,SRAM)及/或類似記憶體)來實施系統記憶體110。然而,在其他實施例中,可使用任何其他類型的記憶體。
裝置104可包括裝置記憶體108。裝置104可被實施為例如儲存裝置(例如固態驅動機(SSD)),其中可使用非揮發性記憶體(nonvolatile memory,NVM)(例如反及快閃記憶體(NAND flash memory))來實施裝置記憶體108。然而,在其他實施例中,可使用任何其他類型的裝置104及/或裝置記憶體108。
主機102與裝置104可經由任何類型的互連件112(例如快速計算鏈路(Compute Express Link,CXL))進行通訊。主機102可使用任何類型的協定而經由互連件112存取裝置記憶體108。在圖1中所例示的實施例中,主機102可使用CXL.mem協定114存取裝置記憶體108,CXL.mem協定114可藉由CXL互連件112進行操作。CXL.mem協定可以如下的方式將裝置記憶體暴露於主機102:可使得主機102能夠對裝置記憶體108進行存取,如同主機102是系統記憶體110的一部分一般。
圖1中所例示的組件的配置僅是示例性的且其在其他實施例中可以不同的方式進行佈置。舉例而言,在其他實施例中,記憶體控制器106及/或所示的系統記憶體110可與主機102分開實施。
圖2例示出根據本揭露實例性實施例的異質記憶體方案的實例性實施例。舉例而言,可使用圖1中所例示的系統來實施圖2中所例示的記憶體方案,但亦可使用其他系統來實施圖2中所例示的記憶體方案。
圖2中所例示的記憶體方案可包括第一類型記憶體208、第二類型記憶體210以及可使用第一類型記憶體208及第二類型記憶體210的主機202。第一類型記憶體208可被實施為例如揮發性記憶體(例如反及快閃記憶體)。第二類型記憶體210可被實施為例如非揮發性記憶體(例如動態隨機存取記憶體(DRAM))。
在一些實施例中,第一類型記憶體208中的一些或全部可被實施為裝置附接記憶體,而第二類型記憶體210中的一些或全部可被實施為系統記憶體。裝置附接記憶體可經由互連件及/或例如CXL及/或CXL.mem等協定暴露於主機202。在一些實施例中,使用例如CXL.mem等同調記憶體協定可使得裝置附接記憶體能夠對於主機202而言表現為系統記憶體。第一類型記憶體208及第二類型記憶體210可藉由映射方案218被映射至在主機202上運行的一或多個過程216。
在圖2中所例示的配置中,在主機202上運行的一或多個過程216可能會以如下的方式使用第一類型記憶體208:可能會減少第一類型記憶體208的壽命及/或導致可能會使系統效能劣化的負載不平衡。舉例而言,在一些實施例中,第一類型記憶體208的一或多個頁面可被過程216頻繁寫入。然而,由於第一類型記憶體208可能會在有限次數的寫入之後損耗,因此頻繁的更新可能會減少第一類型記憶體208的壽命。
另外,由於第一類型記憶體208可被實施為裝置附接記憶體而非系統記憶體,因此主機202可能無法對可能會影響第一類型記憶體208的壽命及/或效能的資訊進行存取。舉例而言,若裝置附接記憶體208使用固態驅動機(SSD)中的非揮發性記憶體來實施,則頻繁的頁面更新可能會增加無效頁面的數目,此可能會觸發頻繁的垃圾收集。此轉而可能會減少非揮發性記憶體的壽命。另外,頻繁的頁面更新可能會因例如尾等待時間(tail latency)增加而使系統效能劣化,所述尾等待時間可在如下的情況下出現:當應用向裝置附接記憶體208發出多個存取請求之後可能等待最長等待時間的請求完成時。
圖3例示出根據本揭露實例性實施例的具有頁面遷移的異質記憶體方案的實例性實施例。圖3中所例示的實施例可包括以與圖2中所例示的配置相似的配置進行佈置的第一類型記憶體308、第二類型記憶體310及主機302。然而,圖3中所例示的實施例亦可包括監視過程320,監視過程320可對第一類型記憶體308的一或多個頁面322進行監視,以確定所述一或多個頁面322的一或多個使用模式。舉例而言,監視過程320可確定出頁面322中的一或多者可為可被在主機302上運行的過程316頻繁存取的熱頁面。監視過程320可向主機302處的遷移邏輯326發送辨識出可為熱頁面的一或多個頁面322的遷移訊號324。然後遷移邏輯326可對映射方案318進行控制,以藉由將所述一或多個熱頁面重新映射至第二類型記憶體310中的一或多個位置328來將所述一或多個熱頁面322自第一類型記憶體308遷移至第二類型記憶體310,如箭頭330所示。
依據實施細節而定,圖3中所例示的記憶體方案可延長第一類型記憶體308的壽命及/或改善系統效能。舉例而言,若第一類型記憶體308被實施為快閃記憶體且第二類型記憶體310被實施為DRAM,則可在不減少快閃記憶體的壽命及/或不引入附加的等待時間的情況下頻繁地對已被遷移至DRAM的所述一或多個熱頁面328進行重寫。
出於例示目的,一些實施例可在裝置附接記憶體的上下文中進行闡述。然而,與熱頁面遷移相關的原理亦可應用於其中熱頁面可自第一類型記憶體遷移至第二類型記憶體的任何記憶體上下文中。舉例而言,所述原理可應用於其中第二類型記憶體可被實施為系統記憶體而非裝置附接記憶體的實施例。另外,所述原理可應用於具有不同特性的任何類型的記憶體,所述記憶體可受益於基於對記憶體的使用模式進行監視及確定而將一或多個頁面自一種類型的記憶體遷移至另一種類型的記憶體。
出於例示目的,可在CXL介面及/或協定的上下文中闡述一些實施例。然而,實施例亦可使用包括以下的任何其他介面及/或協定來實施:快取同調及/或記憶體語義介面及/或協定(例如Gen-Z)、同調加速器處理器介面(Coherent Accelerator Processor Interface,CAPI)、加速器快取同調互連(Cache Coherent Interconnect for Accelerators,CCIX)及/或類似介面及/或協定。合適的介面及/或協定的其他實例可包括快速周邊組件互連(Peripheral Component Interconnect Express,PCIe)、快速非揮發性記憶體(Nonvolatile Memory Express,NVMe)、架構上NVMe(NVMe-over-fabric,NVMe-oF)、乙太網路、傳輸控制協定/網際網路協定(Transmission Control Protocol/Internet Protocol,TCP/IP)、遠程直接記憶體存取(remote direct memory access,RDMA)、融合乙太網路上RDMA(RDMA over Converged Ethernet,ROCE)、光纖通道、無線頻寬(InfiniBand)、串列進階技術附接(advanced technology attachment,ATA)(Serial ATA,SATA)、小型電腦系統介面(Small Computer Systems Interface,SCSI)、串列附接SCSI(Serial Attached SCSI,SAS)、iWARP及/或類似介面及/或協定或其組合。
圖4例示出根據本揭露實例性實施例的具有頁面遷移的異質記憶體方案的另一實例性實施例。圖4中所例示的記憶體方案可包括裝置附接記憶體408及系統記憶體410。在此實例中,可使用SSD 432中的快閃記憶體來實施裝置附接記憶體408,SSD 432可經由例如CXL.mem等記憶體協定而被暴露。在此實例中,可使用例如DRAM等揮發性記憶體來實施系統記憶體410。
可使用具有一或多個頁面表438的分頁方案436將裝置附接記憶體408及系統記憶體410映射至過程虛擬記憶體434,頁面表438可提供向裝置附接記憶體408及系統記憶體410的映射。在圖4中所例示的實例中,可使用四級分頁(four-level paging)(例如,頁面全域目錄(page global directory,PGD)438a、頁面上部目錄(page upper directory,PUD)438b、頁面中間目錄(page middle directory,PMD)438c及頁面表項(page table entry,PTE)438d),但亦可使用其他分頁方案。過程虛擬記憶體434可由例如在主機(例如圖1、圖2及/或圖3中所例示的主機中的任意者)上運行的一或多個過程進行使用。
再次參照圖4,SSD 432可包括監視器邏輯420,監視器邏輯420可對SSD 432中的快閃記憶體的邏輯區塊位址(logical block address,LBA)431至物理區塊位址(physical block address,PBA)433映射442進行監視。LBA至PBA映射亦可被稱為L2P映射442。LBA 431可經由CXL.mem暴露出SSD 432中的快閃記憶體,如箭頭437所示。
監視器邏輯420可基於對L2P映射442進行監視來確定出裝置附接記憶體408的一或多個頁面422是可被使用過程虛擬記憶體434的一或多個過程相對頻繁地存取的熱頁面。監視器邏輯420可基於所述確定來向分頁方案436發送遷移訊號424,所述遷移訊號424可觸發所述一或多個熱頁面422自裝置附接記憶體408向系統記憶體410的遷移。
在開始時可在遷移之前使用原始映射444來對所述一或多個熱頁面422進行映射。分頁方案436可基於接收到遷移訊號424而對映射440進行修改,以在遷移之後使用新的映射446將所述一或多個熱頁面422遷移至系統記憶體410中的新位置428(如箭頭430所示)。
圖5例示出根據本揭露實例性實施例的異質記憶體方案的另一實例性實施例,其示出頁面遷移方案的一些可能的實施細節。圖5中所例示的記憶體方案可包括裝置附接記憶體508及系統記憶體510。可使用CXL賦能的SSD 532中的一或多個快閃記憶體裝置554來實施裝置附接記憶體508,所述CXL賦能的SSD 532可經由例如CXL.mem等記憶體協定而被暴露。可使用例如DRAM等揮發性記憶體來實施系統記憶體510。
可使用具有頁面表538及539的分頁方案536將裝置附接記憶體508及系統記憶體510映射至第一過程虛擬記憶體534及第二過程虛擬記憶體535,頁面表538及539可提供向裝置附接記憶體508及系統記憶體510的映射。過程虛擬記憶體534及535可分別由例如在主機(例如圖1、圖2及/或圖3中所例示的主機中的任意者)上運行的第一過程(過程A)及第二過程(過程B)來使用。
再次參照圖5,裝置附接記憶體可包括一或多個頁面522,在開始時可使用實線544所例示的初始映射來將所述一或多個頁面522映射至過程虛擬記憶體534及535。
SSD 532可包括快閃轉譯層(flash translation layer,FTL)548,FTL 548可將LBA 550映射至所述一或多個快閃記憶體裝置554的PBA 552。FTL 548可包括監視器邏輯520,監視器邏輯520可對LBA至PBA映射556進行監視,以確定裝置附接記憶體508的一或多個頁面522的一或多個使用模式。舉例而言,在藉由使用過程虛擬記憶體534及535中的一者的過程第一次將與特定LBA 550C相關聯的頁面522寫入時,FTL可將LBA 550C映射至第一PBA 552B。在下一次寫入頁面522時,FTL可將映射改變成使得LBA 550C被映射至第二PBA 552C。在下一次寫入頁面522時,FTL可再次將映射改變成使得LBA 550C被映射至第三PBA 552n。
因此,監視器邏輯520可確定出裝置附接記憶體508的一或多個頁面522可為被頻繁存取的熱頁面。在一些實施例中,監視器邏輯520可對LBA至PBA映射556中的一些LBA至PBA映射556或全部LBA至PBA映射556進行監視,以建立每頁映射更新的平均數目或其他度量,進而確定裝置附接記憶體508的頁面的使用模式。監視器邏輯520可使用平均值或其他度量作為臨限值,可將被監視的各別頁面與臨限值進行比較。若特定頁面的LBA至PBA映射556的數目超過臨限值(例如,在總累積的基礎上、在滾動時間窗口期間及/或類似情況),則監視器邏輯520可確定出所述特定頁面是熱頁面。
當監視器邏輯520確定出裝置附接記憶體508的一或多個頁面522是熱頁面時,監視器邏輯520可藉由向例如上面可運行有過程A及/或過程B的主機處的SSD 532的裝置驅動器558發送遷移訊息524來觸發遷移。在圖5中所例示的實例中,遷移訊息524可被實施為中斷(例如,硬體中斷)。
裝置驅動器558可基於接收到中斷524而開始進行使用頁面錯失處置器560將一或多個熱頁面522自裝置附接記憶體508遷移至系統記憶體510的過程。在一些實施例中,頁面錯失處置器560可被實施為可在發生頁面錯失時被調用的系統軟體(例如,作為操作系統內核的組件)。頁面錯失可因各種原因而發生。因此,驅動器558可基於接收到中斷524而為熱頁面設定保護位元,以在應用試圖存取所述頁面時導致頁面錯失。
在一些實施例中,頁面錯失處置器560可用於在系統記憶體510與儲存裝置之間交換頁面。舉例而言,若過程A或過程B中的一者試圖對已移動至儲存裝置的系統記憶體510的被請求頁面進行存取,則可產生頁面錯失。頁面錯失處置器560可基於頁面錯失自儲存裝置擷取所請求的頁面並將其交換至系統記憶體510中,以使其可用於進行請求過程。
根據本揭露的實例性實施例,圖5中所例示的實施例可藉由使頁面錯失處置器560適於實行熱頁面遷移來利用頁面錯失處置器560(其可能已存在於系統中)。
在此實例中,裝置驅動器558可為裝置附接記憶體508中的由監視器邏輯520偵測到的每一熱頁面522設定寫入保護狀態(例如,使用寫入保護位元)。可在頁面表538及539中的每一者中(如在箭頭559所示的頁面表中)設定寫入保護狀態。此可設定軟體陷阱,當過程試圖寫入至已受到寫入保護的熱頁面522中的一或多者時,軟體陷阱可被啟用。頁面錯失處置器可基於對受寫入保護的頁面522中的一者的寫入嘗試而藉由例如將頁面資料自裝置附接記憶體508移動至系統記憶體510(如箭頭530所示)且用虛線546所示的新映射替換原始映射544來將所述一或多個熱頁面522自裝置附接記憶體508遷移至系統記憶體510中的一或多個新位置528。
在一些實施例中,圖5中所例示的記憶體方案可實施被動(例如,高效被動)頁面遷移方案,其中已被辨識為熱頁面的頁面522被標記以用於遷移(例如,藉由將其標記為寫入保護)。然而,實際上可不對熱頁面522進行遷移,直至如例如由熱頁面的嘗試寫入所指示的過程可能需要熱頁面522。
圖6例示出根據本揭露實例性實施例的儲存用於確定一或多個記憶體頁面的使用模式的資訊的系統的實施例。在圖6中所例示的系統中,裝置604可包括裝置附接記憶體608,裝置附接記憶體608可例如經由例如CXL.mem等記憶體協定而被暴露。裝置附接記憶體608的預留部分621可被預留用於例如寫入計數等資訊,所述寫入計數可用於確定第一類型記憶體的一或多個頁面的使用模式。在一些實施例中,裝置604可被實施為具有包括監視邏輯620的FTL 648的SSD。監視邏輯620可在每次偵測到頁面的發生改變的L2P映射時增加頁面的寫入計數,如箭頭662所示。監視邏輯620亦可在每次偵測到頁面的發生改變的L2P映射時對頁面的寫入計數進行檢查,如箭頭664所示,例如以判斷頁面的寫入計數是否已達到指示所述頁面可被認為是熱頁面的臨限值。然後監視邏輯可基於偵測到熱頁面來發送遷移訊息。
當頁面被解除分配且因此可不再由主機處的應用及/或過程進行使用時,例如可位於主機處的記憶體分配器666可例如藉由發送更新訊息來對頁面的寫入計數進行重置,如箭頭668所示。
圖7例示出根據本揭露實例性實施例的可用於實施頁面遷移方案的主機設備的實例性實施例。圖7中所例示的主機設備702可包括可例如使用CXL來實施的處理器770、記憶體控制器772、頁面錯失處置器760、系統記憶體710及互連介面774。圖7中所例示的組件中的任意者或全部可經由系統匯流排776進行通訊。在一些實施例中,圖7中所例示的主機設備702可用於實施本文中所揭露的主機功能中的任意者,包括圖1至圖6中所例示的實施例中所揭露的處理、映射、分頁、頁面錯失處置、中斷處置及/或記憶體分配功能中的任意者。
圖8例示出根據本揭露實例性實施例的可用於實施頁面遷移方案的裝置的實例性實施例。圖8中所例示的裝置804可包括裝置控制器880、裝置功能電路882及互連介面884。圖8中所例示的組件中的任意者或全部可經由系統匯流排886進行通訊。裝置功能電路882可包括實施裝置802的功能的任何硬體。舉例而言,若裝置802被實施為儲存裝置,則裝置功能電路882可包括儲存媒體,例如一或多個快閃記憶體裝置、FTL及/或類似儲存媒體。作為另一實例,若裝置804被實施為網路介面卡(network interface card,NIC),則裝置功能電路882可包括一或多個數據機、網路介面、物理層(physical layer,PHY)、媒體存取控制層(medium access control layer,MAC)及/或類似媒體。作為另外的實例,若裝置804被實施為加速器,則裝置功能電路882可包括一或多個加速器電路、記憶體電路及/或類似電路。在一些實施例中,圖8中所例示的裝置804可用於實施與本文中所揭露的裝置及/或裝置附接記憶體相關的功能中的任意者,包括圖1至圖6中所揭露的任何此種功能。
在其中裝置804可被實施為儲存裝置的實施例中,儲存裝置可基於任何類型的儲存媒體(包括磁性媒體、固態媒體、光學媒體及/或類似媒體)。舉例而言,在一些實施例中,裝置804可被實施為基於反及快閃記憶體的SSD、例如交叉柵格非揮發性記憶體(cross-gridded nonvolatile memory)等持續記憶體、具有塊狀電阻改變的記憶體、相變記憶體(phase change memory,PCM)及/或類似記憶體及/或其任意組合。此種儲存裝置可使用任何連接器配置(例如串列ATA(SATA)、小型電腦系統介面(SCSI)、串列附接SCSI(SAS)、U.2及/或類似連接器)而以例如以下任何形狀因數來實施:3.5英吋、2.5英吋、1.8英吋、M.2、企業及資料中心SSD形狀因數(Enterprise and Data Center SSD Form Factor,EDSFF)、NF1及/或類似形狀因數。可完全或部分地使用伺服器底盤(server chassis)、伺服器框架、資料室、資料中心、邊緣資料中心、行動邊緣資料中心及/或其任意組合及/或類似裝置來實施此種儲存裝置及/或結合伺服器底盤、伺服器框架、資料室、資料中心、邊緣資料中心、行動邊緣資料中心及/或其任意組合及/或類似裝置來使用此種儲存裝置。
可使用包括以下的硬體、軟體或其任意組合來實施本文中所闡述的功能中的任意者(包括圖1至圖8中闡述的主機功能、裝置功能及/或類似功能中的任意者):執行儲存於任何類型的記憶體中的指令的組合邏輯、序列邏輯、一或多個定時器、計數器、暫存器、狀態機、揮發性記憶體(例如動態隨機存取記憶體(DRAM)及/或靜態隨機存取記憶體(SRAM))、非揮發性記憶體(例如快閃記憶體(包括反及快閃記憶體))、例如交叉柵格非揮發性記憶體等持續記憶體、具有塊狀電阻改變的記憶體及/或類似記憶體及/或其任意組合、複雜可程式化邏輯裝置(complex programmable logic device,CPLD)、現場可程式化閘陣列(field programmable gate array,FPGA)、特殊應用積體電路(application specific integrated circuit,ASIC)、中央處理單元(CPU)(例如複雜指令集電腦(complex instruction set computer,CISC)處理器(例如x86處理器)及/或精簡指令集電腦(reduced instruction set computer,RISC)處理器(例如高級RISC機器(Advanced RISC Machine,ARM)處理器))、圖形處理單元(graphics processing unit,GPU)、神經處理單元(neural processing unit,NPU)及/或類似邏輯。在一些實施例中,一或多個組件可被實施為系統晶片(system-on-chip,SOC)。
圖9例示出根據本揭露實例性實施例的用於管理記憶體系統的方法的實施例。所述方法可在操作902處開始。在操作904處,所述方法可對第一類型的第一記憶體的頁面進行監視。舉例而言,在一些實施例中,所述方法可對裝置附接的非揮發性記憶體的頁面的寫入計數進行監視。在操作906處,所述方法可基於所述監視來確定頁面的使用。舉例而言,在一些實施例中,所述方法可基於頁面的邏輯至物理映射的改變來確定出所述頁面可為已被頻繁存取的熱頁面。在操作908處,所述方法可基於頁面的使用將頁面遷移至第二類型的第二記憶體。舉例而言,在一些實施例中,所述方法可將熱頁面自非揮發性記憶體遷移至揮發性記憶體。所述方法可在操作910處結束。
圖9中所例示的實施例以及本文中所闡述的所有其他實施例是實例性操作及/或組件。在一些實施例中,可省略一些操作及/或組件及/或可包括其他操作及/或組件。另外,在一些實施例中,操作及/或組件的時間次序及/或空間次序可發生變化。儘管一些組件及/或操作可被例示為各別的組件,然而在一些實施例中,單獨示出的一些組件及/或操作可被整合至單個組件及/或操作中及/或被示出為單個組件及/或操作的一些組件及/或操作可使用多個組件及/或操作來實施。
以上所揭露的一些實施例已在各種實施細節的上下文中進行闡述,但本揭露的原理並非僅限於該些或任何其他具體細節。舉例而言,一些功能已被闡述為由某些組件實施,但在其他實施例中,所述功能可分佈於位於不同位置且具有各種使用者介面的不同系統及組件之間。某些實施例已被闡述為具有特定的過程、操作等,但該些用語亦囊括其中可使用多個過程、操作等來實施特定過程、操作等的實施例或者其中可將多個過程、操作等整合至單一過程、步驟等中的實施例。對組件或元件的引用可僅指所述組件或元件的一部分。舉例而言,對積體電路的引用可指所述積體電路的全部或僅一部分,且對區塊的引用可指整個區塊或者一或多個子區塊。除非上下文顯而易見,否則在本揭露及申請專利範圍中使用例如「第一」及「第二」等用語可僅是為了區分所述用語所修飾的事物且可能並不指示任何空間次序或時間次序。在一些實施例中,對事物的引用可指所述事物的至少一部分,例如「基於」可指「至少部分地基於」及/或類似情況。對第一元件的引用可能並不暗示第二元件的存在。本文中所揭露的原理具有獨立的效用且可各別地實施,且並非每個實施例皆可利用每個原理。然而,所述原理亦可以各種組合來實施,其中一些組合可以協同的方式對各別原理的益處進行放大。
根據本專利揭露的發明原理,可對上述各種細節及實施例進行組合以生成附加的實施例。由於可在不背離本發明概念的條件下對本專利揭露的發明原理進行佈置及細節上的潤飾,因此此種變更及潤飾被認為落於以下申請專利範圍的範圍內。
102、202、302:主機 104、604、804:裝置 105:中央處理單元(CPU) 106、772:記憶體控制器 108:裝置記憶體 110、410、510、710:系統記憶體 112:互連件/CXL互連件 114:CXL.mem協定 208:第一類型記憶體/裝置附接記憶體 210、310:第二類型記憶體 216、316:過程 218、318:映射方案 308:第一類型記憶體 320:監視過程 322、422:頁面/熱頁面 324、424:遷移訊號 326:遷移邏輯 328:位置/熱頁面 330、430、437、530、559、662、664、668:箭頭 408、508、608:裝置附接記憶體 420、520:監視器邏輯 428、528:新位置 431、550A、550B、550C、550D、550n:邏輯區塊位址(LBA) 432、532:固態驅動機(SSD) 433:物理區塊位址 434:過程虛擬記憶體 436、536:分頁方案 438a:頁面全域目錄(PGD) 438b:頁面上部目錄(PUD) 438c:頁面中間目錄(PMD) 438d:頁面表項(PTE) 440、446:映射 442:L2P映射/映射 444:原始映射 522:頁面 524:遷移訊息/中斷 534:過程虛擬記憶體/第一過程虛擬記憶體 535:過程虛擬記憶體/第二過程虛擬記憶體 538、539:頁面表 544:實線/原始映射 546:虛線 548、648:快閃轉譯層(FTL) 552A、552D:PBA 552B:第一PBA 552C:第二PBA 552n:第三PBA 554:快閃記憶體裝置 556:LBA至PBA映射 558:裝置驅動器/驅動器 560、760:頁面錯失處置器 620:監視邏輯 621:預留部分 666:記憶體分配器 702:主機設備 770:處理器 774、884:互連介面 776、886:系統匯流排 880:裝置控制器 882:裝置功能電路 902、904、906、908、910:操作
各圖未必按比例繪製,且出於例示目的,在所有圖中具有相似結構或功能的元件可一般由相同的參考編號或其部分表示。各圖僅旨在利於達成對本文中闡述的各種實施例的說明。各圖並未闡述本文中所揭露的教示內容的每個態樣,且不對申請專利範圍的範圍進行限制。為防止圖式變得模糊,可能並未示出所有的組件、連接及類似物,且並非所有的組件皆可具有參考編號。然而,組件配置的圖案在圖式中可輕易地顯而易見。附圖與說明書一同例示出本揭露的實例性實施例,且與說明一同用於闡釋本揭露的原理。 圖1例示出根據本揭露實例性實施例的其中主機可對裝置附接記憶體進行存取的系統的實例性實施例。 圖2例示出根據本揭露實例性實施例的異質記憶體方案的實例性實施例。 圖3例示出根據本揭露實例性實施例的具有頁面遷移的異質記憶體方案的實例性實施例。 圖4例示出根據本揭露實例性實施例的具有頁面遷移的異質記憶體方案的另一實例性實施例。 圖5例示出根據本揭露實例性實施例的異質記憶體方案的另一實例性實施例,其示出頁面遷移方案的一些可能的實施細節。 圖6示例出根據本揭露實例性實施例的儲存用於確定一或多個記憶體頁面的使用模式的資訊的系統的實施例。 圖7例示出根據本揭露實例性實施例的可用於實施頁面遷移方案的主機設備的實例性實施例。 圖8例示出根據本揭露實例性實施例的可用於實施頁面遷移方案的裝置的實例性實施例。 圖9例示出根據本揭露實例性實施例的用於管理記憶體系統的方法的實施例。
902、904、906、908、910:操作

Claims (20)

  1. 一種管理記憶體系統的方法,所述方法包括: 對第一類型的第一記憶體的頁面進行監視; 基於所述監視來確定所述頁面的使用;以及 基於所述頁面的所述使用來將所述頁面遷移至第二類型的第二記憶體。
  2. 如請求項1所述的方法,其中對所述頁面進行監視包括對所述頁面的映射進行監視。
  3. 如請求項1所述的方法,其中確定所述頁面的所述使用包括確定所述頁面的更新頻率。
  4. 如請求項3所述的方法,其中確定所述頁面的所述使用包括將所述頁面的所述更新頻率與臨限值進行比較。
  5. 如請求項1所述的方法,其中對所述頁面進行遷移包括向裝置驅動器發送中斷。
  6. 如請求項1所述的方法,其中對所述頁面進行遷移包括: 為所述頁面設定寫入保護狀態;以及 由頁面錯失處置器基於寫入所述頁面來對所述頁面進行遷移。
  7. 如請求項1所述的方法,其中所述第一記憶體包括裝置附接記憶體。
  8. 如請求項7所述的方法,其中所述裝置附接記憶體經由記憶體協定而被暴露。
  9. 如請求項8所述的方法,其中所述記憶體協定包括同調記憶體協定。
  10. 如請求項1所述的方法,其中: 所述第一記憶體包括非揮發性記憶體;且 所述第二記憶體包括揮發性記憶體。
  11. 一種用於頁面遷移的裝置,包括: 記憶體;以及 裝置控制器,被配置成: 對所述記憶體的頁面進行監視; 基於所述監視來確定所述頁面的使用;以及 基於所述頁面的所述使用發送指示。
  12. 如請求項11所述的裝置,其中所述裝置控制器被配置成藉由對所述頁面的映射進行監視來對所述頁面進行監視。
  13. 如請求項12所述的裝置,其中所述裝置控制器被配置成藉由對所述頁面的邏輯位址至物理位址映射進行監視來對所述頁面的所述映射進行監視。
  14. 如請求項11所述的裝置,其中所述裝置控制器被配置成藉由確定所述頁面的更新頻率來確定所述頁面的所述使用。
  15. 如請求項11所述的裝置,其中: 所述裝置包括儲存裝置;且 所述記憶體經由同調記憶體協定而被暴露。
  16. 如請求項11所述的裝置,其中所述裝置控制器被配置成在所述記憶體中儲存所述頁面的使用資訊。
  17. 如請求項16所述的裝置,其中所述裝置控制器被配置成: 接收更新訊息;以及 基於所述更新訊息對所述使用資訊進行更新。
  18. 一種用於頁面遷移的系統,包括: 主機處理器; 第一類型的第一記憶體,被佈置成由所述主機處理器進行存取; 裝置介面,被配置成向所述主機處理器暴露第二類型的第二記憶體;以及 遷移邏輯,被配置成: 接收遷移訊息;以及 基於所述遷移訊息將所述第二記憶體的頁面遷移至所述第一記憶體。
  19. 如請求項18所述的系統,其中所述遷移邏輯包括被配置成接收所述遷移訊息的裝置驅動器。
  20. 如請求項18所述的系統,其中所述遷移邏輯被配置成基於將所述頁面自所述第二記憶體遷移至所述第一記憶體而藉由裝置介面發送更新訊息。
TW111118546A 2021-06-01 2022-05-18 管理記憶體系統的方法以及用於頁面遷移的裝置及系統 TW202248862A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163195708P 2021-06-01 2021-06-01
US63/195,708 2021-06-01
US17/393,399 2021-08-03
US17/393,399 US20220382478A1 (en) 2021-06-01 2021-08-03 Systems, methods, and apparatus for page migration in memory systems

Publications (1)

Publication Number Publication Date
TW202248862A true TW202248862A (zh) 2022-12-16

Family

ID=81598090

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111118546A TW202248862A (zh) 2021-06-01 2022-05-18 管理記憶體系統的方法以及用於頁面遷移的裝置及系統

Country Status (5)

Country Link
US (1) US20220382478A1 (zh)
EP (1) EP4099171A1 (zh)
KR (1) KR20220162605A (zh)
CN (1) CN115437554A (zh)
TW (1) TW202248862A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522931B1 (en) * 2021-07-30 2022-12-06 Avago Technologies International Sales Pte. Limited Systems and methods for controlling high speed video

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067584A (en) * 1996-09-09 2000-05-23 National Instruments Corporation Attribute-based system and method for configuring and controlling a data acquisition task
US6021446A (en) * 1997-07-11 2000-02-01 Sun Microsystems, Inc. Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
US6096094A (en) * 1997-10-03 2000-08-01 National Instruments Corporation Configuration manager for configuring a data acquisition system
WO1999019991A1 (en) * 1997-10-14 1999-04-22 Alation Digital radio-frequency transceiver
US20030079007A1 (en) * 2001-10-22 2003-04-24 Merkin Cynthia M. Redundant source event log
US7266678B2 (en) * 2001-11-06 2007-09-04 Dell Products L.P. Dynamic configuration of computer when booting
US6789139B2 (en) * 2001-11-13 2004-09-07 Dell Products L.P. Method for enabling an optical drive to self-test analog audio signal paths when no disc is present
US6654707B2 (en) * 2001-12-28 2003-11-25 Dell Products L.P. Performing diagnostic tests of computer devices while operating system is running
US7017054B2 (en) * 2002-07-02 2006-03-21 Dell Products L.P. Mirrored tag snoop optimization
FR2843209B1 (fr) * 2002-08-02 2006-01-06 Cimai Technology Procede de replication d'une application logicielle dans une architecture multi-ordinateurs, procede pour realiser une continuite de fonctionnement mettant en oeuvre ce procede de replication, et systeme multi-ordinateurs ainsi equipe.
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8407518B2 (en) * 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
KR101061483B1 (ko) * 2009-07-02 2011-09-02 한국과학기술원 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법
US8407417B2 (en) * 2009-12-24 2013-03-26 Hitachi, Ltd. Storage system providing virtual volumes
CN102483684B (zh) * 2009-12-24 2015-05-20 株式会社日立制作所 提供虚拟卷的存储***
JP2011154547A (ja) * 2010-01-27 2011-08-11 Toshiba Corp メモリ管理装置及びメモリ管理方法
JP5314772B2 (ja) * 2010-01-28 2013-10-16 株式会社日立製作所 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US8489699B2 (en) * 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
JP5488697B2 (ja) * 2010-08-30 2014-05-14 富士通株式会社 マルチコアプロセッサシステム、同期制御方法、および同期制御プログラム
US9547443B2 (en) * 2012-04-30 2017-01-17 Hitachi, Ltd. Method and apparatus to pin page based on server state
WO2014030221A1 (ja) * 2012-08-22 2014-02-27 株式会社日立製作所 仮想計算機システム、管理計算機及び仮想計算機管理方法
CN104583929A (zh) * 2012-10-12 2015-04-29 株式会社日立制作所 存储装置和数据管理方法
US20150347311A1 (en) * 2013-01-09 2015-12-03 Hitachi, Ltd. Storage hierarchical management system
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10642505B1 (en) * 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
JP2014186622A (ja) * 2013-03-25 2014-10-02 Sony Corp 情報処理装置、情報処理方法、並びに記録媒体
US10037222B2 (en) * 2013-09-24 2018-07-31 University Of Ottawa Virtualization of hardware accelerator allowing simultaneous reading and writing
US9535831B2 (en) * 2014-01-10 2017-01-03 Advanced Micro Devices, Inc. Page migration in a 3D stacked hybrid memory
WO2015114809A1 (ja) * 2014-01-31 2015-08-06 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US20160327602A1 (en) * 2015-05-07 2016-11-10 Sandisk Technologies Inc. Protecting a removable device from short circuits
US9710401B2 (en) * 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US9904567B2 (en) * 2015-08-13 2018-02-27 Red Hat Israel, Ltd. Limited hardware assisted dirty page logging
CN106486140B (zh) * 2015-08-27 2019-03-29 株式会社东芝 磁盘装置及写入控制方法
US9870285B2 (en) * 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
US9836243B1 (en) * 2016-03-31 2017-12-05 EMC IP Holding Company LLC Cache management techniques
US10642496B2 (en) * 2016-04-01 2020-05-05 Sandisk Technologies Inc. Out of order read transfer with host memory buffer
US9996273B1 (en) * 2016-06-30 2018-06-12 EMC IP Holding Company LLC Storage system with data durability signaling for directly-addressable storage devices
US10521256B2 (en) * 2016-08-30 2019-12-31 Red Had Israel, Ltd. Virtual machine migration acceleration with page state indicators
US10108550B2 (en) * 2016-09-22 2018-10-23 Google Llc Memory management supporting huge pages
US10282292B2 (en) * 2016-10-17 2019-05-07 Advanced Micro Devices, Inc. Cluster-based migration in a multi-level memory hierarchy
KR20180094372A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 하이브리드 메모리 시스템 및 그 제어 방법
US10922296B2 (en) * 2017-03-01 2021-02-16 Sap Se In-memory row storage durability
US10126971B1 (en) * 2017-06-21 2018-11-13 International Business Machines Corporation Enhanced application performance in multi-tier storage environments
US11347843B2 (en) * 2018-09-13 2022-05-31 King Fahd University Of Petroleum And Minerals Asset-based security systems and methods
US10783024B2 (en) * 2018-10-12 2020-09-22 International Business Machines Corporation Reducing block calibration overhead using read error triage
US10740019B1 (en) * 2019-01-31 2020-08-11 EMC IP Holding Company LLC Data migration using write protection
CN113490924A (zh) * 2019-02-22 2021-10-08 英特尔公司 用于运行时处理器验证的ept和影子页表之间的动态切换
US10866735B2 (en) * 2019-03-26 2020-12-15 EMC IP Holding Company LLC Storage system with variable granularity counters
US20230297411A1 (en) * 2019-09-27 2023-09-21 Red Hat, Inc. Copy-on-write for virtual machines with encrypted storage
US11656891B2 (en) * 2019-09-27 2023-05-23 Red Hat, Inc. Copy-on-write for virtual machines with encrypted storage
US11138124B2 (en) * 2019-10-30 2021-10-05 International Business Machines Corporation Migrating data between block pools in a storage system
US11157379B2 (en) * 2019-10-30 2021-10-26 International Business Machines Corporation Managing blocks of memory based on block health using hybrid controllers
US20210303477A1 (en) * 2020-12-26 2021-09-30 Intel Corporation Management of distributed shared memory

Also Published As

Publication number Publication date
US20220382478A1 (en) 2022-12-01
EP4099171A1 (en) 2022-12-07
KR20220162605A (ko) 2022-12-08
CN115437554A (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
US11360679B2 (en) Paging of external memory
TWI578156B (zh) 非依電性隨機存取記憶磁碟
US10241912B2 (en) Apparatus and method for implementing a multi-level memory hierarchy
US20180341588A1 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9269438B2 (en) System and method for intelligently flushing data from a processor into a memory subsystem
CN107391397B (zh) 支持近存储器和远存储器访问的存储器通道
TWI752620B (zh) 與記憶體類型相關的頁表
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
TWI596474B (zh) 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片
WO2012050934A2 (en) Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
KR20160033737A (ko) 메모리 관리를 위한 캐시 동작들
US20230017824A1 (en) Systems and methods for load balancing in a heterogeneous memory system
US20240053917A1 (en) Storage device, operation method of storage device, and storage system using the same
TW202248862A (zh) 管理記憶體系統的方法以及用於頁面遷移的裝置及系統
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
EP4220414A1 (en) Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same
EP4273708A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
TW202318205A (zh) 記憶體系統及資料輸入輸出系統