Patent ID: 7606954

Claim:
A storage controller comprising: a host interface coupled to a host, the host interface to receive at least one of a read request and a write request from the host, the write request, as received from the host by the host interface, including a write data field indicating write data to be written, an address field indicating an address to which to write the write data in a storage unit, and a compression control field, the compression control field being distinct from the address field and specifying whether or not to compress the write data, and if the write data is to be compressed, the compression control field specifying which of a plurality of compression methodologies to be applied to the write data; a command buffer to store the read and write requests received through the host interface; a storage interface to the storage unit; a compression engine coupled between the host interface and the storage interface, with an input to receive the write data through the host interface and an output to send compressed data to the storage interface via a data buffer; and a compressor controller having an input coupled to the command buffer, the compressor controller being to control a multiplexer, based upon the compression control field, so as to one of send the write data to the compression engine and send the write data to the data buffer in a way that bypasses the compression engine, the compression controller being to selectively turn on and turn off compression and to apply one of the plurality of compression methodologies, based upon the compression control field, of the write data to be sent to a location in the storage unit specified by the address; wherein if the write data is to be compressed, a determination of which of the plurality of compression methodologies is to be applied to the write data, as specified in the compression control field, is made by BIOS firmware.