Aubrac

Origine du nom
Aubrac Haute

Aubrac est le nom d’une race française de vaches originaire du Plateau de l’Aubrac dans le centre de la France. Elle est notamment élevée pour son lait utilisé pour le fromage Laguiole.

Cette page et les suivantes décrivent le processeur Aubrac. Il permet l’exécution dans l’ordre d’une instruction par cycle. Il est conçu autour d’un pipeline et de deux niveaux de mémoires caches. Basé sur l’ISA RISC-V, il est développé en Chisel3 et se veut hautement configurable (taille des données, nombre d’étages, extensions du jeu d’instructions supportées etc.).

Vue globale

Vue globale du processeur Aubrac Vue globale du processeur Aubrac

Figure 1: Vue globale du processeur Aubrac. Tous les différents étages possibles sont représentés, même si certains d'entre eux sont optionnels.

La Figure 1 représente le processeur Aubrac entier. Celui-ci est composé de 8 parties.
Le Front-End est responsable de la récupération des instructions en mémoire. Le NLP est responsable de la prédiction des aléas du flot de contrôle. Le Back-End est responsable du décodage et de l’exécution des instructions. L’unité de gestion des champs matériels (HFU) est une unité d’exécution dédiée à la contextualisation (CHAMP ISA). Le module des I/O est utilisé pour les mécanismes addressables en mémoire spécifiques au processeur (e.g. les timers privilégiés). Enfin, L1I, L1D et L2 sont respectivement le cache d’instruction de niveau 1, le cache de données de niveau 1 et le cache unifié de niveau 2.

Support du jeu d’instructions

Le processeur Aubrac est basé sur l’ISA RISC-V. Il supporte actuellement les bases 32 et 64 bits du jeu d’instructions.

Extension Version Implementée ? Testée ? Optionnelle ? Dépendances
M 2.0
A 2.1
B 1.0.0
Zicsr
Zicntr
Zifencei 2.0
Tableau 1: Résumé des différentes extensions RISC-V supportées par le processeur Aubrac. Certaines doivent encore être testées plus en profondeur.

Comme décrit dans la Tableau 1, de multiples extensions sont actuellemnt implémentées dans Aubrac. La plupart d’entre elles sont optionnelles: les différents mécanismes matériels dédiés peuvent être totalement supprimés lors de la génération du Verilog.

Avertissement

Si les versions 32 et 64 bits sont implémentées, seule la version 32 bits est actuellement utilisée et testée. Un travail supplémentaire est nécessaire pour vérifier les instructions spécifiques à la version 64 bits, comme celles dédiées à la manipulation de mots de 32 bits.

Sommaire