CN115686769A - 根据cxl协议处理一致存储器事务的系统、装置和方法 - Google Patents
根据cxl协议处理一致存储器事务的系统、装置和方法 Download PDFInfo
- Publication number
- CN115686769A CN115686769A CN202210722393.1A CN202210722393A CN115686769A CN 115686769 A CN115686769 A CN 115686769A CN 202210722393 A CN202210722393 A CN 202210722393A CN 115686769 A CN115686769 A CN 115686769A
- Authority
- CN
- China
- Prior art keywords
- request
- memory request
- coherent memory
- coherent
- cxl
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 304
- 230000001427 coherent effect Effects 0.000 title claims abstract description 183
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 229910003460 diamond Inorganic materials 0.000 description 9
- 239000010432 diamond Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- FVYUQFQCEOZYHZ-UHFFFAOYSA-N oxaflozane Chemical compound C1N(C(C)C)CCOC1C1=CC=CC(C(F)(F)F)=C1 FVYUQFQCEOZYHZ-UHFFFAOYSA-N 0.000 description 1
- 229960002019 oxaflozane Drugs 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及根据CXL协议处理一致存储器事务的系统、装置和方法。在一个实施例中,一种装置包括:接口,用于耦合系统的多个设备并且使能实现根据计算快速链路(CXL)协议的通信。该接口可接收一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到一致存储器请求的一致性的类型。耦合到该接口的请求调度器可接收一致存储器请求,并且至少部分地基于一致存储器请求的优先级和一个或多个待定一致存储器请求,根据一致性的类型来调度该一致存储器请求来执行。描述和要求保护了其他实施例。
Description
技术领域
本公开涉及用于根据CXL协议处理一致存储器事务的系统、装置和方法。
背景技术
近年来,具有不同类型的数据存储的数据库体系结构(包括非结构化查询语言(not structured query language,NoSQL)数据库、图形数据库等等)出现了爆炸性增长,以应对数据类型和数量的增长。由于实时处理和存储器要求,应用通常被向外扩展到多个节点。在具有连贯性的单个节点中,存在强一致性的概念,这意味着对数据字段的更新或写入对于该节点上的所有核心/线程都是可见的。在一组节点之间不存在类似的连贯性,从而要求应用级语义来保证不同类型的一致性。
但是,在具有多个计算节点的集群中维持应用软件的完全一致性变得很有挑战性,尤其是在存在高负载的情况下。考虑具有多个写入者和读取者的NoSQL存储:每一次写入都会阻拦整个集群的所有读取,以确保该写入已被传播开来,而没有实体读取到数据的陈旧拷贝。在集群中的几个节点上有许许多多的并发写入和读取的情况下,这种方法根本无法缩放。
发明内容
根据本公开的实施例,提供了一种装置,包括:接口,用于耦合系统的多个设备,所述系统包括多个中央处理单元(CPU)和至少一个存储器,所述接口使能实现根据计算快速链路(CXL)协议的通信,其中,所述接口从所述多个CPU中的第一CPU接收一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述一致存储器请求的一致性的类型;以及请求调度器,该请求调度器耦合到所述接口,以接收所述一致存储器请求,并且至少部分地基于所述一致存储器请求的优先级和一个或多个待定一致存储器请求,根据所述一致性的类型来调度所述一致存储器请求来执行。
根据本公开的实施例,提供了一种方法,包括:在中央处理单元(CPU)的缓存代理中接收来自在所述CPU上执行的应用的存储器请求;将所述存储器请求转化成一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述存储器请求的一致性的类型;并且将所述一致存储器请求发送到计算快速链路(CXL)集线器,以使得所述CXL集线器调度和指引所述一致存储器请求到目标存储器,其中该CXL集线器经由CXL.memory协议耦合到所述CPU。
根据本公开的实施例,提供了一种系统,包括:第一中央处理单元(CPU),其具有第一多个核心和第一缓存代理(CA);与所述第一CPU耦合的第二CPU,所述第二CPU具有第二多个核心和第二缓存代理(CA);以及与所述第一CPU和所述第二CPU耦合的计算快速链路(CXL)集线器,所述CXL集线器具有请求调度器,其中,所述请求调度器用于:根据CXL.memory协议从所述第一CPU接收一致存储器请求;并且至少部分地基于与所述一致存储器请求相关联的优先级和在所述一致存储器请求中指示的一致性的类型,根据所述一致性的类型来调度所述一致存储器请求来执行。
根据本公开的实施例,提供了一种装置,包括:用于接收存储器请求的装置,所述存储器请求来自在中央处理单元(CPU)上执行的应用;用于将所述存储器请求转化成一致存储器请求的装置,该一致存储器请求具有类型指示符来指示出要被应用到所述存储器请求的一致性的类型;并且用于将所述一致存储器请求发送到计算快速链路(CXL)集线器装置以使得所述CXL集线器装置调度和指引所述一致存储器请求到目标存储器的装置,其中该CXL集线器装置经由CXL.memory协议耦合到所述CPU。
附图说明
图1是根据一实施例的系统的框图。
图2是根据一实施例的存储装置的框图。
图3是根据一实施例的方法的流程图。
图4是根据另一实施例的方法的流程图。
图5是根据另一实施例的系统的框图。
图6是根据一实施例的SoC设计的实施例的框图。
图7是根据另一实施例的系统的框图。
图8是根据一实施例的网络体系结构的框图。
具体实施方式
在各种实施例中,具有按照给定的计算快速链路(Compute Express Link,CXL)规范例如CXL规范2.0版(2020年发布)、任何未来的更新、版本(例如,3.0版)或者其变体的CXL互连的计算系统可以使得存储器事务能够在应用级别上被指定,带有对存储器事务的期望一致性水平的指示。
在一个实施例中,CXL连接的设备,例如中央处理单元(central processingunit,CPU)、加速器,等等,可以根据指令集体系结构(instruction set architecture,ISA)发出一致存储器(例如,读取和写入)事务。在一实施例中,ISA的一致存储器事务可以指定被映射到一致更新/读取的地址的列表;被映射到一致更新的值的列表(每当发生一致更新时);以及一致操作的类型。在ISA中可能有不同类型或风格的指令可用来实现一致存储器事务,其中至少一些可以经由CXL.memory协议在CXL连接的设备之间传达。在一些情况下,CPU的缓存代理(caching agent,CA)可以从应用接收对一组存储器线的一致更新类型的请求。缓存代理进而负责确保本地缓存存储器(以及潜在的远程缓存存储器)中的线被无效化,并且经由CXL互连生成一致的写回(对于写入事务)。
在CXL体系结构中,设备可以经由不同的CXL协议传达不同的信息。按照基本的CXL协议体系结构,当前有多个特定的通信协议(包括CXL.memory、CXL.cache memory和CXL.io)可用,经由这些协议可以传达特定的信息类型。在实施例中,可以为设备提供一致性硬件能力,以便应用可以发出一致存储器事务(在此等同地称为“一致存储器请求”),这些事务可以由设备根据CXL.memory协议来处理。
利用实施例,存储器语义可以被提供给具有多个并且可能远程的平台的向外扩展集群。以这种方式,通过向外扩展到多个节点并且仍然保留存储器语义,可以写入应用以获得两全其美的效果。
在代表性实施例中,可以有六个一致性水平,如表格1中所示,该表格示出了根据一个实施例的示范性一致性水平。
表格1
强一致性 | 参见所有先前写入。 |
最终一致性 | 参见先前写入的子集。 |
一致前缀 | 参见初始的写入序列。 |
有界陈旧性 | 参见所有“旧”的写入。 |
单调读取 | 参见递增的写入子集。 |
读取我的写入 | 参见由读取者执行的所有写入。 |
为了进一步描述这些一致性保证中的几个,考虑以下内容。强一致性确保了读取操作返回对于给定对象最后写入的值,这意味着使用同步复制,这在存在负载的情况下不会缩放。一致前缀确保了读取者被保证观察到从对数据对象的第一次写入开始的有序的写入序列或者在过去的某个时间在主设备处存在的数据存储的一致版本。有界陈旧性确保读取结果不会太陈旧。也就是说,读取操作被保证至少看到在该读取开始之前的给定时间(或者更新次数)完成的所有写入。单调读取(有时也称为会话保证)是适用于由给定客户端执行的读取操作的序列的属性。它指出,如果客户端发出读取操作,然后在之后对(一个或多个)相同对象发出另一个读取操作,则第二读取操作会返回(一个或多个)相同值或者后来写入的结果。实施例可以使得这些一致性保证中的至少一些能够被用在CXL.memory协议中。
注意,虽然CXL.cache协议提供了完全的连贯性(并且可等同于“强一致性”),但它不会在没有显著性能开销的情况下在节点的集群上缩放。利用实施例,可以用硬件和体系结构特征来扩展CXL.memory协议,以提供存储器语义和一致性,例如,通过提供表格1中的至少某些一致性保证。以这种方式,应用软件可以避免使用一致性协议,同时实现存储器语义与向外扩展相结合的性能优势。
在一实施例中,CXL互连暴露了一接口,该接口允许了缓存电路执行一致写回。一致更新可以与一致性的优先级和类型(例如,强与最终)相关联。互联电路可以负责依据类型来确定何时执行请求。例如,互连电路可以调度其他正常的读取或写入在与低优先级更新的最终一致性保证相关联的一致更新请求之前进行。一旦选择了一致更新,互连电路就负责执行所有的更新操作,阻止来自平台或设备的任何冲突的新请求,并且在所有更新被确认时向请求方平台发送确认。
现在参考图1,图1示出了根据一实施例的系统的框图。如图1所示,计算系统100可以是任何类型的系统,该系统通过链路提供至少一些组件的互连,经由所述链路可发生基于CXL的通信。在图1的实施例中,图示了具有多个平台1100,1的多平台系统。虽然只图示了两个平台,但要理解,在特定的用例中,可能存在更多数目的这种平台。作为示例,平台110本身可以由给定的计算系统形成,该计算系统至少具有至少一个CPU、存储器、存储装置和接口电路。
仍然参考图1,平台110耦合到CXL交换机或集线器120。就本文使用的而言,术语“集线器”和“交换机”可被互换使用,来指使能实现设备之间的通信的路由的接口电路,在本文中尤其指的是使能实现设备之间的基于CXL通信的路由的接口电路。为了便于后续讨论,这种设备在本文中将主要被称为“集线器”。为了在这样的系统中实现一致存储器事务,CXL集线器120可被配置为利用按请求的适当的一致性水平来接收和处理这些事务。
仍然参考图1,集线器120与各种设备耦合。在所示出的实施例中,这些设备包括池式存储器1300,1。当然,另外的设备,例如加速器、图形处理单元(graphics processingunit,GPU),等等,也可以存在。池式存储器1300,1可包括相应的双内联存储器模块(dualinline memory module,DIMM)或存储器驱动器,它们可以是至少某些存储器请求的目标,包括如本文所述的一致存储器事务。在其他情况下,集线器120可以将请求指引向更遥远的目标(为了便于图1中的图示,没有示出)。
如图所示,平台1100包括多个核心1120,1-0,n,这些核心与缓存代理(CA)1140通信。要理解,缓存代理1140可以是负责平台1100内的缓存连贯性操作的硬件电路。在一实施例中,CA 1140可被实现为用于缓存存储器层次体系的一个或多个缓存控制器。一般而言,应用1150可以发出存储器请求,例如读取或写入请求。在一些情况下,这些请求可具有对要应用的一致性水平的指示。虽然实施例在这方面不受限制,但应用可根据若干个一致性水平之一提供对一致性水平的提示或其他指示。作为一个这样的示例,应用可以写入到寄存器,以指定它试图使用的可用一致性操作的菜单之中的哪一个。
仍然参考图1,应用1150发出存储器请求,这些请求被指引到缓存代理1140。假设缓存代理1140本身不能处理请求,它将其指引到集线器120。在本文的实施例中,集线器120可被配置为接收传入的存储器事务,这些事务在一些情况下可采取CXL.memory事务的形式。此外,当请求是根据CXL.memory协议的一致存储器请求时,集线器120可以以适当的一致性水平处理该请求。要理解,类似的组件可存在于平台1101中。
如图所示,集线器120包括各种组件以根据如本文所述的CXL.memory协议处理一致存储器事务。这里集线器120包括一致请求接口122,以接收来自各种实体的传入一致请求。请求调度器128可被配置为确定何时调度一致存储器请求,例如,相对于其他待定请求。在实施例中,请求调度器128可被实现为硬件电路,例如,作为微控制器或者其他可编程处理电路,以执行对包括根据CXL.memory协议的一致存储器事务在内的存储器请求的调度。当然,请求调度器128可被配置为调度所有的存储器请求,无论它们是一致存储器请求还是常规的存储器请求,包括内联解析来自任何平台的正常事务,并且识别是否与正被调度的任何请求发生冲突。
如图1中进一步图示的,集线器120还包括一致请求队列124。队列124可以是具有条目的给定存储装置,以存储与一致存储器请求相关联的信息,即,待定的一致事务。集线器120还包括冲突请求队列126。队列126可以是具有条目的给定存储装置,以存储与正常请求相关联的信息,这些正常请求与正被执行或者在一致请求队列124中以其他方式待定的一个或多个一致事务冲突。
在一实施例中,请求调度器128可响应于对正被调度的请求与另一待定请求之间的冲突的识别,将该请求保留在冲突队列126中。当具有冲突的进行中一致操作被完成时,这个请求被从冲突队列126中移除并且继续其行程。请求调度器128也可以调度执行来自平台110的一致请求。一致请求可以在它们到达时被存储在一致队列124中,或者可以直接被执行,这取决于待定请求和当前请求的优先级。
在一实施例中,请求调度器128可以至少部分地基于一致性类型和是否没有其他请求冲突来选择在给定的时间要执行的请求。当一请求被选择时,各种操作被发送到目标,并且等待确认或数据。一旦全部被接收到,请求调度器128就可以清除待定操作的任何比特冲突,生成更新返回给请求者,并且从一致请求队列124释放相应的条目。要理解,虽然在图1的实施例中在这个高级别示出了,但许多变化和替换是可能的。
现在参考图2,示出了根据一实施例的存储装置的框图。如图2所示,存储装置200可被实现在CXL集线器内。在图2的高级别中,存储装置200更具体地包括第一存储装置210和第二存储装置220。在这个实施例中,第一存储装置210被配置为具有多个条目2120-n的一致请求队列,每个条目具有多个字段,用于存储与特定的一致存储器事务相关联的信息。
如图所示,每个条目212包括标识符字段214,用于存储一致请求的标识符,其可以是唯一标识符的形式。每个条目212还包括优先级字段216,用于存储优先级指示,该优先级可以是多个级别之一,例如,在一个实施例中是低、中和高。一致性类型字段218可以存储一致性的类型,如上文在表格1中所示的一致性类型之一。最后,每个条目212可具有请求字段219,用于存储请求信息,该请求信息可包括请求者标识符以及与请求相关联的一个或多个地址的列表和要被存储在所指示的地址处的值(在写入的情况下)。当然,虽然在图2中示出了这个特定示例,但在其他实施例中,一致请求队列可采取不同的形式。
仍然参考图2,第二存储装置220被配置为具有多个条目2220-n的冲突请求队列,每个条目具有多个字段,用于存储与特定的冲突存储器事务相关联的信息。如图所示,每个条目222包括标识符字段224,用于存储与之冲突的一致请求的标识符。每个条目222还包括到达时间字段226,用于存储时间戳信息。每个条目222还包括请求字段228,用于存储请求信息,该请求信息可包括请求者标识符以及与请求相关联的一个或多个地址的列表和要被存储在所指示的地址处的值(在写入的情况下)。当然,虽然在图2中示出了这个特定示例,但在其他实施例中,冲突请求队列可采取不同的形式。要理解,为了论述的目的示出了两个单独的存储装置,但在特定的实施例中,这样的存储装置可被实现为单个存储器,例如CXL集线器中包括的缓存存储器。
现在参考图3,示出了根据一实施例的方法的流程图。更具体而言,方法300是用于在集线器中处理传入的存储器请求(即CXL.memory请求)的方法。因此,方法300可以由这个集线器中包括的硬件电路与固件和/或软件相结合来执行。
如图所示,方法300开始于接收CXL.memory事务(块310)。该集线器可在菱形315处确定此请求是否是一致存储器请求。如果是,则控制传递到块320,在这里,该事务可被存储在一致请求队列中,并且传入事务的各种信息可被存储在此队列中的条目中。接下来,在块325,可以识别一致存储器事务的优先级和类型。此外,也可以考虑对待定的一致事务的分析。至少基于此信息和可能的额外信息,可以在菱形330处确定是否要通过立即调度事务的执行来直接执行所接收的事务。如果是,则控制传递到块335,在这里,事务被调度,从而被发送到目标(例如,给定的池式存储器)。
相反,如果该事务不被直接执行,例如在一致存储器事务的优先级较低和/或一致性水平较低的情况下,控制传递到菱形340,以稍后确定该事务是否被选择来执行。一旦如此,则在块345,该事务被发送到目标。此后,在菱形350(也从块335到达),可以确定是否接收到确认(可能包括或不包括数据)。如果是,则在冲突请求队列中存在的任何冲突可以被清除(块355)。作为示例,冲突请求队列中的一个或多个条目可以被指示为准备好进行调度,因为它的冲突事务,即被处理的一致存储器事务,已经完成。控制接下来传递到块360,在这里,被处理的事务可以被从一致请求队列中移除,并且任何数据被返回给请求者。
仍然参考图3,相反,如果确定传入的请求不是一致请求(如在菱形315处确定的那样),则控制传递到菱形365,以确定该事务是否与一个或多个待定的一致事务冲突。如果不是,则该事务可以被调度,从而被发送到目标(块370)。虽然为了便于图示而没有示出,但可理解,在此事务完成后,可能会发生额外的处理,例如接收数据的返回并且将其发送回给请求者。
仍然参考图3,相反,如果确定与在菱形365处识别的待定一致事务有冲突,则控制传递到块375,在这里,该请求可被存储在冲突请求队列中。当确定冲突的事务已完成时(如在菱形380处确定的那样),控制传递到块390,在这里,冲突的事务可被从冲突事务队列中移除,并且被发送到目标进行处理,如上所述。要理解,虽然在图3的实施例中在这个高级别示出了,但许多变化和替换是可能的。
在一致读取事务的情境下,缓存代理可以在本地和远程(例如,经由远程冲刷操作)逐出被包括为读取的一部分的所有存储器线。注意,这个一致读取可以是从存储器的角度的。一旦逐出发生,请求就被发送到CXL互连。当从CXL互连接收到数据时,它可被存储在缓存存储器中,并且确认消息被发送回给CPU。注意,确认可能是异步操作,其中通知经由软件中断发生。还要注意,一致读取事务的目的地可以由该事务来识别(例如,最后一级缓存(last level cache,LLC)或者第2级(L2)缓存为例)。
在一致更新(即一致写入事务)的情境下,缓存代理可以在本地或远程无效化被包括为写入的一部分的所有存储器线。注意,鉴于是用新值进行更新,所以不需要数据。为了确保连贯性和一致性,一旦无效化完成,请求就被发送到CXL互连,并且来自CXL互连的指出更新已经生效的确认被生成回到软件栈,例如,经由异步操作,其中通知是软件中断。
现在参考图4,图4示出了根据另一实施例的方法的流程图。如图4所示,方法400是用于处理在平台的缓存代理中接收到的一致存储器请求的方法。因此,方法400可以由硬件电路(例如一个或多个缓存控制器)结合固件和/或软件来执行。
如图所示,方法400开始于在缓存代理中接收一致存储器访问请求(块410)。这种请求可以是从正在执行应用的核心或其他处理引擎接收的。要理解,一致存储器请求可以是读取或写入请求。作为一个示例,一致存储器写入事务可被实现为具有STORE_COND<address>的一般形式的ISA指令,其中多个不同的一致性操作之一可以基于在预定的寄存器中写入的值而被执行。在任何情况下,在菱形420处确定该请求是否是读取。如果该请求是写入事务,则控制传递到块430,在这里,与一致存储器写入请求相关联的一个或多个缓存线可以被无效化。注意,这种无效化可包括使CPU/平台的本地缓存中存在的任何缓存线无效化。这种无效化可能还包括使存在于一个或多个远程平台中的远程缓存线无效化。因此,由于向远程平台发送缓存连贯性消息和接收响应,这个无效化过程的完成可能存在某个量的延时。
在任何情况下,当无效化完成时,控制接下来传递到块440,在这里,一致存储器写入请求被发送到CXL集线器。更具体而言,缓存代理可以将接收到的存储器请求转化成一致存储器事务,以经由CXL.memory协议发送。进而,缓存代理可以接收关于事务完成的确认(例如,指出写入的数据已被成功写入到目标位置的指示)(块450)。响应于这个确认,缓存代理可以向请求者(例如,给定的核心)发送确认(块460)。
仍然参考图4,如果该请求是读取事务,则控制传递到块470,在这里,与一致存储器写入请求相关联的一个或多个缓存线可以被逐出。注意,这种逐出可包括逐出存在于CPU/平台的本地缓存中的任何缓存线和/或存在于一个或多个远程平台中的远程缓存线。
控制接下来传递到块475,在这里,一致存储器读取请求被发送到CXL集线器,例如,通过将接收到的存储器请求转化成一致存储器事务,以经由CXL.memory协议发送。进而,缓存代理可以接收读取的数据并且将其存储在本地缓存中(块480)。缓存代理接下来可以向请求者(例如,给定的核心)发送确认,以指示出对读取的数据的接收(块485)。要理解,虽然在图4的实施例中在这个高级别示出了,但许多变化和替换是可能的。
从而,实施例根据CXL.memory协议提供一致存储器事务。这样的操作可能比一致性/连贯性的传统应用软件级实现方式更高效,因为这些实现方式涉及软件开销,经由网络栈,并且不能使用CXL.memory语义。实施例可被实现在许多不同的系统中。
现在参考图5,示出了根据另一实施例的系统的框图。如图5所示,系统500可以是任何类型的计算设备,并且在一个实施例中可以是服务器系统。在图5的实施例中,系统500包括多个CPU 510a、b,它们进而耦合到各自的系统存储器520a、b,这些存储器在实施例中可被实现为DIMM,例如双数据速率(double data rate,DDR)存储器、持久性或者其他类型的存储器。注意,CPU 510可以经由互连系统515耦合在一起,例如超路径互连或其他处理器互连技术。
为了使得连贯加速器设备和/或智能适配器设备能够通过潜在的多种通信协议耦合到CPU 510,可以存在多个互连530a1-b2。在一实施例中,每个互连530可以是CXL的给定实例。
在所示出的实施例中,各个CPU 510耦合到相应的现场可编程门阵列(fieldprogrammable gate array,FPGA)/加速器设备550a、b(在一个实施例中,其可包括GPU)。此外,CPU 510还耦合到智能NIC设备560a、b。进而,智能NIC设备560a、b耦合到交换机580a、b(例如,根据一实施例的CXL交换机),这些交换机进而耦合到池式存储器590a、b,例如持久性存储器。在实施例中,交换机580可以实现本文描述的电路,以执行如本文所述的一致CXL.memory事务。当然,实施例不限于交换机,而本文描述的技术可以由系统的其他实体执行,包括CPU 510。
接下来转到图6,描绘了根据一实施例的SoC设计的实施例。作为具体的说明性示例,SoC 600可被配置为插入任何类型的计算设备中,范围从便携式设备到服务器系统。这里,SoC 600包括2个核心606和607。核心606和607可符合指令集体系结构,例如基于体系结构CoreTM的处理器、超微半导体公司(Advanced Micro Devices,AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或者它们的客户,以及它们的被许可者或采用者。核心606和607耦合到与总线接口单元609和L2缓存610相关联的缓存控制器608以经由互连612与系统600的其他部分通信。在核心606、607上执行的应用可以发出带有对期望的一致性水平的提示或其他指示的存储器请求。进而,这些请求可被转换成CXL.memory协议一致存储器事务,如本文所述。
互连612提供到其他组件的通信信道,例如到订户身份模块(SubscriberIdentity Module,SIM)630以与SIM卡相对接,到引导ROM635来保存引导代码以供核心606和607执行以初始化和引导SoC 600,到SDRAM控制器640以与外部存储器(例如,DRAM 660)相对接,到闪存控制器645以与非易失性存储器(例如,闪存665)相对接,到外设控制器650(例如,eSPI接口)以与外设相对接,到视频编解码器620和视频接口625以显示和接收输入(例如,触摸使能输入),到GPU 615以执行图形相关计算,等等。此外,系统图示了用于通信的外设,例如蓝牙模块670、3G调制解调器675、GPS 680以及WiFi 685。系统中还包括功率控制器655。在图6中进一步图示了,系统600可以额外包括接口,其中包括MIPI接口692(例如,到显示器)和/或HDMI接口695,HDMI接口695也可耦合到相同或不同的显示器。
现在参考图7,示出了根据另一实施例的系统的框图,例如边缘平台。如图7中所示,多处理器系统700包括经由点到点互连750耦合的第一处理器770和第二处理器780。如图7所示,处理器770和780中的每一者可以是多核心处理器,包括代表性的第一和第二处理器核心(即,处理器核心774a和774b以及处理器核心784a和784b)。在处理器770、780上执行的应用可以发出具有期望的一致性水平的存储器请求。进而,这些请求可被转换成CXL.memory协议一致存储器事务,如本文所述。
在图7的实施例中,处理器770和780还包括点到点互连777和787,它们经由互连742和744(可以是CXL总线)耦合到交换机759和760,这些交换机可以处理如本文所述的一致存储器事务。进而,交换机759、760耦合到池式存储器755和765。
仍然参考图7,第一处理器770还包括存储器控制器中枢(memory controllerhub,MCH)772和点到点(point-to-point,P-P)接口776和778。类似地,第二处理器780包括MCH 782和P-P接口786和788。如图7所示,MCH 772和782将处理器耦合到各自的存储器,即存储器732和存储器734,这些存储器可以是在本地附接到各个处理器的系统存储器(例如,DRAM)的一部分。第一处理器770和第二处理器780可分别经由P-P互连776和786耦合到芯片组790。如图7所示,芯片组790包括P-P接口794和798。
此外,芯片组790包括接口792来通过P-P互连739将芯片组790与高性能图形引擎738耦合。如图7所示,各种输入/输出(I/O)设备714可以与总线桥718一起耦合到第一总线716,其中该总线桥将第一总线716耦合到第二总线720。各种设备可耦合到第二总线720,包括例如键盘/鼠标722、通信设备726和数据存储单元728,例如盘驱动器或者其他大容量存储设备,其中该数据存储单元在一个实施例中可包括代码730。另外,音频I/O524可耦合到第二总线720。
如本文所述的实施例可被用于许多种不同的网络体系结构中。为此,在给定的边缘设备和数据中心之间耦合的联网体系结构中的许多不同类型的计算平台可以如本文所述发出和处理基于CXL的一致存储器事务。现在参考图8,示出了根据本发明的另一实施例的网络体系结构的框图。如图8中所示,网络体系结构800包括各种计算平台,这些计算平台可位于非常宽的区域中。
在图8的高级别视图中,网络体系结构800包括代表性设备810,例如智能电话。此设备可经由不同的无线电接入网络(radio access network,RAN),包括RAN 820和RAN830,来进行通信。RAN 820进而可耦合到平台825,该平台可以是边缘平台,例如雾/远/近边缘平台,并且可以利用本文的实施例。其他请求可由耦合到RAN 830的远边缘平台835处理,其也可利用实施例。
如图8中进一步图示的,另一个近边缘平台840可耦合到RAN 820、830。注意,这个近边缘平台可位于更靠近数据中心850的地方,该数据中心可能有大量的计算资源。通过将消息推送到这些更远的平台,在代表边缘设备810处理请求时,会招致更大的延时。要理解,图8中所示的一个或多个平台可以包含实施例来执行如本文所述的基于CXL的一致存储器事务。
以下示例涉及进一步的实施例。
在一个示例中,一种装置包括:接口,用于耦合系统的多个设备,所述系统包括多个CPU和至少一个存储器,所述接口使能实现根据CXL协议的通信。所述接口从所述多个CPU中的第一CPU接收一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述一致存储器请求的一致性的类型。所述装置还可包括请求调度器,该请求调度器耦合到所述接口,以接收所述一致存储器请求,并且至少部分地基于所述一致存储器请求的优先级和一个或多个待定一致存储器请求,根据所述一致性的类型来调度所述一致存储器请求来执行。
在一示例中,所述请求调度器至少部分地基于所述一致存储器请求的一致性的类型,在所述一个或多个待定一致存储器请求中的至少一者之前调度所述一致存储器请求。
在一示例中,所述装置还包括:具有多个条目的第一存储装置,所述多个条目中的每一个为一致存储器请求存储该一致存储器请求的标识符、该一致存储器请求的优先级、该一致存储器请求的类型、以及该一致存储器请求的地址信息;以及具有多个第二条目的第二存储装置,所述多个第二条目中的每一个为与一致存储器请求冲突的存储器请求存储该一致存储器请求的标识符和该冲突存储器请求的地址信息。
在一示例中,所述请求调度器在所述一致存储器请求之后,接收与所述一致存储器请求冲突的第一存储器请求并且将所述第一存储器请求存储在所述第二存储装置中。
在一示例中,在所述一致存储器请求被完成之后,所述请求调度器调度所述第一存储器请求来执行。
在一示例中,所述请求调度器在冲突存储器请求被完成之后,调度与所述一致存储器请求冲突的一个或多个冲突存储器事务来执行。
在一示例中,所述请求调度器,在所述一致性的类型是第一一致性水平时,在一个或多个非一致存储器请求之后调度所述一致存储器请求来执行。
在一示例中,所述接口从第一平台接收所述一致存储器请求,将对所述一致存储器请求的存储器位置的一个或多个缓存连贯性请求指引到一个或多个远程平台,并且在从所述一个或多个远程平台接收到缓存连贯性响应之后,所述请求调度器调度所述一致存储器请求来执行。
在一示例中,所述装置包括CXL集线器,并且所述接口根据CXL.memory协议来接收所述一致存储器请求。
在一示例中,所述接口,在所述一致存储器事务被完成之后,向所述第一CPU发送确认,所述确认包括读取的数据,其中所述读取的数据是从与所述CXL集线器耦合的远程平台获得的。
在另一示例中,一种方法包括:在CPU的缓存代理中,从在所述CPU上执行的应用接收存储器请求,将所述存储器请求转化成一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述存储器请求的一致性的类型;并且将所述一致存储器请求发送到经由CXL.memory协议耦合到所述CPU的CXL集线器,以使得所述CXL集线器调度和指引所述一致存储器请求到目标存储器。
在一示例中,所述方法还包括,当所述存储器请求是写入请求时,使与所述写入请求的地址相关联的一个或多个缓存线无效化。
在一示例中,所述方法还包括向远程平台发送一个或多个缓存连贯性消息,以使得所述远程平台使所述远程平台中的与所述写入请求的地址相关联的一个或多个缓存线无效化。
在一示例中,所述方法还包括在所述远程平台中的一个或多个缓存线已被无效化之后向所述CXL集线器发送所述一致存储器请求。
在另一示例中,一种包括指令的计算机可读介质执行如上述示例中的任一者所述的方法。
在另外一个示例中,一种包括数据的计算机可读介质被至少一个机器用来制作至少一个集成电路以执行如上述示例中的任一者所述的方法。
在另外一个示例中,一种装置,包括用于执行如上述示例中的任一者所述的方法的装置。
在另外一个示例中,一种系统包括:第一CPU,其具有第一多个核心和第一CA;与所述第一CPU耦合的第二CPU,所述第二CPU具有第二多个核心和第二CA;以及与所述第一CPU和所述第二CPU耦合的CXL集线器,所述CXL集线器具有请求调度器。所述请求调度器可以:根据CXL.memory协议从所述第一CPU接收一致存储器请求;并且至少部分地基于与所述一致存储器请求相关联的优先级和在所述一致存储器请求中指示的一致性的类型,根据所述一致性的类型来调度所述一致存储器请求来执行。
在一示例中,所述CXL集线器包括:具有多个条目的第一存储装置,所述多个条目中的每一个为一致存储器请求存储该一致存储器请求的标识符、与该一致存储器请求相关联的优先级、一致性的类型、以及该一致存储器请求的地址信息;以及具有多个第二条目的第二存储装置,所述多个第二条目中的每一个为与一致存储器请求冲突的存储器请求存储该一致存储器请求的标识符和该冲突存储器请求的地址信息。
在一示例中,所述请求调度器在所述一致存储器请求之后,接收与所述一致存储器请求冲突的第一存储器请求并且将所述第一存储器请求存储在所述第二存储装置中。
在一示例中,在所述一致存储器请求被完成之后,所述请求调度器调度所述第一存储器请求来执行。
在一示例中,当所述一致性的类型是第一一致性类型时,所述请求调度器:将所述一致存储器请求存储在所述第一存储装置中;调度一个或多个其他存储器请求来执行;然后调度所述一致存储器请求来执行。
在一示例中,所述第一CA从应用接收存储器写入请求,并且响应于所述存储器写入请求:使所述第一CPU的缓存存储器的一个或多个缓存线无效化;向一个或多个远程缓存存储器发送至少一个无效化消息;接收对于所述至少一个无效化消息的确认;并且在接收到所述确认之后,向所述CXL集线器发送所述一致存储器请求。
要理解,上述示例的各种组合是可能的。
注意,在本文中可互换使用术语“电路”和“电子线路”。如本文所使用的,这些术语和术语“逻辑”用于单独地或者按任何组合提及模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路、和/或任何其他类型的物理硬件组件。实施例可被用于许多不同类型的系统中。例如,在一个实施例中,通信设备可被安排为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可指向其他类型的用于处理指令的装置,或者包括指令的一个或多个机器可读介质,这些指令响应于在计算设备上被执行,而使得该设备实现本文描述的一个或多个方法和技术。
实施例可被实现在代码中并且可被存储在其上存储有指令的非暂态存储介质上,所述指令可被用于将系统编程为执行这些指令。实施例还可被实现在数据中并且可被存储在非暂态存储介质上,该存储介质如果被至少一个机器使用,则使得该至少一个机器制造至少一个集成电路来执行一个或多个操作。还有另外的实施例可被实现在包括信息的计算机可读存储介质中,所述信息当被制造到SoC或其他处理器中时,将配置该SoC或其他处理器来执行一个或多个操作。存储介质可以包括但不限于任何类型的盘,包括软盘,光盘,固态驱动器(solid state drive,SSD),致密盘只读存储器(compact disk read-onlymemory,CD-ROM),可改写致密盘(compact disk rewritable,CD-RW),以及磁光盘,半导体设备,比如只读存储器(read-only memory,ROM),随机访问存储器(random accessmemory,RAM),比如动态随机访问存储器(dynamic random access memory,DRAM),静态随机访问存储器(static random access memory,SRAM),可擦除可编程只读存储器(erasable programmable read-only memory,EPROM),闪速存储器、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM),磁卡或光卡,或者任何其他类型的适用于存储电子指令的介质。
虽然已针对有限数目的实现方式描述了本公开,但受益于本公开的本领域技术人员将会明白从这些实施例的许多修改和变化。希望所附权利要求覆盖所有这样的修改和变化。
Claims (25)
1.一种装置,包括:
接口,用于耦合系统的多个设备,所述系统包括多个中央处理单元(CPU)和至少一个存储器,所述接口使能实现根据计算快速链路(CXL)协议的通信,其中,所述接口从所述多个CPU中的第一CPU接收一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述一致存储器请求的一致性的类型;以及
请求调度器,该请求调度器耦合到所述接口,以接收所述一致存储器请求,并且至少部分地基于所述一致存储器请求的优先级和一个或多个待定一致存储器请求,根据所述一致性的类型来调度所述一致存储器请求来执行。
2.如权利要求1所述的装置,其中,所述请求调度器至少部分地基于所述一致存储器请求的一致性的类型,在所述一个或多个待定一致存储器请求中的至少一者之前调度所述一致存储器请求。
3.如权利要求1所述的装置,其中,所述装置还包括:
具有多个条目的第一存储装置,所述多个条目中的每一个为一致存储器请求存储该一致存储器请求的标识符、该一致存储器请求的优先级、该一致存储器请求的类型、以及该一致存储器请求的地址信息;以及
具有多个第二条目的第二存储装置,所述多个第二条目中的每一个为与一致存储器请求冲突的存储器请求存储该一致存储器请求的标识符和该冲突存储器请求的地址信息。
4.如权利要求3所述的装置,其中,所述请求调度器在所述一致存储器请求之后,接收与所述一致存储器请求冲突的第一存储器请求并且将所述第一存储器请求存储在所述第二存储装置中。
5.如权利要求4所述的装置,其中,在所述一致存储器请求被完成之后,所述请求调度器调度所述第一存储器请求来执行。
6.如权利要求3所述的装置,其中,所述请求调度器在所述冲突存储器请求被完成之后,调度与所述一致存储器请求冲突的一个或多个冲突存储器事务来执行。
7.如权利要求1所述的装置,其中,所述请求调度器在所述一致性的类型是第一一致性水平时,在一个或多个非一致存储器请求之后调度所述一致存储器请求来执行。
8.如权利要求1-7中任一项所述的装置,其中,所述接口从第一平台接收所述一致存储器请求,将对所述一致存储器请求的存储器位置的一个或多个缓存连贯性请求指引到一个或多个远程平台,并且在从所述一个或多个远程平台接收到缓存连贯性响应之后,所述请求调度器调度所述一致存储器请求来执行。
9.如权利要求1-7中任一项所述的装置,其中,所述装置包括CXL集线器,并且所述接口根据CXL.memory协议来接收所述一致存储器请求。
10.如权利要求9所述的装置,其中,所述接口在所述一致存储器事务被完成之后,向所述第一CPU发送确认,所述确认包括读取的数据,其中,所述读取的数据是从与所述CXL集线器耦合的远程平台获得的。
11.一种方法,包括:
在中央处理单元(CPU)的缓存代理中接收来自在所述CPU上执行的应用的存储器请求;
将所述存储器请求转化成一致存储器请求,该一致存储器请求具有类型指示符来指示出要被应用到所述存储器请求的一致性的类型;并且
将所述一致存储器请求发送到计算快速链路(CXL)集线器,以使得所述CXL集线器调度和指引所述一致存储器请求到目标存储器,其中该CXL集线器经由CXL.memory协议耦合到所述CPU。
12.如权利要求11所述的方法,还包括:当所述存储器请求是写入请求时,使与所述写入请求的地址相关联的一个或多个缓存线无效化。
13.如权利要求12所述的方法,还包括:向远程平台发送一个或多个缓存连贯性消息,以使得所述远程平台使所述远程平台中的与所述写入请求的地址相关联的一个或多个缓存线无效化。
14.如权利要求13所述的方法,还包括:在所述远程平台中的一个或多个缓存线已被无效化之后向所述CXL集线器发送所述一致存储器请求。
15.一种计算机程序产品,包括指令,所述指令当被处理器执行时使得所述处理器执行如权利要求11-14中任一项所述的方法。
16.一种系统,包括:
第一中央处理单元(CPU),其具有第一多个核心和第一缓存代理(CA);
与所述第一CPU耦合的第二CPU,所述第二CPU具有第二多个核心和第二缓存代理(CA);以及
与所述第一CPU和所述第二CPU耦合的计算快速链路(CXL)集线器,所述CXL集线器具有请求调度器,其中,所述请求调度器用于:
根据CXL.memory协议从所述第一CPU接收一致存储器请求;并且
至少部分地基于与所述一致存储器请求相关联的优先级和在所述一致存储器请求中指示的一致性的类型,根据所述一致性的类型来调度所述一致存储器请求来执行。
17.如权利要求16所述的系统,其中,所述CXL集线器包括:
具有多个条目的第一存储装置,所述多个条目中的每一个为一致存储器请求存储该一致存储器请求的标识符、与该一致存储器请求相关联的优先级、一致性的类型、以及该一致存储器请求的地址信息;以及
具有多个第二条目的第二存储装置,所述多个第二条目中的每一个为与一致存储器请求冲突的存储器请求存储该一致存储器请求的标识符和该冲突存储器请求的地址信息。
18.如权利要求17所述的系统,其中,所述请求调度器在所述一致存储器请求之后,接收与所述一致存储器请求冲突的第一存储器请求并且将所述第一存储器请求存储在所述第二存储装置中。
19.如权利要求18所述的系统,其中,在所述一致存储器请求被完成之后,所述请求调度器调度所述第一存储器请求来执行。
20.如权利要求17所述的系统,其中,当所述一致性的类型是第一一致性类型时,所述请求调度器用于:
将所述一致存储器请求存储在所述第一存储装置中;
调度一个或多个其他存储器请求来执行;并且
然后调度所述一致存储器请求来执行。
21.如权利要求16所述的系统,其中,所述第一CA从应用接收存储器写入请求,并且响应于所述存储器写入请求:
使所述第一CPU的缓存存储器的一个或多个缓存线无效化;
向一个或多个远程缓存存储器发送至少一个无效化消息;
接收对于所述至少一个无效化消息的确认;并且
在接收到所述确认之后,向所述CXL集线器发送所述一致存储器请求。
22.一种装置,包括:
用于接收存储器请求的装置,所述存储器请求来自在中央处理单元(CPU)上执行的应用;
用于将所述存储器请求转化成一致存储器请求的装置,该一致存储器请求具有类型指示符来指示出要被应用到所述存储器请求的一致性的类型;并且
用于将所述一致存储器请求发送到计算快速链路(CXL)集线器装置以使得所述CXL集线器装置调度和指引所述一致存储器请求到目标存储器的装置,其中该CXL集线器装置经由CXL.memory协议耦合到所述CPU。
23.如权利要求22所述的装置,还包括:用于使与所述写入请求的地址相关联的一个或多个缓存线无效化的装置。
24.如权利要求23所述的装置,还包括:用于向远程平台发送一个或多个缓存连贯性消息,以使得所述远程平台使所述远程平台中的与所述写入请求的地址相关联的一个或多个缓存线无效化的装置。
25.如权利要求24所述的装置,还包括:用于在所述远程平台中的一个或多个缓存线已被无效化之后向所述CXL集线器装置发送所述一致存储器请求的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/443,379 | 2021-07-26 | ||
US17/443,379 US20210349840A1 (en) | 2021-07-26 | 2021-07-26 | System, Apparatus And Methods For Handling Consistent Memory Transactions According To A CXL Protocol |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686769A true CN115686769A (zh) | 2023-02-03 |
Family
ID=78412708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210722393.1A Pending CN115686769A (zh) | 2021-07-26 | 2022-06-24 | 根据cxl协议处理一致存储器事务的系统、装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210349840A1 (zh) |
EP (1) | EP4124963B1 (zh) |
CN (1) | CN115686769A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093540B2 (en) | 2022-04-21 | 2024-09-17 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for selecting devices in tiered memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016014044A1 (en) * | 2014-07-22 | 2016-01-28 | Hewlett-Packard Development Company, Lp | Node-based compute device with protocol-based priority |
US11379236B2 (en) * | 2019-12-27 | 2022-07-05 | Intel Corporation | Coherency tracking apparatus and method for an attached coprocessor or accelerator |
CN113129205A (zh) * | 2019-12-31 | 2021-07-16 | 华为技术有限公司 | 一种电子设备及计算机系统 |
US11983437B2 (en) * | 2020-05-26 | 2024-05-14 | Intel Corporation | System, apparatus and method for persistently handling memory requests in a system |
US20210374056A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for scalable and coherent memory devices |
US20210011864A1 (en) * | 2020-09-25 | 2021-01-14 | Francesc Guim Bernat | System, apparatus and methods for dynamically providing coherent memory domains |
US20220358042A1 (en) * | 2021-05-07 | 2022-11-10 | Samsung Electronics Co., Ltd. | Coherent memory system |
-
2021
- 2021-07-26 US US17/443,379 patent/US20210349840A1/en active Pending
-
2022
- 2022-03-30 EP EP22165696.0A patent/EP4124963B1/en active Active
- 2022-06-24 CN CN202210722393.1A patent/CN115686769A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
CN116431530B (zh) * | 2023-02-08 | 2024-03-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4124963B1 (en) | 2024-08-28 |
US20210349840A1 (en) | 2021-11-11 |
EP4124963A1 (en) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
CN1575455B (zh) | 优化输入/输出应用的分布式读写高速缓存实现方案 | |
CN101088076B (zh) | 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
KR101385430B1 (ko) | 영구 메모리들을 위한 캐시 일관성 프로토콜 | |
CN114756502A (zh) | 片上原子事务引擎 | |
EP3335124B1 (en) | Register files for i/o packet compression | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
KR20000076539A (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
WO2000036514A1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
TW200534110A (en) | A method for supporting improved burst transfers on a coherent bus | |
CN115686769A (zh) | 根据cxl协议处理一致存储器事务的系统、装置和方法 | |
JP2012038293A5 (zh) | ||
US11119927B2 (en) | Coordination of cache memory operations | |
CN101751370B (zh) | 在穿过串行接口总线时保持缓存一致性的系统和方法 | |
US20080109610A1 (en) | Selective snooping by snoop masters to locate updated data | |
US20070073977A1 (en) | Early global observation point for a uniprocessor system | |
CN114341821A (zh) | 生产者至消费者的主动直接高速缓存传送 | |
US9983874B2 (en) | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling | |
US20080082756A1 (en) | Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems | |
US11126568B2 (en) | Object coherence in distributed shared memory systems | |
CN114430819B (zh) | 数据处理系统及其处理单元和处理方法 | |
US8938588B2 (en) | Ensuring forward progress of token-required cache operations in a shared cache | |
CN118656265A (zh) | 多核处理器的独占访问控制方法、多核处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |