一种基于图形处理单元gpu的路由方法和设备的制造方法_2

文档序号:8225969阅读:来源:国知局
匹配的思想体现到路由表表项的内容之中。
[0028] 在建立路由表时,应当在表项的填写方面详细考虑:在填入一个表项时,这个表项 的子网内的地址如果没有更具体的地址,则应当自顶向下将这个表项的信息拷贝到这个表 项的子网内的每一个条目中。因为没有更具体的信息时应当与其高层网络号保持一致。如 果子网内的表目有更具体的信息,则不需要修改。
[0029] 对于路由表数据结构的组织。在显存中组织路由表既要考虑查找更新的效率,又 要考虑显存空间利用的有效性。本发明中将把IP地址前24位的整个地址空间放到显存中, 在GPU端进行并行处理;而核心问题是对长于24为前缀的匹配,本设计中采用了二级表的 方法,将该部分地址的计算放在主机端进行,并与GPU完成协作。
[0030] 在进行地址映射时,32位的IP地址如果完全映射到内存空间中,需要4G个条目, 这对于目前GPU的显存来讲开销还是比较大的,在部分GPU平台上实现起来比较困难,影响 该发明的通用性。本发明中,将对IP地址的前24位进行完全映射,即利用H(key) =key, 这样GPU中空间的主要开销可以降低到224= 16M个条目。对于少量的前缀大于24位的表 项将放在主机端进行单独处理。相关研宄中指出,前缀长度大于24的表项很少,只占总表 项的0. 05 %左右,也就是说,对于40万条的路由表,只有大约200条长度大于24的表项,该 部分表项的处理将置于主机端的CPU和内存中处理。
[0031] (2)路由表与二叉线索的映射
[0032]Table_24以IP地址前24位为索引,逻辑上是一个线性的数组,如图1所示。 Table_24中的地址可以与二叉线索数据结构进行对应。数组中一个表项之后的,一片长度 为224连续的地址空间,可与二叉线索中一个节点为根的子树对应,有区别的是在Table_24 和Table_long中应当看做满二叉树。同时,二叉线索的增、删、更新操作也可对应于 Table_24与Table_long的相应操作。通过该分析可得知,本发明中的路由表的组织与传统 的二叉线索的方式是等价的,故本发明在理论上是完备的。
[0033] (3)基于GPU架构的优化和面向体系结构的改进
[0034] NVIDIA的Fermi架构和K印ler架构提供了很多特性和优化方法,给提高程序的 性能提供了很大的空间,本发明中对基于Fermi架构和Kepler架构进行了优化设计。多核 的处理器以及支持异步并发的显卡提供了更粗粒度的并行方法。发明中针对"CPU多线程 +GPU并发"方面进行了优化,使多个主机线程控制多个GPU流,实现GPU计算和数据传输的 重叠。
[0035] 下面参照附图,对本发明的内容的实施方式进行详述,正如
【发明内容】
涉及:(1)基 于GPU计算的路由表构建,(2)路由表的查找、更新、删除算法,(3)面向GPU体系结构的优 化方法。
[0036] (1)路由表的组织:
[0037] 路由表分为两个部分,Table_24和Table_long,分别用来进行前缀长度小于等于 24位的查找和前缀长度大于24位的查找,Table_24的长度是定长224= 16M,而Table_long 的长度是变长的,为256*n,其中n为前缀长度大于24表目的数量。
[0038] 进行路由匹配时,将前缀长度小于等于24位的表项,即Table_24中tag为0的 部分送入显卡图形处理单元GPU的显存当中进行匹配;将前缀长度大于24位的表项,即将 Table_24中tag为1部分与Tabel_long进行拼接,留在主机端的内存当中进行匹配。
[0039] Table_24以IP地址前24位为索引,下表为Table_24的表项:
[0040]
【主权项】
1. 一种基于图形处理单元GPU的路由方法,在主机显卡的所述GPU中保存路由表 T油le_24,在主机的中央处理单元CPU中保存路由表T油le_long,其特征在于,所述方法包 括: 51. W IP地址的前24位作为查找索引,在所述路由表T油le_24中执行路由查找,若所 述IP地址的前缀长度小于或等于24,则从所述路由表T油le_24中获得下一跳路由地址,流 程结束;否则从所述路由表T油le_24中获得访问路由表T油le_long的索引信息,执行步骤 S2 ; 52 ;根据所述索引信息访问所述路由表T油le_long,从中获得下一跳路由地址。
2. 如权利要求1所述的方法,其特征在于: 所述索引信息为路由表Table_long的一级索引编号; 所述步骤S2具体为: 根据所述一级索引编号在所述路由表Table_long的一级索引表中获得二级索引表的 位置,再通过所述IP地址的最后8位得到所述路由表T油le_long的二级索引编号,并在 T油le_long中通过二级索引编号得到所述下一跳路由地址。
3. 如权利要求2所述的方法,其特征在于: 在更新所述路由表T油le_24时,判断所述更新是否导致某一 IP地址的前缀长度由小 于等于24变为大于24 ;若是,则分配对应于该IP地址的所述路由表Table_long中的一级 索引编号,将所述一级索引编号对应的二级索引表中的256个表项的内容全部更新为该IP 地址对应的所述路由表Table_24中的内容;更新所述IP地址所覆盖部分的路由信息,其范 围为填入表项,到所述路由表T油le_24的末尾。
4. 如权利要求3所述的方法,其特征在于: 所述分配对应于该IP地址的所述路由表T油le_long中的一级索引编号具体为;如果 有被回收的索引编号,则分配该个索引编号,如果没有,则顺序分配新的索引编号。
【专利摘要】提出的一种基于图形处理单元GPU的路由方法,在主机显卡的所述GPU中保存路由表Table_24,在主机的中央处理单元CPU中保存路由表Table_long,当查询的IP地址的前缀长度小于或等于24时,从所述路由表Table_24中获得下一跳路由地址,否则进一步访问路由表Table_long,从中获得下一跳路由地址。提出的方法利用GPU加速完成了高性能的路由查找转发引擎的设计和实现,避免了软件路由器的CPU瓶颈,弥补了其性能上的不足,实现了高吞吐量。
【IPC分类】H04L12-741, G06F9-44
【公开号】CN104539540
【申请号】CN201510020579
【发明人】赵祯龙
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2015年4月22日
【申请日】2015年1月15日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1