CN110347632B - 一种通信方法和装置 - Google Patents
一种通信方法和装置 Download PDFInfo
- Publication number
- CN110347632B CN110347632B CN201810302026.XA CN201810302026A CN110347632B CN 110347632 B CN110347632 B CN 110347632B CN 201810302026 A CN201810302026 A CN 201810302026A CN 110347632 B CN110347632 B CN 110347632B
- Authority
- CN
- China
- Prior art keywords
- processor
- destination
- communication link
- transmission path
- communication
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例提供了一种通信方法和装置,上述方法可以应用于第一处理器,第一处理器可以为多处理器系统中的处理器。第一处理器可以接收待传输的通信消息,并确定用于处理通信消息的目的处理器,然后获取第一处理器与目的处理器之间的传输路径,根据第一处理器与目的处理器之间的传输路径,将通信消息发送至下一处理器。基于上述处理,不需要为多处理器系统中的各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种通信方法和装置。
背景技术
多处理器系统(Multiprocessor Systems)是指包含两台或多台功能相近的处理器的系统。处理器之间彼此可以进行数据通信,所有处理器共享物理内存,I/O设备,控制器,及外部设备。
现有技术通常采用共享物理内存的方式实现处理器之间的数据通信,多处理器系统可以为每一处理器分配对应的内存区域。在进行数据通信时,发送方(可以称为源处理器)可以将需要发送的数据发送至接收方(可以称为目的处理器)对应的内存区域。然后,目的处理器可以从该处理器对应的内存区域中读取到数据,完成源处理器与目的处理器之间的数据通信。
现有技术中,当多处理器系统包含的处理器较多时,必须为每一处理器分配对应的内存区域,导致物理内存的占有率较高。
发明内容
本发明实施例的目的在于提供一种通信方法和装置,可以降低物理内存的占有率。具体技术方案如下:
第一方面,为了达到上述目的,本发明实施例公开了一种通信方法,所述方法应用于第一处理器,所述第一处理器为多处理器系统中的处理器,所述方法包括:
接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
可选的,所述方法还包括:
判断所述第一处理器自身是否为所述目的处理器;
如果所述第一处理器自身是所述目的处理器,则基于所述通信消息进行数据处理;
所述获取所述第一处理器与所述目的处理器之间的传输路径,包括:
在所述第一处理器自身不是所述目的处理器的情况下,获取所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述获取所述第一处理器与所述目的处理器之间的传输路径,包括:
根据所述通信消息中携带的目标路径,确定所述第一处理器与所述目的处理器之间的传输路径,其中,所述目标路径为所述通信消息的源处理器与所述目的处理器之间的传输路径。
可选的,所述获取所述第一处理器与所述目的处理器之间的传输路径,包括:
根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定所述第一处理器与所述目的处理器之间的传输路径,包括:
根据所述第一处理器的通信链路和所述目的处理器的通信链路,判断所述第一处理器与所述目的处理器是否存在相同的通信链路;
如果所述第一处理器与所述目的处理器存在相同的通信链路,根据所述第一处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在所述第一处理器与所述目的处理器不存在相同的通信链路的情况下,所述方法还包括:
确定与所述第一处理器具有相同通信链路的处理器,作为待查询的处理器;
针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路;
如果该处理器与所述目的处理器存在相同的通信链路,根据该处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在该处理器与所述目的处理器不存在相同的通信链路的情况下,所述针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路,包括:
将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与所述第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路。
可选的,当所述第一处理器与所述目的处理器之间的传输路径为多个时,所述根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器,包括:
获取所述第一处理器与所述目的处理器之间的各传输路径包含的通信链路的数目;
将包含的通信链路的数目最少的传输路径确定为优选传输路径;
根据所述优选传输路径,将所述通信消息发送至下一处理器。
第二方面,为了达到上述目的,本发明实施例公开了一种通信装置,所述装置应用于第一处理器,所述第一处理器为多处理器系统中的处理器,所述装置包括:
确定模块,用于接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取模块,用于获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
发送模块,用于根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
可选的,所述装置还包括:
判断模块,用于判断所述第一处理器自身是否为所述目的处理器,如果所述第一处理器自身是所述目的处理器,触发处理模块;
所述处理模块,用于基于所述通信消息进行数据处理;
所述获取模块,具体用于在所述第一处理器自身不是所述目的处理器的情况下,获取所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块,具体用于根据所述通信消息中携带的目标路径,确定所述第一处理器与所述目的处理器之间的传输路径,其中,所述目标路径为所述通信消息的源处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块,具体用于根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块,包括:
第一判断子模块,用于根据所述第一处理器的通信链路和所述目的处理器的通信链路,判断所述第一处理器与所述目的处理器是否存在相同的通信链路;如果所述第一处理器与所述目的处理器存在相同的通信链路,触发第一确定子模块;
所述第一确定子模块,用于根据所述第一处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在所述第一处理器与所述目的处理器不存在相同的通信链路的情况下,所述装置还包括:
第二确定子模块,用于确定与所述第一处理器具有相同通信链路的处理器,作为待查询的处理器;
第二判断子模块,用于针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路;如果该处理器与所述目的处理器存在相同的通信链路,触发第三确定子模块;
所述第三确定子模块,用于根据该处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在该处理器与所述目的处理器不存在相同的通信链路的情况下,所述第二判断子模块,具体用于将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与所述第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路。
可选的,当所述第一处理器与所述目的处理器之间的传输路径为多个时,所述发送模块,具体用于获取所述第一处理器与所述目的处理器之间的各传输路径包含的通信链路的数目;将包含的通信链路的数目最少的传输路径确定为优选传输路径;根据所述优选传输路径,将所述通信消息发送至下一处理器。
在本发明实施的另一方面,为了达到上述目的,本发明实施例还公开了一种电子设备,所述电子设备包括多个处理器和通信总线,其中,所述多个处理器通过所述通信总线完成相互间的通信;
每一所述处理器,用于执行该处理器上所存放的程序时,实现如上述第一方面所述的通信方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现如上述第一方面所述的通信方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的通信方法。
本发明实施例提供了一种通信方法和装置,可以应用于第一处理器,第一处理器为多处理器系统中的处理器。第一处理器可以接收待传输的通信消息,确定用于处理通信消息的目的处理器,然后获取第一处理器与目的处理器之间的传输路径,根据第一处理器与目的处理器之间的传输路径,将通信消息发送至下一处理器。基于上述处理,不需要为多处理器系统中的各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种多处理器系统的结构图;
图2为本发明实施例提供的一种通信方法的流程图;
图3为本发明实施例提供的一种通信装置的结构图;
图4为本发明实施例提供的一种电子设备的示例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,多处理器系统需要为各处理器分配对应的内存区域,才可以实现处理器之间的通信,会导致物理内存的占有率较高。
为了解决上述问题,本发明实施例提供了一种通信方法和装置,可以应用于第一处理器,第一处理器为可以多处理器系统中的处理器,其中,多处理器系统是指包含两台或多台功能相近的处理器的系统。处理器之间彼此可以进行数据通信,所有处理器共享物理内存,I/O设备,控制器,及外部设备。第一处理器可以获取待传输的通信消息,确定用于处理通信消息的目的处理器,然后根据第一处理器与目的处理器之间的传输路径,将通信消息发送至下一处理器,不需要为多处理器系统中的各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
下面以具体实施例对本发明申请进行详细介绍。
首先对多处理器系统进行介绍,参见图1,图1为本发明实施例提供的一种多处理器系统的结构图,包括:
处理器A、处理器B、处理器C、处理器D、处理器E、处理器F、处理器G、处理器H、处理器I、处理器J和处理器K。其中,处理器A的通信链路包括通信链路1、通信链路5和通信链路6,处理器B的通信链路包括通信链路1、通信链路2和通信链路4,处理器C的通信链路包括通信链路2和通信链路3,处理器D的通信链路包括通信链路3和通信链路7,处理器E的通信链路包括通信链路4和通信链路9,处理器F的通信链路包括通信链路5和通信链路8,处理器G的通信链路包括通信链路6,处理器H的通信链路包括通信链路7和通信链路10,处理器I的通信链路包括通信链路9,处理器J的通信链路包括通信链路8,处理器K的通信链路包括通信链路10。其中,通信链路可以是处理器之间通过通信接口实现的有线或者无线的物理通信通道。
以第一处理器为处理器A,目的处理器为处理器D为例进行说明,其他情况与之类似。由图1可见,处理器A与处理器D之间的传输路径为通信链路1、通信链路2、通信链路3。处理器A可以获取待传输的通信消息,通过通信链路1,将通信消息发送至处理器B。处理器B接收到通信消息后,可以通过通信链路2,将通信消息发送至处理器C。处理器C接收到通信消息后,可以通过通信链路3,将通信消息发送至处理器D。处理器D接收到通信消息后,可以根据通信消息进行数据处理。
参见图2,图2为本发明实施例提供的一种通信方法的流程图,上述通信方法可以应用于第一处理器,第一处理器可以为多处理器系统中的任一处理器,上述通信方法可以包括以下步骤:
S201:接收待传输的通信消息,并确定用于处理通信消息的目的处理器。
其中,通信消息中可以携带有消息头、负载数据和CRC(Cyclic RedundancyCheck,循环冗余校验码)。消息头可以包括该通信消息的源处理器的标识和该通信消息的目的处理器的标识。示例性的,处理器A需要发送通信消息至处理器D,此时,该通信消息的源处理器为处理器A,该通信消息的目的处理器为处理器D,消息头可以包括处理器A的标识和处理器D的标识。上述处理器的标识可以是处理器的ID(Identity,身份标识号)。
在实施中,第一处理器可以接收通信消息。具体的,当第一处理器为该通信消息的源处理器时,第一处理器接收到的通信消息可以是用户通过多处理器系统的输入部件输入的通信消息;当第一处理器不是该通信消息的源处理器时,第一处理器接收到的通信消息可以是其他处理器发送的通信消息。第一处理器接收到通信消息后,可以解析该通信消息,根据该通信消息中携带的处理器的标识,确定目的处理器。
S202:获取第一处理器与目的处理器之间的传输路径。
其中,传输路径可以为根据多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的,第一处理器与目的处理器之间的传输路径可以包括通信消息从第一处理器传输到目的处理器所经过的各通信链路,以及经过各通信链路的顺序。第一处理器与目的处理器之间的传输路径可以为一个,也可以为多个。预设的路径搜索算法可以是BFS(Breadth First Search,宽度优先搜索)算法、DFS(Depth First Search,深度优先搜素)或者现有技术中其他路径搜索算法,本实施例不做限定。
在实施中,根据通信消息中携带的信息,第一处理器可以采取不同的方式,获取自身与目的处理器之间的传输路径。具体的,第一处理器获取自身与目的处理器之间的传输路径的方法将在后续详细介绍。
S203:根据第一处理器与目的处理器之间的传输路径,将通信消息发送至下一处理器。
在实施中,第一处理器可以根据自身与目的处理器之间的传输路径中各通信链路的顺序,将通信消息发送至下一处理器。当第一处理器与目的处理器之间的传输路径为多个时,第一处理器可以选择其中一个传输路径,根据选择的传输路径,将通信消息发送至下一处理器。具体的,第一处理器可以在多个传输路径中随机选择一个传输路径,根据该传输路径,将通信消息发送至下一处理器。第一处理器也可以选择确定出的第一个传输路径,根据该传输路径,将通信消息发送至下一处理器。对于第一处理器选择传输路径的方法,在本实施例中并不进行限定。
由以上可见,基于本发明实施例提供的通信方法,不需要为多处理器系统中的各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
可选的,第一处理器还可以判断自身是否为目的处理器,以提高通信效率。具体的,上述方法还可以包括以下步骤:判断第一处理器自身是否为目的处理器;如果第一处理器自身是目的处理器,则基于通信消息进行数据处理;相应的,S202的具体处理过程可以为:在第一处理器自身不是目的处理器的情况下,获取第一处理器与目的处理器之间的传输路径。
在实施中,第一处理器可以在确定用于处理通信消息的目的处理器后,判断自身是否为目的处理器。如果自身是目的处理器,第一处理器可以对通信消息中携带的数据进行处理。如果自身不是目的处理器,第一处理器可以通过不同的方式,获取自身与目的处理器之间的传输路径。
可选的,第一处理器可以采取以下两方式,确定自身与目的处理器之间的传输路径:
方式一,根据通信消息中携带的目标路径,确定第一处理器与目的处理器之间的传输路径。
其中,目标路径可以为通信消息的源处理器与目的处理器之间的传输路径,目标路径可以为源处理器根据多处理器系统中各处理器的通信链路,和预设的路径搜索算法确定的。
在实施中,当第一处理器为非源处理器时,第一处理器可以解析通信消息,判断通信消息中是否携带有目标路径。当第一处理器判定通信消息中携带有目标路径时,第一处理器可以根据目标路径中包含的自身与目的处理器的通信链路,确定自身与目的处理器之间的传输路径。示例性的,结合图1所示,第一处理器为处理器B,通信消息中携带的目标路径为:通信链路1、通信链路2和通信链路3,而处理器B的通信链路包含通信链路1和通信链路2,处理器D的通信链路包含通信链路3和通信链路7,因此,处理器B可以确定自身与处理器D之间的传输路径为:通信链路2、通信链路3。相应的,第一处理器可以将解析得到的目标路径,发送至下一处理器,以使下一处理器可以根据目标路径传输通信消息。
方式二,根据多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定第一处理器与目的处理器之间的传输路径。
在实施中,第一处理器中可以预先存储多处理器系统中各处理器的连接信息、以及预设的路径搜索算法,处理器的连接信息中记录了该处理器的通信链路,该处理器的通信链路可以为一个,也可以为多个。当接收到通信消息时,第一处理器可以调用本地存储的路径搜索算法,根据多处理器系统中各处理器的通信链路,确定自身与目的处理器之间的传输路径。
可选的,第一处理器可以根据BFS算法确定自身与目的处理器之间的传输路径。具体的,根据多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定第一处理器与目的处理器之间的传输路径的方法,可以包括以下步骤:根据第一处理器的通信链路和目的处理器的通信链路,判断第一处理器与目的处理器是否存在相同的通信链路;如果第一处理器与目的处理器存在相同的通信链路,根据第一处理器与目的处理器的相同的通信链路,确定第一处理器与目的处理器之间的传输路径。
在实施中,第一处理器可以从本地预先存储的多处理器系统中各处理器的连接信息中,获取第一处理器的通信链路和目的处理器的通信链路,然后判断第一处理器与目的处理器是否存在相同的通信链路。当第一处理器判定自身与目的处理器存在相同的通信链路,即第一处理器与目的处理器直接相连时,第一处理器可以将第一处理器与目的处理器的相同的通信链路,确定为第一处理器与目的处理器之间的传输路径。
可选的,在第一处理器与目的处理器不存在相同的通信链路的情况下,上述方法还可以包括以下步骤:确定与第一处理器具有相同通信链路的处理器,作为待查询的处理器;针对每个待查询的处理器,根据该处理器的通信链路和目的处理器的通信链路,判断该处理器与目的处理器是否存在相同的通信链路;如果该处理器与目的处理器存在相同的通信链路,根据该处理器与目的处理器的相同的通信链路,确定第一处理器与目的处理器之间的传输路径。
在实施中,当第一处理器判定自身与目的处理器不存在相同的通信链路,即第一处理器与目的处理器未直接相连时,第一处理器可以根据本地预先存储的多处理器系统中各处理器的连接信息,确定与自身具有相同通信链路的处理器,作为待查询的处理器。确定的待查询的处理器可以为一个,也可以为多个。
针对每个待查询的处理器,第一处理器可以从本地预先存储的多处理器系统中各处理器的连接信息中,获取该处理器的通信链路和目的处理器的通信链路,然后判断该处理器与目的处理器是否存在相同的通信链路。当第一处理器判定该处理器与目的处理器存在相同的通信链路时,第一处理器可以根据该处理器与目的处理器的相同的通信链路,确定自身与目的处理器之间的传输路径,具体的,第一处理器可以根据该处理器与自身的相同的通信链路,以及该处理器与目的处理器的相同的通信链路,确定自身与目的处理器之间的传输路径。
可选的,在该处理器与目的处理器不存在相同的通信链路的情况下,第一处理器的具体处理步骤为:将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和目的处理器的通信链路,判断该处理器与目的处理器是否存在相同的通信链路。
在实施中,如果该处理器与目的处理器不存在相同的通信链路,第一处理器可以将与该处理器具有相同通信链路的处理器,作为当前的待查询的处理器,记录每一待查询的处理器与第一处理器之间的传输路径。具体的,第一处理器可以将与该处理器具有相同通信链路的处理器中,除已判断的处理器之外的处理器作为待查询的处理器,以提高路径搜索的效率。然后,针对确定出的每个新的待查询的处理器,第一处理器可以根据该处理器的通信链路和目的处理器的通信链路,判断该处理器与目的处理器是否存在相同的通信链路。以此循环,直至确定出的待查询的处理器与目的处理器存在相同的通信链路为止。
本发明实施例还提供了通过上述方法确定传输路径的示例,其中,第一处理器可以为处理器A,目的处理器可以为处理器D,各处理器的连接信息可以参照图1。
处理器A的通信链路包括通信链路1、通信链路5和通信链路6,处理器D的通信链路包括通信链路3和通信链路7,处理器A与处理器D不存在相同的通信链路。处理器A可以将与处理器A具有相同通信链路的处理器B、处理器F和处理器G,作为待查询的处理器。
处理器A确定处理器B与处理器D不存在相同的通信链路,可以将与处理器B具有相同通信链路的处理器中,除已判断的处理器之外的处理器(处理器C和处理器E)作为待查询的处理器,记录处理器C与处理器A之间的传输路径(通信链路1、通信链路2),处理器E与处理器A之间的传输路径(通信链路1、通信链路4)。处理器A确定处理器F与处理器D不存在相同的通信链路,可以将与处理器F具有相同通信链路的处理器中,除已判断的处理器之外的处理器(处理器J)作为待查询的处理器,记录处理器J与处理器A之间的传输路径(通信链路5和通信链路8);处理器A确定处理器G与处理器D不存在相同的通信链路。由于与处理器G具有相同通信链路的处理器只有处理器A,处理器A确定出的当前的待查询的处理器包括:处理器C、处理器E和处理器J。
针对处理器C、处理器E和处理器J,处理器A确定处理器C与处理器D存在相同的通信链路(通信链路3),处理器A可以根据处理器A与处理器C之间的传输路径,以及处理器C与处理器D的相同的通信链路,确定处理器A与处理器D之间的传输路径为:通信链路1、通信链路2、通信链路3。此时,处理器A可以停止路径搜索,也可以按照上述方法继续搜索,确定出处理器A与处理器D之间的其他的传输路径,具体的搜索过程不再赘述。可以看出,处理器A最先确定出来的传输路径为包含的通信链路的数目最少的传输路径。
由以上可见,基于本发明实施例的通信方法,多处理器系统的每一处理器可以调用统一的路径搜索算法,能够提高多处理器系统开发和维护的效率。
可选的,还可以实现第一处理器通过最短的传输路径传输通信消息。具体的,当第一处理器与目的处理器之间的传输路径为多个时,根据第一处理器与目的处理器之间的传输路径,将通信消息发送至下一处理器,可以包括以下步骤:获取第一处理器与目的处理器之间的各传输路径包含的通信链路的数目;将包含的通信链路的数目最少的传输路径确定为优选传输路径;根据优选传输路径,将通信消息发送至下一处理器。
在实施中,当第一处理器与目的处理器之间的传输路径为多个时,第一处理器可以分别获取每一传输路径包含的通信链路的数目,确定出包含的通信链路的数目最少的传输路径(即优选传输路径),然后可以根据优选传输路径,将通信消息发送至下一处理器,以提高通信速率。具体的,当确定出的优选传输路径为多个时,第一处理器可以选择其中一个优选传输路径,根据该优选传输路径,将通信消息发送至下一处理器,本实施例对选择优选传输路径的方法不做限定。
由以上可见,基于本发明实施例的通信方法,当第一处理器与目的处理器之间的传输路径为多个时,第一处理器可以根据包含的通信链路的数目最少的传输路径,将通信消息发送至下一处理器,能够提高通信速率。
与上述方法实施例相对应,参见图3,图3为本发明实施例提供的一种通信装置的结构图,该装置应用于第一处理器,第一处理器为多处理器系统中的处理器,该装置可以包括:
确定模块301,用于接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取模块302,用于获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
发送模块303,用于根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
可选的,所述装置还包括:
判断模块,用于判断所述第一处理器自身是否为所述目的处理器,如果所述第一处理器自身是所述目的处理器,触发处理模块;
所述处理模块,用于基于所述通信消息进行数据处理;
所述获取模块302,具体用于在所述第一处理器自身不是所述目的处理器的情况下,获取所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块302,具体用于根据所述通信消息中携带的目标路径,确定所述第一处理器与所述目的处理器之间的传输路径,其中,所述目标路径为所述通信消息的源处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块302,具体用于根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,所述获取模块302,包括:
第一判断子模块,用于根据所述第一处理器的通信链路和所述目的处理器的通信链路,判断所述第一处理器与所述目的处理器是否存在相同的通信链路;如果所述第一处理器与所述目的处理器存在相同的通信链路,触发第一确定子模块;
所述第一确定子模块,用于根据所述第一处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在所述第一处理器与所述目的处理器不存在相同的通信链路的情况下,所述装置还包括:
第二确定子模块,用于确定与所述第一处理器具有相同通信链路的处理器,作为待查询的处理器;
第二判断子模块,用于针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路;如果该处理器与所述目的处理器存在相同的通信链路,触发第三确定子模块;
所述第三确定子模块,用于根据该处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径。
可选的,在该处理器与所述目的处理器不存在相同的通信链路的情况下,所述第二判断子模块,具体用于将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与所述第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路。
可选的,当所述第一处理器与所述目的处理器之间的传输路径为多个时,所述发送模块303,具体用于获取所述第一处理器与所述目的处理器之间的各传输路径包含的通信链路的数目;将包含的通信链路的数目最少的传输路径确定为优选传输路径;根据所述优选传输路径,将所述通信消息发送至下一处理器。
由以上可见,基于本发明实施例提供的通信装置,不需要为多处理器系统中的各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
本发明实施例还提供了一种电子设备,包括多个处理器和通信总线,其中,多个处理器通过通信总线完成相互间的通信,参见图4,图4为本实施例提供的一种电子设备的示例的结构图,该电子设备可以包括处理器401、处理器402、处理器403和通信总线404。
每一处理器,用于执行该处理器上所存放的程序时,实现如下步骤:
接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述的每一处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的电子设备,在进行处理器之间的通信时,不需要为各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明实施例提供的通信方法。
具体的,上述通信方法,包括:
接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
需要说明的是,上述通信方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
通过运行本发明实施例提供的计算机可读存储介质中存储的指令,在进行处理器之间的通信时,不需要为各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
本发明实施例还提供了另一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例提供的通信方法。
具体的,上述通信方法,包括:
接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器。
需要说明的是,上述通信方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
通过运行本发明实施例提供的计算机程序产品,在进行处理器之间的通信时,不需要为各处理器分配对应的内存区域,就可以将待传输的通信消息发送至目的处理器,能够降低物理内存的占有率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种通信方法,其特征在于,所述方法应用于第一处理器,所述第一处理器为多处理器系统中的处理器,所述方法包括:
接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器;第一处理器与目的处理器之间的传输路径包括通信消息从第一处理器传输到目的处理器所经过的各通信链路,以及经过各通信链路的顺序;
所述获取所述第一处理器与所述目的处理器之间的传输路径,包括:
根据所述通信消息中携带的目标路径,确定所述第一处理器与所述目的处理器之间的传输路径,其中,所述目标路径为所述通信消息的源处理器与所述目的处理器之间的传输路径;
或,
根据所述第一处理器的通信链路和所述目的处理器的通信链路,判断所述第一处理器与所述目的处理器是否存在相同的通信链路;如果所述第一处理器与所述目的处理器存在相同的通信链路,根据所述第一处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径;在所述第一处理器与所述目的处理器不存在相同的通信链路的情况下,确定与所述第一处理器具有相同通信链路的处理器,作为待查询的处理器;针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路;如果该处理器与所述目的处理器存在相同的通信链路,根据该处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径;
在该处理器与所述目的处理器不存在相同的通信链路的情况下,所述针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路,包括:
将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与所述第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述第一处理器自身是否为所述目的处理器;
如果所述第一处理器自身是所述目的处理器,则基于所述通信消息进行数据处理;
所述获取所述第一处理器与所述目的处理器之间的传输路径,包括:
在所述第一处理器自身不是所述目的处理器的情况下,获取所述第一处理器与所述目的处理器之间的传输路径。
3.根据权利要求1所述的方法,其特征在于,当所述第一处理器与所述目的处理器之间的传输路径为多个时,所述根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器,包括:
获取所述第一处理器与所述目的处理器之间的各传输路径包含的通信链路的数目;
将包含的通信链路的数目最少的传输路径确定为优选传输路径;
根据所述优选传输路径,将所述通信消息发送至下一处理器。
4.一种通信装置,其特征在于,所述装置应用于第一处理器,所述第一处理器为多处理器系统中的处理器,所述装置包括:
确定模块,用于接收待传输的通信消息,并确定用于处理所述通信消息的目的处理器;
获取模块,用于获取所述第一处理器与所述目的处理器之间的传输路径,其中,所述传输路径为根据所述多处理器系统中各处理器的通信链路和预设的路径搜索算法确定的;
发送模块,用于根据所述第一处理器与所述目的处理器之间的传输路径,将所述通信消息发送至下一处理器;第一处理器与目的处理器之间的传输路径包括通信消息从第一处理器传输到目的处理器所经过的各通信链路,以及经过各通信链路的顺序;
所述获取模块,具体用于根据所述通信消息中携带的目标路径,确定所述第一处理器与所述目的处理器之间的传输路径,其中,所述目标路径为所述通信消息的源处理器与所述目的处理器之间的传输路径;
或,
所述获取模块,包括:
第一判断子模块,用于根据所述第一处理器的通信链路和所述目的处理器的通信链路,判断所述第一处理器与所述目的处理器是否存在相同的通信链路;如果所述第一处理器与所述目的处理器存在相同的通信链路,触发第一确定子模块;
所述第一确定子模块,用于根据所述第一处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径;
在所述第一处理器与所述目的处理器不存在相同的通信链路的情况下,所述装置还包括:
第二确定子模块,用于确定与所述第一处理器具有相同通信链路的处理器,作为待查询的处理器;
第二判断子模块,用于针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路;如果该处理器与所述目的处理器存在相同的通信链路,触发第三确定子模块;
所述第三确定子模块,用于根据该处理器与所述目的处理器的相同的通信链路,确定所述第一处理器与所述目的处理器之间的传输路径;
在该处理器与所述目的处理器不存在相同的通信链路的情况下,所述第二判断子模块,具体用于将与该处理器具有相同通信链路的处理器,作为待查询的处理器,记录待查询的处理器与所述第一处理器之间的传输路径,针对每个待查询的处理器,根据该处理器的通信链路和所述目的处理器的通信链路,判断该处理器与所述目的处理器是否存在相同的通信链路。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述第一处理器自身是否为所述目的处理器,如果所述第一处理器自身是所述目的处理器,触发处理模块;
所述处理模块,用于基于所述通信消息进行数据处理;
所述获取模块,具体用于在所述第一处理器自身不是所述目的处理器的情况下,获取所述第一处理器与所述目的处理器之间的传输路径。
6.根据权利要求4所述的装置,其特征在于,当所述第一处理器与所述目的处理器之间的传输路径为多个时,所述发送模块,具体用于获取所述第一处理器与所述目的处理器之间的各传输路径包含的通信链路的数目;将包含的通信链路的数目最少的传输路径确定为优选传输路径;根据所述优选传输路径,将所述通信消息发送至下一处理器。
7.一种电子设备,其特征在于,包括多个处理器和通信总线,其中,所述多个处理器通过所述通信总线完成相互间的通信;
每一所述处理器,用于执行该处理器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810302026.XA CN110347632B (zh) | 2018-04-04 | 2018-04-04 | 一种通信方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810302026.XA CN110347632B (zh) | 2018-04-04 | 2018-04-04 | 一种通信方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347632A CN110347632A (zh) | 2019-10-18 |
CN110347632B true CN110347632B (zh) | 2022-05-06 |
Family
ID=68172852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810302026.XA Active CN110347632B (zh) | 2018-04-04 | 2018-04-04 | 一种通信方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347632B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170393A (en) * | 1989-05-18 | 1992-12-08 | California Institute Of Technology | Adaptive routing of messages in parallel and distributed processor systems |
CN101662395A (zh) * | 2009-06-23 | 2010-03-03 | 中兴通讯股份有限公司 | 一种多处理器互连网络检测的方法 |
CN106462620A (zh) * | 2014-06-02 | 2017-02-22 | 微软技术许可有限责任公司 | 巨型网络上的距离查询 |
CN107046501A (zh) * | 2017-05-16 | 2017-08-15 | 北京邮电大学 | 用于sdn的路径确定方法、装置、计算机设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065588B2 (en) * | 2001-08-10 | 2006-06-20 | Chaavi, Inc. | Method and system for data transformation in a heterogeneous computer system |
US7707307B2 (en) * | 2003-01-09 | 2010-04-27 | Cisco Technology, Inc. | Method and apparatus for constructing a backup route in a data communications network |
US8121042B2 (en) * | 2008-06-30 | 2012-02-21 | The Boeing Company | Reliability estimation methods for large networked systems |
GB201001621D0 (en) * | 2010-02-01 | 2010-03-17 | Univ Catholique Louvain | A tile-based processor architecture model for high efficiency embedded homogenous multicore platforms |
US20120307624A1 (en) * | 2011-06-01 | 2012-12-06 | Cisco Technology, Inc. | Management of misbehaving nodes in a computer network |
US9385933B2 (en) * | 2013-02-05 | 2016-07-05 | Cisco Technology, Inc. | Remote probing for remote quality of service monitoring |
CN105744549B (zh) * | 2016-02-03 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种传输路径的切换方法、终端和系统 |
CN105764106B (zh) * | 2016-02-03 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种传输路径的更新方法、终端和系统 |
-
2018
- 2018-04-04 CN CN201810302026.XA patent/CN110347632B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170393A (en) * | 1989-05-18 | 1992-12-08 | California Institute Of Technology | Adaptive routing of messages in parallel and distributed processor systems |
CN101662395A (zh) * | 2009-06-23 | 2010-03-03 | 中兴通讯股份有限公司 | 一种多处理器互连网络检测的方法 |
CN106462620A (zh) * | 2014-06-02 | 2017-02-22 | 微软技术许可有限责任公司 | 巨型网络上的距离查询 |
CN107046501A (zh) * | 2017-05-16 | 2017-08-15 | 北京邮电大学 | 用于sdn的路径确定方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110347632A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112153085B (zh) | 一种数据处理方法、节点及区块链系统 | |
EP3968607B1 (en) | Service invocation methods | |
CN110474903B (zh) | 可信数据获取方法、装置及区块链节点 | |
CN110022259B (zh) | 消息到达率确定方法、装置、数据统计服务器及存储介质 | |
CN108513361B (zh) | 信道接入方法、装置及存储介质 | |
CN113438172B (zh) | 基于多级节点网络的数据传输方法和装置 | |
CN114268957B (zh) | 异常业务数据处理方法、装置、服务器及存储介质 | |
CN109600254B (zh) | 全链路日志的生成方法及相关系统 | |
CN112184436A (zh) | 数据同步方法、电子设备及可读存储介质 | |
CN109150969B (zh) | 数据传输方法、分发机、终端机和数据传输系统 | |
CN110347632B (zh) | 一种通信方法和装置 | |
CN108156086B (zh) | 一种策略规则下发方法及装置 | |
CN113672669B (zh) | 基于分布式存储的数据查询方法及装置 | |
CN112910936B (zh) | 数据处理方法、装置、系统、电子设备及可读存储介质 | |
CN107210996B (zh) | 一种业务链管理方法及装置 | |
CN114567678A (zh) | 一种云安全服务的资源调用方法、装置及电子设备 | |
JP2019029921A (ja) | 送信装置、受信装置、及び通信方法 | |
US9584953B2 (en) | Evaluating wireless network access connections via near field communications | |
CN108763291B (zh) | 一种数据管理方法、装置及电子设备 | |
CN112929361A (zh) | 设备认证方法、接入节点及计算机可读存储介质 | |
CN108388797B (zh) | 一种入侵检测方法、装置及电子设备 | |
CN114401126B (zh) | 一种接口安全监控方法及装置 | |
CN111163088B (zh) | 消息处理方法、系统、装置及电子设备 | |
CN110908886A (zh) | 一种数据发送方法、装置、电子设备和存储介质 | |
US9104566B2 (en) | System and method for determining whether a failed communication between signal transfer points was in error |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Hikvision Robot Co.,Ltd. Address before: No.555, Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd. |