DMA Engine Tuple-Encoded Data Partitioning
Find Innovative SolutionsGenerate 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, as the data is not optimally formatted for DMA engines, and the limited size of memory closer to the core processor leads to frequent interrupts, degrading processor performance.
Innovation Solution
A hardware-accelerated data movement system with multiple data movement engines that transform and move tabular data from main memory to core processors, utilizing descriptors for efficient data manipulation and partitioning, and a copy ring for internal data transfer between engines, allowing for in-flight data manipulation and reduced interrupts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If DMA engine moves data from main memory to local memory, then data movement is achieved, but frequent interrupts occur due to limited local memory size
Solution Approach 1:
The data movement operation is segmented into multiple smaller transactions. Instead of moving all data at once and causing one large interrupt, the DMA engine processes data in chunks that fit within the local memory capacity, allowing continuous operation with fewer interrupts. Each segment is moved independently, and the processor is interrupted only when a segment completes.
Solution Approach 2:
The system performs preliminary actions by pre-configuring the DMA engine with descriptors that specify multiple data segments and their destinations. This allows the DMA engine to autonomously manage the segmented data movement without requiring processor intervention for each segment, reducing interrupt overhead while maintaining efficient data transfer.
2Productivity
If data is moved to local memory closer to core processor, then processing efficiency is improved, but overhead from DMA operations offsets the advantage
Solution Approach 1:
Multiple data movement operations are merged into a single DMA transaction. The descriptor structure allows the DMA engine to combine multiple source-destination pairs into one continuous operation, reducing the overhead associated with individual DMA setup and execution. This merging approach maintains the productivity benefit of local memory while reducing the energy cost of DMA operations.
Solution Approach 2:
The DMA engine is designed with multi-functionality to handle various data movement scenarios through a unified descriptor-based interface. A single DMA engine can service multiple data movement requests with different parameters, eliminating the need for separate dedicated hardware for each operation and reducing overall system overhead while maintaining high processing efficiency.
3Productivity
If tabular data is moved for efficient processing, then data manipulation performance is improved, but data must be optimally formatted which adds complexity
Solution Approach 1:
The descriptor structure serves as an intermediary between the raw tabular data and the processing requirements. Instead of requiring complex data formatting, the descriptors describe the data layout and transformation needs, allowing the DMA engine to handle the formatting complexity autonomously while the processor focuses on high-value manipulation tasks, thus improving performance without adding formatting complexity to the processing pipeline.
Data Source
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.


