Method and apparatus for compressing data sectors in storage drive
AssigneeMarvell World Trade Ltd.
InventorsGregory Burd, Xueshi Yang
Life of this patent
Estimating the term…
Abstract
A storage drive includes a non-volatile semiconductor memory, and interface, a compression module, a sector module, and a control module. The interface is configured to receive first data sectors transmitted from a host to the storage drive. The compression module is configured to compress the first data sectors to generate second data sectors. Lengths of the second data sectors vary. The first sector module is configured to generate third data sectors by adding nuisance data to (i) the second data sectors, or (ii) an encrypted version of the second data sectors, wherein lengths of the third data sectors do not vary. The control module is configured to store the third data sectors in the non-volatile semiconductor memory.
Claims20
A storage drive comprising:
- a non-volatile semiconductor memory;
- an interface configured to receive a first plurality of data sectors transmitted from a host to the storage drive;
- a compression module configured to compress the first plurality of data sectors to generate a second plurality of data sectors, wherein lengths of the second plurality of data sectors vary, and wherein the second plurality of data sectors comprise a first data sector and a second data sector;
- a first sector module configured to generate a third plurality of data sectors by adding nuisance data to (i) the second plurality of data sectors, or (ii) an encrypted version of the second plurality of data sectors, wherein lengths of the third plurality of data sectors do not vary, and wherein the first sector module combines the first data sector and the second data sector of the second plurality of data sectors to generate one of the third plurality of data sectors;
- and
- a control module configured to store the third plurality of data sectors in the non-volatile semiconductor memory.
A storage drive comprising:
- a non-volatile semiconductor memory;
- an interface configured to receive a first plurality of data sectors transmitted from a host to the storage drive;
- a compression module configured to compress the first plurality of data sectors to generate a second plurality of data sectors, wherein lengths of the second plurality of data sectors vary;
- a first sector module configured to generate a third plurality of data sectors by adding nuisance data to (i) the second plurality of data sectors, or (ii) an encrypted version of the second plurality of data sectors, wherein lengths of the third plurality of data sectors do not vary;
- a control module configured to store the third plurality of data sectors in the non-volatile semiconductor memory;
- a buffer managing module configured to store the second plurality of data sectors in a buffer;
- a first encryption module configured to encrypt the first plurality of data sectors to provide encrypted data sectors;
- a decryption module configured to (i) receive the encrypted data sectors from the buffer managing module, and (ii) decrypt the encrypted data sectors to provide decrypted data sectors;
- and
- a second encryption module configured to encrypt the second plurality of data sectors to provide the encrypted version of the second plurality of data sectors,
- wherein the compression module is configured to, based on decrypted data sectors, generate the second plurality of data sectors, and
- wherein the first sector module generates the third plurality of data sectors by adding the nuisance data to the encrypted version of the second plurality of data sectors.
A method comprising:
- receiving a first plurality of data sectors transmitted from a host to a storage drive;
- compressing the first plurality of data sectors to generate a second plurality of data sectors, wherein lengths of the second plurality of data sectors vary, and wherein the second plurality of data sectors comprise a first data sector and a second data sector;
- generating a third plurality of data sectors by adding nuisance data to (i) the second plurality of data sectors, or (ii) an encrypted version of the second plurality of data sectors, wherein lengths of the third plurality of data sectors do not vary, and wherein generating the third plurality of data sectors comprises combining the first data sector and the second data sector of the second plurality of data sectors to generate one of the third plurality of data sectors;
- and
- storing the third plurality of data sectors in a non-volatile semiconductor memory.
A method comprising:
- receiving a first plurality of data sectors transmitted from a host to a storage drive;
- compressing the first plurality of data sectors to generate a second plurality of data sectors, wherein lengths of the second plurality of data sectors vary;
- generating a third plurality of data sectors by adding nuisance data to (i) the second plurality of data sectors, or (ii) an encrypted version of the second plurality of data sectors, wherein lengths of the third plurality of data sectors do not vary;
- storing the third plurality of data sectors in a non-volatile semiconductor memory;
- storing the second data sectors in a buffer;
- encrypting the first plurality of data sectors to provide encrypted data sectors;
- receiving the encrypted data sectors from the buffer managing module;
- decrypting the encrypted data sectors to provide decrypted data sectors;
- and
- encrypting the second plurality of data sectors to provide the encrypted version of the second plurality of data sectors,
- wherein the second plurality of data sectors are generated based on decrypted data sectors, and
- wherein the third plurality of data sectors are generated by adding the nuisance data to the encrypted version of the second plurality of data sectors.
Dependencies are inferred from the claim text.