TW202416145A - 用於控制池化記憶體裝置或記憶體擴展器的設備和方法 - Google Patents

用於控制池化記憶體裝置或記憶體擴展器的設備和方法 Download PDF

Info

Publication number
TW202416145A
TW202416145A TW112129559A TW112129559A TW202416145A TW 202416145 A TW202416145 A TW 202416145A TW 112129559 A TW112129559 A TW 112129559A TW 112129559 A TW112129559 A TW 112129559A TW 202416145 A TW202416145 A TW 202416145A
Authority
TW
Taiwan
Prior art keywords
memory
logic
logical
data
pooled
Prior art date
Application number
TW112129559A
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 韓商愛思開海力士有限公司
Publication of TW202416145A publication Critical patent/TW202416145A/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/0658Controller construction arrangements
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/0646Configuration or reconfiguration
    • 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/0625Power saving in 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
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本揭露關於一種池化記憶體裝置,其包括多個記憶體裝置和控制器。多個記憶體裝置包括第一記憶體和第二記憶體,多個記憶體裝置具有控制供應到多個記憶體裝置中的每一個的電力的至少一個電源。控制器聯接到互連裝置,其被配置為將多個記憶體裝置作為邏輯裝置提供給至少一個外部裝置。控制器被配置為跟蹤第一記憶體和第二記憶體的可用記憶體容量,並且切斷供應到第一記憶體和第二記憶體中的未使用記憶體的電力。

Description

