Dû à la lenteur d’un disque dur comparé à de la RAM on ne sert pas d’eux pour stocker les variables de programmes, il existe cependant des cas dans lesquels il seconde la mémoire.
Swapping
le premier cas est le swapping. Une partition swap est une partition sur un disque dur qui est faite pour accueillir une partie de la RAM quand elle est pleine ou quand l’ordinateur entre en hibernation. Le disque dur devient alors un espace supplémentaire pour de la mémoire utilisé très rarement, en cas d’urgence.

Mémoire virtuelle
Le disque peut aussi être utilisé dans l’usage de la mémoire virtuelle, quand un processus va s’exécuter il ne va pas accéder directement aux adresses en mémoire, il va passer par des pages qui vont contenir l’adresse mémoire correspondante ou une adresse sur le disque nommé frame. Cet intermédiaire permet facilement de relocaliser les données, de permettre au programmer de ne pas gérer l’espace de mémoire, etc…

On appelle Address translation, l’opération qui permet d’obtenir une adresse physique à partir d’une adresse virtuelle contenu dans la table des pages (aussi appelée lookup table).
On peut retrouver dans le paging les mêmes problématiques et les même notions que les caches.
Dans la page des tables on a des PTE (Page Table Entry) qui ont ces informations:
- le Valid bit qui définit si la page se trouve dans la mémoire ou le disque
- Le physical frame number qui pointe vers l’adresse en mémoire
- les méta-data

Cependant le soucis c’est que l’on doit faire au moins deux accès mémoire: un pour traduire l’adresse et l’autre pour y accéder, c’est pour celà que le MMU (Memory Management Unit) existe.
Il s’agit d’un autre intermédiaire (encore), placé avant le cache L1, il contient un TLB (Translation Lookaside Buffer) et une unité de traduction connectée au L1 qui va contenir les pages les plus récentes et proposer un accès en moins d’un cycle.
