Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于软件实现的trie结构进行LPM规则压缩存储的方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:芯启源(南京)半导体科技有限公司

摘要:本发明公开了一种基于软件实现的trie结构进行LPM压缩存储的方法,在插入LPM规则的时候,启动一个线程,直接按照hash计算插入位置,与此同时启动另一个线程在软件实现的trie结构上对LPM规则进行积累并统计每种前缀的个数,以便选出最合适的LPM规则前缀作为压缩依据。当trie结构的上的某个节点满足条件,立即将相关规则进行压缩,释放多余空间。这样就保证了在不影响LPM规则插入和搜索的情况的,对LPM规则进行相似划分。

主权项:1.一种基于软件实现的trie结构进行LPM压缩存储的方法,其特征在于,该方法包括:A.用软件设置k个trie结构,每个trie结构对应不同的LPM规则长度;B.当接收到LPM规则时,将其插入对应的硬件位置;如果所述LPM规则属于所述k个trie结构中对应的长度范围,则将其加入对应长度范围的trie结构,如果不属于任一个trie结构的长度范围,则不加入所述trie结构;将所述LPM规则加入所述trie结构的具体算法如下:a.设置trie结构中每个节点的数据结构为:规则ID,规则的公共长度,规则的自有长度,“自有数据”,扩展结构;其中,规则ID是所述LPM规则的唯一标识;规则的公共长度是指同一父节点下的所有子节点的公共前缀的长度,所述公共长度等于所述父节点的公共长度与自有长度之和;规则的自有长度是所述LPM规则的总长度减去所述LPM规则的公共长度;自有数据是指所述LPM规则去掉公共前缀之后的数据;扩展结构是当索引数据长度不足时用来存储所述LPM规则的ID的空间;b.当接收到所述LPM规则时,根据所述LPM规则设置节点的ID,如果trie结构中不存在节点,则将所述LPM规则设置为根节点;如果trie结构中存在节点,则从根节点开始自顶向下访问每个节点的公共长度L以及自有数据,若所述LPM规则以访问节点的公共长度L所截取的前缀与所述访问节点的自有数据相同,则将所述LPM规则在公共长度L之后的数据取前M位作为索引数据访问每个节点,其中M取决于trie结构,若trie结构是二叉树,则M=1;若trie结构是四叉树,则M=2;若trie结构是八叉树,则M=3,依次类推;对所述LPM规则剥离L+M长度的数据之后的剩余数据重复上述操作,直到出现异同或虚节点或无子节点,则进行步骤C;若剩余数据长度大于0且少于M位,则到步骤D;其中所述异同是指有部分相同,但不完全相同;c.若所述LPM规则的剩余数据与所述访问节点的自有数据出现异同,则提取它们公共长度N对应的公共部分建立虚节点;然后提取它们已经被剥离公共部分后的各自剩余数据的M位作为各自的索引数据,根据索引数据挂在虚节点的对应位置;若相同,则所述访问节点必为虚节点,只需更改虚节点的ID信息而无需建立新节点;若无子节点,则建立新节点并挂在与所述索引数据对应的位置;d.若取M位索引时的数据长度不足M,则在所述访问节点的扩展结构处设置其ID;C.当一个trie结构的节点涉及的LPM规则的数量达到预先设定的阈值,且所述节点对应的所述LPM规则的长度不小于所述trie结构对应的LPM长度区间,则使能压缩存储功能,具体过程如下:申请一个存储模块作为压缩存储区域,并设置与所述压缩存储区域相关联的压缩寄存器,用所述压缩寄存器存储所涉及的LPM规则的公共前缀,然后把所有所涉及的LPM规则去掉公共前缀后插入到所述压缩存储区域中,释放所述LPM规则原来占用的空间,并且删除所述节点的所有子树;D.后续接收到的LPM规则如果与对应长度区域的一个或多个压缩寄存器中存储的公共前缀相同,则把所述LPM规则去掉公共前缀后存储在与所述压缩寄存器相关联的压缩存储区域中,当所述压缩存储区域满时,则申请新的存储模块作为压缩存储区域,并设置与其相关联的压缩寄存器;否则直接通过hash存储到硬件结构中,并记录到对应的trie结构。

全文数据:

权利要求:

百度查询: 芯启源(南京)半导体科技有限公司 一种基于软件实现的trie结构进行LPM规则压缩存储的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。