首页> 中国专利> 片上一致性互联结构、缓存一致性互联方法及系统

片上一致性互联结构、缓存一致性互联方法及系统

摘要

本发明实施例公开了一种片上一致性互联结构、缓存一致性互联方法及系统,其中,片上一致性互联结构,包括:至少一个计算快速链接CXL端口,用于与CXL设备相连;端口控制器,用于通过CXL端口与CXL设备进行耦合,通过CXL端口使用CXL.cache协议、CXL.mem协议以及CXL.io协议中的至少一种CXL协议向CXL设备发送事务请求或接收CXL设备的响应,该片上一致性互联结构可提高处理器的兼容性。

著录项

  • 公开/公告号CN112463687A

    专利类型发明专利

  • 公开/公告日2021-03-09

    原文格式PDF

  • 申请/专利权人 海光信息技术股份有限公司;

    申请/专利号CN202011333035.9

  • 发明设计人 杨凯歌;林江;曹俊;

    申请日2020-11-24

  • 分类号G06F13/40(20060101);G06F13/42(20060101);G06F13/364(20060101);

  • 代理机构11237 北京市广友专利事务所有限责任公司;

  • 代理人张仲波

  • 地址 300000 天津市滨海新区天津华苑产业区海泰西路18号北2-204工业孵化-3-8

  • 入库时间 2023-06-19 10:08:35

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种片上一致性互联结构、缓存一致性互联方法及系统。

背景技术

计算机系统中的不同元件、电路板或者服务器节点之间通过互联总线标准相互通信。例如,常用的PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准),提供了主板上各个元件之间的互联,并且使得包含PCIe接口的扩展模块可以通过PCIe插槽扩展到计算机系统中。PCIe作为输入/输出(I/O)协议工作良好,但是在多核以及异构系统中,它不能提供足够的支持。

如今,用户对计算机计算能力的需求越来越高,服务器用户的需求尤其明显。为了提高计算机的计算能力涌现出诸如FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、GPU(Graphics Processing Unit,图形处理器)等加速芯片,但是由于PCIe标准不能很好解决CPU和设备以及设备与设备之间的一致性互联要求,于是出现了CXL(ComputeExpress Link,计算快速链接)标准组织,以实现CPU与诸如GPU、FPGA等(数据中心)专用加速芯片间的快速互联。

CXL标准实现了CPU与加速芯片或扩展存储之间的一致性互联,但是由于一些CPU内有自身的互联标准,需要将内部互联标准和CXL进行兼容扩展才能实现从CPU的互联标准到CXL标准的兼容和扩展。使用这种兼容和扩展的CPU才可以通过CXL兼容接口扩展使用CXL标准的设备。

发明内容

有鉴于此,本发明实施例提供一种片上一致性互联结构、缓存一致性互联方法及系统,能够有效提高处理器的兼容性。

第一方面,本发明实施例提供一种片上一致性互联结构,包括:至少一个计算快速链接CXL端口,用于与CXL设备相连;端口控制器,用于通过CXL端口与CXL设备进行耦合,通过CXL端口使用CXL.cache协议、CXL.mem协议以及CXL.io协议中的至少一种CXL协议向CXL设备发送事务请求或接收CXL设备的响应。

可选的,所述端口控制器,包括:第一CXL模块,用于使用CXL.cache协议向CXL设备发送事务请求以及接收CXL设备的响应;第二CXL模块,用于使用CXL.mem协议向CXL设备发送事务请求以及接收CXL设备的响应;第三CXL模块,用于使用CXL.io协议向CXL设备发送事务请求或接收CXL设备的响应。

可选的,所述端口控制器还包括:协议控制器,用于响应于所述CXL设备中包括高速缓存,控制所述第一CXL模块使用CXL.cache协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应;响应于所述CXL设备中包括可访问存储器,控制所述第二CXL模块使用CXL.mem协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应;响应于所述CXL设备中包括高速缓存以及可访问存储器,控制所述第一CXL模块使用CXL.cache协议与所述CXL设备通信,控制所述第二CXL模块使用CXL.mem协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送事务请求或接收所述CXL设备的响应。

