Vous êtes sur la page 1sur 19

Electronique: Les systmes microprogramms

Les systmes
microprogramms
(Structure de Von Neumann et
de Harvard, Processeurs de types
C.I.S.C. et R.I.S.C.)

Micro02
Electronique: Les systmes microprogramms

Les systmes microprogramms.


microprogramms.

Objectifs terminaux.
Ce cours sur les systmes microprogramms doit permettre:
v l'analyse fonctionnelle et la comprhension des structures relatives aux systmes
microprogramms.
v la synthse partielle de ces structures.
v la dtermination de la configuration matrielle minimale, lie aux besoins des en-
tres et des sorties (capteurs et actionneurs).
v l'analyse et la comprhension d'un algorithme.
v la reprsentation de l'algorithme sous forme d'un organigramme.
v la traduction de l'algorithme dans le langage adapt l'unit de traitement.
v la dtermination des mthodes de test et de mise au point, tant sur le plan mat-
riel que logiciel.

I.) Prsentation des systmes microprogramms.

1.) Avantages et inconvnients des systmes microprogramms.


Dans de nombreux cas, les systmes microprogramms ont remplac avantageusement les syst-
mes en logique combinatoire ou squentielle. Les progrs sur la rapidit des convertisseurs et des mi-
croprocesseurs permettent mme l'utilisation des systmes microprogramms dans de nombreuses
applications analogiques.

La notion de programme enregistr n'est pas nouvelle : Charles Babbage l'avait dj voque en
1833. Ce n'est qu'en 1945, cependant, que John von Neumann (mathmaticien amricain d'origine alle-
mande), reprenant et amliorant les ides de Babbage, suggre d'incorporer dans la mmoire les ins-
tructions de traitement en mme temps que les donnes et selon la mme codification. Les instructions
sont alors exploites comme des donnes ordinaires.
Il a dcrit la structure gnrale des ordinateurs. Cette architecture de machine est encore valable
de nos jours, et la plupart des ordinateurs actuels s'en inspirent.

1.1.) Larchitecture ou structure de von Neumann:


John von Neumann a propos une structure universelle de machine calculer et en a dfini les
constituants de base.
La machine est compose des lments suivants:
un organe de calcul, susceptible d'excuter les oprations arithmtiques et logiques, l'unit arith-
mtique et logique (UAL ou ALU) ;
une mmoire, ou mmoire centrale, servant la fois contenir les programmes dcrivant la fa-
on d'arriver aux rsultats et les donnes traiter;
des organes d'entre-sortie, ou priphriques, servant d'organes de communication avec l'envi-
ronnement et avec l'homme;
une unit de commande (control unit) permettant d'assurer un fonctionnement cohrent des l-
ments prcdents.

Micro02 1
Les systmes microprogramms

L'ensemble form par l'unit arithmtique et logique, d'une part, et l'organe de commande, d'autre
part, constitue l'unit centrale ou processeur. L'ensemble des composants physiques, appel matriel
(hardware), est command par un logiciel (software).
L'unit centrale ne peut effectuer qu'un ensemble restreint d'oprations lmentaires, spcifies
l'aide d'instructions. L'ensemble des instructions excutables constitue le jeu dinstructions ; celui-ci ca-
ractrise une architecture donne.
Une instruction est compose de plusieurs parties, les champs , parmi lesquels figurent principale-
ment le code opration , dfinissant l'opration excuter, et l'adresse , prcisant la localisation de
l'oprande en mmoire.
Les instructions de la machine dcrite par von Neumann ne comportaient qu'une seule adresse,
mais la plupart des machines ultrieures en eurent plusieurs: deux adresses (adresse du premier op-
rande, adresse du second oprande), voire trois (adresse du premier oprande, adresse du second op-
rande et adresse de rangement du rsultat.
Un microprocesseur bas sur une structure Von Neuman stocke les programmes et les donnes
dans la mme zone mmoire. Une instruction contient le code opratoire et l'adresse de l'oprande.

Bus de donnes Mmoire


Unit centrale contenant
instructions
Bus d'adresses et donnes

1.2.) Structure de Harvard


Cette structure se distingue de l'architecture de Von Neuman par le fait que les mmoires pro-
grammes et donnes sont spares. L'accs chacune des deux mmoires se fait via un chemin distinct.
Cette organisation permet de transfrer une instruction et des donnes simultanment, ce qui amliore
les performances.

Bus instructions
Mmoire
Bus de donnes Mmoire
de programme instruction Bus de donnes
Unit centrale contenant
contenant
Bus d'adresses uniquement
uniquement instruction Bus d'adresses des donnes
des instructions

L'architecture gnralement utilise par les microprocesseurs est la structure Von Neuman (exem-
ples : la famille Motorola 68XXX, la famille Intel 80X86). L'architecture Harvard est plutt utilise
dans des microprocesseurs spcialiss pour des applications temps rels, comme les DSP ou certains
microcontrolleurs.

Micro02 2
Les systmes microprogramms

