CN115102896A - 数据广播方法、广播加速器、noc、soc及电子设备 - Google Patents
数据广播方法、广播加速器、noc、soc及电子设备 Download PDFInfo
- Publication number
- CN115102896A CN115102896A CN202210865619.3A CN202210865619A CN115102896A CN 115102896 A CN115102896 A CN 115102896A CN 202210865619 A CN202210865619 A CN 202210865619A CN 115102896 A CN115102896 A CN 115102896A
- Authority
- CN
- China
- Prior art keywords
- broadcast
- data packet
- address mapping
- address
- node
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种数据广播方法、广播加速器、NOC、SOC及电子设备,该方法应用于广播加速器,广播加速器用于与片上网络NOC所包括的广播节点连接,该方法包括:接收存在连接关系的关联广播节点传输的数据包;根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置包括。通过该方法,可提高数据广播过程中的灵活性。
Description
技术领域
本公开涉及片上网络NOC(Network on Chip)技术领域,尤其涉及一种数据广播方法、广播加速器、NOC、SOC及电子设备。
背景技术
在SOC(System on Chip,芯片系统)中,主设备即为能主动发起访问请求的模块,如DMA(Direct Memory Access,直接存储器访问)、CPU(Central Processing Unit,中央处理器)等,从设备即为能够被访问的模块,如DDR(Double Data Rate,同步动态随机存取存储器)。
当主设备发出的数据包需要广播到多个从设备上时,现有技术借助于在片上网络NOC上设置广播节点,且为广播节点指定一个特殊的广播地址以及固定的地址映射规则,该地址映射规则可将广播地址映射为多个地址,具体为各个从设备所在的地址。当主设备发出的数据包需要进行广播时,主设备将数据包发送到广播地址所在的广播节点,由广播节点根据映射规则将广播地址分别映射为不同的地址,并将数据包路由至映射后的地址所在的其他位置,从而实现广播数据包。
然而,在上述方案中,由于广播节点内的地址映射规则为固定不可更改的规则,因此,无法在使用过程中修改地址映射关系,存在使用不灵活的弊端。
发明内容
本公开的目的是提供一种数据广播方法、广播加速器、NOC、SOC及电子设备,可提高数据广播过程中的灵活性。
根据本公开的一个方面,提供一种数据广播方法,应用于广播加速器,所述广播加速器与片上网络NOC所包括的广播节点连接,所述方法包括:接收存在连接关系的关联广播节点传输的数据包;根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置。
本公开一种可行的实现方式中,所述方法还包括:响应所述软件发送的地址映射规则配置指令,暂停执行所述地址映射操作;基于所述地址映射规则配置指令更新所述地址映射规则,以及重启所述地址映射操作。
本公开一种可行的实现方式中,在所述响应所述软件发起的地址映射规则配置指令之前,所述方法还包括:在检测到所述关联广播节点内不存在所述地址映射规则,或检测到所述地址映射规则为空,或检测到用户发起的映射规则修改指令的情况下,以中断的方式向所述软件发送地址映射规则配置申请,以使所述软件发送预先配置的所述地址映射规则配置指令。
本公开一种可行的实现方式中,所述地址映射规则通过页表实现或者通过段地址实现。
本公开一种可行的实现方式中,在所述根据可由软件进行配置更改的地址映射规则执行地址映射操作之前,所述方法还包括:根据所述数据包携带的信息,判断所述数据包是否为广播数据包;若是,执行所述地址映射操作及其后续步骤;若否,通知所述关联广播节点按照预先保存的路由表对所述数据包进行单播。
本公开一种可行的实现方式中,所述判断所述数据包是否为广播数据包,包括:判断所述数据包携带的地址是否位于预先为所述关联广播节点划分的广播地址段范围内;若位于,确定所述数据包是所述广播数据包;若不位于,确定所述数据包不是所述广播数据包。
本公开一种可行的实现方式中,所述判断所述数据包是否为广播数据包,包括:判断所述数据包是否携带有表征其为所述广播数据包的标识;若携带,确定所述数据包是所述广播数据包;若未携带,确定所述数据包不是所述广播数据包。
根据本公开的另一方面,还提供一种广播加速器,用于与NOC所包括的广播节点连接,包括:数据接收模块,被配置为接收存在连接关系的关联广播节点传输的数据包;地址映射模块,被配置为根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;地址分发模块,被配置为将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置。
本公开一种可行的实现方式中,所述地址映射模块还被配置为:响应所述软件发送的地址映射规则配置指令,暂停执行所述地址映射操作;基于所述地址映射规则配置指令更新所述地址映射规则,以及重启所述地址映射操作。
本公开一种可行的实现方式中,所述广播加速器还包括中断控制模块,被配置为:在检测到所述关联广播节点内不存在所述地址映射规则,或检测到所述地址映射规则为空,或检测到用户发起的映射规则修改指令的情况下,以中断的方式向所述软件发送地址映射规则配置申请,以使所述软件发送预先配置的所述地址映射规则配置指令。
本公开一种可行的实现方式中,所述地址映射模块,还被配置为:根据所述数据包携带的信息,判断所述数据包是否为广播数据包;若是,执行所述地址映射操作;若否,通知所述地址分发模块通知所述关联广播节点按照预先保存的路由表对所述数据包进行单播。
根据本公开的另一方面,还提供一种NOC,包括广播节点以及上述任一实施例中的广播加速器,所述广播节点与所述广播加速器一一对应连接。
本公开一种可行的实现方式中,所述广播加速器挂载在所述广播节点上,或者内嵌于所述广播节点内。
本公开一种可行的实现方式中,所述NOC包括多个广播节点,且在所述多个广播节点中包括存在级联关系的第一广播节点以及第二广播节点;与所述第一广播节点对应的广播加速器执行所述地址映射操作后得到的所述多个广播输出地址中,包括所述第二广播节点的广播输入地址,所述第二广播节点的广播输入地址可被与所述第二广播节点对应的广播加速器映射成多个其他广播输出地址。
根据本公开的另一方面,还提供一种SOC,包括主设备、从设备以及上述任一实施例提供的NOC,所述主设备通过所述NOC与所述从设备通信连接;当所述NOC接收到所述主设备向所述从设备发起的数据广播请求时,执行上述任一实施例提供的数据广播方法。
在一些使用场景下,该SOC的产品形式体现为显卡;在另一些使用场景下,该SOC的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述SOC。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1为本公开一个实施例的SOC的结构示意图;
图2为本公开一个实施例的NOC的结构示意图;
图3为本公开一个实施例的广播加速器的结构示意图之一;
图4为本公开一个实施例的广播加速器的结构示意图之二;
图5为本公开另一个实施例的NOC的结构示意图;
图6为本公开一个实施例的数据广播方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种在SOC中实现数据广播的方案。
其中,请参照图1,SOC包括主设备、多个从设备以及片上网络NOC。
主设备可通过片上网络NOC向多个从设备广播数据包,该多个从设备可以是所有从设备,也可以是所有从设备中的部分从设备。至于主设备要向哪些从设备广播数据包,由具体的应用场景所决定。
可选的,主设备可以理解为SOC内所包括的DMA、CPU等可以发起访问请求的模块,从设备可以理解为SOC内所包括的DDR等能够被访问的模块。当然,图1仅仅是SOC的简易示意图,可以理解,在实际应用过程中,SOC还可以包括更多的主设备以及还可以包括其他图1中未示出的单元模块。
在NOC内包括多个网络节点,网络节点用于与从设备连接,以将其接收到的数据包路由至对应连接的从设备。此外,请参照图2,在本公开实施例中,针对NOC内每个有广播需求的网络节点(以下简称为广播节点),可为其增设一一对应连接的广播加速器,以辅助广播节点可以灵活地将主设备发送的数据包广播到各个从设备(即图2中的DDR0、DDR1及DDR2)。
针对某个具体的广播节点而言,与之对应的广播加速器可以如图2所示的挂载在广播节点上。在另一种未示出的实施例中,广播加速器也可以内嵌于广播节点内。
可以理解,本公开实施例中所提及到的位于NOC内的广播节点、网络节点以及广播加速器均为硬件模块。
下面将先从广播加速器的角度,针对广播加速器辅助广播节点灵活地将主设备发送的数据包广播到各个从设备的过程进行介绍。
请参照图3,在本公开一实施例中,广播加速器可以包括数据接收模块、地址映射模块以及地址分发模块。
数据接收模块,被配置为接收与自身存在连接关系的广播节点(后文一些实施例中简称为关联广播节点)所传输的数据包。
地址映射模块,被配置为根据地址映射规则执行地址映射操作,以将接收到的数据包所携带的地址映射成多个广播输出地址;
地址分发模块,被配置为将多个广播输出地址分发给该关联广播节点,以使该关联广播节点将数据包广播至每个广播输出地址对应的位置。
可选的,在一些实施方式中,上述可以实现将1个地址映射为多个地址的地址映射规则,可以通过页表实现。例如在地址映射模块内同时保存多个页表,同一地址在不同页表的转换下,可被转换成不同的地址,进而可以实现将同一个地址映射输出为不同的广播输出地址。
可选的,在另一些实施方式中,上述可以实现将1个地址映射为多个地址的地址映射规则,可以通过段地址实现。例如将地址段的低设置为可修改位,通过修改地址的低bit实现将一个地址偏移到多个不同地址的映射。
以图2为例,主设备预计将数据包广播至DDR0、DDR1以及DDR2。基于这种广播需求,可在与广播节点对应的广播加速器内配置与广播需求对应的地址映射规则,以使得广播加速器可以将从广播节点处获取到的地址分别映射成DDR0的地址、DDR1的地址以及DDR2的地址。此外,还为NOC内的广播节点设置对应的地址空间范围,若主设备所发送的数据包携带的地址属于某个广播节点所属的地址空间范围,则该数据包将会被路由至该广播节点处。
完成上述配置后,当主设备需要广播数据包至DDR0、DDR1以及DDR2时,可发送携带地址的数据包至NOC。若数据包所携带的地址位于广播节点所属的地址空间范围内,则该数据包将会被路由至广播节点处。
广播节点接收到数据包后,将数据包发送给广播加速器。广播加速器的数据接收模块接收到与自身存在连接关系的关联广播节点所传输的数据包后,交由地址映射模块进行处理。
具体的,地址映射模块根据地址映射规则执行地址映射操作:根据预先配置的地址映射规则,或者在检测到当前缺失地址映射规则而实时向软件申请配置的地址映射规则,将接收到的数据包所携带的地址映射成多个广播输出地址,分别为DDR0的地址、DDR1的地址以及DDR2的地址。
得到广播输出地址后,地址分发模块将广播输出地址分发给关联广播节点,该关联广播节点将数据包进行复制后,分别用得到的广播输出地址替换数据包中的原地址,即得到携带DDR0的地址的数据包、携带DDR1的地址的数据包以及携带DDR2的地址的数据包,以便关联广播节点将得到的数据包分别广播至每个广播输出地址对应的位置,即DDR0、DDR1以及DDR2。
值得指出的是,在本公开实施例中,广播加速器的地址映射模块在执行地址映射操作时,是基于可由软件进行配置更改的地址映射规则将数据包所携带的地址映射成多个广播输出地址。也就是说,本公开实施例中的地址映射规则,可随时由软件控制进行更新以及修改。
在一实施例中,请参照图4,广播加速器还包括中断控制模块,该中断控制模块被配置为:在获取到的信息满足一定条件的基础上,以中断的方式向软件发送地址映射规则配置申请,以使软件在收到中断后,向广播加速器发送预先配置的地址映射规则配置指令。
该地址映射规则配置指令中包括用于配置地址映射规则的规则,由用户根据实际需求进行设置。
可选的,上述获取到的信息满足一定条件可以包括,但不限于:情况1)中断控制模块检测到关联广播节点内不存在地址映射规则;情况2)检测到关联广播节点内的地址映射规则为空;情况3)检测到用户发起的映射规则修改指令等。
其中,上述情况1)以及情况2)对应于广播加速器内的地址映射规则部分或完全缺失的情况,由广播加速器主动向软件申请更新地址映射规则;情况3)对应于用户主动要求修改广播加速器内的地址映射规则的情况,由广播加速器被动向软件申请更新地址映射规则。
在一实施例中,地址映射模块还被配置为:接收并响应软件发送的地址映射规则配置指令,暂停执行当前的地址映射操作,然后基于地址映射规则配置指令更新当前的地址映射规则,以及在更新完成后重启地址映射操作。
当然,值得指出的是,上述更新当前的地址映射规则包括:1)对广播加速器内原有的地址映射规则进行修改;2)对广播加速器内部分缺失的地址映射规则或完全不存在的地址映射规则进行重新配置。
由上述内容可知,在本公开实施中,在用于辅助广播节点实现数据包广播的广播加速器内,保存有可由软件随时进行配置更新的地址映射规则,提高了数据广播过程中的灵活性。
在一实施例中,广播节点所获取到的数据包根据其是否需要被广播的属性,可被分类为广播数据包以及非广播数据包。
其中,若某一数据包为广播数据包,表征该数据包需要借助于广播加速器广播至多个从设备,若某一数据包为非广播数据包,则表征该数据包可由广播节点根据保存的路由表直接路由至另外的网络节点,即由广播节点进行单播。
基于上述应用场景,广播加速器在获取到广播节点传输的数据包后,广播加速器的地址映射模块在执行地址映射操作之前,还被配置为根据数据包携带的信息,判断数据包是否为广播数据包。
可选的,为了便于地址映射模块区分广播数据包以及非广播数据包,在一些实施方式中,可以预先针对广播节点在总线上的地址空间进行地址划分,从而将广播节点所在的地址空间范围划分为广播地址段以及非广播地址段。
在这种实施方式下,地址映射模块在获取到数据包后,可以判断数据包携带的地址是否位于关联广播节点的广播地址段范围内。若位于,则确定数据包是广播数据包;否则,则确定数据包是非广播数据包。
在另一些实施方式中,当主设备对外发出数据包时,即可在数据包中添加用于表征该数据包是否为广播数据包的标识。在这种实施方式下,地址映射模块在获取到数据包后,可通过判断数据包是否携带有表征其为广播数据包的标识,进而判断其是否为广播数据包。若携带,则确定数据包是广播数据包;若未携带,则确定数据包不是广播数据包。示例性的,若主设备所发送的数据包携带的地址位于该主设备即将发送至的广播节点的广播地址段范围内,那么主设备即可在数据包中添加用于表征该数据包为广播数据包的标识(例如预先定义某个特殊字段为1);若主设备所发送的数据包携带的地址位于该主设备即将发送至的广播节点的非广播地址段范围内,那么主设备即可在数据包中添加用于表征该数据包为非广播数据包的标识(例如预先定义某个特殊字段为0)。
广播加速器根据数据包为广播数据包以及非广播数据包,可以分别采取不同的处理。
可选的,若判断结果表示当前接收到的数据包不是广播数据包,即是非广播数据包,那么地址映射模块模块通知地址分发模块将数据包携带的地址分发给关联广播节点,以及通知关联广播节点进行单播,以便关联广播节点按照预先保存的路由表以及得到的地址,对非广播数据包进行单播。
该路由表由NOC内该关联广播节点与其他网络节点之间的连接关系决定。一般而言,在路由表中,针对关联广播节点的非广播地址段范围内的地址,其路由结果为与关联广播节点存在直接连接关系的从设备。例如针对图2所示的NOC的网络拓扑关系,对于非广播数据包,地址映射模块通知关联广播节点按照预先保存的路由表对该非广播数据包进行单播,则关联广播节点直接将该非广播数据包单播传输到DDR0处。
可选的,若判断结果表示当前接收到的数据包是广播数据包,那么地址映射模块针对数据包所携带的地址执行地址映射操作得到多个广播输出地址,以及地址分发模块将多个广播输出地址分发给关联广播节点,以便关联广播节点将数据包广播至每个广播输出地址对应的位置。例如针对图2所示的NOC的网络拓扑关系,地址映射模块对广播数据包所携带的地址执行地址映射操作后,得到多个广播输出地址,分别为DDR0、DDR1以及DDR2的地址;地址分发模块将DDR0、DDR1以及DDR2的地址分发给广播节点,由广播节点将广播数据包广播至DDR0、DDR1以及DDR2。
此外,本公开实施例还提供一种NOC,包括广播节点以及广播加速器,所述广播节点与所述广播加速器一一对应连接。其中,NOC的结构示意图可以参考图2。
由上述内容可知,在本公开实施例中,NOC内的每个广播节点存在对应的广播地址段范围以及非广播地址段范围。在广播节点接收到数据包后,与其连接的广播加速器对数据包是否为广播数据包进行判断,若是广播数据包,广播加速器根据预先或者当前得到的映射规则,对广播数据包所携带的地址进行映射,得到多个广播输出地址并分发给广播节点,以便广播节点将广播数据包广播至每个广播输出地址对应的从设备。
依旧以图2为例,针对上述过程,在一个具体的实施例中,假设在片上总线上存在如下配置:广播节点的广播地址段范围为0x1000-0x1FFF;DDR0的地址范围为0x2000-0x2FFFF;DDR1的地址范围为0x3000-0x3FFFF;DDR2的地址范围为0x4000-0x4FFFF。那么,该广播节点的广播加速器内的地址映射规则可以配置成:将地址0x1000-0x1FFFF映射到0x2000-0x2FFF中的任意一个地址、0x3000-0x3FFF中的任意一个地址以及0x4000-0x4FFF中的任意一个地址一个地址。
上述地址映射规则可以将一个地址映射成三个广播输出地址。当然,在一些实施方式中,也可以通过调整映射规则,从而控制地址映射规则所映射输出的广播输出地址的个数,例如将地址映射规则可调整为:将地址0x1000-0x1FFFF映射到0x2000-0x2FFF中的任意一个地址、以及0x4000-0x4FFF中的任意一个地址一个地址,从而使得广播加速器将一个地址映射成两个广播输出地址。
以广播加速器将一个地址映射成三个广播输出地址为例。在一具体示例中,当主设备发送了一个携带0x1010的数据包至广播节点后,广播节点将数据包路由至广播加速器。由于0x1010属于广播节点对应的广播地址段范围,因此,广播加速器将0x1010映射成0x2000-0x2FFF中的任意一个地址(假设为0x2010)、0x3000-0x3FFF中的任意一个地址(假设为0x3000)以及0x4000-0x4FFF中的任意一个地址一个地址(假设为0x4020)。后续,广播节点将数据包广播至0x2010所在的位置(即DDR0)、0x3000所在的位置(即DDR1)以及0x4020所在的位置(即DDR2)。
至于广播节点具体如何将数据包广播至DDR0、DDR1以及DDR2,由广播节点内的路由表所决定,该路由表由NOC内该广播节点与其他网络节点之间的连接关系决定。例如针对图2所示的NOC的网络拓扑关系,针对目标地址为DDR0、DDR1以及DDR2所在的地址时,经过路由表的路由,数据包被广播至DDR0、DDR1以及DDR2的传播路径分别为:广播节点-DDR0;广播节点-网络节点1-DDR1;广播节点-网络节点1-网络节点2-DDR1。
其中,网络节点是位于NOC内的硬件模块,各DDR是位于NOC外的从设备,网络节点将数据包传播至DDR,需要涉及到片上总线的交互。
由上述数据包被广播时的传播路径可知,若要实现将数据包广播至DDR0、DDR1以及DDR2,广播节点需要向网络节点1传递两笔数据,不利于减少片上网络NOC中的数据流量,容易导致片上网络NOC出现数据流量超负荷的情况,影响整个NOC的工作效率。
为了进一步减少NOC在数据广播过程中的数据流量负荷,请参照图5,在本申请的一些实施方式中,NOC可以包括多个广播节点,每个广播节点均存在对应连接的广播加速器,且在多个广播节点中包括存在级联关系的第一广播节点(例如图5中的广播节点1)以及第二广播节点(例如图5中的广播节点2)。
为了方便介绍,本公开实施例针对每个广播节点,引入新的概念-广播输入地址。其中,某个广播节点的广播输入地址即为位于该广播节点的广播地址段范围内的地址,该广播节点的广播加速器可将该广播节点的广播输入地址映射成多个该广播节点的广播输出地址。
在本公开实施例中,为了建立两个广播节点之间的级联关系,当第一广播节点与第二广播节点存在级联关系时,在与第一广播节点对应的广播加速器(即广播加速器1)执行地址映射操作后得到的多个广播输出地址中,包括第二广播节点的广播输入地址。
如此设置之后,当第一广播节点需要向多个从设备广播数据包,且第一广播节点与其中多个从设备之间的传播路径上均存在与第一广播节点存在级联关系的第二广播节点时,第一广播节点在广播数据包时,可只向第二广播节点传递一笔数据包,再由第二广播节点复制数据包后,将复制后的数据包分别广播到与之连接的从设备。
以图5为例,在一个具体的实施例中,假设在片上总线上存在如下配置:设置了2个广播节点,其中,广播节点1的广播地址段范围为0x1000-0x1FFF;广播节点2的广播地址段范围为0x5000-0x5FFF;DDR0的地址范围为0x2000-0x2FFFF;DDR1的地址范围为0x3000-0x3FFFF;DDR2的地址范围为0x4000-0x4FFFF。
广播节点1的广播加速器1内的地址映射规则配置成:将地址0x1000-0x1FFFF映射到0x2000-0x2FFF中的任意一个地址以及0x5000-0x5FFF中的任意一个地址。广播节点2的广播加速器2内的地址映射规则配置成:将地址0x5000-0x5FFF映射到0x3000-0x3FFF中的任意一个地址以及0x4000-0x4FFF中的任意一个地址。
如此配置之后,假设主设备需要将数据包广播至DDR0、DDR1以及DDR2。与上文类似,主设备发送了一个携带0x1010的数据包至广播节点1后,广播节点1将数据包路由至广播加速器1。由于0x1010属于广播节点1对应的广播地址段范围,因此,广播加速器1按照自身的映射规则,将0x1010映射成0x2000-0x2FFF中的任意一个地址(假设为0x2010)以及0x5000-0x5FFF中的任意一个地址(假设为0x5010)。后续,广播节点1复制数据包后,用0x2010替换其中一个数据包中的原地址,用0x5010替换另一个数据包中的原地址,然后将包括0x2010的数据包广播至0x2010所在的位置(即DDR0),以及将包括0x5010的数据包广播至0x5010所在的位置(即广播节点2)。
由于在图5所示的拓扑图中,广播节点1与DDR0直接连接,因此,数据包到达DDR0的传播路径为:广播节点1-DDR0。
针对被路由至广播节点2的数据包(携带的地址为0x5010),由于0x5010属于广播节点2对应的广播地址段范围内,因此,广播加速器2按照自身的映射规则,将0x5010映射成0x3000-0x3FFF中的任意一个地址(假设为0x3000)以及0x4000-0x4FFF中的任意一个地址(假设为0x4040)。后续,广播节点2将数据包复制后分别广播至0x3000所在的位置(即DDR1)以及0x4020所在的位置(即DDR2)。由于在图5所示的拓扑图中,广播节点2与DDR1直接连接,因此,从整体上来说,数据包到达DDR1的传播路径为:广播节点1-广播节点2-DDR1;由于在图5所示的拓扑图中,广播节点2经过网络节点2与DDR2连接,因此,从整体上来说,数据包到达DDR2的传播路径为:广播节点1-广播节点2-网络节点2-DDR2。
综上,在图2中只设置单个广播节点的网络拓扑中,数据包被广播至DDR0、DDR1以及DDR2的传播路径分别为:广播节点-DDR0;广播节点-网络节点1-DDR1;广播节点-网络节点1-网络节点2-DDR1。在图5所示的设置有多个广播节点的网络拓扑中,数据包被广播至DDR0、DDR1以及DDR2的传播路径分别为:广播节点1-DDR0;广播节点1-广播节点2(图2中的网络节点1)-DDR1;广播节点1-广播节点2(图2中的网络节点1)-网络节点2-DDR1。
经过比对,相较于图2中只设置单个广播节点的实施方式,当在NOC内设置多个广播节点时,通过广播节点2,可使得在广播节点1与广播节点2之间只传递一笔数据包,即可完成将数据包广播至DDR0、DDR1以及DDR2,从而从整体上减少NOC在数据广播过程中的数据流量负荷,提高NOC系统的稳定性。
此外,值得指出的是,在本公开实施例中,第一广播节点与第二广播节点只是一组相对的概念。可以理解,广播节点之间的级联并不局限于两个层级,例如针对某个具体的第二广播节点而言,该广播节点也可以是相对于其他广播节点的第一广播节点,其广播输出地址是其他广播节点的广播输入地址。
当然,上述广播加速器可以挂载在广播节点上,或者内嵌于广播节点内。
此外,本公开实施例还提供一种数据广播方法,应用于广播加速器,该广播加速器用于与片上网络NOC所包括的广播节点连接。如图6所示,该方法包括如下操作:
步骤S110:接收存在连接关系的关联广播节点传输的数据包;
步骤S120:根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;
步骤S130:将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置。
在本公开另一个实施例中,所述方法还包括:响应所述软件发送的地址映射规则配置指令,暂停执行所述地址映射操作;基于所述地址映射规则配置指令更新所述地址映射规则,以及重启所述地址映射操作。
在本公开另一个实施例中,在所述响应所述软件发起的地址映射规则配置指令之前,所述方法还包括:在检测到所述关联广播节点内不存在所述地址映射规则,或检测到所述地址映射规则为空,或检测到用户发起的映射规则修改指令的情况下,以中断的方式向所述软件发送地址映射规则配置申请,以使所述软件发送预先配置的所述地址映射规则配置指令。
在本公开另一个实施例中,所述地址映射规则通过页表实现或者通过段地址实现。
在本公开另一个实施例中,在所述根据可由软件进行配置更改的地址映射规则执行地址映射操作之前,所述方法还包括:根据所述数据包携带的信息,判断所述数据包是否为广播数据包;若是,执行所述地址映射操作及其后续步骤;若否,通知所述关联广播节点按照预先保存的路由表对所述数据包进行单播。
在本公开另一个实施例中,所述判断所述数据包是否为广播数据包,包括:判断所述数据包携带的地址是否位于预先为所述关联广播节点划分的广播地址段范围内;若位于,确定所述数据包是所述广播数据包;若不位于,确定所述数据包不是所述广播数据包。
在本公开另一个实施例中,所述判断所述数据包是否为广播数据包,包括:判断所述数据包是否携带有表征其为所述广播数据包的标识;若携带,确定所述数据包是所述广播数据包;若未携带,确定所述数据包不是所述广播数据包。
值得指出的是,上述方法实施例的具体实施细节请参考前述与广播加速器相关的实施例。
此外,本公开实施例还提供一种SOC,如图1所示,该SOC包括主设备、多个从设备以及上述任一实施例中所述的NOC。
主设备可以理解成SOC内所包括的DMA、CPU等可以发起访问请求的模块,从设备可以理解成为SOC内所包括的DDR等能够被访问的模块。
主设备可通过NOC与从设备通信连接,进而发起对从设备的访问请求,例如数据广播请求。当所述NOC接收到所述主设备向所述从设备发起的数据广播请求时,可以执行上述任一实施例所涉及到的数据广播方法。
在一些使用场景下,该SOC的产品形式体现为显卡;在另一些使用场景下,该SOC的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的SOC以及其他必要的部件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
基于上述方案,当SOC中的主设备需要借助于NOC向从设备广播数据包时,NOC中的地址映射规则可随时由软件进行配置更改,那么运用本方案进行数据广播时,可根据用户临时产生的需求,基于软件来对映射规则进行实时修改,以及可在由于故障导致的映射规则部分缺失或完全缺失的情况下,由软件重新配置映射规则,由此可以提高数据广播过程的灵活性。
此外,通过在NOC中设置多个存在级联关系的广播节点,还可以有效减少NOC内的数据流量,从而提高NOC的稳定性。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (16)
1.一种数据广播方法,应用于广播加速器,所述广播加速器用于与片上网络NOC所包括的广播节点连接,所述方法包括:
接收存在连接关系的关联广播节点传输的数据包;
根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;
将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置。
2.根据权利要求1所述的数据广播方法,所述方法还包括:
响应所述软件发送的地址映射规则配置指令,暂停执行所述地址映射操作;
基于所述地址映射规则配置指令更新所述地址映射规则,以及重启所述地址映射操作。
3.根据权利要求2所述的数据广播方法,在所述响应所述软件发起的地址映射规则配置指令之前,所述方法还包括:
在检测到所述关联广播节点内不存在所述地址映射规则,或检测到所述地址映射规则为空,或检测到用户发起的映射规则修改指令的情况下,以中断的方式向所述软件发送地址映射规则配置申请,以使所述软件发送预先配置的所述地址映射规则配置指令。
4.根据权利要求1所述的数据广播方法,所述地址映射规则通过页表实现或者通过段地址实现。
5.根据权利要求1所述的数据广播方法,在所述根据可由软件进行配置更改的地址映射规则执行地址映射操作之前,所述方法还包括:
根据所述数据包携带的信息,判断所述数据包是否为广播数据包;
若是,执行所述地址映射操作及其后续步骤;
若否,通知所述关联广播节点按照预先保存的路由表对所述数据包进行单播。
6.根据权利要求5所述的数据广播方法,所述判断所述数据包是否为广播数据包,包括:
判断所述数据包携带的地址是否位于预先为所述关联广播节点划分的广播地址段范围内;
若位于,确定所述数据包是所述广播数据包;
若不位于,确定所述数据包不是所述广播数据包。
7.根据权利要求5所述的数据广播方法,所述判断所述数据包是否为广播数据包,包括:
判断所述数据包是否携带有表征其为所述广播数据包的标识;
若携带,确定所述数据包是所述广播数据包;
若未携带,确定所述数据包不是所述广播数据包。
8.一种广播加速器,用于与NOC所包括的广播节点连接,包括:
数据接收模块,被配置为接收存在连接关系的关联广播节点传输的数据包;
地址映射模块,被配置为根据可由软件进行配置更改的地址映射规则执行地址映射操作,以将所述数据包携带的地址映射成多个广播输出地址;
地址分发模块,被配置为将所述多个广播输出地址分发给所述关联广播节点,以使所述关联广播节点将所述数据包广播至每个所述广播输出地址对应的位置。
9.根据权利要求8所述的广播加速器,所述地址映射模块还被配置为:响应所述软件发送的地址映射规则配置指令,暂停执行所述地址映射操作;基于所述地址映射规则配置指令更新所述地址映射规则,以及重启所述地址映射操作。
10.根据权利要求9所述的广播加速器,所述广播加速器还包括中断控制模块,被配置为:在检测到所述关联广播节点内不存在所述地址映射规则,或检测到所述地址映射规则为空,或检测到用户发起的映射规则修改指令的情况下,以中断的方式向所述软件发送地址映射规则配置申请,以使所述软件发送预先配置的所述地址映射规则配置指令。
11.根据权利要求8所述的广播加速器,所述地址映射模块,还被配置为:根据所述数据包携带的信息,判断所述数据包是否为广播数据包;若是,执行所述地址映射操作;
若否,通知所述地址分发模块通知所述关联广播节点按照预先保存的路由表对所述数据包进行单播。
12.一种NOC,包括广播节点以及如权利要求8-11中任一项所述的广播加速器,所述广播节点与所述广播加速器一一对应连接。
13.根据权利要求12所述的NOC,所述广播加速器挂载在所述广播节点上,或者内嵌于所述广播节点内。
14.根据权利要求12或13所述的NOC,所述NOC包括多个广播节点,且在所述多个广播节点中包括存在级联关系的第一广播节点以及第二广播节点;
与所述第一广播节点对应的广播加速器执行所述地址映射操作后得到的所述多个广播输出地址中,包括所述第二广播节点的广播输入地址,所述第二广播节点的广播输入地址可被与所述第二广播节点对应的广播加速器映射成多个其他广播输出地址。
15.一种SOC,包括主设备、从设备以及如权利要求12-14中任一项所述的NOC,所述主设备通过所述NOC与所述从设备通信连接;当所述NOC接收到所述主设备向所述从设备发起的数据广播请求时,执行如权利要求1-7中任一项所述的数据广播方法。
16.一种电子设备,包括权利要求15所述的SOC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210865619.3A CN115102896B (zh) | 2022-07-22 | 2022-07-22 | 数据广播方法、广播加速器、noc、soc及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210865619.3A CN115102896B (zh) | 2022-07-22 | 2022-07-22 | 数据广播方法、广播加速器、noc、soc及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102896A true CN115102896A (zh) | 2022-09-23 |
CN115102896B CN115102896B (zh) | 2022-11-15 |
Family
ID=83298672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210865619.3A Active CN115102896B (zh) | 2022-07-22 | 2022-07-22 | 数据广播方法、广播加速器、noc、soc及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102896B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794668A (zh) * | 2023-02-07 | 2023-03-14 | 南京芯驰半导体科技有限公司 | 一种芯片数据复制分发方法、装置和系统 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098349A (zh) * | 2009-12-09 | 2011-06-15 | 中兴通讯股份有限公司 | 地址映射方法及接入业务节点 |
CN103236980A (zh) * | 2013-04-07 | 2013-08-07 | 中国电子科技集团公司第三十研究所 | 路由器及实现路由器广播接口无编号的方法 |
JP2014241520A (ja) * | 2013-06-12 | 2014-12-25 | 日本放送協会 | 送信システム、情報送信装置、プラットフォーム装置及び受信装置 |
WO2018113318A1 (zh) * | 2016-12-21 | 2018-06-28 | 深圳市中兴微电子技术有限公司 | 一种多通道ddr交织控制方法及装置、存储介质 |
US20200026684A1 (en) * | 2018-07-20 | 2020-01-23 | Xilinx, Inc. | Configurable network-on-chip for a programmable device |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN112311701A (zh) * | 2019-07-29 | 2021-02-02 | 奥塔索克技术有限公司 | 在片上网络中模拟广播 |
US10963421B1 (en) * | 2018-04-27 | 2021-03-30 | Xilinx, Inc. | Flexible address mapping for a NoC in an integrated circuit |
CN112822127A (zh) * | 2020-12-29 | 2021-05-18 | 北京灵汐科技有限公司 | 片上网络的数据广播方法、装置、芯片及介质 |
US20210149836A1 (en) * | 2019-11-15 | 2021-05-20 | Arteris, Inc. | System and method for transaction broadcast in a network on chip |
US20210385100A1 (en) * | 2020-06-09 | 2021-12-09 | Cisco Technology, Inc. | Directed broadcast in network fabric |
CN114073007A (zh) * | 2019-05-10 | 2022-02-18 | 阿和罗尼克斯半导体公司 | 可编程集成电路中的片上网络 |
CN114579505A (zh) * | 2020-12-01 | 2022-06-03 | 北京希姆计算科技有限公司 | 芯片以及核间通信方法 |
CN114697276A (zh) * | 2020-12-30 | 2022-07-01 | 阿特里斯公司 | 片上网络(NoC)中的广播交换机系统 |
-
2022
- 2022-07-22 CN CN202210865619.3A patent/CN115102896B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098349A (zh) * | 2009-12-09 | 2011-06-15 | 中兴通讯股份有限公司 | 地址映射方法及接入业务节点 |
CN103236980A (zh) * | 2013-04-07 | 2013-08-07 | 中国电子科技集团公司第三十研究所 | 路由器及实现路由器广播接口无编号的方法 |
JP2014241520A (ja) * | 2013-06-12 | 2014-12-25 | 日本放送協会 | 送信システム、情報送信装置、プラットフォーム装置及び受信装置 |
WO2018113318A1 (zh) * | 2016-12-21 | 2018-06-28 | 深圳市中兴微电子技术有限公司 | 一种多通道ddr交织控制方法及装置、存储介质 |
US10963421B1 (en) * | 2018-04-27 | 2021-03-30 | Xilinx, Inc. | Flexible address mapping for a NoC in an integrated circuit |
US20200026684A1 (en) * | 2018-07-20 | 2020-01-23 | Xilinx, Inc. | Configurable network-on-chip for a programmable device |
CN114073007A (zh) * | 2019-05-10 | 2022-02-18 | 阿和罗尼克斯半导体公司 | 可编程集成电路中的片上网络 |
CN112311701A (zh) * | 2019-07-29 | 2021-02-02 | 奥塔索克技术有限公司 | 在片上网络中模拟广播 |
US20210149836A1 (en) * | 2019-11-15 | 2021-05-20 | Arteris, Inc. | System and method for transaction broadcast in a network on chip |
US20210385100A1 (en) * | 2020-06-09 | 2021-12-09 | Cisco Technology, Inc. | Directed broadcast in network fabric |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN114579505A (zh) * | 2020-12-01 | 2022-06-03 | 北京希姆计算科技有限公司 | 芯片以及核间通信方法 |
CN112822127A (zh) * | 2020-12-29 | 2021-05-18 | 北京灵汐科技有限公司 | 片上网络的数据广播方法、装置、芯片及介质 |
CN114697276A (zh) * | 2020-12-30 | 2022-07-01 | 阿特里斯公司 | 片上网络(NoC)中的广播交换机系统 |
Non-Patent Citations (2)
Title |
---|
MODARRESSI,MEHDI 等: "Application-Aware Topology Reconfiguration for On-Chip Networks", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 * |
WANG, DANYAO 等: "DART: A Programmable Architecture for NoC Simulation on FPGAs", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794668A (zh) * | 2023-02-07 | 2023-03-14 | 南京芯驰半导体科技有限公司 | 一种芯片数据复制分发方法、装置和系统 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115102896B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115102896B (zh) | 数据广播方法、广播加速器、noc、soc及电子设备 | |
CN112217746B (zh) | 云计算系统中报文处理的方法、主机和系统 | |
CN109240832B (zh) | 一种硬件重构系统及方法 | |
CN101409670B (zh) | 管理组件传输协议互连滤波和路由 | |
US20210058292A1 (en) | Network configuration method, device, and system | |
US8417848B2 (en) | Method and apparatus for implementing multiple service processing functions | |
CN103353861B (zh) | 实现分布式i/o资源池化的方法及装置 | |
CN114338594B (zh) | 在Kubernetes环境下的ARP代答方法、装置、设备及存储介质 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN112637371B (zh) | 节点地址确定方法、装置、电子设备及存储介质 | |
CN113709707B (zh) | 服务网格中边车部署的方法、装置、电子设备和存储介质 | |
CN105765545A (zh) | PCIe I/O设备共享方法及设备与互联系统 | |
CN100416527C (zh) | 分区分配方法和计算机系统 | |
CN104571934A (zh) | 一种内存访问的方法、设备和系统 | |
WO2021078058A1 (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN113765801B (zh) | 应用于数据中心的报文处理方法和装置、电子设备和介质 | |
CN111464443B (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
CN110636149B (zh) | 远程访问方法、装置、路由器及存储介质 | |
CN112363759B (zh) | 一种寄存器配置方法、装置、cpu芯片及电子设备 | |
CN110990123B (zh) | 构建虚拟机网络系统的方法及装置 | |
CN114629844A (zh) | 一种报文转发的方法、装置及电子设备 | |
CN114237928A (zh) | 容器间通信方法及装置、电子设备、计算机可读存储介质 | |
US8069273B2 (en) | Processing module | |
CN112463680A (zh) | 数据搬运方法及装置 | |
CN114157668A (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 |