In-Memory Database Accelerator for Near Data Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database query processing methods often lead to inefficient use of processor cache, as data is loaded into the cache only to be discarded shortly thereafter, causing evictions of potentially useful data and resulting in slower query responses.
Innovation Solution
The implementation of an accelerator that supports in-memory database processing, allowing for near-data processing of database queries. This accelerator receives requests from applications, loads data from the database, and executes commands in parallel, reducing the need for data movement and cache thrashing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is loaded into processor cache for database queries, then query processing speed is improved, but cache efficiency deteriorates due to unnecessary data movement and evictions
Solution Approach 1:
The patent extracts the database processing function from the host processor and places it directly in the memory device. This allows database queries to be processed at the location where data is stored, eliminating the need to load data into processor cache and thereby resolving the contradiction between query speed and cache efficiency.
Solution Approach 2:
The patent introduces an accelerator as an intermediary component between the host processor and memory. The accelerator receives requests from the host processor, executes database commands directly on data in memory, and returns results. This intermediary approach enables fast query processing without compromising cache efficiency.
2Speed
If data is loaded into processor cache, then access speed is improved, but cache utilization deteriorates due to single-use data being discarded
Solution Approach 1:
The patent extracts the database processing capability from the host processor and embeds it in the memory device. This allows the memory system itself to serve as the database engine, eliminating unnecessary data movement to and from processor cache while maintaining high access speeds and improving overall system productivity.
Solution Approach 2:
The patent enables the memory device to perform database processing operations autonomously without requiring host processor intervention. The memory device executes database commands directly on stored data, serving itself as both storage and processing unit, which improves cache utilization while maintaining fast access speeds.
3Loss of time
If processor cache is used for database queries, then query response time is improved, but system throughput deteriorates due to cache evictions
Solution Approach 1:
The patent introduces an accelerator as an intermediary that handles database query processing independently. The accelerator receives query requests from the host processor, executes commands directly on data in memory, and returns results without interfering with the host processor's cache management. This resolves the contradiction by enabling fast query response times while maintaining high system throughput through parallel processing.
Solution Approach 2:
The patent segments the processing workload by separating database query processing from general host processor operations. The accelerator handles database-specific operations independently, allowing the host processor to focus on other tasks without cache eviction overhead. This segmentation improves both query response time and overall system throughput.
Data Source
AI summary
An accelerator is disclosed. The accelerator may include an on-chip memory to store a data from a database. The on-chip memory may include a first memory bank and a second memory bank. The first memory bank may store the data, which may include a first value and a second value. A computational engine may execute, in parallel, a command on the first value in the data and the command on the second value in the data in the on-chip memory. The on-chip memory may be configured to load a second data from the database into the second memory bank in parallel with the computation engine executing the command on the first value in the data and executing the command on the second value in the data.


