一种路由器和片上网络传输系统及方法技术方案

技术编号:17472650 阅读:38 留言:0更新日期:2018-03-15 08:48
本发明专利技术涉及一种路由器,包括控制单元,用于控制所述路由器;缓存,用于将接收的数据包输出至所述交叉开关;交叉开关,用于将接收的数据包路由到相应的输出端口;压缩器,用于对接收的数据包进行压缩,并将压缩后的数据包返回至所述缓存;以及解压缩器,用于对接收的数据包解压缩,并将解压缩后的数据包返回至相应的输出端口。

A network transmission system and method of router and on chip

The invention relates to a router, including a control unit for controlling the router; cache is used for receiving data packets output to the crossbar switch; cross switch, for routing the received data packets to the appropriate output port; compressor for the received data packets are compressed, and the compressed the packet back to the cache; and a decompressor for receiving data packets and decompression, the decompressed data packets back to the corresponding output port.

【技术实现步骤摘要】
一种路由器和片上网络传输系统及方法
本专利技术涉及神经网络领域,特别涉及一种路由器和片上网络传输系统及方法。
技术介绍
神经网络作为一种模拟人脑的机器学习技术一直都是人工智能研究领域的热点,并且在众多领域得到了广泛的应用,例如图像识别、自然语言理解等。近年来,利用深度学习获得的深度神经网络发展迅速,这种运算模型,通常包含大量的互相连接的数据节点,其连接关系通常使用权重进行表示。随着深度神经网络规模的扩大,对网络模型的计算速度要求也越来越高,采用硬件加速替代传统软件计算的方式成为提高效率的有效方式之一,例如,采用多运算核心进行并行运算,但是由于数据过于庞大,沉重的传输负担通常会导致延时,使得系统性能整体下降。因此,需要一种能够提高传输效率的路由器和适用于神经网络的片上网络传输系统及方法。
技术实现思路
本专利技术提供一种路由器,包括控制单元,用于控制所述路由器;缓存,用于将接收的数据包输出至交叉开关;交叉开关,用于将接收的数据包路由到相应的输出端口;压缩器,用于对接收的数据包进行压缩,并将压缩后的数据包返回至所述缓存;以及解压缩器,用于对接收的数据包解压缩,并将解压缩后的数据包返回至相应的输出端口。优选的,所述缓存包括通道选择器和虚通道,所述控制单元控制所述通道选择器为输入至所述路由器的数据包分配所述虚通道;所述交叉开关包括端口选择器,所述控制单元控制所述端口选择器为输入至所述交叉开关的数据包分配输出端口。优选的,所述控制单元根据所述虚通道和输出端口的占用情况,判断从本地输入至所述路由器的数据包是否为空闲数据包。优选的,所述控制单元根据当前路由器中缓存队列的空闲值对所述空闲数据包进行压缩优先级排序。优选的,若所述空闲值一致,则根据与当前路由临近的路由下一跳的缓存队列空闲值来进行压缩优先级排序。优选的,所述控制单元根据预设的空闲阈值进行仲裁;若所述空闲数据包相关联的所述空闲值低于该空闲阈值,则控制所述压缩器对数据包进行压缩;若所述空闲数据包的空闲值不低于该空闲阈值,则将所述空闲数据包直接返回至所述缓存。优选的,所述压缩器采用基于步进的压缩方式对数据包进行压缩。优选的,若输入至所述交叉开关的数据包是提供给本地使用的压缩后的数据包,所述控制单元将控制所述端口选择器将所述压缩后的数据包传输至所述解压缩器进行解压缩,之后返回至所述端口选择器;若输入至所述交叉开关的数据包是经所述路由器路由至外部的,所述控制单元将控制所述端口选择器直接为所述数据包分配输出端口。根据本专利技术的另一个方面,还提供一种片上网络传输系统,包括多个如上所述的路由器。根据本专利技术的另一个方面,还提供一种多核神经网络处理器,包括多个计算核心,所述计算核心之间采用了如上所述的片上网络传输系统进行数据传输。优选的,基于图层大小将数据分散存储至所述多个计算核心;或者基于输入/输出网络将数据分散存储至所述多个计算核心;或者基于图层大小和输入/输出网络相结合的方式将数据分散存储至所述多个计算核心。根据本专利技术的另一个方面,还提供一种用于路由器的数据压缩方法,包括以下步骤:将本地输入至所述路由器的数据包分通道暂存入缓存;利用控制单元判断数据包是否为空闲数据包,并对获得的空闲数据包进行优先级排序,获得需要压缩的空闲数据包;利用压缩器对需要压缩的空闲数据包进行压缩,并将其返回至缓存。根据本专利技术的另一个方面,还提供一种用于路由器的数据解压缩方法,包括以下步骤:将外部输入至所述路由器的数据包分通道经缓存输入至交叉开关;利用端口选择器将本地需要使用的压缩后的数据包输入解压缩器;利用解压缩器对经过压缩的数据包进行解压,并将其返回端口选择器。相对于现有技术,本专利技术取得了如下有益技术效果:本专利技术提供的路由器和片上网络传输系统及方法,在路由器中增加了对输入数据的在线压缩和对输出数据的在线解压缩,大幅度减小了片上网络中的传输数据的规模,降低了数据传输的延时,特别适用于具有多个计算核心的神经网络处理器系统,能够提高神经网络处理器的并行计算速度,从而提高网络的整体性能。附图说明图1是一种多核神经网络处理器。图2是本专利技术较佳实施例的单个路由器的结构示意图。图3是本专利技术较佳实施例的数据划分方式示意图。图4是利用本专利技术提供的路由器的进行数据压缩的流程示意图。图5A和5B是采用基于步进的压缩方式进行数据压缩的举例示意图。图6是利用本专利技术提供的路由器的进行数据解压缩的流程示意图。具体实施方式为了使本专利技术的目的、技术方案以及优点更加清楚明白,以下结合附图,对本专利技术提供的片上网络传输系统及方法进一步详细说明。现有的硬件处理器通常采用多运算核心并行计算来提高神经网络模型的运转速率,同时,这种处理器会采用片上网络(NetworkonChip,NoC)来进行多个计算核心之间的互联。在深度神经网络开始进行计算时,首先要将数据请求经路由发送到对应的存储器中,若该数据不在存储器中,则将数据请求注入到相连的片上网络中,然后通过片上网络传输到指定的存储器;从指定的存储器中获得所需数据后,这些数据再重新注入到片上网络中,进而传输至初始发送数据请求的对应路由,以供深度神经网络进行计算。但是随着数据规模的不断扩大,不断增加的片上网络传输负担常常会导致系统性能下降。专利技术人经研究发现,深度神经网络的计算数据矩阵具有一定的稀疏性,这种稀疏性可以是矩阵本身具有的,也可以是由网络剪枝引起的。这种矩阵的稀疏性通常体现为在矩阵中有很多的值为零。基于矩阵的上述稀疏特性,专利技术人提供了一种数据压缩方法,利用特定的编码去除掉为零的矩阵值,使得数据规模大幅度降低,也就是说,可以减少实际在NoC中传输的数据包规模,从而提高整体NoC的传输效率。本专利技术提供了一种用于多核神经网络处理器的片上网络数据传输系统,图1是一种多核神经网络处理器,如图1所示,该处理器包括多个计算核心,每个计算核心包括用于执行运算的计算单元、用于存储数据和指令的存储单元,以及用于数据传输的路由器,其中,不同计算核心的路由器之间组成了本专利技术提供的片上网络数据传输系统,该系统包括多个相同的用于数据传输的路由器,其中每个路由器均可接收来自东南西北四个计算核心的路由器所发送的数据包,或者接收来自本地计算核心的存储单元所提供的数据包,并将上述接收数据包发送至东南西北四个计算核心的路由器,或者发送至本地计算单元以便计算单元使用。图2是本专利技术较佳实施例的单个路由器的结构示意图,如图2所示,上述路由器包括用于控制路由器的控制单元1、用于分通道暂存数据的缓存2、用于将输入数据路由到相应的输出端口的交叉开关3、用于数据压缩的压缩器4和用于数据解压缩的解压缩器5。其中,缓存2包括选择器21和虚通道22;交叉开关3包括选择器31。,控制单元1可发出控制指令到缓存2,缓存2的选择器21根据控制单元1的控制指令为输入到路由器的数据包分配虚通道22以便读取;交叉开关3将暂存在虚通道22中的数据路由到对应输出端口时,分配器31可根据路由器所采用的路由算法以及控制流信息来分配输出端口的占用权;同时,控制单元1可根据输入数据包对虚通道22的占用情况以及输出数据包对输出端口的占用情况来判断该数据包是否为空闲数据包,其中,未占用虚通道22或未被分配至输出端口的数据包可判定为空闲数据包;另外,控制单元1还可根据当前路由本文档来自技高网...
一种路由器和片上网络传输系统及方法

