You are on page 1of 22

3-Présentation d’un µP simple

• Microprocesseur avec un bus de données sur 16 bits et un bus d’adresses sur 12 bits (soit 4096 mots adressables).
• Le chemin de données doit comprendre au minimum :
– un registre compteur programme (PC) : un registre stockant l’adresse de la prochaine instruction à exécuter.
– un registre accumulateur (ACC) : un registre stockant la donnée sur laquelle on travaille.
– une UAL qui permet d’exécuter des opérations arithmétiques et logiques de base (addition, soustraction,
ET/OU/OUX
logique)…

www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


Codage des Instructions
• Chaque instruction est codée sur • Une instruction d’addition, par
16 bits et comprend : exemple, utilise la donnée stockée
– le champ code opération : à l’adresse spécifiée, ainsi que le
indique le type d’instruction dont registre accumulateur comme
il s’agit (add, …). opérande implicite, puis stocke le
– le champ code opérande : résultat dans l’accumulateur.
adresse de la donnée. L’action réalisée est :

ACC ¬ ACC + mem16 [addr].

On parle de machine une adresse


car une seule opérande est définie
explicitement dans le codage de
l’instruction. Les instructions sont
lues depuis la mémoire à partir de
l’adresse 0, à des adresses
consécutives.
www.enib.fr

2
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Jeu d’Instructions
• La programmation d’un programme complet directement en code machine binaire
devient très rapidement fastidieuse :on définit un langage symbolique nommé
langage d’assemblage permettant de représenter les instructions par des
mnémoniques.
• On délègue la traduction du programme source en code binaire exécutable à un
programme : l’assembleur.

www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


Chemin de données

www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


Chemin de données
Les éléments du chemin de donnés sont :

• l’UAL,
• le registre accumulateur (ACC) : il contient la donnée sur laquelle on travaille.
Il renvoie des informations vers la machine d’état (valeur nulle et valeur positive
ou nulle).
• le compteur programme (PC : Program Counter) : il contient à tout instant
l’adresse de la prochaine instruction à exécuter.
• le registre d’instruction (IR : Instruction Register) : il contient l’instruction qui
est en train d’être exécutée.
• des multiplexeurs (MUXA et MUXB) qui permettent d’aiguiller les données.
• une porte 3 états qui permet d’amener le contenu du registre accumulateur sur le
bus de données, et de déconnecter l’accumulateur du bus de données quand la
mémoire est en lecture.
• Les registres disposent d’une commande de chargement et de remise à zéro
synchrone (non représentée). l’UAL reçoit, en plus de ses entrées et sortie, un
code permettant d’identifier la fonction UAL sélectionnée.

www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


Séquencement des Instructions

• La machine d’état récupère des informations en provenance de la partie


traitement (opcode, accZ, acc15) et génère des commandes internes pour
contrôler l’activation du chemin de données adéquat pour réaliser
l’instruction en train d’être exécutée et des commandes externes pour
assurer le dialogue du microprocesseur avec la mémoire. Le séquencement
des différentes actions est cadencé par l’horloge clk.

• L’exécution d’un programme entier consiste à répéter l’exécution de


l’instruction pointée par le PC jusqu’à la dernière instruction.

• L’exécution d’une instruction peut être réalisée en deux phases :


– phase d’acquisition (fetch) : on lit en mémoire l’instruction pointée par le PC
et on la transfère dans le registre d’instruction RI. On incrémente le compteur
programme pour qu’il pointe sur l’instruction suivante. Dès que l’instruction
est dans le registre d’instruction, elle est décodée.
– phase d’exécution (execute) : l’opérande est lue en mémoire (si nécessaire).
L’opération UAL est exécutée, et le résultat est rangé dans l’accumulateur
ACC.
www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


Séquencement des Instructions

www.enib.fr

7
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Exemple de Programme

www.enib.fr

8
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’acquisition (Fetch)

10

LDA var1
ADD var2
STO res
B+1
STOP
LDA var1
Var1=1
Var2=2
res

www.enib.fr

9
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
www.enib.fr

10
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’exécution
0x004

0x004

LDA var1

LDA var1
ADD var2
STO res
B
STOP
0x001
Var1=1
Var2=2
res

0x001

www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


www.enib.fr

12
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’acquisition (Fetch)

1
2

LDA var1
ADD var2
STO res
STOP
ADD var2
Var1=1
Var2=2
res

www.enib.fr

13
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
www.enib.fr

14
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’exécution
0x005

LDA var1
ADD var2
STO res
STOP
Var1=1
Var2=2
res
0x001

0x003

0x002
www.enib.fr

kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs


www.enib.fr

16
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Instructions de Saut
JMP Addr : Fetch 0

10

JMP 0x004

JMP 0X004

www.enib.fr

17
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
JMP Addr : Exécution
0X004

0X004

JMP 0X004

www.enib.fr

18
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
JSR Addr : Fetch

10

JSR 0x004

JSR 0x004

www.enib.fr

19
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
JSR Addr : Exécution

0x004 0x004

1 1

0x004

www.enib.fr

20
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
RET : Fetch
6

6
7
JSR 0x004

RET

RET

www.enib.fr

21
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
RET : Exécution
Actions réalisées :
PC  SPC

1 1

www.enib.fr

22
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs

You might also like