Il existe cependant quelques rares DSP structure Von Neuman. La raison de ceci est lie au cot
suprieur de la structure de type Harvard. En effet, elle requiert deux fois plus de bus de donnes,
d'adresses, et donc de broches sur la puce. Or un des lments augmentant le cot de productions des
puces est prcisment le nombre de broches implanter.
Pour rduire le cot de la structure Harvard, certains DSP ou microcontrolleurs utilisent l'architec-
ture dite Structure de Harvard modifie . l'extrieur, le DSP ne propose qu'un bus de donnes et
un bus d'adresse, comme la structure Von Neuman. Toutefois, l'intrieur, la puce DSP dispose de
deux bus distincts de donnes et de deux bus distincts d'adresses. Le transfert des donnes entre les bus
externes et internes est effectu par multiplexage temporel.

1.3.) Types de processeurs (CISC, RISC, ...) :


Les processeurs CISC (Complex Instruction Set Computer) : Architecture des processeurs Moto-
rola 68xxx et de tous les processeurs actuellement prsents dans les PC. Les processeurs CISC poss-
dent plus de 300 instructions internes, contrairement aux processeurs RISC.
Les architectures RISC se caractrisent par un jeu dinstructions limit aux oprations interregis-
tres et aux transferts entre la mmoire et les registres, par l'utilisation de caches mmoires et de pipeli-
nes et par un grand nombre de registres. Les instructions sont de longueur fixe pour favoriser
l'achvement de lexcution d'une instruction chaque cycle.

C'est au cours des annes 80 que la controverse au sujet des processeurs RISC (Reduced Instruc-
tion Set Computer: machine jeu d'instructions rduit) a vraiment commenc.
Les machines microprogrammes des annes 1970 offraient des jeux dinstructions trs sophisti-
qus. Au dbut des annes 1980, de nouvelles architectures, les machines RISC (Reduced Instruction
Set Computers), ont t conues de faon rduire les temps de conception des machines et pour sim-
plifier l'criture des compilateurs. Par contraste, les machines dotes d'un jeu dinstructions complexe
ont t appeles des machines CISC (Complex Instruction Set Computers).
Actuellement, les machines RISC et les machines CISC cohabitent, et aucun des deux types d'ar-
chitectures n'a rellement supplant l'autre.
Les processeurs CISC ont vu la taille de leur jeu d'instructions crotre de faon exponentielle, ce
qui s'est traduit par un microprogramme trs complexe. Tant que l'accs la mmoire centrale tait p-
nalisant par rapport une lecture en mmoire morte (ROM : Read Only Memory) et un dcodage de
micro-instructions de plus en plus long, l'architecture CISC tait satisfaisante. En outre, la tche des
compilateurs tait grandement simplifie puisqu'ils pouvaient apparier moindre effort les langages de
programmation de haut niveau (Basic, Pascal, C, Fortran, etc.) avec un langage machine trs riche.
Or, cette mme priode, des tudes statistiques menes sur les applications ont clairement mon-
tr que les programmes gnrs par les compilateurs se contentaient le plus souvent d'affectations,
d'additions et de multiplications par des constantes. L'ide fondatrice de l'architecture RISC n'est donc
pas de rduire le nombre d'instructions du processeur - bien que ce dernier soit souvent infrieur celui
d'un processeur CISC -, mais bel et bien de ne retenir que les instructions excutables en un seul cycle
CPU.
Une instruction excute en un cycle doit effectuer le chargement des donnes dans les branches
de l'UAL depuis les registres ou la mmoire, puis oprer le calcul et mmoriser le rsultat. Il s'agit,
comme vous l'avez srement remarqu, d'une micro-instruction.

Actuellement, les machines RISC et les machines CISC cohabitent, et aucun des deux types dar-
chitectures n'a rellement supplant l'autre.

Micro02 3
Les systmes microprogramms

Bien sr, les implications sont nombreuses, mais s'il ne faut en retenir qu'une ce doit tre que, sur
une machine RISC, la diminution de la complexit matrielle est compense par un compilateur trs
volu. Windows NT fonctionne sur des processeurs RISC dont les plus connus sont l'Alpha de Digi-
tal, et le PowerPC de Motorola. Avec le futur Merced (renseignements sur internet dbut 2002), Intel
et Hewlett-Packard proposeront un processeur 64 bits hautement parallle conu pour le monde Win-
dows (les deux partenaires voquent une nouvelle architecture baptise EPIC : Explicitely Parallel
Instruction Computing).

Les langages de haut niveau ont besoin d'tre traduits pour tre compris par les machines (les pro-
grammes de traduction s'appellent des compilateurs ) et il n'y a dans ce cas aucune raison pour que
le langage de l'intrieur mme de la machine soit facile utiliser ; mais il doit tre efficace et permettre
de bonnes performances de vitesse. C'est ainsi que l'on est arriv la notion de machines R.I.S.C. (par
opposition au C.I.S.C.), le R. de R.I.S.C., pour reduced , correspondant aussi au fait que l'on s'tait
rendu compte que beaucoup dinstructions du C.I.S.C. taient en fait fort peu utilises.
La quasi-totalit des machines informatiques voques jusqu'ici fonctionnent en fait sur le schma
de von Neumann : Je vais voir dans la mmoire de programmes ce que je dois faire maintenant Je
vais prendre dans la mmoire de donnes la donne sur laquelle je dois agir J'agis Je retourne voir
dans la mmoire de programmes...
Cette faon de faire, si elle s'est rvle adapte la solution de beaucoup de problmes, n'est pas
idale pour obtenir la rapidit du calcul ; aussi bien, lorsqu'on a besoin de faire toujours le mme type
de calcul trs rapidement, utilise-t-on des machines adaptes, donc plus efficaces.
C'est ainsi quen traitement du signal (radar, sonar, parole, etc.) on a besoin de calculer des trans-
formes de Fourier ; on utilisera dans ce cas des calculateurs de structures trs diffrentes (effectuant
les calculs en parallle pour gagner du temps) base de composants spcifiques dits papillons
F.F.T. (fast Fourier transform ). On parlera parfois pour certaines machines de traitement du signal de
machines S.I.M.D. (single instruction multiple data ).
C'est ainsi galement que lorsqu'un problme de calcul scientifique peut tre trait sous forme de
calculs vectoriels, on aura avantage utiliser des calculateurs vectoriels (appels souvent
supercalculateurs).
Les performances de toutes ces machines de pur calcul mathmatique ne sont plus exprimes en
M.I.P.S. (Million d'instruction per second) mais en Flops (flotting point operations per second ), ou
plutt en mgaflops ou en gigaflops (un million ou un milliard de flops).

1.4.) Notion de pipeline


Le principe du pipeline est connu depuis longtemps en informatique, puisqu'il a t utilis sur les
premiers ordinateurs scientifiques. L'excution d'une instruction passe par plusieurs tapes, excutes
squentiellement : Exemple sur un processeur CISC:
Lecture en mmoire de l'instruction excuter.
dcodage de l'instruction et lecture en mmoire de loprande.
excution de linstruction proprement dite.
Si l'on suppose que les tapes sont de dures gales et que chaque tape est ralise par un opra-
teur distinct. Pour permettre l'excution d'une instruction chaque cycle, l'ensemble des trois opra-
teurs forme un pipeline trois tages. Chaque oprateur correspond un tage du pipeline. A un
instant donn, une instruction (n) est en cours dexcution, l'instruction suivante (n+1) est en cours de
dcodage pour une excution lors du cycle suivant, et l'instruction suivante (n+2) est en cours
d'acquisition.
Exemple sur un processeur RISC (Ex: PIC16F84):
Lecture en mmoire programme de linstruction excuter.
Micro02 4
Les systmes microprogramms

excution de linstruction proprement dite.


La structure fait appel ici un pipeline deux tages. Rduction d'un cycle l'aide de l' architec-
ture de Harvard (Instruction et oprande disponibles en mme temps) et de la structure RISC (instruc-
tion traite en 1 cycle grce au pipeline). Pendant l'excution d'une instruction ("Execute") par le
deuxime (dernier) tage du pipeline, le premier tage du pipeline procde dj l'acquisition de l'ins-
truction suivante ("Fetch"= aller chercher). Voir figure 3-1 et 3-2 (Extrait de la documentation des
PIC16F8X de Microchip).

La conception dun pipeline est dlicate et rsulte dun compromis entre le nombre dtages qui le
compose et la manire dont lexcution des instructions est dcompose en sous-oprations
indpendantes.

1.5.) Les machines superscalaires


Si les machines RISC ont t conues pour permettre lexcution d'une instruction par cycle de
base, les processeurs superscalaires visent lobjectif encore plus ambitieux dexcuter plusieurs instruc-
tions par cycle.
Pour cela, ces processeurs sont dots de plusieurs oprateurs arithmtiques pipelins, chacun d'eux
spcialiss dans lexcution dun type dopration (addition de nombres entiers, multiplication de nom-
bres entiers, addition de nombres en virgule flottante, multiplication de nombres en virgule flottante,
etc.). Il faut donc acqurir et dcoder simultanment plusieurs instructions, afin de lancer leur excu-
tion en parallle sur les diffrentes units. Bien entendu, ce type de machine possde des caches pour
permettre au processeur de travailler au maximum de ses possibilits.

Micro02 5
Les systmes microprogramms

Lefficacit dun processeur superscalaire dpend troitement du contenu du programme, puisqu'il


faut pouvoir alimenter correctement les oprateurs, afin dexploiter pleinement leurs structures pipeli-
nes (par exemple, le programme doit possder en nombre suffisant des instructions faisant appel aux
diffrents oprateurs disponibles). Il faut donc disposer de compilateurs rorganisant la squence dins-
tructions de faon exploiter au mieux les ressources matrielles.

Avantages des systmes microprogramms sur les Inconvnients:


systmes en logique cabl et/ ou en logique
programmable (PLD, FPGA):

1. Conception matrielle plus simple que la plupart des 1. Le traitement microprogramm est
systmes en logique combinatoire ou squentielle: (relativement) lent. La vitesse est
systme minimum identique pour de nombreuses limite par le droulement d'une
applications diffrentes. squence d'instructions, o chaque
instruction lmentaire peut prendre
2. Possibilit d'amlioration d'un appareil sans modifier la une ou plusieurs priodes d'une
partie matrielle: amlioration du programme par horloge de rfrence. (Rem: des
modification du contenu d'une mmoire. progrs technologiques constants
permettent d'amliorer la vitesse de
3. Facilit d'utilisation par les possibilit d'affichage: mode traitement des instructions).
d'emploi et menu sur afficheur LCD.
4. La numrisation des informations analogiques permet: 2. Complexit des cartes
une sauvegarde fiable, un traitement et une modification lectroniques (microprocesseurs avec
des donnes, une transmission ou restitution sans perte bus d'adresses et de donnes de plus
d'informations. en plus grand, mmoires DRAM de
grande capacits avec de nombreuses
5. Ralisation et dveloppement devenus aiss par connections (Ex: barrettes 168
l'arrive et le dveloppement rapide de produits broches), priphriques parfois
performants, faible cot (Micro-contrleurs, DSP, complexes permettant l'accs direct
DSP-contrleurs). mmoire (DMA).

6. La vitesse de traitement ne cesse de crotre avec les Rem: l'apparition des


amliorations technologiques: augmentation des micro-contrleurs C (appel
frquences d'horloge (plus de 100MHz en 1995, 2GHz en galement mono-chip) a permis
2002), excution d'une instruction en un minimum de d'obtenir des cartes extrmement
cycle (structures particulires de type RISC et/ou pipe simples pour des applications
line), utilisation de mmoires rapides SRAM (cache industrielles.
d'instructions et /ou de donnes).

7. Progrs considrables sur la rapidit et la rsolution


des CNAs et CANs permettant le traitement de signaux
audio et vido en temps rel: aboutissement des
recherches sur l'analyse et la synthse vocale, et sur les
images de synthses.

2. Analyse d'un problme et synthse par une solution microprogramme.


Les systmes microprogramms permettent de rsoudre aisment tous les problmes, lorsque la vi-
tesse ("lenteur de traitement") permet leur utilisation. La rsolution d'un problme particulier se d-
roule gnralement en 6 tapes:

Micro02 6
Les systmes microprogramms

1re tape: Dtermination de la configuration matrielle.

Aprs description exacte du problme, en laborant un cahier des charges, il est possible de
dterminer les besoins tant au niveau des entres (capteurs, interfaces spcifiques), que des
sorties (actionneurs, cartes de commande, dispositifs de visualisation et/ou d'impression,
dispositifs de communication).
Une analyse fonctionnelle permet d'obtenir la reprsentation graphique de l'ensemble du
systme, et permet d'numrer clairement toutes les fonctions ncessaires. Chaque fonction,
ainsi que les entres et les sorties, devront tre caractrises totalement. (Exemple pour les
entres: Il faut prciser si l'information est analogique, numrique ou alphanumrique, ainsi que
le domaine de valeur).

2.1.) Organisation fonctionnelle gnrale

Transduction
Interfaage
Interfaage lectro Energie
Information logique mcanique
logique de puissance
(moteurs divers, mcanique
(Bouton poussoir,
vrins,...)
clavier, contact de fin
de course, ...)

Conversion
Grandeur Information
physique Interfaage
numrique
Captage analogique
logique
analogique
logique (tension ou courants)
(dtection
de proximit,
Traitement CNA

niveau d'eau,...)
microprogramm
Grandeur
physique Captage Interfaage
Informations
analogique de
(temprature, visuelles et/ou
visualisation
pression,
humidit,...) (afficheurs, LED, imprimes
impression...)
Conversion
analogique
Information numrique
analogique CAN Interfaage de
Liaison vers
(tension ou courant) communication
l'extrieur
(parallle ou srie)

Illustration sur un problme particulier: Rgulation de temprature d'une pice

Cahier des charges: La temprature d'une pice d'un appartement doit tre maintenue une va-
leur fixe To, appele temprature de consigne, +/-1C prs (C = degr celsius). Un appareil de
chauffage (radiateur chauffant) est activ ou non, aprs mesurage de la temprature de la pice et com-
paraison par rapport To +/- 1.

Micro02 7
Les systmes microprogramms

Organisation fonctionnelle particulire (Rgulation de la temprature d'une pice):

Transduction
Interfaage Interfaage Energie
lectro
Information logique thermique
logique de puissance
radiateur chauffant thermique
clavier de
programmation: To

Traitement
microprogramm
Grandeur
physique Captage
analogique Interfaage Informations
temprature de
visualisation visuelles (To)
afficheurs
Conversion
analogique
numrique
CAN

2me tape: Elaboration d'un algorithme.

L'algorithme consiste en une succession de tches (appeles galement tapes), suivre pas
pas, amenant la rsolution du problme. Il est indpendant du langage de programmation et
est crit en langage naturel. L'algorithme peut tre ensuite traduit dans n'importe quel langage
ou symbolisme.

Rgulation de temprature d'une pice:


Description de l'algorithme

1) Mesurage de la temprature de la pice (Tp).


2) Comparaison avec la temprature limite froide (To -1).
3) Mise en route du chauffage si Tp < To-1 (pice trop froide).
4) Comparaison avec la limite chaude (To+1).
5) Arrt du chauffage si Tp > To+1 (pice trop chaude).
6) Fin de la squence et retour la premire tape.

