Computer Systems and -Architecture 

On this page you will find information about the course "Computersystemen en -architectuur" (1001WETCAR) for the first semester of the 2012-2013 academic year at the University of Antwerp.

This page is written in English for the benefit of foreign Erasmus students.

This course consists of two interwoven parts:
Computer Systems
Computer Architecture

To indicate which parts of the book correspond to the lectures, have a look at last year's overview of what to study for the exam (minor updates will be made shortly to reflect this year's small changes in the course).


Exams

Your results of this course depend on the following:

Second Session
  • For the second session you need to individually finish and submit the "Computer Systems" exercises and a "Computer Architecture" project. Deadline for these assignments is August 16, 2013 23:55. Submission is done via Blackboard. The structure of the examination remains the same. All defenses take place during the examination period.
  • The examination method and the material to study will be identical to the first session. There will again be a written theory exam about both CS and CA, as well as a practical exam with oral defense on Computer Architecture. An overview of the material to study for the exams is given here.

Theory
All lectures (in PDF format) can be found online (on Blackboard) as announced in class. Before each class, the slides are last year's. By the end of the lecture, the slides are updated to reflect this year's changes.
byRefenceVSbyValue.c demonstrates the use of call-by-value and call-by-reference in C.

Lab Sessions

In each lab session, you will be given some exercises (Computer Systems) and/or a project (Computer Architecture). All exercises are made individually, projects are solved in groups of two students.

Exercises (CS)

After each lab session, a new "assignment" is enabled on Blackboard, with a strict deadline. You submit your solution of the exercises before the deadline (typically one week after the lab session). You submission must have these characteristics:

  • Fill in all solutions to the exercises in the file oefeningen.html. Each solution consists of text, screenshots and/or hyperlinks to files (i.e. scripts, MIPS-files, ...).
  • Put all your files in a tgz archive. The name of that archive consists of your last and first name, without spaces. If, for example, your name is Jan De Smedt, the file name of your archive must be DeSmedtJan.tgz.

The exercises can be found here.

Projects (CA)

In each lab session, you will work on a project in pairs of two students. Projects build on each other, to converge into a unified whole at the end of the semester. During the semester, you will be evaluated three times. At these evaluation moments, you will present your solution of the past projects by giving a demo and answering some questions. You will immediately receive feedback, which you can use to improve your solution for the following evaluations.

For every project, you submit a small report of the project you made by filling in verslag.html completely. A report typically consists of a summary of everything you implemented and an explanation of the choices you made ​​in the implementation. Again, put all your files in a tgz archive. The name of that archive consists of your last and first name, without spaces. If, for example, your name is Jan De Smedt, the file name of your archive must be DeSmedtJan.tgz.

The projects can be found here.

Files

The HTML forms you will need for the solutions (right click, save as):

You have to adapt the HTML-code manually (i.e., in notepad) to fill in the forms. A good HTML tutorial can help you with this. Remark: in the forms, the <u> element for underlining is redefined to "overline". This way, you can express NOT in Boolean algebraic expressions: e.g., NOT A OR B becomes A+B. Unfortunately, double overline is not possible. Of course, you can always use the NOT A OR B notation.

Tools

Throughout the course we will use the following tools:

Both tools require java to run. The tools are installed on the lab computers.

If you would like to run a UNIX distribution on your own computer, we suggest Ubuntu. You can install Ubuntu next to your Windows using the Windows installer. After installation, you will be able to choose on startup between Windows and Ubuntu. If you would like to run Ubuntu inside your Windows, you can install Ubuntu on VirtualBox by following these steps.

In order to copy files in Windows from and to servers (e.g., between your laptop and the radix.ua.ac.be server) you can use WinSCP. You can simply use the scp command if you are using UNIX.

Blackboard caveats

The burden of timely submission of your work on Blackboard is on you! (late submissions are not accepted)

  • Beware that Blackboard's clock may differ slightly from that on your computer. Allow a margin for submission.
  • Be sure to check that your submission was actually made. Check for example under Grade Centre whether your (as yet unmarked) submission shows up.

Planning

Week

Date

Type

Room

Computer Systems

Computer Architecture

1 Tuesday 25 September 13:45 - 15:45 Lab Session G.025 (Group A)
G.026 (Group B)
Introduction to UNIX
1 Tuesday 25 September 16:00 - 18:00 Theory G.010 Introduction, Computer Abstractions
1 Wednesday 26 September 13:45 - 15:45 Theory G.010 Computer Abstractions
2 no classes in week 2
3 Wednesday 10 October 16:00 - 18:00 Theory G.010 Computer Abstractions: Performance
3 Friday 12 October 10:45 - 12:45 Theory G.010 Logic Design, Logic Gates
4 Tuesday 16 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
Regular expressions and sed Gates and Wires
4 Wednesday 17 October 16:00 - 18:00 Theory G.010 Data Representation (Signed Integer)
4 Friday 19 October 10:45 - 12:45 Theory G.010 Logic Design, Logic Gates (Carry Lookahead Adder)
5 Tuesday 23 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
UNIX Scripting Adders
5 Wednesday 24 October 16:00 - 18:00 Theory G.010 Data Representation (Fixed/Floating Point)
5 Friday 26 October 10:45 - 12:45 Theory G.010 Logic Gates: memory
6 Tuesday 30 October 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
Data Representation ALU
6 Wednesday 31 October 16:00 - 18:00 Theory G.010 Data Representation (character representations)
7 Tuesday 6 November 13:00 - 19:00 Evaluation and feedback G.025 Evaluation Adders + ALU
7 Wednesday 7 November 14:00 - 16:00 Theory G.010 Assembler
7 Friday 9 November 10:45 - 12:45 Theory A.143 Memory/Finite State Machines
8 Tuesday 13 November 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
vi FSM
8 Wednesday 14 November 16:00 - 18:00 Theory G.010 Assembler
8 Friday 16 November 10:45 - 12:45 Theory G.010 Simple Datapath (full)
9 Tuesday 20 November 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPS Datapath
9 Wednesday 21 November 16:00 - 18:00 Theory G.010 Assembler: leaf functions
9 Friday 23 November 10:45 - 12:45 Theory G.010 Assembler: non-leaf functions
10 Tuesday 27 November 13:00 - 18:00 Evaluation and feedback G0.25 Evaluation FSM + Datapath
10 Wednesday 28 November 16:00 - 18:00 Theory G.010 Assembler: Frames/Activation Records
10 Friday 30 November 10:45 - 12:45 Theory G.010 Assembler: Frames (static link chain)
representing matrices
11 Tuesday 4 December 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPS: Stacks and Subroutines Datapath 2
11 Wednesday 5 December 16:00 - 18:00 Friday 7 December 8:30 - 10:30 Theory G.010 Assembler: more instructions
linking and loading
other architectures
11 Friday 7 December 10:45 - 12:45 Theory G.010 Computer Arithmetic
12 Tuesday 11 December 13:45 - 18:00 Lab Session G.025 (Group A)
G.026 (Group B)
MIPS: Recursion Using the datapath
12 Wednesday 12 December 16:00 - 18:00 Theory G.010 Assembler: exceptions
12 Friday 14 December 10:45 - 12:45 Theory G.010 Datapath with pipelining
13 Tuesday 18 December 13:00 - 18:00 Evaluation and feedback G.025 Evaluation final datapath
13 Wednesday 19 December 16:00 - 18:00 Theory G.010 Memory Hierarchy
How it all fits together

How it all fits together

Computer Systems
Program of the lab sessions

Introduction to Unix

Introduction session on Unix commands. The use of Unix Shell Commands is explained.

Material:

Regular Expressions and Sed

Introduction and exercises on regular expressions and sed.

Material:

UNIX Scripting

Introduction to and exercises on UNIX Scripting.

Material:

Data Representation

Exercises on data representation

Material:

vi

Material:

MIPS

Exercises on MIPS

Material:

MIPS: Stacks and subroutines

Exercises on MIPS Stacks and subroutines

Material:

MIPS: Recursion

Exercises on MIPS Recursion

Material:


Computer Architecture
Program of the lab sessions

Gates and Wires

Introduction to Logisim and the use of gates.

Material:

Adders

Build an 12-bit adder (ripple carry adder and carry lookahead adder).

Material:

ALU

Build a 12-bit ALU.

Material:

FSM

Build a register file, counter, clock divider and finite State Machine for a traffic light.

Material:

Datapath (1)

Build a program counter and a datapath.

Material:

Datapath (2)

Add branch, jump and immediate instructions to the instruction set.

Material:

Using the Datapath

Write programs to run on your datapath.

Material:

Maintained by Hans Vangheluwe. Last Modified: 2013/09/03 06:56:53.