可选的,所述第一CXL模块还作为所述片上一致性互联结构中的一致性主模块。

可选的,所述第二CXL模块还作为所述片上一致性互联结构中的一致性从模块。

可选的,所述第三CXL模块还用于使用高速串行计算机扩展总线标准PCIe协议处理PCIe事务。

可选的,所述CXL设备中包括高速缓存和/或可访问存储器。

第二方面,本发明实施例提供了一种缓存一致性互联方法,包括:接收来自处理器的事务请求;使用计算快速链接CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应。

可选的,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,包括:响应于所述CXL设备中包括高速缓存,使用CXL.cache协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。

可选的,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,包括:响应于所述CXL设备中包括可访问存储器,使用CXL.mem协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。

可选的,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,包括:响应于所述CXL设备中包括高速缓存以及可访问存储器,使用CXL.cache协议、CXL.mem协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送事务请求或接收所述CXL设备的响应。

第三个面,本发明实施例提供了一种缓存一致性互联系统,包括:如上述任意一种片上一致性互联结构,还包括处理器以及CXL设备;所述处理器通过所述片上一致性互联结构与所述CXL设备相连。

本发明一个或多个实施例的片上一致性互联结构,扩展了CXL接口,使得处理器可以与CXL设备进行互联,增强了处理器的异构扩展能力,提高了处理器的兼容性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是根据本发明一个或多个实施例示出的一种片上一致性互联结构的示意图;

图2是根据本发明一个或多个实施例示出的一种片上一致性互联结构与CXL设备相连的示意图;

图3是根据本发明一个或多个实施例示出的一种片上一致性互联结构与CXL设备相连的示意图;

图4是根据本发明一个或多个实施例示出的一种片上一致性互联结构与CXL设备相连的示意图;

图5是根据本发明一个或多个实施例示出的一种缓存一致性互联系统的结构示意图;

图6是根据本发明一个或多个实施例示出的一种缓存一致性互联方法的流程图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1是根据本发明一个或多个实施例示出的一种片上一致性互联结构的示意图,该片上一致性互联结构例如可以是应用于缓存一致性互联系统中的DF(DataInterconnect Fabric,片上一致性互联结构),该片上一致性互联结构可用于实现处理器与CXL设备之间的一致性互联,如图1所示,该片上一致性互联结构10包括:

至少一个CXL端口11,用于与CXL设备相连;

其中,CXL设备例如可以包括FPGA、存储器以及GPU等。

端口控制器12,用于通过CXL端口与CXL设备进行耦合,通过CXL端口使用CXL.cache协议、CXL.mem协议以及CXL.io协议中的至少一种CXL协议向CXL设备发送事务请求或接收CXL设备的响应。

其中,端口控制器例如可以包括如下结构:

耦合电路,用于与CXL设备耦合;CXL端口则可用于选择性的直接与CXL设备相连或通过所述耦合电路与CXL设备相连。

事务控制器,可选择的与不同类型的CXL设备进行耦合,可用于对CXL协议所列出的相关事务的处理及控制,其中,CXL设备的类型例如可包括包含有高速缓存的CXL设备、包含有可访问存储器的CXL设备以及即包含有高速缓存又包含有可访问存储器的CXL设备这三种类型。

协议控制器,用于基于所述事务控制器的控制通过CXL端口使用CXL协议向CXL设备发送事务请求或接收CXL设备的响应;其中,CXL协议例如可以包括CXL标准中规定的传输层与协议层的协议,例如包括,CXL.cache协议、CXL.mem协议以及CXL.io协议。相应的,协议控制器根据其控制的协议可以被划分为第一协议控制器以及第二协议控制器,第一协议控制器用于使用CXL.cache协议向CXL设备发送事务请求以及接收CXL设备的响应,或者用于使用CXL.mem协议向CXL设备发送事务请求以及接收CXL设备的响应;第二协议控制器用于使用CXL.io协议向CXL设备发送事务以及接收CXL设备的响应。

选择器,用于选择性的将第一协议控制器或第二协议控制器耦合到所述CXL端口。

在本发明的一个或多个实施例中,物理接口可以是PCIe,故,片上一致性互联结构可通过PCIe链路向CXL设备发送事务请求或接收CXL设备的响应。

