一种无缓存noc数据处理方法及noc电子元件的制作方法

文档序号:9551224阅读:581来源:国知局
一种无缓存noc数据处理方法及noc电子元件的制作方法
【技术领域】
[0001] 本发明涉及集成电路领域,尤其涉及一种无缓存N0C数据处理方法及N0C电子元 件。
【背景技术】
[0002] 随着半导体工艺技术的发展,IC(IntegratedCircuit,集成电路)设计者能够将 越来越复杂的功能集成到单硅片上,SOC(SystemOnAChip,片上系统)正是在1C向集成 系统转变之下应运而生的。从狭义的角度讲,S0C是电子信息系统的集成;从广义讲,S0C是 一个微电子小型系统。S0C是在单硅片上集成了数字和模拟混合电路,包括嵌入式核、存储 器、专用功能模块、输入/输出接口模块等多种功能模块。并且,S0C把模型算法、芯片结构、 各层次电路甚至器件的设计紧密结合起来考虑,在单个芯片上一次性实现整个计算机系统 的功能。
[0003] 但随着各功能模块向精细化与复杂化方向的发展,使得S0C中用于各功能模块之 间信息传递的数据链路的数量急剧增加,这不仅增加了S0C的设计难度,也增加了S0C的系 统能耗。因而,1999年前后几个研究小组提出了一种全新的集成电路体系结构NOC(Network OnChip,片上网络),其核心是将计算机网络技术移植到芯片设计中来,从体系结构上彻底 解决S0C结构带来的问题。
[0004]N0C可以定义为在单一芯片上实现基于网络通信的多处理器系统。N0C包括路由 节点和通信节点,路由节点完成广义的计算任务;通信节点负责路由节点之间的数据通信。 通信节点之间的网络借鉴了分布式计算机系统的通信方式,用路由和分组交换技术完成通 信任务。
[0005] 可以看出,路由是N0C的核心部件,负责数据包的转发和传递。传统的路由中主要 包含虚拟通道、数据缓存、优先级仲裁、交叉开关等部件。但在最近的研究中,为了提高N0C 的性能,提出了一种没有虚拟通道、数据缓存的N0C,称为无缓存N0C。
[0006] 在现有技术中,由于无缓存N0C在转发数据包的时候,自身并不具备缓存的功能, 路由节点需要将已接收到的数据包在下一个数据包到达之前发送出去,不管发送的转发端 口是否为该数据包所期待的转发端口。即当多个数据包发生端口竞争时,只有一个数据包 能够获得其期望端口,其他数据包都会被发往其他端口,这样就使得那些被发往其他端口 的数据包产生了偏转(Deflection)。同时,若当前有新的数据包需要通过该无缓存N0C的 转发端口注入到网络,但该路由没有空闲注入端口可以使用时,新的数据包无法立即注入, 就会产生饥饿(starve)的现象。因此,当无缓存N0C中有多个数据包需要进行发送时,会 对上述的多个数据包进行随机发送,从而导致了高优先级的数据包发生了偏转,进而导致 该无缓存N0C无法保证高优先级程序的性能。

【发明内容】

