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.7 | Procedures
|
3.12 | Life in the Real World: Using the GDB Debugger
|
4.3.1 | Organizing Processing in Stages (only p. 281)
|
4.4 | General Principles of Pipelining
|
| Aside: Enumerating classes of data hazards (p. 327)
|
4.5.5 | Avoiding Data Hazards by Stalling
|
4.5.6 | Avoiding Data Hazards by Forwarding
|
4.5.7 | Load/Use Data Hazards
|
| Pipeline Control Mechanisms (p. 347)
|
4.5.10 | Performance Analysis
|
| Aside: State-of-the-art microprocessor design (p. 358)
|
Schedule
The class is scheduled in three hours:
-
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'
-
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'
-
Home-work: 'Defuse as many possible phases of a binary-bomb'
bomb, description.
Last updated February 17, 2010
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