0% ont trouvé ce document utile (0 vote)
44 vues77 pages

Cours Archi32 CH1

Le document présente une introduction aux architectures des systèmes embarqués, en se concentrant sur l'architecture Cortex-M4 dédiée au STM32. Il aborde des sujets tels que la gestion de la mémoire, les interruptions, l'acquisition de données, et les communications. Les systèmes embarqués sont définis comme des dispositifs intégrant matériel et logiciel pour des tâches spécifiques, souvent en temps réel.

Transféré par

Mehdi SAIDI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues77 pages

Cours Archi32 CH1

Le document présente une introduction aux architectures des systèmes embarqués, en se concentrant sur l'architecture Cortex-M4 dédiée au STM32. Il aborde des sujets tels que la gestion de la mémoire, les interruptions, l'acquisition de données, et les communications. Les systèmes embarqués sont définis comme des dispositifs intégrant matériel et logiciel pour des tâches spécifiques, souvent en temps réel.

Transféré par

Mehdi SAIDI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ARCHITECTURES 32 BITS

Dr. Wissam JENKAL


PhD on signal processing and embedded systems Cycle d’ingénieur : MTA/GE - 2025/2026
Current research interests include Embedded systems, Automotive embedded
Software/Hardware, Biomedical Engineering and Information Technologies
32 bits architectures

Chapitre 1 : Introduction aux architectures des SE

Chapitre 2 : Architecture Cortex-M4 dédiée au STM32

Chapitre 3 : Gestion de la mémoire pour le Cortex-M4

Chapitre 4 : Interruptions et temporisation didiée au Cortex-M4

Chapitre 5 : Acquisition et commandes pour le STM32

Chapitre 6 : Communication et flux de données

2
Chapitre 1 : Introduction aux architectures des SE

■ Introduction

■ Qu'est-ce qu'un système embarqué ?

■ De quoi se constitue un système embarqué ?

■ Quel est le critère de choix d’un système embarqué ?

■ Quelle est la différence entre les différentes technologies des systèmes embarqués ?

■ Rappels sur l’architecture des processeurs, mémoires et les modes d’adressages

■ Introduction aux architectures ARM

3
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE

Les
Transports

4
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE

SE

5
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE

Produits
électriques et
électroniques

L'imagerie par résonance


magnétique (IRM)

6
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE

Contrôle des
processus

7
I. Introduction aux architectures des SE
■ Qu'est-ce qu'un système embarqué ?

■ De quoi se constitue un système embarqué ?

■ Quel est le critère de choix d’un système embarqué ?

■ Quelle est la différence entre les différentes technologies des systèmes embarqués ?
| Chapitre 1 : Introduction aux architectures des SE

8
Qu'est-ce qu'un système embarqué ?
■ Définition 1 : Un système embarqué est un appareillage remplissant une mission spécifique
en utilisant un ou plusieurs microprocesseurs (boîte noire).

■ Définition 2 : Un système embarqué est un système complexe qui intègre du logiciel et du


matériel conçus ensemble afin de fournir des fonctionnalités données. Il contient
généralement un ou plusieurs microprocesseurs destinés à exécuter un ensemble de
programmes définis lors de la conception et stockés dans des mémoires.
| Chapitre 1 : I Introduction aux architectures des SE

■ Définition 3 : Un système électronique et informatique autonome dédié à une tâche précise,


souvent en temps réel, possédant une taille limitée et ayant une consommation énergétique
restreinte.

9
Qu'est-ce qu'un système embarqué ?
Historique

■ Les premiers systèmes embarqués sont apparus

en 1971 avec l'apparition du Intel 4004.

■ L'Intel 4004 développé en 1971, le premier

microprocesseur, était le premier circuit intégré


| Chapitre 1 : Introduction aux architectures des SE

incorporant tous les éléments d'un ordinateur

dans un seul boîtier: unité de calcul, mémoire,

contrôle des entrées / sorties.

10
Qu'est-ce qu'un système embarqué ?
Historique
■ Cofondateur de la société Intel, Gordon
Moore avait affirmé dès 1965 que le nombre
de transistors par circuit de même taille allait
doubler, à prix constants, tous les ans.

■ Il rectifia par la suite en portant à dix-huit


mois le rythme de doublement.
| Chapitre 1 : Introduction aux architectures des SE

■ Il en déduisit que la puissance


des ordinateurs allait croître de manière
exponentielle, et ce pour des années. Il avait
raison.

■ La loi de Moore, fondée sur un constat


empirique, a été vérifiée après.

11
De quoi se constitue un système embarqué ?

Système embarqué typique


| Chapitre 1 : Introduction aux architectures des SE

12
Quel est le critère de choix d’un système
embarqué ?
Système embarqué (SE) & PC

