Introduction

is used, then the stripe size is 1MB (4 chunks × 256 K). So, for maximum performance, the host could either send 5 × 1 MB write commands, or 20 × 256 K write commands.

The effectiveness of the controller’s ability to perform a Full Stripe Write depends on a number of parameters.

Sequential access

If the commands sent from the host are not sequential, the controller will not be able to cluster them together. So, unless each individual access is sufficient to fill a stripe, a Full Stripe Write will not occur.

Number of outstanding commands

For the controller to successfully cluster commands, there has to be a number of write commands sent simultaneously. Setting the host to send up to 64 commands should prove adequate. Alternatively, enabling writeback cache will have a similar effect, as the controller can then cluster sequential commands even if the host only sends a small number of commands at a time.

Access size

With very small accesses, it is necessary to have a large number of commands to cluster together to fill up a full stripe. So, the larger the access size the better. It is best to use an access size that will fill a chunk. Of course, even if a stripe is not filled up, small sequential writes will still benefit from command clustering.

Access alignment

The alignment of a command from a host system is determined by the command’s address. In an optimal system, a write of one chunk of data would reside exactly within a chunk on one disk. However, if this is not the case, this write will be split up into two separate writes to two different data drives. This will have a negative effect on performance. To overcome these problems, you can, with more sophisticated operating systems, set the access size and alignment to an optimal value.

www.gateway.com

229