Tuple Encoding DMA Engine for Scratchpad Multi-Core Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database servers executing on multi-core processors face inefficiencies in moving tabular data due to overhead from direct memory access (DMA) operations, with tabular data not being optimally formatted for DMA engines and limited local memory capacity leading to frequent interrupts and performance degradation.

Innovation Solution

A hardware-accelerated data movement system with multiple data movement engines and internal memories that perform data manipulation operations in-flight, using descriptors to optimize data movement and partitioning across core processors, and employing a copy ring for efficient data transfer and broadcast within the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If DMA engine moves tabular data from main memory to local memory, then data movement is performed, but overhead from DMA operations and frequent interrupts deteriorate processor performance

Engineering Contradiction:
Improvedata movement efficiencyVSAvoidprocessor performance
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple data movement operations into a single DMA transfer by reorganizing tabular data into a concatenated format where multiple columns are merged into continuous memory structures. This eliminates the need for multiple separate DMA operations and interrupts, as the entire concatenated data structure can be transferred in one operation, thereby improving data movement efficiency while reducing processor overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary data reorganization by concatenating columns into continuous memory structures before the DMA operation begins. This pre-processing step ensures that the data is already in the optimal format for efficient single-operation transfer, eliminating the need for complex runtime data manipulation and reducing the number of interrupts required during actual data movement.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If tabular data is stored in traditional row-major or column-major format, then data can be stored contiguously, but the data format is not optimal for DMA engine efficiency

Engineering Contradiction:
Improvedata storage simplicityVSAvoidDMA engine efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces a dynamic data representation where tabular data can be viewed and accessed in multiple formats (row-major, column-major, and concatenated column-major) depending on the operation requirements. The underlying storage structure is designed to support flexible interpretation, allowing the same physical memory layout to serve different logical access patterns, thereby optimizing DMA efficiency without sacrificing storage simplicity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the fundamental parameter of data organization from traditional row-major or standalone column-major formats to a concatenated column-major format where multiple columns are merged into continuous memory structures. This parameter change enables the DMA engine to transfer larger contiguous blocks of data in single operations, significantly improving DMA efficiency while maintaining straightforward memory allocation.

Inventive Principle:
Principle #35Parameter changes

3Speed

If local memory size is small, then memory closer to core processor is available, but DMA engine must repeat data movement multiple times causing frequent interrupts

Engineering Contradiction:
Improvedata access speedVSAvoiddata movement throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent segments the tabular data into multiple concatenated columns that together form a large continuous memory structure. This segmentation allows the data to be divided into manageable chunks that can be transferred in fewer, larger DMA operations rather than many small operations, thereby reducing interrupt frequency while maintaining fast data access through the local memory.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables continuous data movement by organizing data into concatenated column structures that can be transferred in unbroken sequences. This continuity eliminates gaps and interruptions in the DMA transfer process, allowing the data movement operation to proceed efficiently without frequent stops and restarts, thereby improving throughput while maintaining the speed advantage of local memory access.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10402425B2Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
Publication Date: 2019.09.03 ORACLE INT CORP
  • US10402425B2 patent drawing
  • US10402425B2 patent drawing
  • US10402425B2 patent drawing

AI summary

Techniques provide for hardware accelerated data movement between main memory and an on-chip data movement system that comprises multiple core processors that operate on the tabular data. The tabular data is moved to or from the scratch pad memories of the core processors. While the data is in-flight, the data may be manipulated by data manipulation operations. The data movement system includes multiple data movement engines, each dedicated to moving and transforming tabular data from main memory data to a subset of the core processors. Each data movement engine is coupled to an internal memory that stores data (e.g. a bit vector) that dictates how data manipulation operations are performed on tabular data moved from a main memory to the memories of a core processor, or to and from other memories. The internal memory of each data movement engine is private to the data movement engine. Tabular data is efficiently copied between internal memories of the data movement system via a copy ring that is coupled to the internal memories of the data movement system and/or is coupled to a data movement engine. Also, a data movement engine internally broadcasts data to other data movement engines, which then transfer the data to respective core processors. Partitioning may also be performed by the hardware of the data movement system. Techniques are used to partition data "in flight". The data movement system also generates a column of row identifiers (RIDs). A row identifier is a number treated as identifying a row or element's position within a column. Row identifiers each identifying a row in column are also generated.