Architecture Logicielle et Matérielle des Ordinateurs v2 (ALMO2)


  • This module will open in september, 2020.

Module purposes

  • The purpose of this module is to explain in detail how it is possible to have several programs running independently on a multicore computer.
  • The module introduces progressively:
    • the main hardware components;
    • and the corresponding operating system services.
  • The studied hardware architecture is simulated by using a cycle-and-bit-accurate model, able to execute the software from the true beginning (full system emulation).
  • There is one practical work per week:
    • The really first code is a simple assembler program which print "hello Word!" on the terminal without any operating system or even any function libraries.
    • The last one is composed of two programs running independently on the same processeur by using virtual memory.
  • The module must answer the following questions (this is non-exhaustive list):
    • How does a machine start?
    • What is the role of an operating system and what services does it offer?
    • What is a memory cache?
    • What is a device controller, and how to use it?
    • What is a device driver?
    • How to run multiple programs on a single processor?
    • How can multiple processors share the same address space?
    • Why should each program have its own address space and how?
  • and finally:
    • When you hit a key on the keyboard, how does the character appear on the screen?


  • A good knowledge of the C language is necessary since the module proposes to write an operating system from the beginning.
  • The knowledge of the MIPS32 assembler is also important, but the principles of this language and the conventions of use for writing functions are recalled the first week.

Course plan

  1. Assembler programming on a minimal machine
    The purpose of this first session is to present a minimal architecture and how write a first program in assembly language.


Last modified 3 months ago Last modified on Jun 28, 2019, 7:01:59 AM