一种适用于PCIE总线的数据传输方法、装置及系统与流程

文档序号:17442029发布日期:2019-04-17 04:53阅读:373来源:国知局
一种适用于PCIE总线的数据传输方法、装置及系统与流程

本发明涉及计算机技术领域,尤其涉及一种适用于pcie总线的数据传输方法、装置及系统。



背景技术:

pcie总线是新一代的输入/输出(i/o)局部总线标准,是取代pci总线的革命性总线架构,pcie总线在处理器系统中得到了大规模的使用。相比pci总线,pcie总线采用独特的双通道传输模式,类似于全双工模式,大大提高了数据传输速度;同时采用点到点的互联技术,通过交换机(switch)等设备,可灵活的拓扑结构;另外,pcie总线还使用了一些在网络通信中使用的技术,比如支持多种数据路由方式,充分地考虑了数据传送中出现的服务质量(qos,qualityofservice)问题。

基于pcie总线的体系结构主要包括根组件(rc,rootcomplex)、交换机(switch)和各种终端设备(ep,endpoint)。其中rc主要完成存储器域到pcie总线域的地址转换,rc的下游端口可以挂接交换机来扩展更多的pcie端口,也可以直接挂接ep。交换机主要起到扩展系统的作用,它支持一个上端口和多个下端口,端口之间可以进行数据交换,通过交换机桥接,pcie总线可以进行链路扩展。

现有基于pcie的转发方案通常使用虚拟通道进行转发,在收发线卡之间建立对等的虚拟通道进行报文传输,但是路由器中的线卡类型种类较多,性能差异较大,使用虚拟通道的方案会限制高性能线卡之间的转发效率,从而影响总体的转发效率。



技术实现要素:

本发明提供一种适用于pcie总线的数据传输方法及装置,用于解决现有技术中使用虚拟通道的方案会限制高性能线卡之间的转发效率的问题。

第一方面,本发明实施例提供一种适用于pcie总线的数据传输方法,应用于第一节点中,所述方法包括:

从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用;其中所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用池的信用数量是根据所述第一节点以及第二节点的性能确定的,所述信用用于指示所述第二节点的内存地址信息;

经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

本发明实施例中,第一节点向第二节点发送待传输数据时,需要从第二节点的信用镜像中获取与待传输数据匹配的信用,一个信用表征了一个保存在第二节点的内存地址信息,第一节点通过保存在本地的第二节点针对第一节点的信用池的信用镜像确定待传输数据对应的存储空间,而第二节点针对所述第一节点的信用池中的信用数量是根据第一节点以及第二节点的性能确定的,与现有技术中通过固定性能的虚拟通道进行第一节点以及第二节点进行传输数据相比,减小了各个节点之间的耦合,可以很好的适用于多拥有多种特性的转发节点的分布式路由器平台,可以使得高性能节点间的转发性能发挥到最大。

进一步地,所述从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用前,还包括:

接收第二节点发送的所述第二节点针对所述第一节点的信用池对应的信用镜像,并存储所述信用镜像。

本发明实施例中,将接收到的第二节点发送的信用镜像进行保存,以便在获取信用时调用。

进一步地,所述方法还包括:

接收并存储所述第二节点发送的与所述信用镜像对应的信用位图,其中,所述信用位图用于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

相应地,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间之后,还包括:

更新所述第二节点的信用位图并将更新后的信用位图发送给所述第二节点,所述更新后的信用位图用于指示所述第一节点已发送完所述待传输数据。

本发明实施例中,通过信用位图来指征节点的信用池中的信用状态,并且通过更新后的位图通知第二节点,待传输数据已经传输完成,与现有技术相比,可以减少开销,提高带宽的利用率。

进一步地,所述将更新后的信用位图发送给所述第二节点之后,还包括:

接收所述第二节点发送的所述第二节点更新的信用位图;

根据所述第二节点更新的信用位图更新保存在本地的所述第二节点的信用镜像以及所述信用镜像对应的信用位图。

本发明实施例中,第二节点在更新信用位图后,需要将信用位图发送给第一节点,以使第一节点能够根据信用位图来更新保存在本地的信用镜像以及信用位图。

进一步地,所述从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用,包括:

从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用。

本发明实施例中,考虑到待传输数据中具有的不同优先级,按照优先级申请对应的信用,保证优先发送优先级高的待传输数据。

进一步地,从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用之前,还包括:

