Course Computer Systems for AI-programmers

"Computersystemen voor AI-programmeurs"

Week 7, February 2010

Description

In this class, we continue our comparison between high-level language and the machine-level.

In this class the following concepts are introduced:

  • procedure call, program stack, stack frame organisation, register usage
  • program counter, von Neumann architecture, fetch-execute cycle
  • data path, control logic, conditional codes, critical path
  • pipelining, stalling, data forwarding, bubbles

Literature

The class is based on chapters 3 and 4 of the book Computer Systems: A programmer's perspective by R.E. Bryant and D.R. O'Hallaron.

Recommanded reading (afterwards, 33 pages, 1.5 hours):

3.7Procedures
3.12Life in the Real World: Using the GDB Debugger
4.3.1Organizing Processing in Stages (only p. 281)
4.4General Principles of Pipelining
Aside: Enumerating classes of data hazards (p. 327)
4.5.5Avoiding Data Hazards by Stalling
4.5.6Avoiding Data Hazards by Forwarding
4.5.7Load/Use Data Hazards
Pipeline Control Mechanisms (p. 347)
4.5.10Performance Analysis
Aside: State-of-the-art microprocessor design (p. 358)


Schedule

The class is scheduled in three hours:

  1. Lecture (Recording): 'Computer system - Instruction Set Architecture'
    Practice Problem 3.2: 'Write C-code that will have an effect equivalent with the given assembly code'
  2. Lecture (Recording): 'Computer system - Processor Architecture'
    Practice Problem 4.21: 'Calculate the throughput and latency of a n-stage pipeline for the given 6 blocks'
  3. Home-work: 'Defuse as many possible phases of a binary-bomb' bomb, description.

Last updated February 17, 2010

o This web-page and the list of participants to this course is maintained by Arnoud Visser (arnoud@science.uva.nl)
Faculty of Science
University of Amsterdam

visitors in arnoud@science.uva.nl