Vous êtes sur la page 1sur 53

Informatique Industrielle

Architecture des systèmes à


microprocesseur

IST
3eme année FI
Joël SEKA/Gado TCHABODE 2021-20212
Objectifs

• Comprendre l’architecture de base d’un


microprocesseur
• Etre capable d’écrire un programme dans un
langage de haut niveau pour une cible à
microprocesseur ou microcontrôleur
• Savoir interfacer un périphérique, savoir
gérer des entrées – sorties
• Etre capable d’évaluer les contraintes de
temps dans le cas d’une application simple
• Comprendre les mécanismes d'interruption

2
Domaine d’applications

3
Volume horaire & évaluation

• Volume horaire : 36 h
• 15 h de cours
• 09 h de TD
• 12 h de TP
• Evaluation
⚫ 1~2 devoirs sur table

⚫ Séances de TP notées

4
Connaissances préalables

• Bases de programmation en C
• Anglais (en lecture)
• Cours d’électronique 1ére année

5
Sommaire

Introduction

I. Architecture Interne des microprocesseurs


II. Fonctionnement des microprocesseurs
III. Les Langages de programmation
IV.Les Mémoires & l'espace adressable
V. Les interfaces d’entrées-sorties parallèle et
série

6
Introduction

1823: Découverte du silicium, le composant de base des


processeurs
1903: Brevet des circuits logiques électriques appelées «portes»
ou «interrupteurs».
1947: Invention du transistor
1958: Démonstration du premier circuit intégré
1971:Intel présente le premier microprocesseur, l'Intel 4004
1975 : Loi de moore
1979: Invention du microprocesseur Motorola 68000, un
microprocesseur 16/32-Bit, choisi comme le processeur pour le
Macintosh d'Apple.
2005 :Apparition des processeurs multi-coeurs

7
Introduction

8
Introduction

⚫ Définitions
− Le processeur ou CPU (Central Processing Unit) est un circuit
électronique capable d'effectuer séquentiellement et
automatiquement des opérations arithmétiques et logiques.

− Le microprocesseur noté aussi M.P.U. (Microprocessor Unit) est un


processeur dont les composants ont été incorporés dans un unique
circuit intégré.

− Le microcontrôleur est un circuit intégré rassemblant dans un même


boîtier un microprocesseur, plusieurs types de mémoires, et des
éléments personnalisés selon l'application.

9
Introduction

10
Chapitre 1 :Architecture interne des
microprocesseurs

11
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ Un Microprocesseur: un ensemble de millions de


transistors sur une puce de silicium.
− 32-core AMD Epyc 19 200 000 000 Transistors
⚫ 14 nm 4× 192 mm2

Des circuits intégrés sur la tranche de silicium (wafer) qui sert à leur fabrication

12
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ Un microprocesseur se compose de deux sous-


ensembles:
− L'unité de commande
− L'unité de traitement
Ces éléments communiquent via le bus interne du microprocesseur.

Unité de Bus interne Unité de


Commande Traitement

13
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'unité de commande séquence le déroulement


d'instructions.
− Rechercher les instructions en mémoire
− Lire et Décoder les instructions (Multiplication, addition,
comparaison, etc … )
− Coordonner l'exécution des instructions
− Synchroniser (via le bus de commande) les taches des organes
internes et externes au microprocesseur

14
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'unité de commande est constitué par six


éléments
− Le compteur de programme (PC : Program Counter) appelé
aussi Compteur Ordinal (CO)
− Le bloc logique de commande (ou séquenceur)
− Le décodeur d'instruction
− Le registre de données
− Le registre d'adresses CO
− Le registre d'instruction
Séquenceur

Bus interne
Décodeur
d'instruction RI

RAD

RDO
15
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ CO (compteur ordinal ):
− Un registre initialisé avec l'adresse de la première instruction
du programme. Il contient toujours l’adresse en mémoire du
mot binaire correspondant à la prochaine instruction à
exécuter.
⚫ Décodeur d'instruction :
− Détermine l'opération à exécuter à partir du code de
l'instruction.
⚫ Bloc logique de commande (ou séquenceur) :
− Organise l'exécution des instructions au rythme d’une horloge.
Il élabore tous les signaux de synchronisation internes ou
externes (bus de commande) du microprocesseur en fonction
de l’instruction qu’il a à exécuter.

16
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ Registre d'instruction (RI):


