Data manipulation engine
First Claim
1. A data storage device, comprising:
- a buffer;
a host interface configured to store data from a host device in the buffer, to send data from the buffer to the host device, to receive a first user data from the host device, to write the first user data to the buffer, to generate a first checksum based on the first user data received from the host device, and to write the first checksum to the buffer;
a storage media interface configured to store data from storage media in the buffer, to send data from the buffer to the storage media, to receive a second user data from the storage media, and to write the second user data to the buffer; and
a data manipulation engine configured to receive a command, the data manipulation engine comprising;
a receive pipe configured to read first and second data blocks from first and second locations in the buffer based on the received command, the first data block including the first user data and the first checksum and the second data block including the second user data and a second checksum, and to check the validity of the first and second user data based on the first and second checksums, respectively;
an arithmetic logic unit configured to receive the first and second user data from the receive pipe, and to perform a logic operation on the first and second user data to generate third user data based on the received command; and
a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate a third checksum based on the third user data, to append the third checksum to the third user data to produce a third data block, and to write the third data block to a third location in the buffer based on the received command.
8 Assignments
0 Petitions
Accused Products
Abstract
Data storage devices are provided according to various embodiments of the present invention. In one embodiment, a data storage device comprises a host interface, a buffer, a storage media interface, and a data manipulation engine. The data manipulation engine comprises a receive pipe configured to read first and second data blocks from first and second locations in the buffer and to check the validity of the first and second data blocks, an arithmetic logic unit configured to perform a logic operation on first and second user data of the first and second data blocks, respectively, to generate third user data, and a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate and append a third checksum to the third user data to produce a third data block, and to write the third data block to a third location in the buffer.
-
Citations
17 Claims
-
1. A data storage device, comprising:
-
a buffer; a host interface configured to store data from a host device in the buffer, to send data from the buffer to the host device, to receive a first user data from the host device, to write the first user data to the buffer, to generate a first checksum based on the first user data received from the host device, and to write the first checksum to the buffer; a storage media interface configured to store data from storage media in the buffer, to send data from the buffer to the storage media, to receive a second user data from the storage media, and to write the second user data to the buffer; and a data manipulation engine configured to receive a command, the data manipulation engine comprising; a receive pipe configured to read first and second data blocks from first and second locations in the buffer based on the received command, the first data block including the first user data and the first checksum and the second data block including the second user data and a second checksum, and to check the validity of the first and second user data based on the first and second checksums, respectively; an arithmetic logic unit configured to receive the first and second user data from the receive pipe, and to perform a logic operation on the first and second user data to generate third user data based on the received command; and a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate a third checksum based on the third user data, to append the third checksum to the third user data to produce a third data block, and to write the third data block to a third location in the buffer based on the received command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for manipulating data in a data manipulation engine of a storage media controller, the storage media controller comprising a buffer, a host interface configured to store data from a host device in the buffer and to send data from the buffer to the host device and storage media interface configured to store data from storage media in the buffer and to send data from the buffer to the storage media, the method comprising:
-
receiving a command; reading first and second data blocks from first and second locations in the buffer based on the received command, the first data block including first user data and a first checksum and the second data block including second user data and a second checksum; checking the validity of the first and second user data based on the first and second checksums, respectively; performing, based on the received command, a logical operation on the first and second user data engine to generate third user data; generating a third checksum based on the third user data; appending the third checksum to the third user data to produce a third data block; writing the third data block to a third location in the buffer based on the received command; generating a data pattern; and writing the generated data pattern to the buffer. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A data storage device, comprising:
-
a buffer; a host interface configured to store data from a host device in the buffer, to send data from the buffer to the host device, to receive first user data and a global checksum from the host device, to generate a local checksum based on the first user data received from the host device, and to write a first data block to the buffer; a storage media interface configured to store data from storage media in the buffer and to send data from the buffer to the storage media; and a data manipulation engine configured to receive a command, the data manipulation engine comprising; a receive pipe configured to read the first data block and a second data block from a first location and a second location in the buffer based on the received command, the first data block including the first user data and a first checksum and the second data block including second user data and a second checksum, and to check the validity of the first and second user data based on the first and second checksums, respectively, wherein the first checksum includes the local checksum and the global checksum; an arithmetic logic unit configured to receive the first and second user data from the receive pipe, and to perform a logic operation on the first and second user data to generate third user data based on the received command; and a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate a third checksum based on the third user data, to append the third checksum to the third user data to produce a third data block, and to write the third data block to a third location in the buffer based on the received command.
-
-
16. A data storage device, comprising:
-
a buffer; a host interface configured to store data from a host device in the buffer and to send data from the buffer to the host device; a storage media interface configured to store data from storage media in the buffer and to send data from the buffer to the storage media; and a data manipulation engine configured to receive a command, the data manipulation engine comprising; a receive pipe configured to read first and second data blocks from first and second locations in the buffer based on the received command, the first data block including first user data and a first checksum and the second data block including second user data and a second checksum, and to check the validity of the first and second user data based on the first and second checksums, respectively; an arithmetic logic unit configured to receive the first and second user data from the receive pipe, to perform a logic operation on the first and second user data to generate third user data based on the received command, and to generate a data pattern; and a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate a third checksum based on the third user data, to append the third checksum to the third user data to produce a third data block, to write the third data block to a third location in the buffer based on the received command, to receive the data pattern from the arithmetic logic unit, to generate a fourth checksum based on the data pattern, to append the fourth checksum to the data pattern to produce a fourth data block, and to write the fourth data block to the buffer.
-
-
17. A data storage device, comprising:
-
a buffer; a host interface configured to store data from a host device in the buffer and to send data from the buffer to the host device; a storage media interface configured to store data from storage media in the buffer and to send data from the buffer to the storage media; and a data manipulation engine configured to receive a command, the data manipulation engine comprising; a receive pipe configured to read first and second data blocks from first and second locations in the buffer based on the received command, the first data block including first user data and a first checksum and the second data block including second user data and a second checksum, to check the validity of the first and second user data based on the first and second checksums, respectively, and to perform error correction on the first user data based on the first checksum when the receive pipe determines that the first user data is invalid; an arithmetic logic unit configured to receive the first and second user data from the receive pipe, and to perform a logic operation on the first and second user data to generate third user data based on the received command; a transmit pipe configured to receive the third user data from the arithmetic logic unit, to generate a third checksum based on the third user data, to append the third checksum to the third user data to produce a third data block, and to write the third data block to a third location in the buffer based on the received command; and a controller configured to receive the command from a microprocessor, to control the logical operations performed by the arithmetic logic unit based on the received command, and to send an error message to the microprocessor when the receive pipe is unable to correct the first user data.
-
Specification