本发明一个或多个实施例的片上一致性互联结构,扩展了CXL接口,使得处理器可以与CXL设备进行互联,增强了处理器的异构扩展能力,提高了处理器的兼容性。

在本发明的一个或多个实施例中,所述端口控制器可包括:第一CXL模块,用于使用CXL.chache协议向CXL设备发送事务请求以及接收CXL设备的响应,该第一CXL模块例如可以用于通过CXL.cache协议完成与高速缓存相关的事务处理;第二CXL模块,用于使用CXL.mem协议向CXL设备发送事务请求以及接收CXL设备的响应,该第二CXL模块例如可以通过CXL.mem协议完成与可访问存储相关的事务处理;第三CXL模块,用于使用CXL.io协议向CXL设备发送事务请求或接收CXL设备的响应,该第三CXL模块例如可以通过CXL.io协议与CXL设备相连,处理CXL设备的CXL.io规定的事务。

在本发明的一个或多个实施例中,所述端口控制器还可包括:协议控制器,用于响应于所述CXL设备中包括高速缓存,控制所述第一CXL模块使用CXL.chache协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应;例如,以图2所示为例,其中,CXL.CM表示第一CXL模块,CXL.CS表示第二CXL模块,CXL.IOMS表示第三CXL模块,如图2所示,CXL设备中包括高速缓存,DF通过使用CXL.CM与CXL.IOMS分别通过CXL.cache协议和CXL.io协议与CXL设备通信。

响应于所述CXL设备中包括可访问存储器,控制所述第二CXL模块使用CXL.mem协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应;例如,以图3所示为例,同样,CXL.CM表示第一CXL模块,CXL.CS表示第二CXL模块,CXL.IOMS表示第三CXL模块,CXL设备中包括可访问存储器,DF通过使用CXL.CS与CXL.IOMS分别通过CXL.mem协议和CXL.io协议与CXL设备通信。

响应于所述CXL设备中包括高速缓存以及可访问存储器,控制所述第一CXL模块使用CXL.chache协议与所述CXL设备通信,控制所述第二CXL模块使用CXL.mem协议与所述CXL设备通信,以及控制所述第三CXL模块使用CXL.io协议与所述CXL设备通信,以向所述CXL设备发送事务请求或接收所述CXL设备的响应。例如,以图4所示为例,同样,CXL.CM表示第一CXL模块,CXL.CS表示第二CXL模块,CXL.IOMS表示第三CXL模块,CXL设备中包括可访问存储器以及高速缓存,DF通过使用CXL.CM、CXL.CS以及CXL.IOMS分别通过CXL.cache协议、CXL.mem协议以及CXL.io协议与CXL设备通信。

在本发明的一个或多个实施例中,所述第一CXL模块还可作为所述片上一致性互联结构中的一致性主模块,以图5所示的一致性互联系统为例,图5中所示的CXL.CM模块为该第一CXL模块的一个示例,在图5所示的系统中,CXL.CM模块可作为DF中的一个一致性主模块使用,用以与系统中的其他模块形成一致性互联。此外,片上一致性互联结构还可以具有其他一致性主模块,如图5中所示的CM(coherent master,一致性主模块),该CM可用于与包含高速缓存的设备,例如CPU相连。

在本发明的一个或多个实施例中,所述第二CXL模块还可作为所述片上一致性互联结构中的一致性从模块,仍以图5所示的一致性互联系统为例,图5中所示的CXL.CS模块为该第二CXL模块的一个示例,在图5所示的系统中,CXL.CS模块可作为DF中的一个一致性从模块使用,例如,当DF中其他模块或CXL设备需要访问CXL可访问存储器时,CXL.CS模块可作为探针过滤的主代理(home agent)并维护一致性目录协议。此外,片上一致性互联结构还可以具有其他一致性从模块,如图5中所示的CS(coherent slave,一致性从模块),该CS例如可用于与系统存储控制器的设备相连,并在片上一致性互联结构中可以作为探针过滤的主代理,可用于维护目录式一致性。需要说明的是,CS中可以具有探针过滤,也可以不具有探针过滤,且探针过滤器可以是但不限于目录式探针过滤。在本发明的一个或多个实施例中,所述CXL设备中包括高速缓存和/或可访问存储器。例如,如图2至4所示,本发明一个或多个实施例的片上一致性互联结构可支持与包括高速缓存的CXL设备、包括可访问存储器的CXL设备,以及即包括高速缓存又包括可访问存储器的CXL设备之间进行一致性互联。