− Mémoire interne au Microprocesseur contenant l’instruction en
cours d’exécution
⚫ Registre d'adresse (RAD):
− Mémoire interne au Microprocesseur contenant un mot binaire
qui doit être inscrit sur le bus d'adresse. Ce mot binaire est
l'adresse à accéder en mémoire
⚫ Registre de données (RDO):
− Mémoire interne au Microprocesseur contenant un mot binaire lu
ou à écrire en mémoire. Ce mot transitera par le bus de données.

17
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'unité de commande

CO

Séquenceur

Décodeur
d'instruction RI

RAD

RDO

18
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'unité de traitement regroupe les circuits qui


assurent les traitements nécessaires à
l'exécution des instructions.
⚫ L'unité de traitement se compose de :
− L' accumulateur
− L’unité Arithmétique et Logique (UAL)
− Le registre d'état

19
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'accumulateur
− Ensemble de registres stockant les opérandes et le résultat d'une
opération.
⚫ L’unité Arithmétique et Logique (UAL)
− Ensemble des circuits permettant de réaliser les opérations
arithmétiques (addition, multiplication, division,...) et les
opérations logiques (complément à 2, inversion,OU, ET, ...)
⚫ Registre d'état (PSW : Program Status Word):
− Ensemble de bits à considérer individuellement. Chacun d'eux
est un indicateur renseignant sur le résultat de la dernière
opération effectuée par l’UAL (parité, retenue, débordement...).
Ces bits sont communément appelés indicateur d’état ou flag ou
drapeaux.

20
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'unité de traitement

Accumulateur
Registre
d'états

UAL

21
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ Architecture complète

22
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'architecture Von Neumann

Mémoire
Programme
Microprocesseur BUS &

Données

⚫ 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

23
Chapitre 1 :Architecture Interne des
microprocesseurs

⚫ L'architecture Harvard

BUS Mémoire
Programme
Microprocesseur

BUS Mémoire
Données

⚫ Séparation des mémoires programme et données


− Un bus de données programme,
− Un bus de données pour les données,
− Un bus d’adresse programme,
− Un bus d’adresse pour les données.
⚫ Meilleure utilisation du CPU :
− Chargement du programme et des données en parallèle

24
Chapitre 2 :Fonctionnement des
microprocesseurs

25
Chapitre 2 :Fonctionnement des
microprocesseurs

L’exécution du programme s’effectue instruction


par instruction, sous le pilotage de l’unité de
commande.

Le traitement d’une instruction par le


microprocesseur se découpe en trois étapes :
⚫ CHARGEMENT

⚫ DECODAGE

⚫ EXECUTION

26
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Le fonctionnement basique d'une opération

(1) Charger une instruction depuis la mémoire


(2) Charger les opérandes depuis la mémoire
(3) Effectuer les calculs
(4) Stocker le résultat en mémoire

27
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Le microprocesseur
− Ne comprend qu'un nombre limité d’instructions.
− La liste de toutes les instructions qu'un microprocesseur peut
exécuter s'appelle son jeu d'instruction.
⚫ Une instruction est composée de deux éléments :
− Le code opératoire : C’est un code binaire qui correspond à
l’action à effectuer
− Le champ opérande : la donnée ou l'adresse de la donnée.

28
Chapitre 2 :Fonctionnement des
microprocesseurs
⚫ Exemple d'instruction
− MOV .W #5, R6 ; Transfère la valeur 5 au registre R6;

Instruction
Code opératoire opérande

MOV .W #5, R6

4 036 0005

0100 0000 0011 0110 0000 0000 0000 0101

0100 0000 0011 0110 0000 0000 0000 0101 est le code machine de l'instruction

Après l’instruction le registre R6 contient la valeur 5

29
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Les étapes d’exécution d’une instruction


− Étape 1 : Recherche de l’instruction
1. Le contenu de PC (compteur ordinal) est placé
sur le bus des adresses par le bloc logique de
commande qui émet un ordre de lecture.

2. Au bout d’un certain temps (temps d’accès à la


mémoire) le contenu de la case mémoire
sélectionnée est disponible sur le bus de données.

3. L'instruction est stockée dans le registre


d’instruction

30
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Les étapes d’exécution d’une instruction


− Étape 2 : Décodage de l’instruction
1. Le décodeur détermine l'opération à exécuter à
partir du code opératoire.

2. Si l'instruction nécessite une donnée en mémoire


