11/10/2021
Microprocesseur
Auditoire: 3 ème SE
Elaboré par:
Nidhameddine BELHADJ
Email: [Link]@[Link]
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