Computer Architecture and Software Systems (B-KUL-H01P5B)

This is a translated version. Original version in Dutch.
6 ECTSDutch60 Second termCannot be taken as part of an examination contract
POC Computerwetenschappen

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.

Mixed prerequisite:
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.
Explanation:
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:
H01B6A : Fundamentals of Computer Science (No longer offered this academic year)
G0N28A : Principles of Computer Programming
X0A06A : Principles of Computer Programming
H01B6B : Fundamentals of Computer Science
X0A06B : Principles of Computer Programming

This course unit is a prerequisite for taking the following course units:
H0N65A : Introduction to Databases

This course is identical to the following courses:
H01P5A : Computer Architecture and Software Systems (No longer offered this academic year)
X0A29B : Computer Organisation (No longer offered this academic year)
G0Q33C : Computer Organisation
X0E31A : Computer organization

Activities

4.8 ects. Computer Architecture and Software Systems: Lecture (B-KUL-H0P58a)

4.8 ECTSDutchFormat: Lecture30 Second term
POC Computerwetenschappen

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. 

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. 

1.2 ects. Computer Architecture and Software Systems: Exercises (B-KUL-H0P59a)

1.2 ECTSDutchFormat: Practical30 Second term
POC Computerwetenschappen

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
  • Caches
  • Measuring and Improving performance
  • Loaders and linkers

Assignments of exercises.

Evaluation

Evaluation: Computer Architecture and Software Systems (B-KUL-H21P5b)

Type : Exam during the examination period
Description of evaluation : Written
Type of questions : Open questions


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.

A student who was absent without valid reason during more than one interaction session may not retake the exam in the third exam period.