Selective Memory
October 23, 2017 | MITEstimated reading time: 5 minutes
![](https://iconnect007.com/application/files/8716/3123/9846/Selective_memory.jpg)
In a traditional computer, a microprocessor is mounted on a “package,” a small circuit board with a grid of electrical leads on its bottom. The package snaps into the computer’s motherboard, and data travels between the processor and the computer’s main memory bank through the leads.
As processors’ transistor counts have gone up, the relatively slow connection between the processor and main memory has become the chief impediment to improving computers’ performance. So, in the past few years, chip manufacturers have started putting dynamic random-access memory — or DRAM, the type of memory traditionally used for main memory — right on the chip package.
The natural way to use that memory is as a high-capacity cache, a fast, local store of frequently used data. But DRAM is fundamentally different from the type of memory typically used for on-chip caches, and existing cache-management schemes don’t use it efficiently.
At the recent IEEE/ACM International Symposium on Microarchitecture, researchers from MIT, Intel, and ETH Zurich presented a new cache-management scheme that improves the data rate of in-package DRAM caches by 33% to 50%.
“The bandwidth in this in-package DRAM can be five times higher than off-package DRAM,” says Xiangyao Yu, a postdoc in MIT’s Computer Science and Artificial Intelligence Laboratory and first author on the new paper. “But it turns out that previous schemes spend too much traffic accessing metadata or moving data between in- and off-package DRAM, not really accessing data, and they waste a lot of bandwidth. The performance is not the best you can get from this new technology.”
Cache hash
By “metadata,” Yu means data that describe where data in the cache comes from. In a modern computer chip, when a processor needs a particular chunk of data, it will check its local caches to see if the data is already there. Data in the caches is “tagged” with the addresses in main memory from which it is drawn; the tags are the metadata.
A typical on-chip cache might have room enough for 64,000 data items with 64,000 tags. Obviously, a processor doesn’t want to search all 64,000 entries for the one that it’s interested in. So cache systems usually organize data using something called a “hash table.” When a processor seeks data with a particular tag, it first feeds the tag to a hash function, which processes it in a prescribed way to produce a new number. That number designates a slot in a table of data, which is where the processor looks for the item it’s interested in.
The point of a hash function is that very similar inputs produce very different outputs. That way, if a processor is relying heavily on data from a narrow range of addresses — if, for instance, it’s performing a complicated operation on one section of a large image — that data is spaced out across the cache so as not to cause a logjam at a single location.
Hash functions can, however, produce the same output for different inputs, which is all the more likely if they have to handle a wide range of possible inputs, as caching schemes do. So a cache’s hash table will often store two or three data items under the same hash index. Searching two or three items for a given tag, however, is much better than searching 64,000.
Dumb memory
Here’s where the difference between DRAM and SRAM, the technology used in standard caches, comes in. For every bit of data it stores, SRAM uses six transistors. DRAM uses one, which means that it’s much more space-efficient. But SRAM has some built-in processing capacity, and DRAM doesn’t. If a processor wants to search an SRAM cache for a data item, it sends the tag to the cache. The SRAM circuit itself compares the tag to those of the items stored at the corresponding hash location and, if it gets a match, returns the associated data.
DRAM, by contrast, can’t do anything but transmit requested data. So the processor would request the first tag stored at a given hash location and, if it’s a match, send a second request for the associated data. If it’s not a match, it will request the second stored tag, and if that’s not a match, the third, and so on, until it either finds the data it wants or gives up and goes to main memory.
In-package DRAM may have a lot of bandwidth, but this process squanders it. Yu and his colleagues — Srinivas Devadas, the Edwin Sibley Webster Professor of Electrical Engineering and Computer Science at MIT; Christopher Hughes and Nadathur Satish of Intel; and Onur Mutlu of ETH Zurich — avoid all that metadata transfer with a slight modification of a memory management system found in most modern chips.
Any program running on a computer chip has to manage its own memory use, and it’s generally handy to let the program act as if it has its own dedicated memory store. But in fact, multiple programs are usually running on the same chip at once, and they’re all sending data to main memory at the same time. So each core, or processing unit, in a chip usually has a table that maps the virtual addresses used by individual programs to the actual addresses of data stored in main memory.
Look here
Yu and his colleagues’ new system, dubbed Banshee, adds three bits of data to each entry in the table. One bit indicates whether the data at that virtual address can be found in the DRAM cache, and the other two indicate its location relative to any other data items with the same hash index.
“In the entry, you need to have the physical address, you need to have the virtual address, and you have some other data,” Yu says. “That’s already almost 100 bits. So three extra bits is a pretty small overhead.”
There’s one problem with this approach that Banshee also has to address. If one of a chip’s cores pulls a data item into the DRAM cache, the other cores won’t know about it. Sending messages to all of a chip’s cores every time any one of them updates the cache consumes a good deal of time and bandwidth. So Banshee introduces another small circuit, called a tag buffer, where any given core can record the new location of a data item it caches.
Any request sent to either the DRAM cache or main memory by any core first passes through the tag buffer, which checks to see whether the requested tag is one whose location has been remapped. Only when the buffer fills up does Banshee notify all the chips’ cores that they need to update their virtual-memory tables. Then it clears the buffer and starts over.
The buffer is small, only 5 kilobytes, so its addition would not use up too much valuable on-chip real estate. And the researchers’ simulations show that the time required for one additional address lookup per memory access is trivial compared to the bandwidth savings Banshee affords.
Suggested Items
Altair Names Semantic Partners Channel Partner for the EMEA Region
06/28/2024 | AltairAltair, a global leader in computational intelligence, announced its collaboration with Semantic Partners as a channel partner for the EMEA region.
Wild River Technology's ISI-USB4 Now Supports USB 4.0 Version 2 and DisplayPort 2.1
06/27/2024 | Wild River TechnologyWild River Technology (WRT), the leading supplier of signal integrity measurement and optimization test fixtures for high-speed channels at data rates of up to 25G announced today the availability of a new inter-symbol interference (ISI) loss modeling capability. The ISI-USB4 Advanced Loss Modeling Platform Test Card Set delivers comprehensive support for demanding 25G PAM4 designs.
Altair Names Devoteam Channel Partner for the EMEA Region
06/26/2024 | AltairAltair, a global leader in computational intelligence, is thrilled to welcome Devoteam as a new channel partner for the EMEA region. Within the partnership, Devoteam will offer Altair’s leading data analytics and artificial intelligence (AI) solutions to its customers throughout the EMEA region.
IDC Reveals Automotive Semiconductor Market Outlook and Discusses Technological Advancements
06/26/2024 | IDCA recent IDC report, Worldwide Automotive Semiconductor Market Forecast, 2024 categorizes automotive chips into distinct segments: analog chips, logic chips, microprocessors, memory chips, discrete devices, optoelectronic devices, and sensors.
Book Excerpt: The Printed Circuit Assembler’s Guide to... Factory Analytics—Chapter 1
06/26/2024 | I-Connect007 Editorial TeamDespite being a widely discussed topic since the advent of Industry 4.0 initiatives, the implementation and utilization of analytics tools by electronics manufacturers has been slow, with an adoption rate significantly lower than anticipated. Most of this stagnation can be attributed to the fact that getting data from the factory floor simply isn’t as straightforward as it should be.