Processor Sort Acceleration Instruction for Data Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data sorting operations, especially with large datasets, are computationally intensive and can significantly impact performance in computers, servers, and datacenters, as existing technologies lack efficient methods to accelerate these processes.

Innovation Solution

The introduction of sort acceleration instructions and processors that execute these instructions, utilizing packed data registers and execution units to perform sort operations efficiently, including single and two-source sort indexes instructions, which store sorted indexes rather than sorted data elements, allowing for flexible and efficient data sorting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional sorting algorithms are used on large datasets, then sorting can be performed, but computational intensity increases significantly and performance deteriorates

Engineering Contradiction:
Improvesorting performanceVSAvoidcomputational intensity
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the sorting operation from traditional software-based algorithms and implements it directly in hardware circuitry within the processor. The sorting logic is taken out of the software execution path and embedded as dedicated hardware circuits that can perform sorting operations in parallel, significantly reducing computational intensity and improving performance for large datasets

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the mechanical/software-based sorting process with an electrical/hardware-based sorting circuit. By substituting the software algorithm execution with dedicated hardware sorting circuits, the system achieves faster sorting performance with lower computational overhead, effectively replacing the 'mechanical' software execution model with an electrical hardware model

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Stability of the object's composition

If sorting is performed on large datasets, then data can be organized, but processing time increases and system performance is impacted

Engineering Contradiction:
Improvedata organizationVSAvoidprocessing time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent segments the sorting operation into multiple parallel processing paths within the hardware circuit. By dividing the sorting task into concurrent operations that can execute simultaneously, the hardware sorting circuit reduces the overall processing time while maintaining complete data organization, effectively segmenting the time-consuming sorting process into parallel operations

Inventive Principle:
Principle #1Segmentation

3Productivity

If hardware sorting circuits are implemented, then sorting performance improves, but device complexity increases

Engineering Contradiction:
Improvesorting performanceVSAvoidprocessor complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs the hardware sorting circuit to be a universal component that can handle various sorting scenarios and data types. The sorting hardware is implemented as a multi-functional unit that can be configured for different sorting algorithms and data widths, reducing the need for multiple specialized circuits and thereby managing device complexity while maintaining high sorting performance

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9766888B2Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements
Publication Date: 2017.09.19 INTEL CORP
  • US9766888B2 patent drawing
  • US9766888B2 patent drawing
  • US9766888B2 patent drawing

AI summary

A processor of an aspect includes packed data registers, and a decode unit to decode an instruction. The instruction may indicate a first source packed data to include at least four data elements, indicate a second source packed data to include at least four data elements, and indicate a destination storage location. An execution unit is coupled with the packed data registers and the decode unit. The execution unit, in response to the instruction, is to store a result packed data in the destination storage location. The result packed data may include at least four indexes that may identify corresponding data element positions in the first and second source packed data. The indexes may be stored in positions in the result packed data that are to represent a sorted order of corresponding data elements in the first and second source packed data.