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

一种基于FPGA的堆排序系统及方法 

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

申请/专利权人:泰山学院

摘要:本发明涉及数字集成电路技术领域,具体为一种基于FPGA的堆排序系统及方法,获取待排序的数据,以每x个数据为1组,分别对y组共x×y个数据进行组内排序,得到y组排序数组;选取每一组排序数组中的最大值,构建大顶堆结构,其中的堆顶元素即为x×y个数据中的最大值,取出剩余的数据代替当前堆顶元素重新构建大顶堆结构,得到x×y个数据中的次大值,经依次循环迭代,得到x×y个数据中的正排序数据部分;正排序期间,得到的y组排序数组中,任意一组排序数组中只剩1个数据时,进行反排序;关联正排序数据部分和反排序数据部分,得到最终的排序结果。数据分组之后,以并行组内排序+组间合并排序的方式节省排序时间的消耗。

主权项:1.一种基于FPGA的堆排序系统,其特征在于,包括:分组堆排序模块,具有y个单元处理器,每个单元处理器内部有数据选择器Mux、Heapsort_PEi模块、寄存器Register_PEi和存储器RAM_PEi;数据选择器Mux获取的待排序的数据,以每x个数据为1组,分别对y组共x×y个数据进行组内排序,得到y组排序数组;选择寄存器Register_PEi输出的数据,利用四级Max_PE电路结构的Heapsort_PEi模块,对每一组内的x个数据进行堆排序处理,并存储到存储器RAM_PEi中;合并堆排序模块,包括寄存器Register_Max、寄存器Register_Min、二级Max_M模块和二级Min_M模块,用于根据分组堆排序模块中存储器RAM_PEi的数据,进行合并正反排序,利用得到的y组排序数组进行正排序;正排序期间,得到的y组排序数组中,任意一组排序数组中只剩1个数据时,进行反排序,得到最终的排序结果存于存储器RAM_out中;具体为:选取每一组排序数组中的最大值,构建大顶堆结构,其中的堆顶元素即为x×y个数据中的最大值,取出剩余的数据代替当前堆顶元素重新构建大顶堆结构,得到x×y个数据中的次大值,经依次循环迭代,得到x×y个数据中的正排序数据部分;选取每一组排序数组中的最小值,构建小顶堆结构,其中的堆顶元素即为x×y个数据中的最小值,取出剩余的数据代替当前堆顶元素重新构建小顶堆结构,得到x×y个数据中的次小值,经依次循环迭代,得到x×y个数据中的反排序数据部分;关联正排序数据部分和反排序数据部分,得到最终的排序结果;控制模块,用于协调分组堆排序模块和合并堆排序模块;其中,以每x个数据为1组,分别对y组共x×y个数据进行组内排序,得到y组排序数组,具体为:待排序的数据构造成大顶堆结构,当前堆的根节点为待排序数据中最大的元素;剩余的节点与数据零重新构造大顶堆结构,每次构造的元素仍为x个数据;通过重复迭代,每次构造均获得一个数据的最大值,输出该数据并在待排序数组中补零,最终得到由大到小排序的数组,即为所需的排序数组;所述待排序的数据构造成大顶堆结构,具体为:第一级的输入为三个待排序的数据,输出为三者中的最大值和剩余的两个节点数据,输出的最大值作为一个节点,剩余的两个节点数据作为该最大值的左右子节点;下一级的输入,为前一级输出的两个最大值以及待排序的另一个数据;依次类推,经过多级处理后,每个节点的值都大于或者等于它的左右子节点的值,得到组内x个数据的大顶堆结构。

全文数据:

权利要求:

百度查询: 泰山学院 一种基于FPGA的堆排序系统及方法

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