[0007] 本发明的实施例提供一种无缓存N0C数据处理方法及N0C电子元件,通过减少高 程序优先级数据包发生偏转的偏转率,从而提高了高优先级程序的性能。
[0008] 为达到上述目的,本发明的实施例采用如下技术方案:
[0009] 第一方面,提供一种无缓存片上网络N0C数据处理方法,应用于无缓存N0C电子元 件,包括:
[0010] 路由节点在一个处理周期内,接收多个需要发往同一转发端口的数据包;
[0011] 获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述优 先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数据 包的时长信息为所述数据包在所述N0C中停留的时间;
[0012] 将所述优先级最高的数据包通过所述转发端口转发出去。
[0013] 在第一方面的第一种可能的实现方式中,所述获取数据包的优先级信息,根据优 先级信息得出数据包的优先等级具体包括:
[0014] 获取所述数据包的优先级信息和预存的优先级阈值;
[0015] 根据所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等 级。
[0016] 在第一方面的第二种可能的实现方式中,所述获取数据包的优先级信息,根据优 先级信息得出数据包的优先等级之前,所述方法还包括:
[0017] 当数据包进入所述N0C的第一个路由节点时,从所述第一个路由节点对应CPU的 寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的优先级信息写入所述 数据包的包头中;
[0018] 所述获取数据包的优先级信息,根据优先级信息得出数据包的优先等级具体包 括:
[0019] 从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述数据 包的优先级信息得出所述数据包的优先等级。
[0020] 在第一方面的第三种可能的实现方式中,结合第一方面或第一方面的第一种可能 的实现方式或第一方面的第二种可能的实现方式,所述确定发往同一转发端口的各个数据 包中优先级最高的数据包之后,所述方法还包括:
[0021] 将所述优先级最高的数据包以外的其他数据包,通过所述转发端口以外的其他转 发端口转发出去。
[0022] 第二方面,提供一种无缓存N0C数据处理方法,应用于无缓存N0C电子元件,包 括:
[0023] 获取N0C电子元件中每个路由节点的节点信息;其中所述节点信息包括所述路由 节点的饥饿率、所述路由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序 优先级信息;所述程序优先级信息用于指示所述当前注入数据包的优先级;
[0024] 若所述N0C电子元件拥塞,则根据所述每个路由节点当前注入数据包的IPF及程 序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的注入限制率;所 述注入限制率为所述路由节点限制所述当前注入数据包对应程序注入所述路由节点的限 制百分比;
[0025] 将所述每个路由节点对所述当前注入数据包对应程序的注入限制率,分别分配至 对应的路由节点,以使所述每个路由节点根据相应的注入限制率,对所述当前注入数据包 对应程序注入所述路由节点进行限制。
[0026] 在第二方面的第一种可能的实现方式中,所述根据所述每个路由节点当前注入数 据包的IPF及程序优先级信息,计算所述每个路由节点对所述当前注入数据包对应程序的 注入限制率具体包括:
[0027] 根据所述每个路由节点当前注入数据包的IPF、程序优先级信息及注入限制率公 式,确定所述每个路由节点对所述当前注入数据包对应程序的注入限制率;其中所述注入
限制公式为 其中所述T为注入限制率;所述Priority *: 为所述当前注入数据包的程序优先级;所述S,α,β,λ为常数。
[0028] 在第二方面的第二种可能的实现方式中,结合第二方面或第二方面的第一种可能 的实现方式,所述方法还包括:
[0029] 将所述每个路由节点的饥饿率分别与所述每个路由节点对应的饥饿率阈值进行 比对,判定所述每个路由节点是否拥塞;
[0030] 其中,若所述N0C电子元件中任一路由节点拥塞,则判定所述N0C电子元件拥塞。
[0031] 第三方面,提供一种N0C电子元件,所述N0C电子元件包括至少一个路由节点,其 中,所述路由节点包括:存储器、处理器、交换单元、输入端口和输出端口:
[0032] 所述存储器,用于存储路由表,所述路由表记录了数据包到达目的地的路径;
[0033] 所述处理器,用于在一个处理周期内,接收多个需要发往同一转发端口的数据 包;及用于获取数据包的优先级信息,根据优先级信息得出数据包的优先等级;其中,所述 优先级信息包括所述数据包的时长信息和所述数据包对应程序的程序优先级信息;所述数 据包的时长信息为所述数据包在所述N0C中停留的时间;及用于将所述优先级最高的数据 包通过所述转发端口转发出去。
[0034] 在第三方面的第一种可能的实现方中:
[0035]所述存储器,还用于存储优先级阈值;
[0036] 所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级 时,具体用于:获取所述数据包的优先级信息,从所述存储器中获取所述优先级阈值,根据 所述数据包的优先级信息和所述优先级阈值,确定出所述数据包的优先等级。
[0037] 在第三方面的第二种可能的实现方中:
[0038] 所述处理器,还用于当数据包进入所述N0C的第一个路由节点时,从所述第一个 路由节点对应CPU的寄存器中获取所述数据包对应的优先级信息,并将所述数据包对应的 优先级信息写入所述数据包的包头中;
[0039] 所述处理器在获取数据包的优先级信息,根据优先级信息得出数据包的优先等级 时,具体用于:从所述数据包的包头信息中读取所述数据包对应的优先级信息,并根据所述 数据包的优先级信息得出所述数据包的优先等级。
[0040] 在第三方面的第三种可能的实现方式中,结合第三方面或第一方面的第一种可能 的实现方式或第三方面的第二种可能的实现方式:
[0041] 所述处理器,还用于将所述优先级最高的数据包以外的其他数据包,通过所述转 发端口以外的其他转发端口转发出去。
[0042] 第四方面,提供一种N0C电子元件,所述N0C电子元件包括至少一个路由节点和一 个数据处理器,每个路由节点包括一个注入端口和至少一个转发端口,其中:
[0043] 所述数据处理器,用于从所述N0C电子元件的每个路由节点中获取所述N0C电子 元件中每个路由节点的节点信息;其中所述节点信息包括所述路由节点的饥饿率、所述路 由节点当前注入数据包对应程序的每个数据包的指令数IPF及程序优先级信息;所述程序 优先级信息用于指示所述当前注入数据包的优先级;
[0044] 所述数据处理器,还用于若所述N0C电子元件拥塞,则根据所述每个路由节点当 前注入数据包的IPF及程序优先级信息
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1