当前位置: 首页 > 专利查询>NTT通信公司专利>正文

检索装置、检索方法、程序及记录介质制造方法及图纸

技术编号:16709084 阅读:31 留言:0更新日期:2017-12-03 00:42
一种检索装置,具有:存储单元,其存储检索对象数据;以及运算单元,其根据密钥数据进行对所述检索对象数据的检索处理,在所述存储单元中存储的所述检索对象数据是具有内部节点排列和叶节点排列的多叉树结构的数据,所述检索对象数据中的各内部节点包括用比特表示转移目的地是内部节点还是叶节点的比特向量,所述运算单元反复执行如下处理,一直到转移目的地成为叶节点为止,所述处理是:从密钥数据中取得规定比特长度的块,根据所访问的内部节点的所述比特向量中与该块的值对应的比特,判定从该内部节点起的转移目的地是内部节点还是叶节点并访问转移目的地的节点。

【技术实现步骤摘要】
【国外来华专利技术】检索装置、检索方法、程序及记录介质
本专利技术涉及通过搜索用树结构表现的检索对象数据来取得期望的数据的检索技术。
技术介绍
在路由器等装置中进行如下处理:根据所接收到的分组的目的地地址检索路径表而决定分组的转发目的地。在该处理中进行最长一致检索,为此以往使用Patricia前缀树(Trie)、基数树(Radix树)等。以往,二叉树的方式成为主流,性能即使高也就是数Mlps(MegaLookuppersecond)。虽然也研究了多叉树(N-ary/Multiway)的方式,但是在实际应用中不是主流。这些树的性能未达到所期望的,因而实现数百Mlps的TCAM这样的硬件成为事实上的标准。TCAM在经济性、集成度/规模性、功耗/发热方面存在难点。为了打破TCAM的问题,近年来出现了将市售品的器件和软件组合起来进行路径检索的技术。PacketShader、GPUClick、GAMT等利用GPU实现较高的路径检索性能,但是由于利用GPU,因而与TCAM一样存在热问题等。另外,作为现有技术文献有专利文献1。现有技术文献专利文献专利文献1:日本特开2000-083054号公报
技术实现思路
专利技术要解决的问题如上所述,在利用TCAM或GPU等特定的器件时存在发热等问题,因而不期望利用特定的器件使路径检索高速化。也提出了不以特定的硬件的利用为前提,而在通用的硬件(例如市售的CPU等)中利用软件使路径检索高速化的技术(例如DXR、SAIL),然而该技术在路径表内的路径数成为大规模时或地址长度变长时,存在性能下降的问题。在使用通用的硬件的检索处理中,在检索对象数据的数据规模成为大规模、密钥数据长度变长的情况下,不仅路径检索,而且也产生检索性能下降的问题。本专利技术正是鉴于上述情况而完成的,其目的在于,提供在使用通用的硬件的情况下,也能够高速地检索用树结构表现的检索对象数据的技术。用于解决问题的手段根据本专利技术的实施方式提供检索装置,具有:存储单元,其存储检索对象数据;以及运算单元,其根据密钥数据进行对所述检索对象数据的检索处理,其特征在于,在所述存储单元中存储的所述检索对象数据是具有内部节点排列和叶节点排列的多叉树结构的数据,所述检索对象数据中的各内部节点包括用比特表示转移目的地是内部节点还是叶节点的比特向量,所述运算单元反复执行如下处理,一直到转移目的地成为叶节点为止,所述处理是:从密钥数据取得规定比特长度的块,根据所访问的内部节点的所述比特向量中与该块的值对应的比特,判定从该内部节点起的转移目的地是内部节点还是叶节点并访问转移目的地的节点。另外,根据本专利技术的实施方式提供由检索装置执行的检索方法,该检索装置具有:存储单元,其存储检索对象数据;运算单元,其根据密钥数据进行对所述检索对象数据的检索处理,其特征在于,在所述存储单元中存储的所述检索对象数据是具有内部节点排列和叶节点排列的多叉树结构的数据,所述检索对象数据中的各内部节点包括用比特表示转移目的地是内部节点还是叶节点的比特向量,所述检索方法具有如下步骤:反复执行如下处理,一直到转移目的地成为叶节点为止,所述处理是:从密钥数据中取得规定比特长度的块,根据所访问的内部节点的所述比特向量中与该块的值对应的比特,判定从该内部节点起的转移目的地是内部节点还是叶节点并访问转移目的地的节点。专利技术效果根据本专利技术的实施方式,即使是在使用通用的硬件的情况下,也能够高速地检索用树结构表现的检索对象数据。附图说明图1是用于说明多路径基数搜索方法的图。图2是本专利技术的实施方式的检索装置10的结构图。图3是示出本专利技术的实施方式的检索装置20的图。图4是示出存储部12中存储的检索对象数据的例子的图。图5是用于说明本实施方式的检索对象数据的结构及检索处理的概要的图。图6是示出内部节点和叶节点的更具体的例子的图。图7是用于说明检索处理的步骤的流程图。图8A是用于说明直接指向(directpointing)的图。图8B是用于说明直接指向的图。图9是用于说明叶节点的数据的压缩例的图。图10是用于说明压缩例中的数据结构的例子的图。图11是用于说明叶节点的数据的压缩例的图。图12是用于说明压缩例中的数据结构的例子的图。图13是用于说明内部节点的数据的压缩例的图。图14是示出应用leafmask时的内部节点的数据结构的图。图15是示出在使用leafmask时取得叶的值的处理的流程图。图16是用于说明有关leafmask的数据生成方法的图。具体实施方式下面,参照附图说明本专利技术的实施方式。另外,下面说明的实施方式只不过是一个例子,本专利技术所应用的实施方式不限于以下的实施方式。(关于搜索方法)在本实施方式中,作为本专利技术的检索技术的应用对象的例子假定如下的处理:在路由器中,将所接收到的分组的目的地地址作为密钥,按照最长一致来检索路由表(更具体地讲是转发表(forwardingtable)),取得作为该分组的转发目的地的下一跳(nexthop)的信息。然而,本专利技术的应用对象不限于此,本专利技术不限于最长一致,可以应用于完全一致等各种类型的检索。下面,将作为检索(搜索)的对象的数据称为检索对象数据。另外,将目的地地址等成为检索的密钥的数据称为密钥数据。在本实施方式中,使用利用多叉树表现的多路径基数搜索法作为对检索对象数据进行检索的方法,因而首先参照图1说明多路径基数搜索法的概要。在多路径基数搜索法中,从开头起按照每规定数量的多个比特(以下称为块(chunk))划分密钥数据,按照该多个比特进行树的转移。图1是将每2比特作为块的例子。各块可以取4种类型的值(在图1中表示为a、b、c、d),因而将树中的各节点分支成4个方向。分支点是内部节点(在图1中用圆圈示出的节点)或者叶节点(在图1中用四方形示出的节点)。在从密钥数据中的第一个块起第一段的节点中开始搜索,分支成相应的值的子节点,使密钥进入下一个块,由此依次进行搜索,在到达叶节点时搜索结束。在图1的例子中,例如在密钥数据是d××××(×表示任意的值)的情况下,到达由5示出的叶节点。另外,在密钥数据是bb××的情况下,到达用由6示出的叶节点。在叶节点存储有例如表示下一跳的信息(例如地址、IF信息等),在到达叶节点的情况下,取得与密钥数据对应的下一跳的信息。上述的例子是将块长度设为2比特的例子,然而例如在使用64比特CPU结构的情况下,能够使用将块长度设为6比特、在各节点进行64分支的树的数据结构,以便将比特宽度设为相同宽度而有效地进行运算。在如上所述的多路径基数搜索法中,通常各节点具有对应分支数量的、指向子节点用的指针(存储子节点的地址等),然而各指针例如用64比特指定子节点,因而存在整体的树的数据量非常庞大的问题。因此,在这样使用指针的结构中,树的数据不能完全存储在通用CPU的高速闪存中,不得不存储在位于CPU之外的存储器中,因而存在检索速度下降的问题。另一方面,在本实施方式的技术中,与上述的技术相比,能够大幅削减各内部节点的数据量,并且能够压缩具有相同数据的节点,因而能够减小整体的树的数据量,能够在通用CPU的高速闪存中存储树的数据而进行处理。因此,即使是使用通用CPU等通用的硬件的情况下,也能够进行高速的检索处理。下面,更详细地说明本实施方式的技术。(装置结构例)首先,说明执行本实施本文档来自技高网...
检索装置、检索方法、程序及记录介质

