How compression works in an object-oriented memory architecture

How compression works in an object-oriented memory architecture


A team of engineers from MIT developed an object-oriented memory hierarchy for more efficient work with data. The article deals with how it works.


/ PxHere /PD

As is known, the growth in performance of modern CPUs is not accompanied by a corresponding decrease in the delay in accessing the memory. The difference in indicators from year to year can go up to 10 times ( PDF, page 3 ). As a result, a bottleneck occurs, which does not make full use of available resources and slows down data processing.

Performance degradation is caused by the so-called decompression delay. In some cases, up to 64 processor cycles can be spent on preparatory data decompression.

For comparison, the addition and multiplication of floating point numbers take no more than ten cycles. The problem is that the memory works with fixed-size data blocks, and applications operate on objects that can contain different types of data and differ from each other in size. To solve the problem, MIT engineers developed an object-oriented memory hierarchy that optimizes data processing.

How the technology works


The solution is based on three technologies: Hotpads, Zippads and the COCO compression algorithm.

Hotpads is a program-driven hierarchy of ultra-fast register memory ( scratchpad ). These registers are called pads (pads) and their three pieces are from L1 to L3. They contain objects of different sizes, metadata, and pointer arrays.

In fact, the architecture is a system of caches, but sharpened to work with objects. The level of the pad on which the object is located depends on how often it is used. If one of the levels is “full”, the system starts a mechanism similar to “garbage collectors” in Java or Go. It analyzes which objects are used less often than others and automatically moves them between levels.

Zippads works on the basis of Hotpads - archives and unarchives data that arrives or leaves the last two levels of the hierarchy - the L3 pad and main memory. In the first and second pads, data is stored unchanged.



Zippads compresses objects whose size does not exceed 128 bytes. Larger objects are divided into parts, which are then placed in different parts of the memory. According to the developers, this approach increases the ratio of efficiently used memory.

For the compression of objects, the COCO (Cross-Object COmpression) algorithm is used, which will be described later, although the system can also work with Base-Delta-Immediate or FPC . The COCO algorithm is a kind of differential compression ( differential compression ). It compares objects with “basic” and removes duplicate bits — see the diagram below:

< br/>
According to MIT engineers, their object-oriented memory hierarchy is 17% more productive than classical approaches. It is much closer in its structure to the architecture of modern applications, so the new method has potential.

It is expected that technology companies can start using companies that work with big data and machine learning algorithms. Another potential direction is cloud platforms. IaaS providers will have the opportunity to work more effectively with virtualization, data storage systems and computing resources.

Our additional resources and sources:

" How we build IaaS ": 1cloud work materials

1cloud Cloud Architecture Evolution
Object storage service in 1cloud

Potential attacks on HTTPS and ways to protect against them
Than Continuous Delivery and Continuous Integration approaches are similar and different
How protect the server on the Internet: 1cloud experience

Source text: How compression works in an object-oriented memory architecture