Vous êtes sur la page 1sur 58

ISIM Monastir Année 2022/2023

Architecture des Microprocesseurs et


Microcontrôleurs
ES2

Mohsen NASRI
Maître Assistant
Mohsen12_nasri@yahoo.fr
Objectif du cours
Comprendre l’architecture d'un système à microcontrôleur et être capable d’écrire un
programme en langage évolué pour une cible à microcontrôleur 16F877 et plus
généralement de transmettre une culture des systèmes micro-programmés.
• Objectifs Pédagogiques

 Connaître l'architecture d'un systèmes micro-programmés à base de


microprocesseur, ses éléments constitutifs, et son fonctionnement et l’interaction
entre les différentes unités.

 Comprendre l’architecture d’un microcontrôleur en particulier le PIC 16F877 et


étudier ses différents constituants.

 Etre capable d’écrire un programme langage évolué C pour une cible à


microcontrôleur PIC 16F877
 Maîtriser les mécanismes d'interruptions, les convertisseurs analogiques
numériques du PIC et les timers...

2
Chapitre1

Introduction aux systèmes à microprocesseurs

3
Introduction
Circuit logique programmable Microprocesseur
( CPLD, FPGA,…) Microcontrôleur

Fonctionnement complétement diffèrent


Et pourtant, ils semblent server à la même chose

4
Introduction
Exemple

Pour allumer le voyant, il faut que A=1 et B=1

A B S

5
Introduction
Utilisation d’un Circuit logique programmable

Programmation matérielle
à l’aide d’un logiciel

6
Introduction
Utilisation d’un Microprocesseur/Microcontrôleur

Mais c’est quoi un programme?


Suite ordonnée d’opérations élémentaires permettant d’obtenir un résultat

7
Systèmes à microprocesseurs VS Microcontrôleur

les microcontrôleurs auront un microprocesseur dans le cadre de leur


système matériel.

8
systèmes à microprocesseurs VS Microcontrôleur

Microcontroleur
Microprocesseur

Un microprocesseur c’est quoi ?


Un microprocesseur est un circuit intégré, alors que la réciproque n'est pas forcément vrai.

9
Introduction aux système sur puce
Un circuit intégré (CI) ( puce électronique), est un composant électronique, basé sur
un semi-conducteur, reproduisant une, ou plusieurs, fonction(s) électronique(s) plus
ou moins complexe(s). Ils intègrent souvent plusieurs types de composants de base
dans un volume réduit (sur une petite plaque), rendant le circuit facile à mettre en
œuvre.
On peut notamment y intégrer des microprocesseurs …
La Miniaturisation des composants électroniques
Rassembler sur une même puce tous les composants essentiels au fonctionnement
d’un système embarqué (microprocesseurs, mémoires, interfaces, …). On appelle
ces circuits « complets » des microcontrôleurs, des systèmes sur puce ou
des circuits logiques programmables.

10
Constitution d’une Puce
• Une puce est un carré de silicium constitué de millions de transistors

• l’intégration des transistors sur une puce suit la loi de Moore

11
Introduction aux systèmes sur puce

La réduction de taille des transistors entraine de nombreuses conséquences, dont


plusieurs avantages :

• Augmentation possible de la fréquence de fonctionnement (car réduction des


distances entre les composants),

• Baisse de la tension d’alimentation et donc de la consommation énergétique,

• Baisse des coûts (en rassemblant plusieurs composants sur une même puce).

12
Le microprocesseur: définition
Un microprocesseur peut être défini simplement comme étant un processeur intègre
dans une puce électronique, ou on retrouve les éléments de la logique combinatoire et
séquentielle (portes, bascules, registres,...). L'objectif de cette intégration qui dépasse
actuellement facilement les centaines de millions de transistors, est de permettre la
réalisation des différentes opérations arithmétiques et logiques, ainsi que les
opérations de base de transfert et de branchement.

13
Exemple de la famille des microprocesseurs
Intel

14
Evolution des microprocesseurs Intel

15
Evolution des microprocesseurs Intel

16
Evolution des microprocesseurs Intel

17
Caractéristiques des microprocesseurs

La plupart des microprocesseurs possèdent des caractéristiques communes qui sont


les suivantes:

• Architecture de Von Neumann (Programmabilité),


• Données organisées en mots de 8 ou 16 bits,
• Instructions constituées de 1, 2, 3 ou 4 mots,
• Bus de données externes sur 8 ou 16 bits,
• Bus d'adresses de 16 ou 24 bits,
• Signaux de contrôle qui entrent ou
sortent du microprocesseur

