Search

US-12619376-B2 - Systems and methods for executing data processing functions

US12619376B2US 12619376 B2US12619376 B2US 12619376B2US-12619376-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.

Inventors

  • Ramdas P. Kachare
  • Amir BEYGI
  • Mostafa Aghaee
  • Jingchi YANG
  • Tinh Tri Lac
  • Sonny Pham
  • Nayankumar Patel

Assignees

  • SAMSUNG ELECTRONICS CO., LTD.

Dates

Publication Date
20260505
Application Date
20240829

Claims (20)

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

Description

CROSS-REFERENCE TO RELATED APPLICATION(S) The present application is a continuation of U.S. patent application Ser. No. 17/960,033, filed Oct. 4, 2022, which claims priority to and the benefit of U.S. Provisional Application No. 63/404,896, filed Sep. 8, 2022, entitled “PARALLEL/PIPELINED MULTI-CORE STORAGE ACCELERATOR,” the entire content of each of which is incorporated herein by reference. FIELD One or more aspects of embodiments according to the present disclosure relate to computational storage devices, and more particularly to computational storage devices that execute data processing functions. BACKGROUND A processing device may be required to perform computations on large amounts of data in a quick manner. As such types of computations increase, there is an increase in data storage and processing needs. The above information disclosed in this Background section is only for enhancement of understanding of the background of the present disclosure, and therefore, it may contain information that does not form prior art. SUMMARY One or more embodiments of the present disclosure are directed to a method for executing a data processing function. 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 one of 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. In some embodiments, the storage accelerator partitions the data into at least a first chunk and a second chunk; the first processing device processes the first chunk based on the first instruction set and generates a first output; the second processing device processes the second chunk based on the second instruction set and generates a second output; the storage accelerator generates a third output based on the first output and the second output; and the third output is provided to the host computing device. In some embodiments, 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. In some embodiments, the first instruction set is for performing a first data processing function for the 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. In some embodiments, the first criterion includes an identifier for the first processing device, and the second criterion includes an identifier for the second processing device. In some embodiments, the first processing device and the second processing device alternate control of the buffer for writing or reading the data into or out of the buffer. In some embodiments, 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. In some embodiments, the method further comprises: partitioning the data into a first chunk, a second chunk, and a third chunk; providing the first chunk and second chunk to the first processing pipeline; and providing the third chunk to the second processing pipeline. In some embodiments, the method further comprises: 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 in response to identifying the third criterion. In some embodiments, the second processing device is assigned to a second application of the host computing device different from the first application. One or more embodiments of the present disclosure are also directed to a storage device comprising: a first processing device including a first processor and a first memory, the first memory storing a first instruction set associated with a first application of a host computing device; a second processing device including a second processor, a second memory, and a buffer, the second memory storing a second instruction set associated with the first application; and