用於控制池化記憶體裝置或記憶體擴展器的設備和方法
本揭露中描述的一個或多個實施例關於一種記憶體系統,並且具體地,關於一種用於控制聯接到至少一個計算裝置的池化記憶體裝置或記憶體擴展器的設備和方法。
響應於用戶的需求,計算系統的計算量正在增加。由於計算量的增加,所產生或儲存的數據量也在增加。數據量增加,而計算系統中可以儲存數據的空間是有限的。可以提供記憶體擴展器或池化記憶體裝置,以儲存大量數據或避免計算系統的計算能力和性能的劣化。記憶體擴展器或池化記憶體裝置可以被理解為用於克服計算系統的資源限制的組合基礎設施(composable infrastructure)。當計算系統、記憶體擴展器或池化記憶體裝置執行高速數據通訊時,可以支援大數據和機器學習產生的高密度工作負荷操作。
相關申請的交叉引用 本專利申請要求於2022年10月12日提交的、申請號為10-2022-0130643的韓國專利申請的優先權,其全部揭露內容透過引用併入本文。
本揭露的實施例可以提供一種記憶體擴展器,池化記憶體裝置,記憶體系統,記憶體擴展裝置,池化記憶體裝置或記憶體系統中包括的控制器,或者包括記憶體擴展器、池化記憶體裝置或記憶體系統的數據處理裝置。例如,本揭露中描述的實施例可以提供一種包括記憶體擴展器或池化記憶體裝置的數據處理系統以及用於操作該數據處理系統的方法。數據處理系統可以包括諸如記憶體系統和主機的組件和資源。數據處理系統可以包括用於基於組件和資源的使用提高組件之間的數據輸入/輸出操作性能的設備。
根據本揭露的實施例,一種池化記憶體裝置可以包括:多個記憶體裝置,包括第一記憶體和第二記憶體,具有被配置為控制供應到多個記憶體裝置中的每一個的電力的至少一個電源;以及控制器,聯接到互連裝置,互連裝置被配置為將多個記憶體裝置作為邏輯裝置提供給至少一個外部裝置,控制器被配置為跟蹤第一記憶體和第二記憶體的可用記憶體容量,並且切斷供應到第一記憶體和第二記憶體之中的未使用記憶體的電力。
控制器可以被配置為,響應於從至少一個外部裝置輸入的第一請求,將數據從第一記憶體遷移到第二記憶體並且切斷供應到第一記憶體的電力。
第一請求可以包括指示第一記憶體或第二記憶體的位址或標識符。
控制器可以進一步被配置為,在將數據遷移到第二記憶體之後,通知至少一個外部裝置所遷移的數據儲存在第二記憶體中的位置。
控制器可以進一步被配置為,在沒有從至少一個外部裝置輸入第一請求的情況下切斷供應到未使用記憶體的電力時,阻止切斷供應到未使用記憶體的電力的通知。
第一記憶體和第二記憶體可以被分配用於儲存與用於邏輯裝置的不同邏輯位址範圍相關聯的數據。
控制器可以進一步被配置為:響應於從至少一個外部裝置輸入的寫入請求,基於與寫入數據一起輸入的邏輯位址,將寫入數據儲存在第一記憶體和第二記憶體中的一個中;並且響應於從至少一個外部裝置輸入的讀取請求,基於與讀取請求一起輸入的邏輯位址,向互連裝置輸出從第一記憶體和第二記憶體中的一個讀取的數據。
控制器可以進一步被配置為:響應於從至少一個外部裝置輸入的第二請求,為第一記憶體和第二記憶體中的記憶體區域分配與第二請求相對應的邏輯位址範圍;並且響應於從至少一個外部裝置輸入的第三請求,釋放與對應於第三請求的邏輯位址範圍相關聯的第一記憶體和第二記憶體中的記憶體區域的分配。
互連裝置可以包括:至少一個輸入端口,聯接到至少一個外部裝置;至少一個輸出端口,聯接到多個記憶體裝置;以及多個PCI至PCI橋接器(PPB),被配置成產生、改變或移除至少一個輸入端口與至少一個輸出端口之間的至少一個數據路徑。
多個記憶體裝置中包括的第一記憶體和第二記憶體中的每一個可以包括透過互連裝置中的介面專門分配給至少一個外部裝置的記憶體區域的至少一部分。
第一記憶體或第二記憶體可以包括雙列直插式記憶體模組(DIMM)、記憶體附加卡(AIC)或非揮發性記憶體中的至少一個。互連裝置可以被配置為支援與第一記憶體或第二記憶體的內部配置相對應的介面。
在本揭露的另一實施例中,一種用於操作記憶體擴展器的方法可以包括:接收透過互連裝置從至少一個外部裝置傳輸的第一請求;響應於與第一請求一起傳輸的第一邏輯裝置的位址,將數據從第一邏輯裝置遷移到第二邏輯裝置;向至少一個外部裝置傳輸所遷移的數據儲存在第二邏輯裝置中的位置的位址;並且當至少一個外部裝置不再使用第一邏輯裝置時,切斷第一邏輯裝置的電力。
該方法可以進一步包括:跟蹤第一邏輯裝置和第二邏輯裝置的可用記憶體容量;並且切斷第一邏輯裝置和第二邏輯裝置之中的未使用裝置的電力。
第一邏輯裝置和第二邏輯裝置可以分配用於儲存與不同邏輯位址範圍相對應的數據。
該方法可以進一步包括:響應於從至少一個外部裝置輸入的寫入請求,基於與寫入數據一起輸入的邏輯位址,將寫入數據儲存在第一邏輯裝置和第二邏輯裝置中的一個中;並且響應於從至少一個外部裝置輸入的讀取請求,基於與讀取請求一起輸入的邏輯位址,向互連裝置輸出從第一邏輯裝置和第二邏輯裝置中的一個讀取的數據。
第一邏輯裝置和第二邏輯裝置中的每一個可以包括透過互連裝置中的介面專門分配給至少一個外部裝置的記憶體區域的至少一部分。
在另一實施例中,一種記憶體擴展器可以包括:多個記憶體,具有被配置為控制供應到多個記憶體中的每一個的電力的至少一個電源;以及控制器,被配置為,為多個邏輯裝置分配多個記憶體的記憶體區域,跟蹤每個邏輯裝置的可用記憶體容量,並且切斷供應到多個邏輯裝置之中的未使用邏輯裝置的電力。
控制器可以被配置為,響應於從至少一個外部裝置輸入的第一請求,將數據從第一邏輯裝置遷移到第二邏輯裝置,並且切斷供應到第一邏輯裝置的電力。
第一請求可以包括指示第一邏輯裝置或第二邏輯裝置的位址或標識符。控制器可以進一步被配置為,在將數據遷移到第二邏輯裝置之後,通知至少一個外部裝置所遷移的數據儲存在第二邏輯裝置中的位置。
控制器可以進一步被配置為,在沒有從至少一個外部裝置輸入任何請求的情況下切斷供應到未使用邏輯裝置的電力時,阻止切斷供應到未使用邏輯裝置的電力的通知。
在本揭露的另一實施例中,一種記憶體系統可以包括:記憶體組,記憶體組的記憶體空間分別由單個邏輯位址結構中的不同範圍指示,這些範圍中的每一個中的至少一部分被動態分配給計算系統;以及控制器,被配置為中斷記憶體組中的每一個的電力供應。記憶體組中的每一個可以包括一個或多個記憶體。由該部分指示的記憶體空間中的至少一個可以由計算系統邏輯地訪問。
參照附圖描述了所揭露技術的多種實施例。然而,所揭露技術的元件和特徵可以被不同地配置或佈置以形成其他實施例,這些實施例可以是所揭露實施例中的任意一個的變形。
本揭露包括對“一個實施例”或“實施例”的引用。出現短語“在一個實施例中”或“在實施例中”不一定指代相同的實施例。特定的特徵、結構或特性可以以與本揭露一致的任意合適的方式組合。
在本揭露中,術語“包括”、“包括有”、“包含”和“包含有”是開放式的。如所附申請專利範圍中所使用的,這些術語指定存在所述元件並且不排除存在或添加一種或多種其他元件。申請專利範圍中的術語不排除該設備包括附加組件(例如,介面單元、電路等)。
在本揭露中,各種單元、電路或其他組件可以被描述或要求保護為“被配置為”執行一個或多個任務。在這種語境中,“被配置為”用於透過指示單元/電路/組件包括在操作期間執行一個或多個任務的結構(例如,電路)來表示結構。這樣,即使在所指定的單元/電路/組件當前不工作(例如,未啟用)時,也可以說該單元/電路/組件被配置為執行任務。與“被配置為”一起使用的單元/電路/組件包括硬體,例如,電路、儲存可運行以實施操作的程序指令的記憶體等。另外,“被配置為”可以包括由軟體和/或韌體(例如,運行軟體的FPGA或通用處理器)操縱以能夠執行所討論的(多個)任務的方式操作的通用結構(例如,通用電路)。“被配置為”還可以包括使製造過程(例如,半導體製造設施)適於製造適於實施或執行一個或多個任務的裝置(例如,積體電路)。
在本揭露的實施方案中,術語“電路”指代以下項中的至少一個:(a)純硬體電路實施方案(例如,僅在類比和/或數位電路中的實施方案);或者(b)電路和軟體(和/或韌體)的組合,例如(如果適用):(i)(多個)處理器的組合或(ii)一起工作以使得設備(例如,行動電話或伺服器)執行各種功能的(多個)處理器/軟體(包括(多個)數位訊號處理器)、軟體和(多個)記憶體的各部分;或者(c)即使軟體或韌體物理上不存在,也需要用於操作的軟體或韌體的電路,例如,(多個)微處理器或(多個)微處理器的一部分。“電路”的定義適於本申請中該術語的所有應用,包括在任意申請專利範圍中的應用。在實施方案中,術語“電路”還涵蓋僅處理器(或多個處理器)或處理器的一部分及其隨附軟體和/或韌體的實施方案。術語“電路”還涵蓋例如用於儲存裝置的積體電路。
如本文中所使用的,用作名詞前面的名詞標籤的術語並不暗示任何類型的排序(例如,空間、時間、邏輯等)。術語“第一”和“第二”不一定暗示第一值必須寫在第二值之前。進一步地,雖然術語“第一”、“第二”、“第三”等可以在本文中使用來識別各種元件,但是這些元件不受這些術語的限制。這些術語用於將一個元件與另外具有相同或相似名稱的另一元件區分開。例如,可以將第一電路與第二電路區分開。
本文中,數據的條目或數據條目可以是位元的序列。例如,數據條目可以包括檔案的內容、檔案的一部分、記憶體中的頁面、面向對象的程序中的對象、數位訊息、數位掃描影像、視頻訊號或音頻訊號的一部分或者可由位元的序列表示的任意其它實體。根據實施例,數據條目可以包括離散的對象。根據另一實施例,數據條目可以包括兩個不同組件之間的傳輸數據包內的資訊單元。
而且,術語“基於”可以描述影響確定的一個或多個因素。該術語不排除可能影響確定的其他因素。也就是說,確定可以僅基於那些因素或至少部分地基於那些因素。考慮短語“基於B來確定A”。雖然在這種情況下,B是影響A的確定結果的因素,但這種短語不排除A的確定結果也基於C。在其他實例中,可以僅基於B來確定A。
現在將參照附圖描述所揭露技術的實施例,在附圖中相同的附圖標記指代相同的元件。
圖1示出了根據本揭露的實施例的數據基礎設施的第一示例。具體地,作為數據基礎設施的第一示例,圖1示出了包括多個主機系統102A、102B和池化記憶體裝置110的計算系統。多個主機系統102A、102B和池化記憶體裝置110可以透過互連裝置180聯接。
數據基礎設施可以指利於數據共享和消耗(consumption)的數位基礎設施。與其他基礎設施一樣,數據基礎設施可以包括用於數據共享和消耗的結構、服務和設施。例如,數據基礎設施可以包括各種組件或設備,包括硬體、軟體、網絡、服務、策略等,以實現數據消耗、儲存和共享。數據基礎設施可以提供創建、管理、使用和保護數據的基礎。
例如,數據基礎設施可以被劃分為物理基礎設施、資訊基礎設施、業務基礎設施等。物理基礎設施可以包括數據儲存裝置、數據處理裝置、輸入/輸出網絡、數據感測器設施等。資訊基礎設施可以包括諸如業務應用程序、數據庫和數據倉庫的數據儲存庫,包括虛擬化系統和虛擬服務的雲端資源和服務等。進一步地,業務基礎設施可以包括商業智能(BI)系統和分析工具系統,例如大數據、人工智能(AI)、機器學習(ML)等。
多個主機系統102A、102B可以被理解為諸如個人計算機、工作站等的計算裝置。例如,第一主機系統102A可以包括主機處理器104、主機記憶體106和儲存裝置108。主機處理器104可以響應於用戶的請求而執行操作,將在執行操作的過程中使用或產生的數據臨時儲存在主機記憶體106中,並且根據需要將數據永久儲存在儲存裝置108中。
當用戶高速執行包括大量計算的任務,例如操作或與人工智能(AI)、機器學習、大數據等相關的操作時,計算裝置可能耗盡資源來儲存在執行任務的過程中使用或產生的數據。為了克服第一主機系統102A中諸如主機記憶體106和儲存裝置108的內部資源的限制,第一主機系統102A可以使用透過互連裝置180聯接的池化記憶體裝置110。
參照圖1,第二主機系統102B可以包括與第一主機系統102A相同的組件,但第二主機系統102B的內部組件可以根據實施例改變。另外,雖然在圖1中僅描述了兩個主機系統(即,第一主機系統102A和第二主機系統102B),但是更多的主機系統可以透過互連裝置180連接到池化記憶體裝置110。
根據實施例,互連裝置180可以透過池化記憶體裝置110支援或提供資源的通用性和可擴展性,以克服多個主機系統102A、102B的資源限制。例如,互連裝置180可以包括高速計算鏈路(Compute Express Link,CXL)交換機。本文中,高速計算鏈路(CXL)是被設置為在諸如人工智能(AI)、機器學習和大數據的高性能計算系統中有效利用不同類型的裝置的介面。當池化記憶體裝置110包括基於CXL的動態隨機存取記憶體(DRAM)裝置時,多個主機系統102A、102B可以擴展它們的可用記憶體容量。
當互連裝置180提供高速快取一致性時,在共享特定區域中儲存的變量和數據的過程中允許其他處理器(例如,另一主機系統102B)使用由特定處理器(例如,主機系統102A)更新的變量和數據時可能發生延遲。為了減少使用池化記憶體裝置110時的延遲,透過互連裝置180的高速計算鏈路(CXL)介面可以允許池化記憶體裝置110的記憶體區域用於不同邏輯位址範圍,這些邏輯位址範圍可以分配給多個主機系統102A、102B並由多個主機系統102A、102B使用。當多個主機系統102A、102B中的每一個請求特定範圍內的邏輯位址的記憶體區域時,池化記憶體裝置110可以將特定範圍內的邏輯位址的記憶體區域分配給多個主機系統102A、102B中的每一個。當多個主機系統102A、102B使用不同的邏輯位址時,多個主機系統102A、102B不共享與由多個主機系統102A、102B中的每一個使用的邏輯位址相對應的變量和數據。多個主機系統102A、102B中的每一個都可以使用池化記憶體裝置110作為用於克服資源限制的記憶體擴展器。
池化記憶體裝置110可以包括控制器130和多個記憶體150。聯接到互連裝置180的控制器130可以控制多個記憶體150。控制器130可以透過高速計算鏈路(CXL)介面執行與互連裝置180的數據通訊。進一步地,控制器130可以透過由多個記憶體150支援的協定或介面執行與多個記憶體150的數據通訊。根據實施例,控制器130可以將從多個主機系統102A、102B傳輸的數據輸入/輸出操作分佈到池化記憶體裝置110並且管理供應到池化記憶體裝置110中的多個記憶體150的電力。例如,池化記憶體裝置110可以包括至少一個電源,至少一個電源是向電力負載(例如,多個記憶體150中的每一個)提供電力的電力裝置。控制器130可以控制至少一個電源為多個記憶體150中的每一個供應或切斷電力。
多個記憶體150中包括的記憶體中的每一個可以被單獨供應電力。例如,多個記憶體150中的每個記憶體可以包括記憶體晶片或記憶體板。根據實施例,多個記憶體150中的每一個可以包括:雙列直插式記憶體模組(DIMM)、記憶體附加卡(AIC)、支援各種介面/連接(例如,EDSFF 1U Long (E1 L.)、EDSFF 1U Short (E1 S.)、EDSFF 3U Long (E3 L.)、EDSFF 3U Short (E3 S.)等)的非揮發性記憶體(例如,SSD)等。
多個記憶體150可以被劃分成預定數量的邏輯裝置。根據實施例,邏輯裝置的數量和記憶體的數量可以相同或不同。例如,多個記憶體150可以被劃分成多達16個邏輯單元。每個邏輯裝置可以由邏輯標識符指定。多個主機系統102A、102B可以透過邏輯標識符訪問記憶體150中的記憶體空間。邏輯標識符可以包括在由多個主機系統102A、102B使用的邏輯位址中。
池化記憶體裝置110的記憶體區域可以分佈到多個主機系統102A、102B,並且所分佈的記憶體區域的大小可以響應於來自多個主機系統102A、102B中的每一個的請求而改變。圖1示出了多個主機系統102A、102B透過互連裝置180聯接到池化記憶體裝置110而池化記憶體裝置110的記憶體區域可以分佈到虛擬機(VM)或容器的配置。本文中,容器可以理解為輕量級的封裝,其包括應用程序代碼和依賴項(dependency),諸如運行軟體服務所需的程序語言運行時(programming language runtimes)和特定版本的庫。容器可以虛擬化作業系統。容器可以在從專用數據中心到公用雲端或者甚至可以在開發人員的個人筆記型電腦上等任何地方運行。
圖2示出了根據本揭露的另一實施例的數據基礎設施的第二示例。
參照圖2,將描述包括多個主機系統102A、102B和池化記憶體裝置810的計算系統。池化記憶體裝置810可以包括多個記憶體卡850A、850B、850C、850D,互連裝置880和可用記憶體區域控制器830。
多個主機系統102A、102B中的每一個都可以包括主機處理器104、主機記憶體106和儲存裝置108。主機處理器104和儲存裝置108可以透過諸如高速外圍組件互連(PCIe)的介面協定來交換數據。根據實施例,主機處理器104和儲存裝置108可以透過包括以下的各種通訊標準或介面執行數據通訊:通用串列匯流排(USB)、多媒體卡(MMC)、並列高級技術附件(PATA)、小型計算機系統介面(SCSI)、增強型小型磁碟介面(ESDI)、電子集成驅動器(IDE)、串列SCSI(SAS)、串行高級技術附件(SATA)、移動行業處理器介面(MIPI)等。
多個主機系統102A、102B聯接到池化記憶體裝置810中的互連裝置880,並且多個主機系統102A、102B和池化記憶體裝置810可以透過高速計算鏈路(CXL)介面執行數據通訊。
互連裝置880與多個記憶卡850A、850B、850C、850D之間的連接方式、數據通訊方法或協定可以根據多個記憶卡850A、850B、850C、850D的配置而變化。例如,多個記憶卡850A、850B、850C、850D中的每一個可以包括:雙列直插式記憶體模組(DIMM)、記憶體附加卡(AIC)、以及支援各種連接(例如,EDSFF 1U Long (E1 L.)、EDSFF 1U Short (E1 S.)、EDSFF 3U Long (E3 L.)、EDSFF 3U Short(E3 S.)等)的非揮發性記憶體(例如,SSD)等。如果第一記憶卡850A包括雙列直插式記憶體模組(DIMM),互連裝置880和第一記憶卡850A可以透過用於雙列直插式記憶體模組(DIMM)的介面或協定執行數據通訊。根據實施例,多個記憶卡850A、850B、850C、850D中的每一個可以包括能夠透過高速計算鏈路(CXL)介面執行數據通訊的邏輯裝置。對應於多個記憶卡850A、850B、850C、850D的配置,互連裝置880可以支援至少一種用於數據通訊的介面和協定。
可用記憶體區域控制器830可以將池化記憶體裝置810中的多個記憶卡850A、850B、850C、850D的記憶體區域提供給裝置和雲端層級。可用記憶體區域控制器830使用記憶體即服務(Memory as a Service,MaaS)以提供記憶體區域作為實用程序,記憶體即服務可以在裝置和雲端層級提供記憶體區域作為服務。可用記憶體區域控制器830可以向諸如可穿戴計算裝置、行動計算裝置和/或物聯網(IoT)計算裝置的資源受限計算裝置提供巨大的持久記憶體容量和按需記憶體資源。在作為一種資源受限的計算裝置的多個主機系統102A、102B中運行的應用程序,使用由作業系統提供的記憶體服務,以透過可用記憶體區域控制器830訪問多個記憶卡850A、850B、850C、850D。多個記憶卡850A、850B、850C、850D中的記憶體區域可以像本地記憶體(例如,主機記憶體106和儲存裝置108)一樣用在多個主機系統102A、102B中。
多個主機系統102A、102B不必包括用於借用池化記憶體裝置810中的多個記憶卡850A、850B、850C、850D的記憶體區域中的至少一些作為本地記憶體的單獨的控制裝置或應用程序。可用記憶體區域控制器830可以動態地提供由多個主機系統102A、102B中的每一個請求的記憶體區域。例如,透過記憶體即服務(MaaS)使用池化記憶體裝置810的行動裝置可以在作業系統層級具有兆位元組(terabyte)的記憶體容量。當智慧型電話聯接到計算機網絡、網際網路、本地記憶體裝置或實施本文描述的MaaS的池化記憶體裝置810時,利用128MB或256MB的本地記憶體配置的智慧型電話的應用程序可以訪問64TB的隨機存取記憶體。
圖3示出了根據本揭露的另一實施例的數據基礎設施的第三示例。具體地,圖3示出了多個主機處理器104A、104B、104C,池化記憶體裝置250以及將多個主機處理器104A、104B、104C聯接到池化記憶體裝置250的交換機裝置280。根據實施例,交換機裝置280可以包括高速計算鏈路(CXL)交換機。
此處,高速計算鏈路(CXL)可以是被設計為支援加速器和記憶體裝置的動態多協定技術。CXL可以提供一組協定,該組協定包括:第一CXL協定(例如,CXL.io),包括諸如PCIe的I/O語義;第二CXL協定(例如,CXL.cache),包括高速快取協定語義;以及第三CXL協定(例如,CXL.mem),包括透過單個或封裝鏈路的記憶體存取語義。語義可以指用於在運行包括作為由元素以不同方式組合的句子產生規則支配的通訊系統的語言的程序或應用程序時,預測和確認在諸如表達式、句子、程序代碼的單元所賦予的意義中進行什麼操作以及結果是什麼的手段。例如,第一CXL協定(CXL.io)可以用於搜索和枚舉、錯誤報告以及主機物理位址(HPA)查詢。第二CXL協定(CXL.mem)和第三CXL協定(CXL.cache)可以根據具體的加速器或記憶體裝置使用模型選擇性地實施和使用。CXL介面可以提供低延遲、高頻寬路徑以供加速器訪問系統,或供系統訪問聯接到CXL裝置的記憶體。
高速計算鏈路(CXL)交換機是一種用於將多個主機處理器104A、104B、104C和多個基於CXL的裝置聯接的互連裝置。例如,多個基於CXL的裝置可以包括基於PCIe的裝置或邏輯裝置(LD)。此處,高速外圍組件互連(高速PCI,PCIe)可以指用於聯接計算裝置和外圍裝置的協定或介面。例如,PCIe可以使用插槽或特定電纜,在每條線數百MB/s(例如,250MB/s、500MB/s、984.6250MB/s、1969MB/s等)的頻寬上透過多個引腳(例如,18引腳、32引腳、49引腳、82引腳等)和至少一條線(例如,x1、x4、x8、x16等),連接諸如計算裝置的主機處理器104與諸如連接到計算裝置的外圍裝置的主機記憶體106或儲存裝置108。基於CXL交換和池化,多個主機處理器104A、104B、104C和多個裝置252、254、256、258可以連接到交換機裝置280。連接到交換機裝置280的每個裝置的全部或部分可以作為邏輯裝置分配給不同的主機處理器104A、104B、104C。邏輯裝置(LD)可以被理解為指向綁定到虛擬CXL交換機(VCS)的CXL端點的實體。例如,單邏輯裝置(單SD)包括一個邏輯裝置(LD),多邏輯裝置(MLD)250包括多個邏輯裝置(LD)252、254、256、258。
例如,虛擬CXL交換機(VCS)可以包括屬單個虛擬層級結構(VH)的物理交換機中的實體。可以使用虛擬CXL交換機標識符(VCS-ID)來識別每個實體。虛擬層級結構(VH)包括集合點(Rendezvous point,RP)、PCI至PCI橋接器(PPB)和端點。虛擬層級結構VH可以包括集合點(RP)下面包括的任何內容。CXL虛擬層的結構可以類似於PCIe的結構。在結構管理器(fabric manager,FM)中包括的CXL交換機內部,PCI-PCI橋接器(PPB)和連接到PCI-PCI橋接器(PPB)的端口可以響應於各種協定(PCIe、CXL 1.1、CXL 2.0 SLD或CXL 2.0 MLD)而提供連接或阻止連接。本文中,結構管理器(FM)可以控制與池化端口和池化裝置的綁定或管理相關的系統的方面。結構管理器可能是不同於交換機或主機韌體的獨立實體。此外,屬結構管理器(FM)的PCI-PCI橋接器(PPB)可以提供數據鏈路,該數據鏈路包括來自多個虛擬CXL交換機(VCS)或未綁定物理端口的流量。
圖4示出了根據本揭露的實施例的記憶體擴展器。
參照圖4,主機計算系統102可以透過高速計算鏈路(CXL)介面聯接到記憶體擴展器210。主機計算系統102可以包括主機處理器104和主機記憶體106。記憶體擴展器210可以包括控制邏輯/電路(或控制電路)212和由主機計算系統102管理的主機管理記憶體214。
根據實施例,記憶體擴展器210可以支援第一CXL協定(CXL.io)和第二CXL協定(CXL.mem)。因為記憶體擴展器210不是加速器,所以記憶體擴展器210可能不透過第三CXL協定(CXL.cache)向主機計算系統102發出任何請求。記憶體擴展器210可以主要透過第二CXL協定(CXL.mem)進行操作並且處理從主機計算系統102輸入的請求。第一CXL協定(CXL.io)可以主要用於裝置發現、枚舉、錯誤報告和管理。第一CXL協定(CXL.io)可以由記憶體擴展器210使用用於另一I/O特定應用程序。例如,控制邏輯212可以透過第一CXL協定(CXL.io)跟蹤或監控記憶體擴展器210中的主機管理記憶體214是否被使用、主機計算系統102使用了多少記憶體區域等。
如果主機處理器104是請求記憶體擴展器210的管理資訊的實體,則主機計算系統102可以進一步包括作為響應主機處理器104的請求的實體的代理。例如,代理可以指諸如集線器、路由器、交換機、橋接器和主機的受管理裝置,或者安裝在受管理裝置中的S/W類模組。該代理可以以數據庫的形式維護和管理主機處理器104使用記憶體擴展器210所需的變量和狀態資訊。代理可以解決給定位址(例如,邏輯位址)的系統範圍一致性。
根據實施例,記憶體擴展器210可以包括單SD或多邏輯裝置MLD。支援高速計算鏈路(CXL)介面的記憶體擴展器210可以將主機管理記憶體214劃分成多達16個獨立的邏輯單元。每個邏輯裝置可以由在第一CXL協定(CXL.io)和第二CXL協定(CXL.mem)中使用的邏輯裝置標識符(LD-ID)標識。每個邏輯裝置都可以在虛擬層級結構(VH)中識別和找到。每個邏輯裝置的控制邏輯212可以控制和管理公共事務和用於在記憶體擴展器210中包括的每個邏輯裝置中使用的每個協定的鏈路層。
參照圖3和圖4,當記憶體擴展器210包括多邏輯裝置MLD時,記憶體擴展器210可以透過交換機裝置280與至少一個主機系統102一起操作。此時,多邏輯裝置MLD中的一個邏輯裝置中的至少一些可以分配給結構管理器(FM)。而且,多邏輯裝置MLD中包括的多個邏輯裝置LD#1、LD#2、LD#3、LD#4可以分配給至少一個主機計算系統102。例如,交換機裝置280可以透過交換機裝置280中包括的多個虛擬CXL交換機VCS管理多個邏輯裝置LD#1、LD#2、LD#3、LD#4與多個主機計算系統之間的多個數據通訊鏈路,多個主機計算系統中的每一個包括主機處理器104A、104B、104C。而且,交換機裝置280中的暫存器可以用於透過至少一個主機計算系統102重置至少一個邏輯裝置LD#1、LD#2、LD#3、LD#4。記憶體擴展器210中的控制邏輯(或控制電路)212可以透過結構管理器(FM)的應用程序編程介面(API)提供對各種架構功能、控制和狀態暫存器的訪問。控制邏輯(或控制電路)212可以靜態地或動態地配置多邏輯裝置MLD中包括的邏輯裝置LD#1、LD#2、LD#3、LD#4。
圖5示出了根據本揭露的另一實施例的數據基礎設施的第四示例。圖5示出了其中多個主機處理器104A、104B透過池化記憶體裝置250中的交換機裝置280聯接到多個邏輯裝置(例如,邏輯裝置0、邏輯裝置1)的數據基礎設施。
根據實施例,聯接到多個主機處理器104A、104B的池化記憶體裝置250可以共享關於與多個主機處理器104A、104B接合的池化記憶體裝置250中的記憶體區域的邏輯位址資訊。例如,池化記憶體裝置250可以包括第一邏輯裝置(邏輯裝置0)和第二邏輯裝置(邏輯裝置1)。第一邏輯裝置(邏輯裝置0)的記憶體區域可以被分配用於儲存與邏輯位址1到100相對應的數據,並且第二邏輯裝置(邏輯裝置1)的記憶體區域可以被分配用於儲存與邏輯位址101到200相對應的數據。池化記憶體裝置250中的多個邏輯裝置用於邏輯位址1至200。多個邏輯裝置可以與多個主機處理器104A、104B共享所有權。所有權可以顯示主機處理器104A、104B中的哪一個使用與邏輯位址1至200相對應的記憶體區域。例如,邏輯位址1至50被分配給第一主機處理器104A,其他邏輯位址51至100被分配給第二主機處理器104B。進一步地,其他邏輯位址101至200被分配給第一主機處理器104A。
分配給每個邏輯裝置的邏輯位址的範圍可以對應於池化記憶體裝置250中包括的邏輯裝置的記憶體區域的大小而不同。另外,可以響應於多個主機處理器104A、104B的釋放請求而釋放分配給多個主機處理器104A、104B的記憶體區域。響應於多個主機處理器104A、104B的分配請求,可以將池化記憶體裝置250中的未分配記憶體區域分配給相應的主機處理器。
池化記憶體裝置250中包括的交換機裝置280可以提供介面,多個主機處理器104A、104B可以透過該介面訪問池化記憶體裝置250內的所分配的記憶體區域。與池化記憶體裝置250使用的邏輯位址範圍相對應的記憶體區域專門分配給多個主機處理器104A、104B中的每一個。例如,與特定邏輯位址(例如,邏輯位址70)相對應的記憶體空間可以由單個主機處理器(例如,104A或104B)而不是由多個主機處理器(例如,104A和104B)分配和使用。
池化記憶體裝置250的控制裝置能夠將在池化記憶體裝置250中包括的多個邏輯裝置的每一個中使用的邏輯位址的範圍作為位址範圍表來控制。控制裝置可以向多個主機處理器104A、104B提供位址範圍表。參照圖4和圖5,多個主機處理器104A、104B可以透過諸如管理程序(hypervisor)的代理,使用基於位址範圍表分配的記憶體區域。本文中,管理程序可以包括創建或運行虛擬機(VM)的進程類型。管理程序可以包括被允許在指定約束下的硬體上運行而無需仿真的軟體系統和/或韌體系統。
根據實施例,交換機裝置280可以與計算引擎290交互操作。例如,計算引擎290可以包括結構管理器(FM)。
根據實施例,交換機裝置280可以包括被配置為使用MaaS(記憶體即服務)執行數據輸入/輸出或數據遷移的MaaS管理器292。例如,MaaS管理器292可以控制位址範圍表,該位址範圍表指示是否使用或分配在多個邏輯裝置(例如,邏輯裝置0和邏輯裝置1)中的每一個中使用的邏輯位址的範圍。進一步地,MaaS管理器292可以收集關於多個邏輯裝置(例如,邏輯裝置0和邏輯裝置1)的操作狀態的資訊。例如,MaaS管理器292可以在基於包括位址範圍表的記憶體狀態映射訪問多個邏輯裝置(邏輯裝置0、邏輯裝置1)或為多個主機處理器104A、104B分配多個邏輯裝置之前檢查相應邏輯裝置的狀態。進一步地,MaaS管理器292可以被配置為將從多個主機處理器104A、104B傳輸的虛擬記憶體位址(例如,不包括在主機計算系統中的記憶體區域的邏輯位址)關聯到在第一邏輯裝置(邏輯裝置0)和第二邏輯裝置(邏輯裝置1)中使用的物理記憶體位址。MaaS管理器292可以基於位址轉換高速快取數據。
根據實施例,根聯合體(root complex)可以被包括在池化記憶體裝置150和支援高速計算鏈路(CXL)介面的多個主機處理器104A、104B之間。根聯合體是位於多個主機處理器104A和104B與諸如PCIe匯流排的連接組件之間的一種介面。根聯合體可以包括多個晶片、系統軟體等,諸如處理器介面、DRAM介面的多個組件。根聯合體可以在邏輯上將諸如PCIe的層級結構域組合成單個層級結構。每個結構實例(fabric instance)可以包括邏輯裝置、交換機、橋接器等。根據實施例,根聯合體可以計算每個邏輯裝置中的記憶體區域的大小,並將記憶體區域映射到系統(例如,OS或檔案系統)以產生與記憶體區域的大小相對應的位址範圍表。
圖6示出了根據本揭露的另一實施例的數據基礎設施的第五示例。圖6描述了高速計算鏈路(CXL)交換機和高速計算鏈路(CXL)介面。
根據實施例,CXL交換機可以連接多個主機處理器104A、104B、104C、104D、……、104#與多個邏輯裝置110A、110B、110C、110D、……、110#。多個邏輯裝置110A、110B、110C、110D、……、110#的記憶體區域可以專門分配給多個主機處理器104A、104B、104C、104D、……、104#中的每一個。例如,第一邏輯裝置(LD1)110A的全部記憶體區域可以分配給第一主機處理器104A並由第一主機處理器104A使用。第二邏輯裝置(LD2)110B的記憶體區域中的一部分可以分配給第一主機處理器104A,並且第二邏輯裝置(LD2)110B的記憶體區域中的另一部分可以分配給第三主機處理器104C。第三邏輯裝置(LD3)110C可以分配給第二主機處理器104B和第三主機處理器104C並由第二主機處理器104B和第三主機處理器104C使用。第四邏輯裝置(LD4)110D可以分配給第一主機處理器104A、第二主機處理器104B和第三主機處理器104C並由第一主機處理器104A、第二主機處理器104B和第三主機處理器104C使用。
多個邏輯裝置110A、110B、110C、110D、……、110#的未分配記憶體區域可以響應於從多個主機處理器104A、104B、104C、104D、……、104#輸入的請求而分配。另外,分配給多個主機處理器104A、104B、104C、104D、……、104#的記憶體區域可以響應於從多個主機處理器104A、104B、104C、104D、……、104#輸入的請求而釋放。
圖7示出了根據本揭露的另一實施例的數據基礎設施的第六示例。具體地,圖7示出了與多個主機處理器104A、104B聯接的池化記憶體系統310。可以透過交換機裝置380執行多個主機處理器104A、104B和池化記憶體系統310中的多個邏輯裝置350A、350B之間的數據通訊。根據實施例,交換機裝置380可以包括用於支援高速計算鏈路(CXL)交換機和多個邏輯裝置350A、350B的介面。
參照圖7,池化記憶體系統310可以包括第一邏輯裝置350A、第二邏輯裝置350B和控制器330。根據實施例,第一邏輯裝置350A或第二邏輯裝置350B可以包括:雙列直插式記憶體模組(DIMM)、記憶體附加卡(AIC)、支援各種連接(例如,EDSFF 1U Long (E1 L.)、EDSFF 1U Short (E1 S.)、EDSFF 3U Long (E3 L.)、EDSFF 3U Short (E3 S.)等)的非揮發性記憶體(例如,SSD)等。例如,第一邏輯裝置350A和第二邏輯裝置350B可以包括相同類型的記憶體。與能夠儲存數據的記憶體區域相對應的邏輯位址的範圍可以被分配給第一邏輯裝置350A和第二邏輯裝置350B。例如,邏輯位址1至100可以被分配給第一邏輯裝置350A,而邏輯位址101至200可以被分配給第二邏輯裝置350B。第一邏輯單元350A和第二邏輯單元350B中的記憶體區域可以專門分配給多個主機處理器104A、104B中的每一個。
參照圖5和圖7,可以不同地控制或管理第一邏輯裝置350A和第二邏輯裝置350B中的記憶體區域。在圖5描述的實施例的情況下,與池化記憶體裝置250中的記憶體空間相對應的所有邏輯位址範圍是否被分配和使用可以由多個主機處理器104A、104B共享。與多個主機處理器104A、104B共享關於與池化記憶體裝置250中的記憶體空間相對應的全部邏輯位址1至200的分配資訊。另一方面,在圖7描述的實施例的情況下,與池化記憶體系統310中的記憶體空間相對應的全部邏輯位址範圍的分配可能不與多個主機處理器104A、104B共享。池化記憶體系統310可以向第一主機處理器104A通知關於已經分配給第一主機處理器104A的邏輯位址範圍(例如,邏輯位址1至50和101至200)的分配資訊。可以向第二主機處理器104B通知分配給第二主機處理器104B的另一邏輯位址範圍(例如,邏輯位址51至100)。
池化記憶體系統310中的控制器330可以包括分區管理器332,分區管理器332管理和控制關於第一邏輯裝置350A和第二邏輯裝置350B的分區資訊。分區管理器332可以管理和控制位址範圍表,該位址範圍表包括與池化記憶體裝置250中的記憶體區域相對應的邏輯位址1至200的分配資訊。位址範圍表可以包括關於所有權的資訊,所有權指示哪個主機處理器使用與池化記憶體系統310中的所有記憶體空間相對應的邏輯位址範圍中的每一個。分區管理器332可以包括被配置為使用位址範圍表來管理池化記憶體系統310中待專門分配給多個主機處理器104A、104B的記憶體區域的模組(例如,位址範圍管理器)。
根據實施例,分區管理器332可以包括執行檢查第一邏輯裝置350A和第二邏輯裝置350B的記憶體區域中的錯誤或者檢查記憶體區域是否被合併的附加功能的模組。第一邏輯裝置350A和第二邏輯裝置350B中的每一個可以包括至少一個記憶體晶片,並且每個記憶體晶片可以包括多個揮發性記憶體單元或多個非揮發性記憶體單元。由於各種原因(例如,工藝、電壓、溫度(PVT)變化等),第一邏輯裝置350A和第二邏輯裝置350B中的記憶體單元可能具有缺陷或錯誤地操作。如果數據儲存在有缺陷的記憶體單元中,則可能無法確保數據安全或可靠性。因此,分區管理器332可以識別第一邏輯裝置350A和第二邏輯裝置350B中的具有缺陷的記憶體單元的位置,並將該位置確定為不用於儲存任何數據的不可訪問區域。分區管理器332可以響應於具有缺陷的記憶體單元改變第一邏輯裝置350A和第二邏輯裝置350B中的記憶體區域的大小並且基於記憶體區域的改變後的大小改變邏輯位址的範圍。
多個主機處理器104A、104B可以向池化記憶體系統310發送請求,以請求額外的記憶體區域或釋放所分配的記憶體區域。池化記憶體系統310中的控制器330可以響應於從多個主機處理器104A、104B輸入的請求來改變是否分配或使用記憶體區域。控制器330可以在預設協定下以消息或數據包的形式透過交換機裝置380執行與多個主機處理器104A、104B的數據通訊。
例如,多個主機處理器104A、104B可以經由交換機裝置380以MCTP(管理組件傳輸協定)消息的形式傳送由結構管理器(FM)提供的應用程序編程介面(API)命令。此處,MCTP是指一種可以用於便於管理控制器與其他管理控制器之間或管理控制器與管理裝置之間的數據通訊的通訊模型。該通訊模型可以包括消息格式、傳輸描述、消息交換模式、配置和初始化消息等。MCTP可能旨在用於計算機系統中使用的平臺管理子系統的元件或組件之間的相互通訊。MCTP可能被設計為在各種匯流排類型上以MCTP格式發送和接收消息。
圖8示出了根據本揭露的另一實施例的數據基礎設施的第七示例。具體地,圖8示出了多個主機計算系統102A、102B和池化記憶體裝置410。根據實施例,池化記憶體裝置410可以包括交換機裝置480、多個記憶卡450A、450B、450C、450D和控制器430。交換機裝置480可以包括高速計算鏈路(CXL)交換機。
根據實施例,多個記憶卡450A、450B、450C、450D可以包括各種類型的記憶體裝置。例如,多個記憶卡850A、850B、850C、850D中的每一個可以包括:雙列直插式記憶體模組(DIMM)、記憶體附加卡(AIC)、以及支援各種連接(例如,EDSFF 1U Long (E1 L.)、EDSFF 1U Short (E1 S.)、EDSFF 3U Long (E3 L.)、EDSFF 3U Short (E3 S.)等)的非揮發性記憶體(例如,SSD)等。基於多個記憶卡450A、450B、450C和450D的內部配置,提供支援數據通訊的介面的交換機裝置480的配置可以變化。
多個主機計算系統102A、102B中的每一個都可以被理解為諸如個人計算機、工作站等的計算裝置。例如,第一主機計算系統102A可以包括主機處理器104、主機記憶體106和儲存裝置108。主機處理器104可以響應於用戶的請求而執行操作,將在執行操作的過程中使用或產生的數據臨時儲存在主機記憶體106中,並且根據需要將數據永久儲存在儲存裝置108中。第二主機計算系統102B可以包括與第一主機計算系統102A相同的組件,但內部組件可以根據實施例改變。
可以單獨地向池化記憶體裝置410中包括的多個記憶卡450A、450B、450C、450D供應或切斷電力。多個記憶卡450A、450B、450C、450D可以被分成多個邏輯裝置(參見圖3和圖5)。根據實施例,記憶卡450A、450B、450C、450D中的每一個可以被劃分成相應的邏輯裝置。可選地,可以將一個記憶卡分成多個邏輯裝置,或者可以將多個記憶卡用作單個邏輯裝置。
池化記憶體裝置410中的控制器430可以跟蹤和監控在多個記憶卡450A、450B、450C、450D中建立的多個邏輯裝置是否被使用。例如,如果第一記憶卡450A包括100G的記憶體區域,則控制器430可以檢查100G的記憶體區域之中分配給多個主機系統102A、102B的記憶體區域。根據實施例,控制器430可以跟蹤和監控分配給多個主機系統102A、102B的記憶體區域是否被持續使用或者記憶體區域在被分配之後是否長時間未被使用。
例如,第三記憶卡450C中的100G的記憶體空間中的5G的區域可以被分配或使用,並且可以分配或使用第二記憶卡450B中的100G的記憶體空間之中的50G的區域。控制器430可以將第三記憶卡450C的5G的區域移動到第二記憶卡450B中的未使用區域,而不是向第三記憶卡450C供應電力以使用第三記憶卡450C中的5G的區域。控制器430可以將第三記憶卡450C中儲存的數據遷移到第二記憶卡450B,並且改變或更新關於所遷移的數據的映射資訊或5G的區域的分配資訊。例如,控制器430在位址範圍表中將對應於第三記憶卡450C的位址230至250分配的記憶體區域改變為第二記憶卡450B的位址160至180。在數據遷移之後,因為不再使用第三記憶卡450C,所以控制器430可以切斷第三記憶卡450C的電力。
參照圖8,在多個記憶卡450A、450B、450C、450D之中,第一記憶卡450A和第二記憶卡450B正在使用中,而第三記憶卡450C和第四記憶卡450B未被使用。第四記憶卡450D可能無法使用。控制器430可以切斷供應到未使用的第三記憶卡450C和第四記憶卡450D的電力。透過該過程,可以降低池化記憶體裝置410中的功耗,並且可以提高數據基礎設施的資源使用效率。
圖9示出了根據本揭露的另一實施例的數據基礎設施的第八示例。具體地,圖9示出了多個主機處理器104A、104B,多邏輯裝置550,以及用於連接多個主機處理器104A、104B與多邏輯裝置550的交換機裝置580。
根據實施例,交換機裝置380可以包括高速計算鏈路(CXL)交換機。多邏輯裝置550可以包括第一到第三邏輯裝置(邏輯裝置0至2)。第一至第三邏輯裝置(邏輯裝置0至2)中的每一個都可以具有1TB的記憶體空間。
交換機裝置580可以包括:至少一個輸入端口582A、582B,連接到至少一個主機處理器104A、104B;以及至少一個輸出端口588,連接到多邏輯裝置550中的多個邏輯裝置;以及多個PCI至PCI橋接器(PPB)586A、586B、586C、586D、586E、586F,被配置成在至少一個輸入端口582A、582B和至少一個輸出端口588之間建立、改變或移除至少一個數據路徑。
交換機裝置580可以包括多個虛擬CXL交換機(VCS)584A、584B。例如,多個虛擬CXL交換機(VCS)584A、584B可以包括至少一個上游端口和至少一個下游端口。根據實施例,多個虛擬CXL交換機(VCS)584A、584B可以包括多個上游端口以及一個或多個下游端口。每個下游端口都可以綁定到PCI至PCI橋接器(PPB)或虛擬PCI至PCI橋接器(vPPB)。另外,交換機裝置380可以可選地包括用於控制多個虛擬CXL交換機(VCS)584A、584B的結構管理器(FM)。結構管理器(FM)可以將多個PCI至PCI橋接器(PPB)586A、586B、586C、586D、586E、586F中的一些綁定或解除綁定。結構管理器(FM)可以使用多個虛擬CXL交換機(VCS)584A、584B來提供多邏輯裝置550的端口。可以經由透過結構管理器(FM)協調的受管理熱插拔流程將每個下游交換機端口(DSP)重新分配給不同的虛擬CXL交換機(VCS)。
透過交換機裝置580中的多個PCI至PCI橋接器(PPB)586A、586B、586C、586D、586E、586F的綁定或解除綁定,多個主機處理器104A、104B可以聯接到多邏輯裝置550中的第一至第三邏輯裝置(邏輯裝置0至2)。例如,第一邏輯裝置(邏輯裝置0)的1TB的記憶體區域可以分配給第一主機處理器104A,並且第二至第三邏輯裝置(邏輯裝置1至2)的2TB的記憶體區域可以分配給第二主機處理器104B。
根據實施例,多邏輯裝置550可以被劃分成多達16個邏輯裝置。作為對多邏輯裝置550中的細分的邏輯裝置的數量的限制,數據粒度可能增加。本文中,如果數據粒度較細,則可能增加輸入和儲存數據的操作的開銷。特別地,在面向對象的編程範例中,開銷可能來自大量的對象和方法調用,或者更多的程序編程和並行計算環境的子例程調用。然而,當在邏輯裝置上細分和處理每個數據時,數據處理的靈活性可能增加。
圖10示出了根據本揭露的另一實施例的數據基礎設施的第九示例。具體地,圖10示出了多個主機處理器104A、104B,多邏輯裝置650,以及被配置為聯接多個主機處理器104A、104B與多邏輯裝置650的交換機裝置680。
根據實施例,交換機裝置680可以包括高速計算鏈路(CXL)交換機。多邏輯裝置550可以包括第一到第三邏輯裝置(邏輯裝置0至2)。第一至第三邏輯裝置(邏輯裝置0至2)中的每一個都可以具有1TB的記憶體區域。
交換機裝置680包括:至少一個輸入端口682A或682B,連接到至少一個主機處理器104A或104B;以及至少一個輸出端口688A、688B、688C、688D,連接到多邏輯裝置550中的多個邏輯裝置;以及多個PCI至PCI橋接器(PPB)686A、686B、686C、686D、686E、686F,被配置成在至少一個輸入端口682A、682B和至少一個輸出端口688A、688B、688C、688D之間建立、改變或移除至少一個數據路徑。
交換機裝置680可以包括多個虛擬CXL交換機VCS0、VCS1(684A、684B)。透過交換機裝置680中的多個PCI至PCI橋接器(PPB)686A、686B、686C、686D、686E、686F的綁定或解除綁定,多個主機處理器104A、104B可以聯接到多邏輯裝置650中的第一至第三邏輯裝置(邏輯裝置0至2)。例如,第一邏輯裝置(邏輯裝置0)和第三邏輯裝置(邏輯裝置2)的2TB的記憶體區域可以分配給第一主機處理器104A。第二邏輯裝置(邏輯裝置1)的1TB的記憶體區域可以分配給第二主機處理器104B。響應於主機處理器104A、104B中的至少一個的請求,可以改變多邏輯裝置650中的記憶體區域的分配。響應於此,交換機裝置680中的多個PCI至PCI橋接器(PPB)686A、686B、686C、686D、686E、686F中的一些可以被綁定或解除綁定。
根據實施例,可以以連接到各個輸出端口688A、688B、688C、688D的邏輯裝置為單位執行關於多邏輯裝置650中的記憶體區域的分配和釋放分配。在這種情況下,數據粒度可能增加。然而,以邏輯裝置為單位動態地改變分配和使用可能在多個PCI至PCI橋接器(PPB)686A、686B、686C、686D、686E、686F中的一些之間的熱插拔和斷開連接的方面帶來開銷。
圖11示出了根據本揭露的實施例的操作記憶體擴展器的方法。
參照圖11,用於操作記憶體擴展器的方法可以包括:接收透過互連裝置從至少一個主機處理器傳輸的第一請求(操作712);響應於與第一請求一起傳輸的第一邏輯裝置的位址,將第一邏輯裝置中使用的數據遷移到第二邏輯裝置(操作714);將所遷移的數據在第二邏輯裝置中的位址傳送到至少一個主機處理器(操作716);以及切斷供給到第一邏輯裝置的電力(操作718)。
參照圖1和圖6,第一邏輯裝置和第二邏輯裝置可以被分配用於儲存與邏輯位址的不同範圍相對應的數據。根據實施例,參照圖5,與至少一個主機處理器104A、104B共享指示邏輯位址是否被分配給第一邏輯裝置和第二邏輯裝置的記憶體區域的資訊(例如,位址範圍表)。參照圖7,包括第一邏輯裝置和第二邏輯裝置的池化記憶體系統310可以包括控制關於第一邏輯裝置和第二邏輯裝置的記憶體區域的位址範圍表的控制器330。根據實施例,池化記憶體系統310可以僅傳輸關於分配給至少一個主機處理器104A、104B之中的相應主機處理器或由相應主機處理器使用的位址範圍的分配資訊。
參照圖8和圖11,多邏輯裝置410中的控制器430可以接收透過交換機裝置480從多個主機處理器104A、104B傳輸的請求。例如,第一主機處理器104A可以向多邏輯裝置410傳輸用於切斷供應到第一邏輯裝置的電力的第一請求,以降低功耗。在控制器430切斷供應到第一邏輯裝置的電力之前,可以將儲存在第一邏輯裝置中的有效數據(例如,儲存在當前分配給至少一個主機處理器104A、104B並由至少一個主機處理器104A、104B使用的記憶體區域中的數據)遷移到第二邏輯裝置。控制器430可以更新位址範圍表或為所遷移的數據添加新的映射資訊,然後將更新後的位址範圍表傳送到至少一個主機處理器104A、104B。下文中,控制器430可以切斷供應到第一邏輯裝置的電力。
記憶體擴展器的操作方法可以包括:跟蹤第一邏輯裝置和第二邏輯裝置的可用容量或當前使用的記憶體區域;以及切斷供應到第一邏輯裝置和第二邏輯裝置的未使用邏輯裝置的電力。即使沒有從至少一個主機處理器104A、104B傳送的請求,控制器430也可以控制第一邏輯裝置和第二邏輯裝置的可用性或使用,以便有效地利用資源並降低功耗。基於跟蹤記憶體容量的資訊,可以將未使用邏輯裝置斷電。
根據實施例,操作記憶體擴展器的方法可以進一步包括:響應於至少一個主機處理器的寫入請求,將輸入數據儲存在基於輸入數據的邏輯位址選擇的第一邏輯裝置和第二邏輯裝置中的一個中;以及響應於至少一個主機處理器的讀取請求,將對應於與讀取請求一起輸入的邏輯位址的第一邏輯裝置和第二邏輯裝置中的一個中儲存的數據輸出到互連裝置。當記憶體擴展器中的第一邏輯裝置和第二邏輯裝置中的記憶體區域中的至少一部分被分配給至少一個主機處理器時,該至少一個主機處理器可以將諸如讀取命令、寫入命令和擦除命令的數據輸入/輸出(I/O)命令傳輸到記憶體擴展器。數據I/O命令可以連同與已經分配的記憶體區域相對應的位址一起傳送。基於與數據I/O命令一起傳輸的位址,記憶體擴展器可以訪問第一邏輯裝置或第二邏輯裝置中的特定位置。
根據實施例,第一邏輯裝置和第二邏輯裝置的高速快取一致性可以透過由互連裝置使用的介面提供給至少一個主機處理器。當記憶體擴展器連接到至少一個主機處理器並用作共享記憶體時,可以基於第一邏輯裝置和第二邏輯裝置的高速快取一致性來提高至少一個主機處理器的數據基礎設施的數據穩定性。
根據實施例,第一邏輯裝置和第二邏輯裝置的記憶體區域中的部分或全部可以透過由互連裝置使用的介面被專門分配給至少一個主機處理器。例如,透過圖3所示的交換機裝置280,多個邏輯裝置252、254、256、258中的每一個中的記憶體區域中的一些或全部可以被專門分配給多個主機處理器104A、104B、104C中的每一個並由其使用。
根據實施例,記憶體擴展器的操作方法可以支援記憶體池化。記憶體池化可以指當至少一個主機處理器直接指定特定大小和數量的記憶體區域時用於預分配和獲得記憶體區域以及響應於至少一個主機處理器的請求的調用(例如,新建/刪除)而提供或回收預分配和獲得的記憶體區域的操作或程序。參照圖6,作為記憶體擴展器而工作的池化記憶體裝置310中的記憶體空間可以響應於從至少一個主機處理器104A、104B輸入的請求另外分配未分配的記憶體區域或釋放所分配的記憶體區域。
如上所述,根據本揭露的實施例的記憶體擴展器或池化記憶體裝置可以監控或跟蹤由至少一個主機處理器或計算系統當前使用或未使用的記憶體區域,並切斷供應到未使用的記憶體區域的電力,從而可以降低記憶體擴展器或池化記憶體裝置的功耗。
另外,根據本揭露的實施例的記憶體擴展器或池化記憶體裝置可以執行多個邏輯裝置之間的數據遷移。記憶體擴展器或池化記憶體裝置可以監控或跟蹤多個邏輯裝置中由至少一個主機處理器或計算系統使用的記憶體區域。在切斷至少一個邏輯裝置的電力以降低功耗之前,記憶體擴展器或池化記憶體裝置可以將至少一個邏輯裝置中儲存的數據遷移到另一邏輯裝置中,並且將多個邏輯裝置內發生的數據遷移通知給至少一個主機處理器或計算系統。透過這些過程,可以提高關於記憶體擴展器或池化記憶體裝置中的資源的使用效率。
本文所述的方法、程序和/或操作可以由透過計算機、處理器、控制器或其他訊號處理裝置運行的代碼或指令來執行。計算機、處理器、控制器或其他訊號處理裝置可以是本文描述的裝置或者除了本文描述的元件之外的元件。因為詳細描述了形成該方法(或計算機、處理器、控制器或其他訊號處理裝置的操作)的基礎的算法,所以用於實施該方法的實施例的操作的代碼或指令可以將計算機、處理器、控制器或其他訊號處理裝置轉換為用於執行本文的方法的專用處理器。
當至少部分以軟體實施時,控制器、處理器、裝置、模組、單元、多工器、產生器、邏輯、介面、解碼器、驅動器和其他訊號產生和訊號處理特徵可以包括例如用於儲存藉由例如計算機、處理器、微處理器、控制器或其他訊號處理裝置運行的代碼或指令的記憶體或其他儲存裝置。
根據實施例,申請專利範圍中記載的邏輯可以對應於本文描述的執行該邏輯的所記載操作的特徵中的任意一個或特徵的組合。進一步地,根據實施例,可以選擇性地執行所有操作或者可以省略部分操作。在每個實施例中,操作不一定按照描述的順序執行並且可以重新排列。本說明書及附圖所揭露的實施例僅為便於理解本揭露的示例,並且本揭露不限於此。
儘管已經參照其特定實施例示出和描述了本揭露,但是本領域的技術人員將理解的是,在不脫離由所附申請專利範圍及其等同方案限定的本揭露的精神和範圍的情況下,可以進行形式和細節的各種改變。因此,本揭露的範圍不應限於上述實施例,而應不僅由所附申請專利範圍而且還由等同方案來確定。此外,可以組合實施例以形成另外的實施例。
而且,另一實施例可以包括用於儲存上述代碼或指令的計算機可讀媒體,例如非暫時性計算機可讀媒體。該計算機可讀媒體可以是揮發性或非揮發性記憶體或其他儲存裝置,其可以可移除地或固定地聯接到用於運行代碼或指令以執行本文中的方法實施例或設備實施例的操作的計算機、(多個)處理器、(多個)控制器或(多個)其他訊號處理裝置。
本文中揭露的實施例的控制器、處理器、控制電路、電路、裝置、模組、單元、數據壓縮器、多工器、邏輯、介面、解碼器、驅動器、產生器和其他訊號產生和訊號處理特徵可以例如透過包括硬體、軟體或這兩者的非暫時性邏輯實現。當至少部分以硬體實施時,控制器、處理器、控制電路、電路、裝置、模組、單元、數據壓縮器、多工器、邏輯、介面、解碼器、驅動器、產生器和其他訊號產生和訊號處理特徵可以是例如各種積體電路中的任意一種,包括但不限於專用積體電路、現場可編程閘陣列、邏輯閘的組合、晶片上系統、微處理器或者其他類型的處理或控制電路。
當至少部分以軟體實施時,控制器、處理器、控制電路、電路、裝置、模組、單元、數據壓縮器、多工器、邏輯、介面、解碼器、驅動器、產生器和其他訊號產生和訊號處理特徵可以包括例如用於儲存藉由例如計算機、處理器、微處理器、控制器或其他訊號處理裝置運行的代碼或指令的記憶體或其他儲存裝置。
儘管上面已經描述了特定實施例,但是本領域技術人員將理解的是,所描述的實施例僅是示例。因此,池化記憶體裝置、記憶體擴展器和用於操作記憶體擴展器的方法不應基於所描述的實施例來限制。而是,本文中描述的池化記憶體裝置、記憶體擴展器和用於操作記憶體擴展器的方法應當僅根據所附申請專利範圍並結合以上描述和附圖來限制。此外,可以組合實施例以形成另外的實施例。
102:主機計算系統 102A:主機計算系統 102B:主機計算系統 104:主機處理器 104A:主機處理器 104B:主機處理器 104C:主機處理器 104D:主機處理器 104#:主機處理器 106:主機記憶體 108:儲存裝置(SSD) 110:邏輯裝置 110A:邏輯裝置(LD1) 110B:邏輯裝置(LD2) 110C:邏輯裝置(LD3) 110D:邏輯裝置(LD4) 110#:邏輯裝置(LD#) 130:控制器 150:記憶體 180:互連裝置 210:記憶體擴展器 212:控制邏輯 214:主機管理記憶體 250:池化記憶體裝置 252:邏輯裝置(LD1) 254:邏輯裝置(LD2) 256:邏輯裝置(LD3) 258:邏輯裝置(LD4) 280:交換機裝置 290:計算引擎 292:MaaS管理器 310:池化記憶體裝置 330:控制器 332:分區管理器 350A:邏輯裝置 350B:邏輯裝置 380:交換機裝置 410:多邏輯裝置(池化記憶體裝置) 430:控制器 450A:記憶卡 450B:記憶卡 450C:記憶卡 450D:記憶卡 480:交換機裝置 550:多邏輯裝置 580:交換機裝置 582A:輸入端口 582B:輸入端口 584A:虛擬CXL交換機(VCS 0) 584B:虛擬CXL交換機(VCS 1) 586A:PCI至PCI橋接器(vPPB 0) 586B:PCI至PCI橋接器(vPPB 1) 586C:PCI至PCI橋接器(vPPB 2) 586D:PCI至PCI橋接器(vPPB0) 586E:PCI至PCI橋接器(vPPB 1) 586F:PCI至PCI橋接器(vPPB 2) 588:輸出端口(PPB) 650:多邏輯裝置 680:交換機裝置 682A:輸入端口 682B:輸入端口 684A:虛擬CXL交換機(VCS 0) 684B:虛擬CXL交換機(VCS 1) 686A:PCI至PCI橋接器(vPPB 0) 686B:PCI至PCI橋接器(vPPB 1) 686C:PCI至PCI橋接器(vPPB 2) 686D:PCI至PCI橋接器(vPPB 0) 686E:PCI至PCI橋接器(vPPB 1) 686F:PCI至PCI橋接器(vPPB 2) 688A:輸出端口 688B:輸出端口 688C:輸出端口 688D:輸出端口 712,714,716,718:操作 810:池化記憶體裝置 830:可用記憶體區域控制器 850A:記憶卡 850B:記憶卡 850C:記憶卡 850D:記憶卡 880:互連裝置 PCIe:高速外圍組件互連
本文中的描述參照了附圖,在附圖中相同的附圖標記在整個附圖中指代相同的部件。 圖1示出了根據本揭露的實施例的數據基礎設施的第一示例。 圖2示出了根據本揭露的另一實施例的數據基礎設施的第二示例。 圖3示出了根據本揭露的另一實施例的數據基礎設施的第三示例。 圖4示出了根據本揭露的實施例的記憶體擴展器。 圖5示出了根據本揭露的另一實施例的數據基礎設施的第四示例。 圖6示出了根據本揭露的另一實施例的數據基礎設施的第五示例。 圖7示出了根據本揭露的另一實施例的數據基礎設施的第六示例。 圖8示出了根據本揭露的另一實施例的數據基礎設施的第七示例。 圖9示出了根據本揭露的另一實施例的數據基礎設施的第八示例。 圖10示出了根據本揭露的另一實施例的數據基礎設施的第九示例。 圖11示出了根據本揭露的實施例的操作記憶體擴展器的方法。
102A:主機系統
102B:主機系統
104:主機處理器
106:主機記憶體
108:儲存裝置
110:池化記憶體裝置
130:控制器
150:記憶體
180:互連裝置(SSD)

