Indice degli argomenti

  • Synopsis

    The objective of this course is to understand
    - the design and working principles of a modern computer (processor, memory hierarchy, peripherals)
    - the lower levels of the software stack (assembly language, application binary interface, interruptions, input/output drivers, compiler).

    Expected skills
    - understanding the execution of a program or operating system on a machine
    - low-level programming of embedded systems
    - optimizing the execution of software for a given architecture (exploiting caches, instruction-level parallelism, etc)
    - exploiting technical documentation in these fields

    In brief

    • Code: IF-3-AO
    • ECTS: 2.0
    • Lectures Hours: 9hrs (6*1.5hrs)
    • Lab Hours: 16hrs (2*2hrs + 3*4hrs)
    • Personal Work: 25hrs
    • Language: spoken French, lecture slides in English, labworks in French.
    • ECTS description: FR/EN
    • Contact person: Lionel Morel (lionel.morel@insa-lyon.fr)

  • Course Info

    Planning

    This image depicts the planning for the 1st semester in Computer Architecture courses.

    Personnel

    Lecturer: Lionel Morel

    Instructors: Guillaume Beslon, Lucas Chaloyard, Orégane Desrentes, Florent de Dinechin, Romain Gallé, Guillaume Salagnac, Lionel Morel.

    You can contact us through our firstname.lastname@insa-lyon.fr email.

    Please add [3IF-AO] to your subject to ease communication.


  • Lecture Notes

    Here are the lecture notes. Dates are approximate as slides have been organized to cover topics and not specific 1h30 slots on the agenda.

    Chapter 0 - (26 nov 2024) - Introduction - Course presentation

    Chapter 1 - (26 nov / 4 dec 2024) - The Von Neumann Model - A Programmer's Perspective

    Chapter 2 - (9/17 dec 2024) - The Von Neumann Model - Internals

    Chapter 3 - (17 dec 2024 / 13 jan 2025) - Inputs/Outputs

    Chapter 4 - (13/21 jan 2025) - Functions

  • Labs

    Lab #1 to #3 - Micro-machine - in french
      • Le sujet (pour les séances des semaines 47, 49 et 50). Mis à jour le 04/12/2024.
      • les fichiers Digital : mm-minimale.dig, Reg.dig, substract.dig, ALU.dig, Reg2.dig
      • Le fichier programme exemple prog1.hex
      • Un script python pour assembler (c'est à dire passer de la syntaxe "assembleur" à de l'hexa-décimal représentant l'encodage binaire des instructions)
        • NB : pour fonctionner ce script python a besoin de deux packages python qui ne sont pas forcément installés sur votre machine. Pour résoudre ça tapez (dans un shell) :
          • pip3 install lark
          • pip3 install bitarray
      • Un programme rust pour assembler les programmes micro-machine est également disponible ici : https://github.com/GartoxFR/miniasm
      • des exemples de programmes assembleur, ici, ici et encore .
    • Spécifiquement pour la partie sur les interruptions :
    Lab #4 and #5 - msp430 - in french too :
  • QCM 2024-25

  • Archives

    Exams from previous sessions