Mise en œuvre du Cortex-A17
OBJECTIFS
|
- Connaissance du Cortex-A9.
-
Plus de 12 bonnes réponses au questionnaire de prérequis Cortex-A.
- Cours associés :
- Programmation VFP, référence cours RC0 - VFP programming
-
Programmation NEON, référence cours RC1 - Programmation NEON-v7
.
- Cours théorique
- Support PDF (en anglais), imprimé en présentiel ; à distance via Teams.
- Assistance du formateur tout au long de la formation.
- Chaque session débute par un point avec les stagiaires.
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
- Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
- Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
- À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.
Plan du cours
- Architecture du Cortex-A17
- Organisation d'un SoC à base de Cortex-A17
- Possibilités de l'interconnect cohérent AMBA4
- Attribut Inner Shareable et Outer Shareable
- I/O MMU
- Ligne de cache de 64 octets, cache L2 intégré
- VFPv4 et SIMDv2
- Mise en évidence des différences entre le Cortex-A9 et le Cortex-A17
- Organisation globale, capacité de dual issue
- Étages fetch / decode / rename / dispatch
- Mode loop
- Clusters d'exécution
- Exécution out-of-order
- Accélérateurs de branchement
- Machine d'états des niveaux de privilège du processeur : user, OS invité, hypervisor
- Détail des différents modes de fonctionnement (Bare-Metal, noyau et tâche utilisateur de l'Hypervisor, Hypervisor avec partition invitée)
- Approche asymétrique, pas de support de la virtualisation des fonctions de l'état Secure
- Instructions SVC, HVC et SMC
- Objectif de l'Hypervisor
- Instructions et registres liés à l'Hypervisor
- Liste des registres à sauvegarder / restaurer pour pouvoir suspendre / reprendre une partition invitée
- Accès aux registres bankés ou à tout mode Non-Secure depuis le mode Hypervisor
- Table des vecteurs de l'Hypervisor
- Utilisation du vecteur n°5 pour dérouter les événements d'une partition invitée
- Appel système vers le mode Hypervisor
- Exceptions asynchrones
- Contrôle des bits Virtual Interrupt et Abort, contrôle du routage des IRQ, FIQ et external abort
- Retour d'exception de l'Hypervisor
- Prise d'exceptions en mode Hypervisor
- Intégration dans un SoC à base de Cortex-A17 et de Cortex-A7
- Mise en évidence des nouvelles fonctions par rapport au Cortex-A9
- Aiguillage des interruptions vers l'OS invité ou l'Hypervisor
- Interface CPU virtuelle
- Fonctionnalité Split EOI
- Désactivation d'une source d'interruption depuis l'interface CPU virtuelle
- Interface front-end accédée par le noyau invité
- Interface back-end accédée par l'Hypervisor
- Nouvelle Intermediate Physical Address, traduction d'adresse en 2 étapes
- Système de traduction mémoire
- Gestion de la mémoire en mode hypervisor
- Identification de machine virtuelle
- Exposition de la MMU aux autres maîtres, IO MMU
- Support de l'émulation, déroutement des load et store et exécution en état Hypervisor
- Permissions et attributs d'accès de la seconde étape
- Nécessité d'introduire le support d'une seconde étape de traduction dans le cadre des Virtualization Extensions
- Nouvelle traduction à 3 niveaux
- Format des descripteurs de table de niveau 1
- Format des descripteurs de table de niveau 2
- Champs Attribute et Permission dans les tables de traduction
- Amélioration de la mise en cache des entrées de traduction par des hints de contiguïté
- ensemble complet des hints d'allocation de cache
- Gestion de l'ASID dans le LPAE
- Nouvelles opérations de maintenance du cache et du TLB
- Organisation du TLB, L1-TLB, L2-TLB
- Processus de correspondance du TLB
- Table walk cohérent
- Détermination de la cause exacte des aborts au travers des registres d'état
- Comportement lorsque la MMU est désactivée
- Interruptions inter-processeurs
- Barrières
- Cluster ID
- Moniteur d'accès exclusif, mise en œuvre de sémaphores booléens
- Moniteur global
- Mise en œuvre d'un spin-lock
- Utilisation des événements
- Indication de l'effet du multi-cœur sur les interfaces de débogage
- Caches Physically Indexed Physically Tagged
- Algorithme de remplacement pseudo LRU
- Accès spéculatifs
- Hit Under Miss, Miss under Miss
- Définition du seuil de write streaming
- Préchargement matériel du cache L1
- États MOESI d'une ligne de cache de données
- Organisation du cache
- Protection ECC optionnelle
- Vidage matériel du cache L2
- Interface maître ACE
- Interface maître ACMP
- Interface esclave ACP
- Au moyen de séquences impliquant un Cortex-A17 multi-cœur et des maîtres externes, compréhension de l'utilisation des requêtes de snoop pour maintenir la cohérence des données entre les caches et la mémoire
- Timers génériques ARM 64 bits pour chaque processeur
- Temps virtuel et temps physique
- Effet de la virtualisation sur ces timers
- Rôle de l'event stream
- Génération de l'event stream par le noyau
- Génération de l'event stream par l'Hypervisor
- Schéma de distribution du timer en code de Gray
- Surveillance des performances de l'Hypervisor
- Surveillance des performances de l'OS invité
- Commutation paresseuse de l'état du PMU par un hyperviseur
- Réduction du nombre de compteurs disponibles pour un OS invité
- Virtualisation complète des registres d'identification du PMU
- AXI-4
- Signalisation de Quality of Service
- Nouvelle signification de Read Allocate et Write Allocate
- Bufferisation des transactions
- Protocole AXI-4 stream
- Types d'octets : data, position, null
- Flux d'octets
- Flux creux
- Fusion, packing et conversion de largeur des données
- AXI-4 lite
- Longueur de burst de 1
- Pas de support des accès exclusifs
- AXI Coherency Extension (ACE)
- Shareability domains
- Modèle de cohérence, états du cache
- Signaux de canaux supplémentaires
- Nouveaux canaux : snoop address, snoop response, snoop data
- Étude, au travers de séquences, du traitement d'une requête de load et d'une requête de store lorsqu'elles sont marquées comme outer shareable
- Utilisation des requêtes ReadUnique, CleanUnique et MakeUnique
- Distributed Virtual Memory (DVM)
- Message de synchronisation DVM
- Choix de la machine d'états de cohérence : MESI ou MOESI selon les possibilités de l'interconnect
- Filtrage du snoop
- Barrières exportées
- DMB / DSB inner shareable, outer shareable ou system
- Domaines d'horloge
- Resets, chronogramme du power-on reset
- Combinaisons de reset valides
- Domaines d'alimentation
- Séquence de power-on reset, séquence de soft reset
- Gestion de l'énergie, rétention d'état du processeur et du L2
- Maintien de la cohérence pendant que les CPU sont en état standby
- Interface avec la Power Management Unit
- Mise hors tension d'un CPU
- Débogage externe pendant la mise hors tension
- Transport des requêtes de snoop AMBA 4
- Connectivité et contrôle du snoop
- Connexion de 2 CPU au travers du CCI, gestion des domaines de cohérence
- Exemple d'un Cortex-A7 double cœur et d'un Cortex-A17 double cœur
- Program Trace Macrocell
- Cross Trigger Interface et Cross Trigger Matrix pour le débogage multi-processeur
- Ajout du Virtual Machine ID dans le critère utilisé pour poser un breakpoint / watchpoint
- Suivi des changements de VMID dans la sortie de trace
Plus d'information
Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.
Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter
Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription
Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.
Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.
Dernière mise à jour du plan de cours : 2 juillet 2026
L'inscription à nos formations est soumise à nos Conditions Générales de Vente
Sur le même sujet :
Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué