IP Library › Granted Patent US 12,314,259
Granted Patent B2
US 12,314,259 · App. 18/513,484 · Granted May 27, 2025

In-memory database (IMDB) acceleration through near data processing

Inventors: Andrew Zhenwen Chang (Los Altos, CA); Vincent Tung Pham (San Jose, CA); Jaemin Jung (San Jose, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F16/24539G06F12/0882G06F16/24532G06F16/24552G06F16/248
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 12,314,259
App. No.
18/513,484
Granted
May 27, 2025
Kind
B2
Abstract

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.

Claims (48)

1. An accelerator, comprising:

a memory including a first memory address and a second memory address; and

a processor to execute a command on a first value and a second value in the first memory address in the memory,

wherein the memory is configured to load a third value into the second memory address, and

wherein the accelerator is configured to execute the command on the third value in the second memory address.

2. The accelerator according to claim 1 , wherein the first value and the second value are stored in the memory of the accelerator.

3. The accelerator according to claim 1 , wherein the memory is configured to load the first value and the second value from an output buffer of the accelerator.

4. The accelerator according to claim 3 , wherein:

the memory is configured to store an uncompressed first value and an uncompressed second value; and

the accelerator further comprises an input buffer storing a compressed first value and a compressed second value.

5. The accelerator according to claim 4 , further comprising a decompressor to generate the uncompressed first value from the compressed first value.

6. The accelerator according to claim 1 , wherein the first memory address includes a first memory unit and a second memory unit, the first memory unit storing the first value and the second memory unit storing the second value.

7. The accelerator according to claim 1 , further comprising an output memory to store a result of the command.

8. The accelerator according to claim 7 , wherein the accelerator is configured to transfer the result of the command from the output memory to a page cache.

9. The accelerator according to claim 1 , wherein the accelerator is configured to return a result of the processor executing the command on the first value and the second value in the first memory address to an application.

10. A system, comprising:

a host processor;

a host memory coupled to the host processor; and

an accelerator, including:

a memory including a first memory address and a second memory address; and

a processor to execute a command on a first value and a second value in the first memory address in the memory,

wherein the memory is configured to load a third value into the second memory address, and

wherein the accelerator is configured to execute the command on the third value in the second memory address.

11. The system according to claim 10 , wherein the first value and the second value are stored in the memory of the accelerator.

12. A system according to claim 10 , wherein the first memory address includes a first memory unit and a second memory unit, the first memory unit storing the first value and the second memory unit storing the second value.

13. The system according to claim 10 , wherein the system is configured to return a result of the processor executing the command on the first value and the second value in the first memory address to an application.

14. A method, comprising:

loading a first value and a second value into a first memory address of a memory of an accelerator;

executing a command on the first value and the second value in the first memory address to produce a result; and

loading a third value into a second memory address of the memory,

wherein the accelerator is configured to execute the command on the third value in the second memory address.

15. The method according to claim 14 , wherein loading the first value and the second value into the first memory address of the memory of the accelerator includes copying the first value and the second value from a second memory of the accelerator into the memory of the accelerator.

16. The method according to claim 14 , wherein loading the first value and the second value into the first memory address of the memory of the accelerator includes copying the first value and the second value from an output buffer of the accelerator into the memory of the accelerator.

17. The method according to claim 14 , wherein loading the first value and the second value into the first memory address of the memory of the accelerator includes:

loading a compressed first value into the accelerator; and

decompressing the compressed first value to generate the first value.

18. The method according to claim 17 , wherein loading the compressed first value includes loading the compressed first value into an input buffer of the accelerator.

19. The method according to claim 17 , wherein decompressing the compressed first value to generate the first value includes storing the first value in an output buffer of the accelerator.

20. The method according to claim 14 , further comprising storing the result in an output memory.

21. The method according to claim 20 , further comprising copying the result from the output memory into a page cache.

22. The method according to claim 14 , wherein:

loading the first value and the second value into the first memory address of the memory of the accelerator includes:

loading the first value into a first memory unit of the first memory address of the accelerator; and

loading the second value into a second memory unit of the first memory address of the accelerator; and

executing the command on the first value and the second value in the first memory address to produce the result includes:

executing the command on the first value in the first memory unit;

executing the command on the second value in the second memory unit; and

producing the result based at least in part on executing the command on the first value in the first memory unit and executing the command on the second value in the second memory unit.

Continuity (3)
Continuation 17515379 · Oct 29, 2021
Provisional Application 63223543 · Jul 19, 2021
Related Publication 20240086403A1 · Mar 14, 2024
References Cited (26)
US 9952975B2 · Barron · 2018 [cited by examiner]
US 10146738B2 · Nurvitadhi et al. · 2018 [cited by applicant]
US 10180928B2 · Nurvitadhi et al. · 2019 [cited by applicant]
US 10268416B2 · Jayasena · 2019 [cited by examiner]
US 10430353B2 · Hong · 2019 [cited by examiner]
US 20130238657A1 · Brand · 2013 [cited by examiner]
US 20150039478A1 · Heumann · 2015 [cited by examiner]
US 20150143037A1 · Smith · 2015 [cited by examiner]
US 20150262127A1 · Ziegler · 2015 [cited by examiner]
US 20150331720A1 · Huetter · 2015 [cited by examiner]
US 20160070701A1 · Lim et al. · 2016 [cited by applicant]
US 20160283114A1 · Kimura · 2016 [cited by examiner]
US 20180074965A1 · Aguilera Diez · 2018 [cited by examiner]
US 20210117131A1 · Kim · 2021 [cited by examiner]
US 20210141794A1 · Picorel · 2021 [cited by examiner]
US 20210216220A1 · Kim · 2021 [cited by examiner]
US 20210240393A1 · Jo · 2021 [cited by examiner]
US 20210271680A1 · Lee · 2021 [cited by examiner]
US 20220083681A1 · Du · 2022 [cited by examiner]
CN 105408878A · 2016 [cited by applicant]
CN 108268422A · 2018 [cited by applicant]
CN 108268424A · 2018 [cited by applicant]
CN 110826707A · 2020 [cited by applicant]
CN 111159628A · 2020 [cited by applicant]
ESP, “ESP Accelerator Specifications,” Columbia University System Level Design Group, 2021, pp. 1-10. (Year: 2021). [cited by examiner]
Xi, Sam Likun et al., “Beyond the Wall Near-Data Processing for Database,” DaMoN'15: Proceedings of the 11th International Workshop on Data Management on New Hardware, 2015, pp. 1-10. (Year: 2015). [cited by examiner]