数据传输方法、装置、电子设备及存储介质转让专利

申请号 : CN202310593578.1

文献号 : CN116319610B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴贤海

申请人 : 南京芯驰半导体科技有限公司

摘要 :

本公开提供了一种数据传输方法、装置、电子设备及存储介质,所述方法包括:将两个以上的以太网端口与为各以太网端口的处理核通过第一接口连接;响应于第一以太网端口获取数据帧,第一以太网端口的第一处理核基于数据帧的目的地址,确定数据帧的下一跳的第二以太网端口;触发第一接口将数据帧搬运到第二以太网端口的处理核对应的缓存区;通过核间通信通道将数据帧搬运的信息通知第二以太网端口所分配的第二处理核;由第二处理核对数据帧进行下一跳的传输处理。本公开提升了以太网端口的数据传输效率。

权利要求 :

1.一种数据传输方法,应用于处理芯片中,其特征在于,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接,所述处理芯片接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接;所述方法包括:响应于以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口;

通过所述核间通信通道将搬运所述数据帧的信息通知所述第二以太网端口所分配的第二处理核;

由所述第二处理核触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区,并由所述第二处理核对所述数据帧进行下一跳的传输处理;

根据处理核的负载,处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核;所述为接入的以太网端口分配处理核,包括:确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量小于或等于当前允许接入的处理核的数量的情况下,为每个以太网端口分配不同的处理核。

2.根据权利要求1所述的方法,其特征在于,所述为接入的以太网端口分配处理核,包括:确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量大于当前允许接入的处理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:为以太网端口的每个处理核分别设置至少一个缓存区,所述至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中;

每个处理核通过所述至少一个缓存区与所述第一接口连接。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

所述第一以太网端口在设定时段内接收到的数据帧,和/或存在待转发的数据帧,当待处理的数据帧为两个以上时,所述第一处理核将两个以上的数据帧存储于自身的缓存队列中;

所述第一处理核依据所述缓存队列中数据帧的顺序,按照数据帧的目的地址信息,依次进行转发或本地处理。

5.根据权利要求1所述的方法,其特征在于,所述确定所述数据帧的下一跳的第二以太网端口,包括:触发所述第一处理核获取所述数据帧的目的地址,将所述目的地址与自身存储的MAC地址表或路由表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。

6.根据权利要求1所述的方法,其特征在于,所述第一接口包括直接存储访问接口。

7.一种数据传输装置,应用于处理芯片中,其特征在于,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接;所述装置包括:连接单元,用于使所述处理芯片接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接;

第一触发单元,用于响应于所述接入的以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口;

通知单元,用于通过所述核间通信通道将搬运所述数据帧的信息通知所述第二以太网端口所分配的第二处理核;

第二触发单元,用于触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区;

第三触发单元,用于触发所述第二处理核对所述数据帧进行下一跳的传输处理;

分配单元,用于根据处理核的负载,处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核;以及,还用于:确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量小于或等于当前允许接入的处理核的数量的情况下,为每个以太网端口分配不同的处理核。

8.根据权利要求7所述的装置,其特征在于,所述分配单元,还用于:确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量大于当前允许接入的理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。

9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:设置单元,用于为分配有以太网端口的每个处理核分别设置至少一个缓存区,所述至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中;

所述连接单元,还用于使每个处理核通过所述至少一个缓存区与所述第一接口连接。

10.根据权利要求7所述的装置,其特征在于,所述装置还包括:

第四触发单元,用于响应于所述第一以太网端口在设定时段内接收到的数据帧,和/或存在待转发的数据帧,当待处理的数据帧为两个以上时,触发所述第一处理核将两个以上的数据帧存储于自身的缓存队列中,并依据所述缓存队列中数据帧的顺序,按照数据帧的目的地址信息,依次进行转发或本地处理。

11.根据权利要求7所述的装置,其特征在于,所述第一触发单元,还用于:触发所述第一处理核获取所述数据帧的目的地址,将所述目的地址与自身存储的MAC地址表或路由表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。