(opérande),l'unité de commande récupère sa
valeur sur le bus de données puis la stocke dans
le registre de données.

31
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Les étapes d’exécution d’une instruction


− Étape 3 : Exécution de l’instruction
1. Le micro-programme correspondant à
l’instruction est exécuté par l'unité de traitement
sous la coordination du séquenceur.

2. Les indicateurs sont positionnés (registres


d’état).

3. Le séquenceur positionne le compteur ordinal


(CO) pour l’instruction suivante.

32
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Exemple : ADDLW 06

33
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Exemple : ADDLW 06

34
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Exemple : ADDLW 06

35
Chapitre 2 :Fonctionnement des
microprocesseurs

⚫ Les deux grandes catégories


− CISC : Complex Instruction Set Computing
− RISC : Reduced Instruction Set Computing

Différences fondamentales
⚫ Instructions en nombre réduit pour le RISC
⚫ Instructions de taille fixe (code opératoire + opérande)
pour le RISC
⚫ Peu de registres pour le CISC
⚫ Beaucoup de modes d'adressage pour le CISC

36
Chapitre 3 :Les Langages de programmation

37
Chapitre 3 : Les Langages de programmation

Programme en langage
de haut niveau
(c, Basic, Pascal...)
Niveau
utilisateur
Compilateur
Machine Physique
Programme en langage d'assemblage « matérielle »
BCF
PIR1,TMR1IF
MOVLW VTMR1H
Assembleur
MOVWF TMR1H

Programme en langage
machine
Programmateur 011100000....10010
1110111101....11011
1111110001....11101
38
Chapitre 3 : Les Langages de programmation

⚫ Quelques définitions
− Le compilateur est un programme informatique qui
transforme un code source écrit dans un langage de
programmation en un autre langage informatique.
− L'Assembleur traduit du langage assembleur en langage
machine. L'assembleur est un compilateur.
− Langage machine : Ensemble des instructions
compréhensibles par le microprocesseur, elles sont écrites en
binaire.
− Le langage assembleur : possède les mêmes instructions que le
langage machine. A la seule différence que ces instructions
sont écrites en lettres. Chaque instruction en langage machine
correspond en une instruction en langage assembleur.

39
Chapitre 3 : Les Langages de programmation

⚫ La structure d'une instruction


− Dans un programme une instruction Assembleur occupe
normalement une ligne. L'instruction Assembleur proprement dite
comporte quatre champs.
⚫ Étiquette
⚫ Opération (mnémonique )
⚫ Opérandes
⚫ Commentaires

Étiquette Opération Opérandes Commentaires


TEMPO ADD #10,R5 ; Additionne 10 avec
la valeur contenu
dans le registre R5 et
stocke le résultat dans
le registre R5.

40
Chapitre 3 : Les Langages de programmation

⚫ Structure d'un programme en langage assembleur


− Définition succincte de ce que fait le programme / l’auteur/ la
date/version
⚫ ;ce programme qui permet d'allumer en permanence une LED
branché sur P1.0
⚫ J. SEKA
⚫ 04 février2016 Version:1.0
− Déclarations obligatoires
⚫ #include "msp430g2553.h "
⚫ Équivalences : Déclarations des variables et des constantes
⚫ COMPT1 EQU 5
− Initialisations des vecteurs
⚫ ORG 0F800h; Vecteur de Reset.

41
Chapitre 3 : Les Langages de programmation

⚫ Structure d'un programme


− Initialisations des registres
⚫ RESET mov.w #0280h,SP ;Initialise le pointeur
; de pile
⚫ StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ;Stop le Watchdog
;Timer
⚫ SetupP1 mov.b #001h,&P1DIR ;P1.0 configuré en
;sortie, P1.1 à P1.7
;configurés en entrée
− Début du programme
⚫ Main bis.b #001h,&P1OUT ; P1.0 = 1 / LED ON

42
Chapitre 3 : Les Langages de programmation

⚫ Structure d'un programme


− Sous programmes
⚫ TEMPO mov.w #0ffffh,R15
− Fin du sous-programme
⚫ ret
− Fin du programme
⚫ ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END ;

43
Chapitre 3 : Les Langages de programmation

⚫ Quelques instructions 68HC11...


− Arithmétiques : ADDA, SUBA
− Logiques :COM, EORA
− Incrémentation: INCA, DECA
− Effacement :CLR, CLRA
− Mouvement : MOV, MOVA
− Rotation :ROLA, RORA
− Saut et branchement: BRA, JMP
− Action sur les bits : BCLR, BSET
− diverses : NOP, STOP

