IP Library Granted Patent US 10,922,079
Granted Patent B2
US 10,922,079 · App. 15/856,245 · Granted Feb 16, 2021

Method and apparatus to efficiently perform filter operations for an in-memory relational database

Inventors: Vinodh Gopal (Westborough, MA); Kirk S. Yap (Westborough, MA); James Guilford (Northborough, MA); Simon N. Peffers (Acton, MA)
Assignee: Intel Corporation
G06F9/30036G06F16/2453G06F16/24561G06F16/24569
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,922,079
App. No.
15/856,245
Granted
Feb 16, 2021
Kind
B2
Abstract

Data element filter logic (“hardware accelerator”) in a processor that offloads computation for an in-memory database select/extract operation from a Central Processing Unit (CPU) core in the processor is provided. The Data element filter logic provides a balanced performance across an entire range of widths (number of bits) of data elements in a column-oriented Database Management System.

Claims (26)

1. A processor comprising:

a central processing module including at least one processor core; and

a hardware accelerator communicatively coupled to the processor core via a system fabric interconnect to offload computation from the processor core, the hardware accelerator to select a data element from an array of data elements read from a column of a table in a column orientated in-memory database stored in a memory communicatively coupled to the processor core, in response to a command received from the processor core, the command including a bit vector to identify the data element to be selected and a bit width from a range of widths for the data elements in the array of data elements, the hardware accelerator to expand the bit vector based on the bit width for the data elements to provide an expanded bit vector and to use the expanded bit vector to select the data element from the array of data elements, a number of data elements processed per cycle are fully contained within less than a full width of a data path to the hardware accelerator.

2. The processor of claim 1 , wherein the hardware accelerator selects the data element from the array of data elements based on the bit width and the expanded bit vector.

3. The processor of claim 1 , wherein the number of data elements processed per cycle is dependent on the bit width.

4. The processor of claim 3 , wherein the number of data elements processed per cycle includes partial data elements in the full width of the data path to the hardware accelerator.

5. The processor of claim 1 , wherein the command to include a number of bits to skip and the number of bits to extract to identify a plurality of contiguous data elements in the array of data elements to extract.

6. The processor of claim 1 , wherein the bit vector is expanded such that if the data element in the data path to the hardware accelerator has more than one bit, each bit of the bit vector is replicated to match and align with a number of bits in a corresponding data element.

7. The processor of claim 1 , wherein the bit width is between 1 and 32 bits.

8. A method comprising:

receiving, by a hardware accelerator in a processor via a system fabric interconnect, a command from a processor core in the processor to offload computation from the processor core, the command including a bit vector to identify a data element in an array of data elements and a bit width from a range of widths for the data elements in the array of data elements; and

selecting, by the hardware accelerator, the data element in the array of data elements read from a column of a table in a column orientated in-memory database stored in a memory communicatively coupled to the processor, the hardware accelerator to expand the bit vector based on the bit width for the data elements to provide an expanded bit vector and to use the expanded bit vector to select the data element from the array of data elements, a number of data elements processed per cycle are fully contained within less than a full width of a data path to the hardware accelerator.

9. The method of claim 8 , further comprising:

selecting, by the hardware accelerator, the data element from the array of data elements based on the bit width and the expanded bit vector.

10. The method of claim 8 , wherein the number of data elements processed per cycle is dependent on the bit width.

11. The method of claim 10 , wherein the number of data elements processed per cycle includes partial data elements in the full width of the data path to the hardware accelerator.

12. The method of claim 8 , wherein the command to include a number of bits to skip and the number of bits to extract to identify a plurality of contiguous data elements in the array of data elements to extract.

13. A system comprising:

a memory device to store a column orientated in-memory database; and

a processor communicatively coupled to the memory device, the processor comprising:

a central processing module including at least one processor core; and

a hardware accelerator communicatively coupled to the processor core via a system fabric interconnect to offload computation from the processor core, the hardware accelerator to select a data element from an array of data elements read from a column of a table in a column orientated in-memory database stored in a memory communicatively coupled to the processor core, in response to a command received from the processor core, the command including a bit vector to identify the data element to be selected and a bit width from a range of widths for the data elements in the array of data elements, the hardware accelerator to expand the bit vector based on the bit width for the data elements to provide an expanded bit vector and to use the expanded bit vector to select the data element from the array of data elements, a number of data elements processed per cycle are fully contained within less than a full width of a data path to the hardware accelerator.

14. The system of claim 13 , wherein the hardware accelerator selects the data element from the array of data elements based on the bit width and the expanded bit vector.

15. The system of claim 13 , wherein the number of data elements processed per cycle is dependent on the bit width.

16. The system of claim 15 , wherein the number of data elements processed per cycle includes partial data elements in the full width of the data path to the hardware accelerator.

17. The system of claim 13 , wherein the command to include a number of bits to skip and a number of bits to extract to identify a plurality of contiguous data elements in the array of data elements to extract.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: GOPAL, VINODH; YAP, KIRK S.; GUILFORD, JAMES; PEFFERS, SIMON N.
To: INTEL CORPORATION
Reel/Frame 044708/0609 →