DM548: Computer architecture and system programming
Entry requirements
Academic preconditions
Course introduction
The course introduces the student to the architecture and organization of general purpose computers, from the logic level over the microprogramming level to the conventional ISA level. Major components in the storage hierarchy, interconnection structures, and the organization of pipelined processors are also presented. In addition, the foundational aspects of system programming are introduced.
The course builds on competences in programming, concurrent programming, algorithms, and data structures, and gives a professional basis for developing competences in in operating systems, networks and security, compiler construction, and further system programming.
In relation to the learning outcomes of the degree the course has explicit focus on:
- knowledge of principles for the construction of computer hardware and operating systems, including distributed and parallel systems.
- developing skills in programming in different types of programming languages.
- developing skills in constructing larger software systems.
- developing skills in deciding and justifying professional decisions.
- developing skills in describing, formulating and disseminating problems and results to either other professional or non-specialists or collaborative partners and users.
- giving the competence to handle complex and development-oriented situations in study and work contexts.
- giving the competence to identify one's own needs for learning and structure one's own learning in different learning environments.
Expected learning outcome
After the course the student is expected to have the following.
Knowledge of
- ordinary integer and floating-point number representations.
- the architecture of computers in terms of abstraction layers.
- digital logic and Boolean algebra.
- microarchitectures and the use of parallelism in modern processors.
- multicore and distributed architectures.
- instruction set architectures.
- assembly languages, including system calls.
- the organization of hardware components (processors, memory, communication paths, external devices, etc.)
- I/O devices and interrupts.
- the characteristics and limitations of the different storage components, including the addressing structure.
Skills in
- interpreting basic logic diagrams and truth tables, and express the functionality of basic processor components in terms of such diagrams and tables.
- interpreting ordinary binary integer and floating-point number representations, and conversion between these.
- expressing the functionality of an ISA level instruction by interpretation on an underlying (micro)architecture.
- designing and implementing simple programs in an assembly language.
- designing and implementing programs in a system programming language.
Competences in
- assessing the performance of a multi-level storage hierarchy.
- explaining and discussing the exploitation of parallelism in modern processors, including the use of pipelining, out-of-order execution, and the distribution of tasks on multiple functional units.
- explain and discuss the internal organization and internal communication paths at a high level, including communication with external devices as well as interruptions from these.
- assessing the practical performance of algorithms.
- obtaining further knowledge of computer architecture.
Content
The following main topics are contained in the course.
- The digital logic level and microarchitecture level, including pipelining, cache memories, and other performance improving features.
- The ISA level instruction types, formats and addressing methods, data types and number representations, and in addition assembly programming.
- Organization of computer components and their interconnection.
- A system programming language, including variables and operators, functions, pointers and memory handling, recursion, I/O, and basic data structures.
Literature
Examination regulations
Exam element a)
Timing
Tests
Portfolio and tests
EKA
Assessment
Grading
Identification
Language
Duration
Examination aids
All common aids are allowed e.g. books, notes, computer programmes which do not use internet etc.
ECTS value
Additional information
Indicative number of lessons
Teaching Method
At the faculty of science, teaching is organized after the three-phase model ie. intro, training and study phase.
- Introphase: 42 hours
- Training phase: 30 hours, of which, tutorial: 14 hours and laboratory exercises: 16 hours
- Study phase: 32 hours
Activities in the study phase: application of the acquired knowledge in projects.