English       Login
        Startseite         |         Institut für Informatik         |         Technische Fakultät

Lecture on Computer Architecture - Summer Term 2020

please note that the schedule is different from the one in hisinone!

Instructor: Dr. Philipp M. Scholl
Teaching Assistant: Linus Feiten
Lecture: every Monday, 10:00-12:00
Exercise: every Wednesday, 14:00-15:00
Material+Forum: ilias (password will be mailed to you)
Required Reading: David A. Patterson, John L. Hennesey - "Computer Organization and Design - The Hardware Software Interface [RISC-V Edition], 2017

Course Information

Elective for Bachelor/Master-course computer science, and mandatory for Bachelor/Master-course ESE. This course is intended for M.Sc. and B.Sc. students with a background in digital circuits and programming in C/C++. Students will be introduced to methods of designing computers, which will cover the topics of testing and verification of digital circuits, processor data and control paths, pipelining and parallelism. We will look into the RISC-V instruction set and related CPUs. You will learn to maximize the performance of your computing machinery and how to guarantee the correctness of circuits.

The course will be held in English. The lecture will be streamed live every Monday 10:00-12:00, and the exercise solutions will be discussed every Wednesday 14:00-15:00. All session will be recorded and made available via ilias. The lecture and exercise will be streamed with Big Blue Button

Big Blue Button

Course Schedule

This schedule is tentative, please check this website for up-to-date information.

week 1 - Introduction

“Understand computers to get the most performance out of them”

  • discuss the process of realizing a computer
  • describe the eight great ideas of computer architecture
  • describe Amdahl’s and Moore’s Law, Dennard Scaling and the Power Wall

week 2 - Instructions

  • describe the five components (data, control, memory, input, output)
  • explain how computers execute instructions
  • explain how instructions are represented

week 3 - Logic Design

  • explain the basics of gate-level design
  • solve equations with boolean algebra
  • execute Quine’McKluskey for logic minimization

week 4 - Logic Design II

  • enumerate the most common components of a computer (ALU, Multiplexer, …)
  • transform a boolean function from a truth table to CNF and minimize
  • explain the difference of a combinational and sequential circuit

week 5 - Digital Circuit Verification

  • motivate digital circuit verfication
  • check the equivalance of combinational and sequential circuits (huffman normal form, FSM product automaton, miter circuits, canonical forms)
  • explain the basics of bounded model checking

week 6 - Testing

  • explain different models for digital circuits
  • execute the D-algorithm for automatic test pattern generation (ATPG)
  • explain simulation-based, SAT-based and D-algorithm ATPG

week 7 - Placement & Routing

  • to motivate placement & routing
  • execute Kerninghan-Lin for graph minimization
  • execute Maze-Routing for shortest path

week 8 - Single-Cycle Datapath & Control

  • explain the components required for a basic RISC-V (ld,sd,add,sub,mul,and,or,beq)
  • explain how the instructions are executed in a single-cycle design

week 9 - Pipelinig

  • motivate the introduction of pipelining and its effect on performance
  • describe control and data path changes for pipelining

week 10 - Pipeline Hazards

  • explain data and control hazard
  • explain speculative execution and stalling

week 11 - Parallelism

  • explain the idea behind Instruction Level Parallelism
  • execute an out-of-order CPU with the scoreboarding algorithm
  • execute an out-of-order CPU with the tomasulu algorithm

week 12 - Exception and Interrupts

  • differentiate exceptions and interrupts
  • explain the control logic for exceptions/interrupts