3me tape: Reprsentation de l'algorithme sous forme graphique: algorigramme ou organi-


gramme de programmation.

Il s'agit d'un symbolisme utilis pour reprsenter l'algorithme sous forme graphique.

Micro02 8
Les systmes microprogramms

Dsignation des symbles usuels.

Dbut ou fin de
programme l'organigramme est
un diagramme orient
Opration ou traitement (autre symbole possible pour
(ou mme entre / sortie) les entres et sortie)

Entre
Sous-programme

Sortie

Prise de
dcision
(condition non
vrai?)

oui rponse

Rgulation de temprature d'une pice: Proposition d'un algorigramme


Algorithme correspondant l'algorigramme ci-contre
Dbut
(A complter)
1)
Lecture de Tp

non
Tp<To-1?
oui
Mise en marche
du chauffage

non
Tp>To+1?
oui
Arrt du
chauffage

-
Analysez l'algorigramme propos de la rgulation de temprature. Vrifiez son
adquation par rapport au problme rsoudre.
Comparez l'algorithme prcdemment dfini avec cet algorigramme. Proposez
l'algorigramme correspondant au prcdent algorithme et vice-versa.

Micro02 9
Les systmes microprogramms

Pour des problmes complexes, DEBUT


la dmarche sera descendante: les t- Analyse descendante
ches de l'algorithme font appel d'au- TACHE 1

tres algorithmes. TACHE 2 DEBUT TACHE 2


Cette dcomposition des tches est
effectue jusqu' l'obtention d'algo- TACHE 3 TACHE 2.1 DEBUT TACHE 2.1
rithmes connus ou lmentaires.
TACHE 4 TACHE 2.2 Tche 2.1.1
Ce principe est reprsent, dans lmentaire
les algorigrammes, par un symbole FIN TACHE 2.3
Tche 2.1.2
diffrent d'une simple opration. (no- lmentaire
tion de sous programme) FIN
FIN

4me tape: Traduction dans le langage adapt l'unit de traitement (codage).

Chacune des tapes de l'algorithme sera ralise par une ou plusieurs instructions dans le
langage de programmation choisi.
Le langage compris par les units de traitement numrique (microprocesseur et
microcontrleur) est le langage machine, o chaque instruction se prsente sous forme d'un
nombre exprim en binaire (base 2) ou en hexadcimal (base 16).
Le langage machine tant trs lourd utiliser par le programmeur, une reprsentation sous
forme mnmonique (langage assembleur) est utilise. Des langages dits volus permettent le
dveloppement de programmes complexes l'aide d'interprteurs (BASIC) ou de compilateurs
(PASCAL, langage C, FORTRAN et mme BASIC). La mise au point du logiciel est alors
facilite, mais l'excution est plus lente car les programmes gnrs sont souvent plus longs.

1) Assembleur 2) Langage volu compil 3) Langage volu interprt


(PASCAL, langage C, FORTRAN...) (BASIC)

Utilisation d'un Utilisation d'un


Utilisation d'un
diteur de texte diteur de texte
diteur de texte
(fichier source: (fichier source:
associ un
assembleur) langage volu)
interprteur
(fichier source
Programme fichier directement Programme en langage volu)
"Assembleur" excutable par le "Compilateur"
(fichier assembl) P ou C (fichier compil)
fichier excutable seulement
(avantage: excution partir du programme
trs rapide) interprteur
Excution
(Avantage: l'interprteur apporte une aide
(transmission ou
la mise au point.
programmation Inconvnient: lenteur d'excution car
d'une mmoire) interprtation de chaque instruction).

Remarque: Lorsque le langage choisi est l'assembleur, une dcomposition fonctionnelle suppl-
mentaire est trs souvent ncessaire pour faciliter le codage. Cette dcomposition consiste dtailler
l'algorithme (ou l'algorigramme) sous forme graphique (appel ordinogramme), en tenant compte des
caractristiques de programmation du microprocesseur ou du microcontrleur choisi.

Micro02 10
Les systmes microprogramms

5me tape: Test et mise au point du programme.

La mise au point demande souvent une excution pas pas du programme (tape par tape).
Il est alors possible de vrifier le bon droulement de la squence, ou de dtecter et de modifier
des erreurs dans l'organisation des tapes. L'interprteur permet souvent un dveloppement
facile, par le contrle permanent des variables et du droulement du programme.
Les causes de non-fonctionnement du programme sont essentiellement de trois ordres:
v les erreurs de syntaxe (non-respect des rgles d'criture des instructions dans le
langage choisi) dpistes la compilation
v les erreurs d'excution, lies une connaissance incomplte des instructions utilises
par le langage
v les erreurs de logique, dues gnralement un algorithme dfectueux
Cette phase de dveloppement est trs importante et elle met en oeuvre des moyens
(logiciels et matriels) consquents: diteur de texte, assembleur ou compilateur, simulateur
logiciel, mulateur ou programmateur de mmoire, carte microprogramme cible, appareillage
lectronique de laboratoire...

6me tape: Documentation d'utilisation et de maintenance du produit fini.

La documentation doit permettre tout utilisateur, une recherche rapide des informations.
Elle doit donc tre structure: sommaire, prsentation, schmas, algorithme et/ou
algorigramme (et ordinogrammes, le cas chant), impression du fichier source (listing du
programme), liste des dfauts possibles avec mthode de diagnostic et de rsolution, index.

II. Organisation des systmes microprogramms.

1. Organisation structurelle.
Le coeur d'un systme microprogramm est l'unit centrale de traitement (UC ou CPU "Central
Process Unit", MPU "MicroProcessing Unit", ou plus simplement microprocesseur P).

7 Le microprocesseur se compose essentiellement d'une unit de commande (squenceur) qui


dcode et assure l'excution des instructions du programme (transfert de donnes, saut conditionnel,
appel un sous-programme...), et d'une unit arithmtique et logique (UAL ou ALU, en anglo-
saxon) qui excute les oprations arithmtiques (addition, soustraction...) et logiques (fonctions boo-
lennes: ET, OU...) en relation avec des registres (cases mmoires internes servant recevoir les don-
nes et les rsultats).

7 Pour permettre l'excution du programme, il faut que la suite d'instructions (en langage ma-
chine) soit conserve dans une mmoire. Il existe 2 types de mmoires:

v Les mmoires mortes (ROM: Read Only Memory): les informations y sont crites une seule
fois, elles sont alors permanentes, mme en cas de coupure d'alimentation (arrt de la machine ou cou-
pure accidentelle EDF). Une fois programme par un programmateur, ces mmoires comportent le
programme rsident.
Il existe diffrentes technologies de mmoires mortes, dont certaines sont effaables puis repro-
grammables (UV-EPROM: effaable par UV, EEPROM: effaable lectriquement).

Micro02 11
Les systmes microprogramms

v Les mmoires vives (RAM: Random Access Memory): les informations peuvent tre lues ou
crites autant de fois que dsir, mais elles sont volatiles (toutes les informations sont perdues en cas
de coupure de l'alimentation). Ces mmoires sont surtout utilises pour les donnes (parfois pour les
programmes lorsque ceux-ci ne peuvent pas tre rsidents). Les donnes sont toutes les variables pro-
venant de l'environnement extrieur (les variables d'entre) et les variables gnres lors de l'excution
du programme (rsultats intermdiaires et rsultats finaux reprsentant les variables de sortie). Il existe
galement diffrentes technologies de mmoires vives: SRAM = RAM statique souvent trs rapide
mais couteuse donc rserves aux faibles capacits (micro-controleurs, mmoire cache, appareils de
mesure oscilloscopes mmoire numrique. DRAM = RAM dynamique souvent de grande capacit
pour un cot modeste. Elles sont plus lentes que les SRAM et ncessitent un rafraichissement (=>
perte de temps). De multiples versions de DRAM existent lies aux volutions tchnologiques.
Les mmoires (mortes ou vives) sont assimilables de grands tableaux, ayant en gnral huit co-
lonnes (qui forment un octet). Les lignes (ou cases mmoires) sont numrotes. Ce numro reprsente
l'adresse de la case mmoire.

Exemple: Circuit UV-EPROM 2764


Cette mmoire morte effaable par UV est organise en un tableau de 8 x 1024 lignes de 8 bits,
soit 8 kilo-octets (8 x 8 = 64).

7 Les variables d'entre et de sortie du systme microprogramm sont vhicules par des cir-
cuits d'interface de priphrie, appels circuits priphriques. Les circuits priphriques permettent le
dialogue avec l'environnement et sont de nature trs varie.

v Les ports parallles d'entre/sortie (appels PIA, PIO ou PPI selon les constructeurs de cir-
cuits microprogramms: MOTOROLA, ZILOG, INTEL...). Ils permettent, par exemple, la rception
d'informations en provenance d'un clavier et la sortie d'informations vers une imprimante parallle.

v Les ports sriels permettant la communication en liaison srie synchrone ou asynchrone


(communication distance via le rseau tlphonique et des MODEMs). Ces interfaces sont appeles
ACIA, UART, SSDA selon les constructeurs.

v Les circuits de comptage (Timer, PTM...), qui servent au comptage d'vnements extrieurs
ou la gnration de signaux.

v Les circuits de conversion d'information (CAN et CNA, compatibles microprocesseur), qui


servent d'interface entre le domaine analogique et le domaine numrique.

v et bien d'autres circuits (Contrleur d'cran CRTC, Contrleur de disques FDC, Contrleur
d'interruption PIC, contrleur d'accs direct mmoire DMA...)

Ces circuits priphriques contiennent des registres internes adressables par le microprocesseur, de
faon analogue aux mmoires. Pour que le microprocesseur puisse s'adresser sans ambigut la m-
moire morte (programme rsident) ou la mmoire vive (stockage des variables) ou l'un des circuits
priphriques de l'application, il faut que chacun de ces circuits ait une adresse diffrente dans le champ
adressable par le microprocesseur.

Micro02 12
Les systmes microprogramms

Case mmoire n Adresse


