In-Memory Radix Sorting via Histogram Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Processing in Memory (PIM) architectures face inefficiencies in radix sorting due to large intermediate arrays, significant random accesses, and performance overheads, particularly in reducing data movement and power consumption.

Innovation Solution

The method involves partitioning datasets into subarrays across 3D-stacked memory banks, generating local and bank histograms, performing prefix-sum operations, and aggregating subarrays to reduce data movement and random accesses, enabling efficient radix sorting with reduced overhead and improved performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If radix sorting is implemented in current PIM-based accelerators, then sorting capability is provided, but data movement overhead and random accesses increase significantly

Engineering Contradiction:
Improvesorting capabilityVSAvoiddata movement overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent divides the sorting process into distinct phases (histogram generation, prefix-sum computation, data redistribution) and organizes memory into multiple banks that can be accessed independently. This segmentation allows parallel processing of different data segments simultaneously, reducing overall data movement overhead while maintaining sorting capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from traditional 2D memory organization to a 3D stacked memory architecture with multiple memory banks layered vertically. This dimensional change enables simultaneous access to multiple memory banks through different interconnect networks, dramatically reducing random access overhead and enabling efficient radix sorting operations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Manufacturing precision

If traditional sorting algorithms are used with multiple passes, then sorting accuracy is achieved, but data movement overhead increases

Engineering Contradiction:
Improvesorting accuracyVSAvoiddata movement overhead
Core Design Contradiction:
Manufacturing precisionVSLoss of energy

Solution Approach 1:

The patent performs histogram generation and prefix-sum computations before actual data sorting and redistribution. By pre-calculating the positions where data elements should be moved, the system eliminates the need for multiple sorting passes, achieving accurate sorting in a single pass while minimizing data movement overhead.

Inventive Principle:
Principle #10Preliminary action

3Use of energy by stationary object

If PIM architecture is used to reduce data movement, then energy consumption decreases, but random access performance overhead increases

Engineering Contradiction:
Improveenergy consumptionVSAvoidrandom access performance overhead
Core Design Contradiction:
Use of energy by stationary objectVSDevice complexity

Solution Approach 1:

The patent introduces intermediate buffer structures and controller logic that mediate between the PIM architecture and random access operations. These intermediaries absorb and manage random access requests, translating them into efficient memory operations that leverage the PIM architecture's strengths while masking its weaknesses, thus maintaining low energy consumption without random access performance penalties.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20230401034A1Methods, Systems, and Circuits for Coordinated Optimization in In-Memory Sorting
Publication Date: 2023.12.14 UNIV OF VIRGINIA PATENT FOUND
  • US20230401034A1 patent drawing
  • US20230401034A1 patent drawing
  • US20230401034A1 patent drawing

AI summary

Disclosed herein are systems, methods, and computer-readable media for sorting datasets within a Processing in Memory (PIM)-based system. A request to sort a dataset stored in a 3D-stacked memory can be received. The request can identify a specific dataset and sorting criteria, which includes a plurality of keys. The dataset can be partitioned into several subarrays across various memory banks within the 3D-stacked memory. Each piece of data within these subarrays can be separated into buckets based on the keys. Local histograms for each subarray and bank histograms based on the local histograms can be generated. A prefix-sum operation on the bank histograms can determine individual positions for the sorted dataset. Aggregation of the subarrays from all memory banks can form the sorted dataset, which can be subsequently returned.