CN117827726A - 非透明桥传输的实现方法、装置、电子设备和存储介质 - Google Patents
非透明桥传输的实现方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117827726A CN117827726A CN202410250980.4A CN202410250980A CN117827726A CN 117827726 A CN117827726 A CN 117827726A CN 202410250980 A CN202410250980 A CN 202410250980A CN 117827726 A CN117827726 A CN 117827726A
- Authority
- CN
- China
- Prior art keywords
- ntb
- message
- port
- host domain
- module
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种非透明桥传输的实现方法、装置、电子设备和存储介质,路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认第一报文的目的端口是否挂载NTB,响应于确认为是,将第一报文经过集中式交换模块发送给NTB虚拟侧;NTB虚拟侧将第一报文转发至转换模块;转换模块将第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将第二报文经过路由模块和集中式交换模块转发至NTB链路侧,NTB链路侧为第一主机域中与所述第二主机域物理连接的端点设备。这样,利用集中式交换模块,不需要对第一主机域的每个端口都设置物理布线与第二主机域连接来实现NTB挂载,很大程度降低了布线难度。
Description
技术领域
本公开的实施例涉及通信技术领域,具体涉及非透明桥传输的实现方法、装置、电子设备和存储介质。
背景技术
PCIe(Peripheral Component Interconnect Express,PCI-Express)是一种高速串行计算机扩展总线标准,在中央处理器(Central Processing Unit,CPU)中大量使用。单一主机域的PCIe交换不能满足多种应用场景,且PCIe协议规定不同主机域之间不能直接通信,因此,需要通过可以实现跨域通信的桥接模块——非透明桥(Non-TransparentBridge,NTB)来实现不同主机域之间的通信功能。
然而,NTB中虚拟侧需要通过pipe接口(PCIe的 PHY 接口)连接第一主机域的下游端口;链路侧需要通过pipe接口连接用于连接第二主机域的物理层子层(PCS,PhysicalCoding Sublayer)。以上过程需要物理布线,因此,NTB只能挂载于临近端口。若要任一端口都可挂载NTB,则需要大量的端口多路选择器(MUX)与之进行切换,物理布线难度大,时序难收敛。
因此,如何在多个端口都挂载NTB时,降低布线复杂度,是本领域技术人员亟需解决的技术问题。
发明内容
本公开的实施例提出了非透明桥传输的实现方法、装置、电子设备和存储介质。
第一方面,本公开的实施例提供了一种非透明桥传输的实现方法,该方法包括:
路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认上述第一报文的目的端口是否挂载NTB,响应于确认为是,将上述第一报文经过集中式交换模块发送给NTB虚拟侧;
上述NTB虚拟侧将上述第一报文转发至转换模块,上述NTB虚拟侧为虚拟端点;
上述转换模块将上述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将上述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,上述NTB链路侧为第一主机域中与上述第二主机域物理连接的端点设备。
在一些可选的实施方式中,上述方法还包括:
第一主机域的上游端口中的NTB使能寄存器根据上述第一报文,配置NTB链路侧和虚拟下游端口,上述虚拟下游端口的端口号为上述NTB链路侧的端口号,上述虚拟下游端口用于与上述NTB虚拟侧构成PCIe拓扑结构。
在一些可选的实施方式中,上述方法还包括:
上述路由模块收集所有端口的地址信息、ID信息和属性信息。
在一些可选的实施方式中,上述路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认上述第一报文的目的端口是否挂载NTB,包括:
上述路由模块响应于接收到第一主机域的上游端口发送的第一报文,从上述所有端口的地址信息中,确定与上述第一报文的地址域段匹配的地址信息,得到匹配地址信息;
上述路由模块根据上述匹配地址信息,得到上述第一报文的目的端口;
上述路由模块根据上述匹配地址信息对应的属性信息,得到上述第一报文的目的端口是否挂载NTB。
在一些可选的实施方式中,上述将上述第一报文经过集中式交换模块发送给NTB虚拟侧之前,上述方法还包括:
上述转换模块将上述第一报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口。
在一些可选的实施方式中,上述将上述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,包括:
上述转换模块将上述第二报文发送至上述路由模块;
上述路由模块将上述第二报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口,并将上述第二报文发送至上述集中式交换模块;
上述集中式交换模块根据上述第二报文的目的端口,将上述第二报文经过所述路由模块发送至NTB链路侧。
在一些可选的实施方式中,上述方法还包括:
上述NTB链路侧将上述第二报文通过物理连接传输至第二主机域的下游端口;
上述第二主机域的下游端口将上述第二报文经过路由模块和集中式交换模块转发至第二主机域的上游端口。
第二方面,本公开的实施例提供了一种非透明桥传输的实现系统,该系统包括:
第一主机域的上游端口,用于向路由模块发送第一报文;
路由模块,用于响应于接收到上述第一主机域的上游端口发送的第一报文,确认上述第一报文的目的端口是否挂载NTB,响应于确认为是,将上述第一报文经过集中式交换模块发送给NTB虚拟侧;
集中式交换模块,用于将上述第一报文由上述路由模块转发至NTB虚拟侧;
NTB虚拟侧,用于将上述第一报文转发至转换模块,上述NTB虚拟侧为虚拟端点;
转换模块,用于将上述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将上述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,上述NTB链路侧为上述第一主机域中与上述第二主机域物理连接的端点设备;
上述路由模块和上述集中式交换模块,还用于将上述第二报文由上述转换模块转发至上述NTB链路侧;
NTB链路侧,用于接收上述第二报文。
第三方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被一个或多个处理器执行时实现如第一方面中任一实现方式描述的方法。
为了在使得任一端口都可挂载NTB时,降低布线复杂度,本公开的实施例提供的非透明桥传输的实现方法、装置、电子设备和存储介质,通过路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认上述第一报文的目的端口是否挂载NTB,响应于确认为是,将上述第一报文经过集中式交换模块发送给NTB虚拟侧;上述NTB虚拟侧将上述第一报文转发至转换模块,上述NTB虚拟侧为虚拟端点;上述转换模块将上述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将上述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,上述NTB链路侧为第一主机域中与上述第二主机域物理连接的端点设备。
这样,不需要对第一主机域的每个端口都设置物理布线与NTB连接,很大程度降低了布线难度;同时,不受链路宽度影响,链路侧可与对侧域多种宽度的设备连接,且可以降低一定延时。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显。附图仅用于示出具体实施方式的目的,而并不认为是对本公开的限制。在附图中:
图1是根据本公开的非透明桥传输的实现方法的基础PCIe拓扑示意图;
图2是根据本公开的非透明桥传输的实现方法的基本NTB结构示意图;
图3是根据本公开的非透明桥传输的实现方法的一个实施例的时序图;
图4是根据本公开的非透明桥传输的实现方法的一个实施例的报文流向图;
图5是根据本公开的非透明桥传输的实现系统的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
PCIe(Peripheral Component Interconnect Express,PCI-Express)是第三代高速串行计算机扩展总线标准,无论是在速度、性能、功能,还是可扩展性和兼容性等各方面,与之前相比都有显著改进和提高。PCIe协议在CPU中大量使用,然而,单一主机域的PCIe交换已经不能满足多种应用场景的需求,多主机域间通信的需求越来越大。但是,PCIe协议规定不同主机域之间不能直接通信,此时就需要一个可以实现跨域通信的桥接模块——非透明桥(Non-Transparent Bridge,NTB)实现此功能。
参见图1,图1为基础PCIe拓扑示意图。PCIe协议包含根组件(Root Complex,RC),交换设备(Switch),桥接设备(bridge),端点设备(Endpoint)四个角色。
其中,RC作为PCIe拓扑结构的根,CPU通过RC下发和接收报文,RC可以连接Switch,也可以连接端点。Switch可以等效成由若干个Bridge组成,Switch相当于对RC进行扇出,Endpoint是PCIe拓扑的端点。
CPU通过RC向下枚举来发现域内所有设备,枚举遵循深度优先算法,从每一级发现的第一个设备开始,逐级向下扫描,直到Endpoint结束,具体算法此处不作赘述。由此可知,CPU最深只能发现Endpoint,不能发现Endpoint对侧的CPU,也就不能与其进行通信,所以通过在两个CPU之间建立非透明桥NTB的方法进行通信。
参见图2,图2为基本NTB结构示意图。将端点设备1称为NTB的虚拟侧,端点设备2称为NTB的链路侧。虚拟侧属于第一主机域,链路侧属于第二主机域。虚拟侧不经过实际物理链路(例如Serdes接口),直接通过pipe接口与主机域VS0中的下游端口相连;链路侧则是通过实际的物理链路与主机域VS1的下游端口或者RC相连。也就是说,链路侧与虚拟侧的下游端口共用模拟链路,当不使用NTB时,模拟链路也会与下游端口相连。
这样,第一主机域和第二主机域需要通过pipe接口、虚拟侧和链路侧以及物理链路才能实现连接,受限于物理布线,NTB只能挂载到临近端口。若想任一端口都挂载NTB,则需要大量的端口MUX进行切换,物理布线难度大,时序难收敛。此外,这种情况下还需要额外增加两个端点控制器,资源增加较多。
为了解决以上技术问题,下面结合附图和实施例对本公开做进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
参考图3,其示出了根据本公开的非透明桥传输的实现方法的一个实施例的时序图,该非透明桥传输的实现方法包括以下步骤301至步骤305:
步骤301,路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认第一报文的目的端口是否挂载NTB。
当第一主机域中的第一报文需要传输至第二主机域时,上游端口会将由第一主机域CPU、RC逐级下发的第一报文发送至路由模块,以便路由模块根据第一报文,判断该报文是否需要传输至其他主机域,挂载NTB。若其不需要传输至其他主机域,不挂载NTB,则可以直接传输至集中式交换模块,进而转发至目的端口。若其需要传输至其他主机域,挂载NTB,则需要执行后续步骤302至305,先对报文进行转化,再传输至目的端口。
作为一种可能的实施方式,路由模块可以收集所有端口的地址信息、ID信息和属性信息。所有端口包括第一主机域的上游端口和下游端口以及第二主机域的上游端口和下游端口。参见图4,图4为是根据本公开的非透明桥传输的实现方法的一个实施例的报文流向图。路由模块可以收集端口0至端口17的地址信息、ID信息和属性信息。其中,地址信息包括BAR空间地址信息;ID信息包括总线号(bus number),设备号(device numer)和功能号(function number);属性信息包括该端口是上游端口还是下游端口,以及该端口是否挂载NTB。
进一步,在路由模块确认上述第一报文的目的端口是否挂载NTB时,可以先响应于接收到第一主机域的上游端口发送的第一报文,从所有端口的地址信息中,确定与上述第一报文的地址域段匹配的地址信息,得到匹配地址信息;再根据匹配地址信息,得到第一报文的目的端口;最后,根据匹配地址信息对应的属性信息,得到第一报文的目的端口是否挂载NTB。
步骤302,响应于确认为是,路由模块将第一报文经过集中式交换模块发送给NTB虚拟侧。
路由模块可以根据不同的报文类型选择不同的路由规则。在第一报文的目的端口挂载NTB时,路由模块将第一报文经过集中式交换模块后,集中式交换模块会通过用于挂载NTB虚拟侧的片内端口,将第一报文发送至NTB虚拟侧,使得报文进入NTB结构中,便于对报文进行转换。
具体的,先将第一报文随路信息中的目的端口标为集中式交换模块上设置的NTB片内端口,再将标记后的第一报文传输至集中式交换模块;然后,集中式交换模块再根据目的端口将第一报文发送至NTB虚拟侧。需要说明的是,在集中式交换模块在每次进行转发之前,都可以根据报文的优先级进行全芯片的端口仲裁调度。
需要说明的是,NTB虚拟侧为虚拟端点,也就是说,NTB虚拟侧不再使用实际的端点控制器,而是只截取PCIe协议中的事务层和配置空间,形成虚拟端点。与NTB虚拟侧连接的下游端口,也被简化成一套具有下游端口属性的配置空间,不再是真正的端口。通过以上设置,可以减少端点控制器的数量,进而减少资源的浪费。
为了符合PCIe的拓扑结构,在一种可能的实施方式中,在上述步骤301之前,第一主机域的上游端口中的NTB使能寄存器可以根据第一报文,配置NTB链路侧和虚拟下游端口。
参见图4,图4中的NTB链路侧(即端口5)和第二主机域物理连接,因此,将其配置为NTB链路侧,也就是说,NTB链路侧和下游端口控制器共用,默认情况下的形态是下游端口,当使用NTB时,将下游端口的配置空间替换成端点设备的配置空间,进一步减少资源的浪费。此外,其余端口均为下游端口。
继续参见图4,将与NTB虚拟侧组合在一起的虚拟下游端口的端口号配置为NTB链路侧的端口号,这样,从软件的的角度来看,虚拟下游端口和NTB虚拟侧组合在一起,仍然可以看成是一个下游端口上挂载了一个端点设备。
在此情况下,两个主机域的CPU枚举域内拓扑时,虚拟下游端口会被第一主机域发现,NTB链路侧(即端口5)会被第二主机域发现,与图2所示的基本NTB结构一致。
步骤303,NTB虚拟侧将第一报文转发至转换模块。
步骤304,转换模块将第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文。
转换模块通过替换报文基地址的方式,将第一主机域的报文地址替换成第二主机域的地址,目的是使报文在跨域NTB后能够正确路由。通过ID查找表的方式将第一主机域的ID转换成第二主机域的ID,目的是跨越NTB后能够正确指示报文来源,以及使得响应报文能够正确匹配到请求报文。
步骤305,转换模块将第二报文经过路由模块和集中式交换模块转发至NTB链路侧。
NTB链路侧为第一主机域中与上述第二主机域物理连接的端点设备。将第二报文经过路由模块和集中式交换模块转发至NTB链路侧,相当于,让第二报文进入了第二主机域。
由于第二报文的ID信息和地址信息都属于第二主机域,与NTB链路侧物理连接的下游端口或上游端口在接收到第二报文之后,可以通过常规路由将第二报文传输至第二主机域的CPU,此部分路由的具体过程在此不做限制。
在一种可能的实施方式中,上述步骤305中,转换模块将第二报文经过路由模块和集中式交换模块转发至NTB链路侧时,转换模块可以先将第二报文发送至路由模块;路由模块将第二报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口,并将第二报文发送至上述集中式交换模块;集中式交换模块根据第二报文的目的端口,将上述第二报文经过路由模块发送至NTB链路侧,其中路由模块实现的功能与上述过程类似,在此不再赘述。
在步骤305之后,作为一种可能的实施方式,NTB链路侧可以将第二报文通过物理连接传输至第二主机域的下游端口;第二主机域的下游端口将上述第二报文经过路由模块和集中式交换模块转发至第二主机域的上游端口。例如,参见图4,第二主机域的下游端口(即端口6)与第一主机域的NTB链路侧(即端口5)物理连接。第二报文通过物理连接传输至端口6,端口6可以再将第二报文传输至路由模块。由于其不需要挂载NTB,可以直接经过集中式交换模块传输至上游端口11,进而传输至第二主机域的RC、CPU。
本公开的上述实施例提供的非透明桥传输的实现方法,无论哪个端口需要挂载NTB,都可以通过挂载在集中式交换模块上的NTB对其进行逻辑转换后,再发送到与其他主机域连接的端口,完成数据传输。本公开的上述实施例可以实现至少以下有益效果:
(1)任一下游端口都可以挂载NTB,不受到物理布线的影响。
(2)避免NTB和所有的下游端口都进行MUX,很大程度降低布线难度。
(3)不受链路宽度影响,链路侧可与对侧域多种宽度的设备连接。
(4)用虚拟端点代替普通端点,不再需要设置两个实际的端点设备,节省资源。
(5)将虚拟端点挂载集中式交换模块上,可以大幅减少与其他接口的连线。
(6)相比其他实现方式,可以降低一定延时。
图5示出了可以应用本公开的非透明桥传输的实现系统500。如图5所示,非透明桥传输的实现系统500可以包括第一主机域的上游端口501、路由模块502、集中式交换模块503、NTB虚拟侧504、转换模块505和NTB链路侧506。
其中,第一主机域的上游端口501,用于向路由模块发送第一报文;
路由模块502,用于响应于接收到上述第一主机域的上游端口发送的第一报文,确认上述第一报文的目的端口是否挂载NTB,响应于确认为是,将上述第一报文经过集中式交换模块发送给NTB虚拟侧;
集中式交换模块503,用于将上述第一报文由上述路由模块转发至NTB虚拟侧;
NTB虚拟侧504,用于将上述第一报文转发至转换模块,上述NTB虚拟侧为虚拟端点;
转换模块505,用于将上述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将上述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,上述NTB链路侧为第一主机域中与上述第二主机域物理连接的端点设备;
上述路由模块502和上述集中式交换模块503,还用于将上述第二报文由上述转换模块转发至上述NTB链路侧;
NTB链路侧506,用于接收上述第二报文。
在本实施例中,非透明桥传输的实现系统500的具体处理及其所带来的技术效果可分别参考图3对应实施例中步骤301、步骤302、步骤303、步骤304和步骤305的相关说明,在此不再赘述。
在一些可选的实施方式中,上述第一主机域的上游端口501包括NTB使能寄存器,具体用于根据上述第一报文,配置NTB链路侧和虚拟下游端口,上述虚拟下游端口的端口号为上述NTB链路侧的端口号,上述虚拟下游端口用于与上述NTB虚拟侧构成PCIe拓扑结构。
在一些可选的实施方式中,上述路由模块502,还用于收集所有端口的地址信息、ID信息和属性信息。
在一些可选的实施方式中,上述路由模块502,具体用于响应于接收到第一主机域的上游端口发送的第一报文,从上述所有端口的地址信息中,确定与上述第一报文的地址域段匹配的地址信息,得到匹配地址信息;根据上述匹配地址信息,得到上述第一报文的目的端口;根据上述匹配地址信息对应的属性信息,得到上述第一报文的目的端口是否挂载NTB。
在一些可选的实施方式中,上述转换模块505,还用于将上述第一报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口。
在一些可选的实施方式中,上述转换模块505,还用于将上述第二报文发送至上述路由模块;
上述路由模块502,还用于将上述第二报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口,并将上述第二报文发送至上述集中式交换模块;
上述集中式交换模块503,还用于根据上述第二报文的目的端口,将上述第二报文经过所述路由模块发送至NTB链路侧。
在一些可选的实施方式中,上述NTB链路侧506,还用于将上述第二报文通过物理连接传输至第二主机域的下游端口;
上述非透明桥传输的实现系统500,还包括:
第二主机域的下游端口507,用于将上述第二报文经过路由模块和集中式交换模块转发至第二主机域的上游端口;
第二主机域的上游端口508,用于接收第二报文。
需要说明的是,本公开的实施例提供的非透明桥传输的实现系统500各模块和端口的实现细节和技术效果可以参考本公开中其它实施例的说明,在此不再赘述。
下面参考图6,其示出了适于用来实现本公开的电子设备的计算机系统600的结构示意图。图6示出的计算机系统600仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算机系统600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许计算机系统600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备的计算机系统600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备实现如图3所示的实施例及其可选实施方式示出的非透明桥传输的实现方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种非透明桥传输的实现方法,其特征在于,所述方法包括:
路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认所述第一报文的目的端口是否挂载NTB,响应于确认为是,将所述第一报文经过集中式交换模块发送给NTB虚拟侧;
所述NTB虚拟侧将所述第一报文转发至转换模块,所述NTB虚拟侧为虚拟端点;
所述转换模块将所述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将所述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,所述NTB链路侧为第一主机域中与所述第二主机域物理连接的端点设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
第一主机域的上游端口中的NTB使能寄存器根据所述第一报文,配置NTB链路侧和虚拟下游端口,所述虚拟下游端口的端口号为所述NTB链路侧的端口号,所述虚拟下游端口用于与所述NTB虚拟侧构成PCIe拓扑结构。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述路由模块收集所有端口的地址信息、ID信息和属性信息,所述所有端口包括第一主机域的上游端口和下游端口以及第二主机域的上游端口和下游端口。
4.根据权利要求3所述的方法,其特征在于,所述路由模块响应于接收到第一主机域的上游端口发送的第一报文,确认所述第一报文的目的端口是否挂载NTB,包括:
所述路由模块响应于接收到第一主机域的上游端口发送的第一报文,从所述所有端口的地址信息中,确定与所述第一报文的地址域段匹配的地址信息,得到匹配地址信息;
所述路由模块根据所述匹配地址信息,得到所述第一报文的目的端口;
所述路由模块根据所述匹配地址信息对应的属性信息,得到所述第一报文的目的端口是否挂载NTB。
5.根据权利要求1所述的方法,其特征在于,所述将所述第一报文经过集中式交换模块发送给NTB虚拟侧之前,所述方法还包括:
所述转换模块将所述第一报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口。
6.根据权利要求1所述的方法,其特征在于,所述将所述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,包括:
所述转换模块将所述第二报文发送至所述路由模块;
所述路由模块将所述第二报文随路信息的目的端口标记为集中式交换模块上设置的NTB片内端口,并将所述第二报文发送至所述集中式交换模块;
所述集中式交换模块根据所述第二报文的目的端口,将所述第二报文经过所述路由模块发送至NTB链路侧。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述NTB链路侧将所述第二报文通过物理连接传输至第二主机域的下游端口;
所述第二主机域的下游端口将所述第二报文经过路由模块和集中式交换模块转发至第二主机域的上游端口。
8.一种非透明桥传输的实现系统,其特征在于,包括:
第一主机域的上游端口,用于向路由模块发送第一报文;
路由模块,用于响应于接收到所述第一主机域的上游端口发送的第一报文,确认所述第一报文的目的端口是否挂载NTB,响应于确认为是,将所述第一报文经过集中式交换模块发送给NTB虚拟侧;
集中式交换模块,用于将所述第一报文由所述路由模块转发至NTB虚拟侧;
NTB虚拟侧,用于将所述第一报文转发至转换模块,所述NTB虚拟侧为虚拟端点;
转换模块,用于将所述第一报文的地址和ID信息从第一主机域转换至第二主机域,生成第二报文,并将所述第二报文经过路由模块和集中式交换模块转发至NTB链路侧,所述NTB链路侧为所述第一主机域中与所述第二主机域物理连接的端点设备;
所述路由模块和所述集中式交换模块,还用于将所述第二报文由所述转换模块转发至所述NTB链路侧;
NTB链路侧,用于接收所述第二报文。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被一个或多个处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410250980.4A CN117827726B (zh) | 2024-03-06 | 2024-03-06 | 非透明桥传输的实现方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410250980.4A CN117827726B (zh) | 2024-03-06 | 2024-03-06 | 非透明桥传输的实现方法、装置、电子设备和存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN117827726A true CN117827726A (zh) | 2024-04-05 |
| CN117827726B CN117827726B (zh) | 2024-05-31 |
Family
ID=90506107
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410250980.4A Active CN117827726B (zh) | 2024-03-06 | 2024-03-06 | 非透明桥传输的实现方法、装置、电子设备和存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117827726B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118885424A (zh) * | 2024-09-29 | 2024-11-01 | 井芯微电子技术(天津)有限公司 | 端口交互方法、交换芯片、设备、介质及产品 |
| CN120358173A (zh) * | 2025-06-18 | 2025-07-22 | 深圳市楠菲微电子有限公司 | Ntb跨主机域的验证系统、方法、计算机设备及介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101242371A (zh) * | 2008-03-14 | 2008-08-13 | 杭州华三通信技术有限公司 | 基于PCIe交换架构路由器堆叠的方法、系统和装置 |
| CN103384551A (zh) * | 2013-01-04 | 2013-11-06 | 华为技术有限公司 | 一种基于pcie网络的虚拟机通信方法、服务器及系统 |
| US20140331223A1 (en) * | 2013-05-06 | 2014-11-06 | Industrial Technology Research Institute | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts |
| CN105993009A (zh) * | 2013-11-18 | 2016-10-05 | 华为技术有限公司 | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 |
| US20170147456A1 (en) * | 2015-11-25 | 2017-05-25 | Industrial Technology Research Institute | PCIe NETWORK SYSTEM WITH FAIL-OVER CAPABILITY AND OPERATION METHOD THEREOF |
| CN109002414A (zh) * | 2018-07-26 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种跨节点虚拟机通信方法及相关装置 |
| CN117389935A (zh) * | 2023-12-11 | 2024-01-12 | 井芯微电子技术(天津)有限公司 | 一种协议转换系统及方法 |
-
2024
- 2024-03-06 CN CN202410250980.4A patent/CN117827726B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101242371A (zh) * | 2008-03-14 | 2008-08-13 | 杭州华三通信技术有限公司 | 基于PCIe交换架构路由器堆叠的方法、系统和装置 |
| CN103384551A (zh) * | 2013-01-04 | 2013-11-06 | 华为技术有限公司 | 一种基于pcie网络的虚拟机通信方法、服务器及系统 |
| US20140331223A1 (en) * | 2013-05-06 | 2014-11-06 | Industrial Technology Research Institute | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts |
| CN105993009A (zh) * | 2013-11-18 | 2016-10-05 | 华为技术有限公司 | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 |
| US20170147456A1 (en) * | 2015-11-25 | 2017-05-25 | Industrial Technology Research Institute | PCIe NETWORK SYSTEM WITH FAIL-OVER CAPABILITY AND OPERATION METHOD THEREOF |
| CN109002414A (zh) * | 2018-07-26 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种跨节点虚拟机通信方法及相关装置 |
| CN117389935A (zh) * | 2023-12-11 | 2024-01-12 | 井芯微电子技术(天津)有限公司 | 一种协议转换系统及方法 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118885424A (zh) * | 2024-09-29 | 2024-11-01 | 井芯微电子技术(天津)有限公司 | 端口交互方法、交换芯片、设备、介质及产品 |
| CN118885424B (zh) * | 2024-09-29 | 2025-03-25 | 井芯微电子技术(天津)有限公司 | 端口交互方法、交换芯片、设备、介质及产品 |
| CN120358173A (zh) * | 2025-06-18 | 2025-07-22 | 深圳市楠菲微电子有限公司 | Ntb跨主机域的验证系统、方法、计算机设备及介质 |
| CN120358173B (zh) * | 2025-06-18 | 2025-09-09 | 深圳市楠菲微电子有限公司 | Ntb跨主机域的验证系统、方法、计算机设备及介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117827726B (zh) | 2024-05-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN117827726B (zh) | 非透明桥传输的实现方法、装置、电子设备和存储介质 | |
| TWI331281B (en) | Method and apparatus for shared i/o in a load/store fabric | |
| CN100586097C (zh) | 存储和转发交换机设备、系统及方法 | |
| US8463881B1 (en) | Bridging mechanism for peer-to-peer communication | |
| US6470026B1 (en) | Fibre channel loop map initialization protocol implemented in hardware | |
| KR101394796B1 (ko) | 디바이스들의 토폴로지에서 오디오/비디오 스트리밍을 위한 메시지 전달 프레임워크 | |
| US9154451B2 (en) | Systems and methods for sharing devices in a virtualization environment | |
| TW200539628A (en) | Method and apparatus for shared I/O in a load/store fabric | |
| US20160335209A1 (en) | High-speed data transmission using pcie protocol | |
| US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
| TW200530837A (en) | Method and apparatus for shared I/O in a load/store fabric | |
| CN101169771B (zh) | 一种axi内部总线的外部接口装置及其数据传输方法 | |
| US20130259053A1 (en) | Switch, information processing apparatus, and communication control method | |
| JP2010225085A (ja) | スイッチ、スイッチの制御方法及びスイッチシステムの制御方法 | |
| CN105868133B (zh) | 一种用于多结点主板的串口远程集中管理方法 | |
| CN101889263B (zh) | 控制路径i/o虚拟化 | |
| CN114997380A (zh) | 采样器以及用于图神经网络模型执行的装置 | |
| CN114924751A (zh) | 一种业务访问请求流量分配的方法和装置 | |
| CN117749739B (zh) | 数据发送方法、数据接收方法、装置、设备及存储介质 | |
| CN100583819C (zh) | 用于分组交换控制的集成电路和方法 | |
| US20250217306A1 (en) | Devices, methods, and systems for disaggregated memory resources in a computing environment | |
| JP4432388B2 (ja) | 入出力制御装置 | |
| CN103036815B (zh) | 一种信息技术和通信技术ict融合系统 | |
| US20090235048A1 (en) | Information processing apparatus, signal transmission method, and bridge | |
| US12045178B2 (en) | Devices, methods, and systems for disaggregated memory resources in a computing environment |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |