Vous êtes sur la page 1sur 26

11/10/2021

Microprocesseur
Auditoire: 3 ème SE

Elaboré par:
Nidhameddine BELHADJ

Email: Nidhameddine.Belhadj@fsm.rnu.tn

Objectifs du cours:

 Etudier les différents calculateurs numériques.


 Etudier les mémoires et les bus.
 Etudier les architectures des DSP.
 Réaliser des travaux pratiques sur le DSP TMS320C6416.

Sys Temps Réel 2

1
11/10/2021

Plan détaillé:

 Etude des calculateurs numériques


 Les Mémoires et les Bus
 Architecture du DSP C6416
 Programmation du DSP C6416
 Architecture et programmation du microprocesseur ARM

Sys Temps Réel 3

Chapitre I: Les calculateurs numériques

Sys Temps Réel 4

2
11/10/2021

Les question qui se posent


 Quels sont les différents types de calculateurs qui existent sur le
marché?

 Pourquoi faire appel à un calculateur?

 Quel est la différence entre ces calculateurs?

 Quels sont les critères de choix d’un calculateur?

 Comment les programmer?

Sys Temps Réel 5

les différents types de calculateurs


1) Microprocesseurs généralistes:
C'est un circuit intégré très complexe qui représente l'unité centrale de traitement
dite C.P.U. Ils sont destinés pour exécuter applications générales (calcul
numérique, traitement des fichiers, CAO etc
Un microprocesseur se caractérise aujourd'hui par:
Le jeu d'instructions qu'il est capable d'exécuter
La complexité de son architecture qui se mesure par le nombre de
transistors présents : plus ce nombre est élevé, plus la complexité des tâches à
traiter peut augmenter.
La vitesse de son horloge qui dicte le rythme de travail.
Le nombre de bits qu'il peut traiter (4 à ses débuts, 128 en 2011).
À sa création, il était capable d'effectuer un peu moins d'un million
d'instructions par seconde. Aujourd'hui, il en traite plus de 10 milliards.
Sys Temps Réel 6

3
11/10/2021

1) Microprocesseurs généralistes: Les fabricants les plus connus


Intel
Architecture interne d’un µproc AMD (Advanced Micro Devices)
Motorolla (Famille 68000, 88000)
IBM (PowerPC)
SUN (UltraSparc)

Les dernières technologies:


•µp superscalaires
•µp hyperthreading
•µp multicœurs

Sys Temps Réel


7

2) Les DSP (Digital Signal Processor) :

Ils sont des microprocesseurs optimisés pour exécuter des applications


de traitement numérique du signal (extraction de signaux, filtrage, FFT,
convolution etc.) le plus rapidement possible par optimisation de l’exécution
des opérations d’addition et de multiplication.

Ils sont caractérisés par une puissance de calcul importante avec une
consommation d’énergie faible en comparaison avec les processeurs
généralistes comme intel.

Il existe différents fabricants de DSP sur le marché :


Analog Devices
NXP.
Texas Instruments

Certains modèles sont utilisés dans certains processus industriels comme


la commande des machines électriques tels que la famille TMS320C24x , les
controlleurs de Freescale 56F8013/56F8011
8
Sys Temps Réel

4
11/10/2021

2) Les DSP (Digital Signal Processor) :

Platforme NXP 56f8013 Le DSP multicœur de Texas


Instruments TMS320C6678

9
Sys Temps Réel

3) Les FPGA (Field Programmable Gate Arrays)

 Un FPGA est un circuit intégré contenant un nombre important de blocs


logiques librement reconfigurables. Chaque bloc peut être configuré pour
réaliser une fonction de base.
 Contrairement aux processeurs, les FPGA sont massivement parallèles.
Chaque tâche de traitement indépendante est affectée à une section
spécifique du circuit, et peut donc s'exécuter en toute autonomie sans
dépendre aucunement des autres blocs logiques
 On peut implémenter des cœurs de processeurs softcore dans un FPGA
(micro/pico Blaze de la famille Xilinx, Nios d’Altera, MIPS etc) ou construire
des architectures hybrides.
 Ils sont utilisés dans diverses applications nécessitant de l'électronique
numérique (télécommunications, aéronautique, automobile, commande des
machines).
 Ils sont également utilisés pour le prototypage d'ASIC.
10
Sys Temps Réel

10

5
11/10/2021

3) Les FPGA (Field Programmable Gate Arrays)

LUT pour implémenter la fonction logique;


Bascule flip flop D pour sauvegarder le
résultat de la LUT
Le MUX est utilisé pour sélectionner la sortie

11
Sys Temps Réel

11

4) Les ASIC (Application-specific integrated circuit )

Un ASIC est circuit intégré propre à une application développé pour un


client.
C’est un circuit intégré (micro-électronique) spécialisé. En général, il
regroupe un grand nombre de fonctionnalités uniques ou sur mesure.
L'intérêt de l'intégration est de réduire les coûts de production et d'augmenter
la fiabilité.
la production d'ASIC est généralement réservée à de gros volumes
(>100 000 pièces par an)

Le prototypage des ASIC se fait sur des FPGA


avant de passer à la fabrication du circuit

12
Sys Temps Réel

12

6
11/10/2021

5) Les microcontrôleurs

 Un µC est un circuit intégré qui rassemble les éléments essentiels


d'un ordinateur : processeur, mémoires et interfaces d'entrées-sorties sur
une seule puce.
 Ces sont des circuits intégrés caractérisés par un plus haut degré
d'intégration, une faible consommation électrique et un coût réduit
 Ils sont fréquemment utilisés dans le contrôle et la gestion de certains
processus industriels non complexes

13
Sys Temps Réel

13

5) Les microcontrôleurs
La société
MICROCHIP

MC9S08SV16 de Freescale
La société
(Motorola dans le passé) Atmel

Arduino à base
d’un MCU Atmega

14
Sys Temps Réel

14

7
11/10/2021

Les question qui se posent


 Quels sont les différents types de calculateurs qui existent sur le
marché?

 Pourquoi faire appel à un calculateur?

 Quel est la différence entre ces calculateurs?

 Quels sont les critères de choix d’un calculateur?

 Comment les programmer?

Sys Temps Réel 15

15

Pourquoi faire appel à un calculateur?

 Certains tâches sont difficiles à exécuter manuellement (faciliter les


tâches
 Assurer un traitement correct et précis
 Optimiser les calculs.
 Accélérer le traitement
 Automatiser le traitement (Commande, régulation, control)

Sys Temps Réel 16

16

8
11/10/2021

Domaines d’ utilisation
Tout système numérique
comporte un calculateur

Robotique
Vidéo Vidéo-
conférence surveillance

Télévision
Numérique

mécanique

Smartphone Militaire
Drone

Sys Temps Réel 17

17

Système numérique

Système numérique

Partie matérielle: Partie logicielle:


Calculateur numérique Système d’exploitation
Automate embarqué et programme.
Programme.

Sys Temps Réel 18

18

9
11/10/2021

Un système d'exploitation

 Un système d'exploitation (Operating System ou OS)


est un ensemble de programmes spécialisés qui
permet l'utilisation des ressources matérielles d'un
ordinateur.
 Parmi les services d’un OS, on cite: la gestion de la
mémoire, l'accès aux périphériques (disque dur,
lecteur de CD-Rom, clavier, souris, carte graphique...),
la gestion du réseau, le partage du temps
microprocesseur entre les programmes (multi-tâche),
etc.)
 Le système d'exploitation est un intermédiaire entre les
logiciels d'application et le matériel.

Sys Temps Réel 19

19

Les question qui se posent


 Quels sont les différents types de calculateurs qui existent sur le
marché?

 Pourquoi faire appel à un calculateur?

 Quel est la différence entre ces calculateurs?

 Quels sont les critères de choix d’un calculateur?

 Comment les programmer?

Sys Temps Réel 20

20

10
11/10/2021

Quel est la différence entre ces calculateurs?

 Certains sont dédiés pour exécuter des applications générales (les


GPP/CPU)
 Certains d’autres sont spécifiques pour réaliser des tâches bien précises
(ASIC)
 D’autres sont dédiés pour les traitements massivement parallèles (FPGA)
 Certains sont adéquats pour des applications simples (microcontrôleurs)

Sys Temps Réel 21

21

Les question qui se posent


 Quels sont les différents types de calculateurs qui existent sur le
marché?

 Pourquoi faire appel à un calculateur?

 Quel est la différence entre ces calculateurs?

 Quels sont les critères de choix d’un calculateur?

 Comment les programmer?

Sys Temps Réel 22

22

11
11/10/2021

Les compromis

DSP

ASIC FPGA GPP


ASIP
Élevée Cout Faible

Faible Flexibilité Élevée

Élevée Complexité (application) Faible

Faible Consommation d’énergie Élevée