PC : SE :
❖ Processeur standard ❖ Processeur dédié
❖ Multiples unités ❖ Architecture adaptée
fonctionnelles (flottant) ❖ Vitesse faible
❖ Vitesse élevée ❖ Mémoire limitée
❖ Consommation électrique ❖ Consommation électrique
| Chapitre 1 : Introduction aux architectures des SE

élevée faible
❖ Chaleur ❖ Petite taille
❖ Taille ❖ Coût optimisée
❖ Grand nombre de ❖ Mémoire optimisée
périphériques

13
Quel est le critère de choix d’un système
embarqué ?
Système embarqué (SE) & PC
| Chapitre 1 : Introduction aux architectures des SE

14
Quelle est la différence entre les différentes
technologies des systèmes embarqués ?

SOFTWARE
| Chapitre 1 : Introduction aux architectures des SE

HARDWARE

15
Architecture de CPU
• L’unité centrale de traitement (UCT) aussi appelée
CPU (Central Processing Unit) ou processeur
central, l'unité centrale est le cœur de l'ordinateur.
• C'est elle qui exécute les instructions des
programmes d'application et qui traite les données
contenues dans la mémoire centrale.
• L'unité centrale se compose d'un ensemble
| Chapitre 1 : Introduction aux architectures des SE

d'unités chargées de mémoriser, de transformer et


de traiter les instructions, les adresses et les
données.

1
6
Architecture de CPU
Parties essentielles de l’UCT:
- l’Unité arithmétique et logique (UAL)
- l’Unité de commande ou de contrôle.
L’UAL effectue les opérations
arithmétiques et logiques.
- L’Unité de commande dirige le
| Chapitre 1 : Introduction aux architectures des SE

fonctionnement de toutes les autres


unités:
UAL, Mémoire, Entrées/Sorties, etc. ,
en leur fournissant les signaux de
cadence et de commande.

1
7
Architecture de CPU
Le Bus

• En informatique, le mot bus, désigne l’ensemble des liaisons électrique (nappes, pistes de circuits
imprimés, etc.) utilisées par plusieurs éléments matériels afin de communiquer entre eux. Si cette
liaison relie deux éléments seulement, elle est appelée port matériel (port série, port parallèle, etc.).

• Le transfert d'information sur un port série se fait dans une seule ligne, bit par bit et en série.
| Chapitre 1 : Introduction aux architectures des SE

L'avantage de cette technologie est que le transfert est très sécurisant même si le câble est assez long.
L'inconvénient en est un transfert très lent.

• La transmission de données en parallèle consiste à envoyer des données simultanément sur plusieurs
canaux (fils). Les ports parallèles sur les ordinateurs personnels peuvent être utilisés pour envoyer 8
bits (un octet) simultanément par 8 fils.
1
8
| Chapitre 1 : Introduction aux architectures des SE
Principe de fonctionnement

▪ Le bus d'adressage : sur lequel le processeur envoie les adresses des cellules mémoire et des entrées/sorties
auxquelles il veut accéder.
▪ Le bus de données : est bidirectionnel puisque le processeur l'utilise pour lire et pour écrire en mémoire ou
dans les I/O.
▪ 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
directionnel dans la mesure où il transmet également les signaux de réponse des éléments matériels.
19
Principe de fonctionnement
▪ Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour stocker les résultats
des opérations arithmétiques et logiques. L’accumulateur intervient dans une proportion importante des
instructions.

▪ On distingue les registres suivants :


➢ ACC : Accumulateur.
➢ RTUAL : Registre Tampon de l’UAL, stocke
temporairement l’un des deux opérandes d’une
instructions arithmétiques
| Chapitre 1 : Introduction aux architectures des SE

➢ Reg. d’état : stocke les indicateurs, que nous


étudierons plus tard.
➢ RI : Registre Instruction, contient le code de
l’instruction en cours d’exécution .
➢ IP : Instruction Pointer ou Compteur de Programme,
contient l’adresse de l’emplacement mémoire où se
situe la prochaine instruction à exécuter.

20
Architecture de CPU
Caractéristiques d’un bus

- Le volume d'informations transmises


simultanément. Cette quantité (en bits) correspond
au nombre de lignes physiques servant à envoyer les
données de manière parallèle. Une nappe de 32 fils
| Chapitre 1 : Introduction aux architectures des SE

permet de transmettre 32 bits en parallèle.

- La vitesse ou sa fréquence (en Hz) exprimant le


nombre de paquets de données envoyés ou reçus
par seconde.

2
1
Unité de commande
Description de l’unité de commande

▪ Elle permet de séquencer le


déroulement des instructions.
▪ Elle effectue la recherche en
mémoire de l'instruction et le
décodage de l’instruction codée
| Chapitre 1 : Introduction aux architectures des SE

sous forme binaire. Enfin, elle pilote