【技术保护点】
一种路由器,包括控制单元,用于控制所述路由器;缓存,用于将接收的数据包输出至交叉开关;交叉开关,用于将接收的数据包路由到相应的输出端口;压缩器,用于对接收的数据包进行压缩,并将压缩后的数据包返回至所述缓存;以及解压缩器,用于对接收的数据包解压缩,并将解压缩后的数据包返回至相应的输出端口。

【技术特征摘要】
1.一种路由器,包括控制单元,用于控制所述路由器;缓存,用于将接收的数据包输出至交叉开关;交叉开关,用于将接收的数据包路由到相应的输出端口;压缩器,用于对接收的数据包进行压缩,并将压缩后的数据包返回至所述缓存;以及解压缩器,用于对接收的数据包解压缩,并将解压缩后的数据包返回至相应的输出端口。2.根据权利要求1所述的路由器,其特征在于,所述缓存包括通道选择器和虚通道,所述控制单元控制所述通道选择器为输入至所述路由器的数据包分配所述虚通道;所述交叉开关包括端口选择器,所述控制单元控制所述端口选择器为输入至所述交叉开关的数据包分配输出端口。3.根据权利要求2所述的路由器,其特征在于,所述控制单元根据所述虚通道和输出端口的占用情况,判断从本地输入至所述路由器的数据包是否为空闲数据包。4.根据权利要求3所述的路由器,其特征在于,所述控制单元根据当前路由器中缓存队列的空闲值对所述空闲数据包进行压缩优先级排序。5.根据权利要求4所述的路由器,其特征在于,若所述空闲值一致,则根据与当前路由临近的路由下一跳的缓存队列空闲值来进行压缩优先级排序。6.根据权利要求5所述的路由器,其特征在于,所述控制单元根据预设的空闲阈值进行仲裁;若所述空闲数据包相关联的所述空闲值低于该空闲阈值,则控制所述压缩器对数据包进行压缩;若所述空闲数据包的空闲值不低于该空闲阈值,则将所述空闲数据包直接返回至所述缓存。7.根据权利要求1所述的路由器,其特征在于,所述压缩器采用基于步进的压缩...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1