DTU 02211: Advanced Computer Architecture

This course is an advanced course for Master's and PhD students, and it is lectured in English. The course is offered during the spring term by the DTU Compute department at the Technical University of Denmark.

Aims of the course

Computer architecture, the art and science of designing hardware, is an exciting and fast changing research and development field. In this course we intend to transfer this excitement to the students.

Students will learn the organization and design of contemporary processor architectures. The foundations such as instruction set, pipelining, and memory hierarchies are reviewed. We will cover advanced concepts such as instruction-level parallelism, out-of-order execution, and chip-multiprocessing. As the current trend in computer architecture is towards chip-multiprocessing, the architecture of shared memory multiprocessors and chip level interconnect (network-on-chip) will be a central focus of the course.

Most processors (99+%) are used in embedded systems, and many of those embedded systems are real-time systems. Therefore, processors need to be designed in a way that worst-case execution time analysis is feasible. We will cover current research in the field of time-predictable architectures.

Tentative List of Topics


The course is intended for students enrolled in the master program in computer systems engineering, and could also be interesting for students in the electrical engineering master program. Depending on your background the prerequisites are as follows:

Schedule, Format, Place

The course is lectured Tuesday 13:00 - 17:00.
First part is usually lectures and second part for project work.

The course is lectured in building 358 room 915.

Recommended Textbooks

Computer Architecture: A Quantitative Approach
Sixth Edition

John L. Hennessy and David A. Patterson

Morgan Kaufmann, 2017

ISBN-13: 978-0-12-811905-1

The book is available from Polyteknisk Boghandel in Building 101A.

Chisel Digital Design with Chisel

Martin Schoeberl

Published 2019 by Kindle Direct Publishing

ISBN-13: 978-1689336031

Download this Book


Martin Schoeberl


Students will work in groups of two or three on a hardware or software project. A hardware project can be work within the T-CREST platform or building a pipelined processor from scratch. Software projects will explore embedded chip-multiprocessor programming and programming models. Besides a working solution, students will prepare a conference-style paper on their project. The project and paper will be presented in class. Exceptional projects shall lead to publications in computer architecture conferences.

We will provide a list of project suggestions. Students are also welcome to propose their own project that fits with their research interest.

More details on the projects are available in the Wikiversity page.


Following are the main categories for the project:
  1. Projects within the T-CREST platform
  2. Roll your own microprocessor
  3. Network-on-Chip
  4. Software for CMP
Find here a list of projects.

Please refer to that Wiki page for latest information.

Look up the assignments there and start a page for your project at the SS2022 page and read about the assignments.

Assignments and Points

50% of the grade are from the lab project. The lab project itself includes a few exercises to get you started, but the main part is the project.

Warm-up Lab

In the first lab we will start with a FPGA Hello World example on the FPGA board.

Notes on Tools

For the T-CREST exercise and FPGA development in general we provide a Ubuntu VM with all tools installed at Patmos page.

Fur TU Vienna, the TI lab has prepared a VM shared for several courses.


In the lab we need only free software:
  1. FPGA synthesis: Altera Quartus or Xilinx Vivado
The driver for the USB-Blaster can be found in the Altera installation under quartus/drivers/usb-blaster.


The FPGA tools are not available under OS X. Therefore, use a VM with Linux (use the Ubuntu VM from the Patmos web site). Best option is VMware, which provides a free VMPlayer.

Lecture Plan (2022)

Week 1: Introduction & Instruction Set Review & Chisel: Overview

Reading: H & P: Chapter 1, Appendix A, and RISC-V ISA document; Chisel: Chapter 1
Lab: FPGA Hello World with Chisel
Assignment: Instruction set comparison

Week 2: The JVM & Motivation & Chisel: Basic Operations

Reading: H & P: Chapter 1; Chisel: Chapter 2-3
Lab: UART in Chisel or lab2

Week 3: Pipeline Review (self study)

Reading: H & P: Appendix C;
Lab: Continue with Chisel examples

Week 4: Cache Review & Chisel: Scala and Chisel Background

Reading: H & P: Appendix B and Chapter 2; Chisel: Chapter 4-6
Lab: Continue with Chisel examples

Week 5: Time-Predictable Computer Architecture & Chisel: Customized Circuit Generation

Reading: Paper: Time-predictable Computer Architecture and T-CREST: Time-predictable Multi-Core Architecture for Embedded Systems; Chisel: Chapter 9
Lab: Patmos exercise

Week 6: Instruction Level Parallelism

Reading: H & P: Chapter 3 Section 3.1 till 3.3
Lab: Start of your project

Week 7: IO and Interconnect

Reading: Patmos handbook: Section 3.6 and 3.7
Lab: Present your project idea, project work

Week 8: Multicore Synchronization (Tórur Biskopstø Strøm)

Reading: H & P: Chapter 5.5
Lab: Project work

Week 9: Instruction-Level Parallelism II

Reading: H & P: Chapter 3
Lab: Project work

Week 10: Thread-Level Parallelism

Reading: H & P: Chapter 5
Lab: Project work

Week 11: Dynamic Reconfiguration in Multi-Core Real-Time Systems (Luca Pezzarossa)

Reading: TBD
Lab: Project work

Week 12: Chip-Multiprocessing

Reading: H & P: Chapter 5
Lab: Project work

Week xx: Real-Time Caches and NoCs, Project Work

Reading: Papers
Lab: Project work

Week 13: Wrap-up, Project Presentation

Reading: none

Lab: Project presentation and demonstration

Week 14: Oral Exam

Pensum List

Book chapters from Computer Architecture: A Quantitative Approach Sixth Edition