Claims (20)

  1. 一種池化記憶體裝置,包括: 多個記憶體裝置,包括第一記憶體和第二記憶體,所述多個記憶體裝置具有控制供應到所述多個記憶體裝置中的每一個的電力的至少一個電源;以及 控制器,聯接到互連裝置,所述互連裝置將所述多個記憶體裝置作為多個邏輯裝置提供給至少一個外部裝置,所述控制器跟蹤所述第一記憶體和所述第二記憶體的可用記憶體容量,並且切斷所述第一記憶體和所述第二記憶體之中的未使用記憶體的電力。
  2. 如請求項1所述的池化記憶體裝置,其中,所述控制器響應於從所述至少一個外部裝置輸入的第一請求,將數據從所述第一記憶體遷移到所述第二記憶體並且切斷供應到所述第一記憶體的電力。
  3. 如請求項2所述的池化記憶體裝置,其中,所述第一請求包括指示所述第一記憶體或所述第二記憶體的位址或標識符。
  4. 如請求項2所述的池化記憶體裝置,其中,所述控制器進一步在將所述數據遷移到所述第二記憶體之後,通知所述至少一個外部裝置所遷移的數據儲存在所述第二記憶體中的位置。
  5. 如請求項1所述的池化記憶體裝置,其中,所述控制器進一步在沒有從所述至少一個外部裝置輸入第一請求的情況下切斷供應到所述未使用記憶體的電力時,阻止切斷供應到所述未使用記憶體的電力的通知。
  6. 如請求項1所述的池化記憶體裝置,其中,所述第一記憶體和所述第二記憶體被分配用於儲存與用於所述邏輯裝置的不同邏輯位址範圍相關聯的數據。
  7. 如請求項6所述的池化記憶體裝置,其中,所述控制器進一步被配置為: 響應於從所述至少一個外部裝置輸入的寫入請求,基於與寫入數據一起輸入的邏輯位址,將所述寫入數據儲存在所述第一記憶體和所述第二記憶體中的一個中;並且 響應於從所述至少一個外部裝置輸入的讀取請求,基於與所述讀取請求一起輸入的邏輯位址,向所述互連裝置輸出從所述第一記憶體和所述第二記憶體中的一個讀取的數據。
  8. 如請求項1所述的池化記憶體裝置,其中,所述控制器進一步被配置為: 響應於從所述至少一個外部裝置輸入的第二請求,為所述第一記憶體和所述第二記憶體中的記憶體區域分配與所述第二請求相對應的邏輯位址範圍;並且 響應於從所述至少一個外部裝置輸入的第三請求,釋放與對應於所述第三請求的邏輯位址範圍相關聯的所述第一記憶體和所述第二記憶體中的記憶體區域的分配。
  9. 如請求項1所述的池化記憶體裝置,其中,所述互連裝置包括: 至少一個輸入端口,聯接到所述至少一個外部裝置; 至少一個輸出端口,聯接到所述多個記憶體裝置;以及 多個PCI至PCI橋接器(即PPB),產生、改變或移除所述至少一個輸入端口與所述至少一個輸出端口之間的至少一個數據路徑。
  10. 如請求項1所述的池化記憶體裝置,其中,所述第一記憶體和所述第二記憶體中的每一個包括透過所述互連裝置中的介面專門分配給所述至少一個外部裝置的記憶體區域的至少一部分。
  11. 如請求項1所述的池化記憶體裝置, 其中,所述第一記憶體或所述第二記憶體包括雙列直插式記憶體模組(即DIMM)、記憶體附加卡(即AIC)或非揮發性記憶體中的至少一個,並且 所述互連裝置支援與所述第一記憶體或所述第二記憶體的內部配置相對應的介面。
  12. 一種用於操作記憶體擴展器的方法,包括: 接收透過互連裝置從至少一個外部裝置傳輸的第一請求; 響應於與所述第一請求一起傳輸的第一邏輯裝置的位址,將數據從所述第一邏輯裝置遷移到第二邏輯裝置; 向所述至少一個外部裝置傳輸所遷移的數據儲存在所述第二邏輯裝置中的位置的位址;並且 當所述至少一個外部裝置不再使用所述第一邏輯裝置時,切斷所述第一邏輯裝置的電力。
  13. 如請求項12所述的方法,進一步包括: 跟蹤所述第一邏輯裝置和所述第二邏輯裝置的可用記憶體容量;並且 切斷所述第一邏輯裝置和所述第二邏輯裝置之中的未使用裝置的電力。
  14. 如請求項12所述的方法,其中,所述第一邏輯裝置和所述第二邏輯裝置被分配用於儲存與不同邏輯位址範圍相對應的數據。
  15. 如請求項12所述的方法,進一步包括: 響應於從所述至少一個外部裝置輸入的寫入請求,基於與寫入數據一起輸入的邏輯位址,將所述寫入數據儲存在所述第一邏輯裝置和所述第二邏輯裝置中的一個中;並且 響應於從所述至少一個外部裝置輸入的讀取請求,基於與所述讀取請求一起輸入的邏輯位址,向所述互連裝置輸出從所述第一邏輯裝置和所述第二邏輯裝置中的一個讀取的數據。
  16. 如請求項12所述的方法,其中,所述第一邏輯裝置和所述第二邏輯裝置中的每一個包括透過所述互連裝置中的介面專門分配給所述至少一個外部裝置的記憶體區域的至少一部分。
  17. 一種記憶體擴展器,包括: 多個記憶體,具有控制供應到所述多個記憶體中的每一個的電力的至少一個電源;以及 控制器,為多個邏輯裝置分配所述多個記憶體的記憶體區域,跟蹤每個邏輯裝置的可用記憶體容量,並且切斷供應到所述多個邏輯裝置之中的未使用邏輯裝置的電力。
  18. 如請求項17所述的記憶體擴展器,其中,所述控制器響應於從至少一個外部裝置輸入的第一請求,將數據從第一邏輯裝置遷移到第二邏輯裝置,並且切斷供應到所述第一邏輯裝置的電力。
  19. 如請求項18所述的記憶體擴展器, 其中,所述第一請求包括指示所述第一邏輯裝置或所述第二邏輯裝置的位址或標識符,並且 所述控制器進一步在將所述數據遷移到所述第二邏輯裝置之後,通知所述至少一個外部裝置所遷移的數據儲存在所述第二邏輯裝置中的位置。
  20. 如請求項17所述的記憶體擴展器,其中,所述控制器進一步在沒有從所述至少一個外部裝置輸入任何請求的情況下切斷供應到所述未使用邏輯裝置的電力時,阻止切斷供應到所述未使用邏輯裝置的電力的通知。