确定待传输数据的优先级与所述第二节点的信用镜像的可传输状态是否匹配;其中,所述可传输状态是根据第二节点的信用镜像中尚未使用的信用的数量确定的。

本发明实施例中,第二节点针对所述第一节点的信用池中未使用的信用的数量的多少决定了当前第一节点是否进行数据传输,或者传输哪些数据。

第二方面,本发明实施例还提供一种适用于pcie总线的数据传输方法,应用于第二节点中,包括:

根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定信用镜像,其中,所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用用于指示所述第二节点的内存地址信息;

将所述信用镜像发送至所述第一节点,以使所述第一节点存储所述信用镜像,并从所述信用镜像获取与待传输数据相匹配的信用,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

本发明实施例中,第二节点根据对端第一节点的性能以及自己的性能建立了针对第一节点的信用池,并使用信用镜像来表征,将信用镜像发送给第一节点,以使第一节点根据信用镜像确定需要获取的与待传输数据匹配的信用,与现有技术中通过固定性能的虚拟通道进行第一节点以及第二节点进行传输数据相比,减小了各个节点之间的耦合,可以很好的适用于多拥有多种特性的转发节点的分布式路由器平台,可以使得高性能节点间的转发性能发挥到最大。

进一步地,所述根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定所述信用池对应的信用镜像,包括:

根据所述第二节点针对所述第一节点的信用池确定信用镜像以及信用位图,所述信用位图于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述将所述信用镜像发送至所述第一节点,包括:

将所述信用镜像以及所述信用位图发送给所述第一节点。

本发明实施例中,使用信用位图表征信用池中信用的使用状态,可以通过信用位图来查询信用池状态。

进一步地,所述将所述信用镜像以及所述信用位图发送给所述第一节点后还包括:

接收所述第一节点发送的更新后的信用位图,所述更新后的信用位图是所述第一节点更新所述第二节点针对所述第一节点的信用位图之后确定的;

根据所述更新后的信用位图确定所述第一节点已发送完待传输数据。

本发明实施例中,通过信用位图确定第一节点已经传输待传输数据已经传输完成,与现有技术相比,可以减少开销,提高带宽的利用率。

进一步地,所述根据所述更新后的信用位图确定所述第一节点已发送完待传输数据之后,还包括:

在确定所述待传输数据已从其对应的信用对应的内存空间中输出后,更新所述第二节点针对所述第一节点的信用位图;

将更新后的信用位图发送给所述第一节点。

本发明实施例中,第二节点在待传输数据已从其对应的信用对应的内存空间中输出时,即第二节点确定信用池中的已占用的信用对应的内存地址可以释放,所以第二节点将信用位图进行更新,并将更新后的信用位图发送给第一节点,以使第一节点能够根据更新后的信用位图获取信用。

进一步地,所述根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池,包括:

根据所述第一节点以及所述第二节点中性能最差的节点确定的所述第二节点针对所述第一节点的信用池中的信用数量;

根据所述信用数量建立所述第二节点针对所述第一节点的信用池。

本发明实施例中,为了实现对等传输,建立连接的节点之间的信用池中的信用个数,是根据两个节点中性能差的节点确定的。

第三方面,本发明实施例还提供一种适用于pcie总线的数据传输装置,应用于第一节点中,包括:

信用获取单元,用于从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用;其中所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用池的信用数量是根据所述第一节点以及第二节点的性能确定的,所述信用用于指示所述第二节点的内存地址信息;

发送单元,用于经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述装置还包括接收单元:

具体用于接收第二节点发送的所述第二节点针对所述第一节点的信用池对应的信用镜像,并存储所述信用镜像。

进一步地,所述接收单元还用于:

接收并存储所述第二节点发送的与所述信用镜像对应的信用位图,其中,所述信用位图用于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述装置还包括:

更新单元,用于更新所述第二节点的信用位图并将更新后的信用位图发送给所述第二节点,所述更新后的信用位图用于指示所述第一节点已发送完所述待传输数据。

进一步地,所述接收单元还用于:

接收所述第二节点发送的所述第二节点更新的信用位图;

所述更新单元还用于:

根据所述第二节点更新的信用位图更新保存在本地的所述第二节点的信用镜像以及所述信用镜像对应的信用位图。

进一步地,所述信用获取单元具体用于:

从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用。

进一步地,所述信用获取单元具体用于:

