CN105306382B - 一种无缓存noc数据处理方法及noc电子元件 - Google Patents
一种无缓存noc数据处理方法及noc电子元件 Download PDFInfo
- Publication number
- CN105306382B CN105306382B CN201410364429.9A CN201410364429A CN105306382B CN 105306382 B CN105306382 B CN 105306382B CN 201410364429 A CN201410364429 A CN 201410364429A CN 105306382 B CN105306382 B CN 105306382B
- Authority
- CN
- China
- Prior art keywords
- data packet
- routing node
- priority
- program
- noc
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供了一种无缓存NOC数据处理方法及NOC电子元件,涉及集成电路领域。能够通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。该方法包括:路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包;获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;该数据包的时长信息为该数据包在NOC中停留的时间。本发明实施例应用于无缓存NOC的数据处理。
Description
技术领域
本发明涉及集成电路领域,尤其涉及一种无缓存NOC数据处理方法及NOC电子元件。
背景技术
随着半导体工艺技术的发展,IC(Integrated Circuit,集成电路)设计者能够将越来越复杂的功能集成到单硅片上,SOC(System On A Chip,片上***)正是在IC向集成***转变之下应运而生的。从狭义的角度讲,SOC是电子信息***的集成;从广义讲,SOC是一个微电子小型***。SOC是在单硅片上集成了数字和模拟混合电路,包括嵌入式核、存储器、专用功能模块、输入/输出接口模块等多种功能模块。并且,SOC把模型算法、芯片结构、各层次电路甚至器件的设计紧密结合起来考虑,在单个芯片上一次性实现整个计算机***的功能。
但随着各功能模块向精细化与复杂化方向的发展,使得SOC中用于各功能模块之间信息传递的数据链路的数量急剧增加,这不仅增加了SOC的设计难度,也增加了SOC的***能耗。因而,1999年前后几个研究小组提出了一种全新的集成电路体系结构NOC(NetworkOn Chip,片上网络),其核心是将计算机网络技术移植到芯片设计中来,从体系结构上彻底解决SOC结构带来的问题。
NOC可以定义为在单一芯片上实现基于网络通信的多处理器***。NOC包括路由节点和通信节点,路由节点完成广义的计算任务;通信节点负责路由节点之间的数据通信。通信节点之间的网络借鉴了分布式计算机***的通信方式,用路由和分组交换技术完成通信任务。
可以看出,路由是NOC的核心部件,负责数据包的转发和传递。传统的路由中主要包含虚拟通道、数据缓存、优先级仲裁、交叉开关等部件。但在最近的研究中,为了提高NOC的性能,提出了一种没有虚拟通道、数据缓存的NOC,称为无缓存NOC。
在现有技术中,由于无缓存NOC在转发数据包的时候,自身并不具备缓存的功能,路由节点需要将已接收到的数据包在下一个数据包到达之前发送出去,不管发送的转发端口是否为该数据包所期待的转发端口。即当多个数据包发生端口竞争时,只有一个数据包能够获得其期望端口,其他数据包都会被发往其他端口,这样就使得那些被发往其他端口的数据包产生了偏转(Deflection)。同时,若当前有新的数据包需要通过该无缓存NOC的转发端口注入到网络,但该路由没有空闲注入端口可以使用时,新的数据包无法立即注入,就会产生饥饿(starve)的现象。因此,当无缓存NOC中有多个数据包需要进行发送时,会对上述的多个数据包进行随机发送,从而导致了高优先级的数据包发生了偏转,进而导致该无缓存NOC无法保证高优先级程序的性能。
发明内容
本发明的实施例提供一种无缓存NOC数据处理方法及NOC电子元件,通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种无缓存片上网络NOC数据处理方法,应用于无缓存NOC电子元件,包括:
路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包;
获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据包的时长信息为所述数据包在所述NOC中停留的时间;
将所述优先级最高的数据包通过所述转发端口转发出去。
在第一方面的第一种可能的实现方式中,所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级具体包括:
获取所述数据包的优先级信息和预存的优先级阈值;
根据所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等级。
在第一方面的第二种可能的实现方式中,所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级之前,所述方法还包括:
当数据包进入所述NOC的第一个路由节点时,从所述第一个路由节点对应CPU的寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的优先级信息写入所述数据包的包头中;
所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级具体包括:
从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述数据包的优先级信息得出所述数据包的优先等级。
在第一方面的第三种可能的实现方式中,结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,所述确定发往同一转发端口的各个数据包中优先级最高的数据包之后,所述方法还包括:
将所述优先级最高的数据包以外的其他数据包,通过所述转发端口以外的其他转发端口转发出去。
第二方面,提供一种无缓存NOC数据处理方法,应用于无缓存NOC电子元件,包括:
获取NOC电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;
若所述NOC电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限制百分比;
将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点,以使所述每个路由节点根据相应的注入限制率,对所述当前注入数据包对应程序注入所述路由节点进行限制。
在第二方面的第一种可能的实现方式中,所述根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率具体包括:
根据所述每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定所述每个路由节点对所述当前注入数据包对应程序的注入限制率;其中所述注入限制公式为:其中所述T为注入限制率;所述Priority为所述当前注入数据包的程序优先级;所述δ,α,β,λ为常数。
在第二方面的第二种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式,所述方法还包括:
将所述每个路由节点的饥饿率分别与所述每个路由节点对应的饥饿率阈值进行比对,判定所述每个路由节点是否拥塞;
其中,若所述NOC电子元件中任一路由节点拥塞,则判定所述NOC电子元件拥塞。
第三方面,提供一种NOC电子元件,所述NOC电子元件包括至少一个路由节点,其中,所述路由节点包括:存储器、处理器、交换单元、输入端口和输出端口:
所述存储器,用于存储路由表,所述路由表记录了数据包到达目的地的路径;
所述处理器,用于在一个处理周期内,接收多个需要发往同一转发端口的数据包;及用于获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据包的时长信息为所述数据包在所述NOC中停留的时间;及用于将所述优先级最高的数据包通过所述转发端口转发出去。
在第三方面的第一种可能的实现方中:
所述存储器,还用于存储优先级阈值;
所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:获取所述数据包的优先级信息,从所述存储器中获取所述优先级阈值,根据所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等级。
在第三方面的第二种可能的实现方中:
所述处理器,还用于当数据包进入所述NOC的第一个路由节点时,从所述第一个路由节点对应CPU的寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的优先级信息写入所述数据包的包头中;
所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述数据包的优先级信息得出所述数据包的优先等级。
在第三方面的第三种可能的实现方式中,结合第三方面或第一方面的第一种可能的实现方式或第三方面的第二种可能的实现方式:
所述处理器,还用于将所述优先级最高的数据包以外的其他数据包,通过所述转发端口以外的其他转发端口转发出去。
第四方面,提供一种NOC电子元件,所述NOC电子元件包括至少一个路由节点和一个数据处理器,每个路由节点包括一个注入端口和至少一个转发端口,其中:
所述数据处理器,用于从所述NOC电子元件的每个路由节点中获取所述NOC电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;
所述数据处理器,还用于若所述NOC电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限制百分比;
所述数据处理器,还用于将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点;
所述每个路由节点,用于根据所述数据处理器分配的相应的注入限制率,对所述当前注入数据包对应程序注入所述路由节点进行限制。
在第四方面的第一种可能的实现方式中,所述数据处理器在根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率时具体用于:根据所述每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定所述每个路由节点对所述当前注入数据包对应程序的注入限制率;其中所述注入限制公式为:其中所述T为注入限制率;所述Priority为所述当前注入数据包的程序优先级;所述δ,α,β,λ为常数。
在第四方面的第二种可能的实现方式中,结合第四方面或第四方面的第一种可能的实现方式,所述数据处理器,还用于将所述每个路由节点的饥饿率分别与所述每个路由节点对应的饥饿率阈值进行比对,判定所述每个路由节点是否拥塞;
其中,若所述NOC电子元件中任一路由节点拥塞,则判定所述NOC电子元件拥塞。
在第四方面的第三种可能的实现方式中,结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,其特征在于,所述NOC电子元件的每个路由节点的寄存器中存储所述路由节点的节点信息。
第五方面,提供一种NOC电子元件,所述NOC电子元件包括:至少一个路由节点和一个数据处理器,每个路由节点包括一个注入端口和至少一个转发端口,其中:
所述路由节点用于:路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包;获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据包的时长信息为所述数据包在所述NOC中停留的时间;将所述优先级最高的数据包通过所述转发端口转发出去;
所述数据处理器用于:从所述NOC电子元件的每个路由节点中获取所述NOC电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;若所述NOC电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限制百分比;将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点;
所述每个路由节点用于:根据所述数据处理器分配的相应的注入限制率,对所述当前注入数据包对应程序注入所述路由节点进行限制。
本发明的实施例提供的无缓存NOC数据处理方法及NOC电子元件,路由节点通过在一个处理周期内,接收多个需要发往同一转发端口的数据包;获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;而数据包的时长信息为数据包在NOC中停留的时间;将优先级最高的数据包通过该转发端口转发出去,从而使得高优先级的数据包在通过转发端口注入路由节点时,可以获得更多的胜利机会,减少了高程序优先级的数据包在无缓存NOC中的停留时间,进而通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种NOC电子元件的路由节点的端口示意图;
图2为本发明的实施例提供的一种数据包在路由节点中进行路由的数据传输示意图;
图3为本发明的实施例提供的一种无缓存NOC数据处理方法的流程示意图;
图4为本发明的实施例提供的另一种无缓存NOC数据处理方法的流程示意图;
图5为本发明的实施例提供的又一种无缓存NOC数据处理方法的流程示意图;
图6为本发明的实施例提供的一种NOC电子元件的结构示意图;
图7为本发明的实施例提供的一种NOC电子元件中任一路由节点的结构示意图;
图8为本发明的实施例提供的另一种NOC电子元件的结构示意图;
图9为本发明的实施例提供的又一种NOC电子元件的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例应用于无缓存NOC,其中,上述的无缓存NOC是一种没有虚拟通道、数据缓存的NOC,而该NOC电子元件包括路由节点和通信节点,路由节点用于完成广义的计算任务,通信节点负责路由节点之间的数据通信。其中,如图1所示的路由节点的端口示意图,上述的路由节点包括一个交换开关、一个本地端口(即注入端口)和东、南、西、北四个方向的转发端口,上述的交换开关用于交换该路由节点内部各端口链路之间的数据,上述的本地端口用于转发该路由节点发出及接收到的数据包,而上述的四个转发端口与其他路由节点相连,用于传输其他路由节点与该路由节点间相互传输的数据包,并且由于东、南、西、北四个方向的转发端口具有相同的路由结构,因此,每个方向的转发端口都是由以下几个部分组成:虚拟通道控制器、输入虚拟通道缓存模块、路由译码器以及请求仲裁器。
具体的,数据包在根据源路由节点ID通过该源路由节点的本地端口进入到该路由节点后,会根据该数据包中携带的目的路由节点ID,向该目的路由节点进行转移,并通过该目的路由节点的本地端口从该路由节点输出。示例性的,如图2所示的数据包在路由节点中进行路由的传输示意图,当数据包1的源路由节点为路由节点6,目的路由节点为路由节点24时,具体发送过程如下:数据包1通过路由节点6的注入端口进行注入后,通过路由节点6东侧的转发端口转发至路由节点11,路由节点11在接收到该数据包后,会将该数据包通过自身东侧的转发端口转发至路由节点16,然后按照上述转发的方式,直至将数据包转发至路由节点24,路由节点24在接收到该数据包后,会将该数据包进行发送。
基于上述内容,本发明的实施例提供一种新的无缓存NOC数据处理方法及NOC电子元件。
本发明的实施例提供一种无缓存NOC数据处理方法,应用于NOC电子元件包括至少一个路由节点,每个路由节点包括一个注入端口和至少一个转发端口,如图3所示,该无缓存NOC数据处理方法具体包括如下步骤:
101、路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包。
102、路由节点获取数据包的优先级信息,根据优先级信息得出数据包的优先等级。
其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息。而上述的数据包对应程序的程序优先级信息用于描述该数据包对应程序的优先级大小,而上述的数据包的时长信息为数据包在该无缓存NOC中停留的时间,即数据包在进入该无缓存NOC后所待的时间,而数据包的时长信息越长,则表明该数据包在该NOC中所待时间越长,为了避免该数据包占用资源,则需要尽快将其发送出去,因此,当数据包的时长信息越长时,其对应的优先等级越高。示例性的,上述的数据包的优先级信息可以是存储在数据包包头的包头信息中,而上述的数据包的包头中包括但不限于:目的路由节点ID、源路由节点ID及数据包数据类型。
示例性的,路由节点在一个处理周期内,接收到多个占用同一转发端口的数据包,分别获取每个数据包的时长信息和对应程序的程序优先级信息,然后,根据每个数据包的时长信息和对应程序的程序优先级信息,分别计算出每个数据包的优先等级,最后,根据计算出的每个数据包的优先等级确定出优先级最高的数据包,并将优先等级最高的数据包从该转发端口转发出去。
可选的,当上述的数据包的程序优先级信息是路由节点从该数据包的包头信息中获取的时,在步骤102之前,该方法还包括如下步骤:
102a、当数据包进入所述NOC的第一个路由节点时,路由节点从上述的第一个路由节点对应CPU的寄存器中获取数据包对应的优先级信息,并将数据包对应的优先级信息写入数据包的包头中。
进一步的,基于步骤102a,步骤102具体包括如下内容:路由节点从数据包的包头信息中读取数据包对应的优先级信息,并根据该数据包的优先级信息得出数据包的优先等级。
示例性的,当任一数据包通过注入端口注入该NOC电子元件的任一个路由节点时,该路由节点读取预存在该路由节点对应中央处理器(central procession unit,简称CPU)的寄存器中的该数据包对应的优先级信息,并将其填入该数据包的包头中。其中,该路由节点对应CPU的寄存器中预存的优先级信息是该***或用户根据实际应用需求预先配置的。示例性的,上述的路由节点的寄存器为该路由节点对应CPU中的QOS(Quality of Service,服务质量)寄存器。
103、路由节点将优先级最高的数据包通过转发端口转发出去。
可选的,在步骤102之后还包括如下步骤:
102b、路由节点将优先级最高的数据包以外的其他数据包,通过转发端口以外的其他转发端口转发出去。
示例性的,路由节点在一个处理周期内,有多个数据包发往同一转发端口时,该路由节点根据每个数据包的优先级信息计算出每个数据包的优先等级,并根据该优先等级为上述的多个数据包分配端口。其中,优先级最高的数据包则直接获得该转发端口,即通过该转发端口将优先级最高的数据包转发出去,其他优先级低的数据包发生偏转,即通过其他转发端口分别将其他数据包转发出去。
可选的,步骤102具体包括如下步骤:
102c1、路由节点获取数据包的优先级信息和预存的优先级阈值。
其中,上述的优先级阈值handicap是一个固定参数,主要是根据NOC网络的大小来确定的(例如,当该NOC为64个核时,其对应的handicap是一个值,当该NOC为32个核时,其对应的handicap是一个值),且上述的handicap值在NOC网络的大小确定后,便称为一个定值,不会再改变。此外,上述的handicap存储在该路由节点对应CPU的寄存器中,当该路由节点需要根据该优先级阈值来计算每个数据包的优先等级时,便会从该路由节点对应CPU的寄存器中读取该优先级阈值。
102c2、路由节点根据数据包的优先级信息和优先级阈值,确定出数据包的优先等级。
示例性的,路由节点在获取到每个数据包的程序优先级信息时长信息age、及此该NOC的handicap后,便可通过公式一或公式二,来计算出每个数据包的优先等级,而这里的handicap主要用于将每个数据包的优先等级间的差值放大,使得优先级高的数据包越高,优先级低的数据包越低。具体的,公式一与公式二如下所示:
F=age+Priority*handicap 公式一
F=age*Priority*handicap 公式二
需要说明的是,上述的公式一与公式二是可以根据实际的应用情况来进行修改和设定的,这里的公式一与公式二只是一种示例,具体的计算公式这里不做限定。
具体的,路由节点在根据计算出的每个数据包的优先等级,为每个数据包份额配转发端口时,是将优先级最高的数据包直接通过该转发端口,即通过该转发端口将优先级最高的数据包转发出去,其他优先级低的数据包发生偏转,即通过其他转发端口分别将其他数据包转发出去。对于发生偏转的数据包而言,这些数据包在发生偏转被分配至其他转发端口的同时,会增加这些数据包的age值,进而使得这些数据包在下一次转发端口竞争的情况下更有优势。
本发明的实施例提供的无缓存NOC数据处理方法,路由节点通过在一个处理周期内,接收多个需要发往同一转发端口的数据包;获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;而数据包的时长信息为数据包在NOC中停留的时间;将优先级最高的数据包通过该转发端口转发出去,从而使得高优先级的数据包在通过转发端口注入路由节点时,可以获得更多的胜利机会,减少了高程序优先级的数据包在无缓存NOC中的停留时间,进而通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。
本发明的实施例提供一种无缓存NOC数据处理方法,应用于NOC电子元件,该NOC电子元件包括至少一个路由节点和一个数据处理器,如图4所示,该无缓存NOC数据处理方法具体包括如下步骤:
201、NOC电子元件中的数据处理器获取无缓存NOC中每个路由节点的节点信息。
其中,本发明实施例中的数据处理器可以是该NOC中的集中控制器,也可以是该NOC中的任一路由节点对应的CPU,也可以是一个独立的计算单元,而本发明实施例中的NOC包括至少一个路由节点,而每个路由节点包含一个用于注入数据包的注入端口和多个用于转发数据包至网络的转发端口。而本发明实施例所描述的路由节点的节点信息包括但不限于:路由节点的饥饿率、该路由节点当前注入数据包对应程序的IPF(Instruction Perflit,每个数据包对应的指令数)及程序优先级信息。具体的,上述的程序优先级信息用于指示所述当前注入数据包的优先级;上述的路由节点的饥饿率为该路由节点在一个NOC数据周期内饥饿周期所占的比重;而上述的饥饿周期即该路由节点发生饥饿现象的时间段。需要说明的是,饥饿率通常用于体现该无缓存NOC的拥塞程度。
示例性的,若当前注入数据包对应程序的IPF高时,则说明该路由节点将该当前注入数据包对应程序的数据包注入路由节点所需执行的指令数多,进而表明该当前注入路由节点对应程序对网络延时敏感度高;若当前注入数据包对应程序的IPF低时,则说明该路由节点将该当前注入数据包对应程序的数据包注入路由节点所需执行的指令数少,进而表明该当前注入数据包对应程序对网络延时敏感度低。
具体的NOC电子元件中的数据处理器在获取上述的路由节点当前注入数据包对应程序的程序优先级信息时,可以直接通过解析该当前注入数据包的包头,来获取该当前注入数据包对应程序的程序优先级信息,也可以根据该数据包包头信息中存储的目的路由节点ID、源地址等,直接从该路由节点的寄存器中获取该数据包对应程序的程序优先级信息。
202、若NOC电子元件拥塞,NOC电子元件中的数据处理器则根据每个路由节点当前注入数据包的IPF及程序优先级信息,计算每个路由节点对当前注入数据包对应程序的注入限制率。
其中,上述的注入限制率为路由节点限制当前注入数据包对应程序注入该路由节点的限制百分比,即路由节点中当前注入数据包对应程序注入该路由节点的数据包中,被限制注入路由节点的比例。同时,该注入限制率用于表示下一个周期路由节点对应CPU的数据包的注入比例,即该路由节点对应的CPU发出的每个数据包,均需要根据该注入限制率来确定注入或者不注入,每个数据包的注入过程都是一个随机过程。
可选的,步骤203具体包括如下步骤:
202a、NOC电子元件中的数据处理器根据每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定每个路由节点对当前注入数据包对应程序的注入限制率。
其中上述的注入限制公式为:其中T为注入限制率,Priority为当前注入数据包的程序优先级,δ,α,β,λ为常数。
示例性的,若该NOC电子元件无缓存NOC拥塞,该NOC电子元件无缓存NOC中的数据处理器根据获取到的每个路由节点当前注入数据包对应程序的IPF、程序优先级信息及注入限制率公式,对每个路由节点在预设时间段内的注入数据包进行不同程度的限制。具体的,对于优先级低于第一预定阈值的程序与IPF低于第二预定阈值的程序(即对网络延迟不敏感的程序),其对应的路由节点对该路由节点限制当前注入数据包对应程序注入该路由节点的注入限制率高,即限制低优先级程序和网络延迟敏感度低的程序注入该路由节点,使得该NOC电子元件无缓存NOC中数据包的数量降低,从而降低了该NOC电子元件无缓存NOC的拥塞。而对于优先高于第一预定阈值的程序,其对应的路由节点对该路由节点限制当前注入数据包对应程序注入该路由节点的注入限制率低,从而赋予了高优先级程序更多成功注入该路由节点的机会,保证了高优先级程序最小限度发生饥饿与偏转,从而可以直接减少数据包在该NOC电子元件中停留的时间,进而减少该NOC电子元件的拥塞程度。
具体的,基于上述的注入限制率公式可知,每个路由节点当前注入数据包对应程序的IPF和程序优先级信息成负相关的关系,从而使得优先级高于第一预定阈值的程序相比于优先级低于第一预定阈值的程序和IPF低于第二预定阈值的程序的注入限制率要低。同时需要说明的是,上述的δ是为了防止计算出的注入限制率过小,则设置的一个最小阈值。
可选的,步骤202之前还包括如下步骤:
202b、NOC电子元件中的数据处理器将每个路由节点的饥饿率分别与每个路由节点对应的饥饿率阈值进行比对,判定每个路由节点是否拥塞。
其中,若上述的NOC电子元件中任一路由节点拥塞,则判定该无缓存NOC拥塞。
其中,若上述的NOC电子元件中任一路由节点发生拥塞,则判定该NOC电子元件拥塞。具体的,该NOC电子元件中的数据处理器在对上述的每个路由节点进行拥塞判断时,都是通过将路由节点的饥饿率与该路由节点的饥饿率阈值进行比对,若该路由节点的饥饿率超过该路由节点预先设置的饥饿率阈值时,即认为该路由节点发生拥塞。需要说明的是,对于上述的每个路由节点,其对应的饥饿率阈值是不相同的。而每个路由节点对应的饥饿率阈值是各个路由节点根据每个路由节点的饥饿率、当前注入数据包对应程序的IPF和程序优先级信息,以及当前的应用场景来综合获取。
203、NOC电子元件中的数据处理器将每个路由节点对当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点,以使每个路由节点根据相应的注入限制率,对当前注入数据包对应程序注入路由节点进行限制。
具体的,NOC电子元件中的数据处理器在计算出每个路由节点对数据包的注入限制率后,将每个路由节点对应注入限制率分别分配至对应的路由节点,而各个路由节点在收到对应的注入限制率后,每个路由节点会根据所接收到的注入限制率来对当前注入数据包对应程序的各个数据包进行注入判定。例如,当某一路由节点的注入限制率为50%时,则该路由节点根据该注入限制率50%,来限制该路由节点当前注入数据包对应程序的50%的数据包注入路由节点。
本发明的实施例提供的无缓存NOC数据处理方法,NOC电子元件的数据处理器在该NOC电子元件拥塞时,根据每个路由节点的节点信息中的每个路由节点当前注入数据包的IPF及程序优先级信息,计算出每个路由节点对当前注入数据包对应程序的注入限制率;具体的,优先级高于第一预定阈值的程序相比于优先级低于第一预定阈值的程序和IPF低于第二预定阈值的程序,其对应的注入限制率要低;然后,将每个路由节点对应注入限制率,分别分配至相应的路由节点,以使每个路由节点根据对应的注入限制率,分别判定当前注入数据包对应程序的各个数据包是否注入路由节点。这样,路由节点在根据分配的注入限制率来对当前注入数据包对应程序的数据包进行限制时,由于高优先级程序对应的注入限制率很低,从而保证了高优先级程序的数据包可以尽快的从转发端口注入路由节点,减少高程序优先级程序的数据包发生偏转的次数,提高了高优先级程序的总体性能,进而提高了高程序优先级程序的数据包的发送效率,减轻了无缓存NOC的拥塞程度。
需要说明的是,图2对应的实施例描述的在一个处理周期内,路由节点根据数据包的程序优先级对发往同一转发端口的各个数据包进行转发端口分配的过程,与图3对应的实施例描述的在NOC电子元件拥塞的情况下,NOC电子元件的数据处理器根据该NOC电子元件的拥塞情况和各个路由节点的注入数据包对应程序的程序优先级,对各个路由节点的注入数据包对应程序进行不同程度的限制的过程,可以在同一实施例中实现的。
基于上述内容,本发明的实施例提供一种无缓存NOC数据处理方法,其中,本发明实施例中与上述实施例相关的技术术语、概念等的说明可以参照图2及图3对应的实施例,这里不再赘述。具体的,本发明的实施例应用于NOC电子元件,该NOC电子元件包括至少一个路由节点和一个数据处理器,而该数据处理器可以是该NOC中的集中控制器,也可以是该NOC中的任一路由节点对应的CPU,也可以是一个独立的计算单元,而上述的NOC中的每个路由节点包含一个用于注入数据包的注入端口和多个用于转发数据包至网络的转发端口。如图5所示,该无缓存NOC数据处理方法具体包括如下步骤:
301a、路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包。
302a、路由节点获取数据包的优先级信息,根据优先级信息得出数据包的优先等级。
303a1、路由节点将优先级最高的数据包通过转发端口转发出去。
303a2、路由节点将优先级最高的数据包以外的其他数据包,通过转发端口以外的其他转发端口转发出去。
在步骤301a至303a1或303a2实现的过程中,该无缓存NOC数据处理方法还包括如下步骤:
301b、NOC电子元件中的数据处理器获取无缓存NOC中每个路由节点的节点信息。
302b、若NOC电子元件拥塞,NOC电子元件中的数据处理器则根据每个路由节点当前注入数据包的IPF及程序优先级信息,计算每个路由节点对当前注入数据包对应程序的注入限制率。
其中,上述的注入限制率为所述路由节点限制当前注入数据包对应程序注入该路由节点的限制百分比。
可选的,步骤303b具体包括如下步骤:
302b1、NOC电子元件中的数据处理器根据每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定每个路由节点对当前注入数据包对应程序的注入限制率。
其中,上述的注入限制公式为:其中T为注入限制率,Priority为当前注入数据包的程序优先级,δ,α,β,λ为常数。
可选的,步骤302b之前还包括如下步骤:
302b2、NOC电子元件中的数据处理器将每个路由节点的饥饿率分别与每个路由节点对应的饥饿率阈值进行比对,判定每个路由节点是否拥塞。
其中,若上述的NOC电子元件中任一路由节点拥塞,则判定该无缓存NOC拥塞。
303b、NOC电子元件中的数据处理器将每个路由节点对当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点,以使每个路由节点根据相应的注入限制率,对当前注入数据包对应程序注入路由节点进行限制。
示例性的,上述的步骤301a~304a1或304a2描述的是在一个处理周期内,路由节点对发往同一转发端口的各个数据包进行转发端口分配的过程;而上述的步骤301b~304b描述的是在NOC电子元件拥塞的情况下,NOC电子元件的数据处理器根据该NOC电子元件的拥塞情况和各个路由节点的注入数据包对应程序的程序优先级,对各个路由节点的注入数据包对应程序进行不同程度的限制的过程。
本发明的实施例提供的无缓存NOC数据处理方法,该NOC电子元件中的路由节点根据数据包的程序优先级对发往同一转发端口的各个数据包进行转发端口分配的过程,使得高优先级的数据包在通过转发端口注入路由节点时,可以获得更多的胜利机会,减少了高程序优先级的数据包在无缓存NOC中的停留时间,进而通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。而在NOC电子元件拥塞的情况下,该NOC电子元件的数据处理器根据每个路由节点的节点信息,计算出每个路由节点对当前注入数据包对应程序的注入限制率,并将每个路由节点对应注入限制率,具体的,优先级高于第一预定阈值的程序相比于优先级低于第一预定阈值的程序和IPF低于第二预定阈值的程序,其对应的注入限制率要低,然后,将计算出的注入限制率分别分配至相应的路由节点,以使每个路由节点根据对应的注入限制率,分别判定当前注入数据包对应程序的各个数据包是否注入路由节点过程,使得路由节点在根据分配的注入限制率来对当前注入数据包对应程序的数据包进行限制时,由于高优先级程序对应的注入限制率很低,从而保证了高优先级程序的数据包可以尽快的从转发端口注入路由节点,减少高程序优先级程序的数据包发生偏转的次数,提高了高优先级程序的总体性能,进而提高了高程序优先级程序的数据包的发送效率,减轻了无缓存NOC的拥塞程度。
本发明的实施例提供一种NOC电子元件,如图6所示,该NOC电子元件3包括至少一个路由节点31,具体的,如图7所示的NOC电子元件中的其中一个路由节点的结构示意图,该路由节点31包括:存储器311和处理器312,以及交换单元、输入端口和输出端口,其中,处理器和存储器的具体功用如下所示:
存储器311,用于存储路由表,该路由表记录了数据包到达目的地的路径;
处理器312,用于在一个处理周期内,接收多个需要发往同一转发端口的数据包;及用于获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;该数据包的时长信息为数据包在NOC中停留的时间;及用于将优先级最高的数据包通过转发端口转发出去。
可选的,存储器311,还用于存储优先级阈值.
处理器314在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:获取数据包的优先级信息,从存储器311中获取优先级阈值,根据数据包的优先级信息和优先级阈值,确定出数据包的优先等级。
可选的,处理器314,还用于当数据包进入所述NOC的第一个路由节点时,从上述的第一个路由节点对应CPU的寄存器中获取数据包对应的优先级信息,并将数据包对应的优先级信息写入数据包的包头中。
处理器314在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:从数据包的包头信息中读取数据包对应的优先级信息,并根据数据包的优先级信息得出数据包的优先等级。
可选的,处理器314,还用于将优先级最高的数据包以外的其他数据包,通过转发端口以外的其他转发端口转发出去。
本发明的实施例提供的NOC电子元件,路由节点通过在一个处理周期内,接收多个需要发往同一转发端口的数据包;获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;而数据包的时长信息为数据包在NOC中停留的时间;将优先级最高的数据包通过该转发端口转发出去,从而使得高优先级的数据包在通过转发端口注入路由节点时,可以获得更多的胜利机会,减少了高程序优先级的数据包在无缓存NOC中的停留时间,进而通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。
本发明的实施例提供一种NOC电子元件,如图8所示,该NOC电子元件4包括至少一个路由节点41和一个数据处理器42,而该数据处理器42可以是该NOC中的集中控制器,也可以是该NOC中的任一路由节点对应的CPU,也可以是一个独立的计算单元,而上述的NOC中的每个路由节点41包含一个用于注入数据包的注入端口和多个用于转发数据包至网络的转发端口。其中:
数据处理器42,用于从NOC电子元件4的每个路由节点41中获取该NOC电子元件4中每个路由节点41的节点信息。
其中,上述的节点信息包括该路由节点41的饥饿率、该路由节点41当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;上述的程序优先级信息用于指示当前注入数据包的优先级。
数据处理器42,还用于若NOC电子元件4拥塞,则根据每个路由节点41当前注入数据包的IPF及程序优先级信息,计算每个路由节点41对当前注入数据包对应程序的注入限制率。
其中,上述的注入限制率为上述的路由节点41限制当前注入数据包对应程序注入该路由节点的限制百分比。
数据处理器42,还用于将每个路由节点41对当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点41。
每个路由节点41,用于根据上述的数据处理器42分配的相应的注入限制率,对当前注入数据包对应程序注入路由节点41进行限制。
可选的,上述的数据处理器42在根据每个路由节点41当前注入数据包的IPF及程序优先级信息,计算每个路由节点41对当前注入数据包对应程序的注入限制率时具体用于:根据每个路由节点41当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定每个路由节点41对当前注入数据包对应程序的注入限制率。
其中,上述的注入限制公式为:其中T为注入限制率,Priority为当前注入数据包的程序优先级,δ,α,β,λ为常数。
可选的,上述的数据处理器42在根据上述的每个路由节点41的饥饿率,判断该NOC电子元件4是否拥塞具体用于:将每个路由节点41的饥饿率分别与该每个路由节点41对应的饥饿率阈值进行比对,判定每个路由节点41是否拥塞。
其中,若上述的NOC电子元件4中任一路由节点41拥塞,则判定该NOC电子元件4拥塞。
可选的,上述的NOC电子元件4的每个路由节点41的寄存器中存储该路由节点41的节点信息。
本发明的实施例提供的NOC电子元件,无缓存NOC的数据处理器在该无缓存NOC拥塞时,根据每个路由节点的节点信息中的每个路由节点当前注入数据包的IPF及程序优先级信息,计算出每个路由节点对当前注入数据包对应程序的注入限制率;具体的,优先级高于第一预定阈值的程序相比于优先级低于第一预定阈值的程序和IPF低于第二预定阈值的程序,其对应的注入限制率要低;然后,将每个路由节点对应注入限制率,分别分配至相应的路由节点,以使每个路由节点根据对应的注入限制率,分别判定当前注入数据包对应程序的各个数据包是否注入路由节点。这样,路由节点在根据分配的注入限制率来对当前注入数据包对应程序的数据包进行限制时,由于高优先级程序对应的注入限制率很低,从而保证了高优先级程序的数据包可以尽快的从转发端口注入路由节点,减少高程序优先级程序的数据包发生偏转的次数,提高了高优先级程序的总体性能,进而提高了高程序优先级程序的数据包的发送效率,减轻了无缓存NOC的拥塞程度。
本发明的实施例提供一种NOC电子元件,如图9所示,该NOC电子元件5包括:至少一个路由节点51和一个数据处理器52,每个路由节点51包括一个用于从外部向路由节点51中注入数据的注入端口和用于从路由节点51向网络注入数据的至少一个转发端口,而该数据处理器52可以是该NOC中的集中控制器,也可以是该NOC中的任一路由节点对应的CPU,也可以是一个独立的计算单元。其中:
该NOC电子元件5中的路由节点51用于:在一个处理周期内,接收多个需要发往同一转发端口的数据包;及用于获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,上述的优先级信息包括数据包的时长信息和数据包对应程序的程序优先级信息;该数据包的时长信息为数据包在NOC中停留的时间;及用于将优先级最高的数据包通过转发端口转发出去。
数据处理器52用于:从NOC电子元件5的每个路由节点中获取该NOC电子元件5中每个路由节点51的节点信息;其中,上述的节点信息包括该路由节点51的饥饿率、该路由节点51当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;上述的程序优先级信息用于指示当前注入数据包的优先级;根据每个路由节点51的饥饿率,判断该NOC电子元件5是否拥塞;若该NOC电子元件5拥塞,则根据每个路由节点51当前注入数据包的IPF及程序优先级信息,计算每个路由节点51对当前注入数据包对应程序的注入限制率;上述的注入限制率为路由节点51限制当前注入数据包对应程序注入该路由节点51的限制百分比;将每个路由节点51对当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点51。
该NOC电子元件中的每个路由节点51,还用于根据数据处理器52分配的相应的注入限制率,对当前注入数据包对应程序注入路由节点51进行限制。
可选的,该路由节点51还用于:将优先级最高的数据包以外的其他数据包,通过转发端口以外的其他转发端口转发出去。
可选的,该路由节点51在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:获取数据包的优先级信息和优先级阈值,根据数据包的优先级信息和优先级阈值,确定出数据包的优先等级。
可选的,路由节点51还用于当数据包进入所述NOC的第一个路由节点时,从上述的第一个路由节点对应CPU的寄存器中获取数据包对应的优先级信息,并将数据包对应的优先级信息写入数据包的包头中。
路由节点51在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:从数据包的包头信息中读取数据包对应的优先级信息,并根据数据包的优先级信息得出数据包的优先等级。
可选的,数据处理器52在根据每个路由节点51当前注入数据包的IPF及程序优先级信息,计算每个路由节点51对当前注入数据包对应程序的注入限制率时具体用于:根据每个路由节点51当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定每个路由节点51对当前注入数据包对应程序的注入限制率;其中上述的注入限制公式为:其中T为注入限制率,Priority为当前注入数据包的程序优先级,δ,α,β,λ为常数。
可选的,数据处理器在根据每个路由节点51的饥饿率,判断NOC电子元件是否拥塞具体用于:将每个路由节点51的饥饿率分别与每个路由节点51对应的饥饿率阈值进行比对,判定每个路由节点51是否拥塞。
其中,若上述的NOC电子元件5中任一路由节点51拥塞,则判定该NOC电子元件5拥塞。
可选的,该NOC电子元件5的每个路由节点51的寄存器中存储该路由节点51的节点信息。
本发明的实施例提供的NOC电子元件,该NOC电子元件中的路由节点根据数据包的程序优先级对发往同一转发端口的各个数据包进行转发端口分配的过程,使得高优先级的数据包在通过转发端口注入路由节点时,可以获得更多的胜利机会,减少了高程序优先级的数据包在无缓存NOC中的停留时间,进而通过减少高程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。而在NOC电子元件拥塞的情况下,该NOC电子元件的数据处理器根据每个路由节点的节点信息,计算出每个路由节点对当前注入数据包对应程序的注入限制率,并将每个路由节点对应注入限制率,具体的,优先级高于第一预定阈值的程序相比于优先级低于第一预定阈值的程序和IPF低于第二预定阈值的程序,其对应的注入限制率要低,然后,将计算出的注入限制率分别分配至相应的路由节点,以使每个路由节点根据对应的注入限制率,分别判定当前注入数据包对应程序的各个数据包是否注入路由节点过程,使得路由节点在根据分配的注入限制率来对当前注入数据包对应程序的数据包进行限制时,由于高优先级程序对应的注入限制率很低,从而保证了高优先级程序的数据包可以尽快的从转发端口注入路由节点,减少高程序优先级程序的数据包发生偏转的次数,提高了高优先级程序的总体性能,进而提高了高程序优先级程序的数据包的发送效率,减轻了无缓存NOC的拥塞程度。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种无缓存片上网络NOC数据处理方法,应用于无缓存NOC电子元件,其特征在于,包括:
路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包;
获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据包的时长信息为所述数据包在所述NOC中停留的时间;
将所述优先级最高的数据包通过所述转发端口转发出去;
其中,所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级具体包括:
获取所述数据包的优先级信息及预存的优先级阈值;
根据所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等级;
所述优先级阈值用于将每个数据包的优先等级间的差值放大,使得优先级高的数据包越高,优先级低的数据包越低。
2.根据权利要求1所述的方法,其特征在于,所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级之前,所述方法还包括:
当数据包进入所述NOC的第一个路由节点时,从所述第一个路由节点对应CPU的寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的优先级信息写入所述数据包的包头中;
所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级具体包括:
从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述数据包的优先级信息得出所述数据包的优先等级。
3.根据权利要求1或2所述的方法,其特征在于,所述确定发往同一转发端口的各个数据包中优先级最高的数据包之后,所述方法还包括:
将所述优先级最高的数据包以外的其他数据包,通过所述转发端口以外的其他转发端口转发出去。
4.一种无缓存NOC数据处理方法,应用于无缓存NOC电子元件,其特征在于,包括:
获取NOC电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;
若所述NOC电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限制百分比;
将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点,以使所述每个路由节点根据相应的注入限制率,对所述当前注入数据包对应程序注入所述路由节点进行限制。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率具体包括:
根据所述每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定所述每个路由节点对所述当前注入数据包对应程序的注入限制率;其中所述注入限制公式为:其中所述T为注入限制率;所述Priority为所述当前注入数据包的程序优先级;所述δ,α,β,λ为常数。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
将所述每个路由节点的饥饿率分别与所述每个路由节点对应的饥饿率阈值进行比对,判定所述每个路由节点是否拥塞;
其中,若所述NOC电子元件中任一路由节点拥塞,则判定所述NOC电子元件拥塞。
7.一种NOC电子元件,其特征在于,所述NOC电子元件包括至少一个路由节点,其中,所述路由节点包括:存储器、处理器、交换单元、输入端口和输出端口:
所述存储器,用于存储路由表,所述路由表记录了数据包到达目的地的路径;
所述处理器,用于在一个处理周期内,接收多个需要发往同一转发端口的数据包;及用于获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据包的时长信息为所述数据包在所述NOC中停留的时间;及用于将所述优先级最高的数据包通过所述转发端口转发出去;
其中,所述存储器,还用于存储优先级阈值;
所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:获取所述数据包的优先级信息,从所述存储器中获取所述优先级阈值,根据所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等级;
所述优先级阈值用于将每个数据包的优先等级间的差值放大,使得优先级高的数据包越高,优先级低的数据包越低。
8.根据权利要求7所述的NOC电子元件,其特征在于:
所述处理器,还用于当数据包进入所述NOC的第一个路由节点时,从所述第一个路由节点对应CPU的寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的优先级信息写入所述数据包的包头中;
所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级时,具体用于:从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述数据包的优先级信息得出所述数据包的优先等级。
9.根据权利要求7或8所述的NOC电子元件,其特征在于:
所述处理器,还用于将所述优先级最高的数据包以外的其他数据包,通过所述转发端口以外的其他转发端口转发出去。
10.一种NOC电子元件,其特征在于,所述NOC电子元件包括至少一个路由节点和一个数据处理器,每个路由节点包括一个注入端口和至少一个转发端口,其中:
所述数据处理器,用于从所述NOC电子元件的每个路由节点中获取所述NOC电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;
所述数据处理器,还用于若所述NOC电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限制百分比;
所述数据处理器,还用于将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至对应的路由节点;
所述每个路由节点,用于根据所述数据处理器分配的相应的注入限制率,对所述当前注入数据包对应程序注入所述路由节点进行限制。
11.根据权利要求10所述的NOC电子元件,其特征在于,所述数据处理器在根据所述每个路由节点当前注入数据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率时具体用于:根据所述每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公式,确定所述每个路由节点对所述当前注入数据包对应程序的注入限制率;其中所述注入限制公式为:其中所述T为注入限制率;所述Priority为所述当前注入数据包的程序优先级;所述δ,α,β,λ为常数。
12.根据权利要求10或11所述的NOC电子元件,其特征在于,所述数据处理器,还用于将所述每个路由节点的饥饿率分别与所述每个路由节点对应的饥饿率阈值进行比对,判定所述每个路由节点是否拥塞;
其中,若所述NOC电子元件中任一路由节点拥塞,则判定所述NOC电子元件拥塞。
13.根据权利要求12所述的NOC电子元件,其特征在于,所述NOC电子元件的每个路由节点的寄存器中存储所述路由节点的节点信息。
14.一种NOC电子元件,其特征在于,所述NOC电子元件包括:至少一个路由节点和一个数据处理器,每个路由节点包括一个注入端口和至少一个转发端口,其中,所述路由节点为权利要求7至9任一项所述的路由节点,所述数据处理器为权利要求10至13任一项所述的数据处理器。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410364429.9A CN105306382B (zh) | 2014-07-28 | 2014-07-28 | 一种无缓存noc数据处理方法及noc电子元件 |
DE202014009422.5U DE202014009422U1 (de) | 2014-07-28 | 2014-11-26 | NOC-Elektronikelement |
JP2014239242A JP5965464B2 (ja) | 2014-07-28 | 2014-11-26 | バッファを有しないnocのデータ処理方法、及びnoc電子素子 |
KR1020150073140A KR101609288B1 (ko) | 2014-07-28 | 2015-05-26 | 무버퍼 noc 및 noc 전자요소의 데이터 처리 방법 |
US14/721,730 US10084710B2 (en) | 2014-07-28 | 2015-05-26 | Data processing method of NOC without buffer and NOC electronic element |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410364429.9A CN105306382B (zh) | 2014-07-28 | 2014-07-28 | 一种无缓存noc数据处理方法及noc电子元件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105306382A CN105306382A (zh) | 2016-02-03 |
CN105306382B true CN105306382B (zh) | 2019-06-11 |
Family
ID=53058738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410364429.9A Active CN105306382B (zh) | 2014-07-28 | 2014-07-28 | 一种无缓存noc数据处理方法及noc电子元件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10084710B2 (zh) |
JP (1) | JP5965464B2 (zh) |
KR (1) | KR101609288B1 (zh) |
CN (1) | CN105306382B (zh) |
DE (1) | DE202014009422U1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG10201600276YA (en) * | 2016-01-14 | 2017-08-30 | Huawei Int Pte Ltd | Device, method and system for routing global assistant signals in a network-on-chip |
CN109995633B (zh) * | 2017-12-29 | 2021-10-01 | 华为技术有限公司 | 一种芯片及相关设备 |
CN108322405A (zh) * | 2018-03-21 | 2018-07-24 | 山东超越数控电子股份有限公司 | 一种基于数据的流量均衡方法与装置 |
US11212262B2 (en) | 2019-03-04 | 2021-12-28 | Cyxtera Cybersecurity, Inc. | Management of network access request based on source address of device |
KR102462577B1 (ko) * | 2021-02-16 | 2022-11-03 | 숭실대학교산학협력단 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
CN115842793A (zh) * | 2022-11-16 | 2023-03-24 | 深圳市丰润达科技有限公司 | 三层交换机的路由转发方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100785472B1 (ko) | 2006-09-19 | 2007-12-13 | 삼성전자주식회사 | 긴급 NoC 패킷 대기시간 관리 장치 및 그 방법 |
CN101420380B (zh) * | 2008-11-28 | 2012-11-14 | 西安邮电学院 | 一种双层双环型片上*** |
US8509078B2 (en) | 2009-02-12 | 2013-08-13 | Microsoft Corporation | Bufferless routing in on-chip interconnection networks |
CN101808032B (zh) * | 2010-03-04 | 2012-07-25 | 南京大学 | 面向静态XY路由算法的二维网格NoC路由器优化设计方法 |
CN103283192A (zh) | 2011-03-28 | 2013-09-04 | 松下电器产业株式会社 | 中继器、中继器的控制方法以及程序 |
CN102394829A (zh) * | 2011-11-14 | 2012-03-28 | 上海交通大学 | 片上互连网络中基于可靠性需求的仲裁方法 |
CN103460654B (zh) * | 2011-11-17 | 2016-12-14 | 松下知识产权经营株式会社 | 中继装置、中继装置的控制方法 |
US9036482B2 (en) * | 2011-12-08 | 2015-05-19 | The Hong Kong University Of Science And Technology | Bufferless nonblocking networks on chip |
US9703707B2 (en) | 2012-12-04 | 2017-07-11 | Ecole polytechnique fédérale de Lausanne (EPFL) | Network-on-chip using request and reply trees for low-latency processor-memory communication |
US9014005B2 (en) * | 2013-01-14 | 2015-04-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Low-latency lossless switch fabric for use in a data center |
US9699096B2 (en) * | 2013-12-26 | 2017-07-04 | Intel Corporation | Priority-based routing |
US9473415B2 (en) * | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
-
2014
- 2014-07-28 CN CN201410364429.9A patent/CN105306382B/zh active Active
- 2014-11-26 JP JP2014239242A patent/JP5965464B2/ja active Active
- 2014-11-26 DE DE202014009422.5U patent/DE202014009422U1/de active Active
-
2015
- 2015-05-26 KR KR1020150073140A patent/KR101609288B1/ko active IP Right Grant
- 2015-05-26 US US14/721,730 patent/US10084710B2/en active Active
Non-Patent Citations (2)
Title |
---|
QBLESS:A case for QOS -aware bufferless NOCs;Na Zhang;《Microelectronics Journal》;20140513;第751-758页 * |
无缓存片上网络路由算法;张明涛;《万方数据库》;20100417;第3.2节3.2.1小节第2段 * |
Also Published As
Publication number | Publication date |
---|---|
JP2016032288A (ja) | 2016-03-07 |
JP5965464B2 (ja) | 2016-08-03 |
KR20160013799A (ko) | 2016-02-05 |
US20160028634A1 (en) | 2016-01-28 |
DE202014009422U1 (de) | 2015-04-29 |
US10084710B2 (en) | 2018-09-25 |
CN105306382A (zh) | 2016-02-03 |
KR101609288B1 (ko) | 2016-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105306382B (zh) | 一种无缓存noc数据处理方法及noc电子元件 | |
US9515961B2 (en) | Credit flow control scheme in a router with flexible link widths utilizing minimal storage | |
US9634866B2 (en) | Architecture and method for hybrid circuit-switched and packet-switched router | |
US8284766B2 (en) | Multi-core processor and method of communicating across a die | |
US8593960B2 (en) | Providing a bufferless transport method for multi-dimensional mesh topology | |
CN108400880B (zh) | 片上网络、数据传输方法和第一交换节点 | |
Daneshtalab et al. | Memory-efficient on-chip network with adaptive interfaces | |
CN105740199B (zh) | 芯片上网络的时序功率估算装置与方法 | |
CN102685017A (zh) | 一种基于fpga的片上网络路由器 | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
US10050843B2 (en) | Generation of network-on-chip layout based on user specified topological constraints | |
CN103595627A (zh) | 基于多播维序路由算法的NoC路由器及其路由算法 | |
Xin et al. | A low-latency NoC router with lookahead bypass | |
JPWO2014103144A1 (ja) | インタフェース装置、およびメモリバスシステム | |
US10983910B2 (en) | Bandwidth weighting mechanism based network-on-chip (NoC) configuration | |
Ebrahimi et al. | A high-performance network interface architecture for NoCs using reorder buffer sharing | |
CN104683242A (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
Carara et al. | Communication models in networks-on-chip | |
Daneshtalab et al. | CARS: Congestion-aware request scheduler for network interfaces in NoC-based manycore systems | |
CN209132758U (zh) | 多核芯片数据总线布线结构 | |
Concer et al. | CTC: An end-to-end flow control protocol for multi-core systems-on-chip | |
CN109643301B (zh) | 多核芯片数据总线布线结构和数据发送的方法 | |
Lee et al. | Design of a feasible on-chip interconnection network for a chip multiprocessor (cmp) | |
US11144457B2 (en) | Enhanced page locality in network-on-chip (NoC) architectures | |
CN105991378B (zh) | 一种基于3D-mesh网络的点对多点通信方法及通信节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |