The course introduces the student to the architecture of general purpose computers, from the logic level over the microprogramming level to the conventional ISA level; also major components in the storage hierarchy, bus architectures and the organization of pipelined CPU's are presented. In addition, the main aspects of a system programming language are introduced.
The student will obtain insight into the organization of modern computers and their CPU's, in order to be able to compare and evaluate their performance on a level independent of the specific technology. More specifically the course provide the following competences:
- to understand basic logic diagrams, and to express the functionality of basic CPU components in terms of such diagrams.
- to express the functionality of an ISA level instruction by interpretation on an underlying (micro)architecture.
- to be able to interpret ordinary binary integer and floating point number representations, and to be able to convert between these.
- to know and be able to explain the properties and limitations of the different storage components, including their addressing, and to evaluate the performance of a multi-level storage hierarchy.
- to be able to explain and discuss the exploitation of parallelism in the form of pipelining, their limitations, and the distribution of tasks on multiple functional units.
- to be able to explain and discuss the internal organization and internal communication paths at a high level, including communication with external units and interrupts from these.
- to express the functionality of a given algorithm as an assembler program, including to bring such a program to execution on a specific machine.
- to express the functionality of a given algorithm as a system program, including to bring such a program to execution on a specific machine.
During the course the students have to complete two mandatory projects. One project will cover programming in assembly language, the other will cover system programming. Both projects will be evaluated with pass/fail and need to be passed in order to be eligible for the written exam at the end of the semester. Please go to the according section of the website for examples of old exams. The lab courses are mainly targeted towards the mandatory projects, the exercises mostly prepare for the written exam.