Method and apparatus for flexible buffers in an XOR engine
AssigneeMarvell International Ltd.
InventorsDavid Geddes, Xinhai Kang
Life of this patent
Estimating the term…
Abstract
A method and apparatus uses a flexible buffering scheme in an XOR engine to generate checksums, allowing a user to recover data when a disk drive partly or completely fails. An XOR engine may include three or more arithmetic units and three or more local result buffers, which may be used to generate a combination of any of a “P” checksum, a “Q” checksum, and an unmodified copy of the user data, in a single read. The local result buffers and arithmetic units allow the use of multiple Galois field Multiply coefficients so that multiple distinct “Q” checksums may be generated with only one read of the user data.
Claims20
An apparatus comprising:
- a hardware engine that is configured to generate a first result, a second result, and a third result from the received user data, the first result comprising any of a first type of checksum, a second type of checksum, or an unmodified copy of the received user data, the second result comprising any of the first type of checksum, the second type of checksum, or the unmodified copy of the received user data, and the third result comprising any of the first type of checksum, the second type of checksum, or the unmodified copy of the received user data;
- a first local result buffer configured to store the first result;
- a second local result buffer configured to store the second result;
- and
- a third local result buffer configured to store the third result.
A method comprising:
- reading received user data into a hardware engine using a single read from a memory unit;
- generating, by the hardware engine, a first result, a second result, and a third result from the received user data, the first result comprising any of a first type of checksum, a second type of checksum, or an unmodified copy of the received user data, the second result comprising any of the first type of checksum, the second type of checksum, or the unmodified copy of the received user data, and the third result comprising any of the first type of checksum, the second type of checksum, or the unmodified copy of the received user data;
- storing the first result in a first local result buffer;
- storing the second result in a second local result buffer;
- and
- storing the third result in a third local result buffer.
An apparatus comprising:
- a first arithmetic unit configured to perform a Galois field (GF) multiply operation followed by an XOR operation on received user data to generate a first result;
- a second arithmetic unit configured to perform an additional XOR operation on the received user data to generate a second result;
- a first local result buffer configured to store any of the first result, the second result, or an unmodified copy of the received user data;
- a second local result buffer configured to store any of the first result, the second result, or the unmodified copy of the received user data;
- and
- a third local result buffer configured to store any of the first result, the second result, or the unmodified copy of the received user data.
Dependencies are inferred from the claim text.