Chapitre IV

publicité
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Chapitre IV
Conception d’un processeur de base
I Introduction :
Les éléments vus dans les chapitres I , II, et III seront utilisés dans ce chapitre, afin de
concevoir un processeur de base, possédant une structure simple, mais complète.
Un processeur classique est principalement réalisé à partir de circuits logiques ; le chapitre I
nous a permis de revoir, et recenser les circuits combinatoires, et séquentiels de base
essentiels pour la réalisation de tout circuit logique.
Dans un processeur, ou unité centrale de traitement, les informations stockées dans les
registres sont traitées, et subissent des opérations arithmétiques, logiques, de transfert, ou de
décalage ; le langage de transfert inter registres a été défini, et il a été montré comment les
circuits réalisant ces différentes opérations, sont décrits par le langage symbolique LTR.
Le chapitre III a montré différentes organisations classiques de processeurs à usage général
concernant les structures de bus, les modes d’adressage, l’organisation des registres, les
répertoires d’instructions…
Dans ce chapitre des choix , des hypothèses préliminaires seront faits concernant
l’organisation, le répertoire d’instructions et la puissance du processeur à concevoir.
Le langage de transfert inter registres, décrira les circuits des opérations qui seront exécutées à
chaque impulsion d’horloge , pour chaque instruction. Les différents modules constituant le
processeur de base seront construits pour être ensuite assemblés pour former le processeur de
Choix d’une
organisation
base.
Chapitre 111
Choix du type de
processeur
et Hypothèses
Initiation au
langage de
transfert inter
Chapitre 11
registre LTR
Description de ses micro
opérations en LTR
Chapitre 1
Rappel des
principaux
circuits
Construction du circuit
Option contrôle
Etapes de conception et de réalisation du Processeur de base
1
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
II Les hypothèses
Le processeur de base étant un processeur didactique, il ne sera pas nécessaire de le doter de
puissance, vu que cela compliquerait ses circuits (on peut noter cependant, qu’un processeur
puissant tel que le Pentium, ou le Power PC, est constitué d’unités relativement simples
fonctionnant en parallèle ; le principe adopté pour la conception du processeur de base reste
donc valable et sera accompagné d’outils de CAO de plus en plus disponibles et modernes).
Les hypothèses suivantes seront donc émises
1. L’organisation des registres : on choisira la plus simple, soit l’organisation à
Accumulateur.
2. La mémoire centrale : sera de 4Kx16
3. Organisation de bus :

Le registre MAR sera utilisé pour gérer le bus d’adresse de la mémoire

Le registre MDR sera utilisé pour gérer le bus de données de la mémoire

Le bus d’Entrée/Sorties : sera géré en entrée par le registre d’entrées INPR et
en sortie par le registre de sortie OUTR et sera de 8 bits.
4. Les modes d’adressage : on en choisit 2 : le mode Direct et le mode indirect
(Remarque : un troisième mode, immédiat, sera introduit plus tard, car, bien que
nécessaire, il ne respecte pas certaines des hypothèses émises dans ce paragraphe).
5. Une instruction occupe un seul mot, ou case mémoire.
6. Un répertoire d’instructions : réduit mais complet, permettra d’exécuter
n’importe quelle tâche, moyennant le programme adéquat ; il sera défini plus loin dans ce
chapitre, et sera composé d’instructions:

arithmétiques

logiques

de transfert

de décalage

d’entrées / Sorties
Option contrôle
2
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
II Conséquences des Hypothèses
1. La taille des registres
Le processeur de base est constitué des éléments suivants :

