Ensimag Rubrique Formation 2022

- 3MMILM

  • Number of hours

    • Lectures -
    • Projects -
    • Tutorials -
    • Internship -
    • Laboratory works 48.0
    • Written tests -

    ECTS

    ECTS 4.0

Goal(s)

The goal is to understand a processor from a user point of view, to know how to program at a low level in assembly language, including interrupts and an embryo of an operating system (time sharing).

Responsible(s)

Lionel RIEG

Content(s)

  • Architectural elements (memory, register, processor), interpretation (signed and unsigned integers, instructions), RISCV instruction set, instruction coding
  • Elementary programming in RISCV64 assembly language (translation from C, control structures, memory access, optimization, use of gdb)
  • Compilation from C to an assembly language (compile cycle, variable scope, modularity)
  • Function calls: ABI (return value, parameters, local variable, call stack, recursive function)
  • Memory representation of data structures (array, structure and pointer, hash table)
  • Processor system with memory-mapped peripherals (serial link, console)
  • Interrupts (processor, timer, multiple sources)
  • Processes (thread, context switch, cooperative and preemptive scheduling)

Prerequisites

C language, pointers

Test

Evaluation : 20% of TP notés and 80% of Examen sur machine (2h)

Resit : 20% of TP notés (reported score) and 80% of Examen sur machine (2h)

Weekly assessment: automatic evaluation
Allowed documents for the final exam: one double-sided handwritten A4 sheet

Calendar

The course exists in the following branches:

  • Curriculum - Core curriculum - Semester 6
see the course schedule for 2025-2026

Additional Information

Course ID : 3MMILM
Course language(s): FR

You can find this course among all other courses.

Bibliography

The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA (https://riscv.org/technical/specifications/)