Non-volatile storage device offloading of host tasks
Various implementations relate to grouping a plurality of non-volatile memory devices into at least one first group, determining that a number of the at least one first group is greater than 1, selecting a first leader device from first non-volatile memory devices in each of the at least one first group, and determining first result data by performing an operation based on first data from at least one of the first non-volatile memory devices in each of the at least one first group.
1 . A method, comprising: grouping a plurality of non-volatile memory devices into at least one first group and at least one other group of first non-volatile memory devices, wherein host data is divided among each of the plurality of non-volatile memory devices and the at least one first group and the at least one other group are configured to independently perform an operation on the divided host data; selecting a first leader device, from the first non-volatile memory devices, in each of the at least one first group and at least one other group, wherein each of the plurality of non-volatile memory devices is assigned a numerical identifier, and wherein selecting is performed based on a numerical comparison between the numerical identifiers of each of the first non-volatile memory devices in each of the at least one first group and at least one other group; and determining, by a controller of the first leader device in each of the at least one first group and at least one other group, first result data by obtaining data from the first leader device and by transferring first data from at least one of the first non-volatile memory devices in the at least one first group and the at least one other group to the first leader device respective to each group and performing the operation to form the first result data at the first leader device respective to each group by combining together the obtained data from the first leader device and the transferred first data from the at least one of the first non-volatile memory devices.
2 . The method of claim 1 , wherein transferring includes issuing a DMA transfer request and in response receiving, by a buffer of the first leader device, the first data from the at least one of the first non-volatile memory devices in each of the at least one first group and at least one other group, wherein determining the first result data comprises computing the first result data based on the data from the first leader device and the first data received from the at least one of the first non-volatile memory devices.
3 . The method of claim 2 , further comprising: grouping the first leader device from each of the at least one first group and at least one other group into at least one second group of second non-volatile memory devices; and in response to grouping into the at least one second group, determining whether a second number of groups of the at least one second group is greater than 1.
4 . The method of claim 3 , further comprising: determining that the second number of groups of the at least one second group is greater than 1; selecting a second leader device from the second non-volatile memory devices in each of the at least one second group; and determining, by a second controller of the second leader device, second result data by performing an operation based on second data from at least one of the second non-volatile memory devices in each of the at least one second group.
5 . The method of claim 3 , further comprising: determining that the second number of groups of the at least one second group is not greater than 1; determining that the first result data is a final result.
6 . The method of claim 1 , wherein the operation comprises an XOR operation.
7 . The method of claim 1 , wherein at least one managing non-volatile memory device groups the plurality of non-volatile memory devices into the at least one first group and at least one other group based on device context information; and the at least one managing non-volatile memory device determines that the number of groups of the at least one first group and at least one other group is greater than 1 based on the device context information.
8 . The method of claim 7 , wherein the device context information comprises addresses of the plurality of non-volatile memory devices or addresses of buffers of the plurality of non-volatile memory devices.
9 . The method of claim 7 , wherein the device context information comprises permission information of the plurality of non-volatile memory devices or buffers of the plurality of non-volatile memory devices.
10 . The method of claim 7 , wherein the device context information comprises priority information for processing the data corresponding to the host command.
11 . A system, comprising: at least one processor configured to: group a plurality of non-volatile memory devices into at least one first group and at least one other group of first non-volatile memory devices, wherein host data is divided among each of the plurality of non-volatile memory devices and the at least one first group and the at least one other group are configured to independently perform an operation on the divided host data; select a first leader device, from the first non-volatile memory devices, in each of the at least one first group and at least one other group, wherein each of the plurality of non-volatile memory devices is assigned a numerical identifier, and wherein selecting is performed based on a numerical comparison between the numerical identifiers of each of the first non-volatile memory devices in each of the at least one first group and at least one other group; and determine first result data by obtaining data from the first leader device and by transferring first data from at least one of the first non-volatile memory devices in the at least one first group and the at least one other group to the first leader device respective to each group and performing the operation to form the first result data at the first leader device respective to each group by combining together the obtained data from the first leader device and the transferred first data from the at least one of the first non-volatile memory devices.
12 . The system of claim 11 , wherein the at least one processor is further configured to perform the transferring by issuing a DMA transfer request and, in response, a buffer of the first leader device receives the first data from the at least one of the first non-volatile memory devices in each of the at least one first group and at least one other group, wherein determining the first result data comprises computing the first result data based on the data from the first leader device and the first data received from the at least one of the first non-volatile memory devices.
13 . The system of claim 12 , wherein the at least one processor is configured to: group the first leader device from each of the at least one first group and at least one other group into at least one second group of second non-volatile memory devices; and in response to grouping into the at least one second group, determining whether a second number of groups of the at least one second group is greater than 1.
14 . The system of claim 13 , wherein the at least one processor is configured to: determine that the second number of groups of the at least one second group is greater than 1; select a second leader device from the second non-volatile memory devices in each of the at least one second group; and determine, by a second controller of the second leader device, second result data by performing an operation based on second data from at least one of the second non-volatile memory devices in each of the at least one second group.
15 . The system of claim 13 , wherein the at least one processor is configured to: determine that the second number of groups of the at least one second group is not greater than 1; determine that the first result data is a final result.
16 . The system of claim 15 , wherein the operation comprises an XOR operation.
17 . At least one non-transitory processor-readable medium comprising processor-readable instructions, such that, when executed, causes at least one processor to: group a plurality of non-volatile memory devices into at least one first group and at least one other group of first non-volatile memory devices, wherein host data is divided among each of the plurality of non-volatile memory devices and the at least one first group and the at least one other are configured to independently perform an operation on the divided host data; select a first leader device, from the first non-volatile memory devices, in each of the at least one first group and at least one other group, wherein each of the plurality of non-volatile memory devices is assigned a numerical identifier, and wherein selecting is performed based on a numerical comparison between the numerical identifiers of each of the first non-volatile memory devices in each of the at least one first group and at least one other group; and determine first result data by obtaining data from the first leader device and by transferring first data from at least one of the first non-volatile memory devices in the at least one first group and the at least one other group to the first leader device respective to each group and performing the operation to form the first result data at the first leader device respective to each group by combining together the obtained data from the first leader device and the transferred first data from the at least one of the first non-volatile memory devices.
18 . The non-transitory processor-readable medium of claim 17 , wherein transferring includes issuing a DMA transfer request and in response receiving, by a buffer of the first leader device, the first data from the at least one of the first non-volatile memory devices in each of the at least one first group and at least one other group, wherein determining the first result data comprises computing the first result data based on the data from the first leader device and the first data received from the at least one of the first non-volatile memory devices.
19 . The non-transitory processor-readable medium of claim 18 , wherein the at least one processor is caused to: group the first leader device from each of the at least one first group and at least one other group into at least one second group of second non-volatile memory devices; and in response to grouping into the at least one second group, determining whether a second number of groups of the at least one second group is greater than 1.
20 . The non-transitory processor-readable medium of claim 19 , wherein the at least one processor is caused to: determine that the second number of groups of the at least one second group is greater than 1; select a second leader device from the second non-volatile memory devices in each of the at least one second group; and determine, by a second controller of the second leader device, second result data by performing an operation based on second data from at least one of the second non-volatile memory devices in each of the at least one second group.