1. A method for managing a compressed cache, the method comprising: upon receiving a size of data to be stored to the compressed cache, allocate, using a first hardware engine, a first number of virtual memory pages sufficient to store the data; allocate, using the first hardware engine, a first number of physical memory pages to fill the first number of virtual memory pages; compress the data using a second hardware engine; store the compressed data into a second number of physical memory pages; and deallocate, using the first hardware engine, one or more physical memory pages of the first number of physical memory pages not used to store the compressed data.