[发明专利]一种基于归并排序算法实现可变规模数量的数据排序系统在审
申请号: | 202210556207.1 | 申请日: | 2022-05-20 |
公开(公告)号: | CN114780151A | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 张多利;葛虎;孙贺云;聂言硕;宋宇鲲;倪伟 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30 |
代理公司: | 北京律谱知识产权代理有限公司 11457 | 代理人: | 孟德洲 |
地址: | 230000 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 归并 排序 算法 实现 可变 规模 数量 数据 系统 | ||
1.一种基于归并排序算法实现可变规模数量的数据排序系统,所述数据排序系统用于对外部存储模块中的原始数据进行归并排序,其特征在于,所述系统包括:加速模块(40),归并模块(20)以及数据输出模块(50);
所述加速模块(40)用于采用数据比较的方式,将获取到的所述原始数据进行分组排序,记作有序子序列数据;
所述数据输出模块(50)用于将所述有序子序列数据输出至所述外部存储模块;
所述归并模块(20)用于获取所述外部存储模块中的有序子序列数据,并采用循环的方式,对获取到的有序子序列数据进行归并运算,将归并后的数据记作归并排序数据;
所述数据输出模块(50)还用于将所述归并排序数据输出至所述外部存储模块。
2.如权利要求1所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,所述系统还包括:控制模块(10)以及缓存模块(30);
所述控制模块(10)用于根据接收到的配置信息,确定读写数据的起始地址、结束地址以及归并层数;
所述缓存模块(30)用于根据所述起始地址、所述结束地址,从所述外部存储模块中获取所述原始数据,并将所述原始数据发送至所述加速模块(40)。
3.如权利要求1所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,所述加速模块(40)包括:RAM阵列,流水线模块以及归并树模块;
所述流水线模块的两侧分别设置有一个RAM阵列,所述流水线模块中设置有十级流水,所述流水线模块用于采用数据比较以及查找表的编码排序的方式,对获取到的所述原始数据进行分组排序;
所述归并树模块用于对分组排序后的数据进行归并,得到所述有序子序列数据。
4.如权利要求3所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,所述加速模块(40)还用于根据所述RAM阵列的缓冲大小,获取所述原始数据。
5.如权利要求3所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,所述RAM阵列包括第一RAM以及第二RAM,所述第一RAM以及所述第二RAM中含8位寄存器,所述流水线模块被配置为:
步骤11,按先后顺序,将从所述第一RAM中获取到的数据进行两两分组,并比较每一组内数据的大小,按照各组的顺序,依次将组内数值大的数据存储在第二RAM的奇数位寄存器内,将组内数值小的数据存储在第二RAM的偶数位寄存器内,其中,所述第一RAM以及所述第二RAM中寄存器的位数从0开始依次编号;
步骤12,分别将所述第二RAM的奇数位寄存器、偶数位寄存器内的数据进行两两分组,并比较分组后各组数据的大小,对所述第一RAM进行复用,将组内数值大的数据存储在所述第一RAM的第一寄存器内,将组内数值小的数据存储在所述第一RAM的第二寄存器内,其中,所述第一寄存器为第一、第二、第五、第六位寄存器,所述第二寄存器为第三、第四、第七第八位寄存器;
步骤13,对所述第二RAM进行复用,分别比较所述第一RAM中第二、第三位寄存器以及第六、第七位寄存器中数据的大小,将数值大的数据存储在所述第二RAM的第二、第六位寄存器,将数值小的数据存储在所述第二RAM的第三、第七位寄存器,并将所述第一RAM中第一、第四、第五、第八位寄存器中的数据依次写入所述第二RAM的第一、第四、第五、第八位寄存器;
步骤14,采用查找表的编码排序的方式,对所述第二RAM中的数据依次进行编码、查找和译码,生成分组排序后的数据。
6.如权利要求2所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,
所述控制模块(10)还用于采用循环的方式,按顺序从所述外部存储模块中读取任一长度的有序子序列数据,并将获取到的任一长度的有序子序列数据发送至所述缓存模块(30),其中,下一次获取的数据长度为上一次获取的数据长度的两倍;
所述缓存模块(30)还用于所述控制模块(10)获取到的任一长度的有序子序列数据发送至所述归并模块(20)。
7.如权利要求6所述的基于归并排序算法实现可变规模数量的数据排序系统,其特征在于,所述控制模块(10)第一次读取所述有序子序列数据的长度小于有序子序列数据的总长度,
所述控制模块(10)还被配置为:
当判定所述数据输出模块(50)输出的所述归并排序数据的总长度等于所述有序子序列数据的总长度时,确定数据写回起始地址,
其中,所述数据写回起始地址用于确定所述归并排序数据在所述外部存储模块中的存储位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210556207.1/1.html,转载请声明来源钻瓜专利网。