CN115309672A - 一致性存储器系统及其操作方法 - Google Patents
一致性存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN115309672A CN115309672A CN202210487493.0A CN202210487493A CN115309672A CN 115309672 A CN115309672 A CN 115309672A CN 202210487493 A CN202210487493 A CN 202210487493A CN 115309672 A CN115309672 A CN 115309672A
- Authority
- CN
- China
- Prior art keywords
- memory
- request
- memory device
- coherent
- cache
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
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/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/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
- 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/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
-
- 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
Abstract
提供了一种一致性存储器系统及其操作方法。在一些实施例中,一致性存储器系统包括第一存储器设备。第一存储器设备可以包括:高速缓存一致性控制器;易失性存储器控制器;易失性存储器;非易失性存储器控制器;和非易失性存储器。第一存储器设备可以被配置为接收服务质量要求,并且响应于服务质量要求选择性地启用第一特征。
Description
技术领域
根据本公开的实施例的一个或多个方面涉及存储系统,更具体地,涉及使用高速缓存一致性(coherent)接口的存储器系统及其操作方法。
背景技术
具有大型分布式存储器的计算系统可以受益于在计算资源和存储器或存储资源之间的连接中使用高速缓存一致性协议(cache coherent protocol)。然而,这样的系统可能面临各种挑战,包括例如潜在的长启动时间、相对高的转换后备缓冲器(translationlookaside buffer,TLB)未命中率,以及可能不具有高可靠性并且可能不是保序(order-preserving)的连接。
因此,计算系统中需要具有大型分布式存储器和高速缓存一致性连接的改进组件。本背景技术部分仅旨在提供背景,并且不是对现有技术的描述。
发明内容
在一些实施例中,大型分布式存储器系统的某些挑战可以通过在存储器设备中结合某些特征来解决或减轻,这些特征包括:(i)存储器管理单元(memory management unit,MMU)高速缓存,以有助于主机的转换后备缓冲器(TLB)的性能;(ii)用于处理读取和写入操作的排序、以及它们可能以与它们被发出的顺序不同的顺序到达存储设备的可能性的特征;(iii)满足服务质量(quality of service,QoS)要求的特征;(iv)CXL交织,包括将来自多个存储设备的物理存储器地址交织在虚拟存储器地址的连续集合中;(v)纠错码(errorcorrection code,ECC)的使用;(vi)对完整性和数据加密(integrity and dataencryption,IDE)的支持;以及(vii)多逻辑设备(multiple logical device,MLD)支持。
根据本公开的实施例,提供了一种系统,包括:第一存储器设备,该第一存储器设备包括:高速缓存一致性控制器;易失性存储器控制器;易失性存储器;非易失性存储器控制器;和非易失性存储器,其中第一存储器设备被配置为:接收服务质量要求;并且响应于服务质量要求选择性地启用第一特征。
在一些实施例中:第一特征包括提供存储器管理单元高速缓存;并且第一存储器设备被配置为:分配易失性存储器的一部分作为存储器管理单元高速缓存,并且基于虚拟地址在存储器管理单元高速缓存中执行物理地址的物理地址查找。
在一些实施例中,执行物理地址查找包括:基于虚拟地址的第一部分,在存储器管理单元高速缓存的第一页表中查找基地址;基于基地址确定存储器管理单元高速缓存的第二页表的起始地址;以及基于虚拟地址的第二部分,在第二页表中查找物理地址。
在一些实施例中,该系统还包括主机,其中:该主机包括:存储器管理单元和转换后备缓冲器;并且主机被配置为从第一存储器设备请求物理地址查找。
在一些实施例中,第一存储器设备还被配置为:接收:第一IO请求,该第一IO请求包括指示第一IO请求的发出时间的第一时间标签,以及第二IO请求,该第二IO请求包括指示第二IO请求的发出时间的时间标签;并且执行:第二IO请求和第一IO请求,其中第二IO请求的时间标签小于第一IO请求的第一时间标签。
在一些实施例中,第一IO请求还包括指示交换机处理第一IO请求的时间的第二时间标签。
在一些实施例中:第一存储器包括第一介质类型;并且第一存储器设备还被配置为通过高速缓存一致性控制器报告易失性存储器的负载值。
在一些实施例中:易失性存储器被映射到第一逻辑设备,非易失性存储器被映射到第二逻辑设备,并且第一存储器设备还被配置为通过高速缓存一致性控制器报告非易失性存储器的负载值。
在一些实施例中,该系统还包括第二存储器设备,其中:第一存储器设备被配置为存储:具有第一物理地址的数据和具有第二物理地址的数据;并且第二存储器设备被配置为存储:具有第三物理地址的数据,第三物理地址大于第一物理地址并且小于第二物理地址。
在一些实施例中,第一存储器设备还被配置为:接收读取请求;从第一存储器的第一页读取原始数据;用纠错码解码原始数据;确定被纠正的错误的数量超过阈值;并且通过高速缓存一致性控制器发送请求引退(retirement)第一页的报告。
在一些实施例中,第一存储器设备还被配置为:接收包括未加密的数据的写入请求;加密未加密的数据以形成加密的数据;并将加密的数据存储在非易失性存储器中。
在一些实施例中,第一存储器设备还被配置为:接收读取请求;从非易失性存储器中读取加密的数据;解密加密的数据以形成未加密的数据;并通过高速缓存一致性控制器发送未加密的数据。
在一些实施例中,高速缓存一致性控制器是计算快速链接(Compute ExpressLink,CXL)控制器。
在一些实施例中,第一存储器设备是类型3(Type-3)CXL设备。
根据本公开的实施例,提供了一种方法,包括:由第一存储器设备接收服务质量要求;以及响应于服务质量要求,选择性地启用第一特征,其中第一存储器设备包括:高速缓存一致性控制器;易失性存储器控制器;易失性存储器;非易失性存储器控制器;和非易失性存储器。
在一些实施例中,该方法还包括:由第一存储器设备分配易失性存储器的一部分作为存储器管理单元高速缓存;以及由第一存储器设备基于虚拟地址在存储器管理单元高速缓存中执行物理地址的查找。
在一些实施例中,执行查找包括:基于虚拟地址的第一部分,在存储器管理单元高速缓存的第一页表中查找基地址;基于基地址确定存储器管理单元高速缓存的第二页表的起始地址;以及基于虚拟地址的第二部分,在第二页表中查找物理地址。
在一些实施例中,该方法还包括:接收:第一IO请求,该第一IO请求包括指示第一IO请求的发出时间的第一时间标签,以及第二IO请求,该第二IO请求包括指示第二IO请求的发出时间的时间标签;以及执行:第二IO请求和第一IO请求,其中第二IO请求的时间标签小于第一IO请求的第一时间标签。
在一些实施例中,第一IO请求还包括指示交换机处理第一IO请求的时间的第二时间标签。
根据本公开的实施例,提供了一种系统,包括:第一存储器设备,该第一存储器设备包括:用于数据存储的装置,以及高速缓存一致性主机接口,该第一存储器设备被配置为:分配用于数据存储的装置的一部分作为存储器管理单元高速缓存;并且基于虚拟地址在存储器管理单元高速缓存中执行物理地址的查找。
附图说明
参考说明书、权利要求书和附图,将会认识和理解本公开的这些和其他特征和优点,附图中:
图1A是根据本公开的实施例的具有多个服务器和多个存储器设备的计算系统的框图;
图1B是根据本公开的实施例的多个存储器服务器的框图,每个存储器服务器包括多个存储器设备;
图2A是根据本公开的实施例的示出了到外部组件的连接的存储器设备的框图;
图2B是根据本公开实施例的方法的流程图;
图2C是根据本公开实施例的用于设置存储器管理单元高速缓存的方法的流程图;
图2D是根据本公开的实施例的用于执行查找的方法的流程图;
图3A是根据本公开的实施例的读取操作的时序图;
图3B是根据本公开的实施例的写入操作的时序图;
图4A是根据本公开实施例的第一存储器设备微体系结构的框图;
图4B是根据本公开的实施例的第二存储器设备微体系结构的框图;
图4C是根据本公开实施例的第三存储器设备微体系结构的框图;和
图4D是根据本公开实施例的第四存储器设备微体系结构的框图。
附图只是非限制性的示例,并且权利要求和本发明的范围超出了附图中所示的特征。
具体实施方式
以下结合附图阐述的详细描述旨在作为根据本公开提供的一致性存储器系统的示例性实施例的描述,并且不旨在表示可以构建或利用本公开的唯一形式。该描述结合所示实施例阐述了本公开的特征。然而,应当理解,相同或等效的功能和结构可以通过不同的实施例来实现,这些实施例也旨在包含在本公开的范围内。如本文其它地方所示,相似的元件编号旨在指示相似的元件或特征。
在具有超大规模工作负载要求的计算系统中,工作负载可能在存储器和IO延迟以及带宽需求方面表现出多样性,并且计算和存储器资源可能受到限制。在使用计算快速链接(Compute Express Link,CXL)连接的系统中,CXL可以实现新型的存储器扩展和一致性加速器。然而,分布式和大型CXL存储器系统可能会带来某些挑战,包括例如潜在的长启动时间、相对高的转换后备缓冲器(TLB)未命中率、以及可能不具有高可靠性并且可能不是保序的连接。
在一些实施例中,可以通过在类型3存储器设备中结合某些特征来解决或减轻这些挑战,这些特征包括:(i)存储器管理单元(MMU)高速缓存,以有助于主机的转换后备缓冲器(TLB)的性能;(ii)用于处理读取和写入操作的排序、以及它们可能以与它们被发出的顺序不同的顺序到达存储设备的可能性的特征;(iii)满足服务质量(QoS)要求的特征;(iv)与诸如CXL的高速缓存一致性协议交织,包括将来自多个存储设备的物理存储器地址交织在虚拟存储器地址的连续集合中;(v)纠错码(ECC)的使用;(vi)对完整性和数据加密(IDE)的支持;以及(vii)多逻辑设备(MLD)支持。
外围组件互连快速(Peripheral Component Interconnect Express,PCIe)可以指具有相对高且可变的延迟的计算机接口,该延迟会限制其连接到存储器的有用性。CXL是用于通过PCIe 5.0的通信的开放工业标准,其可以提供固定的、相对较短的分组大小,并且因此可以提供相对高的带宽和相对低的固定延迟。因此,CXL可能能够支持高速缓存一致性,并且CXL可能非常适合于建立到存储器的连接。CXL还可用于提供主机和服务器中的加速器、存储器设备和网络接口电路(或“网络接口控制器”(network interfacecontroller,NIC)或“网络接口卡”(network interface card,NIC))之间的连接性。
诸如CXL的高速缓存一致性协议也可以用于异构处理,例如在标量、向量和缓冲存储器系统中。CXL可以用于利用通道、重定时器(retimer)、系统的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)32GT/s的数据速率,可降级为8GT/s和16GT/s,128b/130b;(iii)300W(x16连接器中为75W);以及(iv)即插即用。为了支持即插即用,PCIe或CXL设备链路可以在Gen1在PCIe开始训练,协商CXL,完成Gen 1–5训练,然后开始CXL事务。
在一些实施例中,在包括通过网络连接在一起的多个服务器的系统中,使用CXL连接到存储器的聚合体(aggregation)或“池”(例如,包括连接在一起的多个存储器单元的一定数量的存储器)可以提供各种优点,如下面进一步详细讨论的。例如,除了为CXL分组提供分组交换功能之外,还具有其他能力的CXL交换机(本文称为“增强能力CXL交换机”)可以用于将存储器的聚合体连接到一个或多个中央处理单元(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,在一些实施例中,如图所示,服务器系统包括多个服务器105,每个服务器连接到ToR服务器链接交换机112,该交换机可以是具有PCIe能力的PCIe 5.0CXL交换机。每个服务器包括一个或多个处理电路115,每个处理电路连接到:(i)系统存储器120(例如,双倍数据速率(版本4)(DDR4)存储器或任何其他合适的存储器),(ii)一个或多个网络接口电路125,以及(iii)一个或多个CXL存储器设备135。处理电路115中的每一个可以是存储程序处理电路,例如,中央处理单元(CPU)(例如,x86 CPU)、图形处理单元(GPU)或ARM处理器。在一些实施例中,网络接口电路125可以嵌入在存储器设备135之一中(例如,在与存储器设备135之一相同的半导体芯片上,或者在与存储器设备135之一相同的模块中),或者网络接口电路125可以与存储器设备135分开封装。尽管一些实施例在本文被描述为使用CXL协议(以及对应的组件,诸如CXL控制器),但是本公开不限于CXL,并且在其他实施例中,使用不同的高速缓存一致性协议以及对应的组件,诸如用于这种协议的高速缓存一致性控制器。
如本文所使用的,“存储器设备”是包括一个或多个存储器管芯的电路(例如,包括印刷电路板和连接到其的部件、或者包括印刷电路板的外壳的电路),每个存储器管芯包括多个存储器单元。每个存储器管芯或者存储器管芯组的集合中的每个存储器管芯组可以在焊接到存储器设备的印刷电路板(或者通过连接器连接到存储器设备的印刷电路板)的封装(例如,环氧树脂模塑料(epoxy mold compound,EMC)封装)中。存储器设备135中的每一个可以具有CXL接口,并且可以包括控制器137(例如,FPGA、ASIC、处理器等),用于在CXL分组和存储器管芯的存储器接口之间进行转换例如适用于存储器设备135中的存储器的存储器技术的信号。如本文所使用的,存储器管芯的“存储器接口”是存储器管芯技术固有的接口,例如,在DRAM的情况下,存储器接口可以是字线和位线。存储器设备还可以包括控制器137,控制器137可以提供增强的能力,如下面进一步详细描述的。每个存储器设备135中的控制器137可以通过高速缓存一致性接口(例如通过CXL接口)连接到处理电路115。控制器137还可以绕过处理电路115,来促进不同服务器105之间的数据传输(例如,RDMA请求)。ToR以太网交换机110和网络接口电路125可以包括RDMA接口,以便于不同服务器上的CXL存储器设备之间的RDMA请求(例如,ToR以太网交换机110和网络接口电路125可以提供聚合以太网上RDMA(RoCE)、Infiniband和iWARP分组的硬件卸载或硬件加速)。
服务器链接交换机112可以包括FPGA或ASIC,并且可以提供优于以太网交换机的性能(在吞吐量和延迟方面)。服务器105中的每一个可以包括通过增强能力CXL交换机130和通过多个PCIe连接器连接到服务器链接交换机112的多个存储器设备135。如图所示,服务器105中的每一个还可以包括一个或多个处理电路115和系统存储器120。服务器链接交换机112可以作为主设备操作,并且增强能力CXL交换机130中的每一个可以作为从设备操作,如下面进一步详细讨论的。
图1B示出了实施例,其中多个存储器服务器150中的每一个都连接到ToR服务器链接交换机112,如图所示,ToR服务器链接交换机112可以是PCIe 5.0CXL交换机。如同在图1A的实施例中,服务器链接交换机112可以包括FPGA或ASIC,并且可以提供优于以太网交换机的性能(在吞吐量和延迟方面)。如同在图1A的实施例中,存储器服务器150可以包括通过多个PCIe连接器连接到服务器链接交换机112的多个存储器设备(MEM)135。在图1B的实施例中,可以没有处理电路115和系统存储器120,并且存储器服务器150的主要目的可以是提供存储器,以供具有计算资源的其他服务器105使用。
图2A示出了在一些实施例中,CXL存储器设备205的微体系结构(例如,CXL存储器设备的内部体系结构)。存储器设备205包括:(i)非易失性存储器(例如,固态驱动器(SSD))210;(ii)非易失性存储器控制器215,其连接到非易失性存储器210(并且被配置为通过接口连接到(interface)非易失性存储器210并且控制非易失性存储器210);(iii)易失性存储器(例如,双倍数据速率4(DDR4)存储器)220;(iv)易失性存储器控制器225,其连接到易失性存储器220(并且被配置为通过接口连接到易失性存储器220并且控制易失性存储器220);以及(v)CXL控制器230。如上所述,在一些实施例中,使用不同于CXL的高速缓存一致性协议,并且使用合适的高速缓存一致性控制器来代替CXL控制器230。如图2A所示,存储器设备205可以通过CXL接口(例如,通过CXL控制器230)连接到外部根联合体(root complex)235,外部根联合体235又可以连接到DRAM存储器控制器240和易失性存储器(例如,DDR4存储器)245。在操作中,如图2B所示,存储器设备205可以在260例如从主机接收服务质量要求,并且可以在265响应于服务质量要求选择性地启用第一特征。正在启用的特征可以是下面标识的特征之一。
随着主机可用的存储器数量的增加,可能会出现某些问题,例如存储器管理问题。例如,一些中央处理单元(CPU)平台可能具有1到10太字节(TB)的主存储器(例如,存储类存储器(storage class memory,SCM)、CXL存储器或低延迟NAND存储器)。在这样的系统中,操作系统(OS)的启动(boot)时间可能增加,部分原因是主机CPU可能在启动期间检查并初始化存储器的页。内核元数据可能会占用许多千兆字节(GB),甚至会妨碍更小的快速存储器,并且存储器回收和碎片整理可能会导致巨大的开销。
在一些实施例中,为了解决这些问题,存储器设备可以包括MMU高速缓存。在相关技术的系统中,可以在CPU内部提供转换后备缓冲器(TLB)以减少MMU访问的数量。TLB未命中可能导致MMU通过访问存储在主机DRAM中的页表,基于虚拟地址执行物理地址查找。在一些实施例中,存储器设备包括MMU高速缓存(如上所述),其可以包括硬件(H/W)结构来高速缓存多级页表。MMU高速缓存可以维护来自页表层次结构的上层的最近的页表条目(pagetable entry,PTE)。这些条目可以存储在MMU中,并且基于访问的局部性(例如,被访问的物理存储器地址的时空访问模式)。在这样的系统中,MMU高速缓存命中可以将访问次数减少到少于五次。
如图2C所示,存储器设备可以在270分配易失性存储器的一部分作为存储器管理单元高速缓存,并且在275基于虚拟地址在存储器管理单元高速缓存中执行物理地址的查找。MMU高速缓存可以包括硬件辅助转换层,以管理不同粒度的页(例如,4千字节(KB)页或大页)并减少随机访问。在一些实施例中,MMU高速缓存在(CXL)存储器设备的上下文中重用非一致性存储器访问(nonuniform memory access,NUMA)感知的调度策略。连接到或包含存储器设备的主机可以请求存储器设备在MMU高速缓存中执行物理地址查找。由存储器设备在MMU高速缓存中执行查找可以包括,如图2D所示,(i)在280,基于虚拟地址的第一部分在存储器管理单元高速缓存的第一页表中查找基地址(base address),(ii)在285,基于基地址确定存储器管理单元高速缓存的第二页表的起始地址,以及(iii)在290,基于虚拟地址的第二部分在第二页表中查找物理地址。
如上所述,在一些实施例中,存储器设备包括用于处理读取和写入操作排序的特征。这种存储器设备可以解决通过不可靠介质通信的远程、非聚合的类型3系统(CXL类型3系统例如是具有CXL.io和CXL.mem的主机存储器的存储器扩展器)可能以不可预测的方式传递或丢失写入的挑战。例如,CXL事务可以无序(out of order,OOO)到达,并且接收的事务可以包括重试的事务。在一些实施例中,当请求通过网络传输时,存储器设备(i)保持具有时间标签的大(时间)窗口,以及(ii)调度和记分板(scoreboard)传入的请求,请求中的每一个可以用在网络中的各个点处(例如,在发出读取或写入请求的主机处,以及在转发这种请求的交换机处)应用的时间标签来标记。存储器设备可以为所有未完成的事务及其对应的主机状态维护记分板。用于此目的的记分板可以包括例如每个操作的时间戳、地址和任何依赖性。存储器设备可以使用这些时间标签来确定和解决设备侧的排序。存储器设备可以在将写入提交给存储器设备之前发送CXL上的写入的早期完成。这种行为可以减少存储器设备的感知延迟。在发送早期完成之后,设备可以负责任何后续的读取和写入;该设备可以管理后续读取操作和写入操作的内部排序,并管理危险。记分板可以用于跟踪提供该功能的必要状态(例如,记分板中的附加字段可指示操作是否已提交给存储设备)。存储器设备可以管理后续读取和写入的内部排序,并管理危险。
为了执行危险处理,存储器设备可以允许与未决写入操作无关的读取操作继续进行。对于写入后读取(read-after-write,RAW)操作,存储器设备可以从记分板缓冲器提供所请求的数据。对于读取后写入(write-after-read,WAR)操作,存储器设备可以确保任何后期写入(late-write)操作能够绕过早期读取操作。对于写入后写入(write-after-write,WAW)操作,存储器设备可以确保较早的写入保留在缓冲器中,直到时间限制到期。如果存储器设备是类型2(Type-2)CXL设备,则它可以在无序提交高速缓存线之前,解决对设备到主机(D2H)通道中对相同高速缓存线的依赖性。图3A和图3B分别是读取操作和写入操作的时序图。在图3A中,从主机305向存储器设备205的存储器控制器310(例如,通过CXL控制器)发送读取请求。然后,在设备存储器315上执行读取操作,并且数据被返回给主机305。在图3B中,写入请求从主机305发送到存储器控制器310。然后在设备存储器315上执行写入操作,并且命令完成被返回给主机305。
如上所述,在一些实施例中,存储器设备包括服务质量(QoS)支持的特征。存储器设备可以使用CXL QoS遥测特征来跟踪和报告介质延迟,并通过利用多种介质类型来管理存储器设备内的尾部延迟。存储器设备可以支持对存储器利用的跟踪,并且对于多达两种存储器类型(这两种存储器类型可以被称为类型0存储器或类型1存储器),可以将负载值作为异步虚拟线传递给主机。类型的映射可以匹配底层微体系结构配置,例如,类型0存储器可以是存储器类(Memory Class)(例如,易失性存储器,诸如DRAM),并且类型1存储器可以是存储类(Storage Class)(例如,非易失性存储器或永久存储器)。在一些实施例中,存储器设备支持对每个分区进行单独编码的MLD存储器设备。
在一些实施例中,异构类型-3存储器设备可以存在于系统中。CXL可以允许多个QoS级别。当前的CXL规范不提供用于在设备QoS级别之间提供带宽管理的控制;这样,可以实现在DRAM和低延迟SSD之间、具有单独的QoS队列的“工作窃取(work-stealing)”的方法。例如,在具有多个队列的系统中,工作窃取可能是机会性的工作窃取(例如,由一个数据处理实体从另一个数据处理实体的队列中窃取工作)。数据处理实体可以是例如处理电路或软件进程、任务或线程。可以向主机展示两种介质类型,并且主机可以向任一介质提交事务。如果对低延迟SSD的请求预期是持久的,则此功能的可用性可能会受到限制。
如上所述,在一些实施例中,存储器设备包括用于MLD支持的特征。MLD可以是将设备划分成多个块的能力,其中每个块提供不同的特征(例如,安全性、ECC、QoS、可管理性或可用性)。这种存储器设备可以使用从-到-主(subordinate-to-master,S2M)通道中的智能信息来确保关键事务在严格节流下被优先化,为CXL MLD设备维护单独的队列,其中每个寄存器跟踪对一个设备的利用,并且当一个设备上的负载不均匀时混洗(shuffle)和迁移请求。在一些实施例中,寄存器用于以可配置的时间粒度来跟踪利用率。存储器设备可以使用CXL QoS应用编程接口(API)向主机发送消息,消息包括例如“轻”、“严重负载”或“中等”。存储器设备中的逻辑可以检查主机是否已经节流;否则,它可能会将请求缓冲到分段区域,同时对读取操作进行优先级排序。在存储器设备的上游连接包括CXL交换机的系统中,存储器设备可以包含支持LD-ID并将设备隔离成分区的逻辑。
如上所述,在一些实施例中,存储器设备包括用于CXL交织的特征。CXL交织规范标识交织集合,其中交织集合中的每个交织集合包括方式、粒度和大小;CXL交织规范还允许多级交织。存储器设备可以采用特定于技术的交织(例如,DRAM中的存储体(bank)/存储组(rank)级交织,或者SSD中基于管芯、块或平面的交织),在同一模块上具有不同的介质类型。存储器设备可以采用算法来利用交织作为芯片尺寸、通道数量和存储器控制器地址映射的函数。
在一些实施例中,存储器设备实现可编程交织。主机可编程交织能力可以在CXL存储器设备解码器中实现。可以实现多种方法,并且主机可以使用合适的寄存器,例如使用CXL.io寄存器,来对存储器设备进行编程。在一些实施例中,存储器设备编程也可以在运行时(run time)更新,并且该设备可以负责管理未完成的事务。可以跨存储器范围采用不同类型的交织;在这样的实施例中,存储器设备可以查找存储器范围,并且设备主机管理的设备存储器(Host-managed Device Memory,HDM)解码器可以相应地进行路由。
在一些实施例中,存储器设备可以管理CXL热添加功能和惊喜移除功能。使用来自伪文件系统(诸如Linux sysfs)和CXL设备驱动程序的提示,每个存储器设备上的ping块可以知道整个系统配置。在易失性介质的情况下,通过识别新的拓扑,存储器设备能够在没有主机支持的情况下调整存储器设备下面的(逻辑)设备的交织粒度(多级交织)。存储器设备可以跟踪这种变化并忽略对旧介质的请求。
如上所述,在一些实施例中,存储器设备包括纠错码(ECC)的特征。在这样的实施例中,设备可以执行可纠正错误的大量日志记录,并与操作系统协调以引退(retire)页(例如,当可纠正错误的数量超过阈值时)。主模块可以控制动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、计算(例如,可以存在于存储器设备中的任何计算功能)和低延迟SSD上的ECC。对于CXL栈,存储器设备可以例如实现链路层、校验和、CXL微片(flit)级单错误校正和双错误检测(single-error correction and double-error detection,SECDED)以及4KB页级Bose-Chaudhuri-Hocquenghem(BCH)码或任何其他合适的纠错码。存储器设备逻辑可以使用这样的特征组合来纠正错误。如本文所使用的,“微片”可以指链路级流控制单元或数字(digit)。
存储器设备可以使用CXL.cache或mem响应(存储器响应)中的CXL元字段来发信号;可以按照PCIe功能级别来创建和管理事件记录。对于每个可纠正的错误,该设备可以经由任何合适的协议(诸如在外围组件互连快速(PCIe)和CXL中指定的消息通知中断-X(Message Signaled Interrupts-X,MSI-X)协议)向主机发信号,以模拟外围组件互连(PCI)的物理中断线。为了报告不可纠正的错误,存储设备可以使用CXL病毒和有毒接口。当存在许多无法纠正的错误时,设备可能会进入病毒模式,并使主机能够将所有数据视为可疑。或者,病毒位帮助主机识别特定存储器响应中不可纠正的错误。
如上所述,在一些实施例中,存储器设备包括对完整性和数据加密(IDE)的支持。由于在主存储器域中支持非易失性存储器,所以存储器设备可以使用强密码算法。在一些实施例中,为了安全,存储器设备在存储器设备内部实现安全散列算法(Secure HashAlgorithm,SHA)密码或高级加密标准(Advanced Encryption Standard,AES)密码。例如,存储器设备可以(i)接收未加密的数据,对其进行加密,并将加密的数据存储在非易失性存储器中,或者它可以(ii)从非易失性存储器中读取加密的数据,对其进行解密,并通过CXL控制器发送解密的数据。主机可以选择算法,或者在运行时使用CXL.io命令寄存器配置设备。在CXL端点枚举期间,可以在启动时使用CXL.io来交换私钥。存储器设备可以创建多个信任区;这样的多个信任区可以提供信任和性能之间的各种折衷。信任区可以是存储器中的这样的区域,在该区域中采用特定类型的加密,并且只有某些授权的主机或发起者被授权访问。存储器设备还可以控制每个信任区的不同模式的内部加扰和地址重排(swizzle)。
在一些实施例中,在单个CXL设备中配置不同存储器或存储技术的各种方法例如如图4A-4D所示。图4A-4D示出了几种存储器设备的微体系结构。图4A示出仅包括双倍数据速率5(double data rate 5,DDR5)或双倍数据速率4DDR4存储器(图4A)或低功率双倍数据速率5(low power double data rate 5,LPDDR5))DRAM存储器(图4B)的微架构。这种存储器设备包括DRAM存储器和存储器控制器(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)这些操作的时间顺序可以变化。
本文使用的术语“处理电路”是指用于处理数据或数字信号的硬件、固件和软件的任意组合。处理电路硬件可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)以及诸如现场可编程门阵列(FPGA)的可编程逻辑设备。如本文所使用的,在处理电路中,每个功能或者由被配置为(即硬连线以)执行该功能的硬件来执行,或者由被配置为执行存储在非暂时性存储介质中的指令的更通用的硬件(诸如CPU)来执行。处理电路可以制造在单个印刷电路板(PCB)上,或者分布在几个互连的PCB上。处理电路可以包含其他处理电路;例如,处理电路可以包括在PCB上互连的两个处理电路,FPGA和CPU。
如本文所用,当方法(例如,调整)或第一量(例如,第一变量)被称为“基于”第二量(例如,第二变量)时,这意味着第二量是该方法的输入或影响第一量,例如,第二量可以是计算第一量的函数的输入(例如,唯一的输入,或几个输入之一),或者第一量可以等于第二量,或者第一量可以与第二量相同(例如,存储在存储器中与第二量相同的一个或多个位置)。
应当理解,尽管术语“第一”、“第二”、“第三”等可以在本文用来描述各种元件、部件、区域、层和/或部分,但是这些元件、部件、区域、层和/或部分不应该受到这些术语的限制。这些术语仅用于区分一个元件、部件、区域、层或部分与另一个元件、部件、区域、层或部分。因此,本文讨论的第一元件、部件、区域、层或部分可以被称为第二元件、部件、区域、层或部分,而不脱离本发明构思的精神和范围。
为了便于描述,本文可以使用空间上相对的术语,诸如“下面”、“下方”、“下部”、“在……下面”、“上方”、“上部”等,来描述一个元件或特征与图中所示的另一个元件或特征的关系。应当理解,除了图中所示的方向之外,这种空间上相对的术语还旨在涵盖使用或操作中设备的不同方向。例如,如果图中的设备被翻转,那么被描述为其它元件或特征的“下面”或“下方”或“在……之下”的元件将被定向在其它元件或特征的“上方”。因此,示例术语“下方”和“下面”可以包括上方和下方两种方位。该设备可以以其他方式定向(例如,旋转90度或以其他方向),并且本文使用的空间相对描述符应该被相应地解释。
本文使用的术语仅仅是为了描述特定的实施例,而不是为了限制本发明构思。如本文所用,术语“基本上”、“大约”和类似术语用作近似术语,而不是程度术语,并且旨在说明本领域普通技术人员将会认识到的测量值或计算值的固有偏差。
如本文所使用的,单数形式“一”和“一个”也旨在包括复数形式,除非上下文清楚地表明不是这样。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合。如本文所用,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。当在元素列表之前时,诸如“至少一个”的表达式修饰整个元素列表,而不是修饰列表的单个元素。此外,当描述本发明构思的实施例时,使用“可以”是指“本公开的一个或多个实施例”。此外,术语“示例性”旨在指代示例或说明。如此处所使用的,术语“使用”、“使用了”和“被使用”可以被认为分别与术语“利用”、“利用了”和“被利用”同义。
应当理解,当元件或层被称为“在另一个元件或层上”、“连接到另一个元件或层”、“耦合到另一个元件或层”或“与另一个元件或层邻近”时,它可以直接在该另一个元件或层上、连接到、耦合到或邻近该另一个元件或层,或者可以存在一个或多个中间元件或层。相反,当一个元件或层被称为“直接在另一个元件或层上”、“直接连接到”、“直接耦合到”或“紧邻”另一个元件或层时,不存在中间元件或层。
本文所列举的任何数值范围旨在包括所列举的范围内包含的相同数值精度的所有子范围。例如,“1.0至10.0”或“1.0至10.0之间”的范围旨在包括所列举的最小值1.0和所列举的最大值10.0之间的所有子范围,即,最小值等于或大于1.0,最大值等于或小于10.0,例如2.4至7.6。本文中列举的任何最大数值限制旨在包括其中包含的所有较低数值限制,并且本说明书中列举的任何最小数值限制旨在包括其中包含的所有较高数值限制。如本文所使用的,“用于数据存储的装置”意味着易失性存储器或非易失性存储器、或者它们的组合。
尽管本文已经具体描述和说明了一致性存储器系统的示例性实施例,但是许多修改和变化对于本领域技术人员来说是明显的。因此,应当理解,根据本公开的原理构造的一致性存储器系统可以以不同于本文具体描述的方式来实施。本发明也在所附的权利要求及其等同物中定义。
Claims (20)
1.一种一致性存储器系统,包括:
第一存储器设备,所述第一存储器设备包括:
高速缓存一致性控制器;
易失性存储器控制器;
易失性存储器;
非易失性存储器控制器;和
非易失性存储器,
其中,所述第一存储器设备被配置为:
接收服务质量要求;以及
响应于所述服务质量要求,选择性地启用第一特征。
2.根据权利要求1所述的一致性存储器系统,其中:
所述第一特征包括提供存储器管理单元高速缓存;并且
所述第一存储器设备被配置为:
分配所述易失性存储器的一部分作为所述存储器管理单元高速缓存,以及
基于虚拟地址,在所述存储器管理单元高速缓存中执行物理地址的物理地址查找。
3.根据权利要求2所述的一致性存储器系统,其中,执行所述物理地址查找包括:
基于所述虚拟地址的第一部分,在所述存储器管理单元高速缓存的第一页表中查找基地址;
基于所述基地址,确定所述存储器管理单元高速缓存的第二页表的起始地址;以及
基于所述虚拟地址的第二部分,在所述第二页表中查找所述物理地址。
4.根据权利要求2所述的一致性存储器系统,还包括主机,其中:
所述主机包括:
存储器管理单元,和
转换后备缓冲器;并且
所述主机被配置为从所述第一存储器设备请求所述物理地址查找。
5.根据权利要求1所述的一致性存储器系统,其中,所述第一存储器设备还被配置为:
接收:
第一IO请求,所述第一IO请求包括指示所述第一IO请求的发出时间的第一时间标签,和
第二IO请求,所述第二IO请求包括指示所述第二IO请求的发出时间的时间标签;以及
执行:
所述第二IO请求,和
所述第一IO请求,
其中,所述第二IO请求的时间标签小于所述第一IO请求的第一时间标签。
6.根据权利要求5所述的一致性存储器系统,其中,所述第一IO请求还包括指示交换机处理所述第一IO请求的时间的第二时间标签。
7.根据权利要求1所述的一致性存储器系统,其中:
所述第一存储器包括第一介质类型;并且
所述第一存储器设备还被配置为通过所述高速缓存一致性控制器来报告所述易失性存储器的负载值。
8.根据权利要求7所述的一致性存储器系统,其中:
所述易失性存储器被映射到第一逻辑设备,
所述非易失性存储器被映射到第二逻辑设备,并且
所述第一存储器设备还被配置为通过所述高速缓存一致性控制器来报告所述非易失性存储器的负载值。
9.根据权利要求1所述的一致性存储器系统,还包括第二存储器设备,其中:
所述第一存储器设备被配置为存储:
具有第一物理地址的数据,和
具有第二物理地址的数据;并且
所述第二存储器设备被配置为存储:
具有第三物理地址的数据,
所述第三物理地址大于所述第一物理地址并且小于所述第二物理地址。
10.根据权利要求1所述的一致性存储器系统,其中,所述第一存储器设备还被配置为:
接收读取请求;
从所述第一存储器的第一页读取原始数据;
用纠错码解码所述原始数据;
确定被纠正的错误的数量超过阈值;以及
通过所述高速缓存一致性控制器发送请求引退所述第一页的报告。
11.根据权利要求1所述的一致性存储器系统,其中,所述第一存储器设备还被配置为:
接收包括未加密的数据的写入请求;
加密所述未加密的数据以形成加密的数据;以及
将所述加密的数据存储在所述非易失性存储器中。
12.根据权利要求1所述的一致性存储器系统,其中,所述第一存储器设备还被配置为:
接收读取请求;
从所述非易失性存储器中读取加密的数据;
解密所述加密的数据以形成未加密的数据;以及
通过所述高速缓存一致性控制器发送所述未加密的数据。
13.根据权利要求1所述的一致性存储器系统,其中,所述高速缓存一致性控制器是计算快速链接CXL控制器。
14.根据权利要求12所述的一致性存储器系统,其中,所述第一存储器设备是类型3CXL设备。
15.一种一致性存储器的操作方法,所述一致性存储器包括第一存储器设备,所述方法包括:
由所述第一存储器设备接收服务质量要求;以及
响应于所述服务质量要求,选择性地启用第一特征,
其中,所述第一存储器设备包括:
高速缓存一致性控制器;
易失性存储器控制器;
易失性存储器;
非易失性存储器控制器;和
非易失性存储器。
16.根据权利要求15所述的操作方法,还包括:
由所述第一存储器设备分配所述易失性存储器的一部分作为存储器管理单元高速缓存;以及
由所述第一存储器设备基于虚拟地址在所述存储器管理单元高速缓存中执行物理地址的查找。
17.根据权利要求16所述的操作方法,其中,执行所述查找包括:
基于所述虚拟地址的第一部分,在所述存储器管理单元高速缓存的第一页表中查找基地址;
基于所述基地址,确定所述存储器管理单元高速缓存的第二页表的起始地址;以及
基于所述虚拟地址的第二部分,在所述第二页表中查找所述物理地址。
18.根据权利要求15所述的操作方法,还包括:
接收:
第一IO请求,所述第一IO请求包括指示所述第一IO请求的发出时间的第一时间标签,和
第二IO请求,所述第二IO请求包括指示所述第二IO请求的发出时间的时间标签;以及
执行:
所述第二IO请求,和
所述第一IO请求,
其中,所述第二IO请求的时间标签小于所述第一IO请求的第一时间标签。
19.根据权利要求18所述的操作方法,其中,所述第一IO请求还包括指示交换机处理所述第一IO请求的时间的第二时间标签。
20.一种一致性存储器系统,包括:
第一存储器设备,所述第一存储器设备包括:
用于数据存储的装置,和
高速缓存一致性主机接口,
所述第一存储器设备被配置为:
分配用于数据存储的所述装置的一部分作为存储器管理单元高速缓存;以及
基于虚拟地址在所述存储器管理单元高速缓存中执行物理地址的查找。
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 US20220358042A1 (en) | 2021-05-07 | 2021-07-09 | Coherent memory system |
US17/372,309 | 2021-07-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309672A true CN115309672A (zh) | 2022-11-08 |
Family
ID=81580017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210487493.0A Pending CN115309672A (zh) | 2021-05-07 | 2022-05-06 | 一致性存储器系统及其操作方法 |
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 (18)
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 |
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 |
US20210311871A1 (en) * | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | System and method for aggregating server memory |
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 |
US20210117334A1 (en) * | 2020-12-23 | 2021-04-22 | 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 |
---|---|
TW202244736A (zh) | 2022-11-16 |
US20220358042A1 (en) | 2022-11-10 |
KR20220152132A (ko) | 2022-11-15 |
EP4086774A1 (en) | 2022-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10909012B2 (en) | System having persistent memory | |
US11487675B1 (en) | Collecting statistics for persistent memory | |
US9009580B2 (en) | System and method for selective error checking | |
US10593380B1 (en) | Performance monitoring for storage-class memory | |
US20150254003A1 (en) | Rdma-ssd dual-port unified memory and network controller | |
US20150106560A1 (en) | Methods and systems for mapping a peripheral function onto a legacy memory interface | |
US10296356B2 (en) | Implementation of reset functions in an SoC virtualized device | |
US11157184B2 (en) | Host access to storage system metadata | |
US11681553B2 (en) | Storage devices including heterogeneous processors which share memory and methods of operating the same | |
US10540303B2 (en) | Module based data transfer | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
US20200334177A1 (en) | Host system directly connected to internal switching fabric of storage system | |
US11461303B2 (en) | IO metadata management for directly connected host | |
US11314635B1 (en) | Tracking persistent memory usage | |
US11392306B2 (en) | Using storage system memory as host memory | |
US11782634B2 (en) | Dynamic use of non-volatile ram as memory and storage on a storage system | |
CN115687193A (zh) | 存储模块、包括其的系统以及存储模块的操作方法 | |
US11544205B2 (en) | Peer storage devices sharing host control data | |
KR102334739B1 (ko) | 메모리 모듈, 시스템, 및 그것의 에러 정정 방법 | |
US20220334963A1 (en) | Memory access tracing | |
EP4086774A1 (en) | Coherent memory system | |
US10970219B2 (en) | Host cache coherency when modifying data | |
CN114546902A (zh) | 基于多协议访问存储器的系统、设备和方法 | |
US11853215B2 (en) | Memory controller, system including the same, and operating method of memory device for increasing a cache hit and reducing read latency using an integrated commad | |
US11442860B2 (en) | Host cache coherency when reading data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |