Unbalanced FIFO sorting for FPGA-based systems

Sorting is an important operation in a myriad of applications. It can contribute substantially to the overall execution time of an application. Dedicated sorting architectures can be used to accelerate applications and/or to reduce energy consumption. In this paper, we propose an efficient sorting unit aiming at accelerating the sort operation in FPGA-based embedded systems. The proposed sorting unit, named Unbalanced FIFO Merge Sorting Unit, is based on a FIFO merger implementation and is easily scalable to handle different data-set sizes. We show results of the proposed sorting unit when isolated and when integrated in a software/hardware solution. When using a Xilinx Virtex-5 SX50T FPGA device, the logic resources for a 32 K-word machine is lower than 1%, and the block RAM usage is about 22%. When compared to a quicksort pure software implementation, our Sorting Unit provides speed-ups from 1.2x to 50x and about 20x when isolated and when integrated in a software/hardware solution, respectively.

[1]  Toshio Nakatani,et al.  AA-Sort: A New Parallel Sorting Algorithm for Multi-Core SIMD Processors , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[2]  Goetz Graefe,et al.  Implementing sorting in database systems , 2006, CSUR.

[3]  Robert Sedgewick,et al.  Algorithms in C - parts 1-4: fundamentals, data structures, sorting, searching (3. ed.) , 1997 .

[4]  Christoforos E. Kozyrakis,et al.  JouleSort: a balanced energy-efficiency benchmark , 2007, SIGMOD '07.

[5]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[6]  Si-Qing Zheng,et al.  An Efficient Parallel VLSI Sorting Architecture , 2000, VLSI Design.

[7]  Behrooz Parhami,et al.  Data-Driven Control Scheme for Linear Arrays: Application to a Stable Insertion Sorter , 1999, IEEE Trans. Parallel Distributed Syst..

[8]  Ezequiel Herruzo,et al.  A New Parallel Sorting Algorithm based on Odd-Even Mergesort , 2007, 15th EUROMICRO International Conference on Parallel, Distributed and Network-Based Processing (PDP'07).

[9]  Masato Edahiro,et al.  Parallelizing fundamental algorithms such as sorting on multi-core processors for EDA acceleration , 2009, 2009 Asia and South Pacific Design Automation Conference.

[10]  Clyde C. W. Robson,et al.  A high speed data acquisition collector for merging and sorting data , 2008, 2008 IEEE Nuclear Science Symposium Conference Record.

[11]  Horácio C. Neto,et al.  Sorting Units for FPGA-Based Embedded Systems , 2008, DIPES.

[12]  Aishy Amer,et al.  An FPGA Architecture of Stable-Sorting on a Large Data Volume : Application to Video Signals , 2007, 2007 41st Annual Conference on Information Sciences and Systems.

[13]  José Francisco Martínez Trinidad,et al.  An FPGA-based parallel sorting architecture for the Burrows Wheeler transform , 2005, 2005 International Conference on Reconfigurable Computing and FPGAs (ReConFig'05).

[14]  Lukás Sekanina,et al.  Evolutionary Design Space Exploration for Median Circuits , 2004, EvoWorkshops.

[15]  Maciej Wielgosz,et al.  FPGA implementation of the dynamic Huffman Encoder , 2006 .

[16]  Bin-Da Liu,et al.  Design of a pipelined and expandable sorting architecture with simple control scheme , 2002, 2002 IEEE International Symposium on Circuits and Systems. Proceedings (Cat. No.02CH37353).