12.根据权利要求7所述的装置,其特征在于,所述第一接口包括直接存储访问接口。

13.一种电子设备,其特征在于,包括:

至少一个处理器;以及

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

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至6任一项所述的数据传输方法的步骤。

14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1至6任一项所述的数据传输方法的步骤。

说明书 :

数据传输方法、装置、电子设备及存储介质

技术领域

[0001] 本公开涉及片上系统的核间数据传输技术,尤其涉及一种数据传输方法、装置、电子设备及存储介质。

背景技术

[0002] 传统交换机的端口接收到数据帧时,需要开辟内存空间作输入缓存,并把数据帧拷贝到另一块内存空间作输出缓存,CPU需要判断数据帧的包头的MAC目标地址是否与地址表中地址对应,以进行数据帧转发或处理;随着交换机的端口不断增多,数据交互愈加频繁,这导致以太网交换机整体的传输性能下降,导致数据帧转发效率低下,影响数据帧的传输速率。

发明内容

[0003] 本公开提供了一种数据传输方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
[0004] 根据本公开的第一方面,提供一种数据传输方法,应用于处理芯片中,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接,所述处理芯片接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接;所述方法包括:
[0005] 响应于以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口;
[0006] 通过所述核间通信通道将搬运所述数据帧的信息通知所述第二以太网端口所分配的第二处理核;
[0007] 由所述第二处理核触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区,并由所述第二处理核对所述数据帧进行下一跳的传输处理。
[0008] 在一些可选实施方式中,所述方法还包括:
[0009] 根据处理核的负载,处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核。
[0010] 在一些可选实施方式中,所述为接入的以太网端口分配处理核,包括:
[0011] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量小于或等于当前允许接入的理核的数量的情况下,为每个以太网端口分配不同的处理核。
[0012] 在一些可选实施方式中,所述为接入的以太网端口分配处理核,包括:
[0013] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量大于当前允许接入的理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。
[0014] 在一些可选实施方式中,所述方法还包括:
[0015] 为以太网端口的每个处理核分别设置至少一个缓存区,所述至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中;
[0016] 每个处理核通过所述至少一个缓存区与所述第一接口连接。
[0017] 在一些可选实施方式中,所述方法还包括:
[0018] 所述第一以太网端口在设定时段内接收到的数据帧,和/或存在待转发的数据帧,当待处理的数据帧为两个以上时,所述第一处理核将两个以上的数据帧存储于自身的缓存队列中;
[0019] 所述第一处理核依据所述缓存队列中数据帧的顺序,按照数据帧的目的地址信息,依次进行转发或本地处理。
[0020] 在一些可选实施方式中,所述确定所述数据帧的下一跳的第二以太网端口,包括:
[0021] 触发所述第一处理核获取所述数据帧的目的地址,将所述目的地址与自身存储的MAC地址表或路由表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。
[0022] 在一些可选实施方式中,所述第一接口包括直接存储访问接口。
[0023] 根据本公开的第二方面,提供一种数据传输装置,应用于处理芯片中,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接;所述装置包括:
[0024] 连接单元,用于使所述处理芯片接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接;
[0025] 第一触发单元,用于响应于所述接入的以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口;
[0026] 通知单元,用于通过所述核间通信通道将搬运所述数据帧的信息通知所述第二以太网端口所分配的第二处理核;
[0027] 第二触发单元,用于触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区;
[0028] 第三触发单元,用于触发所述第二处理核对所述数据帧进行下一跳的传输处理。
[0029] 在一些可选实施方式中,所述装置还包括:
[0030] 分配单元,根据处理核的负载,处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核。
[0031] 在一些可选实施方式中,所述分配单元,还用于:
[0032] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量小于或等于当前允许接入的处理核的数量的情况下,为每个以太网端口分配不同的处理核。
[0033] 在一些可选实施方式中,所述分配单元,还用于:
[0034] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量大于当前允许接入的理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。
[0035] 在一些可选实施方式中,所述装置还包括:
[0036] 设置单元,用于为分配有以太网端口的每个处理核分别设置至少一个缓存区,所述至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中;
[0037] 所述连接单元,还用于使每个处理核通过所述至少一个缓存区与所述第一接口连接。
[0038] 在一些可选实施方式中,所述装置还包括:
[0039] 第四触发单元,用于响应于所述第一以太网端口在设定时段内接收到的数据帧,和/或存在待转发的数据帧,当待处理的数据帧为两个以上时,触发所述第一处理核将两个以上的数据帧存储于自身的缓存队列中,并依据所述缓存队列中数据帧的顺序,按照数据帧的目的地址信息,依次进行转发或本地处理。
[0040] 在一些可选实施方式中,所述第一触发单元,还用于:
[0041] 触发所述第一处理核获取所述数据帧的目的地址,将所述目的地址与自身存储的MAC地址表或路由表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。
[0042] 在一些可选实施方式中,所述第一接口包括直接存储访问接口。
[0043] 根据本公开的第三方面,提供一种电子设备,包括:
[0044] 至少一个处理器;以及
[0045] 与所述至少一个处理器通信连接的存储器;其中,
[0046] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的数据传输方法的步骤。
[0047] 根据本公开的第四方面,提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本公开所述的数据传输方法的步骤。
[0048] 本公开的数据传输方法、装置、设备及存储介质,为每个以太网端口设置对应的处理核,使不同的以太网端口可以由相应的处理核对待传输的数据帧进行转发,保证了数据传输的效率,不会导致数据堆积,实现了数据传输的及时性。
[0049] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0050] 通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
[0051] 在附图中,相同或对应的标号表示相同或对应的部分。
[0052] 图1示出了本公开实施例的数据传输方法的实现流程示意图一;
[0053] 图2示出了本公开实施例的数据传输方法的实现流程示意图二;
[0054] 图3示出了本公开实施例的数据处理硬件模块结构示意图;
[0055] 图4示出了本公开实施例的数据处理装置的组成结构示意图;
[0056] 图5示出了本公开实施例一种电子设备的组成结构示意图。

