Module EN 216 Conception d`un processeur avec jeu d`instructions

Module EN 216
Conception d’un processeur avec
jeu d’instructions ´el´ementaires
Travail Pr´eliminaire
EN 216 c
2015
1
EN216 - Processeur
D. Dallet, C. Leroux & C. Jego
D´efinition d’un sch´ema bloc hi´erarchique pour un processeur minimal
8 bits
L’objectif de ce module est d’assembler des fonctions ´el´ementaires (combinatoires et s´equentielles) pour
r´ealiser un processeur programmable avec un jeu d’instructions ´el´ementaires. L’architecture con¸cue sera
inegr´ee sur une carte de prototypage FPGA.
1 Pr´esentation du processeur
Le processeur propos´e est un processeur 8-bits `a usage universel. Il est capable d’ex´ecuter 4 types
d’instructions. Ce processeur est bas´e sur un registre accumulateur appel´e ACCU de taille 8 bits. Son jeu
d’instructions est donn´e dans le tableau suivant.
Abr´eviation Codage de l’instruction Description de l’instruction
NOR 00 AAAAAA1ACCU = ACCU NOR Mem[AAAAAA]
ADD 01 AAAAAA1ACCU = ACCU + Mem[AAAAAA]
mise `a jour de la retenue
STA 10 AAAAAA1Mem[AAAAAA] = ACCU
JCC 11 DDDDDD2Si Carry = O alors PC DDDDDD
sinon effacer la retenue (Carry = 0)
(1) AAAAAA : bits d’adressage ; (2) DDDDDD : bits de donn´ees
Tab. 1: Jeu d’instructions du processeur
Chaque instruction est cod´ee sur 8 bits. Deux bits pour coder le type de l’op´eration (code-op) et 6 bits
pour coder l’op´erande ou l’adresse de l’op´erande dans la m´emoire selon le type d’instruction.
Son architecture m´emoire est de type Von Neumann (programme et donn´ees dans la mˆeme m´emoire).
L’interface m´emoire est constitu´ee d’un bus de donn´ees, d’un bus d’adresse et de signaux de contrˆoles.
Le bus de donn´ees est de taille 8 bits, tandis que le bus d’adresse est de taille 6 bits. Ainsi, le compteur
programme (Program Counter, PC) est de taille 6 bits et l’espace d’adressage est de 26= 64 octets.
Les instructions NOR et ADD correspondent respectivement `a un op´eration logique et `a une op´eration
arithm´etique devant ˆetre r´ealis´ee par une Unit´e Arithm´etique et Logique (UAL) sur deux op´erandes. L’une
des op´erandes provient du registre accumulateur ACCU. Quant `a l’autre, elle est issue de la m´emoire.
L’instruction STA permet l’´ecriture du contenu du registre accumulateur ACCU dans la m´emoire.
Enfin, l’instruction JCC est une instruction conditionnelle plus complexe. Elle permet :
soit d’effacer le contenu de la bascule m´emorisant la valeur de la retenue (Carry),
D. Dallet, C. Leroux & C. Jego 2 Bordeaux IPB ENSEIRB-MATMECA
EN216 - Processeur
soit un saut du compteur programme PC.
Il est possible d’obtenir des macro-instructions `a partir de ces quatre instructions de base comme le
montre le Tableau suivant.
Abr´eviation Code assembleur Description de l’instruction
CLR 00 NOR allone1ACCU = ACCU NOR 111111 = 000000
LDA mem NOR allone1ACCU = ACCU NOR 111111 = 000000
ADD mem ACCU = ACCU ADD mem=mem
NOT NOR zero2ACCU = ACCU NOR 000000
SUB mem NOR zero2ACCU = ACCU NOR 000000
ADD mem ACCU = ACCU ADD mem= (NOT mem)
ADD one3ACCU = ACCU ADD 000001 = (NOT mem+1)
(1) allone : 111111 ; (2) zero : 000000 ; (3) one : 000001
Tab. 2: Macro-instructions correspondant `a des instructions suppl´ementaires courantes
2 Compehension du jeu d’instruction
2.1 Interpetation du contenu de la m´emoire du processeur
Le tableau en annexe 1 contient un exemple de contenu pour la m´emoire du processeur. Remplir ce
tableau en indiquant successivement :
la valeur binaire du contenu de la m´emoire,
l’interpr´etation du code assembleur,
la valeur d´ecimale du registre accumulateur ACCU,
la valeur binaire du contenu de la m´emoire apr`es ex´ecution,
la valeur hexad´ecimale du contenu de la m´emoire apr`es ex´ecution.
2.2 Calcul du PGCD de deux nombres entiers
Le Plus Grand Commun Diviseur (PGCD) de deux nombres entiers naturels est le plus grand entier
naturel qui divise simultan´ement ces deux entiers. Il existe plusieurs m´ethodes pour trouver cet entier
naturel. L’une d’entre-elles est l’algorithme des diff´erences ou des soustractions successives. Le principe est
le suivant :
Si un nombre est diviseur de 2 nombres aet balors il est aussi un diviseur de leur diff´erence. Si
cette diff´erence est positive alors on remplace apar la valeur de la diff´erence sinon on remplace b
par la valeur de la diff´erence
D. Dallet, C. Leroux & C. Jego 3 Bordeaux IPB ENSEIRB-MATMECA
EN216 - Processeur
Exemple : a= 60 et b= 36
60–36 = 24 alors le PGCD est aussi diviseur de 24 et on remplace 60 par ce nombre,
24–36 = 12 alors le PGCD est aussi diviseur de 12 et on remplace 36 par ce nombre,
24–12 = 12 alors le PGCD est aussi diviseur de 12 et on remplace 24 par ce nombre,
12–12 = 0 alors le PGCD est 12.
Il est possible de programmer cet algorithme `a partir des quatre instructions du processeur minimal 8
bits comme le montre la figure suivante.
3
start :
NOR allone; Accu = X NOR 11111111= 0
NOR b; Accu = not (b)
ADD one; Accu = not (b) + 1= - b
ADD a; Accu = a - b
JCC neg; si carry= 0 alors neg sinon carry=0
STA a; a=Accu
ADD allone; Accu = Accu + 11111111 d’où carry =1 sauf si a=0
JCC end ; si carry= 0 alors end sinon carry=0
JCC start; carry=0 alors start
neg :
NOR zero; Accu = Accu’ NOR 00000000 = not (Accu’)
ADD one; Accu = not (Accu’) + 1 = -Accu’
STA b; b=Accu
JCC start; si carry= 0 alors start sinon carry=0
end :
JCC end ; carry=0 alors end (le résultat est en b)
Figure 1. Programme assembleur du PGCD (a,b)
Analyzer ce programme puis le dérouler pour a et b valant respectivement 40 et 24.
L’exécution de ce programme par le processeur minimal 8 bits implique de configurer la
mémoire contenant à la fois les instructions et les données. Pour ce faire, remplissez le
contenu du tableau de l’annexe 2.
Partie 2 : Définition du schéma bloc du processeur minimal 8 bits
Comme expliquer lors du cours d’introduction de ce module, l’architecture de base d’un
processeur comprend trois parties : opérative, mémorisation et contrôle. Rappelons que le
processeur est conçu autour d’un registre accumulateur appelé ACCU. Nous allons étudier
successivement ces trois parties pour le processeur minimal 8 bits dans la suite de cette
seconde partie.
1-1 Partie opérative
La conception de l’architecture de la partie opérative s’effectue à partir du jeu d’instructions
défini précédemment. Il faut déterminer :
le type, la taille et le nombre de ressources de temporisation (registre ou bascule)
nécessaires,
les opérations que doit être capable d’effectuer l’unité arithmétique et logique et ses
accès,
les connexions (bus) et leur taille permettant l’échange de données entre les éléments
constituant la partie opérative,
les connexions (bus) et leur taille permettant l’échange de données entre la partie
opérative et les autres parties (mémoire et contrôle),
les différents signaux d’entrée/sortie pour le pilotage des éléments de la partie
opérative.
Fig. 1: Programme assembleur du PGCD(a,b)
1. Analyzer ce programme puis le d´erouler pour aet bvalant respectivement 40 et 24.
2. L’ex´ecution de ce programme par le processeur minimal 8 bits implique de configurer la m´emoire
contenant `a la fois les instructions et les donn´ees. Pour ce faire, remplissez le contenu du tableau de
l’annexe 2.
3 D´efinition du sch´ema bloc du processeur minimal 8 bits
Comme expliquer lors du cours d’introduction de ce module, l’architecture de base d’un processeur
comprend trois parties : op´erative, m´emorisation et contrˆole. Rappelons que le processeur est con¸cu autour
d’un registre accumulateur appel´e ACCU. Nous allons ´etudier successivement ces trois parties pour le
processeur minimal 8 bits dans la suite de cette seconde partie.
D. Dallet, C. Leroux & C. Jego 4 Bordeaux IPB ENSEIRB-MATMECA
3.1 Partie op´erative EN216 - Processeur
3.1 Partie op´erative
La conception de l’architecture de la partie op´erative s’effectue `a partir du jeu d’instructions d´efini
pr´ec´edemment. Il faut d´eterminer :
le type, la taille et le nombre de ressources de temporisation (registre ou bascule) n´ecessaires,
les op´erations que doit ˆetre capable d’effectuer l’unit´e arithm´etique et logique et ses acc`es,
les connexions (bus) et leur taille permettant l’´echange de donn´ees entre les ´el´ements constituant la
partie op´erative,
les connexions (bus) et leur taille permettant l’´echange de donn´ees entre la partie op´erative et les
autres parties (m´emoire et contrˆole),
les diff´erents signaux d’entr´ee/sortie pour le pilotage des ´el´ements de la partie op´erative.
R´epondre `a l’ensemble de ces questions avant de proposer une architecture pour la partie
op´erative.
3.2 Partie m´emorisation
Le processeur n´ecessite une m´emoire permettant un acc`es unique en lecture ou en ´ecriture. Cela cor-
respond `a une m´emoire de type RAM simple port. L’adressage et donc la quantit´e d’information qu’il
est possible de m´emoriser sont directement proportionnelles `a la taille du compteur programme PC. Par
ailleurs, pour faciliter la mise en œuvre, nous choisissons d’utiliser une m´emoire synchrone sur front des-
cendant de l’horloge (bloc synchrone qui ne rajoute pas de cycle suppl´ementaire lors des acc`es). Enfin, des
signaux de contrˆole seront n´ecessaires pour initialiser le contenu de la m´emoire, pour autoriser les acc`es et
pour sp´ecifier le type d’acc`es (lecture ou ´ecriture).
A partir de ce cahier des charges, donner un scema de la m´emoire en d´efinissant les
diff´erents acc`es et en sp´ecifiant leur taille respective.
3.3 Partie contrˆole
Le mod`ele d’architecture de la partie contrˆole qui a ´et´e donn´e lors du cours d’introduction est constitu´e
d’un compteur programme PC, d’un registre d’instruction IR et d’une machine `a ´etats finis (Finite State
Machine, FSM). D’autres composants peuvent ˆetre utilis´es selon le cas ´ech´eant (multiplexeurs ou autres. . . ).
La principale difficult´e concerne la d´efinition de la machine `a ´etats finis.
La premi`ere ´etape consiste `a r´epertorier l’ensemble des signaux de contrˆole que doit produire la
FSM et l’information qu’elle re¸coit pour assurer le contrˆole. Dresser l’ensemble des signaux n´ecessaires au
contrˆole :
de la partie op´erative,
de la partie m´emoire,
des autres ´el´ements de la partie contrˆole (PC, IR et multiplexeurs).
D´efinir le cahier des charges de la FSM sachant qu’elle doit respecter une organisation classique
de contrˆole bas´ee sur six cycles comme pr´esene dans le cours d’introduction :
— Init,
D. Dallet, C. Leroux & C. Jego 5 Bordeaux IPB ENSEIRB-MATMECA
1 / 6 100%

Module EN 216 Conception d`un processeur avec jeu d`instructions

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 !