Conception et exploitation des processeurs
Chargé de cours : Frédéric Pétrot
Équipe pédagogique :
Alban Bourge, Stéphane Mancini, Claire Maiza, Luc Michel,
Olivier Muller (resp.), Sebastien Viardot
Année universitaire 2013-2014
Conception et exploitation des processeurs
Structure du cours
C1 Présentation du projet CEP
et rappels de VHDL
C2 Chaîne de compilation
et assembleur MIPS
C3 Conventions pour les appels de fonctions
C4 Gestion des interruptions
2 / 38
Conception et exploitation des processeurs
Introduction
Plan
1Introduction
2De ... à ...
3Processeur
4Fournitures et objectifs
5VHDL
6Description structurelle
7Description comportementale
3 / 38
Conception et exploitation des processeurs
Introduction
Introduction
Objectif :
Conception d’un ordinateur minimaliste
Comprenant :
un processeur
de la mémoire
des périphériques simples : LED, boutons
des périphériques moins simples : 7-segments, timer, ...
des périphériques complexes : carte VGA, clavier, ...
4 / 38
Conception et exploitation des processeurs
Introduction
Introduction
Challenge, ...
5 / 38
Conception et exploitation des processeurs
Introduction
Introduction
Comment ?
Conception du processeur
ISA : MIPS R3000
stratégie de conception : PC/PO
langage de conception : VHDL
sur les cartes Spartan 3 de Xilinx
Notez bien : on ne part pas d’une feuille blanche, ...
Conception de l’environnement
utilisation de blocs existants : mémoire par ex.
conception de périphériques : VHDL
utilisation d’un « bus » permettant la connexion des
composants
6 / 38
Conception et exploitation des processeurs
De ... à ...
Plan
1Introduction
2De ... à ...
3Processeur
4Fournitures et objectifs
5VHDL
6Description structurelle
7Description comportementale
7 / 38
Conception et exploitation des processeurs
De ... à ...
Structure initiale






























8 / 38
Conception et exploitation des processeurs
De ... à ...
Quelques précisions importantes
Mémoire RAM synchrone : ce n’est pas un bloc combinatoire !
Positionne addr => datain disponible au cycle suivant
Positionne addr/dataout/we=1 => dataout échantillonné clk "
Comportement registre, toujours lisible a
a. sans lecture/écriture simultanée
Impact vital !
sur la lecture de l’instruction à exécuter (ifetch)
positionner $pc dans un état, écrire $ir dans le suivant
sur la lecture de la donnée lors d’un lw
positionner ad dans un état, écrire $rt dans le suivant
9 / 38
Conception et exploitation des processeurs
De ... à ...
Structure finale














































 







































10 / 38
Conception et exploitation des processeurs
De ... à ...
Quelques précisions
Bus pour accès diérents composants : principes
Écriture combinatoire :
processeur positionne
mem_addr/mem_dataout/mem_we=1/mem_ce=1
bus décode adresses pour calcul bus_ce(i) et bus_we(i)
(mutuellement exclusifs)
mem_dataout échantillonné par composant avec bus_ce(i) =
1et bus_we(i) = 1 sur clk "
Lecture séquentielle :
processeur positionne mem_addr/mem_we=0/mem_ce=1
sur clk ", composants produisent bus_datai(i)
bus utilise ce(i) du cycle précédent pour choisir quel signal
produire sur mem_datain
11 / 38
Conception et exploitation des processeurs
Processeur
Plan
1Introduction
2De ... à ...
3Processeur
4Fournitures et objectifs
5VHDL
6Description structurelle
7Description comportementale
12 / 38
Conception et exploitation des processeurs
Processeur
Processeur
Rappel des caractéristiques globales de l’architecture :
bus de données et d’adresse sur 32 bits
taille de l’instruction : 32 bits
ISA 3-adresses
32 registres opérandes des instructions, notés $0 à$31
registres $1 à$30 :usagegénéral
registre $0 : vaut toujours 0
registre $31 : contient adresse de retour de fonction (imposé
par 2 instructions)
registre pc : adresse de l’instruction suivante
registre ir : instruction en cours d’exécution
registres hi et lo : résultat multiplication ou division entière
non demandés en CP, utilisés en EP
13 / 38
Conception et exploitation des processeurs
Processeur
Rappel des formats
Où récupérer l’information dans l’instruction
registre
5 bits dans l’instruction
immédiat
5 bits dans l’instruction, pour les décalages
16 bits dans l’instruction, diérentes interprétations possibles
26 bits dans l’instruction, pour les sauts inconditionnels
indirect registre (+ déplacement)
5 bits pour identifier le registre + 16 bits pour la constante
relatif à pc (2 cas)
14 / 38
Conception et exploitation des processeurs
Processeur
Processeur































Debug :
$28 toujours
visible (par
morceau)
sur les LEDs
15 / 38
Conception et exploitation des processeurs
Processeur
Processeur
Partie opérative


























16 / 38
Conception et exploitation des processeurs
Processeur
Processeur
Partie contrôle
 




Etats Opérations
Init PC 0x0
Waitfetch Emission de PC sur le bus d’adresse
Fetch IR mem[PC ]
Decode PC PC +4, décodage de IR
LUI RD IR15···0||016
17 / 38
Conception et exploitation des processeurs
Fournitures et objectifs
Plan
1Introduction
2De ... à ...
3Processeur
4Fournitures et objectifs
5VHDL
6Description structurelle
7Description comportementale
18 / 38
Conception et exploitation des processeurs
Fournitures et objectifs
Fournitures
Partie Contrôle
interface complètement spécifiée (sauf extensions)
registre d’état
squelette fonction transition et génération
Partie Opérative
interface complètement spécifiée
comportement complet donnée
sauf en ce qui concerne les interruptions (dernière séance)
Divers
outils de développement croisés pour MIPS : asm, cc, ld,
objdump, ...
base de tests sur site web validant les étapes
19 / 38
Conception et exploitation des processeurs
Fournitures et objectifs
Objectifs
Séance Instruction typique Famille
1 Etats : fetch, decode,...
Inst. : ORI, LUI
Programme : Acher valeur sur LED
ADDU SUBU, NOR, AND, XOR
2 OR, ANDI, XORI,ADDI, ADDIU
SLL SRL, SRA, SLLV, SRAV, SRLV
Programme : Compteur sur LED
ou
Programme : Chenillard minimaliste sur LED
3 J JR
BEQ BNE, BLEZ, BGTZ, BGEZ, BLTZ
JAL JALR, BLTZAL, BGEZAL
Programme : Chenillard à motif (rotation)
ou
Programme : Multiplication Egyptienne
4LW , S W
SLT SLTI, SLTU, SLTIU
Système : VGA
Programme : tracé de droite “bresenham”
5 PO : interruption 1 source
ERET
Programme : démonstration d’interruption
Jackpot Jouer à MIPS invader
20 / 38
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !