CN110618962A - Ft-m6678芯片的多核网络并发访问方法、系统及介质 - Google Patents
Ft-m6678芯片的多核网络并发访问方法、系统及介质 Download PDFInfo
- Publication number
- CN110618962A CN110618962A CN201910760208.6A CN201910760208A CN110618962A CN 110618962 A CN110618962 A CN 110618962A CN 201910760208 A CN201910760208 A CN 201910760208A CN 110618962 A CN110618962 A CN 110618962A
- Authority
- CN
- China
- Prior art keywords
- core
- data
- mac address
- chip
- network
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000003993 interaction Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 30
- 230000005540 biological transmission Effects 0.000 claims description 24
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种FT‑M6678芯片的多核网络并发访问方法、系统及介质,包括:网络协议栈初始化步骤:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;MAC地址虚拟步骤:令FT‑M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;数据核号获取步骤:令网卡设备接收到数据包后,由FT‑M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,进入目的地址判断步骤。本发明实现多核同时使用单个以太网控制器,对于国产FT‑M6678芯片只有一个网卡控制器的情况下,在本发明中,通过在网卡驱动层完成多核之间的数据交互,从而让该芯片每个核都会使用网络协议栈。
Description
技术领域
本发明涉及多核网络并发技术领域,具体地,涉及FT-M6678芯片的多核网络并发访问方法、系统及介质。
背景技术
国产FT-M6678芯片是对标TI公司的TMS320C6678的一款高性能军用多核浮点DSP芯片,与TI-C6678指令集兼容。该DSP芯片含有8个M66x内核(核0~7),具有快速的数据处理能力,提供了丰富的片上接口资源,如Rapid IO、PCIe、SGMII、EMIF、I2C、UART等。该芯片可用于雷达信号处理、水声设备、电子对抗、图形图像处理、目标跟踪和搜索、导弹和火炮、导航系统、无线和移动通信等领域。
在国产FT-M6678芯片的对外接口中,有一个SGMII以太网接口,支持1000Mbps、100Mbps或10Mbps传输。与国外的同类型产品(TMS320C6678)相比,由于缺少多核导航和硬件队列模块,无法利用芯片的硬件资源实现8个内核同时并发网络通信,通常只有核0使用网卡控制器,核1~7与外界通信必须借助于其它的接口。
在军工领域DSP的应用中,网络是一种非常重要的接口,经常用于大容量的数据传输、分布式调试等功能。鉴于DSP操作系统使用的AMP构架,各核互相独立,每个都需要使用网络,而FT-M6678芯片的硬件不具备多核同时使用的网络条件。本发明提出了一种使用核间中断的方式,在底层驱动上完成不同核之间的数据传输,实现多核并发使用网络的技术。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种FT-M6678芯片的多核网络并发访问方法、系统及介质。
根据本发明提供的一种FT-M6678芯片的多核网络并发访问方法,包括:
网络协议栈初始化步骤:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟步骤:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取步骤:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,进入目的地址判断步骤;
目的地址判断步骤:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则发送数据到硬件层;
核间数据交互步骤:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
优选地,所述目的地址判断步骤:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则使用正常的网络流程转发数据。
优选地,所述核间数据交互步骤:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
优选地,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理。
优选地,所述MAC地址虚拟步骤还包括:
动态检查步骤:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
根据本发明提供的一种FT-M6678芯片的多核网络并发访问系统,包括:
网络协议栈初始化模块:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟模块:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取模块:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,调用目的地址判断模块;
目的地址判断模块:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并调用核间数据交互模块;否则,则发送数据到硬件层;
核间数据交互模块:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
优选地,所述目的地址判断模块:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并调用核间数据交互模块;否则,则使用正常的网络流程转发数据。
优选地,所述核间数据交互模块:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
优选地,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理;
所述MAC地址虚拟模块还包括:
动态检查模块:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的FT-M6678芯片的多核网络并发访问方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明实现多核同时使用单个以太网控制器,对于国产FT-M6678芯片只有一个网卡控制器的情况下,在本发明中,通过在网卡驱动层完成多核之间的数据交互,从而让该芯片每个核都会使用网络协议栈。
2、本发明快速的实现网络的数据传输,通过引入核间中断的方式完成多核之间的数据同步,极大地减小网络数据包的延迟,可以为FT-M6678芯片的每个核提供一个高性能的网络协议栈。
3、本发明提高了芯片内多核之间的网络传输效率,在使用嵌入式通信中间件的场景,会频繁的用到多核之间的网络通信,在本发明中直接在底层驱动中完成数据交互,避免通过网卡控制器,可大幅度提高传输性能。
4、性能提升:本发明在网卡的驱动层引入快速核间中断机制,响应时间在1微秒以下,极大地提高了传输效率,对于实时性要求非常高的嵌入式DSP操作系统有着非常重要的意义。
5、方便易用:对于用户来说,可在FT-M6678芯片的每个核上使用网络,在对外通信时,可以统一编程,无需对有网络的核0没有网络的核1~7区别对待,从而减小了用户的编程难度,提高用户的开发效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的多核网络并发处理流程示意图。
图2为本发明提供的获取数据包核号流程示意图。
图3为本发明提供的基于核间中断的数据交互方法结构示意图。
图4为片内数据包传输流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种FT-M6678芯片的多核网络并发访问方法,包括:
网络协议栈初始化步骤:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟步骤:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取步骤:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,进入目的地址判断步骤;
目的地址判断步骤:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则发送数据到硬件层;
核间数据交互步骤:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
具体地,所述目的地址判断步骤:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则使用正常的网络流程转发数据。
具体地,所述核间数据交互步骤:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
具体地,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理。
具体地,所述MAC地址虚拟步骤还包括:
动态检查步骤:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
本发明提供的FT-M6678芯片的多核网络并发访问系统,可以通过本发明给的FT-M6678芯片的多核网络并发访问方法的步骤流程实现。本领域技术人员可以将所述FT-M6678芯片的多核网络并发访问方法,理解为所述FT-M6678芯片的多核网络并发访问系统的一个优选例。
根据本发明提供的一种FT-M6678芯片的多核网络并发访问系统,包括:
网络协议栈初始化模块:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟模块:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取模块:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,调用目的地址判断模块;
目的地址判断模块:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并调用核间数据交互模块;否则,则发送数据到硬件层;
核间数据交互模块:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
具体地,所述目的地址判断模块:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并调用核间数据交互模块;否则,则使用正常的网络流程转发数据。
具体地,所述核间数据交互模块:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
具体地,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理;
所述MAC地址虚拟模块还包括:
动态检查模块:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的FT-M6678芯片的多核网络并发访问方法的步骤。
下面通过优选例对本发明进行更为具体地说明。
优选例1:
本方法包括如下步骤:
步骤1:使用嵌入式网络协议栈
在网络传输过程中,网络协议栈是必不可少的,FT-M6678属于嵌入式芯片,因此选择嵌入式网络协议栈进行网络数据包的解析和处理,嵌入式网络协议栈将在步骤2、3、4中用到。
嵌入式网络协议栈是网络通讯的重要组成部分,通常包括IP、UDP、TCP和ICMP等协议的全部或部分功能,对协议进行有选择的实现,尽最大可能的使协议保持功能和机制上的完整,以满足网络应用的需要。在FT-M6678芯片中网络通信中使用的是嵌入式网络协议栈。
在网络处理架构中,通信链路由三层组成,自上而下分别是硬件层、驱动层和协议层。硬件层是指集成在芯片内部的网卡控制器。驱动层即网卡驱动程序,运行在核0上,驱动层和硬件层之间的数据交互由核0统一处理。协议层包括网络协议栈和本核的接收和发送数据过程,每个核都需单独运行一个实例。
多核网络并发处理流程包括接收数据流程和发送数据流程两个部分,如图1所示。
网络数据接收过程如下:
1)当网卡中断被触发后,表示有数据到来,触发接收操作;
2)由核0完成数据包的读取工作,从硬件层的接收缓冲区将完成的数据包复制到本核上对应的缓冲区;
3)由核0解析该数据包,以获取核号信息(因为当前芯片上共有8个核,每个核上对应一个网络协议栈,此时需要确定数据是属于哪个核的,步骤3会用到该核的核号信息);
4)将数据提交给对应核(包括核0)的网络协议栈。
数据发送过程如下:
1)当前核的网络协议栈直接将封装好的数据交给核0;
2)核0将协议栈发过来的数据复制到硬件层的发送缓冲区。
在FT-M6678中,每个核都有一个网络协议栈,因此每个核也是一个单独的网络节点。
本方案的关键在于:1)如何获取当前传输数据属于哪个核(在步骤2中实现);2)采用何种方法使数据在核0和其它核之间传输(在步骤3中实现)。
步骤2:虚拟MAC地址技术
本步骤对应步骤1中“1)如何获取当前传输数据属于哪个核”。
对于所有的网络节点来说,当网络协议栈初始化成功后,会将本节点MAC地址连同其它信息一起通过网络广播给其它节点。因此FT-M6678芯片的核0可以保存一个远端的MAC地址列表。
FT-M6678芯片只有一个SGMII控制器,只分配了一个MAC地址,供核0使用。为了实现多核并发的访问,还需要为另外7个核虚拟MAC地址,该MAC地址与核0的MAC地址一起组成了本地MAC地址列表。虚拟的方法可采用产生随机数的方式,然后判断该地址是否和远端及本地MAC地址列表的MAC地址冲突,如果有冲突,重新生成一个地址,无冲突即可使用该随机数作为MAC地址。
当网卡设备接收到数据后,首先由核0解析该数据包,这里只取前6个字节,因为无论数据包是何种类型,前6个字节必然是目的MAC地址。将MAC地址与本地MAC地址列表中的地址逐一比对,可以得到该数据包的核号。
因为MAC地址是虚拟的,本地MAC地址和后续通信节点的MAC地址冲突的概率还是存在的,因此需要动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
获取核号的流程如图2所示。
步骤3:基于核间中断的数据交互方法
在步骤1中,所有核的数据都由核0接收和发送,实际上每个核都会运行一个单独的嵌入式操作系统和网络协议栈,因此数据必然会在核0与其它核之间进行频繁交互。在多核操作系统中,可以使用任务机制和共享内存的方法来实现数据传输,但这种机制的时间延迟是毫秒级的,性能会成倍下降,无法满足嵌入式系统的实时性要求。对此本专利中提出了基于核间中断的数据交互技术,以完成数据在不同核之间的数据传输,步骤如下:
1)为所有核建立一个针对核0的数据接收和发送缓冲区,分别用于保存核0发给其它核,或其它核发给0核的数据;
2)当需要传输数据时,触发一个待接收核的核间中断,如核0发给核n时,同步给核n发送核间中断,其它核发给核0时,同步给核0发送核间中断,对于核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈。
3)当接收核触发中断后,进入对应核号的中断服务程序,从数据缓冲区中读数据;
4)对读出的数据做进一步处理,如果是发给核0的数据,则由核0通过驱动层通过网卡硬件发出去,如果是发给其它核的数据,则由其它核发送给网络协议栈进行处理。
由于核间中断的响应时间不会超过1微秒(参见FT-M6678技术手册),远远小于1个网络数据包的延迟,对网络性能的影响几乎可以忽略。
基于核间中断的数据交互方法结构如图3所示。
步骤4:使用内部数据缓冲区完成片内数据包传输的方法
本步骤衔接步骤2。
在使用网络进行数据传输过程中,经常会遇到数据包在片内核间(同一个芯片的不同核之间)进行传输,这种数据传输可以使用正常的网络流程实现,也就是说数据依次通过网络协议栈、驱动层和网卡硬件进行传输。由于多核DSP芯片的特殊性,这种数据包完全可以不经过FT-M6678芯片的网卡硬件,直接在驱动层完成数据交互,并提交给对方的网络协议栈。本部分内容在驱动层实现,仅与核0有关,实现的步骤如下:
1)核0收到一个待发送的数据包,收到数据包后,立刻使用步骤2中的MAC地址列表,判断MAC地址是否在列表中;
2)解析数据包的目的MAC地址,从MAC地址判断是否为芯片内的节点,如果不是芯片内的节点,则使用正常的网络流程,否则进入下一步;
3)由核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈,有新的数据包到来;
4)接收核的网络协议栈完成数据处理。
网络传输过程的瓶颈是网卡硬件的处理能力,这种处理方式可以避免使用网卡硬件,大幅度提高传输性能,非常适合嵌入式通信中间件的场景,因为该场景下会频繁地用到片内核间的网络传输。
本步骤的处理流程如图4所示。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种FT-M6678芯片的多核网络并发访问方法,其特征在于,包括:
网络协议栈初始化步骤:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟步骤:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取步骤:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,进入目的地址判断步骤;
目的地址判断步骤:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则发送数据到硬件层;
核间数据交互步骤:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
2.根据权利要求1所述的FT-M6678芯片的多核网络并发访问方法,其特征在于,所述目的地址判断步骤:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并进入核间数据交互步骤继续执行;否则,则使用正常的网络流程转发数据。
3.根据权利要求2所述的FT-M6678芯片的多核网络并发访问方法,其特征在于,所述核间数据交互步骤:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
4.根据权利要求1所述的FT-M6678芯片的多核网络并发访问方法,其特征在于,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理。
5.根据权利要求1所述的,其特征在于,所述MAC地址虚拟步骤还包括:
动态检查步骤:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
6.一种FT-M6678芯片的多核网络并发访问系统,其特征在于,包括:
网络协议栈初始化模块:选择嵌入式网络协议栈,并初始化嵌入式网络协议栈;
MAC地址虚拟模块:令FT-M6678芯片的内核0虚拟内核1至7的MAC地址,与核0的MAC地址一起组成本地MAC地址列表;
数据核号获取模块:令网卡设备接收到数据包后,由FT-M6678芯片的内核0解析数据包,获得数据包的目的MAC地址,调用目的地址判断模块;
目的地址判断模块:将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否为片内节点:若是,则获得数据包的核号,并调用核间数据交互模块;否则,则发送数据到硬件层;
核间数据交互模块:根据获得的数据包的核号,运用基于核间中断的数据交互方法,完成数据在不同核之间的数据传输。
7.根据权利要求6所述的FT-M6678芯片的多核网络并发访问系统,其特征在于,所述目的地址判断模块:
FT-M6678芯片的内核0收到数据包后将获得的数据包的目的MAC地址与本地MAC地址列表进行比对,判断目的MAC地址是否在本地MAC地址列表中:若是,则为目的MAC地址为芯片内的节点,获得数据包的核号,并调用核间数据交互模块;否则,则使用正常的网络流程转发数据。
8.根据权利要求7所述的FT-M6678芯片的多核网络并发访问系统,其特征在于,所述核间数据交互模块:
根据获得的数据包的核号,由内核0把数据包发送对对方的数据缓冲区,同时触发接收核的核间中断,通知接收核的网络协议栈有新的数据包到来,接收核的网络协议栈完成数据处理。
9.根据权利要求6所述的FT-M6678芯片的多核网络并发访问系统,其特征在于,所述基于核间中断的数据交互方法指:
为所有内核建立一个针对内核0的数据接收和发送缓冲区,分别用于保存内核0发给其它内核的数据或其它内核发给内核0的数据;
当需要传输数据时,触发一个待接收核的核间中断,对于内核0本身的数据,则无需经过核间中断,直接将数据通过硬件网卡或发送给核0的网络协议栈;
当接收核触发中断后,从数据缓冲区中读数据;
对读出的数据做进一步处理,判断是否是发给内核0的数据:若是,则由核0通过驱动层通过网卡硬件发出去;如果是发给其它内核的数据,则由其它内核发送给网络协议栈进行处理;
所述MAC地址虚拟模块还包括:
动态检查模块:动态检查本地和远端的MAC地址,如果发现冲突,虚拟新的MAC地址,并重新启动该节点的网络协议栈。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的FT-M6678芯片的多核网络并发访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760208.6A CN110618962A (zh) | 2019-08-16 | 2019-08-16 | Ft-m6678芯片的多核网络并发访问方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760208.6A CN110618962A (zh) | 2019-08-16 | 2019-08-16 | Ft-m6678芯片的多核网络并发访问方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618962A true CN110618962A (zh) | 2019-12-27 |
Family
ID=68921777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910760208.6A Pending CN110618962A (zh) | 2019-08-16 | 2019-08-16 | Ft-m6678芯片的多核网络并发访问方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618962A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114814765A (zh) * | 2022-03-24 | 2022-07-29 | 西安电子科技大学 | 一种基于多片ft-m6678芯片的雷达目标分类方法 |
CN115811536A (zh) * | 2023-02-07 | 2023-03-17 | 南京芯驰半导体科技有限公司 | 一种基于多核异构的汽车中央网关系统及实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662910A (zh) * | 2012-03-23 | 2012-09-12 | 浙江大学 | 基于嵌入式系统的网络交互体系及网络交互方法 |
CN106445628A (zh) * | 2015-08-11 | 2017-02-22 | 华为技术有限公司 | 一种虚拟化方法、装置和系统 |
CN108196945A (zh) * | 2016-12-08 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 一种核间通信方法、装置和虚拟化设备 |
CN108768667A (zh) * | 2018-04-24 | 2018-11-06 | 中船重工(武汉)凌久电子有限责任公司 | 一种用于多核处理器片内核间网络通信的方法 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
-
2019
- 2019-08-16 CN CN201910760208.6A patent/CN110618962A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662910A (zh) * | 2012-03-23 | 2012-09-12 | 浙江大学 | 基于嵌入式系统的网络交互体系及网络交互方法 |
CN106445628A (zh) * | 2015-08-11 | 2017-02-22 | 华为技术有限公司 | 一种虚拟化方法、装置和系统 |
CN108196945A (zh) * | 2016-12-08 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 一种核间通信方法、装置和虚拟化设备 |
CN108768667A (zh) * | 2018-04-24 | 2018-11-06 | 中船重工(武汉)凌久电子有限责任公司 | 一种用于多核处理器片内核间网络通信的方法 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114814765A (zh) * | 2022-03-24 | 2022-07-29 | 西安电子科技大学 | 一种基于多片ft-m6678芯片的雷达目标分类方法 |
CN115811536A (zh) * | 2023-02-07 | 2023-03-17 | 南京芯驰半导体科技有限公司 | 一种基于多核异构的汽车中央网关系统及实现方法 |
CN115811536B (zh) * | 2023-02-07 | 2023-05-05 | 南京芯驰半导体科技有限公司 | 一种基于多核异构的汽车中央网关系统及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789617B (zh) | 一种报文转发方法及装置 | |
CN108363621B (zh) | numa架构下的报文转发方法、装置、存储介质及电子设备 | |
US11321256B2 (en) | Persistent kernel for graphics processing unit direct memory access network packet processing | |
US20100077397A1 (en) | Input/output (I/O) device virtualization using hardware | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
WO2020143237A1 (zh) | 一种dma控制器和异构加速系统 | |
WO2022251998A1 (zh) | 支持多协议栈的通信方法及系统 | |
US20230080588A1 (en) | Mqtt protocol simulation method and simulation device | |
US20100077193A1 (en) | Method and apparatus for assigning a memory to multi-processing unit | |
CN111177065A (zh) | 一种多芯片互联方法和装置 | |
CN110618962A (zh) | Ft-m6678芯片的多核网络并发访问方法、系统及介质 | |
US20140044014A1 (en) | Wireless interface sharing | |
US9170963B2 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN116132287A (zh) | 基于dpu的高性能网络加速方法及系统 | |
US8671232B1 (en) | System and method for dynamically migrating stash transactions | |
CN112749113A (zh) | 一种数据交互的方法、系统、设备及介质 | |
WO2022235337A1 (en) | Network attached mpi processing architecture in smartnics | |
US10353857B2 (en) | Parallel processing apparatus and method for controlling communication | |
CN116074131A (zh) | 一种数据处理方法、智能网卡和电子设备 | |
CN112867998B (zh) | 运算加速器、交换器、任务调度方法及处理系统 | |
US11467946B1 (en) | Breakpoints in neural network accelerator | |
US20060029088A1 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
CN114697387B (zh) | 数据包传输方法、装置及存储介质 | |
CN109992539B (zh) | 双主机协同工作装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |
|
RJ01 | Rejection of invention patent application after publication |