具体实施方式

[0057] 为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0058] 本公开实施例的数据传输方法可以应用于处理芯片中,应用于处理芯片中,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接。为接入处理芯片中的以太网端口分配处理核,所述接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接。这里,每个处理芯片具有多个处理核,每个处理核均可单独对以太网端口中的数据帧进行转发处理,因此,其可以支持更多的以太网端口的数据传输,且能保证以太网端口的数据帧的传输效率。具体地,核间通信通道可以包含两种,一种是传输小数据量的核间通信通道,比如用mailbox传输指令,一种是支持大数据量的核间通信通道,比如共享内存等。这里,核间通信通道仅为示例性说明,也可以是其他形式的连接通道。
[0059] 本公开实施例的数据传输方法可以应用于多核MCU中,其一般包括对称多处理器(SMP)和非对称多处理器(AMP);其中,在SMP中,多个处理核共享内存,由一个操作系统负责统一管理多个处理核,当多个任务运行时,由操作系统根据每个处理核的空闲状态,决定任务由哪个CPU核处理,通过对CPU核的动态调度实现负载均衡,使CPU使用效率最大化。而AMP则是每个处理核都是独立的,均有自身的内存,各自独立运行程序。程序编译后会分别下载到每个CPU核,多个CPU核之间能够通过硬件模块mailbox相互通信。
[0060] 本公开实施例中,根据处理核的负载和/或处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核。作为一种实现方式,为接入处理芯片中的以太网端口的每个以太网端口分配一个处理核,具体可以为:确定当前允许接入的所述处理芯片中的处理核的数量,在待连接的以太网端口的数量小于或等于当前允许接入的处理核的数量的情况下,为每个以太网端口分配不同的处理核。本公开实施例中,当待连接的以太网端口的数量较少,而MCU中的处理核的数量超过待连接的以太网端口的数量时,可以为每个以太网端口分配不同的处理核,可以使处理核专门对单个以太网端口的数据帧进行传输,使每个以太网端口的数据帧可以及时快速地分发到下一跳的以太网端口,实现数据的快速传输。作为一种示例,以太网端口可以包括RJ45端口或SFP端口等。
[0061] 作为一种实现方式,为每个以太网端口分配一个处理核,还可以为:待连接的以太网端口的数量大于当前允许接入的处理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。本公开实施例中,当待连接的以太网端口的数量超过处理芯片中的处理核的数量的情况下,这样,不可能为每一以太网端口均仅分配一个处理核,这样,每个处理核至少负责一个以太网端口的数据帧转发,为提升处理核对以太网端口的数据帧的转发效率,为各处理核尽量分配数量相当的以太网端口,可以使各处理核都能高效地处理以太网端口的数据帧,从而保证以太网端口数据帧的传输效率。
[0062] 图1示出了本公开实施例的数据传输方法的实现流程示意图一,如图1所示,本公开实施例的数据传输方法包括以下处理步骤:
[0063] 步骤101,响应于接入的以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口。
[0064] 本公开实施例中,当第一以太网端口接收到其他网络端口转发的数据帧后,获取所述数据帧的目的地址,将所述目的地址与芯片内部缓存的MAC地址表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。
[0065] 本公开实施例中,数据帧也可以是第一以太网端口生成初始数据帧,即数据帧的源地址为第一以太网端口的地址,第一处理核可以基于数据帧的目的地址,将数据帧确定下一跳的地址,并将数据帧搬运至目的地址对应的存储区,以使目的地址对应的处理核获取数据帧并进行处理。初始数据帧也可以通过广播的方式向其他以太网端口发送,使其他以太网端口确定初始数据帧是否为传输给自身的数据帧。
[0066] 作为一种示例,处理核1接收到目的MAC地址为以太网端口2的物理地址的数据帧,首先将数据帧中的源MAC地址和对应的输入以太网端口1记录到自身维护的MAC地址表中;然后处理核1检查本地的MAC地址表中是否有数据帧中的目的MAC地址的信息,如果有,则从MAC地址表中记录的对应以太网端口2发送出去,如果没有,则会将此数据帧从非接收端口的所有端口发送出去,即进行广播。
[0067] 步骤102,通过所述核间通信通道将所述数据帧搬运的信息通知所述第二以太网端口所分配的第二处理核。
[0068] 作为一种示例,处理核1确定所接收的数据帧中的目的MAC地址为以太网端口2的物理地址,确定以太网端口2的处理核为处理核2,则通知处理核2将数据帧搬运至处理核2的缓存区中,以作进一步转发或本地处理。
[0069] 步骤103,由所述第二处理核触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区。
[0070] 本公开实施例中,以太网端口通过第一接口分别与该以太网端口所分配的处理核连接,在确定第一以太网端口的数据帧的目的地址后,直接通过该第一接口将第一以太网端口获取的数据帧搬运至第二以太网端口所属的处理核对应的缓存区中。本公开实施例实现了待传输数据帧在缓存区之间进行直接搬运,不必将数据帧跨存储区的搬运,提升了数据帧的搬运效率,使数据帧的传输更及时。
[0071] 步骤104,由所述第二处理核对所述数据帧进行下一跳的传输处理。
[0072] 本公开实施例中,第一处理核直接通过核间通信通道,向第二处理核通知有数据帧需要该第二处理核处理,不必将数据帧或其他相关数据向第二处理核传输,即,不同的处理核之间仅传输用于控制的通知指令即可,方便第二处理核直接到第二以太网端口对应的缓存区读取数据帧并进行搬运,提升了处理核之间的控制指令的传输效率。第二处理核基于数据帧的目的地址,进行下一跳的传输处理。本公开实施例中,处理核之间采用mailbox传输通道进行通知信息的传输。
[0073] 本公开实施例中,当处理核对应的以太网端口同时接收到多个数据帧时,这些数据帧可以是来自其他以太网端口的需要向该处理核转发的数据帧,也可以包括该处理核的以太网端口需要向其他以太网端口转发的数据帧,处理核会 根据接收数据帧的时刻,将各数据帧存储于自身的缓存队列中,并依据缓存队列中数据帧的顺序,依次进行转发或本地处理。
[0074] 本公开实施例的技术方案,为每个以太网端口设置对应的处理核,使不同的以太网端口可以由相应的处理核对待传输的数据帧进行转发,保证了数据传输的效率,不会导致数据堆积,实现了数据传输的及时性。本公开实施例特别适用于车载网关,以太网交换机的处理中,车载交换机与其他模块(鱼眼/全景摄像头,车身域控ECU等)连接,最终连接到终端DLINK/ADAS/仪表/诊断仪等;交换机的端口使用分核处理报文转发时,能大大提升车载网关通信整体运行效率。使车辆更及时响应驾乘人员的操作指令,提升了车辆的安全性。另外,当本公开实施例的技术方案应用于车载以太网交换机中时,不仅能够隔绝车载局域网的冲突域,提高以太网交换机数据转换效率,还可以调整网络端口的处理优先级和负载,进一步提升车辆的控制效率及稳定性,提升车辆的安全效率。
[0075] 本公开实施例的技术方案还可以应用于其他交通工具如高铁、飞机、轮船等安全性较高运输工具中。
[0076] 图2示出了本公开实施例的数据传输方法的实现流程示意图二,如图2所示,本公开实施例的数据传输方法具体包括以下处理步骤:
[0077] 步骤201,为处理芯片接入的以太网端口的每个处理核分别设置至少一个缓存区。
[0078] 本公开实施例中,处理核的至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中。这里,可以基于处理核所负责的以太网端口的数量,为处理核设置相应数量的缓存区,即当处理核负责单个以太网端口的情况下,为处理核分配一个缓存区,作为以太网端口的数据帧的缓存。当为处理核负责两个以上的以太网端口的情况下,为处理核分配两个以上的缓存区,分别用于存储每个以太网端口的数据帧。当然,也可以负责多个以太网端口的处理核分配一个缓存区,用于存储该处理核负责的不同以太网端口的数据帧的存储。本公开实施例通过为每个处理核分别设置缓存区,使处理核可以基于所述处理芯片的共享内存直接进行以太网端口数据帧的传输,进一步提升了数据帧的传输效率。
[0079] 本公开实施例中,以太网端口通过第一接口和至少一个缓存区与各处理核之间连接,处理核之间通过核间通信通道如mailbox方式进行通知指令的传输,而不同以太网端口的数据帧直接在处理芯片的共享内存中进行搬运流转,使本公开实施例的数据传输效率相当高。
[0080] 作为一种示例,所述第一接口包括直接存储访问(Direct Memory Access,DMA)接口等。
[0081] 步骤202,响应于所述接入的以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口。
[0082] 本步骤与本101的处理方式完全相同,这里不再赘述其实现细节。
[0083] 步骤203,通过所述核间通信通道将所述数据帧搬运的信息通知所述第二以太网端口所分配的第二处理核。
[0084] 本步骤与本102的处理方式完全相同,这里不再赘述其实现细节。
[0085] 步骤204,由所述第二处理核触发所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区。
[0086] 本步骤与本103的处理方式完全相同,这里不再赘述其实现细节。
[0087] 步骤205,由所述第二处理核对所述数据帧进行下一跳的传输处理。
[0088] 本步骤与本104的处理方式完全相同,这里不再赘述其实现细节。
[0089] 本公开实施例的技术方案,为每个以太网端口设置对应的处理核,使不同的以太网端口可以由相应的处理核对待传输的数据帧进行转发,保证了数据传输的效率,不会导致数据堆积,实现了数据传输的及时性。本公开实施例特别适用于车载以太网交换机的处理中,车载交换机与其他模块(鱼眼/全景摄像头,车身域控ECU等)连接,最终连接到终端DLINK/ADAS/仪表/诊断仪等;交换机的端口使用分核处理报文转发时,能大大提升车载网关整体运行效率。使车辆更及时响应驾乘人员的操作指令,提升了车辆的安全性。另外,当本公开实施例的技术方案应用于车载以太网交换机中时,不仅能够隔绝车载局域网的冲突域,提高以太网交换机数据转换效率,还可以调整网络端口的处理优先级和负载,进一步提升车辆的控制效率及稳定性,提升车辆的安全效率。
[0090] 本公开实施例的技术方案还可以应用于其他交通工具如高铁、飞机、轮船等安全性较高运输工具中。
[0091] 以下通过示例,进一步阐明本公开实施例技术方案的实质。
[0092] 图3示出了本公开实施例的数据处理硬件模块结构示意图,如图3所示,本公开实施例高性能多核异构的MCU设置有多个CPU处理核,图中分别为CPU1、CPU2、CPU3、……CPUX,每个处理核核能独立地控制以太网端口(ethernet1、ethernet2、ethernet3、……ethernetX)。本公开实施例中,当MCU中的CPU处理核足够多时,最好为每个以太网端口分配一个独立的处理核,以使处理核能对以太网端口的数据帧进行单独处理,提升以太网端口的数据帧处理效率。
[0093] 如图3所示,为每一处理核还分配有单独的缓存区,分别用于存储每个以太网端口的数据帧,方便对数据帧进行搬运等操作。本公开实施例中,每个处理核的缓存区均位于MCU的共享内存中,这样,当以太网端口之间进行数据帧传输时,直接在MCU的共享内存中进行搬运即可,即仅需将各数据帧按其目的地址搬运到对应以太网端口对应的处理核的缓存区即可,提升了不同以太网端口之间的数据帧传输效率。
[0094] 当以太网端口获取到数据帧后,对应的CPU处理核基于以太网帧的包头的目的地址,将目的地址与MCU中缓存的地址表进行对比匹配;查找到匹配目的地址的对应的地址后,通过DMA把数据帧搬运对应的以太网端口对应的缓存区(buffer)中,CPU处理核之间通过MAILBOX进行数据交互,通知目的端口的CPU处理核,配置直接存储访问(Direct Memory Access,DMA)接口把数据帧直接发送出去。由此,本公开实施例的技术方案实现了多个处理核同时能处理多个以太网端口收发,并且快速确定数据帧的下一跳转发路径或丢弃;在以太网端口有大量数据发送的情况下,能大大减少数据发送的等待时间,提升数据传输的效率。
[0095] 本公开实施例适用于性能要求较高,实时性要求高的网络报文处理能力的车载网关/交换机中,也适用于监听车辆中不同电子控制单元 (Electronic Control Unit,ECU)之间的100Base‑T1的车载以太网的网络通信,同样也适用于驾驶传感器数据转发,以及网关等的测试应用中。作为一种示例,本公开实施例的技术方案,可以应用于车辆中所设置的多方位摄像头采集图像数据的场景中,当车辆的多个ECU的以太网诊断、控制、升级等,都可以通过交换机/网关接入到车载终端(dlink、ADAS、仪表等);可以利用本公开实施例的以太网交换机方式,通过多个摄像头图像数据的接入,实现全景图像的展示等。由于本公开实施例的数据传输效率高且响应及时,方便用户及时准确获取到全景图像,避免了很多安全隐患。或者,作为一种实现方式,当车身的不同域需要协同控制时,利用本公开实施例的技术方案,可以利用相应的网络接口,向不同域进行指令和/或数据的传输,能够快速实现对各域的协调管理,提升了车辆的管理响应效率及操作安全性。
[0096] 本公开实施例特别适用于车载网关/以太网交换机的处理中,车载交换机与其他模块(鱼眼/全景摄像头,车身域控ECU等)连接,最终连接到终端DLINK/ADAS/仪表/诊断仪等;交换机的端口使用进行分核处理报文转发时,能大大提升车载网关整体运行效率。使车辆更及时响应驾乘人员的操作指令,提升了车辆的安全性。另外,当本公开实施例的技术方案应用于车载以太网交换机中时,不仅能够隔绝车载局域网的冲突域,提高以太网交换机数据转换效率,还可以调整网络端口的处理优先级和负载,进一步提升车辆的控制效率及稳定性,提升车辆的安全效率。本公开实施例的技术方案还可以应用于其他交通工具如高铁、飞机、轮船等安全性较高运输工具中。
[0097] 图4示出了本公开实施例的装置的组成结构示意图,如图4所示,本公开实施例的数据处理装置应用于处理芯片中,所述处理芯片包括两个以上的处理核,所述两个以上的处理核之间通过核间通信通道连接;所述数据处理装置包括:
[0098] 连接单元41,用于使所述接入的以太网端口与第一接口连接,所述两个以上的处理核与所述第一接口连接;
[0099] 第一触发单元42,用于响应于所述接入的以太网端口中的第一以太网端口获取数据帧,所述第一以太网端口的第一处理核基于所述数据帧的目的地址,确定所述数据帧的下一跳的第二以太网端口;
[0100] 通知单元43,用于通过所述核间通信通道将所述数据帧搬运的信息通知所述第二以太网端口所分配的第二处理核;
[0101] 第二触发单元44,用于触发所述第二处理核通过所述第一接口将所述数据帧搬运到所述第二以太网端口的处理核对应的缓存区;
[0102] 第三触发单元45,用于触发所述第二处理核对所述数据帧进行下一跳的传输处理。
[0103] 在图4所示的数据传输装置的基础上,本公开实施例的数据传输装置还包括:
[0104] 分配单元(图4中未示出),用于根据处理核的负载,处理核当前接入的以太网端口数量,为接入的以太网端口分配处理核。
[0105] 在一些可选实施方式中,所述分配单元,还用于:
[0106] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量小于或等于当前允许接入的处理核的数量的情况下,为每个以太网端口分配不同的处理核。
[0107] 在一些可选实施方式中,所述分配单元,还用于:
[0108] 确定当前允许接入的所述处理芯片中的处理核的数量,在接入的以太网端口的数量大于当前允许接入的理核的数量的情况下,为每个以太网端口各分配一个处理核;其中,每个处理核所分配的以太网端口的数量相当。
[0109] 在图4所示的数据传输装置的基础上,本公开实施例的数据传输装置还包括:
[0110] 设置单元(图4中未示出),用于为分配有以太网端口的每个处理核分别设置至少一个缓存区,所述至少一个缓存区用于存储对应的以太网端口的数据帧,所述缓存区位于所述处理芯片的共享内存中;
[0111] 所述连接单元41,还用于使每个处理核通过所述至少一个缓存区与所述第一接口连接。
[0112] 在图4所示的数据传输装置的基础上,本公开实施例的数据传输装置还包括:
[0113] 第四触发单元(图4中未示出),用于响应于所述第一以太网端口在设定时段内接收到的数据帧,和/或存在待转发的数据帧,当待处理的数据帧为两个以上时,触发所述第一处理核将两个以上的数据帧存储于自身的缓存队列中,并依据所述缓存队列中数据帧的顺序,按照数据帧的目的地址信息,依次进行转发或本地处理。
[0114] 在一些可选实施方式中,所述第一触发单元42,还用于:
[0115] 触发所述第一处理核获取所述数据帧的目的地址,将所述目的地址与自身存储的MAC地址表或路由表进行匹配,确定下一跳地址,并基于所述下一跳地址确定所述第二以太网端口。
[0116] 在一些可选实施方式中,所述第一接口包括直接存储访问接口。
[0117] 在示例性实施例中,本公开实施例的数据处理装置中各处理单元可以被一个或多个中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,Graphics Processing Unit)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field‑Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现。
[0118] 关于上述实施例中的装置,其中各个模块及单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0119] 根据本公开的实施例,本公开还记载了一种电子设备和一种可读存储介质。
[0120] 图5示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0121] 如图5所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口
805也连接至总线804。
[0122] 电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0123] 计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数据传输方法。例如,在一些实施例中,数据传输方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的数据传输方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据传输方法。
[0124] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、复杂可编程逻辑设备(CPLD)、计算机硬件模块、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0125] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0126] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0127] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0128] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0129] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0130] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0131] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0132] 以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。