ASR1 2016
Florent de Dinechin, Nicolas Louvet, Antoine Plet
TP 3 et quelques suivants
Conception d’un microprocesseur RISC 16 bits
Présentation générale
Ce sujet va se dérouler sur plusieurs séances de TD/TP et deux devoirs à la maison :
— Une séance de TP consacrée à la conception d’un jeu d’instruction 16 bits ;
— Un travail de synthèse des TDMen, pour vous imposer à tous le même jeu d’instruction.
— Un premier rendu de DM qui pour implémenter un assembleur et un simulateur d’un processeur
implémentant ce jeu d’instruction 1;
— Un second rendu de DM consistant à écrire du logiciel de base pour ce processeur 2;
— Une séance de TD pour construire le plan de masse de ce processeur ;
— Une séance de TD pour définir l’automate de commande ;
— Au moins deux séances de TP pour décrire le processeur lui-même (le hardware) en VHDL.
Pour les DM comme pour les TP finaux, vous ne partirez pas de rien : vous trouverez sur des squelettes
de code à compléter.
Dans ce premier TD, il s’agit de définir un jeu d’instruction par ses mnémoniques et son encodage.
Pour les mnémoniques, on utilisera essentiellement une syntaxe dans laquelle l’affectation s’écrit et
l’accès mémoire (comme en C).
1 Le jeu d’instructions
Voici les règles du jeu :
— Votre processeur devra être une machine universelle.
— Ses adresses et ses types de données natifs devront tenir sur 16 bits 3. Toutes les instructions ma-
chines devront également être codées sur 16 bits, opérandes compris.
— Il devra être aussi RISC (simple, orthogonal) que possible. Autrement dit : n’oubliez pas que vous
aurez à le construire ensuite...
1) Dessiner la boîte noire de ce processeur, comportant tous les signaux d’interface avec la mémoire
(on ignore les questions d’interruptions des processeurs réels).
2 Contraintes d’encodage
On va découper les 16 bots du mot d’instruction (représenté ci-dessous) en différents champs codant
(entre autre) l’instruction à effectuer, ses différents opérandes, etc.
On s’attachera à respecter le principe d’orthogonalité de la philosophie RISC, qui dit que ce découpage
doit être le plus constant possible pour des instructions qui se ressemblent.
1) Justifier le principe d’orthogonalité par le boulot que vous aurez à faire en DM.
1. Ce qui devrait faire ressortir quelques bugs de conception
2. Voir note précédente
3. Alors que même les téléphones portables passent à 64 bits, ce n’est pas très moderne, certes. Mais cette contrainte a deux
avantages : 1/ la complexité de l’implémentation sera limitée ; 2/ étant à l’étroit dans 16 bits, vous serez obligés de faire des tas
compromis ce qui est l’essence même de l’architecture.