A data storage device includes a memory array for storing data; a host interface for providing an interface with a host computer running an application; a central control unit configured to receive a command in a submission queue from the application and initiate a search process in response to a search query command; a preprocessor configured to reformat data contained in the search query command and generate a reformatted data; and one or more data processing units configured to extract one or more features from the reformatted data and perform a data operation on the data stored in the memory array in response to the search query command and return matching data from the data stored in the memory array to the application via the host interface.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A data storage device comprising: a memory array for storing data; a host interface for providing an interface with a host computer running an application; a central control unit configured to receive a command in a submission queue from the application and initiate a search process in response to a search query command; a preprocessor configured to reformat data contained in the search query command based on a type of the data and generate a reformatted data; and one or more data processing units configured to extract one or more features from the reformatted data and perform a data operation on the data stored in the memory array in response to the search query command and return matching data from the data stored in the memory array to the application via the host interface. 2. The data storage device of claim 1, wherein the data storage device is a non-volatile memory express over fabrics (NVMeoF) device. 3. The data storage device of claim 2, wherein the search query command is an NVMeoF command received over an Ethernet connection. 4. The data storage device of claim 1, wherein the search query command includes an image data, and wherein the preprocessor is configured to convert the image data in an RGB format. 5. The data storage device of claim 1, wherein the one or more data processing units are configured to generate a plurality of binary codes corresponding to the one or more extracted features, and store the one or more extracted features in an input buffer. 6. The data storage device of claim 1, wherein each of the one or more data processing units includes one or more convolution engines (CEs), and wherein each of the one or more convolution engines is configured to extract the one or more features in a convolutional neural network (CNN) layer. 7. The data storage device of claim 6, wherein each of the one or more convolution engines is configured to compute a neural descriptor for each convolutional neural network (CNN) layer, compress the neural descriptor, and store the one or more extracted features in an output buffer. 8. The data storage device of claim 1, wherein the one or more data processing units are further configured to extract stored features for the data stored in the memory array and compare the stored features with the extracted features of the reformatted data. 9. The data storage device of claim 8, wherein the one or more data processing units are further configured to calculate a Hamming distance for each of the data stored in the memory array. 10. The data storage device of claim 9, wherein the one or more data processing units are further configured to select the matching data from the data stored in the memory array based on the Hamming distance, store the matching data in the output buffer, and transmit the matching data to the application over the host interface. 11. The data storage device of claim 1, further comprising a memory manager including one or more graphics processing units (GPUs) configured to perform machine learning on the data stored in the memory array. 12. A method for operating a data storage device comprising: receiving a command in a submission queue from an application running on a host computer; initiating a search process in response to a search query command; generating a reformatted data by changing a format of data contained in the search query command based on a type of the data; extracting one or more features from the reformatted data; performing a data operation on data stored in a memory array of the data storage device in response to the search query command; and returning matching data from the data stored in the memory array to the application via a host interface established between the host computer and the data storage device. 13. The method of claim 12, wherein the data storage device is a non-volatile memory express over fabrics (NVMeoF) device. 14. The method of claim 13, wherein the search query command is an NVMeoF command received over an Ethernet connection. 15. The method of claim 12, further comprising converting an image data included in the search query command in an RGB format. 16. The method of claim 12, further comprising: generating a plurality of binary codes corresponding to the one or more extracted features; and storing the one or more extracted features in an input buffer. 17. The method of claim 12, wherein the features are extracted using one or more convolution engines (CEs) of the data storage device, and wherein each of the one or more convolution engines extracts the one or more features in a convolutional neural network (CNN) layer. 18. The method of claim 17, wherein each of the one or more convolution engines is configured to compute a neural descriptor for each convolutional neural network (CNN) layer, compress the neural descriptor, and store the one or more extracted features in an output buffer. 19. The method of claim 12, further comprising: extracting stored features for the data stored in the memory array; and comparing the stored features with the one or more extracted features of the reformatted data. 20. The method of claim 19, further comprising: calculating a Hamming distance for each of the data stored in the memory array. 21. The method of claim 20, further comprising: selecting the matching data from the data stored in the memory array based on the Hamming distance; and storing the matching data in the output buffer; and transmitting the matching data to the application over the host interface. 22. The method of claim 12, wherein the data storage device includes a memory manager including one or more graphics processing units (GPUs) configured to perform machine learning on the data stored in the memory array.