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.
Claims16
An apparatus comprising:
- a hardware engine that generates a first result, a second result, and a third result in response to at least one operation request, each of said first, second, and third results being selected from the group consisting of received user data, a first type of checksum, and a second type of checksum, the received user data read into said hardware engine using a single read from a memory unit;
- a first local result buffer that stores any of said first, second, or third results;
- a second local result buffer that stores any of said first, second, or third results;
- and
- a third local result buffer that stores any of said first, second, or third results,
- such that at least one of a plurality of said first type of checksum or a plurality of said second type of checksum may be generated from said received user data.
An apparatus comprising:
- a hardware engine that generates a first result, a second result, and a third result in response to at least one operation request, each of said first, second, and third results being selected from the group consisting of received user data, a first type of checksum, and a second type of checksum, the received user data read into said hardware engine using a single read from a memory unit;
- and
- a plurality of arithmetic units, each of said arithmetic units being capable of performing one of a Galois field (GF) Multiply operation, an exclusive-OR (XOR) operation, or a GF Multiply operation followed by an XOR operation, and each of said arithmetic units containing a plurality of GF Multiply coefficients to generate a plurality of “Q” checksums,
- such that at least one of a plurality of said first type of checksum or a plurality of said second type of checksum is generated from said received user data.
A method comprising:
- reading received user data into one of a plurality of exclusive-OR (XOR) engines using a single read from a memory unit;
- generating a first result in response to a first operation request;
- generating a second result in response to a second operation request;
- generating a third result in response to a third operation request;
- each of said first through third results being selected from the group consisting of received user data, a first type of checksum, and a second type of checksum;
- and
- storing any of said first, second, and third results in a respective one of a plurality of local result buffers,
- such that at least one of a plurality of said first type of checksum or a plurality of said second type of checksum is generated from said received user data.
Dependencies are inferred from the claim text.