44
Chapitre 3 : Les Langages de programmation

⚫ Quelques instructions MSP430...


– Arithmétiques : ADD, SUB
– Logiques : INV, XOR
– Incrémentation: INC, DEC
– Effacement : CLRZ, CLR
– Transfert de données : MOV
– Rotation : RLA, RRA
– Saut et branchement: JMP, JNE
– Action sur les bits : BIC, BIS
– diverses : NOP, RET

45
Chapitre 3 : Les Langages de programmation
⚫ Les modes d'adressages
− Un programme manipule forcément des données. Un
mode d'adressage est un moyen qui permet au
microprocesseur d'avoir accès à une donnée. Cette
donnée peut être un nombre quelconque, un nombre
présent quelque part en mémoire ou dans un registre.

− Il existe plusieurs modes d’adressage nous mettrons


l’accent sur les modes d'adressage suivant:

− Adressage immédiat :
⚫ La donnée est dans l'instruction.

⚫ mov.w #0ffffh, R15 ; Transfert la valeur


;0x0ffff dans le registre R15

46
Chapitre 3 : Les Langages de programmation
⚫ Les modes d'adressages
− Adressage direct/absolue:
• La donnée est en mémoire. Le champ opérande de
l’instruction contient l'adresse d'une donnée en
mémoire.
• mov &0f016h, &01114h ;Transfert le
contenu de
;l’emplacement 0f016h dans
;l’emplacement 01114h
− L'adressage registre :
⚫ La donnée est dans un registre interne au

microprocesseur. Le champ opérande de l’instruction


contient le nom du registre.
⚫ mov R5,R8 ;Transfert le contenue de R5

;dans R8 47
Chapitre 3 : Les Langages de programmation

− Adressage indirect:
⚫ L'adresse de la donnée est contenue dans un pointeur. Le champ
opérande de l’instruction contient l'adresse d'un pointeur.
⚫ and @R4,R5 ; R4 pointe
vers l’opérande.

48
Chapitre 3 : Les Langages de programmation

⚫ Formes algorithmiques
− Affectations
mov.b #001h,&P1DIR ; Chargement de 001h dans P1DIR.

− Appel d'un sous programme

− Structure
Call #TEMPO "Si alors sinon" [if then,
;Appel else]
du sous-programme TEMPO.

Mainloop bit.b #010h,&P1IN ; Est-ce que l’entrée P1.4 est activée ?


jc ON ;OUI. Saut à l’étiquette ON
call #LED ;NON. Dans ce cas on appelle le
sous-
;
programme LED.
49
Chapitre 3 : Les Langages de programmation

⚫ Formes algorithmiques
− Structure "Tant que" [While]

Mainloop bit.b #010h,&P1IN ; Est-ce que l’entrée P1.4 est activée ?


jc Mainloop ; OUI. Alors on continue à tester.
call #LED ;NON Dans ce cas on
appelle le sous-
programme LED.

50
Chapitre 3 : Les Langages de programmation

⚫ Les outils de programmations


− Environnement de Développement Intégré (IDE en anglais
pour Integrated Development Environment)
− Un ensemble d'outils de développement de logiciels.
⚫ un éditeur
⚫ un assembleur
⚫ un compilateur
⚫ un débogueur
⚫ un simulateur

52
Chapitre 3 : Les Langages de programmation

⚫ Quelques fabricants
− ATMEL
− FREESCALE
− MICROCHIP
− TEXAS Instrument
− ...

Fabricants Environnement de Développement


Intégré
ATMEL Atmel Studio

FREESCALE CodeWarrior

MICROCHIP Mplab

TEXAS Instruments Code Composer Studio

53
Bibliographie

⚫ Architecture des machines NFA004, Joëlle


Delacroix
⚫ Le microcontrôleur PIC 16F84, Pierre
LOGLISCI
⚫ Architecture des systèmes à processeurs, Pierre-
Louis Caryel
⚫ PIC 16F84, Philippe Hoppenot
⚫ Microprocesseurs & Microcontrôleurs, Sylvain
MONTAGNY
⚫ MSP430-user-guide, Texas Instruments
⚫ MSP430 Microcontroller Basics, John H. Davies

54

Vous aimerez peut-être aussi