Cache replacement policies using SRAM and MRAM

This work implements two different cache modules SRAM and MRAM, which behaves as second cache level. The goal of this project is to compare performance between the two modules.

Modern computing systems are suffering from memory bottleneck, processing units are much faster than memories, that causes a big overhead in computing.

Nowadays all the cache levels in the hierarchy used in computer systems are SRAM technology based, which is the fastest technology available, on the other side, it is the lowest density and energy wasteful in comparison to other emerging memory technologies.

It makes sense to build the Last Level Cache (LLC) with MRAM technology, because of its density and energy consumption advantage on the SRAM, although its latency drawback compared to the SRAM, which barely affects the latency of the overall system.

The goal of this project is to study about the MRAM as second level cache, implement it and evaluate it against SRAM second level cache.

As a result, we can see that the MRAM cache gave us better overall performance when the data overflowed the SRAM cache. The difference between SRAM and MRAM cache performance is getting smaller when we increase the data size. In general MRAM capacity is at least 10x SRAM, which can give better performance than the results that we got from our system.