n+1 Circuits $0000
Instruction N1 n+2 priphriques
" N2 n+3 $3000
N3 n+4 RAM
N4 " $5000
" " Inutilis
"
Exemple d'organisation $C000
du champ adressable par
le microprocesseur ROM
Exemple d'organisation
de la mmoire morte $FFFF

7 Le microprocesseur dialogue avec les mmoires et les circuits priphriques aux moyens d'un
ensemble de fils de liaison, appel bus de communication. Il existe trois types de bus dans un systme
microprogramm.

v Le bus d'adresses. Le microprocesseur impose sur ce bus, l'adresse de la case mmoire ou


du registre, avec qui il veut dialoguer. Ce bus est donc unidirectionnel, car seul le microprocesseur
fournit des adresses. Le nombre de fils qui composent le bus d'adresses, dtermine la capacit de la m-
moire qui peut tre relie au microprocesseur.
Exemple: Famille 6809 de MOTOROLA
Le bus d'adresses est de 16 fils d'adresses (A0 A15). Par consquent, le champ mmoire adressa-
ble par le microprocesseur est de 216 cases mmoires (65536 cases mmoires), de l'adresse $0000
l'adresse $FFFF ($ signifie "hexadcimal", notation MOTOROLA).

v Le bus de donnes. Ce bus vhicule les donnes entre le microprocesseur et les mmoires ou
circuits priphriques. Le bus de donnes est donc bidirectionnel, car le microprocesseur peut lire ou
crire une donne dans ces circuits. La taille du bus de donnes permet une classification des
microprocesseurs.

Exemple: Famille 6809 de MOTOROLA


Le bus de donnes est de 8 bits (octet). Le microprocesseur est dit "P 8 bits".
Famille 68000 de MOTOROLA
Le bus de donnes est de 16 bits (Word). Le microprocesseur est dit "P 16 bits".

v Le bus de contrle. Ce bus comporte un nombre variable de fils suivant le microprocesseur


choisi. Il est principalement constitu de signaux, appels signaux de contrle, qui permettent la ges-
tion et la synchronisation des changes entre le microprocesseur et les mmoires ou circuits priphri-
ques. Comme par exemple, l'indication de l'instant et du sens de transfert des donnes par R/W , et E
(MOTOROLA) ou RD et WR
(INTEL).

Une partie du bus de contrle et du bus d'adresses est exploite par une fonction, appele Dco-
dage d'adresses, afin de ne slectionner que le circuit (mmoire ou circuit priphrique) qui est autoris
dialoguer avec le microprocesseur un instant donn.

Une illustration de l'architecture d'un systme microprogramm figure en page suivante.

Micro02 13
Les systmes microprogramms

Architecture gnrale d'un systme microprogramm


Illustration de la gamme microprogramme 8 bits de Motorola

MPU MC6809
Unit centrale

ROM UV-EPROM,
PROM...
Mmoire
programme

RAM
Mmoire
de donnes

PIA MC6821
Interfaage
parallle

ACIA MC6850
Communication
asynchrone

MODEM

(
=<

FDC MC6843
Contrleur
de disque

CRTC MC6845
Contrleur de
visualisation

GPIA MC68488
Contrleur de
bus IEEE 488
Extenseur
Divers Mesurage, Asservisement,
PIA, PTM, CAN, Commande numrique,
CNA, ACIA... Communication...

Micro02 14
Les systmes microprogramms

-
Travail effectuer (TD)
Un exemple de schma structurel d'un systme microprogramm, relatif un
systme technique appel Vibrosis, figure page 16 18.
1) Reprez et identifiez sur ce schma structurel l'unit centrale, les mmoires,
les circuits priphriques et la structure de dcodage d'adresses.
2) Reprez les bus microprocesseurs (bus de donnes, bus d'adresses et bus de
contrle). Indiquez le format de ces bus (nombre de fils utiliss pour chacun des
bus).
3) Identifiez la taille (exprime en kilo-octets) de la mmoire programme et de
la mmoire de donnes. Analysez la relation liant la capacit d'une mmoire (sa
taille en ko) au nombre de fils d'adresses utiliss par le circuit.
4) Rappelez fonctionnellement le rle de la structure de dcodage d'adresses.
Analysez succinctement le schma structurel relatif cette fonction, et compltez la
feuille rponse (tableau "Carte d'adressage", et la Cartographie mmoire "Memory
Map").
5) Aidez vous des fichiers VHDL suivants (dcodage d'adresses) et proposez
deux fichiers en VHDL sous forme d'quations logiques puis de description compor-
tementale , afin de remplacer les circuits logiques ralisant le dcodage d'adresses
par un PAL ou GAL. Proposez alors un PAL ou GAL susceptible de contenir la
fonction dcodage.

-- VHDL created by OrCAD Express A13 : IN STD_LOGIC;


Library ieee; A14 : IN STD_LOGIC;
Use ieee.std_logic_1164.all; A15 : IN STD_LOGIC);
Use ieee.numeric_std.all; END PLD_VHDL;

ENTITY PLD_VHDL is ARCHITECTURE behavior OF PLD_VHDL IS


