An Enhanced an Efficient Sorting Architecture for High Throughput
Total Page:16
File Type:pdf, Size:1020Kb
ISSN 2319-8885 Vol.04,Issue.04 February-2015, Pages:0691-0695 www.ijsetr.com An Enhanced an Efficient Sorting Architecture for High Throughput Applications KAGITALA NAGARAJU1, K.NARASIMHAREDDY2 1PG Scholar, Dept of ECE (VLSI&ES)¸ QIS College of Engineering and Technology, Ongole, AP, India, E-mail: [email protected]. 2Assistant Professor, Dept of ECE, QIS College of Engineering and Technology, Ongole, AP, India, E-mail: [email protected]. Abstract: Sorting is an important operation in a wide range of applications such as data base, digital signal processing, searching and network processing. These sorting modules are implemented using either ASICs or FPGAs to meet required performance. Generally the inputs of sorting modules are integers, floating point numbers or data values. This paper focuses on the design of partial sorting and max-set-selection units. We also investigate the design and VLSI implementations of the partial sorting and max-set-selection units with low latency, high throughput and modest resource requirements. Modular techniques for designing the sorting modules with small and regular building blocks connected in a modular fashion, because of reducing the verification time and simplifying the design process. In this paper, we propose parallel sorting algorithms for finding/ sorting M largest values from N inputs and then design scalable architectures based on proposed algorithms. For sorting the values the bubble sorting technique also proposed. Keywords: Sorting, Modular Techniques, Partial Sorting, Max-Set-Selection, Sorting Modules, FPGAs. I. INTRODUCTION computing [8], searching, scheduling [9], pattern In the past, the major concerns of the VLSI were area, recognition, robotics [10], image and video processing, performance, cost and reliability. The sorting problem has and high-energy physics (HEP) [4]. For applications that been investigated under various parallel architectures, require very high-speed sorting, hardware sorting units since utilizing many functional units to sort concurrently are often implemented using either ASICs or FPGAs to can improve performance. Based on the target meet performance requirements[7]. Based on target applications, hardware sorting units vary greatly not only applications, hardware sorting units vary greatly not only in architecture but also in number of inputs and width of in architecture but also in the number of inputs and the the inputs they process. In order to achieve high width of inputs that they can process. For instance, only 9 throughput rate, today’s computer perform several to 25 inputs need to be processed in certain filters, while operations simultaneously. Not only input operations the number of inputs can vary from 25 to 81 (or even performed concurrently with computing, but also in multi higher) in certain image processing applications [8]. High processors several computing operations are done speed sorters on FPGAs in HEP applications deal with concurrently. In previous research of sorting units, it must 128 to 256 data samples in 100-ns processing cycles [4], produce all of its input in sorted order. But in most of the [9]. Thousands of inputs are sorted in video [3] and applications, all the given inputs need not to be sorted. database applications [3]. For example, in HEP applications, only the M most energetic particles are considered. Similarly in digital In general, inputs can be b-bit integers (8 _< b _< 64), signal processing applications, only the M strongest signal floating-point numbers, or even compressed data values. need to be analyzed. This paper focuses on partial sorting Most previous research on sorting units has focused on and max-set-selection units that discard small inputs as the situation in which the sorting unit must produce all of early as possible to reduce the sorting units latency and its inputs in sorted (increasing or decreasing) order. In hardware complexity. many applications, however, only the M largest (or smallest) output values need to be selected from a total of Batcher introduced the bitonic sorting network and the N input values, where M <N. For example, in many HEP odd-even sorting network which can sort N keys in applications, only the M most energetic particles may be O(log2 N) time, and with O(N log2 N) comparators. of interest. Similarly, in signal processing applications, SORTING is an important operation in a wide range of only the M strongest signals or M closest points in space applications including data mining, databases [1], [2], [3], may need to be analyzed. A sorting network is a digital signal processing [4], [5], network processing, collection of interconnected compare-and-exchange communication switching systems [6], [7], scientific (CAE) block. Sorting networks consist of comparators, Copyright @ 2015 IJSETR. All rights reserved. KAGITALA NAGARAJU, K.NARASIMHAREDDY which are in fact hardware implementations of the CE called shuffling. For sorting, either a weak order, operation. A comparator has two inputs and two outputs. "should not come after", can be specified, or a strict Depending on the sense of ordering, comparators can be weak order, "should come before" (specifying one of two kinds as shown in fig.1 (a), (b). defines also the other, the two are the complement of the inverse of each other, see operations on binary relations). For the sorting to be unique, these two are restricted to a total order and a strict total order, respectively. Sorting n-tuples (depending on context also called e.g. records consisting of fields) can be done based on one or more of its components. More generally objects can be sorted based on a property. Such a component or property is called a sort key. For example, the items are books, the sort key is the title, subject or author, and the order is alphabetical. Fig.1. comparators. A new sort key can be created from two or more sort keys by lexicographical order. The first is then Sorting is any process of arranging items according to called the primary sort key, the second a certain sequence or in different sets, and therefore, it has the secondary sort key, etc. two common, yet distinct meanings: If the sort key values are totally ordered, the sort key ordering: arranging items of the same kind, class or defines a weak order of the items: items with the nature, in some ordered sequence, same sort key are equivalent with respect to sorting. categorizing: grouping and labeling items with similar properties together (by sorts) A standard order is often called ascending (corresponding to the fact that the standard order of Sorting information or data. numbers is ascending, i.e. A to Z, 0 to 9), the reverse In computer science, sorting is one of the most order descending (Z to A, 9 to 0). extensively researched subjects because of the need to speed up the operation on thousands or millions II. SORTING ALGORITHM of records during a search operation; see sorting A sorting algorithm is an algorithm that puts elements algorithm. of a list in a certain order. The most-used orders are The main purpose of sorting information is to numerical order and lexicographical order. Efficient optimize its usefulness for specific tasks. In general, sorting is important for optimizing the use of other there are two ways of grouping information: by algorithms (such as search and merge algorithms) which category e.g. a shopping catalogue where items are require input data to be in sorted lists; it is also often compiled together under headings such as 'home', useful for cannibalizing data and for producing human- 'sport & leisure', 'women's clothes' etc. (nominal readable output. More formally, the output must satisfy scale) and by the intensity of some property, such as two conditions: The output is in non decreasing order price, e.g. from the cheapest to most expensive (each element is no smaller than the previous element (ordinal scale). Richard Saul Wurman, in his according to the desired total order); The output is a book Information Anxiety, proposes that the most permutation (reordering) of the input. Further, the data is common sorting purposes are name, by location and often taken to be in an array, which allows random access, by time (these are actually special cases of category rather than a list, which only allows sequential access, and hierarchy). Together these give the acronym though often algorithms can be applied with suitable LATCH (Location, Alphabetical, Time, Category, modification to either type of data. Since the dawn of Hierarchy) and can be used to describe just about computing, the sorting problem has attracted a great deal every type of ordered information. Often of research, perhaps due to the complexity of solving it information is sorted using different methods at efficiently despite its simple, familiar statement. For different levels of abstraction: e.g. the UK telephone example, bubble sort was analyzed as early as 1956. directories which are sorted by location, by category (business or residential) and then alphabetically. A fundamental limit of comparison sorting algorithms New media still subscribe to these basic sorting is that they require line arrhythmic time – O(n log n) – in methods: e.g. a Google search returns a list of web the worst case, though better performance is possible on pages in a hierarchical list based on its own scoring real-world data (such as almost-sorted data), and system for how closely they match the search algorithms not based on comparison, such as counting criteria (from closest match downwards).