Hierarchical Pipelined Sorter for Fast Out-of-Order Index Insertion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems struggle to efficiently order indexed data items received out of order, which is crucial for applications like network traffic packet ordering and communication systems where data packets arrive out of order and need reordering based on their indices.
Innovation Solution
A hardware-based data processing unit with hierarchically arranged processing units generates linked lists, allowing each unit to create a shortcut list for the next lower layer, expediting the identification of insertion positions for received indices, and enabling parallel operation of processing units.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single processing unit generates a linked list for all data items, then the structure is simple, but the time to identify insertion positions increases significantly for large datasets
Solution Approach 1:
The patent divides the single processing unit into multiple processing units (first processing unit, second processing unit, etc.), each generating a portion of the linked list. This segmentation allows parallel processing of different data item ranges, reducing the time to identify insertion positions while maintaining manageable complexity for each individual processing unit.
Solution Approach 2:
The patent introduces a hierarchical dimension by organizing processing units into multiple levels. Higher-level processing units generate shortcut lists that point to sections of the full linked list, creating a multi-dimensional access structure. This allows the system to leverage both the simplicity of linear linked lists and the efficiency of hierarchical navigation.
2Ease of manufacture
If processing units operate sequentially to generate linked lists, then the implementation is straightforward, but the sorting speed is limited
Solution Approach 1:
The patent combines sequential implementation simplicity with parallel execution by having multiple processing units operate simultaneously on different portions of the data. Each processing unit independently generates its portion of the linked list, and these partial results are then merged into a complete sorted structure, achieving both ease of implementation and high productivity.
Solution Approach 2:
Higher-level processing units perform preliminary actions by generating shortcut lists that pre-identify insertion positions for lower-level processing units. This preliminary organization of data allows subsequent processing to occur more efficiently, as units don't need to search through entire datasets but can directly access relevant sections.
3Ease of operation
If the linked list is traversed from the start node for every insertion, then the insertion logic is simple, but the time complexity increases with dataset size
Solution Approach 1:
The patent segments the linked list into multiple sections, each managed by a processing unit. Instead of traversing the entire list from the start node, each processing unit only needs to traverse its own section, dramatically reducing traversal time while maintaining simple insertion logic within each segment.
Solution Approach 2:
The patent introduces higher-level processing units as intermediaries that generate shortcut lists. These shortcuts act as mediators that directly point to insertion positions in lower-level linked lists, eliminating the need for full traversals while keeping the actual insertion operation simple and localized.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Provided herein are devices and methods for ordering data items assigned with unique indices which may be received out of order. The indices of the data items are ordered in monotonic increasing order according to the indices value by a hardware processing device comprising a plurality of independent processing units hierarchically arranged in layers. Each of the processing units may generate a respective linked list which includes only a subset of the linked list of its next lower layer linked list. In a recursive process, each processing unit may traverse its inked list to identify a start point for inserting each received index and signal the start point to the respective next lower layer linked list which may use it to traverse its respective linked list until a bottom layer linked list is updated to include a node generated to store the respective index in its ordered position.