18
Microprocesseur: Architecture de Von Neumann
 Un seul chemin d'accès à la mémoire
 Un bus de données (programme et données),
 Un bus d’adresse (programme et données)
 Architecture des processeurs d’usage général
 Goulot d'étranglement pour l'accès à la mémoire

CPU

19
Microprocesseur: Architecture Harvard

Les systèmes sur puce ne suivent


pas l’architecture de Harvard

20
Microprocesseur: Architecture interne
Un microprocesseur est un circuit intégré complexe renfermant dans un seul
boîtier :
• Une unité de commande
• Une unité de traitement

Mémoire

Microprocesseur

Mémoire
21
Microprocesseur: caractéristiques

Mémoire

22
Microprocesseur: Unité de commande
L’unité de commande est chargée de commander et de gérer tous les différents
constituants de l’ordinateur (contrôler les échanges, gérer l’enchaînement des
différentes instructions, etc...). en d’autres termes, son rôle est de coordonner et de
synchroniser toutes les actions (micro opérations) durant l’exécution des tâches. Elle
Mémoire
est composée au minimum de:
 D’un registre instruction (RI),
 D’un compteur ordinal (CO),
 D’un séquenceur ou générateur de séquences (GS) (décodeur de fonctions).
 D’une horloge.

23
Microprocesseur: Unité de commande
 Le registre d’instruction qui contient l’instruction en cours d’exécution (une
instruction comporte plusieurs champs : un champ code-opération et entre 0 et 3
champs-opérande).
 Le compteur ordinal (CO) [PC : Program Counter ou IP : Instruction Pointer] qui
 contient l’adresse de la prochaine instruction à exécuter (qu’il faut aller chercher en
Mémoire
 mémoire (partie des programmes)).
 Le générateur de séquences un dispositif de décodage des instructions (décodeur)
et un séquenceur de commandes qui active les circuits nécessaires à l’exécution de
l’instruction en cours. Cette unité a besoin des signaux d’une horloge pour enchaîner
les commandes.
 L’horloge est généralement externe à l’unité.
Les registres de l’unité de commande ne sont pas directement accessibles aux programmeurs.

24
Structure de l’unité de commande.

Mémoire

25
Microprocesseur: Unité de commande
• Elle permet de séquencer le déroulement des instructions.
PC: ProgrammeCounter, appelé aussi Compteur Ordinal. Il contient toujours l’adresse
de la prochaine instruction à exécuter.

Le décodeur d'instruction: Le mot binaire (instruction) est décodé pour savoir à


