[发明专利]一种大容量查找表快速排序和查找装置及其实现方法有效
申请号: | 201210090784.2 | 申请日: | 2012-03-30 |
公开(公告)号: | CN102663061A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 张静;赵书鹏 | 申请(专利权)人: | UT斯达康通讯有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 杨天娇 |
地址: | 310052 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 容量 查找 快速 排序 装置 及其 实现 方法 | ||
技术领域
本发明涉及关键字搜索技术领域,特别涉及一种大容量查找表快速排序和查找装置及其实现方法。
背景技术
PW(伪线,Pseudo-Wire)标签用于边缘路由器对之间点对点的连接。在FPGA(现场可编程门阵列,Field Programmable Gate Array)设计中,CPU配置的PW标签、该标签对应的通道号ID存放在查找表中。
传统的一对一查找方法:对于给定值x,从查找表首地址开始比较,若相等,则匹配成功,结束查找。若不相等,则继续与下一地址数据进行比较,直到匹配成功为止。这种方法实现简单,耗用逻辑资源少,但是一对一查找方法虽然实现简单,对于深度为2n的查找表,最多需要查找2n次,浪费太多查找时间,不适用于大容量的查找表搜索。
二分法查找方法:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果x等于当前位置值,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
这种方法相对于传统一对一查找,效率大大提高,对于深度为2n的查找表,最多需要查找n次。二分法查找方法,由于比较数据和计算地址需要时间,因此在查找过程中存在浪费节拍的现象。
常用的标签查找采用的方法是将标签存在多块RAM中进行并行查找,按地址递增方式对每个表项进行查找,但是对于标签量大的情况,这种查找方法耗用太多时间。
为在大容量的查找表中搜索PW标签并提取对应的通道号ID,需要提出一种查找方案,可以使用尽可能少的资源、并尽可能快的速度在大容量的查找表中搜索到匹配项。
发明内容
本发明的目的是提供一种大容量查找表快速排序和查找装置及其实现方法,解决现有查找技术中浪费节拍现象,实现快速排序和查找。
一种大容量查找表快速排序和查找装置,根据CPU指令对大容量查找表进行快速排序和搜索,所述装置包括标签查找模块,排序模块,预排序模块和控制模块,所述的排序模块分别与预排序模块,控制模块以及查找表相连,所述的标签查找模块与排序模块和查找表相连。
其中所述的预排序模块接收CPU配置数据,对CPU配置数据进行预排序,维护一个预排序表;所述控制模块,根据接收到的CPU指令,控制排序模块进行排序操作;所述排序模块包括添加排序模块和删除排序模块,其中添加排序模块根据控制模块指令对查找表进行插入排序,删除排序模块根据控制模块指令对查找表进行删除排序;所述标签查找模块,用于收到查找请求后发起查找申请并进行查找,输出查找结果和查找完成信号。
所述大容量查找表快速排序和查找装置还包括冗余检查模块,所述冗余检查模块与所述控制模块和查找表相连,用于对预排序表和查找表进行冗余检查,若检查到冗余则向CPU发出中断请求。
所述标签查找模块收到查找请求后,向所述排序模块发出查找申请,所述排序模块收到查找申请后,若排序模块正在进行排序操作,则中断当前排序操作,并发出查找同意信号;如果排序模块在收到查找请求时,没有进行排序操作,则直接发出查找同意信号。
收到同意查找信号后,标签查找模块进行标签查找,并输出查找结果;查找结束发出查找完成信号给所述排序模块,排序模块继续之前被中断的排序操作。
一种大容量查找表快速排序和查找方法,其特征在于,包括步骤:
步骤1、对CPU输入数据进行预排序;
步骤2、收到数据排序指令后,对查找表中数据进行排序;
步骤3、收到查找请求,查找模块向排序模块发出查找申请,排序模块收到查找申请后,若排序模块正在进行排序操作,中断当前排序操作,并发出查找同意信号;如果排序模块在收到查找请求时,没有进行排序操作,则直接发出查找同意信号;
步骤4、进行标签查找;
步骤5、输出查找结果和查找完成信号。
如果是添加数据排序,所述的步骤2包括:
步骤2.1.1、则首先在查找表尾部拓展一段无效区间,其长度与待插入数据个数相同;
步骤2.1.2、将预排序表中最大数据标签和查找表中最大数据标签进行比较,若预排序表数据标签较大,则将该数据插入无效区间最后一个地址,无效区间长度减1;若查找表数据较大,则将该数据插入无效区间最后一个地址,并将该数据原地址置为无效,无效区间长度不变,位置向地址小的方向移一个地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于UT斯达康通讯有限公司,未经UT斯达康通讯有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210090784.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:含聚乙烯醇的涂白剂的制备方法
- 下一篇:一种空调电机用防水圈