PORT ( BEGIN
CSRom1_Bar: OUT STD_LOGIC; CSRom1_Bar <= not ( E and A15 and A14 and A13 );
CSRom2_Bar: OUT STD_LOGIC; CSRom2_Bar <= not ( E and A15 and A14 and not A13 );
E : IN STD_LOGIC; END behavior;;

-- VHDL created by OrCAD Express


Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;

ENTITY \Decodag\ is
PORT (
PIACS_Bar : OUT STD_LOGIC;
TIMCS_Bar : OUT STD_LOGIC;
RAM_Bar : OUT STD_LOGIC;
EPROM_Bar : OUT STD_LOGIC;
ADR : IN unsigned (15 DOWNTO 0);
E : IN STD_LOGIC;
RW : IN STD_LOGIC);
END \Decodag\;

ARCHITECTURE behavior OF \Decodag2\ IS


BEGIN
EPROM_Bar <= '0' when (E='1' and RW='1' and ADR >= X"C000" and ADR <= X"FFFF") else '1';
RAM_Bar <= '0' when (E='1' and ADR >= X"2000" and ADR <= X"3FFF") else '1';
TIMCS_Bar <= '0' when (E='1' and ADR >= X"0040" and ADR <= X"0047") else '1';
PIACS_Bar <= '0' when (E='1' and ADR >= X"0048" and ADR <= X"004F") else '1';
END behavior;

Micro02 15
Les systmes microprogramms

7 Afin d'amliorer la fiabilit et diminuer le cot des systmes micoprogramms, les constructeurs
se sont orients, partir de la fin des annes 1970, vers une intgration des circuits, sur une mme puce
de semi-conducteur. Ces nouveaux composants s'appellent des microcontrleurs (apparition au dbut
des annes 1980 des microcontrleurs 8048 d'INTEL et 68HC05 de MOTOROLA). La tendance ac-
tuelle est caractrise par une diversification trs importante de produits au sein d'une mme famille de
microcontrleur, afin de multiplier les applications possibles.

Les applications sont par exemple, dans le domaine "grand public", lies au monde de l'audiovisuel
(tlviseur, magntoscope, camescope...): tlcommande, incrustation d'image, gestion des rglages,
tltexte, dcodeur. Mais galement, les calculatrices, les traducteurs et dictionnaires lectroniques de
poche, les appareils mnagers, ou encore les appareils photos, intgrent un microcontrleur. Dans le
monde industriel, les microcontrleurs sont utiliss dans les applications de contrle de machines outils
ou de robots, dans le pilotage de petits priphriques informatiques (clavier, souris, scanner...), dans les
systmes de tlcommunication (tlphone portable), dans l'automobile (contrle des siges, alarme,
climatisation, injection directe, ordinateur de bord, rgulateur de vitesse, ABS...).

Exemple N1: Microcontrleur 8051 d'INTEL (doc Philips 8XC51, 3030.pdf).

Micro02 19
Les systmes microprogramms

-
1) A partir du "Block diagram" dtaill du 8051, identifiez les fonctions int-
gres dans le microcontrleur (Horloge, Unit de control et de dcodage des ins-
tructions CPU avec la gestion du compteur de programme PC, ALU, RAM,
ROM/EPROM, Ports entre sortie, Timers, et les registres fonctions spciales SFR
(interface de communication srie...)).
2) Localisez les bus de donnes et d'adresses et spcifiez leurs tailles (nombre
de bits).
3) En dduire le type de structure (Von Neumann ou Harvard) du 8051 de chez
INTEL.

Exemple N2: Microcontrleur MC68HC11 de MOTOROLA (doc MOTOROLA 11rm.pdf).

-
1) De mme partir du "Block diagram" dtaill du MC68HC11 de MOTORO-
LA, identifiez les fonctions intgres dans le microcontrleur (Horloge, Unit de
control et de dcodage des instructions CPU, RAM, ROM, EEPROM, Ports entre
sortie, Timers, Convertisseurs analogiques numriques, interface de communication
srie synchrone SPI et asynchrone SCI).
2) Indiquez pour chaque port (A E) la direction possible des fils de port (en-
tre uniquement, sortie uniquement, ou bidirectionnel).
3) Comparez les caractristiques fonctionnelles avec le 5051 de chez INTEL.

Micro02 20
Les systmes microprogramms

Exemple N3: Microcontrleur PIC16F877 de Microchip (doc Microchip 30292b.pdf).

-
1) A partir du "Block diagram" dtaill PIC16F877, identifiez les fonctions in-
tgres dans le microcontrleur (Horloge, Unit de control et de dcodage des ins-
tructions CPU, gestion du compteur de programme PC, ALU, RAM, Mmoire
programme, EEPROM, Ports entre sortie, Timers, interface de communication s-
rie synchrone et asynchrone USART, Capture/Compare/PWM (CCP) Module...).
2) Localisez les bus de donnes et d'adresses de la RAM et de la mmoire pro-
gramme et spcifiez leurs tailles (nombre de bits).
3) En dduire le type de structure (Von Neumann ou Harvard) du PIC16F877
de chez Microchip.

Micro02 21

Vous aimerez peut-être aussi