Sys Temps Réel 23

23

Les question qui se posent


 Quels sont les différents types de calculateurs qui existent sur le
marché?

 Pourquoi faire appel à un calculateur?

 Quel est la différence entre ces calculateurs?

 Quels sont les critères de choix d’un calculateur?

 Comment les programmer?

Sys Temps Réel 24

24

12
11/10/2021

Comment les programmer?

Chaque calculateur possède un jeu d’instruction spécifique à son architecture.

Deux façons sont possibles pour programmer un calculateur numérique:

 Programmation de bas niveau en utilisant le jeu d’instructions spécifique

 Programmation de haut niveau (Langage C/C++, JAVA, Python etc) puis

un compilateur va traduire le code en code machine adapté à la plateforme

utilisée

Sys Temps Réel 25

25

Evolution des calculateurs Numériques

1971 1976 1985 1986 1990

Invention CPU Invention Invention des CPUs Conception conjointe


du CPU vectoriel du FPGA superscalaires matérielle logicielle

1995 2000 Après 2000 Après 2005

Evolution des systèmes


Invention des
Evolution des DSPs Invention des MPSoC multi-threads
multicore
Hyperthreading

Evolution de ces architectures


Aujourd’hui SIP
Multi FPGA

Sys Temps Réel 26

26

13
11/10/2021

Technologies des processeurs


 Un processeur vectoriel est un processeur peut être vus comme des processeur
normal, auquel on a ajouté un certain nombre d'instructions optimisées pour la
gestion des tableaux.
 Un processeur est dit superscalaire s'il est capable d'exécuter plusieurs
instructions simultanément parmi une suite d'instructions. Pour cela, il comporte
plusieurs unités de calcul, et est capable de détecter l'absence de dépendances
entre instructions.
 Un microprocesseur multi-cœur est un processeur possédant plusieurs cœurs
physiques fonctionnant simultanément
 Un cœur physique est le noyau du processeur, comportant le compteur ordinal,
registres, unités de calcul, etc.
 Un processeur est dit multithread s'il est capable d'exécuter efficacement
plusieurs threads simultanément. le multithreading a pour but d'augmenter
l'utilisation d'un seul cœur en tirant profit des propriétés des threads et
du parallélisme au niveau des instructions.

Sys Temps Réel 27

27

Fin du Chapitre I

Sys Temps Réel 28

28

14
11/10/2021

Chapitre II: Les mémoires et les Bus

Sys Temps Réel 29

29

Les mémoires

On distingue trois types de mémoires :


les mémoires vives (RAM : Random Access Memory) ou mémoires
volatiles:
 Mémoire volatile.
 Elles sont utilisées pour stocker temporairement des données et des
programmes.
 Mémoire accessible en lecture et écriture.

Les mémoires mortes (ROM : Read Only Memory)


Mémoires non volatiles.
 Mémoire accessible en lecture.

Mémoires flash : compromis entre les deux types de mémoire


 Mémoire accessible en lecture et écriture.
 Mémoire non volatile.
 Temps d’accès plus important que la RAM.

Sys Temps Réel 30

30

15
11/10/2021

Les mémoires

Sys Temps Réel 31

31

Les mémoires

Sys Temps Réel 32

32

16
11/10/2021

Interfaçage microprocesseur/mémoire

Le nombre de lignes d’adresses dépend de la capacité de la


mémoire : n lignes d’adresses permettent d’adresser 2n
cases mémoire : 8 bits d’adresses permettent d’adresser
256 octets, 16 bits d’adresses permettent d’adresser 65536
octets (= 64 Ko), ...

Sys Temps Réel 33

33

Interfaçage microprocesseur/mémoire

Sys Temps Réel 34

34

17
11/10/2021

Interfaçage microprocesseur/mémoire

Représentation plus pratique:

Sys Temps Réel 35

35

Les Bus

On appelle bus, un ensemble de liaisons physiques (câbles, pistes


de circuits imprimés, etc.) pouvant être exploitées en commun par
plusieurs éléments matériels afin de communiquer.

Les bus ont pour but de réduire le nombre de « voies »


nécessaires à la communication des différents composants, en
mutualisant les communications sur une seule voie de données.
C'est la raison pour laquelle la métaphore d'« autoroute de
données » est parfois utilisée.

Sys Temps Réel 36

36

18
11/10/2021

Les Bus

Le bus d'adresses (appelé parfois bus d'adressage ou bus mémoire)


