RESPONSABLE : Pascal SICARD

INTERVENANTS :  O. Richard,  P. Sicard     


INGÉNIEUR POLYTECH'GRENOBLE
  Réseaux Informatique et Communication Mutimédia
  3ème Année


TITRE DU COURS : Architectures Logicielles et Matérielles

 . VOLUME :  10 Cours magistraux de 1h30, 3*8 Travaux dirigés de 2h00, mise en pratique sur machines des TDs en libre service

 . PRÉREQUIS: notions élémentaires d'algorithmique


OBJECTIFS

    Le cours présente les notions indispensables à la compréhension du fonctionnement d'un ordinateur.  
Cet enseignement permet aux futurs ingénieurs informaticiens d'avoir un idée précise de l'architecture d'un ordinateur et de l'exécution des programmes à l'aide de ses composants matériels.
Ces notions permettent d'aborder sereinement des domaines tels que la programmation en langage évolué, la compilation de ces programmes, les systèmes d'exploitation d'un ordinateur, la conception de circuits.

La première partie de cette enseignement présente d'une part les composants électroniques élémentaires permettant de comprendre l'architecture des processeurs et d'autre part la programmation en langage machine et d'assemblage.
Il permet ainsi de comprendre précisément l'exécution d'instructions machines par le processeur.

Une deuxième partie (voir ALM2) aborde ensuite les périphériques, les mécanismes d'entrée/sortie du processeur, les interruptions extérieures des programmes et les notions élémentaires à la base des systèmes d'exploitations.

    Les notions abordés sont prises d'un point de vue de concepteur.
En travaux dirigés et pratiques les étudiants :
    - décrivent des circuits à l'aide d'un langage spécifique et vérifient leur fonctionnement par des simulations,
    - écrivent des programme en langage d'assemblage et comprennent leur exécution,
    - comprennent des programmes en langage d'assemblage issu d'un compilateur.

CONTENU DU COURS :

Voici les notions matérielles et logicielles abordées, elles sont étudiées en parallèle tout au long du semestre.
 
 Notions matérielles :
       - Présentation de l'architecture générale d'un ordinateur: composants fonctionnels (processeur, mémoire, périphériques)
    - Algèbre de Boole et fonctions booléennes. Minimisation des fonctions booléennes (tableaux de Karnaugh)
    - Calculs de fonctions booléennes à l'aide de composants électronique: les circuits combinatoires
    - Circuits de calculs arithmétiques    
    - Composant élémentaire de mémorisation (bascule, registre, mémoires)
    - Circuits séquentiels  et synthèse d'automates finis
    - Principe d'architectures de machine algorithmique:
        - Architecture flot de donnée
        - Architecture basée sur une partie opérative et une partie de contrôle
    - Architecture d'un processeur (registres, bus, unité arithmétique et

 Notions logicielles :
    - Représentation des nombres et arithmétique entière (base 2, codage en complément à  2)

        - Notions d'instructions machine
    - Langage d'assemblage et traduction en langage machine
    - Gestion des variables (en mémoire, dans des registres…)
    - Gestion de structures de donnée complexes (tableaux, structure…)
    - Traduction des langages à structure de blocs en langage d'assemblage
        - Les instructions conditionnelles
        - Les appels de procédures et fonctions (gestion des paramètres, notions de pile, de contexte…)

 D'un point de vue pratique:
    - Etude et programmation en langage d'assemblage du processeur ARM. Etude de la compilation d'un programme C en ARM.
    - Description de circuits à l'aide du langage synchrone de systèmes réactifs Lustre.

BIBLIOGRAPHIE

 1 LIVRES ET OUVRAGES

  - Architectures Logicielles et Matérielles
        Cours, études de cas et exercices corrigés
        P. Amblard, JC. Fernandez, F. Lagnier, F. Maraninchi, P. Sicard, P. Waille
        Editions DUNOD 2000
 

 2 DOCUMENTS ÉLECTRONIQUES

  - Notes de cours, exercices de TD et annales d'examens sont disponibles sur le site du cours

    http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=88