Topic outline

  • COURS

    gpp-2017

    • Ressources Multimédia :

    http://www.canal-u.tv

    • 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 première 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 seconde 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

    • Séquencement : 

      • Cours  présentiel - 21/01 - 2h : Introduction, Fonctionnement d'un CPU
        • A la maison :  vidéos "carte mère", "outils de compilation" et "langage d'assemblage"
        • Devoir à la maison (à rendre avant le 04/02) : Compilation et édition des liens
      • Cours présentiel - 28/01 - 2h : "Outils de compilation" et "langage d'assemblage", introduction à l'assembleur x86/x64, visite d'un système GNU\Linux
        • A la maison :  vidéo "CPU", "mémoire" et en facultatif "Pipeline famille Sandy Bridge"
      • Début des TP - 04/02
      • Cours présentiel - 11/02 - 2h : Fonctionnement d'un cache processeur et de la MMU
      • Partiel - 13/02 - 30mn : Introduction, carte mère, chaîne de compilation, langage d'assemblage et CPU
      • Examen - 18/03 - 1h30 : 
        • Savoirs et culture de l'ingénieur (7pts) 
        • Exercice d'analyse d'un programme assembleur x86/x64 (13pts)

  • This topic

    QCM - Contrôle Continu

    partiel

    Épreuve QCM (Questions à Choix Multiples) de 30 questions pour une durée de 30mn :

    • Thèmes : Carte mère, Compilation et édition des liens (illustration gcc GNU\Linux), langage d'assemblage (illustration gcc GNU\Linux) et architecture CPU (illustration x86)
    • Mode : QCM avec une tentative unique par question
    • Notation : Bonne réponse (100%)  et mauvaise réponse (entre -5% et -33,3% en fonction de la gravité de l'erreur )
    • Date : jeudi 28/02 de 13h15 (heure d'arrivée en salle) à14h15
    • Début de l'épreuve sous moodle à 13h25
    • Salles :  
    1. E105 (groupe TP1) - Surveillant : Lefebvre P.
    2. E201 (groupe TP2) - Surveillant : Lacharme P.
    3. E204 (groupe TP3) - Surveillant : Fourey S.
    4. E205 (groupe TP4) - Surveillant : Denoul M.
    5. E206 (groupe TP5) - Surveillant : descoubes h.

  • TRAVAUX PRATIQUES

    Durée : 10h - 5x2h

    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)

    • Dépôt - groupe 2

      hugo descoubes
    • Dépôt - groupe 4

      Philippe Lefebvre

    • Dépôt - groupe 5

      hugo descoubes