确定待传输数据的优先级与所述第二节点的信用镜像的可传输状态是否匹配;其中,所述可传输状态是根据第二节点的信用镜像中尚未使用的信用的数量确定的。

第四方面,本发明实施例还提供一种适用于pcie总线的数据传输装置,应用于第二节点中,包括:

信用池确定单元,用于根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定信用镜像,其中,所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用用于指示所述第二节点的内存地址信息;

信用镜像发送单元,用于将所述信用镜像发送至所述第一节点,以使所述第一节点存储所述信用镜像,并从所述信用镜像获取与待传输数据相匹配的信用,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述信用池确定单元具体用于:

根据所述第二节点针对所述第一节点的信用池确定信用镜像以及信用位图,所述信用位图于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述信用镜像发送单元具体用于:

将所述信用镜像以及所述信用位图发送给所述第一节点。

进一步地,所述装置还包括:

接收单元,用于接收所述第一节点发送的更新后的信用位图,所述更新后的信用位图是所述第一节点更新所述第二节点针对所述第一节点的信用位图之后确定的;根据所述更新后的信用位图确定所述第一节点已发送完待传输数据。

进一步地,所述装置还包括更新单元,具体用于:

在确定所述待传输数据已从其对应的信用对应的内存空间中输出后,更新所述第二节点针对所述第一节点的信用位图;

将更新后的信用位图发送给所述第一节点。

进一步地,所述信用池确定单元具体用于:

根据所述第一节点以及所述第二节点中性能最差的节点确定所述第二节点针对所述第一节点的信用池中的信用数量;

根据所述信用数量建立所述第二节点针对所述第一节点的信用池。

本发明实施例还提供一种适用于pcie总线的数据传输系统,包括如第三方面任一所述的第一数据传输装置以及第四方面任一所述的第二数据传输装置。

本发明实施例还提供一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例中任一所述方法。

本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述实施例中任一所述方法。

本发明实施例中,第一节点向第二节点发送待传输数据时,需要从第二节点针对第一节点的信用池中获取与待传输数据匹配的信用,一个信用表征了一个保存在第二节点的内存地址信息,第一节点通过保存在本地的第二节点针对第一节点的信用池的信用镜像确定待传输数据对应的存储空间即第一节点向第二节点申请了一个内存空间来接收待传输数据,而第二节点针对所述第一节点的信用池中的信用数量是根据第一节点以及第二节点的性能确定的,与现有技术中通过固定性能的虚拟通道进行第一节点以及第二节点进行传输数据相比,减小了各个节点之间的耦合,可以很好的适用于多拥有多种特性的转发节点的分布式路由器平台,可以使得高性能节点间的转发性能发挥到最大。而使用信用位图来指征节点的信用池中的信用状态,并且通过更新后的位图通知第二节点,待传输数据已经传输完成,与现有技术相比,可以减少开销,提高带宽的利用率。并且在传输过程中,按照待传输数据的优先级申请对应的信用,保证优先发送优先级高的待传输数据。

附图说明

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

图1为本发明实施例提供的一种分布式路由设备示意图;

图2为本发明实施例提供的一种应用于第一节点的适用于pcie总线的数据传输方法的流程示意图;

图3为本发明实施例提供的一种应用于第一节点的适用于pcie总线的数据传输方法的流程示意图;

图4为本发明实施例提供的一种应用于第二节点的适用于pcie总线的数据传输方法的流程示意图;

图5为本发明实施例提供的一种应用于第二节点的适用于pcie总线的数据传输方法的流程示意图;

图6为本发明实施例提供的一种应用于第一节点的适用于pcie总线的数据传输装置的结构示意图;

图7为本发明实施例提供的一种应用于第二节点的适用于pcie总线的数据传输装置的结构示意图;

图8为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

pcie(peripheralcomponentinterconnect-express,外围部件互联总线)设备是指通过pcie接口与其他设备(如计算机主板)连接,进行数据处理的设备,常见的pcie设备有显卡、网卡、固态硬盘。pcie接口属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,其主要优势就是数据传输速率高。

pcie体系结构主要包括根组件(rootcomplex,下文中简称为rc)、交换机(switch,下文中简称为sw)和各种终端设备(endpoint,下文中简称为ep),如图1所示。其中rc主要完成存储器域到pcie总线域的地址转换,rc的下游端口可以挂接sw扩展更多的pcie端口,也可以直接挂接ep;sw主要起到扩展系统的作用,它支持一个上端口和多个下端口,端口之间可以进行数据交换,通过sw桥接,pcie可以进行链路扩展。

在图1中,系统中由一个rc、多个pciesw以及多个ep组成。rc一般由路由器中的主引擎承担,pciesw对pcie拓扑进行扩展,ep可以看做是分布式路由器中的一张线卡,本发明实施例中称之为节点。节点与节点之间的数据交互基于pcie拓扑。

现有技术中,不同节点之间传输数据是通过虚拟通道进行的,在分布式系统的各线卡间建立承载控制通道和业务通道的数据传输的虚拟通道,将控制通道和业务通道统一用虚拟通道承载,但是现有技术中在节点的性能差异较大的情况下,适应性较差,往往性能低的节点会影响整机的pcie转发性能,导致高性能节点间的pcie转发性能无法发挥。

基于上述内容,本发明实施例提供一种适用于pcie总线的数据传输系统,如图1所示,图1中的任一个ep作为第一节点,则与该ep进行传输的对端ep作为第二节点。

在本发明实施例中,第一节点与第二建立连接时,每个节点都会申请针对对端节点的信用池,并且申请一定的内存空间用于存放对端针对本端节点的信用池镜像。当本端节点与其它节点建立连接时,还会建立与其它对端节点的信用池以及保存其它对端针对本端节点的信用池镜像。

在本发明实施例中,信用用于指示第二节点的内存地址信息,信用是分布式系统中每个节点之间背板转发数据的最小单元,是根据缓存的物理地址以及pcie基地址计算的一个地址参数。

例如,在本发明实施例中,以第二节点为例,第二节点申请了一定的信用池空间,该信用池空间中包括针对于第二节点建立连接的第一节点的子空间,该子空间用于填充第一节点发送的待传输数据可用的信用信息。

在第二节点中,当第二节点在建立了针对第一节点的信用后,会通知第一节点,第一节点保存第二节点针对第一节点建立的信用池的信用镜像,同理,第二节点也接收到第一节点发送的第一节点针对第二节点建立的信用池的信用镜像。

在本发明实施例中,信用池的大小是可变的,信用池中的初始信用数量也是可变的,信用池中的信用数量是根据两个建立传输的节点确定的,也就是说,以第二节点为例,针对第一节点的子信用池a,与针对其它节点的子信用池的大小可以不同,且子信用池a中的初始信用数量与其它信用池中的初始信用数量不同。

可选的,在本发明实施例中,第二节点的信用池可容纳的信用的最大数量是根据分布式路由设备中的第三节点的性能确定的,第三节点为性能最佳的节点;第二节点针对第一节点的信用池中的信用数量是根据第一节点以及第二节点中性能最差的节点确定的。

也就是说,在本发明实施例中,在分布式路由设备中存在n个节点,每个节点的性能不同,这里的性能是根据每个节点的处理器处理能力以及每个节点的线程处理能力确定的。选取n个节点中性能最佳的节点的信用池大小为设置信用池的基准,n个节点都申请基准大小的信用池。

而在第一节点与第二节点建立连接后,需要确定针对对端信用池中信用的数量,若第一节点的性能高于第二节点,则按照第二节点的性能确定第一节点以及第二节点的信用池中的信用数量。

以第一节点为例,假设第一节点的性能为a,第二节点的性能为b,且a大于b,根据a能够确定信用数量为200kb,根据b的性能能够确定信用数量为100kb,当第一节点与第二节点建立连接时,第一节点针对第二节点的信用池中的信用数量为100kb,第二节点针对第一节点的信用池中的信用数量为100kb。

当第一节点与第三节点建立连接,第一节点的性能为a,第三节点的性能为a,根据a能够确定信用数量为200kb,则第一节点针对第三节点的信用池中的信用数量为200kb,第三节点针对第一节点的信用池中的信用数量为200kb。

可选的,在本发明实施例中,除了通过信用镜像来获取与待传输数据相匹配的信用,也可以向第二节点发送信用获取信息,第二节点根据信用获取信息确定信用,第二节点将确定的信用发送给第一节点。

可选的,在本发明实施例中,信用镜像可以用不同的表示方式来表示,例如矩阵、位图、向量等表示方法,通过该表示方法可以确定信用池中可使用的信用状态。

可选的,在本发明实施例中,当第二节点在建立了针对第一节点的信用后,会通知第一节点信用镜像以及该信用镜像的信用位图,第一节点将信用镜像以及信用位图进行保存。

可选的,在本发明实施例中,可以使用位图来表示信用镜像,未占用的信用用1表示,占用的信用用0表示,也就是说,在位图中,1以及0的数字表征信用是否被占用,1和0在位图中的位置表征信用对应的内存地址信息。

当第一节点需要向第二节点发送待传输数据时,第一节点从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用;第一节点经pcie总线将所述待传输数据发送至与待传输数据相匹配的信用所指示的第二节点的内存空间。

在本发明实施例中,第一节点从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用是确定第二节点是否有足够的信用来存储待传输数据,第一节点可以根据待传输数据的数据量来从信用镜像中获取信用,例如,第一节点需要传输4个2kb的待传输数据,一个信用为2kb,则第一节点首先申请一个信用,然后发送,然后进行循环,再去申请另一个信用,然后发送,直到将待传输数据都发送给第二节点。

可选的,为了便于管理信用池,引入了水线管理的理念,信用池中设置了min,low,high三种级别,对于不同的级别,第二节点能够接收的数据量不同,所以第一节点在获取相匹配的信用时,需要确定信用池当前的级别。

可选的,在本发明实施例中,待传输数据中包括协议报文和数据报文,若第一节点在确定信用池的级别后,根据待传输报文的类型以及级别确定是否传输,当信用池级别低于low水线时,停止发送普通数据报文,发送协议报文;当信用池级别低于min水线时,停止发送普通数据报文以及协议报文,将普通数据报文以及协议报文进行缓存;当信用池级别大于等于low水线时,发送普通数据报文以及协议报文。

可选的,在本发明实施例中,第一节点需要发送的待传输数据中包括数据的优先级,例如,待传输数据中协议报文的优先级高于数据报文,数据报文中也可以包括多个优先级,根据待传输数据的优先级,依次获取对应的信用,保证优先级高的数据先进行传输。

当第一节点获取了与待传输数据对应的信用后,将待传输数据发送给至与待传输数据相匹配的信用所指示的所述第二节点的内存空间,在发送结束后,需要通知第二节点已将待传输数据发送完毕,

本发明实施例中,第一节点通过更新信用位图的方式通知第二节点,即当第二节点接收到第一节点发送的更新的信用位图,则确定第一节点已传输完待传输数据。与现有技术中在完成一次输出后需要添加尾部报文,根据尾部报文的信息,来确认前面的报文是否已经完成相比,由于现有技术中的数据报文和尾部报文的比例在5:1,甚至更低,这会导致pcie带宽利用率降低,所以在本发明实施例中使用更新信用位图的方式可以减小开销提高带宽利用率。

当第二节点在接收到更新后的信用位图时,则可以确定待传输数据已经接收完毕,也就是说,当第二节点确定信用位图有更新,则可以确定信用池中的信用被使用,并且可以确定是哪些存储地址被占用。若第二节点确定信用位图没有更新,则继续等待。

当第二节点确定信用位图有更新后,根据位图从信用池中取出对应的信用,每个信用对应一个已经被硬件接收的数据报文,将数据报文组成链表输出,以使数据报文能够被处理。

可选的,在本发明实施例中,当第二节点将数据报文组成链表输出后,该信用即被释放,所以第二节点也需要更新信用位图,可选的,第二节点更新信用位图可以是在将数据报文组成链表输出后进行更新,也可以是第二节点在设定时间到达时,根据已经输出的数据来更新信用位图。

可选的,第二节点在确定数据报文输出后,申请与该数据报文数量一致的信用,重新加入到针对第一节点的信用池中。

在第二节点在更新信用位图后,将更新后的信用位图发送给第一节点,第一节点更新存储在本地的第二节点的信用位图以及信用镜像。

基于上述内容,本发明实施例提供一种适用于pcie总线的数据传输方法,应用于第一节点中,如图2所示,包括:

步骤201,从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用;其中所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用池的信用数量是根据所述第一节点以及第二节点的性能确定的,所述信用用于指示所述第二节点的内存地址信息;

步骤202,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用前,还包括:

接收第二节点发送的所述第二节点针对所述第一节点的信用池对应的信用镜像,并存储所述信用镜像。

进一步地,所述方法还包括:

接收并存储所述第二节点发送的与所述信用镜像对应的信用位图,其中,所述信用位图用于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

相应地,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间之后,还包括:

