【技术实现步骤摘要】
一种基于归并排序算法实现可变规模数量的数据排序系统
[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中获取到的数据进行两两分组,并比较每一组内数据的大小,按照各...
【专利技术属性】
技术研发人员:张多利,葛虎,孙贺云,聂言硕,宋宇鲲,倪伟,
申请(专利权)人:合肥工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。