CN106843803B - 一种基于归并树的全排序加速器及应用 - Google Patents

一种基于归并树的全排序加速器及应用 Download PDF

Info

Publication number
CN106843803B
CN106843803B CN201611222156.XA CN201611222156A CN106843803B CN 106843803 B CN106843803 B CN 106843803B CN 201611222156 A CN201611222156 A CN 201611222156A CN 106843803 B CN106843803 B CN 106843803B
Authority
CN
China
Prior art keywords
read
merger
data
tree
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611222156.XA
Other languages
English (en)
Other versions
CN106843803A (zh
Inventor
李丽
陆沛栋
王堃
潘红兵
李伟
汪伟斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201611222156.XA priority Critical patent/CN106843803B/zh
Publication of CN106843803A publication Critical patent/CN106843803A/zh
Application granted granted Critical
Publication of CN106843803B publication Critical patent/CN106843803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Complex Calculations (AREA)

Abstract

本发明的基于归并树的全排序加速器,包括:主控模块,接收运算信号,并根据所述运算信号确定排序、合并的次数、排序点数以及读写地址;输出控制信号,控制合并的开始和结束;运算单元,由若干比较器组成,根据所述运算信号执行比较逻辑运算,输出中间结果;FIFO存储单元,由若干寄存器组成,接收所述中间结果并存储,根据所述传输信号,执行中间结果的读写操作;主控制器与每一比较器、寄存器形成映射形成一个结点,所有结点形成归并树的处理结构。有益效果:资源开销较小使用更加灵活,同时有良好的并行性来满足高吞吐量系统的需求。

Description

一种基于归并树的全排序加速器及应用
技术领域
本发明涉及全排序数字集成电路设计,尤其涉及一种基于归并树的全排序加速器及应用。
背景技术
排序是一个经典问题, 其功能是将一个无序的数据序列调整为一个有序序列。随着计算机的问世及其蓬勃发展, 排序已成为计算机程序设计中的一种基本运算。在现今的计算机系统中, 花费在排序的时间占系统CP U 运行时间的很大比重。据统计, 在计算机完成的所有工作中有25% -50%涉及到数据的排序, 特别是一些商用计算机, 其批处理系统中15% -70% 的CPU时间用在排序上。排序的研究价值不仅在于它有很重要的实用意义,而且还在于它所解决的问题涉及大量数据元素的相关操作, 因而不可避免地使解决该问题的复杂性和难度增加。各种内、外排序的研究与应用充分证实了这一点。
目前,在数字电路领域多采用较大的排序网络实现较快的归并和基数排序,或者采用消耗资源较少但并行度不高、速度较慢的冒泡和堆排序来实现向量的全排序。一般排序网络需要大量的比较器和寄存器,性能很高但支持的排序点数固定、开销很大,即数字电路设计所消耗的逻辑资源多、芯片面积大。冒泡排序虽然消耗的资源很少,但运算时间会随着数据量的增大指数级地增长。
发明内容
本发明的目的是克服上述背景技术的不足,提供一种基于归并树的排序树加速器,其支持点数可变的、资源消耗较少的、排序性能较好的、支持并行和流水操作的全排序功能,为达到上述目的,本发明的技术方案是这样实现的:
所述基于归并树的全排序加速器,包括:
主控模块,接收运算信号,并根据所述运算信号确定排序、合并的次数、排序点数以及读写地址;输出控制信号,控制合并的开始和结束;
运算单元,由若干比较器组成,根据所述运算信号执行比较逻辑运算,输出中间结果;
FIFO存储单元,由若干寄存器组成,接收所述中间结果并存储,根据所述传输信号,执行中间结果的读写操作;
主控制器与每一比较器、寄存器形成映射形成一个结点,所有结点形成归并树的处理结构,主控模块根据排序点数确定需要调用归并树的次数,并根据运算信号输出传输信号,所述传输信号更改主控模块与FIFO存储单元的互联。
所述基于归并树的全排序加速器的进一步设计在于,所述传输信号在存储单元不满时向FIFO存储单元写入数据;在存储单元不空时向FIFO存储单元读数据。
所述基于归并树的全排序加速器的进一步设计在于,所述主控模块在点数为N时,调用次数为,并且主控模块会根据当前归并次数确定所述读写地址。
所述基于归并树的全排序加速器的进一步设计在于,还包括读写控制模块,所述中间结果通过读写控制模块进行传输,读写控制模块包括:
读数据控制器,根据所述传输信号控制SRAM存储单元的读数据使能信号和读数据地址;
写数据控制器,根据所述归并树的根结点对应寄存器中的中间结果,控制SRAM的写数据使能信号和写数据地址 ;
SRAM存储单元,根据写数据使能信号、写数据地址进行写数据操作,根据读数据使能信号和读数据地址进行读数据操作;
内存交换开关,根据读数据使能信号与写数据使能信号变换主控制器与SRAM存储单元间的读写接口。
所述基于归并树的全排序加速器的进一步设计在于,所述归并树为一个满二叉树结构。
所述基于归并树的全排序加速器的进一步设计在于,所述运算单元由7个比较器组成。
所述基于归并树的全排序加速器的进一步设计在于,所述归并树为一个3层的满二叉树结构,归并树的终端结点存储的为FIFO存储单元对应于当前终端结点的中间结果,并且终端结点将该中间结果作为对应比较器的输入值,其余结点存储的为当前结点的子结点对应比较器的输出值,所述的终端结点存储的中间结果被赋给父结点的寄存器时,形成所述传输信号,向FIFO存储单元发送读数据请求。
如所述的基于归并树的全排序加速器,提供一种基于归并树的全排序加速器的应用,所述全排序加速器可应用于任意点数的快速全排序。
本发明的有益效果为:
本发明提供的基于归并树的全排序加速器的有益效果在于资源开销较小使用更加灵活,同时有良好的并行性来满足高吞吐量系统的需求;归并树的结构在读数据控制器的协调下能够在的时间复杂度能实现N点向量数据的全排序。
附图说明
图1是整个全排序加速器的结构示意图。
图2是由7个比较器组成的归并树的结构示意图。
图3是由7个比较器组成的归并树的原理示意图。
图4是基于归并树的全排序加速器的数据流示意图。
图5是读数据控制器支持的功能示意图。
图6基于归并树的全排序加速器与冒泡排序和堆排序的性能对照示意表。
具体实施方式
下面结合附图和具体实施方式对本申请作进一步详细的说明。
如图1,基于归并树的全排序加速器,主要由主控模块、运算单元以及FIFO存储单元组成。主控模块,接收运算信号,并根据运算信号确定排序、合并的次数、排序点数以及读写地址;输出控制信号,控制合并的开始和结束;运算单元,由若干比较器组成,根据运算信号执行比较逻辑运算,输出中间结果;FIFO存储单元,由若干寄存器组成,接收中间结果并存储,根据传输信号,执行中间结果的读写操作。主控制器与每一比较器、寄存器形成映射形成一个结点,所有结点形成归并树的处理结构,主控模块根据排序点数确定需要调用归并树的次数,并根据运算信号输出传输信号,传输信号更改主控模块与FIFO存储单元的互联。
上述传输信号在存储单元不满时向FIFO存储单元写入数据;在存储单元不空时向FIFO存储单元读数据。
基于归并树的全排序加速器的进一步设计在于,主控模块在点数为N时,调用次数为,并且主控模块会根据当前归并次数确定读写地址。
本实施例的基于归并树的全排序加速器还包括读写控制模块,中间结果通过读写控制模块进行传输,读写控制模块主要由读数据控制器、写数据控制器、SRAM存储单元以及内存交换开关组成。读数据控制器,根据传输信号控制SRAM存储单元的读数据使能信号和读数据地址;写数据控制器,根据归并树的根结点对应寄存器中的中间结果,控制SRAM的写数据使能信号和写数据地址;SRAM存储单元,根据写数据使能信号、写数据地址进行写数据操作,根据读数据使能信号和读数据地址进行读数据操作;内存交换开关,根据读数据使能信号与写数据使能信号变换主控制器与SRAM存储单元间的读写接口。
如图1所示的基于归并树的全排序加速器,提供一种基于归并树的全排序加速器的应用,全排序加速器可应用于任意点数的快速全排序。
以下给出一具体示例,该示例中运算单元由7个比较器组成。归并树为一个3层的满二叉树结构,归并树的终端结点存储的为FIFO存储单元对应于当前终端结点的中间结果,并且终端结点将该中间结果作为对应比较器的输入值,其余结点存储的为当前结点的子结点对应比较器的输出值,归并树的终端结点存储的中间结果被赋给父结点的寄存器时,形成传输信号,向FIFO存储单元发送读数据请求。在整个方案的主要步骤如图4所示:
(1)将N个数据均匀放入8个存储体(存储体1~存储体8)中;
(2)每次读取每个存储体的一个数进行排序,得到N/8个数据长度为8的有序向量,均匀放入8个存储体(存储体9~存储体16)中;
(3)每次读取每个存储体(存储体9~存储体16)的一个8长度的有序向量进行合并。得到N/64个数据长度为64的有序向量,均匀放入8个存储体(存储体1~存储体8)中;
(4)重复上述(2),(3)步骤,直到读取每个存储体的一个N/8长度的有序向量进行合并。得到1个数据长度为N的有序向量,这就是最终的结果。
主控模块在图1中用①标明。主控模块负责以下三个功能:根据点数确定排序/合并的次数;更改控制单元与存储体的互联;控制合并的开始和结束。
归并树在图1中用⑤标明,其结构如图2所示。其中寄存器的具体结构如下:其中最高位为1位有效信号,第33到63位存放数据在原向量中的位置,低32位存放原数据。
归并树的具体工作流程如图3所示,(1)一个二叉树的两个子结点的数据进入比较器,根据比较器结果确定这个二叉树的结点存入较大(小)的数,以及它在原向量中的位置。(2)一旦最上面的叶结点的数据成为比较器输出,它的原位置的最高位就置为0,表示向外请求读入新数据。(3)一旦一个结点成为比较器输出,它的所有子结点就向下推进。整个流程实现了8个有序序列的归并。
在图1中的④标明了FIFO,FIFO在不满时向读数据控制器发送读数据请求并写入数据;在不空时则根据归并树的读数据请求来读出数据。这样保证在归并树请求数据时能够立刻得到数据。
读数据控制器在图1中用②标明。它主要负责根据当前需要归并的点数和FIFO的空满情况来向FIFO写数据。对于归并的点数,它支持如图5的两种存储体数据不对齐的情况:(a)每个存储体每次合并m点,但有几个存储体k多合并一次;(b)每个存储体合并一次,但有一个存储体合并的点数与其他不同。对于FIFO只要FIFO不满并且给出的点数还没达到归并的点数,就向SRAM请求读数据并写入FIFO中。
写数据控制器在图1中用③来标明。写数据控制器根据归并树当前的归并次数来确定将结果数据写入的存储体位置,从而保证结果数据以固定长度为单位均匀写入各个存储体中,以便下次并行读取。
内存交换开关在图1中用⑥来标明。内存交换开关负责根据当前的归并次数切换所需读写的存储体。
为证明进一步验证本设计在实际应用中的性能,以一款冒泡排序和堆排序作为参照,说明本发明的优势。
本实施例完成的设计可支持长度为8-32K的浮点数全排序,在40nm CMOS工艺下的工作主频达1GHz。图6展示了本实施例与传统冒泡排序和堆排序的性能对照。可见本设计的基于归并树的全排序加速器在实施应用中有很好的性能优势,并随着序列长度的增加性能优势越明显,序列长度为32K点时与堆排序的加速比可达到2.76,与冒泡排序的加速比可达3016。
本发明介绍了一种全排序数字集成电路设计。其特点是速度快、点数灵活可变、所用资源少(7个比较器),在数据量较大的数字信号处理中如数据检索,雷达信号分析等能发挥重要作用。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (8)

1.一种基于归并树的全排序加速器,其特征在于包括:
主控模块,接收运算信号,并根据所述运算信号确定排序、合并的次数、排序点数以及读写地址;输出控制信号,控制合并的开始和结束;
运算单元,由若干比较器组成,根据所述运算信号执行比较逻辑运算,输出中间结果;
FIFO存储单元,由若干寄存器组成,接收所述中间结果并存储,根据所述控制信号,执行中间结果的读写操作;
主控制器与每一比较器、寄存器形成映射形成一个结点,所有结点形成归并树的处理结构,主控模块根据排序点数确定需要调用归并树的次数,并根据运算信号输出传输信号,所述传输信号更改主控模块与FIFO存储单元的互联。
2.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,所述传输信号在存储单元不满时向FIFO存储单元写入数据;在存储单元不空时向FIFO存储单元读数据。
3.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,主控模块在点数为N时,调用次数为log8N,并且主控模块会根据当前归并次数确定所述读写地址。
4.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,还包括读写控制模块,所述中间结果通过读写控制模块进行传输,读写控制模块包括:读数据控制器,根据所述传输信号控制SRAM存储单元的读数据使能信号和读数据地址;
写数据控制器,根据所述归并树的根结点对应寄存器中的中间结果,控制SRAM的写数据使能信号和写数据地址;
SRAM存储单元,根据写数据使能信号、写数据地址进行写数据操作,根据读数据使能信号和读数据地址进行读数据操作;
内存交换开关,根据读数据使能信号与写数据使能信号变换主控制器与SRAM存储单元间的读写接口。
5.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,所述归并树为一个满二叉树结构。
6.根据权利要求5所述的基于归并树的全排序加速器,其特征在于,所述运算单元由7个比较器组成。
7.根据权利要求6所述的基于归并树的全排序加速器,其特征在于,所述归并树为一个3层的满二叉树结构,归并树的终端结点存储的为FIFO存储单元对应于当前终端结点的中间结果,并且终端结点将该中间结果作为对应比较器的输入值,其余结点存储的为当前结点的子结点对应比较器的输出值,所述的终端结点存储的中间结果被赋给父结点的寄存器时,形成所述传输信号,向FIFO存储单元发送读数据请求。
8.如权利要求1-7任一项所述的基于归并树的全排序加速器,其特征在于所述全排序加速器可应用于任意点数的快速全排序。
CN201611222156.XA 2016-12-27 2016-12-27 一种基于归并树的全排序加速器及应用 Active CN106843803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611222156.XA CN106843803B (zh) 2016-12-27 2016-12-27 一种基于归并树的全排序加速器及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611222156.XA CN106843803B (zh) 2016-12-27 2016-12-27 一种基于归并树的全排序加速器及应用

Publications (2)

Publication Number Publication Date
CN106843803A CN106843803A (zh) 2017-06-13
CN106843803B true CN106843803B (zh) 2019-04-23

Family

ID=59135754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611222156.XA Active CN106843803B (zh) 2016-12-27 2016-12-27 一种基于归并树的全排序加速器及应用

Country Status (1)

Country Link
CN (1) CN106843803B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579332B1 (en) * 2018-08-31 2020-03-03 International Business Machines Corporation Hardware sort accelerator sharing first level processor cache
CN109766074B (zh) * 2018-12-05 2021-04-13 西安电子科技大学 一种数据排序电路及排序方法
CN112947890B (zh) * 2021-03-09 2021-11-02 中科驭数(北京)科技有限公司 一种归并排序方法及装置
CN113076312B (zh) * 2021-03-11 2022-11-18 中科驭数(北京)科技有限公司 归并树形排序装置、排序系统及排序方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514826A (en) * 1981-05-18 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Relational algebra engine
EP0244958A3 (en) * 1986-04-09 1989-10-25 Howard B. Demuth Sorter method and apparatus using multiple column merger
US5089985A (en) * 1988-04-07 1992-02-18 International Business Machines Corporation System and method for performing a sort operation in a relational database manager to pass results directly to a user without writing to disk
US5142687A (en) * 1989-06-30 1992-08-25 Digital Equipment Corporation Sort accelerator with rebound sorter repeatedly merging sorted strings
CN103226464A (zh) * 2013-03-29 2013-07-31 江苏复芯物联网科技有限公司 一种归并排序结构
CN103605576B (zh) * 2013-11-25 2017-02-08 华中科技大学 一种基于多线程的MapReduce执行系统
CN105512179B (zh) * 2015-11-25 2017-06-09 中国科学院计算技术研究所 硬件实现的数据排序装置、方法及数据处理芯片

Also Published As

Publication number Publication date
CN106843803A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
CN106843803B (zh) 一种基于归并树的全排序加速器及应用
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
Norollah et al. RTHS: A low-cost high-performance real-time hardware sorter, using a multidimensional sorting algorithm
CN104834484B (zh) 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法
CN102163141A (zh) 实现数字信号处理器的寻址模块结构
CN103324765A (zh) 一种基于列存储的多核并行数据查询优化方法
CN106598743A (zh) 一种基于mpi并行求信息系统属性约简的方法
CN102141974A (zh) 一种多核处理器核间通信方法及其电路结构
CN104615684A (zh) 一种海量数据通信并发处理方法及系统
CN104731729A (zh) 一种基于异构系统的表连接优化方法、cpu和加速器
CN109828975A (zh) 一种基于区块链的大规模快速账本存取系统
CN205507633U (zh) 一种基于FPGA的高性能运算PCI-e加速卡
CN104216988A (zh) 分布式大数据的ssd磁盘和hdd磁盘混合存储方法
Papaphilippou et al. An adaptable high-throughput FPGA merge sorter for accelerating database analytics
CN104636814A (zh) 一种随机森林模型的优化方法及系统
CN104537003A (zh) 一种Hbase数据库的通用高性能数据写入方法
Prasad et al. Memristive data ranking
CN113568572B (zh) 一种基于固态硬盘的数据库并行排序连接系统
CN105095255A (zh) 一种数据索引创建方法及装置
CN100458973C (zh) 高速流水线中长延时多端口sram的快速访问方法
CN110070100A (zh) 一种多因子集成的农业气象离群检测方法及装置
CN105608046A (zh) 基于MapReduce编程模型的多核处理器架构
CN110618963A (zh) 一种计算与存储融合的异构计算硬件加速系统及方法
CN103744899A (zh) 一种基于分布式环境的海量数据快速分类方法
WO2020192291A1 (zh) 一种生成统计信息的方法、系统以及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant