CN112825065A - 数据处理电路、装置以及方法 - Google Patents

数据处理电路、装置以及方法 Download PDF

Info

Publication number
CN112825065A
CN112825065A CN201911148502.8A CN201911148502A CN112825065A CN 112825065 A CN112825065 A CN 112825065A CN 201911148502 A CN201911148502 A CN 201911148502A CN 112825065 A CN112825065 A CN 112825065A
Authority
CN
China
Prior art keywords
data
packet header
source
destination
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
Application number
CN201911148502.8A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simm Computing Technology Co ltd
Original Assignee
Beijing Simm Computing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Simm Computing Technology Co ltd filed Critical Beijing Simm Computing Technology Co ltd
Priority to CN201911148502.8A priority Critical patent/CN112825065A/zh
Publication of CN112825065A publication Critical patent/CN112825065A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例公开了一种数据处理电路、装置以及方法。其中该数据处理电路包括:数据输入接口、包头生成电路、数据缓冲存储器、数据生成电路和数据输出接口;所述数据输入接口将从源网络接收到的原始数据包的源包头生成数据控制信号和符合目的网络数据格式的目的包头;所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据;所述数据输出接口将所述目的包头和所述目的数据发送至所述目的网络。通过上述方法,解决了现有技术中在两个网络之间转发数据时转发电路复杂、功耗高、延时大的技术问题。

Description

数据处理电路、装置以及方法
技术领域
本公开涉及数据处理领域,尤其涉及一种数据处理电路、装置以及方法。
背景技术
随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高.芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如CPU(Central Processing Unit,中央处理器)等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如TPU(Tensor Processing Unit,张量处理器)等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。
现有芯片中,一般只有实现多种不同协议的Bus(总线)之间的数据交互,会通过桥(Bridge)进行数据包的格式转换。如图1所示为现有技术中的总线之间通过桥结构进行数据包转发的示意图,其中总线1和总线2使用不同的协议,例如总线1为SPI(SerialPeripheral Interface)总线,总线2为AXI(Advanced eXtensible Interface)总线,两者通过桥结构互联,如果从总线1向总线2传输数据,则需要桥将总线1上的数据包按照SPI协议进行解包,再将数据按照AXI协议的格式进行打包传输到总线2上。通常桥需要实现所有的协议解析,电路复杂、成本高、功耗高,且由于需要完整的拆包和打包过程,因此数据包传输时的时延较大。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
为了解决现有技术中桥转发数据时电路复杂、成本高、功耗高且延时大的技术问题,本公开实施例提出如下技术方案:
第一方面,本公开实施例提供一种数据处理电路,用于处理从源网络发送到目的网络的数据,其特征在于,包括:
数据输入接口、包头生成电路、数据缓冲存储器、数据生成电路和数据输出接口;
所述数据输入接口将从源网络接收到的原始数据包的源包头发送到所述包头生成电路;
所述数据输入接口将从源网络接收到的所述原始数据包的源数据发送到所述数据缓冲存储器;
所述包头生成电路根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头;
所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据;
所述数据输出接口将所述目的包头和所述目的数据发送至所述目的网络。
进一步的,所述源网络与所述目的网络使用相同的协议、不同的位宽。
进一步的,所述数据生成电路和所述数据输出接口为多个,不同的数据生成电路和数据输出接口对应不同的目的网络。
进一步的,所述包头生成电路包括:
包头解析器、包头锁存电路以及锁存信号生成器;
所述包头生成电路根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头,包括:
所述包头解析器根据所述源包头生成目的网络选择信号;
所述锁存信号生成器根据所述目的网络选择信号生成锁存信号;
所述包头锁存电路根据所述锁存信号锁存所述源包头并根据目的网络的位宽修改源包头中的控制信息以生成目的包头。
进一步的,所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据,包括:
所述数据生成电路根据所述锁存信号锁存从所述数据缓冲存储器中读取的源数据;
所述数据生成电路根据所述目的网络的位宽将所述锁存的源数据转换成目的数据。
进一步的,所述包头生成电路还包括:包头缓冲存储器,用于缓存从所述数据输入接口接收到的原始数据包的源包头;
所述包头解析器还包括包头输入接口和解析器启动信号接收接口,其中所述包头输入接口与所述包头缓冲存储器相连,所述解析器启动信号接收接口通过第一逻辑电路与所述包头缓冲存储器和所述数据缓冲存储器连接,当所述包头缓冲存储器和所述数据缓冲存储器都接收到数据时,所述第一逻辑电路产生所述解析器启动信号。
进一步的,所述锁存信号生成器包括锁存信号启动接口、锁存信号输出接口、计数器以及第二逻辑电路,其中所述锁存信号启动接口与包头解析器连接,所述锁存信号输出接口与所述包头锁存电路和数据生成电路连接;所述锁存信号生成器根据所述目的网络选择信号生成所述锁存信号,包括:
所述计数器通过锁存信号启动输入接口接收所述目的网络选择信号生成计数信号;
所述第二逻辑电路根据所述目的网络选择信号和所述计数信号生成锁存信号。
第二方面,本公开实施例提供一种数据处理装置,包括:
多个如第一方面中任一项所述的数据处理电路。
第三方面,本公开实施例提供一种数据处理方法,用于处理从源网络发送到目的网络的数据,其特征在于,包括:
接收从所述源网络的原始数据包,所述原始数据包包括源包头和源数据;
根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头;
根据所述数据控制信号和源数据生成符合所述目的网络数据格式的目的数据;
将所述目的包头和所述目的数据发送至所述目的网络。
第四方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第三方面中的任一所述数据处理方法。
第五方面,本公开实施例提供一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第三方面中的任一所述数据处理方法。
第六方面,本公开实施例提供一种计算机程序产品,其中,其特征在于:包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述第三方面中的任一所述数据处理方法。
第七方面,本公开实施例提供一种芯片,其特征在于,包括第二方面中所述的数据处理装置。
第八方面,本公开实施例提供一种计算装置,其特征在于,包括所述第七方面中所述的芯片。
本公开实施例公开了一种数据处理电路、装置以及方法。其中该数据处理电路包括:数据输入接口、包头生成电路、数据缓冲存储器、数据生成电路和数据输出接口;所述数据输入接口将从源网络接收到的原始数据包的源包头生成数据控制信号和符合目的网络数据格式的目的包头;所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据;所述数据输出接口将所述目的包头和所述目的数据发送至所述目的网络。通过上述方法,解决了现有技术中在两个网络之间转发数据时转发电路复杂、功耗高、延时大的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为现有技术中的总线之间通过桥结构进行数据包转发的示意图;
图2为本公开实施例提供的数据处理电路的应用场景示意图;
图3为本公开实施例提供的数据处理装置的数据处理流向示意图;
图4为本公开实施例提供的数据处理装置的结构示意图;
图5为本公开实施例提供的数据处理电路的结构示意图;
图6为本公开实施例提供的数据处理电路详细结构示意图;
图7为本公开实施例提供的目的数据的生成过程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图2为本公开实施例中的数据处理电路的应用场景示意图。如图2所示为一个包括本公开的数据处理电路的芯片。所述芯片中包括多个处理核,所述多个处理核被分为多个处理核组,每个处理核组共用一个片上网络,所有的片上网络使用相同的协议,但是数据位宽不同,共用一个片上网络的各个处理核可以是同构的也可以是异构的,但是这些处理核传输的数据的数据位宽相同。支持不同数据位宽的多个片上网络之间通过数据处理装置PS(Package Station)连接,所述数据处理装置用于在所述多个片上网络之间转发数据。
如图2所示,KM_CNM表示芯片上的一个处理核,其中M表示其所在的分组号即片上网络的编号,NM(此处的M表示N的编号,即第M个N)表示该处理核在所述分组中的编号,通过M和NM即可唯一定位到一个处理核。NoCM表示片上网络,其中M表示片上网络的编号。
图3为本公开实施例中的数据处理装置的数据处理流向示意图。如图3所示,数据处理装置PS的输入连接每一个片上网络NoC,输出也连接每一个片上网络NoC,通过内部的结构将一个片上网络与其他的片上网络连接,如图3所示的为一个全连接的网络,即每个片上网络通过所述数据处理装置连接其他每一个片上网络。
图4为本公开实施例中的数据处理装置的结构示意图。如图4所示,所述数据处理装置包括多个数据处理电路,多个片上网络通过所述数据处理装置中的多个数据处理电路互联,图4中的示例为3个片上网络通过数据处理装置的3个数据处理电路互联,每个片上网络对应一个固定的数据处理电路,其中NoC1的数据位宽为16bit,NoC2的数据位宽为32bit,NoC3的数据位宽为64bit,NoC1的数据可以通过PS的数据处理电路PG1转换为位宽为32bit的数据并转发到NoC2,也可以转换成位宽为64bit的数据并转发到NoC3。其他的网络之间的数据传输与上述方式类似,不再赘述。
图5为本公开实施例提供的数据处理电路的结构示意图。如图5所示,所述数据处理电路500包括:数据输入接口501、包头生成电路502、数据缓冲存储器503、数据生成电路504和数据输出接口505;其中所述数据输入接口501将从源网络NoC1接收到的原始数据包P1的源包头H1发送到所述包头生成电路502;所述数据输入接口501将从源网络NoC1接收到的所述原始数据包P1的源数据D1发送到所述数据缓冲存储器503;所述包头生成电路根据所述源包头H1生成数据控制信号L[1:0]和符合目的网络数据格式的目的包头H2或H3;所述数据生成电路504根据所述数据控制信号L[1:0]从所述数据缓冲存储器中取出所述源数据D1,并生成符合所述目的网络数据格式的目的数据D2或D3;所述数据输出接口505将所述目的包头H2或H3和所述目的数据D2或D3发送至所述目的网络NoC2或NoC3
可以理解的,虽然图5中所示出的数据处理电路中包括两个数据生成电路和两个数据输出接口,但是在实际应用中,所述数据生成电路504和数据输出接口505的数量是与目的网络的数量相对应的,如果源网络需要连接的目的网络为T个,则所述数据生成电路和所述数据输出接口就设置为T个。
图6为本公开实施例提供的数据处理电路详细结构示意图。由于数据处理电路的结构基本相同,因此图6中以包括一个数据生成电路504的数据处理电路为例进行描述。图6中所述的结构图是与上述例子中的具***宽相对应的,也即是说图6所示为从16bit位宽的NoC1向32bit位宽的NoC2传输数据的数据处理电路的结构。
具体的,如图6所示,所述包头生成电路502还包括:包头解析器601、包头锁存电路602以及锁存信号生成器603;所述包头生成电路502根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头,包括:所述包头解析器601根据所述源包头生成目的网络选择信号;所述锁存信号生成器603根据所述目的网络选择信号生成锁存信号;所述包头锁存电路602根据所述锁存信号锁存所述源包头并根据目的网络的位宽修改源包头中的控制信息以生成目的包头。如下表为所述源包头的示例性格式:
Ctrl_bit(4bit) ID_NoC(2bit) ID_Core(10bit) Addr_Mem(16bit)
其中源包头中的控制信息位Ctrl_bit为4bit,其中高两位表示一共有多少个数据包,低两位表示数据包中的有效字节数。目的地址为包括28bit,其中高位的2bit表示片上网络的ID号,接下来10bit表示处理核的ID号,最后16bit为数据的存储地址。
所述包头解析器601在接收到所述源包头之后,解析其中的ID_NoC对应的2bit数据,示例性的ID_NoC[0]=1表示目的网络为NoC2,ID_NoC[1]=1表示目的网络为NoC3,在该示例中,所述ID_NoC[0]=1,或,所述ID_NoC[1]=0,表示目的网络为NoC2。所述包头解析器根据所述源包头生成目的网络选择信号EN_NoC2,所述锁存信号生成器在接收到所述EN_NoC2之后,生成锁存信号L_DL,所述包头锁存电路602还包括包头锁存信号接收接口,用于接收所述锁存信号以锁存所述源包头。
所述包头生成电路在接收到所述源包头之后,将所述源包头存入所述包头锁存电路,所述包头锁存电路在接收到所述锁存信号L_DL之后锁存住所述源包头,在锁存期间再接收到的源包头不会被锁存。所述包头锁存电路根据目的网络的位宽修改源包头中的控制信息以生成目的包头,由于目的网络的位宽是预先设置好的信息,因此包头生成电路在解析出目的网络的ID之后就可以根据目的网络的位宽修改源包头中的控制信息Ctrl_bit以生成目的包头。
进一步的,所述包头生成电路502还包括:包头缓冲存储器604,用于缓存从所述数据输入接口接收到的原始数据包的源包头;所述包头解析器还包括包头输入接口和解析器启动信号接收接口,其中所述包头输入接口与所述包头缓冲存储器相连,所述解析器启动信号接收接口通过第一逻辑电路605与所述包头缓冲存储器和所述数据缓冲存储器连接,当所述包头缓冲存储器和所述数据缓冲存储器都接收到数据时,所述第一逻辑电路605产生所述解析器启动信号。
如图6所示,所述源包头从所述数据输入接口输入之后被缓存到所述包头缓冲存储器604中,所述包头解析器包括两个输入接口和多个输出接口,其中一个输入接口为包头输入接口,与所述包头缓冲存储器连接;另一个输入接口为解析器启动信号接收接口,与所述第一逻辑电路605的输出接口连接;所述第一逻辑电路605还包括两个输入接口,分别与所述包头缓冲存储器604和数据缓冲存储器503连接,当所述包头缓冲存储器和数据缓冲存储器中都有数据时,所述第一逻辑电路605产生所述解析器启动信号。
进一步的,所述第一逻辑电路605为与门电路,如图6所示,当所述包头缓冲存储器604和数据缓冲存储器503分别接收到原始数据包的源包头和源数据之后,分别产生nEH信号和nED信号,这两个信号均为高电平且被输入第一逻辑电路605的两个输入接口,第一逻辑电路605为与门,因此其输出信号EN为高电平,EN信号即为所述解析器启动信号,其被输入所述解析器启动信号接收接口,以使所述包头解析器解析从所述包头输入接口接收到的源包头。
进一步的,所述锁存信号生成器603包括锁存信号启动接口、锁存信号输出接口、计数器606以及第二逻辑电路607,其中所述锁存信号启动接口与包头解析器连接,所述锁存信号输出接口分别与所述包头锁存电路602和数据生成电路连接;所述锁存信号生成器根据所述目的网络选择信号生成所述锁存信号,包括:所述计数器606通过锁存信号启动接口接收所述目的网络选择信号生成计数信号;所述第二逻辑电路607根据所述目的网络选择信号和所述计数信号生成锁存信号。
具体的,如图6所示,所述锁存信号生成器603包括锁存信号生成启动接口,该接口与所述包头解析器的输出接口连接,用来接收所述包头解析器发送的目的网络选择信号,如果所述包头解析器解析出来所述目的网络为所述锁存信号生成器603所对应的网络,则其将对应的输出接口设为高电平,由此触发锁存信号生成器生成锁存信号。所述计数器在接收到所述目的网络选择信号之后,根据预先的设置在每个时钟产生一个计数信号,由于目标网络为NoC2,NoC2的数据位宽32bit为NoC1的数据位宽16bit的二倍,在图6所示的示例中,所述计数器需要计两个数,其在第一个时钟周期中产生信号C0,在第二个时钟周期中产生信号C1,之后会重置计数器。第二逻辑电路的输入分别输入计数器的计数信号以及目的网络选择信号,当这两个信号均为高电平时,输出一个锁存信号,所述第二逻辑电路的一个示例为与门电路,如图6所示,由于计数器需要计两个数,因此第二逻辑电路中包括两个与门电路,以在第一个时钟周期生成锁存信号L_DL,在第二个时钟周期生成锁存信号L_DH,其中所述锁存信号L_DL被用于锁存所述包头锁存器中的源包头,在该示例中,所述源包头被锁存两个时钟周期。
进一步的,所述包头生成电路502还包括:第三逻辑电路608,所述第三逻辑电路608的两个输入接口分别与所述数据缓冲存储器503和包头解析器601连接,所述第三逻辑电路的输出接口与所述数据缓冲存储器503和所述包头缓冲存储器604连接;当所述数据缓冲存储器503和所述包头缓冲存储器604中分别接收到源包头和源数据并且所述包头解析器601输出目的网络选择信号时,所述第三逻辑电路608输出读信号到所述数据缓冲存储器503和所述包头缓冲存储器604以使所述数据缓冲存储器503和所述包头缓冲存储器604可读。
如图6所示,示例性的,所述第三逻辑电路为一个与门电路,该与门电路的输入分别为表示所述数据缓冲存储器中接收到数据的nED和目的网络选择信号EN_NoC2,当nED和EN_NoC2均为高电平,第三逻辑电路的输出Rd为高电平,Rd信号被输出到数据缓冲存储器503和所述包头缓冲存储器604,以使数据缓冲存储器503和所述包头缓冲存储器604可以被读取。
进一步的,所述数据生成电路504根据所述数据控制信号从所述数据缓冲存储器503中取出所述源数据,并生成符合所述目的网络数据格式的目的数据,包括:所述数据生成电路504根据所述锁存信号锁存从所述数据缓冲存储器503中读取的源数据;所述数据生成电路504根据所述目的网络的位宽将所述锁存的源数据转换成目的数据。具体的,在图6所示的实例中,所述NoC1为16bit位宽的网络,所述NoC2为32bit位宽的网络,因此数据生成电路需要将两个16bit的源数据组合成一个32bit的目的数据,因此在该示例中,所述数据生成电路包括两个锁存器,分别为D_L,用于锁存32bit数据中的低16位,D_H,用于锁存32bit数据中的高16位。所述数据生成电路在Rd信号有效的时钟周期中,从所述数据缓冲存储器中读取源数据,在第一个时钟周期从所述数据缓冲存储器中读出一个源数据,锁存在数据锁存器中的低16位中;第二个时钟周期从所述数据缓冲存储器中读出另一个源数据,锁存在数据锁存器中的高16位中,所述数据锁存器中锁存的32bit数据即为NoC2中的一个数据包中的数据。
如图7所示为在该示例中,所述目的数据的生成过程,源数据D1被存在数据缓冲存储器中,在两个时钟周期中,两个16bit的源数据分别被读入数据锁存器中形成32bit的目的数据D2。可以理解的,上述示例中虽然示出的是从16bit位宽的网络向32bit位宽的网络传输数据,但是实际上可以是从任意位宽的网络向另外一个任意位宽的网络传输数据,此时只需要预先设置好数据锁存器的位宽以及源数据的读取或者发送方式。上述示例仅为举例,不构成对本公开的限制。
在从小位宽的网络向大位宽的网络中传输数据时,所述包头生成电路通过修改源包头的控制信息位来生成目的包头。在这种情况下,目的包头中的存储地址不需要修改,只需要使用第一个源包头中的存储地址存储目的数据中的低位数据,而高位数据只需要继续顺序存储即可。在一个示例中,所述源包头的控制信息位的高两位表示总的源数据数,信息如下:
Figure BDA0002282894010000091
Figure BDA0002282894010000101
源包头的控制信息位的低两位表示源数据中的有效字节信息,信息如下:
Ctrl_bit[1] Ctrl_bit[0] 注释
0 0 无效
0 1 低字节有效
1 0 高字节有效
1 1 2个字节都有效
同时,目的包头的控制信息位高两位是总的目的数据数,信息如下:
Ctrl_bit[3] Ctrl_bit[2] 注释
0 0 连续传4个包
0 1 只传1个包
1 0 连续传2个包
1 1 连续传3个包
目的包头的控制信息位的低两位表示目的数据中的有效字节信息,信息如下:
Ctrl_bit[1] Ctrl_bit[0] 注释
0 0 无效
0 1 低1字节有效
1 0 低2个字节有效
1 1 4个字节都有效
如上示例中,所述源网络为16bit位宽的网络,所述目的网络为32bit位宽的网络,如果源包头的控制信息位表示连续有两个源数据传输,且每个源数据中所有的字节都有效,即Ctrl_bit=‘1011’,那么目的包头中的控制信息位为Ctrl_bit=‘0111’,表示只有一个目的数据,且包中4个字节都有效,均需要传输;在第二个锁存信号后,目的数据和目的包头被发送出去。
可以理解的,在从大位宽的网络向小位宽的网络中传输数据时,所述包头生成电路通过修改源包头的控制信息位和存储地址来生成目的包头。由于从大位宽的网络向小位宽的网络传输数据,需要将源数据分成多份来传输,如从32bit位宽的网络向16bit位宽的网络传输数据,需要将32bit的源数据拆分成两个16bit的目的数据,因此除了控制信息位需要修改之外,还需要计算目的包头中的存储地址,对于第一个目的包头,其存储地址不需要修改,直接使用之前的存储地址存储16bit的目的数据,而对于另外一个目的包头,其需要在源包头的存储地址的基础上加上16bit的偏移量计算得到第二个目的包头中的存储地址,以存储另外16bit的目的数据。
可以理解的,在从大位宽的网络向小位宽的网络中传输数据时,所述数据生成电路中的数据锁存电路与所述大位宽的网络的位宽相同,如从32bit位宽的网络向16bit位宽的网络传输数据,所述数据生成电路中的数据锁存电路为32bit,其将所述数据缓冲存储器中的源数据一次读入所述数据锁存电路,之后每个周期输出一个16bit的目的数据,同时,包头生成电路输出对应的目的包头。
本公开实施例还提供了一种数据处理方法,其特征在于,包括:接收从所述源网络的原始数据包,所述原始数据包包括源包头和源数据;根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头;根据所述数据控制信号和源数据生成符合所述目的网络数据格式的目的数据;将所述目的包头和所述目的数据发送至所述目的网络。
本公开实施例还提供了一种数据处理装置,其特征在于,包括:多个如上述实施例中任一个所述的数据处理电路。
本公开实施例还提供了一种芯片,其特征在于,包括多个处理核组,与每个处理核组相连接的片上网络,多个片上网络之间通过如上述实施例中所述的数据处理装置连接。
本公开实施例提供一种计算机程序产品,其中,其特征在于:包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行前述实施例中的任一所述数据处理方法。
本公开实施例提供一种计算装置,其特征在于,包括前述实施例中的任一所述的芯片。
本公开附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

Claims (10)

1.一种数据处理电路,用于处理从源网络发送到目的网络的数据,其特征在于,包括:
数据输入接口、包头生成电路、数据缓冲存储器、数据生成电路和数据输出接口;
所述数据输入接口将从源网络接收到的原始数据包的源包头发送到所述包头生成电路;
所述数据输入接口将从源网络接收到的所述原始数据包的源数据发送到所述数据缓冲存储器;
所述包头生成电路根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头;
所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据;
所述数据输出接口将所述目的包头和所述目的数据发送至所述目的网络。
2.如权利要求1所述的数据处理电路,其中所述源网络与所述目的网络使用相同的协议、不同的位宽。
3.如权利要求1或2所述的数据处理电路,其中所述数据生成电路和所述数据输出接口为多个,不同的数据生成电路和数据输出接口对应不同的目的网络。
4.如权利要求1-3任一项所述的数据处理电路,其中所述包头生成电路包括:
包头解析器、包头锁存电路以及锁存信号生成器;
所述包头生成电路根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头,包括:
所述包头解析器根据所述源包头生成目的网络选择信号;
所述锁存信号生成器根据所述目的网络选择信号生成锁存信号;
所述包头锁存电路根据所述锁存信号锁存所述源包头并根据目的网络的位宽修改源包头中的控制信息以生成所述目的包头。
5.如权利要求4所述的数据处理电路,其中所述数据生成电路根据所述数据控制信号从所述数据缓冲存储器中取出所述源数据,并生成符合所述目的网络数据格式的目的数据,包括:
所述数据生成电路根据所述锁存信号锁存从所述数据缓冲存储器中读取的源数据;
所述数据生成电路根据所述目的网络的位宽将所述锁存的源数据转换成所述目的数据。
6.如权利要求1-5任一项所述的数据处理电路,其中所述包头生成电路还包括:包头缓冲存储器,用于缓存从所述数据输入接口接收到的原始数据包的源包头;
所述包头解析器还包括包头输入接口和解析器启动信号接收接口,其中所述包头输入接口与所述包头缓冲存储器相连,所述解析器启动信号接收接口通过第一逻辑电路与所述包头缓冲存储器和所述数据缓冲存储器连接,当所述包头缓冲存储器和所述数据缓冲存储器都接收到数据时,所述第一逻辑电路产生所述解析器启动信号。
7.如权利要求4-6任一项所述的数据处理电路,其中所述锁存信号生成器包括锁存信号启动接口、锁存信号输出接口、计数器以及第二逻辑电路,其中所述锁存信号启动接口与包头解析器连接,所述锁存信号输出接口分别与所述包头锁存电路和数据生成电路连接;所述锁存信号生成器根据所述目的网络选择信号生成所述锁存信号,包括:
所述计数器通过锁存信号启动输入接口接收所述目的网络选择信号生成计数信号;
所述第二逻辑电路根据所述目的网络选择信号和所述计数信号生成所述锁存信号。
8.一种数据处理装置,其特征在于,包括:
多个如权利要求1-7中任一项所述的数据处理电路。
9.一种芯片,其特征在于,包括多个处理核组、与每个所述处理核组相连接的片上网络,多个所述片上网络之间通过如权利要求8所述的数据处理装置连接。
10.一种数据处理方法,用于处理从源网络发送到目的网络的数据,其特征在于,包括:
接收从所述源网络的原始数据包,所述原始数据包包括源包头和源数据;
根据所述源包头生成数据控制信号和符合目的网络数据格式的目的包头;
根据所述数据控制信号和源数据生成符合所述目的网络数据格式的目的数据;
将所述目的包头和所述目的数据发送至所述目的网络。
CN201911148502.8A 2019-11-21 2019-11-21 数据处理电路、装置以及方法 Pending CN112825065A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911148502.8A CN112825065A (zh) 2019-11-21 2019-11-21 数据处理电路、装置以及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911148502.8A CN112825065A (zh) 2019-11-21 2019-11-21 数据处理电路、装置以及方法

Publications (1)

Publication Number Publication Date
CN112825065A true CN112825065A (zh) 2021-05-21

Family

ID=75907348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911148502.8A Pending CN112825065A (zh) 2019-11-21 2019-11-21 数据处理电路、装置以及方法

Country Status (1)

Country Link
CN (1) CN112825065A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431806A (zh) * 2003-02-14 2003-07-23 清华大学 基于FPGA的支持QoS用网络处理器***及数据包处理方法
CN1467956A (zh) * 2002-07-12 2004-01-14 华为技术有限公司 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法
CN1633105A (zh) * 2004-12-09 2005-06-29 上海交通大学 千兆光以太标记交换网络打包拆包实现方法
CN103748842A (zh) * 2013-06-26 2014-04-23 华为技术有限公司 一种转发数据包的方法、装置和路由设备
WO2014117688A1 (zh) * 2013-01-30 2014-08-07 华为技术有限公司 一种数据传输方法和相关装置
WO2014146468A1 (zh) * 2013-03-21 2014-09-25 中兴通讯股份有限公司 一种数据包调度和缓存的方法、装置和计算机存储介质
JP2016178494A (ja) * 2015-03-20 2016-10-06 株式会社Nttドコモ ゲートウェイ装置及び通信方法
CN109218301A (zh) * 2018-09-05 2019-01-15 天津市滨海新区信息技术创新中心 多协议间软件定义的帧头映射的方法和装置
WO2019178264A1 (en) * 2018-03-14 2019-09-19 Fungible, Inc. Flexible processing of network packets

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1467956A (zh) * 2002-07-12 2004-01-14 华为技术有限公司 一种利用帧定位实现包方式数据高位宽到低位宽的格式转换方法
CN1431806A (zh) * 2003-02-14 2003-07-23 清华大学 基于FPGA的支持QoS用网络处理器***及数据包处理方法
CN1633105A (zh) * 2004-12-09 2005-06-29 上海交通大学 千兆光以太标记交换网络打包拆包实现方法
WO2014117688A1 (zh) * 2013-01-30 2014-08-07 华为技术有限公司 一种数据传输方法和相关装置
WO2014146468A1 (zh) * 2013-03-21 2014-09-25 中兴通讯股份有限公司 一种数据包调度和缓存的方法、装置和计算机存储介质
CN103748842A (zh) * 2013-06-26 2014-04-23 华为技术有限公司 一种转发数据包的方法、装置和路由设备
JP2016178494A (ja) * 2015-03-20 2016-10-06 株式会社Nttドコモ ゲートウェイ装置及び通信方法
WO2019178264A1 (en) * 2018-03-14 2019-09-19 Fungible, Inc. Flexible processing of network packets
CN109218301A (zh) * 2018-09-05 2019-01-15 天津市滨海新区信息技术创新中心 多协议间软件定义的帧头映射的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宋仕坤: ""基于以太网MAC IP核的IEEE1588协议的设计与实现"", 《中国优秀硕士学位论文全文数据库(电子期刊)》, no. 2018, 15 April 2018 (2018-04-15) *
肖寅东;王厚军;田书林;: "高速网络入侵检测***中包头解析方法", 仪器仪表学报, no. 06, 15 June 2012 (2012-06-15) *

Similar Documents

Publication Publication Date Title
KR101686360B1 (ko) 다중슬롯 링크 계층 플릿에서의 제어 메시징
EP2668577B1 (en) Unrolling quantifications to control in-degree and/or out degree of automaton
CN103559156B (zh) 一种fpga与计算机之间的通信***
WO2024007787A1 (zh) 模型训练***、模型训练方法及装置
Suhaib et al. Dataflow architectures for GALS
CN112825065A (zh) 数据处理电路、装置以及方法
CN107918589B (zh) 一种基于fpga的dmx512信号高效缓存并发***
CN116166602A (zh) 一种基于spi的ssi协议数据接收方法及***
CN116186096A (zh) 基于fpga的关系型数据库聚合查询方法、装置、设备及介质
Klilou et al. Performance optimization of high-speed Interconnect Serial RapidIO for onboard processing
CN112866180B (zh) 数据处理电路、装置以及方法
KR20240046830A (ko) 칩-대-칩 인터페이스를 위한 온-디맨드 패킷화
Oukaira et al. New architecture for real-time image computing using parallel processing based on DSP/FPGA
JP2014194619A (ja) バッファ回路及び半導体集積回路
Nunes et al. A profiler for a heterogeneous multi-core multi-FPGA system
CN113609041A (zh) 一种数据传输方法及***
JPH0479422A (ja) 送信制御回路
CN104331385A (zh) 一种串行***接口的高速半硬件实现方法
Charaabi et al. Designing a tiny and customizable TCP/IP core for low cost FPGA
WO2023036194A1 (zh) 数据传输方法、电子***及存储介质
US20240232111A1 (en) Network credit return mechanisms
Huang et al. FPGA-based HDLC Controller Design and Communication Implementation in Normal Response Mode
Du et al. Scalability study on mesh based network on chip
Li et al. Architecture Design of Protocol Controller Based on Traffic-Driven Software Defined Interconnection
Shimura et al. On-the-fly data compression/decompression mechanism with expether

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