Mémoire
quelle action correspond l’instruction.
Bloc logique de commande (séquenceur /générateur de
séquences (GS) (décodeur de fonctions): Il organize
l'execution des instructions au rythme de l’horloge. Il élabore
tous les signaux de synchronization du microprocesseur en
function de l’instruction qu’il a à exécuter.

26
Microprocesseur: Unité de traitement
• Elle exécute les instructions. Elle contient:
L’accumulateur : C’est un registre de travail qui sert à stocker le résultat des
opérations réalisées par L’UAL.
L’Unité Arithmétique et Logique (UAL) est un circuit complexe
Le registre d'état : Chacun des bits de ce registre dépend du résultat de la dernière
opération effectuée par l’UAL.
On peut citer comme indicateurs:
- retenue (carry : C)
- retenue intermédiaire (Auxiliary-Carry : AC)
- signe (Sign : S)
- débordement (Overflow : O)
- zéro (Z)
- parité (Parity : P)

27
L'Unité Arithmétique et Logique
UAL : L'Unité Arithmétique et Logique, c’est le dispositif qui effectue les opérations
arithmétiques et logiques.
• Pour construire une UAL, on doit utiliser les blocs matériels suivants:
• Unité logique (les portes logiques et multiplixeur)
• L'additionneur 1 bit
• La fonction de l’UAL est d’effectuer en binaire les traitements des opérations qui
lui sont soumises et qui sont au minimum:
- Opérations arithmétiques binaires: Addition, Multiplication, Soustraction, et
Division.
- Opérations booléennes : et, ou, non.
- Décalages dans un registre.
Le résultat de l’opération est mis dans l’accumulateur (Acc) dans le cas d'une machine
à une adresse, dans des registres internes dans le cas de plusieurs adresses.

28
Structure de l’unité arithmétique et logique.

Voir partie exécution d’une instruction.

29
Conception de l’ unité de traitement
Les 4 blocs matériels

30
Technologie de base : les transistors CMOS
CMOS : Complementary MOS (circuit comportant des PMOS et des NMOS)

31
Conception des portes logiques
Exemple
A Y
A Y

32
Application
De quel type de portes s’agit-il ?

33
Solution

34
Conception de l’unité de traitement à 1 bit
Les opérations logiques :
Les opérations logiques sont les plus simples. L'unité 1 bit pour le ET et le OU :

S-Select Result
0 A and B
1 A or B

35
Conception de l’unité de traitement à 1 bit
Opérations Arithmétique Addition
Assemblage (ajout de add)

En combinant l'additionneur aux composants précédents, on obtient une UAL 1 bits

36
Conception de l’unité de traitement à 1 bit
Opérations Arithmétique Soustraction

• Pour faire l'addition, l'entrée RetEnt :Cin de la première unité est à 0.


• En la mettant à 1, l'additionneur calculera Ai+ Bi + 1 (invert = 0).
• En sélectionnant l’inversion invert de Bi, on aura

37
Les bus
Il existe 3 Types de bus :
 Bus de données: Bidirectionnel (µP mémoire et interfaces) permet de
transférer entre composants des données .
ex. : résultat d'une opération valeur d'une variable, etc.
Le nombre de lignes du bus de données définie la capacité de traitement du
microprocesseur ; selon le microprocesseur la largeur du bus peut être de 8
bits, 16 bits, 32 bits, 64 bits.
 Bus d'addresses: Unidirectionnel (µP mémoire et interfaces) permet de
transférer entre composants des adresses.
ex. : adresse d'une case mémoire, etc.
Le nombre de lignes du bus de données définie l'espace adressable, qui peut
avoir 2n emplacements, avec n = nombre de conducteurs du bus d'adresses.

 Bus de contrôle: Bidirectionnel (µP mémoire et interfaces) permet l'échange


entre les composants d'informations de contrôle
 ex. : périphérique prêt/occupé, erreur/exécution réussie, etc.

38
Les registres
On distingue deux types de registres:
 Registre à usage général qui permettent à l'UAL de manipuler des données,
 Les registres d'adresses qui sont connectés au bus d'adresse.

39
Fonctionnement de l’unité de centrale
Le fonctionnement de l’unité centrale est schématiquement toujours le même,
même si aujourd'hui il est de plus en plus complexe. Il suit les étapes suivantes :
1. Aller chercher l'instruction à exécuter dans la mémoire morte (qui est la mémoire
de programme).
2. Aller chercher la (ou les) donnée(s) (si besoin car parfois ce n'est pas nécessaire)
sur laquelle l'instruction doit opérer en mémoire vive ou en registres.
3. Exécuter l'instruction.
4. Ranger le résultat dans la mémoire vive ou dans un registre.
5. Recommencer Cette suite d'opérations se répète jusqu'à la fin du programme. Donc, pour
exécuter une instruction, 2 cycles se succèdent :
i. Cycle de recherche de l'instruction (cycle FETCH).

ii. Cycle d'exécution de l'instruction.

40
Format d’une instruction
 Chaque processeur (UC) possède un certain nombre limité d’instructions qu’il
peut exécuter. Ces instructions s’appellent Jeu d’instructions. Le Jeu
d’instructions décrit l’ensemble des opérations élémentaires que l’UC peu
exécuter.
 Les instructions peuvent être classifiées en 5 catégories :
 Instructions arithmétiques et logiques.
 Instructions d’affectations.
 Instructions de branchement.
 Instructions de transfert.
 Instructions d’entrées/sorties.
o Un champ Code opération (COP) représentant l’action
que le processeur doit effectuer.
o Un champ des opérandes ou les adresses des opérandes
(@ opérandes) définissant les paramètres de l’action
(emplacement des opérandes). Un opérande peut s’agir
d’une donnée ou bien d’une adresse mémoire.

41
Format d’une instruction
o La taille de l’instruction dépend du type de l’instruction et du type des opérandes.
o Les instructions sont stockées dans la mémoire centrale (Partie des programmes)
et les données sont stockées soit dans la mémoire centrale (Partie des données)
soit dans des registres.
 Le format d’une instruction varie d’une machine à une autre. Une machine peut
avoir des instructions avec des formats differents. Il est perfois fait référence à
une machine par le nombre des champs adresses contenus dans ses instructions :
• Machine à 0 adresse.
• Machine à 1 adresse.
• Machine à 2 adresses.
• Machine à 3 adresses.
• Machine à 4 adresses.

42
Format d’une instruction
Format à 4 adresses

Placer le résultat de l'addition dans la cellule d'adresse Z,


Aller chercher la prochaine instruction à la cellule d'adresse W.

 Placer le résultat de l'addition dans la cellule d'adresse Z,


 Aller chercher la prochaine instruction à la cellule d'adresse W.

Les instructions à 4 adresses sont très rares, car elles sont très longues. Les
constructeurs préfèrent prévoir un compteur ordinal dans l'unité de contrôle
qu'un opérande servant à indiquer l'adresse de la prochaine instruction.

43
Format d’une instruction
Format à 3 adresses

Placer le résultat de l'addition dans la cellule d'adresse Z,


 Ces instructions ont le même format que celles utilisées dans l’exemple de
Aller chercher la prochaine instruction à la cellule d'adresse W.
programme vus précédemment.
 Un processeur fonctionnant avec de telles instructions localise l'instruction
suivante à l'aide d'un registre compteur ordinal.
 Le compteur ordinal doit comporter m bits de position, car il est destiné à
recevoir des adresses.

44
Format d’une instruction
Format à 2 adresses

Placer le résultat de l'addition dans la cellule d'adresse Z,


Aller chercher la prochaine instruction à la cellule d'adresse W.

45
Format d’une instruction
Format à 1 adresse

Placer le résultat de
Une instruction l'addition
à une adressedans la cellule
nécessite non d'adresse
seulementZ,un compteur ordinal, mais
Aller chercher la prochaine instruction à la cellule d'adresse W.
aussi un registre supplémentaire pour stocker temporairement les valeurs
intermédiaires pendant le calcul.
 Ce registre, appelé accumulateur (ACC), peut contenir la donnée source ou le
résultat du calcul.

46
Format d’une instruction
Format à 1 adresse

Placer le résultat de l'addition dans la cellule d'adresse Z,


Aller chercher la prochaine instruction à la cellule d'adresse W.

47
Format d’une instruction
Format à 0 adresse
 Le processeur à 0 adresse possède un accumulateur particulier qu'on nomme pile.
 Une pile est un rangement par ordre chronologique.
 Contrairement à un accumulateur ordinaire, placer une donnée dans une pile ne
détruit pas son contenu précédent: celui-ci sera plutôt repoussé au fond de la pile.
 Généralement, l'accès aux données se fait dans l'ordre inverse où celles-ci ont été
Placer le résultat de l'addition dans la cellule d'adresse Z,
rangées
Aller dans la
chercher la pile; on désigne
prochaine souvent
instruction à lacecellule
type d'accès parW.
d'adresse le sigle anglais LIFO
(Last In, First Out).
 Cela implique qu'on a accès qu'à la
donnée qui est au sommet de la pile
entrée) ou aux données se trouvant
dans des emplacements consécutifs à
partir du sommet.

