In this course the students become familiar with computer architecture (processor, memory hierarchy, input and output) and system software (compilers, assemblers, loaders, operating systems). Both fundamental concepts and practical examples are discussed.
At the end of this course, the student will be able
- to understand and to describe the architecture of modern processors
- to describe the different representations for numbers and the implementation of operations on these numbers
- to accurately describe the functioning of a processor in general, and of the RISC-V processor in particular
- to understand and to describe the memory hierarchy, including virtual memory
- to understand and to describe the I/O subsystem, including hard disks, RAID systems and SSD's
- to compare and to contrast different types of computer architectures
- to recognize, categorize and to describe the parallelism used in the different levels of computer architecture
- to place computer architecture in a historical perspective, and to recognize the big lines of research that has driven the evolution in computer architecture
- to convert a program (written in a higher programming language, e.g. C) to a lower programming language (RISC-V)
- to describe the various steps (transformations) which a program (written in higher or lower programming level) goes through before it can be executed
- to understand and to describe the goals and functions of an operating system
- to understand and to describe process control
The student should be familiar with programming in a high level language.
Order of Enrolment
You may only take this course if you comply with the prerequisites. Prerequisites can be strict or flexible, or can imply simultaneity. A degree level can be also be a prerequisite.
STRICT: You may only take this course if you have passed or applied tolerance for the courses for which this condition is set.
FLEXIBLE: You may only take this course if you have previously taken the courses for which this condition is set.
SIMULTANEOUS: You may only take this course if you also take the courses for which this condition is set (or have taken them previously).
DEGREE: You may only take this course if you have obtained this degree level.
SIMULTANEOUS(H01B6A) OR SIMULTANEOUS(G0N28A) OR SIMULTANEOUS(X0A06A) OR SIMULTANEOUS(H01B6B) OR SIMULTANEOUS(X0A06B)
The codes of the course units mentioned above correspond to the following course descriptions:
This course unit is a prerequisite for taking the following course units:
This course is identical to the following courses:
Is included in these courses of study
- Preparatory Programme: Master of Computer Science Engineering (Leuven) 61 ects.
- Master of Teaching in Science and Technology (Leuven) 120 ects.
- Bachelor of Engineering (Leuven) (Major Subject: Computer Science) 180 ects.
- Bachelor of Engineering (Leuven) (Minor Subject Computer Science) 180 ects.
The following topics are covered. For each topic attention is given to the historic perspective and to research aspects.
- Machine language, assembly language, with RISC-V as an example: instructions, operands, addressing modes, function calls, stack, compiler, assembler, linker, loader
- computer arithmetic: number representations (signed and unsigned integers, floating point numbers), operations (addition, subtraction, multiplication and division)
- performance and performance measuring
- the data path and control of the processor: single cycle, multi-cycle, pipelining, multiple issue and Instruction Level Parallelism (ILP), exceptions, representation through a FSM
- memory hierarchy: memory technologies (SRAM, RAM, Flash, disks), caches, virtual memory, performance issues
- Parallel computer architectures: multicores, multiprocessors, multithreading
- introduction to operating systems: definition, goals and function, system calls
- Processes: definition, process control block, context switch
- I/O and devices: interrupts, I/O interface, kernel I/O subsystem, hard disks, RAID systems, SSD's
- Manual: "Computer organization and design, RISC-V Edition", Patterson and Hennessy, Morgan Kaufmann Publications
- A few chapters of "Operating Systems: Three Easy Pieces", Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. The book is available online.
Format: more information
During a part of the lectures, the students answer questions in group about a predetermined part of the course, during which they question each other. This happens open book. Attendance is mandatory.
9 practical sessions with the following themes
- MIPS programming: simple programs
- MIPS programming: stack, recursion
- MIPS programming: larger programs using the simulator (MARS or SPIM)
- MIPS programming: pointers, linked lists, heap
- MIPS programming: even larger programs using the simulator (MARS or SPIM)
- Numbers and number representations
- Measuring and Improving performance
- Loaders and linkers
Assignments of exercises.
The exam consists of a number of exercises (analogous to the exercises seen during the exercise sessions) and further examines insight into the course material, knowledge of terminology and understanding of the figures from the book.
A student who was absent without valid reason during more than one interaction session may not participate in the exam.
If the evaluation indicates that the student has not sufficiently met one or several of the aims of the course unit, the global result may deviate from the weighted average of all subcomponents.
A student who scores less than 7/20 for the exercises or for the theory part of the exam cannot pass for this course.
Information about retaking exams
A student who was absent without valid reason during more than one interaction session may not retake the exam in the third exam period.