在本发明的一个或多个实施例中,所述第三CXL模块还可用于使用PCIe协议处理PCIe事务。

图6是根据本发明一个或多个实施例示出的一种缓存一致性互联方法的流程图,该方法可由上述一致性互联结构实现,如图6所示,该方法包括:

步骤601:接收来自处理器的事务请求;

步骤602:使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应。

仍以图5所示的缓存一致性系统为例,DF接收来自CPU的事务请求,通过CXL.CM模块或CXL.CS模块使用CXL协议通过CXL端口向CXL设备发送事务请求以及接收CXL设备的响应,其中,CXL设备可与图5中所示的任意一个CXL端口连接,图5中暂未示出CXL设备。

在本发明的一个或多个实施例中,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,可包括:

响应于所述CXL设备中包括高速缓存,使用CXL.cache协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。仍以图2所示为例,在CXL设备中包括高速缓存的情况下,DF通过CXL.CM与CXL.IOMS分别通过CXL.cache和CXL.io协议与CXL设备通信,以实现向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。

在本发明的一个或多个实施例中,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,可包括:

响应于所述CXL设备中包括可访问存储器,使用CXL.mem协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。仍以图3所示为例,在CXL设备中包括可访问存储器的情况下,DF使用CXL.CS模块与CXL.IOMS模块分别通过CXL.cache协议和CXL.io协议与CXL设备通信,以向所述CXL设备发送所述事务请求以及接收所述CXL设备的响应。

在本发明的一个或多个实施例中,使用CXL.cache协议、CXL.io协议以及CXL.io协议中的至少一种CXL协议通过CXL端口向CXL设备发送所述事务请求以及接收所述CXL设备的响应,可包括:响应于所述CXL设备中包括高速缓存以及可访问存储器,使用CXL.cache协议、CXL.mem协议以及CXL.io协议与所述CXL设备通信,以向所述CXL设备发送事务请求或接收所述CXL设备的响应。仍以图4所示为例,在CXL设备中包括可访问存储器以及高速缓存的情况下,DF通过使用CXL.CM模块、CXL.CS模块与CXL.IOMS模块分别通过CXL.cache协议、CXL.mem协议和CXL.io协议与CXL设备通信。

本发明一个或多个实施例还提供了一种缓存一致性互联系统,该系统包括上述任意一种片上一致性互联结构,还包括处理器以及CXL设备;所述处理器通过所述片上一致性互联结构与所述CXL设备相连。以图5所示的一致性互联系统为例进行说明,在图5中,处理器以CPU为例,片上一致性互联结构以DF为例,如图5所示,CPU与DF中的CM(一致性主模块)相连,系统存储器与DF中的CS(一致性从模块)相连,其中,DF中还可具有CKE(CoherentSocket Extenders,芯片插槽间一致性扩展模块)模块,该模块可用于多处理多插槽的扩展,其中,CXL接口用于连接CXL设备(图中暂未示出)。DF中还设置有CXL.CM模块、CXL.CS模块以及CXL.IOMS(Iuput/output master/slave,输入/输出设备主/从)模块,其中,CXL.CM模块以及CXL.CS模块与CXL.cache以及CXL.mem的传输层与协议层电路相连,CXL.IOMS模块与CXL.io或PCIe传输层与协议层电路相连,其中,CXL.CM模块、CXL.CS模块以及CXL.IOMS模块的相关电路模块中可包括用于实现事务请求处理队列、相关控制逻辑、地址转换逻辑、探针过滤与目录式一致性维护等用于系统扩展和一致性互联的电路模块。需要说明的是,图5中所示的一致性互联系统示出了该系统具有两个CXL端口的一种情况,在实际应用中,系统所具有的CXL端口的数量可根据需扩展的CXL设备的数量进行设置。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号