transporte les adresses mémoire auxquelles le processeur souhaite
accéder pour lire ou écrire une donnée. Il s'agit d'un bus unidirectionnel.

Le bus de données véhicule les instructions en provenance ou à


destination du processeur. Il s'agit d'un bus bidirectionnel.

Le bus de contrôle (parfois bus de commandes) transporte les ordres


et les signaux de synchronisation en provenance de l'unité de
commande et à destination de l'ensemble des composants matériels. Il
s'agit d'un bus bidirectionnel dans la mesure où il transmet également
les signaux de réponse des éléments matériels.

Sys Temps Réel 37

37

La mémoire cache

 La mémoire cache ou antémémoire est une mémoire


intermédiaire placée entre le processeur et la mémoire
centrale dont le temps d'accès est de 4 à 20 fois inférieur
à celui de la mémoire centrale.

 Elle comporte un nombre fini d’entrées ( n mots


mémoire) .

 La mémoire cache contient une copie des données


originales lorsqu'elles sont coûteuses (en termes de
temps d'accès) à récupérer ou à calculer par rapport au
temps d'accès au cache.

Sys Temps Réel 38

38

19
11/10/2021

La mémoire cache

• Une fois les données stockées dans la cache, l'utilisation


future de ces données peut être réalisée en accédant à
la copie en cache plutôt qu’à la mémoire centrale, ce qui
abaisse le temps d'accès moyen.

• Les données mises en cache peuvent être par exemple :


un programme, un bloc d'image à traiter, etc…

• La mémoire source des données peut être par exemple


un disque dur, la mémoire centrale, etc.

Sys Temps Réel 39

39

La mémoire cache

On peut associer actuellement jusqu'à trois niveaux de cache (L1, L2,
L3) entre un microprocesseur et la mémoire RAM. C'est souvent le cas
des serveurs haut de gamme.

Pour les microprocesseurs équipant les PC ou Apple, on en compte


généralement deux.

Sys Temps Réel 40

40

20
11/10/2021

Cache de niveau 1 ou L1

• Ce niveau de cache a été l'un des premiers à être mis en


oeuvre.

• Il est intégré au microprocesseur et sa taille est


essentiellement fonction de l'architecture du microprocesseur.

• AMD a toujours privilégié des caches L1 de grande taille,


64 Ko pour le K6 et 128 Ko pour l'Athlon, tandis
qu'Intel privilégie des caches L1 de petite taille, 32 Ko pour
les Pentium II/III.

• D'autre part, il est divisé en deux parties de taille égale. L'une


stocke les instructions (L1P) des programmes, l'autre les
données (L1D) des programmes.

• Les autres niveaux de caches ne font pas cette distinction.

Sys Temps Réel 41

41

Cache de niveau 2 ou L2
• Cette mémoire cache sert d'intermédiaire entre le cache L1 et
la mémoire RAM.

• Il ne différencie pas les données et les programmes, il est


moins rapide que le cache L1, mais sa taille est plus
importante de 256 Ko à 4 Mo, voire plus pour les années à
venir.
• Ce cache a subit de nombreuses évolutions, et se retrouve
aujourd'hui intégré dans le microprocesseur.

• Toutefois s'il est intégré, il n'est pas imbriqué comme le cache


L1. Cela veut dire que changer la taille du cache L1 implique
souvent une modification de l'architecture du processeur, ce
n'est pas le cas du cache L2.

• Ceci permet de proposer des microprocesseurs disposant de


différentes tailles de cache L2.
Sys Temps Réel 42

42

21
11/10/2021

Cache de niveau 3 ou L3

• Si ce type de cache est aujourd'hui courant sur des machines


haut de gamme (Sun, HP, IBM, Alpha, ....).

• Dans le monde des PC, il n'a existé qu'un seul exemple de


microprocesseur utilisant une mémoire cache de niveau 3. Il
s'agit du K6-3 de la société AMD.

• Jusqu'à présent, ce type de cache a toujours été composé


de mémoire SRAM, et implanté sur la carte mère.

• Sa taille varie de 1 Mo à 8 Mo (valeur généralement constatée
mais il n'y a pas de limitation technique).

Sys Temps Réel 43

43

Organisation des données dans une cache

La méthode d'organisation permet de définir comment les


données provenant de la mémoire RAM doivent être stockées
par la mémoire cache. Les méthodes utilisées dépendent :

 la quantité de mémoire RAM que le cache pourra gérer


(avec 256 Ko de cache on ne peut pas gérer efficacement
voire pas du tout, selon la méthode employée, 4 Go de
mémoire RAM).

 la rapidité avec laquelle le processeur pourra accéder à


ces données.

 le % de chance qu'a le microprocesseur de trouver


l'information dans le cache. Plus ce pourcentage est élevé,
plus le traitement est rapide.

Sys Temps Réel 44

44

22
11/10/2021

Direct Mapped:
On découpe la mémoire cache en ligne et chacune contient n octet (n
pouvant être égal à 4, 8, ..., 128, ...). Exemple, prenons 16384 lignes de
32 octets chacune. Ceci nous fait une mémoire cache d'une taille de
16384 * 32 octets = 512 Ko (Ko = 1024octets).

Sys Temps Réel 45

45

Direct Mapped:

Principe:
Comment faire à présent pour que notre mémoire cache de
512 Ko gère 128 Mo. On va affecter à chaque ligne de notre
mémoire cache une zone de mémoire RAM fixe et de taille
fixe. Ainsi notre mémoire cache découpe la RAM en 16384
zones et chaque zone à une taille de 128 Mo / 16384 =
134217728 octets / 16384 = 8192 octets.

Avantage :
Lorsque le microprocesseur cherche à savoir si une
information dont il a besoin est dans le cache ou pas, il sait
de suite dans quelle ligne il doit chercher. Il y a une
correspondance directe entre mémoire RAM et mémoire
cache.
Sys Temps Réel 46

46

23
11/10/2021

Direct Mapped:

Inconvénient:

Si le microprocesseur doit travailler sur toute une


zone mémoire correspondant à une ligne de mémoire
cache, alors seule une petite partie des données utilisées
pourra être dans la mémoire cache.

Dans notre exemple, les 8192 octets d'une zone RAM ne


seront gérés que par 32 octets. Il est évident dans ce cas
que le processeur fera beaucoup plus appel à la mémoire
RAM qu'au cache.

Sys Temps Réel 47

47

N-way set associative :


Cette méthode est une évolution de la méthode direct mapped . Au lieu
d'affecter une seule ligne de mémoire cache à une zone, on va en
affecter plusieurs. Le N de N-way set associative correspond au nombre
de lignes utilisées pour une zone de mémoire RAM. Si on reprend notre
mémoire RAM de 128 Mo et notre cache de 512 Ko, alors 2 lignes de
cache couvrent une zone RAM de 8192*2 = 16384Octets soit 16 Ko.

Sys Temps Réel 48

48

24
11/10/2021

N-way set associative :

•Avantage:
Une zone de 8192 octets pourra être gérée par deux lignes
de cache au lieu d'une seule. Donc si le processeur a besoin
de 32 Ko ou plus d'un coup, on retombe dans l'inconvénient
de la méthode direct mapped , mais ce que fait la méthode n-
way set associative, c'est de diminuer le nombre de fois où
ce cas arrivera. En moyenne, c'est plus efficace.

•Inconvénient :
Le processeur devra consulter non pas une ligne de cache
mais n lignes pour savoir si l'information recherchée est dans
le cache ou pas.

Sys Temps Réel 49

49

Fully associative :
Cette méthode s'oppose au direct mapped en ce sens que n'importe
quelle ligne de cache peut gérer n'importe quelle zone de la mémoire
RAM.
On peut considérer la méthode n-way associative comme un
compromis entre direct mapped et fully associative.

Sys Temps Réel 50

50

25
11/10/2021

Fully associative :
Avantage :
Elle assure un remplissage maximal de la mémoire cache. Les
deux autres méthodes citées, dans la mesure où leur ligne de
cache couvre une zone déterminée de la mémoire RAM,
peuvent ne plus accepter de données dans le cache, même s'il y
a encore de la place. Pour cela, il suffit que le microprocesseur
travaille sur une seule zone de la mémoire RAM.

Inconvénient: :
Comme on n'affecte pas de zone de mémoire RAM à une ligne
de cache (direct mapped) ou à un groupe de ligne (n-way
associative), le microprocesseur n'a pas d'autre choix que de
consulter toutes les lignes de cache pour savoir si l'information
qu'il cherche est dans la mémoire cache.

 La méthode fully associative est donc à écarter dès que la


mémoire cache doit avoir une grande taille et donc un grand
nombre de lignes.
Sys Temps Réel 51

51

FIN Chapitre II

Sys Temps Réel 52

52

26

Vous aimerez peut-être aussi