\section{Etage : Instructions fetch}
Cet étage à pour fonction de charger des paquets d'instructions qui vont allimenter le processeur.

Cet étage contient le Program Counter ({\it PC}), qui va être envoyé au predicteur de branchement. Ce dernier retourne la prochaine addresse à demander au chache, et sera stocké dans le {\it PC} alors que la valeur courante est enregistré dans le registre {\it ICACHE\_ADDRESS}. Celui-ci va être envoyé par le cache. Au même instant que l'écriture dans ce registre, une case une file d'attente {\it IFETCH\_QUEUE} est alloué. Les reqûetes au cache sont découplé des réponses, cette technique permet de tirer partie d'un cache non bloquant : les reqûetes sont identifié par le couple \{Numéro de Contexte, Numéro d'entrée dans la file\}. Le Numéro de contexte sert à identifier le Thread émettrice de la requête et donc de pouvoir router la réponse vers la bonne file d'attente. Le deuxième identifiant permet d'indexer une requête particulier. Ceci nous permet d'avoir une unique requête avec ce couple à un instant donnée.

\printgraph{MORPHEO_stage-ifetch}{0.8}{Etage : Instructions fetch}

\subsection*{Paramètres}
\begin{description}
\item[Largeur de la file :] (1/-/1/?)
\item[Profondeur de la file :] (2/-/$2^n$/?)
\end{description}

