The Data Compression Opportunity
Double the System on Chip main memory capacity with lossless compression
Research has long identified that there is a substantial amount of redundant information stored in the main memory of x86, ARM and RISC V based System on Chip (SoC). This redundant information is a huge data compression opportunity that can mitigate the ever growing memory wall. What if the main memory could be compressed in real time and the space made available could be delivered back to the memory management system as available memory bandwidth and memory capacity?
Main memory has a significant impact on the performance, energy consumption and cost of any computer system. In general, as compute performance doubles, main memory capacity and memory bandwidth must double as well. This essentially doubles the cost and energy consumption of memory in computerised devices. However, doubling the memory resources may not be possible as the computing performance is scaling at a pace that the memory hierarchy has difficulties to match, computer architects hit the above mentioned memory wall.
ZeroPoint Technologies offers a unique family of IP-blocks, called Ziptilion™ that sits alongside the memory controller on the System on Chip in a compute device. The benefit of this ingenious family of IP-blocks is that memory capacity increases and memory bandwidth is improved substantially, by a factor of 2-3x depending on the workload. This potentially yields a significant performance boost at a much lower cost and energy consumption than if the amount of physical memory increased correspondingly.
The Ziptilion™ family of IP-blocks include patented technology that manages to, on average, double memory capacity and memory bandwidth by dynamically compressing data in main memory fully transparently to user/system-level software. Ziptilion™ solves two challenges:
- how to dynamically compress and decompress so fast that it does not affect the memory latency adversely and
- how to effectively manage and expose the freed-up memory space transparently.
As for the first challenge, available hardware compression methods are simply way too slow to be useful for dynamic compression of memory data. In contrast, our proprietary lossless compression technology applies to any type of data and is so fast that it imposes virtually no impact on the memory latency. This is enabled by unique compression algorithms developed with the goal of offering a high compression level for a broad range of data types and unique technical approaches that allow for fast implementation of dynamic compression and recompression.
Concerning the second challenge, dynamic compression of memory data leads to memory management challenges as the size of data structures, which is fixed in a conventionally main memory, vary in compressed memory. To manage data structures in main memory that dynamically change their size is a challenge often delegated to the operating system. Our unique solution hides this completely to the user/system-level software, in a transparent fashion.
The Ziptilion™ IP-block comes with a software driver that expands the amount of physical memory. As data is dynamically compressed in the available physical memory, unused memory is freed up. This freed-up memory is monitored and collected by the software driver and is exposed to the memory management system.
Modern operating systems, such as Linux, use software based memory compression technologies called ZRAM or ZSWAP (depending on the target system) to reserve part of the system’s working memory to store pages, which are swapped out, in compressed form to create a memory-based swap space. Contrary to ZRAM/ZSWAP, that compress only the swapped-out pages, Ziptilion™ expands the entire memory. Ziptilion™ does not “steal” memory from the system’s working memory, but it creates more space by compressing all memory pages. Another important difference between software and hardware based compression technologies is of course the speed and energy efficiency. Hardware based memory compression technologies are magnitudes faster at a significantly higher energy efficiency.
Compression technologies have been used broadly for storage and for networking. A first common type of data stored/transferred is media. Such lossy and data-type specific compression techniques have been developed that work well on e.g. compressing images, video and audio. Another common type of data stored/transferred is text. Here, lossless Lempel Ziv (LZ) based compression techniques are used. While LZ compression was used in IBMs memory expansion technology, it was too slow and added significant latency to memory accesses. The reason is that LZ compression algorithms need big dictionaries to work well which will lead to unacceptable overheads to decompress data.
Other proposed memory expansion technologies have used simple compression techniques where one can compress/decompress a memory block in a few cycles. One example is Base-Delta Immediate (BDI) encoding, where the difference between a value and a reference value is stored instead of the value itself. Another example is pattern-based compression (PBC) techniques in which a few common patterns can be detected, for example a strike of the value zero, small integers etc. BDI and PBC do not compress by much, typically only 1.4X-1.5X on average.
ZeroPoint Technologies uses entropy-based compression. Unlike LZ-based compression, ZeroPoint’s proprietary statistical compression off-loads the management of the dictionary-based encodings from the compression and decompression process, thus cutting down on the overhead in the compression and decompression process significantly. A unique feature is that, to establish efficient encodings, memory data is analyzed in the background through intelligent sampling. This takes into account analysis of inferred data types to establish highly efficient encodings.
The baseline entropy-based family of compression techniques available in our IP portfolio do well across a wide range of benchmarks and typically expands memory by 2-3x depending on the workload. Apart from entropy-based compression, our IP portfolio also includes a range of compression algorithms that do data-type specific optimizations and combines entropy-based compression with deduplication. With these compression algorithms in place, we anticipate a memory expansion of >3x in future releases of the Ziptilion™ family of IP blocks.
ZeroPoint Technologies offers the Ziptilion™ IP block that is capable of expanding memory capacity and effective memory bandwidth by a factor 2-3x using proprietary compression algorithms, depending on the workload. Ziptilion™ is fully transparent to the operating system, it interfaces to the memory controller and to the memory management system. Thanks to our ultra-tuned accelerators and that data is compressed when fetched from memory, the memory access latency is often shorter with Ziptilion™ than without.
The benefit of a System on Chip implementing ZeroPoint’s technology is a significantly more efficient compute system. Our research verifies that real time main memory compression increases performance per watt with up to 50%. Systems with main memory compression are environmentally friendly and cost efficient. So, why continue to waste memory, compress it!