IP Library Granted Patent US 12,619,376
Granted Patent B2
US 12,619,376 · App. 18/819,720 · Granted May 5, 2026

Systems and methods for executing data processing functions

Inventors: Ramdas P. Kachare (Pleasanton, CA); Amir Beygi (San Jose, CA); Mostafa Aghaee (San Jose, CA); Jingchi Yang (Sunnyvale, CA); Tinh Tri Lac (Manteca, CA); Sonny Pham (Ramon, CA); Nayankumar Patel (Fremont, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0655G06F3/061G06F3/0683G06F13/385
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,619,376
App. No.
18/819,720
Granted
May 5, 2026
Kind
B2
Abstract

Systems and methods for executing a data processing function are disclosed. A first processing device of a storage accelerator loads a first instruction set associated with a first application of a host computing device. A second processing device of the storage accelerator loads a second instruction set associated with the first application. A command is received from the host computing device. The command may be associated with data associated with the first application. The first processing device identifies at least a first criterion or a second criterion associated with the data. The first processing device processes the data according to the first instruction set in response to identifying the first criterion. The first processing device writes the data to a buffer of the second processing device in response to identifying the second criterion. The second processing device processes the data in the buffer according to the second instruction set.

Claims (57)

1 . A method comprising:

identifying, by a first processing device of a storage device, first data;

identifying, by the first processing device a first criterion associated with the first data;

processing, by the first processing device, the first data according to a first instruction set based on identifying the first criterion;

identifying, by the first processing device, second data;

identifying, by the first processing device a second criterion associated with the second data;

writing the second data, by the first processing device, to a second processing device of the storage device based on identifying the second criterion; and

processing, by the second processing device, the second data according to a second instruction set.

2 . The method of claim 1 further comprising:

generating, by the first processing device, a first output based on processing the first data according to the first instruction set;

generating, by the second processing device, a second output based on processing the second data according to the second instruction set;

generating, by the storage device, a third output based on the first output and the second output; and

providing the third output to a host computing device.

3 . The method of claim 1 , wherein the first processing device includes a first processor and a first memory, and the second processing device includes a second processor and a second memory, wherein the first instruction set is loaded to the first memory and executed by the first processor, and the second instruction set is loaded to the second memory and executed by the second processor.

4 . The method of claim 1 , wherein the first instruction set is for performing a first data processing function for a first application, and the second instruction set is for performing a second data processing function for the first application that is different from the first data processing function.

5 . The method of claim 1 , wherein the first criterion includes an identifier for the first processing device, and the second criterion includes an identifier for the second processing device.

6 . The method of claim 1 , wherein the writing of the second data by the first processing device includes writing of the second data into a buffer of the second processing device, wherein the first processing device and the second processing device alternate control of the buffer for writing or reading the second data into or out of the buffer.

7 . The method of claim 1 , wherein the first processing device and the second processing device form a first processing pipeline, and a third processing device connected to a fourth processing device form a second processing pipeline.

8 . The method of claim 7 further comprising:

partitioning received data into the first data, the second data, and a third data;

providing the first data and the second data to the first processing pipeline; and

providing the third data to the second processing pipeline.

9 . The method of claim 7 further comprising:

receiving a result of the processing by the first processing device;

identifying a third criterion associated with the result; and

providing the result to the second processing pipeline based on identifying the third criterion.

10 . The method of claim 7 , wherein the first processing device is associated with a first application, and the second processing device is associated a second application different from the first application.

11 . A storage device comprising:

a first processing device including a first processor and a first memory, the first memory storing a first instruction set; and

a second processing device including a second processor and a second memory, the second memory storing a second instruction set,

wherein, the first processing device is configured to:

identify first data;

identify a first criterion associated with the first data;

process the first data according to the first instruction set based on identifying the first criterion,

identify second data;

identify a second criterion associated with the second data;

write the second data to the second processing device based on identifying the second criterion,

wherein, the second processing device is configured to process the second data according to the second instruction set.

12 . The storage device of claim 11 ,

wherein the first processing device is configured to generate a first output based on the first processing device being configured to process the first data according to the first instruction set,

wherein the second processing device is configured to generate a second output based on the first processing device being configured to process the second data according to 6,

wherein a third output is configured to be generated based on the first output and the second output, and

wherein the third output is configured to be provided to a host computing device.

13 . The storage device of claim 11 , wherein the first instruction set is for performing a first data processing function for a first application, and the second instruction set is for performing a second data processing function for the first application that is different from the first data processing function.

14 . The storage device of claim 11 , wherein the first criterion includes an identifier for the first processing device, and the second criterion includes an identifier for the second processing device.

15 . The storage device of claim 11 , wherein the second processing device includes a buffer for receiving the second data from the first processing device.

16 . The storage device of claim 15 , wherein the first processing device and the second processing device are configured to alternate control of the buffer for writing or reading the second data into or out of the buffer.

17 . The storage device of claim 11 , wherein the first processing device and the second processing device form a first processing pipeline, and a third processing device connected to a fourth processing device form a second processing pipeline.

18 . The storage device of claim 17 further comprising a fifth processing device configured to:

partition received data into the first data, the second data, and a third data;

provide the first data and the second data to the first processing pipeline; and

provide the third data to the second processing pipeline.

19 . The storage device of claim 17 further comprising a fifth processing device configured to:

receive a result of processing by the first processing device;

identify a third criterion associated with the result; and

provide the result to the second processing pipeline based on the first processing device being configured to identify the third criterion.

20 . The storage device of claim 17 , wherein the first processing device is associated with a first application, and the second processing device is assigned to a second application different from the first application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: KACHARE, RAMDAS P.; BEYGI, AMIR; AGHAEE, MOSTAFA; YANG, JINGCHI; LAC, TINH TRI; PHAM, SONNY; PATEL, NAYANKUMAR
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 068875/0326 →
Continuity (3)
Continuation 17960033 · Oct 4, 2022
Provisional Application 63404896 · Sep 8, 2022
Related Publication 20240419356A1 · Dec 19, 2024
References Cited (29)
US 7103008B2 · Greenblat et al. · 2006 [cited by applicant]
US 7856543B2 · Rhoades et al. · 2010 [cited by applicant]
US 8015567B2 · Hass · 2011 [cited by applicant]
US 8200992B2 · Felch et al. · 2012 [cited by applicant]
US 9830086B2 · Niu et al. · 2017 [cited by applicant]
US 10261903B2 · Sakthivel et al. · 2019 [cited by applicant]
US 10353706B2 · Kaul et al. · 2019 [cited by applicant]
US 10409614B2 · Ould-Ahmed-Vall et al. · 2019 [cited by applicant]
US 10691597B1 · Akkary et al. · 2020 [cited by applicant]
US 11157414B2 · Muthler et al. · 2021 [cited by applicant]
US 20210150663A1 · Maiyuran et al. · 2021 [cited by applicant]
US 20210157500A1 · Gu · 2021 [cited by applicant]
US 20210157593A1 · Gu · 2021 [cited by applicant]
US 20210157737A1 · Gu · 2021 [cited by applicant]
US 20210191868A1 · Ray et al. · 2021 [cited by applicant]
US 20210287423A1 · Guenther et al. · 2021 [cited by applicant]
US 20210295463A1 · Mandal et al. · 2021 [cited by applicant]
US 20210295583A1 · Vaidyanathan et al. · 2021 [cited by applicant]
US 20210397567A1 · Kang et al. · 2021 [cited by applicant]
US 20220051466A1 · Doyle et al. · 2022 [cited by applicant]
US 20220197704A1 · Gibb et al. · 2022 [cited by applicant]
CN 107153511A · 2017 [cited by applicant]
CN 112764669A · 2021 [cited by applicant]
CN 114003514A · 2022 [cited by applicant]
WO WO2015019197A3 · 2015 [cited by applicant]
Davidson, Scott, et al. “The Celerity Open-Source 511-Core RISC-V Tiered Accelerator Fabric: Fast Architectures and Design Methodologies for Fast Chips.” [cited by applicant]
Ditzel, David R., “Accelerating ML Recommendation With Over 1,000 RISC-V/Tensor Processors on Esperanto's ET-SoC-1 Chip,” vol. 42, IEEE Computer Society, May/Jun. 2022, pp. 31-38. [cited by applicant]
European Search Report for EP Application No. 23195593.1 dated Dec. 15, 2023, 9 pages. [cited by applicant]
Chinese Office Action corresponding to CN Application No. 202311146692.6, dated Oct. 24, 2025 (7 pages). [cited by applicant]