Abstract:
Disclosed is an integrated circuit having a decompression block. The decompression block is configured as a pipeline that may include a length module (200) and a distance module (800). The length module evaluates a length for each symbol. The distance module may resolve distances in an at least one length-distance pair. The length module (200) may include a shifter stage (230) configured to store two consecutive words, and control a sliding window of symbols, in order to extract literals or distances. The length module (200) may include a mapper stage (240) configured to map the literals or distances to positions in the output stream. The distance module (800) may include a pointer replacement stage (810) and a resolution stage (820). The pointer replacement stage (810) configured to replace distances, represented as pointers within an output word, with either literals or other pointers to prior words. The resolution stage (820) configured to replace the other pointers with literals, and output the literals (807).
Abstract:
Systems, devices, and methods for managing fragmentation in hardware-assisted compression of data in physical computer memory which may result in reduced internal fragmentation. An example computer-implemented method comprises: providing, by a memory management program to compression hardware, a compression command including an address in physical computer memory of data to be compressed and a list of at least two available buffers for storing compressed data; using, by the compression hardware, the address included in the compression command to retrieve uncompressed data; compressing the uncompressed data; and selecting, by the compression hardware, from the list of at least two available buffers, at least two buffers for storing compressed data based on an amount of space that would remain if the compressed data were stored in the at least two buffers, wherein each of the at least two selected buffers differs in size from at least one other of the selected buffers.