【技术保护点】
一种检索装置,具有:存储单元,其存储检索对象数据;以及运算单元,其根据密钥数据进行对所述检索对象数据的检索处理,其特征在于,在所述存储单元中存储的所述检索对象数据是具有内部节点排列和叶节点排列的多叉树结构的数据,所述检索对象数据中的各内部节点包括用比特表示转移目的地是内部节点还是叶节点的比特向量,所述运算单元反复执行如下处理,一直到转移目的地成为叶节点为止,所述处理是:从密钥数据中取得规定比特长度的块,根据所访问的内部节点的所述比特向量中与该块的值对应的比特,判定从该内部节点起的转移目的地是内部节点还是叶节点并访问转移目的地的节点。

【技术特征摘要】
【国外来华专利技术】2015.03.11 JP 2015-0486571.一种检索装置,具有:存储单元,其存储检索对象数据;以及运算单元,其根据密钥数据进行对所述检索对象数据的检索处理,其特征在于,在所述存储单元中存储的所述检索对象数据是具有内部节点排列和叶节点排列的多叉树结构的数据,所述检索对象数据中的各内部节点包括用比特表示转移目的地是内部节点还是叶节点的比特向量,所述运算单元反复执行如下处理,一直到转移目的地成为叶节点为止,所述处理是:从密钥数据中取得规定比特长度的块,根据所访问的内部节点的所述比特向量中与该块的值对应的比特,判定从该内部节点起的转移目的地是内部节点还是叶节点并访问转移目的地的节点。2.根据权利要求1所述的检索装置,其特征在于,所述检索对象数据中的各内部节点包括表示转移目的地的1个内部节点的存储位置的第1基础信息、和表示转移目的地的1个叶节点的存储位置的第2基础信息,所述运算单元在根据所述比特向量的比特的值判定出的转移目的地是内部节点的情况下,使用所述第1基础信息访问该转移目的地的内部节点,在转移目的地是叶节点的情况下,使用所述第2基础信息访问该转移目的地的叶节点。3.根据权利要求2所述的检索装置,其特征在于,对于所述检索对象数据中的各内部节点,成为转移目的地的内部节点在所述内部节点排列中按照存储位置连续的方式进行存储,成为转移目的地的叶节点在所述叶节点排列中按照存储位置连续的方式进行存储,所述运算单元在根据所述比特向量的比特的值判定出的转移目的地是内部节点的情况下,使用所述第1基础信息和所述比特向量中表示内部节点的比特的数量访问该转移目的地的内部节点,所述运算单元在转移目的地是叶节点的情况下,使用所述第2基础信息和所述比特向量中表示叶节点的比特的数量访问该转移目的地的叶节点。4.根据权利要求2所述的检索装置,其特征在于,对于所述检索对象数据中的各内部节点,成为转移目的地的叶节点在所述叶节点排列中按照存储位置连续的方式进行存储,具有相同值的叶节点被压缩,多个叶节点不包括具有相同值的多个叶节点,所述检索对象数据中的各内部节点包括具有表示压缩前的叶节点的值变化的存储位置的比特的叶向量,所述运算单元在根据所述比特向量的比特的值判定出的转移目的地是叶节点的情况下,使用所述第2基础信息和所述叶向量中表示所述存储位置的比特的数量访问该转移目的地的叶节点。5.根据权利要求4所述的检索装置,其特征在于,所述运算单元先调查所述比特向量和所述叶向量中的所述比特向量,根据该比特向量的比特的值使用所述叶向量。6.根据权利要求2所述的检索装置,其特征在于,对于所述检索对象数据中的各内部节点,成为转移目的地的叶节点在所述叶节点排列中按照存储位置连续的方式进行存储,具有相同值的叶节点被压缩,多个叶节点不包括具有相同值的多个叶节点,所述检索对象数据中的各内部节点包括具有表示压缩前的叶节点的值变化的存储位置的比特的掩码向量,所述运算单元在根据所述比特向量的比特的值判定出的转移目的地是叶节点的情况下,使用所述第2基础信息和用所述掩码向量掩蔽后的所述比特向量中的表示叶节点的比特的数量来访问该转移目的地的叶节点。7.根据权利要求2所述的检索装置,其特征在于,对于所述检索对象数据中的...

【专利技术属性】
技术研发人员:浅井大史小原泰弘
申请(专利权)人:NTT通信公司
类型:发明
国别省市:日本,JP

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

1