TW112129559A 2022-10-12 2023-08-07 用於控制池化記憶體裝置或記憶體擴展器的設備和方法 TW202416145A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220130643A KR20240050797A (ko) 2022-10-12 2022-10-12 공유 메모리 장치 혹은 메모리 확장 장치를 제어하는 장치 및 방법
KR10-2022-0130643 2022-10-12

Publications (1)

Publication Number Publication Date
TW202416145A true TW202416145A (zh) 2024-04-16

Family

ID=90579885

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112129559A TW202416145A (zh) 2022-10-12 2023-08-07 用於控制池化記憶體裝置或記憶體擴展器的設備和方法

Country Status (4)

Country Link
US (1) US20240126469A1 (zh)
KR (1) KR20240050797A (zh)
CN (1) CN117877541A (zh)
TW (1) TW202416145A (zh)

Also Published As

Publication number Publication date
US20240126469A1 (en) 2024-04-18
CN117877541A (zh) 2024-04-12
KR20240050797A (ko) 2024-04-19

Similar Documents

Publication Publication Date Title
EP3608792B1 (en) Managed switching between one or more hosts and solid state drives (ssds) based on the nvme protocol to provide host storage services
JP6798960B2 (ja) 仮想化ストレージエリアネットワークのための仮想ディスクブループリント
US10091295B1 (en) Converged infrastructure implemented with distributed compute elements
WO2018137529A1 (zh) 一种数据传输的方法、装置、设备和***
US9952975B2 (en) Memory network to route memory traffic and I/O traffic
CN115039077A (zh) 为实时虚拟化执行环境迁移维护存储命名空间标识符
US11726701B2 (en) Memory expander, heterogeneous computing device using memory expander, and operation method of heterogenous computing
KR20140018187A (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
US20220206969A1 (en) Data forwarding chip and server
JP2014529829A (ja) 仮想化入力/出力のためのプロセッサローカルコヒーレンシを有するコンピュータシステム
US20180020054A1 (en) Caching Network Fabric for High Performance Computing
CN108139937B (zh) 多根i/o虚拟化***
US11467776B1 (en) System supporting virtualization of SR-IOV capable devices
US20230051825A1 (en) System supporting virtualization of sr-iov capable devices
TWI785320B (zh) 裝置內標記資料移動系統、資訊處置系統及用於提供裝置內標記資料移動之方法
US20220137864A1 (en) Memory expander, host device using memory expander, and operation method of sever system including memory expander
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
TW202416145A (zh) 用於控制池化記憶體裝置或記憶體擴展器的設備和方法
US11201788B2 (en) Distributed computing system and resource allocation method
US20240231615A1 (en) Apparatus and method for sanitizing a shared memory device or a memory expander
WO2024001850A1 (zh) 数据处理***、方法、装置和控制器
US11281612B2 (en) Switch-based inter-device notational data movement system
KR20240111067A (ko) 공유 메모리 장치 혹은 메모리 확장 장치의 데이터 삭제를 위한 장치 및 방법
US20240061805A1 (en) Host endpoint adaptive compute composability
CN118314939A (zh) 用于清除共享存储器装置或存储器扩展器的设备和方法