Accueil - Contact - Connexion

Architectures des Processeurs

1IAC3 Architectures des Processeurs Informatique - Apprentissage S1
Cours : 15 h TD : 0 h TP : 20 h Projet : 0 h Total : 35 h
Responsable : Hugo Descoubes
Pré-requis
Bases en langages procéduraux, langages compilés et langage C
Bases en outils de développement logiciel (environnement de programmation, shell Unix/Linux, makefile, chaîne de compilation)
Bases en électronique et systèmes numériques (systèmes combinatoires et séquentiels, algèbre booléenne, numération, technologies numériques)
Objectifs de l'enseignement
Découvrir l'architecture de base de tout processeur numérique travaillant autour de CPU (Central Processing Unit). Introduction à la famille des processeurs généralistes ou GPP's (General Purpose processor) et aux mécanismes de gestion mémoire associés.
Programme détaillé
Cet enseignement doit apporter les compétences nécessaires à une bonne compréhension des architectures numériques dans le domaine des ordinateurs personnels et architectures compatibles :
- Introduction aux architectures et processeurs numériques
- Découverte de la famille des GPP's et illustration sur famille Intel sous système GNU/Linux
- Couches basses d'une chaîne de compilation C (assembleur et éditeur de liens) et ABI
- fichiers ELF
- Assembleur et architecture CPU familles x86/x64 et compatibles (8086 et pipeline hardware d'un processeur superscalaire : famille Sandy bridge)
- Gestion mémoire sur familles x86/x64 (segmentation, pagination, MMU ou Memory Managment Unit, cache ...)
- Gestion des exceptions matérielles et signaux UNIX
Applications (TD ou TP)
Trame de Travaux Pratiques réalisée sous système GNU/Linux et sur architecture Intel. Cette trame a pour objectif de faire notamment découvrir les différents mécanismes de gestion mémoire implémentés par le processeur conjointement avec la chaîne de compilation :
- Assembleur x86/x64 Intel (syntaxe AT&T)
- Allocations statiques et fichiers ELF
- Allocations Automatiques et gestion de la pile
- Allocations dynamiques et gestion du tas
- Exceptions matérielles et signaux UNIX
- Outils d'analyse, de profilage et benchmarking
- Sensibilisation à la vectorisation de code
- Gestion de la MMU (analyse de l'usage optimal des TLB's)
Compétences acquises
- Maîtriser les méthodologies de gestion et suivi de projet durant des phases de développement logiciel.
- Segmenter et maîtriser les phases de développement d'un projet en partant de spécifications imposée
- Maîtriser l’écosystème matériel et logiciel lors de développements sur processeur numérique
- Interpréter voir développer des programmes en assembleur
- Maîtriser les techniques de communication standards internes et externes à un processeur numérique pour l'embarqué
Bibliographie
- PIC Microcontroller - muhammad Ali Mazidi
- Fundamentals of Microcontrollers and Applications in Embedded Systems with PIC - Rames Gaonkar
- 50 PIC microcontrollers projects - Bert Van Dam
- Microcontrôleurs PIC18 - Christian Tavernier
- Applications de microcontrôleurs PIC - Christian Tavernier
- Designing Embedded Systems with PIC Microcontrollers - Tim Wilshurst
- Forums officiels Microchip : www.microchip.com

© 2024 - ENSICAEN ( Mentions Légales - Crédits )