The course gives basic knowledge of how a computer functions and is built-up both from a hardware and a software perspective The course is divided into six different modules, which for example include the following basic concepts:
- C-programming and assembler language: pointers, functions, stack, assembly language, machine language, instruction encoding and processor registers.
- I/O system: timers, interrupts and memory mapped I/O.
- Digital design: truth tables, gates, boolean algebra, multiplexers, decoders, adders, combinatorial nets, sequential networks and registers.
- Processor construction: arithmetic-logic unit, data path, control unit and pipeline.
- Memory architectures: instruction cache, data cache and virtual memory.
- Parallel processors and programs: Amdahl's law, different specialisations of parallelism as well as multicore.