0% ont trouvé ce document utile (0 vote)
66 vues5 pages

Cours

Le document traite de l'architecture et des instructions des processeurs Cortex M3/M4, mettant en avant le pipeline à 3 étages, le jeu d'instructions Thumb-2 et l'architecture Harvard. Il aborde également les types de registres, la gestion de la pile, le plan mémoire du STM32F405, ainsi que les concepts d'interruptions et de DMA, soulignant leurs avantages et applications pratiques. Enfin, il compare les méthodes de réception de données via USART avec et sans DMA, illustrant l'efficacité des interruptions et du DMA dans la gestion des transferts de données.

Transféré par

Amine Cheurfa
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)
66 vues5 pages

Cours

Le document traite de l'architecture et des instructions des processeurs Cortex M3/M4, mettant en avant le pipeline à 3 étages, le jeu d'instructions Thumb-2 et l'architecture Harvard. Il aborde également les types de registres, la gestion de la pile, le plan mémoire du STM32F405, ainsi que les concepts d'interruptions et de DMA, soulignant leurs avantages et applications pratiques. Enfin, il compare les méthodes de réception de données via USART avec et sans DMA, illustrant l'efficacité des interruptions et du DMA dans la gestion des transferts de données.

Transféré par

Amine Cheurfa
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

Cours 8 - Architecture et Instructions Cortex M3/M4

1. Architecture Cortex M3/M4

Pipeline à 3 étages :

• Le pipeline est une technique permettant d'exécuter plusieurs instructions simultanément en


les « chevauchant ».

• Les étapes :

1. Fetch (chargement) : L'instruction est récupérée depuis la mémoire d'instructions.

2. Decode (décodage) : Le processeur identifie le type d'opération à réaliser et les


registres impliqués.

3. Execute (exécution) : L'opération est réalisée, et le résultat est éventuellement écrit


dans un registre ou en mémoire.

• Avantages :

o Augmente le débit d'instructions, car plusieurs étapes peuvent être exécutées


simultanément sur différentes instructions.

o Réduit le temps global d'exécution des programmes.

• Problèmes courants :

o Les « bulles de pipeline », où certaines étapes doivent attendre les résultats d'une
instruction précédente.

o Instructions de saut (« branch ») qui peuvent interrompre le flux du pipeline.

Jeu d'instructions Thumb-2 :

• Qu'est-ce que Thumb-2 ?

o Une extension du jeu d'instructions ARM qui combine des instructions de 16 bits
(compactes) et 32 bits (puissantes).

• Avantages de Thumb-2 :

o Réduction de la densité du code machine jusqu'à 26 %.

o Augmentation des performances globales d'environ 25 %.

• Exemple :

o Une addition simple peut utiliser une instruction 16 bits, alors qu'une multiplication
complexe utilise une instruction 32 bits.

• Utilisation typique :

o Thumb-2 est idéal pour les systèmes embarqués où la mémoire est limitée et la
performance critique.

Architecture Harvard :
• Description :

o Séparation des chemins pour les instructions et les données.

o Permet un accès simultané aux deux types d'informations.

• Avantages :

o Améliore les performances, car le processeur n'a pas besoin d'attendre qu'une
instruction soit chargée pour accéder aux données.

2. Les registres

Types de registres :

• Réguliers (également appelés R0-R12) : Utilisés pour les calculs et le stockage temporaire.

• R13 (égal à SP - Stack Pointer) :

o Pointeur de pile.

o Indique la dernière position en mémoire occupée par la pile.

• R14 (égal à LR - Link Register) :

o Sauvegarde l'adresse de retour lors des appels de sous-programmes.

• R15 (égal à PC - Program Counter) :

o Contient l'adresse de la prochaine instruction à exécuter.

• xPSR (Program Status Register) :

o Contient des drapeaux d'état :

▪ : Résultat négatif.

▪ : Résultat égal à zéro.

▪ : Retenue (carry).

▪ : Overflow (dépassement).

▪ : Indique que le mode Thumb est activé.

Gestion de la pile (« Stack ») :

• Structure descendante :

o La pile s'étend vers les adresses mémoire plus basses.

o Exemple d'instruction :

▪ PUSH {R0, R1} : Sauvegarde les registres R0 et R1 dans la pile et décrémente .

▪ POP {R0, R1} : Restaure les valeurs de R0 et R1 depuis la pile et incrémente .

Utilisation du registre LR :
• Lors d'un appel de sous-programme (instruction BL - Branch and Link), le registre sauvegarde
l'adresse de retour.

• Exemple :

o Instruction BL SousProgramme : Sauvegarde l'adresse suivante dans avant d'aller


exécuter le sous-programme.

3. Plan mémoire et gestion des accès

Plan mémoire du STM32F405 :

• Flash :

o Stocke le programme.

o Lecture optimisée via des mots de 128 bits.

• SRAM :

o Utilisée pour les données temporaires.

o Temps d'accès adapté à la fréquence du processeur.

Accélérateur ART (Adaptive Real-Time Accelerator) :

• Permet de lire plusieurs instructions en un seul accès.

• Utilisation d'un cache intégré pour réduire les temps d'attente.

Interface multi-bus :

• Plusieurs bus indépendants connectent le processeur aux périphériques et à la mémoire.

• Avantages :

o Réduction des conflits d'accès.

o Amélioration de la bande passante.

Cours 9 - Interruptions et DMA

1. Interruptions

Principe des interruptions :

• Une interruption est un signal qui suspend temporairement l'exécution du programme


principal pour réaliser une tâche prioritaire.

• Exemple :

o Lors de la réception d'un octet via USART, une interruption est déclenchée pour lire
les données.
Polling vs interruptions :

• Polling :

o Le processeur attend activement qu'un événement se produise (par exemple, un bit


RXNE activé).

o Inconvénient : Consomme du temps processeur, inefficace pour les systèmes temps


réel.

• Interruptions :

o Déclenchées automatiquement par l'événement.

o Avantages :

▪ Libère le processeur pour d'autres tâches.

▪ Permet une meilleure réactivité.

Gestion avec NVIC (Nested Vectored Interrupt Controller) :

• Jusqu'à 240 sources d'interruptions.

• Priorités configurables :

o : Détermine si une interruption peut en interrompre une autre.

o : Résout les conflits entre interruptions de même priorité.

2. DMA (Direct Memory Access)

Fonctionnement :

• Permet le transfert direct des données entre la mémoire et les périphériques, sans
intervention du processeur.

• Exemple : Transfert d'un bloc de données reçu via USART dans un buffer mémoire.

Caractéristiques :

• Le STM32F405 dispose de 2 contrôleurs DMA avec plusieurs canaux.

• Modes de transfert :

o Circulaire : Une fois le buffer rempli, il recommence depuis le début.

o Double buffer : Alternance entre deux buffers pour éviter les pertes de données.

Avantages :

• Réduit la charge processeur en évitant des interruptions fréquentes.

• Augmente la vitesse des transferts pour des applications à haut débit (SPI, ADC).

3. Applications pratiques
Exemple de réception d'un message de 150 octets via USART à 19200 bauds :

• Sans DMA (Polling) :

o Le processeur perd ~76 ms à attendre les données.

• Avec interruptions :

o Chaque octet reçu déclenche une interruption, réduisant la latence à ~17 ms.

• Avec DMA :

o Une seule interruption est déclenchée à la fin du transfert, minimisant la charge


processeur.

Combinaison interruptions + DMA :

• Le DMA gère les transferts.

• Une interruption signale la fin du transfert pour activer le traitement.

Vous aimerez peut-être aussi