TW202244736A - 同調記憶體系統及其操作方法 - Google Patents
同調記憶體系統及其操作方法 Download PDFInfo
- Publication number
- TW202244736A TW202244736A TW111114466A TW111114466A TW202244736A TW 202244736 A TW202244736 A TW 202244736A TW 111114466 A TW111114466 A TW 111114466A TW 111114466 A TW111114466 A TW 111114466A TW 202244736 A TW202244736 A TW 202244736A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- request
- memory device
- coherent
- cache
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary 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 Of A Hierarchy Structure (AREA)
Abstract
本發明是關於一種同調記憶體系統。在一些實施例中,同調記憶體系統包含第一記憶體裝置。第一記憶體裝置可包含快取同調控制器;揮發性記憶體控制器;揮發性記憶體;非揮發性記憶體控制器;以及非揮發性記憶體。第一記憶體裝置可組態成接收服務品質需求以及回應於服務品質需求而選擇性地啟用第一特徵。
Description
根據本揭露內容的實施例的一或多個態樣是關於儲存系統,且更特定而言是關於使用快取同調介面的記憶體系統。
[相關申請的交叉參考]
本申請案主張2021年5月7日申請的名稱為「輔助大型同調記憶體系統(ASSISTING LARGE COHERENT MEMORY SYSTEMS)」的美國臨時申請案第63/185,842號的優先權及權益,所述申請案的全部內容以引用的方式併入本文中。
具有大型分散式記憶體的計算系統可得益於在計算資源與記憶體或儲存器資源之間的連接中的快取同調協定的使用。然而,此類系統可面臨各種挑戰,包含例如潛在地長啟動時間、相對較高轉譯後備緩衝器(TLB)未命中率以及可不具有較高可靠性及可未經次序保持的連接。
因此,在具有大型分散式記憶體及快取同調連接的計算系統中需要改良組件。本背景技術部分僅意欲提供背景,且並非先前技術的描述。
在一些實施例中,大型分散式記憶體系統的某些挑戰可藉由合併在記憶體裝置中的某些特徵而解決或緩解,包含(i)用以輔助主機的轉譯後備緩衝器(TLB)的效能的記憶體管理單元(MMU)快取;(ii)用於操縱讀取操作及寫入操作的次序及以不同於其發佈次序的次序到達記憶體裝置的可能性的特徵;(iii)用於滿足服務品質(QoS)需求的特徵;(iv)包含在虛構記憶器位址的連續集合中與多個記憶體裝置交錯的實體記憶體位址的CXL交錯;(v)錯誤校正碼(ECC)的使用;(vi)對於整合化及資料加密(IDE)的支援;以及(vii)多邏輯裝置(MLD)支援。
根據本揭露內容的實施例,提供一種系統,包含:第一記憶體裝置,所述第一記憶體裝置包含:快取同調控制器;揮發性記憶體控制器;揮發性記憶體;非揮發性記憶體控制器;以及非揮發性記憶體,其中第一記憶體裝置組態成:接收服務品質需求;且回應於服務品質需求而選擇性地啟用第一特徵。
在一些實施例中:第一特徵包含提供記憶體管理單元快取;且第一記憶體裝置組態成:將揮發性記憶體的一部分分配為記憶體管理單元快取,且基於虛擬位址在記憶體管理單元快取中執行實體位址的實體位址查找。
在一些實施例中,執行實體位址查找包含:基於虛擬位址的第一部分在記憶體管理單元快取的第一頁表中查找基礎位址;基於基礎位址判定記憶體管理單元快取的第二頁表的起始位址;以及基於虛擬位址的第二部分在第二頁表中查找實體位址。
在一些實施例中,系統更包含主機,其中主機包含:記憶體管理單元及轉譯後備緩衝器;且主機組態成自第一記憶體裝置請求實體位址查找。
在一些實施例中,第一記憶體裝置進一步組態成:接收:第一IO請求,所述第一IO請求包含指示第一IO請求發佈時間的第一時間標記,及第二IO請求,所述第二IO請求包含指示第二IO請求發佈時間的時間標記;且執行:第二IO請求及第一IO請求,其中第二IO請求的時間標記小於第一IO請求的第一時間標記。
在一些實施例中,第一IO請求更包含指示由交換器處理第一IO請求的時間的第二時間標記。
在一些實施例中:第一記憶體包含第一媒體類型;且第一記憶體裝置進一步組態成經由快取同調控制器報告揮發性記憶體的負荷值。
在一些實施例中:揮發性記憶體映射至第一邏輯裝置,非揮發性記憶體映射至第二邏輯裝置,且第一記憶體裝置進一步組態成經由快取同調控制器報告非揮發性記憶體的負荷值。
在一些實施例中,系統更包含第二記憶體裝置,其中第一記憶體裝置組態成儲存具有第一實體位址的資料及具有第二實體位址的資料;且第二記憶體裝置組態成儲存具有第三實體位址的資料,所述第三實體位址大於第一實體位址且小於第二實體位址。
在一些實施例中,第一記憶體裝置進一步組態成:接收讀取請求;自第一記憶體的第一頁讀取原始資料;使用錯誤校正碼解碼原始資料;判定校正的錯誤的數目超出臨限值;以及經由快取同調控制器發送請求退出第一頁的報告。
在一些實施例中,第一記憶體裝置進一步組態成:接收包含未加密資料的寫入請求;加密未加密資料以形成加密資料;以及將加密資料儲存在非揮發性記憶體中。
在一些實施例中,第一記憶體裝置進一步組態成:接收讀取請求;自非揮發性記憶體讀取加密資料;解密加密資料以形成未加密資料;以及經由快取同調控制器傳輸未加密資料。
在一些實施例中,快取同調控制器為計算高速鏈路(CXL)控制器。
在一些實施例中,第一記憶體裝置為類型3 CXL裝置。
根據本揭露內容的實施例,提供一種方法,包含:藉由第一記憶體裝置接收服務品質需求;以及回應於服務品質需求而選擇性地啟用第一特徵,其中第一記憶體裝置包含:快取同調控制器;揮發性記憶體控制器;揮發性記憶體;非揮發性記憶體控制器;以及非揮發性記憶體。
在一些實施例中,系統更包含:藉由第一記憶體裝置將揮發性記憶體的一部分分配為記憶體管理單元快取;以及藉由第一記憶體裝置,基於虛擬位址在記憶體管理單元快取中執行實體位址的查找。
在一些實施例中,執行查找包含:基於虛擬位址的第一部分在記憶體管理單元快取的第一頁表中查找基礎位址;基於基礎位址判定記憶體管理單元快取的第二頁表的起始位址;以及基於虛擬位址的第二部分在第二頁表中查找實體位址。
在一些實施例中,系統更包含:接收:第一IO請求,所述第一IO請求包含指示第一IO請求發佈時間的第一時間標記,及第二IO請求,所述第二IO請求包含指示第二IO請求發佈時間的時間標記;且執行:第二IO請求及第一IO請求,其中第二IO請求的時間標記小於第一IO請求的第一時間標記。
在一些實施例中,第一IO請求更包含指示由交換器處理第一IO請求的時間的第二時間標記。根據本揭露內容的實施例,提供一種系統,包含:第一記憶體裝置,所述第一記憶體裝置包含用於資料儲存的構件及快取同調主機介面,所述第一記憶體裝置組態成:將用於資料儲存的構件的一部分分配為記憶體管理單元快取;且基於虛擬位址在記憶體管理單元快取中執行實體位址的查找。
以下結合隨附圖式闡述的實施方式意欲為根據本揭露內容提供的同調記憶體系統的例示性實施例的描述,且並不意欲表示本發明可構造或採用的唯一形成。實施方式結合所示出實施例闡述本揭露內容的特徵。然而,應理解,可藉由亦意欲涵蓋於本揭露內容的範疇內的不同實施例實現相同或等效功能及結構。如本文中在別處所指示,相似元件編號意欲指示相似元件或特徵。
在具有超大規模工作量需求的計算系統中,工作量可能表現出記憶體及IO延遲及頻寬需求的多樣性,且可限制計算資源及記憶體資源。在使用計算高速鏈路(Compute Express Link;CXL)連接的系統中,CXL可啟用新類型的記憶體延伸及同調加速器。然而,分散式大型CXL記憶體系統可能面臨某些挑戰,包含例如潛在地長啟動時間、相對較高轉譯後備緩衝器(translation lookaside buffer;TLB)未命中率以及可不具有較高可靠性及可未經次序保持的連接。
在一些實施例中,此類挑戰可藉由合併在類型3記憶體裝置中的某些特徵來解決或緩解,包含(i)用以輔助主機的轉譯後備緩衝器(TLB)的效能的記憶體管理單元(memory management unit;MMU)快取;(ii)用於操縱讀取操作及寫入操作的次序及以不同於其發佈次序的次序到達記憶體裝置的可能性的特徵;(iii)用於滿足服務品質(quality of service;QoS)需求的特徵;(iv)包含在虛擬記憶體位址的連續集合中與多個記憶體裝置交錯的實體記憶體位址的具有快取同調協定的交錯,諸如CXL;(v)錯誤校正碼(error correction code;ECC)的使用;(vi)對於整合化及資料加密(integrity and data encryption;IDE)的支援;以及(vii)多邏輯裝置(multiple logical device;MLD)支援。
周邊組件互連高速(Peripheral Component Interconnect Express;PCIe)可以指可具有相對較高及可變延遲的電腦介面,所述延遲可限制所述電腦介面與記憶體進行連接的有用性。CXL為經由PCIe 5.0進行通信的開放工業標準,所述PCIe 5.0可提供固定的、相對較短的封包大小,且因此可能夠提供相對較高的頻寬及相對較低的固定延遲。因此,CXL可能夠支援快取同調性且CXL可較適用於與記憶體進行連接。CXL可進一步用於提供主機與伺服器中的加速器、記憶體裝置以及網路介面電路(或「網路介面控制器」或「網路介面卡(network interface card;NIC)」)之間的連接性。
諸如CXL的快取同調協定亦可用於例如標量、向量以及緩衝記憶體系統中的異質處理。CXL可用於利用通道、重計時器、系統的PHY層、介面的邏輯態樣以及自PCIe 5.0的協定來提供快取同調介面。CXL異動層可包含三個多工子協定,所述三個多工子協定同時在單一鏈路上執行且可稱為CXL.io、CXL.cache以及CXL.memory。CXL.io可包含I/O語義,此可與PCIe類似。CXL.cache可包含快取語義,且CXL.memory可包含記憶體語義;快取語義及記憶體語義兩者皆可為視情況存在的。與PCIe類似,CXL可支援:(i)可分割的x16、x8以及x4的固有寬度;(ii)32千兆傳輸/秒(GT/s)的資料速率,可降級為8千兆傳輸/秒及16千兆傳輸/秒,128b/130b;(iii)300瓦(在x16連接器中為75瓦);以及(iv)即插即用。為了支援即插即用,PCIe或CXL裝置鏈路均可在第1代(Gen1)中的PCIe中開始訓練、協商CXL、完成第1代至第5代訓練且隨後開始CXL異動。
在一些實施例中,在包含藉由網路連接在一起的多個伺服器的系統中,對記憶體的聚合或「集區」(例如,一定數量的記憶體,包含連接在一起的多個記憶體胞元)使用CXL連接可提供各種優點,如下文進一步詳細論述。舉例而言,具有除為CXL封包提供封包交換功能之外的其他能力的CXL交換器(在本文中稱為「增強能力的CXL交換器」)可用於將記憶體的聚合連接至一或多個中央處理單元(central processing unit;CPU)(或「中央處理電路」)及一或多個網路介面電路(其可具有增強能力)。此組態可使得(i)記憶體的聚合有可能包含具有不同特性的各種類型的記憶體;(ii)增強能力CXL交換器有可能虛擬化記憶體的聚合,且將不同特性(例如,存取頻率)的資料儲存於適當類型的記憶體中;(iii)增強能力CXL交換器有可能支援遠端直接記憶體存取(remote direct memory access;RDMA)以使得可在極少涉及或不涉及伺服器的處理電路的情況下執行RDMA。如本文中所使用,「虛擬化」記憶體意謂在處理電路與記憶體之間執行記憶體位址轉譯。
CXL交換器可(i)經由單階交換支援記憶體及加速器解聚,(ii)使得資源能夠在域之間離線及在線,此可基於需求實現跨域的時間多工,以及(iii)支援下游埠的虛擬化。CXL可用於實施聚合記憶體,此可實現一對多及多對一的交換(例如,其可能夠(i)將多個根埠連接至一個端點,(ii)將一個根埠連接至多個端點,或(iii)將多個根埠連接至多個端點),其中在一些實施例中,聚合裝置被分割為各自具有各別LD-ID(邏輯裝置識別符)的多個邏輯裝置。在此實施例中,實體裝置可分割為多個邏輯裝置,每一邏輯裝置對於各別啟動器是可見的。裝置可具有一個實體功能(physical function;PF)及多個(例如,16個)隔離邏輯裝置。在一些實施例中,可限制邏輯裝置的數目(例如,分區的數目)(例如,至多16個),且亦可存在一個控制分區(其可為用於控制裝置的實體功能)。
參考圖1A,在一些實施例中,伺服器系統包含各自連接至ToR伺服器鏈接交換器112的多個伺服器105,所述ToR伺服器鏈接交換器112可為具有PCIe能力的PCIe 5.0 CXL交換器,如所示出。每一伺服器包含一或多個處理電路115,所述處理電路115各自連接至(i)系統記憶體120(例如雙資料速率(版本4)(Double Data Rate version 4;DDR4)記憶體或任何其他適當的記憶體);(ii)一或多個網路介面電路125;以及(iii)一或多個CXL記憶體裝置135。處理電路115中的每一者可為儲存程式處理電路,例如中央處理單元(CPU)(例如,x86 CPU)、圖形處理單元(graphics processing unit;GPU)或ARM處理器。在一些實施例中,網路介面電路125可包埋於記憶體裝置135中的一者中(例如在與其相同的半導體晶片上或在與其相同的模組中)或網路介面電路125可自記憶體裝置135分別封裝。儘管一些實施例在本文中描述為使用CXL協定(及對應組件,諸如CXL控制器),但本揭露內容不限於CXL,且在其他實施例中,使用不同快取同調協定及對應組件,諸如用於此類協定的快取同調控制器。
如本文中所使用,「記憶體裝置」為包含一或多個記憶體晶粒的電路(例如包含印製電路板及連接至其的組件的電路,或包含印製電路板的殼體),每一記憶體晶粒包含多個記憶體胞元。每一記憶體晶粒或記憶體晶粒群組的集合中的每一者可在焊接至記憶體裝置的印製電路板(或經由連接器連接至記憶體裝置的印製電路板)的封裝(例如環氧模造物(epoxy mold compound;EMC)封裝)中。記憶體裝置135中的每一者可具有CXL介面且可包含控制器137(例如,FPGA、ASIC、處理器及/或類似者)以用於在CXL封包與記憶體晶粒的記憶體介面之間進行轉譯,例如,適用於記憶體裝置135中的記憶體的記憶體技術的信號。如本文中所使用,記憶體晶粒的「記憶體介面」為記憶體晶粒技術固有的介面,例如,在DRAM的情況下,例如記憶體介面可為字線及位元線。記憶體裝置亦可包含可提供增強能力的控制器137,如下文更詳細地描述。每一記憶體裝置135的控制器137可經由快取同調介面(例如,經由CXL介面)連接至處理電路115。控制器137亦可繞過處理電路115而促進不同伺服器105之間的資料傳輸(例如,RDMA請求)。ToR乙太網路交換器110及網路介面電路125可包含RDMA介面以促進不同伺服器上的CXL記憶體裝置之間的RDMA請求(例如,ToR乙太網路交換器110及網路介面電路125可提供經由基於融合乙太網路的RDMA(RDMA over Converged Ethernet;RoCE)、無線頻寬(Infiniband)以及iWARP封包的硬體卸載或硬體加速)。
伺服器鏈接交換器112可包含FPGA或ASIC,且可提供優於乙太網路交換器的效能的效能(在輸送量及延遲方面)。伺服器105中的每一者可包含多個記憶體裝置135,其經由增強能力CXL交換器130及經由多個PCIe連接器連接至伺服器鏈接交換器112。伺服器105中的每一者亦可包含一或多個處理電路115及系統記憶體120,如所繪示。伺服器鏈接交換器112可充當主控裝置,且增強能力CXL交換器130中的每一者可充當從動裝置,如下文進一步詳細論述。
圖1B繪示多個記憶體伺服器150中的每一者連接至ToR伺服器鏈接交換器112的實施例,所述ToR伺服器鏈接交換器112可為PCIe 5.0 CXL交換器,如所示出。如在圖1A的實施例中,伺服器鏈接交換器112可包含FPGA或ASIC,且可提供優於乙太網路交換器的效能的效能(在輸送量及延遲方面)。如在圖1A的實施例中,記憶體伺服器150可包含經由多個PCIe連接器連接至伺服器鏈接交換器112的多個記憶體裝置135。在圖1B的實施例中,可不存在處理電路115及系統記憶體120,且記憶體伺服器150的主要目的可為提供記憶體以供具有計算資源的其他伺服器105使用。
圖2A繪示在一些實施例中的CXL記憶體裝置205的微架構(例如CXL記憶體裝置的內部架構)。記憶體裝置205包含(i)非揮發性記憶體(例如固態驅動器(solid state drive;SSD))210;(ii)連接至(且組態成介接至且控制)非揮發性記憶體210的非揮發性記憶體控制器215;(iii)揮發性記憶體(例如雙資料速率4(DDR4)記憶體)220;(iv)連接至(且組態成介接至且控制)揮發性記憶體220的揮發性記憶體控制器225;以及(v)CXL控制器230。如上所述,在一些實施例中,使用不同於CXL的快取同調協定且使用適當的快取同調控制器代替CXL控制器230。如圖2A中所繪示,記憶體裝置205可經由CXL介面(例如經由CXL控制器230)連接至外部根複合體235,其繼而可連接至DRAM記憶體控制器240及揮發性記憶體(例如DDR4記憶體)245。在操作中,如圖2B中所示出,在260處,記憶體裝置205可例如自主機接收服務品質需求,且在265處,可回應於服務品質需求而選擇性地啟用第一特徵。所啟用特徵可為以下確認的特徵中的一者。
隨著可供主機使用的記憶體的量增加,可產生某些問題,例如記憶體管理難題。舉例而言,一些中央處理單元(CPU)平台可具有在1兆位元組(terabyte;TB)與10兆位元組之間的主記憶體(例如儲存類記憶體(storage class memory;SCM)、CXL記憶體或較低延遲NAND記憶體)。在此類系統中,在某種程度上因為主機CPU在啟動期間可核對及初始化記憶體的頁,所以可增加操作系統(operating system;OS)的啟動時間。核心元資料可佔據多個十億位元組(gigabyte;GB)且可妨礙即使較小的快速記憶體,且記憶體回收及重組可造成大量額外負荷。
在一些實施例中,為解決此類問題,記憶體裝置可包含MMU快取。在先前技術系統中,可在CPU內部佈建轉譯後備緩衝器(TLB)以減小MMU存取的數目。TLB未命中可使得MMU基於虛擬位址藉由存取可儲存在主機DRAM中的頁表而執行實體位址查找。在一些實施例中,包含MMU快取(如上所述)的記憶體裝置可包含硬體(hardware;H/W)結構以快取頁表的多個層級。MMU快取可自頁表層次的上部層級維持當前的頁表項(page table entry;PTE)。此等項可儲存在MMU中且基於存取地點的(例如存取的實體記憶體位址的時空存取圖案)。在此類系統中,MMU快取命中可將存取的數目減小至低於五個。
如圖2C中所示出,在270處,記憶體裝置可將揮發性記憶體的部分分配為記憶體管理單元快取,且在275處,基於虛擬位址在記憶體管理單元快取中執行查找。MMU快取可包含硬體輔助轉譯層以在不同粒度下(例如4千位元組(kilobyte;KB)頁或大型頁)管理頁且減少隨機存取。在一些實施例中,在(CXL)記憶體裝置的情況下,MMU快取再次使用非均一記憶體存取(nonuniform memory access;NUMA)感測排程策略。連接至記憶體裝置或含有記憶體裝置的主機可請求記憶體裝置在MMU快取中執行實體位址查找。如圖2D中所示出,藉由記憶體裝置在MMU快取中執行查找可包含:(i)在280處,基於虛擬位址的第一部分在記憶體管理單元快取的第一頁表中查找基礎位址;(ii)在285處,基於基礎位址判定記憶體管理單元快取的第二頁表的起始位址;以及(iii)在290處,基於虛擬位址的第二部分查找在第二頁表中的實體位址。
如上所述,在一些實施例中,記憶體裝置包含用於操縱讀取操作及寫入操作的次序的特徵。此類記憶體裝置可解決藉由不可靠媒體通信的遠端解聚類型3系統(例如CXL類型3系統為用於具有CXL.io及CXL.mem的主機記憶體的記憶體擴展器)以不可預知的方式交付或丟失寫入。舉例而言,CXL異動可無序(out of order;OOO)到達,且所接收的異動可包含再試異動。在一些實施例中,記憶體裝置(i)保持具有時間標記的大型(時間)窗,以及(ii)排程及計分板傳入請求,其中的每一者可為具有在網路中的各種點處(例如在主機發佈讀取請求或寫入請求處及在交換器轉送此類請求處)應用的時間標記的標記,這是因為請求經由網路傳輸。記憶體裝置可維持用於所有突出異動及所述對應主機狀態的計分板。用於此目的(例如針對每一操作)的計分板可包含時間戳、位址以及任何相關性。記憶體裝置可使用此等時間標記以判定及解析在裝置側上的次序。在將寫入提交至記憶體裝置之前,記憶體裝置可在CXL上的寫入上發送提前完成。此行為可減小記憶體裝置的感知延遲。在發送提前完成之後,裝置可對任何後續讀段及寫入負責;裝置可管理用於後續讀取操作及寫入操作的內部次序且管理故障。計分板可用以追蹤必需狀態以提供此功能(例如在計分板中的額外欄位可指示操作是否已提交至記憶體裝置)。記憶體裝置可管理用於後續讀取及寫入的內部次序及管理故障。
為執行故障處理,記憶體裝置可容許不涉及待處理寫入操作的讀取操作繼續進行。用於寫後讀出(read-after-write;RAW)操作,記憶體裝置可自計分板緩衝器伺服所請求的資料。用於讀後寫入(write-after-read;WAR)操作,記憶體裝置可確保任何遲延寫入操作能夠繞過更早的讀取操作。用於寫後寫入(write-after-write;WAW)操作,記憶體裝置可確保更早的寫入保持在緩衝器中直至時間限度期滿。若記憶體裝置為類型2 CXL裝置,則可在提交亂序線路之前解析與在裝置主機(device-to-host;D2H)通道中相同的快取行的相關性。圖3A及圖3B為分別用於讀取操作及用於寫入操作的時序圖。在圖3A中,將讀取請求自主機305發送至記憶體裝置205的記憶體控制器310(例如經由CXL控制器)。隨後對裝置記憶體315執行讀取操作,且將資料傳回至主機305。在圖3B中,將寫入請求自主機305發送至記憶體控制器310。隨後對裝置記憶體315執行寫入操作,且將命令完成傳回至主機305。
如上所述,在一些實施例中,記憶體裝置包含用於服務品質(QoS)支援的特徵。記憶體裝置可使用CXL QoS遙測特徵以追蹤及報告媒體延遲且藉由利用多個媒體類型管理在記憶體裝置內的尾端延遲。記憶體裝置可支援記憶體利用率的追蹤,且負荷值可針對至多兩種記憶體類型(其可稱為Type0記憶體或Type1記憶體)作為異步虛擬線傳遞至主機。映射類型可匹配底層微架構組態,例如Type0記憶體可為記憶類(例如揮發性記憶體,諸如DRAM)且Type1記憶體可為儲存類(例如非揮發性記憶體或持續記憶體)。在一些實施例中,記憶體裝置支援具有用於每一分區的單獨編碼的MLD記憶體裝置。
在一些實施例中,異質類型3記憶體裝置可存在在系統中。CXL可考慮到多個QoS等級。當前CXL規範並不提供用於提供在裝置QoS類之間的頻寬管理的控制;因此可實施用於在DRAM與較低延遲SSD之間具有單獨的QoS佇列的「操作竊用」方法。舉例而言,在具有多個佇列的系統中,操作竊用可為機會性採取操作(例如藉由一個資料處理實體自另一資料處理實體的佇列)。資料處理實體可為例如處理電路或軟體處理、任務或線緒。兩個媒體類型可暴露於主機,且主機可將異動提交至任一媒體。若預期持續請求較低延遲SSD,則此特徵的可用性可受限制。
如上所述,在一些實施例中,記憶體裝置包含用於MLD支援的特徵。MLD可為用以將裝置分區至每一區塊提供不同特徵的多個區塊(例如安全性、ECC、QoS、可操縱性或可用性)。此類記憶體裝置可在次主控裝置(subordinate-to-master;S2M)通道中使用智慧以確保在重度節流下優先排序關鍵異動,為CXL MLD裝置維持單獨佇列(每一暫存器追蹤一個裝置的利用率),以及當一個裝置的負荷不均勻時混洗及遷移請求。在一些實施例中,使用暫存器以追蹤在可組態的時間粒度處的利用率。記憶體裝置可使用CXL QoS應用程式設計介面(application programming interface;API)將訊息發送至主機,其中訊息包含例如「輕度」、「重度負荷」或「適中」。記憶體裝置中的邏輯可核對主機是否已節流;否則其可在優先讀取操作時緩衝對暫存區域的請求。在記憶體裝置的上游連接包含CXL交換器的系統中,記憶體裝置可含有支援LD-ID及將裝置隔離至分區的邏輯。
如上所述,在一些實施例中,記憶體裝置包含用於CXL交錯的特徵。CXL交錯規範辨識設定包含方式、粒度以及大小中的每一者的交錯;CXL交錯規範亦允許多層交錯。可藉由記憶體裝置利用相同模組上的不同媒體類型採用技術特定交錯(例如DRAM中的組/排列層級交錯或SSD中的基於晶粒、區塊或平面的交錯)。可藉由記憶體裝置採用算法以利用隨晶片大小、通道數目以及記憶體控制器位址映射而變的交錯。
在一些實施例中,記憶體裝置實施可程式化交錯。可在CXL記憶體裝置解碼器中實施主機可程式化交錯能力。可實施多個方法,且主機可使用適當的暫存器例如使用CXL.io暫存器程式化記憶體裝置。在一些實施例中,記憶體裝置程式化亦可在運轉時間更新,且裝置可負責處理突出異動。可採用不同類型的交錯橫越記憶體範圍;在此實施例中,記憶體裝置可查找記憶體範圍,且主機管理裝置記憶體(Host-managed Device Memory;HDM)解碼器裝置可相應地通路。
在一些實施例中,記憶體裝置可管理CXL熱加功能及意外移除功能。在每一記憶體裝置上的通告區塊可使用自擬檔案系統(諸如Linux作業系統)的提示及自CXL裝置驅動程式的提示知曉整個系統組態。在揮發性媒體的情況下,藉由識別新佈局,記憶體裝置可能調節在不具有主機支援的記憶體裝置(多層交錯)下面的(邏輯)裝置的交錯粒度。記憶體裝置可追蹤此類變化且忽略送對舊媒體的請求。
如上所述,在一些實施例中,記憶體裝置包含用於錯誤校正碼(ECC)的特徵。在此實施例中,裝置可使用操作系統執行可校正錯誤及座標的廣泛登入以收回頁(例如當多個可校正錯誤超出臨限值時)。主控裝置模組可控制動態隨機存取記憶體(dynamic random access memory;DRAM)、靜態隨機存取記憶體(static random access memory;SRAM)、計算(例如可存在在記憶體裝置中的任何計算功能)及較低延遲SSD上的ECC。對於CXL堆疊,記憶體裝置可例如實施鏈接層、校驗和、CXL微片層級單一錯誤校正及雙倍錯誤偵測(single-error correction and double error detection;SECDED)以及4千位元組頁層級博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem;BCH)編碼或任何其他適當的錯誤校正碼。記憶體裝置邏輯可使用此類特徵的組合校正錯誤。如本文中所使用,「微片」可以指鏈路層級流動控制單元或數位。
記憶體裝置可使用在CXL.cache或mem回應中的CXL元場發信號;可產生及管理每PCIe功能層級事件記錄。對於每一可校正錯誤,裝置可經由任何合適的協定,諸如在周邊組件高速互連(PCIe)中指定的訊息傳信中斷-X(Message Signaled Interrupts-X;MSI-X)協定及CXL發信號以模仿周邊組件互連(Peripheral Component Interconnect;PCI)的實體中斷線路。記憶體裝置可使用CXL病毒及有毒介面以報告不可校正錯誤。當存在多個不可校正錯誤時,裝置可鍵入病毒模式且啟用主機以將所有資料處理為可疑。可替代地,有毒位元幫助主機鑑別在特定記憶體回應於中的不可校正錯誤。
如上所述,在一些實施例中,記憶體裝置包含用於整合化及資料加密(IDE)的支援。因為非揮發性記憶體在主記憶體功能域中支援,所以記憶體裝置可使用強密碼編譯算法。在一些實施例中,針對安全性,記憶體裝置在記憶體裝置內部實施安全散列演算法(Secure Hash Algorithms;SHA)密碼或高級加密標準(Advanced Encryption Standard;AES)密碼。舉例而言,記憶體裝置可(i)接收未加密資料、將資料加密且在非揮發性記憶體中儲存加密資料;或可(ii)自非揮發性記憶體讀取加密資料,將資料解密且經由CXL控制器傳輸解密資料。主機可在運轉時間使用CXL.io命令暫存器選擇算法或組態裝置。可在CXL端點計數的啟動時間使用CXL.io更換私用密鑰。記憶體裝置可產生多個信任區域;此類多個信任區域可提供在信任與效能之間的各種權衡。信任區域可為在採用特定加密類型且僅准許某些經授權主機或發起者存取的記憶體中的區。記憶體裝置亦可控制內部拌碼的不同模式及摻和每信任區域位址。
在一些實施例中,如圖4A至圖4D中所示出,對於一些實例,在單一CXL裝置中並列不同記憶體或儲存技術的各種途徑。圖4A至圖4D繪示若干記憶體裝置微架構。圖4A繪示僅包含雙資料速率5(double data rate 5;DDR5)或雙資料速率4 DDR4記憶體(圖4A)或低功率雙資料速率5(low power double data rate 5;LPDDR5)DRAM記憶體(圖4B)的微架構。此類記憶體裝置包含DRAM記憶體及記憶體控制器(memory controller;MC)。此實施例可專注於解碼及交錯。圖4C及圖4D繪示包含DDR記憶體及較低延遲NAND記憶體的微架構。此實施例可具有至兩個媒體的分離介面(如圖4D中所繪示,具有至DDR記憶體的8通道CXL介面及至較低延遲NAND記憶體的8通道PCIe介面)或至兩個媒體的專用介面(圖4C)。
如本文中所使用,某物「的一部分」意謂所述物「中的至少一些」,且因此可意謂少於所述物的全部或所有所述物。同樣,作為特殊情況,物「的一部分」包含整個物,亦即,整個物為所述物的一部分的實例。如本文中所使用,當第二數量在第一數量X的「Y內」時,其意謂第二數量至少為X-Y且第二數量至多為X+Y。如本文中所使用,當第二數目在第一數目的「Y%內」時,其意謂第二數目為第一數目的至少(1-Y/100)倍且第二數目為第一數目的至多(1+Y/100)倍。如本文中所使用,術語「或」應解釋為「及/或」,使得例如「A或B」意謂「A」或「B」或「A及B」中的任一者。
僅包含本揭露內容章節的背景章節中所提供的背景以設定上下文,且不承認此章節的內容為先前技術。所描述的組件中的任一者或組件的任何組合(例如,在本文中所包含的任何系統圖式中)可用於進行本文中所包含的任何流程圖的操作中的一或多者。另外,(i)操作為實例操作,且可涉及未明確覆蓋的各種額外步驟,且(ii)操作的時間次序可改變。
術語「處理電路」在本文中用於意指用以處理資料或數位信號的硬體、韌體以及軟體的任何組合。處理電路硬體可包含例如特殊應用積體電路(application specific integrated circuit;ASIC)、通用或專用中央處理單元(CPU)、數位信號處理器(digital signal processor;DSP)、圖形處理單元(GPU)以及諸如場可程式化閘陣列(field programmable gate array;FPGA)的可程式化邏輯裝置。在處理電路中,如本文中所使用,藉由組態(亦即,硬佈線)成執行函數的硬體或藉由組態成執行儲存於非暫時性儲存媒體中的指令的更通用硬體諸如CPU來執行每一功能。處理電路可經製造於單一印刷電路板(printed circuit board;PCB)上或分佈於若干互連PCB上。處理電路可含有其他處理電路;例如,處理電路可包含在PCB上互連的兩個處理電路,FPGA及CPU。
如本文中所使用,當將方法(例如,調整)或第一數量(例如,第一變量)稱為「基於」第二數量(例如,第二變量)時,其意謂第二數量為方法的輸入或影響第一數量,例如,第二數量可為計算第一數量的函數的輸入(例如,唯一輸入,或若干輸入中的一者),或第一數量可等於第二數量,或第一數量可與第二數量相同(例如,儲存於記憶體中的相同方位處)。
應理解,儘管在本文中可使用術語「第一」、「第二」、「第三」等來描述各種元件、組件、區、層及/或區段,但此等元件、組件、區、層及/或區段不應受此等術語限制。此等術語僅用以將一個元件、組件、區域、層或區段與另一元件、組件、區域、層或區段區別。因此,本文中所論述的第一元件、組件、區、層或區段可稱為第二元件、組件、區、層或區段,而不脫離本發明概念的精神及範疇。
為易於描述,本文中可使用諸如「在……之下」、「在……下方」、「下部」、「在……下」、「在……上方」、「上部」以及類似者的空間相對術語來描述如在圖式中所說明的一個元件或特徵與另一元件或特徵的關係。應理解,此等空間相對術語意欲涵蓋除圖中所描繪的定向之外的在使用中或在操作中的裝置的不同定向。舉例而言,若圖式中的裝置翻轉,則描述為「在」其他元件或特徵「下方」或「以下」或「下面」的元件將接著被定向為「在」其他元件或特徵「上方」。因此,實例術語「下方」及「下面」可涵蓋上方以及下方的定向兩者。裝置可另外定向(旋轉90度或處於其他定向)且本文中所使用的空間相對描述詞可同樣相應地進行解譯。
本文中使用的術語僅出於描述特定實施例的目的,且並不意欲限制本發明概念。如本文中所使用,術語「實質上」、「約」以及類似術語用作表示近似的術語且不用作表示程度的術語,且意欲考慮所屬技術領域中具有通常知識者將辨識到的量測值或計算值中的固有偏差。
如本文中所使用,除非上下文另外明確地指示,否則單數形式「一(a及an)」意欲亦包含複數形式。應進一步理解,術語「包括(comprises)」及/或「包括(comprising)」在用於本說明書中時指定所陳述特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組的存在或添加。如本文中所使用,術語「及/或」包含相關聯所列項目中的一或多者中的任何及所有組合。當在元件的清單之前時,諸如「……中的至少一者」的表達修飾元件的整個清單,且並不修飾清單的個別元件。另外,當描述本發明概念的實施例時「可」的使用是指「本揭露內容的一或多個實施例」。此外,術語「例示性」意欲指代實例或說明。如本文中所使用,可認為術語「使用(use、using及used)」分別與術語「利用(utilize、utilizing及utilized)」同義。
應理解,當將元件或層稱為「在」另一元件或層「上」、「連接至」另一元件或層、「耦接至」另一元件或層或「與」另一元件或層「相鄰」時,所述元件或層可直接在所述另一元件或層上、連接至所述另一元件或層、耦接至所述另一元件或層或與所述另一元件或層相鄰,或可能存在一或多個介入元件或層。相比之下,當元件或層稱作「直接在」另一元件或層「上」、「直接連接至」另一元件或層、「直接耦接至」另一元件或層或「緊鄰於」另一元件或層時,不存在介入元件或介入層。
本文中所列舉之任何數值範圍意欲包含所列舉之範圍內所歸入的具有相同數值精確度的所有子範圍。舉例而言,「1.0至10.0」或「1.0與10.0之間」的範圍意欲包含所列舉的最小值1.0與所列舉的最大值10.0之間(且包含所列舉的最小值1.0及所列舉的最大值10.0)的所有子範圍,亦即,具有等於或大於1.0的最小值及等於或小於10.0的最大值,諸如(例如)2.4至7.6。本文中所列舉的任何最大數值限制意欲包含經包含於其中的所有較低數值限制,且在本說明書中所列舉的任何最小數值限制意欲包含經包含於其中的所有較高數值限制。如本文中所使用,「用於資料儲存器的構件」意謂揮發性記憶體或非揮發性記憶體或其組合。
儘管已在本文中具體描述及示出同調記憶體系統的例示性實施例,但許多修改及變化將對所屬技術領域中具有通常知識者顯而易見。因此,應理解,可除如在本文中具體描述之外而體現根據本揭露內容的原理來建構的同調記憶體系統。本發明亦在以下申請專利範圍及其等效物中定義。
105:伺服器
110:ToR乙太網路交換器
112:伺服器鏈接交換器
115:處理電路
120:系統記憶體
125:網路介面電路
130:增強能力計算高速鏈路交換器
135,205:記憶體裝置
137:控制器
150,310:記憶體伺服器
210:非揮發性記憶體
215:非揮發性記憶體控制器
220,245:揮發性記憶體
225:揮發性記憶體控制器
230:計算高速鏈路控制器
235:根複合體
240:DRAM記憶體控制器
260,265,270,275,280,285,290:操作
305:主機
315:裝置記憶體
將參看說明書、申請專利範圍以及隨附圖式來瞭解及理解本揭露內容的此等及其他特徵及優點,在隨附圖式中:
圖1A為根據本揭露內容的實施例的具有多個伺服器及多個記憶體裝置的計算系統的方塊圖。
圖1B為根據本揭露內容的實施例的各自包含多個記憶體裝置的多個記憶體伺服器的方塊圖。
圖2A為根據本揭露內容的實施例的繪示連接至外部組件的記憶體裝置的方塊圖。
圖2B為根據本揭露內容的實施例的方法的流程圖。
圖2C為根據本揭露內容的實施例的設定記憶體管理單元快取的方法的流程圖。
圖2D為根據本揭露內容的實施例的執行查找的方法的流程圖。
圖3A為根據本揭露內容的實施例的讀取操作的時序圖。
圖3B為根據本揭露內容的實施例的寫入操作的時序圖。
圖4A為根據本揭露內容的實施例的第一記憶體裝置微架構的方塊圖。
圖4B為根據本揭露內容的實施例的第二記憶體裝置微架構的方塊圖。
圖4C為根據本揭露內容的實施例的第三記憶體裝置微架構的方塊圖。
圖4D為根據本揭露內容的實施例的第四記憶體裝置微架構的方塊圖。
附圖僅為非限制性實施例,且申請專利範圍及本發明的範疇擴展超出在附圖中繪示的特徵。
105:伺服器
112:伺服器鏈接交換器
115:處理電路
120:系統記憶體
125:網路介面電路
130:增強能力計算高速鏈路交換器
135:記憶體裝置
137:控制器
Claims (20)
- 一種同調記憶體系統,包括: 第一記憶體裝置,所述第一記憶體裝置包括: 快取同調控制器; 揮發性記憶體控制器; 揮發性記憶體; 非揮發性記憶體控制器;以及 非揮發性記憶體, 其中所述第一記憶體裝置組態成: 接收服務品質需求;以及 回應於所述服務品質需求而選擇性地啟用第一特徵。
- 如請求項1所述的同調記憶體系統,其中: 所述第一特徵包括提供記憶體管理單元快取;以及 所述第一記憶體裝置組態成: 將所述揮發性記憶體的一部分分配為所述記憶體管理單元快取,且 基於虛擬位址在所述記憶體管理單元快取中執行實體位址的實體位址查找。
- 如請求項2所述的同調記憶體系統,其中執行所述實體位址查找包括: 基於所述虛擬位址的第一部分在所述記憶體管理單元快取的第一頁表中查找基礎位址; 基於所述基礎位址判定所述記憶體管理單元快取的第二頁表的起始位址;以及 基於所述虛擬位址的第二部分在所述第二頁表中查找所述實體位址。
- 如請求項2所述的同調記憶體系統,更包括主機,其中: 所述主機包括: 記憶體管理單元,以及 轉譯後備緩衝器;以及 所述主機組態成自所述第一記憶體裝置請求所述實體位址查找。
- 如請求項1所述的同調記憶體系統,其中所述第一記憶體裝置進一步組態成: 接收: 第一IO請求,所述第一IO請求包括指示所述第一IO請求的發佈時間的第一時間標記,以及 第二IO請求,所述第二IO請求包括指示所述第二IO請求的發佈時間的時間標記;以及 執行: 所述第二IO請求,以及 所述第一IO請求, 其中所述第二IO請求的所述時間標記小於所述第一IO請求的所述第一時間標記。
- 如請求項5所述的同調記憶體系統,其中所述第一IO請求更包括指示由交換器處理所述第一IO請求的時間的第二時間標記。
- 如請求項1所述的同調記憶體系統,其中: 所述第一記憶體裝置包括第一媒體類型;以及 所述第一記憶體裝置進一步組態成經由所述快取同調控制器報告所述揮發性記憶體的負荷值。
- 如請求項7所述的同調記憶體系統,其中: 所述揮發性記憶體映射至第一邏輯裝置, 所述非揮發性記憶體映射至第二邏輯裝置,且 所述第一記憶體裝置進一步組態成經由所述快取同調控制器報告所述非揮發性記憶體的負荷值。
- 如請求項1所述的同調記憶體系統,更包括第二記憶體裝置,其中: 所述第一記憶體裝置組態成儲存: 具有第一實體位址的資料,以及 具有第二實體位址的資料;以及 所述第二記憶體裝置組態成儲存: 具有第三實體位址的資料, 所述第三實體位址大於所述第一實體位址且小於所述第二實體位址。
- 如請求項1所述的同調記憶體系統,其中所述第一記憶體裝置進一步組態成: 接收讀取請求; 自所述第一記憶體裝置的第一頁讀取原始資料; 使用錯誤校正碼解碼所述原始資料; 判定校正的錯誤的數目超出臨限值;以及 經由所述快取同調控制器發送請求退出所述第一頁的報告。
- 如請求項1所述的同調記憶體系統,其中所述第一記憶體裝置進一步組態成: 接收包括未加密資料的寫入請求; 加密所述未加密資料以形成加密資料;以及 將所述加密資料儲存在所述非揮發性記憶體中。
- 如請求項1所述的同調記憶體系統,其中所述第一記憶體裝置進一步組態成: 接收讀取請求; 自所述非揮發性記憶體讀取加密資料; 解密所述加密資料以形成未加密資料;以及 經由所述快取同調控制器傳輸所述未加密資料。
- 如請求項1所述的同調記憶體系統,其中所述快取同調控制器為計算高速鏈路(CXL)控制器。
- 如請求項12所述的同調記憶體系統,其中所述第一記憶體裝置為類型3 CXL裝置。
- 一種同調記憶體系統的操作方法,包括: 藉由第一記憶體裝置接收服務品質需求;以及 回應於所述服務品質需求而選擇性地啟用第一特徵, 其中所述第一記憶體裝置包括: 快取同調控制器; 揮發性記憶體控制器; 揮發性記憶體; 非揮發性記憶體控制器;以及 非揮發性記憶體。
- 如請求項15所述的操作方法,更包括: 藉由所述第一記憶體裝置將所述揮發性記憶體的一部分分配為記憶體管理單元快取;以及 藉由所述第一記憶體裝置,基於虛擬位址在所述記憶體管理單元快取中執行實體位址的查找。
- 如請求項16所述的操作方法,其中執行所述查找包括: 基於所述虛擬位址的第一部分在所述記憶體管理單元快取的第一頁表中查找基礎位址; 基於所述基礎位址判定所述記憶體管理單元快取的第二頁表的起始位址;以及 基於所述虛擬位址的第二部分在所述第二頁表中查找所述實體位址。
- 如請求項15所述的操作方法,更包括: 接收: 第一IO請求,所述第一IO請求包括指示所述第一IO請求的發佈時間的第一時間標記,以及 第二IO請求,所述第二IO請求包括指示所述第二IO請求的發佈時間的時間標記;且 執行: 所述第二IO請求,以及 所述第一IO請求, 其中所述第二IO請求的所述時間標記小於所述第一IO請求的所述第一時間標記。
- 如請求項18所述的操作方法,其中所述第一IO請求更包括指示由交換器處理所述第一IO請求的時間的第二時間標記。
- 一種同調記憶體系統,包括: 第一記憶體裝置,所述第一記憶體裝置包括: 用於資料儲存的構件,以及 快取同調主機介面, 所述第一記憶體裝置組態成: 將用於資料儲存的所述構件的一部分分配為記憶體管理單元快取;以及 基於虛擬位址在所述記憶體管理單元快取中執行實體位址的查找。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163185842P | 2021-05-07 | 2021-05-07 | |
US63/185,842 | 2021-05-07 | ||
US17/372,309 | 2021-07-09 | ||
US17/372,309 US20220358042A1 (en) | 2021-05-07 | 2021-07-09 | Coherent memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202244736A true TW202244736A (zh) | 2022-11-16 |
Family
ID=81580017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111114466A TW202244736A (zh) | 2021-05-07 | 2022-04-15 | 同調記憶體系統及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220358042A1 (zh) |
EP (1) | EP4086774A1 (zh) |
KR (1) | KR20220152132A (zh) |
CN (1) | CN115309672A (zh) |
TW (1) | TW202244736A (zh) |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2186531B1 (es) * | 2001-04-19 | 2005-03-16 | Diseño De Sistemas En Silicio, S.A. | Procedimiento de acceso multiple y multiple transmision de datos para un sistema multiusuario de transmision digital de datos punto a multipunto sobre red electrica. |
US20130262736A1 (en) * | 2012-03-30 | 2013-10-03 | Ati Technologies Ulc | Memory types for caching policies |
US10191691B2 (en) * | 2015-04-28 | 2019-01-29 | Liqid Inc. | Front-end quality of service differentiation in storage system operations |
US9892794B2 (en) * | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US11706064B2 (en) * | 2018-05-31 | 2023-07-18 | Indian Institute Of Technology Hyderabad | Method of receiving signal stream and a receiver |
US11703933B2 (en) * | 2019-01-24 | 2023-07-18 | Intel Corporation | Remote register updates |
US10929310B2 (en) * | 2019-03-01 | 2021-02-23 | Cisco Technology, Inc. | Adaptive address translation caches |
US11762802B2 (en) * | 2019-12-05 | 2023-09-19 | Intel Corporation | Streaming fabric interface |
US11789878B2 (en) * | 2019-12-19 | 2023-10-17 | Intel Corporation | Adaptive fabric allocation for local and remote emerging memories based prediction schemes |
US20210278998A1 (en) * | 2020-03-09 | 2021-09-09 | Alibaba Group Holding Limited | Architecture and design of a storage device controller for hyperscale infrastructure |
US20210311897A1 (en) * | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | Memory with cache-coherent interconnect |
US20210374056A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for scalable and coherent memory devices |
US11422944B2 (en) * | 2020-08-10 | 2022-08-23 | Intel Corporation | Address translation technologies |
US20210311643A1 (en) * | 2020-08-24 | 2021-10-07 | Intel Corporation | Memory encryption engine interface in compute express link (cxl) attached memory controllers |
US20210014324A1 (en) * | 2020-09-24 | 2021-01-14 | Intel Corporation | Cache and memory content management |
US20210011864A1 (en) * | 2020-09-25 | 2021-01-14 | Francesc Guim Bernat | System, apparatus and methods for dynamically providing coherent memory domains |
US20210117242A1 (en) * | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
US11994997B2 (en) * | 2020-12-23 | 2024-05-28 | Intel Corporation | Memory controller to manage quality of service enforcement and migration between local and pooled memory |
US11755500B2 (en) * | 2020-12-26 | 2023-09-12 | Intel Corporation | Cryptographic computing with disaggregated memory |
-
2021
- 2021-07-09 US US17/372,309 patent/US20220358042A1/en active Pending
-
2022
- 2022-04-05 KR KR1020220042144A patent/KR20220152132A/ko unknown
- 2022-04-15 TW TW111114466A patent/TW202244736A/zh unknown
- 2022-05-03 EP EP22171332.4A patent/EP4086774A1/en active Pending
- 2022-05-06 CN CN202210487493.0A patent/CN115309672A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220152132A (ko) | 2022-11-15 |
EP4086774A1 (en) | 2022-11-09 |
US20220358042A1 (en) | 2022-11-10 |
CN115309672A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11604746B2 (en) | Presentation of direct accessed storage under a logical drive model | |
US10761775B2 (en) | System and method for NVMe inter command association in SSD storage using a bridge device | |
US10593380B1 (en) | Performance monitoring for storage-class memory | |
US20150254003A1 (en) | Rdma-ssd dual-port unified memory and network controller | |
US11151063B2 (en) | Host system directly connected to internal switching fabric of storage system | |
US10698613B1 (en) | Host processing of I/O operations | |
US11500549B2 (en) | Secure host access to storage system resources via storage system interface and internal switching fabric | |
US11314635B1 (en) | Tracking persistent memory usage | |
US11157184B2 (en) | Host access to storage system metadata | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
US10740259B1 (en) | Host mapping logical storage devices to physical storage devices | |
US20220147470A1 (en) | System, device, and method for accessing memory based on multi-protocol | |
US11544205B2 (en) | Peer storage devices sharing host control data | |
TWI797022B (zh) | 儲存控制器、計算儲存裝置以及計算儲存裝置的操作方法 | |
US20220261363A1 (en) | Controller for managing multiple types of memory | |
TW202244736A (zh) | 同調記憶體系統及其操作方法 | |
US11221873B2 (en) | Hierarchical memory apparatus | |
US10970219B2 (en) | Host cache coherency when modifying data | |
US11960770B2 (en) | Access request management using sub-commands | |
US20240086110A1 (en) | Data storage method, storage apparatus and host | |
US11609852B2 (en) | Hierarchical memory apparatus | |
US11016903B2 (en) | Hierarchical memory systems | |
US11442860B2 (en) | Host cache coherency when reading data | |
US20230152988A1 (en) | Storage device and operation method thereof | |
US20210055882A1 (en) | Hierarchical memory apparatus |