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)
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
Additional Information
Course ID : 3MMILM
Course language(s):
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/)