[发明专利]一种双并发预读的高性能归并排序方法及应用有效
申请号: | 202010467619.9 | 申请日: | 2020-05-28 |
公开(公告)号: | CN111722829B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 王成亮;官国飞;李春鹏;李澄;杨庆胜;宋庆武;蒋锋 | 申请(专利权)人: | 江苏方天电力技术有限公司 |
主分类号: | G06F7/24 | 分类号: | G06F7/24 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 田凌涛 |
地址: | 210036 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 性能 归并 排序 方法 应用 | ||
1.一种双并发预读的高性能归并排序方法,其特征在于,基于预读控制模块连接待排序队列模块与数据寄存模块,并结合比较单元、输出控制模块,实现对待排序队列模块中的待排序对象进行归并排序,所述方法包括如下步骤:
步骤1、针对待排序队列模块中的待排序队列A和待排序队列B,预读控制模块按照顺序从待排序队列A中读取待排序对象并送入数据寄存模块的A通道的寄存器中,按照顺序从待排序队列B中读取待排序对象并送入数据寄存模块的B通道的寄存器中;A通道的寄存器个数和B通道的寄存器个数相等;所述待排序队列A和待排序队列B中的待排序对象已按同类型属性进行升序或降序排列;
步骤2、比较单元中的多个比较器根据设定的比较规则,对A通道的寄存器中的对象和B通道的寄存器中的对象按同类型属性进行比较,获得一组比较结果;
步骤3、输出控制模块根据比较单元获取的比较结果,将满足设定的排序规则的对象输出到归并结果存储队列中;
步骤4、预读控制模块检测待排序队列A和待排序队列B中的待排序对象是否全部完成排序,若是,等待下一轮的归并排序,否则,跳转至步骤1。
2.根据权利要求1所述的双并发预读的高性能归并排序方法,其特征在于,所述对象包括数据、指令。
3.根据权利要求1所述的双并发预读的高性能归并排序方法,其特征在于,所述同类型属性为优先级。
4.根据权利要求1所述的双并发预读的高性能归并排序方法,其特征在于,所述数据寄存模块的A通道的寄存器包括寄存器A_1和寄存器A_2,所述数据寄存模块的B通道的寄存器包括寄存器B_1和寄存器B_2;所述比较单元中包括3个比较器。
5.根据权利要求4所述的双并发预读的高性能归并排序方法,其特征在于,在步骤2中所述的设定的比较规则包括:
三个比较器分别对寄存器A_1和寄存器B_1中存储的对象按同类型属性进行比较,对寄存器A_2和寄存器B_1中存储的对象按同类型属性进行比较,对寄存器A_1和寄存器B_2中存储的对象按同类型属性进行比较:
当A_1中存储的对象大于B_1中存储的对象时,比较结果sel[2]=1,否则,比较结果sel[2]=0;
当A_2中存储的对象大于B_1中存储的对象时,比较结果sel[0]=1,否则,比较结果sel[0]=0;
当A_1中存储的对象大于B_2中存储的对象时,比较结果sel[1]=1,否则,比较结果sel[1]=0。
6.根据权利要求4所述的双并发预读的高性能归并排序方法,其特征在于,在步骤3中所述的设定的排序规则包括:
若sel[2]=1且sel[1]=1且sel[0]=1,把寄存器A_1中存储的对象赋值给T1,寄存器A_2中存储的对象赋值给T2;
若sel[2]=1且sel[1]=1且sel[0]=0,把寄存器A_1中存储的对象赋值给T1,寄存器B_1中存储的对象赋值给T2;
若sel[2]=0且sel[1]=1且sel[0]=0,把寄存器B_1中存储的对象赋值给T1,寄存器A_1中存储的对象赋值给T2;
若sel[2]=0且sel[1]=0且sel[0]=0,把寄存器B_1中存储的对象赋值给T1,寄存器B_2中存储的对象赋值给T2;
其中,T1与T2为输出控制模块输出的两个满足预设的排序规则的对象,所述T1的输出顺序优先于T2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏方天电力技术有限公司,未经江苏方天电力技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010467619.9/1.html,转载请声明来源钻瓜专利网。