l’exécution de l’instruction (envoie
un signal à l'UAL pour en
déclencher l'exécution.)

22
Unité de commande
Les blocs de l’unité de commande

1. Le compteur de programme (PC : Programme Counter)


appelé aussi Compteur Ordinal (CO)
▪ Il est constitué par un registre dont le contenu est initialisé
avec l'adresse de la première instruction du programme.
▪ Il contient toujours l’adresse de la prochaine instruction à
| Chapitre 1 : Introduction aux architectures des SE

exécuter.
▪ Lorsque les instructions sont exécutées séquentiellement,
le CO est augmenté de 1 à chaque cycle de CPU (chaque
impulsion de son horloge); sinon, un branchement ou un
saut est fait en mettant une nouvelle adresse dans le CO;
cette adresse est alors utilisée pour chercher en mémoire
l'instruction qui lui est relative et la mettre dans le RI.
23
Unité de commande
Les blocs de l’unité de commande

2. Le registre d'instruction
▪ Chacune des instructions à exécuter est transféré depuis la
mémoire dans le registre instruction puis est décodée par
le décodeur d’instruction.
▪ le registre d'instruction (RI) : contient l'instruction à
| Chapitre 1 : Introduction aux architectures des SE

exécuter.
▪ Chaque instruction comprend:
➢ Un champ code-opération (ex., le code de l'instruction
sommation (+)) ;
➢ De 0 à 4 champs opérande (i.e., les termes de
l'addition).

24
Unité de commande
Les blocs de l’unité de commande

3. Le décodeur est un dispositif de décodage des instructions


▪ C’est un circuit combinatoire qui permet, à partir du champ
du code opération de l’instruction, de générer les différents
signaux nécessaires à l’entrée du séquenceur.
▪ Le séquenceur décode l'instruction à exécuter. Pendant
| Chapitre 1 : Introduction aux architectures des SE

que les adresses des champs opérande sont utilisées pour


aller chercher les opérandes, le décodeur grâce au champ
code opération indique au séquenceur quelle opération
doit être effectuée.

25
Séquenceur
Le séquenceur de commande est un circuit séquentiel
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 sous l'impulsion de l'horloge
système, il:
| Chapitre 1 : Introduction aux architectures des SE

➢ Génère les signaux de commande (déclenchant et


aussi synchronisant l'exécution des différentes
unités participant à l'exécution d'une instruction)
➢ Met à jour le Compteur ordinal (CO).

26
Séquenceur
Séquenceur câblé
▪ Le Séquenceur câblé est réalisé entièrement à base de la logique combinatoire et de la logique
séquentielle.
▪ Le séquenceur câblé est un circuit séquentiel complexe qui associe à chaque instruction un sous-
circuit capable de commander son déroulement.
| Chapitre 1 : Introduction aux architectures des SE

27
Séquenceur
Séquenceur micro programmé
• Le Séquenceur micro programmé est
réalisé entièrement à base d’une
mémoire ROM de la
microprogrammation.
• le comportement du séquenceur est
décrit par le contenu d'une mémoire.
| Chapitre 1 : Introduction aux architectures des SE

• Ce séquenceur nécessite un compteur


ordinal pour la lecture séquentielle des
micro-commandes à partir de la
mémoire de microprogrammes.
+ simple à réaliser
- Moins rapide
28
Unité Arithmétique et logique
L‘UAL est la partie de l'ordinateur qui effectue la plupart des calculs.
Jeu d'instruction: C’est l’ensemble des opérations et tâches réalisées par l'UAL. Le jeu d’instructions
comporte six groupes :
➢ Transfert de données : chargement, déplacement, stockage, transfert de données entre registre-
registre ou mémoire-registre, …etc.
➢Opérations arithmétiques: les 4 opérations en virgule fixe ou flottante et en simple ou multiple
| Chapitre 1 : Introduction aux architectures des SE

précision.
➢Opérations logiques: NOT, AND, OR, XOR, …etc.
➢Contrôle de séquence: branchement impératif ou conditionnel, boucle, appel de procédure,…etc.
➢Entrées/sorties: Lecture, Ecriture, Affichage, …etc.
➢Manipulations diverses: décalages de bits, conversions de format, incrémentation ou
décrémentation du registre, …etc.

29
Unité Arithmétique et logique
L’unité de traitement regroupe les circuits qui
assurent les traitements nécessaires à
l'exécution des instructions

L’Unité Arithmétique et Logique (UAL) est un


circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage, etc…)
| Chapitre 1 : Introduction aux architectures des SE

ou arithmétique (Addition, soustraction…).


Les accumulateurs sont des registres de travail
qui servent à stocker une opérande au début
d'une opération arithmétique et le résultat à la
fin de l'opération.

30
Unité Arithmétique et logique
4. L’horloge
Une horloge est un circuit qui émet de façon continue une série d'impulsions caractérisées par :
➢ La longueur de l'impulsion
➢ L'intervalle entre deux pulsations successives, appelé temps de cycle de l'horloge
| Chapitre 1 : Introduction aux architectures des SE

Une horloge, le plus souvent calibrée à l’aide des oscillateurs à quartz, émet régulièrement une
suite d’impulsions.
Le temps d’un cycle, ou la période de l’horloge, est une caractéristique des processeurs (ex: 500
Mhz ou 1 Ghz, c’est-à-dire une impulsion tous les milliardièmes de secondes)
31
| Chapitre 1 : Introduction aux architectures des SE

32
Unité Arithmétique et logique
Unité Arithmétique et logique
Les registres de l'UAL sont accessibles au programmeur, contrairement aux registres de l'UCC (unité de
contrôle (de commande)). On dénombre :
➢Registres arithmétiques: destinés pour les opérations arithmétiques (+, -, *, /, complément à1, ...) ou
logiques (NOT, AND, OR, XOR), l'accumulateur(ACC) pour stocker le résultat, ….
➢ Registres d'index: pour stocker l'index d'un tableau de données et ainsi calculer des adresses dans
ce tableau.
➢Registre d'état: chacun de ses bits indique un état, ex. le bit C indique un dépassement de capacité
| Chapitre 1 : Introduction aux architectures des SE

dans l'ACC et le bit Z indique si le résultat de l'opération est égal à 0.


➢Registre pointeur : d'une pile ou de son sommet.
➢Registres généraux : pour diverses opérations, ex., stocker des résultats intermédiaires
➢ Registres spécialisés : destinés pour certaines opérations comme les registres de décalages,
registres des opérations arithmétiques à virgule flottante, …etc.

33
Synchronisation des opérations
Cycle machine (cycle de base [clock cycle]): un cycle
des signaux périodiques générés par l'horloge.
Cycle instruction: cycle de recherche suivi du cycle
d'exécution. Il s'étend sur un ou plusieurs cycles
machines, car une instruction comporte généralement :
1. Temps de chargement de l’instruction (Fetch),
| Chapitre 1 : Introduction aux architectures des SE

2. Temps de décodage de l’instruction,


3. Temps de chargement des opérandes et de calcul
de leur adresse effective,
4. Temps d’exécution proprement dit.
5. Temps d’écriture du résultat (WriteBack).

34
Synchronisation des opérations
L'exécution d'une instruction par l'unité centrale
s'effectue selon les étapes suivantes :

1. Lecture d’instruction (Fetch Instruction)


• l’instruction est lue en mémoire centrale et copiée
dans le registre RI (registre d'instruction) du
processeur
2. Décodage
• L'unité de commande transforme l'instruction en
| Chapitre 1 : Introduction aux architectures des SE

une suite de commandes élémentaires


nécessaires au traitement de l'instruction.
3. Recherche d’opérandes
• Accès aux registres (si mode registre)
• Calcul d’adresse et recherche d’opérandes
mémoire (si mode mémoire)

35
Synchronisation des opérations

4. Exécution

• Calcul dans l’ALU pour les instructions


arithmétiques ou logiques.
• Calcul de l’adresse de branchement pour les
instructions de contrôle.

5. Ecriture résultat
| Chapitre 1 : Introduction aux architectures des SE

• Modification de l’opérande de destination pour


les instructions arithmétiques ou logiques.
• Modification de PC (compteur de programme)
pour les instructions de contrôle.

36
Synchronisation des opérations
Phase 1: Recherche de l'instruction à traiter
1. Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est placée sur le bus
d'adresses par l'unité 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
| Chapitre 1 : Introduction aux architectures des SE

disponible sur le bus des données.

3. L'instruction est stockée dans le


registre instruction du processeur.

37
Synchronisation des opérations
Phase 2 : Décodage de l’instruction et
recherche de l'opérande
1. L'unité de commande transforme
l'instruction en une suite de
commandes élémentaires nécessaires
au traitement de l'instruction.
| Chapitre 1 : Introduction aux architectures des SE

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


provenance de la mémoire, l'unité de
commande récupère sa valeur sur le
bus de données.
3. L’opérande est stockée dans un
registre.

38
Synchronisation des opérations
Phase 3 : Exécution de l'instruction
1. Le microprogramme réalisant l'instruction est exécuté.

2. Les drapeaux sont positionnés (registre d'état).

3. L'unité de commande positionne le PC pour l'instruction suivante.


| Chapitre 1 : Introduction aux architectures des SE

39
Synchronisation des opérations
Temps d’exécution

❖ Chaque instruction nécessite un certain nombre de cycles d’horloges pour s’effectuer.

❖ Le nombre de cycles dépend de la complexité de l’instruction et aussi du mode d’adressage.


| Chapitre 1 : Introduction aux architectures des SE

❖ Il est plus long d’accéder à la mémoire principale qu’à un registre du processeur.

❖ La durée d’un cycle dépend de la fréquence d’horloge du séquenceur.

40
| Chapitre
| Chapitre de traitement
: Introduction
2 : Unité 1centrale aux architectures des SE

41
Synchronisation des opérations
Synchronisation des opérations
Notion d’architecture RISC et CISC
Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :
❖ L’ architecture CISC (Complex Instruction Set Computer) : méthode de codage des instruction d'un
processeur basé sur un nombre maximum d'instructions complexes en langage assembleur.
Dans les premiers microprocesseurs, les concepteurs ajoutaient une multitude d'instructions complexes
sensées faciliter la programmation en assembleur. Néanmoins, cette méthode de programmation nécessite
un câblage interne complexe qui ralentit la vitesse globale du microprocesseur.
| Chapitre 1 : Introduction aux architectures des SE

❖ L’architecture RISC (Reduced Instruction Set Computer) :c’est une structure interne d'un processeur basé
sur un langage assembleur comportant un nombre minimum d'instructions simples. Cela impose donc des
programmes ayant des instructions simples interprétables par le processeur. Cependant vous vous dîtes qu'il
peut exister des instructions qui ne peuvent pas être décrites à partir des instructions simples... En fait ces
instructions sont tellement peu nombreuses qu'il est possible de les câbler directement sur le circuit imprimé
sans alourdir de manière dramatique leur fabrication
42
Synchronisation des opérations
Architecture CISC
❖ Par le passé la conception de machines CISC était la seule envisageable.
❖ En effet, vue que la mémoire travaillait très lentement par rapport au processeur, la soumission au
microprocesseur des instructions complexes exige d’ajouter au jeu d’instructions du microprocesseur une
instruction complexe qui se chargerait de réaliser cette opération.
❖ De plus, le développement des langages de haut niveau posa de nombreux problèmes quant à la
conception de compilateurs. On a donc eu tendance à incorporer au niveau processeur des instructions
| Chapitre 1 : Introduction aux architectures des SE

plus proches de la structure de ces langages.


C’est donc une architecture avec un grand nombre d’instructions
❖ Le microprocesseur doit exécuter des tâches complexes par instruction unique.
❖ Pour une tâche donnée, une machine CISC exécute ainsi un petit nombre d’instructions mais chacune
nécessite un plus grand nombre de cycles d’horloge.
❖ Le code machine de ces instructions varie d’une instruction à l’autre et nécessite donc un décodeur
43 complexe (micro-code)
Synchronisation des opérations
L’architecture RISC
❖ Des études statistiques ont clairement montré que les programmes générés par les compilateurs se
contentaient le plus souvent d'affectations, d'additions et de multiplications par des constantes.
❖ Ainsi, 80% des traitements des langages de Par contre, les instructions complexes doivent être
haut niveau faisaient appel à seulement 20% des réalisées à partir de séquences basées sur les
instructions élémentaires, ce qui nécessite un
instructions du microprocesseur. compilateur très évolué dans le cas de programmation
❖ D’où l’idée de réduire le jeu d’instructions à en langage de haut niveau.
| Chapitre 1 : Introduction aux architectures des SE

celles le plus couramment utilisées et d’en améliorer la vitesse de traitement.


❖ C’est donc une architecture dans laquelle les instructions sont en nombre réduit (chargement,
branchement, appel sous-programme).
❖. Chacune de ces instructions s’exécutent ainsi en un cycle d’horloge.
❖ Bien souvent, ces instructions ne disposent que d’un seul mode d’adressage.
❖ Les accès à la mémoire s’effectue seulement à partir de deux instructions (Load et Store).
44
Synchronisation des opérations
Architecture RISC Architecture CISC

➢Instructions simples ne prenant qu’un seul cycle ➢ instructions complexe prenant plusieurs cycles

➢ Instructions au format fixe ➢Instructions au format variable

➢Décodeur simple (cablé) ➢Décodeur complexe (microcode)

➢Beaucoup de registres ➢Peu de registres


| Chapitre 1 : Introduction aux architectures des SE

➢Peu de modes d’adressage ➢Beaucoup de modes d’adressage

➢Compilateur complexe ➢Compilateur simple

45
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE

46
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE

47
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE

48
Synchronisation des opérations
• Un microprocesseur disposant de trois unités : unité de recherche (R); unité de décodage (D); unité
d'exécution (E).
• On suppose qu'elles remplissent leurs fonctions respectives en un cycle d'horloge. La figure suivante
schématise de déroulement d'une instruction.
| Chapitre 1 : Introduction aux architectures des SE

49
Synchronisation des opérations
▪ A chaque cycle d'horloge deux des trois unités fonctionnelles sont inemployées.
▪ Solution : Accélérer les calculs en demandant à l'unité de recherche d'aller chercher l'instruction suivante
dès le deuxième cycle d'horloge.
▪ Cette instruction est ensuite décodée au cycle suivant, alors que l'unité de recherche continue
également. Nous obtenons alors le diagramme schématisé sur la figure suivante. Un processeur dans
lequel ce traitement anticipé est possible est dit avec pipeline.
| Chapitre 1 : Introduction aux architectures des SE

50
Synchronisation des opérations
Problématique
• L’écart de performance entre le microprocesseur et la mémoire ne
cesse de s’accroître.
• Les composants mémoire bénéficient des mêmes progrès
technologique que les microprocesseurs mais le décodage des adresses
et la lecture/écriture d’une données sont des étapes difficiles à
accélérer.
| Chapitre 1 : Introduction aux architectures des SE

• Le temps de cycle processeur décroît plus vite que le temps d’accès En informatique, la latence est le
mémoire entraînant un goulot d’étranglement (étape de production qui a délai de transmission dans les
communications informatiques.
la plus faible cadence dans un flux de production).
• La mémoire n'est plus en mesure de délivrer des informations aussi Le terme est néanmoins utilisé
pour désigner les délais plus
rapidement que le processeur est capable de les traiter. longs, perceptibles par les
• Il existe donc une latence d’accès entre ces deux organes. utilisateurs.
5
1
Synchronisation des opérations
Mémoire cache
• une des solutions utilisées pour masquer cette latence est de
disposer une mémoire très rapide entre le microprocesseur et
la mémoire. Elle est appelée la mémoire cache.
• On compense ainsi la faible vitesse relative de la mémoire en
permettant au microprocesseur d’acquérir les données à sa
| Chapitre 1 : Introduction aux architectures des SE

vitesse propre.
• On la réalise à partir de cellule SRAM de taille réduite (à cause
du coût).
• Sa capacité mémoire est donc très inférieure à celle de la
mémoire principale et sa fonction est de stocker les
informations les plus récentes ou les plus souvent utilisées par
5 le microprocesseur.
2
Synchronisation des opérations
Mémoire cache
• une des solutions utilisées pour masquer cette latence est de
disposer une mémoire très rapide entre le microprocesseur et
la mémoire. Elle est appelée la mémoire cache.
• On compense ainsi la faible vitesse relative de la mémoire en
permettant au microprocesseur d’acquérir les données à sa
| Chapitre 1 : Introduction aux architectures des SE

vitesse propre.
• On la réalise à partir de cellule SRAM de taille réduite (à cause
du coût).
• Sa capacité mémoire est donc très inférieure à celle de la
mémoire principale et sa fonction est de stocker les
informations les plus récentes ou les plus souvent utilisées par
5 le microprocesseur.
3
Synchronisation des opérations
Mémoire cache
• Les mémoires doivent répondre à deux contraintes
contradictoires :

➢ Taille importante
➢ Temps d’accès court
| Chapitre 1 : Introduction aux architectures des SE

• Principe de base du cache :


➢ Les mots mémoires les plus fréquemment utilisés sont
conservés dans une mémoire rapide (cache) plutôt que
dans une mémoire lente (mémoire centrale).

5
4
Synchronisation des opérations
Mémoire cache

▪ Homme = Unité de calcul


▪ Le bureau = Mémoire cache
▪ La bibliothèque = Mémoire centrale
| Chapitre 1 : Introduction aux architectures des SE

5
5
Synchronisation des opérations
▪ Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa présence et lui
envoie toutes ses requêtes comme s’il agissait de la mémoire principale :

➢ Soit la donnée ou l’instruction requise est


présente dans le cache et elle est alors
envoyée directement au microprocesseur. On
parle de succès de cache.
| Chapitre 1 : Introduction aux architectures des SE

➢ Soit la donnée ou l’instruction n’est pas dans


le cache, et le contrôleur de cache envoie
alors une requête à la mémoire principale.
Une fois l’information récupérée, il la Renvoie
au microprocesseur tout en la stockant dans
le cache. On parle de défaut de cache.
5
6
Synchronisation des opérations

▪ L’unité d’information qui peut être présente ou non


dans le cache est appelée un bloc, qui constitue une
ligne (ou rangée) du cache. Les blocs ont
généralement entre 4 et 128 octets et sont tous de
même taille dans un cache donné.
| Chapitre 1 : Introduction aux architectures des SE

▪ Bien entendu, le cache mémoire n’apporte un gain


de performance que dans le premier cas. Sa
performance est donc entièrement liée à son taux de
succès. Il est courant de rencontrer des taux de
succès moyen de l’ordre de 80 à 90%.

57
Synchronisation des opérations
Remarques
▪ Un cache utilisera une carte pour savoir quels sont les mots de la
mémoire principale dont il possède une copie. Cette carte devra
avoir une structure simple.
▪ Il existe dans le système deux copies de la même information :
l’originale dans la mémoire principale et la copie dans le cache. Si
| Chapitre 1 : Introduction aux architectures des SE

le microprocesseur modifie la donnée présente dans le cache, il


faudra prévoir une mise à jour de la mémoire principale.
▪ Lorsque le cache doit stocker une donnée, il est amené à en
effacer une autre. Il existe donc un contrôleur permettant de
savoir quand les données ont été utilisées pour la dernière fois.
La plus ancienne non utilisée est alors remplacée par la nouvelle.
58
Amélioration de la performance
❖ Même en ajoutant des mémoires caches, on n’aurait pas encore
une performance comparable à celle des processeurs actuels.
❖ En effet, il n’y a qu’une unité d’exécution. Chaque instruction
prend au moins quatre à six cycles:
➢ Chargement de l’instruction
➢ Décodage de l’instruction
| Chapitre 1 : Introduction aux architectures des SE

➢ Exécution de l’instruction
➢ Écriture du résultat.
❖ Et, le cas échéant,
➢ Chargement d’un ou deux opérandes.
Or les processeurs actuels effectuent en moyenne plus d’une
instruction par cycle. Comment y parviennent-ils ?
59
Amélioration de la performance
▪ Examinons différentes façons d’améliorer la performance d’un processeur
1. Augmenter la vitesse de l’horloge.
➢ Ceci implique généralement la réduction de la géométrie sur la puce
pour minimiser les délais de propagation et la consommation de
puissance.
▪ La technologie en est aujourd’hui à ~ 22 nano (nm) Les vitesses
| Chapitre 1 : Introduction aux architectures des SE

d’horloge atteignent présentement ~4 GHz.

2. Exécuter les différentes instructions de façon combinatoire plutôt que


séquentielle.
▪ Viser à ce que la plupart des instructions s’exécutent en 1 cycle d’horloge.

60
Amélioration de la performance
3. Introduire du parallélisme
▪ Pipeline.
▪ Plusieurs unités d’exécution travaillant simultanément : Processeurs superscalaires (plus
d’une instruction par cycle d’horloge).
| Chapitre 1 : Introduction aux architectures des SE

61
Amélioration de la performance
Architecture superscalaire:
• Une autre façon de gagner en performance est d’exécuter plusieurs instructions en même temps.
• L'approche superscalaire consiste à doter le microprocesseur de plusieurs unités de traitement travaillant
en parallèle.
• Les instructions sont alors réparties entre les différentes unités d'exécution.
• Il faut donc pouvoir soutenir un flot important d’instructions et pour cela disposer d’un cache performant.
| Chapitre 1 : Introduction aux architectures des SE

62
| Chapitre 1 : Introduction aux architectures des SE

63
Amélioration de la performance
Amélioration de la performance
Architecture pipeline et superscalaire
Le principe est de d’exécuter les instructions de façon pipelinée dans chacune des unités de traitement
travaillant en parallèle.
| Chapitre 1 : Introduction aux architectures des SE

64
Amélioration de la performance
Architecture pipeline et superscalaire
Pipeline – profondeur
En pratique actuellement : autour de 10 étages
Exemples de profondeur de pipeline (nombre d'étages)
Processeurs Intel
 i3, i5, i7 : 14
 Core 2 Duo et Mobile : 14 et 12
 P4 Prescott : 31
| Chapitre 1 : Introduction aux architectures des SE

 P4 (avant architecture Prescott) : 20


Processeurs de type RISC
 Arm cortex-A9 : 8

65
Amélioration de la performance
▪ Contrôler le flux du programme est une chose très importante, c'est là que votre programme peut
prendre des décisions en fonction de certaines conditions.
▪ L'instruction de base qui transfère le contrôle d'un point vers un autre point du programme est JMP
Dans le langage d'assemblage x86 , l'instruction JMP effectue un saut inconditionnel. Une telle
instruction transfère le flux d' exécution en modifiant le registre de pointeur d'instruction.
▪ Pour prendre le plus possible la bonne branche, on peut mettre en place des méthodes de prédiction
| Chapitre 1 : Introduction aux architectures des SE

de branchement
▪ Deux types de prédiction de branchement :
▪ Statique : la prédiction effectuée sur un branchement donné est pré-calculée à la compilation
▪ Dynamique : la décision prise sur un branchement à une adresse donnée dépend de décisions prises
par le passé dans l'exécution du programme
✓ Nécessaire quand le biais du branchement évolue avec le temps.
66
Amélioration de la performance
Problème si prédiction erronée
On a commencé des calculs inutiles
Vidage du pipeline pour reprendre dans un état correct
Trés couteux en temps
Très pénalisant pour des pipelines profonds
| Chapitre 1 : Introduction aux architectures des SE

67
Amélioration de la performance
4. Minimiser les accès à la mémoire
▪ Mémoire cache pour les données et les instructions sur la puce du processeur lui-même.
▪ Plus grand nombre de registres.

5. Augmenter la bande passante du bus


▪ Les processeurs modernes ont des bus de données de plus en plus larges, ce qui
| Chapitre 1 : Introduction aux architectures des SE

augmente la quantité d’informations (données et instructions) lues lors de chaque accès


à la mémoire.
▪ Par exemple, le bus de données du Pentium est de 64 bits.

68
| Chapitre 1 : Introduction aux architectures des SE

69
Introduction aux
architectures ARM
La très grande famille des ARMs
▪ ARM: Advanced RISC Machine
▪ ARM est une joint venture créée entre Acorn, Apple et VLSI en Novembre 1990
▪ ARM est le leader sur le marché des cœurs de micro pour l’embarqué (principalement 32
bits)
▪ ARM n’est pas un fondeur: il ne fabrique pas (plus) de composants mais fournit, sous
licence, ses cœurs de CPU aux plus grands fondeurs
| Chapitre 1 : Introduction aux architectures des SE

▪ Maison mère basée à Cambridge, UK


▪ Design centers à Austin (Texas), Cambridge, Sophia Antipolis et Trondheim (Norvège / GPU)
▪ Principalement connue pour ses cœurs de micros, ARM est également:
✓un éditeur d’outils de développement (marques Realview et Keil)
✓un concepteur de processeurs graphiques (série MALI)

70
| Chapitre 1 : Introduction aux architectures des SE

71
La très grande famille des ARMs
La très grande famille des ARMs
Historiquement, ARM: Acorn RISC Machine
• Acorn est une société anglaise (basée à Cambridge) qui, à la fin des
années 70 a conçu et fabriqué un processeur 8 bits, le 6502, sur
lequel la société base un ensemble de micro-ordinateurs.
• Le plus emblématique est le « BBC micro », vendu à 1,5 millions
d’exemplaires (85% des ventes d’ordinateurs aux écoles anglaises).
| Chapitre 1 : Introduction aux architectures des SE

• Au milieu des années 80, Acorn se lance dans le développement


d’une nouvelle génération de processeur basée sur la technologie
RISC.
• En avril 1985, après seulement 18 mois de travaux, l’ARM 1 est le
1er (co)processeur RISC à être commercialisé
• En 1987, le premier ordinateur à base de cœur ARM est l’Acorn
Archimedes (ARM 2 puis ARM 3)
72
La très grande famille des ARMs
Quelques processeurs emblématiques à cœur(s) ARM
▪ Famille AT91 d’Atmel (SAM9 / SAM7)
▪ Famille LPC de NXP
▪ Famille OMAP de Texas Instrument
▪ Famille iMX de Freescale
▪ Famille STM32 de ST Microelectronics
▪ Famille Tegra de Nvidia
| Chapitre 1 : Introduction aux architectures des SE

▪ Famille Snapdragon de Qualcomm


▪ Famille AXX de Allwinner
▪ Famille Exynos de Samsung
▪ Famille AX d’Apple
▪ Famille RKXXXX de Rockchip
▪ Famille MTXXXX de Mediatek
73
| Chapitre 1 : Introduction aux architectures des SE

74
La très grande famille des ARMs
La très grande famille des ARMs
Caractéristiques principales
▪ Processeurs 32 bits (et 64 bits pour les plus récents)
à organisation Von Neumann (principalement)
▪ Nombre important de registres (R0 à R16)
▪ Architecture « Load and Store »
▪ Les opérations sur les données ne se font qu’à partir
du contenu des registres
| Chapitre 1 : Introduction aux architectures des SE

▪ Instructions uniformes et de largeur fixe


▪ La plupart des instructions peuvent être exécutées
sous condition
▪ La plupart des cœurs ARM ont 2 sets d’instructions
✓32-bit ARM Instruction Set
✓16/32-bit Thumb Instruction Set
75 ▪ Bon ratio vitesse / consommation
La très grande famille des ARMs
Caractéristiques principales
▪ Un Barrel Shifter est un circuit électronique capable
d'effectuer des opérations de décalage et de rotation
binaires. Ce circuit est très souvent utilisé dans un
processeur. Il peut être intégré dans une unité de
calcul, ou constituer une unité de calcul à part
entière.
| Chapitre 1 : Introduction aux architectures des SE

▪ Il permet de Décaler le motif binaire de 32 bits


contenu dans l’un des registres sources vers la
gauche ou vers la droite d’un nombre précis de
positions avant qu’il n’entre dans l’ALU.

76
La très grande famille des ARMs
Caractéristiques principales

▪ La plupart des instructions ne prennent qu’un cycle

d’horloge

▪ Vitesse allant de 1 MHz à 1,25 GHz

▪ DSP Enhanced Instructions


| Chapitre 1 : Introduction aux architectures des SE

▪ Support de la technologie TrustZone (sécurité)

La technologie Arm TrustZone partitionne un processeur en deux environnements : un monde normal


pour les tâches classiques, et un monde sécurisé pour les données sensibles. Cette séparation
matérielle protège les informations cruciales et les opérations comme le chiffrement, garantissant une
sécurité essentielle pour les appareils mobiles et l'IoT contre les logiciels malveillants.
77

Vous aimerez peut-être aussi