Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.


Syllabus for

Academic year
EDA331 - Computer system engineering
Syllabus adopted 2013-02-09 by Head of Programme (or corresponding)
Owner: TKDAT
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Electrical Engineering

Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0105 Examination 6,0 c Grading: TH   6,0 c   28 May 2016 pm M,  08 Apr 2016 pm M,  16 Aug 2016 pm SB
0205 Laboratory 1,5 c Grading: UG   1,5 c    

In programs

TKELT ELECTRICAL ENGINEERING, Year 3 (compulsory elective)


Docent  Lars R Bengtsson


EDA330   Computer system engineering

  Go to Course Homepage


In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

Course specific prerequisites

EDA452 Introduction to computer engineering and EDA481 Embedded systems programming or equivalent courses.


The course aims to convey how a modern computer system is constructed and how its hardware modules interact with eachother and with low- level software. Performance issues are particularly emphasized, since many design decisions are made to maximize performance at a given cost, or to minimize cost at a given performance level.

Learning outcomes (after completion of the course the student should be able to)

  • Read and write simple assembly programs for a typical three-address register machine.

  • Identify the basic types of conflicts that occur as a result of pipelining the datapath of a processor.

  • Identify and describe simple methods to avoid and work around these conflicts, describe limitations of these simple methods, and estimate their influence on performance.

  • Use arithmetic instructions (integer and floating-point) in a correct way.

  • Describe the function and performance influence of a memory hierarchy, including caches, main memory and virtual memory, including different parameters for size, block size, and associativity.

  • Compute the performance (for simple load cases) of an I/O system, particularly one consisting of processors, buses, and hard disks.

  • Identify performance bottlenecks in such a system.

  • Explain how computer system performance is defined and measured.

  • Estimate the influence of parameter changes on system performance above.

  • Give an overview of the architecture of a multicore processor.

  • Carry out a simple co-optimization of software (at assembly level) with hardware parameters to reach the best possible cost/performance ratio for a certain system. Present the carried out work in a brief written report.


Lectures, group exercises and laborative work combine to convey basic insights into the design and functionality of a small computer system (with a processor, memory, and I/O). The main focus is on performance and on interaction with low-level software.


The course contains lectures, group exercises, and lab work using a simulator of a small computer system. The laborative part ends with a hand-in task.


Pattersson&Hennessy: "Computer Organization and Design: The Hardware/Software Interface". Additional material via the course homepage in PingPong


Demonstration of a working solution to the hand-in task. The solution should also be presented in a brief written report in english. Written exam.

Page manager Published: Thu 04 Feb 2021.