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 |
© 2024 - ENSICAEN ( Mentions Légales - Crédits )