Topic outline

  • ARCHITECTURE DES ORDINATEURS


      1. Cours

        gpp-2017


            Informations utiles

            Enseignant référent :                              dimitri.boudier@ensicaen.fr

            Salon BigBlueButton (cours et TP) :       https://bbb.ensicaen.fr/b/bou-udt-72x


            Public visé

            1ère année (BAC+3) cycle Ingénieur en spécialité Electronique et Physique Appliquée


                  Objectifs (aucun développement, analyse seule)

                  Aboutir à une meilleure représentation de la machine numérique. Comprendre les fonctions et rôles de chaque entité du système d'information (matériel/processeur comme logiciel/systèmes d'exploitation). Savoir analyser un programme assembleur, notamment en technologie x86/x64. Comprendre le processus de compilation et d'édition des liens. 


                  Présentation

                  Cet enseignement, intitulé "Architecture des ordinateurs" a été découpé et pensé en deux approches distinctes :

                  1. Une approche conceptuelle, dans laquelle nous nous intéresserons aux architectures génériques des ordinateurs, notamment aux grandes familles de processeurs numériques (GPP, AP, MCU, DSP, etc) et plus spécifiquement à celles s’articulant autour de CPU. Nous nous intéresserons également à l'architecture globale des outils de production et du système d'exploitation. Mots clés : CPU, mémoire, bus, périphériques, cache, pipeline, registres, segmentation logique, pagination, allocations mémoire (automatique, statique et dynamique), pile, tas, etc

                  2. Une approche technologique, sur des solutions actuelles du marché (ordinateur). Pour les aspects matériels, notre choix s'est naturellement tourné vers les architectures Intel, leader actuel et historique des architectures compatibles x86/x64 (desktop, laptop, etc). Pour les aspects logiciels, nous développerons sur système GNU\Linux. Linux étant le système d'exploitation leader du marché à notre époque en terme de volumes (systèmes embarqués, mobiles, multimédia, serveurs, stations de calcul, ordinateurs personnels, etc). Mots clés : 8086, 80x86, IA-32, Intel 64, x86, x64, extensions vectorielles MMX/SSE/AVX/AEX, exceptions matérielles, GNU\linux, ABI GNU (gcc, as, ld, ar, strip, objdump, readelf, etc), UFS, signaux UNIX, etc

                • VIDÉOS SUPPORTS DE COURS

                • VIDÉOS SUPPORTS DE TP





                  • TRAVAUX PRATIQUES

                    Durée : 10 h (5 x 2 h)

                    Objectifs : L'objectif de cette trame TP, basée sur de l'analyse de code, est de découvrir les principaux mécanismes de gestion mémoire (allocations statique, automatique et dynamique) et de gestion des exceptions réalisés conjointement par l'architecture matérielle, le système d'exploitation, les outils de développement à la compilation et potentiellement l'applicatif. Cet enseignement apporte des compétences d'analyse systémique de base (hacking) en amenant l'élève ingénieur aux portes de l'expertise, notamment en langage C, et se trouve être complémentaire à l'enseignement "Informatique et langage C". Rappelons que le langage C reste majoritairement utilisé à notre époque dans les couches basses des systèmes (systèmes embarqués, systèmes d'exploitation, exécutifs temps réel, etc).

                    Plan :

                    1. Allocations automatiques et gestion de la pile
                    2. Allocations statiques et fichier ELF
                    3. Allocations dynamiques et gestion du tas
                    4. Exceptions matérielles et signaux UNIX
                    5. Gestion de l'unité de pagination (Paged MMU)