Académique Documents
Professionnel Documents
Culture Documents
__________________________
Présenté par :
Nadjib Bounaim
1|Page
Table des matières :
Armv7E-M architecture........................................................................................................................................ 3
“PIPELINE EXAMPLE“...............................................................................................................6
“PIPELINE STAGES”...................................................................................................................7
“FETCH EXAMPLE”....................................................................................................................7
“DECODE EXAMPLE”.................................................................................................................8
“EXECUTION EXAMPLE”...........................................................................................................8
CONCLUSION :...........................................................................................................................10
BIBLIOGRAPHIES:....................................................................................................................10
2|Page
Présentation du processeur Cortex-M4 de ARM :
ARM Cortex-M est une famille de processeurs RISC 32-bits basée sur l'architecture ARM, qui sert à la fois
de microprocesseur et de microcontrôleur pour les appareils embarqués. Elle intègre en premier lieu le
jeu d'instructions ARMv6-M (Cortex-M0, Cortex-M0+ et Cortex-M1), puis le ARMv7-M (Cortex-M3,
Cortex-M4 et Cortex-M7)1. Cette famille a été développée par ARM Ltd parallèlement à la famille Cortex-
A (ARMv7-A) destinée au marché des smartphones et tablettes tactiles et à la famille Cortex-R (ARMv7-
R) destinée au temps réel.
Cette architecture est parfaitement adaptée aux applications de contrôle en temps réel nécessitant des
opérations hautement déterministes avec une exécution à faible nombre de cycles, une latence
d'interruption minimale, un pipeline court et la possibilité d'effectuer des opérations sans cache.
3|Page
Cette architecture est parfaitement adaptée aux applications de contrôle en temps réel nécessitant des
opérations hautement déterministes avec une exécution à faible nombre de cycles, une latence
d'interruption minimale, un pipeline court et la possibilité d'effectuer des opérations sans cache.
Grâce au traitement numérique du signal, moins de cycles sont nécessaires pour exécuter les
algorithmes de boucle de contrôle, contribuant ainsi aux performances et à l'efficacité énergétique de
l'application. En effet, lorsque les algorithmes sont traités à l'aide des formats de données Q1.15 ou
Float32, les MCU fonctionnant sur un Cortex-M4 offrent des performances bien supérieures à celles des
MCU basés sur le Cortex-M3. Pour le format Q1.15, l'amélioration est principalement due à la
disponibilité des instructions SIMD, permettant au Cortex-M4 de diviser par deux environ le nombre de
cycles nécessaires. Pour le format de données Float32, l'accélérateur d'unité à virgule flottante
augmente les performances des MCU Cortex-M4 d'un ordre de grandeur, par rapport à celles des MCU
Cortex-M3.
Les MCU Cortex-M4 avec DSP sont parfois commercialisés par d'autres fabricants de MCU sous le nom
de MCU Cortex-M4F. Tous les MCU STM32 Cortex-M4 intègrent l'option DSP du cœur Cortex-M4 et sont
tous nommés MCU Cortex-M4.
• Architecture Armv7E-M
• Interface de bus 3x interfaces AMBA AHB-lite
(architecture de bus Harvard) Interface AMBA ATB
pour les composants de débogage CoreSight
• Prise en charge des instructions du sous-ensemble
Thumb/Thumb-2
• Pipeline en 3 étapes
• Extensions DSP : MAC 16/32 bits à cycle unique,
MAC double 16 bits à cycle unique, arithmétique
SIMD 8/16 bits, division matérielle (2-12 cycles)
• Unité à virgule flottante (FPU) simple précision en
option, conforme à la norme IEEE 754
• 8 régions MPU en option avec sous-régions et
région d'arrière-plan
• Instructions de traitement de champ binaire
intégrées et bandes binaires au niveau du bus
• Interruption non masquable et 1 à 240
interruptions physiques avec 8 à 256 niveaux de
priorité
• Contrôleur d'interruption de réveil
4|Page
• Instructions WFI et WFE intégrées et capacité de veille à la sortie, signaux de veille et de veille profonde,
mode de rétention en option avec kit de gestion de l'alimentation du bras
• Ports JTAG et Serial Wire Debug en option. Jusqu'à 8 points d'arrêt et 4 points de surveillance
• Trace d'instructions facultatives (ETM), trace de données (DWT) et trace d'instrumentation (ITM)
Un système embarqué intègre à la fois des logiciels et des matériels conçus de manière spécifique pour
assurer des fonctionnalités souvent critiques. Les systèmes universels exécutent plusieurs tâches, tandis
que les systèmes embarqués sont étudiés pour effectuer des tâches précises. Pour des raisons de fiabilité
et de rentabilité, ils doivent respecter des contraintes de temps réel. D'autres. Ayant peu de contraintes
au niveau performances permettent de simplifier le système et de réduire les couts de fabrication. Dans
les conceptions embarquées, la gestion de l'énergie et l'efficacité énergétique vont de pair et sont
essentielles pour garantir un produit final viable et respectueux de l'environnement. Ceci est vrai pour
une vaste gamme de produits embarqués aujourd'hui, dans des secteurs verticaux allant des applications
industrielles aux appareils médicaux et autres cas d'utilisation critiques.
Les facteurs qui contribuent à une efficacité énergétique optimale sont complexes, et c'est un domaine
dans lequel les équipementiers ont souvent du mal à développer des solutions qui se vendent et qui
répondent aux exigences de leurs clients tout en faisant leur part pour l'environnement. Il est essentiel
de connaître les pièges et de choisir une plate-forme de développement conçue pour aider les
développeurs à concevoir des produits économes en énergie Procédé qui permet de rendre
indépendantes les différentes étapes de traitement d'une instruction par le processeur.
4°) exécution,
En matière de données, il est courant d'entendre parler de pipeline de données. Cela peut être comparé
à une usine. Dans une usine de fabrication de biscuits, les ingrédients de base sont la farine, le beurre et
le sucre au début de la chaîne. Le biscuit, quant à lui, sera expédié à l'autre bout de la chaîne. En fin de
compte, le milieu de la chaîne est le point de départ du processus de transformation (c'est-à-dire un
ensemble d'opérations ou de processus exécutés dans un ordre spécifique).
“Pipeline example“
5|Page
Introduction au concept du pipeline:
Un Pipelining est le mécanisme utilisé par les processeurs RISC (Reduced instruction set Computer) pour
exécuter des instructions, en accélérant l'exécution en récupérant l'instruction, tandis que d'autres
instructions sont décodées et exécutées simultanément. Ce qui permet à son tour au système de
mémoire et au processeur de fonctionner en continu. Les appareils ARM ont besoin d'un pipeline en
raison de RISC car il met l'accent sur la complexité du compilateur. Chaque étape équivaut à 1 cycle, soit
n étapes = n cycles
La conception du pipeline pour chaque famille ARM est différente. Son rôle dans l'optimisation des
performances des processeurs modernes est :
La normalisation : définir les données importantes et choisir la manière dont celles-ci seront
reportées et ensuite stockées ;
Le dé doublonnage : les données doubles sont signalées et les doublons supprimés ;
La vérification : la vérification est faite de façon automatisée et vise à comparer les données
entres elles, afin d’éliminer les données inutilisables et reporter des anomalies dans les
systèmes ;
Le classement : le classement permet ainsi de regrouper toutes les données en catégories et
de traiter chaque catégorie de la même manière, afin de gagner du temps et d’obtenir des
données traitables et de qualité.
.
6|Page
“Pipeline stages”
La prochaine instruction à exécuter est chargée à partir de la case mémoire pointée par le compteur
de programme PC dans le registre d'instruction IR. Ensuite le compteur de programme est
incrémenté pour pointer sur l'instruction suivante.
“Fetch example”
Le décodage :
La prochaine instruction à exécuter est chargé à partir de la case mémoire pointée par le compteur
de programme PC dans le registre d'instruction IR. Ensuite le compteur de programme est
incrémenté pour pointer sur l'instruction suivante. Exécuter traite l'instruction et réécrit le résultat
dans le registre.
“Decode example”
Exécution :
7|Page
Cette étape utilise l'unité arithmétique et logique pour combiner les arguments. L'opération précise
réalisée par cette étape dépend du type de l'instruction.
“Execution example”
8|Page
Les avantages de l'utilisation d'un pipeline dans le Cortex-M4 :
L'utilisation d'un pipeline dans le Cortex-M4 peut offrir plusieurs avantages pour améliorer l'efficacité du
traitement des instructions.
Le pipeline permet d’exécution simultanée de plusieurs instructions. Il est n´nécessaire que ces
instructions soient logiquement indépendantes, faute de quoi l’exécution s´séquentielle sera
obligatoire. Donc l’amélioration dualisation des ressource va être accélère par rapport.
Augmentation du débit :
Le débit d'instructions du pipeline est augmenté par le processeur lorsqu'il traite plusieurs
instructions à la fois. Un plus grand nombre d'instructions peuvent être exécutées dans un laps
de temps plus court, ce qui améliore les performances globales du système.
En entrant le manœuvre du pipeline, les développeurs peuvent perfectionner à elles arrêt parmi extraire
le rectifié démarré de cette architecture. Cela peut saisir le redéploiement des instructions parmi adoucir
les dépendances et maximiser le parallélisme, pourquoi que l`habitude de techniques pareilles que la
pré-cargaison des conditions parmi adoucir le retard.
Conclusion :
En résumé, l`emploi de pipelines sur Cortex-M4 peut exposer l'intérêt du paiement des instructions en
galon démarré du parallélisme chez répartir les goulots d'destruction et empirer le négoce des
instructions. Cela améliore les performances et utilise le bien du microprocesseur principalement
efficacement. Ceci est surtout incalculable chez les applications embarquées qui nécessitent un paiement
en cycle réel.
9|Page
Bibliographies:
https://www.irif.fr/~carton/Enseignement/Architecture/Cours/Pipeline/
https://www.st.com/content/st_com/en/arm-32-bit-microcontrollers/arm-cortex-m4.html
https://www.sciencedirect.com/topics/engineering/stage-pipeline
https://fr.wikipedia.org/wiki/ARM_Cortex-M
https://www.mouser.fr/new/stmicroelectronics/stm-stm32f302x6-stm32f302x8/
10 | P a g e