A team of engineers from MIT has developed an object-oriented memory hierarchy for more efficient data handling. This article explores its structure.
/ / PD
As is known, the performance growth of modern CPUs does not come with a corresponding decrease in memory access latency. The change in metrics from year to year can differ by up to 10 times (). As a result, a bottleneck arises that prevents full utilization of available resources and slows down data processing.
Performance is hindered by what is known as decompression latency. In some cases, the preparation for data decompression can take up to 64 CPU cycles.
For comparison, adding and multiplying floating-point numbers no more than ten cycles. The issue is that memory works with fixed-size data blocks, while applications operate on objects that can contain various types of data and differ in size. To address this 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 are a software-controlled hierarchy of scratchpad memory (). These registers are called pads and there are three of them — from L1 to L3. They store objects of varying sizes, metadata, and arrays of pointers.
In essence, the architecture is a cache system tailored for object handling. The level of the pad that an object resides in depends on how frequently it is accessed. If one of the levels becomes "overloaded," the system triggers a mechanism similar to garbage collectors in Java or Go languages. It analyzes which objects are used less frequently than others and automatically moves them between levels.
Zippads operate based on Hotpads — archiving and unarchiving data that enters or exits the last two levels of the hierarchy — pad L3 and main memory. In the first and second pads, data is stored unchanged.

Zippads compresses objects that do not exceed 128 bytes in size. Larger objects are divided into parts, which are then placed in different memory locations. As developers state, this approach increases the efficiency of memory usage.
The COCO (Cross-Object COmpression) algorithm is used for object compression, which we will discuss later, although the system is also capable of working with or . The COCO algorithm is a form of differential compression (). It compares objects to "base" objects and removes duplicate bits — see the diagram below:

According to engineers from MIT, their object-oriented memory hierarchy is 17% more efficient than traditional approaches. It is much closer in structure to the architecture of modern applications, which gives the new method potential.
The technology is expected to be adopted first by companies working with big data and machine learning algorithms. Another potential area is cloud platforms. IaaS providers will be able to work more effectively with virtualization, data storage systems, and computing resources.
Our additional resources and sources:
![]()
![]()
![]()
![]()
![]()
![]()
Source: habr.com
