A novel technique developed by MIT researchers compresses “objects” in memory for the first time, freeing up more memory used by computers, allowing them to run faster and perform more tasks simultaneously.
Image: Christine Daniloff, MIT
Researchers free up more bandwidth by compressing “objects” within the memory hierarchy
A novel technique developed by MIT researchers rethinks hardware data compression to free up more memory used by computers and mobile devices, allowing them to run faster and perform more tasks simultaneously.
Data compression leverages redundant data to free up storage capacity, boost computing speeds, and provide other perks. In current computer systems, accessing main memory is very expensive compared to actual computation. Because of this, using data compression in the memory helps improve performance, as it reduces the frequency and amount of data programs need to fetch from main memory.
Memory in modern computers manages and transfers data in fixed-size chunks, on which traditional compression techniques must operate. Software, however, doesn’t naturally store its data in fixed-size chunks. Instead, it uses “objects,” data structures that contain various types of data and have variable sizes. Therefore, traditional hardware compression techniques handle objects poorly.
In a paper being presented at the ACM International Conference on Architectural Support for Programming Languages and Operating Systems this week, the MIT researchers describe the first approach to compress objects across the memory hierarchy. This reduces memory usage while improving performance and efficiency.
Programmers could benefit from this technique when programming in any modern programming language — such as Java, Python, and Go — that stores and manages data in objects, without changing their code. On their end, consumers would see computers that can run much faster or can run many more apps at the same speeds. Because each application consumes less memory, it runs faster, so a device can support more applications within its allotted memory.
In experiments using a modified Java virtual machine, the technique compressed twice as much data and reduced memory usage by half over traditional cache-based methods.
“The motivation was trying to come up with a new memory hierarchy that could do object-based compression, instead of cache-line compression, because that’s how most modern programming languages manage data,” says first author Po-An Tsai, a graduate student in the Computer Science and Artificial Intelligence Laboratory (CSAIL).
“All computer systems would benefit from this,” adds co-author Daniel Sanchez, a professor of computer science and electrical engineering, and a researcher at CSAIL. “Programs become faster because they stop being bottlenecked by memory bandwidth.”
The researchers built on their prior work that restructures the memory architecture to directly manipulate objects. Traditional architectures store data in blocks in a hierarchy of progressively larger and slower memories, called “caches.” Recently accessed blocks rise to the smaller, faster caches, while older blocks are moved to slower and larger caches, eventually ending back in main memory. While this organization is flexible, it is costly: To access memory, each cache needs to search for the address among its contents.
“Because the natural unit of data management in modern programming languages is objects, why not just make a memory hierarchy that deals with objects?” Sanchez says.
In a paper published last October, the researchers detailed a system called Hotpads, that stores entire objects, tightly packed into hierarchical levels, or “pads.” These levels reside entirely on efficient, on-chip, directly addressed memories — with no sophisticated searches required.
Programs then directly reference the location of all objects across the hierarchy of pads. Newly allocated and recently referenced objects, and the objects they point to, stay in the faster level. When the faster level fills, it runs an “eviction” process that keeps recently referenced objects but kicks down older objects to slower levels and recycles objects that are no longer useful, to free up space. Pointers are then updated in each object to point to the new locations of all moved objects. In this way, programs can access objects much more cheaply than searching through cache levels.
For their new work, the researchers designed a technique, called “Zippads,” that leverages the Hotpads architecture to compress objects. When objects first start at the faster level, they’re uncompressed. But when they’re evicted to slower levels, they’re all compressed. Pointers in all objects across levels then point to those compressed objects, which makes them easy to recall back to the faster levels and able to be stored more compactly than prior techniques.
A compression algorithm then leverages redundancy across objects efficiently. This technique uncovers more compression opportunities than previous techniques, which were limited to finding redundancy within each fixed-size block. The algorithm first picks a few representative objects as “base” objects. Then, in new objects, it only stores the different data between those objects and the representative base objects.
Brandon Lucia, an assistant professor of electrical and computer engineering at Carnegie Mellon University, praises the work for leveraging features of object-oriented programming languages to better compress memory. “Abstractions like object-oriented programming are added to a system to make programming simpler, but often introduce a cost in the performance or efficiency of the system,” he says. “The interesting thing about this work is that it uses the existing object abstraction as a way of making memory compression more effective, in turn making the system faster and more efficient with novel computer architecture features.”
Learn more: A novel data-compression technique for faster computer programs
The Latest on: Data compression
via Google News
The Latest on: Data compression
- Scientists Building Highly Accurate Digital Twin of Our Planeton March 6, 2021 at 9:11 am
A digital twin of our planet is to simulate the Earth system in future. It is intended to support policy-makers in taking appropriate measures to better prepare for extreme events. A new strategy ...
- What is compression?on February 18, 2021 at 5:12 pm
Compression in the storage space is about compressing data to save on space. It is also known as source coding and bit-rate reduction. In order to save space, the number of bits needed to ...
- Exascale Computing Project Podcast Discusses Code Development for Earthquake Simulations on Auroraon February 9, 2021 at 6:07 am
ZFP for data compression, and RAJA for the portability that allow us to run our code on GPUs with different system architectures at various supercomputing facilities, Brian will share more details of ...
- How to stop buffering and upgrade your networkon February 7, 2021 at 1:02 am
OFDMA. This is the latest data compression method, which can help speed up how your router delivers data. While the best streaming devices all support Wi-Fi, many of them also have Ethernet ports ...
- Good news for PS5 owners: Compression is shrinking game installson February 4, 2021 at 5:49 pm
It's worth noting the two consoles use different compression systems. PS5 uses RAD Game Tools' new Oodle Kraken, which massively improves data compression. This new toolset synergizes with the PS5 ...
- Lossless compression IP Listingon January 25, 2021 at 4:00 pm
The Alma Technologies CCSDS-122-E encoder IP core is a complete and autonomous implementation of the CCSDS122.0-B-1 image data compression standard. The encoder accepts the uncompressed image ... Alma ...
- Lossless data compression IP Listingon January 25, 2021 at 4:00 pm
The Alma Technologies CCSDS-122-E encoder IP core is a complete and autonomous implementation of the CCSDS122.0-B-1 image data compression standard. The encoder accepts the uncompressed image ... This ...
- Coming soon: better data compressionon January 12, 2021 at 3:59 pm
The President of ZeoSync Corp. compresses data by reducing the expression of random information sequences. Existing compression technologies depend on mapping and encoding of redundant mathematical ...
- Epic Games buys gaming's most-used data compression technologyon January 8, 2021 at 9:08 pm
RAD Game Tools includes Bink Video, proprietary file format tech that's been used in the industry for the past 21 years, along with Oodle data compression technology. Oodle's next-gen Kraken is ...
- Data compression ratioon February 28, 2020 at 11:42 pm
Data compression ratio, also known as compression power, is a computer-science term used to quantify the reduction in data-representation size produced by a data compression algorithm. The data ...
via Bing News