一种基于归并排序算法实现可变规模数量的数据排序系统技术方案

技术编号:34241369 阅读:91 留言:0更新日期:2022-07-24 09:20
本申请公开了一种基于归并排序算法实现可变规模数量的数据排序系统,该数据排序系统用于对外部存储模块中的原始数据进行归并排序,系统中的加速模块用于采用数据比较的方式,将获取到的原始数据进行分组排序,记作有序子序列数据;数据输出模块用于将有序子序列数据输出至外部存储模块;归并模块用于获取外部存储模块中的有序子序列数据,并采用循环的方式,对获取到的有序子序列数据进行归并运算,将归并后的数据记作归并排序数据;数据输出模块还用于将归并排序数据输出至外部存储模块。通过本申请中的技术方案,实现了对大批量的数据在有限的本地存储空间下进行快速排序,并降低资源消耗、提高数据排序速度。提高数据排序速度。提高数据排序速度。

A data sorting system with variable size and quantity based on merge sorting algorithm

【技术实现步骤摘要】
一种基于归并排序算法实现可变规模数量的数据排序系统


[0001]本申请涉及数据处理的
,具体而言,涉及一种基于归并排序算法实现可变规模数量的数据排序系统。

技术介绍

[0002]在数据处理、图像处理、机器学习等场景中,数据排序都是基本的数据处理问题。据统计,在计算机完成的所有工作中,有25%~50%的工作内容涉及到数据排序。除此之外,随着机器学习、人工智能等技术的发展,对数据排序速度以及排序数量的要求越来越高。
[0003]相比于软件,利用FPGA进行硬件加速可以显著提升数据排序速度,但是常规的FPGA硬件电路(如FPGA排序器)对大批量且无序的原始数据进行排序时,由于芯片内无法分出大量存储空间用于存储这些数据,因此,在对待排序的数据进行比较时,通常用RAM或者FIFO做暂存。
[0004]而在这种FPGA硬件电路进行数据比较的模式下,就会涉及到对存储模块的持续读写控制,不仅增加了FPGA硬件电路数据排序实现的控制逻辑复杂性,而且在持续读写数据的过程中还需要花费额外的时间,降低了数据排序的效率。
>
技术实现思路
...

【技术保护点】

【技术特征摘要】
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中获取到的数据进行两两分组,并比较每一组内数据的大小,按照各...

【专利技术属性】
技术研发人员:张多利葛虎孙贺云聂言硕宋宇鲲倪伟
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

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

1