A method for managing solid state memory in a system including a solid state memory and a solid state memory controller coupled to the solid state memory, wherein the solid state memory controller includes a decompression engine, the method comprising:
- storing compressed data on the solid state memory;
- a device initiating a read of requested data from the solid state memory, wherein the requested data comprises compressed requested data stored on the solid state memory in a compressed format;
- the solid state memory controller reading the compressed requested data from the solid state memory;
- the solid state memory controller decompressing the compressed requested data to produce uncompressed requested data using parallel decompression, wherein said decompressing comprises:
- examining a plurality of codes from the compressed requested data in parallel in a current decompression cycle, wherein each of the plurality of codes describes one or more symbols in the uncompressed requested data;
- generating a plurality of selects in parallel in response to said examining the plurality of codes in parallel, wherein each of the plurality of selects points to a symbol in a combined history window;
- and
- generating the uncompressed requested data comprising the plurality of symbols using the plurality of selects;
- and
- the solid state memory controller providing the uncompressed requested data to the device.