CN112437032A - 数据收发装置及方法、存储介质和电子设备 - Google Patents
数据收发装置及方法、存储介质和电子设备 Download PDFInfo
- Publication number
- CN112437032A CN112437032A CN201910786474.6A CN201910786474A CN112437032A CN 112437032 A CN112437032 A CN 112437032A CN 201910786474 A CN201910786474 A CN 201910786474A CN 112437032 A CN112437032 A CN 112437032A
- Authority
- CN
- China
- Prior art keywords
- data
- new
- packet
- packet header
- control
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据收发装置、方法、存储介质和电子设备,该装置包括:Rx接收器,解析接收到的数据包,得到包头和数据;控制模块(10),当需要将所述数据接力传输时,根据所述包头生成新包头;Tx发送器,将所述新包头和所述数据作为新数据包发送。该装置解析接收到的数据包,当需要将数据接力传输时,生成新包头。将新包头和数据作为新数据包输出。无需先将数据存储,然后再从存储器中读出数据发送出去,节省了数据传输时间。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种数据收发装置及方法、存储介质和电子设备。
背景技术
随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。
芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如CPU等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如TPU等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。
由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。
发明内容
(一)发明目的
本发明的目的是提供一种数据收发装置及方法、存储介质和电子设备,该装置解析接收到的数据包,当需要将数据接力传输时,生成新包头,将新包头和数据合成新的数据包后输出。相比于现有技术,无需先将数据存储,然后再从存储器中读出数据后发送,节省了数据传输时间和功耗。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种数据收发装置,包括:Rx接收器,解析接收到的数据包,得到包头和数据;控制模块,当需要将所述数据接力传输时,根据所述包头生成新包头;Tx发送器,将所述新包头和所述数据作为新数据包发送。
在本实施方式中,该数据收发装置,可通过包头确定是否需要接力传输,若需要接力传输,则生成新的数据包发送,相比于现有技术的数据收发装置,无需先将数据存储,再从存储器中读出数据后发送,节省了数据传输时间和功耗。
进一步地,还包括数据合成模块;数据合成模块,接收所述控制模块生成的所述新包头,接收所述Rx接收器解析得到的所述数据,将所述新包头和所述数据合成为所述新数据包,并发送所述新数据包至所述Tx发送器。
进一步地,所述包头包括控制位,所述控制模块根据所述控制位确定是否需要将所述数据接力传输。
进一步地,Tx发送器包括输入开关,所述输入开关包括:控制端,所述控制端与所述控制模块连接;第一输入端,所述第一输入端与所述数据合成模块连接;当需要将所述数据接力传输时,所述控制模块发送控制信号至所述控制端,以控制所述第一输入端接通,所述Tx发送器发送通过所述第一输入端获取的所述新数据包。
根据本发明的第二方面,还提供了一种核结构,包括第一方面提供的数据收发装置和存储模块;所述Rx接收器,还将所述数据发送至所述存储模块。
进一步地,输入开关还包括:第二输入端,所述第二输入端与所述存储模块相连,当不需要将所述数据接力传输时,所述控制模块发送控制信号至所述控制端,以控制所述第二输入端接通;所述Tx发送器发送通过所述第二输入端获取的所述存储模块的中存储的数据,或者所述Tx发送器不发送数据,或者所述Tx发送结束接力传输的信号。
根据本发明的第三方面,还提供了一种芯片,包括一个或多个第二方面提供的所述的核结构。
根据本发明的第四方面,还提供了一种数据收发方法,解析接收到的数据包,得到原包头和数据;将所述数据不分先后顺序地存储和发送;其中发送所述数据包括:生成新包头;将所述新包头和所述数据合成新数据包;根据所述新包头发送所述新数据包。
进一步地,所述包头包括控制位,所述控制位用于确定需要将所述数据接力传输。
进一步地,在生成新包头之前,还包括:根据所述控制位确定需要将所述数据接力传输时;则生成新包头。
根据本发明的第五方面,还提供了一种存储介质,存储介质上存储有计算机程序,所述程序被处理器执行时实现第四方面的数据收发方法的步骤。
根据本发明的第六方面,还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现第四方面数据收发方法的步骤。
(三)有益效果
本发明的上述技术方案具有如下有益的技术效果:
本发明的实施方式提供了一种数据收发装置及方法、核结构、芯片、存储介质和电子设备,该装置解析接收到的数据包,当需要将数据接力传输时,生成新包头。将新包头和数据作为新数据包发送。相比于现有技术无需先将数据存储,然后再从存储器中读出数据发送,节省了数据传输时间和功耗。
附图说明
图1是一种核与核之间的数据传输流程示意图;
图2是另一种核与核之间的数据传输流程示意图;
图3是根据本发明一实施方式的数据收发装置的结构示意图;
图4是根据本发明一实施方式的数据收发装置的结构示意图;
图5是根据本发明一实施方式的控制模块的结构示意图;
图6是根据本发明一实施方式的核结构的示意图;
图7是根据本发明一实施方式的芯片的结构示意图;
图8是根据本发明一实施方式的数据收发方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在多核架构芯片中,核与核之间可能需要配合完成某个或者多个任务。在配合完成任务时,核之间常常需要传输数据或者控制信息。从而,核与核之间的数据传输变得至关重要,甚至成为多核算力发挥的关键影响因素。
在应用中,经常会有某些核,需要将它们的数据发送给其他多个核。
图1为一种核与核之间的数据传输流程示意图。
当核Ci需要将数据包发送给多个核,例如核Cm和核Cn时,会将数据包广播出去,其数据包的传输过程如图1所示。
核Ci发送数据包到核间互联结构Fabric,核间互联结构Fabric将数据包传输到与之相连的所有其他核Cj、核Cm、和核Cn。其中,Fabric为片上的互联结构,例如片上网络(Network On Chip,Noc)、总线bus或开关switch,它跟所有的核相连。
每个核收到数据包,分别检查数据包,判断是否是发送给本核的。如果是,例如核Cm和核Cn,则保留数据包,存入自身存储器Mem;如果不是,例如核Cj,则将数据包丢弃,不存入存储器Mem。
上述数据传输过程通常存在如下的缺陷:
(1)源核将数据广播发送给所有的核,从而会占用核间互联结构Fabric,引起数据的堵塞,尤其是当多个核都有数据需要发送给多个核的时候,它们变成了串行处理,大大降低核间互联结构Fabric的利用率。
(2)数据多播给所有的核,数据会经过所有核的路径,导致能耗增加。
(3)每一个核都会接收到数据,对于不需要这些数据的核而言,需要处理这些无效的数据,导致电路的负担增加,进一步导致功耗加大。
图2是另一种核与核之间的数据传输流程示意图。
该技术属于存储接力多播数据,也就是当核Ci需要将数据包发送给多个核,例如核Cm和核Cn时,会将数据包先发送给核Cm,核Cm收到数据存入本地存储器Mem中,再由核Cm将数据从本地存储器Mem中读出来接力发送给核Cn。其数据传输如图2所示,
核Ci发送数据包到核间互联结构Fabric,核间互联结构Fabric将数据包传输到核Cm;核Cm接收数据包存入本地存储器,然后检查此数据包是否需要再发送给其他核。如果需要发送给其他核(例如核Cn),核Cm将重新设置数据包的目的地址为Cn的地址,将数据包发送到核间互联结构Fabric。核Cn接收到数据包,保留数据包,且同样会检查此数据包是否需要再发送给其他核。本例中,因为已经不需要再发送给其他核,所以数据传输到此结束。
但是,上述存储接力多播数据通常存在下述缺陷:
(1)中间接力核收到数据后,需要将数据先写入本地的存储器Memory,再从本地的存储器Memory中读出来,这样导致功耗大。
(2)数据经历先写入、后读出、再发送的过程,延时长,后继目的核等待数据的时间过长。
(3)中间接力核在接力发送数据的时候,需要从本地存储器Memory中重新读出数据,会占用本地存储器Memory,影响自身程序对Memory的访问,降低Memory的利用率。
申请人在研发过程中发现上述核与核之间的传输存在以上的缺陷。因此,本发明第一实施方式提供了一种数据收发装置。该装置确定当需要将数据接力传输时,生成新包头,将数据与新包头作为新数据包发送。相比于上述技术,不需要先将数据包存储在存储器后,再从存储器读出来,进而再将数据发送出去进行多播,不会降低本地存储器的功耗。
下面将详细说明本申请第一实施方式提供的数据收发装置。此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
在详细论述本发明下述实施方式之前,先对于本申请有关的术语进行解释,下文中及图中出现的下列术语具体含义如下:
CPU(Centre Processing Unit):中央处理器;
MCU(Microcontroller Unit):微控制单元;
TPU(Tensor Processing Unit):张量处理器;
NoC(Network On Chip),片上网络。
图3是本发明一实施方式提供的一种数据收发装置的结构示意图。
如图3所示,该数据收发装置包括:Rx接收器、控制模块和Tx发送器。该数据收发装置可以是Tx电路。该数据收发装置可以设置在核中。所述Rx接收器的输出端与控制模块10的输入端和Tx发送器的输入端相连;所述控制模块的输出端与Tx发送器相连。
其中,Rx接收器,解析接收到的数据包,得到包头和数据。
控制模块10,当需要将所述数据接力传输时,根据所述包头生成新包头。
Tx发送器,将所述新包头和所述数据作为新数据包发送。
在一个可选的实施例中,包头包括控制位,所述控制模块10根据控制位确定是否需要将所述数据接力传输。例如,当控制位为1时,该数据包需要接力传输,当控制位为0时,该数据包不需要接力传输。
在一个实施例中,包头还包括偏移地址和目的地地址。其中,目的地址是接收到该数据包的装置的地址,也可以是接收到该数据包的装置的数据存储地址。偏移地址是指如果需要将数据接力传输,接收该数据包的装置的地址与下一个目的装置的地址之间的偏移值。例如,第一个装置需要将数据发送至第二个装置和第三个装置,第一个装置发出的数据包包头中,目的地址是第二个装置的地址,偏移地址是第二个装置的地址与第三个装置的地址之间的偏移值。这种形式的包头,通过控制位的值判断是否要接力传输,偏移地址的数据位数相对于目的地址比较少,能够节省数据传输的带宽,使得数据传输的更快。
在一个可选的方式中,核间互联结构Fabric可以是一种连接线,每一个核之间都通过该连接线连接,偏移地址的数据位数与连接线的数量一一对应,当偏移地址的数据位数减少了,那么可以使得作为核间互联结构的连接线减少,一方面节省核的空间,另一方面还能够节省成本。
可选的,包头可以按照以下形式表达:
C0 | A_offset | Addr_dest |
其中,C0表示控制位,A_offset表示偏移地址;Addr_dest表示目的地址。
在本发明的一个具体的实施例中,例如可以为如下数据包的数据形式:
1 | 001 | 0010101001 |
该包头的首位是指控制位,该控制位为1,说明该包头对应的数据需要接力传输。最后的十位数是目的地址,目的地址的前三位数为“高位数”,表示接收该数据包的装置的地址,目的地址的后七位数为“低位数”表示数据的存储地址。控制位与目的地址之间的是偏移地址001,表示接收该数据包的装置与下一个装置之间相差1个间隔。因此,下一个装置的地址可以是偏移地址与目的地址的加和,可选的,下一个置的地址可以是001+001,即为010。
可选的,该数据收发装置可以设置在核中,那么目的地址则是该核的地址,偏移地址则是接收该数据包的当前核与下一个核之间的偏移地址。
在本实施方式中,当需要将数据接力传输时,生成新包头。将新包头和数据作为新数据包发送。相比于现有技术无需先将数据存储,然后再从存储器中读出数据发送,节省了数据传输时间。
图4是本发明一实施方式提供的一种数据收发装置的结构示意图。
如图4所示,该装置包括Rx接收器、控制模块10、数据合成模块20和Tx发送器。该数据收发装置可以是Tx电路。
由于增加了数据合成模块20,可以理解,所述Rx接收器的输出端经由所述数据合成模块20与Tx发送器的输入端相连;所述控制模块10的输出端经由数据合成模块20与所述Tx发送器的输入端相连。
可以理解,下面以包括数据合成模块20的数据传输装置为例进行的相关描述,对于前述数据收发装置100的情况同样适用,只是对数据和新包头进行打包的位置发生了变化,在不包括数据合成模块10的数据收发装置100来说,在Tx发送器的输入端进行数据和新包头的打包拼接;在包括数据合成模块20的数据收发装置中,在数据合成模块20中对数据和新包头进行打包拼接。本领域技术人员可以理解,其他描述对于两个可选实施方式均适用。
Rx接收器,解析接收到的数据包,得到包头和数据。其中,包头至少包括控制位,可根据所述控制位确定是否需要将数据接力传输。Rx接收器将包头发送至控制模块10,将数据发送至数据合成模块20。
控制模块10接收到包头后,可以通过判断包头中的控制位的值来确定该数据是否需要接力传输。例如,可以设定控制位的值为1时,则表示该数据需要接力传输,控制位的值为0时,可表示该数据不需要接力传输。
当需要将所述数据接力传输时,控制模块生成新包头,并将新包头发送至数据合成模块20。其中生成新包头可以是与原包头相同的控制位,或与原包头不同的控制位,更新偏移地址和目的地址。其中偏移地址和目的地址可以通过数据收发装置的控制模块内的寄存器更新。
具体地,控制模块10内还设置有寄存器,寄存器可预先设置控制位的值和偏移地址。当控制模块10收到原数据包的包头时,将寄存器预设的控制位的值和偏移地址作为新数据包的控制位和偏移地址。控制模块10可以根据原数据包中的目的地址和偏移地址,得到新的目的地址,从而生成了新包头。
数据合成模块20接收所述控制模块10生成的新包头H,接收Rx接收器解析得到的数据,将新包头和所述数据合成新数据包。数据合成模块20可以是数据合成器merge。
数据合成模块20还接收控制模块10发送的控制信号,当控制信号表示需要将所述数据接力传输时,进行数据和新包头合成得到新数据包。
可选的,数据合成模块20只有接收到该控制信号后才启动合成工作,在没有接收到该控制信号C1时则关闭,能够节省电量。
Tx发送器根据新包头中的目的地址发送从数据合成模块20获得的新数据包。
在一个可选的实施例中,Tx发送器包括输入开关s,输入开关s包括:控制端和第一输入端。其中,控制端与控制模块10连接;第一输入端与所述数据合成模块20连接。
当需要将所述数据接力传输时,控制模块10发送控制信号至控制端,以控制第一输入端接通。当第一输入端与控制端接通时,Tx发送器发送通过第一输入端获取的新数据包。
可选的,Tx发送器可以将新数据包发送至片上网络或核间互联结构等。
图5为本发明提供的控制模块的结构示意图。如图5所示,该控制模块10包括中继器、寄存器和加和器。所述控制模块10例如可以是生成控制信息,即控制模块10可以是用于生成控制位和新包头信息的专用电路。
其中,中继器可以是Buff电路。中继器是对原包头中的控制位进行中继或者反相再中继。可以预先设定该数据收发装置的控制位是进行中继还是反向再中继。当设定好后,原包头的控制位C0输入到中继器,根据预先设定,则生成相应的控制信号C1。例如,原包头的控制位为1时输入到中继器内,预先设定的是中继,产生的控制信号C1会控制输入开关连通至第一输入端,以将新数据包发送出去。例如,原包头的控制位为1时输入到中继器内,预先设定的是反向后中继,则产生的控制信号C1会控制输入开关S连通至第二输入端。
寄存器可以是Register电路,可以预先设置有新的控制位C0_n和新的偏移地址A_affest_n。例如控制模块10的寄存器接收到原数据包的偏移地址和控制位,输出预先设置的控制位C0_n和偏移地址A_affest_n。该寄存器能够决定接收到该数据包的装置是否还需要接力传输,如果需要接力传输,其目的地址相对于其当前地址的偏移地址是多少。当然,如果设定接收到该数据包的装置不需要接力多播,则新的控制位C0_n可以设定为零。
加和器,可以是Adder电路。是将原包头中的偏移地址A_offset和原目的地址Addr_dest的某些位相加,得到新的目的地址Addr_dest_n。可以是将偏移地址与Addr_dest的高位相加而保持低位不变。一般来说,偏移地址A_offset的位数小于目的地址Addr_dest的位数,所以能够节省核间互联结构Fabric的带宽,或者节省接口电路以及Fabric的资源,还可以节省功耗。
在一个实施例中,上述数据收发装置设置在核中,寄存器中预先设置的控制位的值和偏移地址可以是由核内或外部微控制单元MCU或者服务器Host设置的。
在上述实施方式中,该数据收发装置,在整个数据传输过程中,不需要微控制单元MCU进行数据处理,因此不需要占用微控制单元MCU,能够高效的将数据传输。并且,通过控制位的值,确定是否需要接力传输,如果控制位显示需要接力传输,则将数据传输至下一个目的地,无需先将数据存储至存储器中,再从存储器中读取数据进行发送,降低了存储器的功耗,并且大大降低了后继数据接受者等待数据的时间。
图6是根据本发明一方式的核结构的结构示意图。
如图6所示,该核结构1包括上述实施方式的数据收发装置100以及存储模块200。存储模块200可以是存储器。
其中,Rx接收器,解析接收到的数据包,得到包头和数据;将数据发送至存储模块200和数据合成模块20。存储模块200存储Rx接收器发送的数据。
Rx接收器接收到的数据包可以是从片上互联结构获取的,片上互联结构与所有的核连接,片上互联结构可以是核间互联结构Fabric、片上网络Noc、总线bus或开关switch中的一种。
在一个实施例中,输入开关s还包括第二输入端,第二输入端与存储模块200相连,当不需要将所述数据接力传输时,控制模块10发送控制信号至控制端,以控制第二输入端接通,Tx发送器发送通过第二输入端获取的所述存储模块200存储的数据。
在一个实施例中,当该核作为源核时,控制模块10将控制信号发送输入开关s的控制端,Tx发送器通过输入开关s的第二输入端将存储模块200存储的数据发送至片上网络,片上网络发送至接力核。
在一个可选的实施例中,当不需要将所述数据接力传输时,控制模块发送控制信号至控制端,以控制第二输入端与存储模块200接通,可设置Tx发送器选择不做输出,当然也可以设置Tx发送器将结束接力传输等信号发送至核间互联结构。
进一步可选的,当不需要将数据接力传输时,控制模块10的寄存器改变从Rx接收器获取的控制位,然后发送相应的控制信号至控制端,控制第二输入端与存储模块200接通。其中,改变从Rx接收器获取的控制位可以是将控制位清零处理。
图7是根据本发明一实施方式的芯片的结构示意图。
如图7所示,芯片可以包括四个核,分别是核Ci、核Cm、核Cn和核Cj,这四个核通过核间互联结构Fabric实现数据的传输。下面以芯片中具有四个核为例进行描述,但并不以此为限。
核Ci需要将数据依次发送至核Cm、核Cn和核Cj。在本实施方式中,省去了与本实施方式数据传输无关的数据连接方式,下面将详细说明该芯片的数据传输过程。
核Ci将数据包发送至核间互联结构Fabric,核间互联结构Fabric将数据包传输至核Cn,核Cn的Rx接收器接收并解析数据包,解析得到数据和包头,其中包头包括控制位、偏移地址和目的地址。核Cn将数据发送至本核的存储模块和数据合成模块,将包头发送至控制模块。
核Cn的控制模块检查控制位的值,根据控制位的值(例如是1),确定该数据需要接力传输,则将控制信息发送至Tx发送器和数据合成模块。同时,控制模块的寄存器将原数据包的偏移地址替换为其预设的偏移地址得到更新的偏移地址,控制模块根据原数据包的偏移地址和目的地址得到更新的目的地址,并按照寄存器预设的值获取新的控制位的值,在本实施例中,由于需要接力传输,寄存器可设置控制位与原数据包的控制位相同。控制模块将新控制位、更新的偏移地址和更新的目的地址合成一个新包头并发送至数据合成模块20。
数据合成模块将新包头和数据合成一个新数据包,根据控制模块发送的控制信息,核Cn的Tx发送器中输入开关的第一输入端有效,Tx发送器将通过开关的第一输入端获取的新数据包发送至更新后的目的地址,在本实施例中是将新数据包发送至核Cm,即核Cm的目的地址。
核Cm接收到该数据包,核Cm将该数据包解析得到数据和包头,其中包头包括控制位、偏移地址和目的地址。核Cm将数据发送至本核的存储模块。核Cm的控制模块检查控制位的值(例如是1),确定需要将数据包接力传输。但是该核Cm的寄存器内预设核Cm的接力核Cj不需要继续接力传输,即核Cj为最后一个接收数据包的核。则其控制模块的寄存器根据预设的不需要接力传输的控制信息设置新的控制位(例如新控制位为0),控制模块根据其接收的原数据包的偏移地址和目的地址生成新的目的地址。
可选的,对于核Cm来说,由于核Cj接收到的控制位是指示核Cj不需要再接力传输,那么对于核Cj来说偏移地址是无效的,可以是0也可以是其他的值。那么核Cm可以不对偏移地址更新,也可以更新为0。本领域的技术人员可以根据需要自行设定。
在本实施例中,核Cm的控制模块将新控制位、偏移地址(可以更新或者不更新)和更新的目的地址合成一个新包头。核Cm的数据合成模块将新包头和其收到的数据合成一个新数据包。核Cm将新数据包发送至新的目的地址,在本实施例中,是指核Cj。
核Cj接收到该数据包,解析得到数据和包头,同时将数据存入到本地的存储器中。包头包括控制位、偏移地址和目的地址。控制位是核Cm更改后的(例如是0),其控制模块20确定核Cj不需要接力传输,则传输结束。
可选的,对于核Cj来说,可以将其收到的数据包包头丢弃。
本发明实施方式提供的芯片,每个核不需要先将数据存入存储模块,然后在从存储器中读出来,从而降低了功耗。并且,整个数据的传输过程不需要微控制单元MCU进行数据处理,由核自身的Tr电路进行解析,从而不需要占用微控制单元MCU。并且,在本实施方式中,由于数据不需要再从存储器中读出,也就是不需要因为读存储器的数据而占用,从而没有降低的利用率。另外,数据存储在存储器与数据包的发送是并行的,相比于现有技术,大大降低了后继数据接受者等待数据的时间。
图8是根据本发明一实施方式的数据收发方法流程示意图。
如图8所示,该方法包括步骤S101~步骤S102。
步骤S101,解析接收到的数据包,得到原包头和数据。
优选的,包头包括控制位,控制位用于确定是否需要将所述数据接力传输。
在一个具体的实施例中,包头包括控制位、偏移地址和目的地址。其中,目的地址是接收到该数据包的装置的地址,也可以是接收到该数据包的装置的数据存储地址。偏移地址是指如果需要将数据接力传输,接收该数据包的装置的地址与下一个目的装置的地址之间的偏移值。
可选的,上述包头可以按照以下形式表达:
C0 | A_offset | Addr_dest |
其中,C0表示控制位,A_offset表示偏移地址;Addr_dest表示目的地址。
步骤S102,将所述数据不分先后顺序地存储和发送。在本实施方式中,数据不分先后的存储和发送,使得每一包数据被存储和被进行接力多播是并行进行的。并非先存储,再将数据读出来后发送出去。这样使得存储数据和发送数据二者之间基本上没有延时,能大大降低后继数据接收者等待数据的时间,提高数据发送的速度。
其中,发送数据包括子步骤S1021-子步骤S1023:
步骤S1021,生成新包头。
在一个具体的实施例中,根据所述控制位确定需要将所述数据接力传输时,则生成新包头。
其中,在生成新包头之前可以先根据包头中的控制位,确定该数据是否需要接力传输。例如该控制位为1,则确定该数据需要接力传输。
若需要接力传输,则生成新包头。可选的可按照下述步骤生成新包头:
分别更新偏移地址和目的地址。
可选的,更新后的目的地址可以是通过原包头中的目的地址和偏移地址的加和得到。
可选的,更新偏移地址可以是将原包头中的偏移地址替换为预设的偏移地址,得到更新后的偏移地址。
可以保持控制位不变,结合更新后的偏移地址和目的地址生成新的包头。
步骤S1022,将新包头和数据合成新数据包。
步骤S1023,根据所述新包头发送所述新数据包。
具体地,根据新包头的目的地址将新数据包发送至目的地址。
在一个实施例中,上述方法还包括步骤S1024,若不需要将所述数据包接力传输,则修改控制位,以提示接收到新数据包的装置停止接力传输。
本发明实施方式提供的数据收发方法,确定需要将所述数据包接力传输时,生成新包头。将新包头和数据包合成新数据包后输出,无需先将数据存储,再从存储器中读出数据再发送出去,节省了数据传输时间。
本发明的一个实施方式还提供了一种存储介质,该存储介质上存储有计算机程序,所述程序被处理器执行时实现上述实施方式提供的数据收发的方法的步骤。
本发明的一个实施方式还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施方式提供的数据收发的方法的步骤。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
以上参照本发明的实施例对本发明予以了说明。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。本发明的范围由所附权利要求及其等价物限定。不脱离本发明的范围,本领域技术人员可以做出多种替换和修改,这些替换和修改都应落在本发明的范围之内。
尽管已经详细描述了本发明的实施方式,但是应该理解的是,在不偏离本发明的精神和范围的情况下,可以对本发明的实施方式做出各种改变、替换和变更。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (12)
1.一种数据收发装置,其特征在于,包括:
Rx接收器,解析接收到的数据包,得到包头和数据;
控制模块(10),当需要将所述数据接力传输时,根据所述包头生成新包头;
Tx发送器,将所述新包头和所述数据作为新数据包发送。
2.根据权利要求1所述的数据收发装置,其特征在于,还包括:数据合成模块(20);
所述数据合成模块(20),接收所述控制模块(10)生成的所述新包头,接收所述Rx接收器解析得到的所述数据,将所述新包头和所述数据合成为所述新数据包,并发送所述新数据包至所述Tx发送器。
3.根据权利要求1或2所述的数据收发装置,其特征在于,
所述包头包括控制位,所述控制模块根据所述控制位确定是否需要将所述数据接力传输。
4.根据权利要求1-3任一项所述的数据收发装置,其特征在于,所述Tx发送器包括输入开关,所述输入开关包括:
控制端,所述控制端与所述控制模块(10)连接;
第一输入端,所述第一输入端与所述数据合成模块(20)连接;
当需要将所述数据接力传输时,所述控制模块(10)发送控制信号至所述控制端,以控制所述第一输入端接通,所述Tx发送器发送通过所述第一输入端获取的所述新数据包。
5.一种核结构,其特征在于,包括如权利要求1-4任一项所述的数据收发装置(100)和存储模块(200);
所述Rx接收器,还将所述数据发送至所述存储模块(200)。
6.根据权利要求5所述的核结构,其特征在于,所述输入开关还包括:
第二输入端,所述第二输入端与所述存储模块(200)相连,当不需要将所述数据接力传输时,所述控制模块(10)发送控制信号至所述控制端,以控制所述第二输入端接通;
所述Tx发送器发送通过所述第二输入端获取的所述存储模块(200)中存储的数据。
7.一种芯片,其特征在于,包括一个或多个如权利要求5-6任一项所述的核结构。
8.一种数据收发方法,其特征在于,
解析接收到的数据包,得到原包头和数据;
将所述数据不分先后顺序地存储和发送;其中,
发送所述数据包括:
生成新包头;
将所述新包头和所述数据合成新数据包;
根据所述新包头,发送所述新数据包。
9.根据权利要求8所述的方法,其特征在于,包头包括控制位,所述控制位用于确定需要将所述数据接力传输。
10.根据权利要求9所述的方法,其特征在于,在生成新包头之前,还包括:
根据所述控制位确定需要将所述数据接力传输时,则生成新包头。
11.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求8-10中任意一项数据收发的方法的步骤。
12.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求8-10中任意一项数据收发的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786474.6A CN112437032B (zh) | 2019-08-24 | 2019-08-24 | 数据收发装置及方法、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786474.6A CN112437032B (zh) | 2019-08-24 | 2019-08-24 | 数据收发装置及方法、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112437032A true CN112437032A (zh) | 2021-03-02 |
CN112437032B CN112437032B (zh) | 2023-04-18 |
Family
ID=74689739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910786474.6A Active CN112437032B (zh) | 2019-08-24 | 2019-08-24 | 数据收发装置及方法、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437032B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330070B1 (en) * | 1997-06-05 | 2001-12-11 | Matsushita Graphic Communication Systems, Inc. | Communication apparatus with relay function and relay method |
CN1710529A (zh) * | 2004-06-18 | 2005-12-21 | 乐金电子(中国)研究开发中心有限公司 | 多重cpu的存储卡共享装置 |
CN102209027A (zh) * | 2011-04-27 | 2011-10-05 | 盛科网络有限公司 | 带时戳的采样数据分级传输核心器件 |
US20110268119A1 (en) * | 2010-04-30 | 2011-11-03 | Broadcom Corporation | Packet processing architecture |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
CN103748842A (zh) * | 2013-06-26 | 2014-04-23 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
CN104142867A (zh) * | 2013-05-09 | 2014-11-12 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN109587085A (zh) * | 2018-12-29 | 2019-04-05 | 深圳市网心科技有限公司 | 一种数据传输方法及其相关设备 |
CN109766187A (zh) * | 2019-01-10 | 2019-05-17 | 烽火通信科技股份有限公司 | 网络数据包高速处理转发方法及系统 |
CN109862023A (zh) * | 2019-02-27 | 2019-06-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
-
2019
- 2019-08-24 CN CN201910786474.6A patent/CN112437032B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330070B1 (en) * | 1997-06-05 | 2001-12-11 | Matsushita Graphic Communication Systems, Inc. | Communication apparatus with relay function and relay method |
CN1710529A (zh) * | 2004-06-18 | 2005-12-21 | 乐金电子(中国)研究开发中心有限公司 | 多重cpu的存储卡共享装置 |
US20110268119A1 (en) * | 2010-04-30 | 2011-11-03 | Broadcom Corporation | Packet processing architecture |
CN102209027A (zh) * | 2011-04-27 | 2011-10-05 | 盛科网络有限公司 | 带时戳的采样数据分级传输核心器件 |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
CN104142867A (zh) * | 2013-05-09 | 2014-11-12 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN103748842A (zh) * | 2013-06-26 | 2014-04-23 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
CN109587085A (zh) * | 2018-12-29 | 2019-04-05 | 深圳市网心科技有限公司 | 一种数据传输方法及其相关设备 |
CN109766187A (zh) * | 2019-01-10 | 2019-05-17 | 烽火通信科技股份有限公司 | 网络数据包高速处理转发方法及系统 |
CN109862023A (zh) * | 2019-02-27 | 2019-06-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112437032B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107202977B (zh) | 一种基于vpx平台的综合处理系统及软件设计方法 | |
CA2170458C (en) | Multi-cluster computer system | |
US8065503B2 (en) | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process | |
CN109408257B (zh) | 用于片上网络noc的数据传输方法、装置及电子设备 | |
US8718065B2 (en) | Transmission using multiple physical interface | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
US7606933B2 (en) | Shared memory and high performance communication using interconnect tunneling | |
CN101901205A (zh) | 在PCIExpress上启用基于ID的流的方法和装置 | |
US20060095635A1 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
JPH08116348A (ja) | 高速通信装置 | |
US8464006B2 (en) | Method and apparatus for data transmission between processors using memory remapping | |
CN112445735A (zh) | 一种联邦学习数据传输方法、计算机设备、系统及存储介质 | |
CN111736115A (zh) | 基于改进型sgdma+pcie的mimo毫米波雷达高速传输方法 | |
CN112437032B (zh) | 数据收发装置及方法、存储介质和电子设备 | |
CN103312614A (zh) | 一种组播报文处理方法、线卡及通信设备 | |
US8510514B2 (en) | Apparatus, method and data processing element for efficient parallel processing of multimedia data | |
CN102446157B (zh) | 基于阵列结构的处理器核心的通信方法及通信装置 | |
US20040151175A1 (en) | Transparent data format within host device supporting differing transaction types | |
CN112905523B (zh) | 一种芯片及核间数据传输方法 | |
CN101488119B (zh) | 地址译码方法、装置及单板 | |
JP2009194510A (ja) | 優先調停システム及び優先調停方法 | |
CN112433962A (zh) | 数据传输电路及方法、核、芯片、电子设备及存储介质 | |
CN116303228A (zh) | 一种芯片功能扩展方法及系统 | |
CN212873459U (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |