Accueil - Connexion

Architecture et Technologie des Ordinateurs

1I1AD2 Architecture et Technologie des Ordinateurs Informatique S5
Cours : 5 h TD : 0 h TP : 10 h Projet : 0 h Total : 15 h
Responsable : Hugo Descoubes
Pré-requis
Bases en langages procéduraux et langages compilés (idéalement langage C)
Bases en outils de développement logiciel (environnement de programmation, shell UNIX, makefile, chaîne de compilation, script bash)
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 le travail des couches basses d'une chaîne de compilation
- Interpréter des fichiers assembleur
- Optimiser des développements sur langages de plus haut niveau
Bibliographie
- Architecture de l'ordinateur - Andrew Tanenbaun
- Architecture des ordinateurs - jean-jacques Scharz
- Architecture et technologie des ordinateurs - yves ligier, paolo zanella et emmanuel lazard
- Systèmes d'exploitation - Andrew Tanenbaun
- Site officiel Intel pour le développement - software.intel.com

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