Vous êtes sur la page 1sur 10

La république algérienne démocratique et populaire

Ministère de l’enseignement supérieur et de la recherche scientifique


Université M’hamed Bougara Boumerdes
Faculté de technologie

Département de l’ingénierie des systèmes électriques / Spécialité : Électronique


des Systèmes embarqué

M1 / S2 / Module: Architecture des processeurs pour l'embarqué

Etude complète d'un Pipeline à 3 étages (Cortex M4)

__________________________

Présenté par :
Nadjib Bounaim

L’année universitaire : 2023/2024

1|Page
Table des matières :

PRÉSENTATION DU PROCESSEUR CORTEX-M4 DE ARM..............................................3

“ARM CORTEX-M4 ARCHITECTURE - MICROCONTROLLERS PROGRAMMING”........3

PRINCIPAUX AVANTAGES DES MICROCONTRÔLEURS ARM® CORTEX®-M4 :....3

Armv7E-M architecture........................................................................................................................................ 3

Traitement des signaux numériques :................................................................................................................... 4

“PIPELINE EXAMPLE“...............................................................................................................6

INTRODUCTION AU CONCEPT DU PIPELINE:...................................................................6

SON RÔLE DANS L'OPTIMISATION DES PERFORMANCES DES PROCESSEURS :..6


1. La collecte et l’extraction des données brutes :....................................................................................................6
2. L'organisation des données :................................................................................................................................6
3. La transformation des données :..........................................................................................................................6

“PIPELINE STAGES”...................................................................................................................7

ANALYSE DÉTAILLÉE DE CHAQUE ÉTAPE DU PIPELINE:...........................................7

“FETCH EXAMPLE”....................................................................................................................7

“DECODE EXAMPLE”.................................................................................................................8

“EXECUTION EXAMPLE”...........................................................................................................8

“PIPELINE STAGES WITH WRITE BACK”..............................................................................9

LES AVANTAGES DE L'UTILISATION D'UN PIPELINE DANS LE CORTEX-M4 :......9

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.

“ARM Cortex-M4 Architecture - Microcontrollers Programming”

Principaux avantages des microcontrôleurs Arm® Cortex®-M4 :


Armv7E-M architecture
Les microcontrôleurs basés sur le cœur Cortex-M4 bénéficient de l'architecture Armv7E-M.
L'architecture Armv7E-M est construite sur l'architecture Armv7-M du cœur Cortex-M3 et offre des
extensions DSP supplémentaires, telles que :

 Traitement de données multiples à instruction unique (SIMD)


 instructions arithmétiques de saturation
 une large gamme d'instructions MAC pouvant s'exécuter en cycles uniques
 et un FPU en option, qui prend en charge les opérations à virgule flottante simple précision.

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.

Traitement des signaux numériques :


Les microcontrôleurs basés sur le Cortex-M4 s'appuient sur ses accélérateurs matériels DSP avancés
intégrés pour traiter les signaux à l'aide de calculs mathématiques. L'accélérateur matériel DSP peut
traiter n'importe quel signal analogique, tel que le signal de sortie d'un microphone, le retour d'un
capteur intégré dans un système de commande de moteur ou les sorties d'applications de fusion de
capteurs.

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.

Ces étapes sont par exemple chez Intel :

1°) lecture en mémoire,

2°) et 3°) décodage,

4°) exécution,

5°) écriture du résultat en mémoire.

Chaque étape utilise en entrée la sortie de la précédente.

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

Son rôle dans l'optimisation des performances des processeurs :


En chevauchant les étapes ci-dessus d'exécution de différentes instructions, la vitesse d'exécution est
augmentée. Le pipeline permet au cœur d'exécuter une instruction à chaque cycle, ce qui entraîne une
augmentation du débit.

La conception du pipeline pour chaque famille ARM est différente. Son rôle dans l'optimisation des
performances des processeurs modernes est :

1. La collecte et l’extraction des données brutes :


Une entreprise doit pouvoir collecter l’ensemble des données provenant de diverses sources et prenant
diverses formes que ce soient des tableaux Excel, des chemins de fichiers (HDFS) ou encore des fichiers
ou sujets (Kafka)… A ce stade, les données ne sont ni classées ni structurées et encore moins traitées.

2. L'organisation des données :


Une fois la collecte réalisée, les données doivent être organisées. Cette action est aussi nommée
la gouvernance des données. C’est dans cette étape que les données sont classées et organisées entre
elles, pour leur donner du sens en fonction du contexte et des besoins de l’entreprise.
Par la même occasion, la qualité et la sécurité des données y sont contrôlées afin d’obtenir par la suite,
des informations fiables et confidentielles. Pour assurer cette qualité, il faut mettre en place une
surveillance de la qualité des données aussi appelé Data Quality Monitoring.

3. La transformation des données :


Cette étape consiste à traiter les données pour les convertir en information lisible dans des rapports
adéquats. Les données non-essentielles ou tronquées sont ainsi supprimées et les données restantes
suivent un traitement suivant certaines règles essentielles dont :

 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”

Analyse détaillée de chaque étape du pipeline:


 Fetch :

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.

 Instruction arithmétique ou logique (ADD, AND et NOT)


Les deux arguments contenus dans les registres A et B sont fournis à l'unité arithmétique et
logique pour calculer le résultat.
 Instruction de chargement et rangement (LD* et ST*)
Le calcul de l'adresse est effectué à partir de l'adresse provenant du registre A et de l'offset
contenu dans le registre B.
 Instruction de branchement (BR*, JMP, JSR, JSRR et TRAP)
Pour les instructions contenant un offset, l'addition avec le contenu du PC est effectuée à cette
étape. Pour les instructions utilisant un registre, le contenu du registre est juste transmis.

“Execution example”

“Pipeline stages with write back”

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.

Parallélisme 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.

Des durées de test plus courtes :

 Une diminution de la complexité et une quantité réduite de code à examiner conduisent


directement à moins de tests de fonctionnalités tout au long du processus. La rigueur de cette
procédure a considérablement diminué (même si toutes les mesures de sécurité doivent être
respectées). Les nouvelles possibilités introduites par la communauté des développeurs sont
beaucoup plus facilement intégrées dans l'environnement opérationnel que lorsque des
changements massifs sont entièrement testés. Le fait que les tests ne sont pas un raccourci, mais
plutôt une réduction du nombre de changements et de similitudes entre les changements dans
la mise en œuvre.

Facilitation de l'optimisation du code:

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:

" Pipeline" Consulté le [none]. URL:

https://www.irif.fr/~carton/Enseignement/Architecture/Cours/Pipeline/

Auteur(s) inconnu(s). " [Date inconnue]. URL:

https://www.st.com/content/st_com/en/arm-32-bit-microcontrollers/arm-cortex-m4.html

Nicola Rieke Consulté le [2018]. URL:

https://www.sciencedirect.com/topics/engineering/stage-pipeline

wikipidia Consulté le [2023]. URL:

https://fr.wikipedia.org/wiki/ARM_Cortex-M

Auteur(s) inconnu(s).. Consulté le [2014-05-05]. URL:

https://www.mouser.fr/new/stmicroelectronics/stm-stm32f302x6-stm32f302x8/

10 | P a g e

Vous aimerez peut-être aussi