Course syllabus

Course-PM

DAT105 / DIT051 Computer architecture lp1 HT19 (7.5 hp)

Course is offered by the department of Computer Science and Engineering

Contact details

Examiner:

Lecturer:

Teachers:

Course purpose

Computers are a key component in almost any technical system today because of their functional flexibility as well as ability to execute fast in a power efficient way. In fact, the computational performance of computers has doubled every 18 months over the last several decades. One important reason is progress in computer architecture, which is the engineering discipline on computer design, which conveys principles for how to convert the raw speed of transistors into application software performance through computational structures that exploit the parallelism in software. This course covers the important principles for how to design a computer that offers high performance to the application software.

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

- master concepts and structures in modern computer architectures in order to follow the research advances in this field;
- understand the principles behind a modern microprocessor; especially advanced pipelining techniques that can execute multiple instructions in parallel in order to be able to establish performance of computer systems;
- understand the principles behind modern memory hierarchies in order to be able to assess performance of computer systems; and
- proficiency in quantitatively establishing the impact of architectural techniques on the performance of application software using state-of-the-art simulation tools.

Content

The course covers architectural techniques essential for achieving high performance for application software. It also covers simulation-based analysis methods for quantitative assessment of the impact a certain architectural technique has on performance and power consumption. The content is divided into the following parts:

1. The first part covers trends that affect the evolution of computer technology including Moore s law, metrics of performance (execution time versus throughput) and power consumption, benchmarking as well as fundamentals of computer performance such as Amdahl s law and locality of reference. It also covers how simulation based techniques can be used to quantitatively evaluate the impact of design principles on computer performance.

2. The second part covers various techniques for exploitation of instruction level parallelism (ILP) by defining key concepts for what ILP is and what limits it. The techniques covered fall into two broad categories: dynamic and static techniques. The most important dynamic techniques covered are Tomasulo s algorithm, branch prediction, and speculation. The most important static techniques are loop unrolling, software pipelining, trace scheduling, and predicated execution.

3. The third part deals with memory hierarchies. This part covers techniques to attack the different sources of performance bottlenecks in the memory hierarchy such as techniques to reduce the miss rate, the miss penalty, and the hit time. Example techniques covered are victim caches, lockup-free caches, prefetching, virtually addressed caches. Also main memory technology is covered in this part.

4. The fourth part deals with multicore/multithreaded architectures. At the system level it deals with the programming model and how processor cores on a chip can communicate with each other through a shared address space. At the micro architecture level it deals with different approaches for how multiple threads can share architectural resources: fine-grain/coarse-grain and simultaneous multithreading.

Organisation

The course is organized into lectures, exercises, case studies, two laboratory tasks, and a mini research project assignment. Lectures focus on fundamental concepts and structures. Exercises provide in-depth analysis of the concepts and structures and train the students in problem solving approaches. Case studies are based on state of the art computers that are documented in the scientific literature. Students carry out the case studies and present them in plenary sessions to fellow students and the instructors. Finally, students get familiar with simulation methodologies and tools used in industry to analyze the impact of design decisions on computer performance. This is trained in a sequence of labs and in a small research project assignment.

An important methodology to systematically design computers is to assess the impact of an architectural technique on performance. This is trained in a number of illustrative exercises as well as in labs and in the mini "research project assignment".

Literature

M. Dubois, M. Annavaram, P. Stenström. Parallel Computer Organization and Design. Cambridge Press, 2012.

Examination including compulsory elements

Approved written project report. Written exam

 

Exam: Johannesburg on October 28, 2019 at 2pm

Calendar

Week

Study Week

Time, [Lecture room]

Time, [Lecture room]

36

1

2019-09-03

08:00-09:45, [SB-H3]

Lecture 1: Fundamentals (Ch 1.1-1.3, 1.5)

2019-09-04
10:00-11:45, [ED]

Opt. Lect. 2:

Memory hierarchies

(Ch 4.1, 4.2 4.3.1– 4.3.4)

36

1

2019-09-03 10:00-11:45, [SB-H3]

Opt. Lect. 1:

Pipelining

(Ch 3.1, 3.2, 3.3.1)

 

37

2

2019-09-09
08:00-09:45, [ED]

Exercise 1

 

2019-09-11
10:00-11:45, [HB2]

Exercise 2

 

37

2

2019-09-09
10:00-11:45, [ED]

Lecture 2: Static instruction scheduling

(Ch 3.3.2 - 3.3.6) 

 

38

3

2019-09-16
08:00-09:45, [ED]

Lecture 3: Tomasulo algorithm

(Ch 3.4.1 – 3.4.2)

2019-09-18 10:00-11:45, SB-H5

Exercise 3

38

3

2019-09-16
10:00-11:45, [EE]

Lecture 4: Branch Prediction & Speculative execution

(Ch 3.4.3 - 3.4.6)

 

38

3

LAB ASSIGNMENT 1

(13.15 – 17:00)

LAB ASSIGNMENT 1

(17:15 – 21:00)

39

4

2019-09-23

10:00-11:45, [ED]

Lecture 5

Memory hierarchy design

(Ch 4)

2019-09-25
10:00-11:45, ED

Exercise 4

 

39

4

LAB ASSIGNMENT 2

(13.15 – 17:00)

LAB ASSIGNMENT 2

(17:15 – 21:00)

40

5

 

2019-10-02
10:00-11:45, [SB-H3]

Lecture 6: Chip multiprocessors

(Ch 8.1 -8.3, 5.4.1 – 5.4.3, 5.5.1 – 5.5.2)

40

5

LAB ASSIGNMENT 3

(13.15 – 17:00)

LAB ASSIGNMENT 3

(17:15 – 21:00)

41

6

2019-10-07
10:00-11:45, [ED]

Exercise 5

2019-10-09
10:00-11:45, [ED]

Lecture 7: VLIW Processors (Ch 3.5)

42

7

2019-10-14
08:00-09:45, [ED]

Exercise 6  

 

42

7

2019-10-14
10:00-11:45, [ED]

Real Stuff Studies 1

 

2019-10-16
10:00-11:45, [SB-H3]

Real Stuff Studies 2

44

9

 

Exam: 28 Oct 2019

14:00

Johanneberg

 

 

 

 

 

TimeEdit

 

You should be clear how missed deadlines and revisions are handled.

Changes made since the last occasion

A summary of changes made since the last occasion.

 

Link to the syllabus Chalmers.
Link to the syllabus GU.

If the course is a joint course (Chalmers and Göteborgs Universitet) you should link to both syllabus (Chalmers and Göteborgs Universitet).

 

Course summary:

Date Details Due