Simulation of a Wear Leveling Algorithm

SSD & Flash memories are memory elements which are based on electron injection to change the properties of the transistor. While this allows for a small memory element which keeps it data even when powered off – this introduces a new problem: After an unknown number of writes – the transistor can malfunction and stop working.

The solution to this problem is to keep track on reads and writes across the memory card and try to even the number of writes across the time. This is known as “wear leveling”.

The purpose of this project is to simulate the algorithm presented in this article:

http://www-users.cselabs.umn.edu/classes/Spring-2020/csci5980/papers/SSD/Rejuvenator.pdf

The simulation will require no physical card. A scoreboard will be used to measure the amount of block written during the simulation run. The simulation will show a heat map according to the chosen size of drive.

Prerequisites: Background in programming.