CN106843803A - 一种基于归并树的全排序加速器及应用 - Google Patents
一种基于归并树的全排序加速器及应用 Download PDFInfo
- Publication number
- CN106843803A CN106843803A CN201611222156.XA CN201611222156A CN106843803A CN 106843803 A CN106843803 A CN 106843803A CN 201611222156 A CN201611222156 A CN 201611222156A CN 106843803 A CN106843803 A CN 106843803A
- Authority
- CN
- China
- Prior art keywords
- read
- merger
- data
- signal
- memory cell
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 238000003860 storage Methods 0.000 claims description 16
- 230000004075 alteration Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000012772 sequence design Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000005587 bubbling Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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时,调用次数为,并且主控模块会根据当前归并次数确定所述读写地址。
4.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,还包括读写控制模块,所述中间结果通过读写控制模块进行传输,读写控制模块包括:
读数据控制器,根据所述传输信号控制SRAM存储单元的读数据使能信号和读数据地址;
写数据控制器,根据所述归并树的根结点对应寄存器中的中间结果,控制SRAM的写数据使能信号和写数据地址 ;
SRAM存储单元,根据写数据使能信号、写数据地址进行写数据操作,根据读数据使能信号和读数据地址进行读数据操作;
内存交换开关,根据读数据使能信号与写数据使能信号变换主控制器与SRAM存储单元间的读写接口。
5.根据权利要求1所述的基于归并树的全排序加速器,其特征在于,所述归并树为一个满二叉树结构。
6.根据权利要求5所述的基于归并树的全排序加速器,其特征在于,所述运算单元由7个比较器组成。
7.根据权利要求6所述的基于归并树的全排序加速器,其特征在于,所述归并树为一个3层的满二叉树结构,归并树的终端结点存储的为FIFO存储单元对应于当前终端结点的中间结果,并且终端结点将该中间结果作为对应比较器的输入值,其余结点存储的为当前结点的子结点对应比较器的输出值,所述的终端结点存储的中间结果被赋给父结点的寄存器时,形成所述传输信号,向FIFO存储单元发送读数据请求。
8.如权利要求1-7任一项所述的基于归并树的全排序加速器,提供一种基于归并树的全排序加速器的应用,其特征在于所述全排序加速器可应用于任意点数的快速全排序。
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 true CN106843803A (zh) | 2017-06-13 |
CN106843803B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766074A (zh) * | 2018-12-05 | 2019-05-17 | 西安电子科技大学 | 一种数据排序电路及排序方法 |
CN110874425A (zh) * | 2018-08-31 | 2020-03-10 | 国际商业机器公司 | 共享第一级处理器高速缓存的硬件排序加速器 |
CN112947890A (zh) * | 2021-03-09 | 2021-06-11 | 中科驭数(北京)科技有限公司 | 一种归并排序方法及装置 |
CN113076312A (zh) * | 2021-03-11 | 2021-07-06 | 中科驭数(北京)科技有限公司 | 归并树形排序装置、排序系统及排序方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0066061A2 (en) * | 1981-05-18 | 1982-12-08 | Kabushiki Kaisha Toshiba | Relational algebra engine |
EP0244958A2 (en) * | 1986-04-09 | 1987-11-11 | Howard B. Demuth | Sorter method and apparatus using multiple column merger |
EP0336584A2 (en) * | 1988-04-07 | 1989-10-11 | International Business Machines Corporation | Sort merge output |
DE69032828T2 (de) * | 1989-06-30 | 1999-07-01 | Digital Equipment Corp., Maynard, Mass. | Sortierbeschleuniger, der einen in beide Richtungen arbeitenden Sortierer als Mischer verwendet |
CN103226464A (zh) * | 2013-03-29 | 2013-07-31 | 江苏复芯物联网科技有限公司 | 一种归并排序结构 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
-
2016
- 2016-12-27 CN CN201611222156.XA patent/CN106843803B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0066061A2 (en) * | 1981-05-18 | 1982-12-08 | Kabushiki Kaisha Toshiba | Relational algebra engine |
EP0244958A2 (en) * | 1986-04-09 | 1987-11-11 | Howard B. Demuth | Sorter method and apparatus using multiple column merger |
EP0336584A2 (en) * | 1988-04-07 | 1989-10-11 | International Business Machines Corporation | Sort merge output |
DE69032828T2 (de) * | 1989-06-30 | 1999-07-01 | Digital Equipment Corp., Maynard, Mass. | Sortierbeschleuniger, der einen in beide Richtungen arbeitenden Sortierer als Mischer verwendet |
CN103226464A (zh) * | 2013-03-29 | 2013-07-31 | 江苏复芯物联网科技有限公司 | 一种归并排序结构 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874425A (zh) * | 2018-08-31 | 2020-03-10 | 国际商业机器公司 | 共享第一级处理器高速缓存的硬件排序加速器 |
CN110874425B (zh) * | 2018-08-31 | 2023-11-28 | 北京字跳网络技术有限公司 | 共享第一级处理器高速缓存的硬件排序加速器 |
CN109766074A (zh) * | 2018-12-05 | 2019-05-17 | 西安电子科技大学 | 一种数据排序电路及排序方法 |
CN112947890A (zh) * | 2021-03-09 | 2021-06-11 | 中科驭数(北京)科技有限公司 | 一种归并排序方法及装置 |
CN112947890B (zh) * | 2021-03-09 | 2021-11-02 | 中科驭数(北京)科技有限公司 | 一种归并排序方法及装置 |
CN113076312A (zh) * | 2021-03-11 | 2021-07-06 | 中科驭数(北京)科技有限公司 | 归并树形排序装置、排序系统及排序方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106843803B (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565123B2 (en) | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module | |
Kim et al. | In-storage processing of database scans and joins | |
Papaphilippou et al. | Accelerating database systems using FPGAs: A survey | |
CN106843803B (zh) | 一种基于归并树的全排序加速器及应用 | |
Jun et al. | Terabyte sort on FPGA-accelerated flash storage | |
CN104834484B (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
WO2021089009A1 (zh) | 数据流重构方法及可重构数据流处理器 | |
CN103440246A (zh) | 用于MapReduce的中间结果数据排序方法及系统 | |
Chen et al. | Fpga-accelerated samplesort for large data sets | |
Alam et al. | Sorting in memristive memory | |
Prasad et al. | Memristive data ranking | |
CN107315694A (zh) | 一种缓存一致性管理方法及节点控制器 | |
Papaphilippou et al. | An adaptable high-throughput FPGA merge sorter for accelerating database analytics | |
Imani et al. | CAP: Configurable resistive associative processor for near-data computing | |
CN101894096A (zh) | 一种适用于cmmb和dvb-h/t的fft运算电路结构 | |
Paul et al. | MAHA: An energy-efficient malleable hardware accelerator for data-intensive applications | |
CN104636814A (zh) | 一种随机森林模型的优化方法及系统 | |
WO2015094721A2 (en) | Apparatuses and methods for writing masked data to a buffer | |
CN100458973C (zh) | 高速流水线中长延时多端口sram的快速访问方法 | |
Li et al. | ReCSA: a dedicated sort accelerator using ReRAM-based content addressable memory | |
CN105955896A (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
CN113568572A (zh) | 一种基于固态硬盘的数据库并行排序连接系统 | |
Paul et al. | Energy-efficient hardware acceleration through computing in the memory | |
Shi et al. | Accelerating intersection computation in frequent itemset mining with fpga | |
Chen et al. | GCIM: Towards Efficient Processing of Graph Convolutional Networks in 3D-Stacked Memory |
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 |