更新所述第二节点的信用位图并将更新后的信用位图发送给所述第二节点,所述更新后的信用位图用于指示所述第一节点已发送完所述待传输数据。

进一步地,所述将更新后的信用位图发送给所述第二节点之后,还包括:

接收所述第二节点发送的所述第二节点更新的信用位图;

根据所述第二节点更新的信用位图更新保存在本地的所述第二节点的信用镜像以及所述信用镜像对应的信用位图。

进一步地,所述从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用,包括:

从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用。

进一步地,从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用之前,还包括:

确定待传输数据的优先级与所述第二节点的信用镜像的可传输状态是否匹配;其中,所述可传输状态是根据第二节点的信用镜像中尚未使用的信用的数量确定的。

为了便于理解本发明实施例中的一种应用于第一节点的适用于pcie总线的数据传输方法,在此举例说明,在分布式路由设备中性能最佳的节点为第三节点,对应的信用池大小为200kb,第一节点申请信用池,该信用池的大小是200kb,第二节点申请信用池,该信用池的大小是200kb,第一节点的性能为a,第二节点的性能为b,且a大于b,初始化阶段,根据b的性能能够确定信用数量为100kb,第一节点针对第二节点的信用池中的信用数量为100kb,第二节点针对第一节点的信用池中的信用数量为100kb。当第一节点需要向第二节点传输6kb的待传输数据,且每个信用为2kb时,即第一节点需要向第二节点申请3个信用,则具体过程如图3所示,包括:

步骤301,第一节点向第二节点申请第一个信用,将第一个数据发送给第二节点;

步骤302,第一节点向第二节点申请第二个信用,将第二个数据发送给第二节点;

步骤303,第一节点向第二节点申请第三个信用,将第三个数据发送给第二节点;

步骤304,第一节点更新第二节点的信用位图,将占用的信用位置对应的位图点的值变为0;

步骤305,第一节点将更新后的位图发送给第二节点。

基于上述内容,本发明实施例提供一种适用于pcie总线的数据传输方法,应用于第二节点中,如图4所示,包括:

步骤401,根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定信用镜像,其中,所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用用于指示所述第二节点的内存地址信息;

步骤402,将所述信用镜像发送至所述第一节点,以使所述第一节点存储所述信用镜像,并从所述信用镜像获取与待传输数据相匹配的信用,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定所述信用池对应的信用镜像,包括:

根据所述第二节点针对所述第一节点的信用池确定信用镜像以及信用位图,所述信用位图于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述将所述信用镜像发送至所述第一节点,包括:

将所述信用镜像以及所述信用位图发送给所述第一节点。

进一步地,所述将所述信用镜像以及所述信用位图发送给所述第一节点后还包括:

接收所述第一节点发送的更新后的信用位图,所述更新后的信用位图是所述第一节点更新所述第二节点针对所述第一节点的信用位图之后确定的;

根据所述更新后的信用位图确定所述第一节点已发送完待传输数据。

进一步地,所述根据所述更新后的信用位图确定所述第一节点已发送完待传输数据之后,还包括:

在确定所述待传输数据已从其对应的信用对应的内存空间中输出后,更新所述第二节点针对所述第一节点的信用位图;

将更新后的信用位图发送给所述第一节点。

进一步地,所述根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池,包括:

根据所述第一节点以及所述第二节点中性能最差的节点确定的所述第二节点针对所述第一节点的信用池中的信用数量;

根据所述信用数量建立所述第二节点针对所述第一节点的信用池。

为了便于理解本发明实施例中的一种应用于第二节点的适用于pcie总线的数据传输方法,在此举例说明,在分布式路由设备中性能最佳的节点为第三节点,对应的信用池大小为200kb,第一节点申请信用池,该信用池的大小是200kb,第二节点申请信用池,该信用池的大小是200kb,第一节点的性能为a,第二节点的性能为b,且a大于b,初始化阶段,根据b的性能能够确定信用数量为100kb,第一节点针对第二节点的信用池中的信用数量为100kb,第二节点针对第一节点的信用池中的信用数量为100kb。当第一节点需要向第二节点传输6kb的待传输数据,且每个信用为2kb时,即第一节点需要向第二节点申请3个信用,第二节点在传输过程如图5所示,包括:

步骤501,第二节点建立用于接收调度的任务;

步骤502,第二节点确定信用位图是否有更新,若是,则执行步骤503,否则执行步骤501;

步骤503,第二节点根据信用位图从信用池中取出对应的信用,每个信用对应一个已经被硬件接收的数据报文;

步骤504,第二节点将接收到的数据报文组成链表输出;

步骤505,第二节点更新信用位图;

步骤506,第二节点将更新后的信用位图发送给第一节点。

基于同样的构思,本发明实施例还提供一种适用于pcie总线的数据传输装置,应用于第一节点中,如图6所示,包括:

信用获取单元601,用于从本地存储的第二节点的信用镜像获取与待传输数据相匹配的信用;其中所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用池的信用数量是根据所述第一节点以及第二节点的性能确定的,所述信用用于指示所述第二节点的内存地址信息;

发送单元602,用于经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述装置还包括接收单元603:

具体用于接收第二节点发送的所述第二节点针对所述第一节点的信用池对应的信用镜像,并存储所述信用镜像。

进一步地,所述接收单元603还用于:

接收并存储所述第二节点发送的与所述信用镜像对应的信用位图,其中,所述信用位图用于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述装置还包括:

更新单元604,用于更新所述第二节点的信用位图并将更新后的信用位图发送给所述第二节点,所述更新后的信用位图用于指示所述第一节点已发送完所述待传输数据。

进一步地,所述接收单元603还用于:

接收所述第二节点发送的所述第二节点更新的信用位图;

所述更新单元604还用于:

根据所述第二节点更新的信用位图更新保存在本地的所述第二节点的信用镜像以及所述信用镜像对应的信用位图。

进一步地,所述信用获取单元601具体用于:

从本地存储的第二节点的信用镜像中按照待传输数据的优先级顺序获取与待传输数据相匹配的信用。

进一步地,所述信用获取单元601具体用于:

确定待传输数据的优先级与所述第二节点的信用镜像的可传输状态是否匹配;其中,所述可传输状态是根据第二节点的信用镜像中尚未使用的信用的数量确定的。

本发明实施例还提供一种适用于pcie总线的数据传输装置,应用于第二节点中,如图7所示,包括:

信用池确定单元701,用于根据第一节点的性能以及所述第二节点的性能建立所述第二节点针对所述第一节点的信用池并确定信用镜像,其中,所述信用镜像用于表征所述第二节点针对所述第一节点的信用池,所述信用用于指示所述第二节点的内存地址信息;

信用镜像发送单元702,用于将所述信用镜像发送至所述第一节点,以使所述第一节点存储所述信用镜像,并从所述信用镜像获取与待传输数据相匹配的信用,经pcie总线将所述待传输数据发送至与所述待传输数据相匹配的信用所指示的所述第二节点的内存空间。

进一步地,所述信用池确定单元701具体用于:

根据所述第二节点针对所述第一节点的信用池确定信用镜像以及信用位图,所述信用位图于标记所述第二节点针对所述第一节点的信用池中信用的使用状态;

所述信用镜像发送单元702具体用于:

将所述信用镜像以及所述信用位图发送给所述第一节点。

进一步地,所述装置还包括:

接收单元703,用于接收所述第一节点发送的更新后的信用位图,所述更新后的信用位图是所述第一节点更新所述第二节点针对所述第一节点的信用位图之后确定的;根据所述更新后的信用位图确定所述第一节点已发送完待传输数据。

进一步地,所述装置还包括更新单元704,具体用于:

在确定所述待传输数据已从其对应的信用对应的内存空间中输出后,更新所述第二节点针对所述第一节点的信用位图;

将更新后的信用位图发送给所述第一节点。

进一步地,所述信用池确定单元701具体用于:

根据所述第一节点以及所述第二节点中性能最差的节点确定所述第二节点针对所述第一节点的信用池中的信用数量;

根据所述信用数量建立所述第二节点针对所述第一节点的信用池。

本发明实施例提供了一种电子设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行数据传输方法的步骤。如图8所示,为本发明实施例中所述的电子设备的硬件结构示意图,该电子设备具体可以为台式计算机、便携式计算机、智能手机、平板电脑等。具体地,该电子设备可以包括存储器801、处理器802及存储在存储器上的计算机程序,所述处理器802执行所述程序时实现上述实施例中的任一数据传输方法的步骤。其中,存储器801可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器802提供存储器801中存储的程序指令和数据。

图8中以通过总线连接为例。处理器802调用存储器801存储的程序指令并按照获得的程序指令执行上述实施例提供的数据传输方法。

本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项数据传输方法。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1