Reconfigurable Array Processor Sorting Architecture
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing array processors face inefficiencies in merging and sorting multiple input data streams due to limitations in comparison-based sorting techniques, particularly in big data applications like map-reduce operations and database searches, where scalability and speed are critical.
Innovation Solution
An array processor architecture is designed with a managing element and multiple processing elements, where the load streaming unit provides input data to and receives output data from processing elements, enabling comparisons and selections based on sorted combinations, and configuring processing elements to operate hierarchically for efficient merging and sorting of multiple input streams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If comparison-based sorting techniques are used in array processors, then sorting capability is provided, but processing efficiency and scalability are insufficient for big data applications
Solution Approach 1:
The array processor is divided into multiple processing elements (PEs), each capable of independent comparison operations. This segmentation allows parallel processing of multiple data elements simultaneously, significantly improving sorting efficiency while distributing the computational complexity across multiple simple units rather than requiring a single complex sorting unit.
Solution Approach 2:
The patent introduces a hierarchical organization with multiple levels of PEs arranged in a tree-like structure. This adds a dimensional aspect to the sorting process, where data flows through multiple levels of comparison stages. Each level performs comparisons on different subsets of data, transforming the sorting problem from a single-dimensional sequential process into a multi-dimensional parallel process that achieves O(log n) depth complexity.
2Speed
If multiple processing elements are used for parallel sorting, then processing speed improves, but system complexity and data management overhead increase
Solution Approach 1:
The patent combines multiple sorted streams from different PE subsets into a single sorted output stream through a merging mechanism. This merging approach allows parallel PEs to work independently on their respective data subsets while the combining logic ensures the final output is globally sorted. The merging operation achieves parallel speedup while keeping individual PE complexity low, as each PE only needs to handle local comparisons and pass results to the merging stage.
Solution Approach 2:
The load streaming unit acts as an intermediary that manages data distribution to PEs and collects results from them. This mediator component simplifies the complexity by providing a centralized coordination point that handles the intricate data routing and synchronization between multiple PEs, allowing the PEs themselves to remain simple comparison units without requiring complex inter-PE communication logic.
3Adaptability or versatility
If hierarchical organization is implemented for merging streams, then scalability improves, but control and coordination complexity increases
Solution Approach 1:
The hierarchical PE structure is designed to be dynamically configurable, where the number and arrangement of PEs can be adjusted based on the size of the input data and desired parallelism level. This dynamic adaptability allows the same architectural framework to scale from small to large datasets without requiring fundamental redesign. The control logic uses dynamic routing signals that adapt to the current configuration, enabling scalability while keeping control complexity manageable through parameterization rather than structural redesign.
Data Source
AI summary
An array processor includes a managing element having a load streaming unit coupled to multiple processing elements. The load streaming unit provides input data portions to each of a first subset of the processing elements and also receives output data from each of a second subset of the processing elements based on a comparatively sorted combination of the input data portions provided to the first subset of processing elements. Furthermore, each of processing elements is configurable by the managing element to compare input data portions received from either the load streaming unit or two or more of the other processing elements, wherein the input data portions are stored for processing in respective queues. Each processing unit is further configurable to select an input data portion to be output data based on the comparison, and in response to selecting the input data portion, remove a queue entry corresponding to the selected input data portion. Each processing element may be further configured to provide the selected output data portion to either the managing element or as an input to one of the processing elements.