Le processeur possède une organisation à accumulateur : donc l’UAL recevra à sa
première entrée, l’accumulateur, et à sa seconde entrée le MDR (chargé de la donnée lue
de la mémoire.

La RAM est de 4Kx16 : elle possède donc 4x1024 mots de 16 bits, soit 12 lignes
d’adresse, et 16 lignes de données. Ainsi tous les registres d’adresse (PC, MAR) seront à
12 bits, et tous les registres de données, seront à 16 bits.

Une instruction est dans un seul mot de la mémoire qui est de 16 bits : le registre
d’instructions RI est sur 16 bits.

Le bus d’E/S est de 8 bits : les registres INPR et OUTR sont donc sur 8 bits
1
16 1
AC
1
16
MDR
12
PC
1
12
MAR
1
8
INPR
1
8
OUTR
1
Périphériques
16
RI
Unité
De
contrôle
Unité centrale
Principaux éléments du processeur de base
Option contrôle
3
Mémoire
centrale
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2. Le format des instructions
Le processeur ayant une organisation à AC, possède alors, une seule zone d’adresse comme le
montre la figure ci-dessous :.
1
M

OP
12
ADR
M : est sur un seul bit puisqu’on a 2 modes d’adressage ; on l’appellera I pour le
processeur de base.

La mémoire étant de 4Kx16, les adresses sont de 12 bits, et donc la zone d’adresse
occupera 12 bits.

Le code OP occupera les bits restants, soit 3 bits
Problème : On peut à première vue définir uniquement 23 = 8 instructions, ce qui ne
permettra pas la création d’un répertoire d’instructions complet
Solution : On utilise le fait qu’on puisse classer les instructions selon trois types :

Type 1 : Instructions à référence mémoire ou IRM : ces instructions ont besoin d’un
opérande en mémoire, et doivent donc indiquer son adresse, et le mode d’adressage à
utiliser. Les 16 bits de l’instruction sont utilisés.
Exemple :

ADD M(x) ; AC<- (AC)+ M(x) où x est l’adresse de l’opérande
Type 2 : Instructions à référence registre ou IRR : ces instruction n’ont besoin que
des informations stockées dans les registres de l’unité centrale. Elles n’ont pas besoin de
spécifier d’adresse ni de mode d’adressage. Les bits de la zone d’adresse, et du mode
d’adressage peuvent avoir une autre fonction.
Exemple : CLA ; AC <- 0

Type 3 : les instructions d’entrée/sortie ou IES : Ces instructions n’ont pas besoin de
spécifier d’adresse ni de mode d’adressage, puisqu’elles permettent de s’adresser en
entrée ou en sortie aux périphériques.
Exemple :
IN portA ; AC <- donnée provenant d’un périphérique par le port A
On remarque donc que l’adresse et le bit de mode ne sont pas demandés par toutes les
instructions. Cette propriété sera utilisée ci-dessous pour codifier les instructions.
Option contrôle
4
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
IV Distinction et codification des IRM, IRR, et IES
1. Distinction des IRM, IRR, IES
C’est le code OP qui doit permettre à l’unité de contrôle de reconnaître une instruction de
façon unique.
On utilise une des 8 combinaisons du code OP, 111 par exemple, pour différencier les IRM
des autres instructions : Si OP = 111 alors l’instruction n’est pas une IRM .

Si OP ≠ 111 : l’instruction est une IRM, et les 16 bits de l’instruction sont utilisés, I
pour le mode d’adressage, OP 3 bits pour définir une instruction IRM, et les 12 bits
restants spécifient l’adresse à utiliser.

Si OP = 111 : l’instruction n’est pas une IRM ; elle est soit de type IRR soit IES ;
puisque le bit de mode I est libre on l’utilise pour différencier les 2 types

Si I = 0 c’est une IRR : et les 12 bits de la zone d’adresse sont utilisés pour
déterminer laquelle. On voit qu’il est possible de définir 212 instructions différentes, on
se contentera d’en définir 12.
Si I= 1 c’est une IES : et les 12 bits de la zone d’adresse sont utilisés pour

déterminer laquelle. On voit qu’il est possible de définir 212 instructions différentes ,
on se contentera d’en définir 4.
O
N
OP=111
IRM
O
I=1
N
I
IRR
IE/S
1
111
OP≠111
OP IES
0
111
OP IRR
Distinction entre les IRM, IRR, et IES
Option contrôle
5
ADR
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2. Définition et codification des instructions
On peut définir, d’après ce qui a été entrepris ci-dessus :

7 instructions IRM à exécuter en mode direct ou indirect :OP = 000 à 110

12 IRR : OP= 111, I=0, ADR= 2n ; n = 0 à 11 (un seul des bits 5 à 16 de l’instruction
est égal à 1 à la fois).

4 IES ; OP= 111, I=1, ADR= 2n ; n = 0 à 3 (un seul des bits 5 à 8 de l’instruction est
égal à 1 à la fois).
IRM
IRR
IES
AND :opération et
CLA : MAZ A
INP : entrée
ADD : addition
CLE : MAZ E
OUT : sortie
LDA : lecture mémoire
CMA: complément A
SFI : saut si FGI=0
STA : écriture mémoire
CME : complément E
SFO : saut si FGO=0
BIN :branchement incond
INC : incrément
BSA : appel
CIR : dec circ drte
ISZ : incr et saut si 0
CIL :dec circ gche
SNA : saut si AC < 0
SZA: saut si AC = 0
SPA: saut si AC > 0
SZE: saut si AC = 0
HLT : arrêt
Les 23 instructions du processeur de base
Les 23 instructions ainsi définies représentent un répertoire complet (incluant les opérations
arithmétiques, logiques, de décalage, de transfert, et d’entrée/sortie), mais minimal,
permettant de réaliser tout traitement possible, directement ou moyennant un programme.
On pourra par exemple exécuter toute fonction logique puisqu’on a AND et NOT (CMA),
Ou bien la multiplication, puisque l’on a l’addition et le décalage...
Le tableau suivant montre les codes affectés à chaque instruction comme spécifié dans la
section précédente.
Option contrôle
6
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Répertoire d’instructions du processeur de base
1. Les instructions à référence Mémoire IRM :
Code Hexadécimal
I=0
0
1
2
3
4
5
6
I=1
8
9
A
B
C
D
E
Adresse
AD
AD
AD
AD
AD
AD
AD
Instruction
Description
AND AD
ADD AD
LDA AD
STA AD
BIN AD
BSA AD
ISZ AD
AC  (AC) AND M(AD)
AC  (AC) + M(AD)
AC  M(AD)
M(AD)  (AC)
PC  AD; branchement inconditionnel
Branchement et stock adresse de retour
Incrémentation de M(AD), et saut si 0
2. Les instructions à référence Registre IRR :
3.
Code Hexadécimal
Instruction
7800
7400
7200
7100
7080
7040
7020
7010
7008
7004
7002
7001
CLA
CLE
CMA
CME
CIR
CIL
INC
SPA
SNA
SZA
SZE
HLT
Description
AC  0
E0
AC AC’
E  E’
Rotation de AC avec E à droite
Rotation de AC avec E à gauche
AC  (AC) + 1
Saut si (AC) > 0
Saut si (AC) < 0
Saut si (AC) = 0
Saut si E = 0
S  0 ; arrêt de l’ordinateur
Les instructions d’entrée/sortie :
Code Hexadécimal
Instruction
F800
F400
F200
F100
F080
INP
OUT
SFI
SFO
LDI DATA
Option contrôle
7
Description
AC (9-16) INPR , FGI  0
OUTR  AC (9-16), FGO  0
Saut si FGI = 1
Saut si FGO = 1
AC  DATA (mode immédiat)
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
V Signaux de synchronisation et cycles du processeur de base :
1. Détermination des cycles du processeur de base :
La fonction d’un processeur consiste à exécuter les programmes stockés dans la mémoire
centrale.
Etant donné un programme rangé en mémoire centrale,
 chacune de ses instructions est lue dans le registre d’instruction RI,
 puis décodée par l’unité de contrôle
 qui génère les fonctions de contrôle Fi, en réponse aux ordres donnés par l’instruction,
 et les envoie activer différentes tâches dans l’unité de traitement.
Un premier cycle sera nécessaire pour la lecture de l’instruction : le cycle de lecture
Un second cycle sera nécessaire s’il existe un besoin de lire l’adresse de l’opérande, si seule
l’adresse de l’adresse de l’opérande est donnée (en mode indirect): le cycle indirect
Un troisième cycle devra être exécuté quelque soit l’instruction : le cycle d’exécution
Ce cycle est le
même pour toutes
les instructions
RI <- instruction
L’unité de contrôle
décode (RI)
L’unité de contrôle envoie
les ordres (les Fi)à l’unité
de traitement
Cycle de lecture
L’instruction est lue de la
mémoire
Cycle indirect
(si l’adresse de l’opérande doit
être lue de la mémoire)
Ce cycle est
propre à chaque
instruction
+
Cycle d’exécution
Exécution d’une instruction
IRM, IRR, ou IES
2. Détermination du nombre d’impulsion d’horloge par cycle :



Initialement l’adresse de l’instruction à exécuter est dans le PC
L’instruction doit être lue de la mémoire et stockée dans le RI
Elle sera ensuite décodée et exécutée
D’autre part une des hypothèses émises pour la conception du processeur de base stipule que :
 Toute adresse (de donnée ou d’instruction) doit passer par le MAR, puisqu’il est le seul
registre qui gère le bus d’adresse de la mémoire.
 Toute information (donnée ou instruction), provenant de, ou allant vers la mémoire doit
passer par MDR, puisque c’est le seul registre connecté au bus de données de la mémoire.
Option contrôle
8
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
La lecture de l’instruction dans RI doit donc respecter les étapes suivantes :
 MAR<-(PC) ; pour activer l’adresse de l’instruction.
 MDR<- M(MAR) ; l’instruction est d’abord lue dans le MDR, puisqu’il est le seul registre
connecté au bus de données de la mémoire
 RI<- (MDR) ; l’instruction est ensuite transférée vers RI pour être décodée par l’unité de
contrôle.
MAR<-(PC)
MDR<-(MAR)
RI<-( MDR)
Au moins trois impulsions d’horloge sont donc nécessaires pour le déroulement du cycle de
lecture. Une quatrième impulsion servira à déterminer si un cycle indirect est nécessaire pour
lire l’adresse de l’opérande (cas d’une IRM en mode indirect), ou si l’on passe directement au
cycle d’exécution.
Afin de simplifier le circuit des signaux de synchronisation, la durée de tous les cycles :
lecture, indirect et tous les cycles d’exécution sera fixée à quatre impulsions d’horloge . Si un
nombre inférieur est nécessaire à l’exécution d’un cycle, des impulsions ‘vides’ seront
exécutées.
VI Organigramme de contrôle des cycles
Lors de l’exécution de tout programme stocké en mémoire centrale, les instructions sont lues
puis décodées et exécutées une à une.
Pour chaque instruction, le cycle de lecture vient toujours en premier, suivi :
 du cycle d’exécution si l’instruction est de type IRR, IES, ou IRM en mode direct
 ou du cycle indirect si l’instruction est de type IRM en mode indirect.
 Un cycle indirect est toujours suivi par le cycle d’exécution.
 Un cycle d’exécution est toujours suivi par le cycle de lecture de l’instruction suivante.
Une IRM en mode indirect est reconnue par OP  111 et le bit de mode I=1.
Si OP 111 et I = 0 c’est une IRM en mode direct et si OP= 111 l’instruction est une IRM ou
une IES.
Le code OP et le bit de mode I permettent de déterminer par quel cycle, Indirect ou
d’exécution, le cycle de lecture doit être suivi.
A partir de ce fonctionnement, des variables seront définies, pour décrire et contrôler le
séquencement des cycles.
Option contrôle
9
Chapitre IV
TEC586 Microcalculateurs

Conception d’un processeur de base
Il existe trois cycles : l’état de deux bascules F et R suffira à indiquer dans quel cycle le
processeur de base se trouve de la manière suivante :
FR
Cycle
variable
00
Lecture
C0
01
Indirect
C1
10
exécution
C2
11
Interruption*
C3
FQ
C0
C1
C2
C3
DCD
2x4
RQ
Puisque chaque cycle dure plusieurs impulsions d’horloge, il doit être mémorisé, d’où
l’utilisation des bascules F et R.
Les variables Ci seront utilisée par l’unité de contrôle pour la génération des fonctiond de
contrôle.
*: Un quatrième cycle, d’interruption peut être défini, et sera décrit plus tard , afin de
permettre la génération d’interruptions du processeur, par des périphériques ou des
programmes.

Le bit I représente le bit D1 de l’instruction

Le code OP représente les bits D2D3 et D4 de l’instruction. Des variables q0 à q7 activées
une seule à la fois sont générées à partir du code OP à l’aide d’un décodeur 3x8 afin
d’indiquer le type d’instruction, ou l’instruction IRM à exécuter.
I
OP
ADR
q0
q1
DCD
3x8
q7
Les variables ainsi définies : F, R, q7, et I et déterminent complètement, et de façon unique le
cycle dans lequel se trouve le processeur de base à chaque instant.
Option contrôle
10
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base


si q7 =1 alors si I=0 l’instruction est de type IRR, et si I = 1 elle est de type IES.
Et si q7 =0 alors l’instruction est de type IRM, et I indique si elle est en mode direct ou
pas.
Tout cela nous permet de déduire l’organigramme de contrôle des cycles suivant :
F 0
R0
(exécution) 10
FR
00 (lecture)
01 (indirect)
Lecture de l’adresse de
l’opérande
Lecture de l’instruction
0
q7
1
1
I
0
0
1
IRM
IES
F 0
I
q7
1
0
IRR
F 1
R0
R 1
F 1
F 1
En conclusion :
 Le cycle de lecture a besoin de 4 impulsions d’horloge et il est caractérisé par C0=1. Son
rôle est de lire l’instruction et la stocker dans RI, et de déterminer la nature du cycle
suivant.
 Le cycle indirect est caractérisé par C1=1 ; il dure 4 impulsion d’horloge même s’il ne les
utilise pas toutes. Son rôle est de lire l’adresse de l’opérande pour une IRM en mode
indirect.
 Le cycle d’exécution est caractérisé par C1=1 ; il dure également 4 impulsions d’horloge,
il y en a un pour chaque instruction.
 La durée des cycle : a été fixée à 4 impulsions d’horloge pour simplifier le circuit.
Option contrôle
11
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
VII Description des cycles du processeur de base :
Le processeur de base ainsi conçu , possède :
 Un cycle de lecture
 Un cycle indirect
 23 cycles d’exécution
 un 24ème cycle d’exécution : celui de l’instruction ‘LDI X’, qui est une instruction de
chargement de l’accumulateur en mode immédiat. Le mode immédiat n’a pas été défini
précédemment parce qu’il ne respecte pas les hypothèses 4 et 5 émises pour la conception
du processeur de base.
 Lors de la détermination des cycles du processeur de base, il sera nécessaire de se rappeler
les conséquences de l’hypothèse 3 :Toutes les adresses doivent passer par le MAR, et
toutes les données à écrire ou à lire de la mémoire doivent passer par le MDR.
1. Le cycle de lecture : c0 = 1
Sa fonction est la lecture de l’instruction vers laquelle pointe le PC dans le registre
d’instruction RI, et le passage au cycle indirect ou d’exécution selon que l’instruction est une
IRM en mode indirect ou pas.
c0t0 :
c0t1 :
c0t2 :
(q7I) c0t3 :
(q7+Ï) c0t3 :
MAR(PC)
MDRM(MAR), PC(PC)+1
RI (MDR)
R 1
F 1
Cycle de lecture
(PC)=X
1
MAR
X
instruction
MAR(PC)
2
MDR
MDRM(MAR),
PC(PC)+1
3
RI
mémoire
RI (MDR)
O
I=1
q7=0
N
N
O
R 1
Option contrôle
12
F 1
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2. Le cycle indirect : c1 = 1
Sa fonction est la lecture de l’adresse de l’opérande dans le cas où l’instruction lue dans le RI,
est de type IRM en mode indirect. Il suit immédiatement le cycle de lecture et est suivi du
cycle d’exécution.
c1t0 :
c1t1 :
c1t2 :
c1t3 :
MAR RI [ADR]
MDRM(MAR)
Rien
F 1, R 0
I OP
ADR= Y
RI(=MDR au début du cycle)
ADR représente l’adresse de l’adresse de l’opérande (Y), et X, le contenu de Y représente
l’adresse de l’opérande.
Cycle indirect
MAR
Y
X
MAR RI [ADR]
2
l’opérande
MDR
I OP
X
opérande
l’opérande
mémoire
Y
MDRM(MAR)
1
F 1, R 0
Vers le cycle
d’exécution
3. Les cycles d’exécution : c2 = 1
Il en existe 24 , le cycle de l’instruction LDI inclus
3. 1 L’instruction AND : q0 = 1
Le 1er opérande de l’instruction se trouve dans AC, et le second se trouve en mémoire.
L’adresse du deuxième opérande se trouve dans MDR, et dans RI, si l’instruction IRM est
exécutée en mode direct ; elle se trouve dans MDR, si l’instruction IRM est exécutée en mode
indirect (puisqu’on arrive au cycle d’exécution à partir du cycle indirect décrit ci dessus).
q0c2t0 :
q0c2t1 :
q0c2t2 :
c2t3 :
MAR MDR [ADR]
MDRM(MAR)
AC(AC)  (MDR)
F 0
MAR
X
opérande
X
2
l’opérande
3
AC
X
MDR
AND
Option contrôle
13
mémoire
1
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Cycle d’exécution
AND
MAR MDR [ADR]
MDRM(MAR)
AC(AC)  (MDR)
F 0
Vers le cycle de lecture
3. 2 L’instruction ADD : q1 = 1
q1c2t0 :
q1c2t1 :
q1c2t2 :
c2t3 :
MAR MDR [ADR]
MDRM(MAR)
AC(AC)  (MDR)
F 0
Cycle d’exécution
ADD
MAR
X
opérande
X
2
l’opérande
MAR (MDR) [ADR]
3
AC
MDRM(MAR)
X
MDR
mémoire
1
AC(AC) + (MDR)
F 0
ADD
Vers le cycle de lecture
3. 3 L’instruction LDA : q2 = 1 :lecture d’un mot de la mémoire dans AC
q2c2t0 :
q2c2t1 :
q2c2t2 :
c2t3 :
MAR MDR [ADR]
MDRM(MAR)
AC  (MDR)
F 0
Cycle d’exécution
LDA
MAR
X
opérande
X
2
l’opérande
MAR (MDR) [ADR]
3
AC
MDRM(MAR)
X
MDR
mémoire
(AC)  (MDR)
1
F 0
A<-B
Vers le cycle de lecture
Option contrôle
14
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 4 L’instruction STA : q3 = 1 : stockage du contenu de AC en mémoire
q3c2t0 :
q3c2t1 :
q3c2t2 :
c23 t3 :
MAR MDR [ADR]
MDR  (AC)
M(MAR)  (MDR)
F 0
Cycle d’exécution
STA
MAR
X
opérande
X
l’opérande
2
MAR (MDR) [ADR]
3
AC
MDR (AC)
X
mémoire
MDR
M(MAR)  (MDR)
1
F 0
Vers le cycle de lecture
3. 5 L’instruction BIN : q4 = 1 : branchement inconditionnel vers l’adresse X
q4c2t0 :
q4c2t1 :
q4c2t2 :
c2t3 :
(PC) MDR [ADR]
rien
rien
F 0
Cycle d’exécution
BIN
PC
X
instruction
X
l’opérande
AC
F 0
X
MDR
(PC) MDR [ADR]
mémoire
1
Vers le cycle de lecture
3. 6 L’instruction BSA : q5 = 1 : branchement avec stockage d’adresse de retour
L’instruction ‘BSA m’ effectue les opérations suivantes
 la valeur X+1 est stockée dans l’adresse m (BSA est stockée dans l’adresse X)
 un branchement est effectué vers l’adresse m+1
Elle effectue un appel vers le sous programme rangé à partir de l’adresse m+1, et doit donc
stocker l’adresse de retour (X+1) (ici, dans m).
q5c2t0 :
q5c2t1 :
q5c2t2 :
c2t3 :
MAR MDR[ADR] , MDR[ADR]  (PC), PC MDR[ADR]
M(MAR)  (MDR)
PC(PC)+1
F 0
Option contrôle
15
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Durant la première impulsion d’horloge, m qui se trouve dans la partie adresse de
l’instruction (et donc de MDR), est transféré vers :
 le PC :pour que le PC puisse être incrémenté, et que le branchement vers l’adresse m+1
soit réalisé.
 Et le MAR : pour que l’adresse de retour puisse être stockée dans la case mémoire m.
[En effet, de manière générale, lors de l’appel d’un sous programme, par une instruction qui
se trouve dans l’adresse X, le retour du sous programme (après son exécution) est effectué
vers l’adresse X+1 (voir figure ci-dessous).]
 Le PC qui pointait au début de l’impulsion d’horloge vers l’instruction suivante à exécuter
(située à l’adresse X+1) est transféré vers MDR
Au début de la 1ère impulsion :
A la fin de la 1ère impulsion :

MDR contient m

MDR contient X+1,

PC contient X+1,

PC contient m,

MAR quelconque

et MAR contient m
ème
Durant la 2 impulsion, le contenu de MDR (X+1) est stocké dans m,
Enfin, pendant la 3ème impulsion, le PC est incrémenté et pointe vers l’instruction située à
l’adress m+1 (le début du sous programme).
L’adresse de
retour , X+1, doit
être sauvegardée
X
X+1
I1
I2
.
:
Appel Sousprog (adr Y)
Instr exec après sousprog
.
:
suite du prog principal
Programme principal
FIN
Y
Début du sous programme
.
.
Retour
Sous Programme
Pour l’instruction d’appel BSA, Y=m+1 , et l’adresse de stockage de l’adresse de retour est m
1
INC
PC
3
MAR
BSA
Xm
X
X+1 l’opérande
1
AC
X+1
m
m+1 Début souprog
m
MDR
2
Cycle d’exécution
BSA
MAR MDR[ADR] , MDR[ADR]  (PC),
PC MDR[ADR]
M(MAR)  (MDR)
1
mémoire
PC  (PC)+1
F 0
Vers le cycle de lecture
Option contrôle
16
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 7 L’instruction ISZ : q6 = 1 : Incrément et saut si Zéro
l’instruction ‘ISZ AD’ incrémente le contenu de la case mémoire d’adresse AD, puis teste
son nouveau contenu ;
S’il est égal à zéro alors le PC est incrémenté.
Dans ce cas, si l’instruction ISZ est rangée à l’adresse X, l’instruction qui la suit en X+1 ne
sera pas exécutée ; c’est l’instruction en X+2 qui le sera.
Si le nouveau contenu de AD n’est pas nul alors l’instruction en X+1 est exécutée
normalement.
Cycle d’exécution
INC si n+1=0
PC
4
ISZ
MAR
ISZXAD
X
si n+10
X+1 Instr
l’opérande
Instr
si n+1=0
X+2
1
2
INC
AC
3
MAR MDR[ADR]
n
AD
AD
(MDR) M(MAR)
(n+1)
MDR
MDR  (MDR)+1
4
mémoire
q6c2t0 :
q6c2t1 :
q6c2t2 :
q6c2t3 :
MAR MDR [ADR]
MDRM(MAR)
MDR(MDR)+1
M(MAR)  (MDR), si (MDR)=0 alors PC(PC)+1, F  0
M(MAR)  (MDR), F 0
O
PC  (PC)+1
(AD)=0
N
Vers le cycle de lecture
L’instruction ISZ est utilisée pour implémenter deux fonctions différentes en programmation :
 Le compteur : AD contient un nombre d’itérations maximal, qui sera decrémenté jusqu’à
la valeur 0 (boucles).
 Le pointeur : AD est une adresse qui contient l’adresse de l’opérande à utiliser (adressage
indirect).
3. 8 L’instruction CLA : q7 = 1, I=0, et D5=1
q7ĪD5c2t0
Cycle d’exécution
CLA
AC 0
AC 0
Vers le cycle de lecture
3. 9 L’instruction CLE : q7 = 1, I=0, et D6=1
q7ĪD6c2t0
Cycle d’exécution
CLE
E 0
E est la bascule de retenue de AC
E 0
Vers le cycle de lecture
Option contrôle
17
Chapitre IV
TEC586 Microcalculateurs
3. 9 L’instruction CMA : q7 = 1, I=0, et D7=1
q7ĪD7c2t0
Conception d’un processeur de base
Cycle d’exécution
CMA
AC (AC)
AC (AC)
Vers le cycle de lecture
3. 11 L’instruction CME : q7 = 1, I=0, et D8=1
q7ĪD8c2t0
E E
Cycle d’exécution
CME
E E
Vers le cycle de lecture
3. 12 L’instruction CIR : q7 = 1, I=0, et D9=1
q7ĪD9c2t0
CIR EAC
Cycle d’exécution
CIR
CIR EAC
E
AC
Vers le cycle de lecture
Le contenu de AC subit un décalage circulaire à droite, à travers la bascule E
3. 13 L’instruction CIL : q7 = 1, I=0, et D10=1
q7ĪD10c2t0
CIL EAC
Cycle d’exécution
CIL
CIL EAC
E
AC
Vers le cycle de lecture
Le contenu de AC subit un décalage circulaire à gauche, à travers la bascule E
3. 14 L’instruction INC : q7 = 1, I=0, et D11=1
q7ĪD11c2t0
EAC (AC)+1
Cycle d’exécution
INC
EAC (AC)+1
Option contrôle
18
Vers le cycle de lecture
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 15 L’instruction SPA : q7 = 1, I=0, et D12=1
Cycle d’exécution
q7ĪD13c2t0
Si AC(1) = 0 alors PC(PC)+1
SPA
INC si AC(1)=0
PC
4
O
X
X+1
X+2
AC(1)
AC(1)>0
SPA
Instr si AC0
Instr si AC>0
PC  (PC)+1
N
Vers le cycle de lecture
AC
MDR
mémoire
Si (AC) est positif (AC(1) est le bit de signe dans ce cas), alors le contenu de PC est
incrémenté, et l’instruction qui suit SPA est sautée.
3. 16 L’instruction SNA : q7 = 1, I=0, et D13=1
q7ĪD13c2t0
Si AC(1) = 1 alors PC(PC)+1
INC si AC(1)=1
Cycle d’exécution
PC
4
X
X+1
X+2
AC(1)
SNA
SNA
Instr si AC0
Instr si AC<0
O
PC  (PC)+1
AC
AC(1)<0
N
MDR
Vers le cycle de lecture
mémoire
3. 17 L’instruction SZA : q7 = 1, I=0, et D14=1
q7ĪD14c2t0
Si (AC) = 0 alors PC(PC)+1
INC si AC=0
PC
4
Cycle d’exécution
X
X+1
X+2
AC(1)
SZA
SZA
Instr si AC0
Instr si AC=0
O
AC
PC  (PC)+1
MDR
(AC)=0
N
Vers le cycle de lecture
mémoire
Option contrôle
19
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 18 L’instruction SZE : q7 = 1, I=0, et D15=1
q7ĪD15c2t0
SI E = 0 alors PC(PC)+1
INC si E=0
Cycle d’exécution
PC
4
X
X+1
X+2
E
SZE
SZE
Instr si E0
Instr si E=0
O
E=0
PC  (PC)+1
AC
MDR
N
Vers le cycle de lecture
mémoire
3. 19 L’instruction HLT : q7 = 1, I=0, et D16=1
q7ĪD16c2t0
Cycle d’exécution
HLT
S 0
S est une bascule mise à 1 par un bouton poussoir ou un interrupteur.
Elle peut être mise à 0 par un bouton ou par programmation pour
arrêter l’exécution du programme.
3. 20 L’instruction INP : q7 = 1, I=1, et D5=1
q7I D5c2t0
Vers le cycle de lecture
Cycle d’exécution
INP
AC(9-16)(INPR) ,FGI 0
La donnée de 8 bits reçue par le registre d’entrée INPR, est
transférée vers les bits 9 à 16 de AC . Le bit d’état FGI est
mis à 0 pour indiquer que la donnée a été lue.
AC(9-16)
S 0
AC(9-16) INPR, FGI 0
Vers le cycle de lecture
INPR
3. 21 L’instruction OUT : q7 = 1, I=1, et D6=1
q7I D6c2t0
OUTRAC(9-16) ,FGO 0
La donnée de 8 bits rangée dansles bits 9 à 16 de AC , est
transférée vers le registre de sortie OUTR. Le bit d’état FGO est
mis à 0 pour indiquer que la donnée a été lue.
AC(9-16)
Option contrôle
OUTR
Cycle d’exécution
OUT
OUTR AC(9-16), FGO 0
Vers le cycle de lecture
20
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 22 L’instruction SFI : q7 = 1, I=1, et D7=1
q7I D7c2t0
Cycle d’exécution
Si FGI = 1 alors PC(PC)+1
SFI
INC si FGI=0
PC
4
O
X
X+1
X+2
FGI
FGI=1
SFI
Instr si FGI1
Instr si FGI=1
PC  (PC)+1
N
Vers le cycle de lecture
AC
MDR
mémoire
3. 23 L’instruction SFO : q7 = 1, I=1, et D8=1
q7I D8c2t0
Si FGO = 1 alors PC(PC)+1
INC si FGO=0
Cycle d’exécution
PC
4
X
X+1
X+2
FGO
SFO
SFO
Instr si FGO1
Instr si FGO=1
O
AC
PC  (PC)+1
MDR
FGO=1
N
Vers le cycle de lecture
mémoire
Option contrôle
21
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
3. 24 L’instruction LDI : q7 = 1, I=1, et D9=1
Elle s’écrit : ‘LDI donnée’
C’est une instruction de chargement de AC en mode immédiat.
La donnée étant sur 16 bits, et étant contenue dans l’instruction elle même, il est nécessaire de
prévoir un autre mot pour le code OP.
Cette instruction sera donc sur deux mots, et ne respecte pas l’hypothèse selon laquelle toute
instruction du processeur de base est contenue dans un seul mot mémoire. Elle est cependant
indispensable à l’autonomie du processeur de base si ce dernier venait à être construit.
q7I D9c2t0
q7I D9c2t1
q7I D9c2t2
MAR(PC)
MDRM(MAR), PC(PC)+1
AC (MDR)
Instruction
LDI
Cycle d’exécution
LDI
PC
1
MAR
MAR (PC)
OP LDI
X
donnée
MDRM(MAR)
l’opérande
2
(AC)  (MDR)
3
AC
MDR
Vers le cycle de lecture
mémoire
A<-B
Tous les cycles du processeurs de base
 Lecture
 Indirect
 7 cycles d’exécution IRM
 12 cycles d’exécution IRR
 4 cycles d’exécution IES
 le cycle d’exécution de LDI
sont décrits en langage de transfert inter registres LTR dans la figure ci dessous.
Le mot de contrôle constitué des Fi (i=1 à F49) est ainsi défini .
Ceci permettra la construction de l’unité de contrôle et du circuit de contrôle de chaque
module (registres, bascules, UAL, …) constituant le processeur de base.
Option contrôle
22
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Fonctions de contrôle, et cycles du processeur de base en LTR
Cycle
LECTURE
INDIRECT
I
AND
I 000ADR
ADD
I 001ADR
LDA
I 010ADR
STA
I 011ADR
BIN
BSA
I 100ADR
I 101ADR
R
M
ISZ
I
R
R
I
E
S
CLA
CLE
CMA
CME
CIR
CIL
INC
SPA
SNA
SZA
SZE
HLT
INP
OUT
SFI
SFO
LDI
Option contrôle
Fonction de contrôle
F1 c0t0
F2 c0t1
F3 c0t2
F4 (q7I) c0t3
F5 (q7+ Ī) c0t3
F6 c1t0
F7 c1t1
F9 c1t2
F9 c1t3
F10 q0c2t0
F11 q0c2t1
F12 q0c2t2
F13 c2t3
F14 q1c2t0
F15 q1c2t1
F16 q1c2t2
F17 q2c2t0
F18 q2c2t1
F19 q2c2t2
F20 q3c2t0
F21 q3c2t1
F22 q3c2t2
F23 q4c2t0
F24 q5c2t0
F25
F26
I 110ADR F27
F28
F29
F30
7800H
F31
7400H
F32
7200H
F33
7100H
F34
7080H
F35
7040H
F36
7020H
F37
7010H
F38
7008H
F39
7004H
F40
7002H
F41
7001H
F42
F800H
F43
F400H
F44
F200H
F45
F100H
F46
F080H
F47
F48
q5c2t1
q5c2t2
q6c2t0
q6c2t1
q6c2t2
q6c2t3
q7 Ī D5c2t0
q7ĪD6c2t0
q7ĪD7c2t0
q7ĪD8c2t0
q7ĪD9c2t0
q7ĪD10c2t0
q7ĪD11c2t0
q7ĪD12c2t0
q7ĪD13c2t0
q7ĪD14c2t0
q7ĪD15c2t0
q7ĪD16c2t0
q7ID5c2t0
q7ID6c2t0
q7ID7c2t0
q7ID8c2t0
q7ID9c2t0
q7ID9c2t1
23
Micro-opération
MAR(PC)
MDRM(MAR), PC(PC)+1
RI (MDR)
R 1
F 1
MAR RI [ADR]
MDRM(MAR)
Rien
F 1, R 0
MAR MDR [ADR]
MDRM(MAR)
AC(AC)  (MDR)
F 0
MAR MDR [ADR]
MDRM(MAR)
AC(AC) + (MDR)
MAR MDR [ADR]
MDRM(MAR)
AC (MDR)
MAR MDR [ADR]
MDR(AC)
M(MAR)  (MDR)
PC MDR[ADR]
MAR MDR[ADR],MDR[ADR](PC),
PC MDR[ADR]
M(MAR)  (MDR)
PC(PC)+1
MAR MDR [ADR]
MDRM(MAR)
MDR(MDR)+1
M(MAR)  (MDR), si (MDR)=0 alors PC(PC)+1
AC 0
E 0
AC (AC)
E E
CIR EAC
CIL EAC
EAC (AC)+1
Si AC(1) = 0 alors PC(PC)+1
Si AC(1) = 1 alors PC(PC)+1
Si (AC) = 0 alors PC(PC)+1
SI E = 0 alors PC(PC)+1
S 0
AC(9-16)(INPR) ,FGI 0
OUTRAC(9-16) ,FGO 0
Si FGI = 1 alors PC(PC)+1
Si FGO = 1 alors PC(PC)+1
MAR(PC)
MDRM(MAR), PC(PC)+1
Chapitre IV
TEC586 Microcalculateurs
F49 q7ID9c2t2
Option contrôle
24
Conception d’un processeur de base
AC (MDR)
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
VI L’unité de contrôle :
Les fonctions de contrôle résumées dans le tableau précédent montrent qu’elles sont
exprimées en fonction :
 des ti : signaux de synchronisation
 des ci : variables logiques indiquant le cycle dans lequel le processeur de base se trouve
 les Di : les bits 5 à 16 de l’instruction ; ils peuvent provenir de RI, ou de MDRet
représentent une partie du code OP pour les IES et les IRR.
 Les qi : qui représentent le décodage du code OP sur 3 bits (D2 à D4) en un code sur 8 bits
 Le bit I : Le bit D1 indique le mode d’adressage pour les IRM, sinon il départage les IRR,
et les IES, comme indiqué dans les paragraphes précédents.
Des portes logiques simples permettent de déduire les Fi en fonction de ces différents
signaux.
I OP
Di
DCD
c0
t0
F1
F2
qi
Unité de contrôle
F
ci
DCD
R
ti
F49
S
H
Schéma bloc de l’unité de contrôle
VII Circuits de contrôle des éléments du processeur de base :
Le mot de contrôle généré par l’unité de contrôle à partir des ordres fournis par l’instruction à
exécuter, servent à activer les différentes micro opérations pour chaque cycle, telles que
décrites dans le tableau récapitulatif du processeur de base en LTR.
Comme vu dans le chapitre 3, les micro opérations peuvent être de type de transfert,
arithmétiques, logiques, d’entrée sortie, ou de décalage.
L’étape suivante consiste à établir pour chaque élément du processeur de base, la liste des
sources, destinations et fonctions à contrôler.
Le circuit de contrôle de chaque élément pourra ensuite être construit.
Le tableau ci dessous résume les informations relatives à chacun des éléments du processeur
de base. Certains circuits de contrôle seront détaillés. D’autres seront faits en travaux dirigés
ou en épreuves d’examens.
Option contrôle
25
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
Les circuits nécessaires à la construction du processeur de base sont résumés dans le tableaux
ci dessous. Les registres d’adresse PC, et MAR sont à 12 bits, les registres de données AC, et
MDR, et le registre d’instruction sont à 16 bits, les registres d’entrée /sortie sont à 8 bits.
Les fonctions à contrôler permettent le choix des registres et bascules à acquérir pour le PB.
Elément
sources
destinations
Fonctions à contrôler
PC
MDR
MAR, MDR[ADR]
MAR
PC, RI[ADR], MDR[ADR] RAM(ADR),
LMAR, S0,S1, sélection de
source
MDR
RAM(données), PC, AC
RAM(données), UAL,
PC, RI
LMDR, S2,S3, sélection de
source, INCMDR
RI
MDR
MAR
LRI
AC
UAL, INPR
UAL, MDR, OUTR
LAC , S4 , sélection de
source
UAL
AC, MDR
AC
S5 , S6 , S7 , sélection
dune opération parmi 8
INPR
OUTR
Lpc, INCpc
AC(9-16)
AC(9-16)
LOUTR
F
SET, RESET
R
SET, RESET
Retenue de sortie de l’UAL Retenue en entrée de
l’UAL
E
Voir TD
FGI
SET, RESET
FGO
SET, RESET
S
RESET
RAM
MDR(données), MAR(adr) MDR
Lecture, écriture
1. Circuit de contrôle du PC :
Le PC:

possède une seule source → pas de lignes de sélection de source

est soit chargé soit incrémenté → il possède 2 entrée à contrôler : le chargement ‘L’ et
l’incrémentation ‘ INC’.
Lpc= F1+F24
INCpc= F2+F26+F30.MDR+F38.AC(1)+F39.AC(1)+F40.AC+F41.E+F45.FGI+F46.FGO+F48
F1
Lpc
+
MAR
PC
F24
Vers MDR
INCpc
Option contrôle
Vers MAR
26
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2. Circuit de contrôle de MAR

MAR possède 3sources : RI[5-16], PC, et MDR[5-16] → il a 2 lignes de sélection S0,S1

Sa destination est le bus d’adresse de la mémoire
S0S1 Source de MAR
00
MDR
01
PC
10
RI
11
__
S0 = F6
S1 = F1
LMAR= F1+F6+F10+F14+F17+F20+F24+F27+F47
RI
MDR
PC
ADR
S0
S1
LMAR
ADR
MUX
MAR
Vers le Bus d’adresse de
la mémoire
3. Circuit de contrôle de RI


RI possède une seule source : MDR
Et une seule destination MAR
MDR
LRI
RI
ADR
Vers MAR
LRI=F3
4. Circuit de contrôle de AC et de l’UAL
Le registre accumulateur et l’unité arithmétique et logique sont traités ensemble parce que
toute les opérations exécutées par l’UAL ont pour source et destination AC.
Le tableau ci après résume les opérations exécutées par l’UAL .
Elles sont au nombre de huit nécessitant ainsi trois lignes de sélection.
Option contrôle
27
Chapitre IV
TEC586 Microcalculateurs
S2S3S4
00 0
00 1
01 0
01 1
10 0
10 1
11 0
11 1
Opération
AND
ADD
NOT
DEC d
DEC g
Transfert A B
INC
MAZ
Conception d’un processeur de base
INPR
S5
MUX
MUX
LAC
On en déduit les fonctions logiques de :
MDR
AC
B
A
S2
S3
S4
Re
Retenue de
Rs sortie vers E
S2 = F36+F19+F37+F31+F49
S3 = F37+F31+F35+F33
S4 = F31+F19+F35+F16+F49
 AC possède 2 sources : l’UAL et INPR → il a besoin d’une ligne de sélection de source
 AC possède 3 destinations, l’UAL, le MDR, et OUTR
L’entrée de chargement de AC est activée à chaque fois que l’UAL exécute une opération, et
si l’instruction INP demande le chargement de INPR dans AC
S5
0
1
Source de AC
UAL
INPR
LAC=F43+F31+F33+F35+F36+F16+F19+F37+F49
S5 = F43
Remarques :
 le registre INPR étant à 8 bits son transfert se fait vers les bits 9 à 16 de AC, et les bits 1 à
8 de AC sont chargés dans eux mêmes afin qu’il n’y ait aucune perte d’information.
 les opérations CIR et CIL sont réalisées par l’UAL que nous choisissons dotée d’un
translateur combinatoire ( On aurait pu choisir comme registre accumulateur AC, un
registre possédant des entrées de décalage.
 Il en est de même pour les opérations d’incrémentation INC, et mise à zéro MAZ.
Les circuits de contrôle des autres éléments du processeur de base, la RAM, MDR, les
bascules R, F , E, FGI, FGO, S, pourront être réalisés à titre d’exercices (TD ou EMD).
Option contrôle
28
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
VIII Programmation assembleur du processeur de base
Comme tout processeur, le processeur de base a été conçu pour être programmé. Nous verrons
dans cette partie comment ses instructions le permettent.
A. Introduction à la programmation assembleur :
1.1 Définitions:

Un programme : est un ensemble d’instructions.

Une instruction : est un mot clé (indiquant l’opération) suivi de paramètres

Une pseudo instruction : est une directive donnée par le programme utilisateur, au
programme, appelé aussi Assembleur, chargé de traduire le programme utilisateur écrit en
ASCII, en langage machine (codes op des instructions exécutables par le processeur). Elle
ne possède pas de code OP, et n’est pas exécutable par le processeur.

Etiquette : suite de caractères alphanumériques précédant l’instruction, dont elle est
séparée par ‘:’. L’Assembleur lui affecte l’adresse de cette instruction à chaque fois
qu’elle est utilisée dans le programme.

Commentaire : suite de caractères précédés de ‘ ;’, mis soit à la suite d’une instruction,
soit en début de ligne. L’Assembleur ne tient pas compte du commentaire. Les
commentaires sont destinés à clarifier le programme utilisateur.
1.2 Le langage assembleur :
a. Chaque microprocesseur possède son propre langage assembleur. Celui ci utilise les
registres et les modes d’adressage du processeur. Chacune de ses instruction est
équivalente à un seul code OP et les paramètres qui lui sont associés (opérandes, adresses,
…) quand elle est traduite en langage machine. La programmation en langage assembleur
suppose donc la connaissance de son microprocesseur.
Traduit le programme
écrit en ASCII, en
langage machine
Programme
assembleur
Assembleur
Instruction
ASM
OP M ADR
Monprog.asm
Programme en
langage machine
OP M
ADR
Monprog.exe
Option contrôle
Instruction en
langage machine
29
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
b. Un langage de haut niveau, et surtout les langages de 3ème et 4ème génération :

Ont les mêmes instructions quelque soit le microprocesseur utilisé par le système.

ne requièrent pas du programmeur, la connaissance de l’architecture interne du
microprocesseur. Ils sont donc plus faciles à utiliser.

Possèdent des instructions, qui sont traduites, chacune, lorsqu’elles sont compilées en un
programme assembleur plus ou moins long.

Leurs programmes compilés en langage machine sont beaucoup plus longs que ceux de
programmes originaux écrits en langage assembleur. Ils occuperont donc beaucoup plus
d’espace en mémoire, et nécessiteront un temps d’exécution nettement plus long.
Programme
C, ou PAS..
Compilateur
Instruction
Programme en
langage assembleur
ou langage machine
Monprog.pas
Programme en
langage machine
OP M
ADR
Monprog.exe
1.3 les différents types d’exécution des instructions:
a. Les instructions séquentielles :
Elles sont exécutées l’une à la suite de l’autre dans l’ordre où elles sont écrites dans le
programme.
I1
I2
I3
b. Les instructions alternatives :
Un test est effectué et un branchement est exécuté vers une instruction selon le résultat du
test.
Option contrôle
30
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
I1
V
F
Test
Bloc 1
d’instructions
Bloc 2
d’instructions
Selon que le test effectué, est vrai ou faux, les instructions du bloc 1 ou celles du bloc 2 sont
respectivement exécutées.
c. Les instructions itératives :
Une ou plusieurs instructions sont exécutées un certain nombre de fois, jusqu’à ce qu’un
compte soit épuisé, ou une condition vérifiée . On dit alors que l’on a une boucle ou un certain
nombre d’itérations.
A la fin (ou au début ) de chaque itération, un test est effectué pour voir si la condition
d’exécution de la boucle est vérifiée ou pas. Ce test peut être un nombre maximal (ou
minimal) atteint par un compteur, ou la vérification d’une condition bien spécifique.
I=1
I1
I2
Bloc
d’instructions
I3
I= I +1
F
V
I=Imax
F
Condition
V
suite
Suite
Une condition est testée pour arrêter
les itérations.
le test et l’incrémentation du compteur
sont programmés
I= 1 à Imax
Bloc
d’instructions
Option contrôle
Une instruction spécialisée réalise le
test et l’incrémentation du compteur
31
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
B. Programmation du processeur de base :
2.1 Appels et retours de sous programmes :
Un sous programme est un ensemble d’instructions pouvant être exécuté plusieurs fois dans
un programme principal.

Le sous programme est appelé à partir du programme par une instruction d’appel

A la fin de son exécution, et grâce à l’instruction de retour, le sous programme retourne au
programme principal, à l’instruction qui suit immédiatement l’instruction d’appel.

Le sous programme peut être appelé de différents endroits du programmes principal.
Chaque processeur possède des instructions d’appel et de retour de sous programmes qui lui
sont propres.
En ce qui concerne le processeur de base :

L’instruction d’appel est ‘ BSA m’ : Elle branche au sous programme stocké à partir de
l’adresse m+1, et range l’adresse de l’instruction qui la suit immédiatement (celle qui doit
être exécutée au retour du sous programme), dans la case mémoire d’adresse m.

L’instruction de retour est ‘ BINI m’ : elle effectue en mode indirect, un branchement
vers l’adresse m qui contient l’adresse de retour.
Ainsi le sous programme est rangé à l’adresse m+1, et se termine par l’instruction BINI m.
X
X+1
Début du SP →
BSA m
m
m+1
SousProgramme
…
Fin du SP →
Option contrôle
32
Programme
principal
BINI m
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2.2 Les itérations et boucles :
Quand un ensemble d’instructions doit être exécuté plusieurs fois consécutives, une boucle
doit être implémentée.
L’exécution de la boucle est répétée jusqu’à ce qu’une condition soit vérifiée, ou un compte
atteint.
Le processeur de base possède plusieurs instructions de test :
SPA, SNA, SZA, SZE, SFI, SFO, FGI , FGO et ISZ.
Elles incrémentent toutes le PC si la condition testée est vérifiée.
ISZ est particulière, car avant d’effectuer le test, elle incrémente le contenu de la case
mémoire spécifiée par l’adresse. Elle le compare ensuite avec 0 ; si le test est positif (contenu
de la case mémoire = 0), le PC est incrémenté.
Ceci suggère l’idée d’utiliser ISZ pour implémenter une boucle et gérer son compteur comme
suit :

Une case mémoire dont on choisit l’adresse CPT, est utilisée comme compteur.

Son contenu est initialisé par programmation, ou par des pseudo instructions, à ‘-MAX’
(en complément à 2 ; MAX étant le nombre maximal d’itérations)
LDI
STA
Début : I1
I2
…
(CPT) = -MAX
Bloc d’instructions
ISZ
BIN
Suite
(CPT) = (CPT)+1
F
(CPT)=0
V
suite
Option contrôle
33
-MAX
CPT
CPT
Début
Du prog
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
2.3 Les pointeurs , adressage de cases mémoire successives:
Il est souvent nécessaire, d’adresser des cases mémoire successives (un bloc mémoire, pour
un même traitement : des opérations de transfert, lecture ou stockage, ou des opérations entre
les données en mémoire et celles se trouvant dans les registres).
La spécification individuelle directe, dans une boucle, des différentes adresses étant
impossible (elles sont souvent plusieurs milliers, ou millions), on a recours à des pointeurs ;
Un pointeur est un registre ou une case mémoire PTR , contenant l’adresse de la case
mémoire i à utiliser ; pour accéder à la case mémoire i+1 il suffit d’incrémenter le contenu du
pointeur PTR.
On remarque que PTR est l’adresse de l’adresse à utiliser. Ceci suggère l’utilisation du mode
d’adressage indirect comme suit :

Une case mémoire dont on choisit l’adresse PTR, est utilisée comme pointeur.

Son contenu est initialisé par programmation, ou par des pseudo instructions, à l’adresse
de la 1ère case mémoire du bloc à traiter.

Le contenu de chaque adresse du bloc est utilisé en lecture ou en écriture en mode
indirect, dans une boucle gérée par un compteur
LDI
STA
LDI
STA
Début : I1
I2
-MAX
CPT
AD1
PTR
; initialiser
;le compteur
;initialiser le pointeur vers le
;début du bloc adresse AD1
LDAI PTR
…
;lire en mode indirect PTR
ISZ
ISZ
BIN
Suite
;pointer vers l’adresse suivante du bloc
;si le compte n’est pas fini
;itération suivante
PTR
CPT
Début
Du prog
Remarques :
 Si dans une même boucle on doit accéder à plusieurs blocs (un bloc source, et un bloc
destination, ou un bloc source et 2 blocs destination, comme dans l’ex. 14, …)on utilise un
pointeur pour chaque bloc
 Ceci est un exemple de programmation ; Différents processeurs offrent différents moyens
pour résoudre les problèmes de boucles, d’appel et retour de sous-programme, de
pointeurs..; il suffit de combiner de façon judicieuse les instructions et les modes
d’adressage disponibles (mode indexé, par base, immédiat, …) pour le processeur utilisé.
Option contrôle
34
Chapitre IV
TEC586 Microcalculateurs
Conception d’un processeur de base
C. Quelques pseudo instructions courantes :
DB
DW
END
Define byte :
réservation d’octets (8 bits)
X
; le contenu de l’adresse X est réservé et est initialisé à 0B hexadécimal
DB
0BH
Define word :
réservation de mots (16 bits)
X
;le contenu de X est réservé et est initialisé à A042 hexadécimal
DW
A042H
Fin de programme
ORG Donne l’adresse
ORG
EQU
Affecte
du début du programme
; le programme sera rangé à l’adresse 100 hexadécimal
100H
une
valeur à une variable
MAX EQU 0F00H
; à chaque fois que MAX est utilisée elle est remplacée en langage
machine par 0F00 hexadécimal.
Dans la portion de programmes ci-dessous, on montre comment les pseudos instructions
peuvent être utilisées :
-MAX
CPT
EQU
EQU
ORG
LDI
STA
Début : I1
I2
FF0H
200H
100H
-MAX
CPT
;Affecte la valeur FF0 hexadécimale à -MAX
;Affecte la valeur 200 hexadécimale à CPT
;Indique que l’adresse de la 1ère instruction
;du programme est 100 hexadécimale
Cette instruction occupe les adresses 100 et 101
;Occupe l’adresse 102
;début prendra donc la valeur 103
…
ISZ
BIN
Suite
CPT
Début
Du prog
;incrémente et teste le contenu de la case 200
;Branche vers l’adresse 103
VIII Conclusion :
Le chapitre IV a décrit la conception d’un processeur de base avec une unité de contrôle
câblée. Dans le chapitre V nous verrons le processeur de base avec une unité de contrôle
micro programmée. Les fonctions de contrôle sont extraites à partir d’une mémoire dite de
contrôle, et non d’un circuit.
Option contrôle
35
Téléchargement