Merge Join Acceleration via FPGA Parallel Comparison Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face inefficiencies in merge join operations, particularly due to high CPU utilization, memory bandwidth wastage, and data dependency issues, which limit performance and scalability.

Innovation Solution

A method and apparatus for accelerating merge join operations through parallel comparison, result collection, and output gathering using a pipelined architecture with a field programmable gate array (FPGA) accelerator, which compares batches of keys in parallel, reduces matrices to vectors, and gathers results efficiently, reducing data dependency and improving throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional CPU-based merge join operations are used, then data processing can be performed, but CPU utilization is high and processing speed is limited

Engineering Contradiction:
Improvemerge join processing speedVSAvoidCPU utilization efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent replaces traditional CPU-based sequential processing with a specialized hardware accelerator that uses parallel comparison circuits, collection circuits, and gathering circuits to perform merge join operations. This substitution of general-purpose mechanical processing with dedicated hardware architecture achieves significantly higher processing speeds while reducing CPU utilization requirements.

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

Solution Approach 2:

The merge join operation is segmented into three independent functional units: parallel comparison circuit, collection circuit, and gathering circuit. Each unit processes data independently and simultaneously, allowing the system to process multiple records in parallel rather than sequentially, thereby improving both speed and CPU efficiency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If sequential processing of key comparisons is used, then data dependency issues are avoided, but memory bandwidth is wasted and throughput is limited

Engineering Contradiction:
Improvemerge join throughputVSAvoidmemory bandwidth utilization
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent divides the key comparison process into parallel segments using multiple comparison circuits that simultaneously compare different batches of keys. This segmentation allows the system to utilize full memory bandwidth by reading and processing multiple key batches in parallel, eliminating the sequential bottleneck while maintaining data dependency integrity through proper result collection and gathering mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements continuous data flow through the pipeline architecture where the parallel comparison circuit continuously receives key batches, the collection circuit continuously collects results, and the gathering circuit continuously gathers output. This continuous operation maximizes memory bandwidth utilization by keeping all processing units actively engaged without idle cycles.

Inventive Principle:
Principle #20Continuity of useful action

3Speed

If parallel comparison of key batches is implemented, then processing speed improves, but data dependency issues increase

Engineering Contradiction:
Improveparallel processing speedVSAvoiddata dependency management
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent segments the parallel comparison process into independent batches where each batch is processed separately by dedicated comparison circuits. By dividing the data into discrete, independently processable units, the system achieves parallel speedup while minimizing data dependency conflicts through proper batch management and result collection protocols.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces collection circuits and gathering circuits as intermediary components between the parallel comparison circuits and the final output. These intermediaries buffer and organize results from multiple parallel comparisons, resolving data dependency issues by ensuring proper ordering and collection of results before presenting them as final output.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If traditional merge join operations are used, then implementation is simple, but scalability is limited

Engineering Contradiction:
Improvesystem scalabilityVSAvoidprocessing architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the merge join functionality into modular, independent circuits (parallel comparison, collection, and gathering circuits) that can be independently configured and scaled. This modular segmentation allows the system to scale by adding more comparison circuits for higher throughput or adjusting batch sizes, providing adaptability without requiring complete redesign of the entire system.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12001427B2Systems, methods, and devices for acceleration of merge join operations
Publication Date: 2024.06.04 SAMSUNG ELECTRONICS CO LTD
  • US12001427B2 patent drawing
  • US12001427B2 patent drawing
  • US12001427B2 patent drawing

AI summary

A method of processing data may include receiving a stream of first keys associated with first data, receiving a stream of second keys associated with second data, comparing, in parallel, a batch of the first keys and a batch of the second keys, collecting one or more results from the comparing, and gathering one or more results from the collecting. The collecting may include reducing an index matrix and a mask matrix. Gathering one or more results may include storing, in a leftover vector, at least a portion of the one or more results from the collecting. Gathering one or more results further may include combining at least a portion of the leftover vector from a first cycle with at least a portion of the one or more results from the collecting from a second cycle.