Systems and methods for executing data processing functions
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.
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.