48
Format d’une instruction
Format à 0 adresse
 L'instruction à 0 adresse permet de modifier la pile en effectuant une opération
sur les deux données à partir du sommet, et en plaçant le résultat de l'opération au
sommet de la pile.

Placer le résultat de l'addition dans la cellule d'adresse Z,


Aller chercher la prochaine instruction à la cellule d'adresse W.

49
Etapes d’exécution d’une instruction
L’exécution d’une instruction nécessite trois phases:
L’initialisation où tout simplement la
recherche de l’instruction dans la mémoire.

Placer le résultat la cellule d'adresse Z,


centrale..

 Chaque phase comporte un certain nombre d'opérations élémentaires dans un ordre


précis par l’unité de commande.
 La communication entre les différents blocs et registres est assurée par les BUS.

50
Le traitement des instructions
Phase d’initialisation d’une instruction.
Le déroulement de cette phase est illustré par le tableau suivant

Placer le résultat la cellule d'adresse Z,


centrale..

51
Le traitement des instructions
Décodage et préparation de l’instruction
Cette phase consiste à l’analyse et préparation de l’exécution de l’instruction en cous
d’exécution. Le déroulement de cette phase est illustré par le tableau ci-dessous.

Placer le résultat la cellule d'adresse Z,


centrale..

52
Le traitement des instructions
Exécution de l’instruction

Phase d’exécution effective de l’instruction en cours et préparation de l’exécution de


la prochaine instruction. Le déroulement de cette phase est illustré par le tableau ci-
dessous.

53
Exemple
Cas d'une opération utilisant une seule opérande en mémoire centrale

54
Le traitement des instructions
Cheminement d’exécution des instructions.

55
Notions d’architecture RISC et CISC

Actuellement l’architecture des microprocesseurs se composent de deux grandes


familles :
 L’architecture CISC (Complex Instruction Set Computer).
 L’architecture RISC (Reduced Instruction Set Computer)
Le choix dépendra des applications visées. En effet,
 Si on diminue le nombre d'instructions, on crée des instructions complexes
(CISC) qui nécessitent plus de cycles pour être décodées et
 Si on diminue le nombre de cycles par instruction, on crée des instructions
simples(RISC) mais on augmente alors le nombre d'instructions nécessaires
pour ré aliser le même traitement.

56
Notions d’architecture RISC et CISC

57
Merci

58

Vous aimerez peut-être aussi