An embedded memory cache for persistent memory access

Louis Boulanger (Université Grenoble Alpes, LIG, CNRS, Inria)
Frédéric Wagner (LIG)
Yves Denneulin (LIG)
Friday session 1 (Zoom) (13:0014:30 BST)
Watch a recording of this talk on YouTube

As part of my thesis on persistent memory programming, I am exploring the use of my library on embedded systems. This library is a "persistent-style standard library" that allows users to manipulate any kind of non-volatile memory (SSD, NVRAM, ...) as actual memory, through normal data structures. The goal of this exploration is to be able to make use of the same concepts on limited hardware, and hereby allowing a very limited chip to make use of a larger amount of memory. During the development of a proof of concept, I created a "software cache" that sits in-between my library and the hardware, so that the chip is able to effectively access more memory than actually available, using a SD card. The result is a Raspberry Pi Pico, originally with 264KB of RAM, being able to use the entirety of a 32GB SD card as persistent memory, for a user to program with, through my original library. The design and concept of this cache opens up interesting perspectives, both in embedded contexts and outside.